]> git.ipfire.org Git - people/amarx/ipfire-3.x.git/commitdiff
Merge remote-tracking branch 'stevee/openvswitch-systemd'
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 1 Aug 2012 20:09:14 +0000 (22:09 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 1 Aug 2012 20:09:14 +0000 (22:09 +0200)
940 files changed:
SDL/SDL.nm
acl/acl.nm
acpid/acpid.nm
acpid/acpid.sysconfig [deleted file]
acpid/patches/acpid-2.0.15-makefile.patch [new file with mode: 0644]
acpid/patches/acpid-2.0.2-makefile.patch [deleted file]
acpid/systemd/acpid.service
apr-util/apr-util.nm
attr/attr.nm
attr/patches/attr-2.4.46-build.patch [new file with mode: 0644]
audit/audit.nm
authconfig/authconfig.nm
autoconf/autoconf.nm
automake/automake.nm
avahi/avahi.nm
bash/bash.nm
bash/patches/bash-requires.patch [new file with mode: 0644]
binutils/binutils.nm
binutils/patches/binutils-2.20.1-gentoo-use-relro.patch [deleted file]
binutils/patches/binutils-2.20.51.0.10-sec-merge-emit.patch0 [new file with mode: 0644]
binutils/patches/binutils-2.20.51.0.2-build-id.patch0 [deleted file]
binutils/patches/binutils-2.20.51.0.2-libtool-lib64.patch [new file with mode: 0644]
binutils/patches/binutils-2.20.51.0.2-set-long-long.patch [new file with mode: 0644]
binutils/patches/binutils-2.22-warn-textrel.patch [deleted file]
binutils/patches/binutils-2.22.52.0.1-export-demangle.h.patch0 [new file with mode: 0644]
binutils/patches/binutils-2.22.52.0.1-relro-on-by-default.patch [new file with mode: 0644]
binutils/patches/binutils-2.22.52.0.2-flexible-tests.patch [moved from binutils/patches/binutils-2.22-flexible-tests.patch with 61% similarity]
binutils/patches/binutils-2.22.52.0.2-pt-pax-flags-20120425.patch [moved from binutils/patches/binutils-2.22-pt-pax-flags-20111121.patch with 96% similarity]
binutils/patches/binutils-2.22.52.0.4-refcount.patch0 [new file with mode: 0644]
bird/bird.nm
bison/bison.nm
bzip2/bzip2.nm
c_icap/c_icap.nm
c_icap_modules/c_icap_modules.nm
cairo/cairo.nm
checkpolicy/checkpolicy.nm [new file with mode: 0644]
checkpolicy/patches/checkpolicy-rhat.patch2 [new file with mode: 0644]
clamav/clamav.nm
coreutils/coreutils.nm
coreutils/patches/coreutils-7.6-uname_PIC-1.patch.off [deleted file]
coreutils/patches/coreutils-8.5-pam.patch
coreutils/patches/coreutils-8.7-runuser.patch [new file with mode: 0644]
coreutils/patches/coreutils-i18n.patch
coreutils/patches/coreutils-ipfire-disabled-tests.patch [new file with mode: 0644]
coreutils/patches/coreutils-selinux.patch
cpio/cpio.nm
cracklib/cracklib.nm
cronie/cronie.nm
cronie/systemd/cronie.service [new file with mode: 0644]
cryptsetup-luks/cryptsetup-luks.nm
curl/curl.nm
db4/db4.nm
dbus/dbus.nm
dejavu-fonts/dejavu-fonts.nm [new file with mode: 0644]
dev86/dev86.nm
dev86/patches/copt.patch [new file with mode: 0644]
dhcp/dhcp.nm
dhcp/systemd/dhclient4@.service [new file with mode: 0644]
directfb/directfb.nm
directfb/patches/DirectFB-1.5.3-add-missing-davinci-files.patch [new file with mode: 0644]
directfb/patches/DirectFB-1.5.3-gcc-atomics-on-arm.patch [new file with mode: 0644]
directfb/patches/DirectFB-1.5.3-lm.patch [new file with mode: 0644]
dmraid/dmraid.nm
dracut/dracut.nm
e2fsprogs/e2fsprogs.nm
ed/ed.nm
ethtool/ethtool.nm
filesystem/filesystem.nm
findutils/findutils.nm
flex/flex.nm
fontforge/fontforge.nm [new file with mode: 0644]
fontforge/patches/fontforge-20090224-pythondl.patch [new file with mode: 0644]
fontforge/patches/fontforge-20100501-select-points-crash.patch [new file with mode: 0644]
fontforge/patches/fontforge-20110222-libpng15.patch [new file with mode: 0644]
gawk/gawk.nm
gcc/gcc.nm
gcc/patches/gcc-4.7-arm-hfp-ldso.patch0 [new file with mode: 0644]
gcc/patches/gcc-4.7.0-piepatch-20120518.patch [moved from gcc/patches/gcc-4.6.0-piepatches-20110407.patch with 58% similarity]
gcc/patches/gcc46-Woverlength-string-asm.patch0 [deleted file]
gcc/patches/gcc46-Woverlength-string.patch0 [deleted file]
gcc/patches/gcc46-hack.patch0 [deleted file]
gcc/patches/gcc46-unwind-debughook-sdt.patch0 [deleted file]
gcc/patches/gcc47-c++-builtin-redecl.patch0 [moved from gcc/patches/gcc46-c++-builtin-redecl.patch0 with 70% similarity]
gcc/patches/gcc47-cloog-dl.patch0 [moved from gcc/patches/gcc46-cloog-dl.patch0 with 94% similarity]
gcc/patches/gcc47-i386-libgomp.patch0 [new file with mode: 0644]
gcc/patches/gcc47-libgomp-omp_h-multilib.patch0 [moved from gcc/patches/gcc46-libgomp-omp_h-multilib.patch0 with 100% similarity]
gcc/patches/gcc47-libitm-fno-exceptions.patch0 [new file with mode: 0644]
gcc/patches/gcc47-libstdc++-docs.patch0 [new file with mode: 0644]
gcc/patches/gcc47-libtool-no-rpath.patch0 [moved from gcc/patches/gcc46-libtool-no-rpath.patch0 with 100% similarity]
gcc/patches/gcc47-no-add-needed.patch0 [moved from gcc/patches/gcc46-no-add-needed.patch0 with 91% similarity]
gcc/patches/gcc47-ppl-0.10.patch0 [moved from gcc/patches/gcc46-ppl-0.10.patch with 55% similarity]
gcc/patches/gcc47-pr33763.patch0 [moved from gcc/patches/gcc46-pr33763.patch0 with 86% similarity]
gcc/patches/gcc47-pr38757.patch0 [moved from gcc/patches/gcc46-pr38757.patch0 with 87% similarity]
gettext/gettext.nm
ghostscript/ghostscript.nm
git/git.nm
glib2/glib2.nm
glibc/glibc.nm
glibc/patches/glibc-2.14-arm-hardened.patch0 [deleted file]
glibc/patches/glibc-arm-hardfloat-3.patch [new file with mode: 0644]
glibc/patches/glibc-fedora.patch
glibc/patches/glibc-rh730856.patch [deleted file]
glibc/patches/glibc-rh740506.patch [deleted file]
glibc/patches/glibc-rh757881.patch [deleted file]
glibc/patches/glibc-rh769421.patch [deleted file]
gmp/gmp.nm
gobject-introspection/gobject-introspection.nm
gpgme/gpgme.nm [new file with mode: 0644]
gpgme/patches/gpgme-1.2.0-largefile.patch [new file with mode: 0644]
gpgme/patches/gpgme-1.3.0-ImplicitDSOLinking.patch [new file with mode: 0644]
gpgme/patches/gpgme-1.3.0-config_extras.patch [new file with mode: 0644]
grep/grep.nm
grub/05_theme [deleted file]
grub/default/grub
grub/grub.nm
grub/patches/grub-1.99-just-say-linux.patch
grub/splash.png [deleted file]
grub/theme/COPYING.CC-BY-SA-3.0 [new file with mode: 0644]
grub/theme/blob_w.png [new file with mode: 0644]
grub/theme/boot_menu_c.png [new file with mode: 0644]
grub/theme/boot_menu_e.png [new file with mode: 0644]
grub/theme/boot_menu_n.png [new file with mode: 0644]
grub/theme/boot_menu_ne.png [new file with mode: 0644]
grub/theme/boot_menu_nw.png [new file with mode: 0644]
grub/theme/boot_menu_s.png [new file with mode: 0644]
grub/theme/boot_menu_se.png [new file with mode: 0644]
grub/theme/boot_menu_sw.png [new file with mode: 0644]
grub/theme/boot_menu_w.png [new file with mode: 0644]
grub/theme/slider_c.png [new file with mode: 0644]
grub/theme/slider_n.png [new file with mode: 0644]
grub/theme/slider_s.png [new file with mode: 0644]
grub/theme/terminal_box_c.png [new file with mode: 0644]
grub/theme/terminal_box_e.png [new file with mode: 0644]
grub/theme/terminal_box_n.png [new file with mode: 0644]
grub/theme/terminal_box_ne.png [new file with mode: 0644]
grub/theme/terminal_box_nw.png [new file with mode: 0644]
grub/theme/terminal_box_s.png [new file with mode: 0644]
grub/theme/terminal_box_se.png [new file with mode: 0644]
grub/theme/terminal_box_sw.png [new file with mode: 0644]
grub/theme/terminal_box_w.png [new file with mode: 0644]
grub/theme/theme.txt [new file with mode: 0644]
grubby/grubby.nm
gzip/gzip.nm
hostapd/hostapd.nm
hostapd/systemd/hostapd@.service
initscripts/initscripts.nm
initscripts/rc.local
initscripts/src/Makefile
initscripts/systemd/rc-local.service
ipfire-logos/ipfire-logos.nm
ipfire-release/ipfire-release.nm
ipfire-release/repos/stable.repo [new file with mode: 0644]
ipfire-release/repos/testing.repo [new file with mode: 0644]
ipfire-release/repos/unstable.repo [new file with mode: 0644]
iproute2/iproute2.nm
iproute2/patches/iproute2-2.6.29-IPPROTO_IP_for_SA.patch [new file with mode: 0644]
iproute2/patches/iproute2-2.6.31-tc_modules.patch [new file with mode: 0644]
iproute2/patches/iproute2-2.6.35-print-route.patch [new file with mode: 0644]
iproute2/patches/iproute2-2.6.39-create-peer-veth-without-a-name.patch [new file with mode: 0644]
iproute2/patches/iproute2-2.6.39-lnstat-dump-to-stdout.patch [new file with mode: 0644]
iproute2/patches/iproute2-3.4.0-kernel.patch [new file with mode: 0644]
iproute2/patches/iproute2-3.4.0-optflags.patch [new file with mode: 0644]
iproute2/patches/iproute2-3.4.0-sharepath.patch [new file with mode: 0644]
iproute2/patches/man-pages.patch [new file with mode: 0644]
iptables/iptables.nm
iputils/iputils.nm
isdn4k-utils/40-isdn.rules [deleted file]
isdn4k-utils/isdn4k-utils.nm
kbd/kbd.nm
kernel/config-arm-generic [new file with mode: 0644]
kernel/config-armv5tel-kirkwood [new file with mode: 0644]
kernel/config-armv7hl-omap [new file with mode: 0644]
kernel/config-generic [moved from kernel/config.i686-legacy with 79% similarity]
kernel/config-i686-default [new file with mode: 0644]
kernel/config-i686-legacy [new file with mode: 0644]
kernel/config-x86-generic [new file with mode: 0644]
kernel/config-x86_64-default [new file with mode: 0644]
kernel/config.armv5tel-versatile [deleted file]
kernel/config.i686 [deleted file]
kernel/config.x86_64 [deleted file]
kernel/kernel.nm
kernel/patches/arm-smsc-support-reading-mac-address-from-device-tree.patch [new file with mode: 0644]
kernel/patches/grsecurity-2.9.1-3.4.6-201207281946.patch [moved from kernel/patches/grsecurity-2.2.2-3.1.5-201112101853.patch with 78% similarity]
kernel/patches/linux-2.6-defaults-acpi-video.patch [deleted file]
kernel/patches/linux-2.6-defaults-aspm.patch [deleted file]
kernel/patches/linux-3.1-bridge-master-device-stuck-in-no-carrier-state-forever-when-in-user-stp-mode.patch [deleted file]
kernel/patches/linux-3.1-bridge-push-blocking-slaves-to-forwarding-when-turning-stp-off.patch.off [deleted file]
kernel/scripts/configcommon.py [new file with mode: 0755]
kernel/scripts/configdiff.py [new file with mode: 0755]
kernel/scripts/configure [new file with mode: 0755]
kernel/scripts/merge.pl [new file with mode: 0644]
kernel/systemd/cpupower.service
kmod/kmod.nm
ldapvi/ldapvi.nm
ldapvi/patches/GNUmakefile.in.patch [new file with mode: 0644]
libcap-ng/libcap-ng.nm
libcap/libcap.nm
libdb/libdb.nm
libdrm/91-drm-modeset.rules
libdrm/libdrm.nm
libdrm/patches/libdrm-2.4.21-b803918f3f.patch [deleted file]
libgcrypt/libgcrypt.nm
libgpg-error/libgpg-error.nm
libidn/libidn.nm
libjpeg/libjpeg.nm
libmnl/libmnl.nm [new file with mode: 0644]
libmpc/libmpc.nm
libnetfilter_acct/libnetfilter_acct.nm [new file with mode: 0644]
libnetfilter_log/libnetfilter_log.nm
libnetfilter_log/patches/libnetfilter_log-sysheader.patch [new file with mode: 0644]
libpwquality/libpwquality.nm [new file with mode: 0644]
libselinux/libselinux.nm
libselinux/patches/libselinux-ipfire.patch [deleted file]
libselinux/patches/libselinux-rhat.patch2 [new file with mode: 0644]
libsemanage/libsemanage.nm
libsemanage/semanage.conf
libsepol/libsepol.nm
libsolv/libsolv.nm
libusbx/libusbx.nm [moved from libusb/libusb.nm with 73% similarity]
linux-atm/linux-atm.nm
linux-atm/patches/linux-arm-gcc43.patch [new file with mode: 0644]
linux-atm/patches/linux-atm-2.4.1-gcc-4.patch [deleted file]
linux-atm/patches/linux-atm-2.4.1-nmu.patch [deleted file]
linux-atm/patches/linux-atm-2.5.0-disable-ilmidiag.patch [new file with mode: 0644]
linux-atm/patches/linux-atm-2.5.0-open-macro.patch [new file with mode: 0644]
linux-atm/patches/man-pages.patch [new file with mode: 0644]
linux-firmware/linux-firmware.nm
lvm2/lvm2.nm
m4/m4.nm
m4/patches/m4-1.4.16-gnulib-gets.patch [new file with mode: 0644]
make/make.nm
makedepend/makedepend.nm [new file with mode: 0644]
man-db/man-db.cron [new file with mode: 0644]
man-db/man-db.nm
man-pages/man-pages.nm
mc/mc.nm
mdadm/mdadm.nm
mesa/mesa.nm
miredo/client-hook [new file with mode: 0644]
miredo/miredo.nm [new file with mode: 0644]
miredo/patches/miredo-1.2.5-libteredo-header.patch [new file with mode: 0644]
miredo/patches/miredo-config-not-exec.patch [new file with mode: 0644]
miredo/patches/reread-resolv-before-resolv-ipv4.patch [new file with mode: 0644]
miredo/systemd/miredo-client@.service [new file with mode: 0644]
miredo/systemd/miredo-server.service [new file with mode: 0644]
mstpd/mstpd.nm
mstpd/patches/add-del-bridge-commands.patch0 [deleted file]
multipath-tools/multipath-tools.nm
multipath-tools/multipath.conf [new file with mode: 0644]
multipath-tools/patches/0001-RH-queue-without-daemon.patch [deleted file]
multipath-tools/patches/0001-RH-remove_callout.patch [new file with mode: 0644]
multipath-tools/patches/0001-for-upstream-add-tpg_pref-prioritizer.patch [deleted file]
multipath-tools/patches/0002-RH-add-wwids-file.patch [new file with mode: 0644]
multipath-tools/patches/0002-RH-path-checker.patch [deleted file]
multipath-tools/patches/0002-for-upstream-add-tmo-config-options.patch [deleted file]
multipath-tools/patches/0003-RH-add-followover.patch [new file with mode: 0644]
multipath-tools/patches/0003-RH-root-init-script.patch [deleted file]
multipath-tools/patches/0003-for-upstream-default-configs.patch [deleted file]
multipath-tools/patches/0004-RH-fix-cciss-names.patch [new file with mode: 0644]
multipath-tools/patches/0004-RH-fix-kpartx.patch [deleted file]
multipath-tools/patches/0005-RH-cciss_id.patch [deleted file]
multipath-tools/patches/0005-RH-dont_start_with_no_config.patch [new file with mode: 0644]
multipath-tools/patches/0006-RH-move-bindings.patch [deleted file]
multipath-tools/patches/0006-RH-multipath.rules.patch [moved from multipath-tools/patches/0010-RH-multipath-rules-udev-changes.patch with 58% similarity]
multipath-tools/patches/0007-RH-Make-build-system-RH-Fedora-friendly.patch [new file with mode: 0644]
multipath-tools/patches/0007-RH-do-not-remove.patch [deleted file]
multipath-tools/patches/0008-RH-Make-build-system-RH-Fedora-friendly.patch [deleted file]
multipath-tools/patches/0008-RH-multipathd-blacklist-all-by-default.patch [new file with mode: 0644]
multipath-tools/patches/0009-RH-add-mpathconf.patch [new file with mode: 0644]
multipath-tools/patches/0009-RH-multipathd-blacklist-all-by-default.patch [deleted file]
multipath-tools/patches/0010-RH-add-find-multipaths.patch [new file with mode: 0644]
multipath-tools/patches/0011-RH-add-hp_tur-checker.patch [moved from multipath-tools/patches/0014-RH-add-hp_tur-checker.patch with 58% similarity]
multipath-tools/patches/0011-RH-fix-init-script-LSB-headers.patch [deleted file]
multipath-tools/patches/0012-RH-RHEL5-style-partitions.patch [moved from multipath-tools/patches/0022-RHBZ-557845-RHEL5-style-partitions.patch with 81% similarity]
multipath-tools/patches/0012-RH-udev-sync-support.patch [deleted file]
multipath-tools/patches/0013-RH-add-weighted_prio-prioritizer.patch [deleted file]
multipath-tools/patches/0013-RH-dont-remove-map-on-enomem.patch [new file with mode: 0644]
multipath-tools/patches/0014-RH-deprecate-uid-gid-mode.patch [new file with mode: 0644]
multipath-tools/patches/0015-RH-add-multipathd-count-paths-cmd.patch [deleted file]
multipath-tools/patches/0015-RH-use-sync-support.patch [new file with mode: 0644]
multipath-tools/patches/0016-RH-change-configs.patch [new file with mode: 0644]
multipath-tools/patches/0016-RHBZ-554561-fix-init-error-msg.patch [deleted file]
multipath-tools/patches/0017-RHBZ-554592-man-page-note.patch [deleted file]
multipath-tools/patches/0018-RHBZ-554596-SUN-6540-config.patch [deleted file]
multipath-tools/patches/0019-RHBZ-554598-fix-multipath-locking.patch [deleted file]
multipath-tools/patches/0020-RHBZ-554605-fix-manual-failover.patch [deleted file]
multipath-tools/patches/0021-RHBZ-548874-add-find-multipaths.patch [deleted file]
multipath-tools/patches/0023-RHBZ-557810-emc-invista-config.patch [deleted file]
multipath-tools/patches/0024-RHBZ-565933-checker-timeout.patch [deleted file]
ncurses/ncurses.nm
nettle/nettle.nm
network/network.nm
newt/newt.nm
nspr/nspr.nm
nss/nss-util-config.in [new file with mode: 0644]
nss/nss-util.pc.in [new file with mode: 0644]
nss/nss.nm
nss_ldap/nss_ldap.nm
openssh/openssh.nm
openssh/systemd/sshd-keygen.service
openssh/systemd/sshd.service
openssh/systemd/sshd.socket [deleted file]
openssh/systemd/sshd@.service [deleted file]
openssl/openssl.nm
openssl/patches/openssl-1.0.0-fips-pkcs8.patch [new file with mode: 0644]
openssl/patches/openssl-1.0.1-beta2-ssl-op-all.patch
openssl/patches/openssl-1.0.1-beta4-fips-md5-allow.patch [deleted file]
openssl/patches/openssl-1.0.1-version.patch
openssl/patches/openssl-1.0.1a-algo-doc.patch [moved from openssl/patches/openssl-1.0.0-beta4-algo-doc.patch with 52% similarity]
openssl/patches/openssl-1.0.1b-fips.patch [moved from openssl/patches/openssl-1.0.1-beta3-fips.patch with 86% similarity]
pakfire/pakfire.nm
pakfire/patches/pakfire-0.9.20-change-default-hub-to-pakfirehub.ipfire.org.patch [deleted file]
pakfire/patches/pakfire-0.9.20-check-for-nested-BUILDROOT.patch [deleted file]
pakfire/patches/pakfire-0.9.20-dont-download-mirrorlists.patch [deleted file]
pakfire/patches/pakfire-0.9.20-fix-library-check.patch [deleted file]
pakfire/patches/pakfire-0.9.20-fix-ls-dir-listing.patch [deleted file]
pakfire/patches/pakfire-0.9.20-fix-searching-too-deep.patch [deleted file]
pakfire/patches/pakfire-0.9.20-pkgconfig-deps.patch [deleted file]
pakfire/patches/pakfire-0.9.20-python-abi-find-requires.patch [deleted file]
pakfire/patches/pakfire-0.9.20-revert-libs-location-in-usr.patch [deleted file]
pakfire/patches/pakfire-0.9.20-sharedstatedir.patch [deleted file]
pakfire/patches/pakfire-0.9.20-update-repositories-only-when-are-actually-enabled.patch [deleted file]
pam/man/config-util.5 [new file with mode: 0644]
pam/man/postlogin.5 [new file with mode: 0644]
pam/man/system-auth.5 [new file with mode: 0644]
pam/pam.d/config-util [new file with mode: 0644]
pam/pam.d/fingerprint-auth [new file with mode: 0644]
pam/pam.d/password-auth [new file with mode: 0644]
pam/pam.d/postlogin [new file with mode: 0644]
pam/pam.d/smartcard-auth [new file with mode: 0644]
pam/pam.d/system-auth
pam/pam.nm
pam_ldap/pam_ldap.nm
pango/pango.nm
pcre/pcre.nm
pdns/patches/pdns-fix-lua-detection.patch [deleted file]
pdns/pdns.nm
perl-BDB/perl-BDB.nm [new file with mode: 0644]
perl-Coro/perl-Coro.nm [new file with mode: 0644]
perl-DBI/perl-DBI.nm [new file with mode: 0644]
perl-FCGI/perl-FCGI.nm
perl-Font-TTF/perl-Font-TTF.nm [new file with mode: 0644]
perl-IO-AIO/perl-IO-AIO.nm [new file with mode: 0644]
perl-common-sense/perl-common-sense.nm [new file with mode: 0644]
pigz/pigz.nm [new file with mode: 0644]
pixman/pixman.nm
plymouth/boot-duration [new file with mode: 0644]
plymouth/patches/plymouth-0.8.0-everything-is-better-in-red.patch [new file with mode: 0644]
plymouth/patches/plymouth-0.8.6.1-create-missing-links-for-systemd-targets.patch [new file with mode: 0644]
plymouth/plymouth-update-initrd [new file with mode: 0644]
plymouth/plymouth.nm [new file with mode: 0644]
policycoreutils/patches/policycoreutils-rhat.patch2 [new file with mode: 0644]
policycoreutils/patches/policycoreutils-sepolgen.patch2 [new file with mode: 0644]
policycoreutils/policycoreutils.nm [new file with mode: 0644]
policycoreutils/semanage-bash-completion.sh [new file with mode: 0644]
policycoreutils/systemd/restorecond.service [new file with mode: 0644]
popt/popt.nm
powertop/powertop.nm
ppl/ppl.nm
ppp/ppp.nm
ppp/systemd/pppd@.service [new file with mode: 0644]
psmisc/psmisc.nm
pyQt/patches/PyQt-x11-gpl-4.6.2-timestamp-multilib.patch [deleted file]
pyQt/patches/PyQt-x11-gpl-4.8.3-pyuic_shbang.patch [deleted file]
pyQt/pyQt.nm
pygobject2/pygobject2.nm
pygpgme/pygpgme.nm [new file with mode: 0644]
python-cairo/python-cairo.nm
python-qtermwidget/python-qtermwidget.nm
python-setuptools/python-setuptools.nm
python/patches/python-force-sys-platform-to-be-linux2.patch [deleted file]
python/python-2.7.3-lib64.patch [moved from python/python-2.7.1-lib64.patch with 97% similarity]
python/python.nm
qt/patches/0002-This-patch-makes-override-redirect-windows-popup-men.patch [deleted file]
qt/patches/0004-This-patch-adds-support-for-using-isystem-to-allow-p.patch [deleted file]
qt/patches/0005-When-tabs-are-inserted-or-removed-in-a-QTabBar.patch [deleted file]
qt/patches/0012-Add-context-to-tr-calls-in-QShortcut.patch [deleted file]
qt/patches/qt-4.6.3-bn-rendering-bz562049.patch [deleted file]
qt/patches/qt-4.6.3-bn-rendering-bz562058.patch [deleted file]
qt/patches/qt-4.6.3-indic-rendering-bz631732.patch [deleted file]
qt/patches/qt-4.6.3-indic-rendering-bz636399.patch [deleted file]
qt/patches/qt-4.8.0-CVE-2011-3922-bz#772125.patch [new file with mode: 0644]
qt/patches/qt-4.8.1-fix-no-xshape-broken-build.patch [new file with mode: 0644]
qt/patches/qt-4.8.1-webkit-no_Werror.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch
qt/patches/qt-everywhere-opensource-src-4.7.0-CVE-2010-1822-crash-svg-image.patch [deleted file]
qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-13567-QTreeView.patch [deleted file]
qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-6185.patch [deleted file]
qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-qtwebkit_pluginpath.patch [deleted file]
qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-s390x.patch [deleted file]
qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-uic_multilib.patch [deleted file]
qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-kde4_plugins.patch [deleted file]
qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-phonon_servicesfile.patch [deleted file]
qt/patches/qt-everywhere-opensource-src-4.7.0-bpp24.patch [deleted file]
qt/patches/qt-everywhere-opensource-src-4.7.1-QTBUG-14467.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.7.4-tds_no_strict_aliasing.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-QTBUG-14724.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-QTBUG-21900.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-beta1-s390.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-gcc-4.7.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-ld-gold.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-qvfb.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-rc1-moc-boost148.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-s390-atomic.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-timestamp.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.0-tp-qtreeview-kpackagekit-crash.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.1-QTBUG-24718.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.1-icu_no_debug.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.1-linguist_qmake-qt4.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.1-qdbusconnection_no_debug.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.1-qtgahandle.patch [new file with mode: 0644]
qt/patches/qt-everywhere-opensource-src-4.8.1-type.patch [new file with mode: 0644]
qt/patches/qt-x11-opensource-src-4.2.2-multilib-optflags.patch [deleted file]
qt/qt.nm
radvd/radvd.nm
radvd/systemd/radvd.service
readline/readline.nm
rp-pppoe/rp-pppoe.nm [new file with mode: 0644]
rp-pppoe/systemd/pppoe-server@.service [new file with mode: 0644]
rsyslog/rsyslog.nm
samba/samba.nm
samba/samba.pamd [new file with mode: 0644]
samba/smb.conf [new file with mode: 0644]
samba/systemd/nmb.service [new file with mode: 0644]
samba/systemd/smb.service [new file with mode: 0644]
samba/systemd/winbind.service [new file with mode: 0644]
sed/sed.nm
setools/patches/0001-add-setools-seinfo-and-sesearch-python-bindings.patch [new file with mode: 0644]
setools/patches/0002-setools-should-exit-with-an-error-status-if-it-gets-.patch [new file with mode: 0644]
setools/patches/0003-Since-we-do-not-ship-neverallow-rules-all-always-fai.patch [new file with mode: 0644]
setools/patches/0004-Fix-man-pages-and-getoptions.patch [new file with mode: 0644]
setools/patches/0005-Fix-sepol-calls-to-work-with-latest-libsepol.patch [new file with mode: 0644]
setools/patches/0006-Changes-to-support-named-file_trans-rules.patch [new file with mode: 0644]
setools/patches/0007-Remove-unused-variables.patch [new file with mode: 0644]
setools/patches/0008-Fix-output-to-match-policy-lines.patch [new file with mode: 0644]
setools/setools.nm [new file with mode: 0644]
setup/profile
setup/setup.nm
sip/sip.nm
squid/squid.nm
strace/patches/strace-4.5.19-fix-kernel-headers.patch [deleted file]
strace/strace.nm
strongswan/strongswan.nm
sudo/sudo.nm
suricata/suricata.nm
systemd/patches/systemd-187-ipfire.patch [new file with mode: 0644]
systemd/patches/systemd-ipfire.patch [deleted file]
systemd/systemd.nm
tar/tar.nm
tcl/tcl.nm
transifex-client/transifex-client.nm [new file with mode: 0644]
udev/udev.nm [deleted file]
ulogd2/patches/0001-sqlite3-Add-more-logging-if-database-initialization-fails.patch [new file with mode: 0644]
ulogd2/ulogd2.nm
unicode-ucd/unicode-ucd.nm [new file with mode: 0644]
usbutils/patches/usbutils-003-hwdata.patch [new file with mode: 0644]
usbutils/patches/usbutils-make-hwdata.patch [new file with mode: 0644]
usbutils/usbutils.nm
util-linux/util-linux.nm
vim/patches/download.sh [new file with mode: 0644]
vim/patches/vim-7.3.082.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.083.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.084.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.085.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.086.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.087.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.088.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.089.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.090.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.091.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.092.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.093.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.094.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.095.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.096.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.097.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.098.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.099.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.100.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.101.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.102.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.103.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.104.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.105.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.106.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.107.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.108.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.109.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.110.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.111.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.112.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.113.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.114.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.115.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.116.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.117.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.118.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.119.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.120.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.121.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.122.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.123.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.124.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.125.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.126.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.127.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.128.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.129.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.130.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.131.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.132.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.133.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.134.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.135.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.136.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.137.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.138.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.139.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.140.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.141.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.142.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.143.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.144.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.145.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.146.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.147.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.148.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.149.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.150.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.151.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.152.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.153.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.154.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.155.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.156.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.157.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.158.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.159.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.160.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.161.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.162.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.163.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.164.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.165.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.166.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.167.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.168.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.169.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.170.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.171.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.172.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.173.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.174.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.175.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.176.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.177.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.178.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.179.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.180.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.181.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.182.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.183.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.184.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.185.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.186.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.187.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.188.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.189.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.190.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.191.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.192.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.193.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.194.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.195.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.196.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.197.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.198.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.199.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.200.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.201.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.202.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.203.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.204.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.205.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.206.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.207.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.208.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.209.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.210.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.211.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.212.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.213.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.214.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.215.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.216.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.217.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.218.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.219.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.220.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.221.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.222.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.223.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.224.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.225.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.226.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.227.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.228.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.229.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.230.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.231.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.232.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.233.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.234.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.235.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.236.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.237.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.238.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.239.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.240.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.241.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.242.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.243.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.244.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.245.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.246.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.247.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.248.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.249.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.250.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.251.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.252.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.253.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.254.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.255.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.256.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.257.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.258.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.259.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.260.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.261.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.262.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.263.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.264.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.265.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.266.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.267.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.268.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.269.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.270.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.271.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.272.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.273.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.274.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.275.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.276.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.277.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.278.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.279.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.280.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.281.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.282.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.283.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.284.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.285.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.286.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.287.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.288.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.289.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.290.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.291.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.292.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.293.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.294.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.295.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.296.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.297.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.298.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.299.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.300.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.301.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.302.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.303.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.304.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.305.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.306.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.307.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.308.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.309.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.310.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.311.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.312.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.313.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.314.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.315.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.316.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.317.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.318.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.319.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.320.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.321.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.322.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.323.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.324.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.325.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.326.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.327.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.328.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.329.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.330.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.331.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.332.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.333.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.334.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.335.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.336.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.337.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.338.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.339.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.340.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.341.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.342.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.343.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.344.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.345.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.346.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.347.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.348.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.349.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.350.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.351.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.352.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.353.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.354.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.355.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.356.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.357.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.358.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.359.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.360.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.361.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.362.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.363.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.364.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.365.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.366.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.367.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.368.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.369.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.370.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.371.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.372.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.373.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.374.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.375.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.376.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.377.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.378.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.379.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.380.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.381.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.382.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.383.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.384.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.385.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.386.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.387.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.388.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.389.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.390.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.391.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.392.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.393.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.394.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.395.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.396.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.397.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.398.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.399.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.400.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.401.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.402.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.403.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.404.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.405.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.406.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.407.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.408.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.409.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.410.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.411.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.412.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.413.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.414.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.415.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.416.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.417.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.418.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.419.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.420.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.421.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.422.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.423.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.424.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.425.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.426.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.427.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.428.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.429.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.430.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.431.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.432.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.433.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.434.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.435.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.436.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.437.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.438.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.439.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.440.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.441.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.442.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.443.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.444.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.445.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.446.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.447.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.448.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.449.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.450.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.451.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.452.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.453.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.454.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.455.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.456.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.457.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.458.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.459.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.460.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.461.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.462.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.463.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.464.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.465.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.466.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.467.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.468.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.469.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.470.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.471.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.472.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.473.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.474.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.475.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.476.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.477.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.478.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.479.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.480.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.481.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.482.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.483.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.484.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.485.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.486.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.487.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.488.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.489.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.490.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.491.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.492.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.493.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.494.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.495.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.496.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.497.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.498.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.499.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.500.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.501.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.502.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.503.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.504.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.505.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.506.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.507.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.508.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.509.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.510.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.511.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.512.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.513.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.514.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.515.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.516.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.517.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.518.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.519.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.520.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.521.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.522.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.523.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.524.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.525.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.526.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.527.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.528.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.529.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.530.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.531.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.532.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.533.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.534.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.535.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.536.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.537.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.538.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.539.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.540.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.541.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.542.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.543.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.544.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.545.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.546.patch0 [new file with mode: 0644]
vim/patches/vim-7.3.547.patch0 [new file with mode: 0644]
vim/vim.nm
vlan/vlan.nm
wavemon/wavemon.nm
wpa_supplicant/wpa_supplicant.nm
xclock/xclock.nm [new file with mode: 0644]
xen/xen.nm
xfsprogs/xfsprogs.nm
xmlto/xmlto.nm
xorg-x11-server/xorg-x11-server.nm
xz/xz.nm
zlib/zlib.nm

index 5e22e0591e980573f490cbcccd271a4506e81950..21fd5155ff3ce3ca97fdabdf0a33b1c5bf6a64a8 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = SDL
-version    = 1.2.14
+version    = 1.2.15
 release    = 1
 
 groups     = System/Libraries
@@ -22,18 +22,40 @@ source_dl  = http://www.libsdl.org/release/
 
 build
        requires
-               directfb-devel
                libusb-compat-devel
-               pkg-config
+               libX11-devel
+               libXext-devel
+               libXrandr-devel
+               libXrender-devel
+               mesa-devel
        end
+
+       if "%{DISTRO_PLATFORM}" == "x86"
+               requires += nasm
+       end
+
+       configure_options += \
+               --disable-video-svga \
+               --disable-video-ggi \
+               --disable-video-aalib \
+               --disable-video-ps3 \
+               --enable-sdl-dlopen
 end
 
 packages
        package %{name}
-       end
 
        package %{name}-devel
                template DEVEL
+
+               requires
+                       libX11-devel
+                       libXext-devel
+                       libXrandr-devel
+                       libXrender-devel
+                       mesa-devel
+                       SDL = %{thisver}
+               end
        end
 
        package %{name}-debuginfo
index 8c6f0c4de1acd48232b85fff9e1ab26b4001c236..d75ededafc6db7ddebd9a867ea313621c99a488a 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = acl
 version    = 2.2.51
-release    = 1
+release    = 3
 
 groups     = System/Filesystems
 url        = http://oss.sgi.com/projects/xfs/
@@ -29,7 +29,7 @@ build
        end
 
        configure_options += \
-               --bindir=/bin \
+               --libexecdir=%{libdir} \
                --disable-static
 
        make_build_targets += LIBTOOL="libtool --tag=CC"
@@ -38,16 +38,11 @@ build
                make tests
        end
 
+       make_install_targets += install-dev install-lib
+
        install_cmds
-               mkdir -pv %{BUILDROOT}%{libdir}
-               install -v -m0755 libacl/.libs/libacl.so.1.1.0 %{BUILDROOT}%{libdir}
-               ln -vsf libacl.so.1.1.0 %{BUILDROOT}%{libdir}/libacl.so.1
-               ln -vsf libacl.so.1 %{BUILDROOT}%{libdir}/libacl.so
-
-               # Install headers.
-               mkdir -pv %{BUILDROOT}%{includedir}/{acl,sys}
-               cp -vf include/libacl.h %{BUILDROOT}%{includedir}/acl/
-               cp -vf include/acl.h %{BUILDROOT}%{includedir}/sys/
+               # Fix library permissions.
+               chmod 755 %{BUILDROOT}%{libdir}/libacl.so.*
        end
 end
 
index b0baa161ae076ffbd973e8f6fa8106754139eb50..0973b036ba5abb8b99e2735b8b1f0146da5df416 100644 (file)
@@ -4,8 +4,11 @@
 ###############################################################################
 
 name       = acpid
-version    = 2.0.9
-release    = 5
+version    = 2.0.16
+release    = 1
+
+# ACPI is only available on x86 architectures.
+sup_arches = x86_64 i686
 
 groups     = System/Daemons
 url        = http://tedfelix.com/linux/acpid-netlink.html
@@ -17,26 +20,40 @@ description
 end
 
 source_dl  = http://tedfelix.com/linux/
+sources    = %{thisapp}.tar.xz
 
 build
-       build
-               sed -e "s/-Werror//g" -i Makefile
-               make CC=gcc RPM_OPT_FLAGS="%{CFLAGS}" %{PARALLLEISMFLAGS}
-       end
-
        install_cmds
                mkdir -pv %{BUILDROOT}/etc/acpi/{actions,events}
                cp -vf %{DIR_SOURCE}/power %{BUILDROOT}/etc/acpi/events/
                cp -vf %{DIR_SOURCE}/power.sh %{BUILDROOT}/etc/acpi/actions/
-
-               mkdir -pv %{BUILDROOT}/etc/sysconfig
-               cp -vf %{DIR_SOURCE}/acpid.sysconfig %{BUILDROOT}/etc/sysconfig/acpid
        end
 end
 
 packages
        package %{name}
                groups += Base
+
+               script postin
+                       /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+
+                       # ACPI is enabled by default.
+                       /usr/bin/systemctl --no-reload enable acpid.service >/dev/null 2>&1 || :
+               end
+
+               script preun
+                       /usr/bin/systemctl --no-reload disable acpid.service >/dev/null 2>&1 || :
+                       /usr/bin/systemctl stop acpid.service >/dev/null 2>&1 || :
+               end
+
+               script postun
+                       /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postup
+                       /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+                       /usr/bin/systemctl try-restart acpid.service >/dev/null 2>&1 || :
+               end
        end
 
        package %{name}-debuginfo
diff --git a/acpid/acpid.sysconfig b/acpid/acpid.sysconfig
deleted file mode 100644 (file)
index f0d2bfb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-OPTIONS=
diff --git a/acpid/patches/acpid-2.0.15-makefile.patch b/acpid/patches/acpid-2.0.15-makefile.patch
new file mode 100644 (file)
index 0000000..0168986
--- /dev/null
@@ -0,0 +1,24 @@
+diff -up acpid-2.0.15/Makefile.am.mk acpid-2.0.15/Makefile.am
+--- acpid-2.0.15/Makefile.am.mk        2012-02-17 04:37:12.109907134 +0100
++++ acpid-2.0.15/Makefile.am   2012-03-16 11:27:15.127573044 +0100
+@@ -20,7 +20,7 @@ acpi_listen_SOURCES = acpi_listen.c log.
+ dist_man8_MANS = acpid.8 acpi_listen.8
+-dist_doc_DATA = COPYING Changelog README TESTPLAN TODO
++dist_doc_DATA = 
+ # Just docs to add to the dist.
+ # One problem with this is that it includes all files in the samples dir 
+diff -up acpid-2.0.15/Makefile.in.mk acpid-2.0.15/Makefile.in
+--- acpid-2.0.15/Makefile.in.mk        2012-03-16 11:28:53.568421905 +0100
++++ acpid-2.0.15/Makefile.in   2012-03-16 11:29:21.679378750 +0100
+@@ -276,7 +276,7 @@ acpid_SOURCES = acpid.c acpi_ids.c conne
+ acpi_listen_SOURCES = acpi_listen.c log.c ud_socket.c
+ dist_man8_MANS = acpid.8 acpi_listen.8
+-dist_doc_DATA = COPYING Changelog README TESTPLAN TODO
++dist_doc_DATA = 
+ # Just docs to add to the dist.
+ # One problem with this is that it includes all files in the samples dir 
diff --git a/acpid/patches/acpid-2.0.2-makefile.patch b/acpid/patches/acpid-2.0.2-makefile.patch
deleted file mode 100644 (file)
index 0ba9e79..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up acpid-2.0.2/Makefile.makefile acpid-2.0.2/Makefile
-diff -up acpid-2.0.2/Makefile.makefile acpid-2.0.2/Makefile
-diff -up acpid-2.0.2/Makefile.makefile acpid-2.0.2/Makefile
-diff -up acpid-2.0.2/Makefile.makefile acpid-2.0.2/Makefile
-diff -up acpid-2.0.2/Makefile.makefile acpid-2.0.2/Makefile
---- acpid-2.0.2/Makefile.makefile      2010-01-27 00:36:23.000000000 +0100
-+++ acpid-2.0.2/Makefile       2010-02-25 16:01:39.641024017 +0100
-@@ -31,8 +31,9 @@ MAN8GZ = $(MAN8:.8=.8.gz)
- DOCS = COPYING Changelog README TESTPLAN TODO 
--CFLAGS = -W -Wall -Werror -Wundef -Wshadow -D_GNU_SOURCE $(OPT) \
--      -fno-strict-aliasing -g $(DEFS)
-+CFLAGS = -W -Wall -Werror -Wundef -Wshadow -D_GNU_SOURCE -O2 $(OPT) \
-+      -fno-strict-aliasing -g $(DEFS) $(RPM_OPT_FLAGS) -fPIE
-+LDFLAGS = -pie -Wl,-z,relro
- DEFS = -DVERSION="\"$(VERSION)\""
- all: $(PROGS)
-@@ -46,8 +47,8 @@ man: $(MAN8)
- install_docs:
-       mkdir -p $(DESTDIR)/$(DOCDIR)
--      for a in $(DOCS); do install -m 0644 $$a $(DESTDIR)/$(DOCDIR) ; done
--      cp -a samples $(DESTDIR)/$(DOCDIR)
-+      #for a in $(DOCS); do install -m 0644 $$a $(DESTDIR)/$(DOCDIR) ; done
-+      #cp -a samples $(DESTDIR)/$(DOCDIR)
- install: $(PROGS) man install_docs
-       mkdir -p $(DESTDIR)/$(SBINDIR)
index 553b3e2ff73d00c62ac1ecd0b941d9f432003ec3..0826d86e14985c1ca3cc814eed6766af305e2198 100644 (file)
@@ -2,17 +2,9 @@
 Description=ACPI Event Daemon
 After=syslog.target
 
-# This could probably benefit from socket activation, but honestly I think it
-# is time for acpid to go away, and hence I am not planning to spend the time
-# to add socket activation here. We use Type=forking to ensure that the
-# communication sockets are in place before boot proceeds with any service
-# needing this service. Would acpid support socket activation we could use
-# Type=simple here.
-
 [Service]
 Type=forking
-EnvironmentFile=/etc/sysconfig/acpid
-ExecStart=/usr/sbin/acpid $OPTIONS
+ExecStart=/usr/sbin/acpid
 
 [Install]
 WantedBy=multi-user.target
index 3dc8a6be4df3cf743082b4b7e9401fa5c24c0deb..a4632da94ab0561b7abfb1919c3a073f786f57aa 100644 (file)
@@ -5,10 +5,10 @@
 
 name       = apr-util
 version    = 1.4.1
-release    = 1
+release    = 2
 
 groups     = System/Libraries
-url        = ttp://apr.apache.org/
+url        = http://apr.apache.org/
 license    = ASL 2.0
 summary    = Apache Portable Runtime library.
 
index 54592c8a0aaa47d223e6c6e7803d3bf3866645cc..31144ecada4cf5500ab3fd8741af65ff9a615817 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = attr
 version    = 2.4.43
-release    = 3
+release    = 7
 
 groups     = System/Filesystems
 url        = http://oss.sgi.com/projects/xfs/
@@ -13,7 +13,7 @@ license    = GPLv2+ LGPLv2+
 summary    = Tools for extended attribute support.
 
 description
-       A set of tools for manipulating extended attributes on filesystem \
+       A set of tools for manipulating extended attributes on filesystem
        objects.
 end
 
@@ -26,22 +26,19 @@ build
        end
 
        configure_options += \
-               --bindir=/bin \
+               --libexecdir=%{libdir} \
                --enable-shared
 
        make_build_targets += LIBTOOL="libtool --tag=CC"
+       make_install_targets += install-lib install-dev
 
        install_cmds
-               # Install libraries.
-               mkdir -pv %{BUILDROOT}/%{lib} %{BUILDROOT}%{libdir}
-               install -v -m0755 libattr/.libs/libattr.so.1.1.0 %{BUILDROOT}/%{lib}
-               ln -vsf libattr.so.1.1.0 %{BUILDROOT}/%{lib}/libattr.so.1
-               ln -vsf ../../%{lib}/libattr.so.1 %{BUILDROOT}%{libdir}/libattr.so
+               # Fix absolute symlink.
+               rm -rvf %{BUILDROOT}%{libdir}/libattr.so
+               ln -svf libattr.so.1 %{BUILDROOT}%{libdir}/libattr.so
 
-               # Install includes.
-               install -v -d %{BUILDROOT}%{includedir}/attr
-               cp -vf include/{attributes.h,error_context.h,libattr.h,xattr.h} \
-                       %{BUILDROOT}%{includedir}/attr/
+               # Fix library permissions.
+               chmod 755 %{BUILDROOT}%{libdir}/libattr.so.*
        end
 end
 
diff --git a/attr/patches/attr-2.4.46-build.patch b/attr/patches/attr-2.4.46-build.patch
new file mode 100644 (file)
index 0000000..44d5c26
--- /dev/null
@@ -0,0 +1,38 @@
+diff -Nur a/include/builddefs.in b/include/builddefs.in
+--- a/include/builddefs.in     2008-06-30 07:38:27.000000000 +0200
++++ b/include/builddefs.in     2012-04-12 22:20:47.479076688 +0200
+@@ -27,14 +27,14 @@
+ PKG_VERSION   = @pkg_version@
+ PKG_PLATFORM  = @pkg_platform@
+ PKG_DISTRIBUTION= @pkg_distribution@
+-PKG_BIN_DIR   = @bindir@
+-PKG_SBIN_DIR  = @sbindir@
+-PKG_LIB_DIR   = @libdir@@libdirsuffix@
+-PKG_DEVLIB_DIR        = @libexecdir@@libdirsuffix@
+-PKG_INC_DIR   = @includedir@/attr
+-PKG_MAN_DIR   = @mandir@
+-PKG_DOC_DIR   = @datadir@/doc/@pkg_name@
+-PKG_LOCALE_DIR        = @datadir@/locale
++PKG_BIN_DIR   = $(DESTDIR)@bindir@
++PKG_SBIN_DIR  = $(DESTDIR)@sbindir@
++PKG_LIB_DIR   = $(DESTDIR)@libdir@@libdirsuffix@
++PKG_DEVLIB_DIR        = $(DESTDIR)@libexecdir@@libdirsuffix@
++PKG_INC_DIR   = $(DESTDIR)@includedir@/attr
++PKG_MAN_DIR   = $(DESTDIR)@mandir@
++PKG_DOC_DIR   = $(DESTDIR)@datadir@/doc/@pkg_name@
++PKG_LOCALE_DIR        = $(DESTDIR)@datadir@/locale
+ CC            = @cc@
+ AWK           = @awk@
+diff -Nur a/include/buildmacros b/include/buildmacros
+--- a/include/buildmacros      2008-06-30 07:22:18.000000000 +0200
++++ b/include/buildmacros      2012-04-12 22:21:18.737379800 +0200
+@@ -27,7 +27,7 @@
+         $(LFILES:.l=.o) \
+         $(YFILES:%.y=%.tab.o)
+-INSTALL       = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP)
++INSTALL       = $(TOPDIR)/install-sh
+ SHELL = /bin/sh
+ IMAGES_DIR = $(TOPDIR)/all-images
index b62a9789fc44a22278176a37402729e5f13eb4dc..de634d824b01c40b7b3b670f4c0af0fe8f0466bd 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = audit
 version    = 2.2
-release    = 1
+release    = 2
 
 groups     = System/Daemons
 url        = http://people.redhat.com/sgrubb/audit/
@@ -32,9 +32,6 @@ build
        end
 
        configure_options += \
-               --sysconfdir=/etc \
-               --sbindir=/sbin \
-               --libdir=/%{lib} \
                --without-prelude \
                --without-libwrap \
                --enable-gssapi-krb5=no \
@@ -45,13 +42,6 @@ build
        end
 
        install_cmds
-               rm -vf %{BUILDROOT}/%{lib}/libau{dit,parse}.so
-               ln -svf ../../%{lib}/libaudit.so.1 %{BUILDROOT}%{libdir}/libaudit.so
-               ln -svf ../../%{lib}/libauparse.so.0 %{BUILDROOT}%{libdir}/libauparse.so
-
-               mkdir -pv %{BUILDROOT}/usr/sbin/
-               mv -v %{BUILDROOT}/sbin/audisp*remote %{BUILDROOT}/usr/sbin/
-
                mkdir -pv %{BUILDROOT}/var/log/audit
 
                rm -rfv %{BUILDROOT}/etc/{rc.d,sysconfig}
@@ -100,7 +90,7 @@ packages
                description = %{summary}
 
                files
-                       /usr/lib/python*/
+                       %{libdir}/python*/
                end
        end
 
index 12b7230cb1fd48e7e4e5f156001c0493a178ee9c..73db0592811e76ed75d3ac17e18fc5e0eaf89c50 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = authconfig
-version    = 6.1.14
-release    = 2
+version    = 6.2.2
+release    = 4
 
 groups     = System/Base
 url        = https://fedorahosted.org/authconfig
@@ -13,9 +13,9 @@ license    = GPLv2+
 summary    = Command line tool for setting up authentication from network services.
 
 description
-       Authconfig is a command line utility which can configure a workstation\
-       to use shadow (more secure) passwords.  Authconfig can also configure a \
-       system to be a client for certain networked user information and \
+       Authconfig is a command line utility which can configure a workstation
+       to use shadow (more secure) passwords.  Authconfig can also configure a
+       system to be a client for certain networked user information and
        authentication schemes.
 end
 
@@ -28,6 +28,9 @@ build
                python-devel
        end
 
+       # Manually link against libresolv.
+       export LDFLAGS += -lresolv
+
        configure_options += \
                --sysconfdir=/etc \
                --localstatedir=/var \
@@ -61,12 +64,23 @@ build
 
                # Remove app icons for authconfig
                rm -rf %{BUILDROOT}/usr/share/icons
+
+               # Remove unneded stuff for X11
+               rm -rf %{BUILDROOT}/etc/X11
        end
 end
 
 packages
        package %{name}
-               requires += newt-python
+               requires
+                       libpwquality
+                       newt-python
+               end
+
+               configfiles
+                       %{sysconfdir}/sysconfig/authconfig
+                       %{sysconfdir}/pam.d
+               end
        end
 
        package %{name}-devel
index 295d64c2795326af4116657b72b75b3af333ccba..cb08c29740f555a5aa3ece3927e074f635ad4e42 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = autoconf
-version    = 2.68
-release    = 2
+version    = 2.69
+release    = 1
 arch       = noarch
 
 groups     = Development/Tools
index 6921d92b635a343074841f91ba17e2ebcea35194..e2ebba9c26d9557460694ce6f3080fce8559b8cb 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = automake
-version    = 1.11.3
+version    = 1.12.2
 release    = 1
 arch       = noarch
 
index a0d4e98b850770998e05fce0854fbb939afd45b9..1041320da9275b6ee608c3cfc54efbf097406fdb 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = avahi
 version    = 0.6.30
-release    = 1
+release    = 4
 
 groups     = Networking/Zeroconf
 url        = http://avahi.org/
@@ -13,12 +13,12 @@ license    = LGPLv2+
 summary    = Local network service discovery
 
 description
-       Avahi is a system which facilitates service discovery on \
-       a local network -- this means that you can plug your laptop or \
-       computer into a network and instantly be able to view other people who \
-       you can chat with, find printers to print to or find files being \
-       shared. This kind of technology is already found in MacOS X (branded \
-       'Rendezvous', 'Bonjour' and sometimes 'ZeroConf') and is very \
+       Avahi is a system which facilitates service discovery on
+       a local network -- this means that you can plug your laptop or
+       computer into a network and instantly be able to view other people who
+       you can chat with, find printers to print to or find files being
+       shared. This kind of technology is already found in MacOS X (branded
+       'Rendezvous', 'Bonjour' and sometimes 'ZeroConf') and is very
        convenient.
 end
 
@@ -38,14 +38,12 @@ build
                pkg-config
                python-devel
                python-dbus
+               systemd-units
        end
 
        configure_options += \
-               --bindir=/bin \
-               --mandir=/usr/share/man \
-               --sysconfdir=/etc \
-               --localstatedir=/var \
                --with-distro=none \
+               --with-systemdsystemunitdir=%{unitdir} \
                --disable-gdbm \
                --disable-qt3 \
                --disable-qt4 \
@@ -57,7 +55,49 @@ end
 
 packages
        package %{name}
-               requires = libdaemon>=0.14
+               requires
+                       libdaemon>=0.14
+               end
+
+               prerequires += shadow-utils
+
+               # Create avahi user and group.
+               script prein
+                       getent group avahi >/dev/null || groupadd -r avahi
+                       getent passwd avahi >/dev/null || \
+                               useradd -r -g avahi -d /run/avahi-daemon -s /sbin/nologin \
+                               -c "Avahi mDNS/DNS-SD Stack" avahi
+                       exit  0
+               end
+
+               # Just search for new unit files that were just installed.
+               script postin
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+
+                       # Reload dbus configuration.
+                       systemctl reload dbus.service >/dev/null 2>&1 || :
+               end
+
+               # Disable the service that is to be removed and stop it if it is still running.
+               script preun
+                       systemctl --no-reload disable avahi-daemon.service >/dev/null 2>&1 || :
+                       systemctl stop avahi-daemon.service avahi-dnsconfd.service >/dev/null 2>&1 || :
+               end
+
+               # Just tell systemd that unitfiles have been removed.
+               script postun
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               # Try to restart the service if it is running.
+               script postup
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+
+                       # Reload dbus configuration.
+                       systemctl reload dbus.service >/dev/null 2>&1 || :
+
+                       systemctl try-restart avahi-daemon.service avahi-dnsconfd.service >/dev/null 2>&1 || :
+               end
        end
 
        package %{name}-devel
index f2a57a2da8059b8ae144c97e4987dda682adf901..d78fb71c62bd6a6ceaf2d48fbd3e68c689269428 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = bash
 version    = 4.2
-release    = 6
+release    = 10
 
 groups     = System/Tools
 url        = http://www.gnu.org/software/bash/
@@ -26,8 +26,10 @@ build
                autoconf
                automake
                bison
+               filesystem >= 002
                ncurses-devel
                readline-devel
+               texinfo
        end
 
        prepare_cmds
@@ -41,7 +43,6 @@ build
        end
 
        configure_options += \
-               --bindir=/bin \
                --without-bash-malloc \
                --with-installed-readline
 
@@ -51,7 +52,7 @@ build
        #end
 
        install_cmds
-               mkdir -pv %{BUILDROOT}/{bin,etc/profile.d,root}
+               mkdir -pv %{BUILDROOT}/{etc/profile.d,root}
 
                # Bash startup files
                cp -vf %{DIR_SOURCE}/dot_bash_logout %{BUILDROOT}/root/.bash_logout
@@ -61,7 +62,7 @@ build
                # /etc/profile.d
                cp -vf %{DIR_SOURCE}/profile.d/* %{BUILDROOT}/etc/profile.d
 
-               ln -svf bash %{BUILDROOT}/bin/sh
+               ln -svf bash %{BUILDROOT}%{bindir}/sh
        end
 end
 
@@ -69,12 +70,21 @@ packages
        package %{name}
                groups += Base Build
 
-               prerequires = coreutils
                requires
+                       coreutils
                        /etc/bashrc
                        /etc/profile
                end
 
+               provides
+                       /bin/bash
+                       /bin/sh
+               end
+
+               conflicts
+                       filesystem < 002
+               end
+
                script posttransin
                        # Create /etc/shells, if it does not exist.
                        [ -f "/etc/shells" ] || touch /etc/shells
diff --git a/bash/patches/bash-requires.patch b/bash/patches/bash-requires.patch
new file mode 100644 (file)
index 0000000..63ef4d7
--- /dev/null
@@ -0,0 +1,311 @@
+diff -up bash-4.1/builtins.h.requires bash-4.1/builtins.h
+--- bash-4.1/builtins.h.requires       2009-01-04 20:32:23.000000000 +0100
++++ bash-4.1/builtins.h        2010-08-02 17:42:41.000000000 +0200
+@@ -41,6 +41,8 @@
+ #define SPECIAL_BUILTIN 0x08  /* This is a Posix `special' builtin. */
+ #define ASSIGNMENT_BUILTIN 0x10       /* This builtin takes assignment statements. */
+ #define POSIX_BUILTIN 0x20    /* This builtins is special in the Posix command search order. */
++#define REQUIRES_BUILTIN 0x40 /* This builtin requires other files. */
++
+ #define BASE_INDENT   4
+diff -up bash-4.1/builtins/mkbuiltins.c.requires bash-4.1/builtins/mkbuiltins.c
+--- bash-4.1/builtins/mkbuiltins.c.requires    2009-01-04 20:32:23.000000000 +0100
++++ bash-4.1/builtins/mkbuiltins.c     2010-08-02 17:42:41.000000000 +0200
+@@ -69,9 +69,15 @@ extern char *strcpy ();
+ #define whitespace(c) (((c) == ' ') || ((c) == '\t'))
+ /* Flag values that builtins can have. */
++/*  These flags are for the C code generator, 
++    the C which is produced (./builtin.c)
++    includes the flags definitions found 
++    in ../builtins.h */
+ #define BUILTIN_FLAG_SPECIAL  0x01
+ #define BUILTIN_FLAG_ASSIGNMENT 0x02
+ #define BUILTIN_FLAG_POSIX_BUILTIN 0x04
++#define BUILTIN_FLAG_REQUIRES 0x08
++
+ #define BASE_INDENT   4
+@@ -163,10 +169,18 @@ char *posix_builtins[] =
+   (char *)NULL
+ };
++/* The builtin commands that cause requirements on other files. */
++static char *requires_builtins[] =
++{
++  ".", "command", "exec", "source", "inlib",
++  (char *)NULL
++};
++
+ /* Forward declarations. */
+ static int is_special_builtin ();
+ static int is_assignment_builtin ();
+ static int is_posix_builtin ();
++static int is_requires_builtin ();
+ #if !defined (HAVE_RENAME)
+ static int rename ();
+@@ -812,6 +826,9 @@ builtin_handler (self, defs, arg)
+     new->flags |= BUILTIN_FLAG_ASSIGNMENT;
+   if (is_posix_builtin (name))
+     new->flags |= BUILTIN_FLAG_POSIX_BUILTIN;
++  if (is_requires_builtin (name))
++    new->flags |= BUILTIN_FLAG_REQUIRES;
++
+   array_add ((char *)new, defs->builtins);
+   building_builtin = 1;
+@@ -1229,11 +1246,12 @@ write_builtins (defs, structfile, extern
+                 else
+                   fprintf (structfile, "(sh_builtin_func_t *)0x0, ");
+-                fprintf (structfile, "%s%s%s%s, %s_doc,\n",
++                fprintf (structfile, "%s%s%s%s%s, %s_doc,\n",
+                   "BUILTIN_ENABLED | STATIC_BUILTIN",
+                   (builtin->flags & BUILTIN_FLAG_SPECIAL) ? " | SPECIAL_BUILTIN" : "",
+                   (builtin->flags & BUILTIN_FLAG_ASSIGNMENT) ? " | ASSIGNMENT_BUILTIN" : "",
+                   (builtin->flags & BUILTIN_FLAG_POSIX_BUILTIN) ? " | POSIX_BUILTIN" : "",
++                  (builtin->flags & BUILTIN_FLAG_REQUIRES) ? " | REQUIRES_BUILTIN" : "",
+                   document_name (builtin));
+                 fprintf
+@@ -1581,6 +1599,13 @@ is_posix_builtin (name)
+   return (_find_in_table (name, posix_builtins));
+ }
++static int
++is_requires_builtin (name)
++     char *name;
++{
++  return (_find_in_table (name, requires_builtins));
++}
++
+ #if !defined (HAVE_RENAME)
+ static int
+ rename (from, to)
+diff -up bash-4.1/doc/bash.1.requires bash-4.1/doc/bash.1
+--- bash-4.1/doc/bash.1.requires       2010-08-02 17:42:41.000000000 +0200
++++ bash-4.1/doc/bash.1        2010-08-02 18:09:27.000000000 +0200
+@@ -231,6 +231,14 @@ The shell becomes restricted (see
+ .B "RESTRICTED SHELL"
+ below).
+ .TP
++.B \-\-rpm-requires
++Produce the list of files that are required for the 
++shell script to run.  This implies '-n' and is subject
++to the same limitations as compile time error checking checking;
++Command substitutions, Conditional expressions and
++.BR eval
++builtin are not parsed so some dependencies may be missed.
++.TP
+ .B \-\-verbose
+ Equivalent to  \fB\-v\fP.
+ .TP
+diff -up bash-4.1/doc/bashref.texi.requires bash-4.1/doc/bashref.texi
+--- bash-4.1/doc/bashref.texi.requires 2010-08-02 17:42:41.000000000 +0200
++++ bash-4.1/doc/bashref.texi  2010-08-02 18:11:58.000000000 +0200
+@@ -5343,6 +5343,13 @@ standard.  @xref{Bash POSIX Mode}, for a
+ @item --restricted
+ Make the shell a restricted shell (@pxref{The Restricted Shell}).
++@item --rpm-requires
++Produce the list of files that are required for the 
++shell script to run.  This implies '-n' and is subject
++to the same limitations as compile time error checking checking;
++Command substitutions, Conditional expressions and @command{eval}
++are not parsed so some dependencies may be missed.
++
+ @item --verbose
+ Equivalent to @option{-v}.  Print shell input lines as they're read.
+diff -up bash-4.1/eval.c.requires bash-4.1/eval.c
+--- bash-4.1/eval.c.requires   2009-01-04 20:32:26.000000000 +0100
++++ bash-4.1/eval.c    2010-08-02 17:42:41.000000000 +0200
+@@ -53,6 +53,7 @@ extern int last_command_exit_value, stdi
+ extern int need_here_doc;
+ extern int current_command_number, current_command_line_count, line_number;
+ extern int expand_aliases;
++extern int rpm_requires;
+ static void send_pwd_to_eterm __P((void));
+ static sighandler alrm_catcher __P((int));
+@@ -136,7 +137,7 @@ reader_loop ()
+       if (read_command () == 0)
+       {
+-        if (interactive_shell == 0 && read_but_dont_execute)
++        if (interactive_shell == 0 && (read_but_dont_execute && !rpm_requires))
+           {
+             last_command_exit_value = EXECUTION_SUCCESS;
+             dispose_command (global_command);
+diff -up bash-4.1/execute_cmd.c.requires bash-4.1/execute_cmd.c
+--- bash-4.1/execute_cmd.c.requires    2010-08-02 17:42:41.000000000 +0200
++++ bash-4.1/execute_cmd.c     2010-08-02 17:42:41.000000000 +0200
+@@ -503,6 +503,8 @@ async_redirect_stdin ()
+ #define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0)
++extern int rpm_requires;
++
+ /* Execute the command passed in COMMAND, perhaps doing it asynchrounously.
+    COMMAND is exactly what read_command () places into GLOBAL_COMMAND.
+    ASYNCHROUNOUS, if non-zero, says to do this command in the background.
+@@ -534,7 +536,13 @@ execute_command_internal (command, async
+ #else
+   if (breaking || continuing)
+     return (last_command_exit_value);
+-  if (command == 0 || read_but_dont_execute)
++  if (command == 0 || (read_but_dont_execute && !rpm_requires))
++    return (EXECUTION_SUCCESS);
++  if (rpm_requires && command->type == cm_function_def)
++    return last_command_exit_value =
++      execute_intern_function (command->value.Function_def->name,
++                              command->value.Function_def->command);
++  if (read_but_dont_execute)
+     return (EXECUTION_SUCCESS);
+ #endif
+@@ -5066,7 +5074,7 @@ execute_intern_function (name, function)
+   if (check_identifier (name, posixly_correct) == 0)
+     {
+-      if (posixly_correct && interactive_shell == 0)
++      if (posixly_correct && interactive_shell == 0 && rpm_requires == 0)
+       {
+         last_command_exit_value = EX_BADUSAGE;
+         jump_to_top_level (ERREXIT);
+diff -up bash-4.1/execute_cmd.h.requires bash-4.1/execute_cmd.h
+--- bash-4.1/execute_cmd.h.requires    2009-01-16 22:20:15.000000000 +0100
++++ bash-4.1/execute_cmd.h     2010-08-02 17:42:41.000000000 +0200
+@@ -22,6 +22,8 @@
+ #define _EXECUTE_CMD_H_
+ #include "stdc.h"
++#include "variables.h"
++#include "command.h"
+ extern struct fd_bitmap *new_fd_bitmap __P((int));
+ extern void dispose_fd_bitmap __P((struct fd_bitmap *));
+diff -up bash-4.1/make_cmd.c.requires bash-4.1/make_cmd.c
+--- bash-4.1/make_cmd.c.requires       2009-09-11 23:26:12.000000000 +0200
++++ bash-4.1/make_cmd.c        2010-08-02 17:42:41.000000000 +0200
+@@ -42,11 +42,15 @@
+ #include "flags.h"
+ #include "make_cmd.h"
+ #include "dispose_cmd.h"
++#include "execute_cmd.h"
+ #include "variables.h"
+ #include "subst.h"
+ #include "input.h"
+ #include "ocache.h"
+ #include "externs.h"
++#include "builtins.h"
++
++#include "builtins/common.h"
+ #if defined (JOB_CONTROL)
+ #include "jobs.h"
+@@ -56,6 +60,10 @@
+ extern int line_number, current_command_line_count, parser_state;
+ extern int last_command_exit_value;
++extern int rpm_requires;
++
++static char *alphabet_set = "abcdefghijklmnopqrstuvwxyz"
++                     "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ /* Object caching */
+ sh_obj_cache_t wdcache = {0, 0, 0};
+@@ -820,6 +828,27 @@ make_coproc_command (name, command)
+   return (make_command (cm_coproc, (SIMPLE_COM *)temp));
+ }
++static void
++output_requirement (deptype, filename)
++const char *deptype;
++char *filename;
++{
++  if (strchr(filename, '$') || (filename[0] != '/' && strchr(filename, '/')))
++    return;
++
++  /* 
++      if the executable is called via variable substitution we can
++      not dermine what it is at compile time.  
++
++      if the executable consists only of characters not in the
++      alphabet we do not consider it a dependency just an artifact
++      of shell parsing (ex "exec < ${infile}").
++  */
++
++  if (strpbrk(filename, alphabet_set))
++    printf ("%s(%s)\n", deptype, filename);
++}
++
+ /* Reverse the word list and redirection list in the simple command
+    has just been parsed.  It seems simpler to do this here the one
+    time then by any other method that I can think of. */
+@@ -837,6 +866,27 @@ clean_simple_command (command)
+       REVERSE_LIST (command->value.Simple->redirects, REDIRECT *);
+     }
++  if (rpm_requires && command->value.Simple->words)
++    {
++      char *cmd0;
++      char *cmd1;
++      struct builtin *b;
++
++      cmd0 = command->value.Simple->words->word->word;
++      b = builtin_address_internal (cmd0, 0);
++      cmd1 = 0;
++      if (command->value.Simple->words->next)
++        cmd1 = command->value.Simple->words->next->word->word;
++
++      if (b) {
++        if ( (b->flags & REQUIRES_BUILTIN) && cmd1)
++          output_requirement ("executable", cmd1);
++      } else {
++        if (!assignment(cmd0, 0))
++          output_requirement (find_function(cmd0) ? "function" : "executable", cmd0);
++      }
++    } /*rpm_requires*/
++
+   parser_state &= ~PST_REDIRLIST;
+   return (command);
+ }
+diff -up bash-4.1/shell.c.requires bash-4.1/shell.c
+--- bash-4.1/shell.c.requires  2010-08-02 17:42:41.000000000 +0200
++++ bash-4.1/shell.c   2010-08-02 17:42:41.000000000 +0200
+@@ -193,6 +193,9 @@ int have_devfd = 0;
+ /* The name of the .(shell)rc file. */
+ static char *bashrc_file = "~/.bashrc";
++/* Non-zero if we are finding the scripts requirements. */
++int rpm_requires;
++
+ /* Non-zero means to act more like the Bourne shell on startup. */
+ static int act_like_sh;
+@@ -251,6 +254,7 @@ static const struct {
+   { "posix", Int, &posixly_correct, (char **)0x0 },
+   { "protected", Int, &protected_mode, (char **)0x0 },
+   { "rcfile", Charp, (int *)0x0, &bashrc_file },
++  { "rpm-requires", Int, &rpm_requires, (char **)0x0 },
+ #if defined (RESTRICTED_SHELL)
+   { "restricted", Int, &restricted, (char **)0x0 },
+ #endif
+@@ -485,6 +489,12 @@ main (argc, argv, env)
+   if (dump_translatable_strings)
+     read_but_dont_execute = 1;
++  if (rpm_requires)
++    {
++      read_but_dont_execute = 1;
++      initialize_shell_builtins ();
++    }
++
+   if (running_setuid && privileged_mode == 0)
+     disable_priv_mode ();
index e283cc83b152829f6d617bd28283ecac08c78a03..b5c2c48c2671fdd99828f7f3869295c50a13218b 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = binutils
-version    = 2.22
-release    = 3
+version    = 2.22.52.0.4
+release    = 2
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = Development/Tools
@@ -18,7 +18,10 @@ description
        tools for the manipulation of object code in various object file formats.
 end
 
-source_dl  = http://ftp.gnu.org/gnu/binutils/
+source_dl
+       http://ftp.gnu.org/gnu/binutils/
+       ftp://ftp.kernel.org/pub/linux/devel/binutils
+end
 
 build
        requires
@@ -59,20 +62,26 @@ build
                make tooldir=/usr %{PARALLELISMFLAGS}
        end
 
-       #def test
-       #       # Apply a sed substitution to prevent a testsuite error:
-       #       sed -i 's/getline/get_line/' libiberty/testsuite/test-demangle.c
-       #       cd %{DIR_SRC}/binutils-build && make check
-       #end
+       test
+               cd %{DIR_SRC}/binutils-build
+               make -k check </dev/null || :
+
+               echo "==== RESULTS ===="
+               cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum
+       end
 
        install
-               cd %{DIR_SRC}/binutils-build && make tooldir=/usr install DESTDIR=%{BUILDROOT}
+               cd %{DIR_SRC}/binutils-build
+               make tooldir=/usr install DESTDIR=%{BUILDROOT}
 
                cp -fv %{DIR_APP}/include/libiberty.h %{BUILDROOT}/usr/include
 
                # Prevent packages from linking against libbfd and libopcodes,
                # because they change too often.
                rm -rfv %{BUILDROOT}%{libdir}/lib{bfd,opcodes}.so
+
+               # Remove Windows/Novell only man pages.
+               rm -vf %{BUILDROOT}%{mandir}/man1/{dlltool,nlmconv,windres}*
        end
 
        # Keep static version of libiberty.
diff --git a/binutils/patches/binutils-2.20.1-gentoo-use-relro.patch b/binutils/patches/binutils-2.20.1-gentoo-use-relro.patch
deleted file mode 100644 (file)
index db3276b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-background:
-http://www.airs.com/blog/archives/189
-
---- binutils/ld/ldmain.c
-+++ binutils/ld/ldmain.c
-@@ -293,2 +293,3 @@ main (int argc, char **argv)
-   link_info.combreloc = TRUE;
-+  link_info.relro = TRUE;
-   link_info.strip_discarded = TRUE;
diff --git a/binutils/patches/binutils-2.20.51.0.10-sec-merge-emit.patch0 b/binutils/patches/binutils-2.20.51.0.10-sec-merge-emit.patch0
new file mode 100644 (file)
index 0000000..388e143
--- /dev/null
@@ -0,0 +1,24 @@
+*** ../binutils-2.20.51.0.10.orig/bfd/merge.c  2010-08-20 12:19:33.000000000 +0100
+--- bfd/merge.c        2010-08-20 12:18:01.000000000 +0100
+*************** sec_merge_emit (bfd *abfd, struct sec_me
+*** 307,312 ****
+--- 307,315 ----
+        len = -off & (entry->alignment - 1);
+        if (len != 0)
+       {
++        /* We should never have an entry with an alignment
++           greater than the section's alignment.  */
++        BFD_ASSERT (len <= (bfd_size_type) (1 << alignment_power));
+         if (bfd_bwrite (pad, len, abfd) != len)
+           goto err;
+         off += len;
+*************** sec_merge_emit (bfd *abfd, struct sec_me
+*** 324,329 ****
+--- 327,333 ----
+    /* Trailing alignment needed?  */
+    off = sec->size - off;
+    if (off != 0
++       && alignment_power
+        && bfd_bwrite (pad, off, abfd) != off)
+      goto err;
+  
diff --git a/binutils/patches/binutils-2.20.51.0.2-build-id.patch0 b/binutils/patches/binutils-2.20.51.0.2-build-id.patch0
deleted file mode 100644 (file)
index f602583..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
---- bfd/compress.c.jj  2010-12-24 11:40:19.000000000 +0100
-+++ bfd/compress.c     2011-01-28 15:40:19.869777126 +0100
-@@ -174,7 +174,7 @@ bfd_get_full_section_contents (bfd *abfd
-     case COMPRESS_SECTION_NONE:
-       if (p == NULL)
-       {
--        p = (bfd_byte *) bfd_malloc (sz);
-+        p = (bfd_byte *) bfd_zmalloc (sz);
-         if (p == NULL)
-           return FALSE;
-       }
-@@ -214,7 +214,7 @@ bfd_get_full_section_contents (bfd *abfd
-       if (!ret)
-       goto fail_compressed;
--      uncompressed_buffer = (bfd_byte *) bfd_malloc (uncompressed_size);
-+      uncompressed_buffer = (bfd_byte *) bfd_zmalloc (uncompressed_size);
-       if (uncompressed_buffer == NULL)
-       goto fail_compressed;
---- bfd/elfcode.h.jj   2010-12-31 03:43:21.000000000 +0100
-+++ bfd/elfcode.h      2011-01-28 15:34:39.055388479 +0100
-@@ -1158,6 +1158,24 @@ elf_checksum_contents (bfd *abfd,
-       if (i_shdr.contents)
-       (*process) (i_shdr.contents, i_shdr.sh_size, arg);
-+      else
-+      {
-+        asection *sec;
-+
-+        sec = bfd_section_from_elf_index (abfd, count);
-+        if (sec != NULL)
-+          {
-+            if (sec->contents == NULL)
-+              {
-+                /* Force rereading from file.  */
-+                sec->flags &= ~SEC_IN_MEMORY;
-+                if (! bfd_malloc_and_get_section (abfd, sec, & sec->contents))
-+                  continue;
-+              }
-+            if (sec->contents != NULL)
-+              (*process) (sec->contents, i_shdr.sh_size, arg);
-+          }
-+      }
-     }
-   return TRUE;
diff --git a/binutils/patches/binutils-2.20.51.0.2-libtool-lib64.patch b/binutils/patches/binutils-2.20.51.0.2-libtool-lib64.patch
new file mode 100644 (file)
index 0000000..0c61a11
--- /dev/null
@@ -0,0 +1,302 @@
+diff -rcp ../binutils-2.20.51.0.7.original/bfd/configure ./bfd/configure
+*** ../binutils-2.20.51.0.7.original/bfd/configure     2010-04-08 14:53:48.000000000 +0100
+--- ./bfd/configure    2010-04-08 14:56:50.000000000 +0100
+*************** fi
+*** 10762,10771 ****
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
+--- 10762,10795 ----
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
++   # find out which ABI we are using
++   libsuff=
++   case "$host_cpu" in
++   x86_64*|s390*|powerpc*|ppc*|sparc*)
++     echo 'int i;' > conftest.$ac_ext
++     if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++   (eval $ac_compile) 2>&5
++   ac_status=$?
++   echo "$as_me:$LINENO: \$? = $ac_status" >&5
++   (exit $ac_status); }; then
++       case `/usr/bin/file conftest.$ac_objext` in
++       *64-bit*)
++         libsuff=64
++         if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++           sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++         fi
++         sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++         ;;
++       esac
++     fi
++     rm -rf conftest*
++     ;;
++   esac
++ 
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
+diff -rcp ../binutils-2.20.51.0.7.original/binutils/configure ./binutils/configure
+*** ../binutils-2.20.51.0.7.original/binutils/configure        2010-04-08 14:53:45.000000000 +0100
+--- ./binutils/configure       2010-04-08 14:56:21.000000000 +0100
+*************** fi
+*** 10560,10569 ****
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
+--- 10560,10593 ----
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
++   # find out which ABI we are using
++   libsuff=
++   case "$host_cpu" in
++   x86_64*|s390*|powerpc*|ppc*|sparc*)
++     echo 'int i;' > conftest.$ac_ext
++     if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++   (eval $ac_compile) 2>&5
++   ac_status=$?
++   echo "$as_me:$LINENO: \$? = $ac_status" >&5
++   (exit $ac_status); }; then
++       case `/usr/bin/file conftest.$ac_objext` in
++       *64-bit*)
++         libsuff=64
++         if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++           sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++         fi
++         sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++         ;;
++       esac
++     fi
++     rm -rf conftest*
++     ;;
++   esac
++ 
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
+diff -rcp ../binutils-2.20.51.0.7.original/gas/configure ./gas/configure
+*** ../binutils-2.20.51.0.7.original/gas/configure     2010-04-08 14:53:47.000000000 +0100
+--- ./gas/configure    2010-04-08 14:57:24.000000000 +0100
+*************** fi
+*** 10547,10556 ****
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
+--- 10547,10580 ----
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
++   # find out which ABI we are using
++   libsuff=
++   case "$host_cpu" in
++   x86_64*|s390*|powerpc*|ppc*|sparc*)
++     echo 'int i;' > conftest.$ac_ext
++     if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++   (eval $ac_compile) 2>&5
++   ac_status=$?
++   echo "$as_me:$LINENO: \$? = $ac_status" >&5
++   (exit $ac_status); }; then
++       case `/usr/bin/file conftest.$ac_objext` in
++       *64-bit*)
++         libsuff=64
++         if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++           sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++         fi
++         sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++         ;;
++       esac
++     fi
++     rm -rf conftest*
++     ;;
++   esac
++ 
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
+diff -rcp ../binutils-2.20.51.0.7.original/gprof/configure ./gprof/configure
+*** ../binutils-2.20.51.0.7.original/gprof/configure   2010-04-08 14:53:45.000000000 +0100
+--- ./gprof/configure  2010-04-08 14:57:50.000000000 +0100
+*************** fi
+*** 10485,10494 ****
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
+--- 10485,10518 ----
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
++   # find out which ABI we are using
++   libsuff=
++   case "$host_cpu" in
++   x86_64*|s390*|powerpc*|ppc*|sparc*)
++     echo 'int i;' > conftest.$ac_ext
++     if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++   (eval $ac_compile) 2>&5
++   ac_status=$?
++   echo "$as_me:$LINENO: \$? = $ac_status" >&5
++   (exit $ac_status); }; then
++       case `/usr/bin/file conftest.$ac_objext` in
++       *64-bit*)
++         libsuff=64
++         if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++           sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++         fi
++         sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++         ;;
++       esac
++     fi
++     rm -rf conftest*
++     ;;
++   esac
++ 
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
+diff -rcp ../binutils-2.20.51.0.7.original/ld/configure ./ld/configure
+*** ../binutils-2.20.51.0.7.original/ld/configure      2010-04-08 14:53:44.000000000 +0100
+--- ./ld/configure     2010-04-08 14:58:21.000000000 +0100
+*************** fi
+*** 10966,10975 ****
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
+--- 10966,10999 ----
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
++   # find out which ABI we are using
++   libsuff=
++   case "$host_cpu" in
++   x86_64*|s390*|powerpc*|ppc*|sparc*)
++     echo 'int i;' > conftest.$ac_ext
++     if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++   (eval $ac_compile) 2>&5
++   ac_status=$?
++   echo "$as_me:$LINENO: \$? = $ac_status" >&5
++   (exit $ac_status); }; then
++       case `/usr/bin/file conftest.$ac_objext` in
++       *64-bit*)
++         libsuff=64
++         if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++           sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++         fi
++         sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++         ;;
++       esac
++     fi
++     rm -rf conftest*
++     ;;
++   esac
++ 
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
+Only in .: .#libtool.m4
+Only in .: #libtool.m4#
+diff -rcp ../binutils-2.20.51.0.7.original/opcodes/configure ./opcodes/configure
+*** ../binutils-2.20.51.0.7.original/opcodes/configure 2010-04-08 14:53:45.000000000 +0100
+--- ./opcodes/configure        2010-04-08 14:59:10.000000000 +0100
+*************** fi
+*** 10496,10505 ****
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
+--- 10496,10529 ----
+    # before this can be enabled.
+    hardcode_into_libs=yes
+  
++   # find out which ABI we are using
++   libsuff=
++   case "$host_cpu" in
++   x86_64*|s390*|powerpc*|ppc*|sparc*)
++     echo 'int i;' > conftest.$ac_ext
++     if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++   (eval $ac_compile) 2>&5
++   ac_status=$?
++   echo "$as_me:$LINENO: \$? = $ac_status" >&5
++   (exit $ac_status); }; then
++       case `/usr/bin/file conftest.$ac_objext` in
++       *64-bit*)
++         libsuff=64
++         if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++           sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++         fi
++         sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++         ;;
++       esac
++     fi
++     rm -rf conftest*
++     ;;
++   esac
++ 
+    # Append ld.so.conf contents to the search path
+    if test -f /etc/ld.so.conf; then
+      lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[    ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+!     sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+    fi
+  
+    # We used to test for /lib/ld.so.1 and disable shared libraries on
diff --git a/binutils/patches/binutils-2.20.51.0.2-set-long-long.patch b/binutils/patches/binutils-2.20.51.0.2-set-long-long.patch
new file mode 100644 (file)
index 0000000..667a3cc
--- /dev/null
@@ -0,0 +1,60 @@
+diff -rcp ../binutils-2.20.51.0.7.original/bfd/configure ./bfd/configure
+*** ../binutils-2.20.51.0.7.original/bfd/configure     2010-04-08 15:23:58.000000000 +0100
+--- ./bfd/configure    2010-04-08 15:24:06.000000000 +0100
+*************** if test "x${ac_cv_sizeof_long}" = "x8"; 
+*** 12819,12829 ****
+    BFD_HOST_64BIT_LONG=1
+    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long"
+    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long"
+! elif test "x${ac_cv_sizeof_long_long}" = "x8"; then
+    BFD_HOST_64BIT_LONG_LONG=1
+    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long"
+    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long"
+!   if test "x${ac_cv_sizeof_void_p}" = "x8"; then
+      BFD_HOSTPTR_T="unsigned long long"
+    fi
+  fi
+--- 12819,12831 ----
+    BFD_HOST_64BIT_LONG=1
+    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long"
+    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long"
+! fi
+! if test "x${ac_cv_sizeof_long_long}" = "x8"; then
+    BFD_HOST_64BIT_LONG_LONG=1
+    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long"
+    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long"
+!   if test "x${ac_cv_sizeof_void_p}" = "x8" \
+!           -a "x${ac_cv_sizeof_long}" != "x8"; then
+      BFD_HOSTPTR_T="unsigned long long"
+    fi
+  fi
+diff -rcp ../binutils-2.20.51.0.7.original/bfd/configure.in ./bfd/configure.in
+*** ../binutils-2.20.51.0.7.original/bfd/configure.in  2010-04-08 15:23:58.000000000 +0100
+--- ./bfd/configure.in 2010-04-08 15:24:06.000000000 +0100
+*************** if test "x${ac_cv_sizeof_long}" = "x8"; 
+*** 153,163 ****
+    BFD_HOST_64BIT_LONG=1
+    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long"
+    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long"
+! elif test "x${ac_cv_sizeof_long_long}" = "x8"; then
+    BFD_HOST_64BIT_LONG_LONG=1
+    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long"
+    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long"
+!   if test "x${ac_cv_sizeof_void_p}" = "x8"; then
+      BFD_HOSTPTR_T="unsigned long long"
+    fi
+  fi
+--- 153,165 ----
+    BFD_HOST_64BIT_LONG=1
+    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long"
+    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long"
+! fi
+! if test "x${ac_cv_sizeof_long_long}" = "x8"; then
+    BFD_HOST_64BIT_LONG_LONG=1
+    test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long"
+    test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long"
+!   if test "x${ac_cv_sizeof_void_p}" = "x8" \
+!           -a "x${ac_cv_sizeof_long}" != "x8"; then
+      BFD_HOSTPTR_T="unsigned long long"
+    fi
+  fi
diff --git a/binutils/patches/binutils-2.22-warn-textrel.patch b/binutils/patches/binutils-2.22-warn-textrel.patch
deleted file mode 100644 (file)
index ab63ed4..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-textrels are bad for forcing copy-on-write (this affects everyone),
-and for security/runtime code generation, this affects security ppl.
-But in either case, it doesn't matter who needs textrels, it's
-the very fact that they're needed at all.
-
-2006-06-10  Ned Ludd  <solar@gentoo.org>, Mike Frysinger <vapier@gentoo.org>
-
-       * bfd/elflink.c (bfd_elf_final_link): Check all objects for TEXTRELs.
-       * ld/ldmain.c (main): Change textrel warning default to true.
-       * ld/testsuite/lib/ld-lib.exp (default_ld_simple_link): Scrub TEXTREL
-       warnings from ld output.
-
---- a/bfd/elflink.c
-+++ b/bfd/elflink.c
-@@ -8652,14 +8652,12 @@ bfd_elf_final_link (bfd *abfd, struct bf
-       goto error_return;
-       /* Check for DT_TEXTREL (late, in case the backend removes it).  */
--      if ((info->warn_shared_textrel && info->shared)
-+      o = bfd_get_section_by_name (dynobj, ".dynamic");
-+      if ((info->warn_shared_textrel && o != NULL)
-         || info->error_textrel)
-       {
-         bfd_byte *dyncon, *dynconend;
-         /* Fix up .dynamic entries.  */
--        o = bfd_get_section_by_name (dynobj, ".dynamic");
--        BFD_ASSERT (o != NULL);
--
-         dyncon = o->contents;
-         dynconend = o->contents + o->size;
-         for (; dyncon < dynconend; dyncon += bed->s->sizeof_dyn)
-@@ -8702,7 +8702,7 @@ bfd_elf_final_link (bfd *abfd, struct bf
-                     (_("%P%X: read-only segment has dynamic relocations.\n"));
-                 else
-                   info->callbacks->einfo
--                  (_("%P: warning: creating a DT_TEXTREL in a shared object.\n"));
-+                  (_("%P: warning: creating a DT_TEXTREL in object.\n"));
-                 break;
-               }
-           }
---- a/ld/ldmain.c
-+++ b/ld/ldmain.c
-@@ -282,2 +282,3 @@ main (int argc, char **argv)
-   link_info.spare_dynamic_tags = 5;
-+  link_info.warn_shared_textrel = TRUE;
-   link_info.sharable_sections = FALSE;
---- a/ld/testsuite/lib/ld-lib.exp
-+++ b/ld/testsuite/lib/ld-lib.exp
-@@ -181,6 +181,10 @@ proc default_ld_simple_link { ld target 
-     # symbol, since the default linker script might use ENTRY.
-     regsub -all "(^|\n)(\[^\n\]*: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output
-+    # Gentoo tweak:
-+    # We want to ignore TEXTREL warnings since we force enable them by default
-+    regsub -all "^lt-ld-new: warning: creating a DT_TEXTREL in object\." $exec_output "\\1" exec_output
-+
-     if [string match "" $exec_output] then {
-       return 1
-     } else {
diff --git a/binutils/patches/binutils-2.22.52.0.1-export-demangle.h.patch0 b/binutils/patches/binutils-2.22.52.0.1-export-demangle.h.patch0
new file mode 100644 (file)
index 0000000..9a9f3fa
--- /dev/null
@@ -0,0 +1,57 @@
+*** ../binutils-2.22.52.0.1.orig/bfd/Makefile.am       2012-03-06 14:00:33.229957572 +0000
+--- bfd/Makefile.am    2012-04-27 16:46:05.410974817 +0100
+*************** if INSTALL_LIBBFD
+*** 18,24 ****
+  bfdlibdir = @bfdlibdir@
+  bfdincludedir = @bfdincludedir@
+  bfdlib_LTLIBRARIES = libbfd.la
+! bfdinclude_HEADERS = $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/bfdlink.h
+  else !INSTALL_LIBBFD
+  # Empty these so that the respective installation directories will not be created.
+  bfdlibdir =
+--- 18,24 ----
+  bfdlibdir = @bfdlibdir@
+  bfdincludedir = @bfdincludedir@
+  bfdlib_LTLIBRARIES = libbfd.la
+! bfdinclude_HEADERS = $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h
+  else !INSTALL_LIBBFD
+  # Empty these so that the respective installation directories will not be created.
+  bfdlibdir =
+*** ../binutils-2.22.52.0.1.orig/bfd/Makefile.in       2012-03-06 14:00:32.952957600 +0000
+--- bfd/Makefile.in    2012-04-27 16:46:19.718975214 +0100
+*************** RECURSIVE_TARGETS = all-recursive check-
+*** 138,144 ****
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+  am__bfdinclude_HEADERS_DIST = $(INCDIR)/plugin-api.h bfd.h \
+!      $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/bfdlink.h
+  HEADERS = $(bfdinclude_HEADERS)
+  RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive      \
+    distclean-recursive maintainer-clean-recursive
+--- 138,145 ----
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+  am__bfdinclude_HEADERS_DIST = $(INCDIR)/plugin-api.h bfd.h \
+!      $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/bfdlink.h \
+!      $(INCDIR)/demangle.h
+  HEADERS = $(bfdinclude_HEADERS)
+  RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive      \
+    distclean-recursive maintainer-clean-recursive
+*************** libbfd_la_LDFLAGS = $(am__append_1) -rel
+*** 331,337 ****
+  @INSTALL_LIBBFD_FALSE@bfdinclude_HEADERS = $(am__append_2)
+  @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \
+  @INSTALL_LIBBFD_TRUE@        $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
+! @INSTALL_LIBBFD_TRUE@        $(INCDIR)/bfdlink.h $(am__append_2)
+  @INSTALL_LIBBFD_FALSE@rpath_bfdlibdir = @bfdlibdir@
+  @INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libbfd.la
+  AM_CFLAGS = $(WARN_CFLAGS)
+--- 332,339 ----
+  @INSTALL_LIBBFD_FALSE@bfdinclude_HEADERS = $(am__append_2)
+  @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \
+  @INSTALL_LIBBFD_TRUE@        $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
+! @INSTALL_LIBBFD_TRUE@        $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h \
+! @INSTALL_LIBBFD_TRUE@        $(am__append_2)
+  @INSTALL_LIBBFD_FALSE@rpath_bfdlibdir = @bfdlibdir@
+  @INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libbfd.la
+  AM_CFLAGS = $(WARN_CFLAGS)
diff --git a/binutils/patches/binutils-2.22.52.0.1-relro-on-by-default.patch b/binutils/patches/binutils-2.22.52.0.1-relro-on-by-default.patch
new file mode 100644 (file)
index 0000000..3910df1
--- /dev/null
@@ -0,0 +1,70 @@
+diff -Nur binutils-2.22.52.0.4-vanilla/ld/emultempl/armelf.em binutils-2.22.52.0.4/ld/emultempl/armelf.em
+--- binutils-2.22.52.0.4-vanilla/ld/emultempl/armelf.em        2012-06-05 18:44:10.000000000 +0200
++++ binutils-2.22.52.0.4/ld/emultempl/armelf.em        2012-06-08 13:34:30.578427241 +0200
+@@ -52,6 +52,7 @@
+ #endif /* not TARGET_ */
+   input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
+   config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
++  link_info.relro = TRUE;
+ }
+ static void
+diff -Nur binutils-2.22.52.0.4-vanilla/ld/emultempl/elf32.em binutils-2.22.52.0.4/ld/emultempl/elf32.em
+--- binutils-2.22.52.0.4-vanilla/ld/emultempl/elf32.em 2012-06-05 18:44:10.000000000 +0200
++++ binutils-2.22.52.0.4/ld/emultempl/elf32.em 2012-06-08 13:33:07.090612102 +0200
+@@ -106,6 +106,7 @@
+   input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
+   config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
+   link_info.sharable_sections = `if test "$SHARABLE_SECTIONS" = "yes" ; then echo TRUE ; else echo FALSE ; fi`;
++  link_info.relro = TRUE;
+ }
+ EOF
+diff -Nur binutils-2.22.52.0.4-vanilla/ld/testsuite/config/default.exp binutils-2.22.52.0.4/ld/testsuite/config/default.exp
+--- binutils-2.22.52.0.4-vanilla/ld/testsuite/config/default.exp       2012-06-05 18:44:10.000000000 +0200
++++ binutils-2.22.52.0.4/ld/testsuite/config/default.exp       2012-06-08 13:33:07.085612052 +0200
+@@ -23,7 +23,7 @@
+ #
+ if ![info exists ld] then {
+-    set ld [findfile $base_dir/ld-new $base_dir/ld-new [transform ld]]
++    set ld "[findfile $base_dir/ld-new $base_dir/ld-new [transform ld]] -znorelro"
+ }
+ if ![info exists as] then {
+@@ -69,7 +69,7 @@
+     catch "exec ln -s ../../ld-new tmpdir/ld/ld" status
+     catch "exec ln -s ld tmpdir/ld/collect-ld" status
+ }
+-set gcc_ld_flag "-B[pwd]/tmpdir/ld/"
++set gcc_ld_flag "-B[pwd]/tmpdir/ld/ -Wl,-z,norelro"
+ # load the linker path
+ if {[file exists tmpdir/libpath.exp]} {
+@@ -279,7 +279,7 @@
+ }
+ if ![info exists LD] then {
+-    set LD [findfile $base_dir/ld-new ./ld-new [transform ld]]
++    set LD "[findfile $base_dir/ld-new ./ld-new [transform ld]] -znorelro"
+ }
+ if ![info exists LDFLAGS] then {
+diff -Nur binutils-2.22.52.0.4-vanilla/ld/testsuite/ld-bootstrap/bootstrap.exp binutils-2.22.52.0.4/ld/testsuite/ld-bootstrap/bootstrap.exp
+--- binutils-2.22.52.0.4-vanilla/ld/testsuite/ld-bootstrap/bootstrap.exp       2012-06-05 18:44:10.000000000 +0200
++++ binutils-2.22.52.0.4/ld/testsuite/ld-bootstrap/bootstrap.exp       2012-06-08 13:33:07.086612062 +0200
+@@ -71,7 +71,13 @@
+     # This test can only be run if we have the ld build directory,
+     # since we need the object files.
+-    if {$ld != "$objdir/ld-new"} {
++    set ldexe $ld
++    set ldparm [string first " " $ld]
++    if { $ldparm > 0 } then {
++      set ldparm [expr $ldparm - 1]
++      set ldexe [string range $ld 0 $ldparm]
++    }
++    if {$ldexe != "$objdir/ld-new"} {
+       untested $testname
+       continue
+     }
similarity index 61%
rename from binutils/patches/binutils-2.22-flexible-tests.patch
rename to binutils/patches/binutils-2.22.52.0.2-flexible-tests.patch
index 681d33fa05b86970233e4504d284f2403fe8f282..af6c92709983a9ebf6ee2c2002a7594962ded934 100644 (file)
@@ -1,26 +1,6 @@
 making some of the address matches more flexible fixes tests when using
 pax/relro/hash patches
 
---- binutils/ld/testsuite/ld-i386/hidden2.d
-+++ binutils/ld/testsuite/ld-i386/hidden2.d
-@@ -8,6 +8,6 @@
- Disassembly of section .text:
- [a-f0-9]+ <bar>:
--[     ]*[a-f0-9]+:    e8 cf fe ff ff          call   0 .*
-+[     ]*[a-f0-9]+:    e8 ([a-f0-9]{2} ){2}ff ff               call   0 .*
- [     ]*[a-f0-9]+:    c3                      ret    
- #pass
---- binutils/ld/testsuite/ld-x86-64/hidden2.d
-+++ binutils/ld/testsuite/ld-x86-64/hidden2.d
-@@ -8,6 +8,6 @@
- Disassembly of section .text:
- [a-f0-9]+ <bar>:
--[     ]*[a-f0-9]+:    e8 33 fe ff ff          callq  0 .*
-+[     ]*[a-f0-9]+:    e8 ([a-f0-9]{2} ){2}ff ff               callq  0 .*
- [     ]*[a-f0-9]+:    c3                      retq   
- #pass
 --- binutils/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d
 +++ binutils/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d
 @@ -4,6 +4,6 @@
similarity index 96%
rename from binutils/patches/binutils-2.22-pt-pax-flags-20111121.patch
rename to binutils/patches/binutils-2.22.52.0.2-pt-pax-flags-20120425.patch
index 3ba1a875e8e07970d279b5e1636e556b8cf5583e..00494cb520075236fb6088edbafc0fbf6505633d 100644 (file)
  #define PT_GNU_STACK  (PT_LOOS + 0x474e551) /* Stack flags */
  #define PT_GNU_RELRO  (PT_LOOS + 0x474e552) /* Read-only after relocation */
 +#define PT_PAX_FLAGS  (PT_LOOS + 0x5041580) /* PaX flags */
+ #define PT_GNU_SHR    (PT_LOOS + 0x474e554) /* Sharable segment */
  
  /* Program segment permissions, in program header p_flags field.  */
 @@ -439,6 +440,21 @@
  #define PF_MASKOS     0x0FF00000      /* New value, Oct 4, 1999 Draft */
  #define PF_MASKPROC   0xF0000000      /* Processor-specific reserved bits */
  
  Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries:
   Offset +Info +Type +Sym.Value +Sym. Name
---- binutils-2.22/ld/testsuite/ld-i386/tlsdesc.sd
-+++ binutils-2.22/ld/testsuite/ld-i386/tlsdesc.sd
-@@ -14,7 +14,7 @@ Contents of section \.got:
-  [0-9a-f]+ 6c000000 b4ffffff 4c000000 68000000  .*
-  [0-9a-f]+ 50000000 70000000 00000000 bcffffff  .*
- Contents of section \.got\.plt:
-- [0-9a-f]+ b0150000 00000000 00000000 00000000  .*
-+ [0-9a-f]+ [a-f]0150000 00000000 00000000 00000000  .*
-  [0-9a-f]+ 20000000 00000000 60000000 00000000  .*
-  [0-9a-f]+ 00000000 00000000 00000000 00000000  .*
-  [0-9a-f]+ 40000000 +.*
 --- binutils-2.22/ld/testsuite/ld-i386/tlsgdesc.rd
 +++ binutils-2.22/ld/testsuite/ld-i386/tlsgdesc.rd
 @@ -36,12 +36,14 @@ Program Headers:
 + 18000[0-9a-f]{2}:    48 00 00 08     b       .*
 + 18000[0-9a-f]{2}:    38 63 90 08     addi    r3,r3,-28664
  #pass
---- binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.d
-+++ binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.d
-@@ -42,5 +42,5 @@ Disassembly of section \.got:
- .* <\.got>:
-       \.\.\.
- .*:   4e 80 00 21     blrl
--.*:   00 01 03 ec     .*
-+.*:   00 01 [0-9a-f]{2} [0-9a-f]{2}   .*
-       \.\.\.
 --- binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.g
 +++ binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.g
 @@ -9,5 +9,5 @@
 -.* 00000000 4e800021 000103ec 00000000  .*
 +.* 00000000 4e800021 00010[0-9a-f]{3} 00000000  .*
  .* 00000000                             .*
---- binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.r
-+++ binutils-2.22/ld/testsuite/ld-powerpc/tlsso32.r
-@@ -35,6 +35,7 @@ Program Headers:
-  +LOAD .* RWE 0x10000
-  +DYNAMIC .* RW +0x4
-  +TLS .* 0x0+1c 0x0+38 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections\.\.\.
-@@ -42,6 +43,7 @@ Program Headers:
-  +01 +\.tdata \.dynamic \.got \.plt 
-  +02 +\.dynamic 
-  +03 +\.tdata \.tbss 
-+ +04 +
- Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries:
-  Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
-@@ -52,9 +54,9 @@ Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries:
- [0-9a-f ]+R_PPC_TPREL16 +0+30 +le0 \+ 0
- [0-9a-f ]+R_PPC_TPREL16_HA +0+34 +le1 \+ 0
- [0-9a-f ]+R_PPC_TPREL16_LO +0+34 +le1 \+ 0
--[0-9a-f ]+R_PPC_TPREL16 +0+103d0 +\.tdata \+ 103e4
--[0-9a-f ]+R_PPC_TPREL16_HA +0+103d0 +\.tdata \+ 103e8
--[0-9a-f ]+R_PPC_TPREL16_LO +0+103d0 +\.tdata \+ 103e8
-+[0-9a-f ]+R_PPC_TPREL16 +0+103[df]0 +\.tdata \+ 10[0-9a-f]{3}
-+[0-9a-f ]+R_PPC_TPREL16_HA +0+103[df]0 +\.tdata \+ 10[0-9a-f]{3}
-+[0-9a-f ]+R_PPC_TPREL16_LO +0+103[df]0 +\.tdata \+ 10[0-9a-f]{3}
- [0-9a-f ]+R_PPC_DTPMOD32 +0+
- [0-9a-f ]+R_PPC_DTPREL32 +0+
- [0-9a-f ]+R_PPC_DTPMOD32 +0+
 --- binutils-2.22/ld/testsuite/ld-powerpc/tlstoc.g
 +++ binutils-2.22/ld/testsuite/ld-powerpc/tlstoc.g
 @@ -8,8 +8,8 @@
  #...
  
  Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
---- binutils-2.22/ld/testsuite/ld-x86-64/protected3.d
-+++ binutils-2.22/ld/testsuite/ld-x86-64/protected3.d
-@@ -8,6 +8,6 @@
- Disassembly of section .text:
- 0+[a-f0-9]+ <bar>:
--[     ]*[a-f0-9]+:    8b 05 [a-f0-9][a-f0-9] 00 [a-f0-9][a-f0-9] 00           mov    0x[a-f0-9]+\(%rip\),%eax        # [a-f0-9]+ <foo>
-+[     ]*[a-f0-9]+:    8b 05 [a-f0-9][a-f0-9] [a-f0-9][a-f0-9] [a-f0-9][a-f0-9] 00     mov    0x[a-f0-9]+\(%rip\),%eax        # [a-f0-9]+ <foo>
- [     ]*[a-f0-9]+:    c3                      retq   
- #pass
 --- binutils-2.22/ld/testsuite/ld-x86-64/tlsgdesc.rd
 +++ binutils-2.22/ld/testsuite/ld-x86-64/tlsgdesc.rd
 @@ -36,12 +36,14 @@ Program Headers:
diff --git a/binutils/patches/binutils-2.22.52.0.4-refcount.patch0 b/binutils/patches/binutils-2.22.52.0.4-refcount.patch0
new file mode 100644 (file)
index 0000000..33fcfd4
--- /dev/null
@@ -0,0 +1,19 @@
+http://sourceware.org/bugzilla/show_bug.cgi?id=14189
+
+Index: bfd/elf32-arm.c
+===================================================================
+RCS file: /cvs/src/src/bfd/elf32-arm.c,v
+retrieving revision 1.294
+diff -u -3 -p -r1.294 elf32-arm.c
+--- bfd/elf32-arm.c    28 Jun 2012 16:57:24 -0000      1.294
++++ bfd/elf32-arm.c    29 Jun 2012 13:21:52 -0000
+@@ -12668,7 +12668,8 @@ elf32_arm_check_relocs (bfd *abfd, struc
+         /* If the symbol is a function that doesn't bind locally,
+            this relocation will need a PLT entry.  */
+-        root_plt->refcount += 1;
++        if (root_plt->refcount != -1)
++          root_plt->refcount += 1;
+         if (!call_reloc_p)
+           arm_plt->noncall_refcount++;
index 72046aa4626bdbb15ad1697f3e07f191c5bf1a97..b957f6fe58d46b4403b04eefa3696cdec423ac73 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = bird
-version    = 1.3.1
-release    = 2
+version    = 1.3.7
+release    = 1
 
 groups     = Networking/Routing
 url        = http://bird.network.cz/
index 4b777edeec584eefdf04e16330e3e0c486cf82a9..13132852254d4484d98ce3f24f10ba9be187cfba 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = bison
-version    = 2.5
-release    = 2
+version    = 2.5.1
+release    = 1
 
 groups     = Development/Tools
 url        = http://www.gnu.org/software/bison/
@@ -22,6 +22,7 @@ source_dl  = http://ftp.gnu.org/gnu/bison/
 build
        requires
                m4
+               perl
        end
 
        configure_cmds
index e1af92f1791213586d0659b63473699aa1eb265c..c1e1035f4add4987d5610666de421d2bbd831b4d 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = bzip2
 version    = 1.0.6
-release    = 5
+release    = 6
 
 groups     = Applications/Compression
 url        = http://www.bzip.org/
@@ -45,10 +45,10 @@ build
                ln -svf bzip2 %{BUILDROOT}%{bindir}/bless
 
                # Install libs.
-               mkdir -pv %{BUILDROOT}%{libdir} %{BUILDROOT}/%{lib}
-               install -m 755 libbz2.so.%{version} %{BUILDROOT}/%{lib}
-               ln -svf libbz2.so.%{version} %{BUILDROOT}/%{lib}/libbz2.so.1
-               ln -svf ../../%{lib}/libbz2.so.1 %{BUILDROOT}%{libdir}/libbz2.so
+               mkdir -pv %{BUILDROOT}%{libdir}
+               install -m 755 libbz2.so.%{version} %{BUILDROOT}/%{libdir}
+               ln -svf libbz2.so.%{version} %{BUILDROOT}/%{libdir}/libbz2.so.1
+               ln -svf libbz2.so.1 %{BUILDROOT}%{libdir}/libbz2.so
 
                # Install headers.
                mkdir -pv %{BUILDROOT}%{includedir}
@@ -69,6 +69,12 @@ end
 packages
        package %{name}
                groups += Build
+
+               # Provide older soname to fix problem with
+               # older version of the package.
+               if "%{DISTRO_ARCH}" == "i686"
+                       provides += libbz2.so.1.0
+               end
        end
 
        package %{name}-devel
index bf873ec8219fb19f7d0a3b7b4e902db7b99ca07d..acf65d0c3c8f3bde24bc6f7673fb3a953bd494c4 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = c_icap
 version    = 0.1.7
-release    = 1
+release    = 3
 
 maintainer = Christian Schmidt <christian.schmidt@ipfire.org>
 groups     = Networking/Daemons
@@ -33,7 +33,7 @@ build
        configure_options += \
                --enable-large-files \
                --enable-ipv6 \
-               --sysconfdir=/etc \
+               --sysconfdir=/etc/c-icap \
                --localstatedir=/var
 
        prepare_cmds
@@ -49,6 +49,14 @@ end
 
 packages
        package %{name}
+               requires = %{name}_modules
+
+               configfiles
+                       /etc/c-icap/c-icap.conf
+                       /etc/c-icap/c-icap.conf.default
+                       /etc/c-icap/c-icap.magic
+                       /etc/c-icap/c-icap.magic.default
+               end
        end
 
        package %{name}-debuginfo
index 5f34d46a64c10256e10f738d68ad6e2805a8bbec..d6e2911c8c0c60f9999a58f955cbf5f2cb3edaa0 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = c_icap_modules
 version    = 0.1.6
-release    = 1
+release    = 2
 
 maintainer = Christian Schmidt <christian.schmidt@ipfire.org>
 groups     = Networking/Daemons
@@ -25,14 +25,14 @@ build
        requires
                autoconf
                automake
-               c_icap
+               c_icap >= 0.1.7-3
                clamav-devel
                db4-devel
                libtool-devel
        end
 
        configure_options += \
-               --sysconfdir=/etc \
+               --sysconfdir=/etc/c-icap \
                --localstatedir=/var
 
        prepare_cmds
@@ -40,13 +40,19 @@ build
        end
 
        install
-               mkdir -pv %{BUILDROOT}/etc
+               mkdir -pv %{BUILDROOT}/etc/c-icap
                make install DESTDIR=%{BUILDROOT}
        end
 end
 
 packages
        package %{name}
+               configfiles
+                       /etc/c-icap/srv_clamav.conf
+                       /etc/c-icap/srv_clamav.conf.default
+                       /etc/c-icap/srv_url_check.conf
+                       /etc/c-icap/srv_url_check.conf.default
+               end
        end
 
        package %{name}-debuginfo
index 5cafa622c5694a48d9308dce68023e30ef536338..56bc324be048109e43c3b2b3cf8b8b4b5f41c9f4 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = cairo
-version    = 1.10.2
-release    = 3
+version    = 1.12.2
+release    = 1
 
 groups     = System/Graphics
 url        = http://cairographics.org
@@ -18,17 +18,26 @@ description
 end
 
 source_dl  = http://cairographics.org/releases/
+sources    = %{thisapp}.tar.xz
 
 build
        requires
                binutils>=2.21.51.0.8-2
                fontconfig-devel
                freetype-devel
+               libX11-devel
+               libxml2-devel
                libpng-devel
-               pixman-devel
+               pixman-devel>=0.22
                pkg-config
                zlib-devel
        end
+
+       configure_options += \
+               --enable-freetype \
+               --enable-xlib \
+               --enable-xml \
+               --disable-static
 end
 
 packages
diff --git a/checkpolicy/checkpolicy.nm b/checkpolicy/checkpolicy.nm
new file mode 100644 (file)
index 0000000..99a15ca
--- /dev/null
@@ -0,0 +1,58 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = checkpolicy
+version    = 2.1.8
+release    = 2
+
+groups     = Development/System
+url        = http://userspace.selinuxproject.org
+license    = GPLv2
+summary    = SELinux policy compiler.
+
+description
+       This package contains checkpolicy, the SELinux policy compiler and  
+       is required for building policies. 
+end
+
+sources    = %{thisapp}.tgz
+
+build
+       requires
+               bison
+               flex
+               flex-devel
+               libselinux-devel
+               libsepol-devel
+               libsepol-static
+       end
+
+       prepare_cmds
+               # Link against -lfl_pic instead of -lfl.
+               sed -i -e "s/lfl/&_pic/g" Makefile */Makefile
+       end
+
+       make_build_targets += \
+               LIBDIR="%{libdir}" \
+               CFLAGS="%{CFLAGS}" \
+               LEX=flex
+
+       # build all binaries.
+       build_cmds
+               make -C test %{make_build_targets}
+       end
+
+       make_install_cmds += \
+               LIBDIR=%{BUILDROOT}%{libdir}
+
+       install_cmds
+               install test/dismod %{BULDROOT}/usr/bin
+               install test/dispol %{BUILDROOT}/usr/bin
+       end
+end
+
+packages
+       package %{name}
+end
diff --git a/checkpolicy/patches/checkpolicy-rhat.patch2 b/checkpolicy/patches/checkpolicy-rhat.patch2
new file mode 100644 (file)
index 0000000..cf50706
--- /dev/null
@@ -0,0 +1,206 @@
+diff --git a/checkpolicy/policy_define.c b/checkpolicy/policy_define.c
+index d19fc61..a86c6b3 100644
+--- a/checkpolicy/policy_define.c
++++ b/checkpolicy/policy_define.c
+@@ -351,6 +351,102 @@ static int read_classes(ebitmap_t *e_classes)
+       return 0;
+ }
++int define_default_user(int which)
++{
++      char *id;
++      class_datum_t *cladatum;
++
++      if (pass == 1) {
++              while ((id = queue_remove(id_queue)))
++                      free(id);
++              return 0;
++      }
++
++      while ((id = queue_remove(id_queue))) {
++              if (!is_id_in_scope(SYM_CLASSES, id)) {
++                      yyerror2("class %s is not within scope", id);
++                      return -1;
++              }
++              cladatum = hashtab_search(policydbp->p_classes.table, id);
++              if (!cladatum) {
++                      yyerror2("unknown class %s", id);
++                      return -1;
++              }
++              if (cladatum->default_user && cladatum->default_user != which) {
++                      yyerror2("conflicting default user information for class %s", id);
++                      return -1;
++              }
++              cladatum->default_user = which;
++              free(id);
++      }
++
++      return 0;
++}
++
++int define_default_role(int which)
++{
++      char *id;
++      class_datum_t *cladatum;
++
++      if (pass == 1) {
++              while ((id = queue_remove(id_queue)))
++                      free(id);
++              return 0;
++      }
++
++      while ((id = queue_remove(id_queue))) {
++              if (!is_id_in_scope(SYM_CLASSES, id)) {
++                      yyerror2("class %s is not within scope", id);
++                      return -1;
++              }
++              cladatum = hashtab_search(policydbp->p_classes.table, id);
++              if (!cladatum) {
++                      yyerror2("unknown class %s", id);
++                      return -1;
++              }
++              if (cladatum->default_role && cladatum->default_role != which) {
++                      yyerror2("conflicting default role information for class %s", id);
++                      return -1;
++              }
++              cladatum->default_role = which;
++              free(id);
++      }
++
++      return 0;
++}
++
++int define_default_range(int which)
++{
++      char *id;
++      class_datum_t *cladatum;
++
++      if (pass == 1) {
++              while ((id = queue_remove(id_queue)))
++                      free(id);
++              return 0;
++      }
++
++      while ((id = queue_remove(id_queue))) {
++              if (!is_id_in_scope(SYM_CLASSES, id)) {
++                      yyerror2("class %s is not within scope", id);
++                      return -1;
++              }
++              cladatum = hashtab_search(policydbp->p_classes.table, id);
++              if (!cladatum) {
++                      yyerror2("unknown class %s", id);
++                      return -1;
++              }
++              if (cladatum->default_range && cladatum->default_range != which) {
++                      yyerror2("conflicting default range information for class %s", id);
++                      return -1;
++              }
++              cladatum->default_range = which;
++              free(id);
++      }
++
++      return 0;
++}
++
+ int define_common_perms(void)
+ {
+       char *id = 0, *perm = 0;
+diff --git a/checkpolicy/policy_define.h b/checkpolicy/policy_define.h
+index 92a9be7..ccbe56f 100644
+--- a/checkpolicy/policy_define.h
++++ b/checkpolicy/policy_define.h
+@@ -24,6 +24,9 @@ int define_av_perms(int inherits);
+ int define_bool_tunable(int is_tunable);
+ int define_category(void);
+ int define_class(void);
++int define_default_user(int which);
++int define_default_role(int which);
++int define_default_range(int which);
+ int define_common_perms(void);
+ int define_compute_type(int which);
+ int define_conditional(cond_expr_t *expr, avrule_t *t_list, avrule_t *f_list );
+diff --git a/checkpolicy/policy_parse.y b/checkpolicy/policy_parse.y
+index d808111..d92cc32 100644
+--- a/checkpolicy/policy_parse.y
++++ b/checkpolicy/policy_parse.y
+@@ -143,6 +143,8 @@ typedef int (* require_func_t)();
+ %token POLICYCAP
+ %token PERMISSIVE
+ %token FILESYSTEM
++%token DEFAULT_USER DEFAULT_ROLE DEFAULT_RANGE
++%token LOW_HIGH LOW HIGH
+ %left OR
+ %left XOR
+@@ -157,7 +159,7 @@ base_policy             : { if (define_policy(pass, 0) == -1) return -1; }
+                           classes initial_sids access_vectors
+                           { if (pass == 1) { if (policydb_index_classes(policydbp)) return -1; }
+                             else if (pass == 2) { if (policydb_index_others(NULL, policydbp, 0)) return -1; }}
+-                        opt_mls te_rbac users opt_constraints 
++                        opt_default_rules opt_mls te_rbac users opt_constraints 
+                          { if (pass == 1) { if (policydb_index_bools(policydbp)) return -1;}
+                          else if (pass == 2) { if (policydb_index_others(NULL, policydbp, 0)) return -1;}}
+                         initial_sid_contexts opt_fs_contexts opt_fs_uses opt_genfs_contexts net_contexts opt_dev_contexts
+@@ -195,6 +197,39 @@ av_perms_def              : CLASS identifier '{' identifier_list '}'
+                         | CLASS identifier INHERITS identifier '{' identifier_list '}'
+                       {if (define_av_perms(TRUE)) return -1;}
+                       ;
++opt_default_rules     : default_rules
++                      |
++                      ;
++default_rules         : default_user_def
++                      | default_role_def
++                      | default_range_def
++                      | default_rules default_user_def
++                      | default_rules default_role_def
++                      | default_rules default_range_def
++                      ;
++default_user_def      : DEFAULT_USER names SOURCE ';'
++                      {if (define_default_user(DEFAULT_SOURCE)) return -1; }
++                      | DEFAULT_USER names TARGET ';'
++                      {if (define_default_user(DEFAULT_TARGET)) return -1; }
++                      ;
++default_role_def      : DEFAULT_ROLE names SOURCE ';'
++                      {if (define_default_role(DEFAULT_SOURCE)) return -1; }
++                      | DEFAULT_ROLE names TARGET ';'
++                      {if (define_default_role(DEFAULT_TARGET)) return -1; }
++                      ;
++default_range_def     : DEFAULT_RANGE names SOURCE LOW ';'
++                      {if (define_default_range(DEFAULT_SOURCE_LOW)) return -1; }
++                      | DEFAULT_RANGE names SOURCE HIGH ';'
++                      {if (define_default_range(DEFAULT_SOURCE_HIGH)) return -1; }
++                      | DEFAULT_RANGE names SOURCE LOW_HIGH ';'
++                      {if (define_default_range(DEFAULT_SOURCE_LOW_HIGH)) return -1; }
++                      | DEFAULT_RANGE names TARGET LOW ';'
++                      {if (define_default_range(DEFAULT_TARGET_LOW)) return -1; }
++                      | DEFAULT_RANGE names TARGET HIGH ';'
++                      {if (define_default_range(DEFAULT_TARGET_HIGH)) return -1; }
++                      | DEFAULT_RANGE names TARGET LOW_HIGH ';'
++                      {if (define_default_range(DEFAULT_TARGET_LOW_HIGH)) return -1; }
++                      ;
+ opt_mls                       : mls
+                         | 
+                       ;
+diff --git a/checkpolicy/policy_scan.l b/checkpolicy/policy_scan.l
+index 9b24db5..e767b5f 100644
+--- a/checkpolicy/policy_scan.l
++++ b/checkpolicy/policy_scan.l
+@@ -221,6 +221,18 @@ policycap |
+ POLICYCAP                     { return(POLICYCAP); }
+ permissive |
+ PERMISSIVE                    { return(PERMISSIVE); }
++default_user |
++DEFAULT_USER                  { return(DEFAULT_USER); }
++default_role |
++DEFAULT_ROLE                  { return(DEFAULT_ROLE); }
++default_range |
++DEFAULT_RANGE                 { return(DEFAULT_RANGE); }
++low-high |
++LOW-HIGH                      { return(LOW_HIGH); }
++high |
++HIGH                          { return(HIGH); }
++low |
++LOW                           { return(LOW); }
+ "/"({alnum}|[_\.\-/])*                { return(PATH); }
+ \"({alnum}|[_\.\-\~])+\"      { return(FILENAME); }
+ {letter}({alnum}|[_\-])*([\.]?({alnum}|[_\-]))*       { return(IDENTIFIER); }
index ae809ebae2da14ca1cab39ec42c135ca09817104..2bb9ca646b0c73e81600e985474d15c47ebf2d25 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = clamav
-version    = 0.97
-release    = 3
+version    = 0.97.4
+release    = 1
 
 groups     = System Environment/Daemons
 url        = http://www.clamav.net
@@ -64,10 +64,17 @@ end
 
 packages
        package %{name}
+               requires
+                       %{name}-libs = %{thisver}
+               end
        end
 
        package %{name}-libs
                template LIBS
+
+               requires
+                       %{name}-databases = %{thisver}
+               end
        end
 
        package %{name}-devel
@@ -77,4 +84,15 @@ packages
        package %{name}-debuginfo
                template DEBUGINFO
        end
+
+       package %{name}-databases
+               summary = Clamav Virus Databases.
+               description
+                       Shipped virus databases needed for virus scanning.
+               end
+
+               files
+                       %{localstatedir}/lib/%{name}
+               end
+       end
 end
index 6b65353266fa4dc0758c5cbe1a32977ac1861706..df4ca91ff5fb66c141547a3ec9abdd1b9e0c104f 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = coreutils
-version    = 8.15
-release    = 1
+version    = 8.16
+release    = 4
 
 groups     = System/Base
 url        = http://www.gnu.org/software/coreutils/
@@ -45,7 +45,10 @@ build
                --enable-largefile \
                --disable-rpath \
                --enable-install-program=arch,su \
-               --enable-no-install-program=hostname,kill,uptime
+               --enable-no-install-program=hostname,kill,uptime \
+               --with-tty-group \
+               \
+               gl_cv_func_mknod_works=yes
 
        prepare_cmds
                aclocal -I m4
@@ -56,31 +59,70 @@ build
                make check
        end
 
+       make_install_targets += install-man
+
        install_cmds
-               mkdir -pv %{BUILDROOT}/{bin,etc/profile.d,usr/sbin}
-               mv -v %{BUILDROOT}/usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} %{BUILDROOT}/bin
-               mv -v %{BUILDROOT}/usr/bin/{false,ln,ls,mkdir,mknod,mv,pwd,readlink,rm} %{BUILDROOT}/bin
-               mv -v %{BUILDROOT}/usr/bin/{rmdir,stty,sync,touch,true,uname} %{BUILDROOT}/bin
-               mv -v %{BUILDROOT}/usr/bin/chroot %{BUILDROOT}/usr/sbin
-               mv -v %{BUILDROOT}/usr/bin/{head,sleep,nice} %{BUILDROOT}/bin
+               mkdir -pv %{BUILDROOT}%{sbindir}
+               mv -v %{BUILDROOT}/usr/bin/chroot %{BUILDROOT}%{sbindir}
+               mv -v %{BUILDROOT}/usr/bin/runuser %{BUILDROOT}%{sbindir}
 
-               # Reinstall su in /bin
-               rm -rfv %{BUILDROOT}/usr/bin/su
-               install -m 4755 src/su %{BUILDROOT}/bin
+               # su (set right capabilities)
+               chmod -v u-s %{BUILDROOT}%{bindir}/su
+               setcap cap_setgid,cap_setuid+ep %{BUILDROOT}%{bindir}/su
 
                # Dump /etc/DIR_COLORS
+               mkdir -pv %{BUILDROOT}%{sysconfdir}
                dircolors -p > %{BUILDROOT}/etc/DIR_COLORS
-               cp -vf %{DIR_SOURCE}/profile.d/* %{BUILDROOT}/etc/profile.d/
 
-               # Capabilities
-               chmod u-s %{BUILDROOT}/bin/su
-               setcap cap_setgid,cap_setuid+ep %{BUILDROOT}/bin/su
+               # Install profile.d.
+               mkdir -pv %{BUILDROOT}%{sysconfdir}/profile.d/
+               cp -vf %{DIR_SOURCE}/profile.d/* %{BUILDROOT}/etc/profile.d/
        end
 end
 
 packages
        package %{name}
                groups += Base Build
+
+               provides
+                       /bin/basename
+                       /bin/cat
+                       /bin/chgrp
+                       /bin/chmod
+                       /bin/chown
+                       /bin/cp
+                       /bin/cut
+                       /bin/date
+                       /bin/dd
+                       /bin/df
+                       /bin/echo
+                       /bin/env
+                       /bin/false
+                       /bin/ln
+                       /bin/ls
+                       /bin/mkdir
+                       /bin/mknod
+                       /bin/mktemp
+                       /bin/mv
+                       /bin/nice
+                       /bin/pwd
+                       /bin/readlink
+                       /bin/rm
+                       /bin/rmdir
+                       /bin/sleep
+                       /bin/sort
+                       /bin/stty
+                       /bin/su
+                       /bin/sync
+                       /bin/touch
+                       /bin/true
+                       /bin/uname
+                       /sbin/runuser
+               end
+
+               conflicts
+                       filesystem < 002
+               end
        end
 
        package %{name}-debuginfo
diff --git a/coreutils/patches/coreutils-7.6-uname_PIC-1.patch.off b/coreutils/patches/coreutils-7.6-uname_PIC-1.patch.off
deleted file mode 100644 (file)
index 0ae413f..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-Submitted By: Robert Connolly <robert@linuxfromscratch.org> (ashes)
-Date: 2005-11-13
-Initial Package Version: 5.93
-Upstream Status: pending
-Origin: Scot McPherson and Zack Winkles
-Description: Fix the output of uname once and for all. This is the position independent
-version.
-
-       $ uname -m      # This always worked.
-       i686
-       $ uname -i      # Used to report 'unknown'.
-       i386
-       $ uname -p      # Likewise.
-       athlon-4
-
-Now 'uname -p' can be used by GCC's mtune/mcpu and march options. For example:
-
-       CFLAGS="-march=$(uname -m) -mtune=$(uname -p)"
-
-diff -Naur coreutils-5.93.orig/src/uname.c coreutils-5.93/src/uname.c
---- coreutils-5.93.orig/src/uname.c    2005-09-15 19:57:04.000000000 +0000
-+++ coreutils-5.93/src/uname.c 2005-11-13 19:18:35.000000000 +0000
-@@ -29,6 +29,26 @@
- # include <sys/systeminfo.h>
- #endif
-+#ifdef linux
-+/* Thanks to the ffmpeg team for this PIC version of cpuid() */
-+#ifdef ARCH_X86_64
-+#  define REG_b "rbx"
-+#  define REG_S "rsi"
-+#else
-+#  define REG_b "ebx"
-+#  define REG_S "esi"
-+#endif
-+#define cpuid(index,eax,ebx,ecx,edx)\
-+      __asm __volatile\
-+        ("mov %%"REG_b", %%"REG_S"\n\t"\
-+        "cpuid\n\t"\
-+        "xchg %%"REG_b", %%"REG_S\
-+        : "=a" (eax), "=S" (ebx),\
-+        "=c" (ecx), "=d" (edx)\
-+        : "0" (index));
-+int has_sse( void );
-+#endif
-+
- #if HAVE_SYS_SYSCTL_H
- # if HAVE_SYS_PARAM_H
- #  include <sys/param.h> /* needed for OpenBSD 3.0 */
-@@ -256,6 +276,99 @@
-       if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
-         element = processor;
-       }
-+#else
-+      {
-+      struct utsname u;
-+      uname (&u);
-+      element = u.machine;
-+#ifdef linux
-+/******************************************************************************
-+ *
-+ * Hello, major hack.  I shouldn't have to do this.  struct utsname should
-+ * have another element with this info in it.  There's probably a struct
-+ * somewhere that has this info, I just don't know where it is.
-+ *
-+ *****************************************************************************/
-+
-+      if( !strcmp( element, "i586" ) || !strcmp( element, "i686" ) ) {
-+        int eax, ebx, ecx, edx, unused;
-+        int model, family, sse;
-+     
-+        cpuid(0,unused,ebx,ecx,edx);
-+        cpuid(1,eax,unused,unused,unused);
-+        model = (eax >> 4) & 0xf;
-+        family = (eax >> 8) & 0xf;
-+
-+        switch(ebx) {
-+        case 0x756e6547: // Intel
-+          switch( family ) {
-+          case 5: // Pentium
-+            if( model <= 3 )
-+              element="pentium";
-+            if( model > 3 )
-+              element="pentium-mmx";
-+            break;
-+          case 6: // PentiumPro - Pentium III
-+            if( model == 1 ) // Pentium Pro
-+              element="pentiumpro";
-+            if( ( model == 3 ) || ( model == 5 ) ||
-+                ( model == 6 ) ) // Pentium II
-+              element="pentium2";
-+            if( ( model == 7 ) || ( model == 8 ) ||
-+                ( model == 10 ) || ( model == 11 ) ) // These are all Pentium III
-+              element="pentium3";
-+            break;
-+          case 15: // Pentium4
-+            if( model == 3 ) // Prescott
-+                element="prescott";
-+            else
-+            element="pentium4";
-+            break;
-+          default:
-+            break;
-+          } // end switch( family )
-+          break;
-+        case 0x68747541: // AMD
-+          switch(family) {
-+          case 5:
-+            if( ( model == 0 ) || ( model == 1 ) || 
-+                ( model == 2 ) || ( model == 3 ) ) // K5
-+              element="i586";
-+            if( ( model == 6 ) || ( model == 7 ) ) // K6
-+              element="k6";
-+            if( model == 8 ) // K6-2
-+              element="k6-2";
-+            if( model == 9 ) // K6-3
-+              element="k6-3";
-+            break;
-+          case 6:
-+            if( model <= 4 )
-+              element="athlon";
-+            if( model > 4 ) {
-+              sse = has_sse();
-+              if( sse == 0 )
-+                element="athlon";
-+              if( sse == 1 )
-+                element="athlon-4";
-+            }
-+            break;
-+          case 15:
-+            element="athlon-4";
-+            break;
-+          default:
-+            break;
-+          } // end switch( family )
-+          break;
-+        case 0x69727943: // Cyrix
-+          element="i386"; // who knows what cyrix supports, lets be safe
-+          break;
-+        default:
-+          break;
-+        } // end switch(ebx)
-+      }
-+
-+#endif
-+      }
- #endif
- #ifdef UNAME_PROCESSOR
-       if (element == unknown)
-@@ -293,7 +406,7 @@
-   if (toprint & PRINT_HARDWARE_PLATFORM)
-     {
--      char const *element = unknown;
-+      char *element = unknown;
- #if HAVE_SYSINFO && defined SI_PLATFORM
-       {
-       static char hardware_platform[257];
-@@ -301,6 +414,15 @@
-                         hardware_platform, sizeof hardware_platform))
-         element = hardware_platform;
-       }
-+#else
-+      {
-+      struct utsname u;
-+      uname (&u);
-+      element = u.machine;
-+      if (strlen (element) == 4 && element[0] == 'i' && element[2] == '8'
-+          && element[3] == '6')
-+        element[1] = '3';
-+      }
- #endif
- #ifdef UNAME_HARDWARE_PLATFORM
-       if (element == unknown)
-@@ -323,3 +445,29 @@
-   exit (EXIT_SUCCESS);
- }
-+
-+#ifdef linux
-+
-+/******************************************************************************
-+ *
-+ * int has_sse( void )
-+ * Checks Athlon CPU's to see if they support SSE.
-+ *
-+ *****************************************************************************/
-+
-+int has_sse( void )
-+{
-+  unsigned long edx, unused;
-+  int sse;
-+  cpuid(1,unused,unused,unused,edx);
-+  // I think, I need this tested on a Duron with SSE
-+  // and one without it.
-+  sse = edx & 0x2000000;
-+  if( sse == 0 ) {
-+    return 0;
-+  } else {
-+    return 1;
-+  }
-+
-+}
-+#endif
index 71b85e7a451f291363b86351e2d4d494b1bcfcd0..3d0e416b0d75e05e60e47336d99e3c7ad52d041c 100644 (file)
@@ -1,19 +1,7 @@
-From ea2d050b1952feb99f86c98255280beb6e589d8c Mon Sep 17 00:00:00 2001
-From: Ludwig Nussel <ludwig.nussel@suse.de>
-Date: Tue, 17 Aug 2010 13:21:44 +0200
-Subject: [PATCH 1/7] pam support for su
-
----
- configure.ac    |   14 +++
- src/Makefile.am |    4 +-
- src/su.c        |  266 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
- 3 files changed, 278 insertions(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index b07a52b..1fb5839 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -128,6 +128,20 @@ fi
+diff -urNp coreutils-8.16-orig/configure.ac coreutils-8.16/configure.ac
+--- coreutils-8.16-orig/configure.ac   2012-03-24 19:22:13.000000000 +0100
++++ coreutils-8.16/configure.ac        2012-03-26 17:59:07.900139497 +0200
+@@ -185,6 +185,20 @@ fi
  
  AC_FUNC_FORK
  
@@ -34,11 +22,34 @@ index b07a52b..1fb5839 100644
  optional_bin_progs=
  AC_CHECK_FUNCS([chroot],
          gl_ADD_PROG([optional_bin_progs], [chroot]))
-diff --git a/src/Makefile.am b/src/Makefile.am
-index db5359b..154a5ed 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -363,8 +363,8 @@ factor_LDADD += $(LIB_GMP)
+diff -urNp coreutils-8.16-orig/doc/coreutils.texi coreutils-8.16/doc/coreutils.texi
+--- coreutils-8.16-orig/doc/coreutils.texi     2012-03-26 17:58:27.624763998 +0200
++++ coreutils-8.16/doc/coreutils.texi  2012-03-26 17:59:07.907138599 +0200
+@@ -15804,7 +15804,9 @@ the exit status of @var{command} otherwi
+ @command{su} allows one user to temporarily become another user.  It runs a
+ command (often an interactive shell) with the real and effective user
+-ID, group ID, and supplemental groups of a given @var{user}.  Synopsis:
++ID, group ID, and supplemental groups of a given @var{user}. When the -l
++option is given, the su-l PAM file is used instead of the default su PAM file.
++Synopsis:
+ @example
+ su [@var{option}]@dots{} [@var{user} [@var{arg}]@dots{}]
+@@ -15883,7 +15885,8 @@ environment variables except @env{TERM},
+ (which are set, even for the super-user, as described above), and set
+ @env{PATH} to a compiled-in default value.  Change to @var{user}'s home
+ directory.  Prepend @samp{-} to the shell's name, intended to make it
+-read its login startup file(s).
++read its login startup file(s). When this option is given, /etc/pam.d/su-l
++PAM file is used instead of the default one.
+ @item -m
+ @itemx -p
+diff -urNp coreutils-8.16-orig/src/Makefile.am coreutils-8.16/src/Makefile.am
+--- coreutils-8.16-orig/src/Makefile.am        2012-03-24 19:22:13.000000000 +0100
++++ coreutils-8.16/src/Makefile.am     2012-03-26 17:59:07.928142551 +0200
+@@ -357,8 +357,8 @@ factor_LDADD += $(LIB_GMP)
  # for getloadavg
  uptime_LDADD += $(GETLOADAVG_LIBS)
  
@@ -49,10 +60,9 @@ index db5359b..154a5ed 100644
  
  # for various ACL functions
  copy_LDADD += $(LIB_ACL)
-diff --git a/src/su.c b/src/su.c
-index f8f5b61..811aad7 100644
---- a/src/su.c
-+++ b/src/su.c
+diff -urNp coreutils-8.16-orig/src/su.c coreutils-8.16/src/su.c
+--- coreutils-8.16-orig/src/su.c       2012-03-26 17:58:27.629764055 +0200
++++ coreutils-8.16/src/su.c    2012-03-26 17:59:07.931138998 +0200
 @@ -37,6 +37,16 @@
     restricts who can su to UID 0 accounts.  RMS considers that to
     be fascist.
@@ -84,7 +94,7 @@ index f8f5b61..811aad7 100644
  
  #include "system.h"
  #include "getpass.h"
-@@ -111,7 +128,9 @@
+@@ -120,7 +137,9 @@
  /* The user to become if none is specified.  */
  #define DEFAULT_USER "root"
  
@@ -94,7 +104,7 @@ index f8f5b61..811aad7 100644
  
  static void run_shell (char const *, char const *, char **, size_t)
       ATTRIBUTE_NORETURN;
-@@ -125,6 +144,11 @@ static bool simulate_login;
+@@ -134,6 +153,11 @@ static bool simulate_login;
  /* If true, change some environment vars to indicate the user su'd to.  */
  static bool change_environment;
  
@@ -106,7 +116,7 @@ index f8f5b61..811aad7 100644
  static struct option const longopts[] =
  {
    {"command", required_argument, NULL, 'c'},
-@@ -200,7 +224,164 @@ log_su (struct passwd const *pw, bool successful)
+@@ -212,7 +236,174 @@ log_su (struct passwd const *pw, bool su
  }
  #endif
  
@@ -168,7 +178,7 @@ index f8f5b61..811aad7 100644
 +create_watching_parent (void)
 +{
 +  pid_t child;
-+  sigset_t ourset;
++  sigset_t ourset, blockset;
 +  int status = 0;
 +
 +  retval = pam_open_session (pamh, 0);
@@ -230,7 +240,17 @@ index f8f5b61..811aad7 100644
 +
 +        if (pid != (pid_t)-1 && WIFSTOPPED (status))
 +          {
++       /* tcsh sends SIGTSTP to the process group, and so is already pending */
 +            kill (getpid (), SIGSTOP);
++             if (WSTOPSIG(status) != SIGSTOP) {
++               sigemptyset(&blockset);
++               if (sigaddset(&blockset, WSTOPSIG(status)) ||
++                   sigprocmask(SIG_UNBLOCK, &blockset, &ourset) ||
++                   sigprocmask(SIG_SETMASK, &ourset, NULL))
++                {
++                   error (0, errno, _("cannot set signal handler"));
++                }
++             }
 +            /* once we get here, we must have resumed */
 +            kill (pid, SIGCONT);
 +          }
@@ -271,7 +291,7 @@ index f8f5b61..811aad7 100644
     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.  */
-@@ -208,10 +389,52 @@ log_su (struct passwd const *pw, bool successful)
+@@ -220,10 +411,52 @@ log_su (struct passwd const *pw, bool su
  static bool
  correct_password (const struct passwd *pw)
  {
@@ -325,15 +345,15 @@ index f8f5b61..811aad7 100644
  
    endspent ();
    if (sp)
-@@ -232,6 +455,7 @@ correct_password (const struct passwd *pw)
+@@ -244,6 +477,7 @@ correct_password (const struct passwd *p
    encrypted = crypt (unencrypted, correct);
    memset (unencrypted, 0, strlen (unencrypted));
    return STREQ (encrypted, correct);
 +#endif /* !USE_PAM */
  }
  
- /* Update `environ' for the new shell based on PW, with SHELL being
-@@ -274,19 +498,41 @@ modify_environment (const struct passwd *pw, const char *shell)
+ /* Update 'environ' for the new shell based on PW, with SHELL being
+@@ -286,19 +520,41 @@ modify_environment (const struct passwd 
              }
          }
      }
@@ -377,7 +397,7 @@ index f8f5b61..811aad7 100644
    if (setgid (pw->pw_gid))
      error (EXIT_CANCELED, errno, _("cannot set group id"));
    if (setuid (pw->pw_uid))
-@@ -500,9 +746,21 @@ main (int argc, char **argv)
+@@ -511,9 +767,21 @@ main (int argc, char **argv)
        shell = NULL;
      }
    shell = xstrdup (shell ? shell : pw->pw_shell);
@@ -400,29 +420,3 @@ index f8f5b61..811aad7 100644
    if (simulate_login && chdir (pw->pw_dir) != 0)
      error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
  
--- 
-1.7.1
-diff -urNp coreutils-8.7-orig/doc/coreutils.texi coreutils-8.7/doc/coreutils.texi
---- coreutils-8.7-orig/doc/coreutils.texi      2010-11-15 12:47:03.529922880 +0100
-+++ coreutils-8.7/doc/coreutils.texi   2010-11-15 12:49:55.945171380 +0100
-@@ -15180,7 +15180,9 @@ the exit status of @var{command} otherwi
- @command{su} allows one user to temporarily become another user.  It runs a
- command (often an interactive shell) with the real and effective user
--ID, group ID, and supplemental groups of a given @var{user}.  Synopsis:
-+ID, group ID, and supplemental groups of a given @var{user}. When the -l
-+option is given, the su-l PAM file is used instead of the default su PAM file.
-+Synopsis:
- @example
- su [@var{option}]@dots{} [@var{user} [@var{arg}]@dots{}]
-@@ -15259,7 +15261,8 @@ environment variables except @env{TERM},
- (which are set, even for the super-user, as described above), and set
- @env{PATH} to a compiled-in default value.  Change to @var{user}'s home
- directory.  Prepend @samp{-} to the shell's name, intended to make it
--read its login startup file(s).
-+read its login startup file(s). When this option is given, /etc/pam.d/su-l
-+PAM file is used instead of the default one.
- @item -m
- @itemx -p
diff --git a/coreutils/patches/coreutils-8.7-runuser.patch b/coreutils/patches/coreutils-8.7-runuser.patch
new file mode 100644 (file)
index 0000000..533e15a
--- /dev/null
@@ -0,0 +1,338 @@
+diff -urNp coreutils-8.7-orig/AUTHORS coreutils-8.7/AUTHORS
+--- coreutils-8.7-orig/AUTHORS 2010-10-11 19:35:11.000000000 +0200
++++ coreutils-8.7/AUTHORS      2010-11-15 10:08:04.222078001 +0100
+@@ -65,6 +65,7 @@ readlink: Dmitry V. Levin
+ rm: Paul Rubin, David MacKenzie, Richard M. Stallman, Jim Meyering
+ rmdir: David MacKenzie
+ runcon: Russell Coker
++runuser: David MacKenzie, Dan Walsh
+ seq: Ulrich Drepper
+ sha1sum: Ulrich Drepper, Scott Miller, David Madore
+ sha224sum: Ulrich Drepper, Scott Miller, David Madore
+diff -urNp coreutils-8.7-orig/man/help2man coreutils-8.7/man/help2man
+--- coreutils-8.7-orig/man/help2man    2010-10-11 19:35:11.000000000 +0200
++++ coreutils-8.7/man/help2man 2010-11-15 10:08:51.331054884 +0100
+@@ -555,6 +555,9 @@ while (length)
+     $include{$sect} .= $content;
+ }
++# There is no info documentation for runuser (shared with su).
++$opt_no_info = 1 if $program eq 'runuser';
++
+ # Refer to the real documentation.
+ unless ($opt_no_info)
+ {
+diff -urNp coreutils-8.7-orig/man/Makefile.am coreutils-8.7/man/Makefile.am
+--- coreutils-8.7-orig/man/Makefile.am 2010-10-11 19:35:11.000000000 +0200
++++ coreutils-8.7/man/Makefile.am      2010-11-15 10:09:21.768922182 +0100
+@@ -94,6 +94,7 @@ readlink.1:  $(common_dep)   $(srcdir)/read
+ rm.1:         $(common_dep)   $(srcdir)/rm.x          ../src/rm.c
+ rmdir.1:      $(common_dep)   $(srcdir)/rmdir.x       ../src/rmdir.c
+ runcon.1:     $(common_dep)   $(srcdir)/runcon.x      ../src/runcon.c
++runuser.1:    $(common_dep)   $(srcdir)/runuser.x     ../src/su.c
+ seq.1:                $(common_dep)   $(srcdir)/seq.x         ../src/seq.c
+ sha1sum.1:    $(common_dep)   $(srcdir)/sha1sum.x     ../src/md5sum.c
+ sha224sum.1:  $(common_dep)   $(srcdir)/sha224sum.x   ../src/md5sum.c
+diff -urNp coreutils-8.7-orig/man/runuser.x coreutils-8.7/man/runuser.x
+--- coreutils-8.7-orig/man/runuser.x   1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.7/man/runuser.x        2010-11-15 10:09:57.437939015 +0100
+@@ -0,0 +1,12 @@
++[NAME]
++runuser \- run a shell with substitute user and group IDs
++[DESCRIPTION]
++.\" Add any additional description here
++[SEE ALSO]
++.TP
++More detailed Texinfo documentation could be found by command
++.TP
++\t\fBinfo coreutils \(aqsu invocation\(aq\fR\t
++.TP
++since the command \fBrunuser\fR is trimmed down version of command \fBsu\fR.
++.br
+diff -urNp coreutils-8.7-orig/README coreutils-8.7/README
+--- coreutils-8.7-orig/README  2010-10-11 19:35:11.000000000 +0200
++++ coreutils-8.7/README       2010-11-15 10:10:43.002922253 +0100
+@@ -11,8 +11,8 @@ The programs that can be built with this
+   factor false fmt fold groups head hostid hostname id install join kill
+   link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup
+   nproc od paste pathchk pinky pr printenv printf ptx pwd readlink realpath
+-  rm rmdir runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred
+-  shuf sleep sort split stat stdbuf stty su sum sync tac tail tee test
++  rm rmdir runcon runuser seq sha1sum sha224sum sha256sum sha384sum sha512sum
++  shred shuf sleep sort split stat stdbuf stty su sum sync tac tail tee test
+   timeout touch tr true truncate tsort tty uname unexpand uniq unlink
+   uptime users vdir wc who whoami yes
+diff -urNp coreutils-8.7-orig/src/Makefile.am coreutils-8.7/src/Makefile.am
+--- coreutils-8.7-orig/src/Makefile.am 2010-11-15 10:07:07.339171659 +0100
++++ coreutils-8.7/src/Makefile.am      2010-11-15 10:12:14.847094550 +0100
+@@ -100,6 +100,7 @@ EXTRA_PROGRAMS = \
+   rm          \
+   rmdir               \
+   runcon      \
++  runuser     \
+   seq         \
+   sha1sum     \
+   sha224sum   \
+@@ -300,6 +301,10 @@ cp_LDADD += $(copy_LDADD)
+ ginstall_LDADD += $(copy_LDADD)
+ mv_LDADD += $(copy_LDADD)
++runuser_SOURCES = su.c
++runuser_CFLAGS = -DRUNUSER -DAUTHORS="\"David MacKenzie, Dan Walsh\""
++runuser_LDADD = $(LDADD) $(LIB_CRYPT) $(PAM_LIBS)
++
+ remove_LDADD =
+ mv_LDADD += $(remove_LDADD)
+ rm_LDADD += $(remove_LDADD)
+@@ -395,7 +400,7 @@ RELEASE_YEAR = \
+   `sed -n '/.*COPYRIGHT_YEAR = \([0-9][0-9][0-9][0-9]\) };/s//\1/p' \
+     $(top_srcdir)/lib/version-etc.c`
+-all-local: su$(EXEEXT)
++all-local: su$(EXEEXT) runuser
+ installed_su = $(DESTDIR)$(bindir)/`echo su|sed '$(transform)'`
+diff -urNp coreutils-8.7-orig/src/su.c coreutils-8.7/src/su.c
+--- coreutils-8.7-orig/src/su.c        2010-11-15 10:07:07.372933288 +0100
++++ coreutils-8.7/src/su.c     2010-11-15 10:42:12.569159230 +0100
+@@ -100,9 +100,15 @@
+ #include "error.h"
+ /* The official name of this program (e.g., no 'g' prefix).  */
++#ifndef RUNUSER
+ #define PROGRAM_NAME "su"
++#else
++#define PROGRAM_NAME "runuser"
++#endif
++#ifndef AUTHORS
+ #define AUTHORS proper_name ("David MacKenzie")
++#endif
+ #if HAVE_PATHS_H
+ # include <paths.h>
+@@ -140,6 +146,9 @@
+ #ifndef USE_PAM
+ char *crypt (char const *key, char const *salt);
+ #endif
++#ifndef CHECKPASSWD
++#define CHECKPASSWD 1
++#endif
+ static void run_shell (char const *, char const *, char **, size_t)
+      ATTRIBUTE_NORETURN;
+@@ -169,6 +178,10 @@ static struct option const longopts[] =
+   {"login", no_argument, NULL, 'l'},
+   {"preserve-environment", no_argument, NULL, 'p'},
+   {"shell", required_argument, NULL, 's'},
++#ifdef RUNUSER
++  {"group", required_argument, NULL, 'g'},
++  {"supp-group", required_argument, NULL, 'G'},
++#endif
+   {GETOPT_HELP_OPTION_DECL},
+   {GETOPT_VERSION_OPTION_DECL},
+   {NULL, 0, NULL, 0}
+@@ -444,6 +457,11 @@ correct_password (const struct passwd *p
+       retval = pam_set_item (pamh, PAM_RUSER, (const void *) lpw->pw_name);
+       PAM_BAIL_P (return false);
+     }
++#ifdef RUNUSER
++  if (getuid() != geteuid())
++    /* safety net: deny operation if we are suid by accident */
++    error(EXIT_FAILURE, 1, "runuser may not be setuid");
++#else
+   retval = pam_authenticate (pamh, 0);
+   PAM_BAIL_P (return false);
+   retval = pam_acct_mgmt (pamh, 0);
+@@ -454,6 +472,7 @@ correct_password (const struct passwd *p
+       PAM_BAIL_P (return false);
+     }
+   PAM_BAIL_P (return false);
++#endif
+   /* Must be authenticated if this point was reached.  */
+   return true;
+ #else /* !USE_PAM */
+@@ -533,11 +552,22 @@ modify_environment (const struct passwd 
+ /* Become the user and group(s) specified by PW.  */
+ static void
+-init_groups (const struct passwd *pw)
++init_groups (const struct passwd *pw
++#ifdef RUNUSER
++                 , gid_t *groups, int num_groups
++#endif
++        )
+ {
+ #ifdef HAVE_INITGROUPS
++  int rc = 0;
+   errno = 0;
+-  if (initgroups (pw->pw_name, pw->pw_gid) == -1)
++#ifdef RUNUSER
++  if (num_groups)
++    rc = setgroups(num_groups, groups);
++  else
++#endif
++    rc = initgroups(pw->pw_name, pw->pw_gid);
++  if (rc == -1)
+     {
+ #ifdef USE_PAM
+       cleanup_pam (PAM_ABORT);
+@@ -639,6 +669,28 @@ usage (int status)
+   else
+     {
+       printf (_("Usage: %s [OPTION]... [-] [USER [ARG]...]\n"), program_name);
++#ifdef RUNUSER
++      printf (_("\
++Change the effective user id and group id to that of USER.  Only session PAM\n\
++hooks are run, and there is no password prompt.  This command is useful only\n\
++when run as the root user.  If run as a non-root user without privilege\n\
++to set user ID, the command will fail as the binary is not setuid.\n\
++As %s doesn't run auth and account PAM hooks, it runs with lower overhead\n\
++than su.\n\
++\n\
++  -, -l, --login               make the shell a login shell, uses runuser-l\n\
++                               PAM file instead of default one\n\
++  -g --group=group             specify the primary group\n\
++  -G --supp-group=group        specify a supplemental group\n\
++  -c, --command=COMMAND        pass a single COMMAND to the shell with -c\n\
++  --session-command=COMMAND    pass a single COMMAND to the shell with -c\n\
++                               and do not create a new session\n\
++  -f, --fast                   pass -f to the shell (for csh or tcsh)\n\
++  -m, --preserve-environment   do not reset environment variables\n\
++  -p                           same as -m\n\
++  -s, --shell=SHELL            run SHELL if /etc/shells allows it\n\
++"), program_name);
++#else
+       fputs (_("\
+ Change the effective user id and group id to that of USER.\n\
+ \n\
+@@ -651,6 +703,7 @@ Change the effective user id and group i
+   -p                           same as -m\n\
+   -s, --shell=SHELL            run SHELL if /etc/shells allows it\n\
+ "), stdout);
++#endif
+       fputs (HELP_OPTION_DESCRIPTION, stdout);
+       fputs (VERSION_OPTION_DESCRIPTION, stdout);
+       fputs (_("\
+@@ -672,6 +725,12 @@ main (int argc, char **argv)
+   char *shell = NULL;
+   struct passwd *pw;
+   struct passwd pw_copy;
++#ifdef RUNUSER
++  struct group *gr;
++  gid_t groups[NGROUPS_MAX];
++  int num_supp_groups = 0;
++  int use_gid = 0;
++#endif
+   initialize_main (&argc, &argv);
+   set_program_name (argv[0]);
+@@ -686,7 +745,11 @@ main (int argc, char **argv)
+   simulate_login = false;
+   change_environment = true;
+-  while ((optc = getopt_long (argc, argv, "c:flmps:", longopts, NULL)) != -1)
++  while ((optc = getopt_long (argc, argv, "c:flmps:"
++#ifdef RUNUSER
++                              "g:G:"
++#endif
++                              , longopts, NULL)) != -1)
+     {
+       switch (optc)
+         {
+@@ -716,6 +779,28 @@ main (int argc, char **argv)
+           shell = optarg;
+           break;
++#ifdef RUNUSER
++        case 'g':
++          gr = getgrnam(optarg);
++          if (!gr)
++            error (EXIT_FAILURE, 0, _("group %s does not exist"), optarg);
++          use_gid = 1;
++          groups[0] = gr->gr_gid;
++          break;
++
++        case 'G':
++          num_supp_groups++;
++          if (num_supp_groups >= NGROUPS_MAX)
++            error (EXIT_FAILURE, 0,
++                   _("Can't specify more than %d supplemental groups"),
++                   NGROUPS_MAX - 1);
++          gr = getgrnam(optarg);
++          if (!gr)
++            error (EXIT_FAILURE, 0, _("group %s does not exist"), optarg);
++          groups[num_supp_groups] = gr->gr_gid;
++          break;
++#endif
++
+         case_GETOPT_HELP_CHAR;
+         case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
+@@ -754,7 +839,20 @@ main (int argc, char **argv)
+                           : DEFAULT_SHELL);
+   endpwent ();
+-  if (!correct_password (pw))
++#ifdef RUNUSER
++  if (num_supp_groups && !use_gid)
++  {
++    pw->pw_gid = groups[1];
++    memmove (groups, groups + 1, sizeof(gid_t) * num_supp_groups);
++  }
++  else if (use_gid)
++  {
++    pw->pw_gid = groups[0];
++    num_supp_groups++;
++  }
++#endif
++
++  if (CHECKPASSWD && !correct_password (pw))
+     {
+ #ifdef SYSLOG_FAILURE
+       log_su (pw, false);
+@@ -784,7 +882,11 @@ main (int argc, char **argv)
+     }
+   shell = xstrdup (shell ? shell : pw->pw_shell);
+-  init_groups (pw);
++  init_groups (pw
++#ifdef RUNUSER
++                   , groups, num_supp_groups
++#endif
++          );
+ #ifdef USE_PAM
+   create_watching_parent ();
+diff -urNp coreutils-8.7-orig/tests/misc/help-version coreutils-8.7/tests/misc/help-version
+--- coreutils-8.7-orig/tests/misc/help-version 2010-10-11 19:35:11.000000000 +0200
++++ coreutils-8.7/tests/misc/help-version      2010-11-15 10:45:18.473682325 +0100
+@@ -32,6 +32,7 @@ expected_failure_status_nohup=125
+ expected_failure_status_stdbuf=125
+ expected_failure_status_su=125
+ expected_failure_status_timeout=125
++expected_failure_status_runuser=125
+ expected_failure_status_printenv=2
+ expected_failure_status_tty=3
+ expected_failure_status_sort=2
+@@ -209,6 +210,7 @@ seq_setup () { args=10; }
+ sleep_setup () { args=0; }
+ su_setup () { args=--version; }
+ stdbuf_setup () { args="-oL true"; }
++runuser_setup () { args=--version; }
+ timeout_setup () { args=--version; }
+ # I'd rather not run sync, since it spins up disks that I've
+diff -urNp coreutils-8.7-orig/tests/misc/invalid-opt coreutils-8.7/tests/misc/invalid-opt
+--- coreutils-8.7-orig/tests/misc/invalid-opt  2010-10-11 19:35:11.000000000 +0200
++++ coreutils-8.7/tests/misc/invalid-opt       2010-11-15 10:45:46.451938873 +0100
+@@ -37,6 +37,7 @@ my %exit_status =
+     sort => 2,
+     stdbuf => 125,
+     su => 125,
++    runuser => 125,
+     test => 0,
+     timeout => 125,
+     true => 0,
index e2f9f21ed09bb1d5a8adac0fba8970f81399273e..ee2cf73aa6940f82c0aa6b61393e1f173149997a 100644 (file)
@@ -1,6 +1,6 @@
-diff -urNp coreutils-8.13-orig/lib/linebuffer.h coreutils-8.13/lib/linebuffer.h
---- coreutils-8.13-orig/lib/linebuffer.h       2011-04-24 19:21:45.000000000 +0200
-+++ coreutils-8.13/lib/linebuffer.h    2011-09-09 10:23:14.163704760 +0200
+diff -urNp coreutils-8.16-orig/lib/linebuffer.h coreutils-8.16/lib/linebuffer.h
+--- coreutils-8.16-orig/lib/linebuffer.h       2012-01-06 10:14:31.000000000 +0100
++++ coreutils-8.16/lib/linebuffer.h    2012-03-26 18:02:00.993889446 +0200
 @@ -21,6 +21,11 @@
  
  # include <stdio.h>
@@ -23,9 +23,9 @@ diff -urNp coreutils-8.13-orig/lib/linebuffer.h coreutils-8.13/lib/linebuffer.h
  };
  
  /* Initialize linebuffer LINEBUFFER for use. */
-diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
---- coreutils-8.13-orig/src/cut.c      2011-07-28 12:38:27.000000000 +0200
-+++ coreutils-8.13/src/cut.c   2011-09-09 10:23:14.165701039 +0200
+diff -urNp coreutils-8.16-orig/src/cut.c coreutils-8.16/src/cut.c
+--- coreutils-8.16-orig/src/cut.c      2012-03-24 21:26:51.000000000 +0100
++++ coreutils-8.16/src/cut.c   2012-03-26 17:46:48.000000000 +0200
 @@ -28,6 +28,11 @@
  #include <assert.h>
  #include <getopt.h>
@@ -54,7 +54,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
 +# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
 +#endif
 +
- /* The official name of this program (e.g., no `g' prefix).  */
+ /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "cut"
  
 @@ -72,6 +89,52 @@
@@ -118,7 +118,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
 +/* 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.  */
+    '2-5,9-', '2-3,5,9-' this variable would be set to 5.  */
 @@ -102,10 +165,11 @@ static size_t eol_range_start;
  
  /* This is a bit vector.
@@ -170,7 +170,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
  
  /* True if the --output-delimiter=STRING option was specified.  */
  static bool output_delimiter_specified;
-@@ -207,7 +284,7 @@ Mandatory arguments to long options are 
+@@ -206,7 +283,7 @@ Mandatory arguments to long options are 
    -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\
@@ -179,7 +179,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
  "), stdout);
        fputs (_("\
        --complement        complement the set of selected bytes, characters\n\
-@@ -366,7 +443,7 @@ set_fields (const char *fieldstr)
+@@ -365,7 +442,7 @@ set_fields (const char *fieldstr)
            in_digits = false;
            /* Starting a range. */
            if (dash_found)
@@ -188,10 +188,10 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
            dash_found = true;
            fieldstr++;
  
-@@ -390,14 +467,16 @@ set_fields (const char *fieldstr)
+@@ -389,14 +466,16 @@ set_fields (const char *fieldstr)
                if (!rhs_specified)
                  {
-                   /* `n-'.  From `initial' to end of line. */
+                   /* 'n-'.  From 'initial' to end of line. */
 -                  eol_range_start = initial;
 +                  if (eol_range_start == 0 ||
 +                      (eol_range_start != 0 && eol_range_start > initial))
@@ -200,14 +200,14 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
                  }
                else
                  {
-                   /* `m-n' or `-n' (1-n). */
+                   /* '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)
-@@ -477,6 +556,9 @@ set_fields (const char *fieldstr)
+@@ -476,6 +555,9 @@ set_fields (const char *fieldstr)
                if (operating_mode == byte_mode)
                  error (0, 0,
                         _("byte offset %s is too large"), quote (bad_num));
@@ -217,7 +217,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
                else
                  error (0, 0,
                         _("field number %s is too large"), quote (bad_num));
-@@ -487,7 +569,7 @@ set_fields (const char *fieldstr)
+@@ -486,7 +568,7 @@ set_fields (const char *fieldstr)
            fieldstr++;
          }
        else
@@ -226,7 +226,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
      }
  
    max_range_endpoint = 0;
-@@ -582,6 +664,77 @@ cut_bytes (FILE *stream)
+@@ -581,6 +663,77 @@ cut_bytes (FILE *stream)
      }
  }
  
@@ -304,7 +304,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
  /* Read from stream STREAM, printing to standard output any selected fields.  */
  
  static void
-@@ -704,13 +843,195 @@ cut_fields (FILE *stream)
+@@ -703,13 +856,195 @@ cut_fields (FILE *stream)
      }
  }
  
@@ -503,7 +503,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
  }
  
  /* Process file FILE to standard output.
-@@ -762,6 +1080,8 @@ main (int argc, char **argv)
+@@ -761,6 +1096,8 @@ main (int argc, char **argv)
    bool ok;
    bool delim_specified = false;
    char *spec_list_string IF_LINT ( = NULL);
@@ -512,7 +512,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
  
    initialize_main (&argc, &argv);
    set_program_name (argv[0]);
-@@ -784,7 +1104,6 @@ main (int argc, char **argv)
+@@ -783,7 +1120,6 @@ main (int argc, char **argv)
        switch (optc)
          {
          case 'b':
@@ -520,7 +520,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
            /* Build the byte list. */
            if (operating_mode != undefined_mode)
              FATAL_ERROR (_("only one type of list may be specified"));
-@@ -792,6 +1111,14 @@ main (int argc, char **argv)
+@@ -791,6 +1127,14 @@ main (int argc, char **argv)
            spec_list_string = optarg;
            break;
  
@@ -535,10 +535,10 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
          case 'f':
            /* Build the field list. */
            if (operating_mode != undefined_mode)
-@@ -803,10 +1130,35 @@ main (int argc, char **argv)
+@@ -802,10 +1146,35 @@ main (int argc, char **argv)
          case 'd':
            /* New delimiter. */
-           /* Interpret -d '' to mean `use the NUL byte as the 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];
@@ -575,7 +575,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
            break;
  
          case OUTPUT_DELIMITER_OPTION:
-@@ -819,6 +1171,7 @@ main (int argc, char **argv)
+@@ -818,6 +1187,7 @@ main (int argc, char **argv)
            break;
  
          case 'n':
@@ -583,7 +583,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
            break;
  
          case 's':
-@@ -841,7 +1194,7 @@ main (int argc, char **argv)
+@@ -840,7 +1210,7 @@ main (int argc, char **argv)
    if (operating_mode == undefined_mode)
      FATAL_ERROR (_("you must specify a list of bytes, characters, or fields"));
  
@@ -592,7 +592,7 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
      FATAL_ERROR (_("an input delimiter may be specified only\
   when operating on fields"));
  
-@@ -868,15 +1221,34 @@ main (int argc, char **argv)
+@@ -867,15 +1237,34 @@ main (int argc, char **argv)
      }
  
    if (!delim_specified)
@@ -633,10 +633,10 @@ diff -urNp coreutils-8.13-orig/src/cut.c coreutils-8.13/src/cut.c
      }
  
    if (optind == argc)
-diff -urNp coreutils-8.13-orig/src/expand.c coreutils-8.13/src/expand.c
---- coreutils-8.13-orig/src/expand.c   2011-07-28 12:38:27.000000000 +0200
-+++ coreutils-8.13/src/expand.c        2011-09-09 10:23:14.167583399 +0200
-@@ -38,12 +38,29 @@
+diff -urNp coreutils-8.16-orig/src/expand.c coreutils-8.16/src/expand.c
+--- coreutils-8.16-orig/src/expand.c   2012-03-24 21:26:51.000000000 +0100
++++ coreutils-8.16/src/expand.c        2012-03-26 17:42:56.000000000 +0200
+@@ -37,12 +37,29 @@
  #include <stdio.h>
  #include <getopt.h>
  #include <sys/types.h>
@@ -663,10 +663,10 @@ diff -urNp coreutils-8.13-orig/src/expand.c coreutils-8.13/src/expand.c
 +# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
 +#endif
 +
- /* The official name of this program (e.g., no `g' prefix).  */
+ /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "expand"
  
-@@ -360,6 +377,142 @@ expand (void)
+@@ -358,6 +375,142 @@ expand (void)
      }
  }
  
@@ -809,7 +809,7 @@ diff -urNp coreutils-8.13-orig/src/expand.c coreutils-8.13/src/expand.c
  int
  main (int argc, char **argv)
  {
-@@ -424,7 +577,12 @@ main (int argc, char **argv)
+@@ -422,7 +575,12 @@ main (int argc, char **argv)
  
    file_list = (optind < argc ? &argv[optind] : stdin_argv);
  
@@ -823,9 +823,9 @@ diff -urNp coreutils-8.13-orig/src/expand.c coreutils-8.13/src/expand.c
  
    if (have_read_stdin && fclose (stdin) != 0)
      error (EXIT_FAILURE, errno, "-");
-diff -urNp coreutils-8.13-orig/src/fold.c coreutils-8.13/src/fold.c
---- coreutils-8.13-orig/src/fold.c     2011-07-28 12:38:27.000000000 +0200
-+++ coreutils-8.13/src/fold.c  2011-09-09 10:23:14.169583741 +0200
+diff -urNp coreutils-8.16-orig/src/fold.c coreutils-8.16/src/fold.c
+--- coreutils-8.16-orig/src/fold.c     2012-03-24 19:22:13.000000000 +0100
++++ coreutils-8.16/src/fold.c  2012-03-26 17:48:37.000000000 +0200
 @@ -22,12 +22,34 @@
  #include <getopt.h>
  #include <sys/types.h>
@@ -860,7 +860,7 @@ diff -urNp coreutils-8.13-orig/src/fold.c coreutils-8.13/src/fold.c
 +
  #define TAB_WIDTH 8
  
- /* The official name of this program (e.g., no `g' prefix).  */
+ /* The official name of this program (e.g., no 'g' prefix).  */
 @@ -35,20 +57,41 @@
  
  #define AUTHORS proper_name ("David MacKenzie")
@@ -907,7 +907,7 @@ diff -urNp coreutils-8.13-orig/src/fold.c coreutils-8.13/src/fold.c
    {"spaces", no_argument, NULL, 's'},
    {"width", required_argument, NULL, 'w'},
    {GETOPT_HELP_OPTION_DECL},
-@@ -78,6 +121,7 @@ Mandatory arguments to long options are 
+@@ -77,6 +120,7 @@ Mandatory arguments to long options are 
  "), stdout);
        fputs (_("\
    -b, --bytes         count bytes rather than columns\n\
@@ -915,7 +915,7 @@ diff -urNp coreutils-8.13-orig/src/fold.c coreutils-8.13/src/fold.c
    -s, --spaces        break at spaces\n\
    -w, --width=WIDTH   use WIDTH columns instead of 80\n\
  "), stdout);
-@@ -95,7 +139,7 @@ Mandatory arguments to long options are 
+@@ -94,7 +138,7 @@ Mandatory arguments to long options are 
  static size_t
  adjust_column (size_t column, char c)
  {
@@ -924,7 +924,7 @@ diff -urNp coreutils-8.13-orig/src/fold.c coreutils-8.13/src/fold.c
      {
        if (c == '\b')
          {
-@@ -118,30 +162,14 @@ adjust_column (size_t column, char c)
+@@ -117,30 +161,14 @@ adjust_column (size_t column, char c)
     to stdout, with maximum line length WIDTH.
     Return true if successful.  */
  
@@ -936,7 +936,7 @@ diff -urNp coreutils-8.13-orig/src/fold.c coreutils-8.13/src/fold.c
 -  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. */
+   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;
@@ -957,7 +957,7 @@ diff -urNp coreutils-8.13-orig/src/fold.c coreutils-8.13/src/fold.c
  
    fadvise (istream, FADVISE_SEQUENTIAL);
  
-@@ -171,6 +199,15 @@ fold_file (char const *filename, size_t 
+@@ -170,6 +198,15 @@ fold_file (char const *filename, size_t 
                bool found_blank = false;
                size_t logical_end = offset_out;
  
@@ -973,7 +973,7 @@ diff -urNp coreutils-8.13-orig/src/fold.c coreutils-8.13/src/fold.c
                /* Look for the last blank. */
                while (logical_end)
                  {
-@@ -217,11 +254,221 @@ fold_file (char const *filename, size_t 
+@@ -216,11 +253,221 @@ fold_file (char const *filename, size_t 
        line_out[offset_out++] = c;
      }
  
@@ -1196,7 +1196,7 @@ diff -urNp coreutils-8.13-orig/src/fold.c coreutils-8.13/src/fold.c
    if (ferror (istream))
      {
        error (0, saved_errno, "%s", filename);
-@@ -254,7 +501,8 @@ main (int argc, char **argv)
+@@ -253,7 +500,8 @@ main (int argc, char **argv)
  
    atexit (close_stdout);
  
@@ -1206,7 +1206,7 @@ diff -urNp coreutils-8.13-orig/src/fold.c coreutils-8.13/src/fold.c
  
    while ((optc = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1)
      {
-@@ -263,7 +511,15 @@ main (int argc, char **argv)
+@@ -262,7 +510,15 @@ main (int argc, char **argv)
        switch (optc)
          {
          case 'b':             /* Count bytes rather than columns. */
@@ -1223,9 +1223,9 @@ diff -urNp coreutils-8.13-orig/src/fold.c coreutils-8.13/src/fold.c
            break;
  
          case 's':             /* Break at word boundaries. */
-diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
---- coreutils-8.13-orig/src/join.c     2011-08-08 10:16:09.000000000 +0200
-+++ coreutils-8.13/src/join.c  2011-09-09 10:23:14.172687087 +0200
+diff -urNp coreutils-8.16-orig/src/join.c coreutils-8.16/src/join.c
+--- coreutils-8.16-orig/src/join.c     2012-03-24 21:26:51.000000000 +0100
++++ coreutils-8.16/src/join.c  2012-03-26 17:50:02.000000000 +0200
 @@ -22,18 +22,32 @@
  #include <sys/types.h>
  #include <getopt.h>
@@ -1257,11 +1257,11 @@ diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
 +# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
 +#endif
 +
- /* The official name of this program (e.g., no `g' prefix).  */
+ /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "join"
  
 @@ -135,10 +149,12 @@ static struct outlist outlist_head;
- /* Last element in `outlist', where a new element can be added.  */
+ /* 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
@@ -1277,7 +1277,7 @@ diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
  
  /* If nonzero, check that the input is correctly ordered. */
  static enum
-@@ -263,13 +279,14 @@ xfields (struct line *line)
+@@ -262,13 +278,14 @@ xfields (struct line *line)
    if (ptr == lim)
      return;
  
@@ -1295,7 +1295,7 @@ diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
      {
        /* Skip leading blanks before the first field.  */
        while (isblank (to_uchar (*ptr)))
-@@ -293,6 +310,148 @@ xfields (struct line *line)
+@@ -292,6 +309,148 @@ xfields (struct line *line)
    extract_field (line, ptr, lim - ptr);
  }
  
@@ -1444,7 +1444,7 @@ diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
  static void
  freeline (struct line *line)
  {
-@@ -314,56 +473,115 @@ keycmp (struct line const *line1, struct
+@@ -313,56 +472,115 @@ keycmp (struct line const *line1, struct
          size_t jf_1, size_t jf_2)
  {
    /* Start of field to compare in each file.  */
@@ -1583,7 +1583,7 @@ diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
  }
  
  /* Check that successive input lines PREV and CURRENT from input file
-@@ -455,6 +673,11 @@ get_line (FILE *fp, struct line **linep,
+@@ -454,6 +672,11 @@ get_line (FILE *fp, struct line **linep,
      }
    ++line_no[which - 1];
  
@@ -1595,7 +1595,7 @@ diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
    xfields (line);
  
    if (prevline[which - 1])
-@@ -554,21 +777,28 @@ prfield (size_t n, struct line const *li
+@@ -553,21 +776,28 @@ prfield (size_t n, struct line const *li
  
  /* Output all the fields in line, other than the join field.  */
  
@@ -1627,7 +1627,7 @@ diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
        prfield (i, line);
      }
  }
-@@ -579,7 +809,6 @@ static void
+@@ -578,7 +808,6 @@ static void
  prjoin (struct line const *line1, struct line const *line2)
  {
    const struct outlist *outlist;
@@ -1635,7 +1635,7 @@ diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
    size_t field;
    struct line const *line;
  
-@@ -613,7 +842,7 @@ prjoin (struct line const *line1, struct
+@@ -612,7 +841,7 @@ prjoin (struct line const *line1, struct
            o = o->next;
            if (o == NULL)
              break;
@@ -1644,7 +1644,7 @@ diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
          }
        putchar ('\n');
      }
-@@ -1091,21 +1320,46 @@ main (int argc, char **argv)
+@@ -1090,21 +1319,46 @@ main (int argc, char **argv)
  
          case 't':
            {
@@ -1670,8 +1670,8 @@ diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
 +#endif
 +              newtablen = 1;
              if (! newtab)
-+            {
 -              newtab = '\n'; /* '' => process the whole line.  */
++            {
 +              newtab = "\n"; /* '' => process the whole line.  */
 +            }
              else if (optarg[1])
@@ -1701,9 +1701,9 @@ diff -urNp coreutils-8.13-orig/src/join.c coreutils-8.13/src/join.c
            break;
  
          case NOCHECK_ORDER_OPTION:
-diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
---- coreutils-8.13-orig/src/pr.c       2011-08-30 23:01:40.000000000 +0200
-+++ coreutils-8.13/src/pr.c    2011-09-09 10:23:14.177658905 +0200
+diff -urNp coreutils-8.16-orig/src/pr.c coreutils-8.16/src/pr.c
+--- coreutils-8.16-orig/src/pr.c       2012-03-24 21:26:51.000000000 +0100
++++ coreutils-8.16/src/pr.c    2012-03-26 17:50:48.000000000 +0200
 @@ -312,6 +312,32 @@
  
  #include <getopt.h>
@@ -1753,7 +1753,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
 +extern int wcwidth ();
 +#endif
 +
- /* The official name of this program (e.g., no `g' prefix).  */
+ /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "pr"
  
 @@ -415,7 +453,20 @@ struct COLUMN
@@ -1786,7 +1786,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
                         int *number);
  static void print_files (int number_of_files, char **av);
  static void init_parameters (int number_of_files);
-@@ -439,7 +491,6 @@ static void store_char (char c);
+@@ -438,7 +490,6 @@ static void store_char (char c);
  static void pad_down (int lines);
  static void read_rest_of_line (COLUMN *p);
  static void skip_read (COLUMN *p, int column_number);
@@ -1794,7 +1794,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  static void cleanup (void);
  static void print_sep_string (void);
  static void separator_string (const char *optarg_S);
-@@ -451,7 +502,7 @@ static COLUMN *column_vector;
+@@ -450,7 +501,7 @@ static COLUMN *column_vector;
     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]. */
@@ -1803,7 +1803,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  
  /* Index of the position in buff where the next character
     will be stored. */
-@@ -555,7 +606,7 @@ static int chars_per_column;
+@@ -554,7 +605,7 @@ static int chars_per_column;
  static bool untabify_input = false;
  
  /* (-e) The input tab character. */
@@ -1812,7 +1812,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  
  /* (-e) Tabstops are at chars_per_tab, 2*chars_per_tab, 3*chars_per_tab, ...
     where the leftmost column is 1. */
-@@ -565,7 +616,10 @@ static int chars_per_input_tab = 8;
+@@ -564,7 +615,10 @@ static int chars_per_input_tab = 8;
  static bool tabify_output = false;
  
  /* (-i) The output tab character. */
@@ -1824,7 +1824,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  
  /* (-i) The width of the output tab. */
  static int chars_per_output_tab = 8;
-@@ -639,7 +693,13 @@ static int power_10;
+@@ -638,7 +692,13 @@ static int power_10;
  static bool numbered_lines = false;
  
  /* (-n) Character which follows each line number. */
@@ -1839,15 +1839,15 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  
  /* (-n) line counting starts with 1st line of input file (not with 1st
     line of 1st page printed). */
-@@ -692,6 +752,7 @@ static bool use_col_separator = false;
-    -a|COLUMN|-m is a `space' and with the -J option a `tab'. */
+@@ -691,6 +751,7 @@ static bool use_col_separator = false;
+    -a|COLUMN|-m is a 'space' and with the -J option a 'tab'. */
  static char *col_sep_string = (char *) "";
  static int col_sep_length = 0;
 +static int col_sep_width = 0;
  static char *column_separator = (char *) " ";
  static char *line_separator = (char *) "\t";
  
-@@ -848,6 +909,13 @@ separator_string (const char *optarg_S)
+@@ -847,6 +908,13 @@ separator_string (const char *optarg_S)
    col_sep_length = (int) strlen (optarg_S);
    col_sep_string = xmalloc (col_sep_length + 1);
    strcpy (col_sep_string, optarg_S);
@@ -1861,7 +1861,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  }
  
  int
-@@ -872,6 +940,21 @@ main (int argc, char **argv)
+@@ -871,6 +939,21 @@ main (int argc, char **argv)
  
    atexit (close_stdout);
  
@@ -1883,7 +1883,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
    n_files = 0;
    file_names = (argc > 1
                  ? xmalloc ((argc - 1) * sizeof (char *))
-@@ -948,8 +1031,12 @@ main (int argc, char **argv)
+@@ -947,8 +1030,12 @@ main (int argc, char **argv)
            break;
          case 'e':
            if (optarg)
@@ -1898,7 +1898,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
            /* Could check tab width > 0. */
            untabify_input = true;
            break;
-@@ -962,8 +1049,12 @@ main (int argc, char **argv)
+@@ -961,8 +1048,12 @@ main (int argc, char **argv)
            break;
          case 'i':
            if (optarg)
@@ -1913,7 +1913,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
            /* Could check tab width > 0. */
            tabify_output = true;
            break;
-@@ -990,8 +1081,8 @@ main (int argc, char **argv)
+@@ -989,8 +1080,8 @@ main (int argc, char **argv)
          case 'n':
            numbered_lines = true;
            if (optarg)
@@ -1924,7 +1924,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
            break;
          case 'N':
            skip_count = false;
-@@ -1030,7 +1121,7 @@ main (int argc, char **argv)
+@@ -1029,7 +1120,7 @@ main (int argc, char **argv)
            old_s = false;
            /* Reset an additional input of -s, -S dominates -s */
            col_sep_string = bad_cast ("");
@@ -1933,7 +1933,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
            use_col_separator = true;
            if (optarg)
              separator_string (optarg);
-@@ -1187,10 +1278,45 @@ main (int argc, char **argv)
+@@ -1186,10 +1277,45 @@ main (int argc, char **argv)
     a number. */
  
  static void
@@ -1981,7 +1981,19 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
    if (*arg)
      {
        long int tmp_long;
-@@ -1249,7 +1375,7 @@ init_parameters (int number_of_files)
+@@ -1211,6 +1337,11 @@ static void
+ init_parameters (int number_of_files)
+ {
+   int chars_used_by_number = 0;
++  int mb_len = 1;
++#if HAVE_MBRTOWC
++  if (MB_CUR_MAX > 1)
++    mb_len = MB_LEN_MAX;
++#endif
+   lines_per_body = lines_per_page - lines_per_header - lines_per_footer;
+   if (lines_per_body <= 0)
+@@ -1248,7 +1379,7 @@ init_parameters (int number_of_files)
            else
              col_sep_string = column_separator;
  
@@ -1990,7 +2002,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
            use_col_separator = true;
          }
        /* It's rather pointless to define a TAB separator with column
-@@ -1280,11 +1406,11 @@ init_parameters (int number_of_files)
+@@ -1279,11 +1410,11 @@ init_parameters (int number_of_files)
               TAB_WIDTH (chars_per_input_tab, chars_per_number);   */
  
        /* Estimate chars_per_text without any margin and keep it constant. */
@@ -2004,7 +2016,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  
        /* The number is part of the column width unless we are
           printing files in parallel. */
-@@ -1299,7 +1425,7 @@ init_parameters (int number_of_files)
+@@ -1298,7 +1429,7 @@ init_parameters (int number_of_files)
      }
  
    chars_per_column = (chars_per_line - chars_used_by_number -
@@ -2013,7 +2025,16 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  
    if (chars_per_column < 1)
      error (EXIT_FAILURE, 0, _("page width too narrow"));
-@@ -1424,7 +1550,7 @@ init_funcs (void)
+@@ -1315,7 +1446,7 @@ init_parameters (int number_of_files)
+      We've to use 8 as the lower limit, if we use chars_per_default_tab = 8
+      to expand a tab which is not an input_tab-char. */
+   free (clump_buff);
+-  clump_buff = xmalloc (MAX (8, chars_per_input_tab));
++  clump_buff = xmalloc (mb_len * MAX (8, chars_per_input_tab));
+ }
\f
+ /* Open the necessary files,
+@@ -1423,7 +1554,7 @@ init_funcs (void)
  
    /* Enlarge p->start_position of first column to use the same form of
       padding_not_printed with all columns. */
@@ -2022,7 +2043,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  
    /* This loop takes care of all but the rightmost column. */
  
-@@ -1458,7 +1584,7 @@ init_funcs (void)
+@@ -1457,7 +1588,7 @@ init_funcs (void)
          }
        else
          {
@@ -2031,7 +2052,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
            h_next = h + chars_per_column;
          }
      }
-@@ -1749,9 +1875,9 @@ static void
+@@ -1748,9 +1879,9 @@ static void
  align_column (COLUMN *p)
  {
    padding_not_printed = p->start_position;
@@ -2043,7 +2064,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
        padding_not_printed = ANYWHERE;
      }
  
-@@ -2022,13 +2148,13 @@ store_char (char c)
+@@ -2021,13 +2152,13 @@ store_char (char c)
        /* May be too generous. */
        buff = X2REALLOC (buff, &buff_allocated);
      }
@@ -2059,9 +2080,9 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
    char *s;
    int left_cut;
  
-@@ -2051,22 +2177,24 @@ add_line_number (COLUMN *p)
+@@ -2050,22 +2181,24 @@ add_line_number (COLUMN *p)
        /* Tabification is assumed for multiple columns, also for n-separators,
-          but `default n-separator = TAB' hasn't been given priority over
+          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')
@@ -2088,7 +2109,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
          output_position = POS_AFTER_TAB (chars_per_output_tab,
                            output_position);
      }
-@@ -2227,7 +2355,7 @@ print_white_space (void)
+@@ -2226,7 +2359,7 @@ print_white_space (void)
    while (goal - h_old > 1
           && (h_new = POS_AFTER_TAB (chars_per_output_tab, h_old)) <= goal)
      {
@@ -2097,7 +2118,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
        h_old = h_new;
      }
    while (++h_old <= goal)
-@@ -2247,6 +2375,7 @@ print_sep_string (void)
+@@ -2246,6 +2379,7 @@ print_sep_string (void)
  {
    char *s;
    int l = col_sep_length;
@@ -2105,7 +2126,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  
    s = col_sep_string;
  
-@@ -2260,6 +2389,7 @@ print_sep_string (void)
+@@ -2259,6 +2393,7 @@ print_sep_string (void)
      {
        for (; separators_not_printed > 0; --separators_not_printed)
          {
@@ -2113,7 +2134,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
            while (l-- > 0)
              {
                /* 3 types of sep_strings: spaces only, spaces and chars,
-@@ -2273,12 +2403,15 @@ print_sep_string (void)
+@@ -2272,12 +2407,15 @@ print_sep_string (void)
                  }
                else
                  {
@@ -2130,7 +2151,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
            /* sep_string ends with some spaces */
            if (spaces_not_printed > 0)
              print_white_space ();
-@@ -2306,7 +2439,7 @@ print_clump (COLUMN *p, int n, char *clu
+@@ -2305,7 +2443,7 @@ print_clump (COLUMN *p, int n, char *clu
     required number of tabs and spaces. */
  
  static void
@@ -2139,7 +2160,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  {
    if (tabify_output)
      {
-@@ -2330,6 +2463,74 @@ print_char (char c)
+@@ -2329,6 +2467,74 @@ print_char (char c)
    putchar (c);
  }
  
@@ -2214,7 +2235,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  /* Skip to page PAGE before printing.
     PAGE may be larger than total number of pages. */
  
-@@ -2509,9 +2710,9 @@ read_line (COLUMN *p)
+@@ -2508,9 +2714,9 @@ read_line (COLUMN *p)
            align_empty_cols = false;
          }
  
@@ -2226,7 +2247,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
            padding_not_printed = ANYWHERE;
          }
  
-@@ -2612,9 +2813,9 @@ print_stored (COLUMN *p)
+@@ -2611,9 +2817,9 @@ print_stored (COLUMN *p)
          }
      }
  
@@ -2238,7 +2259,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
        padding_not_printed = ANYWHERE;
      }
  
-@@ -2627,8 +2828,8 @@ print_stored (COLUMN *p)
+@@ -2626,8 +2832,8 @@ print_stored (COLUMN *p)
    if (spaces_not_printed == 0)
      {
        output_position = p->start_position + end_vector[line];
@@ -2249,7 +2270,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
      }
  
    return true;
-@@ -2647,7 +2848,7 @@ print_stored (COLUMN *p)
+@@ -2646,7 +2852,7 @@ print_stored (COLUMN *p)
     number of characters is 1.) */
  
  static int
@@ -2258,7 +2279,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  {
    unsigned char uc = c;
    char *s = clump_buff;
-@@ -2657,10 +2858,10 @@ char_to_clump (char c)
+@@ -2656,10 +2862,10 @@ char_to_clump (char c)
    int chars;
    int chars_per_c = 8;
  
@@ -2271,7 +2292,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
      {
        width = TAB_WIDTH (chars_per_c, input_position);
  
-@@ -2741,6 +2942,155 @@ char_to_clump (char c)
+@@ -2740,6 +2946,154 @@ char_to_clump (char c)
    return chars;
  }
  
@@ -2279,7 +2300,6 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
 +static int
 +char_to_clump_multi (char c)
 +{
-+  unsigned char uc = c;
 +  static size_t mbc_pos = 0;
 +  static char mbc[MB_LEN_MAX] = {'\0'};
 +  static mbstate_t state = {'\0'};
@@ -2317,7 +2337,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
 +              width = +4;
 +              chars = +4;
 +              *s++ = '\\';
-+              sprintf (esc_buff, "%03o", mbc[0]);
++              sprintf (esc_buff, "%03o", (unsigned char) mbc[0]);
 +              for (i = 0; i <= 2; ++i)
 +                *s++ = (int) esc_buff[i];
 +            }
@@ -2366,7 +2386,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
 +                      width += 4;
 +                      chars += 4;
 +                      *s++ = '\\';
-+                      sprintf (esc_buff, "%03o", uc);
++                      sprintf (esc_buff, "%03o", (unsigned char) mbc[i]);
 +                      for (j = 0; j <= 2; ++j)
 +                        *s++ = (int) esc_buff[j];
 +                    }
@@ -2387,7 +2407,7 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
 +                          width += 4;
 +                          chars += 4;
 +                          *s++ = '\\';
-+                          sprintf (esc_buff, "%03o", uc);
++                          sprintf (esc_buff, "%03o", (unsigned char) mbc[i]);
 +                          for (j = 0; j <= 2; ++j)
 +                            *s++ = (int) esc_buff[j];
 +                        }
@@ -2427,9 +2447,9 @@ diff -urNp coreutils-8.13-orig/src/pr.c coreutils-8.13/src/pr.c
  /* We've just printed some files and need to clean up things before
     looking for more options and printing the next batch of files.
  
-diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
---- coreutils-8.13-orig/src/sort.c     2011-07-29 10:12:25.000000000 +0200
-+++ coreutils-8.13/src/sort.c  2011-09-09 10:23:14.183686800 +0200
+diff -urNp coreutils-8.16-orig/src/sort.c coreutils-8.16/src/sort.c
+--- coreutils-8.16-orig/src/sort.c     2012-03-24 21:26:51.000000000 +0100
++++ coreutils-8.16/src/sort.c  2012-03-26 17:35:09.000000000 +0200
 @@ -22,11 +22,20 @@
  
  #include <config.h>
@@ -2504,7 +2524,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  
  /* Flag to remove consecutive duplicate lines from the output.
     Only the last of a sequence of equal lines will be output. */
-@@ -783,6 +812,46 @@ reap_all (void)
+@@ -782,6 +811,46 @@ reap_all (void)
      reap (-1);
  }
  
@@ -2551,7 +2571,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  /* Clean up any remaining temporary files.  */
  
  static void
-@@ -1215,7 +1284,7 @@ zaptemp (char const *name)
+@@ -1214,7 +1283,7 @@ zaptemp (char const *name)
    free (node);
  }
  
@@ -2560,7 +2580,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  
  static int
  struct_month_cmp (void const *m1, void const *m2)
-@@ -1230,7 +1299,7 @@ struct_month_cmp (void const *m1, void c
+@@ -1229,7 +1298,7 @@ struct_month_cmp (void const *m1, void c
  /* Initialize the character class tables. */
  
  static void
@@ -2569,7 +2589,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  {
    size_t i;
  
-@@ -1242,7 +1311,7 @@ inittables (void)
+@@ -1241,7 +1310,7 @@ inittables (void)
        fold_toupper[i] = toupper (i);
      }
  
@@ -2578,7 +2598,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
    /* If we're not in the "C" locale, read different names for months.  */
    if (hard_LC_TIME)
      {
-@@ -1324,6 +1393,84 @@ specify_nmerge (int oi, char c, char con
+@@ -1323,6 +1392,84 @@ specify_nmerge (int oi, char c, char con
      xstrtol_fatal (e, oi, c, long_options, s);
  }
  
@@ -2663,7 +2683,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  /* Specify the amount of main memory to use when sorting.  */
  static void
  specify_sort_size (int oi, char c, char const *s)
-@@ -1552,7 +1699,7 @@ buffer_linelim (struct buffer const *buf
+@@ -1551,7 +1698,7 @@ buffer_linelim (struct buffer const *buf
     by KEY in LINE. */
  
  static char *
@@ -2672,7 +2692,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  {
    char *ptr = line->text, *lim = ptr + line->length - 1;
    size_t sword = key->sword;
-@@ -1561,10 +1708,10 @@ begfield (struct line const *line, struc
+@@ -1560,10 +1707,10 @@ begfield (struct line const *line, struc
    /* The leading field separator itself is included in a field when -t
       is absent.  */
  
@@ -2685,7 +2705,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
            ++ptr;
          if (ptr < lim)
            ++ptr;
-@@ -1590,11 +1737,70 @@ begfield (struct line const *line, struc
+@@ -1589,11 +1736,70 @@ begfield (struct line const *line, struc
    return ptr;
  }
  
@@ -2757,9 +2777,9 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  {
    char *ptr = line->text, *lim = ptr + line->length - 1;
    size_t eword = key->eword, echar = key->echar;
-@@ -1609,10 +1815,10 @@ limfield (struct line const *line, struc
-      `beginning' is the first character following the delimiting TAB.
-      Otherwise, leave PTR pointing at the first `blank' character after
+@@ -1608,10 +1814,10 @@ limfield (struct line const *line, struc
+      '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)
@@ -2770,7 +2790,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
            ++ptr;
          if (ptr < lim && (eword || echar))
            ++ptr;
-@@ -1658,10 +1864,10 @@ limfield (struct line const *line, struc
+@@ -1657,10 +1863,10 @@ limfield (struct line const *line, struc
       */
  
    /* Make LIM point to the end of (one byte past) the current field.  */
@@ -2783,7 +2803,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
        if (newlim)
          lim = newlim;
      }
-@@ -1692,6 +1898,130 @@ limfield (struct line const *line, struc
+@@ -1691,6 +1897,130 @@ limfield (struct line const *line, struc
    return ptr;
  }
  
@@ -2914,7 +2934,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  /* 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
-@@ -1778,8 +2108,22 @@ fillbuf (struct buffer *buf, FILE *fp, c
+@@ -1777,8 +2107,22 @@ fillbuf (struct buffer *buf, FILE *fp, c
                    else
                      {
                        if (key->skipsblanks)
@@ -2939,7 +2959,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
                        line->keybeg = line_start;
                      }
                  }
-@@ -1900,7 +2244,7 @@ human_numcompare (char const *a, char co
+@@ -1899,7 +2243,7 @@ human_numcompare (char const *a, char co
     hideously fast. */
  
  static int
@@ -2948,7 +2968,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  {
    while (blanks[to_uchar (*a)])
      a++;
-@@ -1910,6 +2254,25 @@ numcompare (char const *a, char const *b
+@@ -1909,6 +2253,25 @@ numcompare (char const *a, char const *b
    return strnumcmp (a, b, decimal_point, thousands_sep);
  }
  
@@ -2974,7 +2994,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  /* Work around a problem whereby the long double value returned by glibc's
     strtold ("NaN", ...) contains uninitialized bits: clear all bytes of
     A and B before calling strtold.  FIXME: remove this function once
-@@ -1942,7 +2305,7 @@ general_numcompare (char const *sa, char
+@@ -1959,7 +2322,7 @@ general_numcompare (char const *sa, char
     Return 0 if the name in S is not recognized.  */
  
  static int
@@ -2983,7 +3003,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  {
    size_t lo = 0;
    size_t hi = MONTHS_PER_YEAR;
-@@ -2217,15 +2580,14 @@ debug_key (struct line const *line, stru
+@@ -2234,15 +2597,14 @@ debug_key (struct line const *line, stru
            char saved = *lim;
            *lim = '\0';
  
@@ -3001,7 +3021,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
            else if (key->general_numeric)
              ignore_value (strtold (beg, &tighter_lim));
            else if (key->numeric || key->human_numeric)
-@@ -2369,7 +2731,7 @@ key_warnings (struct keyfield const *gke
+@@ -2386,7 +2748,7 @@ key_warnings (struct keyfield const *gke
        bool maybe_space_aligned = !hard_LC_COLLATE && default_key_compare (key)
                                   && !(key->schar || key->echar);
        bool line_offset = key->eword == 0 && key->echar != 0; /* -k1.x,1.y  */
@@ -3010,8 +3030,8 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
            && ((!key->skipsblanks && !(implicit_skip || maybe_space_aligned))
                || (!key->skipsblanks && key->schar)
                || (!key->skipeblanks && key->echar)))
-@@ -2427,11 +2789,83 @@ key_warnings (struct keyfield const *gke
-     error (0, 0, _("option `-r' only applies to last-resort comparison"));
+@@ -2444,11 +2806,83 @@ key_warnings (struct keyfield const *gke
+     error (0, 0, _("option '-r' only applies to last-resort comparison"));
  }
  
 +#if HAVE_MBRTOWC
@@ -3076,12 +3096,12 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
 +    }
 +  while (hi - lo > 1);
 +
-+  if (ea)
-+     *ea = (char *) month;
-+
 +  result = (!strncmp (month, monthtab[lo].name, strlen (monthtab[lo].name))
 +      ? monthtab[lo].val : 0);
 +
++  if (ea && result)
++     *ea = s + strlen (monthtab[lo].name);
++
 +  return result;
 +}
 +#endif
@@ -3095,7 +3115,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  {
    struct keyfield *key = keylist;
  
-@@ -2516,7 +2950,7 @@ keycompare (struct line const *a, struct
+@@ -2533,7 +2967,7 @@ keycompare (struct line const *a, struct
            else if (key->human_numeric)
              diff = human_numcompare (ta, tb);
            else if (key->month)
@@ -3104,7 +3124,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
            else if (key->random)
              diff = compare_random (ta, tlena, tb, tlenb);
            else if (key->version)
-@@ -2632,6 +3066,180 @@ keycompare (struct line const *a, struct
+@@ -2649,6 +3083,180 @@ keycompare (struct line const *a, struct
    return key->reverse ? -diff : diff;
  }
  
@@ -3285,7 +3305,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
  /* Compare two lines A and B, returning negative, zero, or positive
     depending on whether A compares less than, equal to, or greater than B. */
  
-@@ -4095,7 +4702,7 @@ main (int argc, char **argv)
+@@ -4109,7 +4717,7 @@ main (int argc, char **argv)
    initialize_exit_failure (SORT_FAILURE);
  
    hard_LC_COLLATE = hard_locale (LC_COLLATE);
@@ -3294,7 +3314,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
    hard_LC_TIME = hard_locale (LC_TIME);
  #endif
  
-@@ -4116,6 +4723,29 @@ main (int argc, char **argv)
+@@ -4130,6 +4738,29 @@ main (int argc, char **argv)
        thousands_sep = -1;
    }
  
@@ -3324,7 +3344,7 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
    have_read_stdin = false;
    inittables ();
  
-@@ -4386,13 +5016,34 @@ main (int argc, char **argv)
+@@ -4400,13 +5031,34 @@ main (int argc, char **argv)
  
          case 't':
            {
@@ -3362,8 +3382,8 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
 +                  newtab[0] = '\0';
                  else
                    {
-                     /* Provoke with `sort -txx'.  Complain about
-@@ -4403,9 +5054,12 @@ main (int argc, char **argv)
+                     /* Provoke with 'sort -txx'.  Complain about
+@@ -4417,9 +5069,12 @@ main (int argc, char **argv)
                             quote (optarg));
                    }
                }
@@ -3378,10 +3398,10 @@ diff -urNp coreutils-8.13-orig/src/sort.c coreutils-8.13/src/sort.c
            }
            break;
  
-diff -urNp coreutils-8.13-orig/src/unexpand.c coreutils-8.13/src/unexpand.c
---- coreutils-8.13-orig/src/unexpand.c 2011-07-28 12:38:27.000000000 +0200
-+++ coreutils-8.13/src/unexpand.c      2011-09-09 10:23:14.185647633 +0200
-@@ -39,12 +39,29 @@
+diff -urNp coreutils-8.16-orig/src/unexpand.c coreutils-8.16/src/unexpand.c
+--- coreutils-8.16-orig/src/unexpand.c 2012-03-24 21:26:51.000000000 +0100
++++ coreutils-8.16/src/unexpand.c      2012-03-26 17:51:46.000000000 +0200
+@@ -38,12 +38,29 @@
  #include <stdio.h>
  #include <getopt.h>
  #include <sys/types.h>
@@ -3408,10 +3428,10 @@ diff -urNp coreutils-8.13-orig/src/unexpand.c coreutils-8.13/src/unexpand.c
 +# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
 +#endif
 +
- /* The official name of this program (e.g., no `g' prefix).  */
+ /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "unexpand"
  
-@@ -104,6 +121,208 @@ static struct option const longopts[] =
+@@ -103,6 +120,208 @@ static struct option const longopts[] =
    {NULL, 0, NULL, 0}
  };
  
@@ -3620,7 +3640,7 @@ diff -urNp coreutils-8.13-orig/src/unexpand.c coreutils-8.13/src/unexpand.c
  void
  usage (int status)
  {
-@@ -526,7 +745,12 @@ main (int argc, char **argv)
+@@ -524,7 +743,12 @@ main (int argc, char **argv)
  
    file_list = (optind < argc ? &argv[optind] : stdin_argv);
  
@@ -3634,9 +3654,9 @@ diff -urNp coreutils-8.13-orig/src/unexpand.c coreutils-8.13/src/unexpand.c
  
    if (have_read_stdin && fclose (stdin) != 0)
      error (EXIT_FAILURE, errno, "-");
-diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
---- coreutils-8.13-orig/src/uniq.c     2011-07-28 12:38:27.000000000 +0200
-+++ coreutils-8.13/src/uniq.c  2011-09-09 10:24:19.631560964 +0200
+diff -urNp coreutils-8.16-orig/src/uniq.c coreutils-8.16/src/uniq.c
+--- coreutils-8.16-orig/src/uniq.c     2012-03-24 21:26:51.000000000 +0100
++++ coreutils-8.16/src/uniq.c  2012-03-26 17:35:09.000000000 +0200
 @@ -21,6 +21,16 @@
  #include <getopt.h>
  #include <sys/types.h>
@@ -3673,7 +3693,7 @@ diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
 +#endif
 +
  
- /* The official name of this program (e.g., no `g' prefix).  */
+ /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "uniq"
 @@ -108,6 +130,10 @@ static enum delimit_method const delimit
  /* Select whether/how to delimit groups of duplicate lines.  */
@@ -3686,7 +3706,7 @@ diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
  static struct option const longopts[] =
  {
    {"count", no_argument, NULL, 'c'},
-@@ -207,7 +233,7 @@ size_opt (char const *opt, char const *m
+@@ -206,7 +232,7 @@ size_opt (char const *opt, char const *m
     return a pointer to the beginning of the line's field to be compared. */
  
  static char * _GL_ATTRIBUTE_PURE
@@ -3695,7 +3715,7 @@ diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
  {
    size_t count;
    char const *lp = line->buffer;
-@@ -227,6 +253,83 @@ find_field (struct linebuffer const *lin
+@@ -226,6 +252,83 @@ find_field (struct linebuffer const *lin
    return line->buffer + i;
  }
  
@@ -3779,7 +3799,7 @@ diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
  /* 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.
-@@ -235,6 +338,8 @@ find_field (struct linebuffer const *lin
+@@ -234,6 +337,8 @@ find_field (struct linebuffer const *lin
  static bool
  different (char *old, char *new, size_t oldlen, size_t newlen)
  {
@@ -3788,7 +3808,7 @@ diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
    if (check_chars < oldlen)
      oldlen = check_chars;
    if (check_chars < newlen)
-@@ -242,14 +347,92 @@ different (char *old, char *new, size_t 
+@@ -241,14 +346,92 @@ different (char *old, char *new, size_t 
  
    if (ignore_case)
      {
@@ -3886,7 +3906,7 @@ diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
  
  /* Output the line in linebuffer LINE to standard output
     provided that the switches say it should be output.
-@@ -305,15 +488,43 @@ check_file (const char *infile, const ch
+@@ -304,15 +487,43 @@ check_file (const char *infile, const ch
      {
        char *prevfield IF_LINT ( = NULL);
        size_t prevlen IF_LINT ( = 0);
@@ -3930,7 +3950,7 @@ diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
            if (prevline->length == 0
                || different (thisfield, prevfield, thislen, prevlen))
              {
-@@ -332,17 +543,26 @@ check_file (const char *infile, const ch
+@@ -331,17 +542,26 @@ check_file (const char *infile, const ch
        size_t prevlen;
        uintmax_t match_count = 0;
        bool first_delimiter = true;
@@ -3957,7 +3977,7 @@ diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
            if (readlinebuffer_delim (thisline, stdin, delimiter) == 0)
              {
                if (ferror (stdin))
-@@ -351,6 +571,14 @@ check_file (const char *infile, const ch
+@@ -350,6 +570,14 @@ check_file (const char *infile, const ch
              }
            thisfield = find_field (thisline);
            thislen = thisline->length - 1 - (thisfield - thisline->buffer);
@@ -3972,7 +3992,7 @@ diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
            match = !different (thisfield, prevfield, thislen, prevlen);
            match_count += match;
  
-@@ -383,6 +611,9 @@ check_file (const char *infile, const ch
+@@ -382,6 +610,9 @@ check_file (const char *infile, const ch
                SWAP_LINES (prevline, thisline);
                prevfield = thisfield;
                prevlen = thislen;
@@ -3982,7 +4002,7 @@ diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
                if (!match)
                  match_count = 0;
              }
-@@ -428,6 +659,19 @@ main (int argc, char **argv)
+@@ -427,6 +658,19 @@ main (int argc, char **argv)
  
    atexit (close_stdout);
  
@@ -4002,18 +4022,18 @@ diff -urNp coreutils-8.13-orig/src/uniq.c coreutils-8.13/src/uniq.c
    skip_chars = 0;
    skip_fields = 0;
    check_chars = SIZE_MAX;
-diff -urNp coreutils-8.13-orig/tests/Makefile.am coreutils-8.13/tests/Makefile.am
---- coreutils-8.13-orig/tests/Makefile.am      2011-09-09 10:22:43.352561668 +0200
-+++ coreutils-8.13/tests/Makefile.am   2011-09-09 10:23:14.189688942 +0200
-@@ -238,6 +238,7 @@ TESTS =                                            \
-   misc/sort-debug-keys                                \
+diff -urNp coreutils-8.16-orig/tests/Makefile.am coreutils-8.16/tests/Makefile.am
+--- coreutils-8.16-orig/tests/Makefile.am      2012-03-26 18:01:35.564014659 +0200
++++ coreutils-8.16/tests/Makefile.am   2012-03-26 18:02:01.023015013 +0200
+@@ -242,6 +242,7 @@ TESTS =                                            \
    misc/sort-debug-warn                                \
+   misc/sort-discrim                           \
    misc/sort-files0-from                               \
 +  misc/sort-mb-tests                          \
    misc/sort-float                             \
    misc/sort-merge                             \
    misc/sort-merge-fdlimit                     \
-@@ -518,6 +519,10 @@ TESTS =                                           \
+@@ -537,6 +538,10 @@ TESTS =                                           \
    $(root_tests)
  
  pr_data =                                     \
@@ -4024,10 +4044,10 @@ diff -urNp coreutils-8.13-orig/tests/Makefile.am coreutils-8.13/tests/Makefile.a
    pr/0F                                               \
    pr/0FF                                      \
    pr/0FFnt                                    \
-diff -urNp coreutils-8.13-orig/tests/misc/cut coreutils-8.13/tests/misc/cut
---- coreutils-8.13-orig/tests/misc/cut 2011-09-02 14:08:40.000000000 +0200
-+++ coreutils-8.13/tests/misc/cut      2011-09-09 10:23:14.190686793 +0200
-@@ -23,14 +23,15 @@ my $mb_locale = $ENV{LOCALE_FR_UTF8};
+diff -urNp coreutils-8.16-orig/tests/misc/cut coreutils-8.16/tests/misc/cut
+--- coreutils-8.16-orig/tests/misc/cut 2012-02-03 10:22:06.000000000 +0100
++++ coreutils-8.16/tests/misc/cut      2012-03-26 17:40:49.000000000 +0200
+@@ -23,14 +23,15 @@ use strict;
  # Turn off localization of executable's output.
  @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
  
@@ -4040,14 +4060,14 @@ diff -urNp coreutils-8.13-orig/tests/misc/cut coreutils-8.13/tests/misc/cut
 +my $mb_locale = 'C';
  
  my $prog = 'cut';
- my $try = "Try \`$prog --help' for more information.\n";
+ 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 =
-@@ -147,7 +147,7 @@ my @Tests =
+@@ -147,7 +148,7 @@ my @Tests =
  
    # None of the following invalid ranges provoked an error up to coreutils-6.9.
    ['inval1', qw(-f 2-0), {IN=>''}, {OUT=>''}, {EXIT=>1},
@@ -4056,41 +4076,41 @@ diff -urNp coreutils-8.13-orig/tests/misc/cut coreutils-8.13/tests/misc/cut
    ['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},
-diff -urNp coreutils-8.13-orig/tests/misc/mb1.I coreutils-8.13/tests/misc/mb1.I
---- coreutils-8.13-orig/tests/misc/mb1.I       1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.13/tests/misc/mb1.I    2011-09-09 10:23:14.191687037 +0200
+diff -urNp coreutils-8.16-orig/tests/misc/mb1.I coreutils-8.16/tests/misc/mb1.I
+--- coreutils-8.16-orig/tests/misc/mb1.I       1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.16/tests/misc/mb1.I    2012-03-26 17:35:09.000000000 +0200
 @@ -0,0 +1,4 @@
 +Appleï¼ 10
 +Bananaï¼ 5
 +Citrusï¼ 20
 +Cherryï¼ 30
-diff -urNp coreutils-8.13-orig/tests/misc/mb1.X coreutils-8.13/tests/misc/mb1.X
---- coreutils-8.13-orig/tests/misc/mb1.X       1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.13/tests/misc/mb1.X    2011-09-09 10:23:14.192581910 +0200
+diff -urNp coreutils-8.16-orig/tests/misc/mb1.X coreutils-8.16/tests/misc/mb1.X
+--- coreutils-8.16-orig/tests/misc/mb1.X       1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.16/tests/misc/mb1.X    2012-03-26 17:35:09.000000000 +0200
 @@ -0,0 +1,4 @@
 +Bananaï¼ 5
 +Appleï¼ 10
 +Citrusï¼ 20
 +Cherryï¼ 30
-diff -urNp coreutils-8.13-orig/tests/misc/mb2.I coreutils-8.13/tests/misc/mb2.I
---- coreutils-8.13-orig/tests/misc/mb2.I       1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.13/tests/misc/mb2.I    2011-09-09 10:23:14.192581910 +0200
+diff -urNp coreutils-8.16-orig/tests/misc/mb2.I coreutils-8.16/tests/misc/mb2.I
+--- coreutils-8.16-orig/tests/misc/mb2.I       1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.16/tests/misc/mb2.I    2012-03-26 17:35:09.000000000 +0200
 @@ -0,0 +1,4 @@
 +Apple@AA10ï¼ ï¼ 20
 +Banana@AA5ï¼ ï¼ 30
 +Citrus@AA20ï¼ ï¼ 5
 +Cherry@AA30ï¼ ï¼ 10
-diff -urNp coreutils-8.13-orig/tests/misc/mb2.X coreutils-8.13/tests/misc/mb2.X
---- coreutils-8.13-orig/tests/misc/mb2.X       1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.13/tests/misc/mb2.X    2011-09-09 10:23:14.193687456 +0200
+diff -urNp coreutils-8.16-orig/tests/misc/mb2.X coreutils-8.16/tests/misc/mb2.X
+--- coreutils-8.16-orig/tests/misc/mb2.X       1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.16/tests/misc/mb2.X    2012-03-26 17:35:09.000000000 +0200
 @@ -0,0 +1,4 @@
 +Citrus@AA20ï¼ ï¼ 5
 +Cherry@AA30ï¼ ï¼ 10
 +Apple@AA10ï¼ ï¼ 20
 +Banana@AA5ï¼ ï¼ 30
-diff -urNp coreutils-8.13-orig/tests/misc/sort-mb-tests coreutils-8.13/tests/misc/sort-mb-tests
---- coreutils-8.13-orig/tests/misc/sort-mb-tests       1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.13/tests/misc/sort-mb-tests    2011-09-09 10:23:14.194687565 +0200
+diff -urNp coreutils-8.16-orig/tests/misc/sort-mb-tests coreutils-8.16/tests/misc/sort-mb-tests
+--- coreutils-8.16-orig/tests/misc/sort-mb-tests       1970-01-01 01:00:00.000000000 +0100
++++ coreutils-8.16/tests/misc/sort-mb-tests    2012-03-26 17:35:09.000000000 +0200
 @@ -0,0 +1,58 @@
 +#! /bin/sh
 +case $# in
diff --git a/coreutils/patches/coreutils-ipfire-disabled-tests.patch b/coreutils/patches/coreutils-ipfire-disabled-tests.patch
new file mode 100644 (file)
index 0000000..92b51c2
--- /dev/null
@@ -0,0 +1,32 @@
+diff -Nur a/tests/Makefile.am b/tests/Makefile.am
+--- a/tests/Makefile.am        2012-03-24 19:22:13.000000000 +0100
++++ b/tests/Makefile.am        2012-04-28 15:42:22.861910633 +0200
+@@ -24,7 +24,6 @@
+ root_tests =                                  \
+   chown/basic                                 \
+-  cp/cp-a-selinux                             \
+   cp/preserve-gid                             \
+   cp/special-bits                             \
+   cp/cp-mv-enotsup-xattr                      \
+@@ -195,7 +194,6 @@
+   misc/groups-version                         \
+   misc/head-c                                 \
+   misc/head-pos                                       \
+-  misc/id-context                             \
+   misc/id-groups                              \
+   misc/md5sum                                 \
+   misc/md5sum-bsd                             \
+@@ -408,12 +406,10 @@
+   du/trailing-slash                           \
+   du/two-args                                 \
+   id/gnu-zero-uids                            \
+-  id/no-context                                       \
+   install/basic-1                             \
+   install/create-leading                      \
+   install/d-slashdot                          \
+   install/install-C                           \
+-  install/install-C-selinux                   \
+   install/strip-program                               \
+   install/trap                                        \
+   ln/backup-1                                 \
index 3e5c143df72b46baff710805f7fb7fd79ae34db0..0db3acbcd61dc80cbd72757a1cbd4245ce628371 100644 (file)
@@ -392,7 +392,7 @@ diff -urNp coreutils-8.13-orig/src/ls.c coreutils-8.13/src/ls.c
        || format_needs_stat
 @@ -2869,7 +2896,7 @@ gobble_file (char const *name, enum file
            && print_with_color && is_colored (C_CAP))
-         f->has_capability = has_capability (absolute_name);
+         f->has_capability = has_capability_cache (absolute_name, f);
  
 -      if (format == long_format || print_scontext)
 +      if (format == long_format || format == security_format || print_scontext)
@@ -406,7 +406,7 @@ diff -urNp coreutils-8.13-orig/src/ls.c coreutils-8.13/src/ls.c
 -          if (err == 0 && format == long_format)
 +          if (err == 0 && (format == long_format || format == security_format))
              {
-               int n = file_has_acl (absolute_name, &f->stat);
+               int n = file_has_acl_cache (absolute_name, f);
                err = (n < 0);
 @@ -2911,7 +2938,8 @@ gobble_file (char const *name, enum file
          }
index 7b21d84788dc8de512a873f53208f530b92a1a0e..111dcc8978bef029ce70804ef613250e02514fcd 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = cpio
 version    = 2.11
-release    = 1
+release    = 2
 
 groups     = System/Packaging
 url        = http://www.gnu.org/software/cpio/
@@ -25,7 +25,6 @@ sources    = %{thisapp}.tar.bz2
 
 build
        configure_options += \
-               --bindir=/bin \
                --libexecdir=/tmp \
                --with-rmt=/usr/sbin/rmt
 
index dcb90034b4d05a06471adaf985dee15148a7438d..93a3464a335b47ffaeb1bb72796f5c5ef0445ca9 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = cracklib
 version    = 2.8.18
-release    = 1
+release    = 2
 
 groups     = Security/Password
 url        = http://sourceforge.net/projects/cracklib/
@@ -37,7 +37,7 @@ build
        dictpath = %{dictdir}/pw_dict
 
        configure_options += \
-               --with-default-dict=/lib/cracklib/pw_dict \
+               --with-default-dict=%{dictpath} \
                --with-python \
                --disable-static
 
@@ -67,10 +67,6 @@ build
                # Install python bindings
                make install DESTDIR=%{BUILDROOT} INSTALL="install -c -p" -C python
 
-               mkdir -pv %{BUILDROOT}/{,usr/}%{lib}
-               mv -v %{BUILDROOT}%{libdir}/libcrack.so.2* %{BUILDROOT}/%{lib}
-               ln -vsf ../../%{lib}/libcrack.so.2.8.1 %{BUILDROOT}%{libdir}/libcrack.so
-
                mkdir -pv %{BUILDROOT}{%{dictdir},%{dictpath}}
                util/cracklib-format cracklib-dicts/* | \
                        util/cracklib-packer %{BUILDROOT}%{dictpath}
@@ -121,10 +117,13 @@ packages
 
        # We build an extra python package with the bindings for it.
        package python-cracklib
-               summary = Python bindings for ${thisapp}.
+               summary = Python bindings for %{thisapp}.
                description = %{summary}
 
-               files = /usr/lib*/python*
+               files
+                       /usr/lib/python*
+                       %{libdir}/python*
+               end
        end
 
        package %{name}-debuginfo
index ae94fa5be5a222c40c11b745753d46e72e7da86b..0ad2b6ebb8cf28c14fb81027c80f32f2ae15840d 100644 (file)
@@ -4,35 +4,71 @@
 ###############################################################################
 
 name       = cronie
-version    = 1.4.7
+version    = 1.4.8
 release    = 1
 
 groups     = System/Environment/Base
-url        = https://fedorahosted.org/releases/c/r/cronie/
+url        = https://fedorahosted.org/cronie/
 license    = MIT and BSD and ISC and GPLv2
 summary    = Cron daemon for executing programs at set times
 
 description
-       Cronie contains the standard UNIX daemon crond that runs specified programs at \
-       scheduled times and related tools. It is a fork of the \
-       original vixie-cron and has security and configuration enhancements like \
+       Cronie contains the standard UNIX daemon crond that runs specified programs at
+       scheduled times and related tools. It is a fork of the
+       original vixie-cron and has security and configuration enhancements like
        the ability to use pam and SELinux.
 end
 
-source_dl  =
+source_dl  = https://fedorahosted.org/releases/c/r/cronie/
 
 build
        requires
+               audit-devel
                bison
                libcap-devel
                libedit-devel
+               libselinux-devel
+               pam-devel
                readline-devel
                texinfo
        end
+
+       configure_options += \
+               --with-pam \
+               --with-audit \
+               --with-selinux
+
+       install_cmds
+               mkdir -pv %{BUILDROOT}%{localstatedir}/spool/cron
+       end
 end
 
 packages
        package %{name}
+               # Just search for new unit files that were just installed.
+               script postin
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+
+                       # Enable cronie on startup.
+                       systemctl enable cronie.service >/dev/null 2>&1 || :
+               end
+
+               # Disable the service that is to be removed and stop it if it is still running.
+               script preun
+                       systemctl --no-reload disable cronie.service >/dev/null 2>&1 || :
+                       systemctl stop cronie.service >/dev/null 2>&1 || :
+               end
+
+               # Just tell systemd that unitfiles have been removed.
+               script postun
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               # Try to restart the service if it is running.
+               script postup
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+                       systemctl try-restart cronie.service >/dev/null 2>&1 || :
+               end
        end
 
        package %{name}-debuginfo
diff --git a/cronie/systemd/cronie.service b/cronie/systemd/cronie.service
new file mode 100644 (file)
index 0000000..16730c3
--- /dev/null
@@ -0,0 +1,9 @@
+[Unit]
+Description=Command Scheduler
+After=syslog.target auditd.service systemd-user-sessions.service
+
+[Service]
+ExecStart=/usr/sbin/crond -n
+
+[Install]
+WantedBy=multi-user.target
index 0fbad7561722e995d943ea8b675e66d70b6abf0c..d39a75f8fa1e0105d6bbbe2746cabfb4697a0dd8 100644 (file)
@@ -4,8 +4,10 @@
 ###############################################################################
 
 name       = cryptsetup-luks
-version    = 1.1.0
-release    = 2
+version    = 1.4.2
+release    = 1
+
+compat_version = 1.1.0
 
 groups     = System/Filesystems
 url        = http://cryptsetup.googlecode.com/
@@ -13,12 +15,15 @@ license    = GPLv2+
 summary    = A utility for setting up encrypted filesystems.
 
 description
-       This package contains cryptsetup, a utility for setting up \
+       This package contains cryptsetup, a utility for setting up
        encrypted filesystems using Device Mapper and the dm-crypt target.
 end
 
-source_dl  =
-sources    = cryptsetup-%{version}.tar.bz2
+source_dl  = http://cryptsetup.googlecode.com/files/
+
+sources    = \
+       cryptsetup-%{version}.tar.bz2 \
+       cryptsetup-%{compat_version}.tar.bz2
 
 build
        requires
@@ -32,21 +37,36 @@ build
        DIR_APP = %{DIR_SRC}/cryptsetup-%{version}
 
        configure_options += \
-               --sbindir=/sbin \
-               --libdir=/%{lib} \
                --disable-static
 
+       # Build compat version of libcryptsetup.
+       build_cmds
+               cd %{DIR_SRC}/cryptsetup-%{compat_version}
+               ./configure \
+                       %{configure_options}
+
+               make %{PARALELLISMFLAGS}
+       end
+
        install_cmds
-               rm -rvf %{BUILDROOT}/%{lib}/cryptsetup{,.la,.so}
-               mkdir -pv %{BUILDROOT}%{libdir}
-               mv -v %{BUILDROOT}/%{lib}/pkgconfig %{BUILDROOT}%{libdir}
-               ln -svf ../../%{lib}/libcryptsetup.so.1 %{BUILDROOT}%{libdir}/libcryptsetup.so
+               # Install compat version of libcyptsetup.
+               cd %{DIR_SRC}/cryptsetup-%{compat_version}
+               install -m 644 lib/.libs/libcryptsetup.so.1.0.0 %{BUILDROOT}%{libdir}
+               ln -svf libcryptsetup.so.1.0.0 %{BUILDROOT}%{libdir}/libcryptsetup.so.1 
        end
 end
 
 packages
        package %{name}
 
+       package %{name}-compat
+               summary = Compat libraries of %{thisapp}.
+
+               files
+                       %{libdir}/libcryptsetup.so.1*
+               end
+       end
+
        package %{name}-devel
                template DEVEL
        end
index a35ff76939fe12a539cdf2b5d0703868d19fcabc..dd48eede8f0cd08d8113db4dd7f58d98c54c8582 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = curl
 version    = 7.24.0
-release    = 2
+release    = 3
 
 groups     = Application/Internet
 url        = http://www.curl.haxx.se/
@@ -70,11 +70,17 @@ packages
 
        package libcurl-devel
                template DEVEL
+
+               provides
+                       curl-devel = %{thisver}
+               end
        end
 
        package %{name}-debuginfo
                template DEBUGINFO
 
-               provides += libcurl-debuginfo
+               provides
+                       libcurl-debuginfo = %{thisver}
+               end
        end
 end
index 8f994393a5a38e743ff26ab5e1a1f368ef14f2fd..82e7255b6312e70c840813be093d6fb724d0a2d6 100644 (file)
@@ -7,7 +7,7 @@ name       = db4
 version_major = 4.8
 version_minor = 30
 version    = %{version_major}.%{version_minor}
-release    = 4
+release    = 5
 epoch      = 1
 thisapp    = db-%{version}
 
@@ -88,6 +88,12 @@ packages
                # Overwrite because of epoch != 0.
                requires = %{name}=%{epoch}:%{thisver}
 
+               # You cannot install libdb-devel and db4-devel
+               # at the same time.
+               conflicts
+                       libdb-devel
+               end
+
                files
                        %{includedir}
                        %{libdir}/libdb.so
index 6bfd2ea6bcbcbfda08b25619d1cd976d64719a6c..1531535eda870228ae6509e77a7222dd727931e7 100644 (file)
@@ -4,9 +4,10 @@
 ###############################################################################
 
 name       = dbus
-version    = 1.4.16
-release    = 2
+version    = 1.4.20
+release    = 1
 
+maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
 groups     = System/Daemons
 url        = http://www.freedesktop.org/software/dbus/
 license    = GPLv2+ AFL
@@ -26,32 +27,14 @@ build
                expat-devel
                libcap-ng-devel
                libselinux-devel
+               systemd-units
        end
 
        configure_options += \
-               --sysconfdir=/etc \
-               --localstatedir=/var \
-               --libdir=/%{lib} \
-               --libexecdir=/%{lib} \
                --enable-libaudit \
                --enable-selinux=yes \
-               --with-systemdsystemunitdir=/lib/systemd/system/ \
+               --with-systemdsystemunitdir=%{unitdir} \
                --with-dbus-user=dbus
-
-       install_cmds
-               mkdir -pv %{BUILDROOT}%{libdir}
-               mv -v %{BUILDROOT}/%{lib}/pkgconfig %{BUILDROOT}%{libdir}
-
-               #change the arch-deps.h include directory to /usr/lib instead of /lib
-               sed -e 's@-I${libdir}@-I${prefix}/%{lib}@' -i %{BUILDROOT}%{libdir}/pkgconfig/dbus-1.pc
-
-               mkdir -pv %{BUILDROOT}%{libdir}/dbus-1.0/include
-               mv -v %{BUILDROOT}/%{lib}/dbus-1.0/include/* %{BUILDROOT}%{libdir}/dbus-1.0/include
-               rm -rvf %{BUILDROOT}/%{lib}/dbus-1.0
-
-               rm -vf %{BUILDROOT}/%{lib}/libdbus-1.so
-               ln -svf ../../%{lib}/libdbus-1.so.3 %{BUILDROOT}%{libdir}/libdbus-1.so
-       end
 end
 
 packages
@@ -68,27 +51,27 @@ packages
 
                # Just search for new unit files that were just installed.
                script postin
-                       /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+                       systemctl daemon-reload >/dev/null 2>&1 || :
 
                        # The dbus service should be started on default.
-                       /bin/systemctl enable dbus.service > /dev/null 2>&1 || :
+                       systemctl enable dbus.service > /dev/null 2>&1 || :
                end
 
                # Disable the service that is to be removed and stop it if it is still running.
                script preun
-                       /bin/systemctl --no-reload disable dbus.service >/dev/null 2>&1 || :
-                       /bin/systemctl stop dbus.service >/dev/null 2>&1 || :
+                       systemctl --no-reload disable dbus.service >/dev/null 2>&1 || :
+                       systemctl stop dbus.service >/dev/null 2>&1 || :
                end
 
                # Just tell systemd that unitfiles have been removed.
                script postun
-                       /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+                       systemctl daemon-reload >/dev/null 2>&1 || :
                end
 
                # Try to restart the service if it is running.
                script postup
-                       /bin/systemctl daemon-reload >/dev/null 2>&1 || :
-                       /bin/systemctl try-restart dbus.service >/dev/null 2>&1 || :
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+                       systemctl try-restart dbus.service >/dev/null 2>&1 || :
                end
        end
 
@@ -99,7 +82,7 @@ packages
        package %{name}-devel
                template DEVEL
 
-               files += /usr/lib/dbus-1.0
+               files += %{libdir}/dbus-1.0
        end
 
        package %{name}-debuginfo
diff --git a/dejavu-fonts/dejavu-fonts.nm b/dejavu-fonts/dejavu-fonts.nm
new file mode 100644 (file)
index 0000000..24a77fa
--- /dev/null
@@ -0,0 +1,184 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = dejavu-fonts
+version    = 2.33
+release    = 1
+arch       = noarch
+
+groups     = System/Fonts
+url        = http://www.dejavu-fonts.org/
+license    = Bitstream Vera and Public Domain
+summary    = DejaVu fonts.
+
+description
+       The DejaVu font set is based on the "Bitstream Vera" fonts, release 1.10. Its
+       purpose is to provide a wider range of characters, while maintaining the 
+       original style, using an open collaborative development process.
+end
+
+source_dl  = http://sourceforge.net/projects/dejavu/files/dejavu/%{version}/
+sources    = %{thisapp}.tar.bz2
+
+fontname = dejavu
+fontdir = %{datadir}/fonts/%{fontname}/
+fontconfig_templatedir = %{datadir}/fontconfig/conf.avail/
+fontconfig_confdir = %{sysconfdir}/fonts/conf.d/
+
+build
+       requires
+               perl(Font::TTF)
+               bzip2
+               fontforge
+               unicode-ucd
+       end
+
+       make_build_targets += \
+               VERSION=%{version} \
+               FC-LANG="" \
+               BLOCKS=/usr/share/unicode/ucd/Blocks.txt \
+               UNICODEDATA=/usr/share/unicode/ucd/UnicodeData.txt
+
+       test
+               make check
+       end
+
+       install
+               # Compress the huge state.txt.
+               bzip2 -9 build/status.txt
+
+               # Create directories and install font files.
+               install -m 0755 -d %{BUILDROOT}%{fontdir}
+               install -m 0644 -p build/*.ttf %{BUILDROOT}%{fontdir}
+
+               # Create directories for configuration files.
+               install -m 0755 -d %{BUILDROOT}%{fontconfig_templatedir} \
+                       %{BUILDROOT}%{fontconfig_confdir}
+
+               # Install config files and symlink them to /etc.
+               cd fontconfig
+               for fontconf in *conf; do
+                       install -m 0644 -p $fontconf %{BUILDROOT}%{fontconfig_templatedir}
+                       ln -s ../../..%{fontconfig_templatedir}$fontconf \
+                               %{BUILDROOT}%{fontconfig_confdir}/$fontconf
+
+               done
+       end
+end
+
+packages
+       # Template for fonts.
+       template FONT
+               requires
+                       %{name} = %{thisver}
+               end
+       end
+
+       package %{name}
+
+       package %{name}-sans-fonts
+               template FONT
+
+               summary = Variable-width sans-serif font faces.
+               description
+                       This package consists of the DejaVu sans-serif variable-width font faces, in
+                       their unabridged version.
+               end
+
+               files
+                       %{fontdir}DejaVuSans.ttf
+                       %{fontdir}DejaVuSans-*.ttf
+                       %{fontdir}DejaVuSansCondensed*.ttf
+                       %{fontconfig_templatedir}*-sans.conf
+                       %{fontconfig_confdir}*-sans.conf
+               end
+       end
+
+       package %{name}-serif-fonts
+               template FONT
+
+               summary = Variable-width serif font faces.
+               description
+                       This package consists of the DejaVu serif variable-width font faces, in
+                       their unabridged version.
+               end
+
+               files
+                       %{fontdir}DejaVuSerif.ttf
+                       %{fontdir}DejaVuSerif-*.ttf
+                       %{fontdir}DejaVuSerifCondensed*.ttf
+                       %{fontconfig_templatedir}*-serif.conf
+                       %{fontconfig_confdir}*-serif.conf
+               end
+       end
+
+       package %{name}-sans-mono-fonts
+               template FONT
+
+               summary = Monospace sans-serif fon faces.
+               description
+                       This package consists of the DejaVu sans-serif monospace font faces, in their
+                       unabridged version.
+               end
+
+               files
+                       %{fontdir}DejaVuSansMono.ttf
+                       %{fontconfig_templatedir}*-sans-mono.conf
+                       %{fontconfig_confdir}*-sans-mono.conf
+               end
+       end
+
+       package %{name}-lgc-sans-fonts
+               template FONT
+
+               summary = Variable-width sans-serif font faces, Latin-Greek-Cyrillic subset.
+               description
+                       This package consists of the DejaVu sans-serif variable-width font faces, with
+                       unicode coverage restricted to Latin, Greek and Cyrillic.
+               end
+
+               files
+                       %{fontdir}DejaVuLGCSans.ttf
+                       %{fontdir}DejaVuLGCSans-*.ttf
+                       %{fontdir}DejaVuLGCSansCondensed*.ttf
+                       %{fontconfig_templatedir}*-lgc-sans.conf
+                       %{fontconfig_confdir}*-lgc-sans.conf
+               end
+       end
+
+       package %{name}-lgc-serif-fonts
+               template FONT
+
+               summary = Variable-width serif font faces, Latin-Greek-Cyrillic subset.
+               description
+                       This package consists of the DejaVu serif variable-width font faces, with
+                       unicode coverage restricted to Latin, Greek and Cyrillic.
+               end
+
+               files
+                       %{fontdir}DejaVuLGCSerif.ttf
+                       %{fontdir}DejaVuLGCSerif-*.ttf
+                       %{fontdir}DejaVuLGCSerifCondensed*.ttf
+                       %{fontconfig_templatedir}*-lgc-serif.conf
+                       %{fontconfig_confdir}*-lgc-serif.conf
+               end
+       end
+
+       package %{name}-lgc-sans-mono-fonts
+               template FONT
+
+               summary = Monospace sans-serif font faces, Latin-Greek-Cyrillic subset.
+               description
+                       This package consists of the DejaVu sans-serif monospace font faces, with
+                       unicode coverage restricted to Latin, Greek and Cyrillic.
+               end
+
+               files
+                       %{fontdir}DejaVuLGCSansMono*.ttf
+                       %{fontconfig_templatedir}*-lgc-sans-mono.conf
+                       %{fontconfig_confdir}*-lgc-sans-mono.conf
+               end
+       end
+end
index 2e3176b646e15afaea81ed6ca5a432d3bbc5e462..7747182df0edd1602f3adabdeeb35c05ec813178 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = dev86
 version    = 0.16.18
-release    = 4
+release    = 5
 sup_arches = i686 x86_64
 
 maintainer = Ben Schweikert <ben.schweikert@ipfire.org>
diff --git a/dev86/patches/copt.patch b/dev86/patches/copt.patch
new file mode 100644 (file)
index 0000000..726196f
--- /dev/null
@@ -0,0 +1,11 @@
+--- linux86-0.16.17/copt/copt.c.orig   2003-10-08 04:46:35.000000000 +0900
++++ linux86-0.16.17/copt/copt.c        2010-10-12 12:30:25.000000000 +0900
+@@ -174,7 +174,7 @@ static char *readline(FILE *fp)
+   /* Delete leading white spaces */
+   for (cp = buf; *cp && isspace(*cp); cp++) ;
+   if (cp != buf && *cp)
+-      strcpy(buf, cp);
++      memmove(buf, cp, strlen(cp) + 1);
+   return(buf);
+ }
index 507891a9e9bb7d7915ef0b221deb2cebfd304f06..c2db7d2563ed868cc72efca9ddf9e087306f1e96 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = dhcp
 version    = 4.2.2
-release    = 1
+release    = 4
 
 groups     = Networking/Daemons
 url        = http://isc.org/products/DHCP/
@@ -66,6 +66,7 @@ build
                libtool
                openldap-devel
                libcap-ng-devel
+               systemd-units
        end
 
        CFLAGS += \
@@ -179,11 +180,25 @@ packages
                end
 
                files
+                       %{unitdir}/dhclient*.service
                        /sbin
                        /usr/share/man/man5/dhclient*
                        /usr/share/man/man8/dhclient*
                        /var/lib/dhclient
                end
+
+               script postin
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postun
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postup
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
        end
 
        package %{name}-common
diff --git a/dhcp/systemd/dhclient4@.service b/dhcp/systemd/dhclient4@.service
new file mode 100644 (file)
index 0000000..d7023c8
--- /dev/null
@@ -0,0 +1,21 @@
+[Unit]
+Description=DHCP client daemon for IPv4 on %I
+BindTo=dev-%I.device
+After=dev-%I.device
+
+[Service]
+Restart=on-failure
+ExecStartPre=/usr/lib/network/dhclient-helper start %I ipv4
+ExecStart=/usr/sbin/dhclient -d %I -4 \
+       -cf /run/network/dhclient/%I/dhclient4.conf \
+       -lf /var/lib/dhclient/dhclient-%I.leases \
+       -pf /run/network/dhclient/%I/dhclient4.pid
+ExecStop=/usr/lib/network/dhclient-helper stop %I ipv4
+
+# This could be used if you want to release a lease.
+#ExecStop=/usr/sbin/dhclient -d -r %I -4 \
+#      -cf /run/network/dhclient/%I/dhclient4.conf \
+#      -lf /var/lib/dhclient/dhclient-%I.leases \
+#      -pf /run/network/dhclient/%I/dhclient4.pid
+
+UtmpIdentifier=%I
index e8d24338afd64e7d963646dfaa9ec480d705989c..8867297baababb326aabd0540035c76110558fcb 100644 (file)
@@ -4,23 +4,26 @@
 ###############################################################################
 
 name       = directfb
-version    = 1.4.1
-release    = 2
+version    = %{ver_major}.%{ver_minor}
+release    = 1
 thisapp    = DirectFB-%{version}
 
+ver_major  = 1.5
+ver_minor  = 3
+
 groups     = System/Graphics
 url        = http://www.directfb.org/
 license    = LGPLv2+
 summary    = Graphics abstraction library for the Linux Framebuffer Device.
 
 description
-       DirectFB is a thin library that provides hardware graphics acceleration, \
-       input device handling and abstraction, integrated windowing system with \
-       support for translucent windows and multiple display layers on top of the \
+       DirectFB is a thin library that provides hardware graphics acceleration,
+       input device handling and abstraction, integrated windowing system with
+       support for translucent windows and multiple display layers on top of the
        Linux Framebuffer Device.
 end
 
-source_dl  =
+source_dl  = http://www.directfb.org/download/DirectFBGL/DirectFB-%{ver_major}/
 
 build
        requires
@@ -32,11 +35,14 @@ build
                zlib-devel
        end
 
+       LDFLAGS += \
+               -Wl,-z,relro \
+               -Wl,-z,noexecstack
+
        configure_options += \
                --disable-x11 \
                --enable-sdl \
                --enable-video4linux2 \
-               --enable-libv412 \
                --enable-zlib \
                --with-dither-rgb16=advanced \
                --disable-mmx \
diff --git a/directfb/patches/DirectFB-1.5.3-add-missing-davinci-files.patch b/directfb/patches/DirectFB-1.5.3-add-missing-davinci-files.patch
new file mode 100644 (file)
index 0000000..bdea601
--- /dev/null
@@ -0,0 +1,1697 @@
+diff -urNp DirectFB-1.5.3_orig/gfxdrivers/davinci/davinci_c64x.h DirectFB-1.5.3/gfxdrivers/davinci/davinci_c64x.h
+--- DirectFB-1.5.3_orig/gfxdrivers/davinci/davinci_c64x.h      1969-12-31 19:00:00.000000000 -0500
++++ DirectFB-1.5.3/gfxdrivers/davinci/davinci_c64x.h   2012-05-09 02:20:38.342006623 -0400
+@@ -0,0 +1,935 @@
++/*
++   TI Davinci driver - C64X+ DSP Library
++
++   (c) Copyright 2008  directfb.org
++   (c) Copyright 2007  Telio AG
++
++   Written by Denis Oliver Kropp <dok@directfb.org> and
++              Olaf Dreesen <olaf@directfb.org>.
++
++   All rights reserved.
++
++   This library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU General Public License
++   version 2 as published by the Free Software Foundation.
++
++   This library 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 library; if not, write to the
++   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++   Boston, MA 02111-1307, USA.
++*/
++
++#ifndef __DAVINCI_C64X_H__
++#define __DAVINCI_C64X_H__
++
++#include <unistd.h>
++
++#include <directfb.h>
++
++#include <direct/messages.h>
++#include <direct/trace.h>
++
++#include <linux/c64x.h>
++
++#define mb() __asm__ __volatile__ ("" : : : "memory")
++
++/**********************************************************************************************************************/
++
++typedef struct {
++     int                 magic;
++
++     int                 fd;
++     c64xTaskControl    *ctl;
++     void               *mem;
++
++     c64xTask           *QueueL;
++} DavinciC64x;
++
++typedef struct {
++     int                 magic;
++     unsigned int        max_tasks;
++     unsigned int        num_tasks;
++     c64xTask           *tasks;
++} DavinciC64xTasks;
++
++typedef enum {
++     C64X_TEF_NONE       = 0x0000,
++     C64X_TEF_RESET      = 0x0001
++} DavinciC64xEmitFlags;
++
++/**********************************************************************************************************************/
++
++DFBResult davinci_c64x_open    ( DavinciC64x *c64x );
++
++DFBResult davinci_c64x_close   ( DavinciC64x *c64x );
++
++DFBResult davinci_c64x_wait_low( DavinciC64x *c64x );
++
++/**********************************************************************************************************************/
++
++DFBResult davinci_c64x_tasks_init   ( DavinciC64xTasks *tasks,
++                                      unsigned int      size );
++
++DFBResult davinci_c64x_tasks_destroy( DavinciC64xTasks *tasks );
++
++/**********************************************************************************************************************/
++
++DFBResult davinci_c64x_emit_tasks( DavinciC64x          *c64x,
++                                   DavinciC64xTasks     *tasks,
++                                   DavinciC64xEmitFlags  flags );
++
++/**********************************************************************************************************************/
++
++static const char *state_names[] = { "DONE", "ERROR", "TODO", "RUNNING" };
++
++static inline c64xTask *
++c64x_get_task( DavinciC64x *c64x )
++{
++     c64xTaskControl *ctl   = c64x->ctl;
++     uint32_t         idx   = ctl->QL_arm;
++     uint32_t         next  = (idx + 1) & C64X_QUEUE_MASK;
++     c64xTask        *task  = &c64x->QueueL[idx];
++     int              loops = 0;
++     uint32_t         idle  = 0;
++
++     /* Wait for the entry (and next) to be processed by the DSP (rare case). */
++     while (task->c64x_flags & C64X_FLAG_TODO || ctl->QL_dsp == next) {
++          if (loops > 666 || (idle && ctl->idlecounter - idle > 666)) {
++               c64xTask *dsp_task = &c64x->QueueL[ctl->QL_dsp];
++
++               D_PERROR( "Davinci/C64X+: Blocked! [DSP %d / %d (%s), ARM %d / %d (%s)]\n",
++                         ctl->QL_dsp,
++                         (dsp_task->c64x_function >> 2) & 0x3fff,
++                         state_names[dsp_task->c64x_function & 3],
++                         ctl->QL_arm,
++                         (task->c64x_function >> 2) & 0x3fff,
++                         state_names[task->c64x_function & 3] );
++
++               break;
++          }
++
++          idle = ctl->idlecounter;
++
++          /* Queue is full, waiting 10-20ms should not be too bad. */
++          if (loops++ > 10)
++               usleep( 5000 );
++     }
++
++     return task;
++}
++
++static inline void
++c64x_submit_task( DavinciC64x *c64x, c64xTask *task )
++{
++     c64xTaskControl *ctl  = c64x->ctl;
++     uint32_t         idx  = ctl->QL_arm;
++     uint32_t         next = (idx + 1) & C64X_QUEUE_MASK;
++
++     mb();
++
++     ctl->QL_arm = next;
++
++     mb();
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_wb_inv_range( DavinciC64x   *c64x,
++                           unsigned long  start,
++                           u32            length,
++                           u32            func )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = start;
++     task->c64x_arg[1] = length;
++     task->c64x_arg[2] = func;
++
++     task->c64x_function = C64X_WB_INV_RANGE | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_write_back_all( DavinciC64x *c64x )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_function = C64X_WRITE_BACK_ALL | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_load_block__L( DavinciC64xTasks *tasks,
++                            unsigned long     words,
++                            u32               num,
++                            u32               flags )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = words;
++     task->c64x_arg[1] = num;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_load_block( DavinciC64x   *c64x,
++                         unsigned long  words,
++                         u32            num,
++                         u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = words;
++     task->c64x_arg[1] = num;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_fetch_uyvy( DavinciC64x   *c64x,
++                         unsigned long  dest,
++                         unsigned long  source,
++                         u32            pitch,
++                         u32            height,
++                         u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = source;
++     task->c64x_arg[2] = pitch;
++     task->c64x_arg[3] = height;
++     task->c64x_arg[4] = flags;
++
++     task->c64x_function = C64X_FETCH_UYVY | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_mc( DavinciC64x   *c64x,
++                 unsigned long  dest,
++                 u32            dpitch,
++                 unsigned long  source0,
++                 unsigned long  source1,
++                 u32            spitch,
++                 u32            height,
++                 int            func )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = source0;
++     task->c64x_arg[3] = source1;
++     task->c64x_arg[4] = spitch;
++     task->c64x_arg[5] = height;
++
++     task->c64x_function = func | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_put_idct_uyvy_16x16__L( DavinciC64xTasks *tasks,
++                                     unsigned long     dest,
++                                     u32               pitch,
++                                     u32               flags )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_put_idct_uyvy_16x16( DavinciC64x   *c64x,
++                                  unsigned long  dest,
++                                  u32            pitch,
++                                  u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_put_mc_uyvy_16x16__L( DavinciC64xTasks *tasks,
++                                   unsigned long     dest,
++                                   u32               pitch,
++                                   u32               flags )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_put_mc_uyvy_16x16( DavinciC64x   *c64x,
++                                unsigned long  dest,
++                                u32            pitch,
++                                u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_put_sum_uyvy_16x16__L( DavinciC64xTasks *tasks,
++                                    unsigned long     dest,
++                                    u32               pitch,
++                                    u32               flags )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_put_sum_uyvy_16x16( DavinciC64x   *c64x,
++                                 unsigned long  dest,
++                                 u32            pitch,
++                                 u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_dva_begin_frame__L( DavinciC64xTasks *tasks,
++                                 u32               pitch,
++                                 unsigned long     current,
++                                 unsigned long     past,
++                                 unsigned long     future,
++                                 u32               flags )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = pitch;
++     task->c64x_arg[1] = current;
++     task->c64x_arg[2] = past;
++     task->c64x_arg[3] = future;
++     task->c64x_arg[4] = flags;
++
++     task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_dva_begin_frame( DavinciC64x   *c64x,
++                              u32            pitch,
++                              unsigned long  current,
++                              unsigned long  past,
++                              unsigned long  future,
++                              u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = pitch;
++     task->c64x_arg[1] = current;
++     task->c64x_arg[2] = past;
++     task->c64x_arg[3] = future;
++     task->c64x_arg[4] = flags;
++
++     task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_dva_motion_block__L( DavinciC64xTasks *tasks,
++                                  unsigned long     macroblock )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = macroblock;
++
++     task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_dva_motion_block( DavinciC64x   *c64x,
++                               unsigned long  macroblock )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = macroblock;
++
++     task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_dva_idct( DavinciC64x   *c64x,
++                                 unsigned long  dest,
++                                 u32            pitch,
++                                 unsigned long  source )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = source;
++
++     task->c64x_function = C64X_DVA_IDCT | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_put_uyvy_16x16( DavinciC64x   *c64x,
++                             unsigned long  dest,
++                             u32            pitch,
++                             unsigned long  source,
++                             u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = source;
++     task->c64x_arg[3] = flags;
++
++     task->c64x_function = C64X_PUT_UYVY_16x16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_dither_argb__L( DavinciC64xTasks *tasks,
++                             unsigned long     dst_rgb,
++                             unsigned long     dst_alpha,
++                             u32               dst_pitch,
++                             unsigned long     source,
++                             u32               src_pitch,
++                             u32               width,
++                             u32               height )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dst_rgb;
++     task->c64x_arg[1] = dst_alpha;
++     task->c64x_arg[2] = dst_pitch;
++     task->c64x_arg[3] = source;
++     task->c64x_arg[4] = src_pitch;
++     task->c64x_arg[5] = width;
++     task->c64x_arg[6] = height;
++
++     task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_dither_argb( DavinciC64x   *c64x,
++                          unsigned long  dst_rgb,
++                          unsigned long  dst_alpha,
++                          u32            dst_pitch,
++                          unsigned long  source,
++                          u32            src_pitch,
++                          u32            width,
++                          u32            height )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dst_rgb;
++     task->c64x_arg[1] = dst_alpha;
++     task->c64x_arg[2] = dst_pitch;
++     task->c64x_arg[3] = source;
++     task->c64x_arg[4] = src_pitch;
++     task->c64x_arg[5] = width;
++     task->c64x_arg[6] = height;
++
++     task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_fill_16__L( DavinciC64xTasks *tasks,
++                         unsigned long     dest,
++                         u32               pitch,
++                         u32               width,
++                         u32               height,
++                         u32               value )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = width;
++     task->c64x_arg[3] = height;
++     task->c64x_arg[4] = value;
++
++     task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_fill_16( DavinciC64x   *c64x,
++                      unsigned long  dest,
++                      u32            pitch,
++                      u32            width,
++                      u32            height,
++                      u32            value )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = width;
++     task->c64x_arg[3] = height;
++     task->c64x_arg[4] = value;
++
++     task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_fill_32__L( DavinciC64xTasks *tasks,
++                         unsigned long     dest,
++                         u32               pitch,
++                         u32               width,
++                         u32               height,
++                         u32               value )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = width;
++     task->c64x_arg[3] = height;
++     task->c64x_arg[4] = value;
++
++     task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_fill_32( DavinciC64x   *c64x,
++                      unsigned long  dest,
++                      u32            pitch,
++                      u32            width,
++                      u32            height,
++                      u32            value )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = width;
++     task->c64x_arg[3] = height;
++     task->c64x_arg[4] = value;
++
++     task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_16__L( DavinciC64xTasks *tasks,
++                         unsigned long     dest,
++                         u32               dpitch,
++                         unsigned long     src,
++                         u32               spitch,
++                         u32               width,
++                         u32               height )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width;
++     task->c64x_arg[5] = height;
++
++     task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_16( DavinciC64x   *c64x,
++                      unsigned long  dest,
++                      u32            dpitch,
++                      unsigned long  src,
++                      u32            spitch,
++                      u32            width,
++                      u32            height )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width;
++     task->c64x_arg[5] = height;
++
++     task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_32__L( DavinciC64xTasks *tasks,
++                         unsigned long     dest,
++                         u32               dpitch,
++                         unsigned long     src,
++                         u32               spitch,
++                         u32               width,
++                         u32               height )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width;
++     task->c64x_arg[5] = height;
++
++     task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_32( DavinciC64x   *c64x,
++                      unsigned long  dest,
++                      u32            dpitch,
++                      unsigned long  src,
++                      u32            spitch,
++                      u32            width,
++                      u32            height )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width;
++     task->c64x_arg[5] = height;
++
++     task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_stretch_32__L( DavinciC64xTasks *tasks,
++                            unsigned long     dest,
++                            u32               dpitch,
++                            unsigned long     src,
++                            u32               spitch,
++                            u32               dw,
++                            u32               dh,
++                            u32               sw,
++                            u32               sh,
++                            const DFBRegion  *clip )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = src;
++     task->c64x_arg[2] = dpitch   | (spitch   << 16);
++     task->c64x_arg[3] = dh       | (dw       << 16);
++     task->c64x_arg[4] = sh       | (sw       << 16);
++     task->c64x_arg[5] = clip->x2 | (clip->y2 << 16);
++     task->c64x_arg[6] = clip->x1 | (clip->y1 << 16);
++
++     if (sw > dw && sh > dh)
++          task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO;
++     else
++          task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_stretch_32( DavinciC64x     *c64x,
++                         unsigned long    dest,
++                         u32              dpitch,
++                         unsigned long    src,
++                         u32              spitch,
++                         u32              dw,
++                         u32              dh,
++                         u32              sw,
++                         u32              sh,
++                         const DFBRegion *clip )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = src;
++     task->c64x_arg[2] = dpitch   | (spitch   << 16);
++     task->c64x_arg[3] = dh       | (dw       << 16);
++     task->c64x_arg[4] = sh       | (sw       << 16);
++     task->c64x_arg[5] = clip->x2 | (clip->y2 << 16);
++     task->c64x_arg[6] = clip->x1 | (clip->y1 << 16);
++
++     if (sw > dw && sh > dh)
++          task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO;
++     else
++          task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_blend_32__L( DavinciC64xTasks *tasks,
++                               u32               sub_func,
++                               unsigned long     dest,
++                               u32               dpitch,
++                               unsigned long     src,
++                               u32               spitch,
++                               u32               width,
++                               u32               height,
++                               u32               argb,
++                               u8                alpha )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width | (height << 16);
++     task->c64x_arg[5] = argb;
++     task->c64x_arg[6] = alpha;
++
++     task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_blend_32( DavinciC64x   *c64x,
++                            u32            sub_func,
++                            unsigned long  dest,
++                            u32            dpitch,
++                            unsigned long  src,
++                            u32            spitch,
++                            u32            width,
++                            u32            height,
++                            u32            argb,
++                            u8             alpha )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width | (height << 16);
++     task->c64x_arg[5] = argb;
++     task->c64x_arg[6] = alpha;
++
++     task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_keyed_16__L( DavinciC64xTasks *tasks,
++                               unsigned long     dest,
++                               u32               dpitch,
++                               unsigned long     src,
++                               u32               spitch,
++                               u32               width,
++                               u32               height,
++                               u32               key,
++                               u32               mask )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = width;
++     task->c64x_arg[4] = height;
++     task->c64x_arg[5] = key;
++     task->c64x_arg[6] = mask;
++
++     task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_keyed_16( DavinciC64x   *c64x,
++                            unsigned long  dest,
++                            u32            dpitch,
++                            unsigned long  src,
++                            u32            spitch,
++                            u32            width,
++                            u32            height,
++                            u32            key,
++                            u32            mask )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = width;
++     task->c64x_arg[4] = height;
++     task->c64x_arg[5] = key;
++     task->c64x_arg[6] = mask;
++
++     task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_keyed_32__L( DavinciC64xTasks *tasks,
++                               unsigned long     dest,
++                               u32               dpitch,
++                               unsigned long     src,
++                               u32               spitch,
++                               u32               width,
++                               u32               height,
++                               u32               key,
++                               u32               mask )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = width;
++     task->c64x_arg[4] = height;
++     task->c64x_arg[5] = key;
++     task->c64x_arg[6] = mask;
++
++     task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_keyed_32( DavinciC64x   *c64x,
++                            unsigned long  dest,
++                            u32            dpitch,
++                            unsigned long  src,
++                            u32            spitch,
++                            u32            width,
++                            u32            height,
++                            u32            key,
++                            u32            mask )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = width;
++     task->c64x_arg[4] = height;
++     task->c64x_arg[5] = key;
++     task->c64x_arg[6] = mask;
++
++     task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++#endif
++
+diff -urNp DirectFB-1.5.3_orig/gfxdrivers/davinci/davincifb.h DirectFB-1.5.3/gfxdrivers/davinci/davincifb.h
+--- DirectFB-1.5.3_orig/gfxdrivers/davinci/davincifb.h 1969-12-31 19:00:00.000000000 -0500
++++ DirectFB-1.5.3/gfxdrivers/davinci/davincifb.h      2012-05-09 02:20:07.271230380 -0400
+@@ -0,0 +1,581 @@
++/* 
++ * Copyright (C) 2006 Texas Instruments 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * File: davincifb.h  
++ */
++
++#ifndef DAVINVI_VPBE_H
++#define DAVINVI_VPBE_H
++
++/* include Linux files */
++#include <linux/fb.h>
++
++/* define the custom FBIO_WAITFORVSYNC ioctl */
++#define FBIO_WAITFORVSYNC     _IOW('F', 0x20, u_int32_t)
++#define FBIO_SETATTRIBUTE       _IOW('F', 0x21, struct fb_fillrect)
++
++/* Backported IOCTLS. */
++#define FBIO_SETPOSX                            _IOW('F', 0x22, u_int32_t)
++#define FBIO_SETPOSY                            _IOW('F', 0x23, u_int32_t)
++#define FBIO_SETZOOM                          _IOW('F', 0x24, struct zoom_params)
++#define FBIO_GETSTD                             _IOR('F', 0x25, u_int32_t)
++#define FBIO_RESIZER                          _IOW('F', 0x26, struct vpfe_resizer_params)
++#define FBIO_SYNC                             _IOW('F', 0x27, u_int32_t)
++
++typedef struct zoom_params {
++      u_int32_t window_id;
++      u_int32_t zoom_h;
++      u_int32_t zoom_v;
++} zoom_params_t;
++
++typedef struct vpfe_resizer_params
++{
++      u_int32_t rsz_cnt;      //busy-lock
++      u_int32_t out_size;     //busy-lock
++      u_int32_t in_start;     //busy-lock
++      u_int32_t in_size;      //busy-lock
++      u_int32_t sdr_inadd;    //shadowed
++      u_int32_t sdr_inoff;    //shadowed
++      u_int32_t sdr_outadd;   //shadowed
++      u_int32_t sdr_outoff;   //shadowed
++      u_int32_t hfilt[16];    //busy-lock
++      u_int32_t vfilt[16];    //busy-lock
++      u_int32_t yenh;         //busy-lock
++} vpfe_resizer_params_t;
++
++typedef struct fb_set_start {
++      int             offset;         /* offset from smem_start */
++      unsigned long   physical;       /* absolute physical address when offset < 0 */
++
++      u_int64_t       sync;           /* input:  target sync counter for change or 0 for no sync at all,
++                                         output: sync counter of actual change or 0 if still pending */
++} fb_set_start_t;
++
++
++#ifdef _IOC_TYPECHECK
++#undef _IOC_TYPECHECK
++#define _IOC_TYPECHECK(x)     (sizeof(x))
++#endif
++
++#define       RAM_CLUT_SIZE   256*3
++#define FBIO_ENABLE_DISABLE_WIN               \
++      _IOW('F', 0x30, unsigned char)
++#define FBIO_SET_BITMAP_BLEND_FACTOR  \
++      _IOW('F', 0x31, vpbe_bitmap_blend_params_t)
++#define FBIO_SET_BITMAP_WIN_RAM_CLUT    \
++      _IOW('F', 0x32, unsigned char)*RAM_CLUT_SIZE)
++#define FBIO_ENABLE_DISABLE_ATTRIBUTE_WIN \
++      _IOW('F', 0x33, unsigned int)
++#define FBIO_GET_BLINK_INTERVAL               \
++      _IOR('F', 0x34, vpbe_blink_option_t)
++#define FBIO_SET_BLINK_INTERVAL         \
++      _IOW('F', 0x35, vpbe_blink_option_t)
++#define FBIO_GET_VIDEO_CONFIG_PARAMS    \
++      _IOR('F', 0x36, vpbe_video_config_params_t)
++#define FBIO_SET_VIDEO_CONFIG_PARAMS    \
++      _IOW('F', 0x37, vpbe_video_config_params_t)
++#define FBIO_GET_BITMAP_CONFIG_PARAMS   \
++      _IOR('F', 0x38, vpbe_bitmap_config_params_t)
++#define FBIO_SET_BITMAP_CONFIG_PARAMS   \
++      _IOW('F', 0x39, vpbe_bitmap_config_params_t)
++#define FBIO_SET_DCLK                   \
++      _IOW('F', 0x40, vpbe_dclk_t)
++#define FBIO_SET_INTERFACE            \
++      _IOW('F', 0x41, unsigned char)
++#define FBIO_GET_INTERFACE            \
++      _IOR('F', 0x42, unsigned char)
++#define FBIO_QUERY_TIMING             \
++      _IOWR('F', 0x43, struct vpbe_mode_info)
++#define FBIO_SET_TIMING                       \
++      _IOW('F', 0x44, struct vpbe_fb_videomode)
++#define FBIO_GET_TIMING                 \
++      _IOR('F', 0x45, struct vpbe_fb_videomode)
++#define FBIO_SET_VENC_CLK_SOURCE      \
++      _IOW('F', 0x46, unsigned char)
++#define FBIO_SET_BACKG_COLOR            \
++      _IOW('F', 0x47, vpbe_backg_color_t)
++#define FBIO_ENABLE_DISPLAY           \
++      _IOW('F', 0x48, unsigned char)
++#define FBIO_SETPOS                           \
++      _IOW('F', 0x49, u_int32_t)
++#define FBIO_SET_CURSOR               \
++      _IOW('F', 0x50, struct fb_cursor)
++#define FBIO_SET_START                \
++      _IOW('F', 0x66, struct fb_set_start)
++
++/* 
++ * Defines and Constants
++ */
++#ifdef __KERNEL__
++#define DAVINCIFB_DEVICE "davincifb"
++#define DAVINCIFB_DRIVER "davincifb"
++
++#define MULTIPLE_BUFFERING      1
++
++#ifdef MULTIPLE_BUFFERING
++#define DOUBLE_BUF      2
++#define TRIPLE_BUF      3
++#else
++#define DOUBLE_BUF      1
++#define TRIPLE_BUF      1
++#endif
++
++/* usage:     if (is_win(info->fix.id, OSD0)) ... */
++#define is_win(name, x) ((strcmp(name, x ## _FBNAME) == 0) ? 1 : 0)
++
++/*
++ * display controller register I/O routines
++ */
++u32 dispc_reg_in(u32 offset);
++u32 dispc_reg_out(u32 offset, u32 val);
++u32 dispc_reg_merge(u32 offset, u32 val, u32 mask);
++
++#endif                                /*__KERNEL__*/
++
++/*  Error return codes  */
++#define VPBE_INVALID_PARA_VALUE         700
++#define VPBE_WRONG_WINDOW_ID            701
++#define VPBE_CURRENTLY_IN_REQUIRED_MODE 702
++#define VPBE_INSUFFICIENT_CLUT_VALUES   703
++#define VPBE_CLUT_WRITE_TIMEOUT         704
++#define VPBE_VID0_BUF_ADR_NULL          705
++#define VPBE_WINDOW_NOT_DISABLED        706
++#define VPBE_WINDOW_NOT_ENABLED         707
++
++#ifndef __KERNEL__
++/*  Window ID definations */
++#define OSD0      0
++#define VID0      1
++#define OSD1      2
++#define VID1      3
++#endif
++
++/* There are 4 framebuffers, each represented by an fb_info and
++ * a dm_win_info structure */
++#define OSD0_FBNAME "dm_osd0_fb"
++#define OSD1_FBNAME "dm_osd1_fb"
++#define VID0_FBNAME "dm_vid0_fb"
++#define VID1_FBNAME "dm_vid1_fb"
++
++/*  FIXME: Digital LCD RGB matrix coefficients */
++#define DLCD_DGY_VAL    0
++#define DLCD_DRV_VAL    0
++#define DLCD_DGU_VAL    0
++#define DLCD_DBU_VAL          0
++
++/* Defines for bitmap format */
++#define VPBE_BITMAP_BIT_1     1
++#define VPBE_BITMAP_BIT_2     2
++#define VPBE_BITMAP_BIT_4     4
++#define VPBE_BITMAP_BIT_8     8
++#define VPBE_BITMAP_RGB565    16
++#define VPBE_VIDEO_YUV422     16
++#define VPBE_VIDEO_RGB888     24
++
++/* Defines foe cursor parameter validation*/
++#define MAX_CURSOR_WIDTH      0x3FF
++#define MAX_CURSOR_HEIGHT     0x1FF
++#define MAX_CURSOR_LINEWIDTH    7
++
++#define BASEX         0x80
++#define BASEY         0x12
++#define BASEX_DLCD            0x59
++#define BASEY_DLCD            0x22
++
++/*
++ * Enumerations 
++ */
++/*  Enum for blending factor  */
++typedef enum vpbe_blend_factor {
++      OSD_CONTRIBUTION_ZERO = 0,
++      OSD_CONTRIBUTION_1_BY_8 = 1,
++      OSD_CONTRIBUTION_2_BY_8 = 2,
++      OSD_CONTRIBUTION_3_BY_8 = 3,
++      OSD_CONTRIBUTION_4_BY_8 = 4,
++      OSD_CONTRIBUTION_5_BY_8 = 5,
++      OSD_CONTRIBUTION_6_BY_8 = 6,
++      OSD_CONTRIBUTION_ONE = 7
++} vpbe_blend_factor_t;
++
++/*  Enum for Boolean variables  */
++typedef enum {
++      SET_0 = 0,
++      SET_1 = 1
++} CB_CR_ORDER, ATTRIBUTE, ROM_RAM_CLUT;
++
++/*  Defines for Display Interface */
++#define  PRGB         0
++#define  COMPOSITE      1
++#define  SVIDEO       2
++#define  COMPONENT    3
++#define  RGB          4
++#define  YCC16        5
++#define  YCC8         6
++#define  SRGB         7
++#define  EPSON        8
++#define  CASIO1G      9
++#define  UDISP        10
++#define  STN          11
++#define VPBE_MAX_INTERFACES   12
++
++/*  Defines for Display Mode */
++#define  LCD    0
++#define  NTSC 1
++#define  PAL    2
++#define  P525   3
++#define  P625   4
++
++#define DEFAULT_MODE 0
++#define  P480   0
++#define  P400   1
++#define  P350   2
++#define NON_EXISTING_MODE 255
++/*  Enable/Disable enum */
++typedef enum {
++      VPBE_DISABLE = 0,
++      VPBE_ENABLE = 1
++} ATTENUATION, TRANSPARENCY, EXPANSION, BLINKING;
++
++typedef enum clk_source {
++      CLK_SOURCE_CLK27 = 0,
++      CLK_SOURCE_CLK54 = 1,
++      CLK_SOURCE_VPBECLK = 2
++} CLK_SOURCE;
++
++/*
++ * Structures and Union Definitions
++ */
++
++/*  Structure for transparency and the blending factor for the bitmap window  */
++typedef struct vpbe_bitmap_blend_params {
++      unsigned int colorkey;  /* color key to be blend */
++      unsigned int enable_colorkeying;        /* enable color keying */
++      unsigned int bf;        /* valid range from 0 to 7 only. */
++} vpbe_bitmap_blend_params_t;
++
++/*  Structure for window expansion  */
++typedef struct vpbe_win_expansion {
++      EXPANSION horizontal;
++      EXPANSION vertical;     /* 1: Enable 0:disable */
++} vpbe_win_expansion_t;
++
++/*  Structure for OSD window blinking options */
++typedef struct vpbe_blink_option {
++      BLINKING blinking;      /* 1: Enable blinking 0: Disable */
++      unsigned int interval;  /* Valid only if blinking is 1 */
++} vpbe_blink_option_t;
++
++/*  Structure for DCLK parameters */
++typedef struct vpbe_dclk {
++      unsigned char dclk_pattern_width;
++      unsigned int dclk_pattern0;
++      unsigned int dclk_pattern1;
++      unsigned int dclk_pattern2;
++      unsigned int dclk_pattern3;
++} vpbe_dclk_t;
++
++/*  Structure for display format  */
++typedef struct vpbe_display_format {
++      unsigned char interface;        /* Output interface type */
++      unsigned char mode;     /* output mode */
++} vpbe_display_format_t;
++
++/*  Structure for background color  */
++typedef struct vpbe_backg_color {
++      unsigned char clut_select;      /* 2: RAM CLUT 1:ROM1 CLUT 0:ROM0 CLUT */
++      unsigned char color_offset;     /* index of color */
++} vpbe_backg_color_t;
++
++/*  Structure for Video window configurable parameters  */
++typedef struct vpbe_video_config_params {
++      CB_CR_ORDER cb_cr_order;        /*Cb/Cr order in input data for a pixel. */
++      /*    0: cb cr  1:  cr cb */
++      vpbe_win_expansion_t exp_info;  /* HZ/VT Expansion enable disable */
++} vpbe_video_config_params_t;
++
++/*Union of structures giving the CLUT index for the 1, 2, 4 bit bitmap values.*/
++typedef union vpbe_clut_idx {
++      struct _for_4bit_bimap {
++              unsigned char bitmap_val_0;
++              unsigned char bitmap_val_1;
++              unsigned char bitmap_val_2;
++              unsigned char bitmap_val_3;
++              unsigned char bitmap_val_4;
++              unsigned char bitmap_val_5;
++              unsigned char bitmap_val_6;
++              unsigned char bitmap_val_7;
++              unsigned char bitmap_val_8;
++              unsigned char bitmap_val_9;
++              unsigned char bitmap_val_10;
++              unsigned char bitmap_val_11;
++              unsigned char bitmap_val_12;
++              unsigned char bitmap_val_13;
++              unsigned char bitmap_val_14;
++              unsigned char bitmap_val_15;
++      } for_4bit_bimap;
++      struct _for_2bit_bimap {
++              unsigned char bitmap_val_0;
++              unsigned char dummy0[4];
++              unsigned char bitmap_val_1;
++              unsigned char dummy1[4];
++              unsigned char bitmap_val_2;
++              unsigned char dummy2[4];
++              unsigned char bitmap_val_3;
++      } for_2bit_bimap;
++      struct _for_1bit_bimap {
++              unsigned char bitmap_val_0;
++              unsigned char dummy0[14];
++              unsigned char bitmap_val_1;
++      } for_1bit_bimap;
++} vpbe_clut_idx_t;
++
++/*  Structure for bitmap window configurable parameters */
++typedef struct vpbe_bitmap_config_params {
++      /* Only for bitmap width = 1,2,4 bits */
++      vpbe_clut_idx_t clut_idx;
++      /* Attenuation value for YUV o/p for bitmap window */
++      unsigned char attenuation_enable;
++      /* 0: ROM DM270, 1:ROM DM320, 2:RAM CLUT */
++      unsigned char clut_select;
++} vpbe_bitmap_config_params_t;
++
++/*  Unioun for video/OSD configuration parameters  */
++typedef union vpbe_conf_params {
++
++      struct vpbe_video_params {
++              CB_CR_ORDER cb_cr_order;
++              /* HZ/VT Expansion enable disable */
++              vpbe_win_expansion_t exp_info;
++      } video_params;
++
++      struct vpbe_bitmap_params {
++              /* Attenuation value for YUV o/p */
++              ATTENUATION attenuation_enable;
++              /* 0: ROM DM270, 1: ROM DM320, 2:RAM CLUT */
++              unsigned char clut_select;
++              /* Only for bitmap width = 1,2,4 bits */
++              vpbe_clut_idx_t clut_idx;
++              /* 0: OSD window is bitmap window */
++              /* 1: OSD window is attribute window */
++              ATTRIBUTE enable_attribute;
++              /* To hold bps value. 
++                 Used to switch back from attribute to bitmap. */
++              unsigned int stored_bits_per_pixel;
++              /* Blending information */
++              vpbe_bitmap_blend_params_t blend_info;
++              /* OSD Blinking information */
++              vpbe_blink_option_t blink_info;
++      } bitmap_params;
++
++} vpbe_conf_params_t;
++
++typedef struct vpbe_video_params vpbe_video_params_t;
++typedef struct vpbe_bitmap_params vpbe_bitmap_params_t;
++
++/* Structure to hold window position */
++typedef struct vpbe_window_position {
++      unsigned int xpos;      /* X position of the window */
++      unsigned int ypos;      /* Y position of the window */
++} vpbe_window_position_t;
++
++#ifdef __KERNEL__
++/*  Structure for each window */
++typedef struct vpbe_dm_win_info {
++      struct fb_info info;
++      vpbe_window_position_t win_pos; /* X,Y position of window */
++      /* Size of window is already there in var_info structure. */
++
++      dma_addr_t fb_base_phys;        /*framebuffer area */
++      unsigned int fb_base;   /*window memory pointer */
++      unsigned int fb_size;   /*memory size */
++      unsigned int pseudo_palette[17];
++      int alloc_fb_mem;
++      /*flag to identify if framebuffer area is fixed or not */
++      unsigned long sdram_address;
++      struct vpbe_dm_info *dm;
++      unsigned char window_enable;    /*Additions for all windows */
++      zoom_params_t zoom;     /*Zooming parameters */
++      unsigned char field_frame_select;       /*To select Field or frame */
++      unsigned char numbufs;  /*Number of buffers valid 2 or 3 */
++      vpbe_conf_params_t conf_params;
++      /*window configuration parameter union pointer */
++} vpbe_dm_win_info_t;
++#endif                                /*__KERNEL__*/
++
++/*
++ *  Videmode structure for display interface and mode settings
++ */
++typedef struct vpbe_fb_videomode {
++      unsigned char name[10]; /* Mode name ( NTSC , PAL) */
++      unsigned int vmode;     /* FB_MODE_INTERLACED or FB_MODE_NON_INTERLACED */
++      unsigned int xres;      /* X Resolution of the display */
++      unsigned int yres;      /* Y Resolution of the display */
++      unsigned int fps;       /* frames per second */
++      /* Timing Parameters applicable for std = 0 only */
++      unsigned int left_margin;
++      unsigned int right_margin;
++      unsigned int upper_margin;
++      unsigned int lower_margin;
++      unsigned int hsync_len;
++      unsigned int vsync_len;
++      unsigned int sync;      /* 0: hsync -ve/vsync -ve */
++      /*1: hsync -ve/vsync +ve */
++      /*2: hsync +ve/vsync -ve */
++      /*3: hsync +ve/vsync +ve */
++      unsigned int basepx;    /* Display x,y start position */
++      unsigned int basepy;
++/*  1= Mode s available in modelist 0=Mode is not available in modelist */
++      unsigned int std;
++} vpbe_fb_videomode_t;
++
++/* Structure to interface videomode to application*/
++typedef struct vpbe_mode_info {
++      vpbe_fb_videomode_t vid_mode;
++      unsigned char interface;
++      unsigned char mode_idx;
++} vpbe_mode_info_t;
++
++#ifdef __KERNEL__
++/* 
++ * Structure for the driver holding information of windows, 
++ *  memory base addresses etc.
++ */
++typedef struct vpbe_dm_info {
++      vpbe_dm_win_info_t *osd0;
++      vpbe_dm_win_info_t *osd1;
++      vpbe_dm_win_info_t *vid0;
++      vpbe_dm_win_info_t *vid1;
++
++/* to map the registers */
++      dma_addr_t mmio_base_phys;
++      unsigned int mmio_base;
++      unsigned int mmio_size;
++
++      wait_queue_head_t vsync_wait;
++      unsigned int vsync_cnt;
++      int timeout;
++
++      /* this is the function that configures the output device (NTSC/PAL/LCD)
++       * for the required output format (composite/s-video/component/rgb)
++       */
++      void (*output_device_config) (void);
++
++      struct device *dev;
++
++      vpbe_backg_color_t backg;       /* background color */
++      vpbe_dclk_t dclk;       /*DCLK parameters */
++      vpbe_display_format_t display;  /*Display interface and mode */
++      vpbe_fb_videomode_t videomode;  /*Cuurent videomode */
++      char ram_clut[256][3];  /*RAM CLUT array */
++      struct fb_cursor cursor;        /* cursor config params from fb.h */
++/*Flag that indicates whether any of the display is enabled or not*/
++      int display_enable;
++} vpbe_dm_info_t;
++
++/*
++ * Functions Definitions for 'davincifb' module
++ */
++int vpbe_mem_alloc_window_buf(vpbe_dm_win_info_t *);
++int vpbe_mem_release_window_buf(vpbe_dm_win_info_t *);
++void init_display_function(vpbe_display_format_t *);
++int vpbe_mem_alloc_struct(vpbe_dm_win_info_t **);
++void set_vid0_default_conf(void);
++void set_vid1_default_conf(void);
++void set_osd0_default_conf(void);
++void set_osd1_default_conf(void);
++void set_cursor_default_conf(void);
++void set_dm_default_conf(void);
++void set_win_enable(char *, unsigned int);
++int within_vid0_limits(u32, u32, u32, u32);
++void vpbe_set_display_default(void);
++#ifdef __KERNEL__
++void set_win_position(char *, u32, u32, u32, u32);
++void change_win_param(int);
++void set_interlaced(char *, unsigned int);
++#endif /* __KERNEL__ */
++
++/*
++ *    Function definations for 'osd' module
++ */
++
++int vpbe_enable_window(vpbe_dm_win_info_t *);
++int vpbe_disable_window(vpbe_dm_win_info_t *);
++int vpbe_vid_osd_select_field_frame(u8 *, u8);
++int vpbe_bitmap_set_blend_factor(u8 *, vpbe_bitmap_blend_params_t *);
++int vpbe_bitmap_set_ram_clut(void);
++int vpbe_enable_disable_attribute_window(u32);
++int vpbe_get_blinking(u8 *, vpbe_blink_option_t *);
++int vpbe_set_blinking(u8 *, vpbe_blink_option_t *);
++int vpbe_set_vid_params(u8 *, vpbe_video_config_params_t *);
++int vpbe_get_vid_params(u8 *, vpbe_video_config_params_t *);
++int vpbe_bitmap_get_params(u8 *, vpbe_bitmap_config_params_t *);
++int vpbe_bitmap_set_params(u8 *, vpbe_bitmap_config_params_t *);
++int vpbe_set_cursor_params(struct fb_cursor *);
++int vpbe_set_vid_expansion(vpbe_win_expansion_t *);
++int vpbe_set_dclk(vpbe_dclk_t *);
++int vpbe_set_display_format(vpbe_display_format_t *);
++int vpbe_set_backg_color(vpbe_backg_color_t *);
++int vpbe_set_interface(u8);
++int vpbe_query_mode(vpbe_mode_info_t *);
++int vpbe_set_mode(struct vpbe_fb_videomode *);
++int vpbe_set_venc_clk_source(u8);
++void set_vid0_default_conf(void);
++void set_osd0_default_conf(void);
++void set_vid1_default_conf(void);
++void set_osd1_default_conf(void);
++void set_cursor_default_conf(void);
++void set_dm_default_conf(void);
++/*
++ * Function definations for 'venc' module
++ */
++
++void davincifb_ntsc_composite_config(void);
++void davincifb_ntsc_svideo_config(void);
++void davincifb_ntsc_component_config(void);
++void davincifb_pal_composite_config(void);
++void davincifb_pal_svideo_config(void);
++void davincifb_pal_component_config(void);
++
++void vpbe_davincifb_ntsc_rgb_config(void);
++void vpbe_davincifb_pal_rgb_config(void);
++void vpbe_davincifb_525p_component_config(void);
++void vpbe_davincifb_625p_component_config(void);
++
++void vpbe_enable_venc(int);
++void vpbe_enable_dacs(int);
++/*
++ * Function definations for 'dlcd' module
++ */
++void vpbe_davincifb_480p_prgb_config(void);
++void vpbe_davincifb_400p_prgb_config(void);
++void vpbe_davincifb_350p_prgb_config(void);
++void vpbe_set_display_timing(struct vpbe_fb_videomode *);
++
++void vpbe_enable_lcd(int);
++/*
++ * Following functions are not implemented
++ */
++void vpbe_davincifb_default_ycc16_config(void);
++void vpbe_davincifb_default_ycc8_config(void);
++void vpbe_davincifb_default_srgb_config(void);
++void vpbe_davincifb_default_epson_config(void);
++void vpbe_davincifb_default_casio_config(void);
++void vpbe_davincifb_default_UDISP_config(void);
++void vpbe_davincifb_default_STN_config(void);
++#endif                                /*__KERNEL__*/
++
++#endif                                /* End of #ifndef DAVINCI_VPBE_H */
+diff -urNp DirectFB-1.5.3_orig/gfxdrivers/davinci/davinci_gfxdriver.h DirectFB-1.5.3/gfxdrivers/davinci/davinci_gfxdriver.h
+--- DirectFB-1.5.3_orig/gfxdrivers/davinci/davinci_gfxdriver.h 1969-12-31 19:00:00.000000000 -0500
++++ DirectFB-1.5.3/gfxdrivers/davinci/davinci_gfxdriver.h      2012-05-09 02:19:40.797421031 -0400
+@@ -0,0 +1,169 @@
++/*
++   TI Davinci driver - Graphics Driver
++
++   (c) Copyright 2007  Telio AG
++
++   Written by Denis Oliver Kropp <dok@directfb.org>
++
++   Code is derived from VMWare driver.
++
++   (c) Copyright 2001-2009  The world wide DirectFB Open Source Community (directfb.org)
++   (c) Copyright 2000-2004  Convergence (integrated media) GmbH
++
++   All rights reserved.
++
++   This library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2 of the License, or (at your option) any later version.
++
++   This library 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
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with this library; if not, write to the
++   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++   Boston, MA 02111-1307, USA.
++*/
++
++#ifndef __DAVINCI_GFXDRIVER_H__
++#define __DAVINCI_GFXDRIVER_H__
++
++#include <sys/ioctl.h>
++#include <davincifb.h>
++
++#include <core/surface_buffer.h>
++
++#include "davincifb.h"
++
++#include "davinci_c64x.h"
++
++
++typedef struct {
++     /* validation flags */
++     int                       v_flags;
++
++     /* cached/computed values */
++     void                     *dst_addr;
++     unsigned long             dst_phys;
++     unsigned int              dst_size;
++     unsigned long             dst_pitch;
++     DFBSurfacePixelFormat     dst_format;
++     unsigned long             dst_bpp;
++
++     void                     *src_addr;
++     unsigned long             src_phys;
++     unsigned long             src_pitch;
++     DFBSurfacePixelFormat     src_format;
++     unsigned long             src_bpp;
++
++     unsigned long             source_mult;
++
++     unsigned long             fillcolor;
++
++     int                       blit_blend_sub_function;
++     int                       draw_blend_sub_function;
++
++     DFBColor                  color;
++     unsigned long             color_argb;
++     unsigned long             colorkey;
++
++     DFBSurfaceBlittingFlags   blitting_flags;
++
++     DFBRegion                 clip;
++
++     /** Add shared data here... **/
++     struct fb_fix_screeninfo  fix[4];
++
++     CoreSurfacePool          *osd_pool;
++     CoreSurfacePool          *video_pool;
++
++     bool                      synced;
++} DavinciDeviceData;
++
++
++typedef struct {
++     int                       num;
++     int                       fd;
++     void                     *mem;
++     int                       size;
++} DavinciFB;
++
++typedef struct {
++     DavinciDeviceData        *ddev;
++
++     CoreDFB                  *core;
++
++     CoreScreen               *screen;
++     CoreLayer                *osd;
++     CoreLayer                *video;
++
++     DavinciFB                 fb[4];
++
++     DavinciC64x               c64x;
++     bool                      c64x_present;
++
++     DavinciC64xTasks          tasks;
++} DavinciDriverData;
++
++
++static inline DFBResult
++davincifb_pan_display( const DavinciFB             *fb,
++                       struct fb_var_screeninfo    *var,
++                       const CoreSurfaceBufferLock *lock,
++                       DFBSurfaceFlipFlags          flags,
++                       int                          x,
++                       int                          y )
++{
++     int ret;
++
++     if (lock) {
++#ifdef FBIO_SET_START
++          CoreSurfaceBuffer   *buffer = lock->buffer;
++          struct fb_set_start  set_start;
++
++          /* physical mode */
++          set_start.offset   = -1;
++          set_start.sync     = (flags & DSFLIP_ONSYNC) ? 1 : 0;
++
++          /* life's so easy */
++          set_start.physical = lock->phys + DFB_BYTES_PER_LINE( buffer->format, x ) + y * lock->pitch;
++
++          ret = ioctl( fb->fd, FBIO_SET_START, &set_start );
++          if (ret < 0)
++               D_DEBUG( "FBIO_SET_START (0x%08lx, sync %llu) failed!\n",
++                         set_start.physical, set_start.sync );
++
++          if (ret == 0) {
++               if (flags & DSFLIP_WAIT)
++                    ioctl( fb->fd, FBIO_WAITFORVSYNC );
++
++               return DFB_OK;
++          }
++
++          /* fallback */
++#endif
++          var->xoffset = x;                  /* poor version */
++          var->yoffset = y + lock->offset / lock->pitch;
++     }
++     else {
++          var->xoffset = x;
++          var->yoffset = y;
++     }
++
++     var->activate = /*(flags & DSFLIP_ONSYNC) ? FB_ACTIVATE_VBL :*/ FB_ACTIVATE_NOW;
++
++     ret = ioctl( fb->fd, FBIOPAN_DISPLAY, var );
++     if (ret)
++          D_PERROR( "Davinci/FB: FBIOPAN_DISPLAY (fb%d - %d,%d) failed!\n",
++                    fb->num, var->xoffset, var->yoffset );
++
++     if (flags & DSFLIP_WAIT)
++          ioctl( fb->fd, FBIO_WAITFORVSYNC );
++
++     return DFB_OK;
++}
++
++#endif
diff --git a/directfb/patches/DirectFB-1.5.3-gcc-atomics-on-arm.patch b/directfb/patches/DirectFB-1.5.3-gcc-atomics-on-arm.patch
new file mode 100644 (file)
index 0000000..1f488e9
--- /dev/null
@@ -0,0 +1,64 @@
+--- DirectFB-1.5.3_orig/lib/direct/atomic.h    2011-07-31 14:51:06.000000000 -0400
++++ DirectFB-1.5.3/lib/direct/atomic.h 2012-05-09 01:24:02.692169840 -0400
+@@ -185,20 +185,13 @@
+ #if defined(ARCH_ARM) && !defined(ARCH_IWMMXT)
+-static inline int _D__atomic_cmpxchg(volatile int *ptr, int old, int new)
++static inline int _D__atomic_cmpxchg(volatile int *ptr, int old, int _new)
+ {
+-      unsigned long oldval, res;
+-      do {
+-              __asm__ __volatile__("@ atomic_cmpxchg\n"
+-              "ldrex  %1, [%2]\n"
+-              "mov    %0, #0\n"
+-              "teq    %1, %3\n"
+-              "strexeq %0, %4, [%2]\n"
+-                  : "=&r" (res), "=&r" (oldval)
+-                  : "r" (ptr), "Ir" (old), "r" (new)
+-                  : "cc");
+-      } while (res);
++      unsigned long oldval = old;
++
++      __atomic_compare_exchange_n(ptr, &oldval, _new,
++                                  false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
+       return oldval;
+ }
+@@ -220,24 +213,14 @@ static inline int _D__atomic_cmpxchg(vol
+ static inline int _D__atomic_add_return(int i, volatile int *v)
+ {
+-      unsigned long tmp;
+-      int result;
+-      __asm__ __volatile__("@ atomic_add_return\n"
+-"1:   ldrex   %0, [%2]\n"
+-"     add     %0, %0, %3\n"
+-"     strex   %1, %0, [%2]\n"
+-"     teq     %1, #0\n"
+-"     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
+-      : "r" (v), "Ir" (i)
+-      : "cc");
++      int result = __atomic_add_fetch(v, i, __ATOMIC_SEQ_CST);
+       return result;
+ }
+ #define D_SYNC_ADD_AND_FETCH( ptr, value )                                           \
+-     (_D__atomic_add_return( (int) (value), (void*) (ptr) ))
++     (_D__atomic_add_return( (int) (value), (volatile int*) (ptr) ))
+ #endif
+@@ -308,7 +291,7 @@ static inline int _D__atomic_add_return(
+ }
+ #define D_SYNC_ADD_AND_FETCH( ptr, value )                                           \
+-     (_D__atomic_add_return( (int) (value), (void*) (ptr) ))
++     (_D__atomic_add_return( (int) (value), (volatile int*) (ptr) ))
+ #endif
diff --git a/directfb/patches/DirectFB-1.5.3-lm.patch b/directfb/patches/DirectFB-1.5.3-lm.patch
new file mode 100644 (file)
index 0000000..4402137
--- /dev/null
@@ -0,0 +1,33 @@
+diff -up DirectFB-1.5.3/tests/Makefile.am.lm DirectFB-1.5.3/tests/Makefile.am
+--- DirectFB-1.5.3/tests/Makefile.am.lm        2011-08-23 23:43:18.208040936 +0200
++++ DirectFB-1.5.3/tests/Makefile.am   2011-08-23 23:46:11.940784728 +0200
+@@ -98,11 +98,11 @@ dfbtest_gl1_LDADD   = $(libdirectfb) $(l
+ dfbtest_gl2_SOURCES = dfbtest_gl2.c
+ dfbtest_gl2_CFLAGS  = $(GLES2_CFLAGS)
+-dfbtest_gl2_LDADD   = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS)
++dfbtest_gl2_LDADD   = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS) -lm
+ dfbtest_gl3_SOURCES = dfbtest_gl3.c
+ dfbtest_gl3_CFLAGS  = $(GLES2_CFLAGS)
+-dfbtest_gl3_LDADD   = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS)
++dfbtest_gl3_LDADD   = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS) -lm
+ dfbtest_mirror_SOURCES = dfbtest_mirror.c
+ dfbtest_mirror_LDADD   = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect)
+diff -up DirectFB-1.5.3/tests/Makefile.in.lm DirectFB-1.5.3/tests/Makefile.in
+--- DirectFB-1.5.3/tests/Makefile.in.lm        2011-08-07 10:17:49.000000000 +0200
++++ DirectFB-1.5.3/tests/Makefile.in   2011-08-23 23:46:54.616981247 +0200
+@@ -575,10 +575,10 @@ dfbtest_gl1_CFLAGS = $(GLES2_CFLAGS)
+ dfbtest_gl1_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS)
+ dfbtest_gl2_SOURCES = dfbtest_gl2.c
+ dfbtest_gl2_CFLAGS = $(GLES2_CFLAGS)
+-dfbtest_gl2_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS)
++dfbtest_gl2_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS) -lm
+ dfbtest_gl3_SOURCES = dfbtest_gl3.c
+ dfbtest_gl3_CFLAGS = $(GLES2_CFLAGS)
+-dfbtest_gl3_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS)
++dfbtest_gl3_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS) -lm
+ dfbtest_mirror_SOURCES = dfbtest_mirror.c
+ dfbtest_mirror_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect)
+ dfbtest_reinit_SOURCES = dfbtest_reinit.c
index a8d2a04f957fd1bfd0f968832bdf785fcbb1c381..f3d6c31c125b9515a35b6c74733bdb7a8d2e8b76 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = dmraid
 version    = 1.0.0.rc15
-release    = 3
+release    = 5
 
 groups     = System/Filesystems
 url        = http://people.redhat.com/heinzm/sw/dmraid
@@ -30,28 +30,29 @@ build
        DIR_APP = %{DIR_SRC}/%{name}/%{version}
        PARALLELISMFLAGS = # Disabled
 
-       make_install_targets += sbindir=%{BUILDROOT}/sbin
+       make_install_targets += sbindir=%{BUILDROOT}%{sbindir}
 
        configure_options += \
-               --sbindir=/sbin \
-               --libdir=/%{lib} \
                --disable-static \
                --disable-static_link \
                --enable-libselinux
 
+       # Dmraid doesn't automatically build and install a versioned library
+       # so we do it on or own.
        build_cmds
                make -C lib libdmraid.so
        end
 
        install_cmds
-               mkdir -pv %{BUILDROOT}/{,usr}/%{lib}
-               install -v -m 755 lib/libdmraid.so \
-                       %{BUILDROOT}/%{lib}/libdmraid.so.%{version}
-               ln -svf ../../%{lib}/libdmraid.so.%{version} %{BUILDROOT}%{libdir}/libdmraid.so
-
                # Install development headers.
                mkdir -pv %{BUILDROOT}%{includedir}/dmraid
                install -m 644 include/dmraid/*.h %{BUILDROOT}%{includedir}/dmraid/
+
+               # Manually install versioned library and create symlinks.
+               mkdir -pv %{BUILDROOT}%{libdir}
+               install -m 755 lib/libdmraid.so %{BUILDROOT}%{libdir}/libdmraid.so.%{version}
+               ln -sv libdmraid.so.%{version} %{BUILDROOT}%{libdir}/libdmraid.so.1
+               ln -sv libdmraid.so.%{version} %{BUILDROOT}%{libdir}/libdmraid.so
        end
 end
 
index 8c0f9c7b7b4e2394df2ad8b90ac68f945fab66fc..18d9329039f97c2d10523e8a61d61ed111bc0a7d 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = dracut
-version    = 017
-release    = 1
+version    = 019
+release    = 2
 arch       = noarch
 
 groups     = System/Boot
@@ -22,10 +22,21 @@ sources    = %{thisapp}.tar.xz
 
 build
        requires
+               asciidoc
                docbook-utils
                docbook-xsl
        end
 
+       prepare_cmds
+               # Disable dash syntax check as we don't have dash.
+               sed -e "s/dash/true/g" -i Makefile
+
+               # The plymouth plugin contains a lot of hardcoded libexec paths.
+               # We don't use libexec and so we need to change this.
+               sed -e "s/libexec/lib/g" -i \
+                       modules.d/50plymouth/module-setup.sh
+       end
+
        dracutlibdir = %{prefix}/lib/dracut
 
        install
@@ -37,8 +48,8 @@ build
                cp -vf %{DIR_SOURCE}/ipfire.conf %{BUILDROOT}/etc/dracut.conf.d/ipfire.conf
 
                # Save package version.
-               echo "%{name}-%{version}-%{release}" > \
-                       %{BUILDROOT}%{dracutlibdir}/modules.d/10rpmversion/dracut-version
+               echo "DRACUT_VERSION=%{version}-%{release}" > \
+                       %{BUILDROOT}/%{dracutlibdir}/dracut-version.sh
 
                # Remove Gentoo specific module.
                rm -rvf %{BUILDROOT}%{dracutlibdir}/modules.d/50gensplash
@@ -67,11 +78,11 @@ packages
                        gzip
                        iputils
                        kbd
+                       kpartx
                        less
                        libselinux
                        lvm2
                        mdadm
-                       multipath-tools
                        sysvinit
                        udev
                        util-linux
index ce65673449204ac2e583d75ed291e7b8147fde6c..d38b414af4c91c8a11b2edf812fe801d77e11efb 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = e2fsprogs
-version    = 1.41.11
-release    = 2
+version    = 1.42.2
+release    = 1
 
 groups     = System/Filesystems
 url        = http://e2fsprogs.sourceforge.net/
@@ -18,7 +18,7 @@ description
        and third extended (ext2/ext3) filesystems.
 end
 
-source_dl  =
+source_dl  = http://prdownloads.sourceforge.net/%{name}/
 
 build
        requires
@@ -26,6 +26,7 @@ build
                libselinux-devel
                libsepol-devel
                libuuid-devel
+               psmisc
        end
 
        prepare_cmds
index fe1f1158304097b8b06178b7bc187f61eb788ab2..e24d6d7cd40b3e2d7bbae7f71adf7a72ae730b2e 100644 (file)
--- a/ed/ed.nm
+++ b/ed/ed.nm
@@ -5,7 +5,7 @@
 
 name       = ed
 version    = 1.5
-release    = 3
+release    = 4
 
 groups     = Application/Text
 url        = http://www.gnu.org/software/ed/
@@ -22,23 +22,11 @@ end
 source_dl  =
 
 build
-       configure_options += \
-               --exec-prefix=/
-
        make_build_target = CFLAGS="%{CFLAGS}"
-
-       install
-               # Create directory for man pages
-               mkdir -pv %{BUILDROOT}/usr/share/man/man1
-
-               make install bindir=/bin mandir=/usr/share/man \
-                       DESTDIR=%{BUILDROOT}
-       end
 end
 
 packages
        package %{name}
-       end
 
        package %{name}-debuginfo
                template DEBUGINFO
index 1f7d906269448458036baa4405cb3cb79eaa8e1b..a51ea7f8bc46b351cd73e620498cf5b6491a1596 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = ethtool
 version    = 2.6.34
-release    = 2
+release    = 3
 
 groups     = Applications/System
 url        = http://sourceforge.net/projects/gkernel/
@@ -20,11 +20,6 @@ end
 
 source_dl  =
 
-build
-       configure_options += \
-               --sbindir=/sbin
-end
-
 packages
        package %{name}
                groups += Base
index 425514e95597bd65eec233e9cc8ed8f950efcf7e..b7966a8c5ac8bc30609c1479b5b9aa4c01d6b94a 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = filesystem
-version    = 001
-release    = 3
+version    = 002
+release    = 2
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = Base Build System/Base
@@ -24,6 +24,12 @@ end
 sources   =
 
 build
+       # Pakfire supports python scriptlets since
+       # version 0.9.22.
+       requires
+               pakfire-builder >= 0.9.22
+       end
+
        DIR_APP = %{DIR_SRC}
 
        build
@@ -33,23 +39,18 @@ build
        install
                cd %{BUILDROOT}
                mkdir -pv \
-                       bin \
                        boot \
                        dev \
                        etc/pki \
                        etc/skel \
                        etc/sysconfig \
                        home \
-                       lib \
-                       %{lib} \
-                       lib/modules \
                        media \
                        mnt \
                        opt \
                        proc \
                        root \
                        run/lock \
-                       sbin \
                        srv \
                        sys \
                        tmp \
@@ -58,6 +59,7 @@ build
                        usr/lib \
                        usr/%{lib} \
                        usr/lib/locale \
+                       usr/lib/modules \
                        usr/sbin \
                        usr/share/{aclocal,dict,doc,empty,info,mime-info,misc} \
                        usr/share/man/man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x,0p,1p,3p} \
@@ -73,18 +75,23 @@ build
                        var/empty \
                        var/lib \
                        var/local \
-                       var/lock/subsys \
                        var/log \
                        var/nis \
                        var/preserve \
-                       var/run \
                        var/spool/{mail,lpd} \
                        var/tmp \
                        var/db \
                        var/cache
 
+               ln -snf usr/bin bin
+               ln -snf usr/sbin sbin
+               ln -snf usr/lib lib
+               [ "%{lib}" = "lib" ] || ln -snf usr/%{lib} %{lib}
+
                ln -snf ../var/tmp usr/tmp
                ln -snf spool/mail var/mail
+               ln -snf ../run var/run
+               ln -snf ../run/lock var/lock
 
                # Setting correct permissions.
                chmod 1777 %{BUILDROOT}/{,var/}tmp
@@ -100,6 +107,25 @@ end
 packages
        package %{name}
                prerequires = setup
+
+               # We do not know, if the filesystem package is the first
+               # in the transaction, so we create the symlinks prior to running
+               # the transaction.
+               script pretransin python
+                       if not os.path.exists("/usr"):
+                               os.makedirs("/usr")
+
+                       for dir in ("/lib", "/%{lib}", "/sbin", "/bin"):
+                               usr_dir = "/usr%s" % dir
+
+                               if not os.path.exists(usr_dir):
+                                       os.makedirs(usr_dir)
+
+                               try:
+                                       os.lstat(dir)
+                               except OSError:
+                                       os.symlink(usr_dir[1:], dir)
+               end
        end
 
        # Although this package is not noarch, it does not
index 652d138eec324fd6187d341205b30c81bfac739f..c05b86743b07cdd1b38183f0546bc91a7b0b206c 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = findutils
 version    = 4.5.10
-release    = 2
+release    = 3
 
 groups     = System/Tools
 url        = http://www.gnu.org/software/findutils/
@@ -35,18 +35,19 @@ build
        test
                make check
        end
-
-       install_cmds
-               mkdir -pv %{BUILDROOT}/bin
-               mv -v %{BUILDROOT}/usr/bin/find %{BUILDROOT}/bin
-
-               sed -i -e 's/find:=${BINDIR}/find:=\/bin/' %{BUILDROOT}/usr/bin/updatedb
-       end
 end
 
 packages
        package %{name}
                groups += Base Build
+
+               provides
+                       /bin/find
+               end
+
+               conflicts
+                       filesystem < 002
+               end
        end
 
        package %{name}-debuginfo
index b7eb9735f09bcce06139805b6278a0916d617b72..fa2578a5b74c372068cfe46d59b6748b1f1828e4 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = flex
-version    = 2.5.35
-release    = 4
+version    = 2.5.36
+release    = 1
 
 groups     = Development/Tools
 url        = http://flex.sourceforge.net/
@@ -13,19 +13,18 @@ license    = BSD
 summary    = A tool for creating scanners (text pattern recognizers).
 
 description
-       The flex program generates scanners. Scanners are programs which can \
-       recognize lexical patterns in text. Flex takes pairs of regular \
-       expressions and C code as input and generates a C source file as \
-       output.  The output file is compiled and linked with a library to \
-       produce an executable.  The executable searches through its input for \
-       occurrences of the regular expressions. When a match is found, it \
-       executes the corresponding C code. Flex was designed to work with \
-       both Yacc and Bison, and is used by many programs as part of their \
+       The flex program generates scanners. Scanners are programs which can
+       recognize lexical patterns in text. Flex takes pairs of regular
+       expressions and C code as input and generates a C source file as
+       output.  The output file is compiled and linked with a library to
+       produce an executable.  The executable searches through its input for
+       occurrences of the regular expressions. When a match is found, it
+       executes the corresponding C code. Flex was designed to work with
+       both Yacc and Bison, and is used by many programs as part of their
        build process.
 end
 
-source_dl  =
-sources    = %{thisapp}.tar.bz2
+source_dl  = http://prdownloads.sourceforge.net/flex/
 
 build
        requires
@@ -36,9 +35,9 @@ build
 
        keep_libraries = %{libdir}/libfl_pic.a
 
-       #test
-       #       make check
-       #end
+       test
+               make check
+       end
 
        install_cmds
                echo "#!/bin/sh"                        >  %{BUILDROOT}/usr/bin/lex
diff --git a/fontforge/fontforge.nm b/fontforge/fontforge.nm
new file mode 100644 (file)
index 0000000..75984ed
--- /dev/null
@@ -0,0 +1,57 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = fontforge
+version    = 20110222
+release    = 2
+
+groups     = Applications/Publishing
+url        = http://fontforge.sourceforge.net/
+license    = BSD
+summary    = Outline and bitmap font editor.
+
+description
+       FontForge (former PfaEdit) is a font editor for outline and bitmap
+       fonts. It supports a range of font formats, including PostScript
+       (ASCII and binary Type 1, some Type 3 and Type 0), TrueType, OpenType
+       (Type2) and CID-keyed fonts.
+end
+
+source_dl  = http://sourceforge.net/projects/fontforge/files/fontforge-source/
+sources    = %{name}_full-%{version}.tar.bz2
+
+build
+       requires
+               cairo-devel>=1.12.2
+               freetype-devel
+               gettext
+               libjpeg-devel
+               libpng-devel
+               libtiff-devel
+               libXft-devel
+               libXt-devel
+               libxml2-devel
+               pango-devel>=1.29.5-2
+               python-devel
+               xorg-x11-proto-devel
+       end
+
+       configure_options += \
+               --with-freetype-bytecode=no \
+               --with-regular-link \
+               --enable-pyextension
+end
+
+packages
+       package %{name}
+
+       package %{name}-devel
+               template DEVEL
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
diff --git a/fontforge/patches/fontforge-20090224-pythondl.patch b/fontforge/patches/fontforge-20090224-pythondl.patch
new file mode 100644 (file)
index 0000000..45e04bf
--- /dev/null
@@ -0,0 +1,41 @@
+diff -Nur fontforge-20090224.orig/configure fontforge-20090224/configure
+--- fontforge-20090224.orig/configure  2008-12-24 14:04:18.000000000 -0700
++++ fontforge-20090224/configure       2009-04-01 22:56:07.000000000 -0600
+@@ -26670,6 +26670,7 @@
+   else
+     PYLIBS=""
+   fi
++  PYDEFINES="$PYDEFINES, ('SOLIBDIR','\"$libdir/\"')"
+   PY=pyhook/setup.py
+ fi
+diff -Nur fontforge-20090224.orig/pyhook/loadfontforge.h fontforge-20090224/pyhook/loadfontforge.h
+--- fontforge-20090224.orig/pyhook/loadfontforge.h     2007-12-23 19:28:35.000000000 -0700
++++ fontforge-20090224/pyhook/loadfontforge.h  2009-04-01 22:49:08.000000000 -0600
+@@ -11,7 +11,7 @@
+     if ( (lib = dlopen("libgunicode" SO_EXT,RTLD_LAZY))==NULL ) {
+ #ifdef PREFIX
+-      lib = dlopen( PREFIX "/lib/" "libgunicode" SO_EXT,RTLD_LAZY);
++      lib = dlopen( SOLIBDIR "libgunicode.so.3" ,RTLD_LAZY);
+ #endif
+     }
+     if ( lib==NULL ) {
+@@ -21,7 +21,7 @@
+     if ( (lib = dlopen("libgutils" SO_EXT,RTLD_LAZY))==NULL ) {
+ #ifdef PREFIX
+-      lib = dlopen( PREFIX "/lib/" "libgutils" SO_EXT,RTLD_LAZY);
++      lib = dlopen( SOLIBDIR "libgutils.so.1" ,RTLD_LAZY);
+ #endif
+     }
+     if ( lib==NULL ) {
+@@ -31,7 +31,7 @@
+     if ( (lib = dlopen("libfontforge" SO_EXT,RTLD_LAZY))==NULL ) {
+ #ifdef PREFIX
+-      lib = dlopen( PREFIX "/lib/" "libfontforge" SO_EXT,RTLD_LAZY);
++      lib = dlopen( SOLIBDIR "libfontforge.so.1" ,RTLD_LAZY);
+ #endif
+     }
+     if ( lib==NULL ) {
diff --git a/fontforge/patches/fontforge-20100501-select-points-crash.patch b/fontforge/patches/fontforge-20100501-select-points-crash.patch
new file mode 100644 (file)
index 0000000..90c9bde
--- /dev/null
@@ -0,0 +1,11 @@
+--- fontforge-20100501.orig/fontforge/charview.c       2010-04-15 03:26:28.000000000 +0100
++++ fontforge-20100501/fontforge/charview.c    2011-03-01 15:09:22.821753002 +0000
+@@ -8597,7 +8597,7 @@
+ static int CVNumForePointsSelected(CharView *cv, BasePoint **bp) {
+     SplineSet *spl;
+     SplinePoint *test, *first;
+-    BasePoint *bps[4];
++    BasePoint *bps[5];
+     int i, cnt;
+     if ( cv->b.drawmode!=dm_fore )
diff --git a/fontforge/patches/fontforge-20110222-libpng15.patch b/fontforge/patches/fontforge-20110222-libpng15.patch
new file mode 100644 (file)
index 0000000..156e3c1
--- /dev/null
@@ -0,0 +1,176 @@
+From e76a8a537dbf8c47024f5863f9f18ed55ad686d3 Mon Sep 17 00:00:00 2001
+From: michal-n <michal-n@users.sourceforge.net>
+Date: Sat, 17 Dec 2011 15:24:12 +0100
+Subject: [PATCH] There was no need to panic...
+ The patch from Paul contained errant reference to 'png_color16'.
+ The correct form is 'png_color_16'. So, patch reapplied.
+
+---
+ gutils/gimagewritepng.c |  100 +++++++++++++++++++++++-----------------------
+ 1 files changed, 50 insertions(+), 50 deletions(-)
+
+diff --git a/gutils/gimagewritepng.c b/gutils/gimagewritepng.c
+index 43fa097..a88ec63 100644
+--- a/gutils/gimagewritepng.c
++++ b/gutils/gimagewritepng.c
+@@ -236,6 +236,7 @@ return(false);
+        }
+    } else {
+        if ( base->trans!=-1 ) {
++         trans_color = galloc(sizeof(png_color_16));
+          trans_color->red = COLOR_RED(base->trans);
+          trans_color->green = COLOR_GREEN(base->trans);
+          trans_color->blue = COLOR_BLUE(base->trans);
+@@ -258,6 +259,7 @@ return(false);
+     _png_write_end(png_ptr, info_ptr);
+     if ( trans_alpha!=NULL ) gfree(trans_alpha);
++    if ( trans_color!=NULL ) gfree(trans_color);
+     if ( palette!=NULL ) gfree(palette);
+     _png_destroy_write_struct(&png_ptr, &info_ptr);
+     gfree(rows);
+@@ -296,7 +298,7 @@ static void user_error_fn(png_structp png_ptr, png_const_charp error_msg) {
+ #if (PNG_LIBPNG_VER < 10500)
+     longjmp(png_ptr->jmpbuf,1);
+ #else
+-    _png_longjmp (png_ptr, 1);
++    png_longjmp (png_ptr, 1);
+ #endif
+ }
+@@ -310,6 +312,12 @@ int GImageWrite_Png(GImage *gi, FILE *fp, int progressive) {
+     png_infop info_ptr;
+     png_byte **rows;
+     int i;
++    int bit_depth;
++    int color_type;
++    int num_palette;
++    png_bytep trans_alpha = NULL;
++    png_color_16p trans_color = NULL;
++    png_colorp palette = NULL;
+    png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING,
+       (void *)NULL, user_error_fn, user_warning_fn);
+@@ -336,65 +344,60 @@ return(false);
+    png_init_io(png_ptr, fp);
+-   info_ptr->width = base->width;
+-   info_ptr->height = base->height;
+-   info_ptr->bit_depth = 8;
+-   info_ptr->valid = 0;
+-   info_ptr->interlace_type = progressive;
+-   if ( base->trans!=-1 ) {
+-       info_ptr->num_trans = 1;
+-       info_ptr->valid |= PNG_INFO_tRNS;
++   bit_depth = 8;
++   num_palette = base->clut==NULL?2:base->clut->clut_len;
++   if ( base->image_type==it_index || base->image_type==it_bitmap ) {
++       color_type = PNG_COLOR_TYPE_PALETTE;
++       if ( num_palette<=2 )
++         bit_depth=1;
++       else if ( num_palette<=4 )
++         bit_depth=2;
++       else if ( num_palette<=16 )
++         bit_depth=4;
++   } else {
++       color_type = PNG_COLOR_TYPE_RGB;
++       if ( base->image_type == it_rgba )
++         color_type = PNG_COLOR_TYPE_RGB_ALPHA;
+    }
++
++   png_set_IHDR(png_ptr, info_ptr, base->width, base->height,
++              bit_depth, color_type, progressive,
++              PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
+    if ( base->image_type==it_index || base->image_type==it_bitmap ) {
+-       info_ptr->color_type = PNG_COLOR_TYPE_PALETTE;
+-       info_ptr->valid |= PNG_INFO_PLTE;
+-       info_ptr->num_palette = base->clut==NULL?2:base->clut->clut_len;
+-       info_ptr->palette = (png_color *) galloc(info_ptr->num_palette*sizeof(png_color));
++       palette = (png_color *) galloc(num_palette*sizeof(png_color));
+        if ( base->clut==NULL ) {
+-          info_ptr->palette[0].red = info_ptr->palette[0].green = info_ptr->palette[0].blue = 0;
+-          info_ptr->palette[1].red = info_ptr->palette[1].green = info_ptr->palette[1].blue = 0xff;
++          palette[0].red = palette[0].green = palette[0].blue = 0;
++          palette[1].red = palette[1].green = palette[1].blue = 0xff;
+        } else {
+-         for ( i=0; i<info_ptr->num_palette; ++i ) {
++         for ( i=0; i<num_palette; ++i ) {
+               long col = base->clut->clut[i];
+-              info_ptr->palette[i].red = COLOR_RED(col);
+-              info_ptr->palette[i].green = COLOR_GREEN(col);
+-              info_ptr->palette[i].blue = COLOR_BLUE(col);
++              palette[i].red = COLOR_RED(col);
++              palette[i].green = COLOR_GREEN(col);
++              palette[i].blue = COLOR_BLUE(col);
+          }
+        }
+-       if ( info_ptr->num_palette<=2 )
+-         info_ptr->bit_depth=1;
+-       else if ( info_ptr->num_palette<=4 )
+-         info_ptr->bit_depth=2;
+-       else if ( info_ptr->num_palette<=16 )
+-         info_ptr->bit_depth=4;
+-       if ( info_ptr->num_palette<=16 )
++       png_set_PLTE(png_ptr, info_ptr, palette, num_palette);
++       if ( num_palette<=16 )
+          png_set_packing(png_ptr);
++
+        if ( base->trans!=-1 ) {
+-#if ( PNG_LIBPNG_VER_MAJOR > 1 || PNG_LIBPNG_VER_MINOR > 2 )
+-         info_ptr->trans_alpha = galloc(1);
+-         info_ptr->trans_alpha[0] = base->trans;
+-#else
+-         info_ptr->trans = galloc(1);
+-         info_ptr->trans[0] = base->trans;
+-#endif
++        trans_alpha = galloc(1);
++        trans_alpha[0] = base->trans;
+        }
+    } else {
+-       info_ptr->color_type = PNG_COLOR_TYPE_RGB;
+        if ( base->trans!=-1 ) {
+-#if ( PNG_LIBPNG_VER_MAJOR > 1 || PNG_LIBPNG_VER_MINOR > 2 )
+-         info_ptr->trans_color.red = COLOR_RED(base->trans);
+-         info_ptr->trans_color.green = COLOR_GREEN(base->trans);
+-         info_ptr->trans_color.blue = COLOR_BLUE(base->trans);
+-#else
+-         info_ptr->trans_values.red = COLOR_RED(base->trans);
+-         info_ptr->trans_values.green = COLOR_GREEN(base->trans);
+-         info_ptr->trans_values.blue = COLOR_BLUE(base->trans);
+-#endif
++         trans_color = galloc(sizeof(png_color_16));
++         trans_color->red = COLOR_RED(base->trans);
++         trans_color->green = COLOR_GREEN(base->trans);
++         trans_color->blue = COLOR_BLUE(base->trans);
+        }
+    }
++   if ( base->trans!=-1 ) {
++       png_set_tRNS(png_ptr, info_ptr, trans_alpha, 1, trans_color);
++   }
+    png_write_info(png_ptr, info_ptr);
+-    if (info_ptr->color_type == PNG_COLOR_TYPE_RGB)
++    if (color_type == PNG_COLOR_TYPE_RGB)
+       png_set_filler(png_ptr, '\0', PNG_FILLER_BEFORE);
+     rows = galloc(base->height*sizeof(png_byte *));
+@@ -405,12 +408,9 @@ return(false);
+     png_write_end(png_ptr, info_ptr);
+-#if ( PNG_LIBPNG_VER_MAJOR > 1 || PNG_LIBPNG_VER_MINOR > 2 )
+-    if ( info_ptr->trans_alpha!=NULL ) gfree(info_ptr->trans_alpha);
+-#else
+-    if ( info_ptr->trans!=NULL ) gfree(info_ptr->trans);
+-#endif
+-    if ( info_ptr->palette!=NULL ) gfree(info_ptr->palette);
++    if ( trans_alpha!=NULL ) gfree(trans_alpha);
++    if ( trans_color!=NULL ) gfree(trans_color);
++    if ( palette!=NULL ) gfree(palette);
+     png_destroy_write_struct(&png_ptr, &info_ptr);
+     gfree(rows);
+ return( 1 );
+-- 
+1.7.4.1
+
index 15925222e45e6916182843dc3c885d234da5fa28..2b7d077ceea6924da2616735a742d1d320d827c6 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = gawk
-version    = 4.0.0
-release    = 3
+version    = 4.0.1
+release    = 2
 
 groups     = System/Tools
 url        = http://www.gnu.org/software/gawk/gawk.html
@@ -19,7 +19,7 @@ description
 end
 
 # Needed for testsuite.
-source_dl  =
+source_dl  = http://ftp.gnu.org/gnu/gawk/
 sources    = %{thisapp}.tar.xz
 
 build
@@ -28,8 +28,6 @@ build
        end
 
        configure_options += \
-               --bindir=/bin \
-               --libexecdir=%{libdir} \
                --with-libsigsegv-prefix=no
 
        test
@@ -37,20 +35,25 @@ build
        end
 
        install_cmds
-               mkdir -pv %{BUILDROOT}/usr/bin
-               ln -svf ../../bin/awk %{BUILDROOT}/usr/bin/awk
-               ln -svf ../../bin/gawk %{BUILDROOT}/usr/bin/gawk
-
-               mv -v %{BUILDROOT}/bin/{p,i}gawk %{BUILDROOT}/usr/bin/
+               ln -svf gawk %{BUILDROOT}/usr/bin/awk
 
                # Remove versioned binary.
-               rm -rfv %{BUILDROOT}/bin/{,p}gawk-*
+               rm -rfv %{BUILDROOT}%{bindir}/{,p}gawk-*
        end
 end
 
 packages
        package %{name}
                groups += Base Build
+
+               provides
+                       /bin/awk
+                       /bin/gawk
+               end
+
+               conflicts
+                       filesystem < 002
+               end
        end
 
        package %{name}-debuginfo
index e25258cd47fe9d9939783067902a2b13e06666b7..69f6fd2b1f8861b81a5883a0cd957883da6eda89 100644 (file)
@@ -7,8 +7,8 @@
 build_cloog_ppl = 1
 
 name       = gcc
-version    = 4.6.3
-release    = 1
+version    = 4.7.1
+release    = 3
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = Development/Compilers
@@ -27,21 +27,6 @@ required_binutils_version = 2.21.51.0.8-1
 source_dl  = http://ftp.gnu.org/gnu/gcc/%{thisapp}/
 sources    = %{thisapp}.tar.gz
 
-patches = \
-       gcc46-hack.patch0 \
-       gcc46-c++-builtin-redecl.patch0 \
-       gcc46-pr33763.patch0 \
-       gcc46-libgomp-omp_h-multilib.patch0 \
-       gcc46-libtool-no-rpath.patch0 \
-       gcc46-cloog-dl.patch0 \
-       gcc46-pr38757.patch0 \
-       gcc46-no-add-needed.patch0 \
-       gcc46-unwind-debughook-sdt.patch0 \
-       gcc46-ppl-0.10.patch \
-       gcc46-Woverlength-string.patch0 \
-       gcc46-Woverlength-string-asm.patch0 \
-       gcc-4.6.0-piepatches-20110407.patch
-
 build
        requires
                autogen
@@ -49,12 +34,14 @@ build
                dejagnu
                elfutils-devel
                expect
+               filesystem >= 002
                flex
-               glibc-devel
+               glibc-devel >= 2.16
                gmp-devel
                libffi-devel
                libmpc-devel
                mpfr-devel
+               perl
                texinfo
                zlib-devel
        end
@@ -112,7 +99,8 @@ build
        end
 
        # CFLAGS for hardening.
-       HARD_CFLAGS = -DEFAULT_PIE_SSP -DEFAULT_RELRO -DEFAULT_BIND_NOW
+       HARD_CFLAGS = -DEFAULT_PIE -DEFAULT_SSP -DEFAULT_PIE_SSP -DEFAULT_ESP_SPP \
+               -DENABLE_ESP_SSP -DEFAULT_RELRO -DEFAULT_BIND_NOW
 
        prepare_cmds
                mkdir -v %{DIR_SRC}/gcc-build
@@ -142,18 +130,23 @@ build
                        -e "s/-fno-exceptions/& -fno-asynchronous-unwind-tables/"
 
                # we want to be able to control the pie patch logic via something other
-               # than ALL_CFLAGS...
+               # than ALL_CFLAGS and ALL_CXXFLAGS...
                sed -i gcc/Makefile.in \
                        -e '/^ALL_CFLAGS/iHARD_CFLAGS = ' \
-                       -e 's|^ALL_CFLAGS = |ALL_CFLAGS = $(HARD_CFLAGS) |'
+                       -e 's|^ALL_CFLAGS = |ALL_CFLAGS = $(HARD_CFLAGS) |' \
+                       -e '/^ALL_CXXFLAGS/iHARD_CFLAGS = ' \
+                       -e 's|^ALL_CXXFLAGS = |ALL_CXXFLAGS = $(HARD_CFLAGS) |'
 
                # Enable the GCC hardening by default.
                sed -i gcc/Makefile.in \
                        -e "s|^HARD_CFLAGS = |HARD_CFLAGS = %{HARD_CFLAGS} |"
 
                # Compile the compiler with -fPIC as well.
+               # However, genautomata crashes with a "Bus Error" when compiled
+               # with PIC.
                sed -i gcc/Makefile.in \
-                       -e "s|^ESP_NOPIE_CFLAGS = .*|ESP_NOPIE_CFLAGS =|"
+                       -e "s|^ESP_NOPIE_CFLAGS = .*|ESP_NOPIE_CFLAGS =|" \
+                       -e 's|^build/genautomata$(build_exeext) .*|& -fno-PIC|'
 
                # Default to -gdwarf-4 -fno-debug-types-section rather than -gdwarf-2
                sed -i gcc/common.opt \
@@ -195,6 +188,8 @@ build
                        --enable-languages=c,c++,lto \
                        --enable-bootstrap \
                        --enable-checking=release \
+                       --disable-build-with-cxx \
+                       --disable-build-poststage1-with-cxx \
                        --disable-werror \
                        --disable-libssp \
                        --disable-static \
@@ -203,10 +198,19 @@ build
                        --disable-libunwind-exceptions \
                        --enable-gnu-unique-object \
                        --enable-linker-build-id \
+                       --with-linker-hash-style=gnu \
                        %{configure_options}
 
                # GCC does not support a parallel build.
                make %{make_bootstrap} BOOT_CFLAGS="${CFLAGS}"
+
+               # Generate man pages.
+               perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
+               for i in %{DIR_APP}/gcc/doc/*.texi; do
+                       cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
+               done
+               make -C gcc generated-manpages
+               for i in %{DIR_APP}/gcc/doc/*.texi; do mv -f $i.orig $i; done
        end
 
        #test
@@ -222,14 +226,12 @@ build
                FULLPATH="%{BUILDROOT}%{libdir}/gcc/%{DISTRO_BUILDTARGET}/%{version}"
                [ -d "${FULLPATH}" ] || exit 1
 
-               mkdir -pv %{BUILDROOT}/lib
-               ln -sfv ../usr/bin/cpp %{BUILDROOT}/lib/cpp
+               mkdir -pv %{BUILDROOT}%{prefix}/lib
+               ln -sfv ../bin/cpp %{BUILDROOT}%{prefix}/lib/cpp
                ln -sfv gcc %{BUILDROOT}/usr/bin/cc
 
-               # Move libgcc_s to /lib
+               # Fix libgcc_s symlinks.
                rm -f ${FULLPATH}/libgcc_s.so %{BUILDROOT}%{libdir}/libgcc_s.so
-               mkdir -pv %{BUILDROOT}/%{lib}
-               mv -vf %{BUILDROOT}%{libdir}/libgcc_s.so.1 %{BUILDROOT}/%{lib}/
                case "%{DISTRO_ARCH}" in
                        arm*)
                                cat <<EOF >${FULLPATH}/libgcc_s.so
@@ -237,13 +239,14 @@ build
                   Use the shared library, but some functions are only in
                   the static library, so try that secondarily.  */
                OUTPUT_FORMAT(elf32-littlearm)
-               GROUP ( /%{lib}/libgcc_s.so.1 libgcc.a )
+               GROUP ( %{libdir}/libgcc_s.so.1 libgcc.a )
                EOF
                                ;;
                        *)
-                               ln -svf ../../../../../%{lib}/libgcc_s.so.1 ${FULLPATH}/libgcc_s.so
+                               ln -svf ../../../../..%{libdir}/libgcc_s.so.1 ${FULLPATH}/libgcc_s.so
                                ;;
                esac
+               chmod 755 %{BUILDROOT}%{libdir}/libgcc_s.so.1
 
                # Remove some GNU debugger stuff.
                rm -vf %{BUILDROOT}%{libdir}/lib*.py
@@ -264,7 +267,7 @@ build
                chmod 755 %{BUILDROOT}%{libdir}/libgomp.so.1.*
 
                # libstdc++
-               ln -svf ../../../libstdc++.so.6.0.16 ${FULLPATH}/libstdc++.so
+               ln -svf ../../../libstdc++.so.6.0.17 ${FULLPATH}/libstdc++.so
 
                # libmudflap
                ln -svf ../../../libmudflap.so.0.0.0 ${FULLPATH}/libmudflap.so
@@ -276,6 +279,11 @@ build
                        ln -svf ../../../libquadmath.so.0.0.0 ${FULLPATH}/libquadmath.so
                        chmod 755 %{BUILDROOT}%{libdir}/libquadmath.so.0.*
                fi
+
+               # libitm
+               mv -vf %{BUILDROOT}%{libdir}/libitm.spec ${FULLPATH}/
+               ln -svf ../../../libitm.so.1.0.0 ${FULLPATH}/libitm.so
+               chmod 755 %{BUILDROOT}%{libdir}/libitm.so.1.*
        end
 
        keep_libraries
@@ -289,20 +297,22 @@ packages
                groups += Build
 
                requires
-                       binutils>=%{required_binutils_version}
+                       binutils >= %{required_binutils_version}
+                       filesystem >= 002
+                       glibc >= 2.16
                        glibc-devel
                        gmp-devel
-                       cpp=%{thisver}
-                       libgcc=%{thisver}
-                       libgomp=%{thisver}
+                       cpp = %{thisver}
+                       libgcc = %{thisver}
+                       libgomp = %{thisver}
                end
 
                # We do not ship libgcc-devel anymore.
-               provides += libgcc-devel=%{thisver}
-               obsoletes += libgcc-devel<%{thisver}
+               provides += libgcc-devel = %{thisver}
+               obsoletes += libgcc-devel < %{thisver}
 
                if "%{build_cloog_ppl}" == "1"
-                       requires += cloog-ppl>=0.15
+                       requires += cloog-ppl >= 0.15
                end
        end
 
@@ -315,9 +325,9 @@ packages
                end
 
                requires
-                       gcc=%{thisver}
-                       libstdc++=%{thisver}
-                       libstdc++-devel=%{thisver}
+                       gcc = %{thisver}
+                       libstdc++ = %{thisver}
+                       libstdc++-devel = %{thisver}
                end
 
                files
@@ -354,11 +364,14 @@ packages
                group = Development/Languages
 
                files
-                       /%{lib}/cpp
-                       /usr/bin/cpp
-                       /usr/share/man/man1/cpp.1*
+                       %{prefix}/lib/cpp
+                       %{bindir}/cpp
+                       %{mandir}/man1/cpp.1*
                        %{libdir}/gcc/%{DISTRO_BUILDTARGET}/%{version}/cc1
                end
+
+               provides = /lib/cpp
+               requires = gcc-c++ = %{thisver}
        end
 
        package libgcc
@@ -369,7 +382,7 @@ packages
                end
 
                files
-                       /%{lib}/libgcc*.so.*
+                       %{libdir}/libgcc*.so.*
                end
        end
 
@@ -394,7 +407,7 @@ packages
                end
 
                requires
-                       libstdc++=%{thisver}
+                       libstdc++ = %{thisver}
                end
 
                files
@@ -438,7 +451,7 @@ packages
                end
 
                requires
-                       libmudflap=%{thisver}
+                       libmudflap = %{thisver}
                end
 
                files
@@ -469,8 +482,8 @@ packages
                        end
 
                        requires
-                               gcc=%{thisver}
-                               libquadmath=%{thisver}
+                               gcc = %{thisver}
+                               libquadmath = %{thisver}
                        end
 
                        files
@@ -481,6 +494,37 @@ packages
                end
        end
 
+       package libitm
+               summary = The GNU Transactional Memory library.
+               description
+                       This package contains the GNU Transactional Memory library
+                       which is a GCC transactional memory support runtime library.
+               end
+
+               files
+                       %{libdir}/libitm.so.1*
+               end
+       end
+
+       package libitm-devel
+               summary = The GNU Transactional Memory support.
+               description
+                       This package contains headers and support files for the
+                       GNU Transactional Memory library.
+               end
+
+               requires
+                       gcc = %{thisver}
+                       libitm = %{thisver}
+               end
+
+               files
+                       %{libdir}/gcc/%{DISTRO_BUILDTARGET}/%{version}/include/itm.h
+                       %{libdir}/gcc/%{DISTRO_BUILDTARGET}/%{version}/include/itm_weak.h
+                       %{libdir}/gcc/%{DISTRO_BUILDTARGET}/%{version}/libitm.so
+               end
+       end
+
        package gcc-plugin-devel
                summary = Support for compiling GCC plugins.
                description
@@ -490,10 +534,10 @@ packages
                end
 
                requires
-                       gcc=%{thisver}
-                       gmp-devel>=4.1.2-8
-                       mpfr-devel>=2.2.1
-                       libmpc-devel>=0.8.1
+                       gcc = %{thisver}
+                       gmp-devel >= 4.1.2-8
+                       mpfr-devel >= 2.2.1
+                       libmpc-devel >= 0.8.1
                end
 
                files
diff --git a/gcc/patches/gcc-4.7-arm-hfp-ldso.patch0 b/gcc/patches/gcc-4.7-arm-hfp-ldso.patch0
new file mode 100644 (file)
index 0000000..2f0b8c4
--- /dev/null
@@ -0,0 +1,52 @@
+2012-05-01  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
+       comparing enumeration values.  Update comments.
+
+2012-04-26  Michael Hope  <michael.hope@linaro.org>
+           Richard Earnshaw  <rearnsha@arm.com>
+
+       * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
+       (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
+       (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
+       (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
+
+--- gcc/config/arm/linux-eabi.h        (revision 186858)
++++ gcc/config/arm/linux-eabi.h        (revision 187012)
+@@ -32,7 +32,8 @@
+   while (false)
+ /* We default to a soft-float ABI so that binaries can run on all
+-   target hardware.  */
++   target hardware.  If you override this to use the hard-float ABI then
++   change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well.  */
+ #undef  TARGET_DEFAULT_FLOAT_ABI
+ #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
+@@ -59,10 +60,23 @@
+ #undef  SUBTARGET_EXTRA_LINK_SPEC
+ #define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION
+-/* Use ld-linux.so.3 so that it will be possible to run "classic"
+-   GNU/Linux binaries on an EABI system.  */
++/* GNU/Linux on ARM currently supports three dynamic linkers:
++   - ld-linux.so.2 - for the legacy ABI
++   - ld-linux.so.3 - for the EABI-derived soft-float ABI
++   - ld-linux-armhf.so.3 - for the EABI-derived hard-float ABI.
++   All the dynamic linkers live in /lib.
++   We default to soft-float, but this can be overridden by changing both
++   GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI.  */
++
+ #undef  GLIBC_DYNAMIC_LINKER
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
++#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
++#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
++#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
++
++#define GLIBC_DYNAMIC_LINKER \
++   "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \
++    %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
++    %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
+ /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
+    use the GNU/Linux version, not the generic BPABI version.  */
similarity index 58%
rename from gcc/patches/gcc-4.6.0-piepatches-20110407.patch
rename to gcc/patches/gcc-4.7.0-piepatch-20120518.patch
index a9ffaba7efe45c3a7815d7bfe261c9dba7e81003..813713d6323f779f416b7bf3b7d4457230c88057 100644 (file)
-diff -Nur gcc-4.6.0-vanilla/configure gcc-4.6.0/configure
---- gcc-4.6.0-vanilla/configure        2011-03-16 19:27:36.000000000 +0100
-+++ gcc-4.6.0/configure        2011-04-07 19:17:55.383923352 +0200
-@@ -668,6 +668,7 @@
+diff -Nur gcc-4.7.0-vanilla/configure gcc-4.7.0/configure
+--- gcc-4.7.0-vanilla/configure        2012-02-02 11:20:32.000000000 +0100
++++ gcc-4.7.0/configure        2012-05-18 10:53:11.645610347 +0200
+@@ -671,6 +671,7 @@
  CFLAGS
  CC
- target_subdir
+ EXTRA_CONFIGARGS_LIBJAVA
 +enable_esp
+ target_subdir
  host_subdir
  build_subdir
- build_libsubdir
-@@ -1459,6 +1460,11 @@
+@@ -749,6 +750,7 @@
+ enable_libquadmath
+ enable_libquadmath_support
+ enable_libada
++enable_esp
+ enable_libssp
+ enable_static_libjava
+ enable_bootstrap
+@@ -1467,6 +1469,11 @@
    --disable-libquadmath-support
                            disable libquadmath support for Fortran
    --enable-libada         build libada directory
-+  --enable-esp
-+                         Enable Stack protector, Position independent executable as
-+                         default if we have suppot for it when compiling
-+                         and link with -z relro and -z now as default.
-+                         Linux targets supported i*86, x86_64, powerpc, powerpc64, ia64 and arm
++  --enable-esp           Enable Stack protector, Position independent
++                          executable as default if we have suppot for it when
++                          compiling and link with -z relro and -z now as
++                          default. Linux targets supported i*86, x86_64,
++                          x86_x32, powerpc, powerpc64, ia64 and arm.
    --enable-libssp         build libssp directory
-   --enable-build-with-cxx build with C++ compiler instead of C compiler
-   --disable-ppl-version-check
-@@ -3040,6 +3046,25 @@
+   --enable-static-libjava[=ARG]
+                           build static libjava [default=no]
+@@ -2985,6 +2992,24 @@
    noconfigdirs="$noconfigdirs gnattools"
  fi
  
 +# Check whether --enable-esp was given and target have the support.
-+# Check whether --enable-esp or --disable-esp was given.
-+if test "${enable_esp+set}" = set; then
-+  enableval="$enable_esp"
-+
++# Check whether --enable-esp was given.
++if test "${enable_esp+set}" = set; then :
++  enableval=$enable_esp;
 +  case $target in
-+    i?86*-*-linux* | x86_64*-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
++    i?86*-*-linux* | x86_??*-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
 +      enable_esp=yes
 +      ;;
 +    *)
-+      { { echo "$as_me:$LINENO: error: *** --enable-esp is not supported on this $target target." >&5
-+echo "$as_me: error: *** --enable-esp is not supported on this $target target." >&2;}
-+   { (exit 1); exit 1; }; }
++      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** --enable-esp is not supported on this $target target." >&5
++$as_echo "$as_me: WARNING: *** --enable-esp is not supported on this $target target." >&2;}
 +      ;;
 +  esac
 +
-+fi;
++fi
++
 +
 +
  # Check whether --enable-libssp was given.
  if test "${enable_libssp+set}" = set; then :
    enableval=$enable_libssp; ENABLE_LIBSSP=$enableval
-@@ -14199,6 +14224,9 @@
-       *) stage1_cflags="-g -J" ;;
-     esac ;;
- esac
-+if test x$enable_esp = xyes; then
-+       stage1_cflags="$stage1_cflags -fno-stack-protector"
-+fi
- # This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
- if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
-diff -Nur gcc-4.6.0-vanilla/gcc/config/gnu-user.h gcc-4.6.0/gcc/config/gnu-user.h
---- gcc-4.6.0-vanilla/gcc/config/gnu-user.h    2011-01-12 15:29:14.000000000 +0100
-+++ gcc-4.6.0/gcc/config/gnu-user.h    2011-04-07 19:19:31.962715700 +0200
-@@ -41,7 +41,11 @@
-    provides part of the support for getting C++ file-scope static
-    object constructed before entering `main'.  */
-    
--#if defined HAVE_LD_PIE
-+#if defined (HAVE_LD_PIE) && defined (ENABLE_CRTBEGINTS)
-+#define GNU_USER_TARGET_STARTFILE_SPEC \
-+  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} crti.o%s \
-+   %{static:%{pie:crtbeginTS.o%s;:crtbeginT.o%s}} %{!static:%{shared|pie:crtbeginS.o%s;:crtbegin.o%s}}"
-+#elif defined (HAVE_LD_PIE) && ! defined (ENABLE_CRTBEGINTS)
- #define GNU_USER_TARGET_STARTFILE_SPEC \
-   "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
-    crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
-diff -Nur gcc-4.6.0-vanilla/gcc/config/rs6000/linux64.h gcc-4.6.0/gcc/config/rs6000/linux64.h
---- gcc-4.6.0-vanilla/gcc/config/rs6000/linux64.h      2011-03-07 08:50:23.000000000 +0100
-+++ gcc-4.6.0/gcc/config/rs6000/linux64.h      2011-04-07 19:19:26.658727069 +0200
-@@ -193,7 +193,7 @@
- #endif
- #define ASM_SPEC32 "-a32 \
--%{mrelocatable} %{mrelocatable-lib} %{fpic:-K PIC} %{fPIC:-K PIC} \
-+%{mrelocatable} %{mrelocatable-lib} %{fpic|fPIC|fpie|fPIE:-K PIC} \
- %{memb} %{!memb: %{msdata=eabi: -memb}} \
- %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
-     %{mcall-freebsd: -mbig} \
-diff -Nur gcc-4.6.0-vanilla/gcc/config/rs6000/sysv4.h gcc-4.6.0/gcc/config/rs6000/sysv4.h
---- gcc-4.6.0-vanilla/gcc/config/rs6000/sysv4.h        2011-03-07 08:50:23.000000000 +0100
-+++ gcc-4.6.0/gcc/config/rs6000/sysv4.h        2011-04-07 19:19:31.963715695 +0200
-@@ -800,7 +800,12 @@
- %{!mnewlib: %{pthread:-lpthread} %{shared:-lc} \
- %{!shared: %{profile:-lc_p} %{!profile:-lc}}}"
--#ifdef HAVE_LD_PIE
-+#if defined (HAVE_LD_PIE) && defined (ENABLE_CRTBEGINTS)
-+#define STARTFILE_LINUX_SPEC "\
-+%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
-+%{mnewlib:ecrti.o%s;:crti.o%s} \
-+%{static:%{pie:crtbeginTS.o%s;:crtbeginT.o%s}} %{!static:%{shared|pie:crtbeginS.o%s;:crtbegin.o%s}}"
-+#elif defined (HAVE_LD_PIE) && ! defined (ENABLE_CRTBEGINTS)
- #define       STARTFILE_LINUX_SPEC "\
- %{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
- %{mnewlib:ecrti.o%s;:crti.o%s} \
-diff -Nur gcc-4.6.0-vanilla/gcc/config.in gcc-4.6.0/gcc/config.in
---- gcc-4.6.0-vanilla/gcc/config.in    2011-03-25 18:07:00.000000000 +0100
-+++ gcc-4.6.0/gcc/config.in    2011-04-07 19:18:10.478890819 +0200
-@@ -58,6 +58,12 @@
- #endif
-+/* Define to 1 to enable crtbeginTS.o. */
-+#ifndef USED_FOR_TARGET
-+#undef ENABLE_CRTBEGINTS
-+#endif
-+
-+
- /* Define to 1 to specify that we are using the BID decimal floating point
-    format instead of DPD */
- #ifndef USED_FOR_TARGET
-@@ -77,6 +83,12 @@
- #endif
+@@ -14422,6 +14447,11 @@
+   CFLAGS="$saved_CFLAGS"
+ fi
  
-+/* Define to 1 to enable esp. */
-+#ifndef USED_FOR_TARGET
-+#undef ENABLE_ESP
-+#endif
-+
-+
- /* Define to 1 to enable fixed-point arithmetic extension to C. */
- #ifndef USED_FOR_TARGET
- #undef ENABLE_FIXED_POINT
-diff -Nur gcc-4.6.0-vanilla/gcc/configure gcc-4.6.0/gcc/configure
---- gcc-4.6.0-vanilla/gcc/configure    2011-02-28 16:36:37.000000000 +0100
-+++ gcc-4.6.0/gcc/configure    2011-04-07 19:17:55.388923340 +0200
-@@ -677,6 +677,8 @@
- HOST_LIBS
- GGC
- libgcc_visibility
-+enable_esp
-+enable_crtbeginTS
- gcc_cv_readelf
- gcc_cv_objdump
- ORIGINAL_NM_FOR_TARGET
-@@ -25608,6 +25610,50 @@
-     ;;
- esac
-+echo "$as_me:$LINENO: checking linker -z now support" >&5
-+echo $ECHO_N "checking linker -z now support... $ECHO_C" >&6
-+if test "${gcc_cv_ld_now+set}" = set; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  gcc_cv_ld_now=no
-+if test $in_tree_ld = yes ; then
-+  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
-+     && test $in_tree_ld_is_elf = yes; then
-+    gcc_cv_ld_now=yes
-+  fi
-+elif test x$gcc_cv_ld != x; then
-+       # Check if linker supports -z now options
-+       if $gcc_cv_ld --help 2>/dev/null | grep now > /dev/null; then
-+               gcc_cv_ld_now=yes
-+       fi
-+fi
-+
-+fi
-+echo "$as_me:$LINENO: result: $gcc_cv_ld_now" >&5
-+echo "${ECHO_T}$gcc_cv_ld_now" >&6
-+
-+echo "$as_me:$LINENO: checking linker -z relro support" >&5
-+echo $ECHO_N "checking linker -z relro support... $ECHO_C" >&6
-+if test "${gcc_cv_ld_relro+set}" = set; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  gcc_cv_ld_relro=no
-+if test $in_tree_ld = yes ; then
-+  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
-+     && test $in_tree_ld_is_elf = yes; then
-+    gcc_cv_ld_relro=yes
-+  fi
-+elif test x$gcc_cv_ld != x; then
-+       # Check if linker supports -z relro and -z norelro options
-+       if $gcc_cv_ld --help 2>/dev/null | grep relro > /dev/null; then
-+               gcc_cv_ld_relro=yes
-+       fi
-+fi
-+
++# Disable -fstack-protector on stage1
++if test x$enable_esp = xyes; then
++  stage1_cflags="$stage1_cflags -fno-stack-protector"
 +fi
-+echo "$as_me:$LINENO: result: $gcc_cv_ld_relro" >&5
-+echo "${ECHO_T}$gcc_cv_ld_relro" >&6
 +
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --build-id support" >&5
- $as_echo_n "checking linker --build-id support... " >&6; }
- if test "${gcc_cv_ld_buildid+set}" = set; then :
-@@ -25792,6 +25838,74 @@
  
- fi
  
-+if test x$enable_esp = xyes ; then
-+case $target in
-+              ia64*-*-linux*)
-+                      if test x$gcc_cv_ld_now = xyes; then
-+                              enable_esp_ld=yes
-+                      else
-+                              enable_esp_ld=no
-+                      fi
-+                      ;;
-+              *-*-linux*)
-+                      if test x$gcc_cv_ld_relro = xyes && test x$gcc_cv_ld_now = xyes; then
-+                              enable_esp_ld=yes
-+                      else
-+                              enable_esp_ld=no
-+                      fi
-+                      ;;
-+              *)
-+                      enable_esp_ld=no
-+                      ;;
-+      esac
-+else
-+      enable_espf_ld=no
-+fi
-+if test x$enable_esp_ld = xyes; then
-+
-+cat >>confdefs.h <<\_ACEOF
-+#define ENABLE_ESP 1
-+_ACEOF
-+
-+fi
-+
-+if test x$enable_esp = xyes && test x$enable_esp_ld = xno; then
-+      { { echo "$as_me:$LINENO: error: *** --enable-esp is not supported. You don't have -z,relro or -z,now support in the linker." >&5
-+echo "$as_me: error: *** --enable-esp is not supported. You don't have -z,relro or -z,now support in the linker." >&2;}
-+   { (exit 1); exit 1; }; }
-+fi
-+
-+echo "$as_me:$LINENO: checking for crtbeginTS.o support" >&5
-+echo $ECHO_N "checking for crtbeginTS.o support... $ECHO_C" >&6
-+if test "${enable_crtbeginTS+set}" = set; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+if test x$enable_esp = xyes ; then
-+      case "$target" in
-+        ia64*-*-linux*)
-+                      enable_crtbeginTS=no ;;
-+      *-*-linux*)
-+              if test x$gcc_cv_ld_pie = xyes && test x$lt_cv_prog_compiler_static_works = xyes; then
-+                      enable_crtbeginTS=yes
-+      fi
-+              ;;
-+        *) enable_crtbeginTS=no ;;
-+    esac
-+fi
-+
-+fi
-+echo "$as_me:$LINENO: result: $enable_crtbeginTS" >&5
-+echo "${ECHO_T}$enable_crtbeginTS" >&6
-+
-+if test x$enable_crtbeginTS = xyes; then
-+
-+cat >>confdefs.h <<\_ACEOF
-+#define ENABLE_CRTBEGINTS 1
-+_ACEOF
-+
-+fi
-+
- # Check if TFmode long double should be used by default or not.
- # Some glibc targets used DFmode long double, but with glibc 2.4
- # and later they can use TFmode.
-diff -Nur gcc-4.6.0-vanilla/gcc/cp/lang-specs.h gcc-4.6.0/gcc/cp/lang-specs.h
---- gcc-4.6.0-vanilla/gcc/cp/lang-specs.h      2011-03-06 17:27:57.000000000 +0100
-+++ gcc-4.6.0/gcc/cp/lang-specs.h      2011-04-07 19:19:04.828773916 +0200
-@@ -47,7 +47,7 @@
-               %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\
-       cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\
-             %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
--      %(cc1_options) %2\
-+      %(cc1_options) %(esp_options) %2\
-       %{!fsyntax-only:%{!fdump-ada-spec*:-o %g.s %{!o*:--output-pch=%i.gch}\
-         %W{o*:--output-pch=%*}}%V}}}}",
-      CPLUSPLUS_CPP_SPEC, 0, 0},
-@@ -58,7 +58,7 @@
-               %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\
-       cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\
-             %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
--      %(cc1_options) %2\
-+      %(cc1_options) %(esp_options) %2\
-        %{!fsyntax-only:%(invoke_as)}}}}",
-      CPLUSPLUS_CPP_SPEC, 0, 0},
-   {".ii", "@c++-cpp-output", 0, 0, 0},
-diff -Nur gcc-4.6.0-vanilla/gcc/esp.h gcc-4.6.0/gcc/esp.h
---- gcc-4.6.0-vanilla/gcc/esp.h        1970-01-01 01:00:00.000000000 +0100
-+++ gcc-4.6.0/gcc/esp.h        2011-04-07 19:19:14.329753502 +0200
+ # Enable --enable-checking in stage1 of the compiler.
+diff -Nur gcc-4.7.0-vanilla/gcc/esp.h gcc-4.7.0/gcc/esp.h
+--- gcc-4.7.0-vanilla/gcc/esp.h        1970-01-01 01:00:00.000000000 +0100
++++ gcc-4.7.0/gcc/esp.h        2012-05-18 10:54:28.787077373 +0200
 @@ -0,0 +1,145 @@
 +/* License terms see GNU GENERAL PUBLIC LICENSE Version 3.
-+ * Version 20100527.1
++ * Version 20120403.2
 + * Magnus Granberg (Zorry) <zorry@gentoo.org>  */
 +#ifndef GCC_ESP_H
 +#define GCC_ESP_H
@@ -309,7 +85,7 @@ diff -Nur gcc-4.6.0-vanilla/gcc/esp.h gcc-4.6.0/gcc/esp.h
 +      ESP_CC1_SPEC is added to CC1_SPEC.
 +      ESP_CC1_STRICT_OVERFLOW_SPEC is added so we don't disable the strict-overflow check.
 +      ESP_LINK_PIE_CHECK_SPEC check for -pie, -p, -pg, -profile and -static.
-+      ENABLE_CRTBEGINTS add support for crtbeginTS.o, build -static with -fPIE or -fpie.
++      ENABLE_CRTBEGINP add support for crtbeginP.o, build -static with -fPIE or -fpie.
 +*/
 +#ifdef ENABLE_ESP
 +      
@@ -345,7 +121,7 @@ diff -Nur gcc-4.6.0-vanilla/gcc/esp.h gcc-4.6.0/gcc/esp.h
 +
 +      /*  This will add -fstack-protector-all if we don't have -nostdlib -nodefaultlibs -fno-stack-protector -fstack-protector
 +              -fstack-protector-all and we have EFAULT_SSP or EFAULT_PIE_SSP defined.  */
-+      #if defined ( EFAULT_SSP ) || defined ( EFAULT_PIE_SSP )
++      #if ( defined ( EFAULT_SSP ) || defined ( EFAULT_PIE_SSP ) ) && defined ( ENABLE_ESP_SSP )
 +              #define ESP_OPTIONS_SSP_SPEC \
 +                      "%{!D__KERNEL__:%{!nostdlib:%{!nodefaultlibs: %{!fno-stack-protector: \
 +                      %{!fstack-protector:%{!fstack-protector-all:-fstack-protector-all}}}}}}"
@@ -358,8 +134,8 @@ diff -Nur gcc-4.6.0-vanilla/gcc/esp.h gcc-4.6.0/gcc/esp.h
 +
 +              /*  This will add -fPIE if we don't have -pie -fpic -fPIC -fpie -fPIE -fno-pic -fno-PIC -fno-pie -fno-PIE -shared -static
 +                      -nostdlib -nostartfiles.  */
-+              /*  With ENABLE_CRTBEGINTS we don't need to check for -static  */
-+              #ifdef ENABLE_CRTBEGINTS
++              /*  With ENABLE_CRTBEGINP we don't need to check for -static  */
++              #ifdef ENABLE_CRTBEGINP
 +                      #define ESP_OPTIONS_PIE_SPEC \
 +                              "%{!pie: %{!fpic:%{!fPIC:%{!fpie:%{!fPIE: %{!fno-pic:%{!fno-PIC:%{!fno-pie:%{!fno-PIE: \
 +                              %{!shared: %{!nostdlib: %{!nostartfiles:-fPIE}} } }}}} }}}} }"
@@ -371,9 +147,9 @@ diff -Nur gcc-4.6.0-vanilla/gcc/esp.h gcc-4.6.0/gcc/esp.h
 +
 +              /*  This will add -pie if we don't have -pie -A -fno-pic -fno-PIC -fno-pie -fno-PIE -shared -static -r -nostdlib 
 +                      -nostartfiles  */
-+              /*  With ENABLE_CRTBEGINTS we don't need to check for -static
++              /*  With ENABLE_CRTBEGINP we don't need to check for -static
 +                      and we add -pie only to get the start and endfiles. -pie will not go to the linker. */
-+              #ifdef ENABLE_CRTBEGINTS
++              #ifdef ENABLE_CRTBEGINP
 +                      #define ESP_LINK_PIE_SPEC \
 +                              "%{!pie:%{!A:%{!fno-pie:%{!fno-PIE:%{!fno-pic:%{!fno-PIC:%{!shared:%{!r: \
 +                              %{!nostdlib:%{!nostartfiles:-pie}}}}}}}}}}"
@@ -385,8 +161,8 @@ diff -Nur gcc-4.6.0-vanilla/gcc/esp.h gcc-4.6.0/gcc/esp.h
 +              
 +              /*  This will check if -pie is set when (-static) -pg -p -profile. If set it will make gcc print out
 +                      "-pie and (static)|pg|p|profile are incompatible when linking"  */
-+              /*  With ENABLE_CRTBEGINTS we don't need to check for -static  */
-+              #ifdef ENABLE_CRTBEGINTS
++              /*  With ENABLE_CRTBEGINP we don't need to check for -static  */
++              #ifdef ENABLE_CRTBEGINP
 +                      #define ESP_LINK_PIE_CHECK_SPEC \
 +                              "%{pie:%{pg|p|profile:%e-pie and -pg|p|profile are incompatible when linking}}"
 +              #else
@@ -395,7 +171,7 @@ diff -Nur gcc-4.6.0-vanilla/gcc/esp.h gcc-4.6.0/gcc/esp.h
 +              #endif
 +
 +              /*  We don't pass -pie to the linker when -static.  */
-+              #ifdef ENABLE_CRTBEGINTS
++              #ifdef ENABLE_CRTBEGINP
 +                      #define LINK_PIE_SPEC "%{!static:%{pie:-pie}} %(esp_link)"
 +              #else
 +                      #define LINK_PIE_SPEC "%{pie:-pie} %(esp_link)"
@@ -439,18 +215,318 @@ diff -Nur gcc-4.6.0-vanilla/gcc/esp.h gcc-4.6.0/gcc/esp.h
 +
 +#endif
 +#endif /* End GCC_ESP_H */
-diff -Nur gcc-4.6.0-vanilla/gcc/gcc.c gcc-4.6.0/gcc/gcc.c
---- gcc-4.6.0-vanilla/gcc/gcc.c        2011-02-23 03:04:43.000000000 +0100
-+++ gcc-4.6.0/gcc/gcc.c        2011-04-07 19:19:04.828773916 +0200
-@@ -44,6 +44,7 @@
- #include "flags.h"
+diff -Nur gcc-4.7.0-vanilla/gcc/common.opt gcc-4.7.0/gcc/common.opt
+--- gcc-4.7.0-vanilla/gcc/common.opt   2012-02-01 10:20:32.000000000 +0100
++++ gcc-4.7.0/gcc/common.opt   2012-05-18 10:56:19.708624714 +0200
+@@ -2268,6 +2268,9 @@
+ nodefaultlibs
+ Driver
++nopie
++Driver
++
+ nostartfiles
+ Driver
+diff -Nur gcc-4.7.0-vanilla/gcc/config/gnu-user.h gcc-4.7.0/gcc/config/gnu-user.h
+--- gcc-4.7.0-vanilla/gcc/config/gnu-user.h    2011-04-28 18:49:49.000000000 +0200
++++ gcc-4.7.0/gcc/config/gnu-user.h    2012-05-18 10:56:49.987593058 +0200
+@@ -41,7 +41,11 @@
+    provides part of the support for getting C++ file-scope static
+    object constructed before entering `main'.  */
+    
+-#if defined HAVE_LD_PIE
++#if defined (HAVE_LD_PIE) && defined (ENABLE_CRTBEGINP)
++#define GNU_USER_TARGET_STARTFILE_SPEC \
++  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} crti.o%s \
++   %{static:%{pie:crtbeginP.o%s;:crtbeginT.o%s}} %{!static:%{shared|pie:crtbeginS.o%s;:crtbegin.o%s}}"
++#elif defined (HAVE_LD_PIE) && ! defined (ENABLE_CRTBEGINP)
+ #define GNU_USER_TARGET_STARTFILE_SPEC \
+   "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
+    crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
+diff -Nur gcc-4.7.0-vanilla/gcc/config/rs6000/linux64.h gcc-4.7.0/gcc/config/rs6000/linux64.h
+--- gcc-4.7.0-vanilla/gcc/config/rs6000/linux64.h      2012-03-12 17:16:51.000000000 +0100
++++ gcc-4.7.0/gcc/config/rs6000/linux64.h      2012-05-18 10:57:30.248880643 +0200
+@@ -180,7 +180,7 @@
+ #endif
+ #define ASM_SPEC32 "-a32 \
+-%{mrelocatable} %{mrelocatable-lib} %{fpic:-K PIC} %{fPIC:-K PIC} \
++%{mrelocatable} %{mrelocatable-lib} %{fpic|fPIC|fpie|fPIE:-K PIC} \
+ %{memb} %{!memb: %{msdata=eabi: -memb}} \
+ %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
+     %{mcall-freebsd: -mbig} \
+diff -Nur gcc-4.7.0-vanilla/gcc/config/rs6000/sysv4.h gcc-4.7.0/gcc/config/rs6000/sysv4.h
+--- gcc-4.7.0-vanilla/gcc/config/rs6000/sysv4.h        2011-04-11 20:46:05.000000000 +0200
++++ gcc-4.7.0/gcc/config/rs6000/sysv4.h        2012-05-18 10:56:49.988593089 +0200
+@@ -785,7 +785,12 @@
+ %{!mnewlib: %{pthread:-lpthread} %{shared:-lc} \
+ %{!shared: %{profile:-lc_p} %{!profile:-lc}}}"
+-#ifdef HAVE_LD_PIE
++#if defined (HAVE_LD_PIE) && defined (ENABLE_CRTBEGINP)
++#define STARTFILE_LINUX_SPEC "\
++%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
++%{mnewlib:ecrti.o%s;:crti.o%s} \
++%{static:%{pie:crtbeginP.o%s;:crtbeginT.o%s}} %{!static:%{shared|pie:crtbeginS.o%s;:crtbegin.o%s}}"
++#elif defined (HAVE_LD_PIE) && ! defined (ENABLE_CRTBEGINP)
+ #define       STARTFILE_LINUX_SPEC "\
+ %{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
+ %{mnewlib:ecrti.o%s;:crti.o%s} \
+diff -Nur gcc-4.7.0-vanilla/gcc/config.in gcc-4.7.0/gcc/config.in
+--- gcc-4.7.0-vanilla/gcc/config.in    2012-03-22 08:37:39.000000000 +0100
++++ gcc-4.7.0/gcc/config.in    2012-05-18 10:53:34.954355771 +0200
+@@ -58,6 +58,12 @@
+ #endif
++/* Define to 1 to enable crtbeginP.o. */
++#ifndef USED_FOR_TARGET
++#undef ENABLE_CRTBEGINP
++#endif
++
++
+ /* Define to 1 to specify that we are using the BID decimal floating point
+    format instead of DPD */
+ #ifndef USED_FOR_TARGET
+@@ -77,6 +83,18 @@
+ #endif
++/* Define to 1 to enable esp. */
++#ifndef USED_FOR_TARGET
++#undef ENABLE_ESP
++#endif
++
++
++/* Define to 1 to enable esp. */
++#ifndef USED_FOR_TARGET
++#undef ENABLE_ESP_SSP
++#endif
++
++
+ /* Define to 1 to enable fixed-point arithmetic extension to C. */
+ #ifndef USED_FOR_TARGET
+ #undef ENABLE_FIXED_POINT
+diff -Nur gcc-4.7.0-vanilla/gcc/configure gcc-4.7.0/gcc/configure
+--- gcc-4.7.0-vanilla/gcc/configure    2012-03-08 14:54:54.000000000 +0100
++++ gcc-4.7.0/gcc/configure    2012-05-18 10:53:11.651610539 +0200
+@@ -600,6 +600,8 @@
+ ac_subst_vars='LTLIBOBJS
+ LIBOBJS
++enable_esp
++enable_crtbeginP
+ enable_plugin
+ pluginlibs
+ CLOOGINC
+@@ -917,6 +919,7 @@
+ enable_plugin
+ enable_libquadmath_support
+ with_linker_hash_style
++enable_esp
+ '
+       ac_precious_vars='build_alias
+ host_alias
+@@ -1630,6 +1633,11 @@
+   --enable-plugin         enable plugin support
+   --disable-libquadmath-support
+                           disable libquadmath support for Fortran
++  --enable-esp            Enable Stack protector, Position independent
++                          executable and Fortify_sources as default if we have
++                          suppot for it when compiling and link -z now as
++                          default. Linux targets supported i*86, x86_64,
++                          x86_x32, powerpc, powerpc64, ia64, mips and arm
+ Optional Packages:
+   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+@@ -27404,6 +27412,113 @@
+ fi
++# --------------
++# Esp checks
++# --------------
++
++# Check whether --enable-esp was given and target have the support.
++# Check whether --enable-esp was given.
++if test "${enable_esp+set}" = set; then :
++  enableval=$enable_esp; set_enable_esp=$enableval
++else
++  set_enable_esp=no
++fi
++
++if test $set_enable_esp = yes ; then
++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $target support esp" >&5
++$as_echo_n "checking if $target support esp... " >&6; }
++if test $set_enable_esp = yes ; then
++  case "$target" in
++    i?86*-*-linux* | x86_??*-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux* | mips*-*-linux*)
++      enable_esp=yes
++
++$as_echo "#define ENABLE_ESP 1" >>confdefs.h
++
++      ;;
++    *)
++      enable_esp=no
++      ;;
++  esac
++else
++ enable_esp=no
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_esp" >&5
++$as_echo "$enable_esp" >&6; }
++fi
++
++if test $enable_esp = yes ; then
++
++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can default to use -fstack-protector" >&5
++$as_echo_n "checking if we can default to use -fstack-protector... " >&6; }
++  ssp_link_test=no
++  if test x$gcc_cv_libc_provides_ssp = xyes && test x$set_have_as_tls = yes; then
++    if $EGREP '^      *#[     ]*define[       ]+__UCLIBC__[   ]+1' \
++       $target_header_dir/features.h > /dev/null; then
++      if test -f $target_header_dir/bits/uClibc_config.h && \
++       $EGREP '^      *#[     ]*define[       ]+__UCLIBC_SUBLEVEL__[  ]+([3-9][2-9]|[4-9][0-9])' \
++       $target_header_dir/bits/uClibc_config.h > /dev/null && \
++       $EGREP '^      *#[     ]*define[       ]+__UCLIBC_HAS_TLS__[   ]+1' \
++       $target_header_dir/bits/uClibc_config.h > /dev/null; then
++      ssp_link_test=yes
++      fi
++    else
++      ssp_link_test=yes
++    fi
++  fi
++  if test x$ssp_link_test=xyes ; then
++    saved_CFLAGS="$CFLAGS"
++    CFLAGS="$CFLAGS -O2 -fstack-protector -Werror"
++    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_link "$LINENO"; then :
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }; enable_esp_ssp=yes
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }; enable_esp_ssp=no
++fi
++rm -f core conftest.err conftest.$ac_objext \
++    conftest$ac_exeext conftest.$ac_ext
++    CFLAGS="$saved_CFLAGS"
++  else
++    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++    enable_esp_ssp=no
++  fi
++  if test $enable_esp_ssp = yes ; then
++
++$as_echo "#define ENABLE_ESP_SSP 1" >>confdefs.h
++
++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking checking for crtbeginP.o support" >&5
++$as_echo_n "checking checking for crtbeginP.o support... " >&6; }
++      case "$target" in
++      ia64*-*-linux*)
++          enable_crtbeginP=no ;;
++        *-*-linux*)
++          if test x$gcc_cv_ld_pie = xyes && test x$lt_cv_prog_compiler_static_works = xyes; then
++            enable_crtbeginP=yes
++
++$as_echo "#define ENABLE_CRTBEGINP 1" >>confdefs.h
++
++        fi
++          ;;
++      *) enable_crtbeginP=no ;;
++      esac
++    fi
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_crtbeginP" >&5
++$as_echo "$enable_crtbeginP" >&6; }
++
++fi
++
+ # Configure the subdirectories
+ # AC_CONFIG_SUBDIRS($subdirs)
+diff -Nur gcc-4.7.0-vanilla/gcc/cp/lang-specs.h gcc-4.7.0/gcc/cp/lang-specs.h
+--- gcc-4.7.0-vanilla/gcc/cp/lang-specs.h      2011-03-06 17:27:57.000000000 +0100
++++ gcc-4.7.0/gcc/cp/lang-specs.h      2012-05-18 10:54:40.279444906 +0200
+@@ -47,7 +47,7 @@
+               %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\
+       cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\
+             %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
+-      %(cc1_options) %2\
++      %(cc1_options) %(esp_options) %2\
+       %{!fsyntax-only:%{!fdump-ada-spec*:-o %g.s %{!o*:--output-pch=%i.gch}\
+         %W{o*:--output-pch=%*}}%V}}}}",
+      CPLUSPLUS_CPP_SPEC, 0, 0},
+@@ -58,7 +58,7 @@
+               %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\
+       cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\
+             %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
+-      %(cc1_options) %2\
++      %(cc1_options) %(esp_options) %2\
+        %{!fsyntax-only:%(invoke_as)}}}}",
+      CPLUSPLUS_CPP_SPEC, 0, 0},
+   {".ii", "@c++-cpp-output", 0, 0, 0},
+diff -Nur gcc-4.7.0-vanilla/gcc/doc/invoke.texi gcc-4.7.0/gcc/doc/invoke.texi
+--- gcc-4.7.0-vanilla/gcc/doc/invoke.texi      2012-03-14 00:18:07.000000000 +0100
++++ gcc-4.7.0/gcc/doc/invoke.texi      2012-05-18 10:56:59.156886298 +0200
+@@ -8479,6 +8479,11 @@
+ @opindex fstack-protector-all
+ Like @option{-fstack-protector} except that all functions are protected.
++NOTE: When --enable-esp this option is enabled by default 
++for C, C++, ObjC, ObjC++, if neither @option{-fno-stack-protector}
++or @option{-nostdlib} or @option{-nodefaultlibs} or 
++@option{-fstack-protector} are found.
++
+ @item -fsection-anchors
+ @opindex fsection-anchors
+ Try to reduce the number of symbolic address calculations by using
+@@ -9457,6 +9462,12 @@
+ that were used to generate code (@option{-fpie}, @option{-fPIE},
+ or model suboptions) when you specify this option.
++NOTE: When --enable-esp this option is enabled by default
++for C, C++, ObjC, ObjC++, if neither @option{-fno-pie} or @option{-fno-PIE}
++or @option{-fno-pic} or @option{-fno-PIC} or @option{-nostdlib} or
++@option{-nostartfiles} or @option{-shared} or @option{-pg} or @option{-p}
++are found.
++
+ @item -rdynamic
+ @opindex rdynamic
+ Pass the flag @option{-export-dynamic} to the ELF linker, on targets
+@@ -19125,6 +19136,11 @@
+ @code{__pie__} and @code{__PIE__}.  The macros have the value 1
+ for @option{-fpie} and 2 for @option{-fPIE}.
++NOTE: When --enable-esp this option is enabled by default
++for C, C++, ObjC, ObjC++, if neither @option{-fno-pie} or @option{-fno-PIE}
++or @option{-fno-pic} or @option{-fno-PIC} or @option{-nostdlib} or
++@option{-nostartfiles} or @option{-shared} are found.
++
+ @item -fno-jump-tables
+ @opindex fno-jump-tables
+ Do not use jump tables for switch statements even where it would be
+diff -Nur gcc-4.7.0-vanilla/gcc/gcc.c gcc-4.7.0/gcc/gcc.c
+--- gcc-4.7.0-vanilla/gcc/gcc.c        2012-02-28 18:31:38.000000000 +0100
++++ gcc-4.7.0/gcc/gcc.c        2012-05-18 10:54:40.279444906 +0200
+@@ -45,6 +45,7 @@
  #include "opts.h"
+ #include "params.h"
  #include "vec.h"
 +#include "esp.h" /* for --enable-esp support */
+ #include "filenames.h"
  
  /* By default there is no special suffix for target executables.  */
- /* FIXME: when autoconf is fixed, remove the host check - dj */
-@@ -690,7 +691,9 @@
+@@ -705,7 +706,9 @@
  
  static const char *asm_debug;
  static const char *cpp_spec = CPP_SPEC;
@@ -460,7 +536,7 @@ diff -Nur gcc-4.6.0-vanilla/gcc/gcc.c gcc-4.6.0/gcc/gcc.c
  static const char *cc1plus_spec = CC1PLUS_SPEC;
  static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC;
  static const char *link_ssp_spec = LINK_SSP_SPEC;
-@@ -751,7 +754,7 @@
+@@ -767,7 +770,7 @@
  static const char *cpp_options =
  "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
   %{f*} %{g*:%{!g0:%{g*} %{!fno-working-directory:-fworking-directory}}} %{O*}\
@@ -469,7 +545,7 @@ diff -Nur gcc-4.6.0-vanilla/gcc/gcc.c gcc-4.6.0/gcc/gcc.c
  
  /* This contains cpp options which are not passed when the preprocessor
     output will be used by another program.  */
-@@ -925,9 +928,9 @@
+@@ -946,9 +949,9 @@
        %{save-temps*|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
          %(cpp_options) -o %{save-temps*:%b.i} %{!save-temps*:%g.i} \n\
            cc1 -fpreprocessed %{save-temps*:%b.i} %{!save-temps*:%g.i} \
@@ -481,7 +557,7 @@ diff -Nur gcc-4.6.0-vanilla/gcc/gcc.c gcc-4.6.0/gcc/gcc.c
        %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 1},
    {"-",
     "%{!E:%e-E or -x required when input is from standard input}\
-@@ -950,7 +953,7 @@
+@@ -971,7 +974,7 @@
                      %W{o*:--output-pch=%*}}%V}}}}}}", 0, 0, 0},
    {".i", "@cpp-output", 0, 0, 0},
    {"@cpp-output",
@@ -490,8 +566,8 @@ diff -Nur gcc-4.6.0-vanilla/gcc/gcc.c gcc-4.6.0/gcc/gcc.c
    {".s", "@assembler", 0, 0, 0},
    {"@assembler",
     "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},
-@@ -1203,18 +1206,23 @@
-   INIT_STATIC_SPEC ("sysroot_hdrs_suffix_spec",       &sysroot_hdrs_suffix_spec),
+@@ -1225,18 +1228,23 @@
+   INIT_STATIC_SPEC ("self_spec",              &self_spec),
  };
  
 -#ifdef EXTRA_SPECS            /* additional specs needed */
@@ -518,7 +594,7 @@ diff -Nur gcc-4.6.0-vanilla/gcc/gcc.c gcc-4.6.0/gcc/gcc.c
  
  /* List of dynamically allocates specs that have been defined so far.  */
  
-@@ -1306,7 +1314,6 @@
+@@ -1328,7 +1336,6 @@
    if (verbose_flag)
      fnotice (stderr, "Using built-in specs.\n");
  
@@ -526,7 +602,7 @@ diff -Nur gcc-4.6.0-vanilla/gcc/gcc.c gcc-4.6.0/gcc/gcc.c
    extra_specs = XCNEWVEC (struct spec_list, ARRAY_SIZE (extra_specs_1));
  
    for (i = ARRAY_SIZE (extra_specs_1) - 1; i >= 0; i--)
-@@ -1319,7 +1326,6 @@
+@@ -1341,7 +1348,6 @@
        sl->ptr_spec = &sl->ptr;
        next = sl;
      }
@@ -534,7 +610,7 @@ diff -Nur gcc-4.6.0-vanilla/gcc/gcc.c gcc-4.6.0/gcc/gcc.c
  
    for (i = ARRAY_SIZE (static_specs) - 1; i >= 0; i--)
      {
-@@ -6418,6 +6424,12 @@
+@@ -6449,6 +6455,12 @@
      gcc_exec_prefix = concat (gcc_exec_prefix, spec_machine, dir_separator_str,
                              spec_version, dir_separator_str, NULL);
  
@@ -547,14 +623,14 @@ diff -Nur gcc-4.6.0-vanilla/gcc/gcc.c gcc-4.6.0/gcc/gcc.c
    /* Now we have the specs.
       Set the `valid' bits for switches that match anything in any spec.  */
  
-diff -Nur gcc-4.6.0-vanilla/gcc/Makefile.in gcc-4.6.0/gcc/Makefile.in
---- gcc-4.6.0-vanilla/gcc/Makefile.in  2011-01-26 05:19:58.000000000 +0100
-+++ gcc-4.6.0/gcc/Makefile.in  2011-04-07 19:18:24.186861296 +0200
-@@ -642,6 +642,14 @@
- INHIBIT_LIBC_CFLAGS = -Dinhibit_libc
+diff -Nur gcc-4.7.0-vanilla/gcc/Makefile.in gcc-4.7.0/gcc/Makefile.in
+--- gcc-4.7.0-vanilla/gcc/Makefile.in  2012-03-07 11:59:56.000000000 +0100
++++ gcc-4.7.0/gcc/Makefile.in  2012-05-18 10:54:00.275165546 +0200
+@@ -247,6 +247,14 @@
+ endif
  endif
  
-+# We don't want to compile the compiler with -fPIE.
++# We don't want to compile the compiler with -fPIE, it make PCH fail.
 +enable_esp = @enable_esp@
 +ifeq ($(enable_esp),yes)
 +ESP_NOPIE_CFLAGS = -fno-PIE
@@ -562,32 +638,10 @@ diff -Nur gcc-4.6.0-vanilla/gcc/Makefile.in gcc-4.6.0/gcc/Makefile.in
 +ESP_NOPIE_CFLAGS=
 +endif
 +
- # Options to use when compiling libgcc2.a.
- #
- LIBGCC2_DEBUG_CFLAGS = -g
-@@ -662,7 +670,7 @@
- CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
-   -finhibit-size-directive -fno-inline -fno-exceptions \
-   -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
--  -fno-stack-protector \
-+  -fno-stack-protector $(ESP_NOPIE_CFLAGS) \
-   $(INHIBIT_LIBC_CFLAGS)
- # Additional sources to handle exceptions; overridden by targets as needed.
-@@ -693,6 +701,12 @@
- # The rules for compiling them should be in the t-* file for the machine.
- EXTRA_PARTS = @extra_parts@
-+# We add crtbeginTS.o to the EXTRA_PARTS list if enable_crtbeginTS = yes
-+enable_crtbeginTS = @enable_crtbeginTS@
-+ifeq ($(enable_crtbeginTS),yes)
-+EXTRA_PARTS += crtbeginTS.o
-+endif
-+
- # List of extra object files that should be compiled and linked with
- # compiler proper (cc1, cc1obj, cc1plus).
- EXTRA_OBJS = @extra_objs@
-@@ -996,7 +1010,7 @@
+ # -------------------------------------------
+ # Programs which operate on the build machine
+ # -------------------------------------------
+@@ -975,12 +983,13 @@
  
  # This is the variable actually used when we compile. If you change this,
  # you probably want to update BUILD_CFLAGS in configure.ac
@@ -596,41 +650,26 @@ diff -Nur gcc-4.6.0-vanilla/gcc/Makefile.in gcc-4.6.0/gcc/Makefile.in
    $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@
  
  # The C++ version.
-@@ -1920,9 +1934,10 @@
-       echo LIBGCC_SYNC = '$(LIBGCC_SYNC)' >> tmp-libgcc.mvars
-       echo LIBGCC_SYNC_CFLAGS = '$(LIBGCC_SYNC_CFLAGS)' >> tmp-libgcc.mvars
-       echo CRTSTUFF_CFLAGS = '$(CRTSTUFF_CFLAGS)' >> tmp-libgcc.mvars
--      echo CRTSTUFF_T_CFLAGS = '$(CRTSTUFF_T_CFLAGS)' >> tmp-libgcc.mvars
-+      echo CRTSTUFF_T_CFLAGS = '$(CRTSTUFF_T_CFLAGS) $(ESP_NOPIE_CFLAGS)' >> tmp-libgcc.mvars
-       echo CRTSTUFF_T_CFLAGS_S = '$(CRTSTUFF_T_CFLAGS_S)' >> tmp-libgcc.mvars
+-ALL_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) $(INTERNAL_CFLAGS) \
+-  $(COVERAGE_FLAGS) $(NOEXCEPTION_FLAGS) $(WARN_CXXFLAGS) @DEFS@
++ALL_CXXFLAGS = $(ESP_NOPIE_CFLAGS) $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) \
++  $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(NOEXCEPTION_FLAGS) \
++  $(WARN_CXXFLAGS) @DEFS@
+ # Likewise.  Put INCLUDES at the beginning: this way, if some autoconf macro
+ # puts -I options in CPPFLAGS, our include files in the srcdir will always
+@@ -1815,6 +1824,8 @@
+       echo GCC_CFLAGS = '$(GCC_CFLAGS)' >> tmp-libgcc.mvars
+       echo INHIBIT_LIBC_CFLAGS = '$(INHIBIT_LIBC_CFLAGS)' >> tmp-libgcc.mvars
        echo TARGET_SYSTEM_ROOT = '$(TARGET_SYSTEM_ROOT)' >> tmp-libgcc.mvars
-+      echo enable_crtbeginTS = '$(enable_crtbeginTS)' >> tmp-libgcc.mvars
++      echo enable_esp = '$(enable_esp)' >> tmp-libgcc.mvars
++      echo enable_crtbeginP = '@enable_crtbeginP@' >> tmp-libgcc.mvars
  
        mv tmp-libgcc.mvars libgcc.mvars
  
-@@ -1982,9 +1997,19 @@
- $(T)crtbeginT.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
-   gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
-       $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
-+      $(ESP_NOPIE_CFLAGS) \
-         -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \
-         -o $(T)crtbeginT$(objext)
-+# This is a version of crtbegin for -static -fPIE links if esp is enable.
-+ifeq ($(enable_crtbeginTS),yes)
-+$(T)crtbeginTS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
-+  gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
-+      $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \
-+        -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O -DCRTSTUFFS_O \
-+        -o $(T)crtbeginTS$(objext)
-+endif
-+
- # Compile the start modules crt0.o and mcrt0.o that are linked with
- # every program
- $(T)crt0.o: s-crt0 ; @true
-diff -Nur gcc-4.6.0-vanilla/gcc/objc/lang-specs.h gcc-4.6.0/gcc/objc/lang-specs.h
---- gcc-4.6.0-vanilla/gcc/objc/lang-specs.h    2011-03-06 17:27:57.000000000 +0100
-+++ gcc-4.6.0/gcc/objc/lang-specs.h    2011-04-07 19:19:04.831773909 +0200
+diff -Nur gcc-4.7.0-vanilla/gcc/objc/lang-specs.h gcc-4.7.0/gcc/objc/lang-specs.h
+--- gcc-4.7.0-vanilla/gcc/objc/lang-specs.h    2011-03-06 17:27:57.000000000 +0100
++++ gcc-4.7.0/gcc/objc/lang-specs.h    2012-05-18 10:54:40.281444970 +0200
 @@ -30,9 +30,9 @@
        %{traditional|traditional-cpp:\
  %eGNU Objective C no longer supports traditional compilation}\
@@ -666,9 +705,9 @@ diff -Nur gcc-4.6.0-vanilla/gcc/objc/lang-specs.h gcc-4.6.0/gcc/objc/lang-specs.
 -       %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
 +       %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(esp_options) %{print-objc-runtime-info} %{gen-decls}\
                             %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
-diff -Nur gcc-4.6.0-vanilla/gcc/objcp/lang-specs.h gcc-4.6.0/gcc/objcp/lang-specs.h
---- gcc-4.6.0-vanilla/gcc/objcp/lang-specs.h   2011-03-06 17:27:57.000000000 +0100
-+++ gcc-4.6.0/gcc/objcp/lang-specs.h   2011-04-07 19:19:04.829773913 +0200
+diff -Nur gcc-4.7.0-vanilla/gcc/objcp/lang-specs.h gcc-4.7.0/gcc/objcp/lang-specs.h
+--- gcc-4.7.0-vanilla/gcc/objcp/lang-specs.h   2011-03-06 17:27:57.000000000 +0100
++++ gcc-4.7.0/gcc/objcp/lang-specs.h   2012-05-18 10:54:40.281444969 +0200
 @@ -36,7 +36,7 @@
                %(cpp_options) %2 -o %{save-temps*:%b.mii} %{!save-temps*:%g.mii} \n}\
        cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\
@@ -698,10 +737,10 @@ diff -Nur gcc-4.6.0-vanilla/gcc/objcp/lang-specs.h gcc-4.6.0/gcc/objcp/lang-spec
 -    cc1objplus -fpreprocessed %i %(cc1_options) %2\
 +    cc1objplus -fpreprocessed %i %(cc1_options) %(esp_options) %2\
      %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
-diff -Nur gcc-4.6.0-vanilla/gcc/varasm.c gcc-4.6.0/gcc/varasm.c
---- gcc-4.6.0-vanilla/gcc/varasm.c     2011-02-28 16:36:37.000000000 +0100
-+++ gcc-4.6.0/gcc/varasm.c     2011-04-07 19:18:52.338800740 +0200
-@@ -6022,7 +6022,11 @@
+diff -Nur gcc-4.7.0-vanilla/gcc/varasm.c gcc-4.7.0/gcc/varasm.c
+--- gcc-4.7.0-vanilla/gcc/varasm.c     2012-02-20 12:47:25.000000000 +0100
++++ gcc-4.7.0/gcc/varasm.c     2012-05-18 10:55:21.633767441 +0200
+@@ -6186,7 +6186,11 @@
    bool is_local;
  
    is_local = targetm.binds_local_p (decl);
@@ -714,51 +753,54 @@ diff -Nur gcc-4.6.0-vanilla/gcc/varasm.c gcc-4.6.0/gcc/varasm.c
      {
        if (is_local)
        kind = TLS_MODEL_LOCAL_EXEC;
-diff -Nur gcc-4.6.0-vanilla/libgcc/Makefile.in gcc-4.6.0/libgcc/Makefile.in
---- gcc-4.6.0-vanilla/libgcc/Makefile.in       2011-01-26 05:19:58.000000000 +0100
-+++ gcc-4.6.0/libgcc/Makefile.in       2011-04-07 19:18:24.190861287 +0200
-@@ -298,6 +298,12 @@
- gen-hide-list = echo > \$@
+diff -Nur gcc-4.7.0-vanilla/libgcc/Makefile.in gcc-4.7.0/libgcc/Makefile.in
+--- gcc-4.7.0-vanilla/libgcc/Makefile.in       2011-11-22 04:01:02.000000000 +0100
++++ gcc-4.7.0/libgcc/Makefile.in       2012-05-18 10:54:00.276165578 +0200
+@@ -219,6 +219,17 @@
+ DECNUMINC =
  endif
  
-+# We add crtbeginTS.o to the EXTRA_PARTS list if enable_crtbeginTS = yes
-+enable_libgcc_crtbeginTS = $(enable_crtbeginTS)
-+ifeq ($(enable_libgcc_crtbeginTS),yes)
-+EXTRA_PARTS += crtbeginTS.o
++ifeq ($(enable_esp),yes)
++ESP_NOPIE_CFLAGS = -fno-PIE
++else
++ESP_NOPIE_CFLAGS=
++endif
++
++# We add crtbeginP.o to the EXTRA_PARTS list if enable_crtbeginP = yes
++ifeq ($(enable_crtbeginP),yes)
++EXTRA_PARTS += crtbeginP.o
 +endif
 +
- ifneq ($(EXTRA_PARTS),)
-   extra-parts = libgcc-extra-parts
-   INSTALL_PARTS = $(EXTRA_PARTS)
-@@ -849,6 +855,13 @@
- crtbeginT.o: $(gcc_srcdir)/crtstuff.c
-       $(crt_compile) $(CRTSTUFF_T_CFLAGS) \
-         -c $(gcc_srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O
+ # Options to use when compiling libgcc2.a.
+ #
+ LIBGCC2_DEBUG_CFLAGS = -g
+@@ -279,7 +290,7 @@
+ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
+   -finhibit-size-directive -fno-inline -fno-exceptions \
+   -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
+-  -fno-stack-protector \
++  -fno-stack-protector $(ESP_NOPIE_CFLAGS) \
+   $(INHIBIT_LIBC_CFLAGS)
+ # Extra flags to use when compiling crt{begin,end}.o.
+@@ -966,6 +977,13 @@
+ # This is a version of crtbegin for -static links.
+ crtbeginT$(objext): $(srcdir)/crtstuff.c
+       $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $< -DCRT_BEGIN -DCRTSTUFFT_O
 +
 +# This is a version of crtbegin for -static -fPIE links.
-+ifeq ($(enable_libgcc_crtbeginTS),yes)
-+crtbeginTS.o: $(gcc_srcdir)/crtstuff.c
++ifeq ($(enable_crtbeginP),yes)
++crtbeginP$(objext): $(srcdir)/crtstuff.c
 +      $(crt_compile) $(CRTSTUFF_T_CFLAGS_S) \
-+        -c $(gcc_srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O -DCRTSTUFFS_O
++        -c $< -DCRT_BEGIN -DCRTSTUFFT_O -DCRTSTUFFS_O
 +endif
  endif
  
- # Build extra startfiles in the libgcc directory.
-diff -Nur gcc-4.6.0-vanilla/libmudflap/configure gcc-4.6.0/libmudflap/configure
---- gcc-4.6.0-vanilla/libmudflap/configure     2011-02-13 12:45:53.000000000 +0100
-+++ gcc-4.6.0/libmudflap/configure     2011-04-07 19:17:55.399923318 +0200
-@@ -652,6 +652,7 @@
- MAINTAINER_MODE_FALSE
- MAINTAINER_MODE_TRUE
- am__untar
-+enable_esp
- am__tar
- AMTAR
- am__leading_dot
-diff -Nur gcc-4.6.0-vanilla/Makefile.in gcc-4.6.0/Makefile.in
---- gcc-4.6.0-vanilla/Makefile.in      2011-02-12 13:02:24.000000000 +0100
-+++ gcc-4.6.0/Makefile.in      2011-04-07 19:18:24.184861300 +0200
-@@ -356,9 +356,17 @@
+ ifeq ($(CUSTOM_CRTIN),)
+diff -Nur gcc-4.7.0-vanilla/Makefile.in gcc-4.7.0/Makefile.in
+--- gcc-4.7.0-vanilla/Makefile.in      2012-01-02 11:59:04.000000000 +0100
++++ gcc-4.7.0/Makefile.in      2012-05-18 10:54:00.273165482 +0200
+@@ -362,9 +362,17 @@
  BUILD_PREFIX = @BUILD_PREFIX@
  BUILD_PREFIX_1 = @BUILD_PREFIX_1@
  
@@ -777,7 +819,7 @@ diff -Nur gcc-4.6.0-vanilla/Makefile.in gcc-4.6.0/Makefile.in
  BOOT_LDFLAGS=
  BOOT_ADAFLAGS=-gnatpg -gnata
  
-@@ -403,9 +411,9 @@
+@@ -410,9 +418,9 @@
  
  CFLAGS = @CFLAGS@
  LDFLAGS = @LDFLAGS@
diff --git a/gcc/patches/gcc46-Woverlength-string-asm.patch0 b/gcc/patches/gcc46-Woverlength-string-asm.patch0
deleted file mode 100644 (file)
index 47aae37..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-2011-02-02  Tom Tromey  <tromey@redhat.com>
-
-       * c-parser.c (c_parser_asm_string_literal): Clear
-       warn_overlength_strings.
-
-       * gcc.dg/Woverlength-strings-pedantic-c90-asm.c: New file.
-       * gcc.dg/Woverlength-strings-pedantic-c89-asm.c: New file.
-       * gcc.dg/Woverlength-strings-pedantic-c99-asm.c: New file.
-
---- gcc/c-parser.c
-+++ gcc/c-parser.c
-@@ -3264,6 +3264,8 @@ static tree
- c_parser_asm_string_literal (c_parser *parser)
- {
-   tree str;
-+  int save_flag = warn_overlength_strings;
-+  warn_overlength_strings = 0;
-   if (c_parser_next_token_is (parser, CPP_STRING))
-     {
-       str = c_parser_peek_token (parser)->value;
-@@ -3281,6 +3283,7 @@ c_parser_asm_string_literal (c_parser *parser)
-       c_parser_error (parser, "expected string literal");
-       str = NULL_TREE;
-     }
-+  warn_overlength_strings = save_flag;
-   return str;
- }
---- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c89-asm.c
-+++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c89-asm.c
-@@ -0,0 +1,47 @@
-+/* -Woverlength-strings complains about string constants which are too long
-+   for the C standard's "minimum maximum" limits.  It is off by default,
-+   but implied by -pedantic.  */
-+
-+/* { dg-options "-std=c89 -pedantic" } */
-+
-+#define TEN "          "
-+#define HUN TEN TEN TEN TEN TEN  TEN TEN TEN TEN TEN
-+#define THO HUN HUN HUN HUN HUN  HUN HUN HUN HUN HUN
-+
-+/* C89's minimum-maximum is 509. */
-+__asm__ (HUN HUN HUN HUN HUN TEN);
-+
-+/* C99's minimum-maximum is 4095.  */
-+__asm__ (
-+  THO THO THO THO     /* 4000 */
-+  TEN TEN TEN TEN TEN /* 4050 */
-+  TEN TEN TEN TEN     /* 4090 */
-+  "123456");
-+
-+void
-+f (void)
-+{
-+  /* C89's minimum-maximum is 509. */
-+  __asm__ (HUN HUN HUN HUN HUN TEN);
-+  __asm__ (HUN HUN HUN HUN HUN TEN : : );
-+  __asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
-+
-+  /* C99's minimum-maximum is 4095.  */
-+  __asm__ (
-+         THO THO THO THO     /* 4000 */
-+         TEN TEN TEN TEN TEN /* 4050 */
-+         TEN TEN TEN TEN     /* 4090 */
-+         "123456");
-+  __asm__ (
-+         THO THO THO THO     /* 4000 */
-+         TEN TEN TEN TEN TEN /* 4050 */
-+         TEN TEN TEN TEN     /* 4090 */
-+         "123456" : : );
-+  __asm__ goto (
-+              THO THO THO THO     /* 4000 */
-+              TEN TEN TEN TEN TEN /* 4050 */
-+              TEN TEN TEN TEN     /* 4090 */
-+              "123456" : : : : label);
-+
-+ label: ;
-+}
---- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c90-asm.c
-+++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c90-asm.c
-@@ -0,0 +1,48 @@
-+/* -Woverlength-strings complains about string constants which are too long
-+   for the C standard's "minimum maximum" limits.  It is off by default,
-+   but implied by -pedantic.  */
-+
-+/* { dg-options "-std=c90 -pedantic" } */
-+
-+#define TEN "          "
-+#define HUN TEN TEN TEN TEN TEN  TEN TEN TEN TEN TEN
-+#define THO HUN HUN HUN HUN HUN  HUN HUN HUN HUN HUN
-+
-+/* C89's minimum-maximum is 509. */
-+__asm__ (HUN HUN HUN HUN HUN TEN);
-+
-+/* C99's minimum-maximum is 4095.  */
-+__asm__ (
-+  THO THO THO THO     /* 4000 */
-+  TEN TEN TEN TEN TEN /* 4050 */
-+  TEN TEN TEN TEN     /* 4090 */
-+  "123456");
-+
-+void
-+f (void)
-+{
-+  /* C89's minimum-maximum is 509. */
-+  __asm__ (HUN HUN HUN HUN HUN TEN);
-+  __asm__ (HUN HUN HUN HUN HUN TEN : :);
-+  __asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
-+
-+  /* C99's minimum-maximum is 4095.  */
-+  __asm__ (
-+         THO THO THO THO     /* 4000 */
-+         TEN TEN TEN TEN TEN /* 4050 */
-+         TEN TEN TEN TEN     /* 4090 */
-+         "123456");
-+  __asm__ (
-+         THO THO THO THO     /* 4000 */
-+         TEN TEN TEN TEN TEN /* 4050 */
-+         TEN TEN TEN TEN     /* 4090 */
-+         "123456" : :);
-+  __asm__ goto (
-+              THO THO THO THO     /* 4000 */
-+              TEN TEN TEN TEN TEN /* 4050 */
-+              TEN TEN TEN TEN     /* 4090 */
-+              "123456" : : : : label);
-+
-+ label: ;
-+}
-+
---- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c99-asm.c
-+++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c99-asm.c
-@@ -0,0 +1,48 @@
-+/* -Woverlength-strings complains about string constants which are too long
-+   for the C standard's "minimum maximum" limits.  It is off by default,
-+   but implied by -pedantic.  */
-+
-+/* { dg-options "-std=c99 -pedantic" } */
-+
-+#define TEN "          "
-+#define HUN TEN TEN TEN TEN TEN  TEN TEN TEN TEN TEN
-+#define THO HUN HUN HUN HUN HUN  HUN HUN HUN HUN HUN
-+
-+/* C89's minimum-maximum is 509. */
-+__asm__ (HUN HUN HUN HUN HUN TEN);
-+
-+/* C99's minimum-maximum is 4095.  */
-+__asm__ (
-+  THO THO THO THO     /* 4000 */
-+  TEN TEN TEN TEN TEN /* 4050 */
-+  TEN TEN TEN TEN     /* 4090 */
-+  "123456");
-+
-+void
-+f (void)
-+{
-+  /* C89's minimum-maximum is 509. */
-+  __asm__ (HUN HUN HUN HUN HUN TEN);
-+  __asm__ (HUN HUN HUN HUN HUN TEN : :);
-+  __asm__ goto (HUN HUN HUN HUN HUN TEN : : : : label);
-+
-+  /* C99's minimum-maximum is 4095.  */
-+  __asm__ (
-+         THO THO THO THO     /* 4000 */
-+         TEN TEN TEN TEN TEN /* 4050 */
-+         TEN TEN TEN TEN     /* 4090 */
-+         "123456");
-+  __asm__ (
-+         THO THO THO THO     /* 4000 */
-+         TEN TEN TEN TEN TEN /* 4050 */
-+         TEN TEN TEN TEN     /* 4090 */
-+         "123456" : :);
-+  __asm__ goto (
-+              THO THO THO THO     /* 4000 */
-+              TEN TEN TEN TEN TEN /* 4050 */
-+              TEN TEN TEN TEN     /* 4090 */
-+              "123456" : : : : label);
-+
-+ label: ;
-+}
-+
diff --git a/gcc/patches/gcc46-Woverlength-string.patch0 b/gcc/patches/gcc46-Woverlength-string.patch0
deleted file mode 100644 (file)
index cda5cbf..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-2011-01-18  Tom Tromey  <tromey@redhat.com>
-
-       * c-parser.c (disable_extension_diagnostics): Save
-       warn_overlength_strings.
-       (restore_extension_diagnostics): Restore warn_overlength_strings.
-
-       * gcc.dg/Woverlength-strings-pedantic-c89-ext.c: New file.
-       * gcc.dg/Woverlength-strings-pedantic-c90-ext.c: New file.
-       * gcc.dg/Woverlength-strings-pedantic-c99-ext.c: New file.
-
---- gcc/c-parser.c     (revision 168933)
-+++ gcc/c-parser.c     (working copy)
-@@ -1045,13 +1045,15 @@
-            | (warn_traditional << 2)
-            | (flag_iso << 3)
-            | (warn_long_long << 4)
--           | (warn_cxx_compat << 5));
-+           | (warn_cxx_compat << 5)
-+           | (warn_overlength_strings << 6));
-   cpp_opts->cpp_pedantic = pedantic = 0;
-   warn_pointer_arith = 0;
-   cpp_opts->cpp_warn_traditional = warn_traditional = 0;
-   flag_iso = 0;
-   cpp_opts->cpp_warn_long_long = warn_long_long = 0;
-   warn_cxx_compat = 0;
-+  warn_overlength_strings = 0;
-   return ret;
- }
-@@ -1067,6 +1069,7 @@
-   flag_iso = (flags >> 3) & 1;
-   cpp_opts->cpp_warn_long_long = warn_long_long = (flags >> 4) & 1;
-   warn_cxx_compat = (flags >> 5) & 1;
-+  warn_overlength_strings = (flags >> 6) & 1;
- }
- /* Possibly kinds of declarator to parse.  */
---- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c89-ext.c        (revision 0)
-+++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c89-ext.c        (revision 0)
-@@ -0,0 +1,19 @@
-+/* -Woverlength-strings complains about string constants which are too long
-+   for the C standard's "minimum maximum" limits.  It is off by default,
-+   but implied by -pedantic.  */
-+
-+/* { dg-options "-std=c89 -pedantic" } */
-+
-+#define TEN "xxxxxxxxxx"
-+#define HUN TEN TEN TEN TEN TEN  TEN TEN TEN TEN TEN
-+#define THO HUN HUN HUN HUN HUN  HUN HUN HUN HUN HUN
-+
-+/* C89's minimum-maximum is 509. */
-+const char x510[] = __extension__ HUN HUN HUN HUN HUN TEN;
-+
-+/* C99's minimum-maximum is 4095.  */
-+const char x4096[] = __extension__
-+  THO THO THO THO     /* 4000 */
-+  TEN TEN TEN TEN TEN /* 4050 */
-+  TEN TEN TEN TEN     /* 4090 */
-+  "123456";
---- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c90-ext.c        (revision 0)
-+++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c90-ext.c        (revision 0)
-@@ -0,0 +1,19 @@
-+/* -Woverlength-strings complains about string constants which are too long
-+   for the C standard's "minimum maximum" limits.  It is off by default,
-+   but implied by -pedantic.  */
-+
-+/* { dg-options "-std=c90 -pedantic" } */
-+
-+#define TEN "xxxxxxxxxx"
-+#define HUN TEN TEN TEN TEN TEN  TEN TEN TEN TEN TEN
-+#define THO HUN HUN HUN HUN HUN  HUN HUN HUN HUN HUN
-+
-+/* C89's minimum-maximum is 509. */
-+const char x510[] = __extension__ HUN HUN HUN HUN HUN TEN;
-+
-+/* C99's minimum-maximum is 4095.  */
-+const char x4096[] = __extension__
-+  THO THO THO THO     /* 4000 */
-+  TEN TEN TEN TEN TEN /* 4050 */
-+  TEN TEN TEN TEN     /* 4090 */
-+  "123456";
---- gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c99-ext.c        (revision 0)
-+++ gcc/testsuite/gcc.dg/Woverlength-strings-pedantic-c99-ext.c        (revision 0)
-@@ -0,0 +1,19 @@
-+/* -Woverlength-strings complains about string constants which are too long
-+   for the C standard's "minimum maximum" limits.  It is off by default,
-+   but implied by -pedantic.  */
-+
-+/* { dg-options "-std=c99 -pedantic" } */
-+
-+#define TEN "xxxxxxxxxx"
-+#define HUN TEN TEN TEN TEN TEN  TEN TEN TEN TEN TEN
-+#define THO HUN HUN HUN HUN HUN  HUN HUN HUN HUN HUN
-+
-+/* C89's minimum-maximum is 509. */
-+const char x510[] = HUN HUN HUN HUN HUN TEN;
-+
-+/* C99's minimum-maximum is 4095.  */
-+const char x4096[] = __extension__
-+  THO THO THO THO     /* 4000 */
-+  TEN TEN TEN TEN TEN /* 4050 */
-+  TEN TEN TEN TEN     /* 4090 */
-+  "123456";
diff --git a/gcc/patches/gcc46-hack.patch0 b/gcc/patches/gcc46-hack.patch0
deleted file mode 100644 (file)
index 4689ce8..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
---- libada/Makefile.in.jj      2009-01-14 12:07:35.000000000 +0100
-+++ libada/Makefile.in 2009-01-15 14:25:33.000000000 +0100
-@@ -69,18 +69,40 @@ version := $(shell cat $(srcdir)/../gcc/
- libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
- ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
-+DEFAULTMULTIFLAGS :=
-+ifeq ($(MULTISUBDIR),)
-+targ:=$(subst -, ,$(target))
-+arch:=$(word 1,$(targ))
-+ifeq ($(words $(targ)),2)
-+osys:=$(word 2,$(targ))
-+else
-+osys:=$(word 3,$(targ))
-+endif
-+ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),)
-+ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64)
-+DEFAULTMULTIFLAGS := -m64
-+else
-+ifeq ($(strip $(filter-out s390%, $(arch))),)
-+DEFAULTMULTIFLAGS := -m31
-+else
-+DEFAULTMULTIFLAGS := -m32
-+endif
-+endif
-+endif
-+endif
-+
- # exeext should not be used because it's the *host* exeext.  We're building
- # a *target* library, aren't we?!?  Likewise for CC.  Still, provide bogus
- # definitions just in case something slips through the safety net provided
- # by recursive make invocations in gcc/ada/Makefile.in
- LIBADA_FLAGS_TO_PASS = \
-         "MAKEOVERRIDES=" \
--        "LDFLAGS=$(LDFLAGS)" \
-+        "LDFLAGS=$(strip $(LDFLAGS) $(DEFAULTMULTIFLAGS))" \
-         "LN_S=$(LN_S)" \
-         "SHELL=$(SHELL)" \
--        "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
--        "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
--        "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
-+        "GNATLIBFLAGS=$(strip $(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS))" \
-+        "GNATLIBCFLAGS=$(strip $(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS))" \
-+        "GNATLIBCFLAGS_FOR_C=$(strip $(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS))" \
-         "TARGET_LIBGCC2_CFLAGS=$(TARGET_LIBGCC2_CFLAGS)" \
-         "THREAD_KIND=$(THREAD_KIND)" \
-         "TRACE=$(TRACE)" \
-@@ -91,7 +113,7 @@ LIBADA_FLAGS_TO_PASS = \
-         "exeext=.exeext.should.not.be.used " \
-       'CC=the.host.compiler.should.not.be.needed' \
-       "GCC_FOR_TARGET=$(CC)" \
--        "CFLAGS=$(CFLAGS) $(WARN_CFLAGS)"
-+        "CFLAGS=$(strip $(CFLAGS) $(DEFAULTMULTIFLAGS) $(WARN_CFLAGS))"
- # Rules to build gnatlib.
- .PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared oscons
---- gcc/ada/sem_util.adb       (revision 161677)
-+++ gcc/ada/sem_util.adb       (working copy)
-@@ -2246,7 +2246,11 @@
-          end if;
-       elsif Is_Entity_Name (A2) then
-+
-+         --  Triggered by -Wall
-+         pragma Warnings (Off);
-          return Denotes_Same_Prefix (A2, A1);
-+         pragma Warnings (On);
-       elsif Nkind_In (A1, N_Selected_Component, N_Indexed_Component, N_Slice)
-               and then
-@@ -4694,7 +4698,7 @@
-             Exp           : Node_Id;
-             Assn          : Node_Id;
-             Choice        : Node_Id;
--            Comp_Type     : Entity_Id;
-+            Comp_Type     : Entity_Id := Empty;
-             Is_Array_Aggr : Boolean;
-          begin
---- config-ml.in.jj    2010-06-30 09:50:44.000000000 +0200
-+++ config-ml.in       2010-07-02 21:24:17.994211151 +0200
-@@ -516,6 +516,8 @@ multi-do:
-                               ADAFLAGS="$(ADAFLAGS) $${flags}" \
-                               prefix="$(prefix)" \
-                               exec_prefix="$(exec_prefix)" \
-+                              mandir="$(mandir)" \
-+                              infodir="$(infodir)" \
-                               GCJFLAGS="$(GCJFLAGS) $${flags}" \
-                               GOCFLAGS="$(GOCFLAGS) $${flags}" \
-                               CXXFLAGS="$(CXXFLAGS) $${flags}" \
---- libjava/Makefile.am.jj     2010-07-09 11:17:33.729604090 +0200
-+++ libjava/Makefile.am        2010-07-09 13:16:41.894375641 +0200
-@@ -710,7 +710,8 @@ if USE_LIBGCJ_BC
- ## later.
-       @echo Installing dummy lib libgcj_bc.so.1.0.0; \
-       rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
--      mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
-+      $(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
-+      rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
-       $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
-       -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
-       rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
---- libjava/Makefile.in.jj     2010-07-09 11:17:34.000000000 +0200
-+++ libjava/Makefile.in        2010-07-09 13:18:07.542572270 +0200
-@@ -12665,7 +12665,8 @@ install-exec-hook: install-binPROGRAMS i
-       install-libexecsubPROGRAMS
- @USE_LIBGCJ_BC_TRUE@  @echo Installing dummy lib libgcj_bc.so.1.0.0; \
- @USE_LIBGCJ_BC_TRUE@  rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
--@USE_LIBGCJ_BC_TRUE@  mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
-+@USE_LIBGCJ_BC_TRUE@  $(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
-+@USE_LIBGCJ_BC_TRUE@  rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
- @USE_LIBGCJ_BC_TRUE@  $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
- @USE_LIBGCJ_BC_TRUE@  -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
- @USE_LIBGCJ_BC_TRUE@  rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
diff --git a/gcc/patches/gcc46-unwind-debughook-sdt.patch0 b/gcc/patches/gcc46-unwind-debughook-sdt.patch0
deleted file mode 100644 (file)
index 3b87e39..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-2011-01-14  Tom Tromey  <tromey@redhat.com>
-
-       * unwind-dw2.c: Include sys/sdt.h if it exists.
-       (_Unwind_DebugHook): Use STAP_PROBE2.
-       * config.in, configure: Rebuild.
-       * configure.ac: Check for sys/sdt.h.
-
---- gcc/configure.ac
-+++ gcc/configure.ac
-@@ -4313,6 +4313,16 @@ if test x$gcc_cv_libc_provides_ssp = xyes; then
-           [Define if your target C library provides stack protector support])
- fi
-+# Test for <sys/sdt.h> on the target.
-+GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H])
-+AC_MSG_CHECKING(sys/sdt.h in the target C library)
-+have_sys_sdt_h=no
-+if test -f $target_header_dir/sys/sdt.h; then
-+  AC_DEFINE(HAVE_SYS_SDT_H, 1,
-+            [Define if your target C library provides sys/sdt.h])
-+fi
-+AC_MSG_RESULT($have_sys_sdt_h)
-+
- # Check if TFmode long double should be used by default or not.
- # Some glibc targets used DFmode long double, but with glibc 2.4
- # and later they can use TFmode.
---- gcc/unwind-dw2.c
-+++ gcc/unwind-dw2.c
-@@ -37,6 +37,10 @@
- #include "gthr.h"
- #include "unwind-dw2.h"
-+#ifdef HAVE_SYS_SDT_H
-+#include <sys/sdt.h>
-+#endif
-+
- #ifndef __USING_SJLJ_EXCEPTIONS__
- #ifndef STACK_GROWS_DOWNWARD
-@@ -1493,7 +1497,13 @@ static void
- _Unwind_DebugHook (void *cfa __attribute__ ((__unused__)),
-                  void *handler __attribute__ ((__unused__)))
- {
-+  /* We only want to use stap probes starting with v3.  Earlier
-+     versions added too much startup cost.  */
-+#if defined (HAVE_SYS_SDT_H) && defined (STAP_PROBE2) && _SDT_NOTE_TYPE >= 3
-+  STAP_PROBE2 (libgcc, unwind, cfa, handler);
-+#else
-   asm ("");
-+#endif
- }
- /* Install TARGET into CURRENT so that we can return to it.  This is a
-
---- gcc/config.in.jj   2011-01-22 10:21:47.000000000 +0100
-+++ gcc/config.in      2011-01-22 11:10:39.000000000 +0100
-@@ -1405,6 +1407,9 @@
- #endif
-+/* Define if your target C library provides sys/sdt.h */
-+#undef HAVE_SYS_SDT_H
-+
- /* Define to 1 if you have the <sys/stat.h> header file. */
- #ifndef USED_FOR_TARGET
- #undef HAVE_SYS_STAT_H
---- gcc/configure.jj   2011-01-22 10:20:55.000000000 +0100
-+++ gcc/configure      2011-01-22 11:10:34.990648298 +0100
-@@ -25757,6 +25757,19 @@ $as_echo "#define TARGET_LIBC_PROVIDES_S
- fi
-+# Test for <sys/sdt.h> on the target.
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5
-+$as_echo_n "checking sys/sdt.h in the target C library... " >&6; }
-+have_sys_sdt_h=no
-+if test -f $target_header_dir/sys/sdt.h; then
-+
-+$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5
-+$as_echo "$have_sys_sdt_h" >&6; }
-+
- # Check if TFmode long double should be used by default or not.
- # Some glibc targets used DFmode long double, but with glibc 2.4
- # and later they can use TFmode.
similarity index 70%
rename from gcc/patches/gcc46-c++-builtin-redecl.patch0
rename to gcc/patches/gcc47-c++-builtin-redecl.patch0
index 1f36f1fe04eec77bb218520cdd6b0489fc1b20bb..fa30745880c08ee280fd6121fbec61311dcddc3f 100644 (file)
@@ -4,12 +4,12 @@
        keep the merged decl builtin whenever types match, even if new
        decl defines a function.
 
-       * gcc.dg/builtins-65.c: New test.
-       * g++.dg/ext/builtin10.C: New test.
+       * gcc.dg/builtins-85.c: New test.
+       * g++.dg/ext/builtin30.C: New test.
 
 --- gcc/cp/decl.c.jj   2007-10-01 22:11:09.000000000 +0200
 +++ gcc/cp/decl.c      2007-10-02 11:39:46.000000000 +0200
-@@ -2001,23 +2001,21 @@ duplicate_decls (tree newdecl, tree oldd
+@@ -2137,39 +2137,37 @@ duplicate_decls (tree newdecl, tree oldd
          DECL_ARGUMENTS (olddecl) = DECL_ARGUMENTS (newdecl);
          DECL_RESULT (olddecl) = DECL_RESULT (newdecl);
        }
 +        /* If we're keeping the built-in definition, keep the rtl,
 +           regardless of declaration matches.  */
 +        COPY_DECL_RTL (olddecl, newdecl);
++        if (DECL_BUILT_IN_CLASS (newdecl) == BUILT_IN_NORMAL)
++          {
++            enum built_in_function fncode = DECL_FUNCTION_CODE (newdecl);
++            switch (fncode)
++              {
++                /* If a compatible prototype of these builtin functions
++                   is seen, assume the runtime implements it with the
++                   expected semantics.  */
++              case BUILT_IN_STPCPY:
++                if (builtin_decl_explicit_p (fncode))
++                  set_builtin_decl_implicit_p (fncode, true);
++                break;
++              default:
++                break;
++              }
++          }
 +      }
        if (new_defines_function)
        /* If defining a function declared with other language
 -            /* If we're keeping the built-in definition, keep the rtl,
 -               regardless of declaration matches.  */
 -            COPY_DECL_RTL (olddecl, newdecl);
+-            if (DECL_BUILT_IN_CLASS (newdecl) == BUILT_IN_NORMAL)
+-              {
+-                enum built_in_function fncode = DECL_FUNCTION_CODE (newdecl);
+-                switch (fncode)
+-                  {
+-                    /* If a compatible prototype of these builtin functions
+-                       is seen, assume the runtime implements it with the
+-                       expected semantics.  */
+-                  case BUILT_IN_STPCPY:
+-                    if (builtin_decl_explicit_p (fncode))
+-                      set_builtin_decl_implicit_p (fncode, true);
+-                    break;
+-                  default:
+-                    break;
+-                  }
+-              }
 -          }
 -
          DECL_RESULT (newdecl) = DECL_RESULT (olddecl);
          /* Don't clear out the arguments if we're just redeclaring a
             function.  */
---- gcc/testsuite/gcc.dg/builtins-65.c.jj      2007-10-02 11:23:51.000000000 +0200
-+++ gcc/testsuite/gcc.dg/builtins-65.c 2007-10-02 11:24:12.000000000 +0200
+--- gcc/testsuite/gcc.dg/builtins-85.c.jj      2007-10-02 11:23:51.000000000 +0200
++++ gcc/testsuite/gcc.dg/builtins-85.c 2007-10-02 11:24:12.000000000 +0200
 @@ -0,0 +1,25 @@
 +/* { dg-do compile } */
 +/* { dg-options "-O2" } */
 +
 +/* { dg-final { scan-assembler "mysnprintf" } } */
 +/* { dg-final { scan-assembler-not "__chk_fail" } } */
---- gcc/testsuite/g++.dg/ext/builtin10.C.jj    2007-10-02 11:19:45.000000000 +0200
-+++ gcc/testsuite/g++.dg/ext/builtin10.C       2007-10-02 11:23:26.000000000 +0200
+--- gcc/testsuite/g++.dg/ext/builtin30.C.jj    2007-10-02 11:19:45.000000000 +0200
++++ gcc/testsuite/g++.dg/ext/builtin30.C       2007-10-02 11:23:26.000000000 +0200
 @@ -0,0 +1,27 @@
 +// { dg-do compile }
 +// { dg-options "-O2" }
similarity index 94%
rename from gcc/patches/gcc46-cloog-dl.patch0
rename to gcc/patches/gcc47-cloog-dl.patch0
index 11ce82b98422b455299ae0260ab7d3611964f266..1ed71654ac33cd5e681d42827597812c8b738449 100644 (file)
@@ -15,7 +15,7 @@
 
 --- gcc/Makefile.in.jj 2011-01-03 13:44:14.163900902 +0100
 +++ gcc/Makefile.in    2011-01-04 17:48:53.588775911 +0100
-@@ -984,6 +984,8 @@ GCC_PLUGIN_H = gcc-plugin.h highlev-plug
+@@ -962,6 +962,8 @@ GCC_PLUGIN_H = gcc-plugin.h highlev-plug
  PLUGIN_H = plugin.h $(GCC_PLUGIN_H)
  PLUGIN_VERSION_H = plugin-version.h configargs.h
  LIBFUNCS_H = libfuncs.h $(HASHTAB_H)
  
  #\f
  # Now figure out from those variables how to compile and link.
-@@ -1037,7 +1039,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
+@@ -1016,7 +1018,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
  # and the system's installed libraries.
- LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER) \
-       $(HOST_LIBS)
+ LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) \
+       $(LIBDECNUMBER) $(HOST_LIBS)
 -BACKENDLIBS = $(CLOOGLIBS) $(PPLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
 +BACKENDLIBS = $(GMPLIBS) $(if $(CLOOGLIBS),-ldl) $(PLUGINLIBS) $(HOST_LIBS) \
        $(ZLIB)
  # Any system libraries needed just for GNAT.
  SYSLIBS = @GNAT_LIBEXC@
-@@ -2668,40 +2670,40 @@ sese.o : sese.c sese.h $(CONFIG_H) $(SYS
+@@ -2602,40 +2604,40 @@ sese.o : sese.c sese.h $(CONFIG_H) $(SYS
     $(TREE_FLOW_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) tree-pass.h value-prof.h
  graphite.o : graphite.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(DIAGNOSTIC_CORE_H) \
     $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h \
     graphite-sese-to-poly.h
  tree-vect-loop.o: tree-vect-loop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
     $(TM_H) $(GGC_H) $(TREE_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) \
-@@ -3482,6 +3484,11 @@ $(out_object_file): $(out_file) $(CONFIG
+@@ -3454,6 +3456,15 @@ $(common_out_object_file): $(common_out_
        $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
-               $(out_file) $(OUTPUT_OPTION)
+         $< $(OUTPUT_OPTION)
  
 +graphite%.o : \
 +  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
 +graphite.o : \
 +  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
++graphite%.o : \
++  ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
++graphite.o : \
++  ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
 +
  # Build auxiliary files that support ecoff format.
- mips-tfile: mips-tfile.o version.o $(LIBDEPS)
+ mips-tfile: mips-tfile.o $(LIBDEPS)
        $(LINKER) $(LINKERFLAGS) $(LDFLAGS) -o $@ \
 --- gcc/graphite-cloog-compat.h.jj     2011-01-03 12:53:05.000000000 +0100
 +++ gcc/graphite-cloog-compat.h        2011-01-04 17:34:09.857757544 +0100
-@@ -272,4 +272,277 @@ static inline int cloog_matrix_nrows (Cl
+@@ -272,4 +272,279 @@ static inline int cloog_matrix_nrows (Cl
     return m->NbRows;
  }
  #endif /* CLOOG_ORG  */
 +  DYNSYM (stmt_guard); \
 +  DYNSYM (stmt_root); \
 +  DYNSYM (stmt_user); \
++  DYNSYM (stmt_ass); \
 +  DYNSYM (ppl_delete_Constraint_System); \
 +  DYNSYM (ppl_initialize); \
 +  DYNSYM (ppl_new_Constraint_System_from_Constraint); \
 +  DYNSYM (ppl_Polyhedron_affine_image); \
 +  DYNSYM (ppl_io_fprint_Pointset_Powerset_C_Polyhedron); \
 +  DYNSYMS_PPL11
-+extern struct
++extern struct cloog_pointers_s__
 +{
 +  bool inited;
 +  void *h;
 +#define stmt_guard (*cloog_pointers__.p_stmt_guard)
 +#define stmt_root (*cloog_pointers__.p_stmt_root)
 +#define stmt_user (*cloog_pointers__.p_stmt_user)
++#define stmt_ass (*cloog_pointers__.p_stmt_ass)
 +#define ppl_delete_Constraint_System (*cloog_pointers__.p_ppl_delete_Constraint_System)
 +#define ppl_initialize (*cloog_pointers__.p_ppl_initialize)
 +#define ppl_new_Constraint_System_from_Constraint (*cloog_pointers__.p_ppl_new_Constraint_System_from_Constraint)
    initialize_original_copy_tables ();
 --- gcc/graphite-clast-to-gimple.c.jj  2011-01-03 12:53:05.000000000 +0100
 +++ gcc/graphite-clast-to-gimple.c     2011-01-04 16:29:55.738007463 +0100
-@@ -738,10 +738,10 @@ clast_get_body_of_loop (struct clast_stm
+@@ -836,7 +836,7 @@ clast_get_body_of_loop (struct clast_stm
     from STMT_FOR.  */
  
  static tree
--gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_for, int level,
-+gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_fora, int level,
-                              tree lb_type, tree ub_type)
+-type_for_clast_for (struct clast_for *stmt_for, ivs_params_p ip)
++type_for_clast_for (struct clast_for *stmt_fora, ivs_params_p ip)
  {
--  struct clast_stmt *stmt = (struct clast_stmt *) stmt_for;
-+  struct clast_stmt *stmt = (struct clast_stmt *) stmt_fora;
-   struct clast_user_stmt *body = clast_get_body_of_loop (stmt);
-   CloogStatement *cs = body->statement;
-   poly_bb_p pbb = (poly_bb_p) cloog_statement_usr (cs);
+   mpz_t bound_one, bound_two;
+   tree lb_type, ub_type;
+@@ -844,8 +844,8 @@ type_for_clast_for (struct clast_for *st
+   mpz_init (bound_one);
+   mpz_init (bound_two);
+-  lb_type = type_for_clast_expr (stmt_for->LB, ip, bound_one, bound_two);
+-  ub_type = type_for_clast_expr (stmt_for->UB, ip, bound_one, bound_two);
++  lb_type = type_for_clast_expr (stmt_fora->LB, ip, bound_one, bound_two);
++  ub_type = type_for_clast_expr (stmt_fora->UB, ip, bound_one, bound_two);
+   mpz_clear (bound_one);
+   mpz_clear (bound_two);
 --- gcc/graphite-poly.h.jj     2011-01-03 12:53:05.000000000 +0100
 +++ gcc/graphite-poly.h        2011-01-04 17:35:53.308788629 +0100
 @@ -22,6 +22,8 @@ along with GCC; see the file COPYING3.  
diff --git a/gcc/patches/gcc47-i386-libgomp.patch0 b/gcc/patches/gcc47-i386-libgomp.patch0
new file mode 100644 (file)
index 0000000..f6a6b91
--- /dev/null
@@ -0,0 +1,28 @@
+--- libgomp/configure.tgt.jj   2008-01-10 20:53:48.000000000 +0100
++++ libgomp/configure.tgt      2008-03-27 12:44:51.000000000 +0100
+@@ -44,14 +44,14 @@ if test $enable_linux_futex = yes; then
+       ;;
+     # Note that bare i386 is not included here.  We need cmpxchg.
+-    i[456]86-*-linux*)
++    i[456]86-*-linux*)
+       config_path="linux/x86 linux posix"
+       case " ${CC} ${CFLAGS} " in
+         *" -m64 "*)
+           ;;
+         *)
+           if test -z "$with_arch"; then
+-            XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
++            XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+           fi
+       esac
+       ;;
+@@ -63,7 +63,7 @@ if test $enable_linux_futex = yes; then
+       config_path="linux/x86 linux posix"
+       case " ${CC} ${CFLAGS} " in
+         *" -m32 "*)
+-          XCFLAGS="${XCFLAGS} -march=i486 -mtune=i686"
++          XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+           ;;
+       esac
+       ;;
diff --git a/gcc/patches/gcc47-libitm-fno-exceptions.patch0 b/gcc/patches/gcc47-libitm-fno-exceptions.patch0
new file mode 100644 (file)
index 0000000..8b9d590
--- /dev/null
@@ -0,0 +1,28 @@
+2011-12-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.am (beginend.lo): Append -fno-exceptions to
+       CXXFLAGS.
+       * Makefile.in: Regenerated.
+
+--- libitm/Makefile.am.jj      2011-12-20 13:47:57.000000000 +0100
++++ libitm/Makefile.am 2011-12-22 09:14:06.663469165 +0100
+@@ -72,6 +72,8 @@ endif
+ if ARCH_X86_AVX
+ x86_avx.lo : XCFLAGS += -mavx
+ endif
++beginend.lo : CXXCOMPILE += -fno-exceptions
++beginend.lo : LTCXXCOMPILE += -fno-exceptions
+ if ARCH_FUTEX
+ libitm_la_SOURCES += futex.cc
+--- libitm/Makefile.in.jj      2011-12-20 13:47:57.000000000 +0100
++++ libitm/Makefile.in 2011-12-22 09:14:29.466329944 +0100
+@@ -1278,6 +1278,8 @@ vpath % $(strip $(search_path))
+ @LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@     > $@ || (rm -f $@ ; exit 1)
+ @ARCH_X86_TRUE@x86_sse.lo : XCFLAGS += -msse
+ @ARCH_X86_AVX_TRUE@x86_avx.lo : XCFLAGS += -mavx
++beginend.lo : CXXCOMPILE += -fno-exceptions
++beginend.lo : LTCXXCOMPILE += -fno-exceptions
+ all-local: $(STAMP_GENINSRC)
diff --git a/gcc/patches/gcc47-libstdc++-docs.patch0 b/gcc/patches/gcc47-libstdc++-docs.patch0
new file mode 100644 (file)
index 0000000..577dd49
--- /dev/null
@@ -0,0 +1,26 @@
+--- libstdc++-v3/doc/html/index.html.jj        2011-01-03 12:53:21.282829010 +0100
++++ libstdc++-v3/doc/html/index.html   2011-01-04 18:06:28.999851145 +0100
+@@ -5,6 +5,8 @@
+       <a class="link" href="http://www.fsf.org/">FSF
+       </a>
+     </p><p>
++      Release 4.7.0
++    </p><p>
+       Permission is granted to copy, distribute and/or modify this
+       document under the terms of the GNU Free Documentation
+       License, Version 1.2 or any later version published by the
+--- libstdc++-v3/doc/html/api.html.jj  2011-01-03 12:53:21.000000000 +0100
++++ libstdc++-v3/doc/html/api.html     2011-01-04 18:12:01.672757784 +0100
+@@ -19,8 +19,11 @@
+   member functions for the library classes, finding out what is in a
+   particular include file, looking at inheritance diagrams, etc.
+ </p><p>
+-  The API documentation, rendered into HTML, can be viewed online:
++  The API documentation, rendered into HTML, can be viewed here:
+ </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>
++      <a class="ulink" href="api/index.html">for the 4.7 release, local
++      </a>
++    </p></li><li class="listitem"><p>
+       <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html">for the 3.4 release
+       </a>
+     </p></li><li class="listitem"><p>
similarity index 91%
rename from gcc/patches/gcc46-no-add-needed.patch0
rename to gcc/patches/gcc47-no-add-needed.patch0
index 8aac2092cbdff2ff77814c8072d39752d61fb048..7e38b0b69c69f0a3cf6b5ebf79d006dba6cf55b7 100644 (file)
  /* A C statement (sans semicolon) to output to the stdio stream STREAM
 --- gcc/config/ia64/linux.h.jj 2011-01-03 13:02:11.462994522 +0100
 +++ gcc/config/ia64/linux.h    2011-01-04 18:14:10.931874160 +0100
-@@ -82,7 +82,7 @@ do {                                         \
+@@ -77,7 +77,7 @@ do {                                         \
     Signalize that because we have fde-glibc, we don't need all C shared libs
     linked against -lgcc_s.  */
  #undef LINK_EH_SPEC
 -#define LINK_EH_SPEC ""
 +#define LINK_EH_SPEC "--no-add-needed "
  
- #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
+ /* Put all *tf routines in libgcc.  */
+ #undef LIBGCC2_HAS_TF_MODE
 --- gcc/config/gnu-user.h.jj   2011-01-03 12:53:03.739057299 +0100
 +++ gcc/config/gnu-user.h      2011-01-04 18:14:10.932814884 +0100
 @@ -82,7 +82,7 @@ see the files COPYING3 and COPYING.RUNTI
@@ -41,8 +41,8 @@
  #undef LINK_GCC_C_SEQUENCE_SPEC
 --- gcc/config/rs6000/sysv4.h.jj       2011-01-03 13:02:18.255994215 +0100
 +++ gcc/config/rs6000/sysv4.h  2011-01-04 18:14:10.933888871 +0100
-@@ -869,7 +869,7 @@ extern int fixuplabelno;
-   -dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
+@@ -820,7 +820,7 @@ extern int fixuplabelno;
+   -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
  
  #if defined(HAVE_LD_EH_FRAME_HDR)
 -# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
similarity index 55%
rename from gcc/patches/gcc46-ppl-0.10.patch
rename to gcc/patches/gcc47-ppl-0.10.patch0
index e7c2d871f3e08b8b64416924ec4f946f8386748d..d43f34ffa9b341da322557897ea88e65b066c436 100644 (file)
@@ -1,43 +1,18 @@
-diff -Nur gcc-4.6.0-vanilla/configure gcc-4.6.0/configure
---- gcc-4.6.0-vanilla/configure        2011-03-16 19:27:36.000000000 +0100
-+++ gcc-4.6.0/configure        2011-04-07 21:41:50.876254183 +0200
-@@ -5776,7 +5776,7 @@
-     saved_CFLAGS="$CFLAGS"
-     CFLAGS="$CFLAGS $pplinc $gmpinc"
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.11 (revision 0 or later) of PPL" >&5
--$as_echo_n "checking for version 0.11 (revision 0 or later) of PPL... " >&6; }
-+$as_echo_n "checking for version 0.10 (revision 0 or later) of PPL... " >&6; }
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include "ppl_c.h"
-@@ -5784,7 +5784,7 @@
- main ()
- {
--    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
-+    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10
-     choke me
-     #endif
-diff -Nur gcc-4.6.0-vanilla/configure.ac gcc-4.6.0/configure.ac
---- gcc-4.6.0-vanilla/configure.ac     2011-03-16 19:27:36.000000000 +0100
-+++ gcc-4.6.0/configure.ac     2011-04-07 21:41:04.254292244 +0200
-@@ -1688,9 +1688,9 @@
-   if test "$enable_ppl_version_check" != no; then
-     saved_CFLAGS="$CFLAGS"
-     CFLAGS="$CFLAGS $pplinc $gmpinc"
--    AC_MSG_CHECKING([for version 0.11 (revision 0 or later) of PPL])
-+    AC_MSG_CHECKING([for version 0.10 (revision 0 or later) of PPL])
-     AC_TRY_COMPILE([#include "ppl_c.h"],[
--    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
-+    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10
-     choke me
-     #endif
-     ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
-diff -Nur gcc-4.6.0-vanilla/gcc/doc/install.texi gcc-4.6.0/gcc/doc/install.texi
---- gcc-4.6.0-vanilla/gcc/doc/install.texi     2011-03-21 13:13:26.000000000 +0100
-+++ gcc-4.6.0/gcc/doc/install.texi     2011-04-07 21:40:12.957333674 +0200
-@@ -362,7 +362,7 @@
+2011-01-28  Jakub Jelinek  <jakub@redhat.com>
+
+       Revert:
+       2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * configure: Regenerated.
+       * configure.ac: Check for version 0.11 (or later revision) of PPL.
+gcc/
+       * doc/install.texi: Update the expected version number of PPL to 0.11.
+       * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
+       #if PPL_VERSION_MINOR < 11.
+
+--- gcc/doc/install.texi       (revision 169207)
++++ gcc/doc/install.texi       (revision 169206)
+@@ -332,7 +332,7 @@ and @option{--with-mpc-include}.  Altern
  distribution is found in a subdirectory of your GCC sources named
  @file{mpc}, it will be built together with GCC@.
  
@@ -46,10 +21,9 @@ diff -Nur gcc-4.6.0-vanilla/gcc/doc/install.texi gcc-4.6.0/gcc/doc/install.texi
  
  Necessary to build GCC with the Graphite loop optimizations.
  It can be downloaded from @uref{http://www.cs.unipr.it/ppl/Download/}.
-diff -Nur gcc-4.6.0-vanilla/gcc/graphite-ppl.c gcc-4.6.0/gcc/graphite-ppl.c
---- gcc-4.6.0-vanilla/gcc/graphite-ppl.c       2011-01-25 07:46:43.000000000 +0100
-+++ gcc-4.6.0/gcc/graphite-ppl.c       2011-04-07 21:40:12.958333672 +0200
-@@ -521,6 +521,15 @@
+--- gcc/graphite-ppl.c (revision 169207)
++++ gcc/graphite-ppl.c (revision 169206)
+@@ -521,6 +521,15 @@ debug_gmp_value (mpz_t val)
  bool
  ppl_powerset_is_empty (ppl_Pointset_Powerset_C_Polyhedron_t ps)
  {
@@ -65,7 +39,7 @@ diff -Nur gcc-4.6.0-vanilla/gcc/graphite-ppl.c gcc-4.6.0/gcc/graphite-ppl.c
    ppl_PIP_Problem_t pip;
    ppl_dimension_type d;
    ppl_const_Constraint_System_t pcs;
-@@ -561,6 +570,7 @@
+@@ -561,6 +570,7 @@ ppl_powerset_is_empty (ppl_Pointset_Powe
    ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (end);
  
    return !has_integer_solutions;
@@ -73,40 +47,72 @@ diff -Nur gcc-4.6.0-vanilla/gcc/graphite-ppl.c gcc-4.6.0/gcc/graphite-ppl.c
  }
  
  #endif
-diff -Nur gcc-4.6.0-vanilla/gcc/testsuite/gcc.dg/graphite/interchange-11.c gcc-4.6.0/gcc/testsuite/gcc.dg/graphite/interchange-11.c
---- gcc-4.6.0-vanilla/gcc/testsuite/gcc.dg/graphite/interchange-11.c   2011-01-25 07:45:54.000000000 +0100
-+++ gcc-4.6.0/gcc/testsuite/gcc.dg/graphite/interchange-11.c   2011-04-07 21:40:12.974333658 +0200
-@@ -46,5 +46,5 @@
+--- configure.ac       (revision 169207)
++++ configure.ac       (revision 169206)
+@@ -1688,9 +1688,9 @@ if test "x$with_ppl" != xno; then
+   if test "$enable_ppl_version_check" != no; then
+     saved_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $pplinc $gmpinc"
+-    AC_MSG_CHECKING([for version 0.11 (revision 0 or later) of PPL])
++    AC_MSG_CHECKING([for version 0.10 (revision 0 or later) of PPL])
+     AC_TRY_COMPILE([#include "ppl_c.h"],[
+-    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
++    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10
+     choke me
+     #endif
+     ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
+--- configure  (revision 169207)
++++ configure  (revision 169206)
+@@ -5775,8 +5775,8 @@ fi
+   if test "$enable_ppl_version_check" != no; then
+     saved_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $pplinc $gmpinc"
+-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.11 (revision 0 or later) of PPL" >&5
+-$as_echo_n "checking for version 0.11 (revision 0 or later) of PPL... " >&6; }
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.10 (revision 0 or later) of PPL" >&5
++$as_echo_n "checking for version 0.10 (revision 0 or later) of PPL... " >&6; }
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ #include "ppl_c.h"
+@@ -5784,7 +5784,7 @@ int
+ main ()
+ {
+-    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
++    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10
+     choke me
+     #endif
+--- gcc/testsuite/gcc.dg/graphite/interchange-11.c.jj  2011-01-28 09:38:11.000000000 +0100
++++ gcc/testsuite/gcc.dg/graphite/interchange-11.c     2011-01-28 11:06:56.461429848 +0100
+@@ -46,5 +46,5 @@ main (void)
    return 0;
  }
  
 -/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
 +/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
  /* { dg-final { cleanup-tree-dump "graphite" } } */
-diff -Nur gcc-4.6.0-vanilla/gcc/testsuite/gcc.dg/graphite/interchange-13.c gcc-4.6.0/gcc/testsuite/gcc.dg/graphite/interchange-13.c
---- gcc-4.6.0-vanilla/gcc/testsuite/gcc.dg/graphite/interchange-13.c   2011-01-25 07:45:54.000000000 +0100
-+++ gcc-4.6.0/gcc/testsuite/gcc.dg/graphite/interchange-13.c   2011-04-07 21:40:12.975333657 +0200
-@@ -50,5 +50,5 @@
+--- gcc/testsuite/gcc.dg/graphite/interchange-13.c.jj  2011-01-28 09:38:12.000000000 +0100
++++ gcc/testsuite/gcc.dg/graphite/interchange-13.c     2011-01-28 11:07:08.182429223 +0100
+@@ -50,5 +50,5 @@ main (void)
  }
  
  
 -/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
 +/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
  /* { dg-final { cleanup-tree-dump "graphite" } } */
-diff -Nur gcc-4.6.0-vanilla/gcc/testsuite/gcc.dg/graphite/interchange-1.c gcc-4.6.0/gcc/testsuite/gcc.dg/graphite/interchange-1.c
---- gcc-4.6.0-vanilla/gcc/testsuite/gcc.dg/graphite/interchange-1.c    2011-01-25 07:45:54.000000000 +0100
-+++ gcc-4.6.0/gcc/testsuite/gcc.dg/graphite/interchange-1.c    2011-04-07 21:40:12.975333657 +0200
-@@ -49,5 +49,5 @@
+--- gcc/testsuite/gcc.dg/graphite/interchange-1.c.jj   2011-01-28 09:38:13.000000000 +0100
++++ gcc/testsuite/gcc.dg/graphite/interchange-1.c      2011-01-28 11:06:42.160429193 +0100
+@@ -49,5 +49,5 @@ main (void)
    return 0;
  }
  
 -/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
 +/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
  /* { dg-final { cleanup-tree-dump "graphite" } } */
-diff -Nur gcc-4.6.0-vanilla/gcc/testsuite/gfortran.dg/graphite/interchange-3.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/graphite/interchange-3.f90
---- gcc-4.6.0-vanilla/gcc/testsuite/gfortran.dg/graphite/interchange-3.f90     2011-01-25 07:47:34.000000000 +0100
-+++ gcc-4.6.0/gcc/testsuite/gfortran.dg/graphite/interchange-3.f90     2011-04-07 21:40:12.976333657 +0200
-@@ -24,5 +24,5 @@
+--- gcc/testsuite/gfortran.dg/graphite/interchange-3.f90.jj    2011-01-28 09:38:05.000000000 +0100
++++ gcc/testsuite/gfortran.dg/graphite/interchange-3.f90       2011-01-28 11:07:46.313420441 +0100
+@@ -24,5 +24,5 @@ Program FOO
  
  end Program FOO
  
similarity index 86%
rename from gcc/patches/gcc46-pr33763.patch0
rename to gcc/patches/gcc47-pr33763.patch0
index 86c8ac7e1386f6f61204d87615a9cdba5e747d3a..0cf0723eab8e9d6fb1ac424666a7ab4230b9030c 100644 (file)
 
 --- gcc/tree-inline.c.jj       2007-11-06 09:29:04.000000000 +0100
 +++ gcc/tree-inline.c  2007-11-06 16:19:12.000000000 +0100
-@@ -3157,6 +3157,12 @@ expand_call_inline (basic_block bb, gimp
+@@ -3817,6 +3817,12 @@ expand_call_inline (basic_block bb, gimp
        goto egress;
  
        if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn))
-+      /* For extern inline functions that get redefined we always
-+         silently ignored alway_inline flag. Better behaviour would
-+         be to be able to keep both bodies and use extern inline body
-+         for inlining, but we can't do that because frontends overwrite
-+         the body.  */
++          /* For extern inline functions that get redefined we always
++           silently ignored always_inline flag. Better behaviour would
++           be to be able to keep both bodies and use extern inline body
++           for inlining, but we can't do that because frontends overwrite
++           the body.  */
 +        && !cg_edge->callee->local.redefined_extern_inline
          /* Avoid warnings during early inline pass. */
-         && cgraph_global_info_ready)
-       {
+         && cgraph_global_info_ready
+         /* PR 20090218-1_0.c. Body can be provided by another module. */
 --- gcc/testsuite/gcc.dg/pr33763.c.jj  2007-11-06 16:19:12.000000000 +0100
 +++ gcc/testsuite/gcc.dg/pr33763.c     2007-11-06 16:19:12.000000000 +0100
 @@ -0,0 +1,60 @@
similarity index 87%
rename from gcc/patches/gcc46-pr38757.patch0
rename to gcc/patches/gcc47-pr38757.patch0
index 5e6bf5780da322df5c859b38efab08d36fd9e85e..5fd23ea5c3523e980972bc5cf828657642c8254c 100644 (file)
@@ -46,7 +46,7 @@
  #endif /* GCC_LANG_HOOKS_DEF_H */
 --- gcc/c-lang.c.jj    2011-01-03 12:53:05.376056936 +0100
 +++ gcc/c-lang.c       2011-01-04 17:59:43.167743798 +0100
-@@ -36,6 +36,12 @@ along with GCC; see the file COPYING3.  
+@@ -36,6 +36,12 @@ along with GCC; see the file COPYING3.
  
  enum c_language_kind c_language = clk_c;
  
  /* Lang hooks common to C and ObjC are declared in c-objc-common.h;
     consequently, there should be very few hooks below.  */
  
-@@ -43,6 +49,8 @@ enum c_language_kind c_language = clk_c;
- #define LANG_HOOKS_NAME "GNU C"
- #undef LANG_HOOKS_INIT
+@@ -45,6 +51,8 @@ enum c_language_kind c_language = clk_c;
  #define LANG_HOOKS_INIT c_objc_common_init
+ #undef LANG_HOOKS_INIT_TS
+ #define LANG_HOOKS_INIT_TS c_common_init_ts
 +#undef LANG_HOOKS_SOURCE_LANGUAGE
 +#define LANG_HOOKS_SOURCE_LANGUAGE c_source_language
  
@@ -70,7 +70,7 @@
  struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
 --- gcc/dwarf2out.c.jj 2011-01-03 12:53:05.102056475 +0100
 +++ gcc/dwarf2out.c    2011-01-04 18:03:14.534151763 +0100
-@@ -17650,9 +17650,18 @@ add_bit_size_attribute (dw_die_ref die, 
+@@ -15793,9 +15793,18 @@ add_bit_size_attribute (dw_die_ref die, 
  static inline void
  add_prototyped_attribute (dw_die_ref die, tree func_type)
  {
@@ -83,7 +83,7 @@
 +    case DW_LANG_C89:
 +    case DW_LANG_C99:
 +    case DW_LANG_ObjC:
-+      if (prototype_p (func_type) != NULL)
++      if (prototype_p (func_type))
 +      add_AT_flag (die, DW_AT_prototyped, 1);
 +      break;
 +    default:
  }
  
  /* Add an 'abstract_origin' attribute below a given DIE.  The DIE is found
-@@ -19875,6 +19884,10 @@ gen_compile_unit_die (const char *filena
-       language = DW_LANG_ObjC;
-       else if (strcmp (language_string, "GNU Objective-C++") == 0)
-       language = DW_LANG_ObjC_plus_plus;
+@@ -18438,6 +18447,10 @@ gen_compile_unit_die (const char *filena
+         if (strcmp (language_string, "GNU Go") == 0)
+           language = DW_LANG_Go;
+       }
 +      else if (strcmp (language_string, "GNU C") == 0
 +             && lang_hooks.source_language
 +             && lang_hooks.source_language () >= 1999)
index 3416a0a834f8602d34f344d63993d6fc3b171848..5a9f367d6bb560365f9cc7ee23c1b75589ea5e0a 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = gettext
 version    = 0.18.1.1
-release    = 7
+release    = 8
 
 groups     = System/Base
 url        = http://www.gnu.org/software/gettext/
@@ -51,6 +51,9 @@ build
                                chrpath -l ${i} && chrpath --delete ${i}
                        fi
                done
+
+               # Fix library permissions.
+               chmod 755 %{BUILDROOT}%{libdir}/preloadable_libintl.so
        end
 end
 
index 14040f78593975e87b35a9aa540ab9932c3af726..b8c52079621de592bc9e511cb7902d07b2864718 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = ghostscript
 version    = 9.05
-release    = 2
+release    = 2.1
 
 groups     = Applications/Printing
 url        = http://ghostscript.com
@@ -30,7 +30,6 @@ source_dl  = http://downloads.ghostscript.com/public/
 
 build
        requires
-               cups-devel
                dbus-devel
                expat-devel
                glib2-devel
index df2f449773588a726cff0e037b1fe0b8bf1605ea..361fad9217ee7071e3b6bc59fe9edba566a8bffd 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = git
 version    = 1.7.8.2
-release    = 1
+release    = 2
 
 groups     = Development/Tools
 url        = http://git-scm.com/
@@ -45,6 +45,9 @@ build
                echo "prefix = /usr" >> %{DIR_APP}/config.mak
                echo "gitwebdir = /var/www/git" >> %{DIR_APP}/config.mak
                echo "gitexecdir = lib/git-core" >> %{DIR_APP}/config.mak
+
+               # Remove shebang from bash-completion script.
+               sed -i '/^#!bash/,+1 d' contrib/completion/git-completion.bash
        end
 
        build
@@ -52,6 +55,13 @@ build
        end
 
        make_install_targets += INSTALLDIRS=vendor
+
+       install_cmds
+               # Install bash completion file.
+               mkdir -pv %{BUILDROOT}%{sysconfdir}/bash_completion.d
+               install -v -m 644 contrib/completion/git-completion.bash \
+                       %{BUILDROOT}%{sysconfdir}/bash_completion.d/git
+       end
 end
 
 packages
index 67c7fb097a1d6ba55aa90a2f61facf0c334bf336..62e04f0b47a6e05236961da3a0b64db89530eeac 100644 (file)
@@ -6,7 +6,7 @@
 name       = glib2
 ver_major  = 2.31
 version    = %{ver_major}.2
-release    = 1
+release    = 2
 thisapp    = glib-%{version}
 
 groups     = System/Libraries
@@ -40,12 +40,6 @@ build
                --with-pcre=system
 
        install_cmds
-               ./mkinstalldirs %{BUILDROOT}/lib
-               cd %{BUILDROOT}/usr/lib && for name in glib gobject gmodule gthread gio; do \
-                       mv -v lib${name}-2.0.so.* ../../lib; \
-                       ln -svf ../../lib/lib${name}-2.0.so.*.* lib${name}-2.0.so; \
-               done
-
                mkdir -pv %{BUILDROOT}/etc/profile.d/
                cp -vf %{DIR_SOURCE}/glib2-locale.sh %{BUILDROOT}/etc/profile.d/
        end
index e5a6aa0ff8034753a30b2efaff4d72685cc65fc2..8a12d01f7c1137bc7c9160f4f53e15f19e4ecfa0 100644 (file)
@@ -4,9 +4,8 @@
 ###############################################################################
 
 name       = glibc
-version    = 2.15
+version    = 2.16.0
 release    = 3
-thisapp    = %{name}-2.15-a316c1f
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = System/Base
@@ -25,10 +24,10 @@ description
 end
 
 # The version of the ports addon.
-ports_version = 2.15-8a70b2d
+ports_version = 2.16.0
 
 source_dl  = http://ftp.gnu.org/gnu/glibc/
-sources    = %{thisapp}.tar.gz glibc-ports-%{ports_version}.tar.gz
+sources    = %{thisapp}.tar.xz glibc-ports-%{ports_version}.tar.xz
 
 build
        # Optimize glibc for kernel
@@ -208,16 +207,15 @@ build
                # This would install all locales that are supported
                make localedata/install-locales install_root=%{BUILDROOT}
 
-               # Timezone
-               cp -v --remove-destination %{BUILDROOT}/usr/share/zoneinfo/GMT \
-                       %{BUILDROOT}/etc/localtime
-               rm -rf %{BUILDROOT}/usr/share/zoneinfo
-
                # Configuration
                cp -vf %{DIR_SOURCE}/{ld.so.conf,nsswitch.conf} %{BUILDROOT}/etc
                mkdir -pv %{BUILDROOT}/etc/{default,ld.so.conf.d}
                install -p -m644 %{DIR_APP}/nis/nss %{BUILDROOT}/etc/default/nss
 
+               if [ "%{DISTRO_ARCH}" = "armv7hl" ]; then
+                       ln -svf ld-linux-armhf.so.3 %{BUILDROOT}/lib/ld-linux.so.3
+               fi
+
                # Remove unused binaries
                rm -vf %{BUILDROOT}/sbin/sln \
                        %{BUILDROOT}/usr/bin/rpcinfo
@@ -233,6 +231,9 @@ build
 
                # Move some libs to correct place
                mv -v %{BUILDROOT}/%{lib}/lib{memusage,pcprofile}.so %{BUILDROOT}%{libdir}
+
+               # Fix library permissions.
+               chmod 755 %{BUILDROOT}%{libdir}/lib*.so*
        end
 
        keep_libraries
@@ -243,13 +244,22 @@ end
 
 packages
        package glibc
-               requires = glibc-common=%{thisver}
+               requires = glibc-common = %{thisver}
+
+               if "%{DISTRO_ARCH}" == "armv7hl"
+                       provides += ld-linux.so.3
+                       provides += ld-linux.so.3(GLIBC_2.4)
+                       provides += ld-linux.so.3(GLIBC_PRIVATE)
+               end
        end
 
        package glibc-common
                # XXX description and summary are missing
 
-               requires = tzdata
+               requires
+                       glibc = %{thisver}
+                       tzdata
+               end
 
                files
                        /usr/bin
@@ -275,9 +285,16 @@ packages
                end
                group = Development/Libraries
 
-               requires = glibc-headers=%{thisver}
+               requires
+                       glibc = %{thisver}
+                       glibc-headers = %{thisver}
+               end
 
-               files = %{libdir}/*.a %{libdir}/*.o
+               files
+                       %{includedir}
+                       %{libdir}/*.a
+                       %{libdir}/*.o
+               end
        end
 
        package glibc-headers
@@ -293,7 +310,10 @@ packages
                        use the standard C libraries.
                end
 
-               requires = kernel-headers
+               requires
+                       glibc = %{thisver}
+                       kernel-headers >= %{OPTIMIZED_KERNEL}
+               end
 
                files
                        /usr/include
diff --git a/glibc/patches/glibc-2.14-arm-hardened.patch0 b/glibc/patches/glibc-2.14-arm-hardened.patch0
deleted file mode 100644 (file)
index 0a1080a..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-patch by David Lamparter to fix build errors for hardened/arm systems.
-the logic in setjmp/__longjmp incorrectly tie to "PIC" to figure out
-whether the code is going into a shared library when it should be using
-"SHARED".  otherwise, building static PIC code goes wrong.
-
-https://bugs.gentoo.org/336914
-http://sourceware.org/ml/libc-ports/2011-09/msg00018.html
-
---- ports/sysdeps/arm/eabi/setjmp.S
-+++ ports/sysdeps/arm/eabi/setjmp.S
-@@ -37,7 +37,7 @@
-       add     a3, a3, a4
-       ldr     a3, [a3, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET]
- #else
--#ifdef PIC
-+#ifdef SHARED
-       ldr     a3, 1f
-       ldr     a4, Lrtld_global_ro
- 0:    add     a3, pc, a3
-@@ -84,7 +84,7 @@
- Lrtld_local_ro:
-       .long   C_SYMBOL_NAME(_rtld_local_ro)(GOTOFF)
- #else
--#ifdef PIC
-+#ifdef SHARED
- 1:    .long   _GLOBAL_OFFSET_TABLE_ - 0b - 8
- Lrtld_global_ro:
-       .long   C_SYMBOL_NAME(_rtld_global_ro)(GOT)
---- ports/sysdeps/arm/eabi/__longjmp.S
-+++ ports/sysdeps/arm/eabi/__longjmp.S
-@@ -43,7 +43,7 @@
-       add     a2, a2, a3
-       ldr     a2, [a2, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET]
- #else
--#ifdef PIC
-+#ifdef SHARED
-       ldr     a2, 1f
-       ldr     a3, Lrtld_global_ro
- 0:    add     a2, pc, a2
-@@ -87,7 +87,7 @@
- Lrtld_local_ro:
-       .long   C_SYMBOL_NAME(_rtld_local_ro)(GOTOFF)
- #else
--#ifdef PIC
-+#ifdef SHARED
- 1:    .long   _GLOBAL_OFFSET_TABLE_ - 0b - 8
- Lrtld_global_ro:
-       .long   C_SYMBOL_NAME(_rtld_global_ro)(GOT)
diff --git a/glibc/patches/glibc-arm-hardfloat-3.patch b/glibc/patches/glibc-arm-hardfloat-3.patch
new file mode 100644 (file)
index 0000000..ff4997e
--- /dev/null
@@ -0,0 +1,20 @@
+diff -Nrup a/elf/dl-load.c b/elf/dl-load.c
+--- a/elf/dl-load.c    2012-06-06 13:07:41.727524312 -0600
++++ b/elf/dl-load.c    2012-06-06 13:11:19.308681002 -0600
+@@ -2093,10 +2093,14 @@ _dl_map_object (struct link_map *loader,
+         soname = ((const char *) D_PTR (l, l_info[DT_STRTAB])
+                   + l->l_info[DT_SONAME]->d_un.d_val);
+         if (strcmp (name, soname) != 0)
+-          continue;
++#ifdef __arm__
++          if (strcmp (name, "ld-linux.so.3")
++              || strcmp (soname, "ld-linux-armhf.so.3"))
++#endif
++            continue;
+         /* We have a match on a new name -- cache it.  */
+-        add_name_to_object (l, soname);
++        add_name_to_object (l, name);
+         l->l_soname_added = 1;
+       }
index 25fa06736e285fce79a0af876f3a52b0ba7e7659..7b58d3ba6ee2e0b1030ce8b0c4722893a02d9ffe 100644 (file)
@@ -1,7 +1,7 @@
 diff -Nrup a/ChangeLog b/ChangeLog
---- a/ChangeLog        2012-01-01 05:16:32.000000000 -0700
-+++ b/ChangeLog        2012-01-01 20:41:26.621439845 -0700
-@@ -2542,6 +2542,11 @@
+--- a/ChangeLog        2012-06-05 07:42:49.000000000 -0600
++++ b/ChangeLog        2012-06-07 12:15:21.516319798 -0600
+@@ -12178,6 +12178,11 @@
  
        * sysdeps/mach/hurd/sys/param.h (DEV_BSIZE): New macro.
  
@@ -13,7 +13,7 @@ diff -Nrup a/ChangeLog b/ChangeLog
  2011-09-08  Andreas Schwab  <schwab@redhat.com>
  
        * elf/dl-load.c (lose): Check for non-null L.
-@@ -2804,6 +2809,11 @@
+@@ -12440,6 +12445,11 @@
        * sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Fix cfi
        directive.
  
@@ -25,7 +25,7 @@ diff -Nrup a/ChangeLog b/ChangeLog
  2011-08-24  David S. Miller  <davem@davemloft.net>
  
        * sysdeps/sparc/sparc64/strcmp.S: Rewrite.
-@@ -3609,6 +3619,14 @@
+@@ -13245,6 +13255,14 @@
        * config.make.in: Likewise.
        * malloc/Makefile: Likewise.
  
@@ -40,7 +40,7 @@ diff -Nrup a/ChangeLog b/ChangeLog
  2011-06-27  Andreas Schwab  <schwab@redhat.com>
  
        * iconvdata/gb18030.c (BODY for TO_LOOP): Fix encoding of non-BMP
-@@ -3740,6 +3758,10 @@
+@@ -13376,6 +13394,10 @@
  
        * inet/getnetgrent_r.c: Use DL_CALL_FCT in several places.
  
@@ -51,7 +51,7 @@ diff -Nrup a/ChangeLog b/ChangeLog
  2011-06-20  David S. Miller  <davem@davemloft.net>
  
        * sysdeps/sparc/sparc32/dl-plt.h: Protect against multiple
-@@ -4362,6 +4384,13 @@
+@@ -13998,6 +14020,13 @@
        * libio/Makefile (tests): Add bug-fclose1.
        * libio/bug-fclose1.c: New file.
  
@@ -65,7 +65,7 @@ diff -Nrup a/ChangeLog b/ChangeLog
  2011-05-12  Ulrich Drepper  <drepper@gmail.com>
  
        [BZ #12511]
-@@ -4639,13 +4668,6 @@
+@@ -14275,13 +14304,6 @@
        * stdlib/bug-getcontext.c: New file.
        * stdlib/Makefile: Add rules to build and run bug-getcontext.
  
@@ -79,56 +79,18 @@ diff -Nrup a/ChangeLog b/ChangeLog
  2011-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
  
        * sysdeps/s390/s390-32/elf/start.S (_start): Skip extra zeroes
-@@ -4883,6 +4905,31 @@
-       * sysdeps/unix/sysv/linux/Versions [GLIBC_2.14] (clock_adjtime):
-       Export.
-+2011-04-06  Andreas Schwab  <schwab@redhat.com>
-+
-+      * scripts/check-local-headers.sh: Ignore systemtap headers.
-+
-+2011-02-21  Roland McGrath  <roland@redhat.com>
-+
-+      * sysdeps/x86_64/__longjmp.S: Add a static probe here.
-+      * sysdeps/x86_64/setjmp.S: Likewise.
-+      * sysdeps/i386/bsd-setjmp.S: Likewise.
-+      * sysdeps/i386/bsd-_setjmp.S: Likewise.
-+      * sysdeps/i386/setjmp.S: Likewise.
-+      * sysdeps/i386/__longjmp.S: Likewise.
-+      * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S: Likewise.
-+      * sysdeps/unix/sysv/linux/i386/____longjmp_chk.S: Likewise.
-+
-+2011-02-08  Roland McGrath  <roland@redhat.com>
-+
-+      * include/stap-probe.h: New file.
-+      * configure.in: Handle --enable-systemtap.
-+      * configure: Regenerated.
-+      * config.h.in (USE_STAP_PROBE): New #undef.
-+      * extra-lib.mk (CPPFLAGS-$(lib)): Add -DIN_LIB=$(lib).
-+      * elf/Makefile (CPPFLAGS-.os): Add -DIN_LIB=rtld.
-+      * elf/rtld-Rules (rtld-CPPFLAGS): Likewise.
-+
- 2011-03-22  Ulrich Drepper  <drepper@gmail.com>
-       * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Increment
-@@ -4943,6 +4990,16 @@
+@@ -14579,6 +14601,10 @@
        $LDFLAGS and -nostdlib -nostartfiles to linking step.  Change main
        to _start.
  
 +2011-03-18  Andreas Schwab  <schwab@redhat.com>
 +
 +      * elf/ldd.bash.in: Never run file directly.
-+
-+2011-03-07  Andreas Schwab  <schwab@redhat.com>
-+
-+      * include/link.h (struct link_map): Remove l_orig_initfini.
-+      * elf/dl-close.c (_dl_close_worker): Revert its use.
-+      * elf/dl-deps.c (_dl_map_object_deps): Likewise.
 +
  2011-03-06  Ulrich Drepper  <drepper@gmail.com>
  
        * elf/dl-load.c (_dl_map_object): If we are looking for the first
-@@ -5159,6 +5216,12 @@
+@@ -14795,6 +14821,12 @@
        * shadow/sgetspent.c: Check return value of __sgetspent_r instead
        of errno.
  
@@ -141,19 +103,12 @@ diff -Nrup a/ChangeLog b/ChangeLog
  2011-01-19  Ulrich Drepper  <drepper@gmail.com>
  
        [BZ #11724]
-@@ -5846,6 +5909,26 @@
+@@ -15482,6 +15514,19 @@
        * sysdeps/unix/sysv/linux/internal_statvfs.c (INTERNAL_STATVFS):
        Mask out sign-bit copies when constructing f_fsid.
  
 +2010-09-27  Andreas Schwab  <schwab@redhat.com>
 +
-+      * include/link.h (struct link_map): Add l_free_initfini.
-+      * elf/dl-deps.c (_dl_map_object_deps): Set it when assigning
-+      l_initfini.
-+      * elf/rtld.c (dl_main): Clear it on all objects loaded on startup.
-+      * elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is
-+      set.
-+
 +      [BZ #11561]
 +      * posix/regcomp.c (parse_bracket_exp): When looking up collating
 +      elements compare against the byte sequence of it, not its name.
@@ -168,7 +123,7 @@ diff -Nrup a/ChangeLog b/ChangeLog
  2010-09-24  Petr Baudis <pasky@suse.cz>
  
        * debug/stack_chk_fail_local.c: Add missing licence exception.
-@@ -6638,6 +6721,17 @@
+@@ -16274,6 +16319,17 @@
        call returning > 0 value.
        * sysdeps/unix/sysv/linux/getlogin.c (getlogin): Likewise.
  
@@ -186,7 +141,7 @@ diff -Nrup a/ChangeLog b/ChangeLog
  2010-06-07  Andreas Schwab  <schwab@redhat.com>
  
        * dlfcn/Makefile: Remove explicit dependencies on libc.so and
-@@ -6690,6 +6784,21 @@
+@@ -16326,6 +16382,21 @@
        * hurd/hurd/fd.h (__file_name_lookup_at): Update comment.
        * sysdeps/mach/hurd/linkat.c (linkat): Pass O_NOLINK in FLAGS.
  
@@ -209,8 +164,8 @@ diff -Nrup a/ChangeLog b/ChangeLog
  
        * sysdeps/powerpc/powerpc32/power7/memcpy.S: Exchange srdi for srwi.
 diff -Nrup a/ChangeLog.15 b/ChangeLog.15
---- a/ChangeLog.15     2012-01-01 05:16:32.000000000 -0700
-+++ b/ChangeLog.15     2012-01-01 20:41:26.623439845 -0700
+--- a/ChangeLog.15     2012-06-05 07:42:49.000000000 -0600
++++ b/ChangeLog.15     2012-06-07 12:15:21.518319790 -0600
 @@ -477,6 +477,14 @@
  
  2004-11-26  Jakub Jelinek  <jakub@redhat.com>
@@ -226,33 +181,7 @@ diff -Nrup a/ChangeLog.15 b/ChangeLog.15
        * sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR.
  
  2004-11-26  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-@@ -1103,6 +1111,13 @@
-       * sysdeps/generic/tempname.c (__path_search): Add missing argument
-       TRY_TMPDIR.
-+2004-11-02  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * include/features.h (__USE_FORTIFY_LEVEL): Also set for Red Hat
-+      GCC 3.4.x-RH >= 3.4.2-8.
-+      * debug/tst-chk1.c (do_test): Deal with GCC 3.4.x-RH not
-+      being able to recognize subobjects.
-+
- 2004-10-31  Mariusz Mazur <mmazur@kernel.pl>
-       * sysdeps/unix/sysv/linux/alpha/setregid.c: New file.
-@@ -1443,6 +1458,11 @@
-       * sysdeps/generic/readonly-area.c (__readonly_str): Renamed to ...
-       (__readonly_area): ... this.
-+2004-10-19  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * include/features.h (__USE_FORTIFY_LEVEL): Enable even with
-+      Red Hat gcc4 4.0.0 and above.
-+
- 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
-       * sysdeps/generic/strcpy_chk.c (__strcpy_chk): Speed up by checking
-@@ -3182,6 +3202,23 @@
+@@ -3182,6 +3190,17 @@
        before return type.
        * locale/localename.c (__current_locale_name): Likewise.
  
@@ -266,19 +195,13 @@ diff -Nrup a/ChangeLog.15 b/ChangeLog.15
 +      Call add_arch_dirs.
 +      * sysdeps/generic/dl-cache.h (arch_startup, add_arch_dirs): Define.
 +      * sysdeps/unix/sysv/linux/i386/dl-cache.h: New file.
-+      * sysdeps/unix/sysv/linux/ia64/dl-cache.h (EMUL_HACK, arch_startup,
-+      add_arch_dirs): Define.
-+      * sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Prepend
-+      /emul/ia32-linux before the 32-bit ld.so pathname.
-+      * sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file.
-+      * sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file.
 +
  2004-08-30  Roland McGrath  <roland@frob.com>
  
        * scripts/extract-abilist.awk: If `lastversion' variable defined, omit
 diff -Nrup a/ChangeLog.16 b/ChangeLog.16
---- a/ChangeLog.16     2012-01-01 05:16:32.000000000 -0700
-+++ b/ChangeLog.16     2012-01-01 20:41:26.626439845 -0700
+--- a/ChangeLog.16     2012-06-05 07:42:49.000000000 -0600
++++ b/ChangeLog.16     2012-06-07 12:15:21.523319772 -0600
 @@ -2042,6 +2042,9 @@
        (__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT
        followed by __THROW.
@@ -302,8 +225,8 @@ diff -Nrup a/ChangeLog.16 b/ChangeLog.16
  
        * libio/genops.c: Include <stdbool.h>.
 diff -Nrup a/ChangeLog.17 b/ChangeLog.17
---- a/ChangeLog.17     2012-01-01 05:16:32.000000000 -0700
-+++ b/ChangeLog.17     2012-01-01 20:41:26.629439844 -0700
+--- a/ChangeLog.17     2012-06-05 07:42:49.000000000 -0600
++++ b/ChangeLog.17     2012-06-07 12:15:21.564319619 -0600
 @@ -256,6 +256,12 @@
  
        * Makerules (libc-abis): Fix search for libc-abis in add-ons.
@@ -329,19 +252,7 @@ diff -Nrup a/ChangeLog.17 b/ChangeLog.17
  2009-07-21  Ulrich Drepper  <drepper@redhat.com>
  
        * sysdeps/x86_64/multiarch/strstr.c: Minor cleanups.  Remove
-@@ -3218,6 +3229,11 @@ d2009-10-30  Ulrich Drepper  <drepper@re
-       out common code into new function get_common_indeces. Determine
-       extended family and model for Intel processors.
-+2009-06-26  Andreas Schwab  <aschwab@redhat.com>
-+
-+      * timezone/zic.c (stringzone): Don't try to generate a POSIX TZ
-+      string when the timezone ends in DST.
-+
- 2009-06-26  Ulrich Drepper  <drepper@redhat.com>
-       * resolv/resolv.h: Define RES_SNGLKUPREOP.
-@@ -11818,6 +11834,10 @@ d2009-10-30  Ulrich Drepper  <drepper@re
+@@ -11818,6 +11829,10 @@ d2009-10-30  Ulrich Drepper  <drepper@re
        [BZ #4368]
        * stdlib/stdlib.h: Remove obsolete part of comment for realpath.
  
@@ -352,7 +263,7 @@ diff -Nrup a/ChangeLog.17 b/ChangeLog.17
  2007-04-16  Ulrich Drepper  <drepper@redhat.com>
  
        [BZ #4364]
-@@ -13075,6 +13095,15 @@ d2009-10-30  Ulrich Drepper  <drepper@re
+@@ -13075,6 +13090,15 @@ d2009-10-30  Ulrich Drepper  <drepper@re
        separators also if no non-zero digits found.
        * stdlib/Makefile (tests): Add tst-strtod3.
  
@@ -369,9 +280,9 @@ diff -Nrup a/ChangeLog.17 b/ChangeLog.17
  
        [BZ #3632]
 diff -Nrup a/Makeconfig b/Makeconfig
---- a/Makeconfig       2012-01-01 05:16:32.000000000 -0700
-+++ b/Makeconfig       2012-01-01 20:41:26.630439843 -0700
-@@ -803,12 +803,12 @@ endif
+--- a/Makeconfig       2012-06-05 07:42:49.000000000 -0600
++++ b/Makeconfig       2012-06-07 12:15:21.568319604 -0600
+@@ -753,12 +753,12 @@ endif
  # The assembler can generate debug information too.
  ifndef ASFLAGS
  ifeq ($(have-cpp-asm-debuginfo),yes)
@@ -388,9 +299,9 @@ diff -Nrup a/Makeconfig b/Makeconfig
  ifndef BUILD_CC
  BUILD_CC = $(CC)
 diff -Nrup a/NEWS b/NEWS
---- a/NEWS     2012-01-01 05:16:32.000000000 -0700
-+++ b/NEWS     2012-01-01 20:41:26.631439843 -0700
-@@ -84,16 +84,6 @@ Version 2.14
+--- a/NEWS     2012-06-05 07:42:49.000000000 -0600
++++ b/NEWS     2012-06-07 12:15:21.569319601 -0600
+@@ -196,16 +196,6 @@ Version 2.14
    12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792,
    12795, 12811, 12813, 12814, 12841
  
@@ -407,140 +318,10 @@ diff -Nrup a/NEWS b/NEWS
  * New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at,
    syncfs, setns, sendmmsg
  
-diff -Nrup a/config.h.in b/config.h.in
---- a/config.h.in      2012-01-01 05:16:32.000000000 -0700
-+++ b/config.h.in      2012-01-01 20:41:26.632439843 -0700
-@@ -187,6 +187,9 @@
- /* Define if `.ctors' and `.dtors' sections shouldn't be used.  */
- #undef        NO_CTORS_DTORS_SECTIONS
-+/* Define if Systemtap <sys/sdt.h> probes should be defined.  */
-+#undef USE_STAP_PROBE
-+
- /*
\f */
-diff -Nrup a/configure b/configure
---- a/configure        2012-01-01 20:40:50.423446105 -0700
-+++ b/configure        2012-01-01 20:41:26.634439843 -0700
-@@ -791,6 +791,7 @@ enable_kernel
- enable_all_warnings
- enable_multi_arch
- enable_nss_crypt
-+enable_systemtap
- with_cpu
- '
-       ac_precious_vars='build_alias
-@@ -1450,6 +1451,7 @@ Optional Features:
-   --enable-multi-arch     enable single DSO with optimizations for multiple
-                           architectures
-   --enable-nss-crypt      enable libcrypt to use nss
-+  --enable-systemtap      enable systemtap static probe points [default=no]
- Optional Packages:
-   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-@@ -3804,6 +3806,51 @@ else
- fi
-+# Check whether --enable-systemtap was given.
-+if test "${enable_systemtap+set}" = set; then :
-+  enableval=$enable_systemtap; systemtap=$enableval
-+else
-+  systemtap=no
-+fi
-+
-+if test x$systemtap != xno; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemtap static probe support" >&5
-+$as_echo_n "checking for systemtap static probe support... " >&6; }
-+if test "${libc_cv_sdt+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+    old_CFLAGS="$CFLAGS"
-+  CFLAGS="-std=gnu99 $CFLAGS"
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+#include <sys/sdt.h>
-+void foo (int i, void *p)
-+{
-+  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
-+       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  libc_cv_sdt=yes
-+else
-+  libc_cv_sdt=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+  CFLAGS="$old_CFLAGS"
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sdt" >&5
-+$as_echo "$libc_cv_sdt" >&6; }
-+  if test $libc_cv_sdt = yes; then
-+    $as_echo "#define USE_STAP_PROBE 1" >>confdefs.h
-+
-+  else
-+    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+as_fn_error $? "systemtap support needs sys/sdt.h with asm support
-+See \`config.log' for more details" "$LINENO" 5; }
-+  fi
-+fi
-+
- # The way shlib-versions is used to generate soversions.mk uses a
- # fairly simplistic model for name recognition that can't distinguish
- # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
-diff -Nrup a/configure.in b/configure.in
---- a/configure.in     2012-01-01 05:16:32.000000000 -0700
-+++ b/configure.in     2012-01-01 20:41:26.635439843 -0700
-@@ -290,6 +290,29 @@ else
- fi
- AC_SUBST(libc_cv_nss_crypt)
-+AC_ARG_ENABLE([systemtap],
-+              [AS_HELP_STRING([--enable-systemtap],
-+             [enable systemtap static probe points @<:@default=no@:>@])],
-+              [systemtap=$enableval],
-+            [systemtap=no])
-+if test x$systemtap != xno; then
-+  AC_CACHE_CHECK([for systemtap static probe support], libc_cv_sdt, [dnl
-+  old_CFLAGS="$CFLAGS"
-+  CFLAGS="-std=gnu99 $CFLAGS"
-+  AC_COMPILE_IFELSE([#include <sys/sdt.h>
-+void foo (int i, void *p)
-+{
-+  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
-+       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
-+}], [libc_cv_sdt=yes], [libc_cv_sdt=no])
-+  CFLAGS="$old_CFLAGS"])
-+  if test $libc_cv_sdt = yes; then
-+    AC_DEFINE([USE_STAP_PROBE])
-+  else
-+    AC_MSG_FAILURE([systemtap support needs sys/sdt.h with asm support])
-+  fi
-+fi
-+
- # The way shlib-versions is used to generate soversions.mk uses a
- # fairly simplistic model for name recognition that can't distinguish
- # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
-diff -Nrup a/csu/Makefile b/csu/Makefile
---- a/csu/Makefile     2012-01-01 05:16:32.000000000 -0700
-+++ b/csu/Makefile     2012-01-01 20:41:26.635439843 -0700
-@@ -93,7 +93,8 @@ omit-deps += $(crtstuff)
- $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h
-       $(compile.S) -g0 $(ASFLAGS-.os) -o $@
--CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
-+CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \
-+                  -fno-asynchronous-unwind-tables
- vpath initfini.c $(sysdirs)
 diff -Nrup a/csu/elf-init.c b/csu/elf-init.c
---- a/csu/elf-init.c   2012-01-01 05:16:32.000000000 -0700
-+++ b/csu/elf-init.c   2012-01-01 20:41:26.636439843 -0700
-@@ -64,6 +64,23 @@ extern void (*__init_array_end []) (int,
+--- a/csu/elf-init.c   2012-06-05 07:42:49.000000000 -0600
++++ b/csu/elf-init.c   2012-06-07 12:15:21.570319597 -0600
+@@ -63,6 +63,23 @@ extern void (*__init_array_end []) (int,
  extern void (*__fini_array_start []) (void) attribute_hidden;
  extern void (*__fini_array_end []) (void) attribute_hidden;
  
@@ -565,11 +346,11 @@ diff -Nrup a/csu/elf-init.c b/csu/elf-init.c
  /* These function symbols are provided for the .init/.fini section entry
     points automagically by the linker.  */
 diff -Nrup a/debug/tst-chk1.c b/debug/tst-chk1.c
---- a/debug/tst-chk1.c 2012-01-01 05:16:32.000000000 -0700
-+++ b/debug/tst-chk1.c 2012-01-01 20:41:26.636439843 -0700
-@@ -17,6 +17,9 @@
-    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-    02111-1307 USA.  */
+--- a/debug/tst-chk1.c 2012-06-05 07:42:49.000000000 -0600
++++ b/debug/tst-chk1.c 2012-06-07 12:15:21.571319593 -0600
+@@ -16,6 +16,9 @@
+    License along with the GNU C Library; if not, see
+    <http://www.gnu.org/licenses/>.  */
  
 +/* Hack: make sure GCC doesn't know __chk_fail () will not return.  */
 +#define __noreturn__
@@ -577,7 +358,7 @@ diff -Nrup a/debug/tst-chk1.c b/debug/tst-chk1.c
  #include <assert.h>
  #include <fcntl.h>
  #include <locale.h>
-@@ -243,7 +246,7 @@ do_test (void)
+@@ -244,7 +247,7 @@ do_test (void)
    if (memcmp (a.buf1, "aabcdabcjj", 10))
      FAIL ();
  
@@ -586,7 +367,7 @@ diff -Nrup a/debug/tst-chk1.c b/debug/tst-chk1.c
    /* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2
       and sufficient GCC support, as the string operations overflow
       from a.buf1 into a.buf2.  */
-@@ -358,7 +361,7 @@ do_test (void)
+@@ -359,7 +362,7 @@ do_test (void)
    memset (a.buf1 + 9, 'j', l0 + 2);
    CHK_FAIL_END
  
@@ -596,9 +377,9 @@ diff -Nrup a/debug/tst-chk1.c b/debug/tst-chk1.c
  # else
  #  define O 1
 diff -Nrup a/elf/Makefile b/elf/Makefile
---- a/elf/Makefile     2012-01-01 05:16:32.000000000 -0700
-+++ b/elf/Makefile     2012-01-01 20:41:26.637439843 -0700
-@@ -135,6 +135,7 @@ include ../Makeconfig
+--- a/elf/Makefile     2012-06-05 07:42:49.000000000 -0600
++++ b/elf/Makefile     2012-06-07 12:15:21.572319589 -0600
+@@ -50,6 +50,7 @@ include ../Makeconfig
  ifeq ($(unwind-find-fde),yes)
  routines += unwind-dw2-fde-glibc
  shared-only-routines += unwind-dw2-fde-glibc
@@ -606,71 +387,10 @@ diff -Nrup a/elf/Makefile b/elf/Makefile
  endif
  
  before-compile  = $(objpfx)trusted-dirs.h
-@@ -505,7 +506,8 @@ CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'
- CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
- CFLAGS-cache.c = $(SYSCONF-FLAGS)
--CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1)
-+CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
-+                   -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld)
- test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
- generated += $(addsuffix .so,$(strip $(modules-names)))
-diff -Nrup a/elf/dl-close.c b/elf/dl-close.c
---- a/elf/dl-close.c   2012-01-01 05:16:32.000000000 -0700
-+++ b/elf/dl-close.c   2012-01-01 20:41:26.638439843 -0700
-@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
-   if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
-       || dl_close_state != not_pending)
-     {
--      if (map->l_direct_opencount == 0)
--      {
--        if (map->l_type == lt_loaded)
--          dl_close_state = rerun;
--        else if (map->l_type == lt_library)
--          {
--            struct link_map **oldp = map->l_initfini;
--            map->l_initfini = map->l_orig_initfini;
--            _dl_scope_free (oldp);
--          }
--      }
-+      if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
-+      dl_close_state = rerun;
-       /* There are still references to this object.  Do nothing more.  */
-       if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
-diff -Nrup a/elf/dl-deps.c b/elf/dl-deps.c
---- a/elf/dl-deps.c    2012-01-01 05:16:32.000000000 -0700
-+++ b/elf/dl-deps.c    2012-01-01 20:41:26.638439843 -0700
-@@ -489,6 +489,7 @@ _dl_map_object_deps (struct link_map *ma
-                 nneeded * sizeof needed[0]);
-         atomic_write_barrier ();
-         l->l_initfini = l_initfini;
-+        l->l_free_initfini = 1;
-       }
-       /* If we have no auxiliary objects just go on to the next map.  */
-@@ -689,6 +690,7 @@ Filters not supported with LD_TRACE_PREL
-   l_initfini[nlist] = NULL;
-   atomic_write_barrier ();
-   map->l_initfini = l_initfini;
-+  map->l_free_initfini = 1;
-   if (l_reldeps != NULL)
-     {
-       atomic_write_barrier ();
-@@ -697,7 +699,7 @@ Filters not supported with LD_TRACE_PREL
-       _dl_scope_free (old_l_reldeps);
-     }
-   if (old_l_initfini != NULL)
--      map->l_orig_initfini = old_l_initfini;
-+    _dl_scope_free (old_l_initfini);
-   if (errno_reason)
-     _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
 diff -Nrup a/elf/dl-init.c b/elf/dl-init.c
---- a/elf/dl-init.c    2012-01-01 05:16:32.000000000 -0700
-+++ b/elf/dl-init.c    2012-01-01 20:41:26.639439843 -0700
-@@ -24,11 +24,9 @@
+--- a/elf/dl-init.c    2012-06-05 07:42:49.000000000 -0600
++++ b/elf/dl-init.c    2012-06-07 12:15:21.573319585 -0600
+@@ -23,11 +23,9 @@
  /* Type of the initializer.  */
  typedef void (*init_t) (int, char **, char **);
  
@@ -682,7 +402,7 @@ diff -Nrup a/elf/dl-init.c b/elf/dl-init.c
  
  
  static void
-@@ -133,9 +131,7 @@ _dl_init (struct link_map *main_map, int
+@@ -132,9 +130,7 @@ _dl_init (struct link_map *main_map, int
    while (i-- > 0)
      call_init (main_map->l_initfini[i], argc, argv, env);
  
@@ -692,39 +412,10 @@ diff -Nrup a/elf/dl-init.c b/elf/dl-init.c
 -#endif
  }
  INTDEF (_dl_init)
-diff -Nrup a/elf/dl-libc.c b/elf/dl-libc.c
---- a/elf/dl-libc.c    2012-01-01 05:16:32.000000000 -0700
-+++ b/elf/dl-libc.c    2012-01-01 20:41:26.639439843 -0700
-@@ -270,13 +270,13 @@ libc_freeres_fn (free_mem)
-   for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
-     {
--      /* Remove all additional names added to the objects.  */
-       for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
-       {
-         struct libname_list *lnp = l->l_libname->next;
-         l->l_libname->next = NULL;
-+        /* Remove all additional names added to the objects.  */
-         while (lnp != NULL)
-           {
-             struct libname_list *old = lnp;
-@@ -284,6 +284,10 @@ libc_freeres_fn (free_mem)
-             if (! old->dont_free)
-               free (old);
-           }
-+
-+        /* Free the initfini dependency list.  */
-+        if (l->l_free_initfini)
-+          free (l->l_initfini);
-       }
-       if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
 diff -Nrup a/elf/dl-load.c b/elf/dl-load.c
---- a/elf/dl-load.c    2012-01-01 05:16:32.000000000 -0700
-+++ b/elf/dl-load.c    2012-01-01 20:41:26.640439842 -0700
-@@ -250,8 +250,7 @@ is_trusted_path_normalize (const char *p
+--- a/elf/dl-load.c    2012-06-05 07:42:49.000000000 -0600
++++ b/elf/dl-load.c    2012-06-07 12:15:21.575319577 -0600
+@@ -249,8 +249,7 @@ is_trusted_path_normalize (const char *p
  
  
  static size_t
@@ -734,7 +425,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c
  {
    size_t len;
    bool is_curly = false;
-@@ -280,12 +279,6 @@ is_dst (const char *start, const char *n
+@@ -279,12 +278,6 @@ is_dst (const char *start, const char *n
           && (!is_path || name[len] != ':'))
      return 0;
  
@@ -747,7 +438,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c
    return len;
  }
  
-@@ -300,13 +293,10 @@ _dl_dst_count (const char *name, int is_
+@@ -299,13 +292,10 @@ _dl_dst_count (const char *name, int is_
      {
        size_t len;
  
@@ -764,7 +455,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c
        ++cnt;
  
        name = strchr (name + len, '$');
-@@ -339,9 +329,16 @@ _dl_dst_substitute (struct link_map *l,
+@@ -338,9 +328,16 @@ _dl_dst_substitute (struct link_map *l,
          size_t len;
  
          ++name;
@@ -783,7 +474,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c
  #ifndef SHARED
              if (l == NULL)
                repl = _dl_get_origin ();
-@@ -352,9 +349,9 @@ _dl_dst_substitute (struct link_map *l,
+@@ -351,9 +348,9 @@ _dl_dst_substitute (struct link_map *l,
              check_for_trusted = (INTUSE(__libc_enable_secure)
                                   && l->l_type == lt_executable);
            }
@@ -795,7 +486,7 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c
            repl = DL_DST_LIB;
  
          if (repl != NULL && repl != (const char *) -1)
-@@ -374,6 +371,7 @@ _dl_dst_substitute (struct link_map *l,
+@@ -373,6 +370,7 @@ _dl_dst_substitute (struct link_map *l,
                 element, but keep an empty element at the end.  */
              if (wp == result && is_path && *name == ':' && name[1] != '\0')
                ++name;
@@ -804,9 +495,9 @@ diff -Nrup a/elf/dl-load.c b/elf/dl-load.c
          else
            /* No DST we recognize.  */
 diff -Nrup a/elf/dl-support.c b/elf/dl-support.c
---- a/elf/dl-support.c 2012-01-01 05:16:32.000000000 -0700
-+++ b/elf/dl-support.c 2012-01-01 20:41:26.641439841 -0700
-@@ -82,10 +82,8 @@ unsigned long long _dl_load_adds;
+--- a/elf/dl-support.c 2012-06-05 07:42:49.000000000 -0600
++++ b/elf/dl-support.c 2012-06-07 12:15:21.576319573 -0600
+@@ -81,10 +81,8 @@ unsigned long long _dl_load_adds;
     create a fake scope containing nothing.  */
  struct r_scope_elem _dl_initial_searchlist;
  
@@ -818,9 +509,9 @@ diff -Nrup a/elf/dl-support.c b/elf/dl-support.c
  /* Random data provided by the kernel.  */
  void *_dl_random;
 diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c
---- a/elf/ldconfig.c   2012-01-01 05:16:32.000000000 -0700
-+++ b/elf/ldconfig.c   2012-01-01 20:41:26.641439841 -0700
-@@ -1034,17 +1034,19 @@ search_dirs (void)
+--- a/elf/ldconfig.c   2012-06-05 07:42:49.000000000 -0600
++++ b/elf/ldconfig.c   2012-06-07 12:15:21.577319570 -0600
+@@ -1033,17 +1033,19 @@ search_dirs (void)
  
  
  static void parse_conf_include (const char *config_file, unsigned int lineno,
@@ -842,7 +533,7 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c
  
    if (do_chroot && opt_chroot)
      {
-@@ -1105,7 +1107,14 @@ parse_conf (const char *filename, bool d
+@@ -1106,7 +1108,14 @@ Warning: ignoring configuration file tha
          cp += 8;
          while ((dir = strsep (&cp, " \t")) != NULL)
            if (dir[0] != '\0')
@@ -858,7 +549,7 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c
        }
        else if (!strncasecmp (cp, "hwcap", 5) && isblank (cp[5]))
        {
-@@ -1168,7 +1177,7 @@ parse_conf (const char *filename, bool d
+@@ -1169,7 +1178,7 @@ Warning: ignoring configuration file tha
     config files to read.  */
  static void
  parse_conf_include (const char *config_file, unsigned int lineno,
@@ -867,7 +558,7 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c
  {
    if (opt_chroot && pattern[0] != '/')
      error (EXIT_FAILURE, 0,
-@@ -1200,7 +1209,7 @@ parse_conf_include (const char *config_f
+@@ -1201,7 +1210,7 @@ parse_conf_include (const char *config_f
      {
      case 0:
        for (size_t i = 0; i < gl.gl_pathc; ++i)
@@ -876,7 +567,7 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c
        globfree64 (&gl);
        break;
  
-@@ -1243,6 +1252,8 @@ main (int argc, char **argv)
+@@ -1244,6 +1253,8 @@ main (int argc, char **argv)
    /* Set the text message domain.  */
    textdomain (_libc_intl_domainname);
  
@@ -885,7 +576,7 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c
    /* Parse and process arguments.  */
    int remaining;
    argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-@@ -1352,12 +1363,14 @@ main (int argc, char **argv)
+@@ -1353,12 +1364,14 @@ main (int argc, char **argv)
  
    if (!opt_only_cline)
      {
@@ -902,9 +593,9 @@ diff -Nrup a/elf/ldconfig.c b/elf/ldconfig.c
  
    const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE;
 diff -Nrup a/elf/ldd.bash.in b/elf/ldd.bash.in
---- a/elf/ldd.bash.in  2012-01-01 05:16:32.000000000 -0700
-+++ b/elf/ldd.bash.in  2012-01-01 20:41:26.642439841 -0700
-@@ -167,18 +167,6 @@ warning: you do not have execution permi
+--- a/elf/ldd.bash.in  2012-06-05 07:42:49.000000000 -0600
++++ b/elf/ldd.bash.in  2012-06-07 12:15:21.577319570 -0600
+@@ -166,18 +166,6 @@ warning: you do not have execution permi
        fi
      done
      case $ret in
@@ -923,7 +614,7 @@ diff -Nrup a/elf/ldd.bash.in b/elf/ldd.bash.in
      1)
        # This can be a non-ELF binary or no binary at all.
        nonelf "$file" || {
-@@ -186,7 +174,7 @@ warning: you do not have execution permi
+@@ -185,7 +173,7 @@ warning: you do not have execution permi
        result=1
        }
        ;;
@@ -932,30 +623,10 @@ diff -Nrup a/elf/ldd.bash.in b/elf/ldd.bash.in
        try_trace "$RTLD" "$file" || result=1
        ;;
      *)
-diff -Nrup a/elf/rtld-Rules b/elf/rtld-Rules
---- a/elf/rtld-Rules   2012-01-01 05:16:32.000000000 -0700
-+++ b/elf/rtld-Rules   2012-01-01 20:41:26.642439841 -0700
-@@ -1,7 +1,7 @@
- # Subroutine makefile for compiling libc modules linked into dynamic linker.
- # Copyright (C) 2002,2003,2005,2006,2008,2010,2011
--#   Free Software Foundation, Inc.
-+#     Free Software Foundation, Inc.
- # This file is part of the GNU C Library.
- # The GNU C Library is free software; you can redistribute it and/or
-@@ -131,6 +131,6 @@ ifdef rtld-depfiles
- endif
- # This here is the whole point of all the shenanigans.
--rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1
-+rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld
- endif
 diff -Nrup a/elf/rtld.c b/elf/rtld.c
---- a/elf/rtld.c       2012-01-01 05:16:32.000000000 -0700
-+++ b/elf/rtld.c       2012-01-01 20:41:26.643439841 -0700
-@@ -107,7 +107,6 @@ static struct audit_list
+--- a/elf/rtld.c       2012-06-05 07:42:49.000000000 -0600
++++ b/elf/rtld.c       2012-06-07 12:15:21.579319564 -0600
+@@ -106,7 +106,6 @@ static struct audit_list
    struct audit_list *next;
  } *audit_list;
  
@@ -963,7 +634,7 @@ diff -Nrup a/elf/rtld.c b/elf/rtld.c
  /* Set nonzero during loading and initialization of executable and
     libraries, cleared before the executable's entry point runs.  This
     must not be initialized to nonzero, because the unused dynamic
-@@ -117,7 +116,6 @@ static struct audit_list
+@@ -116,7 +115,6 @@ static struct audit_list
     never be called.  */
  int _dl_starting_up = 0;
  INTVARDEF(_dl_starting_up)
@@ -982,7 +653,7 @@ diff -Nrup a/elf/rtld.c b/elf/rtld.c
  
    if (*user_entry == (ElfW(Addr)) ENTRY_POINT)
      {
-@@ -1397,7 +1393,9 @@ of this helper program; chances are you
+@@ -1408,7 +1404,9 @@ of this helper program; chances are you
              char *copy = malloc (len);
              if (copy == NULL)
                _dl_fatal_printf ("out of memory\n");
@@ -993,15 +664,7 @@ diff -Nrup a/elf/rtld.c b/elf/rtld.c
            }
  
          /* Add the vDSO to the object list.  */
-@@ -2276,6 +2274,7 @@ ERROR: ld.so: object '%s' cannot be load
-             lnp->dont_free = 1;
-             lnp = lnp->next;
-           }
-+        l->l_free_initfini = 0;
-         if (l != &GL(dl_rtld_map))
-           _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
-@@ -2327,7 +2326,6 @@ ERROR: ld.so: object '%s' cannot be load
+@@ -2343,7 +2341,6 @@ ERROR: ld.so: object '%s' cannot be load
  
    /* Make sure no new search directories have been added.  */
    assert (GLRO(dl_init_all_dirs) == GL(dl_all_dirs));
@@ -1009,88 +672,20 @@ diff -Nrup a/elf/rtld.c b/elf/rtld.c
    if (! prelinked && rtld_multiple_ref)
      {
        /* There was an explicit ref to the dynamic linker as a shared lib.
-diff -Nrup a/extra-lib.mk b/extra-lib.mk
---- a/extra-lib.mk     2012-01-01 05:16:32.000000000 -0700
-+++ b/extra-lib.mk     2012-01-01 20:41:26.644439841 -0700
-@@ -101,4 +101,4 @@ ifneq (,$(cpp-srcs-left))
- include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
- endif
--CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1
-+CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 -DIN_LIB=$(lib)
 diff -Nrup a/include/bits/stdlib-ldbl.h b/include/bits/stdlib-ldbl.h
 --- a/include/bits/stdlib-ldbl.h       1969-12-31 17:00:00.000000000 -0700
-+++ b/include/bits/stdlib-ldbl.h       2012-01-01 20:41:26.644439841 -0700
++++ b/include/bits/stdlib-ldbl.h       2012-06-07 12:15:21.580319560 -0600
 @@ -0,0 +1 @@
 +#include <stdlib/bits/stdlib-ldbl.h>
 diff -Nrup a/include/bits/wchar-ldbl.h b/include/bits/wchar-ldbl.h
 --- a/include/bits/wchar-ldbl.h        1969-12-31 17:00:00.000000000 -0700
-+++ b/include/bits/wchar-ldbl.h        2012-01-01 20:41:26.644439841 -0700
++++ b/include/bits/wchar-ldbl.h        2012-06-07 12:15:21.580319560 -0600
 @@ -0,0 +1 @@
 +#include <wcsmbs/bits/wchar-ldbl.h>
-diff -Nrup a/include/features.h b/include/features.h
---- a/include/features.h       2012-01-01 05:16:32.000000000 -0700
-+++ b/include/features.h       2012-01-01 20:41:26.644439841 -0700
-@@ -310,8 +310,13 @@
- #endif
- #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
--    && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
--# if _FORTIFY_SOURCE > 1
-+    && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
-+# if !__GNUC_PREREQ (4, 1)
-+#  ifdef __GNUC_RH_RELEASE__
-+#   warning _FORTIFY_SOURCE supported only with GCC 4.1 and later
-+#  endif
-+#  define __USE_FORTIFY_LEVEL 0
-+# elif _FORTIFY_SOURCE > 1
- #  define __USE_FORTIFY_LEVEL 2
- # else
- #  define __USE_FORTIFY_LEVEL 1
-diff -Nrup a/include/libc-symbols.h b/include/libc-symbols.h
---- a/include/libc-symbols.h   2012-01-01 05:16:32.000000000 -0700
-+++ b/include/libc-symbols.h   2012-01-01 20:41:26.645439841 -0700
-@@ -626,7 +626,7 @@ for linking")
- # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
- # define libc_hidden_def(name) hidden_def (name)
- # define libc_hidden_weak(name) hidden_weak (name)
--# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
-+# define libc_hidden_nolink(name, version) hidden_def (name)
- # define libc_hidden_ver(local, name) hidden_ver (local, name)
- # define libc_hidden_data_def(name) hidden_data_def (name)
- # define libc_hidden_data_weak(name) hidden_data_weak (name)
 diff -Nrup a/include/link.h b/include/link.h
---- a/include/link.h   2012-01-01 05:16:32.000000000 -0700
-+++ b/include/link.h   2012-01-01 20:41:26.646439841 -0700
-@@ -1,6 +1,6 @@
- /* Data structure for communication from the run-time dynamic linker for
-    loaded ELF shared objects.
--   Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
-+   Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -192,6 +192,9 @@ struct link_map
-                                                during LD_TRACE_PRELINKING=1
-                                                contains any DT_SYMBOLIC
-                                                libraries.  */
-+    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
-+                                     freed, ie. not allocated with
-+                                     the dummy malloc in ld.so.  */
-     /* Collected information about own RPATH directories.  */
-     struct r_search_path_struct l_rpath_dirs;
-@@ -240,9 +243,6 @@ struct link_map
-     /* List of object in order of the init and fini calls.  */
-     struct link_map **l_initfini;
--    /* The init and fini list generated at startup, saved when the
--       object is also loaded dynamically.  */
--    struct link_map **l_orig_initfini;
-     /* List of the dependencies introduced through symbol binding.  */
-     struct link_map_reldeps
-@@ -290,7 +290,7 @@ struct link_map
+--- a/include/link.h   2012-06-05 07:42:49.000000000 -0600
++++ b/include/link.h   2012-06-07 12:15:21.581319556 -0600
+@@ -289,7 +289,7 @@ struct link_map
  #endif
  #ifndef FORCED_DYNAMIC_TLS_OFFSET
  # if NO_TLS_OFFSET == 0
@@ -1099,163 +694,20 @@ diff -Nrup a/include/link.h b/include/link.h
  # elif NO_TLS_OFFSET == -1
  #  define FORCED_DYNAMIC_TLS_OFFSET -2
  # else
-diff -Nrup a/include/stap-probe.h b/include/stap-probe.h
---- a/include/stap-probe.h     1969-12-31 17:00:00.000000000 -0700
-+++ b/include/stap-probe.h     2012-01-01 20:41:26.646439841 -0700
-@@ -0,0 +1,140 @@
-+/* Macros for defining Systemtap <sys/sdt.h> static probe points.
-+   Copyright (C) 2011 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library 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
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#ifndef _STAP_PROBE_H
-+#define _STAP_PROBE_H 1
-+
-+#ifdef USE_STAP_PROBE
-+
-+# include <sys/sdt.h>
-+
-+/* Our code uses one macro LIBC_PROBE (name, n, arg1, ..., argn).
-+
-+   Without USE_STAP_PROBE, that does nothing but evaluates all
-+   its arguments (to prevent bit rot, unlike e.g. assert).
-+
-+   Systemtap's header defines the macros STAP_PROBE (provider, name) and
-+   STAP_PROBEn (provider, name, arg1, ..., argn).  For "provider" we paste
-+   in the IN_LIB name (libc, libpthread, etc.) automagically.  */
-+
-+# ifndef NOT_IN_libc
-+#  define IN_LIB      libc
-+# elif !defined IN_LIB
-+/* This is intentionally defined with extra unquoted commas in it so
-+   that macro substitution will bomb out when it is used.  We don't
-+   just use #error here, so that this header can be included by
-+   other headers that use LIBC_PROBE inside their own macros.  We
-+   only want such headers to fail to compile if those macros are
-+   actually used in a context where IN_LIB has not been defined.  */
-+#  define IN_LIB      ,,,missing -DIN_LIB=... -- not extra-lib.mk?,,,
-+# endif
-+
-+# define LIBC_PROBE(name, n, ...)     \
-+  LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__)
-+
-+# define LIBC_PROBE_1(lib, name, n, ...) \
-+  STAP_PROBE##n (lib, name, ## __VA_ARGS__)
-+
-+# define STAP_PROBE0          STAP_PROBE
-+
-+# define LIBC_PROBE_ASM(name, template) \
-+  STAP_PROBE_ASM (IN_LIB, name, template)
-+
-+# define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS
-+
-+#else  /* Not USE_STAP_PROBE.  */
-+
-+# ifndef __ASSEMBLER__
-+#  define LIBC_PROBE(name, n, ...)            DUMMY_PROBE##n (__VA_ARGS__)
-+# else
-+#  define LIBC_PROBE(name, n, ...)            /* Nothing.  */
-+# endif
-+
-+# define LIBC_PROBE_ASM(name, template)               /* Nothing.  */
-+# define LIBC_PROBE_ASM_OPERANDS(n, ...)      /* Nothing.  */
-+
-+/* This silliness lets us evaluate all the arguments for each arity
-+   of probe.  My kingdom for a real macro system.  */
-+
-+# define DUMMY_PROBE0()                       do {} while (0)
-+# define DUMMY_PROBE1(a1)             do {} while ((void) (a1), 0)
-+# define DUMMY_PROBE2(a1, a2)         do {} while ((void) (a1), \
-+                                                   (void) (a2), 0)
-+# define DUMMY_PROBE3(a1, a2, a3)     do {} while ((void) (a1), \
-+                                                   (void) (a2), \
-+                                                   (void) (a3), 0)
-+# define DUMMY_PROBE4(a1, a2, a3, a4) do {} while ((void) (a1), \
-+                                                   (void) (a2), \
-+                                                   (void) (a3), \
-+                                                   (void) (a4), 0)
-+# define DUMMY_PROBE5(a1, a2, a3, a4, a5)                       \
-+                                      do {} while ((void) (a1), \
-+                                                   (void) (a2), \
-+                                                   (void) (a3), \
-+                                                   (void) (a4), \
-+                                                   (void) (a5), 0)
-+# define DUMMY_PROBE6(a1, a2, a3, a4, a5, a6)                   \
-+                                      do {} while ((void) (a1), \
-+                                                   (void) (a2), \
-+                                                   (void) (a3), \
-+                                                   (void) (a4), \
-+                                                   (void) (a5), \
-+                                                   (void) (a6), 0)
-+# define DUMMY_PROBE7(a1, a2, a3, a4, a5, a6, a7)               \
-+                                      do {} while ((void) (a1), \
-+                                                   (void) (a2), \
-+                                                   (void) (a3), \
-+                                                   (void) (a4), \
-+                                                   (void) (a5), \
-+                                                   (void) (a6), \
-+                                                   (void) (a7), 0)
-+# define DUMMY_PROBE8(a1, a2, a3, a4, a5, a6, a7, a8)           \
-+                                      do {} while ((void) (a1), \
-+                                                   (void) (a2), \
-+                                                   (void) (a3), \
-+                                                   (void) (a4), \
-+                                                   (void) (a5), \
-+                                                   (void) (a6), \
-+                                                   (void) (a7), \
-+                                                   (void) (a8), 0)
-+# define DUMMY_PROBE9(a1, a2, a3, a4, a5, a6, a7, a8, a9)       \
-+                                      do {} while ((void) (a1), \
-+                                                   (void) (a2), \
-+                                                   (void) (a3), \
-+                                                   (void) (a4), \
-+                                                   (void) (a5), \
-+                                                   (void) (a6), \
-+                                                   (void) (a7), \
-+                                                   (void) (a8), \
-+                                                   (void) (a9), 0)
-+# define DUMMY_PROBE10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)         \
-+                                      do {} while ((void) (a1), \
-+                                                   (void) (a2), \
-+                                                   (void) (a3), \
-+                                                   (void) (a4), \
-+                                                   (void) (a5), \
-+                                                   (void) (a6), \
-+                                                   (void) (a7), \
-+                                                   (void) (a8), \
-+                                                   (void) (a9), \
-+                                                   (void) (a10), 0)
-+
-+#endif        /* USE_STAP_PROBE.  */
-+
-+#endif        /* stap-probe.h */
 diff -Nrup a/include/sys/resource.h b/include/sys/resource.h
---- a/include/sys/resource.h   2012-01-01 05:16:32.000000000 -0700
-+++ b/include/sys/resource.h   2012-01-01 20:41:26.647439841 -0700
-@@ -13,4 +13,5 @@ extern int __getrusage (enum __rusage_wh
+--- a/include/sys/resource.h   2012-06-05 07:42:49.000000000 -0600
++++ b/include/sys/resource.h   2012-06-07 12:15:21.582319552 -0600
+@@ -14,5 +14,6 @@ extern int __getrusage (enum __rusage_wh
  
  extern int __setrlimit (enum __rlimit_resource __resource,
                        const struct rlimit *__rlimits);
 +libc_hidden_proto (__getrlimit)
  #endif
+ #endif
 diff -Nrup a/inet/Makefile b/inet/Makefile
---- a/inet/Makefile    2012-01-01 05:16:32.000000000 -0700
-+++ b/inet/Makefile    2012-01-01 20:41:26.647439841 -0700
-@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa
+--- a/inet/Makefile    2012-06-05 07:42:49.000000000 -0600
++++ b/inet/Makefile    2012-06-07 12:15:21.582319552 -0600
+@@ -54,6 +54,8 @@ tests := htontest test_ifindex tst-ntoa
  
  include ../Rules
  
@@ -1265,9 +717,9 @@ diff -Nrup a/inet/Makefile b/inet/Makefile
  
  CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions
 diff -Nrup a/intl/locale.alias b/intl/locale.alias
---- a/intl/locale.alias        2012-01-01 05:16:32.000000000 -0700
-+++ b/intl/locale.alias        2012-01-01 20:41:26.647439841 -0700
-@@ -57,8 +57,6 @@ korean               ko_KR.eucKR
+--- a/intl/locale.alias        2012-06-05 07:42:49.000000000 -0600
++++ b/intl/locale.alias        2012-06-07 12:15:21.583319548 -0600
+@@ -56,8 +56,6 @@ korean               ko_KR.eucKR
  korean.euc    ko_KR.eucKR
  ko_KR         ko_KR.eucKR
  lithuanian      lt_LT.ISO-8859-13
@@ -1277,9 +729,9 @@ diff -Nrup a/intl/locale.alias b/intl/locale.alias
  nynorsk               nn_NO.ISO-8859-1
  polish          pl_PL.ISO-8859-2
 diff -Nrup a/libio/stdio.h b/libio/stdio.h
---- a/libio/stdio.h    2012-01-01 05:16:32.000000000 -0700
-+++ b/libio/stdio.h    2012-01-01 20:41:26.648439841 -0700
-@@ -169,10 +169,12 @@ typedef _G_fpos64_t fpos64_t;
+--- a/libio/stdio.h    2012-06-05 07:42:49.000000000 -0600
++++ b/libio/stdio.h    2012-06-07 12:15:21.584319544 -0600
+@@ -168,10 +168,12 @@ typedef _G_fpos64_t fpos64_t;
  extern struct _IO_FILE *stdin;                /* Standard input stream.  */
  extern struct _IO_FILE *stdout;               /* Standard output stream.  */
  extern struct _IO_FILE *stderr;               /* Standard error output stream.  */
@@ -1293,8 +745,8 @@ diff -Nrup a/libio/stdio.h b/libio/stdio.h
  __BEGIN_NAMESPACE_STD
  /* Remove file FILENAME.  */
 diff -Nrup a/locale/iso-4217.def b/locale/iso-4217.def
---- a/locale/iso-4217.def      2012-01-01 05:16:32.000000000 -0700
-+++ b/locale/iso-4217.def      2012-01-01 20:41:26.649439841 -0700
+--- a/locale/iso-4217.def      2012-06-05 07:42:49.000000000 -0600
++++ b/locale/iso-4217.def      2012-06-07 12:15:21.584319544 -0600
 @@ -8,6 +8,7 @@
   *
   * !!! The list has to be sorted !!!
@@ -1387,9 +839,9 @@ diff -Nrup a/locale/iso-4217.def b/locale/iso-4217.def
  DEFINE_INT_CURR("QAR")                /* Qatar Rial  */
  DEFINE_INT_CURR("ROL")                /* Romanian Leu  */
 diff -Nrup a/locale/programs/locarchive.c b/locale/programs/locarchive.c
---- a/locale/programs/locarchive.c     2012-01-01 05:16:32.000000000 -0700
-+++ b/locale/programs/locarchive.c     2012-01-01 20:41:26.649439841 -0700
-@@ -253,9 +253,9 @@ oldlocrecentcmp (const void *a, const vo
+--- a/locale/programs/locarchive.c     2012-06-05 07:42:49.000000000 -0600
++++ b/locale/programs/locarchive.c     2012-06-07 12:15:21.585319540 -0600
+@@ -252,9 +252,9 @@ oldlocrecentcmp (const void *a, const vo
  /* forward decls for below */
  static uint32_t add_locale (struct locarhandle *ah, const char *name,
                            locale_data_t data, bool replace);
@@ -1402,7 +854,7 @@ diff -Nrup a/locale/programs/locarchive.c b/locale/programs/locarchive.c
  
  
  static bool
-@@ -636,7 +636,7 @@ close_archive (struct locarhandle *ah)
+@@ -635,7 +635,7 @@ close_archive (struct locarhandle *ah)
  #include "../../intl/explodename.c"
  #include "../../intl/l10nflist.c"
  
@@ -1411,7 +863,7 @@ diff -Nrup a/locale/programs/locarchive.c b/locale/programs/locarchive.c
  insert_name (struct locarhandle *ah,
             const char *name, size_t name_len, bool replace)
  {
-@@ -694,7 +694,7 @@ insert_name (struct locarhandle *ah,
+@@ -693,7 +693,7 @@ insert_name (struct locarhandle *ah,
    return &namehashtab[idx];
  }
  
@@ -1421,9 +873,9 @@ diff -Nrup a/locale/programs/locarchive.c b/locale/programs/locarchive.c
           const char *oldname, uint32_t *locrec_offset_p)
  {
 diff -Nrup a/localedata/ChangeLog b/localedata/ChangeLog
---- a/localedata/ChangeLog     2012-01-01 05:16:32.000000000 -0700
-+++ b/localedata/ChangeLog     2012-01-01 20:41:26.651439841 -0700
-@@ -90,6 +90,14 @@
+--- a/localedata/ChangeLog     2012-06-05 07:42:49.000000000 -0600
++++ b/localedata/ChangeLog     2012-06-07 12:15:21.683319174 -0600
+@@ -181,6 +181,14 @@
        * tests-mbwc/tst_funcs.h (TST_DECL_VARS, TST_HEAD_LOCALE):
        Remove unused variable.
  
@@ -1439,9 +891,9 @@ diff -Nrup a/localedata/ChangeLog b/localedata/ChangeLog
  
        [BZ #12788]
 diff -Nrup a/localedata/Makefile b/localedata/Makefile
---- a/localedata/Makefile      2012-01-01 05:16:32.000000000 -0700
-+++ b/localedata/Makefile      2012-01-01 20:41:26.652439840 -0700
-@@ -224,6 +224,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo
+--- a/localedata/Makefile      2012-06-05 07:42:49.000000000 -0600
++++ b/localedata/Makefile      2012-06-07 12:15:21.776318827 -0600
+@@ -211,6 +211,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo
        echo -n '...'; \
        input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \
        $(LOCALEDEF) --alias-file=../intl/locale.alias \
@@ -1450,8 +902,8 @@ diff -Nrup a/localedata/Makefile b/localedata/Makefile
                     $(addprefix --prefix=,$(install_root)) $$locale; \
        echo ' done'; \
 diff -Nrup a/localedata/SUPPORTED b/localedata/SUPPORTED
---- a/localedata/SUPPORTED     2012-01-01 05:16:32.000000000 -0700
-+++ b/localedata/SUPPORTED     2012-01-01 20:41:26.652439840 -0700
+--- a/localedata/SUPPORTED     2012-06-05 07:42:49.000000000 -0600
++++ b/localedata/SUPPORTED     2012-06-07 12:15:21.805318719 -0600
 @@ -88,6 +88,7 @@ cy_GB.UTF-8/UTF-8 \
  cy_GB/ISO-8859-14 \
  da_DK.UTF-8/UTF-8 \
@@ -1476,7 +928,7 @@ diff -Nrup a/localedata/SUPPORTED b/localedata/SUPPORTED
  en_ZA.UTF-8/UTF-8 \
  en_ZA/ISO-8859-1 \
  en_ZM/UTF-8 \
-@@ -316,6 +319,8 @@ nl_NL/ISO-8859-1 \
+@@ -317,6 +320,8 @@ nl_NL/ISO-8859-1 \
  nl_NL@euro/ISO-8859-15 \
  nn_NO.UTF-8/UTF-8 \
  nn_NO/ISO-8859-1 \
@@ -1485,7 +937,7 @@ diff -Nrup a/localedata/SUPPORTED b/localedata/SUPPORTED
  nr_ZA/UTF-8 \
  nso_ZA/UTF-8 \
  oc_FR.UTF-8/UTF-8 \
-@@ -377,6 +382,7 @@ sv_FI/ISO-8859-1 \
+@@ -378,6 +383,7 @@ sv_FI/ISO-8859-1 \
  sv_FI@euro/ISO-8859-15 \
  sv_SE.UTF-8/UTF-8 \
  sv_SE/ISO-8859-1 \
@@ -1494,39 +946,35 @@ diff -Nrup a/localedata/SUPPORTED b/localedata/SUPPORTED
  sw_TZ/UTF-8 \
  ta_IN/UTF-8 \
 diff -Nrup a/localedata/locales/cy_GB b/localedata/locales/cy_GB
---- a/localedata/locales/cy_GB 2012-01-01 05:16:32.000000000 -0700
-+++ b/localedata/locales/cy_GB 2012-01-01 20:41:26.653439839 -0700
-@@ -248,8 +248,11 @@ mon         "<U0049><U006F><U006E><U0061
+--- a/localedata/locales/cy_GB 2012-06-05 07:42:49.000000000 -0600
++++ b/localedata/locales/cy_GB 2012-06-07 12:15:21.805318719 -0600
+@@ -248,9 +248,9 @@ mon         "<U0049><U006F><U006E><U0061
  d_t_fmt     "<U0044><U0079><U0064><U0064><U0020><U0025><U0041><U0020><U0025><U0064><U0020><U006d><U0069><U0073><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
  d_fmt       "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0079>"
  t_fmt       "<U0025><U0054>"
--am_pm       "";""
--t_fmt_ampm  ""
+-am_pm       "<U0061><U006D>";"<U0070><U006D>"
 +am_pm       "<U0041><U004D>";"<U0050><U004D>"
-+t_fmt_ampm  "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
+ t_fmt_ampm  "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
+-date_fmt    "<U0025><U0061><U0020><U0025><U0065><U0020><U0025><U0062>/
 +date_fmt    "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
-+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
-+<U0025><U005A><U0020><U0025><U0059>"
- END LC_TIME
- LC_MESSAGES
+ <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+ <U0025><U005A><U0020><U0025><U0059>"
+ first_workday 2
 diff -Nrup a/localedata/locales/en_GB b/localedata/locales/en_GB
---- a/localedata/locales/en_GB 2012-01-01 05:16:32.000000000 -0700
-+++ b/localedata/locales/en_GB 2012-01-01 20:41:26.653439839 -0700
-@@ -116,8 +116,8 @@ mon         "<U004A><U0061><U006E><U0075
+--- a/localedata/locales/en_GB 2012-06-05 07:42:49.000000000 -0600
++++ b/localedata/locales/en_GB 2012-06-07 12:15:21.806318715 -0600
+@@ -116,7 +116,7 @@ mon         "<U004A><U0061><U006E><U0075
  d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
  d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
  t_fmt       "<U0025><U0054>"
--am_pm       "";""
--t_fmt_ampm  ""
+-am_pm       "<U0061><U006D>";"<U0070><U006D>"
 +am_pm       "<U0041><U004D>";"<U0050><U004D>"
-+t_fmt_ampm  "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
- date_fmt      "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+ t_fmt_ampm  "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
+ date_fmt    "<U0025><U0061><U0020><U0025><U0065><U0020><U0025><U0062>/
  <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
- <U0025><U005A><U0020><U0025><U0059>"
 diff -Nrup a/localedata/locales/no_NO b/localedata/locales/no_NO
 --- a/localedata/locales/no_NO 1969-12-31 17:00:00.000000000 -0700
-+++ b/localedata/locales/no_NO 2012-01-01 20:41:26.653439839 -0700
++++ b/localedata/locales/no_NO 2012-06-07 12:15:21.806318715 -0600
 @@ -0,0 +1,69 @@
 +escape_char   /
 +comment_char    %
@@ -1598,8 +1046,8 @@ diff -Nrup a/localedata/locales/no_NO b/localedata/locales/no_NO
 +copy "nb_NO"
 +END LC_ADDRESS
 diff -Nrup a/localedata/locales/zh_TW b/localedata/locales/zh_TW
---- a/localedata/locales/zh_TW 2012-01-01 05:16:32.000000000 -0700
-+++ b/localedata/locales/zh_TW 2012-01-01 20:41:26.653439839 -0700
+--- a/localedata/locales/zh_TW 2012-06-05 07:42:49.000000000 -0600
++++ b/localedata/locales/zh_TW 2012-06-07 12:15:21.807318711 -0600
 @@ -1,7 +1,7 @@
  comment_char %
  escape_char /
@@ -1628,9 +1076,9 @@ diff -Nrup a/localedata/locales/zh_TW b/localedata/locales/zh_TW
  date       "2000-08-02"
  %
 diff -Nrup a/login/programs/pt_chown.c b/login/programs/pt_chown.c
---- a/login/programs/pt_chown.c        2012-01-01 05:16:32.000000000 -0700
-+++ b/login/programs/pt_chown.c        2012-01-01 20:41:26.654439839 -0700
-@@ -29,6 +29,7 @@
+--- a/login/programs/pt_chown.c        2012-06-05 07:42:49.000000000 -0600
++++ b/login/programs/pt_chown.c        2012-06-07 12:15:21.807318711 -0600
+@@ -28,6 +28,7 @@
  #include <string.h>
  #include <sys/stat.h>
  #include <unistd.h>
@@ -1638,7 +1086,7 @@ diff -Nrup a/login/programs/pt_chown.c b/login/programs/pt_chown.c
  #ifdef HAVE_LIBCAP
  # include <sys/capability.h>
  # include <sys/prctl.h>
-@@ -143,7 +144,7 @@ main (int argc, char *argv[])
+@@ -142,7 +143,7 @@ main (int argc, char *argv[])
    uid_t uid = getuid ();
    int remaining;
  
@@ -1647,7 +1095,7 @@ diff -Nrup a/login/programs/pt_chown.c b/login/programs/pt_chown.c
      {
  #ifdef HAVE_LIBCAP
    /* Drop privileges.  */
-@@ -176,6 +177,13 @@ main (int argc, char *argv[])
+@@ -175,6 +176,13 @@ main (int argc, char *argv[])
  
    /* We aren't going to be using privileges, so drop them right now. */
    setuid (uid);
@@ -1661,7 +1109,7 @@ diff -Nrup a/login/programs/pt_chown.c b/login/programs/pt_chown.c
  
    /* Set locale via LC_ALL.  */
    setlocale (LC_ALL, "");
-@@ -195,9 +203,5 @@ main (int argc, char *argv[])
+@@ -194,9 +202,5 @@ main (int argc, char *argv[])
        return EXIT_FAILURE;
      }
  
@@ -1671,90 +1119,11 @@ diff -Nrup a/login/programs/pt_chown.c b/login/programs/pt_chown.c
 -
    return EXIT_SUCCESS;
  }
-diff -Nrup a/malloc/mcheck.c b/malloc/mcheck.c
---- a/malloc/mcheck.c  2012-01-01 05:16:32.000000000 -0700
-+++ b/malloc/mcheck.c  2012-01-01 20:41:26.654439839 -0700
-@@ -25,10 +25,26 @@
- # include <mcheck.h>
- # include <stdint.h>
- # include <stdio.h>
-+# include <stdlib.h>
- # include <libintl.h>
- # include <errno.h>
- #endif
-+#ifdef _LIBC
-+extern __typeof (malloc) __libc_malloc;
-+extern __typeof (free) __libc_free;
-+extern __typeof (realloc) __libc_realloc;
-+libc_hidden_proto (__libc_malloc)
-+libc_hidden_proto (__libc_realloc)
-+libc_hidden_proto (__libc_free)
-+libc_hidden_proto (__libc_memalign)
-+#else
-+# define __libc_malloc(sz) malloc (sz)
-+# define __libc_free(ptr) free (ptr)
-+# define __libc_realloc(ptr, sz) realloc (ptr, sz)
-+# define __libc_memalign(al, sz) memalign (al, sz)
-+#endif
-+
- /* Old hook values.  */
- static void (*old_free_hook) (__ptr_t ptr, __const __ptr_t);
- static __ptr_t (*old_malloc_hook) (__malloc_size_t size, const __ptr_t);
-@@ -199,7 +215,7 @@ freehook (__ptr_t ptr, const __ptr_t cal
-   if (old_free_hook != NULL)
-     (*old_free_hook) (ptr, caller);
-   else
--    free (ptr);
-+    __libc_free (ptr);
-   __free_hook = freehook;
- }
-@@ -222,7 +238,7 @@ mallochook (__malloc_size_t size, const
-     hdr = (struct hdr *) (*old_malloc_hook) (sizeof (struct hdr) + size + 1,
-                                            caller);
-   else
--    hdr = (struct hdr *) malloc (sizeof (struct hdr) + size + 1);
-+    hdr = (struct hdr *) __libc_malloc (sizeof (struct hdr) + size + 1);
-   __malloc_hook = mallochook;
-   if (hdr == NULL)
-     return NULL;
-@@ -259,7 +275,7 @@ memalignhook (__malloc_size_t alignment,
-   if (old_memalign_hook != NULL)
-     block = (*old_memalign_hook) (alignment, slop + size + 1, caller);
-   else
--    block = memalign (alignment, slop + size + 1);
-+    block = __libc_memalign (alignment, slop + size + 1);
-   __memalign_hook = memalignhook;
-   if (block == NULL)
-     return NULL;
-@@ -320,8 +336,8 @@ reallochook (__ptr_t ptr, __malloc_size_
-                                             sizeof (struct hdr) + size + 1,
-                                             caller);
-   else
--    hdr = (struct hdr *) realloc ((__ptr_t) hdr,
--                                sizeof (struct hdr) + size + 1);
-+    hdr = (struct hdr *) __libc_realloc ((__ptr_t) hdr,
-+                                       sizeof (struct hdr) + size + 1);
-   __free_hook = freehook;
-   __malloc_hook = mallochook;
-   __memalign_hook = memalignhook;
-@@ -381,8 +397,8 @@ mcheck (func)
-   if (__malloc_initialized <= 0 && !mcheck_used)
-     {
-       /* We call malloc() once here to ensure it is initialized.  */
--      void *p = malloc (0);
--      free (p);
-+      void *p = __libc_malloc (0);
-+      __libc_free (p);
-       old_free_hook = __free_hook;
-       __free_hook = freehook;
 diff -Nrup a/manual/libc.texinfo b/manual/libc.texinfo
---- a/manual/libc.texinfo      2012-01-01 05:16:32.000000000 -0700
-+++ b/manual/libc.texinfo      2012-01-01 20:41:26.655439839 -0700
-@@ -5,7 +5,7 @@
- @c setchapternewpage odd
+--- a/manual/libc.texinfo      2012-06-05 07:42:49.000000000 -0600
++++ b/manual/libc.texinfo      2012-06-07 12:15:21.808318708 -0600
+@@ -7,7 +7,7 @@
+ @include macros.texi
  
  @comment Tell install-info what to do.
 -@dircategory Software libraries
@@ -1763,11 +1132,11 @@ diff -Nrup a/manual/libc.texinfo b/manual/libc.texinfo
  * Libc: (libc).                 C library.
  @end direntry
 diff -Nrup a/misc/sys/cdefs.h b/misc/sys/cdefs.h
---- a/misc/sys/cdefs.h 2012-01-01 05:16:32.000000000 -0700
-+++ b/misc/sys/cdefs.h 2012-01-01 20:41:26.655439839 -0700
-@@ -146,7 +146,10 @@
- #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
+--- a/misc/sys/cdefs.h 2012-06-05 07:42:49.000000000 -0600
++++ b/misc/sys/cdefs.h 2012-06-07 12:15:21.808318708 -0600
+@@ -142,7 +142,10 @@
  #define __bos0(ptr) __builtin_object_size (ptr, 0)
+ #define __fortify_function __extern_always_inline __attribute_artificial__
  
 -#if __GNUC_PREREQ (4,3)
 +#if __GNUC_PREREQ (4,3) \
@@ -1777,26 +1146,19 @@ diff -Nrup a/misc/sys/cdefs.h b/misc/sys/cdefs.h
  # define __warndecl(name, msg) \
    extern void name (void) __attribute__((__warning__ (msg)))
  # define __warnattr(msg) __attribute__((__warning__ (msg)))
-@@ -316,10 +319,16 @@
+@@ -320,7 +323,10 @@
  
  /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
     inline semantics, unless -fgnu89-inline is used.  */
 -#if !defined __cplusplus || __GNUC_PREREQ (4,3)
 +#if !defined __cplusplus || __GNUC_PREREQ (4,3) \
 +    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
-+      && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
-+      && __GNUC_RH_RELEASE__ >= 31)
++       && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
++       && __GNUC_RH_RELEASE__ >= 31)
  # if defined __GNUC_STDC_INLINE__ || defined __cplusplus
  #  define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
--#  if __GNUC_PREREQ (4,3)
-+#  if __GNUC_PREREQ (4,3) \
-+      || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
-+          && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
-+          && __GNUC_RH_RELEASE__ >= 31)
- #   define __extern_always_inline \
-   extern __always_inline __attribute__ ((__gnu_inline__, __artificial__))
- #  else
-@@ -339,7 +348,10 @@
+ #  define __extern_always_inline \
+@@ -333,7 +339,10 @@
  
  /* GCC 4.3 and above allow passing all anonymous arguments of an
     __extern_always_inline function to some other vararg function.  */
@@ -1809,21 +1171,9 @@ diff -Nrup a/misc/sys/cdefs.h b/misc/sys/cdefs.h
  # define __va_arg_pack_len() __builtin_va_arg_pack_len ()
  #endif
 diff -Nrup a/nis/Makefile b/nis/Makefile
---- a/nis/Makefile     2012-01-01 05:16:32.000000000 -0700
-+++ b/nis/Makefile     2012-01-01 20:41:26.656439839 -0700
-@@ -23,9 +23,9 @@ subdir       := nis
- aux                   := nis_hash
-+headers                       := $(wildcard rpcsvc/*.[hx])
- distribute            := nss-nis.h nss-nisplus.h nis_intern.h Banner \
--                         nisplus-parser.h nis_xdr.h nss \
--                         $(wildcard rpcsvc/*.[hx])
-+                         nisplus-parser.h nis_xdr.h nss
- # These are the databases available for the nis (and perhaps later nisplus)
- # service.  This must be a superset of the services in nss.
-@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out
+--- a/nis/Makefile     2012-06-05 07:42:49.000000000 -0600
++++ b/nis/Makefile     2012-06-07 12:15:21.810318702 -0600
+@@ -71,6 +71,8 @@ libnss_nisplus-inhibit-o = $(filter-out
  
  include ../Rules
  
@@ -1833,8 +1183,8 @@ diff -Nrup a/nis/Makefile b/nis/Makefile
  $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version)
  $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \
 diff -Nrup a/nis/nss b/nis/nss
---- a/nis/nss  2012-01-01 05:16:32.000000000 -0700
-+++ b/nis/nss  2012-01-01 20:41:26.656439839 -0700
+--- a/nis/nss  2012-06-05 07:42:49.000000000 -0600
++++ b/nis/nss  2012-06-07 12:15:21.811318698 -0600
 @@ -25,7 +25,7 @@
  #  memory with every getXXent() call.  Otherwise each getXXent() call
  #  might result into a network communication with the server to get
@@ -1845,61 +1195,9 @@ diff -Nrup a/nis/nss b/nis/nss
  # ADJUNCT_AS_SHADOW
  #  If set to TRUE, the passwd routines in the NIS NSS module will not
 diff -Nrup a/nptl/ChangeLog b/nptl/ChangeLog
---- a/nptl/ChangeLog   2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/ChangeLog   2012-01-01 20:41:26.659439839 -0700
-@@ -210,6 +210,51 @@
-       clearing memory.
-       Patch partly by Robert Rex <robert.rex@exasol.com>.
-+2011-02-22  Rayson Ho  <rho@redhat.com>
-+
-+      * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Low-level SystemTap
-+      probes for i386.
-+      * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
-+      * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
-+      * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
-+      * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
-+      * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-+      * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-+      * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
-+      * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-+
-+2011-02-09  Rayson Ho  <rho@redhat.com>
-+
-+      * DESIGN-systemtap-probes.txt: New file.
-+      * pthread_cond_broadcast.c: SystemTap probes.
-+      * pthread_cond_init.c: Likewise.
-+      * pthread_cond_signal.c: Likewise.
-+      * pthread_cond_wait.c: Likewise.
-+      * pthread_cond_destroy.c: Likewise.
-+      * pthread_create.c: Likewise.
-+      * pthread_join.c: Likewise.
-+      * pthread_mutex_destroy.c: Likewise.
-+      * pthread_mutex_init.c: Likewise.
-+      * pthread_mutex_lock.c: Likewise.
-+      * pthread_mutex_timedlock.c: Likewise.
-+      * pthread_mutex_unlock.c: Likewise.
-+      * pthread_rwlock_destroy.c: Likewise.
-+      * pthread_rwlock_rdlock.c: Likewise.
-+      * pthread_rwlock_unlock.c: Likewise.
-+      * pthread_rwlock_wrlock.c: Likewise.
-+      * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
-+      * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-+      * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
-+      * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
-+      * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-+      * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-+      * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
-+      * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
-+
-+2010-07-23  Roland McGrath  <roland@redhat.com>
-+
-+      * pthread_create.c (start_thread): Define pthread_start LIBC_PROBE.
-+
- 2011-01-19  Roland McGrath  <roland@redhat.com>
-       * pthread_cond_wait.c (__pthread_cond_wait): Fix comment typo.
-@@ -4939,6 +4984,11 @@
+--- a/nptl/ChangeLog   2012-06-05 07:42:49.000000000 -0600
++++ b/nptl/ChangeLog   2012-06-07 12:15:21.813318690 -0600
+@@ -5562,6 +5562,11 @@
        Move definition inside libpthread, libc, librt check.  Provide
        definition for rtld.
  
@@ -1911,7 +1209,7 @@ diff -Nrup a/nptl/ChangeLog b/nptl/ChangeLog
  2004-09-02  Ulrich Drepper  <drepper@redhat.com>
  
        * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
-@@ -7013,6 +7063,11 @@
+@@ -7636,6 +7641,11 @@
  
        * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
  
@@ -1923,113 +1221,10 @@ diff -Nrup a/nptl/ChangeLog b/nptl/ChangeLog
  2003-07-25  Jakub Jelinek  <jakub@redhat.com>
  
        * tst-cancel17.c (do_test): Check if aio_cancel failed.
-diff -Nrup a/nptl/DESIGN-systemtap-probes.txt b/nptl/DESIGN-systemtap-probes.txt
---- a/nptl/DESIGN-systemtap-probes.txt 1969-12-31 17:00:00.000000000 -0700
-+++ b/nptl/DESIGN-systemtap-probes.txt 2012-01-01 20:41:26.660439839 -0700
-@@ -0,0 +1,89 @@
-+Systemtap is a dynamic tracing/instrumenting tool available on Linux. Probes
-+that are not fired at run time have close to zero overhead.
-+
-+The following probes are available for NPTL:
-+
-+Thread creation & Join Probes
-+=============================
-+pthread_create - probe for pthread_create
-+               arg1 = pointer (pthread_t*) to thread
-+               arg2 = pointer (pthread_attr_t*) to attr
-+               arg3 = pointer (void *) to start_routine
-+               arg4 = arguments to start_routine
-+pthread_start - probe for actual thread creation
-+              arg1 = struct pthread (members include thread ID, process ID)
-+              arg2 = address of start_routine
-+              arg3 = pointer to the list of arguments
-+pthread_join - probe for pthread_join
-+             arg1 = thread ID
-+pthread_join_ret - probe for pthread_join return
-+                 arg1 = thread ID
-+                 arg2 = return value
-+
-+Lock-related Probes
-+===================
-+mutex_init    - probe for pthread_mutex_init
-+              arg1 = address of mutex lock
-+mutex_acquired - probe for succ. return of pthread_mutex_lock
-+               arg1 = address of mutex lock
-+mutex_timedlock_acquired - probe for succ. return of pthread_mutex_timedlock
-+                         arg1 = address of mutex lock
-+mutex_entry   - probe for entry to the pthread_mutex_lock function
-+              arg1 = address of mutex lock
-+mutex_timedlock_entry - probe for entry to the pthread_mutex_timedlock function
-+                      arg1 = address of mutex lock, arg2 = address of timespec
-+mutex_release - probe for pthread_mutex_unlock after the successful release of a
-+                mutex lock
-+              arg1 = address of mutex lock
-+mutex_destroy - probe for pthread_mutex_destroy
-+              arg1 = address of mutex lock
-+
-+wrlock_entry - probe for entry to the pthread_rwlock_wrlock function
-+             arg1 = address of rw lock
-+rdlock_entry - probe for entry to the pthread_rwlock_rdlock function
-+             arg1 = address of rw lock
-+
-+rwlock_destroy - probe for pthread_rwlock_destroy
-+               arg1 = address of rw lock
-+wrlock_acquire_write - probe for pthread_rwlock_wrlock (after getting the lock)
-+                     arg1 = address of rw lock
-+rdlock_acquire_read - probe for pthread_rwlock_rdlock after successfully getting
-+                      the lock
-+                    arg1 = address of rw lock
-+rwlock_unlock - probe for pthread_rwlock_unlock
-+              arg1 = address of rw lock
-+
-+lll_lock_wait - probe in low-level (assembly language) locking code, only fired
-+                when futex/FUTEX_WAIT is called (i.e. when trying to acquire a
-+                contented lock)
-+              arg1 = pointer to futex
-+              arg2 = flags passed to the futex system call
-+lll_lock_wait_private - probe in low-level (assembly language) locking code,
-+                        only fired when futex/FUTEX_WAIT is called (i.e. when
-+                        trying to acquire a contented lock)
-+                      arg1 = pointer to futex
-+
-+lll_futex_wake - probe in low-level (assembly language) locking code, only fired
-+                 when futex (FUTEX_WAKE) is called
-+               arg1 = pointer to futex
-+               arg2 = number of processes to wake
-+               arg3 = additional flags
-+
-+Condition variable Probes
-+=========================
-+cond_init - probe for pthread_cond_init
-+          arg1 = condition
-+          arg2 = attr
-+cond_destroy - probe for pthread_cond_destroy
-+             arg1 = cond
-+cond_wait - probe for pthread_cond_wait
-+          arg1 = condition
-+          arg2 = mutex lock
-+cond_timedwait - probe for pthread_cond_timedwait
-+               arg1 = condition
-+               arg2 = mutex lock
-+               arg3 = timespec
-+cond_signal - probe for pthread_cond_signal
-+            arg1 = condition
-+cond_broadcast - probe for pthread_cond_broadcast
-+               arg1 = condition
 diff -Nrup a/nptl/Makefile b/nptl/Makefile
---- a/nptl/Makefile    2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/Makefile    2012-01-01 20:41:26.660439839 -0700
-@@ -342,7 +342,8 @@ endif
- extra-objs += $(crti-objs) $(crtn-objs)
- omit-deps += crti crtn
--CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
-+CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \
-+                     -fno-asynchronous-unwind-tables
- endif
- CFLAGS-flockfile.c = -D_IO_MTSAFE_IO
-@@ -529,15 +530,19 @@ $(addprefix $(objpfx), \
+--- a/nptl/Makefile    2012-06-05 07:42:49.000000000 -0600
++++ b/nptl/Makefile    2012-06-07 12:15:21.816318678 -0600
+@@ -529,15 +529,19 @@ $(addprefix $(objpfx), \
      $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \
                                       $(objpfx)libpthread_nonshared.a
  $(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so
@@ -2052,8 +1247,8 @@ diff -Nrup a/nptl/Makefile b/nptl/Makefile
  $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
  endif
 diff -Nrup a/nptl/Versions b/nptl/Versions
---- a/nptl/Versions    2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/Versions    2012-01-01 20:41:26.661439839 -0700
+--- a/nptl/Versions    2012-06-05 07:42:49.000000000 -0600
++++ b/nptl/Versions    2012-06-07 12:15:21.817318674 -0600
 @@ -30,6 +30,7 @@ libc {
      __libc_alloca_cutoff;
      # Internal libc interface to libpthread
@@ -2063,9 +1258,9 @@ diff -Nrup a/nptl/Versions b/nptl/Versions
  }
  
 diff -Nrup a/nptl/nptl-init.c b/nptl/nptl-init.c
---- a/nptl/nptl-init.c 2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/nptl-init.c 2012-01-01 20:41:26.661439839 -0700
-@@ -415,7 +415,7 @@ __pthread_initialize_minimal_internal (v
+--- a/nptl/nptl-init.c 2012-06-05 07:42:49.000000000 -0600
++++ b/nptl/nptl-init.c 2012-06-07 12:15:21.817318674 -0600
+@@ -414,7 +414,7 @@ __pthread_initialize_minimal_internal (v
    /* Determine the default allowed stack size.  This is the size used
       in case the user does not specify one.  */
    struct rlimit limit;
@@ -2074,439 +1269,10 @@ diff -Nrup a/nptl/nptl-init.c b/nptl/nptl-init.c
        || limit.rlim_cur == RLIM_INFINITY)
      /* The system limit is not usable.  Use an architecture-specific
         default.  */
-diff -Nrup a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c
---- a/nptl/pthread_cond_broadcast.c    2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_cond_broadcast.c    2012-01-01 20:41:26.662439839 -0700
-@@ -23,6 +23,7 @@
- #include <lowlevellock.h>
- #include <pthread.h>
- #include <pthreadP.h>
-+#include <stap-probe.h>
- #include <shlib-compat.h>
- #include <kernel-features.h>
-@@ -32,6 +33,8 @@ int
- __pthread_cond_broadcast (cond)
-      pthread_cond_t *cond;
- {
-+  LIBC_PROBE (cond_broadcast, 1, cond);
-+
-   int pshared = (cond->__data.__mutex == (void *) ~0l)
-               ? LLL_SHARED : LLL_PRIVATE;
-   /* Make sure we are alone.  */
-diff -Nrup a/nptl/pthread_cond_destroy.c b/nptl/pthread_cond_destroy.c
---- a/nptl/pthread_cond_destroy.c      2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_cond_destroy.c      2012-01-01 20:41:26.662439839 -0700
-@@ -20,6 +20,7 @@
- #include <errno.h>
- #include <shlib-compat.h>
- #include "pthreadP.h"
-+#include <stap-probe.h>
- int
-@@ -29,6 +30,8 @@ __pthread_cond_destroy (cond)
-   int pshared = (cond->__data.__mutex == (void *) ~0l)
-               ? LLL_SHARED : LLL_PRIVATE;
-+  LIBC_PROBE (cond_destroy, 1, cond);
-+
-   /* Make sure we are alone.  */
-   lll_lock (cond->__data.__lock, pshared);
-diff -Nrup a/nptl/pthread_cond_init.c b/nptl/pthread_cond_init.c
---- a/nptl/pthread_cond_init.c 2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_cond_init.c 2012-01-01 20:41:26.662439839 -0700
-@@ -20,6 +20,7 @@
- #include <shlib-compat.h>
- #include "pthreadP.h"
-+#include <stap-probe.h>
- int
-@@ -42,6 +43,8 @@ __pthread_cond_init (cond, cond_attr)
-                         ? NULL : (void *) ~0l);
-   cond->__data.__broadcast_seq = 0;
-+  LIBC_PROBE (cond_init, 2, cond, cond_attr);
-+
-   return 0;
- }
- versioned_symbol (libpthread, __pthread_cond_init,
-diff -Nrup a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c
---- a/nptl/pthread_cond_signal.c       2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_cond_signal.c       2012-01-01 20:41:26.663439839 -0700
-@@ -26,6 +26,7 @@
- #include <shlib-compat.h>
- #include <kernel-features.h>
-+#include <stap-probe.h>
- int
-@@ -35,6 +36,8 @@ __pthread_cond_signal (cond)
-   int pshared = (cond->__data.__mutex == (void *) ~0l)
-               ? LLL_SHARED : LLL_PRIVATE;
-+  LIBC_PROBE (cond_signal, 1, cond);
-+
-   /* Make sure we are alone.  */
-   lll_lock (cond->__data.__lock, pshared);
-diff -Nrup a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
---- a/nptl/pthread_cond_wait.c 2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_cond_wait.c 2012-01-01 20:41:26.663439839 -0700
-@@ -25,6 +25,7 @@
- #include <pthreadP.h>
- #include <shlib-compat.h>
-+#include <stap-probe.h>
- struct _condvar_cleanup_buffer
-@@ -101,6 +102,8 @@ __pthread_cond_wait (cond, mutex)
-   int pshared = (cond->__data.__mutex == (void *) ~0l)
-               ? LLL_SHARED : LLL_PRIVATE;
-+  LIBC_PROBE (cond_wait, 2, cond, mutex);
-+
-   /* Make sure we are alone.  */
-   lll_lock (cond->__data.__lock, pshared);
-diff -Nrup a/nptl/pthread_create.c b/nptl/pthread_create.c
---- a/nptl/pthread_create.c    2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_create.c    2012-01-01 20:41:26.664439838 -0700
-@@ -32,6 +32,8 @@
- #include <shlib-compat.h>
-+#include <stap-probe.h>
-+
- /* Local function to start thread and handle cleanup.  */
- static int start_thread (void *arg);
-@@ -300,6 +302,8 @@ start_thread (void *arg)
-         CANCEL_RESET (oldtype);
-       }
-+      LIBC_PROBE (pthread_start, 3, (pthread_t) pd, pd->start_routine, pd->arg);
-+
-       /* Run the code the user provided.  */
- #ifdef CALL_THREAD_FCT
-       THREAD_SETMEM (pd, result, CALL_THREAD_FCT (pd));
-@@ -557,6 +561,8 @@ __pthread_create_2_1 (newthread, attr, s
-   /* Pass the descriptor to the caller.  */
-   *newthread = (pthread_t) pd;
-+  LIBC_PROBE (pthread_create, 4, newthread, attr, start_routine, arg);
-+
-   /* Start the thread.  */
-   return create_thread (pd, iattr, STACK_VARIABLES_ARGS);
- }
-diff -Nrup a/nptl/pthread_join.c b/nptl/pthread_join.c
---- a/nptl/pthread_join.c      2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_join.c      2012-01-01 20:41:26.664439838 -0700
-@@ -23,6 +23,8 @@
- #include <atomic.h>
- #include "pthreadP.h"
-+#include <stap-probe.h>
-+
- static void
- cleanup (void *arg)
-@@ -55,6 +57,8 @@ pthread_join (threadid, thread_return)
-   struct pthread *self = THREAD_SELF;
-   int result = 0;
-+  LIBC_PROBE (pthread_join, 1, threadid);
-+
-   /* During the wait we change to asynchronous cancellation.  If we
-      are canceled the thread we are waiting for must be marked as
-      un-wait-ed for again.  */
-@@ -110,5 +114,7 @@ pthread_join (threadid, thread_return)
-       __free_tcb (pd);
-     }
-+  LIBC_PROBE (pthread_join_ret, 3, threadid, result, pd->result);
-+
-   return result;
- }
-diff -Nrup a/nptl/pthread_mutex_destroy.c b/nptl/pthread_mutex_destroy.c
---- a/nptl/pthread_mutex_destroy.c     2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_mutex_destroy.c     2012-01-01 20:41:26.665439837 -0700
-@@ -20,11 +20,15 @@
- #include <errno.h>
- #include "pthreadP.h"
-+#include <stap-probe.h>
-+
- int
- __pthread_mutex_destroy (mutex)
-      pthread_mutex_t *mutex;
- {
-+  LIBC_PROBE (mutex_destroy, 1, mutex);
-+
-   if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0
-       && mutex->__data.__nusers != 0)
-     return EBUSY;
-diff -Nrup a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c
---- a/nptl/pthread_mutex_init.c        2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_mutex_init.c        2012-01-01 20:41:26.665439837 -0700
-@@ -24,6 +24,8 @@
- #include <kernel-features.h>
- #include "pthreadP.h"
-+#include <stap-probe.h>
-+
- static const struct pthread_mutexattr default_attr =
-   {
-     /* Default is a normal mutex, not shared between processes.  */
-@@ -135,6 +137,8 @@ __pthread_mutex_init (mutex, mutexattr)
-   // mutex->__spins = 0;      already done by memset
-   // mutex->__next = NULL;    already done by memset
-+  LIBC_PROBE (mutex_init, 1, mutex);
-+
-   return 0;
- }
- strong_alias (__pthread_mutex_init, pthread_mutex_init)
-diff -Nrup a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c
---- a/nptl/pthread_mutex_lock.c        2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_mutex_lock.c        2012-01-01 20:41:26.665439837 -0700
-@@ -24,6 +24,7 @@
- #include <not-cancel.h>
- #include "pthreadP.h"
- #include <lowlevellock.h>
-+#include <stap-probe.h>
- #ifndef LLL_MUTEX_LOCK
-@@ -48,6 +49,9 @@ __pthread_mutex_lock (mutex)
-   assert (sizeof (mutex->__size) >= sizeof (mutex->__data));
-   unsigned int type = PTHREAD_MUTEX_TYPE (mutex);
-+
-+  LIBC_PROBE (mutex_entry, 1, mutex);
-+
-   if (__builtin_expect (type & ~PTHREAD_MUTEX_KIND_MASK_NP, 0))
-     return __pthread_mutex_lock_full (mutex);
-@@ -127,6 +131,8 @@ __pthread_mutex_lock (mutex)
-   ++mutex->__data.__nusers;
- #endif
-+  LIBC_PROBE (mutex_acquired, 1, mutex);
-+
-   return 0;
- }
-@@ -467,6 +473,8 @@ __pthread_mutex_lock_full (pthread_mutex
-   ++mutex->__data.__nusers;
- #endif
-+  LIBC_PROBE (mutex_acquired, 1, mutex);
-+
-   return 0;
- }
- #ifndef __pthread_mutex_lock
-diff -Nrup a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c
---- a/nptl/pthread_mutex_timedlock.c   2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_mutex_timedlock.c   2012-01-01 20:41:26.666439837 -0700
-@@ -24,6 +24,8 @@
- #include <lowlevellock.h>
- #include <not-cancel.h>
-+#include <stap-probe.h>
-+
- int
- pthread_mutex_timedlock (mutex, abstime)
-@@ -34,6 +36,8 @@ pthread_mutex_timedlock (mutex, abstime)
-   pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
-   int result = 0;
-+  LIBC_PROBE (mutex_timedlock_entry, 2, mutex, abstime);
-+
-   /* We must not check ABSTIME here.  If the thread does not block
-      abstime must not be checked for a valid value.  */
-@@ -172,6 +176,8 @@ pthread_mutex_timedlock (mutex, abstime)
-                 ++mutex->__data.__count;
-+                  LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
-+
-                 return 0;
-               }
-           }
-@@ -242,6 +248,8 @@ pthread_mutex_timedlock (mutex, abstime)
-               ++mutex->__data.__count;
-+                LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
-+
-               return 0;
-             }
-         }
-@@ -377,6 +385,8 @@ pthread_mutex_timedlock (mutex, abstime)
-               ++mutex->__data.__count;
-+                LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
-+
-               return 0;
-             }
-         }
-@@ -477,6 +487,8 @@ pthread_mutex_timedlock (mutex, abstime)
-       /* Record the ownership.  */
-       mutex->__data.__owner = id;
-       ++mutex->__data.__nusers;
-+
-+      LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
-     }
-  out:
-diff -Nrup a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c
---- a/nptl/pthread_mutex_unlock.c      2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_mutex_unlock.c      2012-01-01 20:41:26.666439837 -0700
-@@ -22,6 +22,7 @@
- #include <stdlib.h>
- #include "pthreadP.h"
- #include <lowlevellock.h>
-+#include <stap-probe.h>
- static int
- internal_function
-@@ -50,6 +51,9 @@ __pthread_mutex_unlock_usercnt (mutex, d
-       /* Unlock.  */
-       lll_unlock (mutex->__data.__lock, PTHREAD_MUTEX_PSHARED (mutex));
-+
-+      LIBC_PROBE (mutex_release, 1, mutex);
-+
-       return 0;
-     }
-   else if (__builtin_expect (type == PTHREAD_MUTEX_RECURSIVE_NP, 1))
-@@ -272,6 +276,9 @@ __pthread_mutex_unlock_full (pthread_mut
-                       PTHREAD_MUTEX_PSHARED (mutex));
-       int oldprio = newval >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
-+
-+      LIBC_PROBE (mutex_release, 1, mutex);
-+
-       return __pthread_tpp_change_priority (oldprio, -1);
-     default:
-@@ -279,6 +286,7 @@ __pthread_mutex_unlock_full (pthread_mut
-       return EINVAL;
-     }
-+  LIBC_PROBE (mutex_release, 1, mutex);
-   return 0;
- }
-diff -Nrup a/nptl/pthread_rwlock_destroy.c b/nptl/pthread_rwlock_destroy.c
---- a/nptl/pthread_rwlock_destroy.c    2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_rwlock_destroy.c    2012-01-01 20:41:26.667439837 -0700
-@@ -18,12 +18,15 @@
-    02111-1307 USA.  */
- #include "pthreadP.h"
-+#include <stap-probe.h>
- int
- __pthread_rwlock_destroy (rwlock)
-      pthread_rwlock_t *rwlock;
- {
-+  LIBC_PROBE (rwlock_destroy, 1, rwlock);
-+
-   /* Nothing to be done.  For now.  */
-   return 0;
- }
-diff -Nrup a/nptl/pthread_rwlock_rdlock.c b/nptl/pthread_rwlock_rdlock.c
---- a/nptl/pthread_rwlock_rdlock.c     2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_rwlock_rdlock.c     2012-01-01 20:41:26.667439837 -0700
-@@ -22,6 +22,7 @@
- #include <lowlevellock.h>
- #include <pthread.h>
- #include <pthreadP.h>
-+#include <stap-probe.h>
- /* Acquire read lock for RWLOCK.  */
-@@ -31,6 +32,8 @@ __pthread_rwlock_rdlock (rwlock)
- {
-   int result = 0;
-+  LIBC_PROBE (rdlock_entry, 1, rwlock);
-+
-   /* Make sure we are alone.  */
-   lll_lock (rwlock->__data.__lock, rwlock->__data.__shared);
-@@ -49,6 +52,8 @@ __pthread_rwlock_rdlock (rwlock)
-             --rwlock->__data.__nr_readers;
-             result = EAGAIN;
-           }
-+          else
-+            LIBC_PROBE (rdlock_acquire_read, 1, rwlock);
-         break;
-       }
-diff -Nrup a/nptl/pthread_rwlock_unlock.c b/nptl/pthread_rwlock_unlock.c
---- a/nptl/pthread_rwlock_unlock.c     2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_rwlock_unlock.c     2012-01-01 20:41:26.668439837 -0700
-@@ -22,11 +22,14 @@
- #include <lowlevellock.h>
- #include <pthread.h>
- #include <pthreadP.h>
-+#include <stap-probe.h>
- /* Unlock RWLOCK.  */
- int
- __pthread_rwlock_unlock (pthread_rwlock_t *rwlock)
- {
-+  LIBC_PROBE (rwlock_unlock, 1, rwlock);
-+
-   lll_lock (rwlock->__data.__lock, rwlock->__data.__shared);
-   if (rwlock->__data.__writer)
-     rwlock->__data.__writer = 0;
-diff -Nrup a/nptl/pthread_rwlock_wrlock.c b/nptl/pthread_rwlock_wrlock.c
---- a/nptl/pthread_rwlock_wrlock.c     2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/pthread_rwlock_wrlock.c     2012-01-01 20:41:26.668439837 -0700
-@@ -22,6 +22,7 @@
- #include <lowlevellock.h>
- #include <pthread.h>
- #include <pthreadP.h>
-+#include <stap-probe.h>
- /* Acquire write lock for RWLOCK.  */
-@@ -31,6 +32,8 @@ __pthread_rwlock_wrlock (rwlock)
- {
-   int result = 0;
-+  LIBC_PROBE (wrlock_entry, 1, rwlock);
-+
-   /* Make sure we are alone.  */
-   lll_lock (rwlock->__data.__lock, rwlock->__data.__shared);
-@@ -41,6 +44,8 @@ __pthread_rwlock_wrlock (rwlock)
-       {
-         /* Mark self as writer.  */
-         rwlock->__data.__writer = THREAD_GETMEM (THREAD_SELF, tid);
-+
-+          LIBC_PROBE (wrlock_acquire_write, 1, rwlock);
-         break;
-       }
 diff -Nrup a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
---- a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h    2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h    2012-01-01 20:41:26.668439837 -0700
-@@ -189,4 +189,7 @@
+--- a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h    2012-06-05 07:42:49.000000000 -0600
++++ b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h    2012-06-07 12:15:21.817318674 -0600
+@@ -188,4 +188,7 @@
  /* Typed memory objects are not available.  */
  #define _POSIX_TYPED_MEMORY_OBJECTS   -1
  
@@ -2516,7 +1282,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h b/nptl/sysdeps/unix/s
  #endif /* bits/posix_opt.h */
 diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/Versions b/nptl/sysdeps/unix/sysv/linux/i386/Versions
 --- a/nptl/sysdeps/unix/sysv/linux/i386/Versions       1969-12-31 17:00:00.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/i386/Versions       2012-01-01 20:41:26.669439837 -0700
++++ b/nptl/sysdeps/unix/sysv/linux/i386/Versions       2012-06-07 12:15:21.818318670 -0600
 @@ -0,0 +1,6 @@
 +libc {
 +  GLIBC_PRIVATE {
@@ -2524,174 +1290,10 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/Versions b/nptl/sysdeps/unix/sysv
 +    __uname;
 +  }
 +}
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
---- a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S    2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S    2012-01-01 20:41:26.669439837 -0700
-@@ -22,6 +22,8 @@
- #include <kernel-features.h>
- #include <lowlevellock.h>
-+#include <stap-probe.h>
-+
-       .text
- #ifdef __ASSUME_PRIVATE_FUTEX
-@@ -91,7 +93,8 @@ __lll_lock_wait_private:
-       cmpl    %edx, %eax      /* NB:   %edx == 2 */
-       jne 2f
--1:    movl    $SYS_futex, %eax
-+1:    LIBC_PROBE (lll_lock_wait_private, 1, %ebx)
-+      movl    $SYS_futex, %eax
-       ENTER_KERNEL
- 2:    movl    %edx, %eax
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
---- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S  2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S  2012-01-01 20:41:26.670439837 -0700
-@@ -24,6 +24,7 @@
- #include <kernel-features.h>
- #include <pthread-pi-defines.h>
- #include <pthread-errnos.h>
-+#include <stap-probe.h>
-       .text
-@@ -49,6 +50,8 @@ __pthread_cond_broadcast:
-       movl    20(%esp), %ebx
-+      LIBC_PROBE (cond_broadcast, 1, %edx)
-+
-       /* Get internal lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
---- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S     2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S     2012-01-01 20:41:26.670439837 -0700
-@@ -24,7 +24,7 @@
- #include <kernel-features.h>
- #include <pthread-pi-defines.h>
- #include <pthread-errnos.h>
--
-+#include <stap-probe.h>
-       .text
-@@ -45,6 +45,8 @@ __pthread_cond_signal:
-       movl    12(%esp), %edi
-+      LIBC_PROBE (cond_signal, 1, %edi)
-+
-       /* Get internal lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
---- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S  2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S  2012-01-01 20:41:26.670439837 -0700
-@@ -24,7 +24,7 @@
- #include <pthread-errnos.h>
- #include <pthread-pi-defines.h>
- #include <kernel-features.h>
--
-+#include <stap-probe.h>
-       .text
-@@ -61,6 +61,8 @@ __pthread_cond_timedwait:
-       movl    20(%esp), %ebx
-       movl    28(%esp), %ebp
-+      LIBC_PROBE (cond_timedwait, 3, %ebx, 24(%esp), %ebp)
-+
-       cmpl    $1000000000, 4(%ebp)
-       movl    $EINVAL, %eax
-       jae     18f
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
---- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S       2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S       2012-01-01 20:41:26.671439837 -0700
-@@ -25,6 +25,7 @@
- #include <pthread-errnos.h>
- #include <pthread-pi-defines.h>
- #include <kernel-features.h>
-+#include <stap-probe.h>
-       .text
-@@ -61,6 +62,8 @@ __pthread_cond_wait:
-       xorl    %esi, %esi
-       movl    20(%esp), %ebx
-+      LIBC_PROBE (cond_wait, 2, 24(%esp), %ebx)
-+
-       /* Get internal lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
---- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S   2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S   2012-01-01 20:41:26.671439837 -0700
-@@ -23,6 +23,7 @@
- #include <pthread-errnos.h>
- #include <kernel-features.h>
-+#include <stap-probe.h>
-       .text
-@@ -41,6 +42,8 @@ __pthread_rwlock_rdlock:
-       xorl    %esi, %esi
-       movl    12(%esp), %ebx
-+      LIBC_PROBE (rdlock_entry, 1, %ebx)
-+
-       /* Get the lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
---- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S   2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S   2012-01-01 20:41:26.672439837 -0700
-@@ -23,6 +23,7 @@
- #include <pthread-errnos.h>
- #include <kernel-features.h>
-+#include <stap-probe.h>
-       .text
-@@ -41,6 +42,8 @@ __pthread_rwlock_wrlock:
-       xorl    %esi, %esi
-       movl    12(%esp), %ebx
-+      LIBC_PROBE (wrlock_entry, 1, %ebx)
-+
-       /* Get the lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
---- a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2012-01-01 20:41:26.672439837 -0700
-@@ -20,6 +20,8 @@
- #ifndef _LOWLEVELLOCK_H
- #define _LOWLEVELLOCK_H       1
-+#include <stap-probe.h>
-+
- #ifndef __ASSEMBLER__
- # include <time.h>
- # include <sys/param.h>
-@@ -226,6 +228,7 @@ LLL_STUB_UNWIND_INFO_END
-   do {                                                                              \
-     int __ignore;                                                           \
-     register __typeof (nr) _nr asm ("edx") = (nr);                          \
-+    LIBC_PROBE (lll_futex_wake, 3, futex, nr, private);                       \
-     __asm __volatile (LLL_EBX_LOAD                                          \
-                     LLL_ENTER_KERNEL                                        \
-                     LLL_EBX_LOAD                                            \
 diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/smp.h b/nptl/sysdeps/unix/sysv/linux/i386/smp.h
---- a/nptl/sysdeps/unix/sysv/linux/i386/smp.h  2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/i386/smp.h  2012-01-01 20:41:26.673439836 -0700
-@@ -37,7 +37,7 @@ is_smp_system (void)
+--- a/nptl/sysdeps/unix/sysv/linux/i386/smp.h  2012-06-05 07:42:49.000000000 -0600
++++ b/nptl/sysdeps/unix/sysv/linux/i386/smp.h  2012-06-07 12:15:21.818318670 -0600
+@@ -36,7 +36,7 @@ is_smp_system (void)
    char *cp;
  
    /* Try reading the number using `sysctl' first.  */
@@ -2702,7 +1304,7 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/i386/smp.h b/nptl/sysdeps/unix/sysv/li
      {
 diff -Nrup a/nptl/sysdeps/unix/sysv/linux/kernel-features.h b/nptl/sysdeps/unix/sysv/linux/kernel-features.h
 --- a/nptl/sysdeps/unix/sysv/linux/kernel-features.h   1969-12-31 17:00:00.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/kernel-features.h   2012-01-01 20:41:26.673439836 -0700
++++ b/nptl/sysdeps/unix/sysv/linux/kernel-features.h   2012-06-07 12:15:21.818318670 -0600
 @@ -0,0 +1,6 @@
 +#include_next <kernel-features.h>
 +
@@ -2710,186 +1312,9 @@ diff -Nrup a/nptl/sysdeps/unix/sysv/linux/kernel-features.h b/nptl/sysdeps/unix/
 +#ifndef __ASSUME_CLONE_THREAD_FLAGS
 +# define __ASSUME_CLONE_THREAD_FLAGS  1
 +#endif
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S       2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S       2012-01-01 20:41:26.673439836 -0700
-@@ -22,6 +22,8 @@
- #include <kernel-features.h>
- #include <lowlevellock.h>
-+#include <stap-probe.h>
-+
-       .text
- #ifdef __ASSUME_PRIVATE_FUTEX
-@@ -87,7 +89,8 @@ __lll_lock_wait_private:
-       cmpl    %edx, %eax      /* NB:   %edx == 2 */
-       jne     2f
--1:    movl    $SYS_futex, %eax
-+1:    LIBC_PROBE (lll_lock_wait_private, 1, %rdi)
-+      movl    $SYS_futex, %eax
-       syscall
- 2:    movl    %edx, %eax
-@@ -126,7 +129,8 @@ __lll_lock_wait:
-       cmpl    %edx, %eax      /* NB:   %edx == 2 */
-       jne     2f
--1:    movl    $SYS_futex, %eax
-+1:    LIBC_PROBE (lll_lock_wait, 2, %rdi, %rsi)
-+      movl    $SYS_futex, %eax
-       syscall
- 2:    movl    %edx, %eax
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h       2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h       2012-01-01 20:41:26.674439835 -0700
-@@ -20,6 +20,8 @@
- #ifndef _LOWLEVELLOCK_H
- #define _LOWLEVELLOCK_H       1
-+#include <stap-probe.h>
-+
- #ifndef __ASSEMBLER__
- # include <time.h>
- # include <sys/param.h>
-@@ -227,6 +229,7 @@ LLL_STUB_UNWIND_INFO_END
-   do {                                                                              \
-     int __ignore;                                                           \
-     register __typeof (nr) _nr __asm ("edx") = (nr);                        \
-+    LIBC_PROBE (lll_futex_wake, 3, futex, nr, private);                       \
-     __asm __volatile ("syscall"                                                     \
-                     : "=a" (__ignore)                                       \
-                     : "0" (SYS_futex), "D" (futex),                         \
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S     2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S     2012-01-01 20:41:26.674439835 -0700
-@@ -25,7 +25,7 @@
- #include <kernel-features.h>
- #include <pthread-pi-defines.h>
- #include <pthread-errnos.h>
--
-+#include <stap-probe.h>
-       .text
-@@ -35,6 +35,8 @@
-       .align  16
- __pthread_cond_broadcast:
-+        LIBC_PROBE (cond_broadcast, 1, %rdi)
-+
-       /* Get internal lock.  */
-       movl    $1, %esi
-       xorl    %eax, %eax
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S        2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S        2012-01-01 20:41:26.675439835 -0700
-@@ -24,6 +24,7 @@
- #include <pthread-pi-defines.h>
- #include <kernel-features.h>
- #include <pthread-errnos.h>
-+#include <stap-probe.h>
-       .text
-@@ -34,6 +35,8 @@
-       .align  16
- __pthread_cond_signal:
-+        LIBC_PROBE (cond_signal, 1, %rdi)
-+
-       /* Get internal lock.  */
-       movq    %rdi, %r8
-       movl    $1, %esi
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S     2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S     2012-01-01 20:41:26.675439835 -0700
-@@ -23,6 +23,7 @@
- #include <lowlevelcond.h>
- #include <pthread-pi-defines.h>
- #include <pthread-errnos.h>
-+#include <stap-probe.h>
- #include <kernel-features.h>
-@@ -68,6 +69,8 @@ __pthread_cond_timedwait:
-       cfi_adjust_cfa_offset(FRAME_SIZE)
-       cfi_remember_state
-+      LIBC_PROBE (cond_timedwait, 3, %rdi, %rsi, %rdx)
-+
-       cmpq    $1000000000, 8(%rdx)
-       movl    $EINVAL, %eax
-       jae     48f
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S  2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S  2012-01-01 20:41:26.676439836 -0700
-@@ -24,6 +24,7 @@
- #include <tcb-offsets.h>
- #include <pthread-pi-defines.h>
- #include <pthread-errnos.h>
-+#include <stap-probe.h>
- #include <kernel-features.h>
-@@ -66,6 +67,8 @@ __pthread_cond_wait:
-                   +--------------------------+
-       */
-+      LIBC_PROBE (cond_wait, 2, %rdi, %rsi)
-+
-       cmpq    $-1, dep_mutex(%rdi)
-               /* Prepare structure passed to cancellation handler.  */
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S      2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S      2012-01-01 20:41:26.677439836 -0700
-@@ -22,7 +22,7 @@
- #include <lowlevelrwlock.h>
- #include <pthread-errnos.h>
- #include <kernel-features.h>
--
-+#include <stap-probe.h>
-       .text
-@@ -31,6 +31,9 @@
-       .align  16
- __pthread_rwlock_rdlock:
-       cfi_startproc
-+
-+        LIBC_PROBE (rdlock_entry, 1, %rdi)
-+
-       xorq    %r10, %r10
-       /* Get the lock.  */
-diff -Nrup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S      2012-01-01 05:16:32.000000000 -0700
-+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S      2012-01-01 20:41:26.677439836 -0700
-@@ -22,7 +22,7 @@
- #include <lowlevelrwlock.h>
- #include <pthread-errnos.h>
- #include <kernel-features.h>
--
-+#include <stap-probe.h>
-       .text
-@@ -31,6 +31,9 @@
-       .align  16
- __pthread_rwlock_wrlock:
-       cfi_startproc
-+
-+        LIBC_PROBE (wrlock_entry, 1, %rdi)
-+
-       xorq    %r10, %r10
-       /* Get the lock.  */
 diff -Nrup a/nscd/nscd.conf b/nscd/nscd.conf
---- a/nscd/nscd.conf   2012-01-01 05:16:32.000000000 -0700
-+++ b/nscd/nscd.conf   2012-01-01 20:41:26.677439836 -0700
+--- a/nscd/nscd.conf   2012-06-05 07:42:49.000000000 -0600
++++ b/nscd/nscd.conf   2012-06-07 12:15:21.818318670 -0600
 @@ -33,7 +33,7 @@
  #     logfile                 /var/log/nscd.log
  #     threads                 4
@@ -2900,8 +1325,8 @@ diff -Nrup a/nscd/nscd.conf b/nscd/nscd.conf
        debug-level             0
  #     reload-count            5
 diff -Nrup a/nscd/nscd.init b/nscd/nscd.init
---- a/nscd/nscd.init   2012-01-01 05:16:32.000000000 -0700
-+++ b/nscd/nscd.init   2012-01-01 20:41:26.678439836 -0700
+--- a/nscd/nscd.init   2012-06-05 07:42:49.000000000 -0600
++++ b/nscd/nscd.init   2012-06-07 12:15:21.818318670 -0600
 @@ -9,6 +9,7 @@
  #             slow naming services like NIS, NIS+, LDAP, or hesiod.
  # processname: /usr/sbin/nscd
@@ -2979,9 +1404,9 @@ diff -Nrup a/nscd/nscd.init b/nscd/nscd.init
      *)
        echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
 diff -Nrup a/nscd/selinux.c b/nscd/selinux.c
---- a/nscd/selinux.c   2012-01-01 05:16:32.000000000 -0700
-+++ b/nscd/selinux.c   2012-01-01 20:41:26.678439836 -0700
-@@ -270,6 +270,18 @@ avc_create_thread (void (*run) (void))
+--- a/nscd/selinux.c   2012-06-05 07:42:49.000000000 -0600
++++ b/nscd/selinux.c   2012-06-07 12:15:21.819318667 -0600
+@@ -269,6 +269,18 @@ avc_create_thread (void (*run) (void))
  {
    int rc;
  
@@ -3001,20 +1426,20 @@ diff -Nrup a/nscd/selinux.c b/nscd/selinux.c
      pthread_create (&avc_notify_thread, NULL, (void *(*) (void *)) run, NULL);
    if (rc != 0)
 diff -Nrup a/nss/Makefile b/nss/Makefile
---- a/nss/Makefile     2012-01-01 05:16:32.000000000 -0700
-+++ b/nss/Makefile     2012-01-01 20:41:26.679439836 -0700
-@@ -88,6 +88,7 @@ endif
- include ../Rules
+--- a/nss/Makefile     2012-06-05 07:42:49.000000000 -0600
++++ b/nss/Makefile     2012-06-07 12:15:21.819318667 -0600
+@@ -101,6 +101,7 @@ $(libnss_db-dbs:%=$(objpfx)%.c): $(objpf
+        echo '#include "$<"') > $@.new
+       mv -f $@.new $@
  
 +CFLAGS-files-hosts.c += -fno-strict-aliasing
  
ifeq (yes,$(build-static-nss))
- $(objpfx)getent: $(objpfx)libnss_files.a
$(objpfx)makedb: $(makedb-modules:%=$(objpfx)%.o)
 diff -Nrup a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c
---- a/nss/nss_files/files-XXX.c        2012-01-01 05:16:32.000000000 -0700
-+++ b/nss/nss_files/files-XXX.c        2012-01-01 20:41:26.679439836 -0700
-@@ -190,7 +190,7 @@ internal_getent (struct STRUCTURE *resul
+--- a/nss/nss_files/files-XXX.c        2012-06-05 07:42:49.000000000 -0600
++++ b/nss/nss_files/files-XXX.c        2012-06-07 12:15:21.819318667 -0600
+@@ -189,7 +189,7 @@ internal_getent (struct STRUCTURE *resul
  {
    char *p;
    struct parser_data *data = (void *) buffer;
@@ -3024,9 +1449,9 @@ diff -Nrup a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c
  
    if (buflen < sizeof *data + 2)
 diff -Nrup a/posix/Makefile b/posix/Makefile
---- a/posix/Makefile   2012-01-01 05:16:32.000000000 -0700
-+++ b/posix/Makefile   2012-01-01 20:41:26.680439836 -0700
-@@ -320,15 +320,8 @@ $(inst_libexecdir)/getconf: $(inst_bindi
+--- a/posix/Makefile   2012-06-05 07:42:49.000000000 -0600
++++ b/posix/Makefile   2012-06-07 12:15:21.820318664 -0600
+@@ -305,15 +305,8 @@ $(inst_libexecdir)/getconf: $(inst_bindi
          mv -f $@/$$spec.new $@/$$spec; \
        done < $(objpfx)getconf.speclist
  
@@ -3047,8 +1472,8 @@ diff -Nrup a/posix/Makefile b/posix/Makefile
 +        > $@.new
        mv -f $@.new $@
 diff -Nrup a/posix/gai.conf b/posix/gai.conf
---- a/posix/gai.conf   2012-01-01 05:16:32.000000000 -0700
-+++ b/posix/gai.conf   2012-01-01 20:41:26.680439836 -0700
+--- a/posix/gai.conf   2012-06-05 07:42:49.000000000 -0600
++++ b/posix/gai.conf   2012-06-07 12:15:21.820318664 -0600
 @@ -41,7 +41,7 @@
  #
  # precedence  <mask>   <value>
@@ -3075,7 +1500,7 @@ diff -Nrup a/posix/gai.conf b/posix/gai.conf
 +#    This is what the Red Hat setting currently uses.
 diff -Nrup a/posix/getconf.speclist.h b/posix/getconf.speclist.h
 --- a/posix/getconf.speclist.h 1969-12-31 17:00:00.000000000 -0700
-+++ b/posix/getconf.speclist.h 2012-01-01 20:41:26.680439836 -0700
++++ b/posix/getconf.speclist.h 2012-06-07 12:15:21.820318664 -0600
 @@ -0,0 +1,39 @@
 +#include <unistd.h>
 +const char *START_OF_STRINGS =
@@ -3117,9 +1542,9 @@ diff -Nrup a/posix/getconf.speclist.h b/posix/getconf.speclist.h
 +#endif
 +"";
 diff -Nrup a/posix/regcomp.c b/posix/regcomp.c
---- a/posix/regcomp.c  2012-01-01 05:16:32.000000000 -0700
-+++ b/posix/regcomp.c  2012-01-01 20:41:26.681439836 -0700
-@@ -2745,40 +2745,29 @@ parse_bracket_exp (re_string_t *regexp,
+--- a/posix/regcomp.c  2012-06-05 07:42:49.000000000 -0600
++++ b/posix/regcomp.c  2012-06-07 12:15:21.821318661 -0600
+@@ -2772,40 +2772,29 @@ parse_bracket_exp (re_string_t *regexp,
  
    /* Local function for parse_bracket_exp used in _LIBC environement.
       Seek the collating symbol entry correspondings to NAME.
@@ -3178,7 +1603,7 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c
      }
  
    /* Local function for parse_bracket_exp used in _LIBC environment.
-@@ -2787,8 +2776,7 @@ parse_bracket_exp (re_string_t *regexp,
+@@ -2814,8 +2803,7 @@ parse_bracket_exp (re_string_t *regexp,
  
    auto inline unsigned int
    __attribute ((always_inline))
@@ -3188,7 +1613,7 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c
      {
        if (br_elem->type == SB_CHAR)
        {
-@@ -2816,7 +2804,7 @@ parse_bracket_exp (re_string_t *regexp,
+@@ -2843,7 +2831,7 @@ parse_bracket_exp (re_string_t *regexp,
              int32_t elem, idx;
              elem = seek_collating_symbol_entry (br_elem->opr.name,
                                                  sym_name_len);
@@ -3197,7 +1622,7 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c
                {
                  /* We found the entry.  */
                  idx = symb_table[2 * elem + 1];
-@@ -2834,7 +2822,7 @@ parse_bracket_exp (re_string_t *regexp,
+@@ -2861,7 +2849,7 @@ parse_bracket_exp (re_string_t *regexp,
                  /* Return the collation sequence value.  */
                  return *(unsigned int *) (extra + idx);
                }
@@ -3206,7 +1631,7 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c
                {
                  /* No valid character.  Match it as a single byte
                     character.  */
-@@ -2856,11 +2844,8 @@ parse_bracket_exp (re_string_t *regexp,
+@@ -2883,11 +2871,8 @@ parse_bracket_exp (re_string_t *regexp,
  
    auto inline reg_errcode_t
    __attribute ((always_inline))
@@ -3220,7 +1645,7 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c
      {
        unsigned int ch;
        uint32_t start_collseq;
-@@ -2939,25 +2924,22 @@ parse_bracket_exp (re_string_t *regexp,
+@@ -2966,25 +2951,22 @@ parse_bracket_exp (re_string_t *regexp,
  
    auto inline reg_errcode_t
    __attribute ((always_inline))
@@ -3251,9 +1676,9 @@ diff -Nrup a/posix/regcomp.c b/posix/regcomp.c
              /* No valid character, treat it as a normal
                 character.  */
 diff -Nrup a/resolv/Makefile b/resolv/Makefile
---- a/resolv/Makefile  2012-01-01 05:16:32.000000000 -0700
-+++ b/resolv/Makefile  2012-01-01 20:41:26.682439836 -0700
-@@ -81,6 +81,7 @@ ifeq (yes,$(have-ssp))
+--- a/resolv/Makefile  2012-06-05 07:42:49.000000000 -0600
++++ b/resolv/Makefile  2012-06-07 12:15:21.822318657 -0600
+@@ -80,6 +80,7 @@ ifeq (yes,$(have-ssp))
  CFLAGS-libresolv += -fstack-protector
  endif
  CFLAGS-res_hconf.c = -fexceptions
@@ -3262,9 +1687,9 @@ diff -Nrup a/resolv/Makefile b/resolv/Makefile
  # The BIND code elicits some harmless warnings.
  +cflags += -Wno-strict-prototypes -Wno-write-strings
 diff -Nrup a/resource/getrlimit.c b/resource/getrlimit.c
---- a/resource/getrlimit.c     2012-01-01 05:16:32.000000000 -0700
-+++ b/resource/getrlimit.c     2012-01-01 20:41:26.682439836 -0700
-@@ -28,6 +28,7 @@ __getrlimit (enum __rlimit_resource reso
+--- a/resource/getrlimit.c     2012-06-05 07:42:49.000000000 -0600
++++ b/resource/getrlimit.c     2012-06-07 12:15:21.823318653 -0600
+@@ -27,6 +27,7 @@ __getrlimit (enum __rlimit_resource reso
    __set_errno (ENOSYS);
    return -1;
  }
@@ -3272,22 +1697,10 @@ diff -Nrup a/resource/getrlimit.c b/resource/getrlimit.c
  weak_alias (__getrlimit, getrlimit)
  
  stub_warning (getrlimit)
-diff -Nrup a/scripts/check-local-headers.sh b/scripts/check-local-headers.sh
---- a/scripts/check-local-headers.sh   2012-01-01 05:16:32.000000000 -0700
-+++ b/scripts/check-local-headers.sh   2012-01-01 20:41:26.683439836 -0700
-@@ -29,7 +29,7 @@ exec ${AWK} -v includedir="$includedir"
- BEGIN {
-   status = 0
-   exclude = "^" includedir \
--    "/(asm[-/]|linux/|selinux/|gd|nss3/|sys/capability\\.h|libaudit\\.h)"
-+    "/(asm[-/]|linux/|selinux/|gd|nss3/|sys/capability\\.h|libaudit\\.h|sys/sdt(-config)?\\.h))"
- }
- /^[^ ]/ && $1 ~ /.*:/ { obj = $1 }
- {
 diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
---- a/stdio-common/vfprintf.c  2012-01-01 05:16:32.000000000 -0700
-+++ b/stdio-common/vfprintf.c  2012-01-01 20:41:26.683439836 -0700
-@@ -1161,41 +1161,9 @@ vfprintf (FILE *s, const CHAR_T *format,
+--- a/stdio-common/vfprintf.c  2012-06-05 07:42:49.000000000 -0600
++++ b/stdio-common/vfprintf.c  2012-06-07 12:15:21.823318653 -0600
+@@ -1168,42 +1168,9 @@ vfprintf (FILE *s, const CHAR_T *format,
        else if (!is_long && spec != L_('S'))                                 \
          {                                                                   \
            if (prec != -1)                                                   \
@@ -3316,6 +1729,7 @@ diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
 -                    if (__mbsnrtowcs (ignore, &str2, strend - str2,         \
 -                                      ignore_size, &ps) == (size_t) -1)     \
 -                      {                                                     \
+-                        /* Conversion function has set errno.  */           \
 -                        done = -1;                                          \
 -                        goto all_done;                                      \
 -                      }                                                     \
@@ -3326,16 +1740,16 @@ diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
 -                    len = str2 - string - (ps.__count & 7);                 \
 -                }                                                           \
 -            }                                                               \
-+            /* Search for thend of the string, but don't search past      \
-+               the length (in bytes) specified by the precision.  */        \
-+            len = __strnlen (string, prec);                                 \
++            /* Search for th eend of the string, but don't search past      \
++               the length (in bytes) specified by the precision.  */        \
++            len = __strnlen (string, prec);                                 \
            else                                                              \
              len = strlen (string);                                          \
          }                                                                   \
 diff -Nrup a/streams/Makefile b/streams/Makefile
---- a/streams/Makefile 2012-01-01 05:16:32.000000000 -0700
-+++ b/streams/Makefile 2012-01-01 20:41:26.684439835 -0700
-@@ -21,7 +21,7 @@
+--- a/streams/Makefile 2012-06-05 07:42:49.000000000 -0600
++++ b/streams/Makefile 2012-06-07 12:15:21.824318649 -0600
+@@ -20,7 +20,7 @@
  #
  subdir        := streams
  
@@ -3345,9 +1759,9 @@ diff -Nrup a/streams/Makefile b/streams/Makefile
  
  include ../Rules
 diff -Nrup a/sunrpc/Makefile b/sunrpc/Makefile
---- a/sunrpc/Makefile  2012-01-01 05:16:32.000000000 -0700
-+++ b/sunrpc/Makefile  2012-01-01 20:41:26.684439835 -0700
-@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth
+--- a/sunrpc/Makefile  2012-06-05 07:42:49.000000000 -0600
++++ b/sunrpc/Makefile  2012-06-07 12:15:21.825318645 -0600
+@@ -52,7 +52,7 @@ headers-in-tirpc = $(addprefix rpc/,auth
                                    des_crypt.h)
  headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
                       $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
@@ -3356,9 +1770,9 @@ diff -Nrup a/sunrpc/Makefile b/sunrpc/Makefile
  install-others = $(inst_sysconfdir)/rpc
  generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
            $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
-@@ -152,6 +152,10 @@ CFLAGS-openchild.c = -fexceptions
- CPPFLAGS += -D_RPC_THREAD_SAFE_
+@@ -150,6 +150,10 @@ sunrpc-CPPFLAGS = -D_RPC_THREAD_SAFE_
+ CPPFLAGS += $(sunrpc-CPPFLAGS)
+ BUILD_CPPFLAGS += $(sunrpc-CPPFLAGS)
  
 +CFLAGS-clnt_tcp.c += -fno-strict-aliasing
 +CFLAGS-clnt_udp.c += -fno-strict-aliasing
@@ -3368,9 +1782,9 @@ diff -Nrup a/sunrpc/Makefile b/sunrpc/Makefile
  $(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so
  $(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so
 diff -Nrup a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h
---- a/sysdeps/generic/dl-cache.h       2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/generic/dl-cache.h       2012-01-01 20:41:26.685439835 -0700
-@@ -36,6 +36,14 @@
+--- a/sysdeps/generic/dl-cache.h       2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/generic/dl-cache.h       2012-06-07 12:15:21.825318645 -0600
+@@ -35,6 +35,14 @@
  # define add_system_dir(dir) add_dir (dir)
  #endif
  
@@ -3386,8 +1800,8 @@ diff -Nrup a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h
  
  /* libc5 and glibc 2.0/2.1 use the same format.  For glibc 2.2 another
 diff -Nrup a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile
---- a/sysdeps/i386/Makefile    2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/i386/Makefile    2012-01-01 20:41:26.685439835 -0700
+--- a/sysdeps/i386/Makefile    2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/i386/Makefile    2012-06-07 12:15:21.826318641 -0600
 @@ -2,6 +2,8 @@
  # Every i386 port in use uses gas syntax (I think).
  asm-CPPFLAGS += -DGAS_SYNTAX
@@ -3397,7 +1811,7 @@ diff -Nrup a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile
  # The i386 `long double' is a distinct type we support.
  long-double-fcts = yes
  
-@@ -68,6 +70,14 @@ endif
+@@ -62,6 +64,14 @@ endif
  
  ifneq (,$(filter -mno-tls-direct-seg-refs,$(CFLAGS)))
  defines += -DNO_TLS_DIRECT_SEG_REFS
@@ -3412,112 +1826,9 @@ diff -Nrup a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile
  endif
  
  ifeq ($(subdir),elf)
-diff -Nrup a/sysdeps/i386/__longjmp.S b/sysdeps/i386/__longjmp.S
---- a/sysdeps/i386/__longjmp.S 2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/i386/__longjmp.S 2012-01-01 20:41:26.686439835 -0700
-@@ -1,5 +1,5 @@
- /* longjmp for i386.
--   Copyright (C) 1995-1998,2000,2002,2005,2006,2009
-+   Copyright (C) 1995-1998,2000,2002,2005,2006,2009,2011
-    Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-@@ -21,6 +21,7 @@
- #include <sysdep.h>
- #include <jmpbuf-offsets.h>
- #include <asm-syntax.h>
-+#include <stap-probe.h>
-       .text
- ENTRY (__longjmp)
-@@ -33,6 +34,7 @@ ENTRY (__longjmp)
-       movl (JB_SP*4)(%eax), %ecx
-       PTR_DEMANGLE (%edx)
-       PTR_DEMANGLE (%ecx)
-+      LIBC_PROBE (longjmp, 3, 4@%eax, -4@8(%esp), 4@%edx)
-       cfi_def_cfa(%eax, 0)
-       cfi_register(%eip, %edx)
-       cfi_register(%esp, %ecx)
-@@ -50,6 +52,7 @@ ENTRY (__longjmp)
-       cfi_restore(%edi)
-       cfi_restore(%ebp)
-+      LIBC_PROBE (longjmp_target, 3, 4@%eax, -4@8(%esp), 4@%edx)
-       movl 8(%esp), %eax      /* Second argument is return value.  */
-       movl %ecx, %esp
- #else
-@@ -57,12 +60,14 @@ ENTRY (__longjmp)
-       movl 8(%esp), %eax      /* Second argument is return value.  */
-       /* Save the return address now.  */
-       movl (JB_PC*4)(%ecx), %edx
-+      LIBC_PROBE (longjmp, 3, 4@%ecx, -4@%eax, 4@%edx)
-       /* Restore registers.  */
-       movl (JB_BX*4)(%ecx), %ebx
-       movl (JB_SI*4)(%ecx), %esi
-       movl (JB_DI*4)(%ecx), %edi
-       movl (JB_BP*4)(%ecx), %ebp
-       movl (JB_SP*4)(%ecx), %esp
-+      LIBC_PROBE (longjmp_target, 3, 4@%ecx, -4@%ecx, 4@%edx)
- #endif
-       /* Jump to saved PC.  */
-       jmp *%edx
-diff -Nrup a/sysdeps/i386/bsd-_setjmp.S b/sysdeps/i386/bsd-_setjmp.S
---- a/sysdeps/i386/bsd-_setjmp.S       2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/i386/bsd-_setjmp.S       2012-01-01 20:41:26.686439835 -0700
-@@ -1,5 +1,6 @@
- /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'.  i386 version.
--   Copyright (C) 1994-1997,2000-2002,2005, 2006 Free Software Foundation, Inc.
-+   Copyright (C) 1994-1997,2000-2002,2005,2006,2011
-+      Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -25,6 +26,7 @@
- #include <jmpbuf-offsets.h>
- #include "bp-sym.h"
- #include "bp-asm.h"
-+#include <stap-probe.h>
- #define PARMS LINKAGE         /* no space for saved regs */
- #define JMPBUF        PARMS
-@@ -47,6 +49,7 @@ ENTRY (BP_SYM (_setjmp))
- #endif
-       movl %ecx, (JB_SP*4)(%edx)
-       movl PCOFF(%esp), %ecx  /* Save PC we are returning to now.  */
-+      LIBC_PROBE (setjmp, 3, 4@%edx, -4@$0, 4@%ecx)
- #ifdef PTR_MANGLE
-       PTR_MANGLE (%ecx)
- #endif
-diff -Nrup a/sysdeps/i386/bsd-setjmp.S b/sysdeps/i386/bsd-setjmp.S
---- a/sysdeps/i386/bsd-setjmp.S        2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/i386/bsd-setjmp.S        2012-01-01 20:41:26.687439834 -0700
-@@ -1,5 +1,6 @@
- /* BSD `setjmp' entry point to `sigsetjmp (..., 1)'.  i386 version.
--   Copyright (C) 1994-1997,2000,2001,2005, 2006 Free Software Foundation, Inc.
-+   Copyright (C) 1994-1997,2000,2001,2005,2006,2011
-+      Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -25,6 +26,7 @@
- #include <jmpbuf-offsets.h>
- #include "bp-sym.h"
- #include "bp-asm.h"
-+#include <stap-probe.h>
- #define PARMS  LINKAGE                /* no space for saved regs */
- #define JMPBUF PARMS
-@@ -49,6 +51,7 @@ ENTRY (BP_SYM (setjmp))
- #endif
-       movl %ecx, (JB_SP*4)(%eax)
-       movl PCOFF(%esp), %ecx  /* Save PC we are returning to now.  */
-+      LIBC_PROBE (setjmp, 3, 4@%eax, -4@$1, 4@%ecx)
- #ifdef PTR_MANGLE
-       PTR_MANGLE (%ecx)
- #endif
 diff -Nrup a/sysdeps/i386/i686/Makefile b/sysdeps/i386/i686/Makefile
---- a/sysdeps/i386/i686/Makefile       2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/i386/i686/Makefile       2012-01-01 20:41:26.687439834 -0700
+--- a/sysdeps/i386/i686/Makefile       2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/i386/i686/Makefile       2012-06-07 12:15:21.826318641 -0600
 @@ -9,19 +9,3 @@ stack-align-test-flags += -msse
  ifeq ($(subdir),string)
  sysdep_routines += cacheinfo
@@ -3538,403 +1849,9 @@ diff -Nrup a/sysdeps/i386/i686/Makefile b/sysdeps/i386/i686/Makefile
 -ASFLAGS-.ob += -Wa,-mtune=i686
 -ASFLAGS-.oS += -Wa,-mtune=i686
 -endif
-diff -Nrup a/sysdeps/i386/setjmp.S b/sysdeps/i386/setjmp.S
---- a/sysdeps/i386/setjmp.S    2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/i386/setjmp.S    2012-01-01 20:41:26.687439834 -0700
-@@ -1,5 +1,5 @@
- /* setjmp for i386.
--   Copyright (C) 1995,1996,1997,2000,2001,2005,2006
-+   Copyright (C) 1995,1996,1997,2000,2001,2005,2006,2011
-       Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-@@ -23,6 +23,7 @@
- #include <asm-syntax.h>
- #include "bp-sym.h"
- #include "bp-asm.h"
-+#include <stap-probe.h>
- #define PARMS LINKAGE         /* no space for saved regs */
- #define JMPBUF        PARMS
-@@ -44,6 +45,7 @@ ENTRY (BP_SYM (__sigsetjmp))
- #endif
-       movl %ecx, (JB_SP*4)(%eax)
-       movl PCOFF(%esp), %ecx  /* Save PC we are returning to now.  */
-+      LIBC_PROBE (setjmp, 3, 4@%eax, -4@SIGMSK(%esp), 4@%ecx)
- #ifdef PTR_MANGLE
-       PTR_MANGLE (%ecx)
- #endif
-diff -Nrup a/sysdeps/ia64/Makefile b/sysdeps/ia64/Makefile
---- a/sysdeps/ia64/Makefile    2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/ia64/Makefile    2012-01-01 20:41:26.688439833 -0700
-@@ -12,8 +12,8 @@ elide-routines.os += hp-timing
- ifeq (yes,$(build-shared))
- # Compatibility
--sysdep_routines += ia64libgcc
--shared-only-routines += ia64libgcc
-+sysdep_routines += libgcc-compat
-+shared-only-routines += libgcc-compat
- endif
- endif
-diff -Nrup a/sysdeps/ia64/ia64libgcc.S b/sysdeps/ia64/ia64libgcc.S
---- a/sysdeps/ia64/ia64libgcc.S        2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/ia64/ia64libgcc.S        1969-12-31 17:00:00.000000000 -0700
-@@ -1,350 +0,0 @@
--/* From the Intel IA-64 Optimization Guide, choose the minimum latency
--   alternative.  */
--
--#include <sysdep.h>
--#undef ret
--
--#include <shlib-compat.h>
--
--#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6)
--
--/* __divtf3
--   Compute a 80-bit IEEE double-extended quotient.
--   farg0 holds the dividend.  farg1 holds the divisor.  */
--
--ENTRY(___divtf3)
--      cmp.eq p7, p0 = r0, r0
--      frcpa.s0 f10, p6 = farg0, farg1
--      ;;
--(p6)  cmp.ne p7, p0 = r0, r0
--      .pred.rel.mutex p6, p7
--(p6)  fnma.s1 f11 = farg1, f10, f1
--(p6)  fma.s1 f12 = farg0, f10, f0
--      ;;
--(p6)  fma.s1 f13 = f11, f11, f0
--(p6)  fma.s1 f14 = f11, f11, f11
--      ;;
--(p6)  fma.s1 f11 = f13, f13, f11
--(p6)  fma.s1 f13 = f14, f10, f10
--      ;;
--(p6)  fma.s1 f10 = f13, f11, f10
--(p6)  fnma.s1 f11 = farg1, f12, farg0
--      ;;
--(p6)  fma.s1 f11 = f11, f10, f12
--(p6)  fnma.s1 f12 = farg1, f10, f1
--      ;;
--(p6)  fma.s1 f10 = f12, f10, f10
--(p6)  fnma.s1 f12 = farg1, f11, farg0
--      ;;
--(p6)  fma.s0 fret0 = f12, f10, f11
--(p7)  mov fret0 = f10
--      br.ret.sptk rp
--END(___divtf3)
--      .symver ___divtf3, __divtf3@GLIBC_2.2
--
--/* __divdf3
--   Compute a 64-bit IEEE double quotient.
--   farg0 holds the dividend.  farg1 holds the divisor.  */
--
--ENTRY(___divdf3)
--      cmp.eq p7, p0 = r0, r0
--      frcpa.s0 f10, p6 = farg0, farg1
--      ;;
--(p6)  cmp.ne p7, p0 = r0, r0
--      .pred.rel.mutex p6, p7
--(p6)  fmpy.s1 f11 = farg0, f10
--(p6)  fnma.s1 f12 = farg1, f10, f1
--      ;;
--(p6)  fma.s1 f11 = f12, f11, f11
--(p6)  fmpy.s1 f13 = f12, f12
--      ;;
--(p6)  fma.s1 f10 = f12, f10, f10
--(p6)  fma.s1 f11 = f13, f11, f11
--      ;;
--(p6)  fmpy.s1 f12 = f13, f13
--(p6)  fma.s1 f10 = f13, f10, f10
--      ;;
--(p6)  fma.d.s1 f11 = f12, f11, f11
--(p6)  fma.s1 f10 = f12, f10, f10
--      ;;
--(p6)  fnma.d.s1 f8 = farg1, f11, farg0
--      ;;
--(p6)  fma.d fret0 = f8, f10, f11
--(p7)  mov fret0 = f10
--      br.ret.sptk rp
--      ;;
--END(___divdf3)
--      .symver ___divdf3, __divdf3@GLIBC_2.2
--
--/* __divsf3
--   Compute a 32-bit IEEE float quotient.
--   farg0 holds the dividend.  farg1 holds the divisor.  */
--
--ENTRY(___divsf3)
--      cmp.eq p7, p0 = r0, r0
--      frcpa.s0 f10, p6 = farg0, farg1
--      ;;
--(p6)  cmp.ne p7, p0 = r0, r0
--      .pred.rel.mutex p6, p7
--(p6)  fmpy.s1 f8 = farg0, f10
--(p6)  fnma.s1 f9 = farg1, f10, f1
--      ;;
--(p6)  fma.s1 f8 = f9, f8, f8
--(p6)  fmpy.s1 f9 = f9, f9
--      ;;
--(p6)  fma.s1 f8 = f9, f8, f8
--(p6)  fmpy.s1 f9 = f9, f9
--      ;;
--(p6)  fma.d.s1 f10 = f9, f8, f8
--      ;;
--(p6)  fnorm.s.s0 fret0 = f10
--(p7)  mov fret0 = f10
--      br.ret.sptk rp
--      ;;
--END(___divsf3)
--      .symver ___divsf3, __divsf3@GLIBC_2.2
--
--/* __divdi3
--   Compute a 64-bit integer quotient.
--   in0 holds the dividend.  in1 holds the divisor.  */
--
--ENTRY(___divdi3)
--      .regstk 2,0,0,0
--      /* Transfer inputs to FP registers.  */
--      setf.sig f8 = in0
--      setf.sig f9 = in1
--      ;;
--      /* Convert the inputs to FP, so that they won't be treated as
--         unsigned.  */
--      fcvt.xf f8 = f8
--      fcvt.xf f9 = f9
--      ;;
--      /* Compute the reciprocal approximation.  */
--      frcpa.s1 f10, p6 = f8, f9
--      ;;
--      /* 3 Newton-Raphson iterations.  */
--(p6)  fnma.s1 f11 = f9, f10, f1
--(p6)  fmpy.s1 f12 = f8, f10
--      ;;
--(p6)  fmpy.s1 f13 = f11, f11
--(p6)  fma.s1 f12 = f11, f12, f12
--      ;;
--(p6)  fma.s1 f10 = f11, f10, f10
--(p6)  fma.s1 f11 = f13, f12, f12
--      ;;
--(p6)  fma.s1 f10 = f13, f10, f10
--(p6)  fnma.s1 f12 = f9, f11, f8
--      ;;
--(p6)  fma.s1 f10 = f12, f10, f11
--      ;;
--      /* Round quotient to an integer.  */
--      fcvt.fx.trunc.s1 f10 = f10
--      ;;
--      /* Transfer result to GP registers.  */
--      getf.sig ret0 = f10
--      br.ret.sptk rp
--      ;;
--END(___divdi3)
--      .symver ___divdi3, __divdi3@GLIBC_2.2
--
--/* __moddi3
--   Compute a 64-bit integer modulus.
--   in0 holds the dividend (a).  in1 holds the divisor (b).  */
--
--ENTRY(___moddi3)
--      .regstk 2,0,0,0
--      /* Transfer inputs to FP registers.  */
--      setf.sig f14 = in0
--      setf.sig f9 = in1
--      ;;
--      /* Convert the inputs to FP, so that they won't be treated as
--         unsigned.  */
--      fcvt.xf f8 = f14
--      fcvt.xf f9 = f9
--      ;;
--      /* Compute the reciprocal approximation.  */
--      frcpa.s1 f10, p6 = f8, f9
--      ;;
--      /* 3 Newton-Raphson iterations.  */
--(p6)  fmpy.s1 f12 = f8, f10
--(p6)  fnma.s1 f11 = f9, f10, f1
--      ;;
--(p6)  fma.s1 f12 = f11, f12, f12
--(p6)  fmpy.s1 f13 = f11, f11
--      ;;
--(p6)  fma.s1 f10 = f11, f10, f10
--(p6)  fma.s1 f11 = f13, f12, f12
--      ;;
--      sub in1 = r0, in1
--(p6)  fma.s1 f10 = f13, f10, f10
--(p6)  fnma.s1 f12 = f9, f11, f8
--      ;;
--      setf.sig f9 = in1
--(p6)  fma.s1 f10 = f12, f10, f11
--      ;;
--      fcvt.fx.trunc.s1 f10 = f10
--      ;;
--      /* r = q * (-b) + a  */
--      xma.l f10 = f10, f9, f14
--      ;;
--      /* Transfer result to GP registers.  */
--      getf.sig ret0 = f10
--      br.ret.sptk rp
--      ;;
--END(___moddi3)
--      .symver ___moddi3, __moddi3@GLIBC_2.2
--
--/* __udivdi3
--   Compute a 64-bit unsigned integer quotient.
--   in0 holds the dividend.  in1 holds the divisor.  */
--
--ENTRY(___udivdi3)
--      .regstk 2,0,0,0
--      /* Transfer inputs to FP registers.  */
--      setf.sig f8 = in0
--      setf.sig f9 = in1
--      ;;
--      /* Convert the inputs to FP, to avoid FP software-assist faults.  */
--      fcvt.xuf.s1 f8 = f8
--      fcvt.xuf.s1 f9 = f9
--      ;;
--      /* Compute the reciprocal approximation.  */
--      frcpa.s1 f10, p6 = f8, f9
--      ;;
--      /* 3 Newton-Raphson iterations.  */
--(p6)  fnma.s1 f11 = f9, f10, f1
--(p6)  fmpy.s1 f12 = f8, f10
--      ;;
--(p6)  fmpy.s1 f13 = f11, f11
--(p6)  fma.s1 f12 = f11, f12, f12
--      ;;
--(p6)  fma.s1 f10 = f11, f10, f10
--(p6)  fma.s1 f11 = f13, f12, f12
--      ;;
--(p6)  fma.s1 f10 = f13, f10, f10
--(p6)  fnma.s1 f12 = f9, f11, f8
--      ;;
--(p6)  fma.s1 f10 = f12, f10, f11
--      ;;
--      /* Round quotient to an unsigned integer.  */
--      fcvt.fxu.trunc.s1 f10 = f10
--      ;;
--      /* Transfer result to GP registers.  */
--      getf.sig ret0 = f10
--      br.ret.sptk rp
--      ;;
--END(___udivdi3)
--      .symver ___udivdi3, __udivdi3@GLIBC_2.2
--
--/* __umoddi3
--   Compute a 64-bit unsigned integer modulus.
--   in0 holds the dividend (a).  in1 holds the divisor (b).  */
--
--ENTRY(___umoddi3)
--      .regstk 2,0,0,0
--      /* Transfer inputs to FP registers.  */
--      setf.sig f14 = in0
--      setf.sig f9 = in1
--      ;;
--      /* Convert the inputs to FP, to avoid FP software assist faults.  */
--      fcvt.xuf.s1 f8 = f14
--      fcvt.xuf.s1 f9 = f9
--      ;;
--      /* Compute the reciprocal approximation.  */
--      frcpa.s1 f10, p6 = f8, f9
--      ;;
--      /* 3 Newton-Raphson iterations.  */
--(p6)  fmpy.s1 f12 = f8, f10
--(p6)  fnma.s1 f11 = f9, f10, f1
--      ;;
--(p6)  fma.s1 f12 = f11, f12, f12
--(p6)  fmpy.s1 f13 = f11, f11
--      ;;
--(p6)  fma.s1 f10 = f11, f10, f10
--(p6)  fma.s1 f11 = f13, f12, f12
--      ;;
--      sub in1 = r0, in1
--(p6)  fma.s1 f10 = f13, f10, f10
--(p6)  fnma.s1 f12 = f9, f11, f8
--      ;;
--      setf.sig f9 = in1
--(p6)  fma.s1 f10 = f12, f10, f11
--      ;;
--      /* Round quotient to an unsigned integer.  */
--      fcvt.fxu.trunc.s1 f10 = f10
--      ;;
--      /* r = q * (-b) + a  */
--      xma.l f10 = f10, f9, f14
--      ;;
--      /* Transfer result to GP registers.  */
--      getf.sig ret0 = f10
--      br.ret.sptk rp
--      ;;
--END(___umoddi3)
--      .symver ___umoddi3, __umoddi3@GLIBC_2.2
--
--/* __multi3
--   Compute a 128-bit multiply of 128-bit multiplicands.
--   in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b).  */
--
--ENTRY(___multi3)
--      .regstk 4,0,0,0
--      setf.sig f6 = in1
--      movl r19 = 0xffffffff
--      setf.sig f7 = in2
--      ;;
--      and r14 = r19, in0
--      ;;
--      setf.sig f10 = r14
--      and r14 = r19, in2
--      xmpy.l f9 = f6, f7
--      ;;
--      setf.sig f6 = r14
--      shr.u r14 = in0, 32
--      ;;
--      setf.sig f7 = r14
--      shr.u r14 = in2, 32
--      ;;
--      setf.sig f8 = r14
--      xmpy.l f11 = f10, f6
--      xmpy.l f6 = f7, f6
--      ;;
--      getf.sig r16 = f11
--      xmpy.l f7 = f7, f8
--      ;;
--      shr.u r14 = r16, 32
--      and r16 = r19, r16
--      getf.sig r17 = f6
--      setf.sig f6 = in0
--      ;;
--      setf.sig f11 = r14
--      getf.sig r21 = f7
--      setf.sig f7 = in3
--      ;;
--      xma.l f11 = f10, f8, f11
--      xma.l f6 = f6, f7, f9
--      ;;
--      getf.sig r18 = f11
--      ;;
--      add r18 = r18, r17
--      ;;
--      and r15 = r19, r18
--      cmp.ltu p7, p6 = r18, r17
--      ;;
--      getf.sig r22 = f6
--(p7)  adds r14 = 1, r19
--      ;;
--(p7)  add r21 = r21, r14
--      shr.u r14 = r18, 32
--      shl r15 = r15, 32
--      ;;
--      add r20 = r21, r14
--      ;;
--      add ret0 = r15, r16
--      add ret1 = r22, r20
--      br.ret.sptk rp
--      ;;
--END(___multi3)
--      .symver ___multi3, __multi3@GLIBC_2.2
--
--#endif
 diff -Nrup a/sysdeps/ia64/libgcc-compat.c b/sysdeps/ia64/libgcc-compat.c
 --- a/sysdeps/ia64/libgcc-compat.c     1969-12-31 17:00:00.000000000 -0700
-+++ b/sysdeps/ia64/libgcc-compat.c     2012-01-01 20:41:26.694439833 -0700
++++ b/sysdeps/ia64/libgcc-compat.c     2012-06-07 12:15:21.826318641 -0600
 @@ -0,0 +1,84 @@
 +/* pre-.hidden libgcc compatibility
 +   Copyright (C) 2002 Free Software Foundation, Inc.
@@ -4021,17 +1938,17 @@ diff -Nrup a/sysdeps/ia64/libgcc-compat.c b/sysdeps/ia64/libgcc-compat.c
 +
 +#endif
 diff -Nrup a/sysdeps/mach/hurd/getrlimit.c b/sysdeps/mach/hurd/getrlimit.c
---- a/sysdeps/mach/hurd/getrlimit.c    2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/mach/hurd/getrlimit.c    2012-01-01 20:41:26.694439833 -0700
-@@ -44,4 +44,5 @@ __getrlimit (enum __rlimit_resource reso
+--- a/sysdeps/mach/hurd/getrlimit.c    2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/mach/hurd/getrlimit.c    2012-06-07 12:15:21.826318641 -0600
+@@ -43,4 +43,5 @@ __getrlimit (enum __rlimit_resource reso
  
    return 0;
  }
 +libc_hidden_def (__getrlimit)
  weak_alias (__getrlimit, getrlimit)
 diff -Nrup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
---- a/sysdeps/posix/getaddrinfo.c      2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/posix/getaddrinfo.c      2012-01-01 20:41:26.695439833 -0700
+--- a/sysdeps/posix/getaddrinfo.c      2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/posix/getaddrinfo.c      2012-06-07 12:15:21.827318637 -0600
 @@ -565,8 +565,8 @@ gaih_inet (const char *name, const struc
  
          /* If we do not have to look for IPv6 addresses, use
@@ -4157,29 +2074,22 @@ diff -Nrup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
      { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 }
    };
 diff -Nrup a/sysdeps/powerpc/powerpc64/Makefile b/sysdeps/powerpc/powerpc64/Makefile
---- a/sysdeps/powerpc/powerpc64/Makefile       2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/powerpc/powerpc64/Makefile       2012-01-01 20:41:26.695439833 -0700
-@@ -33,6 +33,7 @@ ifneq ($(elf),no)
- # we use -fpic instead which is much better.
- CFLAGS-initfini.s += -fpic -O1
- endif
-+CFLAGS-libc-start.c += -fno-asynchronous-unwind-tables
- endif
- ifeq ($(subdir),elf)
-diff -Nrup a/sysdeps/powerpc/powerpc64/elf/Makefile b/sysdeps/powerpc/powerpc64/elf/Makefile
---- a/sysdeps/powerpc/powerpc64/elf/Makefile   2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/powerpc/powerpc64/elf/Makefile   2012-01-01 20:41:26.696439833 -0700
-@@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-re
- CFLAGS-rtld-memmove.os = $(no-special-regs)
+--- a/sysdeps/powerpc/powerpc64/Makefile       2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/powerpc/powerpc64/Makefile       2012-06-07 12:15:21.828318633 -0600
+@@ -35,6 +35,9 @@ CFLAGS-rtld-memmove.os = $(no-special-re
  CFLAGS-rtld-memchr.os = $(no-special-regs)
  CFLAGS-rtld-strnlen.os = $(no-special-regs)
-+
++CFLAGS-libc-start.c += -fno-asynchronous-unwind-tables
 +CFLAGS-gmon-start.c = -fno-strict-aliasing
++
+ ifeq ($(subdir),csu)
+ sysdep_routines += hp-timing
+ elide-routines.os += hp-timing
 diff -Nrup a/sysdeps/s390/s390-64/utf16-utf32-z9.c b/sysdeps/s390/s390-64/utf16-utf32-z9.c
---- a/sysdeps/s390/s390-64/utf16-utf32-z9.c    2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/s390/s390-64/utf16-utf32-z9.c    2012-01-01 20:41:26.696439833 -0700
-@@ -169,10 +169,7 @@ gconv_end (struct __gconv_step *data)
+--- a/sysdeps/s390/s390-64/utf16-utf32-z9.c    2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/s390/s390-64/utf16-utf32-z9.c    2012-06-07 12:15:21.829318630 -0600
+@@ -168,10 +168,7 @@ gconv_end (struct __gconv_step *data)
      register unsigned long long outlen asm("11") = outend - outptr;   \
      uint64_t cc = 0;                                                  \
                                                                        \
@@ -4192,9 +2102,9 @@ diff -Nrup a/sysdeps/s390/s390-64/utf16-utf32-z9.c b/sysdeps/s390/s390-64/utf16-
                  "   ipm    %2        \n"                              \
                  : "+a" (pOutput), "+a" (pInput), "+d" (cc),           \
 diff -Nrup a/sysdeps/s390/s390-64/utf8-utf16-z9.c b/sysdeps/s390/s390-64/utf8-utf16-z9.c
---- a/sysdeps/s390/s390-64/utf8-utf16-z9.c     2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/s390/s390-64/utf8-utf16-z9.c     2012-01-01 20:41:26.697439833 -0700
-@@ -151,10 +151,7 @@ gconv_end (struct __gconv_step *data)
+--- a/sysdeps/s390/s390-64/utf8-utf16-z9.c     2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/s390/s390-64/utf8-utf16-z9.c     2012-06-07 12:15:21.829318630 -0600
+@@ -150,10 +150,7 @@ gconv_end (struct __gconv_step *data)
      register unsigned long long outlen asm("11") = outend - outptr;   \
      uint64_t cc = 0;                                                  \
                                                                        \
@@ -4207,9 +2117,9 @@ diff -Nrup a/sysdeps/s390/s390-64/utf8-utf16-z9.c b/sysdeps/s390/s390-64/utf8-ut
                  "   ipm    %2        \n"                              \
                  : "+a" (pOutput), "+a" (pInput), "+d" (cc),           \
 diff -Nrup a/sysdeps/s390/s390-64/utf8-utf32-z9.c b/sysdeps/s390/s390-64/utf8-utf32-z9.c
---- a/sysdeps/s390/s390-64/utf8-utf32-z9.c     2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/s390/s390-64/utf8-utf32-z9.c     2012-01-01 20:41:26.697439833 -0700
-@@ -155,10 +155,7 @@ gconv_end (struct __gconv_step *data)
+--- a/sysdeps/s390/s390-64/utf8-utf32-z9.c     2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/s390/s390-64/utf8-utf32-z9.c     2012-06-07 12:15:21.829318630 -0600
+@@ -154,10 +154,7 @@ gconv_end (struct __gconv_step *data)
      register unsigned long long outlen asm("11") = outend - outptr;   \
      uint64_t cc = 0;                                                  \
                                                                        \
@@ -4222,9 +2132,9 @@ diff -Nrup a/sysdeps/s390/s390-64/utf8-utf32-z9.c b/sysdeps/s390/s390-64/utf8-ut
                  "   ipm    %2        \n"                              \
                  : "+a" (pOutput), "+a" (pInput), "+d" (cc),           \
 diff -Nrup a/sysdeps/unix/nice.c b/sysdeps/unix/nice.c
---- a/sysdeps/unix/nice.c      2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/unix/nice.c      2012-01-01 20:41:26.698439833 -0700
-@@ -42,7 +42,12 @@ nice (int incr)
+--- a/sysdeps/unix/nice.c      2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/unix/nice.c      2012-06-07 12:15:21.829318630 -0600
+@@ -41,7 +41,12 @@ nice (int incr)
        __set_errno (save);
      }
  
@@ -4239,9 +2149,9 @@ diff -Nrup a/sysdeps/unix/nice.c b/sysdeps/unix/nice.c
      {
        if (errno == EACCES)
 diff -Nrup a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c
---- a/sysdeps/unix/sysv/linux/check_pf.c       2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/check_pf.c       2012-01-01 20:41:26.698439833 -0700
-@@ -27,16 +27,14 @@
+--- a/sysdeps/unix/sysv/linux/check_pf.c       2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/unix/sysv/linux/check_pf.c       2012-06-07 12:15:21.830318627 -0600
+@@ -26,16 +26,14 @@
  #include <unistd.h>
  #include <sys/socket.h>
  
@@ -4261,9 +2171,9 @@ diff -Nrup a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_
  #ifndef IFA_F_HOMEADDRESS
  # define IFA_F_HOMEADDRESS 0
 diff -Nrup a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futimesat.c
---- a/sysdeps/unix/sysv/linux/futimesat.c      2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/futimesat.c      2012-01-01 20:41:26.699439832 -0700
-@@ -37,14 +37,14 @@ futimesat (fd, file, tvp)
+--- a/sysdeps/unix/sysv/linux/futimesat.c      2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/unix/sysv/linux/futimesat.c      2012-06-07 12:15:21.830318627 -0600
+@@ -36,14 +36,14 @@ futimesat (fd, file, tvp)
  {
    int result;
  
@@ -4281,7 +2191,7 @@ diff -Nrup a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futim
        result = INLINE_SYSCALL (futimesat, 3, fd, file, tvp);
  # ifndef __ASSUME_ATFCTS
        if (result == -1 && errno == ENOSYS)
-@@ -58,22 +58,7 @@ futimesat (fd, file, tvp)
+@@ -57,22 +57,7 @@ futimesat (fd, file, tvp)
  #ifndef __ASSUME_ATFCTS
    char *buf = NULL;
  
@@ -4305,45 +2215,9 @@ diff -Nrup a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futim
      {
        size_t filelen = strlen (file);
        if (__builtin_expect (filelen == 0, 0))
-diff -Nrup a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
---- a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S   2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S   2012-01-01 20:41:26.699439832 -0700
-@@ -1,4 +1,5 @@
--/* Copyright (C) 2001,2004,2005,2006,2009 Free Software Foundation, Inc.
-+/* Copyright (C) 2001,2004,2005,2006,2009,2011
-+      Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -19,6 +20,7 @@
- #include <sysdep.h>
- #include <jmpbuf-offsets.h>
- #include <asm-syntax.h>
-+#include <stap-probe.h>
-       .section .rodata.str1.1,"aMS",@progbits,1
-@@ -79,7 +81,9 @@ ENTRY (____longjmp_chk)
-       cfi_adjust_cfa_offset(-12)
-       movl    4(%esp), %ecx
--.Lok: /* We add unwind information for the target here.  */
-+.Lok:
-+      LIBC_PROBE (longjmp, 3, 4@%ecx, -4@8(%esp), 4@%edx)
-+      /* We add unwind information for the target here.  */
-       cfi_def_cfa(%ecx, 0)
-       cfi_register(%eip, %edx)
-       cfi_register(%esp, %edi)
-@@ -102,5 +106,6 @@ ENTRY (____longjmp_chk)
-       cfi_restore(%ebp)
-       /* Jump to saved PC.  */
-+      LIBC_PROBE (longjmp_target, 3, 4@%ecx, -4@%eax, 4@%edx)
-       jmp     *%edx
- END (____longjmp_chk)
 diff -Nrup a/sysdeps/unix/sysv/linux/i386/dl-cache.h b/sysdeps/unix/sysv/linux/i386/dl-cache.h
 --- a/sysdeps/unix/sysv/linux/i386/dl-cache.h  1969-12-31 17:00:00.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/i386/dl-cache.h  2012-01-01 20:41:26.700439831 -0700
++++ b/sysdeps/unix/sysv/linux/i386/dl-cache.h  2012-06-07 12:15:21.830318627 -0600
 @@ -0,0 +1,59 @@
 +/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
 +   Copyright (C) 2004 Free Software Foundation, Inc.
@@ -4405,52 +2279,17 @@ diff -Nrup a/sysdeps/unix/sysv/linux/i386/dl-cache.h b/sysdeps/unix/sysv/linux/i
 +
 +#include_next <dl-cache.h>
 diff -Nrup a/sysdeps/unix/sysv/linux/i386/getrlimit.c b/sysdeps/unix/sysv/linux/i386/getrlimit.c
---- a/sysdeps/unix/sysv/linux/i386/getrlimit.c 2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/i386/getrlimit.c 2012-01-01 20:41:26.700439831 -0700
-@@ -79,4 +79,5 @@ __new_getrlimit (enum __rlimit_resource
+--- a/sysdeps/unix/sysv/linux/i386/getrlimit.c 2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/unix/sysv/linux/i386/getrlimit.c 2012-06-07 12:15:21.830318627 -0600
+@@ -35,4 +35,5 @@ __new_getrlimit (enum __rlimit_resource
  }
  
  weak_alias (__new_getrlimit, __getrlimit);
 +libc_hidden_weak (__getrlimit)
  versioned_symbol (libc, __new_getrlimit, getrlimit, GLIBC_2_2);
-diff -Nrup a/sysdeps/unix/sysv/linux/ia64/dl-cache.h b/sysdeps/unix/sysv/linux/ia64/dl-cache.h
---- a/sysdeps/unix/sysv/linux/ia64/dl-cache.h  2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/ia64/dl-cache.h  2012-01-01 20:41:26.701439831 -0700
-@@ -22,4 +22,31 @@
- #define _dl_cache_check_flags(flags) \
-   ((flags) == _DL_CACHE_DEFAULT_ID)
-+#define EMUL_HACK "/emul/ia32-linux"
-+
-+#define arch_startup(argc, argv) unlink (EMUL_HACK LD_SO_CACHE)
-+
-+#define add_arch_dirs(config_file) \
-+  do {                                                        \
-+    int save_verbose = opt_verbose;                   \
-+    opt_verbose = 0;                                  \
-+                                                      \
-+    parse_conf (config_file, EMUL_HACK, true);                \
-+                                                      \
-+    /* Always add the standard search paths.  */      \
-+    add_system_dir (EMUL_HACK SLIBDIR);                       \
-+    if (strcmp (SLIBDIR, LIBDIR))                     \
-+      add_system_dir (EMUL_HACK LIBDIR);              \
-+                                                      \
-+    char emul_config_file[strlen (config_file)                \
-+                        + sizeof EMUL_HACK];          \
-+    strcpy (mempcpy (emul_config_file, EMUL_HACK,     \
-+                   strlen (EMUL_HACK)), config_file); \
-+                                                      \
-+    if (! access (emul_config_file, R_OK))            \
-+      parse_conf (emul_config_file, EMUL_HACK, true); \
-+                                                      \
-+    opt_verbose = save_verbose;                               \
-+  } while (0)
-+
- #include_next <dl-cache.h>
 diff -Nrup a/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
 --- a/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c       1969-12-31 17:00:00.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c       2012-01-01 20:41:26.701439831 -0700
++++ b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c       2012-06-07 12:15:21.831318623 -0600
 @@ -0,0 +1,5 @@
 +#ifdef IS_IN_ldconfig
 +#include <sysdeps/i386/dl-procinfo.c>
@@ -4459,23 +2298,17 @@ diff -Nrup a/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c b/sysdeps/unix/sysv/linu
 +#endif
 diff -Nrup a/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
 --- a/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h       1969-12-31 17:00:00.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h       2012-01-01 20:41:26.701439831 -0700
++++ b/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h       2012-06-07 12:15:21.831318623 -0600
 @@ -0,0 +1,5 @@
 +#ifdef IS_IN_ldconfig
 +#include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
 +#else
 +#include <sysdeps/generic/dl-procinfo.h>
 +#endif
-diff -Nrup a/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
---- a/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed     2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed     2012-01-01 20:41:26.701439831 -0700
-@@ -1 +1 @@
--s_^\(RTLDLIST=\)\([^  ]*\)-ia64\(\.so\.[0-9.]*\)[     ]*$_\1"\2-ia64\3 \2\3"_
-+s_^\(RTLDLIST=\)\([^  ]*\)-ia64\(\.so\.[0-9.]*\)[     ]*$_\1"\2-ia64\3 /emul/ia32-linux\2\3"_
 diff -Nrup a/sysdeps/unix/sysv/linux/netlinkaccess.h b/sysdeps/unix/sysv/linux/netlinkaccess.h
---- a/sysdeps/unix/sysv/linux/netlinkaccess.h  2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/netlinkaccess.h  2012-01-01 20:41:26.702439831 -0700
-@@ -25,6 +25,24 @@
+--- a/sysdeps/unix/sysv/linux/netlinkaccess.h  2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/unix/sysv/linux/netlinkaccess.h  2012-06-07 12:15:21.831318623 -0600
+@@ -24,6 +24,24 @@
  
  #include <kernel-features.h>
  
@@ -4501,8 +2334,8 @@ diff -Nrup a/sysdeps/unix/sysv/linux/netlinkaccess.h b/sysdeps/unix/sysv/linux/n
  struct netlink_res
  {
 diff -Nrup a/sysdeps/unix/sysv/linux/paths.h b/sysdeps/unix/sysv/linux/paths.h
---- a/sysdeps/unix/sysv/linux/paths.h  2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/paths.h  2012-01-01 20:41:26.702439831 -0700
+--- a/sysdeps/unix/sysv/linux/paths.h  2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/unix/sysv/linux/paths.h  2012-06-07 12:15:21.831318623 -0600
 @@ -62,7 +62,7 @@
  #define       _PATH_TTY       "/dev/tty"
  #define       _PATH_UNIX      "/boot/vmlinux"
@@ -4513,9 +2346,9 @@ diff -Nrup a/sysdeps/unix/sysv/linux/paths.h b/sysdeps/unix/sysv/linux/paths.h
  
  /* Provide trailing slash, since mostly used for building pathnames. */
 diff -Nrup a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcsetattr.c
---- a/sysdeps/unix/sysv/linux/tcsetattr.c      2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/tcsetattr.c      2012-01-01 20:41:26.703439831 -0700
-@@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios
+--- a/sysdeps/unix/sysv/linux/tcsetattr.c      2012-06-05 07:42:49.000000000 -0600
++++ b/sysdeps/unix/sysv/linux/tcsetattr.c      2012-06-07 12:15:21.831318623 -0600
+@@ -48,6 +48,7 @@ tcsetattr (fd, optional_actions, termios
  {
    struct __kernel_termios k_termios;
    unsigned long int cmd;
@@ -4523,7 +2356,7 @@ diff -Nrup a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcset
  
    switch (optional_actions)
      {
-@@ -80,6 +81,35 @@ tcsetattr (fd, optional_actions, termios
+@@ -79,6 +80,35 @@ tcsetattr (fd, optional_actions, termios
    memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0],
          __KERNEL_NCCS * sizeof (cc_t));
  
@@ -4560,102 +2393,3 @@ diff -Nrup a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcset
 +  return retval;
  }
  libc_hidden_def (tcsetattr)
-diff -Nrup a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
---- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S 2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S 2012-01-01 20:41:26.703439831 -0700
-@@ -19,6 +19,7 @@
- #include <sysdep.h>
- #include <jmpbuf-offsets.h>
- #include <asm-syntax.h>
-+#include <stap-probe.h>
-       .section .rodata.str1.1,"aMS",@progbits,1
-       .type   longjmp_msg,@object
-@@ -94,7 +95,9 @@ ENTRY(____longjmp_chk)
-       movl    %ebx, %esi
-       cfi_restore (%rsi)
--.Lok: /* We add unwind information for the target here.  */
-+.Lok:
-+      LIBC_PROBE (longjmp, 3, 8@%rdi, -4@%esi, 8@%rdx)
-+      /* We add unwind information for the target here.  */
-       cfi_def_cfa(%rdi, 0)
-       cfi_register(%rsp,%r8)
-       cfi_register(%rbp,%r9)
-@@ -113,5 +116,6 @@ ENTRY(____longjmp_chk)
-       movl    %esi, %eax
-       movq    %r8,%rsp
-       movq    %r9,%rbp
-+      LIBC_PROBE (longjmp_target, 3, 8@%rdi, -4@%eax, 8@%rdx)
-       jmpq    *%rdx
- END (____longjmp_chk)
-diff -Nrup a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S
---- a/sysdeps/x86_64/__longjmp.S       2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/x86_64/__longjmp.S       2012-01-01 20:41:26.703439831 -0700
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2001,2004,2005,2006,2009 Free Software Foundation, Inc.
-+/* Copyright (C) 2001,2004,2005,2006,2009,2011 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -19,6 +19,7 @@
- #include <sysdep.h>
- #include <jmpbuf-offsets.h>
- #include <asm-syntax.h>
-+#include <stap-probe.h>
- /* Jump to the position specified by ENV, causing the
-    setjmp call there to return VAL, or 1 if VAL is 0.
-@@ -34,6 +35,7 @@ ENTRY(__longjmp)
-       PTR_DEMANGLE (%r9)
-       PTR_DEMANGLE (%rdx)
- #endif
-+      LIBC_PROBE (longjmp, 3, 8@%rdi, -4@%esi, 8@%rdx)
-       /* We add unwind information for the target here.  */
-       cfi_def_cfa(%rdi, 0)
-       cfi_register(%rsp,%r8)
-@@ -53,5 +55,6 @@ ENTRY(__longjmp)
-       mov %esi, %eax
-       movq %r8,%rsp
-       movq %r9,%rbp
-+      LIBC_PROBE (longjmp_target, 3, 8@%rdi, -4@%eax, 8@%rdx)
-       jmpq *%rdx
- END (__longjmp)
-diff -Nrup a/sysdeps/x86_64/setjmp.S b/sysdeps/x86_64/setjmp.S
---- a/sysdeps/x86_64/setjmp.S  2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/x86_64/setjmp.S  2012-01-01 20:41:26.704439831 -0700
-@@ -1,5 +1,5 @@
- /* setjmp for x86-64.
--   Copyright (C) 2001, 2003, 2005, 2006 Free Software Foundation, Inc.
-+   Copyright (C) 2001,2003,2005,2006,2011 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -20,6 +20,7 @@
- #include <sysdep.h>
- #include <jmpbuf-offsets.h>
- #include <asm-syntax.h>
-+#include <stap-probe.h>
- ENTRY (__sigsetjmp)
-       /* Save registers.  */
-@@ -41,6 +42,7 @@ ENTRY (__sigsetjmp)
- #endif
-       movq %rdx, (JB_RSP*8)(%rdi)
-       movq (%rsp), %rax       /* Save PC we are returning to now.  */
-+      LIBC_PROBE (setjmp, 3, 8@%rdi, -4@%esi, 8@%rax)
- #ifdef PTR_MANGLE
-       PTR_MANGLE (%rax)
- #endif
-diff -Nrup a/timezone/zic.c b/timezone/zic.c
---- a/timezone/zic.c   2012-01-01 05:16:32.000000000 -0700
-+++ b/timezone/zic.c   2012-01-01 20:41:26.705439831 -0700
-@@ -1921,7 +1921,7 @@ const int                        zonecount;
-               if (stdrp != NULL && stdrp->r_hiyear == 2037)
-                       return;
-       }
--      if (stdrp == NULL && zp->z_nrules != 0)
-+      if (stdrp == NULL && (zp->z_nrules != 0 || zp->z_stdoff != 0))
-               return;
-       abbrvar = (stdrp == NULL) ? "" : stdrp->r_abbrvar;
-       doabbr(result, zp->z_format, abbrvar, FALSE, TRUE);
diff --git a/glibc/patches/glibc-rh730856.patch b/glibc/patches/glibc-rh730856.patch
deleted file mode 100644 (file)
index f7bd5d1..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-2011-09-01  Andreas Schwab  <schwab@redhat.com>
-
-       * resolv/res_query.c (__libc_res_nquery): Update assertion.
-
-diff -ru a/resolv/res_query.c b/resolv/res_query.c
---- a/resolv/res_query.c       2011-12-12 14:10:52.000000000 -0700
-+++ b/resolv/res_query.c       2011-12-12 14:23:04.832739111 -0700
-@@ -248,7 +248,7 @@
-           && *resplen2 > (int) sizeof (HEADER))
-         {
-           /* Special case of partial answer.  */
--          assert (hp != hp2);
-+          assert (n == 0 || hp != hp2);
-           hp = hp2;
-         }
-       else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER)
diff --git a/glibc/patches/glibc-rh740506.patch b/glibc/patches/glibc-rh740506.patch
deleted file mode 100644 (file)
index 6e20ff9..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-       * malloc/arena.c (arena_get2): Avoid unnecessarily
-       retrieving #cpus from /proc.
-       * malloc/malloc.c (mALLOPt): Clamp arena_test based on
-       the value of arena_max.
-
-diff --git a/malloc/arena.c b/malloc/arena.c
-index cb8548b..00f1da5 100644
---- a/malloc/arena.c
-+++ b/malloc/arena.c
-@@ -828,7 +828,7 @@ arena_get2(mstate a_tsd, size_t size)
-       {
-         if (mp_.arena_max != 0)
-           narenas_limit = mp_.arena_max;
--        else
-+        else if (narenas > mp_.arena_test)
-           {
-             int n  = __get_nprocs ();
-diff --git a/malloc/malloc.c b/malloc/malloc.c
-index 8608083..f8d32da 100644
---- a/malloc/malloc.c
-+++ b/malloc/malloc.c
-@@ -4842,6 +4842,12 @@ int mALLOPt(int param_number, int value)
-     break;
- #endif
-   }
-+#ifdef PER_THREAD
-+  /* Clamp ARENA_TEST from ARENA_MAX to avoid creating too many
-+     arenas.  */
-+  if (mp_.arena_max > 0 && mp_.arena_max <= mp_.arena_test)
-+    mp_.arena_test = mp_.arena_max - 1;
-+#endif
-   (void)mutex_unlock(&av->mutex);
-   return res;
- }
diff --git a/glibc/patches/glibc-rh757881.patch b/glibc/patches/glibc-rh757881.patch
deleted file mode 100644 (file)
index 0b41987..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-Index: glibc-2.12-2-gc4ccff1/malloc/arena.c
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/malloc/arena.c
-+++ glibc-2.12-2-gc4ccff1/malloc/arena.c
-@@ -870,7 +870,7 @@ heap_trim(heap, pad) heap_info *heap; si
-     heap = prev_heap;
-     if(!prev_inuse(p)) { /* consolidate backward */
-       p = prev_chunk(p);
--      unlink(p, bck, fwd);
-+      unlink(ar_ptr, p, bck, fwd);
-     }
-     assert(((unsigned long)((char*)p + new_size) & (pagesz-1)) == 0);
-     assert( ((char*)p + new_size) == ((char*)heap + heap->size) );
-Index: glibc-2.12-2-gc4ccff1/malloc/hooks.c
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/malloc/hooks.c
-+++ glibc-2.12-2-gc4ccff1/malloc/hooks.c
-@@ -219,7 +219,9 @@ top_check()
-       (char*)t + chunksize(t) == mp_.sbrk_base + main_arena.system_mem)))
-     return 0;
-+  mutex_unlock(&main_arena);
-   malloc_printerr (check_action, "malloc: top chunk is corrupt", t);
-+  mutex_lock(&main_arena);
-   /* Try to set up a new top chunk. */
-   brk = MORECORE(0);
-Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/malloc/malloc.c
-+++ glibc-2.12-2-gc4ccff1/malloc/malloc.c
-@@ -1541,12 +1541,14 @@
- #define last(b)      ((b)->bk)
- /* Take a chunk off a bin list */
--#define unlink(P, BK, FD) {                                            \
-+#define unlink(AV, P, BK, FD) {                                              \
-   FD = P->fd;                                                          \
-   BK = P->bk;                                                          \
--  if (__builtin_expect (FD->bk != P || BK->fd != P, 0))                \
-+  if (__builtin_expect (FD->bk != P || BK->fd != P, 0)) {            \
-+    mutex_unlock(&(AV)->mutex);                                              \
-     malloc_printerr (check_action, "corrupted double-linked list", P); \
--  else {                                                               \
-+    mutex_lock(&(AV)->mutex);                                        \
-+  } else {                                                           \
-     FD->bk = BK;                                                       \
-     BK->fd = FD;                                                       \
-     if (!in_smallbin_range (P->size)                                 \
-@@ -2593,7 +2595,9 @@
-     else if (contiguous(av) && old_size && brk < old_end) {
-       /* Oops!  Someone else killed our space..  Can't touch anything.  */
-+      mutex_unlock(&av->mutex);
-       malloc_printerr (3, "break adjusted to free malloc space", brk);
-+      mutex_lock(&av->mutex);
-     }
-     /*
-@@ -3467,7 +3471,9 @@
-       {
-         errstr = "malloc(): memory corruption (fast)";
-       errout:
-+        mutex_unlock(&av->mutex);
-         malloc_printerr (check_action, errstr, chunk2mem (victim));
-+        mutex_lock(&av->mutex);
-         return NULL;
-       }
-       check_remalloced_chunk(av, victim, nb);
-@@ -3552,8 +3558,12 @@
-       bck = victim->bk;
-       if (__builtin_expect (victim->size <= 2 * SIZE_SZ, 0)
-         || __builtin_expect (victim->size > av->system_mem, 0))
--      malloc_printerr (check_action, "malloc(): memory corruption",
--                       chunk2mem (victim));
-+      {
-+        void *p = chunk2mem(victim);
-+        mutex_unlock(&av->mutex);
-+        malloc_printerr (check_action, "malloc(): memory corruption", p);
-+        mutex_lock(&av->mutex);
-+      }
-       size = chunksize(victim);
-       /*
-@@ -3694,7 +3704,7 @@
-         victim = victim->fd;
-       remainder_size = size - nb;
--      unlink(victim, bck, fwd);
-+      unlink(av, victim, bck, fwd);
-       /* Exhaust */
-       if (remainder_size < MINSIZE)  {
-@@ -3792,7 +3802,7 @@
-       remainder_size = size - nb;
-       /* unlink */
--      unlink(victim, bck, fwd);
-+      unlink(av, victim, bck, fwd);
-       /* Exhaust */
-       if (remainder_size < MINSIZE) {
-@@ -3927,9 +3937,11 @@
-     {
-       errstr = "free(): invalid pointer";
-     errout:
--      if (! have_lock && locked)
-+      if (have_lock || locked)
-       (void)mutex_unlock(&av->mutex);
-       malloc_printerr (check_action, errstr, chunk2mem(p));
-+      if (have_lock)
-+      mutex_lock(&av->mutex);
-       return;
-     }
-   /* We know that each chunk is at least MINSIZE bytes in size.  */
-@@ -4073,7 +4085,7 @@
-       prevsize = p->prev_size;
-       size += prevsize;
-       p = chunk_at_offset(p, -((long) prevsize));
--      unlink(p, bck, fwd);
-+      unlink(av, p, bck, fwd);
-     }
-     if (nextchunk != av->top) {
-@@ -4082,7 +4094,7 @@
-       /* consolidate forward */
-       if (!nextinuse) {
--      unlink(nextchunk, bck, fwd);
-+      unlink(av, nextchunk, bck, fwd);
-       size += nextsize;
-       } else
-       clear_inuse_bit_at_offset(nextchunk, 0);
-@@ -4243,7 +4255,7 @@
-           prevsize = p->prev_size;
-           size += prevsize;
-           p = chunk_at_offset(p, -((long) prevsize));
--          unlink(p, bck, fwd);
-+          unlink(av, p, bck, fwd);
-         }
-         if (nextchunk != av->top) {
-@@ -4251,7 +4263,7 @@
-           if (!nextinuse) {
-             size += nextsize;
--            unlink(nextchunk, bck, fwd);
-+            unlink(av, nextchunk, bck, fwd);
-           } else
-             clear_inuse_bit_at_offset(nextchunk, 0);
-@@ -4320,7 +4332,9 @@
-     {
-       errstr = "realloc(): invalid old size";
-     errout:
-+      mutex_unlock(&av->mutex);
-       malloc_printerr (check_action, errstr, chunk2mem(oldp));
-+      mutex_lock(&av->mutex);
-       return NULL;
-     }
-@@ -4362,7 +4376,7 @@
-            (unsigned long)(newsize = oldsize + nextsize) >=
-            (unsigned long)(nb)) {
-       newp = oldp;
--      unlink(next, bck, fwd);
-+      unlink(av, next, bck, fwd);
-     }
-     /* allocate, copy, free */
diff --git a/glibc/patches/glibc-rh769421.patch b/glibc/patches/glibc-rh769421.patch
deleted file mode 100644 (file)
index 67f5ad7..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
---- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S       2011-12-22 18:04:12.937212834 +0000
-+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S       2011-12-22 18:04:42.104222278 +0000
-@@ -137,7 +137,6 @@ __pthread_cond_wait:
-       cmpl    $PI_BIT, %eax
-       jne     18f
--90:
-       movl    $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx
-       movl    %ebp, %edx
-       xorl    %esi, %esi
-@@ -151,9 +150,6 @@ __pthread_cond_wait:
-       sete    16(%esp)
-       je      19f
--      cmpl    $-EAGAIN, %eax
--      je      91f
--
-       /* Normal and PI futexes dont mix. Use normal futex functions only
-          if the kernel does not support the PI futex functions.  */
-       cmpl    $-ENOSYS, %eax
-@@ -398,78 +394,6 @@ __pthread_cond_wait:
- #endif
-       call    __lll_unlock_wake
-       jmp     11b
--
--91:
--.LcleanupSTART2:
--      /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN.  We need to
--         call it again.  */
--
--      /* Get internal lock.  */
--      movl    $1, %edx
--      xorl    %eax, %eax
--      LOCK
--#if cond_lock == 0
--      cmpxchgl %edx, (%ebx)
--#else
--      cmpxchgl %edx, cond_lock(%ebx)
--#endif
--      jz      92f
--
--#if cond_lock == 0
--      movl    %ebx, %edx
--#else
--      leal    cond_lock(%ebx), %edx
--#endif
--#if (LLL_SHARED-LLL_PRIVATE) > 255
--      xorl    %ecx, %ecx
--#endif
--      cmpl    $-1, dep_mutex(%ebx)
--      setne   %cl
--      subl    $1, %ecx
--      andl    $(LLL_SHARED-LLL_PRIVATE), %ecx
--#if LLL_PRIVATE != 0
--      addl    $LLL_PRIVATE, %ecx
--#endif
--      call    __lll_lock_wait
--
--92:
--      /* Increment the cond_futex value again, so it can be used as a new
--         expected value. */
--      addl    $1, cond_futex(%ebx)
--      movl    cond_futex(%ebx), %ebp
--
--      /* Unlock.  */
--      LOCK
--#if cond_lock == 0
--      subl    $1, (%ebx)
--#else
--      subl    $1, cond_lock(%ebx)
--#endif
--      je      93f
--#if cond_lock == 0
--      movl    %ebx, %eax
--#else
--      leal    cond_lock(%ebx), %eax
--#endif
--#if (LLL_SHARED-LLL_PRIVATE) > 255
--      xorl    %ecx, %ecx
--#endif
--      cmpl    $-1, dep_mutex(%ebx)
--      setne   %cl
--      subl    $1, %ecx
--      andl    $(LLL_SHARED-LLL_PRIVATE), %ecx
--#if LLL_PRIVATE != 0
--      addl    $LLL_PRIVATE, %ecx
--#endif
--      call    __lll_unlock_wake
--
--93:
--      /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
--      xorl    %ecx, %ecx
--      movl    dep_mutex(%ebx), %edi
--      jmp     90b
--.LcleanupEND2:
--
-       .size   __pthread_cond_wait, .-__pthread_cond_wait
- versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
-                 GLIBC_2_3_2)
-@@ -642,10 +566,6 @@ __condvar_w_cleanup:
-       .long   .LcleanupEND-.Lsub_cond_futex
-       .long   __condvar_w_cleanup-.LSTARTCODE
-       .uleb128  0
--      .long   .LcleanupSTART2-.LSTARTCODE
--      .long   .LcleanupEND2-.LcleanupSTART2
--      .long   __condvar_w_cleanup-.LSTARTCODE
--      .uleb128  0
-       .long   .LcallUR-.LSTARTCODE
-       .long   .LENDCODE-.LcallUR
-       .long   0
-Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig
-diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
---- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S  2011-12-22 18:04:12.941212837 +0000
-+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S  2011-12-22 18:05:05.155229737 +0000
-@@ -23,7 +23,6 @@
- #include <lowlevelcond.h>
- #include <tcb-offsets.h>
- #include <pthread-pi-defines.h>
--#include <pthread-errnos.h>
- #include <stap-probe.h>
- #include <kernel-features.h>
-@@ -137,14 +136,11 @@ __pthread_cond_wait:
-       cmpl    $PI_BIT, %eax
-       jne     61f
--90:
-       movl    $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
-       movl    $SYS_futex, %eax
-       syscall
-       movl    $1, %r8d
--      cmpq    $-EAGAIN, %rax
--      je      91f
- #ifdef __ASSUME_REQUEUE_PI
-       jmp     62f
- #else
-@@ -331,70 +327,6 @@ __pthread_cond_wait:
- 13:   movq    %r10, %rax
-       jmp     14b
--
--91:
--.LcleanupSTART2:
--      /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN.  We need to
--         call it again.  */
--      movq    8(%rsp), %rdi
--
--      /* Get internal lock.  */
--      movl    $1, %esi
--      xorl    %eax, %eax
--      LOCK
--#if cond_lock == 0
--      cmpxchgl %esi, (%rdi)
--#else
--      cmpxchgl %esi, cond_lock(%rdi)
--#endif
--      jz      92f
--
--#if cond_lock != 0
--      addq    $cond_lock, %rdi
--#endif
--      cmpq    $-1, dep_mutex-cond_lock(%rdi)
--      movl    $LLL_PRIVATE, %eax
--      movl    $LLL_SHARED, %esi
--      cmovne  %eax, %esi
--      callq   __lll_lock_wait
--#if cond_lock != 0
--      subq    $cond_lock, %rdi
--#endif
--92:
--      /* Increment the cond_futex value again, so it can be used as a new
--         expected value. */
--      incl    cond_futex(%rdi)
--      movl    cond_futex(%rdi), %edx
--
--      /* Release internal lock.  */
--      LOCK
--#if cond_lock == 0
--      decl    (%rdi)
--#else
--      decl    cond_lock(%rdi)
--#endif
--      jz      93f
--
--#if cond_lock != 0
--      addq    $cond_lock, %rdi
--#endif
--      cmpq    $-1, dep_mutex-cond_lock(%rdi)
--      movl    $LLL_PRIVATE, %eax
--      movl    $LLL_SHARED, %esi
--      cmovne  %eax, %esi
--      /* The call preserves %rdx.  */
--      callq   __lll_unlock_wake
--#if cond_lock != 0
--      subq    $cond_lock, %rdi
--#endif
--93:
--      /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
--      xorq    %r10, %r10
--      movq    dep_mutex(%rdi), %r8
--      leaq    cond_futex(%rdi), %rdi
--      jmp     90b
--.LcleanupEND2:
--
-       .size   __pthread_cond_wait, .-__pthread_cond_wait
- versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
-                 GLIBC_2_3_2)
-@@ -547,15 +479,11 @@ __condvar_cleanup1:
-       .uleb128 .LcleanupSTART-.LSTARTCODE
-       .uleb128 .LcleanupEND-.LcleanupSTART
-       .uleb128 __condvar_cleanup1-.LSTARTCODE
--      .uleb128 0
--      .uleb128 .LcleanupSTART2-.LSTARTCODE
--      .uleb128 .LcleanupEND2-.LcleanupSTART2
--      .uleb128 __condvar_cleanup1-.LSTARTCODE
--      .uleb128 0
-+      .uleb128  0
-       .uleb128 .LcallUR-.LSTARTCODE
-       .uleb128 .LENDCODE-.LcallUR
-       .uleb128 0
--      .uleb128 0
-+      .uleb128  0
- .Lcstend:
-Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.orig
-Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.rej
index df937229081f88910f389c8b5f240385af150d9b..8eee8fa8ee663afaa883925087a199c0bfebf291 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = gmp
-version    = 5.0.3
+version    = 5.0.5
 release    = 1
 
 compat_version = 4.3.2
index 9c9cd1696d1508308523bd2c7c0582aff1eb9733..30add8ba8d4a3bca216e2bd94fcca7b568b43f0a 100644 (file)
@@ -4,9 +4,12 @@
 ###############################################################################
 
 name       = gobject-introspection
-version    = 0.9.12
+version    = %{major_ver}.%{minor_ver}
 release    = 1
 
+major_ver  = 1.31
+minor_ver  = 22
+
 groups     = Development/Libraries
 url        = http://live.gnome.org/GObjectIntrospection
 license    = GPLv2+, LGPLv2+, MIT
@@ -19,7 +22,8 @@ description
        other things.
 end
 
-source_dl  =
+source_dl  = http://ftp.gnome.org/pub/GNOME/sources/%{name}/%{major_ver}/
+sources    = %{thisapp}.tar.xz
 
 build
        requires
@@ -33,7 +37,6 @@ build
        end
 
        configure_options += \
-               --sbindir=/sbin \
                --disable-static
 
        test
@@ -43,7 +46,6 @@ end
 
 packages
        package %{name}
-       end
 
        package %{name}-libs
                template LIBS
diff --git a/gpgme/gpgme.nm b/gpgme/gpgme.nm
new file mode 100644 (file)
index 0000000..317a046
--- /dev/null
@@ -0,0 +1,63 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = gpgme
+version    = 1.3.0
+release    = 1
+
+groups     = Applications/System
+url        = http://www.gnupg.org/related_software/gpgme/
+license    = LGPLv2+
+summary    = GnuPG Made Easy - high level crypto API.
+
+description
+       GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG
+       easier for applications.  It provides a high-level crypto API for
+       encryption, decryption, signing, signature verification and key
+       management.
+end
+
+source_dl  = ftp://ftp.gnupg.org/gcrypt/gpgme/
+sources    = %{thisapp}.tar.bz2
+
+build
+       requires
+               gawk
+               gnupg2
+               libassuan-devel
+               libgpg-error-devel
+               pth-devel
+               which
+       end
+
+       configure_options += \
+               --with-gpg=%{bindir}/gpg2 \
+               --disable-gpg-test
+
+       test
+               make -C tests check
+       end
+
+       install_cmds
+               # Remove LISP examples.
+               rm -rfv %{BUILDROOT}%{datadir}/common-lisp/
+       end
+end
+
+packages
+       package %{name}
+               requires = gnupg2
+       end
+
+       package %{name}-devel
+               template DEVEL
+
+               requires += libgpg-error-devel
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
diff --git a/gpgme/patches/gpgme-1.2.0-largefile.patch b/gpgme/patches/gpgme-1.2.0-largefile.patch
new file mode 100644 (file)
index 0000000..98f9039
--- /dev/null
@@ -0,0 +1,24 @@
+diff -up gpgme-1.2.0/src/gpgme-config.in.largefile gpgme-1.2.0/src/gpgme-config.in
+--- gpgme-1.2.0/src/gpgme-config.in.largefile  2010-08-11 20:11:49.000000000 +0200
++++ gpgme-1.2.0/src/gpgme-config.in    2010-08-11 20:23:45.000000000 +0200
+@@ -42,6 +42,10 @@ cflags_pthread=""
+ cflags_glib="@GLIB_CFLAGS@"
+ with_glib=
++if test "0@NEED__FILE_OFFSET_BITS@" -gt "0" ; then
++    cflags_lfs="-D_FILE_OFFSET_BITS=@NEED__FILE_OFFSET_BITS@"
++fi
++
+ output=""
+ usage()
+@@ -101,6 +105,9 @@ while test $# -gt 0; do
+           exit 0
+           ;;
+         --cflags)
++          if test "x$cflags_lfs" != "x"; then
++              output="$output $cflags_lfs"
++          fi
+           if test "x$includedir" != "x/usr/include" -a "x$includedir" != "x/include"; then
+               output="$output -I$includedir"
+           fi
diff --git a/gpgme/patches/gpgme-1.3.0-ImplicitDSOLinking.patch b/gpgme/patches/gpgme-1.3.0-ImplicitDSOLinking.patch
new file mode 100644 (file)
index 0000000..cd2f7a5
--- /dev/null
@@ -0,0 +1,72 @@
+diff -up gpgme-1.3.0/src/Makefile.am.ImplicitDSOLinking gpgme-1.3.0/src/Makefile.am
+--- gpgme-1.3.0/src/Makefile.am.ImplicitDSOLinking     2010-01-06 04:02:19.000000000 +0100
++++ gpgme-1.3.0/src/Makefile.am        2011-02-11 18:14:54.000000000 +0100
+@@ -232,7 +232,7 @@ libgpgme_qt_la_LIBADD = $(gpgme_res) @LI
+ endif
+ noinst_PROGRAMS = gpgme-tool
+-gpgme_tool_LDADD = libgpgme.la
++gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ @GPG_ERROR_LIBS@
+ status-table.h : gpgme.h
+       $(srcdir)/mkstatus < $(builddir)/gpgme.h > status-table.h
+diff -up gpgme-1.3.0/src/Makefile.in.ImplicitDSOLinking gpgme-1.3.0/src/Makefile.in
+--- gpgme-1.3.0/src/Makefile.in.ImplicitDSOLinking     2010-01-11 12:06:54.000000000 +0100
++++ gpgme-1.3.0/src/Makefile.in        2011-02-11 18:17:10.000000000 +0100
+@@ -572,7 +572,7 @@ libgpgme_pth_la_LIBADD = $(gpgme_res) @L
+ @BUILD_W32_QT_TRUE@libgpgme_qt_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \
+ @BUILD_W32_QT_TRUE@   @GPG_ERROR_LIBS@ @QT4_CORE_LIBS@
+-gpgme_tool_LDADD = libgpgme.la
++gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ @GPG_ERROR_LIBS@
+ all: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) all-am
+diff -up gpgme-1.3.0/tests/gpgsm/Makefile.am.ImplicitDSOLinking gpgme-1.3.0/tests/gpgsm/Makefile.am
+--- gpgme-1.3.0/tests/gpgsm/Makefile.am.ImplicitDSOLinking     2008-12-03 14:39:48.000000000 +0100
++++ gpgme-1.3.0/tests/gpgsm/Makefile.am        2011-02-11 17:36:32.000000000 +0100
+@@ -32,7 +32,7 @@ EXTRA_DIST = cert_dfn_pca01.der cert_dfn
+ INCLUDES = -I$(top_builddir)/src
+ AM_CPPFLAGS = @GPG_ERROR_CFLAGS@
+-LDADD = ../../src/libgpgme.la
++LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@
+ # We don't run t-genkey in the test suite, because it takes too long
+ # and needs a working pinentry.
+diff -up gpgme-1.3.0/tests/gpgsm/Makefile.in.ImplicitDSOLinking gpgme-1.3.0/tests/gpgsm/Makefile.in
+--- gpgme-1.3.0/tests/gpgsm/Makefile.in.ImplicitDSOLinking     2010-01-11 12:06:54.000000000 +0100
++++ gpgme-1.3.0/tests/gpgsm/Makefile.in        2011-02-11 17:36:32.000000000 +0100
+@@ -307,7 +307,7 @@ EXTRA_DIST = cert_dfn_pca01.der cert_dfn
+ INCLUDES = -I$(top_builddir)/src
+ AM_CPPFLAGS = @GPG_ERROR_CFLAGS@
+-LDADD = ../../src/libgpgme.la
++LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@
+ key_id = 32100C27173EF6E9C4E9A25D3D69F86D37A4F939
+ DISTCLEANFILES = pubring.kbx pubring.kbx~ gpgsm.conf trustlist.txt \
+       private-keys-v1.d/$(key_id).key random_seed
+diff -up gpgme-1.3.0/tests/opassuan/Makefile.am.ImplicitDSOLinking gpgme-1.3.0/tests/opassuan/Makefile.am
+--- gpgme-1.3.0/tests/opassuan/Makefile.am.ImplicitDSOLinking  2009-01-26 15:15:26.000000000 +0100
++++ gpgme-1.3.0/tests/opassuan/Makefile.am     2011-02-11 17:36:32.000000000 +0100
+@@ -27,7 +27,7 @@ EXTRA_DIST = 
+ INCLUDES = -I$(top_builddir)/src
+ AM_CPPFLAGS = @GPG_ERROR_CFLAGS@
+-LDADD = ../../src/libgpgme.la
++LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@
+ noinst_PROGRAMS = $(TESTS) t-command
+diff -up gpgme-1.3.0/tests/opassuan/Makefile.in.ImplicitDSOLinking gpgme-1.3.0/tests/opassuan/Makefile.in
+--- gpgme-1.3.0/tests/opassuan/Makefile.in.ImplicitDSOLinking  2010-01-11 12:06:54.000000000 +0100
++++ gpgme-1.3.0/tests/opassuan/Makefile.in     2011-02-11 17:36:32.000000000 +0100
+@@ -258,7 +258,7 @@ noinst_HEADERS = 
+ EXTRA_DIST = 
+ INCLUDES = -I$(top_builddir)/src
+ AM_CPPFLAGS = @GPG_ERROR_CFLAGS@
+-LDADD = ../../src/libgpgme.la
++LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@
+ DISTCLEANFILES = 
+ all: all-am
diff --git a/gpgme/patches/gpgme-1.3.0-config_extras.patch b/gpgme/patches/gpgme-1.3.0-config_extras.patch
new file mode 100644 (file)
index 0000000..7b9a643
--- /dev/null
@@ -0,0 +1,36 @@
+diff -up gpgme-1.3.0/src/gpgme-config.in.config_extras gpgme-1.3.0/src/gpgme-config.in
+--- gpgme-1.3.0/src/gpgme-config.in.config_extras      2009-10-23 08:44:56.000000000 -0500
++++ gpgme-1.3.0/src/gpgme-config.in    2011-03-17 13:15:12.511565537 -0500
+@@ -20,26 +20,26 @@ LC_ALL=C
+ LANG=C
+ # Network libraries.
+-assuan_cflags="@LIBASSUAN_CFLAGS@"
+-assuan_libs="@LIBASSUAN_LIBS@"
++#assuan_cflags="@LIBASSUAN_CFLAGS@"
++#assuan_libs="@LIBASSUAN_LIBS@"
+ # Configure libgpg-error.
+ gpg_error_cflags="@GPG_ERROR_CFLAGS@"
+-gpg_error_libs="@GPG_ERROR_LIBS@"
++#gpg_error_libs="@GPG_ERROR_LIBS@"
+ # Configure thread packages.
+ thread_modules=""
+ @HAVE_PTH_TRUE@thread_modules="$thread_modules pth"
+-libs_pth="@PTH_LDFLAGS@ @PTH_LIBS@"
++#libs_pth="@PTH_LDFLAGS@ @PTH_LIBS@"
+ cflags_pth="@PTH_CFLAGS@"
+ @HAVE_PTHREAD_TRUE@thread_modules="$thread_modules pthread"
+-libs_pthread="-lpthread"
++#libs_pthread="-lpthread"
+ cflags_pthread=""
+ # Configure glib.
+-libs_glib="@GLIB_LIBS@"
++#libs_glib="@GLIB_LIBS@"
+ cflags_glib="@GLIB_CFLAGS@"
+ with_glib=
index 2057f8b6ff3eb11ce51d69fa4e63ea2b5328584c..8e7e25ffd29a1d1379ce5f336e738d9a072349d5 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = grep
-version    = 2.11
+version    = 2.12
 release    = 1
 
 groups     = Applications/Text
@@ -26,9 +26,6 @@ build
                pcre-devel
        end
 
-       configure_options += \
-               --bindir=/bin
-
        test
                make check
        end
@@ -37,6 +34,14 @@ end
 packages
        package %{name}
                groups += Base Build
+
+               provides
+                       /bin/grep
+               end
+
+               conflicts
+                       filesystem < 002
+               end
        end
 
        package %{name}-debuginfo
diff --git a/grub/05_theme b/grub/05_theme
deleted file mode 100644 (file)
index 0d2bd16..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash -e
-
-source /usr/lib/grub/grub-mkconfig_lib
-
-set_mono_theme()
-{
-cat << EOF
-set menu_color_normal=white/black
-set menu_color_highlight=black/white
-EOF
-}
-
-# check for usable backgrounds
-use_bg=false
-if [ "$GRUB_TERMINAL_OUTPUT" = "gfxterm" ] ; then
-for i in {/boot/grub,/usr/share/images/desktop-base}/splash.{png,tga} ; do
-if is_path_readable_by_grub $i ; then
-bg=$i
-case ${bg} in
-*.png) reader=png ;;
-*.tga) reader=tga ;;
-*.jpg|*.jpeg) reader=jpeg ;;
-esac
-if test -e /boot/grub/${reader}.mod ; then
-echo "Found background: `basename ${bg}`" >&2
-use_bg=true
-break
-fi
-fi
-done
-fi
-
-# set the background if possible
-if ${use_bg} ; then
-prepare_grub_to_access_device `${grub_probe} --target=device ${bg}`
-cat << EOF
-insmod ${reader}
-if background_image `make_system_path_relative_to_its_root ${bg}` ; 
-then
-set color_normal=black/black
-set color_highlight=magenta/black
-else
-EOF
-fi
-
-# otherwise, set a monochromatic theme for IPFire
-if ${use_bg} ; then
-set_mono_theme | sed -e "s/^/ /g"
-echo "fi"
-else
-set_mono_theme
-fi
index fe159a61f7ca64a87dae907b1ca0aeaac977a7ba..caee858e3b974a4c3842e8973ee220697ab325de 100644 (file)
@@ -1,27 +1,8 @@
-# If you change this file, run 'update-grub' afterwards to update
-# /boot/grub/grub.cfg.
-
-GRUB_DEFAULT=0
-GRUB_HIDDEN_TIMEOUT=0
-GRUB_HIDDEN_TIMEOUT_QUIET=true
-GRUB_TIMEOUT=10
-GRUB_DISTRIBUTOR=$(sed -n 's/\([A-Za-z0-9]*\) release \([0-9A-Za-z\.\-]*\) .*/\1 \2/p' < /etc/system-release)
-GRUB_CMDLINE_LINUX_DEFAULT="quiet selinux=0"
-GRUB_CMDLINE_LINUX=""
-
-# Uncomment to disable graphical terminal (grub-pc only)
-#GRUB_TERMINAL=console
-
-# The resolution used on graphical terminal
-# note that you can use only modes which your graphic card supports via VBE
-# you can see them in real GRUB with the command `vbeinfo'
-#GRUB_GFXMODE=640x480
-
-# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
-#GRUB_DISABLE_LINUX_UUID=true
-
-# Uncomment to disable generation of recovery mode menu entries
-GRUB_DISABLE_LINUX_RECOVERY="true"
-
-# Uncomment to get a beep at grub start
-#GRUB_INIT_TUNE="480 440 1"
+GRUB_TIMEOUT=5
+GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
+GRUB_DEFAULT=saved
+# GRUB_TERMINAL="serial console"
+# GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200"
+GRUB_CMDLINE_LINUX="quiet rhgb"
+GRUB_DISABLE_RECOVERY="true"
+GRUB_THEME="/boot/grub/themes/system/theme.txt"
index b3a0c6d334199f6f1b004ecef94ebe6ef2c25211..ceabf1ebd03aee2f8dd2e8e73dfb718e2ab7256d 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = grub
-version    = 1.99
-release    = 5
+version    = 2.00
+release    = 2
 sup_arches = x86_64 i686
 
 groups     = System/Boot
@@ -20,7 +20,11 @@ description
        systems.
 end
 
-source_dl  = http://ftp.gnu.org/gnu/grub/
+source_dl  = http://ftp.gnu.org/gnu/grub/ ftp://alpha.gnu.org/gnu/grub/
+sources    = %{thisapp}.tar.xz
+
+# Unifont
+unifont = /usr/share/X11/fonts/misc/unifont.pcf.gz
 
 build
        requires
@@ -28,26 +32,24 @@ build
                autogen
                automake
                bison
+               bzip2-devel
+               dejavu-fonts-sans-fonts
                flex
                freetype-devel
                gettext
                libdevmapper-devel
                ncurses-devel
                zlib-devel
+               %{unifont}
        end
 
        prepare_cmds
-               # Replace pkglib_DATA (automake 1.11.2 incompatibility)
-               sed -i -e "s/pkglib_DATA/pkgdata_DATA/g" \
-                       -e "s/pkglib_SCRIPTS/pkgdata_SCRIPTS/g" \
-                       Makefile* */Makefile* \
-                       gentpl.py util/grub-*.in
-
+               cp -vf %{unifont} unifont.pcf.gz
                ./autogen.sh
 
                # Create a copy of the source tree to build
                # an EFI enabled version of grub.
-               cp -R . %{DIR_SRC}/%{thisapp}-efi
+               cp -pR . %{DIR_SRC}/%{thisapp}-efi
        end
 
        # As the modules contain always 32 bit code, they
@@ -56,8 +58,6 @@ build
 
        configure_options += \
                --target="i386" \
-               --sbindir=/sbin \
-               --datadir=%{libdir} \
                --with-platform=pc \
                --program-transform-name=s,grub,grub, \
                --disable-werror \
@@ -74,7 +74,6 @@ build
                ./configure \
                        %{configure_options} \
                        --with-platform=efi \
-                       --program-transform-name=s,grub,grub-efi, \
                        CFLAGS="$(echo %{CFLAGS} | sed \
                                -e 's/-O.//g' \
                                -e 's/-fstack-protector//g' \
@@ -92,17 +91,13 @@ build
                        -o grub.efi \
                        -d grub-core part_gpt hfsplus fat ext2 btrfs normal chain \
                        boot configfile linux appleldr minicmd loadbios reboot halt \
-                       search font gfxterm echo video efi_gop efi_uga
+                       search font gfxterm echo video all_video
        end
 
        install
                cd ../%{thisapp}-efi
                make install DESTDIR=%{BUILDROOT}
 
-               mv -v %{BUILDROOT}/etc/bash_completion.d/grub{,-efi}
-               sed -e "s,grub/grub-mkconfig_lib,grub-efi/grub-mkconfig_lib," \
-                       -i %{BUILDROOT}/sbin/grub-efi-mkconfig
-
                install -m 755 -d %{BUILDROOT}/boot/efi/EFI/%{DISTRO_SNAME}/
                install -d %{BUILDROOT}/boot/efi/EFI/%{DISTRO_SNAME}/grub-efi
                touch %{BUILDROOT}/boot/efi/EFI/%{DISTRO_SNAME}/grub-efi/grub.cfg
@@ -112,21 +107,36 @@ build
                cd -
                make install DESTDIR=%{BUILDROOT}
 
-               # Install theme file
-               install -m 0744 %{DIR_SOURCE}/05_theme %{BUILDROOT}/etc/grub.d/
-
-               # Install splash background
-               mkdir -pv %{BUILDROOT}/boot/grub
-               install %{DIR_SOURCE}/splash.png %{BUILDROOT}/boot/grub
-
                # Install empty configuration file.
+               mkdir -pv %{BUILDROOT}/boot/grub
                touch %{BUILDROOT}/boot/grub/grub.cfg
+               ln -svf ../boot/grub/grub.cfg %{BUILDROOT}%{sysconfdir}/grub2.cfg
+
+               # Don't ship the default theme, replace it by our own one.
+               rm -rfv %{BUILDROOT}/boot/grub/themes/starfield \
+                       %{datadir}/grub/themes
+               mkdir -pv %{BUILDROOT}/boot/grub/themes/system
+               cp -rfv %{DIR_SOURCE}/theme/* \
+                       %{BUILDROOT}/boot/grub/themes/system/
+
+               # Prepare the fonts.
+               mkdir -pv %{BUILDROOT}/boot/grub/themes/system
+               pushd %{BUILDROOT}/boot/grub/themes/system/
+               %{BUILDROOT}%{bindir}/grub-mkfont -o DejaVuSans-10.pf2 -s 10 \
+                       %{datadir}/fonts/dejavu/DejaVuSans.ttf
+               %{BUILDROOT}%{bindir}/grub-mkfont -o DejaVuSans-12.pf2 -s 12 \
+                       %{datadir}/fonts/dejavu/DejaVuSans.ttf
+               %{BUILDROOT}%{bindir}/grub-mkfont -o DejaVuSans-Bold-14.pf2 \
+                       -s 14 %{datadir}/fonts/dejavu/DejaVuSans-Bold.ttf
+               popd
        end
+
+       debuginfo_strict_build_id = false
 end
 
 quality-agent
        whitelist_nx
-               /sbin/*|/usr/bin/*
+               /usr/bin/*|/usr/sbin/*
        end
 end
 
@@ -135,21 +145,13 @@ packages
                requires
                        gettext
                        os-prober
-                       /usr/share/X11/fonts/misc/unifont.pcf.gz
+                       system-logos >= 2
                end
 
                configfiles
                        /boot/grub/grub.cfg
                        /etc/default/grub
                end
-
-               # Generate grub compatible font for graphical boot menu
-               # This only converts Latin-1, Latin Extended A+B, Arrows, Box and Block characters
-               script postin
-                       /usr/bin/grub-mkfont --output /boot/grub/unifont.pf2 \
-                               --range=0x0000-0x0241,0x2190-0x21FF,0x2500-0x259f \
-                               /usr/share/X11/fonts/misc/unifont.pcf.gz
-               end
        end
 
        package %{name}-efi
@@ -166,11 +168,8 @@ packages
 
                files
                        /boot/efi
-                       /etc/bash_completion.d/grub-efi
                        /etc/grub-efi.cfg
-                       /sbin/grub-efi-*
-                       /usr/bin/grub-efi-*
-                       /usr/lib/grub-efi
+                       /usr/lib/grub/i386-efi
                end
        end
 
index 389b163e977750d4914a273daf904b952e61a913..62a6b3243711073b4707cd8fa643daf13416dca3 100644 (file)
@@ -3,7 +3,6 @@ From: Peter Jones <pjones@redhat.com>
 Date: Mon, 14 Mar 2011 14:27:42 -0400
 Subject: [PATCH] Don't say "GNU/Linux" in generated menus.
 
-In Fedora and RHEL we just call it Linux.
 ---
  util/grub.d/10_linux.in     |    4 ++--
  util/grub.d/20_linux_xen.in |    4 ++--
@@ -18,10 +17,10 @@ index a09c3e6..0b0df78 100644
  
  if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
 -  OS=GNU/Linux
-+  OS=Linux
++  OS="$(sed 's, release .*$,,g' /etc/system-release)"
  else
 -  OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-+  OS="${GRUB_DISTRIBUTOR} Linux"
++  OS="${GRUB_DISTRIBUTOR}"
    CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
  fi
  
@@ -34,10 +33,10 @@ index ee49cd9..10422b0 100644
  
  if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
 -  OS=GNU/Linux
-+  OS=Linux
++  OS="$(sed 's, release .*$,,g' /etc/system-release)"
  else
 -  OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-+  OS="${GRUB_DISTRIBUTOR} Linux"
++  OS="${GRUB_DISTRIBUTOR}"
    CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
  fi
  
diff --git a/grub/splash.png b/grub/splash.png
deleted file mode 100644 (file)
index 44cd6e1..0000000
Binary files a/grub/splash.png and /dev/null differ
diff --git a/grub/theme/COPYING.CC-BY-SA-3.0 b/grub/theme/COPYING.CC-BY-SA-3.0
new file mode 100644 (file)
index 0000000..f7a1f15
--- /dev/null
@@ -0,0 +1,65 @@
+    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. 
+
+License
+
+THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
+
+BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
+
+1. Definitions
+
+    "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
+    "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License.
+    "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License.
+    "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
+    "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike.
+    "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
+    "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
+    "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
+    "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
+    "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
+    "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
+
+2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
+
+3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
+
+    to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
+    to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
+    to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
+    to Distribute and Publicly Perform Adaptations.
+
+    For the avoidance of doubt:
+        Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
+        Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
+        Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.
+
+The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.
+
+4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
+
+    You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested.
+    You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License.
+    If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
+    Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.
+
+5. Representations, Warranties and Disclaimer
+
+UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
+
+6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. Termination
+
+    This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
+    Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
+
+8. Miscellaneous
+
+    Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
+    Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
+    If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+    No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
+    This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
+    The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
+
diff --git a/grub/theme/blob_w.png b/grub/theme/blob_w.png
new file mode 100644 (file)
index 0000000..9915bed
Binary files /dev/null and b/grub/theme/blob_w.png differ
diff --git a/grub/theme/boot_menu_c.png b/grub/theme/boot_menu_c.png
new file mode 100644 (file)
index 0000000..3ea79d2
Binary files /dev/null and b/grub/theme/boot_menu_c.png differ
diff --git a/grub/theme/boot_menu_e.png b/grub/theme/boot_menu_e.png
new file mode 100644 (file)
index 0000000..c0f7f22
Binary files /dev/null and b/grub/theme/boot_menu_e.png differ
diff --git a/grub/theme/boot_menu_n.png b/grub/theme/boot_menu_n.png
new file mode 100644 (file)
index 0000000..a9a5707
Binary files /dev/null and b/grub/theme/boot_menu_n.png differ
diff --git a/grub/theme/boot_menu_ne.png b/grub/theme/boot_menu_ne.png
new file mode 100644 (file)
index 0000000..d67f289
Binary files /dev/null and b/grub/theme/boot_menu_ne.png differ
diff --git a/grub/theme/boot_menu_nw.png b/grub/theme/boot_menu_nw.png
new file mode 100644 (file)
index 0000000..3fa2277
Binary files /dev/null and b/grub/theme/boot_menu_nw.png differ
diff --git a/grub/theme/boot_menu_s.png b/grub/theme/boot_menu_s.png
new file mode 100644 (file)
index 0000000..78941af
Binary files /dev/null and b/grub/theme/boot_menu_s.png differ
diff --git a/grub/theme/boot_menu_se.png b/grub/theme/boot_menu_se.png
new file mode 100644 (file)
index 0000000..ae4bc53
Binary files /dev/null and b/grub/theme/boot_menu_se.png differ
diff --git a/grub/theme/boot_menu_sw.png b/grub/theme/boot_menu_sw.png
new file mode 100644 (file)
index 0000000..8bc19ce
Binary files /dev/null and b/grub/theme/boot_menu_sw.png differ
diff --git a/grub/theme/boot_menu_w.png b/grub/theme/boot_menu_w.png
new file mode 100644 (file)
index 0000000..3339181
Binary files /dev/null and b/grub/theme/boot_menu_w.png differ
diff --git a/grub/theme/slider_c.png b/grub/theme/slider_c.png
new file mode 100644 (file)
index 0000000..11231df
Binary files /dev/null and b/grub/theme/slider_c.png differ
diff --git a/grub/theme/slider_n.png b/grub/theme/slider_n.png
new file mode 100644 (file)
index 0000000..8bd4b23
Binary files /dev/null and b/grub/theme/slider_n.png differ
diff --git a/grub/theme/slider_s.png b/grub/theme/slider_s.png
new file mode 100644 (file)
index 0000000..3011369
Binary files /dev/null and b/grub/theme/slider_s.png differ
diff --git a/grub/theme/terminal_box_c.png b/grub/theme/terminal_box_c.png
new file mode 100644 (file)
index 0000000..d4191d7
Binary files /dev/null and b/grub/theme/terminal_box_c.png differ
diff --git a/grub/theme/terminal_box_e.png b/grub/theme/terminal_box_e.png
new file mode 100644 (file)
index 0000000..fab00d5
Binary files /dev/null and b/grub/theme/terminal_box_e.png differ
diff --git a/grub/theme/terminal_box_n.png b/grub/theme/terminal_box_n.png
new file mode 100644 (file)
index 0000000..eb98261
Binary files /dev/null and b/grub/theme/terminal_box_n.png differ
diff --git a/grub/theme/terminal_box_ne.png b/grub/theme/terminal_box_ne.png
new file mode 100644 (file)
index 0000000..d17e1da
Binary files /dev/null and b/grub/theme/terminal_box_ne.png differ
diff --git a/grub/theme/terminal_box_nw.png b/grub/theme/terminal_box_nw.png
new file mode 100644 (file)
index 0000000..0de1cac
Binary files /dev/null and b/grub/theme/terminal_box_nw.png differ
diff --git a/grub/theme/terminal_box_s.png b/grub/theme/terminal_box_s.png
new file mode 100644 (file)
index 0000000..d4a8074
Binary files /dev/null and b/grub/theme/terminal_box_s.png differ
diff --git a/grub/theme/terminal_box_se.png b/grub/theme/terminal_box_se.png
new file mode 100644 (file)
index 0000000..c2bd23c
Binary files /dev/null and b/grub/theme/terminal_box_se.png differ
diff --git a/grub/theme/terminal_box_sw.png b/grub/theme/terminal_box_sw.png
new file mode 100644 (file)
index 0000000..86864f5
Binary files /dev/null and b/grub/theme/terminal_box_sw.png differ
diff --git a/grub/theme/terminal_box_w.png b/grub/theme/terminal_box_w.png
new file mode 100644 (file)
index 0000000..f0968be
Binary files /dev/null and b/grub/theme/terminal_box_w.png differ
diff --git a/grub/theme/theme.txt b/grub/theme/theme.txt
new file mode 100644 (file)
index 0000000..0a88ce8
--- /dev/null
@@ -0,0 +1,57 @@
+# IPFire 3 theme for GRUB2
+#
+
+#general settings
+message-font: "DejaVu Sans Regular 12"
+message-color: "#fff"
+message-bg-color: "#000"
+terminal-box: "terminal_box_*.png"
+terminal-font: "DejaVu Sans Regular 12"
+desktop-image: "background.png"
+
+#help bar at the bottom
++ label {
+       top = 100%-25
+       left = 0
+       width = 100%
+       height = 20
+       text = "@KEYMAP_MIDDLE@"
+       align = "center"
+       font = "DejaVu Sans Regular 10"
+       color = "#FFF"
+}
+
+#boot menu
++ boot_menu {
+       left = 17%
+       width = 66%
+       top = 20%
+       height = 30%    
+       item_font = "DejaVu Sans Regular 12"
+       item_color = "#880400"
+       selected_item_font = "DejaVu Sans Bold 14"
+       selected_item_color= "#fff"
+       icon_width = 0
+       item_height = 30
+       item_padding = 0
+       item_spacing = 0
+       scrollbar = true
+       scrollbar_width = 20
+       scrollbar_thumb = "slider_*.png"
+       menu_pixmap_style = "boot_menu_*.png"
+}
+
+#progress bar
++ progress_bar {
+       id = "__timeout__"
+       left = 22%
+       top = 80%
+       height = 20
+       width = 56%
+       font = "DejaVu Sans Regular 12"
+       text_color = "#fff"
+       fg_color = "#880400"
+       bg_color = "black"
+       border_color = "#fff"
+       text = "@TIMEOUT_NOTIFICATION_LONG@"
+}
index 830f27d878687e362c2a5c1d30d95153352aa1a0..33274c141353cd26f0b90b7188f8f45a1e605aee 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = grubby
-version    = 8.9
-release    = 1
+version    = 8.11
+release    = 3
 
 groups     = System/Base
 url        = http://git.fedorahosted.org/git/grubby.git
@@ -36,17 +36,24 @@ build
        end
 
        make_install_targets += mandir=%{mandir}
+
+       install_cmds
+               mkdir -pv %{BUILDROOT}%{prefix}
+               mv -v %{BUILDROOT}{,%{prefix}}/sbin
+       end
 end
 
 packages
        package %{name}
-               # Pull in uboot-tools on ARM platforms.
-               if "%{DISTRO_ARCH}" == "armv7hl"
-                       requires += uboot-tools
+               # Pull in u-boot-tools on ARM platforms.
+               if "%{DISTRO_PLATFORM}" == "arm"
+                       requires += u-boot-tools
                end
 
-               if "%{DISTRO_ARCH}" == "armv5tel"
-                       requires += uboot-tools
+               provides
+                       /sbin/grubby
+                       /sbin/installkernel
+                       /sbin/new-kernel-pkg
                end
        end
 
index 624226a451b4aba8fa6a9c70bf1a4d15af0215f6..6c7a1693533ef5757cc642a15651def7d9f334ab 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = gzip
 version    = 1.4
-release    = 2
+release    = 3
 
 groups     = Applications/Compression
 url        = http://www.gzip.org/
@@ -20,33 +20,29 @@ end
 source_dl  =
 
 build
-       build
-               # NO_ASM is for textrels.
+       # NO_ASM is for textrels.
+       configure_options += \
                DEFS=NO_ASM \
-               CPPFLAGS="-DHAVE_LSTAT" \
-               ./configure \
-                       --prefix=/usr \
-                       --bindir=/bin
-
-               make %{PARALLELISMFLAGS}
-       end
+               CPPFLAGS="-DHAVE_LSTAT"
 
        test
                make check
        end
-
-       install
-               make install DESTDIR=%{BUILDROOT}
-
-               mkdir -pv %{BUILDROOT}/usr/bin
-               mv -v %{BUILDROOT}/bin/{gzexe,uncompress,zcmp,zdiff,zegrep} %{BUILDROOT}/usr/bin
-               mv -v %{BUILDROOT}/bin/{zfgrep,zforce,zgrep,zless,zmore,znew} %{BUILDROOT}/usr/bin
-       end
 end
 
 packages
        package %{name}
                groups += Base Build
+
+               provides
+                       /bin/gunzip
+                       /bin/gzip
+                       /bin/zcat
+               end
+
+               conflicts
+                       filesystem < 002
+               end
        end
 
        package %{name}-debuginfo
index 507c0ea6467da0f313978ed918e4109e2a084171..a5de902d88e77dd17fe75c33804b405e8a3265eb 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = hostapd
 version    = 0.7.3
-release    = 1
+release    = 2
 
 groups     = Networking/Tools
 url        = http://hostap.epitest.fi/hostapd/
@@ -46,7 +46,6 @@ end
 
 packages
        package %{name}
-       end
 
        package %{name}-debuginfo
                template DEBUGINFO
index 2cff6d9c758fbfc447bff71c605d4e222b7b985c..748cb0ea51b06782bd91cefacad3db5273489c20 100644 (file)
@@ -8,8 +8,7 @@
 [Unit]
 Description=WLAN AP on %I
 BindTo=dev-%I.device
-After=dev-%I.device network.service
-Requires=network.service
+After=dev-%I.device
 
 [Service]
 ExecStart=/usr/bin/hostapd -dd -P /run/network/hostapd/%I/pid /run/network/hostapd/%I/config
index 3b9e07997b90f4eb18150e2b34e9e993518ac8bc..b171219e692462a97f13e44c193fa33dd660e2cf 100644 (file)
@@ -6,7 +6,7 @@
 name       = initscripts
 epoch      = 1
 version    = 2.99
-release    = 13
+release    = 17
 
 groups     = System/Boot
 url        =
@@ -25,6 +25,8 @@ build
        requires
                glib2-devel
                popt-devel
+               shadow-utils
+               systemd-units
        end
 
        DIR_APP = %{DIR_SOURCE}
@@ -48,8 +50,8 @@ build
                install -v -m 755 %{DIR_SOURCE}/rc.local %{BUILDROT}/etc/rc.local
 
                # Install udev rules
-               mkdir -pv %{BUILDROOT}/lib/udev/rules.d/
-               cp -vf %{DIR_SOURCE}/udev/* %{BUILDROOT}/lib/udev/rules.d/
+               mkdir -pv %{BUILDROOT}%{prefix}/lib/udev/rules.d/
+               cp -vf %{DIR_SOURCE}/udev/* %{BUILDROOT}%{prefix}/lib/udev/rules.d/
        end
 end
 
@@ -71,6 +73,14 @@ packages
                        util-linux
                end
 
+               provides
+                       /bin/ipcalc
+               end
+
+               conflicts
+                       filesystem  < 002
+               end
+
                configfiles
                        /etc/rc.local
                end
index 0bd2d37551f5cf86b434c7d3afb4672e445ade48..cfe091053a9993cbce00c00fbe09587e0260a7b7 100644 (file)
@@ -2,3 +2,5 @@
 #
 # This script will be executed at the end of the boot process.
 # You can put your own initialization stuff in here.
+
+exit 0
index a6b0f3135db9c3ba730ffacab1ca7e7064e8a4ff..c357d6edb68baf48b4b698a0598730a0177d47b0 100644 (file)
@@ -3,6 +3,7 @@ PROGS = ipcalc securetty
 
 CC = gcc
 CFLAGS += -D_GNU_SOURCE $(shell pkg-config --cflags glib-2.0)
+prefix ?= /usr
 
 all: $(PROGS)
 
@@ -14,9 +15,9 @@ test: ipcalc
 
 install: $(PROGS)
        # Install binaries
-       -mkdir -pv $(DESTDIR)/lib/udev $(DESTDIR)/{,s}bin
-       install -v -m 755 ipcalc $(DESTDIR)/bin
-       install -v -m 755 securetty $(DESTDIR)/sbin
+       -mkdir -pv $(DESTDIR)$(prefix)/lib/udev $(DESTDIR)$(prefix)/{,s}bin
+       install -v -m 755 ipcalc $(DESTDIR)$(prefix)/bin
+       install -v -m 755 securetty $(DESTDIR)$(prefix)/sbin
 
        # Install man pages
        -mkdir -pv $(DESTDIR)/usr/share/man/man1
index 04daed0fe50a8c6f19f5a848d4485c0ab93c5b2f..a1bb1598850c491cf9a33810ba08539f9ab87652 100644 (file)
@@ -1,15 +1,9 @@
 [Unit]
-Description=/etc/rc.local Compatiblity
-ConditionFileIsExecuteable=/etc/rc.local
-Requires=multi-user.target
-After=multi-user.target network.target
+Description=/etc/rc.local Compatibility
+After=network.target
 
 [Service]
 Type=forking
 ExecStart=/etc/rc.local
 TimeoutSec=0
-StandardOutput=tty
 RemainAfterExit=yes
-
-[Install]
-WantedBy=multi-user.target
index 9947523222c5b724a6d42c58fc8af25838f24db1..c1e8bd3aaeaab9bed749e084b9ca1703278acb14 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = ipfire-logos
-version    = 1
+version    = 2
 release    = 1
 arch       = noarch
 
@@ -30,6 +30,27 @@ end
 
 packages
        package %{name}
-               provides = system-logos
+               prerequires
+                       plymouth-scripts
+               end
+
+               requires
+                       plymouth-plugin-script
+               end
+
+               provides
+                       system-logos = %{thisver}
+               end
+
+               script postin
+                       %{sbindir}/plymouth-set-default-theme ipfire-logo || :
+               end
+
+               script postun
+                       if [ "$(%{sbindir}/plymouth-set-default-theme)" = "ipfire-logo" ]; then
+                               %{sbindir}/plymouth-set-default-theme --reset
+                               /usr/lib/plymouth/plymouth-generate-initrd
+                       fi
+               end
        end
 end
index afc0609dfce77b8bccd7520ba15f1371afdd8083..d390c19a356bb6195b2bf99050b688007c117a05 100644 (file)
@@ -4,16 +4,17 @@
 ###############################################################################
 
 # Make the configuration of your distribution right here.
-DISTRO_NAME    = IPFire
-DISTRO_SNAME   = ipfire
-DISTRO_VERSION = 3.0-alpha2
-DISTRO_RELEASE = 3
-DISTRO_SLOGAN  = Gluttony
-DISTRO_COLOR   = 0;31
+DISTRO_NAME     = IPFire
+DISTRO_SNAME    = ipfire
+DISTRO_RELEASE  = 3
+DISTRO_VERSION  = %{DISTRO_RELEASE}.0-alpha2
+DISTRO_CODENAME = Gluttony
+DISTRO_SLOGAN   = An Open Source Firewall Solution
+DISTRO_COLOR    = 0;31
 
 name       = %{DISTRO_SNAME}-release
 version    = %{DISTRO_VERSION}
-release    = 1
+release    = 4
 epoch      = 3
 arch       = noarch
 
@@ -38,12 +39,13 @@ build
        install
                mkdir -pv %{BUILDROOT}/etc
 
-               echo "%{DISTRO_NAME} v%{DISTRO_VERSION} for %{DISTRO_ARCH} - %{DISTRO_SLOGAN} (\l)" \
-                       > %{BUILDROOT}/etc/issue
-               echo "===============================" >> %{BUILDROOT}/etc/issue
-               echo "\n running on \s \r \m"          >> %{BUILDROOT}/etc/issue
+               cat <<EOF >%{BUILDROOT}/etc/issue
+               %{DISTRO_NAME} %{DISTRO_VERSION} (%{DISTRO_CODENAME}) - %{DISTRO_SLOGAN} (\l)
+               ===============================
+               \n running on \s \r
+               EOF
 
-               echo "%{DISTRO_NAME} release %{DISTRO_VERSION} (%{DISTRO_SLOGAN})" \
+               echo "%{DISTRO_NAME} release %{DISTRO_VERSION} (%{DISTRO_CODENAME})" \
                        > %{BUILDROOT}/etc/%{DISTRO_SNAME}-release
                ln -svf %{DISTRO_SNAME}-release %{BUILDROOT}/etc/system-release
 
@@ -51,18 +53,28 @@ build
                echo "%{DISTRO_SNAME}.localdomain" > %{BUILDROOT}/etc/hostname
 
                # Create /etc/os-release.
-               echo "NAME=\"%{DISTRO_NAME}\"" >> %{BUILDROOT}/etc/os-release
-               echo "VERSION=\"%{DISTRO_VERSION}\"" >> %{BUILDROOT}/etc/os-release
-               echo "ID=%{DISTRO_SNAME}" >> %{BUILDROOT}/etc/os-release
-               echo "VERSION_ID=%{DISTRO_RELEASE}" >> %{BUILDROOT}/etc/os-release
-               echo "PRETTY_NAME=\"%{DISTRO_NAME} %{DISTRO_VERSION} (%{DISTRO_SLOGAN})\"" \
-                       >> %{BUILDROOT}/etc/os-release
-               echo "ANSI_COLOR=%{DISTRO_COLOR}" >> %{BUILDROOT}/etc/os-release
+               cat <<EOF >%{BUILDROOT}/etc/os-release
+               NAME="%{DISTRO_NAME}"
+               VERSION="%{DISTRO_VERSION}"
+               ID=%{DISTRO_SNAME}
+               VERSION_ID=%{DISTRO_RELEASE}
+               PRETTY_NAME="%{DISTRO_NAME} %{DISTRO_VERSION} (%{DISTRO_CODENAME})"
+               ANSI_COLOR="%{DISTRO_COLOR}"
+               EOF
+
+               # Install default repositories.
+               mkdir -pv %{BUILDROOT}%{sysconfdir}/pakfire/repos
+               cp -vf %{DIR_SOURCE}/repos/* %{BUILDROOT}%{sysconfdir}/pakfire/repos
        end
 end
 
 packages
        package %{name}
                provides = system-release
+
+               configfiles
+                       /etc/hostname
+                       /etc/pakfire/repos
+               end
        end
 end
diff --git a/ipfire-release/repos/stable.repo b/ipfire-release/repos/stable.repo
new file mode 100644 (file)
index 0000000..d8f86fc
--- /dev/null
@@ -0,0 +1,5 @@
+[repo:stable]
+description = IPFire 3 - Stable repository.
+enabled = 1
+baseurl = http://pakfire.ipfire.org/repositories/ipfire3/stable/%{arch}
+mirrors = https://pakfire.ipfire.org/distro/ipfire3/repo/stable/mirrorlist?arch=%{arch}
diff --git a/ipfire-release/repos/testing.repo b/ipfire-release/repos/testing.repo
new file mode 100644 (file)
index 0000000..a1bbb26
--- /dev/null
@@ -0,0 +1,5 @@
+[repo:testing]
+description = IPFire 3 - This is a repository for testing stuff.
+enabled = 0
+baseurl = http://pakfire.ipfire.org/repositories/ipfire3/testing/%{arch}
+mirrors = https://pakfire.ipfire.org/distro/ipfire3/repo/testing/mirrorlist?arch=%{arch}
diff --git a/ipfire-release/repos/unstable.repo b/ipfire-release/repos/unstable.repo
new file mode 100644 (file)
index 0000000..44b11ad
--- /dev/null
@@ -0,0 +1,5 @@
+[repo:unstable]
+description = IPFire 3 - Public unstable repository.
+enabled = 0
+baseurl = http://pakfire.ipfire.org/repositories/ipfire3/unstable/%{arch}
+mirrors = https://pakfire.ipfire.org/distro/ipfire3/repo/unstable/mirrorlist?arch=%{arch}
index bf13e4a9d049c1bdd9fbaecdc90f076f2a41683e..31dd9da53de192c7061672429fd40aa091138028 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = iproute2
-version    = 2.6.39
-release    = 2
+version    = 3.4.0
+release    = 1
 
 groups     = Networking/Tools
 url        = http://www.linuxfoundation.org/en/Net:Iproute2
@@ -18,30 +18,87 @@ description
        capabilities of the Linux 2.4.x and 2.6.x kernel.
 end
 
-source_dl  =
+source_dl  = http://kernel.org/pub/linux/utils/net/iproute2/
+sources    = %{thisapp}.tar.xz
 
 build
        requires
                bison
                db4-devel
                flex
+               libnl-devel
+               linux-atm-devel >= 2.5.1
+               iptables-devel
        end
 
        prepare_cmds
-               sed -i -e "s@DESTDIR=.*@DESTDIR=@" \
-                       -e "s@/share/@/usr/share/@g" Makefile
+               sed -e "s/_VERSION_/%{version}/" man/man8/ss.8
        end
 
+       export RPM_OPT_FLAGS = %{CFLAGS}
+       export LIBDIR = %{libdir}
+       export IPT_LIB_DIR = %{libdir}/xtables
+
        install
-               make install DESTDIR=%{BUILDROOT}
-               mkdir -pv %{BUILDROOT}/usr/sbin
-               mv -v %{BUILDROOT}/sbin/arpd %{BUILDROOT}/usr/sbin
+               # The installation routine that comes with that package
+               # is totally unusable for use, so do it manually.
+
+               mkdir -pv \
+                       %{BUILDROOT}%{includedir} \
+                       %{BUILDROOT}%{sbindir} \
+                       %{BUILDROOT}%{mandir}/man{3,8} \
+                       %{BUILDROOT}%{datadir}/tc \
+                       %{BUILDROOT}%{libdir}/tc \
+                       %{BUILDROOT}%{sysconfdir}/iproute2
+
+               # Install binaries.
+               for bin in genl/genl ip/{ifcfg,ip,routef,routel,rtmon,rtpr} tc/tc \
+                               misc/{arpd,ifstat,lnstat,nstat,rtacct,ss}; do
+                       install -v -m 755 ${bin} %{BUILDROOT}%{sbindir}
+               done
+               ln -svf lnstat %{BUILDROOT}%{sbindir}/ctstat
+               ln -svf lnstat %{BUILDROOT}%{sbindir}/rtstat
+
+               # Install libs.
+               for lib in tc/q_atm.so tc/m_xt.so; do
+                       install -v -m 755 ${lib} %{BUILDROOT}%{libdir}/tc
+               done
+               ln -svf m_xt.so %{BUILDROOT}%{libdir}/tc/m_ipt.so
+
+               # libnetlink
+               install -v -m 644 include/libnetlink.h %{BUILDROOT}%{includedir}
+               install -v -m 644 lib/libnetlink.a %{BUILDROOT}%{libdir}
+
+               # Install documentation.
+               install -v -m 644 man/man3/*.3 %{BUILDROOT}%{mandir}/man3
+               install -v -m 644 man/man8/*.8 %{BUILDROOT}%{mandir}/man8
+               ln -svf lnstat.8 %{BUILDROOT}%{mandir}/man8/ctstat.8
+               ln -svf lnstat.8 %{BUILDROOT}%{mandir}/man8/rtstat.8
+               ln -svf routel.8 %{BUILDROOT}%{mandir}/man8/routef.8
+
+               for sh in netem/normal.dist netem/pareto.dist netem/paretonormal.dist; do
+                       install -v -m 644 ${sh} %{BUILDROOT}%{datadir}/tc
+               done
+
+               # Install configuration.
+               install -v -m 644 etc/iproute2/* %{BUILDROOT}%{sysconfdir}/iproute2
+       end
+
+       # Keep libnetlink.a.
+       keep_libraries
+               %{libdir}/libnetlink.a
        end
 end
 
 packages
        package %{name}
                groups += Base
+
+               configfiles = %{sysconfdir}/iproute2
+       end
+
+       package %{name}-devel
+               template DEVEL
        end
 
        package %{name}-debuginfo
diff --git a/iproute2/patches/iproute2-2.6.29-IPPROTO_IP_for_SA.patch b/iproute2/patches/iproute2-2.6.29-IPPROTO_IP_for_SA.patch
new file mode 100644 (file)
index 0000000..48ffcb4
--- /dev/null
@@ -0,0 +1,11 @@
+diff -up iproute2-2.6.29/ip/ipxfrm.c.old iproute2-2.6.29/ip/ipxfrm.c
+--- iproute2-2.6.29/ip/ipxfrm.c.old    2009-03-24 23:15:14.000000000 +0100
++++ iproute2-2.6.29/ip/ipxfrm.c        2009-04-24 09:35:58.203735119 +0200
+@@ -1156,6 +1156,7 @@ static int xfrm_selector_upspec_parse(st
+               case IPPROTO_UDP:
+               case IPPROTO_SCTP:
+               case IPPROTO_DCCP:
++              case IPPROTO_IP:        /* to allow shared SA for different protocols */
+                       break;
+               default:
+                       fprintf(stderr, "\"sport\" and \"dport\" are invalid with proto=%s\n", strxf_proto(sel->proto));
diff --git a/iproute2/patches/iproute2-2.6.31-tc_modules.patch b/iproute2/patches/iproute2-2.6.31-tc_modules.patch
new file mode 100644 (file)
index 0000000..0daa17b
--- /dev/null
@@ -0,0 +1,12 @@
+diff -up iproute2-2.6.31/Makefile.old iproute2-2.6.31/Makefile
+--- iproute2-2.6.31/Makefile.old       2010-01-04 12:46:47.000000000 +0100
++++ iproute2-2.6.31/Makefile   2010-01-04 12:50:17.396384644 +0100
+@@ -13,7 +13,7 @@ DBM_INCLUDE:=$(ROOTDIR)/usr/include
+ SHARED_LIBS = y
+-DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\"
++DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\" -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\"
+ ifneq ($(SHARED_LIBS),y)
+ DEFINES+= -DNO_SHARED_LIBS
+ endif
diff --git a/iproute2/patches/iproute2-2.6.35-print-route.patch b/iproute2/patches/iproute2-2.6.35-print-route.patch
new file mode 100644 (file)
index 0000000..04f3cf7
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/ip/iproute.c b/ip/iproute.c
+index 711576e..86c7ab7 100644
+--- a/ip/iproute.c
++++ b/ip/iproute.c
+@@ -160,7 +160,7 @@  int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
+       if (r->rtm_family == AF_INET6 && table != RT_TABLE_MAIN)
+               ip6_multiple_tables = 1;
+-      if (filter.cloned == !(r->rtm_flags&RTM_F_CLONED))
++      if (filter.cloned && !(r->rtm_flags&RTM_F_CLONED))
+               return 0;
+       if (r->rtm_family == AF_INET6 && !ip6_multiple_tables) {
diff --git a/iproute2/patches/iproute2-2.6.39-create-peer-veth-without-a-name.patch b/iproute2/patches/iproute2-2.6.39-create-peer-veth-without-a-name.patch
new file mode 100644 (file)
index 0000000..b77dd71
--- /dev/null
@@ -0,0 +1,17 @@
+diff --git a/ip/.link_veth.c.swp b/ip/.link_veth.c.swp
+deleted file mode 100644
+index e3b5480..0000000
+Binary files a/ip/.link_veth.c.swp and /dev/null differ
+diff --git a/ip/link_veth.c b/ip/link_veth.c
+index 3d19b01..eb0f41e 100644
+--- a/ip/link_veth.c
++++ b/ip/link_veth.c
+@@ -27,7 +27,7 @@ static void usage(void)
+ static int veth_parse_opt(struct link_util *lu, int argc, char **argv,
+                         struct nlmsghdr *hdr)
+ {
+-      char *name, *type, *link, *dev;
++      char *name = NULL, *type = NULL, *link = NULL, *dev = NULL;
+       int err, len;
+       struct rtattr * data;
+       int group;
diff --git a/iproute2/patches/iproute2-2.6.39-lnstat-dump-to-stdout.patch b/iproute2/patches/iproute2-2.6.39-lnstat-dump-to-stdout.patch
new file mode 100644 (file)
index 0000000..a5b7b62
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/misc/lnstat.c b/misc/lnstat.c
+index 32ab6a4..431bfc7 100644
+--- a/misc/lnstat.c
++++ b/misc/lnstat.c
+@@ -322,7 +322,7 @@ int main(int argc, char **argv)
+               int i;
+               struct table_hdr *header;
+       case MODE_DUMP:
+-              lnstat_dump(stderr, lnstat_files);
++              lnstat_dump(stdout, lnstat_files);
+               break;
+       case MODE_NORMAL:
diff --git a/iproute2/patches/iproute2-3.4.0-kernel.patch b/iproute2/patches/iproute2-3.4.0-kernel.patch
new file mode 100644 (file)
index 0000000..1e83729
--- /dev/null
@@ -0,0 +1,12 @@
+diff --git a/Makefile b/Makefile
+index c107955..1e15c72 100644
+--- a/Makefile
++++ b/Makefile
+@@ -7,6 +7,7 @@ DATADIR=$(PREFIX)/share
+ DOCDIR=$(DATADIR)/doc/iproute2
+ MANDIR=$(DATADIR)/man
+ ARPDDIR=/var/lib/arpd
++KERNEL_INCLUDE=/usr/include
+ # Path to db_185.h include
+ DBM_INCLUDE:=$(ROOTDIR)/usr/include
diff --git a/iproute2/patches/iproute2-3.4.0-optflags.patch b/iproute2/patches/iproute2-3.4.0-optflags.patch
new file mode 100644 (file)
index 0000000..1dd23cf
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 1e15c72..945d3b3 100644
+--- a/Makefile
++++ b/Makefile
+@@ -36,7 +36,7 @@ HOSTCC = gcc
+ DEFINES += -D_GNU_SOURCE
+ CCOPTS = -O2
+ WFLAGS = -Wall -Wstrict-prototypes
+-CFLAGS = $(WFLAGS) $(CCOPTS) -I../include $(DEFINES)
++CFLAGS = $(WFLAGS) $(CCOPTS) -I../include $(DEFINES) $(RPM_OPT_FLAGS)
+ YACCFLAGS = -d -t -v
+ SUBDIRS=lib ip tc misc netem genl man
diff --git a/iproute2/patches/iproute2-3.4.0-sharepath.patch b/iproute2/patches/iproute2-3.4.0-sharepath.patch
new file mode 100644 (file)
index 0000000..2a29677
--- /dev/null
@@ -0,0 +1,24 @@
+diff --git a/tc/tc_util.c b/tc/tc_util.c
+index 926ed08..33f6974 100644
+--- a/tc/tc_util.c
++++ b/tc/tc_util.c
+@@ -24,8 +24,8 @@
+ #include "utils.h"
+ #include "tc_util.h"
+-#ifndef LIBDIR
+-#define LIBDIR "/usr/lib"
++#ifndef SHAREDIR
++#define SHAREDIR "/usr/share"
+ #endif
+ const char *get_tc_lib(void)
+@@ -34,7 +34,7 @@ const char *get_tc_lib(void)
+       lib_dir = getenv("TC_LIB_DIR");
+       if (!lib_dir)
+-              lib_dir = LIBDIR "/tc/";
++              lib_dir = SHAREDIR "/tc/";
+       return lib_dir;
+ }
diff --git a/iproute2/patches/man-pages.patch b/iproute2/patches/man-pages.patch
new file mode 100644 (file)
index 0000000..9199e3e
--- /dev/null
@@ -0,0 +1,78 @@
+diff -up iproute2-2.6.29/man/man8/cbq.8.man iproute2-2.6.29/man/man8/cbq.8
+--- iproute2-2.6.29/man/man8/cbq.8.man 2009-09-24 14:05:44.868922557 +0200
++++ iproute2-2.6.29/man/man8/cbq.8     2009-09-24 14:05:24.760143753 +0200
+@@ -0,0 +1 @@
++.so man8/tc-cbq.8
+\ No newline at end of file
+diff -up /dev/null iproute2-2.6.29/man/man8/ifcfg.8
+--- /dev/null  2009-09-22 09:26:40.270218984 +0200
++++ iproute2-2.6.29/man/man8/ifcfg.8   2009-09-24 14:03:05.415151874 +0200
+@@ -0,0 +1,57 @@
++.TH IFCFG 8 "September 24 2009" "iproute2" "Linux"
++.SH NAME
++ifcfg \- simplistic script which replaces ifconfig IP managment
++.SH SYNOPSIS
++.ad l
++.in +8
++.ti -8
++.B ifcfg
++.RI "[ " DEVICE " [ " :ALIAS: " ] ] [ " command " ] " ADDRESS " [ " LENGTH " ] [ " PEER " ] "
++.sp
++
++.SH DESCRIPTION
++This manual page documents briefly the
++.B ifcfg
++command.
++.PP
++This is a simplistic script replacing one option of 
++.B ifconfig
++, namely, IP address management. It not only adds
++addresses, but also carries out Duplicate Address Detection RFC-DHCP,
++sends unsolicited ARP to update the caches of other hosts sharing
++the interface, adds some control routes and restarts Router Discovery
++when it is necessary.
++
++I strongly recommend using it 
++.RI instead
++of
++.RI ifconfig
++both on hosts and on routers.
++
++.SH IFCONFIG - COMMAND SYNTAX
++
++.SS
++.TP
++.B DEVICE
++- it may have alias, suffix, separated by colon.
++
++.TP
++.B command
++- add, delete or stop.
++
++.TP
++.B address
++- optionally followed by prefix length.
++
++.TP
++.B peer
++- optional peer address for pointpoint interfaces.
++
++.SH EXAMPLE
++.nf ifcfg eth0 193.233.7.90/24
++.fi
++This function determines, whether this is router or host.
++It returns 0, if the host is apparently not router.
++
++.SH SEE ALSO
++.BR ip-cref.dvi
+--- iproute2-2.6.35/man/man8/ss.8      2010-08-04 19:45:59.000000000 +0200
++++ iproute2-2.6.35/man/man8/ss.8.new  2010-10-11 14:47:06.084216018 +0200
+@@ -114,7 +114,7 @@
+ List all the tcp sockets in state FIN-WAIT-1 for our apache to network 193.233.7/24 and look at their timers.
+ .SH SEE ALSO
+ .BR ip (8),
+-.BR /usr/share/doc/iproute-doc/ss.html " (package iproute­doc)"
++.BR /usr/share/doc/iproute-doc-_VERSION_/ss.ps " (package iproute-doc)"
+ .SH AUTHOR
+ .I ss 
+ was written by Alexey Kuznetosv, <kuznet@ms2.inr.ac.ru>.
index ea53b4c6a1e79c0885bec6a90f4812c0c7036040..a0a1a500f7e7e96becbe6761a88e3ab3fdeb88ed 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = iptables
-version    = 1.4.12.2
+version    = 1.4.14
 release    = 1
 
 groups     = Networking/Tools
@@ -30,9 +30,6 @@ build
        CFLAGS += -fno-strict-aliasing
 
        configure_options += \
-               --bindir=/bin \
-               --sbindir=/sbin \
-               --libdir=/%{lib} \
                --libexecdir=/%{lib} \
                --sysconfdir=/etc \
                --with-pkgconfigdir=%{libdir}/pkgconfig \
@@ -58,20 +55,8 @@ build
                install -v -m 644 include/libiptc/*.h \
                        %{BUILDROOT}/usr/include/libiptc
 
-               mkdir -pv %{BUILDROOT}%{libdir}
-               rm -vf %{BUILDROOT}/%{lib}/libip{tc,4tc,6tc,q}.so %{BUILDROOT}/%{lib}/libxtables.so
-               ln -svf ../../%{lib}/libiptc.so.0 %{BUILDROOT}%{libdir}/libiptc.so
-               ln -svf ../../%{lib}/libip4tc.so.0 %{BUILDROOT}%{libdir}/libip4tc.so
-               ln -svf ../../%{lib}/libip6tc.so.0 %{BUILDROOT}%{libdir}/libip6tc.so
-               ln -svf ../../%{lib}/libipq.so.0 %{BUILDROOT}%{libdir}/libipq.so
-               ln -svf ../../%{lib}/libxtables.so.7 %{BUILDROOT}%{libdir}/libxtables.so
-
-               # Replace absolute symlink
-               ln -svf ../sbin/xtables-multi %{BUILDROOT}/bin/iptables-xml
-
-               # Move binary which links to /usr/lib to /usr.
-               mkdir -pv %{BUILDROOT}/usr/sbin
-               mv -v %{BUILDROOT}/{,usr/}sbin/nfnl_osf
+               # Remove relative symlinks.
+               ln -svf ../sbin/xtables-multi %{BUILDROOT}/usr/bin/iptables-xml
        end
 end
 
index d45eb92a887e14963d50a1fcce46b434b27e5831..8eda32794890dccfe13da57054196afc4cfa26b0 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = iputils
 version    = s20071127
-release    = 3
+release    = 4
 
 groups     = Networking/Tools
 url        = http://www.skbuff.net/iputils
@@ -48,39 +48,45 @@ build
        end
 
        install
-               mkdir -pv %{BUILDROOT}/{bin,sbin} %{BUILDROOT}/usr/sbin
-               mkdir -pv %{BUILDROOT}/usr/share/man/man8
-
-               install -cp clockdiff   %{BUILDROOT}/usr/sbin/
-               install -cp arping      %{BUILDROOT}/sbin/
-               install -cp ping        %{BUILDROOT}/bin/
-               install -cp ping6       %{BUILDROOT}/bin/
-               install -cp rdisc       %{BUILDROOT}/sbin/
-               install -cp tracepath   %{BUILDROOT}/bin/
-               install -cp tracepath6  %{BUILDROOT}/bin/
-
-               install -cp doc/clockdiff.8 %{BUILDROOT}/usr/share/man/man8/
-               install -cp doc/arping.8 %{BUILDROOT}/usr/share/man/man8/
-               install -cp doc/ping.8 %{BUILDROOT}/usr/share/man/man8/
-               install -cp doc/rdisc.8 %{BUILDROOT}/usr/share/man/man8/
-               install -cp doc/tracepath.8 %{BUILDROOT}/usr/share/man/man8/
-
-               ln -svf ../../sbin/arping       %{BUILDROOT}/usr/sbin/arping
-               ln -svf ../../bin/ping6         %{BUILDROOT}/usr/sbin/
-               ln -svf ../../bin/tracepath     %{BUILDROOT}/usr/sbin/
-               ln -svf ../../bin/tracepath6    %{BUILDROOT}/usr/sbin/
-
-               ln -s ping.8 %{BUILDROOT}/usr/share/man/man8/ping6.8
-               ln -s tracepath.8 %{BUILDROOT}/usr/share/man/man8/tracepath6.8
-
-               setcap cap_net_admin=ep %{BUILDROOT}/bin/ping
-               setcap cap_net_admin=ep %{BUILDROOT}/bin/ping6
+               mkdir -pv %{BUILDROOT}{%{bindir},%{sbindir}}
+               mkdir -pv %{BUILDROOT}%{mandir}/man8
+
+               install -cp clockdiff        %{BUILDROOT}%{sbindir}
+               install -cp arping           %{BUILDROOT}%{sbindir}
+               install -cp ping             %{BUILDROOT}%{bindir}
+               install -cp ping6            %{BUILDROOT}%{bindir}
+               install -cp rdisc            %{BUILDROOT}%{sbindir}
+               install -cp tracepath        %{BUILDROOT}%{bindir}
+               install -cp tracepath6       %{BUILDROOT}%{bindir}
+
+               install -cp doc/clockdiff.8  %{BUILDROOT}%{mandir}/man8/
+               install -cp doc/arping.8     %{BUILDROOT}%{mandir}/man8/
+               install -cp doc/ping.8       %{BUILDROOT}%{mandir}/man8/
+               install -cp doc/rdisc.8      %{BUILDROOT}%{mandir}/man8/
+               install -cp doc/tracepath.8  %{BUILDROOT}%{mandir}/man8/
+
+               ln -svf ../bin/ping6         %{BUILDROOT}%{sbindir}
+               ln -svf ../bin/tracepath     %{BUILDROOT}%{sbindir}
+               ln -svf ../bin/tracepath6    %{BUILDROOT}%{sbindir}
+
+               ln -s ping.8                 %{BUILDROOT}%{mandir}/man8/ping6.8
+               ln -s tracepath.8            %{BUILDROOT}%{mandir}/man8/tracepath6.8
+
+               setcap cap_net_admin=ep %{BUILDROOT}%{bindir}/ping
+               setcap cap_net_admin=ep %{BUILDROOT}%{bindir}/ping6
        end
 end
 
 packages
        package %{name}
                groups += Base
+
+               provides
+                       /bin/ping
+                       /bin/ping6
+                       /sbin/arping
+                       /sbin/rdisc
+               end
        end
 
        package %{name}-debuginfo
diff --git a/isdn4k-utils/40-isdn.rules b/isdn4k-utils/40-isdn.rules
deleted file mode 100644 (file)
index 1a31cb6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# do not edit this file, it will be overwritten on update
-
-SUBSYSTEM=="capi", KERNEL=="capi", NAME="capi20", GROUP="dialout"
-SUBSYSTEM=="tty", KERNEL=="capi[0-9]*", NAME="capi/%n"
index 38149ed1c725a2a74932b0dadd721e7f901bce87..425cd207e114bb27f98be3b375a394e29b1cdec8 100644 (file)
@@ -6,7 +6,7 @@
 name       = isdn4k-utils
 version    = 3.2
 devel_ver  = CVS-2010-05-01
-release    = 6
+release    = 7
 thisapp    = %{name}-%{devel_ver}-patched
 
 groups     = Networking/Tools
@@ -59,11 +59,11 @@ build
                sed -e "s/^CONFIG_XISDNLOAD=.*/#&/" -i .config
                echo "CONFIG_GENMAN=y" >> .config
                echo "CONFIG_FAQ=y" >> .config
-               echo "CONFIG_FAQDIR='/usr/share/doc/isdn4k-utils'" >> .config
-               echo "CONFIG_DATADIR='/usr/share/isdn'" >> .config
+               echo "CONFIG_FAQDIR='%{datadir}/doc/isdn4k-utils'" >> .config
+               echo "CONFIG_DATADIR='%{datadir}/isdn'" >> .config
                echo "LIBDIR='%{libdir}'" >> .config
-               echo "CONFIG_FIRMWAREDIR='/usr/share/isdn'" >> .config
-               echo "CONFIG_CARD_SBINDIR='/sbin'" >> .config
+               echo "CONFIG_FIRMWAREDIR='%{datadir}/isdn'" >> .config
+               echo "CONFIG_CARD_SBINDIR='%{sbindir}'" >> .config
                sed -e "s,',,g" .config > .config.h
        end
 
@@ -77,10 +77,6 @@ build
                mkdir -pv %{BUILDROOT}/usr/sbin
                make install CFLAGS="%{CFLAGS}" LIBDIR="%{libdir}" DESTDIR="%{BUILDROOT}"
 
-               # Install udev rules for isdn.
-               mkdir -pv %{BUILDROOT}/%{lib}/udev/rules.d/
-               install -m 644 %{DIR_SOURCE}/40-isdn.rules %{BUILDROOT}/%{lib}/udev/rules.d/
-
                # Install config files for capi.
                mkdir -pv %{BUILDROOT}/etc
                install -m 644 capiinit/capi.conf %{BUILDROOT}/etc
@@ -96,6 +92,10 @@ packages
        package %{name}
                prerequires += systemd-units
 
+               conflicts
+                       filesystem < 002
+               end
+
                configfiles
                        /etc/capi.conf
                        /etc/capi20.conf
index 2fe9da16c781edf3887aeb59d17b9c6d49c73bf1..62186f97cbeafd83747795fab5e5bc761a323c42 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = kbd
 version    = 1.15.3
-release    = 1
+release    = 2
 epoch      = 1
 
 groups     = System/Base
@@ -31,7 +31,7 @@ build
        end
 
        configure_options += \
-               --datadir=/lib/kbd \
+               --datadir=%{prefix}/lib/kbd \
                --disable-rpath \
                --enable-nls
 
@@ -62,15 +62,13 @@ build
                cd %{DIR_APP}/po
                rm -f gr.po gr.gmo
        end
-
-       install_cmds
-               mkdir -pv %{BUILDROOT}/bin
-               mv -v %{BUILDROOT}/usr/bin/{kbd_mode,loadkeys,openvt,setfont} %{BUILDROOT}/bin
-       end
 end
 
 packages
        package %{name}
+               conflicts
+                       filesystem < 002
+               end
        end
 
        package %{name}-debuginfo
diff --git a/kernel/config-arm-generic b/kernel/config-arm-generic
new file mode 100644 (file)
index 0000000..874bcc6
--- /dev/null
@@ -0,0 +1,495 @@
+CONFIG_ARM=y
+CONFIG_MIGHT_HAVE_PCI=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
+CONFIG_KTIME_SCALAR=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+
+#
+# General setup
+#
+CONFIG_BROKEN_ON_SMP=y
+
+#
+# IRQ subsystem
+#
+CONFIG_IRQ_DOMAIN=y
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TINY_RCU=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_LBDAF=y
+
+#
+# IO Schedulers
+#
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+
+#
+# System Type
+#
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+CONFIG_ARCH_VERSATILE=y
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_HIGHBANK is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_PRIMA2 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_MXS is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LPC32XX is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_PICOXCELL is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C24XX is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_PLAT_SPEAR is not set
+# CONFIG_ARCH_VT8500 is not set
+# CONFIG_ARCH_ZYNQ is not set
+
+#
+# Versatile platform type
+#
+CONFIG_ARCH_VERSATILE_PB=y
+CONFIG_MACH_VERSATILE_AB=y
+CONFIG_MACH_VERSATILE_DT=y
+CONFIG_PLAT_VERSATILE_CLCD=y
+CONFIG_PLAT_VERSATILE_FPGA_IRQ=y
+CONFIG_PLAT_VERSATILE_LEDS=y
+CONFIG_PLAT_VERSATILE_SCHED_CLOCK=y
+CONFIG_PLAT_VERSATILE=y
+CONFIG_ARM_TIMER_SP804=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_ARM926T=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_PABRT_LEGACY=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_USE_DOMAINS=y
+
+#
+# Processor Features
+#
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+# CONFIG_CACHE_L2X0 is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
+CONFIG_ARM_NR_BANKS=8
+CONFIG_MULTI_IRQ_HANDLER=y
+CONFIG_ARM_VIC=y
+CONFIG_ARM_VIC_NR=2
+CONFIG_ICST=y
+
+#
+# Bus support
+#
+CONFIG_ARM_AMBA=y
+CONFIG_PCI_SYSCALL=y
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+
+#
+# Kernel Features
+#
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_ARCH_NR_GPIO=0
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHPTE is not set
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPLIT_PTLOCK_CPUS=999999
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+CONFIG_NEED_PER_CPU_KM=y
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_LEDS=y
+CONFIG_LEDS_CPU=y
+CONFIG_ALIGNMENT_TRAP=y
+# CONFIG_UACCESS_WITH_MEMCPY is not set
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
+
+#
+# Boot options
+#
+CONFIG_USE_OF=y
+CONFIG_ZBOOT_ROM_TEXT=0
+CONFIG_ZBOOT_ROM_BSS=0
+CONFIG_ARM_APPENDED_DTB=y
+# CONFIG_ARM_ATAG_DTB_COMPAT is not set
+CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20"
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_CMDLINE_EXTEND is not set
+# CONFIG_CMDLINE_FORCE is not set
+# CONFIG_XIP_KERNEL is not set
+CONFIG_ATAGS_PROC=y
+CONFIG_AUTO_ZRELADDR=y
+
+#
+# CPU Power Management
+#
+# CONFIG_CPU_IDLE is not set
+
+#
+# At least one emulation must be selected
+#
+CONFIG_VFP=y
+
+#
+# Power management options
+#
+CONFIG_APM_EMULATION=y
+CONFIG_PM_CLK=y
+CONFIG_CPU_PM=y
+CONFIG_ARM_CPU_SUSPEND=y
+
+#
+# Classification
+#
+CONFIG_BPF_JIT=y
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_RFKILL_GPIO is not set
+
+#
+# Generic Driver Options
+#
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_DTC=y
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+# CONFIG_OF_SELFTEST is not set
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=m
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+# CONFIG_MG_DISK is not set
+
+#
+# Misc devices
+#
+# CONFIG_SENSORS_LIS3LV02D is not set
+# CONFIG_ATMEL_PWM is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_ARM_CHARLCD is not set
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_NSP32 is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_ATM_HE is not set
+
+#
+# Distributed Switch Architecture drivers
+#
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_CS89x0=m
+CONFIG_CS89x0_PLATFORM=y
+CONFIG_DM9000=m
+# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
+CONFIG_NET_VENDOR_FARADAY=y
+# CONFIG_FTMAC100 is not set
+# CONFIG_FTGMAC100 is not set
+# CONFIG_MLX4_EN is not set
+# CONFIG_MLX4_CORE is not set
+CONFIG_AX88796=m
+CONFIG_AX88796_93CX6=y
+CONFIG_SMC91X=m
+CONFIG_SMC911X=m
+CONFIG_SMSC911X=m
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
+# CONFIG_SUNGEM is not set
+
+#
+# ISDN feature submodules
+#
+# CONFIG_ISDN_DRV_LOOP is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_KEYBOARD_SAMSUNG is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO_AMBAKMI=m
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250_DW is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_OF_PLATFORM=m
+# CONFIG_HVC_DCC is not set
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
+CONFIG_I2C_VERSATILE=m
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_PL061 is not set
+
+#
+# 1-wire Slaves
+#
+# CONFIG_APM_POWER is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_ARM_SP805_WATCHDOG is not set
+# CONFIG_DW_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+
+#
+# Customize TV tuners
+#
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+
+#
+# Miscelaneous helper chips
+#
+CONFIG_VIDEO_CAFE_CCIC=m
+# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set
+# CONFIG_VIDEO_SH_MOBILE_CEU is not set
+
+#
+# Graphics support
+#
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_NOUVEAU is not set
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=m
+CONFIG_FB_CFB_COPYAREA=m
+CONFIG_FB_CFB_IMAGEBLIT=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+CONFIG_FB_SYS_FOPS=m
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_ARMCLCD=m
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_SAVAGE is not set
+
+#
+# Console display driver support
+#
+# CONFIG_SND_ALI5451 is not set
+CONFIG_SND_ARM=y
+CONFIG_SND_ARMAACI=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_USB_ULPI is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_ARMMMCI=m
+CONFIG_MMC_SDHCI_PXAV3=m
+CONFIG_MMC_SDHCI_PXAV2=m
+CONFIG_MMC_DW=m
+# CONFIG_MMC_DW_IDMAC is not set
+CONFIG_MMC_DW_PLTFM=m
+CONFIG_MMC_DW_PCI=m
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_RENESAS_TPU is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_PL030=m
+CONFIG_RTC_DRV_PL031=m
+
+#
+# DMA Devices
+#
+# CONFIG_AMBA_PL08X is not set
+# CONFIG_DW_DMAC is not set
+CONFIG_PL330_DMA=y
+
+#
+# Android
+#
+CONFIG_CLKDEV_LOOKUP=y
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKSRC_MMIO=y
+
+#
+# Pseudo filesystems
+#
+# CONFIG_HUGETLB_PAGE is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_HARDLOCKUP_DETECTOR is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_FUNCTION_GRAPH_TRACER=y
+CONFIG_ARM_UNWIND=y
+CONFIG_OLD_MCOUNT=y
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_LL is not set
+# CONFIG_OC_ETM is not set
+
+#
+# Miscellaneous hardening features
+#
+CONFIG_PAX_MEMORY_SANITIZE=y
+
+#
+# Executable Protections
+#
+# CONFIG_GRKERNSEC_SETXID is not set
+
+#
+# Logging Options
+#
+CONFIG_LSM_MMAP_MIN_ADDR=32768
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+
+#
+# Library routines
+#
+CONFIG_AUDIT_GENERIC=y
+CONFIG_GENERIC_ATOMIC64=y
diff --git a/kernel/config-armv5tel-kirkwood b/kernel/config-armv5tel-kirkwood
new file mode 100644 (file)
index 0000000..8e5d6e6
--- /dev/null
@@ -0,0 +1,133 @@
+CONFIG_NEED_MACH_IO_H=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_CHIP=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_VERSATILE is not set
+CONFIG_ARCH_KIRKWOOD=y
+
+#
+# Marvell Kirkwood Implementations
+#
+CONFIG_MACH_DB88F6281_BP=y
+CONFIG_MACH_RD88F6192_NAS=y
+CONFIG_MACH_RD88F6281=y
+CONFIG_MACH_MV88F6281GTW_GE=y
+CONFIG_MACH_SHEEVAPLUG=y
+CONFIG_MACH_ESATA_SHEEVAPLUG=y
+CONFIG_MACH_GURUPLUG=y
+CONFIG_ARCH_KIRKWOOD_DT=y
+CONFIG_MACH_DREAMPLUG_DT=y
+CONFIG_MACH_TS219=y
+CONFIG_MACH_TS41X=y
+CONFIG_MACH_DOCKSTAR=y
+CONFIG_MACH_OPENRD=y
+CONFIG_MACH_OPENRD_BASE=y
+CONFIG_MACH_OPENRD_CLIENT=y
+CONFIG_MACH_OPENRD_ULTIMATE=y
+CONFIG_MACH_NETSPACE_V2=y
+CONFIG_MACH_INETSPACE_V2=y
+CONFIG_MACH_NETSPACE_MAX_V2=y
+CONFIG_MACH_D2NET_V2=y
+CONFIG_MACH_NET2BIG_V2=y
+CONFIG_MACH_NET5BIG_V2=y
+CONFIG_MACH_T5325=y
+
+#
+# System MMU
+#
+CONFIG_PLAT_ORION=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_FEROCEON=y
+# CONFIG_CPU_FEROCEON_OLD_ID is not set
+CONFIG_CPU_ABRT_EV5T=y
+CONFIG_CPU_COPY_FEROCEON=y
+CONFIG_CPU_TLB_FEROCEON=y
+
+#
+# Processor Features
+#
+CONFIG_OUTER_CACHE=y
+CONFIG_CACHE_FEROCEON_L2=y
+CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH=y
+
+#
+# Power management options
+#
+# CONFIG_ARM_CPU_SUSPEND is not set
+
+#
+# Distributed Switch Architecture drivers
+#
+CONFIG_MV643XX_ETH=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_MV64XXX=m
+
+#
+# Enable Device Drivers -> PPS to see the PTP clock options.
+#
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIO_GENERIC=y
+
+#
+# Memory mapped GPIO drivers:
+#
+CONFIG_GPIO_GENERIC_PLATFORM=y
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MCP23S08=m
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_ORION_WATCHDOG=m
+
+#
+# Console display driver support
+#
+CONFIG_SND_KIRKWOOD_SOC=m
+CONFIG_SND_KIRKWOOD_SOC_I2S=m
+CONFIG_SND_KIRKWOOD_SOC_OPENRD=m
+CONFIG_SND_KIRKWOOD_SOC_T5325=m
+CONFIG_SND_SOC_ALC5623=m
+CONFIG_SND_SOC_CS42L51=m
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_MVSDIO=m
+
+#
+# LED drivers
+#
+CONFIG_LEDS_NS2=m
+CONFIG_LEDS_NETXBIG=m
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_MV=m
+
+#
+# DMA Devices
+#
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
+CONFIG_MV_XOR=y
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_DEV_MV_CESA=m
diff --git a/kernel/config-armv7hl-omap b/kernel/config-armv7hl-omap
new file mode 100644 (file)
index 0000000..87b0239
--- /dev/null
@@ -0,0 +1,631 @@
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_CHIP=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+CONFIG_RCU_FAST_NO_HZ=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_STOP_MACHINE=y
+
+#
+# IO Schedulers
+#
+CONFIG_PADATA=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_VERSATILE is not set
+CONFIG_ARCH_OMAP=y
+
+#
+# TI OMAP Common Features
+#
+CONFIG_ARCH_OMAP_OTG=y
+# CONFIG_ARCH_OMAP1 is not set
+CONFIG_ARCH_OMAP2PLUS=y
+
+#
+# OMAP Feature Selections
+#
+CONFIG_OMAP_SMARTREFLEX=y
+CONFIG_OMAP_SMARTREFLEX_CLASS3=y
+CONFIG_OMAP_RESET_CLOCKS=y
+CONFIG_OMAP_MUX=y
+# CONFIG_OMAP_MUX_DEBUG is not set
+CONFIG_OMAP_MUX_WARNINGS=y
+CONFIG_OMAP_MBOX_FWK=m
+CONFIG_OMAP_MBOX_KFIFO_SIZE=256
+CONFIG_OMAP_32K_TIMER=y
+# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
+CONFIG_OMAP_32K_TIMER_HZ=128
+CONFIG_OMAP_DM_TIMER=y
+CONFIG_OMAP_PM_NOOP=y
+CONFIG_MACH_OMAP_GENERIC=y
+
+#
+# TI OMAP2/3/4 Specific Features
+#
+CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
+# CONFIG_ARCH_OMAP2 is not set
+CONFIG_ARCH_OMAP3=y
+CONFIG_ARCH_OMAP4=y
+CONFIG_SOC_OMAP3430=y
+CONFIG_SOC_OMAPTI81XX=y
+CONFIG_SOC_OMAPAM33XX=y
+CONFIG_OMAP_PACKAGE_CBB=y
+CONFIG_OMAP_PACKAGE_CUS=y
+CONFIG_OMAP_PACKAGE_CBP=y
+CONFIG_OMAP_PACKAGE_CBL=y
+CONFIG_OMAP_PACKAGE_CBS=y
+
+#
+# OMAP Board Type
+#
+CONFIG_MACH_OMAP3_BEAGLE=y
+CONFIG_MACH_DEVKIT8000=y
+CONFIG_MACH_OMAP_LDP=y
+CONFIG_MACH_OMAP3530_LV_SOM=y
+CONFIG_MACH_OMAP3_TORPEDO=y
+CONFIG_MACH_OVERO=y
+CONFIG_MACH_OMAP3EVM=y
+CONFIG_MACH_OMAP3517EVM=y
+CONFIG_MACH_CRANEBOARD=y
+CONFIG_MACH_OMAP3_PANDORA=y
+CONFIG_MACH_OMAP3_TOUCHBOOK=y
+CONFIG_MACH_OMAP_3430SDP=y
+CONFIG_MACH_NOKIA_RM680=y
+CONFIG_MACH_NOKIA_RX51=y
+CONFIG_MACH_OMAP_ZOOM2=y
+CONFIG_MACH_OMAP_ZOOM3=y
+CONFIG_MACH_CM_T35=y
+CONFIG_MACH_CM_T3517=y
+CONFIG_MACH_CM_T3730=y
+CONFIG_MACH_IGEP0020=y
+CONFIG_MACH_IGEP0030=y
+CONFIG_MACH_SBC3530=y
+CONFIG_MACH_OMAP_3630SDP=y
+CONFIG_MACH_TI8168EVM=y
+CONFIG_MACH_TI8148EVM=y
+CONFIG_MACH_OMAP_4430SDP=y
+CONFIG_MACH_OMAP4_PANDA=y
+CONFIG_OMAP3_EMU=y
+# CONFIG_OMAP3_SDRC_AC_TIMING is not set
+CONFIG_OMAP4_ERRATA_I688=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_V7=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_HAS_ASID=y
+
+#
+# Processor Features
+#
+# CONFIG_ARM_LPAE is not set
+CONFIG_ARM_THUMBEE=y
+CONFIG_SWP_EMULATE=y
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+CONFIG_CACHE_L2X0=y
+CONFIG_CACHE_PL310=y
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+CONFIG_ARM_L1_CACHE_SHIFT=6
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+CONFIG_ARCH_HAS_BARRIERS=y
+CONFIG_CPU_HAS_PMU=y
+CONFIG_ARM_ERRATA_430973=y
+# CONFIG_ARM_ERRATA_458693 is not set
+# CONFIG_ARM_ERRATA_460075 is not set
+# CONFIG_ARM_ERRATA_742230 is not set
+# CONFIG_ARM_ERRATA_742231 is not set
+CONFIG_PL310_ERRATA_588369=y
+CONFIG_ARM_ERRATA_720789=y
+CONFIG_PL310_ERRATA_727915=y
+# CONFIG_ARM_ERRATA_743622 is not set
+# CONFIG_ARM_ERRATA_751472 is not set
+# CONFIG_PL310_ERRATA_753970 is not set
+# CONFIG_ARM_ERRATA_754322 is not set
+# CONFIG_ARM_ERRATA_754327 is not set
+# CONFIG_ARM_ERRATA_764369 is not set
+CONFIG_PL310_ERRATA_769419=y
+CONFIG_ARM_GIC=y
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_ARM_CPU_TOPOLOGY=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
+CONFIG_NR_CPUS=2
+CONFIG_HOTPLUG_CPU=y
+CONFIG_LOCAL_TIMERS=y
+CONFIG_HZ=128
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
+CONFIG_HW_PERF_EVENTS=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# At least one emulation must be selected
+#
+CONFIG_VFPv3=y
+CONFIG_NEON=y
+
+#
+# Power management options
+#
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_ARCH_HAS_OPP=y
+CONFIG_PM_OPP=y
+
+#
+# Classification
+#
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_RFKILL_REGULATOR is not set
+
+#
+# Generic Driver Options
+#
+CONFIG_REGMAP_I2C=y
+CONFIG_MTD=y
+CONFIG_MTD_TESTS=m
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_OF_PARTS=y
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
+# CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_RAM=m
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PLATRAM=m
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=y
+# CONFIG_MTD_NAND_ECC_SMC is not set
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+# CONFIG_MTD_SM_COMMON is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_GPIO is not set
+CONFIG_MTD_NAND_OMAP2=y
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_DOCG4 is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+CONFIG_MTD_NAND_PLATFORM=y
+# CONFIG_MTD_ALAUDA is not set
+CONFIG_MTD_ONENAND=y
+# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
+# CONFIG_MTD_ONENAND_GENERIC is not set
+CONFIG_MTD_ONENAND_OMAP2=y
+# CONFIG_MTD_ONENAND_OTP is not set
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+CONFIG_MTD_ONENAND_SIM=m
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+# CONFIG_MTD_UBI is not set
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_OF_I2C=y
+CONFIG_OF_MTD=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_MG_DISK=m
+CONFIG_MG_DISK_RES=0
+
+#
+# Generic fallback / legacy drivers
+#
+# CONFIG_MULTICORE_RAID456 is not set
+
+#
+# Distributed Switch Architecture drivers
+#
+# CONFIG_TI_DAVINCI_EMAC is not set
+CONFIG_TI_DAVINCI_MDIO=m
+CONFIG_TI_DAVINCI_CPDMA=m
+# CONFIG_TI_CPSW is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT_FF_MEMLESS=y
+
+#
+# Input Device Drivers
+#
+# CONFIG_KEYBOARD_OMAP4 is not set
+CONFIG_KEYBOARD_TWL4030=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_INPUT_TWL4030_PWRBUTTON=y
+CONFIG_INPUT_TWL4030_VIBRA=y
+CONFIG_INPUT_TWL6040_VIBRA=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_AMBA_PL010 is not set
+CONFIG_SERIAL_OMAP=y
+CONFIG_SERIAL_OMAP_CONSOLE=y
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_I2C=y
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_OMAP=y
+
+#
+# Enable Device Drivers -> PPS to see the PTP clock options.
+#
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_SX150X is not set
+CONFIG_GPIO_TWL4030=y
+
+#
+# 1-wire Bus Masters
+#
+# CONFIG_HDQ_MASTER_OMAP is not set
+
+#
+# 1-wire Slaves
+#
+# CONFIG_CHARGER_TWL4030 is not set
+# CONFIG_CHARGER_MANAGER is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_MPCORE_WATCHDOG is not set
+CONFIG_OMAP_WATCHDOG=y
+# CONFIG_TWL4030_WATCHDOG is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+CONFIG_TWL4030_CORE=y
+# CONFIG_TWL4030_MADC is not set
+CONFIG_TWL4030_POWER=y
+CONFIG_MFD_TWL4030_AUDIO=y
+# CONFIG_TWL6030_PWM is not set
+CONFIG_TWL6040_CORE=y
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_DA9052_I2C is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_S5M_CORE is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+CONFIG_MFD_OMAP_USB_HOST=y
+CONFIG_MFD_TPS65090=y
+# CONFIG_MFD_AAT2870_CORE is not set
+# CONFIG_MFD_RC5T583 is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+CONFIG_REGULATOR_GPIO=y
+# CONFIG_REGULATOR_AD5398 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+CONFIG_REGULATOR_TPS62360=m
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+CONFIG_REGULATOR_TWL4030=y
+# CONFIG_REGULATOR_WM8400 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_VPFE_CAPTURE is not set
+CONFIG_VIDEO_OMAP2_VOUT_VRFB=y
+CONFIG_VIDEO_OMAP2_VOUT=m
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+# CONFIG_TTPCI_EEPROM is not set
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_VGASTATE is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_BACKLIGHT is not set
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_OMAP2_VRAM=y
+CONFIG_OMAP2_VRFB=y
+CONFIG_OMAP2_DSS=y
+CONFIG_OMAP2_VRAM_SIZE=12
+CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
+# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
+CONFIG_OMAP2_DSS_DPI=y
+# CONFIG_OMAP2_DSS_RFBI is not set
+CONFIG_OMAP2_DSS_VENC=y
+CONFIG_OMAP4_DSS_HDMI=y
+# CONFIG_OMAP2_DSS_SDI is not set
+# CONFIG_OMAP2_DSS_DSI is not set
+# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
+CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=1
+CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
+CONFIG_FB_OMAP2=m
+CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
+CONFIG_FB_OMAP2_NUM_FBS=3
+
+#
+# OMAP2/3 Display Device Drivers
+#
+CONFIG_PANEL_GENERIC_DPI=y
+# CONFIG_PANEL_DVI is not set
+CONFIG_PANEL_SHARP_LS037V7DW01=y
+# CONFIG_PANEL_PICODLP is not set
+# CONFIG_LCD_PLATFORM is not set
+# CONFIG_BACKLIGHT_PANDORA is not set
+
+#
+# Console display driver support
+#
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+# CONFIG_SND_OMAP_SOC is not set
+
+#
+# Special HID drivers
+#
+# CONFIG_USB_ARCH_HAS_XHCI is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD_OMAP=y
+CONFIG_USB_OHCI_HCD_OMAP3=y
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_GPIO_VBUS=y
+# CONFIG_ISP1301_OMAP is not set
+CONFIG_TWL4030_USB=y
+CONFIG_TWL6030_USB=y
+CONFIG_MMC=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_OMAP=y
+CONFIG_MMC_OMAP_HS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_GPIO=y
+# CONFIG_LEDS_REGULATOR is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_TWL4030 is not set
+
+#
+# DMA Clients
+#
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_RING=m
+
+#
+# Microsoft Hyper-V guest support
+#
+# CONFIG_TIDSPBRIDGE is not set
+
+#
+# Speakup console speech
+#
+CONFIG_DRM_OMAP=m
+CONFIG_DRM_OMAP_NUM_CRTCS=1
+
+#
+# Android
+#
+CONFIG_HWSPINLOCK=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_HWSPINLOCK_OMAP=m
+# CONFIG_OMAP_IOMMU is not set
+
+#
+# Pseudo filesystems
+#
+# CONFIG_JFFS2_FS is not set
+
+#
+# Kernel hacking
+#
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_CPU_STALL_INFO is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
+CONFIG_OC_ETM=y
+
+#
+# Non-executable pages
+#
+CONFIG_PAX_NOEXEC=y
+CONFIG_PAX_PAGEEXEC=y
+CONFIG_PAX_MPROTECT=y
+# CONFIG_PAX_MPROTECT_COMPAT is not set
+CONFIG_PAX_ELFRELOCS=y
+
+#
+# Miscellaneous hardening features
+#
+CONFIG_PAX_REFCOUNT=y
+
+#
+# Kernel Auditing
+#
+CONFIG_GRKERNSEC_RWXMAP_LOG=y
+CONFIG_GRKERNSEC_AUDIT_TEXTREL=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_PCRYPT=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_DEV_OMAP_SHAM=m
+CONFIG_CRYPTO_DEV_OMAP_AES=m
+
+#
+# Library routines
+#
+CONFIG_CPU_RMAP=y
similarity index 79%
rename from kernel/config.i686-legacy
rename to kernel/config-generic
index 0cb854c3119ed7c1fca5725eecd3a36e25612ed4..202a0a19bfe41853de55e91cd54662210c2e2c15 100644 (file)
@@ -1,56 +1,17 @@
 #
-# Automatically generated file; DO NOT EDIT.
-# Linux/i386 3.1.1-1.ip3.i686 Kernel Configuration
-#
-# CONFIG_64BIT is not set
-CONFIG_X86_32=y
-# CONFIG_X86_64 is not set
-CONFIG_X86=y
-CONFIG_INSTRUCTION_DECODER=y
-CONFIG_OUTPUT_FORMAT="elf32-i386"
-CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_CLOCKSOURCE_WATCHDOG=y
+#
 CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
 CONFIG_LOCKDEP_SUPPORT=y
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_MMU=y
-CONFIG_ZONE_DMA=y
 CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_GPIO=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
 CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
-# CONFIG_GENERIC_TIME_VSYSCALL is not set
-CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_DEFAULT_IDLE=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_ZONE_DMA32 is not set
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-# CONFIG_AUDIT_ARCH is not set
-CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_HAVE_INTEL_TXT=y
-CONFIG_X86_32_SMP=y
-CONFIG_X86_HT=y
-CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
-CONFIG_KTIME_SCALAR=y
-CONFIG_ARCH_CPU_PROBE_RELEASE=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 CONFIG_HAVE_IRQ_WORK=y
 CONFIG_IRQ_WORK=y
@@ -64,12 +25,10 @@ CONFIG_CROSS_COMPILE=""
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_BZIP2=y
 CONFIG_HAVE_KERNEL_LZMA=y
 CONFIG_HAVE_KERNEL_XZ=y
 CONFIG_HAVE_KERNEL_LZO=y
 # CONFIG_KERNEL_GZIP is not set
-# CONFIG_KERNEL_BZIP2 is not set
 # CONFIG_KERNEL_LZMA is not set
 CONFIG_KERNEL_XZ=y
 # CONFIG_KERNEL_LZO is not set
@@ -90,32 +49,23 @@ CONFIG_AUDIT=y
 CONFIG_AUDITSYSCALL=y
 CONFIG_AUDIT_WATCH=y
 CONFIG_AUDIT_TREE=y
+CONFIG_AUDIT_LOGINUID_IMMUTABLE=y
 CONFIG_HAVE_GENERIC_HARDIRQS=y
 
 #
 # IRQ subsystem
 #
 CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_IRQ_FORCED_THREADING=y
-# CONFIG_SPARSE_IRQ is not set
 
 #
 # RCU Subsystem
 #
-CONFIG_TREE_RCU=y
 # CONFIG_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
-CONFIG_RCU_FAST_NO_HZ=y
 # CONFIG_TREE_RCU_TRACE is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=18
-CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
 CONFIG_CGROUPS=y
 # CONFIG_CGROUP_DEBUG is not set
 CONFIG_CGROUP_FREEZER=y
@@ -127,9 +77,11 @@ CONFIG_RESOURCE_COUNTERS=y
 CONFIG_CGROUP_MEM_RES_CTLR=y
 CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
 # CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
+CONFIG_CGROUP_MEM_RES_CTLR_KMEM=y
 CONFIG_CGROUP_PERF=y
 CONFIG_CGROUP_SCHED=y
 CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_CFS_BANDWIDTH is not set
 CONFIG_RT_GROUP_SCHED=y
 CONFIG_BLK_CGROUP=y
 # CONFIG_DEBUG_BLK_CGROUP is not set
@@ -155,15 +107,13 @@ CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
 # CONFIG_EXPERT is not set
 CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
 CONFIG_KALLSYMS=y
 CONFIG_KALLSYMS_ALL=y
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
-CONFIG_PCSPKR_PLATFORM=y
-CONFIG_HAVE_PCSPKR_PLATFORM=y
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
@@ -192,29 +142,16 @@ CONFIG_TRACEPOINTS=y
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
 CONFIG_JUMP_LABEL=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_OPTPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
 CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
-CONFIG_HAVE_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_PERF_EVENTS_NMI=y
 CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
 
 #
 # GCOV-based kernel profiling
 #
 # CONFIG_GCOV_KERNEL is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
 CONFIG_BASE_SMALL=0
@@ -224,14 +161,35 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 # CONFIG_MODVERSIONS is not set
 CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
-CONFIG_LBDAF=y
 CONFIG_BLK_DEV_BSG=y
 CONFIG_BLK_DEV_BSGLIB=y
 CONFIG_BLK_DEV_INTEGRITY=y
 CONFIG_BLK_DEV_THROTTLING=y
 
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+
 #
 # IO Schedulers
 #
@@ -243,15 +201,12 @@ CONFIG_CFQ_GROUP_IOSCHED=y
 CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_PADATA=y
 # CONFIG_INLINE_SPIN_TRYLOCK is not set
 # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
 # CONFIG_INLINE_SPIN_LOCK is not set
 # CONFIG_INLINE_SPIN_LOCK_BH is not set
 # CONFIG_INLINE_SPIN_LOCK_IRQ is not set
 # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
 # CONFIG_INLINE_SPIN_UNLOCK_BH is not set
 CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
 # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
@@ -273,7 +228,6 @@ CONFIG_INLINE_WRITE_UNLOCK=y
 # CONFIG_INLINE_WRITE_UNLOCK_BH is not set
 CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
 # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_FREEZER=y
 
 #
@@ -283,310 +237,58 @@ CONFIG_TICK_ONESHOT=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_SMP=y
-CONFIG_X86_MPPARSE=y
-CONFIG_X86_BIGSMP=y
-CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_INTEL_MID is not set
-# CONFIG_X86_RDC321X is not set
-# CONFIG_X86_32_NON_STANDARD is not set
-CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
-# CONFIG_X86_32_IRIS is not set
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_PARAVIRT_GUEST=y
-CONFIG_PARAVIRT_TIME_ACCOUNTING=y
-# CONFIG_XEN_PRIVILEGED_GUEST is not set
-CONFIG_KVM_CLOCK=y
-CONFIG_KVM_GUEST=y
-# CONFIG_LGUEST_GUEST is not set
-CONFIG_PARAVIRT=y
-# CONFIG_PARAVIRT_SPINLOCKS is not set
-CONFIG_PARAVIRT_CLOCK=y
-# CONFIG_PARAVIRT_DEBUG is not set
-CONFIG_NO_BOOTMEM=y
-# CONFIG_MEMTEST is not set
-# CONFIG_M386 is not set
-# CONFIG_M486 is not set
-# CONFIG_M586 is not set
-# CONFIG_M586TSC is not set
-# CONFIG_M586MMX is not set
-CONFIG_M686=y
-# CONFIG_MPENTIUMII is not set
-# CONFIG_MPENTIUMIII is not set
-# CONFIG_MPENTIUMM is not set
-# CONFIG_MPENTIUM4 is not set
-# CONFIG_MK6 is not set
-# CONFIG_MK7 is not set
-# CONFIG_MK8 is not set
-# CONFIG_MCRUSOE is not set
-# CONFIG_MEFFICEON is not set
-# CONFIG_MWINCHIPC6 is not set
-# CONFIG_MWINCHIP3D is not set
-# CONFIG_MELAN is not set
-# CONFIG_MGEODEGX1 is not set
-# CONFIG_MGEODE_LX is not set
-# CONFIG_MCYRIXIII is not set
-# CONFIG_MVIAC3_2 is not set
-# CONFIG_MVIAC7 is not set
-# CONFIG_MCORE2 is not set
-# CONFIG_MATOM is not set
-CONFIG_X86_GENERIC=y
-CONFIG_X86_INTERNODE_CACHE_SHIFT=6
-CONFIG_X86_CMPXCHG=y
-CONFIG_CMPXCHG_LOCAL=y
-CONFIG_CMPXCHG_DOUBLE=y
-CONFIG_X86_L1_CACHE_SHIFT=6
-CONFIG_X86_XADD=y
-CONFIG_X86_PPRO_FENCE=y
-CONFIG_X86_WP_WORKS_OK=y
-CONFIG_X86_INVLPG=y
-CONFIG_X86_BSWAP=y
-CONFIG_X86_POPAD_OK=y
-CONFIG_X86_ALIGNMENT_16=y
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_USE_PPRO_CHECKSUM=y
-CONFIG_X86_TSC=y
-CONFIG_X86_CMPXCHG64=y
-CONFIG_X86_CMOV=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=5
-CONFIG_X86_DEBUGCTLMSR=y
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_CYRIX_32=y
-CONFIG_CPU_SUP_AMD=y
-CONFIG_CPU_SUP_CENTAUR=y
-CONFIG_CPU_SUP_TRANSMETA_32=y
-CONFIG_CPU_SUP_UMC_32=y
-CONFIG_HPET_TIMER=y
-CONFIG_HPET_EMULATE_RTC=y
-CONFIG_DMI=y
-# CONFIG_IOMMU_HELPER is not set
-CONFIG_NR_CPUS=256
-CONFIG_SCHED_SMT=y
-CONFIG_SCHED_MC=y
-CONFIG_IRQ_TIME_ACCOUNTING=y
 CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT_VOLUNTARY is not set
 # CONFIG_PREEMPT is not set
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
-CONFIG_X86_MCE=y
-CONFIG_X86_MCE_INTEL=y
-CONFIG_X86_MCE_AMD=y
-# CONFIG_X86_ANCIENT_MCE is not set
-CONFIG_X86_MCE_THRESHOLD=y
-# CONFIG_X86_MCE_INJECT is not set
-CONFIG_X86_THERMAL_VECTOR=y
-CONFIG_VM86=y
-CONFIG_TOSHIBA=m
-CONFIG_I8K=m
-# CONFIG_X86_REBOOTFIXUPS is not set
-CONFIG_MICROCODE=m
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_MICROCODE_OLD_INTERFACE=y
-CONFIG_X86_MSR=y
-CONFIG_X86_CPUID=y
-# CONFIG_NOHIGHMEM is not set
-CONFIG_HIGHMEM4G=y
-# CONFIG_HIGHMEM64G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_HIGHMEM=y
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ILLEGAL_POINTER_VALUE=0
 CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_SPARSEMEM_STATIC=y
 CONFIG_HAVE_MEMBLOCK=y
 CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
 CONFIG_COMPACTION=y
 CONFIG_MIGRATION=y
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_MMU_NOTIFIER=y
 CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_MEMORY_FAILURE=y
-# CONFIG_HWPOISON_INJECT is not set
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
 CONFIG_CLEANCACHE=y
-CONFIG_HIGHPTE=y
-# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
-CONFIG_X86_RESERVE_LOW=64
-# CONFIG_MATH_EMULATION is not set
-CONFIG_MTRR=y
-CONFIG_MTRR_SANITIZER=y
-CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
-CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
-CONFIG_X86_PAT=y
-CONFIG_ARCH_USES_PG_UNCACHED=y
-CONFIG_EFI=y
 CONFIG_SECCOMP=y
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_250 is not set
-CONFIG_HZ_300=y
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=300
-CONFIG_SCHED_HRTICK=y
+CONFIG_CC_STACKPROTECTOR=y
 CONFIG_KEXEC=y
 CONFIG_CRASH_DUMP=y
-# CONFIG_KEXEC_JUMP is not set
-CONFIG_PHYSICAL_START=0x400000
-CONFIG_RELOCATABLE=y
-CONFIG_X86_NEED_RELOCS=y
-CONFIG_PHYSICAL_ALIGN=0x400000
-CONFIG_HOTPLUG_CPU=y
-# CONFIG_CMDLINE_BOOL is not set
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 
 #
 # Power management and ACPI options
 #
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION=""
 CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
 CONFIG_PM_RUNTIME=y
 CONFIG_PM=y
 # CONFIG_PM_DEBUG is not set
-CONFIG_ACPI=y
-CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_PROCFS=y
-CONFIG_ACPI_PROCFS_POWER=y
-CONFIG_ACPI_EC_DEBUGFS=m
-# CONFIG_ACPI_PROC_EVENT is not set
-CONFIG_ACPI_AC=y
-CONFIG_ACPI_BATTERY=y
-CONFIG_ACPI_BUTTON=y
-CONFIG_ACPI_VIDEO=m
-CONFIG_ACPI_FAN=y
-CONFIG_ACPI_DOCK=y
-CONFIG_ACPI_PROCESSOR=y
-CONFIG_ACPI_IPMI=m
-CONFIG_ACPI_HOTPLUG_CPU=y
-CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
-CONFIG_ACPI_THERMAL=y
-# CONFIG_ACPI_CUSTOM_DSDT is not set
-CONFIG_ACPI_BLACKLIST_YEAR=1999
-# CONFIG_ACPI_DEBUG is not set
-CONFIG_ACPI_PCI_SLOT=y
-CONFIG_X86_PM_TIMER=y
-CONFIG_ACPI_CONTAINER=y
-CONFIG_ACPI_SBS=m
-CONFIG_ACPI_HED=y
-CONFIG_ACPI_CUSTOM_METHOD=m
-CONFIG_ACPI_APEI=y
-CONFIG_ACPI_APEI_GHES=y
-CONFIG_ACPI_APEI_PCIEAER=y
-CONFIG_ACPI_APEI_MEMORY_FAILURE=y
-# CONFIG_ACPI_APEI_EINJ is not set
-# CONFIG_ACPI_APEI_ERST_DEBUG is not set
-CONFIG_SFI=y
-CONFIG_X86_APM_BOOT=y
-CONFIG_APM=y
-# CONFIG_APM_IGNORE_USER_SUSPEND is not set
-# CONFIG_APM_DO_ENABLE is not set
-CONFIG_APM_CPU_IDLE=y
-# CONFIG_APM_DISPLAY_BLANK is not set
-# CONFIG_APM_ALLOW_INTS is not set
 
 #
 # CPU Frequency scaling
 #
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
-CONFIG_CPU_FREQ_STAT=m
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
 
 #
 # x86 CPU frequency scaling drivers
 #
-CONFIG_X86_PCC_CPUFREQ=m
-CONFIG_X86_ACPI_CPUFREQ=m
-# CONFIG_X86_POWERNOW_K6 is not set
-CONFIG_X86_POWERNOW_K7=y
-CONFIG_X86_POWERNOW_K7_ACPI=y
-CONFIG_X86_POWERNOW_K8=m
-# CONFIG_X86_GX_SUSPMOD is not set
-# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
-CONFIG_X86_SPEEDSTEP_ICH=y
-CONFIG_X86_SPEEDSTEP_SMI=y
-CONFIG_X86_P4_CLOCKMOD=m
-# CONFIG_X86_CPUFREQ_NFORCE2 is not set
-CONFIG_X86_LONGRUN=y
-# CONFIG_X86_LONGHAUL is not set
-# CONFIG_X86_E_POWERSAVER is not set
 
 #
 # shared options
 #
-CONFIG_X86_SPEEDSTEP_LIB=y
-# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-CONFIG_INTEL_IDLE=y
+
+#
+# Memory power savings
+#
 
 #
 # Bus options (PCI etc.)
 #
 CONFIG_PCI=y
-# CONFIG_PCI_GOBIOS is not set
-# CONFIG_PCI_GOMMCONFIG is not set
-# CONFIG_PCI_GODIRECT is not set
-CONFIG_PCI_GOANY=y
-CONFIG_PCI_BIOS=y
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCI_DOMAINS=y
-# CONFIG_PCI_CNB20LE_QUIRK is not set
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
-CONFIG_PCIEAER=y
-CONFIG_PCIE_ECRC=y
-CONFIG_PCIEAER_INJECT=m
-CONFIG_PCIEASPM=y
-# CONFIG_PCIEASPM_DEBUG is not set
-CONFIG_PCIE_PME=y
-CONFIG_ARCH_SUPPORTS_MSI=y
-CONFIG_PCI_MSI=y
 # CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
 CONFIG_PCI_STUB=y
-CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
 CONFIG_PCI_IOV=y
-CONFIG_PCI_IOAPIC=y
-CONFIG_PCI_LABEL=y
-CONFIG_ISA_DMA_API=y
-# CONFIG_ISA is not set
-# CONFIG_MCA is not set
-# CONFIG_SCx200 is not set
-# CONFIG_OLPC is not set
-CONFIG_AMD_NB=y
 CONFIG_PCCARD=m
 # CONFIG_PCMCIA is not set
 CONFIG_CARDBUS=y
@@ -600,26 +302,14 @@ CONFIG_YENTA_RICOH=y
 CONFIG_YENTA_TI=y
 CONFIG_YENTA_ENE_TUNE=y
 CONFIG_YENTA_TOSHIBA=y
-CONFIG_HOTPLUG_PCI=y
-CONFIG_HOTPLUG_PCI_FAKE=m
-CONFIG_HOTPLUG_PCI_COMPAQ=m
-# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
-CONFIG_HOTPLUG_PCI_IBM=m
-CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-# CONFIG_HOTPLUG_PCI_CPCI is not set
-# CONFIG_HOTPLUG_PCI_SHPC is not set
-# CONFIG_RAPIDIO is not set
 
 #
 # Executable file formats / Emulations
 #
 CONFIG_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
 CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_HAVE_AOUT=y
 CONFIG_BINFMT_MISC=y
-CONFIG_HAVE_ATOMIC_IOMAP=y
-CONFIG_HAVE_TEXT_POKE_SMP=y
 CONFIG_NET=y
 
 #
@@ -627,6 +317,7 @@ CONFIG_NET=y
 #
 CONFIG_PACKET=y
 CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=m
 CONFIG_XFRM=y
 CONFIG_XFRM_USER=y
 CONFIG_XFRM_SUB_POLICY=y
@@ -665,6 +356,7 @@ CONFIG_INET_XFRM_MODE_BEET=m
 CONFIG_INET_LRO=y
 CONFIG_INET_DIAG=m
 CONFIG_INET_TCP_DIAG=m
+CONFIG_INET_UDP_DIAG=m
 CONFIG_TCP_CONG_ADVANCED=y
 CONFIG_TCP_CONG_BIC=m
 CONFIG_TCP_CONG_CUBIC=y
@@ -682,7 +374,7 @@ CONFIG_DEFAULT_CUBIC=y
 # CONFIG_DEFAULT_RENO is not set
 CONFIG_DEFAULT_TCP_CONG="cubic"
 CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=m
+CONFIG_IPV6=y
 CONFIG_IPV6_PRIVACY=y
 CONFIG_IPV6_ROUTER_PREF=y
 CONFIG_IPV6_ROUTE_INFO=y
@@ -718,13 +410,16 @@ CONFIG_BRIDGE_NETFILTER=y
 # Core Netfilter Configuration
 #
 CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_ACCT=m
 CONFIG_NETFILTER_NETLINK_QUEUE=m
 CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK=y
 CONFIG_NF_CONNTRACK_MARK=y
 CONFIG_NF_CONNTRACK_SECMARK=y
 CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
 CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
 CONFIG_NF_CONNTRACK_TIMESTAMP=y
 CONFIG_NF_CT_PROTO_DCCP=m
 CONFIG_NF_CT_PROTO_GRE=m
@@ -742,6 +437,7 @@ CONFIG_NF_CONNTRACK_SANE=m
 CONFIG_NF_CONNTRACK_SIP=m
 CONFIG_NF_CONNTRACK_TFTP=m
 CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
 CONFIG_NETFILTER_TPROXY=m
 CONFIG_NETFILTER_XTABLES=y
 
@@ -765,6 +461,7 @@ CONFIG_NETFILTER_XT_TARGET_DSCP=m
 CONFIG_NETFILTER_XT_TARGET_HL=m
 CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
 CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
 CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -791,6 +488,7 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m
 CONFIG_NETFILTER_XT_MATCH_DCCP=m
 CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
 CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
 CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
@@ -802,6 +500,7 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
 CONFIG_NETFILTER_XT_MATCH_MAC=m
 CONFIG_NETFILTER_XT_MATCH_MARK=m
 CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
 CONFIG_NETFILTER_XT_MATCH_OSF=m
 CONFIG_NETFILTER_XT_MATCH_OWNER=m
 CONFIG_NETFILTER_XT_MATCH_POLICY=m
@@ -861,6 +560,11 @@ CONFIG_IP_VS_SH=m
 CONFIG_IP_VS_SED=m
 CONFIG_IP_VS_NQ=m
 
+#
+# IPVS SH scheduler
+#
+CONFIG_IP_VS_SH_TAB_BITS=8
+
 #
 # IPVS application helper
 #
@@ -878,10 +582,10 @@ CONFIG_NF_CONNTRACK_IPV4=m
 CONFIG_IP_NF_IPTABLES=y
 CONFIG_IP_NF_MATCH_AH=m
 CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
 CONFIG_IP_NF_MATCH_TTL=m
 CONFIG_IP_NF_FILTER=m
 CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
 # CONFIG_IP_NF_TARGET_ULOG is not set
 CONFIG_NF_NAT=m
 CONFIG_NF_NAT_NEEDED=y
@@ -924,9 +628,9 @@ CONFIG_IP6_NF_MATCH_OPTS=m
 CONFIG_IP6_NF_MATCH_HL=m
 CONFIG_IP6_NF_MATCH_IPV6HEADER=m
 CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
 CONFIG_IP6_NF_MATCH_RT=m
 CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_TARGET_LOG=m
 CONFIG_IP6_NF_FILTER=m
 CONFIG_IP6_NF_TARGET_REJECT=m
 CONFIG_IP6_NF_MANGLE=m
@@ -982,11 +686,6 @@ CONFIG_NET_DSA=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y
 CONFIG_NET_DSA_TAG_TRAILER=y
-CONFIG_NET_DSA_MV88E6XXX=y
-CONFIG_NET_DSA_MV88E6060=y
-CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
-CONFIG_NET_DSA_MV88E6131=y
-CONFIG_NET_DSA_MV88E6123_61_65=y
 CONFIG_VLAN_8021Q=m
 CONFIG_VLAN_8021Q_GVRP=y
 # CONFIG_DECNET is not set
@@ -1023,6 +722,7 @@ CONFIG_NET_SCH_MQPRIO=m
 CONFIG_NET_SCH_CHOKE=m
 CONFIG_NET_SCH_QFQ=m
 CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
 
 #
 # Classification
@@ -1062,9 +762,9 @@ CONFIG_NET_SCH_FIFO=y
 # CONFIG_DCB is not set
 CONFIG_DNS_RESOLVER=y
 # CONFIG_BATMAN_ADV is not set
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_XPS=y
+CONFIG_OPENVSWITCH=m
+CONFIG_NETPRIO_CGROUP=m
+CONFIG_BQL=y
 
 #
 # Network testing
@@ -1075,8 +775,6 @@ CONFIG_XPS=y
 # CONFIG_CAN is not set
 # CONFIG_IRDA is not set
 CONFIG_BT=m
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
 CONFIG_BT_RFCOMM=m
 CONFIG_BT_RFCOMM_TTY=y
 CONFIG_BT_BNEP=m
@@ -1161,7 +859,10 @@ CONFIG_FW_LOADER=y
 CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_GENERIC_CPU_DEVICES is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
+CONFIG_DMA_SHARED_BUFFER=y
 CONFIG_CONNECTOR=y
 CONFIG_PROC_EVENTS=y
 # CONFIG_MTD is not set
@@ -1174,15 +875,11 @@ CONFIG_PARPORT_SERIAL=m
 # CONFIG_PARPORT_AX88796 is not set
 CONFIG_PARPORT_1284=y
 CONFIG_PARPORT_NOT_PC=y
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG_MESSAGES is not set
 
 #
 # Protocols
 #
-CONFIG_PNPACPI=y
 CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_FD=m
 # CONFIG_PARIDE is not set
 CONFIG_BLK_CPQ_DA=m
 CONFIG_BLK_CPQ_CISS_DA=m
@@ -1195,6 +892,7 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
 CONFIG_BLK_DEV_CRYPTOLOOP=m
 # CONFIG_BLK_DEV_DRBD is not set
 # CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_NVME=m
 # CONFIG_BLK_DEV_OSD is not set
 CONFIG_BLK_DEV_SX8=m
 # CONFIG_BLK_DEV_UB is not set
@@ -1205,20 +903,18 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
 # CONFIG_CDROM_PKTCDVD is not set
 # CONFIG_ATA_OVER_ETH is not set
 CONFIG_VIRTIO_BLK=m
-# CONFIG_BLK_DEV_HD is not set
 # CONFIG_BLK_DEV_RBD is not set
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_MISC_DEVICES=y
+
+#
+# Misc devices
+#
 # CONFIG_AD525X_DPOT is not set
-# CONFIG_IBM_ASM is not set
 # CONFIG_PHANTOM is not set
 # CONFIG_INTEL_MID_PTI is not set
-# CONFIG_SGI_IOC4 is not set
 CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
 CONFIG_ICS932S401=m
 CONFIG_ENCLOSURE_SERVICES=m
-# CONFIG_CS5535_MFGPT is not set
 CONFIG_HP_ILO=m
 # CONFIG_APDS9802ALS is not set
 # CONFIG_ISL29003 is not set
@@ -1229,7 +925,6 @@ CONFIG_HP_ILO=m
 # CONFIG_SENSORS_APDS990X is not set
 # CONFIG_HMC6352 is not set
 CONFIG_DS1682=m
-CONFIG_VMWARE_BALLOON=m
 # CONFIG_BMP085 is not set
 CONFIG_PCH_PHUB=m
 CONFIG_USB_SWITCH_FSA9480=m
@@ -1252,6 +947,11 @@ CONFIG_CB710_DEBUG_ASSUMPTIONS=y
 #
 CONFIG_TI_ST=m
 # CONFIG_SENSORS_LIS3_I2C is not set
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
 CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
@@ -1269,12 +969,12 @@ CONFIG_SCSI_PROC_FS=y
 #
 # SCSI support type (disk, tape, CD-ROM)
 #
-CONFIG_BLK_DEV_SD=m
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=y
 CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SG=y
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_ENCLOSURE=m
 CONFIG_SCSI_MULTI_LUN=y
@@ -1308,7 +1008,6 @@ CONFIG_BLK_DEV_3W_XXXX_RAID=m
 CONFIG_SCSI_HPSA=m
 CONFIG_SCSI_3W_9XXX=m
 CONFIG_SCSI_3W_SAS=m
-CONFIG_SCSI_ACARD=m
 CONFIG_SCSI_AACRAID=m
 CONFIG_SCSI_AIC7XXX=m
 CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
@@ -1328,10 +1027,9 @@ CONFIG_SCSI_AIC94XX=m
 CONFIG_SCSI_MVSAS=m
 # CONFIG_SCSI_MVSAS_DEBUG is not set
 CONFIG_SCSI_MVSAS_TASKLET=y
+# CONFIG_SCSI_MVUMI is not set
 CONFIG_SCSI_DPT_I2O=m
-CONFIG_SCSI_ADVANSYS=m
 CONFIG_SCSI_ARCMSR=m
-# CONFIG_SCSI_ARCMSR_AER is not set
 CONFIG_MEGARAID_NEWGEN=y
 CONFIG_MEGARAID_MM=m
 CONFIG_MEGARAID_MAILBOX=m
@@ -1340,22 +1038,13 @@ CONFIG_MEGARAID_SAS=m
 CONFIG_SCSI_MPT2SAS=m
 CONFIG_SCSI_MPT2SAS_MAX_SGE=128
 # CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_UFSHCD=m
 CONFIG_SCSI_HPTIOP=m
-CONFIG_SCSI_BUSLOGIC=m
-CONFIG_SCSI_FLASHPOINT=y
-CONFIG_VMWARE_PVSCSI=m
 CONFIG_LIBFC=m
 CONFIG_LIBFCOE=m
 CONFIG_FCOE=m
-CONFIG_FCOE_FNIC=m
 CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_EATA=m
-CONFIG_SCSI_EATA_TAGGED_QUEUE=y
-# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
-CONFIG_SCSI_EATA_MAX_TAGS=16
 CONFIG_SCSI_FUTURE_DOMAIN=m
-CONFIG_SCSI_GDTH=m
-CONFIG_SCSI_ISCI=m
 CONFIG_SCSI_IPS=m
 CONFIG_SCSI_INITIO=m
 CONFIG_SCSI_INIA100=m
@@ -1379,13 +1068,13 @@ CONFIG_SCSI_LPFC=m
 # CONFIG_SCSI_LPFC_DEBUG_FS is not set
 CONFIG_SCSI_DC395x=m
 CONFIG_SCSI_DC390T=m
-CONFIG_SCSI_NSP32=m
 # CONFIG_SCSI_DEBUG is not set
 CONFIG_SCSI_PMCRAID=m
 CONFIG_SCSI_PM8001=m
 # CONFIG_SCSI_SRP is not set
 CONFIG_SCSI_BFA_FC=m
-CONFIG_SCSI_DH=m
+CONFIG_SCSI_VIRTIO=m
+CONFIG_SCSI_DH=y
 CONFIG_SCSI_DH_RDAC=m
 CONFIG_SCSI_DH_HP_SW=m
 CONFIG_SCSI_DH_EMC=m
@@ -1397,7 +1086,6 @@ CONFIG_SCSI_OSD_DPRINT_SENSE=1
 CONFIG_ATA=y
 # CONFIG_ATA_NONSTANDARD is not set
 CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_ATA_ACPI=y
 CONFIG_SATA_PMP=y
 
 #
@@ -1444,7 +1132,6 @@ CONFIG_PATA_ATP867X=m
 CONFIG_PATA_CMD64X=m
 CONFIG_PATA_CS5520=m
 CONFIG_PATA_CS5530=m
-CONFIG_PATA_CS5535=m
 CONFIG_PATA_CS5536=m
 CONFIG_PATA_CYPRESS=m
 CONFIG_PATA_EFAR=m
@@ -1488,7 +1175,6 @@ CONFIG_PATA_RZ1000=m
 #
 # Generic fallback / legacy drivers
 #
-CONFIG_PATA_ACPI=m
 CONFIG_ATA_GENERIC=m
 # CONFIG_PATA_LEGACY is not set
 CONFIG_MD=y
@@ -1499,13 +1185,14 @@ CONFIG_MD_RAID0=m
 CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
-# CONFIG_MULTICORE_RAID456 is not set
 CONFIG_MD_MULTIPATH=m
 CONFIG_MD_FAULTY=m
 CONFIG_BLK_DEV_DM=y
 # CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=y
+# CONFIG_DM_THIN_PROVISIONING is not set
 CONFIG_DM_MIRROR=y
 CONFIG_DM_RAID=m
 CONFIG_DM_LOG_USERSPACE=m
@@ -1516,6 +1203,7 @@ CONFIG_DM_MULTIPATH_ST=m
 # CONFIG_DM_DELAY is not set
 CONFIG_DM_UEVENT=y
 # CONFIG_DM_FLAKEY is not set
+CONFIG_DM_VERITY=m
 # CONFIG_TARGET_CORE is not set
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
@@ -1530,7 +1218,6 @@ CONFIG_FUSION_LOGGING=y
 #
 CONFIG_FIREWIRE=m
 CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_OHCI_DEBUG=y
 CONFIG_FIREWIRE_SBP2=m
 # CONFIG_FIREWIRE_NET is not set
 # CONFIG_FIREWIRE_NOSY is not set
@@ -1543,50 +1230,100 @@ CONFIG_I2O_BUS=m
 CONFIG_I2O_BLOCK=m
 CONFIG_I2O_SCSI=m
 CONFIG_I2O_PROC=m
-# CONFIG_MACINTOSH_DRIVERS is not set
 CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
 CONFIG_BONDING=m
+CONFIG_DUMMY=m
+# CONFIG_EQUALIZER is not set
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IFB=m
+# CONFIG_NET_TEAM is not set
 CONFIG_MACVLAN=m
 CONFIG_MACVTAP=m
-# CONFIG_EQUALIZER is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+CONFIG_NETPOLL_TRAP=y
+CONFIG_NET_POLL_CONTROLLER=y
 CONFIG_TUN=m
 CONFIG_VETH=m
-# CONFIG_NET_SB1000 is not set
+CONFIG_VIRTIO_NET=m
 # CONFIG_ARCNET is not set
-CONFIG_MII=m
-CONFIG_PHYLIB=y
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+# CONFIG_ATM_ZATM is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+# CONFIG_ATM_AMBASSADOR is not set
+# CONFIG_ATM_HORIZON is not set
+# CONFIG_ATM_IA is not set
+# CONFIG_ATM_FORE200E is not set
+CONFIG_ATM_SOLOS=m
 
 #
-# MII PHY device drivers
+# CAIF transport drivers
 #
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MICREL_PHY=m
-CONFIG_FIXED_PHY=y
-CONFIG_MDIO_BITBANG=m
-# CONFIG_MDIO_GPIO is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
+
+#
+# Distributed Switch Architecture drivers
+#
+CONFIG_NET_DSA_MV88E6XXX=y
+CONFIG_NET_DSA_MV88E6060=y
+CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
+CONFIG_NET_DSA_MV88E6131=y
+CONFIG_NET_DSA_MV88E6123_61_65=y
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
 CONFIG_NET_VENDOR_3COM=y
 CONFIG_VORTEX=m
 CONFIG_TYPHOON=m
-CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
+CONFIG_PCNET32=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_CALXEDA_XGMAC=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
 CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
 CONFIG_NET_TULIP=y
 CONFIG_DE2104X=m
 CONFIG_DE2104X_DSL=0
@@ -1600,119 +1337,186 @@ CONFIG_WINBOND_840=m
 CONFIG_DM9102=m
 CONFIG_ULI526X=m
 CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_HP=y
 CONFIG_HP100=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_KSZ884X_PCI=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_INTEL=y
 CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_NET_VENDOR_MICREL=y
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851_MLL is not set
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
 CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
 CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
 CONFIG_NE2K_PCI=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_ETHOC=m
+# CONFIG_NET_PACKET_ENGINE is not set
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_REALTEK=y
 CONFIG_8139CP=m
 CONFIG_8139TOO=m
 # CONFIG_8139TOO_PIO is not set
 # CONFIG_8139TOO_TUNE_TWISTER is not set
 CONFIG_8139TOO_8129=y
 # CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
 CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+# CONFIG_SEEQ8005 is not set
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
 CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_SRIOV=y
+CONFIG_NET_VENDOR_SMSC=y
 CONFIG_EPIC100=m
 CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_TLAN=m
-# CONFIG_KS8842 is not set
-# CONFIG_KS8851_MLL is not set
-CONFIG_VIA_RHINE=m
-CONFIG_VIA_RHINE_MMIO=y
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_SKGE_GENESIS=y
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
+CONFIG_NET_VENDOR_STMICRO=y
 CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PLATFORM=m
+CONFIG_STMMAC_PCI=m
+# CONFIG_STMMAC_DEBUG_FS is not set
 # CONFIG_STMMAC_DA is not set
-# CONFIG_STMMAC_DUAL_MAC is not set
-CONFIG_PCH_GBE=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4VF=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGBEVF=m
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NETXEN_NIC=m
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_CASSINI=m
 CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_TEHUTI=y
 CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLCNIC=m
-CONFIG_QLGE=m
-CONFIG_BNA=m
-CONFIG_SFC=m
-CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_TI=y
+CONFIG_TLAN=m
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+CONFIG_VIA_VELOCITY=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+CONFIG_AMD_PHY=m
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+CONFIG_FIXED_PHY=y
+CONFIG_MDIO_BITBANG=m
+# CONFIG_MDIO_GPIO is not set
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+# CONFIG_SLIP is not set
+CONFIG_SLHC=m
 # CONFIG_TR is not set
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
 CONFIG_WLAN=y
 CONFIG_LIBERTAS_THINFIRM=m
 # CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
 CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_AIRO=m
 CONFIG_ATMEL=m
 CONFIG_PCI_ATMEL=m
 CONFIG_AT76C50X_USB=m
@@ -1733,10 +1537,12 @@ CONFIG_ATH5K_DEBUG=y
 CONFIG_ATH5K_PCI=y
 CONFIG_ATH9K_HW=m
 CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
 CONFIG_ATH9K=m
 CONFIG_ATH9K_PCI=y
 CONFIG_ATH9K_AHB=y
 CONFIG_ATH9K_DEBUGFS=y
+CONFIG_ATH9K_MAC_DEBUG=y
 CONFIG_ATH9K_RATE_CONTROL=y
 CONFIG_ATH9K_HTC=m
 # CONFIG_ATH9K_HTC_DEBUGFS is not set
@@ -1744,6 +1550,8 @@ CONFIG_CARL9170=m
 CONFIG_CARL9170_LEDS=y
 # CONFIG_CARL9170_DEBUGFS is not set
 CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
+# CONFIG_ATH6KL is not set
 CONFIG_B43=m
 CONFIG_B43_SSB=y
 CONFIG_B43_PCI_AUTOSELECT=y
@@ -1752,6 +1560,7 @@ CONFIG_B43_SDIO=y
 CONFIG_B43_PIO=y
 CONFIG_B43_PHY_N=y
 CONFIG_B43_PHY_LP=y
+# CONFIG_B43_PHY_HT is not set
 CONFIG_B43_LEDS=y
 CONFIG_B43_HWRNG=y
 # CONFIG_B43_DEBUG is not set
@@ -1766,6 +1575,7 @@ CONFIG_B43LEGACY_PIO=y
 CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
 # CONFIG_B43LEGACY_DMA_MODE is not set
 # CONFIG_B43LEGACY_PIO_MODE is not set
+# CONFIG_BRCMFMAC is not set
 CONFIG_HOSTAP=m
 CONFIG_HOSTAP_FIRMWARE=y
 CONFIG_HOSTAP_FIRMWARE_NVRAM=y
@@ -1782,26 +1592,16 @@ CONFIG_IPW2200_QOS=y
 # CONFIG_IPW2200_DEBUG is not set
 CONFIG_LIBIPW=m
 # CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLAGN=m
-
-#
-# Debugging Options
-#
-# CONFIG_IWLWIFI_DEBUG is not set
-CONFIG_IWLWIFI_DEBUGFS=y
-# CONFIG_IWLWIFI_DEVICE_TRACING is not set
-CONFIG_IWLWIFI_DEVICE_SVTOOL=y
-# CONFIG_IWL_P2P is not set
-CONFIG_IWLWIFI_LEGACY=m
+# CONFIG_IWLWIFI is not set
+CONFIG_IWLEGACY=m
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
 
 #
-# Debugging Options
+# iwl3945 / iwl4965 Debugging Options
 #
-# CONFIG_IWLWIFI_LEGACY_DEBUG is not set
-CONFIG_IWLWIFI_LEGACY_DEBUGFS=y
-# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
+# CONFIG_IWLEGACY_DEBUG is not set
+# CONFIG_IWLEGACY_DEBUGFS is not set
 # CONFIG_IWM is not set
 CONFIG_LIBERTAS=m
 CONFIG_LIBERTAS_USB=m
@@ -1848,111 +1648,24 @@ CONFIG_RTL8192SE=m
 CONFIG_RTL8192DE=m
 CONFIG_RTL8192CU=m
 CONFIG_RTLWIFI=m
+# CONFIG_RTLWIFI_DEBUG is not set
 CONFIG_RTL8192C_COMMON=m
 CONFIG_WL1251=m
 CONFIG_WL1251_SDIO=m
 CONFIG_WL12XX_MENU=m
 CONFIG_WL12XX=m
-# CONFIG_WL12XX_HT is not set
 CONFIG_WL12XX_SDIO=m
-# CONFIG_WL12XX_SDIO_TEST is not set
 CONFIG_WL12XX_PLATFORM_DATA=y
 CONFIG_ZD1211RW=m
 # CONFIG_ZD1211RW_DEBUG is not set
 CONFIG_MWIFIEX=m
 CONFIG_MWIFIEX_SDIO=m
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-# CONFIG_WAN is not set
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_FIRESTREAM=m
-# CONFIG_ATM_ZATM is not set
-CONFIG_ATM_NICSTAR=m
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-# CONFIG_ATM_AMBASSADOR is not set
-# CONFIG_ATM_HORIZON is not set
-# CONFIG_ATM_IA is not set
-# CONFIG_ATM_FORE200E is not set
-CONFIG_ATM_HE=m
-# CONFIG_ATM_HE_USE_SUNI is not set
-CONFIG_ATM_SOLOS=m
-
-#
-# CAIF transport drivers
-#
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-# CONFIG_SLIP is not set
-CONFIG_SLHC=m
-# CONFIG_NET_FC is not set
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NETPOLL_TRAP=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_VIRTIO_NET=m
+# CONFIG_MWIFIEX_PCIE is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
 CONFIG_VMXNET3=m
 CONFIG_ISDN=y
 CONFIG_ISDN_I4L=m
@@ -2050,19 +1763,11 @@ CONFIG_ISDN_DIVAS_PRIPCI=y
 CONFIG_ISDN_DIVAS_DIVACAPI=m
 CONFIG_ISDN_DIVAS_USERIDI=m
 CONFIG_ISDN_DIVAS_MAINT=m
-CONFIG_ISDN_DRV_GIGASET=m
-CONFIG_GIGASET_CAPI=y
-# CONFIG_GIGASET_I4L is not set
-# CONFIG_GIGASET_DUMMYLL is not set
-CONFIG_GIGASET_BASE=m
-CONFIG_GIGASET_M105=m
-CONFIG_GIGASET_M101=m
-# CONFIG_GIGASET_DEBUG is not set
+# CONFIG_ISDN_DRV_GIGASET is not set
 CONFIG_HYSDN=m
 CONFIG_HYSDN_CAPI=y
 # CONFIG_MISDN is not set
 CONFIG_ISDN_HDLC=m
-# CONFIG_PHONE is not set
 
 #
 # Input device support
@@ -2096,6 +1801,7 @@ CONFIG_KEYBOARD_ATKBD=y
 CONFIG_KEYBOARD_GPIO=m
 CONFIG_KEYBOARD_GPIO_POLLED=m
 # CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
 # CONFIG_KEYBOARD_MATRIX is not set
 # CONFIG_KEYBOARD_LM8323 is not set
 # CONFIG_KEYBOARD_MAX7359 is not set
@@ -2105,13 +1811,13 @@ CONFIG_KEYBOARD_GPIO_POLLED=m
 # CONFIG_KEYBOARD_OPENCORES is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_KEYBOARD_SUNKBD is not set
+CONFIG_KEYBOARD_OMAP4=m
 # CONFIG_KEYBOARD_XTKBD is not set
 CONFIG_INPUT_MOUSE=y
 CONFIG_MOUSE_PS2=m
 CONFIG_MOUSE_PS2_ALPS=y
 CONFIG_MOUSE_PS2_LOGIPS2PP=y
 CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_LIFEBOOK=y
 CONFIG_MOUSE_PS2_TRACKPOINT=y
 CONFIG_MOUSE_PS2_ELANTECH=y
 CONFIG_MOUSE_PS2_SENTELIC=y
@@ -2122,18 +1828,17 @@ CONFIG_MOUSE_BCM5974=m
 CONFIG_MOUSE_VSXXXAA=m
 # CONFIG_MOUSE_GPIO is not set
 CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
 # CONFIG_INPUT_JOYSTICK is not set
 # CONFIG_INPUT_TABLET is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 CONFIG_INPUT_MISC=y
 # CONFIG_INPUT_AD714X is not set
-CONFIG_INPUT_PCSPKR=m
+# CONFIG_INPUT_BMA150 is not set
 # CONFIG_INPUT_MMA8450 is not set
 # CONFIG_INPUT_MPU3050 is not set
-CONFIG_INPUT_APANEL=m
-CONFIG_INPUT_WISTRON_BTNS=m
-CONFIG_INPUT_ATLAS_BTNS=m
-CONFIG_INPUT_ATI_REMOTE=m
+# CONFIG_INPUT_GP2A is not set
+# CONFIG_INPUT_GPIO_TILT_POLLED is not set
 CONFIG_INPUT_ATI_REMOTE2=m
 CONFIG_INPUT_KEYSPAN_REMOTE=m
 # CONFIG_INPUT_KXTJ9 is not set
@@ -2150,9 +1855,7 @@ CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
 # Hardware I/O ports
 #
 CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
 CONFIG_SERIO_SERPORT=m
-# CONFIG_SERIO_CT82C710 is not set
 # CONFIG_SERIO_PARKBD is not set
 # CONFIG_SERIO_PCIPS2 is not set
 CONFIG_SERIO_LIBPS2=y
@@ -2167,6 +1870,7 @@ CONFIG_SERIO_ALTERA_PS2=m
 CONFIG_VT=y
 CONFIG_CONSOLE_TRANSLATIONS=y
 CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
 CONFIG_HW_CONSOLE=y
 CONFIG_VT_HW_CONSOLE_BINDING=y
 CONFIG_UNIX98_PTYS=y
@@ -2178,7 +1882,6 @@ CONFIG_CYCLADES=m
 # CONFIG_CYZ_INTR is not set
 # CONFIG_MOXA_INTELLIO is not set
 # CONFIG_MOXA_SMARTIO is not set
-CONFIG_SYNCLINK=m
 CONFIG_SYNCLINKMP=m
 CONFIG_SYNCLINK_GT=m
 CONFIG_NOZOMI=m
@@ -2193,9 +1896,7 @@ CONFIG_N_GSM=m
 #
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_FIX_EARLYCON_MEM=y
 CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_PNP=y
 CONFIG_SERIAL_8250_NR_UARTS=32
 CONFIG_SERIAL_8250_RUNTIME_UARTS=4
 CONFIG_SERIAL_8250_EXTENDED=y
@@ -2220,7 +1921,7 @@ CONFIG_PRINTER=m
 CONFIG_LP_CONSOLE=y
 CONFIG_PPDEV=m
 CONFIG_HVC_DRIVER=y
-CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_CONSOLE=y
 CONFIG_IPMI_HANDLER=m
 # CONFIG_IPMI_PANIC_EVENT is not set
 CONFIG_IPMI_DEVICE_INTERFACE=m
@@ -2229,25 +1930,13 @@ CONFIG_IPMI_WATCHDOG=m
 CONFIG_IPMI_POWEROFF=m
 CONFIG_HW_RANDOM=y
 CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_INTEL=m
-CONFIG_HW_RANDOM_AMD=m
-CONFIG_HW_RANDOM_GEODE=m
-CONFIG_HW_RANDOM_VIA=m
 CONFIG_HW_RANDOM_VIRTIO=m
 CONFIG_NVRAM=y
 CONFIG_R3964=m
 # CONFIG_APPLICOM is not set
-CONFIG_SONYPI=m
-CONFIG_MWAVE=m
-CONFIG_PC8736x_GPIO=m
-CONFIG_NSC_GPIO=m
 CONFIG_RAW_DRIVER=y
 CONFIG_MAX_RAW_DEVS=8192
-CONFIG_HPET=y
-# CONFIG_HPET_MMAP is not set
-CONFIG_HANGCHECK_TIMER=m
 # CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
 # CONFIG_RAMOOPS is not set
 CONFIG_I2C=m
 CONFIG_I2C_BOARDINFO=y
@@ -2266,19 +1955,12 @@ CONFIG_I2C_ALGOPCA=m
 #
 # PC SMBus host controller drivers
 #
-CONFIG_I2C_ALI1535=m
-CONFIG_I2C_ALI1563=m
-CONFIG_I2C_ALI15X3=m
 CONFIG_I2C_AMD756=m
-CONFIG_I2C_AMD756_S4882=m
 CONFIG_I2C_AMD8111=m
 CONFIG_I2C_I801=m
 CONFIG_I2C_ISCH=m
 CONFIG_I2C_PIIX4=m
 CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_NFORCE2_S4985=m
-CONFIG_I2C_SIS5595=m
-CONFIG_I2C_SIS630=m
 CONFIG_I2C_SIS96X=m
 CONFIG_I2C_VIA=m
 CONFIG_I2C_VIAPRO=m
@@ -2286,11 +1968,12 @@ CONFIG_I2C_VIAPRO=m
 #
 # ACPI drivers
 #
-CONFIG_I2C_SCMI=m
 
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
+# CONFIG_I2C_DESIGNWARE_PCI is not set
+# CONFIG_I2C_EG20T is not set
 # CONFIG_I2C_GPIO is not set
 # CONFIG_I2C_INTEL_MID is not set
 # CONFIG_I2C_OCORES is not set
@@ -2298,7 +1981,6 @@ CONFIG_I2C_PCA_PLATFORM=m
 # CONFIG_I2C_PXA_PCI is not set
 CONFIG_I2C_SIMTEC=m
 # CONFIG_I2C_XILINX is not set
-# CONFIG_I2C_EG20T is not set
 
 #
 # External I2C/SMBus adapter drivers
@@ -2313,11 +1995,17 @@ CONFIG_I2C_TINY_USB=m
 # Other I2C/SMBus bus drivers
 #
 CONFIG_I2C_STUB=m
-CONFIG_SCx200_ACB=m
 # CONFIG_I2C_DEBUG_CORE is not set
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
 # CONFIG_SPI is not set
+CONFIG_HSI=m
+CONFIG_HSI_BOARDINFO=y
+
+#
+# HSI clients
+#
+CONFIG_HSI_CHAR=m
 
 #
 # PPS support
@@ -2344,8 +2032,6 @@ CONFIG_GPIO_SYSFS=y
 # Memory mapped GPIO drivers:
 #
 # CONFIG_GPIO_GENERIC_PLATFORM is not set
-# CONFIG_GPIO_IT8761E is not set
-CONFIG_GPIO_SCH=m
 # CONFIG_GPIO_VX855 is not set
 
 #
@@ -2360,9 +2046,6 @@ CONFIG_GPIO_SCH=m
 #
 # PCI GPIO expanders:
 #
-# CONFIG_GPIO_CS5535 is not set
-# CONFIG_GPIO_LANGWELL is not set
-# CONFIG_GPIO_PCH is not set
 # CONFIG_GPIO_ML_IOH is not set
 # CONFIG_GPIO_RDC321X is not set
 
@@ -2402,6 +2085,7 @@ CONFIG_W1_SLAVE_DS2433=m
 CONFIG_W1_SLAVE_DS2433_CRC=y
 CONFIG_W1_SLAVE_DS2760=m
 CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
 CONFIG_W1_SLAVE_BQ27000=m
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
@@ -2409,14 +2093,17 @@ CONFIG_POWER_SUPPLY=y
 # CONFIG_TEST_POWER is not set
 # CONFIG_BATTERY_DS2760 is not set
 # CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
 # CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_BQ20Z75 is not set
+# CONFIG_BATTERY_SBS is not set
 # CONFIG_BATTERY_BQ27x00 is not set
 # CONFIG_BATTERY_MAX17040 is not set
 # CONFIG_BATTERY_MAX17042 is not set
 # CONFIG_CHARGER_ISP1704 is not set
 # CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
 # CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_SMB347 is not set
 CONFIG_HWMON=y
 CONFIG_HWMON_VID=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2424,8 +2111,6 @@ CONFIG_HWMON_VID=m
 #
 # Native drivers
 #
-CONFIG_SENSORS_ABITUGURU=m
-CONFIG_SENSORS_ABITUGURU3=m
 CONFIG_SENSORS_AD7414=m
 CONFIG_SENSORS_AD7418=m
 CONFIG_SENSORS_ADM1021=m
@@ -2439,10 +2124,6 @@ CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
 CONFIG_SENSORS_ADT7475=m
 CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_K8TEMP=m
-CONFIG_SENSORS_K10TEMP=m
-CONFIG_SENSORS_FAM15H_POWER=m
-CONFIG_SENSORS_ASB100=m
 CONFIG_SENSORS_ATXP1=m
 CONFIG_SENSORS_DS620=m
 CONFIG_SENSORS_DS1621=m
@@ -2450,12 +2131,10 @@ CONFIG_SENSORS_I5K_AMB=m
 CONFIG_SENSORS_F71805F=m
 CONFIG_SENSORS_F71882FG=m
 CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_FSCHMD=m
 CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
 # CONFIG_SENSORS_GPIO_FAN is not set
-CONFIG_SENSORS_CORETEMP=m
 CONFIG_SENSORS_IBMAEM=m
 CONFIG_SENSORS_IBMPEX=m
 CONFIG_SENSORS_IT87=m
@@ -2485,6 +2164,7 @@ CONFIG_SENSORS_MAX1668=m
 CONFIG_SENSORS_MAX6639=m
 CONFIG_SENSORS_MAX6642=m
 CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_MCP3021=m
 CONFIG_SENSORS_NTC_THERMISTOR=m
 CONFIG_SENSORS_PC87360=m
 CONFIG_SENSORS_PC87427=m
@@ -2493,11 +2173,13 @@ CONFIG_PMBUS=m
 CONFIG_SENSORS_PMBUS=m
 CONFIG_SENSORS_ADM1275=m
 CONFIG_SENSORS_LM25066=m
+# CONFIG_SENSORS_LTC2978 is not set
 CONFIG_SENSORS_MAX16064=m
 CONFIG_SENSORS_MAX34440=m
 CONFIG_SENSORS_MAX8688=m
 CONFIG_SENSORS_UCD9000=m
 CONFIG_SENSORS_UCD9200=m
+# CONFIG_SENSORS_ZL6100 is not set
 CONFIG_SENSORS_SHT15=m
 CONFIG_SENSORS_SHT21=m
 CONFIG_SENSORS_SIS5595=m
@@ -2519,7 +2201,6 @@ CONFIG_SENSORS_THMC50=m
 CONFIG_SENSORS_TMP102=m
 CONFIG_SENSORS_TMP401=m
 CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_VIA_CPUTEMP=m
 CONFIG_SENSORS_VIA686A=m
 CONFIG_SENSORS_VT1211=m
 CONFIG_SENSORS_VT8231=m
@@ -2533,13 +2214,10 @@ CONFIG_SENSORS_W83L785TS=m
 CONFIG_SENSORS_W83L786NG=m
 CONFIG_SENSORS_W83627HF=m
 CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_APPLESMC=m
 
 #
 # ACPI drivers
 #
-CONFIG_SENSORS_ACPI_POWER=m
-CONFIG_SENSORS_ATK0110=m
 CONFIG_THERMAL=y
 CONFIG_THERMAL_HWMON=y
 CONFIG_WATCHDOG=y
@@ -2550,41 +2228,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
-# CONFIG_ACQUIRE_WDT is not set
-# CONFIG_ADVANTECH_WDT is not set
-CONFIG_ALIM1535_WDT=m
 CONFIG_ALIM7101_WDT=m
-CONFIG_F71808E_WDT=m
-CONFIG_SP5100_TCO=m
-# CONFIG_SC520_WDT is not set
-CONFIG_SBC_FITPC2_WATCHDOG=m
-# CONFIG_EUROTECH_WDT is not set
-CONFIG_IB700_WDT=m
-CONFIG_IBMASR=m
-# CONFIG_WAFER_WDT is not set
-CONFIG_I6300ESB_WDT=m
-CONFIG_ITCO_WDT=m
-# CONFIG_ITCO_VENDOR_SUPPORT is not set
-CONFIG_IT8712F_WDT=m
-CONFIG_IT87_WDT=m
-CONFIG_HP_WATCHDOG=m
-CONFIG_HPWDT_NMI_DECODING=y
-# CONFIG_SC1200_WDT is not set
-# CONFIG_PC87413_WDT is not set
-CONFIG_NV_TCO=m
-# CONFIG_60XX_WDT is not set
-# CONFIG_SBC8360_WDT is not set
-# CONFIG_SBC7240_WDT is not set
-# CONFIG_CPU5_WDT is not set
-CONFIG_SMSC_SCH311X_WDT=m
-# CONFIG_SMSC37B787_WDT is not set
-CONFIG_W83627HF_WDT=m
-CONFIG_W83697HF_WDT=m
-CONFIG_W83697UG_WDT=m
-CONFIG_W83877F_WDT=m
-CONFIG_W83977F_WDT=m
-CONFIG_MACHZ_WDT=m
-# CONFIG_SBC_EPX_C3_WATCHDOG is not set
 
 #
 # PCI-based Watchdog Cards
@@ -2618,7 +2262,10 @@ CONFIG_BCMA_POSSIBLE=y
 # Broadcom specific AMBA
 #
 # CONFIG_BCMA is not set
-CONFIG_MFD_SUPPORT=y
+
+#
+# Multifunction device drivers
+#
 CONFIG_MFD_CORE=m
 CONFIG_MFD_SM501=m
 CONFIG_MFD_SM501_GPIO=y
@@ -2627,11 +2274,11 @@ CONFIG_MFD_SM501_GPIO=y
 # CONFIG_TPS6105X is not set
 # CONFIG_TPS65010 is not set
 # CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65217 is not set
 # CONFIG_MFD_TMIO is not set
 CONFIG_MFD_WM8400=m
 # CONFIG_MFD_PCF50633 is not set
 # CONFIG_ABX500_CORE is not set
-CONFIG_MFD_CS5535=m
 # CONFIG_MFD_TIMBERDALE is not set
 CONFIG_LPC_SCH=m
 # CONFIG_MFD_RDC321X is not set
@@ -2659,25 +2306,23 @@ CONFIG_VIDEO_SAA7146=m
 CONFIG_VIDEO_SAA7146_VV=m
 CONFIG_RC_CORE=m
 CONFIG_LIRC=m
-CONFIG_RC_MAP=m
+# CONFIG_RC_MAP is not set
 CONFIG_IR_NEC_DECODER=m
 CONFIG_IR_RC5_DECODER=m
 CONFIG_IR_RC6_DECODER=m
 CONFIG_IR_JVC_DECODER=m
 CONFIG_IR_SONY_DECODER=m
 CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
 CONFIG_IR_MCE_KBD_DECODER=m
 CONFIG_IR_LIRC_CODEC=m
-CONFIG_IR_ENE=m
+# CONFIG_RC_ATI_REMOTE is not set
 CONFIG_IR_IMON=m
 CONFIG_IR_MCEUSB=m
-CONFIG_IR_ITE_CIR=m
-CONFIG_IR_FINTEK=m
-CONFIG_IR_NUVOTON=m
 CONFIG_IR_REDRAT3=m
 CONFIG_IR_STREAMZAP=m
-CONFIG_IR_WINBOND_CIR=m
 CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
 CONFIG_MEDIA_ATTACH=y
 CONFIG_MEDIA_TUNER=m
 CONFIG_MEDIA_TUNER_CUSTOMISE=y
@@ -2694,6 +2339,7 @@ CONFIG_MEDIA_TUNER_TEA5761=m
 CONFIG_MEDIA_TUNER_TEA5767=m
 CONFIG_MEDIA_TUNER_MT20XX=m
 CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2063=m
 CONFIG_MEDIA_TUNER_MT2266=m
 CONFIG_MEDIA_TUNER_MT2131=m
 CONFIG_MEDIA_TUNER_QT1010=m
@@ -2717,7 +2363,6 @@ CONFIG_VIDEO_TVEEPROM=m
 CONFIG_VIDEO_TUNER=m
 CONFIG_VIDEOBUF2_CORE=m
 CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
 CONFIG_VIDEOBUF2_VMALLOC=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
@@ -2798,64 +2443,6 @@ CONFIG_VIDEO_UPD64083=m
 #
 CONFIG_VIDEO_M52790=m
 # CONFIG_VIDEO_VIVI is not set
-CONFIG_VIDEO_BT848=m
-CONFIG_VIDEO_BT848_DVB=y
-CONFIG_VIDEO_BWQCAM=m
-CONFIG_VIDEO_CQCAM=m
-CONFIG_VIDEO_W9966=m
-CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
-CONFIG_VIDEO_MEYE=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_TIMBERDALE=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX23885=m
-# CONFIG_MEDIA_ALTERA_CI is not set
-CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_IVTV=m
-CONFIG_VIDEO_FB_IVTV=m
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_SAA7164=m
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_SR030PC30=m
-CONFIG_VIDEO_VIA_CAMERA=m
-CONFIG_VIDEO_NOON010PC30=m
-# CONFIG_VIDEO_M5MOLS is not set
-CONFIG_SOC_CAMERA=m
-CONFIG_SOC_CAMERA_IMX074=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_SOC_CAMERA_MT9T031=m
-CONFIG_SOC_CAMERA_MT9T112=m
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_SOC_CAMERA_RJ54N1=m
-CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_SOC_CAMERA_PLATFORM=m
-CONFIG_SOC_CAMERA_OV2640=m
-CONFIG_SOC_CAMERA_OV5642=m
-CONFIG_SOC_CAMERA_OV6650=m
-CONFIG_SOC_CAMERA_OV772X=m
-CONFIG_SOC_CAMERA_OV9640=m
-CONFIG_SOC_CAMERA_OV9740=m
 CONFIG_V4L_USB_DRIVERS=y
 CONFIG_USB_VIDEO_CLASS=m
 CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
@@ -2869,6 +2456,7 @@ CONFIG_USB_GSPCA_CPIA1=m
 CONFIG_USB_GSPCA_ETOMS=m
 CONFIG_USB_GSPCA_FINEPIX=m
 CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
 CONFIG_USB_GSPCA_KINECT=m
 CONFIG_USB_GSPCA_KONICA=m
 CONFIG_USB_GSPCA_MARS=m
@@ -2899,6 +2487,7 @@ CONFIG_USB_GSPCA_STK014=m
 CONFIG_USB_GSPCA_STV0680=m
 CONFIG_USB_GSPCA_SUNPLUS=m
 CONFIG_USB_GSPCA_T613=m
+# CONFIG_USB_GSPCA_TOPRO is not set
 CONFIG_USB_GSPCA_TV8532=m
 CONFIG_USB_GSPCA_VC032X=m
 CONFIG_USB_GSPCA_VICAM=m
@@ -2918,26 +2507,81 @@ CONFIG_VIDEO_CX231XX=m
 CONFIG_VIDEO_CX231XX_RC=y
 CONFIG_VIDEO_CX231XX_ALSA=m
 CONFIG_VIDEO_CX231XX_DVB=m
+# CONFIG_VIDEO_TM6000 is not set
 CONFIG_VIDEO_USBVISION=m
 # CONFIG_USB_ET61X251 is not set
 # CONFIG_USB_SN9C102 is not set
 CONFIG_USB_PWC=m
 # CONFIG_USB_PWC_DEBUG is not set
 CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_VIDEO_CPIA2=m
 CONFIG_USB_ZR364XX=m
 CONFIG_USB_STKWEBCAM=m
 CONFIG_USB_S2255=m
+CONFIG_V4L_PCI_DRIVERS=y
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_CX23885=m
+# CONFIG_MEDIA_ALTERA_CI is not set
+# CONFIG_VIDEO_CX25821 is not set
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+# CONFIG_V4L_ISA_PARPORT_DRIVERS is not set
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_TIMBERDALE=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_IMX074=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV5642=m
+CONFIG_SOC_CAMERA_OV6650=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_SOC_CAMERA_OV9740=m
 CONFIG_V4L_MEM2MEM_DRIVERS=y
 # CONFIG_VIDEO_MEM2MEM_TESTDEV is not set
 CONFIG_RADIO_ADAPTERS=y
-CONFIG_RADIO_MAXIRADIO=m
-CONFIG_I2C_SI4713=m
-CONFIG_RADIO_SI4713=m
-CONFIG_USB_DSBR=m
 CONFIG_RADIO_SI470X=y
 CONFIG_USB_SI470X=m
 CONFIG_I2C_SI470X=m
 CONFIG_USB_MR800=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_KEENE=m
 # CONFIG_RADIO_TEA5764 is not set
 # CONFIG_RADIO_SAA7706H is not set
 # CONFIG_RADIO_TEF6862 is not set
@@ -2988,6 +2632,7 @@ CONFIG_DVB_USB_DTT200U=m
 CONFIG_DVB_USB_OPERA1=m
 CONFIG_DVB_USB_AF9005=m
 CONFIG_DVB_USB_AF9005_REMOTE=m
+# CONFIG_DVB_USB_PCTV452E is not set
 CONFIG_DVB_USB_DW2102=m
 CONFIG_DVB_USB_CINERGY_T2=m
 CONFIG_DVB_USB_ANYSEE=m
@@ -2996,9 +2641,13 @@ CONFIG_DVB_USB_AF9015=m
 CONFIG_DVB_USB_CE6230=m
 CONFIG_DVB_USB_FRIIO=m
 CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6007=m
 CONFIG_DVB_USB_AZ6027=m
 CONFIG_DVB_USB_LME2510=m
 CONFIG_DVB_USB_TECHNISAT_USB2=m
+# CONFIG_DVB_USB_IT913X is not set
+# CONFIG_DVB_USB_MXL111SF is not set
+CONFIG_DVB_USB_RTL28XXU=m
 CONFIG_DVB_TTUSB_BUDGET=m
 CONFIG_DVB_TTUSB_DEC=m
 CONFIG_SMS_SIANO_MDTV=m
@@ -3109,6 +2758,7 @@ CONFIG_DVB_CX24116=m
 CONFIG_DVB_SI21XX=m
 CONFIG_DVB_DS3000=m
 CONFIG_DVB_MB86A16=m
+CONFIG_DVB_TDA10071=m
 
 #
 # DVB-T (terrestrial) frontends
@@ -3132,8 +2782,10 @@ CONFIG_DVB_DIB9000=m
 CONFIG_DVB_TDA10048=m
 CONFIG_DVB_AF9013=m
 CONFIG_DVB_EC100=m
+CONFIG_DVB_HD29L2=m
 CONFIG_DVB_STV0367=m
 CONFIG_DVB_CXD2820R=m
+CONFIG_DVB_RTL2830=m
 
 #
 # DVB-C (cable) frontends
@@ -3174,14 +2826,18 @@ CONFIG_DVB_TUNER_DIB0090=m
 # SEC control devices for DVB-S
 #
 CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
 CONFIG_DVB_ISL6405=m
 CONFIG_DVB_ISL6421=m
 CONFIG_DVB_ISL6423=m
+CONFIG_DVB_A8293=m
 CONFIG_DVB_LGS8GL5=m
 CONFIG_DVB_LGS8GXX=m
 CONFIG_DVB_ATBM8830=m
 CONFIG_DVB_TDA665x=m
 CONFIG_DVB_IX2505V=m
+CONFIG_DVB_IT913X_FE=m
+CONFIG_DVB_M88RS2000=m
 
 #
 # Tools to develop new frontends
@@ -3191,50 +2847,32 @@ CONFIG_DVB_IX2505V=m
 #
 # Graphics support
 #
-CONFIG_AGP=y
-CONFIG_AGP_ALI=y
-CONFIG_AGP_ATI=y
-CONFIG_AGP_AMD=y
-CONFIG_AGP_AMD64=y
-CONFIG_AGP_INTEL=y
-CONFIG_AGP_NVIDIA=y
-CONFIG_AGP_SIS=y
-CONFIG_AGP_SWORKS=y
-CONFIG_AGP_VIA=y
-CONFIG_AGP_EFFICEON=y
 CONFIG_VGA_ARB=y
 CONFIG_VGA_ARB_MAX_GPUS=16
-CONFIG_VGA_SWITCHEROO=y
 CONFIG_DRM=m
+CONFIG_DRM_USB=m
 CONFIG_DRM_KMS_HELPER=m
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
 CONFIG_DRM_TTM=m
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
-CONFIG_DRM_RADEON=m
-CONFIG_DRM_RADEON_KMS=y
-CONFIG_DRM_I810=m
-CONFIG_DRM_I915=m
-CONFIG_DRM_I915_KMS=y
+
+#
+# I2C encoder or helper chips
+#
 CONFIG_DRM_MGA=m
-CONFIG_DRM_SIS=m
 CONFIG_DRM_VIA=m
 CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_UDL=m
 CONFIG_STUB_POULSBO=m
 CONFIG_VGASTATE=m
 CONFIG_VIDEO_OUTPUT_CONTROL=m
 CONFIG_FB=y
 # CONFIG_FIRMWARE_EDID is not set
 CONFIG_FB_DDC=m
-CONFIG_FB_BOOT_VESA_SUPPORT=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
 # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
 # CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=m
 # CONFIG_FB_WMT_GE_ROPS is not set
 CONFIG_FB_DEFERRED_IO=y
 CONFIG_FB_SVGALIB=m
@@ -3249,15 +2887,9 @@ CONFIG_FB_TILEBLITTING=y
 CONFIG_FB_CIRRUS=m
 # CONFIG_FB_PM2 is not set
 # CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_ARC is not set
 # CONFIG_FB_ASILIANT is not set
 # CONFIG_FB_IMSTT is not set
-CONFIG_FB_VGA16=m
 # CONFIG_FB_UVESA is not set
-CONFIG_FB_VESA=y
-CONFIG_FB_EFI=y
-# CONFIG_FB_N411 is not set
-# CONFIG_FB_HGA is not set
 # CONFIG_FB_S1D13XXX is not set
 CONFIG_FB_NVIDIA=m
 CONFIG_FB_NVIDIA_I2C=y
@@ -3267,20 +2899,13 @@ CONFIG_FB_RIVA=m
 # CONFIG_FB_RIVA_I2C is not set
 # CONFIG_FB_RIVA_DEBUG is not set
 CONFIG_FB_RIVA_BACKLIGHT=y
-CONFIG_FB_I810=m
-CONFIG_FB_I810_GTF=y
-CONFIG_FB_I810_I2C=y
-# CONFIG_FB_LE80578 is not set
+CONFIG_FB_I740=m
 CONFIG_FB_MATROX=m
 CONFIG_FB_MATROX_MILLENIUM=y
 CONFIG_FB_MATROX_MYSTIQUE=y
 CONFIG_FB_MATROX_G=y
 CONFIG_FB_MATROX_I2C=m
 CONFIG_FB_MATROX_MAVEN=m
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
 CONFIG_FB_ATY128=m
 CONFIG_FB_ATY128_BACKLIGHT=y
 CONFIG_FB_ATY=m
@@ -3290,13 +2915,7 @@ CONFIG_FB_ATY_GX=y
 CONFIG_FB_ATY_BACKLIGHT=y
 CONFIG_FB_S3=m
 CONFIG_FB_S3_DDC=y
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-CONFIG_FB_SAVAGE_ACCEL=y
 # CONFIG_FB_SIS is not set
-CONFIG_FB_VIA=m
-# CONFIG_FB_VIA_DIRECT_PROCFS is not set
-CONFIG_FB_VIA_X_COMPATIBILITY=y
 CONFIG_FB_NEOMAGIC=m
 CONFIG_FB_KYRO=m
 CONFIG_FB_3DFX=m
@@ -3308,12 +2927,9 @@ CONFIG_FB_TRIDENT=m
 # CONFIG_FB_ARK is not set
 # CONFIG_FB_PM3 is not set
 # CONFIG_FB_CARMINE is not set
-CONFIG_FB_GEODE=y
-CONFIG_FB_GEODE_LX=y
-CONFIG_FB_GEODE_GX=y
-# CONFIG_FB_GEODE_GX1 is not set
 # CONFIG_FB_TMIO is not set
 CONFIG_FB_SM501=m
+# CONFIG_FB_SMSCUFX is not set
 CONFIG_FB_UDL=m
 CONFIG_FB_VIRTUAL=m
 CONFIG_FB_METRONOME=m
@@ -3321,32 +2937,19 @@ CONFIG_FB_MB862XX=m
 CONFIG_FB_MB862XX_PCI_GDC=y
 CONFIG_FB_MB862XX_I2C=y
 # CONFIG_FB_BROADSHEET is not set
+# CONFIG_EXYNOS_VIDEO is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
 CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 # CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_BACKLIGHT_PROGEAR=m
-CONFIG_BACKLIGHT_APPLE=m
-# CONFIG_BACKLIGHT_SAHARA is not set
 # CONFIG_BACKLIGHT_ADP8860 is not set
 # CONFIG_BACKLIGHT_ADP8870 is not set
-
-#
-# Display device support
-#
-CONFIG_DISPLAY_SUPPORT=m
-
-#
-# Display hardware drivers
-#
+# CONFIG_BACKLIGHT_LP855X is not set
 
 #
 # Console display driver support
 #
-CONFIG_VGA_CONSOLE=y
-CONFIG_VGACON_SOFT_SCROLLBACK=y
-CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
@@ -3384,7 +2987,7 @@ CONFIG_SND_DEBUG=y
 # CONFIG_SND_DEBUG_VERBOSE is not set
 CONFIG_SND_PCM_XRUN_DEBUG=y
 CONFIG_SND_VMASTER=y
-CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_KCTL_JACK=y
 CONFIG_SND_RAWMIDI_SEQ=m
 CONFIG_SND_OPL3_LIB_SEQ=m
 # CONFIG_SND_OPL4_LIB_SEQ is not set
@@ -3395,7 +2998,6 @@ CONFIG_SND_OPL3_LIB=m
 CONFIG_SND_VX_LIB=m
 CONFIG_SND_AC97_CODEC=m
 CONFIG_SND_DRIVERS=y
-CONFIG_SND_PCSP=m
 CONFIG_SND_DUMMY=m
 CONFIG_SND_ALOOP=m
 CONFIG_SND_VIRMIDI=m
@@ -3406,15 +3008,10 @@ CONFIG_SND_MPU401=m
 CONFIG_SND_PORTMAN2X4=m
 CONFIG_SND_AC97_POWER_SAVE=y
 CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-CONFIG_SND_SB_COMMON=m
-CONFIG_SND_SB16_DSP=m
 CONFIG_SND_TEA575X=m
 CONFIG_SND_PCI=y
 CONFIG_SND_AD1889=m
 CONFIG_SND_ALS300=m
-CONFIG_SND_ALS4000=m
-CONFIG_SND_ALI5451=m
-CONFIG_SND_ASIHPI=m
 CONFIG_SND_ATIIXP=m
 CONFIG_SND_ATIIXP_MODEM=m
 CONFIG_SND_AU8810=m
@@ -3431,7 +3028,6 @@ CONFIG_SND_OXYGEN=m
 CONFIG_SND_CS4281=m
 CONFIG_SND_CS46XX=m
 CONFIG_SND_CS46XX_NEW_DSP=y
-CONFIG_SND_CS5530=m
 CONFIG_SND_CS5535AUDIO=m
 CONFIG_SND_CTXFI=m
 CONFIG_SND_DARLA20=m
@@ -3498,7 +3094,6 @@ CONFIG_SND_RIPTIDE=m
 CONFIG_SND_RME32=m
 CONFIG_SND_RME96=m
 CONFIG_SND_RME9652=m
-CONFIG_SND_SIS7019=m
 CONFIG_SND_SONICVIBES=m
 CONFIG_SND_TRIDENT=m
 CONFIG_SND_VIA82XX=m
@@ -3509,20 +3104,18 @@ CONFIG_SND_YMFPCI=m
 CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
 CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_USX2Y=m
 CONFIG_SND_USB_CAIAQ=m
 CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_US122L=m
 CONFIG_SND_USB_6FIRE=m
 CONFIG_SND_FIREWIRE=y
 CONFIG_SND_FIREWIRE_LIB=m
 CONFIG_SND_FIREWIRE_SPEAKERS=m
 # CONFIG_SND_ISIGHT is not set
-# CONFIG_SND_SOC is not set
 # CONFIG_SOUND_PRIME is not set
 CONFIG_AC97_BUS=m
 CONFIG_HID_SUPPORT=y
 CONFIG_HID=y
+# CONFIG_HID_BATTERY_STRENGTH is not set
 CONFIG_HIDRAW=y
 
 #
@@ -3557,10 +3150,11 @@ CONFIG_HID_TWINHAN=m
 CONFIG_HID_KENSINGTON=y
 CONFIG_HID_LCPOWER=m
 CONFIG_HID_LOGITECH=y
+CONFIG_HID_LOGITECH_DJ=m
 # CONFIG_LOGITECH_FF is not set
 # CONFIG_LOGIRUMBLEPAD2_FF is not set
 # CONFIG_LOGIG940_FF is not set
-# CONFIG_LOGIWII_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
 # CONFIG_HID_MAGICMOUSE is not set
 CONFIG_HID_MICROSOFT=y
 CONFIG_HID_MONTEREY=y
@@ -3574,30 +3168,28 @@ CONFIG_HID_PICOLCD_FB=y
 CONFIG_HID_PICOLCD_BACKLIGHT=y
 CONFIG_HID_PICOLCD_LCD=y
 CONFIG_HID_PICOLCD_LEDS=y
-# CONFIG_HID_QUANTA is not set
+# CONFIG_HID_PRIMAX is not set
 CONFIG_HID_ROCCAT=m
-CONFIG_HID_ROCCAT_COMMON=m
-CONFIG_HID_ROCCAT_ARVO=m
-CONFIG_HID_ROCCAT_KONE=m
-CONFIG_HID_ROCCAT_KONEPLUS=m
-CONFIG_HID_ROCCAT_KOVAPLUS=m
-CONFIG_HID_ROCCAT_PYRA=m
+CONFIG_HID_SAITEK=m
 CONFIG_HID_SAMSUNG=m
 # CONFIG_HID_SONY is not set
 CONFIG_HID_SPEEDLINK=m
 CONFIG_HID_SUNPLUS=m
 # CONFIG_HID_GREENASIA is not set
 # CONFIG_HID_SMARTJOYPLUS is not set
+CONFIG_HID_TIVO=m
 CONFIG_HID_TOPSEED=m
 # CONFIG_HID_THRUSTMASTER is not set
 # CONFIG_HID_WACOM is not set
 # CONFIG_HID_WIIMOTE is not set
 # CONFIG_HID_ZEROPLUS is not set
 CONFIG_HID_ZYDACRON=m
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB=y
 # CONFIG_USB_DEBUG is not set
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
@@ -3629,6 +3221,8 @@ CONFIG_USB_EHCI_TT_NEWSCHED=y
 # CONFIG_USB_ISP1760_HCD is not set
 CONFIG_USB_ISP1362_HCD=m
 CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
@@ -3703,6 +3297,7 @@ CONFIG_USB_SERIAL_IPAQ=m
 CONFIG_USB_SERIAL_IR=m
 CONFIG_USB_SERIAL_EDGEPORT=m
 CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
 # CONFIG_USB_SERIAL_GARMIN is not set
 CONFIG_USB_SERIAL_IPW=m
 CONFIG_USB_SERIAL_IUU=m
@@ -3711,6 +3306,7 @@ CONFIG_USB_SERIAL_KEYSPAN_PDA=m
 CONFIG_USB_SERIAL_KLSI=m
 # CONFIG_USB_SERIAL_KOBIL_SCT is not set
 CONFIG_USB_SERIAL_MCT_U232=m
+# CONFIG_USB_SERIAL_METRO is not set
 CONFIG_USB_SERIAL_MOS7720=m
 CONFIG_USB_SERIAL_MOS7715_PARPORT=y
 CONFIG_USB_SERIAL_MOS7840=m
@@ -3800,7 +3396,6 @@ CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_PCI=m
 CONFIG_MMC_RICOH_MMC=y
 CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_WBSD=m
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_CB710=m
 CONFIG_MMC_VIA_SDMMC=m
@@ -3828,18 +3423,17 @@ CONFIG_LEDS_CLASS=y
 # LED drivers
 #
 CONFIG_LEDS_LM3530=m
-CONFIG_LEDS_ALIX2=m
 # CONFIG_LEDS_PCA9532 is not set
 # CONFIG_LEDS_GPIO is not set
 CONFIG_LEDS_LP3944=m
 CONFIG_LEDS_LP5521=m
 CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_CLEVO_MAIL=m
 # CONFIG_LEDS_PCA955X is not set
+CONFIG_LEDS_PCA9633=m
 # CONFIG_LEDS_BD2802 is not set
-CONFIG_LEDS_INTEL_SS4200=m
 CONFIG_LEDS_LT3593=m
-CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_TCA6507=m
+CONFIG_LEDS_OT200=m
 CONFIG_LEDS_TRIGGERS=y
 
 #
@@ -3856,31 +3450,10 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
 #
 # CONFIG_ACCESSIBILITY is not set
 # CONFIG_INFINIBAND is not set
-CONFIG_EDAC=y
 
 #
 # Reporting subsystems
 #
-# CONFIG_EDAC_DEBUG is not set
-CONFIG_EDAC_DECODE_MCE=m
-CONFIG_EDAC_MCE_INJ=m
-CONFIG_EDAC_MM_EDAC=m
-CONFIG_EDAC_MCE=y
-CONFIG_EDAC_AMD76X=m
-CONFIG_EDAC_E7XXX=m
-CONFIG_EDAC_E752X=m
-CONFIG_EDAC_I82875P=m
-CONFIG_EDAC_I82975X=m
-CONFIG_EDAC_I3000=m
-CONFIG_EDAC_I3200=m
-CONFIG_EDAC_X38=m
-CONFIG_EDAC_I5400=m
-CONFIG_EDAC_I7CORE=m
-CONFIG_EDAC_I82860=m
-CONFIG_EDAC_R82600=m
-CONFIG_EDAC_I5000=m
-CONFIG_EDAC_I5100=m
-CONFIG_EDAC_I7300=m
 CONFIG_RTC_LIB=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_HCTOSYS=y
@@ -3950,10 +3523,7 @@ CONFIG_DMADEVICES=y
 #
 # DMA Devices
 #
-# CONFIG_INTEL_MID_DMAC is not set
-CONFIG_INTEL_IOATDMA=m
 CONFIG_TIMB_DMA=m
-CONFIG_PCH_DMA=m
 CONFIG_DMA_ENGINE=y
 
 #
@@ -3962,7 +3532,6 @@ CONFIG_DMA_ENGINE=y
 CONFIG_NET_DMA=y
 CONFIG_ASYNC_TX_DMA=y
 # CONFIG_DMATEST is not set
-CONFIG_DCA=m
 # CONFIG_AUXDISPLAY is not set
 CONFIG_UIO=m
 # CONFIG_UIO_CIF is not set
@@ -3972,76 +3541,54 @@ CONFIG_UIO_AEC=m
 CONFIG_UIO_SERCOS3=m
 CONFIG_UIO_PCI_GENERIC=m
 # CONFIG_UIO_NETX is not set
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_RING=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
 
 #
 # Virtio drivers
 #
-CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_PCI=y
 CONFIG_VIRTIO_BALLOON=m
+# CONFIG_VIRTIO_MMIO is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+
+#
+# Xen driver support
+#
 CONFIG_STAGING=y
 CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
-# CONFIG_SLICOSS is not set
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_VIDEO_CX25821 is not set
-# CONFIG_VIDEO_TM6000 is not set
-# CONFIG_DVB_CXD2099 is not set
 # CONFIG_USBIP_CORE is not set
 # CONFIG_W35UND is not set
 # CONFIG_PRISM2_USB is not set
 # CONFIG_ECHO is not set
-# CONFIG_BRCMUTIL is not set
-# CONFIG_BRCMSMAC is not set
-# CONFIG_BRCMFMAC is not set
-# CONFIG_COMEDI is not set
 # CONFIG_ASUS_OLED is not set
 # CONFIG_PANEL is not set
 # CONFIG_R8187SE is not set
 # CONFIG_RTL8192U is not set
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
 # CONFIG_RTL8192E is not set
 # CONFIG_R8712U is not set
 # CONFIG_RTS_PSTOR is not set
+# CONFIG_RTS5139 is not set
 # CONFIG_TRANZPORT is not set
-# CONFIG_POHMELFS is not set
 # CONFIG_IDE_PHISON is not set
 # CONFIG_LINE6_USB is not set
-CONFIG_DRM_VMWGFX=m
-CONFIG_DRM_NOUVEAU=m
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-CONFIG_DRM_NOUVEAU_DEBUG=y
-
-#
-# I2C encoder or helper chips
-#
-# CONFIG_DRM_I2C_CH7006 is not set
-# CONFIG_DRM_I2C_SIL164 is not set
 # CONFIG_USB_SERIAL_QUATECH2 is not set
 # CONFIG_USB_SERIAL_QUATECH_USB2 is not set
 # CONFIG_VT6655 is not set
 # CONFIG_VT6656 is not set
-CONFIG_HYPERV=m
-CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_BLOCK=m
-CONFIG_HYPERV_NET=m
-CONFIG_HYPERV_UTILS=m
-CONFIG_HYPERV_MOUSE=m
 # CONFIG_VME_BUS is not set
 # CONFIG_DX_SEP is not set
 # CONFIG_IIO is not set
-# CONFIG_XVMALLOC is not set
-# CONFIG_ZRAM is not set
-# CONFIG_ZCACHE is not set
 # CONFIG_FB_SM7XX is not set
-# CONFIG_VIDEO_DT3155 is not set
 # CONFIG_CRYSTALHD is not set
 # CONFIG_FB_XGI is not set
-# CONFIG_LIRC_STAGING is not set
-# CONFIG_EASYCAP is not set
-# CONFIG_SOLO6X10 is not set
-# CONFIG_ACPI_QUICKSTART is not set
-# CONFIG_ATH6K_LEGACY is not set
 # CONFIG_USB_ENESTORAGE is not set
 # CONFIG_BCM_WIMAX is not set
 # CONFIG_FT1000 is not set
@@ -4052,79 +3599,33 @@ CONFIG_HYPERV_MOUSE=m
 # CONFIG_SPEAKUP is not set
 # CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
 # CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
-# CONFIG_DRM_PSB is not set
-# CONFIG_ALTERA_STAPL is not set
-# CONFIG_INTEL_MEI is not set
-CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_ACER_WMI=m
-CONFIG_ACERHDF=m
-CONFIG_ASUS_LAPTOP=m
-CONFIG_DELL_LAPTOP=m
-CONFIG_DELL_WMI=m
-CONFIG_DELL_WMI_AIO=m
-CONFIG_FUJITSU_LAPTOP=m
-# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
-CONFIG_TC1100_WMI=m
-CONFIG_HP_ACCEL=m
-CONFIG_HP_WMI=m
-CONFIG_MSI_LAPTOP=m
-CONFIG_PANASONIC_LAPTOP=m
-CONFIG_COMPAL_LAPTOP=m
-CONFIG_SONY_LAPTOP=m
-CONFIG_SONYPI_COMPAT=y
-CONFIG_IDEAPAD_LAPTOP=m
-CONFIG_THINKPAD_ACPI=m
-CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
-# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
-# CONFIG_THINKPAD_ACPI_DEBUG is not set
-# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
-CONFIG_THINKPAD_ACPI_VIDEO=y
-CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-CONFIG_SENSORS_HDAPS=m
-# CONFIG_INTEL_MENLOW is not set
-CONFIG_EEEPC_LAPTOP=m
-CONFIG_ASUS_WMI=m
-CONFIG_ASUS_NB_WMI=m
-CONFIG_EEEPC_WMI=m
-CONFIG_ACPI_WMI=m
-CONFIG_MSI_WMI=m
-# CONFIG_ACPI_ASUS is not set
-CONFIG_TOPSTAR_LAPTOP=m
-CONFIG_ACPI_TOSHIBA=m
-CONFIG_TOSHIBA_BT_RFKILL=m
-CONFIG_ACPI_CMPC=m
-CONFIG_INTEL_IPS=m
-# CONFIG_IBM_RTL is not set
-CONFIG_XO15_EBOOK=m
-CONFIG_SAMSUNG_LAPTOP=m
-CONFIG_MXM_WMI=m
-CONFIG_INTEL_OAKTRAIL=m
-CONFIG_SAMSUNG_Q10=m
-CONFIG_CLKSRC_I8253=y
-CONFIG_CLKEVT_I8253=y
-CONFIG_I8253_LOCK=y
-CONFIG_CLKBLD_I8253=y
-CONFIG_IOMMU_API=y
+# CONFIG_STAGING_MEDIA is not set
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# CONFIG_PHONE is not set
+# CONFIG_USB_WPAN_HCD is not set
+
+#
+# Hardware Spinlock drivers
+#
 CONFIG_IOMMU_SUPPORT=y
-CONFIG_DMAR=y
-CONFIG_DMAR_DEFAULT_ON=y
-CONFIG_DMAR_FLOPPY_WA=y
+
+#
+# Remoteproc drivers (EXPERIMENTAL)
+#
+
+#
+# Rpmsg drivers (EXPERIMENTAL)
+#
 CONFIG_VIRT_DRIVERS=y
+# CONFIG_PM_DEVFREQ is not set
 
 #
 # Firmware Drivers
 #
-CONFIG_EDD=m
-# CONFIG_EDD_OFF is not set
-CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_EFI_VARS=y
-CONFIG_DELL_RBU=m
-CONFIG_DCDBAS=m
-CONFIG_DMIID=y
-CONFIG_DMI_SYSFS=y
-# CONFIG_ISCSI_IBFT_FIND is not set
-# CONFIG_SIGMA is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
 
 #
 # File systems
@@ -4156,6 +3657,7 @@ CONFIG_XFS_RT=y
 # CONFIG_OCFS2_FS is not set
 CONFIG_BTRFS_FS=m
 CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
 # CONFIG_NILFS2_FS is not set
 CONFIG_FS_POSIX_ACL=y
 CONFIG_EXPORTFS=y
@@ -4218,8 +3720,6 @@ CONFIG_SYSFS=y
 CONFIG_TMPFS=y
 CONFIG_TMPFS_POSIX_ACL=y
 CONFIG_TMPFS_XATTR=y
-CONFIG_HUGETLBFS=y
-CONFIG_HUGETLB_PAGE=y
 CONFIG_CONFIGFS_FS=m
 CONFIG_MISC_FILESYSTEMS=y
 # CONFIG_ADFS_FS is not set
@@ -4238,11 +3738,13 @@ CONFIG_MISC_FILESYSTEMS=y
 # CONFIG_OMFS_FS is not set
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
 # CONFIG_ROMFS_FS is not set
 CONFIG_PSTORE=y
 # CONFIG_SYSV_FS is not set
 # CONFIG_UFS_FS is not set
 # CONFIG_EXOFS_FS is not set
+CONFIG_ORE=m
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
 CONFIG_NFS_V3=y
@@ -4252,15 +3754,16 @@ CONFIG_NFS_V4_1=y
 CONFIG_PNFS_FILE_LAYOUT=m
 CONFIG_PNFS_BLOCK=m
 CONFIG_PNFS_OBJLAYOUT=m
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="ipfire.org"
 CONFIG_NFS_FSCACHE=y
 # CONFIG_NFS_USE_LEGACY_DNS is not set
 CONFIG_NFS_USE_KERNEL_DNS=y
-# CONFIG_NFS_USE_NEW_IDMAPPER is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
 CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
+# CONFIG_NFSD_FAULT_INJECTION is not set
 CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
 CONFIG_NFS_ACL_SUPPORT=m
@@ -4269,6 +3772,7 @@ CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_SUNRPC_BACKCHANNEL=y
 CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_SUNRPC_DEBUG is not set
 # CONFIG_CEPH_FS is not set
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
@@ -4284,29 +3788,6 @@ CONFIG_CIFS_ACL=y
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set
 # CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-CONFIG_LDM_PARTITION=y
-# CONFIG_LDM_DEBUG is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
 CONFIG_NLS=y
 CONFIG_NLS_DEFAULT="utf-8"
 CONFIG_NLS_CODEPAGE_437=y
@@ -4368,7 +3849,6 @@ CONFIG_HEADERS_CHECK=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_DEBUG_SHIRQ=y
 CONFIG_LOCKUP_DETECTOR=y
-CONFIG_HARDLOCKUP_DETECTOR=y
 # CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
 # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
@@ -4394,11 +3874,9 @@ CONFIG_TIMER_STATS=y
 CONFIG_STACKTRACE=y
 # CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_INFO is not set
 # CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_VIRTUAL is not set
 # CONFIG_DEBUG_WRITECOUNT is not set
 CONFIG_DEBUG_MEMORY_INIT=y
 CONFIG_DEBUG_LIST=y
@@ -4406,34 +3884,24 @@ CONFIG_DEBUG_LIST=y
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
 CONFIG_FRAME_POINTER=y
 CONFIG_BOOT_PRINTK_DELAY=y
 # CONFIG_RCU_TORTURE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_TRACE is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
 # CONFIG_LKDTM is not set
-# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
 # CONFIG_FAULT_INJECTION is not set
-CONFIG_SYSCTL_SYSCALL_CHECK=y
 # CONFIG_DEBUG_PAGEALLOC is not set
-CONFIG_USER_STACKTRACE_SUPPORT=y
 CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FTRACE_NMI_ENTER=y
 CONFIG_HAVE_FUNCTION_TRACER=y
 CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
-CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
 CONFIG_HAVE_DYNAMIC_FTRACE=y
 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
 CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_TRACER_MAX_TRACE=y
 CONFIG_RING_BUFFER=y
-CONFIG_FTRACE_NMI_ENTER=y
 CONFIG_EVENT_TRACING=y
 CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
 CONFIG_CONTEXT_SWITCH_TRACER=y
@@ -4444,7 +3912,6 @@ CONFIG_FTRACE=y
 CONFIG_FUNCTION_TRACER=y
 # CONFIG_IRQSOFF_TRACER is not set
 CONFIG_SCHED_TRACER=y
-CONFIG_FTRACE_SYSCALLS=y
 CONFIG_BRANCH_PROFILE_NONE=y
 # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
 # CONFIG_PROFILE_ALL_BRANCHES is not set
@@ -4454,9 +3921,7 @@ CONFIG_DYNAMIC_FTRACE=y
 CONFIG_FUNCTION_PROFILER=y
 CONFIG_FTRACE_MCOUNT_RECORD=y
 # CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_MMIOTRACE is not set
 CONFIG_RING_BUFFER_BENCHMARK=m
-# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
 # CONFIG_BUILD_DOCSRC is not set
 CONFIG_DYNAMIC_DEBUG=y
@@ -4466,31 +3931,8 @@ CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
-CONFIG_HAVE_ARCH_KMEMCHECK=y
 # CONFIG_TEST_KSTRTOX is not set
 CONFIG_STRICT_DEVMEM=y
-CONFIG_X86_VERBOSE_BOOTUP=y
-CONFIG_EARLY_PRINTK=y
-# CONFIG_EARLY_PRINTK_DBGP is not set
-CONFIG_DEBUG_STACKOVERFLOW=y
-# CONFIG_X86_PTDUMP is not set
-CONFIG_DEBUG_NX_TEST=m
-CONFIG_DOUBLEFAULT=y
-# CONFIG_IOMMU_STRESS is not set
-CONFIG_HAVE_MMIOTRACE_SUPPORT=y
-CONFIG_IO_DELAY_TYPE_0X80=0
-CONFIG_IO_DELAY_TYPE_0XED=1
-CONFIG_IO_DELAY_TYPE_UDELAY=2
-CONFIG_IO_DELAY_TYPE_NONE=3
-CONFIG_IO_DELAY_0X80=y
-# CONFIG_IO_DELAY_0XED is not set
-# CONFIG_IO_DELAY_UDELAY is not set
-# CONFIG_IO_DELAY_NONE is not set
-CONFIG_DEFAULT_IO_DELAY_TYPE=0
-CONFIG_DEBUG_BOOT_PARAMS=y
-# CONFIG_CPA_DEBUG is not set
-CONFIG_OPTIMIZE_INLINING=y
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
 
 #
 # Security options
@@ -4500,17 +3942,51 @@ CONFIG_OPTIMIZE_INLINING=y
 # Grsecurity
 #
 CONFIG_GRKERNSEC=y
-# CONFIG_GRKERNSEC_LOW is not set
-# CONFIG_GRKERNSEC_MEDIUM is not set
-CONFIG_GRKERNSEC_HIGH=y
-# CONFIG_GRKERNSEC_CUSTOM is not set
+# CONFIG_GRKERNSEC_CONFIG_AUTO is not set
+CONFIG_GRKERNSEC_CONFIG_CUSTOM=y
+CONFIG_GRKERNSEC_PROC_GID=10
+
+#
+# Customize Configuration
+#
+
+#
+# PaX
+#
+CONFIG_PAX=y
+
+#
+# PaX Control
+#
+# CONFIG_PAX_SOFTMODE is not set
+CONFIG_PAX_EI_PAX=y
+CONFIG_PAX_PT_PAX_FLAGS=y
+# CONFIG_PAX_XATTR_PAX_FLAGS is not set
+# CONFIG_PAX_NO_ACL_FLAGS is not set
+CONFIG_PAX_HAVE_ACL_FLAGS=y
+# CONFIG_PAX_HOOK_ACL_FLAGS is not set
+
+#
+# Non-executable pages
+#
+CONFIG_PAX_KERNEXEC_PLUGIN_METHOD=""
+
+#
+# Address Space Layout Randomization
+#
+CONFIG_PAX_ASLR=y
+CONFIG_PAX_RANDUSTACK=y
+CONFIG_PAX_RANDMMAP=y
+
+#
+# Miscellaneous hardening features
+#
+CONFIG_PAX_USERCOPY=y
 
 #
-# Address Space Protection
+# Memory Protections
 #
 CONFIG_GRKERNSEC_KMEM=y
-CONFIG_GRKERNSEC_VM86=y
-# CONFIG_GRKERNSEC_IO is not set
 CONFIG_GRKERNSEC_PROC_MEMMAP=y
 CONFIG_GRKERNSEC_BRUTE=y
 CONFIG_GRKERNSEC_MODHARDEN=y
@@ -4531,7 +4007,6 @@ CONFIG_GRKERNSEC_ACL_TIMEOUT=30
 CONFIG_GRKERNSEC_PROC=y
 # CONFIG_GRKERNSEC_PROC_USER is not set
 CONFIG_GRKERNSEC_PROC_USERGROUP=y
-CONFIG_GRKERNSEC_PROC_GID=10
 CONFIG_GRKERNSEC_PROC_ADD=y
 CONFIG_GRKERNSEC_LINK=y
 CONFIG_GRKERNSEC_FIFO=y
@@ -4550,7 +4025,7 @@ CONFIG_GRKERNSEC_CHROOT_UNIX=y
 CONFIG_GRKERNSEC_CHROOT_FINDTASK=y
 CONFIG_GRKERNSEC_CHROOT_NICE=y
 CONFIG_GRKERNSEC_CHROOT_SYSCTL=y
-CONFIG_GRKERNSEC_CHROOT_CAPS=y
+# CONFIG_GRKERNSEC_CHROOT_CAPS is not set
 
 #
 # Kernel Auditing
@@ -4561,19 +4036,18 @@ CONFIG_GRKERNSEC_RESLOG=y
 # CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set
 # CONFIG_GRKERNSEC_AUDIT_PTRACE is not set
 # CONFIG_GRKERNSEC_AUDIT_CHDIR is not set
-CONFIG_GRKERNSEC_AUDIT_MOUNT=y
+# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set
 CONFIG_GRKERNSEC_SIGNAL=y
 CONFIG_GRKERNSEC_FORKFAIL=y
-CONFIG_GRKERNSEC_TIME=y
+# CONFIG_GRKERNSEC_TIME is not set
 CONFIG_GRKERNSEC_PROC_IPADDR=y
-CONFIG_GRKERNSEC_RWXMAP_LOG=y
-CONFIG_GRKERNSEC_AUDIT_TEXTREL=y
 
 #
 # Executable Protections
 #
 CONFIG_GRKERNSEC_DMESG=y
 CONFIG_GRKERNSEC_HARDEN_PTRACE=y
+CONFIG_GRKERNSEC_PTRACE_READEXEC=y
 # CONFIG_GRKERNSEC_TPE is not set
 
 #
@@ -4584,63 +4058,17 @@ CONFIG_GRKERNSEC_BLACKHOLE=y
 # CONFIG_GRKERNSEC_SOCKET is not set
 
 #
-# Sysctl support
+# Sysctl Support
 #
-CONFIG_GRKERNSEC_SYSCTL=y
-CONFIG_GRKERNSEC_SYSCTL_ON=y
+# CONFIG_GRKERNSEC_SYSCTL is not set
 
 #
 # Logging Options
 #
 CONFIG_GRKERNSEC_FLOODTIME=10
 CONFIG_GRKERNSEC_FLOODBURST=6
-
-#
-# PaX
-#
-CONFIG_ARCH_TRACK_EXEC_LIMIT=y
-CONFIG_PAX=y
-
-#
-# PaX Control
-#
-# CONFIG_PAX_SOFTMODE is not set
-CONFIG_PAX_EI_PAX=y
-CONFIG_PAX_PT_PAX_FLAGS=y
-# CONFIG_PAX_NO_ACL_FLAGS is not set
-CONFIG_PAX_HAVE_ACL_FLAGS=y
-# CONFIG_PAX_HOOK_ACL_FLAGS is not set
-
-#
-# Non-executable pages
-#
-CONFIG_PAX_NOEXEC=y
-CONFIG_PAX_PAGEEXEC=y
-CONFIG_PAX_SEGMEXEC=y
-CONFIG_PAX_EMUTRAMP=y
-CONFIG_PAX_MPROTECT=y
-# CONFIG_PAX_MPROTECT_COMPAT is not set
-CONFIG_PAX_ELFRELOCS=y
-CONFIG_PAX_KERNEXEC=y
-CONFIG_PAX_KERNEXEC_MODULE_TEXT=4
-
-#
-# Address Space Layout Randomization
-#
-CONFIG_PAX_ASLR=y
-CONFIG_PAX_RANDKSTACK=y
-CONFIG_PAX_RANDUSTACK=y
-CONFIG_PAX_RANDMMAP=y
-
-#
-# Miscellaneous hardening features
-#
-CONFIG_PAX_MEMORY_SANITIZE=y
-CONFIG_PAX_MEMORY_STACKLEAK=y
-CONFIG_PAX_MEMORY_UDEREF=y
-CONFIG_PAX_REFCOUNT=y
-CONFIG_PAX_USERCOPY=y
 CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
 CONFIG_KEYS_DEBUG_PROC_KEYS=y
 CONFIG_SECURITY_DMESG_RESTRICT=y
 CONFIG_SECURITY=y
@@ -4648,8 +4076,6 @@ CONFIG_SECURITYFS=y
 CONFIG_SECURITY_NETWORK=y
 CONFIG_SECURITY_NETWORK_XFRM=y
 # CONFIG_SECURITY_PATH is not set
-CONFIG_INTEL_TXT=y
-CONFIG_LSM_MMAP_MIN_ADDR=65536
 CONFIG_SECURITY_SELINUX=y
 CONFIG_SECURITY_SELINUX_BOOTPARAM=y
 CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
@@ -4661,6 +4087,7 @@ CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
 # CONFIG_SECURITY_TOMOYO is not set
 # CONFIG_SECURITY_APPARMOR is not set
 # CONFIG_IMA is not set
+# CONFIG_EVM is not set
 CONFIG_DEFAULT_SECURITY_SELINUX=y
 # CONFIG_DEFAULT_SECURITY_DAC is not set
 CONFIG_DEFAULT_SECURITY="selinux"
@@ -4670,8 +4097,6 @@ CONFIG_ASYNC_MEMCPY=m
 CONFIG_ASYNC_XOR=m
 CONFIG_ASYNC_PQ=m
 CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
-CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
 CONFIG_CRYPTO=y
 
 #
@@ -4692,10 +4117,10 @@ CONFIG_CRYPTO_PCOMP=m
 CONFIG_CRYPTO_PCOMP2=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_USER is not set
 # CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
 CONFIG_CRYPTO_GF128MUL=m
 # CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_PCRYPT=m
 CONFIG_CRYPTO_WORKQUEUE=y
 CONFIG_CRYPTO_CRYPTD=y
 CONFIG_CRYPTO_AUTHENC=m
@@ -4730,7 +4155,6 @@ CONFIG_CRYPTO_VMAC=m
 # Digest
 #
 CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32C_INTEL=y
 CONFIG_CRYPTO_GHASH=m
 CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=y
@@ -4749,11 +4173,10 @@ CONFIG_CRYPTO_WP512=m
 # Ciphers
 #
 CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_AES_586=y
-CONFIG_CRYPTO_AES_NI_INTEL=y
 CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
@@ -4761,13 +4184,11 @@ CONFIG_CRYPTO_DES=m
 CONFIG_CRYPTO_FCRYPT=m
 CONFIG_CRYPTO_KHAZAD=m
 CONFIG_CRYPTO_SALSA20=m
-CONFIG_CRYPTO_SALSA20_586=m
 CONFIG_CRYPTO_SEED=m
 CONFIG_CRYPTO_SERPENT=m
 CONFIG_CRYPTO_TEA=m
 CONFIG_CRYPTO_TWOFISH=m
 CONFIG_CRYPTO_TWOFISH_COMMON=m
-CONFIG_CRYPTO_TWOFISH_586=m
 
 #
 # Compression
@@ -4784,25 +4205,6 @@ CONFIG_CRYPTO_USER_API=y
 CONFIG_CRYPTO_USER_API_HASH=y
 CONFIG_CRYPTO_USER_API_SKCIPHER=y
 CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_PADLOCK=m
-CONFIG_CRYPTO_DEV_PADLOCK_AES=m
-CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
-CONFIG_CRYPTO_DEV_GEODE=m
-CONFIG_CRYPTO_DEV_HIFN_795X=m
-CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
-CONFIG_HAVE_KVM=y
-CONFIG_HAVE_KVM_IRQCHIP=y
-CONFIG_HAVE_KVM_EVENTFD=y
-CONFIG_KVM_APIC_ARCHITECTURE=y
-CONFIG_KVM_MMIO=y
-CONFIG_KVM_ASYNC_PF=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=m
-CONFIG_KVM_INTEL=m
-CONFIG_KVM_AMD=m
-CONFIG_KVM_MMU_AUDIT=y
-CONFIG_VHOST_NET=m
-# CONFIG_LGUEST is not set
 CONFIG_BINARY_PRINTF=y
 
 #
@@ -4810,16 +4212,21 @@ CONFIG_BINARY_PRINTF=y
 #
 CONFIG_RAID6_PQ=m
 CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IO=y
 CONFIG_CRC_CCITT=m
 CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=m
+CONFIG_CRC_T10DIF=y
 CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
 CONFIG_CRC8=m
-CONFIG_AUDIT_GENERIC=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=m
 CONFIG_LZO_COMPRESS=y
@@ -4838,7 +4245,6 @@ CONFIG_DECOMPRESS_BZIP2=y
 CONFIG_DECOMPRESS_LZMA=y
 CONFIG_DECOMPRESS_XZ=y
 CONFIG_DECOMPRESS_LZO=y
-CONFIG_GENERIC_ALLOCATOR=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
@@ -4847,8 +4253,7 @@ CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
-CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
 CONFIG_NLATTR=y
 CONFIG_AVERAGE=y
 CONFIG_CORDIC=m
-CONFIG_LLIST=y
diff --git a/kernel/config-i686-default b/kernel/config-i686-default
new file mode 100644 (file)
index 0000000..e01dd3e
--- /dev/null
@@ -0,0 +1,300 @@
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+# CONFIG_ZONE_DMA32 is not set
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_X86_32_SMP=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
+CONFIG_KTIME_SCALAR=y
+
+#
+# RCU Subsystem
+#
+CONFIG_RCU_FANOUT=32
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_LBDAF=y
+
+#
+# Processor type and features
+#
+CONFIG_X86_BIGSMP=y
+# CONFIG_X86_WANT_INTEL_MID is not set
+# CONFIG_X86_RDC321X is not set
+CONFIG_X86_32_NON_STANDARD=y
+# CONFIG_X86_NUMAQ is not set
+# CONFIG_X86_SUMMIT is not set
+# CONFIG_X86_ES7000 is not set
+CONFIG_X86_32_IRIS=m
+CONFIG_XEN_MAX_DOMAIN_MEMORY=64
+# CONFIG_LGUEST_GUEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+CONFIG_M686=y
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MELAN is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+CONFIG_X86_GENERIC=y
+# CONFIG_X86_PPRO_FENCE is not set
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_ALIGNMENT_16=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_NR_CPUS=32
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_VM86=y
+CONFIG_TOSHIBA=m
+# CONFIG_X86_REBOOTFIXUPS is not set
+# CONFIG_NOHIGHMEM is not set
+# CONFIG_HIGHMEM4G is not set
+CONFIG_HIGHMEM64G=y
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_HIGHMEM=y
+CONFIG_X86_PAE=y
+# CONFIG_NUMA is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ILLEGAL_POINTER_VALUE=0
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_HIGHPTE=y
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_KEXEC_JUMP is not set
+CONFIG_PHYSICAL_START=0x400000
+CONFIG_X86_NEED_RELOCS=y
+CONFIG_PHYSICAL_ALIGN=0x400000
+
+#
+# Power management and ACPI options
+#
+CONFIG_ACPI_BLACKLIST_YEAR=1999
+CONFIG_X86_APM_BOOT=y
+CONFIG_APM=y
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+# CONFIG_APM_DO_ENABLE is not set
+CONFIG_APM_CPU_IDLE=y
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_ALLOW_INTS is not set
+
+#
+# x86 CPU frequency scaling drivers
+#
+# CONFIG_X86_POWERNOW_K6 is not set
+CONFIG_X86_POWERNOW_K7=y
+CONFIG_X86_POWERNOW_K7_ACPI=y
+# CONFIG_X86_GX_SUSPMOD is not set
+CONFIG_X86_SPEEDSTEP_ICH=y
+CONFIG_X86_SPEEDSTEP_SMI=y
+# CONFIG_X86_CPUFREQ_NFORCE2 is not set
+CONFIG_X86_LONGRUN=y
+# CONFIG_X86_LONGHAUL is not set
+# CONFIG_X86_E_POWERSAVER is not set
+
+#
+# shared options
+#
+# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
+
+#
+# Bus options (PCI etc.)
+#
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+# CONFIG_ISA is not set
+# CONFIG_MCA is not set
+# CONFIG_SCx200 is not set
+# CONFIG_ALIX is not set
+# CONFIG_NET5501 is not set
+# CONFIG_GEOS is not set
+
+#
+# PC-card bridges
+#
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_IBM is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+
+#
+# Misc devices
+#
+CONFIG_IBM_ASM=m
+# CONFIG_SGI_IOC4 is not set
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_FLASHPOINT is not set
+# CONFIG_SCSI_NSP32 is not set
+
+#
+# PATA SFF controllers with BMDMA
+#
+# CONFIG_PATA_CS5535 is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_WISTRON_BTNS is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_SONYPI=m
+CONFIG_PC8736x_GPIO=m
+CONFIG_NSC_GPIO=m
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_SCx200_ACB=m
+
+#
+# PCI GPIO expanders:
+#
+# CONFIG_GPIO_LANGWELL is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_GEODE_WDT=m
+# CONFIG_SBC7240_WDT is not set
+
+#
+# Customize TV tuners
+#
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+
+#
+# Miscelaneous helper chips
+#
+CONFIG_VIDEO_CAFE_CCIC=m
+
+#
+# Graphics support
+#
+# CONFIG_AGP_ALI is not set
+# CONFIG_AGP_ATI is not set
+# CONFIG_AGP_AMD is not set
+# CONFIG_AGP_NVIDIA is not set
+# CONFIG_AGP_SWORKS is not set
+# CONFIG_AGP_EFFICEON is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_I810 is not set
+
+#
+# Console display driver support
+#
+# CONFIG_SND_SIS7019 is not set
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_AMD76X is not set
+# CONFIG_EDAC_E7XXX is not set
+# CONFIG_EDAC_I82875P is not set
+# CONFIG_EDAC_I82860 is not set
+# CONFIG_EDAC_R82600 is not set
+
+#
+# Android
+#
+CONFIG_TC1100_WMI=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKSRC_I8253=y
+
+#
+# Kernel hacking
+#
+# CONFIG_DEBUG_HIGHMEM is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+CONFIG_DOUBLEFAULT=y
+
+#
+# PaX
+#
+CONFIG_ARCH_TRACK_EXEC_LIMIT=y
+
+#
+# Non-executable pages
+#
+CONFIG_PAX_SEGMEXEC=y
+
+#
+# Memory Protections
+#
+CONFIG_GRKERNSEC_VM86=y
+
+#
+# Logging Options
+#
+# CONFIG_INTEL_TXT is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES_586=y
+# CONFIG_CRYPTO_SALSA20_586 is not set
+CONFIG_CRYPTO_SERPENT_SSE2_586=m
+CONFIG_CRYPTO_TWOFISH_586=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_DEV_GEODE=m
+# CONFIG_LGUEST is not set
+
+#
+# Library routines
+#
+CONFIG_AUDIT_GENERIC=y
diff --git a/kernel/config-i686-legacy b/kernel/config-i686-legacy
new file mode 100644 (file)
index 0000000..df2ac3d
--- /dev/null
@@ -0,0 +1,126 @@
+
+#
+# IRQ subsystem
+#
+CONFIG_IRQ_DOMAIN=y
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
+
+#
+# Processor type and features
+#
+# CONFIG_XEN_PRIVILEGED_GUEST is not set
+# CONFIG_IOMMU_HELPER is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+
+#
+# Bus options (PCI etc.)
+#
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_OLPC=y
+CONFIG_OLPC=y
+CONFIG_OLPC_XO1_PM=y
+CONFIG_OLPC_XO1_RTC=y
+CONFIG_OLPC_XO1_SCI=y
+CONFIG_OLPC_XO15_SCI=y
+
+#
+# Generic Driver Options
+#
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+# CONFIG_OF_SELFTEST is not set
+CONFIG_OF_PROMTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=m
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
+
+#
+# Input Device Drivers
+#
+CONFIG_MOUSE_PS2_OLPC=y
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250_DW is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_OF_PLATFORM=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_PXA=m
+CONFIG_I2C_PXA_PCI=y
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=y
+# CONFIG_GPIO_SODAVILLE is not set
+
+#
+# 1-wire Slaves
+#
+CONFIG_BATTERY_OLPC=y
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+CONFIG_FB_SYS_FOPS=m
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_BACKLIGHT_OT200 is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# CONFIG_FB_OLPC_DCON is not set
+
+#
+# Android
+#
+CONFIG_XO1_RFKILL=m
+
+#
+# Non-executable pages
+#
+CONFIG_PAX_KERNEXEC=y
+CONFIG_PAX_KERNEXEC_MODULE_TEXT=4
+
+#
+# Miscellaneous hardening features
+#
+CONFIG_PAX_MEMORY_UDEREF=y
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_DEV_HIFN_795X is not set
diff --git a/kernel/config-x86-generic b/kernel/config-x86-generic
new file mode 100644 (file)
index 0000000..35d8b05
--- /dev/null
@@ -0,0 +1,883 @@
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_X86_HT=y
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+
+#
+# General setup
+#
+# CONFIG_KERNEL_BZIP2 is not set
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_RCU_FANOUT_EXACT is not set
+CONFIG_RCU_FAST_NO_HZ=y
+CONFIG_PCSPKR_PLATFORM=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_OPROFILE_NMI_TIMER=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_STOP_MACHINE=y
+
+#
+# IO Schedulers
+#
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+
+#
+# Processor type and features
+#
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
+CONFIG_SMP=y
+CONFIG_X86_MPPARSE=y
+CONFIG_X86_EXTENDED_PLATFORM=y
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_PARAVIRT_TIME_ACCOUNTING=y
+CONFIG_XEN=y
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_PRIVILEGED_GUEST=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_SAVE_RESTORE=y
+CONFIG_XEN_DEBUG_FS=y
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+CONFIG_IRQ_TIME_ACCOUNTING=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=y
+CONFIG_X86_CPUID=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_DISCARD_MEMBLOCK=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_MMU_NOTIFIER=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
+CONFIG_EFI=y
+CONFIG_EFI_STUB=y
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+CONFIG_HZ_300=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=300
+CONFIG_SCHED_HRTICK=y
+CONFIG_RELOCATABLE=y
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_EC_DEBUGFS=m
+# CONFIG_ACPI_PROC_EVENT is not set
+CONFIG_ACPI_AC=y
+CONFIG_ACPI_BATTERY=y
+CONFIG_ACPI_BUTTON=y
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=y
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=y
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=y
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=y
+CONFIG_ACPI_CUSTOM_METHOD=m
+CONFIG_ACPI_BGRT=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+# CONFIG_ACPI_APEI_EINJ is not set
+# CONFIG_ACPI_APEI_ERST_DEBUG is not set
+CONFIG_SFI=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# x86 CPU frequency scaling drivers
+#
+CONFIG_X86_PCC_CPUFREQ=y
+CONFIG_X86_ACPI_CPUFREQ=y
+CONFIG_X86_POWERNOW_K8=y
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_P4_CLOCKMOD=y
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_INTEL_IDLE=y
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_XEN=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_PCIEAER=y
+CONFIG_PCIE_ECRC=y
+CONFIG_PCIEAER_INJECT=m
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+# CONFIG_PCIEASPM_DEFAULT is not set
+CONFIG_PCIEASPM_POWERSAVE=y
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_LABEL=y
+CONFIG_ISA_DMA_API=y
+CONFIG_AMD_NB=y
+
+#
+# PC-card bridges
+#
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_RAPIDIO is not set
+
+#
+# Classification
+#
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+
+#
+# Generic Driver Options
+#
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV_FD=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_XEN_BLKDEV_BACKEND=m
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# Misc devices
+#
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_VMWARE_BALLOON=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
+CONFIG_ATA_ACPI=y
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+# CONFIG_MULTICORE_RAID456 is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_MACINTOSH_DRIVERS=y
+# CONFIG_MAC_EMUMOUSEBTN is not set
+CONFIG_SUNGEM_PHY=m
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+
+#
+# Distributed Switch Architecture drivers
+#
+CONFIG_IGB_DCA=y
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+# CONFIG_ZNET is not set
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_MYRI10GE_DCA=y
+CONFIG_ATP=m
+CONFIG_SUNGEM=m
+# CONFIG_NET_SB1000 is not set
+
+#
+# USB Network Adapters
+#
+CONFIG_AIRO=m
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_NETDEV_BACKEND=m
+
+#
+# Input Device Drivers
+#
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO_I8042=y
+# CONFIG_SERIO_CT82C710 is not set
+
+#
+# Character devices
+#
+CONFIG_SYNCLINK=m
+
+#
+# Serial drivers
+#
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PNP=y
+
+#
+# Non-8250 serial port support
+#
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_HVC_XEN_FRONTEND=y
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_MWAVE=m
+CONFIG_HPET=y
+# CONFIG_HPET_MMAP is not set
+CONFIG_HANGCHECK_TIMER=m
+# CONFIG_TELCLOCK is not set
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_NFORCE2_S4985=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_IT8761E is not set
+CONFIG_GPIO_SCH=m
+
+#
+# PCI GPIO expanders:
+#
+# CONFIG_GPIO_CS5535 is not set
+# CONFIG_GPIO_PCH is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_APPLESMC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_ATK0110=m
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_ACQUIRE_WDT is not set
+# CONFIG_ADVANTECH_WDT is not set
+CONFIG_ALIM1535_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+# CONFIG_SC520_WDT is not set
+CONFIG_SBC_FITPC2_WATCHDOG=m
+# CONFIG_EUROTECH_WDT is not set
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+# CONFIG_WAFER_WDT is not set
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+# CONFIG_ITCO_VENDOR_SUPPORT is not set
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
+# CONFIG_SC1200_WDT is not set
+# CONFIG_PC87413_WDT is not set
+CONFIG_NV_TCO=m
+# CONFIG_60XX_WDT is not set
+# CONFIG_SBC8360_WDT is not set
+# CONFIG_CPU5_WDT is not set
+CONFIG_SMSC_SCH311X_WDT=m
+# CONFIG_SMSC37B787_WDT is not set
+CONFIG_VIA_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+# CONFIG_SBC_EPX_C3_WATCHDOG is not set
+CONFIG_XEN_WDT=m
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CS5535=m
+
+#
+# Multimedia drivers
+#
+CONFIG_IR_ENE=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_WINBOND_CIR=m
+
+#
+# Miscelaneous helper chips
+#
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_VIA_CAMERA=m
+
+#
+# Graphics support
+#
+CONFIG_AGP=y
+CONFIG_AGP_AMD64=y
+CONFIG_AGP_INTEL=y
+CONFIG_AGP_SIS=y
+CONFIG_AGP_VIA=y
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
+CONFIG_DRM_I810=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_SIS=m
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_GMA3600=y
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+CONFIG_FB_SYS_FOPS=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_ARC is not set
+CONFIG_FB_VGA16=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_LE80578 is not set
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+CONFIG_FB_GEODE=y
+CONFIG_FB_GEODE_LX=y
+CONFIG_FB_GEODE_GX=y
+# CONFIG_FB_GEODE_GX1 is not set
+CONFIG_XEN_FBDEV_FRONTEND=y
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_APPLE=m
+# CONFIG_BACKLIGHT_SAHARA is not set
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VGACON_SOFT_SCROLLBACK=y
+CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_PCSP=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_CS5530=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_US122L=m
+# CONFIG_SND_SOC is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_WBSD=m
+
+#
+# LED drivers
+#
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MCE_INJ=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+
+#
+# DMA Devices
+#
+# CONFIG_INTEL_MID_DMAC is not set
+CONFIG_INTEL_IOATDMA=m
+CONFIG_PCH_DMA=m
+
+#
+# DMA Clients
+#
+CONFIG_DCA=m
+
+#
+# Microsoft Hyper-V guest support
+#
+# CONFIG_HYPERV is not set
+
+#
+# Xen driver support
+#
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_SELFBALLOONING=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_BACKEND=y
+CONFIG_XENFS=m
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_SWIOTLB_XEN=y
+CONFIG_XEN_TMEM=y
+CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_PRIVCMD=m
+CONFIG_XEN_ACPI_PROCESSOR=m
+# CONFIG_SLICOSS is not set
+# CONFIG_COMEDI is not set
+# CONFIG_ZRAM is not set
+# CONFIG_ZCACHE is not set
+CONFIG_ZSMALLOC=m
+# CONFIG_ACPI_QUICKSTART is not set
+
+#
+# Speakup console speech
+#
+# CONFIG_INTEL_MEI is not set
+
+#
+# Android
+#
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+# CONFIG_FUJITSU_TABLET is not set
+CONFIG_AMILO_RFKILL=m
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+CONFIG_SONYPI_COMPAT=y
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+# CONFIG_INTEL_MENLOW is not set
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+# CONFIG_IBM_RTL is not set
+# CONFIG_XO15_EBOOK is not set
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+# CONFIG_APPLE_GMUX is not set
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_IOMMU_API=y
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=y
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=y
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_IBFT=m
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+
+#
+# Kernel hacking
+#
+CONFIG_HARDLOCKUP_DETECTOR=y
+# CONFIG_DEBUG_VIRTUAL is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_CPU_STALL_INFO is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_FTRACE_NMI_ENTER=y
+CONFIG_FTRACE_SYSCALLS=y
+# CONFIG_MMIOTRACE is not set
+# CONFIG_X86_VERBOSE_BOOTUP is not set
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+CONFIG_DEBUG_STACKOVERFLOW=y
+# CONFIG_X86_PTDUMP is not set
+CONFIG_DEBUG_NX_TEST=m
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+CONFIG_DEBUG_BOOT_PARAMS=y
+# CONFIG_CPA_DEBUG is not set
+CONFIG_OPTIMIZE_INLINING=y
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+# CONFIG_DEBUG_NMI_SELFTEST is not set
+
+#
+# Non-executable pages
+#
+CONFIG_PAX_NOEXEC=y
+CONFIG_PAX_PAGEEXEC=y
+CONFIG_PAX_EMUTRAMP=y
+CONFIG_PAX_MPROTECT=y
+# CONFIG_PAX_MPROTECT_COMPAT is not set
+CONFIG_PAX_ELFRELOCS=y
+
+#
+# Address Space Layout Randomization
+#
+CONFIG_PAX_RANDKSTACK=y
+
+#
+# Miscellaneous hardening features
+#
+CONFIG_PAX_MEMORY_STACKLEAK=y
+CONFIG_PAX_REFCOUNT=y
+# CONFIG_PAX_SIZE_OVERFLOW is not set
+
+#
+# Memory Protections
+#
+# CONFIG_GRKERNSEC_IO is not set
+
+#
+# Kernel Auditing
+#
+CONFIG_GRKERNSEC_RWXMAP_LOG=y
+CONFIG_GRKERNSEC_AUDIT_TEXTREL=y
+
+#
+# Executable Protections
+#
+CONFIG_GRKERNSEC_SETXID=y
+
+#
+# Logging Options
+#
+CONFIG_LSM_MMAP_MIN_ADDR=65536
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_PCRYPT=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C_INTEL=y
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES_NI_INTEL=y
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_MMU_AUDIT=y
+CONFIG_VHOST_NET=m
+
+#
+# Library routines
+#
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_CPU_RMAP=y
diff --git a/kernel/config-x86_64-default b/kernel/config-x86_64-default
new file mode 100644 (file)
index 0000000..2da29db
--- /dev/null
@@ -0,0 +1,186 @@
+CONFIG_64BIT=y
+# CONFIG_X86_32 is not set
+CONFIG_X86_64=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_ZONE_DMA32=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_X86_64_SMP=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
+# CONFIG_KTIME_SCALAR is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_RCU_FANOUT=64
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+
+#
+# Partition Types
+#
+CONFIG_BLOCK_COMPAT=y
+
+#
+# Processor type and features
+#
+CONFIG_X86_X2APIC=y
+CONFIG_X86_NUMACHIP=y
+# CONFIG_X86_VSMP is not set
+# CONFIG_X86_UV is not set
+CONFIG_XEN_MAX_DOMAIN_MEMORY=500
+# CONFIG_MPSC is not set
+CONFIG_GENERIC_CPU=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_GART_IOMMU=y
+# CONFIG_CALGARY_IOMMU is not set
+# CONFIG_MAXSMP is not set
+CONFIG_NR_CPUS=64
+CONFIG_DIRECT_GBPAGES=y
+CONFIG_NUMA=y
+CONFIG_AMD_NUMA=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NODES_SHIFT=9
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+# CONFIG_MEMORY_HOTPLUG is not set
+CONFIG_KEXEC_JUMP=y
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_PHYSICAL_ALIGN=0x1000000
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_ACPI_NUMA=y
+CONFIG_ACPI_BLACKLIST_YEAR=0
+
+#
+# Memory power savings
+#
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y
+CONFIG_I7300_IDLE=m
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
+
+#
+# PC-card bridges
+#
+CONFIG_HOTPLUG_PCI_SHPC=m
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_IA32_EMULATION=y
+# CONFIG_IA32_AOUT is not set
+# CONFIG_X86_X32 is not set
+CONFIG_COMPAT=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_KEYS_COMPAT=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+
+#
+# Classification
+#
+CONFIG_BPF_JIT=y
+
+#
+# Misc devices
+#
+# CONFIG_IBM_ASM is not set
+CONFIG_SGI_IOC4=m
+# CONFIG_CS5535_MFGPT is not set
+
+#
+# PC SMBus host controller drivers
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_LANGWELL=y
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_CAFE_CCIC is not set
+
+#
+# Reporting subsystems
+#
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_SBRIDGE=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_AMD_IOMMU=y
+CONFIG_AMD_IOMMU_STATS=y
+CONFIG_IRQ_REMAP=y
+
+#
+# File systems
+#
+CONFIG_QUOTACTL_COMPAT=y
+
+#
+# Kernel hacking
+#
+CONFIG_FUNCTION_GRAPH_TRACER=y
+CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
+# CONFIG_IOMMU_DEBUG is not set
+
+#
+# PaX
+#
+CONFIG_TASK_SIZE_MAX_SHIFT=47
+
+#
+# Logging Options
+#
+CONFIG_INTEL_TXT=y
+
+#
+# Digest
+#
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES_X86_64=y
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_X86_64=m
+CONFIG_CRYPTO_SALSA20_X86_64=m
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
diff --git a/kernel/config.armv5tel-versatile b/kernel/config.armv5tel-versatile
deleted file mode 100644 (file)
index bee5a61..0000000
+++ /dev/null
@@ -1,1449 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.1.1-2.ip3.armv5tel Kernel Configuration
-#
-CONFIG_ARM=y
-CONFIG_MIGHT_HAVE_PCI=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_SCHED_CLOCK=y
-# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_KTIME_SCALAR=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_VECTORS_BASE=0xffff0000
-# CONFIG_ARM_PATCH_PHYS_VIRT is not set
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_HAVE_IRQ_WORK=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_LZO is not set
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_FHANDLE is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_AUDIT is not set
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
-CONFIG_GENERIC_IRQ_SHOW=y
-# CONFIG_SPARSE_IRQ is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TINY_RCU=y
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_CGROUPS is not set
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-# CONFIG_SCHED_AUTOGROUP is not set
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_RELAY is not set
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-# CONFIG_EXPERT is not set
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-# CONFIG_PERF_EVENTS is not set
-# CONFIG_PERF_COUNTERS is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_COMPAT_BRK=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_PROFILING is not set
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-
-#
-# GCOV-based kernel profiling
-#
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-CONFIG_BLK_DEV_BSG=y
-# CONFIG_BLK_DEV_BSGLIB is not set
-# CONFIG_BLK_DEV_INTEGRITY is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
-CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
-CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-# CONFIG_MUTEX_SPIN_ON_OWNER is not set
-CONFIG_FREEZER=y
-
-#
-# System Type
-#
-CONFIG_MMU=y
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_REALVIEW is not set
-CONFIG_ARCH_VERSATILE=y
-# CONFIG_ARCH_VEXPRESS is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_BCMRING is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CNS3XXX is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_PRIMA2 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_MXS is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP23XX is not set
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_NUC93X is not set
-# CONFIG_ARCH_TEGRA is not set
-# CONFIG_ARCH_PNX4008 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_SHMOBILE is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5P64X0 is not set
-# CONFIG_ARCH_S5PC100 is not set
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_EXYNOS4 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_TCC_926 is not set
-# CONFIG_ARCH_U300 is not set
-# CONFIG_ARCH_U8500 is not set
-# CONFIG_ARCH_NOMADIK is not set
-# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_VT8500 is not set
-# CONFIG_ARCH_ZYNQ is not set
-
-#
-# System MMU
-#
-
-#
-# Versatile platform type
-#
-CONFIG_ARCH_VERSATILE_PB=y
-CONFIG_MACH_VERSATILE_AB=y
-# CONFIG_MACH_VERSATILE_DT is not set
-CONFIG_PLAT_VERSATILE_CLCD=y
-CONFIG_PLAT_VERSATILE_FPGA_IRQ=y
-CONFIG_PLAT_VERSATILE_SCHED_CLOCK=y
-CONFIG_PLAT_VERSATILE=y
-CONFIG_ARM_TIMER_SP804=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_ARM926T=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5TJ=y
-CONFIG_CPU_PABRT_LEGACY=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_COPY_V4WB=y
-CONFIG_CPU_TLB_V4WBI=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-CONFIG_CPU_USE_DOMAINS=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
-CONFIG_ARM_L1_CACHE_SHIFT=5
-CONFIG_ARM_VIC=y
-CONFIG_ARM_VIC_NR=2
-CONFIG_ICST=y
-
-#
-# Bus support
-#
-CONFIG_ARM_AMBA=y
-# CONFIG_PCI is not set
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-# CONFIG_NO_HZ is not set
-# CONFIG_HIGH_RES_TIMERS is not set
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_HZ=100
-# CONFIG_AEABI is not set
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HAVE_ARCH_PFN_VALID=y
-# CONFIG_HIGHMEM is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=999999
-# CONFIG_COMPACTION is not set
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_VIRT_TO_BUS=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_NEED_PER_CPU_KM=y
-# CONFIG_CLEANCACHE is not set
-CONFIG_FORCE_MAX_ZONEORDER=11
-CONFIG_LEDS=y
-CONFIG_LEDS_CPU=y
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-# CONFIG_SECCOMP is not set
-# CONFIG_CC_STACKPROTECTOR is not set
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-
-#
-# Boot options
-#
-# CONFIG_USE_OF is not set
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=1f03 mem=32M"
-CONFIG_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_CMDLINE_EXTEND is not set
-# CONFIG_CMDLINE_FORCE is not set
-# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC is not set
-# CONFIG_CRASH_DUMP is not set
-# CONFIG_AUTO_ZRELADDR is not set
-
-#
-# CPU Power Management
-#
-# CONFIG_CPU_IDLE is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_FPE_NWFPE=y
-# CONFIG_FPE_NWFPE_XP is not set
-# CONFIG_FPE_FASTFPE is not set
-CONFIG_VFP=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_HAVE_AOUT=y
-# CONFIG_BINFMT_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_ARTHUR is not set
-
-#
-# Power management options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-CONFIG_PM_SLEEP=y
-# CONFIG_PM_RUNTIME is not set
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-# CONFIG_APM_EMULATION is not set
-CONFIG_PM_CLK=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_PNP=y
-# CONFIG_IP_PNP_DHCP is not set
-CONFIG_IP_PNP_BOOTP=y
-# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE_DEMUX is not set
-# CONFIG_IP_MROUTE is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
-CONFIG_INET_XFRM_MODE_TRANSPORT=y
-CONFIG_INET_XFRM_MODE_TUNNEL=y
-CONFIG_INET_XFRM_MODE_BEET=y
-CONFIG_INET_LRO=y
-# CONFIG_INET_DIAG is not set
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_NET_DSA is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-# CONFIG_NET_SCHED is not set
-# CONFIG_DCB is not set
-# CONFIG_BATMAN_ADV is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_AF_RXRPC is not set
-CONFIG_WIRELESS=y
-# CONFIG_CFG80211 is not set
-# CONFIG_LIB80211 is not set
-
-#
-# CFG80211 needs to be enabled for MAC80211
-#
-# CONFIG_WIMAX is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-# CONFIG_CAIF is not set
-# CONFIG_CEPH_LIB is not set
-# CONFIG_NFC is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH=""
-# CONFIG_DEVTMPFS is not set
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_CONNECTOR is not set
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_TESTS is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-CONFIG_MTD_CMDLINE_PARTS=y
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_AR7_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-# CONFIG_SM_FTL is not set
-# CONFIG_MTD_OOPS is not set
-# CONFIG_MTD_SWAP is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-CONFIG_MTD_CFI_ADV_OPTIONS=y
-CONFIG_MTD_CFI_NOSWAP=y
-# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
-# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-# CONFIG_MTD_CFI_GEOMETRY is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_OTP is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=y
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-# CONFIG_MTD_PLATRAM is not set
-# CONFIG_MTD_PISMO is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-# CONFIG_MTD_NAND is not set
-# CONFIG_MTD_ONENAND is not set
-
-#
-# LPDDR flash memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
-# CONFIG_MTD_UBI is not set
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
-
-#
-# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
-#
-# CONFIG_BLK_DEV_NBD is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=4096
-# CONFIG_BLK_DEV_XIP is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_BLK_DEV_RBD is not set
-# CONFIG_SENSORS_LIS3LV02D is not set
-# CONFIG_MISC_DEVICES is not set
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-# CONFIG_RAID_ATTRS is not set
-# CONFIG_SCSI is not set
-# CONFIG_SCSI_DMA is not set
-# CONFIG_SCSI_NETLINK is not set
-# CONFIG_ATA is not set
-# CONFIG_MD is not set
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_VETH is not set
-CONFIG_MII=y
-# CONFIG_PHYLIB is not set
-CONFIG_NET_ETHERNET=y
-# CONFIG_AX88796 is not set
-CONFIG_SMC91X=y
-# CONFIG_DM9000 is not set
-# CONFIG_ETHOC is not set
-# CONFIG_SMC911X is not set
-# CONFIG_SMSC911X is not set
-# CONFIG_DNET is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-# CONFIG_B44 is not set
-# CONFIG_KS8851_MLL is not set
-# CONFIG_FTMAC100 is not set
-CONFIG_NETDEV_1000=y
-# CONFIG_STMMAC_ETH is not set
-# CONFIG_FTGMAC100 is not set
-CONFIG_NETDEV_10000=y
-CONFIG_WLAN=y
-# CONFIG_HOSTAP is not set
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-# CONFIG_WAN is not set
-
-#
-# CAIF transport drivers
-#
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_POLLDEV is not set
-# CONFIG_INPUT_SPARSEKMAP is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADP5588 is not set
-# CONFIG_KEYBOARD_ADP5589 is not set
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_QT1070 is not set
-# CONFIG_KEYBOARD_QT2160 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_TCA6416 is not set
-# CONFIG_KEYBOARD_MAX7359 is not set
-# CONFIG_KEYBOARD_MCS is not set
-# CONFIG_KEYBOARD_MPR121 is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-# CONFIG_MOUSE_PS2_ELANTECH is not set
-# CONFIG_MOUSE_PS2_SENTELIC is not set
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_BCM5974 is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_MOUSE_SYNAPTICS_I2C is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-# CONFIG_SERIO_SERPORT is not set
-CONFIG_SERIO_AMBAKMI=y
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_SERIO_ALTERA_PS2 is not set
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=16
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-CONFIG_DEVKMEM=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=m
-CONFIG_SERIAL_8250_NR_UARTS=4
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-CONFIG_SERIAL_8250_RSA=y
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_AMBA_PL011=y
-CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_TIMBERDALE is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-# CONFIG_HVC_DCC is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=m
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_RAMOOPS is not set
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=m
-# CONFIG_I2C_MUX is not set
-CONFIG_I2C_HELPER_AUTO=y
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_DESIGNWARE is not set
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_PXA_PCI is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_I2C_VERSATILE is not set
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_SPI is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-
-#
-# Enable Device Drivers -> PPS to see the PTP clock options.
-#
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-# CONFIG_HWMON is not set
-# CONFIG_THERMAL is not set
-# CONFIG_WATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB is not set
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-# CONFIG_BCMA is not set
-CONFIG_MFD_SUPPORT=y
-# CONFIG_MFD_CORE is not set
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_TWL4030_CORE is not set
-# CONFIG_MFD_STMPE is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_MFD_WL1273_CORE is not set
-# CONFIG_REGULATOR is not set
-# CONFIG_MEDIA_SUPPORT is not set
-
-#
-# Graphics support
-#
-# CONFIG_DRM is not set
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-# CONFIG_FB_SYS_FOPS is not set
-# CONFIG_FB_WMT_GE_ROPS is not set
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-
-#
-# Frame buffer hardware drivers
-#
-CONFIG_FB_ARMCLCD=y
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_BROADSHEET is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-CONFIG_FONTS=y
-# CONFIG_FONT_8x8 is not set
-# CONFIG_FONT_8x16 is not set
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-CONFIG_FONT_ACORN_8x8=y
-# CONFIG_FONT_MINI_4x6 is not set
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-# CONFIG_FONT_10x18 is not set
-# CONFIG_LOGO is not set
-CONFIG_SOUND=y
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-# CONFIG_SND_SEQUENCER is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-# CONFIG_SND_DYNAMIC_MINORS is not set
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-# CONFIG_SND_RAWMIDI_SEQ is not set
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_ALOOP is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-# CONFIG_SND_AC97_POWER_SAVE is not set
-CONFIG_SND_ARM=y
-CONFIG_SND_ARMAACI=m
-# CONFIG_SND_SOC is not set
-# CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=m
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HIDRAW is not set
-# CONFIG_HID_PID is not set
-
-#
-# Special HID drivers
-#
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_ARCH_HAS_HCD=y
-# CONFIG_USB_ARCH_HAS_OHCI is not set
-# CONFIG_USB_ARCH_HAS_EHCI is not set
-# CONFIG_USB is not set
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# OTG and related infrastructure
-#
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-# CONFIG_MMC_UNSAFE_RESUME is not set
-# CONFIG_MMC_CLKGATE is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
-# CONFIG_SDIO_UART is not set
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-CONFIG_MMC_ARMMMCI=m
-# CONFIG_MMC_SDHCI is not set
-# CONFIG_MMC_SDHCI_PXAV3 is not set
-# CONFIG_MMC_SDHCI_PXAV2 is not set
-# CONFIG_MMC_DW is not set
-# CONFIG_MEMSTICK is not set
-# CONFIG_NEW_LEDS is not set
-# CONFIG_ACCESSIBILITY is not set
-CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
-
-#
-# Virtio drivers
-#
-# CONFIG_VIRTIO_BALLOON is not set
-# CONFIG_STAGING is not set
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_HAVE_MACH_CLKDEV=y
-CONFIG_CLKSRC_MMIO=y
-CONFIG_IOMMU_SUPPORT=y
-# CONFIG_VIRT_DRIVERS is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-# CONFIG_EXT3_FS is not set
-# CONFIG_EXT4_FS is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
-CONFIG_EXPORTFS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_FANOTIFY is not set
-# CONFIG_QUOTA is not set
-# CONFIG_QUOTACTL is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_FUSE_FS is not set
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-# CONFIG_MSDOS_FS is not set
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
-# CONFIG_TMPFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-# CONFIG_JFFS2_SUMMARY is not set
-# CONFIG_JFFS2_FS_XATTR is not set
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-# CONFIG_JFFS2_LZO is not set
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_LOGFS is not set
-CONFIG_CRAMFS=y
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-CONFIG_MINIX_FS=y
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-CONFIG_ROMFS_FS=y
-CONFIG_ROMFS_BACKED_BY_BLOCK=y
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-# CONFIG_ROMFS_BACKED_BY_BOTH is not set
-CONFIG_ROMFS_ON_BLOCK=y
-# CONFIG_PSTORE is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-# CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=y
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
-# CONFIG_NFSD_V4 is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-# CONFIG_CEPH_FS is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-# CONFIG_SYSV68_PARTITION is not set
-CONFIG_NLS=m
-CONFIG_NLS_DEFAULT="iso8859-1"
-# CONFIG_NLS_CODEPAGE_437 is not set
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-CONFIG_NLS_CODEPAGE_850=m
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ASCII is not set
-CONFIG_NLS_ISO8859_1=m
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-# CONFIG_NLS_ISO8859_15 is not set
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-# CONFIG_NLS_UTF8 is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-# CONFIG_DEBUG_FS is not set
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-# CONFIG_LOCKUP_DETECTOR is not set
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-# CONFIG_DETECT_HUNG_TASK is not set
-CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_TIMER_STATS is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
-CONFIG_DEBUG_MEMORY_INIT=y
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_ENABLE_DEFAULT_TRACERS is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-# CONFIG_STACK_TRACER is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_STRICT_DEVMEM is not set
-CONFIG_DEBUG_USER=y
-CONFIG_DEBUG_LL=y
-# CONFIG_EARLY_PRINTK is not set
-# CONFIG_DEBUG_ICEDCC is not set
-# CONFIG_OC_ETM is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITYFS is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_DEFAULT_SECURITY=""
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-# CONFIG_CRYPTO_FIPS is not set
-CONFIG_CRYPTO_ALGAPI=m
-CONFIG_CRYPTO_ALGAPI2=m
-CONFIG_CRYPTO_RNG=m
-CONFIG_CRYPTO_RNG2=m
-# CONFIG_CRYPTO_MANAGER is not set
-# CONFIG_CRYPTO_MANAGER2 is not set
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
-# CONFIG_CRYPTO_CRYPTD is not set
-# CONFIG_CRYPTO_AUTHENC is not set
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
-
-#
-# Block modes
-#
-# CONFIG_CRYPTO_CBC is not set
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-# CONFIG_CRYPTO_ECB is not set
-# CONFIG_CRYPTO_LRW is not set
-# CONFIG_CRYPTO_PCBC is not set
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-# CONFIG_CRYPTO_HMAC is not set
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_GHASH is not set
-# CONFIG_CRYPTO_MD4 is not set
-# CONFIG_CRYPTO_MD5 is not set
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-# CONFIG_CRYPTO_SHA1 is not set
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_WP512 is not set
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=m
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_ARC4 is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_DES is not set
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-
-#
-# Compression
-#
-# CONFIG_CRYPTO_DEFLATE is not set
-# CONFIG_CRYPTO_ZLIB is not set
-# CONFIG_CRYPTO_LZO is not set
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-# CONFIG_CRYPTO_USER_API_HASH is not set
-# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
-CONFIG_CRYPTO_HW=y
-# CONFIG_BINARY_PRINTF is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC16 is not set
-# CONFIG_CRC_T10DIF is not set
-# CONFIG_CRC_ITU_T is not set
-CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
-# CONFIG_LIBCRC32C is not set
-# CONFIG_CRC8 is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_NLATTR=y
-CONFIG_GENERIC_ATOMIC64=y
-# CONFIG_AVERAGE is not set
-# CONFIG_CORDIC is not set
diff --git a/kernel/config.i686 b/kernel/config.i686
deleted file mode 100644 (file)
index 6344c96..0000000
+++ /dev/null
@@ -1,4870 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/i386 3.1.1-1.ip3.i686.PAE Kernel Configuration
-#
-# CONFIG_64BIT is not set
-CONFIG_X86_32=y
-# CONFIG_X86_64 is not set
-CONFIG_X86=y
-CONFIG_INSTRUCTION_DECODER=y
-CONFIG_OUTPUT_FORMAT="elf32-i386"
-CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_MMU=y
-CONFIG_ZONE_DMA=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_GPIO=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-# CONFIG_GENERIC_TIME_VSYSCALL is not set
-CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_DEFAULT_IDLE=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_ZONE_DMA32 is not set
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-# CONFIG_AUDIT_ARCH is not set
-CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_HAVE_INTEL_TXT=y
-CONFIG_X86_32_SMP=y
-CONFIG_X86_HT=y
-CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
-CONFIG_KTIME_SCALAR=y
-CONFIG_ARCH_CPU_PROBE_RELEASE=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_HAVE_IRQ_WORK=y
-CONFIG_IRQ_WORK=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_BZIP2=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-# CONFIG_KERNEL_GZIP is not set
-# CONFIG_KERNEL_BZIP2 is not set
-# CONFIG_KERNEL_LZMA is not set
-CONFIG_KERNEL_XZ=y
-# CONFIG_KERNEL_LZO is not set
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_BSD_PROCESS_ACCT=y
-# CONFIG_BSD_PROCESS_ACCT_V3 is not set
-CONFIG_FHANDLE=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
-CONFIG_AUDIT_WATCH=y
-CONFIG_AUDIT_TREE=y
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_IRQ_FORCED_THREADING=y
-# CONFIG_SPARSE_IRQ is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
-CONFIG_RCU_FAST_NO_HZ=y
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_RESOURCE_COUNTERS=y
-CONFIG_CGROUP_MEM_RES_CTLR=y
-CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
-# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_RT_GROUP_SCHED=y
-CONFIG_BLK_CGROUP=y
-# CONFIG_DEBUG_BLK_CGROUP is not set
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_SCHED_AUTOGROUP=y
-CONFIG_MM_OWNER=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-# CONFIG_EXPERT is not set
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_PCSPKR_PLATFORM=y
-CONFIG_HAVE_PCSPKR_PLATFORM=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-CONFIG_PERF_COUNTERS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_PROFILING is not set
-CONFIG_TRACEPOINTS=y
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-CONFIG_JUMP_LABEL=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_OPTPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
-CONFIG_HAVE_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_PERF_EVENTS_NMI=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_STOP_MACHINE=y
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_THROTTLING=y
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_CFQ_GROUP_IOSCHED=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_PADATA=y
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
-CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
-CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_FREEZER=y
-
-#
-# Processor type and features
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_SMP=y
-CONFIG_X86_MPPARSE=y
-CONFIG_X86_BIGSMP=y
-CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_INTEL_MID is not set
-# CONFIG_X86_RDC321X is not set
-# CONFIG_X86_32_NON_STANDARD is not set
-CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
-# CONFIG_X86_32_IRIS is not set
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_PARAVIRT_GUEST=y
-CONFIG_PARAVIRT_TIME_ACCOUNTING=y
-# CONFIG_XEN is not set
-# CONFIG_XEN_PRIVILEGED_GUEST is not set
-CONFIG_KVM_CLOCK=y
-CONFIG_KVM_GUEST=y
-# CONFIG_LGUEST_GUEST is not set
-CONFIG_PARAVIRT=y
-# CONFIG_PARAVIRT_SPINLOCKS is not set
-CONFIG_PARAVIRT_CLOCK=y
-# CONFIG_PARAVIRT_DEBUG is not set
-CONFIG_NO_BOOTMEM=y
-# CONFIG_MEMTEST is not set
-# CONFIG_M386 is not set
-# CONFIG_M486 is not set
-# CONFIG_M586 is not set
-# CONFIG_M586TSC is not set
-# CONFIG_M586MMX is not set
-CONFIG_M686=y
-# CONFIG_MPENTIUMII is not set
-# CONFIG_MPENTIUMIII is not set
-# CONFIG_MPENTIUMM is not set
-# CONFIG_MPENTIUM4 is not set
-# CONFIG_MK6 is not set
-# CONFIG_MK7 is not set
-# CONFIG_MK8 is not set
-# CONFIG_MCRUSOE is not set
-# CONFIG_MEFFICEON is not set
-# CONFIG_MWINCHIPC6 is not set
-# CONFIG_MWINCHIP3D is not set
-# CONFIG_MELAN is not set
-# CONFIG_MGEODEGX1 is not set
-# CONFIG_MGEODE_LX is not set
-# CONFIG_MCYRIXIII is not set
-# CONFIG_MVIAC3_2 is not set
-# CONFIG_MVIAC7 is not set
-# CONFIG_MCORE2 is not set
-# CONFIG_MATOM is not set
-CONFIG_X86_GENERIC=y
-CONFIG_X86_INTERNODE_CACHE_SHIFT=7
-CONFIG_X86_CMPXCHG=y
-CONFIG_CMPXCHG_LOCAL=y
-CONFIG_CMPXCHG_DOUBLE=y
-CONFIG_X86_L1_CACHE_SHIFT=6
-CONFIG_X86_XADD=y
-CONFIG_X86_PPRO_FENCE=y
-CONFIG_X86_WP_WORKS_OK=y
-CONFIG_X86_INVLPG=y
-CONFIG_X86_BSWAP=y
-CONFIG_X86_POPAD_OK=y
-CONFIG_X86_ALIGNMENT_16=y
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_USE_PPRO_CHECKSUM=y
-CONFIG_X86_TSC=y
-CONFIG_X86_CMPXCHG64=y
-CONFIG_X86_CMOV=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=5
-CONFIG_X86_DEBUGCTLMSR=y
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_CYRIX_32=y
-CONFIG_CPU_SUP_AMD=y
-CONFIG_CPU_SUP_CENTAUR=y
-CONFIG_CPU_SUP_TRANSMETA_32=y
-CONFIG_CPU_SUP_UMC_32=y
-CONFIG_HPET_TIMER=y
-CONFIG_HPET_EMULATE_RTC=y
-CONFIG_DMI=y
-# CONFIG_IOMMU_HELPER is not set
-CONFIG_NR_CPUS=256
-CONFIG_SCHED_SMT=y
-CONFIG_SCHED_MC=y
-CONFIG_IRQ_TIME_ACCOUNTING=y
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
-CONFIG_X86_MCE=y
-CONFIG_X86_MCE_INTEL=y
-CONFIG_X86_MCE_AMD=y
-# CONFIG_X86_ANCIENT_MCE is not set
-CONFIG_X86_MCE_THRESHOLD=y
-# CONFIG_X86_MCE_INJECT is not set
-CONFIG_X86_THERMAL_VECTOR=y
-CONFIG_VM86=y
-CONFIG_TOSHIBA=m
-CONFIG_I8K=m
-# CONFIG_X86_REBOOTFIXUPS is not set
-CONFIG_MICROCODE=m
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_MICROCODE_OLD_INTERFACE=y
-CONFIG_X86_MSR=y
-CONFIG_X86_CPUID=y
-# CONFIG_NOHIGHMEM is not set
-# CONFIG_HIGHMEM4G is not set
-CONFIG_HIGHMEM64G=y
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_HIGHMEM=y
-CONFIG_X86_PAE=y
-CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_NUMA=y
-# CONFIG_NUMA_EMU is not set
-CONFIG_NODES_SHIFT=3
-CONFIG_HAVE_ARCH_BOOTMEM=y
-CONFIG_HAVE_ARCH_ALLOC_REMAP=y
-CONFIG_ARCH_HAVE_MEMORY_PRESENT=y
-CONFIG_NEED_NODE_MEMMAP_SIZE=y
-CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
-CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ILLEGAL_POINTER_VALUE=0
-CONFIG_SELECT_MEMORY_MODEL=y
-# CONFIG_FLATMEM_MANUAL is not set
-CONFIG_DISCONTIGMEM_MANUAL=y
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_DISCONTIGMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_HAVE_MEMORY_PRESENT=y
-CONFIG_SPARSEMEM_STATIC=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_COMPACTION=y
-CONFIG_MIGRATION=y
-CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_MMU_NOTIFIER=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_MEMORY_FAILURE=y
-# CONFIG_HWPOISON_INJECT is not set
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
-CONFIG_CLEANCACHE=y
-CONFIG_HIGHPTE=y
-# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
-CONFIG_X86_RESERVE_LOW=64
-# CONFIG_MATH_EMULATION is not set
-CONFIG_MTRR=y
-CONFIG_MTRR_SANITIZER=y
-CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
-CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
-CONFIG_X86_PAT=y
-CONFIG_ARCH_USES_PG_UNCACHED=y
-CONFIG_EFI=y
-CONFIG_SECCOMP=y
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_250 is not set
-CONFIG_HZ_300=y
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=300
-CONFIG_SCHED_HRTICK=y
-CONFIG_KEXEC=y
-CONFIG_CRASH_DUMP=y
-# CONFIG_KEXEC_JUMP is not set
-CONFIG_PHYSICAL_START=0x400000
-CONFIG_RELOCATABLE=y
-CONFIG_X86_NEED_RELOCS=y
-CONFIG_PHYSICAL_ALIGN=0x400000
-CONFIG_HOTPLUG_CPU=y
-# CONFIG_CMDLINE_BOOL is not set
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_USE_PERCPU_NUMA_NODE_ID=y
-
-#
-# Power management and ACPI options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_RUNTIME=y
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_ACPI=y
-CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_PROCFS=y
-CONFIG_ACPI_PROCFS_POWER=y
-CONFIG_ACPI_EC_DEBUGFS=m
-# CONFIG_ACPI_PROC_EVENT is not set
-CONFIG_ACPI_AC=y
-CONFIG_ACPI_BATTERY=y
-CONFIG_ACPI_BUTTON=y
-CONFIG_ACPI_VIDEO=m
-CONFIG_ACPI_FAN=y
-CONFIG_ACPI_DOCK=y
-CONFIG_ACPI_PROCESSOR=y
-CONFIG_ACPI_IPMI=m
-CONFIG_ACPI_HOTPLUG_CPU=y
-CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
-CONFIG_ACPI_THERMAL=y
-# CONFIG_ACPI_NUMA is not set
-# CONFIG_ACPI_CUSTOM_DSDT is not set
-CONFIG_ACPI_BLACKLIST_YEAR=1999
-# CONFIG_ACPI_DEBUG is not set
-CONFIG_ACPI_PCI_SLOT=y
-CONFIG_X86_PM_TIMER=y
-CONFIG_ACPI_CONTAINER=y
-CONFIG_ACPI_SBS=m
-CONFIG_ACPI_HED=y
-CONFIG_ACPI_CUSTOM_METHOD=m
-CONFIG_ACPI_APEI=y
-CONFIG_ACPI_APEI_GHES=y
-CONFIG_ACPI_APEI_PCIEAER=y
-CONFIG_ACPI_APEI_MEMORY_FAILURE=y
-# CONFIG_ACPI_APEI_EINJ is not set
-# CONFIG_ACPI_APEI_ERST_DEBUG is not set
-CONFIG_SFI=y
-CONFIG_X86_APM_BOOT=y
-CONFIG_APM=y
-# CONFIG_APM_IGNORE_USER_SUSPEND is not set
-# CONFIG_APM_DO_ENABLE is not set
-CONFIG_APM_CPU_IDLE=y
-# CONFIG_APM_DISPLAY_BLANK is not set
-# CONFIG_APM_ALLOW_INTS is not set
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
-CONFIG_CPU_FREQ_STAT=m
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-
-#
-# x86 CPU frequency scaling drivers
-#
-CONFIG_X86_PCC_CPUFREQ=m
-CONFIG_X86_ACPI_CPUFREQ=m
-# CONFIG_X86_POWERNOW_K6 is not set
-CONFIG_X86_POWERNOW_K7=y
-CONFIG_X86_POWERNOW_K7_ACPI=y
-CONFIG_X86_POWERNOW_K8=m
-# CONFIG_X86_GX_SUSPMOD is not set
-# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
-CONFIG_X86_SPEEDSTEP_ICH=y
-CONFIG_X86_SPEEDSTEP_SMI=y
-CONFIG_X86_P4_CLOCKMOD=m
-# CONFIG_X86_CPUFREQ_NFORCE2 is not set
-CONFIG_X86_LONGRUN=y
-# CONFIG_X86_LONGHAUL is not set
-# CONFIG_X86_E_POWERSAVER is not set
-
-#
-# shared options
-#
-CONFIG_X86_SPEEDSTEP_LIB=y
-# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-CONFIG_INTEL_IDLE=y
-
-#
-# Bus options (PCI etc.)
-#
-CONFIG_PCI=y
-# CONFIG_PCI_GOBIOS is not set
-# CONFIG_PCI_GOMMCONFIG is not set
-# CONFIG_PCI_GODIRECT is not set
-CONFIG_PCI_GOANY=y
-CONFIG_PCI_BIOS=y
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCI_DOMAINS=y
-# CONFIG_PCI_CNB20LE_QUIRK is not set
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
-CONFIG_PCIEAER=y
-CONFIG_PCIE_ECRC=y
-CONFIG_PCIEAER_INJECT=m
-CONFIG_PCIEASPM=y
-# CONFIG_PCIEASPM_DEBUG is not set
-CONFIG_PCIE_PME=y
-CONFIG_ARCH_SUPPORTS_MSI=y
-CONFIG_PCI_MSI=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_PCI_STUB=y
-CONFIG_HT_IRQ=y
-CONFIG_PCI_IOV=y
-CONFIG_PCI_IOAPIC=y
-CONFIG_PCI_LABEL=y
-CONFIG_ISA_DMA_API=y
-# CONFIG_ISA is not set
-# CONFIG_MCA is not set
-# CONFIG_SCx200 is not set
-CONFIG_AMD_NB=y
-CONFIG_PCCARD=m
-# CONFIG_PCMCIA is not set
-CONFIG_CARDBUS=y
-
-#
-# PC-card bridges
-#
-CONFIG_YENTA=m
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
-CONFIG_HOTPLUG_PCI=y
-CONFIG_HOTPLUG_PCI_FAKE=m
-CONFIG_HOTPLUG_PCI_COMPAQ=m
-# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
-CONFIG_HOTPLUG_PCI_IBM=m
-CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-# CONFIG_HOTPLUG_PCI_CPCI is not set
-# CONFIG_HOTPLUG_PCI_SHPC is not set
-# CONFIG_RAPIDIO is not set
-
-#
-# Executable file formats / Emulations
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_HAVE_AOUT=y
-CONFIG_BINFMT_MISC=y
-CONFIG_HAVE_ATOMIC_IOMAP=y
-CONFIG_HAVE_TEXT_POKE_SMP=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=y
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-CONFIG_XFRM_STATISTICS=y
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_FIB_TRIE_STATS=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-# CONFIG_IP_PNP is not set
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-# CONFIG_ARPD is not set
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=y
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-# CONFIG_NETLABEL is not set
-CONFIG_NETWORK_SECMARK=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CT_PROTO_DCCP=m
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=m
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NETFILTER_TPROXY=m
-CONFIG_NETFILTER_XTABLES=y
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-CONFIG_NETFILTER_XT_SET=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-# CONFIG_NETFILTER_XT_MATCH_IPVS is not set
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_HASH_NETIFACE=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_PROTO_SCTP=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_IPV4=m
-# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
-# CONFIG_IP_NF_QUEUE is not set
-CONFIG_IP_NF_IPTABLES=y
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
-# CONFIG_IP_NF_TARGET_ULOG is not set
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_DCCP=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_PROTO_UDPLITE=m
-CONFIG_NF_NAT_PROTO_SCTP=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_CONNTRACK_IPV6=m
-# CONFIG_IP6_NF_QUEUE is not set
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-# CONFIG_BRIDGE_EBT_ULOG is not set
-CONFIG_BRIDGE_EBT_NFLOG=m
-# CONFIG_IP_DCCP is not set
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_MSG is not set
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-# CONFIG_SCTP_HMAC_SHA1 is not set
-CONFIG_SCTP_HMAC_MD5=y
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-# CONFIG_ATM_LANE is not set
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_DEBUGFS=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_NET_DSA=y
-CONFIG_NET_DSA_TAG_DSA=y
-CONFIG_NET_DSA_TAG_EDSA=y
-CONFIG_NET_DSA_TAG_TRAILER=y
-CONFIG_NET_DSA_MV88E6XXX=y
-CONFIG_NET_DSA_MV88E6060=y
-CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
-CONFIG_NET_DSA_MV88E6131=y
-CONFIG_NET_DSA_MV88E6123_61_65=y
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFB=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_CHOKE=m
-CONFIG_NET_SCH_QFQ=m
-CONFIG_NET_SCH_INGRESS=m
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-CONFIG_NET_CLS_IND=y
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_DCB is not set
-CONFIG_DNS_RESOLVER=y
-# CONFIG_BATMAN_ADV is not set
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_XPS=y
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NET_DROP_MONITOR is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_CMTP=m
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_ATH3K=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIVHCI=m
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_BT_WILINK=m
-# CONFIG_AF_RXRPC is not set
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-CONFIG_NL80211_TESTMODE=y
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_CFG80211_DEBUGFS=y
-# CONFIG_CFG80211_INTERNAL_REGDB is not set
-CONFIG_CFG80211_WEXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_MINSTREL_HT=y
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-CONFIG_MAC80211_DEBUGFS=y
-# CONFIG_MAC80211_DEBUG_MENU is not set
-# CONFIG_WIMAX is not set
-CONFIG_RFKILL=m
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-# CONFIG_NET_9P is not set
-# CONFIG_CAIF is not set
-# CONFIG_CEPH_LIB is not set
-# CONFIG_NFC is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-# CONFIG_FIRMWARE_IN_KERNEL is not set
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-# CONFIG_MTD is not set
-CONFIG_PARPORT=m
-CONFIG_PARPORT_PC=m
-CONFIG_PARPORT_SERIAL=m
-# CONFIG_PARPORT_PC_FIFO is not set
-# CONFIG_PARPORT_PC_SUPERIO is not set
-# CONFIG_PARPORT_GSC is not set
-# CONFIG_PARPORT_AX88796 is not set
-CONFIG_PARPORT_1284=y
-CONFIG_PARPORT_NOT_PC=y
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG_MESSAGES is not set
-
-#
-# Protocols
-#
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_FD=m
-# CONFIG_PARIDE is not set
-CONFIG_BLK_CPQ_DA=m
-CONFIG_BLK_CPQ_CISS_DA=m
-# CONFIG_CISS_SCSI_TAPE is not set
-CONFIG_BLK_DEV_DAC960=m
-CONFIG_BLK_DEV_UMEM=m
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-# CONFIG_BLK_DEV_DRBD is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_OSD is not set
-CONFIG_BLK_DEV_SX8=m
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
-# CONFIG_BLK_DEV_XIP is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-CONFIG_VIRTIO_BLK=m
-# CONFIG_BLK_DEV_HD is not set
-# CONFIG_BLK_DEV_RBD is not set
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_MISC_DEVICES=y
-# CONFIG_AD525X_DPOT is not set
-# CONFIG_IBM_ASM is not set
-# CONFIG_PHANTOM is not set
-# CONFIG_INTEL_MID_PTI is not set
-# CONFIG_SGI_IOC4 is not set
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-# CONFIG_CS5535_MFGPT is not set
-CONFIG_HP_ILO=m
-# CONFIG_APDS9802ALS is not set
-# CONFIG_ISL29003 is not set
-# CONFIG_ISL29020 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-# CONFIG_SENSORS_BH1780 is not set
-# CONFIG_SENSORS_BH1770 is not set
-# CONFIG_SENSORS_APDS990X is not set
-# CONFIG_HMC6352 is not set
-CONFIG_DS1682=m
-CONFIG_VMWARE_BALLOON=m
-# CONFIG_BMP085 is not set
-CONFIG_PCH_PHUB=m
-CONFIG_USB_SWITCH_FSA9480=m
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-CONFIG_CB710_DEBUG_ASSUMPTIONS=y
-# CONFIG_IWMC3200TOP is not set
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-# CONFIG_SENSORS_LIS3_I2C is not set
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_TGT=m
-CONFIG_SCSI_NETLINK=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=m
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_MULTI_LUN=y
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_FC_TGT_ATTRS=y
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-CONFIG_SCSI_SRP_TGT_ATTRS=y
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_CXGB3_ISCSI=m
-CONFIG_SCSI_CXGB4_ISCSI=m
-CONFIG_SCSI_BNX2_ISCSI=m
-CONFIG_SCSI_BNX2X_FCOE=m
-CONFIG_BE2ISCSI=m
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_HPSA=m
-CONFIG_SCSI_3W_9XXX=m
-CONFIG_SCSI_3W_SAS=m
-CONFIG_SCSI_ACARD=m
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
-CONFIG_AIC7XXX_RESET_DELAY_MS=5000
-CONFIG_AIC7XXX_DEBUG_ENABLE=y
-CONFIG_AIC7XXX_DEBUG_MASK=0
-CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=32
-CONFIG_AIC79XX_RESET_DELAY_MS=4000
-# CONFIG_AIC79XX_DEBUG_ENABLE is not set
-CONFIG_AIC79XX_DEBUG_MASK=0
-# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_SCSI_MVSAS=m
-# CONFIG_SCSI_MVSAS_DEBUG is not set
-CONFIG_SCSI_MVSAS_TASKLET=y
-CONFIG_SCSI_DPT_I2O=m
-CONFIG_SCSI_ADVANSYS=m
-CONFIG_SCSI_ARCMSR=m
-# CONFIG_SCSI_ARCMSR_AER is not set
-CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=m
-CONFIG_MEGARAID_MAILBOX=m
-CONFIG_MEGARAID_LEGACY=m
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-# CONFIG_SCSI_MPT2SAS_LOGGING is not set
-CONFIG_SCSI_HPTIOP=m
-CONFIG_SCSI_BUSLOGIC=m
-CONFIG_SCSI_FLASHPOINT=y
-CONFIG_VMWARE_PVSCSI=m
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-CONFIG_FCOE_FNIC=m
-CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_EATA=m
-CONFIG_SCSI_EATA_TAGGED_QUEUE=y
-# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
-CONFIG_SCSI_EATA_MAX_TAGS=16
-CONFIG_SCSI_FUTURE_DOMAIN=m
-CONFIG_SCSI_GDTH=m
-CONFIG_SCSI_ISCI=m
-CONFIG_SCSI_IPS=m
-CONFIG_SCSI_INITIO=m
-CONFIG_SCSI_INIA100=m
-CONFIG_SCSI_PPA=m
-CONFIG_SCSI_IMM=m
-# CONFIG_SCSI_IZIP_EPP16 is not set
-# CONFIG_SCSI_IZIP_SLOW_CTR is not set
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-CONFIG_SCSI_IPR=m
-CONFIG_SCSI_IPR_TRACE=y
-CONFIG_SCSI_IPR_DUMP=y
-CONFIG_SCSI_QLOGIC_1280=m
-CONFIG_SCSI_QLA_FC=m
-CONFIG_SCSI_QLA_ISCSI=m
-CONFIG_SCSI_LPFC=m
-# CONFIG_SCSI_LPFC_DEBUG_FS is not set
-CONFIG_SCSI_DC395x=m
-CONFIG_SCSI_DC390T=m
-CONFIG_SCSI_NSP32=m
-# CONFIG_SCSI_DEBUG is not set
-CONFIG_SCSI_PMCRAID=m
-CONFIG_SCSI_PM8001=m
-# CONFIG_SCSI_SRP is not set
-CONFIG_SCSI_BFA_FC=m
-CONFIG_SCSI_DH=m
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-CONFIG_SCSI_OSD_INITIATOR=m
-CONFIG_SCSI_OSD_ULD=m
-CONFIG_SCSI_OSD_DPRINT_SENSE=1
-# CONFIG_SCSI_OSD_DEBUG is not set
-CONFIG_ATA=y
-# CONFIG_ATA_NONSTANDARD is not set
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_ATA_ACPI=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI=y
-CONFIG_SATA_AHCI_PLATFORM=m
-CONFIG_SATA_INIC162X=m
-CONFIG_SATA_ACARD_AHCI=m
-CONFIG_SATA_SIL24=m
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_SX4=m
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-CONFIG_ATA_PIIX=y
-CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_SVW=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-
-#
-# PATA SFF controllers with BMDMA
-#
-CONFIG_PATA_ALI=m
-CONFIG_PATA_AMD=m
-CONFIG_PATA_ARASAN_CF=m
-CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_CMD64X=m
-CONFIG_PATA_CS5520=m
-CONFIG_PATA_CS5530=m
-CONFIG_PATA_CS5535=m
-CONFIG_PATA_CS5536=m
-CONFIG_PATA_CYPRESS=m
-CONFIG_PATA_EFAR=m
-CONFIG_PATA_HPT366=m
-CONFIG_PATA_HPT37X=m
-CONFIG_PATA_HPT3X2N=m
-CONFIG_PATA_HPT3X3=m
-# CONFIG_PATA_HPT3X3_DMA is not set
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_JMICRON=m
-CONFIG_PATA_MARVELL=m
-CONFIG_PATA_NETCELL=m
-CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87415=m
-CONFIG_PATA_OLDPIIX=m
-CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PDC2027X=m
-CONFIG_PATA_PDC_OLD=m
-# CONFIG_PATA_RADISYS is not set
-CONFIG_PATA_RDC=m
-# CONFIG_PATA_SC1200 is not set
-CONFIG_PATA_SCH=m
-CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_SIL680=m
-CONFIG_PATA_SIS=m
-CONFIG_PATA_TOSHIBA=m
-CONFIG_PATA_TRIFLEX=m
-CONFIG_PATA_VIA=m
-CONFIG_PATA_WINBOND=m
-
-#
-# PIO-only SFF controllers
-#
-CONFIG_PATA_CMD640_PCI=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_NS87410=m
-CONFIG_PATA_OPTI=m
-CONFIG_PATA_RZ1000=m
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_PATA_ACPI=m
-CONFIG_ATA_GENERIC=m
-# CONFIG_PATA_LEGACY is not set
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-CONFIG_MD_AUTODETECT=y
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-# CONFIG_MULTICORE_RAID456 is not set
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=y
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=y
-CONFIG_DM_MIRROR=y
-CONFIG_DM_RAID=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_ZERO=y
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-# CONFIG_DM_DELAY is not set
-CONFIG_DM_UEVENT=y
-# CONFIG_DM_FLAKEY is not set
-# CONFIG_TARGET_CORE is not set
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=40
-CONFIG_FUSION_CTL=m
-CONFIG_FUSION_LOGGING=y
-
-#
-# IEEE 1394 (FireWire) support
-#
-CONFIG_FIREWIRE=m
-CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_OHCI_DEBUG=y
-CONFIG_FIREWIRE_SBP2=m
-# CONFIG_FIREWIRE_NET is not set
-# CONFIG_FIREWIRE_NOSY is not set
-CONFIG_I2O=m
-# CONFIG_I2O_LCT_NOTIFY_ON_CHANGES is not set
-CONFIG_I2O_EXT_ADAPTEC=y
-CONFIG_I2O_EXT_ADAPTEC_DMA64=y
-CONFIG_I2O_CONFIG=m
-CONFIG_I2O_CONFIG_OLD_IOCTL=y
-CONFIG_I2O_BUS=m
-CONFIG_I2O_BLOCK=m
-CONFIG_I2O_SCSI=m
-CONFIG_I2O_PROC=m
-# CONFIG_MACINTOSH_DRIVERS is not set
-CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
-CONFIG_BONDING=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-CONFIG_VETH=m
-# CONFIG_NET_SB1000 is not set
-# CONFIG_ARCNET is not set
-CONFIG_MII=m
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MICREL_PHY=m
-CONFIG_FIXED_PHY=y
-CONFIG_MDIO_BITBANG=m
-# CONFIG_MDIO_GPIO is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_ETHOC=m
-CONFIG_DNET=m
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_MWI is not set
-CONFIG_TULIP_MMIO=y
-CONFIG_TULIP_NAPI=y
-CONFIG_TULIP_NAPI_HW_MITIGATION=y
-CONFIG_DE4X5=m
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_PCMCIA_XIRCOM=m
-CONFIG_HP100=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_KSZ884X_PCI=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
-CONFIG_E100=m
-CONFIG_FEALNX=m
-CONFIG_NATSEMI=m
-CONFIG_NE2K_PCI=m
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-# CONFIG_8139TOO_PIO is not set
-# CONFIG_8139TOO_TUNE_TWISTER is not set
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R6040=m
-CONFIG_SIS900=m
-CONFIG_EPIC100=m
-CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_TLAN=m
-# CONFIG_KS8842 is not set
-# CONFIG_KS8851_MLL is not set
-CONFIG_VIA_RHINE=m
-CONFIG_VIA_RHINE_MMIO=y
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_SKGE_GENESIS=y
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_STMMAC_ETH=m
-# CONFIG_STMMAC_DA is not set
-# CONFIG_STMMAC_DUAL_MAC is not set
-CONFIG_PCH_GBE=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4VF=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGBEVF=m
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLCNIC=m
-CONFIG_QLGE=m
-CONFIG_BNA=m
-CONFIG_SFC=m
-CONFIG_BE2NET=m
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_AIRO=m
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_AT76C50X_USB=m
-# CONFIG_PRISM54 is not set
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_RTL8180=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_ADM8211=m
-CONFIG_MAC80211_HWSIM=m
-CONFIG_MWL8K=m
-CONFIG_ATH_COMMON=m
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH5K=m
-CONFIG_ATH5K_DEBUG=y
-# CONFIG_ATH5K_TRACER is not set
-CONFIG_ATH5K_PCI=y
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K=m
-CONFIG_ATH9K_PCI=y
-CONFIG_ATH9K_AHB=y
-CONFIG_ATH9K_DEBUGFS=y
-CONFIG_ATH9K_RATE_CONTROL=y
-CONFIG_ATH9K_HTC=m
-# CONFIG_ATH9K_HTC_DEBUGFS is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-# CONFIG_CARL9170_DEBUGFS is not set
-CONFIG_CARL9170_WPC=y
-CONFIG_B43=m
-CONFIG_B43_SSB=y
-CONFIG_B43_PCI_AUTOSELECT=y
-CONFIG_B43_PCICORE_AUTOSELECT=y
-CONFIG_B43_SDIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-# CONFIG_B43LEGACY_DEBUG is not set
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBIPW=m
-# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLAGN=m
-
-#
-# Debugging Options
-#
-# CONFIG_IWLWIFI_DEBUG is not set
-CONFIG_IWLWIFI_DEBUGFS=y
-# CONFIG_IWLWIFI_DEVICE_TRACING is not set
-CONFIG_IWLWIFI_DEVICE_SVTOOL=y
-# CONFIG_IWL_P2P is not set
-CONFIG_IWLWIFI_LEGACY=m
-
-#
-# Debugging Options
-#
-# CONFIG_IWLWIFI_LEGACY_DEBUG is not set
-CONFIG_IWLWIFI_LEGACY_DEBUGFS=y
-# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
-# CONFIG_IWM is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_HERMES=m
-# CONFIG_HERMES_PRISM is not set
-CONFIG_HERMES_CACHE_FW_ON_INIT=y
-CONFIG_PLX_HERMES=m
-CONFIG_TMD_HERMES=m
-CONFIG_NORTEL_HERMES=m
-CONFIG_ORINOCO_USB=m
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
-CONFIG_P54_LEDS=y
-CONFIG_RT2X00=m
-CONFIG_RT2400PCI=m
-CONFIG_RT2500PCI=m
-CONFIG_RT61PCI=m
-CONFIG_RT2800PCI=m
-CONFIG_RT2800PCI_RT33XX=y
-CONFIG_RT2800PCI_RT35XX=y
-CONFIG_RT2800PCI_RT53XX=y
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2X00_LIB_PCI=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-CONFIG_RT2X00_LIB_DEBUGFS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_RTL8192CE=m
-CONFIG_RTL8192SE=m
-CONFIG_RTL8192DE=m
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTL8192C_COMMON=m
-CONFIG_WL1251=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX_MENU=m
-CONFIG_WL12XX=m
-# CONFIG_WL12XX_HT is not set
-CONFIG_WL12XX_SDIO=m
-# CONFIG_WL12XX_SDIO_TEST is not set
-CONFIG_WL12XX_PLATFORM_DATA=y
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-# CONFIG_WAN is not set
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_FIRESTREAM=m
-# CONFIG_ATM_ZATM is not set
-CONFIG_ATM_NICSTAR=m
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-# CONFIG_ATM_AMBASSADOR is not set
-# CONFIG_ATM_HORIZON is not set
-# CONFIG_ATM_IA is not set
-# CONFIG_ATM_FORE200E is not set
-CONFIG_ATM_HE=m
-# CONFIG_ATM_HE_USE_SUNI is not set
-CONFIG_ATM_SOLOS=m
-
-#
-# CAIF transport drivers
-#
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-# CONFIG_SLIP is not set
-CONFIG_SLHC=m
-# CONFIG_NET_FC is not set
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NETPOLL_TRAP=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_VIRTIO_NET=m
-CONFIG_VMXNET3=m
-CONFIG_ISDN=y
-CONFIG_ISDN_I4L=m
-CONFIG_ISDN_PPP=y
-CONFIG_ISDN_PPP_VJ=y
-CONFIG_ISDN_MPP=y
-CONFIG_IPPP_FILTER=y
-CONFIG_ISDN_PPP_BSDCOMP=m
-CONFIG_ISDN_AUDIO=y
-CONFIG_ISDN_TTY_FAX=y
-
-#
-# ISDN feature submodules
-#
-CONFIG_ISDN_DIVERSION=m
-
-#
-# ISDN4Linux hardware drivers
-#
-
-#
-# Passive cards
-#
-CONFIG_ISDN_DRV_HISAX=m
-
-#
-# D-channel protocol features
-#
-CONFIG_HISAX_EURO=y
-CONFIG_DE_AOC=y
-CONFIG_HISAX_NO_SENDCOMPLETE=y
-CONFIG_HISAX_NO_LLC=y
-CONFIG_HISAX_NO_KEYPAD=y
-CONFIG_HISAX_1TR6=y
-CONFIG_HISAX_NI1=y
-CONFIG_HISAX_MAX_CARDS=8
-
-#
-# HiSax supported cards
-#
-CONFIG_HISAX_16_3=y
-CONFIG_HISAX_TELESPCI=y
-CONFIG_HISAX_S0BOX=y
-CONFIG_HISAX_FRITZPCI=y
-CONFIG_HISAX_AVM_A1_PCMCIA=y
-CONFIG_HISAX_ELSA=y
-CONFIG_HISAX_DIEHLDIVA=y
-CONFIG_HISAX_SEDLBAUER=y
-CONFIG_HISAX_NETJET=y
-CONFIG_HISAX_NETJET_U=y
-CONFIG_HISAX_NICCY=y
-CONFIG_HISAX_BKM_A4T=y
-CONFIG_HISAX_SCT_QUADRO=y
-CONFIG_HISAX_GAZEL=y
-CONFIG_HISAX_HFC_PCI=y
-CONFIG_HISAX_W6692=y
-CONFIG_HISAX_HFC_SX=y
-CONFIG_HISAX_ENTERNOW_PCI=y
-# CONFIG_HISAX_DEBUG is not set
-
-#
-# HiSax PCMCIA card service modules
-#
-
-#
-# HiSax sub driver modules
-#
-CONFIG_HISAX_ST5481=m
-CONFIG_HISAX_HFCUSB=m
-CONFIG_HISAX_HFC4S8S=m
-CONFIG_HISAX_FRITZ_PCIPNP=m
-
-#
-# Active cards
-#
-CONFIG_ISDN_CAPI=m
-CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
-CONFIG_CAPI_TRACE=y
-CONFIG_ISDN_CAPI_MIDDLEWARE=y
-CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIDRV=m
-
-#
-# CAPI hardware drivers
-#
-CONFIG_CAPI_AVM=y
-CONFIG_ISDN_DRV_AVMB1_B1PCI=m
-CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
-CONFIG_ISDN_DRV_AVMB1_T1PCI=m
-CONFIG_ISDN_DRV_AVMB1_C4=m
-CONFIG_CAPI_EICON=y
-CONFIG_ISDN_DIVAS=m
-CONFIG_ISDN_DIVAS_BRIPCI=y
-CONFIG_ISDN_DIVAS_PRIPCI=y
-CONFIG_ISDN_DIVAS_DIVACAPI=m
-CONFIG_ISDN_DIVAS_USERIDI=m
-CONFIG_ISDN_DIVAS_MAINT=m
-CONFIG_ISDN_DRV_GIGASET=m
-CONFIG_GIGASET_CAPI=y
-# CONFIG_GIGASET_I4L is not set
-# CONFIG_GIGASET_DUMMYLL is not set
-CONFIG_GIGASET_BASE=m
-CONFIG_GIGASET_M105=m
-CONFIG_GIGASET_M101=m
-# CONFIG_GIGASET_DEBUG is not set
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-# CONFIG_MISDN is not set
-CONFIG_ISDN_HDLC=m
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-CONFIG_INPUT_POLLDEV=m
-CONFIG_INPUT_SPARSEKMAP=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADP5588 is not set
-# CONFIG_KEYBOARD_ADP5589 is not set
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_QT1070 is not set
-# CONFIG_KEYBOARD_QT2160 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-CONFIG_KEYBOARD_GPIO=m
-CONFIG_KEYBOARD_GPIO_POLLED=m
-# CONFIG_KEYBOARD_TCA6416 is not set
-# CONFIG_KEYBOARD_MATRIX is not set
-# CONFIG_KEYBOARD_LM8323 is not set
-# CONFIG_KEYBOARD_MAX7359 is not set
-# CONFIG_KEYBOARD_MCS is not set
-# CONFIG_KEYBOARD_MPR121 is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_LIFEBOOK=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_SENTELIC=y
-CONFIG_MOUSE_PS2_TOUCHKIT=y
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_VSXXXAA=m
-# CONFIG_MOUSE_GPIO is not set
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_AD714X is not set
-CONFIG_INPUT_PCSPKR=m
-# CONFIG_INPUT_MMA8450 is not set
-# CONFIG_INPUT_MPU3050 is not set
-CONFIG_INPUT_APANEL=m
-CONFIG_INPUT_WISTRON_BTNS=m
-CONFIG_INPUT_ATLAS_BTNS=m
-CONFIG_INPUT_ATI_REMOTE=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-# CONFIG_INPUT_KXTJ9 is not set
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_UINPUT=m
-# CONFIG_INPUT_PCF8574 is not set
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-# CONFIG_INPUT_ADXL34X is not set
-# CONFIG_INPUT_CMA3000 is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=m
-# CONFIG_SERIO_CT82C710 is not set
-# CONFIG_SERIO_PARKBD is not set
-# CONFIG_SERIO_PCIPS2 is not set
-CONFIG_SERIO_LIBPS2=y
-CONFIG_SERIO_RAW=m
-CONFIG_SERIO_ALTERA_PS2=m
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_ROCKETPORT=m
-CONFIG_CYCLADES=m
-# CONFIG_CYZ_INTR is not set
-# CONFIG_MOXA_INTELLIO is not set
-# CONFIG_MOXA_SMARTIO is not set
-CONFIG_SYNCLINK=m
-CONFIG_SYNCLINKMP=m
-CONFIG_SYNCLINK_GT=m
-CONFIG_NOZOMI=m
-# CONFIG_ISI is not set
-CONFIG_N_HDLC=m
-CONFIG_N_GSM=m
-# CONFIG_TRACE_SINK is not set
-# CONFIG_STALDRV is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_PNP=y
-CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-CONFIG_SERIAL_8250_RSA=y
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_MFD_HSU is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_SERIAL_JSM=m
-# CONFIG_SERIAL_TIMBERDALE is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_PCH_UART is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-CONFIG_PRINTER=m
-CONFIG_LP_CONSOLE=y
-CONFIG_PPDEV=m
-CONFIG_HVC_DRIVER=y
-CONFIG_VIRTIO_CONSOLE=m
-CONFIG_IPMI_HANDLER=m
-# CONFIG_IPMI_PANIC_EVENT is not set
-CONFIG_IPMI_DEVICE_INTERFACE=m
-CONFIG_IPMI_SI=m
-CONFIG_IPMI_WATCHDOG=m
-CONFIG_IPMI_POWEROFF=m
-CONFIG_HW_RANDOM=y
-CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_INTEL=m
-CONFIG_HW_RANDOM_AMD=m
-CONFIG_HW_RANDOM_GEODE=m
-CONFIG_HW_RANDOM_VIA=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_NVRAM=y
-CONFIG_R3964=m
-# CONFIG_APPLICOM is not set
-CONFIG_SONYPI=m
-CONFIG_MWAVE=m
-CONFIG_PC8736x_GPIO=m
-CONFIG_NSC_GPIO=m
-CONFIG_RAW_DRIVER=y
-CONFIG_MAX_RAW_DEVS=8192
-CONFIG_HPET=y
-# CONFIG_HPET_MMAP is not set
-CONFIG_HANGCHECK_TIMER=m
-# CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
-# CONFIG_RAMOOPS is not set
-CONFIG_I2C=m
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=m
-# CONFIG_I2C_MUX is not set
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-CONFIG_I2C_ALI1535=m
-CONFIG_I2C_ALI1563=m
-CONFIG_I2C_ALI15X3=m
-CONFIG_I2C_AMD756=m
-CONFIG_I2C_AMD756_S4882=m
-CONFIG_I2C_AMD8111=m
-CONFIG_I2C_I801=m
-CONFIG_I2C_ISCH=m
-CONFIG_I2C_PIIX4=m
-CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_NFORCE2_S4985=m
-CONFIG_I2C_SIS5595=m
-CONFIG_I2C_SIS630=m
-CONFIG_I2C_SIS96X=m
-CONFIG_I2C_VIA=m
-CONFIG_I2C_VIAPRO=m
-
-#
-# ACPI drivers
-#
-CONFIG_I2C_SCMI=m
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_GPIO is not set
-# CONFIG_I2C_INTEL_MID is not set
-# CONFIG_I2C_OCORES is not set
-CONFIG_I2C_PCA_PLATFORM=m
-# CONFIG_I2C_PXA_PCI is not set
-CONFIG_I2C_SIMTEC=m
-# CONFIG_I2C_XILINX is not set
-# CONFIG_I2C_EG20T is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_PARPORT=m
-CONFIG_I2C_PARPORT_LIGHT=m
-# CONFIG_I2C_TAOS_EVM is not set
-CONFIG_I2C_TINY_USB=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-CONFIG_I2C_STUB=m
-CONFIG_SCx200_ACB=m
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_SPI is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-
-#
-# Enable Device Drivers -> PPS to see the PTP clock options.
-#
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-CONFIG_GPIOLIB=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-
-#
-# Memory mapped GPIO drivers:
-#
-# CONFIG_GPIO_GENERIC_PLATFORM is not set
-# CONFIG_GPIO_IT8761E is not set
-CONFIG_GPIO_SCH=m
-# CONFIG_GPIO_VX855 is not set
-
-#
-# I2C GPIO expanders:
-#
-# CONFIG_GPIO_MAX7300 is not set
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_ADP5588 is not set
-
-#
-# PCI GPIO expanders:
-#
-# CONFIG_GPIO_CS5535 is not set
-# CONFIG_GPIO_LANGWELL is not set
-# CONFIG_GPIO_PCH is not set
-# CONFIG_GPIO_ML_IOH is not set
-# CONFIG_GPIO_RDC321X is not set
-
-#
-# SPI GPIO expanders:
-#
-# CONFIG_GPIO_MCP23S08 is not set
-
-#
-# AC97 GPIO expanders:
-#
-
-#
-# MODULbus GPIO expanders:
-#
-CONFIG_W1=m
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-# CONFIG_W1_MASTER_MATROX is not set
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
-# CONFIG_W1_MASTER_GPIO is not set
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2408=m
-CONFIG_W1_SLAVE_DS2423=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-CONFIG_W1_SLAVE_DS2433_CRC=y
-CONFIG_W1_SLAVE_DS2760=m
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_BQ27000=m
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-# CONFIG_TEST_POWER is not set
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_BQ20Z75 is not set
-# CONFIG_BATTERY_BQ27x00 is not set
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_CHARGER_ISP1704 is not set
-# CONFIG_CHARGER_MAX8903 is not set
-# CONFIG_CHARGER_GPIO is not set
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-CONFIG_SENSORS_ABITUGURU=m
-CONFIG_SENSORS_ABITUGURU3=m
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_K8TEMP=m
-CONFIG_SENSORS_K10TEMP=m
-CONFIG_SENSORS_FAM15H_POWER=m
-CONFIG_SENSORS_ASB100=m
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_I5K_AMB=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_FSCHMD=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-# CONFIG_SENSORS_GPIO_FAN is not set
-CONFIG_SENSORS_CORETEMP=m
-CONFIG_SENSORS_IBMAEM=m
-CONFIG_SENSORS_IBMPEX=m
-CONFIG_SENSORS_IT87=m
-# CONFIG_SENSORS_JC42 is not set
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-CONFIG_SENSORS_ADM1275=m
-CONFIG_SENSORS_LM25066=m
-CONFIG_SENSORS_MAX16064=m
-CONFIG_SENSORS_MAX34440=m
-CONFIG_SENSORS_MAX8688=m
-CONFIG_SENSORS_UCD9000=m
-CONFIG_SENSORS_UCD9200=m
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SIS5595=m
-# CONFIG_SENSORS_SMM665 is not set
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-# CONFIG_SENSORS_EMC2103 is not set
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_ADS1015=m
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_AMC6821=m
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_VIA_CPUTEMP=m
-CONFIG_SENSORS_VIA686A=m
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_VT8231=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-# CONFIG_SENSORS_W83795_FANCTRL is not set
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_APPLESMC=m
-
-#
-# ACPI drivers
-#
-CONFIG_SENSORS_ACPI_POWER=m
-CONFIG_SENSORS_ATK0110=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_HWMON=y
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-CONFIG_WATCHDOG_NOWAYOUT=y
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-# CONFIG_ACQUIRE_WDT is not set
-# CONFIG_ADVANTECH_WDT is not set
-CONFIG_ALIM1535_WDT=m
-CONFIG_ALIM7101_WDT=m
-CONFIG_F71808E_WDT=m
-CONFIG_SP5100_TCO=m
-# CONFIG_SC520_WDT is not set
-CONFIG_SBC_FITPC2_WATCHDOG=m
-# CONFIG_EUROTECH_WDT is not set
-CONFIG_IB700_WDT=m
-CONFIG_IBMASR=m
-# CONFIG_WAFER_WDT is not set
-CONFIG_I6300ESB_WDT=m
-CONFIG_ITCO_WDT=m
-# CONFIG_ITCO_VENDOR_SUPPORT is not set
-CONFIG_IT8712F_WDT=m
-CONFIG_IT87_WDT=m
-CONFIG_HP_WATCHDOG=m
-CONFIG_HPWDT_NMI_DECODING=y
-# CONFIG_SC1200_WDT is not set
-# CONFIG_PC87413_WDT is not set
-CONFIG_NV_TCO=m
-# CONFIG_60XX_WDT is not set
-# CONFIG_SBC8360_WDT is not set
-# CONFIG_SBC7240_WDT is not set
-# CONFIG_CPU5_WDT is not set
-CONFIG_SMSC_SCH311X_WDT=m
-# CONFIG_SMSC37B787_WDT is not set
-CONFIG_W83627HF_WDT=m
-CONFIG_W83697HF_WDT=m
-CONFIG_W83697UG_WDT=m
-CONFIG_W83877F_WDT=m
-CONFIG_W83977F_WDT=m
-CONFIG_MACHZ_WDT=m
-# CONFIG_SBC_EPX_C3_WATCHDOG is not set
-
-#
-# PCI-based Watchdog Cards
-#
-CONFIG_PCIPCWATCHDOG=m
-CONFIG_WDTPCI=m
-
-#
-# USB-based Watchdog Cards
-#
-CONFIG_USBPCWATCHDOG=m
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB=m
-CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-# CONFIG_SSB_DEBUG is not set
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-# CONFIG_BCMA is not set
-CONFIG_MFD_SUPPORT=y
-CONFIG_MFD_CORE=m
-CONFIG_MFD_SM501=m
-CONFIG_MFD_SM501_GPIO=y
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_UCB1400_CORE is not set
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_MFD_TMIO is not set
-CONFIG_MFD_WM8400=m
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_ABX500_CORE is not set
-CONFIG_MFD_CS5535=m
-# CONFIG_MFD_TIMBERDALE is not set
-CONFIG_LPC_SCH=m
-# CONFIG_MFD_RDC321X is not set
-# CONFIG_MFD_JANZ_CMODIO is not set
-CONFIG_MFD_VX855=m
-CONFIG_MFD_WL1273_CORE=m
-# CONFIG_REGULATOR is not set
-CONFIG_MEDIA_SUPPORT=m
-
-#
-# Multimedia core support
-#
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_COMMON=m
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_DVB_CORE=m
-CONFIG_DVB_NET=y
-CONFIG_VIDEO_MEDIA=m
-
-#
-# Multimedia drivers
-#
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_RC_CORE=m
-CONFIG_LIRC=m
-CONFIG_RC_MAP=m
-CONFIG_IR_NEC_DECODER=m
-CONFIG_IR_RC5_DECODER=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_IR_RC5_SZ_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
-CONFIG_IR_LIRC_CODEC=m
-CONFIG_IR_ENE=m
-CONFIG_IR_IMON=m
-CONFIG_IR_MCEUSB=m
-CONFIG_IR_ITE_CIR=m
-CONFIG_IR_FINTEK=m
-CONFIG_IR_NUVOTON=m
-CONFIG_IR_REDRAT3=m
-CONFIG_IR_STREAMZAP=m
-CONFIG_IR_WINBOND_CIR=m
-CONFIG_RC_LOOPBACK=m
-CONFIG_MEDIA_ATTACH=y
-CONFIG_MEDIA_TUNER=m
-CONFIG_MEDIA_TUNER_CUSTOMISE=y
-
-#
-# Customize TV tuners
-#
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DMA_CONTIG=m
-CONFIG_VIDEOBUF_DVB=m
-CONFIG_VIDEO_BTCX=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_TDA7432=m
-CONFIG_VIDEO_TDA9840=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS5345=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_WM8739=m
-CONFIG_VIDEO_VP27SMPX=m
-
-#
-# RDS decoders
-#
-CONFIG_VIDEO_SAA6588=m
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_ADV7180=m
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_BT866=m
-CONFIG_VIDEO_KS0127=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_VPX3220=m
-
-#
-# Video and audio decoders
-#
-CONFIG_VIDEO_SAA717X=m
-CONFIG_VIDEO_CX25840=m
-
-#
-# MPEG video encoders
-#
-CONFIG_VIDEO_CX2341X=m
-
-#
-# Video encoders
-#
-CONFIG_VIDEO_SAA7127=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_OV7670=m
-CONFIG_VIDEO_MT9V011=m
-
-#
-# Flash devices
-#
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-
-#
-# Miscelaneous helper chips
-#
-CONFIG_VIDEO_M52790=m
-# CONFIG_VIDEO_VIVI is not set
-CONFIG_VIDEO_BT848=m
-CONFIG_VIDEO_BT848_DVB=y
-CONFIG_VIDEO_BWQCAM=m
-CONFIG_VIDEO_CQCAM=m
-CONFIG_VIDEO_W9966=m
-CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
-CONFIG_VIDEO_MEYE=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_TIMBERDALE=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX23885=m
-# CONFIG_MEDIA_ALTERA_CI is not set
-CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_IVTV=m
-CONFIG_VIDEO_FB_IVTV=m
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_SAA7164=m
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_SR030PC30=m
-CONFIG_VIDEO_VIA_CAMERA=m
-CONFIG_VIDEO_NOON010PC30=m
-# CONFIG_VIDEO_M5MOLS is not set
-CONFIG_SOC_CAMERA=m
-CONFIG_SOC_CAMERA_IMX074=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_SOC_CAMERA_MT9T031=m
-CONFIG_SOC_CAMERA_MT9T112=m
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_SOC_CAMERA_RJ54N1=m
-CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_SOC_CAMERA_PLATFORM=m
-CONFIG_SOC_CAMERA_OV2640=m
-CONFIG_SOC_CAMERA_OV5642=m
-CONFIG_SOC_CAMERA_OV6650=m
-CONFIG_SOC_CAMERA_OV772X=m
-CONFIG_SOC_CAMERA_OV9640=m
-CONFIG_SOC_CAMERA_OV9740=m
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_HDPVR=m
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_VIDEO_EM28XX_RC=y
-CONFIG_VIDEO_TLG2300=m
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_USBVISION=m
-# CONFIG_USB_ET61X251 is not set
-# CONFIG_USB_SN9C102 is not set
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-# CONFIG_VIDEO_MEM2MEM_TESTDEV is not set
-CONFIG_RADIO_ADAPTERS=y
-CONFIG_RADIO_MAXIRADIO=m
-CONFIG_I2C_SI4713=m
-CONFIG_RADIO_SI4713=m
-CONFIG_USB_DSBR=m
-CONFIG_RADIO_SI470X=y
-CONFIG_USB_SI470X=m
-CONFIG_I2C_SI470X=m
-CONFIG_USB_MR800=m
-# CONFIG_RADIO_TEA5764 is not set
-# CONFIG_RADIO_SAA7706H is not set
-# CONFIG_RADIO_TEF6862 is not set
-CONFIG_RADIO_WL1273=m
-
-#
-# Texas Instruments WL128x FM driver (ST based)
-#
-# CONFIG_RADIO_WL128X is not set
-CONFIG_DVB_MAX_ADAPTERS=8
-CONFIG_DVB_DYNAMIC_MINORS=y
-CONFIG_DVB_CAPTURE_DRIVERS=y
-
-#
-# Supported SAA7146 based PCI Adapters
-#
-CONFIG_TTPCI_EEPROM=m
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
-
-#
-# Supported USB Adapters
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_CE6230=m
-CONFIG_DVB_USB_FRIIO=m
-CONFIG_DVB_USB_EC168=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_LME2510=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_SMS_SIANO_MDTV=m
-
-#
-# Siano module components
-#
-CONFIG_SMS_USB_DRV=m
-# CONFIG_SMS_SDIO_DRV is not set
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
-
-#
-# Supported BT878 Adapters
-#
-CONFIG_DVB_BT8XX=m
-
-#
-# Supported Pluto2 Adapters
-#
-CONFIG_DVB_PLUTO2=m
-
-#
-# Supported SDMC DM1105 Adapters
-#
-CONFIG_DVB_DM1105=m
-
-#
-# Supported FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_INPUT=y
-
-#
-# Supported Earthsoft PT1 Adapters
-#
-CONFIG_DVB_PT1=m
-
-#
-# Supported Mantis Adapters
-#
-CONFIG_MANTIS_CORE=m
-CONFIG_DVB_MANTIS=m
-CONFIG_DVB_HOPPER=m
-
-#
-# Supported nGene Adapters
-#
-CONFIG_DVB_NGENE=m
-
-#
-# Supported ddbridge ('Octopus') Adapters
-#
-# CONFIG_DVB_DDBRIDGE is not set
-
-#
-# Supported DVB Frontends
-#
-CONFIG_DVB_FE_CUSTOMISE=y
-
-#
-# Customise DVB Frontends
-#
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV6110x=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_MB86A16=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_S5H1432=m
-CONFIG_DVB_DRXD=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_DIB9000=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_EC100=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_CXD2820R=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_S5H1411=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_S921=m
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_LGS8GL5=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_IX2505V=m
-
-#
-# Tools to develop new frontends
-#
-# CONFIG_DVB_DUMMY_FE is not set
-
-#
-# Graphics support
-#
-CONFIG_AGP=y
-CONFIG_AGP_ALI=y
-CONFIG_AGP_ATI=y
-CONFIG_AGP_AMD=y
-CONFIG_AGP_AMD64=y
-CONFIG_AGP_INTEL=y
-CONFIG_AGP_NVIDIA=y
-CONFIG_AGP_SIS=y
-CONFIG_AGP_SWORKS=y
-CONFIG_AGP_VIA=y
-CONFIG_AGP_EFFICEON=y
-CONFIG_VGA_ARB=y
-CONFIG_VGA_ARB_MAX_GPUS=16
-CONFIG_VGA_SWITCHEROO=y
-CONFIG_DRM=m
-CONFIG_DRM_KMS_HELPER=m
-CONFIG_DRM_TTM=m
-CONFIG_DRM_TDFX=m
-CONFIG_DRM_R128=m
-CONFIG_DRM_RADEON=m
-CONFIG_DRM_RADEON_KMS=y
-CONFIG_DRM_I810=m
-CONFIG_DRM_I915=m
-CONFIG_DRM_I915_KMS=y
-CONFIG_DRM_MGA=m
-CONFIG_DRM_SIS=m
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
-CONFIG_STUB_POULSBO=m
-CONFIG_VGASTATE=m
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-CONFIG_FB_DDC=m
-CONFIG_FB_BOOT_VESA_SUPPORT=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=m
-# CONFIG_FB_WMT_GE_ROPS is not set
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_SVGALIB=m
-# CONFIG_FB_MACMODES is not set
-CONFIG_FB_BACKLIGHT=y
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-CONFIG_FB_CIRRUS=m
-# CONFIG_FB_PM2 is not set
-# CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_ARC is not set
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_IMSTT is not set
-CONFIG_FB_VGA16=m
-# CONFIG_FB_UVESA is not set
-CONFIG_FB_VESA=y
-CONFIG_FB_EFI=y
-# CONFIG_FB_N411 is not set
-# CONFIG_FB_HGA is not set
-# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_NVIDIA=m
-CONFIG_FB_NVIDIA_I2C=y
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-# CONFIG_FB_RIVA_I2C is not set
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-CONFIG_FB_I810=m
-CONFIG_FB_I810_GTF=y
-CONFIG_FB_I810_I2C=y
-# CONFIG_FB_LE80578 is not set
-CONFIG_FB_MATROX=m
-CONFIG_FB_MATROX_MILLENIUM=y
-CONFIG_FB_MATROX_MYSTIQUE=y
-CONFIG_FB_MATROX_G=y
-CONFIG_FB_MATROX_I2C=m
-CONFIG_FB_MATROX_MAVEN=m
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-CONFIG_FB_ATY_GENERIC_LCD=y
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-CONFIG_FB_SAVAGE_ACCEL=y
-# CONFIG_FB_SIS is not set
-CONFIG_FB_VIA=m
-# CONFIG_FB_VIA_DIRECT_PROCFS is not set
-CONFIG_FB_VIA_X_COMPATIBILITY=y
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-CONFIG_FB_3DFX_ACCEL=y
-CONFIG_FB_3DFX_I2C=y
-CONFIG_FB_VOODOO1=m
-# CONFIG_FB_VT8623 is not set
-CONFIG_FB_TRIDENT=m
-# CONFIG_FB_ARK is not set
-# CONFIG_FB_PM3 is not set
-# CONFIG_FB_CARMINE is not set
-CONFIG_FB_GEODE=y
-CONFIG_FB_GEODE_LX=y
-CONFIG_FB_GEODE_GX=y
-# CONFIG_FB_GEODE_GX1 is not set
-# CONFIG_FB_TMIO is not set
-CONFIG_FB_SM501=m
-CONFIG_FB_UDL=m
-CONFIG_FB_VIRTUAL=m
-CONFIG_FB_METRONOME=m
-CONFIG_FB_MB862XX=m
-CONFIG_FB_MB862XX_PCI_GDC=y
-CONFIG_FB_MB862XX_I2C=y
-# CONFIG_FB_BROADSHEET is not set
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_PLATFORM=m
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_BACKLIGHT_PROGEAR=m
-CONFIG_BACKLIGHT_APPLE=m
-# CONFIG_BACKLIGHT_SAHARA is not set
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-
-#
-# Display device support
-#
-CONFIG_DISPLAY_SUPPORT=m
-
-#
-# Display hardware drivers
-#
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-CONFIG_VGACON_SOFT_SCROLLBACK=y
-CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-CONFIG_LOGO_LINUX_CLUT224=y
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_JACK=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_SEQUENCER_OSS=y
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_DYNAMIC_MINORS=y
-# CONFIG_SND_SUPPORT_OLD_API is not set
-CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VERBOSE_PRINTK=y
-CONFIG_SND_DEBUG=y
-# CONFIG_SND_DEBUG_VERBOSE is not set
-CONFIG_SND_PCM_XRUN_DEBUG=y
-CONFIG_SND_VMASTER=y
-CONFIG_SND_DMA_SGBUF=y
-CONFIG_SND_RAWMIDI_SEQ=m
-CONFIG_SND_OPL3_LIB_SEQ=m
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-CONFIG_SND_EMU10K1_SEQ=m
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_VX_LIB=m
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_DRIVERS=y
-CONFIG_SND_PCSP=m
-CONFIG_SND_DUMMY=m
-CONFIG_SND_ALOOP=m
-CONFIG_SND_VIRMIDI=m
-CONFIG_SND_MTPAV=m
-CONFIG_SND_MTS64=m
-CONFIG_SND_SERIAL_U16550=m
-CONFIG_SND_MPU401=m
-CONFIG_SND_PORTMAN2X4=m
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-CONFIG_SND_SB_COMMON=m
-CONFIG_SND_SB16_DSP=m
-CONFIG_SND_TEA575X=m
-CONFIG_SND_PCI=y
-CONFIG_SND_AD1889=m
-CONFIG_SND_ALS300=m
-CONFIG_SND_ALS4000=m
-CONFIG_SND_ALI5451=m
-CONFIG_SND_ASIHPI=m
-CONFIG_SND_ATIIXP=m
-CONFIG_SND_ATIIXP_MODEM=m
-CONFIG_SND_AU8810=m
-CONFIG_SND_AU8820=m
-CONFIG_SND_AU8830=m
-# CONFIG_SND_AW2 is not set
-CONFIG_SND_AZT3328=m
-CONFIG_SND_BT87X=m
-# CONFIG_SND_BT87X_OVERCLOCK is not set
-CONFIG_SND_CA0106=m
-CONFIG_SND_CMIPCI=m
-CONFIG_SND_OXYGEN_LIB=m
-CONFIG_SND_OXYGEN=m
-CONFIG_SND_CS4281=m
-CONFIG_SND_CS46XX=m
-CONFIG_SND_CS46XX_NEW_DSP=y
-CONFIG_SND_CS5530=m
-CONFIG_SND_CS5535AUDIO=m
-CONFIG_SND_CTXFI=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-CONFIG_SND_EMU10K1=m
-CONFIG_SND_EMU10K1X=m
-CONFIG_SND_ENS1370=m
-CONFIG_SND_ENS1371=m
-CONFIG_SND_ES1938=m
-CONFIG_SND_ES1968=m
-CONFIG_SND_ES1968_INPUT=y
-CONFIG_SND_ES1968_RADIO=y
-CONFIG_SND_FM801=m
-CONFIG_SND_FM801_TEA575X_BOOL=y
-CONFIG_SND_HDA_INTEL=m
-CONFIG_SND_HDA_PREALLOC_SIZE=64
-CONFIG_SND_HDA_HWDEP=y
-CONFIG_SND_HDA_RECONFIG=y
-CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INPUT_BEEP_MODE=1
-CONFIG_SND_HDA_INPUT_JACK=y
-# CONFIG_SND_HDA_PATCH_LOADER is not set
-CONFIG_SND_HDA_CODEC_REALTEK=y
-CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
-CONFIG_SND_HDA_CODEC_ANALOG=y
-CONFIG_SND_HDA_CODEC_SIGMATEL=y
-CONFIG_SND_HDA_CODEC_VIA=y
-CONFIG_SND_HDA_CODEC_HDMI=y
-CONFIG_SND_HDA_CODEC_CIRRUS=y
-CONFIG_SND_HDA_CODEC_CONEXANT=y
-CONFIG_SND_HDA_CODEC_CA0110=y
-CONFIG_SND_HDA_CODEC_CA0132=y
-CONFIG_SND_HDA_CODEC_CMEDIA=y
-CONFIG_SND_HDA_CODEC_SI3054=y
-CONFIG_SND_HDA_GENERIC=y
-# CONFIG_SND_HDA_POWER_SAVE is not set
-CONFIG_SND_HDSP=m
-CONFIG_SND_HDSPM=m
-CONFIG_SND_ICE1712=m
-CONFIG_SND_ICE1724=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
-CONFIG_SND_KORG1212=m
-CONFIG_SND_LOLA=m
-CONFIG_SND_LX6464ES=m
-CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MAESTRO3_INPUT=y
-CONFIG_SND_MIXART=m
-CONFIG_SND_NM256=m
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-CONFIG_SND_RME32=m
-CONFIG_SND_RME96=m
-CONFIG_SND_RME9652=m
-CONFIG_SND_SIS7019=m
-CONFIG_SND_SONICVIBES=m
-CONFIG_SND_TRIDENT=m
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
-CONFIG_SND_VIRTUOSO=m
-CONFIG_SND_VX222=m
-CONFIG_SND_YMFPCI=m
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_USX2Y=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_US122L=m
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_FIREWIRE=y
-CONFIG_SND_FIREWIRE_LIB=m
-CONFIG_SND_FIREWIRE_SPEAKERS=m
-# CONFIG_SND_ISIGHT is not set
-# CONFIG_SND_SOC is not set
-# CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=m
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-CONFIG_HIDRAW=y
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=y
-# CONFIG_HID_ACRUX is not set
-CONFIG_HID_APPLE=y
-CONFIG_HID_BELKIN=y
-CONFIG_HID_CHERRY=y
-CONFIG_HID_CHICONY=y
-# CONFIG_HID_PRODIKEYS is not set
-CONFIG_HID_CYPRESS=y
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EMS_FF is not set
-# CONFIG_HID_ELECOM is not set
-CONFIG_HID_EZKEY=y
-# CONFIG_HID_HOLTEK is not set
-CONFIG_HID_KEYTOUCH=m
-CONFIG_HID_KYE=y
-# CONFIG_HID_UCLOGIC is not set
-# CONFIG_HID_WALTOP is not set
-CONFIG_HID_GYRATION=m
-CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=y
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LOGITECH=y
-# CONFIG_LOGITECH_FF is not set
-# CONFIG_LOGIRUMBLEPAD2_FF is not set
-# CONFIG_LOGIG940_FF is not set
-# CONFIG_LOGIWII_FF is not set
-# CONFIG_HID_MAGICMOUSE is not set
-CONFIG_HID_MICROSOFT=y
-CONFIG_HID_MONTEREY=y
-# CONFIG_HID_MULTITOUCH is not set
-# CONFIG_HID_NTRIG is not set
-CONFIG_HID_ORTEK=m
-# CONFIG_HID_PANTHERLORD is not set
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LCD=y
-CONFIG_HID_PICOLCD_LEDS=y
-# CONFIG_HID_QUANTA is not set
-CONFIG_HID_ROCCAT=m
-CONFIG_HID_ROCCAT_COMMON=m
-CONFIG_HID_ROCCAT_ARVO=m
-CONFIG_HID_ROCCAT_KONE=m
-CONFIG_HID_ROCCAT_KONEPLUS=m
-CONFIG_HID_ROCCAT_KOVAPLUS=m
-CONFIG_HID_ROCCAT_PYRA=m
-CONFIG_HID_SAMSUNG=m
-# CONFIG_HID_SONY is not set
-CONFIG_HID_SPEEDLINK=m
-CONFIG_HID_SUNPLUS=m
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-CONFIG_HID_TOPSEED=m
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_WACOM is not set
-# CONFIG_HID_WIIMOTE is not set
-# CONFIG_HID_ZEROPLUS is not set
-CONFIG_HID_ZYDACRON=m
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_DEVICE_CLASS is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
-# CONFIG_USB_OTG is not set
-CONFIG_USB_MON=m
-CONFIG_USB_WUSB=m
-CONFIG_USB_WUSB_CBAF=m
-# CONFIG_USB_WUSB_CBAF_DEBUG is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_XHCI_HCD=m
-# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-CONFIG_USB_ISP1362_HCD=m
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=y
-# CONFIG_USB_U132_HCD is not set
-CONFIG_USB_SL811_HCD=m
-CONFIG_USB_SL811_HCD_ISO=y
-# CONFIG_USB_R8A66597_HCD is not set
-CONFIG_USB_WHCI_HCD=m
-CONFIG_USB_HWA_HCD=m
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-
-#
-# USB port drivers
-#
-CONFIG_USB_USS720=m
-CONFIG_USB_SERIAL=m
-CONFIG_USB_EZUSB=y
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-# CONFIG_USB_SERIAL_EMPEG is not set
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_FUNSOFT=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-# CONFIG_USB_SERIAL_GARMIN is not set
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-CONFIG_USB_SERIAL_KLSI=m
-# CONFIG_USB_SERIAL_KOBIL_SCT is not set
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7715_PARPORT=y
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MOTOROLA=m
-# CONFIG_USB_SERIAL_NAVMAN is not set
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-# CONFIG_USB_SERIAL_HP4X is not set
-# CONFIG_USB_SERIAL_SAFE is not set
-CONFIG_USB_SERIAL_SIEMENS_MPI=m
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-# CONFIG_USB_SERIAL_SYMBOL is not set
-# CONFIG_USB_SERIAL_TI is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-# CONFIG_USB_SERIAL_OMNINET is not set
-# CONFIG_USB_SERIAL_OPTICON is not set
-# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
-# CONFIG_USB_SERIAL_ZIO is not set
-CONFIG_USB_SERIAL_SSU100=m
-# CONFIG_USB_SERIAL_DEBUG is not set
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_IDMOUSE is not set
-CONFIG_USB_FTDI_ELAN=m
-# CONFIG_USB_APPLEDISPLAY is not set
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-CONFIG_USB_IOWARRIOR=m
-# CONFIG_USB_TEST is not set
-# CONFIG_USB_ISIGHTFW is not set
-CONFIG_USB_YUREX=m
-CONFIG_USB_ATM=m
-CONFIG_USB_SPEEDTOUCH=m
-CONFIG_USB_CXACRU=m
-CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_XUSBATM=m
-# CONFIG_USB_GADGET is not set
-
-#
-# OTG and related infrastructure
-#
-CONFIG_USB_OTG_UTILS=y
-# CONFIG_USB_GPIO_VBUS is not set
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_UWB=m
-CONFIG_UWB_HWA=m
-CONFIG_UWB_WHCI=m
-CONFIG_UWB_I1480U=m
-CONFIG_MMC=m
-# CONFIG_MMC_DEBUG is not set
-# CONFIG_MMC_UNSAFE_RESUME is not set
-# CONFIG_MMC_CLKGATE is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=m
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=y
-CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_WBSD=m
-CONFIG_MMC_TIFM_SD=m
-CONFIG_MMC_CB710=m
-CONFIG_MMC_VIA_SDMMC=m
-CONFIG_MMC_VUB300=m
-CONFIG_MMC_USHC=m
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
-CONFIG_MEMSTICK_R592=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-
-#
-# LED drivers
-#
-CONFIG_LEDS_LM3530=m
-CONFIG_LEDS_ALIX2=m
-# CONFIG_LEDS_PCA9532 is not set
-# CONFIG_LEDS_GPIO is not set
-CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_CLEVO_MAIL=m
-# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_BD2802 is not set
-CONFIG_LEDS_INTEL_SS4200=m
-CONFIG_LEDS_LT3593=m
-CONFIG_LEDS_DELL_NETBOOKS=m
-CONFIG_LEDS_TRIGGERS=y
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
-CONFIG_EDAC=y
-
-#
-# Reporting subsystems
-#
-# CONFIG_EDAC_DEBUG is not set
-CONFIG_EDAC_DECODE_MCE=m
-CONFIG_EDAC_MCE_INJ=m
-CONFIG_EDAC_MM_EDAC=m
-CONFIG_EDAC_MCE=y
-CONFIG_EDAC_AMD76X=m
-CONFIG_EDAC_E7XXX=m
-CONFIG_EDAC_E752X=m
-CONFIG_EDAC_I82875P=m
-CONFIG_EDAC_I82975X=m
-CONFIG_EDAC_I3000=m
-CONFIG_EDAC_I3200=m
-CONFIG_EDAC_X38=m
-CONFIG_EDAC_I5400=m
-CONFIG_EDAC_I7CORE=m
-CONFIG_EDAC_I82860=m
-CONFIG_EDAC_R82600=m
-CONFIG_EDAC_I5000=m
-CONFIG_EDAC_I5100=m
-CONFIG_EDAC_I7300=m
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_DS3232=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-# CONFIG_RTC_DRV_S35390A is not set
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-CONFIG_RTC_DRV_RV3029C2=m
-
-#
-# SPI RTC drivers
-#
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=y
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_STK17TA8=m
-# CONFIG_RTC_DRV_M48T86 is not set
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_MSM6242=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_RP5C01=m
-CONFIG_RTC_DRV_V3020=m
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-# CONFIG_INTEL_MID_DMAC is not set
-CONFIG_INTEL_IOATDMA=m
-CONFIG_TIMB_DMA=m
-CONFIG_PCH_DMA=m
-CONFIG_DMA_ENGINE=y
-
-#
-# DMA Clients
-#
-CONFIG_NET_DMA=y
-CONFIG_ASYNC_TX_DMA=y
-# CONFIG_DMATEST is not set
-CONFIG_DCA=m
-# CONFIG_AUXDISPLAY is not set
-CONFIG_UIO=m
-# CONFIG_UIO_CIF is not set
-# CONFIG_UIO_PDRV is not set
-# CONFIG_UIO_PDRV_GENIRQ is not set
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-CONFIG_UIO_PCI_GENERIC=m
-# CONFIG_UIO_NETX is not set
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_RING=m
-
-#
-# Virtio drivers
-#
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_BALLOON=m
-CONFIG_STAGING=y
-CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
-# CONFIG_SLICOSS is not set
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_VIDEO_CX25821 is not set
-# CONFIG_VIDEO_TM6000 is not set
-# CONFIG_DVB_CXD2099 is not set
-# CONFIG_USBIP_CORE is not set
-# CONFIG_W35UND is not set
-# CONFIG_PRISM2_USB is not set
-# CONFIG_ECHO is not set
-# CONFIG_BRCMUTIL is not set
-# CONFIG_BRCMSMAC is not set
-# CONFIG_BRCMFMAC is not set
-# CONFIG_COMEDI is not set
-# CONFIG_ASUS_OLED is not set
-# CONFIG_PANEL is not set
-# CONFIG_R8187SE is not set
-# CONFIG_RTL8192U is not set
-# CONFIG_RTL8192E is not set
-# CONFIG_R8712U is not set
-# CONFIG_RTS_PSTOR is not set
-# CONFIG_TRANZPORT is not set
-# CONFIG_POHMELFS is not set
-# CONFIG_IDE_PHISON is not set
-# CONFIG_LINE6_USB is not set
-CONFIG_DRM_VMWGFX=m
-CONFIG_DRM_NOUVEAU=m
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-CONFIG_DRM_NOUVEAU_DEBUG=y
-
-#
-# I2C encoder or helper chips
-#
-# CONFIG_DRM_I2C_CH7006 is not set
-# CONFIG_DRM_I2C_SIL164 is not set
-# CONFIG_USB_SERIAL_QUATECH2 is not set
-# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
-# CONFIG_VT6655 is not set
-# CONFIG_VT6656 is not set
-CONFIG_HYPERV=m
-CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_BLOCK=m
-CONFIG_HYPERV_NET=m
-CONFIG_HYPERV_UTILS=m
-CONFIG_HYPERV_MOUSE=m
-# CONFIG_VME_BUS is not set
-# CONFIG_DX_SEP is not set
-# CONFIG_IIO is not set
-# CONFIG_XVMALLOC is not set
-# CONFIG_ZRAM is not set
-# CONFIG_ZCACHE is not set
-# CONFIG_FB_SM7XX is not set
-# CONFIG_VIDEO_DT3155 is not set
-# CONFIG_CRYSTALHD is not set
-# CONFIG_FB_XGI is not set
-# CONFIG_LIRC_STAGING is not set
-# CONFIG_EASYCAP is not set
-# CONFIG_SOLO6X10 is not set
-# CONFIG_ACPI_QUICKSTART is not set
-# CONFIG_ATH6K_LEGACY is not set
-# CONFIG_USB_ENESTORAGE is not set
-# CONFIG_BCM_WIMAX is not set
-# CONFIG_FT1000 is not set
-
-#
-# Speakup console speech
-#
-# CONFIG_SPEAKUP is not set
-# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
-# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
-# CONFIG_DRM_PSB is not set
-# CONFIG_ALTERA_STAPL is not set
-# CONFIG_INTEL_MEI is not set
-CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_ACER_WMI=m
-CONFIG_ACERHDF=m
-CONFIG_ASUS_LAPTOP=m
-CONFIG_DELL_LAPTOP=m
-CONFIG_DELL_WMI=m
-CONFIG_DELL_WMI_AIO=m
-CONFIG_FUJITSU_LAPTOP=m
-# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
-CONFIG_TC1100_WMI=m
-CONFIG_HP_ACCEL=m
-CONFIG_HP_WMI=m
-CONFIG_MSI_LAPTOP=m
-CONFIG_PANASONIC_LAPTOP=m
-CONFIG_COMPAL_LAPTOP=m
-CONFIG_SONY_LAPTOP=m
-CONFIG_SONYPI_COMPAT=y
-CONFIG_IDEAPAD_LAPTOP=m
-CONFIG_THINKPAD_ACPI=m
-CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
-# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
-# CONFIG_THINKPAD_ACPI_DEBUG is not set
-# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
-CONFIG_THINKPAD_ACPI_VIDEO=y
-CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-CONFIG_SENSORS_HDAPS=m
-# CONFIG_INTEL_MENLOW is not set
-CONFIG_EEEPC_LAPTOP=m
-CONFIG_ASUS_WMI=m
-CONFIG_ASUS_NB_WMI=m
-CONFIG_EEEPC_WMI=m
-CONFIG_ACPI_WMI=m
-CONFIG_MSI_WMI=m
-# CONFIG_ACPI_ASUS is not set
-CONFIG_TOPSTAR_LAPTOP=m
-CONFIG_ACPI_TOSHIBA=m
-CONFIG_TOSHIBA_BT_RFKILL=m
-CONFIG_ACPI_CMPC=m
-CONFIG_INTEL_IPS=m
-# CONFIG_IBM_RTL is not set
-CONFIG_XO15_EBOOK=m
-CONFIG_SAMSUNG_LAPTOP=m
-CONFIG_MXM_WMI=m
-CONFIG_INTEL_OAKTRAIL=m
-CONFIG_SAMSUNG_Q10=m
-CONFIG_CLKSRC_I8253=y
-CONFIG_CLKEVT_I8253=y
-CONFIG_I8253_LOCK=y
-CONFIG_CLKBLD_I8253=y
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-CONFIG_DMAR=y
-CONFIG_DMAR_DEFAULT_ON=y
-CONFIG_DMAR_FLOPPY_WA=y
-CONFIG_VIRT_DRIVERS=y
-
-#
-# Firmware Drivers
-#
-CONFIG_EDD=m
-# CONFIG_EDD_OFF is not set
-CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_EFI_VARS=y
-CONFIG_DELL_RBU=m
-CONFIG_DCDBAS=m
-CONFIG_DMIID=y
-CONFIG_DMI_SYSFS=y
-# CONFIG_ISCSI_IBFT_FIND is not set
-# CONFIG_SIGMA is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# File systems
-#
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT23=y
-CONFIG_EXT4_FS_XATTR=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-CONFIG_REISERFS_PROC_INFO=y
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# CONFIG_JFS_FS is not set
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_DEBUG is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_NILFS2_FS is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=y
-# CONFIG_QFMT_V1 is not set
-CONFIG_QFMT_V2=y
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=m
-CONFIG_CUSE=m
-CONFIG_GENERIC_ACL=y
-
-#
-# Caches
-#
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-CONFIG_HUGETLBFS=y
-CONFIG_HUGETLB_PAGE=y
-CONFIG_CONFIGFS_FS=m
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_ECRYPT_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_LOGFS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_PSTORE=y
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-# CONFIG_EXOFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_V4_1=y
-CONFIG_PNFS_FILE_LAYOUT=m
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_OBJLAYOUT=m
-CONFIG_NFS_FSCACHE=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-# CONFIG_NFS_USE_NEW_IDMAPPER is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=m
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_CEPH_FS is not set
-CONFIG_CIFS=m
-CONFIG_CIFS_STATS=y
-# CONFIG_CIFS_STATS2 is not set
-# CONFIG_CIFS_WEAK_PW_HASH is not set
-# CONFIG_CIFS_UPCALL is not set
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_DEBUG2 is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_FSCACHE=y
-CONFIG_CIFS_ACL=y
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-CONFIG_LDM_PARTITION=y
-# CONFIG_LDM_DEBUG is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf-8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-
-#
-# Kernel hacking
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_PRINTK_TIME=y
-CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
-# CONFIG_ENABLE_WARN_DEPRECATED is not set
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=2048
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_STRIP_ASM_SYMS=y
-# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_FS=y
-CONFIG_HEADERS_CHECK=y
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_SHIRQ=y
-CONFIG_LOCKUP_DETECTOR=y
-CONFIG_HARDLOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-# CONFIG_DETECT_HUNG_TASK is not set
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-CONFIG_STACKTRACE=y
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_HIGHMEM is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_VIRTUAL is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
-CONFIG_DEBUG_MEMORY_INIT=y
-CONFIG_DEBUG_LIST=y
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_BOOT_PRINTK_DELAY=y
-# CONFIG_RCU_TORTURE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=60
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
-# CONFIG_LKDTM is not set
-# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
-# CONFIG_FAULT_INJECTION is not set
-CONFIG_SYSCTL_SYSCALL_CHECK=y
-# CONFIG_DEBUG_PAGEALLOC is not set
-CONFIG_USER_STACKTRACE_SUPPORT=y
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FTRACE_NMI_ENTER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
-CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACER_MAX_TRACE=y
-CONFIG_RING_BUFFER=y
-CONFIG_FTRACE_NMI_ENTER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_TRACING=y
-CONFIG_GENERIC_TRACER=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-CONFIG_FUNCTION_TRACER=y
-# CONFIG_IRQSOFF_TRACER is not set
-CONFIG_SCHED_TRACER=y
-CONFIG_FTRACE_SYSCALLS=y
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-CONFIG_STACK_TRACER=y
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_DYNAMIC_FTRACE=y
-CONFIG_FUNCTION_PROFILER=y
-CONFIG_FTRACE_MCOUNT_RECORD=y
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_MMIOTRACE is not set
-CONFIG_RING_BUFFER_BENCHMARK=m
-# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
-# CONFIG_BUILD_DOCSRC is not set
-CONFIG_DYNAMIC_DEBUG=y
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-CONFIG_ASYNC_RAID6_TEST=m
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-CONFIG_HAVE_ARCH_KMEMCHECK=y
-# CONFIG_TEST_KSTRTOX is not set
-CONFIG_STRICT_DEVMEM=y
-CONFIG_X86_VERBOSE_BOOTUP=y
-CONFIG_EARLY_PRINTK=y
-# CONFIG_EARLY_PRINTK_DBGP is not set
-CONFIG_DEBUG_STACKOVERFLOW=y
-# CONFIG_X86_PTDUMP is not set
-CONFIG_DEBUG_NX_TEST=m
-CONFIG_DOUBLEFAULT=y
-# CONFIG_IOMMU_STRESS is not set
-CONFIG_HAVE_MMIOTRACE_SUPPORT=y
-CONFIG_IO_DELAY_TYPE_0X80=0
-CONFIG_IO_DELAY_TYPE_0XED=1
-CONFIG_IO_DELAY_TYPE_UDELAY=2
-CONFIG_IO_DELAY_TYPE_NONE=3
-CONFIG_IO_DELAY_0X80=y
-# CONFIG_IO_DELAY_0XED is not set
-# CONFIG_IO_DELAY_UDELAY is not set
-# CONFIG_IO_DELAY_NONE is not set
-CONFIG_DEFAULT_IO_DELAY_TYPE=0
-CONFIG_DEBUG_BOOT_PARAMS=y
-# CONFIG_CPA_DEBUG is not set
-CONFIG_OPTIMIZE_INLINING=y
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
-
-#
-# Security options
-#
-
-#
-# Grsecurity
-#
-CONFIG_GRKERNSEC=y
-# CONFIG_GRKERNSEC_LOW is not set
-# CONFIG_GRKERNSEC_MEDIUM is not set
-CONFIG_GRKERNSEC_HIGH=y
-# CONFIG_GRKERNSEC_CUSTOM is not set
-
-#
-# Address Space Protection
-#
-CONFIG_GRKERNSEC_KMEM=y
-CONFIG_GRKERNSEC_VM86=y
-# CONFIG_GRKERNSEC_IO is not set
-CONFIG_GRKERNSEC_PROC_MEMMAP=y
-CONFIG_GRKERNSEC_BRUTE=y
-CONFIG_GRKERNSEC_MODHARDEN=y
-CONFIG_GRKERNSEC_HIDESYM=y
-CONFIG_GRKERNSEC_KERN_LOCKOUT=y
-
-#
-# Role Based Access Control Options
-#
-CONFIG_GRKERNSEC_NO_RBAC=y
-# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set
-CONFIG_GRKERNSEC_ACL_MAXTRIES=3
-CONFIG_GRKERNSEC_ACL_TIMEOUT=30
-
-#
-# Filesystem Protections
-#
-CONFIG_GRKERNSEC_PROC=y
-# CONFIG_GRKERNSEC_PROC_USER is not set
-CONFIG_GRKERNSEC_PROC_USERGROUP=y
-CONFIG_GRKERNSEC_PROC_GID=10
-CONFIG_GRKERNSEC_PROC_ADD=y
-CONFIG_GRKERNSEC_LINK=y
-CONFIG_GRKERNSEC_FIFO=y
-CONFIG_GRKERNSEC_SYSFS_RESTRICT=y
-# CONFIG_GRKERNSEC_ROFS is not set
-CONFIG_GRKERNSEC_CHROOT=y
-CONFIG_GRKERNSEC_CHROOT_MOUNT=y
-CONFIG_GRKERNSEC_CHROOT_DOUBLE=y
-CONFIG_GRKERNSEC_CHROOT_PIVOT=y
-CONFIG_GRKERNSEC_CHROOT_CHDIR=y
-CONFIG_GRKERNSEC_CHROOT_CHMOD=y
-CONFIG_GRKERNSEC_CHROOT_FCHDIR=y
-CONFIG_GRKERNSEC_CHROOT_MKNOD=y
-CONFIG_GRKERNSEC_CHROOT_SHMAT=y
-CONFIG_GRKERNSEC_CHROOT_UNIX=y
-CONFIG_GRKERNSEC_CHROOT_FINDTASK=y
-CONFIG_GRKERNSEC_CHROOT_NICE=y
-CONFIG_GRKERNSEC_CHROOT_SYSCTL=y
-CONFIG_GRKERNSEC_CHROOT_CAPS=y
-
-#
-# Kernel Auditing
-#
-# CONFIG_GRKERNSEC_AUDIT_GROUP is not set
-# CONFIG_GRKERNSEC_EXECLOG is not set
-CONFIG_GRKERNSEC_RESLOG=y
-# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set
-# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set
-# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set
-CONFIG_GRKERNSEC_AUDIT_MOUNT=y
-CONFIG_GRKERNSEC_SIGNAL=y
-CONFIG_GRKERNSEC_FORKFAIL=y
-CONFIG_GRKERNSEC_TIME=y
-CONFIG_GRKERNSEC_PROC_IPADDR=y
-CONFIG_GRKERNSEC_RWXMAP_LOG=y
-CONFIG_GRKERNSEC_AUDIT_TEXTREL=y
-
-#
-# Executable Protections
-#
-CONFIG_GRKERNSEC_DMESG=y
-CONFIG_GRKERNSEC_HARDEN_PTRACE=y
-# CONFIG_GRKERNSEC_TPE is not set
-
-#
-# Network Protections
-#
-CONFIG_GRKERNSEC_RANDNET=y
-CONFIG_GRKERNSEC_BLACKHOLE=y
-# CONFIG_GRKERNSEC_SOCKET is not set
-
-#
-# Sysctl support
-#
-CONFIG_GRKERNSEC_SYSCTL=y
-CONFIG_GRKERNSEC_SYSCTL_ON=y
-
-#
-# Logging Options
-#
-CONFIG_GRKERNSEC_FLOODTIME=10
-CONFIG_GRKERNSEC_FLOODBURST=6
-
-#
-# PaX
-#
-CONFIG_ARCH_TRACK_EXEC_LIMIT=y
-CONFIG_PAX_PER_CPU_PGD=y
-CONFIG_PAX=y
-
-#
-# PaX Control
-#
-# CONFIG_PAX_SOFTMODE is not set
-CONFIG_PAX_EI_PAX=y
-CONFIG_PAX_PT_PAX_FLAGS=y
-# CONFIG_PAX_NO_ACL_FLAGS is not set
-CONFIG_PAX_HAVE_ACL_FLAGS=y
-# CONFIG_PAX_HOOK_ACL_FLAGS is not set
-
-#
-# Non-executable pages
-#
-CONFIG_PAX_NOEXEC=y
-CONFIG_PAX_PAGEEXEC=y
-CONFIG_PAX_SEGMEXEC=y
-CONFIG_PAX_EMUTRAMP=y
-CONFIG_PAX_MPROTECT=y
-# CONFIG_PAX_MPROTECT_COMPAT is not set
-CONFIG_PAX_ELFRELOCS=y
-CONFIG_PAX_KERNEXEC=y
-CONFIG_PAX_KERNEXEC_MODULE_TEXT=4
-
-#
-# Address Space Layout Randomization
-#
-CONFIG_PAX_ASLR=y
-CONFIG_PAX_RANDKSTACK=y
-CONFIG_PAX_RANDUSTACK=y
-CONFIG_PAX_RANDMMAP=y
-
-#
-# Miscellaneous hardening features
-#
-CONFIG_PAX_MEMORY_SANITIZE=y
-CONFIG_PAX_MEMORY_STACKLEAK=y
-CONFIG_PAX_MEMORY_UDEREF=y
-CONFIG_PAX_REFCOUNT=y
-CONFIG_PAX_USERCOPY=y
-CONFIG_KEYS=y
-CONFIG_KEYS_DEBUG_PROC_KEYS=y
-CONFIG_SECURITY_DMESG_RESTRICT=y
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_SECURITY_NETWORK_XFRM=y
-# CONFIG_SECURITY_PATH is not set
-CONFIG_INTEL_TXT=y
-CONFIG_LSM_MMAP_MIN_ADDR=65536
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
-CONFIG_SECURITY_SELINUX_DISABLE=y
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
-# CONFIG_SECURITY_TOMOYO is not set
-# CONFIG_SECURITY_APPARMOR is not set
-# CONFIG_IMA is not set
-CONFIG_DEFAULT_SECURITY_SELINUX=y
-# CONFIG_DEFAULT_SECURITY_DAC is not set
-CONFIG_DEFAULT_SECURITY="selinux"
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
-CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_FIPS=y
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=m
-CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
-CONFIG_CRYPTO_GF128MUL=m
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_PCRYPT=m
-CONFIG_CRYPTO_WORKQUEUE=y
-CONFIG_CRYPTO_CRYPTD=y
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-CONFIG_CRYPTO_SEQIV=y
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTR=y
-CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32C_INTEL=y
-CONFIG_CRYPTO_GHASH=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_AES_586=y
-CONFIG_CRYPTO_AES_NI_INTEL=y
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
-CONFIG_CRYPTO_SALSA20_586=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-CONFIG_CRYPTO_TWOFISH_586=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_ZLIB=m
-CONFIG_CRYPTO_LZO=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_USER_API=y
-CONFIG_CRYPTO_USER_API_HASH=y
-CONFIG_CRYPTO_USER_API_SKCIPHER=y
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_PADLOCK=m
-CONFIG_CRYPTO_DEV_PADLOCK_AES=m
-CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
-CONFIG_CRYPTO_DEV_GEODE=m
-CONFIG_CRYPTO_DEV_HIFN_795X=m
-CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
-CONFIG_HAVE_KVM=y
-CONFIG_HAVE_KVM_IRQCHIP=y
-CONFIG_HAVE_KVM_EVENTFD=y
-CONFIG_KVM_APIC_ARCHITECTURE=y
-CONFIG_KVM_MMIO=y
-CONFIG_KVM_ASYNC_PF=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=m
-CONFIG_KVM_INTEL=m
-CONFIG_KVM_AMD=m
-CONFIG_KVM_MMU_AUDIT=y
-CONFIG_VHOST_NET=m
-# CONFIG_LGUEST is not set
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_FIRST_BIT=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=m
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
-CONFIG_CRC8=m
-CONFIG_AUDIT_GENERIC=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_CHECK_SIGNATURE=y
-CONFIG_CPU_RMAP=y
-CONFIG_NLATTR=y
-CONFIG_AVERAGE=y
-CONFIG_CORDIC=m
-CONFIG_LLIST=y
diff --git a/kernel/config.x86_64 b/kernel/config.x86_64
deleted file mode 100644 (file)
index 5114d27..0000000
+++ /dev/null
@@ -1,2932 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 3.1.5 Kernel Configuration
-#
-CONFIG_64BIT=y
-# CONFIG_X86_32 is not set
-CONFIG_X86_64=y
-CONFIG_X86=y
-CONFIG_INSTRUCTION_DECODER=y
-CONFIG_OUTPUT_FORMAT="elf64-x86-64"
-CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_ARCH_CLOCKSOURCE_DATA=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_MMU=y
-CONFIG_ZONE_DMA=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_DEFAULT_IDLE=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ZONE_DMA32=y
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-CONFIG_AUDIT_ARCH=y
-CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_HAVE_INTEL_TXT=y
-CONFIG_X86_64_SMP=y
-CONFIG_X86_HT=y
-CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
-# CONFIG_KTIME_SCALAR is not set
-CONFIG_ARCH_CPU_PROBE_RELEASE=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_HAVE_IRQ_WORK=y
-CONFIG_IRQ_WORK=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_BZIP2=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_BZIP2 is not set
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_XZ is not set
-# CONFIG_KERNEL_LZO is not set
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_BSD_PROCESS_ACCT=y
-# CONFIG_BSD_PROCESS_ACCT_V3 is not set
-# CONFIG_FHANDLE is not set
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
-CONFIG_AUDIT_WATCH=y
-CONFIG_AUDIT_TREE=y
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=64
-# CONFIG_RCU_FANOUT_EXACT is not set
-# CONFIG_RCU_FAST_NO_HZ is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_FREEZER=y
-# CONFIG_CGROUP_DEVICE is not set
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_RESOURCE_COUNTERS=y
-# CONFIG_CGROUP_MEM_RES_CTLR is not set
-# CONFIG_CGROUP_PERF is not set
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-# CONFIG_RT_GROUP_SCHED is not set
-# CONFIG_BLK_CGROUP is not set
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-# CONFIG_SCHED_AUTOGROUP is not set
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-# CONFIG_EXPERT is not set
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_PCSPKR_PLATFORM=y
-CONFIG_HAVE_PCSPKR_PLATFORM=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_PERF_COUNTERS is not set
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-# CONFIG_OPROFILE is not set
-CONFIG_HAVE_OPROFILE=y
-CONFIG_KPROBES=y
-# CONFIG_JUMP_LABEL is not set
-CONFIG_OPTPROBES=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_KRETPROBES=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_OPTPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
-CONFIG_HAVE_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_PERF_EVENTS_NMI=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_STOP_MACHINE=y
-CONFIG_BLOCK=y
-CONFIG_BLK_DEV_BSG=y
-# CONFIG_BLK_DEV_BSGLIB is not set
-# CONFIG_BLK_DEV_INTEGRITY is not set
-CONFIG_BLOCK_COMPAT=y
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
-CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
-CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_FREEZER=y
-
-#
-# Processor type and features
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_SMP=y
-CONFIG_X86_MPPARSE=y
-CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_VSMP is not set
-CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-# CONFIG_PARAVIRT_GUEST is not set
-CONFIG_NO_BOOTMEM=y
-# CONFIG_MEMTEST is not set
-# CONFIG_MK8 is not set
-# CONFIG_MPSC is not set
-# CONFIG_MCORE2 is not set
-# CONFIG_MATOM is not set
-CONFIG_GENERIC_CPU=y
-CONFIG_X86_INTERNODE_CACHE_SHIFT=7
-CONFIG_X86_CMPXCHG=y
-CONFIG_CMPXCHG_LOCAL=y
-CONFIG_CMPXCHG_DOUBLE=y
-CONFIG_X86_L1_CACHE_SHIFT=6
-CONFIG_X86_XADD=y
-CONFIG_X86_WP_WORKS_OK=y
-CONFIG_X86_TSC=y
-CONFIG_X86_CMPXCHG64=y
-CONFIG_X86_CMOV=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=64
-CONFIG_X86_DEBUGCTLMSR=y
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_AMD=y
-CONFIG_CPU_SUP_CENTAUR=y
-CONFIG_HPET_TIMER=y
-CONFIG_HPET_EMULATE_RTC=y
-CONFIG_DMI=y
-CONFIG_GART_IOMMU=y
-CONFIG_CALGARY_IOMMU=y
-CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
-CONFIG_SWIOTLB=y
-CONFIG_IOMMU_HELPER=y
-# CONFIG_MAXSMP is not set
-CONFIG_NR_CPUS=64
-CONFIG_SCHED_SMT=y
-CONFIG_SCHED_MC=y
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-# CONFIG_PREEMPT_NONE is not set
-CONFIG_PREEMPT_VOLUNTARY=y
-# CONFIG_PREEMPT is not set
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
-CONFIG_X86_MCE=y
-CONFIG_X86_MCE_INTEL=y
-CONFIG_X86_MCE_AMD=y
-CONFIG_X86_MCE_THRESHOLD=y
-# CONFIG_X86_MCE_INJECT is not set
-CONFIG_X86_THERMAL_VECTOR=y
-# CONFIG_I8K is not set
-CONFIG_MICROCODE=y
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_MICROCODE_OLD_INTERFACE=y
-CONFIG_X86_MSR=y
-CONFIG_X86_CPUID=y
-CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_DIRECT_GBPAGES=y
-CONFIG_NUMA=y
-CONFIG_AMD_NUMA=y
-CONFIG_X86_64_ACPI_NUMA=y
-CONFIG_NODES_SPAN_OTHER_NODES=y
-# CONFIG_NUMA_EMU is not set
-CONFIG_NODES_SHIFT=6
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_DEFAULT=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ARCH_PROC_KCORE_TEXT=y
-CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_SPARSEMEM_MANUAL=y
-CONFIG_SPARSEMEM=y
-CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_HAVE_MEMORY_PRESENT=y
-CONFIG_SPARSEMEM_EXTREME=y
-CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
-CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
-CONFIG_SPARSEMEM_VMEMMAP=y
-CONFIG_HAVE_MEMBLOCK=y
-# CONFIG_MEMORY_HOTPLUG is not set
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_COMPACTION is not set
-CONFIG_MIGRATION=y
-CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
-# CONFIG_MEMORY_FAILURE is not set
-# CONFIG_TRANSPARENT_HUGEPAGE is not set
-# CONFIG_CLEANCACHE is not set
-CONFIG_X86_CHECK_BIOS_CORRUPTION=y
-CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
-CONFIG_X86_RESERVE_LOW=64
-CONFIG_MTRR=y
-# CONFIG_MTRR_SANITIZER is not set
-CONFIG_X86_PAT=y
-CONFIG_ARCH_USES_PG_UNCACHED=y
-CONFIG_EFI=y
-CONFIG_SECCOMP=y
-# CONFIG_CC_STACKPROTECTOR is not set
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_250 is not set
-# CONFIG_HZ_300 is not set
-CONFIG_HZ_1000=y
-CONFIG_HZ=1000
-CONFIG_SCHED_HRTICK=y
-CONFIG_KEXEC=y
-CONFIG_CRASH_DUMP=y
-# CONFIG_KEXEC_JUMP is not set
-CONFIG_PHYSICAL_START=0x1000000
-CONFIG_RELOCATABLE=y
-CONFIG_PHYSICAL_ALIGN=0x1000000
-CONFIG_HOTPLUG_CPU=y
-# CONFIG_COMPAT_VDSO is not set
-# CONFIG_CMDLINE_BOOL is not set
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_USE_PERCPU_NUMA_NODE_ID=y
-
-#
-# Power management and ACPI options
-#
-CONFIG_ARCH_HIBERNATION_HEADER=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_RUNTIME is not set
-CONFIG_PM=y
-CONFIG_PM_DEBUG=y
-# CONFIG_PM_ADVANCED_DEBUG is not set
-# CONFIG_PM_TEST_SUSPEND is not set
-CONFIG_CAN_PM_TRACE=y
-CONFIG_PM_TRACE=y
-CONFIG_PM_TRACE_RTC=y
-CONFIG_ACPI=y
-CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_PROCFS=y
-# CONFIG_ACPI_PROCFS_POWER is not set
-# CONFIG_ACPI_EC_DEBUGFS is not set
-CONFIG_ACPI_PROC_EVENT=y
-CONFIG_ACPI_AC=y
-CONFIG_ACPI_BATTERY=y
-CONFIG_ACPI_BUTTON=y
-CONFIG_ACPI_VIDEO=y
-CONFIG_ACPI_FAN=y
-CONFIG_ACPI_DOCK=y
-CONFIG_ACPI_PROCESSOR=y
-CONFIG_ACPI_HOTPLUG_CPU=y
-# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
-CONFIG_ACPI_THERMAL=y
-CONFIG_ACPI_NUMA=y
-# CONFIG_ACPI_CUSTOM_DSDT is not set
-CONFIG_ACPI_BLACKLIST_YEAR=0
-# CONFIG_ACPI_DEBUG is not set
-# CONFIG_ACPI_PCI_SLOT is not set
-CONFIG_X86_PM_TIMER=y
-CONFIG_ACPI_CONTAINER=y
-# CONFIG_ACPI_SBS is not set
-# CONFIG_ACPI_HED is not set
-# CONFIG_ACPI_CUSTOM_METHOD is not set
-# CONFIG_ACPI_APEI is not set
-# CONFIG_SFI is not set
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
-# CONFIG_CPU_FREQ_STAT is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
-
-#
-# x86 CPU frequency scaling drivers
-#
-# CONFIG_X86_PCC_CPUFREQ is not set
-CONFIG_X86_ACPI_CPUFREQ=y
-# CONFIG_X86_POWERNOW_K8 is not set
-# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
-# CONFIG_X86_P4_CLOCKMOD is not set
-
-#
-# shared options
-#
-# CONFIG_X86_SPEEDSTEP_LIB is not set
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-# CONFIG_INTEL_IDLE is not set
-
-#
-# Memory power savings
-#
-# CONFIG_I7300_IDLE is not set
-
-#
-# Bus options (PCI etc.)
-#
-CONFIG_PCI=y
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCI_DOMAINS=y
-# CONFIG_PCI_CNB20LE_QUIRK is not set
-CONFIG_PCIEPORTBUS=y
-# CONFIG_HOTPLUG_PCI_PCIE is not set
-CONFIG_PCIEAER=y
-# CONFIG_PCIE_ECRC is not set
-# CONFIG_PCIEAER_INJECT is not set
-CONFIG_PCIEASPM=y
-# CONFIG_PCIEASPM_DEBUG is not set
-CONFIG_ARCH_SUPPORTS_MSI=y
-CONFIG_PCI_MSI=y
-# CONFIG_PCI_DEBUG is not set
-# CONFIG_PCI_STUB is not set
-CONFIG_HT_IRQ=y
-CONFIG_PCI_IOV=y
-CONFIG_PCI_IOAPIC=y
-CONFIG_PCI_LABEL=y
-CONFIG_ISA_DMA_API=y
-CONFIG_AMD_NB=y
-CONFIG_PCCARD=y
-CONFIG_PCMCIA=y
-CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_CARDBUS=y
-
-#
-# PC-card bridges
-#
-CONFIG_YENTA=y
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
-# CONFIG_PD6729 is not set
-# CONFIG_I82092 is not set
-CONFIG_PCCARD_NONSTATIC=y
-CONFIG_HOTPLUG_PCI=y
-# CONFIG_HOTPLUG_PCI_FAKE is not set
-# CONFIG_HOTPLUG_PCI_ACPI is not set
-# CONFIG_HOTPLUG_PCI_CPCI is not set
-# CONFIG_HOTPLUG_PCI_SHPC is not set
-# CONFIG_RAPIDIO is not set
-
-#
-# Executable file formats / Emulations
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_COMPAT_BINFMT_ELF=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-# CONFIG_HAVE_AOUT is not set
-CONFIG_BINFMT_MISC=y
-CONFIG_IA32_EMULATION=y
-# CONFIG_IA32_AOUT is not set
-CONFIG_COMPAT=y
-CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
-CONFIG_SYSVIPC_COMPAT=y
-CONFIG_KEYS_COMPAT=y
-CONFIG_HAVE_TEXT_POKE_SMP=y
-CONFIG_NET=y
-CONFIG_COMPAT_NETLINK_MESSAGES=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=y
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-# CONFIG_IP_FIB_TRIE_STATS is not set
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE_DEMUX is not set
-CONFIG_IP_MROUTE=y
-# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-# CONFIG_ARPD is not set
-CONFIG_SYN_COOKIES=y
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-CONFIG_INET_TUNNEL=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-CONFIG_INET_LRO=y
-# CONFIG_INET_DIAG is not set
-CONFIG_TCP_CONG_ADVANCED=y
-# CONFIG_TCP_CONG_BIC is not set
-CONFIG_TCP_CONG_CUBIC=y
-# CONFIG_TCP_CONG_WESTWOOD is not set
-# CONFIG_TCP_CONG_HTCP is not set
-# CONFIG_TCP_CONG_HSTCP is not set
-# CONFIG_TCP_CONG_HYBLA is not set
-# CONFIG_TCP_CONG_VEGAS is not set
-# CONFIG_TCP_CONG_SCALABLE is not set
-# CONFIG_TCP_CONG_LP is not set
-# CONFIG_TCP_CONG_VENO is not set
-# CONFIG_TCP_CONG_YEAH is not set
-# CONFIG_TCP_CONG_ILLINOIS is not set
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-# CONFIG_IPV6_PRIVACY is not set
-# CONFIG_IPV6_ROUTER_PREF is not set
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=y
-CONFIG_INET6_ESP=y
-# CONFIG_INET6_IPCOMP is not set
-# CONFIG_IPV6_MIP6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-CONFIG_INET6_XFRM_MODE_TRANSPORT=y
-CONFIG_INET6_XFRM_MODE_TUNNEL=y
-CONFIG_INET6_XFRM_MODE_BEET=y
-# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
-CONFIG_IPV6_SIT=y
-# CONFIG_IPV6_SIT_6RD is not set
-CONFIG_IPV6_NDISC_NODETYPE=y
-# CONFIG_IPV6_TUNNEL is not set
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-# CONFIG_IPV6_MROUTE is not set
-CONFIG_NETLABEL=y
-CONFIG_NETWORK_SECMARK=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-# CONFIG_NETFILTER_ADVANCED is not set
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_NETLINK=y
-CONFIG_NETFILTER_NETLINK_LOG=y
-CONFIG_NF_CONNTRACK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_FTP=y
-CONFIG_NF_CONNTRACK_IRC=y
-CONFIG_NF_CONNTRACK_SIP=y
-CONFIG_NF_CT_NETLINK=y
-CONFIG_NETFILTER_XTABLES=y
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
-CONFIG_NETFILTER_XT_TARGET_NFLOG=y
-CONFIG_NETFILTER_XT_TARGET_SECMARK=y
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
-CONFIG_NETFILTER_XT_MATCH_POLICY=y
-CONFIG_NETFILTER_XT_MATCH_STATE=y
-# CONFIG_IP_SET is not set
-# CONFIG_IP_VS is not set
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=y
-CONFIG_NF_CONNTRACK_IPV4=y
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-CONFIG_IP_NF_IPTABLES=y
-CONFIG_IP_NF_FILTER=y
-CONFIG_IP_NF_TARGET_REJECT=y
-CONFIG_IP_NF_TARGET_LOG=y
-CONFIG_IP_NF_TARGET_ULOG=y
-CONFIG_NF_NAT=y
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=y
-CONFIG_NF_NAT_FTP=y
-CONFIG_NF_NAT_IRC=y
-# CONFIG_NF_NAT_TFTP is not set
-# CONFIG_NF_NAT_AMANDA is not set
-# CONFIG_NF_NAT_PPTP is not set
-# CONFIG_NF_NAT_H323 is not set
-CONFIG_NF_NAT_SIP=y
-CONFIG_IP_NF_MANGLE=y
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV6=y
-CONFIG_NF_CONNTRACK_IPV6=y
-CONFIG_IP6_NF_IPTABLES=y
-CONFIG_IP6_NF_MATCH_IPV6HEADER=y
-CONFIG_IP6_NF_TARGET_LOG=y
-CONFIG_IP6_NF_FILTER=y
-CONFIG_IP6_NF_TARGET_REJECT=y
-CONFIG_IP6_NF_MANGLE=y
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_NET_DSA is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-CONFIG_LLC=y
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-# CONFIG_NET_SCH_CBQ is not set
-# CONFIG_NET_SCH_HTB is not set
-# CONFIG_NET_SCH_HFSC is not set
-# CONFIG_NET_SCH_PRIO is not set
-# CONFIG_NET_SCH_MULTIQ is not set
-# CONFIG_NET_SCH_RED is not set
-# CONFIG_NET_SCH_SFB is not set
-# CONFIG_NET_SCH_SFQ is not set
-# CONFIG_NET_SCH_TEQL is not set
-# CONFIG_NET_SCH_TBF is not set
-# CONFIG_NET_SCH_GRED is not set
-# CONFIG_NET_SCH_DSMARK is not set
-# CONFIG_NET_SCH_NETEM is not set
-# CONFIG_NET_SCH_DRR is not set
-# CONFIG_NET_SCH_MQPRIO is not set
-# CONFIG_NET_SCH_CHOKE is not set
-# CONFIG_NET_SCH_QFQ is not set
-# CONFIG_NET_SCH_INGRESS is not set
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-# CONFIG_NET_CLS_BASIC is not set
-# CONFIG_NET_CLS_TCINDEX is not set
-# CONFIG_NET_CLS_ROUTE4 is not set
-# CONFIG_NET_CLS_FW is not set
-# CONFIG_NET_CLS_U32 is not set
-# CONFIG_NET_CLS_RSVP is not set
-# CONFIG_NET_CLS_RSVP6 is not set
-# CONFIG_NET_CLS_FLOW is not set
-# CONFIG_NET_CLS_CGROUP is not set
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-# CONFIG_NET_EMATCH_CMP is not set
-# CONFIG_NET_EMATCH_NBYTE is not set
-# CONFIG_NET_EMATCH_U32 is not set
-# CONFIG_NET_EMATCH_META is not set
-# CONFIG_NET_EMATCH_TEXT is not set
-CONFIG_NET_CLS_ACT=y
-# CONFIG_NET_ACT_POLICE is not set
-# CONFIG_NET_ACT_GACT is not set
-# CONFIG_NET_ACT_MIRRED is not set
-# CONFIG_NET_ACT_IPT is not set
-# CONFIG_NET_ACT_NAT is not set
-# CONFIG_NET_ACT_PEDIT is not set
-# CONFIG_NET_ACT_SIMP is not set
-# CONFIG_NET_ACT_SKBEDIT is not set
-# CONFIG_NET_ACT_CSUM is not set
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_DCB is not set
-CONFIG_DNS_RESOLVER=y
-# CONFIG_BATMAN_ADV is not set
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_XPS=y
-CONFIG_HAVE_BPF_JIT=y
-# CONFIG_BPF_JIT is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NET_TCPPROBE is not set
-# CONFIG_NET_DROP_MONITOR is not set
-CONFIG_HAMRADIO=y
-
-#
-# Packet Radio protocols
-#
-# CONFIG_AX25 is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_AF_RXRPC is not set
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_CFG80211=y
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-# CONFIG_CFG80211_DEBUGFS is not set
-# CONFIG_CFG80211_INTERNAL_REGDB is not set
-CONFIG_CFG80211_WEXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-# CONFIG_LIB80211 is not set
-CONFIG_MAC80211=y
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_MINSTREL_HT=y
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-# CONFIG_MAC80211_MESH is not set
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-# CONFIG_WIMAX is not set
-CONFIG_RFKILL=y
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-# CONFIG_NET_9P is not set
-# CONFIG_CAIF is not set
-# CONFIG_CEPH_LIB is not set
-# CONFIG_NFC is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_DEVTMPFS is not set
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_DEBUG_DRIVER is not set
-CONFIG_DEBUG_DEVRES=y
-# CONFIG_SYS_HYPERVISOR is not set
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-# CONFIG_MTD is not set
-# CONFIG_PARPORT is not set
-CONFIG_PNP=y
-CONFIG_PNP_DEBUG_MESSAGES=y
-
-#
-# Protocols
-#
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-# CONFIG_BLK_DEV_DRBD is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
-# CONFIG_BLK_DEV_XIP is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_BLK_DEV_HD is not set
-# CONFIG_BLK_DEV_RBD is not set
-# CONFIG_SENSORS_LIS3LV02D is not set
-# CONFIG_MISC_DEVICES is not set
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_NETLINK is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=y
-# CONFIG_CHR_DEV_SCH is not set
-# CONFIG_SCSI_MULTI_LUN is not set
-CONFIG_SCSI_CONSTANTS=y
-# CONFIG_SCSI_LOGGING is not set
-# CONFIG_SCSI_SCAN_ASYNC is not set
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=y
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-# CONFIG_SCSI_LOWLEVEL is not set
-# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_SCSI_OSD_INITIATOR is not set
-CONFIG_ATA=y
-# CONFIG_ATA_NONSTANDARD is not set
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_ATA_ACPI=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI=y
-# CONFIG_SATA_AHCI_PLATFORM is not set
-# CONFIG_SATA_INIC162X is not set
-# CONFIG_SATA_ACARD_AHCI is not set
-# CONFIG_SATA_SIL24 is not set
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-# CONFIG_PDC_ADMA is not set
-# CONFIG_SATA_QSTOR is not set
-# CONFIG_SATA_SX4 is not set
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-CONFIG_ATA_PIIX=y
-# CONFIG_SATA_MV is not set
-# CONFIG_SATA_NV is not set
-# CONFIG_SATA_PROMISE is not set
-# CONFIG_SATA_SIL is not set
-# CONFIG_SATA_SIS is not set
-# CONFIG_SATA_SVW is not set
-# CONFIG_SATA_ULI is not set
-# CONFIG_SATA_VIA is not set
-# CONFIG_SATA_VITESSE is not set
-
-#
-# PATA SFF controllers with BMDMA
-#
-# CONFIG_PATA_ALI is not set
-CONFIG_PATA_AMD=y
-# CONFIG_PATA_ARASAN_CF is not set
-# CONFIG_PATA_ARTOP is not set
-# CONFIG_PATA_ATIIXP is not set
-# CONFIG_PATA_ATP867X is not set
-# CONFIG_PATA_CMD64X is not set
-# CONFIG_PATA_CS5520 is not set
-# CONFIG_PATA_CS5530 is not set
-# CONFIG_PATA_CS5536 is not set
-# CONFIG_PATA_CYPRESS is not set
-# CONFIG_PATA_EFAR is not set
-# CONFIG_PATA_HPT366 is not set
-# CONFIG_PATA_HPT37X is not set
-# CONFIG_PATA_HPT3X2N is not set
-# CONFIG_PATA_HPT3X3 is not set
-# CONFIG_PATA_IT8213 is not set
-# CONFIG_PATA_IT821X is not set
-# CONFIG_PATA_JMICRON is not set
-# CONFIG_PATA_MARVELL is not set
-# CONFIG_PATA_NETCELL is not set
-# CONFIG_PATA_NINJA32 is not set
-# CONFIG_PATA_NS87415 is not set
-CONFIG_PATA_OLDPIIX=y
-# CONFIG_PATA_OPTIDMA is not set
-# CONFIG_PATA_PDC2027X is not set
-# CONFIG_PATA_PDC_OLD is not set
-# CONFIG_PATA_RADISYS is not set
-# CONFIG_PATA_RDC is not set
-# CONFIG_PATA_SC1200 is not set
-CONFIG_PATA_SCH=y
-# CONFIG_PATA_SERVERWORKS is not set
-# CONFIG_PATA_SIL680 is not set
-# CONFIG_PATA_SIS is not set
-# CONFIG_PATA_TOSHIBA is not set
-# CONFIG_PATA_TRIFLEX is not set
-# CONFIG_PATA_VIA is not set
-# CONFIG_PATA_WINBOND is not set
-
-#
-# PIO-only SFF controllers
-#
-# CONFIG_PATA_CMD640_PCI is not set
-# CONFIG_PATA_MPIIX is not set
-# CONFIG_PATA_NS87410 is not set
-# CONFIG_PATA_OPTI is not set
-# CONFIG_PATA_PCMCIA is not set
-# CONFIG_PATA_RZ1000 is not set
-
-#
-# Generic fallback / legacy drivers
-#
-# CONFIG_PATA_ACPI is not set
-# CONFIG_ATA_GENERIC is not set
-# CONFIG_PATA_LEGACY is not set
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-CONFIG_MD_AUTODETECT=y
-# CONFIG_MD_LINEAR is not set
-# CONFIG_MD_RAID0 is not set
-# CONFIG_MD_RAID1 is not set
-# CONFIG_MD_RAID10 is not set
-# CONFIG_MD_RAID456 is not set
-# CONFIG_MD_MULTIPATH is not set
-# CONFIG_MD_FAULTY is not set
-CONFIG_BLK_DEV_DM=y
-# CONFIG_DM_DEBUG is not set
-# CONFIG_DM_CRYPT is not set
-# CONFIG_DM_SNAPSHOT is not set
-CONFIG_DM_MIRROR=y
-# CONFIG_DM_RAID is not set
-# CONFIG_DM_LOG_USERSPACE is not set
-CONFIG_DM_ZERO=y
-# CONFIG_DM_MULTIPATH is not set
-# CONFIG_DM_DELAY is not set
-# CONFIG_DM_UEVENT is not set
-# CONFIG_DM_FLAKEY is not set
-# CONFIG_TARGET_CORE is not set
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_FIREWIRE is not set
-# CONFIG_FIREWIRE_NOSY is not set
-# CONFIG_I2O is not set
-CONFIG_MACINTOSH_DRIVERS=y
-CONFIG_MAC_EMUMOUSEBTN=y
-CONFIG_NETDEVICES=y
-# CONFIG_IFB is not set
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_VETH is not set
-# CONFIG_NET_SB1000 is not set
-# CONFIG_ARCNET is not set
-CONFIG_MII=y
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_LXT_PHY is not set
-# CONFIG_CICADA_PHY is not set
-# CONFIG_VITESSE_PHY is not set
-# CONFIG_SMSC_PHY is not set
-# CONFIG_BROADCOM_PHY is not set
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_NATIONAL_PHY is not set
-# CONFIG_STE10XP is not set
-# CONFIG_LSI_ET1011C_PHY is not set
-# CONFIG_MICREL_PHY is not set
-# CONFIG_FIXED_PHY is not set
-# CONFIG_MDIO_BITBANG is not set
-CONFIG_NET_ETHERNET=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_CASSINI is not set
-CONFIG_NET_VENDOR_3COM=y
-# CONFIG_VORTEX is not set
-# CONFIG_TYPHOON is not set
-# CONFIG_ETHOC is not set
-# CONFIG_DNET is not set
-CONFIG_NET_TULIP=y
-# CONFIG_DE2104X is not set
-# CONFIG_TULIP is not set
-# CONFIG_DE4X5 is not set
-# CONFIG_WINBOND_840 is not set
-# CONFIG_DM9102 is not set
-# CONFIG_ULI526X is not set
-# CONFIG_PCMCIA_XIRCOM is not set
-# CONFIG_HP100 is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-# CONFIG_PCNET32 is not set
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_KSZ884X_PCI is not set
-# CONFIG_B44 is not set
-CONFIG_FORCEDETH=y
-CONFIG_E100=y
-# CONFIG_FEALNX is not set
-# CONFIG_NATSEMI is not set
-# CONFIG_NE2K_PCI is not set
-# CONFIG_8139CP is not set
-CONFIG_8139TOO=y
-CONFIG_8139TOO_PIO=y
-# CONFIG_8139TOO_TUNE_TWISTER is not set
-# CONFIG_8139TOO_8129 is not set
-# CONFIG_8139_OLD_RX_RESET is not set
-# CONFIG_R6040 is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SMSC9420 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_KS8851_MLL is not set
-# CONFIG_VIA_RHINE is not set
-# CONFIG_SC92031 is not set
-# CONFIG_ATL2 is not set
-CONFIG_NETDEV_1000=y
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-CONFIG_E1000=y
-# CONFIG_E1000E is not set
-# CONFIG_IP1000 is not set
-# CONFIG_IGB is not set
-# CONFIG_IGBVF is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SIS190 is not set
-# CONFIG_SKGE is not set
-CONFIG_SKY2=y
-# CONFIG_SKY2_DEBUG is not set
-# CONFIG_VIA_VELOCITY is not set
-CONFIG_TIGON3=y
-# CONFIG_BNX2 is not set
-# CONFIG_CNIC is not set
-# CONFIG_QLA3XXX is not set
-# CONFIG_ATL1 is not set
-# CONFIG_ATL1E is not set
-# CONFIG_ATL1C is not set
-# CONFIG_JME is not set
-# CONFIG_STMMAC_ETH is not set
-# CONFIG_PCH_GBE is not set
-CONFIG_NETDEV_10000=y
-# CONFIG_CHELSIO_T1 is not set
-# CONFIG_CHELSIO_T3 is not set
-# CONFIG_CHELSIO_T4 is not set
-# CONFIG_CHELSIO_T4VF is not set
-# CONFIG_ENIC is not set
-# CONFIG_IXGBE is not set
-# CONFIG_IXGBEVF is not set
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-# CONFIG_VXGE is not set
-# CONFIG_MYRI10GE is not set
-# CONFIG_NETXEN_NIC is not set
-# CONFIG_NIU is not set
-# CONFIG_MLX4_EN is not set
-# CONFIG_MLX4_CORE is not set
-# CONFIG_TEHUTI is not set
-# CONFIG_BNX2X is not set
-# CONFIG_QLCNIC is not set
-# CONFIG_QLGE is not set
-# CONFIG_BNA is not set
-# CONFIG_SFC is not set
-# CONFIG_BE2NET is not set
-CONFIG_TR=y
-# CONFIG_IBMOL is not set
-# CONFIG_3C359 is not set
-# CONFIG_TMS380TR is not set
-CONFIG_WLAN=y
-# CONFIG_PCMCIA_RAYCS is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-# CONFIG_AIRO is not set
-# CONFIG_ATMEL is not set
-# CONFIG_AT76C50X_USB is not set
-# CONFIG_AIRO_CS is not set
-# CONFIG_PCMCIA_WL3501 is not set
-# CONFIG_PRISM54 is not set
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_USB_NET_RNDIS_WLAN is not set
-# CONFIG_RTL8180 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_ADM8211 is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_MWL8K is not set
-# CONFIG_ATH_COMMON is not set
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_HOSTAP is not set
-# CONFIG_IPW2100 is not set
-# CONFIG_IPW2200 is not set
-# CONFIG_IWLAGN is not set
-# CONFIG_IWL4965 is not set
-# CONFIG_IWL3945 is not set
-# CONFIG_LIBERTAS is not set
-# CONFIG_HERMES is not set
-# CONFIG_P54_COMMON is not set
-# CONFIG_RT2X00 is not set
-# CONFIG_RTL8192CE is not set
-# CONFIG_RTL8192SE is not set
-# CONFIG_RTL8192DE is not set
-# CONFIG_RTL8192CU is not set
-# CONFIG_WL1251 is not set
-# CONFIG_WL12XX_MENU is not set
-# CONFIG_ZD1211RW is not set
-# CONFIG_MWIFIEX is not set
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-
-#
-# USB Network Adapters
-#
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET is not set
-# CONFIG_USB_HSO is not set
-# CONFIG_USB_IPHETH is not set
-CONFIG_NET_PCMCIA=y
-# CONFIG_PCMCIA_3C589 is not set
-# CONFIG_PCMCIA_3C574 is not set
-# CONFIG_PCMCIA_FMVJ18X is not set
-# CONFIG_PCMCIA_PCNET is not set
-# CONFIG_PCMCIA_NMCLAN is not set
-# CONFIG_PCMCIA_SMC91C92 is not set
-# CONFIG_PCMCIA_XIRC2PS is not set
-# CONFIG_PCMCIA_AXNET is not set
-# CONFIG_PCMCIA_IBMTR is not set
-# CONFIG_WAN is not set
-
-#
-# CAIF transport drivers
-#
-CONFIG_FDDI=y
-# CONFIG_DEFXX is not set
-# CONFIG_SKFP is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_NET_FC is not set
-CONFIG_NETCONSOLE=y
-CONFIG_NETPOLL=y
-# CONFIG_NETPOLL_TRAP is not set
-CONFIG_NET_POLL_CONTROLLER=y
-# CONFIG_VMXNET3 is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_FF_MEMLESS=y
-CONFIG_INPUT_POLLDEV=y
-CONFIG_INPUT_SPARSEKMAP=y
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADP5588 is not set
-# CONFIG_KEYBOARD_ADP5589 is not set
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_QT1070 is not set
-# CONFIG_KEYBOARD_QT2160 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_TCA6416 is not set
-# CONFIG_KEYBOARD_LM8323 is not set
-# CONFIG_KEYBOARD_MAX7359 is not set
-# CONFIG_KEYBOARD_MCS is not set
-# CONFIG_KEYBOARD_MPR121 is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_LIFEBOOK=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-# CONFIG_MOUSE_PS2_ELANTECH is not set
-# CONFIG_MOUSE_PS2_SENTELIC is not set
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_BCM5974 is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_MOUSE_SYNAPTICS_I2C is not set
-CONFIG_INPUT_JOYSTICK=y
-# CONFIG_JOYSTICK_ANALOG is not set
-# CONFIG_JOYSTICK_A3D is not set
-# CONFIG_JOYSTICK_ADI is not set
-# CONFIG_JOYSTICK_COBRA is not set
-# CONFIG_JOYSTICK_GF2K is not set
-# CONFIG_JOYSTICK_GRIP is not set
-# CONFIG_JOYSTICK_GRIP_MP is not set
-# CONFIG_JOYSTICK_GUILLEMOT is not set
-# CONFIG_JOYSTICK_INTERACT is not set
-# CONFIG_JOYSTICK_SIDEWINDER is not set
-# CONFIG_JOYSTICK_TMDC is not set
-# CONFIG_JOYSTICK_IFORCE is not set
-# CONFIG_JOYSTICK_WARRIOR is not set
-# CONFIG_JOYSTICK_MAGELLAN is not set
-# CONFIG_JOYSTICK_SPACEORB is not set
-# CONFIG_JOYSTICK_SPACEBALL is not set
-# CONFIG_JOYSTICK_STINGER is not set
-# CONFIG_JOYSTICK_TWIDJOY is not set
-# CONFIG_JOYSTICK_ZHENHUA is not set
-# CONFIG_JOYSTICK_AS5011 is not set
-# CONFIG_JOYSTICK_JOYDUMP is not set
-# CONFIG_JOYSTICK_XPAD is not set
-CONFIG_INPUT_TABLET=y
-# CONFIG_TABLET_USB_ACECAD is not set
-# CONFIG_TABLET_USB_AIPTEK is not set
-# CONFIG_TABLET_USB_GTCO is not set
-# CONFIG_TABLET_USB_HANWANG is not set
-# CONFIG_TABLET_USB_KBTAB is not set
-# CONFIG_TABLET_USB_WACOM is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_TOUCHSCREEN_AD7879 is not set
-# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
-# CONFIG_TOUCHSCREEN_BU21013 is not set
-# CONFIG_TOUCHSCREEN_DYNAPRO is not set
-# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
-# CONFIG_TOUCHSCREEN_EETI is not set
-# CONFIG_TOUCHSCREEN_FUJITSU is not set
-# CONFIG_TOUCHSCREEN_GUNZE is not set
-# CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
-# CONFIG_TOUCHSCREEN_MAX11801 is not set
-# CONFIG_TOUCHSCREEN_MCS5000 is not set
-# CONFIG_TOUCHSCREEN_MTOUCH is not set
-# CONFIG_TOUCHSCREEN_INEXIO is not set
-# CONFIG_TOUCHSCREEN_MK712 is not set
-# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
-# CONFIG_TOUCHSCREEN_TSC2007 is not set
-# CONFIG_TOUCHSCREEN_ST1232 is not set
-# CONFIG_TOUCHSCREEN_TPS6507X is not set
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_AD714X is not set
-# CONFIG_INPUT_PCSPKR is not set
-# CONFIG_INPUT_MMA8450 is not set
-# CONFIG_INPUT_MPU3050 is not set
-# CONFIG_INPUT_APANEL is not set
-# CONFIG_INPUT_ATLAS_BTNS is not set
-# CONFIG_INPUT_ATI_REMOTE is not set
-# CONFIG_INPUT_ATI_REMOTE2 is not set
-# CONFIG_INPUT_KEYSPAN_REMOTE is not set
-# CONFIG_INPUT_KXTJ9 is not set
-# CONFIG_INPUT_POWERMATE is not set
-# CONFIG_INPUT_YEALINK is not set
-# CONFIG_INPUT_CM109 is not set
-# CONFIG_INPUT_UINPUT is not set
-# CONFIG_INPUT_PCF8574 is not set
-# CONFIG_INPUT_ADXL34X is not set
-# CONFIG_INPUT_CMA3000 is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_CT82C710 is not set
-# CONFIG_SERIO_PCIPS2 is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_SERIO_ALTERA_PS2 is not set
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_NONSTANDARD=y
-# CONFIG_ROCKETPORT is not set
-# CONFIG_CYCLADES is not set
-# CONFIG_MOXA_INTELLIO is not set
-# CONFIG_MOXA_SMARTIO is not set
-# CONFIG_SYNCLINK is not set
-# CONFIG_SYNCLINKMP is not set
-# CONFIG_SYNCLINK_GT is not set
-# CONFIG_NOZOMI is not set
-# CONFIG_ISI is not set
-# CONFIG_N_HDLC is not set
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-# CONFIG_DEVKMEM is not set
-# CONFIG_STALDRV is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_PNP=y
-# CONFIG_SERIAL_8250_CS is not set
-CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-CONFIG_SERIAL_8250_DETECT_IRQ=y
-CONFIG_SERIAL_8250_RSA=y
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_MFD_HSU is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-# CONFIG_SERIAL_TIMBERDALE is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_PCH_UART is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=y
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-# CONFIG_HW_RANDOM_INTEL is not set
-# CONFIG_HW_RANDOM_AMD is not set
-CONFIG_HW_RANDOM_VIA=y
-CONFIG_NVRAM=y
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# PCMCIA character devices
-#
-# CONFIG_SYNCLINK_CS is not set
-# CONFIG_CARDMAN_4000 is not set
-# CONFIG_CARDMAN_4040 is not set
-# CONFIG_IPWIRELESS is not set
-# CONFIG_MWAVE is not set
-# CONFIG_RAW_DRIVER is not set
-CONFIG_HPET=y
-# CONFIG_HPET_MMAP is not set
-# CONFIG_HANGCHECK_TIMER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
-CONFIG_DEVPORT=y
-# CONFIG_RAMOOPS is not set
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-# CONFIG_I2C_CHARDEV is not set
-# CONFIG_I2C_MUX is not set
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_ALGOBIT=y
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-CONFIG_I2C_I801=y
-# CONFIG_I2C_ISCH is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-
-#
-# ACPI drivers
-#
-# CONFIG_I2C_SCMI is not set
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_INTEL_MID is not set
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_PXA_PCI is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_I2C_XILINX is not set
-# CONFIG_I2C_EG20T is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_DIOLAN_U2C is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_SPI is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-
-#
-# Enable Device Drivers -> PPS to see the PTP clock options.
-#
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
-# CONFIG_W1 is not set
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-# CONFIG_TEST_POWER is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_BQ20Z75 is not set
-# CONFIG_BATTERY_BQ27x00 is not set
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_CHARGER_MAX8903 is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_ABITUGURU is not set
-# CONFIG_SENSORS_ABITUGURU3 is not set
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ADT7411 is not set
-# CONFIG_SENSORS_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7475 is not set
-# CONFIG_SENSORS_ASC7621 is not set
-# CONFIG_SENSORS_K8TEMP is not set
-# CONFIG_SENSORS_K10TEMP is not set
-# CONFIG_SENSORS_FAM15H_POWER is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS620 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_I5K_AMB is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_FSCHMD is not set
-# CONFIG_SENSORS_G760A is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_CORETEMP is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_JC42 is not set
-# CONFIG_SENSORS_LINEAGE is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM73 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_LTC4151 is not set
-# CONFIG_SENSORS_LTC4215 is not set
-# CONFIG_SENSORS_LTC4245 is not set
-# CONFIG_SENSORS_LTC4261 is not set
-# CONFIG_SENSORS_LM95241 is not set
-# CONFIG_SENSORS_LM95245 is not set
-# CONFIG_SENSORS_MAX16065 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX1668 is not set
-# CONFIG_SENSORS_MAX6639 is not set
-# CONFIG_SENSORS_MAX6642 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_NTC_THERMISTOR is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_PMBUS is not set
-# CONFIG_SENSORS_SHT21 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_SMM665 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_EMC1403 is not set
-# CONFIG_SENSORS_EMC2103 is not set
-# CONFIG_SENSORS_EMC6W201 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SCH56XX_COMMON is not set
-# CONFIG_SENSORS_SCH5627 is not set
-# CONFIG_SENSORS_SCH5636 is not set
-# CONFIG_SENSORS_ADS1015 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-# CONFIG_SENSORS_AMC6821 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_TMP102 is not set
-# CONFIG_SENSORS_TMP401 is not set
-# CONFIG_SENSORS_TMP421 is not set
-# CONFIG_SENSORS_VIA_CPUTEMP is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_VT8231 is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83795 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83L786NG is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_SENSORS_APPLESMC is not set
-
-#
-# ACPI drivers
-#
-# CONFIG_SENSORS_ACPI_POWER is not set
-# CONFIG_SENSORS_ATK0110 is not set
-CONFIG_THERMAL=y
-CONFIG_THERMAL_HWMON=y
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_CORE is not set
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_ACQUIRE_WDT is not set
-# CONFIG_ADVANTECH_WDT is not set
-# CONFIG_ALIM1535_WDT is not set
-# CONFIG_ALIM7101_WDT is not set
-# CONFIG_F71808E_WDT is not set
-# CONFIG_SP5100_TCO is not set
-# CONFIG_SC520_WDT is not set
-# CONFIG_SBC_FITPC2_WATCHDOG is not set
-# CONFIG_EUROTECH_WDT is not set
-# CONFIG_IB700_WDT is not set
-# CONFIG_IBMASR is not set
-# CONFIG_WAFER_WDT is not set
-# CONFIG_I6300ESB_WDT is not set
-# CONFIG_ITCO_WDT is not set
-# CONFIG_IT8712F_WDT is not set
-# CONFIG_IT87_WDT is not set
-# CONFIG_HP_WATCHDOG is not set
-# CONFIG_SC1200_WDT is not set
-# CONFIG_PC87413_WDT is not set
-# CONFIG_NV_TCO is not set
-# CONFIG_60XX_WDT is not set
-# CONFIG_SBC8360_WDT is not set
-# CONFIG_CPU5_WDT is not set
-# CONFIG_SMSC_SCH311X_WDT is not set
-# CONFIG_SMSC37B787_WDT is not set
-# CONFIG_W83627HF_WDT is not set
-# CONFIG_W83697HF_WDT is not set
-# CONFIG_W83697UG_WDT is not set
-# CONFIG_W83877F_WDT is not set
-# CONFIG_W83977F_WDT is not set
-# CONFIG_MACHZ_WDT is not set
-# CONFIG_SBC_EPX_C3_WATCHDOG is not set
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB is not set
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-# CONFIG_BCMA is not set
-CONFIG_MFD_SUPPORT=y
-# CONFIG_MFD_CORE is not set
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_TWL4030_CORE is not set
-# CONFIG_MFD_STMPE is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_MFD_CS5535 is not set
-# CONFIG_LPC_SCH is not set
-# CONFIG_MFD_RDC321X is not set
-# CONFIG_MFD_JANZ_CMODIO is not set
-# CONFIG_MFD_VX855 is not set
-# CONFIG_MFD_WL1273_CORE is not set
-# CONFIG_REGULATOR is not set
-# CONFIG_MEDIA_SUPPORT is not set
-
-#
-# Graphics support
-#
-CONFIG_AGP=y
-CONFIG_AGP_AMD64=y
-CONFIG_AGP_INTEL=y
-# CONFIG_AGP_SIS is not set
-# CONFIG_AGP_VIA is not set
-CONFIG_VGA_ARB=y
-CONFIG_VGA_ARB_MAX_GPUS=16
-# CONFIG_VGA_SWITCHEROO is not set
-CONFIG_DRM=y
-CONFIG_DRM_KMS_HELPER=y
-# CONFIG_DRM_TDFX is not set
-# CONFIG_DRM_R128 is not set
-# CONFIG_DRM_RADEON is not set
-# CONFIG_DRM_I810 is not set
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_KMS=y
-# CONFIG_DRM_MGA is not set
-# CONFIG_DRM_SIS is not set
-# CONFIG_DRM_VIA is not set
-# CONFIG_DRM_SAVAGE is not set
-# CONFIG_STUB_POULSBO is not set
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=y
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-# CONFIG_FB_SYS_FOPS is not set
-# CONFIG_FB_WMT_GE_ROPS is not set
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_CIRRUS is not set
-# CONFIG_FB_PM2 is not set
-# CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_ARC is not set
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_VGA16 is not set
-# CONFIG_FB_UVESA is not set
-# CONFIG_FB_VESA is not set
-CONFIG_FB_EFI=y
-# CONFIG_FB_N411 is not set
-# CONFIG_FB_HGA is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_NVIDIA is not set
-# CONFIG_FB_RIVA is not set
-# CONFIG_FB_LE80578 is not set
-# CONFIG_FB_MATROX is not set
-# CONFIG_FB_RADEON is not set
-# CONFIG_FB_ATY128 is not set
-# CONFIG_FB_ATY is not set
-# CONFIG_FB_S3 is not set
-# CONFIG_FB_SAVAGE is not set
-# CONFIG_FB_SIS is not set
-# CONFIG_FB_VIA is not set
-# CONFIG_FB_NEOMAGIC is not set
-# CONFIG_FB_KYRO is not set
-# CONFIG_FB_3DFX is not set
-# CONFIG_FB_VOODOO1 is not set
-# CONFIG_FB_VT8623 is not set
-# CONFIG_FB_TRIDENT is not set
-# CONFIG_FB_ARK is not set
-# CONFIG_FB_PM3 is not set
-# CONFIG_FB_CARMINE is not set
-# CONFIG_FB_GEODE is not set
-# CONFIG_FB_UDL is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_MB862XX is not set
-# CONFIG_FB_BROADSHEET is not set
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=y
-# CONFIG_BACKLIGHT_PROGEAR is not set
-# CONFIG_BACKLIGHT_APPLE is not set
-# CONFIG_BACKLIGHT_SAHARA is not set
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-CONFIG_VGACON_SOFT_SCROLLBACK=y
-CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-CONFIG_LOGO_LINUX_CLUT224=y
-CONFIG_SOUND=y
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-CONFIG_SND_HWDEP=y
-CONFIG_SND_SEQUENCER=y
-CONFIG_SND_SEQ_DUMMY=y
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_SEQUENCER_OSS=y
-CONFIG_SND_HRTIMER=y
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_DMA_SGBUF=y
-# CONFIG_SND_RAWMIDI_SEQ is not set
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_PCSP is not set
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_ALOOP is not set
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-CONFIG_SND_PCI=y
-# CONFIG_SND_AD1889 is not set
-# CONFIG_SND_ALS300 is not set
-# CONFIG_SND_ALS4000 is not set
-# CONFIG_SND_ALI5451 is not set
-# CONFIG_SND_ASIHPI is not set
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AW2 is not set
-# CONFIG_SND_AZT3328 is not set
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_CMIPCI is not set
-# CONFIG_SND_OXYGEN is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS5530 is not set
-# CONFIG_SND_CS5535AUDIO is not set
-# CONFIG_SND_CTXFI is not set
-# CONFIG_SND_DARLA20 is not set
-# CONFIG_SND_GINA20 is not set
-# CONFIG_SND_LAYLA20 is not set
-# CONFIG_SND_DARLA24 is not set
-# CONFIG_SND_GINA24 is not set
-# CONFIG_SND_LAYLA24 is not set
-# CONFIG_SND_MONA is not set
-# CONFIG_SND_MIA is not set
-# CONFIG_SND_ECHO3G is not set
-# CONFIG_SND_INDIGO is not set
-# CONFIG_SND_INDIGOIO is not set
-# CONFIG_SND_INDIGODJ is not set
-# CONFIG_SND_INDIGOIOX is not set
-# CONFIG_SND_INDIGODJX is not set
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-# CONFIG_SND_FM801 is not set
-CONFIG_SND_HDA_INTEL=y
-CONFIG_SND_HDA_PREALLOC_SIZE=64
-CONFIG_SND_HDA_HWDEP=y
-# CONFIG_SND_HDA_RECONFIG is not set
-# CONFIG_SND_HDA_INPUT_BEEP is not set
-# CONFIG_SND_HDA_INPUT_JACK is not set
-# CONFIG_SND_HDA_PATCH_LOADER is not set
-CONFIG_SND_HDA_CODEC_REALTEK=y
-CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
-CONFIG_SND_HDA_CODEC_ANALOG=y
-CONFIG_SND_HDA_CODEC_SIGMATEL=y
-CONFIG_SND_HDA_CODEC_VIA=y
-CONFIG_SND_HDA_CODEC_HDMI=y
-CONFIG_SND_HDA_CODEC_CIRRUS=y
-CONFIG_SND_HDA_CODEC_CONEXANT=y
-CONFIG_SND_HDA_CODEC_CA0110=y
-CONFIG_SND_HDA_CODEC_CA0132=y
-CONFIG_SND_HDA_CODEC_CMEDIA=y
-CONFIG_SND_HDA_CODEC_SI3054=y
-CONFIG_SND_HDA_GENERIC=y
-# CONFIG_SND_HDA_POWER_SAVE is not set
-# CONFIG_SND_HDSP is not set
-# CONFIG_SND_HDSPM is not set
-# CONFIG_SND_ICE1712 is not set
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_KORG1212 is not set
-# CONFIG_SND_LOLA is not set
-# CONFIG_SND_LX6464ES is not set
-# CONFIG_SND_MAESTRO3 is not set
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-# CONFIG_SND_PCXHR is not set
-# CONFIG_SND_RIPTIDE is not set
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-# CONFIG_SND_VIRTUOSO is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_YMFPCI is not set
-CONFIG_SND_USB=y
-# CONFIG_SND_USB_AUDIO is not set
-# CONFIG_SND_USB_UA101 is not set
-# CONFIG_SND_USB_USX2Y is not set
-# CONFIG_SND_USB_CAIAQ is not set
-# CONFIG_SND_USB_US122L is not set
-# CONFIG_SND_USB_6FIRE is not set
-CONFIG_SND_PCMCIA=y
-# CONFIG_SND_VXPOCKET is not set
-# CONFIG_SND_PDAUDIOCF is not set
-# CONFIG_SND_SOC is not set
-# CONFIG_SOUND_PRIME is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-CONFIG_HIDRAW=y
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=y
-# CONFIG_HID_ACRUX is not set
-CONFIG_HID_APPLE=y
-CONFIG_HID_BELKIN=y
-CONFIG_HID_CHERRY=y
-CONFIG_HID_CHICONY=y
-# CONFIG_HID_PRODIKEYS is not set
-CONFIG_HID_CYPRESS=y
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EMS_FF is not set
-CONFIG_HID_EZKEY=y
-# CONFIG_HID_HOLTEK is not set
-# CONFIG_HID_KEYTOUCH is not set
-CONFIG_HID_KYE=y
-# CONFIG_HID_UCLOGIC is not set
-# CONFIG_HID_WALTOP is not set
-CONFIG_HID_GYRATION=y
-# CONFIG_HID_TWINHAN is not set
-CONFIG_HID_KENSINGTON=y
-# CONFIG_HID_LCPOWER is not set
-CONFIG_HID_LOGITECH=y
-CONFIG_LOGITECH_FF=y
-# CONFIG_LOGIRUMBLEPAD2_FF is not set
-# CONFIG_LOGIG940_FF is not set
-# CONFIG_LOGIWII_FF is not set
-CONFIG_HID_MICROSOFT=y
-CONFIG_HID_MONTEREY=y
-# CONFIG_HID_MULTITOUCH is not set
-CONFIG_HID_NTRIG=y
-# CONFIG_HID_ORTEK is not set
-CONFIG_HID_PANTHERLORD=y
-CONFIG_PANTHERLORD_FF=y
-CONFIG_HID_PETALYNX=y
-# CONFIG_HID_PICOLCD is not set
-# CONFIG_HID_QUANTA is not set
-# CONFIG_HID_ROCCAT is not set
-CONFIG_HID_SAMSUNG=y
-CONFIG_HID_SONY=y
-# CONFIG_HID_SPEEDLINK is not set
-CONFIG_HID_SUNPLUS=y
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-CONFIG_HID_TOPSEED=y
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_ZEROPLUS is not set
-# CONFIG_HID_ZYDACRON is not set
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=y
-CONFIG_USB_DEBUG=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_DEVICE_CLASS is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_MON=y
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_WUSB_CBAF is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-# CONFIG_USB_XHCI_HCD is not set
-CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=y
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_WHCI_HCD is not set
-# CONFIG_USB_HWA_HCD is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_ACM is not set
-CONFIG_USB_PRINTER=y
-# CONFIG_USB_WDM is not set
-# CONFIG_USB_TMC is not set
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_REALTEK is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ALAUDA is not set
-# CONFIG_USB_STORAGE_ONETOUCH is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-# CONFIG_USB_STORAGE_ENE_UB6250 is not set
-# CONFIG_USB_UAS is not set
-CONFIG_USB_LIBUSUAL=y
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_SERIAL is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_SEVSEG is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_FTDI_ELAN is not set
-# CONFIG_USB_APPLEDISPLAY is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_IOWARRIOR is not set
-# CONFIG_USB_TEST is not set
-# CONFIG_USB_ISIGHTFW is not set
-# CONFIG_USB_YUREX is not set
-# CONFIG_USB_GADGET is not set
-
-#
-# OTG and related infrastructure
-#
-# CONFIG_NOP_USB_XCEIV is not set
-# CONFIG_UWB is not set
-# CONFIG_MMC is not set
-# CONFIG_MEMSTICK is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_LM3530 is not set
-# CONFIG_LEDS_ALIX2 is not set
-# CONFIG_LEDS_PCA9532 is not set
-# CONFIG_LEDS_LP3944 is not set
-# CONFIG_LEDS_LP5521 is not set
-# CONFIG_LEDS_LP5523 is not set
-# CONFIG_LEDS_CLEVO_MAIL is not set
-# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_BD2802 is not set
-# CONFIG_LEDS_INTEL_SS4200 is not set
-CONFIG_LEDS_TRIGGERS=y
-
-#
-# LED Triggers
-#
-# CONFIG_LEDS_TRIGGER_TIMER is not set
-# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
-# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
-CONFIG_EDAC=y
-
-#
-# Reporting subsystems
-#
-# CONFIG_EDAC_DEBUG is not set
-CONFIG_EDAC_DECODE_MCE=y
-# CONFIG_EDAC_MCE_INJ is not set
-# CONFIG_EDAC_MM_EDAC is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-# CONFIG_RTC_HCTOSYS is not set
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS1307 is not set
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_DS3232 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_ISL12022 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-# CONFIG_RTC_DRV_BQ32K is not set
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_RX8025 is not set
-# CONFIG_RTC_DRV_EM3027 is not set
-# CONFIG_RTC_DRV_RV3029C2 is not set
-
-#
-# SPI RTC drivers
-#
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=y
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_MSM6242 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_RP5C01 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-# CONFIG_INTEL_MID_DMAC is not set
-# CONFIG_INTEL_IOATDMA is not set
-# CONFIG_TIMB_DMA is not set
-# CONFIG_PCH_DMA is not set
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
-
-#
-# Virtio drivers
-#
-# CONFIG_VIRTIO_PCI is not set
-# CONFIG_VIRTIO_BALLOON is not set
-# CONFIG_STAGING is not set
-CONFIG_X86_PLATFORM_DEVICES=y
-# CONFIG_ACERHDF is not set
-# CONFIG_ASUS_LAPTOP is not set
-# CONFIG_FUJITSU_LAPTOP is not set
-# CONFIG_HP_ACCEL is not set
-# CONFIG_MSI_LAPTOP is not set
-# CONFIG_PANASONIC_LAPTOP is not set
-# CONFIG_COMPAL_LAPTOP is not set
-# CONFIG_SONY_LAPTOP is not set
-# CONFIG_IDEAPAD_LAPTOP is not set
-# CONFIG_THINKPAD_ACPI is not set
-# CONFIG_SENSORS_HDAPS is not set
-# CONFIG_INTEL_MENLOW is not set
-CONFIG_EEEPC_LAPTOP=y
-# CONFIG_ACPI_WMI is not set
-# CONFIG_ACPI_ASUS is not set
-# CONFIG_TOPSTAR_LAPTOP is not set
-# CONFIG_ACPI_TOSHIBA is not set
-# CONFIG_TOSHIBA_BT_RFKILL is not set
-# CONFIG_ACPI_CMPC is not set
-# CONFIG_INTEL_IPS is not set
-# CONFIG_IBM_RTL is not set
-# CONFIG_XO15_EBOOK is not set
-# CONFIG_SAMSUNG_LAPTOP is not set
-# CONFIG_INTEL_OAKTRAIL is not set
-# CONFIG_SAMSUNG_Q10 is not set
-CONFIG_CLKEVT_I8253=y
-CONFIG_I8253_LOCK=y
-CONFIG_CLKBLD_I8253=y
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-CONFIG_AMD_IOMMU=y
-CONFIG_AMD_IOMMU_STATS=y
-CONFIG_DMAR=y
-# CONFIG_DMAR_DEFAULT_ON is not set
-CONFIG_DMAR_FLOPPY_WA=y
-# CONFIG_INTR_REMAP is not set
-# CONFIG_VIRT_DRIVERS is not set
-
-#
-# Firmware Drivers
-#
-# CONFIG_EDD is not set
-CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_EFI_VARS=y
-# CONFIG_DELL_RBU is not set
-# CONFIG_DCDBAS is not set
-CONFIG_DMIID=y
-# CONFIG_DMI_SYSFS is not set
-# CONFIG_ISCSI_IBFT_FIND is not set
-# CONFIG_SIGMA is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# File systems
-#
-# CONFIG_EXT2_FS is not set
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-# CONFIG_EXT4_FS is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_FANOTIFY is not set
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=y
-# CONFIG_QFMT_V1 is not set
-CONFIG_QFMT_V2=y
-CONFIG_QUOTACTL=y
-CONFIG_QUOTACTL_COMPAT=y
-CONFIG_AUTOFS4_FS=y
-# CONFIG_FUSE_FS is not set
-CONFIG_GENERIC_ACL=y
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-# CONFIG_PROC_VMCORE is not set
-CONFIG_PROC_SYSCTL=y
-# CONFIG_PROC_PAGE_MONITOR is not set
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-CONFIG_HUGETLBFS=y
-CONFIG_HUGETLB_PAGE=y
-# CONFIG_CONFIGFS_FS is not set
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_ECRYPT_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_LOGFS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_PSTORE is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-# CONFIG_NFS_V4_1 is not set
-CONFIG_ROOT_NFS=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-# CONFIG_NFS_USE_NEW_IDMAPPER is not set
-# CONFIG_NFSD is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-# CONFIG_CEPH_FS is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-CONFIG_OSF_PARTITION=y
-CONFIG_AMIGA_PARTITION=y
-# CONFIG_ATARI_PARTITION is not set
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-CONFIG_UNIXWARE_DISKLABEL=y
-# CONFIG_LDM_PARTITION is not set
-CONFIG_SGI_PARTITION=y
-# CONFIG_ULTRIX_PARTITION is not set
-CONFIG_SUN_PARTITION=y
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-# CONFIG_NLS_CODEPAGE_850 is not set
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=y
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-# CONFIG_NLS_ISO8859_15 is not set
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-CONFIG_NLS_UTF8=y
-
-#
-# Kernel hacking
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_PRINTK_TIME=y
-CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
-# CONFIG_ENABLE_WARN_DEPRECATED is not set
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=2048
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-# CONFIG_LOCKUP_DETECTOR is not set
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-# CONFIG_DETECT_HUNG_TASK is not set
-# CONFIG_SCHED_DEBUG is not set
-CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-CONFIG_STACKTRACE=y
-CONFIG_DEBUG_STACK_USAGE=y
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_VIRTUAL is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
-CONFIG_DEBUG_MEMORY_INIT=y
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
-CONFIG_FRAME_POINTER=y
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=60
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
-# CONFIG_LKDTM is not set
-# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_SYSCTL_SYSCALL_CHECK=y
-# CONFIG_DEBUG_PAGEALLOC is not set
-CONFIG_USER_STACKTRACE_SUPPORT=y
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
-CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_TRACING=y
-CONFIG_GENERIC_TRACER=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_FTRACE_SYSCALLS is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-# CONFIG_STACK_TRACER is not set
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_KPROBE_EVENT=y
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_MMIOTRACE is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
-# CONFIG_DYNAMIC_DEBUG is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-CONFIG_HAVE_ARCH_KMEMCHECK=y
-# CONFIG_KMEMCHECK is not set
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_STRICT_DEVMEM is not set
-CONFIG_X86_VERBOSE_BOOTUP=y
-CONFIG_EARLY_PRINTK=y
-CONFIG_EARLY_PRINTK_DBGP=y
-CONFIG_DEBUG_STACKOVERFLOW=y
-# CONFIG_X86_PTDUMP is not set
-CONFIG_DEBUG_NX_TEST=m
-# CONFIG_IOMMU_DEBUG is not set
-# CONFIG_IOMMU_STRESS is not set
-CONFIG_HAVE_MMIOTRACE_SUPPORT=y
-# CONFIG_X86_DECODER_SELFTEST is not set
-CONFIG_IO_DELAY_TYPE_0X80=0
-CONFIG_IO_DELAY_TYPE_0XED=1
-CONFIG_IO_DELAY_TYPE_UDELAY=2
-CONFIG_IO_DELAY_TYPE_NONE=3
-CONFIG_IO_DELAY_0X80=y
-# CONFIG_IO_DELAY_0XED is not set
-# CONFIG_IO_DELAY_UDELAY is not set
-# CONFIG_IO_DELAY_NONE is not set
-CONFIG_DEFAULT_IO_DELAY_TYPE=0
-CONFIG_DEBUG_BOOT_PARAMS=y
-# CONFIG_CPA_DEBUG is not set
-CONFIG_OPTIMIZE_INLINING=y
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
-
-#
-# Security options
-#
-
-#
-# Grsecurity
-#
-# CONFIG_GRKERNSEC is not set
-
-#
-# PaX
-#
-CONFIG_TASK_SIZE_MAX_SHIFT=47
-
-#
-# Miscellaneous hardening features
-#
-# CONFIG_PAX_MEMORY_SANITIZE is not set
-# CONFIG_PAX_MEMORY_STACKLEAK is not set
-# CONFIG_PAX_MEMORY_UDEREF is not set
-CONFIG_KEYS=y
-CONFIG_KEYS_DEBUG_PROC_KEYS=y
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-# CONFIG_SECURITYFS is not set
-CONFIG_SECURITY_NETWORK=y
-# CONFIG_SECURITY_NETWORK_XFRM is not set
-# CONFIG_SECURITY_PATH is not set
-# CONFIG_INTEL_TXT is not set
-CONFIG_LSM_MMAP_MIN_ADDR=65536
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
-CONFIG_SECURITY_SELINUX_DISABLE=y
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
-# CONFIG_SECURITY_SMACK is not set
-# CONFIG_SECURITY_TOMOYO is not set
-# CONFIG_SECURITY_APPARMOR is not set
-# CONFIG_IMA is not set
-CONFIG_DEFAULT_SECURITY_SELINUX=y
-# CONFIG_DEFAULT_SECURITY_DAC is not set
-CONFIG_DEFAULT_SECURITY="selinux"
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
-# CONFIG_CRYPTO_PCRYPT is not set
-CONFIG_CRYPTO_WORKQUEUE=y
-# CONFIG_CRYPTO_CRYPTD is not set
-CONFIG_CRYPTO_AUTHENC=y
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-# CONFIG_CRYPTO_ECB is not set
-# CONFIG_CRYPTO_LRW is not set
-# CONFIG_CRYPTO_PCBC is not set
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_HMAC=y
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_CRC32C_INTEL is not set
-# CONFIG_CRYPTO_GHASH is not set
-# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-CONFIG_CRYPTO_SHA1=y
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_WP512 is not set
-# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_AES_X86_64 is not set
-# CONFIG_CRYPTO_AES_NI_INTEL is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_ARC4=y
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-CONFIG_CRYPTO_DES=y
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SALSA20_X86_64 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-# CONFIG_CRYPTO_TWOFISH_X86_64 is not set
-
-#
-# Compression
-#
-# CONFIG_CRYPTO_DEFLATE is not set
-# CONFIG_CRYPTO_ZLIB is not set
-# CONFIG_CRYPTO_LZO is not set
-
-#
-# Random Number Generation
-#
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-# CONFIG_CRYPTO_USER_API_HASH is not set
-# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
-CONFIG_CRYPTO_HW=y
-# CONFIG_CRYPTO_DEV_PADLOCK is not set
-# CONFIG_CRYPTO_DEV_HIFN_795X is not set
-CONFIG_HAVE_KVM=y
-CONFIG_VIRTUALIZATION=y
-# CONFIG_KVM is not set
-# CONFIG_VHOST_NET is not set
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_FIRST_BIT=y
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC16 is not set
-CONFIG_CRC_T10DIF=y
-# CONFIG_CRC_ITU_T is not set
-CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
-# CONFIG_LIBCRC32C is not set
-# CONFIG_CRC8 is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_CHECK_SIGNATURE=y
-CONFIG_CPU_RMAP=y
-CONFIG_NLATTR=y
-CONFIG_AVERAGE=y
-# CONFIG_CORDIC is not set
index e266e41d558bd51afb0b97d04d56c969012eb30f..c5afa3c69340c42e367a44c4cb1cd8e93855d747 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = kernel
-version    = 3.1.5
-release    = 4
+version    = 3.4.6
+release    = 1
 thisapp    = linux-%{version}
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
@@ -15,9 +15,9 @@ license    = GPLv2
 summary    = The Linux kernel.
 
 description
-       The kernel package contains the Linux kernel (vmlinuz), the core of any \
-       Linux operating system. The kernel handles the basic functions \
-       of the operating system: memory allocation, process allocation, device \
+       The kernel package contains the Linux kernel (vmlinuz), the core of any
+       Linux operating system. The kernel handles the basic functions
+       of the operating system: memory allocation, process allocation, device
        input and output, etc.
 end
 
@@ -36,17 +36,20 @@ build
 
        requires
                asciidoc
+               binutils >= 2.22.52.0.3-2
                binutils-devel
+               bison
                elfutils-devel
+               flex
                gcc-plugin-devel
                gettext
-               module-init-tools
                ncurses-devel
                net-tools
                perl
                python-devel
                xmlto
-               xz-lzma-compat
+
+               /sbin/depmod
        end
 
        tools_cpupower_requires
@@ -61,6 +64,9 @@ build
        # Should we build cpupower?
        build_cpupower = 1
 
+       # Arguments that are passed to the kernel build command.
+       kernel_build_flags =
+
        kernel_target = bzImage
        if "%{DISTRO_ARCH}" == "i686"
                # Build a default and legacy kernel for the
@@ -81,20 +87,31 @@ build
        end
 
        if "%{DISTRO_ARCH}" == "armv5tel"
+               # ERROR Currently all kernel images are disabled, because they
+               # won't build with the grsecurity patch.
+
                # Build versatile kernel.
                build_kernel_versatile = 1
 
+               # Build a kernel for Marvell Kirkwood-based devices.
+               build_kernel_kirkwood = 1
+
                kernel_arch  = arm
                kernel_image = arch/%{kernel_arch}/boot/zImage
 
                # ARM does not support cpupower.
                build_cpupower = 0
+
+               # http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/091404.html
+               kernel_build_flags = KALLSYMS_EXTRA_PASS=1
        end
 
        if "%{DISTRO_ARCH}" == "armv7hl"
-               # Currently build no kernel images.
+               # Build a kernel for TI OMAP SoCs.
+               build_kernel_omap = 1
 
                kernel_arch  = arm
+               kernel_image = arch/%{kernel_arch}/boot/zImage
 
                # ARM does not support cpupower.
                build_cpupower = 0
@@ -115,6 +132,16 @@ build
                kernels += versatile
        end
 
+       # Build ARM kirkwood kernel.
+       if "%{build_kernel_kirkwood}" == "1"
+               kernels += kirkwood
+       end
+
+       # Build ARM omap kernel.
+       if "%{build_kernel_omap}" == "1"
+               kernels += omap
+       end
+
        # Add tools' build requirements if build is requested.
        if "%{build_cpupower}" == "1"
                requires += %{tools_cpupower_requires}
@@ -123,6 +150,15 @@ build
        prepare_cmds
                rm -f %{DIR_APP}/localversion-grsec
 
+               # Remove -Werror flag to fix ARMv5 build.
+               sed -e "s/-Werror//g" -i grsecurity/Makefile
+
+               # Disable the colorize plugin.
+               # It's generally very nice but it clutters our
+               # logfiles.
+               sed -e "/^COLORIZE_PLUGIN_CFLAGS/d" \
+                       -i Makefile
+
                sed -e "s/^HOSTCFLAGS.*=.*/& -fPIC/g" -i Makefile
 
                cp -vf %{DIR_SOURCE}/%{DISTRO_SNAME}_logo.ppm \
@@ -138,6 +174,8 @@ build
                touch .scmversion
 
                mkdir -pv configs
+
+               cd %{DIR_SOURCE}
                configure_kernel() {
                        local flavour=${1}
                        local suffix
@@ -145,13 +183,8 @@ build
                                suffix="-${flavour}"
                        fi
 
-                       # This is the place, where the configuration files
-                       # should be dynamically generated.
-                       # For now, we just copy pregenerated ones.
-                       cp %{DIR_SOURCE}/config.%{arch}${suffix} .config
-
-                       make ARCH=%{kernel_arch} oldnoconfig
-                       mv .config configs/config.${flavour}
+                       scripts/configure --kernel-dir=%{DIR_APP} \
+                               merge %{DISTRO_ARCH} ${flavour} %{DIR_APP}/configs/config.${flavour}
                }
 
                # Generate configuration files for all kernels we are going to
@@ -182,10 +215,12 @@ build
 
                        # Install configuration file.
                        cp configs/config.${flavour} .config
+                       cat .config
 
                        # Run the build.
                        make ARCH=%{kernel_arch} oldnoconfig >/dev/null
-                       make ARCH=%{kernel_arch} CC="gcc -fno-PIE" %{kernel_target} modules %{PARALLELISMFLAGS}
+                       make ARCH=%{kernel_arch} CC="gcc -fno-PIE" %{kernel_target} modules \
+                               %{kernel_build_flags} %{PARALLELISMFLAGS}
 
                        # Install the results.
                        mkdir -pv %{BUILDROOT}/boot %{BUILDROOT}/lib/modules/${fullversion}
@@ -276,6 +311,10 @@ build
        end
 
        install
+               # When no kernels are configured, we create a default config
+               # which enables us to install at least the header files.
+               [ -n "%{kernels}" ] || make ARCH=%{kernel_arch} defconfig
+
                # Install the header files
                make ARCH=%{kernel_arch} INSTALL_HDR_PATH=dest headers_install
                mkdir -pv %{BUILDROOT}/usr/include
@@ -317,9 +356,7 @@ packages
                summary = The Linux kernel %{kernel_release}.
 
                prerequires
-                       dracut
-                       grubby
-                       module-init-tools
+                       /sbin/depmod
                end
 
                provides
@@ -327,7 +364,8 @@ packages
                end
 
                requires
-                       %{prerequires}
+                       dracut
+                       grubby
                        linux-firmware
                end
 
@@ -340,8 +378,8 @@ packages
                end
 
                _posttrans
-                       /sbin/new-kernel-pkg --package %{kernel_name} --mkinitrd --dracut --depmod --update %{kernel_release} || exit $?
-                       /sbin/new-kernel-pkg --package %{kernel_name} --rpmposttrans %{kernel_release} || exit $?
+                       /sbin/new-kernel-pkg --package %{kernel_name} --mkinitrd --dracut --depmod --update %{kernel_release}
+                       /sbin/new-kernel-pkg --package %{kernel_name} --rpmposttrans %{kernel_release}
                end
 
                script posttransin
@@ -353,7 +391,7 @@ packages
                end
 
                script postin
-                       /sbin/new-kernel-pkg --package kernel%{?-v:-%{-v*}} --install %{KVERREL}%{?-v:.%{-v*}}
+                       /sbin/new-kernel-pkg --package %{kernel_name} --install %{kernel_release}
                end
 
                script postup
@@ -428,13 +466,45 @@ packages
                end
 
                package kernel-versatile-devel
-                       kernel KERNELDEVEL
+                       template KERNELDEVEL
 
                        kernel_name = kernel-versatile
                        kernel_release = %{fullver}.versatile
                end
        end
 
+       if "%{build_kernel_kirkwood}" == "1"
+               package kernel-kirkwood
+                       template KERNEL
+
+                       kernel_name = kernel-kirkwood
+                       kernel_release = %{fullver}.kirkwood
+               end
+
+               package kernel-kirkwood-devel
+                       template KERNELDEVEL
+
+                       kernel_name = kernel-kirkwood
+                       kernel_release = %{fullver}.kirkwood
+               end
+       end
+
+       if "%{build_kernel_omap}" == "1"
+               package kernel-omap
+                       template KERNEL
+
+                       kernel_name = kernel-omap
+                       kernel_release = %{fullver}.omap
+               end
+
+               package kernel-omap-devel
+                       template KERNELDEVEL
+
+                       kernel_name = kernel-omap
+                       kernel_release = %{fullver}.omap
+               end
+       end
+
        package kernel-headers
                summary = Header files of the kernel release %{fullver}.
                desciption = %{summary}
diff --git a/kernel/patches/arm-smsc-support-reading-mac-address-from-device-tree.patch b/kernel/patches/arm-smsc-support-reading-mac-address-from-device-tree.patch
new file mode 100644 (file)
index 0000000..a36c683
--- /dev/null
@@ -0,0 +1,92 @@
+From 0b608345e114681f66ca0a3cf9d9434728da62ce Mon Sep 17 00:00:00 2001
+From: Ken Cox <ken@coxcampers.net>
+Date: Thu, 23 Jun 2011 10:36:43 -0500
+Subject: [PATCH] Support reading mac address from device tree.
+
+If CONFIG_OF is enabled, we will try to read the mac address from the device tree.  This enables us the ability to have a "static" mac address on arm boards such as the pandaboard and beagleboard which generate random mac addresses.
+---
+ drivers/net/usb/smsc75xx.c |   17 +++++++++++++++++
+ drivers/net/usb/smsc95xx.c |   18 +++++++++++++++++-
+ 2 files changed, 34 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/net/usb/smsc75xx.c b/drivers/net/usb/smsc75xx.c
+index 753ee6e..ac0a200 100644
+--- a/drivers/net/usb/smsc75xx.c
++++ b/drivers/net/usb/smsc75xx.c
+@@ -29,6 +29,7 @@
+ #include <linux/crc32.h>
+ #include <linux/usb/usbnet.h>
+ #include <linux/slab.h>
++#include <linux/of_device.h>
+ #include "smsc75xx.h"
+ #define SMSC_CHIPNAME                 "smsc75xx"
+@@ -658,6 +659,22 @@ static int smsc75xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
+ static void smsc75xx_init_mac_address(struct usbnet *dev)
+ {
++      void *address;
++#ifdef CONFIG_OF
++      struct device_node *np;
++
++      /* try the device tree */
++      np = of_find_node_by_name(NULL, "smsc75xx");
++      if (np) {
++              address = of_get_property(np, "local-mac-address", NULL);
++              if (address) {
++                      memcpy(dev->net->dev_addr, address, ETH_ALEN);
++                      netif_dbg(dev, ifup, dev->net, "MAC address read from device tree\n");
++                      return;
++              }
++      }
++#endif
++
+       /* try reading mac address from EEPROM */
+       if (smsc75xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
+                       dev->net->dev_addr) == 0) {
+diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
+index bc86f4b..c83942d 100644
+--- a/drivers/net/usb/smsc95xx.c
++++ b/drivers/net/usb/smsc95xx.c
+@@ -29,6 +29,7 @@
+ #include <linux/crc32.h>
+ #include <linux/usb/usbnet.h>
+ #include <linux/slab.h>
++#include <linux/of_device.h>
+ #include "smsc95xx.h"
+ #define SMSC_CHIPNAME                 "smsc95xx"
+@@ -639,6 +640,22 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
+ static void smsc95xx_init_mac_address(struct usbnet *dev)
+ {
++      void *address;
++#ifdef CONFIG_OF
++      struct device_node *np;
++
++      /* try the device tree */
++      np = of_find_node_by_name(NULL, "smsc95xx");
++      if (np) {
++              address = of_get_property(np, "local-mac-address", NULL);
++              if (address) {
++                      memcpy(dev->net->dev_addr, address, ETH_ALEN);
++                      netif_dbg(dev, ifup, dev->net, "MAC address read from device tree\n");
++                      return;
++              }
++      }
++#endif
++
+       /* try reading mac address from EEPROM */
+       if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
+                       dev->net->dev_addr) == 0) {
+@@ -648,7 +665,6 @@ static void smsc95xx_init_mac_address(struct usbnet *dev)
+                       return;
+               }
+       }
+-
+       /* no eeprom, or eeprom values are invalid. generate random MAC */
+       random_ether_addr(dev->net->dev_addr);
+       netif_dbg(dev, ifup, dev->net, "MAC address set to random_ether_addr\n");
+-- 
+1.7.2.3
+
similarity index 78%
rename from kernel/patches/grsecurity-2.2.2-3.1.5-201112101853.patch
rename to kernel/patches/grsecurity-2.9.1-3.4.6-201207281946.patch
index 67dea054b37ff74d726909bf957a1144ae082d1f..357f472e5e140dee1b2bfe254ba925ecba0ffff2 100644 (file)
@@ -1,8 +1,12 @@
 diff --git a/Documentation/dontdiff b/Documentation/dontdiff
-index dfa6fc6..0095943 100644
+index b4a898f..781c7ad 100644
 --- a/Documentation/dontdiff
 +++ b/Documentation/dontdiff
-@@ -5,6 +5,7 @@
+@@ -2,9 +2,11 @@
+ *.aux
+ *.bin
+ *.bz2
++*.c.[012]*.*
  *.cis
  *.cpio
  *.csp
@@ -10,7 +14,7 @@ index dfa6fc6..0095943 100644
  *.dsp
  *.dvi
  *.elf
-@@ -14,6 +15,7 @@
+@@ -14,6 +16,7 @@
  *.gcov
  *.gen.S
  *.gif
@@ -18,7 +22,7 @@ index dfa6fc6..0095943 100644
  *.grep
  *.grp
  *.gz
-@@ -48,9 +50,11 @@
+@@ -48,14 +51,17 @@
  *.tab.h
  *.tex
  *.ver
@@ -30,7 +34,14 @@ index dfa6fc6..0095943 100644
  *_vga16.c
  *~
  \#*#
-@@ -70,6 +74,7 @@ Kerntypes
+ *.9
+-.*
++.[^g]*
++.gen*
+ .*.d
+ .mm
+ 53c700_d.h
+@@ -69,6 +75,7 @@ Image
  Module.markers
  Module.symvers
  PENDING
@@ -38,7 +49,15 @@ index dfa6fc6..0095943 100644
  SCCS
  System.map*
  TAGS
-@@ -93,19 +98,24 @@ bounds.h
+@@ -80,6 +87,7 @@ aic7*seq.h*
+ aicasm
+ aicdb.h*
+ altivec*.c
++ashldi3.S
+ asm-offsets.h
+ asm_offsets.h
+ autoconf.h*
+@@ -92,19 +100,24 @@ bounds.h
  bsetup
  btfixupprep
  build
@@ -63,7 +82,11 @@ index dfa6fc6..0095943 100644
  conmakehash
  consolemap_deftbl.c*
  cpustr.h
-@@ -119,6 +129,7 @@ dslm
+@@ -115,9 +128,11 @@ devlist.h*
+ dnotify_test
+ docproc
+ dslm
++dtc-lexer.lex.c
  elf2ecoff
  elfconfig.h*
  evergreen_reg_safe.h
@@ -71,7 +94,7 @@ index dfa6fc6..0095943 100644
  fixdep
  flask.h
  fore200e_mkfirm
-@@ -126,12 +137,15 @@ fore200e_pca_fw.c*
+@@ -125,12 +140,15 @@ fore200e_pca_fw.c*
  gconf
  gconf.glade.h
  gen-devlist
@@ -87,7 +110,7 @@ index dfa6fc6..0095943 100644
  hpet_example
  hugepage-mmap
  hugepage-shm
-@@ -146,7 +160,7 @@ int32.c
+@@ -145,7 +163,7 @@ int32.c
  int4.c
  int8.c
  kallsyms
@@ -96,15 +119,16 @@ index dfa6fc6..0095943 100644
  keywords.c
  ksym.c*
  ksym.h*
-@@ -154,7 +168,6 @@ kxgettext
+@@ -153,7 +171,7 @@ kxgettext
  lkc_defs.h
  lex.c
  lex.*.c
 -linux
++lib1funcs.S
  logo_*.c
  logo_*_clut224.c
  logo_*_mono.c
-@@ -166,14 +179,15 @@ machtypes.h
+@@ -164,14 +182,15 @@ machtypes.h
  map
  map_hugetlb
  maui_boot.h
@@ -121,7 +145,23 @@ index dfa6fc6..0095943 100644
  mkprep
  mkregtable
  mktables
-@@ -209,6 +223,7 @@ r300_reg_safe.h
+@@ -188,6 +207,7 @@ oui.c*
+ page-types
+ parse.c
+ parse.h
++parse-events*
+ patches*
+ pca200e.bin
+ pca200e_ecd.bin2
+@@ -197,6 +217,7 @@ perf-archive
+ piggyback
+ piggy.gzip
+ piggy.S
++pmu-*
+ pnmtologo
+ ppc_defs.h*
+ pss_boot.h
+@@ -207,6 +228,7 @@ r300_reg_safe.h
  r420_reg_safe.h
  r600_reg_safe.h
  recordmcount
@@ -129,15 +169,17 @@ index dfa6fc6..0095943 100644
  relocs
  rlim_names.h
  rn50_reg_safe.h
-@@ -219,6 +234,7 @@ setup
+@@ -216,7 +238,9 @@ series
+ setup
  setup.bin
  setup.elf
++size_overflow_hash.h
  sImage
 +slabinfo
  sm_tbl*
  split-include
  syscalltab.h
-@@ -229,6 +245,7 @@ tftpboot.img
+@@ -227,6 +251,7 @@ tftpboot.img
  timeconst.h
  times.h*
  trix_boot.h
@@ -145,7 +187,15 @@ index dfa6fc6..0095943 100644
  utsrelease.h*
  vdso-syms.lds
  vdso.lds
-@@ -246,7 +263,9 @@ vmlinux
+@@ -238,13 +263,17 @@ vdso32.lds
+ vdso32.so.dbg
+ vdso64.lds
+ vdso64.so.dbg
++vdsox32.lds
++vdsox32-syms.lds
+ version.h*
+ vmImage
+ vmlinux
  vmlinux-*
  vmlinux.aout
  vmlinux.bin.all
@@ -155,7 +205,7 @@ index dfa6fc6..0095943 100644
  vmlinuz
  voffset.h
  vsyscall.lds
-@@ -254,9 +273,11 @@ vsyscall_32.lds
+@@ -252,9 +281,11 @@ vsyscall_32.lds
  wanxlfw.inc
  uImage
  unifdef
@@ -168,10 +218,10 @@ index dfa6fc6..0095943 100644
 +zconf.lex.c
  zoffset.h
 diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
-index d6e6724..a024ce8 100644
+index c1601e5..08557ce 100644
 --- a/Documentation/kernel-parameters.txt
 +++ b/Documentation/kernel-parameters.txt
-@@ -1898,6 +1898,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -2021,6 +2021,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        the specified number of seconds.  This is to be used if
                        your oopses keep scrolling off the screen.
  
@@ -186,7 +236,7 @@ index d6e6724..a024ce8 100644
  
        pcd.            [PARIDE]
 diff --git a/Makefile b/Makefile
-index 94ab2ad..1e4a6e8 100644
+index 5d0edcb..f69ee4c 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -245,8 +245,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -212,36 +262,54 @@ index 94ab2ad..1e4a6e8 100644
        $(Q)$(MAKE) $(build)=scripts/basic
        $(Q)rm -f .tmp_quiet_recordmcount
  
-@@ -564,6 +565,42 @@ else
+@@ -564,6 +565,60 @@ else
  KBUILD_CFLAGS += -O2
  endif
  
 +ifndef DISABLE_PAX_PLUGINS
-+ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(HOSTCC)" "$(CC)"), y)
++PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(HOSTCC)" "$(HOSTCXX)" "$(CC)")
++ifneq ($(PLUGINCC),)
 +ifndef DISABLE_PAX_CONSTIFY_PLUGIN
-+CONSTIFY_PLUGIN := -fplugin=$(objtree)/tools/gcc/constify_plugin.so -DCONSTIFY_PLUGIN
++ifndef CONFIG_UML
++CONSTIFY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/constify_plugin.so -DCONSTIFY_PLUGIN
++endif
 +endif
 +ifdef CONFIG_PAX_MEMORY_STACKLEAK
-+STACKLEAK_PLUGIN := -fplugin=$(objtree)/tools/gcc/stackleak_plugin.so -DSTACKLEAK_PLUGIN
-+STACKLEAK_PLUGIN += -fplugin-arg-stackleak_plugin-track-lowest-sp=100
++STACKLEAK_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/stackleak_plugin.so -DSTACKLEAK_PLUGIN
++STACKLEAK_PLUGIN_CFLAGS += -fplugin-arg-stackleak_plugin-track-lowest-sp=100
 +endif
 +ifdef CONFIG_KALLOCSTAT_PLUGIN
-+KALLOCSTAT_PLUGIN := -fplugin=$(objtree)/tools/gcc/kallocstat_plugin.so
++KALLOCSTAT_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/kallocstat_plugin.so
 +endif
 +ifdef CONFIG_PAX_KERNEXEC_PLUGIN
-+KERNEXEC_PLUGIN := -fplugin=$(objtree)/tools/gcc/kernexec_plugin.so
-+KERNEXEC_PLUGIN += -fplugin-arg-kernexec_plugin-method=$(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD)
++KERNEXEC_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/kernexec_plugin.so
++KERNEXEC_PLUGIN_CFLAGS += -fplugin-arg-kernexec_plugin-method=$(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD) -DKERNEXEC_PLUGIN
++KERNEXEC_PLUGIN_AFLAGS := -DKERNEXEC_PLUGIN
 +endif
 +ifdef CONFIG_CHECKER_PLUGIN
 +ifeq ($(call cc-ifversion, -ge, 0406, y), y)
-+CHECKER_PLUGIN := -fplugin=$(objtree)/tools/gcc/checker_plugin.so -DCHECKER_PLUGIN
++CHECKER_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/checker_plugin.so -DCHECKER_PLUGIN
++endif
 +endif
++COLORIZE_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/colorize_plugin.so
++ifdef CONFIG_PAX_SIZE_OVERFLOW
++SIZE_OVERFLOW_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/size_overflow_plugin.so -DSIZE_OVERFLOW_PLUGIN
 +endif
-+GCC_PLUGINS := $(CONSTIFY_PLUGIN) $(STACKLEAK_PLUGIN) $(KALLOCSTAT_PLUGIN) $(KERNEXEC_PLUGIN) $(CHECKER_PLUGIN)
-+export CONSTIFY_PLUGIN STACKLEAK_PLUGIN KERNEXEC_PLUGIN CHECKER_PLUGIN
++ifdef CONFIG_PAX_LATENT_ENTROPY
++LATENT_ENTROPY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/latent_entropy_plugin.so -DLATENT_ENTROPY_PLUGIN
++endif
++GCC_PLUGINS_CFLAGS := $(CONSTIFY_PLUGIN_CFLAGS) $(STACKLEAK_PLUGIN_CFLAGS) $(KALLOCSTAT_PLUGIN_CFLAGS)
++GCC_PLUGINS_CFLAGS += $(KERNEXEC_PLUGIN_CFLAGS) $(CHECKER_PLUGIN_CFLAGS) $(COLORIZE_PLUGIN_CFLAGS)
++GCC_PLUGINS_CFLAGS += $(SIZE_OVERFLOW_PLUGIN_CFLAGS) $(LATENT_ENTROPY_PLUGIN_CFLAGS)
++GCC_PLUGINS_AFLAGS := $(KERNEXEC_PLUGIN_AFLAGS)
++export PLUGINCC CONSTIFY_PLUGIN
++ifeq ($(KBUILD_EXTMOD),)
 +gcc-plugins:
 +      $(Q)$(MAKE) $(build)=tools/gcc
 +else
++gcc-plugins: ;
++endif
++else
 +gcc-plugins:
 +ifeq ($(call cc-ifversion, -ge, 0405, y), y)
 +      $(error Your gcc installation does not support plugins.  If the necessary headers for plugin support are missing, they should be installed.  On Debian, apt-get install gcc-<ver>-plugin-dev.  If you choose to ignore this error and lessen the improvements provided by this patch, re-run make with the DISABLE_PAX_PLUGINS=y argument.))
@@ -255,7 +323,7 @@ index 94ab2ad..1e4a6e8 100644
  include $(srctree)/arch/$(SRCARCH)/Makefile
  
  ifneq ($(CONFIG_FRAME_WARN),0)
-@@ -708,7 +745,7 @@ export mod_strip_cmd
+@@ -708,7 +763,7 @@ export mod_strip_cmd
  
  
  ifeq ($(KBUILD_EXTMOD),)
@@ -264,15 +332,16 @@ index 94ab2ad..1e4a6e8 100644
  
  vmlinux-dirs  := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
                     $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
-@@ -932,6 +969,7 @@ vmlinux.o: $(modpost-init) $(vmlinux-main) FORCE
+@@ -932,6 +987,8 @@ vmlinux.o: $(modpost-init) $(vmlinux-main) FORCE
  
  # The actual objects are generated when descending, 
  # make sure no implicit rule kicks in
-+$(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): KBUILD_CFLAGS += $(GCC_PLUGINS)
++$(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
++$(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
  $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ;
  
  # Handle descending into subdirectories listed in $(vmlinux-dirs)
-@@ -941,7 +979,7 @@ $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ;
+@@ -941,7 +998,7 @@ $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ;
  # Error messages still appears in the original language
  
  PHONY += $(vmlinux-dirs)
@@ -281,23 +350,24 @@ index 94ab2ad..1e4a6e8 100644
        $(Q)$(MAKE) $(build)=$@
  
  # Store (new) KERNELRELASE string in include/config/kernel.release
-@@ -986,6 +1024,7 @@ prepare0: archprepare FORCE
-       $(Q)$(MAKE) $(build)=. missing-syscalls
+@@ -985,6 +1042,7 @@ prepare0: archprepare FORCE
+       $(Q)$(MAKE) $(build)=.
  
  # All the preparing..
-+prepare: KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS),$(KBUILD_CFLAGS))
++prepare: KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
  prepare: prepare0
  
  # Generate some files
-@@ -1087,6 +1126,7 @@ all: modules
+@@ -1092,6 +1150,8 @@ all: modules
  #     using awk while concatenating to the final file.
  
  PHONY += modules
-+modules: KBUILD_CFLAGS += $(GCC_PLUGINS)
++modules: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
++modules: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
        $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
        @$(kecho) '  Building modules, stage 2.';
-@@ -1102,7 +1142,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
+@@ -1107,7 +1167,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
  
  # Target to prepare building external modules
  PHONY += modules_prepare
@@ -306,35 +376,46 @@ index 94ab2ad..1e4a6e8 100644
  
  # Target to install modules
  PHONY += modules_install
-@@ -1198,7 +1238,7 @@ distclean: mrproper
-       @find $(srctree) $(RCS_FIND_IGNORE) \
+@@ -1166,7 +1226,7 @@ CLEAN_FILES +=   vmlinux System.map \
+ MRPROPER_DIRS  += include/config usr/include include/generated          \
+                   arch/*/include/generated
+ MRPROPER_FILES += .config .config.old .version .old_version             \
+-                  include/linux/version.h                               \
++                  include/linux/version.h tools/gcc/size_overflow_hash.h\
+                 Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS
+ # clean - Delete most, but leave enough to build external modules
+@@ -1204,6 +1264,7 @@ distclean: mrproper
                \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
                -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
--              -o -name '.*.rej' -o -size 0 \
-+              -o -name '.*.rej' -o -name '*.so' -o -size 0 \
+               -o -name '.*.rej' \
++              -o -name '.*.rej' -o -name '*.so' \
                -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
                -type f -print | xargs rm -f
  
-@@ -1360,6 +1400,7 @@ PHONY += $(module-dirs) modules
+@@ -1364,6 +1425,8 @@ PHONY += $(module-dirs) modules
  $(module-dirs): crmodverdir $(objtree)/Module.symvers
        $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
  
-+modules: KBUILD_CFLAGS += $(GCC_PLUGINS)
++modules: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
++modules: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
  modules: $(module-dirs)
        @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1486,17 +1527,19 @@ else
+@@ -1490,17 +1553,21 @@ else
          target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
  endif
  
 -%.s: %.c prepare scripts FORCE
-+%.s: KBUILD_CFLAGS += $(GCC_PLUGINS)
++%.s: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
++%.s: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
 +%.s: %.c gcc-plugins prepare scripts FORCE
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
  %.i: %.c prepare scripts FORCE
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
 -%.o: %.c prepare scripts FORCE
-+%.o: KBUILD_CFLAGS += $(GCC_PLUGINS)
++%.o: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
++%.o: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
 +%.o: %.c gcc-plugins prepare scripts FORCE
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
  %.lst: %.c prepare scripts FORCE
@@ -347,27 +428,76 @@ index 94ab2ad..1e4a6e8 100644
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
  %.symtypes: %.c prepare scripts FORCE
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-@@ -1506,11 +1549,13 @@ endif
+@@ -1510,11 +1577,15 @@ endif
        $(cmd_crmodverdir)
        $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
        $(build)=$(build-dir)
 -%/: prepare scripts FORCE
-+%/: KBUILD_CFLAGS += $(GCC_PLUGINS)
++%/: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
++%/: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
 +%/: gcc-plugins prepare scripts FORCE
        $(cmd_crmodverdir)
        $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
        $(build)=$(build-dir)
 -%.ko: prepare scripts FORCE
-+%.ko: KBUILD_CFLAGS += $(GCC_PLUGINS)
++%.ko: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
++%.ko: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
 +%.ko: gcc-plugins prepare scripts FORCE
        $(cmd_crmodverdir)
        $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1)   \
        $(build)=$(build-dir) $(@:.ko=.o)
+diff --git a/arch/alpha/include/asm/atomic.h b/arch/alpha/include/asm/atomic.h
+index 3bb7ffe..347a54c 100644
+--- a/arch/alpha/include/asm/atomic.h
++++ b/arch/alpha/include/asm/atomic.h
+@@ -250,6 +250,16 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
+ #define atomic_dec(v) atomic_sub(1,(v))
+ #define atomic64_dec(v) atomic64_sub(1,(v))
++#define atomic64_read_unchecked(v)            atomic64_read(v)
++#define atomic64_set_unchecked(v, i)          atomic64_set((v), (i))
++#define atomic64_add_unchecked(a, v)          atomic64_add((a), (v))
++#define atomic64_add_return_unchecked(a, v)   atomic64_add_return((a), (v))
++#define atomic64_sub_unchecked(a, v)          atomic64_sub((a), (v))
++#define atomic64_inc_unchecked(v)             atomic64_inc(v)
++#define atomic64_inc_return_unchecked(v)      atomic64_inc_return(v)
++#define atomic64_dec_unchecked(v)             atomic64_dec(v)
++#define atomic64_cmpxchg_unchecked(v, o, n)   atomic64_cmpxchg((v), (o), (n))
++
+ #define smp_mb__before_atomic_dec()   smp_mb()
+ #define smp_mb__after_atomic_dec()    smp_mb()
+ #define smp_mb__before_atomic_inc()   smp_mb()
+diff --git a/arch/alpha/include/asm/cache.h b/arch/alpha/include/asm/cache.h
+index ad368a9..fbe0f25 100644
+--- a/arch/alpha/include/asm/cache.h
++++ b/arch/alpha/include/asm/cache.h
+@@ -4,19 +4,19 @@
+ #ifndef __ARCH_ALPHA_CACHE_H
+ #define __ARCH_ALPHA_CACHE_H
++#include <linux/const.h>
+ /* Bytes per L1 (data) cache line. */
+ #if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_EV6)
+-# define L1_CACHE_BYTES     64
+ # define L1_CACHE_SHIFT     6
+ #else
+ /* Both EV4 and EV5 are write-through, read-allocate,
+    direct-mapped, physical.
+ */
+-# define L1_CACHE_BYTES     32
+ # define L1_CACHE_SHIFT     5
+ #endif
++#define L1_CACHE_BYTES     (_AC(1,UL) << L1_CACHE_SHIFT)
+ #define SMP_CACHE_BYTES    L1_CACHE_BYTES
+ #endif
 diff --git a/arch/alpha/include/asm/elf.h b/arch/alpha/include/asm/elf.h
-index da5449e..7418343 100644
+index 968d999..d36b2df 100644
 --- a/arch/alpha/include/asm/elf.h
 +++ b/arch/alpha/include/asm/elf.h
-@@ -90,6 +90,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+@@ -91,6 +91,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
  
  #define ELF_ET_DYN_BASE               (TASK_UNMAPPED_BASE + 0x1000000)
  
@@ -381,11 +511,28 @@ index da5449e..7418343 100644
  /* $0 is set by ld.so to a pointer to a function which might be 
     registered using atexit.  This provides a mean for the dynamic
     linker to call DT_FINI functions for shared libraries that have
+diff --git a/arch/alpha/include/asm/pgalloc.h b/arch/alpha/include/asm/pgalloc.h
+index bc2a0da..8ad11ee 100644
+--- a/arch/alpha/include/asm/pgalloc.h
++++ b/arch/alpha/include/asm/pgalloc.h
+@@ -29,6 +29,12 @@ pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
+       pgd_set(pgd, pmd);
+ }
++static inline void
++pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
++{
++      pgd_populate(mm, pgd, pmd);
++}
++
+ extern pgd_t *pgd_alloc(struct mm_struct *mm);
+ static inline void
 diff --git a/arch/alpha/include/asm/pgtable.h b/arch/alpha/include/asm/pgtable.h
-index de98a73..bd4f1f8 100644
+index 81a4342..348b927 100644
 --- a/arch/alpha/include/asm/pgtable.h
 +++ b/arch/alpha/include/asm/pgtable.h
-@@ -101,6 +101,17 @@ struct vm_area_struct;
+@@ -102,6 +102,17 @@ struct vm_area_struct;
  #define PAGE_SHARED   __pgprot(_PAGE_VALID | __ACCESS_BITS)
  #define PAGE_COPY     __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
  #define PAGE_READONLY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
@@ -417,10 +564,10 @@ index 2fd00b7..cfd5069 100644
  
        for (i = 0; i < n; i++) {
 diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
-index 01e8715..be0e80f 100644
+index 49ee319..9ee7d14 100644
 --- a/arch/alpha/kernel/osf_sys.c
 +++ b/arch/alpha/kernel/osf_sys.c
-@@ -1147,7 +1147,7 @@ arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
+@@ -1146,7 +1146,7 @@ arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
                /* At this point:  (!vma || addr < vma->vm_end). */
                if (limit - len < addr)
                        return -ENOMEM;
@@ -429,7 +576,7 @@ index 01e8715..be0e80f 100644
                        return addr;
                addr = vma->vm_end;
                vma = vma->vm_next;
-@@ -1183,6 +1183,10 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -1182,6 +1182,10 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
           merely specific addresses, but regions of memory -- perhaps
           this feature should be incorporated into all ports?  */
  
@@ -440,7 +587,7 @@ index 01e8715..be0e80f 100644
        if (addr) {
                addr = arch_get_unmapped_area_1 (PAGE_ALIGN(addr), len, limit);
                if (addr != (unsigned long) -ENOMEM)
-@@ -1190,8 +1194,8 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -1189,8 +1193,8 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
        }
  
        /* Next, try allocating at TASK_UNMAPPED_BASE.  */
@@ -452,10 +599,10 @@ index 01e8715..be0e80f 100644
                return addr;
  
 diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
-index fadd5f8..904e73a 100644
+index 5eecab1..609abc0 100644
 --- a/arch/alpha/mm/fault.c
 +++ b/arch/alpha/mm/fault.c
-@@ -54,6 +54,124 @@ __load_new_mm_context(struct mm_struct *next_mm)
+@@ -53,6 +53,124 @@ __load_new_mm_context(struct mm_struct *next_mm)
        __reload_thread(pcb);
  }
  
@@ -580,7 +727,7 @@ index fadd5f8..904e73a 100644
  
  /*
   * This routine handles page faults.  It determines the address,
-@@ -131,8 +249,29 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
+@@ -130,8 +248,29 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
   good_area:
        si_code = SEGV_ACCERR;
        if (cause < 0) {
@@ -612,10 +759,298 @@ index fadd5f8..904e73a 100644
                /* Allow reads even for write-only mappings */
                if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
 diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
-index 86976d0..8a57797 100644
+index 68374ba..cff7196 100644
 --- a/arch/arm/include/asm/atomic.h
 +++ b/arch/arm/include/asm/atomic.h
-@@ -239,6 +239,14 @@ typedef struct {
+@@ -17,17 +17,35 @@
+ #include <asm/barrier.h>
+ #include <asm/cmpxchg.h>
++#ifdef CONFIG_GENERIC_ATOMIC64
++#include <asm-generic/atomic64.h>
++#endif
++
+ #define ATOMIC_INIT(i)        { (i) }
+ #ifdef __KERNEL__
++#define _ASM_EXTABLE(from, to)                \
++"     .pushsection __ex_table,\"a\"\n"\
++"     .align  3\n"                    \
++"     .long   " #from ", " #to"\n"    \
++"     .popsection"
++
+ /*
+  * On ARM, ordinary assignment (str instruction) doesn't clear the local
+  * strex/ldrex monitor on some implementations. The reason we can use it for
+  * atomic_set() is the clrex or dummy strex done on every exception return.
+  */
+ #define atomic_read(v)        (*(volatile int *)&(v)->counter)
++static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
++{
++      return v->counter;
++}
+ #define atomic_set(v,i)       (((v)->counter) = (i))
++static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
++{
++      v->counter = i;
++}
+ #if __LINUX_ARM_ARCH__ >= 6
+@@ -42,6 +60,35 @@ static inline void atomic_add(int i, atomic_t *v)
+       int result;
+       __asm__ __volatile__("@ atomic_add\n"
++"1:   ldrex   %1, [%3]\n"
++"     adds    %0, %1, %4\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"     bvc     3f\n"
++"2:   bkpt    0xf103\n"
++"3:\n"
++#endif
++
++"     strex   %1, %0, [%3]\n"
++"     teq     %1, #0\n"
++"     bne     1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++      _ASM_EXTABLE(2b, 4b)
++#endif
++
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
++      : "r" (&v->counter), "Ir" (i)
++      : "cc");
++}
++
++static inline void atomic_add_unchecked(int i, atomic_unchecked_t *v)
++{
++      unsigned long tmp;
++      int result;
++
++      __asm__ __volatile__("@ atomic_add_unchecked\n"
+ "1:   ldrex   %0, [%3]\n"
+ "     add     %0, %0, %4\n"
+ "     strex   %1, %0, [%3]\n"
+@@ -60,6 +107,42 @@ static inline int atomic_add_return(int i, atomic_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic_add_return\n"
++"1:   ldrex   %1, [%3]\n"
++"     adds    %0, %1, %4\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"     bvc     3f\n"
++"     mov     %0, %1\n"
++"2:   bkpt    0xf103\n"
++"3:\n"
++#endif
++
++"     strex   %1, %0, [%3]\n"
++"     teq     %1, #0\n"
++"     bne     1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++      _ASM_EXTABLE(2b, 4b)
++#endif
++
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
++      : "r" (&v->counter), "Ir" (i)
++      : "cc");
++
++      smp_mb();
++
++      return result;
++}
++
++static inline int atomic_add_return_unchecked(int i, atomic_unchecked_t *v)
++{
++      unsigned long tmp;
++      int result;
++
++      smp_mb();
++
++      __asm__ __volatile__("@ atomic_add_return_unchecked\n"
+ "1:   ldrex   %0, [%3]\n"
+ "     add     %0, %0, %4\n"
+ "     strex   %1, %0, [%3]\n"
+@@ -80,6 +163,35 @@ static inline void atomic_sub(int i, atomic_t *v)
+       int result;
+       __asm__ __volatile__("@ atomic_sub\n"
++"1:   ldrex   %1, [%3]\n"
++"     subs    %0, %1, %4\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"     bvc     3f\n"
++"2:   bkpt    0xf103\n"
++"3:\n"
++#endif
++
++"     strex   %1, %0, [%3]\n"
++"     teq     %1, #0\n"
++"     bne     1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++      _ASM_EXTABLE(2b, 4b)
++#endif
++
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
++      : "r" (&v->counter), "Ir" (i)
++      : "cc");
++}
++
++static inline void atomic_sub_unchecked(int i, atomic_unchecked_t *v)
++{
++      unsigned long tmp;
++      int result;
++
++      __asm__ __volatile__("@ atomic_sub_unchecked\n"
+ "1:   ldrex   %0, [%3]\n"
+ "     sub     %0, %0, %4\n"
+ "     strex   %1, %0, [%3]\n"
+@@ -98,11 +210,25 @@ static inline int atomic_sub_return(int i, atomic_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic_sub_return\n"
+-"1:   ldrex   %0, [%3]\n"
+-"     sub     %0, %0, %4\n"
++"1:   ldrex   %1, [%3]\n"
++"     sub     %0, %1, %4\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"     bvc     3f\n"
++"     mov     %0, %1\n"
++"2:   bkpt    0xf103\n"
++"3:\n"
++#endif
++
+ "     strex   %1, %0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++      _ASM_EXTABLE(2b, 4b)
++#endif
++
+       : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "Ir" (i)
+       : "cc");
+@@ -134,6 +260,28 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
+       return oldval;
+ }
++static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *ptr, int old, int new)
++{
++      unsigned long oldval, res;
++
++      smp_mb();
++
++      do {
++              __asm__ __volatile__("@ atomic_cmpxchg_unchecked\n"
++              "ldrex  %1, [%3]\n"
++              "mov    %0, #0\n"
++              "teq    %1, %4\n"
++              "strexeq %0, %5, [%3]\n"
++                  : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
++                  : "r" (&ptr->counter), "Ir" (old), "r" (new)
++                  : "cc");
++      } while (res);
++
++      smp_mb();
++
++      return oldval;
++}
++
+ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
+ {
+       unsigned long tmp, tmp2;
+@@ -167,7 +315,17 @@ static inline int atomic_add_return(int i, atomic_t *v)
+       return val;
+ }
++
++static inline int atomic_add_return_unchecked(int i, atomic_unchecked_t *v)
++{
++      return atomic_add_return(i, v);
++}
++
+ #define atomic_add(i, v)      (void) atomic_add_return(i, v)
++static inline void atomic_add_unchecked(int i, atomic_unchecked_t *v)
++{
++      (void) atomic_add_return(i, v);
++}
+ static inline int atomic_sub_return(int i, atomic_t *v)
+ {
+@@ -182,6 +340,10 @@ static inline int atomic_sub_return(int i, atomic_t *v)
+       return val;
+ }
+ #define atomic_sub(i, v)      (void) atomic_sub_return(i, v)
++static inline void atomic_sub_unchecked(int i, atomic_unchecked_t *v)
++{
++      (void) atomic_sub_return(i, v);
++}
+ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
+ {
+@@ -197,6 +359,11 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
+       return ret;
+ }
++static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
++{
++      return atomic_cmpxchg(v, old, new);
++}
++
+ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
+ {
+       unsigned long flags;
+@@ -209,6 +376,10 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
+ #endif /* __LINUX_ARM_ARCH__ */
+ #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
++static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
++{
++      return xchg(&v->counter, new);
++}
+ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
+ {
+@@ -221,11 +392,27 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
+ }
+ #define atomic_inc(v)         atomic_add(1, v)
++static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
++{
++      atomic_add_unchecked(1, v);
++}
+ #define atomic_dec(v)         atomic_sub(1, v)
++static inline void atomic_dec_unchecked(atomic_unchecked_t *v)
++{
++      atomic_sub_unchecked(1, v);
++}
+ #define atomic_inc_and_test(v)        (atomic_add_return(1, v) == 0)
++static inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
++{
++      return atomic_add_return_unchecked(1, v) == 0;
++}
+ #define atomic_dec_and_test(v)        (atomic_sub_return(1, v) == 0)
+ #define atomic_inc_return(v)    (atomic_add_return(1, v))
++static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
++{
++      return atomic_add_return_unchecked(1, v);
++}
+ #define atomic_dec_return(v)    (atomic_sub_return(1, v))
+ #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
+@@ -241,6 +428,14 @@ typedef struct {
        u64 __aligned(8) counter;
  } atomic64_t;
  
@@ -630,8 +1065,370 @@ index 86976d0..8a57797 100644
  #define ATOMIC64_INIT(i) { (i) }
  
  static inline u64 atomic64_read(atomic64_t *v)
+@@ -256,6 +451,19 @@ static inline u64 atomic64_read(atomic64_t *v)
+       return result;
+ }
++static inline u64 atomic64_read_unchecked(atomic64_unchecked_t *v)
++{
++      u64 result;
++
++      __asm__ __volatile__("@ atomic64_read_unchecked\n"
++"     ldrexd  %0, %H0, [%1]"
++      : "=&r" (result)
++      : "r" (&v->counter), "Qo" (v->counter)
++      );
++
++      return result;
++}
++
+ static inline void atomic64_set(atomic64_t *v, u64 i)
+ {
+       u64 tmp;
+@@ -270,6 +478,20 @@ static inline void atomic64_set(atomic64_t *v, u64 i)
+       : "cc");
+ }
++static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, u64 i)
++{
++      u64 tmp;
++
++      __asm__ __volatile__("@ atomic64_set_unchecked\n"
++"1:   ldrexd  %0, %H0, [%2]\n"
++"     strexd  %0, %3, %H3, [%2]\n"
++"     teq     %0, #0\n"
++"     bne     1b"
++      : "=&r" (tmp), "=Qo" (v->counter)
++      : "r" (&v->counter), "r" (i)
++      : "cc");
++}
++
+ static inline void atomic64_add(u64 i, atomic64_t *v)
+ {
+       u64 result;
+@@ -278,6 +500,36 @@ static inline void atomic64_add(u64 i, atomic64_t *v)
+       __asm__ __volatile__("@ atomic64_add\n"
+ "1:   ldrexd  %0, %H0, [%3]\n"
+ "     adds    %0, %0, %4\n"
++"     adcs    %H0, %H0, %H4\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"     bvc     3f\n"
++"2:   bkpt    0xf103\n"
++"3:\n"
++#endif
++
++"     strexd  %1, %0, %H0, [%3]\n"
++"     teq     %1, #0\n"
++"     bne     1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++      _ASM_EXTABLE(2b, 4b)
++#endif
++
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
++      : "r" (&v->counter), "r" (i)
++      : "cc");
++}
++
++static inline void atomic64_add_unchecked(u64 i, atomic64_unchecked_t *v)
++{
++      u64 result;
++      unsigned long tmp;
++
++      __asm__ __volatile__("@ atomic64_add_unchecked\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     adds    %0, %0, %4\n"
+ "     adc     %H0, %H0, %H4\n"
+ "     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+@@ -289,12 +541,49 @@ static inline void atomic64_add(u64 i, atomic64_t *v)
+ static inline u64 atomic64_add_return(u64 i, atomic64_t *v)
+ {
+-      u64 result;
+-      unsigned long tmp;
++      u64 result, tmp;
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_add_return\n"
++"1:   ldrexd  %1, %H1, [%3]\n"
++"     adds    %0, %1, %4\n"
++"     adcs    %H0, %H1, %H4\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"     bvc     3f\n"
++"     mov     %0, %1\n"
++"     mov     %H0, %H1\n"
++"2:   bkpt    0xf103\n"
++"3:\n"
++#endif
++
++"     strexd  %1, %0, %H0, [%3]\n"
++"     teq     %1, #0\n"
++"     bne     1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++      _ASM_EXTABLE(2b, 4b)
++#endif
++
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
++      : "r" (&v->counter), "r" (i)
++      : "cc");
++
++      smp_mb();
++
++      return result;
++}
++
++static inline u64 atomic64_add_return_unchecked(u64 i, atomic64_unchecked_t *v)
++{
++      u64 result;
++      unsigned long tmp;
++
++      smp_mb();
++
++      __asm__ __volatile__("@ atomic64_add_return_unchecked\n"
+ "1:   ldrexd  %0, %H0, [%3]\n"
+ "     adds    %0, %0, %4\n"
+ "     adc     %H0, %H0, %H4\n"
+@@ -318,6 +607,36 @@ static inline void atomic64_sub(u64 i, atomic64_t *v)
+       __asm__ __volatile__("@ atomic64_sub\n"
+ "1:   ldrexd  %0, %H0, [%3]\n"
+ "     subs    %0, %0, %4\n"
++"     sbcs    %H0, %H0, %H4\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"     bvc     3f\n"
++"2:   bkpt    0xf103\n"
++"3:\n"
++#endif
++
++"     strexd  %1, %0, %H0, [%3]\n"
++"     teq     %1, #0\n"
++"     bne     1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++      _ASM_EXTABLE(2b, 4b)
++#endif
++
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
++      : "r" (&v->counter), "r" (i)
++      : "cc");
++}
++
++static inline void atomic64_sub_unchecked(u64 i, atomic64_unchecked_t *v)
++{
++      u64 result;
++      unsigned long tmp;
++
++      __asm__ __volatile__("@ atomic64_sub_unchecked\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     subs    %0, %0, %4\n"
+ "     sbc     %H0, %H0, %H4\n"
+ "     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+@@ -329,18 +648,32 @@ static inline void atomic64_sub(u64 i, atomic64_t *v)
+ static inline u64 atomic64_sub_return(u64 i, atomic64_t *v)
+ {
+-      u64 result;
+-      unsigned long tmp;
++      u64 result, tmp;
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_sub_return\n"
+-"1:   ldrexd  %0, %H0, [%3]\n"
+-"     subs    %0, %0, %4\n"
+-"     sbc     %H0, %H0, %H4\n"
++"1:   ldrexd  %1, %H1, [%3]\n"
++"     subs    %0, %1, %4\n"
++"     sbc     %H0, %H1, %H4\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"     bvc     3f\n"
++"     mov     %0, %1\n"
++"     mov     %H0, %H1\n"
++"2:   bkpt    0xf103\n"
++"3:\n"
++#endif
++
+ "     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"\n4:\n"
++      _ASM_EXTABLE(2b, 4b)
++#endif
++
+       : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (i)
+       : "cc");
+@@ -374,6 +707,30 @@ static inline u64 atomic64_cmpxchg(atomic64_t *ptr, u64 old, u64 new)
+       return oldval;
+ }
++static inline u64 atomic64_cmpxchg_unchecked(atomic64_unchecked_t *ptr, u64 old, u64 new)
++{
++      u64 oldval;
++      unsigned long res;
++
++      smp_mb();
++
++      do {
++              __asm__ __volatile__("@ atomic64_cmpxchg_unchecked\n"
++              "ldrexd         %1, %H1, [%3]\n"
++              "mov            %0, #0\n"
++              "teq            %1, %4\n"
++              "teqeq          %H1, %H4\n"
++              "strexdeq       %0, %5, %H5, [%3]"
++              : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
++              : "r" (&ptr->counter), "r" (old), "r" (new)
++              : "cc");
++      } while (res);
++
++      smp_mb();
++
++      return oldval;
++}
++
+ static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new)
+ {
+       u64 result;
+@@ -397,21 +754,34 @@ static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new)
+ static inline u64 atomic64_dec_if_positive(atomic64_t *v)
+ {
+-      u64 result;
+-      unsigned long tmp;
++      u64 result, tmp;
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_dec_if_positive\n"
+-"1:   ldrexd  %0, %H0, [%3]\n"
+-"     subs    %0, %0, #1\n"
+-"     sbc     %H0, %H0, #0\n"
++"1:   ldrexd  %1, %H1, [%3]\n"
++"     subs    %0, %1, #1\n"
++"     sbc     %H0, %H1, #0\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"     bvc     3f\n"
++"     mov     %0, %1\n"
++"     mov     %H0, %H1\n"
++"2:   bkpt    0xf103\n"
++"3:\n"
++#endif
++
+ "     teq     %H0, #0\n"
+-"     bmi     2f\n"
++"     bmi     4f\n"
+ "     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b\n"
+-"2:"
++"4:\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++      _ASM_EXTABLE(2b, 4b)
++#endif
++
+       : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter)
+       : "cc");
+@@ -434,13 +804,25 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
+ "     teq     %0, %5\n"
+ "     teqeq   %H0, %H5\n"
+ "     moveq   %1, #0\n"
+-"     beq     2f\n"
++"     beq     4f\n"
+ "     adds    %0, %0, %6\n"
+ "     adc     %H0, %H0, %H6\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++"     bvc     3f\n"
++"2:   bkpt    0xf103\n"
++"3:\n"
++#endif
++
+ "     strexd  %2, %0, %H0, [%4]\n"
+ "     teq     %2, #0\n"
+ "     bne     1b\n"
+-"2:"
++"4:\n"
++
++#ifdef CONFIG_PAX_REFCOUNT
++      _ASM_EXTABLE(2b, 4b)
++#endif
++
+       : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (u), "r" (a)
+       : "cc");
+@@ -453,10 +835,13 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
+ #define atomic64_add_negative(a, v)   (atomic64_add_return((a), (v)) < 0)
+ #define atomic64_inc(v)                       atomic64_add(1LL, (v))
++#define atomic64_inc_unchecked(v)     atomic64_add_unchecked(1LL, (v))
+ #define atomic64_inc_return(v)                atomic64_add_return(1LL, (v))
++#define atomic64_inc_return_unchecked(v)      atomic64_add_return_unchecked(1LL, (v))
+ #define atomic64_inc_and_test(v)      (atomic64_inc_return(v) == 0)
+ #define atomic64_sub_and_test(a, v)   (atomic64_sub_return((a), (v)) == 0)
+ #define atomic64_dec(v)                       atomic64_sub(1LL, (v))
++#define atomic64_dec_unchecked(v)     atomic64_sub_unchecked(1LL, (v))
+ #define atomic64_dec_return(v)                atomic64_sub_return(1LL, (v))
+ #define atomic64_dec_and_test(v)      (atomic64_dec_return((v)) == 0)
+ #define atomic64_inc_not_zero(v)      atomic64_add_unless((v), 1LL, 0LL)
+diff --git a/arch/arm/include/asm/cache.h b/arch/arm/include/asm/cache.h
+index 75fe66b..2255c86 100644
+--- a/arch/arm/include/asm/cache.h
++++ b/arch/arm/include/asm/cache.h
+@@ -4,8 +4,10 @@
+ #ifndef __ASMARM_CACHE_H
+ #define __ASMARM_CACHE_H
++#include <linux/const.h>
++
+ #define L1_CACHE_SHIFT                CONFIG_ARM_L1_CACHE_SHIFT
+-#define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)
+ /*
+  * Memory returned by kmalloc() may be used for DMA, so we must make
+diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
+index 1252a26..9dc17b5 100644
+--- a/arch/arm/include/asm/cacheflush.h
++++ b/arch/arm/include/asm/cacheflush.h
+@@ -108,7 +108,7 @@ struct cpu_cache_fns {
+       void (*dma_unmap_area)(const void *, size_t, int);
+       void (*dma_flush_range)(const void *, const void *);
+-};
++} __no_const;
+ /*
+  * Select the calling method
+diff --git a/arch/arm/include/asm/cmpxchg.h b/arch/arm/include/asm/cmpxchg.h
+index d41d7cb..9bea5e0 100644
+--- a/arch/arm/include/asm/cmpxchg.h
++++ b/arch/arm/include/asm/cmpxchg.h
+@@ -102,6 +102,8 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
+ #define xchg(ptr,x) \
+       ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
++#define xchg_unchecked(ptr,x) \
++      ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
+ #include <asm-generic/cmpxchg-local.h>
 diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
-index 0e9ce8d..6ef1e03 100644
+index 38050b1..9d90e8b 100644
 --- a/arch/arm/include/asm/elf.h
 +++ b/arch/arm/include/asm/elf.h
 @@ -116,7 +116,14 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
@@ -650,7 +1447,7 @@ index 0e9ce8d..6ef1e03 100644
  
  /* When the program starts, a1 contains a pointer to a function to be 
     registered with atexit, as per the SVR4 ABI.  A value of 0 means we 
-@@ -126,10 +133,6 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
+@@ -126,8 +133,4 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
  extern void elf_set_personality(const struct elf32_hdr *);
  #define SET_PERSONALITY(ex)   elf_set_personality(&(ex))
  
@@ -658,9 +1455,7 @@ index 0e9ce8d..6ef1e03 100644
 -extern unsigned long arch_randomize_brk(struct mm_struct *mm);
 -#define arch_randomize_brk arch_randomize_brk
 -
- extern int vectors_user_mapping(void);
- #define arch_setup_additional_pages(bprm, uses_interp) vectors_user_mapping()
- #define ARCH_HAS_SETUP_ADDITIONAL_PAGES
+ #endif
 diff --git a/arch/arm/include/asm/kmap_types.h b/arch/arm/include/asm/kmap_types.h
 index e51b1e8..32a3113 100644
 --- a/arch/arm/include/asm/kmap_types.h
@@ -673,8 +1468,88 @@ index e51b1e8..32a3113 100644
        KM_TYPE_NR
  };
  
+diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h
+index 53426c6..c7baff3 100644
+--- a/arch/arm/include/asm/outercache.h
++++ b/arch/arm/include/asm/outercache.h
+@@ -35,7 +35,7 @@ struct outer_cache_fns {
+ #endif
+       void (*set_debug)(unsigned long);
+       void (*resume)(void);
+-};
++} __no_const;
+ #ifdef CONFIG_OUTER_CACHE
+diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h
+index 5838361..da6e813 100644
+--- a/arch/arm/include/asm/page.h
++++ b/arch/arm/include/asm/page.h
+@@ -123,7 +123,7 @@ struct cpu_user_fns {
+       void (*cpu_clear_user_highpage)(struct page *page, unsigned long vaddr);
+       void (*cpu_copy_user_highpage)(struct page *to, struct page *from,
+                       unsigned long vaddr, struct vm_area_struct *vma);
+-};
++} __no_const;
+ #ifdef MULTI_USER
+ extern struct cpu_user_fns cpu_user;
+diff --git a/arch/arm/include/asm/pgalloc.h b/arch/arm/include/asm/pgalloc.h
+index 943504f..bf8d667 100644
+--- a/arch/arm/include/asm/pgalloc.h
++++ b/arch/arm/include/asm/pgalloc.h
+@@ -43,6 +43,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
+       set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE));
+ }
++static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
++{
++      pud_populate(mm, pud, pmd);
++}
++
+ #else /* !CONFIG_ARM_LPAE */
+ /*
+@@ -51,6 +56,7 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
+ #define pmd_alloc_one(mm,addr)                ({ BUG(); ((pmd_t *)2); })
+ #define pmd_free(mm, pmd)             do { } while (0)
+ #define pud_populate(mm,pmd,pte)      BUG()
++#define pud_populate_kernel(mm,pmd,pte)       BUG()
+ #endif        /* CONFIG_ARM_LPAE */
+diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
+index 0f04d84..2be5648 100644
+--- a/arch/arm/include/asm/thread_info.h
++++ b/arch/arm/include/asm/thread_info.h
+@@ -148,6 +148,12 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
+ #define TIF_NOTIFY_RESUME     2       /* callback before returning to user */
+ #define TIF_SYSCALL_TRACE     8
+ #define TIF_SYSCALL_AUDIT     9
++
++/* within 8 bits of TIF_SYSCALL_TRACE
++   to meet flexible second operand requirements
++*/
++#define TIF_GRSEC_SETXID      10
++
+ #define TIF_POLLING_NRFLAG    16
+ #define TIF_USING_IWMMXT      17
+ #define TIF_MEMDIE            18      /* is terminating due to OOM killer */
+@@ -163,9 +169,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
+ #define _TIF_USING_IWMMXT     (1 << TIF_USING_IWMMXT)
+ #define _TIF_RESTORE_SIGMASK  (1 << TIF_RESTORE_SIGMASK)
+ #define _TIF_SECCOMP          (1 << TIF_SECCOMP)
++#define _TIF_GRSEC_SETXID     (1 << TIF_GRSEC_SETXID)
+ /* Checks for any syscall work in entry-common.S */
+-#define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT)
++#define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
++                         _TIF_GRSEC_SETXID)
+ /*
+  * Change these and you break ASM code in entry-common.S
 diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
-index b293616..96310e5 100644
+index 71f6536..602f279 100644
 --- a/arch/arm/include/asm/uaccess.h
 +++ b/arch/arm/include/asm/uaccess.h
 @@ -22,6 +22,8 @@
@@ -733,10 +1608,10 @@ index b293616..96310e5 100644
                n = __copy_to_user(to, from, n);
        return n;
 diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
-index aeef960..2966009 100644
+index b57c75e..ed2d6b2 100644
 --- a/arch/arm/kernel/armksyms.c
 +++ b/arch/arm/kernel/armksyms.c
-@@ -98,8 +98,8 @@ EXPORT_SYMBOL(__strncpy_from_user);
+@@ -94,8 +94,8 @@ EXPORT_SYMBOL(__strncpy_from_user);
  #ifdef CONFIG_MMU
  EXPORT_SYMBOL(copy_page);
  
@@ -748,7 +1623,7 @@ index aeef960..2966009 100644
  
  EXPORT_SYMBOL(__get_user_1);
 diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
-index c9d11ea..5078081 100644
+index 2b7b017..c380fa2 100644
 --- a/arch/arm/kernel/process.c
 +++ b/arch/arm/kernel/process.c
 @@ -28,7 +28,6 @@
@@ -759,7 +1634,19 @@ index c9d11ea..5078081 100644
  #include <linux/hw_breakpoint.h>
  #include <linux/cpuidle.h>
  
-@@ -484,12 +483,6 @@ unsigned long get_wchan(struct task_struct *p)
+@@ -275,9 +274,10 @@ void machine_power_off(void)
+       machine_shutdown();
+       if (pm_power_off)
+               pm_power_off();
++      BUG();
+ }
+-void machine_restart(char *cmd)
++__noreturn void machine_restart(char *cmd)
+ {
+       machine_shutdown();
+@@ -519,12 +519,6 @@ unsigned long get_wchan(struct task_struct *p)
        return 0;
  }
  
@@ -772,20 +1659,65 @@ index c9d11ea..5078081 100644
  #ifdef CONFIG_MMU
  /*
   * The vectors page is always readable from user space for the
+diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
+index 9650c14..ae30cdd 100644
+--- a/arch/arm/kernel/ptrace.c
++++ b/arch/arm/kernel/ptrace.c
+@@ -906,10 +906,19 @@ long arch_ptrace(struct task_struct *child, long request,
+       return ret;
+ }
++#ifdef CONFIG_GRKERNSEC_SETXID
++extern void gr_delayed_cred_worker(void);
++#endif
++
+ asmlinkage int syscall_trace(int why, struct pt_regs *regs, int scno)
+ {
+       unsigned long ip;
++#ifdef CONFIG_GRKERNSEC_SETXID
++      if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
++              gr_delayed_cred_worker();
++#endif
++
+       if (why)
+               audit_syscall_exit(regs);
+       else
+diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
+index ebfac78..cbea9c0 100644
+--- a/arch/arm/kernel/setup.c
++++ b/arch/arm/kernel/setup.c
+@@ -111,13 +111,13 @@ struct processor processor __read_mostly;
+ struct cpu_tlb_fns cpu_tlb __read_mostly;
+ #endif
+ #ifdef MULTI_USER
+-struct cpu_user_fns cpu_user __read_mostly;
++struct cpu_user_fns cpu_user __read_only;
+ #endif
+ #ifdef MULTI_CACHE
+-struct cpu_cache_fns cpu_cache __read_mostly;
++struct cpu_cache_fns cpu_cache __read_only;
+ #endif
+ #ifdef CONFIG_OUTER_CACHE
+-struct outer_cache_fns outer_cache __read_mostly;
++struct outer_cache_fns outer_cache __read_only;
+ EXPORT_SYMBOL(outer_cache);
+ #endif
 diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
-index bc9f9da..c75d826 100644
+index 63d402f..db1d714 100644
 --- a/arch/arm/kernel/traps.c
 +++ b/arch/arm/kernel/traps.c
-@@ -257,6 +257,8 @@ static int __die(const char *str, int err, struct thread_info *thread, struct pt
+@@ -264,6 +264,8 @@ static int __die(const char *str, int err, struct thread_info *thread, struct pt
  
- static DEFINE_SPINLOCK(die_lock);
+ static DEFINE_RAW_SPINLOCK(die_lock);
  
 +extern void gr_handle_kernel_exploit(void);
 +
  /*
   * This function is protected against re-entrancy.
   */
-@@ -284,6 +286,9 @@ void die(const char *str, struct pt_regs *regs, int err)
+@@ -296,6 +298,9 @@ void die(const char *str, struct pt_regs *regs, int err)
                panic("Fatal exception in interrupt");
        if (panic_on_oops)
                panic("Fatal exception");
@@ -822,6 +1754,18 @@ index 66a477a..bee61d3 100644
  
        .pushsection .fixup,"ax"
        .align 0
+diff --git a/arch/arm/lib/copy_page.S b/arch/arm/lib/copy_page.S
+index 6ee2f67..d1cce76 100644
+--- a/arch/arm/lib/copy_page.S
++++ b/arch/arm/lib/copy_page.S
+@@ -10,6 +10,7 @@
+  *  ASM optimised string functions
+  */
+ #include <linux/linkage.h>
++#include <linux/const.h>
+ #include <asm/assembler.h>
+ #include <asm/asm-offsets.h>
+ #include <asm/cache.h>
 diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S
 index d066df6..df28194 100644
 --- a/arch/arm/lib/copy_to_user.S
@@ -850,7 +1794,7 @@ index d066df6..df28194 100644
  
        .pushsection .fixup,"ax"
 diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S
-index d0ece2a..5ae2f39 100644
+index 5c908b1..e712687 100644
 --- a/arch/arm/lib/uaccess.S
 +++ b/arch/arm/lib/uaccess.S
 @@ -20,7 +20,7 @@
@@ -862,7 +1806,7 @@ index d0ece2a..5ae2f39 100644
   * Purpose  : copy a block to user memory from kernel memory
   * Params   : to   - user memory
   *          : from - kernel memory
-@@ -40,7 +40,7 @@ USER(                T(strgtb) r3, [r0], #1)                 @ May fault
+@@ -40,7 +40,7 @@ USER(        TUSER(  strgtb) r3, [r0], #1)                   @ May fault
                sub     r2, r2, ip
                b       .Lc2u_dest_aligned
  
@@ -871,9 +1815,9 @@ index d0ece2a..5ae2f39 100644
                stmfd   sp!, {r2, r4 - r7, lr}
                cmp     r2, #4
                blt     .Lc2u_not_enough
-@@ -278,14 +278,14 @@ USER(            T(strgeb) r3, [r0], #1)                 @ May fault
+@@ -278,14 +278,14 @@ USER(    TUSER(  strgeb) r3, [r0], #1)                   @ May fault
                ldrgtb  r3, [r1], #0
- USER(         T(strgtb) r3, [r0], #1)                 @ May fault
+ USER( TUSER(  strgtb) r3, [r0], #1)                   @ May fault
                b       .Lc2u_finished
 -ENDPROC(__copy_to_user)
 +ENDPROC(___copy_to_user)
@@ -888,7 +1832,7 @@ index d0ece2a..5ae2f39 100644
   * Purpose  : copy a block from user memory to kernel memory
   * Params   : to   - kernel memory
   *          : from - user memory
-@@ -304,7 +304,7 @@ USER(              T(ldrgtb) r3, [r1], #1)                 @ May fault
+@@ -304,7 +304,7 @@ USER(      TUSER(  ldrgtb) r3, [r1], #1)                   @ May fault
                sub     r2, r2, ip
                b       .Lcfu_dest_aligned
  
@@ -897,8 +1841,8 @@ index d0ece2a..5ae2f39 100644
                stmfd   sp!, {r0, r2, r4 - r7, lr}
                cmp     r2, #4
                blt     .Lcfu_not_enough
-@@ -544,7 +544,7 @@ USER(              T(ldrgeb) r3, [r1], #1)                 @ May fault
- USER(         T(ldrgtb) r3, [r1], #1)                 @ May fault
+@@ -544,7 +544,7 @@ USER(      TUSER(  ldrgeb) r3, [r1], #1)                   @ May fault
+ USER( TUSER(  ldrgtb) r3, [r1], #1)                   @ May fault
                strgtb  r3, [r0], #1
                b       .Lcfu_finished
 -ENDPROC(__copy_from_user)
@@ -907,10 +1851,10 @@ index d0ece2a..5ae2f39 100644
                .pushsection .fixup,"ax"
                .align  0
 diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c
-index 8b9b136..70d5100 100644
+index 025f742..8432b08 100644
 --- a/arch/arm/lib/uaccess_with_memcpy.c
 +++ b/arch/arm/lib/uaccess_with_memcpy.c
-@@ -103,7 +103,7 @@ out:
+@@ -104,7 +104,7 @@ out:
  }
  
  unsigned long
@@ -919,24 +1863,24 @@ index 8b9b136..70d5100 100644
  {
        /*
         * This test is stubbed out of the main function above to keep
-diff --git a/arch/arm/mach-ux500/mbox-db5500.c b/arch/arm/mach-ux500/mbox-db5500.c
-index 2b2d51c..0127490 100644
---- a/arch/arm/mach-ux500/mbox-db5500.c
-+++ b/arch/arm/mach-ux500/mbox-db5500.c
-@@ -168,7 +168,7 @@ static ssize_t mbox_read_fifo(struct device *dev,
-       return sprintf(buf, "0x%X\n", mbox_value);
+diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
+index 518091c..eae9a76 100644
+--- a/arch/arm/mach-omap2/board-n8x0.c
++++ b/arch/arm/mach-omap2/board-n8x0.c
+@@ -596,7 +596,7 @@ static int n8x0_menelaus_late_init(struct device *dev)
  }
+ #endif
  
--static DEVICE_ATTR(fifo, S_IWUGO | S_IRUGO, mbox_read_fifo, mbox_write_fifo);
-+static DEVICE_ATTR(fifo, S_IWUSR | S_IRUGO, mbox_read_fifo, mbox_write_fifo);
+-static struct menelaus_platform_data n8x0_menelaus_platform_data __initdata = {
++static struct menelaus_platform_data n8x0_menelaus_platform_data __initconst = {
+       .late_init = n8x0_menelaus_late_init,
+ };
  
- static int mbox_show(struct seq_file *s, void *data)
- {
 diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
-index 3b5ea68..42fc9af 100644
+index 5bb4835..4760f68 100644
 --- a/arch/arm/mm/fault.c
 +++ b/arch/arm/mm/fault.c
-@@ -182,6 +182,13 @@ __do_user_fault(struct task_struct *tsk, unsigned long addr,
+@@ -174,6 +174,13 @@ __do_user_fault(struct task_struct *tsk, unsigned long addr,
        }
  #endif
  
@@ -950,7 +1894,7 @@ index 3b5ea68..42fc9af 100644
        tsk->thread.address = addr;
        tsk->thread.error_code = fsr;
        tsk->thread.trap_no = 14;
-@@ -383,6 +390,33 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
+@@ -397,6 +404,33 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
  }
  #endif                                        /* CONFIG_MMU */
  
@@ -984,11 +1928,32 @@ index 3b5ea68..42fc9af 100644
  /*
   * First Level Translation Fault Handler
   *
+@@ -577,6 +611,20 @@ do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)
+       const struct fsr_info *inf = ifsr_info + fsr_fs(ifsr);
+       struct siginfo info;
++#ifdef CONFIG_PAX_REFCOUNT
++      if (fsr_fs(ifsr) == 2) {
++              unsigned int bkpt;
++
++              if (!probe_kernel_address((unsigned int *)addr, bkpt) && bkpt == 0xe12f1073) {
++                      current->thread.error_code = ifsr;
++                      current->thread.trap_no = 0;
++                      pax_report_refcount_overflow(regs);
++                      fixup_exception(regs);
++                      return;
++              }
++      }
++#endif
++
+       if (!inf->fn(addr, ifsr | FSR_LNX_PF, regs))
+               return;
 diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
-index 74be05f..f605b8c 100644
+index ce8cb19..3ec539d 100644
 --- a/arch/arm/mm/mmap.c
 +++ b/arch/arm/mm/mmap.c
-@@ -65,6 +65,10 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -93,6 +93,10 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
        if (len > TASK_SIZE)
                return -ENOMEM;
  
@@ -999,7 +1964,7 @@ index 74be05f..f605b8c 100644
        if (addr) {
                if (do_align)
                        addr = COLOUR_ALIGN(addr, pgoff);
-@@ -72,15 +76,14 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -100,15 +104,14 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
                        addr = PAGE_ALIGN(addr);
  
                vma = find_vma(mm, addr);
@@ -1012,14 +1977,14 @@ index 74be05f..f605b8c 100644
 -              start_addr = addr = mm->free_area_cache;
 +              start_addr = addr = mm->free_area_cache;
        } else {
--              start_addr = addr = TASK_UNMAPPED_BASE;
+-              start_addr = addr = mm->mmap_base;
 -              mm->cached_hole_size = 0;
 +              start_addr = addr = mm->mmap_base;
 +              mm->cached_hole_size = 0;
        }
-       /* 8 bits of randomness in 20 address space bits */
-       if ((current->flags & PF_RANDOMIZE) &&
-@@ -100,14 +103,14 @@ full_search:
+ full_search:
+@@ -124,14 +127,14 @@ full_search:
                         * Start a new search - just in case we missed
                         * some holes.
                         */
@@ -1037,6 +2002,84 @@ index 74be05f..f605b8c 100644
                        /*
                         * Remember the place where we stopped the search:
                         */
+@@ -266,10 +269,22 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+       if (mmap_is_legacy()) {
+               mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
++
++#ifdef CONFIG_PAX_RANDMMAP
++              if (mm->pax_flags & MF_PAX_RANDMMAP)
++                      mm->mmap_base += mm->delta_mmap;
++#endif
++
+               mm->get_unmapped_area = arch_get_unmapped_area;
+               mm->unmap_area = arch_unmap_area;
+       } else {
+               mm->mmap_base = mmap_base(random_factor);
++
++#ifdef CONFIG_PAX_RANDMMAP
++              if (mm->pax_flags & MF_PAX_RANDMMAP)
++                      mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
++#endif
++
+               mm->get_unmapped_area = arch_get_unmapped_area_topdown;
+               mm->unmap_area = arch_unmap_area_topdown;
+       }
+diff --git a/arch/arm/plat-orion/include/plat/addr-map.h b/arch/arm/plat-orion/include/plat/addr-map.h
+index fd556f7..af2e7d2 100644
+--- a/arch/arm/plat-orion/include/plat/addr-map.h
++++ b/arch/arm/plat-orion/include/plat/addr-map.h
+@@ -26,7 +26,7 @@ struct orion_addr_map_cfg {
+          value in bridge_virt_base */
+       void __iomem *(*win_cfg_base) (const struct orion_addr_map_cfg *cfg,
+                                const int win);
+-};
++} __no_const;
+ /*
+  * Information needed to setup one address mapping.
+diff --git a/arch/arm/plat-samsung/include/plat/dma-ops.h b/arch/arm/plat-samsung/include/plat/dma-ops.h
+index 71a6827..e7fbc23 100644
+--- a/arch/arm/plat-samsung/include/plat/dma-ops.h
++++ b/arch/arm/plat-samsung/include/plat/dma-ops.h
+@@ -43,7 +43,7 @@ struct samsung_dma_ops {
+       int (*started)(unsigned ch);
+       int (*flush)(unsigned ch);
+       int (*stop)(unsigned ch);
+-};
++} __no_const;
+ extern void *samsung_dmadev_get_ops(void);
+ extern void *s3c_dma_get_ops(void);
+diff --git a/arch/arm/plat-samsung/include/plat/ehci.h b/arch/arm/plat-samsung/include/plat/ehci.h
+index 5f28cae..3d23723 100644
+--- a/arch/arm/plat-samsung/include/plat/ehci.h
++++ b/arch/arm/plat-samsung/include/plat/ehci.h
+@@ -14,7 +14,7 @@
+ struct s5p_ehci_platdata {
+       int (*phy_init)(struct platform_device *pdev, int type);
+       int (*phy_exit)(struct platform_device *pdev, int type);
+-};
++} __no_const;
+ extern void s5p_ehci_set_platdata(struct s5p_ehci_platdata *pd);
+diff --git a/arch/avr32/include/asm/cache.h b/arch/avr32/include/asm/cache.h
+index c3a58a1..78fbf54 100644
+--- a/arch/avr32/include/asm/cache.h
++++ b/arch/avr32/include/asm/cache.h
+@@ -1,8 +1,10 @@
+ #ifndef __ASM_AVR32_CACHE_H
+ #define __ASM_AVR32_CACHE_H
++#include <linux/const.h>
++
+ #define L1_CACHE_SHIFT 5
+-#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
+ /*
+  * Memory returned by kmalloc() may be used for DMA, so we must make
 diff --git a/arch/avr32/include/asm/elf.h b/arch/avr32/include/asm/elf.h
 index 3b3159b..425ea94 100644
 --- a/arch/avr32/include/asm/elf.h
@@ -1116,6 +2159,98 @@ index f7040a1..db9f300 100644
                if (exception_trace && printk_ratelimit())
                        printk("%s%s[%d]: segfault at %08lx pc %08lx "
                               "sp %08lx ecr %lu\n",
+diff --git a/arch/blackfin/include/asm/cache.h b/arch/blackfin/include/asm/cache.h
+index 568885a..f8008df 100644
+--- a/arch/blackfin/include/asm/cache.h
++++ b/arch/blackfin/include/asm/cache.h
+@@ -7,6 +7,7 @@
+ #ifndef __ARCH_BLACKFIN_CACHE_H
+ #define __ARCH_BLACKFIN_CACHE_H
++#include <linux/const.h>
+ #include <linux/linkage.h>    /* for asmlinkage */
+ /*
+@@ -14,7 +15,7 @@
+  * Blackfin loads 32 bytes for cache
+  */
+ #define L1_CACHE_SHIFT        5
+-#define L1_CACHE_BYTES        (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES        (_AC(1,UL) << L1_CACHE_SHIFT)
+ #define SMP_CACHE_BYTES       L1_CACHE_BYTES
+ #define ARCH_DMA_MINALIGN     L1_CACHE_BYTES
+diff --git a/arch/cris/include/arch-v10/arch/cache.h b/arch/cris/include/arch-v10/arch/cache.h
+index aea2718..3639a60 100644
+--- a/arch/cris/include/arch-v10/arch/cache.h
++++ b/arch/cris/include/arch-v10/arch/cache.h
+@@ -1,8 +1,9 @@
+ #ifndef _ASM_ARCH_CACHE_H
+ #define _ASM_ARCH_CACHE_H
++#include <linux/const.h>
+ /* Etrax 100LX have 32-byte cache-lines. */
+-#define L1_CACHE_BYTES 32
+ #define L1_CACHE_SHIFT 5
++#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
+ #endif /* _ASM_ARCH_CACHE_H */
+diff --git a/arch/cris/include/arch-v32/arch/cache.h b/arch/cris/include/arch-v32/arch/cache.h
+index 1de779f..336fad3 100644
+--- a/arch/cris/include/arch-v32/arch/cache.h
++++ b/arch/cris/include/arch-v32/arch/cache.h
+@@ -1,11 +1,12 @@
+ #ifndef _ASM_CRIS_ARCH_CACHE_H
+ #define _ASM_CRIS_ARCH_CACHE_H
++#include <linux/const.h>
+ #include <arch/hwregs/dma.h>
+ /* A cache-line is 32 bytes. */
+-#define L1_CACHE_BYTES 32
+ #define L1_CACHE_SHIFT 5
++#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
+ #define __read_mostly __attribute__((__section__(".data.read_mostly")))
+diff --git a/arch/frv/include/asm/atomic.h b/arch/frv/include/asm/atomic.h
+index b86329d..6709906 100644
+--- a/arch/frv/include/asm/atomic.h
++++ b/arch/frv/include/asm/atomic.h
+@@ -186,6 +186,16 @@ static inline void atomic64_dec(atomic64_t *v)
+ #define atomic64_cmpxchg(v, old, new) (__cmpxchg_64(old, new, &(v)->counter))
+ #define atomic64_xchg(v, new)         (__xchg_64(new, &(v)->counter))
++#define atomic64_read_unchecked(v)            atomic64_read(v)
++#define atomic64_set_unchecked(v, i)          atomic64_set((v), (i))
++#define atomic64_add_unchecked(a, v)          atomic64_add((a), (v))
++#define atomic64_add_return_unchecked(a, v)   atomic64_add_return((a), (v))
++#define atomic64_sub_unchecked(a, v)          atomic64_sub((a), (v))
++#define atomic64_inc_unchecked(v)             atomic64_inc(v)
++#define atomic64_inc_return_unchecked(v)      atomic64_inc_return(v)
++#define atomic64_dec_unchecked(v)             atomic64_dec(v)
++#define atomic64_cmpxchg_unchecked(v, o, n)   atomic64_cmpxchg((v), (o), (n))
++
+ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
+ {
+       int c, old;
+diff --git a/arch/frv/include/asm/cache.h b/arch/frv/include/asm/cache.h
+index 2797163..c2a401d 100644
+--- a/arch/frv/include/asm/cache.h
++++ b/arch/frv/include/asm/cache.h
+@@ -12,10 +12,11 @@
+ #ifndef __ASM_CACHE_H
+ #define __ASM_CACHE_H
++#include <linux/const.h>
+ /* bytes per L1 cache line */
+ #define L1_CACHE_SHIFT                (CONFIG_FRV_L1_CACHE_SHIFT)
+-#define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)
+ #define __cacheline_aligned   __attribute__((aligned(L1_CACHE_BYTES)))
+ #define ____cacheline_aligned __attribute__((aligned(L1_CACHE_BYTES)))
 diff --git a/arch/frv/include/asm/kmap_types.h b/arch/frv/include/asm/kmap_types.h
 index f8e16b2..c73ff79 100644
 --- a/arch/frv/include/asm/kmap_types.h
@@ -1160,6 +2295,82 @@ index 385fd30..6c3d97e 100644
                                goto success;
                        addr = vma->vm_end;
                }
+diff --git a/arch/h8300/include/asm/cache.h b/arch/h8300/include/asm/cache.h
+index c635028..6d9445a 100644
+--- a/arch/h8300/include/asm/cache.h
++++ b/arch/h8300/include/asm/cache.h
+@@ -1,8 +1,10 @@
+ #ifndef __ARCH_H8300_CACHE_H
+ #define __ARCH_H8300_CACHE_H
++#include <linux/const.h>
++
+ /* bytes per L1 cache line */
+-#define        L1_CACHE_BYTES  4
++#define        L1_CACHE_BYTES  _AC(4,UL)
+ /* m68k-elf-gcc  2.95.2 doesn't like these */
+diff --git a/arch/hexagon/include/asm/cache.h b/arch/hexagon/include/asm/cache.h
+index 0f01de2..d37d309 100644
+--- a/arch/hexagon/include/asm/cache.h
++++ b/arch/hexagon/include/asm/cache.h
+@@ -21,9 +21,11 @@
+ #ifndef __ASM_CACHE_H
+ #define __ASM_CACHE_H
++#include <linux/const.h>
++
+ /* Bytes per L1 cache line */
+-#define L1_CACHE_SHIFT                (5)
+-#define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_SHIFT                5
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)
+ #define __cacheline_aligned   __aligned(L1_CACHE_BYTES)
+ #define ____cacheline_aligned __aligned(L1_CACHE_BYTES)
+diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h
+index 7d91166..88ab87e 100644
+--- a/arch/ia64/include/asm/atomic.h
++++ b/arch/ia64/include/asm/atomic.h
+@@ -208,6 +208,16 @@ atomic64_add_negative (__s64 i, atomic64_t *v)
+ #define atomic64_inc(v)                       atomic64_add(1, (v))
+ #define atomic64_dec(v)                       atomic64_sub(1, (v))
++#define atomic64_read_unchecked(v)            atomic64_read(v)
++#define atomic64_set_unchecked(v, i)          atomic64_set((v), (i))
++#define atomic64_add_unchecked(a, v)          atomic64_add((a), (v))
++#define atomic64_add_return_unchecked(a, v)   atomic64_add_return((a), (v))
++#define atomic64_sub_unchecked(a, v)          atomic64_sub((a), (v))
++#define atomic64_inc_unchecked(v)             atomic64_inc(v)
++#define atomic64_inc_return_unchecked(v)      atomic64_inc_return(v)
++#define atomic64_dec_unchecked(v)             atomic64_dec(v)
++#define atomic64_cmpxchg_unchecked(v, o, n)   atomic64_cmpxchg((v), (o), (n))
++
+ /* Atomic operations are already serializing */
+ #define smp_mb__before_atomic_dec()   barrier()
+ #define smp_mb__after_atomic_dec()    barrier()
+diff --git a/arch/ia64/include/asm/cache.h b/arch/ia64/include/asm/cache.h
+index 988254a..e1ee885 100644
+--- a/arch/ia64/include/asm/cache.h
++++ b/arch/ia64/include/asm/cache.h
+@@ -1,6 +1,7 @@
+ #ifndef _ASM_IA64_CACHE_H
+ #define _ASM_IA64_CACHE_H
++#include <linux/const.h>
+ /*
+  * Copyright (C) 1998-2000 Hewlett-Packard Co
+@@ -9,7 +10,7 @@
+ /* Bytes per L1 (data) cache line.  */
+ #define L1_CACHE_SHIFT                CONFIG_IA64_L1_CACHE_SHIFT
+-#define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)
+ #ifdef CONFIG_SMP
+ # define SMP_CACHE_SHIFT      L1_CACHE_SHIFT
 diff --git a/arch/ia64/include/asm/elf.h b/arch/ia64/include/asm/elf.h
 index b5298eb..67c6e62 100644
 --- a/arch/ia64/include/asm/elf.h
@@ -1178,8 +2389,38 @@ index b5298eb..67c6e62 100644
  #define PT_IA_64_UNWIND               0x70000001
  
  /* IA-64 relocations: */
+diff --git a/arch/ia64/include/asm/pgalloc.h b/arch/ia64/include/asm/pgalloc.h
+index 96a8d92..617a1cf 100644
+--- a/arch/ia64/include/asm/pgalloc.h
++++ b/arch/ia64/include/asm/pgalloc.h
+@@ -39,6 +39,12 @@ pgd_populate(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
+       pgd_val(*pgd_entry) = __pa(pud);
+ }
++static inline void
++pgd_populate_kernel(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
++{
++      pgd_populate(mm, pgd_entry, pud);
++}
++
+ static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
+ {
+       return quicklist_alloc(0, GFP_KERNEL, NULL);
+@@ -57,6 +63,12 @@ pud_populate(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd)
+       pud_val(*pud_entry) = __pa(pmd);
+ }
++static inline void
++pud_populate_kernel(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd)
++{
++      pud_populate(mm, pud_entry, pmd);
++}
++
+ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr)
+ {
+       return quicklist_alloc(0, GFP_KERNEL, NULL);
 diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
-index 1a97af3..7529d31 100644
+index 815810c..d60bd4c 100644
 --- a/arch/ia64/include/asm/pgtable.h
 +++ b/arch/ia64/include/asm/pgtable.h
 @@ -12,7 +12,7 @@
@@ -1191,7 +2432,7 @@ index 1a97af3..7529d31 100644
  #include <asm/mman.h>
  #include <asm/page.h>
  #include <asm/processor.h>
-@@ -143,6 +143,17 @@
+@@ -142,6 +142,17 @@
  #define PAGE_READONLY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
  #define PAGE_COPY     __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
  #define PAGE_COPY_EXEC        __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_RX)
@@ -1210,10 +2451,10 @@ index 1a97af3..7529d31 100644
  #define PAGE_KERNEL   __pgprot(__DIRTY_BITS  | _PAGE_PL_0 | _PAGE_AR_RWX)
  #define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX)
 diff --git a/arch/ia64/include/asm/spinlock.h b/arch/ia64/include/asm/spinlock.h
-index b77768d..e0795eb 100644
+index 54ff557..70c88b7 100644
 --- a/arch/ia64/include/asm/spinlock.h
 +++ b/arch/ia64/include/asm/spinlock.h
-@@ -72,7 +72,7 @@ static __always_inline void __ticket_spin_unlock(arch_spinlock_t *lock)
+@@ -71,7 +71,7 @@ static __always_inline void __ticket_spin_unlock(arch_spinlock_t *lock)
        unsigned short  *p = (unsigned short *)&lock->lock + 1, tmp;
  
        asm volatile ("ld2.bias %0=[%1]" : "=r"(tmp) : "r"(p));
@@ -1373,10 +2614,10 @@ index 609d500..7dde2a8 100644
                        mm->free_area_cache = addr + len;
                        return addr;
 diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S
-index 53c0ba0..2accdde 100644
+index 0ccb28f..8992469 100644
 --- a/arch/ia64/kernel/vmlinux.lds.S
 +++ b/arch/ia64/kernel/vmlinux.lds.S
-@@ -199,7 +199,7 @@ SECTIONS {
+@@ -198,7 +198,7 @@ SECTIONS {
        /* Per-cpu data: */
        . = ALIGN(PERCPU_PAGE_SIZE);
        PERCPU_VADDR(SMP_CACHE_BYTES, PERCPU_ADDR, :percpu)
@@ -1386,10 +2627,10 @@ index 53c0ba0..2accdde 100644
         * ensure percpu data fits
         * into percpu page size
 diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
-index 20b3593..1ce77f0 100644
+index 02d29c2..ea893df 100644
 --- a/arch/ia64/mm/fault.c
 +++ b/arch/ia64/mm/fault.c
-@@ -73,6 +73,23 @@ mapped_kernel_page_is_present (unsigned long address)
+@@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned long address)
        return pte_present(pte);
  }
  
@@ -1413,7 +2654,7 @@ index 20b3593..1ce77f0 100644
  void __kprobes
  ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *regs)
  {
-@@ -146,9 +163,23 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
+@@ -145,9 +162,23 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
        mask = (  (((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT)
                | (((isr >> IA64_ISR_W_BIT) & 1UL) << VM_WRITE_BIT));
  
@@ -1452,7 +2693,7 @@ index 5ca674b..e0e1b70 100644
                addr = ALIGN(vmm->vm_end, HPAGE_SIZE);
        }
 diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
-index 00cb0e2..2ad8024 100644
+index 0eab454..bd794f2 100644
 --- a/arch/ia64/mm/init.c
 +++ b/arch/ia64/mm/init.c
 @@ -120,6 +120,19 @@ ia64_init_addr_space (void)
@@ -1475,6 +2716,22 @@ index 00cb0e2..2ad8024 100644
                vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
                down_write(&current->mm->mmap_sem);
                if (insert_vm_struct(current->mm, vma)) {
+diff --git a/arch/m32r/include/asm/cache.h b/arch/m32r/include/asm/cache.h
+index 40b3ee9..8c2c112 100644
+--- a/arch/m32r/include/asm/cache.h
++++ b/arch/m32r/include/asm/cache.h
+@@ -1,8 +1,10 @@
+ #ifndef _ASM_M32R_CACHE_H
+ #define _ASM_M32R_CACHE_H
++#include <linux/const.h>
++
+ /* L1 cache line size */
+ #define L1_CACHE_SHIFT                4
+-#define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)
+ #endif  /* _ASM_M32R_CACHE_H */
 diff --git a/arch/m32r/lib/usercopy.c b/arch/m32r/lib/usercopy.c
 index 82abd15..d95ae5d 100644
 --- a/arch/m32r/lib/usercopy.c
@@ -1499,6 +2756,90 @@ index 82abd15..d95ae5d 100644
        prefetchw(to);
        if (access_ok(VERIFY_READ, from, n))
                __copy_user_zeroing(to,from,n);
+diff --git a/arch/m68k/include/asm/cache.h b/arch/m68k/include/asm/cache.h
+index 0395c51..5f26031 100644
+--- a/arch/m68k/include/asm/cache.h
++++ b/arch/m68k/include/asm/cache.h
+@@ -4,9 +4,11 @@
+ #ifndef __ARCH_M68K_CACHE_H
+ #define __ARCH_M68K_CACHE_H
++#include <linux/const.h>
++
+ /* bytes per L1 cache line */
+ #define        L1_CACHE_SHIFT  4
+-#define        L1_CACHE_BYTES  (1<< L1_CACHE_SHIFT)
++#define        L1_CACHE_BYTES  (_AC(1,UL) << L1_CACHE_SHIFT)
+ #define ARCH_DMA_MINALIGN     L1_CACHE_BYTES
+diff --git a/arch/microblaze/include/asm/cache.h b/arch/microblaze/include/asm/cache.h
+index 4efe96a..60e8699 100644
+--- a/arch/microblaze/include/asm/cache.h
++++ b/arch/microblaze/include/asm/cache.h
+@@ -13,11 +13,12 @@
+ #ifndef _ASM_MICROBLAZE_CACHE_H
+ #define _ASM_MICROBLAZE_CACHE_H
++#include <linux/const.h>
+ #include <asm/registers.h>
+ #define L1_CACHE_SHIFT 5
+ /* word-granular cache in microblaze */
+-#define L1_CACHE_BYTES        (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES        (_AC(1,UL) << L1_CACHE_SHIFT)
+ #define SMP_CACHE_BYTES       L1_CACHE_BYTES
+diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
+index 3f4c5cb..3439c6e 100644
+--- a/arch/mips/include/asm/atomic.h
++++ b/arch/mips/include/asm/atomic.h
+@@ -21,6 +21,10 @@
+ #include <asm/cmpxchg.h>
+ #include <asm/war.h>
++#ifdef CONFIG_GENERIC_ATOMIC64
++#include <asm-generic/atomic64.h>
++#endif
++
+ #define ATOMIC_INIT(i)    { (i) }
+ /*
+@@ -765,6 +769,16 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
+  */
+ #define atomic64_add_negative(i, v) (atomic64_add_return(i, (v)) < 0)
++#define atomic64_read_unchecked(v)            atomic64_read(v)
++#define atomic64_set_unchecked(v, i)          atomic64_set((v), (i))
++#define atomic64_add_unchecked(a, v)          atomic64_add((a), (v))
++#define atomic64_add_return_unchecked(a, v)   atomic64_add_return((a), (v))
++#define atomic64_sub_unchecked(a, v)          atomic64_sub((a), (v))
++#define atomic64_inc_unchecked(v)             atomic64_inc(v)
++#define atomic64_inc_return_unchecked(v)      atomic64_inc_return(v)
++#define atomic64_dec_unchecked(v)             atomic64_dec(v)
++#define atomic64_cmpxchg_unchecked(v, o, n)   atomic64_cmpxchg((v), (o), (n))
++
+ #endif /* CONFIG_64BIT */
+ /*
+diff --git a/arch/mips/include/asm/cache.h b/arch/mips/include/asm/cache.h
+index b4db69f..8f3b093 100644
+--- a/arch/mips/include/asm/cache.h
++++ b/arch/mips/include/asm/cache.h
+@@ -9,10 +9,11 @@
+ #ifndef _ASM_CACHE_H
+ #define _ASM_CACHE_H
++#include <linux/const.h>
+ #include <kmalloc.h>
+ #define L1_CACHE_SHIFT                CONFIG_MIPS_L1_CACHE_SHIFT
+-#define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)
+ #define SMP_CACHE_SHIFT               L1_CACHE_SHIFT
+ #define SMP_CACHE_BYTES               L1_CACHE_BYTES
 diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
 index 455c0ac..ad65fbe 100644
 --- a/arch/mips/include/asm/elf.h
@@ -1524,11 +2865,23 @@ index 455c0ac..ad65fbe 100644
 -#define arch_randomize_brk arch_randomize_brk
 -
  #endif /* _ASM_ELF_H */
+diff --git a/arch/mips/include/asm/exec.h b/arch/mips/include/asm/exec.h
+index c1f6afa..38cc6e9 100644
+--- a/arch/mips/include/asm/exec.h
++++ b/arch/mips/include/asm/exec.h
+@@ -12,6 +12,6 @@
+ #ifndef _ASM_EXEC_H
+ #define _ASM_EXEC_H
+-extern unsigned long arch_align_stack(unsigned long sp);
++#define arch_align_stack(x) ((x) & ~0xfUL)
+ #endif /* _ASM_EXEC_H */
 diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
-index e59cd1a..8e329d6 100644
+index da9bd7d..91aa7ab 100644
 --- a/arch/mips/include/asm/page.h
 +++ b/arch/mips/include/asm/page.h
-@@ -93,7 +93,7 @@ extern void copy_user_highpage(struct page *to, struct page *from,
+@@ -98,7 +98,7 @@ extern void copy_user_highpage(struct page *to, struct page *from,
    #ifdef CONFIG_CPU_MIPS32
      typedef struct { unsigned long pte_low, pte_high; } pte_t;
      #define pte_val(x)    ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
@@ -1537,18 +2890,56 @@ index e59cd1a..8e329d6 100644
    #else
       typedef struct { unsigned long long pte; } pte_t;
       #define pte_val(x)       ((x).pte)
-diff --git a/arch/mips/include/asm/system.h b/arch/mips/include/asm/system.h
-index 6018c80..7c37203 100644
---- a/arch/mips/include/asm/system.h
-+++ b/arch/mips/include/asm/system.h
-@@ -230,6 +230,6 @@ extern void per_cpu_trap_init(void);
-  */
- #define __ARCH_WANT_UNLOCKED_CTXSW
+diff --git a/arch/mips/include/asm/pgalloc.h b/arch/mips/include/asm/pgalloc.h
+index 881d18b..cea38bc 100644
+--- a/arch/mips/include/asm/pgalloc.h
++++ b/arch/mips/include/asm/pgalloc.h
+@@ -37,6 +37,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
+ {
+       set_pud(pud, __pud((unsigned long)pmd));
+ }
++
++static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
++{
++      pud_populate(mm, pud, pmd);
++}
+ #endif
  
--extern unsigned long arch_align_stack(unsigned long sp);
-+#define arch_align_stack(x) ((x) & ~0xfUL)
+ /*
+diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
+index 0d85d8e..ec71487 100644
+--- a/arch/mips/include/asm/thread_info.h
++++ b/arch/mips/include/asm/thread_info.h
+@@ -123,6 +123,8 @@ register struct thread_info *__current_thread_info __asm__("$28");
+ #define TIF_32BIT_ADDR                23      /* 32-bit address space (o32/n32) */
+ #define TIF_FPUBOUND          24      /* thread bound to FPU-full CPU set */
+ #define TIF_LOAD_WATCH                25      /* If set, load watch registers */
++/* li takes a 32bit immediate */
++#define TIF_GRSEC_SETXID      29      /* update credentials on syscall entry/exit */
+ #define TIF_SYSCALL_TRACE     31      /* syscall trace active */
+ #ifdef CONFIG_MIPS32_O32
+@@ -146,15 +148,18 @@ register struct thread_info *__current_thread_info __asm__("$28");
+ #define _TIF_32BIT_ADDR               (1<<TIF_32BIT_ADDR)
+ #define _TIF_FPUBOUND         (1<<TIF_FPUBOUND)
+ #define _TIF_LOAD_WATCH               (1<<TIF_LOAD_WATCH)
++#define _TIF_GRSEC_SETXID     (1<<TIF_GRSEC_SETXID)
++
++#define _TIF_SYSCALL_WORK     (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_GRSEC_SETXID)
+ /* work to do in syscall_trace_leave() */
+-#define _TIF_WORK_SYSCALL_EXIT        (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT)
++#define _TIF_WORK_SYSCALL_EXIT        (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_GRSEC_SETXID)
+ /* work to do on interrupt/exception return */
+ #define _TIF_WORK_MASK                (0x0000ffef &                           \
+                                       ~(_TIF_SECCOMP | _TIF_SYSCALL_AUDIT))
+ /* work to do on any return to u-space */
+-#define _TIF_ALLWORK_MASK     (0x8000ffff & ~_TIF_SECCOMP)
++#define _TIF_ALLWORK_MASK     ((0x8000ffff & ~_TIF_SECCOMP) | _TIF_GRSEC_SETXID)
+ #endif /* __KERNEL__ */
  
- #endif /* _ASM_SYSTEM_H */
 diff --git a/arch/mips/kernel/binfmt_elfn32.c b/arch/mips/kernel/binfmt_elfn32.c
 index 9fdd8bc..4bd7f1a 100644
 --- a/arch/mips/kernel/binfmt_elfn32.c
@@ -1586,10 +2977,10 @@ index ff44823..97f8906 100644
  
  /*
 diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
-index b30cb25..454c0a9 100644
+index e9a5fd7..378809a 100644
 --- a/arch/mips/kernel/process.c
 +++ b/arch/mips/kernel/process.c
-@@ -481,15 +481,3 @@ unsigned long get_wchan(struct task_struct *task)
+@@ -480,15 +480,3 @@ unsigned long get_wchan(struct task_struct *task)
  out:
        return pc;
  }
@@ -1605,11 +2996,90 @@ index b30cb25..454c0a9 100644
 -
 -      return sp & ALMASK;
 -}
+diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
+index 7c24c29..e2f1981 100644
+--- a/arch/mips/kernel/ptrace.c
++++ b/arch/mips/kernel/ptrace.c
+@@ -528,6 +528,10 @@ static inline int audit_arch(void)
+       return arch;
+ }
++#ifdef CONFIG_GRKERNSEC_SETXID
++extern void gr_delayed_cred_worker(void);
++#endif
++
+ /*
+  * Notification of system call entry/exit
+  * - triggered by current->work.syscall_trace
+@@ -537,6 +541,11 @@ asmlinkage void syscall_trace_enter(struct pt_regs *regs)
+       /* do the secure computing check first */
+       secure_computing(regs->regs[2]);
++#ifdef CONFIG_GRKERNSEC_SETXID
++      if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
++              gr_delayed_cred_worker();
++#endif
++
+       if (!(current->ptrace & PT_PTRACED))
+               goto out;
+diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
+index a632bc1..0b77c7c 100644
+--- a/arch/mips/kernel/scall32-o32.S
++++ b/arch/mips/kernel/scall32-o32.S
+@@ -52,7 +52,7 @@ NESTED(handle_sys, PT_SIZE, sp)
+ stack_done:
+       lw      t0, TI_FLAGS($28)       # syscall tracing enabled?
+-      li      t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
++      li      t1, _TIF_SYSCALL_WORK
+       and     t0, t1
+       bnez    t0, syscall_trace_entry # -> yes
+diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
+index 3b5a5e9..e1ee86d 100644
+--- a/arch/mips/kernel/scall64-64.S
++++ b/arch/mips/kernel/scall64-64.S
+@@ -54,7 +54,7 @@ NESTED(handle_sys64, PT_SIZE, sp)
+       sd      a3, PT_R26(sp)          # save a3 for syscall restarting
+-      li      t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
++      li      t1, _TIF_SYSCALL_WORK
+       LONG_L  t0, TI_FLAGS($28)       # syscall tracing enabled?
+       and     t0, t1, t0
+       bnez    t0, syscall_trace_entry
+diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
+index 6be6f70..1859577 100644
+--- a/arch/mips/kernel/scall64-n32.S
++++ b/arch/mips/kernel/scall64-n32.S
+@@ -53,7 +53,7 @@ NESTED(handle_sysn32, PT_SIZE, sp)
+       sd      a3, PT_R26(sp)          # save a3 for syscall restarting
+-      li      t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
++      li      t1, _TIF_SYSCALL_WORK
+       LONG_L  t0, TI_FLAGS($28)       # syscall tracing enabled?
+       and     t0, t1, t0
+       bnez    t0, n32_syscall_trace_entry
+diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
+index 5422855..74e63a3 100644
+--- a/arch/mips/kernel/scall64-o32.S
++++ b/arch/mips/kernel/scall64-o32.S
+@@ -81,7 +81,7 @@ NESTED(handle_sys, PT_SIZE, sp)
+       PTR     4b, bad_stack
+       .previous
+-      li      t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
++      li      t1, _TIF_SYSCALL_WORK
+       LONG_L  t0, TI_FLAGS($28)       # syscall tracing enabled?
+       and     t0, t1, t0
+       bnez    t0, trace_a_syscall
 diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
-index 937cf33..adb39bb 100644
+index c14f6df..537e729 100644
 --- a/arch/mips/mm/fault.c
 +++ b/arch/mips/mm/fault.c
-@@ -28,6 +28,23 @@
+@@ -27,6 +27,23 @@
  #include <asm/highmem.h>              /* For VMALLOC_END */
  #include <linux/kdebug.h>
  
@@ -1717,6 +3187,115 @@ index 302d779..7d35bf8 100644
 -
 -      return ret;
 -}
+diff --git a/arch/mn10300/proc-mn103e010/include/proc/cache.h b/arch/mn10300/proc-mn103e010/include/proc/cache.h
+index 967d144..db12197 100644
+--- a/arch/mn10300/proc-mn103e010/include/proc/cache.h
++++ b/arch/mn10300/proc-mn103e010/include/proc/cache.h
+@@ -11,12 +11,14 @@
+ #ifndef _ASM_PROC_CACHE_H
+ #define _ASM_PROC_CACHE_H
++#include <linux/const.h>
++
+ /* L1 cache */
+ #define L1_CACHE_NWAYS                4       /* number of ways in caches */
+ #define L1_CACHE_NENTRIES     256     /* number of entries in each way */
+-#define L1_CACHE_BYTES                16      /* bytes per entry */
+ #define L1_CACHE_SHIFT                4       /* shift for bytes per entry */
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)   /* bytes per entry */
+ #define L1_CACHE_WAYDISP      0x1000  /* displacement of one way from the next */
+ #define L1_CACHE_TAG_VALID    0x00000001      /* cache tag valid bit */
+diff --git a/arch/mn10300/proc-mn2ws0050/include/proc/cache.h b/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
+index bcb5df2..84fabd2 100644
+--- a/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
++++ b/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
+@@ -16,13 +16,15 @@
+ #ifndef _ASM_PROC_CACHE_H
+ #define _ASM_PROC_CACHE_H
++#include <linux/const.h>
++
+ /*
+  * L1 cache
+  */
+ #define L1_CACHE_NWAYS                4               /* number of ways in caches */
+ #define L1_CACHE_NENTRIES     128             /* number of entries in each way */
+-#define L1_CACHE_BYTES                32              /* bytes per entry */
+ #define L1_CACHE_SHIFT                5               /* shift for bytes per entry */
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)   /* bytes per entry */
+ #define L1_CACHE_WAYDISP      0x1000          /* distance from one way to the next */
+ #define L1_CACHE_TAG_VALID    0x00000001      /* cache tag valid bit */
+diff --git a/arch/openrisc/include/asm/cache.h b/arch/openrisc/include/asm/cache.h
+index 4ce7a01..449202a 100644
+--- a/arch/openrisc/include/asm/cache.h
++++ b/arch/openrisc/include/asm/cache.h
+@@ -19,11 +19,13 @@
+ #ifndef __ASM_OPENRISC_CACHE_H
+ #define __ASM_OPENRISC_CACHE_H
++#include <linux/const.h>
++
+ /* FIXME: How can we replace these with values from the CPU...
+  * they shouldn't be hard-coded!
+  */
+-#define L1_CACHE_BYTES 16
+ #define L1_CACHE_SHIFT 4
++#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
+ #endif /* __ASM_OPENRISC_CACHE_H */
+diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
+index 6c6defc..d30653d 100644
+--- a/arch/parisc/include/asm/atomic.h
++++ b/arch/parisc/include/asm/atomic.h
+@@ -229,6 +229,16 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
+ #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
++#define atomic64_read_unchecked(v)            atomic64_read(v)
++#define atomic64_set_unchecked(v, i)          atomic64_set((v), (i))
++#define atomic64_add_unchecked(a, v)          atomic64_add((a), (v))
++#define atomic64_add_return_unchecked(a, v)   atomic64_add_return((a), (v))
++#define atomic64_sub_unchecked(a, v)          atomic64_sub((a), (v))
++#define atomic64_inc_unchecked(v)             atomic64_inc(v)
++#define atomic64_inc_return_unchecked(v)      atomic64_inc_return(v)
++#define atomic64_dec_unchecked(v)             atomic64_dec(v)
++#define atomic64_cmpxchg_unchecked(v, o, n)   atomic64_cmpxchg((v), (o), (n))
++
+ #endif /* !CONFIG_64BIT */
+diff --git a/arch/parisc/include/asm/cache.h b/arch/parisc/include/asm/cache.h
+index 47f11c7..3420df2 100644
+--- a/arch/parisc/include/asm/cache.h
++++ b/arch/parisc/include/asm/cache.h
+@@ -5,6 +5,7 @@
+ #ifndef __ARCH_PARISC_CACHE_H
+ #define __ARCH_PARISC_CACHE_H
++#include <linux/const.h>
+ /*
+  * PA 2.0 processors have 64-byte cachelines; PA 1.1 processors have
+@@ -15,13 +16,13 @@
+  * just ruin performance.
+  */
+ #ifdef CONFIG_PA20
+-#define L1_CACHE_BYTES 64
+ #define L1_CACHE_SHIFT 6
+ #else
+-#define L1_CACHE_BYTES 32
+ #define L1_CACHE_SHIFT 5
+ #endif
++#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
++
+ #ifndef __ASSEMBLY__
+ #define SMP_CACHE_BYTES L1_CACHE_BYTES
 diff --git a/arch/parisc/include/asm/elf.h b/arch/parisc/include/asm/elf.h
 index 19f6cb1..6c78cf2 100644
 --- a/arch/parisc/include/asm/elf.h
@@ -1735,11 +3314,35 @@ index 19f6cb1..6c78cf2 100644
  /* This yields a mask that user programs can use to figure out what
     instruction set this CPU supports.  This could be done in user space,
     but it's not easy, and we've already done it here.  */
+diff --git a/arch/parisc/include/asm/pgalloc.h b/arch/parisc/include/asm/pgalloc.h
+index fc987a1..6e068ef 100644
+--- a/arch/parisc/include/asm/pgalloc.h
++++ b/arch/parisc/include/asm/pgalloc.h
+@@ -61,6 +61,11 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
+                       (__u32)(__pa((unsigned long)pmd) >> PxD_VALUE_SHIFT));
+ }
++static inline void pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
++{
++      pgd_populate(mm, pgd, pmd);
++}
++
+ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
+ {
+       pmd_t *pmd = (pmd_t *)__get_free_pages(GFP_KERNEL|__GFP_REPEAT,
+@@ -93,6 +98,7 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
+ #define pmd_alloc_one(mm, addr)               ({ BUG(); ((pmd_t *)2); })
+ #define pmd_free(mm, x)                       do { } while (0)
+ #define pgd_populate(mm, pmd, pte)    BUG()
++#define pgd_populate_kernel(mm, pmd, pte)     BUG()
+ #endif
 diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h
-index 22dadeb..f6c2be4 100644
+index ee99f23..802b0a1 100644
 --- a/arch/parisc/include/asm/pgtable.h
 +++ b/arch/parisc/include/asm/pgtable.h
-@@ -210,6 +210,17 @@ struct vm_area_struct;
+@@ -212,6 +212,17 @@ struct vm_area_struct;
  #define PAGE_EXECREAD   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED)
  #define PAGE_COPY       PAGE_EXECREAD
  #define PAGE_RWX        __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_EXEC |_PAGE_ACCESSED)
@@ -1757,6 +3360,23 @@ index 22dadeb..f6c2be4 100644
  #define PAGE_KERNEL   __pgprot(_PAGE_KERNEL)
  #define PAGE_KERNEL_EXEC      __pgprot(_PAGE_KERNEL_EXEC)
  #define PAGE_KERNEL_RWX       __pgprot(_PAGE_KERNEL_RWX)
+diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h
+index 9ac0660..6ed15c4 100644
+--- a/arch/parisc/include/asm/uaccess.h
++++ b/arch/parisc/include/asm/uaccess.h
+@@ -252,10 +252,10 @@ static inline unsigned long __must_check copy_from_user(void *to,
+                                           const void __user *from,
+                                           unsigned long n)
+ {
+-        int sz = __compiletime_object_size(to);
++        size_t sz = __compiletime_object_size(to);
+         int ret = -EFAULT;
+-        if (likely(sz == -1 || !__builtin_constant_p(n) || sz >= n))
++        if (likely(sz == (size_t)-1 || !__builtin_constant_p(n) || sz >= n))
+                 ret = __copy_from_user(to, from, n);
+         else
+                 copy_from_user_overflow();
 diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c
 index 5e34ccf..672bc9c 100644
 --- a/arch/parisc/kernel/module.c
@@ -1892,10 +3512,10 @@ index c9b9322..02d8940 100644
        if (filp) {
                addr = get_shared_area(filp->f_mapping, addr, len, pgoff);
 diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
-index f19e660..414fe24 100644
+index 45ba99f..8e22c33 100644
 --- a/arch/parisc/kernel/traps.c
 +++ b/arch/parisc/kernel/traps.c
-@@ -733,9 +733,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
+@@ -732,9 +732,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
  
                        down_read(&current->mm->mmap_sem);
                        vma = find_vma(current->mm,regs->iaoq[0]);
@@ -2079,6 +3699,48 @@ index 18162ce..94de376 100644
  
        /*
         * If for any reason at all we couldn't handle the fault, make
+diff --git a/arch/powerpc/include/asm/atomic.h b/arch/powerpc/include/asm/atomic.h
+index da29032..f76c24c 100644
+--- a/arch/powerpc/include/asm/atomic.h
++++ b/arch/powerpc/include/asm/atomic.h
+@@ -522,6 +522,16 @@ static __inline__ long atomic64_inc_not_zero(atomic64_t *v)
+       return t1;
+ }
++#define atomic64_read_unchecked(v)            atomic64_read(v)
++#define atomic64_set_unchecked(v, i)          atomic64_set((v), (i))
++#define atomic64_add_unchecked(a, v)          atomic64_add((a), (v))
++#define atomic64_add_return_unchecked(a, v)   atomic64_add_return((a), (v))
++#define atomic64_sub_unchecked(a, v)          atomic64_sub((a), (v))
++#define atomic64_inc_unchecked(v)             atomic64_inc(v)
++#define atomic64_inc_return_unchecked(v)      atomic64_inc_return(v)
++#define atomic64_dec_unchecked(v)             atomic64_dec(v)
++#define atomic64_cmpxchg_unchecked(v, o, n)   atomic64_cmpxchg((v), (o), (n))
++
+ #endif /* __powerpc64__ */
+ #endif /* __KERNEL__ */
+diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h
+index 9e495c9..b6878e5 100644
+--- a/arch/powerpc/include/asm/cache.h
++++ b/arch/powerpc/include/asm/cache.h
+@@ -3,6 +3,7 @@
+ #ifdef __KERNEL__
++#include <linux/const.h>
+ /* bytes per L1 cache line */
+ #if defined(CONFIG_8xx) || defined(CONFIG_403GCX)
+@@ -22,7 +23,7 @@
+ #define L1_CACHE_SHIFT                7
+ #endif
+-#define       L1_CACHE_BYTES          (1 << L1_CACHE_SHIFT)
++#define       L1_CACHE_BYTES          (_AC(1,UL) << L1_CACHE_SHIFT)
+ #define       SMP_CACHE_BYTES         L1_CACHE_BYTES
 diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
 index 3bf9cca..e7457d0 100644
 --- a/arch/powerpc/include/asm/elf.h
@@ -2115,6 +3777,18 @@ index 3bf9cca..e7457d0 100644
  #endif /* __KERNEL__ */
  
  /*
+diff --git a/arch/powerpc/include/asm/exec.h b/arch/powerpc/include/asm/exec.h
+index 8196e9c..d83a9f3 100644
+--- a/arch/powerpc/include/asm/exec.h
++++ b/arch/powerpc/include/asm/exec.h
+@@ -4,6 +4,6 @@
+ #ifndef _ASM_POWERPC_EXEC_H
+ #define _ASM_POWERPC_EXEC_H
+-extern unsigned long arch_align_stack(unsigned long sp);
++#define arch_align_stack(x) ((x) & ~0xfUL)
+ #endif /* _ASM_POWERPC_EXEC_H */
 diff --git a/arch/powerpc/include/asm/kmap_types.h b/arch/powerpc/include/asm/kmap_types.h
 index bca8fdc..61e9580 100644
 --- a/arch/powerpc/include/asm/kmap_types.h
@@ -2141,10 +3815,10 @@ index d4a7f64..451de1c 100644
        return (vm_flags & VM_SAO) ? __pgprot(_PAGE_SAO) : __pgprot(0);
  }
 diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h
-index 2cd664e..1d2e8a7 100644
+index f072e97..b436dee 100644
 --- a/arch/powerpc/include/asm/page.h
 +++ b/arch/powerpc/include/asm/page.h
-@@ -129,8 +129,9 @@ extern phys_addr_t kernstart_addr;
+@@ -220,8 +220,9 @@ extern long long virt_phys_offset;
   * and needs to be executable.  This means the whole heap ends
   * up being executable.
   */
@@ -2156,21 +3830,21 @@ index 2cd664e..1d2e8a7 100644
  
  #define VM_DATA_DEFAULT_FLAGS64       (VM_READ | VM_WRITE | \
                                 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
-@@ -158,6 +159,9 @@ extern phys_addr_t kernstart_addr;
+@@ -249,6 +250,9 @@ extern long long virt_phys_offset;
  #define is_kernel_addr(x)     ((x) >= PAGE_OFFSET)
  #endif
  
 +#define ktla_ktva(addr)               (addr)
 +#define ktva_ktla(addr)               (addr)
 +
- #ifndef __ASSEMBLY__
- #undef STRICT_MM_TYPECHECKS
+ /*
+  * Use the top bit of the higher-level page table entries to indicate whether
+  * the entries we point to contain hugepages.  This works because we know that
 diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h
-index 9356262..ea96148 100644
+index fed85e6..da5c71b 100644
 --- a/arch/powerpc/include/asm/page_64.h
 +++ b/arch/powerpc/include/asm/page_64.h
-@@ -155,15 +155,18 @@ do {                                             \
+@@ -146,15 +146,18 @@ do {                                             \
   * stack by default, so in the absence of a PT_GNU_STACK program header
   * we turn execute permission off.
   */
@@ -2191,8 +3865,40 @@ index 9356262..ea96148 100644
  
  #include <asm-generic/getorder.h>
  
+diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h
+index 292725c..f87ae14 100644
+--- a/arch/powerpc/include/asm/pgalloc-64.h
++++ b/arch/powerpc/include/asm/pgalloc-64.h
+@@ -50,6 +50,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
+ #ifndef CONFIG_PPC_64K_PAGES
+ #define pgd_populate(MM, PGD, PUD)    pgd_set(PGD, PUD)
++#define pgd_populate_kernel(MM, PGD, PUD)     pgd_populate((MM), (PGD), (PUD))
+ static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
+ {
+@@ -67,6 +68,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
+       pud_set(pud, (unsigned long)pmd);
+ }
++static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
++{
++      pud_populate(mm, pud, pmd);
++}
++
+ #define pmd_populate(mm, pmd, pte_page) \
+       pmd_populate_kernel(mm, pmd, page_address(pte_page))
+ #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte))
+@@ -76,6 +82,7 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
+ #else /* CONFIG_PPC_64K_PAGES */
+ #define pud_populate(mm, pud, pmd)    pud_set(pud, (unsigned long)pmd)
++#define pud_populate_kernel(mm, pud, pmd)     pud_populate((mm), (pud), (pmd))
+ static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
+                                      pte_t *pte)
 diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
-index 88b0bd9..e32bc67 100644
+index 2e0e411..7899c68 100644
 --- a/arch/powerpc/include/asm/pgtable.h
 +++ b/arch/powerpc/include/asm/pgtable.h
 @@ -2,6 +2,7 @@
@@ -2216,7 +3922,7 @@ index 4aad413..85d86bf 100644
  #define _PAGE_NO_CACHE        0x020   /* I: cache inhibit */
  #define _PAGE_WRITETHRU       0x040   /* W: cache write-through */
 diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
-index 559da19..7e5835c 100644
+index 9d7f0fb..a28fe69 100644
 --- a/arch/powerpc/include/asm/reg.h
 +++ b/arch/powerpc/include/asm/reg.h
 @@ -212,6 +212,7 @@
@@ -2227,19 +3933,39 @@ index 559da19..7e5835c 100644
  #define   DSISR_PROTFAULT     0x08000000      /* protection fault */
  #define   DSISR_ISSTORE               0x02000000      /* access was a store */
  #define   DSISR_DABRMATCH     0x00400000      /* hit data breakpoint */
-diff --git a/arch/powerpc/include/asm/system.h b/arch/powerpc/include/asm/system.h
-index e30a13d..2b7d994 100644
---- a/arch/powerpc/include/asm/system.h
-+++ b/arch/powerpc/include/asm/system.h
-@@ -530,7 +530,7 @@ __cmpxchg_local(volatile void *ptr, unsigned long old, unsigned long new,
- #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
- #endif
--extern unsigned long arch_align_stack(unsigned long sp);
-+#define arch_align_stack(x) ((x) & ~0xfUL)
- /* Used in very early kernel initialization. */
- extern unsigned long reloc_offset(void);
+diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
+index 4a741c7..c8162227b 100644
+--- a/arch/powerpc/include/asm/thread_info.h
++++ b/arch/powerpc/include/asm/thread_info.h
+@@ -104,12 +104,14 @@ static inline struct thread_info *current_thread_info(void)
+ #define TIF_PERFMON_CTXSW     6       /* perfmon needs ctxsw calls */
+ #define TIF_SYSCALL_AUDIT     7       /* syscall auditing active */
+ #define TIF_SINGLESTEP                8       /* singlestepping active */
+-#define TIF_MEMDIE            9       /* is terminating due to OOM killer */
+ #define TIF_SECCOMP           10      /* secure computing */
+ #define TIF_RESTOREALL                11      /* Restore all regs (implies NOERROR) */
+ #define TIF_NOERROR           12      /* Force successful syscall return */
+ #define TIF_NOTIFY_RESUME     13      /* callback before returning to user */
+ #define TIF_SYSCALL_TRACEPOINT        15      /* syscall tracepoint instrumentation */
++#define TIF_MEMDIE            16      /* is terminating due to OOM killer */
++/* mask must be expressable within 16 bits to satisfy 'andi' instruction reqs */
++#define TIF_GRSEC_SETXID      9       /* update credentials on syscall entry/exit */
+ /* as above, but as bit values */
+ #define _TIF_SYSCALL_TRACE    (1<<TIF_SYSCALL_TRACE)
+@@ -127,8 +129,11 @@ static inline struct thread_info *current_thread_info(void)
+ #define _TIF_NOTIFY_RESUME    (1<<TIF_NOTIFY_RESUME)
+ #define _TIF_SYSCALL_TRACEPOINT       (1<<TIF_SYSCALL_TRACEPOINT)
+ #define _TIF_RUNLATCH         (1<<TIF_RUNLATCH)
++#define _TIF_GRSEC_SETXID     (1<<TIF_GRSEC_SETXID)
++
+ #define _TIF_SYSCALL_T_OR_A   (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
+-                               _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT)
++                               _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT \
++                               _TIF_GRSEC_SETXID)
+ #define _TIF_USER_WORK_MASK   (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
+                                _TIF_NOTIFY_RESUME)
 diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
 index bd0fb84..a42a14b 100644
 --- a/arch/powerpc/include/asm/uaccess.h
@@ -2422,10 +4148,10 @@ index bd0fb84..a42a14b 100644
  
  static inline unsigned long clear_user(void __user *addr, unsigned long size)
 diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
-index 429983c..7af363b 100644
+index 7215cc2..a9730c1 100644
 --- a/arch/powerpc/kernel/exceptions-64e.S
 +++ b/arch/powerpc/kernel/exceptions-64e.S
-@@ -587,6 +587,7 @@ storage_fault_common:
+@@ -661,6 +661,7 @@ storage_fault_common:
        std     r14,_DAR(r1)
        std     r15,_DSISR(r1)
        addi    r3,r1,STACK_FRAME_OVERHEAD
@@ -2433,7 +4159,7 @@ index 429983c..7af363b 100644
        mr      r4,r14
        mr      r5,r15
        ld      r14,PACA_EXGEN+EX_R14(r13)
-@@ -596,8 +597,7 @@ storage_fault_common:
+@@ -669,8 +670,7 @@ storage_fault_common:
        cmpdi   r3,0
        bne-    1f
        b       .ret_from_except_lite
@@ -2444,23 +4170,23 @@ index 429983c..7af363b 100644
        ld      r4,_DAR(r1)
        bl      .bad_page_fault
 diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
-index 41b02c7..05e76fb 100644
+index 8f880bc..c5bd2f3 100644
 --- a/arch/powerpc/kernel/exceptions-64s.S
 +++ b/arch/powerpc/kernel/exceptions-64s.S
-@@ -1014,10 +1014,10 @@ handle_page_fault:
+@@ -890,10 +890,10 @@ handle_page_fault:
  11:   ld      r4,_DAR(r1)
        ld      r5,_DSISR(r1)
        addi    r3,r1,STACK_FRAME_OVERHEAD
 +      bl      .save_nvgprs
        bl      .do_page_fault
        cmpdi   r3,0
-       beq+    13f
+       beq+    12f
 -      bl      .save_nvgprs
        mr      r5,r3
        addi    r3,r1,STACK_FRAME_OVERHEAD
        lwz     r4,_DAR(r1)
 diff --git a/arch/powerpc/kernel/module_32.c b/arch/powerpc/kernel/module_32.c
-index 0b6d796..d760ddb 100644
+index 2e3200c..72095ce 100644
 --- a/arch/powerpc/kernel/module_32.c
 +++ b/arch/powerpc/kernel/module_32.c
 @@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr,
@@ -2493,10 +4219,10 @@ index 0b6d796..d760ddb 100644
        /* Find this entry, or if that fails, the next avail. entry */
        while (entry->jump[0]) {
 diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
-index 8f53954..a704ad6 100644
+index 4937c96..70714b7 100644
 --- a/arch/powerpc/kernel/process.c
 +++ b/arch/powerpc/kernel/process.c
-@@ -682,8 +682,8 @@ void show_regs(struct pt_regs * regs)
+@@ -681,8 +681,8 @@ void show_regs(struct pt_regs * regs)
         * Lookup NIP late so we have the best change of getting the
         * above info out without failing
         */
@@ -2507,7 +4233,7 @@ index 8f53954..a704ad6 100644
  #endif
        show_stack(current, (unsigned long *) regs->gpr[1]);
        if (!user_mode(regs))
-@@ -1187,10 +1187,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
+@@ -1186,10 +1186,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
                newsp = stack[0];
                ip = stack[STACK_FRAME_LR_SAVE];
                if (!firstframe || ip != lr) {
@@ -2520,7 +4246,7 @@ index 8f53954..a704ad6 100644
                                       (void *)current->ret_stack[curr_frame].ret);
                                curr_frame--;
                        }
-@@ -1210,7 +1210,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
+@@ -1209,7 +1209,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
                        struct pt_regs *regs = (struct pt_regs *)
                                (sp + STACK_FRAME_OVERHEAD);
                        lr = regs->link;
@@ -2529,7 +4255,7 @@ index 8f53954..a704ad6 100644
                               regs->trap, (void *)regs->nip, (void *)lr);
                        firstframe = 1;
                }
-@@ -1285,58 +1285,3 @@ void thread_info_cache_init(void)
+@@ -1282,58 +1282,3 @@ void thread_info_cache_init(void)
  }
  
  #endif /* THREAD_SHIFT < PAGE_SHIFT */
@@ -2588,11 +4314,50 @@ index 8f53954..a704ad6 100644
 -
 -      return ret;
 -}
+diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
+index 8d8e028..c2aeb50 100644
+--- a/arch/powerpc/kernel/ptrace.c
++++ b/arch/powerpc/kernel/ptrace.c
+@@ -1702,6 +1702,10 @@ long arch_ptrace(struct task_struct *child, long request,
+       return ret;
+ }
++#ifdef CONFIG_GRKERNSEC_SETXID
++extern void gr_delayed_cred_worker(void);
++#endif
++
+ /*
+  * We must return the syscall number to actually look up in the table.
+  * This can be -1L to skip running any syscall at all.
+@@ -1712,6 +1716,11 @@ long do_syscall_trace_enter(struct pt_regs *regs)
+       secure_computing(regs->gpr[0]);
++#ifdef CONFIG_GRKERNSEC_SETXID
++      if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
++              gr_delayed_cred_worker();
++#endif
++
+       if (test_thread_flag(TIF_SYSCALL_TRACE) &&
+           tracehook_report_syscall_entry(regs))
+               /*
+@@ -1746,6 +1755,11 @@ void do_syscall_trace_leave(struct pt_regs *regs)
+ {
+       int step;
++#ifdef CONFIG_GRKERNSEC_SETXID
++      if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
++              gr_delayed_cred_worker();
++#endif
++
+       audit_syscall_exit(regs);
+       if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
 diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
-index 78b76dc..7f232ef 100644
+index 45eb998..0cb36bc 100644
 --- a/arch/powerpc/kernel/signal_32.c
 +++ b/arch/powerpc/kernel/signal_32.c
-@@ -859,7 +859,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
+@@ -861,7 +861,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
        /* Save user registers on the stack */
        frame = &rt_sf->uc.uc_mcontext;
        addr = frame;
@@ -2602,7 +4367,7 @@ index 78b76dc..7f232ef 100644
                        goto badframe;
                regs->link = current->mm->context.vdso_base + vdso32_rt_sigtramp;
 diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
-index e91c736..742ec06 100644
+index 2692efd..6673d2e 100644
 --- a/arch/powerpc/kernel/signal_64.c
 +++ b/arch/powerpc/kernel/signal_64.c
 @@ -430,7 +430,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
@@ -2615,32 +4380,33 @@ index e91c736..742ec06 100644
        } else {
                err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
 diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
-index f19d977..8ac286e 100644
+index 1589723..cefe690 100644
 --- a/arch/powerpc/kernel/traps.c
 +++ b/arch/powerpc/kernel/traps.c
-@@ -98,6 +98,8 @@ static void pmac_backlight_unblank(void)
- static inline void pmac_backlight_unblank(void) { }
- #endif
+@@ -133,6 +133,8 @@ static unsigned __kprobes long oops_begin(struct pt_regs *regs)
+       return flags;
+ }
  
 +extern void gr_handle_kernel_exploit(void);
 +
- int die(const char *str, struct pt_regs *regs, long err)
+ static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
+                              int signr)
  {
-       static struct {
-@@ -171,6 +173,8 @@ int die(const char *str, struct pt_regs *regs, long err)
+@@ -182,6 +184,9 @@ static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
+               panic("Fatal exception in interrupt");
        if (panic_on_oops)
                panic("Fatal exception");
++
 +      gr_handle_kernel_exploit();
 +
-       oops_exit();
-       do_exit(err);
+       do_exit(signr);
+ }
  
 diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
-index 142ab10..236e61a 100644
+index 9eb5b9b..e45498a 100644
 --- a/arch/powerpc/kernel/vdso.c
 +++ b/arch/powerpc/kernel/vdso.c
-@@ -36,6 +36,7 @@
+@@ -34,6 +34,7 @@
  #include <asm/firmware.h>
  #include <asm/vdso.h>
  #include <asm/vdso_datapage.h>
@@ -2648,7 +4414,7 @@ index 142ab10..236e61a 100644
  
  #include "setup.h"
  
-@@ -220,7 +221,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
+@@ -218,7 +219,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
        vdso_base = VDSO32_MBASE;
  #endif
  
@@ -2657,7 +4423,7 @@ index 142ab10..236e61a 100644
  
        /* vDSO has a problem and was disabled, just don't "enable" it for the
         * process
-@@ -240,7 +241,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
+@@ -238,7 +239,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
        vdso_base = get_unmapped_area(NULL, vdso_base,
                                      (vdso_pages << PAGE_SHIFT) +
                                      ((VDSO_ALIGNMENT - 1) & PAGE_MASK),
@@ -2702,7 +4468,7 @@ index 5eea6f3..5d10396 100644
  EXPORT_SYMBOL(copy_in_user);
  
 diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
-index 5efe8c9..db9ceef 100644
+index 08ffcf5..a0ab912 100644
 --- a/arch/powerpc/mm/fault.c
 +++ b/arch/powerpc/mm/fault.c
 @@ -32,6 +32,10 @@
@@ -2716,15 +4482,7 @@ index 5efe8c9..db9ceef 100644
  
  #include <asm/firmware.h>
  #include <asm/page.h>
-@@ -43,6 +47,7 @@
- #include <asm/tlbflush.h>
- #include <asm/siginfo.h>
- #include <mm/mmu_decl.h>
-+#include <asm/ptrace.h>
- #ifdef CONFIG_KPROBES
- static inline int notify_page_fault(struct pt_regs *regs)
-@@ -66,6 +71,33 @@ static inline int notify_page_fault(struct pt_regs *regs)
+@@ -68,6 +72,33 @@ static inline int notify_page_fault(struct pt_regs *regs)
  }
  #endif
  
@@ -2758,7 +4516,7 @@ index 5efe8c9..db9ceef 100644
  /*
   * Check whether the instruction at regs->nip is a store using
   * an update addressing form which will update r1.
-@@ -136,7 +168,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
+@@ -215,7 +246,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
         * indicate errors in DSISR but can validly be set in SRR1.
         */
        if (trap == 0x400)
@@ -2767,7 +4525,7 @@ index 5efe8c9..db9ceef 100644
        else
                is_write = error_code & DSISR_ISSTORE;
  #else
-@@ -259,7 +291,7 @@ good_area:
+@@ -366,7 +397,7 @@ good_area:
           * "undefined".  Of those that can be set, this is the only
           * one which seems bad.
           */
@@ -2776,7 +4534,7 @@ index 5efe8c9..db9ceef 100644
                  /* Guarded storage error. */
                goto bad_area;
  #endif /* CONFIG_8xx */
-@@ -274,7 +306,7 @@ good_area:
+@@ -381,7 +412,7 @@ good_area:
                 * processors use the same I/D cache coherency mechanism
                 * as embedded.
                 */
@@ -2785,7 +4543,7 @@ index 5efe8c9..db9ceef 100644
                        goto bad_area;
  #endif /* CONFIG_PPC_STD_MMU */
  
-@@ -343,6 +375,23 @@ bad_area:
+@@ -463,6 +494,23 @@ bad_area:
  bad_area_nosemaphore:
        /* User mode accesses cause a SIGSEGV */
        if (user_mode(regs)) {
@@ -2810,316 +4568,9 @@ index 5efe8c9..db9ceef 100644
                return 0;
        }
 diff --git a/arch/powerpc/mm/mmap_64.c b/arch/powerpc/mm/mmap_64.c
-index 5a783d8..c23e14b 100644
+index 67a42ed..1c7210c 100644
 --- a/arch/powerpc/mm/mmap_64.c
 +++ b/arch/powerpc/mm/mmap_64.c
-@@ -99,10 +99,22 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
-        */
-       if (mmap_is_legacy()) {
-               mm->mmap_base = TASK_UNMAPPED_BASE;
-+
-+#ifdef CONFIG_PAX_RANDMMAP
-+              if (mm->pax_flags & MF_PAX_RANDMMAP)
-+                      mm->mmap_base += mm->delta_mmap;
-+#endif
-+
-               mm->get_unmapped_area = arch_get_unmapped_area;
-               mm->unmap_area = arch_unmap_area;
-       } else {
-               mm->mmap_base = mmap_base();
-+
-+#ifdef CONFIG_PAX_RANDMMAP
-+              if (mm->pax_flags & MF_PAX_RANDMMAP)
-+                      mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
-+#endif
-+
-               mm->get_unmapped_area = arch_get_unmapped_area_topdown;
-               mm->unmap_area = arch_unmap_area_topdown;
-       }
-diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c
-index ba51948..23009d9 100644
---- a/arch/powerpc/mm/slice.c
-+++ b/arch/powerpc/mm/slice.c
-@@ -98,7 +98,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr,
-       if ((mm->task_size - len) < addr)
-               return 0;
-       vma = find_vma(mm, addr);
--      return (!vma || (addr + len) <= vma->vm_start);
-+      return check_heap_stack_gap(vma, addr, len);
- }
- static int slice_low_has_vma(struct mm_struct *mm, unsigned long slice)
-@@ -256,7 +256,7 @@ full_search:
-                               addr = _ALIGN_UP(addr + 1,  1ul << SLICE_HIGH_SHIFT);
-                       continue;
-               }
--              if (!vma || addr + len <= vma->vm_start) {
-+              if (check_heap_stack_gap(vma, addr, len)) {
-                       /*
-                        * Remember the place where we stopped the search:
-                        */
-@@ -313,10 +313,14 @@ static unsigned long slice_find_area_topdown(struct mm_struct *mm,
-               }
-       }
--      addr = mm->mmap_base;
--      while (addr > len) {
-+      if (mm->mmap_base < len)
-+              addr = -ENOMEM;
-+      else
-+              addr = mm->mmap_base - len;
-+
-+      while (!IS_ERR_VALUE(addr)) {
-               /* Go down by chunk size */
--              addr = _ALIGN_DOWN(addr - len, 1ul << pshift);
-+              addr = _ALIGN_DOWN(addr, 1ul << pshift);
-               /* Check for hit with different page size */
-               mask = slice_range_to_mask(addr, len);
-@@ -336,7 +340,7 @@ static unsigned long slice_find_area_topdown(struct mm_struct *mm,
-                * return with success:
-                */
-               vma = find_vma(mm, addr);
--              if (!vma || (addr + len) <= vma->vm_start) {
-+              if (check_heap_stack_gap(vma, addr, len)) {
-                       /* remember the address as a hint for next time */
-                       if (use_cache)
-                               mm->free_area_cache = addr;
-@@ -348,7 +352,7 @@ static unsigned long slice_find_area_topdown(struct mm_struct *mm,
-                       mm->cached_hole_size = vma->vm_start - addr;
-               /* try just below the current vma->vm_start */
--              addr = vma->vm_start;
-+              addr = skip_heap_stack_gap(vma, len);
-       }
-       /*
-@@ -426,6 +430,11 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len,
-       if (fixed && addr > (mm->task_size - len))
-               return -EINVAL;
-+#ifdef CONFIG_PAX_RANDMMAP
-+      if (!fixed && (mm->pax_flags & MF_PAX_RANDMMAP))
-+              addr = 0;
-+#endif
-+
-       /* If hint, make sure it matches our alignment restrictions */
-       if (!fixed && addr) {
-               addr = _ALIGN_UP(addr, 1ul << pshift);
-diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
-index 547f1a6..3fff354 100644
---- a/arch/s390/include/asm/elf.h
-+++ b/arch/s390/include/asm/elf.h
-@@ -162,8 +162,14 @@ extern unsigned int vdso_enabled;
-    the loader.  We need to make sure that it is out of the way of the program
-    that it will "exec", and that there is sufficient room for the brk.  */
--extern unsigned long randomize_et_dyn(unsigned long base);
--#define ELF_ET_DYN_BASE               (randomize_et_dyn(STACK_TOP / 3 * 2))
-+#define ELF_ET_DYN_BASE               (STACK_TOP / 3 * 2)
-+
-+#ifdef CONFIG_PAX_ASLR
-+#define PAX_ELF_ET_DYN_BASE   (test_thread_flag(TIF_31BIT) ? 0x10000UL : 0x80000000UL)
-+
-+#define PAX_DELTA_MMAP_LEN    (test_thread_flag(TIF_31BIT) ? 15 : 26 )
-+#define PAX_DELTA_STACK_LEN   (test_thread_flag(TIF_31BIT) ? 15 : 26 )
-+#endif
- /* This yields a mask that user programs can use to figure out what
-    instruction set this CPU supports. */
-@@ -211,7 +217,4 @@ struct linux_binprm;
- #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
- int arch_setup_additional_pages(struct linux_binprm *, int);
--extern unsigned long arch_randomize_brk(struct mm_struct *mm);
--#define arch_randomize_brk arch_randomize_brk
--
- #endif
-diff --git a/arch/s390/include/asm/system.h b/arch/s390/include/asm/system.h
-index 6582f69..b69906f 100644
---- a/arch/s390/include/asm/system.h
-+++ b/arch/s390/include/asm/system.h
-@@ -256,7 +256,7 @@ extern void (*_machine_restart)(char *command);
- extern void (*_machine_halt)(void);
- extern void (*_machine_power_off)(void);
--extern unsigned long arch_align_stack(unsigned long sp);
-+#define arch_align_stack(x) ((x) & ~0xfUL)
- static inline int tprot(unsigned long addr)
- {
-diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h
-index 2b23885..e136e31 100644
---- a/arch/s390/include/asm/uaccess.h
-+++ b/arch/s390/include/asm/uaccess.h
-@@ -235,6 +235,10 @@ static inline unsigned long __must_check
- copy_to_user(void __user *to, const void *from, unsigned long n)
- {
-       might_fault();
-+
-+      if ((long)n < 0)
-+              return n;
-+
-       if (access_ok(VERIFY_WRITE, to, n))
-               n = __copy_to_user(to, from, n);
-       return n;
-@@ -260,6 +264,9 @@ copy_to_user(void __user *to, const void *from, unsigned long n)
- static inline unsigned long __must_check
- __copy_from_user(void *to, const void __user *from, unsigned long n)
- {
-+      if ((long)n < 0)
-+              return n;
-+
-       if (__builtin_constant_p(n) && (n <= 256))
-               return uaccess.copy_from_user_small(n, from, to);
-       else
-@@ -294,6 +301,10 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
-       unsigned int sz = __compiletime_object_size(to);
-       might_fault();
-+
-+      if ((long)n < 0)
-+              return n;
-+
-       if (unlikely(sz != -1 && sz < n)) {
-               copy_from_user_overflow();
-               return n;
-diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
-index dfcb343..eda788a 100644
---- a/arch/s390/kernel/module.c
-+++ b/arch/s390/kernel/module.c
-@@ -161,11 +161,11 @@ module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
-       /* Increase core size by size of got & plt and set start
-          offsets for got and plt. */
--      me->core_size = ALIGN(me->core_size, 4);
--      me->arch.got_offset = me->core_size;
--      me->core_size += me->arch.got_size;
--      me->arch.plt_offset = me->core_size;
--      me->core_size += me->arch.plt_size;
-+      me->core_size_rw = ALIGN(me->core_size_rw, 4);
-+      me->arch.got_offset = me->core_size_rw;
-+      me->core_size_rw += me->arch.got_size;
-+      me->arch.plt_offset = me->core_size_rx;
-+      me->core_size_rx += me->arch.plt_size;
-       return 0;
- }
-@@ -242,7 +242,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
-               if (info->got_initialized == 0) {
-                       Elf_Addr *gotent;
--                      gotent = me->module_core + me->arch.got_offset +
-+                      gotent = me->module_core_rw + me->arch.got_offset +
-                               info->got_offset;
-                       *gotent = val;
-                       info->got_initialized = 1;
-@@ -266,7 +266,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
-               else if (r_type == R_390_GOTENT ||
-                        r_type == R_390_GOTPLTENT)
-                       *(unsigned int *) loc =
--                              (val + (Elf_Addr) me->module_core - loc) >> 1;
-+                              (val + (Elf_Addr) me->module_core_rw - loc) >> 1;
-               else if (r_type == R_390_GOT64 ||
-                        r_type == R_390_GOTPLT64)
-                       *(unsigned long *) loc = val;
-@@ -280,7 +280,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
-       case R_390_PLTOFF64:    /* 16 bit offset from GOT to PLT. */
-               if (info->plt_initialized == 0) {
-                       unsigned int *ip;
--                      ip = me->module_core + me->arch.plt_offset +
-+                      ip = me->module_core_rx + me->arch.plt_offset +
-                               info->plt_offset;
- #ifndef CONFIG_64BIT
-                       ip[0] = 0x0d105810; /* basr 1,0; l 1,6(1); br 1 */
-@@ -305,7 +305,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
-                              val - loc + 0xffffUL < 0x1ffffeUL) ||
-                             (r_type == R_390_PLT32DBL &&
-                              val - loc + 0xffffffffULL < 0x1fffffffeULL)))
--                              val = (Elf_Addr) me->module_core +
-+                              val = (Elf_Addr) me->module_core_rx +
-                                       me->arch.plt_offset +
-                                       info->plt_offset;
-                       val += rela->r_addend - loc;
-@@ -327,7 +327,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
-       case R_390_GOTOFF32:    /* 32 bit offset to GOT.  */
-       case R_390_GOTOFF64:    /* 64 bit offset to GOT. */
-               val = val + rela->r_addend -
--                      ((Elf_Addr) me->module_core + me->arch.got_offset);
-+                      ((Elf_Addr) me->module_core_rw + me->arch.got_offset);
-               if (r_type == R_390_GOTOFF16)
-                       *(unsigned short *) loc = val;
-               else if (r_type == R_390_GOTOFF32)
-@@ -337,7 +337,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
-               break;
-       case R_390_GOTPC:       /* 32 bit PC relative offset to GOT. */
-       case R_390_GOTPCDBL:    /* 32 bit PC rel. off. to GOT shifted by 1. */
--              val = (Elf_Addr) me->module_core + me->arch.got_offset +
-+              val = (Elf_Addr) me->module_core_rw + me->arch.got_offset +
-                       rela->r_addend - loc;
-               if (r_type == R_390_GOTPC)
-                       *(unsigned int *) loc = val;
-diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
-index 541a750..8739853 100644
---- a/arch/s390/kernel/process.c
-+++ b/arch/s390/kernel/process.c
-@@ -319,39 +319,3 @@ unsigned long get_wchan(struct task_struct *p)
-       }
-       return 0;
- }
--
--unsigned long arch_align_stack(unsigned long sp)
--{
--      if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
--              sp -= get_random_int() & ~PAGE_MASK;
--      return sp & ~0xf;
--}
--
--static inline unsigned long brk_rnd(void)
--{
--      /* 8MB for 32bit, 1GB for 64bit */
--      if (is_32bit_task())
--              return (get_random_int() & 0x7ffUL) << PAGE_SHIFT;
--      else
--              return (get_random_int() & 0x3ffffUL) << PAGE_SHIFT;
--}
--
--unsigned long arch_randomize_brk(struct mm_struct *mm)
--{
--      unsigned long ret = PAGE_ALIGN(mm->brk + brk_rnd());
--
--      if (ret < mm->brk)
--              return mm->brk;
--      return ret;
--}
--
--unsigned long randomize_et_dyn(unsigned long base)
--{
--      unsigned long ret = PAGE_ALIGN(base + brk_rnd());
--
--      if (!(current->flags & PF_RANDOMIZE))
--              return base;
--      if (ret < base)
--              return base;
--      return ret;
--}
-diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
-index 7b371c3..ad06cf1 100644
---- a/arch/s390/kernel/setup.c
-+++ b/arch/s390/kernel/setup.c
-@@ -271,7 +271,7 @@ static int __init early_parse_mem(char *p)
- }
- early_param("mem", early_parse_mem);
--unsigned int user_mode = HOME_SPACE_MODE;
-+unsigned int user_mode = SECONDARY_SPACE_MODE;
- EXPORT_SYMBOL_GPL(user_mode);
- static int set_amode_and_uaccess(unsigned long user_amode,
-diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
-index c9a9f7f..60d0315 100644
---- a/arch/s390/mm/mmap.c
-+++ b/arch/s390/mm/mmap.c
 @@ -91,10 +91,22 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
         */
        if (mmap_is_legacy()) {
@@ -3139,6 +4590,342 @@ index c9a9f7f..60d0315 100644
 +              if (mm->pax_flags & MF_PAX_RANDMMAP)
 +                      mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
 +#endif
++
+               mm->get_unmapped_area = arch_get_unmapped_area_topdown;
+               mm->unmap_area = arch_unmap_area_topdown;
+       }
+diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c
+index 73709f7..6b90313 100644
+--- a/arch/powerpc/mm/slice.c
++++ b/arch/powerpc/mm/slice.c
+@@ -98,7 +98,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr,
+       if ((mm->task_size - len) < addr)
+               return 0;
+       vma = find_vma(mm, addr);
+-      return (!vma || (addr + len) <= vma->vm_start);
++      return check_heap_stack_gap(vma, addr, len);
+ }
+ static int slice_low_has_vma(struct mm_struct *mm, unsigned long slice)
+@@ -256,7 +256,7 @@ full_search:
+                               addr = _ALIGN_UP(addr + 1,  1ul << SLICE_HIGH_SHIFT);
+                       continue;
+               }
+-              if (!vma || addr + len <= vma->vm_start) {
++              if (check_heap_stack_gap(vma, addr, len)) {
+                       /*
+                        * Remember the place where we stopped the search:
+                        */
+@@ -313,10 +313,14 @@ static unsigned long slice_find_area_topdown(struct mm_struct *mm,
+               }
+       }
+-      addr = mm->mmap_base;
+-      while (addr > len) {
++      if (mm->mmap_base < len)
++              addr = -ENOMEM;
++      else
++              addr = mm->mmap_base - len;
++
++      while (!IS_ERR_VALUE(addr)) {
+               /* Go down by chunk size */
+-              addr = _ALIGN_DOWN(addr - len, 1ul << pshift);
++              addr = _ALIGN_DOWN(addr, 1ul << pshift);
+               /* Check for hit with different page size */
+               mask = slice_range_to_mask(addr, len);
+@@ -336,7 +340,7 @@ static unsigned long slice_find_area_topdown(struct mm_struct *mm,
+                * return with success:
+                */
+               vma = find_vma(mm, addr);
+-              if (!vma || (addr + len) <= vma->vm_start) {
++              if (check_heap_stack_gap(vma, addr, len)) {
+                       /* remember the address as a hint for next time */
+                       if (use_cache)
+                               mm->free_area_cache = addr;
+@@ -348,7 +352,7 @@ static unsigned long slice_find_area_topdown(struct mm_struct *mm,
+                       mm->cached_hole_size = vma->vm_start - addr;
+               /* try just below the current vma->vm_start */
+-              addr = vma->vm_start;
++              addr = skip_heap_stack_gap(vma, len);
+       }
+       /*
+@@ -426,6 +430,11 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len,
+       if (fixed && addr > (mm->task_size - len))
+               return -EINVAL;
++#ifdef CONFIG_PAX_RANDMMAP
++      if (!fixed && (mm->pax_flags & MF_PAX_RANDMMAP))
++              addr = 0;
++#endif
++
+       /* If hint, make sure it matches our alignment restrictions */
+       if (!fixed && addr) {
+               addr = _ALIGN_UP(addr, 1ul << pshift);
+diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h
+index 748347b..81bc6c7 100644
+--- a/arch/s390/include/asm/atomic.h
++++ b/arch/s390/include/asm/atomic.h
+@@ -326,6 +326,16 @@ static inline long long atomic64_dec_if_positive(atomic64_t *v)
+ #define atomic64_dec_and_test(_v)     (atomic64_sub_return(1, _v) == 0)
+ #define atomic64_inc_not_zero(v)      atomic64_add_unless((v), 1, 0)
++#define atomic64_read_unchecked(v)            atomic64_read(v)
++#define atomic64_set_unchecked(v, i)          atomic64_set((v), (i))
++#define atomic64_add_unchecked(a, v)          atomic64_add((a), (v))
++#define atomic64_add_return_unchecked(a, v)   atomic64_add_return((a), (v))
++#define atomic64_sub_unchecked(a, v)          atomic64_sub((a), (v))
++#define atomic64_inc_unchecked(v)             atomic64_inc(v)
++#define atomic64_inc_return_unchecked(v)      atomic64_inc_return(v)
++#define atomic64_dec_unchecked(v)             atomic64_dec(v)
++#define atomic64_cmpxchg_unchecked(v, o, n)   atomic64_cmpxchg((v), (o), (n))
++
+ #define smp_mb__before_atomic_dec()   smp_mb()
+ #define smp_mb__after_atomic_dec()    smp_mb()
+ #define smp_mb__before_atomic_inc()   smp_mb()
+diff --git a/arch/s390/include/asm/cache.h b/arch/s390/include/asm/cache.h
+index 2a30d5a..5e5586f 100644
+--- a/arch/s390/include/asm/cache.h
++++ b/arch/s390/include/asm/cache.h
+@@ -11,8 +11,10 @@
+ #ifndef __ARCH_S390_CACHE_H
+ #define __ARCH_S390_CACHE_H
+-#define L1_CACHE_BYTES     256
++#include <linux/const.h>
++
+ #define L1_CACHE_SHIFT     8
++#define L1_CACHE_BYTES     (_AC(1,UL) << L1_CACHE_SHIFT)
+ #define NET_SKB_PAD      32
+ #define __read_mostly __attribute__((__section__(".data..read_mostly")))
+diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
+index c4ee39f..352881b 100644
+--- a/arch/s390/include/asm/elf.h
++++ b/arch/s390/include/asm/elf.h
+@@ -161,8 +161,14 @@ extern unsigned int vdso_enabled;
+    the loader.  We need to make sure that it is out of the way of the program
+    that it will "exec", and that there is sufficient room for the brk.  */
+-extern unsigned long randomize_et_dyn(unsigned long base);
+-#define ELF_ET_DYN_BASE               (randomize_et_dyn(STACK_TOP / 3 * 2))
++#define ELF_ET_DYN_BASE               (STACK_TOP / 3 * 2)
++
++#ifdef CONFIG_PAX_ASLR
++#define PAX_ELF_ET_DYN_BASE   (test_thread_flag(TIF_31BIT) ? 0x10000UL : 0x80000000UL)
++
++#define PAX_DELTA_MMAP_LEN    (test_thread_flag(TIF_31BIT) ? 15 : 26)
++#define PAX_DELTA_STACK_LEN   (test_thread_flag(TIF_31BIT) ? 15 : 26)
++#endif
+ /* This yields a mask that user programs can use to figure out what
+    instruction set this CPU supports. */
+@@ -210,7 +216,4 @@ struct linux_binprm;
+ #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
+ int arch_setup_additional_pages(struct linux_binprm *, int);
+-extern unsigned long arch_randomize_brk(struct mm_struct *mm);
+-#define arch_randomize_brk arch_randomize_brk
+-
+ #endif
+diff --git a/arch/s390/include/asm/exec.h b/arch/s390/include/asm/exec.h
+index c4a93d6..4d2a9b4 100644
+--- a/arch/s390/include/asm/exec.h
++++ b/arch/s390/include/asm/exec.h
+@@ -7,6 +7,6 @@
+ #ifndef __ASM_EXEC_H
+ #define __ASM_EXEC_H
+-extern unsigned long arch_align_stack(unsigned long sp);
++#define arch_align_stack(x) ((x) & ~0xfUL)
+ #endif /* __ASM_EXEC_H */
+diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h
+index 8f2cada..43072c1 100644
+--- a/arch/s390/include/asm/uaccess.h
++++ b/arch/s390/include/asm/uaccess.h
+@@ -236,6 +236,10 @@ static inline unsigned long __must_check
+ copy_to_user(void __user *to, const void *from, unsigned long n)
+ {
+       might_fault();
++
++      if ((long)n < 0)
++              return n;
++
+       if (access_ok(VERIFY_WRITE, to, n))
+               n = __copy_to_user(to, from, n);
+       return n;
+@@ -261,6 +265,9 @@ copy_to_user(void __user *to, const void *from, unsigned long n)
+ static inline unsigned long __must_check
+ __copy_from_user(void *to, const void __user *from, unsigned long n)
+ {
++      if ((long)n < 0)
++              return n;
++
+       if (__builtin_constant_p(n) && (n <= 256))
+               return uaccess.copy_from_user_small(n, from, to);
+       else
+@@ -292,10 +299,14 @@ __compiletime_warning("copy_from_user() buffer size is not provably correct")
+ static inline unsigned long __must_check
+ copy_from_user(void *to, const void __user *from, unsigned long n)
+ {
+-      unsigned int sz = __compiletime_object_size(to);
++      size_t sz = __compiletime_object_size(to);
+       might_fault();
+-      if (unlikely(sz != -1 && sz < n)) {
++
++      if ((long)n < 0)
++              return n;
++
++      if (unlikely(sz != (size_t)-1 && sz < n)) {
+               copy_from_user_overflow();
+               return n;
+       }
+diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
+index dfcb343..eda788a 100644
+--- a/arch/s390/kernel/module.c
++++ b/arch/s390/kernel/module.c
+@@ -161,11 +161,11 @@ module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
+       /* Increase core size by size of got & plt and set start
+          offsets for got and plt. */
+-      me->core_size = ALIGN(me->core_size, 4);
+-      me->arch.got_offset = me->core_size;
+-      me->core_size += me->arch.got_size;
+-      me->arch.plt_offset = me->core_size;
+-      me->core_size += me->arch.plt_size;
++      me->core_size_rw = ALIGN(me->core_size_rw, 4);
++      me->arch.got_offset = me->core_size_rw;
++      me->core_size_rw += me->arch.got_size;
++      me->arch.plt_offset = me->core_size_rx;
++      me->core_size_rx += me->arch.plt_size;
+       return 0;
+ }
+@@ -242,7 +242,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+               if (info->got_initialized == 0) {
+                       Elf_Addr *gotent;
+-                      gotent = me->module_core + me->arch.got_offset +
++                      gotent = me->module_core_rw + me->arch.got_offset +
+                               info->got_offset;
+                       *gotent = val;
+                       info->got_initialized = 1;
+@@ -266,7 +266,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+               else if (r_type == R_390_GOTENT ||
+                        r_type == R_390_GOTPLTENT)
+                       *(unsigned int *) loc =
+-                              (val + (Elf_Addr) me->module_core - loc) >> 1;
++                              (val + (Elf_Addr) me->module_core_rw - loc) >> 1;
+               else if (r_type == R_390_GOT64 ||
+                        r_type == R_390_GOTPLT64)
+                       *(unsigned long *) loc = val;
+@@ -280,7 +280,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+       case R_390_PLTOFF64:    /* 16 bit offset from GOT to PLT. */
+               if (info->plt_initialized == 0) {
+                       unsigned int *ip;
+-                      ip = me->module_core + me->arch.plt_offset +
++                      ip = me->module_core_rx + me->arch.plt_offset +
+                               info->plt_offset;
+ #ifndef CONFIG_64BIT
+                       ip[0] = 0x0d105810; /* basr 1,0; l 1,6(1); br 1 */
+@@ -305,7 +305,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+                              val - loc + 0xffffUL < 0x1ffffeUL) ||
+                             (r_type == R_390_PLT32DBL &&
+                              val - loc + 0xffffffffULL < 0x1fffffffeULL)))
+-                              val = (Elf_Addr) me->module_core +
++                              val = (Elf_Addr) me->module_core_rx +
+                                       me->arch.plt_offset +
+                                       info->plt_offset;
+                       val += rela->r_addend - loc;
+@@ -327,7 +327,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+       case R_390_GOTOFF32:    /* 32 bit offset to GOT.  */
+       case R_390_GOTOFF64:    /* 64 bit offset to GOT. */
+               val = val + rela->r_addend -
+-                      ((Elf_Addr) me->module_core + me->arch.got_offset);
++                      ((Elf_Addr) me->module_core_rw + me->arch.got_offset);
+               if (r_type == R_390_GOTOFF16)
+                       *(unsigned short *) loc = val;
+               else if (r_type == R_390_GOTOFF32)
+@@ -337,7 +337,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
+               break;
+       case R_390_GOTPC:       /* 32 bit PC relative offset to GOT. */
+       case R_390_GOTPCDBL:    /* 32 bit PC rel. off. to GOT shifted by 1. */
+-              val = (Elf_Addr) me->module_core + me->arch.got_offset +
++              val = (Elf_Addr) me->module_core_rw + me->arch.got_offset +
+                       rela->r_addend - loc;
+               if (r_type == R_390_GOTPC)
+                       *(unsigned int *) loc = val;
+diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
+index 60055ce..ee4b252 100644
+--- a/arch/s390/kernel/process.c
++++ b/arch/s390/kernel/process.c
+@@ -316,39 +316,3 @@ unsigned long get_wchan(struct task_struct *p)
+       }
+       return 0;
+ }
+-
+-unsigned long arch_align_stack(unsigned long sp)
+-{
+-      if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
+-              sp -= get_random_int() & ~PAGE_MASK;
+-      return sp & ~0xf;
+-}
+-
+-static inline unsigned long brk_rnd(void)
+-{
+-      /* 8MB for 32bit, 1GB for 64bit */
+-      if (is_32bit_task())
+-              return (get_random_int() & 0x7ffUL) << PAGE_SHIFT;
+-      else
+-              return (get_random_int() & 0x3ffffUL) << PAGE_SHIFT;
+-}
+-
+-unsigned long arch_randomize_brk(struct mm_struct *mm)
+-{
+-      unsigned long ret = PAGE_ALIGN(mm->brk + brk_rnd());
+-
+-      if (ret < mm->brk)
+-              return mm->brk;
+-      return ret;
+-}
+-
+-unsigned long randomize_et_dyn(unsigned long base)
+-{
+-      unsigned long ret = PAGE_ALIGN(base + brk_rnd());
+-
+-      if (!(current->flags & PF_RANDOMIZE))
+-              return base;
+-      if (ret < base)
+-              return base;
+-      return ret;
+-}
+diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
+index 2857c48..d047481 100644
+--- a/arch/s390/mm/mmap.c
++++ b/arch/s390/mm/mmap.c
+@@ -92,10 +92,22 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
+        */
+       if (mmap_is_legacy()) {
+               mm->mmap_base = TASK_UNMAPPED_BASE;
++
++#ifdef CONFIG_PAX_RANDMMAP
++              if (mm->pax_flags & MF_PAX_RANDMMAP)
++                      mm->mmap_base += mm->delta_mmap;
++#endif
++
+               mm->get_unmapped_area = arch_get_unmapped_area;
+               mm->unmap_area = arch_unmap_area;
+       } else {
+               mm->mmap_base = mmap_base();
++
++#ifdef CONFIG_PAX_RANDMMAP
++              if (mm->pax_flags & MF_PAX_RANDMMAP)
++                      mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
++#endif
 +
                mm->get_unmapped_area = arch_get_unmapped_area_topdown;
                mm->unmap_area = arch_unmap_area_topdown;
@@ -3166,24 +4953,38 @@ index c9a9f7f..60d0315 100644
                mm->get_unmapped_area = s390_get_unmapped_area_topdown;
                mm->unmap_area = arch_unmap_area_topdown;
        }
-diff --git a/arch/score/include/asm/system.h b/arch/score/include/asm/system.h
-index 589d5c7..669e274 100644
---- a/arch/score/include/asm/system.h
-+++ b/arch/score/include/asm/system.h
-@@ -17,7 +17,7 @@ do {                                                         \
- #define finish_arch_switch(prev)      do {} while (0)
+diff --git a/arch/score/include/asm/cache.h b/arch/score/include/asm/cache.h
+index ae3d59f..f65f075 100644
+--- a/arch/score/include/asm/cache.h
++++ b/arch/score/include/asm/cache.h
+@@ -1,7 +1,9 @@
+ #ifndef _ASM_SCORE_CACHE_H
+ #define _ASM_SCORE_CACHE_H
++#include <linux/const.h>
++
+ #define L1_CACHE_SHIFT                4
+-#define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)
+ #endif /* _ASM_SCORE_CACHE_H */
+diff --git a/arch/score/include/asm/exec.h b/arch/score/include/asm/exec.h
+index f9f3cd5..58ff438 100644
+--- a/arch/score/include/asm/exec.h
++++ b/arch/score/include/asm/exec.h
+@@ -1,6 +1,6 @@
+ #ifndef _ASM_SCORE_EXEC_H
+ #define _ASM_SCORE_EXEC_H
  
- typedef void (*vi_handler_t)(void);
 -extern unsigned long arch_align_stack(unsigned long sp);
 +#define arch_align_stack(x) (x)
  
- #define mb()          barrier()
- #define rmb()         barrier()
+ #endif /* _ASM_SCORE_EXEC_H */
 diff --git a/arch/score/kernel/process.c b/arch/score/kernel/process.c
-index 25d0803..d6c8e36 100644
+index 2707023..1c2a3b7 100644
 --- a/arch/score/kernel/process.c
 +++ b/arch/score/kernel/process.c
-@@ -161,8 +161,3 @@ unsigned long get_wchan(struct task_struct *task)
+@@ -159,8 +159,3 @@ unsigned long get_wchan(struct task_struct *task)
  
        return task_pt_regs(task)->cp0_epc;
  }
@@ -3192,6 +4993,23 @@ index 25d0803..d6c8e36 100644
 -{
 -      return sp;
 -}
+diff --git a/arch/sh/include/asm/cache.h b/arch/sh/include/asm/cache.h
+index ef9e555..331bd29 100644
+--- a/arch/sh/include/asm/cache.h
++++ b/arch/sh/include/asm/cache.h
+@@ -9,10 +9,11 @@
+ #define __ASM_SH_CACHE_H
+ #ifdef __KERNEL__
++#include <linux/const.h>
+ #include <linux/init.h>
+ #include <cpu/cache.h>
+-#define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)
+ #define __read_mostly __attribute__((__section__(".data..read_mostly")))
 diff --git a/arch/sh/mm/mmap.c b/arch/sh/mm/mmap.c
 index afeb710..d1d1289 100644
 --- a/arch/sh/mm/mmap.c
@@ -3271,7 +5089,7 @@ index afeb710..d1d1289 100644
  bottomup:
        /*
 diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile
-index ad1fb5d..fc5315b 100644
+index eddcfb3..b117d90 100644
 --- a/arch/sparc/Makefile
 +++ b/arch/sparc/Makefile
 @@ -75,7 +75,7 @@ drivers-$(CONFIG_OPROFILE)   += arch/sparc/oprofile/
@@ -3284,7 +5102,7 @@ index ad1fb5d..fc5315b 100644
  VMLINUX_MAIN += $(drivers-y) $(net-y)
  
 diff --git a/arch/sparc/include/asm/atomic_64.h b/arch/sparc/include/asm/atomic_64.h
-index 9f421df..b81fc12 100644
+index ce35a1c..2e7b8f9 100644
 --- a/arch/sparc/include/asm/atomic_64.h
 +++ b/arch/sparc/include/asm/atomic_64.h
 @@ -14,18 +14,40 @@
@@ -3433,7 +5251,7 @@ index 9f421df..b81fc12 100644
                if (likely(old == c))
                        break;
                c = old;
-@@ -89,20 +166,35 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
+@@ -88,20 +165,35 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
  #define atomic64_cmpxchg(v, o, n) \
        ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
  #define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
@@ -3474,15 +5292,20 @@ index 9f421df..b81fc12 100644
  
  #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
 diff --git a/arch/sparc/include/asm/cache.h b/arch/sparc/include/asm/cache.h
-index 69358b5..17b4745 100644
+index 69358b5..9d0d492 100644
 --- a/arch/sparc/include/asm/cache.h
 +++ b/arch/sparc/include/asm/cache.h
-@@ -10,7 +10,7 @@
+@@ -7,10 +7,12 @@
+ #ifndef _SPARC_CACHE_H
+ #define _SPARC_CACHE_H
++#include <linux/const.h>
++
  #define ARCH_SLAB_MINALIGN    __alignof__(unsigned long long)
  
  #define L1_CACHE_SHIFT 5
 -#define L1_CACHE_BYTES 32
-+#define L1_CACHE_BYTES 32UL
++#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
  
  #ifdef CONFIG_SPARC32
  #define SMP_CACHE_BYTES_SHIFT 5
@@ -3522,8 +5345,32 @@ index 7df8b7f..4946269 100644
  extern unsigned long sparc64_elf_hwcap;
  #define ELF_HWCAP     sparc64_elf_hwcap
  
+diff --git a/arch/sparc/include/asm/pgalloc_32.h b/arch/sparc/include/asm/pgalloc_32.h
+index ca2b344..c6084f89 100644
+--- a/arch/sparc/include/asm/pgalloc_32.h
++++ b/arch/sparc/include/asm/pgalloc_32.h
+@@ -37,6 +37,7 @@ BTFIXUPDEF_CALL(void, free_pgd_fast, pgd_t *)
+ BTFIXUPDEF_CALL(void, pgd_set, pgd_t *, pmd_t *)
+ #define pgd_set(pgdp,pmdp) BTFIXUP_CALL(pgd_set)(pgdp,pmdp)
+ #define pgd_populate(MM, PGD, PMD)      pgd_set(PGD, PMD)
++#define pgd_populate_kernel(MM, PGD, PMD)      pgd_populate((MM), (PGD), (PMD))
+ BTFIXUPDEF_CALL(pmd_t *, pmd_alloc_one, struct mm_struct *, unsigned long)
+ #define pmd_alloc_one(mm, address)    BTFIXUP_CALL(pmd_alloc_one)(mm, address)
+diff --git a/arch/sparc/include/asm/pgalloc_64.h b/arch/sparc/include/asm/pgalloc_64.h
+index 40b2d7a..22a665b 100644
+--- a/arch/sparc/include/asm/pgalloc_64.h
++++ b/arch/sparc/include/asm/pgalloc_64.h
+@@ -26,6 +26,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
+ }
+ #define pud_populate(MM, PUD, PMD)    pud_set(PUD, PMD)
++#define pud_populate_kernel(MM, PUD, PMD)     pud_populate((MM), (PUD), (PMD))
+ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr)
+ {
 diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
-index 5b31a8e..1d92567 100644
+index 3d71018..48a11c5 100644
 --- a/arch/sparc/include/asm/pgtable_32.h
 +++ b/arch/sparc/include/asm/pgtable_32.h
 @@ -45,6 +45,13 @@ BTFIXUPDEF_SIMM13(user_ptrs_per_pgd)
@@ -3677,7 +5524,7 @@ index 9689176..63c18ea 100644
        unsigned long mask, tmp1, tmp2, result;
  
 diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h
-index fa57532..e1a4c53 100644
+index c2a1080..21ed218 100644
 --- a/arch/sparc/include/asm/thread_info_32.h
 +++ b/arch/sparc/include/asm/thread_info_32.h
 @@ -50,6 +50,8 @@ struct thread_info {
@@ -3690,7 +5537,7 @@ index fa57532..e1a4c53 100644
  
  /*
 diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h
-index 60d86be..952dea1 100644
+index 01d057f..13a7d2f 100644
 --- a/arch/sparc/include/asm/thread_info_64.h
 +++ b/arch/sparc/include/asm/thread_info_64.h
 @@ -63,6 +63,8 @@ struct thread_info {
@@ -3702,6 +5549,38 @@ index 60d86be..952dea1 100644
        unsigned long           fpregs[0] __attribute__ ((aligned(64)));
  };
  
+@@ -214,10 +216,11 @@ register struct thread_info *current_thread_info_reg asm("g6");
+ #define TIF_UNALIGNED         5       /* allowed to do unaligned accesses */
+ /* flag bit 6 is available */
+ #define TIF_32BIT             7       /* 32-bit binary */
+-/* flag bit 8 is available */
++#define TIF_GRSEC_SETXID      8       /* update credentials on syscall entry/exit */
+ #define TIF_SECCOMP           9       /* secure computing */
+ #define TIF_SYSCALL_AUDIT     10      /* syscall auditing active */
+ #define TIF_SYSCALL_TRACEPOINT        11      /* syscall tracepoint instrumentation */
++
+ /* NOTE: Thread flags >= 12 should be ones we have no interest
+  *       in using in assembly, else we can't use the mask as
+  *       an immediate value in instructions such as andcc.
+@@ -236,12 +239,18 @@ register struct thread_info *current_thread_info_reg asm("g6");
+ #define _TIF_SYSCALL_AUDIT    (1<<TIF_SYSCALL_AUDIT)
+ #define _TIF_SYSCALL_TRACEPOINT       (1<<TIF_SYSCALL_TRACEPOINT)
+ #define _TIF_POLLING_NRFLAG   (1<<TIF_POLLING_NRFLAG)
++#define _TIF_GRSEC_SETXID     (1<<TIF_GRSEC_SETXID)
+ #define _TIF_USER_WORK_MASK   ((0xff << TI_FLAG_WSAVED_SHIFT) | \
+                                _TIF_DO_NOTIFY_RESUME_MASK | \
+                                _TIF_NEED_RESCHED)
+ #define _TIF_DO_NOTIFY_RESUME_MASK    (_TIF_NOTIFY_RESUME | _TIF_SIGPENDING)
++#define _TIF_WORK_SYSCALL             \
++      (_TIF_SYSCALL_TRACE | _TIF_SECCOMP | _TIF_SYSCALL_AUDIT | \
++       _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
++
++
+ /*
+  * Thread-synchronous status.
+  *
 diff --git a/arch/sparc/include/asm/uaccess.h b/arch/sparc/include/asm/uaccess.h
 index e88fbe5..96b0ce5 100644
 --- a/arch/sparc/include/asm/uaccess.h
@@ -3776,7 +5655,7 @@ index 8303ac4..07f333d 100644
  }
  
 diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h
-index 3e1449f..5293a0e 100644
+index a1091afb..380228e 100644
 --- a/arch/sparc/include/asm/uaccess_64.h
 +++ b/arch/sparc/include/asm/uaccess_64.h
 @@ -10,6 +10,7 @@
@@ -3785,9 +5664,9 @@ index 3e1449f..5293a0e 100644
  #include <linux/thread_info.h>
 +#include <linux/kernel.h>
  #include <asm/asi.h>
- #include <asm/system.h>
  #include <asm/spitfire.h>
-@@ -213,8 +214,15 @@ extern unsigned long copy_from_user_fixup(void *to, const void __user *from,
+ #include <asm-generic/uaccess-unaligned.h>
+@@ -212,8 +213,15 @@ extern unsigned long copy_from_user_fixup(void *to, const void __user *from,
  static inline unsigned long __must_check
  copy_from_user(void *to, const void __user *from, unsigned long size)
  {
@@ -3804,7 +5683,7 @@ index 3e1449f..5293a0e 100644
        if (unlikely(ret))
                ret = copy_from_user_fixup(to, from, size);
  
-@@ -230,8 +238,15 @@ extern unsigned long copy_to_user_fixup(void __user *to, const void *from,
+@@ -229,8 +237,15 @@ extern unsigned long copy_to_user_fixup(void __user *to, const void *from,
  static inline unsigned long __must_check
  copy_to_user(void __user *to, const void *from, unsigned long size)
  {
@@ -3835,10 +5714,10 @@ index cb85458..e063f17 100644
  extra-y     := head_$(BITS).o
  extra-y     += init_task.o
 diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c
-index f793742..4d880af 100644
+index efa0754..74b03fe 100644
 --- a/arch/sparc/kernel/process_32.c
 +++ b/arch/sparc/kernel/process_32.c
-@@ -204,7 +204,7 @@ void __show_backtrace(unsigned long fp)
+@@ -200,7 +200,7 @@ void __show_backtrace(unsigned long fp)
                       rw->ins[4], rw->ins[5],
                       rw->ins[6],
                       rw->ins[7]);
@@ -3847,7 +5726,7 @@ index f793742..4d880af 100644
                rw = (struct reg_window32 *) rw->ins[6];
        }
        spin_unlock_irqrestore(&sparc_backtrace_lock, flags);
-@@ -271,14 +271,14 @@ void show_regs(struct pt_regs *r)
+@@ -267,14 +267,14 @@ void show_regs(struct pt_regs *r)
  
          printk("PSR: %08lx PC: %08lx NPC: %08lx Y: %08lx    %s\n",
               r->psr, r->pc, r->npc, r->y, print_tainted());
@@ -3864,7 +5743,7 @@ index f793742..4d880af 100644
  
        printk("%%L: %08lx %08lx  %08lx %08lx  %08lx %08lx  %08lx %08lx\n",
               rw->locals[0], rw->locals[1], rw->locals[2], rw->locals[3],
-@@ -313,7 +313,7 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
+@@ -309,7 +309,7 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
                rw = (struct reg_window32 *) fp;
                pc = rw->ins[7];
                printk("[%08lx : ", pc);
@@ -3874,10 +5753,10 @@ index f793742..4d880af 100644
        } while (++count < 16);
        printk("\n");
 diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
-index d959cd0..7b42812 100644
+index aff0c72..9067b39 100644
 --- a/arch/sparc/kernel/process_64.c
 +++ b/arch/sparc/kernel/process_64.c
-@@ -180,14 +180,14 @@ static void show_regwindow(struct pt_regs *regs)
+@@ -179,14 +179,14 @@ static void show_regwindow(struct pt_regs *regs)
        printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n",
               rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]);
        if (regs->tstate & TSTATE_PRIV)
@@ -3894,7 +5773,7 @@ index d959cd0..7b42812 100644
        printk("g0: %016lx g1: %016lx g2: %016lx g3: %016lx\n",
               regs->u_regs[0], regs->u_regs[1], regs->u_regs[2],
               regs->u_regs[3]);
-@@ -200,7 +200,7 @@ void show_regs(struct pt_regs *regs)
+@@ -199,7 +199,7 @@ void show_regs(struct pt_regs *regs)
        printk("o4: %016lx o5: %016lx sp: %016lx ret_pc: %016lx\n",
               regs->u_regs[12], regs->u_regs[13], regs->u_regs[14],
               regs->u_regs[15]);
@@ -3903,7 +5782,7 @@ index d959cd0..7b42812 100644
        show_regwindow(regs);
        show_stack(current, (unsigned long *) regs->u_regs[UREG_FP]);
  }
-@@ -285,7 +285,7 @@ void arch_trigger_all_cpu_backtrace(void)
+@@ -284,7 +284,7 @@ void arch_trigger_all_cpu_backtrace(void)
                       ((tp && tp->task) ? tp->task->pid : -1));
  
                if (gp->tstate & TSTATE_PRIV) {
@@ -3912,6 +5791,45 @@ index d959cd0..7b42812 100644
                               (void *) gp->tpc,
                               (void *) gp->o7,
                               (void *) gp->i7,
+diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c
+index 6f97c07..b1300ec 100644
+--- a/arch/sparc/kernel/ptrace_64.c
++++ b/arch/sparc/kernel/ptrace_64.c
+@@ -1057,6 +1057,10 @@ long arch_ptrace(struct task_struct *child, long request,
+       return ret;
+ }
++#ifdef CONFIG_GRKERNSEC_SETXID
++extern void gr_delayed_cred_worker(void);
++#endif
++
+ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
+ {
+       int ret = 0;
+@@ -1064,6 +1068,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
+       /* do the secure computing check first */
+       secure_computing(regs->u_regs[UREG_G1]);
++#ifdef CONFIG_GRKERNSEC_SETXID
++      if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
++              gr_delayed_cred_worker();
++#endif
++
+       if (test_thread_flag(TIF_SYSCALL_TRACE))
+               ret = tracehook_report_syscall_entry(regs);
+@@ -1084,6 +1093,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
+ asmlinkage void syscall_trace_leave(struct pt_regs *regs)
+ {
++#ifdef CONFIG_GRKERNSEC_SETXID
++      if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
++              gr_delayed_cred_worker();
++#endif
++
+       audit_syscall_exit(regs);
+       if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
 diff --git a/arch/sparc/kernel/sys_sparc_32.c b/arch/sparc/kernel/sys_sparc_32.c
 index 42b282f..28ce9f2 100644
 --- a/arch/sparc/kernel/sys_sparc_32.c
@@ -3935,7 +5853,7 @@ index 42b282f..28ce9f2 100644
                addr = vmm->vm_end;
                if (flags & MAP_SHARED)
 diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
-index 908b47a..aa9e584 100644
+index 3ee51f1..2ba4913 100644
 --- a/arch/sparc/kernel/sys_sparc_64.c
 +++ b/arch/sparc/kernel/sys_sparc_64.c
 @@ -124,7 +124,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
@@ -4085,8 +6003,57 @@ index 908b47a..aa9e584 100644
                mm->get_unmapped_area = arch_get_unmapped_area_topdown;
                mm->unmap_area = arch_unmap_area_topdown;
        }
+diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
+index 1d7e274..b39c527 100644
+--- a/arch/sparc/kernel/syscalls.S
++++ b/arch/sparc/kernel/syscalls.S
+@@ -62,7 +62,7 @@ sys32_rt_sigreturn:
+ #endif
+       .align  32
+ 1:    ldx     [%g6 + TI_FLAGS], %l5
+-      andcc   %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
++      andcc   %l5, _TIF_WORK_SYSCALL, %g0
+       be,pt   %icc, rtrap
+        nop
+       call    syscall_trace_leave
+@@ -179,7 +179,7 @@ linux_sparc_syscall32:
+       srl     %i5, 0, %o5                             ! IEU1
+       srl     %i2, 0, %o2                             ! IEU0  Group
+-      andcc   %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
++      andcc   %l0, _TIF_WORK_SYSCALL, %g0
+       bne,pn  %icc, linux_syscall_trace32             ! CTI
+        mov    %i0, %l5                                ! IEU1
+       call    %l7                                     ! CTI   Group brk forced
+@@ -202,7 +202,7 @@ linux_sparc_syscall:
+       mov     %i3, %o3                                ! IEU1
+       mov     %i4, %o4                                ! IEU0  Group
+-      andcc   %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
++      andcc   %l0, _TIF_WORK_SYSCALL, %g0
+       bne,pn  %icc, linux_syscall_trace               ! CTI   Group
+        mov    %i0, %l5                                ! IEU0
+ 2:    call    %l7                                     ! CTI   Group brk forced
+@@ -226,7 +226,7 @@ ret_sys_call:
+       cmp     %o0, -ERESTART_RESTARTBLOCK
+       bgeu,pn %xcc, 1f
+-       andcc  %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %l6
++       andcc  %l0, _TIF_WORK_SYSCALL, %l6
+ 80:
+       /* System call success, clear Carry condition code. */
+       andn    %g3, %g2, %g3
+@@ -241,7 +241,7 @@ ret_sys_call:
+       /* System call failure, set Carry condition code.
+        * Also, get abs(errno) to return to the process.
+        */
+-      andcc   %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %l6  
++      andcc   %l0, _TIF_WORK_SYSCALL, %l6     
+       sub     %g0, %o0, %o0
+       or      %g3, %g2, %g3
+       stx     %o0, [%sp + PTREGS_OFF + PT_V9_I0]
 diff --git a/arch/sparc/kernel/traps_32.c b/arch/sparc/kernel/traps_32.c
-index c0490c7..84959d1 100644
+index d2de213..6b22bc3 100644
 --- a/arch/sparc/kernel/traps_32.c
 +++ b/arch/sparc/kernel/traps_32.c
 @@ -44,6 +44,8 @@ static void instruction_dump(unsigned long *pc)
@@ -4119,7 +6086,7 @@ index c0490c7..84959d1 100644
  }
  
 diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
-index 0cbdaa4..438e4c9 100644
+index c72fdf5..743a344 100644
 --- a/arch/sparc/kernel/traps_64.c
 +++ b/arch/sparc/kernel/traps_64.c
 @@ -75,7 +75,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
@@ -4260,7 +6227,7 @@ index 0cbdaa4..438e4c9 100644
  }
  EXPORT_SYMBOL(die_if_kernel);
 diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c
-index 76e4ac1..78f8bb1 100644
+index dae85bc..af1e19d 100644
 --- a/arch/sparc/kernel/unaligned_64.c
 +++ b/arch/sparc/kernel/unaligned_64.c
 @@ -279,7 +279,7 @@ static void log_unaligned(struct pt_regs *regs)
@@ -4524,10 +6491,10 @@ index 59186e0..f747d7a 100644
        cmp     %g1, %g7
        bne,pn  %xcc, BACKOFF_LABEL(2f, 1b)
 diff --git a/arch/sparc/lib/ksyms.c b/arch/sparc/lib/ksyms.c
-index 1b30bb3..b4a16c7 100644
+index f73c224..662af10 100644
 --- a/arch/sparc/lib/ksyms.c
 +++ b/arch/sparc/lib/ksyms.c
-@@ -142,12 +142,18 @@ EXPORT_SYMBOL(__downgrade_write);
+@@ -136,12 +136,18 @@ EXPORT_SYMBOL(__downgrade_write);
  
  /* Atomic counter implementation. */
  EXPORT_SYMBOL(atomic_add);
@@ -4547,7 +6514,7 @@ index 1b30bb3..b4a16c7 100644
  
  /* Atomic bit operations. */
 diff --git a/arch/sparc/mm/Makefile b/arch/sparc/mm/Makefile
-index e3cda21..a68e4cb 100644
+index 301421c..e2535d1 100644
 --- a/arch/sparc/mm/Makefile
 +++ b/arch/sparc/mm/Makefile
 @@ -2,7 +2,7 @@
@@ -4560,20 +6527,20 @@ index e3cda21..a68e4cb 100644
  obj-$(CONFIG_SPARC64)   += ultra.o tlb.o tsb.o gup.o
  obj-y                   += fault_$(BITS).o
 diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
-index aa1c1b1..f93e28f 100644
+index df3155a..b6e32fa 100644
 --- a/arch/sparc/mm/fault_32.c
 +++ b/arch/sparc/mm/fault_32.c
-@@ -22,6 +22,9 @@
+@@ -21,6 +21,9 @@
+ #include <linux/perf_event.h>
  #include <linux/interrupt.h>
- #include <linux/module.h>
  #include <linux/kdebug.h>
 +#include <linux/slab.h>
 +#include <linux/pagemap.h>
 +#include <linux/compiler.h>
  
- #include <asm/system.h>
  #include <asm/page.h>
-@@ -209,6 +212,268 @@ static unsigned long compute_si_addr(struct pt_regs *regs, int text_fault)
+ #include <asm/pgtable.h>
+@@ -207,6 +210,277 @@ static unsigned long compute_si_addr(struct pt_regs *regs, int text_fault)
        return safe_compute_effective_address(regs, insn);
  }
  
@@ -4664,40 +6631,49 @@ index aa1c1b1..f93e28f 100644
 +              }
 +      } while (0);
 +
-+      { /* PaX: patched PLT emulation #2 */
++      do { /* PaX: patched PLT emulation #2 */
 +              unsigned int ba;
 +
 +              err = get_user(ba, (unsigned int *)regs->pc);
 +
-+              if (!err && (ba & 0xFFC00000U) == 0x30800000U) {
++              if (err)
++                      break;
++
++              if ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30480000U) {
 +                      unsigned int addr;
 +
-+                      addr = regs->pc + ((((ba | 0xFFC00000U) ^ 0x00200000U) + 0x00200000U) << 2);
++                      if ((ba & 0xFFC00000U) == 0x30800000U)
++                              addr = regs->pc + ((((ba | 0xFFC00000U) ^ 0x00200000U) + 0x00200000U) << 2);
++                      else
++                              addr = regs->pc + ((((ba | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
 +                      regs->pc = addr;
 +                      regs->npc = addr+4;
 +                      return 2;
 +              }
-+      }
++      } while (0);
 +
 +      do { /* PaX: patched PLT emulation #3 */
-+              unsigned int sethi, jmpl, nop;
++              unsigned int sethi, bajmpl, nop;
 +
 +              err = get_user(sethi, (unsigned int *)regs->pc);
-+              err |= get_user(jmpl, (unsigned int *)(regs->pc+4));
++              err |= get_user(bajmpl, (unsigned int *)(regs->pc+4));
 +              err |= get_user(nop, (unsigned int *)(regs->pc+8));
 +
 +              if (err)
 +                      break;
 +
 +              if ((sethi & 0xFFC00000U) == 0x03000000U &&
-+                  (jmpl & 0xFFFFE000U) == 0x81C06000U &&
++                  ((bajmpl & 0xFFFFE000U) == 0x81C06000U || (bajmpl & 0xFFF80000U) == 0x30480000U) &&
 +                  nop == 0x01000000U)
 +              {
 +                      unsigned int addr;
 +
 +                      addr = (sethi & 0x003FFFFFU) << 10;
 +                      regs->u_regs[UREG_G1] = addr;
-+                      addr += (((jmpl | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
++                      if ((bajmpl & 0xFFFFE000U) == 0x81C06000U)
++                              addr += (((jmpl | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
++                      else
++                              addr = regs->pc + ((((bajmpl | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
 +                      regs->pc = addr;
 +                      regs->npc = addr+4;
 +                      return 2;
@@ -4842,7 +6818,7 @@ index aa1c1b1..f93e28f 100644
  static noinline void do_fault_siginfo(int code, int sig, struct pt_regs *regs,
                                      int text_fault)
  {
-@@ -281,6 +546,24 @@ good_area:
+@@ -282,6 +556,24 @@ good_area:
                if(!(vma->vm_flags & VM_WRITE))
                        goto bad_area;
        } else {
@@ -4868,7 +6844,7 @@ index aa1c1b1..f93e28f 100644
                if(!(vma->vm_flags & (VM_READ | VM_EXEC)))
                        goto bad_area;
 diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
-index 504c062..6fcb9c6 100644
+index 1fe0429..8dd5dd5 100644
 --- a/arch/sparc/mm/fault_64.c
 +++ b/arch/sparc/mm/fault_64.c
 @@ -21,6 +21,9 @@
@@ -4890,7 +6866,7 @@ index 504c062..6fcb9c6 100644
        printk(KERN_CRIT "OOPS: Fault was to vaddr[%lx]\n", vaddr);
        dump_stack();
        unhandled_fault(regs->tpc, current, regs);
-@@ -272,6 +275,457 @@ static void noinline __kprobes bogus_32bit_fault_address(struct pt_regs *regs,
+@@ -272,6 +275,466 @@ static void noinline __kprobes bogus_32bit_fault_address(struct pt_regs *regs,
        show_regs(regs);
  }
  
@@ -4985,15 +6961,21 @@ index 504c062..6fcb9c6 100644
 +              }
 +      } while (0);
 +
-+      { /* PaX: patched PLT emulation #2 */
++      do { /* PaX: patched PLT emulation #2 */
 +              unsigned int ba;
 +
 +              err = get_user(ba, (unsigned int *)regs->tpc);
 +
-+              if (!err && (ba & 0xFFC00000U) == 0x30800000U) {
++              if (err)
++                      break;
++
++              if ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30480000U) {
 +                      unsigned long addr;
 +
-+                      addr = regs->tpc + ((((ba | 0xFFFFFFFFFFC00000UL) ^ 0x00200000UL) + 0x00200000UL) << 2);
++                      if ((ba & 0xFFC00000U) == 0x30800000U)
++                              addr = regs->tpc + ((((ba | 0xFFFFFFFFFFC00000UL) ^ 0x00200000UL) + 0x00200000UL) << 2);
++                      else
++                              addr = regs->tpc + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
 +
 +                      if (test_thread_flag(TIF_32BIT))
 +                              addr &= 0xFFFFFFFFUL;
@@ -5002,27 +6984,30 @@ index 504c062..6fcb9c6 100644
 +                      regs->tnpc = addr+4;
 +                      return 2;
 +              }
-+      }
++      } while (0);
 +
 +      do { /* PaX: patched PLT emulation #3 */
-+              unsigned int sethi, jmpl, nop;
++              unsigned int sethi, bajmpl, nop;
 +
 +              err = get_user(sethi, (unsigned int *)regs->tpc);
-+              err |= get_user(jmpl, (unsigned int *)(regs->tpc+4));
++              err |= get_user(bajmpl, (unsigned int *)(regs->tpc+4));
 +              err |= get_user(nop, (unsigned int *)(regs->tpc+8));
 +
 +              if (err)
 +                      break;
 +
 +              if ((sethi & 0xFFC00000U) == 0x03000000U &&
-+                  (jmpl & 0xFFFFE000U) == 0x81C06000U &&
++                  ((bajmpl & 0xFFFFE000U) == 0x81C06000U || (bajmpl & 0xFFF80000U) == 0x30480000U) &&
 +                  nop == 0x01000000U)
 +              {
 +                      unsigned long addr;
 +
 +                      addr = (sethi & 0x003FFFFFU) << 10;
 +                      regs->u_regs[UREG_G1] = addr;
-+                      addr += (((jmpl | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
++                      if ((bajmpl & 0xFFFFE000U) == 0x81C06000U)
++                              addr += (((bajmpl | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
++                      else
++                              addr = regs->tpc + ((((bajmpl | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
 +
 +                      if (test_thread_flag(TIF_32BIT))
 +                              addr &= 0xFFFFFFFFUL;
@@ -5348,7 +7333,7 @@ index 504c062..6fcb9c6 100644
  asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
  {
        struct mm_struct *mm = current->mm;
-@@ -340,6 +794,29 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
+@@ -343,6 +806,29 @@ retry:
        if (!vma)
                goto bad_area;
  
@@ -5379,10 +7364,10 @@ index 504c062..6fcb9c6 100644
         * load/store/atomic was a write or not, it only says that there
         * was no match.  So in such a case we (carefully) read the
 diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c
-index f4e9764..5682724 100644
+index 07e1453..0a7d9e9 100644
 --- a/arch/sparc/mm/hugetlbpage.c
 +++ b/arch/sparc/mm/hugetlbpage.c
-@@ -68,7 +68,7 @@ full_search:
+@@ -67,7 +67,7 @@ full_search:
                        }
                        return -ENOMEM;
                }
@@ -5391,7 +7376,7 @@ index f4e9764..5682724 100644
                        /*
                         * Remember the place where we stopped the search:
                         */
-@@ -107,7 +107,7 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -106,7 +106,7 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        /* make sure it can fit in the remaining address space */
        if (likely(addr > len)) {
                vma = find_vma(mm, addr-len);
@@ -5400,7 +7385,7 @@ index f4e9764..5682724 100644
                        /* remember the address as a hint for next time */
                        return (mm->free_area_cache = addr-len);
                }
-@@ -116,16 +116,17 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -115,16 +115,17 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        if (unlikely(mm->mmap_base < len))
                goto bottomup;
  
@@ -5420,7 +7405,7 @@ index f4e9764..5682724 100644
                        /* remember the address as a hint for next time */
                        return (mm->free_area_cache = addr);
                }
-@@ -135,8 +136,8 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -134,8 +135,8 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
                        mm->cached_hole_size = vma->vm_start - addr;
  
                /* try just below the current vma->vm_start */
@@ -5431,7 +7416,7 @@ index f4e9764..5682724 100644
  
  bottomup:
        /*
-@@ -182,8 +183,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
+@@ -181,8 +182,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
        if (addr) {
                addr = ALIGN(addr, HPAGE_SIZE);
                vma = find_vma(mm, addr);
@@ -5442,10 +7427,10 @@ index f4e9764..5682724 100644
        }
        if (mm->get_unmapped_area == arch_get_unmapped_area)
 diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
-index 7b00de6..78239f4 100644
+index c5f9021..7591bae 100644
 --- a/arch/sparc/mm/init_32.c
 +++ b/arch/sparc/mm/init_32.c
-@@ -316,6 +316,9 @@ extern void device_scan(void);
+@@ -315,6 +315,9 @@ extern void device_scan(void);
  pgprot_t PAGE_SHARED __read_mostly;
  EXPORT_SYMBOL(PAGE_SHARED);
  
@@ -5455,7 +7440,7 @@ index 7b00de6..78239f4 100644
  void __init paging_init(void)
  {
        switch(sparc_cpu_model) {
-@@ -344,17 +347,17 @@ void __init paging_init(void)
+@@ -343,17 +346,17 @@ void __init paging_init(void)
  
        /* Initialize the protection map with non-constant, MMU dependent values. */
        protection_map[0] = PAGE_NONE;
@@ -5497,21 +7482,96 @@ index cbef74e..c38fead 100644
        BTFIXUPSET_INT(page_kernel, pgprot_val(SRMMU_PAGE_KERNEL));
        page_kernel = pgprot_val(SRMMU_PAGE_KERNEL);
  
+diff --git a/arch/tile/include/asm/atomic_64.h b/arch/tile/include/asm/atomic_64.h
+index f4500c6..889656c 100644
+--- a/arch/tile/include/asm/atomic_64.h
++++ b/arch/tile/include/asm/atomic_64.h
+@@ -143,6 +143,16 @@ static inline long atomic64_add_unless(atomic64_t *v, long a, long u)
+ #define atomic64_inc_not_zero(v)      atomic64_add_unless((v), 1, 0)
++#define atomic64_read_unchecked(v)            atomic64_read(v)
++#define atomic64_set_unchecked(v, i)          atomic64_set((v), (i))
++#define atomic64_add_unchecked(a, v)          atomic64_add((a), (v))
++#define atomic64_add_return_unchecked(a, v)   atomic64_add_return((a), (v))
++#define atomic64_sub_unchecked(a, v)          atomic64_sub((a), (v))
++#define atomic64_inc_unchecked(v)             atomic64_inc(v)
++#define atomic64_inc_return_unchecked(v)      atomic64_inc_return(v)
++#define atomic64_dec_unchecked(v)             atomic64_dec(v)
++#define atomic64_cmpxchg_unchecked(v, o, n)   atomic64_cmpxchg((v), (o), (n))
++
+ /* Atomic dec and inc don't implement barrier, so provide them if needed. */
+ #define smp_mb__before_atomic_dec()   smp_mb()
+ #define smp_mb__after_atomic_dec()    smp_mb()
+diff --git a/arch/tile/include/asm/cache.h b/arch/tile/include/asm/cache.h
+index 392e533..536b092 100644
+--- a/arch/tile/include/asm/cache.h
++++ b/arch/tile/include/asm/cache.h
+@@ -15,11 +15,12 @@
+ #ifndef _ASM_TILE_CACHE_H
+ #define _ASM_TILE_CACHE_H
++#include <linux/const.h>
+ #include <arch/chip.h>
+ /* bytes per L1 data cache line */
+ #define L1_CACHE_SHIFT                CHIP_L1D_LOG_LINE_SIZE()
+-#define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)
+ /* bytes per L2 cache line */
+ #define L2_CACHE_SHIFT                CHIP_L2_LOG_LINE_SIZE()
+diff --git a/arch/tile/include/asm/uaccess.h b/arch/tile/include/asm/uaccess.h
+index ef34d2c..d6ce60c 100644
+--- a/arch/tile/include/asm/uaccess.h
++++ b/arch/tile/include/asm/uaccess.h
+@@ -361,9 +361,9 @@ static inline unsigned long __must_check copy_from_user(void *to,
+                                         const void __user *from,
+                                         unsigned long n)
+ {
+-      int sz = __compiletime_object_size(to);
++      size_t sz = __compiletime_object_size(to);
+-      if (likely(sz == -1 || sz >= n))
++      if (likely(sz == (size_t)-1 || sz >= n))
+               n = _copy_from_user(to, from, n);
+       else
+               copy_from_user_overflow();
 diff --git a/arch/um/Makefile b/arch/um/Makefile
-index c0f712c..3a5c4c9 100644
+index 55c0661..86ad413 100644
 --- a/arch/um/Makefile
 +++ b/arch/um/Makefile
-@@ -49,6 +49,10 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -D__KERNEL__,,\
+@@ -62,6 +62,10 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -D__KERNEL__,,\
        $(patsubst -I%,,$(KBUILD_CFLAGS)))) $(ARCH_INCLUDE) $(MODE_INCLUDE) \
-       $(filter -I%,$(CFLAGS)) -D_FILE_OFFSET_BITS=64
+       $(filter -I%,$(CFLAGS)) -D_FILE_OFFSET_BITS=64 -idirafter include
  
 +ifdef CONSTIFY_PLUGIN
 +USER_CFLAGS   += $(CONSTIFY_PLUGIN) -fplugin-arg-constify_plugin-no-constify
 +endif
 +
- include $(srctree)/$(ARCH_DIR)/Makefile-$(SUBARCH)
  #This will adjust *FLAGS accordingly to the platform.
+ include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS)
+diff --git a/arch/um/include/asm/cache.h b/arch/um/include/asm/cache.h
+index 19e1bdd..3665b77 100644
+--- a/arch/um/include/asm/cache.h
++++ b/arch/um/include/asm/cache.h
+@@ -1,6 +1,7 @@
+ #ifndef __UM_CACHE_H
+ #define __UM_CACHE_H
++#include <linux/const.h>
+ #if defined(CONFIG_UML_X86) && !defined(CONFIG_64BIT)
+ # define L1_CACHE_SHIFT               (CONFIG_X86_L1_CACHE_SHIFT)
+@@ -12,6 +13,6 @@
+ # define L1_CACHE_SHIFT               5
+ #endif
+-#define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)
+ #endif
 diff --git a/arch/um/include/asm/kmap_types.h b/arch/um/include/asm/kmap_types.h
 index 6c03acd..a5e0215 100644
 --- a/arch/um/include/asm/kmap_types.h
@@ -5525,7 +7585,7 @@ index 6c03acd..a5e0215 100644
  };
  
 diff --git a/arch/um/include/asm/page.h b/arch/um/include/asm/page.h
-index 4cc9b6c..02e5029 100644
+index 7cfc3ce..cbd1a58 100644
 --- a/arch/um/include/asm/page.h
 +++ b/arch/um/include/asm/page.h
 @@ -14,6 +14,9 @@
@@ -5538,8 +7598,20 @@ index 4cc9b6c..02e5029 100644
  #ifndef __ASSEMBLY__
  
  struct page;
+diff --git a/arch/um/include/asm/pgtable-3level.h b/arch/um/include/asm/pgtable-3level.h
+index 0032f92..cd151e0 100644
+--- a/arch/um/include/asm/pgtable-3level.h
++++ b/arch/um/include/asm/pgtable-3level.h
+@@ -58,6 +58,7 @@
+ #define pud_present(x)        (pud_val(x) & _PAGE_PRESENT)
+ #define pud_populate(mm, pud, pmd) \
+       set_pud(pud, __pud(_PAGE_TABLE + __pa(pmd)))
++#define pud_populate_kernel(mm, pud, pmd) pud_populate((mm), (pud), (pmd))
+ #ifdef CONFIG_64BIT
+ #define set_pud(pudptr, pudval) set_64bit((u64 *) (pudptr), pud_val(pudval))
 diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
-index 21c1ae7..4640aaa 100644
+index 2b73ded..804f540 100644
 --- a/arch/um/kernel/process.c
 +++ b/arch/um/kernel/process.c
 @@ -404,22 +404,6 @@ int singlestepping(void * t)
@@ -5565,63 +7637,28 @@ index 21c1ae7..4640aaa 100644
  unsigned long get_wchan(struct task_struct *p)
  {
        unsigned long stack_page, sp, ip;
-diff --git a/arch/um/sys-i386/shared/sysdep/system.h b/arch/um/sys-i386/shared/sysdep/system.h
-index d1b93c4..ae1b7fd 100644
---- a/arch/um/sys-i386/shared/sysdep/system.h
-+++ b/arch/um/sys-i386/shared/sysdep/system.h
-@@ -17,7 +17,7 @@
- # define AT_VECTOR_SIZE_ARCH 1
- #endif
--extern unsigned long arch_align_stack(unsigned long sp);
-+#define arch_align_stack(x) ((x) & ~0xfUL)
- void default_idle(void);
-diff --git a/arch/um/sys-i386/syscalls.c b/arch/um/sys-i386/syscalls.c
-index 70ca357..728d1cc 100644
---- a/arch/um/sys-i386/syscalls.c
-+++ b/arch/um/sys-i386/syscalls.c
-@@ -11,6 +11,21 @@
- #include "asm/uaccess.h"
- #include "asm/unistd.h"
-+int i386_mmap_check(unsigned long addr, unsigned long len, unsigned long flags)
-+{
-+      unsigned long pax_task_size = TASK_SIZE;
-+
-+#ifdef CONFIG_PAX_SEGMEXEC
-+      if (current->mm->pax_flags & MF_PAX_SEGMEXEC)
-+              pax_task_size = SEGMEXEC_TASK_SIZE;
-+#endif
-+
-+      if (len > pax_task_size || addr > pax_task_size - len)
-+              return -EINVAL;
-+
-+      return 0;
-+}
+diff --git a/arch/unicore32/include/asm/cache.h b/arch/unicore32/include/asm/cache.h
+index ad8f795..2c7eec6 100644
+--- a/arch/unicore32/include/asm/cache.h
++++ b/arch/unicore32/include/asm/cache.h
+@@ -12,8 +12,10 @@
+ #ifndef __UNICORE_CACHE_H__
+ #define __UNICORE_CACHE_H__
+-#define L1_CACHE_SHIFT                (5)
+-#define L1_CACHE_BYTES                (1 << L1_CACHE_SHIFT)
++#include <linux/const.h>
 +
- /*
-  * The prototype on i386 is:
-  *
-diff --git a/arch/um/sys-x86_64/shared/sysdep/system.h b/arch/um/sys-x86_64/shared/sysdep/system.h
-index d1b93c4..ae1b7fd 100644
---- a/arch/um/sys-x86_64/shared/sysdep/system.h
-+++ b/arch/um/sys-x86_64/shared/sysdep/system.h
-@@ -17,7 +17,7 @@
- # define AT_VECTOR_SIZE_ARCH 1
- #endif
--extern unsigned long arch_align_stack(unsigned long sp);
-+#define arch_align_stack(x) ((x) & ~0xfUL)
- void default_idle(void);
++#define L1_CACHE_SHIFT                5
++#define L1_CACHE_BYTES                (_AC(1,UL) << L1_CACHE_SHIFT)
  
+ /*
+  * Memory returned by kmalloc() may be used for DMA, so we must make
 diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index 6a47bb2..dc9a868 100644
+index c9866b0..fe53aef 100644
 --- a/arch/x86/Kconfig
 +++ b/arch/x86/Kconfig
-@@ -236,7 +236,7 @@ config X86_HT
+@@ -229,7 +229,7 @@ config X86_HT
  
  config X86_32_LAZY_GS
        def_bool y
@@ -5630,7 +7667,7 @@ index 6a47bb2..dc9a868 100644
  
  config ARCH_HWEIGHT_CFLAGS
        string
-@@ -1019,7 +1019,7 @@ choice
+@@ -1042,7 +1042,7 @@ choice
  
  config NOHIGHMEM
        bool "off"
@@ -5639,7 +7676,7 @@ index 6a47bb2..dc9a868 100644
        ---help---
          Linux can use up to 64 Gigabytes of physical memory on x86 systems.
          However, the address space of 32-bit x86 processors is only 4
-@@ -1056,7 +1056,7 @@ config NOHIGHMEM
+@@ -1079,7 +1079,7 @@ config NOHIGHMEM
  
  config HIGHMEM4G
        bool "4GB"
@@ -5648,7 +7685,7 @@ index 6a47bb2..dc9a868 100644
        ---help---
          Select this if you have a 32-bit processor and between 1 and 4
          gigabytes of physical RAM.
-@@ -1110,7 +1110,7 @@ config PAGE_OFFSET
+@@ -1133,7 +1133,7 @@ config PAGE_OFFSET
        hex
        default 0xB0000000 if VMSPLIT_3G_OPT
        default 0x80000000 if VMSPLIT_2G
@@ -5657,7 +7694,7 @@ index 6a47bb2..dc9a868 100644
        default 0x40000000 if VMSPLIT_1G
        default 0xC0000000
        depends on X86_32
-@@ -1484,6 +1484,7 @@ config SECCOMP
+@@ -1523,6 +1523,7 @@ config SECCOMP
  
  config CC_STACKPROTECTOR
        bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
@@ -5665,7 +7702,7 @@ index 6a47bb2..dc9a868 100644
        ---help---
          This option turns on the -fstack-protector GCC feature. This
          feature puts, at the beginning of functions, a canary value on
-@@ -1541,6 +1542,7 @@ config KEXEC_JUMP
+@@ -1580,6 +1581,7 @@ config KEXEC_JUMP
  config PHYSICAL_START
        hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
        default "0x1000000"
@@ -5673,7 +7710,7 @@ index 6a47bb2..dc9a868 100644
        ---help---
          This gives the physical address where the kernel is loaded.
  
-@@ -1604,6 +1606,7 @@ config X86_NEED_RELOCS
+@@ -1643,6 +1645,7 @@ config X86_NEED_RELOCS
  config PHYSICAL_ALIGN
        hex "Alignment value to which kernel should be aligned" if X86_32
        default "0x1000000"
@@ -5681,7 +7718,7 @@ index 6a47bb2..dc9a868 100644
        range 0x2000 0x1000000
        ---help---
          This value puts the alignment restrictions on physical address
-@@ -1635,9 +1638,10 @@ config HOTPLUG_CPU
+@@ -1674,9 +1677,10 @@ config HOTPLUG_CPU
          Say N if you want to disable CPU hotplug.
  
  config COMPAT_VDSO
@@ -5694,10 +7731,10 @@ index 6a47bb2..dc9a868 100644
          Map the 32-bit VDSO to the predictable old-style address too.
  
 diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
-index e3ca7e0..b30b28a 100644
+index 706e12e..62e4feb 100644
 --- a/arch/x86/Kconfig.cpu
 +++ b/arch/x86/Kconfig.cpu
-@@ -341,7 +341,7 @@ config X86_PPRO_FENCE
+@@ -334,7 +334,7 @@ config X86_PPRO_FENCE
  
  config X86_F00F_BUG
        def_bool y
@@ -5706,7 +7743,7 @@ index e3ca7e0..b30b28a 100644
  
  config X86_INVD_BUG
        def_bool y
-@@ -365,7 +365,7 @@ config X86_POPAD_OK
+@@ -358,7 +358,7 @@ config X86_POPAD_OK
  
  config X86_ALIGNMENT_16
        def_bool y
@@ -5715,7 +7752,7 @@ index e3ca7e0..b30b28a 100644
  
  config X86_INTEL_USERCOPY
        def_bool y
-@@ -411,7 +411,7 @@ config X86_CMPXCHG64
+@@ -404,7 +404,7 @@ config X86_CMPXCHG64
  # generates cmov.
  config X86_CMOV
        def_bool y
@@ -5725,10 +7762,10 @@ index e3ca7e0..b30b28a 100644
  config X86_MINIMUM_CPU_FAMILY
        int
 diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
-index c0f8a5c..6404f61 100644
+index e46c214..ab62fd1 100644
 --- a/arch/x86/Kconfig.debug
 +++ b/arch/x86/Kconfig.debug
-@@ -81,7 +81,7 @@ config X86_PTDUMP
+@@ -84,7 +84,7 @@ config X86_PTDUMP
  config DEBUG_RODATA
        bool "Write protect kernel read-only data structures"
        default y
@@ -5737,7 +7774,7 @@ index c0f8a5c..6404f61 100644
        ---help---
          Mark the kernel read-only data as write-protected in the pagetables,
          in order to catch accidental (and incorrect) writes to such const
-@@ -99,7 +99,7 @@ config DEBUG_RODATA_TEST
+@@ -102,7 +102,7 @@ config DEBUG_RODATA_TEST
  
  config DEBUG_SET_MODULE_RONX
        bool "Set loadable kernel module data as NX and text as RO"
@@ -5746,8 +7783,17 @@ index c0f8a5c..6404f61 100644
        ---help---
          This option helps catch unintended modifications to loadable
          kernel module's text and read-only data. It also prevents execution
+@@ -275,7 +275,7 @@ config OPTIMIZE_INLINING
+ config DEBUG_STRICT_USER_COPY_CHECKS
+       bool "Strict copy size checks"
+-      depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
++      depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING && !PAX_SIZE_OVERFLOW
+       ---help---
+         Enabling this option turns a certain set of sanity checks for user
+         copy operations into compile time failures.
 diff --git a/arch/x86/Makefile b/arch/x86/Makefile
-index b02e509..2631e48 100644
+index b1c611e..2c1a823 100644
 --- a/arch/x86/Makefile
 +++ b/arch/x86/Makefile
 @@ -46,6 +46,7 @@ else
@@ -5758,7 +7804,7 @@ index b02e509..2631e48 100644
          KBUILD_AFLAGS += -m64
          KBUILD_CFLAGS += -m64
  
-@@ -195,3 +196,12 @@ define archhelp
+@@ -222,3 +223,12 @@ define archhelp
    echo  '                  FDARGS="..."  arguments for the booted kernel'
    echo  '                  FDINITRD=file initrd for the booted kernel'
  endef
@@ -5772,10 +7818,10 @@ index b02e509..2631e48 100644
 +archprepare:
 +      $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
 diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
-index 95365a8..52f857b 100644
+index 5a747dd..ff7b12c 100644
 --- a/arch/x86/boot/Makefile
 +++ b/arch/x86/boot/Makefile
-@@ -63,6 +63,9 @@ KBUILD_CFLAGS        := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
+@@ -64,6 +64,9 @@ KBUILD_CFLAGS        := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
                   $(call cc-option, -fno-stack-protector) \
                   $(call cc-option, -mpreferred-stack-boundary=2)
  KBUILD_CFLAGS += $(call cc-option, -m32)
@@ -5808,7 +7854,7 @@ index 878e4b9..20537ab 100644
  
  #endif /* BOOT_BITOPS_H */
 diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
-index c7093bd..d4247ffe0 100644
+index 18997e5..83d9c67 100644
 --- a/arch/x86/boot/boot.h
 +++ b/arch/x86/boot/boot.h
 @@ -85,7 +85,7 @@ static inline void io_delay(void)
@@ -5830,7 +7876,7 @@ index c7093bd..d4247ffe0 100644
        return diff;
  }
 diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
-index 09664ef..edc5d03 100644
+index e398bb5..3a382ca 100644
 --- a/arch/x86/boot/compressed/Makefile
 +++ b/arch/x86/boot/compressed/Makefile
 @@ -14,6 +14,9 @@ cflags-$(CONFIG_X86_64) := -mcmodel=small
@@ -5843,11 +7889,31 @@ index 09664ef..edc5d03 100644
  
  KBUILD_AFLAGS  := $(KBUILD_CFLAGS) -D__ASSEMBLY__
  GCOV_PROFILE := n
+diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
+index 0cdfc0d..6e79437 100644
+--- a/arch/x86/boot/compressed/eboot.c
++++ b/arch/x86/boot/compressed/eboot.c
+@@ -122,7 +122,6 @@ again:
+               *addr = max_addr;
+       }
+-free_pool:
+       efi_call_phys1(sys_table->boottime->free_pool, map);
+ fail:
+@@ -186,7 +185,6 @@ static efi_status_t low_alloc(unsigned long size, unsigned long align,
+       if (i == map_size / desc_size)
+               status = EFI_NOT_FOUND;
+-free_pool:
+       efi_call_phys1(sys_table->boottime->free_pool, map);
+ fail:
+       return status;
 diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
-index 67a655a..b924059 100644
+index c85e3ac..6f5aa80 100644
 --- a/arch/x86/boot/compressed/head_32.S
 +++ b/arch/x86/boot/compressed/head_32.S
-@@ -76,7 +76,7 @@ ENTRY(startup_32)
+@@ -106,7 +106,7 @@ preferred_addr:
        notl    %eax
        andl    %eax, %ebx
  #else
@@ -5856,7 +7922,7 @@ index 67a655a..b924059 100644
  #endif
  
        /* Target address to relocate to for decompression */
-@@ -162,7 +162,7 @@ relocated:
+@@ -192,7 +192,7 @@ relocated:
   * and where it was actually loaded.
   */
        movl    %ebp, %ebx
@@ -5865,7 +7931,7 @@ index 67a655a..b924059 100644
        jz      2f      /* Nothing to be done if loaded at compiled addr. */
  /*
   * Process relocations.
-@@ -170,8 +170,7 @@ relocated:
+@@ -200,8 +200,7 @@ relocated:
  
  1:    subl    $4, %edi
        movl    (%edi), %ecx
@@ -5876,7 +7942,7 @@ index 67a655a..b924059 100644
        jmp     1b
  2:
 diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
-index 35af09d..99c9676 100644
+index 87e03a1..0d94c76 100644
 --- a/arch/x86/boot/compressed/head_64.S
 +++ b/arch/x86/boot/compressed/head_64.S
 @@ -91,7 +91,7 @@ ENTRY(startup_32)
@@ -5888,7 +7954,7 @@ index 35af09d..99c9676 100644
  #endif
  
        /* Target address to relocate to for decompression */
-@@ -233,7 +233,7 @@ ENTRY(startup_64)
+@@ -263,7 +263,7 @@ preferred_addr:
        notq    %rax
        andq    %rax, %rbp
  #else
@@ -5898,7 +7964,7 @@ index 35af09d..99c9676 100644
  
        /* Target address to relocate to for decompression */
 diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
-index 3a19d04..7c1d55a 100644
+index 7116dcb..d9ae1d7 100644
 --- a/arch/x86/boot/compressed/misc.c
 +++ b/arch/x86/boot/compressed/misc.c
 @@ -310,7 +310,7 @@ static void parse_elf(void *output)
@@ -5910,7 +7976,7 @@ index 3a19d04..7c1d55a 100644
  #else
                        dest = (void *)(phdr->p_paddr);
  #endif
-@@ -363,7 +363,7 @@ asmlinkage void decompress_kernel(void *rmode, memptr heap,
+@@ -365,7 +365,7 @@ asmlinkage void decompress_kernel(void *rmode, memptr heap,
                error("Destination address too large");
  #endif
  #ifndef CONFIG_RELOCATABLE
@@ -5919,202 +7985,6 @@ index 3a19d04..7c1d55a 100644
                error("Wrong destination address");
  #endif
  
-diff --git a/arch/x86/boot/compressed/relocs.c b/arch/x86/boot/compressed/relocs.c
-index 89bbf4e..869908e 100644
---- a/arch/x86/boot/compressed/relocs.c
-+++ b/arch/x86/boot/compressed/relocs.c
-@@ -13,8 +13,11 @@
- static void die(char *fmt, ...);
-+#include "../../../../include/generated/autoconf.h"
-+
- #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
- static Elf32_Ehdr ehdr;
-+static Elf32_Phdr *phdr;
- static unsigned long reloc_count, reloc_idx;
- static unsigned long *relocs;
-@@ -270,9 +273,39 @@ static void read_ehdr(FILE *fp)
-       }
- }
-+static void read_phdrs(FILE *fp)
-+{
-+      unsigned int i;
-+
-+      phdr = calloc(ehdr.e_phnum, sizeof(Elf32_Phdr));
-+      if (!phdr) {
-+              die("Unable to allocate %d program headers\n",
-+                  ehdr.e_phnum);
-+      }
-+      if (fseek(fp, ehdr.e_phoff, SEEK_SET) < 0) {
-+              die("Seek to %d failed: %s\n",
-+                      ehdr.e_phoff, strerror(errno));
-+      }
-+      if (fread(phdr, sizeof(*phdr), ehdr.e_phnum, fp) != ehdr.e_phnum) {
-+              die("Cannot read ELF program headers: %s\n",
-+                      strerror(errno));
-+      }
-+      for(i = 0; i < ehdr.e_phnum; i++) {
-+              phdr[i].p_type      = elf32_to_cpu(phdr[i].p_type);
-+              phdr[i].p_offset    = elf32_to_cpu(phdr[i].p_offset);
-+              phdr[i].p_vaddr     = elf32_to_cpu(phdr[i].p_vaddr);
-+              phdr[i].p_paddr     = elf32_to_cpu(phdr[i].p_paddr);
-+              phdr[i].p_filesz    = elf32_to_cpu(phdr[i].p_filesz);
-+              phdr[i].p_memsz     = elf32_to_cpu(phdr[i].p_memsz);
-+              phdr[i].p_flags     = elf32_to_cpu(phdr[i].p_flags);
-+              phdr[i].p_align     = elf32_to_cpu(phdr[i].p_align);
-+      }
-+
-+}
-+
- static void read_shdrs(FILE *fp)
- {
--      int i;
-+      unsigned int i;
-       Elf32_Shdr shdr;
-       secs = calloc(ehdr.e_shnum, sizeof(struct section));
-@@ -307,7 +340,7 @@ static void read_shdrs(FILE *fp)
- static void read_strtabs(FILE *fp)
- {
--      int i;
-+      unsigned int i;
-       for (i = 0; i < ehdr.e_shnum; i++) {
-               struct section *sec = &secs[i];
-               if (sec->shdr.sh_type != SHT_STRTAB) {
-@@ -332,7 +365,7 @@ static void read_strtabs(FILE *fp)
- static void read_symtabs(FILE *fp)
- {
--      int i,j;
-+      unsigned int i,j;
-       for (i = 0; i < ehdr.e_shnum; i++) {
-               struct section *sec = &secs[i];
-               if (sec->shdr.sh_type != SHT_SYMTAB) {
-@@ -365,7 +398,9 @@ static void read_symtabs(FILE *fp)
- static void read_relocs(FILE *fp)
- {
--      int i,j;
-+      unsigned int i,j;
-+      uint32_t base;
-+
-       for (i = 0; i < ehdr.e_shnum; i++) {
-               struct section *sec = &secs[i];
-               if (sec->shdr.sh_type != SHT_REL) {
-@@ -385,9 +420,18 @@ static void read_relocs(FILE *fp)
-                       die("Cannot read symbol table: %s\n",
-                               strerror(errno));
-               }
-+              base = 0;
-+              for (j = 0; j < ehdr.e_phnum; j++) {
-+                      if (phdr[j].p_type != PT_LOAD )
-+                              continue;
-+                      if (secs[sec->shdr.sh_info].shdr.sh_offset < phdr[j].p_offset || secs[sec->shdr.sh_info].shdr.sh_offset >= phdr[j].p_offset + phdr[j].p_filesz)
-+                              continue;
-+                      base = CONFIG_PAGE_OFFSET + phdr[j].p_paddr - phdr[j].p_vaddr;
-+                      break;
-+              }
-               for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) {
-                       Elf32_Rel *rel = &sec->reltab[j];
--                      rel->r_offset = elf32_to_cpu(rel->r_offset);
-+                      rel->r_offset = elf32_to_cpu(rel->r_offset) + base;
-                       rel->r_info   = elf32_to_cpu(rel->r_info);
-               }
-       }
-@@ -396,14 +440,14 @@ static void read_relocs(FILE *fp)
- static void print_absolute_symbols(void)
- {
--      int i;
-+      unsigned int i;
-       printf("Absolute symbols\n");
-       printf(" Num:    Value Size  Type       Bind        Visibility  Name\n");
-       for (i = 0; i < ehdr.e_shnum; i++) {
-               struct section *sec = &secs[i];
-               char *sym_strtab;
-               Elf32_Sym *sh_symtab;
--              int j;
-+              unsigned int j;
-               if (sec->shdr.sh_type != SHT_SYMTAB) {
-                       continue;
-@@ -431,14 +475,14 @@ static void print_absolute_symbols(void)
- static void print_absolute_relocs(void)
- {
--      int i, printed = 0;
-+      unsigned int i, printed = 0;
-       for (i = 0; i < ehdr.e_shnum; i++) {
-               struct section *sec = &secs[i];
-               struct section *sec_applies, *sec_symtab;
-               char *sym_strtab;
-               Elf32_Sym *sh_symtab;
--              int j;
-+              unsigned int j;
-               if (sec->shdr.sh_type != SHT_REL) {
-                       continue;
-               }
-@@ -499,13 +543,13 @@ static void print_absolute_relocs(void)
- static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym))
- {
--      int i;
-+      unsigned int i;
-       /* Walk through the relocations */
-       for (i = 0; i < ehdr.e_shnum; i++) {
-               char *sym_strtab;
-               Elf32_Sym *sh_symtab;
-               struct section *sec_applies, *sec_symtab;
--              int j;
-+              unsigned int j;
-               struct section *sec = &secs[i];
-               if (sec->shdr.sh_type != SHT_REL) {
-@@ -530,6 +574,22 @@ static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym))
-                           !is_rel_reloc(sym_name(sym_strtab, sym))) {
-                               continue;
-                       }
-+                      /* Don't relocate actual per-cpu variables, they are absolute indices, not addresses */
-+                      if (!strcmp(sec_name(sym->st_shndx), ".data..percpu") && strcmp(sym_name(sym_strtab, sym), "__per_cpu_load"))
-+                              continue;
-+
-+#if defined(CONFIG_PAX_KERNEXEC) && defined(CONFIG_X86_32)
-+                      /* Don't relocate actual code, they are relocated implicitly by the base address of KERNEL_CS */
-+                      if (!strcmp(sec_name(sym->st_shndx), ".module.text") && !strcmp(sym_name(sym_strtab, sym), "_etext"))
-+                              continue;
-+                      if (!strcmp(sec_name(sym->st_shndx), ".init.text"))
-+                              continue;
-+                      if (!strcmp(sec_name(sym->st_shndx), ".exit.text"))
-+                              continue;
-+                      if (!strcmp(sec_name(sym->st_shndx), ".text") && strcmp(sym_name(sym_strtab, sym), "__LOAD_PHYSICAL_ADDR"))
-+                              continue;
-+#endif
-+
-                       switch (r_type) {
-                       case R_386_NONE:
-                       case R_386_PC32:
-@@ -571,7 +631,7 @@ static int cmp_relocs(const void *va, const void *vb)
- static void emit_relocs(int as_text)
- {
--      int i;
-+      unsigned int i;
-       /* Count how many relocations I have and allocate space for them. */
-       reloc_count = 0;
-       walk_relocs(count_reloc);
-@@ -665,6 +725,7 @@ int main(int argc, char **argv)
-                       fname, strerror(errno));
-       }
-       read_ehdr(fp);
-+      read_phdrs(fp);
-       read_shdrs(fp);
-       read_strtabs(fp);
-       read_symtabs(fp);
 diff --git a/arch/x86/boot/cpucheck.c b/arch/x86/boot/cpucheck.c
 index 4d3ff03..e4972ff 100644
 --- a/arch/x86/boot/cpucheck.c
@@ -6215,10 +8085,10 @@ index 4d3ff03..e4972ff 100644
                err = check_flags();
        }
 diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
-index 93e689f..504ba09 100644
+index f1bbeeb..aff09cb 100644
 --- a/arch/x86/boot/header.S
 +++ b/arch/x86/boot/header.S
-@@ -224,7 +224,7 @@ setup_data:                .quad 0                 # 64-bit physical pointer to
+@@ -372,7 +372,7 @@ setup_data:                .quad 0                 # 64-bit physical pointer to
                                                # single linked list of
                                                # struct setup_data
  
@@ -6288,7 +8158,7 @@ index 5b577d5..3c1fed4 100644
        movq    r1,r2;                  \
        movq    r3,r4;                  \
 diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S
-index be6d9e3..21fbbca 100644
+index 3470624..201259d 100644
 --- a/arch/x86/crypto/aesni-intel_asm.S
 +++ b/arch/x86/crypto/aesni-intel_asm.S
 @@ -31,6 +31,7 @@
@@ -6443,7 +8313,7 @@ index be6d9e3..21fbbca 100644
  
  /*
   * void aesni_cbc_dec(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src,
-@@ -2498,7 +2523,9 @@ ENTRY(aesni_cbc_dec)
+@@ -2500,7 +2525,9 @@ ENTRY(aesni_cbc_dec)
        popl LEN
        popl IVP
  #endif
@@ -6453,7 +8323,7 @@ index be6d9e3..21fbbca 100644
  
  #ifdef __x86_64__
  .align 16
-@@ -2524,6 +2551,7 @@ _aesni_inc_init:
+@@ -2526,6 +2553,7 @@ _aesni_inc_init:
        mov $1, TCTR_LOW
        MOVQ_R64_XMM TCTR_LOW INC
        MOVQ_R64_XMM CTR TCTR_LOW
@@ -6461,7 +8331,7 @@ index be6d9e3..21fbbca 100644
        ret
  
  /*
-@@ -2552,6 +2580,7 @@ _aesni_inc:
+@@ -2554,6 +2582,7 @@ _aesni_inc:
  .Linc_low:
        movaps CTR, IV
        PSHUFB_XMM BSWAP_MASK IV
@@ -6469,7 +8339,7 @@ index be6d9e3..21fbbca 100644
        ret
  
  /*
-@@ -2612,5 +2641,7 @@ ENTRY(aesni_ctr_enc)
+@@ -2614,5 +2643,7 @@ ENTRY(aesni_ctr_enc)
  .Lctr_enc_ret:
        movups IV, (IVP)
  .Lctr_enc_just_ret:
@@ -6477,6 +8347,120 @@ index be6d9e3..21fbbca 100644
        ret
 +ENDPROC(aesni_ctr_enc)
  #endif
+diff --git a/arch/x86/crypto/blowfish-x86_64-asm_64.S b/arch/x86/crypto/blowfish-x86_64-asm_64.S
+index 391d245..67f35c2 100644
+--- a/arch/x86/crypto/blowfish-x86_64-asm_64.S
++++ b/arch/x86/crypto/blowfish-x86_64-asm_64.S
+@@ -20,6 +20,8 @@
+  *
+  */
++#include <asm/alternative-asm.h>
++
+ .file "blowfish-x86_64-asm.S"
+ .text
+@@ -151,9 +153,11 @@ __blowfish_enc_blk:
+       jnz __enc_xor;
+       write_block();
++      pax_force_retaddr 0, 1
+       ret;
+ __enc_xor:
+       xor_block();
++      pax_force_retaddr 0, 1
+       ret;
+ .align 8
+@@ -188,6 +192,7 @@ blowfish_dec_blk:
+       movq %r11, %rbp;
++      pax_force_retaddr 0, 1
+       ret;
+ /**********************************************************************
+@@ -342,6 +347,7 @@ __blowfish_enc_blk_4way:
+       popq %rbx;
+       popq %rbp;
++      pax_force_retaddr 0, 1
+       ret;
+ __enc_xor4:
+@@ -349,6 +355,7 @@ __enc_xor4:
+       popq %rbx;
+       popq %rbp;
++      pax_force_retaddr 0, 1
+       ret;
+ .align 8
+@@ -386,5 +393,6 @@ blowfish_dec_blk_4way:
+       popq %rbx;
+       popq %rbp;
++      pax_force_retaddr 0, 1
+       ret;
+diff --git a/arch/x86/crypto/camellia-x86_64-asm_64.S b/arch/x86/crypto/camellia-x86_64-asm_64.S
+index 0b33743..7a56206 100644
+--- a/arch/x86/crypto/camellia-x86_64-asm_64.S
++++ b/arch/x86/crypto/camellia-x86_64-asm_64.S
+@@ -20,6 +20,8 @@
+  *
+  */
++#include <asm/alternative-asm.h>
++
+ .file "camellia-x86_64-asm_64.S"
+ .text
+@@ -229,12 +231,14 @@ __enc_done:
+       enc_outunpack(mov, RT1);
+       movq RRBP, %rbp;
++      pax_force_retaddr 0, 1
+       ret;
+ __enc_xor:
+       enc_outunpack(xor, RT1);
+       movq RRBP, %rbp;
++      pax_force_retaddr 0, 1
+       ret;
+ .global camellia_dec_blk;
+@@ -275,6 +279,7 @@ __dec_rounds16:
+       dec_outunpack();
+       movq RRBP, %rbp;
++      pax_force_retaddr 0, 1
+       ret;
+ /**********************************************************************
+@@ -468,6 +473,7 @@ __enc2_done:
+       movq RRBP, %rbp;
+       popq %rbx;
++      pax_force_retaddr 0, 1
+       ret;
+ __enc2_xor:
+@@ -475,6 +481,7 @@ __enc2_xor:
+       movq RRBP, %rbp;
+       popq %rbx;
++      pax_force_retaddr 0, 1
+       ret;
+ .global camellia_dec_blk_2way;
+@@ -517,4 +524,5 @@ __dec2_rounds16:
+       movq RRBP, %rbp;
+       movq RXOR, %rbx;
++      pax_force_retaddr 0, 1
+       ret;
 diff --git a/arch/x86/crypto/salsa20-x86_64-asm_64.S b/arch/x86/crypto/salsa20-x86_64-asm_64.S
 index 6214a9b..1f4fc9a 100644
 --- a/arch/x86/crypto/salsa20-x86_64-asm_64.S
@@ -6509,8 +8493,99 @@ index 6214a9b..1f4fc9a 100644
        mov     %rsi,%rdx
 +      pax_force_retaddr
        ret
+diff --git a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
+index 3ee1ff0..cbc568b 100644
+--- a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
++++ b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
+@@ -24,6 +24,8 @@
+  *
+  */
++#include <asm/alternative-asm.h>
++
+ .file "serpent-sse2-x86_64-asm_64.S"
+ .text
+@@ -692,12 +694,14 @@ __serpent_enc_blk_8way:
+       write_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
+       write_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
++      pax_force_retaddr
+       ret;
+ __enc_xor8:
+       xor_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
+       xor_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
++      pax_force_retaddr
+       ret;
+ .align 8
+@@ -755,4 +759,5 @@ serpent_dec_blk_8way:
+       write_blocks(%rsi, RC1, RD1, RB1, RE1, RK0, RK1, RK2);
+       write_blocks(%rax, RC2, RD2, RB2, RE2, RK0, RK1, RK2);
++      pax_force_retaddr
+       ret;
+diff --git a/arch/x86/crypto/sha1_ssse3_asm.S b/arch/x86/crypto/sha1_ssse3_asm.S
+index b2c2f57..8470cab 100644
+--- a/arch/x86/crypto/sha1_ssse3_asm.S
++++ b/arch/x86/crypto/sha1_ssse3_asm.S
+@@ -28,6 +28,8 @@
+  * (at your option) any later version.
+  */
++#include <asm/alternative-asm.h>
++
+ #define CTX   %rdi    // arg1
+ #define BUF   %rsi    // arg2
+ #define CNT   %rdx    // arg3
+@@ -104,6 +106,7 @@
+       pop     %r12
+       pop     %rbp
+       pop     %rbx
++      pax_force_retaddr 0, 1
+       ret
+       .size   \name, .-\name
+diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
+index 5b012a2..36d5364 100644
+--- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
++++ b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
+@@ -20,6 +20,8 @@
+  *
+  */
++#include <asm/alternative-asm.h>
++
+ .file "twofish-x86_64-asm-3way.S"
+ .text
+@@ -260,6 +262,7 @@ __twofish_enc_blk_3way:
+       popq %r13;
+       popq %r14;
+       popq %r15;
++      pax_force_retaddr 0, 1
+       ret;
+ __enc_xor3:
+@@ -271,6 +274,7 @@ __enc_xor3:
+       popq %r13;
+       popq %r14;
+       popq %r15;
++      pax_force_retaddr 0, 1
+       ret;
+ .global twofish_dec_blk_3way
+@@ -312,5 +316,6 @@ twofish_dec_blk_3way:
+       popq %r13;
+       popq %r14;
+       popq %r15;
++      pax_force_retaddr 0, 1
+       ret;
 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64.S b/arch/x86/crypto/twofish-x86_64-asm_64.S
-index 573aa10..b73ad89 100644
+index 7bcf3fc..f53832f 100644
 --- a/arch/x86/crypto/twofish-x86_64-asm_64.S
 +++ b/arch/x86/crypto/twofish-x86_64-asm_64.S
 @@ -21,6 +21,7 @@
@@ -6521,7 +8596,7 @@ index 573aa10..b73ad89 100644
  
  #define a_offset      0
  #define b_offset      4
-@@ -269,6 +270,7 @@ twofish_enc_blk:
+@@ -268,6 +269,7 @@ twofish_enc_blk:
  
        popq    R1
        movq    $1,%rax
@@ -6529,17 +8604,17 @@ index 573aa10..b73ad89 100644
        ret
  
  twofish_dec_blk:
-@@ -321,4 +323,5 @@ twofish_dec_blk:
+@@ -319,4 +321,5 @@ twofish_dec_blk:
  
        popq    R1
        movq    $1,%rax
 +      pax_force_retaddr 0, 1
        ret
 diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c
-index fd84387..0b4af7d 100644
+index 07b3a68..bd2a388 100644
 --- a/arch/x86/ia32/ia32_aout.c
 +++ b/arch/x86/ia32/ia32_aout.c
-@@ -162,6 +162,8 @@ static int aout_core_dump(long signr, struct pt_regs *regs, struct file *file,
+@@ -159,6 +159,8 @@ static int aout_core_dump(long signr, struct pt_regs *regs, struct file *file,
        unsigned long dump_start, dump_size;
        struct user32 dump;
  
@@ -6549,10 +8624,10 @@ index fd84387..0b4af7d 100644
        set_fs(KERNEL_DS);
        has_dumped = 1;
 diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
-index 6557769..ef6ae89 100644
+index 4f5bfac..e1ef0d3 100644
 --- a/arch/x86/ia32/ia32_signal.c
 +++ b/arch/x86/ia32/ia32_signal.c
-@@ -169,7 +169,7 @@ asmlinkage long sys32_sigaltstack(const stack_ia32_t __user *uss_ptr,
+@@ -168,7 +168,7 @@ asmlinkage long sys32_sigaltstack(const stack_ia32_t __user *uss_ptr,
        }
        seg = get_fs();
        set_fs(KERNEL_DS);
@@ -6561,7 +8636,7 @@ index 6557769..ef6ae89 100644
        set_fs(seg);
        if (ret >= 0 && uoss_ptr)  {
                if (!access_ok(VERIFY_WRITE, uoss_ptr, sizeof(stack_ia32_t)))
-@@ -370,7 +370,7 @@ static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc,
+@@ -369,7 +369,7 @@ static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc,
   */
  static void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
                                 size_t frame_size,
@@ -6570,7 +8645,7 @@ index 6557769..ef6ae89 100644
  {
        unsigned long sp;
  
-@@ -391,7 +391,7 @@ static void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
+@@ -390,7 +390,7 @@ static void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
  
        if (used_math()) {
                sp = sp - sig_xstate_ia32_size;
@@ -6579,7 +8654,7 @@ index 6557769..ef6ae89 100644
                if (save_i387_xstate_ia32(*fpstate) < 0)
                        return (void __user *) -1L;
        }
-@@ -399,7 +399,7 @@ static void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
+@@ -398,7 +398,7 @@ static void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
        sp -= frame_size;
        /* Align the stack pointer according to the i386 ABI,
         * i.e. so that on function entry ((sp + 4) & 15) == 0. */
@@ -6588,7 +8663,7 @@ index 6557769..ef6ae89 100644
        return (void __user *) sp;
  }
  
-@@ -457,7 +457,7 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
+@@ -456,7 +456,7 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
                 * These are actually not used anymore, but left because some
                 * gdb versions depend on them as a marker.
                 */
@@ -6597,7 +8672,7 @@ index 6557769..ef6ae89 100644
        } put_user_catch(err);
  
        if (err)
-@@ -499,7 +499,7 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
+@@ -498,7 +498,7 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
                0xb8,
                __NR_ia32_rt_sigreturn,
                0x80cd,
@@ -6606,7 +8681,7 @@ index 6557769..ef6ae89 100644
        };
  
        frame = get_sigframe(ka, regs, sizeof(*frame), &fpstate);
-@@ -529,16 +529,18 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
+@@ -528,16 +528,18 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
  
                if (ka->sa.sa_flags & SA_RESTORER)
                        restorer = ka->sa.sa_restorer;
@@ -6629,20 +8704,21 @@ index 6557769..ef6ae89 100644
  
        if (err)
 diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
-index 54edb207..9335b5f 100644
+index e3e7340..05ed805 100644
 --- a/arch/x86/ia32/ia32entry.S
 +++ b/arch/x86/ia32/ia32entry.S
-@@ -13,7 +13,9 @@
+@@ -13,8 +13,10 @@
  #include <asm/thread_info.h>  
  #include <asm/segment.h>
  #include <asm/irqflags.h>
 +#include <asm/pgtable.h>
  #include <linux/linkage.h>
+ #include <linux/err.h>
 +#include <asm/alternative-asm.h>
  
  /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this.  */
  #include <linux/elf-em.h>
-@@ -95,6 +97,30 @@ ENTRY(native_irq_enable_sysexit)
+@@ -94,6 +96,32 @@ ENTRY(native_irq_enable_sysexit)
  ENDPROC(native_irq_enable_sysexit)
  #endif
  
@@ -6659,7 +8735,9 @@ index 54edb207..9335b5f 100644
 +#endif
 +#ifdef CONFIG_PAX_RANDKSTACK
 +      pushq %rax
++      pushq %r11
 +      call pax_randomize_kstack
++      popq %r11
 +      popq %rax
 +#endif
 +      .endm
@@ -6673,7 +8751,7 @@ index 54edb207..9335b5f 100644
  /*
   * 32bit SYSENTER instruction entry.
   *
-@@ -121,12 +147,6 @@ ENTRY(ia32_sysenter_target)
+@@ -120,12 +148,6 @@ ENTRY(ia32_sysenter_target)
        CFI_REGISTER    rsp,rbp
        SWAPGS_UNSAFE_STACK
        movq    PER_CPU_VAR(kernel_stack), %rsp
@@ -6686,12 +8764,13 @@ index 54edb207..9335b5f 100644
        movl    %ebp,%ebp               /* zero extension */
        pushq_cfi $__USER32_DS
        /*CFI_REL_OFFSET ss,0*/
-@@ -134,25 +154,38 @@ ENTRY(ia32_sysenter_target)
+@@ -133,24 +155,39 @@ ENTRY(ia32_sysenter_target)
        CFI_REL_OFFSET rsp,0
        pushfq_cfi
        /*CFI_REL_OFFSET rflags,0*/
--      movl    8*3-THREAD_SIZE+TI_sysenter_return(%rsp), %r10d
+-      movl    TI_sysenter_return+THREAD_INFO(%rsp,3*8-KERNEL_STACK_OFFSET),%r10d
 -      CFI_REGISTER rip,r10
++      orl     $X86_EFLAGS_IF,(%rsp)
 +      GET_THREAD_INFO(%r11)
 +      movl    TI_sysenter_return(%r11), %r11d
 +      CFI_REGISTER rip,r11
@@ -6722,78 +8801,75 @@ index 54edb207..9335b5f 100644
        .section __ex_table,"a"
        .quad 1b,ia32_badarg
        .previous       
--      GET_THREAD_INFO(%r10)
--      orl    $TS_COMPAT,TI_status(%r10)
--      testl  $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10)
+-      orl     $TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      testl   $_TIF_WORK_SYSCALL_ENTRY,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
 +      GET_THREAD_INFO(%r11)
 +      orl    $TS_COMPAT,TI_status(%r11)
 +      testl  $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r11)
        CFI_REMEMBER_STATE
        jnz  sysenter_tracesys
        cmpq    $(IA32_NR_syscalls-1),%rax
-@@ -162,13 +195,15 @@ sysenter_do_call:
+@@ -160,12 +197,15 @@ sysenter_do_call:
  sysenter_dispatch:
        call    *ia32_sys_call_table(,%rax,8)
        movq    %rax,RAX-ARGOFFSET(%rsp)
--      GET_THREAD_INFO(%r10)
 +      GET_THREAD_INFO(%r11)
        DISABLE_INTERRUPTS(CLBR_NONE)
        TRACE_IRQS_OFF
--      testl   $_TIF_ALLWORK_MASK,TI_flags(%r10)
+-      testl   $_TIF_ALLWORK_MASK,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
 +      testl   $_TIF_ALLWORK_MASK,TI_flags(%r11)
        jnz     sysexit_audit
  sysexit_from_sys_call:
--      andl    $~TS_COMPAT,TI_status(%r10)
+-      andl    $~TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
 +      pax_exit_kernel_user
 +      pax_erase_kstack
 +      andl    $~TS_COMPAT,TI_status(%r11)
        /* clear IF, that popfq doesn't enable interrupts early */
        andl  $~0x200,EFLAGS-R11(%rsp) 
        movl    RIP-R11(%rsp),%edx              /* User %eip */
-@@ -194,6 +229,9 @@ sysexit_from_sys_call:
+@@ -191,6 +231,9 @@ sysexit_from_sys_call:
        movl %eax,%esi                  /* 2nd arg: syscall number */
        movl $AUDIT_ARCH_I386,%edi      /* 1st arg: audit arch */
-       call audit_syscall_entry
+       call __audit_syscall_entry
 +
 +      pax_erase_kstack
 +
        movl RAX-ARGOFFSET(%rsp),%eax   /* reload syscall number */
        cmpq $(IA32_NR_syscalls-1),%rax
        ja ia32_badsys
-@@ -205,7 +243,7 @@ sysexit_from_sys_call:
+@@ -202,7 +245,7 @@ sysexit_from_sys_call:
        .endm
  
        .macro auditsys_exit exit
--      testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),TI_flags(%r10)
+-      testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
 +      testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),TI_flags(%r11)
        jnz ia32_ret_from_sys_call
        TRACE_IRQS_ON
        sti
-@@ -215,12 +253,12 @@ sysexit_from_sys_call:
+@@ -213,11 +256,12 @@ sysexit_from_sys_call:
+ 1:    setbe %al               /* 1 if error, 0 if not */
        movzbl %al,%edi         /* zero-extend that into %edi */
-       inc %edi /* first arg, 0->1(AUDITSC_SUCCESS), 1->2(AUDITSC_FAILURE) */
-       call audit_syscall_exit
--      GET_THREAD_INFO(%r10)
+       call __audit_syscall_exit
 +      GET_THREAD_INFO(%r11)
-       movl RAX-ARGOFFSET(%rsp),%eax   /* reload syscall return value */
+       movq RAX-ARGOFFSET(%rsp),%rax   /* reload syscall return value */
        movl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),%edi
        cli
        TRACE_IRQS_OFF
--      testl %edi,TI_flags(%r10)
+-      testl %edi,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
 +      testl %edi,TI_flags(%r11)
        jz \exit
        CLEAR_RREGS -ARGOFFSET
        jmp int_with_check
-@@ -238,7 +276,7 @@ sysexit_audit:
+@@ -235,7 +279,7 @@ sysexit_audit:
  
  sysenter_tracesys:
  #ifdef CONFIG_AUDITSYSCALL
--      testl   $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags(%r10)
+-      testl   $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
 +      testl   $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags(%r11)
        jz      sysenter_auditsys
  #endif
        SAVE_REST
-@@ -246,6 +284,9 @@ sysenter_tracesys:
+@@ -243,6 +287,9 @@ sysenter_tracesys:
        movq    $-ENOSYS,RAX(%rsp)/* ptrace can change this for a bad syscall */
        movq    %rsp,%rdi        /* &pt_regs -> arg1 */
        call    syscall_trace_enter
@@ -6803,7 +8879,7 @@ index 54edb207..9335b5f 100644
        LOAD_ARGS32 ARGOFFSET  /* reload args from stack in case ptrace changed it */
        RESTORE_REST
        cmpq    $(IA32_NR_syscalls-1),%rax
-@@ -277,19 +318,20 @@ ENDPROC(ia32_sysenter_target)
+@@ -274,19 +321,20 @@ ENDPROC(ia32_sysenter_target)
  ENTRY(ia32_cstar_target)
        CFI_STARTPROC32 simple
        CFI_SIGNAL_FRAME
@@ -6826,7 +8902,7 @@ index 54edb207..9335b5f 100644
        movl    %eax,%eax       /* zero extension */
        movq    %rax,ORIG_RAX-ARGOFFSET(%rsp)
        movq    %rcx,RIP-ARGOFFSET(%rsp)
-@@ -305,13 +347,19 @@ ENTRY(ia32_cstar_target)
+@@ -302,12 +350,19 @@ ENTRY(ia32_cstar_target)
        /* no need to do an access_ok check here because r8 has been
           32bit zero extended */ 
        /* hardware stack frame is complete now */      
@@ -6840,44 +8916,42 @@ index 54edb207..9335b5f 100644
        .section __ex_table,"a"
        .quad 1b,ia32_badarg
        .previous       
--      GET_THREAD_INFO(%r10)
--      orl   $TS_COMPAT,TI_status(%r10)
--      testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10)
+-      orl     $TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      testl   $_TIF_WORK_SYSCALL_ENTRY,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
 +      GET_THREAD_INFO(%r11)
 +      orl   $TS_COMPAT,TI_status(%r11)
 +      testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r11)
        CFI_REMEMBER_STATE
        jnz   cstar_tracesys
        cmpq $IA32_NR_syscalls-1,%rax
-@@ -321,13 +369,15 @@ cstar_do_call:
+@@ -317,12 +372,15 @@ cstar_do_call:
  cstar_dispatch:
        call *ia32_sys_call_table(,%rax,8)
        movq %rax,RAX-ARGOFFSET(%rsp)
--      GET_THREAD_INFO(%r10)
 +      GET_THREAD_INFO(%r11)
        DISABLE_INTERRUPTS(CLBR_NONE)
        TRACE_IRQS_OFF
--      testl $_TIF_ALLWORK_MASK,TI_flags(%r10)
+-      testl $_TIF_ALLWORK_MASK,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
 +      testl $_TIF_ALLWORK_MASK,TI_flags(%r11)
        jnz sysretl_audit
  sysretl_from_sys_call:
--      andl $~TS_COMPAT,TI_status(%r10)
+-      andl $~TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
 +      pax_exit_kernel_user
 +      pax_erase_kstack
 +      andl $~TS_COMPAT,TI_status(%r11)
        RESTORE_ARGS 0,-ARG_SKIP,0,0,0
        movl RIP-ARGOFFSET(%rsp),%ecx
        CFI_REGISTER rip,rcx
-@@ -355,7 +405,7 @@ sysretl_audit:
+@@ -350,7 +408,7 @@ sysretl_audit:
  
  cstar_tracesys:
  #ifdef CONFIG_AUDITSYSCALL
--      testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags(%r10)
+-      testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
 +      testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags(%r11)
        jz cstar_auditsys
  #endif
        xchgl %r9d,%ebp
-@@ -364,6 +414,9 @@ cstar_tracesys:
+@@ -359,6 +417,9 @@ cstar_tracesys:
        movq $-ENOSYS,RAX(%rsp) /* ptrace can change this for a bad syscall */
        movq %rsp,%rdi        /* &pt_regs -> arg1 */
        call syscall_trace_enter
@@ -6887,7 +8961,7 @@ index 54edb207..9335b5f 100644
        LOAD_ARGS32 ARGOFFSET, 1  /* reload args from stack in case ptrace changed it */
        RESTORE_REST
        xchgl %ebp,%r9d
-@@ -409,20 +462,21 @@ ENTRY(ia32_syscall)
+@@ -404,19 +465,21 @@ ENTRY(ia32_syscall)
        CFI_REL_OFFSET  rip,RIP-RIP
        PARAVIRT_ADJUST_EXCEPTION_FRAME
        SWAPGS
@@ -6902,9 +8976,8 @@ index 54edb207..9335b5f 100644
        /* note the registers are not zero extended to the sf.
           this could be a problem. */
        SAVE_ARGS 0,1,0
--      GET_THREAD_INFO(%r10)
--      orl   $TS_COMPAT,TI_status(%r10)
--      testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10)
+-      orl $TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+-      testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
 +      pax_enter_kernel_user
 +      /*
 +       * No need to follow this irqs on/off section: the syscall
@@ -6917,7 +8990,7 @@ index 54edb207..9335b5f 100644
        jnz ia32_tracesys
        cmpq $(IA32_NR_syscalls-1),%rax
        ja ia32_badsys
-@@ -441,6 +495,9 @@ ia32_tracesys:
+@@ -435,6 +498,9 @@ ia32_tracesys:
        movq $-ENOSYS,RAX(%rsp) /* ptrace can change this for a bad syscall */
        movq %rsp,%rdi        /* &pt_regs -> arg1 */
        call syscall_trace_enter
@@ -6927,16 +9000,8 @@ index 54edb207..9335b5f 100644
        LOAD_ARGS32 ARGOFFSET  /* reload args from stack in case ptrace changed it */
        RESTORE_REST
        cmpq $(IA32_NR_syscalls-1),%rax
-@@ -455,6 +512,7 @@ ia32_badsys:
- quiet_ni_syscall:
-       movq $-ENOSYS,%rax
-+      pax_force_retaddr
-       ret
-       CFI_ENDPROC
-       
 diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
-index f6f5c53..b358b28 100644
+index aec2202..f76174e 100644
 --- a/arch/x86/ia32/sys_ia32.c
 +++ b/arch/x86/ia32/sys_ia32.c
 @@ -69,8 +69,8 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low,
@@ -6950,18 +9015,7 @@ index f6f5c53..b358b28 100644
        SET_UID(uid, stat->uid);
        SET_GID(gid, stat->gid);
        if (!access_ok(VERIFY_WRITE, ubuf, sizeof(struct stat64)) ||
-@@ -308,8 +308,8 @@ asmlinkage long sys32_rt_sigprocmask(int how, compat_sigset_t __user *set,
-       }
-       set_fs(KERNEL_DS);
-       ret = sys_rt_sigprocmask(how,
--                               set ? (sigset_t __user *)&s : NULL,
--                               oset ? (sigset_t __user *)&s : NULL,
-+                               set ? (sigset_t __force_user *)&s : NULL,
-+                               oset ? (sigset_t __force_user *)&s : NULL,
-                                sigsetsize);
-       set_fs(old_fs);
-       if (ret)
-@@ -332,7 +332,7 @@ asmlinkage long sys32_alarm(unsigned int seconds)
+@@ -292,7 +292,7 @@ asmlinkage long sys32_alarm(unsigned int seconds)
        return alarm_setitimer(seconds);
  }
  
@@ -6970,7 +9024,7 @@ index f6f5c53..b358b28 100644
                              int options)
  {
        return compat_sys_wait4(pid, stat_addr, options, NULL);
-@@ -353,7 +353,7 @@ asmlinkage long sys32_sched_rr_get_interval(compat_pid_t pid,
+@@ -313,7 +313,7 @@ asmlinkage long sys32_sched_rr_get_interval(compat_pid_t pid,
        mm_segment_t old_fs = get_fs();
  
        set_fs(KERNEL_DS);
@@ -6979,7 +9033,7 @@ index f6f5c53..b358b28 100644
        set_fs(old_fs);
        if (put_compat_timespec(&t, interval))
                return -EFAULT;
-@@ -369,7 +369,7 @@ asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set,
+@@ -329,7 +329,7 @@ asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set,
        mm_segment_t old_fs = get_fs();
  
        set_fs(KERNEL_DS);
@@ -6988,7 +9042,7 @@ index f6f5c53..b358b28 100644
        set_fs(old_fs);
        if (!ret) {
                switch (_NSIG_WORDS) {
-@@ -394,7 +394,7 @@ asmlinkage long sys32_rt_sigqueueinfo(int pid, int sig,
+@@ -354,7 +354,7 @@ asmlinkage long sys32_rt_sigqueueinfo(int pid, int sig,
        if (copy_siginfo_from_user32(&info, uinfo))
                return -EFAULT;
        set_fs(KERNEL_DS);
@@ -6997,7 +9051,7 @@ index f6f5c53..b358b28 100644
        set_fs(old_fs);
        return ret;
  }
-@@ -439,7 +439,7 @@ asmlinkage long sys32_sendfile(int out_fd, int in_fd,
+@@ -399,7 +399,7 @@ asmlinkage long sys32_sendfile(int out_fd, int in_fd,
                return -EFAULT;
  
        set_fs(KERNEL_DS);
@@ -7007,14 +9061,14 @@ index f6f5c53..b358b28 100644
        set_fs(old_fs);
  
 diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h
-index 091508b..0ee32ec 100644
+index 952bd01..7692c6f 100644
 --- a/arch/x86/include/asm/alternative-asm.h
 +++ b/arch/x86/include/asm/alternative-asm.h
 @@ -15,6 +15,45 @@
        .endm
  #endif
  
-+#ifdef CONFIG_PAX_KERNEXEC_PLUGIN
++#ifdef KERNEXEC_PLUGIN
 +      .macro pax_force_retaddr_bts rip=0
 +      btsq $63,\rip(%rsp)
 +      .endm
@@ -7057,7 +9111,7 @@ index 091508b..0ee32ec 100644
        .long \orig - .
        .long \alt - .
 diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alternative.h
-index 37ad100..7d47faa 100644
+index 49331be..9706065 100644
 --- a/arch/x86/include/asm/alternative.h
 +++ b/arch/x86/include/asm/alternative.h
 @@ -89,7 +89,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
@@ -7070,10 +9124,10 @@ index 37ad100..7d47faa 100644
        ".previous"
  
 diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
-index 9b7273c..e9fcc24 100644
+index d854101..f6ea947 100644
 --- a/arch/x86/include/asm/apic.h
 +++ b/arch/x86/include/asm/apic.h
-@@ -45,7 +45,7 @@ static inline void generic_apic_probe(void)
+@@ -44,7 +44,7 @@ static inline void generic_apic_probe(void)
  
  #ifdef CONFIG_X86_LOCAL_APIC
  
@@ -7105,7 +9159,7 @@ index 20370c6..a2eb9b0 100644
                "popl %%ebp\n\t"
                "popl %%edi\n\t"
 diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h
-index 10572e3..2618d91 100644
+index 58cb6d4..a4b806c 100644
 --- a/arch/x86/include/asm/atomic.h
 +++ b/arch/x86/include/asm/atomic.h
 @@ -22,7 +22,18 @@
@@ -7358,54 +9412,51 @@ index 10572e3..2618d91 100644
                     : "+m" (v->counter), "=qm" (c)
                     : "ir" (i) : "memory");
        return c;
-@@ -180,6 +342,46 @@ static inline int atomic_add_return(int i, atomic_t *v)
+@@ -179,7 +341,7 @@ static inline int atomic_add_return(int i, atomic_t *v)
+               goto no_xadd;
  #endif
        /* Modern 486+ processor */
-       __i = i;
-+      asm volatile(LOCK_PREFIX "xaddl %0, %1\n"
-+
-+#ifdef CONFIG_PAX_REFCOUNT
-+                   "jno 0f\n"
-+                   "movl %0, %1\n"
-+                   "int $4\n0:\n"
-+                   _ASM_EXTABLE(0b, 0b)
-+#endif
-+
-+                   : "+r" (i), "+m" (v->counter)
-+                   : : "memory");
-+      return i + __i;
-+
-+#ifdef CONFIG_M386
-+no_xadd: /* Legacy 386 processor */
-+      local_irq_save(flags);
-+      __i = atomic_read(v);
-+      atomic_set(v, i + __i);
-+      local_irq_restore(flags);
-+      return i + __i;
-+#endif
-+}
-+
-+/**
+-      return i + xadd(&v->counter, i);
++      return i + xadd_check_overflow(&v->counter, i);
+ #ifdef CONFIG_M386
+ no_xadd: /* Legacy 386 processor */
+@@ -192,6 +354,34 @@ no_xadd: /* Legacy 386 processor */
+ }
+ /**
 + * atomic_add_return_unchecked - add integer and return
-+ * @v: pointer of type atomic_unchecked_t
 + * @i: integer value to add
++ * @v: pointer of type atomic_unchecked_t
 + *
 + * Atomically adds @i to @v and returns @i + @v
 + */
 +static inline int atomic_add_return_unchecked(int i, atomic_unchecked_t *v)
 +{
-+      int __i;
 +#ifdef CONFIG_M386
++      int __i;
 +      unsigned long flags;
 +      if (unlikely(boot_cpu_data.x86 <= 3))
 +              goto no_xadd;
 +#endif
 +      /* Modern 486+ processor */
-+      __i = i;
-       asm volatile(LOCK_PREFIX "xaddl %0, %1"
-                    : "+r" (i), "+m" (v->counter)
-                    : : "memory");
-@@ -208,6 +410,10 @@ static inline int atomic_sub_return(int i, atomic_t *v)
++      return i + xadd(&v->counter, i);
++
++#ifdef CONFIG_M386
++no_xadd: /* Legacy 386 processor */
++      raw_local_irq_save(flags);
++      __i = atomic_read_unchecked(v);
++      atomic_set_unchecked(v, i + __i);
++      raw_local_irq_restore(flags);
++      return i + __i;
++#endif
++}
++
++/**
+  * atomic_sub_return - subtract integer and return
+  * @v: pointer of type atomic_t
+  * @i: integer value to subtract
+@@ -204,6 +394,10 @@ static inline int atomic_sub_return(int i, atomic_t *v)
  }
  
  #define atomic_inc_return(v)  (atomic_add_return(1, v))
@@ -7416,7 +9467,7 @@ index 10572e3..2618d91 100644
  #define atomic_dec_return(v)  (atomic_sub_return(1, v))
  
  static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
-@@ -215,11 +421,21 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
+@@ -211,11 +405,21 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
        return cmpxchg(&v->counter, old, new);
  }
  
@@ -7438,7 +9489,7 @@ index 10572e3..2618d91 100644
  /**
   * __atomic_add_unless - add unless the number is already a given value
   * @v: pointer of type atomic_t
-@@ -231,12 +447,25 @@ static inline int atomic_xchg(atomic_t *v, int new)
+@@ -227,12 +431,25 @@ static inline int atomic_xchg(atomic_t *v, int new)
   */
  static inline int __atomic_add_unless(atomic_t *v, int a, int u)
  {
@@ -7467,7 +9518,7 @@ index 10572e3..2618d91 100644
                if (likely(old == c))
                        break;
                c = old;
-@@ -244,6 +473,48 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
+@@ -240,6 +457,48 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
        return c;
  }
  
@@ -7516,8 +9567,53 @@ index 10572e3..2618d91 100644
  
  /*
   * atomic_dec_if_positive - decrement by 1 if old value positive
+@@ -293,14 +552,37 @@ static inline void atomic_or_long(unsigned long *v1, unsigned long v2)
+ #endif
+ /* These are x86-specific, used by some header files */
+-#define atomic_clear_mask(mask, addr)                         \
+-      asm volatile(LOCK_PREFIX "andl %0,%1"                   \
+-                   : : "r" (~(mask)), "m" (*(addr)) : "memory")
++static inline void atomic_clear_mask(unsigned int mask, atomic_t *v)
++{
++      asm volatile(LOCK_PREFIX "andl %1,%0"
++                   : "+m" (v->counter)
++                   : "r" (~(mask))
++                   : "memory");
++}
+-#define atomic_set_mask(mask, addr)                           \
+-      asm volatile(LOCK_PREFIX "orl %0,%1"                    \
+-                   : : "r" ((unsigned)(mask)), "m" (*(addr))  \
+-                   : "memory")
++static inline void atomic_clear_mask_unchecked(unsigned int mask, atomic_unchecked_t *v)
++{
++      asm volatile(LOCK_PREFIX "andl %1,%0"
++                   : "+m" (v->counter)
++                   : "r" (~(mask))
++                   : "memory");
++}
++
++static inline void atomic_set_mask(unsigned int mask, atomic_t *v)
++{
++      asm volatile(LOCK_PREFIX "orl %1,%0"
++                   : "+m" (v->counter)
++                   : "r" (mask)
++                   : "memory");
++}
++
++static inline void atomic_set_mask_unchecked(unsigned int mask, atomic_unchecked_t *v)
++{
++      asm volatile(LOCK_PREFIX "orl %1,%0"
++                   : "+m" (v->counter)
++                   : "r" (mask)
++                   : "memory");
++}
+ /* Atomic operations are already serializing on x86 */
+ #define smp_mb__before_atomic_dec()   barrier()
 diff --git a/arch/x86/include/asm/atomic64_32.h b/arch/x86/include/asm/atomic64_32.h
-index 24098aa..1e37723 100644
+index 1981199..36b9dfb 100644
 --- a/arch/x86/include/asm/atomic64_32.h
 +++ b/arch/x86/include/asm/atomic64_32.h
 @@ -12,6 +12,14 @@ typedef struct {
@@ -7534,8 +9630,40 @@ index 24098aa..1e37723 100644
 +
  #define ATOMIC64_INIT(val)    { (val) }
  
- #ifdef CONFIG_X86_CMPXCHG64
-@@ -38,6 +46,21 @@ static inline long long atomic64_cmpxchg(atomic64_t *v, long long o, long long n
+ #define __ATOMIC64_DECL(sym) void atomic64_##sym(atomic64_t *, ...)
+@@ -37,21 +45,31 @@ typedef struct {
+       ATOMIC64_DECL_ONE(sym##_386)
+ ATOMIC64_DECL_ONE(add_386);
++ATOMIC64_DECL_ONE(add_unchecked_386);
+ ATOMIC64_DECL_ONE(sub_386);
++ATOMIC64_DECL_ONE(sub_unchecked_386);
+ ATOMIC64_DECL_ONE(inc_386);
++ATOMIC64_DECL_ONE(inc_unchecked_386);
+ ATOMIC64_DECL_ONE(dec_386);
++ATOMIC64_DECL_ONE(dec_unchecked_386);
+ #endif
+ #define alternative_atomic64(f, out, in...) \
+       __alternative_atomic64(f, f, ASM_OUTPUT2(out), ## in)
+ ATOMIC64_DECL(read);
++ATOMIC64_DECL(read_unchecked);
+ ATOMIC64_DECL(set);
++ATOMIC64_DECL(set_unchecked);
+ ATOMIC64_DECL(xchg);
+ ATOMIC64_DECL(add_return);
++ATOMIC64_DECL(add_return_unchecked);
+ ATOMIC64_DECL(sub_return);
++ATOMIC64_DECL(sub_return_unchecked);
+ ATOMIC64_DECL(inc_return);
++ATOMIC64_DECL(inc_return_unchecked);
+ ATOMIC64_DECL(dec_return);
++ATOMIC64_DECL(dec_return_unchecked);
+ ATOMIC64_DECL(dec_if_positive);
+ ATOMIC64_DECL(inc_not_zero);
+ ATOMIC64_DECL(add_unless);
+@@ -77,6 +95,21 @@ static inline long long atomic64_cmpxchg(atomic64_t *v, long long o, long long n
  }
  
  /**
@@ -7557,7 +9685,7 @@ index 24098aa..1e37723 100644
   * atomic64_xchg - xchg atomic64 variable
   * @v: pointer to type atomic64_t
   * @n: value to assign
-@@ -77,6 +100,24 @@ static inline void atomic64_set(atomic64_t *v, long long i)
+@@ -112,6 +145,22 @@ static inline void atomic64_set(atomic64_t *v, long long i)
  }
  
  /**
@@ -7571,18 +9699,16 @@ index 24098aa..1e37723 100644
 +{
 +      unsigned high = (unsigned)(i >> 32);
 +      unsigned low = (unsigned)i;
-+      asm volatile(ATOMIC64_ALTERNATIVE(set)
-+                   : "+b" (low), "+c" (high)
-+                   : "S" (v)
-+                   : "eax", "edx", "memory"
-+                   );
++      alternative_atomic64(set, /* no output */,
++                           "S" (v), "b" (low), "c" (high)
++                           : "eax", "edx", "memory");
 +}
 +
 +/**
   * atomic64_read - read atomic64 variable
   * @v: pointer to type atomic64_t
   *
-@@ -93,6 +134,22 @@ static inline long long atomic64_read(atomic64_t *v)
+@@ -125,6 +174,19 @@ static inline long long atomic64_read(const atomic64_t *v)
   }
  
  /**
@@ -7594,10 +9720,7 @@ index 24098aa..1e37723 100644
 +static inline long long atomic64_read_unchecked(atomic64_unchecked_t *v)
 +{
 +      long long r;
-+      asm volatile(ATOMIC64_ALTERNATIVE(read_unchecked)
-+                   : "=A" (r), "+c" (v)
-+                   : : "memory"
-+                   );
++      alternative_atomic64(read, "=&A" (r), "c" (v) : "memory");
 +      return r;
 + }
 +
@@ -7605,7 +9728,7 @@ index 24098aa..1e37723 100644
   * atomic64_add_return - add and return
   * @i: integer value to add
   * @v: pointer to type atomic64_t
-@@ -108,6 +165,22 @@ static inline long long atomic64_add_return(long long i, atomic64_t *v)
+@@ -139,6 +201,21 @@ static inline long long atomic64_add_return(long long i, atomic64_t *v)
        return i;
  }
  
@@ -7618,35 +9741,31 @@ index 24098aa..1e37723 100644
 + */
 +static inline long long atomic64_add_return_unchecked(long long i, atomic64_unchecked_t *v)
 +{
-+      asm volatile(ATOMIC64_ALTERNATIVE(add_return_unchecked)
-+                   : "+A" (i), "+c" (v)
-+                   : : "memory"
-+                   );
++      alternative_atomic64(add_return_unchecked,
++                           ASM_OUTPUT2("+A" (i), "+c" (v)),
++                           ASM_NO_INPUT_CLOBBER("memory"));
 +      return i;
 +}
 +
  /*
   * Other variants with different arithmetic operators:
   */
-@@ -131,6 +204,17 @@ static inline long long atomic64_inc_return(atomic64_t *v)
+@@ -158,6 +235,14 @@ static inline long long atomic64_inc_return(atomic64_t *v)
        return a;
  }
  
 +static inline long long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
 +{
 +      long long a;
-+      asm volatile(ATOMIC64_ALTERNATIVE(inc_return_unchecked)
-+                   : "=A" (a)
-+                   : "S" (v)
-+                   : "memory", "ecx"
-+                   );
++      alternative_atomic64(inc_return_unchecked, "=&A" (a),
++                           "S" (v) : "memory", "ecx");
 +      return a;
 +}
 +
  static inline long long atomic64_dec_return(atomic64_t *v)
  {
        long long a;
-@@ -159,6 +243,22 @@ static inline long long atomic64_add(long long i, atomic64_t *v)
+@@ -182,6 +267,21 @@ static inline long long atomic64_add(long long i, atomic64_t *v)
  }
  
  /**
@@ -7658,10 +9777,9 @@ index 24098aa..1e37723 100644
 + */
 +static inline long long atomic64_add_unchecked(long long i, atomic64_unchecked_t *v)
 +{
-+      asm volatile(ATOMIC64_ALTERNATIVE_(add_unchecked, add_return_unchecked)
-+                   : "+A" (i), "+c" (v)
-+                   : : "memory"
-+                   );
++      __alternative_atomic64(add_unchecked, add_return_unchecked,
++                             ASM_OUTPUT2("+A" (i), "+c" (v)),
++                             ASM_NO_INPUT_CLOBBER("memory"));
 +      return i;
 +}
 +
@@ -7670,7 +9788,7 @@ index 24098aa..1e37723 100644
   * @i: integer value to subtract
   * @v: pointer to type atomic64_t
 diff --git a/arch/x86/include/asm/atomic64_64.h b/arch/x86/include/asm/atomic64_64.h
-index 017594d..d3fcf72 100644
+index 0e1cbfc..5623683 100644
 --- a/arch/x86/include/asm/atomic64_64.h
 +++ b/arch/x86/include/asm/atomic64_64.h
 @@ -18,7 +18,19 @@
@@ -7903,23 +10021,11 @@ index 017594d..d3fcf72 100644
                     : "=m" (v->counter), "=qm" (c)
                     : "er" (i), "m" (v->counter) : "memory");
        return c;
-@@ -171,7 +317,31 @@ static inline int atomic64_add_negative(long i, atomic64_t *v)
+@@ -170,6 +316,18 @@ static inline int atomic64_add_negative(long i, atomic64_t *v)
+  */
  static inline long atomic64_add_return(long i, atomic64_t *v)
  {
-       long __i = i;
--      asm volatile(LOCK_PREFIX "xaddq %0, %1;"
-+      asm volatile(LOCK_PREFIX "xaddq %0, %1\n"
-+
-+#ifdef CONFIG_PAX_REFCOUNT
-+                   "jno 0f\n"
-+                   "movq %0, %1\n"
-+                   "int $4\n0:\n"
-+                   _ASM_EXTABLE(0b, 0b)
-+#endif
-+
-+                   : "+r" (i), "+m" (v->counter)
-+                   : : "memory");
-+      return i + __i;
++      return i + xadd_check_overflow(&v->counter, i);
 +}
 +
 +/**
@@ -7931,12 +10037,10 @@ index 017594d..d3fcf72 100644
 + */
 +static inline long atomic64_add_return_unchecked(long i, atomic64_unchecked_t *v)
 +{
-+      long __i = i;
-+      asm volatile(LOCK_PREFIX "xaddq %0, %1"
-                    : "+r" (i), "+m" (v->counter)
-                    : : "memory");
-       return i + __i;
-@@ -183,6 +353,10 @@ static inline long atomic64_sub_return(long i, atomic64_t *v)
+       return i + xadd(&v->counter, i);
+ }
+@@ -179,6 +337,10 @@ static inline long atomic64_sub_return(long i, atomic64_t *v)
  }
  
  #define atomic64_inc_return(v)  (atomic64_add_return(1, (v)))
@@ -7947,7 +10051,7 @@ index 017594d..d3fcf72 100644
  #define atomic64_dec_return(v)  (atomic64_sub_return(1, (v)))
  
  static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
-@@ -190,6 +364,11 @@ static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
+@@ -186,6 +348,11 @@ static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
        return cmpxchg(&v->counter, old, new);
  }
  
@@ -7959,7 +10063,7 @@ index 017594d..d3fcf72 100644
  static inline long atomic64_xchg(atomic64_t *v, long new)
  {
        return xchg(&v->counter, new);
-@@ -206,17 +385,30 @@ static inline long atomic64_xchg(atomic64_t *v, long new)
+@@ -202,17 +369,30 @@ static inline long atomic64_xchg(atomic64_t *v, long new)
   */
  static inline int atomic64_add_unless(atomic64_t *v, long a, long u)
  {
@@ -7995,7 +10099,7 @@ index 017594d..d3fcf72 100644
  
  #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
 diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
-index 1775d6e..b65017f 100644
+index b97596e..9bd48b06 100644
 --- a/arch/x86/include/asm/bitops.h
 +++ b/arch/x86/include/asm/bitops.h
 @@ -38,7 +38,7 @@
@@ -8049,10 +10153,10 @@ index 48f99f1..d78ebf9 100644
  #ifdef CONFIG_X86_VSMP
  #ifdef CONFIG_SMP
 diff --git a/arch/x86/include/asm/cacheflush.h b/arch/x86/include/asm/cacheflush.h
-index 4e12668..501d239 100644
+index 9863ee3..4a1f8e1 100644
 --- a/arch/x86/include/asm/cacheflush.h
 +++ b/arch/x86/include/asm/cacheflush.h
-@@ -26,7 +26,7 @@ static inline unsigned long get_page_memtype(struct page *pg)
+@@ -27,7 +27,7 @@ static inline unsigned long get_page_memtype(struct page *pg)
        unsigned long pg_flags = pg->flags & _PGMT_MASK;
  
        if (pg_flags == _PGMT_DEFAULT)
@@ -8098,11 +10202,73 @@ index 46fc474..b02b0f9 100644
                                                 len, sum, NULL, err_ptr);
  
        if (len)
+diff --git a/arch/x86/include/asm/cmpxchg.h b/arch/x86/include/asm/cmpxchg.h
+index 99480e5..d81165b 100644
+--- a/arch/x86/include/asm/cmpxchg.h
++++ b/arch/x86/include/asm/cmpxchg.h
+@@ -14,8 +14,12 @@ extern void __cmpxchg_wrong_size(void)
+       __compiletime_error("Bad argument size for cmpxchg");
+ extern void __xadd_wrong_size(void)
+       __compiletime_error("Bad argument size for xadd");
++extern void __xadd_check_overflow_wrong_size(void)
++      __compiletime_error("Bad argument size for xadd_check_overflow");
+ extern void __add_wrong_size(void)
+       __compiletime_error("Bad argument size for add");
++extern void __add_check_overflow_wrong_size(void)
++      __compiletime_error("Bad argument size for add_check_overflow");
+ /*
+  * Constants for operation sizes. On 32-bit, the 64-bit size it set to
+@@ -67,6 +71,34 @@ extern void __add_wrong_size(void)
+               __ret;                                                  \
+       })
++#define __xchg_op_check_overflow(ptr, arg, op, lock)                  \
++      ({                                                              \
++              __typeof__ (*(ptr)) __ret = (arg);                      \
++              switch (sizeof(*(ptr))) {                               \
++              case __X86_CASE_L:                                      \
++                      asm volatile (lock #op "l %0, %1\n"             \
++                                    "jno 0f\n"                        \
++                                    "mov %0,%1\n"                     \
++                                    "int $4\n0:\n"                    \
++                                    _ASM_EXTABLE(0b, 0b)              \
++                                    : "+r" (__ret), "+m" (*(ptr))     \
++                                    : : "memory", "cc");              \
++                      break;                                          \
++              case __X86_CASE_Q:                                      \
++                      asm volatile (lock #op "q %q0, %1\n"            \
++                                    "jno 0f\n"                        \
++                                    "mov %0,%1\n"                     \
++                                    "int $4\n0:\n"                    \
++                                    _ASM_EXTABLE(0b, 0b)              \
++                                    : "+r" (__ret), "+m" (*(ptr))     \
++                                    : : "memory", "cc");              \
++                      break;                                          \
++              default:                                                \
++                      __ ## op ## _check_overflow_wrong_size();       \
++              }                                                       \
++              __ret;                                                  \
++      })
++
+ /*
+  * Note: no "lock" prefix even on SMP: xchg always implies lock anyway.
+  * Since this is generally used to protect other memory information, we
+@@ -167,6 +199,9 @@ extern void __add_wrong_size(void)
+ #define xadd_sync(ptr, inc)   __xadd((ptr), (inc), "lock; ")
+ #define xadd_local(ptr, inc)  __xadd((ptr), (inc), "")
++#define __xadd_check_overflow(ptr, inc, lock) __xchg_op_check_overflow((ptr), (inc), xadd, lock)
++#define xadd_check_overflow(ptr, inc)         __xadd_check_overflow((ptr), (inc), LOCK_PREFIX)
++
+ #define __add(ptr, inc, lock)                                         \
+       ({                                                              \
+               __typeof__ (*(ptr)) __ret = (inc);                      \
 diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
-index 88b23a4..d2e5f9f 100644
+index f91e80f..7f9bd27 100644
 --- a/arch/x86/include/asm/cpufeature.h
 +++ b/arch/x86/include/asm/cpufeature.h
-@@ -358,7 +358,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
+@@ -371,7 +371,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
                             ".section .discard,\"aw\",@progbits\n"
                             " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
                             ".previous\n"
@@ -8112,7 +10278,7 @@ index 88b23a4..d2e5f9f 100644
                             "4:\n"
                             ".previous\n"
 diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
-index 41935fa..3b40db8 100644
+index e95822d..a90010e 100644
 --- a/arch/x86/include/asm/desc.h
 +++ b/arch/x86/include/asm/desc.h
 @@ -4,6 +4,7 @@
@@ -8131,11 +10297,13 @@ index 41935fa..3b40db8 100644
  
        desc->s                 = 1;
        desc->dpl               = 0x3;
-@@ -34,17 +36,12 @@ static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *in
+@@ -34,19 +36,14 @@ static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *in
  }
  
  extern struct desc_ptr idt_descr;
 -extern gate_desc idt_table[];
+ extern struct desc_ptr nmi_idt_descr;
+-extern gate_desc nmi_idt_table[];
 -
 -struct gdt_page {
 -      struct desc_struct gdt[GDT_ENTRIES];
@@ -8143,6 +10311,7 @@ index 41935fa..3b40db8 100644
 -
 -DECLARE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page);
 +extern gate_desc idt_table[256];
++extern gate_desc nmi_idt_table[256];
  
 +extern struct desc_struct cpu_gdt_table[NR_CPUS][PAGE_SIZE / sizeof(struct desc_struct)];
  static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu)
@@ -8152,7 +10321,7 @@ index 41935fa..3b40db8 100644
  }
  
  #ifdef CONFIG_X86_64
-@@ -69,8 +66,14 @@ static inline void pack_gate(gate_desc *gate, unsigned char type,
+@@ -71,8 +68,14 @@ static inline void pack_gate(gate_desc *gate, unsigned char type,
                             unsigned long base, unsigned dpl, unsigned flags,
                             unsigned short seg)
  {
@@ -8169,7 +10338,7 @@ index 41935fa..3b40db8 100644
  }
  
  #endif
-@@ -115,12 +118,16 @@ static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries)
+@@ -117,12 +120,16 @@ static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries)
  
  static inline void native_write_idt_entry(gate_desc *idt, int entry, const gate_desc *gate)
  {
@@ -8186,7 +10355,7 @@ index 41935fa..3b40db8 100644
  }
  
  static inline void
-@@ -134,7 +141,9 @@ native_write_gdt_entry(struct desc_struct *gdt, int entry, const void *desc, int
+@@ -136,7 +143,9 @@ native_write_gdt_entry(struct desc_struct *gdt, int entry, const void *desc, int
        default:        size = sizeof(*gdt);            break;
        }
  
@@ -8196,7 +10365,7 @@ index 41935fa..3b40db8 100644
  }
  
  static inline void pack_descriptor(struct desc_struct *desc, unsigned long base,
-@@ -207,7 +216,9 @@ static inline void native_set_ldt(const void *addr, unsigned int entries)
+@@ -209,7 +218,9 @@ static inline void native_set_ldt(const void *addr, unsigned int entries)
  
  static inline void native_load_tr_desc(void)
  {
@@ -8206,7 +10375,7 @@ index 41935fa..3b40db8 100644
  }
  
  static inline void native_load_gdt(const struct desc_ptr *dtr)
-@@ -244,8 +255,10 @@ static inline void native_load_tls(struct thread_struct *t, unsigned int cpu)
+@@ -246,8 +257,10 @@ static inline void native_load_tls(struct thread_struct *t, unsigned int cpu)
        struct desc_struct *gdt = get_cpu_gdt_table(cpu);
        unsigned int i;
  
@@ -8217,16 +10386,25 @@ index 41935fa..3b40db8 100644
  }
  
  #define _LDT_empty(info)                              \
-@@ -307,7 +320,7 @@ static inline void set_desc_limit(struct desc_struct *desc, unsigned long limit)
-       desc->limit = (limit >> 16) & 0xf;
+@@ -310,7 +323,7 @@ static inline void set_desc_limit(struct desc_struct *desc, unsigned long limit)
  }
  
+ #ifdef CONFIG_X86_64
+-static inline void set_nmi_gate(int gate, void *addr)
++static inline void set_nmi_gate(int gate, const void *addr)
+ {
+       gate_desc s;
+@@ -319,7 +332,7 @@ static inline void set_nmi_gate(int gate, void *addr)
+ }
+ #endif
 -static inline void _set_gate(int gate, unsigned type, void *addr,
 +static inline void _set_gate(int gate, unsigned type, const void *addr,
                             unsigned dpl, unsigned ist, unsigned seg)
  {
        gate_desc s;
-@@ -326,7 +339,7 @@ static inline void _set_gate(int gate, unsigned type, void *addr,
+@@ -338,7 +351,7 @@ static inline void _set_gate(int gate, unsigned type, void *addr,
   * Pentium F0 0F bugfix can have resulted in the mapped
   * IDT being write-protected.
   */
@@ -8235,7 +10413,7 @@ index 41935fa..3b40db8 100644
  {
        BUG_ON((unsigned)n > 0xFF);
        _set_gate(n, GATE_INTERRUPT, addr, 0, 0, __KERNEL_CS);
-@@ -356,19 +369,19 @@ static inline void alloc_intr_gate(unsigned int n, void *addr)
+@@ -368,19 +381,19 @@ static inline void alloc_intr_gate(unsigned int n, void *addr)
  /*
   * This routine sets up an interrupt gate at directory privilege level 3.
   */
@@ -8258,7 +10436,7 @@ index 41935fa..3b40db8 100644
  {
        BUG_ON((unsigned)n > 0xFF);
        _set_gate(n, GATE_TRAP, addr, 0, 0, __KERNEL_CS);
-@@ -377,19 +390,31 @@ static inline void set_trap_gate(unsigned int n, void *addr)
+@@ -389,19 +402,31 @@ static inline void set_trap_gate(unsigned int n, void *addr)
  static inline void set_task_gate(unsigned int n, unsigned int gdt_entry)
  {
        BUG_ON((unsigned)n > 0xFF);
@@ -8311,7 +10489,7 @@ index 278441f..b95a174 100644
  } __attribute__((packed));
  
 diff --git a/arch/x86/include/asm/e820.h b/arch/x86/include/asm/e820.h
-index 908b969..a1f4eb4 100644
+index 3778256..c5d4fce 100644
 --- a/arch/x86/include/asm/e820.h
 +++ b/arch/x86/include/asm/e820.h
 @@ -69,7 +69,7 @@ struct e820map {
@@ -8324,10 +10502,10 @@ index 908b969..a1f4eb4 100644
  
  #define BIOS_ROM_BASE         0xffe00000
 diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
-index f2ad216..eb24c96 100644
+index 5939f44..f8845f6 100644
 --- a/arch/x86/include/asm/elf.h
 +++ b/arch/x86/include/asm/elf.h
-@@ -237,7 +237,25 @@ extern int force_personality32;
+@@ -243,7 +243,25 @@ extern int force_personality32;
     the loader.  We need to make sure that it is out of the way of the program
     that it will "exec", and that there is sufficient room for the brk.  */
  
@@ -8346,14 +10524,14 @@ index f2ad216..eb24c96 100644
 +#else
 +#define PAX_ELF_ET_DYN_BASE   0x400000UL
 +
-+#define PAX_DELTA_MMAP_LEN    ((test_thread_flag(TIF_IA32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
-+#define PAX_DELTA_STACK_LEN   ((test_thread_flag(TIF_IA32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
++#define PAX_DELTA_MMAP_LEN    ((test_thread_flag(TIF_ADDR32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
++#define PAX_DELTA_STACK_LEN   ((test_thread_flag(TIF_ADDR32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
 +#endif
 +#endif
  
  /* This yields a mask that user programs can use to figure out what
     instruction set this CPU supports.  This could be done in user space,
-@@ -290,9 +308,7 @@ do {                                                                       \
+@@ -296,16 +314,12 @@ do {                                                                     \
  
  #define ARCH_DLINFO                                                   \
  do {                                                                  \
@@ -8363,8 +10541,16 @@ index f2ad216..eb24c96 100644
 +      NEW_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso);        \
  } while (0)
  
+ #define ARCH_DLINFO_X32                                                       \
+ do {                                                                  \
+-      if (vdso_enabled)                                               \
+-              NEW_AUX_ENT(AT_SYSINFO_EHDR,                            \
+-                          (unsigned long)current->mm->context.vdso);  \
++      NEW_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso);        \
+ } while (0)
  #define AT_SYSINFO            32
-@@ -303,7 +319,7 @@ do {                                                                       \
+@@ -320,7 +334,7 @@ else                                                                       \
  
  #endif /* !CONFIG_X86_32 */
  
@@ -8373,14 +10559,16 @@ index f2ad216..eb24c96 100644
  
  #define VDSO_ENTRY                                                    \
        ((unsigned long)VDSO32_SYMBOL(VDSO_CURRENT_BASE, vsyscall))
-@@ -317,7 +333,4 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm,
+@@ -336,9 +350,6 @@ extern int x32_setup_additional_pages(struct linux_binprm *bprm,
  extern int syscall32_setup_pages(struct linux_binprm *, int exstack);
  #define compat_arch_setup_additional_pages    syscall32_setup_pages
  
 -extern unsigned long arch_randomize_brk(struct mm_struct *mm);
 -#define arch_randomize_brk arch_randomize_brk
 -
- #endif /* _ASM_X86_ELF_H */
+ /*
+  * True on X86_32 or when emulating IA32 on X86_64
+  */
 diff --git a/arch/x86/include/asm/emergency-restart.h b/arch/x86/include/asm/emergency-restart.h
 index cc70c1c..d96d011 100644
 --- a/arch/x86/include/asm/emergency-restart.h
@@ -8393,88 +10581,11 @@ index cc70c1c..d96d011 100644
 +extern void machine_emergency_restart(void) __noreturn;
  
  #endif /* _ASM_X86_EMERGENCY_RESTART_H */
-diff --git a/arch/x86/include/asm/futex.h b/arch/x86/include/asm/futex.h
-index d09bb03..4ea4194 100644
---- a/arch/x86/include/asm/futex.h
-+++ b/arch/x86/include/asm/futex.h
-@@ -12,16 +12,18 @@
- #include <asm/system.h>
- #define __futex_atomic_op1(insn, ret, oldval, uaddr, oparg)   \
-+      typecheck(u32 __user *, uaddr);                         \
-       asm volatile("1:\t" insn "\n"                           \
-                    "2:\t.section .fixup,\"ax\"\n"             \
-                    "3:\tmov\t%3, %1\n"                        \
-                    "\tjmp\t2b\n"                              \
-                    "\t.previous\n"                            \
-                    _ASM_EXTABLE(1b, 3b)                       \
--                   : "=r" (oldval), "=r" (ret), "+m" (*uaddr) \
-+                   : "=r" (oldval), "=r" (ret), "+m" (*(u32 __user *)____m(uaddr))\
-                    : "i" (-EFAULT), "0" (oparg), "1" (0))
- #define __futex_atomic_op2(insn, ret, oldval, uaddr, oparg)   \
-+      typecheck(u32 __user *, uaddr);                         \
-       asm volatile("1:\tmovl  %2, %0\n"                       \
-                    "\tmovl\t%0, %3\n"                         \
-                    "\t" insn "\n"                             \
-@@ -34,7 +36,7 @@
-                    _ASM_EXTABLE(1b, 4b)                       \
-                    _ASM_EXTABLE(2b, 4b)                       \
-                    : "=&a" (oldval), "=&r" (ret),             \
--                     "+m" (*uaddr), "=&r" (tem)               \
-+                     "+m" (*(u32 __user *)____m(uaddr)), "=&r" (tem)  \
-                    : "r" (oparg), "i" (-EFAULT), "1" (0))
- static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
-@@ -61,10 +63,10 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
-       switch (op) {
-       case FUTEX_OP_SET:
--              __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
-+              __futex_atomic_op1(__copyuser_seg"xchgl %0, %2", ret, oldval, uaddr, oparg);
-               break;
-       case FUTEX_OP_ADD:
--              __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval,
-+              __futex_atomic_op1(LOCK_PREFIX __copyuser_seg"xaddl %0, %2", ret, oldval,
-                                  uaddr, oparg);
-               break;
-       case FUTEX_OP_OR:
-@@ -123,13 +125,13 @@ static inline int futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
-       if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
-               return -EFAULT;
--      asm volatile("1:\t" LOCK_PREFIX "cmpxchgl %4, %2\n"
-+      asm volatile("1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgl %4, %2\n"
-                    "2:\t.section .fixup, \"ax\"\n"
-                    "3:\tmov     %3, %0\n"
-                    "\tjmp     2b\n"
-                    "\t.previous\n"
-                    _ASM_EXTABLE(1b, 3b)
--                   : "+r" (ret), "=a" (oldval), "+m" (*uaddr)
-+                   : "+r" (ret), "=a" (oldval), "+m" (*(u32 __user *)____m(uaddr))
-                    : "i" (-EFAULT), "r" (newval), "1" (oldval)
-                    : "memory"
-       );
-diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
-index 0919905..2cf38d6 100644
---- a/arch/x86/include/asm/hw_irq.h
-+++ b/arch/x86/include/asm/hw_irq.h
-@@ -136,8 +136,8 @@ extern void setup_ioapic_dest(void);
- extern void enable_IO_APIC(void);
- /* Statistics */
--extern atomic_t irq_err_count;
--extern atomic_t irq_mis_count;
-+extern atomic_unchecked_t irq_err_count;
-+extern atomic_unchecked_t irq_mis_count;
- /* EISA */
- extern void eisa_set_level_irq(unsigned int irq);
-diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
-index c9e09ea..73888df 100644
---- a/arch/x86/include/asm/i387.h
-+++ b/arch/x86/include/asm/i387.h
-@@ -92,6 +92,11 @@ static inline int fxrstor_checking(struct i387_fxsave_struct *fx)
+diff --git a/arch/x86/include/asm/fpu-internal.h b/arch/x86/include/asm/fpu-internal.h
+index 4fa8815..71b121a 100644
+--- a/arch/x86/include/asm/fpu-internal.h
++++ b/arch/x86/include/asm/fpu-internal.h
+@@ -86,6 +86,11 @@ static inline int fxrstor_checking(struct i387_fxsave_struct *fx)
  {
        int err;
  
@@ -8486,7 +10597,7 @@ index c9e09ea..73888df 100644
        /* See comment in fxsave() below. */
  #ifdef CONFIG_AS_FXSAVEQ
        asm volatile("1:  fxrstorq %[fx]\n\t"
-@@ -121,6 +126,11 @@ static inline int fxsave_user(struct i387_fxsave_struct __user *fx)
+@@ -115,6 +120,11 @@ static inline int fxsave_user(struct i387_fxsave_struct __user *fx)
  {
        int err;
  
@@ -8498,31 +10609,92 @@ index c9e09ea..73888df 100644
        /*
         * Clear the bytes not touched by the fxsave and reserved
         * for the SW usage.
-@@ -213,13 +223,8 @@ static inline void fpu_fxsave(struct fpu *fpu)
- #endif        /* CONFIG_X86_64 */
- /* We need a safe address that is cheap to find and that is already
--   in L1 during context switch. The best choices are unfortunately
--   different for UP and SMP */
--#ifdef CONFIG_SMP
--#define safe_address (__per_cpu_offset[0])
--#else
--#define safe_address (kstat_cpu(0).cpustat.user)
--#endif
-+   in L1 during context switch. */
-+#define safe_address (init_tss[smp_processor_id()].x86_tss.sp0)
+@@ -271,7 +281,7 @@ static inline int restore_fpu_checking(struct task_struct *tsk)
+               "emms\n\t"              /* clear stack tags */
+               "fildl %P[addr]",       /* set F?P to defined value */
+               X86_FEATURE_FXSAVE_LEAK,
+-              [addr] "m" (tsk->thread.fpu.has_fpu));
++              [addr] "m" (init_tss[smp_processor_id()].x86_tss.sp0));
  
- /*
-  * These must be called with preempt disabled
-@@ -312,7 +317,7 @@ static inline void kernel_fpu_begin(void)
-       struct thread_info *me = current_thread_info();
-       preempt_disable();
-       if (me->status & TS_USEDFPU)
--              __save_init_fpu(me->task);
-+              __save_init_fpu(current);
-       else
-               clts();
+       return fpu_restore_checking(&tsk->thread.fpu);
  }
+diff --git a/arch/x86/include/asm/futex.h b/arch/x86/include/asm/futex.h
+index 71ecbcb..bac10b7 100644
+--- a/arch/x86/include/asm/futex.h
++++ b/arch/x86/include/asm/futex.h
+@@ -11,16 +11,18 @@
+ #include <asm/processor.h>
+ #define __futex_atomic_op1(insn, ret, oldval, uaddr, oparg)   \
++      typecheck(u32 __user *, uaddr);                         \
+       asm volatile("1:\t" insn "\n"                           \
+                    "2:\t.section .fixup,\"ax\"\n"             \
+                    "3:\tmov\t%3, %1\n"                        \
+                    "\tjmp\t2b\n"                              \
+                    "\t.previous\n"                            \
+                    _ASM_EXTABLE(1b, 3b)                       \
+-                   : "=r" (oldval), "=r" (ret), "+m" (*uaddr) \
++                   : "=r" (oldval), "=r" (ret), "+m" (*(u32 __user *)____m(uaddr))\
+                    : "i" (-EFAULT), "0" (oparg), "1" (0))
+ #define __futex_atomic_op2(insn, ret, oldval, uaddr, oparg)   \
++      typecheck(u32 __user *, uaddr);                         \
+       asm volatile("1:\tmovl  %2, %0\n"                       \
+                    "\tmovl\t%0, %3\n"                         \
+                    "\t" insn "\n"                             \
+@@ -33,7 +35,7 @@
+                    _ASM_EXTABLE(1b, 4b)                       \
+                    _ASM_EXTABLE(2b, 4b)                       \
+                    : "=&a" (oldval), "=&r" (ret),             \
+-                     "+m" (*uaddr), "=&r" (tem)               \
++                     "+m" (*(u32 __user *)____m(uaddr)), "=&r" (tem)  \
+                    : "r" (oparg), "i" (-EFAULT), "1" (0))
+ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
+@@ -60,10 +62,10 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
+       switch (op) {
+       case FUTEX_OP_SET:
+-              __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
++              __futex_atomic_op1(__copyuser_seg"xchgl %0, %2", ret, oldval, uaddr, oparg);
+               break;
+       case FUTEX_OP_ADD:
+-              __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval,
++              __futex_atomic_op1(LOCK_PREFIX __copyuser_seg"xaddl %0, %2", ret, oldval,
+                                  uaddr, oparg);
+               break;
+       case FUTEX_OP_OR:
+@@ -122,13 +124,13 @@ static inline int futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
+       if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
+               return -EFAULT;
+-      asm volatile("1:\t" LOCK_PREFIX "cmpxchgl %4, %2\n"
++      asm volatile("1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgl %4, %2\n"
+                    "2:\t.section .fixup, \"ax\"\n"
+                    "3:\tmov     %3, %0\n"
+                    "\tjmp     2b\n"
+                    "\t.previous\n"
+                    _ASM_EXTABLE(1b, 3b)
+-                   : "+r" (ret), "=a" (oldval), "+m" (*uaddr)
++                   : "+r" (ret), "=a" (oldval), "+m" (*(u32 __user *)____m(uaddr))
+                    : "i" (-EFAULT), "r" (newval), "1" (oldval)
+                    : "memory"
+       );
+diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
+index eb92a6e..b98b2f4 100644
+--- a/arch/x86/include/asm/hw_irq.h
++++ b/arch/x86/include/asm/hw_irq.h
+@@ -136,8 +136,8 @@ extern void setup_ioapic_dest(void);
+ extern void enable_IO_APIC(void);
+ /* Statistics */
+-extern atomic_t irq_err_count;
+-extern atomic_t irq_mis_count;
++extern atomic_unchecked_t irq_err_count;
++extern atomic_unchecked_t irq_mis_count;
+ /* EISA */
+ extern void eisa_set_level_irq(unsigned int irq);
 diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
 index d8e8eef..99f81ae 100644
 --- a/arch/x86/include/asm/io.h
@@ -8582,32 +10754,23 @@ index 5478825..839e88c 100644
  #define flush_insn_slot(p)    do { } while (0)
  
 diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
-index dd51c83..66cbfac 100644
+index e216ba0..453f6ec 100644
 --- a/arch/x86/include/asm/kvm_host.h
 +++ b/arch/x86/include/asm/kvm_host.h
-@@ -456,7 +456,7 @@ struct kvm_arch {
-       unsigned int n_requested_mmu_pages;
-       unsigned int n_max_mmu_pages;
-       unsigned int indirect_shadow_pages;
--      atomic_t invlpg_counter;
-+      atomic_unchecked_t invlpg_counter;
-       struct hlist_head mmu_page_hash[KVM_NUM_MMU_PAGES];
-       /*
-        * Hash table of struct kvm_mmu_page.
-@@ -636,7 +636,7 @@ struct kvm_x86_ops {
+@@ -679,7 +679,7 @@ struct kvm_x86_ops {
+       int (*check_intercept)(struct kvm_vcpu *vcpu,
+                              struct x86_instruction_info *info,
                               enum x86_intercept_stage stage);
-       const struct trace_print_flags *exit_reasons_str;
 -};
 +} __do_const;
  
  struct kvm_arch_async_pf {
        u32 token;
 diff --git a/arch/x86/include/asm/local.h b/arch/x86/include/asm/local.h
-index 9cdae5d..300d20f 100644
+index c8bed0d..e5721fa 100644
 --- a/arch/x86/include/asm/local.h
 +++ b/arch/x86/include/asm/local.h
-@@ -18,26 +18,58 @@ typedef struct {
+@@ -17,26 +17,58 @@ typedef struct {
  
  static inline void local_inc(local_t *l)
  {
@@ -8670,7 +10833,7 @@ index 9cdae5d..300d20f 100644
                     : "+m" (l->a.counter)
                     : "ir" (i));
  }
-@@ -55,7 +87,16 @@ static inline int local_sub_and_test(long i, local_t *l)
+@@ -54,7 +86,16 @@ static inline int local_sub_and_test(long i, local_t *l)
  {
        unsigned char c;
  
@@ -8688,7 +10851,7 @@ index 9cdae5d..300d20f 100644
                     : "+m" (l->a.counter), "=qm" (c)
                     : "ir" (i) : "memory");
        return c;
-@@ -73,7 +114,16 @@ static inline int local_dec_and_test(local_t *l)
+@@ -72,7 +113,16 @@ static inline int local_dec_and_test(local_t *l)
  {
        unsigned char c;
  
@@ -8706,7 +10869,7 @@ index 9cdae5d..300d20f 100644
                     : "+m" (l->a.counter), "=qm" (c)
                     : : "memory");
        return c != 0;
-@@ -91,7 +141,16 @@ static inline int local_inc_and_test(local_t *l)
+@@ -90,7 +140,16 @@ static inline int local_inc_and_test(local_t *l)
  {
        unsigned char c;
  
@@ -8724,7 +10887,7 @@ index 9cdae5d..300d20f 100644
                     : "+m" (l->a.counter), "=qm" (c)
                     : : "memory");
        return c != 0;
-@@ -110,7 +169,16 @@ static inline int local_add_negative(long i, local_t *l)
+@@ -109,7 +168,16 @@ static inline int local_add_negative(long i, local_t *l)
  {
        unsigned char c;
  
@@ -8742,7 +10905,7 @@ index 9cdae5d..300d20f 100644
                     : "+m" (l->a.counter), "=qm" (c)
                     : "ir" (i) : "memory");
        return c;
-@@ -133,7 +201,15 @@ static inline long local_add_return(long i, local_t *l)
+@@ -132,7 +200,15 @@ static inline long local_add_return(long i, local_t *l)
  #endif
        /* Modern 486+ processor */
        __i = i;
@@ -8813,7 +10976,7 @@ index 5f55e69..e20bfb1 100644
  
  #ifdef CONFIG_SMP
 diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h
-index 6902152..399f3a2 100644
+index 6902152..da4283a 100644
 --- a/arch/x86/include/asm/mmu_context.h
 +++ b/arch/x86/include/asm/mmu_context.h
 @@ -24,6 +24,18 @@ void destroy_context(struct mm_struct *mm);
@@ -8856,8 +11019,8 @@ index 6902152..399f3a2 100644
                /* Re-load page tables */
 +#ifdef CONFIG_PAX_PER_CPU_PGD
 +              pax_open_kernel();
-+              __clone_user_pgds(get_cpu_pgd(cpu), next->pgd, USER_PGD_PTRS);
-+              __shadow_user_pgds(get_cpu_pgd(cpu) + USER_PGD_PTRS, next->pgd, USER_PGD_PTRS);
++              __clone_user_pgds(get_cpu_pgd(cpu), next->pgd);
++              __shadow_user_pgds(get_cpu_pgd(cpu) + USER_PGD_PTRS, next->pgd);
 +              pax_close_kernel();
 +              load_cr3(get_cpu_pgd(cpu));
 +#else
@@ -8896,8 +11059,8 @@ index 6902152..399f3a2 100644
 +
 +#ifdef CONFIG_PAX_PER_CPU_PGD
 +              pax_open_kernel();
-+              __clone_user_pgds(get_cpu_pgd(cpu), next->pgd, USER_PGD_PTRS);
-+              __shadow_user_pgds(get_cpu_pgd(cpu) + USER_PGD_PTRS, next->pgd, USER_PGD_PTRS);
++              __clone_user_pgds(get_cpu_pgd(cpu), next->pgd);
++              __shadow_user_pgds(get_cpu_pgd(cpu) + USER_PGD_PTRS, next->pgd);
 +              pax_close_kernel();
 +              load_cr3(get_cpu_pgd(cpu));
 +#endif
@@ -8985,10 +11148,10 @@ index 7639dbf..e08a58c 100644
  extern unsigned long __phys_addr(unsigned long);
  #define __phys_reloc_hide(x)  (x)
 diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
-index a7d2db9..edb023e 100644
+index aa0f913..0c5bc6a 100644
 --- a/arch/x86/include/asm/paravirt.h
 +++ b/arch/x86/include/asm/paravirt.h
-@@ -667,6 +667,18 @@ static inline void set_pgd(pgd_t *pgdp, pgd_t pgd)
+@@ -668,6 +668,18 @@ static inline void set_pgd(pgd_t *pgdp, pgd_t pgd)
                            val);
  }
  
@@ -9007,7 +11170,7 @@ index a7d2db9..edb023e 100644
  static inline void pgd_clear(pgd_t *pgdp)
  {
        set_pgd(pgdp, __pgd(0));
-@@ -748,6 +760,21 @@ static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
+@@ -749,6 +761,21 @@ static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
        pv_mmu_ops.set_fixmap(idx, phys, flags);
  }
  
@@ -9029,7 +11192,7 @@ index a7d2db9..edb023e 100644
  #if defined(CONFIG_SMP) && defined(CONFIG_PARAVIRT_SPINLOCKS)
  
  static inline int arch_spin_is_locked(struct arch_spinlock *lock)
-@@ -964,7 +991,7 @@ extern void default_banner(void);
+@@ -965,7 +992,7 @@ extern void default_banner(void);
  
  #define PARA_PATCH(struct, off)        ((PARAVIRT_PATCH_##struct + (off)) / 4)
  #define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4)
@@ -9038,7 +11201,7 @@ index a7d2db9..edb023e 100644
  #endif
  
  #define INTERRUPT_RETURN                                              \
-@@ -1041,6 +1068,21 @@ extern void default_banner(void);
+@@ -1042,6 +1069,21 @@ extern void default_banner(void);
        PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_irq_enable_sysexit),    \
                  CLBR_NONE,                                            \
                  jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_irq_enable_sysexit))
@@ -9137,7 +11300,7 @@ index 8e8b9a4..f07d725 100644
  /* This contains all the paravirt structures: we get a convenient
   * number for each function using the offset which we use to indicate
 diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
-index b4389a4..b7ff22c 100644
+index b4389a4..7024269 100644
 --- a/arch/x86/include/asm/pgalloc.h
 +++ b/arch/x86/include/asm/pgalloc.h
 @@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(struct mm_struct *mm,
@@ -9154,6 +11317,42 @@ index b4389a4..b7ff22c 100644
        set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
  }
  
+@@ -99,12 +106,22 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
+ #ifdef CONFIG_X86_PAE
+ extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
++static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
++{
++      pud_populate(mm, pudp, pmd);
++}
+ #else /* !CONFIG_X86_PAE */
+ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
+ {
+       paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
+       set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd)));
+ }
++
++static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
++{
++      paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
++      set_pud(pud, __pud(_KERNPG_TABLE | __pa(pmd)));
++}
+ #endif        /* CONFIG_X86_PAE */
+ #if PAGETABLE_LEVELS > 3
+@@ -114,6 +131,12 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
+       set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud)));
+ }
++static inline void pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
++{
++      paravirt_alloc_pud(mm, __pa(pud) >> PAGE_SHIFT);
++      set_pgd(pgd, __pgd(_KERNPG_TABLE | __pa(pud)));
++}
++
+ static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
+ {
+       return (pud_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
 diff --git a/arch/x86/include/asm/pgtable-2level.h b/arch/x86/include/asm/pgtable-2level.h
 index 98391db..8f6984e 100644
 --- a/arch/x86/include/asm/pgtable-2level.h
@@ -9169,10 +11368,10 @@ index 98391db..8f6984e 100644
  
  static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
 diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
-index effff47..f9e4035 100644
+index cb00ccc..17e9054 100644
 --- a/arch/x86/include/asm/pgtable-3level.h
 +++ b/arch/x86/include/asm/pgtable-3level.h
-@@ -38,12 +38,16 @@ static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
+@@ -92,12 +92,16 @@ static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
  
  static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
  {
@@ -9190,7 +11389,7 @@ index effff47..f9e4035 100644
  
  /*
 diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
-index 18601c8..3d716d1 100644
+index 49afb3f..91a8c63 100644
 --- a/arch/x86/include/asm/pgtable.h
 +++ b/arch/x86/include/asm/pgtable.h
 @@ -44,6 +44,7 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
@@ -9359,13 +11558,13 @@ index 18601c8..3d716d1 100644
  }
  
 +#ifdef CONFIG_PAX_PER_CPU_PGD
-+extern void __clone_user_pgds(pgd_t *dst, const pgd_t *src, int count);
++extern void __clone_user_pgds(pgd_t *dst, const pgd_t *src);
 +#endif
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+extern void __shadow_user_pgds(pgd_t *dst, const pgd_t *src, int count);
++extern void __shadow_user_pgds(pgd_t *dst, const pgd_t *src);
 +#else
-+static inline void __shadow_user_pgds(pgd_t *dst, const pgd_t *src, int count) {}
++static inline void __shadow_user_pgds(pgd_t *dst, const pgd_t *src) {}
 +#endif
  
  #include <asm-generic/pgtable.h>
@@ -9451,7 +11650,7 @@ index ed5903b..c7fe163 100644
  #define MODULES_END   VMALLOC_END
  #define MODULES_LEN   (MODULES_VADDR - MODULES_END)
 diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h
-index 975f709..107976d 100644
+index 975f709..9f779c9 100644
 --- a/arch/x86/include/asm/pgtable_64.h
 +++ b/arch/x86/include/asm/pgtable_64.h
 @@ -16,10 +16,14 @@
@@ -9481,7 +11680,17 @@ index 975f709..107976d 100644
  }
  
  static inline void native_pmd_clear(pmd_t *pmd)
-@@ -107,6 +113,13 @@ static inline void native_pud_clear(pud_t *pud)
+@@ -97,7 +103,9 @@ static inline pmd_t native_pmdp_get_and_clear(pmd_t *xp)
+ static inline void native_set_pud(pud_t *pudp, pud_t pud)
+ {
++      pax_open_kernel();
+       *pudp = pud;
++      pax_close_kernel();
+ }
+ static inline void native_pud_clear(pud_t *pud)
+@@ -107,6 +115,13 @@ static inline void native_pud_clear(pud_t *pud)
  
  static inline void native_set_pgd(pgd_t *pgdp, pgd_t pgd)
  {
@@ -9626,10 +11835,10 @@ index 013286a..8b42f4f 100644
  #define pgprot_writecombine   pgprot_writecombine
  extern pgprot_t pgprot_writecombine(pgprot_t prot);
 diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
-index 0d1171c..36571a9 100644
+index 4fa7dcc..764e33a 100644
 --- a/arch/x86/include/asm/processor.h
 +++ b/arch/x86/include/asm/processor.h
-@@ -266,7 +266,7 @@ struct tss_struct {
+@@ -276,7 +276,7 @@ struct tss_struct {
  
  } ____cacheline_aligned;
  
@@ -9638,7 +11847,7 @@ index 0d1171c..36571a9 100644
  
  /*
   * Save the original ist values for checking stack pointers during debugging
-@@ -858,11 +858,18 @@ static inline void spin_lock_prefetch(const void *x)
+@@ -807,11 +807,18 @@ static inline void spin_lock_prefetch(const void *x)
   */
  #define TASK_SIZE             PAGE_OFFSET
  #define TASK_SIZE_MAX         TASK_SIZE
@@ -9659,7 +11868,7 @@ index 0d1171c..36571a9 100644
        .vm86_info              = NULL,                                   \
        .sysenter_cs            = __KERNEL_CS,                            \
        .io_bitmap_ptr          = NULL,                                   \
-@@ -876,7 +883,7 @@ static inline void spin_lock_prefetch(const void *x)
+@@ -825,7 +832,7 @@ static inline void spin_lock_prefetch(const void *x)
   */
  #define INIT_TSS  {                                                     \
        .x86_tss = {                                                      \
@@ -9668,7 +11877,7 @@ index 0d1171c..36571a9 100644
                .ss0            = __KERNEL_DS,                            \
                .ss1            = __KERNEL_CS,                            \
                .io_bitmap_base = INVALID_IO_BITMAP_OFFSET,               \
-@@ -887,11 +894,7 @@ static inline void spin_lock_prefetch(const void *x)
+@@ -836,11 +843,7 @@ static inline void spin_lock_prefetch(const void *x)
  extern unsigned long thread_saved_pc(struct task_struct *tsk);
  
  #define THREAD_SIZE_LONGS      (THREAD_SIZE/sizeof(unsigned long))
@@ -9681,7 +11890,7 @@ index 0d1171c..36571a9 100644
  
  /*
   * The below -8 is to reserve 8 bytes on top of the ring0 stack.
-@@ -906,7 +909,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
+@@ -855,7 +858,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
  #define task_pt_regs(task)                                             \
  ({                                                                     \
         struct pt_regs *__regs__;                                       \
@@ -9690,7 +11899,7 @@ index 0d1171c..36571a9 100644
         __regs__ - 1;                                                   \
  })
  
-@@ -916,13 +919,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
+@@ -865,13 +868,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
  /*
   * User space process size. 47bits minus one guard page.
   */
@@ -9704,9 +11913,9 @@ index 0d1171c..36571a9 100644
 -                                      0xc0000000 : 0xFFFFe000)
 +                                      0xc0000000 : 0xFFFFf000)
  
- #define TASK_SIZE             (test_thread_flag(TIF_IA32) ? \
+ #define TASK_SIZE             (test_thread_flag(TIF_ADDR32) ? \
                                        IA32_PAGE_OFFSET : TASK_SIZE_MAX)
-@@ -933,11 +936,11 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
+@@ -882,11 +885,11 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
  #define STACK_TOP_MAX         TASK_SIZE_MAX
  
  #define INIT_THREAD  { \
@@ -9720,7 +11929,7 @@ index 0d1171c..36571a9 100644
  }
  
  /*
-@@ -959,6 +962,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
+@@ -914,6 +917,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
   */
  #define TASK_UNMAPPED_BASE    (PAGE_ALIGN(TASK_SIZE / 3))
  
@@ -9731,11 +11940,26 @@ index 0d1171c..36571a9 100644
  #define KSTK_EIP(task)                (task_pt_regs(task)->ip)
  
  /* Get/set a process' ability to use the timestamp counter instruction */
+@@ -976,12 +983,12 @@ extern bool cpu_has_amd_erratum(const int *);
+ void cpu_idle_wait(void);
+-extern unsigned long arch_align_stack(unsigned long sp);
++#define arch_align_stack(x) ((x) & ~0xfUL)
+ extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
+ void default_idle(void);
+ bool set_pm_idle_to_default(void);
+-void stop_this_cpu(void *dummy);
++void stop_this_cpu(void *dummy) __noreturn;
+ #endif /* _ASM_X86_PROCESSOR_H */
 diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
-index 3566454..4bdfb8c 100644
+index dcfde52..dbfea06 100644
 --- a/arch/x86/include/asm/ptrace.h
 +++ b/arch/x86/include/asm/ptrace.h
-@@ -156,28 +156,29 @@ static inline unsigned long regs_return_value(struct pt_regs *regs)
+@@ -155,28 +155,29 @@ static inline unsigned long regs_return_value(struct pt_regs *regs)
  }
  
  /*
@@ -9771,7 +11995,7 @@ index 3566454..4bdfb8c 100644
  #endif
  }
  
-@@ -193,15 +194,16 @@ static inline int v8086_mode(struct pt_regs *regs)
+@@ -192,15 +193,16 @@ static inline int v8086_mode(struct pt_regs *regs)
  #ifdef CONFIG_X86_64
  static inline bool user_64bit_mode(struct pt_regs *regs)
  {
@@ -9791,7 +12015,7 @@ index 3566454..4bdfb8c 100644
  }
  #endif
 diff --git a/arch/x86/include/asm/reboot.h b/arch/x86/include/asm/reboot.h
-index 3250e3d..20db631 100644
+index 92f29706..a79cbbb 100644
 --- a/arch/x86/include/asm/reboot.h
 +++ b/arch/x86/include/asm/reboot.h
 @@ -6,19 +6,19 @@
@@ -9821,7 +12045,7 @@ index 3250e3d..20db631 100644
  #define MRR_BIOS      0
  #define MRR_APM               1
 diff --git a/arch/x86/include/asm/rwsem.h b/arch/x86/include/asm/rwsem.h
-index df4cd32..27ae072 100644
+index 2dbe4a7..ce1db00 100644
 --- a/arch/x86/include/asm/rwsem.h
 +++ b/arch/x86/include/asm/rwsem.h
 @@ -64,6 +64,14 @@ static inline void __down_read(struct rw_semaphore *sem)
@@ -9931,25 +12155,17 @@ index df4cd32..27ae072 100644
                     : "+m" (sem->count)
                     : "er" (delta));
  }
-@@ -206,7 +262,15 @@ static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
+@@ -204,7 +260,7 @@ static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
+  */
+ static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
  {
-       long tmp = delta;
--      asm volatile(LOCK_PREFIX "xadd %0,%1"
-+      asm volatile(LOCK_PREFIX "xadd %0,%1\n"
-+
-+#ifdef CONFIG_PAX_REFCOUNT
-+                   "jno 0f\n"
-+                   "mov %0,%1\n"
-+                   "int $4\n0:\n"
-+                   _ASM_EXTABLE(0b, 0b)
-+#endif
-+
-                    : "+r" (tmp), "+m" (sem->count)
-                    : : "memory");
+-      return delta + xadd(&sem->count, delta);
++      return delta + xadd_check_overflow(&sem->count, delta);
+ }
  
+ #endif /* __KERNEL__ */
 diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
-index 5e64171..f58957e 100644
+index 1654662..5af4157 100644
 --- a/arch/x86/include/asm/segment.h
 +++ b/arch/x86/include/asm/segment.h
 @@ -64,10 +64,15 @@
@@ -10018,8 +12234,17 @@ index 5e64171..f58957e 100644
  #define __KERNEL_DS   (GDT_ENTRY_KERNEL_DS*8)
  #define __USER_DS     (GDT_ENTRY_DEFAULT_USER_DS*8+3)
  #define __USER_CS     (GDT_ENTRY_DEFAULT_USER_CS*8+3)
+@@ -263,7 +279,7 @@ static inline unsigned long get_limit(unsigned long segment)
+ {
+       unsigned long __limit;
+       asm("lsll %1,%0" : "=r" (__limit) : "r" (segment));
+-      return __limit + 1;
++      return __limit;
+ }
+ #endif /* !__ASSEMBLY__ */
 diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
-index 73b11bc..d4a3b63 100644
+index 0434c40..1714bf0 100644
 --- a/arch/x86/include/asm/smp.h
 +++ b/arch/x86/include/asm/smp.h
 @@ -36,7 +36,7 @@ DECLARE_PER_CPU(cpumask_var_t, cpu_core_map);
@@ -10058,10 +12283,10 @@ index 73b11bc..d4a3b63 100644
  
  #endif
 diff --git a/arch/x86/include/asm/spinlock.h b/arch/x86/include/asm/spinlock.h
-index ee67edf..49c796b 100644
+index 76bfa2c..12d3fe7 100644
 --- a/arch/x86/include/asm/spinlock.h
 +++ b/arch/x86/include/asm/spinlock.h
-@@ -248,6 +248,14 @@ static inline int arch_write_can_lock(arch_rwlock_t *lock)
+@@ -175,6 +175,14 @@ static inline int arch_write_can_lock(arch_rwlock_t *lock)
  static inline void arch_read_lock(arch_rwlock_t *rw)
  {
        asm volatile(LOCK_PREFIX READ_LOCK_SIZE(dec) " (%0)\n\t"
@@ -10076,7 +12301,7 @@ index ee67edf..49c796b 100644
                     "jns 1f\n"
                     "call __read_lock_failed\n\t"
                     "1:\n"
-@@ -257,6 +265,14 @@ static inline void arch_read_lock(arch_rwlock_t *rw)
+@@ -184,6 +192,14 @@ static inline void arch_read_lock(arch_rwlock_t *rw)
  static inline void arch_write_lock(arch_rwlock_t *rw)
  {
        asm volatile(LOCK_PREFIX WRITE_LOCK_SUB(%1) "(%0)\n\t"
@@ -10091,7 +12316,7 @@ index ee67edf..49c796b 100644
                     "jz 1f\n"
                     "call __write_lock_failed\n\t"
                     "1:\n"
-@@ -286,13 +302,29 @@ static inline int arch_write_trylock(arch_rwlock_t *lock)
+@@ -213,13 +229,29 @@ static inline int arch_write_trylock(arch_rwlock_t *lock)
  
  static inline void arch_read_unlock(arch_rwlock_t *rw)
  {
@@ -10124,10 +12349,10 @@ index ee67edf..49c796b 100644
  }
  
 diff --git a/arch/x86/include/asm/stackprotector.h b/arch/x86/include/asm/stackprotector.h
-index 1575177..cb23f52 100644
+index b5d9533..41655fa 100644
 --- a/arch/x86/include/asm/stackprotector.h
 +++ b/arch/x86/include/asm/stackprotector.h
-@@ -48,7 +48,7 @@
+@@ -47,7 +47,7 @@
   * head_32 for boot CPU and setup_per_cpu_areas() for others.
   */
  #define GDT_STACK_CANARY_INIT                                         \
@@ -10136,7 +12361,7 @@ index 1575177..cb23f52 100644
  
  /*
   * Initialize the stackprotector canary value.
-@@ -113,7 +113,7 @@ static inline void setup_stack_canary_segment(int cpu)
+@@ -112,7 +112,7 @@ static inline void setup_stack_canary_segment(int cpu)
  
  static inline void load_stack_canary_segment(void)
  {
@@ -10198,24 +12423,11 @@ index 70bbe39..4ae2bd4 100644
  };
  
  void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
-diff --git a/arch/x86/include/asm/sys_ia32.h b/arch/x86/include/asm/sys_ia32.h
-index cb23852..2dde194 100644
---- a/arch/x86/include/asm/sys_ia32.h
-+++ b/arch/x86/include/asm/sys_ia32.h
-@@ -40,7 +40,7 @@ asmlinkage long sys32_rt_sigprocmask(int, compat_sigset_t __user *,
-                                    compat_sigset_t __user *, unsigned int);
- asmlinkage long sys32_alarm(unsigned int);
--asmlinkage long sys32_waitpid(compat_pid_t, unsigned int *, int);
-+asmlinkage long sys32_waitpid(compat_pid_t, unsigned int __user *, int);
- asmlinkage long sys32_sysfs(int, u32, u32);
- asmlinkage long sys32_sched_rr_get_interval(compat_pid_t,
-diff --git a/arch/x86/include/asm/system.h b/arch/x86/include/asm/system.h
-index c2ff2a1..4349184 100644
---- a/arch/x86/include/asm/system.h
-+++ b/arch/x86/include/asm/system.h
-@@ -129,7 +129,7 @@ do {                                                                       \
+diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
+index 4ec45b3..a4f0a8a 100644
+--- a/arch/x86/include/asm/switch_to.h
++++ b/arch/x86/include/asm/switch_to.h
+@@ -108,7 +108,7 @@ do {                                                                       \
             "call __switch_to\n\t"                                       \
             "movq "__percpu_arg([current_task])",%%rsi\n\t"              \
             __switch_canary                                              \
@@ -10224,7 +12436,7 @@ index c2ff2a1..4349184 100644
             "movq %%rax,%%rdi\n\t"                                       \
             "testl  %[_tif_fork],%P[ti_flags](%%r8)\n\t"                 \
             "jnz   ret_from_fork\n\t"                                    \
-@@ -140,7 +140,7 @@ do {                                                                       \
+@@ -119,7 +119,7 @@ do {                                                                       \
               [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \
               [ti_flags] "i" (offsetof(struct thread_info, flags)),      \
               [_tif_fork] "i" (_TIF_FORK),                               \
@@ -10233,32 +12445,21 @@ index c2ff2a1..4349184 100644
               [current_task] "m" (current_task)                          \
               __switch_canary_iparam                                     \
             : "memory", "cc" __EXTRA_CLOBBER)
-@@ -200,7 +200,7 @@ static inline unsigned long get_limit(unsigned long segment)
- {
-       unsigned long __limit;
-       asm("lsll %1,%0" : "=r" (__limit) : "r" (segment));
--      return __limit + 1;
-+      return __limit;
- }
- static inline void native_clts(void)
-@@ -397,12 +397,12 @@ void enable_hlt(void);
- void cpu_idle_wait(void);
--extern unsigned long arch_align_stack(unsigned long sp);
-+#define arch_align_stack(x) ((x) & ~0xfUL)
- extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
- void default_idle(void);
+diff --git a/arch/x86/include/asm/sys_ia32.h b/arch/x86/include/asm/sys_ia32.h
+index 3fda9db4..4ca1c61 100644
+--- a/arch/x86/include/asm/sys_ia32.h
++++ b/arch/x86/include/asm/sys_ia32.h
+@@ -40,7 +40,7 @@ asmlinkage long sys32_sigaction(int, struct old_sigaction32 __user *,
+                               struct old_sigaction32 __user *);
+ asmlinkage long sys32_alarm(unsigned int);
  
--void stop_this_cpu(void *dummy);
-+void stop_this_cpu(void *dummy) __noreturn;
+-asmlinkage long sys32_waitpid(compat_pid_t, unsigned int *, int);
++asmlinkage long sys32_waitpid(compat_pid_t, unsigned int __user *, int);
+ asmlinkage long sys32_sysfs(int, u32, u32);
  
- /*
-  * Force strict CPU ordering.
+ asmlinkage long sys32_sched_rr_get_interval(compat_pid_t,
 diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
-index a1fe5c1..ee326d8 100644
+index ad6df8c..5e0cf6e 100644
 --- a/arch/x86/include/asm/thread_info.h
 +++ b/arch/x86/include/asm/thread_info.h
 @@ -10,6 +10,7 @@
@@ -10277,7 +12478,7 @@ index a1fe5c1..ee326d8 100644
        struct exec_domain      *exec_domain;   /* execution domain */
        __u32                   flags;          /* low level flags */
        __u32                   status;         /* thread synchronous flags */
-@@ -34,18 +34,12 @@ struct thread_info {
+@@ -34,19 +34,13 @@ struct thread_info {
        mm_segment_t            addr_limit;
        struct restart_block    restart_block;
        void __user             *sysenter_return;
@@ -10288,7 +12489,8 @@ index a1fe5c1..ee326d8 100644
 -      __u8                    supervisor_stack[0];
 -#endif
 +      unsigned long           lowest_stack;
-       int                     uaccess_err;
+       unsigned int            sig_on_uaccess_error:1;
+       unsigned int            uaccess_err:1;  /* uaccess failed */
  };
  
 -#define INIT_THREAD_INFO(tsk)                 \
@@ -10298,7 +12500,7 @@ index a1fe5c1..ee326d8 100644
        .exec_domain    = &default_exec_domain, \
        .flags          = 0,                    \
        .cpu            = 0,                    \
-@@ -56,7 +50,7 @@ struct thread_info {
+@@ -57,7 +51,7 @@ struct thread_info {
        },                                      \
  }
  
@@ -10307,7 +12509,46 @@ index a1fe5c1..ee326d8 100644
  #define init_stack            (init_thread_union.stack)
  
  #else /* !__ASSEMBLY__ */
-@@ -170,45 +164,40 @@ struct thread_info {
+@@ -97,6 +91,7 @@ struct thread_info {
+ #define TIF_SYSCALL_TRACEPOINT        28      /* syscall tracepoint instrumentation */
+ #define TIF_ADDR32            29      /* 32-bit address space on 64 bits */
+ #define TIF_X32                       30      /* 32-bit native x86-64 binary */
++#define TIF_GRSEC_SETXID      31      /* update credentials on syscall entry/exit */
+ #define _TIF_SYSCALL_TRACE    (1 << TIF_SYSCALL_TRACE)
+ #define _TIF_NOTIFY_RESUME    (1 << TIF_NOTIFY_RESUME)
+@@ -120,16 +115,18 @@ struct thread_info {
+ #define _TIF_SYSCALL_TRACEPOINT       (1 << TIF_SYSCALL_TRACEPOINT)
+ #define _TIF_ADDR32           (1 << TIF_ADDR32)
+ #define _TIF_X32              (1 << TIF_X32)
++#define _TIF_GRSEC_SETXID     (1 << TIF_GRSEC_SETXID)
+ /* work to do in syscall_trace_enter() */
+ #define _TIF_WORK_SYSCALL_ENTRY       \
+       (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | _TIF_SYSCALL_AUDIT |   \
+-       _TIF_SECCOMP | _TIF_SINGLESTEP | _TIF_SYSCALL_TRACEPOINT)
++       _TIF_SECCOMP | _TIF_SINGLESTEP | _TIF_SYSCALL_TRACEPOINT |     \
++       _TIF_GRSEC_SETXID)
+ /* work to do in syscall_trace_leave() */
+ #define _TIF_WORK_SYSCALL_EXIT        \
+       (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SINGLESTEP |    \
+-       _TIF_SYSCALL_TRACEPOINT)
++       _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
+ /* work to do on interrupt/exception return */
+ #define _TIF_WORK_MASK                                                        \
+@@ -139,7 +136,8 @@ struct thread_info {
+ /* work to do on any return to user space */
+ #define _TIF_ALLWORK_MASK                                             \
+-      ((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_TRACEPOINT)
++      ((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_TRACEPOINT |       \
++       _TIF_GRSEC_SETXID)
+ /* Only used for 64 bit */
+ #define _TIF_DO_NOTIFY_MASK                                           \
+@@ -173,45 +171,40 @@ struct thread_info {
        ret;                                                            \
  })
  
@@ -10378,7 +12619,7 @@ index a1fe5c1..ee326d8 100644
  /*
   * macros/functions for gaining access to the thread information structure
   * preempt_count needs to be 1 initially, until the scheduler is functional.
-@@ -216,21 +205,8 @@ static inline struct thread_info *current_thread_info(void)
+@@ -219,27 +212,8 @@ static inline struct thread_info *current_thread_info(void)
  #ifndef __ASSEMBLY__
  DECLARE_PER_CPU(unsigned long, kernel_stack);
  
@@ -10397,12 +12638,18 @@ index a1fe5c1..ee326d8 100644
 -      movq PER_CPU_VAR(kernel_stack),reg ; \
 -      subq $(THREAD_SIZE-KERNEL_STACK_OFFSET),reg
 -
+-/*
+- * Same if PER_CPU_VAR(kernel_stack) is, perhaps with some offset, already in
+- * a certain register (to be used in assembler memory operands).
+- */
+-#define THREAD_INFO(reg, off) KERNEL_STACK_OFFSET+(off)-THREAD_SIZE(reg)
+-
 +/* how to get the current stack pointer from C */
 +register unsigned long current_stack_pointer asm("rsp") __used;
  #endif
  
  #endif /* !X86_32 */
-@@ -266,5 +242,16 @@ extern void arch_task_cache_init(void);
+@@ -285,5 +259,16 @@ extern void arch_task_cache_init(void);
  extern void free_thread_info(struct thread_info *ti);
  extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
  #define arch_task_cache_init arch_task_cache_init
@@ -10420,7 +12667,7 @@ index a1fe5c1..ee326d8 100644
  #endif
  #endif /* _ASM_X86_THREAD_INFO_H */
 diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
-index 36361bf..324f262 100644
+index e054459..14bc8a7 100644
 --- a/arch/x86/include/asm/uaccess.h
 +++ b/arch/x86/include/asm/uaccess.h
 @@ -7,12 +7,15 @@
@@ -10643,22 +12890,41 @@ index 36361bf..324f262 100644
  
  #ifdef CONFIG_X86_WP_WORKS_OK
 diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h
-index 566e803..89f1e60 100644
+index 8084bc7..3d6ec37 100644
 --- a/arch/x86/include/asm/uaccess_32.h
 +++ b/arch/x86/include/asm/uaccess_32.h
-@@ -43,6 +43,11 @@ unsigned long __must_check __copy_from_user_ll_nocache_nozero
+@@ -11,15 +11,15 @@
+ #include <asm/page.h>
+ unsigned long __must_check __copy_to_user_ll
+-              (void __user *to, const void *from, unsigned long n);
++              (void __user *to, const void *from, unsigned long n) __size_overflow(3);
+ unsigned long __must_check __copy_from_user_ll
+-              (void *to, const void __user *from, unsigned long n);
++              (void *to, const void __user *from, unsigned long n) __size_overflow(3);
+ unsigned long __must_check __copy_from_user_ll_nozero
+-              (void *to, const void __user *from, unsigned long n);
++              (void *to, const void __user *from, unsigned long n) __size_overflow(3);
+ unsigned long __must_check __copy_from_user_ll_nocache
+-              (void *to, const void __user *from, unsigned long n);
++              (void *to, const void __user *from, unsigned long n) __size_overflow(3);
+ unsigned long __must_check __copy_from_user_ll_nocache_nozero
+-              (void *to, const void __user *from, unsigned long n);
++              (void *to, const void __user *from, unsigned long n) __size_overflow(3);
+ /**
+  * __copy_to_user_inatomic: - Copy a block of data into user space, with less checking.
+@@ -43,6 +43,9 @@ unsigned long __must_check __copy_from_user_ll_nocache_nozero
  static __always_inline unsigned long __must_check
  __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
  {
-+      pax_track_stack();
-+
 +      if ((long)n < 0)
 +              return n;
 +
        if (__builtin_constant_p(n)) {
                unsigned long ret;
  
-@@ -61,6 +66,8 @@ __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
+@@ -61,6 +64,8 @@ __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
                        return ret;
                }
        }
@@ -10667,7 +12933,7 @@ index 566e803..89f1e60 100644
        return __copy_to_user_ll(to, from, n);
  }
  
-@@ -82,12 +89,16 @@ static __always_inline unsigned long __must_check
+@@ -82,12 +87,16 @@ static __always_inline unsigned long __must_check
  __copy_to_user(void __user *to, const void *from, unsigned long n)
  {
        might_fault();
@@ -10684,20 +12950,18 @@ index 566e803..89f1e60 100644
        /* Avoid zeroing the tail if the copy fails..
         * If 'n' is constant and 1, 2, or 4, we do still zero on a failure,
         * but as the zeroing behaviour is only significant when n is not
-@@ -137,6 +148,12 @@ static __always_inline unsigned long
+@@ -137,6 +146,10 @@ static __always_inline unsigned long
  __copy_from_user(void *to, const void __user *from, unsigned long n)
  {
        might_fault();
 +
-+      pax_track_stack();
-+
 +      if ((long)n < 0)
 +              return n;
 +
        if (__builtin_constant_p(n)) {
                unsigned long ret;
  
-@@ -152,6 +169,8 @@ __copy_from_user(void *to, const void __user *from, unsigned long n)
+@@ -152,6 +165,8 @@ __copy_from_user(void *to, const void __user *from, unsigned long n)
                        return ret;
                }
        }
@@ -10706,7 +12970,7 @@ index 566e803..89f1e60 100644
        return __copy_from_user_ll(to, from, n);
  }
  
-@@ -159,6 +178,10 @@ static __always_inline unsigned long __copy_from_user_nocache(void *to,
+@@ -159,6 +174,10 @@ static __always_inline unsigned long __copy_from_user_nocache(void *to,
                                const void __user *from, unsigned long n)
  {
        might_fault();
@@ -10717,7 +12981,7 @@ index 566e803..89f1e60 100644
        if (__builtin_constant_p(n)) {
                unsigned long ret;
  
-@@ -181,15 +204,19 @@ static __always_inline unsigned long
+@@ -181,15 +200,19 @@ static __always_inline unsigned long
  __copy_from_user_inatomic_nocache(void *to, const void __user *from,
                                  unsigned long n)
  {
@@ -10744,7 +13008,7 @@ index 566e803..89f1e60 100644
  
  extern void copy_from_user_overflow(void)
  #ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
-@@ -199,17 +226,61 @@ extern void copy_from_user_overflow(void)
+@@ -199,17 +222,61 @@ extern void copy_from_user_overflow(void)
  #endif
  ;
  
@@ -10766,10 +13030,14 @@ index 566e803..89f1e60 100644
 + */
 +static inline unsigned long __must_check
 +copy_to_user(void __user *to, const void *from, unsigned long n)
-+{
-+      int sz = __compiletime_object_size(from);
-+
-+      if (unlikely(sz != -1 && sz < n))
+ {
+-      int sz = __compiletime_object_size(to);
++      size_t sz = __compiletime_object_size(from);
+-      if (likely(sz == -1 || sz >= n))
+-              n = _copy_from_user(to, from, n);
+-      else
++      if (unlikely(sz != (size_t)-1 && sz < n))
 +              copy_to_user_overflow();
 +      else if (access_ok(VERIFY_WRITE, to, n))
 +              n = __copy_to_user(to, from, n);
@@ -10794,13 +13062,10 @@ index 566e803..89f1e60 100644
 + */
 +static inline unsigned long __must_check
 +copy_from_user(void *to, const void __user *from, unsigned long n)
- {
-       int sz = __compiletime_object_size(to);
--      if (likely(sz == -1 || sz >= n))
--              n = _copy_from_user(to, from, n);
--      else
-+      if (unlikely(sz != -1 && sz < n))
++{
++      size_t sz = __compiletime_object_size(to);
++
++      if (unlikely(sz != (size_t)-1 && sz < n))
                copy_from_user_overflow();
 -
 +      else if (access_ok(VERIFY_READ, from, n))
@@ -10813,8 +13078,18 @@ index 566e803..89f1e60 100644
        return n;
  }
  
+@@ -230,7 +297,7 @@ static inline unsigned long __must_check copy_from_user(void *to,
+ #define strlen_user(str) strnlen_user(str, LONG_MAX)
+ long strnlen_user(const char __user *str, long n);
+-unsigned long __must_check clear_user(void __user *mem, unsigned long len);
+-unsigned long __must_check __clear_user(void __user *mem, unsigned long len);
++unsigned long __must_check clear_user(void __user *mem, unsigned long len) __size_overflow(2);
++unsigned long __must_check __clear_user(void __user *mem, unsigned long len) __size_overflow(2);
+ #endif /* _ASM_X86_UACCESS_32_H */
 diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h
-index 1c66d30..59bd7d4 100644
+index fcd4b6f..ef04f8f 100644
 --- a/arch/x86/include/asm/uaccess_64.h
 +++ b/arch/x86/include/asm/uaccess_64.h
 @@ -10,6 +10,9 @@
@@ -10827,42 +13102,64 @@ index 1c66d30..59bd7d4 100644
  
  /*
   * Copy To/From Userspace
-@@ -17,12 +20,12 @@
+@@ -17,12 +20,14 @@
  
  /* Handles exceptions in both to and from, but doesn't do access_ok */
  __must_check unsigned long
 -copy_user_generic_string(void *to, const void *from, unsigned len);
-+copy_user_generic_string(void *to, const void *from, unsigned long len);
++copy_user_generic_string(void *to, const void *from, unsigned long len) __size_overflow(3);
  __must_check unsigned long
 -copy_user_generic_unrolled(void *to, const void *from, unsigned len);
-+copy_user_generic_unrolled(void *to, const void *from, unsigned long len);
++copy_user_generic_unrolled(void *to, const void *from, unsigned long len) __size_overflow(3);
  
  static __always_inline __must_check unsigned long
 -copy_user_generic(void *to, const void *from, unsigned len)
++copy_user_generic(void *to, const void *from, unsigned long len) __size_overflow(3);
++static __always_inline __must_check unsigned long
 +copy_user_generic(void *to, const void *from, unsigned long len)
  {
        unsigned ret;
  
-@@ -36,138 +39,226 @@ copy_user_generic(void *to, const void *from, unsigned len)
+@@ -32,142 +37,238 @@ copy_user_generic(void *to, const void *from, unsigned len)
+                        ASM_OUTPUT2("=a" (ret), "=D" (to), "=S" (from),
+                                    "=d" (len)),
+                        "1" (to), "2" (from), "3" (len)
+-                       : "memory", "rcx", "r8", "r9", "r10", "r11");
++                       : "memory", "rcx", "r8", "r9", "r11");
        return ret;
  }
  
 +static __always_inline __must_check unsigned long
-+__copy_to_user(void __user *to, const void *from, unsigned long len);
++__copy_to_user(void __user *to, const void *from, unsigned long len) __size_overflow(3);
 +static __always_inline __must_check unsigned long
-+__copy_from_user(void *to, const void __user *from, unsigned long len);
++__copy_from_user(void *to, const void __user *from, unsigned long len) __size_overflow(3);
  __must_check unsigned long
 -_copy_to_user(void __user *to, const void *from, unsigned len);
 -__must_check unsigned long
 -_copy_from_user(void *to, const void __user *from, unsigned len);
 -__must_check unsigned long
 -copy_in_user(void __user *to, const void __user *from, unsigned len);
-+copy_in_user(void __user *to, const void __user *from, unsigned long len);
++copy_in_user(void __user *to, const void __user *from, unsigned long len) __size_overflow(3);
++
++extern void copy_to_user_overflow(void)
++#ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
++      __compiletime_error("copy_to_user() buffer size is not provably correct")
++#else
++      __compiletime_warning("copy_to_user() buffer size is not provably correct")
++#endif
++;
++
++extern void copy_from_user_overflow(void)
++#ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
++      __compiletime_error("copy_from_user() buffer size is not provably correct")
++#else
++      __compiletime_warning("copy_from_user() buffer size is not provably correct")
++#endif
++;
  
  static inline unsigned long __must_check copy_from_user(void *to,
                                          const void __user *from,
--                                        unsigned long n)
-+                                        unsigned n)
+                                         unsigned long n)
  {
 -      int sz = __compiletime_object_size(to);
 -
@@ -10901,15 +13198,13 @@ index 1c66d30..59bd7d4 100644
 +unsigned long __copy_from_user(void *dst, const void __user *src, unsigned long size)
  {
 -      int ret = 0;
-+      int sz = __compiletime_object_size(dst);
++      size_t sz = __compiletime_object_size(dst);
 +      unsigned ret = 0;
  
        might_fault();
 -      if (!__builtin_constant_p(size))
 -              return copy_user_generic(dst, (__force void *)src, size);
 +
-+      pax_track_stack();
-+
 +      if (size > INT_MAX)
 +              return size;
 +
@@ -10918,10 +13213,8 @@ index 1c66d30..59bd7d4 100644
 +              return size;
 +#endif
 +
-+      if (unlikely(sz != -1 && sz < size)) {
-+#ifdef CONFIG_DEBUG_VM
-+              WARN(1, "Buffer overflow detected!\n");
-+#endif
++      if (unlikely(sz != (size_t)-1 && sz < size)) {
++              copy_from_user_overflow();
 +              return size;
 +      }
 +
@@ -10991,15 +13284,13 @@ index 1c66d30..59bd7d4 100644
 +unsigned long __copy_to_user(void __user *dst, const void *src, unsigned long size)
  {
 -      int ret = 0;
-+      int sz = __compiletime_object_size(src);
++      size_t sz = __compiletime_object_size(src);
 +      unsigned ret = 0;
  
        might_fault();
 -      if (!__builtin_constant_p(size))
 -              return copy_user_generic((__force void *)dst, src, size);
 +
-+      pax_track_stack();
-+
 +      if (size > INT_MAX)
 +              return size;
 +
@@ -11008,10 +13299,8 @@ index 1c66d30..59bd7d4 100644
 +              return size;
 +#endif
 +
-+      if (unlikely(sz != -1 && sz < size)) {
-+#ifdef CONFIG_DEBUG_VM
-+              WARN(1, "Buffer overflow detected!\n");
-+#endif
++      if (unlikely(sz != (size_t)-1 && sz < size)) {
++              copy_to_user_overflow();
 +              return size;
 +      }
 +
@@ -11118,7 +13407,7 @@ index 1c66d30..59bd7d4 100644
                               ret, "b", "b", "=q", 1);
                if (likely(!ret))
                        __put_user_asm(tmp, (u8 __user *)dst,
-@@ -176,7 +267,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
+@@ -176,7 +277,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
        }
        case 2: {
                u16 tmp;
@@ -11127,7 +13416,7 @@ index 1c66d30..59bd7d4 100644
                               ret, "w", "w", "=r", 2);
                if (likely(!ret))
                        __put_user_asm(tmp, (u16 __user *)dst,
-@@ -186,7 +277,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
+@@ -186,7 +287,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
  
        case 4: {
                u32 tmp;
@@ -11136,7 +13425,7 @@ index 1c66d30..59bd7d4 100644
                               ret, "l", "k", "=r", 4);
                if (likely(!ret))
                        __put_user_asm(tmp, (u32 __user *)dst,
-@@ -195,7 +286,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
+@@ -195,7 +296,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
        }
        case 8: {
                u64 tmp;
@@ -11145,7 +13434,7 @@ index 1c66d30..59bd7d4 100644
                               ret, "q", "", "=r", 8);
                if (likely(!ret))
                        __put_user_asm(tmp, (u64 __user *)dst,
-@@ -203,8 +294,16 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
+@@ -203,47 +304,92 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
                return ret;
        }
        default:
@@ -11164,16 +13453,19 @@ index 1c66d30..59bd7d4 100644
        }
  }
  
-@@ -219,35 +318,74 @@ __must_check unsigned long clear_user(void __user *mem, unsigned long len);
- __must_check unsigned long __clear_user(void __user *mem, unsigned long len);
+ __must_check long strnlen_user(const char __user *str, long n);
+ __must_check long __strnlen_user(const char __user *str, long n);
+ __must_check long strlen_user(const char __user *str);
+-__must_check unsigned long clear_user(void __user *mem, unsigned long len);
+-__must_check unsigned long __clear_user(void __user *mem, unsigned long len);
++__must_check unsigned long clear_user(void __user *mem, unsigned long len) __size_overflow(2);
++__must_check unsigned long __clear_user(void __user *mem, unsigned long len) __size_overflow(2);
  
  static __must_check __always_inline int
 -__copy_from_user_inatomic(void *dst, const void __user *src, unsigned size)
 +__copy_from_user_inatomic(void *dst, const void __user *src, unsigned long size)
  {
 -      return copy_user_generic(dst, (__force const void *)src, size);
-+      pax_track_stack();
-+
 +      if (size > INT_MAX)
 +              return size;
 +
@@ -11211,7 +13503,7 @@ index 1c66d30..59bd7d4 100644
 -extern long __copy_user_nocache(void *dst, const void __user *src,
 -                              unsigned size, int zerorest);
 +extern unsigned long __copy_user_nocache(void *dst, const void __user *src,
-+                              unsigned long size, int zerorest);
++                              unsigned long size, int zerorest) __size_overflow(3);
  
 -static inline int
 -__copy_from_user_nocache(void *dst, const void __user *src, unsigned size)
@@ -11250,7 +13542,7 @@ index 1c66d30..59bd7d4 100644
 -unsigned long
 -copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest);
 +extern unsigned long
-+copy_user_handle_tail(char __user *to, char __user *from, unsigned long len, unsigned zerorest);
++copy_user_handle_tail(char __user *to, char __user *from, unsigned long len, unsigned zerorest) __size_overflow(3);
  
  #endif /* _ASM_X86_UACCESS_64_H */
 diff --git a/arch/x86/include/asm/vdso.h b/arch/x86/include/asm/vdso.h
@@ -11267,10 +13559,10 @@ index bb05228..d763d5b 100644
  #endif
  
 diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
-index d3d8590..d296b5f 100644
+index 764b66a..ad3cfc8 100644
 --- a/arch/x86/include/asm/x86_init.h
 +++ b/arch/x86/include/asm/x86_init.h
-@@ -28,7 +28,7 @@ struct x86_init_mpparse {
+@@ -29,7 +29,7 @@ struct x86_init_mpparse {
        void (*mpc_oem_bus_info)(struct mpc_bus *m, char *name);
        void (*find_smp_config)(void);
        void (*get_smp_config)(unsigned int early);
@@ -11279,7 +13571,7 @@ index d3d8590..d296b5f 100644
  
  /**
   * struct x86_init_resources - platform specific resource related ops
-@@ -42,7 +42,7 @@ struct x86_init_resources {
+@@ -43,7 +43,7 @@ struct x86_init_resources {
        void (*probe_roms)(void);
        void (*reserve_resources)(void);
        char *(*memory_setup)(void);
@@ -11288,7 +13580,7 @@ index d3d8590..d296b5f 100644
  
  /**
   * struct x86_init_irqs - platform specific interrupt setup
-@@ -55,7 +55,7 @@ struct x86_init_irqs {
+@@ -56,7 +56,7 @@ struct x86_init_irqs {
        void (*pre_vector_init)(void);
        void (*intr_init)(void);
        void (*trap_init)(void);
@@ -11297,7 +13589,7 @@ index d3d8590..d296b5f 100644
  
  /**
   * struct x86_init_oem - oem platform specific customizing functions
-@@ -65,7 +65,7 @@ struct x86_init_irqs {
+@@ -66,7 +66,7 @@ struct x86_init_irqs {
  struct x86_init_oem {
        void (*arch_setup)(void);
        void (*banner)(void);
@@ -11306,7 +13598,7 @@ index d3d8590..d296b5f 100644
  
  /**
   * struct x86_init_mapping - platform specific initial kernel pagetable setup
-@@ -76,7 +76,7 @@ struct x86_init_oem {
+@@ -77,7 +77,7 @@ struct x86_init_oem {
   */
  struct x86_init_mapping {
        void (*pagetable_reserve)(u64 start, u64 end);
@@ -11315,7 +13607,7 @@ index d3d8590..d296b5f 100644
  
  /**
   * struct x86_init_paging - platform specific paging functions
-@@ -86,7 +86,7 @@ struct x86_init_mapping {
+@@ -87,7 +87,7 @@ struct x86_init_mapping {
  struct x86_init_paging {
        void (*pagetable_setup_start)(pgd_t *base);
        void (*pagetable_setup_done)(pgd_t *base);
@@ -11324,7 +13616,7 @@ index d3d8590..d296b5f 100644
  
  /**
   * struct x86_init_timers - platform specific timer setup
-@@ -101,7 +101,7 @@ struct x86_init_timers {
+@@ -102,7 +102,7 @@ struct x86_init_timers {
        void (*tsc_pre_init)(void);
        void (*timer_init)(void);
        void (*wallclock_init)(void);
@@ -11333,7 +13625,7 @@ index d3d8590..d296b5f 100644
  
  /**
   * struct x86_init_iommu - platform specific iommu setup
-@@ -109,7 +109,7 @@ struct x86_init_timers {
+@@ -110,7 +110,7 @@ struct x86_init_timers {
   */
  struct x86_init_iommu {
        int (*iommu_init)(void);
@@ -11342,7 +13634,7 @@ index d3d8590..d296b5f 100644
  
  /**
   * struct x86_init_pci - platform specific pci init functions
-@@ -123,7 +123,7 @@ struct x86_init_pci {
+@@ -124,7 +124,7 @@ struct x86_init_pci {
        int (*init)(void);
        void (*init_irq)(void);
        void (*fixup_irqs)(void);
@@ -11351,7 +13643,7 @@ index d3d8590..d296b5f 100644
  
  /**
   * struct x86_init_ops - functions for platform specific setup
-@@ -139,7 +139,7 @@ struct x86_init_ops {
+@@ -140,7 +140,7 @@ struct x86_init_ops {
        struct x86_init_timers          timers;
        struct x86_init_iommu           iommu;
        struct x86_init_pci             pci;
@@ -11360,28 +13652,28 @@ index d3d8590..d296b5f 100644
  
  /**
   * struct x86_cpuinit_ops - platform specific cpu hotplug setups
-@@ -147,7 +147,7 @@ struct x86_init_ops {
-  */
- struct x86_cpuinit_ops {
+@@ -151,7 +151,7 @@ struct x86_cpuinit_ops {
        void (*setup_percpu_clockev)(void);
+       void (*early_percpu_clock_init)(void);
+       void (*fixup_cpu_id)(struct cpuinfo_x86 *c, int node);
 -};
 +} __no_const;
  
  /**
   * struct x86_platform_ops - platform specific runtime functions
-@@ -166,7 +166,7 @@ struct x86_platform_ops {
-       bool (*is_untracked_pat_range)(u64 start, u64 end);
-       void (*nmi_init)(void);
+@@ -177,7 +177,7 @@ struct x86_platform_ops {
        int (*i8042_detect)(void);
+       void (*save_sched_clock_state)(void);
+       void (*restore_sched_clock_state)(void);
 -};
 +} __no_const;
  
  struct pci_dev;
  
-@@ -174,7 +174,7 @@ struct x86_msi_ops {
-       int (*setup_msi_irqs)(struct pci_dev *dev, int nvec, int type);
+@@ -186,7 +186,7 @@ struct x86_msi_ops {
        void (*teardown_msi_irq)(unsigned int irq);
        void (*teardown_msi_irqs)(struct pci_dev *dev);
+       void (*restore_msi_irqs)(struct pci_dev *dev, int irq);
 -};
 +} __no_const;
  
@@ -11457,10 +13749,10 @@ index b4fd836..4358fe3 100644
        pushw   $0
        pushw   trampoline_segment
 diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
-index 103b6ab..2004d0a 100644
+index 146a49c..1b5338b 100644
 --- a/arch/x86/kernel/acpi/sleep.c
 +++ b/arch/x86/kernel/acpi/sleep.c
-@@ -94,8 +94,12 @@ int acpi_suspend_lowlevel(void)
+@@ -98,8 +98,12 @@ int acpi_suspend_lowlevel(void)
        header->trampoline_segment = trampoline_address() >> 4;
  #ifdef CONFIG_SMP
        stack_start = (unsigned long)temp_stack + sizeof(temp_stack);
@@ -11474,7 +13766,7 @@ index 103b6ab..2004d0a 100644
  #endif
        initial_code = (unsigned long)wakeup_long64;
 diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S
-index 13ab720..95d5442 100644
+index 7261083..5c12053 100644
 --- a/arch/x86/kernel/acpi/wakeup_32.S
 +++ b/arch/x86/kernel/acpi/wakeup_32.S
 @@ -30,13 +30,11 @@ wakeup_pmode_return:
@@ -11494,7 +13786,7 @@ index 13ab720..95d5442 100644
  bogus_magic:
        jmp     bogus_magic
 diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
-index c638228..16dfa8d 100644
+index 1f84794..e23f862 100644
 --- a/arch/x86/kernel/alternative.c
 +++ b/arch/x86/kernel/alternative.c
 @@ -276,6 +276,13 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
@@ -11631,10 +13923,10 @@ index c638228..16dfa8d 100644
  }
  
 diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
-index 52fa563..5de9d9c 100644
+index edc2448..553e7c5 100644
 --- a/arch/x86/kernel/apic/apic.c
 +++ b/arch/x86/kernel/apic/apic.c
-@@ -174,7 +174,7 @@ int first_system_vector = 0xfe;
+@@ -184,7 +184,7 @@ int first_system_vector = 0xfe;
  /*
   * Debug level, exported for io_apic.c
   */
@@ -11643,7 +13935,7 @@ index 52fa563..5de9d9c 100644
  
  int pic_mode;
  
-@@ -1835,7 +1835,7 @@ void smp_error_interrupt(struct pt_regs *regs)
+@@ -1917,7 +1917,7 @@ void smp_error_interrupt(struct pt_regs *regs)
        apic_write(APIC_ESR, 0);
        v1 = apic_read(APIC_ESR);
        ack_APIC_irq();
@@ -11652,20 +13944,22 @@ index 52fa563..5de9d9c 100644
  
        apic_printk(APIC_DEBUG, KERN_DEBUG "APIC error on CPU%d: %02x(%02x)",
                    smp_processor_id(), v0 , v1);
-@@ -2209,6 +2209,8 @@ static int __cpuinit apic_cluster_num(void)
-       u16 *bios_cpu_apicid;
-       DECLARE_BITMAP(clustermap, NUM_APIC_CLUSTERS);
-+      pax_track_stack();
-+
-       bios_cpu_apicid = early_per_cpu_ptr(x86_bios_cpu_apicid);
-       bitmap_zero(clustermap, NUM_APIC_CLUSTERS);
 diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
-index 8eb863e..32e6934 100644
+index e88300d..cd5a87a 100644
 --- a/arch/x86/kernel/apic/io_apic.c
 +++ b/arch/x86/kernel/apic/io_apic.c
-@@ -1028,7 +1028,7 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin,
+@@ -83,7 +83,9 @@ static struct io_apic_ops io_apic_ops = {
+ void __init set_io_apic_ops(const struct io_apic_ops *ops)
+ {
+-      io_apic_ops = *ops;
++      pax_open_kernel();
++      memcpy((void*)&io_apic_ops, ops, sizeof io_apic_ops);
++      pax_close_kernel();
+ }
+ /*
+@@ -1135,7 +1137,7 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin,
  }
  EXPORT_SYMBOL(IO_APIC_get_PCI_irq_vector);
  
@@ -11674,7 +13968,7 @@ index 8eb863e..32e6934 100644
  {
        /* Used to the online set of cpus does not change
         * during assign_irq_vector.
-@@ -1036,7 +1036,7 @@ void lock_vector_lock(void)
+@@ -1143,7 +1145,7 @@ void lock_vector_lock(void)
        raw_spin_lock(&vector_lock);
  }
  
@@ -11683,16 +13977,16 @@ index 8eb863e..32e6934 100644
  {
        raw_spin_unlock(&vector_lock);
  }
-@@ -2405,7 +2405,7 @@ static void ack_apic_edge(struct irq_data *data)
+@@ -2549,7 +2551,7 @@ static void ack_apic_edge(struct irq_data *data)
        ack_APIC_irq();
  }
  
 -atomic_t irq_mis_count;
 +atomic_unchecked_t irq_mis_count;
  
- /*
-  * IO-APIC versions below 0x20 don't support EOI register.
-@@ -2513,7 +2513,7 @@ static void ack_apic_level(struct irq_data *data)
+ #ifdef CONFIG_GENERIC_PENDING_IRQ
+ static inline bool ioapic_irqd_mask(struct irq_data *data, struct irq_cfg *cfg)
+@@ -2667,7 +2669,7 @@ static void ack_apic_level(struct irq_data *data)
         * at the cpu.
         */
        if (!(v & (1 << (i & 0x1f)))) {
@@ -11702,10 +13996,10 @@ index 8eb863e..32e6934 100644
                eoi_ioapic_irq(irq, cfg);
        }
 diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
-index 0371c48..54cdf63 100644
+index 459e78c..f037006 100644
 --- a/arch/x86/kernel/apm_32.c
 +++ b/arch/x86/kernel/apm_32.c
-@@ -413,7 +413,7 @@ static DEFINE_MUTEX(apm_mutex);
+@@ -410,7 +410,7 @@ static DEFINE_MUTEX(apm_mutex);
   * This is for buggy BIOS's that refer to (real mode) segment 0x40
   * even though they are called in protected mode.
   */
@@ -11714,7 +14008,7 @@ index 0371c48..54cdf63 100644
                        (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1);
  
  static const char driver_version[] = "1.16ac";        /* no spaces */
-@@ -591,7 +591,10 @@ static long __apm_bios_call(void *_call)
+@@ -588,7 +588,10 @@ static long __apm_bios_call(void *_call)
        BUG_ON(cpu != 0);
        gdt = get_cpu_gdt_table(cpu);
        save_desc_40 = gdt[0x40 / 8];
@@ -11725,7 +14019,7 @@ index 0371c48..54cdf63 100644
  
        apm_irq_save(flags);
        APM_DO_SAVE_SEGS;
-@@ -600,7 +603,11 @@ static long __apm_bios_call(void *_call)
+@@ -597,7 +600,11 @@ static long __apm_bios_call(void *_call)
                          &call->esi);
        APM_DO_RESTORE_SEGS;
        apm_irq_restore(flags);
@@ -11737,7 +14031,7 @@ index 0371c48..54cdf63 100644
        put_cpu();
  
        return call->eax & 0xff;
-@@ -667,7 +674,10 @@ static long __apm_bios_call_simple(void *_call)
+@@ -664,7 +671,10 @@ static long __apm_bios_call_simple(void *_call)
        BUG_ON(cpu != 0);
        gdt = get_cpu_gdt_table(cpu);
        save_desc_40 = gdt[0x40 / 8];
@@ -11748,7 +14042,7 @@ index 0371c48..54cdf63 100644
  
        apm_irq_save(flags);
        APM_DO_SAVE_SEGS;
-@@ -675,7 +685,11 @@ static long __apm_bios_call_simple(void *_call)
+@@ -672,7 +682,11 @@ static long __apm_bios_call_simple(void *_call)
                                         &call->eax);
        APM_DO_RESTORE_SEGS;
        apm_irq_restore(flags);
@@ -11760,7 +14054,7 @@ index 0371c48..54cdf63 100644
        put_cpu();
        return error;
  }
-@@ -2349,12 +2363,15 @@ static int __init apm_init(void)
+@@ -2345,12 +2359,15 @@ static int __init apm_init(void)
         * code to that CPU.
         */
        gdt = get_cpu_gdt_table(0);
@@ -11777,7 +14071,7 @@ index 0371c48..54cdf63 100644
        proc_create("apm", 0, NULL, &apm_file_ops);
  
 diff --git a/arch/x86/kernel/asm-offsets.c b/arch/x86/kernel/asm-offsets.c
-index 4f13faf..87db5d2 100644
+index 68de2dc..1f3c720 100644
 --- a/arch/x86/kernel/asm-offsets.c
 +++ b/arch/x86/kernel/asm-offsets.c
 @@ -33,6 +33,8 @@ void common(void) {
@@ -11817,10 +14111,10 @@ index 4f13faf..87db5d2 100644
        BLANK();
        OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask);
 diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
-index e72a119..6e2955d 100644
+index 1b4754f..fbb4227 100644
 --- a/arch/x86/kernel/asm-offsets_64.c
 +++ b/arch/x86/kernel/asm-offsets_64.c
-@@ -69,6 +69,7 @@ int main(void)
+@@ -76,6 +76,7 @@ int main(void)
        BLANK();
  #undef ENTRY
  
@@ -11829,7 +14123,7 @@ index e72a119..6e2955d 100644
        BLANK();
  
 diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
-index 6042981..e638266 100644
+index 6ab6aa2..8f71507 100644
 --- a/arch/x86/kernel/cpu/Makefile
 +++ b/arch/x86/kernel/cpu/Makefile
 @@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg
@@ -11844,10 +14138,10 @@ index 6042981..e638266 100644
  obj-y                 += proc.o capflags.o powerflags.o common.o
  obj-y                 += vmware.o hypervisor.o sched.o mshyperv.o
 diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
-index b13ed39..603286c 100644
+index 146bb62..ac9c74a 100644
 --- a/arch/x86/kernel/cpu/amd.c
 +++ b/arch/x86/kernel/cpu/amd.c
-@@ -647,7 +647,7 @@ static unsigned int __cpuinit amd_size_cache(struct cpuinfo_x86 *c,
+@@ -691,7 +691,7 @@ static unsigned int __cpuinit amd_size_cache(struct cpuinfo_x86 *c,
                                                        unsigned int size)
  {
        /* AMD errata T13 (order #21922) */
@@ -11857,10 +14151,10 @@ index b13ed39..603286c 100644
                if (c->x86_model == 3 && c->x86_mask == 0)
                        size = 64;
 diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
-index 6218439..0f1addc 100644
+index cf79302..b1b28ae 100644
 --- a/arch/x86/kernel/cpu/common.c
 +++ b/arch/x86/kernel/cpu/common.c
-@@ -83,60 +83,6 @@ static const struct cpu_dev __cpuinitconst default_cpu = {
+@@ -86,60 +86,6 @@ static const struct cpu_dev __cpuinitconst default_cpu = {
  
  static const struct cpu_dev *this_cpu __cpuinitdata = &default_cpu;
  
@@ -11921,7 +14215,7 @@ index 6218439..0f1addc 100644
  static int __init x86_xsave_setup(char *s)
  {
        setup_clear_cpu_cap(X86_FEATURE_XSAVE);
-@@ -371,7 +317,7 @@ void switch_to_new_gdt(int cpu)
+@@ -374,7 +320,7 @@ void switch_to_new_gdt(int cpu)
  {
        struct desc_ptr gdt_descr;
  
@@ -11930,18 +14224,18 @@ index 6218439..0f1addc 100644
        gdt_descr.size = GDT_SIZE - 1;
        load_gdt(&gdt_descr);
        /* Reload the per-cpu base */
-@@ -840,6 +786,10 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
+@@ -841,6 +787,10 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
        /* Filter out anything that depends on CPUID levels we don't have */
        filter_cpuid_features(c, true);
  
-+#if defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_KERNEXEC) || (defined(CONFIG_PAX_MEMORY_UDEREF) && defined(CONFIG_X86_32))
++#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF))
 +      setup_clear_cpu_cap(X86_FEATURE_SEP);
 +#endif
 +
        /* If the model name is still unset, do table lookup. */
        if (!c->x86_model_id[0]) {
                const char *p;
-@@ -1019,6 +969,9 @@ static __init int setup_disablecpuid(char *arg)
+@@ -1021,10 +971,12 @@ static __init int setup_disablecpuid(char *arg)
  }
  __setup("clearcpuid=", setup_disablecpuid);
  
@@ -11950,8 +14244,13 @@ index 6218439..0f1addc 100644
 +
  #ifdef CONFIG_X86_64
  struct desc_ptr idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) idt_table };
+-struct desc_ptr nmi_idt_descr = { NR_VECTORS * 16 - 1,
+-                                  (unsigned long) nmi_idt_table };
++struct desc_ptr nmi_idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) nmi_idt_table };
  
-@@ -1034,7 +987,7 @@ DEFINE_PER_CPU(struct task_struct *, current_task) ____cacheline_aligned =
+ DEFINE_PER_CPU_FIRST(union irq_stack_union,
+                    irq_stack_union) __aligned(PAGE_SIZE);
+@@ -1038,7 +990,7 @@ DEFINE_PER_CPU(struct task_struct *, current_task) ____cacheline_aligned =
  EXPORT_PER_CPU_SYMBOL(current_task);
  
  DEFINE_PER_CPU(unsigned long, kernel_stack) =
@@ -11960,7 +14259,7 @@ index 6218439..0f1addc 100644
  EXPORT_PER_CPU_SYMBOL(kernel_stack);
  
  DEFINE_PER_CPU(char *, irq_stack_ptr) =
-@@ -1099,7 +1052,7 @@ struct pt_regs * __cpuinit idle_regs(struct pt_regs *regs)
+@@ -1126,7 +1078,7 @@ struct pt_regs * __cpuinit idle_regs(struct pt_regs *regs)
  {
        memset(regs, 0, sizeof(struct pt_regs));
        regs->fs = __KERNEL_PERCPU;
@@ -11969,7 +14268,7 @@ index 6218439..0f1addc 100644
  
        return regs;
  }
-@@ -1154,7 +1107,7 @@ void __cpuinit cpu_init(void)
+@@ -1181,7 +1133,7 @@ void __cpuinit cpu_init(void)
        int i;
  
        cpu = stack_smp_processor_id();
@@ -11978,7 +14277,7 @@ index 6218439..0f1addc 100644
        oist = &per_cpu(orig_ist, cpu);
  
  #ifdef CONFIG_NUMA
-@@ -1180,7 +1133,7 @@ void __cpuinit cpu_init(void)
+@@ -1207,7 +1159,7 @@ void __cpuinit cpu_init(void)
        switch_to_new_gdt(cpu);
        loadsegment(fs, 0);
  
@@ -11987,7 +14286,7 @@ index 6218439..0f1addc 100644
  
        memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8);
        syscall_init();
-@@ -1189,7 +1142,6 @@ void __cpuinit cpu_init(void)
+@@ -1216,7 +1168,6 @@ void __cpuinit cpu_init(void)
        wrmsrl(MSR_KERNEL_GS_BASE, 0);
        barrier();
  
@@ -11995,7 +14294,7 @@ index 6218439..0f1addc 100644
        if (cpu != 0)
                enable_x2apic();
  
-@@ -1243,7 +1195,7 @@ void __cpuinit cpu_init(void)
+@@ -1272,7 +1223,7 @@ void __cpuinit cpu_init(void)
  {
        int cpu = smp_processor_id();
        struct task_struct *curr = current;
@@ -12005,10 +14304,10 @@ index 6218439..0f1addc 100644
  
        if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) {
 diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
-index ed6086e..a1dcf29 100644
+index 3e6ff6c..54b4992 100644
 --- a/arch/x86/kernel/cpu/intel.c
 +++ b/arch/x86/kernel/cpu/intel.c
-@@ -172,7 +172,7 @@ static void __cpuinit trap_init_f00f_bug(void)
+@@ -174,7 +174,7 @@ static void __cpuinit trap_init_f00f_bug(void)
         * Update the IDT descriptor and reload the IDT so that
         * it uses the read-only mapped virtual address.
         */
@@ -12017,23 +14316,8 @@ index ed6086e..a1dcf29 100644
        load_idt(&idt_descr);
  }
  #endif
-diff --git a/arch/x86/kernel/cpu/mcheck/mce-inject.c b/arch/x86/kernel/cpu/mcheck/mce-inject.c
-index 0ed633c..82cef2a 100644
---- a/arch/x86/kernel/cpu/mcheck/mce-inject.c
-+++ b/arch/x86/kernel/cpu/mcheck/mce-inject.c
-@@ -215,7 +215,9 @@ static int inject_init(void)
-       if (!alloc_cpumask_var(&mce_inject_cpumask, GFP_KERNEL))
-               return -ENOMEM;
-       printk(KERN_INFO "Machine check injector initialized\n");
--      mce_chrdev_ops.write = mce_write;
-+      pax_open_kernel();
-+      *(void **)&mce_chrdev_ops.write = mce_write;
-+      pax_close_kernel();
-       register_die_notifier(&mce_raise_nb);
-       return 0;
- }
 diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
-index 08363b0..ee26113 100644
+index 61604ae..98250a5 100644
 --- a/arch/x86/kernel/cpu/mcheck/mce.c
 +++ b/arch/x86/kernel/cpu/mcheck/mce.c
 @@ -42,6 +42,7 @@
@@ -12044,7 +14328,7 @@ index 08363b0..ee26113 100644
  
  #include "mce-internal.h"
  
-@@ -205,7 +206,7 @@ static void print_mce(struct mce *m)
+@@ -250,7 +251,7 @@ static void print_mce(struct mce *m)
                        !(m->mcgstatus & MCG_STATUS_EIPV) ? " !INEXACT!" : "",
                                m->cs, m->ip);
  
@@ -12053,7 +14337,7 @@ index 08363b0..ee26113 100644
                        print_symbol("{%s}", m->ip);
                pr_cont("\n");
        }
-@@ -233,10 +234,10 @@ static void print_mce(struct mce *m)
+@@ -283,10 +284,10 @@ static void print_mce(struct mce *m)
  
  #define PANIC_TIMEOUT 5 /* 5 seconds */
  
@@ -12066,7 +14350,7 @@ index 08363b0..ee26113 100644
  
  /* Panic in progress. Enable interrupts and wait for final IPI */
  static void wait_for_panic(void)
-@@ -260,7 +261,7 @@ static void mce_panic(char *msg, struct mce *final, char *exp)
+@@ -310,7 +311,7 @@ static void mce_panic(char *msg, struct mce *final, char *exp)
                /*
                 * Make sure only one CPU runs in machine check panic
                 */
@@ -12075,7 +14359,7 @@ index 08363b0..ee26113 100644
                        wait_for_panic();
                barrier();
  
-@@ -268,7 +269,7 @@ static void mce_panic(char *msg, struct mce *final, char *exp)
+@@ -318,7 +319,7 @@ static void mce_panic(char *msg, struct mce *final, char *exp)
                console_verbose();
        } else {
                /* Don't log too much for fake panic */
@@ -12084,7 +14368,7 @@ index 08363b0..ee26113 100644
                        return;
        }
        /* First print corrected ones that are still unlogged */
-@@ -610,7 +611,7 @@ static int mce_timed_out(u64 *t)
+@@ -684,7 +685,7 @@ static int mce_timed_out(u64 *t)
         * might have been modified by someone else.
         */
        rmb();
@@ -12093,7 +14377,7 @@ index 08363b0..ee26113 100644
                wait_for_panic();
        if (!monarch_timeout)
                goto out;
-@@ -1392,7 +1393,7 @@ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
+@@ -1535,7 +1536,7 @@ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
  }
  
  /* Call the installed machine check handler for this CPU setup. */
@@ -12102,7 +14386,7 @@ index 08363b0..ee26113 100644
                                                unexpected_machine_check;
  
  /*
-@@ -1415,7 +1416,9 @@ void __cpuinit mcheck_cpu_init(struct cpuinfo_x86 *c)
+@@ -1558,7 +1559,9 @@ void __cpuinit mcheck_cpu_init(struct cpuinfo_x86 *c)
                return;
        }
  
@@ -12112,7 +14396,7 @@ index 08363b0..ee26113 100644
  
        __mcheck_cpu_init_generic();
        __mcheck_cpu_init_vendor(c);
-@@ -1429,7 +1432,7 @@ void __cpuinit mcheck_cpu_init(struct cpuinfo_x86 *c)
+@@ -1572,7 +1575,7 @@ void __cpuinit mcheck_cpu_init(struct cpuinfo_x86 *c)
   */
  
  static DEFINE_SPINLOCK(mce_chrdev_state_lock);
@@ -12121,7 +14405,7 @@ index 08363b0..ee26113 100644
  static int mce_chrdev_open_exclu;     /* already open exclusive? */
  
  static int mce_chrdev_open(struct inode *inode, struct file *file)
-@@ -1437,7 +1440,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
+@@ -1580,7 +1583,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
        spin_lock(&mce_chrdev_state_lock);
  
        if (mce_chrdev_open_exclu ||
@@ -12130,7 +14414,7 @@ index 08363b0..ee26113 100644
                spin_unlock(&mce_chrdev_state_lock);
  
                return -EBUSY;
-@@ -1445,7 +1448,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
+@@ -1588,7 +1591,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
  
        if (file->f_flags & O_EXCL)
                mce_chrdev_open_exclu = 1;
@@ -12139,7 +14423,7 @@ index 08363b0..ee26113 100644
  
        spin_unlock(&mce_chrdev_state_lock);
  
-@@ -1456,7 +1459,7 @@ static int mce_chrdev_release(struct inode *inode, struct file *file)
+@@ -1599,7 +1602,7 @@ static int mce_chrdev_release(struct inode *inode, struct file *file)
  {
        spin_lock(&mce_chrdev_state_lock);
  
@@ -12148,7 +14432,7 @@ index 08363b0..ee26113 100644
        mce_chrdev_open_exclu = 0;
  
        spin_unlock(&mce_chrdev_state_lock);
-@@ -2147,7 +2150,7 @@ struct dentry *mce_get_debugfs_dir(void)
+@@ -2324,7 +2327,7 @@ struct dentry *mce_get_debugfs_dir(void)
  static void mce_reset(void)
  {
        cpu_missing = 0;
@@ -12158,10 +14442,18 @@ index 08363b0..ee26113 100644
        atomic_set(&mce_callin, 0);
        atomic_set(&global_nwo, 0);
 diff --git a/arch/x86/kernel/cpu/mcheck/p5.c b/arch/x86/kernel/cpu/mcheck/p5.c
-index 5c0e653..1e82c7c 100644
+index 2d5454c..51987eb 100644
 --- a/arch/x86/kernel/cpu/mcheck/p5.c
 +++ b/arch/x86/kernel/cpu/mcheck/p5.c
-@@ -50,7 +50,9 @@ void intel_p5_mcheck_init(struct cpuinfo_x86 *c)
+@@ -11,6 +11,7 @@
+ #include <asm/processor.h>
+ #include <asm/mce.h>
+ #include <asm/msr.h>
++#include <asm/pgtable.h>
+ /* By default disabled */
+ int mce_p5_enabled __read_mostly;
+@@ -49,7 +50,9 @@ void intel_p5_mcheck_init(struct cpuinfo_x86 *c)
        if (!cpu_has(c, X86_FEATURE_MCE))
                return;
  
@@ -12172,10 +14464,18 @@ index 5c0e653..1e82c7c 100644
        wmb();
  
 diff --git a/arch/x86/kernel/cpu/mcheck/winchip.c b/arch/x86/kernel/cpu/mcheck/winchip.c
-index 54060f5..e6ba93d 100644
+index 2d7998f..17c9de1 100644
 --- a/arch/x86/kernel/cpu/mcheck/winchip.c
 +++ b/arch/x86/kernel/cpu/mcheck/winchip.c
-@@ -24,7 +24,9 @@ void winchip_mcheck_init(struct cpuinfo_x86 *c)
+@@ -10,6 +10,7 @@
+ #include <asm/processor.h>
+ #include <asm/mce.h>
+ #include <asm/msr.h>
++#include <asm/pgtable.h>
+ /* Machine check handler for WinChip C6: */
+ static void winchip_machine_check(struct pt_regs *regs, long error_code)
+@@ -23,7 +24,9 @@ void winchip_mcheck_init(struct cpuinfo_x86 *c)
  {
        u32 lo, hi;
  
@@ -12212,19 +14512,10 @@ index df5e41f..816c719 100644
  extern int generic_get_free_region(unsigned long base, unsigned long size,
                                   int replace_reg);
 diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
-index cfa62ec..9250dd7 100644
+index bb8e034..fb9020b 100644
 --- a/arch/x86/kernel/cpu/perf_event.c
 +++ b/arch/x86/kernel/cpu/perf_event.c
-@@ -795,6 +795,8 @@ static int x86_schedule_events(struct cpu_hw_events *cpuc, int n, int *assign)
-       int i, j, w, wmax, num = 0;
-       struct hw_perf_event *hwc;
-+      pax_track_stack();
-+
-       bitmap_zero(used_mask, X86_PMC_IDX_MAX);
-       for (i = 0; i < n; i++) {
-@@ -1919,7 +1921,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
+@@ -1835,7 +1835,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
                        break;
  
                perf_callchain_store(entry, frame.return_address);
@@ -12234,13 +14525,16 @@ index cfa62ec..9250dd7 100644
  }
  
 diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
-index 764c7c2..c5d9c7b 100644
+index 13ad899..f642b9a 100644
 --- a/arch/x86/kernel/crash.c
 +++ b/arch/x86/kernel/crash.c
-@@ -42,7 +42,7 @@ static void kdump_nmi_callback(int cpu, struct die_args *args)
-       regs = args->regs;
+@@ -36,10 +36,8 @@ static void kdump_nmi_callback(int cpu, struct pt_regs *regs)
+ {
  #ifdef CONFIG_X86_32
+       struct pt_regs fixed_regs;
+-#endif
+-#ifdef CONFIG_X86_32
 -      if (!user_mode_vm(regs)) {
 +      if (!user_mode(regs)) {
                crash_fixup_ss_esp(&fixed_regs, regs);
@@ -12282,7 +14576,7 @@ index 37250fe..bf2ec74 100644
  
                .__cr3          = __pa_nodebug(swapper_pg_dir),
 diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
-index 1aae78f..aab3a3d 100644
+index 1b81839..0b4e7b0 100644
 --- a/arch/x86/kernel/dumpstack.c
 +++ b/arch/x86/kernel/dumpstack.c
 @@ -2,6 +2,9 @@
@@ -12295,18 +14589,25 @@ index 1aae78f..aab3a3d 100644
  #include <linux/kallsyms.h>
  #include <linux/kprobes.h>
  #include <linux/uaccess.h>
-@@ -35,9 +38,8 @@ void printk_address(unsigned long address, int reliable)
+@@ -35,16 +38,14 @@ void printk_address(unsigned long address, int reliable)
  static void
  print_ftrace_graph_addr(unsigned long addr, void *data,
                        const struct stacktrace_ops *ops,
 -                      struct thread_info *tinfo, int *graph)
 +                      struct task_struct *task, int *graph)
  {
--      struct task_struct *task = tinfo->task;
+-      struct task_struct *task;
        unsigned long ret_addr;
-       int index = task->curr_ret_stack;
+       int index;
+       if (addr != (unsigned long)return_to_handler)
+               return;
  
-@@ -58,7 +60,7 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
+-      task = tinfo->task;
+       index = task->curr_ret_stack;
+       if (!task->ret_stack || index < *graph)
+@@ -61,7 +62,7 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
  static inline void
  print_ftrace_graph_addr(unsigned long addr, void *data,
                        const struct stacktrace_ops *ops,
@@ -12315,7 +14616,7 @@ index 1aae78f..aab3a3d 100644
  { }
  #endif
  
-@@ -69,10 +71,8 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
+@@ -72,10 +73,8 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
   * severe exception (double fault, nmi, stack fault, debug, mce) hardware stack
   */
  
@@ -12327,7 +14628,7 @@ index 1aae78f..aab3a3d 100644
        if (end) {
                if (p < end && p >= (end-THREAD_SIZE))
                        return 1;
-@@ -83,14 +83,14 @@ static inline int valid_stack_ptr(struct thread_info *tinfo,
+@@ -86,14 +85,14 @@ static inline int valid_stack_ptr(struct thread_info *tinfo,
  }
  
  unsigned long
@@ -12344,7 +14645,7 @@ index 1aae78f..aab3a3d 100644
                unsigned long addr;
  
                addr = *stack;
-@@ -102,7 +102,7 @@ print_context_stack(struct thread_info *tinfo,
+@@ -105,7 +104,7 @@ print_context_stack(struct thread_info *tinfo,
                        } else {
                                ops->address(data, addr, 0);
                        }
@@ -12353,7 +14654,7 @@ index 1aae78f..aab3a3d 100644
                }
                stack++;
        }
-@@ -111,7 +111,7 @@ print_context_stack(struct thread_info *tinfo,
+@@ -114,7 +113,7 @@ print_context_stack(struct thread_info *tinfo,
  EXPORT_SYMBOL_GPL(print_context_stack);
  
  unsigned long
@@ -12362,7 +14663,7 @@ index 1aae78f..aab3a3d 100644
                       unsigned long *stack, unsigned long bp,
                       const struct stacktrace_ops *ops, void *data,
                       unsigned long *end, int *graph)
-@@ -119,7 +119,7 @@ print_context_stack_bp(struct thread_info *tinfo,
+@@ -122,7 +121,7 @@ print_context_stack_bp(struct thread_info *tinfo,
        struct stack_frame *frame = (struct stack_frame *)bp;
        unsigned long *ret_addr = &frame->return_address;
  
@@ -12371,7 +14672,7 @@ index 1aae78f..aab3a3d 100644
                unsigned long addr = *ret_addr;
  
                if (!__kernel_text_address(addr))
-@@ -128,7 +128,7 @@ print_context_stack_bp(struct thread_info *tinfo,
+@@ -131,7 +130,7 @@ print_context_stack_bp(struct thread_info *tinfo,
                ops->address(data, addr, 1);
                frame = frame->next_frame;
                ret_addr = &frame->return_address;
@@ -12380,7 +14681,7 @@ index 1aae78f..aab3a3d 100644
        }
  
        return (unsigned long)frame;
-@@ -186,7 +186,7 @@ void dump_stack(void)
+@@ -189,7 +188,7 @@ void dump_stack(void)
  
        bp = stack_frame(current, NULL);
        printk("Pid: %d, comm: %.20s %s %s %.*s\n",
@@ -12389,7 +14690,7 @@ index 1aae78f..aab3a3d 100644
                init_utsname()->release,
                (int)strcspn(init_utsname()->version, " "),
                init_utsname()->version);
-@@ -222,6 +222,8 @@ unsigned __kprobes long oops_begin(void)
+@@ -225,6 +224,8 @@ unsigned __kprobes long oops_begin(void)
  }
  EXPORT_SYMBOL_GPL(oops_begin);
  
@@ -12398,7 +14699,7 @@ index 1aae78f..aab3a3d 100644
  void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr)
  {
        if (regs && kexec_should_crash(current))
-@@ -243,7 +245,10 @@ void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr)
+@@ -246,7 +247,10 @@ void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr)
                panic("Fatal exception in interrupt");
        if (panic_on_oops)
                panic("Fatal exception");
@@ -12410,7 +14711,7 @@ index 1aae78f..aab3a3d 100644
  }
  
  int __kprobes __die(const char *str, struct pt_regs *regs, long err)
-@@ -269,7 +274,7 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err)
+@@ -273,7 +277,7 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err)
  
        show_registers(regs);
  #ifdef CONFIG_X86_32
@@ -12419,7 +14720,7 @@ index 1aae78f..aab3a3d 100644
                sp = regs->sp;
                ss = regs->ss & 0xffff;
        } else {
-@@ -297,7 +302,7 @@ void die(const char *str, struct pt_regs *regs, long err)
+@@ -301,7 +305,7 @@ void die(const char *str, struct pt_regs *regs, long err)
        unsigned long flags = oops_begin();
        int sig = SIGSEGV;
  
@@ -12429,7 +14730,7 @@ index 1aae78f..aab3a3d 100644
  
        if (__die(str, regs, err))
 diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c
-index 3b97a80..667ce7a 100644
+index 88ec912..e95e935 100644
 --- a/arch/x86/kernel/dumpstack_32.c
 +++ b/arch/x86/kernel/dumpstack_32.c
 @@ -38,15 +38,13 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
@@ -12452,6 +14753,15 @@ index 3b97a80..667ce7a 100644
                if (ops->stack(data, "IRQ") < 0)
                        break;
                touch_nmi_watchdog();
+@@ -87,7 +85,7 @@ void show_registers(struct pt_regs *regs)
+       int i;
+       print_modules();
+-      __show_regs(regs, !user_mode_vm(regs));
++      __show_regs(regs, !user_mode(regs));
+       printk(KERN_EMERG "Process %.*s (pid: %d, ti=%p task=%p task.ti=%p)\n",
+               TASK_COMM_LEN, current->comm, task_pid_nr(current),
 @@ -96,21 +94,22 @@ void show_registers(struct pt_regs *regs)
         * When in-kernel, we also print out the stack and code at the
         * time of the fault..
@@ -12479,14 +14789,14 @@ index 3b97a80..667ce7a 100644
                }
                for (i = 0; i < code_len; i++, ip++) {
 @@ -119,7 +118,7 @@ void show_registers(struct pt_regs *regs)
-                               printk(" Bad EIP value.");
+                               printk(KERN_CONT " Bad EIP value.");
                                break;
                        }
 -                      if (ip == (u8 *)regs->ip)
 +                      if (ip == (u8 *)regs->ip + cs_base)
-                               printk("<%02x> ", c);
+                               printk(KERN_CONT "<%02x> ", c);
                        else
-                               printk("%02x ", c);
+                               printk(KERN_CONT "%02x ", c);
 @@ -132,6 +131,7 @@ int is_valid_bugaddr(unsigned long ip)
  {
        unsigned short ud2;
@@ -12512,7 +14822,7 @@ index 3b97a80..667ce7a 100644
 +EXPORT_SYMBOL(pax_check_alloca);
 +#endif
 diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
-index 19853ad..508ca79 100644
+index 17107bd..9623722 100644
 --- a/arch/x86/kernel/dumpstack_64.c
 +++ b/arch/x86/kernel/dumpstack_64.c
 @@ -119,9 +119,9 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
@@ -12547,7 +14857,16 @@ index 19853ad..508ca79 100644
                                             data, estack_end, &graph);
                        ops->stack(data, "<EOE>");
                        /*
-@@ -172,7 +172,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
+@@ -161,6 +161,8 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
+                        * second-to-last pointer (index -2 to end) in the
+                        * exception stack:
+                        */
++                      if ((u16)estack_end[-1] != __KERNEL_DS)
++                              goto out;
+                       stack = (unsigned long *) estack_end[-2];
+                       continue;
+               }
+@@ -172,7 +174,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
                        if (in_irq_stack(stack, irq_stack, irq_stack_end)) {
                                if (ops->stack(data, "IRQ") < 0)
                                        break;
@@ -12556,17 +14875,18 @@ index 19853ad..508ca79 100644
                                        ops, data, irq_stack_end, &graph);
                                /*
                                 * We link to the next stack (which would be
-@@ -191,7 +191,8 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
+@@ -191,7 +193,9 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
        /*
         * This handles the process stack:
         */
 -      bp = ops->walk_stack(tinfo, stack, bp, ops, data, NULL, &graph);
 +      stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
 +      bp = ops->walk_stack(task, stack_start, stack, bp, ops, data, NULL, &graph);
++out:
        put_cpu();
  }
  EXPORT_SYMBOL(dump_trace);
-@@ -305,3 +306,50 @@ int is_valid_bugaddr(unsigned long ip)
+@@ -305,3 +309,50 @@ int is_valid_bugaddr(unsigned long ip)
  
        return ud2 == 0x0b0f;
  }
@@ -12618,7 +14938,7 @@ index 19853ad..508ca79 100644
 +EXPORT_SYMBOL(pax_check_alloca);
 +#endif
 diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
-index cd28a35..2601699 100644
+index 9b9f18b..9fcaa04 100644
 --- a/arch/x86/kernel/early_printk.c
 +++ b/arch/x86/kernel/early_printk.c
 @@ -7,6 +7,7 @@
@@ -12629,20 +14949,11 @@ index cd28a35..2601699 100644
  #include <asm/io.h>
  #include <asm/processor.h>
  #include <asm/fcntl.h>
-@@ -179,6 +180,8 @@ asmlinkage void early_printk(const char *fmt, ...)
-       int n;
-       va_list ap;
-+      pax_track_stack();
-+
-       va_start(ap, fmt);
-       n = vscnprintf(buf, sizeof(buf), fmt, ap);
-       early_console->write(early_console, buf, n);
 diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
-index f3f6f53..0841b66 100644
+index 7b784f4..db6b628 100644
 --- a/arch/x86/kernel/entry_32.S
 +++ b/arch/x86/kernel/entry_32.S
-@@ -186,13 +186,146 @@
+@@ -179,13 +179,146 @@
        /*CFI_REL_OFFSET gs, PT_GS*/
  .endm
  .macro SET_KERNEL_GS reg
@@ -12790,7 +15101,7 @@ index f3f6f53..0841b66 100644
        cld
        PUSH_GS
        pushl_cfi %fs
-@@ -215,7 +348,7 @@
+@@ -208,7 +341,7 @@
        CFI_REL_OFFSET ecx, 0
        pushl_cfi %ebx
        CFI_REL_OFFSET ebx, 0
@@ -12799,7 +15110,7 @@ index f3f6f53..0841b66 100644
        movl %edx, %ds
        movl %edx, %es
        movl $(__KERNEL_PERCPU), %edx
-@@ -223,6 +356,15 @@
+@@ -216,6 +349,15 @@
        SET_KERNEL_GS %edx
  .endm
  
@@ -12815,7 +15126,7 @@ index f3f6f53..0841b66 100644
  .macro RESTORE_INT_REGS
        popl_cfi %ebx
        CFI_RESTORE ebx
-@@ -308,7 +450,7 @@ ENTRY(ret_from_fork)
+@@ -301,7 +443,7 @@ ENTRY(ret_from_fork)
        popfl_cfi
        jmp syscall_exit
        CFI_ENDPROC
@@ -12824,15 +15135,15 @@ index f3f6f53..0841b66 100644
  
  /*
   * Interrupt exit functions should be protected against kprobes
-@@ -333,7 +475,15 @@ check_userspace:
-       movb PT_CS(%esp), %al
-       andl $(X86_EFLAGS_VM | SEGMENT_RPL_MASK), %eax
+@@ -335,7 +477,15 @@ resume_userspace_sig:
+       andl $SEGMENT_RPL_MASK, %eax
+ #endif
        cmpl $USER_RPL, %eax
 +
 +#ifdef CONFIG_PAX_KERNEXEC
 +      jae resume_userspace
 +
-+      PAX_EXIT_KERNEL
++      pax_exit_kernel
 +      jmp resume_kernel
 +#else
        jb resume_kernel                # not returning to v8086 or userspace
@@ -12840,7 +15151,7 @@ index f3f6f53..0841b66 100644
  
  ENTRY(resume_userspace)
        LOCKDEP_SYS_EXIT
-@@ -345,8 +495,8 @@ ENTRY(resume_userspace)
+@@ -347,8 +497,8 @@ ENTRY(resume_userspace)
        andl $_TIF_WORK_MASK, %ecx      # is there any work to be done on
                                        # int/exception return?
        jne work_pending
@@ -12851,7 +15162,7 @@ index f3f6f53..0841b66 100644
  
  #ifdef CONFIG_PREEMPT
  ENTRY(resume_kernel)
-@@ -361,7 +511,7 @@ need_resched:
+@@ -363,7 +513,7 @@ need_resched:
        jz restore_all
        call preempt_schedule_irq
        jmp need_resched
@@ -12860,7 +15171,7 @@ index f3f6f53..0841b66 100644
  #endif
        CFI_ENDPROC
  /*
-@@ -395,23 +545,34 @@ sysenter_past_esp:
+@@ -397,23 +547,34 @@ sysenter_past_esp:
        /*CFI_REL_OFFSET cs, 0*/
        /*
         * Push current_thread_info()->sysenter_return to the stack.
@@ -12898,7 +15209,7 @@ index f3f6f53..0841b66 100644
        movl %ebp,PT_EBP(%esp)
  .section __ex_table,"a"
        .align 4
-@@ -434,12 +595,24 @@ sysenter_do_call:
+@@ -436,12 +597,24 @@ sysenter_do_call:
        testl $_TIF_ALLWORK_MASK, %ecx
        jne sysexit_audit
  sysenter_exit:
@@ -12923,17 +15234,17 @@ index f3f6f53..0841b66 100644
        PTGS_TO_GS
        ENABLE_INTERRUPTS_SYSEXIT
  
-@@ -456,6 +629,9 @@ sysenter_audit:
+@@ -458,6 +631,9 @@ sysenter_audit:
        movl %eax,%edx                  /* 2nd arg: syscall number */
        movl $AUDIT_ARCH_I386,%eax      /* 1st arg: audit arch */
-       call audit_syscall_entry
+       call __audit_syscall_entry
 +
 +      pax_erase_kstack
 +
        pushl_cfi %ebx
        movl PT_EAX(%esp),%eax          /* reload syscall number */
        jmp sysenter_do_call
-@@ -482,11 +658,17 @@ sysexit_audit:
+@@ -483,11 +659,17 @@ sysexit_audit:
  
        CFI_ENDPROC
  .pushsection .fixup,"ax"
@@ -12953,7 +15264,7 @@ index f3f6f53..0841b66 100644
  .popsection
        PTGS_TO_GS_EX
  ENDPROC(ia32_sysenter_target)
-@@ -519,6 +701,15 @@ syscall_exit:
+@@ -520,6 +702,15 @@ syscall_exit:
        testl $_TIF_ALLWORK_MASK, %ecx  # current->work
        jne syscall_exit_work
  
@@ -12969,7 +15280,7 @@ index f3f6f53..0841b66 100644
  restore_all:
        TRACE_IRQS_IRET
  restore_all_notrace:
-@@ -578,14 +769,34 @@ ldt_ss:
+@@ -579,14 +770,34 @@ ldt_ss:
   * compensating for the offset by changing to the ESPFIX segment with
   * a base address that matches for the difference.
   */
@@ -13007,7 +15318,7 @@ index f3f6f53..0841b66 100644
        pushl_cfi $__ESPFIX_SS
        pushl_cfi %eax                  /* new kernel esp */
        /* Disable interrupts, but do not irqtrace this section: we
-@@ -614,34 +825,28 @@ work_resched:
+@@ -615,38 +826,30 @@ work_resched:
        movl TI_flags(%ebp), %ecx
        andl $_TIF_WORK_MASK, %ecx      # is there any work to be done other
                                        # than syscall tracing?
@@ -13025,6 +15336,8 @@ index f3f6f53..0841b66 100644
 -      jne work_notifysig_v86          # returning to kernel-space or
 +      jz 1f                           # returning to kernel-space or
                                        # vm86-space
+-      TRACE_IRQS_ON
+-      ENABLE_INTERRUPTS(CLBR_NONE)
 -      xorl %edx, %edx
 -      call do_notify_resume
 -      jmp resume_userspace_sig
@@ -13039,6 +15352,8 @@ index f3f6f53..0841b66 100644
 -      movl %esp, %eax
 +1:
  #endif
+       TRACE_IRQS_ON
+       ENABLE_INTERRUPTS(CLBR_NONE)
        xorl %edx, %edx
        call do_notify_resume
        jmp resume_userspace_sig
@@ -13047,7 +15362,7 @@ index f3f6f53..0841b66 100644
  
        # perform syscall exit tracing
        ALIGN
-@@ -649,11 +854,14 @@ syscall_trace_entry:
+@@ -654,11 +857,14 @@ syscall_trace_entry:
        movl $-ENOSYS,PT_EAX(%esp)
        movl %esp, %eax
        call syscall_trace_enter
@@ -13055,7 +15370,7 @@ index f3f6f53..0841b66 100644
 +      pax_erase_kstack
 +
        /* What it returned is what we'll actually use.  */
-       cmpl $(nr_syscalls), %eax
+       cmpl $(NR_syscalls), %eax
        jnae syscall_call
        jmp syscall_exit
 -END(syscall_trace_entry)
@@ -13063,7 +15378,7 @@ index f3f6f53..0841b66 100644
  
        # perform syscall exit tracing
        ALIGN
-@@ -666,20 +874,24 @@ syscall_exit_work:
+@@ -671,20 +877,24 @@ syscall_exit_work:
        movl %esp, %eax
        call syscall_trace_leave
        jmp resume_userspace
@@ -13091,7 +15406,7 @@ index f3f6f53..0841b66 100644
        CFI_ENDPROC
  /*
   * End of kprobes section
-@@ -753,6 +965,36 @@ ptregs_clone:
+@@ -756,6 +966,36 @@ ENTRY(ptregs_clone)
        CFI_ENDPROC
  ENDPROC(ptregs_clone)
  
@@ -13128,7 +15443,7 @@ index f3f6f53..0841b66 100644
  .macro FIXUP_ESPFIX_STACK
  /*
   * Switch back for ESPFIX stack to the normal zerobased stack
-@@ -762,8 +1004,15 @@ ENDPROC(ptregs_clone)
+@@ -765,8 +1005,15 @@ ENDPROC(ptregs_clone)
   * normal stack and adjusts ESP with the matching offset.
   */
        /* fixup the stack */
@@ -13146,7 +15461,7 @@ index f3f6f53..0841b66 100644
        shl $16, %eax
        addl %esp, %eax                 /* the adjusted stack pointer */
        pushl_cfi $__KERNEL_DS
-@@ -816,7 +1065,7 @@ vector=vector+1
+@@ -819,7 +1066,7 @@ vector=vector+1
    .endr
  2:    jmp common_interrupt
  .endr
@@ -13155,7 +15470,7 @@ index f3f6f53..0841b66 100644
  
  .previous
  END(interrupt)
-@@ -864,7 +1113,7 @@ ENTRY(coprocessor_error)
+@@ -867,7 +1114,7 @@ ENTRY(coprocessor_error)
        pushl_cfi $do_coprocessor_error
        jmp error_code
        CFI_ENDPROC
@@ -13164,7 +15479,7 @@ index f3f6f53..0841b66 100644
  
  ENTRY(simd_coprocessor_error)
        RING0_INT_FRAME
-@@ -885,7 +1134,7 @@ ENTRY(simd_coprocessor_error)
+@@ -888,7 +1135,7 @@ ENTRY(simd_coprocessor_error)
  #endif
        jmp error_code
        CFI_ENDPROC
@@ -13173,7 +15488,7 @@ index f3f6f53..0841b66 100644
  
  ENTRY(device_not_available)
        RING0_INT_FRAME
-@@ -893,7 +1142,7 @@ ENTRY(device_not_available)
+@@ -896,7 +1143,7 @@ ENTRY(device_not_available)
        pushl_cfi $do_device_not_available
        jmp error_code
        CFI_ENDPROC
@@ -13182,7 +15497,7 @@ index f3f6f53..0841b66 100644
  
  #ifdef CONFIG_PARAVIRT
  ENTRY(native_iret)
-@@ -902,12 +1151,12 @@ ENTRY(native_iret)
+@@ -905,12 +1152,12 @@ ENTRY(native_iret)
        .align 4
        .long native_iret, iret_exc
  .previous
@@ -13197,7 +15512,7 @@ index f3f6f53..0841b66 100644
  #endif
  
  ENTRY(overflow)
-@@ -916,7 +1165,7 @@ ENTRY(overflow)
+@@ -919,7 +1166,7 @@ ENTRY(overflow)
        pushl_cfi $do_overflow
        jmp error_code
        CFI_ENDPROC
@@ -13206,7 +15521,7 @@ index f3f6f53..0841b66 100644
  
  ENTRY(bounds)
        RING0_INT_FRAME
-@@ -924,7 +1173,7 @@ ENTRY(bounds)
+@@ -927,7 +1174,7 @@ ENTRY(bounds)
        pushl_cfi $do_bounds
        jmp error_code
        CFI_ENDPROC
@@ -13215,7 +15530,7 @@ index f3f6f53..0841b66 100644
  
  ENTRY(invalid_op)
        RING0_INT_FRAME
-@@ -932,7 +1181,7 @@ ENTRY(invalid_op)
+@@ -935,7 +1182,7 @@ ENTRY(invalid_op)
        pushl_cfi $do_invalid_op
        jmp error_code
        CFI_ENDPROC
@@ -13224,7 +15539,7 @@ index f3f6f53..0841b66 100644
  
  ENTRY(coprocessor_segment_overrun)
        RING0_INT_FRAME
-@@ -940,35 +1189,35 @@ ENTRY(coprocessor_segment_overrun)
+@@ -943,35 +1190,35 @@ ENTRY(coprocessor_segment_overrun)
        pushl_cfi $do_coprocessor_segment_overrun
        jmp error_code
        CFI_ENDPROC
@@ -13265,7 +15580,7 @@ index f3f6f53..0841b66 100644
  
  ENTRY(divide_error)
        RING0_INT_FRAME
-@@ -976,7 +1225,7 @@ ENTRY(divide_error)
+@@ -979,7 +1226,7 @@ ENTRY(divide_error)
        pushl_cfi $do_divide_error
        jmp error_code
        CFI_ENDPROC
@@ -13274,7 +15589,7 @@ index f3f6f53..0841b66 100644
  
  #ifdef CONFIG_X86_MCE
  ENTRY(machine_check)
-@@ -985,7 +1234,7 @@ ENTRY(machine_check)
+@@ -988,7 +1235,7 @@ ENTRY(machine_check)
        pushl_cfi machine_check_vector
        jmp error_code
        CFI_ENDPROC
@@ -13283,7 +15598,7 @@ index f3f6f53..0841b66 100644
  #endif
  
  ENTRY(spurious_interrupt_bug)
-@@ -994,7 +1243,7 @@ ENTRY(spurious_interrupt_bug)
+@@ -997,7 +1244,7 @@ ENTRY(spurious_interrupt_bug)
        pushl_cfi $do_spurious_interrupt_bug
        jmp error_code
        CFI_ENDPROC
@@ -13292,7 +15607,7 @@ index f3f6f53..0841b66 100644
  /*
   * End of kprobes section
   */
-@@ -1109,7 +1358,7 @@ BUILD_INTERRUPT3(xen_hvm_callback_vector, XEN_HVM_EVTCHN_CALLBACK,
+@@ -1112,7 +1359,7 @@ BUILD_INTERRUPT3(xen_hvm_callback_vector, XEN_HVM_EVTCHN_CALLBACK,
  
  ENTRY(mcount)
        ret
@@ -13301,7 +15616,7 @@ index f3f6f53..0841b66 100644
  
  ENTRY(ftrace_caller)
        cmpl $0, function_trace_stop
-@@ -1138,7 +1387,7 @@ ftrace_graph_call:
+@@ -1141,7 +1388,7 @@ ftrace_graph_call:
  .globl ftrace_stub
  ftrace_stub:
        ret
@@ -13310,7 +15625,7 @@ index f3f6f53..0841b66 100644
  
  #else /* ! CONFIG_DYNAMIC_FTRACE */
  
-@@ -1174,7 +1423,7 @@ trace:
+@@ -1177,7 +1424,7 @@ trace:
        popl %ecx
        popl %eax
        jmp ftrace_stub
@@ -13319,7 +15634,7 @@ index f3f6f53..0841b66 100644
  #endif /* CONFIG_DYNAMIC_FTRACE */
  #endif /* CONFIG_FUNCTION_TRACER */
  
-@@ -1195,7 +1444,7 @@ ENTRY(ftrace_graph_caller)
+@@ -1198,7 +1445,7 @@ ENTRY(ftrace_graph_caller)
        popl %ecx
        popl %eax
        ret
@@ -13328,15 +15643,7 @@ index f3f6f53..0841b66 100644
  
  .globl return_to_handler
  return_to_handler:
-@@ -1209,7 +1458,6 @@ return_to_handler:
-       jmp *%ecx
- #endif
--.section .rodata,"a"
- #include "syscall_table_32.S"
- syscall_table_size=(.-sys_call_table)
-@@ -1255,15 +1503,18 @@ error_code:
+@@ -1253,15 +1500,18 @@ error_code:
        movl $-1, PT_ORIG_EAX(%esp)     # no syscall to restart
        REG_TO_PTGS %ecx
        SET_KERNEL_GS %ecx
@@ -13357,7 +15664,7 @@ index f3f6f53..0841b66 100644
  
  /*
   * Debug traps and NMI can happen at the one SYSENTER instruction
-@@ -1305,7 +1556,7 @@ debug_stack_correct:
+@@ -1303,7 +1553,7 @@ debug_stack_correct:
        call do_debug
        jmp ret_from_exception
        CFI_ENDPROC
@@ -13366,7 +15673,7 @@ index f3f6f53..0841b66 100644
  
  /*
   * NMI is doubly nasty. It can happen _while_ we're handling
-@@ -1342,6 +1593,9 @@ nmi_stack_correct:
+@@ -1340,6 +1590,9 @@ nmi_stack_correct:
        xorl %edx,%edx          # zero error code
        movl %esp,%eax          # pt_regs pointer
        call do_nmi
@@ -13376,7 +15683,7 @@ index f3f6f53..0841b66 100644
        jmp restore_all_notrace
        CFI_ENDPROC
  
-@@ -1378,12 +1632,15 @@ nmi_espfix_stack:
+@@ -1376,12 +1629,15 @@ nmi_espfix_stack:
        FIXUP_ESPFIX_STACK              # %eax == %esp
        xorl %edx,%edx                  # zero error code
        call do_nmi
@@ -13393,7 +15700,7 @@ index f3f6f53..0841b66 100644
  
  ENTRY(int3)
        RING0_INT_FRAME
-@@ -1395,14 +1652,14 @@ ENTRY(int3)
+@@ -1393,14 +1649,14 @@ ENTRY(int3)
        call do_int3
        jmp ret_from_exception
        CFI_ENDPROC
@@ -13410,7 +15717,7 @@ index f3f6f53..0841b66 100644
  
  #ifdef CONFIG_KVM_GUEST
  ENTRY(async_page_fault)
-@@ -1410,7 +1667,7 @@ ENTRY(async_page_fault)
+@@ -1408,7 +1664,7 @@ ENTRY(async_page_fault)
        pushl_cfi $do_async_page_fault
        jmp error_code
        CFI_ENDPROC
@@ -13420,19 +15727,19 @@ index f3f6f53..0841b66 100644
  
  /*
 diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
-index 6419bb0..00440bf 100644
+index cdc79b5..4710a75 100644
 --- a/arch/x86/kernel/entry_64.S
 +++ b/arch/x86/kernel/entry_64.S
-@@ -55,6 +55,8 @@
- #include <asm/paravirt.h>
+@@ -56,6 +56,8 @@
  #include <asm/ftrace.h>
  #include <asm/percpu.h>
+ #include <linux/err.h>
 +#include <asm/pgtable.h>
 +#include <asm/alternative-asm.h>
  
  /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this.  */
  #include <linux/elf-em.h>
-@@ -68,8 +70,9 @@
+@@ -69,8 +71,9 @@
  #ifdef CONFIG_FUNCTION_TRACER
  #ifdef CONFIG_DYNAMIC_FTRACE
  ENTRY(mcount)
@@ -13443,7 +15750,7 @@ index 6419bb0..00440bf 100644
  
  ENTRY(ftrace_caller)
        cmpl $0, function_trace_stop
-@@ -92,8 +95,9 @@ GLOBAL(ftrace_graph_call)
+@@ -93,8 +96,9 @@ GLOBAL(ftrace_graph_call)
  #endif
  
  GLOBAL(ftrace_stub)
@@ -13454,7 +15761,7 @@ index 6419bb0..00440bf 100644
  
  #else /* ! CONFIG_DYNAMIC_FTRACE */
  ENTRY(mcount)
-@@ -112,6 +116,7 @@ ENTRY(mcount)
+@@ -113,6 +117,7 @@ ENTRY(mcount)
  #endif
  
  GLOBAL(ftrace_stub)
@@ -13462,7 +15769,7 @@ index 6419bb0..00440bf 100644
        retq
  
  trace:
-@@ -121,12 +126,13 @@ trace:
+@@ -122,12 +127,13 @@ trace:
        movq 8(%rbp), %rsi
        subq $MCOUNT_INSN_SIZE, %rdi
  
@@ -13477,7 +15784,7 @@ index 6419bb0..00440bf 100644
  #endif /* CONFIG_DYNAMIC_FTRACE */
  #endif /* CONFIG_FUNCTION_TRACER */
  
-@@ -146,8 +152,9 @@ ENTRY(ftrace_graph_caller)
+@@ -147,8 +153,9 @@ ENTRY(ftrace_graph_caller)
  
        MCOUNT_RESTORE_FRAME
  
@@ -13488,7 +15795,7 @@ index 6419bb0..00440bf 100644
  
  GLOBAL(return_to_handler)
        subq  $24, %rsp
-@@ -163,6 +170,7 @@ GLOBAL(return_to_handler)
+@@ -164,6 +171,7 @@ GLOBAL(return_to_handler)
        movq 8(%rsp), %rdx
        movq (%rsp), %rax
        addq $24, %rsp
@@ -13496,7 +15803,7 @@ index 6419bb0..00440bf 100644
        jmp *%rdi
  #endif
  
-@@ -178,6 +186,282 @@ ENTRY(native_usergs_sysret64)
+@@ -179,6 +187,282 @@ ENTRY(native_usergs_sysret64)
  ENDPROC(native_usergs_sysret64)
  #endif /* CONFIG_PARAVIRT */
  
@@ -13604,9 +15911,9 @@ index 6419bb0..00440bf 100644
 +      call pax_exit_kernel_user
 +#endif
 +#ifdef CONFIG_PAX_RANDKSTACK
-+      push %rax
++      pushq %rax
 +      call pax_randomize_kstack
-+      pop %rax
++      popq %rax
 +#endif
 +      .endm
 +
@@ -13779,7 +16086,7 @@ index 6419bb0..00440bf 100644
  
  .macro TRACE_IRQS_IRETQ offset=ARGOFFSET
  #ifdef CONFIG_TRACE_IRQFLAGS
-@@ -231,8 +515,8 @@ ENDPROC(native_usergs_sysret64)
+@@ -232,8 +516,8 @@ ENDPROC(native_usergs_sysret64)
        .endm
  
        .macro UNFAKE_STACK_FRAME
@@ -13790,16 +16097,16 @@ index 6419bb0..00440bf 100644
        .endm
  
  /*
-@@ -319,7 +603,7 @@ ENDPROC(native_usergs_sysret64)
+@@ -320,7 +604,7 @@ ENDPROC(native_usergs_sysret64)
        movq %rsp, %rsi
  
        leaq -RBP(%rsp),%rdi    /* arg1 for handler */
--      testl $3, CS(%rdi)
-+      testb $3, CS(%rdi)
+-      testl $3, CS-RBP(%rsi)
++      testb $3, CS-RBP(%rsi)
        je 1f
        SWAPGS
        /*
-@@ -350,9 +634,10 @@ ENTRY(save_rest)
+@@ -355,9 +639,10 @@ ENTRY(save_rest)
        movq_cfi r15, R15+16
        movq %r11, 8(%rsp)      /* return address */
        FIXUP_TOP_OF_STACK %r11, 16
@@ -13811,7 +16118,7 @@ index 6419bb0..00440bf 100644
  
  /* save complete stack frame */
        .pushsection .kprobes.text, "ax"
-@@ -381,9 +666,10 @@ ENTRY(save_paranoid)
+@@ -386,9 +671,10 @@ ENTRY(save_paranoid)
        js 1f   /* negative -> in kernel */
        SWAPGS
        xorl %ebx,%ebx
@@ -13824,16 +16131,16 @@ index 6419bb0..00440bf 100644
        .popsection
  
  /*
-@@ -405,7 +691,7 @@ ENTRY(ret_from_fork)
+@@ -410,7 +696,7 @@ ENTRY(ret_from_fork)
  
        RESTORE_REST
  
 -      testl $3, CS-ARGOFFSET(%rsp)            # from kernel_thread?
 +      testb $3, CS-ARGOFFSET(%rsp)            # from kernel_thread?
-       je   int_ret_from_sys_call
+       jz   retint_restore_args
  
        testl $_TIF_IA32, TI_flags(%rcx)        # 32-bit compat task needs IRET
-@@ -415,7 +701,7 @@ ENTRY(ret_from_fork)
+@@ -420,7 +706,7 @@ ENTRY(ret_from_fork)
        jmp ret_from_sys_call                   # go to the SYSRET fastpath
  
        CFI_ENDPROC
@@ -13842,7 +16149,7 @@ index 6419bb0..00440bf 100644
  
  /*
   * System call entry. Up to 6 arguments in registers are supported.
-@@ -451,7 +737,7 @@ END(ret_from_fork)
+@@ -456,7 +742,7 @@ END(ret_from_fork)
  ENTRY(system_call)
        CFI_STARTPROC   simple
        CFI_SIGNAL_FRAME
@@ -13851,7 +16158,7 @@ index 6419bb0..00440bf 100644
        CFI_REGISTER    rip,rcx
        /*CFI_REGISTER  rflags,r11*/
        SWAPGS_UNSAFE_STACK
-@@ -464,12 +750,13 @@ ENTRY(system_call_after_swapgs)
+@@ -469,16 +755,18 @@ GLOBAL(system_call_after_swapgs)
  
        movq    %rsp,PER_CPU_VAR(old_rsp)
        movq    PER_CPU_VAR(kernel_stack),%rsp
@@ -13866,16 +16173,28 @@ index 6419bb0..00440bf 100644
        movq  %rax,ORIG_RAX-ARGOFFSET(%rsp)
        movq  %rcx,RIP-ARGOFFSET(%rsp)
        CFI_REL_OFFSET rip,RIP-ARGOFFSET
-@@ -479,7 +766,7 @@ ENTRY(system_call_after_swapgs)
+-      testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
++      GET_THREAD_INFO(%rcx)
++      testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%rcx)
+       jnz tracesys
  system_call_fastpath:
-       cmpq $__NR_syscall_max,%rax
+ #if __SYSCALL_MASK == ~0
+@@ -488,7 +776,7 @@ system_call_fastpath:
+       cmpl $__NR_syscall_max,%eax
+ #endif
        ja badsys
 -      movq %r10,%rcx
 +      movq R10-ARGOFFSET(%rsp),%rcx
        call *sys_call_table(,%rax,8)  # XXX:    rip relative
        movq %rax,RAX-ARGOFFSET(%rsp)
  /*
-@@ -498,6 +785,8 @@ sysret_check:
+@@ -502,10 +790,13 @@ sysret_check:
+       LOCKDEP_SYS_EXIT
+       DISABLE_INTERRUPTS(CLBR_NONE)
+       TRACE_IRQS_OFF
+-      movl TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET),%edx
++      GET_THREAD_INFO(%rcx)
++      movl TI_flags(%rcx),%edx
        andl %edi,%edx
        jnz  sysret_careful
        CFI_REMEMBER_STATE
@@ -13884,7 +16203,7 @@ index 6419bb0..00440bf 100644
        /*
         * sysretq will re-enable interrupts:
         */
-@@ -549,14 +838,18 @@ badsys:
+@@ -557,14 +848,18 @@ badsys:
         * jump back to the normal fast path.
         */
  auditsys:
@@ -13895,7 +16214,7 @@ index 6419bb0..00440bf 100644
        movq %rdi,%rdx                  /* 3rd arg: 1st syscall arg */
        movq %rax,%rsi                  /* 2nd arg: syscall number */
        movl $AUDIT_ARCH_X86_64,%edi    /* 1st arg: audit arch */
-       call audit_syscall_entry
+       call __audit_syscall_entry
 +
 +      pax_erase_kstack
 +
@@ -13904,7 +16223,16 @@ index 6419bb0..00440bf 100644
        jmp system_call_fastpath
  
        /*
-@@ -586,16 +879,20 @@ tracesys:
+@@ -585,7 +880,7 @@ sysret_audit:
+       /* Do syscall tracing */
+ tracesys:
+ #ifdef CONFIG_AUDITSYSCALL
+-      testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
++      testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags(%rcx)
+       jz auditsys
+ #endif
+       SAVE_REST
+@@ -593,12 +888,16 @@ tracesys:
        FIXUP_TOP_OF_STACK %rdi
        movq %rsp,%rdi
        call syscall_trace_enter
@@ -13919,23 +16247,26 @@ index 6419bb0..00440bf 100644
        LOAD_ARGS ARGOFFSET, 1
 +      pax_set_fptr_mask
        RESTORE_REST
+ #if __SYSCALL_MASK == ~0
        cmpq $__NR_syscall_max,%rax
+@@ -607,7 +906,7 @@ tracesys:
+       cmpl $__NR_syscall_max,%eax
+ #endif
        ja   int_ret_from_sys_call      /* RAX(%rsp) set to -ENOSYS above */
 -      movq %r10,%rcx  /* fixup for C */
 +      movq R10-ARGOFFSET(%rsp),%rcx   /* fixup for C */
        call *sys_call_table(,%rax,8)
        movq %rax,RAX-ARGOFFSET(%rsp)
        /* Use IRET because user could have changed frame */
-@@ -607,7 +904,7 @@ tracesys:
- GLOBAL(int_ret_from_sys_call)
-       DISABLE_INTERRUPTS(CLBR_NONE)
-       TRACE_IRQS_OFF
--      testl $3,CS-ARGOFFSET(%rsp)
-+      testb $3,CS-ARGOFFSET(%rsp)
-       je retint_restore_args
-       movl $_TIF_ALLWORK_MASK,%edi
-       /* edi: mask to check */
-@@ -664,7 +961,7 @@ int_restore_rest:
+@@ -628,6 +927,7 @@ GLOBAL(int_with_check)
+       andl %edi,%edx
+       jnz   int_careful
+       andl    $~TS_COMPAT,TI_status(%rcx)
++      pax_erase_kstack
+       jmp   retint_swapgs
+       /* Either reschedule or signal or syscall exit tracking needed. */
+@@ -674,7 +974,7 @@ int_restore_rest:
        TRACE_IRQS_OFF
        jmp int_with_check
        CFI_ENDPROC
@@ -13944,7 +16275,7 @@ index 6419bb0..00440bf 100644
  
  /*
   * Certain special system calls that need to save a complete full stack frame.
-@@ -680,7 +977,7 @@ ENTRY(\label)
+@@ -690,7 +990,7 @@ ENTRY(\label)
        call \func
        jmp ptregscall_common
        CFI_ENDPROC
@@ -13953,7 +16284,7 @@ index 6419bb0..00440bf 100644
        .endm
  
        PTREGSCALL stub_clone, sys_clone, %r8
-@@ -698,9 +995,10 @@ ENTRY(ptregscall_common)
+@@ -708,9 +1008,10 @@ ENTRY(ptregscall_common)
        movq_cfi_restore R12+8, r12
        movq_cfi_restore RBP+8, rbp
        movq_cfi_restore RBX+8, rbx
@@ -13965,7 +16296,7 @@ index 6419bb0..00440bf 100644
  
  ENTRY(stub_execve)
        CFI_STARTPROC
-@@ -715,7 +1013,7 @@ ENTRY(stub_execve)
+@@ -725,7 +1026,7 @@ ENTRY(stub_execve)
        RESTORE_REST
        jmp int_ret_from_sys_call
        CFI_ENDPROC
@@ -13974,16 +16305,16 @@ index 6419bb0..00440bf 100644
  
  /*
   * sigreturn is special because it needs to restore all registers on return.
-@@ -733,7 +1031,7 @@ ENTRY(stub_rt_sigreturn)
+@@ -743,7 +1044,7 @@ ENTRY(stub_rt_sigreturn)
        RESTORE_REST
        jmp int_ret_from_sys_call
        CFI_ENDPROC
 -END(stub_rt_sigreturn)
 +ENDPROC(stub_rt_sigreturn)
  
- /*
-  * Build the entry stubs and pointer table with some assembler magic.
-@@ -768,7 +1066,7 @@ vector=vector+1
+ #ifdef CONFIG_X86_X32_ABI
+       PTREGSCALL stub_x32_sigaltstack, sys32_sigaltstack, %rdx
+@@ -812,7 +1113,7 @@ vector=vector+1
  2:    jmp common_interrupt
  .endr
        CFI_ENDPROC
@@ -13992,10 +16323,10 @@ index 6419bb0..00440bf 100644
  
  .previous
  END(interrupt)
-@@ -789,6 +1087,16 @@ END(interrupt)
+@@ -832,6 +1133,16 @@ END(interrupt)
+       subq $ORIG_RAX-RBP, %rsp
        CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP
        SAVE_ARGS_IRQ
-       PARTIAL_FRAME 0
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
 +      testb $3, CS(%rdi)
 +      jnz 1f
@@ -14009,7 +16340,7 @@ index 6419bb0..00440bf 100644
        call \func
        .endm
  
-@@ -820,7 +1128,7 @@ ret_from_intr:
+@@ -863,7 +1174,7 @@ ret_from_intr:
  
  exit_intr:
        GET_THREAD_INFO(%rcx)
@@ -14018,12 +16349,11 @@ index 6419bb0..00440bf 100644
        je retint_kernel
  
        /* Interrupt came from user space */
-@@ -842,12 +1150,16 @@ retint_swapgs:          /* return to user-space */
+@@ -885,12 +1196,15 @@ retint_swapgs:          /* return to user-space */
         * The iretq could re-enable interrupts:
         */
        DISABLE_INTERRUPTS(CLBR_ANY)
 +      pax_exit_kernel_user
-+      pax_erase_kstack
        TRACE_IRQS_IRETQ
        SWAPGS
        jmp restore_args
@@ -14035,7 +16365,7 @@ index 6419bb0..00440bf 100644
        /*
         * The iretq could re-enable interrupts:
         */
-@@ -936,7 +1248,7 @@ ENTRY(retint_kernel)
+@@ -979,7 +1293,7 @@ ENTRY(retint_kernel)
  #endif
  
        CFI_ENDPROC
@@ -14044,7 +16374,7 @@ index 6419bb0..00440bf 100644
  /*
   * End of kprobes section
   */
-@@ -952,7 +1264,7 @@ ENTRY(\sym)
+@@ -996,7 +1310,7 @@ ENTRY(\sym)
        interrupt \do_sym
        jmp ret_from_intr
        CFI_ENDPROC
@@ -14053,7 +16383,7 @@ index 6419bb0..00440bf 100644
  .endm
  
  #ifdef CONFIG_SMP
-@@ -1017,12 +1329,22 @@ ENTRY(\sym)
+@@ -1069,12 +1383,22 @@ ENTRY(\sym)
        CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
        call error_entry
        DEFAULT_FRAME 0
@@ -14077,7 +16407,7 @@ index 6419bb0..00440bf 100644
  .endm
  
  .macro paranoidzeroentry sym do_sym
-@@ -1034,15 +1356,25 @@ ENTRY(\sym)
+@@ -1086,15 +1410,25 @@ ENTRY(\sym)
        CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
        call save_paranoid
        TRACE_IRQS_OFF
@@ -14105,7 +16435,7 @@ index 6419bb0..00440bf 100644
  .macro paranoidzeroentry_ist sym do_sym ist
  ENTRY(\sym)
        INTR_FRAME
-@@ -1052,14 +1384,30 @@ ENTRY(\sym)
+@@ -1104,14 +1438,30 @@ ENTRY(\sym)
        CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
        call save_paranoid
        TRACE_IRQS_OFF
@@ -14137,7 +16467,7 @@ index 6419bb0..00440bf 100644
  .endm
  
  .macro errorentry sym do_sym
-@@ -1070,13 +1418,23 @@ ENTRY(\sym)
+@@ -1122,13 +1472,23 @@ ENTRY(\sym)
        CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
        call error_entry
        DEFAULT_FRAME 0
@@ -14162,7 +16492,7 @@ index 6419bb0..00440bf 100644
  .endm
  
        /* error code is on the stack already */
-@@ -1089,13 +1447,23 @@ ENTRY(\sym)
+@@ -1141,13 +1501,23 @@ ENTRY(\sym)
        call save_paranoid
        DEFAULT_FRAME 0
        TRACE_IRQS_OFF
@@ -14187,7 +16517,7 @@ index 6419bb0..00440bf 100644
  .endm
  
  zeroentry divide_error do_divide_error
-@@ -1125,9 +1493,10 @@ gs_change:
+@@ -1177,9 +1547,10 @@ gs_change:
  2:    mfence          /* workaround */
        SWAPGS
        popfq_cfi
@@ -14199,7 +16529,7 @@ index 6419bb0..00440bf 100644
  
        .section __ex_table,"a"
        .align 8
-@@ -1149,13 +1518,14 @@ ENTRY(kernel_thread_helper)
+@@ -1201,13 +1572,14 @@ ENTRY(kernel_thread_helper)
         * Here we are in the child and the registers are set as they were
         * at kernel_thread() invocation in the parent.
         */
@@ -14215,7 +16545,7 @@ index 6419bb0..00440bf 100644
  
  /*
   * execve(). This function needs to use IRET, not SYSRET, to set up all state properly.
-@@ -1182,11 +1552,11 @@ ENTRY(kernel_execve)
+@@ -1234,11 +1606,11 @@ ENTRY(kernel_execve)
        RESTORE_REST
        testq %rax,%rax
        je int_ret_from_sys_call
@@ -14229,7 +16559,7 @@ index 6419bb0..00440bf 100644
  
  /* Call softirq on interrupt stack. Interrupts are off. */
  ENTRY(call_softirq)
-@@ -1204,9 +1574,10 @@ ENTRY(call_softirq)
+@@ -1256,9 +1628,10 @@ ENTRY(call_softirq)
        CFI_DEF_CFA_REGISTER    rsp
        CFI_ADJUST_CFA_OFFSET   -8
        decl PER_CPU_VAR(irq_count)
@@ -14241,7 +16571,7 @@ index 6419bb0..00440bf 100644
  
  #ifdef CONFIG_XEN
  zeroentry xen_hypervisor_callback xen_do_hypervisor_callback
-@@ -1244,7 +1615,7 @@ ENTRY(xen_do_hypervisor_callback)   # do_hypervisor_callback(struct *pt_regs)
+@@ -1296,7 +1669,7 @@ ENTRY(xen_do_hypervisor_callback)   # do_hypervisor_callback(struct *pt_regs)
        decl PER_CPU_VAR(irq_count)
        jmp  error_exit
        CFI_ENDPROC
@@ -14250,7 +16580,7 @@ index 6419bb0..00440bf 100644
  
  /*
   * Hypervisor uses this for application faults while it executes.
-@@ -1303,7 +1674,7 @@ ENTRY(xen_failsafe_callback)
+@@ -1355,7 +1728,7 @@ ENTRY(xen_failsafe_callback)
        SAVE_ALL
        jmp error_exit
        CFI_ENDPROC
@@ -14259,7 +16589,7 @@ index 6419bb0..00440bf 100644
  
  apicinterrupt XEN_HVM_EVTCHN_CALLBACK \
        xen_hvm_callback_vector xen_evtchn_do_upcall
-@@ -1352,16 +1723,31 @@ ENTRY(paranoid_exit)
+@@ -1404,16 +1777,31 @@ ENTRY(paranoid_exit)
        TRACE_IRQS_OFF
        testl %ebx,%ebx                         /* swapgs needed? */
        jnz paranoid_restore
@@ -14292,7 +16622,7 @@ index 6419bb0..00440bf 100644
        jmp irq_return
  paranoid_userspace:
        GET_THREAD_INFO(%rcx)
-@@ -1390,7 +1776,7 @@ paranoid_schedule:
+@@ -1442,7 +1830,7 @@ paranoid_schedule:
        TRACE_IRQS_OFF
        jmp paranoid_userspace
        CFI_ENDPROC
@@ -14301,7 +16631,7 @@ index 6419bb0..00440bf 100644
  
  /*
   * Exception entry point. This expects an error code/orig_rax on the stack.
-@@ -1417,12 +1803,13 @@ ENTRY(error_entry)
+@@ -1469,12 +1857,13 @@ ENTRY(error_entry)
        movq_cfi r14, R14+8
        movq_cfi r15, R15+8
        xorl %ebx,%ebx
@@ -14316,7 +16646,7 @@ index 6419bb0..00440bf 100644
        ret
  
  /*
-@@ -1449,7 +1836,7 @@ bstep_iret:
+@@ -1501,7 +1890,7 @@ bstep_iret:
        movq %rcx,RIP+8(%rsp)
        jmp error_swapgs
        CFI_ENDPROC
@@ -14325,17 +16655,30 @@ index 6419bb0..00440bf 100644
  
  
  /* ebx:       no swapgs flag (1: don't need swapgs, 0: need it) */
-@@ -1469,7 +1856,7 @@ ENTRY(error_exit)
+@@ -1521,7 +1910,7 @@ ENTRY(error_exit)
        jnz retint_careful
        jmp retint_swapgs
        CFI_ENDPROC
 -END(error_exit)
 +ENDPROC(error_exit)
  
-       /* runs on exception stack */
-@@ -1481,6 +1868,16 @@ ENTRY(nmi)
-       CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
+ /*
+  * Test if a given stack is an NMI stack or not.
+@@ -1579,9 +1968,11 @@ ENTRY(nmi)
+        * If %cs was not the kernel segment, then the NMI triggered in user
+        * space, which means it is definitely not nested.
+        */
++      cmpl $__KERNEXEC_KERNEL_CS, 16(%rsp)
++      je 1f
+       cmpl $__KERNEL_CS, 16(%rsp)
+       jne first_nmi
+-
++1:
+       /*
+        * Check the special variable on the stack to see if NMIs are
+        * executing.
+@@ -1728,6 +2119,16 @@ end_repeat_nmi:
+        */
        call save_paranoid
        DEFAULT_FRAME 0
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
@@ -14351,20 +16694,9 @@ index 6419bb0..00440bf 100644
        /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
        movq %rsp,%rdi
        movq $-1,%rsi
-@@ -1491,12 +1888,28 @@ ENTRY(nmi)
-       DISABLE_INTERRUPTS(CLBR_NONE)
+@@ -1735,21 +2136,32 @@ end_repeat_nmi:
        testl %ebx,%ebx                         /* swapgs needed? */
        jnz nmi_restore
--      testl $3,CS(%rsp)
-+      testb $3,CS(%rsp)
-       jnz nmi_userspace
-+#ifdef CONFIG_PAX_MEMORY_UDEREF
-+      pax_exit_kernel
-+      SWAPGS_UNSAFE_STACK
-+      RESTORE_ALL 8
-+      pax_force_retaddr_bts
-+      jmp irq_return
-+#endif
  nmi_swapgs:
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
 +      pax_exit_kernel_user
@@ -14373,18 +16705,17 @@ index 6419bb0..00440bf 100644
 +#endif
        SWAPGS_UNSAFE_STACK
 +      RESTORE_ALL 8
++      /* Clear the NMI executing stack variable */
++      movq $0, 10*8(%rsp)
 +      jmp irq_return
  nmi_restore:
 +      pax_exit_kernel
        RESTORE_ALL 8
 +      pax_force_retaddr_bts
+       /* Clear the NMI executing stack variable */
+       movq $0, 10*8(%rsp)
        jmp irq_return
- nmi_userspace:
-       GET_THREAD_INFO(%rcx)
-@@ -1525,14 +1938,14 @@ nmi_schedule:
-       jmp paranoid_exit
        CFI_ENDPROC
- #endif
 -END(nmi)
 +ENDPROC(nmi)
  
@@ -14460,7 +16791,7 @@ index c9a281f..ce2f317 100644
                return -EFAULT;
  
 diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c
-index 3bb0850..55a56f4 100644
+index 51ff186..9e77418 100644
 --- a/arch/x86/kernel/head32.c
 +++ b/arch/x86/kernel/head32.c
 @@ -19,6 +19,7 @@
@@ -14471,12 +16802,13 @@ index 3bb0850..55a56f4 100644
  
  static void __init i386_default_early_setup(void)
  {
-@@ -33,7 +34,7 @@ void __init i386_start_kernel(void)
- {
-       memblock_init();
+@@ -31,8 +32,7 @@ static void __init i386_default_early_setup(void)
  
--      memblock_x86_reserve_range(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");
-+      memblock_x86_reserve_range(LOAD_PHYSICAL_ADDR, __pa_symbol(&__bss_stop), "TEXT DATA BSS");
+ void __init i386_start_kernel(void)
+ {
+-      memblock_reserve(__pa_symbol(&_text),
+-                       __pa_symbol(&__bss_stop) - __pa_symbol(&_text));
++      memblock_reserve(LOAD_PHYSICAL_ADDR, __pa_symbol(&__bss_stop) - LOAD_PHYSICAL_ADDR);
  
  #ifdef CONFIG_BLK_DEV_INITRD
        /* Reserve INITRD */
@@ -14919,7 +17251,7 @@ index ce0be7c..c41476e 100644
 +      .fill PAGE_SIZE_asm - GDT_SIZE,1,0
 +      .endr
 diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
-index e11e394..9aebc5d 100644
+index 40f4eb3..6d24d9d 100644
 --- a/arch/x86/kernel/head_64.S
 +++ b/arch/x86/kernel/head_64.S
 @@ -19,6 +19,8 @@
@@ -15145,7 +17477,7 @@ index e11e394..9aebc5d 100644
  
  NEXT_PAGE(level2_kernel_pgt)
        /*
-@@ -389,33 +429,55 @@ NEXT_PAGE(level2_kernel_pgt)
+@@ -389,37 +429,59 @@ NEXT_PAGE(level2_kernel_pgt)
         *  If you want to increase this then increase MODULES_VADDR
         *  too.)
         */
@@ -15207,6 +17539,11 @@ index e11e394..9aebc5d 100644
        .align L1_CACHE_BYTES
  ENTRY(idt_table)
 -      .skip IDT_ENTRIES * 16
++      .fill 512,8,0
+       .align L1_CACHE_BYTES
+ ENTRY(nmi_idt_table)
+-      .skip IDT_ENTRIES * 16
 +      .fill 512,8,0
  
        __PAGE_ALIGNED_BSS
@@ -15236,11 +17573,24 @@ index 9c3bd4a..e1d9b35 100644
 +#ifdef CONFIG_PAX_KERNEXEC
 +EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR);
 +#endif
+diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c
+index 2d6e649..df6e1af 100644
+--- a/arch/x86/kernel/i387.c
++++ b/arch/x86/kernel/i387.c
+@@ -59,7 +59,7 @@ static inline bool interrupted_kernel_fpu_idle(void)
+ static inline bool interrupted_user_mode(void)
+ {
+       struct pt_regs *regs = get_irq_regs();
+-      return regs && user_mode_vm(regs);
++      return regs && user_mode(regs);
+ }
+ /*
 diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c
-index 6104852..6114160 100644
+index 36d1853..bf25736 100644
 --- a/arch/x86/kernel/i8259.c
 +++ b/arch/x86/kernel/i8259.c
-@@ -210,7 +210,7 @@ spurious_8259A_irq:
+@@ -209,7 +209,7 @@ spurious_8259A_irq:
                               "spurious 8259A interrupt: IRQ%d.\n", irq);
                        spurious_irq_mask |= irqmask;
                }
@@ -15319,10 +17669,10 @@ index 8c96897..be66bfa 100644
                        return -EPERM;
        }
 diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
-index 6c0802e..bea25ae 100644
+index 3dafc60..aa8e9c4 100644
 --- a/arch/x86/kernel/irq.c
 +++ b/arch/x86/kernel/irq.c
-@@ -17,7 +17,7 @@
+@@ -18,7 +18,7 @@
  #include <asm/mce.h>
  #include <asm/hw_irq.h>
  
@@ -15331,7 +17681,7 @@ index 6c0802e..bea25ae 100644
  
  /* Function pointer for generic interrupt vector handling */
  void (*x86_platform_ipi_callback)(void) = NULL;
-@@ -116,9 +116,9 @@ int arch_show_interrupts(struct seq_file *p, int prec)
+@@ -121,9 +121,9 @@ int arch_show_interrupts(struct seq_file *p, int prec)
                seq_printf(p, "%10u ", per_cpu(mce_poll_count, j));
        seq_printf(p, "  Machine check polls\n");
  #endif
@@ -15343,7 +17693,7 @@ index 6c0802e..bea25ae 100644
  #endif
        return 0;
  }
-@@ -158,10 +158,10 @@ u64 arch_irq_stat_cpu(unsigned int cpu)
+@@ -164,10 +164,10 @@ u64 arch_irq_stat_cpu(unsigned int cpu)
  
  u64 arch_irq_stat(void)
  {
@@ -15357,10 +17707,10 @@ index 6c0802e..bea25ae 100644
        return sum;
  }
 diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
-index 7209070..cbcd71a 100644
+index 58b7f27..e112d08 100644
 --- a/arch/x86/kernel/irq_32.c
 +++ b/arch/x86/kernel/irq_32.c
-@@ -36,7 +36,7 @@ static int check_stack_overflow(void)
+@@ -39,7 +39,7 @@ static int check_stack_overflow(void)
        __asm__ __volatile__("andl %%esp,%0" :
                             "=r" (sp) : "0" (THREAD_SIZE - 1));
  
@@ -15369,7 +17719,7 @@ index 7209070..cbcd71a 100644
  }
  
  static void print_stack_overflow(void)
-@@ -54,8 +54,8 @@ static inline void print_stack_overflow(void) { }
+@@ -59,8 +59,8 @@ static inline void print_stack_overflow(void) { }
   * per-CPU IRQ handling contexts (thread information and stack)
   */
  union irq_ctx {
@@ -15380,7 +17730,7 @@ index 7209070..cbcd71a 100644
  } __attribute__((aligned(THREAD_SIZE)));
  
  static DEFINE_PER_CPU(union irq_ctx *, hardirq_ctx);
-@@ -75,10 +75,9 @@ static void call_on_stack(void *func, void *stack)
+@@ -80,10 +80,9 @@ static void call_on_stack(void *func, void *stack)
  static inline int
  execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
  {
@@ -15392,7 +17742,7 @@ index 7209070..cbcd71a 100644
        irqctx = __this_cpu_read(hardirq_ctx);
  
        /*
-@@ -87,21 +86,16 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
+@@ -92,16 +91,16 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
         * handler) we can't do that and just have to keep using the
         * current stack (which is the irq stack already after all)
         */
@@ -15407,20 +17757,15 @@ index 7209070..cbcd71a 100644
 +      isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
 +      irqctx->previous_esp = current_stack_pointer;
  
--      /*
--       * Copy the softirq bits in preempt_count so that the
--       * softirq checks work in the hardirq context.
--       */
--      irqctx->tinfo.preempt_count =
--              (irqctx->tinfo.preempt_count & ~SOFTIRQ_MASK) |
--              (curctx->tinfo.preempt_count & SOFTIRQ_MASK);
+-      /* Copy the preempt_count so that the [soft]irq checks work. */
+-      irqctx->tinfo.preempt_count = curctx->tinfo.preempt_count;
 +#ifdef CONFIG_PAX_MEMORY_UDEREF
 +      __set_fs(MAKE_MM_SEG(0));
 +#endif
  
        if (unlikely(overflow))
                call_on_stack(print_stack_overflow, isp);
-@@ -113,6 +107,11 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
+@@ -113,6 +112,11 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
                     :  "0" (irq),   "1" (desc),  "2" (isp),
                        "D" (desc->handle_irq)
                     : "memory", "cc", "ecx");
@@ -15432,7 +17777,7 @@ index 7209070..cbcd71a 100644
        return 1;
  }
  
-@@ -121,29 +120,11 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
+@@ -121,29 +125,11 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
   */
  void __cpuinit irq_ctx_init(int cpu)
  {
@@ -15464,7 +17809,7 @@ index 7209070..cbcd71a 100644
  
        printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n",
               cpu, per_cpu(hardirq_ctx, cpu),  per_cpu(softirq_ctx, cpu));
-@@ -152,7 +133,6 @@ void __cpuinit irq_ctx_init(int cpu)
+@@ -152,7 +138,6 @@ void __cpuinit irq_ctx_init(int cpu)
  asmlinkage void do_softirq(void)
  {
        unsigned long flags;
@@ -15472,7 +17817,7 @@ index 7209070..cbcd71a 100644
        union irq_ctx *irqctx;
        u32 *isp;
  
-@@ -162,15 +142,22 @@ asmlinkage void do_softirq(void)
+@@ -162,15 +147,22 @@ asmlinkage void do_softirq(void)
        local_irq_save(flags);
  
        if (local_softirq_pending()) {
@@ -15499,11 +17844,46 @@ index 7209070..cbcd71a 100644
                /*
                 * Shouldn't happen, we returned above if in_interrupt():
                 */
+@@ -191,7 +183,7 @@ bool handle_irq(unsigned irq, struct pt_regs *regs)
+       if (unlikely(!desc))
+               return false;
+-      if (user_mode_vm(regs) || !execute_on_irq_stack(overflow, desc, irq)) {
++      if (user_mode(regs) || !execute_on_irq_stack(overflow, desc, irq)) {
+               if (unlikely(overflow))
+                       print_stack_overflow();
+               desc->handle_irq(irq, desc);
+diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
+index d04d3ec..ea4b374 100644
+--- a/arch/x86/kernel/irq_64.c
++++ b/arch/x86/kernel/irq_64.c
+@@ -44,7 +44,7 @@ static inline void stack_overflow_check(struct pt_regs *regs)
+       u64 estack_top, estack_bottom;
+       u64 curbase = (u64)task_stack_page(current);
+-      if (user_mode_vm(regs))
++      if (user_mode(regs))
+               return;
+       if (regs->sp >= curbase + sizeof(struct thread_info) +
+diff --git a/arch/x86/kernel/kdebugfs.c b/arch/x86/kernel/kdebugfs.c
+index 1d5d31e..ab846ed 100644
+--- a/arch/x86/kernel/kdebugfs.c
++++ b/arch/x86/kernel/kdebugfs.c
+@@ -28,6 +28,8 @@ struct setup_data_node {
+ };
+ static ssize_t setup_data_read(struct file *file, char __user *user_buf,
++                             size_t count, loff_t *ppos) __size_overflow(3);
++static ssize_t setup_data_read(struct file *file, char __user *user_buf,
+                              size_t count, loff_t *ppos)
+ {
+       struct setup_data_node *node = file->private_data;
 diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
-index 00354d4..187ae44 100644
+index 8bfb614..2b3b35f 100644
 --- a/arch/x86/kernel/kgdb.c
 +++ b/arch/x86/kernel/kgdb.c
-@@ -124,11 +124,11 @@ char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs)
+@@ -127,11 +127,11 @@ char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs)
  #ifdef CONFIG_X86_32
        switch (regno) {
        case GDB_SS:
@@ -15517,7 +17897,7 @@ index 00354d4..187ae44 100644
                        *(unsigned long *)mem = kernel_stack_pointer(regs);
                break;
        case GDB_GS:
-@@ -473,12 +473,12 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code,
+@@ -476,12 +476,12 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code,
        case 'k':
                /* clear the trace bit */
                linux_regs->flags &= ~X86_EFLAGS_TF;
@@ -15532,20 +17912,56 @@ index 00354d4..187ae44 100644
                                   raw_smp_processor_id());
                }
  
-@@ -534,7 +534,7 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd)
-               return NOTIFY_DONE;
+@@ -546,7 +546,7 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd)
  
+       switch (cmd) {
        case DIE_DEBUG:
 -              if (atomic_read(&kgdb_cpu_doing_single_step) != -1) {
 +              if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1) {
                        if (user_mode(regs))
                                return single_step_cont(regs, args);
                        break;
+diff --git a/arch/x86/kernel/kprobes-opt.c b/arch/x86/kernel/kprobes-opt.c
+index c5e410e..da6aaf9 100644
+--- a/arch/x86/kernel/kprobes-opt.c
++++ b/arch/x86/kernel/kprobes-opt.c
+@@ -338,7 +338,7 @@ int __kprobes arch_prepare_optimized_kprobe(struct optimized_kprobe *op)
+        * Verify if the address gap is in 2GB range, because this uses
+        * a relative jump.
+        */
+-      rel = (long)op->optinsn.insn - (long)op->kp.addr + RELATIVEJUMP_SIZE;
++      rel = (long)op->optinsn.insn - ktla_ktva((long)op->kp.addr) + RELATIVEJUMP_SIZE;
+       if (abs(rel) > 0x7fffffff)
+               return -ERANGE;
+@@ -359,11 +359,11 @@ int __kprobes arch_prepare_optimized_kprobe(struct optimized_kprobe *op)
+       synthesize_set_arg1(buf + TMPL_MOVE_IDX, (unsigned long)op);
+       /* Set probe function call */
+-      synthesize_relcall(buf + TMPL_CALL_IDX, optimized_callback);
++      synthesize_relcall(buf + TMPL_CALL_IDX, ktla_ktva(optimized_callback));
+       /* Set returning jmp instruction at the tail of out-of-line buffer */
+       synthesize_reljump(buf + TMPL_END_IDX + op->optinsn.size,
+-                         (u8 *)op->kp.addr + op->optinsn.size);
++                         (u8 *)ktla_ktva(op->kp.addr) + op->optinsn.size);
+       flush_icache_range((unsigned long) buf,
+                          (unsigned long) buf + TMPL_END_IDX +
+@@ -385,7 +385,7 @@ static void __kprobes setup_optimize_kprobe(struct text_poke_param *tprm,
+                       ((long)op->kp.addr + RELATIVEJUMP_SIZE));
+       /* Backup instructions which will be replaced by jump address */
+-      memcpy(op->optinsn.copied_insn, op->kp.addr + INT3_SIZE,
++      memcpy(op->optinsn.copied_insn, ktla_ktva(op->kp.addr) + INT3_SIZE,
+              RELATIVE_ADDR_SIZE);
+       insn_buf[0] = RELATIVEJUMP_OPCODE;
 diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c
-index 794bc95..c6e29e9 100644
+index e213fc8..d783ba4 100644
 --- a/arch/x86/kernel/kprobes.c
 +++ b/arch/x86/kernel/kprobes.c
-@@ -117,8 +117,11 @@ static void __kprobes __synthesize_relative_insn(void *from, void *to, u8 op)
+@@ -120,8 +120,11 @@ static void __kprobes __synthesize_relative_insn(void *from, void *to, u8 op)
        } __attribute__((packed)) *insn;
  
        insn = (struct __arch_relative_insn *)from;
@@ -15557,7 +17973,7 @@ index 794bc95..c6e29e9 100644
  }
  
  /* Insert a jump instruction at address 'from', which jumps to address 'to'.*/
-@@ -155,7 +158,7 @@ static int __kprobes can_boost(kprobe_opcode_t *opcodes)
+@@ -164,7 +167,7 @@ int __kprobes can_boost(kprobe_opcode_t *opcodes)
        kprobe_opcode_t opcode;
        kprobe_opcode_t *orig_opcodes = opcodes;
  
@@ -15566,18 +17982,18 @@ index 794bc95..c6e29e9 100644
                return 0;       /* Page fault may occur on this address. */
  
  retry:
-@@ -316,7 +319,9 @@ static int __kprobes __copy_instruction(u8 *dest, u8 *src, int recover)
-               }
-       }
-       insn_get_length(&insn);
+@@ -332,7 +335,9 @@ int __kprobes __copy_instruction(u8 *dest, u8 *src)
+       /* Another subsystem puts a breakpoint, failed to recover */
+       if (insn.opcode.bytes[0] == BREAKPOINT_INSTRUCTION)
+               return 0;
 +      pax_open_kernel();
        memcpy(dest, insn.kaddr, insn.length);
 +      pax_close_kernel();
  
  #ifdef CONFIG_X86_64
        if (insn_rip_relative(&insn)) {
-@@ -340,7 +345,9 @@ static int __kprobes __copy_instruction(u8 *dest, u8 *src, int recover)
-                         (u8 *) dest;
+@@ -355,7 +360,9 @@ int __kprobes __copy_instruction(u8 *dest, u8 *src)
+               newdisp = (u8 *) src + (s64) insn.displacement.value - (u8 *) dest;
                BUG_ON((s64) (s32) newdisp != newdisp); /* Sanity check.  */
                disp = (u8 *) dest + insn_offset_displacement(&insn);
 +              pax_open_kernel();
@@ -15586,22 +18002,7 @@ index 794bc95..c6e29e9 100644
        }
  #endif
        return insn.length;
-@@ -354,12 +361,12 @@ static void __kprobes arch_copy_kprobe(struct kprobe *p)
-        */
-       __copy_instruction(p->ainsn.insn, p->addr, 0);
--      if (can_boost(p->addr))
-+      if (can_boost(ktla_ktva(p->addr)))
-               p->ainsn.boostable = 0;
-       else
-               p->ainsn.boostable = -1;
--      p->opcode = *p->addr;
-+      p->opcode = *(ktla_ktva(p->addr));
- }
- int __kprobes arch_prepare_kprobe(struct kprobe *p)
-@@ -476,7 +483,7 @@ static void __kprobes setup_singlestep(struct kprobe *p, struct pt_regs *regs,
+@@ -485,7 +492,7 @@ setup_singlestep(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *k
                 * nor set current_kprobe, because it doesn't use single
                 * stepping.
                 */
@@ -15610,7 +18011,7 @@ index 794bc95..c6e29e9 100644
                preempt_enable_no_resched();
                return;
        }
-@@ -495,7 +502,7 @@ static void __kprobes setup_singlestep(struct kprobe *p, struct pt_regs *regs,
+@@ -504,7 +511,7 @@ setup_singlestep(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *k
        if (p->opcode == BREAKPOINT_INSTRUCTION)
                regs->ip = (unsigned long)p->addr;
        else
@@ -15619,7 +18020,7 @@ index 794bc95..c6e29e9 100644
  }
  
  /*
-@@ -574,7 +581,7 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
+@@ -583,7 +590,7 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
                                setup_singlestep(p, regs, kcb, 0);
                        return 1;
                }
@@ -15628,18 +18029,18 @@ index 794bc95..c6e29e9 100644
                /*
                 * The breakpoint instruction was removed right
                 * after we hit it.  Another cpu has removed
-@@ -682,6 +689,9 @@ static void __used __kprobes kretprobe_trampoline_holder(void)
+@@ -628,6 +635,9 @@ static void __used __kprobes kretprobe_trampoline_holder(void)
                        "       movq %rax, 152(%rsp)\n"
                        RESTORE_REGS_STRING
                        "       popfq\n"
-+#ifdef CONFIG_PAX_KERNEXEC_PLUGIN
++#ifdef KERNEXEC_PLUGIN
 +                      "       btsq $63,(%rsp)\n"
 +#endif
  #else
                        "       pushf\n"
                        SAVE_REGS_STRING
-@@ -819,7 +829,7 @@ static void __kprobes resume_execution(struct kprobe *p,
              struct pt_regs *regs, struct kprobe_ctlblk *kcb)
+@@ -765,7 +775,7 @@ static void __kprobes
resume_execution(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *kcb)
  {
        unsigned long *tos = stack_addr(regs);
 -      unsigned long copy_ip = (unsigned long)p->ainsn.insn;
@@ -15647,7 +18048,7 @@ index 794bc95..c6e29e9 100644
        unsigned long orig_ip = (unsigned long)p->addr;
        kprobe_opcode_t *insn = p->ainsn.insn;
  
-@@ -1001,7 +1011,7 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self,
+@@ -947,7 +957,7 @@ kprobe_exceptions_notify(struct notifier_block *self, unsigned long val, void *d
        struct die_args *args = data;
        int ret = NOTIFY_DONE;
  
@@ -15656,55 +18057,11 @@ index 794bc95..c6e29e9 100644
                return ret;
  
        switch (val) {
-@@ -1383,7 +1393,7 @@ int __kprobes arch_prepare_optimized_kprobe(struct optimized_kprobe *op)
-        * Verify if the address gap is in 2GB range, because this uses
-        * a relative jump.
-        */
--      rel = (long)op->optinsn.insn - (long)op->kp.addr + RELATIVEJUMP_SIZE;
-+      rel = (long)op->optinsn.insn - ktla_ktva((long)op->kp.addr) + RELATIVEJUMP_SIZE;
-       if (abs(rel) > 0x7fffffff)
-               return -ERANGE;
-@@ -1404,11 +1414,11 @@ int __kprobes arch_prepare_optimized_kprobe(struct optimized_kprobe *op)
-       synthesize_set_arg1(buf + TMPL_MOVE_IDX, (unsigned long)op);
-       /* Set probe function call */
--      synthesize_relcall(buf + TMPL_CALL_IDX, optimized_callback);
-+      synthesize_relcall(buf + TMPL_CALL_IDX, ktla_ktva(optimized_callback));
-       /* Set returning jmp instruction at the tail of out-of-line buffer */
-       synthesize_reljump(buf + TMPL_END_IDX + op->optinsn.size,
--                         (u8 *)op->kp.addr + op->optinsn.size);
-+                         (u8 *)ktla_ktva(op->kp.addr) + op->optinsn.size);
-       flush_icache_range((unsigned long) buf,
-                          (unsigned long) buf + TMPL_END_IDX +
-@@ -1430,7 +1440,7 @@ static void __kprobes setup_optimize_kprobe(struct text_poke_param *tprm,
-                       ((long)op->kp.addr + RELATIVEJUMP_SIZE));
-       /* Backup instructions which will be replaced by jump address */
--      memcpy(op->optinsn.copied_insn, op->kp.addr + INT3_SIZE,
-+      memcpy(op->optinsn.copied_insn, ktla_ktva(op->kp.addr) + INT3_SIZE,
-              RELATIVE_ADDR_SIZE);
-       insn_buf[0] = RELATIVEJUMP_OPCODE;
-diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
-index a9c2116..a52d4fc 100644
---- a/arch/x86/kernel/kvm.c
-+++ b/arch/x86/kernel/kvm.c
-@@ -437,6 +437,7 @@ static void __init paravirt_ops_setup(void)
-               pv_mmu_ops.set_pud = kvm_set_pud;
- #if PAGETABLE_LEVELS == 4
-               pv_mmu_ops.set_pgd = kvm_set_pgd;
-+              pv_mmu_ops.set_pgd_batched = kvm_set_pgd;
- #endif
- #endif
-               pv_mmu_ops.flush_tlb_user = kvm_flush_tlb;
 diff --git a/arch/x86/kernel/ldt.c b/arch/x86/kernel/ldt.c
-index ea69726..604d066 100644
+index ebc9873..1b9724b 100644
 --- a/arch/x86/kernel/ldt.c
 +++ b/arch/x86/kernel/ldt.c
-@@ -67,13 +67,13 @@ static int alloc_ldt(mm_context_t *pc, int mincount, int reload)
+@@ -66,13 +66,13 @@ static int alloc_ldt(mm_context_t *pc, int mincount, int reload)
        if (reload) {
  #ifdef CONFIG_SMP
                preempt_disable();
@@ -15720,7 +18077,7 @@ index ea69726..604d066 100644
  #endif
        }
        if (oldsize) {
-@@ -95,7 +95,7 @@ static inline int copy_ldt(mm_context_t *new, mm_context_t *old)
+@@ -94,7 +94,7 @@ static inline int copy_ldt(mm_context_t *new, mm_context_t *old)
                return err;
  
        for (i = 0; i < old->size; i++)
@@ -15729,7 +18086,7 @@ index ea69726..604d066 100644
        return 0;
  }
  
-@@ -116,6 +116,24 @@ int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
+@@ -115,6 +115,24 @@ int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
                retval = copy_ldt(&mm->context, &old_mm->context);
                mutex_unlock(&old_mm->context.lock);
        }
@@ -15754,7 +18111,7 @@ index ea69726..604d066 100644
        return retval;
  }
  
-@@ -230,6 +248,13 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
+@@ -229,6 +247,13 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
                }
        }
  
@@ -15769,10 +18126,10 @@ index ea69726..604d066 100644
        if (oldmode)
                ldt.avl = 0;
 diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c
-index a3fa43b..8966f4c 100644
+index 5b19e4d..6476a76 100644
 --- a/arch/x86/kernel/machine_kexec_32.c
 +++ b/arch/x86/kernel/machine_kexec_32.c
-@@ -27,7 +27,7 @@
+@@ -26,7 +26,7 @@
  #include <asm/cacheflush.h>
  #include <asm/debugreg.h>
  
@@ -15781,7 +18138,7 @@ index a3fa43b..8966f4c 100644
  {
        struct desc_ptr curidt;
  
-@@ -39,7 +39,7 @@ static void set_idt(void *newidt, __u16 limit)
+@@ -38,7 +38,7 @@ static void set_idt(void *newidt, __u16 limit)
  }
  
  
@@ -15790,7 +18147,7 @@ index a3fa43b..8966f4c 100644
  {
        struct desc_ptr curgdt;
  
-@@ -217,7 +217,7 @@ void machine_kexec(struct kimage *image)
+@@ -216,7 +216,7 @@ void machine_kexec(struct kimage *image)
        }
  
        control_page = page_address(image->control_code_page);
@@ -15800,10 +18157,10 @@ index a3fa43b..8966f4c 100644
        relocate_kernel_ptr = control_page;
        page_list[PA_CONTROL_PAGE] = __pa(control_page);
 diff --git a/arch/x86/kernel/microcode_intel.c b/arch/x86/kernel/microcode_intel.c
-index 1a1b606..5c89b55 100644
+index 0327e2b..e43737b 100644
 --- a/arch/x86/kernel/microcode_intel.c
 +++ b/arch/x86/kernel/microcode_intel.c
-@@ -440,13 +440,13 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device)
+@@ -430,13 +430,13 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device)
  
  static int get_ucode_user(void *to, const void *from, size_t n)
  {
@@ -15820,17 +18177,18 @@ index 1a1b606..5c89b55 100644
  
  static void microcode_fini_cpu(int cpu)
 diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
-index 925179f..85bec6c 100644
+index f21fd94..61565cd 100644
 --- a/arch/x86/kernel/module.c
 +++ b/arch/x86/kernel/module.c
-@@ -36,15 +36,60 @@
+@@ -35,15 +35,60 @@
  #define DEBUGP(fmt...)
  #endif
  
 -void *module_alloc(unsigned long size)
 +static inline void *__module_alloc(unsigned long size, pgprot_t prot)
  {
-       if (PAGE_ALIGN(size) > MODULES_LEN)
+-      if (PAGE_ALIGN(size) > MODULES_LEN)
++      if (size == 0 || PAGE_ALIGN(size) > MODULES_LEN)
                return NULL;
        return __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
 -                              GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC,
@@ -15886,7 +18244,7 @@ index 925179f..85bec6c 100644
  #ifdef CONFIG_X86_32
  int apply_relocate(Elf32_Shdr *sechdrs,
                   const char *strtab,
-@@ -55,14 +100,16 @@ int apply_relocate(Elf32_Shdr *sechdrs,
+@@ -54,14 +99,16 @@ int apply_relocate(Elf32_Shdr *sechdrs,
        unsigned int i;
        Elf32_Rel *rel = (void *)sechdrs[relsec].sh_addr;
        Elf32_Sym *sym;
@@ -15906,7 +18264,7 @@ index 925179f..85bec6c 100644
                /* This is the symbol it is referring to.  Note that all
                   undefined symbols have been resolved.  */
                sym = (Elf32_Sym *)sechdrs[symindex].sh_addr
-@@ -71,11 +118,15 @@ int apply_relocate(Elf32_Shdr *sechdrs,
+@@ -70,11 +117,15 @@ int apply_relocate(Elf32_Shdr *sechdrs,
                switch (ELF32_R_TYPE(rel[i].r_info)) {
                case R_386_32:
                        /* We add the value into the location given */
@@ -15924,7 +18282,7 @@ index 925179f..85bec6c 100644
                        break;
                default:
                        printk(KERN_ERR "module %s: Unknown relocation: %u\n",
-@@ -120,21 +171,30 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
+@@ -119,21 +170,30 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
                case R_X86_64_NONE:
                        break;
                case R_X86_64_64:
@@ -15955,6 +18313,28 @@ index 925179f..85bec6c 100644
  #if 0
                        if ((s64)val != *(s32 *)loc)
                                goto overflow;
+diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
+index 32856fa..ce95eaa 100644
+--- a/arch/x86/kernel/nmi.c
++++ b/arch/x86/kernel/nmi.c
+@@ -507,6 +507,17 @@ static inline void nmi_nesting_postprocess(void)
+ dotraplinkage notrace __kprobes void
+ do_nmi(struct pt_regs *regs, long error_code)
+ {
++
++#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
++      if (!user_mode(regs)) {
++              unsigned long cs = regs->cs & 0xFFFF;
++              unsigned long ip = ktva_ktla(regs->ip);
++
++              if ((cs == __KERNEL_CS || cs == __KERNEXEC_KERNEL_CS) && ip <= (unsigned long)_etext)
++                      regs->ip = ip;
++      }
++#endif
++
+       nmi_nesting_preprocess(regs);
+       nmi_enter();
 diff --git a/arch/x86/kernel/paravirt-spinlocks.c b/arch/x86/kernel/paravirt-spinlocks.c
 index 676b8c7..870ba04 100644
 --- a/arch/x86/kernel/paravirt-spinlocks.c
@@ -15969,10 +18349,10 @@ index 676b8c7..870ba04 100644
        .spin_is_locked = __ticket_spin_is_locked,
        .spin_is_contended = __ticket_spin_is_contended,
 diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
-index d90272e..2d54e8e 100644
+index ab13760..01218e0 100644
 --- a/arch/x86/kernel/paravirt.c
 +++ b/arch/x86/kernel/paravirt.c
-@@ -53,6 +53,9 @@ u64 _paravirt_ident_64(u64 x)
+@@ -55,6 +55,9 @@ u64 _paravirt_ident_64(u64 x)
  {
        return x;
  }
@@ -15982,17 +18362,7 @@ index d90272e..2d54e8e 100644
  
  void __init default_banner(void)
  {
-@@ -133,6 +136,9 @@ static void *get_call_destination(u8 type)
-               .pv_lock_ops = pv_lock_ops,
- #endif
-       };
-+
-+      pax_track_stack();
-+
-       return *((void **)&tmpl + type);
- }
-@@ -145,15 +151,19 @@ unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf,
+@@ -147,15 +150,19 @@ unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf,
        if (opfunc == NULL)
                /* If there's no function, patch it with a ud2a (BUG) */
                ret = paravirt_patch_insns(insnbuf, len, ud2a, ud2a+sizeof(ud2a));
@@ -16015,7 +18385,7 @@ index d90272e..2d54e8e 100644
  
        else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) ||
                 type == PARAVIRT_PATCH(pv_cpu_ops.irq_enable_sysexit) ||
-@@ -178,7 +188,7 @@ unsigned paravirt_patch_insns(void *insnbuf, unsigned len,
+@@ -180,7 +187,7 @@ unsigned paravirt_patch_insns(void *insnbuf, unsigned len,
        if (insn_len > len || start == NULL)
                insn_len = len;
        else
@@ -16024,7 +18394,7 @@ index d90272e..2d54e8e 100644
  
        return insn_len;
  }
-@@ -302,7 +312,7 @@ void arch_flush_lazy_mmu_mode(void)
+@@ -304,7 +311,7 @@ void arch_flush_lazy_mmu_mode(void)
        preempt_enable();
  }
  
@@ -16033,7 +18403,7 @@ index d90272e..2d54e8e 100644
        .name = "bare hardware",
        .paravirt_enabled = 0,
        .kernel_rpl = 0,
-@@ -313,16 +323,16 @@ struct pv_info pv_info = {
+@@ -315,16 +322,16 @@ struct pv_info pv_info = {
  #endif
  };
  
@@ -16053,7 +18423,7 @@ index d90272e..2d54e8e 100644
        .save_fl = __PV_IS_CALLEE_SAVE(native_save_fl),
        .restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl),
        .irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable),
-@@ -334,7 +344,7 @@ struct pv_irq_ops pv_irq_ops = {
+@@ -336,7 +343,7 @@ struct pv_irq_ops pv_irq_ops = {
  #endif
  };
  
@@ -16062,7 +18432,7 @@ index d90272e..2d54e8e 100644
        .cpuid = native_cpuid,
        .get_debugreg = native_get_debugreg,
        .set_debugreg = native_set_debugreg,
-@@ -395,21 +405,26 @@ struct pv_cpu_ops pv_cpu_ops = {
+@@ -397,21 +404,26 @@ struct pv_cpu_ops pv_cpu_ops = {
        .end_context_switch = paravirt_nop,
  };
  
@@ -16092,7 +18462,7 @@ index d90272e..2d54e8e 100644
  
        .read_cr2 = native_read_cr2,
        .write_cr2 = native_write_cr2,
-@@ -459,6 +474,7 @@ struct pv_mmu_ops pv_mmu_ops = {
+@@ -461,6 +473,7 @@ struct pv_mmu_ops pv_mmu_ops = {
        .make_pud = PTE_IDENT,
  
        .set_pgd = native_set_pgd,
@@ -16100,7 +18470,7 @@ index d90272e..2d54e8e 100644
  #endif
  #endif /* PAGETABLE_LEVELS >= 3 */
  
-@@ -478,6 +494,12 @@ struct pv_mmu_ops pv_mmu_ops = {
+@@ -480,6 +493,12 @@ struct pv_mmu_ops pv_mmu_ops = {
        },
  
        .set_fixmap = native_set_fixmap,
@@ -16114,7 +18484,7 @@ index d90272e..2d54e8e 100644
  
  EXPORT_SYMBOL_GPL(pv_time_ops);
 diff --git a/arch/x86/kernel/pci-iommu_table.c b/arch/x86/kernel/pci-iommu_table.c
-index 35ccf75..67e7d4d 100644
+index 35ccf75..7a15747 100644
 --- a/arch/x86/kernel/pci-iommu_table.c
 +++ b/arch/x86/kernel/pci-iommu_table.c
 @@ -2,7 +2,7 @@
@@ -16126,25 +18496,16 @@ index 35ccf75..67e7d4d 100644
  
  #define DEBUG 1
  
-@@ -51,6 +51,8 @@ void __init check_iommu_entries(struct iommu_table_entry *start,
- {
-       struct iommu_table_entry *p, *q, *x;
-+      pax_track_stack();
-+
-       /* Simple cyclic dependency checker. */
-       for (p = start; p < finish; p++) {
-               q = find_dependents_of(start, finish, p);
 diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
-index e7e3b01..43c5af3 100644
+index 1d92a5a..7bc8c29 100644
 --- a/arch/x86/kernel/process.c
 +++ b/arch/x86/kernel/process.c
-@@ -48,16 +48,33 @@ void free_thread_xstate(struct task_struct *tsk)
+@@ -69,16 +69,33 @@ void free_thread_xstate(struct task_struct *tsk)
  
  void free_thread_info(struct thread_info *ti)
  {
 -      free_thread_xstate(ti->task);
-       free_pages((unsigned long)ti, get_order(THREAD_SIZE));
+       free_pages((unsigned long)ti, THREAD_ORDER);
  }
  
 +static struct kmem_cache *task_struct_cachep;
@@ -16177,7 +18538,7 @@ index e7e3b01..43c5af3 100644
  }
  
  /*
-@@ -70,7 +87,7 @@ void exit_thread(void)
+@@ -91,7 +108,7 @@ void exit_thread(void)
        unsigned long *bp = t->io_bitmap_ptr;
  
        if (bp) {
@@ -16186,7 +18547,7 @@ index e7e3b01..43c5af3 100644
  
                t->io_bitmap_ptr = NULL;
                clear_thread_flag(TIF_IO_BITMAP);
-@@ -106,7 +123,7 @@ void show_regs_common(void)
+@@ -127,7 +144,7 @@ void show_regs_common(void)
  
        printk(KERN_CONT "\n");
        printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s",
@@ -16195,7 +18556,7 @@ index e7e3b01..43c5af3 100644
                init_utsname()->release,
                (int)strcspn(init_utsname()->version, " "),
                init_utsname()->version);
-@@ -120,6 +137,9 @@ void flush_thread(void)
+@@ -141,6 +158,9 @@ void flush_thread(void)
  {
        struct task_struct *tsk = current;
  
@@ -16205,7 +18566,7 @@ index e7e3b01..43c5af3 100644
        flush_ptrace_hw_breakpoint(tsk);
        memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
        /*
-@@ -282,10 +302,10 @@ int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
+@@ -303,10 +323,10 @@ int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
        regs.di = (unsigned long) arg;
  
  #ifdef CONFIG_X86_32
@@ -16219,16 +18580,25 @@ index e7e3b01..43c5af3 100644
  #else
        regs.ss = __KERNEL_DS;
  #endif
-@@ -403,7 +423,7 @@ void default_idle(void)
- EXPORT_SYMBOL(default_idle);
- #endif
+@@ -392,7 +412,7 @@ static void __exit_idle(void)
+ void exit_idle(void)
+ {
+       /* idle loop has pid 0 */
+-      if (current->pid)
++      if (task_pid_nr(current))
+               return;
+       __exit_idle();
+ }
+@@ -501,7 +521,7 @@ bool set_pm_idle_to_default(void)
  
+       return ret;
+ }
 -void stop_this_cpu(void *dummy)
 +__noreturn void stop_this_cpu(void *dummy)
  {
        local_irq_disable();
        /*
-@@ -645,16 +665,37 @@ static int __init idle_setup(char *str)
+@@ -743,16 +763,37 @@ static int __init idle_setup(char *str)
  }
  early_param("idle", idle_setup);
  
@@ -16277,18 +18647,18 @@ index e7e3b01..43c5af3 100644
 +}
 +#endif
 diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
-index 7a3b651..5a946f6 100644
+index ae68473..7b0bb71 100644
 --- a/arch/x86/kernel/process_32.c
 +++ b/arch/x86/kernel/process_32.c
-@@ -66,6 +66,7 @@ asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
+@@ -64,6 +64,7 @@ asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
  unsigned long thread_saved_pc(struct task_struct *tsk)
  {
        return ((unsigned long *)tsk->thread.sp)[3];
 +//XXX return tsk->thread.eip;
  }
  
- #ifndef CONFIG_SMP
-@@ -128,15 +129,14 @@ void __show_regs(struct pt_regs *regs, int all)
+ void __show_regs(struct pt_regs *regs, int all)
+@@ -73,15 +74,14 @@ void __show_regs(struct pt_regs *regs, int all)
        unsigned long sp;
        unsigned short ss, gs;
  
@@ -16306,7 +18676,7 @@ index 7a3b651..5a946f6 100644
  
        show_regs_common();
  
-@@ -198,13 +198,14 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
+@@ -143,13 +143,14 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
        struct task_struct *tsk;
        int err;
  
@@ -16322,16 +18692,16 @@ index 7a3b651..5a946f6 100644
  
        p->thread.ip = (unsigned long) ret_from_fork;
  
-@@ -294,7 +295,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+@@ -240,7 +241,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
        struct thread_struct *prev = &prev_p->thread,
                                 *next = &next_p->thread;
        int cpu = smp_processor_id();
 -      struct tss_struct *tss = &per_cpu(init_tss, cpu);
 +      struct tss_struct *tss = init_tss + cpu;
-       bool preload_fpu;
+       fpu_switch_t fpu;
  
        /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
-@@ -329,6 +330,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+@@ -264,6 +265,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
         */
        lazy_save_gs(prev->gs);
  
@@ -16342,44 +18712,35 @@ index 7a3b651..5a946f6 100644
        /*
         * Load the per-thread Thread-Local Storage descriptor.
         */
-@@ -364,6 +369,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+@@ -294,6 +299,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
         */
        arch_end_context_switch(next_p);
  
 +      percpu_write(current_task, next_p);
 +      percpu_write(current_tinfo, &next_p->tinfo);
 +
-       if (preload_fpu)
-               __math_state_restore();
+       /*
+        * Restore %gs if needed (which is common)
+        */
+@@ -302,8 +310,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
  
-@@ -373,8 +381,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
-       if (prev->gs | next->gs)
-               lazy_load_gs(next->gs);
+       switch_fpu_finish(next_p, fpu);
  
 -      percpu_write(current_task, next_p);
 -
        return prev_p;
  }
  
-@@ -404,4 +410,3 @@ unsigned long get_wchan(struct task_struct *p)
+@@ -333,4 +339,3 @@ unsigned long get_wchan(struct task_struct *p)
        } while (count++ < 16);
        return 0;
  }
 -
 diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
-index f693e44..3c979b2 100644
+index 43d8b48..c45d566 100644
 --- a/arch/x86/kernel/process_64.c
 +++ b/arch/x86/kernel/process_64.c
-@@ -88,7 +88,7 @@ static void __exit_idle(void)
- void exit_idle(void)
- {
-       /* idle loop has pid 0 */
--      if (current->pid)
-+      if (task_pid_nr(current))
-               return;
-       __exit_idle();
- }
-@@ -262,8 +262,7 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
+@@ -162,8 +162,7 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
        struct pt_regs *childregs;
        struct task_struct *me = current;
  
@@ -16389,7 +18750,7 @@ index f693e44..3c979b2 100644
        *childregs = *regs;
  
        childregs->ax = 0;
-@@ -275,6 +274,7 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
+@@ -175,6 +174,7 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
        p->thread.sp = (unsigned long) childregs;
        p->thread.sp0 = (unsigned long) (childregs+1);
        p->thread.usersp = me->thread.usersp;
@@ -16397,16 +18758,16 @@ index f693e44..3c979b2 100644
  
        set_tsk_thread_flag(p, TIF_FORK);
  
-@@ -377,7 +377,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+@@ -280,7 +280,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
        struct thread_struct *prev = &prev_p->thread;
        struct thread_struct *next = &next_p->thread;
        int cpu = smp_processor_id();
 -      struct tss_struct *tss = &per_cpu(init_tss, cpu);
 +      struct tss_struct *tss = init_tss + cpu;
        unsigned fsindex, gsindex;
-       bool preload_fpu;
+       fpu_switch_t fpu;
  
-@@ -473,10 +473,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+@@ -362,10 +362,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
        prev->usersp = percpu_read(old_rsp);
        percpu_write(old_rsp, next->usersp);
        percpu_write(current_task, next_p);
@@ -16419,7 +18780,7 @@ index f693e44..3c979b2 100644
  
        /*
         * Now maybe reload the debug registers and handle I/O bitmaps
-@@ -538,12 +537,11 @@ unsigned long get_wchan(struct task_struct *p)
+@@ -434,12 +433,11 @@ unsigned long get_wchan(struct task_struct *p)
        if (!p || p == current || p->state == TASK_RUNNING)
                return 0;
        stack = (unsigned long)task_stack_page(p);
@@ -16435,10 +18796,10 @@ index f693e44..3c979b2 100644
                ip = *(u64 *)(fp+8);
                if (!in_sched_functions(ip))
 diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
-index 8252879..d3219e0 100644
+index cf11783..e7ce551 100644
 --- a/arch/x86/kernel/ptrace.c
 +++ b/arch/x86/kernel/ptrace.c
-@@ -822,7 +822,7 @@ long arch_ptrace(struct task_struct *child, long request,
+@@ -824,7 +824,7 @@ long arch_ptrace(struct task_struct *child, long request,
                 unsigned long addr, unsigned long data)
  {
        int ret;
@@ -16447,7 +18808,7 @@ index 8252879..d3219e0 100644
  
        switch (request) {
        /* read the word at location addr in the USER area. */
-@@ -907,14 +907,14 @@ long arch_ptrace(struct task_struct *child, long request,
+@@ -909,14 +909,14 @@ long arch_ptrace(struct task_struct *child, long request,
                if ((int) addr < 0)
                        return -EIO;
                ret = do_get_thread_area(child, addr,
@@ -16464,7 +18825,7 @@ index 8252879..d3219e0 100644
                break;
  #endif
  
-@@ -1331,7 +1331,7 @@ static void fill_sigtrap_info(struct task_struct *tsk,
+@@ -1426,7 +1426,7 @@ static void fill_sigtrap_info(struct task_struct *tsk,
        memset(info, 0, sizeof(*info));
        info->si_signo = SIGTRAP;
        info->si_code = si_code;
@@ -16473,6 +18834,41 @@ index 8252879..d3219e0 100644
  }
  
  void user_single_step_siginfo(struct task_struct *tsk,
+@@ -1455,6 +1455,10 @@ void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs,
+ # define IS_IA32      0
+ #endif
++#ifdef CONFIG_GRKERNSEC_SETXID
++extern void gr_delayed_cred_worker(void);
++#endif
++
+ /*
+  * We must return the syscall number to actually look up in the table.
+  * This can be -1L to skip running any syscall at all.
+@@ -1463,6 +1467,11 @@ long syscall_trace_enter(struct pt_regs *regs)
+ {
+       long ret = 0;
++#ifdef CONFIG_GRKERNSEC_SETXID
++      if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
++                gr_delayed_cred_worker();
++#endif                
++
+       /*
+        * If we stepped into a sysenter/syscall insn, it trapped in
+        * kernel mode; do_debug() cleared TF and set TIF_SINGLESTEP.
+@@ -1506,6 +1515,11 @@ void syscall_trace_leave(struct pt_regs *regs)
+ {
+       bool step;
++#ifdef CONFIG_GRKERNSEC_SETXID
++      if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
++                gr_delayed_cred_worker();
++#endif                
++
+       audit_syscall_exit(regs);
+       if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
 diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
 index 42eb330..139955c 100644
 --- a/arch/x86/kernel/pvclock.c
@@ -16506,7 +18902,7 @@ index 42eb330..139955c 100644
  
        return ret;
 diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
-index d4a705f..ef8f1a9 100644
+index 3034ee5..7cfbfa6 100644
 --- a/arch/x86/kernel/reboot.c
 +++ b/arch/x86/kernel/reboot.c
 @@ -35,7 +35,7 @@ void (*pm_power_off)(void);
@@ -16518,7 +18914,7 @@ index d4a705f..ef8f1a9 100644
  enum reboot_type reboot_type = BOOT_ACPI;
  int reboot_force;
  
-@@ -324,13 +324,17 @@ core_initcall(reboot_init);
+@@ -335,13 +335,17 @@ core_initcall(reboot_init);
  extern const unsigned char machine_real_restart_asm[];
  extern const u64 machine_real_restart_gdt[3];
  
@@ -16538,7 +18934,7 @@ index d4a705f..ef8f1a9 100644
        local_irq_disable();
  
        /* Write zero to CMOS register number 0x0f, which the BIOS POST
-@@ -356,14 +360,14 @@ void machine_real_restart(unsigned int type)
+@@ -367,14 +371,14 @@ void machine_real_restart(unsigned int type)
           boot)".  This seems like a fairly standard thing that gets set by
           REBOOT.COM programs, and the previous reset routine did this
           too. */
@@ -16555,7 +18951,7 @@ index d4a705f..ef8f1a9 100644
  
        /* GDT[0]: GDT self-pointer */
        lowmem_gdt[0] =
-@@ -374,7 +378,33 @@ void machine_real_restart(unsigned int type)
+@@ -385,7 +389,33 @@ void machine_real_restart(unsigned int type)
                GDT_ENTRY(0x009b, restart_pa, 0xffff);
  
        /* Jump to the identity-mapped low memory code */
@@ -16589,7 +18985,7 @@ index d4a705f..ef8f1a9 100644
  }
  #ifdef CONFIG_APM_MODULE
  EXPORT_SYMBOL(machine_real_restart);
-@@ -532,7 +562,7 @@ void __attribute__((weak)) mach_reboot_fixups(void)
+@@ -564,7 +594,7 @@ void __attribute__((weak)) mach_reboot_fixups(void)
   * try to force a triple fault and then cycle between hitting the keyboard
   * controller and doing that
   */
@@ -16598,7 +18994,7 @@ index d4a705f..ef8f1a9 100644
  {
        int i;
        int attempt = 0;
-@@ -656,13 +686,13 @@ void native_machine_shutdown(void)
+@@ -688,13 +718,13 @@ void native_machine_shutdown(void)
  #endif
  }
  
@@ -16614,7 +19010,7 @@ index d4a705f..ef8f1a9 100644
  {
        printk("machine restart\n");
  
-@@ -671,7 +701,7 @@ static void native_machine_restart(char *__unused)
+@@ -703,7 +733,7 @@ static void native_machine_restart(char *__unused)
        __machine_emergency_restart(0);
  }
  
@@ -16623,7 +19019,7 @@ index d4a705f..ef8f1a9 100644
  {
        /* stop other cpus and apics */
        machine_shutdown();
-@@ -682,7 +712,7 @@ static void native_machine_halt(void)
+@@ -714,7 +744,7 @@ static void native_machine_halt(void)
        stop_this_cpu(NULL);
  }
  
@@ -16632,7 +19028,7 @@ index d4a705f..ef8f1a9 100644
  {
        if (pm_power_off) {
                if (!reboot_force)
-@@ -691,6 +721,7 @@ static void native_machine_power_off(void)
+@@ -723,6 +753,7 @@ static void native_machine_power_off(void)
        }
        /* a fallback in case there is no PM info available */
        tboot_shutdown(TB_SHUTDOWN_HALT);
@@ -16669,7 +19065,7 @@ index 7a6f3b3..bed145d7 100644
  
  1:
 diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index afaf384..1a101fe 100644
+index 1a29015..712f324 100644
 --- a/arch/x86/kernel/setup.c
 +++ b/arch/x86/kernel/setup.c
 @@ -447,7 +447,7 @@ static void __init parse_setup_data(void)
@@ -16681,7 +19077,7 @@ index afaf384..1a101fe 100644
                        break;
                case SETUP_DTB:
                        add_dtb(pa_data);
-@@ -650,7 +650,7 @@ static void __init trim_bios_range(void)
+@@ -639,7 +639,7 @@ static void __init trim_bios_range(void)
         * area (640->1Mb) as ram even though it is not.
         * take them out.
         */
@@ -16690,7 +19086,7 @@ index afaf384..1a101fe 100644
        sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
  }
  
-@@ -773,14 +773,14 @@ void __init setup_arch(char **cmdline_p)
+@@ -763,14 +763,14 @@ void __init setup_arch(char **cmdline_p)
  
        if (!boot_params.hdr.root_flags)
                root_mountflags &= ~MS_RDONLY;
@@ -16711,7 +19107,7 @@ index afaf384..1a101fe 100644
        bss_resource.start = virt_to_phys(&__bss_start);
        bss_resource.end = virt_to_phys(&__bss_stop)-1;
 diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
-index 71f4727..16dc9f7 100644
+index 5a98aa2..2f9288d 100644
 --- a/arch/x86/kernel/setup_percpu.c
 +++ b/arch/x86/kernel/setup_percpu.c
 @@ -21,19 +21,17 @@
@@ -16752,7 +19148,7 @@ index 71f4727..16dc9f7 100644
        write_gdt_entry(get_cpu_gdt_table(cpu),
                        GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S);
  #endif
-@@ -207,6 +205,11 @@ void __init setup_per_cpu_areas(void)
+@@ -219,6 +217,11 @@ void __init setup_per_cpu_areas(void)
        /* alrighty, percpu areas up and running */
        delta = (unsigned long)pcpu_base_addr - (unsigned long)__per_cpu_start;
        for_each_possible_cpu(cpu) {
@@ -16764,7 +19160,7 @@ index 71f4727..16dc9f7 100644
                per_cpu_offset(cpu) = delta + pcpu_unit_offsets[cpu];
                per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu);
                per_cpu(cpu_number, cpu) = cpu;
-@@ -247,6 +250,12 @@ void __init setup_per_cpu_areas(void)
+@@ -259,6 +262,12 @@ void __init setup_per_cpu_areas(void)
                 */
                set_cpu_numa_node(cpu, early_cpu_to_node(cpu));
  #endif
@@ -16778,10 +19174,10 @@ index 71f4727..16dc9f7 100644
                 * Up to this point, the boot CPU has been using .init.data
                 * area.  Reload any changed state for the boot CPU.
 diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
-index 54ddaeb2..a6aa4d2 100644
+index 115eac4..c0591d5 100644
 --- a/arch/x86/kernel/signal.c
 +++ b/arch/x86/kernel/signal.c
-@@ -198,7 +198,7 @@ static unsigned long align_sigframe(unsigned long sp)
+@@ -190,7 +190,7 @@ static unsigned long align_sigframe(unsigned long sp)
         * Align the stack pointer according to the i386 ABI,
         * i.e. so that on function entry ((sp + 4) & 15) == 0.
         */
@@ -16790,7 +19186,7 @@ index 54ddaeb2..a6aa4d2 100644
  #else /* !CONFIG_X86_32 */
        sp = round_down(sp, 16) - 8;
  #endif
-@@ -249,11 +249,11 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size,
+@@ -241,11 +241,11 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size,
         * Return an always-bogus address instead so we will die with SIGSEGV.
         */
        if (onsigstack && !likely(on_sig_stack(sp)))
@@ -16804,7 +19200,7 @@ index 54ddaeb2..a6aa4d2 100644
  
        return (void __user *)sp;
  }
-@@ -308,9 +308,9 @@ __setup_frame(int sig, struct k_sigaction *ka, sigset_t *set,
+@@ -300,9 +300,9 @@ __setup_frame(int sig, struct k_sigaction *ka, sigset_t *set,
        }
  
        if (current->mm->context.vdso)
@@ -16816,7 +19212,7 @@ index 54ddaeb2..a6aa4d2 100644
        if (ka->sa.sa_flags & SA_RESTORER)
                restorer = ka->sa.sa_restorer;
  
-@@ -324,7 +324,7 @@ __setup_frame(int sig, struct k_sigaction *ka, sigset_t *set,
+@@ -316,7 +316,7 @@ __setup_frame(int sig, struct k_sigaction *ka, sigset_t *set,
         * reasons and because gdb uses it as a signature to notice
         * signal handler stack frames.
         */
@@ -16825,7 +19221,7 @@ index 54ddaeb2..a6aa4d2 100644
  
        if (err)
                return -EFAULT;
-@@ -378,7 +378,10 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
+@@ -370,7 +370,10 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
                err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
  
                /* Set up to return from userspace.  */
@@ -16837,7 +19233,7 @@ index 54ddaeb2..a6aa4d2 100644
                if (ka->sa.sa_flags & SA_RESTORER)
                        restorer = ka->sa.sa_restorer;
                put_user_ex(restorer, &frame->pretcode);
-@@ -390,7 +393,7 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
+@@ -382,7 +385,7 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
                 * reasons and because gdb uses it as a signature to notice
                 * signal handler stack frames.
                 */
@@ -16846,16 +19242,7 @@ index 54ddaeb2..a6aa4d2 100644
        } put_user_catch(err);
  
        if (err)
-@@ -762,6 +765,8 @@ static void do_signal(struct pt_regs *regs)
-       siginfo_t info;
-       int signr;
-+      pax_track_stack();
-+
-       /*
-        * We want the common case to go fast, which is why we may in certain
-        * cases get here from kernel mode. Just return without doing anything
-@@ -769,7 +774,7 @@ static void do_signal(struct pt_regs *regs)
+@@ -773,7 +776,7 @@ static void do_signal(struct pt_regs *regs)
         * X86_32: vm86 regs switched out by assembly code before reaching
         * here, so testing against kernel CS suffices.
         */
@@ -16865,10 +19252,10 @@ index 54ddaeb2..a6aa4d2 100644
  
        signr = get_signal_to_deliver(&info, &ka, regs, NULL);
 diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
-index 9f548cb..caf76f7 100644
+index 6e1e406..edfb7cb 100644
 --- a/arch/x86/kernel/smpboot.c
 +++ b/arch/x86/kernel/smpboot.c
-@@ -709,17 +709,20 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu)
+@@ -699,17 +699,20 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu)
        set_idle_for_cpu(cpu, c_idle.idle);
  do_rest:
        per_cpu(current_task, cpu) = c_idle.idle;
@@ -16892,7 +19279,7 @@ index 9f548cb..caf76f7 100644
        initial_code = (unsigned long)start_secondary;
        stack_start  = c_idle.idle->thread.sp;
  
-@@ -861,6 +864,12 @@ int __cpuinit native_cpu_up(unsigned int cpu)
+@@ -851,6 +854,12 @@ int __cpuinit native_cpu_up(unsigned int cpu)
  
        per_cpu(cpu_state, cpu) = CPU_UP_PREPARE;
  
@@ -17184,10 +19571,10 @@ index 0b0cb5f..db6b9ed 100644
 +      return addr;
  }
 diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c
-index ff14a50..35626c3 100644
+index b4d3c39..82bb73b 100644
 --- a/arch/x86/kernel/sys_x86_64.c
 +++ b/arch/x86/kernel/sys_x86_64.c
-@@ -32,8 +32,8 @@ out:
+@@ -95,8 +95,8 @@ out:
        return error;
  }
  
@@ -17196,9 +19583,9 @@ index ff14a50..35626c3 100644
 +static void find_start_end(struct mm_struct *mm, unsigned long flags,
 +                         unsigned long *begin, unsigned long *end)
  {
-       if (!test_thread_flag(TIF_IA32) && (flags & MAP_32BIT)) {
+       if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT)) {
                unsigned long new_begin;
-@@ -52,7 +52,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
+@@ -115,7 +115,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
                                *begin = new_begin;
                }
        } else {
@@ -17207,7 +19594,7 @@ index ff14a50..35626c3 100644
                *end = TASK_SIZE;
        }
  }
-@@ -69,16 +69,19 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -132,16 +132,19 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
        if (flags & MAP_FIXED)
                return addr;
  
@@ -17229,8 +19616,8 @@ index ff14a50..35626c3 100644
 +              if (end - len >= addr && check_heap_stack_gap(vma, addr, len))
                        return addr;
        }
-       if (((flags & MAP_32BIT) || test_thread_flag(TIF_IA32))
-@@ -106,7 +109,7 @@ full_search:
+       if (((flags & MAP_32BIT) || test_thread_flag(TIF_ADDR32))
+@@ -172,7 +175,7 @@ full_search:
                        }
                        return -ENOMEM;
                }
@@ -17239,17 +19626,17 @@ index ff14a50..35626c3 100644
                        /*
                         * Remember the place where we stopped the search:
                         */
-@@ -128,7 +131,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -195,7 +198,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
  {
        struct vm_area_struct *vma;
        struct mm_struct *mm = current->mm;
--      unsigned long addr = addr0;
-+      unsigned long base = mm->mmap_base, addr = addr0;
+-      unsigned long addr = addr0, start_addr;
++      unsigned long base = mm->mmap_base, addr = addr0, start_addr;
  
        /* requested length too big for entire address space */
        if (len > TASK_SIZE)
-@@ -141,13 +144,18 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
-       if (!test_thread_flag(TIF_IA32) && (flags & MAP_32BIT))
+@@ -208,13 +211,18 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+       if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT))
                goto bottomup;
  
 +#ifdef CONFIG_PAX_RANDMMAP
@@ -17271,16 +19658,7 @@ index ff14a50..35626c3 100644
        }
  
        /* check if free_area_cache is useful for us */
-@@ -162,7 +170,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
-       /* make sure it can fit in the remaining address space */
-       if (addr > len) {
-               vma = find_vma(mm, addr-len);
--              if (!vma || addr <= vma->vm_start)
-+              if (check_heap_stack_gap(vma, addr - len, len))
-                       /* remember the address as a hint for next time */
-                       return mm->free_area_cache = addr-len;
-       }
-@@ -179,7 +187,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -240,7 +248,7 @@ try_again:
                 * return with success:
                 */
                vma = find_vma(mm, addr);
@@ -17289,7 +19667,7 @@ index ff14a50..35626c3 100644
                        /* remember the address as a hint for next time */
                        return mm->free_area_cache = addr;
  
-@@ -188,8 +196,8 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -249,8 +257,8 @@ try_again:
                        mm->cached_hole_size = vma->vm_start - addr;
  
                /* try just below the current vma->vm_start */
@@ -17298,9 +19676,9 @@ index ff14a50..35626c3 100644
 +              addr = skip_heap_stack_gap(vma, len);
 +      } while (!IS_ERR_VALUE(addr));
  
bottomup:
fail:
        /*
-@@ -198,13 +206,21 @@ bottomup:
+@@ -270,13 +278,21 @@ bottomup:
         * can happen with large stack limits and large mmap()
         * allocations.
         */
@@ -17324,20 +19702,11 @@ index ff14a50..35626c3 100644
        mm->cached_hole_size = ~0UL;
  
        return addr;
-diff --git a/arch/x86/kernel/syscall_table_32.S b/arch/x86/kernel/syscall_table_32.S
-index bc19be3..0f5fbf7 100644
---- a/arch/x86/kernel/syscall_table_32.S
-+++ b/arch/x86/kernel/syscall_table_32.S
-@@ -1,3 +1,4 @@
-+.section .rodata,"a",@progbits
- ENTRY(sys_call_table)
-       .long sys_restart_syscall       /* 0 - old "setup()" system call, used for restarting */
-       .long sys_exit
 diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c
-index e07a2fc..db0369d 100644
+index 6410744..79758f0 100644
 --- a/arch/x86/kernel/tboot.c
 +++ b/arch/x86/kernel/tboot.c
-@@ -218,7 +218,7 @@ static int tboot_setup_sleep(void)
+@@ -219,7 +219,7 @@ static int tboot_setup_sleep(void)
  
  void tboot_shutdown(u32 shutdown_type)
  {
@@ -17346,7 +19715,7 @@ index e07a2fc..db0369d 100644
  
        if (!tboot_enabled())
                return;
-@@ -240,7 +240,7 @@ void tboot_shutdown(u32 shutdown_type)
+@@ -241,7 +241,7 @@ void tboot_shutdown(u32 shutdown_type)
  
        switch_to_tboot_pt();
  
@@ -17355,8 +19724,8 @@ index e07a2fc..db0369d 100644
        shutdown();
  
        /* should not reach here */
-@@ -297,7 +297,7 @@ void tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control)
-       tboot_shutdown(acpi_shutdown_map[sleep_state]);
+@@ -299,7 +299,7 @@ static int tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control)
+       return 0;
  }
  
 -static atomic_t ap_wfs_count;
@@ -17364,7 +19733,7 @@ index e07a2fc..db0369d 100644
  
  static int tboot_wait_for_aps(int num_aps)
  {
-@@ -321,9 +321,9 @@ static int __cpuinit tboot_cpu_callback(struct notifier_block *nfb,
+@@ -323,9 +323,9 @@ static int __cpuinit tboot_cpu_callback(struct notifier_block *nfb,
  {
        switch (action) {
        case CPU_DYING:
@@ -17376,20 +19745,20 @@ index e07a2fc..db0369d 100644
                                return NOTIFY_BAD;
                break;
        }
-@@ -342,7 +342,7 @@ static __init int tboot_late_init(void)
+@@ -344,7 +344,7 @@ static __init int tboot_late_init(void)
  
        tboot_create_trampoline();
  
 -      atomic_set(&ap_wfs_count, 0);
 +      atomic_set_unchecked(&ap_wfs_count, 0);
        register_hotcpu_notifier(&tboot_cpu_notifier);
-       return 0;
- }
+       acpi_os_set_prepare_sleep(&tboot_sleep);
 diff --git a/arch/x86/kernel/time.c b/arch/x86/kernel/time.c
-index 5a64d05..804587b 100644
+index c6eba2b..3303326 100644
 --- a/arch/x86/kernel/time.c
 +++ b/arch/x86/kernel/time.c
-@@ -30,9 +30,9 @@ unsigned long profile_pc(struct pt_regs *regs)
+@@ -31,9 +31,9 @@ unsigned long profile_pc(struct pt_regs *regs)
  {
        unsigned long pc = instruction_pointer(regs);
  
@@ -17401,7 +19770,7 @@ index 5a64d05..804587b 100644
  #else
                unsigned long *sp =
                        (unsigned long *)kernel_stack_pointer(regs);
-@@ -41,11 +41,17 @@ unsigned long profile_pc(struct pt_regs *regs)
+@@ -42,11 +42,17 @@ unsigned long profile_pc(struct pt_regs *regs)
                 * or above a saved flags. Eflags has bits 22-31 zero,
                 * kernel addresses don't.
                 */
@@ -17420,10 +19789,10 @@ index 5a64d05..804587b 100644
        return pc;
  }
 diff --git a/arch/x86/kernel/tls.c b/arch/x86/kernel/tls.c
-index 6bb7b85..dd853e1 100644
+index 9d9d2f9..ed344e4 100644
 --- a/arch/x86/kernel/tls.c
 +++ b/arch/x86/kernel/tls.c
-@@ -85,6 +85,11 @@ int do_set_thread_area(struct task_struct *p, int idx,
+@@ -84,6 +84,11 @@ int do_set_thread_area(struct task_struct *p, int idx,
        if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
                return -EINVAL;
  
@@ -17484,7 +19853,7 @@ index 09ff517..df19fbff 100644
        .short 0
        .quad   0x00cf9b000000ffff      # __KERNEL32_CS
 diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index 6913369..7e7dff6 100644
+index ff9281f1..30cb4ac 100644
 --- a/arch/x86/kernel/traps.c
 +++ b/arch/x86/kernel/traps.c
 @@ -70,12 +70,6 @@ asmlinkage int system_call(void);
@@ -17500,7 +19869,7 @@ index 6913369..7e7dff6 100644
  #endif
  
  DECLARE_BITMAP(used_vectors, NR_VECTORS);
-@@ -117,13 +111,13 @@ static inline void preempt_conditional_cli(struct pt_regs *regs)
+@@ -108,13 +102,13 @@ static inline void preempt_conditional_cli(struct pt_regs *regs)
  }
  
  static void __kprobes
@@ -17516,7 +19885,7 @@ index 6913369..7e7dff6 100644
                /*
                 * traps 0, 1, 3, 4, and 5 should be forwarded to vm86.
                 * On nmi (interrupt 2), do_trap should not be called.
-@@ -134,7 +128,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
+@@ -125,7 +119,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
        }
  #endif
  
@@ -17525,7 +19894,7 @@ index 6913369..7e7dff6 100644
                goto kernel_trap;
  
  #ifdef CONFIG_X86_32
-@@ -157,7 +151,7 @@ trap_signal:
+@@ -148,7 +142,7 @@ trap_signal:
            printk_ratelimit()) {
                printk(KERN_INFO
                       "%s[%d] trap %s ip:%lx sp:%lx error:%lx",
@@ -17534,10 +19903,10 @@ index 6913369..7e7dff6 100644
                       regs->ip, regs->sp, error_code);
                print_vma_addr(" in ", regs->ip);
                printk("\n");
-@@ -174,8 +168,20 @@ kernel_trap:
+@@ -165,8 +159,20 @@ kernel_trap:
        if (!fixup_exception(regs)) {
                tsk->thread.error_code = error_code;
-               tsk->thread.trap_no = trapnr;
+               tsk->thread.trap_nr = trapnr;
 +
 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
 +              if (trapnr == 12 && ((regs->cs & 0xFFFF) == __KERNEL_CS || (regs->cs & 0xFFFF) == __KERNEXEC_KERNEL_CS))
@@ -17555,7 +19924,7 @@ index 6913369..7e7dff6 100644
        return;
  
  #ifdef CONFIG_X86_32
-@@ -264,14 +270,30 @@ do_general_protection(struct pt_regs *regs, long error_code)
+@@ -259,14 +265,30 @@ do_general_protection(struct pt_regs *regs, long error_code)
        conditional_sti(regs);
  
  #ifdef CONFIG_X86_32
@@ -17586,11 +19955,11 @@ index 6913369..7e7dff6 100644
 +#endif
 +
        tsk->thread.error_code = error_code;
-       tsk->thread.trap_no = 13;
+       tsk->thread.trap_nr = X86_TRAP_GP;
  
-@@ -304,6 +326,13 @@ gp_in_kernel:
-       if (notify_die(DIE_GPF, "general protection fault", regs,
-                               error_code, 13, SIGSEGV) == NOTIFY_STOP)
+@@ -299,6 +321,13 @@ gp_in_kernel:
+       if (notify_die(DIE_GPF, "general protection fault", regs, error_code,
+                       X86_TRAP_GP, SIGSEGV) == NOTIFY_STOP)
                return;
 +
 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
@@ -17602,34 +19971,16 @@ index 6913369..7e7dff6 100644
        die("general protection fault", regs, error_code);
  }
  
-@@ -433,6 +462,17 @@ static notrace __kprobes void default_do_nmi(struct pt_regs *regs)
- dotraplinkage notrace __kprobes void
- do_nmi(struct pt_regs *regs, long error_code)
- {
-+
-+#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
-+      if (!user_mode(regs)) {
-+              unsigned long cs = regs->cs & 0xFFFF;
-+              unsigned long ip = ktva_ktla(regs->ip);
-+
-+              if ((cs == __KERNEL_CS || cs == __KERNEXEC_KERNEL_CS) && ip <= (unsigned long)_etext)
-+                      regs->ip = ip;
-+      }
-+#endif
-+
-       nmi_enter();
-       inc_irq_stat(__nmi_count);
-@@ -569,7 +609,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
+@@ -425,7 +454,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
        /* It's safe to allow irq's after DR6 has been saved */
        preempt_conditional_sti(regs);
  
 -      if (regs->flags & X86_VM_MASK) {
 +      if (v8086_mode(regs)) {
-               handle_vm86_trap((struct kernel_vm86_regs *) regs,
-                               error_code, 1);
+               handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code,
+                                       X86_TRAP_DB);
                preempt_conditional_cli(regs);
-@@ -583,7 +623,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
+@@ -440,7 +469,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
         * We already checked v86 mode above, so we can check for kernel mode
         * by just checking the CPL of CS.
         */
@@ -17638,7 +19989,7 @@ index 6913369..7e7dff6 100644
                tsk->thread.debugreg6 &= ~DR_STEP;
                set_tsk_thread_flag(tsk, TIF_SINGLESTEP);
                regs->flags &= ~X86_EFLAGS_TF;
-@@ -612,7 +652,7 @@ void math_error(struct pt_regs *regs, int error_code, int trapnr)
+@@ -471,7 +500,7 @@ void math_error(struct pt_regs *regs, int error_code, int trapnr)
                return;
        conditional_sti(regs);
  
@@ -17647,25 +19998,6 @@ index 6913369..7e7dff6 100644
        {
                if (!fixup_exception(regs)) {
                        task->thread.error_code = error_code;
-@@ -723,7 +763,7 @@ asmlinkage void __attribute__((weak)) smp_threshold_interrupt(void)
- void __math_state_restore(void)
- {
-       struct thread_info *thread = current_thread_info();
--      struct task_struct *tsk = thread->task;
-+      struct task_struct *tsk = current;
-       /*
-        * Paranoid restore. send a SIGSEGV if we fail to restore the state.
-@@ -750,8 +790,7 @@ void __math_state_restore(void)
-  */
- asmlinkage void math_state_restore(void)
- {
--      struct thread_info *thread = current_thread_info();
--      struct task_struct *tsk = thread->task;
-+      struct task_struct *tsk = current;
-       if (!tsk_used_math(tsk)) {
-               local_irq_enable();
 diff --git a/arch/x86/kernel/verify_cpu.S b/arch/x86/kernel/verify_cpu.S
 index b9242ba..50c5edd 100644
 --- a/arch/x86/kernel/verify_cpu.S
@@ -17679,7 +20011,7 @@ index b9242ba..50c5edd 100644
   *    verify_cpu, returns the status of longmode and SSE in register %eax.
   *            0: Success    1: Failure
 diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
-index 863f875..4307295 100644
+index 255f58a..5e91150 100644
 --- a/arch/x86/kernel/vm86_32.c
 +++ b/arch/x86/kernel/vm86_32.c
 @@ -41,6 +41,7 @@
@@ -17699,7 +20031,7 @@ index 863f875..4307295 100644
        current->thread.sp0 = current->thread.saved_sp0;
        current->thread.sysenter_cs = __KERNEL_CS;
        load_sp0(tss, &current->thread);
-@@ -208,6 +209,13 @@ int sys_vm86old(struct vm86_struct __user *v86, struct pt_regs *regs)
+@@ -210,6 +211,13 @@ int sys_vm86old(struct vm86_struct __user *v86, struct pt_regs *regs)
        struct task_struct *tsk;
        int tmp, ret = -EPERM;
  
@@ -17713,7 +20045,7 @@ index 863f875..4307295 100644
        tsk = current;
        if (tsk->thread.saved_sp0)
                goto out;
-@@ -238,6 +246,14 @@ int sys_vm86(unsigned long cmd, unsigned long arg, struct pt_regs *regs)
+@@ -240,6 +248,14 @@ int sys_vm86(unsigned long cmd, unsigned long arg, struct pt_regs *regs)
        int tmp, ret;
        struct vm86plus_struct __user *v86;
  
@@ -17728,7 +20060,7 @@ index 863f875..4307295 100644
        tsk = current;
        switch (cmd) {
        case VM86_REQUEST_IRQ:
-@@ -324,7 +340,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk
+@@ -326,7 +342,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk
        tsk->thread.saved_fs = info->regs32->fs;
        tsk->thread.saved_gs = get_user_gs(info->regs32);
  
@@ -17737,7 +20069,7 @@ index 863f875..4307295 100644
        tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0;
        if (cpu_has_sep)
                tsk->thread.sysenter_cs = 0;
-@@ -529,7 +545,7 @@ static void do_int(struct kernel_vm86_regs *regs, int i,
+@@ -533,7 +549,7 @@ static void do_int(struct kernel_vm86_regs *regs, int i,
                goto cannot_handle;
        if (i == 0x21 && is_revectored(AH(regs), &KVM86->int21_revectored))
                goto cannot_handle;
@@ -18011,14 +20343,14 @@ index 0f703f1..9e15f64 100644
  
  #ifdef CONFIG_SMP
 diff --git a/arch/x86/kernel/vsyscall_64.c b/arch/x86/kernel/vsyscall_64.c
-index b56c65de..561a55b 100644
+index 7515cf0..331a1a0 100644
 --- a/arch/x86/kernel/vsyscall_64.c
 +++ b/arch/x86/kernel/vsyscall_64.c
-@@ -56,15 +56,13 @@ DEFINE_VVAR(struct vsyscall_gtod_data, vsyscall_gtod_data) =
-       .lock = __SEQLOCK_UNLOCKED(__vsyscall_gtod_data.lock),
};
+@@ -54,15 +54,13 @@
+ DEFINE_VVAR(int, vgetcpu_mode);
DEFINE_VVAR(struct vsyscall_gtod_data, vsyscall_gtod_data);
  
--static enum { EMULATE, NATIVE, NONE } vsyscall_mode = NATIVE;
+-static enum { EMULATE, NATIVE, NONE } vsyscall_mode = EMULATE;
 +static enum { EMULATE, NONE } vsyscall_mode = EMULATE;
  
  static int __init vsyscall_setup(char *str)
@@ -18031,16 +20363,16 @@ index b56c65de..561a55b 100644
                else if (!strcmp("none", str))
                        vsyscall_mode = NONE;
                else
-@@ -177,7 +175,7 @@ bool emulate_vsyscall(struct pt_regs *regs, unsigned long address)
+@@ -206,7 +204,7 @@ bool emulate_vsyscall(struct pt_regs *regs, unsigned long address)
  
        tsk = current;
        if (seccomp_mode(&tsk->seccomp))
 -              do_exit(SIGKILL);
 +              do_group_exit(SIGKILL);
  
-       switch (vsyscall_nr) {
-       case 0:
-@@ -219,8 +217,7 @@ bool emulate_vsyscall(struct pt_regs *regs, unsigned long address)
+       /*
+        * With a real vsyscall, page faults cause SIGSEGV.  We want to
+@@ -278,8 +276,7 @@ bool emulate_vsyscall(struct pt_regs *regs, unsigned long address)
        return true;
  
  sigsegv:
@@ -18050,7 +20382,7 @@ index b56c65de..561a55b 100644
  }
  
  /*
-@@ -273,10 +270,7 @@ void __init map_vsyscall(void)
+@@ -332,10 +329,7 @@ void __init map_vsyscall(void)
        extern char __vvar_page;
        unsigned long physaddr_vvar_page = __pa_symbol(&__vvar_page);
  
@@ -18076,10 +20408,10 @@ index 9796c2f..f686fbf 100644
  EXPORT_SYMBOL(copy_page);
  EXPORT_SYMBOL(clear_page);
 diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
-index a391134..d0b63b6e 100644
+index e62728e..5fc3a07 100644
 --- a/arch/x86/kernel/xsave.c
 +++ b/arch/x86/kernel/xsave.c
-@@ -130,7 +130,7 @@ int check_for_xstate(struct i387_fxsave_struct __user *buf,
+@@ -131,7 +131,7 @@ int check_for_xstate(struct i387_fxsave_struct __user *buf,
            fx_sw_user->xstate_size > fx_sw_user->extended_size)
                return -EINVAL;
  
@@ -18097,7 +20429,7 @@ index a391134..d0b63b6e 100644
  }
  
  /*
-@@ -299,7 +299,7 @@ int restore_i387_xstate(void __user *buf)
+@@ -296,7 +296,7 @@ int restore_i387_xstate(void __user *buf)
        if (use_xsave())
                err = restore_user_xstate(buf);
        else
@@ -18106,49 +20438,91 @@ index a391134..d0b63b6e 100644
                                       buf);
        if (unlikely(err)) {
                /*
+diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
+index 9fed5be..18fd595 100644
+--- a/arch/x86/kvm/cpuid.c
++++ b/arch/x86/kvm/cpuid.c
+@@ -124,15 +124,20 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
+                             struct kvm_cpuid2 *cpuid,
+                             struct kvm_cpuid_entry2 __user *entries)
+ {
+-      int r;
++      int r, i;
+       r = -E2BIG;
+       if (cpuid->nent > KVM_MAX_CPUID_ENTRIES)
+               goto out;
+       r = -EFAULT;
+-      if (copy_from_user(&vcpu->arch.cpuid_entries, entries,
+-                         cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
++      if (!access_ok(VERIFY_READ, entries, cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
+               goto out;
++      for (i = 0; i < cpuid->nent; ++i) {
++              struct kvm_cpuid_entry2 cpuid_entry;
++              if (__copy_from_user(&cpuid_entry, entries + i, sizeof(cpuid_entry)))
++                      goto out;
++              vcpu->arch.cpuid_entries[i] = cpuid_entry;
++      }
+       vcpu->arch.cpuid_nent = cpuid->nent;
+       kvm_apic_set_version(vcpu);
+       kvm_x86_ops->cpuid_update(vcpu);
+@@ -147,15 +152,19 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
+                             struct kvm_cpuid2 *cpuid,
+                             struct kvm_cpuid_entry2 __user *entries)
+ {
+-      int r;
++      int r, i;
+       r = -E2BIG;
+       if (cpuid->nent < vcpu->arch.cpuid_nent)
+               goto out;
+       r = -EFAULT;
+-      if (copy_to_user(entries, &vcpu->arch.cpuid_entries,
+-                       vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
++      if (!access_ok(VERIFY_WRITE, entries, vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
+               goto out;
++      for (i = 0; i < vcpu->arch.cpuid_nent; ++i) {
++              struct kvm_cpuid_entry2 cpuid_entry = vcpu->arch.cpuid_entries[i];
++              if (__copy_to_user(entries + i, &cpuid_entry, sizeof(cpuid_entry)))
++                      goto out;
++      }
+       return 0;
+ out:
 diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
-index 8b4cc5f..f086b5b 100644
+index 8375622..b7bca1a 100644
 --- a/arch/x86/kvm/emulate.c
 +++ b/arch/x86/kvm/emulate.c
-@@ -96,7 +96,7 @@
- #define Src2ImmByte (2<<29)
- #define Src2One     (3<<29)
- #define Src2Imm     (4<<29)
--#define Src2Mask    (7<<29)
-+#define Src2Mask    (7U<<29)
- #define X2(x...) x, x
- #define X3(x...) X2(x), x
-@@ -207,6 +207,7 @@ struct gprefix {
- #define ____emulate_2op(_op, _src, _dst, _eflags, _x, _y, _suffix, _dsttype) \
+@@ -252,6 +252,7 @@ struct gprefix {
+ #define ____emulate_2op(ctxt, _op, _x, _y, _suffix, _dsttype) \
        do {                                                            \
 +              unsigned long _tmp;                                     \
                __asm__ __volatile__ (                                  \
                        _PRE_EFLAGS("0", "4", "2")                      \
                        _op _suffix " %"_x"3,%1; "                      \
-@@ -220,8 +221,6 @@ struct gprefix {
+@@ -266,8 +267,6 @@ struct gprefix {
  /* Raw emulation: instruction has two explicit operands. */
- #define __emulate_2op_nobyte(_op,_src,_dst,_eflags,_wx,_wy,_lx,_ly,_qx,_qy) \
+ #define __emulate_2op_nobyte(ctxt,_op,_wx,_wy,_lx,_ly,_qx,_qy)                \
        do {                                                            \
 -              unsigned long _tmp;                                     \
 -                                                                      \
-               switch ((_dst).bytes) {                                 \
+               switch ((ctxt)->dst.bytes) {                            \
                case 2:                                                 \
-                       ____emulate_2op(_op,_src,_dst,_eflags,_wx,_wy,"w",u16);\
-@@ -237,7 +236,6 @@ struct gprefix {
+                       ____emulate_2op(ctxt,_op,_wx,_wy,"w",u16);      \
+@@ -283,7 +282,6 @@ struct gprefix {
  
- #define __emulate_2op(_op,_src,_dst,_eflags,_bx,_by,_wx,_wy,_lx,_ly,_qx,_qy) \
+ #define __emulate_2op(ctxt,_op,_bx,_by,_wx,_wy,_lx,_ly,_qx,_qy)                    \
        do {                                                                 \
 -              unsigned long _tmp;                                          \
-               switch ((_dst).bytes) {                                      \
+               switch ((ctxt)->dst.bytes) {                                 \
                case 1:                                                      \
-                       ____emulate_2op(_op,_src,_dst,_eflags,_bx,_by,"b",u8); \
+                       ____emulate_2op(ctxt,_op,_bx,_by,"b",u8);            \
 diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
-index 57dcbd4..79aba9b 100644
+index 8584322..17d5955 100644
 --- a/arch/x86/kvm/lapic.c
 +++ b/arch/x86/kvm/lapic.c
-@@ -53,7 +53,7 @@
+@@ -54,7 +54,7 @@
  #define APIC_BUS_CYCLE_NS 1
  
  /* #define apic_debug(fmt,arg...) printk(KERN_WARNING fmt,##arg) */
@@ -18157,30 +20531,8 @@ index 57dcbd4..79aba9b 100644
  
  #define APIC_LVT_NUM                  6
  /* 14 is the version for Xeon and Pentium 8.4.8*/
-diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
-index 8e8da79..13bc641 100644
---- a/arch/x86/kvm/mmu.c
-+++ b/arch/x86/kvm/mmu.c
-@@ -3552,7 +3552,7 @@ void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
-       pgprintk("%s: gpa %llx bytes %d\n", __func__, gpa, bytes);
--      invlpg_counter = atomic_read(&vcpu->kvm->arch.invlpg_counter);
-+      invlpg_counter = atomic_read_unchecked(&vcpu->kvm->arch.invlpg_counter);
-       /*
-        * Assume that the pte write on a page table of the same type
-@@ -3584,7 +3584,7 @@ void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
-       }
-       spin_lock(&vcpu->kvm->mmu_lock);
--      if (atomic_read(&vcpu->kvm->arch.invlpg_counter) != invlpg_counter)
-+      if (atomic_read_unchecked(&vcpu->kvm->arch.invlpg_counter) != invlpg_counter)
-               gentry = 0;
-       kvm_mmu_free_some_pages(vcpu);
-       ++vcpu->kvm->stat.mmu_pte_write;
 diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
-index 507e2b8..fc55f89 100644
+index df5a703..63748a7 100644
 --- a/arch/x86/kvm/paging_tmpl.h
 +++ b/arch/x86/kvm/paging_tmpl.h
 @@ -197,7 +197,7 @@ retry_walk:
@@ -18192,29 +20544,11 @@ index 507e2b8..fc55f89 100644
                if (unlikely(__copy_from_user(&pte, ptep_user, sizeof(pte))))
                        goto error;
  
-@@ -575,6 +575,8 @@ static int FNAME(page_fault)(struct kvm_vcpu *vcpu, gva_t addr, u32 error_code,
-       unsigned long mmu_seq;
-       bool map_writable;
-+      pax_track_stack();
-+
-       pgprintk("%s: addr %lx err %x\n", __func__, addr, error_code);
-       if (unlikely(error_code & PFERR_RSVD_MASK))
-@@ -701,7 +703,7 @@ static void FNAME(invlpg)(struct kvm_vcpu *vcpu, gva_t gva)
-       if (need_flush)
-               kvm_flush_remote_tlbs(vcpu->kvm);
--      atomic_inc(&vcpu->kvm->arch.invlpg_counter);
-+      atomic_inc_unchecked(&vcpu->kvm->arch.invlpg_counter);
-       spin_unlock(&vcpu->kvm->mmu_lock);
 diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
-index 475d1c9..33658ff 100644
+index e334389..6839087 100644
 --- a/arch/x86/kvm/svm.c
 +++ b/arch/x86/kvm/svm.c
-@@ -3381,7 +3381,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
+@@ -3509,7 +3509,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
        int cpu = raw_smp_processor_id();
  
        struct svm_cpu_data *sd = per_cpu(svm_data, cpu);
@@ -18226,7 +20560,7 @@ index 475d1c9..33658ff 100644
        load_TR_desc();
  }
  
-@@ -3759,6 +3763,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -3887,6 +3891,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
  #endif
  #endif
  
@@ -18238,10 +20572,10 @@ index 475d1c9..33658ff 100644
  
        local_irq_disable();
 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index e65a158..656dc24 100644
+index 4ff0ab9..2ff68d3 100644
 --- a/arch/x86/kvm/vmx.c
 +++ b/arch/x86/kvm/vmx.c
-@@ -1251,7 +1251,11 @@ static void reload_tss(void)
+@@ -1303,7 +1303,11 @@ static void reload_tss(void)
        struct desc_struct *descs;
  
        descs = (void *)gdt->address;
@@ -18253,7 +20587,7 @@ index e65a158..656dc24 100644
        load_TR_desc();
  }
  
-@@ -2520,8 +2524,11 @@ static __init int hardware_setup(void)
+@@ -2625,8 +2629,11 @@ static __init int hardware_setup(void)
        if (!cpu_has_vmx_flexpriority())
                flexpriority_enabled = 0;
  
@@ -18267,7 +20601,7 @@ index e65a158..656dc24 100644
  
        if (enable_ept && !cpu_has_vmx_ept_2m_page())
                kvm_disable_largepages();
-@@ -3535,7 +3542,7 @@ static void vmx_set_constant_host_state(void)
+@@ -3642,7 +3649,7 @@ static void vmx_set_constant_host_state(void)
        vmcs_writel(HOST_IDTR_BASE, dt.address);   /* 22.2.4 */
  
        asm("mov $.Lkvm_vmx_return, %0" : "=r"(tmpl));
@@ -18276,7 +20610,7 @@ index e65a158..656dc24 100644
  
        rdmsr(MSR_IA32_SYSENTER_CS, low32, high32);
        vmcs_write32(HOST_IA32_SYSENTER_CS, low32);
-@@ -6021,6 +6028,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -6180,6 +6187,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
                "jmp .Lkvm_vmx_return \n\t"
                ".Llaunched: " __ex(ASM_VMX_VMRESUME) "\n\t"
                ".Lkvm_vmx_return: "
@@ -18289,7 +20623,7 @@ index e65a158..656dc24 100644
                /* Save guest registers, load host registers, keep flags */
                "mov %0, %c[wordsize](%%"R"sp) \n\t"
                "pop %0 \n\t"
-@@ -6069,6 +6082,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -6228,6 +6241,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
  #endif
                [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)),
                [wordsize]"i"(sizeof(ulong))
@@ -18301,7 +20635,7 @@ index e65a158..656dc24 100644
              : "cc", "memory"
                , R"ax", R"bx", R"di", R"si"
  #ifdef CONFIG_X86_64
-@@ -6097,7 +6115,16 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -6256,7 +6274,16 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
                }
        }
  
@@ -18320,10 +20654,10 @@ index e65a158..656dc24 100644
  
        vmx->exit_reason = vmcs_read32(VM_EXIT_REASON);
 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index 84a28ea..9326501 100644
+index 185a2b8..866d2a6 100644
 --- a/arch/x86/kvm/x86.c
 +++ b/arch/x86/kvm/x86.c
-@@ -1334,8 +1334,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
+@@ -1357,8 +1357,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
  {
        struct kvm *kvm = vcpu->kvm;
        int lm = is_long_mode(vcpu);
@@ -18334,7 +20668,7 @@ index 84a28ea..9326501 100644
        u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64
                : kvm->arch.xen_hvm_config.blob_size_32;
        u32 page_num = data & ~PAGE_MASK;
-@@ -2137,6 +2137,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
+@@ -2213,6 +2213,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
                if (n < msr_list.nmsrs)
                        goto out;
                r = -EFAULT;
@@ -18343,54 +20677,7 @@ index 84a28ea..9326501 100644
                if (copy_to_user(user_msr_list->indices, &msrs_to_save,
                                 num_msrs_to_save * sizeof(u32)))
                        goto out;
-@@ -2312,15 +2314,20 @@ static int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
-                                    struct kvm_cpuid2 *cpuid,
-                                    struct kvm_cpuid_entry2 __user *entries)
- {
--      int r;
-+      int r, i;
-       r = -E2BIG;
-       if (cpuid->nent > KVM_MAX_CPUID_ENTRIES)
-               goto out;
-       r = -EFAULT;
--      if (copy_from_user(&vcpu->arch.cpuid_entries, entries,
--                         cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
-+      if (!access_ok(VERIFY_READ, entries, cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
-               goto out;
-+      for (i = 0; i < cpuid->nent; ++i) {
-+              struct kvm_cpuid_entry2 cpuid_entry;
-+              if (__copy_from_user(&cpuid_entry, entries + i, sizeof(cpuid_entry)))
-+                      goto out;
-+              vcpu->arch.cpuid_entries[i] = cpuid_entry;
-+      }
-       vcpu->arch.cpuid_nent = cpuid->nent;
-       kvm_apic_set_version(vcpu);
-       kvm_x86_ops->cpuid_update(vcpu);
-@@ -2335,15 +2342,19 @@ static int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
-                                    struct kvm_cpuid2 *cpuid,
-                                    struct kvm_cpuid_entry2 __user *entries)
- {
--      int r;
-+      int r, i;
-       r = -E2BIG;
-       if (cpuid->nent < vcpu->arch.cpuid_nent)
-               goto out;
-       r = -EFAULT;
--      if (copy_to_user(entries, &vcpu->arch.cpuid_entries,
--                       vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
-+      if (!access_ok(VERIFY_WRITE, entries, vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
-               goto out;
-+      for (i = 0; i < vcpu->arch.cpuid_nent; ++i) {
-+              struct kvm_cpuid_entry2 cpuid_entry = vcpu->arch.cpuid_entries[i];
-+              if (__copy_to_user(entries + i, &cpuid_entry, sizeof(cpuid_entry)))
-+                      goto out;
-+      }
-       return 0;
- out:
-@@ -2718,7 +2729,7 @@ static int kvm_vcpu_ioctl_set_lapic(struct kvm_vcpu *vcpu,
+@@ -2338,7 +2340,7 @@ static int kvm_vcpu_ioctl_set_lapic(struct kvm_vcpu *vcpu,
  static int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu,
                                    struct kvm_interrupt *irq)
  {
@@ -18399,7 +20686,7 @@ index 84a28ea..9326501 100644
                return -EINVAL;
        if (irqchip_in_kernel(vcpu->kvm))
                return -ENXIO;
-@@ -5089,7 +5100,7 @@ static void kvm_set_mmio_spte_mask(void)
+@@ -4860,7 +4862,7 @@ static void kvm_set_mmio_spte_mask(void)
        kvm_mmu_set_mmio_spte_mask(mask);
  }
  
@@ -18409,10 +20696,10 @@ index 84a28ea..9326501 100644
        int r;
        struct kvm_x86_ops *ops = (struct kvm_x86_ops *)opaque;
 diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
-index 13ee258..b9632f6 100644
+index 642d880..44e0f3f 100644
 --- a/arch/x86/lguest/boot.c
 +++ b/arch/x86/lguest/boot.c
-@@ -1184,9 +1184,10 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
+@@ -1200,9 +1200,10 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
   * Rebooting also tells the Host we're finished, but the RESTART flag tells the
   * Launcher to reboot us.
   */
@@ -18424,90 +20711,8 @@ index 13ee258..b9632f6 100644
  }
  
  /*G:050
-diff --git a/arch/x86/lib/atomic64_32.c b/arch/x86/lib/atomic64_32.c
-index 042f682..c92afb6 100644
---- a/arch/x86/lib/atomic64_32.c
-+++ b/arch/x86/lib/atomic64_32.c
-@@ -8,18 +8,30 @@
- long long atomic64_read_cx8(long long, const atomic64_t *v);
- EXPORT_SYMBOL(atomic64_read_cx8);
-+long long atomic64_read_unchecked_cx8(long long, const atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_read_unchecked_cx8);
- long long atomic64_set_cx8(long long, const atomic64_t *v);
- EXPORT_SYMBOL(atomic64_set_cx8);
-+long long atomic64_set_unchecked_cx8(long long, const atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_set_unchecked_cx8);
- long long atomic64_xchg_cx8(long long, unsigned high);
- EXPORT_SYMBOL(atomic64_xchg_cx8);
- long long atomic64_add_return_cx8(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_add_return_cx8);
-+long long atomic64_add_return_unchecked_cx8(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_add_return_unchecked_cx8);
- long long atomic64_sub_return_cx8(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_sub_return_cx8);
-+long long atomic64_sub_return_unchecked_cx8(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_sub_return_unchecked_cx8);
- long long atomic64_inc_return_cx8(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_inc_return_cx8);
-+long long atomic64_inc_return_unchecked_cx8(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_inc_return_unchecked_cx8);
- long long atomic64_dec_return_cx8(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_dec_return_cx8);
-+long long atomic64_dec_return_unchecked_cx8(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_dec_return_unchecked_cx8);
- long long atomic64_dec_if_positive_cx8(atomic64_t *v);
- EXPORT_SYMBOL(atomic64_dec_if_positive_cx8);
- int atomic64_inc_not_zero_cx8(atomic64_t *v);
-@@ -30,26 +42,46 @@ EXPORT_SYMBOL(atomic64_add_unless_cx8);
- #ifndef CONFIG_X86_CMPXCHG64
- long long atomic64_read_386(long long, const atomic64_t *v);
- EXPORT_SYMBOL(atomic64_read_386);
-+long long atomic64_read_unchecked_386(long long, const atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_read_unchecked_386);
- long long atomic64_set_386(long long, const atomic64_t *v);
- EXPORT_SYMBOL(atomic64_set_386);
-+long long atomic64_set_unchecked_386(long long, const atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_set_unchecked_386);
- long long atomic64_xchg_386(long long, unsigned high);
- EXPORT_SYMBOL(atomic64_xchg_386);
- long long atomic64_add_return_386(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_add_return_386);
-+long long atomic64_add_return_unchecked_386(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_add_return_unchecked_386);
- long long atomic64_sub_return_386(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_sub_return_386);
-+long long atomic64_sub_return_unchecked_386(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_sub_return_unchecked_386);
- long long atomic64_inc_return_386(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_inc_return_386);
-+long long atomic64_inc_return_unchecked_386(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_inc_return_unchecked_386);
- long long atomic64_dec_return_386(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_dec_return_386);
-+long long atomic64_dec_return_unchecked_386(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_dec_return_unchecked_386);
- long long atomic64_add_386(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_add_386);
-+long long atomic64_add_unchecked_386(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_add_unchecked_386);
- long long atomic64_sub_386(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_sub_386);
-+long long atomic64_sub_unchecked_386(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_sub_unchecked_386);
- long long atomic64_inc_386(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_inc_386);
-+long long atomic64_inc_unchecked_386(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_inc_unchecked_386);
- long long atomic64_dec_386(long long a, atomic64_t *v);
- EXPORT_SYMBOL(atomic64_dec_386);
-+long long atomic64_dec_unchecked_386(long long a, atomic64_unchecked_t *v);
-+EXPORT_SYMBOL(atomic64_dec_unchecked_386);
- long long atomic64_dec_if_positive_386(atomic64_t *v);
- EXPORT_SYMBOL(atomic64_dec_if_positive_386);
- int atomic64_inc_not_zero_386(atomic64_t *v);
 diff --git a/arch/x86/lib/atomic64_386_32.S b/arch/x86/lib/atomic64_386_32.S
-index e8e7e0d..56fd1b0 100644
+index 00933d5..3a64af9 100644
 --- a/arch/x86/lib/atomic64_386_32.S
 +++ b/arch/x86/lib/atomic64_386_32.S
 @@ -48,6 +48,10 @@ BEGIN(read)
@@ -18734,7 +20939,7 @@ index e8e7e0d..56fd1b0 100644
 +      _ASM_EXTABLE(1234b, 2f)
 +#endif
 +
-       cmpl %eax, %esi
+       cmpl %eax, %ecx
        je 3f
  1:
 @@ -168,6 +318,13 @@ BEGIN(inc_not_zero)
@@ -18766,7 +20971,7 @@ index e8e7e0d..56fd1b0 100644
        movl %eax,  (v)
        movl %edx, 4(v)
 diff --git a/arch/x86/lib/atomic64_cx8_32.S b/arch/x86/lib/atomic64_cx8_32.S
-index 391a083..d658e9f 100644
+index f5cc9eb..51fa319 100644
 --- a/arch/x86/lib/atomic64_cx8_32.S
 +++ b/arch/x86/lib/atomic64_cx8_32.S
 @@ -35,10 +35,20 @@ ENTRY(atomic64_read_cx8)
@@ -18816,7 +21021,7 @@ index 391a083..d658e9f 100644
  ENTRY(atomic64_xchg_cx8)
        CFI_STARTPROC
  
-@@ -62,12 +87,13 @@ ENTRY(atomic64_xchg_cx8)
+@@ -60,12 +85,13 @@ ENTRY(atomic64_xchg_cx8)
        cmpxchg8b (%esi)
        jne 1b
  
@@ -18832,7 +21037,7 @@ index 391a083..d658e9f 100644
        CFI_STARTPROC
        SAVE ebp
        SAVE ebx
-@@ -84,27 +110,44 @@ ENTRY(atomic64_\func\()_return_cx8)
+@@ -82,27 +108,44 @@ ENTRY(atomic64_\func\()_return_cx8)
        movl %edx, %ecx
        \ins\()l %esi, %ebx
        \insc\()l %edi, %ecx
@@ -18877,12 +21082,12 @@ index 391a083..d658e9f 100644
  
 -.macro incdec_return func ins insc
 -ENTRY(atomic64_\func\()_return_cx8)
-+.macro incdec_return func ins insc unchecked
++.macro incdec_return func ins insc unchecked=""
 +ENTRY(atomic64_\func\()_return\unchecked\()_cx8)
        CFI_STARTPROC
        SAVE ebx
  
-@@ -114,21 +157,39 @@ ENTRY(atomic64_\func\()_return_cx8)
+@@ -112,21 +155,39 @@ ENTRY(atomic64_\func\()_return_cx8)
        movl %edx, %ecx
        \ins\()l $1, %ebx
        \insc\()l $0, %ecx
@@ -18924,7 +21129,7 @@ index 391a083..d658e9f 100644
  
  ENTRY(atomic64_dec_if_positive_cx8)
        CFI_STARTPROC
-@@ -140,6 +201,13 @@ ENTRY(atomic64_dec_if_positive_cx8)
+@@ -138,6 +199,13 @@ ENTRY(atomic64_dec_if_positive_cx8)
        movl %edx, %ecx
        subl $1, %ebx
        sbb $0, %ecx
@@ -18938,7 +21143,7 @@ index 391a083..d658e9f 100644
        js 2f
        LOCK_PREFIX
        cmpxchg8b (%esi)
-@@ -149,6 +217,7 @@ ENTRY(atomic64_dec_if_positive_cx8)
+@@ -147,6 +215,7 @@ ENTRY(atomic64_dec_if_positive_cx8)
        movl %ebx, %eax
        movl %ecx, %edx
        RESTORE ebx
@@ -18946,9 +21151,9 @@ index 391a083..d658e9f 100644
        ret
        CFI_ENDPROC
  ENDPROC(atomic64_dec_if_positive_cx8)
-@@ -174,6 +243,13 @@ ENTRY(atomic64_add_unless_cx8)
+@@ -171,6 +240,13 @@ ENTRY(atomic64_add_unless_cx8)
        movl %edx, %ecx
-       addl %esi, %ebx
+       addl %ebp, %ebx
        adcl %edi, %ecx
 +
 +#ifdef CONFIG_PAX_REFCOUNT
@@ -18958,9 +21163,9 @@ index 391a083..d658e9f 100644
 +#endif
 +
        LOCK_PREFIX
-       cmpxchg8b (%ebp)
+       cmpxchg8b (%esi)
        jne 1b
-@@ -184,6 +260,7 @@ ENTRY(atomic64_add_unless_cx8)
+@@ -181,6 +257,7 @@ ENTRY(atomic64_add_unless_cx8)
        CFI_ADJUST_CFA_OFFSET -8
        RESTORE ebx
        RESTORE ebp
@@ -18968,10 +21173,10 @@ index 391a083..d658e9f 100644
        ret
  4:
        cmpl %edx, 4(%esp)
-@@ -206,6 +283,13 @@ ENTRY(atomic64_inc_not_zero_cx8)
-       movl %edx, %ecx
+@@ -203,6 +280,13 @@ ENTRY(atomic64_inc_not_zero_cx8)
+       xorl %ecx, %ecx
        addl $1, %ebx
-       adcl $0, %ecx
+       adcl %edx, %ecx
 +
 +#ifdef CONFIG_PAX_REFCOUNT
 +      into
@@ -18982,14 +21187,14 @@ index 391a083..d658e9f 100644
        LOCK_PREFIX
        cmpxchg8b (%esi)
        jne 1b
-@@ -213,6 +297,7 @@ ENTRY(atomic64_inc_not_zero_cx8)
+@@ -210,6 +294,7 @@ ENTRY(atomic64_inc_not_zero_cx8)
        movl $1, %eax
  3:
        RESTORE ebx
 +      pax_force_retaddr
        ret
- 4:
-       testl %edx, %edx
+       CFI_ENDPROC
+ ENDPROC(atomic64_inc_not_zero_cx8)
 diff --git a/arch/x86/lib/checksum_32.S b/arch/x86/lib/checksum_32.S
 index 78d16a5..fbcf666 100644
 --- a/arch/x86/lib/checksum_32.S
@@ -19294,7 +21499,7 @@ index 1e572c5..2a162cd 100644
  
  CFI_ENDPROC
 diff --git a/arch/x86/lib/copy_page_64.S b/arch/x86/lib/copy_page_64.S
-index 01c805b..dccb07f 100644
+index 6b34d04..dccb07f 100644
 --- a/arch/x86/lib/copy_page_64.S
 +++ b/arch/x86/lib/copy_page_64.S
 @@ -9,6 +9,7 @@ copy_page_c:
@@ -19305,7 +21510,24 @@ index 01c805b..dccb07f 100644
        ret
        CFI_ENDPROC
  ENDPROC(copy_page_c)
-@@ -39,7 +40,7 @@ ENTRY(copy_page)
+@@ -20,12 +21,14 @@ ENDPROC(copy_page_c)
+ ENTRY(copy_page)
+       CFI_STARTPROC
+-      subq    $2*8,%rsp
+-      CFI_ADJUST_CFA_OFFSET 2*8
++      subq    $3*8,%rsp
++      CFI_ADJUST_CFA_OFFSET 3*8
+       movq    %rbx,(%rsp)
+       CFI_REL_OFFSET rbx, 0
+       movq    %r12,1*8(%rsp)
+       CFI_REL_OFFSET r12, 1*8
++      movq    %r13,2*8(%rsp)
++      CFI_REL_OFFSET r13, 2*8
+       movl    $(4096/64)-5,%ecx
+       .p2align 4
+@@ -37,7 +40,7 @@ ENTRY(copy_page)
        movq     16 (%rsi), %rdx
        movq     24 (%rsi), %r8
        movq     32 (%rsi), %r9
@@ -19314,7 +21536,7 @@ index 01c805b..dccb07f 100644
        movq     48 (%rsi), %r11
        movq     56 (%rsi), %r12
  
-@@ -50,7 +51,7 @@ ENTRY(copy_page)
+@@ -48,7 +51,7 @@ ENTRY(copy_page)
        movq     %rdx, 16 (%rdi)
        movq     %r8,  24 (%rdi)
        movq     %r9,  32 (%rdi)
@@ -19323,7 +21545,7 @@ index 01c805b..dccb07f 100644
        movq     %r11, 48 (%rdi)
        movq     %r12, 56 (%rdi)
  
-@@ -69,7 +70,7 @@ ENTRY(copy_page)
+@@ -67,7 +70,7 @@ ENTRY(copy_page)
        movq     16 (%rsi), %rdx
        movq     24 (%rsi), %r8
        movq     32 (%rsi), %r9
@@ -19332,7 +21554,7 @@ index 01c805b..dccb07f 100644
        movq     48 (%rsi), %r11
        movq     56 (%rsi), %r12
  
-@@ -78,7 +79,7 @@ ENTRY(copy_page)
+@@ -76,7 +79,7 @@ ENTRY(copy_page)
        movq     %rdx, 16 (%rdi)
        movq     %r8,  24 (%rdi)
        movq     %r9,  32 (%rdi)
@@ -19341,15 +21563,21 @@ index 01c805b..dccb07f 100644
        movq     %r11, 48 (%rdi)
        movq     %r12, 56 (%rdi)
  
-@@ -95,6 +96,7 @@ ENTRY(copy_page)
-       CFI_RESTORE r13
-       addq    $3*8,%rsp
-       CFI_ADJUST_CFA_OFFSET -3*8
+@@ -89,8 +92,11 @@ ENTRY(copy_page)
+       CFI_RESTORE rbx
+       movq    1*8(%rsp),%r12
+       CFI_RESTORE r12
+-      addq    $2*8,%rsp
+-      CFI_ADJUST_CFA_OFFSET -2*8
++      movq    2*8(%rsp),%r13
++      CFI_RESTORE r13
++      addq    $3*8,%rsp
++      CFI_ADJUST_CFA_OFFSET -3*8
 +      pax_force_retaddr
        ret
  .Lcopy_page_end:
        CFI_ENDPROC
-@@ -105,7 +107,7 @@ ENDPROC(copy_page)
+@@ -101,7 +107,7 @@ ENDPROC(copy_page)
  
  #include <asm/cpufeature.h>
  
@@ -19727,7 +21955,7 @@ index 51f1504..ddac4c1 100644
        CFI_ENDPROC
  END(bad_get_user)
 diff --git a/arch/x86/lib/insn.c b/arch/x86/lib/insn.c
-index 9f33b98..dfc7678 100644
+index b1e6c4b..21ae8fc 100644
 --- a/arch/x86/lib/insn.c
 +++ b/arch/x86/lib/insn.c
 @@ -21,6 +21,11 @@
@@ -19740,9 +21968,9 @@ index 9f33b98..dfc7678 100644
 +#define ktla_ktva(addr) addr
 +#endif
  
- #define get_next(t, insn)     \
-       ({t r; r = *(t*)insn->next_byte; insn->next_byte += sizeof(t); r; })
-@@ -40,8 +45,8 @@
+ /* Verify next sizeof(t) bytes can be on the same instruction */
+ #define validate_next(t, insn, n)     \
+@@ -49,8 +54,8 @@
  void insn_init(struct insn *insn, const void *kaddr, int x86_64)
  {
        memset(insn, 0, sizeof(*insn));
@@ -19774,10 +22002,10 @@ index 05a95e7..326f2fa 100644
        CFI_ENDPROC
  ENDPROC(__iowrite32_copy)
 diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S
-index efbf2a0..8893637 100644
+index 1c273be..da9cc0e 100644
 --- a/arch/x86/lib/memcpy_64.S
 +++ b/arch/x86/lib/memcpy_64.S
-@@ -34,6 +34,7 @@
+@@ -33,6 +33,7 @@
        rep movsq
        movl %edx, %ecx
        rep movsb
@@ -19785,15 +22013,15 @@ index efbf2a0..8893637 100644
        ret
  .Lmemcpy_e:
        .previous
-@@ -51,6 +52,7 @@
-       movl %edx, %ecx
+@@ -49,6 +50,7 @@
+       movq %rdi, %rax
+       movq %rdx, %rcx
        rep movsb
 +      pax_force_retaddr
        ret
  .Lmemcpy_e_e:
        .previous
-@@ -81,13 +83,13 @@ ENTRY(memcpy)
+@@ -76,13 +78,13 @@ ENTRY(memcpy)
         */
        movq 0*8(%rsi), %r8
        movq 1*8(%rsi), %r9
@@ -19809,7 +22037,7 @@ index efbf2a0..8893637 100644
        movq %r11,      3*8(%rdi)
        leaq 4*8(%rdi), %rdi
        jae  .Lcopy_forward_loop
-@@ -110,12 +112,12 @@ ENTRY(memcpy)
+@@ -105,12 +107,12 @@ ENTRY(memcpy)
        subq $0x20,     %rdx
        movq -1*8(%rsi),        %r8
        movq -2*8(%rsi),        %r9
@@ -19824,7 +22052,7 @@ index efbf2a0..8893637 100644
        movq %r11,              -4*8(%rdi)
        leaq -4*8(%rdi),        %rdi
        jae  .Lcopy_backward_loop
-@@ -135,12 +137,13 @@ ENTRY(memcpy)
+@@ -130,12 +132,13 @@ ENTRY(memcpy)
         */
        movq 0*8(%rsi), %r8
        movq 1*8(%rsi), %r9
@@ -19840,7 +22068,7 @@ index efbf2a0..8893637 100644
        retq
        .p2align 4
  .Lless_16bytes:
-@@ -153,6 +156,7 @@ ENTRY(memcpy)
+@@ -148,6 +151,7 @@ ENTRY(memcpy)
        movq -1*8(%rsi, %rdx),  %r9
        movq %r8,       0*8(%rdi)
        movq %r9,       -1*8(%rdi, %rdx)
@@ -19848,7 +22076,7 @@ index efbf2a0..8893637 100644
        retq
        .p2align 4
  .Lless_8bytes:
-@@ -166,6 +170,7 @@ ENTRY(memcpy)
+@@ -161,6 +165,7 @@ ENTRY(memcpy)
        movl -4(%rsi, %rdx), %r8d
        movl %ecx, (%rdi)
        movl %r8d, -4(%rdi, %rdx)
@@ -19856,8 +22084,8 @@ index efbf2a0..8893637 100644
        retq
        .p2align 4
  .Lless_3bytes:
-@@ -183,6 +188,7 @@ ENTRY(memcpy)
-       jnz .Lloop_1
+@@ -179,6 +184,7 @@ ENTRY(memcpy)
+       movb %cl, (%rdi)
  
  .Lend:
 +      pax_force_retaddr
@@ -19997,46 +22225,40 @@ index ee16461..c39c199 100644
  .Lmemmove_end_forward_efs:
        .previous
 diff --git a/arch/x86/lib/memset_64.S b/arch/x86/lib/memset_64.S
-index 79bd454..dff325a 100644
+index 2dcb380..963660a 100644
 --- a/arch/x86/lib/memset_64.S
 +++ b/arch/x86/lib/memset_64.S
-@@ -31,6 +31,7 @@
-       movl %r8d,%ecx
+@@ -30,6 +30,7 @@
+       movl %edx,%ecx
        rep stosb
        movq %r9,%rax
 +      pax_force_retaddr
        ret
  .Lmemset_e:
        .previous
-@@ -53,6 +54,7 @@
-       movl %edx,%ecx
+@@ -52,6 +53,7 @@
+       movq %rdx,%rcx
        rep stosb
        movq %r9,%rax
 +      pax_force_retaddr
        ret
  .Lmemset_e_e:
        .previous
-@@ -60,13 +62,13 @@
+@@ -59,7 +61,7 @@
  ENTRY(memset)
  ENTRY(__memset)
        CFI_STARTPROC
 -      movq %rdi,%r10
-       movq %rdx,%r11
++      movq %rdi,%r11
  
        /* expand byte value  */
        movzbl %sil,%ecx
-       movabs $0x0101010101010101,%rax
-       mul    %rcx             /* with rax, clobbers rdx */
-+      movq  %rdi,%rdx
-       /* align dst */
-       movl  %edi,%r9d
-@@ -120,7 +122,8 @@ ENTRY(__memset)
+@@ -117,7 +119,8 @@ ENTRY(__memset)
        jnz     .Lloop_1
  
  .Lende:
 -      movq    %r10,%rax
-+      movq    %rdx,%rax
++      movq    %r11,%rax
 +      pax_force_retaddr
        ret
  
@@ -20681,19 +22903,10 @@ index a63efd6..ccecad8 100644
        ret
        CFI_ENDPROC
 diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
-index e218d5d..35679b4 100644
+index ef2a6a5..3b28862 100644
 --- a/arch/x86/lib/usercopy_32.c
 +++ b/arch/x86/lib/usercopy_32.c
-@@ -43,7 +43,7 @@ do {                                                                    \
-       __asm__ __volatile__(                                              \
-               "       testl %1,%1\n"                                     \
-               "       jz 2f\n"                                           \
--              "0:     lodsb\n"                                           \
-+              "0:     "__copyuser_seg"lodsb\n"                           \
-               "       stosb\n"                                           \
-               "       testb %%al,%%al\n"                                 \
-               "       jz 1f\n"                                           \
-@@ -128,10 +128,12 @@ do {                                                                     \
+@@ -41,10 +41,12 @@ do {                                                                       \
        int __d0;                                                       \
        might_fault();                                                  \
        __asm__ __volatile__(                                           \
@@ -20706,7 +22919,7 @@ index e218d5d..35679b4 100644
                ".section .fixup,\"ax\"\n"                              \
                "3:     lea 0(%2,%0,4),%0\n"                            \
                "       jmp 2b\n"                                       \
-@@ -200,6 +202,7 @@ long strnlen_user(const char __user *s, long n)
+@@ -113,6 +115,7 @@ long strnlen_user(const char __user *s, long n)
        might_fault();
  
        __asm__ __volatile__(
@@ -20714,7 +22927,7 @@ index e218d5d..35679b4 100644
                "       testl %0, %0\n"
                "       jz 3f\n"
                "       andl %0,%%ecx\n"
-@@ -208,6 +211,7 @@ long strnlen_user(const char __user *s, long n)
+@@ -121,6 +124,7 @@ long strnlen_user(const char __user *s, long n)
                "       subl %%ecx,%0\n"
                "       addl %0,%%eax\n"
                "1:\n"
@@ -20722,7 +22935,7 @@ index e218d5d..35679b4 100644
                ".section .fixup,\"ax\"\n"
                "2:     xorl %%eax,%%eax\n"
                "       jmp 1b\n"
-@@ -227,7 +231,7 @@ EXPORT_SYMBOL(strnlen_user);
+@@ -140,7 +144,7 @@ EXPORT_SYMBOL(strnlen_user);
  
  #ifdef CONFIG_X86_INTEL_USERCOPY
  static unsigned long
@@ -20731,7 +22944,7 @@ index e218d5d..35679b4 100644
  {
        int d0, d1;
        __asm__ __volatile__(
-@@ -239,36 +243,36 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
+@@ -152,36 +156,36 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
                       "       .align 2,0x90\n"
                       "3:     movl 0(%4), %%eax\n"
                       "4:     movl 4(%4), %%edx\n"
@@ -20784,7 +22997,7 @@ index e218d5d..35679b4 100644
                       "       addl $-64, %0\n"
                       "       addl $64, %4\n"
                       "       addl $64, %3\n"
-@@ -278,10 +282,119 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
+@@ -191,10 +195,12 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
                       "       shrl  $2, %0\n"
                       "       andl  $3, %%eax\n"
                       "       cld\n"
@@ -20794,58 +23007,13 @@ index e218d5d..35679b4 100644
                       "37:    rep; movsb\n"
                       "100:\n"
 +                     __COPYUSER_RESTORE_ES
-+                     ".section .fixup,\"ax\"\n"
-+                     "101:   lea 0(%%eax,%0,4),%0\n"
-+                     "       jmp 100b\n"
-+                     ".previous\n"
-+                     ".section __ex_table,\"a\"\n"
-+                     "       .align 4\n"
-+                     "       .long 1b,100b\n"
-+                     "       .long 2b,100b\n"
-+                     "       .long 3b,100b\n"
-+                     "       .long 4b,100b\n"
-+                     "       .long 5b,100b\n"
-+                     "       .long 6b,100b\n"
-+                     "       .long 7b,100b\n"
-+                     "       .long 8b,100b\n"
-+                     "       .long 9b,100b\n"
-+                     "       .long 10b,100b\n"
-+                     "       .long 11b,100b\n"
-+                     "       .long 12b,100b\n"
-+                     "       .long 13b,100b\n"
-+                     "       .long 14b,100b\n"
-+                     "       .long 15b,100b\n"
-+                     "       .long 16b,100b\n"
-+                     "       .long 17b,100b\n"
-+                     "       .long 18b,100b\n"
-+                     "       .long 19b,100b\n"
-+                     "       .long 20b,100b\n"
-+                     "       .long 21b,100b\n"
-+                     "       .long 22b,100b\n"
-+                     "       .long 23b,100b\n"
-+                     "       .long 24b,100b\n"
-+                     "       .long 25b,100b\n"
-+                     "       .long 26b,100b\n"
-+                     "       .long 27b,100b\n"
-+                     "       .long 28b,100b\n"
-+                     "       .long 29b,100b\n"
-+                     "       .long 30b,100b\n"
-+                     "       .long 31b,100b\n"
-+                     "       .long 32b,100b\n"
-+                     "       .long 33b,100b\n"
-+                     "       .long 34b,100b\n"
-+                     "       .long 35b,100b\n"
-+                     "       .long 36b,100b\n"
-+                     "       .long 37b,100b\n"
-+                     "       .long 99b,101b\n"
-+                     ".previous"
-+                     : "=&c"(size), "=&D" (d0), "=&S" (d1)
-+                     :  "1"(to), "2"(from), "0"(size)
-+                     : "eax", "edx", "memory");
-+      return size;
-+}
-+
-+static unsigned long
+                      ".section .fixup,\"ax\"\n"
+                      "101:   lea 0(%%eax,%0,4),%0\n"
+                      "       jmp 100b\n"
+@@ -247,46 +253,155 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
+ }
+ static unsigned long
 +__generic_copy_from_user_intel(void *to, const void __user *from, unsigned long size)
 +{
 +      int d0, d1;
@@ -20901,10 +23069,62 @@ index e218d5d..35679b4 100644
 +                     "36:    movl %%eax, %0\n"
 +                     "37:    rep; "__copyuser_seg" movsb\n"
 +                     "100:\n"
-                      ".section .fixup,\"ax\"\n"
-                      "101:   lea 0(%%eax,%0,4),%0\n"
-                      "       jmp 100b\n"
-@@ -339,41 +452,41 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
++                     ".section .fixup,\"ax\"\n"
++                     "101:   lea 0(%%eax,%0,4),%0\n"
++                     "       jmp 100b\n"
++                     ".previous\n"
++                     ".section __ex_table,\"a\"\n"
++                     "       .align 4\n"
++                     "       .long 1b,100b\n"
++                     "       .long 2b,100b\n"
++                     "       .long 3b,100b\n"
++                     "       .long 4b,100b\n"
++                     "       .long 5b,100b\n"
++                     "       .long 6b,100b\n"
++                     "       .long 7b,100b\n"
++                     "       .long 8b,100b\n"
++                     "       .long 9b,100b\n"
++                     "       .long 10b,100b\n"
++                     "       .long 11b,100b\n"
++                     "       .long 12b,100b\n"
++                     "       .long 13b,100b\n"
++                     "       .long 14b,100b\n"
++                     "       .long 15b,100b\n"
++                     "       .long 16b,100b\n"
++                     "       .long 17b,100b\n"
++                     "       .long 18b,100b\n"
++                     "       .long 19b,100b\n"
++                     "       .long 20b,100b\n"
++                     "       .long 21b,100b\n"
++                     "       .long 22b,100b\n"
++                     "       .long 23b,100b\n"
++                     "       .long 24b,100b\n"
++                     "       .long 25b,100b\n"
++                     "       .long 26b,100b\n"
++                     "       .long 27b,100b\n"
++                     "       .long 28b,100b\n"
++                     "       .long 29b,100b\n"
++                     "       .long 30b,100b\n"
++                     "       .long 31b,100b\n"
++                     "       .long 32b,100b\n"
++                     "       .long 33b,100b\n"
++                     "       .long 34b,100b\n"
++                     "       .long 35b,100b\n"
++                     "       .long 36b,100b\n"
++                     "       .long 37b,100b\n"
++                     "       .long 99b,101b\n"
++                     ".previous"
++                     : "=&c"(size), "=&D" (d0), "=&S" (d1)
++                     :  "1"(to), "2"(from), "0"(size)
++                     : "eax", "edx", "memory");
++      return size;
++}
++
++static unsigned long
++__copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size) __size_overflow(3);
++static unsigned long
+ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
+ {
        int d0, d1;
        __asm__ __volatile__(
                       "        .align 2,0x90\n"
@@ -20964,7 +23184,7 @@ index e218d5d..35679b4 100644
                       "        movl %%eax, 56(%3)\n"
                       "        movl %%edx, 60(%3)\n"
                       "        addl $-64, %0\n"
-@@ -385,9 +498,9 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
+@@ -298,9 +413,9 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
                       "        shrl  $2, %0\n"
                       "        andl $3, %%eax\n"
                       "        cld\n"
@@ -20976,7 +23196,15 @@ index e218d5d..35679b4 100644
                       "8:\n"
                       ".section .fixup,\"ax\"\n"
                       "9:      lea 0(%%eax,%0,4),%0\n"
-@@ -440,41 +553,41 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
+@@ -347,47 +462,49 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
+  */
+ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
++                              const void __user *from, unsigned long size) __size_overflow(3);
++static unsigned long __copy_user_zeroing_intel_nocache(void *to,
+                               const void __user *from, unsigned long size)
+ {
+       int d0, d1;
  
        __asm__ __volatile__(
               "        .align 2,0x90\n"
@@ -21036,7 +23264,7 @@ index e218d5d..35679b4 100644
               "        movnti %%eax, 56(%3)\n"
               "        movnti %%edx, 60(%3)\n"
               "        addl $-64, %0\n"
-@@ -487,9 +600,9 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
+@@ -400,9 +517,9 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
               "        shrl  $2, %0\n"
               "        andl $3, %%eax\n"
               "        cld\n"
@@ -21048,7 +23276,15 @@ index e218d5d..35679b4 100644
               "8:\n"
               ".section .fixup,\"ax\"\n"
               "9:      lea 0(%%eax,%0,4),%0\n"
-@@ -537,41 +650,41 @@ static unsigned long __copy_user_intel_nocache(void *to,
+@@ -444,47 +561,49 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
+ }
+ static unsigned long __copy_user_intel_nocache(void *to,
++                              const void __user *from, unsigned long size) __size_overflow(3);
++static unsigned long __copy_user_intel_nocache(void *to,
+                               const void __user *from, unsigned long size)
+ {
+       int d0, d1;
  
        __asm__ __volatile__(
               "        .align 2,0x90\n"
@@ -21108,7 +23344,7 @@ index e218d5d..35679b4 100644
               "        movnti %%eax, 56(%3)\n"
               "        movnti %%edx, 60(%3)\n"
               "        addl $-64, %0\n"
-@@ -584,9 +697,9 @@ static unsigned long __copy_user_intel_nocache(void *to,
+@@ -497,9 +616,9 @@ static unsigned long __copy_user_intel_nocache(void *to,
               "        shrl  $2, %0\n"
               "        andl $3, %%eax\n"
               "        cld\n"
@@ -21120,7 +23356,7 @@ index e218d5d..35679b4 100644
               "8:\n"
               ".section .fixup,\"ax\"\n"
               "9:      lea 0(%%eax,%0,4),%0\n"
-@@ -629,32 +742,36 @@ static unsigned long __copy_user_intel_nocache(void *to,
+@@ -542,32 +661,36 @@ static unsigned long __copy_user_intel_nocache(void *to,
   */
  unsigned long __copy_user_zeroing_intel(void *to, const void __user *from,
                                        unsigned long size);
@@ -21162,7 +23398,7 @@ index e218d5d..35679b4 100644
                ".section .fixup,\"ax\"\n"                              \
                "5:     addl %3,%0\n"                                   \
                "       jmp 2b\n"                                       \
-@@ -682,14 +799,14 @@ do {                                                                     \
+@@ -595,14 +718,14 @@ do {                                                                     \
                "       negl %0\n"                                      \
                "       andl $7,%0\n"                                   \
                "       subl %0,%3\n"                                   \
@@ -21180,7 +23416,7 @@ index e218d5d..35679b4 100644
                "2:\n"                                                  \
                ".section .fixup,\"ax\"\n"                              \
                "5:     addl %3,%0\n"                                   \
-@@ -775,9 +892,9 @@ survive:
+@@ -688,9 +811,9 @@ survive:
        }
  #endif
        if (movsl_is_ok(to, from, n))
@@ -21192,7 +23428,7 @@ index e218d5d..35679b4 100644
        return n;
  }
  EXPORT_SYMBOL(__copy_to_user_ll);
-@@ -797,10 +914,9 @@ unsigned long __copy_from_user_ll_nozero(void *to, const void __user *from,
+@@ -710,10 +833,9 @@ unsigned long __copy_from_user_ll_nozero(void *to, const void __user *from,
                                         unsigned long n)
  {
        if (movsl_is_ok(to, from, n))
@@ -21205,7 +23441,7 @@ index e218d5d..35679b4 100644
        return n;
  }
  EXPORT_SYMBOL(__copy_from_user_ll_nozero);
-@@ -827,65 +943,50 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr
+@@ -740,65 +862,50 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr
        if (n > 64 && cpu_has_xmm2)
                n = __copy_user_intel_nocache(to, from, n);
        else
@@ -21308,23 +23544,10 @@ index e218d5d..35679b4 100644
 +EXPORT_SYMBOL(set_fs);
 +#endif
 diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
-index b7c2849..8633ad8 100644
+index 0d0326f..6a6155b 100644
 --- a/arch/x86/lib/usercopy_64.c
 +++ b/arch/x86/lib/usercopy_64.c
-@@ -42,6 +42,12 @@ long
- __strncpy_from_user(char *dst, const char __user *src, long count)
- {
-       long res;
-+
-+#ifdef CONFIG_PAX_MEMORY_UDEREF
-+      if ((unsigned long)src < PAX_USER_SHADOW_BASE)
-+              src += PAX_USER_SHADOW_BASE;
-+#endif
-+
-       __do_strncpy_from_user(dst, src, count, res);
-       return res;
- }
-@@ -65,6 +71,12 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
+@@ -16,6 +16,12 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
  {
        long __d0;
        might_fault();
@@ -21337,7 +23560,7 @@ index b7c2849..8633ad8 100644
        /* no memory constraint because it doesn't change any memory gcc knows
           about */
        asm volatile(
-@@ -149,12 +161,20 @@ long strlen_user(const char __user *s)
+@@ -100,12 +106,20 @@ long strlen_user(const char __user *s)
  }
  EXPORT_SYMBOL(strlen_user);
  
@@ -21363,7 +23586,7 @@ index b7c2849..8633ad8 100644
  }
  EXPORT_SYMBOL(copy_in_user);
  
-@@ -164,7 +184,7 @@ EXPORT_SYMBOL(copy_in_user);
+@@ -115,7 +129,7 @@ EXPORT_SYMBOL(copy_in_user);
   * it is not necessary to optimize tail handling.
   */
  unsigned long
@@ -21372,8 +23595,24 @@ index b7c2849..8633ad8 100644
  {
        char c;
        unsigned zero_len;
+@@ -132,3 +146,15 @@ copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest)
+                       break;
+       return len;
+ }
++
++void copy_from_user_overflow(void)
++{
++      WARN(1, "Buffer overflow detected!\n");
++}
++EXPORT_SYMBOL(copy_from_user_overflow);
++
++void copy_to_user_overflow(void)
++{
++      WARN(1, "Buffer overflow detected!\n");
++}
++EXPORT_SYMBOL(copy_to_user_overflow);
 diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
-index d0474ad..36e9257 100644
+index 1fb85db..8b3540b 100644
 --- a/arch/x86/mm/extable.c
 +++ b/arch/x86/mm/extable.c
 @@ -8,7 +8,7 @@ int fixup_exception(struct pt_regs *regs)
@@ -21386,7 +23625,7 @@ index d0474ad..36e9257 100644
                extern u32 pnp_bios_is_utter_crap;
                pnp_bios_is_utter_crap = 1;
 diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
-index 0d17c8c..4f4764f 100644
+index 3ecfd1a..304d554 100644
 --- a/arch/x86/mm/fault.c
 +++ b/arch/x86/mm/fault.c
 @@ -13,11 +13,18 @@
@@ -21399,7 +23638,7 @@ index 0d17c8c..4f4764f 100644
  #include <asm/traps.h>                        /* dotraplinkage, ...           */
  #include <asm/pgalloc.h>              /* pgd_*(), ...                 */
  #include <asm/kmemcheck.h>            /* kmemcheck_*(), ...           */
- #include <asm/vsyscall.h>
+ #include <asm/fixmap.h>                       /* VSYSCALL_START               */
 +#include <asm/tlbflush.h>
 +
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
@@ -21490,7 +23729,7 @@ index 0d17c8c..4f4764f 100644
                spin_lock(&pgd_lock);
 +
 +#ifdef CONFIG_PAX_PER_CPU_PGD
-+              for (cpu = 0; cpu < NR_CPUS; ++cpu) {
++              for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
 +                      pgd_t *pgd = get_cpu_pgd(cpu);
 +                      pmd_t *ret;
 +#else
@@ -21541,7 +23780,7 @@ index 0d17c8c..4f4764f 100644
        pgd_ref = pgd_offset_k(address);
        if (pgd_none(*pgd_ref))
                return -1;
-@@ -534,7 +604,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address)
+@@ -540,7 +610,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address)
  static int is_errata100(struct pt_regs *regs, unsigned long address)
  {
  #ifdef CONFIG_X86_64
@@ -21550,7 +23789,7 @@ index 0d17c8c..4f4764f 100644
                return 1;
  #endif
        return 0;
-@@ -561,7 +631,7 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
+@@ -567,7 +637,7 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
  }
  
  static const char nx_warning[] = KERN_CRIT
@@ -21559,7 +23798,7 @@ index 0d17c8c..4f4764f 100644
  
  static void
  show_fault_oops(struct pt_regs *regs, unsigned long error_code,
-@@ -570,15 +640,26 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
+@@ -576,15 +646,26 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
        if (!oops_may_print())
                return;
  
@@ -21588,7 +23827,7 @@ index 0d17c8c..4f4764f 100644
        printk(KERN_ALERT "BUG: unable to handle kernel ");
        if (address < PAGE_SIZE)
                printk(KERN_CONT "NULL pointer dereference");
-@@ -733,6 +814,21 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
+@@ -748,6 +829,21 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
                }
  #endif
  
@@ -21610,7 +23849,7 @@ index 0d17c8c..4f4764f 100644
                if (unlikely(show_unhandled_signals))
                        show_signal_msg(regs, error_code, address, tsk);
  
-@@ -829,7 +925,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
+@@ -844,7 +940,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
        if (fault & (VM_FAULT_HWPOISON|VM_FAULT_HWPOISON_LARGE)) {
                printk(KERN_ERR
        "MCE: Killing %s:%d due to hardware memory corruption fault at %lx\n",
@@ -21619,7 +23858,7 @@ index 0d17c8c..4f4764f 100644
                code = BUS_MCEERR_AR;
        }
  #endif
-@@ -884,6 +980,99 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
+@@ -900,6 +996,99 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
        return 1;
  }
  
@@ -21719,7 +23958,7 @@ index 0d17c8c..4f4764f 100644
  /*
   * Handle a spurious fault caused by a stale TLB entry.
   *
-@@ -956,6 +1145,9 @@ int show_unhandled_signals = 1;
+@@ -972,6 +1161,9 @@ int show_unhandled_signals = 1;
  static inline int
  access_error(unsigned long error_code, struct vm_area_struct *vma)
  {
@@ -21729,7 +23968,7 @@ index 0d17c8c..4f4764f 100644
        if (error_code & PF_WRITE) {
                /* write, present and write, not present: */
                if (unlikely(!(vma->vm_flags & VM_WRITE)))
-@@ -989,18 +1181,32 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
+@@ -1005,18 +1197,33 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
  {
        struct vm_area_struct *vma;
        struct task_struct *tsk;
@@ -21750,6 +23989,7 @@ index 0d17c8c..4f4764f 100644
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
 +      if (!user_mode(regs) && address < 2 * PAX_USER_SHADOW_BASE) {
 +              if (!search_exception_tables(regs->ip)) {
++                      printk(KERN_ERR "PAX: please report this to pageexec@freemail.hu\n");
 +                      bad_area_nosemaphore(regs, error_code, address);
 +                      return;
 +              }
@@ -21767,7 +24007,7 @@ index 0d17c8c..4f4764f 100644
  
        /*
         * Detect and handle instructions that would cause a page fault for
-@@ -1061,7 +1267,7 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
+@@ -1077,7 +1284,7 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
         * User-mode registers count as a user access even for any
         * potential system fault or CPU buglet:
         */
@@ -21776,7 +24016,7 @@ index 0d17c8c..4f4764f 100644
                local_irq_enable();
                error_code |= PF_USER;
        } else {
-@@ -1116,6 +1322,11 @@ retry:
+@@ -1132,6 +1339,11 @@ retry:
                might_sleep();
        }
  
@@ -21788,7 +24028,7 @@ index 0d17c8c..4f4764f 100644
        vma = find_vma(mm, address);
        if (unlikely(!vma)) {
                bad_area(regs, error_code, address);
-@@ -1127,18 +1338,24 @@ retry:
+@@ -1143,18 +1355,24 @@ retry:
                bad_area(regs, error_code, address);
                return;
        }
@@ -21824,7 +24064,7 @@ index 0d17c8c..4f4764f 100644
        if (unlikely(expand_stack(vma, address))) {
                bad_area(regs, error_code, address);
                return;
-@@ -1193,3 +1410,240 @@ good_area:
+@@ -1209,3 +1427,292 @@ good_area:
  
        up_read(&mm->mmap_sem);
  }
@@ -21865,6 +24105,30 @@ index 0d17c8c..4f4764f 100644
 +{
 +      int err;
 +
++      do { /* PaX: libffi trampoline emulation */
++              unsigned char mov, jmp;
++              unsigned int addr1, addr2;
++
++#ifdef CONFIG_X86_64
++              if ((regs->ip + 9) >> 32)
++                      break;
++#endif
++
++              err = get_user(mov, (unsigned char __user *)regs->ip);
++              err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
++              err |= get_user(jmp, (unsigned char __user *)(regs->ip + 5));
++              err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
++
++              if (err)
++                      break;
++
++              if (mov == 0xB8 && jmp == 0xE9) {
++                      regs->ax = addr1;
++                      regs->ip = (unsigned int)(regs->ip + addr2 + 10);
++                      return 2;
++              }
++      } while (0);
++
 +      do { /* PaX: gcc trampoline emulation #1 */
 +              unsigned char mov1, mov2;
 +              unsigned short jmp;
@@ -21924,6 +24188,34 @@ index 0d17c8c..4f4764f 100644
 +{
 +      int err;
 +
++      do { /* PaX: libffi trampoline emulation */
++              unsigned short mov1, mov2, jmp1;
++              unsigned char stcclc, jmp2;
++              unsigned long addr1, addr2;
++
++              err = get_user(mov1, (unsigned short __user *)regs->ip);
++              err |= get_user(addr1, (unsigned long __user *)(regs->ip + 2));
++              err |= get_user(mov2, (unsigned short __user *)(regs->ip + 10));
++              err |= get_user(addr2, (unsigned long __user *)(regs->ip + 12));
++              err |= get_user(stcclc, (unsigned char __user *)(regs->ip + 20));
++              err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 21));
++              err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 23));
++
++              if (err)
++                      break;
++
++              if (mov1 == 0xBB49 && mov2 == 0xBA49 && (stcclc == 0xF8 || stcclc == 0xF9) && jmp1 == 0xFF49 && jmp2 == 0xE3) {
++                      regs->r11 = addr1;
++                      regs->r10 = addr2;
++                      if (stcclc == 0xF8)
++                              regs->flags &= ~X86_EFLAGS_CF;
++                      else
++                              regs->flags |= X86_EFLAGS_CF;
++                      regs->ip = addr1;
++                      return 2;
++              }
++      } while (0);
++
 +      do { /* PaX: gcc trampoline emulation #1 */
 +              unsigned short mov1, mov2, jmp1;
 +              unsigned char jmp2;
@@ -22066,19 +24358,10 @@ index 0d17c8c..4f4764f 100644
 +      return ret ? -EFAULT : 0;
 +}
 diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c
-index ea30585..7d26398 100644
+index dd74e46..7d26398 100644
 --- a/arch/x86/mm/gup.c
 +++ b/arch/x86/mm/gup.c
-@@ -201,6 +201,8 @@ static noinline int gup_huge_pud(pud_t pud, unsigned long addr,
-       do {
-               VM_BUG_ON(compound_head(page) != head);
-               pages[*nr] = page;
-+              if (PageTail(page))
-+                      get_huge_page_tail(page);
-               (*nr)++;
-               page++;
-               refs++;
-@@ -253,7 +255,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
+@@ -255,7 +255,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
        addr = start;
        len = (unsigned long) nr_pages << PAGE_SHIFT;
        end = start + len;
@@ -22088,7 +24371,7 @@ index ea30585..7d26398 100644
                return 0;
  
 diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
-index f4f29b1..5cac4fb 100644
+index 6f31ee5..8ee4164 100644
 --- a/arch/x86/mm/highmem_32.c
 +++ b/arch/x86/mm/highmem_32.c
 @@ -44,7 +44,11 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
@@ -22104,7 +24387,7 @@ index f4f29b1..5cac4fb 100644
  
        return (void *)vaddr;
 diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
-index f581a18..29efd37 100644
+index f6679a7..8f795a3 100644
 --- a/arch/x86/mm/hugetlbpage.c
 +++ b/arch/x86/mm/hugetlbpage.c
 @@ -266,13 +266,20 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
@@ -22167,66 +24450,51 @@ index f581a18..29efd37 100644
  }
  
  static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
-@@ -308,10 +316,9 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
- {
-       struct hstate *h = hstate_file(file);
+@@ -310,9 +318,8 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
        struct mm_struct *mm = current->mm;
--      struct vm_area_struct *vma, *prev_vma;
--      unsigned long base = mm->mmap_base, addr = addr0;
-+      struct vm_area_struct *vma;
-+      unsigned long base = mm->mmap_base, addr;
+       struct vm_area_struct *vma;
+       unsigned long base = mm->mmap_base;
+-      unsigned long addr = addr0;
++      unsigned long addr;
        unsigned long largest_hole = mm->cached_hole_size;
--      int first_time = 1;
+-      unsigned long start_addr;
  
        /* don't allow allocations above current base */
        if (mm->free_area_cache > base)
-@@ -321,64 +328,63 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
+@@ -322,16 +329,15 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
                largest_hole = 0;
                mm->free_area_cache  = base;
        }
 -try_again:
-+
+-      start_addr = mm->free_area_cache;
        /* make sure it can fit in the remaining address space */
        if (mm->free_area_cache < len)
                goto fail;
  
        /* either no address requested or can't fit in requested address hole */
 -      addr = (mm->free_area_cache - len) & huge_page_mask(h);
-+      addr = (mm->free_area_cache - len);
++      addr = mm->free_area_cache - len;
        do {
 +              addr &= huge_page_mask(h);
-+              vma = find_vma(mm, addr);
                /*
                 * Lookup failure means no vma is above this address,
                 * i.e. return with success:
--               */
--              if (!(vma = find_vma_prev(mm, addr, &prev_vma)))
--                      return addr;
--
--              /*
-                * new region fits between prev_vma->vm_end and
-                * vma->vm_start, use it:
-                */
--              if (addr + len <= vma->vm_start &&
--                          (!prev_vma || (addr >= prev_vma->vm_end))) {
+@@ -340,10 +346,10 @@ try_again:
+               if (!vma)
+                       return addr;
+-              if (addr + len <= vma->vm_start) {
 +              if (check_heap_stack_gap(vma, addr, len)) {
                        /* remember the address as a hint for next time */
 -                      mm->cached_hole_size = largest_hole;
 -                      return (mm->free_area_cache = addr);
--              } else {
--                      /* pull free_area_cache down to the first hole */
--                      if (mm->free_area_cache == vma->vm_end) {
--                              mm->free_area_cache = vma->vm_start;
--                              mm->cached_hole_size = largest_hole;
--                      }
 +                      mm->cached_hole_size = largest_hole;
 +                      return (mm->free_area_cache = addr);
-+              }
-+              /* pull free_area_cache down to the first hole */
-+              if (mm->free_area_cache == vma->vm_end) {
-+                      mm->free_area_cache = vma->vm_start;
-+                      mm->cached_hole_size = largest_hole;
-               }
+               } else if (mm->free_area_cache == vma->vm_end) {
+                       /* pull free_area_cache down to the first hole */
+                       mm->free_area_cache = vma->vm_start;
+@@ -352,29 +358,34 @@ try_again:
  
                /* remember the largest hole we saw so far */
                if (addr + largest_hole < vma->vm_start)
@@ -22244,10 +24512,9 @@ index f581a18..29efd37 100644
 -       * if hint left us with no space for the requested
 -       * mapping then try again:
 -       */
--      if (first_time) {
+-      if (start_addr != base) {
 -              mm->free_area_cache = base;
 -              largest_hole = 0;
--              first_time = 0;
 -              goto try_again;
 -      }
 -      /*
@@ -22275,7 +24542,7 @@ index f581a18..29efd37 100644
        mm->cached_hole_size = ~0UL;
        addr = hugetlb_get_unmapped_area_bottomup(file, addr0,
                        len, pgoff, flags);
-@@ -386,6 +392,7 @@ fail:
+@@ -382,6 +393,7 @@ fail:
        /*
         * Restore the topdown base:
         */
@@ -22283,7 +24550,7 @@ index f581a18..29efd37 100644
        mm->free_area_cache = base;
        mm->cached_hole_size = ~0UL;
  
-@@ -399,10 +406,19 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
+@@ -395,10 +407,19 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
        struct hstate *h = hstate_file(file);
        struct mm_struct *mm = current->mm;
        struct vm_area_struct *vma;
@@ -22304,7 +24571,7 @@ index f581a18..29efd37 100644
                return -ENOMEM;
  
        if (flags & MAP_FIXED) {
-@@ -414,8 +430,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
+@@ -410,8 +431,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
        if (addr) {
                addr = ALIGN(addr, huge_page_size(h));
                vma = find_vma(mm, addr);
@@ -22315,10 +24582,19 @@ index f581a18..29efd37 100644
        }
        if (mm->get_unmapped_area == arch_get_unmapped_area)
 diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
-index 87488b9..7129f32 100644
+index 4f0cec7..00976ce 100644
 --- a/arch/x86/mm/init.c
 +++ b/arch/x86/mm/init.c
-@@ -31,7 +31,7 @@ int direct_gbpages
+@@ -16,6 +16,8 @@
+ #include <asm/tlb.h>
+ #include <asm/proto.h>
+ #include <asm/dma.h>          /* for MAX_DMA_PFN */
++#include <asm/desc.h>
++#include <asm/bios_ebda.h>
+ unsigned long __initdata pgt_buf_start;
+ unsigned long __meminitdata pgt_buf_end;
+@@ -32,7 +34,7 @@ int direct_gbpages
  static void __init find_early_table_space(unsigned long end, int use_pse,
                                          int use_gbpages)
  {
@@ -22327,8 +24603,16 @@ index 87488b9..7129f32 100644
        phys_addr_t base;
  
        puds = (end + PUD_SIZE - 1) >> PUD_SHIFT;
-@@ -312,8 +312,29 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
+@@ -311,10 +313,37 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
+  * Access has to be given to non-kernel-ram areas as well, these contain the PCI
+  * mmio resources as well as potential bios/acpi data regions.
   */
++
++#ifdef CONFIG_GRKERNSEC_KMEM
++static unsigned int ebda_start __read_only;
++static unsigned int ebda_end __read_only;
++#endif
++
  int devmem_is_allowed(unsigned long pagenr)
  {
 +#ifdef CONFIG_GRKERNSEC_KMEM
@@ -22336,7 +24620,7 @@ index 87488b9..7129f32 100644
 +      if (!pagenr)
 +              return 1;
 +      /* allow EBDA */
-+      if ((0x9f000 >> PAGE_SHIFT) == pagenr)
++      if (pagenr >= ebda_start && pagenr < ebda_end)
 +              return 1;
 +#else
 +      if (!pagenr)
@@ -22358,23 +24642,58 @@ index 87488b9..7129f32 100644
        if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
                return 0;
        if (!page_is_ram(pagenr))
-@@ -372,6 +393,86 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
+@@ -371,8 +400,116 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
+ #endif
+ }
  
++#ifdef CONFIG_GRKERNSEC_KMEM
++static inline void gr_init_ebda(void)
++{
++      unsigned int ebda_addr;
++      unsigned int ebda_size = 0;
++
++      ebda_addr = get_bios_ebda();
++      if (ebda_addr) {
++              ebda_size = *(unsigned char *)phys_to_virt(ebda_addr);
++              ebda_size <<= 10;
++      }
++      if (ebda_addr && ebda_size) {
++              ebda_start = ebda_addr >> PAGE_SHIFT;
++              ebda_end = min((unsigned int)PAGE_ALIGN(ebda_addr + ebda_size), (unsigned int)0xa0000) >> PAGE_SHIFT;
++      } else {
++              ebda_start = 0x9f000 >> PAGE_SHIFT;
++              ebda_end = 0xa0000 >> PAGE_SHIFT;
++      }
++}
++#else
++static inline void gr_init_ebda(void) { }
++#endif
++
  void free_initmem(void)
  {
-+
 +#ifdef CONFIG_PAX_KERNEXEC
 +#ifdef CONFIG_X86_32
 +      /* PaX: limit KERNEL_CS to actual size */
 +      unsigned long addr, limit;
 +      struct desc_struct d;
 +      int cpu;
++#else
++      pgd_t *pgd;
++      pud_t *pud;
++      pmd_t *pmd;
++      unsigned long addr, end;
++#endif
++#endif
++
++      gr_init_ebda();
 +
++#ifdef CONFIG_PAX_KERNEXEC
++#ifdef CONFIG_X86_32
 +      limit = paravirt_enabled() ? ktva_ktla(0xffffffff) : (unsigned long)&_etext;
 +      limit = (limit - 1UL) >> PAGE_SHIFT;
 +
 +      memset(__LOAD_PHYSICAL_ADDR + PAGE_OFFSET, POISON_FREE_INITMEM, PAGE_SIZE);
-+      for (cpu = 0; cpu < NR_CPUS; cpu++) {
++      for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
 +              pack_descriptor(&d, get_desc_base(&get_cpu_gdt_table(cpu)[GDT_ENTRY_KERNEL_CS]), limit, 0x9B, 0xC);
 +              write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_KERNEL_CS, &d, DESCTYPE_S);
 +      }
@@ -22408,11 +24727,6 @@ index 87488b9..7129f32 100644
 +#endif
 +
 +#else
-+      pgd_t *pgd;
-+      pud_t *pud;
-+      pmd_t *pmd;
-+      unsigned long addr, end;
-+
 +      /* PaX: make kernel code/rodata read-only, rest non-executable */
 +      for (addr = __START_KERNEL_map; addr < __START_KERNEL_map + KERNEL_IMAGE_SIZE; addr += PMD_SIZE) {
 +              pgd = pgd_offset_k(addr);
@@ -22446,10 +24760,10 @@ index 87488b9..7129f32 100644
                        (unsigned long)(&__init_begin),
                        (unsigned long)(&__init_end));
 diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
-index 29f7c6d..b46b35b 100644
+index 575d86f..4987469 100644
 --- a/arch/x86/mm/init_32.c
 +++ b/arch/x86/mm/init_32.c
-@@ -74,36 +74,6 @@ static __init void *alloc_low_page(void)
+@@ -73,36 +73,6 @@ static __init void *alloc_low_page(void)
  }
  
  /*
@@ -22486,7 +24800,7 @@ index 29f7c6d..b46b35b 100644
   * Create a page table and place a pointer to it in a middle page
   * directory entry:
   */
-@@ -123,13 +93,28 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
+@@ -122,13 +92,28 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
                        page_table = (pte_t *)alloc_low_page();
  
                paravirt_alloc_pte(&init_mm, __pa(page_table) >> PAGE_SHIFT);
@@ -22515,7 +24829,7 @@ index 29f7c6d..b46b35b 100644
  pmd_t * __init populate_extra_pmd(unsigned long vaddr)
  {
        int pgd_idx = pgd_index(vaddr);
-@@ -203,6 +188,7 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
+@@ -202,6 +187,7 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
        int pgd_idx, pmd_idx;
        unsigned long vaddr;
        pgd_t *pgd;
@@ -22523,7 +24837,7 @@ index 29f7c6d..b46b35b 100644
        pmd_t *pmd;
        pte_t *pte = NULL;
  
-@@ -212,8 +198,13 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
+@@ -211,8 +197,13 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
        pgd = pgd_base + pgd_idx;
  
        for ( ; (pgd_idx < PTRS_PER_PGD) && (vaddr != end); pgd++, pgd_idx++) {
@@ -22539,7 +24853,7 @@ index 29f7c6d..b46b35b 100644
                for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end);
                                                        pmd++, pmd_idx++) {
                        pte = page_table_kmap_check(one_page_table_init(pmd),
-@@ -225,11 +216,20 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
+@@ -224,11 +215,20 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
        }
  }
  
@@ -22564,7 +24878,7 @@ index 29f7c6d..b46b35b 100644
  }
  
  /*
-@@ -246,9 +246,10 @@ kernel_physical_mapping_init(unsigned long start,
+@@ -245,9 +245,10 @@ kernel_physical_mapping_init(unsigned long start,
        unsigned long last_map_addr = end;
        unsigned long start_pfn, end_pfn;
        pgd_t *pgd_base = swapper_pg_dir;
@@ -22576,7 +24890,7 @@ index 29f7c6d..b46b35b 100644
        pmd_t *pmd;
        pte_t *pte;
        unsigned pages_2m, pages_4k;
-@@ -281,8 +282,13 @@ repeat:
+@@ -280,8 +281,13 @@ repeat:
        pfn = start_pfn;
        pgd_idx = pgd_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET);
        pgd = pgd_base + pgd_idx;
@@ -22592,7 +24906,7 @@ index 29f7c6d..b46b35b 100644
  
                if (pfn >= end_pfn)
                        continue;
-@@ -294,14 +300,13 @@ repeat:
+@@ -293,14 +299,13 @@ repeat:
  #endif
                for (; pmd_idx < PTRS_PER_PMD && pfn < end_pfn;
                     pmd++, pmd_idx++) {
@@ -22608,7 +24922,7 @@ index 29f7c6d..b46b35b 100644
                                pgprot_t prot = PAGE_KERNEL_LARGE;
                                /*
                                 * first pass will use the same initial
-@@ -311,11 +316,7 @@ repeat:
+@@ -310,11 +315,7 @@ repeat:
                                        __pgprot(PTE_IDENT_ATTR |
                                                 _PAGE_PSE);
  
@@ -22621,7 +24935,7 @@ index 29f7c6d..b46b35b 100644
                                        prot = PAGE_KERNEL_LARGE_EXEC;
  
                                pages_2m++;
-@@ -332,7 +333,7 @@ repeat:
+@@ -331,7 +332,7 @@ repeat:
                        pte_ofs = pte_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET);
                        pte += pte_ofs;
                        for (; pte_ofs < PTRS_PER_PTE && pfn < end_pfn;
@@ -22630,7 +24944,7 @@ index 29f7c6d..b46b35b 100644
                                pgprot_t prot = PAGE_KERNEL;
                                /*
                                 * first pass will use the same initial
-@@ -340,7 +341,7 @@ repeat:
+@@ -339,7 +340,7 @@ repeat:
                                 */
                                pgprot_t init_prot = __pgprot(PTE_IDENT_ATTR);
  
@@ -22639,7 +24953,7 @@ index 29f7c6d..b46b35b 100644
                                        prot = PAGE_KERNEL_EXEC;
  
                                pages_4k++;
-@@ -472,7 +473,7 @@ void __init native_pagetable_setup_start(pgd_t *base)
+@@ -465,7 +466,7 @@ void __init native_pagetable_setup_start(pgd_t *base)
  
                pud = pud_offset(pgd, va);
                pmd = pmd_offset(pud, va);
@@ -22648,7 +24962,7 @@ index 29f7c6d..b46b35b 100644
                        break;
  
                pte = pte_offset_kernel(pmd, va);
-@@ -524,12 +525,10 @@ void __init early_ioremap_page_table_range_init(void)
+@@ -517,12 +518,10 @@ void __init early_ioremap_page_table_range_init(void)
  
  static void __init pagetable_init(void)
  {
@@ -22663,7 +24977,7 @@ index 29f7c6d..b46b35b 100644
  EXPORT_SYMBOL_GPL(__supported_pte_mask);
  
  /* user-defined highmem size */
-@@ -757,6 +756,12 @@ void __init mem_init(void)
+@@ -734,6 +733,12 @@ void __init mem_init(void)
  
        pci_iommu_alloc();
  
@@ -22676,8 +24990,8 @@ index 29f7c6d..b46b35b 100644
  #ifdef CONFIG_FLATMEM
        BUG_ON(!mem_map);
  #endif
-@@ -774,7 +779,7 @@ void __init mem_init(void)
-       set_highmem_pages_init();
+@@ -760,7 +765,7 @@ void __init mem_init(void)
+                       reservedpages++;
  
        codesize =  (unsigned long) &_etext - (unsigned long) &_text;
 -      datasize =  (unsigned long) &_edata - (unsigned long) &_etext;
@@ -22685,7 +24999,7 @@ index 29f7c6d..b46b35b 100644
        initsize =  (unsigned long) &__init_end - (unsigned long) &__init_begin;
  
        printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, "
-@@ -815,10 +820,10 @@ void __init mem_init(void)
+@@ -801,10 +806,10 @@ void __init mem_init(void)
                ((unsigned long)&__init_end -
                 (unsigned long)&__init_begin) >> 10,
  
@@ -22699,7 +25013,7 @@ index 29f7c6d..b46b35b 100644
                ((unsigned long)&_etext - (unsigned long)&_text) >> 10);
  
        /*
-@@ -896,6 +901,7 @@ void set_kernel_text_rw(void)
+@@ -882,6 +887,7 @@ void set_kernel_text_rw(void)
        if (!kernel_set_to_readonly)
                return;
  
@@ -22707,7 +25021,7 @@ index 29f7c6d..b46b35b 100644
        pr_debug("Set kernel text: %lx - %lx for read write\n",
                 start, start+size);
  
-@@ -910,6 +916,7 @@ void set_kernel_text_ro(void)
+@@ -896,6 +902,7 @@ void set_kernel_text_ro(void)
        if (!kernel_set_to_readonly)
                return;
  
@@ -22715,7 +25029,7 @@ index 29f7c6d..b46b35b 100644
        pr_debug("Set kernel text: %lx - %lx for read only\n",
                 start, start+size);
  
-@@ -938,6 +945,7 @@ void mark_rodata_ro(void)
+@@ -924,6 +931,7 @@ void mark_rodata_ro(void)
        unsigned long start = PFN_ALIGN(_text);
        unsigned long size = PFN_ALIGN(_etext) - start;
  
@@ -22724,10 +25038,10 @@ index 29f7c6d..b46b35b 100644
        printk(KERN_INFO "Write protecting the kernel text: %luk\n",
                size >> 10);
 diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
-index bbaaa00..16dffad 100644
+index fc18be0..e539653 100644
 --- a/arch/x86/mm/init_64.c
 +++ b/arch/x86/mm/init_64.c
-@@ -75,7 +75,7 @@ early_param("gbpages", parse_direct_gbpages_on);
+@@ -74,7 +74,7 @@ early_param("gbpages", parse_direct_gbpages_on);
   * around without checking the pgd every time.
   */
  
@@ -22736,7 +25050,7 @@ index bbaaa00..16dffad 100644
  EXPORT_SYMBOL_GPL(__supported_pte_mask);
  
  int force_personality32;
-@@ -108,12 +108,22 @@ void sync_global_pgds(unsigned long start, unsigned long end)
+@@ -107,12 +107,22 @@ void sync_global_pgds(unsigned long start, unsigned long end)
  
        for (address = start; address <= end; address += PGDIR_SIZE) {
                const pgd_t *pgd_ref = pgd_offset_k(address);
@@ -22753,13 +25067,13 @@ index bbaaa00..16dffad 100644
                spin_lock(&pgd_lock);
 +
 +#ifdef CONFIG_PAX_PER_CPU_PGD
-+              for (cpu = 0; cpu < NR_CPUS; ++cpu) {
++              for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
 +                      pgd_t *pgd = pgd_offset_cpu(cpu, address);
 +#else
                list_for_each_entry(page, &pgd_list, lru) {
                        pgd_t *pgd;
                        spinlock_t *pgt_lock;
-@@ -122,6 +132,7 @@ void sync_global_pgds(unsigned long start, unsigned long end)
+@@ -121,6 +131,7 @@ void sync_global_pgds(unsigned long start, unsigned long end)
                        /* the pgt_lock only for Xen */
                        pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
                        spin_lock(pgt_lock);
@@ -22767,7 +25081,7 @@ index bbaaa00..16dffad 100644
  
                        if (pgd_none(*pgd))
                                set_pgd(pgd, *pgd_ref);
-@@ -129,7 +140,10 @@ void sync_global_pgds(unsigned long start, unsigned long end)
+@@ -128,7 +139,10 @@ void sync_global_pgds(unsigned long start, unsigned long end)
                                BUG_ON(pgd_page_vaddr(*pgd)
                                       != pgd_page_vaddr(*pgd_ref));
  
@@ -22778,7 +25092,25 @@ index bbaaa00..16dffad 100644
                }
                spin_unlock(&pgd_lock);
        }
-@@ -203,7 +217,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
+@@ -161,7 +175,7 @@ static pud_t *fill_pud(pgd_t *pgd, unsigned long vaddr)
+ {
+       if (pgd_none(*pgd)) {
+               pud_t *pud = (pud_t *)spp_getpage();
+-              pgd_populate(&init_mm, pgd, pud);
++              pgd_populate_kernel(&init_mm, pgd, pud);
+               if (pud != pud_offset(pgd, 0))
+                       printk(KERN_ERR "PAGETABLE BUG #00! %p <-> %p\n",
+                              pud, pud_offset(pgd, 0));
+@@ -173,7 +187,7 @@ static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr)
+ {
+       if (pud_none(*pud)) {
+               pmd_t *pmd = (pmd_t *) spp_getpage();
+-              pud_populate(&init_mm, pud, pmd);
++              pud_populate_kernel(&init_mm, pud, pmd);
+               if (pmd != pmd_offset(pud, 0))
+                       printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n",
+                              pmd, pmd_offset(pud, 0));
+@@ -202,7 +216,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
        pmd = fill_pmd(pud, vaddr);
        pte = fill_pte(pmd, vaddr);
  
@@ -22788,7 +25120,7 @@ index bbaaa00..16dffad 100644
  
        /*
         * It's enough to flush this one mapping.
-@@ -262,14 +278,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size,
+@@ -261,14 +277,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size,
                pgd = pgd_offset_k((unsigned long)__va(phys));
                if (pgd_none(*pgd)) {
                        pud = (pud_t *) spp_getpage();
@@ -22805,7 +25137,7 @@ index bbaaa00..16dffad 100644
                }
                pmd = pmd_offset(pud, phys);
                BUG_ON(!pmd_none(*pmd));
-@@ -330,7 +344,7 @@ static __ref void *alloc_low_page(unsigned long *phys)
+@@ -329,7 +343,7 @@ static __ref void *alloc_low_page(unsigned long *phys)
        if (pfn >= pgt_buf_top)
                panic("alloc_low_page: ran out of memory");
  
@@ -22814,7 +25146,7 @@ index bbaaa00..16dffad 100644
        clear_page(adr);
        *phys  = pfn * PAGE_SIZE;
        return adr;
-@@ -346,7 +360,7 @@ static __ref void *map_low_page(void *virt)
+@@ -345,7 +359,7 @@ static __ref void *map_low_page(void *virt)
  
        phys = __pa(virt);
        left = phys & (PAGE_SIZE - 1);
@@ -22823,7 +25155,25 @@ index bbaaa00..16dffad 100644
        adr = (void *)(((unsigned long)adr) | left);
  
        return adr;
-@@ -693,6 +707,12 @@ void __init mem_init(void)
+@@ -545,7 +559,7 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end,
+               unmap_low_page(pmd);
+               spin_lock(&init_mm.page_table_lock);
+-              pud_populate(&init_mm, pud, __va(pmd_phys));
++              pud_populate_kernel(&init_mm, pud, __va(pmd_phys));
+               spin_unlock(&init_mm.page_table_lock);
+       }
+       __flush_tlb_all();
+@@ -591,7 +605,7 @@ kernel_physical_mapping_init(unsigned long start,
+               unmap_low_page(pud);
+               spin_lock(&init_mm.page_table_lock);
+-              pgd_populate(&init_mm, pgd, __va(pud_phys));
++              pgd_populate_kernel(&init_mm, pgd, __va(pud_phys));
+               spin_unlock(&init_mm.page_table_lock);
+               pgd_changed = true;
+       }
+@@ -683,6 +697,12 @@ void __init mem_init(void)
  
        pci_iommu_alloc();
  
@@ -22836,7 +25186,7 @@ index bbaaa00..16dffad 100644
        /* clear_bss() already clear the empty_zero_page */
  
        reservedpages = 0;
-@@ -853,8 +873,8 @@ int kern_addr_valid(unsigned long addr)
+@@ -843,8 +863,8 @@ int kern_addr_valid(unsigned long addr)
  static struct vm_area_struct gate_vma = {
        .vm_start       = VSYSCALL_START,
        .vm_end         = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE),
@@ -22847,7 +25197,7 @@ index bbaaa00..16dffad 100644
  };
  
  struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
-@@ -888,7 +908,7 @@ int in_gate_area_no_mm(unsigned long addr)
+@@ -878,7 +898,7 @@ int in_gate_area_no_mm(unsigned long addr)
  
  const char *arch_vma_name(struct vm_area_struct *vma)
  {
@@ -22873,7 +25223,7 @@ index 7b179b4..6bd1777 100644
  
        return (void *)vaddr;
 diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
-index be1ef57..9680edc 100644
+index be1ef57..55f0160 100644
 --- a/arch/x86/mm/ioremap.c
 +++ b/arch/x86/mm/ioremap.c
 @@ -97,7 +97,7 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
@@ -22885,7 +25235,17 @@ index be1ef57..9680edc 100644
                        return NULL;
                WARN_ON_ONCE(is_ram);
        }
-@@ -344,7 +344,7 @@ static int __init early_ioremap_debug_setup(char *str)
+@@ -315,6 +315,9 @@ void *xlate_dev_mem_ptr(unsigned long phys)
+       /* If page is RAM, we can use __va. Otherwise ioremap and unmap. */
+       if (page_is_ram(start >> PAGE_SHIFT))
++#ifdef CONFIG_HIGHMEM
++      if ((start >> PAGE_SHIFT) < max_low_pfn)
++#endif
+               return __va(phys);
+       addr = (void __force *)ioremap_cache(start, PAGE_SIZE);
+@@ -344,7 +347,7 @@ static int __init early_ioremap_debug_setup(char *str)
  early_param("early_ioremap_debug", early_ioremap_debug_setup);
  
  static __initdata int after_paging_init;
@@ -22894,7 +25254,7 @@ index be1ef57..9680edc 100644
  
  static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)
  {
-@@ -381,8 +381,7 @@ void __init early_ioremap_init(void)
+@@ -381,8 +384,7 @@ void __init early_ioremap_init(void)
                slot_virt[i] = __fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i);
  
        pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
@@ -22921,19 +25281,19 @@ index d87dd6d..bf3fa66 100644
  
        pte = kmemcheck_pte_lookup(address);
 diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
-index 1dab519..60a7e5f 100644
+index 845df68..1d8d29f 100644
 --- a/arch/x86/mm/mmap.c
 +++ b/arch/x86/mm/mmap.c
-@@ -49,7 +49,7 @@ static unsigned int stack_maxrandom_size(void)
+@@ -52,7 +52,7 @@ static unsigned int stack_maxrandom_size(void)
   * Leave an at least ~128 MB hole with possible stack randomization.
   */
  #define MIN_GAP (128*1024*1024UL + stack_maxrandom_size())
 -#define MAX_GAP (TASK_SIZE/6*5)
 +#define MAX_GAP (pax_task_size/6*5)
  
- /*
-  * True on X86_32 or when emulating IA32 on X86_64
-@@ -94,27 +94,40 @@ static unsigned long mmap_rnd(void)
+ static int mmap_is_legacy(void)
+ {
+@@ -82,27 +82,40 @@ static unsigned long mmap_rnd(void)
        return rnd << PAGE_SHIFT;
  }
  
@@ -22979,7 +25339,7 @@ index 1dab519..60a7e5f 100644
                return TASK_UNMAPPED_BASE + mmap_rnd();
  }
  
-@@ -125,11 +138,23 @@ static unsigned long mmap_legacy_base(void)
+@@ -113,11 +126,23 @@ static unsigned long mmap_legacy_base(void)
  void arch_pick_mmap_layout(struct mm_struct *mm)
  {
        if (mmap_is_legacy()) {
@@ -23006,10 +25366,10 @@ index 1dab519..60a7e5f 100644
                mm->unmap_area = arch_unmap_area_topdown;
        }
 diff --git a/arch/x86/mm/mmio-mod.c b/arch/x86/mm/mmio-mod.c
-index 67421f3..8d6b107 100644
+index dc0b727..dc9d71a 100644
 --- a/arch/x86/mm/mmio-mod.c
 +++ b/arch/x86/mm/mmio-mod.c
-@@ -195,7 +195,7 @@ static void pre(struct kmmio_probe *p, struct pt_regs *regs,
+@@ -194,7 +194,7 @@ static void pre(struct kmmio_probe *p, struct pt_regs *regs,
                break;
        default:
                {
@@ -23018,7 +25378,7 @@ index 67421f3..8d6b107 100644
                        my_trace->opcode = MMIO_UNKNOWN_OP;
                        my_trace->width = 0;
                        my_trace->value = (*ip) << 16 | *(ip + 1) << 8 |
-@@ -235,7 +235,7 @@ static void post(struct kmmio_probe *p, unsigned long condition,
+@@ -234,7 +234,7 @@ static void post(struct kmmio_probe *p, unsigned long condition,
  static void ioremap_trace_core(resource_size_t offset, unsigned long size,
                                                        void __iomem *addr)
  {
@@ -23027,7 +25387,7 @@ index 67421f3..8d6b107 100644
        struct remap_trace *trace = kmalloc(sizeof(*trace), GFP_KERNEL);
        /* These are page-unaligned. */
        struct mmiotrace_map map = {
-@@ -259,7 +259,7 @@ static void ioremap_trace_core(resource_size_t offset, unsigned long size,
+@@ -258,7 +258,7 @@ static void ioremap_trace_core(resource_size_t offset, unsigned long size,
                        .private = trace
                },
                .phys = offset,
@@ -23050,7 +25410,7 @@ index b008656..773eac2 100644
  
  struct split_state {
 diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
-index f9e5267..6f6e27f 100644
+index e1ebde3..b1e1db38 100644
 --- a/arch/x86/mm/pageattr.c
 +++ b/arch/x86/mm/pageattr.c
 @@ -261,7 +261,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
@@ -23114,7 +25474,7 @@ index f9e5267..6f6e27f 100644
 +#endif
  
 +#ifdef CONFIG_PAX_PER_CPU_PGD
-+              for (cpu = 0; cpu < NR_CPUS; ++cpu) {
++              for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
 +                      pgd_t *pgd = get_cpu_pgd(cpu);
 +#else
                list_for_each_entry(page, &pgd_list, lru) {
@@ -23238,10 +25598,10 @@ index 9f0614d..92ae64a 100644
        p += get_opcode(p, &opcode);
        for (i = 0; i < ARRAY_SIZE(imm_wop); i++)
 diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
-index 8573b83..6372501 100644
+index 8573b83..4f3ed7e 100644
 --- a/arch/x86/mm/pgtable.c
 +++ b/arch/x86/mm/pgtable.c
-@@ -84,10 +84,52 @@ static inline void pgd_list_del(pgd_t *pgd)
+@@ -84,10 +84,64 @@ static inline void pgd_list_del(pgd_t *pgd)
        list_del(&page->lru);
  }
  
@@ -23250,24 +25610,36 @@ index 8573b83..6372501 100644
 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
 +pgdval_t clone_pgd_mask __read_only = ~_PAGE_PRESENT;
  
-+void __shadow_user_pgds(pgd_t *dst, const pgd_t *src, int count)
++void __shadow_user_pgds(pgd_t *dst, const pgd_t *src)
 +{
++      unsigned int count = USER_PGD_PTRS;
 +      while (count--)
 +              *dst++ = __pgd((pgd_val(*src++) | (_PAGE_NX & __supported_pte_mask)) & ~_PAGE_USER);
 +}
 +#endif
++
 +#ifdef CONFIG_PAX_PER_CPU_PGD
-+void __clone_user_pgds(pgd_t *dst, const pgd_t *src, int count)
++void __clone_user_pgds(pgd_t *dst, const pgd_t *src)
 +{
-+      while (count--)
++      unsigned int count = USER_PGD_PTRS;
 +
-+#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
-+              *dst++ = __pgd(pgd_val(*src++) & clone_pgd_mask);
++      while (count--) {
++              pgd_t pgd;
++
++#ifdef CONFIG_X86_64
++              pgd = __pgd(pgd_val(*src++) | _PAGE_USER);
 +#else
-+              *dst++ = *src++;
++              pgd = *src++;
++#endif
++
++#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
++              pgd = __pgd(pgd_val(pgd) & clone_pgd_mask);
 +#endif
 +
++              *dst++ = pgd;
++      }
++
 +}
 +#endif
 +
@@ -23277,7 +25649,7 @@ index 8573b83..6372501 100644
 +#define paravirt_release_pxd(pfn)     paravirt_release_pud(pfn)
 +#define pxd_free(mm, pud)             pud_free((mm), (pud))
 +#define pyd_populate(mm, pgd, pud)    pgd_populate((mm), (pgd), (pud))
-+#define pyd_offset(mm ,address)               pgd_offset((mm), (address))
++#define pyd_offset(mmaddress)               pgd_offset((mm), (address))
 +#define PYD_SIZE                      PGDIR_SIZE
 +#else
 +#define pxd_t                         pmd_t
@@ -23285,7 +25657,7 @@ index 8573b83..6372501 100644
 +#define paravirt_release_pxd(pfn)     paravirt_release_pmd(pfn)
 +#define pxd_free(mm, pud)             pmd_free((mm), (pud))
 +#define pyd_populate(mm, pgd, pud)    pud_populate((mm), (pgd), (pud))
-+#define pyd_offset(mm ,address)               pud_offset((mm), (address))
++#define pyd_offset(mmaddress)               pud_offset((mm), (address))
 +#define PYD_SIZE                      PUD_SIZE
 +#endif
 +
@@ -23296,7 +25668,7 @@ index 8573b83..6372501 100644
  static void pgd_set_mm(pgd_t *pgd, struct mm_struct *mm)
  {
        BUILD_BUG_ON(sizeof(virt_to_page(pgd)->index) < sizeof(mm));
-@@ -128,6 +170,7 @@ static void pgd_dtor(pgd_t *pgd)
+@@ -128,6 +182,7 @@ static void pgd_dtor(pgd_t *pgd)
        pgd_list_del(pgd);
        spin_unlock(&pgd_lock);
  }
@@ -23304,7 +25676,7 @@ index 8573b83..6372501 100644
  
  /*
   * List of all pgd's needed for non-PAE so it can invalidate entries
-@@ -140,7 +183,7 @@ static void pgd_dtor(pgd_t *pgd)
+@@ -140,7 +195,7 @@ static void pgd_dtor(pgd_t *pgd)
   * -- wli
   */
  
@@ -23313,7 +25685,7 @@ index 8573b83..6372501 100644
  /*
   * In PAE mode, we need to do a cr3 reload (=tlb flush) when
   * updating the top-level pagetable entries to guarantee the
-@@ -152,7 +195,7 @@ static void pgd_dtor(pgd_t *pgd)
+@@ -152,7 +207,7 @@ static void pgd_dtor(pgd_t *pgd)
   * not shared between pagetables (!SHARED_KERNEL_PMDS), we allocate
   * and initialize the kernel pmds here.
   */
@@ -23322,7 +25694,7 @@ index 8573b83..6372501 100644
  
  void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
  {
-@@ -170,36 +213,38 @@ void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
+@@ -170,36 +225,38 @@ void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
         */
        flush_tlb_mm(mm);
  }
@@ -23372,7 +25744,7 @@ index 8573b83..6372501 100644
                return -ENOMEM;
        }
  
-@@ -212,51 +257,55 @@ static int preallocate_pmds(pmd_t *pmds[])
+@@ -212,51 +269,55 @@ static int preallocate_pmds(pmd_t *pmds[])
   * preallocate which never got a corresponding vma will need to be
   * freed manually.
   */
@@ -23445,7 +25817,7 @@ index 8573b83..6372501 100644
  
        pgd = (pgd_t *)__get_free_page(PGALLOC_GFP);
  
-@@ -265,11 +314,11 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
+@@ -265,11 +326,11 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
  
        mm->pgd = pgd;
  
@@ -23459,7 +25831,7 @@ index 8573b83..6372501 100644
  
        /*
         * Make sure that pre-populating the pmds is atomic with
-@@ -279,14 +328,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
+@@ -279,14 +340,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
        spin_lock(&pgd_lock);
  
        pgd_ctor(mm, pgd);
@@ -23477,7 +25849,7 @@ index 8573b83..6372501 100644
  out_free_pgd:
        free_page((unsigned long)pgd);
  out:
-@@ -295,7 +344,7 @@ out:
+@@ -295,7 +356,7 @@ out:
  
  void pgd_free(struct mm_struct *mm, pgd_t *pgd)
  {
@@ -23487,10 +25859,10 @@ index 8573b83..6372501 100644
        paravirt_pgd_free(mm, pgd);
        free_page((unsigned long)pgd);
 diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
-index cac7184..09a39fa 100644
+index a69bcb8..19068ab 100644
 --- a/arch/x86/mm/pgtable_32.c
 +++ b/arch/x86/mm/pgtable_32.c
-@@ -48,10 +48,13 @@ void set_pte_vaddr(unsigned long vaddr, pte_t pteval)
+@@ -47,10 +47,13 @@ void set_pte_vaddr(unsigned long vaddr, pte_t pteval)
                return;
        }
        pte = pte_offset_kernel(pmd, vaddr);
@@ -23554,7 +25926,7 @@ index d6c0418..06a0ad5 100644
  EXPORT_SYMBOL_GPL(leave_mm);
  
 diff --git a/arch/x86/net/bpf_jit.S b/arch/x86/net/bpf_jit.S
-index 6687022..ceabcfa 100644
+index 877b9a1..a8ecf42 100644
 --- a/arch/x86/net/bpf_jit.S
 +++ b/arch/x86/net/bpf_jit.S
 @@ -9,6 +9,7 @@
@@ -23565,23 +25937,23 @@ index 6687022..ceabcfa 100644
  
  /*
   * Calling convention :
-@@ -35,6 +36,7 @@ sk_load_word:
+@@ -35,6 +36,7 @@ sk_load_word_positive_offset:
        jle     bpf_slow_path_word
        mov     (SKBDATA,%rsi),%eax
        bswap   %eax                    /* ntohl() */
 +      pax_force_retaddr
        ret
  
-@@ -53,6 +55,7 @@ sk_load_half:
+ sk_load_half:
+@@ -52,6 +54,7 @@ sk_load_half_positive_offset:
        jle     bpf_slow_path_half
        movzwl  (SKBDATA,%rsi),%eax
        rol     $8,%ax                  # ntohs()
 +      pax_force_retaddr
        ret
  
- sk_load_byte_ind:
-@@ -66,6 +69,7 @@ sk_load_byte:
+ sk_load_byte:
+@@ -66,6 +69,7 @@ sk_load_byte_positive_offset:
        cmp     %esi,%r9d   /* if (offset >= hlen) goto bpf_slow_path_byte */
        jle     bpf_slow_path_byte
        movzbl  (SKBDATA,%rsi),%eax
@@ -23589,23 +25961,15 @@ index 6687022..ceabcfa 100644
        ret
  
  /**
-@@ -82,6 +86,7 @@ ENTRY(sk_load_byte_msh)
+@@ -87,6 +91,7 @@ sk_load_byte_msh_positive_offset:
        movzbl  (SKBDATA,%rsi),%ebx
        and     $15,%bl
        shl     $2,%bl
-+      pax_force_retaddr
-       ret
-       CFI_ENDPROC
- ENDPROC(sk_load_byte_msh)
-@@ -91,6 +96,7 @@ bpf_error:
-       xor             %eax,%eax
-       mov             -8(%rbp),%rbx
-       leaveq
 +      pax_force_retaddr
        ret
  
  /* rsi contains offset and can be scratched */
-@@ -113,6 +119,7 @@ bpf_slow_path_word:
+@@ -109,6 +114,7 @@ bpf_slow_path_word:
        js      bpf_error
        mov     -12(%rbp),%eax
        bswap   %eax
@@ -23613,7 +25977,7 @@ index 6687022..ceabcfa 100644
        ret
  
  bpf_slow_path_half:
-@@ -121,12 +128,14 @@ bpf_slow_path_half:
+@@ -117,12 +123,14 @@ bpf_slow_path_half:
        mov     -12(%rbp),%ax
        rol     $8,%ax
        movzwl  %ax,%eax
@@ -23628,17 +25992,57 @@ index 6687022..ceabcfa 100644
        ret
  
  bpf_slow_path_byte_msh:
-@@ -137,4 +146,5 @@ bpf_slow_path_byte_msh:
+@@ -133,6 +141,7 @@ bpf_slow_path_byte_msh:
+       and     $15,%al
+       shl     $2,%al
+       xchg    %eax,%ebx
++      pax_force_retaddr
+       ret
+ #define sk_negative_common(SIZE)                              \
+@@ -157,6 +166,7 @@ sk_load_word_negative_offset:
+       sk_negative_common(4)
+       mov     (%rax), %eax
+       bswap   %eax
++      pax_force_retaddr
+       ret
+ bpf_slow_path_half_neg:
+@@ -168,6 +178,7 @@ sk_load_half_negative_offset:
+       mov     (%rax),%ax
+       rol     $8,%ax
+       movzwl  %ax,%eax
++      pax_force_retaddr
+       ret
+ bpf_slow_path_byte_neg:
+@@ -177,6 +188,7 @@ sk_load_byte_negative_offset:
+       .globl  sk_load_byte_negative_offset
+       sk_negative_common(1)
+       movzbl  (%rax), %eax
++      pax_force_retaddr
+       ret
+ bpf_slow_path_byte_msh_neg:
+@@ -190,6 +202,7 @@ sk_load_byte_msh_negative_offset:
        and     $15,%al
        shl     $2,%al
        xchg    %eax,%ebx
++      pax_force_retaddr
+       ret
+ bpf_error:
+@@ -197,4 +210,5 @@ bpf_error:
+       xor             %eax,%eax
+       mov             -8(%rbp),%rbx
+       leaveq
 +      pax_force_retaddr
        ret
 diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
-index bfab3fa..05aac3a 100644
+index 0597f95..a12c36e 100644
 --- a/arch/x86/net/bpf_jit_comp.c
 +++ b/arch/x86/net/bpf_jit_comp.c
-@@ -117,6 +117,10 @@ static inline void bpf_flush_icache(void *start, void *end)
+@@ -120,6 +120,11 @@ static inline void bpf_flush_icache(void *start, void *end)
        set_fs(old_fs);
  }
  
@@ -23646,10 +26050,11 @@ index bfab3fa..05aac3a 100644
 +      struct work_struct work;
 +      void *image;
 +};
++
+ #define CHOOSE_LOAD_FUNC(K, func) \
+       ((int)K < 0 ? ((int)K >= SKF_LL_OFF ? func##_negative_offset : func) : func##_positive_offset)
  
- void bpf_jit_compile(struct sk_filter *fp)
- {
-@@ -141,6 +145,10 @@ void bpf_jit_compile(struct sk_filter *fp)
+@@ -146,6 +151,10 @@ void bpf_jit_compile(struct sk_filter *fp)
        if (addrs == NULL)
                return;
  
@@ -23660,7 +26065,14 @@ index bfab3fa..05aac3a 100644
        /* Before first pass, make a rough estimation of addrs[]
         * each bpf instruction is translated to less than 64 bytes
         */
-@@ -585,11 +593,12 @@ cond_branch:                     f_offset = addrs[i + filter[i].jf] - addrs[i];
+@@ -589,17 +598,18 @@ cond_branch:                     f_offset = addrs[i + filter[i].jf] - addrs[i];
+                               break;
+                       default:
+                               /* hmm, too complex filter, give up with jit compiler */
+-                              goto out;
++                              goto error;
+                       }
+                       ilen = prog - temp;
                        if (image) {
                                if (unlikely(proglen + ilen > oldproglen)) {
                                        pr_err("bpb_jit_compile fatal error\n");
@@ -23668,7 +26080,7 @@ index bfab3fa..05aac3a 100644
 -                                      module_free(NULL, image);
 -                                      return;
 +                                      module_free_exec(NULL, image);
-+                                      goto out;
++                                      goto error;
                                }
 +                              pax_open_kernel();
                                memcpy(image + proglen, temp, ilen);
@@ -23676,28 +26088,38 @@ index bfab3fa..05aac3a 100644
                        }
                        proglen += ilen;
                        addrs[i] = proglen;
-@@ -609,7 +618,7 @@ cond_branch:                       f_offset = addrs[i + filter[i].jf] - addrs[i];
+@@ -620,11 +630,9 @@ cond_branch:                      f_offset = addrs[i + filter[i].jf] - addrs[i];
                        break;
                }
                if (proglen == oldproglen) {
 -                      image = module_alloc(max_t(unsigned int,
-+                      image = module_alloc_exec(max_t(unsigned int,
-                                                  proglen,
-                                                  sizeof(struct work_struct)));
+-                                                 proglen,
+-                                                 sizeof(struct work_struct)));
++                      image = module_alloc_exec(proglen);
                        if (!image)
-@@ -631,24 +640,27 @@ cond_branch:                     f_offset = addrs[i + filter[i].jf] - addrs[i];
-               fp->bpf_func = (void *)image;
+-                              goto out;
++                              goto error;
+               }
+               oldproglen = proglen;
        }
+@@ -640,7 +648,10 @@ cond_branch:                      f_offset = addrs[i + filter[i].jf] - addrs[i];
+               bpf_flush_icache(image, image + proglen);
+               fp->bpf_func = (void *)image;
+-      }
++      } else
++error:
++              kfree(fp->work);
++
  out:
-+      kfree(fp->work);
        kfree(addrs);
        return;
- }
+@@ -648,18 +659,20 @@ out:
  
  static void jit_free_defer(struct work_struct *arg)
  {
 -      module_free(NULL, arg);
-+      module_free_exec(NULL, ((struct bpf_jit_work*)arg)->image);
++      module_free_exec(NULL, ((struct bpf_jit_work *)arg)->image);
 +      kfree(arg);
  }
  
@@ -23717,7 +26139,7 @@ index bfab3fa..05aac3a 100644
        }
  }
 diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c
-index bff89df..377758a 100644
+index d6aa6e8..266395a 100644
 --- a/arch/x86/oprofile/backtrace.c
 +++ b/arch/x86/oprofile/backtrace.c
 @@ -46,11 +46,11 @@ dump_user_backtrace_32(struct stack_frame_ia32 *head)
@@ -23753,22 +26175,22 @@ index bff89df..377758a 100644
                if (depth)
                        dump_trace(NULL, regs, (unsigned long *)stack, 0,
 diff --git a/arch/x86/pci/mrst.c b/arch/x86/pci/mrst.c
-index cb29191..036766d 100644
+index 140942f..8a5cc55 100644
 --- a/arch/x86/pci/mrst.c
 +++ b/arch/x86/pci/mrst.c
-@@ -234,7 +234,9 @@ int __init pci_mrst_init(void)
-       printk(KERN_INFO "Moorestown platform detected, using MRST PCI ops\n");
+@@ -238,7 +238,9 @@ int __init pci_mrst_init(void)
+       printk(KERN_INFO "Intel MID platform detected, using MID PCI ops\n");
        pci_mmcfg_late_init();
        pcibios_enable_irq = mrst_pci_irq_enable;
 -      pci_root_ops = pci_mrst_ops;
 +      pax_open_kernel();
 +      memcpy((void *)&pci_root_ops, &pci_mrst_ops, sizeof(pci_mrst_ops));
 +      pax_close_kernel();
+       pci_soc_mode = 1;
        /* Continue with standard init */
        return 1;
- }
 diff --git a/arch/x86/pci/pcbios.c b/arch/x86/pci/pcbios.c
-index f685535..2b76a81 100644
+index da8fe05..7ee6704 100644
 --- a/arch/x86/pci/pcbios.c
 +++ b/arch/x86/pci/pcbios.c
 @@ -79,50 +79,93 @@ union bios32 {
@@ -23849,7 +26271,7 @@ index f685535..2b76a81 100644
 +                      flags |= 8;
 +              }
 +
-+              for (cpu = 0; cpu < NR_CPUS; cpu++) {
++              for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
 +                      gdt = get_cpu_gdt_table(cpu);
 +                      pack_descriptor(&d, address, length, 0x9b, flags);
 +                      write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_CS, &d, DESCTYPE_S);
@@ -24076,21 +26498,11 @@ index f685535..2b76a81 100644
  }
  EXPORT_SYMBOL(pcibios_set_irq_routing);
 diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c
-index 5cab48e..b025f9b 100644
+index 40e4469..1ab536e 100644
 --- a/arch/x86/platform/efi/efi_32.c
 +++ b/arch/x86/platform/efi/efi_32.c
-@@ -38,70 +38,56 @@
-  */
- static unsigned long efi_rt_eflags;
--static pgd_t efi_bak_pg_dir_pointer[2];
-+static pgd_t __initdata efi_bak_pg_dir_pointer[KERNEL_PGD_PTRS];
--void efi_call_phys_prelog(void)
-+void __init efi_call_phys_prelog(void)
+@@ -44,11 +44,22 @@ void efi_call_phys_prelog(void)
  {
--      unsigned long cr4;
--      unsigned long temp;
        struct desc_ptr gdt_descr;
  
 +#ifdef CONFIG_PAX_KERNEXEC
@@ -24099,36 +26511,7 @@ index 5cab48e..b025f9b 100644
 +
        local_irq_save(efi_rt_eflags);
  
--      /*
--       * If I don't have PAE, I should just duplicate two entries in page
--       * directory. If I have PAE, I just need to duplicate one entry in
--       * page directory.
--       */
--      cr4 = read_cr4_safe();
--
--      if (cr4 & X86_CR4_PAE) {
--              efi_bak_pg_dir_pointer[0].pgd =
--                  swapper_pg_dir[pgd_index(0)].pgd;
--              swapper_pg_dir[0].pgd =
--                  swapper_pg_dir[pgd_index(PAGE_OFFSET)].pgd;
--      } else {
--              efi_bak_pg_dir_pointer[0].pgd =
--                  swapper_pg_dir[pgd_index(0)].pgd;
--              efi_bak_pg_dir_pointer[1].pgd =
--                  swapper_pg_dir[pgd_index(0x400000)].pgd;
--              swapper_pg_dir[pgd_index(0)].pgd =
--                  swapper_pg_dir[pgd_index(PAGE_OFFSET)].pgd;
--              temp = PAGE_OFFSET + 0x400000;
--              swapper_pg_dir[pgd_index(0x400000)].pgd =
--                  swapper_pg_dir[pgd_index(temp)].pgd;
--      }
-+      clone_pgd_range(efi_bak_pg_dir_pointer, swapper_pg_dir, KERNEL_PGD_PTRS);
-+      clone_pgd_range(swapper_pg_dir, swapper_pg_dir + KERNEL_PGD_BOUNDARY,
-+                      min_t(unsigned long, KERNEL_PGD_PTRS, KERNEL_PGD_BOUNDARY));
-       /*
-        * After the lock is released, the original page table is restored.
-        */
+       load_cr3(initial_page_table);
        __flush_tlb_all();
  
 +#ifdef CONFIG_PAX_KERNEXEC
@@ -24141,12 +26524,8 @@ index 5cab48e..b025f9b 100644
        gdt_descr.address = __pa(get_cpu_gdt_table(0));
        gdt_descr.size = GDT_SIZE - 1;
        load_gdt(&gdt_descr);
- }
--void efi_call_phys_epilog(void)
-+void __init efi_call_phys_epilog(void)
+@@ -58,6 +69,14 @@ void efi_call_phys_epilog(void)
  {
--      unsigned long cr4;
        struct desc_ptr gdt_descr;
  
 +#ifdef CONFIG_PAX_KERNEXEC
@@ -24160,22 +26539,6 @@ index 5cab48e..b025f9b 100644
        gdt_descr.address = (unsigned long)get_cpu_gdt_table(0);
        gdt_descr.size = GDT_SIZE - 1;
        load_gdt(&gdt_descr);
--      cr4 = read_cr4_safe();
--
--      if (cr4 & X86_CR4_PAE) {
--              swapper_pg_dir[pgd_index(0)].pgd =
--                  efi_bak_pg_dir_pointer[0].pgd;
--      } else {
--              swapper_pg_dir[pgd_index(0)].pgd =
--                  efi_bak_pg_dir_pointer[0].pgd;
--              swapper_pg_dir[pgd_index(0x400000)].pgd =
--                  efi_bak_pg_dir_pointer[1].pgd;
--      }
-+      clone_pgd_range(swapper_pg_dir, efi_bak_pg_dir_pointer, KERNEL_PGD_PTRS);
-       /*
-        * After the lock is released, the original page table is restored.
 diff --git a/arch/x86/platform/efi/efi_stub_32.S b/arch/x86/platform/efi/efi_stub_32.S
 index fbe66e6..c5c0dd2 100644
 --- a/arch/x86/platform/efi/efi_stub_32.S
@@ -24356,46 +26719,32 @@ index 4c07cca..2c8427d 100644
        ret
  ENDPROC(efi_call6)
 diff --git a/arch/x86/platform/mrst/mrst.c b/arch/x86/platform/mrst/mrst.c
-index fe73276..70fe25a 100644
+index e31bcd8..f12dc46 100644
 --- a/arch/x86/platform/mrst/mrst.c
 +++ b/arch/x86/platform/mrst/mrst.c
-@@ -239,14 +239,16 @@ static int mrst_i8042_detect(void)
- }
+@@ -78,13 +78,15 @@ struct sfi_rtc_table_entry sfi_mrtc_array[SFI_MRTC_MAX];
+ EXPORT_SYMBOL_GPL(sfi_mrtc_array);
+ int sfi_mrtc_num;
  
- /* Reboot and power off are handled by the SCU on a MID device */
 -static void mrst_power_off(void)
 +static __noreturn void mrst_power_off(void)
  {
-       intel_scu_ipc_simple_command(0xf1, 1);
 +      BUG();
  }
  
 -static void mrst_reboot(void)
 +static __noreturn void mrst_reboot(void)
  {
-       intel_scu_ipc_simple_command(0xf1, 0);
+       intel_scu_ipc_simple_command(IPCMSG_COLD_BOOT, 0);
 +      BUG();
  }
  
- /*
-diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
-index 5b55219..b326540 100644
---- a/arch/x86/platform/uv/tlb_uv.c
-+++ b/arch/x86/platform/uv/tlb_uv.c
-@@ -377,6 +377,8 @@ static void reset_with_ipi(struct pnmask *distribution, struct bau_control *bcp)
-       struct bau_control *smaster = bcp->socket_master;
-       struct reset_args reset_args;
-+      pax_track_stack();
-+
-       reset_args.sender = sender;
-       cpus_clear(*mask);
-       /* find a single cpu for each uvhub in this distribution mask */
+ /* parse all the mtimer info to a static mtimer array */
 diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c
-index 87bb35e..eff2da8 100644
+index 218cdb1..fd55c08 100644
 --- a/arch/x86/power/cpu.c
 +++ b/arch/x86/power/cpu.c
-@@ -130,7 +130,7 @@ static void do_fpu_end(void)
+@@ -132,7 +132,7 @@ static void do_fpu_end(void)
  static void fix_processor_context(void)
  {
        int cpu = smp_processor_id();
@@ -24404,7 +26753,7 @@ index 87bb35e..eff2da8 100644
  
        set_tss_desc(cpu, t);   /*
                                 * This just modifies memory; should not be
-@@ -140,7 +140,9 @@ static void fix_processor_context(void)
+@@ -142,7 +142,9 @@ static void fix_processor_context(void)
                                 */
  
  #ifdef CONFIG_X86_64
@@ -24414,11 +26763,212 @@ index 87bb35e..eff2da8 100644
  
        syscall_init();                         /* This sets MSR_*STAR and related */
  #endif
+diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
+index b685296..e00eb65 100644
+--- a/arch/x86/tools/relocs.c
++++ b/arch/x86/tools/relocs.c
+@@ -12,10 +12,13 @@
+ #include <regex.h>
+ #include <tools/le_byteshift.h>
++#include "../../../include/generated/autoconf.h"
++
+ static void die(char *fmt, ...);
+ #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+ static Elf32_Ehdr ehdr;
++static Elf32_Phdr *phdr;
+ static unsigned long reloc_count, reloc_idx;
+ static unsigned long *relocs;
+ static unsigned long reloc16_count, reloc16_idx;
+@@ -323,9 +326,39 @@ static void read_ehdr(FILE *fp)
+       }
+ }
++static void read_phdrs(FILE *fp)
++{
++      unsigned int i;
++
++      phdr = calloc(ehdr.e_phnum, sizeof(Elf32_Phdr));
++      if (!phdr) {
++              die("Unable to allocate %d program headers\n",
++                  ehdr.e_phnum);
++      }
++      if (fseek(fp, ehdr.e_phoff, SEEK_SET) < 0) {
++              die("Seek to %d failed: %s\n",
++                      ehdr.e_phoff, strerror(errno));
++      }
++      if (fread(phdr, sizeof(*phdr), ehdr.e_phnum, fp) != ehdr.e_phnum) {
++              die("Cannot read ELF program headers: %s\n",
++                      strerror(errno));
++      }
++      for(i = 0; i < ehdr.e_phnum; i++) {
++              phdr[i].p_type      = elf32_to_cpu(phdr[i].p_type);
++              phdr[i].p_offset    = elf32_to_cpu(phdr[i].p_offset);
++              phdr[i].p_vaddr     = elf32_to_cpu(phdr[i].p_vaddr);
++              phdr[i].p_paddr     = elf32_to_cpu(phdr[i].p_paddr);
++              phdr[i].p_filesz    = elf32_to_cpu(phdr[i].p_filesz);
++              phdr[i].p_memsz     = elf32_to_cpu(phdr[i].p_memsz);
++              phdr[i].p_flags     = elf32_to_cpu(phdr[i].p_flags);
++              phdr[i].p_align     = elf32_to_cpu(phdr[i].p_align);
++      }
++
++}
++
+ static void read_shdrs(FILE *fp)
+ {
+-      int i;
++      unsigned int i;
+       Elf32_Shdr shdr;
+       secs = calloc(ehdr.e_shnum, sizeof(struct section));
+@@ -360,7 +393,7 @@ static void read_shdrs(FILE *fp)
+ static void read_strtabs(FILE *fp)
+ {
+-      int i;
++      unsigned int i;
+       for (i = 0; i < ehdr.e_shnum; i++) {
+               struct section *sec = &secs[i];
+               if (sec->shdr.sh_type != SHT_STRTAB) {
+@@ -385,7 +418,7 @@ static void read_strtabs(FILE *fp)
+ static void read_symtabs(FILE *fp)
+ {
+-      int i,j;
++      unsigned int i,j;
+       for (i = 0; i < ehdr.e_shnum; i++) {
+               struct section *sec = &secs[i];
+               if (sec->shdr.sh_type != SHT_SYMTAB) {
+@@ -418,7 +451,9 @@ static void read_symtabs(FILE *fp)
+ static void read_relocs(FILE *fp)
+ {
+-      int i,j;
++      unsigned int i,j;
++      uint32_t base;
++
+       for (i = 0; i < ehdr.e_shnum; i++) {
+               struct section *sec = &secs[i];
+               if (sec->shdr.sh_type != SHT_REL) {
+@@ -438,9 +473,22 @@ static void read_relocs(FILE *fp)
+                       die("Cannot read symbol table: %s\n",
+                               strerror(errno));
+               }
++              base = 0;
++
++#if defined(CONFIG_PAX_KERNEXEC) && defined(CONFIG_X86_32)
++              for (j = 0; j < ehdr.e_phnum; j++) {
++                      if (phdr[j].p_type != PT_LOAD )
++                              continue;
++                      if (secs[sec->shdr.sh_info].shdr.sh_offset < phdr[j].p_offset || secs[sec->shdr.sh_info].shdr.sh_offset >= phdr[j].p_offset + phdr[j].p_filesz)
++                              continue;
++                      base = CONFIG_PAGE_OFFSET + phdr[j].p_paddr - phdr[j].p_vaddr;
++                      break;
++              }
++#endif
++
+               for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) {
+                       Elf32_Rel *rel = &sec->reltab[j];
+-                      rel->r_offset = elf32_to_cpu(rel->r_offset);
++                      rel->r_offset = elf32_to_cpu(rel->r_offset) + base;
+                       rel->r_info   = elf32_to_cpu(rel->r_info);
+               }
+       }
+@@ -449,13 +497,13 @@ static void read_relocs(FILE *fp)
+ static void print_absolute_symbols(void)
+ {
+-      int i;
++      unsigned int i;
+       printf("Absolute symbols\n");
+       printf(" Num:    Value Size  Type       Bind        Visibility  Name\n");
+       for (i = 0; i < ehdr.e_shnum; i++) {
+               struct section *sec = &secs[i];
+               char *sym_strtab;
+-              int j;
++              unsigned int j;
+               if (sec->shdr.sh_type != SHT_SYMTAB) {
+                       continue;
+@@ -482,14 +530,14 @@ static void print_absolute_symbols(void)
+ static void print_absolute_relocs(void)
+ {
+-      int i, printed = 0;
++      unsigned int i, printed = 0;
+       for (i = 0; i < ehdr.e_shnum; i++) {
+               struct section *sec = &secs[i];
+               struct section *sec_applies, *sec_symtab;
+               char *sym_strtab;
+               Elf32_Sym *sh_symtab;
+-              int j;
++              unsigned int j;
+               if (sec->shdr.sh_type != SHT_REL) {
+                       continue;
+               }
+@@ -551,13 +599,13 @@ static void print_absolute_relocs(void)
+ static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym),
+                       int use_real_mode)
+ {
+-      int i;
++      unsigned int i;
+       /* Walk through the relocations */
+       for (i = 0; i < ehdr.e_shnum; i++) {
+               char *sym_strtab;
+               Elf32_Sym *sh_symtab;
+               struct section *sec_applies, *sec_symtab;
+-              int j;
++              unsigned int j;
+               struct section *sec = &secs[i];
+               if (sec->shdr.sh_type != SHT_REL) {
+@@ -581,6 +629,22 @@ static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym),
+                       sym = &sh_symtab[ELF32_R_SYM(rel->r_info)];
+                       r_type = ELF32_R_TYPE(rel->r_info);
++                      /* Don't relocate actual per-cpu variables, they are absolute indices, not addresses */
++                      if (!strcmp(sec_name(sym->st_shndx), ".data..percpu") && strcmp(sym_name(sym_strtab, sym), "__per_cpu_load"))
++                              continue;
++
++#if defined(CONFIG_PAX_KERNEXEC) && defined(CONFIG_X86_32)
++                      /* Don't relocate actual code, they are relocated implicitly by the base address of KERNEL_CS */
++                      if (!strcmp(sec_name(sym->st_shndx), ".module.text") && !strcmp(sym_name(sym_strtab, sym), "_etext"))
++                              continue;
++                      if (!strcmp(sec_name(sym->st_shndx), ".init.text"))
++                              continue;
++                      if (!strcmp(sec_name(sym->st_shndx), ".exit.text"))
++                              continue;
++                      if (!strcmp(sec_name(sym->st_shndx), ".text") && strcmp(sym_name(sym_strtab, sym), "__LOAD_PHYSICAL_ADDR"))
++                              continue;
++#endif
++
+                       shn_abs = sym->st_shndx == SHN_ABS;
+                       switch (r_type) {
+@@ -674,7 +738,7 @@ static int write32(unsigned int v, FILE *f)
+ static void emit_relocs(int as_text, int use_real_mode)
+ {
+-      int i;
++      unsigned int i;
+       /* Count how many relocations I have and allocate space for them. */
+       reloc_count = 0;
+       walk_relocs(count_reloc, use_real_mode);
+@@ -801,6 +865,7 @@ int main(int argc, char **argv)
+                       fname, strerror(errno));
+       }
+       read_ehdr(fp);
++      read_phdrs(fp);
+       read_shdrs(fp);
+       read_strtabs(fp);
+       read_symtabs(fp);
 diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
-index 5d17950..2253fc9 100644
+index fd14be1..e3c79c0 100644
 --- a/arch/x86/vdso/Makefile
 +++ b/arch/x86/vdso/Makefile
-@@ -137,7 +137,7 @@ quiet_cmd_vdso = VDSO    $@
+@@ -181,7 +181,7 @@ quiet_cmd_vdso = VDSO    $@
                       -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \
                 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
  
@@ -24428,7 +26978,7 @@ index 5d17950..2253fc9 100644
  
  #
 diff --git a/arch/x86/vdso/vdso32-setup.c b/arch/x86/vdso/vdso32-setup.c
-index 468d591..8e80a0a 100644
+index 66e6d93..587f435 100644
 --- a/arch/x86/vdso/vdso32-setup.c
 +++ b/arch/x86/vdso/vdso32-setup.c
 @@ -25,6 +25,7 @@
@@ -24454,10 +27004,10 @@ index 468d591..8e80a0a 100644
        gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
 -      gate_vma.vm_page_prot = __P101;
 +      gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
-       /*
-        * Make sure the vDSO gets into every core dump.
-        * Dumping its contents makes post-mortem fully interpretable later
-@@ -331,14 +332,14 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
+       return 0;
+ }
+@@ -330,14 +331,14 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
        if (compat)
                addr = VDSO_HIGH_BASE;
        else {
@@ -24474,7 +27024,7 @@ index 468d591..8e80a0a 100644
  
        if (compat_uses_vma || !compat) {
                /*
-@@ -361,11 +362,11 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
+@@ -353,11 +354,11 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
        }
  
        current_thread_info()->sysenter_return =
@@ -24488,7 +27038,7 @@ index 468d591..8e80a0a 100644
  
        up_write(&mm->mmap_sem);
  
-@@ -412,8 +413,14 @@ __initcall(ia32_binfmt_init);
+@@ -404,8 +405,14 @@ __initcall(ia32_binfmt_init);
  
  const char *arch_vma_name(struct vm_area_struct *vma)
  {
@@ -24504,7 +27054,7 @@ index 468d591..8e80a0a 100644
        return NULL;
  }
  
-@@ -423,7 +430,7 @@ struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
+@@ -415,7 +422,7 @@ struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
         * Check to see if the corresponding task was created in compat vdso
         * mode.
         */
@@ -24514,7 +27064,7 @@ index 468d591..8e80a0a 100644
        return NULL;
  }
 diff --git a/arch/x86/vdso/vma.c b/arch/x86/vdso/vma.c
-index 316fbca..4638633 100644
+index 00aaf04..4a26505 100644
 --- a/arch/x86/vdso/vma.c
 +++ b/arch/x86/vdso/vma.c
 @@ -16,8 +16,6 @@
@@ -24526,8 +27076,16 @@ index 316fbca..4638633 100644
  extern char vdso_start[], vdso_end[];
  extern unsigned short vdso_sync_cpuid;
  
-@@ -97,13 +95,15 @@ static unsigned long vdso_addr(unsigned long start, unsigned len)
- int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
+@@ -141,7 +139,6 @@ static unsigned long vdso_addr(unsigned long start, unsigned len)
+        * unaligned here as a result of stack start randomization.
+        */
+       addr = PAGE_ALIGN(addr);
+-      addr = align_addr(addr, NULL, ALIGN_VDSO);
+       return addr;
+ }
+@@ -154,30 +151,31 @@ static int setup_additional_pages(struct linux_binprm *bprm,
+                                 unsigned size)
  {
        struct mm_struct *mm = current->mm;
 -      unsigned long addr;
@@ -24543,33 +27101,34 @@ index 316fbca..4638633 100644
 +      if (!(mm->pax_flags & MF_PAX_RANDMMAP))
 +#endif
 +
-       addr = vdso_addr(mm->start_stack, vdso_size);
-       addr = get_unmapped_area(NULL, addr, vdso_size, 0, 0);
+       addr = vdso_addr(mm->start_stack, size);
++      addr = align_addr(addr, NULL, ALIGN_VDSO);
+       addr = get_unmapped_area(NULL, addr, size, 0, 0);
        if (IS_ERR_VALUE(addr)) {
-@@ -111,26 +111,18 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
+               ret = addr;
                goto up_fail;
        }
  
 -      current->mm->context.vdso = (void *)addr;
 +      mm->context.vdso = addr;
  
-       ret = install_special_mapping(mm, addr, vdso_size,
+       ret = install_special_mapping(mm, addr, size,
                                      VM_READ|VM_EXEC|
-                                     VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC|
-                                     VM_ALWAYSDUMP,
-                                     vdso_pages);
+                                     VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC,
+                                     pages);
 -      if (ret) {
 -              current->mm->context.vdso = NULL;
 -              goto up_fail;
 -      }
-+
 +      if (ret)
 +              mm->context.vdso = 0;
  
  up_fail:
        up_write(&mm->mmap_sem);
-       return ret;
+@@ -197,10 +195,3 @@ int x32_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
+                                     vdsox32_size);
  }
+ #endif
 -
 -static __init int vdso_setup(char *s)
 -{
@@ -24578,10 +27137,10 @@ index 316fbca..4638633 100644
 -}
 -__setup("vdso=", vdso_setup);
 diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index 46c8069..6330d3c 100644
+index 40edfc3..b4d80ac 100644
 --- a/arch/x86/xen/enlighten.c
 +++ b/arch/x86/xen/enlighten.c
-@@ -85,8 +85,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
+@@ -95,8 +95,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
  
  struct shared_info xen_dummy_shared_info;
  
@@ -24590,7 +27149,7 @@ index 46c8069..6330d3c 100644
  RESERVE_BRK(shared_info_page_brk, PAGE_SIZE);
  __read_mostly int xen_have_vector_callback;
  EXPORT_SYMBOL_GPL(xen_have_vector_callback);
-@@ -1028,7 +1026,7 @@ static const struct pv_apic_ops xen_apic_ops __initconst = {
+@@ -1165,30 +1163,30 @@ static const struct pv_apic_ops xen_apic_ops __initconst = {
  #endif
  };
  
@@ -24599,8 +27158,10 @@ index 46c8069..6330d3c 100644
  {
        struct sched_shutdown r = { .reason = reason };
  
-@@ -1036,17 +1034,17 @@ static void xen_reboot(int reason)
-               BUG();
+-      if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
+-              BUG();
++      HYPERVISOR_sched_op(SCHEDOP_shutdown, &r);
++      BUG();
  }
  
 -static void xen_restart(char *msg)
@@ -24620,7 +27181,13 @@ index 46c8069..6330d3c 100644
  {
        xen_reboot(SHUTDOWN_poweroff);
  }
-@@ -1152,7 +1150,17 @@ asmlinkage void __init xen_start_kernel(void)
+-static void xen_machine_power_off(void)
++static __noreturn void xen_machine_power_off(void)
+ {
+       if (pm_power_off)
+               pm_power_off();
+@@ -1291,7 +1289,17 @@ asmlinkage void __init xen_start_kernel(void)
        __userpte_alloc_gfp &= ~__GFP_HIGHMEM;
  
        /* Work out if we support NX */
@@ -24639,7 +27206,7 @@ index 46c8069..6330d3c 100644
  
        xen_setup_features();
  
-@@ -1183,13 +1191,6 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1322,13 +1330,6 @@ asmlinkage void __init xen_start_kernel(void)
  
        machine_ops = xen_machine_ops;
  
@@ -24654,10 +27221,10 @@ index 46c8069..6330d3c 100644
  
  #ifdef CONFIG_ACPI_NUMA
 diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index 3dd53f9..5aa5df3 100644
+index 69f5857..0699dc5 100644
 --- a/arch/x86/xen/mmu.c
 +++ b/arch/x86/xen/mmu.c
-@@ -1768,6 +1768,9 @@ pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
+@@ -1738,6 +1738,9 @@ pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
        convert_pfn_mfn(init_level4_pgt);
        convert_pfn_mfn(level3_ident_pgt);
        convert_pfn_mfn(level3_kernel_pgt);
@@ -24667,7 +27234,7 @@ index 3dd53f9..5aa5df3 100644
  
        l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
        l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
-@@ -1786,7 +1789,11 @@ pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
+@@ -1756,7 +1759,11 @@ pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
        set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
        set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
        set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
@@ -24679,7 +27246,7 @@ index 3dd53f9..5aa5df3 100644
        set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
        set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
  
-@@ -2000,6 +2007,7 @@ static void __init xen_post_allocator_init(void)
+@@ -1964,6 +1971,7 @@ static void __init xen_post_allocator_init(void)
        pv_mmu_ops.set_pud = xen_set_pud;
  #if PAGETABLE_LEVELS == 4
        pv_mmu_ops.set_pgd = xen_set_pgd;
@@ -24687,7 +27254,7 @@ index 3dd53f9..5aa5df3 100644
  #endif
  
        /* This will work as long as patching hasn't happened yet
-@@ -2081,6 +2089,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = {
+@@ -2045,6 +2053,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = {
        .pud_val = PV_CALLEE_SAVE(xen_pud_val),
        .make_pud = PV_CALLEE_SAVE(xen_make_pud),
        .set_pgd = xen_set_pgd_hyper,
@@ -24696,10 +27263,10 @@ index 3dd53f9..5aa5df3 100644
        .alloc_pud = xen_alloc_pmd_init,
        .release_pud = xen_release_pmd_init,
 diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
-index 041d4fe..7666b7e 100644
+index 0503c0c..ceb2d16 100644
 --- a/arch/x86/xen/smp.c
 +++ b/arch/x86/xen/smp.c
-@@ -194,11 +194,6 @@ static void __init xen_smp_prepare_boot_cpu(void)
+@@ -215,11 +215,6 @@ static void __init xen_smp_prepare_boot_cpu(void)
  {
        BUG_ON(smp_processor_id() != 0);
        native_smp_prepare_boot_cpu();
@@ -24711,7 +27278,7 @@ index 041d4fe..7666b7e 100644
        xen_filter_cpu_maps();
        xen_setup_vcpu_info_placement();
  }
-@@ -275,12 +270,12 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
+@@ -296,12 +291,12 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
        gdt = get_cpu_gdt_table(cpu);
  
        ctxt->flags = VGCF_IN_KERNEL;
@@ -24727,7 +27294,7 @@ index 041d4fe..7666b7e 100644
  #else
        ctxt->gs_base_kernel = per_cpu_offset(cpu);
  #endif
-@@ -331,13 +326,12 @@ static int __cpuinit xen_cpu_up(unsigned int cpu)
+@@ -352,13 +347,12 @@ static int __cpuinit xen_cpu_up(unsigned int cpu)
        int rc;
  
        per_cpu(current_task, cpu) = idle;
@@ -24803,6 +27370,67 @@ index b095739..8c17bcd 100644
  struct trap_info;
  void xen_copy_trap_info(struct trap_info *traps);
  
+diff --git a/arch/xtensa/variants/dc232b/include/variant/core.h b/arch/xtensa/variants/dc232b/include/variant/core.h
+index 525bd3d..ef888b1 100644
+--- a/arch/xtensa/variants/dc232b/include/variant/core.h
++++ b/arch/xtensa/variants/dc232b/include/variant/core.h
+@@ -119,9 +119,9 @@
+   ----------------------------------------------------------------------*/
+ #define XCHAL_ICACHE_LINESIZE         32      /* I-cache line size in bytes */
+-#define XCHAL_DCACHE_LINESIZE         32      /* D-cache line size in bytes */
+ #define XCHAL_ICACHE_LINEWIDTH                5       /* log2(I line size in bytes) */
+ #define XCHAL_DCACHE_LINEWIDTH                5       /* log2(D line size in bytes) */
++#define XCHAL_DCACHE_LINESIZE         (_AC(1,UL) << XCHAL_DCACHE_LINEWIDTH)   /* D-cache line size in bytes */
+ #define XCHAL_ICACHE_SIZE             16384   /* I-cache size in bytes or 0 */
+ #define XCHAL_DCACHE_SIZE             16384   /* D-cache size in bytes or 0 */
+diff --git a/arch/xtensa/variants/fsf/include/variant/core.h b/arch/xtensa/variants/fsf/include/variant/core.h
+index 2f33760..835e50a 100644
+--- a/arch/xtensa/variants/fsf/include/variant/core.h
++++ b/arch/xtensa/variants/fsf/include/variant/core.h
+@@ -11,6 +11,7 @@
+ #ifndef _XTENSA_CORE_H
+ #define _XTENSA_CORE_H
++#include <linux/const.h>
+ /****************************************************************************
+           Parameters Useful for Any Code, USER or PRIVILEGED
+@@ -112,9 +113,9 @@
+   ----------------------------------------------------------------------*/
+ #define XCHAL_ICACHE_LINESIZE         16      /* I-cache line size in bytes */
+-#define XCHAL_DCACHE_LINESIZE         16      /* D-cache line size in bytes */
+ #define XCHAL_ICACHE_LINEWIDTH                4       /* log2(I line size in bytes) */
+ #define XCHAL_DCACHE_LINEWIDTH                4       /* log2(D line size in bytes) */
++#define XCHAL_DCACHE_LINESIZE         (_AC(1,UL) << XCHAL_DCACHE_LINEWIDTH) /* D-cache line size in bytes */
+ #define XCHAL_ICACHE_SIZE             8192    /* I-cache size in bytes or 0 */
+ #define XCHAL_DCACHE_SIZE             8192    /* D-cache size in bytes or 0 */
+diff --git a/arch/xtensa/variants/s6000/include/variant/core.h b/arch/xtensa/variants/s6000/include/variant/core.h
+index af00795..2bb8105 100644
+--- a/arch/xtensa/variants/s6000/include/variant/core.h
++++ b/arch/xtensa/variants/s6000/include/variant/core.h
+@@ -11,6 +11,7 @@
+ #ifndef _XTENSA_CORE_CONFIGURATION_H
+ #define _XTENSA_CORE_CONFIGURATION_H
++#include <linux/const.h>
+ /****************************************************************************
+           Parameters Useful for Any Code, USER or PRIVILEGED
+@@ -118,9 +119,9 @@
+   ----------------------------------------------------------------------*/
+ #define XCHAL_ICACHE_LINESIZE         16      /* I-cache line size in bytes */
+-#define XCHAL_DCACHE_LINESIZE         16      /* D-cache line size in bytes */
+ #define XCHAL_ICACHE_LINEWIDTH                4       /* log2(I line size in bytes) */
+ #define XCHAL_DCACHE_LINEWIDTH                4       /* log2(D line size in bytes) */
++#define XCHAL_DCACHE_LINESIZE         (_AC(1,UL) << XCHAL_DCACHE_LINEWIDTH)   /* D-cache line size in bytes */
+ #define XCHAL_ICACHE_SIZE             32768   /* I-cache size in bytes or 0 */
+ #define XCHAL_DCACHE_SIZE             32768   /* D-cache size in bytes or 0 */
 diff --git a/block/blk-iopoll.c b/block/blk-iopoll.c
 index 58916af..9cb880b 100644
 --- a/block/blk-iopoll.c
@@ -24817,7 +27445,7 @@ index 58916af..9cb880b 100644
        struct list_head *list = &__get_cpu_var(blk_cpu_iopoll);
        int rearm = 0, budget = blk_iopoll_budget;
 diff --git a/block/blk-map.c b/block/blk-map.c
-index 164cd00..6d96fc1 100644
+index 623e1cd..ca1e109 100644
 --- a/block/blk-map.c
 +++ b/block/blk-map.c
 @@ -302,7 +302,7 @@ int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf,
@@ -24830,10 +27458,10 @@ index 164cd00..6d96fc1 100644
                bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);
        else
 diff --git a/block/blk-softirq.c b/block/blk-softirq.c
-index 1366a89..e17f54b 100644
+index 467c8de..4bddc6d 100644
 --- a/block/blk-softirq.c
 +++ b/block/blk-softirq.c
-@@ -17,7 +17,7 @@ static DEFINE_PER_CPU(struct list_head, blk_cpu_done);
+@@ -18,7 +18,7 @@ static DEFINE_PER_CPU(struct list_head, blk_cpu_done);
   * Softirq action handler - move entries to local list and loop over them
   * while passing them to the queue registered handler.
   */
@@ -24843,7 +27471,7 @@ index 1366a89..e17f54b 100644
        struct list_head *cpu_list, local_list;
  
 diff --git a/block/bsg.c b/block/bsg.c
-index 702f131..37808bf 100644
+index ff64ae3..593560c 100644
 --- a/block/bsg.c
 +++ b/block/bsg.c
 @@ -176,16 +176,24 @@ static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
@@ -24874,7 +27502,7 @@ index 702f131..37808bf 100644
                if (blk_verify_command(rq->cmd, has_write_perm))
                        return -EPERM;
 diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
-index 7b72502..646105c 100644
+index 7c668c8..db3521c 100644
 --- a/block/compat_ioctl.c
 +++ b/block/compat_ioctl.c
 @@ -340,7 +340,7 @@ static int compat_fd_ioctl(struct block_device *bdev, fmode_t mode,
@@ -24886,11 +27514,36 @@ index 7b72502..646105c 100644
                if (err) {
                        err = -EFAULT;
                        goto out;
+diff --git a/block/partitions/efi.c b/block/partitions/efi.c
+index 6296b40..417c00f 100644
+--- a/block/partitions/efi.c
++++ b/block/partitions/efi.c
+@@ -234,14 +234,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state,
+       if (!gpt)
+               return NULL;
++      if (!le32_to_cpu(gpt->num_partition_entries))
++              return NULL;
++      pte = kcalloc(le32_to_cpu(gpt->num_partition_entries), le32_to_cpu(gpt->sizeof_partition_entry), GFP_KERNEL);
++      if (!pte)
++              return NULL;
++
+       count = le32_to_cpu(gpt->num_partition_entries) *
+                 le32_to_cpu(gpt->sizeof_partition_entry);
+-      if (!count)
+-              return NULL;
+-      pte = kzalloc(count, GFP_KERNEL);
+-      if (!pte)
+-              return NULL;
+-
+       if (read_lba(state, le64_to_cpu(gpt->partition_entry_lba),
+                      (u8 *) pte,
+                    count) < count) {
 diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
-index 4f4230b..0feae9a 100644
+index 260fa80..e8f3caf 100644
 --- a/block/scsi_ioctl.c
 +++ b/block/scsi_ioctl.c
-@@ -222,8 +222,20 @@ EXPORT_SYMBOL(blk_verify_command);
+@@ -223,8 +223,20 @@ EXPORT_SYMBOL(blk_verify_command);
  static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
                             struct sg_io_hdr *hdr, fmode_t mode)
  {
@@ -24912,7 +27565,7 @@ index 4f4230b..0feae9a 100644
        if (blk_verify_command(rq->cmd, mode & FMODE_WRITE))
                return -EPERM;
  
-@@ -432,6 +444,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
+@@ -433,6 +445,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
        int err;
        unsigned int in_len, out_len, bytes, opcode, cmdlen;
        char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
@@ -24921,7 +27574,7 @@ index 4f4230b..0feae9a 100644
  
        if (!sic)
                return -EINVAL;
-@@ -465,9 +479,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
+@@ -466,9 +480,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
         */
        err = -EFAULT;
        rq->cmd_len = cmdlen;
@@ -24963,21 +27616,8 @@ index 671d4d6..5f24030 100644
  
  static void cryptd_queue_worker(struct work_struct *work);
  
-diff --git a/crypto/serpent.c b/crypto/serpent.c
-index b651a55..a9ddd79b 100644
---- a/crypto/serpent.c
-+++ b/crypto/serpent.c
-@@ -224,6 +224,8 @@ static int serpent_setkey(struct crypto_tfm *tfm, const u8 *key,
-       u32 r0,r1,r2,r3,r4;
-       int i;
-+      pax_track_stack();
-+
-       /* Copy key, add padding */
-       for (i = 0; i < keylen; ++i)
 diff --git a/drivers/acpi/apei/cper.c b/drivers/acpi/apei/cper.c
-index 5d41894..22021e4 100644
+index e6defd8..c26a225 100644
 --- a/drivers/acpi/apei/cper.c
 +++ b/drivers/acpi/apei/cper.c
 @@ -38,12 +38,12 @@
@@ -24998,18 +27638,18 @@ index 5d41894..22021e4 100644
  EXPORT_SYMBOL_GPL(cper_next_record_id);
  
 diff --git a/drivers/acpi/ec_sys.c b/drivers/acpi/ec_sys.c
-index 22f918b..9fafb84 100644
+index 7586544..636a2f0 100644
 --- a/drivers/acpi/ec_sys.c
 +++ b/drivers/acpi/ec_sys.c
-@@ -11,6 +11,7 @@
- #include <linux/kernel.h>
+@@ -12,6 +12,7 @@
  #include <linux/acpi.h>
  #include <linux/debugfs.h>
-+#include <asm/uaccess.h>
+ #include <linux/module.h>
++#include <linux/uaccess.h>
  #include "internal.h"
  
  MODULE_AUTHOR("Thomas Renninger <trenn@suse.de>");
-@@ -39,7 +40,7 @@ static ssize_t acpi_ec_read_io(struct file *f, char __user *buf,
+@@ -34,7 +35,7 @@ static ssize_t acpi_ec_read_io(struct file *f, char __user *buf,
         * struct acpi_ec *ec = ((struct seq_file *)f->private_data)->private;
         */
        unsigned int size = EC_SPACE_SIZE;
@@ -25018,7 +27658,7 @@ index 22f918b..9fafb84 100644
        loff_t init_off = *off;
        int err = 0;
  
-@@ -52,9 +53,11 @@ static ssize_t acpi_ec_read_io(struct file *f, char __user *buf,
+@@ -47,9 +48,11 @@ static ssize_t acpi_ec_read_io(struct file *f, char __user *buf,
                size = count;
  
        while (size) {
@@ -25031,7 +27671,7 @@ index 22f918b..9fafb84 100644
                *off += 1;
                size--;
        }
-@@ -70,7 +73,6 @@ static ssize_t acpi_ec_write_io(struct file *f, const char __user *buf,
+@@ -65,7 +68,6 @@ static ssize_t acpi_ec_write_io(struct file *f, const char __user *buf,
  
        unsigned int size = count;
        loff_t init_off = *off;
@@ -25039,7 +27679,7 @@ index 22f918b..9fafb84 100644
        int err = 0;
  
        if (*off >= EC_SPACE_SIZE)
-@@ -81,7 +83,9 @@ static ssize_t acpi_ec_write_io(struct file *f, const char __user *buf,
+@@ -76,7 +78,9 @@ static ssize_t acpi_ec_write_io(struct file *f, const char __user *buf,
        }
  
        while (size) {
@@ -25051,10 +27691,10 @@ index 22f918b..9fafb84 100644
                if (err)
                        return err;
 diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
-index f5f9869..da87aeb 100644
+index 251c7b62..000462d 100644
 --- a/drivers/acpi/proc.c
 +++ b/drivers/acpi/proc.c
-@@ -342,19 +342,13 @@ acpi_system_write_wakeup_device(struct file *file,
+@@ -343,19 +343,13 @@ acpi_system_write_wakeup_device(struct file *file,
                                size_t count, loff_t * ppos)
  {
        struct list_head *node, *next;
@@ -25079,7 +27719,7 @@ index f5f9869..da87aeb 100644
  
        mutex_lock(&acpi_device_lock);
        list_for_each_safe(node, next, &acpi_wakeup_device_list) {
-@@ -363,7 +357,7 @@ acpi_system_write_wakeup_device(struct file *file,
+@@ -364,7 +358,7 @@ acpi_system_write_wakeup_device(struct file *file,
                if (!dev->wakeup.flags.valid)
                        continue;
  
@@ -25089,10 +27729,10 @@ index f5f9869..da87aeb 100644
                                bool enable = !device_may_wakeup(&dev->dev);
                                device_set_wakeup_enable(&dev->dev, enable);
 diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c
-index a4e0f1b..9793b28 100644
+index 0734086..3ad3e4c 100644
 --- a/drivers/acpi/processor_driver.c
 +++ b/drivers/acpi/processor_driver.c
-@@ -473,7 +473,7 @@ static int __cpuinit acpi_processor_add(struct acpi_device *device)
+@@ -556,7 +556,7 @@ static int __cpuinit acpi_processor_add(struct acpi_device *device)
                return 0;
  #endif
  
@@ -25102,10 +27742,10 @@ index a4e0f1b..9793b28 100644
        /*
         * Buggy BIOS check
 diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index 4a3a5ae..cbee192 100644
+index d31ee55..8363a8b 100644
 --- a/drivers/ata/libata-core.c
 +++ b/drivers/ata/libata-core.c
-@@ -4733,7 +4733,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
+@@ -4742,7 +4742,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
        struct ata_port *ap;
        unsigned int tag;
  
@@ -25114,7 +27754,7 @@ index 4a3a5ae..cbee192 100644
        ap = qc->ap;
  
        qc->flags = 0;
-@@ -4749,7 +4749,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
+@@ -4758,7 +4758,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
        struct ata_port *ap;
        struct ata_link *link;
  
@@ -25123,7 +27763,7 @@ index 4a3a5ae..cbee192 100644
        WARN_ON_ONCE(!(qc->flags & ATA_QCFLAG_ACTIVE));
        ap = qc->ap;
        link = qc->dev->link;
-@@ -5754,6 +5754,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5822,6 +5822,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
                return;
  
        spin_lock(&lock);
@@ -25131,7 +27771,7 @@ index 4a3a5ae..cbee192 100644
  
        for (cur = ops->inherits; cur; cur = cur->inherits) {
                void **inherit = (void **)cur;
-@@ -5767,8 +5768,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5835,8 +5836,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
                if (IS_ERR(*pp))
                        *pp = NULL;
  
@@ -25142,21 +27782,8 @@ index 4a3a5ae..cbee192 100644
        spin_unlock(&lock);
  }
  
-diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
-index ed16fbe..fc92cb8 100644
---- a/drivers/ata/libata-eh.c
-+++ b/drivers/ata/libata-eh.c
-@@ -2515,6 +2515,8 @@ void ata_eh_report(struct ata_port *ap)
- {
-       struct ata_link *link;
-+      pax_track_stack();
-+
-       ata_for_each_link(link, ap, HOST_FIRST)
-               ata_eh_link_report(link);
- }
 diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
-index 719bb73..79ce858 100644
+index 3239517..343b5f6 100644
 --- a/drivers/ata/pata_arasan_cf.c
 +++ b/drivers/ata/pata_arasan_cf.c
 @@ -862,7 +862,9 @@ static int __devinit arasan_cf_probe(struct platform_device *pdev)
@@ -25277,10 +27904,10 @@ index b22d71c..d6e1049 100644
        if (vcc->pop) vcc->pop(vcc,skb);
        else dev_kfree_skb(skb);
 diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c
-index 9307141..d8521bf 100644
+index 2059ee4..faf51c7 100644
 --- a/drivers/atm/eni.c
 +++ b/drivers/atm/eni.c
-@@ -526,7 +526,7 @@ static int rx_aal0(struct atm_vcc *vcc)
+@@ -522,7 +522,7 @@ static int rx_aal0(struct atm_vcc *vcc)
                DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n",
                    vcc->dev->number);
                length = 0;
@@ -25289,7 +27916,7 @@ index 9307141..d8521bf 100644
        }
        else {
                length = ATM_CELL_SIZE-1; /* no HEC */
-@@ -581,7 +581,7 @@ static int rx_aal5(struct atm_vcc *vcc)
+@@ -577,7 +577,7 @@ static int rx_aal5(struct atm_vcc *vcc)
                            size);
                }
                eff = length = 0;
@@ -25298,7 +27925,7 @@ index 9307141..d8521bf 100644
        }
        else {
                size = (descr & MID_RED_COUNT)*(ATM_CELL_PAYLOAD >> 2);
-@@ -598,7 +598,7 @@ static int rx_aal5(struct atm_vcc *vcc)
+@@ -594,7 +594,7 @@ static int rx_aal5(struct atm_vcc *vcc)
                            "(VCI=%d,length=%ld,size=%ld (descr 0x%lx))\n",
                            vcc->dev->number,vcc->vci,length,size << 2,descr);
                        length = eff = 0;
@@ -25307,7 +27934,7 @@ index 9307141..d8521bf 100644
                }
        }
        skb = eff ? atm_alloc_charge(vcc,eff << 2,GFP_ATOMIC) : NULL;
-@@ -771,7 +771,7 @@ rx_dequeued++;
+@@ -767,7 +767,7 @@ rx_dequeued++;
                        vcc->push(vcc,skb);
                        pushed++;
                }
@@ -25316,7 +27943,7 @@ index 9307141..d8521bf 100644
        }
        wake_up(&eni_dev->rx_wait);
  }
-@@ -1228,7 +1228,7 @@ static void dequeue_tx(struct atm_dev *dev)
+@@ -1227,7 +1227,7 @@ static void dequeue_tx(struct atm_dev *dev)
                    PCI_DMA_TODEVICE);
                if (vcc->pop) vcc->pop(vcc,skb);
                else dev_kfree_skb_irq(skb);
@@ -25325,7 +27952,7 @@ index 9307141..d8521bf 100644
                wake_up(&eni_dev->tx_wait);
  dma_complete++;
        }
-@@ -1568,7 +1568,7 @@ tx_complete++;
+@@ -1567,7 +1567,7 @@ tx_complete++;
  /*--------------------------------- entries ---------------------------------*/
  
  
@@ -25335,10 +27962,10 @@ index 9307141..d8521bf 100644
      "UTP", "05?", "06?", "07?", /*  4- 7 */
      "TAXI","09?", "10?", "11?", /*  8-11 */
 diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c
-index 5072f8a..fa52520 100644
+index 86fed1b..6dc4721 100644
 --- a/drivers/atm/firestream.c
 +++ b/drivers/atm/firestream.c
-@@ -750,7 +750,7 @@ static void process_txdone_queue (struct fs_dev *dev, struct queue *q)
+@@ -749,7 +749,7 @@ static void process_txdone_queue (struct fs_dev *dev, struct queue *q)
                                }
                        }
  
@@ -25347,7 +27974,7 @@ index 5072f8a..fa52520 100644
  
                        fs_dprintk (FS_DEBUG_TXMEM, "i");
                        fs_dprintk (FS_DEBUG_ALLOC, "Free t-skb: %p\n", skb);
-@@ -817,7 +817,7 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
+@@ -816,7 +816,7 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
  #endif
                                skb_put (skb, qe->p1 & 0xffff); 
                                ATM_SKB(skb)->vcc = atm_vcc;
@@ -25356,7 +27983,7 @@ index 5072f8a..fa52520 100644
                                __net_timestamp(skb);
                                fs_dprintk (FS_DEBUG_ALLOC, "Free rec-skb: %p (pushed)\n", skb);
                                atm_vcc->push (atm_vcc, skb);
-@@ -838,12 +838,12 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
+@@ -837,12 +837,12 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
                                kfree (pe);
                        }
                        if (atm_vcc)
@@ -25432,7 +28059,7 @@ index 361f5ae..7fc552d 100644
            fore200e->tx_sat++;
            DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n",
 diff --git a/drivers/atm/he.c b/drivers/atm/he.c
-index 9a51df4..f3bb5f8 100644
+index b182c2f..1c6fa8a 100644
 --- a/drivers/atm/he.c
 +++ b/drivers/atm/he.c
 @@ -1709,7 +1709,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
@@ -25517,10 +28144,10 @@ index 9a51df4..f3bb5f8 100644
        return 0;
  }
 diff --git a/drivers/atm/horizon.c b/drivers/atm/horizon.c
-index b812103..e391a49 100644
+index 75fd691..2d20b14 100644
 --- a/drivers/atm/horizon.c
 +++ b/drivers/atm/horizon.c
-@@ -1035,7 +1035,7 @@ static void rx_schedule (hrz_dev * dev, int irq) {
+@@ -1034,7 +1034,7 @@ static void rx_schedule (hrz_dev * dev, int irq) {
        {
          struct atm_vcc * vcc = ATM_SKB(skb)->vcc;
          // VC layer stats
@@ -25529,7 +28156,7 @@ index b812103..e391a49 100644
          __net_timestamp(skb);
          // end of our responsibility
          vcc->push (vcc, skb);
-@@ -1187,7 +1187,7 @@ static void tx_schedule (hrz_dev * const dev, int irq) {
+@@ -1186,7 +1186,7 @@ static void tx_schedule (hrz_dev * const dev, int irq) {
        dev->tx_iovec = NULL;
        
        // VC layer stats
@@ -25539,7 +28166,7 @@ index b812103..e391a49 100644
        // free the skb
        hrz_kfree_skb (skb);
 diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c
-index db06f34..dcebb61 100644
+index 1c05212..c28e200 100644
 --- a/drivers/atm/idt77252.c
 +++ b/drivers/atm/idt77252.c
 @@ -812,7 +812,7 @@ drain_scq(struct idt77252_dev *card, struct vc_map *vc)
@@ -25697,10 +28324,10 @@ index db06f34..dcebb61 100644
        }
        atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc);
 diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
-index cb90f7a..bd33566 100644
+index d438601..8b98495 100644
 --- a/drivers/atm/iphase.c
 +++ b/drivers/atm/iphase.c
-@@ -1121,7 +1121,7 @@ static int rx_pkt(struct atm_dev *dev)
+@@ -1145,7 +1145,7 @@ static int rx_pkt(struct atm_dev *dev)
        status = (u_short) (buf_desc_ptr->desc_mode);  
        if (status & (RX_CER | RX_PTE | RX_OFL))  
        {  
@@ -25709,7 +28336,7 @@ index cb90f7a..bd33566 100644
                IF_ERR(printk("IA: bad packet, dropping it");)  
                  if (status & RX_CER) { 
                      IF_ERR(printk(" cause: packet CRC error\n");)
-@@ -1144,7 +1144,7 @@ static int rx_pkt(struct atm_dev *dev)
+@@ -1168,7 +1168,7 @@ static int rx_pkt(struct atm_dev *dev)
        len = dma_addr - buf_addr;  
          if (len > iadev->rx_buf_sz) {
             printk("Over %d bytes sdu received, dropped!!!\n", iadev->rx_buf_sz);
@@ -25718,16 +28345,16 @@ index cb90f7a..bd33566 100644
           goto out_free_desc;
          }
                  
-@@ -1294,7 +1294,7 @@ static void rx_dle_intr(struct atm_dev *dev)
+@@ -1318,7 +1318,7 @@ static void rx_dle_intr(struct atm_dev *dev)
            ia_vcc = INPH_IA_VCC(vcc);
            if (ia_vcc == NULL)
            {
 -             atomic_inc(&vcc->stats->rx_err);
 +             atomic_inc_unchecked(&vcc->stats->rx_err);
+              atm_return(vcc, skb->truesize);
               dev_kfree_skb_any(skb);
-              atm_return(vcc, atm_guess_pdu2truesize(len));
               goto INCR_DLE;
-@@ -1306,7 +1306,7 @@ static void rx_dle_intr(struct atm_dev *dev)
+@@ -1330,7 +1330,7 @@ static void rx_dle_intr(struct atm_dev *dev)
            if ((length > iadev->rx_buf_sz) || (length > 
                                (skb->len - sizeof(struct cpcs_trailer))))
            {
@@ -25735,8 +28362,8 @@ index cb90f7a..bd33566 100644
 +             atomic_inc_unchecked(&vcc->stats->rx_err);
               IF_ERR(printk("rx_dle_intr: Bad  AAL5 trailer %d (skb len %d)", 
                                                              length, skb->len);)
-              dev_kfree_skb_any(skb);
-@@ -1322,7 +1322,7 @@ static void rx_dle_intr(struct atm_dev *dev)
+              atm_return(vcc, skb->truesize);
+@@ -1346,7 +1346,7 @@ static void rx_dle_intr(struct atm_dev *dev)
  
          IF_RX(printk("rx_dle_intr: skb push");)  
          vcc->push(vcc,skb);  
@@ -25745,7 +28372,7 @@ index cb90f7a..bd33566 100644
            iadev->rx_pkt_cnt++;
        }  
  INCR_DLE:
-@@ -2802,15 +2802,15 @@ static int ia_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg)
+@@ -2826,15 +2826,15 @@ static int ia_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg)
           {
               struct k_sonet_stats *stats;
               stats = &PRIV(_ia_dev[board])->sonet_stats;
@@ -25770,7 +28397,7 @@ index cb90f7a..bd33566 100644
           }
              ia_cmds.status = 0;
              break;
-@@ -2915,7 +2915,7 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
+@@ -2939,7 +2939,7 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
        if ((desc == 0) || (desc > iadev->num_tx_desc))  
        {  
                IF_ERR(printk(DEV_LABEL "invalid desc for send: %d\n", desc);) 
@@ -25779,7 +28406,7 @@ index cb90f7a..bd33566 100644
                if (vcc->pop)   
                    vcc->pop(vcc, skb);   
                else  
-@@ -3020,14 +3020,14 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
+@@ -3044,14 +3044,14 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
          ATM_DESC(skb) = vcc->vci;
          skb_queue_tail(&iadev->tx_dma_q, skb);
  
@@ -25797,7 +28424,7 @@ index cb90f7a..bd33566 100644
               vcc->tx_quota =  vcc->tx_quota * 3 / 4;
              printk("Tx1:  vcc->tx_quota = %d \n", (u32)vcc->tx_quota );
 diff --git a/drivers/atm/lanai.c b/drivers/atm/lanai.c
-index e828c54..ae83976 100644
+index 68c7588..7036683 100644
 --- a/drivers/atm/lanai.c
 +++ b/drivers/atm/lanai.c
 @@ -1303,7 +1303,7 @@ static void lanai_send_one_aal5(struct lanai_dev *lanai,
@@ -25818,7 +28445,7 @@ index e828c54..ae83976 100644
      out:
        lvcc->rx.buf.ptr = end;
        cardvcc_write(lvcc, endptr, vcc_rxreadptr);
-@@ -1668,7 +1668,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
+@@ -1667,7 +1667,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
                DPRINTK("(itf %d) got RX service entry 0x%X for non-AAL5 "
                    "vcc %d\n", lanai->number, (unsigned int) s, vci);
                lanai->stats.service_rxnotaal5++;
@@ -25827,7 +28454,7 @@ index e828c54..ae83976 100644
                return 0;
        }
        if (likely(!(s & (SERVICE_TRASH | SERVICE_STREAM | SERVICE_CRCERR)))) {
-@@ -1680,7 +1680,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
+@@ -1679,7 +1679,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
                int bytes;
                read_unlock(&vcc_sklist_lock);
                DPRINTK("got trashed rx pdu on vci %d\n", vci);
@@ -25836,7 +28463,7 @@ index e828c54..ae83976 100644
                lvcc->stats.x.aal5.service_trash++;
                bytes = (SERVICE_GET_END(s) * 16) -
                    (((unsigned long) lvcc->rx.buf.ptr) -
-@@ -1692,7 +1692,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
+@@ -1691,7 +1691,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
        }
        if (s & SERVICE_STREAM) {
                read_unlock(&vcc_sklist_lock);
@@ -25845,7 +28472,7 @@ index e828c54..ae83976 100644
                lvcc->stats.x.aal5.service_stream++;
                printk(KERN_ERR DEV_LABEL "(itf %d): Got AAL5 stream "
                    "PDU on VCI %d!\n", lanai->number, vci);
-@@ -1700,7 +1700,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
+@@ -1699,7 +1699,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
                return 0;
        }
        DPRINTK("got rx crc error on vci %d\n", vci);
@@ -26060,7 +28687,7 @@ index 1c70c45..300718d 100644
                }
  
 diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
-index 5d1d076..4f31f42 100644
+index 9851093..adb2b1e 100644
 --- a/drivers/atm/solos-pci.c
 +++ b/drivers/atm/solos-pci.c
 @@ -714,7 +714,7 @@ void solos_bh(unsigned long card_arg)
@@ -26072,16 +28699,7 @@ index 5d1d076..4f31f42 100644
                                break;
  
                        case PKT_STATUS:
-@@ -899,6 +899,8 @@ static int print_buffer(struct sk_buff *buf)
-       char msg[500];
-       char item[10];
-+      pax_track_stack();
-+
-       len = buf->len;
-       for (i = 0; i < len; i++){
-               if(i % 8 == 0)
-@@ -1008,7 +1010,7 @@ static uint32_t fpga_tx(struct solos_card *card)
+@@ -1009,7 +1009,7 @@ static uint32_t fpga_tx(struct solos_card *card)
                        vcc = SKB_CB(oldskb)->vcc;
  
                        if (vcc) {
@@ -26091,10 +28709,10 @@ index 5d1d076..4f31f42 100644
                        } else
                                dev_kfree_skb_irq(oldskb);
 diff --git a/drivers/atm/suni.c b/drivers/atm/suni.c
-index 90f1ccc..04c4a1e 100644
+index 0215934..ce9f5b1 100644
 --- a/drivers/atm/suni.c
 +++ b/drivers/atm/suni.c
-@@ -50,8 +50,8 @@ static DEFINE_SPINLOCK(sunis_lock);
+@@ -49,8 +49,8 @@ static DEFINE_SPINLOCK(sunis_lock);
  
  
  #define ADD_LIMITED(s,v) \
@@ -26154,10 +28772,10 @@ index 5120a96..e2572bd 100644
  }
  
 diff --git a/drivers/atm/zatm.c b/drivers/atm/zatm.c
-index d889f56..17eb71e 100644
+index abe4e20..83c4727 100644
 --- a/drivers/atm/zatm.c
 +++ b/drivers/atm/zatm.c
-@@ -460,7 +460,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
+@@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
                }
                if (!size) {
                        dev_kfree_skb_irq(skb);
@@ -26166,7 +28784,7 @@ index d889f56..17eb71e 100644
                        continue;
                }
                if (!atm_charge(vcc,skb->truesize)) {
-@@ -470,7 +470,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
+@@ -469,7 +469,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
                skb->len = size;
                ATM_SKB(skb)->vcc = vcc;
                vcc->push(vcc,skb);
@@ -26175,7 +28793,7 @@ index d889f56..17eb71e 100644
        }
        zout(pos & 0xffff,MTA(mbx));
  #if 0 /* probably a stupid idea */
-@@ -734,7 +734,7 @@ if (*ZATM_PRV_DSC(skb) != (uPD98401_TXPD_V | uPD98401_TXPD_DP |
+@@ -733,7 +733,7 @@ if (*ZATM_PRV_DSC(skb) != (uPD98401_TXPD_V | uPD98401_TXPD_DP |
                        skb_queue_head(&zatm_vcc->backlog,skb);
                        break;
                }
@@ -26185,7 +28803,7 @@ index d889f56..17eb71e 100644
  }
  
 diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c
-index a4760e0..51283cf 100644
+index 8493536..31adee0 100644
 --- a/drivers/base/devtmpfs.c
 +++ b/drivers/base/devtmpfs.c
 @@ -368,7 +368,7 @@ int devtmpfs_mount(const char *mntdir)
@@ -26197,11 +28815,30 @@ index a4760e0..51283cf 100644
        if (err)
                printk(KERN_INFO "devtmpfs: error mounting %i\n", err);
        else
+diff --git a/drivers/base/node.c b/drivers/base/node.c
+index 90aa2a1..af1a177 100644
+--- a/drivers/base/node.c
++++ b/drivers/base/node.c
+@@ -592,11 +592,9 @@ static ssize_t print_nodes_state(enum node_states state, char *buf)
+ {
+       int n;
+-      n = nodelist_scnprintf(buf, PAGE_SIZE, node_states[state]);
+-      if (n > 0 && PAGE_SIZE > n + 1) {
+-              *(buf + n++) = '\n';
+-              *(buf + n++) = '\0';
+-      }
++      n = nodelist_scnprintf(buf, PAGE_SIZE-2, node_states[state]);
++      buf[n++] = '\n';
++      buf[n] = '\0';
+       return n;
+ }
 diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
-index 84f7c7d..37cfd87 100644
+index 2a3e581..3d6a73f 100644
 --- a/drivers/base/power/wakeup.c
 +++ b/drivers/base/power/wakeup.c
-@@ -29,14 +29,14 @@ bool events_check_enabled;
+@@ -30,14 +30,14 @@ bool events_check_enabled;
   * They need to be modified together atomically, so it's better to use one
   * atomic variable to hold them both.
   */
@@ -26218,7 +28855,7 @@ index 84f7c7d..37cfd87 100644
  
        *cnt = (comb >> IN_PROGRESS_BITS);
        *inpr = comb & MAX_IN_PROGRESS;
-@@ -350,7 +350,7 @@ static void wakeup_source_activate(struct wakeup_source *ws)
+@@ -379,7 +379,7 @@ static void wakeup_source_activate(struct wakeup_source *ws)
        ws->last_time = ktime_get();
  
        /* Increment the counter of events in progress. */
@@ -26227,7 +28864,7 @@ index 84f7c7d..37cfd87 100644
  }
  
  /**
-@@ -440,7 +440,7 @@ static void wakeup_source_deactivate(struct wakeup_source *ws)
+@@ -475,7 +475,7 @@ static void wakeup_source_deactivate(struct wakeup_source *ws)
         * Increment the counter of registered wakeup events and decrement the
         * couter of wakeup events in progress simultaneously.
         */
@@ -26236,24 +28873,11 @@ index 84f7c7d..37cfd87 100644
  }
  
  /**
-diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c
-index e086fbb..398e1fe 100644
---- a/drivers/block/DAC960.c
-+++ b/drivers/block/DAC960.c
-@@ -1980,6 +1980,8 @@ static bool DAC960_V1_ReadDeviceConfiguration(DAC960_Controller_T
-   unsigned long flags;
-   int Channel, TargetID;
-+  pax_track_stack();
-+
-   if (!init_dma_loaf(Controller->PCIDevice, &local_dma, 
-               DAC960_V1_MaxChannels*(sizeof(DAC960_V1_DCDB_T) +
-                       sizeof(DAC960_SCSI_Inquiry_T) +
 diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
-index c2f9b3e..5911988 100644
+index b0f553b..77b928b 100644
 --- a/drivers/block/cciss.c
 +++ b/drivers/block/cciss.c
-@@ -1179,6 +1179,8 @@ static int cciss_ioctl32_passthru(struct block_device *bdev, fmode_t mode,
+@@ -1198,6 +1198,8 @@ static int cciss_ioctl32_passthru(struct block_device *bdev, fmode_t mode,
        int err;
        u32 cp;
  
@@ -26262,7 +28886,7 @@ index c2f9b3e..5911988 100644
        err = 0;
        err |=
            copy_from_user(&arg64.LUN_info, &arg32->LUN_info,
-@@ -2986,7 +2988,7 @@ static void start_io(ctlr_info_t *h)
+@@ -3007,7 +3009,7 @@ static void start_io(ctlr_info_t *h)
        while (!list_empty(&h->reqQ)) {
                c = list_entry(h->reqQ.next, CommandList_struct, list);
                /* can't do anything if fifo is full */
@@ -26271,7 +28895,7 @@ index c2f9b3e..5911988 100644
                        dev_warn(&h->pdev->dev, "fifo full\n");
                        break;
                }
-@@ -2996,7 +2998,7 @@ static void start_io(ctlr_info_t *h)
+@@ -3017,7 +3019,7 @@ static void start_io(ctlr_info_t *h)
                h->Qdepth--;
  
                /* Tell the controller execute command */
@@ -26280,7 +28904,7 @@ index c2f9b3e..5911988 100644
  
                /* Put job onto the completed Q */
                addQ(&h->cmpQ, c);
-@@ -3422,17 +3424,17 @@ startio:
+@@ -3443,17 +3445,17 @@ startio:
  
  static inline unsigned long get_next_completion(ctlr_info_t *h)
  {
@@ -26301,7 +28925,7 @@ index c2f9b3e..5911988 100644
                (h->interrupts_enabled == 0));
  }
  
-@@ -3465,7 +3467,7 @@ static inline u32 next_command(ctlr_info_t *h)
+@@ -3486,7 +3488,7 @@ static inline u32 next_command(ctlr_info_t *h)
        u32 a;
  
        if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
@@ -26310,7 +28934,7 @@ index c2f9b3e..5911988 100644
  
        if ((*(h->reply_pool_head) & 1) == (h->reply_pool_wraparound)) {
                a = *(h->reply_pool_head); /* Next cmd in ring buffer */
-@@ -4020,7 +4022,7 @@ static void __devinit cciss_put_controller_into_performant_mode(ctlr_info_t *h)
+@@ -4044,7 +4046,7 @@ static void __devinit cciss_put_controller_into_performant_mode(ctlr_info_t *h)
                trans_support & CFGTBL_Trans_use_short_tags);
  
        /* Change the access methods to the performant access methods */
@@ -26319,7 +28943,7 @@ index c2f9b3e..5911988 100644
        h->transMethod = CFGTBL_Trans_Performant;
  
        return;
-@@ -4292,7 +4294,7 @@ static int __devinit cciss_pci_init(ctlr_info_t *h)
+@@ -4316,7 +4318,7 @@ static int __devinit cciss_pci_init(ctlr_info_t *h)
        if (prod_index < 0)
                return -ENODEV;
        h->product_name = products[prod_index].product_name;
@@ -26328,7 +28952,7 @@ index c2f9b3e..5911988 100644
  
        if (cciss_board_disabled(h)) {
                dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
-@@ -5009,7 +5011,7 @@ reinit_after_soft_reset:
+@@ -5041,7 +5043,7 @@ reinit_after_soft_reset:
        }
  
        /* make sure the board interrupts are off */
@@ -26337,16 +28961,16 @@ index c2f9b3e..5911988 100644
        rc = cciss_request_irq(h, do_cciss_msix_intr, do_cciss_intx);
        if (rc)
                goto clean2;
-@@ -5061,7 +5063,7 @@ reinit_after_soft_reset:
+@@ -5093,7 +5095,7 @@ reinit_after_soft_reset:
                 * fake ones to scoop up any residual completions.
                 */
                spin_lock_irqsave(&h->lock, flags);
 -              h->access.set_intr_mask(h, CCISS_INTR_OFF);
 +              h->access->set_intr_mask(h, CCISS_INTR_OFF);
                spin_unlock_irqrestore(&h->lock, flags);
-               free_irq(h->intr[PERF_MODE_INT], h);
+               free_irq(h->intr[h->intr_mode], h);
                rc = cciss_request_irq(h, cciss_msix_discard_completions,
-@@ -5081,9 +5083,9 @@ reinit_after_soft_reset:
+@@ -5113,9 +5115,9 @@ reinit_after_soft_reset:
                dev_info(&h->pdev->dev, "Board READY.\n");
                dev_info(&h->pdev->dev,
                        "Waiting for stale completions to drain.\n");
@@ -26358,7 +28982,7 @@ index c2f9b3e..5911988 100644
  
                rc = controller_reset_failed(h->cfgtable);
                if (rc)
-@@ -5106,7 +5108,7 @@ reinit_after_soft_reset:
+@@ -5138,7 +5140,7 @@ reinit_after_soft_reset:
        cciss_scsi_setup(h);
  
        /* Turn the interrupts on so we can service requests */
@@ -26367,20 +28991,20 @@ index c2f9b3e..5911988 100644
  
        /* Get the firmware version */
        inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL);
-@@ -5178,7 +5180,7 @@ static void cciss_shutdown(struct pci_dev *pdev)
+@@ -5211,7 +5213,7 @@ static void cciss_shutdown(struct pci_dev *pdev)
        kfree(flush_buf);
        if (return_code != IO_OK)
                dev_warn(&h->pdev->dev, "Error flushing cache\n");
 -      h->access.set_intr_mask(h, CCISS_INTR_OFF);
 +      h->access->set_intr_mask(h, CCISS_INTR_OFF);
-       free_irq(h->intr[PERF_MODE_INT], h);
+       free_irq(h->intr[h->intr_mode], h);
  }
  
 diff --git a/drivers/block/cciss.h b/drivers/block/cciss.h
-index c049548..a09cb6e 100644
+index 7fda30e..eb5dfe0 100644
 --- a/drivers/block/cciss.h
 +++ b/drivers/block/cciss.h
-@@ -100,7 +100,7 @@ struct ctlr_info
+@@ -101,7 +101,7 @@ struct ctlr_info
        /* information about each logical volume */
        drive_info_struct *drv[CISS_MAX_LUN];
  
@@ -26390,7 +29014,7 @@ index c049548..a09cb6e 100644
        /* queue and queue Info */ 
        struct list_head reqQ;
 diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
-index b2fceb5..87fec83 100644
+index 9125bbe..eede5c8 100644
 --- a/drivers/block/cpqarray.c
 +++ b/drivers/block/cpqarray.c
 @@ -404,7 +404,7 @@ static int __devinit cpqarray_register_ctlr( int i, struct pci_dev *pdev)
@@ -26429,16 +29053,7 @@ index b2fceb5..87fec83 100644
                hba[ctlr]->ctlr = ctlr;
                hba[ctlr]->board_id = board_id;
                hba[ctlr]->pci_dev = NULL; /* not PCI */
-@@ -911,6 +911,8 @@ static void do_ida_request(struct request_queue *q)
-       struct scatterlist tmp_sg[SG_MAX];
-       int i, dir, seg;
-+      pax_track_stack();
-+
- queue_next:
-       creq = blk_peek_request(q);
-       if (!creq)
-@@ -980,7 +982,7 @@ static void start_io(ctlr_info_t *h)
+@@ -980,7 +980,7 @@ static void start_io(ctlr_info_t *h)
  
        while((c = h->reqQ) != NULL) {
                /* Can't do anything if we're busy */
@@ -26447,7 +29062,7 @@ index b2fceb5..87fec83 100644
                        return;
  
                /* Get the first entry from the request Q */
-@@ -988,7 +990,7 @@ static void start_io(ctlr_info_t *h)
+@@ -988,7 +988,7 @@ static void start_io(ctlr_info_t *h)
                h->Qdepth--;
        
                /* Tell the controller to do our bidding */
@@ -26456,7 +29071,7 @@ index b2fceb5..87fec83 100644
  
                /* Get onto the completion Q */
                addQ(&h->cmpQ, c);
-@@ -1050,7 +1052,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
+@@ -1050,7 +1050,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
        unsigned long flags;
        __u32 a,a1;
  
@@ -26465,7 +29080,7 @@ index b2fceb5..87fec83 100644
        /* Is this interrupt for us? */
        if (istat == 0)
                return IRQ_NONE;
-@@ -1061,7 +1063,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
+@@ -1061,7 +1061,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
         */
        spin_lock_irqsave(IDA_LOCK(h->ctlr), flags);
        if (istat & FIFO_NOT_EMPTY) {
@@ -26474,7 +29089,7 @@ index b2fceb5..87fec83 100644
                        a1 = a; a &= ~3;
                        if ((c = h->cmpQ) == NULL)
                        {  
-@@ -1449,11 +1451,11 @@ static int sendcmd(
+@@ -1449,11 +1449,11 @@ static int sendcmd(
        /*
         * Disable interrupt
         */
@@ -26488,7 +29103,7 @@ index b2fceb5..87fec83 100644
                if (temp != 0) {
                        break;
                }
-@@ -1466,7 +1468,7 @@ DBG(
+@@ -1466,7 +1466,7 @@ DBG(
        /*
         * Send the cmd
         */
@@ -26497,7 +29112,7 @@ index b2fceb5..87fec83 100644
        complete = pollcomplete(ctlr);
        
        pci_unmap_single(info_p->pci_dev, (dma_addr_t) c->req.sg[0].addr, 
-@@ -1549,9 +1551,9 @@ static int revalidate_allvol(ctlr_info_t *host)
+@@ -1549,9 +1549,9 @@ static int revalidate_allvol(ctlr_info_t *host)
         * we check the new geometry.  Then turn interrupts back on when
         * we're done.
         */
@@ -26509,7 +29124,7 @@ index b2fceb5..87fec83 100644
  
        for(i=0; i<NWD; i++) {
                struct gendisk *disk = ida_gendisk[ctlr][i];
-@@ -1591,7 +1593,7 @@ static int pollcomplete(int ctlr)
+@@ -1591,7 +1591,7 @@ static int pollcomplete(int ctlr)
        /* Wait (up to 2 seconds) for a command to complete */
  
        for (i = 200000; i > 0; i--) {
@@ -26532,10 +29147,10 @@ index be73e9d..7fbf140 100644
        cmdlist_t *reqQ;
        cmdlist_t *cmpQ;
 diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
-index ef2ceed..c9cb18e 100644
+index 8d68056..e67050f 100644
 --- a/drivers/block/drbd/drbd_int.h
 +++ b/drivers/block/drbd/drbd_int.h
-@@ -737,7 +737,7 @@ struct drbd_request;
+@@ -736,7 +736,7 @@ struct drbd_request;
  struct drbd_epoch {
        struct list_head list;
        unsigned int barrier_nr;
@@ -26544,7 +29159,7 @@ index ef2ceed..c9cb18e 100644
        atomic_t active;     /* increased on every req. added, and dec on every finished. */
        unsigned long flags;
  };
-@@ -1109,7 +1109,7 @@ struct drbd_conf {
+@@ -1108,7 +1108,7 @@ struct drbd_conf {
        void *int_dig_in;
        void *int_dig_vv;
        wait_queue_head_t seq_wait;
@@ -26553,7 +29168,7 @@ index ef2ceed..c9cb18e 100644
        unsigned int peer_seq;
        spinlock_t peer_seq_lock;
        unsigned int minor;
-@@ -1618,30 +1618,30 @@ static inline int drbd_setsockopt(struct socket *sock, int level, int optname,
+@@ -1617,30 +1617,30 @@ static inline int drbd_setsockopt(struct socket *sock, int level, int optname,
  
  static inline void drbd_tcp_cork(struct socket *sock)
  {
@@ -26593,7 +29208,7 @@ index ef2ceed..c9cb18e 100644
  
  void drbd_bump_write_ordering(struct drbd_conf *mdev, enum write_ordering_e wo);
 diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
-index 0358e55..bc33689 100644
+index 211fc44..c5116f1 100644
 --- a/drivers/block/drbd/drbd_main.c
 +++ b/drivers/block/drbd/drbd_main.c
 @@ -2397,7 +2397,7 @@ static int _drbd_send_ack(struct drbd_conf *mdev, enum drbd_packets cmd,
@@ -26635,7 +29250,7 @@ index 0358e55..bc33689 100644
        mdev->bm_writ_cnt  =
        mdev->read_cnt     =
 diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
-index 0feab26..5d9b3dd 100644
+index 946166e..356b39a 100644
 --- a/drivers/block/drbd/drbd_nl.c
 +++ b/drivers/block/drbd/drbd_nl.c
 @@ -2359,7 +2359,7 @@ static void drbd_connector_callback(struct cn_msg *req, struct netlink_skb_parms
@@ -26773,10 +29388,10 @@ index 43beaca..4a5b1dd 100644
  }
  
 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 4720c7a..2c49af1 100644
+index bbca966..65e37dd 100644
 --- a/drivers/block/loop.c
 +++ b/drivers/block/loop.c
-@@ -283,7 +283,7 @@ static int __do_lo_send_write(struct file *file,
+@@ -226,7 +226,7 @@ static int __do_lo_send_write(struct file *file,
        mm_segment_t old_fs = get_fs();
  
        set_fs(get_ds());
@@ -26785,30 +29400,8 @@ index 4720c7a..2c49af1 100644
        set_fs(old_fs);
        if (likely(bw == len))
                return 0;
-diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
-index f533f33..6177bcb 100644
---- a/drivers/block/nbd.c
-+++ b/drivers/block/nbd.c
-@@ -157,6 +157,8 @@ static int sock_xmit(struct nbd_device *lo, int send, void *buf, int size,
-       struct kvec iov;
-       sigset_t blocked, oldset;
-+      pax_track_stack();
-+
-       if (unlikely(!sock)) {
-               printk(KERN_ERR "%s: Attempted %s on closed socket in sock_xmit\n",
-                      lo->disk->disk_name, (send ? "send" : "recv"));
-@@ -572,6 +574,8 @@ static void do_nbd_request(struct request_queue *q)
- static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *lo,
-                      unsigned int cmd, unsigned long arg)
- {
-+      pax_track_stack();
-+
-       switch (cmd) {
-       case NBD_DISCONNECT: {
-               struct request sreq;
 diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
-index 423fd56..06d3be0 100644
+index ee94686..3e09ad3 100644
 --- a/drivers/char/Kconfig
 +++ b/drivers/char/Kconfig
 @@ -8,7 +8,8 @@ source "drivers/tty/Kconfig"
@@ -26821,7 +29414,7 @@ index 423fd56..06d3be0 100644
        help
          Say Y here if you want to support the /dev/kmem device. The
          /dev/kmem device is rarely used, but can be used for certain
-@@ -596,6 +597,7 @@ config DEVPORT
+@@ -581,6 +582,7 @@ config DEVPORT
        bool
        depends on !M68K
        depends on ISA || PCI
@@ -26842,56 +29435,11 @@ index 2e04433..22afc64 100644
                return -EFAULT;
  
        client = agp_find_client_by_pid(reserve.pid);
-diff --git a/drivers/char/briq_panel.c b/drivers/char/briq_panel.c
-index 095ab90..afad0a4 100644
---- a/drivers/char/briq_panel.c
-+++ b/drivers/char/briq_panel.c
-@@ -9,6 +9,7 @@
- #include <linux/types.h>
- #include <linux/errno.h>
- #include <linux/tty.h>
-+#include <linux/mutex.h>
- #include <linux/timer.h>
- #include <linux/kernel.h>
- #include <linux/wait.h>
-@@ -34,6 +35,7 @@ static int           vfd_is_open;
- static unsigned char  vfd[40];
- static int            vfd_cursor;
- static unsigned char  ledpb, led;
-+static DEFINE_MUTEX(vfd_mutex);
- static void update_vfd(void)
- {
-@@ -140,12 +142,15 @@ static ssize_t briq_panel_write(struct file *file, const char __user *buf, size_
-       if (!vfd_is_open)
-               return -EBUSY;
-+      mutex_lock(&vfd_mutex);
-       for (;;) {
-               char c;
-               if (!indx)
-                       break;
--              if (get_user(c, buf))
-+              if (get_user(c, buf)) {
-+                      mutex_unlock(&vfd_mutex);
-                       return -EFAULT;
-+              }
-               if (esc) {
-                       set_led(c);
-                       esc = 0;
-@@ -175,6 +180,7 @@ static ssize_t briq_panel_write(struct file *file, const char __user *buf, size_
-               buf++;
-       }
-       update_vfd();
-+      mutex_unlock(&vfd_mutex);
-       return len;
- }
 diff --git a/drivers/char/genrtc.c b/drivers/char/genrtc.c
-index f773a9d..65cd683 100644
+index 21cb980..f15107c 100644
 --- a/drivers/char/genrtc.c
 +++ b/drivers/char/genrtc.c
-@@ -273,6 +273,7 @@ static int gen_rtc_ioctl(struct file *file,
+@@ -272,6 +272,7 @@ static int gen_rtc_ioctl(struct file *file,
        switch (cmd) {
  
        case RTC_PLL_GET:
@@ -26900,10 +29448,10 @@ index f773a9d..65cd683 100644
                    return -EINVAL;
            else
 diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
-index 0833896..cccce52 100644
+index dfd7876..c0b0885 100644
 --- a/drivers/char/hpet.c
 +++ b/drivers/char/hpet.c
-@@ -572,7 +572,7 @@ static inline unsigned long hpet_time_div(struct hpets *hpets,
+@@ -571,7 +571,7 @@ static inline unsigned long hpet_time_div(struct hpets *hpets,
  }
  
  static int
@@ -26913,10 +29461,10 @@ index 0833896..cccce52 100644
  {
        struct hpet_timer __iomem *timer;
 diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
-index 58c0e63..25aed94 100644
+index 2c29942..604c5ba 100644
 --- a/drivers/char/ipmi/ipmi_msghandler.c
 +++ b/drivers/char/ipmi/ipmi_msghandler.c
-@@ -415,7 +415,7 @@ struct ipmi_smi {
+@@ -420,7 +420,7 @@ struct ipmi_smi {
        struct proc_dir_entry *proc_dir;
        char                  proc_dir_name[10];
  
@@ -26925,7 +29473,7 @@ index 58c0e63..25aed94 100644
  
        /*
         * run_to_completion duplicate of smb_info, smi_info
-@@ -448,9 +448,9 @@ static DEFINE_MUTEX(smi_watchers_mutex);
+@@ -453,9 +453,9 @@ static DEFINE_MUTEX(smi_watchers_mutex);
  
  
  #define ipmi_inc_stat(intf, stat) \
@@ -26937,7 +29485,7 @@ index 58c0e63..25aed94 100644
  
  static int is_lan_addr(struct ipmi_addr *addr)
  {
-@@ -2868,7 +2868,7 @@ int ipmi_register_smi(struct ipmi_smi_handlers *handlers,
+@@ -2884,7 +2884,7 @@ int ipmi_register_smi(struct ipmi_smi_handlers *handlers,
        INIT_LIST_HEAD(&intf->cmd_rcvrs);
        init_waitqueue_head(&intf->waitq);
        for (i = 0; i < IPMI_NUM_STATS; i++)
@@ -26946,20 +29494,11 @@ index 58c0e63..25aed94 100644
  
        intf->proc_dir = NULL;
  
-@@ -4220,6 +4220,8 @@ static void send_panic_events(char *str)
-       struct ipmi_smi_msg               smi_msg;
-       struct ipmi_recv_msg              recv_msg;
-+      pax_track_stack();
-+
-       si = (struct ipmi_system_interface_addr *) &addr;
-       si->addr_type = IPMI_SYSTEM_INTERFACE_ADDR_TYPE;
-       si->channel = IPMI_BMC_CHANNEL;
 diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
-index 9397ab4..d01bee1 100644
+index 1e638ff..a869ef5 100644
 --- a/drivers/char/ipmi/ipmi_si_intf.c
 +++ b/drivers/char/ipmi/ipmi_si_intf.c
-@@ -277,7 +277,7 @@ struct smi_info {
+@@ -275,7 +275,7 @@ struct smi_info {
        unsigned char slave_addr;
  
        /* Counters and things for the proc filesystem. */
@@ -26968,7 +29507,7 @@ index 9397ab4..d01bee1 100644
  
        struct task_struct *thread;
  
-@@ -286,9 +286,9 @@ struct smi_info {
+@@ -284,9 +284,9 @@ struct smi_info {
  };
  
  #define smi_inc_stat(smi, stat) \
@@ -26980,7 +29519,7 @@ index 9397ab4..d01bee1 100644
  
  #define SI_MAX_PARMS 4
  
-@@ -3230,7 +3230,7 @@ static int try_smi_init(struct smi_info *new_smi)
+@@ -3209,7 +3209,7 @@ static int try_smi_init(struct smi_info *new_smi)
        atomic_set(&new_smi->req_events, 0);
        new_smi->run_to_completion = 0;
        for (i = 0; i < SI_NUM_STATS; i++)
@@ -26990,10 +29529,10 @@ index 9397ab4..d01bee1 100644
        new_smi->interrupt_disabled = 1;
        atomic_set(&new_smi->stop_operation, 0);
 diff --git a/drivers/char/mbcs.c b/drivers/char/mbcs.c
-index 1aeaaba..e018570 100644
+index 47ff7e4..0c7d340 100644
 --- a/drivers/char/mbcs.c
 +++ b/drivers/char/mbcs.c
-@@ -800,7 +800,7 @@ static int mbcs_remove(struct cx_dev *dev)
+@@ -799,7 +799,7 @@ static int mbcs_remove(struct cx_dev *dev)
        return 0;
  }
  
@@ -27003,7 +29542,7 @@ index 1aeaaba..e018570 100644
         .part_num = MBCS_PART_NUM,
         .mfg_num = MBCS_MFG_NUM,
 diff --git a/drivers/char/mem.c b/drivers/char/mem.c
-index 8fc04b4..cebdeec 100644
+index d6e9d08..0c314bf 100644
 --- a/drivers/char/mem.c
 +++ b/drivers/char/mem.c
 @@ -18,6 +18,7 @@
@@ -27014,7 +29553,7 @@ index 8fc04b4..cebdeec 100644
  #include <linux/ptrace.h>
  #include <linux/device.h>
  #include <linux/highmem.h>
-@@ -34,6 +35,10 @@
+@@ -35,6 +36,10 @@
  # include <linux/efi.h>
  #endif
  
@@ -27025,7 +29564,7 @@ index 8fc04b4..cebdeec 100644
  static inline unsigned long size_inside_page(unsigned long start,
                                             unsigned long size)
  {
-@@ -65,9 +70,13 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
+@@ -66,9 +71,13 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
  
        while (cursor < to) {
                if (!devmem_is_allowed(pfn)) {
@@ -27039,7 +29578,7 @@ index 8fc04b4..cebdeec 100644
                        return 0;
                }
                cursor += PAGE_SIZE;
-@@ -75,6 +84,11 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
+@@ -76,6 +85,11 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
        }
        return 1;
  }
@@ -27051,7 +29590,7 @@ index 8fc04b4..cebdeec 100644
  #else
  static inline int range_is_allowed(unsigned long pfn, unsigned long size)
  {
-@@ -117,6 +131,7 @@ static ssize_t read_mem(struct file *file, char __user *buf,
+@@ -118,6 +132,7 @@ static ssize_t read_mem(struct file *file, char __user *buf,
  
        while (count > 0) {
                unsigned long remaining;
@@ -27059,13 +29598,13 @@ index 8fc04b4..cebdeec 100644
  
                sz = size_inside_page(p, count);
  
-@@ -132,7 +147,23 @@ static ssize_t read_mem(struct file *file, char __user *buf,
+@@ -133,7 +148,23 @@ static ssize_t read_mem(struct file *file, char __user *buf,
                if (!ptr)
                        return -EFAULT;
  
 -              remaining = copy_to_user(buf, ptr, sz);
 +#ifdef CONFIG_PAX_USERCOPY
-+              temp = kmalloc(sz, GFP_KERNEL);
++              temp = kmalloc(sz, GFP_KERNEL|GFP_USERCOPY);
 +              if (!temp) {
 +                      unxlate_dev_mem_ptr(p, ptr);
 +                      return -ENOMEM;
@@ -27084,7 +29623,7 @@ index 8fc04b4..cebdeec 100644
                unxlate_dev_mem_ptr(p, ptr);
                if (remaining)
                        return -EFAULT;
-@@ -395,9 +426,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
+@@ -396,9 +427,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
                         size_t count, loff_t *ppos)
  {
        unsigned long p = *ppos;
@@ -27095,7 +29634,7 @@ index 8fc04b4..cebdeec 100644
  
        read = 0;
        if (p < (unsigned long) high_memory) {
-@@ -419,6 +449,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
+@@ -420,6 +450,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
                }
  #endif
                while (low_count > 0) {
@@ -27104,13 +29643,13 @@ index 8fc04b4..cebdeec 100644
                        sz = size_inside_page(p, low_count);
  
                        /*
-@@ -428,7 +460,22 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
+@@ -429,7 +461,22 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
                         */
                        kbuf = xlate_dev_kmem_ptr((char *)p);
  
 -                      if (copy_to_user(buf, kbuf, sz))
 +#ifdef CONFIG_PAX_USERCOPY
-+                      temp = kmalloc(sz, GFP_KERNEL);
++                      temp = kmalloc(sz, GFP_KERNEL|GFP_USERCOPY);
 +                      if (!temp)
 +                              return -ENOMEM;
 +                      memcpy(temp, kbuf, sz);
@@ -27128,7 +29667,7 @@ index 8fc04b4..cebdeec 100644
                                return -EFAULT;
                        buf += sz;
                        p += sz;
-@@ -866,6 +913,9 @@ static const struct memdev {
+@@ -867,6 +914,9 @@ static const struct memdev {
  #ifdef CONFIG_CRASH_DUMP
        [12] = { "oldmem", 0, &oldmem_fops, NULL },
  #endif
@@ -27139,10 +29678,10 @@ index 8fc04b4..cebdeec 100644
  
  static int memory_open(struct inode *inode, struct file *filp)
 diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c
-index da3cfee..a5a6606 100644
+index 9df78e2..01ba9ae 100644
 --- a/drivers/char/nvram.c
 +++ b/drivers/char/nvram.c
-@@ -248,7 +248,7 @@ static ssize_t nvram_read(struct file *file, char __user *buf,
+@@ -247,7 +247,7 @@ static ssize_t nvram_read(struct file *file, char __user *buf,
  
        spin_unlock_irq(&rtc_lock);
  
@@ -27152,7 +29691,7 @@ index da3cfee..a5a6606 100644
  
        *ppos = i;
 diff --git a/drivers/char/random.c b/drivers/char/random.c
-index c35a785..6d82202 100644
+index 4ec04a7..9918387 100644
 --- a/drivers/char/random.c
 +++ b/drivers/char/random.c
 @@ -261,8 +261,13 @@
@@ -27187,7 +29726,25 @@ index c35a785..6d82202 100644
  #if 0
        /* x^2048 + x^1638 + x^1231 + x^819 + x^411 + x + 1  -- 115 */
        { 2048, 1638,   1231,   819,    411,    1 },
-@@ -909,7 +921,7 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
+@@ -726,6 +738,17 @@ void add_disk_randomness(struct gendisk *disk)
+ }
+ #endif
++#ifdef CONFIG_PAX_LATENT_ENTROPY
++u64 latent_entropy;
++
++__init void transfer_latent_entropy(void)
++{
++      mix_pool_bytes(&input_pool, &latent_entropy, sizeof(latent_entropy));
++      mix_pool_bytes(&nonblocking_pool, &latent_entropy, sizeof(latent_entropy));
++//    printk(KERN_INFO "PAX: transferring latent entropy: %16llx\n", latent_entropy);
++}
++#endif
++
+ /*********************************************************************
+  *
+  * Entropy extraction routines
+@@ -913,7 +936,7 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
  
                extract_buf(r, tmp);
                i = min_t(int, nbytes, EXTRACT_SIZE);
@@ -27196,7 +29753,7 @@ index c35a785..6d82202 100644
                        ret = -EFAULT;
                        break;
                }
-@@ -1214,7 +1226,7 @@ EXPORT_SYMBOL(generate_random_uuid);
+@@ -1238,7 +1261,7 @@ EXPORT_SYMBOL(generate_random_uuid);
  #include <linux/sysctl.h>
  
  static int min_read_thresh = 8, min_write_thresh;
@@ -27206,18 +29763,18 @@ index c35a785..6d82202 100644
  static char sysctl_bootid[16];
  
 diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
-index 1ee8ce7..b778bef 100644
+index 45713f0..8286d21 100644
 --- a/drivers/char/sonypi.c
 +++ b/drivers/char/sonypi.c
-@@ -55,6 +55,7 @@
+@@ -54,6 +54,7 @@
  #include <asm/uaccess.h>
  #include <asm/io.h>
- #include <asm/system.h>
 +#include <asm/local.h>
  
  #include <linux/sonypi.h>
  
-@@ -491,7 +492,7 @@ static struct sonypi_device {
+@@ -490,7 +491,7 @@ static struct sonypi_device {
        spinlock_t fifo_lock;
        wait_queue_head_t fifo_proc_list;
        struct fasync_struct *fifo_async;
@@ -27226,7 +29783,7 @@ index 1ee8ce7..b778bef 100644
        int model;
        struct input_dev *input_jog_dev;
        struct input_dev *input_key_dev;
-@@ -898,7 +899,7 @@ static int sonypi_misc_fasync(int fd, struct file *filp, int on)
+@@ -897,7 +898,7 @@ static int sonypi_misc_fasync(int fd, struct file *filp, int on)
  static int sonypi_misc_release(struct inode *inode, struct file *file)
  {
        mutex_lock(&sonypi_device.lock);
@@ -27235,7 +29792,7 @@ index 1ee8ce7..b778bef 100644
        mutex_unlock(&sonypi_device.lock);
        return 0;
  }
-@@ -907,9 +908,9 @@ static int sonypi_misc_open(struct inode *inode, struct file *file)
+@@ -906,9 +907,9 @@ static int sonypi_misc_open(struct inode *inode, struct file *file)
  {
        mutex_lock(&sonypi_device.lock);
        /* Flush input queue on first open */
@@ -27248,10 +29805,10 @@ index 1ee8ce7..b778bef 100644
  
        return 0;
 diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c
-index 9ca5c02..7ce352c 100644
+index ad7c732..5aa8054 100644
 --- a/drivers/char/tpm/tpm.c
 +++ b/drivers/char/tpm/tpm.c
-@@ -414,7 +414,7 @@ static ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
+@@ -415,7 +415,7 @@ static ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
                    chip->vendor.req_complete_val)
                        goto out_recv;
  
@@ -27260,15 +29817,6 @@ index 9ca5c02..7ce352c 100644
                        dev_err(chip->dev, "Operation Canceled\n");
                        rc = -ECANCELED;
                        goto out;
-@@ -862,6 +862,8 @@ ssize_t tpm_show_pubek(struct device *dev, struct device_attribute *attr,
-       struct tpm_chip *chip = dev_get_drvdata(dev);
-+      pax_track_stack();
-+
-       tpm_cmd.header.in = tpm_readpubek_header;
-       err = transmit_cmd(chip, &tpm_cmd, READ_PUBEK_RESULT_SIZE,
-                       "attempting to read the PUBEK");
 diff --git a/drivers/char/tpm/tpm_bios.c b/drivers/char/tpm/tpm_bios.c
 index 0636520..169c1d0 100644
 --- a/drivers/char/tpm/tpm_bios.c
@@ -27317,10 +29865,10 @@ index 0636520..169c1d0 100644
        acpi_os_unmap_memory(virt, len);
        return 0;
 diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
-index fb68b12..0f6c6ca 100644
+index cdf2f54..e55c197 100644
 --- a/drivers/char/virtio_console.c
 +++ b/drivers/char/virtio_console.c
-@@ -555,7 +555,7 @@ static ssize_t fill_readbuf(struct port *port, char *out_buf, size_t out_count,
+@@ -563,7 +563,7 @@ static ssize_t fill_readbuf(struct port *port, char *out_buf, size_t out_count,
        if (to_user) {
                ssize_t ret;
  
@@ -27329,7 +29877,7 @@ index fb68b12..0f6c6ca 100644
                if (ret)
                        return -EFAULT;
        } else {
-@@ -654,7 +654,7 @@ static ssize_t port_fops_read(struct file *filp, char __user *ubuf,
+@@ -662,7 +662,7 @@ static ssize_t port_fops_read(struct file *filp, char __user *ubuf,
        if (!port_has_data(port) && !port->host_connected)
                return 0;
  
@@ -27338,86 +29886,8 @@ index fb68b12..0f6c6ca 100644
  }
  
  static ssize_t port_fops_write(struct file *filp, const char __user *ubuf,
-diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
-index a84250a..68c725e 100644
---- a/drivers/crypto/hifn_795x.c
-+++ b/drivers/crypto/hifn_795x.c
-@@ -1655,6 +1655,8 @@ static int hifn_test(struct hifn_device *dev, int encdec, u8 snum)
-               0xCA, 0x34, 0x2B, 0x2E};
-       struct scatterlist sg;
-+      pax_track_stack();
-+
-       memset(src, 0, sizeof(src));
-       memset(ctx.key, 0, sizeof(ctx.key));
-diff --git a/drivers/crypto/padlock-aes.c b/drivers/crypto/padlock-aes.c
-index db33d30..7823369 100644
---- a/drivers/crypto/padlock-aes.c
-+++ b/drivers/crypto/padlock-aes.c
-@@ -109,6 +109,8 @@ static int aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
-       struct crypto_aes_ctx gen_aes;
-       int cpu;
-+      pax_track_stack();
-+
-       if (key_len % 8) {
-               *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
-               return -EINVAL;
-diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
-index 9a8bebc..b1e4989 100644
---- a/drivers/edac/amd64_edac.c
-+++ b/drivers/edac/amd64_edac.c
-@@ -2670,7 +2670,7 @@ static void __devexit amd64_remove_one_instance(struct pci_dev *pdev)
-  * PCI core identifies what devices are on a system during boot, and then
-  * inquiry this table to see if this driver is for a given device found.
-  */
--static const struct pci_device_id amd64_pci_table[] __devinitdata = {
-+static const struct pci_device_id amd64_pci_table[] __devinitconst = {
-       {
-               .vendor         = PCI_VENDOR_ID_AMD,
-               .device         = PCI_DEVICE_ID_AMD_K8_NB_MEMCTL,
-diff --git a/drivers/edac/amd76x_edac.c b/drivers/edac/amd76x_edac.c
-index e47e73b..348e0bd 100644
---- a/drivers/edac/amd76x_edac.c
-+++ b/drivers/edac/amd76x_edac.c
-@@ -321,7 +321,7 @@ static void __devexit amd76x_remove_one(struct pci_dev *pdev)
-       edac_mc_free(mci);
- }
--static const struct pci_device_id amd76x_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id amd76x_pci_tbl[] __devinitconst = {
-       {
-        PCI_VEND_DEV(AMD, FE_GATE_700C), PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-        AMD762},
-diff --git a/drivers/edac/e752x_edac.c b/drivers/edac/e752x_edac.c
-index 1af531a..3a8ff27 100644
---- a/drivers/edac/e752x_edac.c
-+++ b/drivers/edac/e752x_edac.c
-@@ -1380,7 +1380,7 @@ static void __devexit e752x_remove_one(struct pci_dev *pdev)
-       edac_mc_free(mci);
- }
--static const struct pci_device_id e752x_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id e752x_pci_tbl[] __devinitconst = {
-       {
-        PCI_VEND_DEV(INTEL, 7520_0), PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-        E7520},
-diff --git a/drivers/edac/e7xxx_edac.c b/drivers/edac/e7xxx_edac.c
-index 6ffb6d2..383d8d7 100644
---- a/drivers/edac/e7xxx_edac.c
-+++ b/drivers/edac/e7xxx_edac.c
-@@ -525,7 +525,7 @@ static void __devexit e7xxx_remove_one(struct pci_dev *pdev)
-       edac_mc_free(mci);
- }
--static const struct pci_device_id e7xxx_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id e7xxx_pci_tbl[] __devinitconst = {
-       {
-        PCI_VEND_DEV(INTEL, 7205_0), PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-        E7205},
 diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c
-index 495198a..ac08c85 100644
+index 97f5064..202b6e6 100644
 --- a/drivers/edac/edac_pci_sysfs.c
 +++ b/drivers/edac/edac_pci_sysfs.c
 @@ -26,8 +26,8 @@ static int edac_pci_log_pe = 1;              /* log PCI parity errors */
@@ -27503,193 +29973,24 @@ index 495198a..ac08c85 100644
                        panic("EDAC: PCI Parity Error");
        }
  }
-diff --git a/drivers/edac/i3000_edac.c b/drivers/edac/i3000_edac.c
-index c0510b3..6e2a954 100644
---- a/drivers/edac/i3000_edac.c
-+++ b/drivers/edac/i3000_edac.c
-@@ -470,7 +470,7 @@ static void __devexit i3000_remove_one(struct pci_dev *pdev)
-       edac_mc_free(mci);
- }
--static const struct pci_device_id i3000_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id i3000_pci_tbl[] __devinitconst = {
-       {
-        PCI_VEND_DEV(INTEL, 3000_HB), PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-        I3000},
-diff --git a/drivers/edac/i3200_edac.c b/drivers/edac/i3200_edac.c
-index aa08497..7e6822a 100644
---- a/drivers/edac/i3200_edac.c
-+++ b/drivers/edac/i3200_edac.c
-@@ -456,7 +456,7 @@ static void __devexit i3200_remove_one(struct pci_dev *pdev)
-       edac_mc_free(mci);
- }
--static const struct pci_device_id i3200_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id i3200_pci_tbl[] __devinitconst = {
-       {
-               PCI_VEND_DEV(INTEL, 3200_HB), PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-               I3200},
-diff --git a/drivers/edac/i5000_edac.c b/drivers/edac/i5000_edac.c
-index 4dc3ac2..67d05a6 100644
---- a/drivers/edac/i5000_edac.c
-+++ b/drivers/edac/i5000_edac.c
-@@ -1516,7 +1516,7 @@ static void __devexit i5000_remove_one(struct pci_dev *pdev)
-  *
-  *    The "E500P" device is the first device supported.
-  */
--static const struct pci_device_id i5000_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id i5000_pci_tbl[] __devinitconst = {
-       {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_I5000_DEV16),
-        .driver_data = I5000P},
-diff --git a/drivers/edac/i5100_edac.c b/drivers/edac/i5100_edac.c
-index bcbdeec..9886d16 100644
---- a/drivers/edac/i5100_edac.c
-+++ b/drivers/edac/i5100_edac.c
-@@ -1051,7 +1051,7 @@ static void __devexit i5100_remove_one(struct pci_dev *pdev)
-       edac_mc_free(mci);
- }
--static const struct pci_device_id i5100_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id i5100_pci_tbl[] __devinitconst = {
-       /* Device 16, Function 0, Channel 0 Memory Map, Error Flag/Mask, ... */
-       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5100_16) },
-       { 0, }
-diff --git a/drivers/edac/i5400_edac.c b/drivers/edac/i5400_edac.c
-index 74d6ec34..baff517 100644
---- a/drivers/edac/i5400_edac.c
-+++ b/drivers/edac/i5400_edac.c
-@@ -1383,7 +1383,7 @@ static void __devexit i5400_remove_one(struct pci_dev *pdev)
-  *
-  *    The "E500P" device is the first device supported.
-  */
--static const struct pci_device_id i5400_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id i5400_pci_tbl[] __devinitconst = {
-       {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5400_ERR)},
-       {0,}                    /* 0 terminated list. */
- };
-diff --git a/drivers/edac/i7300_edac.c b/drivers/edac/i7300_edac.c
-index a76fe83..15479e6 100644
---- a/drivers/edac/i7300_edac.c
-+++ b/drivers/edac/i7300_edac.c
-@@ -1191,7 +1191,7 @@ static void __devexit i7300_remove_one(struct pci_dev *pdev)
-  *
-  * Has only 8086:360c PCI ID
-  */
--static const struct pci_device_id i7300_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id i7300_pci_tbl[] __devinitconst = {
-       {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_I7300_MCH_ERR)},
-       {0,}                    /* 0 terminated list. */
- };
-diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c
-index f6cf448..3f612e9 100644
---- a/drivers/edac/i7core_edac.c
-+++ b/drivers/edac/i7core_edac.c
-@@ -359,7 +359,7 @@ static const struct pci_id_table pci_dev_table[] = {
- /*
-  *    pci_device_id   table for which devices we are looking for
-  */
--static const struct pci_device_id i7core_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id i7core_pci_tbl[] __devinitconst = {
-       {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_X58_HUB_MGMT)},
-       {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LYNNFIELD_QPI_LINK0)},
-       {0,}                    /* 0 terminated list. */
-diff --git a/drivers/edac/i82443bxgx_edac.c b/drivers/edac/i82443bxgx_edac.c
-index 4329d39..f3022ef 100644
---- a/drivers/edac/i82443bxgx_edac.c
-+++ b/drivers/edac/i82443bxgx_edac.c
-@@ -380,7 +380,7 @@ static void __devexit i82443bxgx_edacmc_remove_one(struct pci_dev *pdev)
- EXPORT_SYMBOL_GPL(i82443bxgx_edacmc_remove_one);
--static const struct pci_device_id i82443bxgx_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id i82443bxgx_pci_tbl[] __devinitconst = {
-       {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443BX_0)},
-       {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443BX_2)},
-       {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0)},
-diff --git a/drivers/edac/i82860_edac.c b/drivers/edac/i82860_edac.c
-index 931a057..fd28340 100644
---- a/drivers/edac/i82860_edac.c
-+++ b/drivers/edac/i82860_edac.c
-@@ -270,7 +270,7 @@ static void __devexit i82860_remove_one(struct pci_dev *pdev)
-       edac_mc_free(mci);
- }
--static const struct pci_device_id i82860_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id i82860_pci_tbl[] __devinitconst = {
-       {
-        PCI_VEND_DEV(INTEL, 82860_0), PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-        I82860},
-diff --git a/drivers/edac/i82875p_edac.c b/drivers/edac/i82875p_edac.c
-index 33864c6..01edc61 100644
---- a/drivers/edac/i82875p_edac.c
-+++ b/drivers/edac/i82875p_edac.c
-@@ -511,7 +511,7 @@ static void __devexit i82875p_remove_one(struct pci_dev *pdev)
-       edac_mc_free(mci);
- }
--static const struct pci_device_id i82875p_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id i82875p_pci_tbl[] __devinitconst = {
-       {
-        PCI_VEND_DEV(INTEL, 82875_0), PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-        I82875P},
-diff --git a/drivers/edac/i82975x_edac.c b/drivers/edac/i82975x_edac.c
-index a5da732..983363b 100644
---- a/drivers/edac/i82975x_edac.c
-+++ b/drivers/edac/i82975x_edac.c
-@@ -604,7 +604,7 @@ static void __devexit i82975x_remove_one(struct pci_dev *pdev)
-       edac_mc_free(mci);
- }
--static const struct pci_device_id i82975x_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id i82975x_pci_tbl[] __devinitconst = {
-       {
-               PCI_VEND_DEV(INTEL, 82975_0), PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-               I82975X
 diff --git a/drivers/edac/mce_amd.h b/drivers/edac/mce_amd.h
-index 795a320..3bbc3d3 100644
+index c6074c5..88a9e2e 100644
 --- a/drivers/edac/mce_amd.h
 +++ b/drivers/edac/mce_amd.h
-@@ -83,7 +83,7 @@ struct amd_decoder_ops {
+@@ -82,7 +82,7 @@ extern const char * const ii_msgs[];
+ struct amd_decoder_ops {
        bool (*dc_mce)(u16, u8);
        bool (*ic_mce)(u16, u8);
-       bool (*nb_mce)(u16, u8);
 -};
 +} __no_const;
  
  void amd_report_gart_errors(bool);
- void amd_register_ecc_decoder(void (*f)(int, struct mce *, u32));
-diff --git a/drivers/edac/r82600_edac.c b/drivers/edac/r82600_edac.c
-index b153674..ad2ba9b 100644
---- a/drivers/edac/r82600_edac.c
-+++ b/drivers/edac/r82600_edac.c
-@@ -373,7 +373,7 @@ static void __devexit r82600_remove_one(struct pci_dev *pdev)
-       edac_mc_free(mci);
- }
--static const struct pci_device_id r82600_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id r82600_pci_tbl[] __devinitconst = {
-       {
-        PCI_DEVICE(PCI_VENDOR_ID_RADISYS, R82600_BRIDGE_ID)
-        },
-diff --git a/drivers/edac/x38_edac.c b/drivers/edac/x38_edac.c
-index b6f47de..c5acf3a 100644
---- a/drivers/edac/x38_edac.c
-+++ b/drivers/edac/x38_edac.c
-@@ -440,7 +440,7 @@ static void __devexit x38_remove_one(struct pci_dev *pdev)
-       edac_mc_free(mci);
- }
--static const struct pci_device_id x38_pci_tbl[] __devinitdata = {
-+static const struct pci_device_id x38_pci_tbl[] __devinitconst = {
-       {
-        PCI_VEND_DEV(INTEL, X38_HB), PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-        X38},
+ void amd_register_ecc_decoder(void (*f)(int, struct mce *));
 diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c
-index 85661b0..c784559a 100644
+index cc595eb..4ec702a 100644
 --- a/drivers/firewire/core-card.c
 +++ b/drivers/firewire/core-card.c
-@@ -657,7 +657,7 @@ void fw_card_release(struct kref *kref)
+@@ -679,7 +679,7 @@ void fw_card_release(struct kref *kref)
  
  void fw_core_remove_card(struct fw_card *card)
  {
@@ -27699,10 +30000,10 @@ index 85661b0..c784559a 100644
        card->driver->update_phy_reg(card, 4,
                                     PHY_LINK_ACTIVE | PHY_CONTENDER, 0);
 diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c
-index 4799393..37bd3ab 100644
+index 2e6b245..c3857d9 100644
 --- a/drivers/firewire/core-cdev.c
 +++ b/drivers/firewire/core-cdev.c
-@@ -1331,8 +1331,7 @@ static int init_iso_resource(struct client *client,
+@@ -1341,8 +1341,7 @@ static int init_iso_resource(struct client *client,
        int ret;
  
        if ((request->channels == 0 && request->bandwidth == 0) ||
@@ -27713,7 +30014,7 @@ index 4799393..37bd3ab 100644
  
        r  = kmalloc(sizeof(*r), GFP_KERNEL);
 diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c
-index 334b82a..ea5261d 100644
+index dea2dcc..a4fb978 100644
 --- a/drivers/firewire/core-transaction.c
 +++ b/drivers/firewire/core-transaction.c
 @@ -37,6 +37,7 @@
@@ -27724,20 +30025,11 @@ index 334b82a..ea5261d 100644
  
  #include <asm/byteorder.h>
  
-@@ -422,6 +423,8 @@ int fw_run_transaction(struct fw_card *card, int tcode, int destination_id,
-       struct transaction_callback_data d;
-       struct fw_transaction t;
-+      pax_track_stack();
-+
-       init_timer_on_stack(&t.split_timeout_timer);
-       init_completion(&d.done);
-       d.payload = payload;
 diff --git a/drivers/firewire/core.h b/drivers/firewire/core.h
-index b45be57..5fad18b 100644
+index 9047f55..e47c7ff 100644
 --- a/drivers/firewire/core.h
 +++ b/drivers/firewire/core.h
-@@ -101,6 +101,7 @@ struct fw_card_driver {
+@@ -110,6 +110,7 @@ struct fw_card_driver {
  
        int (*stop_iso)(struct fw_iso_context *ctx);
  };
@@ -27746,7 +30038,7 @@ index b45be57..5fad18b 100644
  void fw_card_initialize(struct fw_card *card,
                const struct fw_card_driver *driver, struct device *device);
 diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
-index bcb1126..2cc2121 100644
+index 153980b..4b4d046 100644
 --- a/drivers/firmware/dmi_scan.c
 +++ b/drivers/firmware/dmi_scan.c
 @@ -449,11 +449,6 @@ void __init dmi_scan_machine(void)
@@ -27761,7 +30053,7 @@ index bcb1126..2cc2121 100644
                p = dmi_ioremap(0xF0000, 0x10000);
                if (p == NULL)
                        goto error;
-@@ -725,7 +720,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *),
+@@ -723,7 +718,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *),
        if (buf == NULL)
                return -1;
  
@@ -27771,7 +30063,7 @@ index bcb1126..2cc2121 100644
        iounmap(buf);
        return 0;
 diff --git a/drivers/gpio/gpio-vr41xx.c b/drivers/gpio/gpio-vr41xx.c
-index 98723cb..10ca85b 100644
+index 82d5c20..44a7177 100644
 --- a/drivers/gpio/gpio-vr41xx.c
 +++ b/drivers/gpio/gpio-vr41xx.c
 @@ -204,7 +204,7 @@ static int giu_get_irq(unsigned int irq)
@@ -27783,107 +30075,11 @@ index 98723cb..10ca85b 100644
  
        return -EINVAL;
  }
-diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
-index 2410c40..2d03563 100644
---- a/drivers/gpu/drm/drm_crtc.c
-+++ b/drivers/gpu/drm/drm_crtc.c
-@@ -1374,7 +1374,7 @@ int drm_mode_getconnector(struct drm_device *dev, void *data,
-        */
-       if ((out_resp->count_modes >= mode_count) && mode_count) {
-               copied = 0;
--              mode_ptr = (struct drm_mode_modeinfo *)(unsigned long)out_resp->modes_ptr;
-+              mode_ptr = (struct drm_mode_modeinfo __user *)(unsigned long)out_resp->modes_ptr;
-               list_for_each_entry(mode, &connector->modes, head) {
-                       drm_crtc_convert_to_umode(&u_mode, mode);
-                       if (copy_to_user(mode_ptr + copied,
-@@ -1389,8 +1389,8 @@ int drm_mode_getconnector(struct drm_device *dev, void *data,
-       if ((out_resp->count_props >= props_count) && props_count) {
-               copied = 0;
--              prop_ptr = (uint32_t *)(unsigned long)(out_resp->props_ptr);
--              prop_values = (uint64_t *)(unsigned long)(out_resp->prop_values_ptr);
-+              prop_ptr = (uint32_t __user *)(unsigned long)(out_resp->props_ptr);
-+              prop_values = (uint64_t __user *)(unsigned long)(out_resp->prop_values_ptr);
-               for (i = 0; i < DRM_CONNECTOR_MAX_PROPERTY; i++) {
-                       if (connector->property_ids[i] != 0) {
-                               if (put_user(connector->property_ids[i],
-@@ -1412,7 +1412,7 @@ int drm_mode_getconnector(struct drm_device *dev, void *data,
-       if ((out_resp->count_encoders >= encoders_count) && encoders_count) {
-               copied = 0;
--              encoder_ptr = (uint32_t *)(unsigned long)(out_resp->encoders_ptr);
-+              encoder_ptr = (uint32_t __user *)(unsigned long)(out_resp->encoders_ptr);
-               for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {
-                       if (connector->encoder_ids[i] != 0) {
-                               if (put_user(connector->encoder_ids[i],
-@@ -1571,7 +1571,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
-               }
-               for (i = 0; i < crtc_req->count_connectors; i++) {
--                      set_connectors_ptr = (uint32_t *)(unsigned long)crtc_req->set_connectors_ptr;
-+                      set_connectors_ptr = (uint32_t __user *)(unsigned long)crtc_req->set_connectors_ptr;
-                       if (get_user(out_id, &set_connectors_ptr[i])) {
-                               ret = -EFAULT;
-                               goto out;
-@@ -1852,7 +1852,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
-       fb = obj_to_fb(obj);
-       num_clips = r->num_clips;
--      clips_ptr = (struct drm_clip_rect *)(unsigned long)r->clips_ptr;
-+      clips_ptr = (struct drm_clip_rect __user *)(unsigned long)r->clips_ptr;
-       if (!num_clips != !clips_ptr) {
-               ret = -EINVAL;
-@@ -2276,7 +2276,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
-       out_resp->flags = property->flags;
-       if ((out_resp->count_values >= value_count) && value_count) {
--              values_ptr = (uint64_t *)(unsigned long)out_resp->values_ptr;
-+              values_ptr = (uint64_t __user *)(unsigned long)out_resp->values_ptr;
-               for (i = 0; i < value_count; i++) {
-                       if (copy_to_user(values_ptr + i, &property->values[i], sizeof(uint64_t))) {
-                               ret = -EFAULT;
-@@ -2289,7 +2289,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
-       if (property->flags & DRM_MODE_PROP_ENUM) {
-               if ((out_resp->count_enum_blobs >= enum_count) && enum_count) {
-                       copied = 0;
--                      enum_ptr = (struct drm_mode_property_enum *)(unsigned long)out_resp->enum_blob_ptr;
-+                      enum_ptr = (struct drm_mode_property_enum __user *)(unsigned long)out_resp->enum_blob_ptr;
-                       list_for_each_entry(prop_enum, &property->enum_blob_list, head) {
-                               if (copy_to_user(&enum_ptr[copied].value, &prop_enum->value, sizeof(uint64_t))) {
-@@ -2312,7 +2312,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
-               if ((out_resp->count_enum_blobs >= blob_count) && blob_count) {
-                       copied = 0;
-                       blob_id_ptr = (uint32_t *)(unsigned long)out_resp->enum_blob_ptr;
--                      blob_length_ptr = (uint32_t *)(unsigned long)out_resp->values_ptr;
-+                      blob_length_ptr = (uint32_t __user *)(unsigned long)out_resp->values_ptr;
-                       list_for_each_entry(prop_blob, &property->enum_blob_list, head) {
-                               if (put_user(prop_blob->base.id, blob_id_ptr + copied)) {
-@@ -2373,7 +2373,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
-       struct drm_mode_get_blob *out_resp = data;
-       struct drm_property_blob *blob;
-       int ret = 0;
--      void *blob_ptr;
-+      void __user *blob_ptr;
-       if (!drm_core_check_feature(dev, DRIVER_MODESET))
-               return -EINVAL;
-@@ -2387,7 +2387,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
-       blob = obj_to_blob(obj);
-       if (out_resp->length == blob->length) {
--              blob_ptr = (void *)(unsigned long)out_resp->data;
-+              blob_ptr = (void __user *)(unsigned long)out_resp->data;
-               if (copy_to_user(blob_ptr, blob->data, blob->length)){
-                       ret = -EFAULT;
-                       goto done;
 diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
-index f88a9b2..8f4078f 100644
+index 8111889..367b253 100644
 --- a/drivers/gpu/drm/drm_crtc_helper.c
 +++ b/drivers/gpu/drm/drm_crtc_helper.c
-@@ -276,7 +276,7 @@ static bool drm_encoder_crtc_ok(struct drm_encoder *encoder,
+@@ -286,7 +286,7 @@ static bool drm_encoder_crtc_ok(struct drm_encoder *encoder,
        struct drm_crtc *tmp;
        int crtc_mask = 1;
  
@@ -27892,20 +30088,11 @@ index f88a9b2..8f4078f 100644
  
        dev = crtc->dev;
  
-@@ -343,6 +343,8 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
-       struct drm_encoder *encoder;
-       bool ret = true;
-+      pax_track_stack();
-+
-       crtc->enabled = drm_helper_crtc_in_use(crtc);
-       if (!crtc->enabled)
-               return true;
 diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
-index 93a112d..c8b065d 100644
+index 6116e3b..c29dd16 100644
 --- a/drivers/gpu/drm/drm_drv.c
 +++ b/drivers/gpu/drm/drm_drv.c
-@@ -307,7 +307,7 @@ module_exit(drm_core_exit);
+@@ -316,7 +316,7 @@ module_exit(drm_core_exit);
  /**
   * Copy and IOCTL return string to user space
   */
@@ -27914,9 +30101,9 @@ index 93a112d..c8b065d 100644
  {
        int len;
  
-@@ -386,7 +386,7 @@ long drm_ioctl(struct file *filp,
+@@ -399,7 +399,7 @@ long drm_ioctl(struct file *filp,
+               return -ENODEV;
  
-       dev = file_priv->minor->dev;
        atomic_inc(&dev->ioctl_count);
 -      atomic_inc(&dev->counts[_DRM_STAT_IOCTLS]);
 +      atomic_inc_unchecked(&dev->counts[_DRM_STAT_IOCTLS]);
@@ -27924,10 +30111,10 @@ index 93a112d..c8b065d 100644
  
        DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n",
 diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
-index 2ec7d48..be14bb1 100644
+index 123de28..43a0897 100644
 --- a/drivers/gpu/drm/drm_fops.c
 +++ b/drivers/gpu/drm/drm_fops.c
-@@ -70,7 +70,7 @@ static int drm_setup(struct drm_device * dev)
+@@ -71,7 +71,7 @@ static int drm_setup(struct drm_device * dev)
        }
  
        for (i = 0; i < ARRAY_SIZE(dev->counts); i++)
@@ -27936,7 +30123,7 @@ index 2ec7d48..be14bb1 100644
  
        dev->sigdata.lock = NULL;
  
-@@ -134,8 +134,8 @@ int drm_open(struct inode *inode, struct file *filp)
+@@ -138,8 +138,8 @@ int drm_open(struct inode *inode, struct file *filp)
  
        retcode = drm_open_helper(inode, filp, dev);
        if (!retcode) {
@@ -27947,25 +30134,29 @@ index 2ec7d48..be14bb1 100644
                        retcode = drm_setup(dev);
        }
        if (!retcode) {
-@@ -472,7 +472,7 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -482,7 +482,7 @@ int drm_release(struct inode *inode, struct file *filp)
  
        mutex_lock(&drm_global_mutex);
  
 -      DRM_DEBUG("open_count = %d\n", dev->open_count);
-+      DRM_DEBUG("open_count = %d\n", local_read(&dev->open_count));
++      DRM_DEBUG("open_count = %ld\n", local_read(&dev->open_count));
  
        if (dev->driver->preclose)
                dev->driver->preclose(dev, file_priv);
-@@ -484,7 +484,7 @@ int drm_release(struct inode *inode, struct file *filp)
-       DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %d\n",
+@@ -491,10 +491,10 @@ int drm_release(struct inode *inode, struct file *filp)
+        * Begin inline drm_release
+        */
+-      DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %d\n",
++      DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %ld\n",
                  task_pid_nr(current),
                  (long)old_encode_dev(file_priv->minor->device),
 -                dev->open_count);
 +                local_read(&dev->open_count));
  
-       /* if the master has gone away we can't do anything with the lock */
-       if (file_priv->minor->master)
-@@ -565,8 +565,8 @@ int drm_release(struct inode *inode, struct file *filp)
+       /* Release any auth tokens that might point to this file_priv,
+          (do that under the drm_global_mutex) */
+@@ -584,8 +584,8 @@ int drm_release(struct inode *inode, struct file *filp)
         * End inline drm_release
         */
  
@@ -28082,10 +30273,10 @@ index ab1162d..42587b2 100644
  #if defined(__i386__)
                pgprot = pgprot_val(vma->vm_page_prot);
 diff --git a/drivers/gpu/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c
-index 4a058c7..b42cd92 100644
+index 637fcc3..e890b33 100644
 --- a/drivers/gpu/drm/drm_ioc32.c
 +++ b/drivers/gpu/drm/drm_ioc32.c
-@@ -455,7 +455,7 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd,
+@@ -457,7 +457,7 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd,
        request = compat_alloc_user_space(nbytes);
        if (!access_ok(VERIFY_WRITE, request, nbytes))
                return -EFAULT;
@@ -28094,7 +30285,7 @@ index 4a058c7..b42cd92 100644
  
        if (__put_user(count, &request->count)
            || __put_user(list, &request->list))
-@@ -516,7 +516,7 @@ static int compat_drm_mapbufs(struct file *file, unsigned int cmd,
+@@ -518,7 +518,7 @@ static int compat_drm_mapbufs(struct file *file, unsigned int cmd,
        request = compat_alloc_user_space(nbytes);
        if (!access_ok(VERIFY_WRITE, request, nbytes))
                return -EFAULT;
@@ -28104,10 +30295,10 @@ index 4a058c7..b42cd92 100644
        if (__put_user(count, &request->count)
            || __put_user(list, &request->list))
 diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
-index 904d7e9..ab88581 100644
+index cf85155..f2665cb 100644
 --- a/drivers/gpu/drm/drm_ioctl.c
 +++ b/drivers/gpu/drm/drm_ioctl.c
-@@ -256,7 +256,7 @@ int drm_getstats(struct drm_device *dev, void *data,
+@@ -252,7 +252,7 @@ int drm_getstats(struct drm_device *dev, void *data,
                        stats->data[i].value =
                            (file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0);
                else
@@ -28117,10 +30308,10 @@ index 904d7e9..ab88581 100644
        }
  
 diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
-index 632ae24..244cf4a 100644
+index c79c713..2048588 100644
 --- a/drivers/gpu/drm/drm_lock.c
 +++ b/drivers/gpu/drm/drm_lock.c
-@@ -89,7 +89,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
+@@ -90,7 +90,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
                if (drm_lock_take(&master->lock, lock->context)) {
                        master->lock.file_priv = file_priv;
                        master->lock.lock_time = jiffies;
@@ -28129,7 +30320,7 @@ index 632ae24..244cf4a 100644
                        break;  /* Got lock */
                }
  
-@@ -160,7 +160,7 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
+@@ -161,7 +161,7 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
                return -EINVAL;
        }
  
@@ -28138,11 +30329,24 @@ index 632ae24..244cf4a 100644
  
        if (drm_lock_free(&master->lock, lock->context)) {
                /* FIXME: Should really bail out here. */
+diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
+index aa454f8..6d38580 100644
+--- a/drivers/gpu/drm/drm_stub.c
++++ b/drivers/gpu/drm/drm_stub.c
+@@ -512,7 +512,7 @@ void drm_unplug_dev(struct drm_device *dev)
+       drm_device_set_unplugged(dev);
+-      if (dev->open_count == 0) {
++      if (local_read(&dev->open_count) == 0) {
+               drm_put_dev(dev);
+       }
+       mutex_unlock(&drm_global_mutex);
 diff --git a/drivers/gpu/drm/i810/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c
-index 8f371e8..9f85d52 100644
+index f920fb5..001c52d 100644
 --- a/drivers/gpu/drm/i810/i810_dma.c
 +++ b/drivers/gpu/drm/i810/i810_dma.c
-@@ -950,8 +950,8 @@ static int i810_dma_vertex(struct drm_device *dev, void *data,
+@@ -945,8 +945,8 @@ static int i810_dma_vertex(struct drm_device *dev, void *data,
                                 dma->buflist[vertex->idx],
                                 vertex->discard, vertex->used);
  
@@ -28153,7 +30357,7 @@ index 8f371e8..9f85d52 100644
        sarea_priv->last_enqueue = dev_priv->counter - 1;
        sarea_priv->last_dispatch = (int)hw_status[5];
  
-@@ -1111,8 +1111,8 @@ static int i810_dma_mc(struct drm_device *dev, void *data,
+@@ -1106,8 +1106,8 @@ static int i810_dma_mc(struct drm_device *dev, void *data,
        i810_dma_dispatch_mc(dev, dma->buflist[mc->idx], mc->used,
                             mc->last_render);
  
@@ -28180,10 +30384,10 @@ index c9339f4..f5e1b9d 100644
        int front_offset;
  } drm_i810_private_t;
 diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
-index 3c395a5..02889c2 100644
+index e6162a1..b2ff486 100644
 --- a/drivers/gpu/drm/i915/i915_debugfs.c
 +++ b/drivers/gpu/drm/i915/i915_debugfs.c
-@@ -497,7 +497,7 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
+@@ -500,7 +500,7 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
                           I915_READ(GTIMR));
        }
        seq_printf(m, "Interrupts received: %d\n",
@@ -28192,7 +30396,7 @@ index 3c395a5..02889c2 100644
        for (i = 0; i < I915_NUM_RINGS; i++) {
                if (IS_GEN6(dev) || IS_GEN7(dev)) {
                        seq_printf(m, "Graphics Interrupt mask (%s):    %08x\n",
-@@ -1185,7 +1185,7 @@ static int i915_opregion(struct seq_file *m, void *unused)
+@@ -1313,7 +1313,7 @@ static int i915_opregion(struct seq_file *m, void *unused)
                return ret;
  
        if (opregion->header)
@@ -28202,10 +30406,10 @@ index 3c395a5..02889c2 100644
        mutex_unlock(&dev->struct_mutex);
  
 diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
-index 8a3942c..1b73bf1 100644
+index ba60f3c..e2dff7f 100644
 --- a/drivers/gpu/drm/i915/i915_dma.c
 +++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -1171,7 +1171,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
+@@ -1178,7 +1178,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
        bool can_switch;
  
        spin_lock(&dev->count_lock);
@@ -28215,10 +30419,10 @@ index 8a3942c..1b73bf1 100644
        return can_switch;
  }
 diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
-index 7916bd9..7c17a0f 100644
+index 5fabc6c..0b08aa1 100644
 --- a/drivers/gpu/drm/i915/i915_drv.h
 +++ b/drivers/gpu/drm/i915/i915_drv.h
-@@ -222,7 +222,7 @@ struct drm_i915_display_funcs {
+@@ -240,7 +240,7 @@ struct drm_i915_display_funcs {
        /* render clock increase/decrease */
        /* display clock increase/decrease */
        /* pll clock increase/decrease */
@@ -28227,7 +30431,7 @@ index 7916bd9..7c17a0f 100644
  
  struct intel_device_info {
        u8 gen;
-@@ -305,7 +305,7 @@ typedef struct drm_i915_private {
+@@ -350,7 +350,7 @@ typedef struct drm_i915_private {
        int current_page;
        int page_flipping;
  
@@ -28236,7 +30440,7 @@ index 7916bd9..7c17a0f 100644
  
        /* protects the irq masks */
        spinlock_t irq_lock;
-@@ -882,7 +882,7 @@ struct drm_i915_gem_object {
+@@ -937,7 +937,7 @@ struct drm_i915_gem_object {
         * will be page flipped away on the next vblank.  When it
         * reaches 0, dev_priv->pending_flip_queue will be woken up.
         */
@@ -28245,7 +30449,7 @@ index 7916bd9..7c17a0f 100644
  };
  
  #define to_intel_bo(x) container_of(x, struct drm_i915_gem_object, base)
-@@ -1262,7 +1262,7 @@ extern int intel_setup_gmbus(struct drm_device *dev);
+@@ -1359,7 +1359,7 @@ extern int intel_setup_gmbus(struct drm_device *dev);
  extern void intel_teardown_gmbus(struct drm_device *dev);
  extern void intel_gmbus_set_speed(struct i2c_adapter *adapter, int speed);
  extern void intel_gmbus_force_bit(struct i2c_adapter *adapter, bool force_bit);
@@ -28255,10 +30459,10 @@ index 7916bd9..7c17a0f 100644
        return container_of(adapter, struct intel_gmbus, adapter)->force_bit;
  }
 diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-index 4934cf8..1da9c84 100644
+index de43194..a14c4cc 100644
 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
 +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-@@ -188,7 +188,7 @@ i915_gem_object_set_to_gpu_domain(struct drm_i915_gem_object *obj,
+@@ -189,7 +189,7 @@ i915_gem_object_set_to_gpu_domain(struct drm_i915_gem_object *obj,
                i915_gem_clflush_object(obj);
  
        if (obj->base.pending_write_domain)
@@ -28267,7 +30471,7 @@ index 4934cf8..1da9c84 100644
  
        /* The actual obj->write_domain will be updated with
         * pending_write_domain after we emit the accumulated flush for all
-@@ -864,9 +864,9 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
+@@ -933,9 +933,9 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
  
  static int
  validate_exec_list(struct drm_i915_gem_exec_object2 *exec,
@@ -28280,10 +30484,10 @@ index 4934cf8..1da9c84 100644
        for (i = 0; i < count; i++) {
                char __user *ptr = (char __user *)(uintptr_t)exec[i].relocs_ptr;
 diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
-index 73248d0..f7bac29 100644
+index 26c67a7..8d4cbcb 100644
 --- a/drivers/gpu/drm/i915/i915_irq.c
 +++ b/drivers/gpu/drm/i915/i915_irq.c
-@@ -475,7 +475,7 @@ static irqreturn_t ivybridge_irq_handler(DRM_IRQ_ARGS)
+@@ -496,7 +496,7 @@ static irqreturn_t ivybridge_irq_handler(DRM_IRQ_ARGS)
        u32 de_iir, gt_iir, de_ier, pch_iir, pm_iir;
        struct drm_i915_master_private *master_priv;
  
@@ -28292,7 +30496,7 @@ index 73248d0..f7bac29 100644
  
        /* disable master interrupt before clearing iir  */
        de_ier = I915_READ(DEIER);
-@@ -565,7 +565,7 @@ static irqreturn_t ironlake_irq_handler(DRM_IRQ_ARGS)
+@@ -579,7 +579,7 @@ static irqreturn_t ironlake_irq_handler(DRM_IRQ_ARGS)
        struct drm_i915_master_private *master_priv;
        u32 bsd_usr_interrupt = GT_BSD_USER_INTERRUPT;
  
@@ -28301,7 +30505,7 @@ index 73248d0..f7bac29 100644
  
        if (IS_GEN6(dev))
                bsd_usr_interrupt = GT_GEN6_BSD_USER_INTERRUPT;
-@@ -1229,7 +1229,7 @@ static irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
+@@ -1291,7 +1291,7 @@ static irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
        int ret = IRQ_NONE, pipe;
        bool blc_event = false;
  
@@ -28310,7 +30514,7 @@ index 73248d0..f7bac29 100644
  
        iir = I915_READ(IIR);
  
-@@ -1741,7 +1741,7 @@ static void ironlake_irq_preinstall(struct drm_device *dev)
+@@ -1802,7 +1802,7 @@ static void ironlake_irq_preinstall(struct drm_device *dev)
  {
        drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
  
@@ -28319,7 +30523,7 @@ index 73248d0..f7bac29 100644
  
        INIT_WORK(&dev_priv->hotplug_work, i915_hotplug_work_func);
        INIT_WORK(&dev_priv->error_work, i915_error_work_func);
-@@ -1905,7 +1905,7 @@ static void i915_driver_irq_preinstall(struct drm_device * dev)
+@@ -1979,7 +1979,7 @@ static void i915_driver_irq_preinstall(struct drm_device * dev)
        drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
        int pipe;
  
@@ -28329,19 +30533,19 @@ index 73248d0..f7bac29 100644
        INIT_WORK(&dev_priv->hotplug_work, i915_hotplug_work_func);
        INIT_WORK(&dev_priv->error_work, i915_error_work_func);
 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 07e7cf3..c75f312 100644
+index d4d162f..b49a04e 100644
 --- a/drivers/gpu/drm/i915/intel_display.c
 +++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -2205,7 +2205,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
+@@ -2254,7 +2254,7 @@ intel_finish_fb(struct drm_framebuffer *old_fb)
  
-               wait_event(dev_priv->pending_flip_queue,
-                          atomic_read(&dev_priv->mm.wedged) ||
--                         atomic_read(&obj->pending_flip) == 0);
-+                         atomic_read_unchecked(&obj->pending_flip) == 0);
+       wait_event(dev_priv->pending_flip_queue,
+                  atomic_read(&dev_priv->mm.wedged) ||
+-                 atomic_read(&obj->pending_flip) == 0);
++                 atomic_read_unchecked(&obj->pending_flip) == 0);
  
-               /* Big Hammer, we also need to ensure that any pending
-                * MI_WAIT_FOR_EVENT inside a user batch buffer on the
-@@ -2826,7 +2826,7 @@ static void intel_crtc_wait_for_pending_flips(struct drm_crtc *crtc)
+       /* Big Hammer, we also need to ensure that any pending
+        * MI_WAIT_FOR_EVENT inside a user batch buffer on the
+@@ -2919,7 +2919,7 @@ static void intel_crtc_wait_for_pending_flips(struct drm_crtc *crtc)
        obj = to_intel_framebuffer(crtc->fb)->obj;
        dev_priv = crtc->dev->dev_private;
        wait_event(dev_priv->pending_flip_queue,
@@ -28350,16 +30554,19 @@ index 07e7cf3..c75f312 100644
  }
  
  static bool intel_crtc_driving_pch(struct drm_crtc *crtc)
-@@ -6676,7 +6676,7 @@ static void do_intel_finish_page_flip(struct drm_device *dev,
+@@ -7284,9 +7284,8 @@ static void do_intel_finish_page_flip(struct drm_device *dev,
+       obj = work->old_fb_obj;
  
-       atomic_clear_mask(1 << intel_crtc->plane,
-                         &obj->pending_flip.counter);
+-      atomic_clear_mask(1 << intel_crtc->plane,
+-                        &obj->pending_flip.counter);
 -      if (atomic_read(&obj->pending_flip) == 0)
++      atomic_clear_mask_unchecked(1 << intel_crtc->plane, &obj->pending_flip);
 +      if (atomic_read_unchecked(&obj->pending_flip) == 0)
                wake_up(&dev_priv->pending_flip_queue);
  
        schedule_work(&work->work);
-@@ -6965,7 +6965,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
+@@ -7582,7 +7581,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
        /* Block clients from rendering to the new back buffer until
         * the flip occurs and the object is no longer visible.
         */
@@ -28368,15 +30575,15 @@ index 07e7cf3..c75f312 100644
  
        ret = dev_priv->display.queue_flip(dev, crtc, fb, obj);
        if (ret)
-@@ -6979,7 +6979,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
+@@ -7596,7 +7595,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
        return 0;
  
  cleanup_pending:
 -      atomic_sub(1 << intel_crtc->plane, &work->old_fb_obj->pending_flip);
 +      atomic_sub_unchecked(1 << intel_crtc->plane, &work->old_fb_obj->pending_flip);
- cleanup_objs:
        drm_gem_object_unreference(&work->old_fb_obj->base);
        drm_gem_object_unreference(&obj->base);
+       mutex_unlock(&dev->struct_mutex);
 diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h
 index 54558a0..2d97005 100644
 --- a/drivers/gpu/drm/mga/mga_drv.h
@@ -28434,19 +30641,10 @@ index 2581202..f230a8d9 100644
  
        *sequence = cur_fence;
 diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
-index b311fab..dc11d6a 100644
+index 0be4a81..7464804 100644
 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c
 +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
-@@ -201,7 +201,7 @@ struct methods {
-       const char desc[8];
-       void (*loadbios)(struct drm_device *, uint8_t *);
-       const bool rw;
--};
-+} __do_const;
- static struct methods shadow_methods[] = {
-       { "PRAMIN", load_vbios_pramin, true },
-@@ -5489,7 +5489,7 @@ parse_bit_displayport_tbl_entry(struct drm_device *dev, struct nvbios *bios,
+@@ -5329,7 +5329,7 @@ parse_bit_U_tbl_entry(struct drm_device *dev, struct nvbios *bios,
  struct bit_table {
        const char id;
        int (* const parse_fn)(struct drm_device *, struct nvbios *, struct bit_entry *);
@@ -28456,10 +30654,10 @@ index b311fab..dc11d6a 100644
  #define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry })
  
 diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
-index d7d51de..7c6a7f1 100644
+index 3aef353..0ad1322 100644
 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h
 +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
-@@ -238,7 +238,7 @@ struct nouveau_channel {
+@@ -240,7 +240,7 @@ struct nouveau_channel {
                struct list_head pending;
                uint32_t sequence;
                uint32_t sequence_ack;
@@ -28468,7 +30666,7 @@ index d7d51de..7c6a7f1 100644
                struct nouveau_vma vma;
        } fence;
  
-@@ -319,7 +319,7 @@ struct nouveau_exec_engine {
+@@ -321,7 +321,7 @@ struct nouveau_exec_engine {
                           u32 handle, u16 class);
        void (*set_tile_region)(struct drm_device *dev, int i);
        void (*tlb_flush)(struct drm_device *, int engine);
@@ -28477,7 +30675,7 @@ index d7d51de..7c6a7f1 100644
  
  struct nouveau_instmem_engine {
        void    *priv;
-@@ -341,13 +341,13 @@ struct nouveau_instmem_engine {
+@@ -343,13 +343,13 @@ struct nouveau_instmem_engine {
  struct nouveau_mc_engine {
        int  (*init)(struct drm_device *dev);
        void (*takedown)(struct drm_device *dev);
@@ -28493,7 +30691,7 @@ index d7d51de..7c6a7f1 100644
  
  struct nouveau_fb_engine {
        int num_tiles;
-@@ -513,7 +513,7 @@ struct nouveau_vram_engine {
+@@ -590,7 +590,7 @@ struct nouveau_vram_engine {
        void (*put)(struct drm_device *, struct nouveau_mem **);
  
        bool (*flags_valid)(struct drm_device *, u32 tile_flags);
@@ -28502,7 +30700,7 @@ index d7d51de..7c6a7f1 100644
  
  struct nouveau_engine {
        struct nouveau_instmem_engine instmem;
-@@ -660,7 +660,7 @@ struct drm_nouveau_private {
+@@ -739,7 +739,7 @@ struct drm_nouveau_private {
                struct drm_global_reference mem_global_ref;
                struct ttm_bo_global_ref bo_global_ref;
                struct ttm_bo_device bdev;
@@ -28512,7 +30710,7 @@ index d7d51de..7c6a7f1 100644
  
        struct {
 diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c
-index ae22dfa..4f09960 100644
+index c1dc20f..4df673c 100644
 --- a/drivers/gpu/drm/nouveau/nouveau_fence.c
 +++ b/drivers/gpu/drm/nouveau/nouveau_fence.c
 @@ -85,7 +85,7 @@ nouveau_fence_update(struct nouveau_channel *chan)
@@ -28524,7 +30722,7 @@ index ae22dfa..4f09960 100644
  
                if (chan->fence.sequence_ack == sequence)
                        goto out;
-@@ -539,7 +539,7 @@ nouveau_fence_channel_init(struct nouveau_channel *chan)
+@@ -538,7 +538,7 @@ nouveau_fence_channel_init(struct nouveau_channel *chan)
                        return ret;
        }
  
@@ -28534,7 +30732,7 @@ index ae22dfa..4f09960 100644
  }
  
 diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c
-index 5f0bc57..eb9fac8 100644
+index ed52a6f..484acdc 100644
 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c
 +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
 @@ -314,7 +314,7 @@ validate_init(struct nouveau_channel *chan, struct drm_file *file_priv,
@@ -28547,10 +30745,10 @@ index 5f0bc57..eb9fac8 100644
        if (++trycnt > 100000) {
                NV_ERROR(dev, "%s failed and gave up.\n", __func__);
 diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
-index 10656e4..59bf2a4 100644
+index c2a8511..4b996f9 100644
 --- a/drivers/gpu/drm/nouveau/nouveau_state.c
 +++ b/drivers/gpu/drm/nouveau/nouveau_state.c
-@@ -496,7 +496,7 @@ static bool nouveau_switcheroo_can_switch(struct pci_dev *pdev)
+@@ -588,7 +588,7 @@ static bool nouveau_switcheroo_can_switch(struct pci_dev *pdev)
        bool can_switch;
  
        spin_lock(&dev->count_lock);
@@ -28572,11 +30770,37 @@ index dbdea8e..cd6eeeb 100644
        return 0;
  }
  
+diff --git a/drivers/gpu/drm/nouveau/nv50_sor.c b/drivers/gpu/drm/nouveau/nv50_sor.c
+index 2746402..c8dc4a4 100644
+--- a/drivers/gpu/drm/nouveau/nv50_sor.c
++++ b/drivers/gpu/drm/nouveau/nv50_sor.c
+@@ -304,7 +304,7 @@ nv50_sor_dpms(struct drm_encoder *encoder, int mode)
+       }
+       if (nv_encoder->dcb->type == OUTPUT_DP) {
+-              struct dp_train_func func = {
++              static struct dp_train_func func = {
+                       .link_set = nv50_sor_dp_link_set,
+                       .train_set = nv50_sor_dp_train_set,
+                       .train_adj = nv50_sor_dp_train_adj
+diff --git a/drivers/gpu/drm/nouveau/nvd0_display.c b/drivers/gpu/drm/nouveau/nvd0_display.c
+index 0247250..d2f6aaf 100644
+--- a/drivers/gpu/drm/nouveau/nvd0_display.c
++++ b/drivers/gpu/drm/nouveau/nvd0_display.c
+@@ -1366,7 +1366,7 @@ nvd0_sor_dpms(struct drm_encoder *encoder, int mode)
+       nv_wait(dev, 0x61c030 + (or * 0x0800), 0x10000000, 0x00000000);
+       if (nv_encoder->dcb->type == OUTPUT_DP) {
+-              struct dp_train_func func = {
++              static struct dp_train_func func = {
+                       .link_set = nvd0_sor_dp_link_set,
+                       .train_set = nvd0_sor_dp_train_set,
+                       .train_adj = nvd0_sor_dp_train_adj
 diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c
-index 570e190..084a31a 100644
+index bcac90b..53bfc76 100644
 --- a/drivers/gpu/drm/r128/r128_cce.c
 +++ b/drivers/gpu/drm/r128/r128_cce.c
-@@ -377,7 +377,7 @@ static int r128_do_init_cce(struct drm_device *dev, drm_r128_init_t *init)
+@@ -378,7 +378,7 @@ static int r128_do_init_cce(struct drm_device *dev, drm_r128_init_t *init)
  
        /* GH: Simple idle check.
         */
@@ -28645,19 +30869,6 @@ index a9e33ce..09edd4b 100644
  }
  
  #endif
-diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
-index 14cc88a..cc7b3a5 100644
---- a/drivers/gpu/drm/radeon/atom.c
-+++ b/drivers/gpu/drm/radeon/atom.c
-@@ -1254,6 +1254,8 @@ struct atom_context *atom_parse(struct card_info *card, void *bios)
-       char name[512];
-       int i;
-+      pax_track_stack();
-+
-       if (!ctx)
-               return NULL;
 diff --git a/drivers/gpu/drm/radeon/mkregtable.c b/drivers/gpu/drm/radeon/mkregtable.c
 index 5a82b6b..9e69c73 100644
 --- a/drivers/gpu/drm/radeon/mkregtable.c
@@ -28680,45 +30891,41 @@ index 5a82b6b..9e69c73 100644
        if (regcomp
            (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
 diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
-index 184628c..30e1725 100644
+index 138b952..d74f9cb 100644
 --- a/drivers/gpu/drm/radeon/radeon.h
 +++ b/drivers/gpu/drm/radeon/radeon.h
-@@ -192,7 +192,7 @@ extern int sumo_get_temp(struct radeon_device *rdev);
-  */
- struct radeon_fence_driver {
+@@ -253,7 +253,7 @@ struct radeon_fence_driver {
        uint32_t                        scratch_reg;
+       uint64_t                        gpu_addr;
+       volatile uint32_t               *cpu_addr;
 -      atomic_t                        seq;
 +      atomic_unchecked_t              seq;
        uint32_t                        last_seq;
        unsigned long                   last_jiffies;
        unsigned long                   last_timeout;
-@@ -962,7 +962,7 @@ struct radeon_asic {
-       void (*pre_page_flip)(struct radeon_device *rdev, int crtc);
-       u32 (*page_flip)(struct radeon_device *rdev, int crtc, u64 crtc_base);
-       void (*post_page_flip)(struct radeon_device *rdev, int crtc);
+@@ -753,7 +753,7 @@ struct r600_blit_cp_primitives {
+                            int x2, int y2);
+       void (*draw_auto)(struct radeon_device *rdev);
+       void (*set_default_state)(struct radeon_device *rdev);
+-};
++} __no_const;
+ struct r600_blit {
+       struct mutex            mutex;
+@@ -1246,7 +1246,7 @@ struct radeon_asic {
+               u32 (*page_flip)(struct radeon_device *rdev, int crtc, u64 crtc_base);
+               void (*post_page_flip)(struct radeon_device *rdev, int crtc);
+       } pflip;
 -};
 +} __no_const;
  
  /*
   * Asic structures
-diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
-index 285acc4..f4d909f 100644
---- a/drivers/gpu/drm/radeon/radeon_atombios.c
-+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
-@@ -569,6 +569,8 @@ bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev)
-       struct radeon_gpio_rec gpio;
-       struct radeon_hpd hpd;
-+      pax_track_stack();
-+
-       if (!atom_parse_data_header(ctx, index, &size, &frev, &crev, &data_offset))
-               return false;
 diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
-index b51e157..8f14fb9 100644
+index 5992502..c19c633 100644
 --- a/drivers/gpu/drm/radeon/radeon_device.c
 +++ b/drivers/gpu/drm/radeon/radeon_device.c
-@@ -684,7 +684,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
+@@ -691,7 +691,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
        bool can_switch;
  
        spin_lock(&dev->count_lock);
@@ -28727,19 +30934,6 @@ index b51e157..8f14fb9 100644
        spin_unlock(&dev->count_lock);
        return can_switch;
  }
-diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
-index 6adb3e5..b91553e2 100644
---- a/drivers/gpu/drm/radeon/radeon_display.c
-+++ b/drivers/gpu/drm/radeon/radeon_display.c
-@@ -925,6 +925,8 @@ void radeon_compute_pll_legacy(struct radeon_pll *pll,
-       uint32_t post_div;
-       u32 pll_out_min, pll_out_max;
-+      pax_track_stack();
-+
-       DRM_DEBUG_KMS("PLL freq %llu %u %u\n", freq, pll->min_ref_div, pll->max_ref_div);
-       freq = freq * 1000;
 diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
 index a1b59ca..86f2d44 100644
 --- a/drivers/gpu/drm/radeon/radeon_drv.h
@@ -28754,27 +30948,36 @@ index a1b59ca..86f2d44 100644
        uint32_t irq_enable_reg;
        uint32_t r500_disp_irq_reg;
 diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c
-index 7fd4e3e..9748ab5 100644
+index 4bd36a3..e66fe9c 100644
 --- a/drivers/gpu/drm/radeon/radeon_fence.c
 +++ b/drivers/gpu/drm/radeon/radeon_fence.c
-@@ -78,7 +78,7 @@ int radeon_fence_emit(struct radeon_device *rdev, struct radeon_fence *fence)
-               write_unlock_irqrestore(&rdev->fence_drv.lock, irq_flags);
+@@ -70,7 +70,7 @@ int radeon_fence_emit(struct radeon_device *rdev, struct radeon_fence *fence)
+               write_unlock_irqrestore(&rdev->fence_lock, irq_flags);
                return 0;
        }
--      fence->seq = atomic_add_return(1, &rdev->fence_drv.seq);
-+      fence->seq = atomic_add_return_unchecked(1, &rdev->fence_drv.seq);
-       if (!rdev->cp.ready)
+-      fence->seq = atomic_add_return(1, &rdev->fence_drv[fence->ring].seq);
++      fence->seq = atomic_add_return_unchecked(1, &rdev->fence_drv[fence->ring].seq);
+       if (!rdev->ring[fence->ring].ready)
                /* FIXME: cp is not running assume everythings is done right
                 * away
-@@ -373,7 +373,7 @@ int radeon_fence_driver_init(struct radeon_device *rdev)
-               return r;
-       }
-       radeon_fence_write(rdev, 0);
--      atomic_set(&rdev->fence_drv.seq, 0);
-+      atomic_set_unchecked(&rdev->fence_drv.seq, 0);
-       INIT_LIST_HEAD(&rdev->fence_drv.created);
-       INIT_LIST_HEAD(&rdev->fence_drv.emited);
-       INIT_LIST_HEAD(&rdev->fence_drv.signaled);
+@@ -405,7 +405,7 @@ int radeon_fence_driver_start_ring(struct radeon_device *rdev, int ring)
+       }
+       rdev->fence_drv[ring].cpu_addr = &rdev->wb.wb[index/4];
+       rdev->fence_drv[ring].gpu_addr = rdev->wb.gpu_addr + index;
+-      radeon_fence_write(rdev, atomic_read(&rdev->fence_drv[ring].seq), ring);
++      radeon_fence_write(rdev, atomic_read_unchecked(&rdev->fence_drv[ring].seq), ring);
+       rdev->fence_drv[ring].initialized = true;
+       DRM_INFO("fence driver on ring %d use gpu addr 0x%08Lx and cpu addr 0x%p\n",
+                ring, rdev->fence_drv[ring].gpu_addr, rdev->fence_drv[ring].cpu_addr);
+@@ -418,7 +418,7 @@ static void radeon_fence_driver_init_ring(struct radeon_device *rdev, int ring)
+       rdev->fence_drv[ring].scratch_reg = -1;
+       rdev->fence_drv[ring].cpu_addr = NULL;
+       rdev->fence_drv[ring].gpu_addr = 0;
+-      atomic_set(&rdev->fence_drv[ring].seq, 0);
++      atomic_set_unchecked(&rdev->fence_drv[ring].seq, 0);
+       INIT_LIST_HEAD(&rdev->fence_drv[ring].created);
+       INIT_LIST_HEAD(&rdev->fence_drv[ring].emitted);
+       INIT_LIST_HEAD(&rdev->fence_drv[ring].signaled);
 diff --git a/drivers/gpu/drm/radeon/radeon_ioc32.c b/drivers/gpu/drm/radeon/radeon_ioc32.c
 index 48b7cea..342236f 100644
 --- a/drivers/gpu/drm/radeon/radeon_ioc32.c
@@ -28789,7 +30992,7 @@ index 48b7cea..342236f 100644
                return -EFAULT;
  
 diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c
-index 465746b..cb2b055 100644
+index 00da384..32f972d 100644
 --- a/drivers/gpu/drm/radeon/radeon_irq.c
 +++ b/drivers/gpu/drm/radeon/radeon_irq.c
 @@ -225,8 +225,8 @@ static int radeon_emit_irq(struct drm_device * dev)
@@ -28813,7 +31016,7 @@ index 465746b..cb2b055 100644
  
        dev->max_vblank_count = 0x001fffff;
 diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
-index 92e7ea7..147ffad 100644
+index e8422ae..d22d4a8 100644
 --- a/drivers/gpu/drm/radeon/radeon_state.c
 +++ b/drivers/gpu/drm/radeon/radeon_state.c
 @@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_device *dev, void *data, struct drm_file *
@@ -28835,10 +31038,10 @@ index 92e7ea7..147ffad 100644
        DRM_DEBUG("pid=%d\n", DRM_CURRENTPID);
  
 diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
-index 0b5468b..9c4b308 100644
+index f493c64..524ab6b 100644
 --- a/drivers/gpu/drm/radeon/radeon_ttm.c
 +++ b/drivers/gpu/drm/radeon/radeon_ttm.c
-@@ -672,8 +672,10 @@ int radeon_mmap(struct file *filp, struct vm_area_struct *vma)
+@@ -843,8 +843,10 @@ int radeon_mmap(struct file *filp, struct vm_area_struct *vma)
        }
        if (unlikely(ttm_vm_ops == NULL)) {
                ttm_vm_ops = vma->vm_ops;
@@ -28852,7 +31055,7 @@ index 0b5468b..9c4b308 100644
        vma->vm_ops = &radeon_ttm_vm_ops;
        return 0;
 diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c
-index a9049ed..501f284 100644
+index f2c3b9d..d5a376b 100644
 --- a/drivers/gpu/drm/radeon/rs690.c
 +++ b/drivers/gpu/drm/radeon/rs690.c
 @@ -304,9 +304,11 @@ void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
@@ -28869,10 +31072,10 @@ index a9049ed..501f284 100644
                if (rdev->pm.max_bandwidth.full > rdev->pm.k8_bandwidth.full &&
                        rdev->pm.k8_bandwidth.full)
 diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c
-index 727e93d..1565650 100644
+index ebc6fac..a8313ed 100644
 --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
 +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
-@@ -398,9 +398,9 @@ static int ttm_pool_get_num_unused_pages(void)
+@@ -394,9 +394,9 @@ static int ttm_pool_get_num_unused_pages(void)
  static int ttm_pool_mm_shrink(struct shrinker *shrink,
                              struct shrink_control *sc)
  {
@@ -28885,7 +31088,7 @@ index 727e93d..1565650 100644
        int shrink_pages = sc->nr_to_scan;
  
 diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
-index 9cf87d9..2000b7d 100644
+index 88edacc..1e5412b 100644
 --- a/drivers/gpu/drm/via/via_drv.h
 +++ b/drivers/gpu/drm/via/via_drv.h
 @@ -51,7 +51,7 @@ typedef struct drm_via_ring_buffer {
@@ -28981,58 +31184,32 @@ index d391f48..10c8ca3 100644
        case VIA_IRQ_ABSOLUTE:
                break;
 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
-index 10fc01f..b4e9822 100644
+index d0f2c07..9ebd9c3 100644
 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
-@@ -240,7 +240,7 @@ struct vmw_private {
+@@ -263,7 +263,7 @@ struct vmw_private {
         * Fencing and IRQs.
         */
  
--      atomic_t fence_seq;
-+      atomic_unchecked_t fence_seq;
+-      atomic_t marker_seq;
++      atomic_unchecked_t marker_seq;
        wait_queue_head_t fence_queue;
        wait_queue_head_t fifo_queue;
-       atomic_t fence_queue_waiters;
-diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
-index 41b95ed..69ea504 100644
---- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
-+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
-@@ -610,7 +610,7 @@ int vmw_execbuf_ioctl(struct drm_device *dev, void *data,
-       struct drm_vmw_fence_rep fence_rep;
-       struct drm_vmw_fence_rep __user *user_fence_rep;
-       int ret;
--      void *user_cmd;
-+      void __user *user_cmd;
-       void *cmd;
-       uint32_t sequence;
-       struct vmw_sw_context *sw_context = &dev_priv->ctx;
-diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
-index 61eacc1..ee38ce8 100644
---- a/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
-+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
-@@ -151,7 +151,7 @@ int vmw_wait_lag(struct vmw_private *dev_priv,
-       while (!vmw_lag_lt(queue, us)) {
-               spin_lock(&queue->lock);
-               if (list_empty(&queue->head))
--                      sequence = atomic_read(&dev_priv->fence_seq);
-+                      sequence = atomic_read_unchecked(&dev_priv->fence_seq);
-               else {
-                       fence = list_first_entry(&queue->head,
-                                                struct vmw_fence, head);
+       int fence_queue_waiters; /* Protected by hw_mutex */
 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
-index 635c0ff..2641bbb 100644
+index a0c2f12..68ae6cb 100644
 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
 @@ -137,7 +137,7 @@ int vmw_fifo_init(struct vmw_private *dev_priv, struct vmw_fifo_state *fifo)
                 (unsigned int) min,
                 (unsigned int) fifo->capabilities);
  
--      atomic_set(&dev_priv->fence_seq, dev_priv->last_read_sequence);
-+      atomic_set_unchecked(&dev_priv->fence_seq, dev_priv->last_read_sequence);
-       iowrite32(dev_priv->last_read_sequence, fifo_mem + SVGA_FIFO_FENCE);
-       vmw_fence_queue_init(&fifo->fence_queue);
+-      atomic_set(&dev_priv->marker_seq, dev_priv->last_read_seqno);
++      atomic_set_unchecked(&dev_priv->marker_seq, dev_priv->last_read_seqno);
+       iowrite32(dev_priv->last_read_seqno, fifo_mem + SVGA_FIFO_FENCE);
+       vmw_marker_queue_init(&fifo->marker_queue);
        return vmw_fifo_send_fence(dev_priv, &dummy);
-@@ -356,7 +356,7 @@ void *vmw_fifo_reserve(struct vmw_private *dev_priv, uint32_t bytes)
+@@ -355,7 +355,7 @@ void *vmw_fifo_reserve(struct vmw_private *dev_priv, uint32_t bytes)
                                if (reserveable)
                                        iowrite32(bytes, fifo_mem +
                                                  SVGA_FIFO_RESERVED);
@@ -29041,82 +31218,64 @@ index 635c0ff..2641bbb 100644
                        } else {
                                need_bounce = true;
                        }
-@@ -476,7 +476,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *sequence)
+@@ -475,7 +475,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *seqno)
  
        fm = vmw_fifo_reserve(dev_priv, bytes);
        if (unlikely(fm == NULL)) {
--              *sequence = atomic_read(&dev_priv->fence_seq);
-+              *sequence = atomic_read_unchecked(&dev_priv->fence_seq);
+-              *seqno = atomic_read(&dev_priv->marker_seq);
++              *seqno = atomic_read_unchecked(&dev_priv->marker_seq);
                ret = -ENOMEM;
-               (void)vmw_fallback_wait(dev_priv, false, true, *sequence,
+               (void)vmw_fallback_wait(dev_priv, false, true, *seqno,
                                        false, 3*HZ);
-@@ -484,7 +484,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *sequence)
+@@ -483,7 +483,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *seqno)
        }
  
        do {
--              *sequence = atomic_add_return(1, &dev_priv->fence_seq);
-+              *sequence = atomic_add_return_unchecked(1, &dev_priv->fence_seq);
-       } while (*sequence == 0);
+-              *seqno = atomic_add_return(1, &dev_priv->marker_seq);
++              *seqno = atomic_add_return_unchecked(1, &dev_priv->marker_seq);
+       } while (*seqno == 0);
  
        if (!(fifo_state->capabilities & SVGA_FIFO_CAP_FENCE)) {
 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
-index e92298a..f68f2d6 100644
+index cabc95f..14b3d77 100644
 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
-@@ -100,7 +100,7 @@ bool vmw_fence_signaled(struct vmw_private *dev_priv,
+@@ -107,7 +107,7 @@ bool vmw_seqno_passed(struct vmw_private *dev_priv,
         * emitted. Then the fence is stale and signaled.
         */
  
--      ret = ((atomic_read(&dev_priv->fence_seq) - sequence)
-+      ret = ((atomic_read_unchecked(&dev_priv->fence_seq) - sequence)
+-      ret = ((atomic_read(&dev_priv->marker_seq) - seqno)
++      ret = ((atomic_read_unchecked(&dev_priv->marker_seq) - seqno)
               > VMW_FENCE_WRAP);
  
        return ret;
-@@ -131,7 +131,7 @@ int vmw_fallback_wait(struct vmw_private *dev_priv,
+@@ -138,7 +138,7 @@ int vmw_fallback_wait(struct vmw_private *dev_priv,
  
        if (fifo_idle)
                down_read(&fifo_state->rwsem);
--      signal_seq = atomic_read(&dev_priv->fence_seq);
-+      signal_seq = atomic_read_unchecked(&dev_priv->fence_seq);
+-      signal_seq = atomic_read(&dev_priv->marker_seq);
++      signal_seq = atomic_read_unchecked(&dev_priv->marker_seq);
        ret = 0;
  
        for (;;) {
-diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
-index c72f1c0..18376f1 100644
---- a/drivers/gpu/vga/vgaarb.c
-+++ b/drivers/gpu/vga/vgaarb.c
-@@ -993,14 +993,20 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf,
-                               uc = &priv->cards[i];
-               }
--              if (!uc)
--                      return -EINVAL;
-+              if (!uc) {
-+                      ret_val = -EINVAL;
-+                      goto done;
-+              }
--              if (io_state & VGA_RSRC_LEGACY_IO && uc->io_cnt == 0)
--                      return -EINVAL;
-+              if (io_state & VGA_RSRC_LEGACY_IO && uc->io_cnt == 0) {
-+                      ret_val = -EINVAL;
-+                      goto done;
-+              }
--              if (io_state & VGA_RSRC_LEGACY_MEM && uc->mem_cnt == 0)
--                      return -EINVAL;
-+              if (io_state & VGA_RSRC_LEGACY_MEM && uc->mem_cnt == 0) {
-+                      ret_val = -EINVAL;
-+                      goto done;
-+              }
-               vga_put(pdev, io_state);
+diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c b/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
+index 8a8725c..afed796 100644
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
+@@ -151,7 +151,7 @@ int vmw_wait_lag(struct vmw_private *dev_priv,
+       while (!vmw_lag_lt(queue, us)) {
+               spin_lock(&queue->lock);
+               if (list_empty(&queue->head))
+-                      seqno = atomic_read(&dev_priv->marker_seq);
++                      seqno = atomic_read_unchecked(&dev_priv->marker_seq);
+               else {
+                       marker = list_first_entry(&queue->head,
+                                                struct vmw_marker, head);
 diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index f26ae31..721fe1b 100644
+index 054677b..741672a 100644
 --- a/drivers/hid/hid-core.c
 +++ b/drivers/hid/hid-core.c
-@@ -1951,7 +1951,7 @@ static bool hid_ignore(struct hid_device *hdev)
+@@ -2070,7 +2070,7 @@ static bool hid_ignore(struct hid_device *hdev)
  
  int hid_add_device(struct hid_device *hdev)
  {
@@ -29125,7 +31284,7 @@ index f26ae31..721fe1b 100644
        int ret;
  
        if (WARN_ON(hdev->status & HID_STAT_ADDED))
-@@ -1966,7 +1966,7 @@ int hid_add_device(struct hid_device *hdev)
+@@ -2085,7 +2085,7 @@ int hid_add_device(struct hid_device *hdev)
        /* XXX hack, any other cleaner solution after the driver core
         * is converted to allow more than 20 bytes as the device name? */
        dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
@@ -29134,8 +31293,21 @@ index f26ae31..721fe1b 100644
  
        hid_debug_register(hdev, dev_name(&hdev->dev));
        ret = device_add(&hdev->dev);
+diff --git a/drivers/hid/hid-wiimote-debug.c b/drivers/hid/hid-wiimote-debug.c
+index eec3291..8ed706b 100644
+--- a/drivers/hid/hid-wiimote-debug.c
++++ b/drivers/hid/hid-wiimote-debug.c
+@@ -66,7 +66,7 @@ static ssize_t wiidebug_eeprom_read(struct file *f, char __user *u, size_t s,
+       else if (size == 0)
+               return -EIO;
+-      if (copy_to_user(u, buf, size))
++      if (size > sizeof(buf) || copy_to_user(u, buf, size))
+               return -EFAULT;
+       *off += size;
 diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c
-index 7c1188b..5a64357 100644
+index b1ec0e2..c295a61 100644
 --- a/drivers/hid/usbhid/hiddev.c
 +++ b/drivers/hid/usbhid/hiddev.c
 @@ -624,7 +624,7 @@ static long hiddev_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
@@ -29147,8 +31319,66 @@ index 7c1188b..5a64357 100644
                        break;
  
                for (i = 0; i < hid->maxcollection; i++)
+diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
+index 4065374..10ed7dc 100644
+--- a/drivers/hv/channel.c
++++ b/drivers/hv/channel.c
+@@ -400,8 +400,8 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
+       int ret = 0;
+       int t;
+-      next_gpadl_handle = atomic_read(&vmbus_connection.next_gpadl_handle);
+-      atomic_inc(&vmbus_connection.next_gpadl_handle);
++      next_gpadl_handle = atomic_read_unchecked(&vmbus_connection.next_gpadl_handle);
++      atomic_inc_unchecked(&vmbus_connection.next_gpadl_handle);
+       ret = create_gpadl_header(kbuffer, size, &msginfo, &msgcount);
+       if (ret)
+diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
+index 15956bd..ea34398 100644
+--- a/drivers/hv/hv.c
++++ b/drivers/hv/hv.c
+@@ -132,7 +132,7 @@ static u64 do_hypercall(u64 control, void *input, void *output)
+       u64 output_address = (output) ? virt_to_phys(output) : 0;
+       u32 output_address_hi = output_address >> 32;
+       u32 output_address_lo = output_address & 0xFFFFFFFF;
+-      void *hypercall_page = hv_context.hypercall_page;
++      void *hypercall_page = ktva_ktla(hv_context.hypercall_page);
+       __asm__ __volatile__ ("call *%8" : "=d"(hv_status_hi),
+                             "=a"(hv_status_lo) : "d" (control_hi),
+diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
+index 699f0d8..f4f19250 100644
+--- a/drivers/hv/hyperv_vmbus.h
++++ b/drivers/hv/hyperv_vmbus.h
+@@ -555,7 +555,7 @@ enum vmbus_connect_state {
+ struct vmbus_connection {
+       enum vmbus_connect_state conn_state;
+-      atomic_t next_gpadl_handle;
++      atomic_unchecked_t next_gpadl_handle;
+       /*
+        * Represents channel interrupts. Each bit position represents a
+diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
+index a220e57..428f54d 100644
+--- a/drivers/hv/vmbus_drv.c
++++ b/drivers/hv/vmbus_drv.c
+@@ -663,10 +663,10 @@ int vmbus_device_register(struct hv_device *child_device_obj)
+ {
+       int ret = 0;
+-      static atomic_t device_num = ATOMIC_INIT(0);
++      static atomic_unchecked_t device_num = ATOMIC_INIT(0);
+       dev_set_name(&child_device_obj->device, "vmbus_0_%d",
+-                   atomic_inc_return(&device_num));
++                   atomic_inc_return_unchecked(&device_num));
+       child_device_obj->device.bus = &hv_bus;
+       child_device_obj->device.parent = &hv_acpi_dev->dev;
 diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
-index 66f6729..2d6de0a 100644
+index 9140236..ceaef4e 100644
 --- a/drivers/hwmon/acpi_power_meter.c
 +++ b/drivers/hwmon/acpi_power_meter.c
 @@ -316,8 +316,6 @@ static ssize_t set_trip(struct device *dev, struct device_attribute *devattr,
@@ -29161,7 +31391,7 @@ index 66f6729..2d6de0a 100644
        mutex_lock(&resource->lock);
        resource->trip[attr->index - 7] = temp;
 diff --git a/drivers/hwmon/sht15.c b/drivers/hwmon/sht15.c
-index fe4104c..346febb 100644
+index 8b011d0..3de24a1 100644
 --- a/drivers/hwmon/sht15.c
 +++ b/drivers/hwmon/sht15.c
 @@ -166,7 +166,7 @@ struct sht15_data {
@@ -29205,7 +31435,7 @@ index fe4104c..346febb 100644
 -              atomic_set(&data->interrupt_handled, 0);
 +              atomic_set_unchecked(&data->interrupt_handled, 0);
                enable_irq(gpio_to_irq(data->pdata->gpio_data));
-               /* If still not occurred or another handler has been scheduled */
+               /* If still not occurred or another handler was scheduled */
                if (gpio_get_value(data->pdata->gpio_data)
 -                  || atomic_read(&data->interrupt_handled))
 +                  || atomic_read_unchecked(&data->interrupt_handled))
@@ -29356,7 +31586,7 @@ index 5059faf..18d4c85 100644
        .port_ops       = &cs5535_port_ops,
        .host_flags     = IDE_HFLAG_SINGLE | IDE_HFLAG_POST_SET_MODE,
 diff --git a/drivers/ide/cy82c693.c b/drivers/ide/cy82c693.c
-index 67cbcfa..37ea151 100644
+index 847553f..3ffb49d 100644
 --- a/drivers/ide/cy82c693.c
 +++ b/drivers/ide/cy82c693.c
 @@ -163,7 +163,7 @@ static const struct ide_port_ops cy82c693_port_ops = {
@@ -29481,10 +31711,10 @@ index 58c51cd..4aec3b8 100644
                .name           = DRV_NAME,
                .init_chipset   = init_chipset_hpt366,
 diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
-index 04b0956..f5b47dc 100644
+index 8126824..55a2798 100644
 --- a/drivers/ide/ide-cd.c
 +++ b/drivers/ide/ide-cd.c
-@@ -769,7 +769,7 @@ static void cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
+@@ -768,7 +768,7 @@ static void cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
                alignment = queue_dma_alignment(q) | q->dma_pad_mask;
                if ((unsigned long)buf & alignment
                    || blk_rq_bytes(rq) & q->dma_pad_mask
@@ -29493,21 +31723,8 @@ index 04b0956..f5b47dc 100644
                        drive->dma = 0;
        }
  }
-diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
-index 61fdf54..2834ea6 100644
---- a/drivers/ide/ide-floppy.c
-+++ b/drivers/ide/ide-floppy.c
-@@ -379,6 +379,8 @@ static int ide_floppy_get_capacity(ide_drive_t *drive)
-       u8 pc_buf[256], header_len, desc_cnt;
-       int i, rc = 1, blocks, length;
-+      pax_track_stack();
-+
-       ide_debug_log(IDE_DBG_FUNC, "enter");
-       drive->bios_cyl = 0;
 diff --git a/drivers/ide/ide-pci-generic.c b/drivers/ide/ide-pci-generic.c
-index a743e68..1cfd674 100644
+index 7f56b73..dab5b67 100644
 --- a/drivers/ide/ide-pci-generic.c
 +++ b/drivers/ide/ide-pci-generic.c
 @@ -53,7 +53,7 @@ static const struct ide_port_ops netcell_port_ops = {
@@ -29624,7 +31841,7 @@ index 3a35ec6..5634510 100644
                .name           = DRV_NAME,
                .init_chipset   = init_chipset_pdc202xx,
 diff --git a/drivers/ide/piix.c b/drivers/ide/piix.c
-index b59d04c..368c2a7 100644
+index 1892e81..fe0fd60 100644
 --- a/drivers/ide/piix.c
 +++ b/drivers/ide/piix.c
 @@ -344,7 +344,7 @@ static const struct ide_port_ops ich_port_ops = {
@@ -29688,19 +31905,6 @@ index 35fb8da..24d72ef 100644
        {       /* 0: OSB4 */
                .name           = DRV_NAME,
                .init_chipset   = init_chipset_svwks,
-diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c
-index ab3db61..afed580 100644
---- a/drivers/ide/setup-pci.c
-+++ b/drivers/ide/setup-pci.c
-@@ -542,6 +542,8 @@ int ide_pci_init_two(struct pci_dev *dev1, struct pci_dev *dev2,
-       int ret, i, n_ports = dev2 ? 4 : 2;
-       struct ide_hw hw[4], *hws[] = { NULL, NULL, NULL, NULL };
-+      pax_track_stack();
-+
-       for (i = 0; i < n_ports / 2; i++) {
-               ret = ide_setup_pci_controller(pdev[i], d, !i);
-               if (ret < 0)
 diff --git a/drivers/ide/siimage.c b/drivers/ide/siimage.c
 index ddeda44..46f7e30 100644
 --- a/drivers/ide/siimage.c
@@ -29754,10 +31958,10 @@ index 864ffe0..863a5e9 100644
        .enablebits     = { {0x41, 0x80, 0x80}, {0x43, 0x80, 0x80} },
        .port_ops       = &slc90e66_port_ops,
 diff --git a/drivers/ide/tc86c001.c b/drivers/ide/tc86c001.c
-index e444d24..ba577de 100644
+index 4799d5c..1794678 100644
 --- a/drivers/ide/tc86c001.c
 +++ b/drivers/ide/tc86c001.c
-@@ -191,7 +191,7 @@ static const struct ide_dma_ops tc86c001_dma_ops = {
+@@ -192,7 +192,7 @@ static const struct ide_dma_ops tc86c001_dma_ops = {
        .dma_sff_read_status    = ide_dma_sff_read_status,
  };
  
@@ -29767,7 +31971,7 @@ index e444d24..ba577de 100644
        .init_hwif      = init_hwif_tc86c001,
        .port_ops       = &tc86c001_port_ops,
 diff --git a/drivers/ide/triflex.c b/drivers/ide/triflex.c
-index e53a1b7..d11aff7 100644
+index 281c914..55ce1b8 100644
 --- a/drivers/ide/triflex.c
 +++ b/drivers/ide/triflex.c
 @@ -92,7 +92,7 @@ static const struct ide_port_ops triflex_port_ops = {
@@ -29805,11 +32009,24 @@ index f46f49c..eb77678 100644
        .name           = DRV_NAME,
        .init_chipset   = init_chipset_via82cxxx,
        .enablebits     = { { 0x40, 0x02, 0x02 }, { 0x40, 0x01, 0x01 } },
+diff --git a/drivers/ieee802154/fakehard.c b/drivers/ieee802154/fakehard.c
+index 73d4531..c90cd2d 100644
+--- a/drivers/ieee802154/fakehard.c
++++ b/drivers/ieee802154/fakehard.c
+@@ -386,7 +386,7 @@ static int __devinit ieee802154fake_probe(struct platform_device *pdev)
+       phy->transmit_power = 0xbf;
+       dev->netdev_ops = &fake_ops;
+-      dev->ml_priv = &fake_mlme;
++      dev->ml_priv = (void *)&fake_mlme;
+       priv = netdev_priv(dev);
+       priv->phy = phy;
 diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
-index fc0f2bd..ac2f8a5 100644
+index c889aae..6cf5aa7 100644
 --- a/drivers/infiniband/core/cm.c
 +++ b/drivers/infiniband/core/cm.c
-@@ -113,7 +113,7 @@ static char const counter_group_names[CM_COUNTER_GROUPS]
+@@ -114,7 +114,7 @@ static char const counter_group_names[CM_COUNTER_GROUPS]
  
  struct cm_counter_group {
        struct kobject obj;
@@ -29818,7 +32035,7 @@ index fc0f2bd..ac2f8a5 100644
  };
  
  struct cm_counter_attribute {
-@@ -1387,7 +1387,7 @@ static void cm_dup_req_handler(struct cm_work *work,
+@@ -1394,7 +1394,7 @@ static void cm_dup_req_handler(struct cm_work *work,
        struct ib_mad_send_buf *msg = NULL;
        int ret;
  
@@ -29827,7 +32044,7 @@ index fc0f2bd..ac2f8a5 100644
                        counter[CM_REQ_COUNTER]);
  
        /* Quick state check to discard duplicate REQs. */
-@@ -1765,7 +1765,7 @@ static void cm_dup_rep_handler(struct cm_work *work)
+@@ -1778,7 +1778,7 @@ static void cm_dup_rep_handler(struct cm_work *work)
        if (!cm_id_priv)
                return;
  
@@ -29836,7 +32053,7 @@ index fc0f2bd..ac2f8a5 100644
                        counter[CM_REP_COUNTER]);
        ret = cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg);
        if (ret)
-@@ -1932,7 +1932,7 @@ static int cm_rtu_handler(struct cm_work *work)
+@@ -1945,7 +1945,7 @@ static int cm_rtu_handler(struct cm_work *work)
        if (cm_id_priv->id.state != IB_CM_REP_SENT &&
            cm_id_priv->id.state != IB_CM_MRA_REP_RCVD) {
                spin_unlock_irq(&cm_id_priv->lock);
@@ -29845,7 +32062,7 @@ index fc0f2bd..ac2f8a5 100644
                                counter[CM_RTU_COUNTER]);
                goto out;
        }
-@@ -2115,7 +2115,7 @@ static int cm_dreq_handler(struct cm_work *work)
+@@ -2128,7 +2128,7 @@ static int cm_dreq_handler(struct cm_work *work)
        cm_id_priv = cm_acquire_id(dreq_msg->remote_comm_id,
                                   dreq_msg->local_comm_id);
        if (!cm_id_priv) {
@@ -29854,7 +32071,7 @@ index fc0f2bd..ac2f8a5 100644
                                counter[CM_DREQ_COUNTER]);
                cm_issue_drep(work->port, work->mad_recv_wc);
                return -EINVAL;
-@@ -2140,7 +2140,7 @@ static int cm_dreq_handler(struct cm_work *work)
+@@ -2153,7 +2153,7 @@ static int cm_dreq_handler(struct cm_work *work)
        case IB_CM_MRA_REP_RCVD:
                break;
        case IB_CM_TIMEWAIT:
@@ -29863,7 +32080,7 @@ index fc0f2bd..ac2f8a5 100644
                                counter[CM_DREQ_COUNTER]);
                if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
                        goto unlock;
-@@ -2154,7 +2154,7 @@ static int cm_dreq_handler(struct cm_work *work)
+@@ -2167,7 +2167,7 @@ static int cm_dreq_handler(struct cm_work *work)
                        cm_free_msg(msg);
                goto deref;
        case IB_CM_DREQ_RCVD:
@@ -29872,7 +32089,7 @@ index fc0f2bd..ac2f8a5 100644
                                counter[CM_DREQ_COUNTER]);
                goto unlock;
        default:
-@@ -2521,7 +2521,7 @@ static int cm_mra_handler(struct cm_work *work)
+@@ -2534,7 +2534,7 @@ static int cm_mra_handler(struct cm_work *work)
                    ib_modify_mad(cm_id_priv->av.port->mad_agent,
                                  cm_id_priv->msg, timeout)) {
                        if (cm_id_priv->id.lap_state == IB_CM_MRA_LAP_RCVD)
@@ -29881,7 +32098,7 @@ index fc0f2bd..ac2f8a5 100644
                                                counter_group[CM_RECV_DUPLICATES].
                                                counter[CM_MRA_COUNTER]);
                        goto out;
-@@ -2530,7 +2530,7 @@ static int cm_mra_handler(struct cm_work *work)
+@@ -2543,7 +2543,7 @@ static int cm_mra_handler(struct cm_work *work)
                break;
        case IB_CM_MRA_REQ_RCVD:
        case IB_CM_MRA_REP_RCVD:
@@ -29890,7 +32107,7 @@ index fc0f2bd..ac2f8a5 100644
                                counter[CM_MRA_COUNTER]);
                /* fall through */
        default:
-@@ -2692,7 +2692,7 @@ static int cm_lap_handler(struct cm_work *work)
+@@ -2705,7 +2705,7 @@ static int cm_lap_handler(struct cm_work *work)
        case IB_CM_LAP_IDLE:
                break;
        case IB_CM_MRA_LAP_SENT:
@@ -29899,7 +32116,7 @@ index fc0f2bd..ac2f8a5 100644
                                counter[CM_LAP_COUNTER]);
                if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
                        goto unlock;
-@@ -2708,7 +2708,7 @@ static int cm_lap_handler(struct cm_work *work)
+@@ -2721,7 +2721,7 @@ static int cm_lap_handler(struct cm_work *work)
                        cm_free_msg(msg);
                goto deref;
        case IB_CM_LAP_RCVD:
@@ -29908,7 +32125,7 @@ index fc0f2bd..ac2f8a5 100644
                                counter[CM_LAP_COUNTER]);
                goto unlock;
        default:
-@@ -2992,7 +2992,7 @@ static int cm_sidr_req_handler(struct cm_work *work)
+@@ -3005,7 +3005,7 @@ static int cm_sidr_req_handler(struct cm_work *work)
        cur_cm_id_priv = cm_insert_remote_sidr(cm_id_priv);
        if (cur_cm_id_priv) {
                spin_unlock_irq(&cm.lock);
@@ -29917,7 +32134,7 @@ index fc0f2bd..ac2f8a5 100644
                                counter[CM_SIDR_REQ_COUNTER]);
                goto out; /* Duplicate message. */
        }
-@@ -3204,10 +3204,10 @@ static void cm_send_handler(struct ib_mad_agent *mad_agent,
+@@ -3217,10 +3217,10 @@ static void cm_send_handler(struct ib_mad_agent *mad_agent,
        if (!msg->context[0] && (attr_index != CM_REJ_COUNTER))
                msg->retries = 1;
  
@@ -29930,7 +32147,7 @@ index fc0f2bd..ac2f8a5 100644
                                &port->counter_group[CM_XMIT_RETRIES].
                                counter[attr_index]);
  
-@@ -3417,7 +3417,7 @@ static void cm_recv_handler(struct ib_mad_agent *mad_agent,
+@@ -3430,7 +3430,7 @@ static void cm_recv_handler(struct ib_mad_agent *mad_agent,
        }
  
        attr_id = be16_to_cpu(mad_recv_wc->recv_buf.mad->mad_hdr.attr_id);
@@ -29939,7 +32156,7 @@ index fc0f2bd..ac2f8a5 100644
                        counter[attr_id - CM_ATTR_ID_OFFSET]);
  
        work = kmalloc(sizeof *work + sizeof(struct ib_sa_path_rec) * paths,
-@@ -3615,7 +3615,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr,
+@@ -3635,7 +3635,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr,
        cm_attr = container_of(attr, struct cm_counter_attribute, attr);
  
        return sprintf(buf, "%ld\n",
@@ -29949,10 +32166,10 @@ index fc0f2bd..ac2f8a5 100644
  
  static const struct sysfs_ops cm_counter_ops = {
 diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c
-index 4507043..14ad522 100644
+index 176c8f9..2627b62 100644
 --- a/drivers/infiniband/core/fmr_pool.c
 +++ b/drivers/infiniband/core/fmr_pool.c
-@@ -97,8 +97,8 @@ struct ib_fmr_pool {
+@@ -98,8 +98,8 @@ struct ib_fmr_pool {
  
        struct task_struct       *thread;
  
@@ -29963,7 +32180,7 @@ index 4507043..14ad522 100644
  
        wait_queue_head_t         force_wait;
  };
-@@ -179,10 +179,10 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
+@@ -180,10 +180,10 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
        struct ib_fmr_pool *pool = pool_ptr;
  
        do {
@@ -29976,7 +32193,7 @@ index 4507043..14ad522 100644
                        wake_up_interruptible(&pool->force_wait);
  
                        if (pool->flush_function)
-@@ -190,7 +190,7 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
+@@ -191,7 +191,7 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
                }
  
                set_current_state(TASK_INTERRUPTIBLE);
@@ -29985,7 +32202,7 @@ index 4507043..14ad522 100644
                    !kthread_should_stop())
                        schedule();
                __set_current_state(TASK_RUNNING);
-@@ -282,8 +282,8 @@ struct ib_fmr_pool *ib_create_fmr_pool(struct ib_pd             *pd,
+@@ -283,8 +283,8 @@ struct ib_fmr_pool *ib_create_fmr_pool(struct ib_pd             *pd,
        pool->dirty_watermark = params->dirty_watermark;
        pool->dirty_len       = 0;
        spin_lock_init(&pool->pool_lock);
@@ -29996,7 +32213,7 @@ index 4507043..14ad522 100644
        init_waitqueue_head(&pool->force_wait);
  
        pool->thread = kthread_run(ib_fmr_cleanup_thread,
-@@ -411,11 +411,11 @@ int ib_flush_fmr_pool(struct ib_fmr_pool *pool)
+@@ -412,11 +412,11 @@ int ib_flush_fmr_pool(struct ib_fmr_pool *pool)
        }
        spin_unlock_irq(&pool->pool_lock);
  
@@ -30010,7 +32227,7 @@ index 4507043..14ad522 100644
                return -EINTR;
  
        return 0;
-@@ -525,7 +525,7 @@ int ib_fmr_pool_unmap(struct ib_pool_fmr *fmr)
+@@ -526,7 +526,7 @@ int ib_fmr_pool_unmap(struct ib_pool_fmr *fmr)
                } else {
                        list_add_tail(&fmr->list, &pool->dirty_list);
                        if (++pool->dirty_len >= pool->dirty_watermark) {
@@ -30041,19 +32258,6 @@ index 40c8353..946b0e4 100644
        }
        PDBG("%s stag_state 0x%0x type 0x%0x pdid 0x%0x, stag_idx 0x%x\n",
             __func__, stag_state, type, pdid, stag_idx);
-diff --git a/drivers/infiniband/hw/ipath/ipath_fs.c b/drivers/infiniband/hw/ipath/ipath_fs.c
-index 31ae1b1..2f5b038 100644
---- a/drivers/infiniband/hw/ipath/ipath_fs.c
-+++ b/drivers/infiniband/hw/ipath/ipath_fs.c
-@@ -113,6 +113,8 @@ static ssize_t atomic_counters_read(struct file *file, char __user *buf,
-       struct infinipath_counters counters;
-       struct ipath_devdata *dd;
-+      pax_track_stack();
-+
-       dd = file->f_path.dentry->d_inode->i_private;
-       dd->ipath_f_read_counters(dd, &counters);
 diff --git a/drivers/infiniband/hw/ipath/ipath_rc.c b/drivers/infiniband/hw/ipath/ipath_rc.c
 index 79b3dbc..96e5fcc 100644
 --- a/drivers/infiniband/hw/ipath/ipath_rc.c
@@ -30109,7 +32313,7 @@ index 1f95bba..9530f87 100644
                                      sdata, wqe->wr.wr.atomic.swap);
                goto send_comp;
 diff --git a/drivers/infiniband/hw/nes/nes.c b/drivers/infiniband/hw/nes/nes.c
-index 2d668c6..3312bb7 100644
+index 7140199..da60063 100644
 --- a/drivers/infiniband/hw/nes/nes.c
 +++ b/drivers/infiniband/hw/nes/nes.c
 @@ -103,7 +103,7 @@ MODULE_PARM_DESC(limit_maxrdreqsz, "Limit max read request size to 256 Bytes");
@@ -30121,7 +32325,7 @@ index 2d668c6..3312bb7 100644
  
  static unsigned int ee_flsh_adapter;
  static unsigned int sysfs_nonidx_addr;
-@@ -275,7 +275,7 @@ static void nes_cqp_rem_ref_callback(struct nes_device *nesdev, struct nes_cqp_r
+@@ -272,7 +272,7 @@ static void nes_cqp_rem_ref_callback(struct nes_device *nesdev, struct nes_cqp_r
        struct nes_qp *nesqp = cqp_request->cqp_callback_pointer;
        struct nes_adapter *nesadapter = nesdev->nesadapter;
  
@@ -30131,10 +32335,10 @@ index 2d668c6..3312bb7 100644
        /* Free the control structures */
  
 diff --git a/drivers/infiniband/hw/nes/nes.h b/drivers/infiniband/hw/nes/nes.h
-index 6fe7987..68637b5 100644
+index c438e46..ca30356 100644
 --- a/drivers/infiniband/hw/nes/nes.h
 +++ b/drivers/infiniband/hw/nes/nes.h
-@@ -175,17 +175,17 @@ extern unsigned int nes_debug_level;
+@@ -178,17 +178,17 @@ extern unsigned int nes_debug_level;
  extern unsigned int wqm_quanta;
  extern struct list_head nes_adapter_list;
  
@@ -30163,7 +32367,7 @@ index 6fe7987..68637b5 100644
  extern u32 mh_detected;
  extern u32 mh_pauses_sent;
  extern u32 cm_packets_sent;
-@@ -194,14 +194,14 @@ extern u32 cm_packets_created;
+@@ -197,16 +197,16 @@ extern u32 cm_packets_created;
  extern u32 cm_packets_received;
  extern u32 cm_packets_dropped;
  extern u32 cm_packets_retrans;
@@ -30177,16 +32381,20 @@ index 6fe7987..68637b5 100644
 -extern atomic_t cm_nodes_destroyed;
 -extern atomic_t cm_accel_dropped_pkts;
 -extern atomic_t cm_resets_recvd;
+-extern atomic_t pau_qps_created;
+-extern atomic_t pau_qps_destroyed;
 +extern atomic_unchecked_t cm_loopbacks;
 +extern atomic_unchecked_t cm_nodes_created;
 +extern atomic_unchecked_t cm_nodes_destroyed;
 +extern atomic_unchecked_t cm_accel_dropped_pkts;
 +extern atomic_unchecked_t cm_resets_recvd;
++extern atomic_unchecked_t pau_qps_created;
++extern atomic_unchecked_t pau_qps_destroyed;
  
  extern u32 int_mod_timer_init;
  extern u32 int_mod_cq_depth_256;
 diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
-index a237547..28a9819 100644
+index 71edfbb..15b62ae 100644
 --- a/drivers/infiniband/hw/nes/nes_cm.c
 +++ b/drivers/infiniband/hw/nes/nes_cm.c
 @@ -68,14 +68,14 @@ u32 cm_packets_dropped;
@@ -30209,9 +32417,9 @@ index a237547..28a9819 100644
 +atomic_unchecked_t cm_accel_dropped_pkts;
 +atomic_unchecked_t cm_resets_recvd;
  
- static inline int mini_cm_accelerated(struct nes_cm_core *,
      struct nes_cm_node *);
-@@ -151,13 +151,13 @@ static struct nes_cm_ops nes_cm_api = {
+ static inline int mini_cm_accelerated(struct nes_cm_core *, struct nes_cm_node *);
static struct nes_cm_listener *mini_cm_listen(struct nes_cm_core *, struct nes_vnic *, struct nes_cm_info *);
+@@ -148,13 +148,13 @@ static struct nes_cm_ops nes_cm_api = {
  
  static struct nes_cm_core *g_cm_core;
  
@@ -30230,9 +32438,9 @@ index a237547..28a9819 100644
 +atomic_unchecked_t cm_connect_reqs;
 +atomic_unchecked_t cm_rejects;
  
- /**
-@@ -1045,7 +1045,7 @@ static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,
+ int nes_add_ref_cm_node(struct nes_cm_node *cm_node)
+ {
+@@ -1279,7 +1279,7 @@ static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,
                kfree(listener);
                listener = NULL;
                ret = 0;
@@ -30241,7 +32449,7 @@ index a237547..28a9819 100644
        } else {
                spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
        }
-@@ -1242,7 +1242,7 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
+@@ -1482,7 +1482,7 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
                  cm_node->rem_mac);
  
        add_hte_node(cm_core, cm_node);
@@ -30250,7 +32458,7 @@ index a237547..28a9819 100644
  
        return cm_node;
  }
-@@ -1300,7 +1300,7 @@ static int rem_ref_cm_node(struct nes_cm_core *cm_core,
+@@ -1540,7 +1540,7 @@ static int rem_ref_cm_node(struct nes_cm_core *cm_core,
        }
  
        atomic_dec(&cm_core->node_cnt);
@@ -30259,7 +32467,7 @@ index a237547..28a9819 100644
        nesqp = cm_node->nesqp;
        if (nesqp) {
                nesqp->cm_node = NULL;
-@@ -1367,7 +1367,7 @@ static int process_options(struct nes_cm_node *cm_node, u8 *optionsloc,
+@@ -1604,7 +1604,7 @@ static int process_options(struct nes_cm_node *cm_node, u8 *optionsloc,
  
  static void drop_packet(struct sk_buff *skb)
  {
@@ -30268,7 +32476,7 @@ index a237547..28a9819 100644
        dev_kfree_skb_any(skb);
  }
  
-@@ -1430,7 +1430,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
+@@ -1667,7 +1667,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
  {
  
        int     reset = 0;      /* whether to send reset in case of err.. */
@@ -30277,7 +32485,7 @@ index a237547..28a9819 100644
        nes_debug(NES_DBG_CM, "Received Reset, cm_node = %p, state = %u."
                        " refcnt=%d\n", cm_node, cm_node->state,
                        atomic_read(&cm_node->ref_count));
-@@ -2059,7 +2059,7 @@ static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
+@@ -2308,7 +2308,7 @@ static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
                                rem_ref_cm_node(cm_node->cm_core, cm_node);
                                return NULL;
                        }
@@ -30286,16 +32494,16 @@ index a237547..28a9819 100644
                        loopbackremotenode->loopbackpartner = cm_node;
                        loopbackremotenode->tcp_cntxt.rcv_wscale =
                                NES_CM_DEFAULT_RCV_WND_SCALE;
-@@ -2334,7 +2334,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
-                       add_ref_cm_node(cm_node);
-               } else if (cm_node->state == NES_CM_STATE_TSA) {
-                       rem_ref_cm_node(cm_core, cm_node);
--                      atomic_inc(&cm_accel_dropped_pkts);
-+                      atomic_inc_unchecked(&cm_accel_dropped_pkts);
-                       dev_kfree_skb_any(skb);
+@@ -2583,7 +2583,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
+                               nes_queue_mgt_skbs(skb, nesvnic, cm_node->nesqp);
+                       else {
+                               rem_ref_cm_node(cm_core, cm_node);
+-                              atomic_inc(&cm_accel_dropped_pkts);
++                              atomic_inc_unchecked(&cm_accel_dropped_pkts);
+                               dev_kfree_skb_any(skb);
+                       }
                        break;
-               }
-@@ -2640,7 +2640,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
+@@ -2890,7 +2890,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
  
        if ((cm_id) && (cm_id->event_handler)) {
                if (issue_disconn) {
@@ -30304,7 +32512,7 @@ index a237547..28a9819 100644
                        cm_event.event = IW_CM_EVENT_DISCONNECT;
                        cm_event.status = disconn_status;
                        cm_event.local_addr = cm_id->local_addr;
-@@ -2662,7 +2662,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
+@@ -2912,7 +2912,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
                }
  
                if (issue_close) {
@@ -30313,7 +32521,7 @@ index a237547..28a9819 100644
                        nes_disconnect(nesqp, 1);
  
                        cm_id->provider_data = nesqp;
-@@ -2793,7 +2793,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
+@@ -3048,7 +3048,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
  
        nes_debug(NES_DBG_CM, "QP%u, cm_node=%p, jiffies = %lu listener = %p\n",
                nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener);
@@ -30322,25 +32530,25 @@ index a237547..28a9819 100644
  
        nes_debug(NES_DBG_CM, "netdev refcnt = %u.\n",
                        netdev_refcnt_read(nesvnic->netdev));
-@@ -3003,7 +3003,7 @@ int nes_reject(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len)
+@@ -3250,7 +3250,7 @@ int nes_reject(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len)
        struct nes_cm_core *cm_core;
+       u8 *start_buff;
  
 -      atomic_inc(&cm_rejects);
 +      atomic_inc_unchecked(&cm_rejects);
-       cm_node = (struct nes_cm_node *) cm_id->provider_data;
+       cm_node = (struct nes_cm_node *)cm_id->provider_data;
        loopback = cm_node->loopbackpartner;
        cm_core = cm_node->cm_core;
-@@ -3069,7 +3069,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
-               ntohl(cm_id->local_addr.sin_addr.s_addr),
-               ntohs(cm_id->local_addr.sin_port));
+@@ -3310,7 +3310,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
+                 ntohl(cm_id->local_addr.sin_addr.s_addr),
+                 ntohs(cm_id->local_addr.sin_port));
  
 -      atomic_inc(&cm_connects);
 +      atomic_inc_unchecked(&cm_connects);
        nesqp->active_conn = 1;
  
        /* cache the cm_id in the qp */
-@@ -3175,7 +3175,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog)
+@@ -3416,7 +3416,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog)
                        g_cm_core->api->stop_listener(g_cm_core, (void *)cm_node);
                        return err;
                }
@@ -30349,16 +32557,16 @@ index a237547..28a9819 100644
        }
  
        cm_id->add_ref(cm_id);
-@@ -3280,7 +3280,7 @@ static void cm_event_connected(struct nes_cm_event *event)
-       if (nesqp->destroyed) {
+@@ -3517,7 +3517,7 @@ static void cm_event_connected(struct nes_cm_event *event)
+       if (nesqp->destroyed)
                return;
-       }
 -      atomic_inc(&cm_connecteds);
 +      atomic_inc_unchecked(&cm_connecteds);
        nes_debug(NES_DBG_CM, "QP%u attempting to connect to  0x%08X:0x%04X on"
-                       " local port 0x%04X. jiffies = %lu.\n",
-                       nesqp->hwqp.qp_id,
-@@ -3495,7 +3495,7 @@ static void cm_event_reset(struct nes_cm_event *event)
+                 " local port 0x%04X. jiffies = %lu.\n",
+                 nesqp->hwqp.qp_id,
+@@ -3704,7 +3704,7 @@ static void cm_event_reset(struct nes_cm_event *event)
  
        cm_id->add_ref(cm_id);
        ret = cm_id->event_handler(cm_id, &cm_event);
@@ -30367,29 +32575,62 @@ index a237547..28a9819 100644
        cm_event.event = IW_CM_EVENT_CLOSE;
        cm_event.status = 0;
        cm_event.provider_data = cm_id->provider_data;
-@@ -3531,7 +3531,7 @@ static void cm_event_mpa_req(struct nes_cm_event *event)
+@@ -3740,7 +3740,7 @@ static void cm_event_mpa_req(struct nes_cm_event *event)
                return;
        cm_id = cm_node->cm_id;
  
 -      atomic_inc(&cm_connect_reqs);
 +      atomic_inc_unchecked(&cm_connect_reqs);
        nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
-                       cm_node, cm_id, jiffies);
+                 cm_node, cm_id, jiffies);
  
-@@ -3569,7 +3569,7 @@ static void cm_event_mpa_reject(struct nes_cm_event *event)
+@@ -3780,7 +3780,7 @@ static void cm_event_mpa_reject(struct nes_cm_event *event)
                return;
        cm_id = cm_node->cm_id;
  
 -      atomic_inc(&cm_connect_reqs);
 +      atomic_inc_unchecked(&cm_connect_reqs);
        nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
-                       cm_node, cm_id, jiffies);
+                 cm_node, cm_id, jiffies);
+diff --git a/drivers/infiniband/hw/nes/nes_mgt.c b/drivers/infiniband/hw/nes/nes_mgt.c
+index 3ba7be3..c81f6ff 100644
+--- a/drivers/infiniband/hw/nes/nes_mgt.c
++++ b/drivers/infiniband/hw/nes/nes_mgt.c
+@@ -40,8 +40,8 @@
+ #include "nes.h"
+ #include "nes_mgt.h"
+-atomic_t pau_qps_created;
+-atomic_t pau_qps_destroyed;
++atomic_unchecked_t pau_qps_created;
++atomic_unchecked_t pau_qps_destroyed;
+ static void nes_replenish_mgt_rq(struct nes_vnic_mgt *mgtvnic)
+ {
+@@ -621,7 +621,7 @@ void nes_destroy_pau_qp(struct nes_device *nesdev, struct nes_qp *nesqp)
+ {
+       struct sk_buff *skb;
+       unsigned long flags;
+-      atomic_inc(&pau_qps_destroyed);
++      atomic_inc_unchecked(&pau_qps_destroyed);
+       /* Free packets that have not yet been forwarded */
+       /* Lock is acquired by skb_dequeue when removing the skb */
+@@ -812,7 +812,7 @@ static void nes_mgt_ce_handler(struct nes_device *nesdev, struct nes_hw_nic_cq *
+                                       cq->cq_vbase[head].cqe_words[NES_NIC_CQE_HASH_RCVNXT]);
+                               skb_queue_head_init(&nesqp->pau_list);
+                               spin_lock_init(&nesqp->pau_lock);
+-                              atomic_inc(&pau_qps_created);
++                              atomic_inc_unchecked(&pau_qps_created);
+                               nes_change_quad_hash(nesdev, mgtvnic->nesvnic, nesqp);
+                       }
  
 diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
-index 9d7ffeb..a95dd7d 100644
+index f3a3ecf..57d311d 100644
 --- a/drivers/infiniband/hw/nes/nes_nic.c
 +++ b/drivers/infiniband/hw/nes/nes_nic.c
-@@ -1274,31 +1274,31 @@ static void nes_netdev_get_ethtool_stats(struct net_device *netdev,
+@@ -1277,39 +1277,39 @@ static void nes_netdev_get_ethtool_stats(struct net_device *netdev,
        target_stat_values[++index] = mh_detected;
        target_stat_values[++index] = mh_pauses_sent;
        target_stat_values[++index] = nesvnic->endnode_ipv4_tcp_retransmits;
@@ -30439,8 +32680,18 @@ index 9d7ffeb..a95dd7d 100644
        target_stat_values[++index] = nesadapter->free_4kpbl;
        target_stat_values[++index] = nesadapter->free_256pbl;
        target_stat_values[++index] = int_mod_timer_init;
+       target_stat_values[++index] = nesvnic->lro_mgr.stats.aggregated;
+       target_stat_values[++index] = nesvnic->lro_mgr.stats.flushed;
+       target_stat_values[++index] = nesvnic->lro_mgr.stats.no_desc;
+-      target_stat_values[++index] = atomic_read(&pau_qps_created);
+-      target_stat_values[++index] = atomic_read(&pau_qps_destroyed);
++      target_stat_values[++index] = atomic_read_unchecked(&pau_qps_created);
++      target_stat_values[++index] = atomic_read_unchecked(&pau_qps_destroyed);
+ }
+ /**
 diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
-index 9f2f7d4..6d2fee2 100644
+index 8b8812d..a5e1133 100644
 --- a/drivers/infiniband/hw/nes/nes_verbs.c
 +++ b/drivers/infiniband/hw/nes/nes_verbs.c
 @@ -46,9 +46,9 @@
@@ -30467,7 +32718,7 @@ index 9f2f7d4..6d2fee2 100644
                        if (nes_drv_opt & NES_DRV_OPT_NO_INLINE_DATA) {
 @@ -1460,7 +1460,7 @@ static int nes_destroy_qp(struct ib_qp *ibqp)
        struct iw_cm_event cm_event;
-       int ret;
+       int ret = 0;
  
 -      atomic_inc(&sw_qps_destroyed);
 +      atomic_inc_unchecked(&sw_qps_destroyed);
@@ -30475,7 +32726,7 @@ index 9f2f7d4..6d2fee2 100644
  
        /* Blow away the connection if it exists. */
 diff --git a/drivers/infiniband/hw/qib/qib.h b/drivers/infiniband/hw/qib/qib.h
-index c9624ea..e025b66 100644
+index 6b811e3..f8acf88 100644
 --- a/drivers/infiniband/hw/qib/qib.h
 +++ b/drivers/infiniband/hw/qib/qib.h
 @@ -51,6 +51,7 @@
@@ -30487,10 +32738,10 @@ index c9624ea..e025b66 100644
  #include "qib_common.h"
  #include "qib_verbs.h"
 diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
-index c351aa4..e6967c2 100644
+index da739d9..da1c7f4 100644
 --- a/drivers/input/gameport/gameport.c
 +++ b/drivers/input/gameport/gameport.c
-@@ -488,14 +488,14 @@ EXPORT_SYMBOL(gameport_set_phys);
+@@ -487,14 +487,14 @@ EXPORT_SYMBOL(gameport_set_phys);
   */
  static void gameport_init_port(struct gameport *gameport)
  {
@@ -30508,7 +32759,7 @@ index c351aa4..e6967c2 100644
        gameport->dev.release = gameport_release_port;
        if (gameport->parent)
 diff --git a/drivers/input/input.c b/drivers/input/input.c
-index da38d97..2aa0b79 100644
+index 8921c61..f5cd63d 100644
 --- a/drivers/input/input.c
 +++ b/drivers/input/input.c
 @@ -1814,7 +1814,7 @@ static void input_cleanse_bitmasks(struct input_dev *dev)
@@ -30530,7 +32781,7 @@ index da38d97..2aa0b79 100644
        error = device_add(&dev->dev);
        if (error)
 diff --git a/drivers/input/joystick/sidewinder.c b/drivers/input/joystick/sidewinder.c
-index b8d8611..15f8d2c 100644
+index b8d8611..7a4a04b 100644
 --- a/drivers/input/joystick/sidewinder.c
 +++ b/drivers/input/joystick/sidewinder.c
 @@ -30,6 +30,7 @@
@@ -30541,20 +32792,11 @@ index b8d8611..15f8d2c 100644
  #include <linux/init.h>
  #include <linux/input.h>
  #include <linux/gameport.h>
-@@ -428,6 +429,8 @@ static int sw_read(struct sw *sw)
-       unsigned char buf[SW_LENGTH];
-       int i;
-+      pax_track_stack();
-+
-       i = sw_read_packet(sw->gameport, buf, sw->length, 0);
-       if (sw->type == SW_ID_3DP && sw->length == 66 && i != 66) {             /* Broken packet, try to fix */
 diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
-index d728875..844c89b 100644
+index 42f7b25..09fcf46 100644
 --- a/drivers/input/joystick/xpad.c
 +++ b/drivers/input/joystick/xpad.c
-@@ -710,7 +710,7 @@ static void xpad_led_set(struct led_classdev *led_cdev,
+@@ -714,7 +714,7 @@ static void xpad_led_set(struct led_classdev *led_cdev,
  
  static int xpad_led_probe(struct usb_xpad *xpad)
  {
@@ -30563,7 +32805,7 @@ index d728875..844c89b 100644
        long led_no;
        struct xpad_led *led;
        struct led_classdev *led_cdev;
-@@ -723,7 +723,7 @@ static int xpad_led_probe(struct usb_xpad *xpad)
+@@ -727,7 +727,7 @@ static int xpad_led_probe(struct usb_xpad *xpad)
        if (!led)
                return -ENOMEM;
  
@@ -30586,10 +32828,10 @@ index 0110b5a..d3ad144 100644
  
        return count;
 diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
-index ba70058..571d25d 100644
+index d0f7533..fb8215b 100644
 --- a/drivers/input/serio/serio.c
 +++ b/drivers/input/serio/serio.c
-@@ -497,7 +497,7 @@ static void serio_release_port(struct device *dev)
+@@ -496,7 +496,7 @@ static void serio_release_port(struct device *dev)
   */
  static void serio_init_port(struct serio *serio)
  {
@@ -30598,7 +32840,7 @@ index ba70058..571d25d 100644
  
        __module_get(THIS_MODULE);
  
-@@ -508,7 +508,7 @@ static void serio_init_port(struct serio *serio)
+@@ -507,7 +507,7 @@ static void serio_init_port(struct serio *serio)
        mutex_init(&serio->drv_mutex);
        device_initialize(&serio->dev);
        dev_set_name(&serio->dev, "serio%ld",
@@ -30608,7 +32850,7 @@ index ba70058..571d25d 100644
        serio->dev.release = serio_release_port;
        serio->dev.groups = serio_device_attr_groups;
 diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c
-index e44933d..9ba484a 100644
+index b902794..fc7b85b 100644
 --- a/drivers/isdn/capi/capi.c
 +++ b/drivers/isdn/capi/capi.c
 @@ -83,8 +83,8 @@ struct capiminor {
@@ -30648,136 +32890,11 @@ index e44933d..9ba484a 100644
                capimsg_setu32(skb->data, 8, mp->ncci); /* NCCI */
                capimsg_setu32(skb->data, 12, (u32)(long)skb->data);/* Data32 */
                capimsg_setu16(skb->data, 16, len);     /* Data length */
-diff --git a/drivers/isdn/gigaset/common.c b/drivers/isdn/gigaset/common.c
-index db621db..825ea1a 100644
---- a/drivers/isdn/gigaset/common.c
-+++ b/drivers/isdn/gigaset/common.c
-@@ -723,7 +723,7 @@ struct cardstate *gigaset_initcs(struct gigaset_driver *drv, int channels,
-       cs->commands_pending = 0;
-       cs->cur_at_seq = 0;
-       cs->gotfwver = -1;
--      cs->open_count = 0;
-+      local_set(&cs->open_count, 0);
-       cs->dev = NULL;
-       cs->tty = NULL;
-       cs->tty_dev = NULL;
-diff --git a/drivers/isdn/gigaset/gigaset.h b/drivers/isdn/gigaset/gigaset.h
-index 212efaf..f187c6b 100644
---- a/drivers/isdn/gigaset/gigaset.h
-+++ b/drivers/isdn/gigaset/gigaset.h
-@@ -35,6 +35,7 @@
- #include <linux/tty_driver.h>
- #include <linux/list.h>
- #include <linux/atomic.h>
-+#include <asm/local.h>
- #define GIG_VERSION {0, 5, 0, 0}
- #define GIG_COMPAT  {0, 4, 0, 0}
-@@ -433,7 +434,7 @@ struct cardstate {
-       spinlock_t cmdlock;
-       unsigned curlen, cmdbytes;
--      unsigned open_count;
-+      local_t open_count;
-       struct tty_struct *tty;
-       struct tasklet_struct if_wake_tasklet;
-       unsigned control_state;
-diff --git a/drivers/isdn/gigaset/interface.c b/drivers/isdn/gigaset/interface.c
-index e35058b..5898a8b 100644
---- a/drivers/isdn/gigaset/interface.c
-+++ b/drivers/isdn/gigaset/interface.c
-@@ -162,9 +162,7 @@ static int if_open(struct tty_struct *tty, struct file *filp)
-       }
-       tty->driver_data = cs;
--      ++cs->open_count;
--
--      if (cs->open_count == 1) {
-+      if (local_inc_return(&cs->open_count) == 1) {
-               spin_lock_irqsave(&cs->lock, flags);
-               cs->tty = tty;
-               spin_unlock_irqrestore(&cs->lock, flags);
-@@ -192,10 +190,10 @@ static void if_close(struct tty_struct *tty, struct file *filp)
-       if (!cs->connected)
-               gig_dbg(DEBUG_IF, "not connected");     /* nothing to do */
--      else if (!cs->open_count)
-+      else if (!local_read(&cs->open_count))
-               dev_warn(cs->dev, "%s: device not opened\n", __func__);
-       else {
--              if (!--cs->open_count) {
-+              if (!local_dec_return(&cs->open_count)) {
-                       spin_lock_irqsave(&cs->lock, flags);
-                       cs->tty = NULL;
-                       spin_unlock_irqrestore(&cs->lock, flags);
-@@ -230,7 +228,7 @@ static int if_ioctl(struct tty_struct *tty,
-       if (!cs->connected) {
-               gig_dbg(DEBUG_IF, "not connected");
-               retval = -ENODEV;
--      } else if (!cs->open_count)
-+      } else if (!local_read(&cs->open_count))
-               dev_warn(cs->dev, "%s: device not opened\n", __func__);
-       else {
-               retval = 0;
-@@ -360,7 +358,7 @@ static int if_write(struct tty_struct *tty, const unsigned char *buf, int count)
-               retval = -ENODEV;
-               goto done;
-       }
--      if (!cs->open_count) {
-+      if (!local_read(&cs->open_count)) {
-               dev_warn(cs->dev, "%s: device not opened\n", __func__);
-               retval = -ENODEV;
-               goto done;
-@@ -413,7 +411,7 @@ static int if_write_room(struct tty_struct *tty)
-       if (!cs->connected) {
-               gig_dbg(DEBUG_IF, "not connected");
-               retval = -ENODEV;
--      } else if (!cs->open_count)
-+      } else if (!local_read(&cs->open_count))
-               dev_warn(cs->dev, "%s: device not opened\n", __func__);
-       else if (cs->mstate != MS_LOCKED) {
-               dev_warn(cs->dev, "can't write to unlocked device\n");
-@@ -443,7 +441,7 @@ static int if_chars_in_buffer(struct tty_struct *tty)
-       if (!cs->connected)
-               gig_dbg(DEBUG_IF, "not connected");
--      else if (!cs->open_count)
-+      else if (!local_read(&cs->open_count))
-               dev_warn(cs->dev, "%s: device not opened\n", __func__);
-       else if (cs->mstate != MS_LOCKED)
-               dev_warn(cs->dev, "can't write to unlocked device\n");
-@@ -471,7 +469,7 @@ static void if_throttle(struct tty_struct *tty)
-       if (!cs->connected)
-               gig_dbg(DEBUG_IF, "not connected");     /* nothing to do */
--      else if (!cs->open_count)
-+      else if (!local_read(&cs->open_count))
-               dev_warn(cs->dev, "%s: device not opened\n", __func__);
-       else
-               gig_dbg(DEBUG_IF, "%s: not implemented\n", __func__);
-@@ -495,7 +493,7 @@ static void if_unthrottle(struct tty_struct *tty)
-       if (!cs->connected)
-               gig_dbg(DEBUG_IF, "not connected");     /* nothing to do */
--      else if (!cs->open_count)
-+      else if (!local_read(&cs->open_count))
-               dev_warn(cs->dev, "%s: device not opened\n", __func__);
-       else
-               gig_dbg(DEBUG_IF, "%s: not implemented\n", __func__);
-@@ -526,7 +524,7 @@ static void if_set_termios(struct tty_struct *tty, struct ktermios *old)
-               goto out;
-       }
--      if (!cs->open_count) {
-+      if (!local_read(&cs->open_count)) {
-               dev_warn(cs->dev, "%s: device not opened\n", __func__);
-               goto out;
-       }
 diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c
-index 2a57da59..e7a12ed 100644
+index 821f7ac..28d4030 100644
 --- a/drivers/isdn/hardware/avm/b1.c
 +++ b/drivers/isdn/hardware/avm/b1.c
-@@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capiloaddatapart * t4file)
+@@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capiloaddatapart *t4file)
        }
        if (left) {
                if (t4file->user) {
@@ -30786,7 +32903,7 @@ index 2a57da59..e7a12ed 100644
                                return -EFAULT;
                } else {
                        memcpy(buf, dp, left);
-@@ -224,7 +224,7 @@ int b1_load_config(avmcard *card, capiloaddatapart * config)
+@@ -224,7 +224,7 @@ int b1_load_config(avmcard *card, capiloaddatapart *config)
        }
        if (left) {
                if (config->user) {
@@ -30795,138 +32912,21 @@ index 2a57da59..e7a12ed 100644
                                return -EFAULT;
                } else {
                        memcpy(buf, dp, left);
-diff --git a/drivers/isdn/hardware/eicon/capidtmf.c b/drivers/isdn/hardware/eicon/capidtmf.c
-index f130724..c373c68 100644
---- a/drivers/isdn/hardware/eicon/capidtmf.c
-+++ b/drivers/isdn/hardware/eicon/capidtmf.c
-@@ -498,6 +498,7 @@ void capidtmf_recv_block (t_capidtmf_state   *p_state, byte   *buffer, word leng
-   byte goertzel_result_buffer[CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT];
-     short windowed_sample_buffer[CAPIDTMF_RECV_WINDOWED_SAMPLES];
-+  pax_track_stack();
-   if (p_state->recv.state & CAPIDTMF_RECV_STATE_DTMF_ACTIVE)
-   {
-diff --git a/drivers/isdn/hardware/eicon/capifunc.c b/drivers/isdn/hardware/eicon/capifunc.c
-index 4d425c6..a9be6c4 100644
---- a/drivers/isdn/hardware/eicon/capifunc.c
-+++ b/drivers/isdn/hardware/eicon/capifunc.c
-@@ -1055,6 +1055,8 @@ static int divacapi_connect_didd(void)
-       IDI_SYNC_REQ req;
-       DESCRIPTOR DIDD_Table[MAX_DESCRIPTORS];
-+      pax_track_stack();
-+
-       DIVA_DIDD_Read(DIDD_Table, sizeof(DIDD_Table));
-       for (x = 0; x < MAX_DESCRIPTORS; x++) {
-diff --git a/drivers/isdn/hardware/eicon/diddfunc.c b/drivers/isdn/hardware/eicon/diddfunc.c
-index 3029234..ef0d9e2 100644
---- a/drivers/isdn/hardware/eicon/diddfunc.c
-+++ b/drivers/isdn/hardware/eicon/diddfunc.c
-@@ -54,6 +54,8 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
-       IDI_SYNC_REQ req;
-       DESCRIPTOR DIDD_Table[MAX_DESCRIPTORS];
-+      pax_track_stack();
-+
-       DIVA_DIDD_Read(DIDD_Table, sizeof(DIDD_Table));
-       for (x = 0; x < MAX_DESCRIPTORS; x++) {
-diff --git a/drivers/isdn/hardware/eicon/divasfunc.c b/drivers/isdn/hardware/eicon/divasfunc.c
-index 0bbee78..a0d0a01 100644
---- a/drivers/isdn/hardware/eicon/divasfunc.c
-+++ b/drivers/isdn/hardware/eicon/divasfunc.c
-@@ -160,6 +160,8 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
-       IDI_SYNC_REQ req;
-       DESCRIPTOR DIDD_Table[MAX_DESCRIPTORS];
-+      pax_track_stack();
-+
-       DIVA_DIDD_Read(DIDD_Table, sizeof(DIDD_Table));
-       for (x = 0; x < MAX_DESCRIPTORS; x++) {
 diff --git a/drivers/isdn/hardware/eicon/divasync.h b/drivers/isdn/hardware/eicon/divasync.h
-index 85784a7..a19ca98 100644
+index dd6b53a..19d9ee6 100644
 --- a/drivers/isdn/hardware/eicon/divasync.h
 +++ b/drivers/isdn/hardware/eicon/divasync.h
 @@ -146,7 +146,7 @@ typedef struct _diva_didd_add_adapter {
  } diva_didd_add_adapter_t;
  typedef struct _diva_didd_remove_adapter {
-  IDI_CALL p_request;
+       IDI_CALL p_request;
 -} diva_didd_remove_adapter_t;
 +} __no_const diva_didd_remove_adapter_t;
  typedef struct _diva_didd_read_adapter_array {
-  void   * buffer;
-  dword length;
-diff --git a/drivers/isdn/hardware/eicon/idifunc.c b/drivers/isdn/hardware/eicon/idifunc.c
-index db87d51..7d09acf 100644
---- a/drivers/isdn/hardware/eicon/idifunc.c
-+++ b/drivers/isdn/hardware/eicon/idifunc.c
-@@ -188,6 +188,8 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
-       IDI_SYNC_REQ req;
-       DESCRIPTOR DIDD_Table[MAX_DESCRIPTORS];
-+      pax_track_stack();
-+
-       DIVA_DIDD_Read(DIDD_Table, sizeof(DIDD_Table));
-       for (x = 0; x < MAX_DESCRIPTORS; x++) {
-diff --git a/drivers/isdn/hardware/eicon/message.c b/drivers/isdn/hardware/eicon/message.c
-index a339598..b6a8bfc 100644
---- a/drivers/isdn/hardware/eicon/message.c
-+++ b/drivers/isdn/hardware/eicon/message.c
-@@ -4886,6 +4886,8 @@ static void sig_ind(PLCI *plci)
-   dword d;
-   word w;
-+  pax_track_stack();
-+
-   a = plci->adapter;
-   Id = ((word)plci->Id<<8)|a->Id;
-   PUT_WORD(&SS_Ind[4],0x0000);
-@@ -7480,6 +7482,8 @@ static word add_b1(PLCI *plci, API_PARSE *bp, word b_channel_info,
-   word j, n, w;
-   dword d;
-+  pax_track_stack();
-+
-   for(i=0;i<8;i++) bp_parms[i].length = 0;
-   for(i=0;i<2;i++) global_config[i].length = 0;
-@@ -7954,6 +7958,8 @@ static word add_b23(PLCI *plci, API_PARSE *bp)
-   const byte llc3[] = {4,3,2,2,6,6,0};
-   const byte header[] = {0,2,3,3,0,0,0};
-+  pax_track_stack();
-+
-   for(i=0;i<8;i++) bp_parms[i].length = 0;
-   for(i=0;i<6;i++) b2_config_parms[i].length = 0;
-   for(i=0;i<5;i++) b3_config_parms[i].length = 0;
-@@ -14741,6 +14747,8 @@ static void group_optimization(DIVA_CAPI_ADAPTER   * a, PLCI   * plci)
-   word appl_number_group_type[MAX_APPL];
-   PLCI   *auxplci;
-+  pax_track_stack();
-+
-   set_group_ind_mask (plci); /* all APPLs within this inc. call are allowed to dial in */
-   if(!a->group_optimization_enabled)
-diff --git a/drivers/isdn/hardware/eicon/mntfunc.c b/drivers/isdn/hardware/eicon/mntfunc.c
-index a564b75..f3cf8b5 100644
---- a/drivers/isdn/hardware/eicon/mntfunc.c
-+++ b/drivers/isdn/hardware/eicon/mntfunc.c
-@@ -79,6 +79,8 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
-       IDI_SYNC_REQ req;
-       DESCRIPTOR DIDD_Table[MAX_DESCRIPTORS];
-+      pax_track_stack();
-+
-       DIVA_DIDD_Read(DIDD_Table, sizeof(DIDD_Table));
-       for (x = 0; x < MAX_DESCRIPTORS; x++) {
+       void *buffer;
+       dword length;
 diff --git a/drivers/isdn/hardware/eicon/xdi_adapter.h b/drivers/isdn/hardware/eicon/xdi_adapter.h
-index a3bd163..8956575 100644
+index d303e65..28bcb7b 100644
 --- a/drivers/isdn/hardware/eicon/xdi_adapter.h
 +++ b/drivers/isdn/hardware/eicon/xdi_adapter.h
 @@ -44,7 +44,7 @@ typedef struct _xdi_mbox_t {
@@ -30938,24 +32938,11 @@ index a3bd163..8956575 100644
  
  typedef struct _diva_os_xdi_adapter {
        struct list_head link;
-diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
-index 6ed82ad..b05ac05 100644
---- a/drivers/isdn/i4l/isdn_common.c
-+++ b/drivers/isdn/i4l/isdn_common.c
-@@ -1286,6 +1286,8 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
-       } iocpar;
-       void __user *argp = (void __user *)arg;
-+      pax_track_stack();
-+
- #define name  iocpar.name
- #define bname iocpar.bname
- #define iocts iocpar.iocts
 diff --git a/drivers/isdn/icn/icn.c b/drivers/isdn/icn/icn.c
-index 1f355bb..43f1fea 100644
+index e74df7c..03a03ba 100644
 --- a/drivers/isdn/icn/icn.c
 +++ b/drivers/isdn/icn/icn.c
-@@ -1045,7 +1045,7 @@ icn_writecmd(const u_char * buf, int len, int user, icn_card * card)
+@@ -1045,7 +1045,7 @@ icn_writecmd(const u_char *buf, int len, int user, icn_card *card)
                if (count > len)
                        count = len;
                if (user) {
@@ -30964,8 +32951,21 @@ index 1f355bb..43f1fea 100644
                                return -EFAULT;
                } else
                        memcpy(msg, buf, count);
+diff --git a/drivers/leds/leds-mc13783.c b/drivers/leds/leds-mc13783.c
+index 8bc4915..4cc6a2e 100644
+--- a/drivers/leds/leds-mc13783.c
++++ b/drivers/leds/leds-mc13783.c
+@@ -280,7 +280,7 @@ static int __devinit mc13783_led_probe(struct platform_device *pdev)
+               return -EINVAL;
+       }
+-      led = kzalloc(sizeof(*led) * pdata->num_leds, GFP_KERNEL);
++      led = kcalloc(pdata->num_leds, sizeof(*led), GFP_KERNEL);
+       if (led == NULL) {
+               dev_err(&pdev->dev, "failed to alloc memory\n");
+               return -ENOMEM;
 diff --git a/drivers/lguest/core.c b/drivers/lguest/core.c
-index 2535933..09a8e86 100644
+index b5fdcb7..5b6c59f 100644
 --- a/drivers/lguest/core.c
 +++ b/drivers/lguest/core.c
 @@ -92,9 +92,17 @@ static __init int map_switcher(void)
@@ -30996,7 +32996,7 @@ index 2535933..09a8e86 100644
  
        printk(KERN_INFO "lguest: mapped switcher at %p\n",
 diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
-index 65af42f..530c87a 100644
+index 39809035..ce25c5e 100644
 --- a/drivers/lguest/x86/core.c
 +++ b/drivers/lguest/x86/core.c
 @@ -59,7 +59,7 @@ static struct {
@@ -31103,7 +33103,7 @@ index 40634b0..4f5855e 100644
  // Every interrupt can come to us here
  // But we must truly tell each apart.
 diff --git a/drivers/macintosh/macio_asic.c b/drivers/macintosh/macio_asic.c
-index 4daf9e5..b8d1d0f 100644
+index 20e5c2c..9e849a9 100644
 --- a/drivers/macintosh/macio_asic.c
 +++ b/drivers/macintosh/macio_asic.c
 @@ -748,7 +748,7 @@ static void __devexit macio_pci_remove(struct pci_dev* pdev)
@@ -31115,11 +33115,24 @@ index 4daf9e5..b8d1d0f 100644
        .vendor         = PCI_VENDOR_ID_APPLE,
        .device         = PCI_ANY_ID,
        .subvendor      = PCI_ANY_ID,
+diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
+index 17e2b47..bcbeec4 100644
+--- a/drivers/md/bitmap.c
++++ b/drivers/md/bitmap.c
+@@ -1823,7 +1823,7 @@ void bitmap_status(struct seq_file *seq, struct bitmap *bitmap)
+                  chunk_kb ? "KB" : "B");
+       if (bitmap->file) {
+               seq_printf(seq, ", file: ");
+-              seq_path(seq, &bitmap->file->f_path, " \t\n");
++              seq_path(seq, &bitmap->file->f_path, " \t\n\\");
+       }
+       seq_printf(seq, "\n");
 diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
-index 2e9a3ca..c2fb229 100644
+index a1a3e6d..1918bfc 100644
 --- a/drivers/md/dm-ioctl.c
 +++ b/drivers/md/dm-ioctl.c
-@@ -1578,7 +1578,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
+@@ -1590,7 +1590,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
            cmd == DM_LIST_VERSIONS_CMD)
                return 0;
  
@@ -31129,7 +33142,7 @@ index 2e9a3ca..c2fb229 100644
                        DMWARN("name not supplied when creating device");
                        return -EINVAL;
 diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
-index 9bfd057..01180bc 100644
+index d039de8..0cf5b87 100644
 --- a/drivers/md/dm-raid1.c
 +++ b/drivers/md/dm-raid1.c
 @@ -40,7 +40,7 @@ enum dm_raid1_error {
@@ -31186,7 +33199,7 @@ index 9bfd057..01180bc 100644
                        m = NULL;
  
                if (likely(m))
-@@ -937,7 +937,7 @@ static int get_mirror(struct mirror_set *ms, struct dm_target *ti,
+@@ -938,7 +938,7 @@ static int get_mirror(struct mirror_set *ms, struct dm_target *ti,
        }
  
        ms->mirror[mirror].ms = ms;
@@ -31195,7 +33208,7 @@ index 9bfd057..01180bc 100644
        ms->mirror[mirror].error_type = 0;
        ms->mirror[mirror].offset = offset;
  
-@@ -1347,7 +1347,7 @@ static void mirror_resume(struct dm_target *ti)
+@@ -1351,7 +1351,7 @@ static void mirror_resume(struct dm_target *ti)
   */
  static char device_status_char(struct mirror *m)
  {
@@ -31205,7 +33218,7 @@ index 9bfd057..01180bc 100644
  
        return (test_bit(DM_RAID1_FLUSH_ERROR, &(m->error_type))) ? 'F' :
 diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
-index 3d80cf0..b77cc47 100644
+index 35c94ff..20d4c17 100644
 --- a/drivers/md/dm-stripe.c
 +++ b/drivers/md/dm-stripe.c
 @@ -20,7 +20,7 @@ struct stripe {
@@ -31217,7 +33230,7 @@ index 3d80cf0..b77cc47 100644
  };
  
  struct stripe_c {
-@@ -192,7 +192,7 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
+@@ -193,7 +193,7 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
                        kfree(sc);
                        return r;
                }
@@ -31226,7 +33239,7 @@ index 3d80cf0..b77cc47 100644
        }
  
        ti->private = sc;
-@@ -314,7 +314,7 @@ static int stripe_status(struct dm_target *ti,
+@@ -315,7 +315,7 @@ static int stripe_status(struct dm_target *ti,
                DMEMIT("%d ", sc->stripes);
                for (i = 0; i < sc->stripes; i++)  {
                        DMEMIT("%s ", sc->stripe[i].dev->name);
@@ -31235,7 +33248,7 @@ index 3d80cf0..b77cc47 100644
                                'D' : 'A';
                }
                buffer[i] = '\0';
-@@ -361,8 +361,8 @@ static int stripe_end_io(struct dm_target *ti, struct bio *bio,
+@@ -362,8 +362,8 @@ static int stripe_end_io(struct dm_target *ti, struct bio *bio,
         */
        for (i = 0; i < sc->stripes; i++)
                if (!strcmp(sc->stripe[i].dev->name, major_minor)) {
@@ -31247,10 +33260,10 @@ index 3d80cf0..b77cc47 100644
                                schedule_work(&sc->trigger_event);
                }
 diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
-index bc04518..7a83b81 100644
+index 2e227fb..44ead1f 100644
 --- a/drivers/md/dm-table.c
 +++ b/drivers/md/dm-table.c
-@@ -389,7 +389,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
+@@ -390,7 +390,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
        if (!dev_size)
                return 0;
  
@@ -31259,11 +33272,33 @@ index bc04518..7a83b81 100644
                DMWARN("%s: %s too small for target: "
                       "start=%llu, len=%llu, dev_size=%llu",
                       dm_device_name(ti->table->md), bdevname(bdev, b),
+diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
+index 737d388..811ad5a 100644
+--- a/drivers/md/dm-thin-metadata.c
++++ b/drivers/md/dm-thin-metadata.c
+@@ -432,7 +432,7 @@ static int init_pmd(struct dm_pool_metadata *pmd,
+       pmd->info.tm = tm;
+       pmd->info.levels = 2;
+-      pmd->info.value_type.context = pmd->data_sm;
++      pmd->info.value_type.context = (dm_space_map_no_const *)pmd->data_sm;
+       pmd->info.value_type.size = sizeof(__le64);
+       pmd->info.value_type.inc = data_block_inc;
+       pmd->info.value_type.dec = data_block_dec;
+@@ -451,7 +451,7 @@ static int init_pmd(struct dm_pool_metadata *pmd,
+       pmd->bl_info.tm = tm;
+       pmd->bl_info.levels = 1;
+-      pmd->bl_info.value_type.context = pmd->data_sm;
++      pmd->bl_info.value_type.context = (dm_space_map_no_const *)pmd->data_sm;
+       pmd->bl_info.value_type.size = sizeof(__le64);
+       pmd->bl_info.value_type.inc = data_block_inc;
+       pmd->bl_info.value_type.dec = data_block_dec;
 diff --git a/drivers/md/dm.c b/drivers/md/dm.c
-index 52b39f3..83a8b6b 100644
+index e24143c..ce2f21a1 100644
 --- a/drivers/md/dm.c
 +++ b/drivers/md/dm.c
-@@ -165,9 +165,9 @@ struct mapped_device {
+@@ -176,9 +176,9 @@ struct mapped_device {
        /*
         * Event handling.
         */
@@ -31275,7 +33310,7 @@ index 52b39f3..83a8b6b 100644
        struct list_head uevent_list;
        spinlock_t uevent_lock; /* Protect access to uevent_list */
  
-@@ -1843,8 +1843,8 @@ static struct mapped_device *alloc_dev(int minor)
+@@ -1845,8 +1845,8 @@ static struct mapped_device *alloc_dev(int minor)
        rwlock_init(&md->map_lock);
        atomic_set(&md->holders, 1);
        atomic_set(&md->open_count, 0);
@@ -31286,7 +33321,7 @@ index 52b39f3..83a8b6b 100644
        INIT_LIST_HEAD(&md->uevent_list);
        spin_lock_init(&md->uevent_lock);
  
-@@ -1978,7 +1978,7 @@ static void event_callback(void *context)
+@@ -1980,7 +1980,7 @@ static void event_callback(void *context)
  
        dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj);
  
@@ -31295,7 +33330,7 @@ index 52b39f3..83a8b6b 100644
        wake_up(&md->eventq);
  }
  
-@@ -2614,18 +2614,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
+@@ -2622,18 +2622,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
  
  uint32_t dm_next_uevent_seq(struct mapped_device *md)
  {
@@ -31318,32 +33353,32 @@ index 52b39f3..83a8b6b 100644
  
  void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
 diff --git a/drivers/md/md.c b/drivers/md/md.c
-index 5c95ccb..217fa57 100644
+index 2b30ffd..362b519 100644
 --- a/drivers/md/md.c
 +++ b/drivers/md/md.c
-@@ -280,10 +280,10 @@ EXPORT_SYMBOL_GPL(md_trim_bio);
+@@ -277,10 +277,10 @@ EXPORT_SYMBOL_GPL(md_trim_bio);
   *  start build, activate spare
   */
  static DECLARE_WAIT_QUEUE_HEAD(md_event_waiters);
 -static atomic_t md_event_count;
 +static atomic_unchecked_t md_event_count;
- void md_new_event(mddev_t *mddev)
+ void md_new_event(struct mddev *mddev)
  {
 -      atomic_inc(&md_event_count);
 +      atomic_inc_unchecked(&md_event_count);
        wake_up(&md_event_waiters);
  }
  EXPORT_SYMBOL_GPL(md_new_event);
-@@ -293,7 +293,7 @@ EXPORT_SYMBOL_GPL(md_new_event);
+@@ -290,7 +290,7 @@ EXPORT_SYMBOL_GPL(md_new_event);
   */
- static void md_new_event_inintr(mddev_t *mddev)
+ static void md_new_event_inintr(struct mddev *mddev)
  {
 -      atomic_inc(&md_event_count);
 +      atomic_inc_unchecked(&md_event_count);
        wake_up(&md_event_waiters);
  }
  
-@@ -1531,7 +1531,7 @@ static int super_1_load(mdk_rdev_t *rdev, mdk_rdev_t *refdev, int minor_version)
+@@ -1526,7 +1526,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
  
        rdev->preferred_minor = 0xffff;
        rdev->data_offset = le64_to_cpu(sb->data_offset);
@@ -31352,7 +33387,7 @@ index 5c95ccb..217fa57 100644
  
        rdev->sb_size = le32_to_cpu(sb->max_dev) * 2 + 256;
        bmask = queue_logical_block_size(rdev->bdev->bd_disk->queue)-1;
-@@ -1748,7 +1748,7 @@ static void super_1_sync(mddev_t *mddev, mdk_rdev_t *rdev)
+@@ -1745,7 +1745,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
        else
                sb->resync_offset = cpu_to_le64(0);
  
@@ -31361,16 +33396,16 @@ index 5c95ccb..217fa57 100644
  
        sb->raid_disks = cpu_to_le32(mddev->raid_disks);
        sb->size = cpu_to_le64(mddev->dev_sectors);
-@@ -2643,7 +2643,7 @@ __ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store);
+@@ -2691,7 +2691,7 @@ __ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store);
  static ssize_t
- errors_show(mdk_rdev_t *rdev, char *page)
+ errors_show(struct md_rdev *rdev, char *page)
  {
 -      return sprintf(page, "%d\n", atomic_read(&rdev->corrected_errors));
 +      return sprintf(page, "%d\n", atomic_read_unchecked(&rdev->corrected_errors));
  }
  
  static ssize_t
-@@ -2652,7 +2652,7 @@ errors_store(mdk_rdev_t *rdev, const char *buf, size_t len)
+@@ -2700,7 +2700,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
        char *e;
        unsigned long n = simple_strtoul(buf, &e, 10);
        if (*buf && (*e == 0 || *e == '\n')) {
@@ -31379,7 +33414,7 @@ index 5c95ccb..217fa57 100644
                return len;
        }
        return -EINVAL;
-@@ -3042,8 +3042,8 @@ int md_rdev_init(mdk_rdev_t *rdev)
+@@ -3086,8 +3086,8 @@ int md_rdev_init(struct md_rdev *rdev)
        rdev->sb_loaded = 0;
        rdev->bb_page = NULL;
        atomic_set(&rdev->nr_pending, 0);
@@ -31390,7 +33425,125 @@ index 5c95ccb..217fa57 100644
  
        INIT_LIST_HEAD(&rdev->same_set);
        init_waitqueue_head(&rdev->blocked_wait);
-@@ -6667,7 +6667,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
+@@ -3744,8 +3744,8 @@ array_state_show(struct mddev *mddev, char *page)
+       return sprintf(page, "%s\n", array_states[st]);
+ }
+-static int do_md_stop(struct mddev * mddev, int ro, int is_open);
+-static int md_set_readonly(struct mddev * mddev, int is_open);
++static int do_md_stop(struct mddev * mddev, int ro, struct block_device *bdev);
++static int md_set_readonly(struct mddev * mddev, struct block_device *bdev);
+ static int do_md_run(struct mddev * mddev);
+ static int restart_array(struct mddev *mddev);
+@@ -3761,14 +3761,14 @@ array_state_store(struct mddev *mddev, const char *buf, size_t len)
+               /* stopping an active array */
+               if (atomic_read(&mddev->openers) > 0)
+                       return -EBUSY;
+-              err = do_md_stop(mddev, 0, 0);
++              err = do_md_stop(mddev, 0, NULL);
+               break;
+       case inactive:
+               /* stopping an active array */
+               if (mddev->pers) {
+                       if (atomic_read(&mddev->openers) > 0)
+                               return -EBUSY;
+-                      err = do_md_stop(mddev, 2, 0);
++                      err = do_md_stop(mddev, 2, NULL);
+               } else
+                       err = 0; /* already inactive */
+               break;
+@@ -3776,7 +3776,7 @@ array_state_store(struct mddev *mddev, const char *buf, size_t len)
+               break; /* not supported yet */
+       case readonly:
+               if (mddev->pers)
+-                      err = md_set_readonly(mddev, 0);
++                      err = md_set_readonly(mddev, NULL);
+               else {
+                       mddev->ro = 1;
+                       set_disk_ro(mddev->gendisk, 1);
+@@ -3786,7 +3786,7 @@ array_state_store(struct mddev *mddev, const char *buf, size_t len)
+       case read_auto:
+               if (mddev->pers) {
+                       if (mddev->ro == 0)
+-                              err = md_set_readonly(mddev, 0);
++                              err = md_set_readonly(mddev, NULL);
+                       else if (mddev->ro == 1)
+                               err = restart_array(mddev);
+                       if (err == 0) {
+@@ -5124,15 +5124,17 @@ void md_stop(struct mddev *mddev)
+ }
+ EXPORT_SYMBOL_GPL(md_stop);
+-static int md_set_readonly(struct mddev *mddev, int is_open)
++static int md_set_readonly(struct mddev *mddev, struct block_device *bdev)
+ {
+       int err = 0;
+       mutex_lock(&mddev->open_mutex);
+-      if (atomic_read(&mddev->openers) > is_open) {
++      if (atomic_read(&mddev->openers) > !!bdev) {
+               printk("md: %s still in use.\n",mdname(mddev));
+               err = -EBUSY;
+               goto out;
+       }
++      if (bdev)
++              sync_blockdev(bdev);
+       if (mddev->pers) {
+               __md_stop_writes(mddev);
+@@ -5154,18 +5156,26 @@ out:
+  *   0 - completely stop and dis-assemble array
+  *   2 - stop but do not disassemble array
+  */
+-static int do_md_stop(struct mddev * mddev, int mode, int is_open)
++static int do_md_stop(struct mddev * mddev, int mode,
++                    struct block_device *bdev)
+ {
+       struct gendisk *disk = mddev->gendisk;
+       struct md_rdev *rdev;
+       mutex_lock(&mddev->open_mutex);
+-      if (atomic_read(&mddev->openers) > is_open ||
++      if (atomic_read(&mddev->openers) > !!bdev ||
+           mddev->sysfs_active) {
+               printk("md: %s still in use.\n",mdname(mddev));
+               mutex_unlock(&mddev->open_mutex);
+               return -EBUSY;
+       }
++      if (bdev)
++              /* It is possible IO was issued on some other
++               * open file which was closed before we took ->open_mutex.
++               * As that was not the last close __blkdev_put will not
++               * have called sync_blockdev, so we must.
++               */
++              sync_blockdev(bdev);
+       if (mddev->pers) {
+               if (mddev->ro)
+@@ -5239,7 +5249,7 @@ static void autorun_array(struct mddev *mddev)
+       err = do_md_run(mddev);
+       if (err) {
+               printk(KERN_WARNING "md: do_md_run() returned %d\n", err);
+-              do_md_stop(mddev, 0, 0);
++              do_md_stop(mddev, 0, NULL);
+       }
+ }
+@@ -6237,11 +6247,11 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode,
+                       goto done_unlock;
+               case STOP_ARRAY:
+-                      err = do_md_stop(mddev, 0, 1);
++                      err = do_md_stop(mddev, 0, bdev);
+                       goto done_unlock;
+               case STOP_ARRAY_RO:
+-                      err = md_set_readonly(mddev, 1);
++                      err = md_set_readonly(mddev, bdev);
+                       goto done_unlock;
+               case BLKROSET:
+@@ -6738,7 +6748,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
  
                spin_unlock(&pers_lock);
                seq_printf(seq, "\n");
@@ -31399,16 +33552,7 @@ index 5c95ccb..217fa57 100644
                return 0;
        }
        if (v == (void*)2) {
-@@ -6756,7 +6756,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
-                               chunk_kb ? "KB" : "B");
-                       if (bitmap->file) {
-                               seq_printf(seq, ", file: ");
--                              seq_path(seq, &bitmap->file->f_path, " \t\n");
-+                              seq_path(seq, &bitmap->file->f_path, " \t\n\\");
-                       }
-                       seq_printf(seq, "\n");
-@@ -6787,7 +6787,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
+@@ -6841,7 +6851,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
                return error;
  
        seq = file->private_data;
@@ -31417,7 +33561,7 @@ index 5c95ccb..217fa57 100644
        return error;
  }
  
-@@ -6801,7 +6801,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
+@@ -6855,7 +6865,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
        /* always allow read */
        mask = POLLIN | POLLRDNORM;
  
@@ -31426,7 +33570,7 @@ index 5c95ccb..217fa57 100644
                mask |= POLLERR | POLLPRI;
        return mask;
  }
-@@ -6845,7 +6845,7 @@ static int is_mddev_idle(mddev_t *mddev, int init)
+@@ -6899,7 +6909,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
                struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
                curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
                              (int)part_stat_read(&disk->part0, sectors[1]) -
@@ -31436,10 +33580,10 @@ index 5c95ccb..217fa57 100644
                 * as sync_io is counted when a request starts, and
                 * disk_stats is counted when it completes.
 diff --git a/drivers/md/md.h b/drivers/md/md.h
-index 0a309dc..7e01d7f 100644
+index 1c2063c..9639970 100644
 --- a/drivers/md/md.h
 +++ b/drivers/md/md.h
-@@ -124,13 +124,13 @@ struct mdk_rdev_s
+@@ -93,13 +93,13 @@ struct md_rdev {
                                         * only maintained for arrays that
                                         * support hot removal
                                         */
@@ -31455,7 +33599,7 @@ index 0a309dc..7e01d7f 100644
                                           * for reporting to userspace and storing
                                           * in superblock.
                                           */
-@@ -415,7 +415,7 @@ static inline void rdev_dec_pending(mdk_rdev_t *rdev, mddev_t *mddev)
+@@ -429,7 +429,7 @@ static inline void rdev_dec_pending(struct md_rdev *rdev, struct mddev *mddev)
  
  static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
  {
@@ -31463,12 +33607,63 @@ index 0a309dc..7e01d7f 100644
 +      atomic_add_unchecked(nr_sectors, &bdev->bd_contains->bd_disk->sync_io);
  }
  
- struct mdk_personality
+ struct md_personality
+diff --git a/drivers/md/persistent-data/dm-space-map-checker.c b/drivers/md/persistent-data/dm-space-map-checker.c
+index fc90c11..c8cd9a9 100644
+--- a/drivers/md/persistent-data/dm-space-map-checker.c
++++ b/drivers/md/persistent-data/dm-space-map-checker.c
+@@ -167,7 +167,7 @@ static int ca_commit(struct count_array *old, struct count_array *new)
+ /*----------------------------------------------------------------*/
+ struct sm_checker {
+-      struct dm_space_map sm;
++      dm_space_map_no_const sm;
+       struct count_array old_counts;
+       struct count_array counts;
+diff --git a/drivers/md/persistent-data/dm-space-map-disk.c b/drivers/md/persistent-data/dm-space-map-disk.c
+index 3d0ed53..35dc592 100644
+--- a/drivers/md/persistent-data/dm-space-map-disk.c
++++ b/drivers/md/persistent-data/dm-space-map-disk.c
+@@ -23,7 +23,7 @@
+  * Space map interface.
+  */
+ struct sm_disk {
+-      struct dm_space_map sm;
++      dm_space_map_no_const sm;
+       struct ll_disk ll;
+       struct ll_disk old_ll;
+diff --git a/drivers/md/persistent-data/dm-space-map-metadata.c b/drivers/md/persistent-data/dm-space-map-metadata.c
+index e89ae5e..062e4c2 100644
+--- a/drivers/md/persistent-data/dm-space-map-metadata.c
++++ b/drivers/md/persistent-data/dm-space-map-metadata.c
+@@ -43,7 +43,7 @@ struct block_op {
+ };
+ struct sm_metadata {
+-      struct dm_space_map sm;
++      dm_space_map_no_const sm;
+       struct ll_disk ll;
+       struct ll_disk old_ll;
+diff --git a/drivers/md/persistent-data/dm-space-map.h b/drivers/md/persistent-data/dm-space-map.h
+index 1cbfc6b..56e1dbb 100644
+--- a/drivers/md/persistent-data/dm-space-map.h
++++ b/drivers/md/persistent-data/dm-space-map.h
+@@ -60,6 +60,7 @@ struct dm_space_map {
+       int (*root_size)(struct dm_space_map *sm, size_t *result);
+       int (*copy_root)(struct dm_space_map *sm, void *copy_to_here_le, size_t len);
+ };
++typedef struct dm_space_map __no_const dm_space_map_no_const;
+ /*----------------------------------------------------------------*/
 diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
-index d9587df..83a0dc3 100644
+index d1f74ab..d1b24fd 100644
 --- a/drivers/md/raid1.c
 +++ b/drivers/md/raid1.c
-@@ -1541,7 +1541,7 @@ static int fix_sync_read_error(r1bio_t *r1_bio)
+@@ -1688,7 +1688,7 @@ static int fix_sync_read_error(struct r1bio *r1_bio)
                        if (r1_sync_page_io(rdev, sect, s,
                                            bio->bi_io_vec[idx].bv_page,
                                            READ) != 0)
@@ -31477,7 +33672,7 @@ index d9587df..83a0dc3 100644
                }
                sectors -= s;
                sect += s;
-@@ -1754,7 +1754,7 @@ static void fix_read_error(conf_t *conf, int read_disk,
+@@ -1902,7 +1902,7 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
                            test_bit(In_sync, &rdev->flags)) {
                                if (r1_sync_page_io(rdev, sect, s,
                                                    conf->tmppage, READ)) {
@@ -31487,10 +33682,10 @@ index d9587df..83a0dc3 100644
                                               "md/raid1:%s: read error corrected "
                                               "(%d sectors at %llu on %s)\n",
 diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
-index 1d44228..98db57d 100644
+index a954c95..6e7a21c 100644
 --- a/drivers/md/raid10.c
 +++ b/drivers/md/raid10.c
-@@ -1423,7 +1423,7 @@ static void end_sync_read(struct bio *bio, int error)
+@@ -1684,7 +1684,7 @@ static void end_sync_read(struct bio *bio, int error)
                /* The write handler will notice the lack of
                 * R10BIO_Uptodate and record any errors etc
                 */
@@ -31499,7 +33694,7 @@ index 1d44228..98db57d 100644
                           &conf->mirrors[d].rdev->corrected_errors);
  
        /* for reconstruct, we always reschedule after a read.
-@@ -1723,7 +1723,7 @@ static void check_decay_read_errors(mddev_t *mddev, mdk_rdev_t *rdev)
+@@ -2033,7 +2033,7 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
  {
        struct timespec cur_time_mon;
        unsigned long hours_since_last;
@@ -31508,7 +33703,7 @@ index 1d44228..98db57d 100644
  
        ktime_get_ts(&cur_time_mon);
  
-@@ -1745,9 +1745,9 @@ static void check_decay_read_errors(mddev_t *mddev, mdk_rdev_t *rdev)
+@@ -2055,9 +2055,9 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
         * overflowing the shift of read_errors by hours_since_last.
         */
        if (hours_since_last >= 8 * sizeof(read_errors))
@@ -31519,8 +33714,8 @@ index 1d44228..98db57d 100644
 +              atomic_set_unchecked(&rdev->read_errors, read_errors >> hours_since_last);
  }
  
- static int r10_sync_page_io(mdk_rdev_t *rdev, sector_t sector,
-@@ -1797,8 +1797,8 @@ static void fix_read_error(conf_t *conf, mddev_t *mddev, r10bio_t *r10_bio)
+ static int r10_sync_page_io(struct md_rdev *rdev, sector_t sector,
+@@ -2111,8 +2111,8 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
                return;
  
        check_decay_read_errors(mddev, rdev);
@@ -31531,7 +33726,7 @@ index 1d44228..98db57d 100644
                char b[BDEVNAME_SIZE];
                bdevname(rdev->bdev, b);
  
-@@ -1806,7 +1806,7 @@ static void fix_read_error(conf_t *conf, mddev_t *mddev, r10bio_t *r10_bio)
+@@ -2120,7 +2120,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
                       "md/raid10:%s: %s: Raid device exceeded "
                       "read_error threshold [cur %d:max %d]\n",
                       mdname(mddev), b,
@@ -31540,7 +33735,7 @@ index 1d44228..98db57d 100644
                printk(KERN_NOTICE
                       "md/raid10:%s: %s: Failing raid device\n",
                       mdname(mddev), b);
-@@ -1951,7 +1951,7 @@ static void fix_read_error(conf_t *conf, mddev_t *mddev, r10bio_t *r10_bio)
+@@ -2271,7 +2271,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
                                       (unsigned long long)(
                                               sect + rdev->data_offset),
                                       bdevname(rdev->bdev, b));
@@ -31550,10 +33745,10 @@ index 1d44228..98db57d 100644
  
                        rdev_dec_pending(rdev, mddev);
 diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index b6200c3..02e8702 100644
+index 73a5800..2b0e3b1 100644
 --- a/drivers/md/raid5.c
 +++ b/drivers/md/raid5.c
-@@ -1616,19 +1616,19 @@ static void raid5_end_read_request(struct bio * bi, int error)
+@@ -1694,18 +1694,18 @@ static void raid5_end_read_request(struct bio * bi, int error)
                                (unsigned long long)(sh->sector
                                                     + rdev->data_offset),
                                bdevname(rdev->bdev, b));
@@ -31562,22 +33757,21 @@ index b6200c3..02e8702 100644
                        clear_bit(R5_ReadError, &sh->dev[i].flags);
                        clear_bit(R5_ReWrite, &sh->dev[i].flags);
                }
--              if (atomic_read(&conf->disks[i].rdev->read_errors))
--                      atomic_set(&conf->disks[i].rdev->read_errors, 0);
-+              if (atomic_read_unchecked(&conf->disks[i].rdev->read_errors))
-+                      atomic_set_unchecked(&conf->disks[i].rdev->read_errors, 0);
+-              if (atomic_read(&rdev->read_errors))
+-                      atomic_set(&rdev->read_errors, 0);
++              if (atomic_read_unchecked(&rdev->read_errors))
++                      atomic_set_unchecked(&rdev->read_errors, 0);
        } else {
-               const char *bdn = bdevname(conf->disks[i].rdev->bdev, b);
+               const char *bdn = bdevname(rdev->bdev, b);
                int retry = 0;
-               rdev = conf->disks[i].rdev;
  
                clear_bit(R5_UPTODATE, &sh->dev[i].flags);
 -              atomic_inc(&rdev->read_errors);
 +              atomic_inc_unchecked(&rdev->read_errors);
-               if (conf->mddev->degraded >= conf->max_degraded)
+               if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
                        printk_ratelimited(
                                KERN_WARNING
-@@ -1648,7 +1648,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
+@@ -1734,7 +1734,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
                                (unsigned long long)(sh->sector
                                                     + rdev->data_offset),
                                bdn);
@@ -31586,32 +33780,11 @@ index b6200c3..02e8702 100644
                         > conf->max_nr_stripes)
                        printk(KERN_WARNING
                               "md/raid:%s: Too many read errors, failing device %s.\n",
-@@ -1978,6 +1978,7 @@ static sector_t compute_blocknr(struct stripe_head *sh, int i, int previous)
-       sector_t r_sector;
-       struct stripe_head sh2;
-+      pax_track_stack();
-       chunk_offset = sector_div(new_sector, sectors_per_chunk);
-       stripe = new_sector;
-diff --git a/drivers/media/common/saa7146_hlp.c b/drivers/media/common/saa7146_hlp.c
-index 1d1d8d2..6c6837a 100644
---- a/drivers/media/common/saa7146_hlp.c
-+++ b/drivers/media/common/saa7146_hlp.c
-@@ -353,6 +353,8 @@ static void calculate_clipping_registers_rect(struct saa7146_dev *dev, struct sa
-       int x[32], y[32], w[32], h[32];
-+      pax_track_stack();
-+
-       /* clear out memory */
-       memset(&line_list[0],  0x00, sizeof(u32)*32);
-       memset(&pixel_list[0], 0x00, sizeof(u32)*32);
 diff --git a/drivers/media/dvb/ddbridge/ddbridge-core.c b/drivers/media/dvb/ddbridge/ddbridge-core.c
-index 573d540..16f78f3 100644
+index d88c4aa..17c80b1 100644
 --- a/drivers/media/dvb/ddbridge/ddbridge-core.c
 +++ b/drivers/media/dvb/ddbridge/ddbridge-core.c
-@@ -1675,7 +1675,7 @@ static struct ddb_info ddb_v6 = {
+@@ -1679,7 +1679,7 @@ static struct ddb_info ddb_v6 = {
        .subvendor   = _subvend, .subdevice = _subdev, \
        .driver_data = (unsigned long)&_driverdata }
  
@@ -31620,28 +33793,6 @@ index 573d540..16f78f3 100644
        DDB_ID(DDVID, 0x0002, DDVID, 0x0001, ddb_octopus),
        DDB_ID(DDVID, 0x0003, DDVID, 0x0001, ddb_octopus),
        DDB_ID(DDVID, 0x0003, DDVID, 0x0002, ddb_octopus_le),
-diff --git a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
-index 7ea517b..252fe54 100644
---- a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
-+++ b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
-@@ -590,6 +590,8 @@ static int dvb_ca_en50221_read_data(struct dvb_ca_private *ca, int slot, u8 * eb
-       u8 buf[HOST_LINK_BUF_SIZE];
-       int i;
-+      pax_track_stack();
-+
-       dprintk("%s\n", __func__);
-       /* check if we have space for a link buf in the rx_buffer */
-@@ -1285,6 +1287,8 @@ static ssize_t dvb_ca_en50221_io_write(struct file *file,
-       unsigned long timeout;
-       int written;
-+      pax_track_stack();
-+
-       dprintk("%s\n", __func__);
-       /* Incoming packet has a 2 byte header. hdr[0] = slot_id, hdr[1] = connection_id */
 diff --git a/drivers/media/dvb/dvb-core/dvb_demux.h b/drivers/media/dvb/dvb-core/dvb_demux.h
 index a7d876f..8c21b61 100644
 --- a/drivers/media/dvb/dvb-core/dvb_demux.h
@@ -31656,7 +33807,7 @@ index a7d876f..8c21b61 100644
        struct dvb_demux *demux;
        void *priv;
 diff --git a/drivers/media/dvb/dvb-core/dvbdev.c b/drivers/media/dvb/dvb-core/dvbdev.c
-index f732877..d38c35a 100644
+index 39eab73..60033e7 100644
 --- a/drivers/media/dvb/dvb-core/dvbdev.c
 +++ b/drivers/media/dvb/dvb-core/dvbdev.c
 @@ -192,7 +192,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
@@ -31669,33 +33820,20 @@ index f732877..d38c35a 100644
        int minor;
        int id;
 diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c
-index acb5fb2..2413f1d 100644
+index 3940bb0..fb3952a 100644
 --- a/drivers/media/dvb/dvb-usb/cxusb.c
 +++ b/drivers/media/dvb/dvb-usb/cxusb.c
-@@ -1059,7 +1059,7 @@ static struct dib0070_config dib7070p_dib0070_config = {
+@@ -1068,7 +1068,7 @@ static struct dib0070_config dib7070p_dib0070_config = {
  struct dib0700_adapter_state {
-       int (*set_param_save) (struct dvb_frontend *,
-                              struct dvb_frontend_parameters *);
+       int (*set_param_save) (struct dvb_frontend *);
 -};
 +} __no_const;
  
- static int dib7070_set_param_override(struct dvb_frontend *fe,
-                                     struct dvb_frontend_parameters *fep)
-diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c
-index a224e94..503b76a 100644
---- a/drivers/media/dvb/dvb-usb/dib0700_core.c
-+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c
-@@ -478,6 +478,8 @@ int dib0700_download_firmware(struct usb_device *udev, const struct firmware *fw
-       if (!buf)
-               return -ENOMEM;
-+      pax_track_stack();
-+
-       while ((ret = dvb_usb_get_hexline(fw, &hx, &pos)) > 0) {
-               deb_fwdata("writing to address 0x%08x (buffer: 0x%02x %02x)\n",
-                               hx.addr, hx.len, hx.chk);
+ static int dib7070_set_param_override(struct dvb_frontend *fe)
+ {
 diff --git a/drivers/media/dvb/dvb-usb/dw2102.c b/drivers/media/dvb/dvb-usb/dw2102.c
-index 058b231..183d2b3 100644
+index 451c5a7..649f711 100644
 --- a/drivers/media/dvb/dvb-usb/dw2102.c
 +++ b/drivers/media/dvb/dvb-usb/dw2102.c
 @@ -95,7 +95,7 @@ struct su3000_state {
@@ -31707,29 +33845,8 @@ index 058b231..183d2b3 100644
  
  /* debug */
  static int dvb_usb_dw2102_debug;
-diff --git a/drivers/media/dvb/dvb-usb/lmedm04.c b/drivers/media/dvb/dvb-usb/lmedm04.c
-index 37b1469..28a6f6f 100644
---- a/drivers/media/dvb/dvb-usb/lmedm04.c
-+++ b/drivers/media/dvb/dvb-usb/lmedm04.c
-@@ -742,6 +742,7 @@ static int lme2510_download_firmware(struct usb_device *dev,
-       usb_control_msg(dev, usb_rcvctrlpipe(dev, 0),
-                       0x06, 0x80, 0x0200, 0x00, data, 0x0109, 1000);
-+      pax_track_stack();
-       data[0] = 0x8a;
-       len_in = 1;
-@@ -764,6 +765,8 @@ static void lme_coldreset(struct usb_device *dev)
-       int ret = 0, len_in;
-       u8 data[512] = {0};
-+      pax_track_stack();
-+
-       data[0] = 0x0a;
-       len_in = 1;
-       info("FRM Firmware Cold Reset");
 diff --git a/drivers/media/dvb/frontends/dib3000.h b/drivers/media/dvb/frontends/dib3000.h
-index ba91735..4261d84 100644
+index 404f63a..4796533 100644
 --- a/drivers/media/dvb/frontends/dib3000.h
 +++ b/drivers/media/dvb/frontends/dib3000.h
 @@ -39,7 +39,7 @@ struct dib_fe_xfer_ops
@@ -31741,37 +33858,11 @@ index ba91735..4261d84 100644
  
  #if defined(CONFIG_DVB_DIB3000MB) || (defined(CONFIG_DVB_DIB3000MB_MODULE) && defined(MODULE))
  extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
-diff --git a/drivers/media/dvb/frontends/mb86a16.c b/drivers/media/dvb/frontends/mb86a16.c
-index c283112..7f367a7 100644
---- a/drivers/media/dvb/frontends/mb86a16.c
-+++ b/drivers/media/dvb/frontends/mb86a16.c
-@@ -1060,6 +1060,8 @@ static int mb86a16_set_fe(struct mb86a16_state *state)
-       int ret = -1;
-       int sync;
-+      pax_track_stack();
-+
-       dprintk(verbose, MB86A16_INFO, 1, "freq=%d Mhz, symbrt=%d Ksps", state->frequency, state->srate);
-       fcp = 3000;
-diff --git a/drivers/media/dvb/frontends/or51211.c b/drivers/media/dvb/frontends/or51211.c
-index c709ce6..b3fe620 100644
---- a/drivers/media/dvb/frontends/or51211.c
-+++ b/drivers/media/dvb/frontends/or51211.c
-@@ -113,6 +113,8 @@ static int or51211_load_firmware (struct dvb_frontend* fe,
-       u8 tudata[585];
-       int i;
-+      pax_track_stack();
-+
-       dprintk("Firmware is %zd bytes\n",fw->size);
-       /* Get eprom data */
 diff --git a/drivers/media/dvb/ngene/ngene-cards.c b/drivers/media/dvb/ngene/ngene-cards.c
-index 0564192..75b16f5 100644
+index 7539a5d..06531a6 100644
 --- a/drivers/media/dvb/ngene/ngene-cards.c
 +++ b/drivers/media/dvb/ngene/ngene-cards.c
-@@ -477,7 +477,7 @@ static struct ngene_info ngene_info_m780 = {
+@@ -478,7 +478,7 @@ static struct ngene_info ngene_info_m780 = {
  
  /****************************************************************************/
  
@@ -31781,7 +33872,7 @@ index 0564192..75b16f5 100644
        NGENE_ID(0x18c3, 0xabc4, ngene_info_cineS2),
        NGENE_ID(0x18c3, 0xdb01, ngene_info_satixS2),
 diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c
-index 16a089f..ab1667d 100644
+index 16a089f..1661b11 100644
 --- a/drivers/media/radio/radio-cadet.c
 +++ b/drivers/media/radio/radio-cadet.c
 @@ -326,6 +326,8 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
@@ -31793,6 +33884,15 @@ index 16a089f..ab1667d 100644
        mutex_lock(&dev->lock);
        if (dev->rdsstat == 0) {
                dev->rdsstat = 1;
+@@ -347,7 +349,7 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
+               readbuf[i++] = dev->rdsbuf[dev->rdsout++];
+       mutex_unlock(&dev->lock);
+-      if (copy_to_user(data, readbuf, i))
++      if (i > sizeof(readbuf) || copy_to_user(data, readbuf, i))
+               return -EFAULT;
+       return i;
+ }
 diff --git a/drivers/media/video/au0828/au0828.h b/drivers/media/video/au0828/au0828.h
 index 9cde353..8c6a1c3 100644
 --- a/drivers/media/video/au0828/au0828.h
@@ -31806,34 +33906,35 @@ index 9cde353..8c6a1c3 100644
        struct i2c_client               i2c_client;
        u32                             i2c_rc;
  
-diff --git a/drivers/media/video/cx18/cx18-driver.c b/drivers/media/video/cx18/cx18-driver.c
-index 9e2f870..22e3a08 100644
---- a/drivers/media/video/cx18/cx18-driver.c
-+++ b/drivers/media/video/cx18/cx18-driver.c
-@@ -327,6 +327,8 @@ void cx18_read_eeprom(struct cx18 *cx, struct tveeprom *tv)
-       struct i2c_client c;
-       u8 eedata[256];
-+      pax_track_stack();
-+
-       memset(&c, 0, sizeof(c));
-       strlcpy(c.name, "cx18 tveeprom tmp", sizeof(c.name));
-       c.adapter = &cx->i2c_adap[0];
-diff --git a/drivers/media/video/cx23885/cx23885-input.c b/drivers/media/video/cx23885/cx23885-input.c
-index ce765e3..f9e1b04 100644
---- a/drivers/media/video/cx23885/cx23885-input.c
-+++ b/drivers/media/video/cx23885/cx23885-input.c
-@@ -53,6 +53,8 @@ static void cx23885_input_process_measurements(struct cx23885_dev *dev,
-       bool handle = false;
-       struct ir_raw_event ir_core_event[64];
-+      pax_track_stack();
-+
-       do {
-               num = 0;
-               v4l2_subdev_call(dev->sd_ir, ir, rx_read, (u8 *) ir_core_event,
+diff --git a/drivers/media/video/cx25821/cx25821-core.c b/drivers/media/video/cx25821/cx25821-core.c
+index 7930ca5..235bf7d 100644
+--- a/drivers/media/video/cx25821/cx25821-core.c
++++ b/drivers/media/video/cx25821/cx25821-core.c
+@@ -912,9 +912,6 @@ static int cx25821_dev_setup(struct cx25821_dev *dev)
+       list_add_tail(&dev->devlist, &cx25821_devlist);
+       mutex_unlock(&cx25821_devlist_mutex);
+-      strcpy(cx25821_boards[UNKNOWN_BOARD].name, "unknown");
+-      strcpy(cx25821_boards[CX25821_BOARD].name, "cx25821");
+-
+       if (dev->pci->device != 0x8210) {
+               pr_info("%s(): Exiting. Incorrect Hardware device = 0x%02x\n",
+                       __func__, dev->pci->device);
+diff --git a/drivers/media/video/cx25821/cx25821.h b/drivers/media/video/cx25821/cx25821.h
+index b9aa801..029f293 100644
+--- a/drivers/media/video/cx25821/cx25821.h
++++ b/drivers/media/video/cx25821/cx25821.h
+@@ -187,7 +187,7 @@ enum port {
+ };
+ struct cx25821_board {
+-      char *name;
++      const char *name;
+       enum port porta;
+       enum port portb;
+       enum port portc;
 diff --git a/drivers/media/video/cx88/cx88-alsa.c b/drivers/media/video/cx88/cx88-alsa.c
-index 68d1240..46b32eb 100644
+index 04bf662..e0ac026 100644
 --- a/drivers/media/video/cx88/cx88-alsa.c
 +++ b/drivers/media/video/cx88/cx88-alsa.c
 @@ -766,7 +766,7 @@ static struct snd_kcontrol_new snd_cx88_alc_switch = {
@@ -31845,19 +33946,42 @@ index 68d1240..46b32eb 100644
        {0x14f1,0x8801,PCI_ANY_ID,PCI_ANY_ID,0,0,0},
        {0x14f1,0x8811,PCI_ANY_ID,PCI_ANY_ID,0,0,0},
        {0, }
-diff --git a/drivers/media/video/pvrusb2/pvrusb2-eeprom.c b/drivers/media/video/pvrusb2/pvrusb2-eeprom.c
-index 9515f3a..c9ecb85 100644
---- a/drivers/media/video/pvrusb2/pvrusb2-eeprom.c
-+++ b/drivers/media/video/pvrusb2/pvrusb2-eeprom.c
-@@ -120,6 +120,8 @@ int pvr2_eeprom_analyze(struct pvr2_hdw *hdw)
-       u8 *eeprom;
      struct tveeprom tvdata;
+diff --git a/drivers/media/video/omap/omap_vout.c b/drivers/media/video/omap/omap_vout.c
+index 88cf9d9..bbc4b2c 100644
+--- a/drivers/media/video/omap/omap_vout.c
++++ b/drivers/media/video/omap/omap_vout.c
+@@ -64,7 +64,6 @@ enum omap_vout_channels {
+       OMAP_VIDEO2,
};
  
-+      pax_track_stack();
-+
-       memset(&tvdata,0,sizeof(tvdata));
+-static struct videobuf_queue_ops video_vbq_ops;
+ /* Variables configurable through module params*/
+ static u32 video1_numbuffers = 3;
+ static u32 video2_numbuffers = 3;
+@@ -1000,6 +999,12 @@ static int omap_vout_open(struct file *file)
+ {
+       struct videobuf_queue *q;
+       struct omap_vout_device *vout = NULL;
++      static struct videobuf_queue_ops video_vbq_ops = {
++              .buf_setup = omap_vout_buffer_setup,
++              .buf_prepare = omap_vout_buffer_prepare,
++              .buf_release = omap_vout_buffer_release,
++              .buf_queue = omap_vout_buffer_queue,
++      };
  
-       eeprom = pvr2_eeprom_fetch(hdw);
+       vout = video_drvdata(file);
+       v4l2_dbg(1, debug, &vout->vid_dev->v4l2_dev, "Entering %s\n", __func__);
+@@ -1017,10 +1022,6 @@ static int omap_vout_open(struct file *file)
+       vout->type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
+       q = &vout->vbq;
+-      video_vbq_ops.buf_setup = omap_vout_buffer_setup;
+-      video_vbq_ops.buf_prepare = omap_vout_buffer_prepare;
+-      video_vbq_ops.buf_release = omap_vout_buffer_release;
+-      video_vbq_ops.buf_queue = omap_vout_buffer_queue;
+       spin_lock_init(&vout->vbq_lock);
+       videobuf_queue_dma_contig_init(q, &video_vbq_ops, q->dev,
 diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h b/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
 index 305e6aa..0143317 100644
 --- a/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
@@ -31871,46 +33995,11 @@ index 305e6aa..0143317 100644
        pvr2_i2c_func i2c_func[PVR2_I2C_FUNC_CNT];
        int i2c_cx25840_hack_state;
        int i2c_linked;
-diff --git a/drivers/media/video/saa7134/saa6752hs.c b/drivers/media/video/saa7134/saa6752hs.c
-index f9f29cc..5a2e330 100644
---- a/drivers/media/video/saa7134/saa6752hs.c
-+++ b/drivers/media/video/saa7134/saa6752hs.c
-@@ -682,6 +682,8 @@ static int saa6752hs_init(struct v4l2_subdev *sd, u32 leading_null_bytes)
-       unsigned char localPAT[256];
-       unsigned char localPMT[256];
-+      pax_track_stack();
-+
-       /* Set video format - must be done first as it resets other settings */
-       set_reg8(client, 0x41, h->video_format);
-diff --git a/drivers/media/video/saa7164/saa7164-cmd.c b/drivers/media/video/saa7164/saa7164-cmd.c
-index 62fac7f..f29e0b9 100644
---- a/drivers/media/video/saa7164/saa7164-cmd.c
-+++ b/drivers/media/video/saa7164/saa7164-cmd.c
-@@ -88,6 +88,8 @@ int saa7164_irq_dequeue(struct saa7164_dev *dev)
-       u8 tmp[512];
-       dprintk(DBGLVL_CMD, "%s()\n", __func__);
-+      pax_track_stack();
-+
-       /* While any outstand message on the bus exists... */
-       do {
-@@ -141,6 +143,8 @@ int saa7164_cmd_dequeue(struct saa7164_dev *dev)
-       u8 tmp[512];
-       dprintk(DBGLVL_CMD, "%s()\n", __func__);
-+      pax_track_stack();
-+
-       while (loop) {
-               struct tmComResInfo tRsp = { 0, 0, 0, 0, 0, 0 };
 diff --git a/drivers/media/video/timblogiw.c b/drivers/media/video/timblogiw.c
-index 84cd1b6..f741e07 100644
+index 02194c0..091733b 100644
 --- a/drivers/media/video/timblogiw.c
 +++ b/drivers/media/video/timblogiw.c
-@@ -744,7 +744,7 @@ static int timblogiw_mmap(struct file *file, struct vm_area_struct *vma)
+@@ -745,7 +745,7 @@ static int timblogiw_mmap(struct file *file, struct vm_area_struct *vma)
  
  /* Platform device functions */
  
@@ -31919,7 +34008,7 @@ index 84cd1b6..f741e07 100644
        .vidioc_querycap                = timblogiw_querycap,
        .vidioc_enum_fmt_vid_cap        = timblogiw_enum_fmt,
        .vidioc_g_fmt_vid_cap           = timblogiw_g_fmt,
-@@ -766,7 +766,7 @@ static __devinitconst struct v4l2_ioctl_ops timblogiw_ioctl_ops = {
+@@ -767,7 +767,7 @@ static __devinitconst struct v4l2_ioctl_ops timblogiw_ioctl_ops = {
        .vidioc_enum_framesizes         = timblogiw_enum_framesizes,
  };
  
@@ -31928,37 +34017,11 @@ index 84cd1b6..f741e07 100644
        .owner          = THIS_MODULE,
        .open           = timblogiw_open,
        .release        = timblogiw_close,
-diff --git a/drivers/media/video/usbvision/usbvision-core.c b/drivers/media/video/usbvision/usbvision-core.c
-index f344411..6ae9974 100644
---- a/drivers/media/video/usbvision/usbvision-core.c
-+++ b/drivers/media/video/usbvision/usbvision-core.c
-@@ -707,6 +707,8 @@ static enum parse_state usbvision_parse_compress(struct usb_usbvision *usbvision
-       unsigned char rv, gv, bv;
-       static unsigned char *Y, *U, *V;
-+      pax_track_stack();
-+
-       frame = usbvision->cur_frame;
-       image_size = frame->frmwidth * frame->frmheight;
-       if ((frame->v4l2_format.format == V4L2_PIX_FMT_YUV422P) ||
-diff --git a/drivers/media/video/videobuf-dma-sg.c b/drivers/media/video/videobuf-dma-sg.c
-index f300dea..04834ba 100644
---- a/drivers/media/video/videobuf-dma-sg.c
-+++ b/drivers/media/video/videobuf-dma-sg.c
-@@ -607,6 +607,8 @@ void *videobuf_sg_alloc(size_t size)
- {
-       struct videobuf_queue q;
-+      pax_track_stack();
-+
-       /* Required to make generic handler to call __videobuf_alloc */
-       q.int_ops = &sg_ops;
 diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
-index 7956a10..f39232f 100644
+index a5c591f..db692a3 100644
 --- a/drivers/message/fusion/mptbase.c
 +++ b/drivers/message/fusion/mptbase.c
-@@ -6681,8 +6681,13 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v)
+@@ -6754,8 +6754,13 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v)
        seq_printf(m, "  MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth);
        seq_printf(m, "  MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize);
  
@@ -31973,10 +34036,10 @@ index 7956a10..f39232f 100644
         *  Rounding UP to nearest 4-kB boundary here...
         */
 diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
-index 7596aec..f7ae9aa 100644
+index 551262e..7551198 100644
 --- a/drivers/message/fusion/mptsas.c
 +++ b/drivers/message/fusion/mptsas.c
-@@ -439,6 +439,23 @@ mptsas_is_end_device(struct mptsas_devinfo * attached)
+@@ -446,6 +446,23 @@ mptsas_is_end_device(struct mptsas_devinfo * attached)
                return 0;
  }
  
@@ -32000,7 +34063,7 @@ index 7596aec..f7ae9aa 100644
  /* no mutex */
  static void
  mptsas_port_delete(MPT_ADAPTER *ioc, struct mptsas_portinfo_details * port_details)
-@@ -477,23 +494,6 @@ mptsas_get_rphy(struct mptsas_phyinfo *phy_info)
+@@ -484,23 +501,6 @@ mptsas_get_rphy(struct mptsas_phyinfo *phy_info)
                return NULL;
  }
  
@@ -32025,10 +34088,10 @@ index 7596aec..f7ae9aa 100644
  mptsas_get_port(struct mptsas_phyinfo *phy_info)
  {
 diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
-index ce61a57..3da8862 100644
+index 0c3ced7..1fe34ec 100644
 --- a/drivers/message/fusion/mptscsih.c
 +++ b/drivers/message/fusion/mptscsih.c
-@@ -1268,15 +1268,16 @@ mptscsih_info(struct Scsi_Host *SChost)
+@@ -1270,15 +1270,16 @@ mptscsih_info(struct Scsi_Host *SChost)
  
        h = shost_priv(SChost);
  
@@ -32053,21 +34116,8 @@ index ce61a57..3da8862 100644
  
        return h->info_kbuf;
  }
-diff --git a/drivers/message/i2o/i2o_config.c b/drivers/message/i2o/i2o_config.c
-index 098de2b..fbb922c 100644
---- a/drivers/message/i2o/i2o_config.c
-+++ b/drivers/message/i2o/i2o_config.c
-@@ -781,6 +781,8 @@ static int i2o_cfg_passthru(unsigned long arg)
-       struct i2o_message *msg;
-       unsigned int iop;
-+      pax_track_stack();
-+
-       if (get_user(iop, &cmd->iop) || get_user(user_msg, &cmd->msg))
-               return -EFAULT;
 diff --git a/drivers/message/i2o/i2o_proc.c b/drivers/message/i2o/i2o_proc.c
-index 07dbeaf..5533142 100644
+index 6d115c7..58ff7fd 100644
 --- a/drivers/message/i2o/i2o_proc.c
 +++ b/drivers/message/i2o/i2o_proc.c
 @@ -255,13 +255,6 @@ static char *scsi_devices[] = {
@@ -32183,24 +34233,11 @@ index a8c08f3..155fe3d 100644
        INIT_LIST_HEAD(&c->context_list);
  #endif
  
-diff --git a/drivers/mfd/ab3100-core.c b/drivers/mfd/ab3100-core.c
-index a20e1c4..4f57255 100644
---- a/drivers/mfd/ab3100-core.c
-+++ b/drivers/mfd/ab3100-core.c
-@@ -809,7 +809,7 @@ struct ab_family_id {
-       char    *name;
- };
--static const struct ab_family_id ids[] __devinitdata = {
-+static const struct ab_family_id ids[] __devinitconst = {
-       /* AB3100 */
-       {
-               .id = 0xc0,
 diff --git a/drivers/mfd/abx500-core.c b/drivers/mfd/abx500-core.c
-index f12720d..3c251fd 100644
+index 7ce65f4..e66e9bc 100644
 --- a/drivers/mfd/abx500-core.c
 +++ b/drivers/mfd/abx500-core.c
-@@ -14,7 +14,7 @@ static LIST_HEAD(abx500_list);
+@@ -15,7 +15,7 @@ static LIST_HEAD(abx500_list);
  
  struct abx500_device_entry {
        struct list_head list;
@@ -32210,7 +34247,7 @@ index f12720d..3c251fd 100644
  };
  
 diff --git a/drivers/mfd/janz-cmodio.c b/drivers/mfd/janz-cmodio.c
-index 5c2a06a..8fa077c 100644
+index a9223ed..4127b13 100644
 --- a/drivers/mfd/janz-cmodio.c
 +++ b/drivers/mfd/janz-cmodio.c
 @@ -13,6 +13,7 @@
@@ -32221,64 +34258,51 @@ index 5c2a06a..8fa077c 100644
  #include <linux/init.h>
  #include <linux/pci.h>
  #include <linux/interrupt.h>
-diff --git a/drivers/mfd/wm8350-i2c.c b/drivers/mfd/wm8350-i2c.c
-index 5fe5de1..af64f53 100644
---- a/drivers/mfd/wm8350-i2c.c
-+++ b/drivers/mfd/wm8350-i2c.c
-@@ -44,6 +44,8 @@ static int wm8350_i2c_write_device(struct wm8350 *wm8350, char reg,
-       u8 msg[(WM8350_MAX_REGISTER << 1) + 1];
-       int ret;
-+      pax_track_stack();
-+
-       if (bytes > ((WM8350_MAX_REGISTER << 1) + 1))
-               return -EINVAL;
 diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c
-index 8b51cd6..f628f8d 100644
+index a981e2a..5ca0c8b 100644
 --- a/drivers/misc/lis3lv02d/lis3lv02d.c
 +++ b/drivers/misc/lis3lv02d/lis3lv02d.c
-@@ -437,7 +437,7 @@ static irqreturn_t lis302dl_interrupt(int irq, void *dummy)
+@@ -466,7 +466,7 @@ static irqreturn_t lis302dl_interrupt(int irq, void *data)
         * the lid is closed. This leads to interrupts as soon as a little move
         * is done.
         */
--      atomic_inc(&lis3_dev.count);
-+      atomic_inc_unchecked(&lis3_dev.count);
+-      atomic_inc(&lis3->count);
++      atomic_inc_unchecked(&lis3->count);
  
-       wake_up_interruptible(&lis3_dev.misc_wait);
-       kill_fasync(&lis3_dev.async_queue, SIGIO, POLL_IN);
-@@ -520,7 +520,7 @@ static int lis3lv02d_misc_open(struct inode *inode, struct file *file)
-       if (lis3_dev.pm_dev)
-               pm_runtime_get_sync(lis3_dev.pm_dev);
+       wake_up_interruptible(&lis3->misc_wait);
+       kill_fasync(&lis3->async_queue, SIGIO, POLL_IN);
+@@ -552,7 +552,7 @@ static int lis3lv02d_misc_open(struct inode *inode, struct file *file)
+       if (lis3->pm_dev)
+               pm_runtime_get_sync(lis3->pm_dev);
  
--      atomic_set(&lis3_dev.count, 0);
-+      atomic_set_unchecked(&lis3_dev.count, 0);
+-      atomic_set(&lis3->count, 0);
++      atomic_set_unchecked(&lis3->count, 0);
        return 0;
  }
  
-@@ -547,7 +547,7 @@ static ssize_t lis3lv02d_misc_read(struct file *file, char __user *buf,
-       add_wait_queue(&lis3_dev.misc_wait, &wait);
+@@ -585,7 +585,7 @@ static ssize_t lis3lv02d_misc_read(struct file *file, char __user *buf,
+       add_wait_queue(&lis3->misc_wait, &wait);
        while (true) {
                set_current_state(TASK_INTERRUPTIBLE);
--              data = atomic_xchg(&lis3_dev.count, 0);
-+              data = atomic_xchg_unchecked(&lis3_dev.count, 0);
+-              data = atomic_xchg(&lis3->count, 0);
++              data = atomic_xchg_unchecked(&lis3->count, 0);
                if (data)
                        break;
  
-@@ -585,7 +585,7 @@ out:
- static unsigned int lis3lv02d_misc_poll(struct file *file, poll_table *wait)
- {
-       poll_wait(file, &lis3_dev.misc_wait, wait);
--      if (atomic_read(&lis3_dev.count))
-+      if (atomic_read_unchecked(&lis3_dev.count))
+@@ -626,7 +626,7 @@ static unsigned int lis3lv02d_misc_poll(struct file *file, poll_table *wait)
+                                             struct lis3lv02d, miscdev);
+       poll_wait(file, &lis3->misc_wait, wait);
+-      if (atomic_read(&lis3->count))
++      if (atomic_read_unchecked(&lis3->count))
                return POLLIN | POLLRDNORM;
        return 0;
  }
 diff --git a/drivers/misc/lis3lv02d/lis3lv02d.h b/drivers/misc/lis3lv02d/lis3lv02d.h
-index a193958..4d7ecd2 100644
+index 2b1482a..5d33616 100644
 --- a/drivers/misc/lis3lv02d/lis3lv02d.h
 +++ b/drivers/misc/lis3lv02d/lis3lv02d.h
-@@ -265,7 +265,7 @@ struct lis3lv02d {
+@@ -266,7 +266,7 @@ struct lis3lv02d {
        struct input_polled_dev *idev;     /* input device */
        struct platform_device  *pdev;     /* platform device */
        struct regulator_bulk_data regulators[2];
@@ -32303,7 +34327,7 @@ index 2f30bad..c4c13d0 100644
                mcs_op_statistics[op].max = nsec;
  }
 diff --git a/drivers/misc/sgi-gru/gruprocfs.c b/drivers/misc/sgi-gru/gruprocfs.c
-index 7768b87..f8aac38 100644
+index 950dbe9..eeef0f8 100644
 --- a/drivers/misc/sgi-gru/gruprocfs.c
 +++ b/drivers/misc/sgi-gru/gruprocfs.c
 @@ -32,9 +32,9 @@
@@ -32511,10 +34535,10 @@ index 5c3ce24..4915ccb 100644
  
  #ifdef CONFIG_SGI_GRU_DEBUG
 diff --git a/drivers/misc/sgi-xp/xp.h b/drivers/misc/sgi-xp/xp.h
-index 851b2f2..a4ec097 100644
+index c862cd4..0d176fe 100644
 --- a/drivers/misc/sgi-xp/xp.h
 +++ b/drivers/misc/sgi-xp/xp.h
-@@ -289,7 +289,7 @@ struct xpc_interface {
+@@ -288,7 +288,7 @@ struct xpc_interface {
                                        xpc_notify_func, void *);
        void (*received) (short, int, void *);
        enum xp_retval (*partid_to_nasids) (short, void *);
@@ -32558,10 +34582,10 @@ index 8d082b4..aa749ae 100644
  /*
   * Timer function to enforce the timelimit on the partition disengage.
 diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
-index 26c5286..292d261 100644
+index 69ef0be..f3ef91e 100644
 --- a/drivers/mmc/host/sdhci-pci.c
 +++ b/drivers/mmc/host/sdhci-pci.c
-@@ -542,7 +542,7 @@ static const struct sdhci_pci_fixes sdhci_via = {
+@@ -652,7 +652,7 @@ static const struct sdhci_pci_fixes sdhci_via = {
        .probe          = via_probe,
  };
  
@@ -32570,91 +34594,11 @@ index 26c5286..292d261 100644
        {
                .vendor         = PCI_VENDOR_ID_RICOH,
                .device         = PCI_DEVICE_ID_RICOH_R5C822,
-diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c
-index e1e122f..d99a6ea 100644
---- a/drivers/mtd/chips/cfi_cmdset_0001.c
-+++ b/drivers/mtd/chips/cfi_cmdset_0001.c
-@@ -757,6 +757,8 @@ static int chip_ready (struct map_info *map, struct flchip *chip, unsigned long
-       struct cfi_pri_intelext *cfip = cfi->cmdset_priv;
-       unsigned long timeo = jiffies + HZ;
-+      pax_track_stack();
-+
-       /* Prevent setting state FL_SYNCING for chip in suspended state. */
-       if (mode == FL_SYNCING && chip->oldstate != FL_READY)
-               goto sleep;
-@@ -1653,6 +1655,8 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
-       unsigned long initial_adr;
-       int initial_len = len;
-+      pax_track_stack();
-+
-       wbufsize = cfi_interleave(cfi) << cfi->cfiq->MaxBufWriteSize;
-       adr += chip->start;
-       initial_adr = adr;
-@@ -1871,6 +1875,8 @@ static int __xipram do_erase_oneblock(struct map_info *map, struct flchip *chip,
-       int retries = 3;
-       int ret;
-+      pax_track_stack();
-+
-       adr += chip->start;
-  retry:
-diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c
-index 179814a..abe9d60 100644
---- a/drivers/mtd/chips/cfi_cmdset_0020.c
-+++ b/drivers/mtd/chips/cfi_cmdset_0020.c
-@@ -255,6 +255,8 @@ static inline int do_read_onechip(struct map_info *map, struct flchip *chip, lof
-       unsigned long cmd_addr;
-       struct cfi_private *cfi = map->fldrv_priv;
-+      pax_track_stack();
-+
-       adr += chip->start;
-       /* Ensure cmd read/writes are aligned. */
-@@ -429,6 +431,8 @@ static inline int do_write_buffer(struct map_info *map, struct flchip *chip,
-       DECLARE_WAITQUEUE(wait, current);
-       int wbufsize, z;
-+      pax_track_stack();
-+
-         /* M58LW064A requires bus alignment for buffer wriets -- saw */
-         if (adr & (map_bankwidth(map)-1))
-             return -EINVAL;
-@@ -743,6 +747,8 @@ static inline int do_erase_oneblock(struct map_info *map, struct flchip *chip, u
-       DECLARE_WAITQUEUE(wait, current);
-       int ret = 0;
-+      pax_track_stack();
-+
-       adr += chip->start;
-       /* Let's determine this according to the interleave only once */
-@@ -1048,6 +1054,8 @@ static inline int do_lock_oneblock(struct map_info *map, struct flchip *chip, un
-       unsigned long timeo = jiffies + HZ;
-       DECLARE_WAITQUEUE(wait, current);
-+      pax_track_stack();
-+
-       adr += chip->start;
-       /* Let's determine this according to the interleave only once */
-@@ -1197,6 +1205,8 @@ static inline int do_unlock_oneblock(struct map_info *map, struct flchip *chip,
-       unsigned long timeo = jiffies + HZ;
-       DECLARE_WAITQUEUE(wait, current);
-+      pax_track_stack();
-+
-       adr += chip->start;
-       /* Let's determine this according to the interleave only once */
 diff --git a/drivers/mtd/devices/doc2000.c b/drivers/mtd/devices/doc2000.c
-index f7fbf60..9866457 100644
+index a4eb8b5..8c0628f 100644
 --- a/drivers/mtd/devices/doc2000.c
 +++ b/drivers/mtd/devices/doc2000.c
-@@ -776,7 +776,7 @@ static int doc_write(struct mtd_info *mtd, loff_t to, size_t len,
+@@ -753,7 +753,7 @@ static int doc_write(struct mtd_info *mtd, loff_t to, size_t len,
  
                /* The ECC will not be calculated correctly if less than 512 is written */
  /* DBB-
@@ -32663,86 +34607,8 @@ index f7fbf60..9866457 100644
                        printk(KERN_WARNING
                               "ECC needs a full sector write (adr: %lx size %lx)\n",
                               (long) to, (long) len);
-diff --git a/drivers/mtd/devices/doc2001.c b/drivers/mtd/devices/doc2001.c
-index 241192f..d0c35a3 100644
---- a/drivers/mtd/devices/doc2001.c
-+++ b/drivers/mtd/devices/doc2001.c
-@@ -393,7 +393,7 @@ static int doc_read (struct mtd_info *mtd, loff_t from, size_t len,
-       struct Nand *mychip = &this->chips[from >> (this->chipshift)];
-       /* Don't allow read past end of device */
--      if (from >= this->totlen)
-+      if (from >= this->totlen || !len)
-               return -EINVAL;
-       /* Don't allow a single read to cross a 512-byte block boundary */
-diff --git a/drivers/mtd/ftl.c b/drivers/mtd/ftl.c
-index 037b399..225a71d 100644
---- a/drivers/mtd/ftl.c
-+++ b/drivers/mtd/ftl.c
-@@ -474,6 +474,8 @@ static int copy_erase_unit(partition_t *part, uint16_t srcunit,
-     loff_t offset;
-     uint16_t srcunitswap = cpu_to_le16(srcunit);
-+    pax_track_stack();
-+
-     eun = &part->EUNInfo[srcunit];
-     xfer = &part->XferInfo[xferunit];
-     DEBUG(2, "ftl_cs: copying block 0x%x to 0x%x\n",
-diff --git a/drivers/mtd/inftlcore.c b/drivers/mtd/inftlcore.c
-index d7592e6..31c505c 100644
---- a/drivers/mtd/inftlcore.c
-+++ b/drivers/mtd/inftlcore.c
-@@ -259,6 +259,8 @@ static u16 INFTL_foldchain(struct INFTLrecord *inftl, unsigned thisVUC, unsigned
-       struct inftl_oob oob;
-       size_t retlen;
-+      pax_track_stack();
-+
-       DEBUG(MTD_DEBUG_LEVEL3, "INFTL: INFTL_foldchain(inftl=%p,thisVUC=%d,"
-               "pending=%d)\n", inftl, thisVUC, pendingblock);
-diff --git a/drivers/mtd/inftlmount.c b/drivers/mtd/inftlmount.c
-index 104052e..6232be5 100644
---- a/drivers/mtd/inftlmount.c
-+++ b/drivers/mtd/inftlmount.c
-@@ -53,6 +53,8 @@ static int find_boot_record(struct INFTLrecord *inftl)
-       struct INFTLPartition *ip;
-       size_t retlen;
-+      pax_track_stack();
-+
-       DEBUG(MTD_DEBUG_LEVEL3, "INFTL: find_boot_record(inftl=%p)\n", inftl);
-         /*
-diff --git a/drivers/mtd/lpddr/qinfo_probe.c b/drivers/mtd/lpddr/qinfo_probe.c
-index dbfe17b..c7b0918 100644
---- a/drivers/mtd/lpddr/qinfo_probe.c
-+++ b/drivers/mtd/lpddr/qinfo_probe.c
-@@ -106,6 +106,8 @@ static int lpddr_pfow_present(struct map_info *map, struct lpddr_private *lpddr)
- {
-       map_word pfow_val[4];
-+      pax_track_stack();
-+
-       /* Check identification string */
-       pfow_val[0] = map_read(map, map->pfow_base + PFOW_QUERY_STRING_P);
-       pfow_val[1] = map_read(map, map->pfow_base + PFOW_QUERY_STRING_F);
-diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
-index 49e20a4..60fbfa5 100644
---- a/drivers/mtd/mtdchar.c
-+++ b/drivers/mtd/mtdchar.c
-@@ -554,6 +554,8 @@ static int mtd_ioctl(struct file *file, u_int cmd, u_long arg)
-       u_long size;
-       struct mtd_info_user info;
-+      pax_track_stack();
-+
-       DEBUG(MTD_DEBUG_LEVEL0, "MTD_ioctl\n");
-       size = (cmd & IOCSIZE_MASK) >> IOCSIZE_SHIFT;
 diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
-index d527621..2491fab 100644
+index a9e57d6..c6d8731 100644
 --- a/drivers/mtd/nand/denali.c
 +++ b/drivers/mtd/nand/denali.c
 @@ -26,6 +26,7 @@
@@ -32753,21 +34619,8 @@ index d527621..2491fab 100644
  
  #include "denali.h"
  
-diff --git a/drivers/mtd/nftlcore.c b/drivers/mtd/nftlcore.c
-index b155666..611b801 100644
---- a/drivers/mtd/nftlcore.c
-+++ b/drivers/mtd/nftlcore.c
-@@ -264,6 +264,8 @@ static u16 NFTL_foldchain (struct NFTLrecord *nftl, unsigned thisVUC, unsigned p
-       int inplace = 1;
-       size_t retlen;
-+      pax_track_stack();
-+
-       memset(BlockMap, 0xff, sizeof(BlockMap));
-       memset(BlockFreeFound, 0, sizeof(BlockFreeFound));
 diff --git a/drivers/mtd/nftlmount.c b/drivers/mtd/nftlmount.c
-index e3cd1ff..0ea79a3 100644
+index 51b9d6a..52af9a7 100644
 --- a/drivers/mtd/nftlmount.c
 +++ b/drivers/mtd/nftlmount.c
 @@ -24,6 +24,7 @@
@@ -32778,63 +34631,11 @@ index e3cd1ff..0ea79a3 100644
  #include <linux/mtd/mtd.h>
  #include <linux/mtd/nand.h>
  #include <linux/mtd/nftl.h>
-@@ -45,6 +46,8 @@ static int find_boot_record(struct NFTLrecord *nftl)
-       struct mtd_info *mtd = nftl->mbd.mtd;
-       unsigned int i;
-+      pax_track_stack();
-+
-         /* Assume logical EraseSize == physical erasesize for starting the scan.
-          We'll sort it out later if we find a MediaHeader which says otherwise */
-       /* Actually, we won't.  The new DiskOnChip driver has already scanned
-diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
-index 6c3fb5a..c542a81 100644
---- a/drivers/mtd/ubi/build.c
-+++ b/drivers/mtd/ubi/build.c
-@@ -1311,7 +1311,7 @@ module_exit(ubi_exit);
- static int __init bytes_str_to_int(const char *str)
- {
-       char *endp;
--      unsigned long result;
-+      unsigned long result, scale = 1;
-       result = simple_strtoul(str, &endp, 0);
-       if (str == endp || result >= INT_MAX) {
-@@ -1322,11 +1322,11 @@ static int __init bytes_str_to_int(const char *str)
-       switch (*endp) {
-       case 'G':
--              result *= 1024;
-+              scale *= 1024;
-       case 'M':
--              result *= 1024;
-+              scale *= 1024;
-       case 'K':
--              result *= 1024;
-+              scale *= 1024;
-               if (endp[1] == 'i' && endp[2] == 'B')
-                       endp += 2;
-       case '\0':
-@@ -1337,7 +1337,13 @@ static int __init bytes_str_to_int(const char *str)
-               return -EINVAL;
-       }
--      return result;
-+      if ((intoverflow_t)result*scale >= INT_MAX) {
-+              printk(KERN_ERR "UBI error: incorrect bytes count: \"%s\"\n",
-+                     str);
-+              return -EINVAL;
-+      }
-+
-+      return result*scale;
- }
- /**
-diff --git a/drivers/net/atlx/atl2.c b/drivers/net/atlx/atl2.c
-index d4f7dda..d627d46 100644
---- a/drivers/net/atlx/atl2.c
-+++ b/drivers/net/atlx/atl2.c
-@@ -2857,7 +2857,7 @@ static void atl2_force_ps(struct atl2_hw *hw)
+diff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c
+index 6762dc4..9956862 100644
+--- a/drivers/net/ethernet/atheros/atlx/atl2.c
++++ b/drivers/net/ethernet/atheros/atlx/atl2.c
+@@ -2859,7 +2859,7 @@ static void atl2_force_ps(struct atl2_hw *hw)
   */
  
  #define ATL2_PARAM(X, desc) \
@@ -32843,150 +34644,11 @@ index d4f7dda..d627d46 100644
      MODULE_PARM(X, "1-" __MODULE_STRING(ATL2_MAX_NIC) "i"); \
      MODULE_PARM_DESC(X, desc);
  #else
-diff --git a/drivers/net/bna/bfa_ioc_ct.c b/drivers/net/bna/bfa_ioc_ct.c
-index 87aecdf..ec23470 100644
---- a/drivers/net/bna/bfa_ioc_ct.c
-+++ b/drivers/net/bna/bfa_ioc_ct.c
-@@ -48,7 +48,21 @@ static void bfa_ioc_ct_sync_ack(struct bfa_ioc *ioc);
- static bool bfa_ioc_ct_sync_complete(struct bfa_ioc *ioc);
- static enum bfa_status bfa_ioc_ct_pll_init(void __iomem *rb, bool fcmode);
--static struct bfa_ioc_hwif nw_hwif_ct;
-+static struct bfa_ioc_hwif nw_hwif_ct = {
-+      .ioc_pll_init = bfa_ioc_ct_pll_init,
-+      .ioc_firmware_lock = bfa_ioc_ct_firmware_lock,
-+      .ioc_firmware_unlock = bfa_ioc_ct_firmware_unlock,
-+      .ioc_reg_init = bfa_ioc_ct_reg_init,
-+      .ioc_map_port = bfa_ioc_ct_map_port,
-+      .ioc_isr_mode_set = bfa_ioc_ct_isr_mode_set,
-+      .ioc_notify_fail = bfa_ioc_ct_notify_fail,
-+      .ioc_ownership_reset = bfa_ioc_ct_ownership_reset,
-+      .ioc_sync_start = bfa_ioc_ct_sync_start,
-+      .ioc_sync_join = bfa_ioc_ct_sync_join,
-+      .ioc_sync_leave = bfa_ioc_ct_sync_leave,
-+      .ioc_sync_ack = bfa_ioc_ct_sync_ack,
-+      .ioc_sync_complete = bfa_ioc_ct_sync_complete
-+};
- /**
-  * Called from bfa_ioc_attach() to map asic specific calls.
-@@ -56,20 +70,6 @@ static struct bfa_ioc_hwif nw_hwif_ct;
- void
- bfa_nw_ioc_set_ct_hwif(struct bfa_ioc *ioc)
- {
--      nw_hwif_ct.ioc_pll_init = bfa_ioc_ct_pll_init;
--      nw_hwif_ct.ioc_firmware_lock = bfa_ioc_ct_firmware_lock;
--      nw_hwif_ct.ioc_firmware_unlock = bfa_ioc_ct_firmware_unlock;
--      nw_hwif_ct.ioc_reg_init = bfa_ioc_ct_reg_init;
--      nw_hwif_ct.ioc_map_port = bfa_ioc_ct_map_port;
--      nw_hwif_ct.ioc_isr_mode_set = bfa_ioc_ct_isr_mode_set;
--      nw_hwif_ct.ioc_notify_fail = bfa_ioc_ct_notify_fail;
--      nw_hwif_ct.ioc_ownership_reset = bfa_ioc_ct_ownership_reset;
--      nw_hwif_ct.ioc_sync_start = bfa_ioc_ct_sync_start;
--      nw_hwif_ct.ioc_sync_join = bfa_ioc_ct_sync_join;
--      nw_hwif_ct.ioc_sync_leave = bfa_ioc_ct_sync_leave;
--      nw_hwif_ct.ioc_sync_ack = bfa_ioc_ct_sync_ack;
--      nw_hwif_ct.ioc_sync_complete = bfa_ioc_ct_sync_complete;
--
-       ioc->ioc_hwif = &nw_hwif_ct;
- }
-diff --git a/drivers/net/bna/bnad.c b/drivers/net/bna/bnad.c
-index 8e35b25..c39f205 100644
---- a/drivers/net/bna/bnad.c
-+++ b/drivers/net/bna/bnad.c
-@@ -1673,7 +1673,14 @@ bnad_setup_tx(struct bnad *bnad, uint tx_id)
-       struct bna_intr_info *intr_info =
-                       &res_info[BNA_TX_RES_INTR_T_TXCMPL].res_u.intr_info;
-       struct bna_tx_config *tx_config = &bnad->tx_config[tx_id];
--      struct bna_tx_event_cbfn tx_cbfn;
-+      static struct bna_tx_event_cbfn tx_cbfn = {
-+              /* Initialize the tx event handlers */
-+              .tcb_setup_cbfn = bnad_cb_tcb_setup,
-+              .tcb_destroy_cbfn = bnad_cb_tcb_destroy,
-+              .tx_stall_cbfn = bnad_cb_tx_stall,
-+              .tx_resume_cbfn = bnad_cb_tx_resume,
-+              .tx_cleanup_cbfn = bnad_cb_tx_cleanup
-+      };
-       struct bna_tx *tx;
-       unsigned long flags;
-@@ -1682,13 +1689,6 @@ bnad_setup_tx(struct bnad *bnad, uint tx_id)
-       tx_config->txq_depth = bnad->txq_depth;
-       tx_config->tx_type = BNA_TX_T_REGULAR;
--      /* Initialize the tx event handlers */
--      tx_cbfn.tcb_setup_cbfn = bnad_cb_tcb_setup;
--      tx_cbfn.tcb_destroy_cbfn = bnad_cb_tcb_destroy;
--      tx_cbfn.tx_stall_cbfn = bnad_cb_tx_stall;
--      tx_cbfn.tx_resume_cbfn = bnad_cb_tx_resume;
--      tx_cbfn.tx_cleanup_cbfn = bnad_cb_tx_cleanup;
--
-       /* Get BNA's resource requirement for one tx object */
-       spin_lock_irqsave(&bnad->bna_lock, flags);
-       bna_tx_res_req(bnad->num_txq_per_tx,
-@@ -1819,21 +1819,21 @@ bnad_setup_rx(struct bnad *bnad, uint rx_id)
-       struct bna_intr_info *intr_info =
-                       &res_info[BNA_RX_RES_T_INTR].res_u.intr_info;
-       struct bna_rx_config *rx_config = &bnad->rx_config[rx_id];
--      struct bna_rx_event_cbfn rx_cbfn;
-+      static struct bna_rx_event_cbfn rx_cbfn = {
-+              /* Initialize the Rx event handlers */
-+              .rcb_setup_cbfn = bnad_cb_rcb_setup,
-+              .rcb_destroy_cbfn = bnad_cb_rcb_destroy,
-+              .ccb_setup_cbfn = bnad_cb_ccb_setup,
-+              .ccb_destroy_cbfn = bnad_cb_ccb_destroy,
-+              .rx_cleanup_cbfn = bnad_cb_rx_cleanup,
-+              .rx_post_cbfn = bnad_cb_rx_post
-+      };
-       struct bna_rx *rx;
-       unsigned long flags;
-       /* Initialize the Rx object configuration */
-       bnad_init_rx_config(bnad, rx_config);
--      /* Initialize the Rx event handlers */
--      rx_cbfn.rcb_setup_cbfn = bnad_cb_rcb_setup;
--      rx_cbfn.rcb_destroy_cbfn = bnad_cb_rcb_destroy;
--      rx_cbfn.ccb_setup_cbfn = bnad_cb_ccb_setup;
--      rx_cbfn.ccb_destroy_cbfn = bnad_cb_ccb_destroy;
--      rx_cbfn.rx_cleanup_cbfn = bnad_cb_rx_cleanup;
--      rx_cbfn.rx_post_cbfn = bnad_cb_rx_post;
--
-       /* Get BNA's resource requirement for one Rx object */
-       spin_lock_irqsave(&bnad->bna_lock, flags);
-       bna_rx_res_req(rx_config, res_info);
-diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
-index 4b2b570..31033f4 100644
---- a/drivers/net/bnx2.c
-+++ b/drivers/net/bnx2.c
-@@ -5877,6 +5877,8 @@ bnx2_test_nvram(struct bnx2 *bp)
-       int rc = 0;
-       u32 magic, csum;
-+      pax_track_stack();
-+
-       if ((rc = bnx2_nvram_read(bp, 0, data, 4)) != 0)
-               goto test_nvram_done;
-diff --git a/drivers/net/bnx2x/bnx2x_ethtool.c b/drivers/net/bnx2x/bnx2x_ethtool.c
-index cf3e479..5dc0ecc 100644
---- a/drivers/net/bnx2x/bnx2x_ethtool.c
-+++ b/drivers/net/bnx2x/bnx2x_ethtool.c
-@@ -1943,6 +1943,8 @@ static int bnx2x_test_nvram(struct bnx2x *bp)
-       int i, rc;
-       u32 magic, crc;
-+      pax_track_stack();
-+
-       if (BP_NOMCP(bp))
-               return 0;
-diff --git a/drivers/net/bnx2x/bnx2x_sp.h b/drivers/net/bnx2x/bnx2x_sp.h
-index 9a517c2..a50cfcb 100644
---- a/drivers/net/bnx2x/bnx2x_sp.h
-+++ b/drivers/net/bnx2x/bnx2x_sp.h
-@@ -449,7 +449,7 @@ struct bnx2x_rx_mode_obj {
+diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
+index 61a7670..7da6e34 100644
+--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
++++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
+@@ -483,7 +483,7 @@ struct bnx2x_rx_mode_obj {
  
        int (*wait_comp)(struct bnx2x *bp,
                         struct bnx2x_rx_mode_ramrod_params *p);
@@ -32995,10 +34657,22 @@ index 9a517c2..a50cfcb 100644
  
  /********************** Set multicast group ***********************************/
  
-diff --git a/drivers/net/cxgb3/l2t.h b/drivers/net/cxgb3/l2t.h
-index c5f5479..2e8c260 100644
---- a/drivers/net/cxgb3/l2t.h
-+++ b/drivers/net/cxgb3/l2t.h
+diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h
+index 93865f8..5448741 100644
+--- a/drivers/net/ethernet/broadcom/tg3.h
++++ b/drivers/net/ethernet/broadcom/tg3.h
+@@ -140,6 +140,7 @@
+ #define  CHIPREV_ID_5750_A0            0x4000
+ #define  CHIPREV_ID_5750_A1            0x4001
+ #define  CHIPREV_ID_5750_A3            0x4003
++#define  CHIPREV_ID_5750_C1            0x4201
+ #define  CHIPREV_ID_5750_C2            0x4202
+ #define  CHIPREV_ID_5752_A0_HW                 0x5000
+ #define  CHIPREV_ID_5752_A0            0x6000
+diff --git a/drivers/net/ethernet/chelsio/cxgb3/l2t.h b/drivers/net/ethernet/chelsio/cxgb3/l2t.h
+index c4e8643..0979484 100644
+--- a/drivers/net/ethernet/chelsio/cxgb3/l2t.h
++++ b/drivers/net/ethernet/chelsio/cxgb3/l2t.h
 @@ -87,7 +87,7 @@ typedef void (*arp_failure_handler_func)(struct t3cdev * dev,
   */
  struct l2t_skb_cb {
@@ -33008,71 +34682,145 @@ index c5f5479..2e8c260 100644
  
  #define L2T_SKB_CB(skb) ((struct l2t_skb_cb *)(skb)->cb)
  
-diff --git a/drivers/net/cxgb4/cxgb4_main.c b/drivers/net/cxgb4/cxgb4_main.c
-index b4efa29..c5f2703 100644
---- a/drivers/net/cxgb4/cxgb4_main.c
-+++ b/drivers/net/cxgb4/cxgb4_main.c
-@@ -3396,6 +3396,8 @@ static int __devinit enable_msix(struct adapter *adap)
-       unsigned int nchan = adap->params.nports;
-       struct msix_entry entries[MAX_INGQ + 1];
+diff --git a/drivers/net/ethernet/dec/tulip/de4x5.c b/drivers/net/ethernet/dec/tulip/de4x5.c
+index 18b106c..2b38d36 100644
+--- a/drivers/net/ethernet/dec/tulip/de4x5.c
++++ b/drivers/net/ethernet/dec/tulip/de4x5.c
+@@ -5388,7 +5388,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
+       for (i=0; i<ETH_ALEN; i++) {
+           tmp.addr[i] = dev->dev_addr[i];
+       }
+-      if (copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
++      if (ioc->len > sizeof tmp.addr || copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
+       break;
  
-+      pax_track_stack();
-+
-       for (i = 0; i < ARRAY_SIZE(entries); ++i)
-               entries[i].entry = i;
+     case DE4X5_SET_HWADDR:           /* Set the hardware address */
+@@ -5428,7 +5428,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
+       spin_lock_irqsave(&lp->lock, flags);
+       memcpy(&statbuf, &lp->pktStats, ioc->len);
+       spin_unlock_irqrestore(&lp->lock, flags);
+-      if (copy_to_user(ioc->data, &statbuf, ioc->len))
++      if (ioc->len > sizeof statbuf || copy_to_user(ioc->data, &statbuf, ioc->len))
+               return -EFAULT;
+       break;
+     }
+diff --git a/drivers/net/ethernet/dec/tulip/eeprom.c b/drivers/net/ethernet/dec/tulip/eeprom.c
+index ed7d1dc..d426748 100644
+--- a/drivers/net/ethernet/dec/tulip/eeprom.c
++++ b/drivers/net/ethernet/dec/tulip/eeprom.c
+@@ -79,7 +79,7 @@ static struct eeprom_fixup eeprom_fixups[] __devinitdata = {
+   {NULL}};
  
-diff --git a/drivers/net/cxgb4/t4_hw.c b/drivers/net/cxgb4/t4_hw.c
-index d1ec111..12735bc 100644
---- a/drivers/net/cxgb4/t4_hw.c
-+++ b/drivers/net/cxgb4/t4_hw.c
-@@ -362,6 +362,8 @@ static int get_vpd_params(struct adapter *adapter, struct vpd_params *p)
-       u8 vpd[VPD_LEN], csum;
-       unsigned int vpdr_len, kw_offset, id_len;
  
-+      pax_track_stack();
-+
-       ret = pci_read_vpd(adapter->pdev, VPD_BASE, sizeof(vpd), vpd);
-       if (ret < 0)
-               return ret;
-diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c
-index 536b3a5..e6f8dcc 100644
---- a/drivers/net/e1000e/82571.c
-+++ b/drivers/net/e1000e/82571.c
-@@ -239,7 +239,7 @@ static s32 e1000_init_mac_params_82571(struct e1000_adapter *adapter)
- {
-       struct e1000_hw *hw = &adapter->hw;
-       struct e1000_mac_info *mac = &hw->mac;
--      struct e1000_mac_operations *func = &mac->ops;
-+      e1000_mac_operations_no_const *func = &mac->ops;
-       u32 swsm = 0;
-       u32 swsm2 = 0;
-       bool force_clear_smbi = false;
-diff --git a/drivers/net/e1000e/es2lan.c b/drivers/net/e1000e/es2lan.c
-index e4f4225..24da2ea 100644
---- a/drivers/net/e1000e/es2lan.c
-+++ b/drivers/net/e1000e/es2lan.c
-@@ -205,7 +205,7 @@ static s32 e1000_init_mac_params_80003es2lan(struct e1000_adapter *adapter)
- {
-       struct e1000_hw *hw = &adapter->hw;
-       struct e1000_mac_info *mac = &hw->mac;
--      struct e1000_mac_operations *func = &mac->ops;
-+      e1000_mac_operations_no_const *func = &mac->ops;
-       /* Set media type */
-       switch (adapter->pdev->device) {
-diff --git a/drivers/net/e1000e/hw.h b/drivers/net/e1000e/hw.h
-index 2967039..ca8c40c 100644
---- a/drivers/net/e1000e/hw.h
-+++ b/drivers/net/e1000e/hw.h
-@@ -778,6 +778,7 @@ struct e1000_mac_operations {
-       void (*write_vfta)(struct e1000_hw *, u32, u32);
+-static const char *block_name[] __devinitdata = {
++static const char *block_name[] __devinitconst = {
+       "21140 non-MII",
+       "21140 MII PHY",
+       "21142 Serial PHY",
+diff --git a/drivers/net/ethernet/dec/tulip/winbond-840.c b/drivers/net/ethernet/dec/tulip/winbond-840.c
+index 2ac6fff..2d127d0 100644
+--- a/drivers/net/ethernet/dec/tulip/winbond-840.c
++++ b/drivers/net/ethernet/dec/tulip/winbond-840.c
+@@ -236,7 +236,7 @@ struct pci_id_info {
+         int drv_flags;                /* Driver use, intended as capability flags. */
+ };
+-static const struct pci_id_info pci_id_tbl[] __devinitdata = {
++static const struct pci_id_info pci_id_tbl[] __devinitconst = {
+       {                               /* Sometime a Level-One switch card. */
+         "Winbond W89c840",    CanHaveMII | HasBrokenTx | FDXOnNoMII},
+       { "Winbond W89c840",    CanHaveMII | HasBrokenTx},
+diff --git a/drivers/net/ethernet/dlink/sundance.c b/drivers/net/ethernet/dlink/sundance.c
+index d783f4f..97fa1b0 100644
+--- a/drivers/net/ethernet/dlink/sundance.c
++++ b/drivers/net/ethernet/dlink/sundance.c
+@@ -218,7 +218,7 @@ enum {
+ struct pci_id_info {
+         const char *name;
+ };
+-static const struct pci_id_info pci_id_tbl[] __devinitdata = {
++static const struct pci_id_info pci_id_tbl[] __devinitconst = {
+       {"D-Link DFE-550TX FAST Ethernet Adapter"},
+       {"D-Link DFE-550FX 100Mbps Fiber-optics Adapter"},
+       {"D-Link DFE-580TX 4 port Server Adapter"},
+diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
+index 1bbf6b3..430dcd0 100644
+--- a/drivers/net/ethernet/emulex/benet/be_main.c
++++ b/drivers/net/ethernet/emulex/benet/be_main.c
+@@ -403,7 +403,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
+       if (wrapped)
+               newacc += 65536;
+-      ACCESS_ONCE(*acc) = newacc;
++      ACCESS_ONCE_RW(*acc) = newacc;
+ }
+ void be_parse_stats(struct be_adapter *adapter)
+diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
+index 16b0704..d2c07d7 100644
+--- a/drivers/net/ethernet/faraday/ftgmac100.c
++++ b/drivers/net/ethernet/faraday/ftgmac100.c
+@@ -31,6 +31,8 @@
+ #include <linux/netdevice.h>
+ #include <linux/phy.h>
+ #include <linux/platform_device.h>
++#include <linux/interrupt.h>
++#include <linux/irqreturn.h>
+ #include <net/ip.h>
+ #include "ftgmac100.h"
+diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c
+index 829b109..4ae5f6a 100644
+--- a/drivers/net/ethernet/faraday/ftmac100.c
++++ b/drivers/net/ethernet/faraday/ftmac100.c
+@@ -31,6 +31,8 @@
+ #include <linux/module.h>
+ #include <linux/netdevice.h>
+ #include <linux/platform_device.h>
++#include <linux/interrupt.h>
++#include <linux/irqreturn.h>
+ #include "ftmac100.h"
+diff --git a/drivers/net/ethernet/fealnx.c b/drivers/net/ethernet/fealnx.c
+index 1637b98..c42f87b 100644
+--- a/drivers/net/ethernet/fealnx.c
++++ b/drivers/net/ethernet/fealnx.c
+@@ -150,7 +150,7 @@ struct chip_info {
+       int flags;
+ };
+-static const struct chip_info skel_netdrv_tbl[] __devinitdata = {
++static const struct chip_info skel_netdrv_tbl[] __devinitconst = {
+       { "100/10M Ethernet PCI Adapter",       HAS_MII_XCVR },
+       { "100/10M Ethernet PCI Adapter",       HAS_CHIP_XCVR },
+       { "1000/100/10M Ethernet PCI Adapter",  HAS_MII_XCVR },
+diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h
+index b83897f..b2d970f 100644
+--- a/drivers/net/ethernet/intel/e1000e/e1000.h
++++ b/drivers/net/ethernet/intel/e1000e/e1000.h
+@@ -181,7 +181,7 @@ struct e1000_info;
+ #define E1000_TXDCTL_DMA_BURST_ENABLE                          \
+       (E1000_TXDCTL_GRAN | /* set descriptor granularity */  \
+        E1000_TXDCTL_COUNT_DESC |                             \
+-       (5 << 16) | /* wthresh must be +1 more than desired */\
++       (1 << 16) | /* wthresh must be +1 more than desired */\
+        (1 << 8)  | /* hthresh */                             \
+        0x1f)       /* pthresh */
+diff --git a/drivers/net/ethernet/intel/e1000e/hw.h b/drivers/net/ethernet/intel/e1000e/hw.h
+index f82ecf5..7d59ecb 100644
+--- a/drivers/net/ethernet/intel/e1000e/hw.h
++++ b/drivers/net/ethernet/intel/e1000e/hw.h
+@@ -784,6 +784,7 @@ struct e1000_mac_operations {
+       void (*config_collision_dist)(struct e1000_hw *);
        s32  (*read_mac_addr)(struct e1000_hw *);
  };
 +typedef struct e1000_mac_operations __no_const e1000_mac_operations_no_const;
  
  /*
   * When to use various PHY register access functions:
-@@ -818,6 +819,7 @@ struct e1000_phy_operations {
+@@ -824,6 +825,7 @@ struct e1000_phy_operations {
        void (*power_up)(struct e1000_hw *);
        void (*power_down)(struct e1000_hw *);
  };
@@ -33080,7 +34828,7 @@ index 2967039..ca8c40c 100644
  
  /* Function pointers for the NVM. */
  struct e1000_nvm_operations {
-@@ -829,9 +831,10 @@ struct e1000_nvm_operations {
+@@ -836,9 +838,10 @@ struct e1000_nvm_operations {
        s32  (*validate)(struct e1000_hw *);
        s32  (*write)(struct e1000_hw *, u16, u16, u16 *);
  };
@@ -33092,7 +34840,7 @@ index 2967039..ca8c40c 100644
        u8 addr[ETH_ALEN];
        u8 perm_addr[ETH_ALEN];
  
-@@ -872,7 +875,7 @@ struct e1000_mac_info {
+@@ -879,7 +882,7 @@ struct e1000_mac_info {
  };
  
  struct e1000_phy_info {
@@ -33101,7 +34849,7 @@ index 2967039..ca8c40c 100644
  
        enum e1000_phy_type type;
  
-@@ -906,7 +909,7 @@ struct e1000_phy_info {
+@@ -913,7 +916,7 @@ struct e1000_phy_info {
  };
  
  struct e1000_nvm_info {
@@ -33110,36 +34858,10 @@ index 2967039..ca8c40c 100644
  
        enum e1000_nvm_type type;
        enum e1000_nvm_override override;
-diff --git a/drivers/net/fealnx.c b/drivers/net/fealnx.c
-index fa8677c..196356f 100644
---- a/drivers/net/fealnx.c
-+++ b/drivers/net/fealnx.c
-@@ -150,7 +150,7 @@ struct chip_info {
-       int flags;
- };
--static const struct chip_info skel_netdrv_tbl[] __devinitdata = {
-+static const struct chip_info skel_netdrv_tbl[] __devinitconst = {
-       { "100/10M Ethernet PCI Adapter",       HAS_MII_XCVR },
-       { "100/10M Ethernet PCI Adapter",       HAS_CHIP_XCVR },
-       { "1000/100/10M Ethernet PCI Adapter",  HAS_MII_XCVR },
-diff --git a/drivers/net/hamradio/6pack.c b/drivers/net/hamradio/6pack.c
-index 2a5a34d..be871cc 100644
---- a/drivers/net/hamradio/6pack.c
-+++ b/drivers/net/hamradio/6pack.c
-@@ -463,6 +463,8 @@ static void sixpack_receive_buf(struct tty_struct *tty,
-       unsigned char buf[512];
-       int count1;
-+      pax_track_stack();
-+
-       if (!count)
-               return;
-diff --git a/drivers/net/igb/e1000_hw.h b/drivers/net/igb/e1000_hw.h
-index 4519a13..f97fcd0 100644
---- a/drivers/net/igb/e1000_hw.h
-+++ b/drivers/net/igb/e1000_hw.h
+diff --git a/drivers/net/ethernet/intel/igb/e1000_hw.h b/drivers/net/ethernet/intel/igb/e1000_hw.h
+index f67cbd3..cef9e3d 100644
+--- a/drivers/net/ethernet/intel/igb/e1000_hw.h
++++ b/drivers/net/ethernet/intel/igb/e1000_hw.h
 @@ -314,6 +314,7 @@ struct e1000_mac_operations {
        s32  (*read_mac_addr)(struct e1000_hw *);
        s32  (*get_speed_and_duplex)(struct e1000_hw *, u16 *, u16 *);
@@ -33208,10 +34930,10 @@ index 4519a13..f97fcd0 100644
        struct e1000_mbx_stats stats;
        u32 timeout;
        u32 usec_delay;
-diff --git a/drivers/net/igbvf/vf.h b/drivers/net/igbvf/vf.h
-index d7ed58f..64cde36 100644
---- a/drivers/net/igbvf/vf.h
-+++ b/drivers/net/igbvf/vf.h
+diff --git a/drivers/net/ethernet/intel/igbvf/vf.h b/drivers/net/ethernet/intel/igbvf/vf.h
+index 57db3c6..aa825fc 100644
+--- a/drivers/net/ethernet/intel/igbvf/vf.h
++++ b/drivers/net/ethernet/intel/igbvf/vf.h
 @@ -189,9 +189,10 @@ struct e1000_mac_operations {
        s32  (*read_mac_addr)(struct e1000_hw *);
        s32  (*set_vfta)(struct e1000_hw *, u16, bool);
@@ -33241,38 +34963,11 @@ index d7ed58f..64cde36 100644
        struct e1000_mbx_stats stats;
        u32 timeout;
        u32 usec_delay;
-diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
-index 6a130eb..1aeb9e4 100644
---- a/drivers/net/ixgb/ixgb_main.c
-+++ b/drivers/net/ixgb/ixgb_main.c
-@@ -1070,6 +1070,8 @@ ixgb_set_multi(struct net_device *netdev)
-       u32 rctl;
-       int i;
-+      pax_track_stack();
-+
-       /* Check for Promiscuous and All Multicast modes */
-       rctl = IXGB_READ_REG(hw, RCTL);
-diff --git a/drivers/net/ixgb/ixgb_param.c b/drivers/net/ixgb/ixgb_param.c
-index dd7fbeb..44b9bbf 100644
---- a/drivers/net/ixgb/ixgb_param.c
-+++ b/drivers/net/ixgb/ixgb_param.c
-@@ -261,6 +261,9 @@ void __devinit
- ixgb_check_options(struct ixgb_adapter *adapter)
- {
-       int bd = adapter->bd_number;
-+
-+      pax_track_stack();
-+
-       if (bd >= IXGB_MAX_NIC) {
-               pr_notice("Warning: no configuration for board #%i\n", bd);
-               pr_notice("Using defaults for all values\n");
-diff --git a/drivers/net/ixgbe/ixgbe_type.h b/drivers/net/ixgbe/ixgbe_type.h
-index e0d970e..1cfdea5 100644
---- a/drivers/net/ixgbe/ixgbe_type.h
-+++ b/drivers/net/ixgbe/ixgbe_type.h
-@@ -2642,6 +2642,7 @@ struct ixgbe_eeprom_operations {
+diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
+index 8636e83..ab9bbc3 100644
+--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
++++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
+@@ -2710,6 +2710,7 @@ struct ixgbe_eeprom_operations {
        s32 (*update_checksum)(struct ixgbe_hw *);
        u16 (*calc_checksum)(struct ixgbe_hw *);
  };
@@ -33280,7 +34975,7 @@ index e0d970e..1cfdea5 100644
  
  struct ixgbe_mac_operations {
        s32 (*init_hw)(struct ixgbe_hw *);
-@@ -2703,6 +2704,7 @@ struct ixgbe_mac_operations {
+@@ -2773,6 +2774,7 @@ struct ixgbe_mac_operations {
        /* Manageability interface */
        s32 (*set_fw_drv_ver)(struct ixgbe_hw *, u8, u8, u8, u8);
  };
@@ -33288,7 +34983,7 @@ index e0d970e..1cfdea5 100644
  
  struct ixgbe_phy_operations {
        s32 (*identify)(struct ixgbe_hw *);
-@@ -2722,9 +2724,10 @@ struct ixgbe_phy_operations {
+@@ -2792,9 +2794,10 @@ struct ixgbe_phy_operations {
        s32 (*write_i2c_eeprom)(struct ixgbe_hw *, u8, u8);
        s32 (*check_overtemp)(struct ixgbe_hw *);
  };
@@ -33300,16 +34995,16 @@ index e0d970e..1cfdea5 100644
        enum ixgbe_eeprom_type          type;
        u32                             semaphore_delay;
        u16                             word_size;
-@@ -2734,7 +2737,7 @@ struct ixgbe_eeprom_info {
+@@ -2804,7 +2807,7 @@ struct ixgbe_eeprom_info {
  
  #define IXGBE_FLAGS_DOUBLE_RESET_REQUIRED     0x01
  struct ixgbe_mac_info {
 -      struct ixgbe_mac_operations     ops;
 +      ixgbe_mac_operations_no_const   ops;
        enum ixgbe_mac_type             type;
-       u8                              addr[IXGBE_ETH_LENGTH_OF_ADDRESS];
-       u8                              perm_addr[IXGBE_ETH_LENGTH_OF_ADDRESS];
-@@ -2762,7 +2765,7 @@ struct ixgbe_mac_info {
+       u8                              addr[ETH_ALEN];
+       u8                              perm_addr[ETH_ALEN];
+@@ -2832,7 +2835,7 @@ struct ixgbe_mac_info {
  };
  
  struct ixgbe_phy_info {
@@ -33318,7 +35013,7 @@ index e0d970e..1cfdea5 100644
        struct mdio_if_info             mdio;
        enum ixgbe_phy_type             type;
        u32                             id;
-@@ -2790,6 +2793,7 @@ struct ixgbe_mbx_operations {
+@@ -2860,6 +2863,7 @@ struct ixgbe_mbx_operations {
        s32 (*check_for_ack)(struct ixgbe_hw *, u16);
        s32 (*check_for_rst)(struct ixgbe_hw *, u16);
  };
@@ -33326,7 +35021,7 @@ index e0d970e..1cfdea5 100644
  
  struct ixgbe_mbx_stats {
        u32 msgs_tx;
-@@ -2801,7 +2805,7 @@ struct ixgbe_mbx_stats {
+@@ -2871,7 +2875,7 @@ struct ixgbe_mbx_stats {
  };
  
  struct ixgbe_mbx_info {
@@ -33335,10 +35030,40 @@ index e0d970e..1cfdea5 100644
        struct ixgbe_mbx_stats stats;
        u32 timeout;
        u32 usec_delay;
-diff --git a/drivers/net/ixgbevf/vf.h b/drivers/net/ixgbevf/vf.h
-index 10306b4..28df758 100644
---- a/drivers/net/ixgbevf/vf.h
-+++ b/drivers/net/ixgbevf/vf.h
+diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+index 307611a..d8e4562 100644
+--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
++++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+@@ -969,8 +969,6 @@ static irqreturn_t ixgbevf_msix_clean_tx(int irq, void *data)
+       r_idx = find_first_bit(q_vector->txr_idx, adapter->num_tx_queues);
+       for (i = 0; i < q_vector->txr_count; i++) {
+               tx_ring = &(adapter->tx_ring[r_idx]);
+-              tx_ring->total_bytes = 0;
+-              tx_ring->total_packets = 0;
+               ixgbevf_clean_tx_irq(adapter, tx_ring);
+               r_idx = find_next_bit(q_vector->txr_idx, adapter->num_tx_queues,
+                                     r_idx + 1);
+@@ -994,16 +992,6 @@ static irqreturn_t ixgbevf_msix_clean_rx(int irq, void *data)
+       struct ixgbe_hw *hw = &adapter->hw;
+       struct ixgbevf_ring  *rx_ring;
+       int r_idx;
+-      int i;
+-
+-      r_idx = find_first_bit(q_vector->rxr_idx, adapter->num_rx_queues);
+-      for (i = 0; i < q_vector->rxr_count; i++) {
+-              rx_ring = &(adapter->rx_ring[r_idx]);
+-              rx_ring->total_bytes = 0;
+-              rx_ring->total_packets = 0;
+-              r_idx = find_next_bit(q_vector->rxr_idx, adapter->num_rx_queues,
+-                                    r_idx + 1);
+-      }
+       if (!q_vector->rxr_count)
+               return IRQ_HANDLED;
+diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.h b/drivers/net/ethernet/intel/ixgbevf/vf.h
+index 25c951d..cc7cf33 100644
+--- a/drivers/net/ethernet/intel/ixgbevf/vf.h
++++ b/drivers/net/ethernet/intel/ixgbevf/vf.h
 @@ -70,6 +70,7 @@ struct ixgbe_mac_operations {
        s32 (*clear_vfta)(struct ixgbe_hw *);
        s32 (*set_vfta)(struct ixgbe_hw *, u32, u32, bool);
@@ -33373,675 +35098,159 @@ index 10306b4..28df758 100644
        struct ixgbe_mbx_stats stats;
        u32 timeout;
        u32 udelay;
-diff --git a/drivers/net/ksz884x.c b/drivers/net/ksz884x.c
-index 27418d3..adf15bb 100644
---- a/drivers/net/ksz884x.c
-+++ b/drivers/net/ksz884x.c
-@@ -6533,6 +6533,8 @@ static void netdev_get_ethtool_stats(struct net_device *dev,
-       int rc;
-       u64 counter[TOTAL_PORT_COUNTER_NUM];
-+      pax_track_stack();
-+
-       mutex_lock(&hw_priv->lock);
-       n = SWITCH_PORT_NUM;
-       for (i = 0, p = port->first_port; i < port->mib_port_cnt; i++, p++) {
-diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
-index f0ee35d..3831c8a 100644
---- a/drivers/net/mlx4/main.c
-+++ b/drivers/net/mlx4/main.c
-@@ -40,6 +40,7 @@
- #include <linux/dma-mapping.h>
+diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
+index 8bb05b4..074796f 100644
+--- a/drivers/net/ethernet/mellanox/mlx4/main.c
++++ b/drivers/net/ethernet/mellanox/mlx4/main.c
+@@ -41,6 +41,7 @@
  #include <linux/slab.h>
  #include <linux/io-mapping.h>
+ #include <linux/delay.h>
 +#include <linux/sched.h>
  
  #include <linux/mlx4/device.h>
  #include <linux/mlx4/doorbell.h>
-@@ -762,6 +763,8 @@ static int mlx4_init_hca(struct mlx4_dev *dev)
-       u64 icm_size;
-       int err;
-+      pax_track_stack();
-+
-       err = mlx4_QUERY_FW(dev);
-       if (err) {
-               if (err == -EACCES)
-diff --git a/drivers/net/niu.c b/drivers/net/niu.c
-index ed47585..5e5be8f 100644
---- a/drivers/net/niu.c
-+++ b/drivers/net/niu.c
-@@ -9061,6 +9061,8 @@ static void __devinit niu_try_msix(struct niu *np, u8 *ldg_num_map)
-       int i, num_irqs, err;
-       u8 first_ldg;
-+      pax_track_stack();
-+
-       first_ldg = (NIU_NUM_LDG / parent->num_ports) * np->port;
-       for (i = 0; i < (NIU_NUM_LDG / parent->num_ports); i++)
-               ldg_num_map[i] = first_ldg + i;
-diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
-index 80b6f36..5cd8938 100644
---- a/drivers/net/pcnet32.c
-+++ b/drivers/net/pcnet32.c
-@@ -270,7 +270,7 @@ struct pcnet32_private {
-       struct sk_buff          **rx_skbuff;
-       dma_addr_t              *tx_dma_addr;
-       dma_addr_t              *rx_dma_addr;
--      struct pcnet32_access   a;
-+      struct pcnet32_access   *a;
-       spinlock_t              lock;           /* Guard lock */
-       unsigned int            cur_rx, cur_tx; /* The next free ring entry */
-       unsigned int            rx_ring_size;   /* current rx ring size */
-@@ -460,9 +460,9 @@ static void pcnet32_netif_start(struct net_device *dev)
-       u16 val;
-       netif_wake_queue(dev);
--      val = lp->a.read_csr(ioaddr, CSR3);
-+      val = lp->a->read_csr(ioaddr, CSR3);
-       val &= 0x00ff;
--      lp->a.write_csr(ioaddr, CSR3, val);
-+      lp->a->write_csr(ioaddr, CSR3, val);
-       napi_enable(&lp->napi);
- }
-@@ -730,7 +730,7 @@ static u32 pcnet32_get_link(struct net_device *dev)
-               r = mii_link_ok(&lp->mii_if);
-       } else if (lp->chip_version >= PCNET32_79C970A) {
-               ulong ioaddr = dev->base_addr;  /* card base I/O address */
--              r = (lp->a.read_bcr(ioaddr, 4) != 0xc0);
-+              r = (lp->a->read_bcr(ioaddr, 4) != 0xc0);
-       } else {        /* can not detect link on really old chips */
-               r = 1;
-       }
-@@ -792,7 +792,7 @@ static int pcnet32_set_ringparam(struct net_device *dev,
-               pcnet32_netif_stop(dev);
-       spin_lock_irqsave(&lp->lock, flags);
--      lp->a.write_csr(ioaddr, CSR0, CSR0_STOP);       /* stop the chip */
-+      lp->a->write_csr(ioaddr, CSR0, CSR0_STOP);      /* stop the chip */
-       size = min(ering->tx_pending, (unsigned int)TX_MAX_RING_SIZE);
-@@ -868,7 +868,7 @@ static void pcnet32_ethtool_test(struct net_device *dev,
- static int pcnet32_loopback_test(struct net_device *dev, uint64_t * data1)
- {
-       struct pcnet32_private *lp = netdev_priv(dev);
--      struct pcnet32_access *a = &lp->a;      /* access to registers */
-+      struct pcnet32_access *a = lp->a;       /* access to registers */
-       ulong ioaddr = dev->base_addr;  /* card base I/O address */
-       struct sk_buff *skb;    /* sk buff */
-       int x, i;               /* counters */
-@@ -888,21 +888,21 @@ static int pcnet32_loopback_test(struct net_device *dev, uint64_t * data1)
-               pcnet32_netif_stop(dev);
-       spin_lock_irqsave(&lp->lock, flags);
--      lp->a.write_csr(ioaddr, CSR0, CSR0_STOP);       /* stop the chip */
-+      lp->a->write_csr(ioaddr, CSR0, CSR0_STOP);      /* stop the chip */
-       numbuffs = min(numbuffs, (int)min(lp->rx_ring_size, lp->tx_ring_size));
-       /* Reset the PCNET32 */
--      lp->a.reset(ioaddr);
--      lp->a.write_csr(ioaddr, CSR4, 0x0915);  /* auto tx pad */
-+      lp->a->reset(ioaddr);
-+      lp->a->write_csr(ioaddr, CSR4, 0x0915); /* auto tx pad */
-       /* switch pcnet32 to 32bit mode */
--      lp->a.write_bcr(ioaddr, 20, 2);
-+      lp->a->write_bcr(ioaddr, 20, 2);
-       /* purge & init rings but don't actually restart */
-       pcnet32_restart(dev, 0x0000);
--      lp->a.write_csr(ioaddr, CSR0, CSR0_STOP);       /* Set STOP bit */
-+      lp->a->write_csr(ioaddr, CSR0, CSR0_STOP);      /* Set STOP bit */
-       /* Initialize Transmit buffers. */
-       size = data_len + 15;
-@@ -947,10 +947,10 @@ static int pcnet32_loopback_test(struct net_device *dev, uint64_t * data1)
+diff --git a/drivers/net/ethernet/neterion/vxge/vxge-config.h b/drivers/net/ethernet/neterion/vxge/vxge-config.h
+index 5046a64..71ca936 100644
+--- a/drivers/net/ethernet/neterion/vxge/vxge-config.h
++++ b/drivers/net/ethernet/neterion/vxge/vxge-config.h
+@@ -514,7 +514,7 @@ struct vxge_hw_uld_cbs {
+       void (*link_down)(struct __vxge_hw_device *devh);
+       void (*crit_err)(struct __vxge_hw_device *devh,
+                       enum vxge_hw_event type, u64 ext_data);
+-};
++} __no_const;
  
-       /* set int loopback in CSR15 */
-       x = a->read_csr(ioaddr, CSR15) & 0xfffc;
--      lp->a.write_csr(ioaddr, CSR15, x | 0x0044);
-+      lp->a->write_csr(ioaddr, CSR15, x | 0x0044);
+ /*
+  * struct __vxge_hw_blockpool_entry - Block private data structure
+diff --git a/drivers/net/ethernet/neterion/vxge/vxge-traffic.h b/drivers/net/ethernet/neterion/vxge/vxge-traffic.h
+index 4a518a3..936b334 100644
+--- a/drivers/net/ethernet/neterion/vxge/vxge-traffic.h
++++ b/drivers/net/ethernet/neterion/vxge/vxge-traffic.h
+@@ -2088,7 +2088,7 @@ struct vxge_hw_mempool_cbs {
+                       struct vxge_hw_mempool_dma      *dma_object,
+                       u32                     index,
+                       u32                     is_last);
+-};
++} __no_const;
  
-       teststatus = cpu_to_le16(0x8000);
--      lp->a.write_csr(ioaddr, CSR0, CSR0_START);      /* Set STRT bit */
-+      lp->a->write_csr(ioaddr, CSR0, CSR0_START);     /* Set STRT bit */
+ #define VXGE_HW_VIRTUAL_PATH_HANDLE(vpath)                            \
+               ((struct __vxge_hw_vpath_handle *)(vpath)->vpath_handles.next)
+diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
+index 161e045..0bb5b86 100644
+--- a/drivers/net/ethernet/realtek/r8169.c
++++ b/drivers/net/ethernet/realtek/r8169.c
+@@ -708,17 +708,17 @@ struct rtl8169_private {
+       struct mdio_ops {
+               void (*write)(void __iomem *, int, int);
+               int (*read)(void __iomem *, int);
+-      } mdio_ops;
++      } __no_const mdio_ops;
  
-       /* Check status of descriptors */
-       for (x = 0; x < numbuffs; x++) {
-@@ -969,7 +969,7 @@ static int pcnet32_loopback_test(struct net_device *dev, uint64_t * data1)
-               }
-       }
+       struct pll_power_ops {
+               void (*down)(struct rtl8169_private *);
+               void (*up)(struct rtl8169_private *);
+-      } pll_power_ops;
++      } __no_const pll_power_ops;
  
--      lp->a.write_csr(ioaddr, CSR0, CSR0_STOP);       /* Set STOP bit */
-+      lp->a->write_csr(ioaddr, CSR0, CSR0_STOP);      /* Set STOP bit */
-       wmb();
-       if (netif_msg_hw(lp) && netif_msg_pktdata(lp)) {
-               netdev_printk(KERN_DEBUG, dev, "RX loopback packets:\n");
-@@ -1015,7 +1015,7 @@ clean_up:
-               pcnet32_restart(dev, CSR0_NORMAL);
-       } else {
-               pcnet32_purge_rx_ring(dev);
--              lp->a.write_bcr(ioaddr, 20, 4); /* return to 16bit mode */
-+              lp->a->write_bcr(ioaddr, 20, 4);        /* return to 16bit mode */
-       }
-       spin_unlock_irqrestore(&lp->lock, flags);
+       struct jumbo_ops {
+               void (*enable)(struct rtl8169_private *);
+               void (*disable)(struct rtl8169_private *);
+-      } jumbo_ops;
++      } __no_const jumbo_ops;
  
-@@ -1026,7 +1026,7 @@ static int pcnet32_set_phys_id(struct net_device *dev,
-                              enum ethtool_phys_id_state state)
- {
-       struct pcnet32_private *lp = netdev_priv(dev);
--      struct pcnet32_access *a = &lp->a;
-+      struct pcnet32_access *a = lp->a;
-       ulong ioaddr = dev->base_addr;
-       unsigned long flags;
-       int i;
-@@ -1067,7 +1067,7 @@ static int pcnet32_suspend(struct net_device *dev, unsigned long *flags,
+       int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv);
+       int (*get_settings)(struct net_device *, struct ethtool_cmd *);
+diff --git a/drivers/net/ethernet/sis/sis190.c b/drivers/net/ethernet/sis/sis190.c
+index a9deda8..5507c31 100644
+--- a/drivers/net/ethernet/sis/sis190.c
++++ b/drivers/net/ethernet/sis/sis190.c
+@@ -1620,7 +1620,7 @@ static int __devinit sis190_get_mac_addr_from_eeprom(struct pci_dev *pdev,
+ static int __devinit sis190_get_mac_addr_from_apc(struct pci_dev *pdev,
+                                                 struct net_device *dev)
  {
-       int csr5;
-       struct pcnet32_private *lp = netdev_priv(dev);
--      struct pcnet32_access *a = &lp->a;
-+      struct pcnet32_access *a = lp->a;
-       ulong ioaddr = dev->base_addr;
-       int ticks;
-@@ -1324,8 +1324,8 @@ static int pcnet32_poll(struct napi_struct *napi, int budget)
-       spin_lock_irqsave(&lp->lock, flags);
-       if (pcnet32_tx(dev)) {
-               /* reset the chip to clear the error condition, then restart */
--              lp->a.reset(ioaddr);
--              lp->a.write_csr(ioaddr, CSR4, 0x0915);  /* auto tx pad */
-+              lp->a->reset(ioaddr);
-+              lp->a->write_csr(ioaddr, CSR4, 0x0915); /* auto tx pad */
-               pcnet32_restart(dev, CSR0_START);
-               netif_wake_queue(dev);
-       }
-@@ -1337,12 +1337,12 @@ static int pcnet32_poll(struct napi_struct *napi, int budget)
-               __napi_complete(napi);
-               /* clear interrupt masks */
--              val = lp->a.read_csr(ioaddr, CSR3);
-+              val = lp->a->read_csr(ioaddr, CSR3);
-               val &= 0x00ff;
--              lp->a.write_csr(ioaddr, CSR3, val);
-+              lp->a->write_csr(ioaddr, CSR3, val);
-               /* Set interrupt enable. */
--              lp->a.write_csr(ioaddr, CSR0, CSR0_INTEN);
-+              lp->a->write_csr(ioaddr, CSR0, CSR0_INTEN);
-               spin_unlock_irqrestore(&lp->lock, flags);
-       }
-@@ -1365,7 +1365,7 @@ static void pcnet32_get_regs(struct net_device *dev, struct ethtool_regs *regs,
-       int i, csr0;
-       u16 *buff = ptr;
-       struct pcnet32_private *lp = netdev_priv(dev);
--      struct pcnet32_access *a = &lp->a;
-+      struct pcnet32_access *a = lp->a;
-       ulong ioaddr = dev->base_addr;
-       unsigned long flags;
-@@ -1401,9 +1401,9 @@ static void pcnet32_get_regs(struct net_device *dev, struct ethtool_regs *regs,
-               for (j = 0; j < PCNET32_MAX_PHYS; j++) {
-                       if (lp->phymask & (1 << j)) {
-                               for (i = 0; i < PCNET32_REGS_PER_PHY; i++) {
--                                      lp->a.write_bcr(ioaddr, 33,
-+                                      lp->a->write_bcr(ioaddr, 33,
-                                                       (j << 5) | i);
--                                      *buff++ = lp->a.read_bcr(ioaddr, 34);
-+                                      *buff++ = lp->a->read_bcr(ioaddr, 34);
-                               }
-                       }
-               }
-@@ -1785,7 +1785,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
-           ((cards_found >= MAX_UNITS) || full_duplex[cards_found]))
-               lp->options |= PCNET32_PORT_FD;
--      lp->a = *a;
-+      lp->a = a;
-       /* prior to register_netdev, dev->name is not yet correct */
-       if (pcnet32_alloc_ring(dev, pci_name(lp->pci_dev))) {
-@@ -1844,7 +1844,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
-       if (lp->mii) {
-               /* lp->phycount and lp->phymask are set to 0 by memset above */
--              lp->mii_if.phy_id = ((lp->a.read_bcr(ioaddr, 33)) >> 5) & 0x1f;
-+              lp->mii_if.phy_id = ((lp->a->read_bcr(ioaddr, 33)) >> 5) & 0x1f;
-               /* scan for PHYs */
-               for (i = 0; i < PCNET32_MAX_PHYS; i++) {
-                       unsigned short id1, id2;
-@@ -1864,7 +1864,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
-                               pr_info("Found PHY %04x:%04x at address %d\n",
-                                       id1, id2, i);
-               }
--              lp->a.write_bcr(ioaddr, 33, (lp->mii_if.phy_id) << 5);
-+              lp->a->write_bcr(ioaddr, 33, (lp->mii_if.phy_id) << 5);
-               if (lp->phycount > 1)
-                       lp->options |= PCNET32_PORT_MII;
-       }
-@@ -2020,10 +2020,10 @@ static int pcnet32_open(struct net_device *dev)
-       }
-       /* Reset the PCNET32 */
--      lp->a.reset(ioaddr);
-+      lp->a->reset(ioaddr);
-       /* switch pcnet32 to 32bit mode */
--      lp->a.write_bcr(ioaddr, 20, 2);
-+      lp->a->write_bcr(ioaddr, 20, 2);
-       netif_printk(lp, ifup, KERN_DEBUG, dev,
-                    "%s() irq %d tx/rx rings %#x/%#x init %#x\n",
-@@ -2032,14 +2032,14 @@ static int pcnet32_open(struct net_device *dev)
-                    (u32) (lp->init_dma_addr));
-       /* set/reset autoselect bit */
--      val = lp->a.read_bcr(ioaddr, 2) & ~2;
-+      val = lp->a->read_bcr(ioaddr, 2) & ~2;
-       if (lp->options & PCNET32_PORT_ASEL)
-               val |= 2;
--      lp->a.write_bcr(ioaddr, 2, val);
-+      lp->a->write_bcr(ioaddr, 2, val);
-       /* handle full duplex setting */
-       if (lp->mii_if.full_duplex) {
--              val = lp->a.read_bcr(ioaddr, 9) & ~3;
-+              val = lp->a->read_bcr(ioaddr, 9) & ~3;
-               if (lp->options & PCNET32_PORT_FD) {
-                       val |= 1;
-                       if (lp->options == (PCNET32_PORT_FD | PCNET32_PORT_AUI))
-@@ -2049,14 +2049,14 @@ static int pcnet32_open(struct net_device *dev)
-                       if (lp->chip_version == 0x2627)
-                               val |= 3;
-               }
--              lp->a.write_bcr(ioaddr, 9, val);
-+              lp->a->write_bcr(ioaddr, 9, val);
-       }
-       /* set/reset GPSI bit in test register */
--      val = lp->a.read_csr(ioaddr, 124) & ~0x10;
-+      val = lp->a->read_csr(ioaddr, 124) & ~0x10;
-       if ((lp->options & PCNET32_PORT_PORTSEL) == PCNET32_PORT_GPSI)
-               val |= 0x10;
--      lp->a.write_csr(ioaddr, 124, val);
-+      lp->a->write_csr(ioaddr, 124, val);
-       /* Allied Telesyn AT 2700/2701 FX are 100Mbit only and do not negotiate */
-       if (pdev && pdev->subsystem_vendor == PCI_VENDOR_ID_AT &&
-@@ -2075,24 +2075,24 @@ static int pcnet32_open(struct net_device *dev)
-                * duplex, and/or enable auto negotiation, and clear DANAS
-                */
-               if (lp->mii && !(lp->options & PCNET32_PORT_ASEL)) {
--                      lp->a.write_bcr(ioaddr, 32,
--                                      lp->a.read_bcr(ioaddr, 32) | 0x0080);
-+                      lp->a->write_bcr(ioaddr, 32,
-+                                      lp->a->read_bcr(ioaddr, 32) | 0x0080);
-                       /* disable Auto Negotiation, set 10Mpbs, HD */
--                      val = lp->a.read_bcr(ioaddr, 32) & ~0xb8;
-+                      val = lp->a->read_bcr(ioaddr, 32) & ~0xb8;
-                       if (lp->options & PCNET32_PORT_FD)
-                               val |= 0x10;
-                       if (lp->options & PCNET32_PORT_100)
-                               val |= 0x08;
--                      lp->a.write_bcr(ioaddr, 32, val);
-+                      lp->a->write_bcr(ioaddr, 32, val);
-               } else {
-                       if (lp->options & PCNET32_PORT_ASEL) {
--                              lp->a.write_bcr(ioaddr, 32,
--                                              lp->a.read_bcr(ioaddr,
-+                              lp->a->write_bcr(ioaddr, 32,
-+                                              lp->a->read_bcr(ioaddr,
-                                                              32) | 0x0080);
-                               /* enable auto negotiate, setup, disable fd */
--                              val = lp->a.read_bcr(ioaddr, 32) & ~0x98;
-+                              val = lp->a->read_bcr(ioaddr, 32) & ~0x98;
-                               val |= 0x20;
--                              lp->a.write_bcr(ioaddr, 32, val);
-+                              lp->a->write_bcr(ioaddr, 32, val);
-                       }
-               }
-       } else {
-@@ -2105,10 +2105,10 @@ static int pcnet32_open(struct net_device *dev)
-                * There is really no good other way to handle multiple PHYs
-                * other than turning off all automatics
-                */
--              val = lp->a.read_bcr(ioaddr, 2);
--              lp->a.write_bcr(ioaddr, 2, val & ~2);
--              val = lp->a.read_bcr(ioaddr, 32);
--              lp->a.write_bcr(ioaddr, 32, val & ~(1 << 7));   /* stop MII manager */
-+              val = lp->a->read_bcr(ioaddr, 2);
-+              lp->a->write_bcr(ioaddr, 2, val & ~2);
-+              val = lp->a->read_bcr(ioaddr, 32);
-+              lp->a->write_bcr(ioaddr, 32, val & ~(1 << 7));  /* stop MII manager */
-               if (!(lp->options & PCNET32_PORT_ASEL)) {
-                       /* setup ecmd */
-@@ -2118,7 +2118,7 @@ static int pcnet32_open(struct net_device *dev)
-                       ethtool_cmd_speed_set(&ecmd,
-                                             (lp->options & PCNET32_PORT_100) ?
-                                             SPEED_100 : SPEED_10);
--                      bcr9 = lp->a.read_bcr(ioaddr, 9);
-+                      bcr9 = lp->a->read_bcr(ioaddr, 9);
-                       if (lp->options & PCNET32_PORT_FD) {
-                               ecmd.duplex = DUPLEX_FULL;
-@@ -2127,7 +2127,7 @@ static int pcnet32_open(struct net_device *dev)
-                               ecmd.duplex = DUPLEX_HALF;
-                               bcr9 |= ~(1 << 0);
-                       }
--                      lp->a.write_bcr(ioaddr, 9, bcr9);
-+                      lp->a->write_bcr(ioaddr, 9, bcr9);
-               }
-               for (i = 0; i < PCNET32_MAX_PHYS; i++) {
-@@ -2158,9 +2158,9 @@ static int pcnet32_open(struct net_device *dev)
- #ifdef DO_DXSUFLO
-       if (lp->dxsuflo) {      /* Disable transmit stop on underflow */
--              val = lp->a.read_csr(ioaddr, CSR3);
-+              val = lp->a->read_csr(ioaddr, CSR3);
-               val |= 0x40;
--              lp->a.write_csr(ioaddr, CSR3, val);
-+              lp->a->write_csr(ioaddr, CSR3, val);
-       }
- #endif
-@@ -2176,11 +2176,11 @@ static int pcnet32_open(struct net_device *dev)
-       napi_enable(&lp->napi);
-       /* Re-initialize the PCNET32, and start it when done. */
--      lp->a.write_csr(ioaddr, 1, (lp->init_dma_addr & 0xffff));
--      lp->a.write_csr(ioaddr, 2, (lp->init_dma_addr >> 16));
-+      lp->a->write_csr(ioaddr, 1, (lp->init_dma_addr & 0xffff));
-+      lp->a->write_csr(ioaddr, 2, (lp->init_dma_addr >> 16));
--      lp->a.write_csr(ioaddr, CSR4, 0x0915);  /* auto tx pad */
--      lp->a.write_csr(ioaddr, CSR0, CSR0_INIT);
-+      lp->a->write_csr(ioaddr, CSR4, 0x0915); /* auto tx pad */
-+      lp->a->write_csr(ioaddr, CSR0, CSR0_INIT);
-       netif_start_queue(dev);
-@@ -2192,19 +2192,19 @@ static int pcnet32_open(struct net_device *dev)
-       i = 0;
-       while (i++ < 100)
--              if (lp->a.read_csr(ioaddr, CSR0) & CSR0_IDON)
-+              if (lp->a->read_csr(ioaddr, CSR0) & CSR0_IDON)
-                       break;
-       /*
-        * We used to clear the InitDone bit, 0x0100, here but Mark Stockton
-        * reports that doing so triggers a bug in the '974.
-        */
--      lp->a.write_csr(ioaddr, CSR0, CSR0_NORMAL);
-+      lp->a->write_csr(ioaddr, CSR0, CSR0_NORMAL);
-       netif_printk(lp, ifup, KERN_DEBUG, dev,
-                    "pcnet32 open after %d ticks, init block %#x csr0 %4.4x\n",
-                    i,
-                    (u32) (lp->init_dma_addr),
--                   lp->a.read_csr(ioaddr, CSR0));
-+                   lp->a->read_csr(ioaddr, CSR0));
-       spin_unlock_irqrestore(&lp->lock, flags);
-@@ -2218,7 +2218,7 @@ err_free_ring:
-        * Switch back to 16bit mode to avoid problems with dumb
-        * DOS packet driver after a warm reboot
-        */
--      lp->a.write_bcr(ioaddr, 20, 4);
-+      lp->a->write_bcr(ioaddr, 20, 4);
- err_free_irq:
-       spin_unlock_irqrestore(&lp->lock, flags);
-@@ -2323,7 +2323,7 @@ static void pcnet32_restart(struct net_device *dev, unsigned int csr0_bits)
-       /* wait for stop */
-       for (i = 0; i < 100; i++)
--              if (lp->a.read_csr(ioaddr, CSR0) & CSR0_STOP)
-+              if (lp->a->read_csr(ioaddr, CSR0) & CSR0_STOP)
-                       break;
-       if (i >= 100)
-@@ -2335,13 +2335,13 @@ static void pcnet32_restart(struct net_device *dev, unsigned int csr0_bits)
-               return;
-       /* ReInit Ring */
--      lp->a.write_csr(ioaddr, CSR0, CSR0_INIT);
-+      lp->a->write_csr(ioaddr, CSR0, CSR0_INIT);
-       i = 0;
-       while (i++ < 1000)
--              if (lp->a.read_csr(ioaddr, CSR0) & CSR0_IDON)
-+              if (lp->a->read_csr(ioaddr, CSR0) & CSR0_IDON)
-                       break;
--      lp->a.write_csr(ioaddr, CSR0, csr0_bits);
-+      lp->a->write_csr(ioaddr, CSR0, csr0_bits);
- }
- static void pcnet32_tx_timeout(struct net_device *dev)
-@@ -2353,8 +2353,8 @@ static void pcnet32_tx_timeout(struct net_device *dev)
-       /* Transmitter timeout, serious problems. */
-       if (pcnet32_debug & NETIF_MSG_DRV)
-               pr_err("%s: transmit timed out, status %4.4x, resetting\n",
--                     dev->name, lp->a.read_csr(ioaddr, CSR0));
--      lp->a.write_csr(ioaddr, CSR0, CSR0_STOP);
-+                     dev->name, lp->a->read_csr(ioaddr, CSR0));
-+      lp->a->write_csr(ioaddr, CSR0, CSR0_STOP);
-       dev->stats.tx_errors++;
-       if (netif_msg_tx_err(lp)) {
-               int i;
-@@ -2397,7 +2397,7 @@ static netdev_tx_t pcnet32_start_xmit(struct sk_buff *skb,
-       netif_printk(lp, tx_queued, KERN_DEBUG, dev,
-                    "%s() called, csr0 %4.4x\n",
--                   __func__, lp->a.read_csr(ioaddr, CSR0));
-+                   __func__, lp->a->read_csr(ioaddr, CSR0));
-       /* Default status -- will not enable Successful-TxDone
-        * interrupt when that option is available to us.
-@@ -2427,7 +2427,7 @@ static netdev_tx_t pcnet32_start_xmit(struct sk_buff *skb,
-       dev->stats.tx_bytes += skb->len;
-       /* Trigger an immediate send poll. */
--      lp->a.write_csr(ioaddr, CSR0, CSR0_INTEN | CSR0_TXPOLL);
-+      lp->a->write_csr(ioaddr, CSR0, CSR0_INTEN | CSR0_TXPOLL);
-       if (lp->tx_ring[(entry + 1) & lp->tx_mod_mask].base != 0) {
-               lp->tx_full = 1;
-@@ -2452,16 +2452,16 @@ pcnet32_interrupt(int irq, void *dev_id)
-       spin_lock(&lp->lock);
--      csr0 = lp->a.read_csr(ioaddr, CSR0);
-+      csr0 = lp->a->read_csr(ioaddr, CSR0);
-       while ((csr0 & 0x8f00) && --boguscnt >= 0) {
-               if (csr0 == 0xffff)
-                       break;  /* PCMCIA remove happened */
-               /* Acknowledge all of the current interrupt sources ASAP. */
--              lp->a.write_csr(ioaddr, CSR0, csr0 & ~0x004f);
-+              lp->a->write_csr(ioaddr, CSR0, csr0 & ~0x004f);
-               netif_printk(lp, intr, KERN_DEBUG, dev,
-                            "interrupt  csr0=%#2.2x new csr=%#2.2x\n",
--                           csr0, lp->a.read_csr(ioaddr, CSR0));
-+                           csr0, lp->a->read_csr(ioaddr, CSR0));
-               /* Log misc errors. */
-               if (csr0 & 0x4000)
-@@ -2488,19 +2488,19 @@ pcnet32_interrupt(int irq, void *dev_id)
-               if (napi_schedule_prep(&lp->napi)) {
-                       u16 val;
-                       /* set interrupt masks */
--                      val = lp->a.read_csr(ioaddr, CSR3);
-+                      val = lp->a->read_csr(ioaddr, CSR3);
-                       val |= 0x5f00;
--                      lp->a.write_csr(ioaddr, CSR3, val);
-+                      lp->a->write_csr(ioaddr, CSR3, val);
-                       __napi_schedule(&lp->napi);
-                       break;
-               }
--              csr0 = lp->a.read_csr(ioaddr, CSR0);
-+              csr0 = lp->a->read_csr(ioaddr, CSR0);
-       }
-       netif_printk(lp, intr, KERN_DEBUG, dev,
-                    "exiting interrupt, csr0=%#4.4x\n",
--                   lp->a.read_csr(ioaddr, CSR0));
-+                   lp->a->read_csr(ioaddr, CSR0));
-       spin_unlock(&lp->lock);
-@@ -2520,20 +2520,20 @@ static int pcnet32_close(struct net_device *dev)
-       spin_lock_irqsave(&lp->lock, flags);
+-      static const u16 __devinitdata ids[] = { 0x0965, 0x0966, 0x0968 };
++      static const u16 __devinitconst ids[] = { 0x0965, 0x0966, 0x0968 };
+       struct sis190_private *tp = netdev_priv(dev);
+       struct pci_dev *isa_bridge;
+       u8 reg, tmp8;
+diff --git a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
+index c07cfe9..81cbf7e 100644
+--- a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
++++ b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
+@@ -140,8 +140,8 @@ void dwmac_mmc_ctrl(void __iomem *ioaddr, unsigned int mode)
+       writel(value, ioaddr + MMC_CNTRL);
+-      pr_debug("stmmac: MMC ctrl register (offset 0x%x): 0x%08x\n",
+-               MMC_CNTRL, value);
++//    pr_debug("stmmac: MMC ctrl register (offset 0x%x): 0x%08x\n",
++//             MMC_CNTRL, value);
+ }
+ /* To mask all all interrupts.*/
+diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+index 9bdfaba..3d8f8d4 100644
+--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+@@ -1587,7 +1587,7 @@ static const struct file_operations stmmac_rings_status_fops = {
+       .open = stmmac_sysfs_ring_open,
+       .read = seq_read,
+       .llseek = seq_lseek,
+-      .release = seq_release,
++      .release = single_release,
+ };
  
--      dev->stats.rx_missed_errors = lp->a.read_csr(ioaddr, 112);
-+      dev->stats.rx_missed_errors = lp->a->read_csr(ioaddr, 112);
+ static int stmmac_sysfs_dma_cap_read(struct seq_file *seq, void *v)
+@@ -1659,7 +1659,7 @@ static const struct file_operations stmmac_dma_cap_fops = {
+       .open = stmmac_sysfs_dma_cap_open,
+       .read = seq_read,
+       .llseek = seq_lseek,
+-      .release = seq_release,
++      .release = single_release,
+ };
  
-       netif_printk(lp, ifdown, KERN_DEBUG, dev,
-                    "Shutting down ethercard, status was %2.2x\n",
--                   lp->a.read_csr(ioaddr, CSR0));
-+                   lp->a->read_csr(ioaddr, CSR0));
+ static int stmmac_init_fs(struct net_device *dev)
+diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
+index c358245..8c1de63 100644
+--- a/drivers/net/hyperv/hyperv_net.h
++++ b/drivers/net/hyperv/hyperv_net.h
+@@ -98,7 +98,7 @@ struct rndis_device {
  
-       /* We stop the PCNET32 here -- it occasionally polls memory if we don't. */
--      lp->a.write_csr(ioaddr, CSR0, CSR0_STOP);
-+      lp->a->write_csr(ioaddr, CSR0, CSR0_STOP);
+       enum rndis_device_state state;
+       bool link_state;
+-      atomic_t new_req_id;
++      atomic_unchecked_t new_req_id;
  
-       /*
-        * Switch back to 16bit mode to avoid problems with dumb
-        * DOS packet driver after a warm reboot
+       spinlock_t request_lock;
+       struct list_head req_list;
+diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
+index d6be64b..5d97e3b 100644
+--- a/drivers/net/hyperv/rndis_filter.c
++++ b/drivers/net/hyperv/rndis_filter.c
+@@ -97,7 +97,7 @@ static struct rndis_request *get_rndis_request(struct rndis_device *dev,
+        * template
         */
--      lp->a.write_bcr(ioaddr, 20, 4);
-+      lp->a->write_bcr(ioaddr, 20, 4);
-       spin_unlock_irqrestore(&lp->lock, flags);
-@@ -2556,7 +2556,7 @@ static struct net_device_stats *pcnet32_get_stats(struct net_device *dev)
-       unsigned long flags;
-       spin_lock_irqsave(&lp->lock, flags);
--      dev->stats.rx_missed_errors = lp->a.read_csr(ioaddr, 112);
-+      dev->stats.rx_missed_errors = lp->a->read_csr(ioaddr, 112);
-       spin_unlock_irqrestore(&lp->lock, flags);
-       return &dev->stats;
-@@ -2577,10 +2577,10 @@ static void pcnet32_load_multicast(struct net_device *dev)
-       if (dev->flags & IFF_ALLMULTI) {
-               ib->filter[0] = cpu_to_le32(~0U);
-               ib->filter[1] = cpu_to_le32(~0U);
--              lp->a.write_csr(ioaddr, PCNET32_MC_FILTER, 0xffff);
--              lp->a.write_csr(ioaddr, PCNET32_MC_FILTER+1, 0xffff);
--              lp->a.write_csr(ioaddr, PCNET32_MC_FILTER+2, 0xffff);
--              lp->a.write_csr(ioaddr, PCNET32_MC_FILTER+3, 0xffff);
-+              lp->a->write_csr(ioaddr, PCNET32_MC_FILTER, 0xffff);
-+              lp->a->write_csr(ioaddr, PCNET32_MC_FILTER+1, 0xffff);
-+              lp->a->write_csr(ioaddr, PCNET32_MC_FILTER+2, 0xffff);
-+              lp->a->write_csr(ioaddr, PCNET32_MC_FILTER+3, 0xffff);
-               return;
-       }
-       /* clear the multicast filter */
-@@ -2594,7 +2594,7 @@ static void pcnet32_load_multicast(struct net_device *dev)
-               mcast_table[crc >> 4] |= cpu_to_le16(1 << (crc & 0xf));
-       }
-       for (i = 0; i < 4; i++)
--              lp->a.write_csr(ioaddr, PCNET32_MC_FILTER + i,
-+              lp->a->write_csr(ioaddr, PCNET32_MC_FILTER + i,
-                               le16_to_cpu(mcast_table[i]));
- }
-@@ -2609,28 +2609,28 @@ static void pcnet32_set_multicast_list(struct net_device *dev)
-       spin_lock_irqsave(&lp->lock, flags);
-       suspended = pcnet32_suspend(dev, &flags, 0);
--      csr15 = lp->a.read_csr(ioaddr, CSR15);
-+      csr15 = lp->a->read_csr(ioaddr, CSR15);
-       if (dev->flags & IFF_PROMISC) {
-               /* Log any net taps. */
-               netif_info(lp, hw, dev, "Promiscuous mode enabled\n");
-               lp->init_block->mode =
-                   cpu_to_le16(0x8000 | (lp->options & PCNET32_PORT_PORTSEL) <<
-                               7);
--              lp->a.write_csr(ioaddr, CSR15, csr15 | 0x8000);
-+              lp->a->write_csr(ioaddr, CSR15, csr15 | 0x8000);
-       } else {
-               lp->init_block->mode =
-                   cpu_to_le16((lp->options & PCNET32_PORT_PORTSEL) << 7);
--              lp->a.write_csr(ioaddr, CSR15, csr15 & 0x7fff);
-+              lp->a->write_csr(ioaddr, CSR15, csr15 & 0x7fff);
-               pcnet32_load_multicast(dev);
-       }
-       if (suspended) {
-               int csr5;
-               /* clear SUSPEND (SPND) - CSR5 bit 0 */
--              csr5 = lp->a.read_csr(ioaddr, CSR5);
--              lp->a.write_csr(ioaddr, CSR5, csr5 & (~CSR5_SUSPEND));
-+              csr5 = lp->a->read_csr(ioaddr, CSR5);
-+              lp->a->write_csr(ioaddr, CSR5, csr5 & (~CSR5_SUSPEND));
-       } else {
--              lp->a.write_csr(ioaddr, CSR0, CSR0_STOP);
-+              lp->a->write_csr(ioaddr, CSR0, CSR0_STOP);
-               pcnet32_restart(dev, CSR0_NORMAL);
-               netif_wake_queue(dev);
-       }
-@@ -2648,8 +2648,8 @@ static int mdio_read(struct net_device *dev, int phy_id, int reg_num)
-       if (!lp->mii)
-               return 0;
--      lp->a.write_bcr(ioaddr, 33, ((phy_id & 0x1f) << 5) | (reg_num & 0x1f));
--      val_out = lp->a.read_bcr(ioaddr, 34);
-+      lp->a->write_bcr(ioaddr, 33, ((phy_id & 0x1f) << 5) | (reg_num & 0x1f));
-+      val_out = lp->a->read_bcr(ioaddr, 34);
+       set = &rndis_msg->msg.set_req;
+-      set->req_id = atomic_inc_return(&dev->new_req_id);
++      set->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
  
-       return val_out;
- }
-@@ -2663,8 +2663,8 @@ static void mdio_write(struct net_device *dev, int phy_id, int reg_num, int val)
-       if (!lp->mii)
-               return;
+       /* Add to the request list */
+       spin_lock_irqsave(&dev->request_lock, flags);
+@@ -648,7 +648,7 @@ static void rndis_filter_halt_device(struct rndis_device *dev)
  
--      lp->a.write_bcr(ioaddr, 33, ((phy_id & 0x1f) << 5) | (reg_num & 0x1f));
--      lp->a.write_bcr(ioaddr, 34, val);
-+      lp->a->write_bcr(ioaddr, 33, ((phy_id & 0x1f) << 5) | (reg_num & 0x1f));
-+      lp->a->write_bcr(ioaddr, 34, val);
- }
+       /* Setup the rndis set */
+       halt = &request->request_msg.msg.halt_req;
+-      halt->req_id = atomic_inc_return(&dev->new_req_id);
++      halt->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
  
- static int pcnet32_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
-@@ -2741,7 +2741,7 @@ static void pcnet32_check_media(struct net_device *dev, int verbose)
-               curr_link = mii_link_ok(&lp->mii_if);
-       } else {
-               ulong ioaddr = dev->base_addr;  /* card base I/O address */
--              curr_link = (lp->a.read_bcr(ioaddr, 4) != 0xc0);
-+              curr_link = (lp->a->read_bcr(ioaddr, 4) != 0xc0);
-       }
-       if (!curr_link) {
-               if (prev_link || verbose) {
-@@ -2764,13 +2764,13 @@ static void pcnet32_check_media(struct net_device *dev, int verbose)
-                                           (ecmd.duplex == DUPLEX_FULL)
-                                           ? "full" : "half");
-                       }
--                      bcr9 = lp->a.read_bcr(dev->base_addr, 9);
-+                      bcr9 = lp->a->read_bcr(dev->base_addr, 9);
-                       if ((bcr9 & (1 << 0)) != lp->mii_if.full_duplex) {
-                               if (lp->mii_if.full_duplex)
-                                       bcr9 |= (1 << 0);
-                               else
-                                       bcr9 &= ~(1 << 0);
--                              lp->a.write_bcr(dev->base_addr, 9, bcr9);
-+                              lp->a->write_bcr(dev->base_addr, 9, bcr9);
-                       }
-               } else {
-                       netif_info(lp, link, dev, "link up\n");
-diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c
-index edfa15d..002bfa9 100644
---- a/drivers/net/ppp_generic.c
-+++ b/drivers/net/ppp_generic.c
-@@ -987,7 +987,6 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+       /* Ignore return since this msg is optional. */
+       rndis_filter_send_request(dev, request);
+diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
+index 21d7151..8034208 100644
+--- a/drivers/net/ppp/ppp_generic.c
++++ b/drivers/net/ppp/ppp_generic.c
+@@ -986,7 +986,6 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
        void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data;
        struct ppp_stats stats;
        struct ppp_comp_stats cstats;
@@ -34049,7 +35258,7 @@ index edfa15d..002bfa9 100644
  
        switch (cmd) {
        case SIOCGPPPSTATS:
-@@ -1009,8 +1008,7 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+@@ -1008,8 +1007,7 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
                break;
  
        case SIOCGPPPVER:
@@ -34059,68 +35268,11 @@ index edfa15d..002bfa9 100644
                        break;
                err = 0;
                break;
-diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
-index 6d657ca..d1be94b 100644
---- a/drivers/net/r8169.c
-+++ b/drivers/net/r8169.c
-@@ -663,12 +663,12 @@ struct rtl8169_private {
-       struct mdio_ops {
-               void (*write)(void __iomem *, int, int);
-               int (*read)(void __iomem *, int);
--      } mdio_ops;
-+      } __no_const mdio_ops;
-       struct pll_power_ops {
-               void (*down)(struct rtl8169_private *);
-               void (*up)(struct rtl8169_private *);
--      } pll_power_ops;
-+      } __no_const pll_power_ops;
-       int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv);
-       int (*get_settings)(struct net_device *, struct ethtool_cmd *);
-diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
-index 3c0f131..17f8b02 100644
---- a/drivers/net/sis190.c
-+++ b/drivers/net/sis190.c
-@@ -1624,7 +1624,7 @@ static int __devinit sis190_get_mac_addr_from_eeprom(struct pci_dev *pdev,
- static int __devinit sis190_get_mac_addr_from_apc(struct pci_dev *pdev,
-                                                 struct net_device *dev)
- {
--      static const u16 __devinitdata ids[] = { 0x0965, 0x0966, 0x0968 };
-+      static const u16 __devinitconst ids[] = { 0x0965, 0x0966, 0x0968 };
-       struct sis190_private *tp = netdev_priv(dev);
-       struct pci_dev *isa_bridge;
-       u8 reg, tmp8;
-diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
-index 4793df8..44c9849 100644
---- a/drivers/net/sundance.c
-+++ b/drivers/net/sundance.c
-@@ -218,7 +218,7 @@ enum {
- struct pci_id_info {
-         const char *name;
- };
--static const struct pci_id_info pci_id_tbl[] __devinitdata = {
-+static const struct pci_id_info pci_id_tbl[] __devinitconst = {
-       {"D-Link DFE-550TX FAST Ethernet Adapter"},
-       {"D-Link DFE-550FX 100Mbps Fiber-optics Adapter"},
-       {"D-Link DFE-580TX 4 port Server Adapter"},
-diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h
-index 2ea456d..3ad9523 100644
---- a/drivers/net/tg3.h
-+++ b/drivers/net/tg3.h
-@@ -134,6 +134,7 @@
- #define  CHIPREV_ID_5750_A0            0x4000
- #define  CHIPREV_ID_5750_A1            0x4001
- #define  CHIPREV_ID_5750_A3            0x4003
-+#define  CHIPREV_ID_5750_C1            0x4201
- #define  CHIPREV_ID_5750_C2            0x4202
- #define  CHIPREV_ID_5752_A0_HW                 0x5000
- #define  CHIPREV_ID_5752_A0            0x6000
 diff --git a/drivers/net/tokenring/abyss.c b/drivers/net/tokenring/abyss.c
-index 515f122..41dd273 100644
+index b715e6b..6d2490f 100644
 --- a/drivers/net/tokenring/abyss.c
 +++ b/drivers/net/tokenring/abyss.c
-@@ -451,10 +451,12 @@ static struct pci_driver abyss_driver = {
+@@ -450,10 +450,12 @@ static struct pci_driver abyss_driver = {
  
  static int __init abyss_init (void)
  {
@@ -34137,10 +35289,10 @@ index 515f122..41dd273 100644
        return pci_register_driver(&abyss_driver);
  }
 diff --git a/drivers/net/tokenring/madgemc.c b/drivers/net/tokenring/madgemc.c
-index 6153cfd..cf69c1c 100644
+index 28adcdf..ae82f35 100644
 --- a/drivers/net/tokenring/madgemc.c
 +++ b/drivers/net/tokenring/madgemc.c
-@@ -744,9 +744,11 @@ static struct mca_driver madgemc_driver = {
+@@ -742,9 +742,11 @@ static struct mca_driver madgemc_driver = {
  
  static int __init madgemc_init (void)
  {
@@ -34156,10 +35308,10 @@ index 6153cfd..cf69c1c 100644
        return mca_register_driver (&madgemc_driver);
  }
 diff --git a/drivers/net/tokenring/proteon.c b/drivers/net/tokenring/proteon.c
-index 8d362e6..f91cc52 100644
+index 62d90e4..9d84237 100644
 --- a/drivers/net/tokenring/proteon.c
 +++ b/drivers/net/tokenring/proteon.c
-@@ -353,9 +353,11 @@ static int __init proteon_init(void)
+@@ -352,9 +352,11 @@ static int __init proteon_init(void)
        struct platform_device *pdev;
        int i, num = 0, err = 0;
  
@@ -34175,10 +35327,10 @@ index 8d362e6..f91cc52 100644
        err = platform_driver_register(&proteon_driver);
        if (err)
 diff --git a/drivers/net/tokenring/skisa.c b/drivers/net/tokenring/skisa.c
-index 46db5c5..37c1536 100644
+index ee11e93..c8f19c7 100644
 --- a/drivers/net/tokenring/skisa.c
 +++ b/drivers/net/tokenring/skisa.c
-@@ -363,9 +363,11 @@ static int __init sk_isa_init(void)
+@@ -362,9 +362,11 @@ static int __init sk_isa_init(void)
        struct platform_device *pdev;
        int i, num = 0, err = 0;
  
@@ -34193,69 +35345,8 @@ index 46db5c5..37c1536 100644
  
        err = platform_driver_register(&sk_isa_driver);
        if (err)
-diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c
-index ce90efc..2676f89 100644
---- a/drivers/net/tulip/de2104x.c
-+++ b/drivers/net/tulip/de2104x.c
-@@ -1795,6 +1795,8 @@ static void __devinit de21041_get_srom_info (struct de_private *de)
-       struct de_srom_info_leaf *il;
-       void *bufp;
-+      pax_track_stack();
-+
-       /* download entire eeprom */
-       for (i = 0; i < DE_EEPROM_WORDS; i++)
-               ((__le16 *)ee_data)[i] =
-diff --git a/drivers/net/tulip/de4x5.c b/drivers/net/tulip/de4x5.c
-index 959b410..c97fac2 100644
---- a/drivers/net/tulip/de4x5.c
-+++ b/drivers/net/tulip/de4x5.c
-@@ -5397,7 +5397,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
-       for (i=0; i<ETH_ALEN; i++) {
-           tmp.addr[i] = dev->dev_addr[i];
-       }
--      if (copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
-+      if (ioc->len > sizeof tmp.addr || copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
-       break;
-     case DE4X5_SET_HWADDR:           /* Set the hardware address */
-@@ -5437,7 +5437,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
-       spin_lock_irqsave(&lp->lock, flags);
-       memcpy(&statbuf, &lp->pktStats, ioc->len);
-       spin_unlock_irqrestore(&lp->lock, flags);
--      if (copy_to_user(ioc->data, &statbuf, ioc->len))
-+      if (ioc->len > sizeof statbuf || copy_to_user(ioc->data, &statbuf, ioc->len))
-               return -EFAULT;
-       break;
-     }
-diff --git a/drivers/net/tulip/eeprom.c b/drivers/net/tulip/eeprom.c
-index fa5eee9..e074432 100644
---- a/drivers/net/tulip/eeprom.c
-+++ b/drivers/net/tulip/eeprom.c
-@@ -81,7 +81,7 @@ static struct eeprom_fixup eeprom_fixups[] __devinitdata = {
-   {NULL}};
--static const char *block_name[] __devinitdata = {
-+static const char *block_name[] __devinitconst = {
-       "21140 non-MII",
-       "21140 MII PHY",
-       "21142 Serial PHY",
-diff --git a/drivers/net/tulip/winbond-840.c b/drivers/net/tulip/winbond-840.c
-index 862eadf..3eee1e6 100644
---- a/drivers/net/tulip/winbond-840.c
-+++ b/drivers/net/tulip/winbond-840.c
-@@ -236,7 +236,7 @@ struct pci_id_info {
-         int drv_flags;                /* Driver use, intended as capability flags. */
- };
--static const struct pci_id_info pci_id_tbl[] __devinitdata = {
-+static const struct pci_id_info pci_id_tbl[] __devinitconst = {
-       {                               /* Sometime a Level-One switch card. */
-         "Winbond W89c840",    CanHaveMII | HasBrokenTx | FDXOnNoMII},
-       { "Winbond W89c840",    CanHaveMII | HasBrokenTx},
 diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
-index 304fe78..db112fa 100644
+index 2d2a688..35f2372 100644
 --- a/drivers/net/usb/hso.c
 +++ b/drivers/net/usb/hso.c
 @@ -71,7 +71,7 @@
@@ -34354,173 +35445,11 @@ index 304fe78..db112fa 100644
                                result =
                                    hso_start_serial_device(serial_table[i], GFP_NOIO);
                                hso_kick_transmit(dev2ser(serial_table[i]));
-diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c
-index 27400ed..c796e05 100644
---- a/drivers/net/vmxnet3/vmxnet3_ethtool.c
-+++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c
-@@ -601,8 +601,7 @@ vmxnet3_set_rss_indir(struct net_device *netdev,
-                * Return with error code if any of the queue indices
-                * is out of range
-                */
--              if (p->ring_index[i] < 0 ||
--                  p->ring_index[i] >= adapter->num_rx_queues)
-+              if (p->ring_index[i] >= adapter->num_rx_queues)
-                       return -EINVAL;
-       }
-diff --git a/drivers/net/vxge/vxge-config.h b/drivers/net/vxge/vxge-config.h
-index dd36258..e47fd31 100644
---- a/drivers/net/vxge/vxge-config.h
-+++ b/drivers/net/vxge/vxge-config.h
-@@ -514,7 +514,7 @@ struct vxge_hw_uld_cbs {
-       void (*link_down)(struct __vxge_hw_device *devh);
-       void (*crit_err)(struct __vxge_hw_device *devh,
-                       enum vxge_hw_event type, u64 ext_data);
--};
-+} __no_const;
- /*
-  * struct __vxge_hw_blockpool_entry - Block private data structure
-diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
-index 178348a2..18bb433 100644
---- a/drivers/net/vxge/vxge-main.c
-+++ b/drivers/net/vxge/vxge-main.c
-@@ -100,6 +100,8 @@ static inline void VXGE_COMPLETE_VPATH_TX(struct vxge_fifo *fifo)
-       struct sk_buff *completed[NR_SKB_COMPLETED];
-       int more;
-+      pax_track_stack();
-+
-       do {
-               more = 0;
-               skb_ptr = completed;
-@@ -1915,6 +1917,8 @@ static enum vxge_hw_status vxge_rth_configure(struct vxgedev *vdev)
-       u8 mtable[256] = {0}; /* CPU to vpath mapping  */
-       int index;
-+      pax_track_stack();
-+
-       /*
-        * Filling
-        *      - itable with bucket numbers
-diff --git a/drivers/net/vxge/vxge-traffic.h b/drivers/net/vxge/vxge-traffic.h
-index 4a518a3..936b334 100644
---- a/drivers/net/vxge/vxge-traffic.h
-+++ b/drivers/net/vxge/vxge-traffic.h
-@@ -2088,7 +2088,7 @@ struct vxge_hw_mempool_cbs {
-                       struct vxge_hw_mempool_dma      *dma_object,
-                       u32                     index,
-                       u32                     is_last);
--};
-+} __no_const;
- #define VXGE_HW_VIRTUAL_PATH_HANDLE(vpath)                            \
-               ((struct __vxge_hw_vpath_handle *)(vpath)->vpath_handles.next)
-diff --git a/drivers/net/wan/hdlc_x25.c b/drivers/net/wan/hdlc_x25.c
-index 56aeb01..547f71f 100644
---- a/drivers/net/wan/hdlc_x25.c
-+++ b/drivers/net/wan/hdlc_x25.c
-@@ -134,16 +134,16 @@ static netdev_tx_t x25_xmit(struct sk_buff *skb, struct net_device *dev)
- static int x25_open(struct net_device *dev)
- {
--      struct lapb_register_struct cb;
-+      static struct lapb_register_struct cb = {
-+              .connect_confirmation = x25_connected,
-+              .connect_indication = x25_connected,
-+              .disconnect_confirmation = x25_disconnected,
-+              .disconnect_indication = x25_disconnected,
-+              .data_indication = x25_data_indication,
-+              .data_transmit = x25_data_transmit
-+      };
-       int result;
--      cb.connect_confirmation = x25_connected;
--      cb.connect_indication = x25_connected;
--      cb.disconnect_confirmation = x25_disconnected;
--      cb.disconnect_indication = x25_disconnected;
--      cb.data_indication = x25_data_indication;
--      cb.data_transmit = x25_data_transmit;
--
-       result = lapb_register(dev, &cb);
-       if (result != LAPB_OK)
-               return result;
-diff --git a/drivers/net/wimax/i2400m/usb-fw.c b/drivers/net/wimax/i2400m/usb-fw.c
-index 1fda46c..f2858f2 100644
---- a/drivers/net/wimax/i2400m/usb-fw.c
-+++ b/drivers/net/wimax/i2400m/usb-fw.c
-@@ -287,6 +287,8 @@ ssize_t i2400mu_bus_bm_wait_for_ack(struct i2400m *i2400m,
-       int do_autopm = 1;
-       DECLARE_COMPLETION_ONSTACK(notif_completion);
-+      pax_track_stack();
-+
-       d_fnstart(8, dev, "(i2400m %p ack %p size %zu)\n",
-                 i2400m, ack, ack_size);
-       BUG_ON(_ack == i2400m->bm_ack_buf);
-diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
-index e1b3e3c..e413f18 100644
---- a/drivers/net/wireless/airo.c
-+++ b/drivers/net/wireless/airo.c
-@@ -3003,6 +3003,8 @@ static void airo_process_scan_results (struct airo_info *ai) {
-       BSSListElement * loop_net;
-       BSSListElement * tmp_net;
-+      pax_track_stack();
-+
-       /* Blow away current list of scan results */
-       list_for_each_entry_safe (loop_net, tmp_net, &ai->network_list, list) {
-               list_move_tail (&loop_net->list, &ai->network_free_list);
-@@ -3794,6 +3796,8 @@ static u16 setup_card(struct airo_info *ai, u8 *mac, int lock)
-       WepKeyRid wkr;
-       int rc;
-+      pax_track_stack();
-+
-       memset( &mySsid, 0, sizeof( mySsid ) );
-       kfree (ai->flash);
-       ai->flash = NULL;
-@@ -4753,6 +4757,8 @@ static int proc_stats_rid_open( struct inode *inode,
-       __le32 *vals = stats.vals;
-       int len;
-+      pax_track_stack();
-+
-       if ((file->private_data = kzalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL)
-               return -ENOMEM;
-       data = file->private_data;
-@@ -5476,6 +5482,8 @@ static int proc_BSSList_open( struct inode *inode, struct file *file ) {
-       /* If doLoseSync is not 1, we won't do a Lose Sync */
-       int doLoseSync = -1;
-+      pax_track_stack();
-+
-       if ((file->private_data = kzalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL)
-               return -ENOMEM;
-       data = file->private_data;
-@@ -7181,6 +7189,8 @@ static int airo_get_aplist(struct net_device *dev,
-       int i;
-       int loseSync = capable(CAP_NET_ADMIN) ? 1: -1;
-+      pax_track_stack();
-+
-       qual = kmalloc(IW_MAX_AP * sizeof(*qual), GFP_KERNEL);
-       if (!qual)
-               return -ENOMEM;
-@@ -7741,6 +7751,8 @@ static void airo_read_wireless_stats(struct airo_info *local)
-       CapabilityRid cap_rid;
-       __le32 *vals = stats_rid.vals;
-+      pax_track_stack();
-+
-       /* Get stats out of the card */
-       clear_bit(JOB_WSTATS, &local->jobs);
-       if (local->power.event) {
 diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
-index 17c4b56..00d836f 100644
+index 420d69b..74f90a2 100644
 --- a/drivers/net/wireless/ath/ath.h
 +++ b/drivers/net/wireless/ath/ath.h
-@@ -121,6 +121,7 @@ struct ath_ops {
+@@ -119,6 +119,7 @@ struct ath_ops {
        void (*write_flush) (void *);
        u32 (*rmw)(void *, u32 reg_offset, u32 set, u32 clr);
  };
@@ -34528,175 +35457,216 @@ index 17c4b56..00d836f 100644
  
  struct ath_common;
  struct ath_bus_ops;
-diff --git a/drivers/net/wireless/ath/ath5k/debug.c b/drivers/net/wireless/ath/ath5k/debug.c
-index ccca724..7afbadc 100644
---- a/drivers/net/wireless/ath/ath5k/debug.c
-+++ b/drivers/net/wireless/ath/ath5k/debug.c
-@@ -203,6 +203,8 @@ static ssize_t read_file_beacon(struct file *file, char __user *user_buf,
-       unsigned int v;
-       u64 tsf;
-+      pax_track_stack();
-+
-       v = ath5k_hw_reg_read(ah, AR5K_BEACON);
-       len += snprintf(buf + len, sizeof(buf) - len,
-               "%-24s0x%08x\tintval: %d\tTIM: 0x%x\n",
-@@ -321,6 +323,8 @@ static ssize_t read_file_debug(struct file *file, char __user *user_buf,
-       unsigned int len = 0;
-       unsigned int i;
-+      pax_track_stack();
-+
-       len += snprintf(buf + len, sizeof(buf) - len,
-               "DEBUG LEVEL: 0x%08x\n\n", ah->debug.level);
-@@ -492,6 +496,8 @@ static ssize_t read_file_misc(struct file *file, char __user *user_buf,
-       unsigned int len = 0;
-       u32 filt = ath5k_hw_get_rx_filter(ah);
-+      pax_track_stack();
-+
-       len += snprintf(buf + len, sizeof(buf) - len, "bssid-mask: %pM\n",
-                       ah->bssidmask);
-       len += snprintf(buf + len, sizeof(buf) - len, "filter-flags: 0x%x ",
-@@ -548,6 +554,8 @@ static ssize_t read_file_frameerrors(struct file *file, char __user *user_buf,
-       unsigned int len = 0;
-       int i;
-+      pax_track_stack();
-+
-       len += snprintf(buf + len, sizeof(buf) - len,
-                       "RX\n---------------------\n");
-       len += snprintf(buf + len, sizeof(buf) - len, "CRC\t%u\t(%u%%)\n",
-@@ -665,6 +673,8 @@ static ssize_t read_file_ani(struct file *file, char __user *user_buf,
-       char buf[700];
-       unsigned int len = 0;
-+      pax_track_stack();
-+
-       len += snprintf(buf + len, sizeof(buf) - len,
-                       "HW has PHY error counters:\t%s\n",
-                       ah->ah_capabilities.cap_has_phyerr_counters ?
-@@ -829,6 +839,8 @@ static ssize_t read_file_queue(struct file *file, char __user *user_buf,
-       struct ath5k_buf *bf, *bf0;
-       int i, n;
-+      pax_track_stack();
-+
-       len += snprintf(buf + len, sizeof(buf) - len,
-                       "available txbuffers: %d\n", ah->txbuf_len);
-diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
-index 7c2aaad..ad14dee 100644
---- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c
-+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
-@@ -758,6 +758,8 @@ static void ar9003_hw_tx_iq_cal_post_proc(struct ath_hw *ah)
-       int i, im, j;
-       int nmeasurement;
-+      pax_track_stack();
-+
-       for (i = 0; i < AR9300_MAX_CHAINS; i++) {
-               if (ah->txchainmask & (1 << i))
-                       num_chains++;
-diff --git a/drivers/net/wireless/ath/ath9k/ar9003_paprd.c b/drivers/net/wireless/ath/ath9k/ar9003_paprd.c
-index f80d1d6..08b773d 100644
---- a/drivers/net/wireless/ath/ath9k/ar9003_paprd.c
-+++ b/drivers/net/wireless/ath/ath9k/ar9003_paprd.c
-@@ -406,6 +406,8 @@ static bool create_pa_curve(u32 *data_L, u32 *data_U, u32 *pa_table, u16 *gain)
-       int theta_low_bin = 0;
-       int i;
+diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
+index aa2abaf..5f5152d 100644
+--- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
++++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
+@@ -183,8 +183,8 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
+       ads->ds_txstatus6 = ads->ds_txstatus7 = 0;
+       ads->ds_txstatus8 = ads->ds_txstatus9 = 0;
+-      ACCESS_ONCE(ads->ds_link) = i->link;
+-      ACCESS_ONCE(ads->ds_data) = i->buf_addr[0];
++      ACCESS_ONCE_RW(ads->ds_link) = i->link;
++      ACCESS_ONCE_RW(ads->ds_data) = i->buf_addr[0];
+       ctl1 = i->buf_len[0] | (i->is_last ? 0 : AR_TxMore);
+       ctl6 = SM(i->keytype, AR_EncrType);
+@@ -198,26 +198,26 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
+       if ((i->is_first || i->is_last) &&
+           i->aggr != AGGR_BUF_MIDDLE && i->aggr != AGGR_BUF_LAST) {
+-              ACCESS_ONCE(ads->ds_ctl2) = set11nTries(i->rates, 0)
++              ACCESS_ONCE_RW(ads->ds_ctl2) = set11nTries(i->rates, 0)
+                       | set11nTries(i->rates, 1)
+                       | set11nTries(i->rates, 2)
+                       | set11nTries(i->rates, 3)
+                       | (i->dur_update ? AR_DurUpdateEna : 0)
+                       | SM(0, AR_BurstDur);
+-              ACCESS_ONCE(ads->ds_ctl3) = set11nRate(i->rates, 0)
++              ACCESS_ONCE_RW(ads->ds_ctl3) = set11nRate(i->rates, 0)
+                       | set11nRate(i->rates, 1)
+                       | set11nRate(i->rates, 2)
+                       | set11nRate(i->rates, 3);
+       } else {
+-              ACCESS_ONCE(ads->ds_ctl2) = 0;
+-              ACCESS_ONCE(ads->ds_ctl3) = 0;
++              ACCESS_ONCE_RW(ads->ds_ctl2) = 0;
++              ACCESS_ONCE_RW(ads->ds_ctl3) = 0;
+       }
+       if (!i->is_first) {
+-              ACCESS_ONCE(ads->ds_ctl0) = 0;
+-              ACCESS_ONCE(ads->ds_ctl1) = ctl1;
+-              ACCESS_ONCE(ads->ds_ctl6) = ctl6;
++              ACCESS_ONCE_RW(ads->ds_ctl0) = 0;
++              ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
++              ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
+               return;
+       }
  
-+      pax_track_stack();
-+
-       /* disregard any bin that contains <= 16 samples */
-       thresh_accum_cnt = 16;
-       scale_factor = 5;
-diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c
-index d1eb896..8b67cd4 100644
---- a/drivers/net/wireless/ath/ath9k/debug.c
-+++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -387,6 +387,8 @@ static ssize_t read_file_interrupt(struct file *file, char __user *user_buf,
-       char buf[512];
-       unsigned int len = 0;
-+      pax_track_stack();
-+
-       if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
-               len += snprintf(buf + len, sizeof(buf) - len,
-                       "%8s: %10u\n", "RXLP", sc->debug.stats.istats.rxlp);
-@@ -477,6 +479,8 @@ static ssize_t read_file_wiphy(struct file *file, char __user *user_buf,
-       u8 addr[ETH_ALEN];
-       u32 tmp;
-+      pax_track_stack();
-+
-       len += snprintf(buf + len, sizeof(buf) - len,
-                       "%s (chan=%d  center-freq: %d MHz  channel-type: %d (%s))\n",
-                       wiphy_name(sc->hw->wiphy),
-diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c b/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
-index d3ff33c..309398e 100644
---- a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
-+++ b/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
-@@ -31,6 +31,8 @@ static ssize_t read_file_tgt_int_stats(struct file *file, char __user *user_buf,
-       unsigned int len = 0;
-       int ret = 0;
+@@ -242,7 +242,7 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
+               break;
+       }
  
-+      pax_track_stack();
-+
-       memset(&cmd_rsp, 0, sizeof(cmd_rsp));
+-      ACCESS_ONCE(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
++      ACCESS_ONCE_RW(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
+               | (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
+               | SM(i->txpower, AR_XmitPower)
+               | (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
+@@ -252,19 +252,19 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
+               | (i->flags & ATH9K_TXDESC_RTSENA ? AR_RTSEnable :
+                  (i->flags & ATH9K_TXDESC_CTSENA ? AR_CTSEnable : 0));
  
-       ath9k_htc_ps_wakeup(priv);
-@@ -89,6 +91,8 @@ static ssize_t read_file_tgt_tx_stats(struct file *file, char __user *user_buf,
-       unsigned int len = 0;
-       int ret = 0;
+-      ACCESS_ONCE(ads->ds_ctl1) = ctl1;
+-      ACCESS_ONCE(ads->ds_ctl6) = ctl6;
++      ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
++      ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
  
-+      pax_track_stack();
-+
-       memset(&cmd_rsp, 0, sizeof(cmd_rsp));
+       if (i->aggr == AGGR_BUF_MIDDLE || i->aggr == AGGR_BUF_LAST)
+               return;
  
-       ath9k_htc_ps_wakeup(priv);
-@@ -159,6 +163,8 @@ static ssize_t read_file_tgt_rx_stats(struct file *file, char __user *user_buf,
-       unsigned int len = 0;
-       int ret = 0;
+-      ACCESS_ONCE(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
++      ACCESS_ONCE_RW(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
+               | set11nPktDurRTSCTS(i->rates, 1);
+-      ACCESS_ONCE(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
++      ACCESS_ONCE_RW(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
+               | set11nPktDurRTSCTS(i->rates, 3);
+-      ACCESS_ONCE(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
++      ACCESS_ONCE_RW(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
+               | set11nRateFlags(i->rates, 1)
+               | set11nRateFlags(i->rates, 2)
+               | set11nRateFlags(i->rates, 3)
+diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
+index a66a13b..0ef399e 100644
+--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
+@@ -39,47 +39,47 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
+             (i->qcu << AR_TxQcuNum_S) | desc_len;
+       checksum += val;
+-      ACCESS_ONCE(ads->info) = val;
++      ACCESS_ONCE_RW(ads->info) = val;
+       checksum += i->link;
+-      ACCESS_ONCE(ads->link) = i->link;
++      ACCESS_ONCE_RW(ads->link) = i->link;
+       checksum += i->buf_addr[0];
+-      ACCESS_ONCE(ads->data0) = i->buf_addr[0];
++      ACCESS_ONCE_RW(ads->data0) = i->buf_addr[0];
+       checksum += i->buf_addr[1];
+-      ACCESS_ONCE(ads->data1) = i->buf_addr[1];
++      ACCESS_ONCE_RW(ads->data1) = i->buf_addr[1];
+       checksum += i->buf_addr[2];
+-      ACCESS_ONCE(ads->data2) = i->buf_addr[2];
++      ACCESS_ONCE_RW(ads->data2) = i->buf_addr[2];
+       checksum += i->buf_addr[3];
+-      ACCESS_ONCE(ads->data3) = i->buf_addr[3];
++      ACCESS_ONCE_RW(ads->data3) = i->buf_addr[3];
+       checksum += (val = (i->buf_len[0] << AR_BufLen_S) & AR_BufLen);
+-      ACCESS_ONCE(ads->ctl3) = val;
++      ACCESS_ONCE_RW(ads->ctl3) = val;
+       checksum += (val = (i->buf_len[1] << AR_BufLen_S) & AR_BufLen);
+-      ACCESS_ONCE(ads->ctl5) = val;
++      ACCESS_ONCE_RW(ads->ctl5) = val;
+       checksum += (val = (i->buf_len[2] << AR_BufLen_S) & AR_BufLen);
+-      ACCESS_ONCE(ads->ctl7) = val;
++      ACCESS_ONCE_RW(ads->ctl7) = val;
+       checksum += (val = (i->buf_len[3] << AR_BufLen_S) & AR_BufLen);
+-      ACCESS_ONCE(ads->ctl9) = val;
++      ACCESS_ONCE_RW(ads->ctl9) = val;
+       checksum = (u16) (((checksum & 0xffff) + (checksum >> 16)) & 0xffff);
+-      ACCESS_ONCE(ads->ctl10) = checksum;
++      ACCESS_ONCE_RW(ads->ctl10) = checksum;
+       if (i->is_first || i->is_last) {
+-              ACCESS_ONCE(ads->ctl13) = set11nTries(i->rates, 0)
++              ACCESS_ONCE_RW(ads->ctl13) = set11nTries(i->rates, 0)
+                       | set11nTries(i->rates, 1)
+                       | set11nTries(i->rates, 2)
+                       | set11nTries(i->rates, 3)
+                       | (i->dur_update ? AR_DurUpdateEna : 0)
+                       | SM(0, AR_BurstDur);
+-              ACCESS_ONCE(ads->ctl14) = set11nRate(i->rates, 0)
++              ACCESS_ONCE_RW(ads->ctl14) = set11nRate(i->rates, 0)
+                       | set11nRate(i->rates, 1)
+                       | set11nRate(i->rates, 2)
+                       | set11nRate(i->rates, 3);
+       } else {
+-              ACCESS_ONCE(ads->ctl13) = 0;
+-              ACCESS_ONCE(ads->ctl14) = 0;
++              ACCESS_ONCE_RW(ads->ctl13) = 0;
++              ACCESS_ONCE_RW(ads->ctl14) = 0;
+       }
+       ads->ctl20 = 0;
+@@ -89,17 +89,17 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
+       ctl17 = SM(i->keytype, AR_EncrType);
+       if (!i->is_first) {
+-              ACCESS_ONCE(ads->ctl11) = 0;
+-              ACCESS_ONCE(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
+-              ACCESS_ONCE(ads->ctl15) = 0;
+-              ACCESS_ONCE(ads->ctl16) = 0;
+-              ACCESS_ONCE(ads->ctl17) = ctl17;
+-              ACCESS_ONCE(ads->ctl18) = 0;
+-              ACCESS_ONCE(ads->ctl19) = 0;
++              ACCESS_ONCE_RW(ads->ctl11) = 0;
++              ACCESS_ONCE_RW(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
++              ACCESS_ONCE_RW(ads->ctl15) = 0;
++              ACCESS_ONCE_RW(ads->ctl16) = 0;
++              ACCESS_ONCE_RW(ads->ctl17) = ctl17;
++              ACCESS_ONCE_RW(ads->ctl18) = 0;
++              ACCESS_ONCE_RW(ads->ctl19) = 0;
+               return;
+       }
  
-+      pax_track_stack();
-+
-       memset(&cmd_rsp, 0, sizeof(cmd_rsp));
+-      ACCESS_ONCE(ads->ctl11) = (i->pkt_len & AR_FrameLen)
++      ACCESS_ONCE_RW(ads->ctl11) = (i->pkt_len & AR_FrameLen)
+               | (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
+               | SM(i->txpower, AR_XmitPower)
+               | (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
+@@ -135,22 +135,22 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
+       val = (i->flags & ATH9K_TXDESC_PAPRD) >> ATH9K_TXDESC_PAPRD_S;
+       ctl12 |= SM(val, AR_PAPRDChainMask);
  
-       ath9k_htc_ps_wakeup(priv);
-@@ -203,6 +209,8 @@ static ssize_t read_file_xmit(struct file *file, char __user *user_buf,
-       char buf[512];
-       unsigned int len = 0;
+-      ACCESS_ONCE(ads->ctl12) = ctl12;
+-      ACCESS_ONCE(ads->ctl17) = ctl17;
++      ACCESS_ONCE_RW(ads->ctl12) = ctl12;
++      ACCESS_ONCE_RW(ads->ctl17) = ctl17;
  
-+      pax_track_stack();
-+
-       len += snprintf(buf + len, sizeof(buf) - len,
-                       "%20s : %10u\n", "Buffers queued",
-                       priv->debug.tx_stats.buf_queued);
-@@ -376,6 +384,8 @@ static ssize_t read_file_slot(struct file *file, char __user *user_buf,
-       char buf[512];
-       unsigned int len = 0;
+-      ACCESS_ONCE(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
++      ACCESS_ONCE_RW(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
+               | set11nPktDurRTSCTS(i->rates, 1);
  
-+      pax_track_stack();
-+
-       spin_lock_bh(&priv->tx.tx_lock);
+-      ACCESS_ONCE(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
++      ACCESS_ONCE_RW(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
+               | set11nPktDurRTSCTS(i->rates, 3);
  
-       len += snprintf(buf + len, sizeof(buf) - len, "TX slot bitmap : ");
-@@ -411,6 +421,8 @@ static ssize_t read_file_queue(struct file *file, char __user *user_buf,
-       char buf[512];
-       unsigned int len = 0;
+-      ACCESS_ONCE(ads->ctl18) = set11nRateFlags(i->rates, 0)
++      ACCESS_ONCE_RW(ads->ctl18) = set11nRateFlags(i->rates, 0)
+               | set11nRateFlags(i->rates, 1)
+               | set11nRateFlags(i->rates, 2)
+               | set11nRateFlags(i->rates, 3)
+               | SM(i->rtscts_rate, AR_RTSCTSRate);
  
-+      pax_track_stack();
-+
-       len += snprintf(buf + len, sizeof(buf) - len, "%20s : %10u\n",
-                       "Mgmt endpoint", skb_queue_len(&priv->tx.mgmt_ep_queue));
+-      ACCESS_ONCE(ads->ctl19) = AR_Not_Sounding;
++      ACCESS_ONCE_RW(ads->ctl19) = AR_Not_Sounding;
+ }
  
+ static u16 ar9003_calc_ptr_chksum(struct ar9003_txc *ads)
 diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
-index c798890..c19a8fb 100644
+index e88f182..4e57f5d 100644
 --- a/drivers/net/wireless/ath/ath9k/hw.h
 +++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -588,7 +588,7 @@ struct ath_hw_private_ops {
+@@ -614,7 +614,7 @@ struct ath_hw_private_ops {
  
        /* ANI */
        void (*ani_cache_ini_regs)(struct ath_hw *ah);
@@ -34705,7 +35675,7 @@ index c798890..c19a8fb 100644
  
  /**
   * struct ath_hw_ops - callbacks used by hardware code and driver code
-@@ -639,7 +639,7 @@ struct ath_hw_ops {
+@@ -644,7 +644,7 @@ struct ath_hw_ops {
        void (*antdiv_comb_conf_set)(struct ath_hw *ah,
                        struct ath_hw_antcomb_conf *antconf);
  
@@ -34714,8 +35684,8 @@ index c798890..c19a8fb 100644
  
  struct ath_nf_limits {
        s16 max;
-@@ -652,7 +652,7 @@ struct ath_nf_limits {
- #define AH_UNPLUGGED    0x2 /* The card has been physically removed. */
+@@ -664,7 +664,7 @@ enum ath_cal_list {
+ #define AH_FASTCC       0x4
  
  struct ath_hw {
 -      struct ath_ops reg_ops;
@@ -34723,133 +35693,39 @@ index c798890..c19a8fb 100644
  
        struct ieee80211_hw *hw;
        struct ath_common common;
-diff --git a/drivers/net/wireless/ipw2x00/ipw2100.c b/drivers/net/wireless/ipw2x00/ipw2100.c
-index ef9ad79..f5f8d80 100644
---- a/drivers/net/wireless/ipw2x00/ipw2100.c
-+++ b/drivers/net/wireless/ipw2x00/ipw2100.c
-@@ -2102,6 +2102,8 @@ static int ipw2100_set_essid(struct ipw2100_priv *priv, char *essid,
-       int err;
-       DECLARE_SSID_BUF(ssid);
-+      pax_track_stack();
-+
-       IPW_DEBUG_HC("SSID: '%s'\n", print_ssid(ssid, essid, ssid_len));
-       if (ssid_len)
-@@ -5451,6 +5453,8 @@ static int ipw2100_set_key(struct ipw2100_priv *priv,
-       struct ipw2100_wep_key *wep_key = (void *)cmd.host_command_parameters;
-       int err;
-+      pax_track_stack();
-+
-       IPW_DEBUG_HC("WEP_KEY_INFO: index = %d, len = %d/%d\n",
-                    idx, keylen, len);
+diff --git a/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_int.h b/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_int.h
+index af00e2c..ab04d34 100644
+--- a/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_int.h
++++ b/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_int.h
+@@ -545,7 +545,7 @@ struct phy_func_ptr {
+       void (*carrsuppr)(struct brcms_phy *);
+       s32 (*rxsigpwr)(struct brcms_phy *, s32);
+       void (*detach)(struct brcms_phy *);
+-};
++} __no_const;
  
-diff --git a/drivers/net/wireless/ipw2x00/libipw_rx.c b/drivers/net/wireless/ipw2x00/libipw_rx.c
-index 32a9966..de69787 100644
---- a/drivers/net/wireless/ipw2x00/libipw_rx.c
-+++ b/drivers/net/wireless/ipw2x00/libipw_rx.c
-@@ -1565,6 +1565,8 @@ static void libipw_process_probe_response(struct libipw_device
-       unsigned long flags;
-       DECLARE_SSID_BUF(ssid);
-+      pax_track_stack();
-+
-       LIBIPW_DEBUG_SCAN("'%s' (%pM"
-                    "): %c%c%c%c %c%c%c%c-%c%c%c%c %c%c%c%c\n",
-                    print_ssid(ssid, info_element->data, info_element->len),
-diff --git a/drivers/net/wireless/iwlegacy/iwl3945-base.c b/drivers/net/wireless/iwlegacy/iwl3945-base.c
-index 66ee1562..b90412b 100644
---- a/drivers/net/wireless/iwlegacy/iwl3945-base.c
-+++ b/drivers/net/wireless/iwlegacy/iwl3945-base.c
-@@ -3687,7 +3687,9 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
+ struct brcms_phy {
+       struct brcms_phy_pub pubpi_ro;
+diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
+index faec404..a5277f1 100644
+--- a/drivers/net/wireless/iwlegacy/3945-mac.c
++++ b/drivers/net/wireless/iwlegacy/3945-mac.c
+@@ -3611,7 +3611,9 @@ il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
         */
-       if (iwl3945_mod_params.disable_hw_scan) {
-               IWL_DEBUG_INFO(priv, "Disabling hw_scan\n");
--              iwl3945_hw_ops.hw_scan = NULL;
+       if (il3945_mod_params.disable_hw_scan) {
+               D_INFO("Disabling hw_scan\n");
+-              il3945_mac_ops.hw_scan = NULL;
 +              pax_open_kernel();
-+              *(void **)&iwl3945_hw_ops.hw_scan = NULL;
++              *(void **)&il3945_mac_ops.hw_scan = NULL;
 +              pax_close_kernel();
        }
  
-       IWL_DEBUG_INFO(priv, "*** LOAD DRIVER ***\n");
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
-index 3789ff4..22ab151 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
-@@ -920,6 +920,8 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband,
-       struct iwl_station_priv *sta_priv = (void *)sta->drv_priv;
-       struct iwl_rxon_context *ctx = sta_priv->common.ctx;
-+      pax_track_stack();
-+
-       IWL_DEBUG_RATE_LIMIT(priv, "get frame ack response, update rate scale window\n");
-       /* Treat uninitialized rate scaling data same as non-existing. */
-@@ -2931,6 +2933,8 @@ static void rs_fill_link_cmd(struct iwl_priv *priv,
-               container_of(lq_sta, struct iwl_station_priv, lq_sta);
-       struct iwl_link_quality_cmd *lq_cmd = &lq_sta->lq;
-+      pax_track_stack();
-+
-       /* Override starting rate (index 0) if needed for debug purposes */
-       rs_dbgfs_set_mcs(lq_sta, &new_rate, index);
-diff --git a/drivers/net/wireless/iwlwifi/iwl-debug.h b/drivers/net/wireless/iwlwifi/iwl-debug.h
-index f9a407e..a6f2bb7 100644
---- a/drivers/net/wireless/iwlwifi/iwl-debug.h
-+++ b/drivers/net/wireless/iwlwifi/iwl-debug.h
-@@ -68,8 +68,8 @@ do {                                                                 \
- } while (0)
- #else
--#define IWL_DEBUG(__priv, level, fmt, args...)
--#define IWL_DEBUG_LIMIT(__priv, level, fmt, args...)
-+#define IWL_DEBUG(__priv, level, fmt, args...) do {} while (0)
-+#define IWL_DEBUG_LIMIT(__priv, level, fmt, args...) do {} while (0)
- static inline void iwl_print_hex_dump(struct iwl_priv *priv, int level,
-                                     const void *p, u32 len)
- {}
-diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
-index ec1485b..900c3bd 100644
---- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
-@@ -561,6 +561,8 @@ static ssize_t iwl_dbgfs_status_read(struct file *file,
-       int pos = 0;
-       const size_t bufsz = sizeof(buf);
-+      pax_track_stack();
-+
-       pos += scnprintf(buf + pos, bufsz - pos, "STATUS_HCMD_ACTIVE:\t %d\n",
-               test_bit(STATUS_HCMD_ACTIVE, &priv->status));
-       pos += scnprintf(buf + pos, bufsz - pos, "STATUS_INT_ENABLED:\t %d\n",
-@@ -693,6 +695,8 @@ static ssize_t iwl_dbgfs_qos_read(struct file *file, char __user *user_buf,
-       char buf[256 * NUM_IWL_RXON_CTX];
-       const size_t bufsz = sizeof(buf);
-+      pax_track_stack();
-+
-       for_each_context(priv, ctx) {
-               pos += scnprintf(buf + pos, bufsz - pos, "context %d:\n",
-                                ctx->ctxid);
-diff --git a/drivers/net/wireless/iwmc3200wifi/debugfs.c b/drivers/net/wireless/iwmc3200wifi/debugfs.c
-index 0a0cc96..fd49ad8 100644
---- a/drivers/net/wireless/iwmc3200wifi/debugfs.c
-+++ b/drivers/net/wireless/iwmc3200wifi/debugfs.c
-@@ -327,6 +327,8 @@ static ssize_t iwm_debugfs_fw_err_read(struct file *filp,
-       int buf_len = 512;
-       size_t len = 0;
-+      pax_track_stack();
-+
-       if (*ppos != 0)
-               return 0;
-       if (count < sizeof(buf))
+       D_INFO("*** LOAD DRIVER ***\n");
 diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
-index 031cd89..bdc8435 100644
+index b7ce6a6..5649756 100644
 --- a/drivers/net/wireless/mac80211_hwsim.c
 +++ b/drivers/net/wireless/mac80211_hwsim.c
-@@ -1670,9 +1670,11 @@ static int __init init_mac80211_hwsim(void)
+@@ -1721,9 +1721,11 @@ static int __init init_mac80211_hwsim(void)
                return -EINVAL;
  
        if (fake_hw_scan) {
@@ -34865,23 +35741,23 @@ index 031cd89..bdc8435 100644
  
        spin_lock_init(&hwsim_radio_lock);
 diff --git a/drivers/net/wireless/mwifiex/main.h b/drivers/net/wireless/mwifiex/main.h
-index 2215c3c..64e6a47 100644
+index 35225e9..95e6bf9 100644
 --- a/drivers/net/wireless/mwifiex/main.h
 +++ b/drivers/net/wireless/mwifiex/main.h
-@@ -560,7 +560,7 @@ struct mwifiex_if_ops {
-       void (*update_mp_end_port) (struct mwifiex_adapter *, u16);
+@@ -537,7 +537,7 @@ struct mwifiex_if_ops {
        void (*cleanup_mpa_buf) (struct mwifiex_adapter *);
+       int (*cmdrsp_complete) (struct mwifiex_adapter *, struct sk_buff *);
+       int (*event_complete) (struct mwifiex_adapter *, struct sk_buff *);
 -};
 +} __no_const;
  
  struct mwifiex_adapter {
-       struct mwifiex_private *priv[MWIFIEX_MAX_BSS_NUM];
+       u8 iface_type;
 diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
-index 29f9389..f6d2ce0 100644
+index d66e298..55b0a89 100644
 --- a/drivers/net/wireless/rndis_wlan.c
 +++ b/drivers/net/wireless/rndis_wlan.c
-@@ -1277,7 +1277,7 @@ static int set_rts_threshold(struct usbnet *usbdev, u32 rts_threshold)
+@@ -1278,7 +1278,7 @@ static int set_rts_threshold(struct usbnet *usbdev, u32 rts_threshold)
  
        netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold);
  
@@ -34890,21 +35766,37 @@ index 29f9389..f6d2ce0 100644
                rts_threshold = 2347;
  
        tmp = cpu_to_le32(rts_threshold);
-diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
-index 3b11642..d6bb049 100644
---- a/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
-@@ -837,6 +837,8 @@ bool _rtl92c_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
-       u8 rfpath;
-       u8 num_total_rfpath = rtlphy->num_total_rfpath;
-+      pax_track_stack();
-+
-       precommoncmdcnt = 0;
-       _rtl92c_phy_set_sw_chnl_cmdarray(precommoncmd, precommoncmdcnt++,
-                                        MAX_PRECMD_CNT,
+diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
+index c264dfa..08ee30e 100644
+--- a/drivers/net/wireless/rt2x00/rt2x00.h
++++ b/drivers/net/wireless/rt2x00/rt2x00.h
+@@ -396,7 +396,7 @@ struct rt2x00_intf {
+        * for hardware which doesn't support hardware
+        * sequence counting.
+        */
+-      atomic_t seqno;
++      atomic_unchecked_t seqno;
+ };
+ static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
+diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
+index 50f92d5..f3afc41 100644
+--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
++++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
+@@ -229,9 +229,9 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
+        * sequence counter given by mac80211.
+        */
+       if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags))
+-              seqno = atomic_add_return(0x10, &intf->seqno);
++              seqno = atomic_add_return_unchecked(0x10, &intf->seqno);
+       else
+-              seqno = atomic_read(&intf->seqno);
++              seqno = atomic_read_unchecked(&intf->seqno);
+       hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
+       hdr->seq_ctrl |= cpu_to_le16(seqno);
 diff --git a/drivers/net/wireless/wl1251/wl1251.h b/drivers/net/wireless/wl1251/wl1251.h
-index a77f1bb..c608b2b 100644
+index 9d8f581..0f6589e 100644
 --- a/drivers/net/wireless/wl1251/wl1251.h
 +++ b/drivers/net/wireless/wl1251/wl1251.h
 @@ -266,7 +266,7 @@ struct wl1251_if_operations {
@@ -34916,19 +35808,6 @@ index a77f1bb..c608b2b 100644
  
  struct wl1251 {
        struct ieee80211_hw *hw;
-diff --git a/drivers/net/wireless/wl12xx/spi.c b/drivers/net/wireless/wl12xx/spi.c
-index e0b3736..4b466e6 100644
---- a/drivers/net/wireless/wl12xx/spi.c
-+++ b/drivers/net/wireless/wl12xx/spi.c
-@@ -281,6 +281,8 @@ static void wl1271_spi_raw_write(struct wl1271 *wl, int addr, void *buf,
-       u32 chunk_len;
-       int i;
-+      pax_track_stack();
-+
-       WARN_ON(len > WL1271_AGGR_BUFFER_SIZE);
-       spi_message_init(&m);
 diff --git a/drivers/oprofile/buffer_sync.c b/drivers/oprofile/buffer_sync.c
 index f34b5b2..b5abb9f 100644
 --- a/drivers/oprofile/buffer_sync.c
@@ -34969,7 +35848,7 @@ index f34b5b2..b5abb9f 100644
        }
        release_mm(mm);
 diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c
-index dd87e86..bc0148c 100644
+index c0cc4e7..44d4e54 100644
 --- a/drivers/oprofile/event_buffer.c
 +++ b/drivers/oprofile/event_buffer.c
 @@ -53,7 +53,7 @@ void add_event_entry(unsigned long value)
@@ -34982,7 +35861,7 @@ index dd87e86..bc0148c 100644
        }
  
 diff --git a/drivers/oprofile/oprof.c b/drivers/oprofile/oprof.c
-index f8c752e..28bf4fc 100644
+index ed2c3ec..deda85a 100644
 --- a/drivers/oprofile/oprof.c
 +++ b/drivers/oprofile/oprof.c
 @@ -110,7 +110,7 @@ static void switch_worker(struct work_struct *work)
@@ -35037,10 +35916,10 @@ index 38b6fc0..b5cbfce 100644
  
  extern struct oprofile_stat_struct oprofile_stats;
 diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c
-index e9ff6f7..28e259a 100644
+index 849357c..b83c1e0 100644
 --- a/drivers/oprofile/oprofilefs.c
 +++ b/drivers/oprofile/oprofilefs.c
-@@ -186,7 +186,7 @@ static const struct file_operations atomic_ro_fops = {
+@@ -185,7 +185,7 @@ static const struct file_operations atomic_ro_fops = {
  
  
  int oprofilefs_create_ro_atomic(struct super_block *sb, struct dentry *root,
@@ -35103,7 +35982,7 @@ index 76ba8a1..20ca857 100644
  
        /* initialize our int15 lock */
 diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
-index cbfbab1..6a9fced 100644
+index b500840..d7159d3 100644
 --- a/drivers/pci/pcie/aspm.c
 +++ b/drivers/pci/pcie/aspm.c
 @@ -27,9 +27,9 @@
@@ -35120,12 +35999,12 @@ index cbfbab1..6a9fced 100644
  #define ASPM_STATE_ALL                (ASPM_STATE_L0S | ASPM_STATE_L1)
  
 diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
-index 6ab6bd3..72bdc69 100644
+index 5e1ca3c..08082fe 100644
 --- a/drivers/pci/probe.c
 +++ b/drivers/pci/probe.c
-@@ -136,7 +136,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
-       u32 l, sz, mask;
+@@ -215,7 +215,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
        u16 orig_cmd;
+       struct pci_bus_region region;
  
 -      mask = type ? PCI_ROM_ADDRESS_MASK : ~0;
 +      mask = type ? (u32)PCI_ROM_ADDRESS_MASK : ~0;
@@ -35153,57 +36032,8 @@ index 27911b5..5b6db88 100644
        proc_create("devices", 0, proc_bus_pci_dir,
                    &proc_bus_pci_dev_operations);
        proc_initialized = 1;
-diff --git a/drivers/pci/xen-pcifront.c b/drivers/pci/xen-pcifront.c
-index 90832a9..419089a 100644
---- a/drivers/pci/xen-pcifront.c
-+++ b/drivers/pci/xen-pcifront.c
-@@ -187,6 +187,8 @@ static int pcifront_bus_read(struct pci_bus *bus, unsigned int devfn,
-       struct pcifront_sd *sd = bus->sysdata;
-       struct pcifront_device *pdev = pcifront_get_pdev(sd);
-+      pax_track_stack();
-+
-       if (verbose_request)
-               dev_info(&pdev->xdev->dev,
-                        "read dev=%04x:%02x:%02x.%01x - offset %x size %d\n",
-@@ -226,6 +228,8 @@ static int pcifront_bus_write(struct pci_bus *bus, unsigned int devfn,
-       struct pcifront_sd *sd = bus->sysdata;
-       struct pcifront_device *pdev = pcifront_get_pdev(sd);
-+      pax_track_stack();
-+
-       if (verbose_request)
-               dev_info(&pdev->xdev->dev,
-                        "write dev=%04x:%02x:%02x.%01x - "
-@@ -258,6 +262,8 @@ static int pci_frontend_enable_msix(struct pci_dev *dev,
-       struct pcifront_device *pdev = pcifront_get_pdev(sd);
-       struct msi_desc *entry;
-+      pax_track_stack();
-+
-       if (nvec > SH_INFO_MAX_VEC) {
-               dev_err(&dev->dev, "too much vector for pci frontend: %x."
-                                  " Increase SH_INFO_MAX_VEC.\n", nvec);
-@@ -309,6 +315,8 @@ static void pci_frontend_disable_msix(struct pci_dev *dev)
-       struct pcifront_sd *sd = dev->bus->sysdata;
-       struct pcifront_device *pdev = pcifront_get_pdev(sd);
-+      pax_track_stack();
-+
-       err = do_pci_op(pdev, &op);
-       /* What should do for error ? */
-@@ -328,6 +336,8 @@ static int pci_frontend_enable_msi(struct pci_dev *dev, int vector[])
-       struct pcifront_sd *sd = dev->bus->sysdata;
-       struct pcifront_device *pdev = pcifront_get_pdev(sd);
-+      pax_track_stack();
-+
-       err = do_pci_op(pdev, &op);
-       if (likely(!err)) {
-               vector[0] = op.value;
 diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
-index 7bd829f..a3237ad 100644
+index d68c000..f6094ca 100644
 --- a/drivers/platform/x86/thinkpad_acpi.c
 +++ b/drivers/platform/x86/thinkpad_acpi.c
 @@ -2094,7 +2094,7 @@ static int hotkey_mask_get(void)
@@ -35335,10 +36165,10 @@ index 7bd829f..a3237ad 100644
  /*
   * Polling driver
 diff --git a/drivers/pnp/pnpbios/bioscalls.c b/drivers/pnp/pnpbios/bioscalls.c
-index b859d16..5cc6b1a 100644
+index 769d265..a3a05ca 100644
 --- a/drivers/pnp/pnpbios/bioscalls.c
 +++ b/drivers/pnp/pnpbios/bioscalls.c
-@@ -59,7 +59,7 @@ do { \
+@@ -58,7 +58,7 @@ do { \
        set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \
  } while(0)
  
@@ -35347,7 +36177,7 @@ index b859d16..5cc6b1a 100644
                        (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1);
  
  /*
-@@ -96,7 +96,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
+@@ -95,7 +95,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
  
        cpu = get_cpu();
        save_desc_40 = get_cpu_gdt_table(cpu)[0x40 / 8];
@@ -35358,7 +36188,7 @@ index b859d16..5cc6b1a 100644
  
        /* On some boxes IRQ's during PnP BIOS calls are deadly.  */
        spin_lock_irqsave(&pnp_bios_lock, flags);
-@@ -134,7 +137,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
+@@ -133,7 +136,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
                             :"memory");
        spin_unlock_irqrestore(&pnp_bios_lock, flags);
  
@@ -35369,7 +36199,7 @@ index b859d16..5cc6b1a 100644
        put_cpu();
  
        /* If we get here and this is set then the PnP BIOS faulted on us. */
-@@ -468,7 +474,7 @@ int pnp_bios_read_escd(char *data, u32 nvram_base)
+@@ -467,7 +473,7 @@ int pnp_bios_read_escd(char *data, u32 nvram_base)
        return status;
  }
  
@@ -35378,7 +36208,7 @@ index b859d16..5cc6b1a 100644
  {
        int i;
  
-@@ -476,6 +482,8 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
+@@ -475,6 +481,8 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
        pnp_bios_callpoint.offset = header->fields.pm16offset;
        pnp_bios_callpoint.segment = PNP_CS16;
  
@@ -35387,7 +36217,7 @@ index b859d16..5cc6b1a 100644
        for_each_possible_cpu(i) {
                struct desc_struct *gdt = get_cpu_gdt_table(i);
                if (!gdt)
-@@ -487,4 +495,6 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
+@@ -486,4 +494,6 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
                set_desc_base(&gdt[GDT_ENTRY_PNPBIOS_DS],
                         (unsigned long)__va(header->fields.pm16dseg));
        }
@@ -35417,10 +36247,10 @@ index b0ecacb..7c9da2e 100644
  
        /* check if the resource is reserved */
 diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c
-index bb16f5b..c751eef 100644
+index 222ccd8..6275fa5 100644
 --- a/drivers/power/bq27x00_battery.c
 +++ b/drivers/power/bq27x00_battery.c
-@@ -67,7 +67,7 @@
+@@ -72,7 +72,7 @@
  struct bq27x00_device_info;
  struct bq27x00_access_methods {
        int (*read)(struct bq27x00_device_info *di, u8 reg, bool single);
@@ -35430,10 +36260,10 @@ index bb16f5b..c751eef 100644
  enum bq27x00_chip { BQ27000, BQ27500 };
  
 diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
-index 33f5d9a..d957d3f 100644
+index 4c5b053..104263e 100644
 --- a/drivers/regulator/max8660.c
 +++ b/drivers/regulator/max8660.c
-@@ -383,8 +383,10 @@ static int __devinit max8660_probe(struct i2c_client *client,
+@@ -385,8 +385,10 @@ static int __devinit max8660_probe(struct i2c_client *client,
                max8660->shadow_regs[MAX8660_OVER1] = 5;
        } else {
                /* Otherwise devices can be toggled via software */
@@ -35447,10 +36277,10 @@ index 33f5d9a..d957d3f 100644
  
        /*
 diff --git a/drivers/regulator/mc13892-regulator.c b/drivers/regulator/mc13892-regulator.c
-index 3285d41..ab7c22a 100644
+index 845aa22..99ec402 100644
 --- a/drivers/regulator/mc13892-regulator.c
 +++ b/drivers/regulator/mc13892-regulator.c
-@@ -564,10 +564,12 @@ static int __devinit mc13892_regulator_probe(struct platform_device *pdev)
+@@ -574,10 +574,12 @@ static int __devinit mc13892_regulator_probe(struct platform_device *pdev)
        }
        mc13xxx_unlock(mc13892);
  
@@ -35462,9 +36292,9 @@ index 3285d41..ab7c22a 100644
 +      *(void **)&mc13892_regulators[MC13892_VCAM].desc.ops->get_mode
                = mc13892_vcam_get_mode;
 +      pax_close_kernel();
-       for (i = 0; i < pdata->num_regulators; i++) {
-               init_data = &pdata->regulators[i];
-               priv->regulators[i] = regulator_register(
+       mc13xxx_data = mc13xxx_parse_regulators_dt(pdev, mc13892_regulators,
+                                       ARRAY_SIZE(mc13892_regulators));
 diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c
 index cace6d3..f623fda 100644
 --- a/drivers/rtc/rtc-dev.c
@@ -35486,21 +36316,8 @@ index cace6d3..f623fda 100644
                return rtc_set_time(rtc, &tm);
  
        case RTC_PIE_ON:
-diff --git a/drivers/scsi/BusLogic.c b/drivers/scsi/BusLogic.c
-index f66c33b..7ae5823 100644
---- a/drivers/scsi/BusLogic.c
-+++ b/drivers/scsi/BusLogic.c
-@@ -962,6 +962,8 @@ static int __init BusLogic_InitializeFlashPointProbeInfo(struct BusLogic_HostAda
- static void __init BusLogic_InitializeProbeInfoList(struct BusLogic_HostAdapter
-                                                   *PrototypeHostAdapter)
- {
-+      pax_track_stack();
-+
-       /*
-          If a PCI BIOS is present, interrogate it for MultiMaster and FlashPoint
-          Host Adapters; otherwise, default to the standard ISA MultiMaster probe.
 diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
-index ffb5878..e6d785c 100644
+index 3fcf627..f334910 100644
 --- a/drivers/scsi/aacraid/aacraid.h
 +++ b/drivers/scsi/aacraid/aacraid.h
 @@ -492,7 +492,7 @@ struct adapter_ops
@@ -35512,20 +36329,8 @@ index ffb5878..e6d785c 100644
  
  /*
   *    Define which interrupt handler needs to be installed
-diff --git a/drivers/scsi/aacraid/commctrl.c b/drivers/scsi/aacraid/commctrl.c
-index 8a0b330..b4286de 100644
---- a/drivers/scsi/aacraid/commctrl.c
-+++ b/drivers/scsi/aacraid/commctrl.c
-@@ -482,6 +482,7 @@ static int aac_send_raw_srb(struct aac_dev* dev, void __user * arg)
-       u32 actual_fibsize64, actual_fibsize = 0;
-       int i;
-+      pax_track_stack();
-       if (dev->in_reset) {
-               dprintk((KERN_DEBUG"aacraid: send raw srb -EBUSY\n"));
 diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
-index c7b6fed..4db0569 100644
+index 0d279c44..3d25a97 100644
 --- a/drivers/scsi/aacraid/linit.c
 +++ b/drivers/scsi/aacraid/linit.c
 @@ -93,7 +93,7 @@ static DECLARE_PCI_DEVICE_TABLE(aac_pci_tbl) = {
@@ -35538,11 +36343,11 @@ index c7b6fed..4db0569 100644
        { 0x1028, 0x0001, 0x1028, 0x0001, 0, 0, 0 }, /* PERC 2/Si (Iguana/PERC2Si) */
        { 0x1028, 0x0002, 0x1028, 0x0002, 0, 0, 1 }, /* PERC 3/Di (Opal/PERC3Di) */
 diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
-index d5ff142..49c0ebb 100644
+index ff80552..1c4120c 100644
 --- a/drivers/scsi/aic94xx/aic94xx_init.c
 +++ b/drivers/scsi/aic94xx/aic94xx_init.c
 @@ -1012,7 +1012,7 @@ static struct sas_domain_function_template aic94xx_transport_functions = {
-       .lldd_control_phy       = asd_control_phy,
+       .lldd_ata_set_dmamode   = asd_set_dmamode,
  };
  
 -static const struct pci_device_id aic94xx_pci_table[] __devinitdata = {
@@ -35551,7 +36356,7 @@ index d5ff142..49c0ebb 100644
        {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x412),0, 0, 1},
        {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x416),0, 0, 1},
 diff --git a/drivers/scsi/bfa/bfa.h b/drivers/scsi/bfa/bfa.h
-index a796de9..1ef20e1 100644
+index 4ad7e36..d004679 100644
 --- a/drivers/scsi/bfa/bfa.h
 +++ b/drivers/scsi/bfa/bfa.h
 @@ -196,7 +196,7 @@ struct bfa_hwif_s {
@@ -35564,10 +36369,19 @@ index a796de9..1ef20e1 100644
  
  struct bfa_faa_cbfn_s {
 diff --git a/drivers/scsi/bfa/bfa_fcpim.c b/drivers/scsi/bfa/bfa_fcpim.c
-index e07bd47..dbd260a 100644
+index f0f80e2..8ec946b 100644
 --- a/drivers/scsi/bfa/bfa_fcpim.c
 +++ b/drivers/scsi/bfa/bfa_fcpim.c
-@@ -4179,7 +4179,7 @@ bfa_itn_create(struct bfa_s *bfa, struct bfa_rport_s *rport,
+@@ -3715,7 +3715,7 @@ bfa_fcp_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
+       bfa_iotag_attach(fcp);
+-      fcp->itn_arr = (struct bfa_itn_s *) bfa_mem_kva_curp(fcp);
++      fcp->itn_arr = (bfa_itn_s_no_const *) bfa_mem_kva_curp(fcp);
+       bfa_mem_kva_curp(fcp) = (u8 *)fcp->itn_arr +
+                       (fcp->num_itns * sizeof(struct bfa_itn_s));
+       memset(fcp->itn_arr, 0,
+@@ -3773,7 +3773,7 @@ bfa_itn_create(struct bfa_s *bfa, struct bfa_rport_s *rport,
                void (*isr)(struct bfa_s *bfa, struct bfi_msg_s *m))
  {
        struct bfa_fcp_mod_s *fcp = BFA_FCP_MOD(bfa);
@@ -35577,7 +36391,7 @@ index e07bd47..dbd260a 100644
        itn =  BFA_ITN_FROM_TAG(fcp, rport->rport_tag);
        itn->isr = isr;
 diff --git a/drivers/scsi/bfa/bfa_fcpim.h b/drivers/scsi/bfa/bfa_fcpim.h
-index 1080bcb..a3b39e3 100644
+index 36f26da..38a34a8 100644
 --- a/drivers/scsi/bfa/bfa_fcpim.h
 +++ b/drivers/scsi/bfa/bfa_fcpim.h
 @@ -37,6 +37,7 @@ struct bfa_iotag_s {
@@ -35588,7 +36402,7 @@ index 1080bcb..a3b39e3 100644
  
  void bfa_itn_create(struct bfa_s *bfa, struct bfa_rport_s *rport,
                void (*isr)(struct bfa_s *bfa, struct bfi_msg_s *m));
-@@ -149,7 +150,7 @@ struct bfa_fcp_mod_s {
+@@ -147,7 +148,7 @@ struct bfa_fcp_mod_s {
        struct list_head        iotag_tio_free_q;       /* free IO resources */
        struct list_head        iotag_unused_q; /* unused IO resources*/
        struct bfa_iotag_s      *iotag_arr;
@@ -35597,43 +36411,8 @@ index 1080bcb..a3b39e3 100644
        int                     num_ioim_reqs;
        int                     num_fwtio_reqs;
        int                     num_itns;
-diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
-index d4f951f..197c350 100644
---- a/drivers/scsi/bfa/bfa_fcs_lport.c
-+++ b/drivers/scsi/bfa/bfa_fcs_lport.c
-@@ -1700,6 +1700,8 @@ bfa_fcs_lport_fdmi_build_rhba_pyld(struct bfa_fcs_lport_fdmi_s *fdmi, u8 *pyld)
-       u16        len, count;
-       u16     templen;
-+      pax_track_stack();
-+
-       /*
-        * get hba attributes
-        */
-@@ -1977,6 +1979,8 @@ bfa_fcs_lport_fdmi_build_portattr_block(struct bfa_fcs_lport_fdmi_s *fdmi,
-       u8      count = 0;
-       u16     templen;
-+      pax_track_stack();
-+
-       /*
-        * get port attributes
-        */
-diff --git a/drivers/scsi/bfa/bfa_fcs_rport.c b/drivers/scsi/bfa/bfa_fcs_rport.c
-index 52628d5..f89d033 100644
---- a/drivers/scsi/bfa/bfa_fcs_rport.c
-+++ b/drivers/scsi/bfa/bfa_fcs_rport.c
-@@ -1871,6 +1871,8 @@ bfa_fcs_rport_process_rpsc(struct bfa_fcs_rport_s *rport,
-       struct fc_rpsc_speed_info_s speeds;
-       struct bfa_port_attr_s pport_attr;
-+      pax_track_stack();
-+
-       bfa_trc(port->fcs, rx_fchs->s_id);
-       bfa_trc(port->fcs, rx_fchs->d_id);
 diff --git a/drivers/scsi/bfa/bfa_ioc.h b/drivers/scsi/bfa/bfa_ioc.h
-index 546d46b..642fa5b 100644
+index 1a99d4b..e85d64b 100644
 --- a/drivers/scsi/bfa/bfa_ioc.h
 +++ b/drivers/scsi/bfa/bfa_ioc.h
 @@ -258,7 +258,7 @@ struct bfa_ioc_cbfn_s {
@@ -35654,133 +36433,8 @@ index 546d46b..642fa5b 100644
  
  /*
   * Queue element to wait for room in request queue. FIFO order is
-diff --git a/drivers/scsi/bfa/bfad.c b/drivers/scsi/bfa/bfad.c
-index 66fb725..0fe05ab 100644
---- a/drivers/scsi/bfa/bfad.c
-+++ b/drivers/scsi/bfa/bfad.c
-@@ -1019,6 +1019,8 @@ bfad_start_ops(struct bfad_s *bfad) {
-       struct bfad_vport_s *vport, *vport_new;
-       struct bfa_fcs_driver_info_s driver_info;
-+      pax_track_stack();
-+
-       /* Limit min/max. xfer size to [64k-32MB] */
-       if (max_xfer_size < BFAD_MIN_SECTORS >> 1)
-               max_xfer_size = BFAD_MIN_SECTORS >> 1;
-diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c
-index b4f6c9a..0eb1938 100644
---- a/drivers/scsi/dpt_i2o.c
-+++ b/drivers/scsi/dpt_i2o.c
-@@ -1811,6 +1811,8 @@ static int adpt_i2o_passthru(adpt_hba* pHba, u32 __user *arg)
-       dma_addr_t addr;
-       ulong flags = 0;
-+      pax_track_stack();
-+
-       memset(&msg, 0, MAX_MESSAGE_SIZE*4);
-       // get user msg size in u32s 
-       if(get_user(size, &user_msg[0])){
-@@ -2317,6 +2319,8 @@ static s32 adpt_scsi_to_i2o(adpt_hba* pHba, struct scsi_cmnd* cmd, struct adpt_d
-       s32 rcode;
-       dma_addr_t addr;
-+      pax_track_stack();
-+
-       memset(msg, 0 , sizeof(msg));
-       len = scsi_bufflen(cmd);
-       direction = 0x00000000; 
-diff --git a/drivers/scsi/eata.c b/drivers/scsi/eata.c
-index 94de889..ca4f0cf 100644
---- a/drivers/scsi/eata.c
-+++ b/drivers/scsi/eata.c
-@@ -1087,6 +1087,8 @@ static int port_detect(unsigned long port_base, unsigned int j,
-       struct hostdata *ha;
-       char name[16];
-+      pax_track_stack();
-+
-       sprintf(name, "%s%d", driver_name, j);
-       if (!request_region(port_base, REGION_SIZE, driver_name)) {
-diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c
-index c74c4b8..c41ca3f 100644
---- a/drivers/scsi/fcoe/fcoe_ctlr.c
-+++ b/drivers/scsi/fcoe/fcoe_ctlr.c
-@@ -2503,6 +2503,8 @@ static int fcoe_ctlr_vn_recv(struct fcoe_ctlr *fip, struct sk_buff *skb)
-       } buf;
-       int rc;
-+      pax_track_stack();
-+
-       fiph = (struct fip_header *)skb->data;
-       sub = fiph->fip_subcode;
-diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
-index 3242bca..45a83e7 100644
---- a/drivers/scsi/gdth.c
-+++ b/drivers/scsi/gdth.c
-@@ -4107,6 +4107,8 @@ static int ioc_lockdrv(void __user *arg)
-     unsigned long flags;
-     gdth_ha_str *ha;
-+    pax_track_stack();
-+
-     if (copy_from_user(&ldrv, arg, sizeof(gdth_ioctl_lockdrv)))
-         return -EFAULT;
-     ha = gdth_find_ha(ldrv.ionode);
-@@ -4139,6 +4141,8 @@ static int ioc_resetdrv(void __user *arg, char *cmnd)
-     gdth_ha_str *ha;
-     int rval;
-+    pax_track_stack();
-+
-     if (copy_from_user(&res, arg, sizeof(gdth_ioctl_reset)) ||
-         res.number >= MAX_HDRIVES)
-         return -EFAULT;
-@@ -4174,6 +4178,8 @@ static int ioc_general(void __user *arg, char *cmnd)
-     gdth_ha_str *ha;
-     int rval;
-+    pax_track_stack();
-+
-     if (copy_from_user(&gen, arg, sizeof(gdth_ioctl_general)))
-         return -EFAULT;
-     ha = gdth_find_ha(gen.ionode);
-@@ -4642,6 +4648,9 @@ static void gdth_flush(gdth_ha_str *ha)
-     int             i;
-     gdth_cmd_str    gdtcmd;
-     char            cmnd[MAX_COMMAND_SIZE];   
-+
-+    pax_track_stack();
-+
-     memset(cmnd, 0xff, MAX_COMMAND_SIZE);
-     TRACE2(("gdth_flush() hanum %d\n", ha->hanum));
-diff --git a/drivers/scsi/gdth_proc.c b/drivers/scsi/gdth_proc.c
-index 6527543..81e4fe2 100644
---- a/drivers/scsi/gdth_proc.c
-+++ b/drivers/scsi/gdth_proc.c
-@@ -47,6 +47,9 @@ static int gdth_set_asc_info(struct Scsi_Host *host, char *buffer,
-     u64         paddr;
-     char            cmnd[MAX_COMMAND_SIZE];
-+
-+    pax_track_stack();
-+
-     memset(cmnd, 0xff, 12);
-     memset(&gdtcmd, 0, sizeof(gdth_cmd_str));
-@@ -175,6 +178,8 @@ static int gdth_get_info(char *buffer,char **start,off_t offset,int length,
-     gdth_hget_str *phg;
-     char cmnd[MAX_COMMAND_SIZE];
-+    pax_track_stack();
-+
-     gdtcmd = kmalloc(sizeof(*gdtcmd), GFP_KERNEL);
-     estr = kmalloc(sizeof(*estr), GFP_KERNEL);
-     if (!gdtcmd || !estr)
 diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
-index 351dc0b..951dc32 100644
+index a3a056a..b9bbc2f 100644
 --- a/drivers/scsi/hosts.c
 +++ b/drivers/scsi/hosts.c
 @@ -42,7 +42,7 @@
@@ -35792,7 +36446,7 @@ index 351dc0b..951dc32 100644
  
  
  static void scsi_host_cls_release(struct device *dev)
-@@ -357,7 +357,7 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
+@@ -360,7 +360,7 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
         * subtract one because we increment first then return, but we need to
         * know what the next host number was before increment
         */
@@ -35802,10 +36456,10 @@ index 351dc0b..951dc32 100644
  
        /* These three are default values which can be overridden */
 diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
-index 418ce83..7ee1225 100644
+index 500e20d..ebd3059 100644
 --- a/drivers/scsi/hpsa.c
 +++ b/drivers/scsi/hpsa.c
-@@ -499,7 +499,7 @@ static inline u32 next_command(struct ctlr_info *h)
+@@ -521,7 +521,7 @@ static inline u32 next_command(struct ctlr_info *h)
        u32 a;
  
        if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
@@ -35814,7 +36468,7 @@ index 418ce83..7ee1225 100644
  
        if ((*(h->reply_pool_head) & 1) == (h->reply_pool_wraparound)) {
                a = *(h->reply_pool_head); /* Next cmd in ring buffer */
-@@ -2956,7 +2956,7 @@ static void start_io(struct ctlr_info *h)
+@@ -3002,7 +3002,7 @@ static void start_io(struct ctlr_info *h)
        while (!list_empty(&h->reqQ)) {
                c = list_entry(h->reqQ.next, struct CommandList, list);
                /* can't do anything if fifo is full */
@@ -35823,7 +36477,7 @@ index 418ce83..7ee1225 100644
                        dev_warn(&h->pdev->dev, "fifo full\n");
                        break;
                }
-@@ -2966,7 +2966,7 @@ static void start_io(struct ctlr_info *h)
+@@ -3012,7 +3012,7 @@ static void start_io(struct ctlr_info *h)
                h->Qdepth--;
  
                /* Tell the controller execute command */
@@ -35832,7 +36486,7 @@ index 418ce83..7ee1225 100644
  
                /* Put job onto the completed Q */
                addQ(&h->cmpQ, c);
-@@ -2975,17 +2975,17 @@ static void start_io(struct ctlr_info *h)
+@@ -3021,17 +3021,17 @@ static void start_io(struct ctlr_info *h)
  
  static inline unsigned long get_next_completion(struct ctlr_info *h)
  {
@@ -35853,7 +36507,7 @@ index 418ce83..7ee1225 100644
                (h->interrupts_enabled == 0);
  }
  
-@@ -3882,7 +3882,7 @@ static int __devinit hpsa_pci_init(struct ctlr_info *h)
+@@ -3930,7 +3930,7 @@ static int __devinit hpsa_pci_init(struct ctlr_info *h)
        if (prod_index < 0)
                return -ENODEV;
        h->product_name = products[prod_index].product_name;
@@ -35862,7 +36516,16 @@ index 418ce83..7ee1225 100644
  
        if (hpsa_board_disabled(h->pdev)) {
                dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
-@@ -4163,7 +4163,7 @@ reinit_after_soft_reset:
+@@ -4175,7 +4175,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
+       assert_spin_locked(&lockup_detector_lock);
+       remove_ctlr_from_lockup_detector_list(h);
+-      h->access.set_intr_mask(h, HPSA_INTR_OFF);
++      h->access->set_intr_mask(h, HPSA_INTR_OFF);
+       spin_lock_irqsave(&h->lock, flags);
+       h->lockup_detected = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
+       spin_unlock_irqrestore(&h->lock, flags);
+@@ -4355,7 +4355,7 @@ reinit_after_soft_reset:
        }
  
        /* make sure the board interrupts are off */
@@ -35871,7 +36534,7 @@ index 418ce83..7ee1225 100644
  
        if (hpsa_request_irq(h, do_hpsa_intr_msi, do_hpsa_intr_intx))
                goto clean2;
-@@ -4197,7 +4197,7 @@ reinit_after_soft_reset:
+@@ -4389,7 +4389,7 @@ reinit_after_soft_reset:
                 * fake ones to scoop up any residual completions.
                 */
                spin_lock_irqsave(&h->lock, flags);
@@ -35880,7 +36543,7 @@ index 418ce83..7ee1225 100644
                spin_unlock_irqrestore(&h->lock, flags);
                free_irq(h->intr[h->intr_mode], h);
                rc = hpsa_request_irq(h, hpsa_msix_discard_completions,
-@@ -4216,9 +4216,9 @@ reinit_after_soft_reset:
+@@ -4408,9 +4408,9 @@ reinit_after_soft_reset:
                dev_info(&h->pdev->dev, "Board READY.\n");
                dev_info(&h->pdev->dev,
                        "Waiting for stale completions to drain.\n");
@@ -35892,7 +36555,7 @@ index 418ce83..7ee1225 100644
  
                rc = controller_reset_failed(h->cfgtable);
                if (rc)
-@@ -4239,7 +4239,7 @@ reinit_after_soft_reset:
+@@ -4431,7 +4431,7 @@ reinit_after_soft_reset:
        }
  
        /* Turn the interrupts on so we can service requests */
@@ -35901,7 +36564,7 @@ index 418ce83..7ee1225 100644
  
        hpsa_hba_inquiry(h);
        hpsa_register_scsi(h);  /* hook ourselves into SCSI subsystem */
-@@ -4292,7 +4292,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
+@@ -4483,7 +4483,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
         * To write all data in the battery backed cache to disks
         */
        hpsa_flush_cache(h);
@@ -35910,7 +36573,7 @@ index 418ce83..7ee1225 100644
        free_irq(h->intr[h->intr_mode], h);
  #ifdef CONFIG_PCI_MSI
        if (h->msix_vector)
-@@ -4455,7 +4455,7 @@ static __devinit void hpsa_enter_performant_mode(struct ctlr_info *h,
+@@ -4657,7 +4657,7 @@ static __devinit void hpsa_enter_performant_mode(struct ctlr_info *h,
                return;
        }
        /* Change the access methods to the performant access methods */
@@ -35920,10 +36583,10 @@ index 418ce83..7ee1225 100644
  }
  
 diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h
-index 7f53cea..a8c7188 100644
+index 7b28d54..952f23a 100644
 --- a/drivers/scsi/hpsa.h
 +++ b/drivers/scsi/hpsa.h
-@@ -73,7 +73,7 @@ struct ctlr_info {
+@@ -72,7 +72,7 @@ struct ctlr_info {
        unsigned int msix_vector;
        unsigned int msi_vector;
        int intr_mode; /* either PERF_MODE_INT or SIMPLE_MODE_INT */
@@ -35946,7 +36609,7 @@ index f2df059..a3a9930 100644
  typedef struct ips_ha {
     uint8_t            ha_id[IPS_MAX_CHANNELS+1];
 diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
-index d261e98..1e00f35 100644
+index aceffad..c35c08d 100644
 --- a/drivers/scsi/libfc/fc_exch.c
 +++ b/drivers/scsi/libfc/fc_exch.c
 @@ -105,12 +105,12 @@ struct fc_exch_mgr {
@@ -35968,7 +36631,7 @@ index d261e98..1e00f35 100644
        } stats;
  };
  
-@@ -718,7 +718,7 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport,
+@@ -719,7 +719,7 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport,
        /* allocate memory for exchange */
        ep = mempool_alloc(mp->ep_pool, GFP_ATOMIC);
        if (!ep) {
@@ -35977,7 +36640,7 @@ index d261e98..1e00f35 100644
                goto out;
        }
        memset(ep, 0, sizeof(*ep));
-@@ -779,7 +779,7 @@ out:
+@@ -780,7 +780,7 @@ out:
        return ep;
  err:
        spin_unlock_bh(&pool->lock);
@@ -35986,7 +36649,7 @@ index d261e98..1e00f35 100644
        mempool_free(ep, mp->ep_pool);
        return NULL;
  }
-@@ -922,7 +922,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
+@@ -923,7 +923,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
                xid = ntohs(fh->fh_ox_id);      /* we originated exch */
                ep = fc_exch_find(mp, xid);
                if (!ep) {
@@ -35995,7 +36658,7 @@ index d261e98..1e00f35 100644
                        reject = FC_RJT_OX_ID;
                        goto out;
                }
-@@ -952,7 +952,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
+@@ -953,7 +953,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
                ep = fc_exch_find(mp, xid);
                if ((f_ctl & FC_FC_FIRST_SEQ) && fc_sof_is_init(fr_sof(fp))) {
                        if (ep) {
@@ -36004,7 +36667,7 @@ index d261e98..1e00f35 100644
                                reject = FC_RJT_RX_ID;
                                goto rel;
                        }
-@@ -963,7 +963,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
+@@ -964,7 +964,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
                        }
                        xid = ep->xid;  /* get our XID */
                } else if (!ep) {
@@ -36013,7 +36676,7 @@ index d261e98..1e00f35 100644
                        reject = FC_RJT_RX_ID;  /* XID not found */
                        goto out;
                }
-@@ -980,7 +980,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
+@@ -981,7 +981,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
        } else {
                sp = &ep->seq;
                if (sp->id != fh->fh_seq_id) {
@@ -36022,7 +36685,7 @@ index d261e98..1e00f35 100644
                        if (f_ctl & FC_FC_END_SEQ) {
                                /*
                                 * Update sequence_id based on incoming last
-@@ -1430,22 +1430,22 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
+@@ -1431,22 +1431,22 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
  
        ep = fc_exch_find(mp, ntohs(fh->fh_ox_id));
        if (!ep) {
@@ -36049,7 +36712,7 @@ index d261e98..1e00f35 100644
                goto rel;
        }
        sof = fr_sof(fp);
-@@ -1454,7 +1454,7 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
+@@ -1455,7 +1455,7 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
                sp->ssb_stat |= SSB_ST_RESP;
                sp->id = fh->fh_seq_id;
        } else if (sp->id != fh->fh_seq_id) {
@@ -36058,7 +36721,7 @@ index d261e98..1e00f35 100644
                goto rel;
        }
  
-@@ -1518,9 +1518,9 @@ static void fc_exch_recv_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
+@@ -1519,9 +1519,9 @@ static void fc_exch_recv_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
        sp = fc_seq_lookup_orig(mp, fp);        /* doesn't hold sequence */
  
        if (!sp)
@@ -36071,10 +36734,10 @@ index d261e98..1e00f35 100644
        fc_frame_free(fp);
  }
 diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
-index db9238f..4378ed2 100644
+index d109cc3..09f4e7d 100644
 --- a/drivers/scsi/libsas/sas_ata.c
 +++ b/drivers/scsi/libsas/sas_ata.c
-@@ -368,7 +368,7 @@ static struct ata_port_operations sas_sata_ops = {
+@@ -529,7 +529,7 @@ static struct ata_port_operations sas_sata_ops = {
        .postreset              = ata_std_postreset,
        .error_handler          = ata_std_error_handler,
        .post_internal_cmd      = sas_ata_post_internal,
@@ -36084,10 +36747,10 @@ index db9238f..4378ed2 100644
        .qc_issue               = sas_ata_qc_issue,
        .qc_fill_rtf            = sas_ata_qc_fill_rtf,
 diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
-index c088a36..01c73b0 100644
+index 3a1ffdd..8eb7c71 100644
 --- a/drivers/scsi/lpfc/lpfc.h
 +++ b/drivers/scsi/lpfc/lpfc.h
-@@ -425,7 +425,7 @@ struct lpfc_vport {
+@@ -413,7 +413,7 @@ struct lpfc_vport {
        struct dentry *debug_nodelist;
        struct dentry *vport_debugfs_root;
        struct lpfc_debugfs_trc *disc_trc;
@@ -36096,7 +36759,7 @@ index c088a36..01c73b0 100644
  #endif
        uint8_t stat_data_enabled;
        uint8_t stat_data_blocked;
-@@ -835,8 +835,8 @@ struct lpfc_hba {
+@@ -826,8 +826,8 @@ struct lpfc_hba {
        struct timer_list fabric_block_timer;
        unsigned long bit_flags;
  #define       FABRIC_COMANDS_BLOCKED  0
@@ -36107,8 +36770,8 @@ index c088a36..01c73b0 100644
        unsigned long last_rsrc_error_time;
        unsigned long last_ramp_down_time;
        unsigned long last_ramp_up_time;
-@@ -850,7 +850,7 @@ struct lpfc_hba {
-       struct dentry *debug_dumpDif;    /* BlockGuard BPL*/
+@@ -863,7 +863,7 @@ struct lpfc_hba {
        struct dentry *debug_slow_ring_trc;
        struct lpfc_debugfs_trc *slow_ring_trc;
 -      atomic_t slow_ring_trc_cnt;
@@ -36117,10 +36780,10 @@ index c088a36..01c73b0 100644
        struct dentry *idiag_root;
        struct dentry *idiag_pci_cfg;
 diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debugfs.c
-index a0424dd..2499b6b 100644
+index af04b0d..8f1a97e 100644
 --- a/drivers/scsi/lpfc/lpfc_debugfs.c
 +++ b/drivers/scsi/lpfc/lpfc_debugfs.c
-@@ -105,7 +105,7 @@ MODULE_PARM_DESC(lpfc_debugfs_mask_disc_trc,
+@@ -106,7 +106,7 @@ MODULE_PARM_DESC(lpfc_debugfs_mask_disc_trc,
  
  #include <linux/debugfs.h>
  
@@ -36129,7 +36792,7 @@ index a0424dd..2499b6b 100644
  static unsigned long lpfc_debugfs_start_time = 0L;
  
  /* iDiag */
-@@ -146,7 +146,7 @@ lpfc_debugfs_disc_trc_data(struct lpfc_vport *vport, char *buf, int size)
+@@ -147,7 +147,7 @@ lpfc_debugfs_disc_trc_data(struct lpfc_vport *vport, char *buf, int size)
        lpfc_debugfs_enable = 0;
  
        len = 0;
@@ -36138,7 +36801,7 @@ index a0424dd..2499b6b 100644
                (lpfc_debugfs_max_disc_trc - 1);
        for (i = index; i < lpfc_debugfs_max_disc_trc; i++) {
                dtp = vport->disc_trc + i;
-@@ -212,7 +212,7 @@ lpfc_debugfs_slow_ring_trc_data(struct lpfc_hba *phba, char *buf, int size)
+@@ -213,7 +213,7 @@ lpfc_debugfs_slow_ring_trc_data(struct lpfc_hba *phba, char *buf, int size)
        lpfc_debugfs_enable = 0;
  
        len = 0;
@@ -36147,7 +36810,7 @@ index a0424dd..2499b6b 100644
                (lpfc_debugfs_max_slow_ring_trc - 1);
        for (i = index; i < lpfc_debugfs_max_slow_ring_trc; i++) {
                dtp = phba->slow_ring_trc + i;
-@@ -635,14 +635,14 @@ lpfc_debugfs_disc_trc(struct lpfc_vport *vport, int mask, char *fmt,
+@@ -636,14 +636,14 @@ lpfc_debugfs_disc_trc(struct lpfc_vport *vport, int mask, char *fmt,
                !vport || !vport->disc_trc)
                return;
  
@@ -36164,7 +36827,7 @@ index a0424dd..2499b6b 100644
        dtp->jif = jiffies;
  #endif
        return;
-@@ -673,14 +673,14 @@ lpfc_debugfs_slow_ring_trc(struct lpfc_hba *phba, char *fmt,
+@@ -674,14 +674,14 @@ lpfc_debugfs_slow_ring_trc(struct lpfc_hba *phba, char *fmt,
                !phba || !phba->slow_ring_trc)
                return;
  
@@ -36181,7 +36844,7 @@ index a0424dd..2499b6b 100644
        dtp->jif = jiffies;
  #endif
        return;
-@@ -3828,7 +3828,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
+@@ -4090,7 +4090,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
                                                 "slow_ring buffer\n");
                                goto debug_failed;
                        }
@@ -36190,7 +36853,7 @@ index a0424dd..2499b6b 100644
                        memset(phba->slow_ring_trc, 0,
                                (sizeof(struct lpfc_debugfs_trc) *
                                lpfc_debugfs_max_slow_ring_trc));
-@@ -3874,7 +3874,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
+@@ -4136,7 +4136,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
                                 "buffer\n");
                goto debug_failed;
        }
@@ -36200,11 +36863,11 @@ index a0424dd..2499b6b 100644
        snprintf(name, sizeof(name), "discovery_trace");
        vport->debug_disc_trc =
 diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
-index a3c8200..31e562e 100644
+index 9598fdc..7e9f3d9 100644
 --- a/drivers/scsi/lpfc/lpfc_init.c
 +++ b/drivers/scsi/lpfc/lpfc_init.c
-@@ -9969,8 +9969,10 @@ lpfc_init(void)
-       printk(LPFC_COPYRIGHT "\n");
+@@ -10266,8 +10266,10 @@ lpfc_init(void)
+                       "misc_register returned with status %d", error);
  
        if (lpfc_enable_npiv) {
 -              lpfc_transport_functions.vport_create = lpfc_vport_create;
@@ -36217,10 +36880,10 @@ index a3c8200..31e562e 100644
        lpfc_transport_template =
                                fc_attach_transport(&lpfc_transport_functions);
 diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
-index eadd241..26c8e0f 100644
+index 88f3a83..686d3fa 100644
 --- a/drivers/scsi/lpfc/lpfc_scsi.c
 +++ b/drivers/scsi/lpfc/lpfc_scsi.c
-@@ -297,7 +297,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
+@@ -311,7 +311,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
        uint32_t evt_posted;
  
        spin_lock_irqsave(&phba->hbalock, flags);
@@ -36229,7 +36892,7 @@ index eadd241..26c8e0f 100644
        phba->last_rsrc_error_time = jiffies;
  
        if ((phba->last_ramp_down_time + QUEUE_RAMP_DOWN_INTERVAL) > jiffies) {
-@@ -338,7 +338,7 @@ lpfc_rampup_queue_depth(struct lpfc_vport  *vport,
+@@ -352,7 +352,7 @@ lpfc_rampup_queue_depth(struct lpfc_vport  *vport,
        unsigned long flags;
        struct lpfc_hba *phba = vport->phba;
        uint32_t evt_posted;
@@ -36238,7 +36901,7 @@ index eadd241..26c8e0f 100644
  
        if (vport->cfg_lun_queue_depth <= queue_depth)
                return;
-@@ -382,8 +382,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
+@@ -396,8 +396,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
        unsigned long num_rsrc_err, num_cmd_success;
        int i;
  
@@ -36249,7 +36912,7 @@ index eadd241..26c8e0f 100644
  
        vports = lpfc_create_vport_work_array(phba);
        if (vports != NULL)
-@@ -403,8 +403,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
+@@ -417,8 +417,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
                        }
                }
        lpfc_destroy_vport_work_array(phba, vports);
@@ -36260,7 +36923,7 @@ index eadd241..26c8e0f 100644
  }
  
  /**
-@@ -438,8 +438,8 @@ lpfc_ramp_up_queue_handler(struct lpfc_hba *phba)
+@@ -452,8 +452,8 @@ lpfc_ramp_up_queue_handler(struct lpfc_hba *phba)
                        }
                }
        lpfc_destroy_vport_work_array(phba, vports);
@@ -36271,37 +36934,11 @@ index eadd241..26c8e0f 100644
  }
  
  /**
-diff --git a/drivers/scsi/megaraid/megaraid_mbox.c b/drivers/scsi/megaraid/megaraid_mbox.c
-index 2e6619e..fa64494 100644
---- a/drivers/scsi/megaraid/megaraid_mbox.c
-+++ b/drivers/scsi/megaraid/megaraid_mbox.c
-@@ -3503,6 +3503,8 @@ megaraid_cmm_register(adapter_t *adapter)
-       int             rval;
-       int             i;
-+      pax_track_stack();
-+
-       // Allocate memory for the base list of scb for management module.
-       adapter->uscb_list = kcalloc(MBOX_MAX_USER_CMDS, sizeof(scb_t), GFP_KERNEL);
-diff --git a/drivers/scsi/osd/osd_initiator.c b/drivers/scsi/osd/osd_initiator.c
-index 86afb13f..c912398 100644
---- a/drivers/scsi/osd/osd_initiator.c
-+++ b/drivers/scsi/osd/osd_initiator.c
-@@ -97,6 +97,8 @@ static int _osd_get_print_system_info(struct osd_dev *od,
-       int nelem = ARRAY_SIZE(get_attrs), a = 0;
-       int ret;
-+      pax_track_stack();
-+
-       or = osd_start_request(od, GFP_KERNEL);
-       if (!or)
-               return -ENOMEM;
 diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
-index d079f9a..d26072c 100644
+index ea8a0b4..812a124 100644
 --- a/drivers/scsi/pmcraid.c
 +++ b/drivers/scsi/pmcraid.c
-@@ -201,8 +201,8 @@ static int pmcraid_slave_alloc(struct scsi_device *scsi_dev)
+@@ -200,8 +200,8 @@ static int pmcraid_slave_alloc(struct scsi_device *scsi_dev)
                res->scsi_dev = scsi_dev;
                scsi_dev->hostdata = res;
                res->change_detected = 0;
@@ -36312,7 +36949,7 @@ index d079f9a..d26072c 100644
                rc = 0;
        }
        spin_unlock_irqrestore(&pinstance->resource_lock, lock_flags);
-@@ -2677,9 +2677,9 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd)
+@@ -2676,9 +2676,9 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd)
  
        /* If this was a SCSI read/write command keep count of errors */
        if (SCSI_CMD_TYPE(scsi_cmd->cmnd[0]) == SCSI_READ_CMD)
@@ -36324,7 +36961,7 @@ index d079f9a..d26072c 100644
  
        if (!RES_IS_GSCSI(res->cfg_entry) &&
                masked_ioasc != PMCRAID_IOASC_HW_DEVICE_BUS_STATUS_ERROR) {
-@@ -3535,7 +3535,7 @@ static int pmcraid_queuecommand_lck(
+@@ -3534,7 +3534,7 @@ static int pmcraid_queuecommand_lck(
         * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
         * hrrq_id assigned here in queuecommand
         */
@@ -36333,7 +36970,7 @@ index d079f9a..d26072c 100644
                          pinstance->num_hrrq;
        cmd->cmd_done = pmcraid_io_done;
  
-@@ -3860,7 +3860,7 @@ static long pmcraid_ioctl_passthrough(
+@@ -3859,7 +3859,7 @@ static long pmcraid_ioctl_passthrough(
         * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
         * hrrq_id assigned here in queuecommand
         */
@@ -36342,7 +36979,7 @@ index d079f9a..d26072c 100644
                          pinstance->num_hrrq;
  
        if (request_size) {
-@@ -4498,7 +4498,7 @@ static void pmcraid_worker_function(struct work_struct *workp)
+@@ -4497,7 +4497,7 @@ static void pmcraid_worker_function(struct work_struct *workp)
  
        pinstance = container_of(workp, struct pmcraid_instance, worker_q);
        /* add resources only after host is added into system */
@@ -36351,7 +36988,7 @@ index d079f9a..d26072c 100644
                return;
  
        fw_version = be16_to_cpu(pinstance->inq_data->fw_version);
-@@ -5332,8 +5332,8 @@ static int __devinit pmcraid_init_instance(
+@@ -5331,8 +5331,8 @@ static int __devinit pmcraid_init_instance(
        init_waitqueue_head(&pinstance->reset_wait_q);
  
        atomic_set(&pinstance->outstanding_cmds, 0);
@@ -36362,7 +36999,7 @@ index d079f9a..d26072c 100644
  
        INIT_LIST_HEAD(&pinstance->free_res_q);
        INIT_LIST_HEAD(&pinstance->used_res_q);
-@@ -6048,7 +6048,7 @@ static int __devinit pmcraid_probe(
+@@ -6047,7 +6047,7 @@ static int __devinit pmcraid_probe(
        /* Schedule worker thread to handle CCN and take care of adding and
         * removing devices to OS
         */
@@ -36372,10 +37009,10 @@ index d079f9a..d26072c 100644
        return rc;
  
 diff --git a/drivers/scsi/pmcraid.h b/drivers/scsi/pmcraid.h
-index f920baf..4417389 100644
+index e1d150f..6c6df44 100644
 --- a/drivers/scsi/pmcraid.h
 +++ b/drivers/scsi/pmcraid.h
-@@ -749,7 +749,7 @@ struct pmcraid_instance {
+@@ -748,7 +748,7 @@ struct pmcraid_instance {
        struct pmcraid_isr_param hrrq_vector[PMCRAID_NUM_MSIX_VECTORS];
  
        /* Message id as filled in last fired IOARCB, used to identify HRRQ */
@@ -36384,7 +37021,7 @@ index f920baf..4417389 100644
  
        /* configuration table */
        struct pmcraid_config_table *cfg_table;
-@@ -778,7 +778,7 @@ struct pmcraid_instance {
+@@ -777,7 +777,7 @@ struct pmcraid_instance {
        atomic_t outstanding_cmds;
  
        /* should add/delete resources to mid-layer now ?*/
@@ -36393,7 +37030,7 @@ index f920baf..4417389 100644
  
  
  
-@@ -814,8 +814,8 @@ struct pmcraid_resource_entry {
+@@ -813,8 +813,8 @@ struct pmcraid_resource_entry {
                struct pmcraid_config_table_entry_ext cfg_entry_ext;
        };
        struct scsi_device *scsi_dev;   /* Link scsi_device structure */
@@ -36405,75 +37042,61 @@ index f920baf..4417389 100644
        /* To indicate add/delete/modify during CCN */
        u8 change_detected;
 diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
-index a03eaf4..a6b3fd9 100644
+index a244303..6015eb7 100644
 --- a/drivers/scsi/qla2xxx/qla_def.h
 +++ b/drivers/scsi/qla2xxx/qla_def.h
-@@ -2244,7 +2244,7 @@ struct isp_operations {
-       int (*get_flash_version) (struct scsi_qla_host *, void *);
+@@ -2264,7 +2264,7 @@ struct isp_operations {
        int (*start_scsi) (srb_t *);
        int (*abort_isp) (struct scsi_qla_host *);
+       int (*iospace_config)(struct qla_hw_data*);
 -};
 +} __no_const;
  
  /* MSI-X Support *************************************************************/
  
 diff --git a/drivers/scsi/qla4xxx/ql4_def.h b/drivers/scsi/qla4xxx/ql4_def.h
-index 473c5c8..4e2f24a 100644
+index 7f2492e..5113877 100644
 --- a/drivers/scsi/qla4xxx/ql4_def.h
 +++ b/drivers/scsi/qla4xxx/ql4_def.h
-@@ -256,7 +256,7 @@ struct ddb_entry {
-       atomic_t retry_relogin_timer; /* Min Time between relogins
-                                      * (4000 only) */
-       atomic_t relogin_timer; /* Max Time to wait for relogin to complete */
--      atomic_t relogin_retry_count; /* Num of times relogin has been
-+      atomic_unchecked_t relogin_retry_count; /* Num of times relogin has been
-                                      * retried */
-       uint16_t port;
-diff --git a/drivers/scsi/qla4xxx/ql4_init.c b/drivers/scsi/qla4xxx/ql4_init.c
-index 42ed5db..0262f9e 100644
---- a/drivers/scsi/qla4xxx/ql4_init.c
-+++ b/drivers/scsi/qla4xxx/ql4_init.c
-@@ -680,7 +680,7 @@ static struct ddb_entry * qla4xxx_alloc_ddb(struct scsi_qla_host *ha,
-       ddb_entry->fw_ddb_index = fw_ddb_index;
+@@ -268,7 +268,7 @@ struct ddb_entry {
+                                          * (4000 only) */
+       atomic_t relogin_timer;           /* Max Time to wait for
+                                          * relogin to complete */
+-      atomic_t relogin_retry_count;     /* Num of times relogin has been
++      atomic_unchecked_t relogin_retry_count;   /* Num of times relogin has been
+                                          * retried */
+       uint32_t default_time2wait;       /* Default Min time between
+                                          * relogins (+aens) */
+diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
+index ee47820..a83b1f4 100644
+--- a/drivers/scsi/qla4xxx/ql4_os.c
++++ b/drivers/scsi/qla4xxx/ql4_os.c
+@@ -2551,12 +2551,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
+                */
+               if (!iscsi_is_session_online(cls_sess)) {
+                       /* Reset retry relogin timer */
+-                      atomic_inc(&ddb_entry->relogin_retry_count);
++                      atomic_inc_unchecked(&ddb_entry->relogin_retry_count);
+                       DEBUG2(ql4_printk(KERN_INFO, ha,
+                               "%s: index[%d] relogin timed out-retrying"
+                               " relogin (%d), retry (%d)\n", __func__,
+                               ddb_entry->fw_ddb_index,
+-                              atomic_read(&ddb_entry->relogin_retry_count),
++                              atomic_read_unchecked(&ddb_entry->relogin_retry_count),
+                               ddb_entry->default_time2wait + 4));
+                       set_bit(DPC_RELOGIN_DEVICE, &ha->dpc_flags);
+                       atomic_set(&ddb_entry->retry_relogin_timer,
+@@ -4453,7 +4453,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
        atomic_set(&ddb_entry->retry_relogin_timer, INVALID_ENTRY);
        atomic_set(&ddb_entry->relogin_timer, 0);
 -      atomic_set(&ddb_entry->relogin_retry_count, 0);
 +      atomic_set_unchecked(&ddb_entry->relogin_retry_count, 0);
-       atomic_set(&ddb_entry->state, DDB_STATE_ONLINE);
-       list_add_tail(&ddb_entry->list, &ha->ddb_list);
-       ha->fw_ddb_index_map[fw_ddb_index] = ddb_entry;
-@@ -1433,7 +1433,7 @@ int qla4xxx_process_ddb_changed(struct scsi_qla_host *ha, uint32_t fw_ddb_index,
-       if ((ddb_entry->fw_ddb_device_state == DDB_DS_SESSION_ACTIVE) &&
-          (atomic_read(&ddb_entry->state) != DDB_STATE_ONLINE)) {
-               atomic_set(&ddb_entry->state, DDB_STATE_ONLINE);
--              atomic_set(&ddb_entry->relogin_retry_count, 0);
-+              atomic_set_unchecked(&ddb_entry->relogin_retry_count, 0);
-               atomic_set(&ddb_entry->relogin_timer, 0);
-               clear_bit(DF_RELOGIN, &ddb_entry->flags);
-               iscsi_unblock_session(ddb_entry->sess);
-diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
-index f2364ec..44c42b1 100644
---- a/drivers/scsi/qla4xxx/ql4_os.c
-+++ b/drivers/scsi/qla4xxx/ql4_os.c
-@@ -811,13 +811,13 @@ static void qla4xxx_timer(struct scsi_qla_host *ha)
-                           ddb_entry->fw_ddb_device_state ==
-                           DDB_DS_SESSION_FAILED) {
-                               /* Reset retry relogin timer */
--                              atomic_inc(&ddb_entry->relogin_retry_count);
-+                              atomic_inc_unchecked(&ddb_entry->relogin_retry_count);
-                               DEBUG2(printk("scsi%ld: ddb [%d] relogin"
-                                             " timed out-retrying"
-                                             " relogin (%d)\n",
-                                             ha->host_no,
-                                             ddb_entry->fw_ddb_index,
--                                            atomic_read(&ddb_entry->
-+                                            atomic_read_unchecked(&ddb_entry->
-                                                         relogin_retry_count))
-                                       );
-                               start_dpc++;
+       def_timeout = le16_to_cpu(ddb_entry->fw_ddb_entry.def_timeout);
+       ddb_entry->default_relogin_timeout =
+               (def_timeout > LOGIN_TOV) && (def_timeout < LOGIN_TOV * 10) ?
 diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
-index 2aeb2e9..46e3925 100644
+index 07322ec..91ccc23 100644
 --- a/drivers/scsi/scsi.c
 +++ b/drivers/scsi/scsi.c
 @@ -655,7 +655,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
@@ -36485,30 +37108,8 @@ index 2aeb2e9..46e3925 100644
  
        /* check if the device is still usable */
        if (unlikely(cmd->device->sdev_state == SDEV_DEL)) {
-diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
-index 6888b2c..45befa1 100644
---- a/drivers/scsi/scsi_debug.c
-+++ b/drivers/scsi/scsi_debug.c
-@@ -1493,6 +1493,8 @@ static int resp_mode_select(struct scsi_cmnd * scp, int mselect6,
-       unsigned char arr[SDEBUG_MAX_MSELECT_SZ];
-       unsigned char *cmd = (unsigned char *)scp->cmnd;
-+      pax_track_stack();
-+
-       if ((errsts = check_readiness(scp, 1, devip)))
-               return errsts;
-       memset(arr, 0, sizeof(arr));
-@@ -1590,6 +1592,8 @@ static int resp_log_sense(struct scsi_cmnd * scp,
-       unsigned char arr[SDEBUG_MAX_LSENSE_SZ];
-       unsigned char *cmd = (unsigned char *)scp->cmnd;
-+      pax_track_stack();
-+
-       if ((errsts = check_readiness(scp, 1, devip)))
-               return errsts;
-       memset(arr, 0, sizeof(arr));
 diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
-index 6d219e4..eb3ded3 100644
+index 4037fd5..a19fcc7 100644
 --- a/drivers/scsi/scsi_lib.c
 +++ b/drivers/scsi/scsi_lib.c
 @@ -1415,7 +1415,7 @@ static void scsi_kill_request(struct request *req, struct request_queue *q)
@@ -36533,10 +37134,10 @@ index 6d219e4..eb3ded3 100644
        disposition = scsi_decide_disposition(cmd);
        if (disposition != SUCCESS &&
 diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
-index e0bd3f7..816b8a6 100644
+index 04c2a27..9d8bd66 100644
 --- a/drivers/scsi/scsi_sysfs.c
 +++ b/drivers/scsi/scsi_sysfs.c
-@@ -622,7 +622,7 @@ show_iostat_##field(struct device *dev, struct device_attribute *attr,     \
+@@ -660,7 +660,7 @@ show_iostat_##field(struct device *dev, struct device_attribute *attr,     \
                    char *buf)                                          \
  {                                                                     \
        struct scsi_device *sdev = to_scsi_device(dev);                 \
@@ -36559,10 +37160,10 @@ index 84a1fdf..693b0d6 100644
                /*
                 * TODO: need to fixup sg_tablesize, max_segment_size,
 diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
-index 1b21491..1b7f60e 100644
+index 80fbe2a..efa223b 100644
 --- a/drivers/scsi/scsi_transport_fc.c
 +++ b/drivers/scsi/scsi_transport_fc.c
-@@ -484,7 +484,7 @@ static DECLARE_TRANSPORT_CLASS(fc_vport_class,
+@@ -498,7 +498,7 @@ static DECLARE_TRANSPORT_CLASS(fc_vport_class,
   * Netlink Infrastructure
   */
  
@@ -36571,7 +37172,7 @@ index 1b21491..1b7f60e 100644
  
  /**
   * fc_get_event_number - Obtain the next sequential FC event number
-@@ -497,7 +497,7 @@ static atomic_t fc_event_seq;
+@@ -511,7 +511,7 @@ static atomic_t fc_event_seq;
  u32
  fc_get_event_number(void)
  {
@@ -36580,7 +37181,7 @@ index 1b21491..1b7f60e 100644
  }
  EXPORT_SYMBOL(fc_get_event_number);
  
-@@ -645,7 +645,7 @@ static __init int fc_transport_init(void)
+@@ -659,7 +659,7 @@ static __init int fc_transport_init(void)
  {
        int error;
  
@@ -36589,7 +37190,7 @@ index 1b21491..1b7f60e 100644
  
        error = transport_class_register(&fc_host_class);
        if (error)
-@@ -835,7 +835,7 @@ static int fc_str_to_dev_loss(const char *buf, unsigned long *val)
+@@ -849,7 +849,7 @@ static int fc_str_to_dev_loss(const char *buf, unsigned long *val)
        char *cp;
  
        *val = simple_strtoul(buf, &cp, 0);
@@ -36599,28 +37200,28 @@ index 1b21491..1b7f60e 100644
        /*
         * Check for overflow; dev_loss_tmo is u32
 diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
-index 3fd16d7..ba0871f 100644
+index 1cf640e..78e9014 100644
 --- a/drivers/scsi/scsi_transport_iscsi.c
 +++ b/drivers/scsi/scsi_transport_iscsi.c
-@@ -83,7 +83,7 @@ struct iscsi_internal {
-       struct device_attribute *session_attrs[ISCSI_SESSION_ATTRS + 1];
+@@ -79,7 +79,7 @@ struct iscsi_internal {
+       struct transport_container session_cont;
  };
  
 -static atomic_t iscsi_session_nr; /* sysfs session id for next new session */
 +static atomic_unchecked_t iscsi_session_nr; /* sysfs session id for next new session */
  static struct workqueue_struct *iscsi_eh_timer_workq;
  
- /*
-@@ -761,7 +761,7 @@ int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id)
+ static DEFINE_IDA(iscsi_sess_ida);
+@@ -1064,7 +1064,7 @@ int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id)
        int err;
  
        ihost = shost->shost_data;
 -      session->sid = atomic_add_return(1, &iscsi_session_nr);
 +      session->sid = atomic_add_return_unchecked(1, &iscsi_session_nr);
  
-       if (id == ISCSI_MAX_TARGET) {
-               for (id = 0; id < ISCSI_MAX_TARGET; id++) {
-@@ -2200,7 +2200,7 @@ static __init int iscsi_transport_init(void)
+       if (target_id == ISCSI_MAX_TARGET) {
+               id = ida_simple_get(&iscsi_sess_ida, 0, 0, GFP_KERNEL);
+@@ -2940,7 +2940,7 @@ static __init int iscsi_transport_init(void)
        printk(KERN_INFO "Loading iSCSI transport class v%s.\n",
                ISCSI_TRANSPORT_VERSION);
  
@@ -36661,10 +37262,10 @@ index 21a045e..ec89e03 100644
  
        transport_setup_device(&rport->dev);
 diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
-index 909ed9e..1ae290a 100644
+index eacd46b..e3f4d62 100644
 --- a/drivers/scsi/sg.c
 +++ b/drivers/scsi/sg.c
-@@ -1075,7 +1075,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg)
+@@ -1077,7 +1077,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg)
                                       sdp->disk->disk_name,
                                       MKDEV(SCSI_GENERIC_MAJOR, sdp->index),
                                       NULL,
@@ -36673,7 +37274,7 @@ index 909ed9e..1ae290a 100644
        case BLKTRACESTART:
                return blk_trace_startstop(sdp->device->request_queue, 1);
        case BLKTRACESTOP:
-@@ -2310,7 +2310,7 @@ struct sg_proc_leaf {
+@@ -2312,7 +2312,7 @@ struct sg_proc_leaf {
        const struct file_operations * fops;
  };
  
@@ -36682,59 +37283,20 @@ index 909ed9e..1ae290a 100644
        {"allow_dio", &adio_fops},
        {"debug", &debug_fops},
        {"def_reserved_size", &dressz_fops},
-@@ -2325,7 +2325,7 @@ sg_proc_init(void)
- {
-       int k, mask;
-       int num_leaves = ARRAY_SIZE(sg_proc_leaf_arr);
--      struct sg_proc_leaf * leaf;
-+      const struct sg_proc_leaf * leaf;
-       sg_proc_sgp = proc_mkdir(sg_proc_sg_dirname, NULL);
+@@ -2332,7 +2332,7 @@ sg_proc_init(void)
        if (!sg_proc_sgp)
-diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c
-index b4543f5..e1b34b8 100644
---- a/drivers/scsi/sym53c8xx_2/sym_glue.c
-+++ b/drivers/scsi/sym53c8xx_2/sym_glue.c
-@@ -1756,6 +1756,8 @@ static int __devinit sym2_probe(struct pci_dev *pdev,
-       int do_iounmap = 0;
-       int do_disable_device = 1;
-+      pax_track_stack();
-+
-       memset(&sym_dev, 0, sizeof(sym_dev));
-       memset(&nvram, 0, sizeof(nvram));
-       sym_dev.pdev = pdev;
-diff --git a/drivers/scsi/vmw_pvscsi.c b/drivers/scsi/vmw_pvscsi.c
-index a18996d..fe993cb 100644
---- a/drivers/scsi/vmw_pvscsi.c
-+++ b/drivers/scsi/vmw_pvscsi.c
-@@ -447,6 +447,8 @@ static void pvscsi_setup_all_rings(const struct pvscsi_adapter *adapter)
-       dma_addr_t base;
-       unsigned i;
-+      pax_track_stack();
-+
-       cmd.ringsStatePPN   = adapter->ringStatePA >> PAGE_SHIFT;
-       cmd.reqRingNumPages = adapter->req_pages;
-       cmd.cmpRingNumPages = adapter->cmp_pages;
-diff --git a/drivers/spi/spi-dw-pci.c b/drivers/spi/spi-dw-pci.c
-index c5f37f0..898d202 100644
---- a/drivers/spi/spi-dw-pci.c
-+++ b/drivers/spi/spi-dw-pci.c
-@@ -148,7 +148,7 @@ static int spi_resume(struct pci_dev *pdev)
- #define spi_resume    NULL
- #endif
--static const struct pci_device_id pci_ids[] __devinitdata = {
-+static const struct pci_device_id pci_ids[] __devinitconst = {
-       /* Intel MID platform SPI controller 0 */
-       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0800) },
-       {},
+               return 1;
+       for (k = 0; k < num_leaves; ++k) {
+-              struct sg_proc_leaf *leaf = &sg_proc_leaf_arr[k];
++              const struct sg_proc_leaf *leaf = &sg_proc_leaf_arr[k];
+               umode_t mask = leaf->fops->write ? S_IRUGO | S_IWUSR : S_IRUGO;
+               proc_create(leaf->name, mask, sg_proc_sgp, leaf->fops);
+       }
 diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
-index 4d1b9f5..8408fe3 100644
+index 3d8f662..070f1a5 100644
 --- a/drivers/spi/spi.c
 +++ b/drivers/spi/spi.c
-@@ -1023,7 +1023,7 @@ int spi_bus_unlock(struct spi_master *master)
+@@ -1361,7 +1361,7 @@ int spi_bus_unlock(struct spi_master *master)
  EXPORT_SYMBOL_GPL(spi_bus_unlock);
  
  /* portable code must never pass more than 32 bytes */
@@ -36743,291 +37305,11 @@ index 4d1b9f5..8408fe3 100644
  
  static u8     *buf;
  
-diff --git a/drivers/staging/ath6kl/os/linux/ar6000_drv.c b/drivers/staging/ath6kl/os/linux/ar6000_drv.c
-index 32ee39a..3004c3d 100644
---- a/drivers/staging/ath6kl/os/linux/ar6000_drv.c
-+++ b/drivers/staging/ath6kl/os/linux/ar6000_drv.c
-@@ -362,7 +362,7 @@ static struct ar_cookie s_ar_cookie_mem[MAX_COOKIE_NUM];
-         (((ar)->arTargetType == TARGET_TYPE_AR6003) ? AR6003_HOST_INTEREST_ITEM_ADDRESS(item) : 0))
--static struct net_device_ops ar6000_netdev_ops = {
-+static net_device_ops_no_const ar6000_netdev_ops = {
-     .ndo_init               = NULL,
-     .ndo_open               = ar6000_open,
-     .ndo_stop               = ar6000_close,
-diff --git a/drivers/staging/ath6kl/os/linux/include/ar6k_pal.h b/drivers/staging/ath6kl/os/linux/include/ar6k_pal.h
-index 39e0873..0925710 100644
---- a/drivers/staging/ath6kl/os/linux/include/ar6k_pal.h
-+++ b/drivers/staging/ath6kl/os/linux/include/ar6k_pal.h
-@@ -30,7 +30,7 @@ typedef bool (*ar6k_pal_recv_pkt_t)(void *pHciPalInfo, void *skb);
- typedef struct ar6k_pal_config_s
- {
-       ar6k_pal_recv_pkt_t fpar6k_pal_recv_pkt;
--}ar6k_pal_config_t;
-+} __no_const ar6k_pal_config_t;
- void register_pal_cb(ar6k_pal_config_t *palConfig_p);
- #endif /* _AR6K_PAL_H_ */
-diff --git a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
-index 05dada9..96171c6 100644
---- a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
-+++ b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
-@@ -451,14 +451,14 @@ static void brcmf_op_if(struct brcmf_if *ifp)
-                       free_netdev(ifp->net);
-               }
-               /* Allocate etherdev, including space for private structure */
--              ifp->net = alloc_etherdev(sizeof(drvr_priv));
-+              ifp->net = alloc_etherdev(sizeof(*drvr_priv));
-               if (!ifp->net) {
-                       BRCMF_ERROR(("%s: OOM - alloc_etherdev\n", __func__));
-                       ret = -ENOMEM;
-               }
-               if (ret == 0) {
-                       strcpy(ifp->net->name, ifp->name);
--                      memcpy(netdev_priv(ifp->net), &drvr_priv, sizeof(drvr_priv));
-+                      memcpy(netdev_priv(ifp->net), &drvr_priv, sizeof(*drvr_priv));
-                       err = brcmf_net_attach(&drvr_priv->pub, ifp->idx);
-                       if (err != 0) {
-                               BRCMF_ERROR(("%s: brcmf_net_attach failed, "
-@@ -1279,7 +1279,7 @@ struct brcmf_pub *brcmf_attach(struct brcmf_bus *bus, uint bus_hdrlen)
-       BRCMF_TRACE(("%s: Enter\n", __func__));
-       /* Allocate etherdev, including space for private structure */
--      net = alloc_etherdev(sizeof(drvr_priv));
-+      net = alloc_etherdev(sizeof(*drvr_priv));
-       if (!net) {
-               BRCMF_ERROR(("%s: OOM - alloc_etherdev\n", __func__));
-               goto fail;
-@@ -1295,7 +1295,7 @@ struct brcmf_pub *brcmf_attach(struct brcmf_bus *bus, uint bus_hdrlen)
-       /*
-        * Save the brcmf_info into the priv
-        */
--      memcpy(netdev_priv(net), &drvr_priv, sizeof(drvr_priv));
-+      memcpy(netdev_priv(net), &drvr_priv, sizeof(*drvr_priv));
-       /* Set network interface name if it was provided as module parameter */
-       if (iface_name[0]) {
-@@ -1352,7 +1352,7 @@ struct brcmf_pub *brcmf_attach(struct brcmf_bus *bus, uint bus_hdrlen)
-       /*
-        * Save the brcmf_info into the priv
-        */
--      memcpy(netdev_priv(net), &drvr_priv, sizeof(drvr_priv));
-+      memcpy(netdev_priv(net), &drvr_priv, sizeof(*drvr_priv));
- #if defined(CONFIG_PM_SLEEP)
-       atomic_set(&brcmf_mmc_suspend, false);
-diff --git a/drivers/staging/brcm80211/brcmfmac/sdio_host.h b/drivers/staging/brcm80211/brcmfmac/sdio_host.h
-index d345472..cedb19e 100644
---- a/drivers/staging/brcm80211/brcmfmac/sdio_host.h
-+++ b/drivers/staging/brcm80211/brcmfmac/sdio_host.h
-@@ -263,7 +263,7 @@ struct brcmf_sdioh_driver {
-                        u16 func, uint bustype, u32 regsva, void *param);
-       /* detach from device */
-       void (*detach) (void *ch);
--};
-+} __no_const;
- struct sdioh_info;
-diff --git a/drivers/staging/brcm80211/brcmsmac/phy/phy_int.h b/drivers/staging/brcm80211/brcmsmac/phy/phy_int.h
-index a01b01c..b3f721c 100644
---- a/drivers/staging/brcm80211/brcmsmac/phy/phy_int.h
-+++ b/drivers/staging/brcm80211/brcmsmac/phy/phy_int.h
-@@ -591,7 +591,7 @@ struct phy_func_ptr {
-       initfn_t carrsuppr;
-       rxsigpwrfn_t rxsigpwr;
-       detachfn_t detach;
--};
-+} __no_const;
- struct brcms_phy {
-       struct brcms_phy_pub pubpi_ro;
-diff --git a/drivers/staging/et131x/et1310_tx.c b/drivers/staging/et131x/et1310_tx.c
-index 8fb3051..a8b6c67 100644
---- a/drivers/staging/et131x/et1310_tx.c
-+++ b/drivers/staging/et131x/et1310_tx.c
-@@ -635,11 +635,11 @@ inline void et131x_free_send_packet(struct et131x_adapter *etdev,
-       struct net_device_stats *stats = &etdev->net_stats;
-       if (tcb->flags & fMP_DEST_BROAD)
--              atomic_inc(&etdev->stats.brdcstxmt);
-+              atomic_inc_unchecked(&etdev->stats.brdcstxmt);
-       else if (tcb->flags & fMP_DEST_MULTI)
--              atomic_inc(&etdev->stats.multixmt);
-+              atomic_inc_unchecked(&etdev->stats.multixmt);
-       else
--              atomic_inc(&etdev->stats.unixmt);
-+              atomic_inc_unchecked(&etdev->stats.unixmt);
-       if (tcb->skb) {
-               stats->tx_bytes += tcb->skb->len;
-diff --git a/drivers/staging/et131x/et131x_adapter.h b/drivers/staging/et131x/et131x_adapter.h
-index 408c50b..fd65e9f 100644
---- a/drivers/staging/et131x/et131x_adapter.h
-+++ b/drivers/staging/et131x/et131x_adapter.h
-@@ -106,11 +106,11 @@ struct ce_stats {
-        * operations
-        */
-       u32 unircv;     /* # multicast packets received */
--      atomic_t unixmt;        /* # multicast packets for Tx */
-+      atomic_unchecked_t unixmt;      /* # multicast packets for Tx */
-       u32 multircv;   /* # multicast packets received */
--      atomic_t multixmt;      /* # multicast packets for Tx */
-+      atomic_unchecked_t multixmt;    /* # multicast packets for Tx */
-       u32 brdcstrcv;  /* # broadcast packets received */
--      atomic_t brdcstxmt;     /* # broadcast packets for Tx */
-+      atomic_unchecked_t brdcstxmt;   /* # broadcast packets for Tx */
-       u32 norcvbuf;   /* # Rx packets discarded */
-       u32 noxmtbuf;   /* # Tx packets discarded */
-diff --git a/drivers/staging/hv/channel.c b/drivers/staging/hv/channel.c
-index 455f47a..86205ff 100644
---- a/drivers/staging/hv/channel.c
-+++ b/drivers/staging/hv/channel.c
-@@ -447,8 +447,8 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
-       int ret = 0;
-       int t;
--      next_gpadl_handle = atomic_read(&vmbus_connection.next_gpadl_handle);
--      atomic_inc(&vmbus_connection.next_gpadl_handle);
-+      next_gpadl_handle = atomic_read_unchecked(&vmbus_connection.next_gpadl_handle);
-+      atomic_inc_unchecked(&vmbus_connection.next_gpadl_handle);
-       ret = create_gpadl_header(kbuffer, size, &msginfo, &msgcount);
-       if (ret)
-diff --git a/drivers/staging/hv/hv.c b/drivers/staging/hv/hv.c
-index 824f816..a800af7 100644
---- a/drivers/staging/hv/hv.c
-+++ b/drivers/staging/hv/hv.c
-@@ -132,7 +132,7 @@ static u64 do_hypercall(u64 control, void *input, void *output)
-       u64 output_address = (output) ? virt_to_phys(output) : 0;
-       u32 output_address_hi = output_address >> 32;
-       u32 output_address_lo = output_address & 0xFFFFFFFF;
--      volatile void *hypercall_page = hv_context.hypercall_page;
-+      volatile void *hypercall_page = ktva_ktla(hv_context.hypercall_page);
-       __asm__ __volatile__ ("call *%8" : "=d"(hv_status_hi),
-                             "=a"(hv_status_lo) : "d" (control_hi),
-diff --git a/drivers/staging/hv/hv_mouse.c b/drivers/staging/hv/hv_mouse.c
-index d957fc2..43cedd9 100644
---- a/drivers/staging/hv/hv_mouse.c
-+++ b/drivers/staging/hv/hv_mouse.c
-@@ -878,8 +878,10 @@ static void reportdesc_callback(struct hv_device *dev, void *packet, u32 len)
-       if (hid_dev) {
-               DPRINT_INFO(INPUTVSC_DRV, "hid_device created");
--              hid_dev->ll_driver->open  = mousevsc_hid_open;
--              hid_dev->ll_driver->close = mousevsc_hid_close;
-+              pax_open_kernel();
-+              *(void **)&hid_dev->ll_driver->open  = mousevsc_hid_open;
-+              *(void **)&hid_dev->ll_driver->close = mousevsc_hid_close;
-+              pax_close_kernel();
-               hid_dev->bus = BUS_VIRTUAL;
-               hid_dev->vendor = input_device_ctx->device_info.vendor;
-diff --git a/drivers/staging/hv/hyperv_vmbus.h b/drivers/staging/hv/hyperv_vmbus.h
-index 349ad80..3f75719 100644
---- a/drivers/staging/hv/hyperv_vmbus.h
-+++ b/drivers/staging/hv/hyperv_vmbus.h
-@@ -559,7 +559,7 @@ enum vmbus_connect_state {
- struct vmbus_connection {
-       enum vmbus_connect_state conn_state;
--      atomic_t next_gpadl_handle;
-+      atomic_unchecked_t next_gpadl_handle;
-       /*
-        * Represents channel interrupts. Each bit position represents a
-diff --git a/drivers/staging/hv/rndis_filter.c b/drivers/staging/hv/rndis_filter.c
-index dbb5201..d6047c6 100644
---- a/drivers/staging/hv/rndis_filter.c
-+++ b/drivers/staging/hv/rndis_filter.c
-@@ -43,7 +43,7 @@ struct rndis_device {
-       enum rndis_device_state state;
-       u32 link_stat;
--      atomic_t new_req_id;
-+      atomic_unchecked_t new_req_id;
-       spinlock_t request_lock;
-       struct list_head req_list;
-@@ -117,7 +117,7 @@ static struct rndis_request *get_rndis_request(struct rndis_device *dev,
-        * template
-        */
-       set = &rndis_msg->msg.set_req;
--      set->req_id = atomic_inc_return(&dev->new_req_id);
-+      set->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
-       /* Add to the request list */
-       spin_lock_irqsave(&dev->request_lock, flags);
-@@ -622,7 +622,7 @@ static void rndis_filter_halt_device(struct rndis_device *dev)
-       /* Setup the rndis set */
-       halt = &request->request_msg.msg.halt_req;
--      halt->req_id = atomic_inc_return(&dev->new_req_id);
-+      halt->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
-       /* Ignore return since this msg is optional. */
-       rndis_filter_send_request(dev, request);
-diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c
-index 1c949f5..7a8b104 100644
---- a/drivers/staging/hv/vmbus_drv.c
-+++ b/drivers/staging/hv/vmbus_drv.c
-@@ -660,11 +660,11 @@ int vmbus_child_device_register(struct hv_device *child_device_obj)
- {
-       int ret = 0;
--      static atomic_t device_num = ATOMIC_INIT(0);
-+      static atomic_unchecked_t device_num = ATOMIC_INIT(0);
-       /* Set the device name. Otherwise, device_register() will fail. */
-       dev_set_name(&child_device_obj->device, "vmbus_0_%d",
--                   atomic_inc_return(&device_num));
-+                   atomic_inc_return_unchecked(&device_num));
-       /* The new device belongs to this bus */
-       child_device_obj->device.bus = &hv_bus; /* device->dev.bus; */
-diff --git a/drivers/staging/iio/ring_generic.h b/drivers/staging/iio/ring_generic.h
-index 3f26f71..fb5c787 100644
---- a/drivers/staging/iio/ring_generic.h
-+++ b/drivers/staging/iio/ring_generic.h
-@@ -62,7 +62,7 @@ struct iio_ring_access_funcs {
-       int (*is_enabled)(struct iio_ring_buffer *ring);
-       int (*enable)(struct iio_ring_buffer *ring);
--};
-+} __no_const;
- struct iio_ring_setup_ops {
-       int                             (*preenable)(struct iio_dev *);
-diff --git a/drivers/staging/mei/interface.c b/drivers/staging/mei/interface.c
-index cfec92d..a65dacf 100644
---- a/drivers/staging/mei/interface.c
-+++ b/drivers/staging/mei/interface.c
-@@ -332,7 +332,7 @@ int mei_send_flow_control(struct mei_device *dev, struct mei_cl *cl)
-       mei_hdr->reserved = 0;
-       mei_flow_control = (struct hbm_flow_control *) &dev->wr_msg_buf[1];
--      memset(mei_flow_control, 0, sizeof(mei_flow_control));
-+      memset(mei_flow_control, 0, sizeof(*mei_flow_control));
-       mei_flow_control->host_addr = cl->host_client_id;
-       mei_flow_control->me_addr = cl->me_client_id;
-       mei_flow_control->cmd.cmd = MEI_FLOW_CONTROL_CMD;
-@@ -396,7 +396,7 @@ int mei_disconnect(struct mei_device *dev, struct mei_cl *cl)
-       mei_cli_disconnect =
-           (struct hbm_client_disconnect_request *) &dev->wr_msg_buf[1];
--      memset(mei_cli_disconnect, 0, sizeof(mei_cli_disconnect));
-+      memset(mei_cli_disconnect, 0, sizeof(*mei_cli_disconnect));
-       mei_cli_disconnect->host_addr = cl->host_client_id;
-       mei_cli_disconnect->me_addr = cl->me_client_id;
-       mei_cli_disconnect->cmd.cmd = CLIENT_DISCONNECT_REQ_CMD;
 diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
-index 8b307b4..a97ac91 100644
+index d91751f..a3a9e36 100644
 --- a/drivers/staging/octeon/ethernet-rx.c
 +++ b/drivers/staging/octeon/ethernet-rx.c
-@@ -420,11 +420,11 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
+@@ -421,11 +421,11 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
                                /* Increment RX stats for virtual ports */
                                if (work->ipprt >= CVMX_PIP_NUM_INPUT_PORTS) {
  #ifdef CONFIG_64BIT
@@ -37043,7 +37325,7 @@ index 8b307b4..a97ac91 100644
  #endif
                                }
                                netif_receive_skb(skb);
-@@ -436,9 +436,9 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
+@@ -437,9 +437,9 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
                                           dev->name);
                                */
  #ifdef CONFIG_64BIT
@@ -37056,10 +37338,10 @@ index 8b307b4..a97ac91 100644
                                dev_kfree_skb_irq(skb);
                        }
 diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c
-index a8f780e..aef1098 100644
+index 60cba81..71eb239 100644
 --- a/drivers/staging/octeon/ethernet.c
 +++ b/drivers/staging/octeon/ethernet.c
-@@ -258,11 +258,11 @@ static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
+@@ -259,11 +259,11 @@ static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
                 * since the RX tasklet also increments it.
                 */
  #ifdef CONFIG_64BIT
@@ -37075,80 +37357,11 @@ index a8f780e..aef1098 100644
  #endif
        }
  
-diff --git a/drivers/staging/pohmelfs/inode.c b/drivers/staging/pohmelfs/inode.c
-index f3c6060..56bf826 100644
---- a/drivers/staging/pohmelfs/inode.c
-+++ b/drivers/staging/pohmelfs/inode.c
-@@ -1861,7 +1861,7 @@ static int pohmelfs_fill_super(struct super_block *sb, void *data, int silent)
-       mutex_init(&psb->mcache_lock);
-       psb->mcache_root = RB_ROOT;
-       psb->mcache_timeout = msecs_to_jiffies(5000);
--      atomic_long_set(&psb->mcache_gen, 0);
-+      atomic_long_set_unchecked(&psb->mcache_gen, 0);
-       psb->trans_max_pages = 100;
-@@ -1876,7 +1876,7 @@ static int pohmelfs_fill_super(struct super_block *sb, void *data, int silent)
-       INIT_LIST_HEAD(&psb->crypto_ready_list);
-       INIT_LIST_HEAD(&psb->crypto_active_list);
--      atomic_set(&psb->trans_gen, 1);
-+      atomic_set_unchecked(&psb->trans_gen, 1);
-       atomic_long_set(&psb->total_inodes, 0);
-       mutex_init(&psb->state_lock);
-diff --git a/drivers/staging/pohmelfs/mcache.c b/drivers/staging/pohmelfs/mcache.c
-index e22665c..a2a9390 100644
---- a/drivers/staging/pohmelfs/mcache.c
-+++ b/drivers/staging/pohmelfs/mcache.c
-@@ -121,7 +121,7 @@ struct pohmelfs_mcache *pohmelfs_mcache_alloc(struct pohmelfs_sb *psb, u64 start
-       m->data = data;
-       m->start = start;
-       m->size = size;
--      m->gen = atomic_long_inc_return(&psb->mcache_gen);
-+      m->gen = atomic_long_inc_return_unchecked(&psb->mcache_gen);
-       mutex_lock(&psb->mcache_lock);
-       err = pohmelfs_mcache_insert(psb, m);
-diff --git a/drivers/staging/pohmelfs/netfs.h b/drivers/staging/pohmelfs/netfs.h
-index 985b6b7..7699e05 100644
---- a/drivers/staging/pohmelfs/netfs.h
-+++ b/drivers/staging/pohmelfs/netfs.h
-@@ -571,14 +571,14 @@ struct pohmelfs_config;
- struct pohmelfs_sb {
-       struct rb_root          mcache_root;
-       struct mutex            mcache_lock;
--      atomic_long_t           mcache_gen;
-+      atomic_long_unchecked_t mcache_gen;
-       unsigned long           mcache_timeout;
-       unsigned int            idx;
-       unsigned int            trans_retries;
--      atomic_t                trans_gen;
-+      atomic_unchecked_t      trans_gen;
-       unsigned int            crypto_attached_size;
-       unsigned int            crypto_align_size;
-diff --git a/drivers/staging/pohmelfs/trans.c b/drivers/staging/pohmelfs/trans.c
-index 36a2535..0591bf4 100644
---- a/drivers/staging/pohmelfs/trans.c
-+++ b/drivers/staging/pohmelfs/trans.c
-@@ -492,7 +492,7 @@ int netfs_trans_finish(struct netfs_trans *t, struct pohmelfs_sb *psb)
-       int err;
-       struct netfs_cmd *cmd = t->iovec.iov_base;
--      t->gen = atomic_inc_return(&psb->trans_gen);
-+      t->gen = atomic_inc_return_unchecked(&psb->trans_gen);
-       cmd->size = t->iovec.iov_len - sizeof(struct netfs_cmd) +
-               t->attached_size + t->attached_pages * sizeof(struct netfs_cmd);
 diff --git a/drivers/staging/rtl8712/rtl871x_io.h b/drivers/staging/rtl8712/rtl871x_io.h
-index b70cb2b..4db41a7 100644
+index d3d8727..f9327bb8 100644
 --- a/drivers/staging/rtl8712/rtl871x_io.h
 +++ b/drivers/staging/rtl8712/rtl871x_io.h
-@@ -83,7 +83,7 @@ struct       _io_ops {
+@@ -108,7 +108,7 @@ struct     _io_ops {
                          u8 *pmem);
        u32 (*_write_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt,
                           u8 *pmem);
@@ -37170,8 +37383,25 @@ index c7b5e8b..783d6cb 100644
                        return -EFAULT;
  
        return 0;
+diff --git a/drivers/staging/speakup/speakup_soft.c b/drivers/staging/speakup/speakup_soft.c
+index 42cdafe..2769103 100644
+--- a/drivers/staging/speakup/speakup_soft.c
++++ b/drivers/staging/speakup/speakup_soft.c
+@@ -241,11 +241,11 @@ static ssize_t softsynth_read(struct file *fp, char *buf, size_t count,
+                       break;
+               } else if (!initialized) {
+                       if (*init) {
+-                              ch = *init;
+                               init++;
+                       } else {
+                               initialized = 1;
+                       }
++                      ch = *init;
+               } else {
+                       ch = synth_buffer_getc();
+               }
 diff --git a/drivers/staging/usbip/usbip_common.h b/drivers/staging/usbip/usbip_common.h
-index be21617..0954e45 100644
+index c7b888c..c94be93 100644
 --- a/drivers/staging/usbip/usbip_common.h
 +++ b/drivers/staging/usbip/usbip_common.h
 @@ -289,7 +289,7 @@ struct usbip_device {
@@ -37182,12 +37412,12 @@ index be21617..0954e45 100644
 +      } __no_const eh_ops;
  };
  
- #if 0
+ /* usbip_common.c */
 diff --git a/drivers/staging/usbip/vhci.h b/drivers/staging/usbip/vhci.h
-index 71a586e..4d8a91a 100644
+index 88b3298..3783eee 100644
 --- a/drivers/staging/usbip/vhci.h
 +++ b/drivers/staging/usbip/vhci.h
-@@ -85,7 +85,7 @@ struct vhci_hcd {
+@@ -88,7 +88,7 @@ struct vhci_hcd {
        unsigned resuming:1;
        unsigned long re_timeout;
  
@@ -37197,10 +37427,10 @@ index 71a586e..4d8a91a 100644
        /*
         * NOTE:
 diff --git a/drivers/staging/usbip/vhci_hcd.c b/drivers/staging/usbip/vhci_hcd.c
-index 2ee97e2..0420b86 100644
+index dca9bf1..80735c9 100644
 --- a/drivers/staging/usbip/vhci_hcd.c
 +++ b/drivers/staging/usbip/vhci_hcd.c
-@@ -527,7 +527,7 @@ static void vhci_tx_urb(struct urb *urb)
+@@ -488,7 +488,7 @@ static void vhci_tx_urb(struct urb *urb)
                return;
        }
  
@@ -37209,7 +37439,7 @@ index 2ee97e2..0420b86 100644
        if (priv->seqnum == 0xffff)
                dev_info(&urb->dev->dev, "seqnum max\n");
  
-@@ -779,7 +779,7 @@ static int vhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
+@@ -740,7 +740,7 @@ static int vhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
                        return -ENOMEM;
                }
  
@@ -37218,7 +37448,7 @@ index 2ee97e2..0420b86 100644
                if (unlink->seqnum == 0xffff)
                        pr_info("seqnum max\n");
  
-@@ -969,7 +969,7 @@ static int vhci_start(struct usb_hcd *hcd)
+@@ -928,7 +928,7 @@ static int vhci_start(struct usb_hcd *hcd)
                vdev->rhport = rhport;
        }
  
@@ -37228,7 +37458,7 @@ index 2ee97e2..0420b86 100644
  
        hcd->power_budget = 0; /* no limit */
 diff --git a/drivers/staging/usbip/vhci_rx.c b/drivers/staging/usbip/vhci_rx.c
-index 3872b8c..fe6d2f4 100644
+index f5fba732..210a16c 100644
 --- a/drivers/staging/usbip/vhci_rx.c
 +++ b/drivers/staging/usbip/vhci_rx.c
 @@ -77,7 +77,7 @@ static void vhci_recv_ret_submit(struct vhci_device *vdev,
@@ -37336,7 +37566,7 @@ index 1ca66ea..76f1343 100644
  void tmem_register_pamops(struct tmem_pamops *m)
  {
 diff --git a/drivers/staging/zcache/tmem.h b/drivers/staging/zcache/tmem.h
-index ed147c4..94fc3c6 100644
+index 0d4aa82..f7832d4 100644
 --- a/drivers/staging/zcache/tmem.h
 +++ b/drivers/staging/zcache/tmem.h
 @@ -180,6 +180,7 @@ struct tmem_pamops {
@@ -37355,143 +37585,78 @@ index ed147c4..94fc3c6 100644
  extern void tmem_register_hostops(struct tmem_hostops *m);
  
  /* core tmem accessor functions */
-diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
-index 26a5d8b..74434f8 100644
---- a/drivers/target/iscsi/iscsi_target.c
-+++ b/drivers/target/iscsi/iscsi_target.c
-@@ -1368,7 +1368,7 @@ static int iscsit_handle_data_out(struct iscsi_conn *conn, unsigned char *buf)
-                * outstanding_r2ts reaches zero, go ahead and send the delayed
-                * TASK_ABORTED status.
-                */
--              if (atomic_read(&se_cmd->t_transport_aborted) != 0) {
-+              if (atomic_read_unchecked(&se_cmd->t_transport_aborted) != 0) {
-                       if (hdr->flags & ISCSI_FLAG_CMD_FINAL)
-                               if (--cmd->outstanding_r2ts < 1) {
-                                       iscsit_stop_dataout_timer(cmd);
-diff --git a/drivers/target/target_core_alua.c b/drivers/target/target_core_alua.c
-index 8badcb4..94c9ac6 100644
---- a/drivers/target/target_core_alua.c
-+++ b/drivers/target/target_core_alua.c
-@@ -723,6 +723,8 @@ static int core_alua_update_tpg_primary_metadata(
-       char path[ALUA_METADATA_PATH_LEN];
-       int len;
-+      pax_track_stack();
-+
-       memset(path, 0, ALUA_METADATA_PATH_LEN);
-       len = snprintf(md_buf, tg_pt_gp->tg_pt_gp_md_buf_len,
-@@ -986,6 +988,8 @@ static int core_alua_update_tpg_secondary_metadata(
-       char path[ALUA_METADATA_PATH_LEN], wwn[ALUA_SECONDARY_METADATA_WWN_LEN];
-       int len;
-+      pax_track_stack();
-+
-       memset(path, 0, ALUA_METADATA_PATH_LEN);
-       memset(wwn, 0, ALUA_SECONDARY_METADATA_WWN_LEN);
 diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
-index f04d4ef..7de212b 100644
+index 30a6770..fa323f8 100644
 --- a/drivers/target/target_core_cdb.c
 +++ b/drivers/target/target_core_cdb.c
-@@ -933,6 +933,8 @@ target_emulate_modesense(struct se_cmd *cmd, int ten)
-       int length = 0;
-       unsigned char buf[SE_MODE_PAGE_BUF];
-+      pax_track_stack();
-+
-       memset(buf, 0, SE_MODE_PAGE_BUF);
-       switch (cdb[2] & 0x3f) {
-diff --git a/drivers/target/target_core_configfs.c b/drivers/target/target_core_configfs.c
-index b2575d8..b6b28fd 100644
---- a/drivers/target/target_core_configfs.c
-+++ b/drivers/target/target_core_configfs.c
-@@ -1267,6 +1267,8 @@ static ssize_t target_core_dev_pr_show_attr_res_pr_registered_i_pts(
-       ssize_t len = 0;
-       int reg_count = 0, prf_isid;
-+      pax_track_stack();
-+
-       if (!su_dev->se_dev_ptr)
-               return -ENODEV;
+@@ -1107,7 +1107,7 @@ int target_emulate_write_same(struct se_task *task)
+       if (num_blocks != 0)
+               range = num_blocks;
+       else
+-              range = (dev->transport->get_blocks(dev) - lba);
++              range = (dev->transport->get_blocks(dev) - lba) + 1;
  
+       pr_debug("WRITE_SAME UNMAP: LBA: %llu Range: %llu\n",
+                (unsigned long long)lba, (unsigned long long)range);
 diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
-index 7fd3a16..bc2fb3e 100644
+index c3148b1..89d10e6 100644
 --- a/drivers/target/target_core_pr.c
 +++ b/drivers/target/target_core_pr.c
-@@ -918,6 +918,8 @@ static int __core_scsi3_check_aptpl_registration(
-       unsigned char t_port[PR_APTPL_MAX_TPORT_LEN];
-       u16 tpgt;
-+      pax_track_stack();
-+
-       memset(i_port, 0, PR_APTPL_MAX_IPORT_LEN);
-       memset(t_port, 0, PR_APTPL_MAX_TPORT_LEN);
-       /*
-@@ -1867,6 +1869,8 @@ static int __core_scsi3_update_aptpl_buf(
-       ssize_t len = 0;
-       int reg_count = 0;
-+      pax_track_stack();
-+
-       memset(buf, 0, pr_aptpl_buf_len);
-       /*
-        * Called to clear metadata once APTPL has been deactivated.
-@@ -1989,6 +1993,8 @@ static int __core_scsi3_write_aptpl_to_file(
-       char path[512];
-       int ret;
+@@ -2038,7 +2038,7 @@ static int __core_scsi3_write_aptpl_to_file(
+       if (IS_ERR(file) || !file || !file->f_dentry) {
+               pr_err("filp_open(%s) for APTPL metadata"
+                       " failed\n", path);
+-              return (PTR_ERR(file) < 0 ? PTR_ERR(file) : -ENOENT);
++              return IS_ERR(file) ? PTR_ERR(file) : -ENOENT;
+       }
+       iov[0].iov_base = &buf[0];
+@@ -3826,7 +3826,7 @@ int target_scsi3_emulate_pr_out(struct se_task *task)
+                       " SPC-2 reservation is held, returning"
+                       " RESERVATION_CONFLICT\n");
+               cmd->scsi_sense_reason = TCM_RESERVATION_CONFLICT;
+-              ret = EINVAL;
++              ret = -EINVAL;
+               goto out;
+       }
  
-+      pax_track_stack();
-+
-       memset(iov, 0, sizeof(struct iovec));
-       memset(path, 0, 512);
+@@ -3836,7 +3836,8 @@ int target_scsi3_emulate_pr_out(struct se_task *task)
+        */
+       if (!cmd->se_sess) {
+               cmd->scsi_sense_reason = TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
+-              return -EINVAL;
++              ret = -EINVAL;
++              goto out;
+       }
  
+       if (cmd->data_length < 24) {
 diff --git a/drivers/target/target_core_tmr.c b/drivers/target/target_core_tmr.c
-index 5c1b8c5..0cb7d0e 100644
+index f015839..b15dfc4 100644
 --- a/drivers/target/target_core_tmr.c
 +++ b/drivers/target/target_core_tmr.c
-@@ -255,7 +255,7 @@ static void core_tmr_drain_task_list(
+@@ -327,7 +327,7 @@ static void core_tmr_drain_task_list(
                        cmd->se_tfo->get_task_tag(cmd), cmd->pr_res_key,
                        cmd->t_task_list_num,
                        atomic_read(&cmd->t_task_cdbs_left),
 -                      atomic_read(&cmd->t_task_cdbs_sent),
 +                      atomic_read_unchecked(&cmd->t_task_cdbs_sent),
-                       atomic_read(&cmd->t_transport_active),
-                       atomic_read(&cmd->t_transport_stop),
-                       atomic_read(&cmd->t_transport_sent));
-@@ -291,7 +291,7 @@ static void core_tmr_drain_task_list(
-                       pr_debug("LUN_RESET: got t_transport_active = 1 for"
-                               " task: %p, t_fe_count: %d dev: %p\n", task,
-                               fe_count, dev);
--                      atomic_set(&cmd->t_transport_aborted, 1);
-+                      atomic_set_unchecked(&cmd->t_transport_aborted, 1);
-                       spin_unlock_irqrestore(&cmd->t_state_lock, flags);
-                       core_tmr_handle_tas_abort(tmr_nacl, cmd, tas, fe_count);
-@@ -299,7 +299,7 @@ static void core_tmr_drain_task_list(
-               }
-               pr_debug("LUN_RESET: Got t_transport_active = 0 for task: %p,"
-                       " t_fe_count: %d dev: %p\n", task, fe_count, dev);
--              atomic_set(&cmd->t_transport_aborted, 1);
-+              atomic_set_unchecked(&cmd->t_transport_aborted, 1);
-               spin_unlock_irqrestore(&cmd->t_state_lock, flags);
-               core_tmr_handle_tas_abort(tmr_nacl, cmd, tas, fe_count);
+                       (cmd->transport_state & CMD_T_ACTIVE) != 0,
+                       (cmd->transport_state & CMD_T_STOP) != 0,
+                       (cmd->transport_state & CMD_T_SENT) != 0);
 diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
-index 013c100..8fd2e57 100644
+index 443704f..92d3517 100644
 --- a/drivers/target/target_core_transport.c
 +++ b/drivers/target/target_core_transport.c
-@@ -1445,7 +1445,7 @@ struct se_device *transport_add_device_to_core_hba(
-       dev->queue_depth        = dev_limits->queue_depth;
-       atomic_set(&dev->depth_left, dev->queue_depth);
+@@ -1355,7 +1355,7 @@ struct se_device *transport_add_device_to_core_hba(
+       spin_lock_init(&dev->se_port_lock);
+       spin_lock_init(&dev->se_tmr_lock);
+       spin_lock_init(&dev->qf_cmd_lock);
 -      atomic_set(&dev->dev_ordered_id, 0);
 +      atomic_set_unchecked(&dev->dev_ordered_id, 0);
  
        se_dev_set_default_attribs(dev, dev_limits);
  
-@@ -1633,7 +1633,7 @@ static int transport_check_alloc_task_attr(struct se_cmd *cmd)
+@@ -1542,7 +1542,7 @@ static int transport_check_alloc_task_attr(struct se_cmd *cmd)
         * Used to determine when ORDERED commands should go from
         * Dormant to Active status.
         */
@@ -37500,78 +37665,42 @@ index 013c100..8fd2e57 100644
        smp_mb__after_atomic_inc();
        pr_debug("Allocated se_ordered_id: %u for Task Attr: 0x%02x on %s\n",
                        cmd->se_ordered_id, cmd->sam_task_attr,
-@@ -1960,7 +1960,7 @@ static void transport_generic_request_failure(
-               " t_transport_active: %d t_transport_stop: %d"
-               " t_transport_sent: %d\n", cmd->t_task_list_num,
+@@ -1956,7 +1956,7 @@ void transport_generic_request_failure(struct se_cmd *cmd)
+               " CMD_T_ACTIVE: %d CMD_T_STOP: %d CMD_T_SENT: %d\n",
+               cmd->t_task_list_num,
                atomic_read(&cmd->t_task_cdbs_left),
 -              atomic_read(&cmd->t_task_cdbs_sent),
 +              atomic_read_unchecked(&cmd->t_task_cdbs_sent),
                atomic_read(&cmd->t_task_cdbs_ex_left),
-               atomic_read(&cmd->t_transport_active),
-               atomic_read(&cmd->t_transport_stop),
-@@ -2460,9 +2460,9 @@ check_depth:
+               (cmd->transport_state & CMD_T_ACTIVE) != 0,
+               (cmd->transport_state & CMD_T_STOP) != 0,
+@@ -2216,9 +2216,9 @@ check_depth:
+       cmd = task->task_se_cmd;
        spin_lock_irqsave(&cmd->t_state_lock, flags);
-       atomic_set(&task->task_active, 1);
-       atomic_set(&task->task_sent, 1);
+       task->task_flags |= (TF_ACTIVE | TF_SENT);
 -      atomic_inc(&cmd->t_task_cdbs_sent);
 +      atomic_inc_unchecked(&cmd->t_task_cdbs_sent);
  
 -      if (atomic_read(&cmd->t_task_cdbs_sent) ==
 +      if (atomic_read_unchecked(&cmd->t_task_cdbs_sent) ==
            cmd->t_task_list_num)
-               atomic_set(&cmd->transport_sent, 1);
-@@ -4665,7 +4665,7 @@ static void transport_generic_wait_for_tasks(
-               atomic_set(&cmd->transport_lun_stop, 0);
-       }
-       if (!atomic_read(&cmd->t_transport_active) ||
--           atomic_read(&cmd->t_transport_aborted))
-+           atomic_read_unchecked(&cmd->t_transport_aborted))
-               goto remove;
+               cmd->transport_state |= CMD_T_SENT;
  
-       atomic_set(&cmd->t_transport_stop, 1);
-@@ -4900,7 +4900,7 @@ int transport_check_aborted_status(struct se_cmd *cmd, int send_status)
+diff --git a/drivers/target/tcm_fc/tfc_cmd.c b/drivers/target/tcm_fc/tfc_cmd.c
+index a375f25..da90f64 100644
+--- a/drivers/target/tcm_fc/tfc_cmd.c
++++ b/drivers/target/tcm_fc/tfc_cmd.c
+@@ -240,6 +240,8 @@ u32 ft_get_task_tag(struct se_cmd *se_cmd)
  {
-       int ret = 0;
+       struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd);
  
--      if (atomic_read(&cmd->t_transport_aborted) != 0) {
-+      if (atomic_read_unchecked(&cmd->t_transport_aborted) != 0) {
-               if (!send_status ||
-                    (cmd->se_cmd_flags & SCF_SENT_DELAYED_TAS))
-                       return 1;
-@@ -4937,7 +4937,7 @@ void transport_send_task_abort(struct se_cmd *cmd)
-        */
-       if (cmd->data_direction == DMA_TO_DEVICE) {
-               if (cmd->se_tfo->write_pending_status(cmd) != 0) {
--                      atomic_inc(&cmd->t_transport_aborted);
-+                      atomic_inc_unchecked(&cmd->t_transport_aborted);
-                       smp_mb__after_atomic_inc();
-                       cmd->scsi_status = SAM_STAT_TASK_ABORTED;
-                       transport_new_cmd_failure(cmd);
-@@ -5051,7 +5051,7 @@ static void transport_processing_shutdown(struct se_device *dev)
-                       cmd->se_tfo->get_task_tag(cmd),
-                       cmd->t_task_list_num,
-                       atomic_read(&cmd->t_task_cdbs_left),
--                      atomic_read(&cmd->t_task_cdbs_sent),
-+                      atomic_read_unchecked(&cmd->t_task_cdbs_sent),
-                       atomic_read(&cmd->t_transport_active),
-                       atomic_read(&cmd->t_transport_stop),
-                       atomic_read(&cmd->t_transport_sent));
-diff --git a/drivers/telephony/ixj.c b/drivers/telephony/ixj.c
-index d5f923b..9c78228 100644
---- a/drivers/telephony/ixj.c
-+++ b/drivers/telephony/ixj.c
-@@ -4976,6 +4976,8 @@ static int ixj_daa_cid_read(IXJ *j)
-       bool mContinue;
-       char *pIn, *pOut;
-+      pax_track_stack();
-+
-       if (!SCI_Prepare(j))
-               return 0;
++      if (cmd->aborted)
++              return ~0;
+       return fc_seq_exch(cmd->seq)->rxid;
+ }
  
 diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
-index 4c8b665..1d931eb 100644
+index 3436436..772237b 100644
 --- a/drivers/tty/hvc/hvcs.c
 +++ b/drivers/tty/hvc/hvcs.c
 @@ -83,6 +83,7 @@
@@ -37600,7 +37729,7 @@ index 4c8b665..1d931eb 100644
                spin_unlock_irqrestore(&hvcsd->lock, flags);
                printk(KERN_INFO "HVCS: vterm state unchanged.  "
                                "The hvcs device node is still in use.\n");
-@@ -1145,7 +1146,7 @@ static int hvcs_open(struct tty_struct *tty, struct file *filp)
+@@ -1138,7 +1139,7 @@ static int hvcs_open(struct tty_struct *tty, struct file *filp)
                if ((retval = hvcs_partner_connect(hvcsd)))
                        goto error_release;
  
@@ -37609,7 +37738,7 @@ index 4c8b665..1d931eb 100644
        hvcsd->tty = tty;
        tty->driver_data = hvcsd;
  
-@@ -1179,7 +1180,7 @@ fast_open:
+@@ -1172,7 +1173,7 @@ fast_open:
  
        spin_lock_irqsave(&hvcsd->lock, flags);
        kref_get(&hvcsd->kref);
@@ -37618,7 +37747,7 @@ index 4c8b665..1d931eb 100644
        hvcsd->todo_mask |= HVCS_SCHED_READ;
        spin_unlock_irqrestore(&hvcsd->lock, flags);
  
-@@ -1223,7 +1224,7 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
+@@ -1216,7 +1217,7 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
        hvcsd = tty->driver_data;
  
        spin_lock_irqsave(&hvcsd->lock, flags);
@@ -37627,7 +37756,7 @@ index 4c8b665..1d931eb 100644
  
                vio_disable_interrupts(hvcsd->vdev);
  
-@@ -1249,10 +1250,10 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
+@@ -1242,10 +1243,10 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
                free_irq(irq, hvcsd);
                kref_put(&hvcsd->kref, destroy_hvcs_struct);
                return;
@@ -37640,7 +37769,7 @@ index 4c8b665..1d931eb 100644
        }
  
        spin_unlock_irqrestore(&hvcsd->lock, flags);
-@@ -1268,7 +1269,7 @@ static void hvcs_hangup(struct tty_struct * tty)
+@@ -1261,7 +1262,7 @@ static void hvcs_hangup(struct tty_struct * tty)
  
        spin_lock_irqsave(&hvcsd->lock, flags);
        /* Preserve this so that we know how many kref refs to put */
@@ -37649,7 +37778,7 @@ index 4c8b665..1d931eb 100644
  
        /*
         * Don't kref put inside the spinlock because the destruction
-@@ -1283,7 +1284,7 @@ static void hvcs_hangup(struct tty_struct * tty)
+@@ -1276,7 +1277,7 @@ static void hvcs_hangup(struct tty_struct * tty)
        hvcsd->tty->driver_data = NULL;
        hvcsd->tty = NULL;
  
@@ -37658,7 +37787,7 @@ index 4c8b665..1d931eb 100644
  
        /* This will drop any buffered data on the floor which is OK in a hangup
         * scenario. */
-@@ -1354,7 +1355,7 @@ static int hvcs_write(struct tty_struct *tty,
+@@ -1347,7 +1348,7 @@ static int hvcs_write(struct tty_struct *tty,
         * the middle of a write operation?  This is a crummy place to do this
         * but we want to keep it all in the spinlock.
         */
@@ -37667,7 +37796,7 @@ index 4c8b665..1d931eb 100644
                spin_unlock_irqrestore(&hvcsd->lock, flags);
                return -ENODEV;
        }
-@@ -1428,7 +1429,7 @@ static int hvcs_write_room(struct tty_struct *tty)
+@@ -1421,7 +1422,7 @@ static int hvcs_write_room(struct tty_struct *tty)
  {
        struct hvcs_struct *hvcsd = tty->driver_data;
  
@@ -37677,7 +37806,7 @@ index 4c8b665..1d931eb 100644
  
        return HVCS_BUFF_LEN - hvcsd->chars_in_buffer;
 diff --git a/drivers/tty/ipwireless/tty.c b/drivers/tty/ipwireless/tty.c
-index ef92869..f4ebd88 100644
+index 4daf962..b4a2281 100644
 --- a/drivers/tty/ipwireless/tty.c
 +++ b/drivers/tty/ipwireless/tty.c
 @@ -29,6 +29,7 @@
@@ -37697,7 +37826,7 @@ index ef92869..f4ebd88 100644
        unsigned int control_lines;
        struct mutex ipw_tty_mutex;
        int tx_bytes_queued;
-@@ -127,10 +128,10 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
+@@ -117,10 +118,10 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
                mutex_unlock(&tty->ipw_tty_mutex);
                return -ENODEV;
        }
@@ -37710,7 +37839,7 @@ index ef92869..f4ebd88 100644
  
        tty->linux_tty = linux_tty;
        linux_tty->driver_data = tty;
-@@ -146,9 +147,7 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
+@@ -136,9 +137,7 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
  
  static void do_ipw_close(struct ipw_tty *tty)
  {
@@ -37721,7 +37850,7 @@ index ef92869..f4ebd88 100644
                struct tty_struct *linux_tty = tty->linux_tty;
  
                if (linux_tty != NULL) {
-@@ -169,7 +168,7 @@ static void ipw_hangup(struct tty_struct *linux_tty)
+@@ -159,7 +158,7 @@ static void ipw_hangup(struct tty_struct *linux_tty)
                return;
  
        mutex_lock(&tty->ipw_tty_mutex);
@@ -37730,7 +37859,7 @@ index ef92869..f4ebd88 100644
                mutex_unlock(&tty->ipw_tty_mutex);
                return;
        }
-@@ -198,7 +197,7 @@ void ipwireless_tty_received(struct ipw_tty *tty, unsigned char *data,
+@@ -188,7 +187,7 @@ void ipwireless_tty_received(struct ipw_tty *tty, unsigned char *data,
                return;
        }
  
@@ -37739,7 +37868,7 @@ index ef92869..f4ebd88 100644
                mutex_unlock(&tty->ipw_tty_mutex);
                return;
        }
-@@ -240,7 +239,7 @@ static int ipw_write(struct tty_struct *linux_tty,
+@@ -230,7 +229,7 @@ static int ipw_write(struct tty_struct *linux_tty,
                return -ENODEV;
  
        mutex_lock(&tty->ipw_tty_mutex);
@@ -37748,7 +37877,7 @@ index ef92869..f4ebd88 100644
                mutex_unlock(&tty->ipw_tty_mutex);
                return -EINVAL;
        }
-@@ -280,7 +279,7 @@ static int ipw_write_room(struct tty_struct *linux_tty)
+@@ -270,7 +269,7 @@ static int ipw_write_room(struct tty_struct *linux_tty)
        if (!tty)
                return -ENODEV;
  
@@ -37757,7 +37886,7 @@ index ef92869..f4ebd88 100644
                return -EINVAL;
  
        room = IPWIRELESS_TX_QUEUE_SIZE - tty->tx_bytes_queued;
-@@ -322,7 +321,7 @@ static int ipw_chars_in_buffer(struct tty_struct *linux_tty)
+@@ -312,7 +311,7 @@ static int ipw_chars_in_buffer(struct tty_struct *linux_tty)
        if (!tty)
                return 0;
  
@@ -37766,7 +37895,7 @@ index ef92869..f4ebd88 100644
                return 0;
  
        return tty->tx_bytes_queued;
-@@ -403,7 +402,7 @@ static int ipw_tiocmget(struct tty_struct *linux_tty)
+@@ -393,7 +392,7 @@ static int ipw_tiocmget(struct tty_struct *linux_tty)
        if (!tty)
                return -ENODEV;
  
@@ -37775,7 +37904,7 @@ index ef92869..f4ebd88 100644
                return -EINVAL;
  
        return get_control_lines(tty);
-@@ -419,7 +418,7 @@ ipw_tiocmset(struct tty_struct *linux_tty,
+@@ -409,7 +408,7 @@ ipw_tiocmset(struct tty_struct *linux_tty,
        if (!tty)
                return -ENODEV;
  
@@ -37784,7 +37913,7 @@ index ef92869..f4ebd88 100644
                return -EINVAL;
  
        return set_control_lines(tty, set, clear);
-@@ -433,7 +432,7 @@ static int ipw_ioctl(struct tty_struct *linux_tty,
+@@ -423,7 +422,7 @@ static int ipw_ioctl(struct tty_struct *linux_tty,
        if (!tty)
                return -ENODEV;
  
@@ -37793,7 +37922,7 @@ index ef92869..f4ebd88 100644
                return -EINVAL;
  
        /* FIXME: Exactly how is the tty object locked here .. */
-@@ -582,7 +581,7 @@ void ipwireless_tty_free(struct ipw_tty *tty)
+@@ -572,7 +571,7 @@ void ipwireless_tty_free(struct ipw_tty *tty)
                                   against a parallel ioctl etc */
                                mutex_lock(&ttyj->ipw_tty_mutex);
                        }
@@ -37803,10 +37932,10 @@ index ef92869..f4ebd88 100644
                        ipwireless_disassociate_network_ttys(network,
                                                             ttyj->channel_idx);
 diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
-index 8a50e4e..7d9ca3d 100644
+index c43b683..0a88f1c 100644
 --- a/drivers/tty/n_gsm.c
 +++ b/drivers/tty/n_gsm.c
-@@ -1625,7 +1625,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
+@@ -1629,7 +1629,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
        kref_init(&dlci->ref);
        mutex_init(&dlci->mutex);
        dlci->fifo = &dlci->_fifo;
@@ -37816,10 +37945,10 @@ index 8a50e4e..7d9ca3d 100644
                return NULL;
        }
 diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
-index 39d6ab6..eb97f41 100644
+index 94b6eda..15f7cec 100644
 --- a/drivers/tty/n_tty.c
 +++ b/drivers/tty/n_tty.c
-@@ -2123,6 +2123,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
+@@ -2122,6 +2122,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
  {
        *ops = tty_ldisc_N_TTY;
        ops->owner = NULL;
@@ -37829,11 +37958,11 @@ index 39d6ab6..eb97f41 100644
  }
  EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
 diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
-index e18604b..a7d5a11 100644
+index eeae7fa..177a743 100644
 --- a/drivers/tty/pty.c
 +++ b/drivers/tty/pty.c
-@@ -773,8 +773,10 @@ static void __init unix98_pty_init(void)
-       register_sysctl_table(pty_root_table);
+@@ -707,8 +707,10 @@ static void __init unix98_pty_init(void)
+               panic("Couldn't register Unix98 pts driver");
  
        /* Now create the /dev/ptmx special device */
 +      pax_open_kernel();
@@ -37844,24 +37973,11 @@ index e18604b..a7d5a11 100644
  
        cdev_init(&ptmx_cdev, &ptmx_fops);
        if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) ||
-diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c
-index 6a1241c..d04ab0d 100644
---- a/drivers/tty/rocket.c
-+++ b/drivers/tty/rocket.c
-@@ -1277,6 +1277,8 @@ static int get_ports(struct r_port *info, struct rocket_ports __user *retports)
-       struct rocket_ports tmp;
-       int board;
-+      pax_track_stack();
-+
-       if (!retports)
-               return -EFAULT;
-       memset(&tmp, 0, sizeof (tmp));
 diff --git a/drivers/tty/serial/kgdboc.c b/drivers/tty/serial/kgdboc.c
-index 87e7e6c..89744e0 100644
+index 2b42a01..32a2ed3 100644
 --- a/drivers/tty/serial/kgdboc.c
 +++ b/drivers/tty/serial/kgdboc.c
-@@ -23,8 +23,9 @@
+@@ -24,8 +24,9 @@
  #define MAX_CONFIG_LEN                40
  
  static struct kgdb_io         kgdboc_io_ops;
@@ -37872,7 +37988,7 @@ index 87e7e6c..89744e0 100644
  static int configured         = -1;
  
  static char config[MAX_CONFIG_LEN];
-@@ -147,6 +148,8 @@ static void cleanup_kgdboc(void)
+@@ -148,6 +149,8 @@ static void cleanup_kgdboc(void)
        kgdboc_unregister_kbd();
        if (configured == 1)
                kgdb_unregister_io_module(&kgdboc_io_ops);
@@ -37881,7 +37997,7 @@ index 87e7e6c..89744e0 100644
  }
  
  static int configure_kgdboc(void)
-@@ -156,13 +159,13 @@ static int configure_kgdboc(void)
+@@ -157,13 +160,13 @@ static int configure_kgdboc(void)
        int err;
        char *cptr = config;
        struct console *cons;
@@ -37896,7 +38012,7 @@ index 87e7e6c..89744e0 100644
        kgdb_tty_driver = NULL;
  
        kgdboc_use_kms = 0;
-@@ -183,7 +186,7 @@ static int configure_kgdboc(void)
+@@ -184,7 +187,7 @@ static int configure_kgdboc(void)
                int idx;
                if (cons->device && cons->device(cons, &idx) == p &&
                    idx == tty_line) {
@@ -37905,7 +38021,7 @@ index 87e7e6c..89744e0 100644
                        break;
                }
                cons = cons->next;
-@@ -193,12 +196,16 @@ static int configure_kgdboc(void)
+@@ -194,12 +197,16 @@ static int configure_kgdboc(void)
        kgdb_tty_line = tty_line;
  
  do_register:
@@ -37925,7 +38041,7 @@ index 87e7e6c..89744e0 100644
        return 0;
  
  noconfig:
-@@ -212,7 +219,7 @@ noconfig:
+@@ -213,7 +220,7 @@ noconfig:
  static int __init init_kgdboc(void)
  {
        /* Already configured? */
@@ -37934,7 +38050,7 @@ index 87e7e6c..89744e0 100644
                return 0;
  
        return configure_kgdboc();
-@@ -261,7 +268,7 @@ static int param_set_kgdboc_var(const char *kmessage, struct kernel_param *kp)
+@@ -262,7 +269,7 @@ static int param_set_kgdboc_var(const char *kmessage, struct kernel_param *kp)
        if (config[len - 1] == '\n')
                config[len - 1] = '\0';
  
@@ -37943,7 +38059,7 @@ index 87e7e6c..89744e0 100644
                cleanup_kgdboc();
  
        /* Go and configure with the new params. */
-@@ -301,6 +308,15 @@ static struct kgdb_io kgdboc_io_ops = {
+@@ -302,6 +309,15 @@ static struct kgdb_io kgdboc_io_ops = {
        .post_exception         = kgdboc_post_exp_handler,
  };
  
@@ -37959,37 +38075,24 @@ index 87e7e6c..89744e0 100644
  #ifdef CONFIG_KGDB_SERIAL_CONSOLE
  /* This is only available if kgdboc is a built in for early debugging */
  static int __init kgdboc_early_init(char *opt)
-diff --git a/drivers/tty/serial/mfd.c b/drivers/tty/serial/mfd.c
-index cab52f4..29fc6aa 100644
---- a/drivers/tty/serial/mfd.c
-+++ b/drivers/tty/serial/mfd.c
-@@ -1423,7 +1423,7 @@ static void serial_hsu_remove(struct pci_dev *pdev)
- }
+diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
+index 05728894..b9d44c6 100644
+--- a/drivers/tty/sysrq.c
++++ b/drivers/tty/sysrq.c
+@@ -865,7 +865,7 @@ EXPORT_SYMBOL(unregister_sysrq_key);
+ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
+                                  size_t count, loff_t *ppos)
+ {
+-      if (count) {
++      if (count && capable(CAP_SYS_ADMIN)) {
+               char c;
  
- /* First 3 are UART ports, and the 4th is the DMA */
--static const struct pci_device_id pci_ids[] __devinitdata = {
-+static const struct pci_device_id pci_ids[] __devinitconst = {
-       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x081B) },
-       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x081C) },
-       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x081D) },
-diff --git a/drivers/tty/serial/mrst_max3110.c b/drivers/tty/serial/mrst_max3110.c
-index 23bc743..d425c07 100644
---- a/drivers/tty/serial/mrst_max3110.c
-+++ b/drivers/tty/serial/mrst_max3110.c
-@@ -393,6 +393,8 @@ static void max3110_con_receive(struct uart_max3110 *max)
-       int loop = 1, num, total = 0;
-       u8 recv_buf[512], *pbuf;
-+      pax_track_stack();
-+
-       pbuf = recv_buf;
-       do {
-               num = max3110_read_multi(max, pbuf);
+               if (get_user(c, buf))
 diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
-index 1a890e2..1d8139c 100644
+index d939bd7..33d92cd 100644
 --- a/drivers/tty/tty_io.c
 +++ b/drivers/tty/tty_io.c
-@@ -3238,7 +3238,7 @@ EXPORT_SYMBOL_GPL(get_current_tty);
+@@ -3278,7 +3278,7 @@ EXPORT_SYMBOL_GPL(get_current_tty);
  
  void tty_default_fops(struct file_operations *fops)
  {
@@ -37999,10 +38102,10 @@ index 1a890e2..1d8139c 100644
  
  /*
 diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c
-index a76c808..ecbc743 100644
+index 24b95db..9c078d0 100644
 --- a/drivers/tty/tty_ldisc.c
 +++ b/drivers/tty/tty_ldisc.c
-@@ -75,7 +75,7 @@ static void put_ldisc(struct tty_ldisc *ld)
+@@ -57,7 +57,7 @@ static void put_ldisc(struct tty_ldisc *ld)
        if (atomic_dec_and_lock(&ld->users, &tty_ldisc_lock)) {
                struct tty_ldisc_ops *ldo = ld->ops;
  
@@ -38011,7 +38114,7 @@ index a76c808..ecbc743 100644
                module_put(ldo->owner);
                spin_unlock_irqrestore(&tty_ldisc_lock, flags);
  
-@@ -110,7 +110,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc)
+@@ -92,7 +92,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc)
        spin_lock_irqsave(&tty_ldisc_lock, flags);
        tty_ldiscs[disc] = new_ldisc;
        new_ldisc->num = disc;
@@ -38020,7 +38123,7 @@ index a76c808..ecbc743 100644
        spin_unlock_irqrestore(&tty_ldisc_lock, flags);
  
        return ret;
-@@ -138,7 +138,7 @@ int tty_unregister_ldisc(int disc)
+@@ -120,7 +120,7 @@ int tty_unregister_ldisc(int disc)
                return -EINVAL;
  
        spin_lock_irqsave(&tty_ldisc_lock, flags);
@@ -38029,7 +38132,7 @@ index a76c808..ecbc743 100644
                ret = -EBUSY;
        else
                tty_ldiscs[disc] = NULL;
-@@ -159,7 +159,7 @@ static struct tty_ldisc_ops *get_ldops(int disc)
+@@ -141,7 +141,7 @@ static struct tty_ldisc_ops *get_ldops(int disc)
        if (ldops) {
                ret = ERR_PTR(-EAGAIN);
                if (try_module_get(ldops->owner)) {
@@ -38038,7 +38141,7 @@ index a76c808..ecbc743 100644
                        ret = ldops;
                }
        }
-@@ -172,7 +172,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops)
+@@ -154,7 +154,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops)
        unsigned long flags;
  
        spin_lock_irqsave(&tty_ldisc_lock, flags);
@@ -38048,10 +38151,10 @@ index a76c808..ecbc743 100644
        spin_unlock_irqrestore(&tty_ldisc_lock, flags);
  }
 diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
-index 3761ccf..2c613b3 100644
+index 3b0c4e3..f98a992 100644
 --- a/drivers/tty/vt/keyboard.c
 +++ b/drivers/tty/vt/keyboard.c
-@@ -656,6 +656,16 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
+@@ -663,6 +663,16 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
             kbd->kbdmode == VC_OFF) &&
             value != KVAL(K_SAK))
                return;         /* SAK is allowed even in raw mode */
@@ -38068,24 +38171,7 @@ index 3761ccf..2c613b3 100644
        fn_handler[value](vc);
  }
  
-diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
-index b3915b7..e716839 100644
---- a/drivers/tty/vt/vt.c
-+++ b/drivers/tty/vt/vt.c
-@@ -259,7 +259,7 @@ EXPORT_SYMBOL_GPL(unregister_vt_notifier);
- static void notify_write(struct vc_data *vc, unsigned int unicode)
- {
--      struct vt_notifier_param param = { .vc = vc, unicode = unicode };
-+      struct vt_notifier_param param = { .vc = vc, .c = unicode };
-       atomic_notifier_call_chain(&vt_notifier_list, VT_WRITE, &param);
- }
-diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c
-index 5e096f4..0da1363 100644
---- a/drivers/tty/vt/vt_ioctl.c
-+++ b/drivers/tty/vt/vt_ioctl.c
-@@ -207,9 +207,6 @@ do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm, struct kbd_str
+@@ -1812,9 +1822,6 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
        if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
                return -EFAULT;
  
@@ -38094,9 +38180,9 @@ index 5e096f4..0da1363 100644
 -
        switch (cmd) {
        case KDGKBENT:
-               key_map = key_maps[s];
-@@ -221,6 +218,9 @@ do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm, struct kbd_str
-                   val = (i ? K_HOLE : K_NOSUCHMAP);
+               /* Ensure another thread doesn't free it under us */
+@@ -1829,6 +1836,9 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
+               spin_unlock_irqrestore(&kbd_event_lock, flags);
                return put_user(val, &user_kbe->kb_value);
        case KDSKBENT:
 +              if (!capable(CAP_SYS_TTY_CONFIG))
@@ -38105,7 +38191,7 @@ index 5e096f4..0da1363 100644
                if (!perm)
                        return -EPERM;
                if (!i && v == K_NOSUCHMAP) {
-@@ -322,9 +322,6 @@ do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
+@@ -1919,9 +1929,6 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
        int i, j, k;
        int ret;
  
@@ -38115,7 +38201,7 @@ index 5e096f4..0da1363 100644
        kbs = kmalloc(sizeof(*kbs), GFP_KERNEL);
        if (!kbs) {
                ret = -ENOMEM;
-@@ -358,6 +355,9 @@ do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
+@@ -1955,6 +1962,9 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
                kfree(kbs);
                return ((p && *p) ? -EOVERFLOW : 0);
        case KDSKBSENT:
@@ -38126,7 +38212,7 @@ index 5e096f4..0da1363 100644
                        ret = -EPERM;
                        goto reterr;
 diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
-index d2efe82..9440ab6 100644
+index a783d53..cb30d94 100644
 --- a/drivers/uio/uio.c
 +++ b/drivers/uio/uio.c
 @@ -25,6 +25,7 @@
@@ -38211,7 +38297,7 @@ index d2efe82..9440ab6 100644
  }
  
  static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
-@@ -823,7 +824,7 @@ int __uio_register_device(struct module *owner,
+@@ -821,7 +822,7 @@ int __uio_register_device(struct module *owner,
        idev->owner = owner;
        idev->info = info;
        init_waitqueue_head(&idev->wait);
@@ -38221,7 +38307,7 @@ index d2efe82..9440ab6 100644
        ret = uio_get_minor(idev);
        if (ret)
 diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
-index a845f8b..4f54072 100644
+index 98b89fe..aff824e 100644
 --- a/drivers/usb/atm/cxacru.c
 +++ b/drivers/usb/atm/cxacru.c
 @@ -473,7 +473,7 @@ static ssize_t cxacru_sysfs_store_adsl_config(struct device *dev,
@@ -38317,7 +38403,7 @@ index d3448ca..d2864ca 100644
        if (!left--) {
                if (instance->disconnected)
 diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c
-index 0149c09..f108812 100644
+index d956965..4179a77 100644
 --- a/drivers/usb/core/devices.c
 +++ b/drivers/usb/core/devices.c
 @@ -126,7 +126,7 @@ static const char format_endpt[] =
@@ -38347,21 +38433,6 @@ index 0149c09..f108812 100644
        if (file->f_version != event_count) {
                file->f_version = event_count;
                return POLLIN | POLLRDNORM;
-diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
-index 0b5ec23..0da3d76 100644
---- a/drivers/usb/core/message.c
-+++ b/drivers/usb/core/message.c
-@@ -869,8 +869,8 @@ char *usb_cache_string(struct usb_device *udev, int index)
-       buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO);
-       if (buf) {
-               len = usb_string(udev, index, buf, MAX_USB_STRING_SIZE);
--              if (len > 0) {
--                      smallbuf = kmalloc(++len, GFP_NOIO);
-+              if (len++ > 0) {
-+                      smallbuf = kmalloc(len, GFP_NOIO);
-                       if (!smallbuf)
-                               return buf;
-                       memcpy(smallbuf, buf, len);
 diff --git a/drivers/usb/early/ehci-dbgp.c b/drivers/usb/early/ehci-dbgp.c
 index 1fc8f12..20647c1 100644
 --- a/drivers/usb/early/ehci-dbgp.c
@@ -38403,19 +38474,6 @@ index 1fc8f12..20647c1 100644
  
        return 0;
  }
-diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
-index d718033..6075579 100644
---- a/drivers/usb/host/xhci-mem.c
-+++ b/drivers/usb/host/xhci-mem.c
-@@ -1685,6 +1685,8 @@ static int xhci_check_trb_in_td_math(struct xhci_hcd *xhci, gfp_t mem_flags)
-       unsigned int num_tests;
-       int i, ret;
-+      pax_track_stack();
-+
-       num_tests = ARRAY_SIZE(simple_test_vector);
-       for (i = 0; i < num_tests; i++) {
-               ret = xhci_test_trb_in_td(xhci,
 diff --git a/drivers/usb/wusbcore/wa-hc.h b/drivers/usb/wusbcore/wa-hc.h
 index d6bea3e..60b250e 100644
 --- a/drivers/usb/wusbcore/wa-hc.h
@@ -38439,10 +38497,10 @@ index d6bea3e..60b250e 100644
  
  /**
 diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c
-index 4193345..49ae93d 100644
+index 57c01ab..8a05959 100644
 --- a/drivers/usb/wusbcore/wa-xfer.c
 +++ b/drivers/usb/wusbcore/wa-xfer.c
-@@ -295,7 +295,7 @@ out:
+@@ -296,7 +296,7 @@ out:
   */
  static void wa_xfer_id_init(struct wa_xfer *xfer)
  {
@@ -38452,10 +38510,10 @@ index 4193345..49ae93d 100644
  
  /*
 diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
-index c14c42b..f955cc2 100644
+index 51e4c1e..9d87e2a 100644
 --- a/drivers/vhost/vhost.c
 +++ b/drivers/vhost/vhost.c
-@@ -629,7 +629,7 @@ static long vhost_set_memory(struct vhost_dev *d, struct vhost_memory __user *m)
+@@ -632,7 +632,7 @@ static long vhost_set_memory(struct vhost_dev *d, struct vhost_memory __user *m)
        return 0;
  }
  
@@ -38492,7 +38550,7 @@ index 5c3960d..15cf8fc 100644
                goto out1;
        }
 diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
-index ad93629..ca6a218 100644
+index c6ce416..3b9b642 100644
 --- a/drivers/video/fbmem.c
 +++ b/drivers/video/fbmem.c
 @@ -428,7 +428,7 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
@@ -38513,25 +38571,7 @@ index ad93629..ca6a218 100644
                        info->fbops->fb_imageblit(info, image);
                        image->dy -= image->height + 8;
                }
-@@ -939,6 +939,8 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var)
-       int flags = info->flags;
-       int ret = 0;
-+      pax_track_stack();
-+
-       if (var->activate & FB_ACTIVATE_INV_MODE) {
-               struct fb_videomode mode1, mode2;
-@@ -1064,6 +1066,8 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
-       void __user *argp = (void __user *)arg;
-       long ret = 0;
-+      pax_track_stack();
-+
-       switch (cmd) {
-       case FBIOGET_VSCREENINFO:
-               if (!lock_fb_info(info))
-@@ -1143,7 +1147,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
+@@ -1157,7 +1157,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
                        return -EFAULT;
                if (con2fb.console < 1 || con2fb.console > MAX_NR_CONSOLES)
                        return -EINVAL;
@@ -38554,7 +38594,7 @@ index 5a5d092..265c5ed 100644
        { NULL, 60, 640, 480, 39682,  48, 16, 33, 10, 96, 2,
          0, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA },
 diff --git a/drivers/video/gxt4500.c b/drivers/video/gxt4500.c
-index 896e53d..4d87d0b 100644
+index 0fad23f..0e9afa4 100644
 --- a/drivers/video/gxt4500.c
 +++ b/drivers/video/gxt4500.c
 @@ -156,7 +156,7 @@ struct gxt4500_par {
@@ -38588,7 +38628,7 @@ index 7672d2e..b56437f 100644
        par->dev_flags |= LOCKUP;
        info->pixmap.scan_align = 1;
 diff --git a/drivers/video/i810/i810_main.c b/drivers/video/i810/i810_main.c
-index 318f6fb..9a389c1 100644
+index b83f361..2b05a91 100644
 --- a/drivers/video/i810/i810_main.c
 +++ b/drivers/video/i810/i810_main.c
 @@ -97,7 +97,7 @@ static int i810fb_blank      (int blank_mode, struct fb_info *info);
@@ -41343,10 +41383,10 @@ index 3c14e43..eafa544 100644
 +4 4 4  4 4 4  4 4 4  4 4 4  4 4 4  4 4 4
 +4 4 4  4 4 4
 diff --git a/drivers/video/udlfb.c b/drivers/video/udlfb.c
-index 087fc99..f85ed76 100644
+index a159b63..4ab532d 100644
 --- a/drivers/video/udlfb.c
 +++ b/drivers/video/udlfb.c
-@@ -585,11 +585,11 @@ int dlfb_handle_damage(struct dlfb_data *dev, int x, int y,
+@@ -620,11 +620,11 @@ int dlfb_handle_damage(struct dlfb_data *dev, int x, int y,
                dlfb_urb_completion(urb);
  
  error:
@@ -41362,7 +41402,7 @@ index 087fc99..f85ed76 100644
                    >> 10)), /* Kcycles */
                   &dev->cpu_kcycles_used);
  
-@@ -710,11 +710,11 @@ static void dlfb_dpy_deferred_io(struct fb_info *info,
+@@ -745,11 +745,11 @@ static void dlfb_dpy_deferred_io(struct fb_info *info,
                dlfb_urb_completion(urb);
  
  error:
@@ -41378,7 +41418,7 @@ index 087fc99..f85ed76 100644
                    >> 10)), /* Kcycles */
                   &dev->cpu_kcycles_used);
  }
-@@ -1306,7 +1306,7 @@ static ssize_t metrics_bytes_rendered_show(struct device *fbdev,
+@@ -1373,7 +1373,7 @@ static ssize_t metrics_bytes_rendered_show(struct device *fbdev,
        struct fb_info *fb_info = dev_get_drvdata(fbdev);
        struct dlfb_data *dev = fb_info->par;
        return snprintf(buf, PAGE_SIZE, "%u\n",
@@ -41387,7 +41427,7 @@ index 087fc99..f85ed76 100644
  }
  
  static ssize_t metrics_bytes_identical_show(struct device *fbdev,
-@@ -1314,7 +1314,7 @@ static ssize_t metrics_bytes_identical_show(struct device *fbdev,
+@@ -1381,7 +1381,7 @@ static ssize_t metrics_bytes_identical_show(struct device *fbdev,
        struct fb_info *fb_info = dev_get_drvdata(fbdev);
        struct dlfb_data *dev = fb_info->par;
        return snprintf(buf, PAGE_SIZE, "%u\n",
@@ -41396,7 +41436,7 @@ index 087fc99..f85ed76 100644
  }
  
  static ssize_t metrics_bytes_sent_show(struct device *fbdev,
-@@ -1322,7 +1322,7 @@ static ssize_t metrics_bytes_sent_show(struct device *fbdev,
+@@ -1389,7 +1389,7 @@ static ssize_t metrics_bytes_sent_show(struct device *fbdev,
        struct fb_info *fb_info = dev_get_drvdata(fbdev);
        struct dlfb_data *dev = fb_info->par;
        return snprintf(buf, PAGE_SIZE, "%u\n",
@@ -41405,7 +41445,7 @@ index 087fc99..f85ed76 100644
  }
  
  static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
-@@ -1330,7 +1330,7 @@ static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
+@@ -1397,7 +1397,7 @@ static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
        struct fb_info *fb_info = dev_get_drvdata(fbdev);
        struct dlfb_data *dev = fb_info->par;
        return snprintf(buf, PAGE_SIZE, "%u\n",
@@ -41414,7 +41454,7 @@ index 087fc99..f85ed76 100644
  }
  
  static ssize_t edid_show(
-@@ -1387,10 +1387,10 @@ static ssize_t metrics_reset_store(struct device *fbdev,
+@@ -1457,10 +1457,10 @@ static ssize_t metrics_reset_store(struct device *fbdev,
        struct fb_info *fb_info = dev_get_drvdata(fbdev);
        struct dlfb_data *dev = fb_info->par;
  
@@ -41430,7 +41470,7 @@ index 087fc99..f85ed76 100644
        return count;
  }
 diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c
-index 7f8472c..9842e87 100644
+index b0e2a42..e2df3ad 100644
 --- a/drivers/video/uvesafb.c
 +++ b/drivers/video/uvesafb.c
 @@ -19,6 +19,7 @@
@@ -41441,15 +41481,6 @@ index 7f8472c..9842e87 100644
  #include <video/edid.h>
  #include <video/uvesafb.h>
  #ifdef CONFIG_X86
-@@ -121,7 +122,7 @@ static int uvesafb_helper_start(void)
-               NULL,
-       };
--      return call_usermodehelper(v86d_path, argv, envp, 1);
-+      return call_usermodehelper(v86d_path, argv, envp, UMH_WAIT_PROC);
- }
- /*
 @@ -569,10 +570,32 @@ static int __devinit uvesafb_vbe_getpmi(struct uvesafb_ktask *task,
        if ((task->t.regs.eax & 0xffff) != 0x4f || task->t.regs.es < 0xc000) {
                par->pmi_setpal = par->ypan = 0;
@@ -41483,7 +41514,24 @@ index 7f8472c..9842e87 100644
                printk(KERN_INFO "uvesafb: protected mode interface info at "
                                 "%04x:%04x\n",
                                 (u16)task->t.regs.es, (u16)task->t.regs.edi);
-@@ -1821,6 +1844,11 @@ out:
+@@ -816,13 +839,14 @@ static int __devinit uvesafb_vbe_init(struct fb_info *info)
+       par->ypan = ypan;
+       if (par->pmi_setpal || par->ypan) {
++#if !defined(CONFIG_MODULES) || !defined(CONFIG_PAX_KERNEXEC)
+               if (__supported_pte_mask & _PAGE_NX) {
+                       par->pmi_setpal = par->ypan = 0;
+                       printk(KERN_WARNING "uvesafb: NX protection is actively."
+                               "We have better not to use the PMI.\n");
+-              } else {
++              } else
++#endif
+                       uvesafb_vbe_getpmi(task, par);
+-              }
+       }
+ #else
+       /* The protected mode interface is not available on non-x86. */
+@@ -1836,6 +1860,11 @@ out:
        if (par->vbe_modes)
                kfree(par->vbe_modes);
  
@@ -41495,7 +41543,7 @@ index 7f8472c..9842e87 100644
        framebuffer_release(info);
        return err;
  }
-@@ -1847,6 +1875,12 @@ static int uvesafb_remove(struct platform_device *dev)
+@@ -1862,6 +1891,12 @@ static int uvesafb_remove(struct platform_device *dev)
                                kfree(par->vbe_state_orig);
                        if (par->vbe_state_saved)
                                kfree(par->vbe_state_saved);
@@ -41627,19 +41675,6 @@ index 88714ae..16c2e11 100644
  
  
  static inline u32 get_pll_internal_frequency(u32 ref_freq,
-diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
-index e058ace..2424d93 100644
---- a/drivers/virtio/virtio_balloon.c
-+++ b/drivers/virtio/virtio_balloon.c
-@@ -174,6 +174,8 @@ static void update_balloon_stats(struct virtio_balloon *vb)
-       struct sysinfo i;
-       int idx = 0;
-+      pax_track_stack();
-+
-       all_vm_events(events);
-       si_meminfo(&i);
 diff --git a/drivers/xen/xen-pciback/conf_space.h b/drivers/xen/xen-pciback/conf_space.h
 index e56c934..fc22f4b 100644
 --- a/drivers/xen/xen-pciback/conf_space.h
@@ -41664,23 +41699,23 @@ index e56c934..fc22f4b 100644
        struct list_head list;
  };
 diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
-index e3c03db..93b0172 100644
+index 014c8dd..6f3dfe6 100644
 --- a/fs/9p/vfs_inode.c
 +++ b/fs/9p/vfs_inode.c
-@@ -1288,7 +1288,7 @@ static void *v9fs_vfs_follow_link(struct dentry *dentry, struct nameidata *nd)
+@@ -1303,7 +1303,7 @@ static void *v9fs_vfs_follow_link(struct dentry *dentry, struct nameidata *nd)
  void
  v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
  {
 -      char *s = nd_get_link(nd);
 +      const char *s = nd_get_link(nd);
  
-       P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name,
-               IS_ERR(s) ? "<error>" : s);
+       p9_debug(P9_DEBUG_VFS, " %s %s\n",
+                dentry->d_name.name, IS_ERR(s) ? "<error>" : s);
 diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
-index 79e2ca7..5828ad1 100644
+index e95d1b6..3454244 100644
 --- a/fs/Kconfig.binfmt
 +++ b/fs/Kconfig.binfmt
-@@ -86,7 +86,7 @@ config HAVE_AOUT
+@@ -89,7 +89,7 @@ config HAVE_AOUT
  
  config BINFMT_AOUT
        tristate "Kernel support for a.out and ECOFF binaries"
@@ -41690,10 +41725,10 @@ index 79e2ca7..5828ad1 100644
          A.out (Assembler.OUTput) is a set of formats for libraries and
          executables used in the earliest versions of UNIX.  Linux used
 diff --git a/fs/aio.c b/fs/aio.c
-index e29ec48..f083e5e 100644
+index e7f2fad..15ad8a4 100644
 --- a/fs/aio.c
 +++ b/fs/aio.c
-@@ -119,7 +119,7 @@ static int aio_setup_ring(struct kioctx *ctx)
+@@ -118,7 +118,7 @@ static int aio_setup_ring(struct kioctx *ctx)
        size += sizeof(struct io_event) * nr_events;
        nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT;
  
@@ -41702,16 +41737,7 @@ index e29ec48..f083e5e 100644
                return -EINVAL;
  
        nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event);
-@@ -1088,6 +1088,8 @@ static int read_events(struct kioctx *ctx,
-       struct aio_timeout      to;
-       int                     retry = 0;
-+      pax_track_stack();
-+
-       /* needed to zero any padding within an entry (there shouldn't be 
-        * any, but C is fun!
-        */
-@@ -1381,22 +1383,27 @@ static ssize_t aio_fsync(struct kiocb *iocb)
+@@ -1440,18 +1440,19 @@ static ssize_t aio_fsync(struct kiocb *iocb)
  static ssize_t aio_setup_vectored_rw(int type, struct kiocb *kiocb, bool compat)
  {
        ssize_t ret;
@@ -41723,14 +41749,17 @@ index e29ec48..f083e5e 100644
                                (struct compat_iovec __user *)kiocb->ki_buf,
 -                              kiocb->ki_nbytes, 1, &kiocb->ki_inline_vec,
 +                              kiocb->ki_nbytes, 1, &iovstack,
-                               &kiocb->ki_iovec);
+                               &kiocb->ki_iovec, 1);
        else
  #endif
                ret = rw_copy_check_uvector(type,
                                (struct iovec __user *)kiocb->ki_buf,
 -                              kiocb->ki_nbytes, 1, &kiocb->ki_inline_vec,
 +                              kiocb->ki_nbytes, 1, &iovstack,
-                               &kiocb->ki_iovec);
+                               &kiocb->ki_iovec, 1);
+       if (ret < 0)
+               goto out;
+@@ -1460,6 +1461,10 @@ static ssize_t aio_setup_vectored_rw(int type, struct kiocb *kiocb, bool compat)
        if (ret < 0)
                goto out;
  
@@ -41742,10 +41771,10 @@ index e29ec48..f083e5e 100644
        kiocb->ki_cur_seg = 0;
        /* ki_nbytes/left now reflect bytes instead of segs */
 diff --git a/fs/attr.c b/fs/attr.c
-index 538e279..046cc6d 100644
+index d94d1b6..f9bccd6 100644
 --- a/fs/attr.c
 +++ b/fs/attr.c
-@@ -98,6 +98,7 @@ int inode_newsize_ok(const struct inode *inode, loff_t offset)
+@@ -99,6 +99,7 @@ int inode_newsize_ok(const struct inode *inode, loff_t offset)
                unsigned long limit;
  
                limit = rlimit(RLIMIT_FSIZE);
@@ -41754,10 +41783,10 @@ index 538e279..046cc6d 100644
                        goto out_sig;
                if (offset > inode->i_sb->s_maxbytes)
 diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
-index e1fbdee..cd5ea56 100644
+index da8876d..9f3e6d8 100644
 --- a/fs/autofs4/waitq.c
 +++ b/fs/autofs4/waitq.c
-@@ -60,7 +60,7 @@ static int autofs4_write(struct file *file, const void *addr, int bytes)
+@@ -61,7 +61,7 @@ static int autofs4_write(struct autofs_sb_info *sbi,
  {
        unsigned long sigpipe, flags;
        mm_segment_t fs;
@@ -41765,12 +41794,12 @@ index e1fbdee..cd5ea56 100644
 +      const char __user *data = (const char __force_user *)addr;
        ssize_t wr = 0;
  
-       /** WARNING: this is not safe for writing more than PIPE_BUF bytes! **/
+       sigpipe = sigismember(&current->pending.signal, SIGPIPE);
 diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
-index 720d885..012e7f0 100644
+index e18da23..affc30e 100644
 --- a/fs/befs/linuxvfs.c
 +++ b/fs/befs/linuxvfs.c
-@@ -503,7 +503,7 @@ static void befs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
+@@ -502,7 +502,7 @@ static void befs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
  {
        befs_inode_info *befs_ino = BEFS_I(dentry->d_inode);
        if (befs_ino->i_flags & BEFS_LONG_SYMLINK) {
@@ -41780,7 +41809,7 @@ index 720d885..012e7f0 100644
                        kfree(link);
        }
 diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c
-index a6395bd..a5b24c4 100644
+index d146e18..12d1bd1 100644
 --- a/fs/binfmt_aout.c
 +++ b/fs/binfmt_aout.c
 @@ -16,6 +16,7 @@
@@ -41791,7 +41820,7 @@ index a6395bd..a5b24c4 100644
  #include <linux/stat.h>
  #include <linux/fcntl.h>
  #include <linux/ptrace.h>
-@@ -86,6 +87,8 @@ static int aout_core_dump(struct coredump_params *cprm)
+@@ -83,6 +84,8 @@ static int aout_core_dump(struct coredump_params *cprm)
  #endif
  #       define START_STACK(u)   ((void __user *)u.start_stack)
  
@@ -41800,7 +41829,7 @@ index a6395bd..a5b24c4 100644
        fs = get_fs();
        set_fs(KERNEL_DS);
        has_dumped = 1;
-@@ -97,10 +100,12 @@ static int aout_core_dump(struct coredump_params *cprm)
+@@ -94,10 +97,12 @@ static int aout_core_dump(struct coredump_params *cprm)
  
  /* If the size of the dump file exceeds the rlimit, then see what would happen
     if we wrote the stack, but not the data area.  */
@@ -41813,7 +41842,7 @@ index a6395bd..a5b24c4 100644
        if ((dump.u_ssize + 1) * PAGE_SIZE > cprm->limit)
                dump.u_ssize = 0;
  
-@@ -234,6 +239,8 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs)
+@@ -231,6 +236,8 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs)
        rlim = rlimit(RLIMIT_DATA);
        if (rlim >= RLIM_INFINITY)
                rlim = ~0;
@@ -41822,9 +41851,9 @@ index a6395bd..a5b24c4 100644
        if (ex.a_data + ex.a_bss > rlim)
                return -ENOMEM;
  
-@@ -262,6 +269,27 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs)
+@@ -265,6 +272,27 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs)
        install_exec_creds(bprm);
-       current->flags &= ~PF_FORKNOEXEC;
  
 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
 +      current->mm->pax_flags = 0UL;
@@ -41850,20 +41879,28 @@ index a6395bd..a5b24c4 100644
        if (N_MAGIC(ex) == OMAGIC) {
                unsigned long text_addr, map_size;
                loff_t pos;
-@@ -334,7 +362,7 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs)
+@@ -330,7 +358,7 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs)
+               }
  
-               down_write(&current->mm->mmap_sem);
-               error = do_mmap(bprm->file, N_DATADDR(ex), ex.a_data,
+               error = vm_mmap(bprm->file, N_DATADDR(ex), ex.a_data,
 -                              PROT_READ | PROT_WRITE | PROT_EXEC,
 +                              PROT_READ | PROT_WRITE,
                                MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE,
                                fd_offset + ex.a_text);
-               up_write(&current->mm->mmap_sem);
+               if (error != N_DATADDR(ex)) {
 diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
-index 21ac5ee..171b1d0 100644
+index 16f7354..7cc1e24 100644
 --- a/fs/binfmt_elf.c
 +++ b/fs/binfmt_elf.c
-@@ -51,6 +51,10 @@ static int elf_core_dump(struct coredump_params *cprm);
+@@ -32,6 +32,7 @@
+ #include <linux/elf.h>
+ #include <linux/utsname.h>
+ #include <linux/coredump.h>
++#include <linux/xattr.h>
+ #include <asm/uaccess.h>
+ #include <asm/param.h>
+ #include <asm/page.h>
+@@ -52,6 +53,10 @@ static int elf_core_dump(struct coredump_params *cprm);
  #define elf_core_dump NULL
  #endif
  
@@ -41874,19 +41911,19 @@ index 21ac5ee..171b1d0 100644
  #if ELF_EXEC_PAGESIZE > PAGE_SIZE
  #define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE
  #else
-@@ -70,6 +74,11 @@ static struct linux_binfmt elf_format = {
+@@ -71,6 +76,11 @@ static struct linux_binfmt elf_format = {
        .load_binary    = load_elf_binary,
        .load_shlib     = load_elf_library,
        .core_dump      = elf_core_dump,
 +
 +#ifdef CONFIG_PAX_MPROTECT
-+              .handle_mprotect= elf_handle_mprotect,
++      .handle_mprotect= elf_handle_mprotect,
 +#endif
 +
        .min_coredump   = ELF_EXEC_PAGESIZE,
  };
  
-@@ -77,6 +86,8 @@ static struct linux_binfmt elf_format = {
+@@ -78,6 +88,8 @@ static struct linux_binfmt elf_format = {
  
  static int set_brk(unsigned long start, unsigned long end)
  {
@@ -41895,7 +41932,7 @@ index 21ac5ee..171b1d0 100644
        start = ELF_PAGEALIGN(start);
        end = ELF_PAGEALIGN(end);
        if (end > start) {
-@@ -87,7 +98,7 @@ static int set_brk(unsigned long start, unsigned long end)
+@@ -86,7 +98,7 @@ static int set_brk(unsigned long start, unsigned long end)
                if (BAD_ADDR(addr))
                        return addr;
        }
@@ -41904,7 +41941,7 @@ index 21ac5ee..171b1d0 100644
        return 0;
  }
  
-@@ -148,12 +159,15 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
+@@ -147,12 +159,13 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
        elf_addr_t __user *u_rand_bytes;
        const char *k_platform = ELF_PLATFORM;
        const char *k_base_platform = ELF_BASE_PLATFORM;
@@ -41916,12 +41953,10 @@ index 21ac5ee..171b1d0 100644
        const struct cred *cred = current_cred();
        struct vm_area_struct *vma;
 +      unsigned long saved_auxv[AT_VECTOR_SIZE];
-+
-+      pax_track_stack();
  
        /*
         * In some cases (e.g. Hyper-Threading), we want to avoid L1
-@@ -195,8 +209,12 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
+@@ -194,8 +207,12 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
         * Generate 16 random bytes for userspace PRNG seeding.
         */
        get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));
@@ -41936,7 +41971,7 @@ index 21ac5ee..171b1d0 100644
        if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes)))
                return -EFAULT;
  
-@@ -308,9 +326,11 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
+@@ -307,9 +324,11 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
                return -EFAULT;
        current->mm->env_end = p;
  
@@ -41949,7 +41984,7 @@ index 21ac5ee..171b1d0 100644
                return -EFAULT;
        return 0;
  }
-@@ -381,10 +401,10 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
+@@ -380,10 +399,10 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
  {
        struct elf_phdr *elf_phdata;
        struct elf_phdr *eppnt;
@@ -41962,7 +41997,7 @@ index 21ac5ee..171b1d0 100644
        unsigned long total_size;
        int retval, i, size;
  
-@@ -430,6 +450,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
+@@ -429,6 +448,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
                goto out_close;
        }
  
@@ -41974,7 +42009,7 @@ index 21ac5ee..171b1d0 100644
        eppnt = elf_phdata;
        for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
                if (eppnt->p_type == PT_LOAD) {
-@@ -473,8 +498,8 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
+@@ -472,8 +496,8 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
                        k = load_addr + eppnt->p_vaddr;
                        if (BAD_ADDR(k) ||
                            eppnt->p_filesz > eppnt->p_memsz ||
@@ -41985,12 +42020,13 @@ index 21ac5ee..171b1d0 100644
                                error = -ENOMEM;
                                goto out_close;
                        }
-@@ -528,6 +553,193 @@ out:
+@@ -525,6 +549,311 @@ out:
        return error;
  }
  
-+#if (defined(CONFIG_PAX_EI_PAX) || defined(CONFIG_PAX_PT_PAX_FLAGS)) && defined(CONFIG_PAX_SOFTMODE)
-+static unsigned long pax_parse_softmode(const struct elf_phdr * const elf_phdata)
++#ifdef CONFIG_PAX_PT_PAX_FLAGS
++#ifdef CONFIG_PAX_SOFTMODE
++static unsigned long pax_parse_pt_pax_softmode(const struct elf_phdr * const elf_phdata)
 +{
 +      unsigned long pax_flags = 0UL;
 +
@@ -42004,15 +42040,6 @@ index 21ac5ee..171b1d0 100644
 +              pax_flags |= MF_PAX_SEGMEXEC;
 +#endif
 +
-+#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_PAX_SEGMEXEC)
-+      if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) == (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
-+              if ((__supported_pte_mask & _PAGE_NX))
-+                      pax_flags &= ~MF_PAX_SEGMEXEC;
-+              else
-+                      pax_flags &= ~MF_PAX_PAGEEXEC;
-+      }
-+#endif
-+
 +#ifdef CONFIG_PAX_EMUTRAMP
 +      if (elf_phdata->p_flags & PF_EMUTRAMP)
 +              pax_flags |= MF_PAX_EMUTRAMP;
@@ -42032,8 +42059,7 @@ index 21ac5ee..171b1d0 100644
 +}
 +#endif
 +
-+#ifdef CONFIG_PAX_PT_PAX_FLAGS
-+static unsigned long pax_parse_hardmode(const struct elf_phdr * const elf_phdata)
++static unsigned long pax_parse_pt_pax_hardmode(const struct elf_phdr * const elf_phdata)
 +{
 +      unsigned long pax_flags = 0UL;
 +
@@ -42047,15 +42073,6 @@ index 21ac5ee..171b1d0 100644
 +              pax_flags |= MF_PAX_SEGMEXEC;
 +#endif
 +
-+#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_PAX_SEGMEXEC)
-+      if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) == (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
-+              if ((__supported_pte_mask & _PAGE_NX))
-+                      pax_flags &= ~MF_PAX_SEGMEXEC;
-+              else
-+                      pax_flags &= ~MF_PAX_PAGEEXEC;
-+      }
-+#endif
-+
 +#ifdef CONFIG_PAX_EMUTRAMP
 +      if (!(elf_phdata->p_flags & PF_NOEMUTRAMP))
 +              pax_flags |= MF_PAX_EMUTRAMP;
@@ -42075,11 +42092,81 @@ index 21ac5ee..171b1d0 100644
 +}
 +#endif
 +
-+#ifdef CONFIG_PAX_EI_PAX
++#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
++#ifdef CONFIG_PAX_SOFTMODE
++static unsigned long pax_parse_xattr_pax_softmode(unsigned long pax_flags_softmode)
++{
++      unsigned long pax_flags = 0UL;
++
++#ifdef CONFIG_PAX_PAGEEXEC
++      if (pax_flags_softmode & MF_PAX_PAGEEXEC)
++              pax_flags |= MF_PAX_PAGEEXEC;
++#endif
++
++#ifdef CONFIG_PAX_SEGMEXEC
++      if (pax_flags_softmode & MF_PAX_SEGMEXEC)
++              pax_flags |= MF_PAX_SEGMEXEC;
++#endif
++
++#ifdef CONFIG_PAX_EMUTRAMP
++      if (pax_flags_softmode & MF_PAX_EMUTRAMP)
++              pax_flags |= MF_PAX_EMUTRAMP;
++#endif
++
++#ifdef CONFIG_PAX_MPROTECT
++      if (pax_flags_softmode & MF_PAX_MPROTECT)
++              pax_flags |= MF_PAX_MPROTECT;
++#endif
++
++#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
++      if (randomize_va_space && (pax_flags_softmode & MF_PAX_RANDMMAP))
++              pax_flags |= MF_PAX_RANDMMAP;
++#endif
++
++      return pax_flags;
++}
++#endif
++
++static unsigned long pax_parse_xattr_pax_hardmode(unsigned long pax_flags_hardmode)
++{
++      unsigned long pax_flags = 0UL;
++
++#ifdef CONFIG_PAX_PAGEEXEC
++      if (!(pax_flags_hardmode & MF_PAX_PAGEEXEC))
++              pax_flags |= MF_PAX_PAGEEXEC;
++#endif
++
++#ifdef CONFIG_PAX_SEGMEXEC
++      if (!(pax_flags_hardmode & MF_PAX_SEGMEXEC))
++              pax_flags |= MF_PAX_SEGMEXEC;
++#endif
++
++#ifdef CONFIG_PAX_EMUTRAMP
++      if (!(pax_flags_hardmode & MF_PAX_EMUTRAMP))
++              pax_flags |= MF_PAX_EMUTRAMP;
++#endif
++
++#ifdef CONFIG_PAX_MPROTECT
++      if (!(pax_flags_hardmode & MF_PAX_MPROTECT))
++              pax_flags |= MF_PAX_MPROTECT;
++#endif
++
++#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
++      if (randomize_va_space && !(pax_flags_hardmode & MF_PAX_RANDMMAP))
++              pax_flags |= MF_PAX_RANDMMAP;
++#endif
++
++      return pax_flags;
++}
++#endif
++
++#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
 +static unsigned long pax_parse_ei_pax(const struct elfhdr * const elf_ex)
 +{
 +      unsigned long pax_flags = 0UL;
 +
++#ifdef CONFIG_PAX_EI_PAX
++
 +#ifdef CONFIG_PAX_PAGEEXEC
 +      if (!(elf_ex->e_ident[EI_PAX] & EF_PAX_PAGEEXEC))
 +              pax_flags |= MF_PAX_PAGEEXEC;
@@ -42090,15 +42177,6 @@ index 21ac5ee..171b1d0 100644
 +              pax_flags |= MF_PAX_SEGMEXEC;
 +#endif
 +
-+#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_PAX_SEGMEXEC)
-+      if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) == (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
-+              if ((__supported_pte_mask & _PAGE_NX))
-+                      pax_flags &= ~MF_PAX_SEGMEXEC;
-+              else
-+                      pax_flags &= ~MF_PAX_PAGEEXEC;
-+      }
-+#endif
-+
 +#ifdef CONFIG_PAX_EMUTRAMP
 +      if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) && (elf_ex->e_ident[EI_PAX] & EF_PAX_EMUTRAMP))
 +              pax_flags |= MF_PAX_EMUTRAMP;
@@ -42114,25 +42192,36 @@ index 21ac5ee..171b1d0 100644
 +              pax_flags |= MF_PAX_RANDMMAP;
 +#endif
 +
-+      return pax_flags;
-+}
++#else
++
++#ifdef CONFIG_PAX_PAGEEXEC
++      pax_flags |= MF_PAX_PAGEEXEC;
 +#endif
 +
-+#if defined(CONFIG_PAX_EI_PAX) || defined(CONFIG_PAX_PT_PAX_FLAGS)
-+static long pax_parse_elf_flags(const struct elfhdr * const elf_ex, const struct elf_phdr * const elf_phdata)
-+{
-+      unsigned long pax_flags = 0UL;
++#ifdef CONFIG_PAX_SEGMEXEC
++      pax_flags |= MF_PAX_SEGMEXEC;
++#endif
 +
-+#ifdef CONFIG_PAX_PT_PAX_FLAGS
-+      unsigned long i;
-+      int found_flags = 0;
++#ifdef CONFIG_PAX_MPROTECT
++      pax_flags |= MF_PAX_MPROTECT;
 +#endif
 +
-+#ifdef CONFIG_PAX_EI_PAX
-+      pax_flags = pax_parse_ei_pax(elf_ex);
++#ifdef CONFIG_PAX_RANDMMAP
++      if (randomize_va_space)
++              pax_flags |= MF_PAX_RANDMMAP;
 +#endif
 +
++#endif
++
++      return pax_flags;
++}
++
++static unsigned long pax_parse_pt_pax(const struct elfhdr * const elf_ex, const struct elf_phdr * const elf_phdata)
++{
++
 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
++      unsigned long i;
++
 +      for (i = 0UL; i < elf_ex->e_phnum; i++)
 +              if (elf_phdata[i].p_type == PT_PAX_FLAGS) {
 +                      if (((elf_phdata[i].p_flags & PF_PAGEEXEC) && (elf_phdata[i].p_flags & PF_NOPAGEEXEC)) ||
@@ -42140,31 +42229,95 @@ index 21ac5ee..171b1d0 100644
 +                          ((elf_phdata[i].p_flags & PF_EMUTRAMP) && (elf_phdata[i].p_flags & PF_NOEMUTRAMP)) ||
 +                          ((elf_phdata[i].p_flags & PF_MPROTECT) && (elf_phdata[i].p_flags & PF_NOMPROTECT)) ||
 +                          ((elf_phdata[i].p_flags & PF_RANDMMAP) && (elf_phdata[i].p_flags & PF_NORANDMMAP)))
-+                              return -EINVAL;
++                              return ~0UL;
 +
 +#ifdef CONFIG_PAX_SOFTMODE
 +                      if (pax_softmode)
-+                              pax_flags = pax_parse_softmode(&elf_phdata[i]);
++                              return pax_parse_pt_pax_softmode(&elf_phdata[i]);
 +                      else
 +#endif
 +
-+                              pax_flags = pax_parse_hardmode(&elf_phdata[i]);
-+                      found_flags = 1;
++                              return pax_parse_pt_pax_hardmode(&elf_phdata[i]);
 +                      break;
 +              }
 +#endif
 +
-+#if !defined(CONFIG_PAX_EI_PAX) && defined(CONFIG_PAX_PT_PAX_FLAGS)
-+      if (found_flags == 0) {
-+              struct elf_phdr phdr;
-+              memset(&phdr, 0, sizeof(phdr));
-+              phdr.p_flags = PF_NOEMUTRAMP;
++      return ~0UL;
++}
++
++static unsigned long pax_parse_xattr_pax(struct file * const file)
++{
++
++#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
++      ssize_t xattr_size, i;
++      unsigned char xattr_value[5];
++      unsigned long pax_flags_hardmode = 0UL, pax_flags_softmode = 0UL;
++
++      xattr_size = vfs_getxattr(file->f_path.dentry, XATTR_NAME_PAX_FLAGS, xattr_value, sizeof xattr_value);
++      if (xattr_size <= 0)
++              return ~0UL;
++
++      for (i = 0; i < xattr_size; i++)
++              switch (xattr_value[i]) {
++              default:
++                      return ~0UL;
++
++#define parse_flag(option1, option2, flag)                    \
++              case option1:                                   \
++                      pax_flags_hardmode |= MF_PAX_##flag;    \
++                      break;                                  \
++              case option2:                                   \
++                      pax_flags_softmode |= MF_PAX_##flag;    \
++                      break;
++
++              parse_flag('p', 'P', PAGEEXEC);
++              parse_flag('e', 'E', EMUTRAMP);
++              parse_flag('m', 'M', MPROTECT);
++              parse_flag('r', 'R', RANDMMAP);
++              parse_flag('s', 'S', SEGMEXEC);
++
++#undef parse_flag
++              }
++
++      if (pax_flags_hardmode & pax_flags_softmode)
++              return ~0UL;
++
 +#ifdef CONFIG_PAX_SOFTMODE
-+              if (pax_softmode)
-+                      pax_flags = pax_parse_softmode(&phdr);
-+              else
++      if (pax_softmode)
++              return pax_parse_xattr_pax_softmode(pax_flags_softmode);
++      else
++#endif
++
++              return pax_parse_xattr_pax_hardmode(pax_flags_hardmode);
++#else
++      return ~0UL;
 +#endif
-+                      pax_flags = pax_parse_hardmode(&phdr);
++
++}
++
++static long pax_parse_pax_flags(const struct elfhdr * const elf_ex, const struct elf_phdr * const elf_phdata, struct file * const file)
++{
++      unsigned long pax_flags, pt_pax_flags, xattr_pax_flags;
++
++      pax_flags = pax_parse_ei_pax(elf_ex);
++      pt_pax_flags = pax_parse_pt_pax(elf_ex, elf_phdata);
++      xattr_pax_flags = pax_parse_xattr_pax(file);
++
++      if (pt_pax_flags == ~0UL)
++              pt_pax_flags = xattr_pax_flags;
++      else if (xattr_pax_flags == ~0UL)
++              xattr_pax_flags = pt_pax_flags;
++      if (pt_pax_flags != xattr_pax_flags)
++              return -EINVAL;
++      if (pt_pax_flags != ~0UL)
++              pax_flags = pt_pax_flags;
++
++#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_PAX_SEGMEXEC)
++      if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) == (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
++              if ((__supported_pte_mask & _PAGE_NX))
++                      pax_flags &= ~MF_PAX_SEGMEXEC;
++              else
++                      pax_flags &= ~MF_PAX_PAGEEXEC;
 +      }
 +#endif
 +
@@ -42179,7 +42332,7 @@ index 21ac5ee..171b1d0 100644
  /*
   * These are the functions used to load ELF style executables and shared
   * libraries.  There is no binary dependent code anywhere else.
-@@ -544,6 +756,11 @@ static unsigned long randomize_stack_top(unsigned long stack_top)
+@@ -541,6 +870,11 @@ static unsigned long randomize_stack_top(unsigned long stack_top)
  {
        unsigned int random_variable = 0;
  
@@ -42191,7 +42344,7 @@ index 21ac5ee..171b1d0 100644
        if ((current->flags & PF_RANDOMIZE) &&
                !(current->personality & ADDR_NO_RANDOMIZE)) {
                random_variable = get_random_int() & STACK_RND_MASK;
-@@ -562,7 +779,7 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -559,7 +893,7 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
        unsigned long load_addr = 0, load_bias = 0;
        int load_addr_set = 0;
        char * elf_interpreter = NULL;
@@ -42200,7 +42353,7 @@ index 21ac5ee..171b1d0 100644
        struct elf_phdr *elf_ppnt, *elf_phdata;
        unsigned long elf_bss, elf_brk;
        int retval, i;
-@@ -572,11 +789,11 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -569,11 +903,11 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
        unsigned long start_code, end_code, start_data, end_data;
        unsigned long reloc_func_desc __maybe_unused = 0;
        int executable_stack = EXSTACK_DEFAULT;
@@ -42213,10 +42366,10 @@ index 21ac5ee..171b1d0 100644
  
        loc = kmalloc(sizeof(*loc), GFP_KERNEL);
        if (!loc) {
-@@ -713,11 +930,81 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -709,11 +1043,81 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+               goto out_free_dentry;
  
        /* OK, This is the point of no return */
-       current->flags &= ~PF_FORKNOEXEC;
 -      current->mm->def_flags = def_flags;
 +
 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
@@ -42238,8 +42391,8 @@ index 21ac5ee..171b1d0 100644
 +
 +      current->mm->def_flags = 0;
 +
-+#if defined(CONFIG_PAX_EI_PAX) || defined(CONFIG_PAX_PT_PAX_FLAGS)
-+      if (0 > pax_parse_elf_flags(&loc->elf_ex, elf_phdata)) {
++#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
++      if (0 > pax_parse_pax_flags(&loc->elf_ex, elf_phdata, bprm->file)) {
 +              send_sig(SIGKILL, current, 0);
 +              goto out_free_dentry;
 +      }
@@ -42296,7 +42449,7 @@ index 21ac5ee..171b1d0 100644
        if (elf_read_implies_exec(loc->elf_ex, executable_stack))
                current->personality |= READ_IMPLIES_EXEC;
  
-@@ -808,6 +1095,20 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -804,6 +1208,20 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
  #else
                        load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
  #endif
@@ -42317,7 +42470,7 @@ index 21ac5ee..171b1d0 100644
                }
  
                error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
-@@ -840,9 +1141,9 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -836,9 +1254,9 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
                 * allowed task size. Note that p_filesz must always be
                 * <= p_memsz so it is only necessary to check p_memsz.
                 */
@@ -42330,19 +42483,7 @@ index 21ac5ee..171b1d0 100644
                        /* set_brk can never work. Avoid overflows. */
                        send_sig(SIGKILL, current, 0);
                        retval = -EINVAL;
-@@ -870,6 +1171,11 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
-       start_data += load_bias;
-       end_data += load_bias;
-+#ifdef CONFIG_PAX_RANDMMAP
-+      if (current->mm->pax_flags & MF_PAX_RANDMMAP)
-+              elf_brk += PAGE_SIZE + ((pax_get_random_long() & ~PAGE_MASK) << 4);
-+#endif
-+
-       /* Calling set_brk effectively mmaps the pages that we need
-        * for the bss and break sections.  We must do this before
-        * mapping in the interpreter, to make sure it doesn't wind
-@@ -881,9 +1187,11 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -877,11 +1295,40 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
                goto out_free_dentry;
        }
        if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
@@ -42356,8 +42497,37 @@ index 21ac5ee..171b1d0 100644
 +               */
        }
  
++#ifdef CONFIG_PAX_RANDMMAP
++      if (current->mm->pax_flags & MF_PAX_RANDMMAP) {
++              unsigned long start, size;
++
++              start = ELF_PAGEALIGN(elf_brk);
++              size = PAGE_SIZE + ((pax_get_random_long() & ((1UL << 22) - 1UL)) << 4);
++              down_write(&current->mm->mmap_sem);
++              retval = -ENOMEM;
++              if (!find_vma_intersection(current->mm, start, start + size + PAGE_SIZE)) {
++                      unsigned long prot = PROT_NONE;
++
++                      current->mm->brk_gap = PAGE_ALIGN(size) >> PAGE_SHIFT;
++//                    if (current->personality & ADDR_NO_RANDOMIZE)
++//                            prot = PROT_READ;
++                      start = do_mmap(NULL, start, size, prot, MAP_ANONYMOUS | MAP_FIXED | MAP_PRIVATE, 0);
++                      retval = IS_ERR_VALUE(start) ? start : 0;
++              }
++              up_write(&current->mm->mmap_sem);
++              if (retval == 0)
++                      retval = set_brk(start + size, start + size + PAGE_SIZE);
++              if (retval < 0) {
++                      send_sig(SIGKILL, current, 0);
++                      goto out_free_dentry;
++              }
++      }
++#endif
++
        if (elf_interpreter) {
-@@ -1098,7 +1406,7 @@ out:
+               unsigned long uninitialized_var(interp_map_addr);
+@@ -1109,7 +1556,7 @@ static bool always_dump_vma(struct vm_area_struct *vma)
   * Decide what to dump of a segment, part, all or none.
   */
  static unsigned long vma_dump_size(struct vm_area_struct *vma,
@@ -42366,7 +42536,7 @@ index 21ac5ee..171b1d0 100644
  {
  #define FILTER(type)  (mm_flags & (1UL << MMF_DUMP_##type))
  
-@@ -1132,7 +1440,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
+@@ -1146,7 +1593,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
        if (vma->vm_file == NULL)
                return 0;
  
@@ -42375,7 +42545,7 @@ index 21ac5ee..171b1d0 100644
                goto whole;
  
        /*
-@@ -1354,9 +1662,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm)
+@@ -1368,9 +1815,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm)
  {
        elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
        int i = 0;
@@ -42387,7 +42557,7 @@ index 21ac5ee..171b1d0 100644
        fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
  }
  
-@@ -1862,14 +2170,14 @@ static void fill_extnum_info(struct elfhdr *elf, struct elf_shdr *shdr4extnum,
+@@ -1892,14 +2339,14 @@ static void fill_extnum_info(struct elfhdr *elf, struct elf_shdr *shdr4extnum,
  }
  
  static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma,
@@ -42404,7 +42574,7 @@ index 21ac5ee..171b1d0 100644
        return size;
  }
  
-@@ -1963,7 +2271,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -1993,7 +2440,7 @@ static int elf_core_dump(struct coredump_params *cprm)
  
        dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
  
@@ -42413,7 +42583,7 @@ index 21ac5ee..171b1d0 100644
        offset += elf_core_extra_data_size();
        e_shoff = offset;
  
-@@ -1977,10 +2285,12 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2007,10 +2454,12 @@ static int elf_core_dump(struct coredump_params *cprm)
        offset = dataoff;
  
        size += sizeof(*elf);
@@ -42426,7 +42596,7 @@ index 21ac5ee..171b1d0 100644
        if (size > cprm->limit
            || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note)))
                goto end_coredump;
-@@ -1994,7 +2304,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2024,7 +2473,7 @@ static int elf_core_dump(struct coredump_params *cprm)
                phdr.p_offset = offset;
                phdr.p_vaddr = vma->vm_start;
                phdr.p_paddr = 0;
@@ -42435,7 +42605,7 @@ index 21ac5ee..171b1d0 100644
                phdr.p_memsz = vma->vm_end - vma->vm_start;
                offset += phdr.p_filesz;
                phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0;
-@@ -2005,6 +2315,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2035,6 +2484,7 @@ static int elf_core_dump(struct coredump_params *cprm)
                phdr.p_align = ELF_EXEC_PAGESIZE;
  
                size += sizeof(phdr);
@@ -42443,7 +42613,7 @@ index 21ac5ee..171b1d0 100644
                if (size > cprm->limit
                    || !dump_write(cprm->file, &phdr, sizeof(phdr)))
                        goto end_coredump;
-@@ -2029,7 +2340,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2059,7 +2509,7 @@ static int elf_core_dump(struct coredump_params *cprm)
                unsigned long addr;
                unsigned long end;
  
@@ -42452,7 +42622,7 @@ index 21ac5ee..171b1d0 100644
  
                for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) {
                        struct page *page;
-@@ -2038,6 +2349,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2068,6 +2518,7 @@ static int elf_core_dump(struct coredump_params *cprm)
                        page = get_dump_page(addr);
                        if (page) {
                                void *kaddr = kmap(page);
@@ -42460,7 +42630,7 @@ index 21ac5ee..171b1d0 100644
                                stop = ((size += PAGE_SIZE) > cprm->limit) ||
                                        !dump_write(cprm->file, kaddr,
                                                    PAGE_SIZE);
-@@ -2055,6 +2367,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2085,6 +2536,7 @@ static int elf_core_dump(struct coredump_params *cprm)
  
        if (e_phnum == PN_XNUM) {
                size += sizeof(*shdr4extnum);
@@ -42468,7 +42638,7 @@ index 21ac5ee..171b1d0 100644
                if (size > cprm->limit
                    || !dump_write(cprm->file, shdr4extnum,
                                   sizeof(*shdr4extnum)))
-@@ -2075,6 +2388,97 @@ out:
+@@ -2105,6 +2557,97 @@ out:
  
  #endif                /* CONFIG_ELF_CORE */
  
@@ -42565,12 +42735,12 @@ index 21ac5ee..171b1d0 100644
 +
  static int __init init_elf_binfmt(void)
  {
-       return register_binfmt(&elf_format);
+       register_binfmt(&elf_format);
 diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c
-index 1bffbe0..c8c283e 100644
+index 6b2daf9..a70dccb 100644
 --- a/fs/binfmt_flat.c
 +++ b/fs/binfmt_flat.c
-@@ -567,7 +567,9 @@ static int load_flat_file(struct linux_binprm * bprm,
+@@ -562,7 +562,9 @@ static int load_flat_file(struct linux_binprm * bprm,
                                realdatastart = (unsigned long) -ENOMEM;
                        printk("Unable to allocate RAM for process data, errno %d\n",
                                        (int)-realdatastart);
@@ -42580,7 +42750,7 @@ index 1bffbe0..c8c283e 100644
                        ret = realdatastart;
                        goto err;
                }
-@@ -591,8 +593,10 @@ static int load_flat_file(struct linux_binprm * bprm,
+@@ -586,8 +588,10 @@ static int load_flat_file(struct linux_binprm * bprm,
                }
                if (IS_ERR_VALUE(result)) {
                        printk("Unable to read data+bss, errno %d\n", (int)-result);
@@ -42591,7 +42761,7 @@ index 1bffbe0..c8c283e 100644
                        ret = result;
                        goto err;
                }
-@@ -661,8 +665,10 @@ static int load_flat_file(struct linux_binprm * bprm,
+@@ -654,8 +658,10 @@ static int load_flat_file(struct linux_binprm * bprm,
                }
                if (IS_ERR_VALUE(result)) {
                        printk("Unable to read code+data+bss, errno %d\n",(int)-result);
@@ -42603,10 +42773,28 @@ index 1bffbe0..c8c283e 100644
                        goto err;
                }
 diff --git a/fs/bio.c b/fs/bio.c
-index 9bfade8..782f3b9 100644
+index 84da885..bac1d48 100644
 --- a/fs/bio.c
 +++ b/fs/bio.c
-@@ -1233,7 +1233,7 @@ static void bio_copy_kern_endio(struct bio *bio, int err)
+@@ -838,7 +838,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
+               /*
+                * Overflow, abort
+                */
+-              if (end < start)
++              if (end < start || end - start > INT_MAX - nr_pages)
+                       return ERR_PTR(-EINVAL);
+               nr_pages += end - start;
+@@ -972,7 +972,7 @@ static struct bio *__bio_map_user_iov(struct request_queue *q,
+               /*
+                * Overflow, abort
+                */
+-              if (end < start)
++              if (end < start || end - start > INT_MAX - nr_pages)
+                       return ERR_PTR(-EINVAL);
+               nr_pages += end - start;
+@@ -1234,7 +1234,7 @@ static void bio_copy_kern_endio(struct bio *bio, int err)
        const int read = bio_data_dir(bio) == READ;
        struct bio_map_data *bmd = bio->bi_private;
        int i;
@@ -42616,10 +42804,10 @@ index 9bfade8..782f3b9 100644
        __bio_for_each_segment(bvec, bio, i, 0) {
                char *addr = page_address(bvec->bv_page);
 diff --git a/fs/block_dev.c b/fs/block_dev.c
-index 1c44b8d..e2507b4 100644
+index ba11c30..623d736 100644
 --- a/fs/block_dev.c
 +++ b/fs/block_dev.c
-@@ -681,7 +681,7 @@ static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,
+@@ -704,7 +704,7 @@ static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,
        else if (bdev->bd_contains == bdev)
                return true;     /* is a whole device which isn't held */
  
@@ -42628,11 +42816,24 @@ index 1c44b8d..e2507b4 100644
                return true;     /* is a partition of a device that is being partitioned */
        else if (whole->bd_holder != NULL)
                return false;    /* is a partition of a held device */
+diff --git a/fs/btrfs/check-integrity.c b/fs/btrfs/check-integrity.c
+index c053e90..e5f1afc 100644
+--- a/fs/btrfs/check-integrity.c
++++ b/fs/btrfs/check-integrity.c
+@@ -156,7 +156,7 @@ struct btrfsic_block {
+       union {
+               bio_end_io_t *bio;
+               bh_end_io_t *bh;
+-      } orig_bio_bh_end_io;
++      } __no_const orig_bio_bh_end_io;
+       int submit_bio_bh_rw;
+       u64 flush_gen; /* only valid if !never_written */
+ };
 diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
-index 011cab3..9ace713 100644
+index 4106264..8157ede 100644
 --- a/fs/btrfs/ctree.c
 +++ b/fs/btrfs/ctree.c
-@@ -488,9 +488,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
+@@ -513,9 +513,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
                free_extent_buffer(buf);
                add_root_to_dirty_list(root);
        } else {
@@ -42649,10 +42850,10 @@ index 011cab3..9ace713 100644
  
                WARN_ON(trans->transid != btrfs_header_generation(parent));
 diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
-index b2d004a..6bb543d 100644
+index 0df0d1f..4bdcbfe 100644
 --- a/fs/btrfs/inode.c
 +++ b/fs/btrfs/inode.c
-@@ -6922,7 +6922,7 @@ fail:
+@@ -7074,7 +7074,7 @@ fail:
        return -ENOMEM;
  }
  
@@ -42661,7 +42862,7 @@ index b2d004a..6bb543d 100644
                         struct dentry *dentry, struct kstat *stat)
  {
        struct inode *inode = dentry->d_inode;
-@@ -6934,6 +6934,14 @@ static int btrfs_getattr(struct vfsmount *mnt,
+@@ -7088,6 +7088,14 @@ static int btrfs_getattr(struct vfsmount *mnt,
        return 0;
  }
  
@@ -42677,10 +42878,10 @@ index b2d004a..6bb543d 100644
   * If a file is moved, it will inherit the cow and compression flags of the new
   * directory.
 diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
-index dae5dfe..6aa01b1 100644
+index 14f8e1f..ab8d81f 100644
 --- a/fs/btrfs/ioctl.c
 +++ b/fs/btrfs/ioctl.c
-@@ -2704,9 +2704,12 @@ long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
+@@ -2882,9 +2882,12 @@ long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
        for (i = 0; i < num_types; i++) {
                struct btrfs_space_info *tmp;
  
@@ -42693,7 +42894,7 @@ index dae5dfe..6aa01b1 100644
                info = NULL;
                rcu_read_lock();
                list_for_each_entry_rcu(tmp, &root->fs_info->space_info,
-@@ -2728,15 +2731,12 @@ long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
+@@ -2906,15 +2909,12 @@ long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
                                memcpy(dest, &space, sizeof(space));
                                dest++;
                                space_args.total_spaces++;
@@ -42711,10 +42912,10 @@ index dae5dfe..6aa01b1 100644
  
        if (copy_to_user(user_dest, dest_orig, alloc_size))
 diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c
-index 59bb176..be9977d 100644
+index 646ee21..f020f87 100644
 --- a/fs/btrfs/relocation.c
 +++ b/fs/btrfs/relocation.c
-@@ -1242,7 +1242,7 @@ static int __update_reloc_root(struct btrfs_root *root, int del)
+@@ -1268,7 +1268,7 @@ static int __update_reloc_root(struct btrfs_root *root, int del)
        }
        spin_unlock(&rc->reloc_root_tree.lock);
  
@@ -42822,7 +43023,7 @@ index bd6bc1b..b627b53 100644
  
  #else
 diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
-index a0358c2..d6137f2 100644
+index 7f0771d..87d4f36 100644
 --- a/fs/cachefiles/namei.c
 +++ b/fs/cachefiles/namei.c
 @@ -318,7 +318,7 @@ try_again:
@@ -42878,7 +43079,7 @@ index 0e3c092..818480e 100644
                        kunmap(page);
                        if (ret != len)
 diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
-index 382abc9..bd89646 100644
+index 3e8094b..cb3ff3d 100644
 --- a/fs/ceph/dir.c
 +++ b/fs/ceph/dir.c
 @@ -244,7 +244,7 @@ static int ceph_readdir(struct file *filp, void *dirent, filldir_t filldir)
@@ -42890,8 +43091,17 @@ index 382abc9..bd89646 100644
        int err;
        u32 ftype;
        struct ceph_mds_reply_info_parsed *rinfo;
+@@ -598,7 +598,7 @@ static struct dentry *ceph_lookup(struct inode *dir, struct dentry *dentry,
+       if (nd &&
+           (nd->flags & LOOKUP_OPEN) &&
+           !(nd->intent.open.flags & O_CREAT)) {
+-              int mode = nd->intent.open.create_mode & ~current->fs->umask;
++              int mode = nd->intent.open.create_mode & ~current_umask();
+               return ceph_lookup_open(dir, dentry, nd, mode, 1);
+       }
 diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
-index 6d40656..bc1f825 100644
+index 2704646..c581c91 100644
 --- a/fs/cifs/cifs_debug.c
 +++ b/fs/cifs/cifs_debug.c
 @@ -265,8 +265,8 @@ static ssize_t cifs_stats_proc_write(struct file *file,
@@ -43024,10 +43234,10 @@ index 6d40656..bc1f825 100644
                }
        }
 diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
-index 54b8f1e..f6a4c00 100644
+index 541ef81..a78deb8 100644
 --- a/fs/cifs/cifsfs.c
 +++ b/fs/cifs/cifsfs.c
-@@ -981,7 +981,7 @@ cifs_init_request_bufs(void)
+@@ -985,7 +985,7 @@ cifs_init_request_bufs(void)
        cifs_req_cachep = kmem_cache_create("cifs_request",
                                            CIFSMaxBufSize +
                                            MAX_CIFS_HDR_SIZE, 0,
@@ -43036,7 +43246,7 @@ index 54b8f1e..f6a4c00 100644
        if (cifs_req_cachep == NULL)
                return -ENOMEM;
  
-@@ -1008,7 +1008,7 @@ cifs_init_request_bufs(void)
+@@ -1012,7 +1012,7 @@ cifs_init_request_bufs(void)
        efficient to alloc 1 per page off the slab compared to 17K (5page)
        alloc of large cifs buffers even when page debugging is on */
        cifs_sm_req_cachep = kmem_cache_create("cifs_small_rq",
@@ -43045,7 +43255,7 @@ index 54b8f1e..f6a4c00 100644
                        NULL);
        if (cifs_sm_req_cachep == NULL) {
                mempool_destroy(cifs_req_poolp);
-@@ -1093,8 +1093,8 @@ init_cifs(void)
+@@ -1097,8 +1097,8 @@ init_cifs(void)
        atomic_set(&bufAllocCount, 0);
        atomic_set(&smBufAllocCount, 0);
  #ifdef CONFIG_CIFS_STATS2
@@ -43057,10 +43267,10 @@ index 54b8f1e..f6a4c00 100644
  
        atomic_set(&midCount, 0);
 diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
-index 95dad9d..fe7af1a 100644
+index 73fea28..b996b84 100644
 --- a/fs/cifs/cifsglob.h
 +++ b/fs/cifs/cifsglob.h
-@@ -381,28 +381,28 @@ struct cifs_tcon {
+@@ -439,28 +439,28 @@ struct cifs_tcon {
        __u16 Flags;            /* optional support bits */
        enum statusEnum tidStatus;
  #ifdef CONFIG_CIFS_STATS
@@ -43111,7 +43321,7 @@ index 95dad9d..fe7af1a 100644
  #ifdef CONFIG_CIFS_STATS2
        unsigned long long time_writes;
        unsigned long long time_reads;
-@@ -613,7 +613,7 @@ convert_delimiter(char *path, char delim)
+@@ -677,7 +677,7 @@ convert_delimiter(char *path, char delim)
  }
  
  #ifdef CONFIG_CIFS_STATS
@@ -43120,7 +43330,7 @@ index 95dad9d..fe7af1a 100644
  
  static inline void cifs_stats_bytes_written(struct cifs_tcon *tcon,
                                            unsigned int bytes)
-@@ -953,8 +953,8 @@ GLOBAL_EXTERN atomic_t tconInfoReconnectCount;
+@@ -1036,8 +1036,8 @@ GLOBAL_EXTERN atomic_t tconInfoReconnectCount;
  /* Various Debug counters */
  GLOBAL_EXTERN atomic_t bufAllocCount;    /* current number allocated  */
  #ifdef CONFIG_CIFS_STATS2
@@ -43132,10 +43342,10 @@ index 95dad9d..fe7af1a 100644
  GLOBAL_EXTERN atomic_t smBufAllocCount;
  GLOBAL_EXTERN atomic_t midCount;
 diff --git a/fs/cifs/link.c b/fs/cifs/link.c
-index db3f18c..1f5955e 100644
+index 6b0e064..94e6c3c 100644
 --- a/fs/cifs/link.c
 +++ b/fs/cifs/link.c
-@@ -593,7 +593,7 @@ symlink_exit:
+@@ -600,7 +600,7 @@ symlink_exit:
  
  void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie)
  {
@@ -43145,7 +43355,7 @@ index db3f18c..1f5955e 100644
                kfree(p);
  }
 diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
-index 7c16933..c8212b5 100644
+index c29d1aa..58018da 100644
 --- a/fs/cifs/misc.c
 +++ b/fs/cifs/misc.c
 @@ -156,7 +156,7 @@ cifs_buf_get(void)
@@ -43215,21 +43425,10 @@ index 6901578..d402eb5 100644
  
        return hit;
 diff --git a/fs/compat.c b/fs/compat.c
-index 58b1da4..afcd9b8 100644
+index f2944ac..62845d2 100644
 --- a/fs/compat.c
 +++ b/fs/compat.c
-@@ -133,8 +133,8 @@ asmlinkage long compat_sys_utimes(const char __user *filename, struct compat_tim
- static int cp_compat_stat(struct kstat *stat, struct compat_stat __user *ubuf)
- {
-       compat_ino_t ino = stat->ino;
--      typeof(ubuf->st_uid) uid = 0;
--      typeof(ubuf->st_gid) gid = 0;
-+      typeof(((struct compat_stat *)0)->st_uid) uid = 0;
-+      typeof(((struct compat_stat *)0)->st_gid) gid = 0;
-       int err;
-       SET_UID(uid, stat->uid);
-@@ -508,7 +508,7 @@ compat_sys_io_setup(unsigned nr_reqs, u32 __user *ctx32p)
+@@ -490,7 +490,7 @@ compat_sys_io_setup(unsigned nr_reqs, u32 __user *ctx32p)
  
        set_fs(KERNEL_DS);
        /* The __user pointer cast is valid because of the set_fs() */
@@ -43238,7 +43437,7 @@ index 58b1da4..afcd9b8 100644
        set_fs(oldfs);
        /* truncating is ok because it's a user address */
        if (!ret)
-@@ -566,7 +566,7 @@ ssize_t compat_rw_copy_check_uvector(int type,
+@@ -548,7 +548,7 @@ ssize_t compat_rw_copy_check_uvector(int type,
                goto out;
  
        ret = -EINVAL;
@@ -43247,7 +43446,7 @@ index 58b1da4..afcd9b8 100644
                goto out;
        if (nr_segs > fast_segs) {
                ret = -ENOMEM;
-@@ -848,6 +848,7 @@ struct compat_old_linux_dirent {
+@@ -831,6 +831,7 @@ struct compat_old_linux_dirent {
  
  struct compat_readdir_callback {
        struct compat_old_linux_dirent __user *dirent;
@@ -43255,7 +43454,7 @@ index 58b1da4..afcd9b8 100644
        int result;
  };
  
-@@ -865,6 +866,10 @@ static int compat_fillonedir(void *__buf, const char *name, int namlen,
+@@ -848,6 +849,10 @@ static int compat_fillonedir(void *__buf, const char *name, int namlen,
                buf->result = -EOVERFLOW;
                return -EOVERFLOW;
        }
@@ -43266,7 +43465,7 @@ index 58b1da4..afcd9b8 100644
        buf->result++;
        dirent = buf->dirent;
        if (!access_ok(VERIFY_WRITE, dirent,
-@@ -897,6 +902,7 @@ asmlinkage long compat_sys_old_readdir(unsigned int fd,
+@@ -880,6 +885,7 @@ asmlinkage long compat_sys_old_readdir(unsigned int fd,
  
        buf.result = 0;
        buf.dirent = dirent;
@@ -43274,7 +43473,7 @@ index 58b1da4..afcd9b8 100644
  
        error = vfs_readdir(file, compat_fillonedir, &buf);
        if (buf.result)
-@@ -917,6 +923,7 @@ struct compat_linux_dirent {
+@@ -900,6 +906,7 @@ struct compat_linux_dirent {
  struct compat_getdents_callback {
        struct compat_linux_dirent __user *current_dir;
        struct compat_linux_dirent __user *previous;
@@ -43282,7 +43481,7 @@ index 58b1da4..afcd9b8 100644
        int count;
        int error;
  };
-@@ -938,6 +945,10 @@ static int compat_filldir(void *__buf, const char *name, int namlen,
+@@ -921,6 +928,10 @@ static int compat_filldir(void *__buf, const char *name, int namlen,
                buf->error = -EOVERFLOW;
                return -EOVERFLOW;
        }
@@ -43293,7 +43492,7 @@ index 58b1da4..afcd9b8 100644
        dirent = buf->previous;
        if (dirent) {
                if (__put_user(offset, &dirent->d_off))
-@@ -985,6 +996,7 @@ asmlinkage long compat_sys_getdents(unsigned int fd,
+@@ -968,6 +979,7 @@ asmlinkage long compat_sys_getdents(unsigned int fd,
        buf.previous = NULL;
        buf.count = count;
        buf.error = 0;
@@ -43301,7 +43500,7 @@ index 58b1da4..afcd9b8 100644
  
        error = vfs_readdir(file, compat_filldir, &buf);
        if (error >= 0)
-@@ -1006,6 +1018,7 @@ out:
+@@ -989,6 +1001,7 @@ out:
  struct compat_getdents_callback64 {
        struct linux_dirent64 __user *current_dir;
        struct linux_dirent64 __user *previous;
@@ -43309,7 +43508,7 @@ index 58b1da4..afcd9b8 100644
        int count;
        int error;
  };
-@@ -1022,6 +1035,10 @@ static int compat_filldir64(void * __buf, const char * name, int namlen, loff_t
+@@ -1005,6 +1018,10 @@ static int compat_filldir64(void * __buf, const char * name, int namlen, loff_t
        buf->error = -EINVAL;   /* only used if we fail.. */
        if (reclen > buf->count)
                return -EINVAL;
@@ -43320,7 +43519,7 @@ index 58b1da4..afcd9b8 100644
        dirent = buf->previous;
  
        if (dirent) {
-@@ -1073,13 +1090,14 @@ asmlinkage long compat_sys_getdents64(unsigned int fd,
+@@ -1056,13 +1073,14 @@ asmlinkage long compat_sys_getdents64(unsigned int fd,
        buf.previous = NULL;
        buf.count = count;
        buf.error = 0;
@@ -43336,15 +43535,6 @@ index 58b1da4..afcd9b8 100644
                if (__put_user_unaligned(d_off, &lastdirent->d_off))
                        error = -EFAULT;
                else
-@@ -1446,6 +1464,8 @@ int compat_core_sys_select(int n, compat_ulong_t __user *inp,
-       struct fdtable *fdt;
-       long stack_fds[SELECT_STACK_ALLOC/sizeof(long)];
-+      pax_track_stack();
-+
-       if (n < 0)
-               goto out_nofds;
 diff --git a/fs/compat_binfmt_elf.c b/fs/compat_binfmt_elf.c
 index 112e45a..b59845b 100644
 --- a/fs/compat_binfmt_elf.c
@@ -43364,7 +43554,7 @@ index 112e45a..b59845b 100644
  
  /*
 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
-index 51352de..93292ff 100644
+index debdfe0..75d31d4 100644
 --- a/fs/compat_ioctl.c
 +++ b/fs/compat_ioctl.c
 @@ -210,6 +210,8 @@ static int do_video_set_spu_palette(unsigned int fd, unsigned int cmd,
@@ -43394,7 +43584,7 @@ index 51352de..93292ff 100644
                return -EFAULT;
  
        return ioctl_preallocate(file, p);
-@@ -1644,8 +1646,8 @@ asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
+@@ -1610,8 +1612,8 @@ asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
  static int __init init_sys32_ioctl_cmp(const void *p, const void *q)
  {
        unsigned int a, b;
@@ -43406,10 +43596,10 @@ index 51352de..93292ff 100644
                return 1;
        if (a < b)
 diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
-index 9a37a9b..35792b6 100644
+index 7e6c52d..94bc756 100644
 --- a/fs/configfs/dir.c
 +++ b/fs/configfs/dir.c
-@@ -1575,7 +1575,8 @@ static int configfs_readdir(struct file * filp, void * dirent, filldir_t filldir
+@@ -1564,7 +1564,8 @@ static int configfs_readdir(struct file * filp, void * dirent, filldir_t filldir
                        }
                        for (p=q->next; p!= &parent_sd->s_children; p=p->next) {
                                struct configfs_dirent *next;
@@ -43419,7 +43609,7 @@ index 9a37a9b..35792b6 100644
                                int len;
                                struct inode *inode = NULL;
  
-@@ -1585,7 +1586,12 @@ static int configfs_readdir(struct file * filp, void * dirent, filldir_t filldir
+@@ -1574,7 +1575,12 @@ static int configfs_readdir(struct file * filp, void * dirent, filldir_t filldir
                                        continue;
  
                                name = configfs_get_name(next);
@@ -43434,10 +43624,10 @@ index 9a37a9b..35792b6 100644
                                /*
                                 * We'll have a dentry and an inode for
 diff --git a/fs/dcache.c b/fs/dcache.c
-index a88948b..1e32160 100644
+index b80531c..8ca7e2d 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
-@@ -2998,7 +2998,7 @@ void __init vfs_caches_init(unsigned long mempages)
+@@ -3084,7 +3084,7 @@ void __init vfs_caches_init(unsigned long mempages)
        mempages -= reserve;
  
        names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
@@ -43446,11 +43636,27 @@ index a88948b..1e32160 100644
  
        dcache_init();
        inode_init();
+diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
+index b80bc84..0d46d1a 100644
+--- a/fs/debugfs/inode.c
++++ b/fs/debugfs/inode.c
+@@ -408,7 +408,11 @@ EXPORT_SYMBOL_GPL(debugfs_create_file);
+ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
+ {
+       return debugfs_create_file(name, 
++#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
++                                 S_IFDIR | S_IRWXU,
++#else
+                                  S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO,
++#endif
+                                  parent, NULL, NULL);
+ }
+ EXPORT_SYMBOL_GPL(debugfs_create_dir);
 diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
-index 528da01..bd8c23d 100644
+index ab35b11..b30af66 100644
 --- a/fs/ecryptfs/inode.c
 +++ b/fs/ecryptfs/inode.c
-@@ -691,7 +691,7 @@ static int ecryptfs_readlink_lower(struct dentry *dentry, char **buf,
+@@ -672,7 +672,7 @@ static int ecryptfs_readlink_lower(struct dentry *dentry, char **buf,
        old_fs = get_fs();
        set_fs(get_ds());
        rc = lower_dentry->d_inode->i_op->readlink(lower_dentry,
@@ -43459,7 +43665,7 @@ index 528da01..bd8c23d 100644
                                                   lower_bufsiz);
        set_fs(old_fs);
        if (rc < 0)
-@@ -737,7 +737,7 @@ static void *ecryptfs_follow_link(struct dentry *dentry, struct nameidata *nd)
+@@ -718,7 +718,7 @@ static void *ecryptfs_follow_link(struct dentry *dentry, struct nameidata *nd)
        }
        old_fs = get_fs();
        set_fs(get_ds());
@@ -43468,7 +43674,7 @@ index 528da01..bd8c23d 100644
        set_fs(old_fs);
        if (rc < 0) {
                kfree(buf);
-@@ -752,7 +752,7 @@ out:
+@@ -733,7 +733,7 @@ out:
  static void
  ecryptfs_put_link(struct dentry *dentry, struct nameidata *nd, void *ptr)
  {
@@ -43478,12 +43684,12 @@ index 528da01..bd8c23d 100644
                /* Free the char* */
                kfree(buf);
 diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
-index 940a82e..63af89e 100644
+index c0038f6..47ab347 100644
 --- a/fs/ecryptfs/miscdev.c
 +++ b/fs/ecryptfs/miscdev.c
-@@ -328,7 +328,7 @@ check_list:
+@@ -355,7 +355,7 @@ check_list:
                goto out_unlock_msg_ctx;
-       i = 5;
+       i = PKT_TYPE_SIZE + PKT_CTR_SIZE;
        if (msg_ctx->msg) {
 -              if (copy_to_user(&buf[i], packet_length, packet_length_size))
 +              if (packet_length_size > sizeof(packet_length) || copy_to_user(&buf[i], packet_length, packet_length_size))
@@ -43491,7 +43697,7 @@ index 940a82e..63af89e 100644
                i += packet_length_size;
                if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
 diff --git a/fs/ecryptfs/read_write.c b/fs/ecryptfs/read_write.c
-index 3745f7c..89cc7a3 100644
+index b2a34a1..162fa69 100644
 --- a/fs/ecryptfs/read_write.c
 +++ b/fs/ecryptfs/read_write.c
 @@ -48,7 +48,7 @@ int ecryptfs_write_lower(struct inode *ecryptfs_inode, char *data,
@@ -43503,7 +43709,7 @@ index 3745f7c..89cc7a3 100644
        set_fs(fs_save);
        mark_inode_dirty_sync(ecryptfs_inode);
        return rc;
-@@ -235,7 +235,7 @@ int ecryptfs_read_lower(char *data, loff_t offset, size_t size,
+@@ -244,7 +244,7 @@ int ecryptfs_read_lower(char *data, loff_t offset, size_t size,
                return -EIO;
        fs_save = get_fs();
        set_fs(get_ds());
@@ -43513,10 +43719,10 @@ index 3745f7c..89cc7a3 100644
        return rc;
  }
 diff --git a/fs/exec.c b/fs/exec.c
-index 25dcbe5..4ffaa78 100644
+index 29e5f84..8bfc7cb 100644
 --- a/fs/exec.c
 +++ b/fs/exec.c
-@@ -55,12 +55,24 @@
+@@ -55,6 +55,15 @@
  #include <linux/pipe_fs_i.h>
  #include <linux/oom.h>
  #include <linux/compat.h>
@@ -43527,12 +43733,22 @@ index 25dcbe5..4ffaa78 100644
 +#include <linux/kallsyms.h>
 +#include <linux/kdebug.h>
 +#endif
++
++#include <trace/events/fs.h>
  
  #include <asm/uaccess.h>
  #include <asm/mmu_context.h>
- #include <asm/tlb.h>
- #include "internal.h"
+@@ -66,6 +75,18 @@
+ #include <trace/events/sched.h>
  
++#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
++void __weak pax_set_initial_flags(struct linux_binprm *bprm)
++{
++      WARN_ONCE(1, "PAX: PAX_HAVE_ACL_FLAGS was enabled without providing the pax_set_initial_flags callback, this is probably not what you wanted.\n");
++}
++#endif
++
 +#ifdef CONFIG_PAX_HOOK_ACL_FLAGS
 +void (*pax_set_initial_flags_func)(struct linux_binprm *bprm);
 +EXPORT_SYMBOL(pax_set_initial_flags_func);
@@ -43541,7 +43757,7 @@ index 25dcbe5..4ffaa78 100644
  int core_uses_pid;
  char core_pattern[CORENAME_MAX_SIZE] = "core";
  unsigned int core_pipe_limit;
-@@ -70,7 +82,7 @@ struct core_name {
+@@ -75,7 +96,7 @@ struct core_name {
        char *corename;
        int used, size;
  };
@@ -43550,7 +43766,7 @@ index 25dcbe5..4ffaa78 100644
  
  /* The maximal length of core_pattern is also specified in sysctl.c */
  
-@@ -188,18 +200,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
+@@ -191,18 +212,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
                int write)
  {
        struct page *page;
@@ -43572,7 +43788,25 @@ index 25dcbe5..4ffaa78 100644
                return NULL;
  
        if (write) {
-@@ -274,6 +278,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
+@@ -218,6 +231,17 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
+               if (size <= ARG_MAX)
+                       return page;
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++              // only allow 512KB for argv+env on suid/sgid binaries
++              // to prevent easy ASLR exhaustion
++              if (((bprm->cred->euid != current_euid()) ||
++                   (bprm->cred->egid != current_egid())) &&
++                  (size > (512 * 1024))) {
++                      put_page(page);
++                      return NULL;
++              }
++#endif
++
+               /*
+                * Limit to 1/4-th the stack size for the argv+env strings.
+                * This ensures that:
+@@ -277,6 +301,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
        vma->vm_end = STACK_TOP_MAX;
        vma->vm_start = vma->vm_end - PAGE_SIZE;
        vma->vm_flags = VM_STACK_FLAGS | VM_STACK_INCOMPLETE_SETUP;
@@ -43584,20 +43818,20 @@ index 25dcbe5..4ffaa78 100644
        vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
        INIT_LIST_HEAD(&vma->anon_vma_chain);
  
-@@ -288,6 +297,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
+@@ -291,6 +320,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
        mm->stack_vm = mm->total_vm = 1;
        up_write(&mm->mmap_sem);
        bprm->p = vma->vm_end - sizeof(void *);
 +
 +#ifdef CONFIG_PAX_RANDUSTACK
 +      if (randomize_va_space)
-+              bprm->p ^= (pax_get_random_long() & ~15) & ~PAGE_MASK;
++              bprm->p ^= random32() & ~PAGE_MASK;
 +#endif
 +
        return 0;
  err:
        up_write(&mm->mmap_sem);
-@@ -396,19 +411,7 @@ err:
+@@ -399,19 +434,7 @@ err:
        return err;
  }
  
@@ -43618,7 +43852,7 @@ index 25dcbe5..4ffaa78 100644
  {
        const char __user *native;
  
-@@ -417,14 +420,14 @@ static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
+@@ -420,14 +443,14 @@ static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
                compat_uptr_t compat;
  
                if (get_user(compat, argv.ptr.compat + nr))
@@ -43635,7 +43869,7 @@ index 25dcbe5..4ffaa78 100644
  
        return native;
  }
-@@ -443,7 +446,7 @@ static int count(struct user_arg_ptr argv, int max)
+@@ -446,7 +469,7 @@ static int count(struct user_arg_ptr argv, int max)
                        if (!p)
                                break;
  
@@ -43644,7 +43878,7 @@ index 25dcbe5..4ffaa78 100644
                                return -EFAULT;
  
                        if (i++ >= max)
-@@ -477,7 +480,7 @@ static int copy_strings(int argc, struct user_arg_ptr argv,
+@@ -480,7 +503,7 @@ static int copy_strings(int argc, struct user_arg_ptr argv,
  
                ret = -EFAULT;
                str = get_user_arg_ptr(argv, argc);
@@ -43653,7 +43887,7 @@ index 25dcbe5..4ffaa78 100644
                        goto out;
  
                len = strnlen_user(str, MAX_ARG_STRLEN);
-@@ -559,7 +562,7 @@ int copy_strings_kernel(int argc, const char *const *__argv,
+@@ -562,7 +585,7 @@ int copy_strings_kernel(int argc, const char *const *__argv,
        int r;
        mm_segment_t oldfs = get_fs();
        struct user_arg_ptr argv = {
@@ -43662,7 +43896,7 @@ index 25dcbe5..4ffaa78 100644
        };
  
        set_fs(KERNEL_DS);
-@@ -594,7 +597,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
+@@ -597,7 +620,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
        unsigned long new_end = old_end - shift;
        struct mmu_gather tlb;
  
@@ -43672,7 +43906,7 @@ index 25dcbe5..4ffaa78 100644
  
        /*
         * ensure there are no vmas between where we want to go
-@@ -603,6 +607,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
+@@ -606,6 +630,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
        if (vma != find_vma(mm, new_start))
                return -EFAULT;
  
@@ -43683,7 +43917,7 @@ index 25dcbe5..4ffaa78 100644
        /*
         * cover the whole range: [new_start, old_end)
         */
-@@ -683,10 +691,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
+@@ -686,10 +714,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
        stack_top = arch_align_stack(stack_top);
        stack_top = PAGE_ALIGN(stack_top);
  
@@ -43694,7 +43928,7 @@ index 25dcbe5..4ffaa78 100644
        stack_shift = vma->vm_end - stack_top;
  
        bprm->p -= stack_shift;
-@@ -698,8 +702,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
+@@ -701,8 +725,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
        bprm->exec -= stack_shift;
  
        down_write(&mm->mmap_sem);
@@ -43723,7 +43957,7 @@ index 25dcbe5..4ffaa78 100644
        /*
         * Adjust stack execute permissions; explicitly enable for
         * EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone
-@@ -718,13 +742,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
+@@ -721,13 +765,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
                goto out_unlock;
        BUG_ON(prev != vma);
  
@@ -43737,7 +43971,16 @@ index 25dcbe5..4ffaa78 100644
        /* mprotect_fixup is overkill to remove the temporary stack flags */
        vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP;
  
-@@ -805,7 +822,7 @@ int kernel_read(struct file *file, loff_t offset,
+@@ -785,6 +822,8 @@ struct file *open_exec(const char *name)
+       fsnotify_open(file);
++      trace_open_exec(name);
++
+       err = deny_write_access(file);
+       if (err)
+               goto exit;
+@@ -808,7 +847,7 @@ int kernel_read(struct file *file, loff_t offset,
        old_fs = get_fs();
        set_fs(get_ds());
        /* The cast to a user pointer is valid due to the set_fs() */
@@ -43746,7 +43989,7 @@ index 25dcbe5..4ffaa78 100644
        set_fs(old_fs);
        return result;
  }
-@@ -1251,7 +1268,7 @@ int check_unsafe_exec(struct linux_binprm *bprm)
+@@ -1254,7 +1293,7 @@ static int check_unsafe_exec(struct linux_binprm *bprm)
        }
        rcu_read_unlock();
  
@@ -43755,7 +43998,36 @@ index 25dcbe5..4ffaa78 100644
                bprm->unsafe |= LSM_UNSAFE_SHARE;
        } else {
                res = -EAGAIN;
-@@ -1454,6 +1471,11 @@ static int do_execve_common(const char *filename,
+@@ -1451,6 +1490,28 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
+ EXPORT_SYMBOL(search_binary_handler);
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++static DEFINE_PER_CPU(u64, exec_counter);
++static int __init init_exec_counters(void)
++{
++      unsigned int cpu;
++
++      for_each_possible_cpu(cpu) {
++              per_cpu(exec_counter, cpu) = (u64)cpu;
++      }
++
++      return 0;
++}
++early_initcall(init_exec_counters);
++static inline void increment_exec_counter(void)
++{
++      BUILD_BUG_ON(NR_CPUS > (1 << 16));
++      current->exec_id = this_cpu_add_return(exec_counter, 1 << 16);
++}
++#else
++static inline void increment_exec_counter(void) {}
++#endif
++
+ /*
+  * sys_execve() executes a new program.
+  */
+@@ -1459,6 +1520,11 @@ static int do_execve_common(const char *filename,
                                struct user_arg_ptr envp,
                                struct pt_regs *regs)
  {
@@ -43767,7 +44039,7 @@ index 25dcbe5..4ffaa78 100644
        struct linux_binprm *bprm;
        struct file *file;
        struct files_struct *displaced;
-@@ -1461,6 +1483,8 @@ static int do_execve_common(const char *filename,
+@@ -1466,6 +1532,8 @@ static int do_execve_common(const char *filename,
        int retval;
        const struct cred *cred = current_cred();
  
@@ -43776,7 +44048,18 @@ index 25dcbe5..4ffaa78 100644
        /*
         * We move the actual failure in case of RLIMIT_NPROC excess from
         * set*uid() to execve() because too many poorly written programs
-@@ -1507,6 +1531,16 @@ static int do_execve_common(const char *filename,
+@@ -1506,12 +1574,27 @@ static int do_execve_common(const char *filename,
+       if (IS_ERR(file))
+               goto out_unmark;
++      if (gr_ptrace_readexec(file, bprm->unsafe)) {
++              retval = -EPERM;
++              goto out_file;
++      }
++
+       sched_exec();
+       bprm->file = file;
        bprm->filename = filename;
        bprm->interp = filename;
  
@@ -43793,24 +44076,10 @@ index 25dcbe5..4ffaa78 100644
        retval = bprm_mm_init(bprm);
        if (retval)
                goto out_file;
-@@ -1536,9 +1570,40 @@ static int do_execve_common(const char *filename,
+@@ -1528,24 +1611,65 @@ static int do_execve_common(const char *filename,
        if (retval < 0)
                goto out;
  
-+      if (!gr_tpe_allow(file)) {
-+              retval = -EACCES;
-+              goto out;
-+      }
-+
-+      if (gr_check_crash_exec(file)) {
-+              retval = -EACCES;
-+              goto out;
-+      }
-+
-+      gr_log_chroot_exec(file->f_dentry, file->f_vfsmnt);
-+
-+      gr_handle_exec_args(bprm, argv);
-+
 +#ifdef CONFIG_GRKERNSEC
 +      old_acl = current->acl;
 +      memcpy(old_rlim, current->signal->rlim, sizeof(old_rlim));
@@ -43818,12 +44087,50 @@ index 25dcbe5..4ffaa78 100644
 +      get_file(file);
 +      current->exec_file = file;
 +#endif
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      /* limit suid stack to 8MB
++         we saved the old limits above and will restore them if this exec fails
++      */
++      if (((bprm->cred->euid != current_euid()) || (bprm->cred->egid != current_egid())) &&
++          (old_rlim[RLIMIT_STACK].rlim_cur > (8 * 1024 * 1024)))
++              current->signal->rlim[RLIMIT_STACK].rlim_cur = 8 * 1024 * 1024;
++#endif
++
++      if (!gr_tpe_allow(file)) {
++              retval = -EACCES;
++              goto out_fail;
++      }
++
++      if (gr_check_crash_exec(file)) {
++              retval = -EACCES;
++              goto out_fail;
++      }
 +
 +      retval = gr_set_proc_label(file->f_dentry, file->f_vfsmnt,
-+                                      bprm->unsafe & LSM_UNSAFE_SHARE);
++                                      bprm->unsafe);
 +      if (retval < 0)
 +              goto out_fail;
 +
+       retval = copy_strings_kernel(1, &bprm->filename, bprm);
+       if (retval < 0)
+-              goto out;
++              goto out_fail;
+       bprm->exec = bprm->p;
+       retval = copy_strings(bprm->envc, envp, bprm);
+       if (retval < 0)
+-              goto out;
++              goto out_fail;
+       retval = copy_strings(bprm->argc, argv, bprm);
+       if (retval < 0)
+-              goto out;
++              goto out_fail;
++
++      gr_log_chroot_exec(file->f_dentry, file->f_vfsmnt);
++
++      gr_handle_exec_args(bprm, argv);
        retval = search_binary_handler(bprm,regs);
        if (retval < 0)
 -              goto out;
@@ -43834,8 +44141,12 @@ index 25dcbe5..4ffaa78 100644
 +#endif
  
        /* execve succeeded */
++
++      increment_exec_counter();
        current->fs->in_exec = 0;
-@@ -1549,6 +1614,14 @@ static int do_execve_common(const char *filename,
+       current->in_execve = 0;
+       acct_update_integrals(current);
+@@ -1554,6 +1678,14 @@ static int do_execve_common(const char *filename,
                put_files_struct(displaced);
        return retval;
  
@@ -43850,7 +44161,7 @@ index 25dcbe5..4ffaa78 100644
  out:
        if (bprm->mm) {
                acct_arg_size(bprm, 0);
-@@ -1622,7 +1695,7 @@ static int expand_corename(struct core_name *cn)
+@@ -1627,7 +1759,7 @@ static int expand_corename(struct core_name *cn)
  {
        char *old_corename = cn->corename;
  
@@ -43859,7 +44170,7 @@ index 25dcbe5..4ffaa78 100644
        cn->corename = krealloc(old_corename, cn->size, GFP_KERNEL);
  
        if (!cn->corename) {
-@@ -1719,7 +1792,7 @@ static int format_corename(struct core_name *cn, long signr)
+@@ -1724,7 +1856,7 @@ static int format_corename(struct core_name *cn, long signr)
        int pid_in_pattern = 0;
        int err = 0;
  
@@ -43868,7 +44179,7 @@ index 25dcbe5..4ffaa78 100644
        cn->corename = kmalloc(cn->size, GFP_KERNEL);
        cn->used = 0;
  
-@@ -1816,6 +1889,218 @@ out:
+@@ -1821,6 +1953,250 @@ out:
        return ispipe;
  }
  
@@ -44013,7 +44324,7 @@ index 25dcbe5..4ffaa78 100644
 +
 +#ifdef CONFIG_PAX_USERCOPY
 +/* 0: not at all, 1: fully, 2: fully inside frame, -1: partially (implies an error) */
-+int object_is_on_stack(const void *obj, unsigned long len)
++static noinline int check_stack_object(const void *obj, unsigned long len)
 +{
 +      const void * const stack = task_stack_page(current);
 +      const void * const stackend = stack + THREAD_SIZE;
@@ -44059,7 +44370,7 @@ index 25dcbe5..4ffaa78 100644
 +#endif
 +}
 +
-+NORET_TYPE void pax_report_usercopy(const void *ptr, unsigned long len, bool to, const char *type)
++static __noreturn void pax_report_usercopy(const void *ptr, unsigned long len, bool to, const char *type)
 +{
 +      if (current->signal->curr_ip)
 +              printk(KERN_ERR "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
@@ -44073,6 +44384,28 @@ index 25dcbe5..4ffaa78 100644
 +}
 +#endif
 +
++void check_object_size(const void *ptr, unsigned long n, bool to)
++{
++
++#ifdef CONFIG_PAX_USERCOPY
++      const char *type;
++
++      if (!n)
++              return;
++
++      type = check_heap_object(ptr, n, to);
++      if (!type) {
++              if (check_stack_object(ptr, n) != -1)
++                      return;
++              type = "<process stack>";
++      }
++
++      pax_report_usercopy(ptr, n, to, type);
++#endif
++
++}
++EXPORT_SYMBOL(check_object_size);
++
 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
 +void pax_track_stack(void)
 +{
@@ -44083,11 +44416,21 @@ index 25dcbe5..4ffaa78 100644
 +}
 +EXPORT_SYMBOL(pax_track_stack);
 +#endif
++
++#ifdef CONFIG_PAX_SIZE_OVERFLOW
++void report_size_overflow(const char *file, unsigned int line, const char *func)
++{
++      printk(KERN_ERR "PAX: size overflow detected in function %s %s:%u\n", func, file, line);
++      dump_stack();
++      do_group_exit(SIGKILL);
++}
++EXPORT_SYMBOL(report_size_overflow);
++#endif
 +
  static int zap_process(struct task_struct *start, int exit_code)
  {
        struct task_struct *t;
-@@ -2027,17 +2312,17 @@ static void wait_for_dump_helpers(struct file *file)
+@@ -2018,17 +2394,17 @@ static void wait_for_dump_helpers(struct file *file)
        pipe = file->f_path.dentry->d_inode->i_pipe;
  
        pipe_lock(pipe);
@@ -44110,7 +44453,7 @@ index 25dcbe5..4ffaa78 100644
        pipe_unlock(pipe);
  
  }
-@@ -2098,7 +2383,7 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
+@@ -2089,7 +2465,7 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
        int retval = 0;
        int flag = 0;
        int ispipe;
@@ -44119,7 +44462,7 @@ index 25dcbe5..4ffaa78 100644
        struct coredump_params cprm = {
                .signr = signr,
                .regs = regs,
-@@ -2113,6 +2398,9 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
+@@ -2104,6 +2480,9 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
  
        audit_core_dumps(signr);
  
@@ -44129,7 +44472,7 @@ index 25dcbe5..4ffaa78 100644
        binfmt = mm->binfmt;
        if (!binfmt || !binfmt->core_dump)
                goto fail;
-@@ -2180,7 +2468,7 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
+@@ -2171,7 +2550,7 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
                }
                cprm.limit = RLIM_INFINITY;
  
@@ -44138,7 +44481,7 @@ index 25dcbe5..4ffaa78 100644
                if (core_pipe_limit && (core_pipe_limit < dump_count)) {
                        printk(KERN_WARNING "Pid %d(%s) over core_pipe_limit\n",
                               task_tgid_vnr(current), current->comm);
-@@ -2207,6 +2495,8 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
+@@ -2198,6 +2577,8 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
        } else {
                struct inode *inode;
  
@@ -44147,7 +44490,7 @@ index 25dcbe5..4ffaa78 100644
                if (cprm.limit < binfmt->min_coredump)
                        goto fail_unlock;
  
-@@ -2250,7 +2540,7 @@ close_fail:
+@@ -2241,7 +2622,7 @@ close_fail:
                filp_close(cprm.file, NULL);
  fail_dropcount:
        if (ispipe)
@@ -44156,7 +44499,7 @@ index 25dcbe5..4ffaa78 100644
  fail_unlock:
        kfree(cn.corename);
  fail_corename:
-@@ -2269,7 +2559,7 @@ fail:
+@@ -2260,7 +2641,7 @@ fail:
   */
  int dump_write(struct file *file, const void *addr, int nr)
  {
@@ -44166,7 +44509,7 @@ index 25dcbe5..4ffaa78 100644
  EXPORT_SYMBOL(dump_write);
  
 diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c
-index 8f44cef..cb07120 100644
+index a8cbe1b..fed04cb 100644
 --- a/fs/ext2/balloc.c
 +++ b/fs/ext2/balloc.c
 @@ -1192,7 +1192,7 @@ static int ext2_has_free_blocks(struct ext2_sb_info *sbi)
@@ -44179,38 +44522,42 @@ index 8f44cef..cb07120 100644
                (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
                return 0;
 diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c
-index 6386d76..0a266b1 100644
+index baac1b1..1499b62 100644
 --- a/fs/ext3/balloc.c
 +++ b/fs/ext3/balloc.c
-@@ -1446,7 +1446,7 @@ static int ext3_has_free_blocks(struct ext3_sb_info *sbi)
+@@ -1438,9 +1438,10 @@ static int ext3_has_free_blocks(struct ext3_sb_info *sbi, int use_reservation)
  
        free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
        root_blocks = le32_to_cpu(sbi->s_es->s_r_blocks_count);
 -      if (free_blocks < root_blocks + 1 && !capable(CAP_SYS_RESOURCE) &&
-+      if (free_blocks < root_blocks + 1 && !capable_nolog(CAP_SYS_RESOURCE) &&
-               sbi->s_resuid != current_fsuid() &&
-               (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
++      if (free_blocks < root_blocks + 1 &&
+               !use_reservation && sbi->s_resuid != current_fsuid() &&
+-              (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
++              (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid)) &&
++              !capable_nolog(CAP_SYS_RESOURCE)) {
                return 0;
+       }
+       return 1;
 diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
-index f8224ad..fbef97c 100644
+index 8da837b..ed3835b 100644
 --- a/fs/ext4/balloc.c
 +++ b/fs/ext4/balloc.c
-@@ -394,8 +394,8 @@ static int ext4_has_free_blocks(struct ext4_sb_info *sbi,
-       /* Hm, nope.  Are (enough) root reserved blocks available? */
+@@ -463,8 +463,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
+       /* Hm, nope.  Are (enough) root reserved clusters available? */
        if (sbi->s_resuid == current_fsuid() ||
            ((sbi->s_resgid != 0) && in_group_p(sbi->s_resgid)) ||
 -          capable(CAP_SYS_RESOURCE) ||
 -              (flags & EXT4_MB_USE_ROOT_BLOCKS)) {
-+              (flags & EXT4_MB_USE_ROOT_BLOCKS) ||
-+              capable_nolog(CAP_SYS_RESOURCE)) {
++          (flags & EXT4_MB_USE_ROOT_BLOCKS) ||
++          capable_nolog(CAP_SYS_RESOURCE)) {
  
-               if (free_blocks >= (nblocks + dirty_blocks))
+               if (free_clusters >= (nclusters + dirty_clusters))
                        return 1;
 diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
-index 5c38120..2291d18 100644
+index 0e01e90..ae2bd5e 100644
 --- a/fs/ext4/ext4.h
 +++ b/fs/ext4/ext4.h
-@@ -1180,19 +1180,19 @@ struct ext4_sb_info {
+@@ -1225,19 +1225,19 @@ struct ext4_sb_info {
        unsigned long s_mb_last_start;
  
        /* stats for buddy allocator */
@@ -44240,48 +44587,23 @@ index 5c38120..2291d18 100644
        atomic_t s_lock_busy;
  
        /* locality groups */
-diff --git a/fs/ext4/file.c b/fs/ext4/file.c
-index e4095e9..1c006c5 100644
---- a/fs/ext4/file.c
-+++ b/fs/ext4/file.c
-@@ -181,8 +181,8 @@ static int ext4_file_open(struct inode * inode, struct file * filp)
-               path.dentry = mnt->mnt_root;
-               cp = d_path(&path, buf, sizeof(buf));
-               if (!IS_ERR(cp)) {
--                      memcpy(sbi->s_es->s_last_mounted, cp,
--                             sizeof(sbi->s_es->s_last_mounted));
-+                      strlcpy(sbi->s_es->s_last_mounted, cp,
-+                              sizeof(sbi->s_es->s_last_mounted));
-                       ext4_mark_super_dirty(sb);
-               }
-       }
 diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
-index f18bfe3..43759b1 100644
+index 1365903..9727522 100644
 --- a/fs/ext4/ioctl.c
 +++ b/fs/ext4/ioctl.c
-@@ -348,7 +348,7 @@ mext_out:
-               if (!blk_queue_discard(q))
-                       return -EOPNOTSUPP;
--              if (copy_from_user(&range, (struct fstrim_range *)arg,
-+              if (copy_from_user(&range, (struct fstrim_range __user *)arg,
-                   sizeof(range)))
-                       return -EFAULT;
-@@ -358,7 +358,7 @@ mext_out:
-               if (ret < 0)
-                       return ret;
--              if (copy_to_user((struct fstrim_range *)arg, &range,
-+              if (copy_to_user((struct fstrim_range __user *)arg, &range,
-                   sizeof(range)))
-                       return -EFAULT;
+@@ -261,7 +261,6 @@ group_extend_out:
+               err = ext4_move_extents(filp, donor_filp, me.orig_start,
+                                       me.donor_start, me.len, &me.moved_len);
+               mnt_drop_write_file(filp);
+-              mnt_drop_write(filp->f_path.mnt);
+               if (copy_to_user((struct move_extent __user *)arg,
+                                &me, sizeof(me)))
 diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
-index 17a5a57..b6be3c5 100644
+index 6b0a57e..1955a44 100644
 --- a/fs/ext4/mballoc.c
 +++ b/fs/ext4/mballoc.c
-@@ -1795,7 +1795,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac,
+@@ -1747,7 +1747,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac,
                BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len);
  
                if (EXT4_SB(sb)->s_mb_stats)
@@ -44290,7 +44612,7 @@ index 17a5a57..b6be3c5 100644
  
                break;
        }
-@@ -2089,7 +2089,7 @@ repeat:
+@@ -2041,7 +2041,7 @@ repeat:
                        ac->ac_status = AC_STATUS_CONTINUE;
                        ac->ac_flags |= EXT4_MB_HINT_FIRST;
                        cr = 3;
@@ -44299,16 +44621,7 @@ index 17a5a57..b6be3c5 100644
                        goto repeat;
                }
        }
-@@ -2132,6 +2132,8 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
-               ext4_grpblk_t counters[16];
-       } sg;
-+      pax_track_stack();
-+
-       group--;
-       if (group == 0)
-               seq_printf(seq, "#%-5s: %-5s %-5s %-5s "
-@@ -2573,25 +2575,25 @@ int ext4_mb_release(struct super_block *sb)
+@@ -2545,25 +2545,25 @@ int ext4_mb_release(struct super_block *sb)
        if (sbi->s_mb_stats) {
                ext4_msg(sb, KERN_INFO,
                       "mballoc: %u blocks %u reqs (%u success)",
@@ -44344,7 +44657,7 @@ index 17a5a57..b6be3c5 100644
        }
  
        free_percpu(sbi->s_locality_groups);
-@@ -3070,16 +3072,16 @@ static void ext4_mb_collect_stats(struct ext4_allocation_context *ac)
+@@ -3045,16 +3045,16 @@ static void ext4_mb_collect_stats(struct ext4_allocation_context *ac)
        struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
  
        if (sbi->s_mb_stats && ac->ac_g_ex.fe_len > 1) {
@@ -44367,16 +44680,16 @@ index 17a5a57..b6be3c5 100644
        }
  
        if (ac->ac_op == EXT4_MB_HISTORY_ALLOC)
-@@ -3477,7 +3479,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
+@@ -3458,7 +3458,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
        trace_ext4_mb_new_inode_pa(ac, pa);
  
        ext4_mb_use_inode_pa(ac, pa);
--      atomic_add(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated);
-+      atomic_add_unchecked(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated);
+-      atomic_add(pa->pa_free, &sbi->s_mb_preallocated);
++      atomic_add_unchecked(pa->pa_free, &sbi->s_mb_preallocated);
  
        ei = EXT4_I(ac->ac_inode);
        grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
-@@ -3537,7 +3539,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
+@@ -3518,7 +3518,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
        trace_ext4_mb_new_group_pa(ac, pa);
  
        ext4_mb_use_group_pa(ac, pa);
@@ -44385,7 +44698,7 @@ index 17a5a57..b6be3c5 100644
  
        grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
        lg = ac->ac_lg;
-@@ -3625,7 +3627,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
+@@ -3607,7 +3607,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
                 * from the bitmap and continue.
                 */
        }
@@ -44394,7 +44707,7 @@ index 17a5a57..b6be3c5 100644
  
        return err;
  }
-@@ -3643,7 +3645,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
+@@ -3625,7 +3625,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
        ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit);
        BUG_ON(group != e4b->bd_group && pa->pa_len != 0);
        mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len);
@@ -44404,7 +44717,7 @@ index 17a5a57..b6be3c5 100644
  
        return 0;
 diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 22764c7..86372c9 100644
+index 75e7c1f..1eb3e4d 100644
 --- a/fs/fcntl.c
 +++ b/fs/fcntl.c
 @@ -224,6 +224,11 @@ int __f_setown(struct file *filp, struct pid *pid, enum pid_type type,
@@ -44446,10 +44759,10 @@ index 22764c7..86372c9 100644
                        break;
                err = alloc_fd(arg, cmd == F_DUPFD_CLOEXEC ? O_CLOEXEC : 0);
 diff --git a/fs/fifo.c b/fs/fifo.c
-index b1a524d..4ee270e 100644
+index cf6f434..3d7942c 100644
 --- a/fs/fifo.c
 +++ b/fs/fifo.c
-@@ -58,10 +58,10 @@ static int fifo_open(struct inode *inode, struct file *filp)
+@@ -59,10 +59,10 @@ static int fifo_open(struct inode *inode, struct file *filp)
         */
                filp->f_op = &read_pipefifo_fops;
                pipe->r_counter++;
@@ -44478,10 +44791,10 @@ index b1a524d..4ee270e 100644
  
 -              if (!pipe->readers) {
 +              if (!atomic_read(&pipe->readers)) {
-                       wait_for_partner(inode, &pipe->r_counter);
-                       if (signal_pending(current))
+                       if (wait_for_partner(inode, &pipe->r_counter))
                                goto err_wr;
-@@ -105,11 +105,11 @@ static int fifo_open(struct inode *inode, struct file *filp)
+               }
+@@ -104,11 +104,11 @@ static int fifo_open(struct inode *inode, struct file *filp)
         */
                filp->f_op = &rdwr_pipefifo_fops;
  
@@ -44496,7 +44809,7 @@ index b1a524d..4ee270e 100644
                        wake_up_partner(inode);
                break;
  
-@@ -123,19 +123,19 @@ static int fifo_open(struct inode *inode, struct file *filp)
+@@ -122,19 +122,19 @@ static int fifo_open(struct inode *inode, struct file *filp)
        return 0;
  
  err_rd:
@@ -44520,7 +44833,7 @@ index b1a524d..4ee270e 100644
  
  err_nocleanup:
 diff --git a/fs/file.c b/fs/file.c
-index 4c6992d..104cdea 100644
+index ba3f605..fade102 100644
 --- a/fs/file.c
 +++ b/fs/file.c
 @@ -15,6 +15,7 @@
@@ -44531,7 +44844,7 @@ index 4c6992d..104cdea 100644
  #include <linux/fdtable.h>
  #include <linux/bitops.h>
  #include <linux/interrupt.h>
-@@ -254,6 +255,7 @@ int expand_files(struct files_struct *files, int nr)
+@@ -255,6 +256,7 @@ int expand_files(struct files_struct *files, int nr)
         * N.B. For clone tasks sharing a files structure, this test
         * will limit the total number of files that can be opened.
         */
@@ -44540,10 +44853,10 @@ index 4c6992d..104cdea 100644
                return -EMFILE;
  
 diff --git a/fs/filesystems.c b/fs/filesystems.c
-index 0845f84..7b4ebef 100644
+index 96f2428..f5eeb8e 100644
 --- a/fs/filesystems.c
 +++ b/fs/filesystems.c
-@@ -274,7 +274,12 @@ struct file_system_type *get_fs_type(const char *name)
+@@ -273,7 +273,12 @@ struct file_system_type *get_fs_type(const char *name)
        int len = dot ? dot - name : strlen(name);
  
        fs = __get_fs_type(name, len);
@@ -44557,7 +44870,7 @@ index 0845f84..7b4ebef 100644
  
        if (dot && fs && !(fs->fs_flags & FS_HAS_SUBTYPE)) {
 diff --git a/fs/fs_struct.c b/fs/fs_struct.c
-index 78b519c..212c0d0 100644
+index e159e68..e7d2a6f 100644
 --- a/fs/fs_struct.c
 +++ b/fs/fs_struct.c
 @@ -4,6 +4,7 @@
@@ -44569,32 +44882,51 @@ index 78b519c..212c0d0 100644
  
  static inline void path_get_longterm(struct path *path)
 @@ -31,6 +32,7 @@ void set_fs_root(struct fs_struct *fs, struct path *path)
+       write_seqcount_begin(&fs->seq);
        old_root = fs->root;
        fs->root = *path;
-       path_get_longterm(path);
 +      gr_set_chroot_entries(current, path);
        write_seqcount_end(&fs->seq);
        spin_unlock(&fs->lock);
        if (old_root.dentry)
-@@ -74,6 +76,7 @@ void chroot_fs_refs(struct path *old_root, struct path *new_root)
-                           && fs->root.mnt == old_root->mnt) {
-                               path_get_longterm(new_root);
-                               fs->root = *new_root;
-+                              gr_set_chroot_entries(p, new_root);
-                               count++;
-                       }
-                       if (fs->pwd.dentry == old_root->dentry
-@@ -109,7 +112,8 @@ void exit_fs(struct task_struct *tsk)
+@@ -65,6 +67,17 @@ static inline int replace_path(struct path *p, const struct path *old, const str
+       return 1;
+ }
++static inline int replace_root_path(struct task_struct *task, struct path *p, const struct path *old, struct path *new)
++{
++      if (likely(p->dentry != old->dentry || p->mnt != old->mnt))
++              return 0;
++      *p = *new;
++
++      gr_set_chroot_entries(task, new);
++
++      return 1;
++}
++
+ void chroot_fs_refs(struct path *old_root, struct path *new_root)
+ {
+       struct task_struct *g, *p;
+@@ -79,7 +92,7 @@ void chroot_fs_refs(struct path *old_root, struct path *new_root)
+                       int hits = 0;
+                       spin_lock(&fs->lock);
+                       write_seqcount_begin(&fs->seq);
+-                      hits += replace_path(&fs->root, old_root, new_root);
++                      hits += replace_root_path(p, &fs->root, old_root, new_root);
+                       hits += replace_path(&fs->pwd, old_root, new_root);
+                       write_seqcount_end(&fs->seq);
+                       while (hits--) {
+@@ -111,7 +124,8 @@ void exit_fs(struct task_struct *tsk)
+               task_lock(tsk);
                spin_lock(&fs->lock);
-               write_seqcount_begin(&fs->seq);
                tsk->fs = NULL;
 -              kill = !--fs->users;
 +              gr_clear_chroot_entries(tsk);
 +              kill = !atomic_dec_return(&fs->users);
-               write_seqcount_end(&fs->seq);
                spin_unlock(&fs->lock);
                task_unlock(tsk);
-@@ -123,7 +127,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
+               if (kill)
+@@ -124,7 +138,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
        struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL);
        /* We don't need to lock fs - think why ;-) */
        if (fs) {
@@ -44603,7 +44935,7 @@ index 78b519c..212c0d0 100644
                fs->in_exec = 0;
                spin_lock_init(&fs->lock);
                seqcount_init(&fs->seq);
-@@ -132,6 +136,9 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
+@@ -133,6 +147,9 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
                spin_lock(&old->lock);
                fs->root = old->root;
                path_get_longterm(&fs->root);
@@ -44613,7 +44945,7 @@ index 78b519c..212c0d0 100644
                fs->pwd = old->pwd;
                path_get_longterm(&fs->pwd);
                spin_unlock(&old->lock);
-@@ -150,8 +157,9 @@ int unshare_fs_struct(void)
+@@ -151,8 +168,9 @@ int unshare_fs_struct(void)
  
        task_lock(current);
        spin_lock(&fs->lock);
@@ -44624,7 +44956,14 @@ index 78b519c..212c0d0 100644
        spin_unlock(&fs->lock);
        task_unlock(current);
  
-@@ -170,7 +178,7 @@ EXPORT_SYMBOL(current_umask);
+@@ -165,13 +183,13 @@ EXPORT_SYMBOL_GPL(unshare_fs_struct);
+ int current_umask(void)
+ {
+-      return current->fs->umask;
++      return current->fs->umask | gr_acl_umask();
+ }
+ EXPORT_SYMBOL(current_umask);
  
  /* to be mentioned only in INIT_TASK */
  struct fs_struct init_fs = {
@@ -44633,7 +44972,7 @@ index 78b519c..212c0d0 100644
        .lock           = __SPIN_LOCK_UNLOCKED(init_fs.lock),
        .seq            = SEQCNT_ZERO,
        .umask          = 0022,
-@@ -186,12 +194,13 @@ void daemonize_fs_struct(void)
+@@ -187,12 +205,13 @@ void daemonize_fs_struct(void)
                task_lock(current);
  
                spin_lock(&init_fs.lock);
@@ -45955,10 +46294,10 @@ index 4765190..2a067f2 100644
        seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n",
                   atomic_read(&fscache_n_cop_alloc_object),
 diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
-index b6cca47..ec782c3 100644
+index 3426521..3b75162 100644
 --- a/fs/fuse/cuse.c
 +++ b/fs/fuse/cuse.c
-@@ -586,10 +586,12 @@ static int __init cuse_init(void)
+@@ -587,10 +587,12 @@ static int __init cuse_init(void)
                INIT_LIST_HEAD(&cuse_conntbl[i]);
  
        /* inherit and extend fuse_dev_operations */
@@ -45976,7 +46315,7 @@ index b6cca47..ec782c3 100644
        cuse_class = class_create(THIS_MODULE, "cuse");
        if (IS_ERR(cuse_class))
 diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
-index 5cb8614..6865b11 100644
+index 7df2b5e..5804aa7 100644
 --- a/fs/fuse/dev.c
 +++ b/fs/fuse/dev.c
 @@ -1242,7 +1242,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
@@ -45989,10 +46328,10 @@ index 5cb8614..6865b11 100644
                if (!ret)
                        ret = -EPIPE;
 diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
-index 9f63e49..d8a64c0 100644
+index bc43832..0cfe5a6 100644
 --- a/fs/fuse/dir.c
 +++ b/fs/fuse/dir.c
-@@ -1147,7 +1147,7 @@ static char *read_link(struct dentry *dentry)
+@@ -1181,7 +1181,7 @@ static char *read_link(struct dentry *dentry)
        return link;
  }
  
@@ -46002,10 +46341,10 @@ index 9f63e49..d8a64c0 100644
        if (!IS_ERR(link))
                free_page((unsigned long) link);
 diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
-index 900cf98..3896726 100644
+index a9ba244..d9df391 100644
 --- a/fs/gfs2/inode.c
 +++ b/fs/gfs2/inode.c
-@@ -1517,7 +1517,7 @@ out:
+@@ -1496,7 +1496,7 @@ out:
  
  static void gfs2_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
  {
@@ -46014,156 +46353,11 @@ index 900cf98..3896726 100644
        if (!IS_ERR(s))
                kfree(s);
  }
-diff --git a/fs/hfs/btree.c b/fs/hfs/btree.c
-index 3ebc437..eb23952 100644
---- a/fs/hfs/btree.c
-+++ b/fs/hfs/btree.c
-@@ -46,11 +46,27 @@ struct hfs_btree *hfs_btree_open(struct super_block *sb, u32 id, btree_keycmp ke
-       case HFS_EXT_CNID:
-               hfs_inode_read_fork(tree->inode, mdb->drXTExtRec, mdb->drXTFlSize,
-                                   mdb->drXTFlSize, be32_to_cpu(mdb->drXTClpSiz));
-+
-+              if (HFS_I(tree->inode)->alloc_blocks >
-+                                      HFS_I(tree->inode)->first_blocks) {
-+                      printk(KERN_ERR "hfs: invalid btree extent records\n");
-+                      unlock_new_inode(tree->inode);
-+                      goto free_inode;
-+              }
-+
-               tree->inode->i_mapping->a_ops = &hfs_btree_aops;
-               break;
-       case HFS_CAT_CNID:
-               hfs_inode_read_fork(tree->inode, mdb->drCTExtRec, mdb->drCTFlSize,
-                                   mdb->drCTFlSize, be32_to_cpu(mdb->drCTClpSiz));
-+
-+              if (!HFS_I(tree->inode)->first_blocks) {
-+                      printk(KERN_ERR "hfs: invalid btree extent records "
-+                                                              "(0 size).\n");
-+                      unlock_new_inode(tree->inode);
-+                      goto free_inode;
-+              }
-+
-               tree->inode->i_mapping->a_ops = &hfs_btree_aops;
-               break;
-       default:
-@@ -59,11 +75,6 @@ struct hfs_btree *hfs_btree_open(struct super_block *sb, u32 id, btree_keycmp ke
-       }
-       unlock_new_inode(tree->inode);
--      if (!HFS_I(tree->inode)->first_blocks) {
--              printk(KERN_ERR "hfs: invalid btree extent records (0 size).\n");
--              goto free_inode;
--      }
--
-       mapping = tree->inode->i_mapping;
-       page = read_mapping_page(mapping, 0, NULL);
-       if (IS_ERR(page))
-diff --git a/fs/hfsplus/catalog.c b/fs/hfsplus/catalog.c
-index 4dfbfec..947c9c2 100644
---- a/fs/hfsplus/catalog.c
-+++ b/fs/hfsplus/catalog.c
-@@ -179,6 +179,8 @@ int hfsplus_find_cat(struct super_block *sb, u32 cnid,
-       int err;
-       u16 type;
-+      pax_track_stack();
-+
-       hfsplus_cat_build_key(sb, fd->search_key, cnid, NULL);
-       err = hfs_brec_read(fd, &tmp, sizeof(hfsplus_cat_entry));
-       if (err)
-@@ -210,6 +212,8 @@ int hfsplus_create_cat(u32 cnid, struct inode *dir,
-       int entry_size;
-       int err;
-+      pax_track_stack();
-+
-       dprint(DBG_CAT_MOD, "create_cat: %s,%u(%d)\n",
-               str->name, cnid, inode->i_nlink);
-       err = hfs_find_init(HFSPLUS_SB(sb)->cat_tree, &fd);
-@@ -353,6 +357,8 @@ int hfsplus_rename_cat(u32 cnid,
-       int entry_size, type;
-       int err;
-+      pax_track_stack();
-+
-       dprint(DBG_CAT_MOD, "rename_cat: %u - %lu,%s - %lu,%s\n",
-               cnid, src_dir->i_ino, src_name->name,
-               dst_dir->i_ino, dst_name->name);
-diff --git a/fs/hfsplus/dir.c b/fs/hfsplus/dir.c
-index 25b2443..09a3341 100644
---- a/fs/hfsplus/dir.c
-+++ b/fs/hfsplus/dir.c
-@@ -131,6 +131,8 @@ static int hfsplus_readdir(struct file *filp, void *dirent, filldir_t filldir)
-       struct hfsplus_readdir_data *rd;
-       u16 type;
-+      pax_track_stack();
-+
-       if (filp->f_pos >= inode->i_size)
-               return 0;
-diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c
-index 4cc1e3a..ad0f70b 100644
---- a/fs/hfsplus/inode.c
-+++ b/fs/hfsplus/inode.c
-@@ -501,6 +501,8 @@ int hfsplus_cat_read_inode(struct inode *inode, struct hfs_find_data *fd)
-       int res = 0;
-       u16 type;
-+      pax_track_stack();
-+
-       type = hfs_bnode_read_u16(fd->bnode, fd->entryoffset);
-       HFSPLUS_I(inode)->linkid = 0;
-@@ -564,6 +566,8 @@ int hfsplus_cat_write_inode(struct inode *inode)
-       struct hfs_find_data fd;
-       hfsplus_cat_entry entry;
-+      pax_track_stack();
-+
-       if (HFSPLUS_IS_RSRC(inode))
-               main_inode = HFSPLUS_I(inode)->rsrc_inode;
-diff --git a/fs/hfsplus/ioctl.c b/fs/hfsplus/ioctl.c
-index fbaa669..c548cd0 100644
---- a/fs/hfsplus/ioctl.c
-+++ b/fs/hfsplus/ioctl.c
-@@ -122,6 +122,8 @@ int hfsplus_setxattr(struct dentry *dentry, const char *name,
-       struct hfsplus_cat_file *file;
-       int res;
-+      pax_track_stack();
-+
-       if (!S_ISREG(inode->i_mode) || HFSPLUS_IS_RSRC(inode))
-               return -EOPNOTSUPP;
-@@ -166,6 +168,8 @@ ssize_t hfsplus_getxattr(struct dentry *dentry, const char *name,
-       struct hfsplus_cat_file *file;
-       ssize_t res = 0;
-+      pax_track_stack();
-+
-       if (!S_ISREG(inode->i_mode) || HFSPLUS_IS_RSRC(inode))
-               return -EOPNOTSUPP;
-diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c
-index d24a9b6..dd9b3dd 100644
---- a/fs/hfsplus/super.c
-+++ b/fs/hfsplus/super.c
-@@ -347,6 +347,8 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent)
-       u64 last_fs_block, last_fs_page;
-       int err;
-+      pax_track_stack();
-+
-       err = -EINVAL;
-       sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
-       if (!sbi)
 diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
-index ec88953..cb5e98e 100644
+index 001ef01..f7d5f07 100644
 --- a/fs/hugetlbfs/inode.c
 +++ b/fs/hugetlbfs/inode.c
-@@ -915,7 +915,7 @@ static struct file_system_type hugetlbfs_fs_type = {
+@@ -920,7 +920,7 @@ static struct file_system_type hugetlbfs_fs_type = {
        .kill_sb        = kill_litter_super,
  };
  
@@ -46173,10 +46367,10 @@ index ec88953..cb5e98e 100644
  static int can_do_hugetlb_shm(void)
  {
 diff --git a/fs/inode.c b/fs/inode.c
-index ec79246..054c36a 100644
+index 9f4f5fe..6214688 100644
 --- a/fs/inode.c
 +++ b/fs/inode.c
-@@ -787,8 +787,8 @@ unsigned int get_next_ino(void)
+@@ -860,8 +860,8 @@ unsigned int get_next_ino(void)
  
  #ifdef CONFIG_SMP
        if (unlikely((res & (LAST_INO_BATCH-1)) == 0)) {
@@ -46187,59 +46381,11 @@ index ec79246..054c36a 100644
  
                res = next - LAST_INO_BATCH;
        }
-diff --git a/fs/jbd/checkpoint.c b/fs/jbd/checkpoint.c
-index f94fc48..3bb8d30 100644
---- a/fs/jbd/checkpoint.c
-+++ b/fs/jbd/checkpoint.c
-@@ -358,6 +358,8 @@ int log_do_checkpoint(journal_t *journal)
-       tid_t this_tid;
-       int result;
-+      pax_track_stack();
-+
-       jbd_debug(1, "Start checkpoint\n");
-       /*
-diff --git a/fs/jffs2/compr_rtime.c b/fs/jffs2/compr_rtime.c
-index 16a5047..88ff6ca 100644
---- a/fs/jffs2/compr_rtime.c
-+++ b/fs/jffs2/compr_rtime.c
-@@ -37,6 +37,8 @@ static int jffs2_rtime_compress(unsigned char *data_in,
-       int outpos = 0;
-       int pos=0;
-+      pax_track_stack();
-+
-       memset(positions,0,sizeof(positions));
-       while (pos < (*sourcelen) && outpos <= (*dstlen)-2) {
-@@ -78,6 +80,8 @@ static int jffs2_rtime_decompress(unsigned char *data_in,
-       int outpos = 0;
-       int pos=0;
-+      pax_track_stack();
-+
-       memset(positions,0,sizeof(positions));
-       while (outpos<destlen) {
-diff --git a/fs/jffs2/compr_rubin.c b/fs/jffs2/compr_rubin.c
-index 9e7cec8..4713089 100644
---- a/fs/jffs2/compr_rubin.c
-+++ b/fs/jffs2/compr_rubin.c
-@@ -314,6 +314,8 @@ static int jffs2_dynrubin_compress(unsigned char *data_in,
-       int ret;
-       uint32_t mysrclen, mydstlen;
-+      pax_track_stack();
-+
-       mysrclen = *sourcelen;
-       mydstlen = *dstlen - 8;
 diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c
-index e513f19..2ab1351 100644
+index 4a6cf28..d3a29d3 100644
 --- a/fs/jffs2/erase.c
 +++ b/fs/jffs2/erase.c
-@@ -439,7 +439,8 @@ static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseb
+@@ -452,7 +452,8 @@ static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseb
                struct jffs2_unknown_node marker = {
                        .magic =        cpu_to_je16(JFFS2_MAGIC_BITMASK),
                        .nodetype =     cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
@@ -46250,10 +46396,10 @@ index e513f19..2ab1351 100644
  
                jffs2_prealloc_raw_node_refs(c, jeb, 1);
 diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c
-index 4515bea..178f2d6 100644
+index 74d9be1..d5dd140 100644
 --- a/fs/jffs2/wbuf.c
 +++ b/fs/jffs2/wbuf.c
-@@ -1012,7 +1012,8 @@ static const struct jffs2_unknown_node oob_cleanmarker =
+@@ -1022,7 +1022,8 @@ static const struct jffs2_unknown_node oob_cleanmarker =
  {
        .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK),
        .nodetype = constant_cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
@@ -46263,24 +46409,11 @@ index 4515bea..178f2d6 100644
  };
  
  /*
-diff --git a/fs/jffs2/xattr.c b/fs/jffs2/xattr.c
-index 3e93cdd..c8a80e1 100644
---- a/fs/jffs2/xattr.c
-+++ b/fs/jffs2/xattr.c
-@@ -773,6 +773,8 @@ void jffs2_build_xattr_subsystem(struct jffs2_sb_info *c)
-       BUG_ON(!(c->flags & JFFS2_SB_FLAG_BUILDING));
-+      pax_track_stack();
-+
-       /* Phase.1 : Merge same xref */
-       for (i=0; i < XREF_TMPHASH_SIZE; i++)
-               xref_tmphash[i] = NULL;
 diff --git a/fs/jfs/super.c b/fs/jfs/super.c
-index 06c8a67..589dbbd 100644
+index 4a82950..bcaa0cb 100644
 --- a/fs/jfs/super.c
 +++ b/fs/jfs/super.c
-@@ -803,7 +803,7 @@ static int __init init_jfs_fs(void)
+@@ -801,7 +801,7 @@ static int __init init_jfs_fs(void)
  
        jfs_inode_cachep =
            kmem_cache_create("jfs_ip", sizeof(struct jfs_inode_info), 0,
@@ -46290,7 +46423,7 @@ index 06c8a67..589dbbd 100644
        if (jfs_inode_cachep == NULL)
                return -ENOMEM;
 diff --git a/fs/libfs.c b/fs/libfs.c
-index c18e9a1..0b04e2c 100644
+index 18d08f5..fe3dc64 100644
 --- a/fs/libfs.c
 +++ b/fs/libfs.c
 @@ -165,6 +165,9 @@ int dcache_readdir(struct file * filp, void * dirent, filldir_t filldir)
@@ -46318,7 +46451,7 @@ index c18e9a1..0b04e2c 100644
                                            next->d_inode->i_ino, 
                                            dt_type(next->d_inode)) < 0)
 diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c
-index 8392cb8..ae8ed40 100644
+index 8392cb8..80d6193 100644
 --- a/fs/lockd/clntproc.c
 +++ b/fs/lockd/clntproc.c
 @@ -36,11 +36,11 @@ static const struct rpc_call_ops nlmclnt_cancel_ops;
@@ -46335,20 +46468,38 @@ index 8392cb8..ae8ed40 100644
  
        memcpy(c->data, &cookie, 4);
        c->len=4;
-@@ -621,6 +621,8 @@ nlmclnt_reclaim(struct nlm_host *host, struct file_lock *fl)
-       struct nlm_rqst reqst, *req;
-       int             status;
-+      pax_track_stack();
-+
-       req = &reqst;
-       memset(req, 0, sizeof(*req));
-       locks_init_lock(&req->a_args.lock.fl);
 diff --git a/fs/locks.c b/fs/locks.c
-index 703f545..150a552 100644
+index 6a64f15..c3dacf2 100644
 --- a/fs/locks.c
 +++ b/fs/locks.c
-@@ -2022,16 +2022,16 @@ void locks_remove_flock(struct file *filp)
+@@ -308,7 +308,7 @@ static int flock_make_lock(struct file *filp, struct file_lock **lock,
+       return 0;
+ }
+-static int assign_type(struct file_lock *fl, int type)
++static int assign_type(struct file_lock *fl, long type)
+ {
+       switch (type) {
+       case F_RDLCK:
+@@ -445,7 +445,7 @@ static const struct lock_manager_operations lease_manager_ops = {
+ /*
+  * Initialize a lease, use the default lock manager operations
+  */
+-static int lease_init(struct file *filp, int type, struct file_lock *fl)
++static int lease_init(struct file *filp, long type, struct file_lock *fl)
+  {
+       if (assign_type(fl, type) != 0)
+               return -EINVAL;
+@@ -463,7 +463,7 @@ static int lease_init(struct file *filp, int type, struct file_lock *fl)
+ }
+ /* Allocate a file_lock initialised to this type of lease */
+-static struct file_lock *lease_alloc(struct file *filp, int type)
++static struct file_lock *lease_alloc(struct file *filp, long type)
+ {
+       struct file_lock *fl = locks_alloc_lock();
+       int error = -ENOMEM;
+@@ -2075,16 +2075,16 @@ void locks_remove_flock(struct file *filp)
                return;
  
        if (filp->f_op && filp->f_op->flock) {
@@ -46369,144 +46520,11 @@ index 703f545..150a552 100644
        }
  
        lock_flocks();
-diff --git a/fs/logfs/super.c b/fs/logfs/super.c
-index ce03a18..ac8c14f 100644
---- a/fs/logfs/super.c
-+++ b/fs/logfs/super.c
-@@ -266,6 +266,8 @@ static int logfs_recover_sb(struct super_block *sb)
-       struct logfs_disk_super _ds1, *ds1 = &_ds1;
-       int err, valid0, valid1;
-+      pax_track_stack();
-+
-       /* read first superblock */
-       err = wbuf_read(sb, super->s_sb_ofs[0], sizeof(*ds0), ds0);
-       if (err)
-diff --git a/fs/minix/bitmap.c b/fs/minix/bitmap.c
-index 3f32bcb..7c82c29 100644
---- a/fs/minix/bitmap.c
-+++ b/fs/minix/bitmap.c
-@@ -20,10 +20,11 @@ static const int nibblemap[] = { 4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0 };
- static DEFINE_SPINLOCK(bitmap_lock);
--static unsigned long count_free(struct buffer_head *map[], unsigned numblocks, __u32 numbits)
-+static unsigned long count_free(struct buffer_head *map[], unsigned blocksize, __u32 numbits)
- {
-       unsigned i, j, sum = 0;
-       struct buffer_head *bh;
-+      unsigned numblocks = minix_blocks_needed(numbits, blocksize);
-   
-       for (i=0; i<numblocks-1; i++) {
-               if (!(bh=map[i])) 
-@@ -105,10 +106,12 @@ int minix_new_block(struct inode * inode)
-       return 0;
- }
--unsigned long minix_count_free_blocks(struct minix_sb_info *sbi)
-+unsigned long minix_count_free_blocks(struct super_block *sb)
- {
--      return (count_free(sbi->s_zmap, sbi->s_zmap_blocks,
--              sbi->s_nzones - sbi->s_firstdatazone + 1)
-+      struct minix_sb_info *sbi = minix_sb(sb);
-+      u32 bits = sbi->s_nzones - (sbi->s_firstdatazone + 1);
-+
-+      return (count_free(sbi->s_zmap, sb->s_blocksize, bits)
-               << sbi->s_log_zone_size);
- }
-@@ -273,7 +276,10 @@ struct inode *minix_new_inode(const struct inode *dir, int mode, int *error)
-       return inode;
- }
--unsigned long minix_count_free_inodes(struct minix_sb_info *sbi)
-+unsigned long minix_count_free_inodes(struct super_block *sb)
- {
--      return count_free(sbi->s_imap, sbi->s_imap_blocks, sbi->s_ninodes + 1);
-+      struct minix_sb_info *sbi = minix_sb(sb);
-+      u32 bits = sbi->s_ninodes + 1;
-+
-+      return count_free(sbi->s_imap, sb->s_blocksize, bits);
- }
-diff --git a/fs/minix/inode.c b/fs/minix/inode.c
-index e7d23e2..1ed1351 100644
---- a/fs/minix/inode.c
-+++ b/fs/minix/inode.c
-@@ -279,6 +279,27 @@ static int minix_fill_super(struct super_block *s, void *data, int silent)
-       else if (sbi->s_mount_state & MINIX_ERROR_FS)
-               printk("MINIX-fs: mounting file system with errors, "
-                       "running fsck is recommended\n");
-+
-+      /* Apparently minix can create filesystems that allocate more blocks for
-+       * the bitmaps than needed.  We simply ignore that, but verify it didn't
-+       * create one with not enough blocks and bail out if so.
-+       */
-+      block = minix_blocks_needed(sbi->s_ninodes, s->s_blocksize);
-+      if (sbi->s_imap_blocks < block) {
-+              printk("MINIX-fs: file system does not have enough "
-+                              "imap blocks allocated.  Refusing to mount\n");
-+              goto out_iput;
-+      }
-+
-+      block = minix_blocks_needed(
-+                      (sbi->s_nzones - (sbi->s_firstdatazone + 1)),
-+                      s->s_blocksize);
-+      if (sbi->s_zmap_blocks < block) {
-+              printk("MINIX-fs: file system does not have enough "
-+                              "zmap blocks allocated.  Refusing to mount.\n");
-+              goto out_iput;
-+      }
-+
-       return 0;
- out_iput:
-@@ -339,10 +360,10 @@ static int minix_statfs(struct dentry *dentry, struct kstatfs *buf)
-       buf->f_type = sb->s_magic;
-       buf->f_bsize = sb->s_blocksize;
-       buf->f_blocks = (sbi->s_nzones - sbi->s_firstdatazone) << sbi->s_log_zone_size;
--      buf->f_bfree = minix_count_free_blocks(sbi);
-+      buf->f_bfree = minix_count_free_blocks(sb);
-       buf->f_bavail = buf->f_bfree;
-       buf->f_files = sbi->s_ninodes;
--      buf->f_ffree = minix_count_free_inodes(sbi);
-+      buf->f_ffree = minix_count_free_inodes(sb);
-       buf->f_namelen = sbi->s_namelen;
-       buf->f_fsid.val[0] = (u32)id;
-       buf->f_fsid.val[1] = (u32)(id >> 32);
-diff --git a/fs/minix/minix.h b/fs/minix/minix.h
-index 341e212..6415fe0 100644
---- a/fs/minix/minix.h
-+++ b/fs/minix/minix.h
-@@ -48,10 +48,10 @@ extern struct minix_inode * minix_V1_raw_inode(struct super_block *, ino_t, stru
- extern struct minix2_inode * minix_V2_raw_inode(struct super_block *, ino_t, struct buffer_head **);
- extern struct inode * minix_new_inode(const struct inode *, int, int *);
- extern void minix_free_inode(struct inode * inode);
--extern unsigned long minix_count_free_inodes(struct minix_sb_info *sbi);
-+extern unsigned long minix_count_free_inodes(struct super_block *sb);
- extern int minix_new_block(struct inode * inode);
- extern void minix_free_block(struct inode *inode, unsigned long block);
--extern unsigned long minix_count_free_blocks(struct minix_sb_info *sbi);
-+extern unsigned long minix_count_free_blocks(struct super_block *sb);
- extern int minix_getattr(struct vfsmount *, struct dentry *, struct kstat *);
- extern int minix_prepare_chunk(struct page *page, loff_t pos, unsigned len);
-@@ -88,6 +88,11 @@ static inline struct minix_inode_info *minix_i(struct inode *inode)
-       return list_entry(inode, struct minix_inode_info, vfs_inode);
- }
-+static inline unsigned minix_blocks_needed(unsigned bits, unsigned blocksize)
-+{
-+      return DIV_ROUND_UP(bits, blocksize * 8);
-+}
-+
- #if defined(CONFIG_MINIX_FS_NATIVE_ENDIAN) && \
-       defined(CONFIG_MINIX_FS_BIG_ENDIAN_16BIT_INDEXED)
 diff --git a/fs/namei.c b/fs/namei.c
-index 3d15072..c1ddf9c 100644
+index c427919..232326c 100644
 --- a/fs/namei.c
 +++ b/fs/namei.c
-@@ -281,16 +281,32 @@ int generic_permission(struct inode *inode, int mask)
+@@ -278,16 +278,32 @@ int generic_permission(struct inode *inode, int mask)
        if (ret != -EACCES)
                return ret;
  
@@ -46542,7 +46560,7 @@ index 3d15072..c1ddf9c 100644
         * Read/write DACs are always overridable.
         * Executable DACs are overridable when there is
         * at least one exec bit set.
-@@ -299,14 +315,6 @@ int generic_permission(struct inode *inode, int mask)
+@@ -296,14 +312,6 @@ int generic_permission(struct inode *inode, int mask)
                if (ns_capable(inode_userns(inode), CAP_DAC_OVERRIDE))
                        return 0;
  
@@ -46557,7 +46575,7 @@ index 3d15072..c1ddf9c 100644
        return -EACCES;
  }
  
-@@ -653,11 +661,19 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
+@@ -652,11 +660,19 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
                return error;
        }
  
@@ -46578,7 +46596,27 @@ index 3d15072..c1ddf9c 100644
                error = 0;
                if (s)
                        error = __vfs_follow_link(nd, s);
-@@ -1622,6 +1638,21 @@ static int path_lookupat(int dfd, const char *name,
+@@ -1355,6 +1371,9 @@ static inline int nested_symlink(struct path *path, struct nameidata *nd)
+               if (!res)
+                       res = walk_component(nd, path, &nd->last,
+                                            nd->last_type, LOOKUP_FOLLOW);
++              if (res >= 0 && gr_handle_symlink_owner(&link, nd->inode)) {
++                      res = -EACCES;
++              }
+               put_link(nd, &link, cookie);
+       } while (res > 0);
+@@ -1746,6 +1765,9 @@ static int path_lookupat(int dfd, const char *name,
+                       err = follow_link(&link, nd, &cookie);
+                       if (!err)
+                               err = lookup_last(nd, &path);
++                      if (!err && gr_handle_symlink_owner(&link, nd->inode)) {
++                              err = -EACCES;
++                      }
+                       put_link(nd, &link, cookie);
+               }
+       }
+@@ -1753,6 +1775,21 @@ static int path_lookupat(int dfd, const char *name,
        if (!err)
                err = complete_walk(nd);
  
@@ -46600,7 +46638,7 @@ index 3d15072..c1ddf9c 100644
        if (!err && nd->flags & LOOKUP_DIRECTORY) {
                if (!nd->inode->i_op->lookup) {
                        path_put(&nd->path);
-@@ -1649,6 +1680,15 @@ static int do_path_lookup(int dfd, const char *name,
+@@ -1780,6 +1817,15 @@ static int do_path_lookup(int dfd, const char *name,
                retval = path_lookupat(dfd, name, flags | LOOKUP_REVAL, nd);
  
        if (likely(!retval)) {
@@ -46616,36 +46654,21 @@ index 3d15072..c1ddf9c 100644
                if (unlikely(!audit_dummy_context())) {
                        if (nd->path.dentry && nd->inode)
                                audit_inode(name, nd->path.dentry);
-@@ -2049,7 +2089,27 @@ static int may_open(struct path *path, int acc_mode, int flag)
-       /*
-        * Ensure there are no outstanding leases on the file.
-        */
--      return break_lease(inode, flag);
-+      error = break_lease(inode, flag);
-+
-+      if (error)
-+              return error;
-+
-+      if (gr_handle_rofs_blockwrite(dentry, path->mnt, acc_mode)) {
-+              error = -EPERM;
-+              goto exit;
-+      }
-+
-+      if (gr_handle_rawio(inode)) {
-+              error = -EPERM;
-+              goto exit;
-+      }
+@@ -2126,6 +2172,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
+       if (flag & O_NOATIME && !inode_owner_or_capable(inode))
+               return -EPERM;
++      if (gr_handle_rofs_blockwrite(dentry, path->mnt, acc_mode))
++              return -EPERM;
++      if (gr_handle_rawio(inode))
++              return -EPERM;
++      if (!gr_acl_handle_open(dentry, path->mnt, acc_mode))
++              return -EACCES;
 +
-+      if (!gr_acl_handle_open(dentry, path->mnt, acc_mode)) {
-+              error = -EACCES;
-+              goto exit;
-+      }
-+exit:
-+      return error;
+       return 0;
  }
  
- static int handle_truncate(struct file *filp)
-@@ -2110,6 +2170,16 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
+@@ -2187,6 +2240,16 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
                error = complete_walk(nd);
                if (error)
                        return ERR_PTR(error);
@@ -46662,7 +46685,7 @@ index 3d15072..c1ddf9c 100644
                audit_inode(pathname, nd->path.dentry);
                if (open_flag & O_CREAT) {
                        error = -EISDIR;
-@@ -2120,6 +2190,16 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
+@@ -2197,6 +2260,16 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
                error = complete_walk(nd);
                if (error)
                        return ERR_PTR(error);
@@ -46679,10 +46702,10 @@ index 3d15072..c1ddf9c 100644
                audit_inode(pathname, dir);
                goto ok;
        }
-@@ -2141,6 +2221,16 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
+@@ -2218,6 +2291,16 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
                error = complete_walk(nd);
                if (error)
-                       return ERR_PTR(-ECHILD);
+                       return ERR_PTR(error);
 +#ifdef CONFIG_GRKERNSEC
 +              if (nd->flags & LOOKUP_RCU) {
 +                      error = -ECHILD;
@@ -46696,10 +46719,10 @@ index 3d15072..c1ddf9c 100644
  
                error = -ENOTDIR;
                if (nd->flags & LOOKUP_DIRECTORY) {
-@@ -2181,6 +2271,12 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
+@@ -2258,6 +2341,12 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
        /* Negative dentry, just create the file */
        if (!dentry->d_inode) {
-               int mode = op->mode;
+               umode_t mode = op->mode;
 +
 +              if (!gr_acl_handle_creat(path->dentry, nd->path.dentry, path->mnt, open_flag, acc_mode, mode)) {
 +                      error = -EACCES;
@@ -46709,7 +46732,7 @@ index 3d15072..c1ddf9c 100644
                if (!IS_POSIXACL(dir->d_inode))
                        mode &= ~current_umask();
                /*
-@@ -2204,6 +2300,8 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
+@@ -2281,6 +2370,8 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
                error = vfs_create(dir->d_inode, dentry, mode, nd);
                if (error)
                        goto exit_mutex_unlock;
@@ -46718,7 +46741,7 @@ index 3d15072..c1ddf9c 100644
                mutex_unlock(&dir->d_inode->i_mutex);
                dput(nd->path.dentry);
                nd->path.dentry = dentry;
-@@ -2213,6 +2311,19 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
+@@ -2290,6 +2381,19 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
        /*
         * It already exists.
         */
@@ -46738,7 +46761,23 @@ index 3d15072..c1ddf9c 100644
        mutex_unlock(&dir->d_inode->i_mutex);
        audit_inode(pathname, path->dentry);
  
-@@ -2425,6 +2536,11 @@ struct dentry *kern_path_create(int dfd, const char *pathname, struct path *path
+@@ -2407,8 +2511,14 @@ static struct file *path_openat(int dfd, const char *pathname,
+               error = follow_link(&link, nd, &cookie);
+               if (unlikely(error))
+                       filp = ERR_PTR(error);
+-              else
++              else {
+                       filp = do_last(nd, &path, op, pathname);
++                      if (!IS_ERR(filp) && gr_handle_symlink_owner(&link, nd->inode)) {
++                              if (filp)
++                                      fput(filp);
++                              filp = ERR_PTR(-EACCES);
++                      }
++              }
+               put_link(nd, &link, cookie);
+       }
+ out:
+@@ -2502,6 +2612,11 @@ struct dentry *kern_path_create(int dfd, const char *pathname, struct path *path
        *path = nd.path;
        return dentry;
  eexist:
@@ -46750,7 +46789,7 @@ index 3d15072..c1ddf9c 100644
        dput(dentry);
        dentry = ERR_PTR(-EEXIST);
  fail:
-@@ -2447,6 +2563,20 @@ struct dentry *user_path_create(int dfd, const char __user *pathname, struct pat
+@@ -2524,6 +2639,20 @@ struct dentry *user_path_create(int dfd, const char __user *pathname, struct pat
  }
  EXPORT_SYMBOL(user_path_create);
  
@@ -46768,10 +46807,10 @@ index 3d15072..c1ddf9c 100644
 +      return res;
 +}
 +
- int vfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev)
+ int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
  {
        int error = may_create(dir, dentry);
-@@ -2514,6 +2644,17 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, int, mode,
+@@ -2591,6 +2720,17 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, umode_t, mode,
        error = mnt_want_write(path.mnt);
        if (error)
                goto out_dput;
@@ -46789,7 +46828,7 @@ index 3d15072..c1ddf9c 100644
        error = security_path_mknod(&path, dentry, mode, dev);
        if (error)
                goto out_drop_write;
-@@ -2531,6 +2672,9 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, int, mode,
+@@ -2608,6 +2748,9 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, umode_t, mode,
        }
  out_drop_write:
        mnt_drop_write(path.mnt);
@@ -46799,7 +46838,7 @@ index 3d15072..c1ddf9c 100644
  out_dput:
        dput(dentry);
        mutex_unlock(&path.dentry->d_inode->i_mutex);
-@@ -2580,12 +2724,21 @@ SYSCALL_DEFINE3(mkdirat, int, dfd, const char __user *, pathname, int, mode)
+@@ -2661,12 +2804,21 @@ SYSCALL_DEFINE3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode)
        error = mnt_want_write(path.mnt);
        if (error)
                goto out_dput;
@@ -46821,7 +46860,7 @@ index 3d15072..c1ddf9c 100644
  out_dput:
        dput(dentry);
        mutex_unlock(&path.dentry->d_inode->i_mutex);
-@@ -2665,6 +2818,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
+@@ -2746,6 +2898,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
        char * name;
        struct dentry *dentry;
        struct nameidata nd;
@@ -46830,7 +46869,7 @@ index 3d15072..c1ddf9c 100644
  
        error = user_path_parent(dfd, pathname, &nd, &name);
        if (error)
-@@ -2693,6 +2848,15 @@ static long do_rmdir(int dfd, const char __user *pathname)
+@@ -2774,6 +2928,15 @@ static long do_rmdir(int dfd, const char __user *pathname)
                error = -ENOENT;
                goto exit3;
        }
@@ -46846,7 +46885,7 @@ index 3d15072..c1ddf9c 100644
        error = mnt_want_write(nd.path.mnt);
        if (error)
                goto exit3;
-@@ -2700,6 +2864,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
+@@ -2781,6 +2944,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
        if (error)
                goto exit4;
        error = vfs_rmdir(nd.path.dentry->d_inode, dentry);
@@ -46855,7 +46894,7 @@ index 3d15072..c1ddf9c 100644
  exit4:
        mnt_drop_write(nd.path.mnt);
  exit3:
-@@ -2762,6 +2928,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
+@@ -2843,6 +3008,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
        struct dentry *dentry;
        struct nameidata nd;
        struct inode *inode = NULL;
@@ -46864,7 +46903,7 @@ index 3d15072..c1ddf9c 100644
  
        error = user_path_parent(dfd, pathname, &nd, &name);
        if (error)
-@@ -2784,6 +2952,16 @@ static long do_unlinkat(int dfd, const char __user *pathname)
+@@ -2865,6 +3032,16 @@ static long do_unlinkat(int dfd, const char __user *pathname)
                if (!inode)
                        goto slashes;
                ihold(inode);
@@ -46881,7 +46920,7 @@ index 3d15072..c1ddf9c 100644
                error = mnt_want_write(nd.path.mnt);
                if (error)
                        goto exit2;
-@@ -2791,6 +2969,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
+@@ -2872,6 +3049,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
                if (error)
                        goto exit3;
                error = vfs_unlink(nd.path.dentry->d_inode, dentry);
@@ -46890,7 +46929,7 @@ index 3d15072..c1ddf9c 100644
  exit3:
                mnt_drop_write(nd.path.mnt);
        exit2:
-@@ -2866,10 +3046,18 @@ SYSCALL_DEFINE3(symlinkat, const char __user *, oldname,
+@@ -2947,10 +3126,18 @@ SYSCALL_DEFINE3(symlinkat, const char __user *, oldname,
        error = mnt_want_write(path.mnt);
        if (error)
                goto out_dput;
@@ -46909,7 +46948,7 @@ index 3d15072..c1ddf9c 100644
  out_drop_write:
        mnt_drop_write(path.mnt);
  out_dput:
-@@ -2941,6 +3129,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
+@@ -3025,6 +3212,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
  {
        struct dentry *new_dentry;
        struct path old_path, new_path;
@@ -46917,7 +46956,7 @@ index 3d15072..c1ddf9c 100644
        int how = 0;
        int error;
  
-@@ -2964,7 +3153,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
+@@ -3048,7 +3236,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
        if (error)
                return error;
  
@@ -46926,7 +46965,7 @@ index 3d15072..c1ddf9c 100644
        error = PTR_ERR(new_dentry);
        if (IS_ERR(new_dentry))
                goto out;
-@@ -2975,13 +3164,30 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
+@@ -3059,13 +3247,30 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
        error = mnt_want_write(new_path.mnt);
        if (error)
                goto out_dput;
@@ -46957,16 +46996,7 @@ index 3d15072..c1ddf9c 100644
        dput(new_dentry);
        mutex_unlock(&new_path.dentry->d_inode->i_mutex);
        path_put(&new_path);
-@@ -3153,6 +3359,8 @@ SYSCALL_DEFINE4(renameat, int, olddfd, const char __user *, oldname,
-       char *to;
-       int error;
-+      pax_track_stack();
-+
-       error = user_path_parent(olddfd, oldname, &oldnd, &from);
-       if (error)
-               goto exit;
-@@ -3209,6 +3417,12 @@ SYSCALL_DEFINE4(renameat, int, olddfd, const char __user *, oldname,
+@@ -3299,6 +3504,12 @@ SYSCALL_DEFINE4(renameat, int, olddfd, const char __user *, oldname,
        if (new_dentry == trap)
                goto exit5;
  
@@ -46979,7 +47009,7 @@ index 3d15072..c1ddf9c 100644
        error = mnt_want_write(oldnd.path.mnt);
        if (error)
                goto exit5;
-@@ -3218,6 +3432,9 @@ SYSCALL_DEFINE4(renameat, int, olddfd, const char __user *, oldname,
+@@ -3308,6 +3519,9 @@ SYSCALL_DEFINE4(renameat, int, olddfd, const char __user *, oldname,
                goto exit6;
        error = vfs_rename(old_dir->d_inode, old_dentry,
                                   new_dir->d_inode, new_dentry);
@@ -46989,7 +47019,7 @@ index 3d15072..c1ddf9c 100644
  exit6:
        mnt_drop_write(oldnd.path.mnt);
  exit5:
-@@ -3243,6 +3460,8 @@ SYSCALL_DEFINE2(rename, const char __user *, oldname, const char __user *, newna
+@@ -3333,6 +3547,8 @@ SYSCALL_DEFINE2(rename, const char __user *, oldname, const char __user *, newna
  
  int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const char *link)
  {
@@ -46998,7 +47028,7 @@ index 3d15072..c1ddf9c 100644
        int len;
  
        len = PTR_ERR(link);
-@@ -3252,7 +3471,14 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const c
+@@ -3342,7 +3558,14 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const c
        len = strlen(link);
        if (len > (unsigned) buflen)
                len = buflen;
@@ -47015,10 +47045,10 @@ index 3d15072..c1ddf9c 100644
  out:
        return len;
 diff --git a/fs/namespace.c b/fs/namespace.c
-index e5e1c7d..019609e 100644
+index 4e46539..b28253c 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -1329,6 +1329,9 @@ static int do_umount(struct vfsmount *mnt, int flags)
+@@ -1156,6 +1156,9 @@ static int do_umount(struct mount *mnt, int flags)
                if (!(sb->s_flags & MS_RDONLY))
                        retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
                up_write(&sb->s_umount);
@@ -47028,7 +47058,7 @@ index e5e1c7d..019609e 100644
                return retval;
        }
  
-@@ -1348,6 +1351,9 @@ static int do_umount(struct vfsmount *mnt, int flags)
+@@ -1175,6 +1178,9 @@ static int do_umount(struct mount *mnt, int flags)
        br_write_unlock(vfsmount_lock);
        up_write(&namespace_sem);
        release_mounts(&umount_list);
@@ -47038,7 +47068,7 @@ index e5e1c7d..019609e 100644
        return retval;
  }
  
-@@ -2339,6 +2345,16 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
+@@ -2176,6 +2182,16 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
                   MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
                   MS_STRICTATIME);
  
@@ -47055,7 +47085,7 @@ index e5e1c7d..019609e 100644
        if (flags & MS_REMOUNT)
                retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags,
                                    data_page);
-@@ -2353,6 +2369,9 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
+@@ -2190,6 +2206,9 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
                                      dev_name, data_page);
  dput_out:
        path_put(&path);
@@ -47065,7 +47095,7 @@ index e5e1c7d..019609e 100644
        return retval;
  }
  
-@@ -2576,6 +2595,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
+@@ -2471,6 +2490,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
        if (error)
                goto out2;
  
@@ -47077,86 +47107,11 @@ index e5e1c7d..019609e 100644
        get_fs_root(current->fs, &root);
        error = lock_mount(&old);
        if (error)
-diff --git a/fs/ncpfs/dir.c b/fs/ncpfs/dir.c
-index 9c51f62..503b252 100644
---- a/fs/ncpfs/dir.c
-+++ b/fs/ncpfs/dir.c
-@@ -299,6 +299,8 @@ ncp_lookup_validate(struct dentry *dentry, struct nameidata *nd)
-       int res, val = 0, len;
-       __u8 __name[NCP_MAXPATHLEN + 1];
-+      pax_track_stack();
-+
-       if (dentry == dentry->d_sb->s_root)
-               return 1;
-@@ -844,6 +846,8 @@ static struct dentry *ncp_lookup(struct inode *dir, struct dentry *dentry, struc
-       int error, res, len;
-       __u8 __name[NCP_MAXPATHLEN + 1];
-+      pax_track_stack();
-+
-       error = -EIO;
-       if (!ncp_conn_valid(server))
-               goto finished;
-@@ -931,6 +935,8 @@ int ncp_create_new(struct inode *dir, struct dentry *dentry, int mode,
-       PPRINTK("ncp_create_new: creating %s/%s, mode=%x\n",
-               dentry->d_parent->d_name.name, dentry->d_name.name, mode);
-+      pax_track_stack();
-+
-       ncp_age_dentry(server, dentry);
-       len = sizeof(__name);
-       error = ncp_io2vol(server, __name, &len, dentry->d_name.name,
-@@ -992,6 +998,8 @@ static int ncp_mkdir(struct inode *dir, struct dentry *dentry, int mode)
-       int error, len;
-       __u8 __name[NCP_MAXPATHLEN + 1];
-+      pax_track_stack();
-+
-       DPRINTK("ncp_mkdir: making %s/%s\n",
-               dentry->d_parent->d_name.name, dentry->d_name.name);
-@@ -1140,6 +1148,8 @@ static int ncp_rename(struct inode *old_dir, struct dentry *old_dentry,
-       int old_len, new_len;
-       __u8 __old_name[NCP_MAXPATHLEN + 1], __new_name[NCP_MAXPATHLEN + 1];
-+      pax_track_stack();
-+
-       DPRINTK("ncp_rename: %s/%s to %s/%s\n",
-               old_dentry->d_parent->d_name.name, old_dentry->d_name.name,
-               new_dentry->d_parent->d_name.name, new_dentry->d_name.name);
-diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c
-index 202f370..9d4565e 100644
---- a/fs/ncpfs/inode.c
-+++ b/fs/ncpfs/inode.c
-@@ -461,6 +461,8 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent)
- #endif
-       struct ncp_entry_info finfo;
-+      pax_track_stack();
-+
-       memset(&data, 0, sizeof(data));
-       server = kzalloc(sizeof(struct ncp_server), GFP_KERNEL);
-       if (!server)
-diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c
-index 281ae95..dd895b9 100644
---- a/fs/nfs/blocklayout/blocklayout.c
-+++ b/fs/nfs/blocklayout/blocklayout.c
-@@ -90,7 +90,7 @@ static int is_writable(struct pnfs_block_extent *be, sector_t isect)
-  */
- struct parallel_io {
-       struct kref refcnt;
--      struct rpc_call_ops call_ops;
-+      rpc_call_ops_no_const call_ops;
-       void (*pnfs_callback) (void *data);
-       void *data;
- };
 diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
-index 679d2f5..ef1ffec 100644
+index e8bbfa5..864f936 100644
 --- a/fs/nfs/inode.c
 +++ b/fs/nfs/inode.c
-@@ -150,7 +150,7 @@ static void nfs_zap_caches_locked(struct inode *inode)
+@@ -152,7 +152,7 @@ static void nfs_zap_caches_locked(struct inode *inode)
        nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
        nfsi->attrtimeo_timestamp = jiffies;
  
@@ -47165,7 +47120,7 @@ index 679d2f5..ef1ffec 100644
        if (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode))
                nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL|NFS_INO_REVAL_PAGECACHE;
        else
-@@ -1002,16 +1002,16 @@ static int nfs_size_need_update(const struct inode *inode, const struct nfs_fatt
+@@ -1005,16 +1005,16 @@ static int nfs_size_need_update(const struct inode *inode, const struct nfs_fatt
        return nfs_size_to_loff_t(fattr->size) > i_size_read(inode);
  }
  
@@ -47185,37 +47140,11 @@ index 679d2f5..ef1ffec 100644
  }
  
  void nfs_fattr_init(struct nfs_fattr *fattr)
-diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
-index 6f8bcc7..8f823c5 100644
---- a/fs/nfsd/nfs4state.c
-+++ b/fs/nfsd/nfs4state.c
-@@ -3999,6 +3999,8 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
-       unsigned int strhashval;
-       int err;
-+      pax_track_stack();
-+
-       dprintk("NFSD: nfsd4_lock: start=%Ld length=%Ld\n",
-               (long long) lock->lk_offset,
-               (long long) lock->lk_length);
-diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
-index f810996..cec8977 100644
---- a/fs/nfsd/nfs4xdr.c
-+++ b/fs/nfsd/nfs4xdr.c
-@@ -1875,6 +1875,8 @@ nfsd4_encode_fattr(struct svc_fh *fhp, struct svc_export *exp,
-               .dentry = dentry,
-       };
-+      pax_track_stack();
-+
-       BUG_ON(bmval1 & NFSD_WRITEONLY_ATTRS_WORD1);
-       BUG_ON(bmval0 & ~nfsd_suppattrs0(minorversion));
-       BUG_ON(bmval1 & ~nfsd_suppattrs1(minorversion));
 diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
-index acf88ae..4fd6245 100644
+index 5686661..80a9a3a 100644
 --- a/fs/nfsd/vfs.c
 +++ b/fs/nfsd/vfs.c
-@@ -896,7 +896,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
+@@ -933,7 +933,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
        } else {
                oldfs = get_fs();
                set_fs(KERNEL_DS);
@@ -47224,7 +47153,7 @@ index acf88ae..4fd6245 100644
                set_fs(oldfs);
        }
  
-@@ -1000,7 +1000,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
+@@ -1037,7 +1037,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
  
        /* Write the data. */
        oldfs = get_fs(); set_fs(KERNEL_DS);
@@ -47233,20 +47162,20 @@ index acf88ae..4fd6245 100644
        set_fs(oldfs);
        if (host_err < 0)
                goto out_nfserr;
-@@ -1535,7 +1535,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp)
+@@ -1573,7 +1573,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp)
         */
  
        oldfs = get_fs(); set_fs(KERNEL_DS);
--      host_err = inode->i_op->readlink(dentry, buf, *lenp);
-+      host_err = inode->i_op->readlink(dentry, (char __force_user *)buf, *lenp);
+-      host_err = inode->i_op->readlink(path.dentry, buf, *lenp);
++      host_err = inode->i_op->readlink(path.dentry, (char __force_user *)buf, *lenp);
        set_fs(oldfs);
  
        if (host_err < 0)
 diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
-index 9fde1c0..14e8827 100644
+index 3568c8a..e0240d8 100644
 --- a/fs/notify/fanotify/fanotify_user.c
 +++ b/fs/notify/fanotify/fanotify_user.c
-@@ -276,7 +276,8 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
+@@ -278,7 +278,8 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
                goto out_close_fd;
  
        ret = -EFAULT;
@@ -47257,7 +47186,7 @@ index 9fde1c0..14e8827 100644
                goto out_kill_access_response;
  
 diff --git a/fs/notify/notification.c b/fs/notify/notification.c
-index ee18815..7aa5d01 100644
+index c887b13..0fdf472 100644
 --- a/fs/notify/notification.c
 +++ b/fs/notify/notification.c
 @@ -57,7 +57,7 @@ static struct kmem_cache *fsnotify_event_holder_cachep;
@@ -47292,7 +47221,7 @@ index 99e3610..02c1068 100644
                                "inode 0x%lx or driver bug.", vdir->i_ino);
                goto err_out;
 diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c
-index c587e2d..3641eaa 100644
+index 8639169..76697aa 100644
 --- a/fs/ntfs/file.c
 +++ b/fs/ntfs/file.c
 @@ -2229,6 +2229,6 @@ const struct inode_operations ntfs_file_inode_ops = {
@@ -47317,21 +47246,8 @@ index 210c352..a174f83 100644
  
  bail:
        if (handle)
-diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
-index 53aa41e..d7df9f1 100644
---- a/fs/ocfs2/namei.c
-+++ b/fs/ocfs2/namei.c
-@@ -1063,6 +1063,8 @@ static int ocfs2_rename(struct inode *old_dir,
-       struct ocfs2_dir_lookup_result orphan_insert = { NULL, };
-       struct ocfs2_dir_lookup_result target_insert = { NULL, };
-+      pax_track_stack();
-+
-       /* At some point it might be nice to break this function up a
-        * bit. */
 diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
-index 4092858..51c70ff 100644
+index d355e6e..578d905 100644
 --- a/fs/ocfs2/ocfs2.h
 +++ b/fs/ocfs2/ocfs2.h
 @@ -235,11 +235,11 @@ enum ocfs2_vol_state
@@ -47352,7 +47268,7 @@ index 4092858..51c70ff 100644
  
  enum ocfs2_local_alloc_state
 diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
-index ba5d97e..c77db25 100644
+index f169da4..9112253 100644
 --- a/fs/ocfs2/suballoc.c
 +++ b/fs/ocfs2/suballoc.c
 @@ -872,7 +872,7 @@ static int ocfs2_reserve_suballoc_bits(struct ocfs2_super *osb,
@@ -47410,10 +47326,10 @@ index ba5d97e..c77db25 100644
                }
        }
 diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
-index 56f6102..1433c29 100644
+index 68f4541..89cfe6a 100644
 --- a/fs/ocfs2/super.c
 +++ b/fs/ocfs2/super.c
-@@ -300,11 +300,11 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
+@@ -301,11 +301,11 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
                        "%10s => GlobalAllocs: %d  LocalAllocs: %d  "
                        "SubAllocs: %d  LAWinMoves: %d  SAExtends: %d\n",
                        "Stats",
@@ -47430,7 +47346,7 @@ index 56f6102..1433c29 100644
  
        out += snprintf(buf + out, len - out,
                        "%10s => State: %u  Descriptor: %llu  Size: %u bits  "
-@@ -2112,11 +2112,11 @@ static int ocfs2_initialize_super(struct super_block *sb,
+@@ -2116,11 +2116,11 @@ static int ocfs2_initialize_super(struct super_block *sb,
        spin_lock_init(&osb->osb_xattr_lock);
        ocfs2_init_steal_slots(osb);
  
@@ -47461,10 +47377,19 @@ index 5d22872..523db20 100644
                kfree(link);
  }
 diff --git a/fs/open.c b/fs/open.c
-index f711921..28d5958 100644
+index 3f1108b..822d7f7 100644
 --- a/fs/open.c
 +++ b/fs/open.c
-@@ -112,6 +112,10 @@ static long do_sys_truncate(const char __user *pathname, loff_t length)
+@@ -31,6 +31,8 @@
+ #include <linux/ima.h>
+ #include <linux/dnotify.h>
++#define CREATE_TRACE_POINTS
++#include <trace/events/fs.h>
+ #include "internal.h"
+ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+@@ -112,6 +114,10 @@ static long do_sys_truncate(const char __user *pathname, loff_t length)
        error = locks_verify_truncate(inode, NULL, length);
        if (!error)
                error = security_path_truncate(&path);
@@ -47475,7 +47400,7 @@ index f711921..28d5958 100644
        if (!error)
                error = do_truncate(path.dentry, length, 0, NULL);
  
-@@ -358,6 +362,9 @@ SYSCALL_DEFINE3(faccessat, int, dfd, const char __user *, filename, int, mode)
+@@ -358,6 +364,9 @@ SYSCALL_DEFINE3(faccessat, int, dfd, const char __user *, filename, int, mode)
        if (__mnt_is_readonly(path.mnt))
                res = -EROFS;
  
@@ -47485,7 +47410,7 @@ index f711921..28d5958 100644
  out_path_release:
        path_put(&path);
  out:
-@@ -384,6 +391,8 @@ SYSCALL_DEFINE1(chdir, const char __user *, filename)
+@@ -384,6 +393,8 @@ SYSCALL_DEFINE1(chdir, const char __user *, filename)
        if (error)
                goto dput_and_out;
  
@@ -47494,7 +47419,7 @@ index f711921..28d5958 100644
        set_fs_pwd(current->fs, &path);
  
  dput_and_out:
-@@ -410,6 +419,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
+@@ -410,6 +421,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
                goto out_putf;
  
        error = inode_permission(inode, MAY_EXEC | MAY_CHDIR);
@@ -47508,7 +47433,7 @@ index f711921..28d5958 100644
        if (!error)
                set_fs_pwd(current->fs, &file->f_path);
  out_putf:
-@@ -438,7 +454,13 @@ SYSCALL_DEFINE1(chroot, const char __user *, filename)
+@@ -438,7 +456,13 @@ SYSCALL_DEFINE1(chroot, const char __user *, filename)
        if (error)
                goto dput_and_out;
  
@@ -47522,12 +47447,12 @@ index f711921..28d5958 100644
        error = 0;
  dput_and_out:
        path_put(&path);
-@@ -456,6 +478,16 @@ static int chmod_common(struct path *path, umode_t mode)
+@@ -456,6 +480,16 @@ static int chmod_common(struct path *path, umode_t mode)
        if (error)
                return error;
        mutex_lock(&inode->i_mutex);
 +
-+      if (!gr_acl_handle_fchmod(path->dentry, path->mnt, mode)) {
++      if (!gr_acl_handle_chmod(path->dentry, path->mnt, &mode)) {
 +              error = -EACCES;
 +              goto out_unlock;
 +      }
@@ -47536,10 +47461,10 @@ index f711921..28d5958 100644
 +              goto out_unlock;
 +      }
 +
-       error = security_path_chmod(path->dentry, path->mnt, mode);
+       error = security_path_chmod(path, mode);
        if (error)
                goto out_unlock;
-@@ -506,6 +538,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
+@@ -506,6 +540,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
        int error;
        struct iattr newattrs;
  
@@ -47549,49 +47474,19 @@ index f711921..28d5958 100644
        newattrs.ia_valid =  ATTR_CTIME;
        if (user != (uid_t) -1) {
                newattrs.ia_valid |= ATTR_UID;
-diff --git a/fs/partitions/efi.c b/fs/partitions/efi.c
-index 6296b40..417c00f 100644
---- a/fs/partitions/efi.c
-+++ b/fs/partitions/efi.c
-@@ -234,14 +234,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state,
-       if (!gpt)
-               return NULL;
-+      if (!le32_to_cpu(gpt->num_partition_entries))
-+              return NULL;
-+      pte = kcalloc(le32_to_cpu(gpt->num_partition_entries), le32_to_cpu(gpt->sizeof_partition_entry), GFP_KERNEL);
-+      if (!pte)
-+              return NULL;
-+
-       count = le32_to_cpu(gpt->num_partition_entries) *
-                 le32_to_cpu(gpt->sizeof_partition_entry);
--      if (!count)
--              return NULL;
--      pte = kzalloc(count, GFP_KERNEL);
--      if (!pte)
--              return NULL;
--
-       if (read_lba(state, le64_to_cpu(gpt->partition_entry_lba),
-                      (u8 *) pte,
-                    count) < count) {
-diff --git a/fs/partitions/ldm.c b/fs/partitions/ldm.c
-index af9fdf0..75b15c3 100644
---- a/fs/partitions/ldm.c
-+++ b/fs/partitions/ldm.c
-@@ -1322,7 +1322,7 @@ static bool ldm_frag_add (const u8 *data, int size, struct list_head *frags)
-                       goto found;
-       }
--      f = kmalloc (sizeof (*f) + size*num, GFP_KERNEL);
-+      f = kmalloc (size*num + sizeof (*f), GFP_KERNEL);
-       if (!f) {
-               ldm_crit ("Out of memory.");
-               return false;
+@@ -987,6 +1024,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
+                       } else {
+                               fsnotify_open(f);
+                               fd_install(fd, f);
++                              trace_do_sys_open(tmp, flags, mode);
+                       }
+               }
+               putname(tmp);
 diff --git a/fs/pipe.c b/fs/pipe.c
-index 0e0be1d..f62a72d 100644
+index fec5e4a..f4210f9 100644
 --- a/fs/pipe.c
 +++ b/fs/pipe.c
-@@ -420,9 +420,9 @@ redo:
+@@ -438,9 +438,9 @@ redo:
                }
                if (bufs)       /* More to do? */
                        continue;
@@ -47603,7 +47498,7 @@ index 0e0be1d..f62a72d 100644
                        /* syscall merging: Usually we must not sleep
                         * if O_NONBLOCK is set, or if we got some data.
                         * But if a writer sleeps in kernel space, then
-@@ -481,7 +481,7 @@ pipe_write(struct kiocb *iocb, const struct iovec *_iov,
+@@ -504,7 +504,7 @@ pipe_write(struct kiocb *iocb, const struct iovec *_iov,
        mutex_lock(&inode->i_mutex);
        pipe = inode->i_pipe;
  
@@ -47612,7 +47507,7 @@ index 0e0be1d..f62a72d 100644
                send_sig(SIGPIPE, current, 0);
                ret = -EPIPE;
                goto out;
-@@ -530,7 +530,7 @@ redo1:
+@@ -553,7 +553,7 @@ redo1:
        for (;;) {
                int bufs;
  
@@ -47621,7 +47516,7 @@ index 0e0be1d..f62a72d 100644
                        send_sig(SIGPIPE, current, 0);
                        if (!ret)
                                ret = -EPIPE;
-@@ -616,9 +616,9 @@ redo2:
+@@ -644,9 +644,9 @@ redo2:
                        kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
                        do_wakeup = 0;
                }
@@ -47633,7 +47528,7 @@ index 0e0be1d..f62a72d 100644
        }
  out:
        mutex_unlock(&inode->i_mutex);
-@@ -685,7 +685,7 @@ pipe_poll(struct file *filp, poll_table *wait)
+@@ -713,7 +713,7 @@ pipe_poll(struct file *filp, poll_table *wait)
        mask = 0;
        if (filp->f_mode & FMODE_READ) {
                mask = (nrbufs > 0) ? POLLIN | POLLRDNORM : 0;
@@ -47642,7 +47537,7 @@ index 0e0be1d..f62a72d 100644
                        mask |= POLLHUP;
        }
  
-@@ -695,7 +695,7 @@ pipe_poll(struct file *filp, poll_table *wait)
+@@ -723,7 +723,7 @@ pipe_poll(struct file *filp, poll_table *wait)
                 * Most Unices do not set POLLERR for FIFOs but on Linux they
                 * behave exactly like pipes for poll().
                 */
@@ -47651,7 +47546,7 @@ index 0e0be1d..f62a72d 100644
                        mask |= POLLERR;
        }
  
-@@ -709,10 +709,10 @@ pipe_release(struct inode *inode, int decr, int decw)
+@@ -737,10 +737,10 @@ pipe_release(struct inode *inode, int decr, int decw)
  
        mutex_lock(&inode->i_mutex);
        pipe = inode->i_pipe;
@@ -47665,7 +47560,7 @@ index 0e0be1d..f62a72d 100644
                free_pipe_info(inode);
        } else {
                wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM | POLLERR | POLLHUP);
-@@ -802,7 +802,7 @@ pipe_read_open(struct inode *inode, struct file *filp)
+@@ -830,7 +830,7 @@ pipe_read_open(struct inode *inode, struct file *filp)
  
        if (inode->i_pipe) {
                ret = 0;
@@ -47674,7 +47569,7 @@ index 0e0be1d..f62a72d 100644
        }
  
        mutex_unlock(&inode->i_mutex);
-@@ -819,7 +819,7 @@ pipe_write_open(struct inode *inode, struct file *filp)
+@@ -847,7 +847,7 @@ pipe_write_open(struct inode *inode, struct file *filp)
  
        if (inode->i_pipe) {
                ret = 0;
@@ -47683,7 +47578,7 @@ index 0e0be1d..f62a72d 100644
        }
  
        mutex_unlock(&inode->i_mutex);
-@@ -837,9 +837,9 @@ pipe_rdwr_open(struct inode *inode, struct file *filp)
+@@ -865,9 +865,9 @@ pipe_rdwr_open(struct inode *inode, struct file *filp)
        if (inode->i_pipe) {
                ret = 0;
                if (filp->f_mode & FMODE_READ)
@@ -47695,7 +47590,7 @@ index 0e0be1d..f62a72d 100644
        }
  
        mutex_unlock(&inode->i_mutex);
-@@ -931,7 +931,7 @@ void free_pipe_info(struct inode *inode)
+@@ -959,7 +959,7 @@ void free_pipe_info(struct inode *inode)
        inode->i_pipe = NULL;
  }
  
@@ -47704,7 +47599,7 @@ index 0e0be1d..f62a72d 100644
  
  /*
   * pipefs_dname() is called from d_path().
-@@ -961,7 +961,8 @@ static struct inode * get_pipe_inode(void)
+@@ -989,7 +989,8 @@ static struct inode * get_pipe_inode(void)
                goto fail_iput;
        inode->i_pipe = pipe;
  
@@ -47746,7 +47641,7 @@ index 15af622..0e9f4467 100644
        help
          Various /proc files exist to monitor process memory utilization:
 diff --git a/fs/proc/array.c b/fs/proc/array.c
-index 3a1dafd..c7fed72 100644
+index f9bd395..acb7847 100644
 --- a/fs/proc/array.c
 +++ b/fs/proc/array.c
 @@ -60,6 +60,7 @@
@@ -47804,16 +47699,21 @@ index 3a1dafd..c7fed72 100644
  static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
                        struct pid *pid, struct task_struct *task, int whole)
  {
-@@ -378,6 +409,8 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+@@ -378,6 +409,13 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
        char tcomm[sizeof(task->comm)];
        unsigned long flags;
  
-+      pax_track_stack();
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      if (current->exec_id != m->exec_id) {
++              gr_log_badprocpid("stat");
++              return 0;
++      }
++#endif
 +
        state = *get_task_state(task);
        vsize = eip = esp = 0;
-       permitted = ptrace_may_access(task, PTRACE_MODE_READ);
-@@ -449,6 +482,19 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+       permitted = ptrace_may_access(task, PTRACE_MODE_READ | PTRACE_MODE_NOAUDIT);
+@@ -449,6 +487,19 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
                gtime = task->gtime;
        }
  
@@ -47833,23 +47733,56 @@ index 3a1dafd..c7fed72 100644
        /* scale priority and nice values from timeslices to -20..20 */
        /* to make it look like a "normal" Unix priority/nice value  */
        priority = task_prio(task);
-@@ -489,9 +535,15 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
-               vsize,
-               mm ? get_mm_rss(mm) : 0,
-               rsslim,
+@@ -485,9 +536,15 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+       seq_put_decimal_ull(m, ' ', vsize);
+       seq_put_decimal_ll(m, ' ', mm ? get_mm_rss(mm) : 0);
+       seq_put_decimal_ull(m, ' ', rsslim);
 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
-+              PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->start_code : 1) : 0),
-+              PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->end_code : 1) : 0),
-+              PAX_RAND_FLAGS(mm) ? 0 : ((permitted && mm) ? mm->start_stack : 0),
++      seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->start_code : 1) : 0));
++      seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->end_code : 1) : 0));
++      seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 0 : ((permitted && mm) ? mm->start_stack : 0));
 +#else
-               mm ? (permitted ? mm->start_code : 1) : 0,
-               mm ? (permitted ? mm->end_code : 1) : 0,
-               (permitted && mm) ? mm->start_stack : 0,
+       seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->start_code : 1) : 0);
+       seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->end_code : 1) : 0);
+       seq_put_decimal_ull(m, ' ', (permitted && mm) ? mm->start_stack : 0);
++#endif
+       seq_put_decimal_ull(m, ' ', esp);
+       seq_put_decimal_ull(m, ' ', eip);
+       /* The signal information here is obsolete.
+@@ -508,9 +565,15 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
+       seq_put_decimal_ull(m, ' ', delayacct_blkio_ticks(task));
+       seq_put_decimal_ull(m, ' ', cputime_to_clock_t(gtime));
+       seq_put_decimal_ll(m, ' ', cputime_to_clock_t(cgtime));
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 0 : ((mm && permitted) ? mm->start_data : 0));
++      seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 0 : ((mm && permitted) ? mm->end_data : 0));
++      seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 0 : ((mm && permitted) ? mm->start_brk : 0));
++#else
+       seq_put_decimal_ull(m, ' ', (mm && permitted) ? mm->start_data : 0);
+       seq_put_decimal_ull(m, ' ', (mm && permitted) ? mm->end_data : 0);
+       seq_put_decimal_ull(m, ' ', (mm && permitted) ? mm->start_brk : 0);
++#endif
+       seq_putc(m, '\n');
+       if (mm)
+               mmput(mm);
+@@ -533,8 +596,15 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
+                       struct pid *pid, struct task_struct *task)
+ {
+       unsigned long size = 0, resident = 0, shared = 0, text = 0, data = 0;
+-      struct mm_struct *mm = get_task_mm(task);
++      struct mm_struct *mm;
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      if (current->exec_id != m->exec_id) {
++              gr_log_badprocpid("statm");
++              return 0;
++      }
 +#endif
-               esp,
-               eip,
-               /* The signal information here is obsolete.
-@@ -544,3 +596,18 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
++      mm = get_task_mm(task);
+       if (mm) {
+               size = task_statm(mm, &shared, &text, &data, &resident);
+               mmput(mm);
+@@ -556,3 +626,18 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
  
        return 0;
  }
@@ -47869,10 +47802,10 @@ index 3a1dafd..c7fed72 100644
 +}
 +#endif
 diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 5eb0206..fe01db4 100644
+index 9fc77b4..4877d08 100644
 --- a/fs/proc/base.c
 +++ b/fs/proc/base.c
-@@ -107,6 +107,22 @@ struct pid_entry {
+@@ -109,6 +109,14 @@ struct pid_entry {
        union proc_op op;
  };
  
@@ -47883,29 +47816,23 @@ index 5eb0206..fe01db4 100644
 +      int count;
 +      int error;
 +};
-+
-+static int gr_fake_filldir(void * __buf, const char *name, int namlen, 
-+                         loff_t offset, u64 ino, unsigned int d_type)
-+{
-+      struct getdents_callback * buf = (struct getdents_callback *) __buf;
-+      buf->error = -EINVAL;
-+      return 0;
-+}
 +
  #define NOD(NAME, MODE, IOP, FOP, OP) {                       \
        .name = (NAME),                                 \
        .len  = sizeof(NAME) - 1,                       \
-@@ -209,6 +225,9 @@ static struct mm_struct *__check_mem_permission(struct task_struct *task)
-       if (task == current)
-               return mm;
+@@ -198,11 +206,6 @@ static int proc_root_link(struct dentry *dentry, struct path *path)
+       return result;
+ }
  
-+      if (gr_handle_proc_ptrace(task) || gr_acl_handle_procpidmem(task))
-+              return ERR_PTR(-EPERM);
-+
-       /*
-        * If current is actively ptrace'ing, and would also be
-        * permitted to freshly attach with ptrace now, permit it.
-@@ -282,6 +301,9 @@ static int proc_pid_cmdline(struct task_struct *task, char * buffer)
+-struct mm_struct *mm_for_maps(struct task_struct *task)
+-{
+-      return mm_access(task, PTRACE_MODE_READ);
+-}
+-
+ static int proc_pid_cmdline(struct task_struct *task, char * buffer)
+ {
+       int res = 0;
+@@ -213,6 +216,9 @@ static int proc_pid_cmdline(struct task_struct *task, char * buffer)
        if (!mm->arg_end)
                goto out_mm;    /* Shh! No looking before we're done */
  
@@ -47915,7 +47842,7 @@ index 5eb0206..fe01db4 100644
        len = mm->arg_end - mm->arg_start;
   
        if (len > PAGE_SIZE)
-@@ -309,12 +331,28 @@ out:
+@@ -240,12 +246,28 @@ out:
        return res;
  }
  
@@ -47927,7 +47854,8 @@ index 5eb0206..fe01db4 100644
 +
  static int proc_pid_auxv(struct task_struct *task, char *buffer)
  {
-       struct mm_struct *mm = mm_for_maps(task);
+-      struct mm_struct *mm = mm_for_maps(task);
++      struct mm_struct *mm = mm_access(task, PTRACE_MODE_READ);
        int res = PTR_ERR(mm);
        if (mm && !IS_ERR(mm)) {
                unsigned int nwords = 0;
@@ -47944,7 +47872,7 @@ index 5eb0206..fe01db4 100644
                do {
                        nwords += 2;
                } while (mm->saved_auxv[nwords - 2] != 0); /* AT_NULL */
-@@ -328,7 +366,7 @@ static int proc_pid_auxv(struct task_struct *task, char *buffer)
+@@ -259,7 +281,7 @@ static int proc_pid_auxv(struct task_struct *task, char *buffer)
  }
  
  
@@ -47953,7 +47881,7 @@ index 5eb0206..fe01db4 100644
  /*
   * Provides a wchan file via kallsyms in a proper one-value-per-file format.
   * Returns the resolved symbol.  If that fails, simply return the address.
-@@ -367,7 +405,7 @@ static void unlock_trace(struct task_struct *task)
+@@ -298,7 +320,7 @@ static void unlock_trace(struct task_struct *task)
        mutex_unlock(&task->signal->cred_guard_mutex);
  }
  
@@ -47962,7 +47890,7 @@ index 5eb0206..fe01db4 100644
  
  #define MAX_STACK_TRACE_DEPTH 64
  
-@@ -558,7 +596,7 @@ static int proc_pid_limits(struct task_struct *task, char *buffer)
+@@ -489,7 +511,7 @@ static int proc_pid_limits(struct task_struct *task, char *buffer)
        return count;
  }
  
@@ -47971,7 +47899,7 @@ index 5eb0206..fe01db4 100644
  static int proc_pid_syscall(struct task_struct *task, char *buffer)
  {
        long nr;
-@@ -587,7 +625,7 @@ static int proc_pid_syscall(struct task_struct *task, char *buffer)
+@@ -518,7 +540,7 @@ static int proc_pid_syscall(struct task_struct *task, char *buffer)
  /************************************************************************/
  
  /* permission checks */
@@ -47980,38 +47908,238 @@ index 5eb0206..fe01db4 100644
  {
        struct task_struct *task;
        int allowed = 0;
-@@ -597,7 +635,10 @@ static int proc_fd_access_allowed(struct inode *inode)
+@@ -528,7 +550,10 @@ static int proc_fd_access_allowed(struct inode *inode)
         */
        task = get_proc_task(inode);
        if (task) {
 -              allowed = ptrace_may_access(task, PTRACE_MODE_READ);
 +              if (log)
-+                      allowed = ptrace_may_access_log(task, PTRACE_MODE_READ);
-+              else
 +                      allowed = ptrace_may_access(task, PTRACE_MODE_READ);
++              else
++                      allowed = ptrace_may_access(task, PTRACE_MODE_READ | PTRACE_MODE_NOAUDIT);
                put_task_struct(task);
        }
        return allowed;
-@@ -978,6 +1019,9 @@ static ssize_t environ_read(struct file *file, char __user *buf,
+@@ -566,10 +591,35 @@ static bool has_pid_permissions(struct pid_namespace *pid,
+                                struct task_struct *task,
+                                int hide_pid_min)
+ {
++      if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
++              return false;
++
++#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
++      rcu_read_lock();
++      {
++              const struct cred *tmpcred = current_cred();
++              const struct cred *cred = __task_cred(task);
++
++              if (!tmpcred->uid || (tmpcred->uid == cred->uid)
++#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
++                      || in_group_p(CONFIG_GRKERNSEC_PROC_GID)
++#endif
++              ) {
++                      rcu_read_unlock();
++                      return true;
++              }
++      }
++      rcu_read_unlock();
++
++      if (!pid->hide_pid)
++              return false;
++#endif
++
+       if (pid->hide_pid < hide_pid_min)
+               return true;
+       if (in_group_p(pid->pid_gid))
+               return true;
++
+       return ptrace_may_access(task, PTRACE_MODE_READ);
+ }
+@@ -587,7 +637,11 @@ static int proc_pid_permission(struct inode *inode, int mask)
+       put_task_struct(task);
+       if (!has_perms) {
++#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
++              {
++#else
+               if (pid->hide_pid == 2) {
++#endif
+                       /*
+                        * Let's make getdents(), stat(), and open()
+                        * consistent with each other.  If a process
+@@ -677,7 +731,7 @@ static const struct file_operations proc_single_file_operations = {
+       .release        = single_release,
+ };
+-static int mem_open(struct inode* inode, struct file* file)
++static int __mem_open(struct inode *inode, struct file *file, unsigned int mode)
+ {
+       struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
+       struct mm_struct *mm;
+@@ -685,7 +739,12 @@ static int mem_open(struct inode* inode, struct file* file)
        if (!task)
-               goto out_no_task;
+               return -ESRCH;
  
-+      if (gr_acl_handle_procpidmem(task))
-+              goto out;
+-      mm = mm_access(task, PTRACE_MODE_ATTACH);
++      if (gr_acl_handle_procpidmem(task)) {
++              put_task_struct(task);
++              return -EPERM;
++      }
 +
-       ret = -ENOMEM;
++      mm = mm_access(task, mode);
+       put_task_struct(task);
+       if (IS_ERR(mm))
+@@ -698,11 +757,24 @@ static int mem_open(struct inode* inode, struct file* file)
+               mmput(mm);
+       }
++      file->private_data = mm;
++
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      file->f_version = current->exec_id;
++#endif
++
++      return 0;
++}
++
++static int mem_open(struct inode *inode, struct file *file)
++{
++      int ret;
++      ret = __mem_open(inode, file, PTRACE_MODE_ATTACH);
++
+       /* OK to pass negative loff_t, we can catch out-of-range */
+       file->f_mode |= FMODE_UNSIGNED_OFFSET;
+-      file->private_data = mm;
+-      return 0;
++      return ret;
+ }
+ static ssize_t mem_rw(struct file *file, char __user *buf,
+@@ -713,6 +785,17 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
+       ssize_t copied;
+       char *page;
++#ifdef CONFIG_GRKERNSEC
++      if (write)
++              return -EPERM;
++#endif
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      if (file->f_version != current->exec_id) {
++              gr_log_badprocpid("mem");
++              return 0;
++      }
++#endif
++
+       if (!mm)
+               return 0;
+@@ -801,42 +884,49 @@ static const struct file_operations proc_mem_operations = {
+       .release        = mem_release,
+ };
++static int environ_open(struct inode *inode, struct file *file)
++{
++      return __mem_open(inode, file, PTRACE_MODE_READ);
++}
++
+ static ssize_t environ_read(struct file *file, char __user *buf,
+                       size_t count, loff_t *ppos)
+ {
+-      struct task_struct *task = get_proc_task(file->f_dentry->d_inode);
+       char *page;
+       unsigned long src = *ppos;
+-      int ret = -ESRCH;
+-      struct mm_struct *mm;
++      int ret = 0;
++      struct mm_struct *mm = file->private_data;
+-      if (!task)
+-              goto out_no_task;
++      if (!mm)
++              return 0;
++
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      if (file->f_version != current->exec_id) {
++              gr_log_badprocpid("environ");
++              return 0;
++      }
++#endif
+-      ret = -ENOMEM;
        page = (char *)__get_free_page(GFP_TEMPORARY);
        if (!page)
-@@ -1613,7 +1657,7 @@ static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd)
+-              goto out;
+-
+-
+-      mm = mm_for_maps(task);
+-      ret = PTR_ERR(mm);
+-      if (!mm || IS_ERR(mm))
+-              goto out_free;
++              return -ENOMEM;
+       ret = 0;
++      if (!atomic_inc_not_zero(&mm->mm_users))
++              goto free;
+       while (count > 0) {
+-              int this_len, retval, max_len;
++              size_t this_len, max_len;
++              int retval;
++
++              if (src >= (mm->env_end - mm->env_start))
++                      break;
+               this_len = mm->env_end - (mm->env_start + src);
+-              if (this_len <= 0)
+-                      break;
++              max_len = min_t(size_t, PAGE_SIZE, count);
++              this_len = min(max_len, this_len);
+-              max_len = (count > PAGE_SIZE) ? PAGE_SIZE : count;
+-              this_len = (this_len > max_len) ? max_len : this_len;
+-
+-              retval = access_process_vm(task, (mm->env_start + src),
++              retval = access_remote_vm(mm, (mm->env_start + src),
+                       page, this_len, 0);
+               if (retval <= 0) {
+@@ -855,19 +945,18 @@ static ssize_t environ_read(struct file *file, char __user *buf,
+               count -= retval;
+       }
+       *ppos = src;
+-
+       mmput(mm);
+-out_free:
++
++free:
+       free_page((unsigned long) page);
+-out:
+-      put_task_struct(task);
+-out_no_task:
+       return ret;
+ }
+ static const struct file_operations proc_environ_operations = {
++      .open           = environ_open,
+       .read           = environ_read,
+       .llseek         = generic_file_llseek,
++      .release        = mem_release,
+ };
+ static ssize_t oom_adjust_read(struct file *file, char __user *buf,
+@@ -1433,7 +1522,7 @@ static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd)
        path_put(&nd->path);
  
        /* Are we allowed to snoop on the tasks file descriptors? */
 -      if (!proc_fd_access_allowed(inode))
-+      if (!proc_fd_access_allowed(inode,0))
++      if (!proc_fd_access_allowed(inode, 0))
                goto out;
  
-       error = PROC_I(inode)->op.proc_get_link(inode, &nd->path);
-@@ -1652,8 +1696,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
+       error = PROC_I(inode)->op.proc_get_link(dentry, &nd->path);
+@@ -1472,8 +1561,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
        struct path path;
  
        /* Are we allowed to snoop on the tasks file descriptors? */
@@ -48030,9 +48158,9 @@ index 5eb0206..fe01db4 100644
 +                      goto out;
 +      }
  
-       error = PROC_I(inode)->op.proc_get_link(inode, &path);
+       error = PROC_I(inode)->op.proc_get_link(dentry, &path);
        if (error)
-@@ -1718,7 +1772,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
+@@ -1538,7 +1637,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
                rcu_read_lock();
                cred = __task_cred(task);
                inode->i_uid = cred->euid;
@@ -48044,35 +48172,9 @@ index 5eb0206..fe01db4 100644
                rcu_read_unlock();
        }
        security_task_to_inode(task, inode);
-@@ -1736,6 +1794,9 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
-       struct inode *inode = dentry->d_inode;
-       struct task_struct *task;
-       const struct cred *cred;
-+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
-+      const struct cred *tmpcred = current_cred();
-+#endif
-       generic_fillattr(inode, stat);
-@@ -1743,13 +1804,41 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
-       stat->uid = 0;
-       stat->gid = 0;
-       task = pid_task(proc_pid(inode), PIDTYPE_PID);
-+
-+      if (task && (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))) {
-+              rcu_read_unlock();
-+              return -ENOENT;
-+      }
-+
-       if (task) {
-+              cred = __task_cred(task);
-+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
-+              if (!tmpcred->uid || (tmpcred->uid == cred->uid)
-+#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
-+                  || in_group_p(CONFIG_GRKERNSEC_PROC_GID)
-+#endif
-+              ) {
-+#endif
+@@ -1574,10 +1677,19 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
+                       return -ENOENT;
+               }
                if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
 +#ifdef CONFIG_GRKERNSEC_PROC_USER
 +                  (inode->i_mode == (S_IFDIR|S_IRUSR|S_IXUSR)) ||
@@ -48080,7 +48182,7 @@ index 5eb0206..fe01db4 100644
 +                  (inode->i_mode == (S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP)) ||
 +#endif
                    task_dumpable(task)) {
--                      cred = __task_cred(task);
+                       cred = __task_cred(task);
                        stat->uid = cred->euid;
 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
 +                      stat->gid = CONFIG_GRKERNSEC_PROC_GID;
@@ -48088,16 +48190,9 @@ index 5eb0206..fe01db4 100644
                        stat->gid = cred->egid;
 +#endif
                }
-+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
-+              } else {
-+                      rcu_read_unlock();
-+                      return -ENOENT;
-+              }
-+#endif
        }
        rcu_read_unlock();
-       return 0;
-@@ -1786,11 +1875,20 @@ int pid_revalidate(struct dentry *dentry, struct nameidata *nd)
+@@ -1615,11 +1727,20 @@ int pid_revalidate(struct dentry *dentry, struct nameidata *nd)
  
        if (task) {
                if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
@@ -48118,7 +48213,7 @@ index 5eb0206..fe01db4 100644
                        rcu_read_unlock();
                } else {
                        inode->i_uid = 0;
-@@ -1908,7 +2006,8 @@ static int proc_fd_info(struct inode *inode, struct path *path, char *info)
+@@ -1737,7 +1858,8 @@ static int proc_fd_info(struct inode *inode, struct path *path, char *info)
        int fd = proc_fd(inode);
  
        if (task) {
@@ -48128,7 +48223,21 @@ index 5eb0206..fe01db4 100644
                put_task_struct(task);
        }
        if (files) {
-@@ -2176,11 +2275,21 @@ static const struct file_operations proc_fd_operations = {
+@@ -2025,11 +2147,8 @@ static int map_files_d_revalidate(struct dentry *dentry, struct nameidata *nd)
+       if (!task)
+               goto out_notask;
+-      if (!ptrace_may_access(task, PTRACE_MODE_READ))
+-              goto out;
+-
+-      mm = get_task_mm(task);
+-      if (!mm)
++      mm = mm_access(task, PTRACE_MODE_READ);
++      if (IS_ERR_OR_NULL(mm))
+               goto out;
+       if (!dname_to_vma_addr(dentry, &vm_start, &vm_end)) {
+@@ -2338,11 +2457,21 @@ static const struct file_operations proc_map_files_operations = {
   */
  static int proc_fd_permission(struct inode *inode, int mask)
  {
@@ -48152,7 +48261,7 @@ index 5eb0206..fe01db4 100644
        return rv;
  }
  
-@@ -2290,6 +2399,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
+@@ -2452,6 +2581,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
        if (!task)
                goto out_no_task;
  
@@ -48162,7 +48271,7 @@ index 5eb0206..fe01db4 100644
        /*
         * Yes, it does not scale. And it should not. Don't add
         * new entries into /proc/<tgid>/ without very good reasons.
-@@ -2334,6 +2446,9 @@ static int proc_pident_readdir(struct file *filp,
+@@ -2496,6 +2628,9 @@ static int proc_pident_readdir(struct file *filp,
        if (!task)
                goto out_no_task;
  
@@ -48172,7 +48281,7 @@ index 5eb0206..fe01db4 100644
        ret = 0;
        i = filp->f_pos;
        switch (i) {
-@@ -2604,7 +2719,7 @@ static void *proc_self_follow_link(struct dentry *dentry, struct nameidata *nd)
+@@ -2766,7 +2901,7 @@ static void *proc_self_follow_link(struct dentry *dentry, struct nameidata *nd)
  static void proc_self_put_link(struct dentry *dentry, struct nameidata *nd,
                                void *cookie)
  {
@@ -48181,7 +48290,7 @@ index 5eb0206..fe01db4 100644
        if (!IS_ERR(s))
                __putname(s);
  }
-@@ -2802,7 +2917,7 @@ static const struct pid_entry tgid_base_stuff[] = {
+@@ -2967,7 +3102,7 @@ static const struct pid_entry tgid_base_stuff[] = {
        REG("autogroup",  S_IRUGO|S_IWUSR, proc_pid_sched_autogroup_operations),
  #endif
        REG("comm",      S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
@@ -48190,7 +48299,7 @@ index 5eb0206..fe01db4 100644
        INF("syscall",    S_IRUGO, proc_pid_syscall),
  #endif
        INF("cmdline",    S_IRUGO, proc_pid_cmdline),
-@@ -2827,10 +2942,10 @@ static const struct pid_entry tgid_base_stuff[] = {
+@@ -2992,10 +3127,10 @@ static const struct pid_entry tgid_base_stuff[] = {
  #ifdef CONFIG_SECURITY
        DIR("attr",       S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
  #endif
@@ -48203,7 +48312,7 @@ index 5eb0206..fe01db4 100644
        ONE("stack",      S_IRUGO, proc_pid_stack),
  #endif
  #ifdef CONFIG_SCHEDSTATS
-@@ -2864,6 +2979,9 @@ static const struct pid_entry tgid_base_stuff[] = {
+@@ -3029,6 +3164,9 @@ static const struct pid_entry tgid_base_stuff[] = {
  #ifdef CONFIG_HARDWALL
        INF("hardwall",   S_IRUGO, proc_pid_hardwall),
  #endif
@@ -48213,7 +48322,7 @@ index 5eb0206..fe01db4 100644
  };
  
  static int proc_tgid_base_readdir(struct file * filp,
-@@ -2989,7 +3107,14 @@ static struct dentry *proc_pid_instantiate(struct inode *dir,
+@@ -3155,7 +3293,14 @@ static struct dentry *proc_pid_instantiate(struct inode *dir,
        if (!inode)
                goto out;
  
@@ -48228,7 +48337,7 @@ index 5eb0206..fe01db4 100644
        inode->i_op = &proc_tgid_base_inode_operations;
        inode->i_fop = &proc_tgid_base_operations;
        inode->i_flags|=S_IMMUTABLE;
-@@ -3031,7 +3156,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct
+@@ -3197,7 +3342,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct
        if (!task)
                goto out;
  
@@ -48240,48 +48349,16 @@ index 5eb0206..fe01db4 100644
        put_task_struct(task);
  out:
        return result;
-@@ -3096,6 +3225,11 @@ int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir)
+@@ -3260,6 +3409,8 @@ static int proc_pid_fill_cache(struct file *filp, void *dirent, filldir_t filldi
+ static int fake_filldir(void *buf, const char *name, int namelen,
+                       loff_t offset, u64 ino, unsigned d_type)
  {
-       unsigned int nr;
-       struct task_struct *reaper;
-+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
-+      const struct cred *tmpcred = current_cred();
-+      const struct cred *itercred;
-+#endif
-+      filldir_t __filldir = filldir;
-       struct tgid_iter iter;
-       struct pid_namespace *ns;
++      struct getdents_callback * __buf = (struct getdents_callback *) buf;
++      __buf->error = -EINVAL;
+       return 0;
+ }
  
-@@ -3119,8 +3253,27 @@ int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir)
-       for (iter = next_tgid(ns, iter);
-            iter.task;
-            iter.tgid += 1, iter = next_tgid(ns, iter)) {
-+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
-+              rcu_read_lock();
-+              itercred = __task_cred(iter.task);
-+#endif
-+              if (gr_pid_is_chrooted(iter.task) || gr_check_hidden_task(iter.task)
-+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
-+                  || (tmpcred->uid && (itercred->uid != tmpcred->uid)
-+#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
-+                      && !in_group_p(CONFIG_GRKERNSEC_PROC_GID)
-+#endif
-+                      )
-+#endif
-+              )
-+                      __filldir = &gr_fake_filldir;
-+              else
-+                      __filldir = filldir;
-+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
-+      rcu_read_unlock();
-+#endif
-               filp->f_pos = iter.tgid + TGID_OFFSET;
--              if (proc_pid_fill_cache(filp, dirent, filldir, iter) < 0) {
-+              if (proc_pid_fill_cache(filp, dirent, __filldir, iter) < 0) {
-                       put_task_struct(iter.task);
-                       goto out;
-               }
-@@ -3148,7 +3301,7 @@ static const struct pid_entry tid_base_stuff[] = {
+@@ -3326,7 +3477,7 @@ static const struct pid_entry tid_base_stuff[] = {
        REG("sched",     S_IRUGO|S_IWUSR, proc_pid_sched_operations),
  #endif
        REG("comm",      S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
@@ -48290,7 +48367,7 @@ index 5eb0206..fe01db4 100644
        INF("syscall",   S_IRUGO, proc_pid_syscall),
  #endif
        INF("cmdline",   S_IRUGO, proc_pid_cmdline),
-@@ -3172,10 +3325,10 @@ static const struct pid_entry tid_base_stuff[] = {
+@@ -3350,10 +3501,10 @@ static const struct pid_entry tid_base_stuff[] = {
  #ifdef CONFIG_SECURITY
        DIR("attr",      S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
  #endif
@@ -48336,16 +48413,15 @@ index b143471..bb105e5 100644
  }
  module_init(proc_devices_init);
 diff --git a/fs/proc/inode.c b/fs/proc/inode.c
-index 7ed72d6..d5f061a 100644
+index 205c922..2ee4c57 100644
 --- a/fs/proc/inode.c
 +++ b/fs/proc/inode.c
-@@ -18,12 +18,18 @@
- #include <linux/module.h>
- #include <linux/sysctl.h>
+@@ -21,11 +21,17 @@
+ #include <linux/seq_file.h>
  #include <linux/slab.h>
+ #include <linux/mount.h>
 +#include <linux/grsecurity.h>
  
- #include <asm/system.h>
  #include <asm/uaccess.h>
  
  #include "internal.h"
@@ -48358,7 +48434,7 @@ index 7ed72d6..d5f061a 100644
  static void proc_evict_inode(struct inode *inode)
  {
        struct proc_dir_entry *de;
-@@ -49,6 +55,13 @@ static void proc_evict_inode(struct inode *inode)
+@@ -51,6 +57,13 @@ static void proc_evict_inode(struct inode *inode)
        ns_ops = PROC_I(inode)->ns_ops;
        if (ns_ops && ns_ops->put)
                ns_ops->put(PROC_I(inode)->ns);
@@ -48372,7 +48448,7 @@ index 7ed72d6..d5f061a 100644
  }
  
  static struct kmem_cache * proc_inode_cachep;
-@@ -440,7 +453,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
+@@ -456,7 +469,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
                if (de->mode) {
                        inode->i_mode = de->mode;
                        inode->i_uid = de->uid;
@@ -48385,10 +48461,19 @@ index 7ed72d6..d5f061a 100644
                if (de->size)
                        inode->i_size = de->size;
 diff --git a/fs/proc/internal.h b/fs/proc/internal.h
-index 7838e5c..ff92cbc 100644
+index 5f79bb8..e9ab85d 100644
 --- a/fs/proc/internal.h
 +++ b/fs/proc/internal.h
-@@ -51,6 +51,9 @@ extern int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
+@@ -31,8 +31,6 @@ struct vmalloc_info {
+       unsigned long   largest_chunk;
+ };
+-extern struct mm_struct *mm_for_maps(struct task_struct *);
+-
+ #ifdef CONFIG_MMU
+ #define VMALLOC_TOTAL (VMALLOC_END - VMALLOC_START)
+ extern void get_vmalloc_info(struct vmalloc_info *vmi);
+@@ -54,6 +52,9 @@ extern int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
                                struct pid *pid, struct task_struct *task);
  extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
                                struct pid *pid, struct task_struct *task);
@@ -48397,21 +48482,12 @@ index 7838e5c..ff92cbc 100644
 +#endif
  extern loff_t mem_lseek(struct file *file, loff_t offset, int orig);
  
- extern const struct file_operations proc_maps_operations;
+ extern const struct file_operations proc_pid_maps_operations;
 diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
-index d245cb2..7e645bd 100644
+index 86c67ee..cdca321 100644
 --- a/fs/proc/kcore.c
 +++ b/fs/proc/kcore.c
-@@ -321,6 +321,8 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff)
-       off_t offset = 0;
-       struct kcore_list *m;
-+      pax_track_stack();
-+
-       /* setup ELF header */
-       elf = (struct elfhdr *) bufp;
-       bufp += sizeof(struct elfhdr);
-@@ -478,9 +480,10 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
+@@ -480,9 +480,10 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
         * the addresses in the elf_phdr on our list.
         */
        start = kc_offset_to_vaddr(*fpos - elf_buflen);
@@ -48424,7 +48500,7 @@ index d245cb2..7e645bd 100644
        while (buflen) {
                struct kcore_list *m;
  
-@@ -509,20 +512,23 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
+@@ -511,20 +512,23 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
                        kfree(elf_buf);
                } else {
                        if (kern_addr_valid(start)) {
@@ -48434,7 +48510,7 @@ index d245cb2..7e645bd 100644
  
 -                              n = copy_to_user(buffer, (char *)start, tsz);
 -                              /*
--                               * We cannot distingush between fault on source
+-                               * We cannot distinguish between fault on source
 -                               * and fault on destination. When this happens
 -                               * we clear too and hope it will trigger the
 -                               * EFAULT again.
@@ -48459,7 +48535,7 @@ index d245cb2..7e645bd 100644
                        } else {
                                if (clear_user(buffer, tsz))
                                        return -EFAULT;
-@@ -542,6 +548,9 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
+@@ -544,6 +548,9 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
  
  static int open_kcore(struct inode *inode, struct file *filp)
  {
@@ -48470,19 +48546,10 @@ index d245cb2..7e645bd 100644
                return -EPERM;
        if (kcore_need_update)
 diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
-index 5861741..32c53bc 100644
+index 80e4645..53e5fcf 100644
 --- a/fs/proc/meminfo.c
 +++ b/fs/proc/meminfo.c
-@@ -29,6 +29,8 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
-       unsigned long pages[NR_LRU_LISTS];
-       int lru;
-+      pax_track_stack();
-+
- /*
-  * display in kilobytes.
-  */
-@@ -157,7 +159,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
+@@ -158,7 +158,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
                vmi.used >> 10,
                vmi.largest_chunk >> 10
  #ifdef CONFIG_MEMORY_FAILURE
@@ -48505,7 +48572,7 @@ index b1822dd..df622cb 100644
  
        seq_putc(m, '\n');
 diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
-index f738024..876984a 100644
+index 06e1cc1..177cd98 100644
 --- a/fs/proc/proc_net.c
 +++ b/fs/proc/proc_net.c
 @@ -105,6 +105,17 @@ static struct net *get_proc_task_net(struct inode *dir)
@@ -48527,14 +48594,16 @@ index f738024..876984a 100644
        rcu_read_lock();
        task = pid_task(proc_pid(dir), PIDTYPE_PID);
 diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
-index 1a77dbe..56ec911 100644
+index 21d836f..bebf3ee 100644
 --- a/fs/proc/proc_sysctl.c
 +++ b/fs/proc/proc_sysctl.c
-@@ -8,11 +8,13 @@
- #include <linux/namei.h>
+@@ -12,11 +12,15 @@
+ #include <linux/module.h>
  #include "internal.h"
  
-+extern __u32 gr_handle_sysctl(const struct ctl_table *table, const int op);
++extern int gr_handle_chroot_sysctl(const int op);
++extern int gr_handle_sysctl_mod(const char *dirname, const char *name,
++                              const int op);
 +
  static const struct dentry_operations proc_sys_dentry_operations;
  static const struct file_operations proc_sys_file_operations;
@@ -48544,9 +48613,9 @@ index 1a77dbe..56ec911 100644
 -static const struct inode_operations proc_sys_dir_operations;
 +const struct inode_operations proc_sys_dir_operations;
  
- static struct inode *proc_sys_make_inode(struct super_block *sb,
-               struct ctl_table_header *head, struct ctl_table *table)
-@@ -121,8 +123,14 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
+ void proc_sys_poll_notify(struct ctl_table_poll *poll)
+ {
+@@ -470,8 +474,14 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
  
        err = NULL;
        d_set_d_op(dentry, &proc_sys_dentry_operations);
@@ -48555,13 +48624,58 @@ index 1a77dbe..56ec911 100644
 +
        d_add(dentry, inode);
  
-+      if (gr_handle_sysctl(p, MAY_EXEC))
++      if (!gr_acl_handle_hidden_file(dentry, nd->path.mnt))
 +              err = ERR_PTR(-ENOENT);
 +
  out:
        sysctl_head_finish(head);
        return err;
-@@ -202,6 +210,9 @@ static int proc_sys_fill_cache(struct file *filp, void *dirent,
+@@ -483,18 +493,20 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
+       struct inode *inode = filp->f_path.dentry->d_inode;
+       struct ctl_table_header *head = grab_header(inode);
+       struct ctl_table *table = PROC_I(inode)->sysctl_entry;
++      int op = write ? MAY_WRITE : MAY_READ;
+       ssize_t error;
+       size_t res;
+       if (IS_ERR(head))
+               return PTR_ERR(head);
++
+       /*
+        * At this point we know that the sysctl was not unregistered
+        * and won't be until we finish.
+        */
+       error = -EPERM;
+-      if (sysctl_perm(head->root, table, write ? MAY_WRITE : MAY_READ))
++      if (sysctl_perm(head->root, table, op))
+               goto out;
+       /* if that can happen at all, it should be -EINVAL, not -EISDIR */
+@@ -502,6 +514,22 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
+       if (!table->proc_handler)
+               goto out;
++#ifdef CONFIG_GRKERNSEC
++      error = -EPERM;
++      if (gr_handle_chroot_sysctl(op))
++              goto out;
++      dget(filp->f_path.dentry);
++      if (gr_handle_sysctl_mod(filp->f_path.dentry->d_parent->d_name.name, table->procname, op)) {
++              dput(filp->f_path.dentry);
++              goto out;
++      }
++      dput(filp->f_path.dentry);
++      if (!gr_acl_handle_open(filp->f_path.dentry, filp->f_path.mnt, op))
++              goto out;
++      if (write && !capable(CAP_SYS_ADMIN))
++              goto out;
++#endif
++
+       /* careful: calling conventions are nasty here */
+       res = count;
+       error = table->proc_handler(table, write, buf, &res, ppos);
+@@ -599,6 +627,9 @@ static int proc_sys_fill_cache(struct file *filp, void *dirent,
                                return -ENOMEM;
                        } else {
                                d_set_d_op(child, &proc_sys_dentry_operations);
@@ -48571,32 +48685,27 @@ index 1a77dbe..56ec911 100644
                                d_add(child, inode);
                        }
                } else {
-@@ -230,6 +241,9 @@ static int scan(struct ctl_table_header *head, ctl_table *table,
-               if (*pos < file->f_pos)
-                       continue;
+@@ -642,6 +673,9 @@ static int scan(struct ctl_table_header *head, ctl_table *table,
+       if ((*pos)++ < file->f_pos)
+               return 0;
  
-+              if (gr_handle_sysctl(table, 0))
-+                      continue;
++      if (!gr_acl_handle_hidden_file(file->f_path.dentry, file->f_path.mnt))
++              return 0;
 +
-               res = proc_sys_fill_cache(file, dirent, filldir, head, table);
-               if (res)
-                       return res;
-@@ -355,6 +369,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
+       if (unlikely(S_ISLNK(table->mode)))
+               res = proc_sys_link_fill_cache(file, dirent, filldir, head, table);
+       else
+@@ -759,6 +793,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
        if (IS_ERR(head))
                return PTR_ERR(head);
  
-+      if (table && gr_handle_sysctl(table, MAY_EXEC))
++      if (table && !gr_acl_handle_hidden_file(dentry, mnt))
 +              return -ENOENT;
 +
        generic_fillattr(inode, stat);
        if (table)
                stat->mode = (stat->mode & S_IFMT) | table->mode;
-@@ -370,17 +387,18 @@ static const struct file_operations proc_sys_file_operations = {
- };
- static const struct file_operations proc_sys_dir_file_operations = {
-+      .read           = generic_read_dir,
-       .readdir        = proc_sys_readdir,
+@@ -781,13 +818,13 @@ static const struct file_operations proc_sys_dir_file_operations = {
        .llseek         = generic_file_llseek,
  };
  
@@ -48613,10 +48722,10 @@ index 1a77dbe..56ec911 100644
        .permission     = proc_sys_permission,
        .setattr        = proc_sys_setattr,
 diff --git a/fs/proc/root.c b/fs/proc/root.c
-index 9a8a2b7..3018df6 100644
+index eed44bf..abeb499 100644
 --- a/fs/proc/root.c
 +++ b/fs/proc/root.c
-@@ -123,7 +123,15 @@ void __init proc_root_init(void)
+@@ -188,7 +188,15 @@ void __init proc_root_init(void)
  #ifdef CONFIG_PROC_DEVICETREE
        proc_device_tree_init();
  #endif
@@ -48633,10 +48742,30 @@ index 9a8a2b7..3018df6 100644
  }
  
 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index c7d4ee6..41c5564 100644
+index 7faaf2a..7793015 100644
 --- a/fs/proc/task_mmu.c
 +++ b/fs/proc/task_mmu.c
-@@ -51,8 +51,13 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
+@@ -11,12 +11,19 @@
+ #include <linux/rmap.h>
+ #include <linux/swap.h>
+ #include <linux/swapops.h>
++#include <linux/grsecurity.h>
+ #include <asm/elf.h>
+ #include <asm/uaccess.h>
+ #include <asm/tlbflush.h>
+ #include "internal.h"
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
++                           (_mm->pax_flags & MF_PAX_RANDMMAP || \
++                            _mm->pax_flags & MF_PAX_SEGMEXEC))
++#endif
++
+ void task_mem(struct seq_file *m, struct mm_struct *mm)
+ {
+       unsigned long data, text, lib, swap;
+@@ -52,8 +59,13 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
                "VmExe:\t%8lu kB\n"
                "VmLib:\t%8lu kB\n"
                "VmPTE:\t%8lu kB\n"
@@ -48651,8 +48780,8 @@ index c7d4ee6..41c5564 100644
 +              ,hiwater_vm << (PAGE_SHIFT-10),
                (total_vm - mm->reserved_vm) << (PAGE_SHIFT-10),
                mm->locked_vm << (PAGE_SHIFT-10),
-               hiwater_rss << (PAGE_SHIFT-10),
-@@ -60,7 +65,13 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
+               mm->pinned_vm << (PAGE_SHIFT-10),
+@@ -62,7 +74,19 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
                data << (PAGE_SHIFT-10),
                mm->stack_vm << (PAGE_SHIFT-10), text, lib,
                (PTRS_PER_PTE*sizeof(pte_t)*mm->nr_ptes) >> 10,
@@ -48660,27 +48789,29 @@ index c7d4ee6..41c5564 100644
 +              swap << (PAGE_SHIFT-10)
 +
 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
-+              , mm->context.user_cs_base, mm->context.user_cs_limit
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++              , PAX_RAND_FLAGS(mm) ? 0 : mm->context.user_cs_base
++              , PAX_RAND_FLAGS(mm) ? 0 : mm->context.user_cs_limit
++#else
++              , mm->context.user_cs_base
++              , mm->context.user_cs_limit
++#endif
 +#endif
 +
 +      );
  }
  
  unsigned long task_vsize(struct mm_struct *mm)
-@@ -207,6 +218,12 @@ static int do_maps_open(struct inode *inode, struct file *file,
-       return ret;
- }
+@@ -125,7 +149,7 @@ static void *m_start(struct seq_file *m, loff_t *pos)
+       if (!priv->task)
+               return ERR_PTR(-ESRCH);
  
-+#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
-+#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
-+                           (_mm->pax_flags & MF_PAX_RANDMMAP || \
-+                            _mm->pax_flags & MF_PAX_SEGMEXEC))
-+#endif
-+
- static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
- {
-       struct mm_struct *mm = vma->vm_mm;
-@@ -225,13 +242,13 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
+-      mm = mm_for_maps(priv->task);
++      mm = mm_access(priv->task, PTRACE_MODE_READ);
+       if (!mm || IS_ERR(mm))
+               return mm;
+       down_read(&mm->mmap_sem);
+@@ -231,13 +255,13 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
                pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
        }
  
@@ -48699,7 +48830,7 @@ index c7d4ee6..41c5564 100644
  
        seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n",
                        start,
-@@ -240,7 +257,11 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
+@@ -246,7 +270,11 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
                        flags & VM_WRITE ? 'w' : '-',
                        flags & VM_EXEC ? 'x' : '-',
                        flags & VM_MAYSHARE ? 's' : 'p',
@@ -48711,30 +48842,51 @@ index c7d4ee6..41c5564 100644
                        MAJOR(dev), MINOR(dev), ino, &len);
  
        /*
-@@ -249,7 +270,7 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
+@@ -255,7 +283,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
         */
        if (file) {
                pad_len_spaces(m, len);
 -              seq_path(m, &file->f_path, "\n");
 +              seq_path(m, &file->f_path, "\n\\");
-       } else {
-               const char *name = arch_vma_name(vma);
-               if (!name) {
-@@ -257,8 +278,9 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
-                               if (vma->vm_start <= mm->brk &&
-                                               vma->vm_end >= mm->start_brk) {
-                                       name = "[heap]";
--                              } else if (vma->vm_start <= mm->start_stack &&
--                                         vma->vm_end >= mm->start_stack) {
-+                              } else if ((vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP)) ||
-+                                         (vma->vm_start <= mm->start_stack &&
-+                                          vma->vm_end >= mm->start_stack)) {
-                                       name = "[stack]";
-                               }
+               goto done;
+       }
+@@ -281,8 +309,9 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
+                        * Thread stack in /proc/PID/task/TID/maps or
+                        * the main process stack.
+                        */
+-                      if (!is_pid || (vma->vm_start <= mm->start_stack &&
+-                          vma->vm_end >= mm->start_stack)) {
++                      if (!is_pid || (vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP)) ||
++                          (vma->vm_start <= mm->start_stack &&
++                           vma->vm_end >= mm->start_stack)) {
+                               name = "[stack]";
                        } else {
-@@ -433,11 +455,16 @@ static int show_smap(struct seq_file *m, void *v)
+                               /* Thread stack in /proc/PID/maps */
+@@ -306,6 +335,13 @@ static int show_map(struct seq_file *m, void *v, int is_pid)
+       struct proc_maps_private *priv = m->private;
+       struct task_struct *task = priv->task;
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      if (current->exec_id != m->exec_id) {
++              gr_log_badprocpid("maps");
++              return 0;
++      }
++#endif
++
+       show_map_vma(m, vma, is_pid);
+       if (m->count < m->size)  /* vma is copied successfully */
+@@ -482,12 +518,23 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
+               .private = &mss,
        };
  
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      if (current->exec_id != m->exec_id) {
++              gr_log_badprocpid("smaps");
++              return 0;
++      }
++#endif
        memset(&mss, 0, sizeof mss);
 -      mss.vma = vma;
 -      /* mmap_sem is held in m_start */
@@ -48751,10 +48903,10 @@ index c7d4ee6..41c5564 100644
 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
 +      }
 +#endif
-       show_map_vma(m, vma);
+       show_map_vma(m, vma, is_pid);
  
        seq_printf(m,
-@@ -455,7 +482,11 @@ static int show_smap(struct seq_file *m, void *v)
+@@ -505,7 +552,11 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
                   "KernelPageSize: %8lu kB\n"
                   "MMUPageSize:    %8lu kB\n"
                   "Locked:         %8lu kB\n",
@@ -48766,7 +48918,38 @@ index c7d4ee6..41c5564 100644
                   mss.resident >> 10,
                   (unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
                   mss.shared_clean  >> 10,
-@@ -1031,7 +1062,7 @@ static int show_numa_map(struct seq_file *m, void *v)
+@@ -919,7 +970,7 @@ static ssize_t pagemap_read(struct file *file, char __user *buf,
+       if (!pm.buffer)
+               goto out_task;
+-      mm = mm_for_maps(task);
++      mm = mm_access(task, PTRACE_MODE_READ);
+       ret = PTR_ERR(mm);
+       if (!mm || IS_ERR(mm))
+               goto out_free;
+@@ -1138,6 +1189,13 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
+       int n;
+       char buffer[50];
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      if (current->exec_id != m->exec_id) {
++              gr_log_badprocpid("numa_maps");
++              return 0;
++      }
++#endif
++
+       if (!mm)
+               return 0;
+@@ -1155,11 +1213,15 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
+       mpol_to_str(buffer, sizeof(buffer), pol, 0);
+       mpol_cond_put(pol);
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      seq_printf(m, "%08lx %s", PAX_RAND_FLAGS(vma->vm_mm) ? 0UL : vma->vm_start, buffer);
++#else
+       seq_printf(m, "%08lx %s", vma->vm_start, buffer);
++#endif
  
        if (file) {
                seq_printf(m, " file=");
@@ -48774,9 +48957,9 @@ index c7d4ee6..41c5564 100644
 +              seq_path(m, &file->f_path, "\n\t\\= ");
        } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
                seq_printf(m, " heap");
-       } else if (vma->vm_start <= mm->start_stack &&
+       } else {
 diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
-index 980de54..2a4db5f 100644
+index 74fe164..0848f95 100644
 --- a/fs/proc/task_nommu.c
 +++ b/fs/proc/task_nommu.c
 @@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
@@ -48788,15 +48971,24 @@ index 980de54..2a4db5f 100644
                sbytes += kobjsize(current->fs);
        else
                bytes += kobjsize(current->fs);
-@@ -166,7 +166,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma)
+@@ -168,7 +168,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
  
        if (file) {
                pad_len_spaces(m, len);
 -              seq_path(m, &file->f_path, "");
 +              seq_path(m, &file->f_path, "\n\\");
        } else if (mm) {
-               if (vma->vm_start <= mm->start_stack &&
-                       vma->vm_end >= mm->start_stack) {
+               pid_t tid = vm_is_stack(priv->task, vma, is_pid);
+@@ -223,7 +223,7 @@ static void *m_start(struct seq_file *m, loff_t *pos)
+       if (!priv->task)
+               return ERR_PTR(-ESRCH);
+-      mm = mm_for_maps(priv->task);
++      mm = mm_access(priv->task, PTRACE_MODE_READ);
+       if (!mm || IS_ERR(mm)) {
+               put_task_struct(priv->task);
+               priv->task = NULL;
 diff --git a/fs/quota/netlink.c b/fs/quota/netlink.c
 index d67908b..d13f6a6 100644
 --- a/fs/quota/netlink.c
@@ -48820,7 +49012,7 @@ index d67908b..d13f6a6 100644
        if (!msg_head) {
                printk(KERN_ERR
 diff --git a/fs/readdir.c b/fs/readdir.c
-index 356f715..c918d38 100644
+index cc0a822..43cb195 100644
 --- a/fs/readdir.c
 +++ b/fs/readdir.c
 @@ -17,6 +17,7 @@
@@ -48921,21 +49113,8 @@ index 356f715..c918d38 100644
                if (__put_user(d_off, &lastdirent->d_off))
                        error = -EFAULT;
                else
-diff --git a/fs/reiserfs/dir.c b/fs/reiserfs/dir.c
-index 133e935..349ef18 100644
---- a/fs/reiserfs/dir.c
-+++ b/fs/reiserfs/dir.c
-@@ -75,6 +75,8 @@ int reiserfs_readdir_dentry(struct dentry *dentry, void *dirent,
-       struct reiserfs_dir_entry de;
-       int ret = 0;
-+      pax_track_stack();
-+
-       reiserfs_write_lock(inode->i_sb);
-       reiserfs_check_lock_depth(inode->i_sb, "readdir");
 diff --git a/fs/reiserfs/do_balan.c b/fs/reiserfs/do_balan.c
-index 60c0804..d814f98 100644
+index 2b7882b..1c5ef48 100644
 --- a/fs/reiserfs/do_balan.c
 +++ b/fs/reiserfs/do_balan.c
 @@ -2051,7 +2051,7 @@ void do_balance(struct tree_balance *tb, /* tree_balance structure */
@@ -48947,37 +49126,11 @@ index 60c0804..d814f98 100644
        do_balance_starts(tb);
  
        /* balance leaf returns 0 except if combining L R and S into
-diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c
-index a159ba5..0396a76 100644
---- a/fs/reiserfs/journal.c
-+++ b/fs/reiserfs/journal.c
-@@ -2289,6 +2289,8 @@ static struct buffer_head *reiserfs_breada(struct block_device *dev,
-       struct buffer_head *bh;
-       int i, j;
-+      pax_track_stack();
-+
-       bh = __getblk(dev, block, bufsize);
-       if (buffer_uptodate(bh))
-               return (bh);
-diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c
-index ef39232..0fa91ba 100644
---- a/fs/reiserfs/namei.c
-+++ b/fs/reiserfs/namei.c
-@@ -1225,6 +1225,8 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry,
-       unsigned long savelink = 1;
-       struct timespec ctime;
-+      pax_track_stack();
-+
-       /* three balancings: (1) old name removal, (2) new name insertion
-          and (3) maybe "save" link insertion
-          stat data updates: (1) old directory,
 diff --git a/fs/reiserfs/procfs.c b/fs/reiserfs/procfs.c
-index 7a99811..2c9286f 100644
+index 2c1ade6..8c59d8d 100644
 --- a/fs/reiserfs/procfs.c
 +++ b/fs/reiserfs/procfs.c
-@@ -113,7 +113,7 @@ static int show_super(struct seq_file *m, struct super_block *sb)
+@@ -112,7 +112,7 @@ static int show_super(struct seq_file *m, struct super_block *sb)
                   "SMALL_TAILS " : "NO_TAILS ",
                   replay_only(sb) ? "REPLAY_ONLY " : "",
                   convert_reiserfs(sb) ? "CONV " : "",
@@ -48986,162 +49139,107 @@ index 7a99811..2c9286f 100644
                   SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes),
                   SF(s_do_balance), SF(s_unneeded_left_neighbor),
                   SF(s_good_search_by_key_reada), SF(s_bmaps),
-@@ -299,6 +299,8 @@ static int show_journal(struct seq_file *m, struct super_block *sb)
-       struct journal_params *jp = &rs->s_v1.s_journal;
-       char b[BDEVNAME_SIZE];
-+      pax_track_stack();
-+
-       seq_printf(m,           /* on-disk fields */
-                  "jp_journal_1st_block: \t%i\n"
-                  "jp_journal_dev: \t%s[%x]\n"
-diff --git a/fs/reiserfs/stree.c b/fs/reiserfs/stree.c
-index 313d39d..3a5811b 100644
---- a/fs/reiserfs/stree.c
-+++ b/fs/reiserfs/stree.c
-@@ -1196,6 +1196,8 @@ int reiserfs_delete_item(struct reiserfs_transaction_handle *th,
-       int iter = 0;
- #endif
-+      pax_track_stack();
-+
-       BUG_ON(!th->t_trans_id);
-       init_tb_struct(th, &s_del_balance, sb, path,
-@@ -1333,6 +1335,8 @@ void reiserfs_delete_solid_item(struct reiserfs_transaction_handle *th,
-       int retval;
-       int quota_cut_bytes = 0;
-+      pax_track_stack();
-+
-       BUG_ON(!th->t_trans_id);
-       le_key2cpu_key(&cpu_key, key);
-@@ -1562,6 +1566,8 @@ int reiserfs_cut_from_item(struct reiserfs_transaction_handle *th,
-       int quota_cut_bytes;
-       loff_t tail_pos = 0;
-+      pax_track_stack();
-+
-       BUG_ON(!th->t_trans_id);
-       init_tb_struct(th, &s_cut_balance, inode->i_sb, path,
-@@ -1957,6 +1963,8 @@ int reiserfs_paste_into_item(struct reiserfs_transaction_handle *th, struct tree
-       int retval;
-       int fs_gen;
-+      pax_track_stack();
-+
-       BUG_ON(!th->t_trans_id);
-       fs_gen = get_generation(inode->i_sb);
-@@ -2045,6 +2053,8 @@ int reiserfs_insert_item(struct reiserfs_transaction_handle *th,
-       int fs_gen = 0;
-       int quota_bytes = 0;
-+      pax_track_stack();
-+
-       BUG_ON(!th->t_trans_id);
-       if (inode) {            /* Do we count quotas for item? */
-diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
-index 14363b9..dd95a04 100644
---- a/fs/reiserfs/super.c
-+++ b/fs/reiserfs/super.c
-@@ -927,6 +927,8 @@ static int reiserfs_parse_options(struct super_block *s, char *options,    /* strin
-               {.option_name = NULL}
-       };
+diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h
+index a59d271..e12d1cf 100644
+--- a/fs/reiserfs/reiserfs.h
++++ b/fs/reiserfs/reiserfs.h
+@@ -453,7 +453,7 @@ struct reiserfs_sb_info {
+       /* Comment? -Hans */
+       wait_queue_head_t s_wait;
+       /* To be obsoleted soon by per buffer seals.. -Hans */
+-      atomic_t s_generation_counter;  // increased by one every time the
++      atomic_unchecked_t s_generation_counter;        // increased by one every time the
+       // tree gets re-balanced
+       unsigned long s_properties;     /* File system properties. Currently holds
+                                          on-disk FS format */
+@@ -1973,7 +1973,7 @@ static inline loff_t max_reiserfs_offset(struct inode *inode)
+ #define REISERFS_USER_MEM             1       /* reiserfs user memory mode            */
  
-+      pax_track_stack();
-+
-       *blocks = 0;
-       if (!options || !*options)
-               /* use default configuration: create tails, journaling on, no
+ #define fs_generation(s) (REISERFS_SB(s)->s_generation_counter)
+-#define get_generation(s) atomic_read (&fs_generation(s))
++#define get_generation(s) atomic_read_unchecked (&fs_generation(s))
+ #define FILESYSTEM_CHANGED_TB(tb)  (get_generation((tb)->tb_sb) != (tb)->fs_gen)
+ #define __fs_changed(gen,s) (gen != get_generation (s))
+ #define fs_changed(gen,s)             \
 diff --git a/fs/select.c b/fs/select.c
-index d33418f..f8e06bc 100644
+index 17d33d0..da0bf5c 100644
 --- a/fs/select.c
 +++ b/fs/select.c
 @@ -20,6 +20,7 @@
- #include <linux/module.h>
+ #include <linux/export.h>
  #include <linux/slab.h>
  #include <linux/poll.h>
 +#include <linux/security.h>
  #include <linux/personality.h> /* for STICKY_TIMEOUTS */
  #include <linux/file.h>
  #include <linux/fdtable.h>
-@@ -403,6 +404,8 @@ int do_select(int n, fd_set_bits *fds, struct timespec *end_time)
-       int retval, i, timed_out = 0;
-       unsigned long slack = 0;
-+      pax_track_stack();
-+
-       rcu_read_lock();
-       retval = max_select_fd(n, fds);
-       rcu_read_unlock();
-@@ -528,6 +531,8 @@ int core_sys_select(int n, fd_set __user *inp, fd_set __user *outp,
-       /* Allocate small arguments on the stack to save memory and be faster */
-       long stack_fds[SELECT_STACK_ALLOC/sizeof(long)];
-+      pax_track_stack();
-+
-       ret = -EINVAL;
-       if (n < 0)
-               goto out_nofds;
-@@ -837,6 +842,9 @@ int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds,
+@@ -833,6 +834,7 @@ int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds,
        struct poll_list *walk = head;
        unsigned long todo = nfds;
  
-+      pax_track_stack();
-+
 +      gr_learn_resource(current, RLIMIT_NOFILE, nfds, 1);
        if (nfds > rlimit(RLIMIT_NOFILE))
                return -EINVAL;
  
 diff --git a/fs/seq_file.c b/fs/seq_file.c
-index 05d6b0e..ee96362 100644
+index 0cbd049..64e705c 100644
 --- a/fs/seq_file.c
 +++ b/fs/seq_file.c
-@@ -76,7 +76,8 @@ static int traverse(struct seq_file *m, loff_t offset)
+@@ -9,6 +9,7 @@
+ #include <linux/export.h>
+ #include <linux/seq_file.h>
+ #include <linux/slab.h>
++#include <linux/sched.h>
+ #include <asm/uaccess.h>
+ #include <asm/page.h>
+@@ -56,6 +57,9 @@ int seq_open(struct file *file, const struct seq_operations *op)
+       memset(p, 0, sizeof(*p));
+       mutex_init(&p->lock);
+       p->op = op;
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      p->exec_id = current->exec_id;
++#endif
+       /*
+        * Wrappers around seq_open(e.g. swaps_open) need to be
+@@ -92,7 +96,7 @@ static int traverse(struct seq_file *m, loff_t offset)
                return 0;
        }
        if (!m->buf) {
 -              m->buf = kmalloc(m->size = PAGE_SIZE, GFP_KERNEL);
-+              m->size = PAGE_SIZE;
-+              m->buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
++              m->buf = kmalloc(m->size = PAGE_SIZE, GFP_KERNEL | GFP_USERCOPY);
                if (!m->buf)
                        return -ENOMEM;
        }
-@@ -116,7 +117,8 @@ static int traverse(struct seq_file *m, loff_t offset)
+@@ -132,7 +136,7 @@ static int traverse(struct seq_file *m, loff_t offset)
  Eoverflow:
        m->op->stop(m, p);
        kfree(m->buf);
 -      m->buf = kmalloc(m->size <<= 1, GFP_KERNEL);
-+      m->size <<= 1;
-+      m->buf = kmalloc(m->size, GFP_KERNEL);
++      m->buf = kmalloc(m->size <<= 1, GFP_KERNEL | GFP_USERCOPY);
        return !m->buf ? -ENOMEM : -EAGAIN;
  }
  
-@@ -169,7 +171,8 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
-       m->version = file->f_version;
+@@ -187,7 +191,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
        /* grab buffer if we didn't have one */
        if (!m->buf) {
 -              m->buf = kmalloc(m->size = PAGE_SIZE, GFP_KERNEL);
-+              m->size = PAGE_SIZE;
-+              m->buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
++              m->buf = kmalloc(m->size = PAGE_SIZE, GFP_KERNEL | GFP_USERCOPY);
                if (!m->buf)
                        goto Enomem;
        }
-@@ -210,7 +213,8 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
+@@ -228,7 +232,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
                        goto Fill;
                m->op->stop(m, p);
                kfree(m->buf);
 -              m->buf = kmalloc(m->size <<= 1, GFP_KERNEL);
-+              m->size <<= 1;
-+              m->buf = kmalloc(m->size, GFP_KERNEL);
++              m->buf = kmalloc(m->size <<= 1, GFP_KERNEL | GFP_USERCOPY);
                if (!m->buf)
                        goto Enomem;
                m->count = 0;
-@@ -549,7 +553,7 @@ static void single_stop(struct seq_file *p, void *v)
+@@ -567,7 +571,7 @@ static void single_stop(struct seq_file *p, void *v)
  int single_open(struct file *file, int (*show)(struct seq_file *, void *),
                void *data)
  {
@@ -49151,7 +49249,7 @@ index 05d6b0e..ee96362 100644
  
        if (op) {
 diff --git a/fs/splice.c b/fs/splice.c
-index fa2defa..9a697a5 100644
+index 5cac690..f833a99 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -194,7 +194,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
@@ -49175,16 +49273,7 @@ index fa2defa..9a697a5 100644
        }
  
        pipe_unlock(pipe);
-@@ -320,6 +320,8 @@ __generic_file_splice_read(struct file *in, loff_t *ppos,
-               .spd_release = spd_release_page,
-       };
-+      pax_track_stack();
-+
-       if (splice_grow_spd(pipe, &spd))
-               return -ENOMEM;
-@@ -560,7 +562,7 @@ static ssize_t kernel_readv(struct file *file, const struct iovec *vec,
+@@ -563,7 +563,7 @@ static ssize_t kernel_readv(struct file *file, const struct iovec *vec,
        old_fs = get_fs();
        set_fs(get_ds());
        /* The cast to a user pointer is valid due to the set_fs() */
@@ -49193,7 +49282,7 @@ index fa2defa..9a697a5 100644
        set_fs(old_fs);
  
        return res;
-@@ -575,7 +577,7 @@ static ssize_t kernel_write(struct file *file, const char *buf, size_t count,
+@@ -578,7 +578,7 @@ static ssize_t kernel_write(struct file *file, const char *buf, size_t count,
        old_fs = get_fs();
        set_fs(get_ds());
        /* The cast to a user pointer is valid due to the set_fs() */
@@ -49202,16 +49291,7 @@ index fa2defa..9a697a5 100644
        set_fs(old_fs);
  
        return res;
-@@ -603,6 +605,8 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
-               .spd_release = spd_release_page,
-       };
-+      pax_track_stack();
-+
-       if (splice_grow_spd(pipe, &spd))
-               return -ENOMEM;
-@@ -626,7 +630,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
+@@ -630,7 +630,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
                        goto err;
  
                this_len = min_t(size_t, len, PAGE_CACHE_SIZE - offset);
@@ -49220,7 +49300,7 @@ index fa2defa..9a697a5 100644
                vec[i].iov_len = this_len;
                spd.pages[i] = page;
                spd.nr_pages++;
-@@ -846,10 +850,10 @@ EXPORT_SYMBOL(splice_from_pipe_feed);
+@@ -849,10 +849,10 @@ EXPORT_SYMBOL(splice_from_pipe_feed);
  int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_desc *sd)
  {
        while (!pipe->nrbufs) {
@@ -49233,7 +49313,7 @@ index fa2defa..9a697a5 100644
                        return 0;
  
                if (sd->flags & SPLICE_F_NONBLOCK)
-@@ -1182,7 +1186,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
+@@ -1185,7 +1185,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
                 * out of the pipe right after the splice_to_pipe(). So set
                 * PIPE_READERS appropriately.
                 */
@@ -49242,16 +49322,7 @@ index fa2defa..9a697a5 100644
  
                current->splice_pipe = pipe;
        }
-@@ -1619,6 +1623,8 @@ static long vmsplice_to_pipe(struct file *file, const struct iovec __user *iov,
-       };
-       long ret;
-+      pax_track_stack();
-+
-       pipe = get_pipe_info(file);
-       if (!pipe)
-               return -EBADF;
-@@ -1734,9 +1740,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
+@@ -1738,9 +1738,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
                        ret = -ERESTARTSYS;
                        break;
                }
@@ -49263,7 +49334,7 @@ index fa2defa..9a697a5 100644
                        if (flags & SPLICE_F_NONBLOCK) {
                                ret = -EAGAIN;
                                break;
-@@ -1768,7 +1774,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
+@@ -1772,7 +1772,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
        pipe_lock(pipe);
  
        while (pipe->nrbufs >= pipe->buffers) {
@@ -49272,7 +49343,7 @@ index fa2defa..9a697a5 100644
                        send_sig(SIGPIPE, current, 0);
                        ret = -EPIPE;
                        break;
-@@ -1781,9 +1787,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
+@@ -1785,9 +1785,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
                        ret = -ERESTARTSYS;
                        break;
                }
@@ -49284,7 +49355,7 @@ index fa2defa..9a697a5 100644
        }
  
        pipe_unlock(pipe);
-@@ -1819,14 +1825,14 @@ retry:
+@@ -1823,14 +1823,14 @@ retry:
        pipe_double_lock(ipipe, opipe);
  
        do {
@@ -49301,7 +49372,7 @@ index fa2defa..9a697a5 100644
                        break;
  
                /*
-@@ -1923,7 +1929,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
+@@ -1927,7 +1927,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
        pipe_double_lock(ipipe, opipe);
  
        do {
@@ -49310,7 +49381,7 @@ index fa2defa..9a697a5 100644
                        send_sig(SIGPIPE, current, 0);
                        if (!ret)
                                ret = -EPIPE;
-@@ -1968,7 +1974,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
+@@ -1972,7 +1972,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
         * return EAGAIN if we have the potential of some data in the
         * future, otherwise just return 0
         */
@@ -49319,8 +49390,31 @@ index fa2defa..9a697a5 100644
                ret = -EAGAIN;
  
        pipe_unlock(ipipe);
+diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
+index 35a36d3..23424b2 100644
+--- a/fs/sysfs/dir.c
++++ b/fs/sysfs/dir.c
+@@ -657,6 +657,18 @@ static int create_dir(struct kobject *kobj, struct sysfs_dirent *parent_sd,
+       struct sysfs_dirent *sd;
+       int rc;
++#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
++      const char *parent_name = parent_sd->s_name;
++
++      mode = S_IFDIR | S_IRWXU;
++
++      if ((!strcmp(parent_name, "") && (!strcmp(name, "devices") || !strcmp(name, "fs"))) ||
++          (!strcmp(parent_name, "devices") && !strcmp(name, "system")) ||
++          (!strcmp(parent_name, "fs") && (!strcmp(name, "selinux") || !strcmp(name, "fuse"))) ||
++          (!strcmp(parent_name, "system") && !strcmp(name, "cpu")))
++              mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
++#endif
++
+       /* allocate */
+       sd = sysfs_new_dirent(name, mode, SYSFS_DIR);
+       if (!sd)
 diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
-index 1ad8c93..6633545 100644
+index 00012e3..8392349 100644
 --- a/fs/sysfs/file.c
 +++ b/fs/sysfs/file.c
 @@ -37,7 +37,7 @@ static DEFINE_SPINLOCK(sysfs_open_dirent_lock);
@@ -49368,22 +49462,6 @@ index 1ad8c93..6633545 100644
                wake_up_interruptible(&od->poll);
        }
  
-diff --git a/fs/sysfs/mount.c b/fs/sysfs/mount.c
-index e34f0d9..740ea7b 100644
---- a/fs/sysfs/mount.c
-+++ b/fs/sysfs/mount.c
-@@ -36,7 +36,11 @@ struct sysfs_dirent sysfs_root = {
-       .s_name         = "",
-       .s_count        = ATOMIC_INIT(1),
-       .s_flags        = SYSFS_DIR | (KOBJ_NS_TYPE_NONE << SYSFS_NS_TYPE_SHIFT),
-+#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
-+      .s_mode         = S_IFDIR | S_IRWXU,
-+#else
-       .s_mode         = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO,
-+#endif
-       .s_ino          = 1,
- };
 diff --git a/fs/sysfs/symlink.c b/fs/sysfs/symlink.c
 index a7ac78f..02158e1 100644
 --- a/fs/sysfs/symlink.c
@@ -49397,24 +49475,11 @@ index a7ac78f..02158e1 100644
        if (!IS_ERR(page))
                free_page((unsigned long)page);
  }
-diff --git a/fs/udf/inode.c b/fs/udf/inode.c
-index 1d1358e..408bedb 100644
---- a/fs/udf/inode.c
-+++ b/fs/udf/inode.c
-@@ -560,6 +560,8 @@ static struct buffer_head *inode_getblk(struct inode *inode, sector_t block,
-       int goal = 0, pgoal = iinfo->i_location.logicalBlockNum;
-       int lastblock = 0;
-+      pax_track_stack();
-+
-       prev_epos.offset = udf_file_entry_alloc_offset(inode);
-       prev_epos.block = iinfo->i_location;
-       prev_epos.bh = NULL;
 diff --git a/fs/udf/misc.c b/fs/udf/misc.c
-index 9215700..bf1f68e 100644
+index c175b4d..8f36a16 100644
 --- a/fs/udf/misc.c
 +++ b/fs/udf/misc.c
-@@ -286,7 +286,7 @@ void udf_new_tag(char *data, uint16_t ident, uint16_t version, uint16_t snum,
+@@ -289,7 +289,7 @@ void udf_new_tag(char *data, uint16_t ident, uint16_t version, uint16_t snum,
  
  u8 udf_tag_checksum(const struct tag *t)
  {
@@ -49449,10 +49514,10 @@ index ba653f3..06ea4b1 100644
        error = notify_change(path->dentry, &newattrs);
        mutex_unlock(&inode->i_mutex);
 diff --git a/fs/xattr.c b/fs/xattr.c
-index f060663..def7007 100644
+index 3c8c1cc..a83c398 100644
 --- a/fs/xattr.c
 +++ b/fs/xattr.c
-@@ -254,7 +254,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr);
+@@ -316,7 +316,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr);
   * Extended attribute SET operations
   */
  static long
@@ -49461,8 +49526,8 @@ index f060663..def7007 100644
         size_t size, int flags)
  {
        int error;
-@@ -278,7 +278,13 @@ setxattr(struct dentry *d, const char __user *name, const void __user *value,
-                       return PTR_ERR(kvalue);
+@@ -349,7 +349,12 @@ setxattr(struct dentry *d, const char __user *name, const void __user *value,
+               }
        }
  
 -      error = vfs_setxattr(d, kname, kvalue, size, flags);
@@ -49472,11 +49537,10 @@ index f060663..def7007 100644
 +      }
 +
 +      error = vfs_setxattr(path->dentry, kname, kvalue, size, flags);
-+out:
-       kfree(kvalue);
-       return error;
- }
-@@ -295,7 +301,7 @@ SYSCALL_DEFINE5(setxattr, const char __user *, pathname,
+ out:
+       if (vvalue)
+               vfree(vvalue);
+@@ -370,7 +375,7 @@ SYSCALL_DEFINE5(setxattr, const char __user *, pathname,
                return error;
        error = mnt_want_write(path.mnt);
        if (!error) {
@@ -49485,7 +49549,7 @@ index f060663..def7007 100644
                mnt_drop_write(path.mnt);
        }
        path_put(&path);
-@@ -314,7 +320,7 @@ SYSCALL_DEFINE5(lsetxattr, const char __user *, pathname,
+@@ -389,7 +394,7 @@ SYSCALL_DEFINE5(lsetxattr, const char __user *, pathname,
                return error;
        error = mnt_want_write(path.mnt);
        if (!error) {
@@ -49494,7 +49558,7 @@ index f060663..def7007 100644
                mnt_drop_write(path.mnt);
        }
        path_put(&path);
-@@ -325,17 +331,15 @@ SYSCALL_DEFINE5(fsetxattr, int, fd, const char __user *, name,
+@@ -400,17 +405,15 @@ SYSCALL_DEFINE5(fsetxattr, int, fd, const char __user *, name,
                const void __user *,value, size_t, size, int, flags)
  {
        struct file *f;
@@ -49511,11 +49575,11 @@ index f060663..def7007 100644
        if (!error) {
 -              error = setxattr(dentry, name, value, size, flags);
 +              error = setxattr(&f->f_path, name, value, size, flags);
-               mnt_drop_write(f->f_path.mnt);
+               mnt_drop_write_file(f);
        }
        fput(f);
 diff --git a/fs/xattr_acl.c b/fs/xattr_acl.c
-index 8d5a506..7f62712 100644
+index 69d06b0..c0996e5 100644
 --- a/fs/xattr_acl.c
 +++ b/fs/xattr_acl.c
 @@ -17,8 +17,8 @@
@@ -49530,10 +49594,10 @@ index 8d5a506..7f62712 100644
        struct posix_acl *acl;
        struct posix_acl_entry *acl_e;
 diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
-index 452a291..91a95f3b 100644
+index 85e7e32..5344e52 100644
 --- a/fs/xfs/xfs_bmap.c
 +++ b/fs/xfs/xfs_bmap.c
-@@ -250,7 +250,7 @@ xfs_bmap_validate_ret(
+@@ -190,7 +190,7 @@ xfs_bmap_validate_ret(
        int                     nmap,
        int                     ret_nmap);
  #else
@@ -49564,7 +49628,7 @@ index 79d05e8..e3e5861 100644
                        *offset = off & 0x7fffffff;
                        return 0;
 diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
-index f7ce7de..e1a5db0 100644
+index 91f8ff5..0ce68f9 100644
 --- a/fs/xfs/xfs_ioctl.c
 +++ b/fs/xfs/xfs_ioctl.c
 @@ -128,7 +128,7 @@ xfs_find_handle(
@@ -49577,10 +49641,10 @@ index f7ce7de..e1a5db0 100644
                goto out_put;
  
 diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
-index 474920b..97169a9 100644
+index 3011b87..1ab03e9 100644
 --- a/fs/xfs/xfs_iops.c
 +++ b/fs/xfs/xfs_iops.c
-@@ -446,7 +446,7 @@ xfs_vn_put_link(
+@@ -397,7 +397,7 @@ xfs_vn_put_link(
        struct nameidata *nd,
        void            *p)
  {
@@ -49591,219 +49655,19 @@ index 474920b..97169a9 100644
                kfree(s);
 diff --git a/grsecurity/Kconfig b/grsecurity/Kconfig
 new file mode 100644
-index 0000000..9629731
+index 0000000..4d533f1
 --- /dev/null
 +++ b/grsecurity/Kconfig
-@@ -0,0 +1,1037 @@
+@@ -0,0 +1,941 @@
 +#
 +# grecurity configuration
 +#
-+
-+menu "Grsecurity"
-+
-+config GRKERNSEC
-+      bool "Grsecurity"
-+      select CRYPTO
-+      select CRYPTO_SHA256
-+      help
-+        If you say Y here, you will be able to configure many features
-+        that will enhance the security of your system.  It is highly
-+        recommended that you say Y here and read through the help
-+        for each option so that you fully understand the features and
-+        can evaluate their usefulness for your machine.
-+
-+choice
-+      prompt "Security Level"
-+      depends on GRKERNSEC
-+      default GRKERNSEC_CUSTOM
-+
-+config GRKERNSEC_LOW
-+      bool "Low"
-+      select GRKERNSEC_LINK
-+      select GRKERNSEC_FIFO
-+      select GRKERNSEC_RANDNET
-+      select GRKERNSEC_DMESG
-+      select GRKERNSEC_CHROOT
-+      select GRKERNSEC_CHROOT_CHDIR
-+
-+      help
-+        If you choose this option, several of the grsecurity options will
-+        be enabled that will give you greater protection against a number
-+        of attacks, while assuring that none of your software will have any
-+        conflicts with the additional security measures.  If you run a lot
-+        of unusual software, or you are having problems with the higher
-+        security levels, you should say Y here.  With this option, the
-+        following features are enabled:
-+
-+        - Linking restrictions
-+        - FIFO restrictions
-+        - Restricted dmesg
-+        - Enforced chdir("/") on chroot
-+        - Runtime module disabling
-+
-+config GRKERNSEC_MEDIUM
-+      bool "Medium"
-+      select PAX
-+      select PAX_EI_PAX
-+      select PAX_PT_PAX_FLAGS
-+      select PAX_HAVE_ACL_FLAGS
-+      select GRKERNSEC_PROC_MEMMAP if (PAX_NOEXEC || PAX_ASLR)
-+      select GRKERNSEC_CHROOT
-+      select GRKERNSEC_CHROOT_SYSCTL
-+      select GRKERNSEC_LINK
-+      select GRKERNSEC_FIFO
-+      select GRKERNSEC_DMESG
-+      select GRKERNSEC_RANDNET
-+      select GRKERNSEC_FORKFAIL
-+      select GRKERNSEC_TIME
-+      select GRKERNSEC_SIGNAL
-+      select GRKERNSEC_CHROOT
-+      select GRKERNSEC_CHROOT_UNIX
-+      select GRKERNSEC_CHROOT_MOUNT
-+      select GRKERNSEC_CHROOT_PIVOT
-+      select GRKERNSEC_CHROOT_DOUBLE
-+      select GRKERNSEC_CHROOT_CHDIR
-+      select GRKERNSEC_CHROOT_MKNOD
-+      select GRKERNSEC_PROC
-+      select GRKERNSEC_PROC_USERGROUP
-+      select PAX_RANDUSTACK
-+      select PAX_ASLR
-+      select PAX_RANDMMAP
-+      select PAX_REFCOUNT if (X86 || SPARC64)
-+      select PAX_USERCOPY if ((X86 || SPARC || PPC || ARM) && (SLAB || SLUB || SLOB))
-+
-+      help
-+        If you say Y here, several features in addition to those included
-+        in the low additional security level will be enabled.  These
-+        features provide even more security to your system, though in rare
-+        cases they may be incompatible with very old or poorly written
-+        software.  If you enable this option, make sure that your auth
-+        service (identd) is running as gid 1001.  With this option, 
-+        the following features (in addition to those provided in the 
-+        low additional security level) will be enabled:
-+
-+        - Failed fork logging
-+        - Time change logging
-+        - Signal logging
-+        - Deny mounts in chroot
-+        - Deny double chrooting
-+        - Deny sysctl writes in chroot
-+        - Deny mknod in chroot
-+        - Deny access to abstract AF_UNIX sockets out of chroot
-+        - Deny pivot_root in chroot
-+        - Denied reads/writes of /dev/kmem, /dev/mem, and /dev/port
-+        - /proc restrictions with special GID set to 10 (usually wheel)
-+        - Address Space Layout Randomization (ASLR)
-+        - Prevent exploitation of most refcount overflows
-+        - Bounds checking of copying between the kernel and userland
-+
-+config GRKERNSEC_HIGH
-+      bool "High"
-+      select GRKERNSEC_LINK
-+      select GRKERNSEC_FIFO
-+      select GRKERNSEC_DMESG
-+      select GRKERNSEC_FORKFAIL
-+      select GRKERNSEC_TIME
-+      select GRKERNSEC_SIGNAL
-+      select GRKERNSEC_CHROOT
-+      select GRKERNSEC_CHROOT_SHMAT
-+      select GRKERNSEC_CHROOT_UNIX
-+      select GRKERNSEC_CHROOT_MOUNT
-+      select GRKERNSEC_CHROOT_FCHDIR
-+      select GRKERNSEC_CHROOT_PIVOT
-+      select GRKERNSEC_CHROOT_DOUBLE
-+      select GRKERNSEC_CHROOT_CHDIR
-+      select GRKERNSEC_CHROOT_MKNOD
-+      select GRKERNSEC_CHROOT_CAPS
-+      select GRKERNSEC_CHROOT_SYSCTL
-+      select GRKERNSEC_CHROOT_FINDTASK
-+      select GRKERNSEC_SYSFS_RESTRICT
-+      select GRKERNSEC_PROC
-+      select GRKERNSEC_PROC_MEMMAP if (PAX_NOEXEC || PAX_ASLR)
-+      select GRKERNSEC_HIDESYM
-+      select GRKERNSEC_BRUTE
-+      select GRKERNSEC_PROC_USERGROUP
-+      select GRKERNSEC_KMEM
-+      select GRKERNSEC_RESLOG
-+      select GRKERNSEC_RANDNET
-+      select GRKERNSEC_PROC_ADD
-+      select GRKERNSEC_CHROOT_CHMOD
-+      select GRKERNSEC_CHROOT_NICE
-+      select GRKERNSEC_AUDIT_MOUNT
-+      select GRKERNSEC_MODHARDEN if (MODULES)
-+      select GRKERNSEC_HARDEN_PTRACE
-+      select GRKERNSEC_VM86 if (X86_32)
-+      select GRKERNSEC_KERN_LOCKOUT if (X86 || ARM || PPC || SPARC)
-+      select PAX
-+      select PAX_RANDUSTACK
-+      select PAX_ASLR
-+      select PAX_RANDMMAP
-+      select PAX_NOEXEC
-+      select PAX_MPROTECT
-+      select PAX_EI_PAX
-+      select PAX_PT_PAX_FLAGS
-+      select PAX_HAVE_ACL_FLAGS
-+      select PAX_KERNEXEC if ((PPC || X86) && (!X86_32 || X86_WP_WORKS_OK) && !XEN)
-+      select PAX_MEMORY_UDEREF if (X86 && !XEN)
-+      select PAX_RANDKSTACK if (X86_TSC && X86)
-+      select PAX_SEGMEXEC if (X86_32)
-+      select PAX_PAGEEXEC
-+      select PAX_EMUPLT if (ALPHA || PARISC || SPARC)
-+      select PAX_EMUTRAMP if (PARISC)
-+      select PAX_EMUSIGRT if (PARISC)
-+      select PAX_ETEXECRELOCS if (ALPHA || IA64 || PARISC)
-+      select PAX_ELFRELOCS if (PAX_ETEXECRELOCS || (IA64 || PPC || X86))
-+      select PAX_REFCOUNT if (X86 || SPARC64)
-+      select PAX_USERCOPY if ((X86 || PPC || SPARC || ARM) && (SLAB || SLUB || SLOB))
-+      help
-+        If you say Y here, many of the features of grsecurity will be
-+        enabled, which will protect you against many kinds of attacks
-+        against your system.  The heightened security comes at a cost
-+        of an increased chance of incompatibilities with rare software
-+        on your machine.  Since this security level enables PaX, you should
-+        view <http://pax.grsecurity.net> and read about the PaX
-+        project.  While you are there, download chpax and run it on
-+        binaries that cause problems with PaX.  Also remember that
-+        since the /proc restrictions are enabled, you must run your
-+        identd as gid 1001.  This security level enables the following 
-+        features in addition to those listed in the low and medium 
-+        security levels:
-+
-+        - Additional /proc restrictions
-+        - Chmod restrictions in chroot
-+        - No signals, ptrace, or viewing of processes outside of chroot
-+        - Capability restrictions in chroot
-+        - Deny fchdir out of chroot
-+        - Priority restrictions in chroot
-+        - Segmentation-based implementation of PaX
-+        - Mprotect restrictions
-+        - Removal of addresses from /proc/<pid>/[smaps|maps|stat]
-+        - Kernel stack randomization
-+        - Mount/unmount/remount logging
-+        - Kernel symbol hiding
-+        - Hardening of module auto-loading
-+        - Ptrace restrictions
-+        - Restricted vm86 mode
-+        - Restricted sysfs/debugfs
-+        - Active kernel exploit response
-+
-+config GRKERNSEC_CUSTOM
-+      bool "Custom"
-+      help
-+        If you say Y here, you will be able to configure every grsecurity
-+        option, which allows you to enable many more features that aren't
-+        covered in the basic security levels.  These additional features
-+        include TPE, socket restrictions, and the sysctl system for
-+        grsecurity.  It is advised that you read through the help for
-+        each option to determine its usefulness in your situation.
-+
-+endchoice
-+
-+menu "Address Space Protection"
++menu "Memory Protections"
 +depends on GRKERNSEC
 +
 +config GRKERNSEC_KMEM
 +      bool "Deny reading/writing to /dev/kmem, /dev/mem, and /dev/port"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      select STRICT_DEVMEM if (X86 || ARM || TILE || S390)
 +      help
 +        If you say Y here, /dev/kmem and /dev/mem won't be allowed to
@@ -49825,6 +49689,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_VM86
 +      bool "Restrict VM86 mode"
++      default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
 +      depends on X86_32
 +
 +      help
@@ -49838,6 +49703,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_IO
 +      bool "Disable privileged I/O"
++      default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
 +      depends on X86
 +      select RTC_CLASS
 +      select RTC_INTF_DEV
@@ -49856,19 +49722,28 @@ index 0000000..9629731
 +        protect your kernel against modification, use the RBAC system.
 +
 +config GRKERNSEC_PROC_MEMMAP
-+      bool "Remove addresses from /proc/<pid>/[smaps|maps|stat]"
-+      default y if (PAX_NOEXEC || PAX_ASLR)
++      bool "Harden ASLR against information leaks and entropy reduction"
++      default y if (GRKERNSEC_CONFIG_AUTO || PAX_NOEXEC || PAX_ASLR)
 +      depends on PAX_NOEXEC || PAX_ASLR
 +      help
 +        If you say Y here, the /proc/<pid>/maps and /proc/<pid>/stat files will
 +        give no information about the addresses of its mappings if
 +        PaX features that rely on random addresses are enabled on the task.
-+        If you use PaX it is greatly recommended that you say Y here as it
-+        closes up a hole that makes the full ASLR useless for suid
-+        binaries.
++        In addition to sanitizing this information and disabling other
++        dangerous sources of information, this option causes reads of sensitive
++        /proc/<pid> entries where the file descriptor was opened in a different
++        task than the one performing the read.  Such attempts are logged.
++        This option also limits argv/env strings for suid/sgid binaries
++        to 512KB to prevent a complete exhaustion of the stack entropy provided
++        by ASLR.  Finally, it places an 8MB stack resource limit on suid/sgid
++        binaries to prevent alternative mmap layouts from being abused.
++
++        If you use PaX it is essential that you say Y here as it closes up
++        several holes that make full ASLR useless locally.
 +
 +config GRKERNSEC_BRUTE
 +      bool "Deter exploit bruteforcing"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, attempts to bruteforce exploits against forking
 +        daemons such as apache or sshd, as well as against suid/sgid binaries
@@ -49889,6 +49764,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_MODHARDEN
 +      bool "Harden module auto-loading"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on MODULES
 +      help
 +        If you say Y here, module auto-loading in response to use of some
@@ -49910,6 +49786,8 @@ index 0000000..9629731
 +
 +config GRKERNSEC_HIDESYM
 +      bool "Hide kernel symbols"
++      default y if GRKERNSEC_CONFIG_AUTO
++      select PAX_USERCOPY_SLABS
 +      help
 +        If you say Y here, getting information on loaded modules, and
 +        displaying all kernel symbols through a syscall will be restricted
@@ -49935,11 +49813,12 @@ index 0000000..9629731
 +
 +config GRKERNSEC_KERN_LOCKOUT
 +      bool "Active kernel exploit response"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on X86 || ARM || PPC || SPARC
 +      help
 +        If you say Y here, when a PaX alert is triggered due to suspicious
 +        activity in the kernel (from KERNEXEC/UDEREF/USERCOPY)
-+        or an OOPs occurs due to bad memory accesses, instead of just
++        or an OOPS occurs due to bad memory accesses, instead of just
 +        terminating the offending process (and potentially allowing
 +        a subsequent exploit from the same user), we will take one of two
 +        actions:
@@ -49998,6 +49877,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_PROC
 +      bool "Proc restrictions"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, the permissions of the /proc filesystem
 +        will be altered to enhance system security and privacy.  You MUST
@@ -50005,8 +49885,9 @@ index 0000000..9629731
 +        Depending upon the option you choose, you can either restrict users to
 +        see only the processes they themselves run, or choose a group that can
 +        view all processes and files normally restricted to root if you choose
-+        the "restrict to user only" option.  NOTE: If you're running identd as
-+        a non-root user, you will have to run it as the group you specify here.
++        the "restrict to user only" option.  NOTE: If you're running identd or
++        ntpd as a non-root user, you will have to run it as the group you
++        specify here.
 +
 +config GRKERNSEC_PROC_USER
 +      bool "Restrict /proc to user only"
@@ -50018,6 +49899,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_PROC_USERGROUP
 +      bool "Allow special group"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_PROC && !GRKERNSEC_PROC_USER
 +      help
 +        If you say Y here, you will be able to select a group that will be
@@ -50033,6 +49915,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_PROC_ADD
 +      bool "Additional restrictions"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_PROC_USER || GRKERNSEC_PROC_USERGROUP
 +      help
 +        If you say Y here, additional restrictions will be placed on
@@ -50041,6 +49924,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_LINK
 +      bool "Linking restrictions"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, /tmp race exploits will be prevented, since users
 +        will no longer be able to follow symlinks owned by other users in
@@ -50049,8 +49933,34 @@ index 0000000..9629731
 +        able to hardlink to files they do not own.  If the sysctl option is
 +        enabled, a sysctl option with name "linking_restrictions" is created.
 +
++config GRKERNSEC_SYMLINKOWN
++      bool "Kernel-enforced SymlinksIfOwnerMatch"
++      default y if GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER
++      help
++        Apache's SymlinksIfOwnerMatch option has an inherent race condition
++        that prevents it from being used as a security feature.  As Apache
++        verifies the symlink by performing a stat() against the target of
++        the symlink before it is followed, an attacker can setup a symlink
++        to point to a same-owned file, then replace the symlink with one
++        that targets another user's file just after Apache "validates" the
++        symlink -- a classic TOCTOU race.  If you say Y here, a complete,
++        race-free replacement for Apache's "SymlinksIfOwnerMatch" option
++        will be in place for the group you specify. If the sysctl option
++        is enabled, a sysctl option with name "enforce_symlinksifowner" is
++        created.
++
++config GRKERNSEC_SYMLINKOWN_GID
++      int "GID for users with kernel-enforced SymlinksIfOwnerMatch"
++      depends on GRKERNSEC_SYMLINKOWN
++      default 1006
++      help
++        Setting this GID determines what group kernel-enforced
++        SymlinksIfOwnerMatch will be enabled for.  If the sysctl option
++        is enabled, a sysctl option with name "symlinkown_gid" is created.
++
 +config GRKERNSEC_FIFO
 +      bool "FIFO restrictions"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, users will not be able to write to FIFOs they don't
 +        own in world-writable +t directories (e.g. /tmp), unless the owner of
@@ -50060,18 +49970,23 @@ index 0000000..9629731
 +
 +config GRKERNSEC_SYSFS_RESTRICT
 +      bool "Sysfs/debugfs restriction"
++      default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
 +      depends on SYSFS
 +      help
 +        If you say Y here, sysfs (the pseudo-filesystem mounted at /sys) and
-+        any filesystem normally mounted under it (e.g. debugfs) will only
-+        be accessible by root.  These filesystems generally provide access
++        any filesystem normally mounted under it (e.g. debugfs) will be
++        mostly accessible only by root.  These filesystems generally provide access
 +        to hardware and debug information that isn't appropriate for unprivileged
 +        users of the system.  Sysfs and debugfs have also become a large source
 +        of new vulnerabilities, ranging from infoleaks to local compromise.
 +        There has been very little oversight with an eye toward security involved
 +        in adding new exporters of information to these filesystems, so their
 +        use is discouraged.
-+        This option is equivalent to a chmod 0700 of the mount paths.
++        For reasons of compatibility, a few directories have been whitelisted
++        for access by non-root users:
++        /sys/fs/selinux
++        /sys/fs/fuse
++        /sys/devices/system/cpu
 +
 +config GRKERNSEC_ROFS
 +      bool "Runtime read-only mount protection"
@@ -50089,6 +50004,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT
 +      bool "Chroot jail restrictions"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, you will be able to choose several options that will
 +        make breaking out of a chrooted jail much more difficult.  If you
@@ -50097,6 +50013,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_MOUNT
 +      bool "Deny mounts"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, processes inside a chroot will not be able to
@@ -50105,6 +50022,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_DOUBLE
 +      bool "Deny double-chroots"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, processes inside a chroot will not be able to chroot
@@ -50115,6 +50033,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_PIVOT
 +      bool "Deny pivot_root in chroot"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, processes inside a chroot will not be able to use
@@ -50127,6 +50046,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_CHDIR
 +      bool "Enforce chdir(\"/\") on all chroots"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, the current working directory of all newly-chrooted
@@ -50143,6 +50063,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_CHMOD
 +      bool "Deny (f)chmod +s"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, processes inside a chroot will not be able to chmod
@@ -50153,6 +50074,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_FCHDIR
 +      bool "Deny fchdir out of chroot"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, a well-known method of breaking chroots by fchdir'ing
@@ -50162,6 +50084,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_MKNOD
 +      bool "Deny mknod"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, processes inside a chroot will not be allowed to
@@ -50176,6 +50099,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_SHMAT
 +      bool "Deny shmat() out of chroot"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, processes inside a chroot will not be able to attach
@@ -50185,6 +50109,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_UNIX
 +      bool "Deny access to abstract AF_UNIX sockets out of chroot"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, processes inside a chroot will not be able to
@@ -50195,6 +50120,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_FINDTASK
 +      bool "Protect outside processes"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, processes inside a chroot will not be able to
@@ -50205,6 +50131,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_NICE
 +      bool "Restrict priority changes"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, processes inside a chroot will not be able to raise
@@ -50216,6 +50143,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_SYSCTL
 +      bool "Deny sysctl writes"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, an attacker in a chroot will not be able to
@@ -50226,6 +50154,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_CHROOT_CAPS
 +      bool "Capability restrictions"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_CHROOT
 +      help
 +        If you say Y here, the capabilities on all processes within a
@@ -50268,6 +50197,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_RESLOG
 +      bool "Resource logging"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, all attempts to overstep resource limits will
 +        be logged with the resource name, the requested size, and the current
@@ -50306,6 +50236,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_SIGNAL
 +      bool "Signal logging"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, certain important signals will be logged, such as
 +        SIGSEGV, which will as a result inform you of when a error in a program
@@ -50323,6 +50254,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_TIME
 +      bool "Time change logging"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, any changes of the system clock will be logged.
 +        If the sysctl option is enabled, a sysctl option with name
@@ -50330,6 +50262,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_PROC_IPADDR
 +      bool "/proc/<pid>/ipaddr support"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, a new entry will be added to each /proc/<pid>
 +        directory that contains the IP address of the person using the task.
@@ -50341,6 +50274,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_RWXMAP_LOG
 +      bool 'Denied RWX mmap/mprotect logging'
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on PAX_MPROTECT && !PAX_EMUPLT && !PAX_EMUSIGRT
 +      help
 +        If you say Y here, calls to mmap() and mprotect() with explicit
@@ -50369,6 +50303,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_DMESG
 +      bool "Dmesg(8) restriction"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, non-root users will not be able to use dmesg(8)
 +        to view up to the last 4kb of messages in the kernel's log buffer.
@@ -50380,6 +50315,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_HARDEN_PTRACE
 +      bool "Deter ptrace-based process snooping"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, TTY sniffers and other malicious monitoring
 +        programs implemented through ptrace will be defeated.  If you
@@ -50394,8 +50330,38 @@ index 0000000..9629731
 +        option is enabled, a sysctl option with name "harden_ptrace" is
 +        created.
 +
++config GRKERNSEC_PTRACE_READEXEC
++      bool "Require read access to ptrace sensitive binaries"
++      default y if GRKERNSEC_CONFIG_AUTO
++      help
++        If you say Y here, unprivileged users will not be able to ptrace unreadable
++        binaries.  This option is useful in environments that
++        remove the read bits (e.g. file mode 4711) from suid binaries to
++        prevent infoleaking of their contents.  This option adds
++        consistency to the use of that file mode, as the binary could normally
++        be read out when run without privileges while ptracing.
++
++        If the sysctl option is enabled, a sysctl option with name "ptrace_readexec"
++        is created.
++
++config GRKERNSEC_SETXID
++      bool "Enforce consistent multithreaded privileges"
++      default y if GRKERNSEC_CONFIG_AUTO
++      depends on (X86 || SPARC64 || PPC || ARM || MIPS)
++      help
++        If you say Y here, a change from a root uid to a non-root uid
++        in a multithreaded application will cause the resulting uids,
++        gids, supplementary groups, and capabilities in that thread
++        to be propagated to the other threads of the process.  In most
++        cases this is unnecessary, as glibc will emulate this behavior
++        on behalf of the application.  Other libcs do not act in the
++        same way, allowing the other threads of the process to continue
++        running with root privileges.  If the sysctl option is enabled,
++        a sysctl option with name "consistent_setxid" is created.
++
 +config GRKERNSEC_TPE
 +      bool "Trusted Path Execution (TPE)"
++      default y if GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER
 +      help
 +        If you say Y here, you will be able to choose a gid to add to the
 +        supplementary groups of users you want to mark as "untrusted."
@@ -50452,6 +50418,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_RANDNET
 +      bool "Larger entropy pools"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, the entropy pools used for many features of Linux
 +        and grsecurity will be doubled in size.  Since several grsecurity
@@ -50461,6 +50428,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_BLACKHOLE
 +      bool "TCP/UDP blackhole and LAST_ACK DoS prevention"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on NET
 +      help
 +        If you say Y here, neither TCP resets nor ICMP
@@ -50560,11 +50528,12 @@ index 0000000..9629731
 +        option with name "socket_server_gid" is created.
 +
 +endmenu
-+menu "Sysctl support"
++menu "Sysctl Support"
 +depends on GRKERNSEC && SYSCTL
 +
 +config GRKERNSEC_SYSCTL
 +      bool "Sysctl support"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        If you say Y here, you will be able to change the options that
 +        grsecurity runs with at bootup, without having to recompile your
@@ -50595,6 +50564,7 @@ index 0000000..9629731
 +
 +config GRKERNSEC_SYSCTL_ON
 +      bool "Turn on features by default"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC_SYSCTL
 +      help
 +        If you say Y here, instead of having all features enabled in the
@@ -50630,14 +50600,12 @@ index 0000000..9629731
 +        raise this value.
 +
 +endmenu
-+
-+endmenu
 diff --git a/grsecurity/Makefile b/grsecurity/Makefile
 new file mode 100644
-index 0000000..be9ae3a
+index 0000000..1b9afa9
 --- /dev/null
 +++ b/grsecurity/Makefile
-@@ -0,0 +1,36 @@
+@@ -0,0 +1,38 @@
 +# grsecurity's ACL system was originally written in 2001 by Michael Dalton
 +# during 2001-2009 it has been completely redesigned by Brad Spengler
 +# into an RBAC system
@@ -50646,6 +50614,8 @@ index 0000000..be9ae3a
 +# are copyright Brad Spengler - Open Source Security, Inc., and released 
 +# under the GPL v2 or higher
 +
++KBUILD_CFLAGS += -Werror
++
 +obj-y = grsec_chdir.o grsec_chroot.o grsec_exec.o grsec_fifo.o grsec_fork.o \
 +      grsec_mount.o grsec_sig.o grsec_sysctl.o \
 +      grsec_time.o grsec_tpe.o grsec_link.o grsec_pax.o grsec_ptrace.o
@@ -50676,10 +50646,10 @@ index 0000000..be9ae3a
 +endif
 diff --git a/grsecurity/gracl.c b/grsecurity/gracl.c
 new file mode 100644
-index 0000000..09258e0
+index 0000000..7a5922f
 --- /dev/null
 +++ b/grsecurity/gracl.c
-@@ -0,0 +1,4156 @@
+@@ -0,0 +1,4016 @@
 +#include <linux/kernel.h>
 +#include <linux/module.h>
 +#include <linux/sched.h>
@@ -50699,11 +50669,13 @@ index 0000000..09258e0
 +#include <linux/ptrace.h>
 +#include <linux/gracl.h>
 +#include <linux/gralloc.h>
-+#include <linux/grsecurity.h>
++#include <linux/security.h>
 +#include <linux/grinternal.h>
 +#include <linux/pid_namespace.h>
++#include <linux/stop_machine.h>
 +#include <linux/fdtable.h>
 +#include <linux/percpu.h>
++#include "../fs/mount.h"
 +
 +#include <asm/uaccess.h>
 +#include <asm/errno.h>
@@ -50875,6 +50847,7 @@ index 0000000..09258e0
 +{
 +      struct dentry *dentry = path->dentry;
 +      struct vfsmount *vfsmnt = path->mnt;
++      struct mount *mnt = real_mount(vfsmnt);
 +      bool slash = false;
 +      int error = 0;
 +
@@ -50883,11 +50856,12 @@ index 0000000..09258e0
 +
 +              if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) {
 +                      /* Global root? */
-+                      if (vfsmnt->mnt_parent == vfsmnt) {
++                      if (!mnt_has_parent(mnt)) {
 +                              goto out;
 +                      }
-+                      dentry = vfsmnt->mnt_mountpoint;
-+                      vfsmnt = vfsmnt->mnt_parent;
++                      dentry = mnt->mnt_mountpoint;
++                      mnt = mnt->mnt_parent;
++                      vfsmnt = &mnt->mnt;
 +                      continue;
 +              }
 +              parent = dentry->d_parent;
@@ -50965,7 +50939,7 @@ index 0000000..09258e0
 +      char *res;
 +      struct path path;
 +      struct path root;
-+      struct task_struct *reaper = &init_task;
++      struct task_struct *reaper = init_pid_ns.child_reaper;
 +
 +      path.dentry = (struct dentry *)dentry;
 +      path.mnt = (struct vfsmount *)vfsmnt;
@@ -51339,22 +51313,60 @@ index 0000000..09258e0
 +      unsigned int index =
 +          rhash(uidgid, role->roletype & (GR_ROLE_USER | GR_ROLE_GROUP), acl_role_set.r_size);
 +      struct acl_role_label **curr;
-+      struct acl_role_label *tmp;
++      struct acl_role_label *tmp, *tmp2;
 +
 +      curr = &acl_role_set.r_hash[index];
 +
-+      /* if role was already inserted due to domains and already has
-+         a role in the same bucket as it attached, then we need to
-+         combine these two buckets
-+      */
-+      if (role->next) {
-+              tmp = role->next;
-+              while (tmp->next)
++      /* simple case, slot is empty, just set it to our role */
++      if (*curr == NULL) {
++              *curr = role;
++      } else {
++              /* example:
++                 1 -> 2 -> 3 (adding 2 -> 3 to here)
++                 2 -> 3
++              */
++              /* first check to see if we can already be reached via this slot */
++              tmp = *curr;
++              while (tmp && tmp != role)
 +                      tmp = tmp->next;
-+              tmp->next = *curr;
-+      } else
-+              role->next = *curr;
-+      *curr = role;
++              if (tmp == role) {
++                      /* we don't need to add ourselves to this slot's chain */
++                      return;
++              }
++              /* we need to add ourselves to this chain, two cases */
++              if (role->next == NULL) {
++                      /* simple case, append the current chain to our role */
++                      role->next = *curr;
++                      *curr = role;
++              } else {
++                      /* 1 -> 2 -> 3 -> 4
++                         2 -> 3 -> 4
++                         3 -> 4 (adding 1 -> 2 -> 3 -> 4 to here)
++                      */                         
++                      /* trickier case: walk our role's chain until we find
++                         the role for the start of the current slot's chain */
++                      tmp = role;
++                      tmp2 = *curr;
++                      while (tmp->next && tmp->next != tmp2)
++                              tmp = tmp->next;
++                      if (tmp->next == tmp2) {
++                              /* from example above, we found 3, so just
++                                 replace this slot's chain with ours */
++                              *curr = role;
++                      } else {
++                              /* we didn't find a subset of our role's chain
++                                 in the current slot's chain, so append their
++                                 chain to ours, and set us as the first role in
++                                 the slot's chain
++
++                                 we could fold this case with the case above,
++                                 but making it explicit for clarity
++                              */
++                              tmp->next = tmp2;
++                              *curr = role;
++                      }
++              }
++      }
 +
 +      return;
 +}
@@ -51501,7 +51513,7 @@ index 0000000..09258e0
 +static int
 +init_variables(const struct gr_arg *arg)
 +{
-+      struct task_struct *reaper = &init_task;
++      struct task_struct *reaper = init_pid_ns.child_reaper;
 +      unsigned int stacksize;
 +
 +      subj_map_set.s_size = arg->role_db.num_subjects;
@@ -51612,6 +51624,7 @@ index 0000000..09258e0
 +
 +      /* release the reference to the real root dentry and vfsmount */
 +      path_put(&real_root);
++      memset(&real_root, 0, sizeof(real_root));
 +
 +      /* free all object hash tables */
 +
@@ -51675,6 +51688,7 @@ index 0000000..09258e0
 +      memset(&subj_map_set, 0, sizeof (struct acl_subj_map_db));
 +
 +      default_role = NULL;
++      kernel_role = NULL;
 +      role_list = NULL;
 +
 +      return;
@@ -52135,40 +52149,28 @@ index 0000000..09258e0
 +      num_sprole_pws = arg->num_sprole_pws;
 +      acl_special_roles = (struct sprole_pw **) acl_alloc_num(num_sprole_pws, sizeof(struct sprole_pw *));
 +
-+      if (!acl_special_roles) {
-+              err = -ENOMEM;
-+              goto cleanup;
-+      }
++      if (!acl_special_roles && num_sprole_pws)
++              return -ENOMEM;
 +
 +      for (i = 0; i < num_sprole_pws; i++) {
 +              sptmp = (struct sprole_pw *) acl_alloc(sizeof(struct sprole_pw));
-+              if (!sptmp) {
-+                      err = -ENOMEM;
-+                      goto cleanup;
-+              }
++              if (!sptmp)
++                      return -ENOMEM;
 +              if (copy_from_user(sptmp, arg->sprole_pws + i,
-+                                 sizeof (struct sprole_pw))) {
-+                      err = -EFAULT;
-+                      goto cleanup;
-+              }
++                                 sizeof (struct sprole_pw)))
++                      return -EFAULT;
 +
-+              len =
-+                  strnlen_user(sptmp->rolename, GR_SPROLE_LEN);
++              len = strnlen_user(sptmp->rolename, GR_SPROLE_LEN);
 +
-+              if (!len || len >= GR_SPROLE_LEN) {
-+                      err = -EINVAL;
-+                      goto cleanup;
-+              }
++              if (!len || len >= GR_SPROLE_LEN)
++                      return -EINVAL;
 +
-+              if ((tmp = (char *) acl_alloc(len)) == NULL) {
-+                      err = -ENOMEM;
-+                      goto cleanup;
-+              }
++              if ((tmp = (char *) acl_alloc(len)) == NULL)
++                      return -ENOMEM;
++
++              if (copy_from_user(tmp, sptmp->rolename, len))
++                      return -EFAULT;
 +
-+              if (copy_from_user(tmp, sptmp->rolename, len)) {
-+                      err = -EFAULT;
-+                      goto cleanup;
-+              }
 +              tmp[len-1] = '\0';
 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
 +              printk(KERN_ALERT "Copying special role %s\n", tmp);
@@ -52182,38 +52184,28 @@ index 0000000..09258e0
 +      for (r_num = 0; r_num < arg->role_db.num_roles; r_num++) {
 +              r_tmp = acl_alloc(sizeof (struct acl_role_label));
 +
-+              if (!r_tmp) {
-+                      err = -ENOMEM;
-+                      goto cleanup;
-+              }
++              if (!r_tmp)
++                      return -ENOMEM;
 +
 +              if (copy_from_user(&r_utmp2, r_utmp + r_num,
-+                                 sizeof (struct acl_role_label *))) {
-+                      err = -EFAULT;
-+                      goto cleanup;
-+              }
++                                 sizeof (struct acl_role_label *)))
++                      return -EFAULT;
 +
 +              if (copy_from_user(r_tmp, r_utmp2,
-+                                 sizeof (struct acl_role_label))) {
-+                      err = -EFAULT;
-+                      goto cleanup;
-+              }
++                                 sizeof (struct acl_role_label)))
++                      return -EFAULT;
 +
 +              len = strnlen_user(r_tmp->rolename, GR_SPROLE_LEN);
 +
-+              if (!len || len >= PATH_MAX) {
-+                      err = -EINVAL;
-+                      goto cleanup;
-+              }
++              if (!len || len >= PATH_MAX)
++                      return -EINVAL;
++
++              if ((tmp = (char *) acl_alloc(len)) == NULL)
++                      return -ENOMEM;
++
++              if (copy_from_user(tmp, r_tmp->rolename, len))
++                      return -EFAULT;
 +
-+              if ((tmp = (char *) acl_alloc(len)) == NULL) {
-+                      err = -ENOMEM;
-+                      goto cleanup;
-+              }
-+              if (copy_from_user(tmp, r_tmp->rolename, len)) {
-+                      err = -EFAULT;
-+                      goto cleanup;
-+              }
 +              tmp[len-1] = '\0';
 +              r_tmp->rolename = tmp;
 +
@@ -52224,14 +52216,11 @@ index 0000000..09258e0
 +                      kernel_role = r_tmp;
 +              }
 +
-+              if ((ghash = (struct gr_hash_struct *) acl_alloc(sizeof(struct gr_hash_struct))) == NULL) {
-+                      err = -ENOMEM;
-+                      goto cleanup;
-+              }
-+              if (copy_from_user(ghash, r_tmp->hash, sizeof(struct gr_hash_struct))) {
-+                      err = -EFAULT;
-+                      goto cleanup;
-+              }
++              if ((ghash = (struct gr_hash_struct *) acl_alloc(sizeof(struct gr_hash_struct))) == NULL)
++                      return -ENOMEM;
++
++              if (copy_from_user(ghash, r_tmp->hash, sizeof(struct gr_hash_struct)))
++                      return -EFAULT;
 +
 +              r_tmp->hash = ghash;
 +
@@ -52242,32 +52231,28 @@ index 0000000..09258e0
 +                  (struct acl_subject_label **)
 +                  create_table(&(r_tmp->subj_hash_size), sizeof(void *));
 +
-+              if (!r_tmp->subj_hash) {
-+                      err = -ENOMEM;
-+                      goto cleanup;
-+              }
++              if (!r_tmp->subj_hash)
++                      return -ENOMEM;
 +
 +              err = copy_user_allowedips(r_tmp);
 +              if (err)
-+                      goto cleanup;
++                      return err;
 +
 +              /* copy domain info */
 +              if (r_tmp->domain_children != NULL) {
 +                      domainlist = acl_alloc_num(r_tmp->domain_child_num, sizeof(uid_t));
-+                      if (domainlist == NULL) {
-+                              err = -ENOMEM;
-+                              goto cleanup;
-+                      }
-+                      if (copy_from_user(domainlist, r_tmp->domain_children, r_tmp->domain_child_num * sizeof(uid_t))) {
-+                              err = -EFAULT;
-+                              goto cleanup;
-+                      }
++                      if (domainlist == NULL)
++                              return -ENOMEM;
++
++                      if (copy_from_user(domainlist, r_tmp->domain_children, r_tmp->domain_child_num * sizeof(uid_t)))
++                              return -EFAULT;
++
 +                      r_tmp->domain_children = domainlist;
 +              }
 +
 +              err = copy_user_transitions(r_tmp);
 +              if (err)
-+                      goto cleanup;
++                      return err;
 +
 +              memset(r_tmp->subj_hash, 0,
 +                     r_tmp->subj_hash_size *
@@ -52276,7 +52261,7 @@ index 0000000..09258e0
 +              err = copy_user_subjs(r_tmp->hash->first, r_tmp);
 +
 +              if (err)
-+                      goto cleanup;
++                      return err;
 +
 +              /* set nested subject list to null */
 +              r_tmp->hash->first = NULL;
@@ -52284,12 +52269,10 @@ index 0000000..09258e0
 +              insert_acl_role_label(r_tmp);
 +      }
 +
-+      goto return_err;
-+      cleanup:
-+      free_variables();
-+      return_err:
-+      return err;
++      if (default_role == NULL || kernel_role == NULL)
++              return -EINVAL;
 +
++      return err;
 +}
 +
 +static int
@@ -52455,7 +52438,7 @@ index 0000000..09258e0
 +
 +static struct acl_object_label *
 +chk_glob_label(struct acl_object_label *globbed,
-+      struct dentry *dentry, struct vfsmount *mnt, char **path)
++      const struct dentry *dentry, const struct vfsmount *mnt, char **path)
 +{
 +      struct acl_object_label *tmp;
 +
@@ -52488,8 +52471,7 @@ index 0000000..09258e0
 +              retval = lookup_acl_obj_label(curr_ino, curr_dev, tmpsubj);
 +              if (retval) {
 +                      if (checkglob && retval->globbed) {
-+                              retval2 = chk_glob_label(retval->globbed, (struct dentry *)orig_dentry,
-+                                              (struct vfsmount *)orig_mnt, path);
++                              retval2 = chk_glob_label(retval->globbed, orig_dentry, orig_mnt, path);
 +                              if (retval2)
 +                                      retval = retval2;
 +                      }
@@ -52532,6 +52514,7 @@ index 0000000..09258e0
 +{
 +      struct dentry *dentry = (struct dentry *) l_dentry;
 +      struct vfsmount *mnt = (struct vfsmount *) l_mnt;
++      struct mount *real_mnt = real_mount(mnt);
 +      struct acl_object_label *retval;
 +      struct dentry *parent;
 +
@@ -52556,15 +52539,16 @@ index 0000000..09258e0
 +                      break;
 +
 +              if (dentry == mnt->mnt_root || IS_ROOT(dentry)) {
-+                      if (mnt->mnt_parent == mnt)
++                      if (!mnt_has_parent(real_mnt))
 +                              break;
 +
 +                      retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
 +                      if (retval != NULL)
 +                              goto out;
 +
-+                      dentry = mnt->mnt_mountpoint;
-+                      mnt = mnt->mnt_parent;
++                      dentry = real_mnt->mnt_mountpoint;
++                      real_mnt = real_mnt->mnt_parent;
++                      mnt = &real_mnt->mnt;
 +                      continue;
 +              }
 +
@@ -52619,6 +52603,7 @@ index 0000000..09258e0
 +{
 +      struct dentry *dentry = (struct dentry *) l_dentry;
 +      struct vfsmount *mnt = (struct vfsmount *) l_mnt;
++      struct mount *real_mnt = real_mount(mnt);
 +      struct acl_subject_label *retval;
 +      struct dentry *parent;
 +
@@ -52629,7 +52614,7 @@ index 0000000..09258e0
 +              if (dentry == real_root.dentry && mnt == real_root.mnt)
 +                      break;
 +              if (dentry == mnt->mnt_root || IS_ROOT(dentry)) {
-+                      if (mnt->mnt_parent == mnt)
++                      if (!mnt_has_parent(real_mnt))
 +                              break;
 +
 +                      spin_lock(&dentry->d_lock);
@@ -52642,8 +52627,9 @@ index 0000000..09258e0
 +                      if (retval != NULL)
 +                              goto out;
 +
-+                      dentry = mnt->mnt_mountpoint;
-+                      mnt = mnt->mnt_parent;
++                      dentry = real_mnt->mnt_mountpoint;
++                      real_mnt = real_mnt->mnt_parent;
++                      mnt = &real_mnt->mnt;
 +                      continue;
 +              }
 +
@@ -52699,20 +52685,6 @@ index 0000000..09258e0
 +}
 +
 +static void
-+gr_log_learn_sysctl(const char *path, const __u32 mode)
-+{
-+      struct task_struct *task = current;
-+      const struct cred *cred = current_cred();
-+
-+      security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename, task->role->roletype,
-+                     cred->uid, cred->gid, task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
-+                     task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
-+                     1UL, 1UL, path, (unsigned long) mode, &task->signal->saved_ip);
-+
-+      return;
-+}
-+
-+static void
 +gr_log_learn_id_change(const char type, const unsigned int real, 
 +                     const unsigned int effective, const unsigned int fs)
 +{
@@ -53148,6 +53120,8 @@ index 0000000..09258e0
 +      }
 +}
 +
++extern int gr_acl_is_capable(const int cap);
++
 +void
 +gr_set_role_label(struct task_struct *task, const uid_t uid, const uid_t gid)
 +{
@@ -53169,6 +53143,12 @@ index 0000000..09258e0
 +      } else if (!task->role || !(task->role->roletype & GR_ROLE_SPECIAL))
 +              role = lookup_acl_role_label(task, uid, gid);
 +
++      /* don't change the role if we're not a privileged process */
++      if (role && task->role != role &&
++          (((role->roletype & GR_ROLE_USER) && !gr_acl_is_capable(CAP_SETUID)) ||
++           ((role->roletype & GR_ROLE_GROUP) && !gr_acl_is_capable(CAP_SETGID))))
++              return;
++
 +      /* perform subject lookup in possibly new role
 +         we can use this result below in the case where role == task->role
 +      */
@@ -53208,7 +53188,7 @@ index 0000000..09258e0
 +
 +int
 +gr_set_proc_label(const struct dentry *dentry, const struct vfsmount *mnt,
-+                const int unsafe_share)
++                const int unsafe_flags)
 +{
 +      struct task_struct *task = current;
 +      struct acl_subject_label *newacl;
@@ -53220,20 +53200,32 @@ index 0000000..09258e0
 +
 +      newacl = chk_subj_label(dentry, mnt, task->role);
 +
-+      task_lock(task);
-+      if ((((task->ptrace & PT_PTRACED) || unsafe_share) &&
-+           !(task->acl->mode & GR_POVERRIDE) && (task->acl != newacl) &&
++      /* special handling for if we did an strace -f -p <pid> from an admin role, where pid then
++         did an exec
++      */
++      rcu_read_lock();
++      read_lock(&tasklist_lock);
++      if (task->ptrace && task->parent && ((task->parent->role->roletype & GR_ROLE_GOD) ||
++          (task->parent->acl->mode & GR_POVERRIDE))) {
++              read_unlock(&tasklist_lock);
++              rcu_read_unlock();
++              goto skip_check;
++      }
++      read_unlock(&tasklist_lock);
++      rcu_read_unlock();
++
++      if (unsafe_flags && !(task->acl->mode & GR_POVERRIDE) && (task->acl != newacl) &&
 +           !(task->role->roletype & GR_ROLE_GOD) &&
 +           !gr_search_file(dentry, GR_PTRACERD, mnt) &&
-+           !(task->acl->mode & (GR_LEARN | GR_INHERITLEARN)))) {
-+                task_unlock(task);
-+              if (unsafe_share)
++           !(task->acl->mode & (GR_LEARN | GR_INHERITLEARN))) {
++              if (unsafe_flags & LSM_UNSAFE_SHARE)
 +                      gr_log_fs_generic(GR_DONT_AUDIT, GR_UNSAFESHARE_EXEC_ACL_MSG, dentry, mnt);
 +              else
 +                      gr_log_fs_generic(GR_DONT_AUDIT, GR_PTRACE_EXEC_ACL_MSG, dentry, mnt);
 +              return -EACCES;
 +      }
-+      task_unlock(task);
++
++skip_check:
 +
 +      obj = chk_obj_label(dentry, mnt, task->acl);
 +      retmode = obj->mode & (GR_INHERIT | GR_AUDIT_INHERIT);
@@ -53750,6 +53742,15 @@ index 0000000..09258e0
 +      return 1;
 +}
 +
++static int gr_rbac_disable(void *unused)
++{
++      pax_open_kernel();
++      gr_status &= ~GR_READY;
++      pax_close_kernel();
++
++      return 0;
++}
++
 +ssize_t
 +write_grsec_handler(struct file *file, const char * buf, size_t count, loff_t *ppos)
 +{
@@ -53834,15 +53835,12 @@ index 0000000..09258e0
 +      case GR_SHUTDOWN:
 +              if ((gr_status & GR_READY)
 +                  && !(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
-+                      pax_open_kernel();
-+                      gr_status &= ~GR_READY;
-+                      pax_close_kernel();
-+
-+                      gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SHUTS_ACL_MSG);
++                      stop_machine(gr_rbac_disable, NULL, NULL);
 +                      free_variables();
 +                      memset(gr_usermode, 0, sizeof (struct gr_arg));
 +                      memset(gr_system_salt, 0, GR_SALT_LEN);
 +                      memset(gr_system_sum, 0, GR_SHA_LEN);
++                      gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SHUTS_ACL_MSG);
 +              } else if (gr_status & GR_READY) {
 +                      gr_log_noargs(GR_DONT_AUDIT, GR_SHUTF_ACL_MSG);
 +                      error = -EPERM;
@@ -53867,20 +53865,14 @@ index 0000000..09258e0
 +                      gr_log_str(GR_DONT_AUDIT_GOOD, GR_RELOADI_ACL_MSG, GR_VERSION);
 +                      error = -EAGAIN;
 +              } else if (!(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
-+                      preempt_disable();
-+
-+                      pax_open_kernel();
-+                      gr_status &= ~GR_READY;
-+                      pax_close_kernel();
-+
++                      stop_machine(gr_rbac_disable, NULL, NULL);
 +                      free_variables();
-+                      if (!(error2 = gracl_init(gr_usermode))) {
-+                              preempt_enable();
++                      error2 = gracl_init(gr_usermode);
++                      if (!error2)
 +                              gr_log_str(GR_DONT_AUDIT_GOOD, GR_RELOAD_ACL_MSG, GR_VERSION);
-+                      } else {
-+                              preempt_enable();
-+                              error = error2;
++                      else {
 +                              gr_log_str(GR_DONT_AUDIT, GR_RELOADF_ACL_MSG, GR_VERSION);
++                              error = error2;
 +                      }
 +              } else {
 +                      gr_log_str(GR_DONT_AUDIT, GR_RELOADF_ACL_MSG, GR_VERSION);
@@ -54257,173 +54249,6 @@ index 0000000..09258e0
 +}
 +#endif
 +
-+#ifdef CONFIG_SYSCTL
-+/* Eric Biederman likes breaking userland ABI and every inode-based security
-+   system to save 35kb of memory */
-+
-+/* we modify the passed in filename, but adjust it back before returning */
-+static struct acl_object_label *gr_lookup_by_name(char *name, unsigned int len)
-+{
-+      struct name_entry *nmatch;
-+      char *p, *lastp = NULL;
-+      struct acl_object_label *obj = NULL, *tmp;
-+      struct acl_subject_label *tmpsubj;
-+      char c = '\0';
-+
-+      read_lock(&gr_inode_lock);
-+
-+      p = name + len - 1;
-+      do {
-+              nmatch = lookup_name_entry(name);
-+              if (lastp != NULL)
-+                      *lastp = c;
-+
-+              if (nmatch == NULL)
-+                      goto next_component;
-+              tmpsubj = current->acl;
-+              do {
-+                      obj = lookup_acl_obj_label(nmatch->inode, nmatch->device, tmpsubj);
-+                      if (obj != NULL) {
-+                              tmp = obj->globbed;
-+                              while (tmp) {
-+                                      if (!glob_match(tmp->filename, name)) {
-+                                              obj = tmp;
-+                                              goto found_obj;
-+                                      }
-+                                      tmp = tmp->next;
-+                              }
-+                              goto found_obj;
-+                      }
-+              } while ((tmpsubj = tmpsubj->parent_subject));
-+next_component:
-+              /* end case */
-+              if (p == name)
-+                      break;
-+
-+              while (*p != '/')
-+                      p--;
-+              if (p == name)
-+                      lastp = p + 1;
-+              else {
-+                      lastp = p;
-+                      p--;
-+              }
-+              c = *lastp;
-+              *lastp = '\0';
-+      } while (1);
-+found_obj:
-+      read_unlock(&gr_inode_lock);
-+      /* obj returned will always be non-null */
-+      return obj;
-+}
-+
-+/* returns 0 when allowing, non-zero on error
-+   op of 0 is used for readdir, so we don't log the names of hidden files
-+*/
-+__u32
-+gr_handle_sysctl(const struct ctl_table *table, const int op)
-+{
-+      struct ctl_table *tmp;
-+      const char *proc_sys = "/proc/sys";
-+      char *path;
-+      struct acl_object_label *obj;
-+      unsigned short len = 0, pos = 0, depth = 0, i;
-+      __u32 err = 0;
-+      __u32 mode = 0;
-+
-+      if (unlikely(!(gr_status & GR_READY)))
-+              return 0;
-+
-+      /* for now, ignore operations on non-sysctl entries if it's not a
-+         readdir*/
-+      if (table->child != NULL && op != 0)
-+              return 0;
-+
-+      mode |= GR_FIND;
-+      /* it's only a read if it's an entry, read on dirs is for readdir */
-+      if (op & MAY_READ)
-+              mode |= GR_READ;
-+      if (op & MAY_WRITE)
-+              mode |= GR_WRITE;
-+
-+      preempt_disable();
-+
-+      path = per_cpu_ptr(gr_shared_page[0], smp_processor_id());
-+
-+      /* it's only a read/write if it's an actual entry, not a dir
-+         (which are opened for readdir)
-+      */
-+
-+      /* convert the requested sysctl entry into a pathname */
-+
-+      for (tmp = (struct ctl_table *)table; tmp != NULL; tmp = tmp->parent) {
-+              len += strlen(tmp->procname);
-+              len++;
-+              depth++;
-+      }
-+
-+      if ((len + depth + strlen(proc_sys) + 1) > PAGE_SIZE) {
-+              /* deny */
-+              goto out;
-+      }
-+
-+      memset(path, 0, PAGE_SIZE);
-+
-+      memcpy(path, proc_sys, strlen(proc_sys));
-+
-+      pos += strlen(proc_sys);
-+
-+      for (; depth > 0; depth--) {
-+              path[pos] = '/';
-+              pos++;
-+              for (i = 1, tmp = (struct ctl_table *)table; tmp != NULL; tmp = tmp->parent) {
-+                      if (depth == i) {
-+                              memcpy(path + pos, tmp->procname,
-+                                     strlen(tmp->procname));
-+                              pos += strlen(tmp->procname);
-+                      }
-+                      i++;
-+              }
-+      }
-+
-+      obj = gr_lookup_by_name(path, pos);
-+      err = obj->mode & (mode | to_gr_audit(mode) | GR_SUPPRESS);
-+
-+      if (unlikely((current->acl->mode & (GR_LEARN | GR_INHERITLEARN)) &&
-+                   ((err & mode) != mode))) {
-+              __u32 new_mode = mode;
-+
-+              new_mode &= ~(GR_AUDITS | GR_SUPPRESS);
-+
-+              err = 0;
-+              gr_log_learn_sysctl(path, new_mode);
-+      } else if (!(err & GR_FIND) && !(err & GR_SUPPRESS) && op != 0) {
-+              gr_log_hidden_sysctl(GR_DONT_AUDIT, GR_HIDDEN_ACL_MSG, path);
-+              err = -ENOENT;
-+      } else if (!(err & GR_FIND)) {
-+              err = -ENOENT;
-+      } else if (((err & mode) & ~GR_FIND) != (mode & ~GR_FIND) && !(err & GR_SUPPRESS)) {
-+              gr_log_str4(GR_DONT_AUDIT, GR_SYSCTL_ACL_MSG, "denied",
-+                             path, (mode & GR_READ) ? " reading" : "",
-+                             (mode & GR_WRITE) ? " writing" : "");
-+              err = -EACCES;
-+      } else if ((err & mode) != mode) {
-+              err = -EACCES;
-+      } else if ((((err & mode) & ~GR_FIND) == (mode & ~GR_FIND)) && (err & GR_AUDITS)) {
-+              gr_log_str4(GR_DO_AUDIT, GR_SYSCTL_ACL_MSG, "successful",
-+                             path, (mode & GR_READ) ? " reading" : "",
-+                             (mode & GR_WRITE) ? " writing" : "");
-+              err = 0;
-+      } else
-+              err = 0;
-+
-+      out:
-+      preempt_enable();
-+
-+      return err;
-+}
-+#endif
-+
 +int
 +gr_handle_proc_ptrace(struct task_struct *task)
 +{
@@ -54501,21 +54326,22 @@ index 0000000..09258e0
 +      if (unlikely(!(gr_status & GR_READY)))
 +              return 0;
 +#endif
++      if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
++              read_lock(&tasklist_lock);
++              while (tmp->pid > 0) {
++                      if (tmp == curtemp)
++                              break;
++                      tmp = tmp->real_parent;
++              }
 +
-+      read_lock(&tasklist_lock);
-+      while (tmp->pid > 0) {
-+              if (tmp == curtemp)
-+                      break;
-+              tmp = tmp->real_parent;
-+      }
-+
-+      if (tmp->pid == 0 && ((grsec_enable_harden_ptrace && current_uid() && !(gr_status & GR_READY)) ||
-+                              ((gr_status & GR_READY) && !(current->acl->mode & GR_RELAXPTRACE)))) {
++              if (tmp->pid == 0 && ((grsec_enable_harden_ptrace && current_uid() && !(gr_status & GR_READY)) ||
++                                      ((gr_status & GR_READY) && !(current->acl->mode & GR_RELAXPTRACE)))) {
++                      read_unlock(&tasklist_lock);
++                      gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
++                      return 1;
++              }
 +              read_unlock(&tasklist_lock);
-+              gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
-+              return 1;
 +      }
-+      read_unlock(&tasklist_lock);
 +
 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
 +      if (!(gr_status & GR_READY))
@@ -54778,11 +54604,15 @@ index 0000000..09258e0
 +              return 1;
 +
 +      subj = task->acl;
++      read_lock(&gr_inode_lock);
 +      do {
 +              obj = lookup_acl_obj_label(ino, dev, subj);
-+              if (obj != NULL)
++              if (obj != NULL) {
++                      read_unlock(&gr_inode_lock);
 +                      return (obj->mode & GR_FIND) ? 1 : 0;
++              }
 +      } while ((subj = subj->parent_subject));
++      read_unlock(&gr_inode_lock);
 +      
 +      /* this is purely an optimization since we're looking for an object
 +         for the directory we're doing a readdir on
@@ -54949,10 +54779,10 @@ index 0000000..34fefda
 +}
 diff --git a/grsecurity/gracl_cap.c b/grsecurity/gracl_cap.c
 new file mode 100644
-index 0000000..955ddfb
+index 0000000..6d21049
 --- /dev/null
 +++ b/grsecurity/gracl_cap.c
-@@ -0,0 +1,101 @@
+@@ -0,0 +1,110 @@
 +#include <linux/kernel.h>
 +#include <linux/module.h>
 +#include <linux/sched.h>
@@ -54963,11 +54793,8 @@ index 0000000..955ddfb
 +extern const char *captab_log[];
 +extern int captab_log_entries;
 +
-+int
-+gr_acl_is_capable(const int cap)
++int gr_task_acl_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
 +{
-+      struct task_struct *task = current;
-+      const struct cred *cred = current_cred();
 +      struct acl_subject_label *curracl;
 +      kernel_cap_t cap_drop = __cap_empty_set, cap_mask = __cap_empty_set;
 +      kernel_cap_t cap_audit = __cap_empty_set;
@@ -55018,11 +54845,17 @@ index 0000000..955ddfb
 +
 +      if ((cap >= 0) && (cap < captab_log_entries) && cap_raised(cred->cap_effective, cap) && !cap_raised(cap_audit, cap))
 +              gr_log_cap(GR_DONT_AUDIT, GR_CAP_ACL_MSG, task, captab_log[cap]);
++
 +      return 0;
 +}
 +
 +int
-+gr_acl_is_capable_nolog(const int cap)
++gr_acl_is_capable(const int cap)
++{
++      return gr_task_acl_is_capable(current, current_cred(), cap);
++}
++
++int gr_task_acl_is_capable_nolog(const struct task_struct *task, const int cap)
 +{
 +      struct acl_subject_label *curracl;
 +      kernel_cap_t cap_drop = __cap_empty_set, cap_mask = __cap_empty_set;
@@ -55030,7 +54863,7 @@ index 0000000..955ddfb
 +      if (!gr_acl_is_enabled())
 +              return 1;
 +
-+      curracl = current->acl;
++      curracl = task->acl;
 +
 +      cap_drop = curracl->cap_lower;
 +      cap_mask = curracl->cap_mask;
@@ -55054,12 +54887,18 @@ index 0000000..955ddfb
 +      return 0;
 +}
 +
++int
++gr_acl_is_capable_nolog(const int cap)
++{
++      return gr_task_acl_is_capable_nolog(current, cap);
++}
++
 diff --git a/grsecurity/gracl_fs.c b/grsecurity/gracl_fs.c
 new file mode 100644
-index 0000000..4eda5c3
+index 0000000..88d0e87
 --- /dev/null
 +++ b/grsecurity/gracl_fs.c
-@@ -0,0 +1,433 @@
+@@ -0,0 +1,435 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/types.h>
@@ -55070,6 +54909,15 @@ index 0000000..4eda5c3
 +#include <linux/grinternal.h>
 +#include <linux/gracl.h>
 +
++umode_t
++gr_acl_umask(void)
++{
++      if (unlikely(!gr_acl_is_enabled()))
++              return 0;
++
++      return current->role->umask;
++}
++
 +__u32
 +gr_acl_handle_hidden_file(const struct dentry * dentry,
 +                        const struct vfsmount * mnt)
@@ -55258,25 +55106,18 @@ index 0000000..4eda5c3
 +}
 +
 +__u32
-+gr_acl_handle_fchmod(const struct dentry *dentry, const struct vfsmount *mnt,
-+                   mode_t mode)
++gr_acl_handle_chmod(const struct dentry *dentry, const struct vfsmount *mnt,
++                   umode_t *modeptr)
 +{
++      umode_t mode;
++
++      *modeptr &= ~gr_acl_umask();
++      mode = *modeptr;
++
 +      if (unlikely(dentry->d_inode && S_ISSOCK(dentry->d_inode->i_mode)))
 +              return 1;
 +
-+      if (unlikely((mode != (mode_t)-1) && (mode & (S_ISUID | S_ISGID)))) {
-+              return generic_fs_handler(dentry, mnt, GR_WRITE | GR_SETID,
-+                                 GR_FCHMOD_ACL_MSG);
-+      } else {
-+              return generic_fs_handler(dentry, mnt, GR_WRITE, GR_FCHMOD_ACL_MSG);
-+      }
-+}
-+
-+__u32
-+gr_acl_handle_chmod(const struct dentry *dentry, const struct vfsmount *mnt,
-+                  mode_t mode)
-+{
-+      if (unlikely((mode != (mode_t)-1) && (mode & (S_ISUID | S_ISGID)))) {
++      if (unlikely(mode & (S_ISUID | S_ISGID))) {
 +              return generic_fs_handler(dentry, mnt, GR_WRITE | GR_SETID,
 +                                 GR_CHMOD_ACL_MSG);
 +      } else {
@@ -55495,10 +55336,10 @@ index 0000000..4eda5c3
 +}
 diff --git a/grsecurity/gracl_ip.c b/grsecurity/gracl_ip.c
 new file mode 100644
-index 0000000..17050ca
+index 0000000..58800a7
 --- /dev/null
 +++ b/grsecurity/gracl_ip.c
-@@ -0,0 +1,381 @@
+@@ -0,0 +1,384 @@
 +#include <linux/kernel.h>
 +#include <asm/uaccess.h>
 +#include <asm/errno.h>
@@ -55820,6 +55661,9 @@ index 0000000..17050ca
 +int
 +gr_search_connect(struct socket *sock, struct sockaddr_in *addr)
 +{
++      /* always allow disconnection of dgram sockets with connect */
++      if (addr->sin_family == AF_UNSPEC)
++              return 0;
 +      return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sock->sk, addr, sock->type);
 +}
 +
@@ -56545,10 +56389,10 @@ index 0000000..bc0be01
 +}
 diff --git a/grsecurity/grsec_chroot.c b/grsecurity/grsec_chroot.c
 new file mode 100644
-index 0000000..a2dc675
+index 0000000..9807ee2
 --- /dev/null
 +++ b/grsecurity/grsec_chroot.c
-@@ -0,0 +1,351 @@
+@@ -0,0 +1,368 @@
 +#include <linux/kernel.h>
 +#include <linux/module.h>
 +#include <linux/sched.h>
@@ -56556,7 +56400,7 @@ index 0000000..a2dc675
 +#include <linux/fs.h>
 +#include <linux/mount.h>
 +#include <linux/types.h>
-+#include <linux/pid_namespace.h>
++#include "../fs/mount.h"
 +#include <linux/grsecurity.h>
 +#include <linux/grinternal.h>
 +
@@ -56564,7 +56408,7 @@ index 0000000..a2dc675
 +{
 +#ifdef CONFIG_GRKERNSEC
 +      if (task->pid > 1 && path->dentry != init_task.fs->root.dentry &&
-+                           path->dentry != task->nsproxy->mnt_ns->root->mnt_root)
++                           path->dentry != task->nsproxy->mnt_ns->root->mnt.mnt_root)
 +              task->gr_is_chrooted = 1;
 +      else
 +              task->gr_is_chrooted = 0;
@@ -56833,15 +56677,14 @@ index 0000000..a2dc675
 +extern int captab_log_entries;
 +
 +int
-+gr_chroot_is_capable(const int cap)
++gr_task_chroot_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
 +{
 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
-+      if (grsec_enable_chroot_caps && proc_is_chrooted(current)) {
++      if (grsec_enable_chroot_caps && proc_is_chrooted(task)) {
 +              kernel_cap_t chroot_caps = GR_CHROOT_CAPS;
 +              if (cap_raised(chroot_caps, cap)) {
-+                      const struct cred *creds = current_cred();
-+                      if (cap_raised(creds->cap_effective, cap) && cap < captab_log_entries) {
-+                              gr_log_cap(GR_DONT_AUDIT, GR_CAP_CHROOT_MSG, current, captab_log[cap]);
++                      if (cap_raised(cred->cap_effective, cap) && cap < captab_log_entries) {
++                              gr_log_cap(GR_DONT_AUDIT, GR_CAP_CHROOT_MSG, task, captab_log[cap]);
 +                      }
 +                      return 0;
 +              }
@@ -56851,10 +56694,19 @@ index 0000000..a2dc675
 +}
 +
 +int
-+gr_chroot_is_capable_nolog(const int cap)
++gr_chroot_is_capable(const int cap)
++{
++#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
++      return gr_task_chroot_is_capable(current, current_cred(), cap);
++#endif
++      return 1;
++}
++
++int
++gr_task_chroot_is_capable_nolog(const struct task_struct *task, const int cap)
 +{
 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
-+      if (grsec_enable_chroot_caps && proc_is_chrooted(current)) {
++      if (grsec_enable_chroot_caps && proc_is_chrooted(task)) {
 +              kernel_cap_t chroot_caps = GR_CHROOT_CAPS;
 +              if (cap_raised(chroot_caps, cap)) {
 +                      return 0;
@@ -56865,6 +56717,15 @@ index 0000000..a2dc675
 +}
 +
 +int
++gr_chroot_is_capable_nolog(const int cap)
++{
++#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
++      return gr_task_chroot_is_capable_nolog(current, cap);
++#endif
++      return 1;
++}
++
++int
 +gr_handle_chroot_sysctl(const int op)
 +{
 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
@@ -56902,10 +56763,10 @@ index 0000000..a2dc675
 +}
 diff --git a/grsecurity/grsec_disabled.c b/grsecurity/grsec_disabled.c
 new file mode 100644
-index 0000000..d81a586
+index 0000000..213ad8b
 --- /dev/null
 +++ b/grsecurity/grsec_disabled.c
-@@ -0,0 +1,439 @@
+@@ -0,0 +1,437 @@
 +#include <linux/kernel.h>
 +#include <linux/module.h>
 +#include <linux/sched.h>
@@ -57145,15 +57006,8 @@ index 0000000..d81a586
 +}
 +
 +__u32
-+gr_acl_handle_fchmod(const struct dentry * dentry, const struct vfsmount * mnt,
-+                   mode_t mode)
-+{
-+      return 1;
-+}
-+
-+__u32
 +gr_acl_handle_chmod(const struct dentry * dentry, const struct vfsmount * mnt,
-+                  mode_t mode)
++                  umode_t *mode)
 +{
 +      return 1;
 +}
@@ -57176,6 +57030,11 @@ index 0000000..d81a586
 +      return;
 +}
 +
++umode_t gr_acl_umask(void)
++{
++      return 0;
++}
++
 +__u32
 +gr_acl_handle_mknod(const struct dentry * new_dentry,
 +                  const struct dentry * parent_dentry,
@@ -57347,10 +57206,10 @@ index 0000000..d81a586
 +#endif
 diff --git a/grsecurity/grsec_exec.c b/grsecurity/grsec_exec.c
 new file mode 100644
-index 0000000..2b05ada
+index 0000000..abfa971
 --- /dev/null
 +++ b/grsecurity/grsec_exec.c
-@@ -0,0 +1,146 @@
+@@ -0,0 +1,174 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/file.h>
@@ -57428,8 +57287,12 @@ index 0000000..2b05ada
 +#ifdef CONFIG_GRKERNSEC
 +extern int gr_acl_is_capable(const int cap);
 +extern int gr_acl_is_capable_nolog(const int cap);
++extern int gr_task_acl_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
++extern int gr_task_acl_is_capable_nolog(const struct task_struct *task, const int cap);
 +extern int gr_chroot_is_capable(const int cap);
 +extern int gr_chroot_is_capable_nolog(const int cap);
++extern int gr_task_chroot_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
++extern int gr_task_chroot_is_capable_nolog(const struct task_struct *task, const int cap);
 +#endif
 +
 +const char *captab_log[] = {
@@ -57484,6 +57347,17 @@ index 0000000..2b05ada
 +#endif
 +}
 +
++int gr_task_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
++{
++#ifdef CONFIG_GRKERNSEC
++      if (gr_task_acl_is_capable(task, cred, cap) && gr_task_chroot_is_capable(task, cred, cap))
++              return 1;
++      return 0;
++#else
++      return 1;
++#endif
++}
++
 +int gr_is_capable_nolog(const int cap)
 +{
 +#ifdef CONFIG_GRKERNSEC
@@ -57495,8 +57369,21 @@ index 0000000..2b05ada
 +#endif
 +}
 +
++int gr_task_is_capable_nolog(const struct task_struct *task, const int cap)
++{
++#ifdef CONFIG_GRKERNSEC
++      if (gr_task_acl_is_capable_nolog(task, cap) && gr_task_chroot_is_capable_nolog(task, cap))
++              return 1;
++      return 0;
++#else
++      return 1;
++#endif
++}
++
 +EXPORT_SYMBOL(gr_is_capable);
 +EXPORT_SYMBOL(gr_is_capable_nolog);
++EXPORT_SYMBOL(gr_task_is_capable);
++EXPORT_SYMBOL(gr_task_is_capable_nolog);
 diff --git a/grsecurity/grsec_fifo.c b/grsecurity/grsec_fifo.c
 new file mode 100644
 index 0000000..d3ee748
@@ -57558,10 +57445,10 @@ index 0000000..8ca18bf
 +}
 diff --git a/grsecurity/grsec_init.c b/grsecurity/grsec_init.c
 new file mode 100644
-index 0000000..356ef00
+index 0000000..05a6015
 --- /dev/null
 +++ b/grsecurity/grsec_init.c
-@@ -0,0 +1,269 @@
+@@ -0,0 +1,283 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/mm.h>
@@ -57571,6 +57458,10 @@ index 0000000..356ef00
 +#include <linux/percpu.h>
 +#include <linux/module.h>
 +
++int grsec_enable_ptrace_readexec;
++int grsec_enable_setxid;
++int grsec_enable_symlinkown;
++int grsec_symlinkown_gid;
 +int grsec_enable_brute;
 +int grsec_enable_link;
 +int grsec_enable_dmesg;
@@ -57723,6 +57614,9 @@ index 0000000..356ef00
 +      grsec_enable_group = 1;
 +      grsec_audit_gid = CONFIG_GRKERNSEC_AUDIT_GID;
 +#endif
++#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
++      grsec_enable_ptrace_readexec = 1;
++#endif
 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
 +      grsec_enable_chdir = 1;
 +#endif
@@ -57751,6 +57645,9 @@ index 0000000..356ef00
 +#ifdef CONFIG_GRKERNSEC_EXECLOG
 +      grsec_enable_execlog = 1;
 +#endif
++#ifdef CONFIG_GRKERNSEC_SETXID
++      grsec_enable_setxid = 1;
++#endif
 +#ifdef CONFIG_GRKERNSEC_SIGNAL
 +      grsec_enable_signal = 1;
 +#endif
@@ -57808,6 +57705,10 @@ index 0000000..356ef00
 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
 +      grsec_enable_chroot_sysctl = 1;
 +#endif
++#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
++      grsec_enable_symlinkown = 1;
++      grsec_symlinkown_gid = CONFIG_GRKERNSEC_SYMLINKOWN_GID;
++#endif
 +#ifdef CONFIG_GRKERNSEC_TPE
 +      grsec_enable_tpe = 1;
 +      grsec_tpe_gid = CONFIG_GRKERNSEC_TPE_GID;
@@ -57833,16 +57734,32 @@ index 0000000..356ef00
 +}
 diff --git a/grsecurity/grsec_link.c b/grsecurity/grsec_link.c
 new file mode 100644
-index 0000000..3efe141
+index 0000000..35a96d1
 --- /dev/null
 +++ b/grsecurity/grsec_link.c
-@@ -0,0 +1,43 @@
+@@ -0,0 +1,59 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/fs.h>
 +#include <linux/file.h>
 +#include <linux/grinternal.h>
 +
++int gr_handle_symlink_owner(const struct path *link, const struct inode *target)
++{
++#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
++      const struct inode *link_inode = link->dentry->d_inode;
++
++      if (grsec_enable_symlinkown && in_group_p(grsec_symlinkown_gid) &&
++         /* ignore root-owned links, e.g. /proc/self */
++          link_inode->i_uid &&
++          link_inode->i_uid != target->i_uid) {
++              gr_log_fs_int2(GR_DONT_AUDIT, GR_SYMLINKOWNER_MSG, link->dentry, link->mnt, link_inode->i_uid, target->i_uid);
++              return 1;
++      }
++#endif
++      return 0;
++}
++
 +int
 +gr_handle_follow_link(const struct inode *parent,
 +                    const struct inode *inode,
@@ -58210,10 +58127,10 @@ index 0000000..a45d2e9
 +}
 diff --git a/grsecurity/grsec_mem.c b/grsecurity/grsec_mem.c
 new file mode 100644
-index 0000000..6c0416b
+index 0000000..f536303
 --- /dev/null
 +++ b/grsecurity/grsec_mem.c
-@@ -0,0 +1,33 @@
+@@ -0,0 +1,40 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/mm.h>
@@ -58247,6 +58164,13 @@ index 0000000..6c0416b
 +      gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG);
 +      return;
 +}
++
++void
++gr_log_badprocpid(const char *entry)
++{
++      gr_log_str(GR_DONT_AUDIT, GR_BADPROCPID_MSG, entry);
++      return;
++}
 diff --git a/grsecurity/grsec_mount.c b/grsecurity/grsec_mount.c
 new file mode 100644
 index 0000000..2131422
@@ -58359,14 +58283,14 @@ index 0000000..a3b12a0
 +}
 diff --git a/grsecurity/grsec_ptrace.c b/grsecurity/grsec_ptrace.c
 new file mode 100644
-index 0000000..472c1d6
+index 0000000..f7f29aa
 --- /dev/null
 +++ b/grsecurity/grsec_ptrace.c
-@@ -0,0 +1,14 @@
+@@ -0,0 +1,30 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/grinternal.h>
-+#include <linux/grsecurity.h>
++#include <linux/security.h>
 +
 +void
 +gr_audit_ptrace(struct task_struct *task)
@@ -58377,12 +58301,28 @@ index 0000000..472c1d6
 +#endif
 +      return;
 +}
++
++int
++gr_ptrace_readexec(struct file *file, int unsafe_flags)
++{
++#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
++      const struct dentry *dentry = file->f_path.dentry;
++      const struct vfsmount *mnt = file->f_path.mnt;
++
++      if (grsec_enable_ptrace_readexec && (unsafe_flags & LSM_UNSAFE_PTRACE) && 
++          (inode_permission(dentry->d_inode, MAY_READ) || !gr_acl_handle_open(dentry, mnt, MAY_READ))) {
++              gr_log_fs_generic(GR_DONT_AUDIT, GR_PTRACE_READEXEC_MSG, dentry, mnt);
++              return -EACCES;
++      }
++#endif
++      return 0;
++}
 diff --git a/grsecurity/grsec_sig.c b/grsecurity/grsec_sig.c
 new file mode 100644
-index 0000000..cf090b3
+index 0000000..7a5b2de
 --- /dev/null
 +++ b/grsecurity/grsec_sig.c
-@@ -0,0 +1,206 @@
+@@ -0,0 +1,207 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/delay.h>
@@ -58417,7 +58357,8 @@ index 0000000..cf090b3
 +gr_handle_signal(const struct task_struct *p, const int sig)
 +{
 +#ifdef CONFIG_GRKERNSEC
-+      if (current->pid > 1 && gr_check_protected_task(p)) {
++      /* ignore the 0 signal for protected task checks */
++      if (current->pid > 1 && sig && gr_check_protected_task(p)) {
 +              gr_log_sig_task(GR_DONT_AUDIT, GR_SIG_ACL_MSG, p, sig);
 +              return -EPERM;
 +      } else if (gr_pid_is_chrooted((struct task_struct *)p)) {
@@ -58841,10 +58782,10 @@ index 0000000..4030d57
 +}
 diff --git a/grsecurity/grsec_sysctl.c b/grsecurity/grsec_sysctl.c
 new file mode 100644
-index 0000000..174668f
+index 0000000..f55ef0f
 --- /dev/null
 +++ b/grsecurity/grsec_sysctl.c
-@@ -0,0 +1,433 @@
+@@ -0,0 +1,469 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/sysctl.h>
@@ -58855,6 +58796,8 @@ index 0000000..174668f
 +gr_handle_sysctl_mod(const char *dirname, const char *name, const int op)
 +{
 +#ifdef CONFIG_GRKERNSEC_SYSCTL
++      if (dirname == NULL || name == NULL)
++              return 0;
 +      if (!strcmp(dirname, "grsecurity") && grsec_lock && (op & MAY_WRITE)) {
 +              gr_log_str(GR_DONT_AUDIT, GR_SYSCTL_MSG, name);
 +              return -EACCES;
@@ -58890,6 +58833,22 @@ index 0000000..174668f
 +              .proc_handler   = &proc_dointvec,
 +      },
 +#endif
++#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
++      {
++              .procname       = "enforce_symlinksifowner",
++              .data           = &grsec_enable_symlinkown,
++              .maxlen         = sizeof(int),
++              .mode           = 0600,
++              .proc_handler   = &proc_dointvec,
++      },
++      {
++              .procname       = "symlinkown_gid",
++              .data           = &grsec_symlinkown_gid,
++              .maxlen         = sizeof(int),
++              .mode           = 0600,
++              .proc_handler   = &proc_dointvec,
++      },
++#endif
 +#ifdef CONFIG_GRKERNSEC_BRUTE
 +      {
 +              .procname       = "deter_bruteforce",
@@ -58908,6 +58867,24 @@ index 0000000..174668f
 +              .proc_handler   = &proc_dointvec,
 +      },
 +#endif
++#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
++      {
++              .procname       = "ptrace_readexec",
++              .data           = &grsec_enable_ptrace_readexec,
++              .maxlen         = sizeof(int),
++              .mode           = 0600,
++              .proc_handler   = &proc_dointvec,
++      },
++#endif
++#ifdef CONFIG_GRKERNSEC_SETXID
++      {
++              .procname       = "consistent_setxid",
++              .data           = &grsec_enable_setxid,
++              .maxlen         = sizeof(int),
++              .mode           = 0600,
++              .proc_handler   = &proc_dointvec,
++      },
++#endif
 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
 +      {
 +              .procname       = "ip_blackhole",
@@ -59302,10 +59279,10 @@ index 0000000..0dc13c3
 +EXPORT_SYMBOL(gr_log_timechange);
 diff --git a/grsecurity/grsec_tpe.c b/grsecurity/grsec_tpe.c
 new file mode 100644
-index 0000000..4a78774
+index 0000000..07e0dc0
 --- /dev/null
 +++ b/grsecurity/grsec_tpe.c
-@@ -0,0 +1,39 @@
+@@ -0,0 +1,73 @@
 +#include <linux/kernel.h>
 +#include <linux/sched.h>
 +#include <linux/file.h>
@@ -59320,25 +59297,59 @@ index 0000000..4a78774
 +#ifdef CONFIG_GRKERNSEC
 +      struct inode *inode = file->f_path.dentry->d_parent->d_inode;
 +      const struct cred *cred = current_cred();
++      char *msg = NULL;
++      char *msg2 = NULL;
++
++      // never restrict root
++      if (!cred->uid)
++              return 1;
 +
-+      if (cred->uid && ((grsec_enable_tpe &&
++      if (grsec_enable_tpe) {
 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
-+          ((grsec_enable_tpe_invert && !in_group_p(grsec_tpe_gid)) ||
-+           (!grsec_enable_tpe_invert && in_group_p(grsec_tpe_gid)))
++              if (grsec_enable_tpe_invert && !in_group_p(grsec_tpe_gid))
++                      msg = "not being in trusted group";
++              else if (!grsec_enable_tpe_invert && in_group_p(grsec_tpe_gid))
++                      msg = "being in untrusted group";
 +#else
-+          in_group_p(grsec_tpe_gid)
++              if (in_group_p(grsec_tpe_gid))
++                      msg = "being in untrusted group";
 +#endif
-+          ) || gr_acl_tpe_check()) &&
-+          (inode->i_uid || (!inode->i_uid && ((inode->i_mode & S_IWGRP) ||
-+                                              (inode->i_mode & S_IWOTH))))) {
-+              gr_log_fs_generic(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, file->f_path.dentry, file->f_path.mnt);
++      }
++      if (!msg && gr_acl_tpe_check())
++              msg = "being in untrusted role";
++
++      // not in any affected group/role
++      if (!msg)
++              goto next_check;
++
++      if (inode->i_uid)
++              msg2 = "file in non-root-owned directory";
++      else if (inode->i_mode & S_IWOTH)
++              msg2 = "file in world-writable directory";
++      else if (inode->i_mode & S_IWGRP)
++              msg2 = "file in group-writable directory";
++
++      if (msg && msg2) {
++              char fullmsg[70] = {0};
++              snprintf(fullmsg, sizeof(fullmsg)-1, "%s and %s", msg, msg2);
++              gr_log_str_fs(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, fullmsg, file->f_path.dentry, file->f_path.mnt);
 +              return 0;
 +      }
++      msg = NULL;
++next_check:
 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
-+      if (cred->uid && grsec_enable_tpe && grsec_enable_tpe_all &&
-+          ((inode->i_uid && (inode->i_uid != cred->uid)) ||
-+           (inode->i_mode & S_IWGRP) || (inode->i_mode & S_IWOTH))) {
-+              gr_log_fs_generic(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, file->f_path.dentry, file->f_path.mnt);
++      if (!grsec_enable_tpe || !grsec_enable_tpe_all)
++              return 1;
++
++      if (inode->i_uid && (inode->i_uid != cred->uid))
++              msg = "directory not owned by user";
++      else if (inode->i_mode & S_IWOTH)
++              msg = "file in world-writable directory";
++      else if (inode->i_mode & S_IWGRP)
++              msg = "file in group-writable directory";
++
++      if (msg) {
++              gr_log_str_fs(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, msg, file->f_path.dentry, file->f_path.mnt);
 +              return 0;
 +      }
 +#endif
@@ -59413,7 +59424,7 @@ index 0000000..9f7b1ac
 +      return retval;
 +}
 diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
-index 6cd5b64..f620d2d 100644
+index f1c8ca6..b5c1cc7 100644
 --- a/include/acpi/acpi_bus.h
 +++ b/include/acpi/acpi_bus.h
 @@ -107,7 +107,7 @@ struct acpi_device_ops {
@@ -59426,7 +59437,7 @@ index 6cd5b64..f620d2d 100644
  #define ACPI_DRIVER_ALL_NOTIFY_EVENTS 0x1     /* system AND device events */
  
 diff --git a/include/asm-generic/atomic-long.h b/include/asm-generic/atomic-long.h
-index b7babf0..71e4e74 100644
+index b7babf0..3ba8aee 100644
 --- a/include/asm-generic/atomic-long.h
 +++ b/include/asm-generic/atomic-long.h
 @@ -22,6 +22,12 @@
@@ -59679,7 +59690,7 @@ index b7babf0..71e4e74 100644
  static inline long atomic_long_dec_return(atomic_long_t *l)
  {
        atomic_t *v = (atomic_t *)l;
-@@ -255,4 +393,49 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
+@@ -255,4 +393,55 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
  
  #endif  /*  BITS_PER_LONG == 64  */
  
@@ -59697,6 +59708,10 @@ index b7babf0..71e4e74 100644
 +      atomic_dec_unchecked((atomic_unchecked_t *)NULL);
 +      atomic_cmpxchg_unchecked((atomic_unchecked_t *)NULL, 0, 0);
 +      (void)atomic_xchg_unchecked((atomic_unchecked_t *)NULL, 0);
++#ifdef CONFIG_X86
++      atomic_clear_mask_unchecked(0, NULL);
++      atomic_set_mask_unchecked(0, NULL);
++#endif
 +
 +      atomic_long_read_unchecked((atomic_long_unchecked_t *)NULL);
 +      atomic_long_set_unchecked((atomic_long_unchecked_t *)NULL, 0);
@@ -59718,6 +59733,8 @@ index b7babf0..71e4e74 100644
 +#define atomic_dec_unchecked(v) atomic_dec(v)
 +#define atomic_cmpxchg_unchecked(v, o, n) atomic_cmpxchg((v), (o), (n))
 +#define atomic_xchg_unchecked(v, i) atomic_xchg((v), (i))
++#define atomic_clear_mask_unchecked(mask, v) atomic_clear_mask((mask), (v))
++#define atomic_set_mask_unchecked(mask, v) atomic_set_mask((mask), (v))
 +
 +#define atomic_long_read_unchecked(v) atomic_long_read(v)
 +#define atomic_long_set_unchecked(v, i) atomic_long_set((v), (i))
@@ -59729,6 +59746,19 @@ index b7babf0..71e4e74 100644
 +#endif
 +
  #endif  /*  _ASM_GENERIC_ATOMIC_LONG_H  */
+diff --git a/include/asm-generic/atomic.h b/include/asm-generic/atomic.h
+index 1ced641..c896ee8 100644
+--- a/include/asm-generic/atomic.h
++++ b/include/asm-generic/atomic.h
+@@ -159,7 +159,7 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
+  * Atomically clears the bits set in @mask from @v
+  */
+ #ifndef atomic_clear_mask
+-static inline void atomic_clear_mask(unsigned long mask, atomic_t *v)
++static inline void atomic_clear_mask(unsigned int mask, atomic_t *v)
+ {
+       unsigned long flags;
 diff --git a/include/asm-generic/atomic64.h b/include/asm-generic/atomic64.h
 index b18ce4f..2ee2843 100644
 --- a/include/asm-generic/atomic64.h
@@ -59771,32 +59801,19 @@ index 1bfcfe5..e04c5c9 100644
 +#define L1_CACHE_BYTES                (1UL << L1_CACHE_SHIFT)
  
  #endif /* __ASM_GENERIC_CACHE_H */
-diff --git a/include/asm-generic/int-l64.h b/include/asm-generic/int-l64.h
-index 1ca3efc..e3dc852 100644
---- a/include/asm-generic/int-l64.h
-+++ b/include/asm-generic/int-l64.h
-@@ -46,6 +46,8 @@ typedef unsigned int u32;
- typedef signed long s64;
- typedef unsigned long u64;
-+typedef unsigned int intoverflow_t __attribute__ ((mode(TI)));
-+
- #define S8_C(x)  x
- #define U8_C(x)  x ## U
- #define S16_C(x) x
-diff --git a/include/asm-generic/int-ll64.h b/include/asm-generic/int-ll64.h
-index f394147..b6152b9 100644
---- a/include/asm-generic/int-ll64.h
-+++ b/include/asm-generic/int-ll64.h
-@@ -51,6 +51,8 @@ typedef unsigned int u32;
- typedef signed long long s64;
- typedef unsigned long long u64;
-+typedef unsigned long long intoverflow_t;
-+
- #define S8_C(x)  x
- #define U8_C(x)  x ## U
- #define S16_C(x) x
+diff --git a/include/asm-generic/emergency-restart.h b/include/asm-generic/emergency-restart.h
+index 0d68a1e..b74a761 100644
+--- a/include/asm-generic/emergency-restart.h
++++ b/include/asm-generic/emergency-restart.h
+@@ -1,7 +1,7 @@
+ #ifndef _ASM_GENERIC_EMERGENCY_RESTART_H
+ #define _ASM_GENERIC_EMERGENCY_RESTART_H
+-static inline void machine_emergency_restart(void)
++static inline __noreturn void machine_emergency_restart(void)
+ {
+       machine_restart(NULL);
+ }
 diff --git a/include/asm-generic/kmap_types.h b/include/asm-generic/kmap_types.h
 index 0232ccb..13d9165 100644
 --- a/include/asm-generic/kmap_types.h
@@ -59814,6 +59831,18 @@ index 0232ccb..13d9165 100644
  };
  
  #undef KMAP_D
+diff --git a/include/asm-generic/local.h b/include/asm-generic/local.h
+index 9ceb03b..2efbcbd 100644
+--- a/include/asm-generic/local.h
++++ b/include/asm-generic/local.h
+@@ -39,6 +39,7 @@ typedef struct
+ #define local_add_return(i, l) atomic_long_add_return((i), (&(l)->a))
+ #define local_sub_return(i, l) atomic_long_sub_return((i), (&(l)->a))
+ #define local_inc_return(l) atomic_long_inc_return(&(l)->a)
++#define local_dec_return(l) atomic_long_dec_return(&(l)->a)
+ #define local_cmpxchg(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n))
+ #define local_xchg(l, n) atomic_long_xchg((&(l)->a), (n))
 diff --git a/include/asm-generic/pgtable-nopmd.h b/include/asm-generic/pgtable-nopmd.h
 index 725612b..9cc513a 100644
 --- a/include/asm-generic/pgtable-nopmd.h
@@ -59855,7 +59884,7 @@ index 725612b..9cc513a 100644
   * The "pud_xxx()" functions here are trivial for a folded two-level
   * setup: the pmd is never bad, and a pmd always exists (as it's folded
 diff --git a/include/asm-generic/pgtable-nopud.h b/include/asm-generic/pgtable-nopud.h
-index 810431d..ccc3638 100644
+index 810431d..0ec4804f 100644
 --- a/include/asm-generic/pgtable-nopud.h
 +++ b/include/asm-generic/pgtable-nopud.h
 @@ -1,10 +1,15 @@
@@ -59888,13 +59917,21 @@ index 810431d..ccc3638 100644
  /*
   * The "pgd_xxx()" functions here are trivial for a folded two-level
   * setup: the pud is never bad, and a pud always exists (as it's folded
+@@ -29,6 +29,7 @@ static inline void pgd_clear(pgd_t *pgd)     { }
+ #define pud_ERROR(pud)                                (pgd_ERROR((pud).pgd))
+ #define pgd_populate(mm, pgd, pud)            do { } while (0)
++#define pgd_populate_kernel(mm, pgd, pud)     do { } while (0)
+ /*
+  * (puds are folded into pgds so this doesn't get actually called,
+  * but the define is needed for a generic inline function.)
 diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
-index 76bff2b..c7a14e2 100644
+index c7ec2cd..909d125 100644
 --- a/include/asm-generic/pgtable.h
 +++ b/include/asm-generic/pgtable.h
-@@ -443,6 +443,14 @@ static inline int pmd_write(pmd_t pmd)
- #endif /* __HAVE_ARCH_PMD_WRITE */
+@@ -531,6 +531,14 @@ static inline int pmd_trans_unstable(pmd_t *pmd)
  #endif
+ }
  
 +#ifndef __HAVE_ARCH_PAX_OPEN_KERNEL
 +static inline unsigned long pax_open_kernel(void) { return 0; }
@@ -59904,14 +59941,14 @@ index 76bff2b..c7a14e2 100644
 +static inline unsigned long pax_close_kernel(void) { return 0; }
 +#endif
 +
- #endif /* !__ASSEMBLY__ */
+ #endif /* CONFIG_MMU */
  
- #endif /* _ASM_GENERIC_PGTABLE_H */
+ #endif /* !__ASSEMBLY__ */
 diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
-index db22d13..1f2e3e1 100644
+index 8aeadf6..f1dc019 100644
 --- a/include/asm-generic/vmlinux.lds.h
 +++ b/include/asm-generic/vmlinux.lds.h
-@@ -217,6 +217,7 @@
+@@ -218,6 +218,7 @@
        .rodata           : AT(ADDR(.rodata) - LOAD_OFFSET) {           \
                VMLINUX_SYMBOL(__start_rodata) = .;                     \
                *(.rodata) *(.rodata.*)                                 \
@@ -59919,7 +59956,7 @@ index db22d13..1f2e3e1 100644
                *(__vermagic)           /* Kernel version magic */      \
                . = ALIGN(8);                                           \
                VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .;         \
-@@ -723,17 +724,18 @@
+@@ -716,17 +717,18 @@
   * section in the linker script will go there too.  @phdr should have
   * a leading colon.
   *
@@ -59943,10 +59980,10 @@ index db22d13..1f2e3e1 100644
  /**
   * PERCPU_SECTION - define output section for percpu area, simple version
 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
-index 9b7c2bb..76b7d1e 100644
+index dd73104..fde86bd 100644
 --- a/include/drm/drmP.h
 +++ b/include/drm/drmP.h
-@@ -73,6 +73,7 @@
+@@ -72,6 +72,7 @@
  #include <linux/workqueue.h>
  #include <linux/poll.h>
  #include <asm/pgalloc.h>
@@ -59954,7 +59991,7 @@ index 9b7c2bb..76b7d1e 100644
  #include "drm.h"
  
  #include <linux/idr.h>
-@@ -1035,7 +1036,7 @@ struct drm_device {
+@@ -1074,7 +1075,7 @@ struct drm_device {
  
        /** \name Usage Counters */
        /*@{ */
@@ -59963,7 +60000,7 @@ index 9b7c2bb..76b7d1e 100644
        atomic_t ioctl_count;           /**< Outstanding IOCTLs pending */
        atomic_t vma_count;             /**< Outstanding vma areas open */
        int buf_use;                    /**< Buffers in use -- cannot alloc */
-@@ -1046,7 +1047,7 @@ struct drm_device {
+@@ -1085,7 +1086,7 @@ struct drm_device {
        /*@{ */
        unsigned long counters;
        enum drm_stat_type types[15];
@@ -59973,7 +60010,7 @@ index 9b7c2bb..76b7d1e 100644
  
        struct list_head filelist;
 diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
-index 73b0712..0b7ef2f 100644
+index 37515d1..34fa8b0 100644
 --- a/include/drm/drm_crtc_helper.h
 +++ b/include/drm/drm_crtc_helper.h
 @@ -74,7 +74,7 @@ struct drm_crtc_helper_funcs {
@@ -59995,10 +60032,10 @@ index 73b0712..0b7ef2f 100644
  struct drm_connector_helper_funcs {
        int (*get_modes)(struct drm_connector *connector);
 diff --git a/include/drm/ttm/ttm_memory.h b/include/drm/ttm/ttm_memory.h
-index 26c1f78..6722682 100644
+index d6d1da4..fdd1ac5 100644
 --- a/include/drm/ttm/ttm_memory.h
 +++ b/include/drm/ttm/ttm_memory.h
-@@ -47,7 +47,7 @@
+@@ -48,7 +48,7 @@
  
  struct ttm_mem_shrink {
        int (*do_shrink) (struct ttm_mem_shrink *);
@@ -60027,7 +60064,7 @@ index e86dfca..40cc55f 100644
  #define N_MAGIC(exec) ((exec).a_info & 0xffff)
  #endif
 diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h
-index 49a83ca..df96b54 100644
+index 06fd4bb..1caec0d 100644
 --- a/include/linux/atmdev.h
 +++ b/include/linux/atmdev.h
 @@ -237,7 +237,7 @@ struct compat_atm_iobuf {
@@ -60040,10 +60077,10 @@ index 49a83ca..df96b54 100644
  #undef __HANDLE_ITEM
  };
 diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
-index fd88a39..f4d0bad 100644
+index 366422b..1fa7f84 100644
 --- a/include/linux/binfmts.h
 +++ b/include/linux/binfmts.h
-@@ -88,6 +88,7 @@ struct linux_binfmt {
+@@ -89,6 +89,7 @@ struct linux_binfmt {
        int (*load_binary)(struct linux_binprm *, struct  pt_regs * regs);
        int (*load_shlib)(struct file *);
        int (*core_dump)(struct coredump_params *cprm);
@@ -60052,10 +60089,10 @@ index fd88a39..f4d0bad 100644
  };
  
 diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
-index 7fbaa91..5e6a460 100644
+index 4d4ac24..2c3ccce 100644
 --- a/include/linux/blkdev.h
 +++ b/include/linux/blkdev.h
-@@ -1321,7 +1321,7 @@ struct block_device_operations {
+@@ -1376,7 +1376,7 @@ struct block_device_operations {
        /* this callback is with swap_lock and sometimes page table lock held */
        void (*swap_slot_free_notify) (struct block_device *, unsigned long);
        struct module *owner;
@@ -60065,7 +60102,7 @@ index 7fbaa91..5e6a460 100644
  extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
                                 unsigned long);
 diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h
-index 8e9e4bc..88bd457 100644
+index 4d1a074..88f929a 100644
 --- a/include/linux/blktrace_api.h
 +++ b/include/linux/blktrace_api.h
 @@ -162,7 +162,7 @@ struct blk_trace {
@@ -60161,38 +60198,37 @@ index 4c57065..4307975 100644
  #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
  #endif
 diff --git a/include/linux/capability.h b/include/linux/capability.h
-index c421123..e343179 100644
+index 12d52de..b5f7fa7 100644
 --- a/include/linux/capability.h
 +++ b/include/linux/capability.h
-@@ -547,6 +547,9 @@ extern bool capable(int cap);
+@@ -548,6 +548,8 @@ extern bool has_ns_capability_noaudit(struct task_struct *t,
+ extern bool capable(int cap);
  extern bool ns_capable(struct user_namespace *ns, int cap);
- extern bool task_ns_capable(struct task_struct *t, int cap);
  extern bool nsown_capable(int cap);
-+extern bool task_ns_capable_nolog(struct task_struct *t, int cap);
-+extern bool ns_capable_nolog(struct user_namespace *ns, int cap);
 +extern bool capable_nolog(int cap);
++extern bool ns_capable_nolog(struct user_namespace *ns, int cap);
  
  /* audit system wants to get cap info from files as well */
  extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps);
 diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
-index 04ffb2e..6799180 100644
+index 42e55de..1cd0e66 100644
 --- a/include/linux/cleancache.h
 +++ b/include/linux/cleancache.h
 @@ -31,7 +31,7 @@ struct cleancache_ops {
-       void (*flush_page)(int, struct cleancache_filekey, pgoff_t);
-       void (*flush_inode)(int, struct cleancache_filekey);
-       void (*flush_fs)(int);
+       void (*invalidate_page)(int, struct cleancache_filekey, pgoff_t);
+       void (*invalidate_inode)(int, struct cleancache_filekey);
+       void (*invalidate_fs)(int);
 -};
 +} __no_const;
  
  extern struct cleancache_ops
        cleancache_register_ops(struct cleancache_ops *ops);
 diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h
-index dfadc96..c0e70c1 100644
+index 2f40791..9c9e13c 100644
 --- a/include/linux/compiler-gcc4.h
 +++ b/include/linux/compiler-gcc4.h
-@@ -31,6 +31,12 @@
+@@ -32,6 +32,20 @@
+ #define __linktime_error(message) __attribute__((__error__(message)))
  
  #if __GNUC_MINOR__ >= 5
 +
@@ -60200,11 +60236,19 @@ index dfadc96..c0e70c1 100644
 +#define __no_const __attribute__((no_const))
 +#define __do_const __attribute__((do_const))
 +#endif
++
++#ifdef SIZE_OVERFLOW_PLUGIN
++#define __size_overflow(...) __attribute__((size_overflow(__VA_ARGS__)))
++#endif
++
++#ifdef LATENT_ENTROPY_PLUGIN
++#define __latent_entropy __attribute__((latent_entropy))
++#endif
 +
  /*
   * Mark a position in code as unreachable.  This can be used to
   * suppress control flow warnings after asm blocks that transfer
-@@ -46,6 +52,11 @@
+@@ -47,6 +61,11 @@
  #define __noclone     __attribute__((__noclone__))
  
  #endif
@@ -60217,7 +60261,7 @@ index dfadc96..c0e70c1 100644
  
  #if __GNUC_MINOR__ > 0
 diff --git a/include/linux/compiler.h b/include/linux/compiler.h
-index 320d6c9..8573a1c 100644
+index 923d093..1fef491 100644
 --- a/include/linux/compiler.h
 +++ b/include/linux/compiler.h
 @@ -5,31 +5,62 @@
@@ -60293,7 +60337,7 @@ index 320d6c9..8573a1c 100644
  #endif
  
  #ifdef __KERNEL__
-@@ -264,6 +297,14 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
+@@ -264,6 +297,22 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
  # define __attribute_const__  /* unimplemented */
  #endif
  
@@ -60304,11 +60348,19 @@ index 320d6c9..8573a1c 100644
 +#ifndef __do_const
 +# define __do_const
 +#endif
++
++#ifndef __size_overflow
++# define __size_overflow(...)
++#endif
++
++#ifndef __latent_entropy
++# define __latent_entropy
++#endif
 +
  /*
   * Tell gcc if a function is cold. The compiler will assume any path
   * directly leading to the call is unlikely.
-@@ -273,6 +314,22 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
+@@ -273,6 +322,22 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
  #define __cold
  #endif
  
@@ -60331,7 +60383,7 @@ index 320d6c9..8573a1c 100644
  /* Simple shorthand for a section definition */
  #ifndef __section
  # define __section(S) __attribute__ ((__section__(#S)))
-@@ -306,6 +363,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
+@@ -308,6 +373,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
   * use is to mediate communication between process-level code and irq/NMI
   * handlers, all running on the same CPU.
   */
@@ -60340,24 +60392,25 @@ index 320d6c9..8573a1c 100644
 +#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x))
  
  #endif /* __LINUX_COMPILER_H */
-diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h
-index e9eaec5..bfeb9bb 100644
---- a/include/linux/cpuset.h
-+++ b/include/linux/cpuset.h
-@@ -118,7 +118,7 @@ static inline void put_mems_allowed(void)
-        * nodemask.
-        */
-       smp_mb();
--      --ACCESS_ONCE(current->mems_allowed_change_disable);
-+      --ACCESS_ONCE_RW(current->mems_allowed_change_disable);
+diff --git a/include/linux/cred.h b/include/linux/cred.h
+index adadf71..6af5560 100644
+--- a/include/linux/cred.h
++++ b/include/linux/cred.h
+@@ -207,6 +207,9 @@ static inline void validate_creds_for_do_exit(struct task_struct *tsk)
+ static inline void validate_process_creds(void)
+ {
  }
++static inline void validate_task_creds(struct task_struct *task)
++{
++}
+ #endif
  
- static inline void set_mems_allowed(nodemask_t nodemask)
+ /**
 diff --git a/include/linux/crypto.h b/include/linux/crypto.h
-index e5e468e..f079672 100644
+index b92eadf..b4ecdc1 100644
 --- a/include/linux/crypto.h
 +++ b/include/linux/crypto.h
-@@ -361,7 +361,7 @@ struct cipher_tfm {
+@@ -373,7 +373,7 @@ struct cipher_tfm {
                          const u8 *key, unsigned int keylen);
        void (*cit_encrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
        void (*cit_decrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
@@ -60366,7 +60419,7 @@ index e5e468e..f079672 100644
  
  struct hash_tfm {
        int (*init)(struct hash_desc *desc);
-@@ -382,13 +382,13 @@ struct compress_tfm {
+@@ -394,13 +394,13 @@ struct compress_tfm {
        int (*cot_decompress)(struct crypto_tfm *tfm,
                              const u8 *src, unsigned int slen,
                              u8 *dst, unsigned int *dlen);
@@ -60396,12 +60449,12 @@ index 7925bf0..d5143d2 100644
  
  #define large_malloc(a) vmalloc(a)
 diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
-index 347fdc3..cd01657 100644
+index dfc099e..e583e66 100644
 --- a/include/linux/dma-mapping.h
 +++ b/include/linux/dma-mapping.h
-@@ -42,7 +42,7 @@ struct dma_map_ops {
-       int (*dma_supported)(struct device *dev, u64 mask);
-       int (*set_dma_mask)(struct device *dev, u64 mask);
+@@ -51,7 +51,7 @@ struct dma_map_ops {
+       u64 (*get_required_mask)(struct device *dev);
+ #endif
        int is_phys;
 -};
 +} __do_const;
@@ -60409,10 +60462,10 @@ index 347fdc3..cd01657 100644
  #define DMA_BIT_MASK(n)       (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
  
 diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 2362a0b..cfaf8fcc 100644
+index ec45ccd..9923c32 100644
 --- a/include/linux/efi.h
 +++ b/include/linux/efi.h
-@@ -446,7 +446,7 @@ struct efivar_operations {
+@@ -635,7 +635,7 @@ struct efivar_operations {
        efi_get_variable_t *get_variable;
        efi_get_next_variable_t *get_next_variable;
        efi_set_variable_t *set_variable;
@@ -60422,10 +60475,10 @@ index 2362a0b..cfaf8fcc 100644
  struct efivars {
        /*
 diff --git a/include/linux/elf.h b/include/linux/elf.h
-index 110821c..cb14c08 100644
+index 999b4f5..57753b4 100644
 --- a/include/linux/elf.h
 +++ b/include/linux/elf.h
-@@ -49,6 +49,17 @@ typedef __s64       Elf64_Sxword;
+@@ -40,6 +40,17 @@ typedef __s64       Elf64_Sxword;
  #define PT_GNU_EH_FRAME               0x6474e550
  
  #define PT_GNU_STACK  (PT_LOOS + 0x474e551)
@@ -60443,7 +60496,7 @@ index 110821c..cb14c08 100644
  
  /*
   * Extended Numbering
-@@ -106,6 +117,8 @@ typedef __s64      Elf64_Sxword;
+@@ -97,6 +108,8 @@ typedef __s64       Elf64_Sxword;
  #define DT_DEBUG      21
  #define DT_TEXTREL    22
  #define DT_JMPREL     23
@@ -60452,7 +60505,7 @@ index 110821c..cb14c08 100644
  #define DT_ENCODING   32
  #define OLD_DT_LOOS   0x60000000
  #define DT_LOOS               0x6000000d
-@@ -252,6 +265,19 @@ typedef struct elf64_hdr {
+@@ -243,6 +256,19 @@ typedef struct elf64_hdr {
  #define PF_W          0x2
  #define PF_X          0x1
  
@@ -60472,7 +60525,7 @@ index 110821c..cb14c08 100644
  typedef struct elf32_phdr{
    Elf32_Word  p_type;
    Elf32_Off   p_offset;
-@@ -344,6 +370,8 @@ typedef struct elf64_shdr {
+@@ -335,6 +361,8 @@ typedef struct elf64_shdr {
  #define       EI_OSABI        7
  #define       EI_PAD          8
  
@@ -60481,7 +60534,7 @@ index 110821c..cb14c08 100644
  #define       ELFMAG0         0x7f            /* EI_MAG */
  #define       ELFMAG1         'E'
  #define       ELFMAG2         'L'
-@@ -422,6 +450,7 @@ extern Elf32_Dyn _DYNAMIC [];
+@@ -421,6 +449,7 @@ extern Elf32_Dyn _DYNAMIC [];
  #define elf_note      elf32_note
  #define elf_addr_t    Elf32_Off
  #define Elf_Half      Elf32_Half
@@ -60489,7 +60542,7 @@ index 110821c..cb14c08 100644
  
  #else
  
-@@ -432,6 +461,7 @@ extern Elf64_Dyn _DYNAMIC [];
+@@ -431,6 +460,7 @@ extern Elf64_Dyn _DYNAMIC [];
  #define elf_note      elf64_note
  #define elf_addr_t    Elf64_Off
  #define Elf_Half      Elf64_Half
@@ -60498,7 +60551,7 @@ index 110821c..cb14c08 100644
  #endif
  
 diff --git a/include/linux/filter.h b/include/linux/filter.h
-index 741956f..f02f482 100644
+index 8eeb205..d59bfa2 100644
 --- a/include/linux/filter.h
 +++ b/include/linux/filter.h
 @@ -134,6 +134,7 @@ struct sock_fprog {        /* Required for SO_ATTACH_FILTER. */
@@ -60520,10 +60573,10 @@ index 741956f..f02f482 100644
        struct sock_filter      insns[0];
  };
 diff --git a/include/linux/firewire.h b/include/linux/firewire.h
-index 84ccf8e..2e9b14c 100644
+index cdc9b71..ce69fb5 100644
 --- a/include/linux/firewire.h
 +++ b/include/linux/firewire.h
-@@ -428,7 +428,7 @@ struct fw_iso_context {
+@@ -413,7 +413,7 @@ struct fw_iso_context {
        union {
                fw_iso_callback_t sc;
                fw_iso_mc_callback_t mc;
@@ -60533,10 +60586,10 @@ index 84ccf8e..2e9b14c 100644
  };
  
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 277f497..9be66a4 100644
+index 25c40b9..1bfd4f4 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -1588,7 +1588,8 @@ struct file_operations {
+@@ -1634,7 +1634,8 @@ struct file_operations {
        int (*setlease)(struct file *, long, struct file_lock **);
        long (*fallocate)(struct file *file, int mode, loff_t offset,
                          loff_t len);
@@ -60560,7 +60613,7 @@ index 003dc0f..3c4ea97 100644
        seqcount_t seq;
        int umask;
 diff --git a/include/linux/fscache-cache.h b/include/linux/fscache-cache.h
-index af095b5..cf1220c 100644
+index ce31408..b1ad003 100644
 --- a/include/linux/fscache-cache.h
 +++ b/include/linux/fscache-cache.h
 @@ -102,7 +102,7 @@ struct fscache_operation {
@@ -60582,10 +60635,10 @@ index af095b5..cf1220c 100644
        op->release = release;
        INIT_LIST_HEAD(&op->pend_link);
 diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h
-index 2a53f10..0187fdf 100644
+index a6dfe69..569586df 100644
 --- a/include/linux/fsnotify.h
 +++ b/include/linux/fsnotify.h
-@@ -314,7 +314,7 @@ static inline void fsnotify_change(struct dentry *dentry, unsigned int ia_valid)
+@@ -315,7 +315,7 @@ static inline void fsnotify_change(struct dentry *dentry, unsigned int ia_valid)
   */
  static inline const unsigned char *fsnotify_oldname_init(const unsigned char *name)
  {
@@ -60594,8 +60647,20 @@ index 2a53f10..0187fdf 100644
  }
  
  /*
+diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h
+index 91d0e0a3..035666b 100644
+--- a/include/linux/fsnotify_backend.h
++++ b/include/linux/fsnotify_backend.h
+@@ -105,6 +105,7 @@ struct fsnotify_ops {
+       void (*freeing_mark)(struct fsnotify_mark *mark, struct fsnotify_group *group);
+       void (*free_event_priv)(struct fsnotify_event_private_data *priv);
+ };
++typedef struct fsnotify_ops __no_const fsnotify_ops_no_const;
+ /*
+  * A group is a "thing" that wants to receive notification about filesystem
 diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
-index 96efa67..1261547 100644
+index 176a939..1462211 100644
 --- a/include/linux/ftrace_event.h
 +++ b/include/linux/ftrace_event.h
 @@ -97,7 +97,7 @@ struct trace_event_functions {
@@ -60607,7 +60672,7 @@ index 96efa67..1261547 100644
  
  struct trace_event {
        struct hlist_node               node;
-@@ -252,7 +252,7 @@ extern int trace_define_field(struct ftrace_event_call *call, const char *type,
+@@ -263,7 +263,7 @@ extern int trace_define_field(struct ftrace_event_call *call, const char *type,
  extern int trace_add_event_call(struct ftrace_event_call *call);
  extern void trace_remove_event_call(struct ftrace_event_call *call);
  
@@ -60617,10 +60682,10 @@ index 96efa67..1261547 100644
  int trace_set_clr_event(const char *system, const char *event, int set);
  
 diff --git a/include/linux/genhd.h b/include/linux/genhd.h
-index 02fa469..a15f279 100644
+index 017a7fb..33a8507 100644
 --- a/include/linux/genhd.h
 +++ b/include/linux/genhd.h
-@@ -184,7 +184,7 @@ struct gendisk {
+@@ -185,7 +185,7 @@ struct gendisk {
        struct kobject *slave_dir;
  
        struct timer_rand_state *random;
@@ -60629,12 +60694,55 @@ index 02fa469..a15f279 100644
        struct disk_events *ev;
  #ifdef  CONFIG_BLK_DEV_INTEGRITY
        struct blk_integrity *integrity;
+diff --git a/include/linux/gfp.h b/include/linux/gfp.h
+index 581e74b..8c34a24 100644
+--- a/include/linux/gfp.h
++++ b/include/linux/gfp.h
+@@ -38,6 +38,12 @@ struct vm_area_struct;
+ #define ___GFP_OTHER_NODE     0x800000u
+ #define ___GFP_WRITE          0x1000000u
++#ifdef CONFIG_PAX_USERCOPY_SLABS
++#define ___GFP_USERCOPY               0x2000000u
++#else
++#define ___GFP_USERCOPY               0
++#endif
++
+ /*
+  * GFP bitmasks..
+  *
+@@ -87,6 +93,7 @@ struct vm_area_struct;
+ #define __GFP_NO_KSWAPD       ((__force gfp_t)___GFP_NO_KSWAPD)
+ #define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE) /* On behalf of other node */
+ #define __GFP_WRITE   ((__force gfp_t)___GFP_WRITE)   /* Allocator intends to dirty page */
++#define __GFP_USERCOPY        ((__force gfp_t)___GFP_USERCOPY)/* Allocator intends to copy page to/from userland */
+ /*
+  * This may seem redundant, but it's a way of annotating false positives vs.
+@@ -94,7 +101,7 @@ struct vm_area_struct;
+  */
+ #define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK)
+-#define __GFP_BITS_SHIFT 25   /* Room for N __GFP_FOO bits */
++#define __GFP_BITS_SHIFT 26   /* Room for N __GFP_FOO bits */
+ #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
+ /* This equals 0, but use constants in case they ever change */
+@@ -148,6 +155,8 @@ struct vm_area_struct;
+ /* 4GB DMA on some platforms */
+ #define GFP_DMA32     __GFP_DMA32
++#define GFP_USERCOPY  __GFP_USERCOPY
++
+ /* Convert GFP flags to their corresponding migrate type */
+ static inline int allocflags_to_migratetype(gfp_t gfp_flags)
+ {
 diff --git a/include/linux/gracl.h b/include/linux/gracl.h
 new file mode 100644
-index 0000000..0dc3943
+index 0000000..c938b1f
 --- /dev/null
 +++ b/include/linux/gracl.h
-@@ -0,0 +1,317 @@
+@@ -0,0 +1,319 @@
 +#ifndef GR_ACL_H
 +#define GR_ACL_H
 +
@@ -60646,8 +60754,8 @@ index 0000000..0dc3943
 +
 +/* Major status information */
 +
-+#define GR_VERSION  "grsecurity 2.2.2"
-+#define GRSECURITY_VERSION 0x2202
++#define GR_VERSION  "grsecurity 2.9.1"
++#define GRSECURITY_VERSION 0x2901
 +
 +enum {
 +      GR_SHUTDOWN = 0,
@@ -60810,6 +60918,8 @@ index 0000000..0dc3943
 +      uid_t *domain_children;
 +      __u16 domain_child_num;
 +
++      umode_t umask;
++
 +      struct acl_subject_label **subj_hash;
 +      __u32 subj_hash_size;
 +};
@@ -61115,10 +61225,10 @@ index 0000000..b30e9bc
 +#endif
 diff --git a/include/linux/grinternal.h b/include/linux/grinternal.h
 new file mode 100644
-index 0000000..60cda84
+index 0000000..c9292f7
 --- /dev/null
 +++ b/include/linux/grinternal.h
-@@ -0,0 +1,220 @@
+@@ -0,0 +1,223 @@
 +#ifndef __GRINTERNAL_H
 +#define __GRINTERNAL_H
 +
@@ -61155,6 +61265,7 @@ index 0000000..60cda84
 +char *gr_to_filename3(const struct dentry *dentry,
 +                          const struct vfsmount *mnt);
 +
++extern int grsec_enable_ptrace_readexec;
 +extern int grsec_enable_harden_ptrace;
 +extern int grsec_enable_link;
 +extern int grsec_enable_fifo;
@@ -61179,6 +61290,8 @@ index 0000000..60cda84
 +extern int grsec_enable_chroot_caps;
 +extern int grsec_enable_chroot_sysctl;
 +extern int grsec_enable_chroot_unix;
++extern int grsec_enable_symlinkown;
++extern int grsec_symlinkown_gid;
 +extern int grsec_enable_tpe;
 +extern int grsec_tpe_gid;
 +extern int grsec_enable_tpe_all;
@@ -61341,10 +61454,10 @@ index 0000000..60cda84
 +#endif
 diff --git a/include/linux/grmsg.h b/include/linux/grmsg.h
 new file mode 100644
-index 0000000..9d5fd4a
+index 0000000..54f4e85
 --- /dev/null
 +++ b/include/linux/grmsg.h
-@@ -0,0 +1,108 @@
+@@ -0,0 +1,110 @@
 +#define DEFAULTSECMSG "%.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u, parent %.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u"
 +#define GR_ACL_PROCACCT_MSG "%.256s[%.16s:%d] IP:%pI4 TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u run time:[%ud %uh %um %us] cpu time:[%ud %uh %um %us] %s with exit code %ld, parent %.256s[%.16s:%d] IP:%pI4 TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u"
 +#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by "
@@ -61379,7 +61492,7 @@ index 0000000..9d5fd4a
 +#define GR_UNSAFESHARE_EXEC_ACL_MSG "denied exec with cloned fs of %.950s by "
 +#define GR_PTRACE_EXEC_ACL_MSG "denied ptrace of %.950s by "
 +#define GR_EXEC_ACL_MSG "%s execution of %.950s by "
-+#define GR_EXEC_TPE_MSG "denied untrusted exec of %.950s by "
++#define GR_EXEC_TPE_MSG "denied untrusted exec (due to %.70s) of %.950s by "
 +#define GR_SEGVSTART_ACL_MSG "possible exploit bruteforcing on " DEFAULTSECMSG " banning uid %u from login for %lu seconds"
 +#define GR_SEGVNOSUID_ACL_MSG "possible exploit bruteforcing on " DEFAULTSECMSG " banning execution for %lu seconds"
 +#define GR_MOUNT_CHROOT_MSG "denied mount of %.256s as %.930s from chroot by "
@@ -61388,7 +61501,6 @@ index 0000000..9d5fd4a
 +#define GR_ATIME_ACL_MSG "%s access time change of %.950s by "
 +#define GR_ACCESS_ACL_MSG "%s access of %.950s for%s%s%s by "
 +#define GR_CHROOT_CHROOT_MSG "denied double chroot to %.950s by "
-+#define GR_FCHMOD_ACL_MSG "%s fchmod of %.950s by "
 +#define GR_CHMOD_CHROOT_MSG "denied chmod +s of %.950s by "
 +#define GR_CHMOD_ACL_MSG "%s chmod of %.950s by "
 +#define GR_CHROOT_FCHDIR_MSG "denied fchdir outside of chroot to %.950s by "
@@ -61397,7 +61509,7 @@ index 0000000..9d5fd4a
 +#define GR_WRITLIB_ACL_MSG "denied load of writable library %.950s by "
 +#define GR_INITF_ACL_MSG "init_variables() failed %s by "
 +#define GR_DISABLED_ACL_MSG "Error loading %s, trying to run kernel with acls disabled. To disable acls at startup use <kernel image name> gracl=off from your boot loader"
-+#define GR_DEV_ACL_MSG "/dev/grsec: %d bytes sent %d required, being fed garbaged by "
++#define GR_DEV_ACL_MSG "/dev/grsec: %d bytes sent %d required, being fed garbage by "
 +#define GR_SHUTS_ACL_MSG "shutdown auth success for "
 +#define GR_SHUTF_ACL_MSG "shutdown auth failure for "
 +#define GR_SHUTI_ACL_MSG "ignoring shutdown for disabled RBAC system for "
@@ -61452,13 +61564,16 @@ index 0000000..9d5fd4a
 +#define GR_TEXTREL_AUDIT_MSG "text relocation in %s, VMA:0x%08lx 0x%08lx by "
 +#define GR_VM86_MSG "denied use of vm86 by "
 +#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by "
++#define GR_PTRACE_READEXEC_MSG "denied ptrace of unreadable binary %.950s by "
 +#define GR_INIT_TRANSFER_MSG "persistent special role transferred privilege to init by "
++#define GR_BADPROCPID_MSG "denied read of sensitive /proc/pid/%s entry via fd passed across exec by "
++#define GR_SYMLINKOWNER_MSG "denied following symlink %.950s since symlink owner %u does not match target owner %u, by "
 diff --git a/include/linux/grsecurity.h b/include/linux/grsecurity.h
 new file mode 100644
-index 0000000..bd25f72
+index 0000000..38bfb04
 --- /dev/null
 +++ b/include/linux/grsecurity.h
-@@ -0,0 +1,228 @@
+@@ -0,0 +1,233 @@
 +#ifndef GR_SECURITY_H
 +#define GR_SECURITY_H
 +#include <linux/fs.h>
@@ -61473,12 +61588,6 @@ index 0000000..bd25f72
 +#if defined(CONFIG_PAX_NOEXEC) && !defined(CONFIG_PAX_PAGEEXEC) && !defined(CONFIG_PAX_SEGMEXEC) && !defined(CONFIG_PAX_KERNEXEC)
 +#error "CONFIG_PAX_NOEXEC enabled, but PAGEEXEC, SEGMEXEC, and KERNEXEC are disabled."
 +#endif
-+#if defined(CONFIG_PAX_NOEXEC) && !defined(CONFIG_PAX_EI_PAX) && !defined(CONFIG_PAX_PT_PAX_FLAGS)
-+#error "CONFIG_PAX_NOEXEC enabled, but neither CONFIG_PAX_EI_PAX nor CONFIG_PAX_PT_PAX_FLAGS are enabled."
-+#endif
-+#if defined(CONFIG_PAX_ASLR) && (defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)) && !defined(CONFIG_PAX_EI_PAX) && !defined(CONFIG_PAX_PT_PAX_FLAGS)
-+#error "CONFIG_PAX_ASLR enabled, but neither CONFIG_PAX_EI_PAX nor CONFIG_PAX_PT_PAX_FLAGS are enabled."
-+#endif
 +#if defined(CONFIG_PAX_ASLR) && !defined(CONFIG_PAX_RANDKSTACK) && !defined(CONFIG_PAX_RANDUSTACK) && !defined(CONFIG_PAX_RANDMMAP)
 +#error "CONFIG_PAX_ASLR enabled, but RANDKSTACK, RANDUSTACK, and RANDMMAP are disabled."
 +#endif
@@ -61539,6 +61648,8 @@ index 0000000..bd25f72
 +void gr_handle_ioperm(void);
 +void gr_handle_iopl(void);
 +
++umode_t gr_acl_umask(void);
++
 +int gr_tpe_allow(const struct file *file);
 +
 +void gr_set_chroot_entries(struct task_struct *task, struct path *path);
@@ -61574,6 +61685,9 @@ index 0000000..bd25f72
 +
 +int gr_is_capable(const int cap);
 +int gr_is_capable_nolog(const int cap);
++int gr_task_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
++int gr_task_is_capable_nolog(const struct task_struct *task, const int cap);
++
 +void gr_learn_resource(const struct task_struct *task, const int limit,
 +                            const unsigned long wanted, const int gt);
 +void gr_copy_label(struct task_struct *tsk);
@@ -61593,10 +61707,8 @@ index 0000000..bd25f72
 +                               const struct vfsmount *mnt);
 +__u32 gr_acl_handle_access(const struct dentry *dentry,
 +                                const struct vfsmount *mnt, const int fmode);
-+__u32 gr_acl_handle_fchmod(const struct dentry *dentry,
-+                                const struct vfsmount *mnt, mode_t mode);
 +__u32 gr_acl_handle_chmod(const struct dentry *dentry,
-+                               const struct vfsmount *mnt, mode_t mode);
++                               const struct vfsmount *mnt, umode_t *mode);
 +__u32 gr_acl_handle_chown(const struct dentry *dentry,
 +                               const struct vfsmount *mnt);
 +__u32 gr_acl_handle_setxattr(const struct dentry *dentry,
@@ -61612,7 +61724,7 @@ index 0000000..bd25f72
 +                            const gid_t gid);
 +int gr_set_proc_label(const struct dentry *dentry,
 +                      const struct vfsmount *mnt,
-+                      const int unsafe_share);
++                      const int unsafe_flags);
 +__u32 gr_acl_handle_hidden_file(const struct dentry *dentry,
 +                              const struct vfsmount *mnt);
 +__u32 gr_acl_handle_open(const struct dentry *dentry,
@@ -61646,6 +61758,7 @@ index 0000000..bd25f72
 +                              const struct vfsmount *parent_mnt,
 +                              const struct dentry *old_dentry,
 +                              const struct vfsmount *old_mnt, const char *to);
++int gr_handle_symlink_owner(const struct path *link, const struct inode *target);
 +int gr_acl_handle_rename(struct dentry *new_dentry,
 +                              struct dentry *parent_dentry,
 +                              const struct vfsmount *parent_mnt,
@@ -61674,16 +61787,23 @@ index 0000000..bd25f72
 +void gr_audit_ptrace(struct task_struct *task);
 +dev_t gr_get_dev_from_dentry(struct dentry *dentry);
 +
++int gr_ptrace_readexec(struct file *file, int unsafe_flags);
++
 +#ifdef CONFIG_GRKERNSEC
 +void task_grsec_rbac(struct seq_file *m, struct task_struct *p);
 +void gr_handle_vm86(void);
 +void gr_handle_mem_readwrite(u64 from, u64 to);
 +
++void gr_log_badprocpid(const char *entry);
++
 +extern int grsec_enable_dmesg;
 +extern int grsec_disable_privio;
 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
 +extern int grsec_enable_chroot_findtask;
 +#endif
++#ifdef CONFIG_GRKERNSEC_SETXID
++extern int grsec_enable_setxid;
++#endif
 +#endif
 +
 +#endif
@@ -61713,10 +61833,10 @@ index 0000000..e7ffaaf
 +
 +#endif
 diff --git a/include/linux/hid.h b/include/linux/hid.h
-index 9cf8e7a..5ec94d0 100644
+index 3a95da6..51986f1 100644
 --- a/include/linux/hid.h
 +++ b/include/linux/hid.h
-@@ -676,7 +676,7 @@ struct hid_ll_driver {
+@@ -696,7 +696,7 @@ struct hid_ll_driver {
                        unsigned int code, int value);
  
        int (*parse)(struct hid_device *hdev);
@@ -61726,11 +61846,11 @@ index 9cf8e7a..5ec94d0 100644
  #define       PM_HINT_FULLON  1<<5
  #define PM_HINT_NORMAL        1<<1
 diff --git a/include/linux/highmem.h b/include/linux/highmem.h
-index 3a93f73..b19d0b3 100644
+index d3999b4..1304cb4 100644
 --- a/include/linux/highmem.h
 +++ b/include/linux/highmem.h
-@@ -185,6 +185,18 @@ static inline void clear_highpage(struct page *page)
-       kunmap_atomic(kaddr, KM_USER0);
+@@ -221,6 +221,18 @@ static inline void clear_highpage(struct page *page)
+       kunmap_atomic(kaddr);
  }
  
 +static inline void sanitize_highpage(struct page *page)
@@ -61739,9 +61859,9 @@ index 3a93f73..b19d0b3 100644
 +      unsigned long flags;
 +
 +      local_irq_save(flags);
-+      kaddr = kmap_atomic(page, KM_CLEARPAGE);
++      kaddr = kmap_atomic(page);
 +      clear_page(kaddr);
-+      kunmap_atomic(kaddr, KM_CLEARPAGE);
++      kunmap_atomic(kaddr);
 +      local_irq_restore(flags);
 +}
 +
@@ -61749,10 +61869,10 @@ index 3a93f73..b19d0b3 100644
        unsigned start1, unsigned end1,
        unsigned start2, unsigned end2)
 diff --git a/include/linux/i2c.h b/include/linux/i2c.h
-index a6c652e..1f5878f 100644
+index 195d8b3..e20cfab 100644
 --- a/include/linux/i2c.h
 +++ b/include/linux/i2c.h
-@@ -346,6 +346,7 @@ struct i2c_algorithm {
+@@ -365,6 +365,7 @@ struct i2c_algorithm {
        /* To determine what the adapter supports */
        u32 (*functionality) (struct i2c_adapter *);
  };
@@ -61761,10 +61881,10 @@ index a6c652e..1f5878f 100644
  /*
   * i2c_adapter is the structure used to identify a physical i2c bus along
 diff --git a/include/linux/i2o.h b/include/linux/i2o.h
-index a6deef4..c56a7f2 100644
+index d23c3c2..eb63c81 100644
 --- a/include/linux/i2o.h
 +++ b/include/linux/i2o.h
-@@ -564,7 +564,7 @@ struct i2o_controller {
+@@ -565,7 +565,7 @@ struct i2o_controller {
        struct i2o_device *exec;        /* Executive */
  #if BITS_PER_LONG == 64
        spinlock_t context_list_lock;   /* lock for context_list */
@@ -61773,11 +61893,76 @@ index a6deef4..c56a7f2 100644
        struct list_head context_list;  /* list of context id's
                                           and pointers */
  #endif
+diff --git a/include/linux/if_team.h b/include/linux/if_team.h
+index 58404b0..439ed95 100644
+--- a/include/linux/if_team.h
++++ b/include/linux/if_team.h
+@@ -64,6 +64,7 @@ struct team_mode_ops {
+       void (*port_leave)(struct team *team, struct team_port *port);
+       void (*port_change_mac)(struct team *team, struct team_port *port);
+ };
++typedef struct team_mode_ops __no_const team_mode_ops_no_const;
+ enum team_option_type {
+       TEAM_OPTION_TYPE_U32,
+@@ -112,7 +113,7 @@ struct team {
+       struct list_head option_list;
+       const struct team_mode *mode;
+-      struct team_mode_ops ops;
++      team_mode_ops_no_const ops;
+       long mode_priv[TEAM_MODE_PRIV_LONGS];
+ };
 diff --git a/include/linux/init.h b/include/linux/init.h
-index 9146f39..885354d 100644
+index 6b95109..bcbdd68 100644
 --- a/include/linux/init.h
 +++ b/include/linux/init.h
-@@ -293,13 +293,13 @@ void __init parse_early_options(char *cmdline);
+@@ -39,9 +39,15 @@
+  * Also note, that this data cannot be "const".
+  */
++#ifdef MODULE
++#define add_latent_entropy
++#else
++#define add_latent_entropy __latent_entropy
++#endif
++
+ /* These are for everybody (although not all archs will actually
+    discard it in modules) */
+-#define __init                __section(.init.text) __cold notrace
++#define __init                __section(.init.text) __cold notrace add_latent_entropy
+ #define __initdata    __section(.init.data)
+ #define __initconst   __section(.init.rodata)
+ #define __exitdata    __section(.exit.data)
+@@ -83,7 +89,7 @@
+ #define __exit          __section(.exit.text) __exitused __cold notrace
+ /* Used for HOTPLUG */
+-#define __devinit        __section(.devinit.text) __cold notrace
++#define __devinit        __section(.devinit.text) __cold notrace add_latent_entropy
+ #define __devinitdata    __section(.devinit.data)
+ #define __devinitconst   __section(.devinit.rodata)
+ #define __devexit        __section(.devexit.text) __exitused __cold notrace
+@@ -91,7 +97,7 @@
+ #define __devexitconst   __section(.devexit.rodata)
+ /* Used for HOTPLUG_CPU */
+-#define __cpuinit        __section(.cpuinit.text) __cold notrace
++#define __cpuinit        __section(.cpuinit.text) __cold notrace add_latent_entropy
+ #define __cpuinitdata    __section(.cpuinit.data)
+ #define __cpuinitconst   __section(.cpuinit.rodata)
+ #define __cpuexit        __section(.cpuexit.text) __exitused __cold notrace
+@@ -99,7 +105,7 @@
+ #define __cpuexitconst   __section(.cpuexit.rodata)
+ /* Used for MEMORY_HOTPLUG */
+-#define __meminit        __section(.meminit.text) __cold notrace
++#define __meminit        __section(.meminit.text) __cold notrace add_latent_entropy
+ #define __meminitdata    __section(.meminit.data)
+ #define __meminitconst   __section(.meminit.rodata)
+ #define __memexit        __section(.memexit.text) __exitused __cold notrace
+@@ -294,13 +300,13 @@ void __init parse_early_options(char *cmdline);
  
  /* Each module must use one module_init(). */
  #define module_init(initfn)                                   \
@@ -61794,12 +61979,12 @@ index 9146f39..885354d 100644
        void cleanup_module(void) __attribute__((alias(#exitfn)));
  
 diff --git a/include/linux/init_task.h b/include/linux/init_task.h
-index d14e058..4162929 100644
+index e4baff5..83bb175 100644
 --- a/include/linux/init_task.h
 +++ b/include/linux/init_task.h
-@@ -126,6 +126,12 @@ extern struct cred init_cred;
- # define INIT_PERF_EVENTS(tsk)
- #endif
+@@ -134,6 +134,12 @@ extern struct cred init_cred;
+ #define INIT_TASK_COMM "swapper"
  
 +#ifdef CONFIG_X86
 +#define INIT_TASK_THREAD_INFO .tinfo = INIT_THREAD_INFO,
@@ -61810,16 +61995,16 @@ index d14e058..4162929 100644
  /*
   *  INIT_TASK is used to set up the first task table, touch at
   * your own risk!. Base=0, limit=0x1fffff (=2MB)
-@@ -164,6 +170,7 @@ extern struct cred init_cred;
+@@ -172,6 +178,7 @@ extern struct cred init_cred;
        RCU_INIT_POINTER(.cred, &init_cred),                            \
-       .comm           = "swapper",                                    \
+       .comm           = INIT_TASK_COMM,                               \
        .thread         = INIT_THREAD,                                  \
 +      INIT_TASK_THREAD_INFO                                           \
        .fs             = &init_fs,                                     \
        .files          = &init_files,                                  \
        .signal         = &init_signals,                                \
 diff --git a/include/linux/intel-iommu.h b/include/linux/intel-iommu.h
-index 9310c69..6ebb244 100644
+index e6ca56d..8583707 100644
 --- a/include/linux/intel-iommu.h
 +++ b/include/linux/intel-iommu.h
 @@ -296,7 +296,7 @@ struct iommu_flush {
@@ -61832,10 +62017,10 @@ index 9310c69..6ebb244 100644
  enum {
        SR_DMAR_FECTL_REG,
 diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
-index f51a81b..adfcb44 100644
+index 2aea5d2..0b82f0c 100644
 --- a/include/linux/interrupt.h
 +++ b/include/linux/interrupt.h
-@@ -425,7 +425,7 @@ enum
+@@ -439,7 +439,7 @@ enum
  /* map softirq index to softirq name. update 'softirq_to_name' in
   * kernel/softirq.c when adding a new softirq.
   */
@@ -61844,7 +62029,7 @@ index f51a81b..adfcb44 100644
  
  /* softirq mask and active fields moved to irq_cpustat_t in
   * asm/hardirq.h to get better cache usage.  KAO
-@@ -433,12 +433,12 @@ extern char *softirq_to_name[NR_SOFTIRQS];
+@@ -447,12 +447,12 @@ extern char *softirq_to_name[NR_SOFTIRQS];
  
  struct softirq_action
  {
@@ -61857,10 +62042,10 @@ index f51a81b..adfcb44 100644
 -extern void open_softirq(int nr, void (*action)(struct softirq_action *));
 +extern void open_softirq(int nr, void (*action)(void));
  extern void softirq_init(void);
- static inline void __raise_softirq_irqoff(unsigned int nr)
- {
+ extern void __raise_softirq_irqoff(unsigned int nr);
 diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
-index 0df513b..fe901a2 100644
+index 3875719..4cd454c 100644
 --- a/include/linux/kallsyms.h
 +++ b/include/linux/kallsyms.h
 @@ -15,7 +15,8 @@
@@ -61878,7 +62063,7 @@ index 0df513b..fe901a2 100644
  #define __print_symbol(fmt, addr)
  #endif /*CONFIG_KALLSYMS*/
 +#else /* when included by kallsyms.c, vsnprintf.c, or
-+       arch/x86/kernel/dumpstack.c, with HIDESYM enabled */
++      arch/x86/kernel/dumpstack.c, with HIDESYM enabled */
 +extern void __print_symbol(const char *fmt, unsigned long address);
 +extern int sprint_backtrace(char *buffer, unsigned long address);
 +extern int sprint_symbol(char *buffer, unsigned long address);
@@ -61889,9 +62074,9 @@ index 0df513b..fe901a2 100644
 +#endif
  
  /* This macro allows us to keep printk typechecking */
- static void __check_printsym_format(const char *fmt, ...)
+ static __printf(1, 2)
 diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h
-index fa39183..40160be 100644
+index c4d2fc1..5df9c19 100644
 --- a/include/linux/kgdb.h
 +++ b/include/linux/kgdb.h
 @@ -53,7 +53,7 @@ extern int kgdb_connected;
@@ -61903,7 +62088,7 @@ index fa39183..40160be 100644
  
  extern struct task_struct     *kgdb_usethread;
  extern struct task_struct     *kgdb_contthread;
-@@ -251,7 +251,7 @@ struct kgdb_arch {
+@@ -252,7 +252,7 @@ struct kgdb_arch {
        void    (*disable_hw_break)(struct pt_regs *regs);
        void    (*remove_all_hw_break)(void);
        void    (*correct_hw_break)(void);
@@ -61912,7 +62097,7 @@ index fa39183..40160be 100644
  
  /**
   * struct kgdb_io - Describe the interface for an I/O driver to talk with KGDB.
-@@ -276,7 +276,7 @@ struct kgdb_io {
+@@ -277,7 +277,7 @@ struct kgdb_io {
        void                    (*pre_exception) (void);
        void                    (*post_exception) (void);
        int                     is_console;
@@ -61922,23 +62107,36 @@ index fa39183..40160be 100644
  extern struct kgdb_arch               arch_kgdb_ops;
  
 diff --git a/include/linux/kmod.h b/include/linux/kmod.h
-index 0da38cf..d23f05f 100644
+index dd99c32..da06047 100644
 --- a/include/linux/kmod.h
 +++ b/include/linux/kmod.h
 @@ -34,6 +34,8 @@ extern char modprobe_path[]; /* for sysctl */
   * usually useless though. */
- extern int __request_module(bool wait, const char *name, ...) \
      __attribute__((format(printf, 2, 3)));
-+extern int ___request_module(bool wait, char *param_name, const char *name, ...) \
-+      __attribute__((format(printf, 3, 4)));
+ extern __printf(2, 3)
int __request_module(bool wait, const char *name, ...);
++extern __printf(3, 4)
++int ___request_module(bool wait, char *param_name, const char *name, ...);
  #define request_module(mod...) __request_module(true, mod)
  #define request_module_nowait(mod...) __request_module(false, mod)
  #define try_then_request_module(x, mod...) \
+diff --git a/include/linux/kref.h b/include/linux/kref.h
+index 9c07dce..a92fa71 100644
+--- a/include/linux/kref.h
++++ b/include/linux/kref.h
+@@ -63,7 +63,7 @@ static inline void kref_get(struct kref *kref)
+ static inline int kref_sub(struct kref *kref, unsigned int count,
+            void (*release)(struct kref *kref))
+ {
+-      WARN_ON(release == NULL);
++      BUG_ON(release == NULL);
+       if (atomic_sub_and_test((int) count, &kref->refcount)) {
+               release(kref);
 diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
-index eabb21a..3f030f4 100644
+index 72cbf08..dd0201d 100644
 --- a/include/linux/kvm_host.h
 +++ b/include/linux/kvm_host.h
-@@ -308,7 +308,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vcpu);
+@@ -322,7 +322,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vcpu);
  void vcpu_load(struct kvm_vcpu *vcpu);
  void vcpu_put(struct kvm_vcpu *vcpu);
  
@@ -61947,7 +62145,7 @@ index eabb21a..3f030f4 100644
                  struct module *module);
  void kvm_exit(void);
  
-@@ -454,7 +454,7 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
+@@ -486,7 +486,7 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
                                        struct kvm_guest_debug *dbg);
  int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run);
  
@@ -61957,10 +62155,10 @@ index eabb21a..3f030f4 100644
  
  int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
 diff --git a/include/linux/libata.h b/include/linux/libata.h
-index efd6f98..5f5fd37 100644
+index 6e887c7..4539601 100644
 --- a/include/linux/libata.h
 +++ b/include/linux/libata.h
-@@ -909,7 +909,7 @@ struct ata_port_operations {
+@@ -910,7 +910,7 @@ struct ata_port_operations {
         * fields must be pointers.
         */
        const struct ata_port_operations        *inherits;
@@ -61983,10 +62181,10 @@ index 3797270..7765ede 100644
  struct mca_bus {
        u64                     default_dma_mask;
 diff --git a/include/linux/memory.h b/include/linux/memory.h
-index 935699b..11042cc 100644
+index 1ac7f6e..a5794d0 100644
 --- a/include/linux/memory.h
 +++ b/include/linux/memory.h
-@@ -144,7 +144,7 @@ struct memory_accessor {
+@@ -143,7 +143,7 @@ struct memory_accessor {
                        size_t count);
        ssize_t (*write)(struct memory_accessor *, const char *buf,
                         off_t offset, size_t count);
@@ -61996,10 +62194,10 @@ index 935699b..11042cc 100644
  /*
   * Kernel text modification mutex, used for code patching. Users of this lock
 diff --git a/include/linux/mfd/abx500.h b/include/linux/mfd/abx500.h
-index 896b5e4..1159ad0 100644
+index ee96cd5..7823c3a 100644
 --- a/include/linux/mfd/abx500.h
 +++ b/include/linux/mfd/abx500.h
-@@ -234,6 +234,7 @@ struct abx500_ops {
+@@ -455,6 +455,7 @@ struct abx500_ops {
        int (*event_registers_startup_state_get) (struct device *, u8 *);
        int (*startup_irq_enabled) (struct device *, unsigned int);
  };
@@ -62007,11 +62205,24 @@ index 896b5e4..1159ad0 100644
  
  int abx500_register_ops(struct device *core_dev, struct abx500_ops *ops);
  void abx500_remove_ops(struct device *dev);
+diff --git a/include/linux/mfd/abx500/ux500_chargalg.h b/include/linux/mfd/abx500/ux500_chargalg.h
+index 9b07725..3d55001 100644
+--- a/include/linux/mfd/abx500/ux500_chargalg.h
++++ b/include/linux/mfd/abx500/ux500_chargalg.h
+@@ -19,7 +19,7 @@ struct ux500_charger_ops {
+       int (*enable) (struct ux500_charger *, int, int, int);
+       int (*kick_wd) (struct ux500_charger *);
+       int (*update_curr) (struct ux500_charger *, int);
+-};
++} __no_const;
+ /**
+  * struct ux500_charger - power supply ux500 charger sub class
 diff --git a/include/linux/mm.h b/include/linux/mm.h
-index fedc5f0..7cedb6d 100644
+index 74aa71b..4ae97ba 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
-@@ -114,7 +114,14 @@ extern unsigned int kobjsize(const void *objp);
+@@ -116,7 +116,14 @@ extern unsigned int kobjsize(const void *objp);
  
  #define VM_CAN_NONLINEAR 0x08000000   /* Has ->fault & does nonlinear pages */
  #define VM_MIXEDMAP   0x10000000      /* Can contain "struct page" and pure PFN pages */
@@ -62026,7 +62237,7 @@ index fedc5f0..7cedb6d 100644
  #define VM_PFN_AT_MMAP        0x40000000      /* PFNMAP vma that is fully mapped at mmap time */
  #define VM_MERGEABLE  0x80000000      /* KSM may merge identical pages */
  
-@@ -1011,34 +1018,6 @@ int set_page_dirty(struct page *page);
+@@ -1013,34 +1020,6 @@ int set_page_dirty(struct page *page);
  int set_page_dirty_lock(struct page *page);
  int clear_page_dirty_for_io(struct page *page);
  
@@ -62058,10 +62269,10 @@ index fedc5f0..7cedb6d 100644
 -              !vma_growsup(vma->vm_next, addr);
 -}
 -
- extern unsigned long move_page_tables(struct vm_area_struct *vma,
-               unsigned long old_addr, struct vm_area_struct *new_vma,
-               unsigned long new_addr, unsigned long len);
-@@ -1133,6 +1112,15 @@ static inline void sync_mm_rss(struct task_struct *task, struct mm_struct *mm)
+ extern pid_t
+ vm_is_stack(struct task_struct *task, struct vm_area_struct *vma, int in_group);
+@@ -1139,6 +1118,15 @@ static inline void sync_mm_rss(struct mm_struct *mm)
  }
  #endif
  
@@ -62077,15 +62288,71 @@ index fedc5f0..7cedb6d 100644
  int vma_wants_writenotify(struct vm_area_struct *vma);
  
  extern pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr,
-@@ -1417,6 +1405,7 @@ out:
+@@ -1157,8 +1145,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
+ {
+       return 0;
  }
++
++static inline int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd,
++                                              unsigned long address)
++{
++      return 0;
++}
+ #else
+ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
++int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
+ #endif
  
+ #ifdef __PAGETABLE_PMD_FOLDED
+@@ -1167,8 +1162,15 @@ static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
+ {
+       return 0;
+ }
++
++static inline int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud,
++                                              unsigned long address)
++{
++      return 0;
++}
+ #else
+ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address);
++int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address);
+ #endif
+ int __pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -1186,11 +1188,23 @@ static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a
+               NULL: pud_offset(pgd, address);
+ }
++static inline pud_t *pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
++{
++      return (unlikely(pgd_none(*pgd)) && __pud_alloc_kernel(mm, pgd, address))?
++              NULL: pud_offset(pgd, address);
++}
++
+ static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
+ {
+       return (unlikely(pud_none(*pud)) && __pmd_alloc(mm, pud, address))?
+               NULL: pmd_offset(pud, address);
+ }
++
++static inline pmd_t *pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address)
++{
++      return (unlikely(pud_none(*pud)) && __pmd_alloc_kernel(mm, pud, address))?
++              NULL: pmd_offset(pud, address);
++}
+ #endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */
+ #if USE_SPLIT_PTLOCKS
+@@ -1400,6 +1414,7 @@ extern unsigned long do_mmap(struct file *, unsigned long,
+         unsigned long, unsigned long,
+         unsigned long, unsigned long);
  extern int do_munmap(struct mm_struct *, unsigned long, size_t);
 +extern int __do_munmap(struct mm_struct *, unsigned long, size_t);
  
- extern unsigned long do_brk(unsigned long, unsigned long);
-@@ -1474,6 +1463,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add
+ /* These take the mm semaphore themselves */
+ extern unsigned long vm_brk(unsigned long, unsigned long);
+@@ -1462,6 +1477,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add
  extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
                                             struct vm_area_struct **pprev);
  
@@ -62096,8 +62363,8 @@ index fedc5f0..7cedb6d 100644
  /* Look up the first VMA which intersects the interval start_addr..end_addr-1,
     NULL if none.  Assume start_addr < end_addr. */
  static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
-@@ -1490,15 +1483,6 @@ static inline unsigned long vma_pages(struct vm_area_struct *vma)
-       return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
+@@ -1490,15 +1509,6 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
+       return vma;
  }
  
 -#ifdef CONFIG_MMU
@@ -62112,7 +62379,7 @@ index fedc5f0..7cedb6d 100644
  struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr);
  int remap_pfn_range(struct vm_area_struct *, unsigned long addr,
                        unsigned long pfn, unsigned long size, pgprot_t);
-@@ -1612,7 +1596,7 @@ extern int unpoison_memory(unsigned long pfn);
+@@ -1602,7 +1612,7 @@ extern int unpoison_memory(unsigned long pfn);
  extern int sysctl_memory_failure_early_kill;
  extern int sysctl_memory_failure_recovery;
  extern void shake_page(struct page *p, int access);
@@ -62121,9 +62388,9 @@ index fedc5f0..7cedb6d 100644
  extern int soft_offline_page(struct page *page, int flags);
  
  extern void dump_page(struct page *page);
-@@ -1626,5 +1610,11 @@ extern void copy_user_huge_page(struct page *dst, struct page *src,
-                               unsigned int pages_per_huge_page);
- #endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */
+@@ -1633,5 +1643,11 @@ static inline unsigned int debug_guardpage_minorder(void) { return 0; }
+ static inline bool page_is_guard(struct page *page) { return false; }
+ #endif /* CONFIG_DEBUG_PAGEALLOC */
  
 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
 +extern void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot);
@@ -62134,10 +62401,10 @@ index fedc5f0..7cedb6d 100644
  #endif /* __KERNEL__ */
  #endif /* _LINUX_MM_H */
 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 10a2f62..c8fa287 100644
+index b35752f..41075a0 100644
 --- a/include/linux/mm_types.h
 +++ b/include/linux/mm_types.h
-@@ -230,6 +230,8 @@ struct vm_area_struct {
+@@ -262,6 +262,8 @@ struct vm_area_struct {
  #ifdef CONFIG_NUMA
        struct mempolicy *vm_policy;    /* NUMA policy for the VMA */
  #endif
@@ -62146,12 +62413,21 @@ index 10a2f62..c8fa287 100644
  };
  
  struct core_thread {
-@@ -362,6 +364,24 @@ struct mm_struct {
+@@ -336,7 +338,7 @@ struct mm_struct {
+       unsigned long def_flags;
+       unsigned long nr_ptes;          /* Page table pages */
+       unsigned long start_code, end_code, start_data, end_data;
+-      unsigned long start_brk, brk, start_stack;
++      unsigned long brk_gap, start_brk, brk, start_stack;
+       unsigned long arg_start, arg_end, env_start, env_end;
+       unsigned long saved_auxv[AT_VECTOR_SIZE]; /* for /proc/PID/auxv */
+@@ -398,6 +400,24 @@ struct mm_struct {
  #ifdef CONFIG_CPUMASK_OFFSTACK
        struct cpumask cpumask_allocation;
  #endif
 +
-+#if defined(CONFIG_PAX_EI_PAX) || defined(CONFIG_PAX_PT_PAX_FLAGS) || defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
++#if defined(CONFIG_PAX_EI_PAX) || defined(CONFIG_PAX_PT_PAX_FLAGS) || defined(CONFIG_PAX_XATTR_PAX_FLAGS) || defined(CONFIG_PAX_HAVE_ACL_FLAGS) || defined(CONFIG_PAX_HOOK_ACL_FLAGS)
 +      unsigned long pax_flags;
 +#endif
 +
@@ -62192,10 +62468,10 @@ index 1d1b1e1..2a13c78 100644
  
  #define pmdp_clear_flush_notify(__vma, __address, __pmdp)             \
 diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
-index be1ac8d..26868ce 100644
+index 5f6806b..49db2b2 100644
 --- a/include/linux/mmzone.h
 +++ b/include/linux/mmzone.h
-@@ -356,7 +356,7 @@ struct zone {
+@@ -380,7 +380,7 @@ struct zone {
        unsigned long           flags;             /* zone flags, see below */
  
        /* Zone statistics */
@@ -62205,7 +62481,7 @@ index be1ac8d..26868ce 100644
        /*
         * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on
 diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
-index ae28e93..1ac2233 100644
+index 501da4c..ba79bb4 100644
 --- a/include/linux/mod_devicetable.h
 +++ b/include/linux/mod_devicetable.h
 @@ -12,7 +12,7 @@
@@ -62227,18 +62503,18 @@ index ae28e93..1ac2233 100644
  struct hid_device_id {
        __u16 bus;
 diff --git a/include/linux/module.h b/include/linux/module.h
-index 1c30087..fc2a442 100644
+index fbcafe2..e5d9587 100644
 --- a/include/linux/module.h
 +++ b/include/linux/module.h
-@@ -16,6 +16,7 @@
- #include <linux/kobject.h>
+@@ -17,6 +17,7 @@
  #include <linux/moduleparam.h>
  #include <linux/tracepoint.h>
+ #include <linux/export.h>
 +#include <linux/fs.h>
  
  #include <linux/percpu.h>
  #include <asm/module.h>
-@@ -327,19 +328,16 @@ struct module
+@@ -273,19 +274,16 @@ struct module
        int (*init)(void);
  
        /* If this is non-NULL, vfree after init() returns */
@@ -62262,7 +62538,7 @@ index 1c30087..fc2a442 100644
  
        /* Arch-specific module values */
        struct mod_arch_specific arch;
-@@ -395,6 +393,10 @@ struct module
+@@ -341,6 +339,10 @@ struct module
  #ifdef CONFIG_EVENT_TRACING
        struct ftrace_event_call **trace_events;
        unsigned int num_trace_events;
@@ -62273,7 +62549,7 @@ index 1c30087..fc2a442 100644
  #endif
  #ifdef CONFIG_FTRACE_MCOUNT_RECORD
        unsigned int num_ftrace_callsites;
-@@ -445,16 +447,46 @@ bool is_module_address(unsigned long addr);
+@@ -388,16 +390,46 @@ bool is_module_address(unsigned long addr);
  bool is_module_percpu_address(unsigned long addr);
  bool is_module_text_address(unsigned long addr);
  
@@ -62325,19 +62601,22 @@ index 1c30087..fc2a442 100644
  
  /* Search for module by name: must hold module_mutex. */
 diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h
-index b2be02e..6a9fdb1 100644
+index b2be02e..72d2f78 100644
 --- a/include/linux/moduleloader.h
 +++ b/include/linux/moduleloader.h
-@@ -25,9 +25,21 @@ unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section);
-    sections.  Returns NULL on failure. */
- void *module_alloc(unsigned long size);
+@@ -23,11 +23,23 @@ unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section);
  
+ /* Allocator used for allocating struct module, core sections and init
+    sections.  Returns NULL on failure. */
+-void *module_alloc(unsigned long size);
++void *module_alloc(unsigned long size) __size_overflow(1);
++
 +#ifdef CONFIG_PAX_KERNEXEC
-+void *module_alloc_exec(unsigned long size);
++void *module_alloc_exec(unsigned long size) __size_overflow(1);
 +#else
 +#define module_alloc_exec(x) module_alloc(x)
 +#endif
-+
  /* Free memory returned from module_alloc. */
  void module_free(struct module *mod, void *module_region);
  
@@ -62351,10 +62630,10 @@ index b2be02e..6a9fdb1 100644
     or 0. */
  int apply_relocate(Elf_Shdr *sechdrs,
 diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
-index ddaae98..3c70938 100644
+index 944bc18..042d291 100644
 --- a/include/linux/moduleparam.h
 +++ b/include/linux/moduleparam.h
-@@ -255,7 +255,7 @@ static inline void __kernel_param_unlock(void)
+@@ -286,7 +286,7 @@ static inline void __kernel_param_unlock(void)
   * @len is usually just sizeof(string).
   */
  #define module_param_string(name, string, len, perm)                  \
@@ -62363,10 +62642,10 @@ index ddaae98..3c70938 100644
                = { len, string };                                      \
        __module_param_call(MODULE_PARAM_PREFIX, name,                  \
                            &param_ops_string,                          \
-@@ -370,7 +370,7 @@ extern int param_get_invbool(char *buffer, const struct kernel_param *kp);
-  * module_param_named() for why this might be necessary.
+@@ -424,7 +424,7 @@ extern int param_set_bint(const char *val, const struct kernel_param *kp);
   */
  #define module_param_array_named(name, array, type, nump, perm)               \
+       param_check_##type(name, &(array)[0]);                          \
 -      static const struct kparam_array __param_arr_##name             \
 +      static const struct kparam_array __param_arr_##name __used      \
        = { .max = ARRAY_SIZE(array), .num = nump,                      \
@@ -62401,17 +62680,26 @@ index ffc0213..2c1f2cb 100644
        return nd->saved_names[nd->depth];
  }
 diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index ddee79b..67af106 100644
+index 33900a5..2072000 100644
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -944,6 +944,7 @@ struct net_device_ops {
-       int                     (*ndo_set_features)(struct net_device *dev,
-                                                   u32 features);
+@@ -1003,6 +1003,7 @@ struct net_device_ops {
+       int                     (*ndo_neigh_construct)(struct neighbour *n);
+       void                    (*ndo_neigh_destroy)(struct neighbour *n);
  };
 +typedef struct net_device_ops __no_const net_device_ops_no_const;
  
  /*
   *    The DEVICE structure.
+@@ -1064,7 +1065,7 @@ struct net_device {
+       int                     iflink;
+       struct net_device_stats stats;
+-      atomic_long_t           rx_dropped; /* dropped packets by core network
++      atomic_long_unchecked_t rx_dropped; /* dropped packets by core network
+                                            * Do not use this in drivers.
+                                            */
 diff --git a/include/linux/netfilter/xt_gradm.h b/include/linux/netfilter/xt_gradm.h
 new file mode 100644
 index 0000000..33f4af8
@@ -62441,7 +62729,7 @@ index c65a18a..0c05f3a 100644
  extern void *prom_early_alloc(unsigned long size);
  
 diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h
-index 49c8727..34d2ae1 100644
+index a4c5624..79d6d88 100644
 --- a/include/linux/oprofile.h
 +++ b/include/linux/oprofile.h
 @@ -139,9 +139,9 @@ int oprofilefs_create_ulong(struct super_block * sb, struct dentry * root,
@@ -62456,24 +62744,11 @@ index 49c8727..34d2ae1 100644
   
  /** create a directory */
  struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root,
-diff --git a/include/linux/padata.h b/include/linux/padata.h
-index 4633b2f..988bc08 100644
---- a/include/linux/padata.h
-+++ b/include/linux/padata.h
-@@ -129,7 +129,7 @@ struct parallel_data {
-       struct padata_instance          *pinst;
-       struct padata_parallel_queue    __percpu *pqueue;
-       struct padata_serial_queue      __percpu *squeue;
--      atomic_t                        seq_nr;
-+      atomic_unchecked_t              seq_nr;
-       atomic_t                        reorder_objects;
-       atomic_t                        refcnt;
-       unsigned int                    max_seq_nr;
 diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
-index c816075..cd28c4d 100644
+index ddbb6a9..be1680e 100644
 --- a/include/linux/perf_event.h
 +++ b/include/linux/perf_event.h
-@@ -745,8 +745,8 @@ struct perf_event {
+@@ -879,8 +879,8 @@ struct perf_event {
  
        enum perf_event_active_state    state;
        unsigned int                    attach_state;
@@ -62484,7 +62759,7 @@ index c816075..cd28c4d 100644
  
        /*
         * These are the total time in nanoseconds that the event
-@@ -797,8 +797,8 @@ struct perf_event {
+@@ -931,8 +931,8 @@ struct perf_event {
         * These accumulate total time (in nanoseconds) that children
         * events have been enabled and running, respectively.
         */
@@ -62495,11 +62770,23 @@ index c816075..cd28c4d 100644
  
        /*
         * Protect attach/detach and child_list:
+diff --git a/include/linux/personality.h b/include/linux/personality.h
+index 8fc7dd1a..c19d89e 100644
+--- a/include/linux/personality.h
++++ b/include/linux/personality.h
+@@ -44,6 +44,7 @@ enum {
+ #define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC  | \
+                           ADDR_NO_RANDOMIZE  | \
+                           ADDR_COMPAT_LAYOUT | \
++                          ADDR_LIMIT_3GB     | \
+                           MMAP_PAGE_ZERO)
+ /*
 diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
-index 77257c9..51d473a 100644
+index e1ac1ce..0675fed 100644
 --- a/include/linux/pipe_fs_i.h
 +++ b/include/linux/pipe_fs_i.h
-@@ -46,9 +46,9 @@ struct pipe_buffer {
+@@ -45,9 +45,9 @@ struct pipe_buffer {
  struct pipe_inode_info {
        wait_queue_head_t wait;
        unsigned int nrbufs, curbuf, buffers;
@@ -62513,10 +62800,10 @@ index 77257c9..51d473a 100644
        unsigned int w_counter;
        struct page *tmp_page;
 diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
-index daac05d..c6802ce 100644
+index 609daae..5392427 100644
 --- a/include/linux/pm_runtime.h
 +++ b/include/linux/pm_runtime.h
-@@ -99,7 +99,7 @@ static inline bool pm_runtime_callbacks_present(struct device *dev)
+@@ -97,7 +97,7 @@ static inline bool pm_runtime_callbacks_present(struct device *dev)
  
  static inline void pm_runtime_mark_last_busy(struct device *dev)
  {
@@ -62526,7 +62813,7 @@ index daac05d..c6802ce 100644
  
  #else /* !CONFIG_PM_RUNTIME */
 diff --git a/include/linux/poison.h b/include/linux/poison.h
-index 79159de..f1233a9 100644
+index 2110a81..13a11bb 100644
 --- a/include/linux/poison.h
 +++ b/include/linux/poison.h
 @@ -19,8 +19,8 @@
@@ -62541,10 +62828,10 @@ index 79159de..f1233a9 100644
  /********** include/linux/timer.h **********/
  /*
 diff --git a/include/linux/preempt.h b/include/linux/preempt.h
-index 58969b2..ead129b 100644
+index 5a710b9..0b0dab9 100644
 --- a/include/linux/preempt.h
 +++ b/include/linux/preempt.h
-@@ -123,7 +123,7 @@ struct preempt_ops {
+@@ -126,7 +126,7 @@ struct preempt_ops {
        void (*sched_in)(struct preempt_notifier *notifier, int cpu);
        void (*sched_out)(struct preempt_notifier *notifier,
                          struct task_struct *next);
@@ -62553,15 +62840,36 @@ index 58969b2..ead129b 100644
  
  /**
   * preempt_notifier - key for installing preemption notifiers
+diff --git a/include/linux/printk.h b/include/linux/printk.h
+index 0525927..a5388b6 100644
+--- a/include/linux/printk.h
++++ b/include/linux/printk.h
+@@ -94,6 +94,8 @@ void early_printk(const char *fmt, ...);
+ extern int printk_needs_cpu(int cpu);
+ extern void printk_tick(void);
++extern int kptr_restrict;
++
+ #ifdef CONFIG_PRINTK
+ asmlinkage __printf(1, 0)
+ int vprintk(const char *fmt, va_list args);
+@@ -117,7 +119,6 @@ extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
+ extern int printk_delay_msec;
+ extern int dmesg_restrict;
+-extern int kptr_restrict;
+ void log_buf_kexec_setup(void);
+ void __init setup_log_buf(int early);
 diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
-index 643b96c..ef55a9c 100644
+index 85c5073..51fac8b 100644
 --- a/include/linux/proc_fs.h
 +++ b/include/linux/proc_fs.h
-@@ -155,6 +155,19 @@ static inline struct proc_dir_entry *proc_create(const char *name, mode_t mode,
+@@ -155,6 +155,18 @@ static inline struct proc_dir_entry *proc_create(const char *name, umode_t mode,
        return proc_create_data(name, mode, parent, proc_fops, NULL);
  }
  
-+static inline struct proc_dir_entry *proc_create_grsec(const char *name, mode_t mode,
++static inline struct proc_dir_entry *proc_create_grsec(const char *name, umode_t mode,
 +      struct proc_dir_entry *parent, const struct file_operations *proc_fops)
 +{
 +#ifdef CONFIG_GRKERNSEC_PROC_USER
@@ -62572,12 +62880,11 @@ index 643b96c..ef55a9c 100644
 +      return proc_create_data(name, mode, parent, proc_fops, NULL);
 +#endif
 +}
-+      
 +
  static inline struct proc_dir_entry *create_proc_read_entry(const char *name,
-       mode_t mode, struct proc_dir_entry *base, 
+       umode_t mode, struct proc_dir_entry *base, 
        read_proc_t *read_proc, void * data)
-@@ -258,7 +271,7 @@ union proc_op {
+@@ -258,7 +270,7 @@ union proc_op {
        int (*proc_show)(struct seq_file *m,
                struct pid_namespace *ns, struct pid *pid,
                struct task_struct *task);
@@ -62586,28 +62893,22 @@ index 643b96c..ef55a9c 100644
  
  struct ctl_table_header;
  struct ctl_table;
-diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
-index 800f113..af90cc8 100644
---- a/include/linux/ptrace.h
-+++ b/include/linux/ptrace.h
-@@ -129,10 +129,10 @@ extern void __ptrace_unlink(struct task_struct *child);
- extern void exit_ptrace(struct task_struct *tracer);
- #define PTRACE_MODE_READ   1
- #define PTRACE_MODE_ATTACH 2
--/* Returns 0 on success, -errno on denial. */
--extern int __ptrace_may_access(struct task_struct *task, unsigned int mode);
- /* Returns true on success, false on denial. */
- extern bool ptrace_may_access(struct task_struct *task, unsigned int mode);
-+/* Returns true on success, false on denial. */
-+extern bool ptrace_may_access_log(struct task_struct *task, unsigned int mode);
- static inline int ptrace_reparented(struct task_struct *child)
- {
 diff --git a/include/linux/random.h b/include/linux/random.h
-index d13059f..2eaafaa 100644
+index 8f74538..de61694 100644
 --- a/include/linux/random.h
 +++ b/include/linux/random.h
-@@ -69,12 +69,17 @@ void srandom32(u32 seed);
+@@ -54,6 +54,10 @@ extern void add_input_randomness(unsigned int type, unsigned int code,
+                                unsigned int value);
+ extern void add_interrupt_randomness(int irq);
++#ifdef CONFIG_PAX_LATENT_ENTROPY
++extern void transfer_latent_entropy(void);
++#endif
++
+ extern void get_random_bytes(void *buf, int nbytes);
+ void generate_random_uuid(unsigned char uuid_out[16]);
+@@ -69,12 +73,17 @@ void srandom32(u32 seed);
  
  u32 prandom32(struct rnd_state *);
  
@@ -62665,37 +62966,11 @@ index e0879a7..a12f962 100644
  #include <asm/emergency-restart.h>
  
  #endif
-diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h
-index 96d465f..b084e05 100644
---- a/include/linux/reiserfs_fs.h
-+++ b/include/linux/reiserfs_fs.h
-@@ -1406,7 +1406,7 @@ static inline loff_t max_reiserfs_offset(struct inode *inode)
- #define REISERFS_USER_MEM             1       /* reiserfs user memory mode            */
- #define fs_generation(s) (REISERFS_SB(s)->s_generation_counter)
--#define get_generation(s) atomic_read (&fs_generation(s))
-+#define get_generation(s) atomic_read_unchecked (&fs_generation(s))
- #define FILESYSTEM_CHANGED_TB(tb)  (get_generation((tb)->tb_sb) != (tb)->fs_gen)
- #define __fs_changed(gen,s) (gen != get_generation (s))
- #define fs_changed(gen,s)             \
-diff --git a/include/linux/reiserfs_fs_sb.h b/include/linux/reiserfs_fs_sb.h
-index 52c83b6..18ed7eb 100644
---- a/include/linux/reiserfs_fs_sb.h
-+++ b/include/linux/reiserfs_fs_sb.h
-@@ -386,7 +386,7 @@ struct reiserfs_sb_info {
-       /* Comment? -Hans */
-       wait_queue_head_t s_wait;
-       /* To be obsoleted soon by per buffer seals.. -Hans */
--      atomic_t s_generation_counter;  // increased by one every time the
-+      atomic_unchecked_t s_generation_counter;        // increased by one every time the
-       // tree gets re-balanced
-       unsigned long s_properties;     /* File system properties. Currently holds
-                                          on-disk FS format */
 diff --git a/include/linux/relay.h b/include/linux/relay.h
-index 14a86bc..17d0700 100644
+index 91cacc3..b55ff74 100644
 --- a/include/linux/relay.h
 +++ b/include/linux/relay.h
-@@ -159,7 +159,7 @@ struct rchan_callbacks
+@@ -160,7 +160,7 @@ struct rchan_callbacks
         * The callback should return 0 if successful, negative if not.
         */
        int (*remove_buf_file)(struct dentry *dentry);
@@ -62705,7 +62980,7 @@ index 14a86bc..17d0700 100644
  /*
   * CONFIG_RELAY kernel API, kernel/relay.c
 diff --git a/include/linux/rfkill.h b/include/linux/rfkill.h
-index c6c6084..5bf1212 100644
+index 6fdf027..ff72610 100644
 --- a/include/linux/rfkill.h
 +++ b/include/linux/rfkill.h
 @@ -147,6 +147,7 @@ struct rfkill_ops {
@@ -62716,23 +62991,37 @@ index c6c6084..5bf1212 100644
  
  #if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE)
  /**
+diff --git a/include/linux/rio.h b/include/linux/rio.h
+index 4d50611..c6858a2 100644
+--- a/include/linux/rio.h
++++ b/include/linux/rio.h
+@@ -315,7 +315,7 @@ struct rio_ops {
+                                int mbox, void *buffer, size_t len);
+       int (*add_inb_buffer)(struct rio_mport *mport, int mbox, void *buf);
+       void *(*get_inb_message)(struct rio_mport *mport, int mbox);
+-};
++} __no_const;
+ #define RIO_RESOURCE_MEM      0x00000100
+ #define RIO_RESOURCE_DOORBELL 0x00000200
 diff --git a/include/linux/rmap.h b/include/linux/rmap.h
-index 2148b12..519b820 100644
+index fd07c45..4676b8e 100644
 --- a/include/linux/rmap.h
 +++ b/include/linux/rmap.h
-@@ -119,8 +119,8 @@ static inline void anon_vma_unlock(struct anon_vma *anon_vma)
+@@ -119,9 +119,9 @@ static inline void anon_vma_unlock(struct anon_vma *anon_vma)
  void anon_vma_init(void);     /* create anon_vma_cachep */
  int  anon_vma_prepare(struct vm_area_struct *);
  void unlink_anon_vmas(struct vm_area_struct *);
 -int anon_vma_clone(struct vm_area_struct *, struct vm_area_struct *);
--int anon_vma_fork(struct vm_area_struct *, struct vm_area_struct *);
 +int anon_vma_clone(struct vm_area_struct *, const struct vm_area_struct *);
+ void anon_vma_moveto_tail(struct vm_area_struct *);
+-int anon_vma_fork(struct vm_area_struct *, struct vm_area_struct *);
 +int anon_vma_fork(struct vm_area_struct *, const struct vm_area_struct *);
- void __anon_vma_link(struct vm_area_struct *);
  
  static inline void anon_vma_merge(struct vm_area_struct *vma,
+                                 struct vm_area_struct *next)
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 41d0237..5a64056 100644
+index 7b06169..c92adbe 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
 @@ -100,6 +100,7 @@ struct bio_list;
@@ -62743,7 +63032,7 @@ index 41d0237..5a64056 100644
  
  /*
   * List of flags we want to share for kernel threads,
-@@ -380,10 +381,13 @@ struct user_namespace;
+@@ -382,10 +383,13 @@ struct user_namespace;
  #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
  
  extern int sysctl_max_map_count;
@@ -62757,7 +63046,7 @@ index 41d0237..5a64056 100644
  extern void arch_pick_mmap_layout(struct mm_struct *mm);
  extern unsigned long
  arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
-@@ -629,6 +633,17 @@ struct signal_struct {
+@@ -643,6 +647,17 @@ struct signal_struct {
  #ifdef CONFIG_TASKSTATS
        struct taskstats *stats;
  #endif
@@ -62775,7 +63064,7 @@ index 41d0237..5a64056 100644
  #ifdef CONFIG_AUDIT
        unsigned audit_tty;
        struct tty_audit_buf *tty_audit_buf;
-@@ -710,6 +725,11 @@ struct user_struct {
+@@ -726,6 +741,11 @@ struct user_struct {
        struct key *session_keyring;    /* UID's default session keyring */
  #endif
  
@@ -62787,7 +63076,7 @@ index 41d0237..5a64056 100644
        /* Hash table maintenance information */
        struct hlist_node uidhash_node;
        uid_t uid;
-@@ -1340,8 +1360,8 @@ struct task_struct {
+@@ -1386,8 +1406,8 @@ struct task_struct {
        struct list_head thread_group;
  
        struct completion *vfork_done;          /* for vfork() */
@@ -62798,7 +63087,7 @@ index 41d0237..5a64056 100644
  
        cputime_t utime, stime, utimescaled, stimescaled;
        cputime_t gtime;
-@@ -1357,13 +1377,6 @@ struct task_struct {
+@@ -1403,13 +1423,6 @@ struct task_struct {
        struct task_cputime cputime_expires;
        struct list_head cpu_timers[3];
  
@@ -62812,7 +63101,7 @@ index 41d0237..5a64056 100644
        char comm[TASK_COMM_LEN]; /* executable name excluding path
                                     - access with [gs]et_task_comm (which lock
                                       it with task_lock())
-@@ -1380,8 +1393,16 @@ struct task_struct {
+@@ -1426,8 +1439,16 @@ struct task_struct {
  #endif
  /* CPU-specific state of this task */
        struct thread_struct thread;
@@ -62829,7 +63118,7 @@ index 41d0237..5a64056 100644
  /* open file information */
        struct files_struct *files;
  /* namespaces */
-@@ -1428,6 +1449,11 @@ struct task_struct {
+@@ -1469,6 +1490,11 @@ struct task_struct {
        struct rt_mutex_waiter *pi_blocked_on;
  #endif
  
@@ -62841,13 +63130,19 @@ index 41d0237..5a64056 100644
  #ifdef CONFIG_DEBUG_MUTEXES
        /* mutex deadlock detection */
        struct mutex_waiter *blocked_on;
-@@ -1537,6 +1563,21 @@ struct task_struct {
+@@ -1585,6 +1611,27 @@ struct task_struct {
        unsigned long default_timer_slack_ns;
  
        struct list_head        *scm_work_list;
 +
 +#ifdef CONFIG_GRKERNSEC
 +      /* grsecurity */
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      u64 exec_id;
++#endif
++#ifdef CONFIG_GRKERNSEC_SETXID
++      const struct cred *delayed_cred;
++#endif
 +      struct dentry *gr_chroot_dentry;
 +      struct acl_subject_label *acl;
 +      struct acl_role_label *role;
@@ -62863,7 +63158,7 @@ index 41d0237..5a64056 100644
  #ifdef CONFIG_FUNCTION_GRAPH_TRACER
        /* Index of current stored address in ret_stack */
        int curr_ret_stack;
-@@ -1571,6 +1612,57 @@ struct task_struct {
+@@ -1619,6 +1666,51 @@ struct task_struct {
  #endif
  };
  
@@ -62910,18 +63205,12 @@ index 41d0237..5a64056 100644
 +extern void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
 +extern void pax_report_insns(struct pt_regs *regs, void *pc, void *sp);
 +extern void pax_report_refcount_overflow(struct pt_regs *regs);
-+extern NORET_TYPE void pax_report_usercopy(const void *ptr, unsigned long len, bool to, const char *type) ATTRIB_NORET;
-+
-+#ifdef CONFIG_PAX_MEMORY_STACKLEAK
-+extern void pax_track_stack(void);
-+#else
-+static inline void pax_track_stack(void) {}
-+#endif
++extern void check_object_size(const void *ptr, unsigned long n, bool to);
 +
  /* Future-safe accessor for struct task_struct's cpus_allowed. */
  #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
  
-@@ -2074,7 +2166,9 @@ void yield(void);
+@@ -2146,7 +2238,9 @@ void yield(void);
  extern struct exec_domain     default_exec_domain;
  
  union thread_union {
@@ -62931,7 +63220,7 @@ index 41d0237..5a64056 100644
        unsigned long stack[THREAD_SIZE/sizeof(long)];
  };
  
-@@ -2107,6 +2201,7 @@ extern struct pid_namespace init_pid_ns;
+@@ -2179,6 +2273,7 @@ extern struct pid_namespace init_pid_ns;
   */
  
  extern struct task_struct *find_task_by_vpid(pid_t nr);
@@ -62939,16 +63228,16 @@ index 41d0237..5a64056 100644
  extern struct task_struct *find_task_by_pid_ns(pid_t nr,
                struct pid_namespace *ns);
  
-@@ -2243,7 +2338,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
+@@ -2322,7 +2417,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
  extern void exit_itimers(struct signal_struct *);
  extern void flush_itimer_signals(void);
  
--extern NORET_TYPE void do_group_exit(int);
-+extern NORET_TYPE void do_group_exit(int) ATTRIB_NORET;
+-extern void do_group_exit(int);
++extern __noreturn void do_group_exit(int);
  
  extern void daemonize(const char *, ...);
  extern int allow_signal(int);
-@@ -2408,13 +2503,17 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
+@@ -2523,9 +2618,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
  
  #endif
  
@@ -62960,14 +63249,6 @@ index 41d0237..5a64056 100644
  
        return (obj >= stack) && (obj < (stack + THREAD_SIZE));
  }
-+#ifdef CONFIG_PAX_USERCOPY
-+extern int object_is_on_stack(const void *obj, unsigned long len);
-+#endif
-+
- extern void thread_info_cache_init(void);
- #ifdef CONFIG_DEBUG_STACK_USAGE
 diff --git a/include/linux/screen_info.h b/include/linux/screen_info.h
 index 899fbb4..1cb4138 100644
 --- a/include/linux/screen_info.h
@@ -62983,22 +63264,32 @@ index 899fbb4..1cb4138 100644
  
  #define VIDEO_TYPE_MDA                0x10    /* Monochrome Text Display      */
 diff --git a/include/linux/security.h b/include/linux/security.h
-index ebd2a53..2d949ae 100644
+index 673afbb..2b7454b 100644
 --- a/include/linux/security.h
 +++ b/include/linux/security.h
-@@ -36,6 +36,7 @@
- #include <linux/key.h>
- #include <linux/xfrm.h>
+@@ -26,6 +26,7 @@
+ #include <linux/capability.h>
  #include <linux/slab.h>
+ #include <linux/err.h>
 +#include <linux/grsecurity.h>
- #include <net/flow.h>
  
- /* Maximum number of letters for an LSM name string */
+ struct linux_binprm;
+ struct cred;
 diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
-index be720cd..a0e1b94 100644
+index fc61854..d7c490b 100644
 --- a/include/linux/seq_file.h
 +++ b/include/linux/seq_file.h
-@@ -33,6 +33,7 @@ struct seq_operations {
+@@ -25,6 +25,9 @@ struct seq_file {
+       struct mutex lock;
+       const struct seq_operations *op;
+       int poll_event;
++#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
++      u64 exec_id;
++#endif
+       void *private;
+ };
+@@ -34,6 +37,7 @@ struct seq_operations {
        void * (*next) (struct seq_file *m, void *v, loff_t *pos);
        int (*show) (struct seq_file *m, void *v);
  };
@@ -63022,10 +63313,10 @@ index 92808b8..c28cac4 100644
  
  /* shm_mode upper byte flags */
 diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index 0f96646..cfb757a 100644
+index c1bae8d..2dbcd31 100644
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -610,7 +610,7 @@ static inline struct skb_shared_hwtstamps *skb_hwtstamps(struct sk_buff *skb)
+@@ -663,7 +663,7 @@ static inline struct skb_shared_hwtstamps *skb_hwtstamps(struct sk_buff *skb)
   */
  static inline int skb_queue_empty(const struct sk_buff_head *list)
  {
@@ -63034,7 +63325,7 @@ index 0f96646..cfb757a 100644
  }
  
  /**
-@@ -623,7 +623,7 @@ static inline int skb_queue_empty(const struct sk_buff_head *list)
+@@ -676,7 +676,7 @@ static inline int skb_queue_empty(const struct sk_buff_head *list)
  static inline bool skb_queue_is_last(const struct sk_buff_head *list,
                                     const struct sk_buff *skb)
  {
@@ -63043,7 +63334,7 @@ index 0f96646..cfb757a 100644
  }
  
  /**
-@@ -636,7 +636,7 @@ static inline bool skb_queue_is_last(const struct sk_buff_head *list,
+@@ -689,7 +689,7 @@ static inline bool skb_queue_is_last(const struct sk_buff_head *list,
  static inline bool skb_queue_is_first(const struct sk_buff_head *list,
                                      const struct sk_buff *skb)
  {
@@ -63052,7 +63343,7 @@ index 0f96646..cfb757a 100644
  }
  
  /**
-@@ -1458,7 +1458,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
+@@ -1584,7 +1584,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
@@ -63062,7 +63353,7 @@ index 0f96646..cfb757a 100644
  
  extern int ___pskb_trim(struct sk_buff *skb, unsigned int len);
 diff --git a/include/linux/slab.h b/include/linux/slab.h
-index 573c809..e84c132 100644
+index a595dce..dfab0d2 100644
 --- a/include/linux/slab.h
 +++ b/include/linux/slab.h
 @@ -11,12 +11,20 @@
@@ -63077,7 +63368,7 @@ index 573c809..e84c132 100644
   */
  #define SLAB_DEBUG_FREE               0x00000100UL    /* DEBUG: Perform (expensive) checks on free */
 +
-+#ifdef CONFIG_PAX_USERCOPY
++#ifdef CONFIG_PAX_USERCOPY_SLABS
 +#define SLAB_USERCOPY         0x00000200UL    /* PaX: Allow copying objs to/from userland */
 +#else
 +#define SLAB_USERCOPY         0x00000000UL
@@ -63103,79 +63394,46 @@ index 573c809..e84c132 100644
  
  /*
   * struct kmem_cache related prototypes
-@@ -161,6 +172,7 @@ void * __must_check krealloc(const void *, size_t, gfp_t);
+@@ -161,6 +172,8 @@ void * __must_check krealloc(const void *, size_t, gfp_t);
  void kfree(const void *);
  void kzfree(const void *);
  size_t ksize(const void *);
-+void check_object_size(const void *ptr, unsigned long n, bool to);
++const char *check_heap_object(const void *ptr, unsigned long n, bool to);
++bool is_usercopy_object(const void *ptr);
  
  /*
   * Allocator specific definitions. These are mainly used to establish optimized
-@@ -353,4 +365,59 @@ static inline void *kzalloc_node(size_t size, gfp_t flags, int node)
- void __init kmem_cache_init_late(void);
-+#define kmalloc(x, y)                                         \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "kmalloc size overflow\n"))  \
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = kmalloc((size_t)___x, (y));         \
-+      ___retval;                                              \
-+})
-+
-+#define kmalloc_node(x, y, z)                                 \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "kmalloc_node size overflow\n"))\
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = kmalloc_node((size_t)___x, (y), (z));\
-+      ___retval;                                              \
-+})
-+
-+#define kzalloc(x, y)                                         \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "kzalloc size overflow\n"))  \
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = kzalloc((size_t)___x, (y));         \
-+      ___retval;                                              \
-+})
-+
-+#define __krealloc(x, y, z)                                   \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___y = (intoverflow_t)y;                  \
-+      if (WARN(___y > ULONG_MAX, "__krealloc size overflow\n"))\
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = __krealloc((x), (size_t)___y, (z)); \
-+      ___retval;                                              \
-+})
-+
-+#define krealloc(x, y, z)                                     \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___y = (intoverflow_t)y;                  \
-+      if (WARN(___y > ULONG_MAX, "krealloc size overflow\n")) \
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = krealloc((x), (size_t)___y, (z));   \
-+      ___retval;                                              \
-+})
-+
- #endif        /* _LINUX_SLAB_H */
+@@ -240,6 +253,7 @@ size_t ksize(const void *);
+  * for general use, and so are not documented here. For a full list of
+  * potential flags, always refer to linux/gfp.h.
+  */
++static void *kmalloc_array(size_t n, size_t size, gfp_t flags) __size_overflow(1, 2);
+ static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
+ {
+       if (size != 0 && n > ULONG_MAX / size)
+@@ -298,7 +312,7 @@ static inline void *kmem_cache_alloc_node(struct kmem_cache *cachep,
+  */
+ #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \
+       (defined(CONFIG_SLAB) && defined(CONFIG_TRACING))
+-extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long);
++extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long) __size_overflow(1);
+ #define kmalloc_track_caller(size, flags) \
+       __kmalloc_track_caller(size, flags, _RET_IP_)
+ #else
+@@ -317,7 +331,7 @@ extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long);
+  */
+ #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \
+       (defined(CONFIG_SLAB) && defined(CONFIG_TRACING))
+-extern void *__kmalloc_node_track_caller(size_t, gfp_t, int, unsigned long);
++extern void *__kmalloc_node_track_caller(size_t, gfp_t, int, unsigned long) __size_overflow(1);
+ #define kmalloc_node_track_caller(size, flags, node) \
+       __kmalloc_node_track_caller(size, flags, node, \
+                       _RET_IP_)
 diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h
-index d00e0ba..1b3bf7b 100644
+index fbd1117..0a3d314 100644
 --- a/include/linux/slab_def.h
 +++ b/include/linux/slab_def.h
-@@ -68,10 +68,10 @@ struct kmem_cache {
+@@ -66,10 +66,10 @@ struct kmem_cache {
        unsigned long node_allocs;
        unsigned long node_frees;
        unsigned long node_overflow;
@@ -63190,11 +63448,87 @@ index d00e0ba..1b3bf7b 100644
  
        /*
         * If debugging is enabled, then the allocator can add additional
+@@ -103,11 +103,16 @@ struct cache_sizes {
+ #ifdef CONFIG_ZONE_DMA
+       struct kmem_cache       *cs_dmacachep;
+ #endif
++
++#ifdef CONFIG_PAX_USERCOPY_SLABS
++      struct kmem_cache       *cs_usercopycachep;
++#endif
++
+ };
+ extern struct cache_sizes malloc_sizes[];
+ void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
+-void *__kmalloc(size_t size, gfp_t flags);
++void *__kmalloc(size_t size, gfp_t flags) __size_overflow(1);
+ #ifdef CONFIG_TRACING
+ extern void *kmem_cache_alloc_trace(size_t size,
+@@ -150,6 +155,13 @@ found:
+                       cachep = malloc_sizes[i].cs_dmacachep;
+               else
+ #endif
++
++#ifdef CONFIG_PAX_USERCOPY_SLABS
++              if (flags & GFP_USERCOPY)
++                      cachep = malloc_sizes[i].cs_usercopycachep;
++              else
++#endif
++
+                       cachep = malloc_sizes[i].cs_cachep;
+               ret = kmem_cache_alloc_trace(size, cachep, flags);
+@@ -160,7 +172,7 @@ found:
+ }
+ #ifdef CONFIG_NUMA
+-extern void *__kmalloc_node(size_t size, gfp_t flags, int node);
++extern void *__kmalloc_node(size_t size, gfp_t flags, int node) __size_overflow(1);
+ extern void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
+ #ifdef CONFIG_TRACING
+@@ -203,6 +215,13 @@ found:
+                       cachep = malloc_sizes[i].cs_dmacachep;
+               else
+ #endif
++
++#ifdef CONFIG_PAX_USERCOPY_SLABS
++              if (flags & GFP_USERCOPY)
++                      cachep = malloc_sizes[i].cs_usercopycachep;
++              else
++#endif
++
+                       cachep = malloc_sizes[i].cs_cachep;
+               return kmem_cache_alloc_node_trace(size, cachep, flags, node);
+diff --git a/include/linux/slob_def.h b/include/linux/slob_def.h
+index 0ec00b3..39cb7fc 100644
+--- a/include/linux/slob_def.h
++++ b/include/linux/slob_def.h
+@@ -9,7 +9,7 @@ static __always_inline void *kmem_cache_alloc(struct kmem_cache *cachep,
+       return kmem_cache_alloc_node(cachep, flags, -1);
+ }
+-void *__kmalloc_node(size_t size, gfp_t flags, int node);
++void *__kmalloc_node(size_t size, gfp_t flags, int node) __size_overflow(1);
+ static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
+ {
+@@ -29,6 +29,7 @@ static __always_inline void *kmalloc(size_t size, gfp_t flags)
+       return __kmalloc_node(size, flags, -1);
+ }
++static __always_inline void *__kmalloc(size_t size, gfp_t flags) __size_overflow(1);
+ static __always_inline void *__kmalloc(size_t size, gfp_t flags)
+ {
+       return kmalloc(size, flags);
 diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
-index f58d641..c56bf9c 100644
+index c2f8c8b..be9e036 100644
 --- a/include/linux/slub_def.h
 +++ b/include/linux/slub_def.h
-@@ -85,7 +85,7 @@ struct kmem_cache {
+@@ -92,7 +92,7 @@ struct kmem_cache {
        struct kmem_cache_order_objects max;
        struct kmem_cache_order_objects min;
        gfp_t allocflags;       /* gfp flags to use on each alloc */
@@ -63203,15 +63537,40 @@ index f58d641..c56bf9c 100644
        void (*ctor)(void *);
        int inuse;              /* Offset to metadata */
        int align;              /* Alignment */
-@@ -211,7 +211,7 @@ static __always_inline struct kmem_cache *kmalloc_slab(size_t size)
+@@ -153,6 +153,7 @@ extern struct kmem_cache *kmalloc_caches[SLUB_PAGE_SHIFT];
+  * Sorry that the following has to be that ugly but some versions of GCC
+  * have trouble with constant propagation and loops.
+  */
++static __always_inline int kmalloc_index(size_t size) __size_overflow(1);
+ static __always_inline int kmalloc_index(size_t size)
+ {
+       if (!size)
+@@ -218,7 +219,7 @@ static __always_inline struct kmem_cache *kmalloc_slab(size_t size)
  }
  
  void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
 -void *__kmalloc(size_t size, gfp_t flags);
-+void *__kmalloc(size_t size, gfp_t flags) __alloc_size(1);
++void *__kmalloc(size_t size, gfp_t flags) __alloc_size(1) __size_overflow(1);
  
  static __always_inline void *
  kmalloc_order(size_t size, gfp_t flags, unsigned int order)
+@@ -259,6 +260,7 @@ kmalloc_order_trace(size_t size, gfp_t flags, unsigned int order)
+ }
+ #endif
++static __always_inline void *kmalloc_large(size_t size, gfp_t flags) __size_overflow(1);
+ static __always_inline void *kmalloc_large(size_t size, gfp_t flags)
+ {
+       unsigned int order = get_order(size);
+@@ -284,7 +286,7 @@ static __always_inline void *kmalloc(size_t size, gfp_t flags)
+ }
+ #ifdef CONFIG_NUMA
+-void *__kmalloc_node(size_t size, gfp_t flags, int node);
++void *__kmalloc_node(size_t size, gfp_t flags, int node) __size_overflow(1);
+ void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
+ #ifdef CONFIG_TRACING
 diff --git a/include/linux/sonet.h b/include/linux/sonet.h
 index de8832d..0147b46 100644
 --- a/include/linux/sonet.h
@@ -63226,10 +63585,10 @@ index de8832d..0147b46 100644
  #undef __HANDLE_ITEM
  };
 diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
-index db7bcaf..1aca77e 100644
+index 523547e..2cb7140 100644
 --- a/include/linux/sunrpc/clnt.h
 +++ b/include/linux/sunrpc/clnt.h
-@@ -169,9 +169,9 @@ static inline unsigned short rpc_get_port(const struct sockaddr *sap)
+@@ -174,9 +174,9 @@ static inline unsigned short rpc_get_port(const struct sockaddr *sap)
  {
        switch (sap->sa_family) {
        case AF_INET:
@@ -63241,7 +63600,7 @@ index db7bcaf..1aca77e 100644
        }
        return 0;
  }
-@@ -204,7 +204,7 @@ static inline bool __rpc_cmp_addr4(const struct sockaddr *sap1,
+@@ -209,7 +209,7 @@ static inline bool __rpc_cmp_addr4(const struct sockaddr *sap1,
  static inline bool __rpc_copy_addr4(struct sockaddr *dst,
                                    const struct sockaddr *src)
  {
@@ -63250,7 +63609,7 @@ index db7bcaf..1aca77e 100644
        struct sockaddr_in *dsin = (struct sockaddr_in *) dst;
  
        dsin->sin_family = ssin->sin_family;
-@@ -301,7 +301,7 @@ static inline u32 rpc_get_scope_id(const struct sockaddr *sa)
+@@ -312,7 +312,7 @@ static inline u32 rpc_get_scope_id(const struct sockaddr *sa)
        if (sa->sa_family != AF_INET6)
                return 0;
  
@@ -63260,11 +63619,11 @@ index db7bcaf..1aca77e 100644
  
  #endif /* __KERNEL__ */
 diff --git a/include/linux/sunrpc/sched.h b/include/linux/sunrpc/sched.h
-index e775689..9e206d9 100644
+index dc0c3cc..8503fb6 100644
 --- a/include/linux/sunrpc/sched.h
 +++ b/include/linux/sunrpc/sched.h
-@@ -105,6 +105,7 @@ struct rpc_call_ops {
-       void (*rpc_call_done)(struct rpc_task *, void *);
+@@ -106,6 +106,7 @@ struct rpc_call_ops {
+       void (*rpc_count_stats)(struct rpc_task *, void *);
        void (*rpc_release)(void *);
  };
 +typedef struct rpc_call_ops __no_const rpc_call_ops_no_const;
@@ -63272,7 +63631,7 @@ index e775689..9e206d9 100644
  struct rpc_task_setup {
        struct rpc_task *task;
 diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h
-index c14fe86..393245e 100644
+index 0b8e3e6..33e0a01 100644
 --- a/include/linux/sunrpc/svc_rdma.h
 +++ b/include/linux/sunrpc/svc_rdma.h
 @@ -53,15 +53,15 @@ extern unsigned int svcrdma_ord;
@@ -63301,7 +63660,7 @@ index c14fe86..393245e 100644
  #define RPCRDMA_VERSION 1
  
 diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
-index 11684d9..0d245eb 100644
+index c34b4c8..a65b67d 100644
 --- a/include/linux/sysctl.h
 +++ b/include/linux/sysctl.h
 @@ -155,7 +155,11 @@ enum
@@ -63317,7 +63676,7 @@ index 11684d9..0d245eb 100644
  
  /* CTL_VM names: */
  enum
-@@ -967,6 +971,8 @@ typedef int proc_handler (struct ctl_table *ctl, int write,
+@@ -948,6 +952,8 @@ typedef int proc_handler (struct ctl_table *ctl, int write,
  
  extern int proc_dostring(struct ctl_table *, int,
                         void __user *, size_t *, loff_t *);
@@ -63340,10 +63699,10 @@ index ff7dc08..893e1bd 100644
  
  struct tty_ldisc {
 diff --git a/include/linux/types.h b/include/linux/types.h
-index 176da8c..e45e473 100644
+index 7f480db..175c256 100644
 --- a/include/linux/types.h
 +++ b/include/linux/types.h
-@@ -213,10 +213,26 @@ typedef struct {
+@@ -220,10 +220,26 @@ typedef struct {
        int counter;
  } atomic_t;
  
@@ -63432,11 +63791,33 @@ index 99c1b4d..bb94261 100644
  }
  
  static inline void put_unaligned_le16(u16 val, void *p)
+diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h
+index 547e59c..db6ad19 100644
+--- a/include/linux/usb/renesas_usbhs.h
++++ b/include/linux/usb/renesas_usbhs.h
+@@ -39,7 +39,7 @@ enum {
+  */
+ struct renesas_usbhs_driver_callback {
+       int (*notify_hotplug)(struct platform_device *pdev);
+-};
++} __no_const;
+ /*
+  * callback functions for platform
+@@ -97,7 +97,7 @@ struct renesas_usbhs_platform_callback {
+        * VBUS control is needed for Host
+        */
+       int (*set_vbus)(struct platform_device *pdev, int enable);
+-};
++} __no_const;
+ /*
+  * parameters for renesas usbhs
 diff --git a/include/linux/vermagic.h b/include/linux/vermagic.h
-index cf97b5b..40ebc87 100644
+index 6f8fbcf..8259001 100644
 --- a/include/linux/vermagic.h
 +++ b/include/linux/vermagic.h
-@@ -26,9 +26,35 @@
+@@ -25,9 +25,35 @@
  #define MODULE_ARCH_VERMAGIC ""
  #endif
  
@@ -63474,7 +63855,7 @@ index cf97b5b..40ebc87 100644
 +      MODULE_GRSEC
  
 diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h
-index 687fb11..b342358 100644
+index dcdfc2b..ec79ab5 100644
 --- a/include/linux/vmalloc.h
 +++ b/include/linux/vmalloc.h
 @@ -14,6 +14,11 @@ struct vm_area_struct;              /* vma defining user mapping in mm_types.h */
@@ -63489,110 +63870,26 @@ index 687fb11..b342358 100644
  /* bits [20..32] reserved for arch specific ioremap internals */
  
  /*
-@@ -156,4 +161,103 @@ pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms)
- # endif
- #endif
+@@ -62,7 +67,7 @@ extern void *vmalloc_32_user(unsigned long size);
+ extern void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot);
+ extern void *__vmalloc_node_range(unsigned long size, unsigned long align,
+                       unsigned long start, unsigned long end, gfp_t gfp_mask,
+-                      pgprot_t prot, int node, void *caller);
++                      pgprot_t prot, int node, void *caller) __size_overflow(1);
+ extern void vfree(const void *addr);
+ extern void *vmap(struct page **pages, unsigned int count,
+@@ -123,8 +128,8 @@ extern struct vm_struct *alloc_vm_area(size_t size, pte_t **ptes);
+ extern void free_vm_area(struct vm_struct *area);
+ /* for /dev/kmem */
+-extern long vread(char *buf, char *addr, unsigned long count);
+-extern long vwrite(char *buf, char *addr, unsigned long count);
++extern long vread(char *buf, char *addr, unsigned long count) __size_overflow(3);
++extern long vwrite(char *buf, char *addr, unsigned long count) __size_overflow(3);
  
-+#define vmalloc(x)                                            \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "vmalloc size overflow\n"))  \
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = vmalloc((unsigned long)___x);       \
-+      ___retval;                                              \
-+})
-+
-+#define vzalloc(x)                                            \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "vzalloc size overflow\n"))  \
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = vzalloc((unsigned long)___x);       \
-+      ___retval;                                              \
-+})
-+
-+#define __vmalloc(x, y, z)                                    \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "__vmalloc size overflow\n"))\
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = __vmalloc((unsigned long)___x, (y), (z));\
-+      ___retval;                                              \
-+})
-+
-+#define vmalloc_user(x)                                               \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "vmalloc_user size overflow\n"))\
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = vmalloc_user((unsigned long)___x);  \
-+      ___retval;                                              \
-+})
-+
-+#define vmalloc_exec(x)                                               \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "vmalloc_exec size overflow\n"))\
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = vmalloc_exec((unsigned long)___x);  \
-+      ___retval;                                              \
-+})
-+
-+#define vmalloc_node(x, y)                                    \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "vmalloc_node size overflow\n"))\
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = vmalloc_node((unsigned long)___x, (y));\
-+      ___retval;                                              \
-+})
-+
-+#define vzalloc_node(x, y)                                    \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "vzalloc_node size overflow\n"))\
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = vzalloc_node((unsigned long)___x, (y));\
-+      ___retval;                                              \
-+})
-+
-+#define vmalloc_32(x)                                         \
-+({                                                            \
-+      void *___retval;                                        \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "vmalloc_32 size overflow\n"))\
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = vmalloc_32((unsigned long)___x);    \
-+      ___retval;                                              \
-+})
-+
-+#define vmalloc_32_user(x)                                    \
-+({                                                            \
-+void *___retval;                                      \
-+      intoverflow_t ___x = (intoverflow_t)x;                  \
-+      if (WARN(___x > ULONG_MAX, "vmalloc_32_user size overflow\n"))\
-+              ___retval = NULL;                               \
-+      else                                                    \
-+              ___retval = vmalloc_32_user((unsigned long)___x);\
-+      ___retval;                                              \
-+})
-+
- #endif /* _LINUX_VMALLOC_H */
+ /*
+  *    Internals.  Dont't use..
 diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
 index 65efb92..137adbb 100644
 --- a/include/linux/vmstat.h
@@ -63660,6 +63957,22 @@ index 65efb92..137adbb 100644
  }
  
  static inline void __dec_zone_page_state(struct page *page,
+diff --git a/include/linux/xattr.h b/include/linux/xattr.h
+index e5d1220..ef6e406 100644
+--- a/include/linux/xattr.h
++++ b/include/linux/xattr.h
+@@ -57,6 +57,11 @@
+ #define XATTR_POSIX_ACL_DEFAULT  "posix_acl_default"
+ #define XATTR_NAME_POSIX_ACL_DEFAULT XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_DEFAULT
++/* User namespace */
++#define XATTR_PAX_PREFIX XATTR_USER_PREFIX "pax."
++#define XATTR_PAX_FLAGS_SUFFIX "flags"
++#define XATTR_NAME_PAX_FLAGS XATTR_PAX_PREFIX XATTR_PAX_FLAGS_SUFFIX
++
+ #ifdef  __KERNEL__
+ #include <linux/types.h>
 diff --git a/include/media/saa7146_vv.h b/include/media/saa7146_vv.h
 index 4aeff96..b378cdc 100644
 --- a/include/media/saa7146_vv.h
@@ -63674,7 +63987,7 @@ index 4aeff96..b378cdc 100644
        const struct v4l2_ioctl_ops *core_ops;
  
 diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
-index c7c40f1..4f01585 100644
+index 96d2221..2292f89 100644
 --- a/include/media/v4l2-dev.h
 +++ b/include/media/v4l2-dev.h
 @@ -56,7 +56,7 @@ int v4l2_prio_check(struct v4l2_prio_state *global, enum v4l2_priority local);
@@ -63686,7 +63999,7 @@ index c7c40f1..4f01585 100644
        ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
        ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
        unsigned int (*poll) (struct file *, struct poll_table_struct *);
-@@ -68,6 +68,7 @@ struct v4l2_file_operations {
+@@ -71,6 +71,7 @@ struct v4l2_file_operations {
        int (*open) (struct file *);
        int (*release) (struct file *);
  };
@@ -63695,10 +64008,10 @@ index c7c40f1..4f01585 100644
  /*
   * Newer version of video_device, handled by videodev2.c
 diff --git a/include/media/v4l2-ioctl.h b/include/media/v4l2-ioctl.h
-index dd9f1e7..8c4dd86 100644
+index 3cb939c..f23c6bb 100644
 --- a/include/media/v4l2-ioctl.h
 +++ b/include/media/v4l2-ioctl.h
-@@ -272,7 +272,7 @@ struct v4l2_ioctl_ops {
+@@ -281,7 +281,7 @@ struct v4l2_ioctl_ops {
        long (*vidioc_default)         (struct file *file, void *fh,
                                        bool valid_prio, int cmd, void *arg);
  };
@@ -63708,10 +64021,10 @@ index dd9f1e7..8c4dd86 100644
  /* v4l debugging and diagnostics */
  
 diff --git a/include/net/caif/caif_hsi.h b/include/net/caif/caif_hsi.h
-index c5dedd8..a93b07b 100644
+index 6db8ecf..8c23861 100644
 --- a/include/net/caif/caif_hsi.h
 +++ b/include/net/caif/caif_hsi.h
-@@ -94,7 +94,7 @@ struct cfhsi_drv {
+@@ -98,7 +98,7 @@ struct cfhsi_drv {
        void (*rx_done_cb) (struct cfhsi_drv *drv);
        void (*wake_up_cb) (struct cfhsi_drv *drv);
        void (*wake_down_cb) (struct cfhsi_drv *drv);
@@ -63745,22 +64058,22 @@ index 9e5425b..8136ffc 100644
        /* Protects from simultaneous access to first_req list */
        spinlock_t info_list_lock;
 diff --git a/include/net/flow.h b/include/net/flow.h
-index a094477..bc91db1 100644
+index 6c469db..7743b8e 100644
 --- a/include/net/flow.h
 +++ b/include/net/flow.h
-@@ -207,6 +207,6 @@ extern struct flow_cache_object *flow_cache_lookup(
-               u8 dir, flow_resolve_t resolver, void *ctx);
+@@ -221,6 +221,6 @@ extern struct flow_cache_object *flow_cache_lookup(
  
  extern void flow_cache_flush(void);
+ extern void flow_cache_flush_deferred(void);
 -extern atomic_t flow_cache_genid;
 +extern atomic_unchecked_t flow_cache_genid;
  
  #endif
 diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h
-index e9ff3fc..9d3e5c7 100644
+index 2040bff..f4c0733 100644
 --- a/include/net/inetpeer.h
 +++ b/include/net/inetpeer.h
-@@ -48,8 +48,8 @@ struct inet_peer {
+@@ -51,8 +51,8 @@ struct inet_peer {
         */
        union {
                struct {
@@ -63771,7 +64084,7 @@ index e9ff3fc..9d3e5c7 100644
                        __u32                           tcp_ts;
                        __u32                           tcp_ts_stamp;
                };
-@@ -113,11 +113,11 @@ static inline int inet_getid(struct inet_peer *p, int more)
+@@ -118,11 +118,11 @@ static inline int inet_getid(struct inet_peer *p, int more)
        more++;
        inet_peer_refcheck(p);
        do {
@@ -63799,10 +64112,10 @@ index 10422ef..662570f 100644
         fib_info_update_nh_saddr((net), &FIB_RES_NH(res)))
  #define FIB_RES_GW(res)                       (FIB_RES_NH(res).nh_gw)
 diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
-index 8fa4430..05dd772 100644
+index 72522f0..2965e05 100644
 --- a/include/net/ip_vs.h
 +++ b/include/net/ip_vs.h
-@@ -509,7 +509,7 @@ struct ip_vs_conn {
+@@ -510,7 +510,7 @@ struct ip_vs_conn {
        struct ip_vs_conn       *control;       /* Master control connection */
        atomic_t                n_control;      /* Number of controlled ones */
        struct ip_vs_dest       *dest;          /* real server */
@@ -63811,7 +64124,7 @@ index 8fa4430..05dd772 100644
  
        /* packet transmitter for different forwarding methods.  If it
           mangles the packet, it must return NF_DROP or better NF_STOLEN,
-@@ -647,7 +647,7 @@ struct ip_vs_dest {
+@@ -648,7 +648,7 @@ struct ip_vs_dest {
        __be16                  port;           /* port number of the server */
        union nf_inet_addr      addr;           /* IP address of the server */
        volatile unsigned       flags;          /* dest status flags */
@@ -63820,6 +64133,15 @@ index 8fa4430..05dd772 100644
        atomic_t                weight;         /* server weight */
  
        atomic_t                refcnt;         /* reference counter */
+@@ -1356,7 +1356,7 @@ static inline void ip_vs_notrack(struct sk_buff *skb)
+       struct nf_conn *ct = nf_ct_get(skb, &ctinfo);
+       if (!ct || !nf_ct_is_untracked(ct)) {
+-              nf_reset(skb);
++              nf_conntrack_put(skb->nfct);
+               skb->nfct = &nf_ct_untracked_get()->ct_general;
+               skb->nfctinfo = IP_CT_NEW;
+               nf_conntrack_get(skb->nfct);
 diff --git a/include/net/irda/ircomm_core.h b/include/net/irda/ircomm_core.h
 index 69b610a..fe3962c 100644
 --- a/include/net/irda/ircomm_core.h
@@ -63857,10 +64179,10 @@ index 59ba38bc..d515662 100644
        /* Protect concurent access to :
         *      o self->open_count
 diff --git a/include/net/iucv/af_iucv.h b/include/net/iucv/af_iucv.h
-index f82a1e8..82d81e8 100644
+index cc7c197..9f2da2a 100644
 --- a/include/net/iucv/af_iucv.h
 +++ b/include/net/iucv/af_iucv.h
-@@ -87,7 +87,7 @@ struct iucv_sock {
+@@ -141,7 +141,7 @@ struct iucv_sock {
  struct iucv_sock_list {
        struct hlist_head head;
        rwlock_t          lock;
@@ -63869,24 +64191,11 @@ index f82a1e8..82d81e8 100644
  };
  
  unsigned int iucv_sock_poll(struct file *file, struct socket *sock,
-diff --git a/include/net/lapb.h b/include/net/lapb.h
-index 96cb5dd..25e8d4f 100644
---- a/include/net/lapb.h
-+++ b/include/net/lapb.h
-@@ -95,7 +95,7 @@ struct lapb_cb {
-       struct sk_buff_head     write_queue;
-       struct sk_buff_head     ack_queue;
-       unsigned char           window;
--      struct lapb_register_struct callbacks;
-+      struct lapb_register_struct *callbacks;
-       /* FRMR control information */
-       struct lapb_frame       frmr_data;
 diff --git a/include/net/neighbour.h b/include/net/neighbour.h
-index 2720884..3aa5c25 100644
+index 34c996f..bb3b4d4 100644
 --- a/include/net/neighbour.h
 +++ b/include/net/neighbour.h
-@@ -122,7 +122,7 @@ struct neigh_ops {
+@@ -123,7 +123,7 @@ struct neigh_ops {
        void                    (*error_report)(struct neighbour *, struct sk_buff *);
        int                     (*output)(struct neighbour *, struct sk_buff *);
        int                     (*connected_output)(struct neighbour *, struct sk_buff *);
@@ -63896,10 +64205,10 @@ index 2720884..3aa5c25 100644
  struct pneigh_entry {
        struct pneigh_entry     *next;
 diff --git a/include/net/netlink.h b/include/net/netlink.h
-index 98c1854..d4add7b 100644
+index f394fe5..fd073f9 100644
 --- a/include/net/netlink.h
 +++ b/include/net/netlink.h
-@@ -562,7 +562,7 @@ static inline void *nlmsg_get_pos(struct sk_buff *skb)
+@@ -534,7 +534,7 @@ static inline void *nlmsg_get_pos(struct sk_buff *skb)
  static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
  {
        if (mark)
@@ -63909,12 +64218,12 @@ index 98c1854..d4add7b 100644
  
  /**
 diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
-index d786b4f..4c3dd41 100644
+index bbd023a..97c6d0d 100644
 --- a/include/net/netns/ipv4.h
 +++ b/include/net/netns/ipv4.h
-@@ -56,8 +56,8 @@ struct netns_ipv4 {
+@@ -57,8 +57,8 @@ struct netns_ipv4 {
        unsigned int sysctl_ping_group_range[2];
+       long sysctl_tcp_mem[3];
  
 -      atomic_t rt_genid;
 -      atomic_t dev_addr_genid;
@@ -63924,7 +64233,7 @@ index d786b4f..4c3dd41 100644
  #ifdef CONFIG_IP_MROUTE
  #ifndef CONFIG_IP_MROUTE_MULTIPLE_TABLES
 diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
-index 6a72a58..e6a127d 100644
+index a2ef814..31a8e3f 100644
 --- a/include/net/sctp/sctp.h
 +++ b/include/net/sctp/sctp.h
 @@ -318,9 +318,9 @@ do {                                                                       \
@@ -63941,10 +64250,10 @@ index 6a72a58..e6a127d 100644
  #define SCTP_DISABLE_DEBUG
  #define SCTP_ASSERT(expr, str, func)
 diff --git a/include/net/sock.h b/include/net/sock.h
-index 8e4062f..77b041e 100644
+index 5a0a58a..2e3d4d0 100644
 --- a/include/net/sock.h
 +++ b/include/net/sock.h
-@@ -278,7 +278,7 @@ struct sock {
+@@ -302,7 +302,7 @@ struct sock {
  #ifdef CONFIG_RPS
        __u32                   sk_rxhash;
  #endif
@@ -63953,7 +64262,7 @@ index 8e4062f..77b041e 100644
        int                     sk_rcvbuf;
  
        struct sk_filter __rcu  *sk_filter;
-@@ -1391,7 +1391,7 @@ static inline void sk_nocaps_add(struct sock *sk, int flags)
+@@ -1691,7 +1691,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
  }
  
  static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb,
@@ -63963,37 +64272,33 @@ index 8e4062f..77b041e 100644
  {
        if (skb->ip_summed == CHECKSUM_NONE) {
 diff --git a/include/net/tcp.h b/include/net/tcp.h
-index acc620a..f4d99c6 100644
+index f75a04d..702cf06 100644
 --- a/include/net/tcp.h
 +++ b/include/net/tcp.h
-@@ -1401,8 +1401,8 @@ enum tcp_seq_states {
- struct tcp_seq_afinfo {
-       char                    *name;
-       sa_family_t             family;
--      struct file_operations  seq_fops;
--      struct seq_operations   seq_ops;
-+      file_operations_no_const        seq_fops;
-+      seq_operations_no_const seq_ops;
+@@ -1425,7 +1425,7 @@ struct tcp_seq_afinfo {
+       char                            *name;
+       sa_family_t                     family;
+       const struct file_operations    *seq_fops;
+-      struct seq_operations           seq_ops;
++      seq_operations_no_const         seq_ops;
  };
  
  struct tcp_iter_state {
 diff --git a/include/net/udp.h b/include/net/udp.h
-index 67ea6fc..e42aee8 100644
+index 5d606d9..e879f7b 100644
 --- a/include/net/udp.h
 +++ b/include/net/udp.h
-@@ -234,8 +234,8 @@ struct udp_seq_afinfo {
-       char                    *name;
-       sa_family_t             family;
-       struct udp_table        *udp_table;
--      struct file_operations  seq_fops;
--      struct seq_operations   seq_ops;
-+      file_operations_no_const        seq_fops;
-+      seq_operations_no_const seq_ops;
+@@ -244,7 +244,7 @@ struct udp_seq_afinfo {
+       sa_family_t                     family;
+       struct udp_table                *udp_table;
+       const struct file_operations    *seq_fops;
+-      struct seq_operations           seq_ops;
++      seq_operations_no_const         seq_ops;
  };
  
  struct udp_iter_state {
 diff --git a/include/net/xfrm.h b/include/net/xfrm.h
-index b203e14..1df3991 100644
+index 96239e7..c85b032 100644
 --- a/include/net/xfrm.h
 +++ b/include/net/xfrm.h
 @@ -505,7 +505,7 @@ struct xfrm_policy {
@@ -64006,10 +64311,10 @@ index b203e14..1df3991 100644
        u32                     index;
        struct xfrm_mark        mark;
 diff --git a/include/rdma/iw_cm.h b/include/rdma/iw_cm.h
-index 2d0191c..a55797d 100644
+index 1a046b1..ee0bef0 100644
 --- a/include/rdma/iw_cm.h
 +++ b/include/rdma/iw_cm.h
-@@ -120,7 +120,7 @@ struct iw_cm_verbs {
+@@ -122,7 +122,7 @@ struct iw_cm_verbs {
                                         int backlog);
  
        int             (*destroy_listen)(struct iw_cm_id *cm_id);
@@ -64019,10 +64324,10 @@ index 2d0191c..a55797d 100644
  /**
   * iw_create_cm_id - Create an IW CM identifier.
 diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
-index 7d96829..4ba78d3 100644
+index 8f9dfba..610ab6c 100644
 --- a/include/scsi/libfc.h
 +++ b/include/scsi/libfc.h
-@@ -758,6 +758,7 @@ struct libfc_function_template {
+@@ -756,6 +756,7 @@ struct libfc_function_template {
         */
        void (*disc_stop_final) (struct fc_lport *);
  };
@@ -64040,10 +64345,10 @@ index 7d96829..4ba78d3 100644
        u8                             qfull;
        enum fc_lport_state            state;
 diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
-index d371c3c..e228a8c 100644
+index ba96988..ecf2eb9 100644
 --- a/include/scsi/scsi_device.h
 +++ b/include/scsi/scsi_device.h
-@@ -161,9 +161,9 @@ struct scsi_device {
+@@ -163,9 +163,9 @@ struct scsi_device {
        unsigned int max_device_blocked; /* what device_blocked counts down from  */
  #define SCSI_DEFAULT_DEVICE_BLOCKED   3
  
@@ -64057,10 +64362,10 @@ index d371c3c..e228a8c 100644
        struct device           sdev_gendev,
                                sdev_dev;
 diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h
-index 2a65167..91e01f8 100644
+index 719faf1..d1154d4 100644
 --- a/include/scsi/scsi_transport_fc.h
 +++ b/include/scsi/scsi_transport_fc.h
-@@ -711,7 +711,7 @@ struct fc_function_template {
+@@ -739,7 +739,7 @@ struct fc_function_template {
        unsigned long   show_host_system_hostname:1;
  
        unsigned long   disable_target_scan:1;
@@ -64096,7 +64401,7 @@ index 8c05e47..2b5df97 100644
  struct snd_hwdep {
        struct snd_card *card;
 diff --git a/include/sound/info.h b/include/sound/info.h
-index 4e94cf1..76748b1 100644
+index 9ca1a49..aba1728 100644
 --- a/include/sound/info.h
 +++ b/include/sound/info.h
 @@ -44,7 +44,7 @@ struct snd_info_entry_text {
@@ -64109,7 +64414,7 @@ index 4e94cf1..76748b1 100644
  struct snd_info_entry_ops {
        int (*open)(struct snd_info_entry *entry,
 diff --git a/include/sound/pcm.h b/include/sound/pcm.h
-index 57e71fa..a2c7534 100644
+index 0d11128..814178e 100644
 --- a/include/sound/pcm.h
 +++ b/include/sound/pcm.h
 @@ -81,6 +81,7 @@ struct snd_pcm_ops {
@@ -64134,10 +64439,10 @@ index af1b49e..a5d55a5 100644
  /*
   * CSP private data
 diff --git a/include/sound/soc.h b/include/sound/soc.h
-index aa19f5a..a5b8208 100644
+index 2ebf787..0276839 100644
 --- a/include/sound/soc.h
 +++ b/include/sound/soc.h
-@@ -676,7 +676,7 @@ struct snd_soc_platform_driver {
+@@ -711,7 +711,7 @@ struct snd_soc_platform_driver {
        /* platform IO - used for platform DAPM */
        unsigned int (*read)(struct snd_soc_platform *, unsigned int);
        int (*write)(struct snd_soc_platform *, unsigned int, unsigned int);
@@ -64146,8 +64451,17 @@ index aa19f5a..a5b8208 100644
  
  struct snd_soc_platform {
        const char *name;
+@@ -887,7 +887,7 @@ struct snd_soc_pcm_runtime {
+       struct snd_soc_dai_link *dai_link;
+       struct mutex pcm_mutex;
+       enum snd_soc_pcm_subclass pcm_subclass;
+-      struct snd_pcm_ops ops;
++      snd_pcm_ops_no_const ops;
+       unsigned int complete:1;
+       unsigned int dev_registered:1;
 diff --git a/include/sound/ymfpci.h b/include/sound/ymfpci.h
-index 444cd6b..3327cc5 100644
+index 4119966..1a4671c 100644
 --- a/include/sound/ymfpci.h
 +++ b/include/sound/ymfpci.h
 @@ -358,7 +358,7 @@ struct snd_ymfpci {
@@ -64160,10 +64474,10 @@ index 444cd6b..3327cc5 100644
        const struct firmware *dsp_microcode;
        const struct firmware *controller_microcode;
 diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
-index 2704065..e10f3ef 100644
+index aaccc5f..092d568 100644
 --- a/include/target/target_core_base.h
 +++ b/include/target/target_core_base.h
-@@ -356,7 +356,7 @@ struct t10_reservation_ops {
+@@ -447,7 +447,7 @@ struct t10_reservation_ops {
        int (*t10_seq_non_holder)(struct se_cmd *, unsigned char *, u32);
        int (*t10_pr_register)(struct se_cmd *);
        int (*t10_pr_clear)(struct se_cmd *);
@@ -64172,26 +64486,83 @@ index 2704065..e10f3ef 100644
  
  struct t10_reservation {
        /* Reservation effects all target ports */
-@@ -496,8 +496,8 @@ struct se_cmd {
+@@ -576,7 +576,7 @@ struct se_cmd {
+       atomic_t                t_se_count;
        atomic_t                t_task_cdbs_left;
        atomic_t                t_task_cdbs_ex_left;
-       atomic_t                t_task_cdbs_timeout_left;
 -      atomic_t                t_task_cdbs_sent;
--      atomic_t                t_transport_aborted;
 +      atomic_unchecked_t      t_task_cdbs_sent;
-+      atomic_unchecked_t      t_transport_aborted;
-       atomic_t                t_transport_active;
-       atomic_t                t_transport_complete;
-       atomic_t                t_transport_queue_active;
-@@ -744,7 +744,7 @@ struct se_device {
-       atomic_t                active_cmds;
+       unsigned int            transport_state;
+ #define CMD_T_ABORTED         (1 << 0)
+ #define CMD_T_ACTIVE          (1 << 1)
+@@ -802,7 +802,7 @@ struct se_device {
+       spinlock_t              stats_lock;
+       /* Active commands on this virtual SE device */
        atomic_t                simple_cmds;
-       atomic_t                depth_left;
 -      atomic_t                dev_ordered_id;
 +      atomic_unchecked_t      dev_ordered_id;
-       atomic_t                dev_tur_active;
        atomic_t                execute_tasks;
-       atomic_t                dev_status_thr_count;
+       atomic_t                dev_ordered_sync;
+       atomic_t                dev_qf_count;
+diff --git a/include/trace/events/fs.h b/include/trace/events/fs.h
+new file mode 100644
+index 0000000..2efe49d
+--- /dev/null
++++ b/include/trace/events/fs.h
+@@ -0,0 +1,53 @@
++#undef TRACE_SYSTEM
++#define TRACE_SYSTEM fs
++
++#if !defined(_TRACE_FS_H) || defined(TRACE_HEADER_MULTI_READ)
++#define _TRACE_FS_H
++
++#include <linux/fs.h>
++#include <linux/tracepoint.h>
++
++TRACE_EVENT(do_sys_open,
++
++      TP_PROTO(char *filename, int flags, int mode),
++
++      TP_ARGS(filename, flags, mode),
++
++      TP_STRUCT__entry(
++              __string(       filename, filename              )
++              __field(        int, flags                      )
++              __field(        int, mode                       )
++      ),
++
++      TP_fast_assign(
++              __assign_str(filename, filename);
++              __entry->flags = flags;
++              __entry->mode = mode;
++      ),
++
++      TP_printk("\"%s\" %x %o",
++                __get_str(filename), __entry->flags, __entry->mode)
++);
++
++TRACE_EVENT(open_exec,
++
++      TP_PROTO(const char *filename),
++
++      TP_ARGS(filename),
++
++      TP_STRUCT__entry(
++              __string(       filename, filename              )
++      ),
++
++      TP_fast_assign(
++              __assign_str(filename, filename);
++      ),
++
++      TP_printk("\"%s\"",
++                __get_str(filename))
++);
++
++#endif /* _TRACE_FS_H */
++
++/* This part must be outside protection */
++#include <trace/define_trace.h>
 diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h
 index 1c09820..7f5ec79 100644
 --- a/include/trace/events/irq.h
@@ -64215,12 +64586,12 @@ index 1c09820..7f5ec79 100644
        TP_ARGS(irq, action, ret),
  
 diff --git a/include/video/udlfb.h b/include/video/udlfb.h
-index 69d485a..dd0bee7 100644
+index f9466fa..f4e2b81 100644
 --- a/include/video/udlfb.h
 +++ b/include/video/udlfb.h
-@@ -51,10 +51,10 @@ struct dlfb_data {
-       int base8;
+@@ -53,10 +53,10 @@ struct dlfb_data {
        u32 pseudo_palette[256];
+       int blank_mode; /*one of FB_BLANK_ */
        /* blit-only rendering path metrics, exposed through sysfs */
 -      atomic_t bytes_rendered; /* raw pixel-bytes driver asked to render */
 -      atomic_t bytes_identical; /* saved effort with backbuffer comparison */
@@ -64246,10 +64617,18 @@ index 0993a22..32ba2fe 100644
        void *pmi_pal;
        u8 *vbe_state_orig;             /*
 diff --git a/init/Kconfig b/init/Kconfig
-index d627783..693a9f3 100644
+index 6cfd71d..16006e6 100644
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1202,7 +1202,7 @@ config SLUB_DEBUG
+@@ -790,6 +790,7 @@ endif # CGROUPS
+ config CHECKPOINT_RESTORE
+       bool "Checkpoint/restore support" if EXPERT
++      depends on !GRKERNSEC
+       default n
+       help
+         Enables additional kernel features in a sake of checkpoint/restore.
+@@ -1240,7 +1241,7 @@ config SLUB_DEBUG
  
  config COMPAT_BRK
        bool "Disable heap randomization"
@@ -64258,25 +64637,34 @@ index d627783..693a9f3 100644
        help
          Randomizing heap placement makes heap exploits harder, but it
          also breaks ancient binaries (including anything libc5 based).
+@@ -1423,7 +1424,7 @@ config INIT_ALL_POSSIBLE
+ config STOP_MACHINE
+       bool
+       default y
+-      depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
++      depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU || GRKERNSEC
+       help
+         Need stop_machine() primitive.
 diff --git a/init/do_mounts.c b/init/do_mounts.c
-index c0851a8..4f8977d 100644
+index 42b0707..c06eef4 100644
 --- a/init/do_mounts.c
 +++ b/init/do_mounts.c
-@@ -287,11 +287,11 @@ static void __init get_fs_names(char *page)
+@@ -326,11 +326,11 @@ static void __init get_fs_names(char *page)
  static int __init do_mount_root(char *name, char *fs, int flags, void *data)
  {
+       struct super_block *s;
 -      int err = sys_mount(name, "/root", fs, flags, data);
 +      int err = sys_mount((char __force_user *)name, (char __force_user *)"/root", (char __force_user *)fs, flags, (void __force_user *)data);
        if (err)
                return err;
  
 -      sys_chdir((const char __user __force *)"/root");
-+      sys_chdir((const char __force_user*)"/root");
-       ROOT_DEV = current->fs->pwd.mnt->mnt_sb->s_dev;
++      sys_chdir((const char __force_user *)"/root");
+       s = current->fs->pwd.dentry->d_sb;
+       ROOT_DEV = s->s_dev;
        printk(KERN_INFO
-              "VFS: Mounted root (%s filesystem)%s on device %u:%u.\n",
-@@ -383,18 +383,18 @@ void __init change_floppy(char *fmt, ...)
+@@ -450,18 +450,18 @@ void __init change_floppy(char *fmt, ...)
        va_start(args, fmt);
        vsprintf(buf, fmt, args);
        va_end(args);
@@ -64298,7 +64686,7 @@ index c0851a8..4f8977d 100644
                termios.c_lflag |= ICANON;
                sys_ioctl(fd, TCSETSF, (long)&termios);
                sys_close(fd);
-@@ -488,6 +488,6 @@ void __init prepare_namespace(void)
+@@ -555,6 +555,6 @@ void __init prepare_namespace(void)
        mount_root();
  out:
        devtmpfs_mount("dev");
@@ -64340,10 +64728,10 @@ index f5b978a..69dbfe8 100644
        if (!S_ISBLK(stat.st_mode))
                return 0;
 diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
-index 3098a38..253064e 100644
+index 9047330..de0d1fb 100644
 --- a/init/do_mounts_initrd.c
 +++ b/init/do_mounts_initrd.c
-@@ -44,13 +44,13 @@ static void __init handle_initrd(void)
+@@ -43,13 +43,13 @@ static void __init handle_initrd(void)
        create_dev("/dev/root.old", Root_RAM0);
        /* mount initrd on rootfs' /root */
        mount_block_root("/dev/root.old", root_mountflags & ~MS_RDONLY);
@@ -64363,7 +64751,7 @@ index 3098a38..253064e 100644
  
        /*
         * In case that a resume from disk is carried out by linuxrc or one of
-@@ -67,15 +67,15 @@ static void __init handle_initrd(void)
+@@ -66,15 +66,15 @@ static void __init handle_initrd(void)
  
        /* move initrd to rootfs' /old */
        sys_fchdir(old_fd);
@@ -64382,7 +64770,7 @@ index 3098a38..253064e 100644
                return;
        }
  
-@@ -83,17 +83,17 @@ static void __init handle_initrd(void)
+@@ -82,17 +82,17 @@ static void __init handle_initrd(void)
        mount_root();
  
        printk(KERN_NOTICE "Trying to move old root to /initrd ... ");
@@ -64403,7 +64791,7 @@ index 3098a38..253064e 100644
                printk(KERN_NOTICE "Trying to free ramdisk memory ... ");
                if (fd < 0) {
                        error = fd;
-@@ -116,11 +116,11 @@ int __init initrd_load(void)
+@@ -115,11 +115,11 @@ int __init initrd_load(void)
                 * mounted in the normal path.
                 */
                if (rd_load_image("/initrd.image") && ROOT_DEV != Root_RAM0) {
@@ -64449,7 +64837,7 @@ index 32c4799..c27ee74 100644
                sys_ioctl(fd, RAID_AUTORUN, raid_autopart);
                sys_close(fd);
 diff --git a/init/initramfs.c b/init/initramfs.c
-index 2531811..040d4d4 100644
+index 8216c30..25e8e32 100644
 --- a/init/initramfs.c
 +++ b/init/initramfs.c
 @@ -74,7 +74,7 @@ static void __init free_hash(void)
@@ -64479,7 +64867,7 @@ index 2531811..040d4d4 100644
        }
        return 0;
  }
-@@ -280,11 +280,11 @@ static void __init clean_path(char *path, mode_t mode)
+@@ -280,11 +280,11 @@ static void __init clean_path(char *path, umode_t mode)
  {
        struct stat st;
  
@@ -64561,10 +64949,10 @@ index 2531811..040d4d4 100644
        next_state = Reset;
        return 0;
 diff --git a/init/main.c b/init/main.c
-index 03b408d..5777f59 100644
+index b08c5f7..bf65a52 100644
 --- a/init/main.c
 +++ b/init/main.c
-@@ -96,6 +96,8 @@ static inline void mark_rodata_ro(void) { }
+@@ -95,6 +95,8 @@ static inline void mark_rodata_ro(void) { }
  extern void tc_init(void);
  #endif
  
@@ -64573,7 +64961,7 @@ index 03b408d..5777f59 100644
  /*
   * Debug helper: via this flag we know that we are in 'early bootup code'
   * where only the boot processor is running with IRQ disabled.  This means
-@@ -149,6 +151,49 @@ static int __init set_reset_devices(char *str)
+@@ -148,6 +150,49 @@ static int __init set_reset_devices(char *str)
  
  __setup("reset_devices", set_reset_devices);
  
@@ -64590,7 +64978,7 @@ index 03b408d..5777f59 100644
 +      unsigned int cpu;
 +      struct desc_struct *gdt;
 +
-+      for (cpu = 0; cpu < NR_CPUS; cpu++) {
++      for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
 +              gdt = get_cpu_gdt_table(cpu);
 +              gdt[GDT_ENTRY_KERNEL_DS].type = 3;
 +              gdt[GDT_ENTRY_KERNEL_DS].limit = 0xf;
@@ -64623,7 +65011,7 @@ index 03b408d..5777f59 100644
  static const char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
  const char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
  static const char *panic_later, *panic_param;
-@@ -678,6 +723,7 @@ int __init_or_module do_one_initcall(initcall_t fn)
+@@ -674,6 +719,7 @@ int __init_or_module do_one_initcall(initcall_t fn)
  {
        int count = preempt_count();
        int ret;
@@ -64631,7 +65019,7 @@ index 03b408d..5777f59 100644
  
        if (initcall_debug)
                ret = do_one_initcall_debug(fn);
-@@ -690,15 +736,15 @@ int __init_or_module do_one_initcall(initcall_t fn)
+@@ -686,15 +732,15 @@ int __init_or_module do_one_initcall(initcall_t fn)
                sprintf(msgbuf, "error code %d ", ret);
  
        if (preempt_count() != count) {
@@ -64651,7 +65039,39 @@ index 03b408d..5777f59 100644
        }
  
        return ret;
-@@ -817,7 +863,7 @@ static int __init kernel_init(void * unused)
+@@ -747,8 +793,14 @@ static void __init do_initcall_level(int level)
+                  level, level,
+                  repair_env_string);
+-      for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++)
++      for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++) {
+               do_one_initcall(*fn);
++
++#ifdef CONFIG_PAX_LATENT_ENTROPY
++              transfer_latent_entropy();
++#endif
++
++      }
+ }
+ static void __init do_initcalls(void)
+@@ -782,8 +834,14 @@ static void __init do_pre_smp_initcalls(void)
+ {
+       initcall_t *fn;
+-      for (fn = __initcall_start; fn < __initcall0_start; fn++)
++      for (fn = __initcall_start; fn < __initcall0_start; fn++) {
+               do_one_initcall(*fn);
++
++#ifdef CONFIG_PAX_LATENT_ENTROPY
++              transfer_latent_entropy();
++#endif
++
++      }
+ }
+ static void run_init_process(const char *init_filename)
+@@ -865,7 +923,7 @@ static int __init kernel_init(void * unused)
        do_basic_setup();
  
        /* Open the /dev/console on the rootfs, this should never fail */
@@ -64660,7 +65080,7 @@ index 03b408d..5777f59 100644
                printk(KERN_WARNING "Warning: unable to open an initial console.\n");
  
        (void) sys_dup(0);
-@@ -830,11 +876,13 @@ static int __init kernel_init(void * unused)
+@@ -878,11 +936,13 @@ static int __init kernel_init(void * unused)
        if (!ramdisk_execute_command)
                ramdisk_execute_command = "/init";
  
@@ -64676,7 +65096,7 @@ index 03b408d..5777f59 100644
         * Ok, we have completed the initial bootup, and
         * we're essentially up and running. Get rid of the
 diff --git a/ipc/mqueue.c b/ipc/mqueue.c
-index ed049ea..6442f7f 100644
+index 28bd64d..c66b72a 100644
 --- a/ipc/mqueue.c
 +++ b/ipc/mqueue.c
 @@ -156,6 +156,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
@@ -64686,9 +65106,9 @@ index ed049ea..6442f7f 100644
 +              gr_learn_resource(current, RLIMIT_MSGQUEUE, u->mq_bytes + mq_bytes, 1);
                spin_lock(&mq_lock);
                if (u->mq_bytes + mq_bytes < u->mq_bytes ||
-                   u->mq_bytes + mq_bytes > task_rlimit(p, RLIMIT_MSGQUEUE)) {
+                   u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE)) {
 diff --git a/ipc/msg.c b/ipc/msg.c
-index 7385de2..a8180e0 100644
+index 7385de2..a8180e08 100644
 --- a/ipc/msg.c
 +++ b/ipc/msg.c
 @@ -309,18 +309,19 @@ static inline int msg_security(struct kern_ipc_perm *ipcp, int msgflg)
@@ -64717,10 +65137,10 @@ index 7385de2..a8180e0 100644
        msg_params.flg = msgflg;
  
 diff --git a/ipc/sem.c b/ipc/sem.c
-index c8e00f8..1135c4e 100644
+index 5215a81..cfc0cac 100644
 --- a/ipc/sem.c
 +++ b/ipc/sem.c
-@@ -318,10 +318,15 @@ static inline int sem_more_checks(struct kern_ipc_perm *ipcp,
+@@ -364,10 +364,15 @@ static inline int sem_more_checks(struct kern_ipc_perm *ipcp,
        return 0;
  }
  
@@ -64737,7 +65157,7 @@ index c8e00f8..1135c4e 100644
        struct ipc_params sem_params;
  
        ns = current->nsproxy->ipc_ns;
-@@ -329,10 +334,6 @@ SYSCALL_DEFINE3(semget, key_t, key, int, nsems, int, semflg)
+@@ -375,10 +380,6 @@ SYSCALL_DEFINE3(semget, key_t, key, int, nsems, int, semflg)
        if (nsems < 0 || nsems > ns->sc_semmsl)
                return -EINVAL;
  
@@ -64748,26 +65168,8 @@ index c8e00f8..1135c4e 100644
        sem_params.key = key;
        sem_params.flg = semflg;
        sem_params.u.nsems = nsems;
-@@ -848,6 +849,8 @@ static int semctl_main(struct ipc_namespace *ns, int semid, int semnum,
-       int nsems;
-       struct list_head tasks;
-+      pax_track_stack();
-+
-       sma = sem_lock_check(ns, semid);
-       if (IS_ERR(sma))
-               return PTR_ERR(sma);
-@@ -1295,6 +1298,8 @@ SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsops,
-       struct ipc_namespace *ns;
-       struct list_head tasks;
-+      pax_track_stack();
-+
-       ns = current->nsproxy->ipc_ns;
-       if (nsops < 1 || semid < 0)
 diff --git a/ipc/shm.c b/ipc/shm.c
-index 02ecf2c..c8f5627 100644
+index 406c5b2..bc66d67 100644
 --- a/ipc/shm.c
 +++ b/ipc/shm.c
 @@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_namespace *ns, struct shmid_kernel *shp);
@@ -64825,16 +65227,20 @@ index 02ecf2c..c8f5627 100644
        shm_params.key = key;
        shm_params.flg = shmflg;
        shm_params.u.size = size;
-@@ -870,8 +887,6 @@ SYSCALL_DEFINE3(shmctl, int, shmid, int, cmd, struct shmid_ds __user *, buf)
-       case SHM_LOCK:
-       case SHM_UNLOCK:
-       {
--              struct file *uninitialized_var(shm_file);
--
-               lru_add_drain_all();  /* drain pagevecs to lru lists */
-               shp = shm_lock_check(ns, shmid);
-@@ -1004,9 +1019,21 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
+@@ -988,6 +1005,12 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
+               f_mode = FMODE_READ | FMODE_WRITE;
+       }
+       if (shmflg & SHM_EXEC) {
++
++#ifdef CONFIG_PAX_MPROTECT
++              if (current->mm->pax_flags & MF_PAX_MPROTECT)
++                      goto out;
++#endif
++
+               prot |= PROT_EXEC;
+               acc_mode |= S_IXUGO;
+       }
+@@ -1011,9 +1034,21 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
        if (err)
                goto out_unlock;
  
@@ -64857,10 +65263,10 @@ index 02ecf2c..c8f5627 100644
        shm_unlock(shp);
  
 diff --git a/kernel/acct.c b/kernel/acct.c
-index fa7eb3d..7faf116 100644
+index 02e6167..54824f7 100644
 --- a/kernel/acct.c
 +++ b/kernel/acct.c
-@@ -570,7 +570,7 @@ static void do_acct_process(struct bsd_acct_struct *acct,
+@@ -550,7 +550,7 @@ static void do_acct_process(struct bsd_acct_struct *acct,
         */
        flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur;
        current->signal->rlim[RLIMIT_FSIZE].rlim_cur = RLIM_INFINITY;
@@ -64870,7 +65276,7 @@ index fa7eb3d..7faf116 100644
        current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim;
        set_fs(fs);
 diff --git a/kernel/audit.c b/kernel/audit.c
-index 0a1355c..dca420f 100644
+index 1c7f2c6..9ba5359 100644
 --- a/kernel/audit.c
 +++ b/kernel/audit.c
 @@ -115,7 +115,7 @@ u32                audit_sig_sid = 0;
@@ -64910,10 +65316,10 @@ index 0a1355c..dca420f 100644
                audit_send_reply(NETLINK_CB(skb).pid, seq, AUDIT_GET, 0, 0,
                                 &status_set, sizeof(status_set));
 diff --git a/kernel/auditsc.c b/kernel/auditsc.c
-index ce4b054..8139ed7 100644
+index af1de0f..06dfe57 100644
 --- a/kernel/auditsc.c
 +++ b/kernel/auditsc.c
-@@ -2118,7 +2118,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
+@@ -2288,7 +2288,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
  }
  
  /* global counter which is incremented every time something logs in */
@@ -64921,18 +65327,18 @@ index ce4b054..8139ed7 100644
 +static atomic_unchecked_t session_id = ATOMIC_INIT(0);
  
  /**
-  * audit_set_loginuid - set a task's audit_context loginuid
-@@ -2131,7 +2131,7 @@ static atomic_t session_id = ATOMIC_INIT(0);
-  */
- int audit_set_loginuid(struct task_struct *task, uid_t loginuid)
- {
--      unsigned int sessionid = atomic_inc_return(&session_id);
-+      unsigned int sessionid = atomic_inc_return_unchecked(&session_id);
-       struct audit_context *context = task->audit_context;
+  * audit_set_loginuid - set current task's audit_context loginuid
+@@ -2312,7 +2312,7 @@ int audit_set_loginuid(uid_t loginuid)
+               return -EPERM;
+ #endif  /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
  
+-      sessionid = atomic_inc_return(&session_id);
++      sessionid = atomic_inc_return_unchecked(&session_id);
        if (context && context->in_syscall) {
+               struct audit_buffer *ab;
 diff --git a/kernel/capability.c b/kernel/capability.c
-index 283c529..36ac81e 100644
+index 3f1adb6..c564db0 100644
 --- a/kernel/capability.c
 +++ b/kernel/capability.c
 @@ -202,6 +202,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_t, header, cap_user_data_t, dataptr)
@@ -64945,16 +65351,43 @@ index 283c529..36ac81e 100644
                if (copy_to_user(dataptr, kdata, tocopy
                                 * sizeof(struct __user_cap_data_struct))) {
                        return -EFAULT;
-@@ -374,7 +377,7 @@ bool ns_capable(struct user_namespace *ns, int cap)
+@@ -303,10 +306,11 @@ bool has_ns_capability(struct task_struct *t,
+       int ret;
+       rcu_read_lock();
+-      ret = security_capable(__task_cred(t), ns, cap);
++      ret = security_capable(__task_cred(t), ns, cap) == 0 &&
++              gr_task_is_capable(t, __task_cred(t), cap);
+       rcu_read_unlock();
+-      return (ret == 0);
++      return ret;
+ }
+ /**
+@@ -343,10 +347,10 @@ bool has_ns_capability_noaudit(struct task_struct *t,
+       int ret;
+       rcu_read_lock();
+-      ret = security_capable_noaudit(__task_cred(t), ns, cap);
++      ret = security_capable_noaudit(__task_cred(t), ns, cap) == 0 && gr_task_is_capable_nolog(t, cap);
+       rcu_read_unlock();
+-      return (ret == 0);
++      return ret;
+ }
+ /**
+@@ -384,7 +388,7 @@ bool ns_capable(struct user_namespace *ns, int cap)
                BUG();
        }
  
--      if (security_capable(ns, current_cred(), cap) == 0) {
-+      if (security_capable(ns, current_cred(), cap) == 0 && gr_is_capable(cap)) {
+-      if (security_capable(current_cred(), ns, cap) == 0) {
++      if (security_capable(current_cred(), ns, cap) == 0 && gr_is_capable(cap)) {
                current->flags |= PF_SUPERPRIV;
                return true;
        }
-@@ -382,6 +385,27 @@ bool ns_capable(struct user_namespace *ns, int cap)
+@@ -392,6 +396,21 @@ bool ns_capable(struct user_namespace *ns, int cap)
  }
  EXPORT_SYMBOL(ns_capable);
  
@@ -64965,51 +65398,32 @@ index 283c529..36ac81e 100644
 +              BUG();
 +      }
 +
-+      if (security_capable(ns, current_cred(), cap) == 0 && gr_is_capable_nolog(cap)) {
++      if (security_capable(current_cred(), ns, cap) == 0 && gr_is_capable_nolog(cap)) {
 +              current->flags |= PF_SUPERPRIV;
 +              return true;
 +      }
 +      return false;
 +}
 +EXPORT_SYMBOL(ns_capable_nolog);
-+
-+bool capable_nolog(int cap)
-+{
-+      return ns_capable_nolog(&init_user_ns, cap);
-+}
-+EXPORT_SYMBOL(capable_nolog);
 +
  /**
-  * task_ns_capable - Determine whether current task has a superior
-  * capability targeted at a specific task's user namespace.
-@@ -396,6 +420,12 @@ bool task_ns_capable(struct task_struct *t, int cap)
+  * capable - Determine if the current task has a superior capability in effect
+  * @cap: The capability to be tested for
+@@ -408,6 +427,12 @@ bool capable(int cap)
  }
- EXPORT_SYMBOL(task_ns_capable);
+ EXPORT_SYMBOL(capable);
  
-+bool task_ns_capable_nolog(struct task_struct *t, int cap)
++bool capable_nolog(int cap)
 +{
-+      return ns_capable_nolog(task_cred_xxx(t, user)->user_ns, cap);
++      return ns_capable_nolog(&init_user_ns, cap);
 +}
-+EXPORT_SYMBOL(task_ns_capable_nolog);
++EXPORT_SYMBOL(capable_nolog);
 +
  /**
   * nsown_capable - Check superior capability to one's own user_ns
   * @cap: The capability in question
-diff --git a/kernel/cgroup.c b/kernel/cgroup.c
-index 1d2b6ce..87bf267 100644
---- a/kernel/cgroup.c
-+++ b/kernel/cgroup.c
-@@ -595,6 +595,8 @@ static struct css_set *find_css_set(
-       struct hlist_head *hhead;
-       struct cg_cgroup_link *link;
-+      pax_track_stack();
-+
-       /* First see if we already have a cgroup group that matches
-        * the desired set */
-       read_lock(&css_set_lock);
 diff --git a/kernel/compat.c b/kernel/compat.c
-index e2435ee..8e82199 100644
+index d2c67aa..a629b2e 100644
 --- a/kernel/compat.c
 +++ b/kernel/compat.c
 @@ -13,6 +13,7 @@
@@ -65020,7 +65434,7 @@ index e2435ee..8e82199 100644
  #include <linux/errno.h>
  #include <linux/time.h>
  #include <linux/signal.h>
-@@ -167,7 +168,7 @@ static long compat_nanosleep_restart(struct restart_block *restart)
+@@ -220,7 +221,7 @@ static long compat_nanosleep_restart(struct restart_block *restart)
        mm_segment_t oldfs;
        long ret;
  
@@ -65029,7 +65443,7 @@ index e2435ee..8e82199 100644
        oldfs = get_fs();
        set_fs(KERNEL_DS);
        ret = hrtimer_nanosleep_restart(restart);
-@@ -199,7 +200,7 @@ asmlinkage long compat_sys_nanosleep(struct compat_timespec __user *rqtp,
+@@ -252,7 +253,7 @@ asmlinkage long compat_sys_nanosleep(struct compat_timespec __user *rqtp,
        oldfs = get_fs();
        set_fs(KERNEL_DS);
        ret = hrtimer_nanosleep(&tu,
@@ -65038,7 +65452,7 @@ index e2435ee..8e82199 100644
                                HRTIMER_MODE_REL, CLOCK_MONOTONIC);
        set_fs(oldfs);
  
-@@ -308,7 +309,7 @@ asmlinkage long compat_sys_sigpending(compat_old_sigset_t __user *set)
+@@ -361,7 +362,7 @@ asmlinkage long compat_sys_sigpending(compat_old_sigset_t __user *set)
        mm_segment_t old_fs = get_fs();
  
        set_fs(KERNEL_DS);
@@ -65047,18 +65461,7 @@ index e2435ee..8e82199 100644
        set_fs(old_fs);
        if (ret == 0)
                ret = put_user(s, set);
-@@ -331,8 +332,8 @@ asmlinkage long compat_sys_sigprocmask(int how, compat_old_sigset_t __user *set,
-       old_fs = get_fs();
-       set_fs(KERNEL_DS);
-       ret = sys_sigprocmask(how,
--                            set ? (old_sigset_t __user *) &s : NULL,
--                            oset ? (old_sigset_t __user *) &s : NULL);
-+                            set ? (old_sigset_t __force_user *) &s : NULL,
-+                            oset ? (old_sigset_t __force_user *) &s : NULL);
-       set_fs(old_fs);
-       if (ret == 0)
-               if (oset)
-@@ -369,7 +370,7 @@ asmlinkage long compat_sys_old_getrlimit(unsigned int resource,
+@@ -451,7 +452,7 @@ asmlinkage long compat_sys_old_getrlimit(unsigned int resource,
        mm_segment_t old_fs = get_fs();
  
        set_fs(KERNEL_DS);
@@ -65067,7 +65470,7 @@ index e2435ee..8e82199 100644
        set_fs(old_fs);
  
        if (!ret) {
-@@ -441,7 +442,7 @@ asmlinkage long compat_sys_getrusage(int who, struct compat_rusage __user *ru)
+@@ -523,7 +524,7 @@ asmlinkage long compat_sys_getrusage(int who, struct compat_rusage __user *ru)
        mm_segment_t old_fs = get_fs();
  
        set_fs(KERNEL_DS);
@@ -65076,7 +65479,7 @@ index e2435ee..8e82199 100644
        set_fs(old_fs);
  
        if (ret)
-@@ -468,8 +469,8 @@ compat_sys_wait4(compat_pid_t pid, compat_uint_t __user *stat_addr, int options,
+@@ -550,8 +551,8 @@ compat_sys_wait4(compat_pid_t pid, compat_uint_t __user *stat_addr, int options,
                set_fs (KERNEL_DS);
                ret = sys_wait4(pid,
                                (stat_addr ?
@@ -65087,7 +65490,7 @@ index e2435ee..8e82199 100644
                set_fs (old_fs);
  
                if (ret > 0) {
-@@ -494,8 +495,8 @@ asmlinkage long compat_sys_waitid(int which, compat_pid_t pid,
+@@ -576,8 +577,8 @@ asmlinkage long compat_sys_waitid(int which, compat_pid_t pid,
        memset(&info, 0, sizeof(info));
  
        set_fs(KERNEL_DS);
@@ -65098,7 +65501,7 @@ index e2435ee..8e82199 100644
        set_fs(old_fs);
  
        if ((ret < 0) || (info.si_signo == 0))
-@@ -625,8 +626,8 @@ long compat_sys_timer_settime(timer_t timer_id, int flags,
+@@ -707,8 +708,8 @@ long compat_sys_timer_settime(timer_t timer_id, int flags,
        oldfs = get_fs();
        set_fs(KERNEL_DS);
        err = sys_timer_settime(timer_id, flags,
@@ -65109,7 +65512,7 @@ index e2435ee..8e82199 100644
        set_fs(oldfs);
        if (!err && old && put_compat_itimerspec(old, &oldts))
                return -EFAULT;
-@@ -643,7 +644,7 @@ long compat_sys_timer_gettime(timer_t timer_id,
+@@ -725,7 +726,7 @@ long compat_sys_timer_gettime(timer_t timer_id,
        oldfs = get_fs();
        set_fs(KERNEL_DS);
        err = sys_timer_gettime(timer_id,
@@ -65118,7 +65521,7 @@ index e2435ee..8e82199 100644
        set_fs(oldfs);
        if (!err && put_compat_itimerspec(setting, &ts))
                return -EFAULT;
-@@ -662,7 +663,7 @@ long compat_sys_clock_settime(clockid_t which_clock,
+@@ -744,7 +745,7 @@ long compat_sys_clock_settime(clockid_t which_clock,
        oldfs = get_fs();
        set_fs(KERNEL_DS);
        err = sys_clock_settime(which_clock,
@@ -65127,7 +65530,7 @@ index e2435ee..8e82199 100644
        set_fs(oldfs);
        return err;
  }
-@@ -677,7 +678,7 @@ long compat_sys_clock_gettime(clockid_t which_clock,
+@@ -759,7 +760,7 @@ long compat_sys_clock_gettime(clockid_t which_clock,
        oldfs = get_fs();
        set_fs(KERNEL_DS);
        err = sys_clock_gettime(which_clock,
@@ -65136,7 +65539,7 @@ index e2435ee..8e82199 100644
        set_fs(oldfs);
        if (!err && put_compat_timespec(&ts, tp))
                return -EFAULT;
-@@ -697,7 +698,7 @@ long compat_sys_clock_adjtime(clockid_t which_clock,
+@@ -779,7 +780,7 @@ long compat_sys_clock_adjtime(clockid_t which_clock,
  
        oldfs = get_fs();
        set_fs(KERNEL_DS);
@@ -65145,7 +65548,7 @@ index e2435ee..8e82199 100644
        set_fs(oldfs);
  
        err = compat_put_timex(utp, &txc);
-@@ -717,7 +718,7 @@ long compat_sys_clock_getres(clockid_t which_clock,
+@@ -799,7 +800,7 @@ long compat_sys_clock_getres(clockid_t which_clock,
        oldfs = get_fs();
        set_fs(KERNEL_DS);
        err = sys_clock_getres(which_clock,
@@ -65154,7 +65557,7 @@ index e2435ee..8e82199 100644
        set_fs(oldfs);
        if (!err && tp && put_compat_timespec(&ts, tp))
                return -EFAULT;
-@@ -729,9 +730,9 @@ static long compat_clock_nanosleep_restart(struct restart_block *restart)
+@@ -811,9 +812,9 @@ static long compat_clock_nanosleep_restart(struct restart_block *restart)
        long err;
        mm_segment_t oldfs;
        struct timespec tu;
@@ -65166,7 +65569,7 @@ index e2435ee..8e82199 100644
        oldfs = get_fs();
        set_fs(KERNEL_DS);
        err = clock_nanosleep_restart(restart);
-@@ -763,8 +764,8 @@ long compat_sys_clock_nanosleep(clockid_t which_clock, int flags,
+@@ -845,8 +846,8 @@ long compat_sys_clock_nanosleep(clockid_t which_clock, int flags,
        oldfs = get_fs();
        set_fs(KERNEL_DS);
        err = sys_clock_nanosleep(which_clock, flags,
@@ -65202,82 +65605,35 @@ index 42e8fa0..9e7406b 100644
                return -ENOMEM;
  
 diff --git a/kernel/cred.c b/kernel/cred.c
-index 8ef31f5..f63d997 100644
+index e70683d..27761b6 100644
 --- a/kernel/cred.c
 +++ b/kernel/cred.c
-@@ -158,6 +158,8 @@ static void put_cred_rcu(struct rcu_head *rcu)
-  */
- void __put_cred(struct cred *cred)
- {
-+      pax_track_stack();
-+
-       kdebug("__put_cred(%p{%d,%d})", cred,
-              atomic_read(&cred->usage),
-              read_cred_subscribers(cred));
-@@ -182,6 +184,8 @@ void exit_creds(struct task_struct *tsk)
- {
-       struct cred *cred;
-+      pax_track_stack();
-+
-       kdebug("exit_creds(%u,%p,%p,{%d,%d})", tsk->pid, tsk->real_cred, tsk->cred,
-              atomic_read(&tsk->cred->usage),
-              read_cred_subscribers(tsk->cred));
-@@ -220,6 +224,8 @@ const struct cred *get_task_cred(struct task_struct *task)
- {
-       const struct cred *cred;
-+      pax_track_stack();
+@@ -205,6 +205,15 @@ void exit_creds(struct task_struct *tsk)
+               validate_creds(cred);
+               put_cred(cred);
+       }
 +
-       rcu_read_lock();
++#ifdef CONFIG_GRKERNSEC_SETXID
++      cred = (struct cred *) tsk->delayed_cred;
++      if (cred) {
++              tsk->delayed_cred = NULL;
++              validate_creds(cred);
++              put_cred(cred);
++      }
++#endif
+ }
  
-       do {
-@@ -239,6 +245,8 @@ struct cred *cred_alloc_blank(void)
+ /**
+@@ -473,7 +482,7 @@ error_put:
+  * Always returns 0 thus allowing this function to be tail-called at the end
+  * of, say, sys_setgid().
+  */
+-int commit_creds(struct cred *new)
++static int __commit_creds(struct cred *new)
  {
-       struct cred *new;
-+      pax_track_stack();
-+
-       new = kmem_cache_zalloc(cred_jar, GFP_KERNEL);
-       if (!new)
-               return NULL;
-@@ -287,6 +295,8 @@ struct cred *prepare_creds(void)
-       const struct cred *old;
-       struct cred *new;
-+      pax_track_stack();
-+
-       validate_process_creds();
-       new = kmem_cache_alloc(cred_jar, GFP_KERNEL);
-@@ -333,6 +343,8 @@ struct cred *prepare_exec_creds(void)
-       struct thread_group_cred *tgcred = NULL;
-       struct cred *new;
-+      pax_track_stack();
-+
- #ifdef CONFIG_KEYS
-       tgcred = kmalloc(sizeof(*tgcred), GFP_KERNEL);
-       if (!tgcred)
-@@ -385,6 +397,8 @@ int copy_creds(struct task_struct *p, unsigned long clone_flags)
-       struct cred *new;
-       int ret;
-+      pax_track_stack();
-+
-       if (
- #ifdef CONFIG_KEYS
-               !p->cred->thread_keyring &&
-@@ -475,6 +489,8 @@ int commit_creds(struct cred *new)
        struct task_struct *task = current;
        const struct cred *old = task->real_cred;
-+      pax_track_stack();
-+
-       kdebug("commit_creds(%p{%d,%d})", new,
-              atomic_read(&new->usage),
-              read_cred_subscribers(new));
-@@ -489,6 +505,8 @@ int commit_creds(struct cred *new)
+@@ -492,6 +501,8 @@ int commit_creds(struct cred *new)
  
        get_cred(new); /* we will require a ref for the subj creds too */
  
@@ -65286,65 +65642,113 @@ index 8ef31f5..f63d997 100644
        /* dumpability changes */
        if (old->euid != new->euid ||
            old->egid != new->egid ||
-@@ -549,6 +567,8 @@ EXPORT_SYMBOL(commit_creds);
-  */
- void abort_creds(struct cred *new)
- {
-+      pax_track_stack();
+@@ -541,6 +552,101 @@ int commit_creds(struct cred *new)
+       put_cred(old);
+       return 0;
+ }
++#ifdef CONFIG_GRKERNSEC_SETXID
++extern int set_user(struct cred *new);
 +
-       kdebug("abort_creds(%p{%d,%d})", new,
-              atomic_read(&new->usage),
-              read_cred_subscribers(new));
-@@ -572,6 +592,8 @@ const struct cred *override_creds(const struct cred *new)
- {
-       const struct cred *old = current->cred;
-+      pax_track_stack();
++void gr_delayed_cred_worker(void)
++{
++      const struct cred *new = current->delayed_cred;
++      struct cred *ncred;
 +
-       kdebug("override_creds(%p{%d,%d})", new,
-              atomic_read(&new->usage),
-              read_cred_subscribers(new));
-@@ -601,6 +623,8 @@ void revert_creds(const struct cred *old)
- {
-       const struct cred *override = current->cred;
-+      pax_track_stack();
++      current->delayed_cred = NULL;
 +
-       kdebug("revert_creds(%p{%d,%d})", old,
-              atomic_read(&old->usage),
-              read_cred_subscribers(old));
-@@ -647,6 +671,8 @@ struct cred *prepare_kernel_cred(struct task_struct *daemon)
-       const struct cred *old;
-       struct cred *new;
-+      pax_track_stack();
++      if (current_uid() && new != NULL) {
++              // from doing get_cred on it when queueing this
++              put_cred(new);
++              return;
++      } else if (new == NULL)
++              return;
 +
-       new = kmem_cache_alloc(cred_jar, GFP_KERNEL);
-       if (!new)
-               return NULL;
-@@ -701,6 +727,8 @@ EXPORT_SYMBOL(prepare_kernel_cred);
-  */
- int set_security_override(struct cred *new, u32 secid)
- {
-+      pax_track_stack();
++      ncred = prepare_creds();
++      if (!ncred)
++              goto die;
++      // uids
++      ncred->uid = new->uid;
++      ncred->euid = new->euid;
++      ncred->suid = new->suid;
++      ncred->fsuid = new->fsuid;
++      // gids
++      ncred->gid = new->gid;
++      ncred->egid = new->egid;
++      ncred->sgid = new->sgid;
++      ncred->fsgid = new->fsgid;
++      // groups
++      if (set_groups(ncred, new->group_info) < 0) {
++              abort_creds(ncred);
++              goto die;
++      }
++      // caps
++      ncred->securebits = new->securebits;
++      ncred->cap_inheritable = new->cap_inheritable;
++      ncred->cap_permitted = new->cap_permitted;
++      ncred->cap_effective = new->cap_effective;
++      ncred->cap_bset = new->cap_bset;
++
++      if (set_user(ncred)) {
++              abort_creds(ncred);
++              goto die;
++      }
 +
-       return security_kernel_act_as(new, secid);
- }
- EXPORT_SYMBOL(set_security_override);
-@@ -720,6 +748,8 @@ int set_security_override_from_ctx(struct cred *new, const char *secctx)
-       u32 secid;
-       int ret;
-+      pax_track_stack();
++      // from doing get_cred on it when queueing this
++      put_cred(new);
 +
-       ret = security_secctx_to_secid(secctx, strlen(secctx), &secid);
-       if (ret < 0)
-               return ret;
++      __commit_creds(ncred);
++      return;
++die:
++      // from doing get_cred on it when queueing this
++      put_cred(new);
++      do_group_exit(SIGKILL);
++}
++#endif
++
++int commit_creds(struct cred *new)
++{
++#ifdef CONFIG_GRKERNSEC_SETXID
++      int ret;
++      int schedule_it = 0;
++      struct task_struct *t;
++
++      /* we won't get called with tasklist_lock held for writing
++         and interrupts disabled as the cred struct in that case is
++         init_cred
++      */
++      if (grsec_enable_setxid && !current_is_single_threaded() &&
++          !current_uid() && new->uid) {
++              schedule_it = 1;
++      }
++      ret = __commit_creds(new);
++      if (schedule_it) {
++              rcu_read_lock();
++              read_lock(&tasklist_lock);
++              for (t = next_thread(current); t != current;
++                   t = next_thread(t)) {
++                      if (t->delayed_cred == NULL) {
++                              t->delayed_cred = get_cred(new);
++                              set_tsk_thread_flag(t, TIF_GRSEC_SETXID);
++                              set_tsk_need_resched(t);
++                      }
++              }
++              read_unlock(&tasklist_lock);
++              rcu_read_unlock();
++      }
++      return ret;
++#else
++      return __commit_creds(new);
++#endif
++}
++
+ EXPORT_SYMBOL(commit_creds);
+ /**
 diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
-index 0d7c087..01b8cef 100644
+index 0557f24..1a00d9a 100644
 --- a/kernel/debug/debug_core.c
 +++ b/kernel/debug/debug_core.c
-@@ -119,7 +119,7 @@ static DEFINE_RAW_SPINLOCK(dbg_slave_lock);
+@@ -122,7 +122,7 @@ static DEFINE_RAW_SPINLOCK(dbg_slave_lock);
   */
  static atomic_t                       masters_in_kgdb;
  static atomic_t                       slaves_in_kgdb;
@@ -65353,7 +65757,7 @@ index 0d7c087..01b8cef 100644
  atomic_t                      kgdb_setting_breakpoint;
  
  struct task_struct            *kgdb_usethread;
-@@ -129,7 +129,7 @@ int                                kgdb_single_step;
+@@ -132,7 +132,7 @@ int                                kgdb_single_step;
  static pid_t                  kgdb_sstep_pid;
  
  /* to keep track of the CPU which is doing the single stepping*/
@@ -65362,7 +65766,7 @@ index 0d7c087..01b8cef 100644
  
  /*
   * If you are debugging a problem where roundup (the collection of
-@@ -542,7 +542,7 @@ return_normal:
+@@ -540,7 +540,7 @@ return_normal:
         * kernel will only try for the value of sstep_tries before
         * giving up and continuing on.
         */
@@ -65371,7 +65775,7 @@ index 0d7c087..01b8cef 100644
            (kgdb_info[cpu].task &&
             kgdb_info[cpu].task->pid != kgdb_sstep_pid) && --sstep_tries) {
                atomic_set(&kgdb_active, -1);
-@@ -636,8 +636,8 @@ cpu_master_loop:
+@@ -634,8 +634,8 @@ cpu_master_loop:
        }
  
  kgdb_restore:
@@ -65382,7 +65786,7 @@ index 0d7c087..01b8cef 100644
                if (kgdb_info[sstep_cpu].task)
                        kgdb_sstep_pid = kgdb_info[sstep_cpu].task->pid;
                else
-@@ -834,18 +834,18 @@ static void kgdb_unregister_callbacks(void)
+@@ -861,18 +861,18 @@ static void kgdb_unregister_callbacks(void)
  static void kgdb_tasklet_bpt(unsigned long ing)
  {
        kgdb_breakpoint();
@@ -65405,19 +65809,19 @@ index 0d7c087..01b8cef 100644
  }
  EXPORT_SYMBOL_GPL(kgdb_schedule_breakpoint);
 diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
-index 63786e7..0780cac 100644
+index 67b847d..93834dd 100644
 --- a/kernel/debug/kdb/kdb_main.c
 +++ b/kernel/debug/kdb/kdb_main.c
-@@ -1980,7 +1980,7 @@ static int kdb_lsmod(int argc, const char **argv)
+@@ -1983,7 +1983,7 @@ static int kdb_lsmod(int argc, const char **argv)
        list_for_each_entry(mod, kdb_modules, list) {
  
                kdb_printf("%-20s%8u  0x%p ", mod->name,
 -                         mod->core_size, (void *)mod);
 +                         mod->core_size_rx + mod->core_size_rw, (void *)mod);
  #ifdef CONFIG_MODULE_UNLOAD
-               kdb_printf("%4d ", module_refcount(mod));
+               kdb_printf("%4ld ", module_refcount(mod));
  #endif
-@@ -1990,7 +1990,7 @@ static int kdb_lsmod(int argc, const char **argv)
+@@ -1993,7 +1993,7 @@ static int kdb_lsmod(int argc, const char **argv)
                        kdb_printf(" (Loading)");
                else
                        kdb_printf(" (Live)");
@@ -65427,10 +65831,10 @@ index 63786e7..0780cac 100644
  #ifdef CONFIG_MODULE_UNLOAD
                {
 diff --git a/kernel/events/core.c b/kernel/events/core.c
-index 0f85778..0d43716 100644
+index fd126f8..70b755b 100644
 --- a/kernel/events/core.c
 +++ b/kernel/events/core.c
-@@ -172,7 +172,7 @@ int perf_proc_update_handler(struct ctl_table *table, int write,
+@@ -181,7 +181,7 @@ int perf_proc_update_handler(struct ctl_table *table, int write,
        return 0;
  }
  
@@ -65439,7 +65843,7 @@ index 0f85778..0d43716 100644
  
  static void cpu_ctx_sched_out(struct perf_cpu_context *cpuctx,
                              enum event_type_t event_type);
-@@ -2535,7 +2535,7 @@ static void __perf_event_read(void *info)
+@@ -2659,7 +2659,7 @@ static void __perf_event_read(void *info)
  
  static inline u64 perf_event_count(struct perf_event *event)
  {
@@ -65448,7 +65852,7 @@ index 0f85778..0d43716 100644
  }
  
  static u64 perf_event_read(struct perf_event *event)
-@@ -3060,9 +3060,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
+@@ -2983,9 +2983,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
        mutex_lock(&event->child_mutex);
        total += perf_event_read(event);
        *enabled += event->total_time_enabled +
@@ -65460,7 +65864,7 @@ index 0f85778..0d43716 100644
  
        list_for_each_entry(child, &event->child_list, child_list) {
                total += perf_event_read(child);
-@@ -3448,10 +3448,10 @@ void perf_event_update_userpage(struct perf_event *event)
+@@ -3393,10 +3393,10 @@ void perf_event_update_userpage(struct perf_event *event)
                userpg->offset -= local64_read(&event->hw.prev_count);
  
        userpg->time_enabled = enabled +
@@ -65471,9 +65875,9 @@ index 0f85778..0d43716 100644
 -                      atomic64_read(&event->child_total_time_running);
 +                      atomic64_read_unchecked(&event->child_total_time_running);
  
-       barrier();
-       ++userpg->lock;
-@@ -3822,11 +3822,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
+       arch_perf_update_userpage(userpg, now);
+@@ -3829,11 +3829,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
        values[n++] = perf_event_count(event);
        if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) {
                values[n++] = enabled +
@@ -65487,7 +65891,7 @@ index 0f85778..0d43716 100644
        }
        if (read_format & PERF_FORMAT_ID)
                values[n++] = primary_event_id(event);
-@@ -4477,12 +4477,12 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event)
+@@ -4511,12 +4511,12 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event)
                 * need to add enough zero bytes after the string to handle
                 * the 64bit alignment we do later.
                 */
@@ -65502,7 +65906,7 @@ index 0f85778..0d43716 100644
                if (IS_ERR(name)) {
                        name = strncpy(tmp, "//toolong", sizeof(tmp));
                        goto got_name;
-@@ -5833,7 +5833,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
+@@ -5929,7 +5929,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
        event->parent           = parent_event;
  
        event->ns               = get_pid_ns(current->nsproxy->pid_ns);
@@ -65511,7 +65915,7 @@ index 0f85778..0d43716 100644
  
        event->state            = PERF_EVENT_STATE_INACTIVE;
  
-@@ -6355,10 +6355,10 @@ static void sync_child_event(struct perf_event *child_event,
+@@ -6491,10 +6491,10 @@ static void sync_child_event(struct perf_event *child_event,
        /*
         * Add back the child's count to the parent's count:
         */
@@ -65526,10 +65930,10 @@ index 0f85778..0d43716 100644
  
        /*
 diff --git a/kernel/exit.c b/kernel/exit.c
-index 2913b35..4465c81 100644
+index 9d81012..d7911f1 100644
 --- a/kernel/exit.c
 +++ b/kernel/exit.c
-@@ -57,6 +57,10 @@
+@@ -59,6 +59,10 @@
  #include <asm/pgtable.h>
  #include <asm/mmu_context.h>
  
@@ -65540,7 +65944,7 @@ index 2913b35..4465c81 100644
  static void exit_mm(struct task_struct * tsk);
  
  static void __unhash_process(struct task_struct *p, bool group_dead)
-@@ -168,6 +172,10 @@ void release_task(struct task_struct * p)
+@@ -170,6 +174,10 @@ void release_task(struct task_struct * p)
        struct task_struct *leader;
        int zap_leader;
  repeat:
@@ -65551,7 +65955,7 @@ index 2913b35..4465c81 100644
        /* don't need to get the RCU readlock here - the process is dead and
         * can't be modifying its own credentials. But shut RCU-lockdep up */
        rcu_read_lock();
-@@ -380,7 +388,7 @@ int allow_signal(int sig)
+@@ -382,7 +390,7 @@ int allow_signal(int sig)
         * know it'll be handled, so that they don't get converted to
         * SIGKILL or just silently dropped.
         */
@@ -65560,7 +65964,7 @@ index 2913b35..4465c81 100644
        recalc_sigpending();
        spin_unlock_irq(&current->sighand->siglock);
        return 0;
-@@ -416,6 +424,17 @@ void daemonize(const char *name, ...)
+@@ -418,6 +426,17 @@ void daemonize(const char *name, ...)
        vsnprintf(current->comm, sizeof(current->comm), name, args);
        va_end(args);
  
@@ -65578,7 +65982,7 @@ index 2913b35..4465c81 100644
        /*
         * If we were started as result of loading a module, close all of the
         * user space pages.  We don't need them, and if we didn't close them
-@@ -895,6 +914,8 @@ NORET_TYPE void do_exit(long code)
+@@ -901,6 +920,8 @@ void do_exit(long code)
        struct task_struct *tsk = current;
        int group_dead;
  
@@ -65587,7 +65991,7 @@ index 2913b35..4465c81 100644
        profile_task_exit(tsk);
  
        WARN_ON(blk_needs_flush_plug(tsk));
-@@ -911,7 +932,6 @@ NORET_TYPE void do_exit(long code)
+@@ -917,7 +938,6 @@ void do_exit(long code)
         * mm_release()->clear_child_tid() from writing to a user-controlled
         * kernel address.
         */
@@ -65595,7 +65999,7 @@ index 2913b35..4465c81 100644
  
        ptrace_event(PTRACE_EVENT_EXIT, code);
  
-@@ -973,6 +993,9 @@ NORET_TYPE void do_exit(long code)
+@@ -978,6 +998,9 @@ void do_exit(long code)
        tsk->exit_code = code;
        taskstats_exit(tsk, group_dead);
  
@@ -65605,11 +66009,40 @@ index 2913b35..4465c81 100644
        exit_mm(tsk);
  
        if (group_dead)
+@@ -1094,7 +1117,7 @@ SYSCALL_DEFINE1(exit, int, error_code)
+  * Take down every thread in the group.  This is called by fatal signals
+  * as well as by sys_exit_group (below).
+  */
+-void
++__noreturn void
+ do_group_exit(int exit_code)
+ {
+       struct signal_struct *sig = current->signal;
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 8e6b6f4..9dccf00 100644
+index 8163333..aee97f3 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -285,7 +285,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
+@@ -274,19 +274,24 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
+       }
+       err = arch_dup_task_struct(tsk, orig);
+-      if (err)
+-              goto out;
++      /*
++       * We defer looking at err, because we will need this setup
++       * for the clean up path to work correctly.
++       */
+       tsk->stack = ti;
+-
+       setup_thread_stack(tsk, orig);
++
++      if (err)
++              goto out;
++
+       clear_user_return_notifier(tsk);
+       clear_tsk_need_resched(tsk);
+       stackend = end_of_stack(tsk);
        *stackend = STACK_END_MAGIC;    /* for overflow detection */
  
  #ifdef CONFIG_CC_STACKPROTECTOR
@@ -65618,11 +66051,11 @@ index 8e6b6f4..9dccf00 100644
  #endif
  
        /*
-@@ -309,13 +309,77 @@ out:
+@@ -310,13 +315,78 @@ out:
  }
  
  #ifdef CONFIG_MMU
-+static struct vm_area_struct *dup_vma(struct mm_struct *mm, struct vm_area_struct *mpnt)
++static struct vm_area_struct *dup_vma(struct mm_struct *mm, struct mm_struct *oldmm, struct vm_area_struct *mpnt)
 +{
 +      struct vm_area_struct *tmp;
 +      unsigned long charge;
@@ -65631,8 +66064,9 @@ index 8e6b6f4..9dccf00 100644
 +
 +      charge = 0;
 +      if (mpnt->vm_flags & VM_ACCOUNT) {
-+              unsigned int len = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
-+              if (security_vm_enough_memory(len))
++              unsigned long len;
++              len = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
++              if (security_vm_enough_memory_mm(oldmm, len)) /* sic */
 +                      goto fail_nomem;
 +              charge = len;
 +      }
@@ -65698,7 +66132,7 @@ index 8e6b6f4..9dccf00 100644
  
        down_write(&oldmm->mmap_sem);
        flush_cache_dup_mm(oldmm);
-@@ -327,8 +391,8 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+@@ -328,8 +398,8 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
        mm->locked_vm = 0;
        mm->mmap = NULL;
        mm->mmap_cache = NULL;
@@ -65709,7 +66143,7 @@ index 8e6b6f4..9dccf00 100644
        mm->map_count = 0;
        cpumask_clear(mm_cpumask(mm));
        mm->mm_rb = RB_ROOT;
-@@ -344,8 +408,6 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+@@ -345,8 +415,6 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
  
        prev = NULL;
        for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) {
@@ -65718,17 +66152,18 @@ index 8e6b6f4..9dccf00 100644
                if (mpnt->vm_flags & VM_DONTCOPY) {
                        long pages = vma_pages(mpnt);
                        mm->total_vm -= pages;
-@@ -353,53 +415,11 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+@@ -354,54 +422,11 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
                                                                -pages);
                        continue;
                }
 -              charge = 0;
 -              if (mpnt->vm_flags & VM_ACCOUNT) {
--                      unsigned int len = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
--                      if (security_vm_enough_memory(len))
+-                      unsigned long len;
+-                      len = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
+-                      if (security_vm_enough_memory_mm(oldmm, len)) /* sic */
 -                              goto fail_nomem;
 -                      charge = len;
-+              tmp = dup_vma(mm, mpnt);
++              tmp = dup_vma(mm, oldmm, mpnt);
 +              if (!tmp) {
 +                      retval = -ENOMEM;
 +                      goto out;
@@ -65776,7 +66211,7 @@ index 8e6b6f4..9dccf00 100644
  
                /*
                 * Link in the new vma and copy the page table entries.
-@@ -422,6 +442,31 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+@@ -424,6 +449,31 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
                if (retval)
                        goto out;
        }
@@ -65808,7 +66243,7 @@ index 8e6b6f4..9dccf00 100644
        /* a new mm has just been created */
        arch_dup_mmap(oldmm, mm);
        retval = 0;
-@@ -430,14 +475,6 @@ out:
+@@ -432,14 +482,6 @@ out:
        flush_tlb_mm(oldmm);
        up_write(&oldmm->mmap_sem);
        return retval;
@@ -65823,7 +66258,18 @@ index 8e6b6f4..9dccf00 100644
  }
  
  static inline int mm_alloc_pgd(struct mm_struct *mm)
-@@ -837,13 +874,14 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
+@@ -676,8 +718,8 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
+               return ERR_PTR(err);
+       mm = get_task_mm(task);
+-      if (mm && mm != current->mm &&
+-                      !ptrace_may_access(task, mode)) {
++      if (mm && ((mm != current->mm && !ptrace_may_access(task, mode)) ||
++                (mode == PTRACE_MODE_ATTACH && (gr_handle_proc_ptrace(task) || gr_acl_handle_procpidmem(task))))) {
+               mmput(mm);
+               mm = ERR_PTR(-EACCES);
+       }
+@@ -899,13 +941,14 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
                        spin_unlock(&fs->lock);
                        return -EAGAIN;
                }
@@ -65839,7 +66285,7 @@ index 8e6b6f4..9dccf00 100644
        return 0;
  }
  
-@@ -1105,6 +1143,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1172,6 +1215,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
        DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
  #endif
        retval = -EAGAIN;
@@ -65849,16 +66295,17 @@ index 8e6b6f4..9dccf00 100644
        if (atomic_read(&p->real_cred->user->processes) >=
                        task_rlimit(p, RLIMIT_NPROC)) {
                if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) &&
-@@ -1264,6 +1305,8 @@ static struct task_struct *copy_process(unsigned long clone_flags,
-       if (clone_flags & CLONE_THREAD)
-               p->tgid = current->tgid;
+@@ -1392,6 +1438,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+       /* Need tasklist lock for parent etc handling! */
+       write_lock_irq(&tasklist_lock);
  
++      /* synchronizes with gr_set_acls() */
 +      gr_copy_label(p);
 +
-       p->set_child_tid = (clone_flags & CLONE_CHILD_SETTID) ? child_tidptr : NULL;
-       /*
-        * Clear TID on mm_release()?
-@@ -1428,6 +1471,8 @@ bad_fork_cleanup_count:
+       /* CLONE_PARENT re-uses the old parent */
+       if (clone_flags & (CLONE_PARENT|CLONE_THREAD)) {
+               p->real_parent = current->real_parent;
+@@ -1502,6 +1551,8 @@ bad_fork_cleanup_count:
  bad_fork_free:
        free_task(p);
  fork_out:
@@ -65867,7 +66314,7 @@ index 8e6b6f4..9dccf00 100644
        return ERR_PTR(retval);
  }
  
-@@ -1528,6 +1573,8 @@ long do_fork(unsigned long clone_flags,
+@@ -1602,6 +1653,8 @@ long do_fork(unsigned long clone_flags,
                if (clone_flags & CLONE_PARENT_SETTID)
                        put_user(nr, parent_tidptr);
  
@@ -65876,7 +66323,7 @@ index 8e6b6f4..9dccf00 100644
                if (clone_flags & CLONE_VFORK) {
                        p->vfork_done = &vfork;
                        init_completion(&vfork);
-@@ -1637,7 +1684,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
+@@ -1700,7 +1753,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
                return 0;
  
        /* don't need lock here; in the worst case we'll do useless copy */
@@ -65885,7 +66332,7 @@ index 8e6b6f4..9dccf00 100644
                return 0;
  
        *new_fsp = copy_fs_struct(fs);
-@@ -1726,7 +1773,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
+@@ -1789,7 +1842,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
                        fs = current->fs;
                        spin_lock(&fs->lock);
                        current->fs = new_fs;
@@ -65896,7 +66343,7 @@ index 8e6b6f4..9dccf00 100644
                        else
                                new_fs = fs;
 diff --git a/kernel/futex.c b/kernel/futex.c
-index 11cbe05..9ff191b 100644
+index e2b0fb9..db818ac 100644
 --- a/kernel/futex.c
 +++ b/kernel/futex.c
 @@ -54,6 +54,7 @@
@@ -65905,9 +66352,9 @@ index 11cbe05..9ff191b 100644
  #include <linux/syscalls.h>
 +#include <linux/ptrace.h>
  #include <linux/signal.h>
- #include <linux/module.h>
+ #include <linux/export.h>
  #include <linux/magic.h>
-@@ -238,6 +239,11 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw)
+@@ -239,6 +240,11 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw)
        struct page *page, *page_head;
        int err, ro = 0;
  
@@ -65919,54 +66366,7 @@ index 11cbe05..9ff191b 100644
        /*
         * The futex address must be "naturally" aligned.
         */
-@@ -1863,6 +1869,8 @@ static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,
-       struct futex_q q = futex_q_init;
-       int ret;
-+      pax_track_stack();
-+
-       if (!bitset)
-               return -EINVAL;
-       q.bitset = bitset;
-@@ -2259,6 +2267,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
-       struct futex_q q = futex_q_init;
-       int res, ret;
-+      pax_track_stack();
-+
-       if (!bitset)
-               return -EINVAL;
-@@ -2431,7 +2441,9 @@ SYSCALL_DEFINE3(get_robust_list, int, pid,
- {
-       struct robust_list_head __user *head;
-       unsigned long ret;
-+#ifndef CONFIG_GRKERNSEC_PROC_MEMMAP
-       const struct cred *cred = current_cred(), *pcred;
-+#endif
-       if (!futex_cmpxchg_enabled)
-               return -ENOSYS;
-@@ -2447,6 +2459,10 @@ SYSCALL_DEFINE3(get_robust_list, int, pid,
-               if (!p)
-                       goto err_unlock;
-               ret = -EPERM;
-+#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
-+              if (!ptrace_may_access(p, PTRACE_MODE_READ))
-+                      goto err_unlock;
-+#else
-               pcred = __task_cred(p);
-               /* If victim is in different user_ns, then uids are not
-                  comparable, so we must have CAP_SYS_PTRACE */
-@@ -2461,6 +2477,7 @@ SYSCALL_DEFINE3(get_robust_list, int, pid,
-                   !ns_capable(pcred->user->user_ns, CAP_SYS_PTRACE))
-                       goto err_unlock;
- ok:
-+#endif
-               head = p->robust_list;
-               rcu_read_unlock();
-       }
-@@ -2712,6 +2729,7 @@ static int __init futex_init(void)
+@@ -2711,6 +2717,7 @@ static int __init futex_init(void)
  {
        u32 curval;
        int i;
@@ -65974,7 +66374,7 @@ index 11cbe05..9ff191b 100644
  
        /*
         * This will fail and we want it. Some arch implementations do
-@@ -2723,8 +2741,11 @@ static int __init futex_init(void)
+@@ -2722,8 +2729,11 @@ static int __init futex_init(void)
         * implementation, the non-functional ones will return
         * -ENOSYS.
         */
@@ -65986,49 +66386,6 @@ index 11cbe05..9ff191b 100644
  
        for (i = 0; i < ARRAY_SIZE(futex_queues); i++) {
                plist_head_init(&futex_queues[i].chain);
-diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
-index 5f9e689..03afa21 100644
---- a/kernel/futex_compat.c
-+++ b/kernel/futex_compat.c
-@@ -10,6 +10,7 @@
- #include <linux/compat.h>
- #include <linux/nsproxy.h>
- #include <linux/futex.h>
-+#include <linux/ptrace.h>
- #include <asm/uaccess.h>
-@@ -136,7 +137,10 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
- {
-       struct compat_robust_list_head __user *head;
-       unsigned long ret;
--      const struct cred *cred = current_cred(), *pcred;
-+#ifndef CONFIG_GRKERNSEC_PROC_MEMMAP
-+      const struct cred *cred = current_cred();
-+      const struct cred *pcred;
-+#endif
-       if (!futex_cmpxchg_enabled)
-               return -ENOSYS;
-@@ -152,6 +156,10 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
-               if (!p)
-                       goto err_unlock;
-               ret = -EPERM;
-+#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
-+              if (!ptrace_may_access(p, PTRACE_MODE_READ))
-+                      goto err_unlock;
-+#else
-               pcred = __task_cred(p);
-               /* If victim is in different user_ns, then uids are not
-                  comparable, so we must have CAP_SYS_PTRACE */
-@@ -166,6 +174,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
-                   !ns_capable(pcred->user->user_ns, CAP_SYS_PTRACE))
-                       goto err_unlock;
- ok:
-+#endif
-               head = p->compat_robust_list;
-               rcu_read_unlock();
-       }
 diff --git a/kernel/gcov/base.c b/kernel/gcov/base.c
 index 9b22d03..6295b62 100644
 --- a/kernel/gcov/base.c
@@ -66055,23 +66412,31 @@ index 9b22d03..6295b62 100644
                                prev->next = info->next;
                        else
 diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index 2043c08..ec81a69 100644
+index 6db7a5e..25b6648 100644
 --- a/kernel/hrtimer.c
 +++ b/kernel/hrtimer.c
-@@ -1393,7 +1393,7 @@ void hrtimer_peek_ahead_timers(void)
+@@ -1407,7 +1407,7 @@ void hrtimer_peek_ahead_timers(void)
        local_irq_restore(flags);
  }
  
 -static void run_hrtimer_softirq(struct softirq_action *h)
 +static void run_hrtimer_softirq(void)
  {
-       hrtimer_peek_ahead_timers();
- }
+       struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
 diff --git a/kernel/jump_label.c b/kernel/jump_label.c
-index e6f1f24..6c19597 100644
+index 4304919..408c4c0 100644
 --- a/kernel/jump_label.c
 +++ b/kernel/jump_label.c
-@@ -55,7 +55,9 @@ jump_label_sort_entries(struct jump_entry *start, struct jump_entry *stop)
+@@ -13,6 +13,7 @@
+ #include <linux/sort.h>
+ #include <linux/err.h>
+ #include <linux/static_key.h>
++#include <linux/mm.h>
+ #ifdef HAVE_JUMP_LABEL
+@@ -50,7 +51,9 @@ jump_label_sort_entries(struct jump_entry *start, struct jump_entry *stop)
  
        size = (((unsigned long)stop - (unsigned long)start)
                                        / sizeof(struct jump_entry));
@@ -66080,8 +66445,8 @@ index e6f1f24..6c19597 100644
 +      pax_close_kernel();
  }
  
- static void jump_label_update(struct jump_label_key *key, int enable);
-@@ -298,10 +300,12 @@ static void jump_label_invalidate_module_init(struct module *mod)
+ static void jump_label_update(struct static_key *key, int enable);
+@@ -356,10 +359,12 @@ static void jump_label_invalidate_module_init(struct module *mod)
        struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
        struct jump_entry *iter;
  
@@ -66095,7 +66460,7 @@ index e6f1f24..6c19597 100644
  
  static int
 diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
-index 079f1d3..a407562 100644
+index 079f1d3..4e80e69 100644
 --- a/kernel/kallsyms.c
 +++ b/kernel/kallsyms.c
 @@ -11,6 +11,9 @@
@@ -66191,7 +66556,30 @@ index 079f1d3..a407562 100644
        /* Some debugging symbols have no name.  Ignore them. */
        if (!iter->name[0])
                return 0;
-@@ -540,7 +583,7 @@ static int kallsyms_open(struct inode *inode, struct file *file)
+@@ -515,11 +558,22 @@ static int s_show(struct seq_file *m, void *p)
+                */
+               type = iter->exported ? toupper(iter->type) :
+                                       tolower(iter->type);
++
++#ifdef CONFIG_GRKERNSEC_HIDESYM
++              seq_printf(m, "%pP %c %s\t[%s]\n", (void *)iter->value,
++                         type, iter->name, iter->module_name);
++#else
+               seq_printf(m, "%pK %c %s\t[%s]\n", (void *)iter->value,
+                          type, iter->name, iter->module_name);
++#endif
+       } else
++#ifdef CONFIG_GRKERNSEC_HIDESYM
++              seq_printf(m, "%pP %c %s\n", (void *)iter->value,
++                         iter->type, iter->name);
++#else
+               seq_printf(m, "%pK %c %s\n", (void *)iter->value,
+                          iter->type, iter->name);
++#endif
+       return 0;
+ }
+@@ -540,7 +594,7 @@ static int kallsyms_open(struct inode *inode, struct file *file)
        struct kallsym_iter *iter;
        int ret;
  
@@ -66201,10 +66589,10 @@ index 079f1d3..a407562 100644
                return -ENOMEM;
        reset_iter(iter, 0);
 diff --git a/kernel/kexec.c b/kernel/kexec.c
-index 296fbc8..84cb857 100644
+index 4e2e472..cd0c7ae 100644
 --- a/kernel/kexec.c
 +++ b/kernel/kexec.c
-@@ -1033,7 +1033,8 @@ asmlinkage long compat_sys_kexec_load(unsigned long entry,
+@@ -1046,7 +1046,8 @@ asmlinkage long compat_sys_kexec_load(unsigned long entry,
                                unsigned long flags)
  {
        struct compat_kexec_segment in;
@@ -66215,10 +66603,38 @@ index 296fbc8..84cb857 100644
  
        /* Don't allow clients that don't understand the native
 diff --git a/kernel/kmod.c b/kernel/kmod.c
-index a4bea97..7a1ae9a 100644
+index 05698a7..a4c1e3a 100644
 --- a/kernel/kmod.c
 +++ b/kernel/kmod.c
-@@ -73,13 +73,12 @@ char modprobe_path[KMOD_PATH_LEN] = "/sbin/modprobe";
+@@ -66,7 +66,7 @@ static void free_modprobe_argv(struct subprocess_info *info)
+       kfree(info->argv);
+ }
+-static int call_modprobe(char *module_name, int wait)
++static int call_modprobe(char *module_name, char *module_param, int wait)
+ {
+       static char *envp[] = {
+               "HOME=/",
+@@ -75,7 +75,7 @@ static int call_modprobe(char *module_name, int wait)
+               NULL
+       };
+-      char **argv = kmalloc(sizeof(char *[5]), GFP_KERNEL);
++      char **argv = kmalloc(sizeof(char *[6]), GFP_KERNEL);
+       if (!argv)
+               goto out;
+@@ -87,7 +87,8 @@ static int call_modprobe(char *module_name, int wait)
+       argv[1] = "-q";
+       argv[2] = "--";
+       argv[3] = module_name;  /* check free_modprobe_argv() */
+-      argv[4] = NULL;
++      argv[4] = module_param;
++      argv[5] = NULL;
+       return call_usermodehelper_fns(modprobe_path, argv, envp,
+               wait | UMH_KILLABLE, NULL, free_modprobe_argv, NULL);
+@@ -112,9 +113,8 @@ out:
   * If module auto-loading support is disabled then this function
   * becomes a no-operation.
   */
@@ -66229,12 +66645,7 @@ index a4bea97..7a1ae9a 100644
        char module_name[MODULE_NAME_LEN];
        unsigned int max_modprobes;
        int ret;
--      char *argv[] = { modprobe_path, "-q", "--", module_name, NULL };
-+      char *argv[] = { modprobe_path, "-q", "--", module_name, module_param, NULL };
-       static char *envp[] = { "HOME=/",
-                               "TERM=linux",
-                               "PATH=/sbin:/usr/sbin:/bin:/usr/bin",
-@@ -88,9 +87,7 @@ int __request_module(bool wait, const char *fmt, ...)
+@@ -122,9 +122,7 @@ int __request_module(bool wait, const char *fmt, ...)
  #define MAX_KMOD_CONCURRENT 50        /* Completely arbitrary value - KAO */
        static int kmod_loop_msg;
  
@@ -66245,7 +66656,7 @@ index a4bea97..7a1ae9a 100644
        if (ret >= MODULE_NAME_LEN)
                return -ENAMETOOLONG;
  
-@@ -98,6 +95,20 @@ int __request_module(bool wait, const char *fmt, ...)
+@@ -132,6 +130,20 @@ int __request_module(bool wait, const char *fmt, ...)
        if (ret)
                return ret;
  
@@ -66266,7 +66677,13 @@ index a4bea97..7a1ae9a 100644
        /* If modprobe needs a service that is in a module, we get a recursive
         * loop.  Limit the number of running kmod threads to max_threads/2 or
         * MAX_KMOD_CONCURRENT, whichever is the smaller.  A cleaner method
-@@ -133,6 +144,47 @@ int __request_module(bool wait, const char *fmt, ...)
+@@ -160,11 +172,52 @@ int __request_module(bool wait, const char *fmt, ...)
+       trace_module_request(module_name, wait, _RET_IP_);
+-      ret = call_modprobe(module_name, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC);
++      ret = call_modprobe(module_name, module_param, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC);
        atomic_dec(&kmod_concurrent);
        return ret;
  }
@@ -66314,7 +66731,7 @@ index a4bea97..7a1ae9a 100644
  EXPORT_SYMBOL(__request_module);
  #endif /* CONFIG_MODULES */
  
-@@ -222,7 +274,7 @@ static int wait_for_helper(void *data)
+@@ -267,7 +320,7 @@ static int wait_for_helper(void *data)
                 *
                 * Thus the __user pointer cast is valid here.
                 */
@@ -66324,7 +66741,7 @@ index a4bea97..7a1ae9a 100644
                /*
                 * If ret is 0, either ____call_usermodehelper failed and the
 diff --git a/kernel/kprobes.c b/kernel/kprobes.c
-index b30fd54..11821ec 100644
+index c62b854..cb67968 100644
 --- a/kernel/kprobes.c
 +++ b/kernel/kprobes.c
 @@ -185,7 +185,7 @@ static kprobe_opcode_t __kprobes *__get_insn_slot(struct kprobe_insn_cache *c)
@@ -66345,7 +66762,7 @@ index b30fd54..11821ec 100644
                        kfree(kip);
                }
                return 1;
-@@ -1949,7 +1949,7 @@ static int __init init_kprobes(void)
+@@ -1955,7 +1955,7 @@ static int __init init_kprobes(void)
  {
        int i, err = 0;
        unsigned long offset = 0, size = 0;
@@ -66354,7 +66771,7 @@ index b30fd54..11821ec 100644
        const char *symbol_name;
        void *addr;
        struct kprobe_blackpoint *kb;
-@@ -2075,7 +2075,7 @@ static int __kprobes show_kprobe_addr(struct seq_file *pi, void *v)
+@@ -2081,7 +2081,7 @@ static int __kprobes show_kprobe_addr(struct seq_file *pi, void *v)
        const char *sym = NULL;
        unsigned int i = *(loff_t *) v;
        unsigned long offset = 0;
@@ -66363,11 +66780,24 @@ index b30fd54..11821ec 100644
  
        head = &kprobe_table[i];
        preempt_disable();
+diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c
+index 4e316e1..5501eef 100644
+--- a/kernel/ksysfs.c
++++ b/kernel/ksysfs.c
+@@ -47,6 +47,8 @@ static ssize_t uevent_helper_store(struct kobject *kobj,
+ {
+       if (count+1 > UEVENT_HELPER_PATH_LEN)
+               return -ENOENT;
++      if (!capable(CAP_SYS_ADMIN))
++              return -EPERM;
+       memcpy(uevent_helper, buf, count);
+       uevent_helper[count] = '\0';
+       if (count && uevent_helper[count-1] == '\n')
 diff --git a/kernel/lockdep.c b/kernel/lockdep.c
-index 91d67ce..ac259df 100644
+index ea9ee45..67ebc8f 100644
 --- a/kernel/lockdep.c
 +++ b/kernel/lockdep.c
-@@ -583,6 +583,10 @@ static int static_obj(void *obj)
+@@ -590,6 +590,10 @@ static int static_obj(void *obj)
                      end   = (unsigned long) &_end,
                      addr  = (unsigned long) obj;
  
@@ -66378,7 +66808,7 @@ index 91d67ce..ac259df 100644
        /*
         * static variable?
         */
-@@ -718,6 +722,7 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
+@@ -730,6 +734,7 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
        if (!static_obj(lock->key)) {
                debug_locks_off();
                printk("INFO: trying to register non-static key.\n");
@@ -66386,7 +66816,7 @@ index 91d67ce..ac259df 100644
                printk("the code is fine but needs lockdep annotation.\n");
                printk("turning off the locking correctness validator.\n");
                dump_stack();
-@@ -2948,7 +2953,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
+@@ -3042,7 +3047,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
                if (!class)
                        return 0;
        }
@@ -66396,7 +66826,7 @@ index 91d67ce..ac259df 100644
                printk("\nacquire class [%p] %s", class->key, class->name);
                if (class->name_version > 1)
 diff --git a/kernel/lockdep_proc.c b/kernel/lockdep_proc.c
-index 71edd2f..e0542a5 100644
+index 91c32a0..b2c71c5 100644
 --- a/kernel/lockdep_proc.c
 +++ b/kernel/lockdep_proc.c
 @@ -39,7 +39,7 @@ static void l_stop(struct seq_file *m, void *v)
@@ -66409,7 +66839,7 @@ index 71edd2f..e0542a5 100644
  
        if (!name) {
 diff --git a/kernel/module.c b/kernel/module.c
-index 04379f92..fba2faf 100644
+index 78ac6ec..e87db0e 100644
 --- a/kernel/module.c
 +++ b/kernel/module.c
 @@ -58,6 +58,7 @@
@@ -66420,7 +66850,7 @@ index 04379f92..fba2faf 100644
  
  #define CREATE_TRACE_POINTS
  #include <trace/events/module.h>
-@@ -119,7 +120,8 @@ static BLOCKING_NOTIFIER_HEAD(module_notify_list);
+@@ -114,7 +115,8 @@ static BLOCKING_NOTIFIER_HEAD(module_notify_list);
  
  /* Bounds of module allocation, for speeding __module_address.
   * Protected by module_mutex. */
@@ -66430,7 +66860,7 @@ index 04379f92..fba2faf 100644
  
  int register_module_notifier(struct notifier_block * nb)
  {
-@@ -284,7 +286,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
+@@ -278,7 +280,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
                return true;
  
        list_for_each_entry_rcu(mod, &modules, list) {
@@ -66439,7 +66869,7 @@ index 04379f92..fba2faf 100644
                        { mod->syms, mod->syms + mod->num_syms, mod->crcs,
                          NOT_GPL_ONLY, false },
                        { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms,
-@@ -306,7 +308,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
+@@ -300,7 +302,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
  #endif
                };
  
@@ -66448,7 +66878,7 @@ index 04379f92..fba2faf 100644
                        return true;
        }
        return false;
-@@ -438,7 +440,7 @@ static inline void __percpu *mod_percpu(struct module *mod)
+@@ -432,7 +434,7 @@ static inline void __percpu *mod_percpu(struct module *mod)
  static int percpu_modalloc(struct module *mod,
                           unsigned long size, unsigned long align)
  {
@@ -66457,7 +66887,25 @@ index 04379f92..fba2faf 100644
                printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n",
                       mod->name, align, PAGE_SIZE);
                align = PAGE_SIZE;
-@@ -1183,7 +1185,7 @@ resolve_symbol_wait(struct module *mod,
+@@ -1032,7 +1034,7 @@ struct module_attribute module_uevent =
+ static ssize_t show_coresize(struct module_attribute *mattr,
+                            struct module_kobject *mk, char *buffer)
+ {
+-      return sprintf(buffer, "%u\n", mk->mod->core_size);
++      return sprintf(buffer, "%u\n", mk->mod->core_size_rx + mk->mod->core_size_rw);
+ }
+ static struct module_attribute modinfo_coresize =
+@@ -1041,7 +1043,7 @@ static struct module_attribute modinfo_coresize =
+ static ssize_t show_initsize(struct module_attribute *mattr,
+                            struct module_kobject *mk, char *buffer)
+ {
+-      return sprintf(buffer, "%u\n", mk->mod->init_size);
++      return sprintf(buffer, "%u\n", mk->mod->init_size_rx +  mk->mod->init_size_rw);
+ }
+ static struct module_attribute modinfo_initsize =
+@@ -1255,7 +1257,7 @@ resolve_symbol_wait(struct module *mod,
   */
  #ifdef CONFIG_SYSFS
  
@@ -66466,7 +66914,7 @@ index 04379f92..fba2faf 100644
  static inline bool sect_empty(const Elf_Shdr *sect)
  {
        return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
-@@ -1649,21 +1651,21 @@ static void set_section_ro_nx(void *base,
+@@ -1721,21 +1723,21 @@ static void set_section_ro_nx(void *base,
  
  static void unset_module_core_ro_nx(struct module *mod)
  {
@@ -66496,7 +66944,7 @@ index 04379f92..fba2faf 100644
                set_memory_rw);
  }
  
-@@ -1674,14 +1676,14 @@ void set_all_modules_text_rw(void)
+@@ -1746,14 +1748,14 @@ void set_all_modules_text_rw(void)
  
        mutex_lock(&module_mutex);
        list_for_each_entry_rcu(mod, &modules, list) {
@@ -66517,7 +66965,7 @@ index 04379f92..fba2faf 100644
                                                set_memory_rw);
                }
        }
-@@ -1695,14 +1697,14 @@ void set_all_modules_text_ro(void)
+@@ -1767,14 +1769,14 @@ void set_all_modules_text_ro(void)
  
        mutex_lock(&module_mutex);
        list_for_each_entry_rcu(mod, &modules, list) {
@@ -66538,7 +66986,7 @@ index 04379f92..fba2faf 100644
                                                set_memory_ro);
                }
        }
-@@ -1748,16 +1750,19 @@ static void free_module(struct module *mod)
+@@ -1820,16 +1822,19 @@ static void free_module(struct module *mod)
  
        /* This may be NULL, but that's OK */
        unset_module_init_ro_nx(mod);
@@ -66561,10 +67009,10 @@ index 04379f92..fba2faf 100644
  
  #ifdef CONFIG_MPU
        update_protections(current->mm);
-@@ -1826,10 +1831,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
-       unsigned int i;
+@@ -1899,9 +1904,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
        int ret = 0;
        const struct kernel_symbol *ksym;
 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
 +      int is_fs_load = 0;
 +      int register_filesystem_found = 0;
@@ -66578,7 +67026,7 @@ index 04379f92..fba2faf 100644
 +              is_fs_load = 1;
 +      }
 +#endif
++
        for (i = 1; i < symsec->sh_size / sizeof(Elf_Sym); i++) {
                const char *name = info->strtab + sym[i].st_name;
  
@@ -66593,7 +67041,7 @@ index 04379f92..fba2faf 100644
                switch (sym[i].st_shndx) {
                case SHN_COMMON:
                        /* We compiled with -fno-common.  These are not
-@@ -1850,7 +1876,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
+@@ -1922,7 +1949,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
                        ksym = resolve_symbol_wait(mod, info, name);
                        /* Ok if resolved.  */
                        if (ksym && !IS_ERR(ksym)) {
@@ -66603,7 +67051,7 @@ index 04379f92..fba2faf 100644
                                break;
                        }
  
-@@ -1869,11 +1897,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
+@@ -1941,11 +1970,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
                                secbase = (unsigned long)mod_percpu(mod);
                        else
                                secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
@@ -66624,7 +67072,7 @@ index 04379f92..fba2faf 100644
        return ret;
  }
  
-@@ -1977,22 +2014,12 @@ static void layout_sections(struct module *mod, struct load_info *info)
+@@ -2049,22 +2087,12 @@ static void layout_sections(struct module *mod, struct load_info *info)
                            || s->sh_entsize != ~0UL
                            || strstarts(sname, ".init"))
                                continue;
@@ -66633,7 +67081,7 @@ index 04379f92..fba2faf 100644
 +                              s->sh_entsize = get_offset(mod, &mod->core_size_rw, s, i);
 +                      else
 +                              s->sh_entsize = get_offset(mod, &mod->core_size_rx, s, i);
-                       DEBUGP("\t%s\n", name);
+                       pr_debug("\t%s\n", sname);
                }
 -              switch (m) {
 -              case 0: /* executable */
@@ -66650,8 +67098,8 @@ index 04379f92..fba2faf 100644
 -              }
        }
  
-       DEBUGP("Init section allocation order:\n");
-@@ -2006,23 +2033,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
+       pr_debug("Init section allocation order:\n");
+@@ -2078,23 +2106,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
                            || s->sh_entsize != ~0UL
                            || !strstarts(sname, ".init"))
                                continue;
@@ -66662,7 +67110,7 @@ index 04379f92..fba2faf 100644
 +                      else
 +                              s->sh_entsize = get_offset(mod, &mod->init_size_rx, s, i);
 +                      s->sh_entsize |= INIT_OFFSET_MASK;
-                       DEBUGP("\t%s\n", sname);
+                       pr_debug("\t%s\n", sname);
                }
 -              switch (m) {
 -              case 0: /* executable */
@@ -66680,41 +67128,34 @@ index 04379f92..fba2faf 100644
        }
  }
  
-@@ -2187,7 +2204,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
+@@ -2266,7 +2284,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
  
        /* Put symbol section at end of init part of module. */
        symsect->sh_flags |= SHF_ALLOC;
 -      symsect->sh_entsize = get_offset(mod, &mod->init_size, symsect,
 +      symsect->sh_entsize = get_offset(mod, &mod->init_size_rx, symsect,
                                         info->index.sym) | INIT_OFFSET_MASK;
-       DEBUGP("\t%s\n", info->secstrings + symsect->sh_name);
+       pr_debug("\t%s\n", info->secstrings + symsect->sh_name);
  
-@@ -2204,19 +2221,19 @@ static void layout_symtab(struct module *mod, struct load_info *info)
+@@ -2281,13 +2299,13 @@ static void layout_symtab(struct module *mod, struct load_info *info)
                }
  
        /* Append room for core symbols at end of core part. */
 -      info->symoffs = ALIGN(mod->core_size, symsect->sh_addralign ?: 1);
--      mod->core_size = info->symoffs + ndst * sizeof(Elf_Sym);
+-      info->stroffs = mod->core_size = info->symoffs + ndst * sizeof(Elf_Sym);
+-      mod->core_size += strtab_size;
 +      info->symoffs = ALIGN(mod->core_size_rx, symsect->sh_addralign ?: 1);
-+      mod->core_size_rx = info->symoffs + ndst * sizeof(Elf_Sym);
++      info->stroffs = mod->core_size_rx = info->symoffs + ndst * sizeof(Elf_Sym);
++      mod->core_size_rx += strtab_size;
  
        /* Put string table section at end of init part of module. */
        strsect->sh_flags |= SHF_ALLOC;
 -      strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect,
 +      strsect->sh_entsize = get_offset(mod, &mod->init_size_rx, strsect,
                                         info->index.str) | INIT_OFFSET_MASK;
-       DEBUGP("\t%s\n", info->secstrings + strsect->sh_name);
-       /* Append room for core symbols' strings at end of core part. */
--      info->stroffs = mod->core_size;
-+      info->stroffs = mod->core_size_rx;
-       __set_bit(0, info->strmap);
--      mod->core_size += bitmap_weight(info->strmap, strsect->sh_size);
-+      mod->core_size_rx += bitmap_weight(info->strmap, strsect->sh_size);
+       pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
  }
- static void add_kallsyms(struct module *mod, const struct load_info *info)
-@@ -2232,11 +2249,13 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
+@@ -2305,12 +2323,14 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
        /* Make sure we get permanent strtab: don't use info->strtab. */
        mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
  
@@ -66725,25 +67166,22 @@ index 04379f92..fba2faf 100644
                mod->symtab[i].st_info = elf_type(&mod->symtab[i], info);
  
 -      mod->core_symtab = dst = mod->module_core + info->symoffs;
+-      mod->core_strtab = s = mod->module_core + info->stroffs;
 +      mod->core_symtab = dst = mod->module_core_rx + info->symoffs;
++      mod->core_strtab = s = mod->module_core_rx + info->stroffs;
        src = mod->symtab;
        *dst = *src;
-       for (ndst = i = 1; i < mod->num_symtab; ++i, ++src) {
-@@ -2249,10 +2268,12 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
+       *s++ = 0;
+@@ -2323,6 +2343,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
+               s += strlcpy(s, &mod->strtab[src->st_name], KSYM_NAME_LEN) + 1;
        }
        mod->core_num_syms = ndst;
--      mod->core_strtab = s = mod->module_core + info->stroffs;
-+      mod->core_strtab = s = mod->module_core_rx + info->stroffs;
-       for (*s = 0, i = 1; i < info->sechdrs[info->index.str].sh_size; ++i)
-               if (test_bit(i, info->strmap))
-                       *++s = mod->strtab[i];
 +
 +      pax_close_kernel();
  }
  #else
  static inline void layout_symtab(struct module *mod, struct load_info *info)
-@@ -2286,17 +2307,33 @@ void * __weak module_alloc(unsigned long size)
+@@ -2356,17 +2378,33 @@ void * __weak module_alloc(unsigned long size)
        return size == 0 ? NULL : vmalloc_exec(size);
  }
  
@@ -66782,7 +67220,7 @@ index 04379f92..fba2faf 100644
                mutex_unlock(&module_mutex);
        }
        return ret;
-@@ -2474,8 +2511,14 @@ static struct module *setup_load_info(struct load_info *info)
+@@ -2543,8 +2581,14 @@ static struct module *setup_load_info(struct load_info *info)
  static int check_modinfo(struct module *mod, struct load_info *info)
  {
        const char *modmagic = get_modinfo(info, "vermagic");
@@ -66797,7 +67235,7 @@ index 04379f92..fba2faf 100644
        /* This is allowed: modprobe --force will invalidate it. */
        if (!modmagic) {
                err = try_to_force_load(mod, "bad vermagic");
-@@ -2495,7 +2538,7 @@ static int check_modinfo(struct module *mod, struct load_info *info)
+@@ -2567,7 +2611,7 @@ static int check_modinfo(struct module *mod, struct load_info *info)
        }
  
        /* Set up license info based on the info section */
@@ -66806,7 +67244,7 @@ index 04379f92..fba2faf 100644
  
        return 0;
  }
-@@ -2589,7 +2632,7 @@ static int move_module(struct module *mod, struct load_info *info)
+@@ -2661,7 +2705,7 @@ static int move_module(struct module *mod, struct load_info *info)
        void *ptr;
  
        /* Do the allocs. */
@@ -66815,7 +67253,7 @@ index 04379f92..fba2faf 100644
        /*
         * The pointer to this block is stored in the module structure
         * which is inside the block. Just mark it as not being a
-@@ -2599,23 +2642,50 @@ static int move_module(struct module *mod, struct load_info *info)
+@@ -2671,23 +2715,50 @@ static int move_module(struct module *mod, struct load_info *info)
        if (!ptr)
                return -ENOMEM;
  
@@ -66873,8 +67311,8 @@ index 04379f92..fba2faf 100644
 +      mod->module_init_rx = ptr;
  
        /* Transfer each section which specifies SHF_ALLOC */
-       DEBUGP("final section addresses:\n");
-@@ -2626,16 +2696,45 @@ static int move_module(struct module *mod, struct load_info *info)
+       pr_debug("final section addresses:\n");
+@@ -2698,16 +2769,45 @@ static int move_module(struct module *mod, struct load_info *info)
                if (!(shdr->sh_flags & SHF_ALLOC))
                        continue;
  
@@ -66924,10 +67362,10 @@ index 04379f92..fba2faf 100644
 +#endif
 +
 +                      shdr->sh_addr = (unsigned long)dest;
-               DEBUGP("\t0x%lx %s\n",
-                      shdr->sh_addr, info->secstrings + shdr->sh_name);
+               pr_debug("\t0x%lx %s\n",
+                        (long)shdr->sh_addr, info->secstrings + shdr->sh_name);
        }
-@@ -2686,12 +2785,12 @@ static void flush_module_icache(const struct module *mod)
+@@ -2758,12 +2858,12 @@ static void flush_module_icache(const struct module *mod)
         * Do it before processing of module parameters, so the module
         * can provide parameter accessor functions of its own.
         */
@@ -66946,9 +67384,9 @@ index 04379f92..fba2faf 100644
  
        set_fs(old_fs);
  }
-@@ -2771,8 +2870,10 @@ static void module_deallocate(struct module *mod, struct load_info *info)
+@@ -2833,8 +2933,10 @@ out:
+ static void module_deallocate(struct module *mod, struct load_info *info)
  {
-       kfree(info->strmap);
        percpu_modfree(mod);
 -      module_free(mod, mod->module_init);
 -      module_free(mod, mod->module_core);
@@ -66959,7 +67397,7 @@ index 04379f92..fba2faf 100644
  }
  
  int __weak module_finalize(const Elf_Ehdr *hdr,
-@@ -2836,9 +2937,38 @@ static struct module *load_module(void __user *umod,
+@@ -2898,9 +3000,38 @@ static struct module *load_module(void __user *umod,
        if (err)
                goto free_unload;
  
@@ -66998,7 +67436,7 @@ index 04379f92..fba2faf 100644
        /* Fix up syms, so that st_value is a pointer to location. */
        err = simplify_symbols(mod, &info);
        if (err < 0)
-@@ -2854,13 +2984,6 @@ static struct module *load_module(void __user *umod,
+@@ -2916,13 +3047,6 @@ static struct module *load_module(void __user *umod,
  
        flush_module_icache(mod);
  
@@ -67012,7 +67450,7 @@ index 04379f92..fba2faf 100644
        /* Mark state as coming so strong_try_module_get() ignores us. */
        mod->state = MODULE_STATE_COMING;
  
-@@ -2920,11 +3043,10 @@ static struct module *load_module(void __user *umod,
+@@ -2980,11 +3104,10 @@ static struct module *load_module(void __user *umod,
   unlock:
        mutex_unlock(&module_mutex);
        synchronize_sched();
@@ -67025,7 +67463,7 @@ index 04379f92..fba2faf 100644
   free_unload:
        module_unload_free(mod);
   free_module:
-@@ -2965,16 +3087,16 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
+@@ -3025,16 +3148,16 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
                        MODULE_STATE_COMING, mod);
  
        /* Set RO and NX regions for core */
@@ -67050,7 +67488,7 @@ index 04379f92..fba2faf 100644
  
        do_mod_ctors(mod);
        /* Start the module */
-@@ -3020,11 +3142,12 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
+@@ -3080,11 +3203,12 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
        mod->strtab = mod->core_strtab;
  #endif
        unset_module_init_ro_nx(mod);
@@ -67068,7 +67506,7 @@ index 04379f92..fba2faf 100644
        mutex_unlock(&module_mutex);
  
        return 0;
-@@ -3055,10 +3178,16 @@ static const char *get_ksymbol(struct module *mod,
+@@ -3115,10 +3239,16 @@ static const char *get_ksymbol(struct module *mod,
        unsigned long nextval;
  
        /* At worse, next value is at end of module */
@@ -67088,7 +67526,7 @@ index 04379f92..fba2faf 100644
  
        /* Scan for closest preceding symbol, and next symbol. (ELF
           starts real symbols at 1). */
-@@ -3304,7 +3433,7 @@ static int m_show(struct seq_file *m, void *p)
+@@ -3353,7 +3483,7 @@ static int m_show(struct seq_file *m, void *p)
        char buf[8];
  
        seq_printf(m, "%s %u",
@@ -67097,7 +67535,7 @@ index 04379f92..fba2faf 100644
        print_unload_info(m, mod);
  
        /* Informative for users. */
-@@ -3313,7 +3442,7 @@ static int m_show(struct seq_file *m, void *p)
+@@ -3362,7 +3492,7 @@ static int m_show(struct seq_file *m, void *p)
                   mod->state == MODULE_STATE_COMING ? "Loading":
                   "Live");
        /* Used by oprofile and other similar tools. */
@@ -67106,7 +67544,7 @@ index 04379f92..fba2faf 100644
  
        /* Taints info */
        if (mod->taints)
-@@ -3349,7 +3478,17 @@ static const struct file_operations proc_modules_operations = {
+@@ -3398,7 +3528,17 @@ static const struct file_operations proc_modules_operations = {
  
  static int __init proc_modules_init(void)
  {
@@ -67124,7 +67562,7 @@ index 04379f92..fba2faf 100644
        return 0;
  }
  module_init(proc_modules_init);
-@@ -3408,12 +3547,12 @@ struct module *__module_address(unsigned long addr)
+@@ -3457,12 +3597,12 @@ struct module *__module_address(unsigned long addr)
  {
        struct module *mod;
  
@@ -67140,7 +67578,7 @@ index 04379f92..fba2faf 100644
                        return mod;
        return NULL;
  }
-@@ -3447,11 +3586,20 @@ bool is_module_text_address(unsigned long addr)
+@@ -3496,11 +3636,20 @@ bool is_module_text_address(unsigned long addr)
   */
  struct module *__module_text_address(unsigned long addr)
  {
@@ -67165,7 +67603,7 @@ index 04379f92..fba2faf 100644
        }
        return mod;
 diff --git a/kernel/mutex-debug.c b/kernel/mutex-debug.c
-index 73da83a..fe46e99 100644
+index 7e3443f..b2a1e6b 100644
 --- a/kernel/mutex-debug.c
 +++ b/kernel/mutex-debug.c
 @@ -49,21 +49,21 @@ void debug_mutex_free_waiter(struct mutex_waiter *waiter)
@@ -67213,7 +67651,7 @@ index 0799fd3..d06ae3b 100644
  extern void debug_mutex_init(struct mutex *lock, const char *name,
                             struct lock_class_key *key);
 diff --git a/kernel/mutex.c b/kernel/mutex.c
-index d607ed5..58d0a52 100644
+index a307cc9..27fd2e9 100644
 --- a/kernel/mutex.c
 +++ b/kernel/mutex.c
 @@ -198,7 +198,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
@@ -67235,7 +67673,7 @@ index d607ed5..58d0a52 100644
                        mutex_release(&lock->dep_map, 1, ip);
                        spin_unlock_mutex(&lock->wait_lock, flags);
  
-@@ -249,7 +248,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
+@@ -247,7 +246,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
  done:
        lock_acquired(&lock->dep_map, ip);
        /* got the lock - rejoice! */
@@ -67244,38 +67682,11 @@ index d607ed5..58d0a52 100644
        mutex_set_owner(lock);
  
        /* set it to 0 if there are no waiters left: */
-diff --git a/kernel/padata.c b/kernel/padata.c
-index b91941d..0871d60 100644
---- a/kernel/padata.c
-+++ b/kernel/padata.c
-@@ -132,10 +132,10 @@ int padata_do_parallel(struct padata_instance *pinst,
-       padata->pd = pd;
-       padata->cb_cpu = cb_cpu;
--      if (unlikely(atomic_read(&pd->seq_nr) == pd->max_seq_nr))
--              atomic_set(&pd->seq_nr, -1);
-+      if (unlikely(atomic_read_unchecked(&pd->seq_nr) == pd->max_seq_nr))
-+              atomic_set_unchecked(&pd->seq_nr, -1);
--      padata->seq_nr = atomic_inc_return(&pd->seq_nr);
-+      padata->seq_nr = atomic_inc_return_unchecked(&pd->seq_nr);
-       target_cpu = padata_cpu_hash(padata);
-       queue = per_cpu_ptr(pd->pqueue, target_cpu);
-@@ -444,7 +444,7 @@ static struct parallel_data *padata_alloc_pd(struct padata_instance *pinst,
-       padata_init_pqueues(pd);
-       padata_init_squeues(pd);
-       setup_timer(&pd->timer, padata_reorder_timer, (unsigned long)pd);
--      atomic_set(&pd->seq_nr, -1);
-+      atomic_set_unchecked(&pd->seq_nr, -1);
-       atomic_set(&pd->reorder_objects, 0);
-       atomic_set(&pd->refcnt, 0);
-       pd->pinst = pinst;
 diff --git a/kernel/panic.c b/kernel/panic.c
-index d7bb697..9ef9f19 100644
+index 9ed023b..e49543e 100644
 --- a/kernel/panic.c
 +++ b/kernel/panic.c
-@@ -371,7 +371,7 @@ static void warn_slowpath_common(const char *file, int line, void *caller,
+@@ -402,7 +402,7 @@ static void warn_slowpath_common(const char *file, int line, void *caller,
        const char *board;
  
        printk(KERN_WARNING "------------[ cut here ]------------\n");
@@ -67284,7 +67695,7 @@ index d7bb697..9ef9f19 100644
        board = dmi_get_system_info(DMI_PRODUCT_NAME);
        if (board)
                printk(KERN_WARNING "Hardware name: %s\n", board);
-@@ -426,7 +426,8 @@ EXPORT_SYMBOL(warn_slowpath_null);
+@@ -457,7 +457,8 @@ EXPORT_SYMBOL(warn_slowpath_null);
   */
  void __stack_chk_fail(void)
  {
@@ -67295,7 +67706,7 @@ index d7bb697..9ef9f19 100644
  }
  EXPORT_SYMBOL(__stack_chk_fail);
 diff --git a/kernel/pid.c b/kernel/pid.c
-index e432057..a2b2ac5 100644
+index 9f08dfa..6765c40 100644
 --- a/kernel/pid.c
 +++ b/kernel/pid.c
 @@ -33,6 +33,7 @@
@@ -67315,14 +67726,17 @@ index e432057..a2b2ac5 100644
  
  int pid_max_min = RESERVED_PIDS + 1;
  int pid_max_max = PID_MAX_LIMIT;
-@@ -418,8 +419,15 @@ EXPORT_SYMBOL(pid_task);
+@@ -420,10 +421,18 @@ EXPORT_SYMBOL(pid_task);
   */
  struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
  {
 +      struct task_struct *task;
 +
-       rcu_lockdep_assert(rcu_read_lock_held());
+       rcu_lockdep_assert(rcu_read_lock_held(),
+                          "find_task_by_pid_ns() needs rcu_read_lock()"
+                          " protection");
 -      return pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
++
 +      task = pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
 +
 +      if (gr_pid_is_chrooted(task))
@@ -67332,13 +67746,15 @@ index e432057..a2b2ac5 100644
  }
  
  struct task_struct *find_task_by_vpid(pid_t vnr)
-@@ -427,6 +435,12 @@ struct task_struct *find_task_by_vpid(pid_t vnr)
+@@ -431,6 +440,14 @@ struct task_struct *find_task_by_vpid(pid_t vnr)
        return find_task_by_pid_ns(vnr, current->nsproxy->pid_ns);
  }
  
 +struct task_struct *find_task_by_vpid_unrestricted(pid_t vnr)
 +{
-+      rcu_lockdep_assert(rcu_read_lock_held());       
++      rcu_lockdep_assert(rcu_read_lock_held(),
++                         "find_task_by_pid_ns() needs rcu_read_lock()"
++                         " protection");
 +      return pid_task(find_pid_ns(vnr, current->nsproxy->pid_ns), PIDTYPE_PID);
 +}
 +
@@ -67346,7 +67762,7 @@ index e432057..a2b2ac5 100644
  {
        struct pid *pid;
 diff --git a/kernel/posix-cpu-timers.c b/kernel/posix-cpu-timers.c
-index 640ded8..3dafb85 100644
+index 125cb67..a4d1c30 100644
 --- a/kernel/posix-cpu-timers.c
 +++ b/kernel/posix-cpu-timers.c
 @@ -6,6 +6,7 @@
@@ -67357,7 +67773,7 @@ index 640ded8..3dafb85 100644
  #include <asm/uaccess.h>
  #include <linux/kernel_stat.h>
  #include <trace/events/timer.h>
-@@ -1606,14 +1607,14 @@ struct k_clock clock_posix_cpu = {
+@@ -1578,14 +1579,14 @@ struct k_clock clock_posix_cpu = {
  
  static __init int init_posix_cpu_timers(void)
  {
@@ -67375,7 +67791,7 @@ index 640ded8..3dafb85 100644
                .clock_get      = thread_cpu_clock_get,
                .timer_create   = thread_cpu_timer_create,
 diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c
-index 4556182..9335419 100644
+index 69185ae..cc2847a 100644
 --- a/kernel/posix-timers.c
 +++ b/kernel/posix-timers.c
 @@ -43,6 +43,7 @@
@@ -67437,16 +67853,7 @@ index 4556182..9335419 100644
                .clock_getres   = hrtimer_get_res,
                .clock_get      = posix_get_boottime,
                .nsleep         = common_nsleep,
-@@ -272,6 +273,8 @@ static __init int init_posix_timers(void)
-               .timer_del      = common_timer_del,
-       };
-+      pax_track_stack();
-+
-       posix_timers_register_clock(CLOCK_REALTIME, &clock_realtime);
-       posix_timers_register_clock(CLOCK_MONOTONIC, &clock_monotonic);
-       posix_timers_register_clock(CLOCK_MONOTONIC_RAW, &clock_monotonic_raw);
-@@ -473,7 +476,7 @@ void posix_timers_register_clock(const clockid_t clock_id,
+@@ -473,7 +474,7 @@ void posix_timers_register_clock(const clockid_t clock_id,
                return;
        }
  
@@ -67455,7 +67862,7 @@ index 4556182..9335419 100644
  }
  EXPORT_SYMBOL_GPL(posix_timers_register_clock);
  
-@@ -519,9 +522,9 @@ static struct k_clock *clockid_to_kclock(const clockid_t id)
+@@ -519,9 +520,9 @@ static struct k_clock *clockid_to_kclock(const clockid_t id)
                return (id & CLOCKFD_MASK) == CLOCKFD ?
                        &clock_posix_dynamic : &clock_posix_cpu;
  
@@ -67467,7 +67874,7 @@ index 4556182..9335419 100644
  }
  
  static int common_timer_create(struct k_itimer *new_timer)
-@@ -959,6 +962,13 @@ SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock,
+@@ -959,6 +960,13 @@ SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock,
        if (copy_from_user(&new_tp, tp, sizeof (*tp)))
                return -EFAULT;
  
@@ -67495,10 +67902,10 @@ index d523593..68197a4 100644
        register_sysrq_key('o', &sysrq_poweroff_op);
        return 0;
 diff --git a/kernel/power/process.c b/kernel/power/process.c
-index 0cf3a27..5481be4 100644
+index 19db29f..33b52b6 100644
 --- a/kernel/power/process.c
 +++ b/kernel/power/process.c
-@@ -41,6 +41,7 @@ static int try_to_freeze_tasks(bool sig_only)
+@@ -33,6 +33,7 @@ static int try_to_freeze_tasks(bool user_only)
        u64 elapsed_csecs64;
        unsigned int elapsed_csecs;
        bool wakeup = false;
@@ -67506,7 +67913,7 @@ index 0cf3a27..5481be4 100644
  
        do_gettimeofday(&start);
  
-@@ -51,6 +52,8 @@ static int try_to_freeze_tasks(bool sig_only)
+@@ -43,6 +44,8 @@ static int try_to_freeze_tasks(bool user_only)
  
        while (true) {
                todo = 0;
@@ -67514,10 +67921,10 @@ index 0cf3a27..5481be4 100644
 +                      timedout = true;
                read_lock(&tasklist_lock);
                do_each_thread(g, p) {
-                       if (frozen(p) || !freezable(p))
-@@ -71,9 +74,13 @@ static int try_to_freeze_tasks(bool sig_only)
-                        * try_to_stop() after schedule() in ptrace/signal
-                        * stop sees TIF_FREEZE.
+                       if (p == current || !freeze_task(p))
+@@ -58,9 +61,13 @@ static int try_to_freeze_tasks(bool user_only)
+                        * guaranteed that TASK_STOPPED/TRACED -> TASK_RUNNING
+                        * transition can't race with task state testing here.
                         */
 -                      if (!task_is_stopped_or_traced(p) &&
 -                          !freezer_should_skip(p))
@@ -67531,7 +67938,7 @@ index 0cf3a27..5481be4 100644
                } while_each_thread(g, p);
                read_unlock(&tasklist_lock);
  
-@@ -82,7 +89,7 @@ static int try_to_freeze_tasks(bool sig_only)
+@@ -69,7 +76,7 @@ static int try_to_freeze_tasks(bool user_only)
                        todo += wq_busy;
                }
  
@@ -67541,10 +67948,10 @@ index 0cf3a27..5481be4 100644
  
                if (pm_wakeup_pending()) {
 diff --git a/kernel/printk.c b/kernel/printk.c
-index 28a40d8..2411bec 100644
+index b663c2c..1d6ba7a 100644
 --- a/kernel/printk.c
 +++ b/kernel/printk.c
-@@ -313,6 +313,11 @@ static int check_syslog_permissions(int type, bool from_file)
+@@ -316,6 +316,11 @@ static int check_syslog_permissions(int type, bool from_file)
        if (from_file && type != SYSLOG_ACTION_OPEN)
                return 0;
  
@@ -67557,7 +67964,7 @@ index 28a40d8..2411bec 100644
                if (capable(CAP_SYSLOG))
                        return 0;
 diff --git a/kernel/profile.c b/kernel/profile.c
-index 961b389..c451353 100644
+index 76b8e77..a2930e8 100644
 --- a/kernel/profile.c
 +++ b/kernel/profile.c
 @@ -39,7 +39,7 @@ struct profile_hit {
@@ -67618,86 +68025,19 @@ index 961b389..c451353 100644
  }
  
 diff --git a/kernel/ptrace.c b/kernel/ptrace.c
-index a70d2a5..cbd4b4f 100644
+index ee8d49b..bd3d790 100644
 --- a/kernel/ptrace.c
 +++ b/kernel/ptrace.c
-@@ -161,7 +161,8 @@ int ptrace_check_attach(struct task_struct *child, bool ignore_state)
-       return ret;
- }
--int __ptrace_may_access(struct task_struct *task, unsigned int mode)
-+static int __ptrace_may_access(struct task_struct *task, unsigned int mode,
-+                             unsigned int log)
- {
-       const struct cred *cred = current_cred(), *tcred;
+@@ -280,7 +280,7 @@ static int ptrace_attach(struct task_struct *task, long request,
  
-@@ -187,7 +188,8 @@ int __ptrace_may_access(struct task_struct *task, unsigned int mode)
-            cred->gid == tcred->sgid &&
-            cred->gid == tcred->gid))
-               goto ok;
--      if (ns_capable(tcred->user->user_ns, CAP_SYS_PTRACE))
-+      if ((!log && ns_capable_nolog(tcred->user->user_ns, CAP_SYS_PTRACE)) ||
-+          (log && ns_capable(tcred->user->user_ns, CAP_SYS_PTRACE)))
-               goto ok;
-       rcu_read_unlock();
-       return -EPERM;
-@@ -196,7 +198,9 @@ ok:
-       smp_rmb();
-       if (task->mm)
-               dumpable = get_dumpable(task->mm);
--      if (!dumpable && !task_ns_capable(task, CAP_SYS_PTRACE))
-+      if (!dumpable &&
-+              ((!log && !task_ns_capable_nolog(task, CAP_SYS_PTRACE)) ||
-+               (log && !task_ns_capable(task, CAP_SYS_PTRACE))))
-               return -EPERM;
-       return security_ptrace_access_check(task, mode);
-@@ -206,7 +210,16 @@ bool ptrace_may_access(struct task_struct *task, unsigned int mode)
- {
-       int err;
-       task_lock(task);
--      err = __ptrace_may_access(task, mode);
-+      err = __ptrace_may_access(task, mode, 0);
-+      task_unlock(task);
-+      return !err;
-+}
-+
-+bool ptrace_may_access_log(struct task_struct *task, unsigned int mode)
-+{
-+      int err;
-+      task_lock(task);
-+      err = __ptrace_may_access(task, mode, 1);
-       task_unlock(task);
-       return !err;
- }
-@@ -251,7 +264,7 @@ static int ptrace_attach(struct task_struct *task, long request,
-               goto out;
-       task_lock(task);
--      retval = __ptrace_may_access(task, PTRACE_MODE_ATTACH);
-+      retval = __ptrace_may_access(task, PTRACE_MODE_ATTACH, 1);
-       task_unlock(task);
-       if (retval)
-               goto unlock_creds;
-@@ -266,7 +279,7 @@ static int ptrace_attach(struct task_struct *task, long request,
-       task->ptrace = PT_PTRACED;
        if (seize)
-               task->ptrace |= PT_SEIZED;
--      if (task_ns_capable(task, CAP_SYS_PTRACE))
-+      if (task_ns_capable_nolog(task, CAP_SYS_PTRACE))
-               task->ptrace |= PT_PTRACE_CAP;
-       __ptrace_link(task, current);
-@@ -461,6 +474,8 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
- {
-       int copied = 0;
+               flags |= PT_SEIZED;
+-      if (ns_capable(task_user_ns(task), CAP_SYS_PTRACE))
++      if (ns_capable_nolog(task_user_ns(task), CAP_SYS_PTRACE))
+               flags |= PT_PTRACE_CAP;
+       task->ptrace = flags;
  
-+      pax_track_stack();
-+
-       while (len > 0) {
-               char buf[128];
-               int this_len, retval;
-@@ -472,7 +487,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
+@@ -487,7 +487,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
                                break;
                        return -EIO;
                }
@@ -67706,16 +68046,7 @@ index a70d2a5..cbd4b4f 100644
                        return -EFAULT;
                copied += retval;
                src += retval;
-@@ -486,6 +501,8 @@ int ptrace_writedata(struct task_struct *tsk, char __user *src, unsigned long ds
- {
-       int copied = 0;
-+      pax_track_stack();
-+
-       while (len > 0) {
-               char buf[128];
-               int this_len, retval;
-@@ -669,10 +686,12 @@ int ptrace_request(struct task_struct *child, long request,
+@@ -672,7 +672,7 @@ int ptrace_request(struct task_struct *child, long request,
        bool seized = child->ptrace & PT_SEIZED;
        int ret = -EIO;
        siginfo_t siginfo, *si;
@@ -67724,12 +68055,7 @@ index a70d2a5..cbd4b4f 100644
        unsigned long __user *datalp = datavp;
        unsigned long flags;
  
-+      pax_track_stack();
-+
-       switch (request) {
-       case PTRACE_PEEKTEXT:
-       case PTRACE_PEEKDATA:
-@@ -871,14 +890,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
+@@ -874,14 +874,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
                goto out;
        }
  
@@ -67739,7 +68065,7 @@ index a70d2a5..cbd4b4f 100644
 +      }
 +
        if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
-               ret = ptrace_attach(child, request, data);
+               ret = ptrace_attach(child, request, addr, data);
                /*
                 * Some architectures need to do book-keeping after
                 * a ptrace attach.
@@ -67752,7 +68078,7 @@ index a70d2a5..cbd4b4f 100644
                goto out_put_task_struct;
        }
  
-@@ -904,7 +930,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
+@@ -907,7 +914,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
        copied = access_process_vm(tsk, addr, &tmp, sizeof(tmp), 0);
        if (copied != sizeof(tmp))
                return -EIO;
@@ -67761,16 +68087,7 @@ index a70d2a5..cbd4b4f 100644
  }
  
  int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr,
-@@ -927,6 +953,8 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request,
-       siginfo_t siginfo;
-       int ret;
-+      pax_track_stack();
-+
-       switch (request) {
-       case PTRACE_PEEKTEXT:
-       case PTRACE_PEEKDATA:
-@@ -1014,14 +1042,21 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
+@@ -1017,14 +1024,21 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
                goto out;
        }
  
@@ -67780,7 +68097,7 @@ index a70d2a5..cbd4b4f 100644
 +      }
 +
        if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
-               ret = ptrace_attach(child, request, data);
+               ret = ptrace_attach(child, request, addr, data);
                /*
                 * Some architectures need to do book-keeping after
                 * a ptrace attach.
@@ -67793,11 +68110,46 @@ index a70d2a5..cbd4b4f 100644
                goto out_put_task_struct;
        }
  
+diff --git a/kernel/rcutiny.c b/kernel/rcutiny.c
+index 37a5444..eec170a 100644
+--- a/kernel/rcutiny.c
++++ b/kernel/rcutiny.c
+@@ -46,7 +46,7 @@
+ struct rcu_ctrlblk;
+ static void invoke_rcu_callbacks(void);
+ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp);
+-static void rcu_process_callbacks(struct softirq_action *unused);
++static void rcu_process_callbacks(void);
+ static void __call_rcu(struct rcu_head *head,
+                      void (*func)(struct rcu_head *rcu),
+                      struct rcu_ctrlblk *rcp);
+@@ -307,7 +307,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
+                                     rcu_is_callbacks_kthread()));
+ }
+-static void rcu_process_callbacks(struct softirq_action *unused)
++static void rcu_process_callbacks(void)
+ {
+       __rcu_process_callbacks(&rcu_sched_ctrlblk);
+       __rcu_process_callbacks(&rcu_bh_ctrlblk);
+diff --git a/kernel/rcutiny_plugin.h b/kernel/rcutiny_plugin.h
+index 22ecea0..3789898 100644
+--- a/kernel/rcutiny_plugin.h
++++ b/kernel/rcutiny_plugin.h
+@@ -955,7 +955,7 @@ static int rcu_kthread(void *arg)
+               have_rcu_kthread_work = morework;
+               local_irq_restore(flags);
+               if (work)
+-                      rcu_process_callbacks(NULL);
++                      rcu_process_callbacks();
+               schedule_timeout_interruptible(1); /* Leave CPU for others. */
+       }
 diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
-index 98f51b1..30b950c 100644
+index a89b381..efdcad8 100644
 --- a/kernel/rcutorture.c
 +++ b/kernel/rcutorture.c
-@@ -138,12 +138,12 @@ static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1], rcu_torture_count) =
+@@ -158,12 +158,12 @@ static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1], rcu_torture_count) =
        { 0 };
  static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1], rcu_torture_batch) =
        { 0 };
@@ -67816,7 +68168,7 @@ index 98f51b1..30b950c 100644
  static long n_rcu_torture_boost_ktrerror;
  static long n_rcu_torture_boost_rterror;
  static long n_rcu_torture_boost_failure;
-@@ -223,11 +223,11 @@ rcu_torture_alloc(void)
+@@ -253,11 +253,11 @@ rcu_torture_alloc(void)
  
        spin_lock_bh(&rcu_torture_lock);
        if (list_empty(&rcu_torture_freelist)) {
@@ -67830,7 +68182,7 @@ index 98f51b1..30b950c 100644
        p = rcu_torture_freelist.next;
        list_del_init(p);
        spin_unlock_bh(&rcu_torture_lock);
-@@ -240,7 +240,7 @@ rcu_torture_alloc(void)
+@@ -270,7 +270,7 @@ rcu_torture_alloc(void)
  static void
  rcu_torture_free(struct rcu_torture *p)
  {
@@ -67839,7 +68191,7 @@ index 98f51b1..30b950c 100644
        spin_lock_bh(&rcu_torture_lock);
        list_add_tail(&p->rtort_free, &rcu_torture_freelist);
        spin_unlock_bh(&rcu_torture_lock);
-@@ -360,7 +360,7 @@ rcu_torture_cb(struct rcu_head *p)
+@@ -390,7 +390,7 @@ rcu_torture_cb(struct rcu_head *p)
        i = rp->rtort_pipe_count;
        if (i > RCU_TORTURE_PIPE_LEN)
                i = RCU_TORTURE_PIPE_LEN;
@@ -67848,7 +68200,7 @@ index 98f51b1..30b950c 100644
        if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) {
                rp->rtort_mbtest = 0;
                rcu_torture_free(rp);
-@@ -407,7 +407,7 @@ static void rcu_sync_torture_deferred_free(struct rcu_torture *p)
+@@ -437,7 +437,7 @@ static void rcu_sync_torture_deferred_free(struct rcu_torture *p)
                i = rp->rtort_pipe_count;
                if (i > RCU_TORTURE_PIPE_LEN)
                        i = RCU_TORTURE_PIPE_LEN;
@@ -67857,7 +68209,7 @@ index 98f51b1..30b950c 100644
                if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) {
                        rp->rtort_mbtest = 0;
                        list_del(&rp->rtort_free);
-@@ -882,7 +882,7 @@ rcu_torture_writer(void *arg)
+@@ -926,7 +926,7 @@ rcu_torture_writer(void *arg)
                        i = old_rp->rtort_pipe_count;
                        if (i > RCU_TORTURE_PIPE_LEN)
                                i = RCU_TORTURE_PIPE_LEN;
@@ -67866,25 +68218,25 @@ index 98f51b1..30b950c 100644
                        old_rp->rtort_pipe_count++;
                        cur_ops->deferred_free(old_rp);
                }
-@@ -950,7 +950,7 @@ static void rcu_torture_timer(unsigned long unused)
-               return;
+@@ -1007,7 +1007,7 @@ static void rcu_torture_timer(unsigned long unused)
        }
+       do_trace_rcu_torture_read(cur_ops->name, &p->rtort_rcu);
        if (p->rtort_mbtest == 0)
 -              atomic_inc(&n_rcu_torture_mberror);
 +              atomic_inc_unchecked(&n_rcu_torture_mberror);
        spin_lock(&rand_lock);
        cur_ops->read_delay(&rand);
        n_rcu_torture_timers++;
-@@ -1011,7 +1011,7 @@ rcu_torture_reader(void *arg)
-                       continue;
+@@ -1071,7 +1071,7 @@ rcu_torture_reader(void *arg)
                }
+               do_trace_rcu_torture_read(cur_ops->name, &p->rtort_rcu);
                if (p->rtort_mbtest == 0)
 -                      atomic_inc(&n_rcu_torture_mberror);
 +                      atomic_inc_unchecked(&n_rcu_torture_mberror);
                cur_ops->read_delay(&rand);
                preempt_disable();
                pipe_count = p->rtort_pipe_count;
-@@ -1070,16 +1070,16 @@ rcu_torture_printk(char *page)
+@@ -1133,10 +1133,10 @@ rcu_torture_printk(char *page)
                       rcu_torture_current,
                       rcu_torture_current_version,
                       list_empty(&rcu_torture_freelist),
@@ -67899,14 +68251,16 @@ index 98f51b1..30b950c 100644
                       n_rcu_torture_boost_ktrerror,
                       n_rcu_torture_boost_rterror,
                       n_rcu_torture_boost_failure,
-                      n_rcu_torture_boosts,
-                      n_rcu_torture_timers);
+@@ -1146,7 +1146,7 @@ rcu_torture_printk(char *page)
+                      n_online_attempts,
+                      n_offline_successes,
+                      n_offline_attempts);
 -      if (atomic_read(&n_rcu_torture_mberror) != 0 ||
 +      if (atomic_read_unchecked(&n_rcu_torture_mberror) != 0 ||
            n_rcu_torture_boost_ktrerror != 0 ||
            n_rcu_torture_boost_rterror != 0 ||
            n_rcu_torture_boost_failure != 0)
-@@ -1087,7 +1087,7 @@ rcu_torture_printk(char *page)
+@@ -1154,7 +1154,7 @@ rcu_torture_printk(char *page)
        cnt += sprintf(&page[cnt], "\n%s%s ", torture_type, TORTURE_FLAG);
        if (i > 1) {
                cnt += sprintf(&page[cnt], "!!! ");
@@ -67915,7 +68269,7 @@ index 98f51b1..30b950c 100644
                WARN_ON_ONCE(1);
        }
        cnt += sprintf(&page[cnt], "Reader Pipe: ");
-@@ -1101,7 +1101,7 @@ rcu_torture_printk(char *page)
+@@ -1168,7 +1168,7 @@ rcu_torture_printk(char *page)
        cnt += sprintf(&page[cnt], "Free-Block Circulation: ");
        for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
                cnt += sprintf(&page[cnt], " %d",
@@ -67924,16 +68278,16 @@ index 98f51b1..30b950c 100644
        }
        cnt += sprintf(&page[cnt], "\n");
        if (cur_ops->stats)
-@@ -1410,7 +1410,7 @@ rcu_torture_cleanup(void)
+@@ -1676,7 +1676,7 @@ rcu_torture_cleanup(void)
  
        if (cur_ops->cleanup)
                cur_ops->cleanup();
 -      if (atomic_read(&n_rcu_torture_error))
 +      if (atomic_read_unchecked(&n_rcu_torture_error))
                rcu_torture_print_module_parms(cur_ops, "End of test: FAILURE");
-       else
-               rcu_torture_print_module_parms(cur_ops, "End of test: SUCCESS");
-@@ -1474,17 +1474,17 @@ rcu_torture_init(void)
+       else if (n_online_successes != n_online_attempts ||
+                n_offline_successes != n_offline_attempts)
+@@ -1744,17 +1744,17 @@ rcu_torture_init(void)
  
        rcu_torture_current = NULL;
        rcu_torture_current_version = 0;
@@ -67958,11 +68312,11 @@ index 98f51b1..30b950c 100644
                for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
                        per_cpu(rcu_torture_count, cpu)[i] = 0;
 diff --git a/kernel/rcutree.c b/kernel/rcutree.c
-index ba06207..85d8ba8 100644
+index d0c5baf..109b2e7 100644
 --- a/kernel/rcutree.c
 +++ b/kernel/rcutree.c
-@@ -356,9 +356,9 @@ void rcu_enter_nohz(void)
-       }
+@@ -357,9 +357,9 @@ static void rcu_idle_enter_common(struct rcu_dynticks *rdtp, long long oldval)
+       rcu_prepare_for_idle(smp_processor_id());
        /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
        smp_mb__before_atomic_inc();  /* See above. */
 -      atomic_inc(&rdtp->dynticks);
@@ -67970,12 +68324,12 @@ index ba06207..85d8ba8 100644
        smp_mb__after_atomic_inc();  /* Force ordering with next sojourn. */
 -      WARN_ON_ONCE(atomic_read(&rdtp->dynticks) & 0x1);
 +      WARN_ON_ONCE(atomic_read_unchecked(&rdtp->dynticks) & 0x1);
-       local_irq_restore(flags);
  
-       /* If the interrupt queued a callback, get out of dyntick mode. */
-@@ -387,10 +387,10 @@ void rcu_exit_nohz(void)
-               return;
-       }
+       /*
+        * The idle task is not permitted to enter the idle loop while
+@@ -448,10 +448,10 @@ void rcu_irq_exit(void)
+ static void rcu_idle_exit_common(struct rcu_dynticks *rdtp, long long oldval)
+ {
        smp_mb__before_atomic_inc();  /* Force ordering w/previous sojourn. */
 -      atomic_inc(&rdtp->dynticks);
 +      atomic_inc_unchecked(&rdtp->dynticks);
@@ -67983,10 +68337,10 @@ index ba06207..85d8ba8 100644
        smp_mb__after_atomic_inc();  /* See above. */
 -      WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks) & 0x1));
 +      WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
-       local_irq_restore(flags);
- }
-@@ -406,14 +406,14 @@ void rcu_nmi_enter(void)
+       rcu_cleanup_after_idle(smp_processor_id());
+       trace_rcu_dyntick("End", oldval, rdtp->dynticks_nesting);
+       if (!is_idle_task(current)) {
+@@ -545,14 +545,14 @@ void rcu_nmi_enter(void)
        struct rcu_dynticks *rdtp = &__get_cpu_var(rcu_dynticks);
  
        if (rdtp->dynticks_nmi_nesting == 0 &&
@@ -68004,7 +68358,7 @@ index ba06207..85d8ba8 100644
  }
  
  /**
-@@ -432,9 +432,9 @@ void rcu_nmi_exit(void)
+@@ -571,9 +571,9 @@ void rcu_nmi_exit(void)
                return;
        /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
        smp_mb__before_atomic_inc();  /* See above. */
@@ -68015,63 +68369,59 @@ index ba06207..85d8ba8 100644
 +      WARN_ON_ONCE(atomic_read_unchecked(&rdtp->dynticks) & 0x1);
  }
  
- /**
-@@ -469,7 +469,7 @@ void rcu_irq_exit(void)
+ #ifdef CONFIG_PROVE_RCU
+@@ -589,7 +589,7 @@ int rcu_is_cpu_idle(void)
+       int ret;
+       preempt_disable();
+-      ret = (atomic_read(&__get_cpu_var(rcu_dynticks).dynticks) & 0x1) == 0;
++      ret = (atomic_read_unchecked(&__get_cpu_var(rcu_dynticks).dynticks) & 0x1) == 0;
+       preempt_enable();
+       return ret;
+ }
+@@ -659,7 +659,7 @@ int rcu_is_cpu_rrupt_from_idle(void)
   */
  static int dyntick_save_progress_counter(struct rcu_data *rdp)
  {
 -      rdp->dynticks_snap = atomic_add_return(0, &rdp->dynticks->dynticks);
 +      rdp->dynticks_snap = atomic_add_return_unchecked(0, &rdp->dynticks->dynticks);
-       return 0;
+       return (rdp->dynticks_snap & 0x1) == 0;
  }
  
-@@ -484,7 +484,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp)
-       unsigned long curr;
-       unsigned long snap;
+@@ -674,7 +674,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp)
+       unsigned int curr;
+       unsigned int snap;
  
--      curr = (unsigned long)atomic_add_return(0, &rdp->dynticks->dynticks);
-+      curr = (unsigned long)atomic_add_return_unchecked(0, &rdp->dynticks->dynticks);
-       snap = (unsigned long)rdp->dynticks_snap;
+-      curr = (unsigned int)atomic_add_return(0, &rdp->dynticks->dynticks);
++      curr = (unsigned int)atomic_add_return_unchecked(0, &rdp->dynticks->dynticks);
+       snap = (unsigned int)rdp->dynticks_snap;
  
        /*
-@@ -1470,7 +1470,7 @@ __rcu_process_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
+@@ -704,10 +704,10 @@ static int jiffies_till_stall_check(void)
+        * for CONFIG_RCU_CPU_STALL_TIMEOUT.
+        */
+       if (till_stall_check < 3) {
+-              ACCESS_ONCE(rcu_cpu_stall_timeout) = 3;
++              ACCESS_ONCE_RW(rcu_cpu_stall_timeout) = 3;
+               till_stall_check = 3;
+       } else if (till_stall_check > 300) {
+-              ACCESS_ONCE(rcu_cpu_stall_timeout) = 300;
++              ACCESS_ONCE_RW(rcu_cpu_stall_timeout) = 300;
+               till_stall_check = 300;
+       }
+       return till_stall_check * HZ + RCU_STALL_DELAY_DELTA;
+@@ -1766,7 +1766,7 @@ __rcu_process_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
  /*
-  * Do softirq processing for the current CPU.
+  * Do RCU core processing for the current CPU.
   */
 -static void rcu_process_callbacks(struct softirq_action *unused)
 +static void rcu_process_callbacks(void)
  {
+       trace_rcu_utilization("Start RCU core");
        __rcu_process_callbacks(&rcu_sched_state,
-                               &__get_cpu_var(rcu_sched_data));
-diff --git a/kernel/rcutree.h b/kernel/rcutree.h
-index 01b2ccd..4f5d80a 100644
---- a/kernel/rcutree.h
-+++ b/kernel/rcutree.h
-@@ -86,7 +86,7 @@
- struct rcu_dynticks {
-       int dynticks_nesting;   /* Track irq/process nesting level. */
-       int dynticks_nmi_nesting; /* Track NMI nesting level. */
--      atomic_t dynticks;      /* Even value for dynticks-idle, else odd. */
-+      atomic_unchecked_t dynticks;    /* Even value for dynticks-idle, else odd. */
- };
- /* RCU's kthread states for tracing. */
-diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
-index 8aafbb8..2fca109 100644
---- a/kernel/rcutree_plugin.h
-+++ b/kernel/rcutree_plugin.h
-@@ -822,7 +822,7 @@ void synchronize_rcu_expedited(void)
-       /* Clean up and exit. */
-       smp_mb(); /* ensure expedited GP seen before counter increment. */
--      ACCESS_ONCE(sync_rcu_preempt_exp_count)++;
-+      ACCESS_ONCE_RW(sync_rcu_preempt_exp_count)++;
- unlock_mb_ret:
-       mutex_unlock(&sync_rcu_preempt_exp_mutex);
- mb_ret:
-@@ -1774,8 +1774,8 @@ EXPORT_SYMBOL_GPL(synchronize_sched_expedited);
- #else /* #ifndef CONFIG_SMP */
+@@ -1949,8 +1949,8 @@ void synchronize_rcu_bh(void)
+ }
+ EXPORT_SYMBOL_GPL(synchronize_rcu_bh);
  
 -static atomic_t sync_sched_expedited_started = ATOMIC_INIT(0);
 -static atomic_t sync_sched_expedited_done = ATOMIC_INIT(0);
@@ -68080,16 +68430,16 @@ index 8aafbb8..2fca109 100644
  
  static int synchronize_sched_expedited_cpu_stop(void *data)
  {
-@@ -1830,7 +1830,7 @@ void synchronize_sched_expedited(void)
+@@ -2011,7 +2011,7 @@ void synchronize_sched_expedited(void)
        int firstsnap, s, snap, trycount = 0;
  
        /* Note that atomic_inc_return() implies full memory barrier. */
 -      firstsnap = snap = atomic_inc_return(&sync_sched_expedited_started);
 +      firstsnap = snap = atomic_inc_return_unchecked(&sync_sched_expedited_started);
        get_online_cpus();
+       WARN_ON_ONCE(cpu_is_offline(raw_smp_processor_id()));
  
-       /*
-@@ -1851,7 +1851,7 @@ void synchronize_sched_expedited(void)
+@@ -2033,7 +2033,7 @@ void synchronize_sched_expedited(void)
                }
  
                /* Check to see if someone else did our work for us. */
@@ -68098,16 +68448,16 @@ index 8aafbb8..2fca109 100644
                if (UINT_CMP_GE((unsigned)s, (unsigned)firstsnap)) {
                        smp_mb(); /* ensure test happens before caller kfree */
                        return;
-@@ -1866,7 +1866,7 @@ void synchronize_sched_expedited(void)
+@@ -2048,7 +2048,7 @@ void synchronize_sched_expedited(void)
                 * grace period works for us.
                 */
                get_online_cpus();
--              snap = atomic_read(&sync_sched_expedited_started) - 1;
-+              snap = atomic_read_unchecked(&sync_sched_expedited_started) - 1;
+-              snap = atomic_read(&sync_sched_expedited_started);
++              snap = atomic_read_unchecked(&sync_sched_expedited_started);
                smp_mb(); /* ensure read is before try_stop_cpus(). */
        }
  
-@@ -1877,12 +1877,12 @@ void synchronize_sched_expedited(void)
+@@ -2059,12 +2059,12 @@ void synchronize_sched_expedited(void)
         * than we did beat us to the punch.
         */
        do {
@@ -68122,52 +68472,76 @@ index 8aafbb8..2fca109 100644
  
        put_online_cpus();
  }
-@@ -1953,7 +1953,7 @@ int rcu_needs_cpu(int cpu)
-       for_each_online_cpu(thatcpu) {
-               if (thatcpu == cpu)
-                       continue;
--              snap = atomic_add_return(0, &per_cpu(rcu_dynticks,
-+              snap = atomic_add_return_unchecked(0, &per_cpu(rcu_dynticks,
-                                                    thatcpu).dynticks);
-               smp_mb(); /* Order sampling of snap with end of grace period. */
-               if ((snap & 0x1) != 0) {
+@@ -2262,7 +2262,7 @@ rcu_boot_init_percpu_data(int cpu, struct rcu_state *rsp)
+       rdp->qlen = 0;
+       rdp->dynticks = &per_cpu(rcu_dynticks, cpu);
+       WARN_ON_ONCE(rdp->dynticks->dynticks_nesting != DYNTICK_TASK_EXIT_IDLE);
+-      WARN_ON_ONCE(atomic_read(&rdp->dynticks->dynticks) != 1);
++      WARN_ON_ONCE(atomic_read_unchecked(&rdp->dynticks->dynticks) != 1);
+       rdp->cpu = cpu;
+       rdp->rsp = rsp;
+       raw_spin_unlock_irqrestore(&rnp->lock, flags);
+@@ -2290,8 +2290,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp, int preemptible)
+       rdp->n_force_qs_snap = rsp->n_force_qs;
+       rdp->blimit = blimit;
+       rdp->dynticks->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE;
+-      atomic_set(&rdp->dynticks->dynticks,
+-                 (atomic_read(&rdp->dynticks->dynticks) & ~0x1) + 1);
++      atomic_set_unchecked(&rdp->dynticks->dynticks,
++                 (atomic_read_unchecked(&rdp->dynticks->dynticks) & ~0x1) + 1);
+       rcu_prepare_for_idle_init(cpu);
+       raw_spin_unlock(&rnp->lock);            /* irqs remain disabled. */
+diff --git a/kernel/rcutree.h b/kernel/rcutree.h
+index cdd1be0..5b2efb4 100644
+--- a/kernel/rcutree.h
++++ b/kernel/rcutree.h
+@@ -87,7 +87,7 @@ struct rcu_dynticks {
+       long long dynticks_nesting; /* Track irq/process nesting level. */
+                                   /* Process level is worth LLONG_MAX/2. */
+       int dynticks_nmi_nesting;   /* Track NMI nesting level. */
+-      atomic_t dynticks;          /* Even value for idle, else odd. */
++      atomic_unchecked_t dynticks;/* Even value for idle, else odd. */
+ };
+ /* RCU's kthread states for tracing. */
+diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
+index c023464..7f57225 100644
+--- a/kernel/rcutree_plugin.h
++++ b/kernel/rcutree_plugin.h
+@@ -909,7 +909,7 @@ void synchronize_rcu_expedited(void)
+       /* Clean up and exit. */
+       smp_mb(); /* ensure expedited GP seen before counter increment. */
+-      ACCESS_ONCE(sync_rcu_preempt_exp_count)++;
++      ACCESS_ONCE_RW(sync_rcu_preempt_exp_count)++;
+ unlock_mb_ret:
+       mutex_unlock(&sync_rcu_preempt_exp_mutex);
+ mb_ret:
 diff --git a/kernel/rcutree_trace.c b/kernel/rcutree_trace.c
-index 3b0c098..43ba2d8 100644
+index ed459ed..a03c3fa 100644
 --- a/kernel/rcutree_trace.c
 +++ b/kernel/rcutree_trace.c
-@@ -74,7 +74,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
+@@ -68,7 +68,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
+                  rdp->passed_quiesce, rdp->passed_quiesce_gpnum,
                   rdp->qs_pending);
- #ifdef CONFIG_NO_HZ
-       seq_printf(m, " dt=%d/%d/%d df=%lu",
+       seq_printf(m, " dt=%d/%llx/%d df=%lu",
 -                 atomic_read(&rdp->dynticks->dynticks),
 +                 atomic_read_unchecked(&rdp->dynticks->dynticks),
                   rdp->dynticks->dynticks_nesting,
                   rdp->dynticks->dynticks_nmi_nesting,
                   rdp->dynticks_fqs);
-@@ -148,7 +148,7 @@ static void print_one_rcu_data_csv(struct seq_file *m, struct rcu_data *rdp)
+@@ -140,7 +140,7 @@ static void print_one_rcu_data_csv(struct seq_file *m, struct rcu_data *rdp)
+                  rdp->passed_quiesce, rdp->passed_quiesce_gpnum,
                   rdp->qs_pending);
- #ifdef CONFIG_NO_HZ
-       seq_printf(m, ",%d,%d,%d,%lu",
+       seq_printf(m, ",%d,%llx,%d,%lu",
 -                 atomic_read(&rdp->dynticks->dynticks),
 +                 atomic_read_unchecked(&rdp->dynticks->dynticks),
                   rdp->dynticks->dynticks_nesting,
                   rdp->dynticks->dynticks_nmi_nesting,
                   rdp->dynticks_fqs);
-diff --git a/kernel/relay.c b/kernel/relay.c
-index 859ea5a..096e2fe 100644
---- a/kernel/relay.c
-+++ b/kernel/relay.c
-@@ -1236,6 +1236,8 @@ static ssize_t subbuf_splice_actor(struct file *in,
-       };
-       ssize_t ret;
-+      pax_track_stack();
-+
-       if (rbuf->subbufs_produced == rbuf->subbufs_consumed)
-               return 0;
-       if (splice_grow_spd(pipe, &spd))
 diff --git a/kernel/resource.c b/kernel/resource.c
-index c8dc249..f1e2359 100644
+index 7e8ea66..1efd11f 100644
 --- a/kernel/resource.c
 +++ b/kernel/resource.c
 @@ -141,8 +141,18 @@ static const struct file_operations proc_iomem_operations = {
@@ -68190,7 +68564,7 @@ index c8dc249..f1e2359 100644
  }
  __initcall(ioresources_init);
 diff --git a/kernel/rtmutex-tester.c b/kernel/rtmutex-tester.c
-index 5c9ccd3..a35e22b 100644
+index 98ec494..4241d6d 100644
 --- a/kernel/rtmutex-tester.c
 +++ b/kernel/rtmutex-tester.c
 @@ -20,7 +20,7 @@
@@ -68283,20 +68657,33 @@ index 5c9ccd3..a35e22b 100644
                return;
  
        default:
-diff --git a/kernel/sched.c b/kernel/sched.c
-index b50b0f0..1c6c591 100644
---- a/kernel/sched.c
-+++ b/kernel/sched.c
-@@ -4264,6 +4264,8 @@ static void __sched __schedule(void)
-       struct rq *rq;
-       int cpu;
+diff --git a/kernel/sched/auto_group.c b/kernel/sched/auto_group.c
+index 0984a21..939f183 100644
+--- a/kernel/sched/auto_group.c
++++ b/kernel/sched/auto_group.c
+@@ -11,7 +11,7 @@
  
-+      pax_track_stack();
-+
- need_resched:
-       preempt_disable();
-       cpu = smp_processor_id();
-@@ -4950,6 +4952,8 @@ int can_nice(const struct task_struct *p, const int nice)
+ unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1;
+ static struct autogroup autogroup_default;
+-static atomic_t autogroup_seq_nr;
++static atomic_unchecked_t autogroup_seq_nr;
+ void __init autogroup_init(struct task_struct *init_task)
+ {
+@@ -78,7 +78,7 @@ static inline struct autogroup *autogroup_create(void)
+       kref_init(&ag->kref);
+       init_rwsem(&ag->lock);
+-      ag->id = atomic_inc_return(&autogroup_seq_nr);
++      ag->id = atomic_inc_return_unchecked(&autogroup_seq_nr);
+       ag->tg = tg;
+ #ifdef CONFIG_RT_GROUP_SCHED
+       /*
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 817bf70..9099fb4 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -4038,6 +4038,8 @@ int can_nice(const struct task_struct *p, const int nice)
        /* convert nice value [19,-20] to rlimit style value [1,40] */
        int nice_rlim = 20 - nice;
  
@@ -68305,7 +68692,7 @@ index b50b0f0..1c6c591 100644
        return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
                capable(CAP_SYS_NICE));
  }
-@@ -4983,7 +4987,8 @@ SYSCALL_DEFINE1(nice, int, increment)
+@@ -4071,7 +4073,8 @@ SYSCALL_DEFINE1(nice, int, increment)
        if (nice > 19)
                nice = 19;
  
@@ -68315,7 +68702,7 @@ index b50b0f0..1c6c591 100644
                return -EPERM;
  
        retval = security_task_setnice(current, nice);
-@@ -5127,6 +5132,7 @@ recheck:
+@@ -4228,6 +4231,7 @@ recheck:
                        unsigned long rlim_rtprio =
                                        task_rlimit(p, RLIMIT_RTPRIO);
  
@@ -68323,33 +68710,11 @@ index b50b0f0..1c6c591 100644
                        /* can't set/change the rt policy */
                        if (policy != p->policy && !rlim_rtprio)
                                return -EPERM;
-diff --git a/kernel/sched_autogroup.c b/kernel/sched_autogroup.c
-index 429242f..d7cca82 100644
---- a/kernel/sched_autogroup.c
-+++ b/kernel/sched_autogroup.c
-@@ -7,7 +7,7 @@
- unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1;
- static struct autogroup autogroup_default;
--static atomic_t autogroup_seq_nr;
-+static atomic_unchecked_t autogroup_seq_nr;
- static void __init autogroup_init(struct task_struct *init_task)
- {
-@@ -78,7 +78,7 @@ static inline struct autogroup *autogroup_create(void)
-       kref_init(&ag->kref);
-       init_rwsem(&ag->lock);
--      ag->id = atomic_inc_return(&autogroup_seq_nr);
-+      ag->id = atomic_inc_return_unchecked(&autogroup_seq_nr);
-       ag->tg = tg;
- #ifdef CONFIG_RT_GROUP_SCHED
-       /*
-diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
-index bc8ee99..b6f6492 100644
---- a/kernel/sched_fair.c
-+++ b/kernel/sched_fair.c
-@@ -4062,7 +4062,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { }
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index e955364..eacd2a4 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -5107,7 +5107,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { }
   * run_rebalance_domains is triggered when needed from the scheduler tick.
   * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
   */
@@ -68359,10 +68724,10 @@ index bc8ee99..b6f6492 100644
        int this_cpu = smp_processor_id();
        struct rq *this_rq = cpu_rq(this_cpu);
 diff --git a/kernel/signal.c b/kernel/signal.c
-index 291c970..304bd03 100644
+index 17afcaf..4500b05 100644
 --- a/kernel/signal.c
 +++ b/kernel/signal.c
-@@ -45,12 +45,12 @@ static struct kmem_cache *sigqueue_cachep;
+@@ -47,12 +47,12 @@ static struct kmem_cache *sigqueue_cachep;
  
  int print_fatal_signals __read_mostly;
  
@@ -68377,16 +68742,16 @@ index 291c970..304bd03 100644
  {
        /* Is it explicitly or implicitly ignored? */
        return handler == SIG_IGN ||
-@@ -60,7 +60,7 @@ static int sig_handler_ignored(void __user *handler, int sig)
- static int sig_task_ignored(struct task_struct *t, int sig,
              int from_ancestor_ns)
+@@ -61,7 +61,7 @@ static int sig_handler_ignored(void __user *handler, int sig)
static int sig_task_ignored(struct task_struct *t, int sig, bool force)
  {
 -      void __user *handler;
 +      __sighandler_t handler;
  
        handler = sig_handler(t, sig);
  
-@@ -364,6 +364,9 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi
+@@ -365,6 +365,9 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi
        atomic_inc(&user->sigpending);
        rcu_read_unlock();
  
@@ -68396,7 +68761,7 @@ index 291c970..304bd03 100644
        if (override_rlimit ||
            atomic_read(&user->sigpending) <=
                        task_rlimit(t, RLIMIT_SIGPENDING)) {
-@@ -488,7 +491,7 @@ flush_signal_handlers(struct task_struct *t, int force_default)
+@@ -489,7 +492,7 @@ flush_signal_handlers(struct task_struct *t, int force_default)
  
  int unhandled_signal(struct task_struct *tsk, int sig)
  {
@@ -68405,7 +68770,7 @@ index 291c970..304bd03 100644
        if (is_global_init(tsk))
                return 1;
        if (handler != SIG_IGN && handler != SIG_DFL)
-@@ -815,6 +818,13 @@ static int check_kill_permission(int sig, struct siginfo *info,
+@@ -816,6 +819,13 @@ static int check_kill_permission(int sig, struct siginfo *info,
                }
        }
  
@@ -68419,7 +68784,7 @@ index 291c970..304bd03 100644
        return security_task_kill(t, info, sig, 0);
  }
  
-@@ -1165,7 +1175,7 @@ __group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
+@@ -1204,7 +1214,7 @@ __group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
        return send_signal(sig, info, p, 1);
  }
  
@@ -68428,7 +68793,7 @@ index 291c970..304bd03 100644
  specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t)
  {
        return send_signal(sig, info, t, 0);
-@@ -1202,6 +1212,7 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
+@@ -1241,6 +1251,7 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
        unsigned long int flags;
        int ret, blocked, ignored;
        struct k_sigaction *action;
@@ -68436,7 +68801,7 @@ index 291c970..304bd03 100644
  
        spin_lock_irqsave(&t->sighand->siglock, flags);
        action = &t->sighand->action[sig-1];
-@@ -1216,9 +1227,18 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
+@@ -1255,9 +1266,18 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
        }
        if (action->sa.sa_handler == SIG_DFL)
                t->signal->flags &= ~SIGNAL_UNKILLABLE;
@@ -68455,7 +68820,7 @@ index 291c970..304bd03 100644
        return ret;
  }
  
-@@ -1285,8 +1305,11 @@ int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
+@@ -1324,8 +1344,11 @@ int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
        ret = check_kill_permission(sig, info, p);
        rcu_read_unlock();
  
@@ -68468,16 +68833,7 @@ index 291c970..304bd03 100644
  
        return ret;
  }
-@@ -1909,6 +1932,8 @@ static void ptrace_do_notify(int signr, int exit_code, int why)
- {
-       siginfo_t info;
-+      pax_track_stack();
-+
-       memset(&info, 0, sizeof info);
-       info.si_signo = signr;
-       info.si_code = exit_code;
-@@ -2748,7 +2773,15 @@ do_send_specific(pid_t tgid, pid_t pid, int sig, struct siginfo *info)
+@@ -2840,7 +2863,15 @@ do_send_specific(pid_t tgid, pid_t pid, int sig, struct siginfo *info)
        int error = -ESRCH;
  
        rcu_read_lock();
@@ -68495,7 +68851,7 @@ index 291c970..304bd03 100644
                error = check_kill_permission(sig, info, p);
                /*
 diff --git a/kernel/smp.c b/kernel/smp.c
-index fb67dfa..f819e2e 100644
+index 2f8b10e..a41bc14 100644
 --- a/kernel/smp.c
 +++ b/kernel/smp.c
 @@ -580,22 +580,22 @@ int smp_call_function(smp_call_func_t func, void *info, int wait)
@@ -68526,7 +68882,7 @@ index fb67dfa..f819e2e 100644
        raw_spin_unlock_irq(&call_function.lock);
  }
 diff --git a/kernel/softirq.c b/kernel/softirq.c
-index fca82c3..1db9690 100644
+index 671f959..91c51cb 100644
 --- a/kernel/softirq.c
 +++ b/kernel/softirq.c
 @@ -56,7 +56,7 @@ static struct softirq_action softirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp
@@ -68547,8 +68903,8 @@ index fca82c3..1db9690 100644
                        trace_softirq_exit(vec_nr);
                        if (unlikely(prev_count != preempt_count())) {
                                printk(KERN_ERR "huh, entered softirq %u %s %p"
-@@ -385,9 +385,11 @@ void raise_softirq(unsigned int nr)
-       local_irq_restore(flags);
+@@ -381,9 +381,11 @@ void __raise_softirq_irqoff(unsigned int nr)
+       or_softirq_pending(1UL << nr);
  }
  
 -void open_softirq(int nr, void (*action)(struct softirq_action *))
@@ -68561,7 +68917,7 @@ index fca82c3..1db9690 100644
  }
  
  /*
-@@ -441,7 +443,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t)
+@@ -437,7 +439,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t)
  
  EXPORT_SYMBOL(__tasklet_hi_schedule_first);
  
@@ -68570,7 +68926,7 @@ index fca82c3..1db9690 100644
  {
        struct tasklet_struct *list;
  
-@@ -476,7 +478,7 @@ static void tasklet_action(struct softirq_action *a)
+@@ -472,7 +474,7 @@ static void tasklet_action(struct softirq_action *a)
        }
  }
  
@@ -68580,10 +68936,10 @@ index fca82c3..1db9690 100644
        struct tasklet_struct *list;
  
 diff --git a/kernel/sys.c b/kernel/sys.c
-index 1dbbe69..e96e1dd 100644
+index e7006eb..8fb7c51 100644
 --- a/kernel/sys.c
 +++ b/kernel/sys.c
-@@ -157,6 +157,12 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
+@@ -158,6 +158,12 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
                error = -EACCES;
                goto out;
        }
@@ -68596,7 +68952,7 @@ index 1dbbe69..e96e1dd 100644
        no_nice = security_task_setnice(p, niceval);
        if (no_nice) {
                error = no_nice;
-@@ -571,6 +577,9 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
+@@ -581,6 +587,9 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
                        goto error;
        }
  
@@ -68606,7 +68962,7 @@ index 1dbbe69..e96e1dd 100644
        if (rgid != (gid_t) -1 ||
            (egid != (gid_t) -1 && egid != old->gid))
                new->sgid = new->egid;
-@@ -600,6 +609,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid)
+@@ -610,6 +619,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid)
        old = current_cred();
  
        retval = -EPERM;
@@ -68617,7 +68973,16 @@ index 1dbbe69..e96e1dd 100644
        if (nsown_capable(CAP_SETGID))
                new->gid = new->egid = new->sgid = new->fsgid = gid;
        else if (gid == old->gid || gid == old->sgid)
-@@ -687,6 +700,9 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
+@@ -627,7 +640,7 @@ error:
+ /*
+  * change the user struct in a credentials set to match the new UID
+  */
+-static int set_user(struct cred *new)
++int set_user(struct cred *new)
+ {
+       struct user_struct *new_user;
+@@ -697,6 +710,9 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
                        goto error;
        }
  
@@ -68627,7 +68992,7 @@ index 1dbbe69..e96e1dd 100644
        if (new->uid != old->uid) {
                retval = set_user(new);
                if (retval < 0)
-@@ -731,6 +747,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid)
+@@ -741,6 +757,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid)
        old = current_cred();
  
        retval = -EPERM;
@@ -68640,7 +69005,7 @@ index 1dbbe69..e96e1dd 100644
        if (nsown_capable(CAP_SETUID)) {
                new->suid = new->uid = uid;
                if (uid != old->uid) {
-@@ -785,6 +807,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
+@@ -795,6 +817,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
                        goto error;
        }
  
@@ -68650,7 +69015,7 @@ index 1dbbe69..e96e1dd 100644
        if (ruid != (uid_t) -1) {
                new->uid = ruid;
                if (ruid != old->uid) {
-@@ -849,6 +874,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
+@@ -859,6 +884,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
                        goto error;
        }
  
@@ -68660,7 +69025,7 @@ index 1dbbe69..e96e1dd 100644
        if (rgid != (gid_t) -1)
                new->gid = rgid;
        if (egid != (gid_t) -1)
-@@ -895,6 +923,9 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
+@@ -905,6 +933,9 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
        old = current_cred();
        old_fsuid = old->fsuid;
  
@@ -68670,7 +69035,7 @@ index 1dbbe69..e96e1dd 100644
        if (uid == old->uid  || uid == old->euid  ||
            uid == old->suid || uid == old->fsuid ||
            nsown_capable(CAP_SETUID)) {
-@@ -905,6 +936,7 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
+@@ -915,6 +946,7 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
                }
        }
  
@@ -68678,7 +69043,7 @@ index 1dbbe69..e96e1dd 100644
        abort_creds(new);
        return old_fsuid;
  
-@@ -931,12 +963,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
+@@ -941,12 +973,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
        if (gid == old->gid  || gid == old->egid  ||
            gid == old->sgid || gid == old->fsgid ||
            nsown_capable(CAP_SETGID)) {
@@ -68695,7 +69060,7 @@ index 1dbbe69..e96e1dd 100644
        abort_creds(new);
        return old_fsgid;
  
-@@ -1188,7 +1224,10 @@ static int override_release(char __user *release, int len)
+@@ -1198,7 +1234,10 @@ static int override_release(char __user *release, int len)
                }
                v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 40;
                snprintf(buf, len, "2.6.%u%s", v, rest);
@@ -68707,7 +69072,7 @@ index 1dbbe69..e96e1dd 100644
        }
        return ret;
  }
-@@ -1242,19 +1281,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
+@@ -1252,19 +1291,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
                return -EFAULT;
  
        down_read(&uts_sem);
@@ -68732,7 +69097,7 @@ index 1dbbe69..e96e1dd 100644
                                __OLD_UTS_LEN);
        error |= __put_user(0, name->machine + __OLD_UTS_LEN);
        up_read(&uts_sem);
-@@ -1717,7 +1756,7 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
+@@ -1847,7 +1886,7 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
                        error = get_dumpable(me->mm);
                        break;
                case PR_SET_DUMPABLE:
@@ -68742,32 +69107,38 @@ index 1dbbe69..e96e1dd 100644
                                break;
                        }
 diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index 11d65b5..6957b37 100644
+index 4ab1187..0b75ced 100644
 --- a/kernel/sysctl.c
 +++ b/kernel/sysctl.c
-@@ -85,6 +85,13 @@
+@@ -91,7 +91,6 @@
  
  
  #if defined(CONFIG_SYSCTL)
-+#include <linux/grsecurity.h>
-+#include <linux/grinternal.h>
-+
-+extern __u32 gr_handle_sysctl(const ctl_table *table, const int op);
-+extern int gr_handle_sysctl_mod(const char *dirname, const char *name,
-+                              const int op);
-+extern int gr_handle_chroot_sysctl(const int op);
+-
  /* External variables not in a header file. */
  extern int sysctl_overcommit_memory;
-@@ -197,6 +204,7 @@ static int sysrq_sysctl_handler(ctl_table *table, int write,
- }
+ extern int sysctl_overcommit_ratio;
+@@ -169,10 +168,8 @@ static int proc_taint(struct ctl_table *table, int write,
+                              void __user *buffer, size_t *lenp, loff_t *ppos);
+ #endif
+-#ifdef CONFIG_PRINTK
+ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
+                               void __user *buffer, size_t *lenp, loff_t *ppos);
+-#endif
+ #ifdef CONFIG_MAGIC_SYSRQ
+ /* Note: sysrq code uses it's own private copy */
+@@ -196,6 +193,8 @@ static int sysrq_sysctl_handler(ctl_table *table, int write,
  
  #endif
-+extern struct ctl_table grsecurity_table[];
  
- static struct ctl_table root_table[];
- static struct ctl_table_root sysctl_table_root;
-@@ -226,6 +234,20 @@ extern struct ctl_table epoll_table[];
++extern struct ctl_table grsecurity_table[];
++
+ static struct ctl_table kern_table[];
+ static struct ctl_table vm_table[];
+ static struct ctl_table fs_table[];
+@@ -210,6 +209,20 @@ extern struct ctl_table epoll_table[];
  int sysctl_legacy_va_layout;
  #endif
  
@@ -68787,8 +69158,8 @@ index 11d65b5..6957b37 100644
 +
  /* The default sysctl tables: */
  
- static struct ctl_table root_table[] = {
-@@ -272,6 +294,22 @@ static int max_extfrag_threshold = 1000;
+ static struct ctl_table sysctl_base_table[] = {
+@@ -256,6 +269,22 @@ static int max_extfrag_threshold = 1000;
  #endif
  
  static struct ctl_table kern_table[] = {
@@ -68811,7 +69182,7 @@ index 11d65b5..6957b37 100644
        {
                .procname       = "sched_child_runs_first",
                .data           = &sysctl_sched_child_runs_first,
-@@ -546,7 +584,7 @@ static struct ctl_table kern_table[] = {
+@@ -540,7 +569,7 @@ static struct ctl_table kern_table[] = {
                .data           = &modprobe_path,
                .maxlen         = KMOD_PATH_LEN,
                .mode           = 0644,
@@ -68820,7 +69191,7 @@ index 11d65b5..6957b37 100644
        },
        {
                .procname       = "modules_disabled",
-@@ -713,16 +751,20 @@ static struct ctl_table kern_table[] = {
+@@ -707,16 +736,20 @@ static struct ctl_table kern_table[] = {
                .extra1         = &zero,
                .extra2         = &one,
        },
@@ -68830,7 +69201,7 @@ index 11d65b5..6957b37 100644
                .data           = &kptr_restrict,
                .maxlen         = sizeof(int),
                .mode           = 0644,
-               .proc_handler   = proc_dmesg_restrict,
+               .proc_handler   = proc_dointvec_minmax_sysadmin,
 +#ifdef CONFIG_GRKERNSEC_HIDESYM
 +              .extra1         = &two,
 +#else
@@ -68842,7 +69213,7 @@ index 11d65b5..6957b37 100644
        {
                .procname       = "ngroups_max",
                .data           = &ngroups_max,
-@@ -1205,6 +1247,13 @@ static struct ctl_table vm_table[] = {
+@@ -1215,6 +1248,13 @@ static struct ctl_table vm_table[] = {
                .proc_handler   = proc_dointvec_minmax,
                .extra1         = &zero,
        },
@@ -68856,25 +69227,7 @@ index 11d65b5..6957b37 100644
  #else
        {
                .procname       = "nr_trim_pages",
-@@ -1709,6 +1758,17 @@ static int test_perm(int mode, int op)
- int sysctl_perm(struct ctl_table_root *root, struct ctl_table *table, int op)
- {
-       int mode;
-+      int error;
-+
-+      if (table->parent != NULL && table->parent->procname != NULL &&
-+         table->procname != NULL &&
-+          gr_handle_sysctl_mod(table->parent->procname, table->procname, op))
-+              return -EACCES;
-+      if (gr_handle_chroot_sysctl(op))
-+              return -EACCES;
-+      error = gr_handle_sysctl(table, op);
-+      if (error)
-+              return error;
-       if (root->permissions)
-               mode = root->permissions(root, current->nsproxy, table);
-@@ -2113,6 +2173,16 @@ int proc_dostring(struct ctl_table *table, int write,
+@@ -1645,6 +1685,16 @@ int proc_dostring(struct ctl_table *table, int write,
                               buffer, lenp, ppos);
  }
  
@@ -68891,7 +69244,7 @@ index 11d65b5..6957b37 100644
  static size_t proc_skip_spaces(char **buf)
  {
        size_t ret;
-@@ -2218,6 +2288,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val,
+@@ -1750,6 +1800,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val,
        len = strlen(tmp);
        if (len > *size)
                len = *size;
@@ -68900,7 +69253,23 @@ index 11d65b5..6957b37 100644
        if (copy_to_user(*buf, tmp, len))
                return -EFAULT;
        *size -= len;
-@@ -2534,8 +2606,11 @@ static int __do_proc_doulongvec_minmax(void *data, struct ctl_table *table, int
+@@ -1942,7 +1994,6 @@ static int proc_taint(struct ctl_table *table, int write,
+       return err;
+ }
+-#ifdef CONFIG_PRINTK
+ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
+                               void __user *buffer, size_t *lenp, loff_t *ppos)
+ {
+@@ -1951,7 +2002,6 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
+       return proc_dointvec_minmax(table, write, buffer, lenp, ppos);
+ }
+-#endif
+ struct do_proc_dointvec_minmax_conv_param {
+       int *min;
+@@ -2066,8 +2116,11 @@ static int __do_proc_doulongvec_minmax(void *data, struct ctl_table *table, int
                        *i = val;
                } else {
                        val = convdiv * (*i) / convmul;
@@ -68913,7 +69282,7 @@ index 11d65b5..6957b37 100644
                        err = proc_put_long(&buffer, &left, val, false);
                        if (err)
                                break;
-@@ -2930,6 +3005,12 @@ int proc_dostring(struct ctl_table *table, int write,
+@@ -2459,6 +2512,12 @@ int proc_dostring(struct ctl_table *table, int write,
        return -ENOSYS;
  }
  
@@ -68926,16 +69295,15 @@ index 11d65b5..6957b37 100644
  int proc_dointvec(struct ctl_table *table, int write,
                  void __user *buffer, size_t *lenp, loff_t *ppos)
  {
-@@ -2986,6 +3067,7 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
+@@ -2515,5 +2574,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
  EXPORT_SYMBOL(proc_dointvec_userhz_jiffies);
  EXPORT_SYMBOL(proc_dointvec_ms_jiffies);
  EXPORT_SYMBOL(proc_dostring);
 +EXPORT_SYMBOL(proc_dostring_modpriv);
  EXPORT_SYMBOL(proc_doulongvec_minmax);
  EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
- EXPORT_SYMBOL(register_sysctl_table);
 diff --git a/kernel/sysctl_binary.c b/kernel/sysctl_binary.c
-index e8bffbe..2344401 100644
+index a650694..aaeeb20 100644
 --- a/kernel/sysctl_binary.c
 +++ b/kernel/sysctl_binary.c
 @@ -989,7 +989,7 @@ static ssize_t bin_intvec(struct file *file,
@@ -69001,18 +69369,6 @@ index e8bffbe..2344401 100644
                set_fs(old_fs);
                if (result < 0)
                        goto out;
-diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c
-index 362da65..ab8ef8c 100644
---- a/kernel/sysctl_check.c
-+++ b/kernel/sysctl_check.c
-@@ -129,6 +129,7 @@ int sysctl_check_table(struct nsproxy *namespaces, struct ctl_table *table)
-                               set_fail(&fail, table, "Directory with extra2");
-               } else {
-                       if ((table->proc_handler == proc_dostring) ||
-+                          (table->proc_handler == proc_dostring_modpriv) ||
-                           (table->proc_handler == proc_dointvec) ||
-                           (table->proc_handler == proc_dointvec_minmax) ||
-                           (table->proc_handler == proc_dointvec_jiffies) ||
 diff --git a/kernel/taskstats.c b/kernel/taskstats.c
 index e660464..c8b9e67 100644
 --- a/kernel/taskstats.c
@@ -69041,7 +69397,7 @@ index e660464..c8b9e67 100644
                return cmd_attr_register_cpumask(info);
        else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK])
 diff --git a/kernel/time.c b/kernel/time.c
-index d776062..fa8d186 100644
+index ba744cf..267b7c5 100644
 --- a/kernel/time.c
 +++ b/kernel/time.c
 @@ -163,6 +163,11 @@ int do_sys_settimeofday(const struct timespec *tv, const struct timezone *tz)
@@ -69053,15 +69409,15 @@ index d776062..fa8d186 100644
 +              if (!tv)
 +                      gr_log_timechange();
 +
-               /* SMP safe, global irq locking makes it work. */
                sys_tz = *tz;
                update_vsyscall_tz();
+               if (firsttime) {
 diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
-index ea5e1a9..8b8df07 100644
+index 8a538c5..def79d4 100644
 --- a/kernel/time/alarmtimer.c
 +++ b/kernel/time/alarmtimer.c
-@@ -693,7 +693,7 @@ static int __init alarmtimer_init(void)
- {
+@@ -779,7 +779,7 @@ static int __init alarmtimer_init(void)
+       struct platform_device *pdev;
        int error = 0;
        int i;
 -      struct k_clock alarm_clock = {
@@ -69070,7 +69426,7 @@ index ea5e1a9..8b8df07 100644
                .clock_get      = alarm_clock_get,
                .timer_create   = alarm_timer_create,
 diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c
-index 7a90d02..6d8585a 100644
+index f113755..ec24223 100644
 --- a/kernel/time/tick-broadcast.c
 +++ b/kernel/time/tick-broadcast.c
 @@ -115,7 +115,7 @@ int tick_device_uses_broadcast(struct clock_event_device *dev, int cpu)
@@ -69083,7 +69439,7 @@ index 7a90d02..6d8585a 100644
                        cpumask_clear_cpu(cpu, tick_get_broadcast_mask());
                        tick_broadcast_clear_oneshot(cpu);
 diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index 6f9798b..f8c4087 100644
+index 7c50de8..e29a94d 100644
 --- a/kernel/time/timekeeping.c
 +++ b/kernel/time/timekeeping.c
 @@ -14,6 +14,7 @@
@@ -69094,13 +69450,13 @@ index 6f9798b..f8c4087 100644
  #include <linux/syscore_ops.h>
  #include <linux/clocksource.h>
  #include <linux/jiffies.h>
-@@ -365,6 +366,8 @@ int do_settimeofday(const struct timespec *tv)
+@@ -388,6 +389,8 @@ int do_settimeofday(const struct timespec *tv)
        if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC)
                return -EINVAL;
  
 +      gr_log_timechange();
 +
-       write_seqlock_irqsave(&xtime_lock, flags);
+       write_seqlock_irqsave(&timekeeper.lock, flags);
  
        timekeeping_forward_now();
 diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
@@ -69149,7 +69505,7 @@ index 3258455..f35227d 100644
                return -ENOMEM;
        return 0;
 diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c
-index a5d0a3a..60c7948 100644
+index 0b537f2..9e71eca 100644
 --- a/kernel/time/timer_stats.c
 +++ b/kernel/time/timer_stats.c
 @@ -116,7 +116,7 @@ static ktime_t time_start, time_stop;
@@ -69221,10 +69577,10 @@ index a5d0a3a..60c7948 100644
                return -ENOMEM;
        return 0;
 diff --git a/kernel/timer.c b/kernel/timer.c
-index 8cff361..0fb5cd8 100644
+index a297ffc..5e16b0b 100644
 --- a/kernel/timer.c
 +++ b/kernel/timer.c
-@@ -1304,7 +1304,7 @@ void update_process_times(int user_tick)
+@@ -1354,7 +1354,7 @@ void update_process_times(int user_tick)
  /*
   * This function runs timers and the timer-tq in bottom half context.
   */
@@ -69234,10 +69590,10 @@ index 8cff361..0fb5cd8 100644
        struct tvec_base *base = __this_cpu_read(tvec_bases);
  
 diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
-index 7c910a5..8b72104 100644
+index c0bd030..62a1927 100644
 --- a/kernel/trace/blktrace.c
 +++ b/kernel/trace/blktrace.c
-@@ -323,7 +323,7 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
+@@ -317,7 +317,7 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
        struct blk_trace *bt = filp->private_data;
        char buf[16];
  
@@ -69246,7 +69602,7 @@ index 7c910a5..8b72104 100644
  
        return simple_read_from_buffer(buffer, count, ppos, buf, strlen(buf));
  }
-@@ -388,7 +388,7 @@ static int blk_subbuf_start_callback(struct rchan_buf *buf, void *subbuf,
+@@ -375,7 +375,7 @@ static int blk_subbuf_start_callback(struct rchan_buf *buf, void *subbuf,
                return 1;
  
        bt = buf->chan->private_data;
@@ -69255,7 +69611,7 @@ index 7c910a5..8b72104 100644
        return 0;
  }
  
-@@ -489,7 +489,7 @@ int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
+@@ -476,7 +476,7 @@ int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
  
        bt->dir = dir;
        bt->dev = dev;
@@ -69265,10 +69621,10 @@ index 7c910a5..8b72104 100644
        ret = -EIO;
        bt->dropped_file = debugfs_create_file("dropped", 0444, dir, bt,
 diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
-index 48d3762..3b61fce 100644
+index 0fa92f6..89950b2 100644
 --- a/kernel/trace/ftrace.c
 +++ b/kernel/trace/ftrace.c
-@@ -1584,12 +1584,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
+@@ -1800,12 +1800,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
        if (unlikely(ftrace_disabled))
                return 0;
  
@@ -69288,7 +69644,7 @@ index 48d3762..3b61fce 100644
  }
  
  /*
-@@ -2606,7 +2611,7 @@ static void ftrace_free_entry_rcu(struct rcu_head *rhp)
+@@ -2917,7 +2922,7 @@ static void ftrace_free_entry_rcu(struct rcu_head *rhp)
  
  int
  register_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops,
@@ -69298,28 +69654,10 @@ index 48d3762..3b61fce 100644
        struct ftrace_func_probe *entry;
        struct ftrace_page *pg;
 diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index 17a2d44..85907e2 100644
+index 55e4d4c..8c915ec 100644
 --- a/kernel/trace/trace.c
 +++ b/kernel/trace/trace.c
-@@ -3451,6 +3451,8 @@ static ssize_t tracing_splice_read_pipe(struct file *filp,
-       size_t rem;
-       unsigned int i;
-+      pax_track_stack();
-+
-       if (splice_grow_spd(pipe, &spd))
-               return -ENOMEM;
-@@ -3926,6 +3928,8 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos,
-       int entries, size, i;
-       size_t ret;
-+      pax_track_stack();
-+
-       if (splice_grow_spd(pipe, &spd))
-               return -ENOMEM;
-@@ -4093,10 +4097,9 @@ static const struct file_operations tracing_dyn_info_fops = {
+@@ -4316,10 +4316,9 @@ static const struct file_operations tracing_dyn_info_fops = {
  };
  #endif
  
@@ -69331,7 +69669,7 @@ index 17a2d44..85907e2 100644
        static int once;
  
        if (d_tracer)
-@@ -4116,10 +4119,9 @@ struct dentry *tracing_init_dentry(void)
+@@ -4339,10 +4338,9 @@ struct dentry *tracing_init_dentry(void)
        return d_tracer;
  }
  
@@ -69344,10 +69682,10 @@ index 17a2d44..85907e2 100644
        struct dentry *d_tracer;
  
 diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
-index c212a7f..7b02394 100644
+index 29111da..d190fe2 100644
 --- a/kernel/trace/trace_events.c
 +++ b/kernel/trace/trace_events.c
-@@ -1299,10 +1299,6 @@ static LIST_HEAD(ftrace_module_file_list);
+@@ -1308,10 +1308,6 @@ static LIST_HEAD(ftrace_module_file_list);
  struct ftrace_module_file_ops {
        struct list_head                list;
        struct module                   *mod;
@@ -69358,7 +69696,7 @@ index c212a7f..7b02394 100644
  };
  
  static struct ftrace_module_file_ops *
-@@ -1323,17 +1319,12 @@ trace_create_file_ops(struct module *mod)
+@@ -1332,17 +1328,12 @@ trace_create_file_ops(struct module *mod)
  
        file_ops->mod = mod;
  
@@ -69382,7 +69720,7 @@ index c212a7f..7b02394 100644
  
        list_add(&file_ops->list, &ftrace_module_file_list);
  
-@@ -1357,8 +1348,8 @@ static void trace_module_add_events(struct module *mod)
+@@ -1366,8 +1357,8 @@ static void trace_module_add_events(struct module *mod)
  
        for_each_event(call, start, end) {
                __trace_add_event_call(*call, mod,
@@ -69394,7 +69732,7 @@ index c212a7f..7b02394 100644
  }
  
 diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
-index 00d527c..7c5b1a3 100644
+index 580a05e..9b31acb 100644
 --- a/kernel/trace/trace_kprobe.c
 +++ b/kernel/trace/trace_kprobe.c
 @@ -217,7 +217,7 @@ static __kprobes void FETCH_FUNC_NAME(memory, string)(struct pt_regs *regs,
@@ -69474,10 +69812,10 @@ index fd3c8aa..5f324a6 100644
        }
        entry   = ring_buffer_event_data(event);
 diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
-index 5199930..26c73a0 100644
+index df611a0..10d8b32 100644
 --- a/kernel/trace/trace_output.c
 +++ b/kernel/trace/trace_output.c
-@@ -278,7 +278,7 @@ int trace_seq_path(struct trace_seq *s, struct path *path)
+@@ -278,7 +278,7 @@ int trace_seq_path(struct trace_seq *s, const struct path *path)
  
        p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len);
        if (!IS_ERR(p)) {
@@ -69487,10 +69825,10 @@ index 5199930..26c73a0 100644
                        s->len = p - s->buffer;
                        return 1;
 diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
-index 77575b3..6e623d1 100644
+index d4545f4..a9010a1 100644
 --- a/kernel/trace/trace_stack.c
 +++ b/kernel/trace/trace_stack.c
-@@ -50,7 +50,7 @@ static inline void check_stack(void)
+@@ -53,7 +53,7 @@ static inline void check_stack(void)
                return;
  
        /* we do not handle interrupt stacks yet */
@@ -69531,59 +69869,59 @@ index 209b379..7f76423 100644
                        put_task_struct(tsk);
                }
 diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
-index c0cb9c4..f33aa89 100644
+index 6777153..8519f60 100644
 --- a/lib/Kconfig.debug
 +++ b/lib/Kconfig.debug
-@@ -1091,6 +1091,7 @@ config LATENCYTOP
+@@ -1132,6 +1132,7 @@ config LATENCYTOP
        depends on DEBUG_KERNEL
        depends on STACKTRACE_SUPPORT
        depends on PROC_FS
 +      depends on !GRKERNSEC_HIDESYM
-       select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE
+       select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND
        select KALLSYMS
        select KALLSYMS_ALL
 diff --git a/lib/bitmap.c b/lib/bitmap.c
-index 2f4412e..a557e27 100644
+index b5a8b6a..a69623c 100644
 --- a/lib/bitmap.c
 +++ b/lib/bitmap.c
-@@ -419,7 +419,7 @@ int __bitmap_parse(const char *buf, unsigned int buflen,
+@@ -421,7 +421,7 @@ int __bitmap_parse(const char *buf, unsigned int buflen,
  {
        int c, old_c, totaldigits, ndigits, nchunks, nbits;
        u32 chunk;
--      const char __user *ubuf = buf;
+-      const char __user __force *ubuf = (const char __user __force *)buf;
 +      const char __user *ubuf = (const char __force_user *)buf;
  
        bitmap_zero(maskp, nmaskbits);
  
-@@ -504,7 +504,7 @@ int bitmap_parse_user(const char __user *ubuf,
+@@ -506,7 +506,7 @@ int bitmap_parse_user(const char __user *ubuf,
  {
        if (!access_ok(VERIFY_READ, ubuf, ulen))
                return -EFAULT;
--      return __bitmap_parse((const char *)ubuf, ulen, 1, maskp, nmaskbits);
-+      return __bitmap_parse((const char __force_kernel *)ubuf, ulen, 1, maskp, nmaskbits);
- }
- EXPORT_SYMBOL(bitmap_parse_user);
+-      return __bitmap_parse((const char __force *)ubuf,
++      return __bitmap_parse((const char __force_kernel *)ubuf,
+                               ulen, 1, maskp, nmaskbits);
  
-@@ -594,7 +594,7 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen,
+ }
+@@ -598,7 +598,7 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen,
  {
        unsigned a, b;
        int c, old_c, totaldigits;
--      const char __user *ubuf = buf;
+-      const char __user __force *ubuf = (const char __user __force *)buf;
 +      const char __user *ubuf = (const char __force_user *)buf;
        int exp_digit, in_range;
  
        totaldigits = c = 0;
-@@ -694,7 +694,7 @@ int bitmap_parselist_user(const char __user *ubuf,
+@@ -698,7 +698,7 @@ int bitmap_parselist_user(const char __user *ubuf,
  {
        if (!access_ok(VERIFY_READ, ubuf, ulen))
                return -EFAULT;
--      return __bitmap_parselist((const char *)ubuf,
+-      return __bitmap_parselist((const char __force *)ubuf,
 +      return __bitmap_parselist((const char __force_kernel *)ubuf,
                                        ulen, 1, maskp, nmaskbits);
  }
  EXPORT_SYMBOL(bitmap_parselist_user);
 diff --git a/lib/bug.c b/lib/bug.c
-index 1955209..cbbb2ad 100644
+index a28c141..2bd3d95 100644
 --- a/lib/bug.c
 +++ b/lib/bug.c
 @@ -133,6 +133,8 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs)
@@ -69596,10 +69934,10 @@ index 1955209..cbbb2ad 100644
        file = NULL;
        line = 0;
 diff --git a/lib/debugobjects.c b/lib/debugobjects.c
-index a78b7c6..2c73084 100644
+index 0ab9ae8..f01ceca 100644
 --- a/lib/debugobjects.c
 +++ b/lib/debugobjects.c
-@@ -284,7 +284,7 @@ static void debug_object_is_on_stack(void *addr, int onstack)
+@@ -288,7 +288,7 @@ static void debug_object_is_on_stack(void *addr, int onstack)
        if (limit > 4)
                return;
  
@@ -69609,7 +69947,7 @@ index a78b7c6..2c73084 100644
                return;
  
 diff --git a/lib/devres.c b/lib/devres.c
-index 7c0e953..f642b5c 100644
+index 80b9c76..9e32279 100644
 --- a/lib/devres.c
 +++ b/lib/devres.c
 @@ -80,7 +80,7 @@ EXPORT_SYMBOL(devm_ioremap_nocache);
@@ -69621,7 +69959,7 @@ index 7c0e953..f642b5c 100644
        iounmap(addr);
  }
  EXPORT_SYMBOL(devm_iounmap);
-@@ -141,7 +141,7 @@ void devm_ioport_unmap(struct device *dev, void __iomem *addr)
+@@ -192,7 +192,7 @@ void devm_ioport_unmap(struct device *dev, void __iomem *addr)
  {
        ioport_unmap(addr);
        WARN_ON(devres_destroy(dev, devm_ioport_map_release,
@@ -69631,10 +69969,10 @@ index 7c0e953..f642b5c 100644
  EXPORT_SYMBOL(devm_ioport_unmap);
  
 diff --git a/lib/dma-debug.c b/lib/dma-debug.c
-index db07bfd..719b5ab 100644
+index 13ef233..5241683 100644
 --- a/lib/dma-debug.c
 +++ b/lib/dma-debug.c
-@@ -870,7 +870,7 @@ out:
+@@ -924,7 +924,7 @@ out:
  
  static void check_for_stack(struct device *dev, void *addr)
  {
@@ -69679,24 +70017,47 @@ index 013a761..c28f3fc 100644
  #define free(a) kfree(a)
  #endif
  
-diff --git a/lib/kref.c b/lib/kref.c
-index 3efb882..8492f4c 100644
---- a/lib/kref.c
-+++ b/lib/kref.c
-@@ -52,7 +52,7 @@ void kref_get(struct kref *kref)
-  */
- int kref_put(struct kref *kref, void (*release)(struct kref *kref))
- {
--      WARN_ON(release == NULL);
-+      BUG_ON(release == NULL);
-       WARN_ON(release == (void (*)(struct kref *))kfree);
+diff --git a/lib/ioremap.c b/lib/ioremap.c
+index 0c9216c..863bd89 100644
+--- a/lib/ioremap.c
++++ b/lib/ioremap.c
+@@ -38,7 +38,7 @@ static inline int ioremap_pmd_range(pud_t *pud, unsigned long addr,
+       unsigned long next;
+       phys_addr -= addr;
+-      pmd = pmd_alloc(&init_mm, pud, addr);
++      pmd = pmd_alloc_kernel(&init_mm, pud, addr);
+       if (!pmd)
+               return -ENOMEM;
+       do {
+@@ -56,7 +56,7 @@ static inline int ioremap_pud_range(pgd_t *pgd, unsigned long addr,
+       unsigned long next;
+       phys_addr -= addr;
+-      pud = pud_alloc(&init_mm, pgd, addr);
++      pud = pud_alloc_kernel(&init_mm, pgd, addr);
+       if (!pud)
+               return -ENOMEM;
+       do {
+diff --git a/lib/is_single_threaded.c b/lib/is_single_threaded.c
+index bd2bea9..6b3c95e 100644
+--- a/lib/is_single_threaded.c
++++ b/lib/is_single_threaded.c
+@@ -22,6 +22,9 @@ bool current_is_single_threaded(void)
+       struct task_struct *p, *t;
+       bool ret;
++      if (!mm)
++              return true;
++
+       if (atomic_read(&task->signal->live) != 1)
+               return false;
  
-       if (atomic_dec_and_test(&kref->refcount)) {
 diff --git a/lib/radix-tree.c b/lib/radix-tree.c
-index a2f9da5..3bcadb6 100644
+index 3ac50dc..240bb7e 100644
 --- a/lib/radix-tree.c
 +++ b/lib/radix-tree.c
-@@ -80,7 +80,7 @@ struct radix_tree_preload {
+@@ -79,7 +79,7 @@ struct radix_tree_preload {
        int nr;
        struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH];
  };
@@ -69706,7 +70067,7 @@ index a2f9da5..3bcadb6 100644
  static inline void *ptr_to_indirect(void *ptr)
  {
 diff --git a/lib/vsprintf.c b/lib/vsprintf.c
-index d7222a9..2172edc 100644
+index abbabec..d5eba6c 100644
 --- a/lib/vsprintf.c
 +++ b/lib/vsprintf.c
 @@ -16,6 +16,9 @@
@@ -69717,9 +70078,9 @@ index d7222a9..2172edc 100644
 +#define __INCLUDED_BY_HIDESYM 1
 +#endif
  #include <stdarg.h>
- #include <linux/module.h>
+ #include <linux/module.h>     /* for KSYM_SYMBOL_LEN */
  #include <linux/types.h>
-@@ -432,7 +435,7 @@ char *symbol_string(char *buf, char *end, void *ptr,
+@@ -433,7 +436,7 @@ char *symbol_string(char *buf, char *end, void *ptr,
        char sym[KSYM_SYMBOL_LEN];
        if (ext == 'B')
                sprint_backtrace(sym, value);
@@ -69728,8 +70089,8 @@ index d7222a9..2172edc 100644
                sprint_symbol(sym, value);
        else
                kallsyms_lookup(value, NULL, NULL, NULL, sym);
-@@ -796,7 +799,11 @@ char *uuid_string(char *buf, char *end, const u8 *addr,
-       return string(buf, end, uuid, spec);
+@@ -809,7 +812,11 @@ char *netdev_feature_string(char *buf, char *end, const u8 *addr,
+       return number(buf, end, *(const netdev_features_t *)addr, spec);
  }
  
 +#ifdef CONFIG_GRKERNSEC_HIDESYM
@@ -69740,7 +70101,7 @@ index d7222a9..2172edc 100644
  
  /*
   * Show a '%p' thing.  A kernel extension is that the '%p' is followed
-@@ -810,6 +817,8 @@ int kptr_restrict __read_mostly;
+@@ -823,6 +830,8 @@ int kptr_restrict __read_mostly;
   * - 'S' For symbolic direct pointers with offset
   * - 's' For symbolic direct pointers without offset
   * - 'B' For backtraced symbolic direct pointers with offset
@@ -69749,8 +70110,21 @@ index d7222a9..2172edc 100644
   * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref]
   * - 'r' For raw struct resource, e.g., [mem 0x0-0x1f flags 0x201]
   * - 'M' For a 6-byte MAC address, it prints the address in the
-@@ -854,12 +863,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+@@ -866,14 +875,25 @@ static noinline_for_stack
+ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+             struct printf_spec spec)
  {
++#ifdef CONFIG_GRKERNSEC_HIDESYM
++      /* 'P' = approved pointers to copy to userland,
++         as in the /proc/kallsyms case, as we make it display nothing
++         for non-root users, and the real contents for root users
++      */
++      if (ptr > TASK_SIZE && *fmt != 'P' && is_usercopy_object(buf)) {
++              ptr = NULL;
++              goto simple;
++      }
++#endif
++
        if (!ptr && *fmt != 'K') {
                /*
 -               * Print (null) with the same width as a pointer so it makes
@@ -69764,7 +70138,7 @@ index d7222a9..2172edc 100644
        }
  
        switch (*fmt) {
-@@ -869,6 +878,13 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+@@ -883,6 +903,13 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
                /* Fallthrough */
        case 'S':
        case 's':
@@ -69778,7 +70152,26 @@ index d7222a9..2172edc 100644
        case 'B':
                return symbol_string(buf, end, ptr, spec, *fmt);
        case 'R':
-@@ -1627,11 +1643,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
+@@ -920,6 +947,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+                       va_end(va);
+                       return buf;
+               }
++      case 'P':
++              break;
+       case 'K':
+               /*
+                * %pK cannot be used in IRQ context because its test
+@@ -942,6 +971,9 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+               }
+               break;
+       }
++#ifdef CONFIG_GRKERNSEC_HIDESYM
++simple:
++#endif
+       spec.flags |= SMALL;
+       if (spec.field_width == -1) {
+               spec.field_width = 2 * sizeof(void *);
+@@ -1653,11 +1685,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
        typeof(type) value;                                             \
        if (sizeof(type) == 8) {                                        \
                args = PTR_ALIGN(args, sizeof(u32));                    \
@@ -69793,7 +70186,7 @@ index d7222a9..2172edc 100644
        }                                                               \
        args += sizeof(type);                                           \
        value;                                                          \
-@@ -1694,7 +1710,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
+@@ -1720,7 +1752,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
                case FORMAT_TYPE_STR: {
                        const char *str_arg = args;
                        args += strlen(str_arg) + 1;
@@ -69810,10 +70203,10 @@ index 0000000..7cd6065
 @@ -0,0 +1 @@
 +-grsec
 diff --git a/mm/Kconfig b/mm/Kconfig
-index f2f1ca1..0645f06 100644
+index e338407..4210331 100644
 --- a/mm/Kconfig
 +++ b/mm/Kconfig
-@@ -238,10 +238,10 @@ config KSM
+@@ -247,10 +247,10 @@ config KSM
          root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
  
  config DEFAULT_MMAP_MIN_ADDR
@@ -69827,11 +70220,20 @@ index f2f1ca1..0645f06 100644
          This is the portion of low virtual memory which should be protected
          from userspace allocation.  Keeping a user from writing to low pages
          can help reduce the impact of kernel NULL pointer bugs.
+@@ -280,7 +280,7 @@ config MEMORY_FAILURE
+ config HWPOISON_INJECT
+       tristate "HWPoison pages injector"
+-      depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS
++      depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS && !GRKERNSEC
+       select PROC_PAGE_MONITOR
+ config NOMMU_INITIAL_TRIM_EXCESS
 diff --git a/mm/filemap.c b/mm/filemap.c
-index 7771871..91bcdb4 100644
+index 79c4b2b..596b417 100644
 --- a/mm/filemap.c
 +++ b/mm/filemap.c
-@@ -1784,7 +1784,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
+@@ -1762,7 +1762,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
        struct address_space *mapping = file->f_mapping;
  
        if (!mapping->a_ops->readpage)
@@ -69840,7 +70242,7 @@ index 7771871..91bcdb4 100644
        file_accessed(file);
        vma->vm_ops = &generic_file_vm_ops;
        vma->vm_flags |= VM_CAN_NONLINEAR;
-@@ -2190,6 +2190,7 @@ inline int generic_write_checks(struct file *file, loff_t *pos, size_t *count, i
+@@ -2168,6 +2168,7 @@ inline int generic_write_checks(struct file *file, loff_t *pos, size_t *count, i
                          *pos = i_size_read(inode);
  
                if (limit != RLIM_INFINITY) {
@@ -69849,10 +70251,10 @@ index 7771871..91bcdb4 100644
                                send_sig(SIGXFSZ, current, 0);
                                return -EFBIG;
 diff --git a/mm/fremap.c b/mm/fremap.c
-index b8e0e2d..076e171 100644
+index 9ed4fd4..c42648d 100644
 --- a/mm/fremap.c
 +++ b/mm/fremap.c
-@@ -156,6 +156,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -155,6 +155,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
   retry:
        vma = find_vma(mm, start);
  
@@ -69865,7 +70267,7 @@ index b8e0e2d..076e171 100644
         * Make sure the vma is shared, that it supports prefaulting,
         * and that the remapped range is valid and fully within
 diff --git a/mm/highmem.c b/mm/highmem.c
-index 5ef672c..d7660f4 100644
+index 57d82c6..e9e0552 100644
 --- a/mm/highmem.c
 +++ b/mm/highmem.c
 @@ -125,9 +125,10 @@ static void flush_all_zero_pkmaps(void)
@@ -69894,10 +70296,10 @@ index 5ef672c..d7660f4 100644
        set_page_address(page, (void *)vaddr);
  
 diff --git a/mm/huge_memory.c b/mm/huge_memory.c
-index d819d93..468e18f 100644
+index f0e5306..cb9398e 100644
 --- a/mm/huge_memory.c
 +++ b/mm/huge_memory.c
-@@ -702,7 +702,7 @@ out:
+@@ -733,7 +733,7 @@ out:
         * run pte_offset_map on the pmd, if an huge pmd could
         * materialize from under us from a different thread.
         */
@@ -69906,28 +70308,11 @@ index d819d93..468e18f 100644
                return VM_FAULT_OOM;
        /* if an huge pmd materialized from under us just retry later */
        if (unlikely(pmd_trans_huge(*pmd)))
-@@ -829,7 +829,7 @@ static int do_huge_pmd_wp_page_fallback(struct mm_struct *mm,
-       for (i = 0; i < HPAGE_PMD_NR; i++) {
-               copy_user_highpage(pages[i], page + i,
--                                 haddr + PAGE_SHIFT*i, vma);
-+                                 haddr + PAGE_SIZE*i, vma);
-               __SetPageUptodate(pages[i]);
-               cond_resched();
-       }
 diff --git a/mm/hugetlb.c b/mm/hugetlb.c
-index bb28a5f..fef0140 100644
+index 263e177..3f36aec 100644
 --- a/mm/hugetlb.c
 +++ b/mm/hugetlb.c
-@@ -576,6 +576,7 @@ static void prep_compound_gigantic_page(struct page *page, unsigned long order)
-       __SetPageHead(page);
-       for (i = 1; i < nr_pages; i++, p = mem_map_next(p, page, i)) {
-               __SetPageTail(p);
-+              set_page_count(p, 0);
-               p->first_page = page;
-       }
- }
-@@ -2346,6 +2347,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2446,6 +2446,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
        return 1;
  }
  
@@ -69954,8 +70339,8 @@ index bb28a5f..fef0140 100644
 +
  /*
   * Hugetlb_cow() should be called with page lock of the original hugepage held.
-  */
-@@ -2449,6 +2471,11 @@ retry_avoidcopy:
+  * Called with hugetlb_instantiation_mutex held and pte_page locked so we
+@@ -2558,6 +2579,11 @@ retry_avoidcopy:
                                make_huge_pte(vma, new_page, 1));
                page_remove_rmap(old_page);
                hugepage_add_new_anon_rmap(new_page, vma, address);
@@ -69967,7 +70352,7 @@ index bb28a5f..fef0140 100644
                /* Make the old page be freed below */
                new_page = old_page;
                mmu_notifier_invalidate_range_end(mm,
-@@ -2600,6 +2627,10 @@ retry:
+@@ -2712,6 +2738,10 @@ retry:
                                && (vma->vm_flags & VM_SHARED)));
        set_huge_pte_at(mm, address, ptep, new_pte);
  
@@ -69978,7 +70363,7 @@ index bb28a5f..fef0140 100644
        if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) {
                /* Optimization, do the COW without a second fault */
                ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page);
-@@ -2629,6 +2660,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2741,6 +2771,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
        static DEFINE_MUTEX(hugetlb_instantiation_mutex);
        struct hstate *h = hstate_vma(vma);
  
@@ -69986,10 +70371,10 @@ index bb28a5f..fef0140 100644
 +      struct vm_area_struct *vma_m;
 +#endif
 +
+       address &= huge_page_mask(h);
        ptep = huge_pte_offset(mm, address);
-       if (ptep) {
-               entry = huge_ptep_get(ptep);
-@@ -2640,6 +2675,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2754,6 +2788,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
                               VM_FAULT_SET_HINDEX(h - hstates);
        }
  
@@ -70029,10 +70414,10 @@ index 2189af4..f2ca332 100644
  #ifdef CONFIG_MEMORY_FAILURE
  extern bool is_free_buddy_page(struct page *page);
 diff --git a/mm/kmemleak.c b/mm/kmemleak.c
-index d6880f5..ed77913 100644
+index 45eb621..6ccd8ea 100644
 --- a/mm/kmemleak.c
 +++ b/mm/kmemleak.c
-@@ -357,7 +357,7 @@ static void print_unreferenced(struct seq_file *seq,
+@@ -363,7 +363,7 @@ static void print_unreferenced(struct seq_file *seq,
  
        for (i = 0; i < object->trace_len; i++) {
                void *ptr = (void *)object->trace[i];
@@ -70042,7 +70427,7 @@ index d6880f5..ed77913 100644
  }
  
 diff --git a/mm/maccess.c b/mm/maccess.c
-index 4cee182..e00511d 100644
+index d53adf9..03a24bf 100644
 --- a/mm/maccess.c
 +++ b/mm/maccess.c
 @@ -26,7 +26,7 @@ long __probe_kernel_read(void *dst, const void *src, size_t size)
@@ -70064,10 +70449,10 @@ index 4cee182..e00511d 100644
        set_fs(old_fs);
  
 diff --git a/mm/madvise.c b/mm/madvise.c
-index 74bf193..feb6fd3 100644
+index 55f645c..cde5320 100644
 --- a/mm/madvise.c
 +++ b/mm/madvise.c
-@@ -45,6 +45,10 @@ static long madvise_behavior(struct vm_area_struct * vma,
+@@ -46,6 +46,10 @@ static long madvise_behavior(struct vm_area_struct * vma,
        pgoff_t pgoff;
        unsigned long new_flags = vma->vm_flags;
  
@@ -70078,7 +70463,7 @@ index 74bf193..feb6fd3 100644
        switch (behavior) {
        case MADV_NORMAL:
                new_flags = new_flags & ~VM_RAND_READ & ~VM_SEQ_READ;
-@@ -110,6 +114,13 @@ success:
+@@ -117,6 +121,13 @@ success:
        /*
         * vm_flags is protected by the mmap_sem held in write mode.
         */
@@ -70092,7 +70477,7 @@ index 74bf193..feb6fd3 100644
        vma->vm_flags = new_flags;
  
  out:
-@@ -168,6 +179,11 @@ static long madvise_dontneed(struct vm_area_struct * vma,
+@@ -175,6 +186,11 @@ static long madvise_dontneed(struct vm_area_struct * vma,
                             struct vm_area_struct ** prev,
                             unsigned long start, unsigned long end)
  {
@@ -70104,7 +70489,7 @@ index 74bf193..feb6fd3 100644
        *prev = vma;
        if (vma->vm_flags & (VM_LOCKED|VM_HUGETLB|VM_PFNMAP))
                return -EINVAL;
-@@ -180,6 +196,21 @@ static long madvise_dontneed(struct vm_area_struct * vma,
+@@ -187,6 +203,21 @@ static long madvise_dontneed(struct vm_area_struct * vma,
                zap_page_range(vma, start, end - start, &details);
        } else
                zap_page_range(vma, start, end - start, NULL);
@@ -70126,7 +70511,7 @@ index 74bf193..feb6fd3 100644
        return 0;
  }
  
-@@ -376,6 +407,16 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior)
+@@ -394,6 +425,16 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior)
        if (end < start)
                goto out;
  
@@ -70144,10 +70529,10 @@ index 74bf193..feb6fd3 100644
        if (end == start)
                goto out;
 diff --git a/mm/memory-failure.c b/mm/memory-failure.c
-index 2b43ba0..fc09657 100644
+index 97cc273..6ed703f 100644
 --- a/mm/memory-failure.c
 +++ b/mm/memory-failure.c
-@@ -60,7 +60,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0;
+@@ -61,7 +61,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0;
  
  int sysctl_memory_failure_recovery __read_mostly = 1;
  
@@ -70156,16 +70541,16 @@ index 2b43ba0..fc09657 100644
  
  #if defined(CONFIG_HWPOISON_INJECT) || defined(CONFIG_HWPOISON_INJECT_MODULE)
  
-@@ -201,7 +201,7 @@ static int kill_proc_ao(struct task_struct *t, unsigned long addr, int trapno,
+@@ -202,7 +202,7 @@ static int kill_proc(struct task_struct *t, unsigned long addr, int trapno,
+               pfn, t->comm, t->pid);
        si.si_signo = SIGBUS;
        si.si_errno = 0;
-       si.si_code = BUS_MCEERR_AO;
 -      si.si_addr = (void *)addr;
 +      si.si_addr = (void __user *)addr;
  #ifdef __ARCH_SI_TRAPNO
        si.si_trapno = trapno;
  #endif
-@@ -1009,7 +1009,7 @@ int __memory_failure(unsigned long pfn, int trapno, int flags)
+@@ -1036,7 +1036,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
        }
  
        nr_pages = 1 << compound_trans_order(hpage);
@@ -70174,7 +70559,7 @@ index 2b43ba0..fc09657 100644
  
        /*
         * We need/can do nothing about count=0 pages.
-@@ -1039,7 +1039,7 @@ int __memory_failure(unsigned long pfn, int trapno, int flags)
+@@ -1066,7 +1066,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
                        if (!PageHWPoison(hpage)
                            || (hwpoison_filter(p) && TestClearPageHWPoison(p))
                            || (p != hpage && TestSetPageHWPoison(hpage))) {
@@ -70183,7 +70568,7 @@ index 2b43ba0..fc09657 100644
                                return 0;
                        }
                        set_page_hwpoison_huge_page(hpage);
-@@ -1097,7 +1097,7 @@ int __memory_failure(unsigned long pfn, int trapno, int flags)
+@@ -1124,7 +1124,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
        }
        if (hwpoison_filter(p)) {
                if (TestClearPageHWPoison(p))
@@ -70192,7 +70577,7 @@ index 2b43ba0..fc09657 100644
                unlock_page(hpage);
                put_page(hpage);
                return 0;
-@@ -1314,7 +1314,7 @@ int unpoison_memory(unsigned long pfn)
+@@ -1319,7 +1319,7 @@ int unpoison_memory(unsigned long pfn)
                        return 0;
                }
                if (TestClearPageHWPoison(p))
@@ -70201,7 +70586,7 @@ index 2b43ba0..fc09657 100644
                pr_info("MCE: Software-unpoisoned free page %#lx\n", pfn);
                return 0;
        }
-@@ -1328,7 +1328,7 @@ int unpoison_memory(unsigned long pfn)
+@@ -1333,7 +1333,7 @@ int unpoison_memory(unsigned long pfn)
         */
        if (TestClearPageHWPoison(page)) {
                pr_info("MCE: Software-unpoisoned page %#lx\n", pfn);
@@ -70210,7 +70595,7 @@ index 2b43ba0..fc09657 100644
                freeit = 1;
                if (PageHuge(page))
                        clear_page_hwpoison_huge_page(page);
-@@ -1441,7 +1441,7 @@ static int soft_offline_huge_page(struct page *page, int flags)
+@@ -1446,7 +1446,7 @@ static int soft_offline_huge_page(struct page *page, int flags)
        }
  done:
        if (!PageHWPoison(hpage))
@@ -70219,7 +70604,7 @@ index 2b43ba0..fc09657 100644
        set_page_hwpoison_huge_page(hpage);
        dequeue_hwpoisoned_huge_page(hpage);
        /* keep elevated page count for bad page */
-@@ -1572,7 +1572,7 @@ int soft_offline_page(struct page *page, int flags)
+@@ -1577,7 +1577,7 @@ int soft_offline_page(struct page *page, int flags)
                return ret;
  
  done:
@@ -70229,10 +70614,10 @@ index 2b43ba0..fc09657 100644
        /* keep elevated page count for bad page */
        return ret;
 diff --git a/mm/memory.c b/mm/memory.c
-index b2b8731..6080174 100644
+index 6105f47..3363489 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -457,8 +457,12 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
+@@ -434,8 +434,12 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
                return;
  
        pmd = pmd_offset(pud, start);
@@ -70245,7 +70630,7 @@ index b2b8731..6080174 100644
  }
  
  static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
-@@ -489,9 +493,12 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
+@@ -466,9 +470,12 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
        if (end - 1 > ceiling - 1)
                return;
  
@@ -70258,7 +70643,7 @@ index b2b8731..6080174 100644
  }
  
  /*
-@@ -1566,12 +1573,6 @@ no_page_table:
+@@ -1597,12 +1604,6 @@ no_page_table:
        return page;
  }
  
@@ -70271,7 +70656,7 @@ index b2b8731..6080174 100644
  /**
   * __get_user_pages() - pin user pages in memory
   * @tsk:      task_struct of target task
-@@ -1644,10 +1645,10 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
+@@ -1675,10 +1676,10 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
                        (VM_MAYREAD | VM_MAYWRITE) : (VM_READ | VM_WRITE);
        i = 0;
  
@@ -70284,7 +70669,7 @@ index b2b8731..6080174 100644
                if (!vma && in_gate_area(mm, start)) {
                        unsigned long pg = start & PAGE_MASK;
                        pgd_t *pgd;
-@@ -1695,7 +1696,7 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
+@@ -1726,7 +1727,7 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
                        goto next_page;
                }
  
@@ -70293,7 +70678,7 @@ index b2b8731..6080174 100644
                    (vma->vm_flags & (VM_IO | VM_PFNMAP)) ||
                    !(vm_flags & vma->vm_flags))
                        return i ? : -EFAULT;
-@@ -1722,11 +1723,6 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
+@@ -1753,11 +1754,6 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
                                int ret;
                                unsigned int fault_flags = 0;
  
@@ -70305,7 +70690,7 @@ index b2b8731..6080174 100644
                                if (foll_flags & FOLL_WRITE)
                                        fault_flags |= FAULT_FLAG_WRITE;
                                if (nonblocking)
-@@ -1800,7 +1796,7 @@ next_page:
+@@ -1831,7 +1827,7 @@ next_page:
                        start += PAGE_SIZE;
                        nr_pages--;
                } while (nr_pages && start < vma->vm_end);
@@ -70314,7 +70699,7 @@ index b2b8731..6080174 100644
        return i;
  }
  EXPORT_SYMBOL(__get_user_pages);
-@@ -2007,6 +2003,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr,
+@@ -2038,6 +2034,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr,
        page_add_file_rmap(page);
        set_pte_at(mm, addr, pte, mk_pte(page, prot));
  
@@ -70325,7 +70710,7 @@ index b2b8731..6080174 100644
        retval = 0;
        pte_unmap_unlock(pte, ptl);
        return retval;
-@@ -2041,10 +2041,22 @@ out:
+@@ -2072,10 +2072,22 @@ out:
  int vm_insert_page(struct vm_area_struct *vma, unsigned long addr,
                        struct page *page)
  {
@@ -70348,7 +70733,7 @@ index b2b8731..6080174 100644
        vma->vm_flags |= VM_INSERTPAGE;
        return insert_page(vma, addr, page, vma->vm_page_prot);
  }
-@@ -2130,6 +2142,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
+@@ -2161,6 +2173,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
                        unsigned long pfn)
  {
        BUG_ON(!(vma->vm_flags & VM_MIXEDMAP));
@@ -70356,7 +70741,29 @@ index b2b8731..6080174 100644
  
        if (addr < vma->vm_start || addr >= vma->vm_end)
                return -EFAULT;
-@@ -2445,6 +2458,186 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo
+@@ -2368,7 +2381,9 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud,
+       BUG_ON(pud_huge(*pud));
+-      pmd = pmd_alloc(mm, pud, addr);
++      pmd = (mm == &init_mm) ?
++              pmd_alloc_kernel(mm, pud, addr) :
++              pmd_alloc(mm, pud, addr);
+       if (!pmd)
+               return -ENOMEM;
+       do {
+@@ -2388,7 +2403,9 @@ static int apply_to_pud_range(struct mm_struct *mm, pgd_t *pgd,
+       unsigned long next;
+       int err;
+-      pud = pud_alloc(mm, pgd, addr);
++      pud = (mm == &init_mm) ?
++              pud_alloc_kernel(mm, pgd, addr) :
++              pud_alloc(mm, pgd, addr);
+       if (!pud)
+               return -ENOMEM;
+       do {
+@@ -2476,6 +2493,186 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo
                copy_user_highpage(dst, src, va, vma);
  }
  
@@ -70543,7 +70950,7 @@ index b2b8731..6080174 100644
  /*
   * This routine handles present pages, when users try to write
   * to a shared page. It is done by copying the page to a new address
-@@ -2656,6 +2849,12 @@ gotten:
+@@ -2687,6 +2884,12 @@ gotten:
         */
        page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
        if (likely(pte_same(*page_table, orig_pte))) {
@@ -70556,7 +70963,7 @@ index b2b8731..6080174 100644
                if (old_page) {
                        if (!PageAnon(old_page)) {
                                dec_mm_counter_fast(mm, MM_FILEPAGES);
-@@ -2707,6 +2906,10 @@ gotten:
+@@ -2738,6 +2941,10 @@ gotten:
                        page_remove_rmap(old_page);
                }
  
@@ -70567,7 +70974,7 @@ index b2b8731..6080174 100644
                /* Free the old page.. */
                new_page = old_page;
                ret |= VM_FAULT_WRITE;
-@@ -2986,6 +3189,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3017,6 +3224,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
        swap_free(entry);
        if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page))
                try_to_free_swap(page);
@@ -70579,7 +70986,7 @@ index b2b8731..6080174 100644
        unlock_page(page);
        if (swapcache) {
                /*
-@@ -3009,6 +3217,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3040,6 +3252,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
  
        /* No need to invalidate - it was non-present before */
        update_mmu_cache(vma, address, page_table);
@@ -70591,7 +70998,7 @@ index b2b8731..6080174 100644
  unlock:
        pte_unmap_unlock(page_table, ptl);
  out:
-@@ -3028,40 +3241,6 @@ out_release:
+@@ -3059,40 +3276,6 @@ out_release:
  }
  
  /*
@@ -70632,7 +71039,7 @@ index b2b8731..6080174 100644
   * We enter with non-exclusive mmap_sem (to exclude vma changes,
   * but allow concurrent faults), and pte mapped but not yet locked.
   * We return with mmap_sem still held, but pte unmapped and unlocked.
-@@ -3070,27 +3249,23 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3101,27 +3284,23 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
                unsigned long address, pte_t *page_table, pmd_t *pmd,
                unsigned int flags)
  {
@@ -70665,7 +71072,7 @@ index b2b8731..6080174 100644
        if (unlikely(anon_vma_prepare(vma)))
                goto oom;
        page = alloc_zeroed_user_highpage_movable(vma, address);
-@@ -3109,6 +3284,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3140,6 +3319,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
        if (!pte_none(*page_table))
                goto release;
  
@@ -70677,7 +71084,7 @@ index b2b8731..6080174 100644
        inc_mm_counter_fast(mm, MM_ANONPAGES);
        page_add_new_anon_rmap(page, vma, address);
  setpte:
-@@ -3116,6 +3296,12 @@ setpte:
+@@ -3147,6 +3331,12 @@ setpte:
  
        /* No need to invalidate - it was non-present before */
        update_mmu_cache(vma, address, page_table);
@@ -70690,7 +71097,7 @@ index b2b8731..6080174 100644
  unlock:
        pte_unmap_unlock(page_table, ptl);
        return 0;
-@@ -3259,6 +3445,12 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3290,6 +3480,12 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
         */
        /* Only go through if we didn't race with anybody else... */
        if (likely(pte_same(*page_table, orig_pte))) {
@@ -70703,7 +71110,7 @@ index b2b8731..6080174 100644
                flush_icache_page(vma, page);
                entry = mk_pte(page, vma->vm_page_prot);
                if (flags & FAULT_FLAG_WRITE)
-@@ -3278,6 +3470,14 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3309,6 +3505,14 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
  
                /* no need to invalidate: a not-present page won't be cached */
                update_mmu_cache(vma, address, page_table);
@@ -70718,7 +71125,7 @@ index b2b8731..6080174 100644
        } else {
                if (cow_page)
                        mem_cgroup_uncharge_page(cow_page);
-@@ -3431,6 +3631,12 @@ int handle_pte_fault(struct mm_struct *mm,
+@@ -3462,6 +3666,12 @@ int handle_pte_fault(struct mm_struct *mm,
                if (flags & FAULT_FLAG_WRITE)
                        flush_tlb_fix_spurious_fault(vma, address);
        }
@@ -70731,7 +71138,7 @@ index b2b8731..6080174 100644
  unlock:
        pte_unmap_unlock(pte, ptl);
        return 0;
-@@ -3447,6 +3653,10 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3478,6 +3688,10 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
        pmd_t *pmd;
        pte_t *pte;
  
@@ -70742,7 +71149,7 @@ index b2b8731..6080174 100644
        __set_current_state(TASK_RUNNING);
  
        count_vm_event(PGFAULT);
-@@ -3458,6 +3668,34 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3489,6 +3703,34 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
        if (unlikely(is_vm_hugetlb_page(vma)))
                return hugetlb_fault(mm, vma, address, flags);
  
@@ -70777,7 +71184,7 @@ index b2b8731..6080174 100644
        pgd = pgd_offset(mm, address);
        pud = pud_alloc(mm, pgd, address);
        if (!pud)
-@@ -3487,7 +3725,7 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3518,7 +3760,7 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
         * run pte_offset_map on the pmd, if an huge pmd could
         * materialize from under us from a different thread.
         */
@@ -70786,20 +71193,75 @@ index b2b8731..6080174 100644
                return VM_FAULT_OOM;
        /* if an huge pmd materialized from under us just retry later */
        if (unlikely(pmd_trans_huge(*pmd)))
-@@ -3591,7 +3829,7 @@ static int __init gate_vma_init(void)
+@@ -3555,6 +3797,23 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
+       spin_unlock(&mm->page_table_lock);
+       return 0;
+ }
++
++int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
++{
++      pud_t *new = pud_alloc_one(mm, address);
++      if (!new)
++              return -ENOMEM;
++
++      smp_wmb(); /* See comment in __pte_alloc */
++
++      spin_lock(&mm->page_table_lock);
++      if (pgd_present(*pgd))          /* Another has populated it */
++              pud_free(mm, new);
++      else
++              pgd_populate_kernel(mm, pgd, new);
++      spin_unlock(&mm->page_table_lock);
++      return 0;
++}
+ #endif /* __PAGETABLE_PUD_FOLDED */
+ #ifndef __PAGETABLE_PMD_FOLDED
+@@ -3585,6 +3844,30 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
+       spin_unlock(&mm->page_table_lock);
+       return 0;
+ }
++
++int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address)
++{
++      pmd_t *new = pmd_alloc_one(mm, address);
++      if (!new)
++              return -ENOMEM;
++
++      smp_wmb(); /* See comment in __pte_alloc */
++
++      spin_lock(&mm->page_table_lock);
++#ifndef __ARCH_HAS_4LEVEL_HACK
++      if (pud_present(*pud))          /* Another has populated it */
++              pmd_free(mm, new);
++      else
++              pud_populate_kernel(mm, pud, new);
++#else
++      if (pgd_present(*pud))          /* Another has populated it */
++              pmd_free(mm, new);
++      else
++              pgd_populate_kernel(mm, pud, new);
++#endif /* __ARCH_HAS_4LEVEL_HACK */
++      spin_unlock(&mm->page_table_lock);
++      return 0;
++}
+ #endif /* __PAGETABLE_PMD_FOLDED */
+ int make_pages_present(unsigned long addr, unsigned long end)
+@@ -3622,7 +3905,7 @@ static int __init gate_vma_init(void)
        gate_vma.vm_start = FIXADDR_USER_START;
        gate_vma.vm_end = FIXADDR_USER_END;
        gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
 -      gate_vma.vm_page_prot = __P101;
 +      gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
-       /*
-        * Make sure the vDSO gets into every core dump.
-        * Dumping its contents makes post-mortem fully interpretable later
+       return 0;
+ }
 diff --git a/mm/mempolicy.c b/mm/mempolicy.c
-index 9c51f9f..a9416cf 100644
+index bf5b485..e44c2cb 100644
 --- a/mm/mempolicy.c
 +++ b/mm/mempolicy.c
-@@ -639,6 +639,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
+@@ -619,6 +619,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
        unsigned long vmstart;
        unsigned long vmend;
  
@@ -70807,18 +71269,18 @@ index 9c51f9f..a9416cf 100644
 +      struct vm_area_struct *vma_m;
 +#endif
 +
-       vma = find_vma_prev(mm, start, &prev);
+       vma = find_vma(mm, start);
        if (!vma || vma->vm_start > start)
                return -EFAULT;
-@@ -669,6 +673,16 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
-               err = policy_vma(vma, new_pol);
-               if (err)
-                       goto out;
+@@ -672,6 +676,16 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
+                       if (err)
+                               goto out;
+               }
 +
 +#ifdef CONFIG_PAX_SEGMEXEC
 +              vma_m = pax_find_mirror_vma(vma);
-+              if (vma_m) {
-+                      err = policy_vma(vma_m, new_pol);
++              if (vma_m && vma_m->vm_ops && vma_m->vm_ops->set_policy) {
++                      err = vma_m->vm_ops->set_policy(vma_m, new_pol);
 +                      if (err)
 +                              goto out;
 +              }
@@ -70827,7 +71289,7 @@ index 9c51f9f..a9416cf 100644
        }
  
   out:
-@@ -1102,6 +1116,17 @@ static long do_mbind(unsigned long start, unsigned long len,
+@@ -1105,6 +1119,17 @@ static long do_mbind(unsigned long start, unsigned long len,
  
        if (end < start)
                return -EINVAL;
@@ -70845,23 +71307,8 @@ index 9c51f9f..a9416cf 100644
        if (end == start)
                return 0;
  
-@@ -1320,6 +1345,14 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
-       if (!mm)
-               goto out;
-+#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
-+      if (mm != current->mm &&
-+          (mm->pax_flags & MF_PAX_RANDMMAP || mm->pax_flags & MF_PAX_SEGMEXEC)) {
-+              err = -EPERM;
-+              goto out;
-+      }
-+#endif
-+
-       /*
-        * Check if this process has the right to modify the specified
-        * process. The right exists if the process has administrative
-@@ -1329,8 +1362,7 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
-       rcu_read_lock();
+@@ -1328,8 +1353,7 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
+        */
        tcred = __task_cred(task);
        if (cred->euid != tcred->suid && cred->euid != tcred->uid &&
 -          cred->uid  != tcred->suid && cred->uid  != tcred->uid &&
@@ -70869,58 +71316,25 @@ index 9c51f9f..a9416cf 100644
 +          cred->uid  != tcred->suid && !capable(CAP_SYS_NICE)) {
                rcu_read_unlock();
                err = -EPERM;
+               goto out_put;
+@@ -1360,6 +1384,15 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
                goto out;
-diff --git a/mm/migrate.c b/mm/migrate.c
-index 14d0a6a..0360908 100644
---- a/mm/migrate.c
-+++ b/mm/migrate.c
-@@ -866,9 +866,9 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
-       if (anon_vma)
-               put_anon_vma(anon_vma);
--out:
-       unlock_page(hpage);
-+out:
-       if (rc != -EAGAIN) {
-               list_del(&hpage->lru);
-               put_page(hpage);
-@@ -1124,6 +1124,8 @@ static int do_pages_move(struct mm_struct *mm, struct task_struct *task,
-       unsigned long chunk_start;
-       int err;
-+      pax_track_stack();
-+
-       task_nodes = cpuset_mems_allowed(task);
-       err = -ENOMEM;
-@@ -1308,6 +1310,14 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
-       if (!mm)
-               return -EINVAL;
+       }
  
 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
 +      if (mm != current->mm &&
 +          (mm->pax_flags & MF_PAX_RANDMMAP || mm->pax_flags & MF_PAX_SEGMEXEC)) {
++              mmput(mm);
 +              err = -EPERM;
 +              goto out;
 +      }
 +#endif
 +
-       /*
-        * Check if this process has the right to modify the specified
-        * process. The right exists if the process has administrative
-@@ -1317,8 +1327,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
-       rcu_read_lock();
-       tcred = __task_cred(task);
-       if (cred->euid != tcred->suid && cred->euid != tcred->uid &&
--          cred->uid  != tcred->suid && cred->uid  != tcred->uid &&
--          !capable(CAP_SYS_NICE)) {
-+          cred->uid  != tcred->suid && !capable(CAP_SYS_NICE)) {
-               rcu_read_unlock();
-               err = -EPERM;
-               goto out;
+       err = do_migrate_pages(mm, old, new,
+               capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
 diff --git a/mm/mlock.c b/mm/mlock.c
-index 048260c..57f4a4e 100644
+index ef726e8..cd7f1ec 100644
 --- a/mm/mlock.c
 +++ b/mm/mlock.c
 @@ -13,6 +13,7 @@
@@ -70929,19 +71343,28 @@ index 048260c..57f4a4e 100644
  #include <linux/syscalls.h>
 +#include <linux/security.h>
  #include <linux/sched.h>
- #include <linux/module.h>
+ #include <linux/export.h>
  #include <linux/rmap.h>
-@@ -377,6 +378,9 @@ static int do_mlock(unsigned long start, size_t len, int on)
+@@ -376,7 +377,7 @@ static int do_mlock(unsigned long start, size_t len, int on)
+ {
+       unsigned long nstart, end, tmp;
+       struct vm_area_struct * vma, * prev;
+-      int error;
++      int error = 0;
+       VM_BUG_ON(start & ~PAGE_MASK);
+       VM_BUG_ON(len != PAGE_ALIGN(len));
+@@ -385,6 +386,9 @@ static int do_mlock(unsigned long start, size_t len, int on)
                return -EINVAL;
        if (end == start)
                return 0;
 +      if (end > TASK_SIZE)
 +              return -EINVAL;
 +
-       vma = find_vma_prev(current->mm, start, &prev);
+       vma = find_vma(current->mm, start);
        if (!vma || vma->vm_start > start)
                return -ENOMEM;
-@@ -387,6 +391,11 @@ static int do_mlock(unsigned long start, size_t len, int on)
+@@ -396,6 +400,11 @@ static int do_mlock(unsigned long start, size_t len, int on)
        for (nstart = start ; ; ) {
                vm_flags_t newflags;
  
@@ -70953,7 +71376,7 @@ index 048260c..57f4a4e 100644
                /* Here we know that  vma->vm_start <= nstart < vma->vm_end. */
  
                newflags = vma->vm_flags | VM_LOCKED;
-@@ -492,6 +501,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
+@@ -501,6 +510,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
        lock_limit >>= PAGE_SHIFT;
  
        /* check against resource limits */
@@ -70961,7 +71384,7 @@ index 048260c..57f4a4e 100644
        if ((locked <= lock_limit) || capable(CAP_IPC_LOCK))
                error = do_mlock(start, len, 1);
        up_write(&current->mm->mmap_sem);
-@@ -515,17 +525,23 @@ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, len)
+@@ -524,17 +534,23 @@ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, len)
  static int do_mlockall(int flags)
  {
        struct vm_area_struct * vma, * prev = NULL;
@@ -70988,7 +71411,7 @@ index 048260c..57f4a4e 100644
                newflags = vma->vm_flags | VM_LOCKED;
                if (!(flags & MCL_CURRENT))
                        newflags &= ~VM_LOCKED;
-@@ -557,6 +573,7 @@ SYSCALL_DEFINE1(mlockall, int, flags)
+@@ -567,6 +583,7 @@ SYSCALL_DEFINE1(mlockall, int, flags)
        lock_limit >>= PAGE_SHIFT;
  
        ret = -ENOMEM;
@@ -70997,7 +71420,7 @@ index 048260c..57f4a4e 100644
            capable(CAP_IPC_LOCK))
                ret = do_mlockall(flags);
 diff --git a/mm/mmap.c b/mm/mmap.c
-index a65efd4..17d61ff 100644
+index 848ef52..d2b586c 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
 @@ -46,6 +46,16 @@
@@ -71061,7 +71484,7 @@ index a65efd4..17d61ff 100644
        if (vma->vm_ops && vma->vm_ops->close)
                vma->vm_ops->close(vma);
        if (vma->vm_file) {
-@@ -272,6 +293,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
+@@ -274,6 +295,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
         * not page aligned -Ram Gupta
         */
        rlim = rlimit(RLIMIT_DATA);
@@ -71069,7 +71492,7 @@ index a65efd4..17d61ff 100644
        if (rlim < RLIM_INFINITY && (brk - mm->start_brk) +
                        (mm->end_data - mm->start_data) > rlim)
                goto out;
-@@ -689,6 +711,12 @@ static int
+@@ -690,6 +712,12 @@ static int
  can_vma_merge_before(struct vm_area_struct *vma, unsigned long vm_flags,
        struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff)
  {
@@ -71082,7 +71505,7 @@ index a65efd4..17d61ff 100644
        if (is_mergeable_vma(vma, file, vm_flags) &&
            is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
                if (vma->vm_pgoff == vm_pgoff)
-@@ -708,6 +736,12 @@ static int
+@@ -709,6 +737,12 @@ static int
  can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
        struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff)
  {
@@ -71095,7 +71518,7 @@ index a65efd4..17d61ff 100644
        if (is_mergeable_vma(vma, file, vm_flags) &&
            is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
                pgoff_t vm_pglen;
-@@ -750,13 +784,20 @@ can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
+@@ -751,13 +785,20 @@ can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
  struct vm_area_struct *vma_merge(struct mm_struct *mm,
                        struct vm_area_struct *prev, unsigned long addr,
                        unsigned long end, unsigned long vm_flags,
@@ -71117,7 +71540,7 @@ index a65efd4..17d61ff 100644
        /*
         * We later require that vma->vm_flags == vm_flags,
         * so this tests vma->vm_flags & VM_SPECIAL, too.
-@@ -772,6 +813,15 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
+@@ -773,6 +814,15 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
        if (next && next->vm_end == end)                /* cases 6, 7, 8 */
                next = next->vm_next;
  
@@ -71133,7 +71556,7 @@ index a65efd4..17d61ff 100644
        /*
         * Can it merge with the predecessor?
         */
-@@ -791,9 +841,24 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
+@@ -792,9 +842,24 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
                                                        /* cases 1, 6 */
                        err = vma_adjust(prev, prev->vm_start,
                                next->vm_end, prev->vm_pgoff, NULL);
@@ -71159,7 +71582,7 @@ index a65efd4..17d61ff 100644
                if (err)
                        return NULL;
                khugepaged_enter_vma_merge(prev);
-@@ -807,12 +872,27 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
+@@ -808,12 +873,27 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
                        mpol_equal(policy, vma_policy(next)) &&
                        can_vma_merge_before(next, vm_flags,
                                        anon_vma, file, pgoff+pglen)) {
@@ -71189,7 +71612,7 @@ index a65efd4..17d61ff 100644
                if (err)
                        return NULL;
                khugepaged_enter_vma_merge(area);
-@@ -921,14 +1001,11 @@ none:
+@@ -922,14 +1002,11 @@ none:
  void vm_stat_account(struct mm_struct *mm, unsigned long flags,
                                                struct file *file, long pages)
  {
@@ -71205,7 +71628,7 @@ index a65efd4..17d61ff 100644
                mm->stack_vm += pages;
        if (flags & (VM_RESERVED|VM_IO))
                mm->reserved_vm += pages;
-@@ -955,7 +1032,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
+@@ -969,7 +1046,7 @@ static unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
         * (the exception is when the underlying filesystem is noexec
         *  mounted, in which case we dont add PROT_EXEC.)
         */
@@ -71214,7 +71637,7 @@ index a65efd4..17d61ff 100644
                if (!(file && (file->f_path.mnt->mnt_flags & MNT_NOEXEC)))
                        prot |= PROT_EXEC;
  
-@@ -981,7 +1058,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
+@@ -995,7 +1072,7 @@ static unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
        /* Obtain the address to map to. we verify (or select) it and ensure
         * that it represents a valid section of the address space.
         */
@@ -71223,7 +71646,7 @@ index a65efd4..17d61ff 100644
        if (addr & ~PAGE_MASK)
                return addr;
  
-@@ -992,6 +1069,36 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
+@@ -1006,6 +1083,36 @@ static unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
        vm_flags = calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) |
                        mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
  
@@ -71260,7 +71683,7 @@ index a65efd4..17d61ff 100644
        if (flags & MAP_LOCKED)
                if (!can_do_mlock())
                        return -EPERM;
-@@ -1003,6 +1110,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
+@@ -1017,6 +1124,7 @@ static unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
                locked += mm->locked_vm;
                lock_limit = rlimit(RLIMIT_MEMLOCK);
                lock_limit >>= PAGE_SHIFT;
@@ -71268,7 +71691,7 @@ index a65efd4..17d61ff 100644
                if (locked > lock_limit && !capable(CAP_IPC_LOCK))
                        return -EAGAIN;
        }
-@@ -1073,6 +1181,9 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
+@@ -1087,6 +1195,9 @@ static unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
        if (error)
                return error;
  
@@ -71277,8 +71700,8 @@ index a65efd4..17d61ff 100644
 +
        return mmap_region(file, addr, len, flags, vm_flags, pgoff);
  }
- EXPORT_SYMBOL(do_mmap_pgoff);
-@@ -1153,7 +1264,7 @@ int vma_wants_writenotify(struct vm_area_struct *vma)
+@@ -1192,7 +1303,7 @@ int vma_wants_writenotify(struct vm_area_struct *vma)
        vm_flags_t vm_flags = vma->vm_flags;
  
        /* If it was private or non-writable, the write bit is already clear */
@@ -71287,7 +71710,7 @@ index a65efd4..17d61ff 100644
                return 0;
  
        /* The backer wishes to know when pages are first written to? */
-@@ -1202,14 +1313,24 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
+@@ -1241,14 +1352,24 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
        unsigned long charged = 0;
        struct inode *inode =  file ? file->f_path.dentry->d_inode : NULL;
  
@@ -71314,7 +71737,7 @@ index a65efd4..17d61ff 100644
        }
  
        /* Check against address space limit. */
-@@ -1258,6 +1379,16 @@ munmap_back:
+@@ -1297,6 +1418,16 @@ munmap_back:
                goto unacct_error;
        }
  
@@ -71331,7 +71754,7 @@ index a65efd4..17d61ff 100644
        vma->vm_mm = mm;
        vma->vm_start = addr;
        vma->vm_end = addr + len;
-@@ -1281,6 +1412,19 @@ munmap_back:
+@@ -1321,6 +1452,19 @@ munmap_back:
                error = file->f_op->mmap(file, vma);
                if (error)
                        goto unmap_and_free_vma;
@@ -71351,7 +71774,7 @@ index a65efd4..17d61ff 100644
                if (vm_flags & VM_EXECUTABLE)
                        added_exe_file_vma(mm);
  
-@@ -1316,6 +1460,11 @@ munmap_back:
+@@ -1358,6 +1502,11 @@ munmap_back:
        vma_link(mm, vma, prev, rb_link, rb_parent);
        file = vma->vm_file;
  
@@ -71363,7 +71786,7 @@ index a65efd4..17d61ff 100644
        /* Once vma denies write, undo our temporary denial count */
        if (correct_wcount)
                atomic_inc(&inode->i_writecount);
-@@ -1324,6 +1473,7 @@ out:
+@@ -1366,6 +1515,7 @@ out:
  
        mm->total_vm += len >> PAGE_SHIFT;
        vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
@@ -71371,7 +71794,7 @@ index a65efd4..17d61ff 100644
        if (vm_flags & VM_LOCKED) {
                if (!mlock_vma_pages_range(vma, addr, addr + len))
                        mm->locked_vm += (len >> PAGE_SHIFT);
-@@ -1341,6 +1491,12 @@ unmap_and_free_vma:
+@@ -1383,6 +1533,12 @@ unmap_and_free_vma:
        unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
        charged = 0;
  free_vma:
@@ -71384,7 +71807,7 @@ index a65efd4..17d61ff 100644
        kmem_cache_free(vm_area_cachep, vma);
  unacct_error:
        if (charged)
-@@ -1348,6 +1504,44 @@ unacct_error:
+@@ -1390,6 +1546,44 @@ unacct_error:
        return error;
  }
  
@@ -71429,7 +71852,7 @@ index a65efd4..17d61ff 100644
  /* Get an address range which is currently unmapped.
   * For shmat() with addr=0.
   *
-@@ -1374,18 +1568,23 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -1416,18 +1610,23 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
        if (flags & MAP_FIXED)
                return addr;
  
@@ -71460,7 +71883,7 @@ index a65efd4..17d61ff 100644
        }
  
  full_search:
-@@ -1396,34 +1595,40 @@ full_search:
+@@ -1438,34 +1637,40 @@ full_search:
                         * Start a new search - just in case we missed
                         * some holes.
                         */
@@ -71507,21 +71930,21 @@ index a65efd4..17d61ff 100644
        /*
         * Is this a new hole at the lowest possible address?
         */
--      if (addr >= TASK_UNMAPPED_BASE && addr < mm->free_area_cache) {
-+      if (addr >= mm->mmap_base && addr < mm->free_area_cache) {
+-      if (addr >= TASK_UNMAPPED_BASE && addr < mm->free_area_cache)
++      if (addr >= mm->mmap_base && addr < mm->free_area_cache)
                mm->free_area_cache = addr;
-               mm->cached_hole_size = ~0UL;
-       }
-@@ -1441,7 +1646,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+ }
+@@ -1481,7 +1686,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
  {
        struct vm_area_struct *vma;
        struct mm_struct *mm = current->mm;
--      unsigned long addr = addr0;
-+      unsigned long base = mm->mmap_base, addr = addr0;
+-      unsigned long addr = addr0, start_addr;
++      unsigned long base = mm->mmap_base, addr = addr0, start_addr;
  
        /* requested length too big for entire address space */
        if (len > TASK_SIZE)
-@@ -1450,13 +1655,18 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -1490,13 +1695,18 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
        if (flags & MAP_FIXED)
                return addr;
  
@@ -71544,16 +71967,7 @@ index a65efd4..17d61ff 100644
        }
  
        /* check if free_area_cache is useful for us */
-@@ -1471,7 +1681,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
-       /* make sure it can fit in the remaining address space */
-       if (addr > len) {
-               vma = find_vma(mm, addr-len);
--              if (!vma || addr <= vma->vm_start)
-+              if (check_heap_stack_gap(vma, addr - len, len))
-                       /* remember the address as a hint for next time */
-                       return (mm->free_area_cache = addr-len);
-       }
-@@ -1488,7 +1698,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -1520,7 +1730,7 @@ try_again:
                 * return with success:
                 */
                vma = find_vma(mm, addr);
@@ -71562,7 +71976,7 @@ index a65efd4..17d61ff 100644
                        /* remember the address as a hint for next time */
                        return (mm->free_area_cache = addr);
  
-@@ -1497,8 +1707,8 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -1529,8 +1739,8 @@ try_again:
                        mm->cached_hole_size = vma->vm_start - addr;
  
                /* try just below the current vma->vm_start */
@@ -71571,9 +71985,9 @@ index a65efd4..17d61ff 100644
 +              addr = skip_heap_stack_gap(vma, len);
 +      } while (!IS_ERR_VALUE(addr));
  
bottomup:
fail:
        /*
-@@ -1507,13 +1717,21 @@ bottomup:
+@@ -1553,13 +1763,21 @@ fail:
         * can happen with large stack limits and large mmap()
         * allocations.
         */
@@ -71597,7 +72011,7 @@ index a65efd4..17d61ff 100644
        mm->cached_hole_size = ~0UL;
  
        return addr;
-@@ -1522,6 +1740,12 @@ bottomup:
+@@ -1568,6 +1786,12 @@ fail:
  
  void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
  {
@@ -71610,7 +72024,7 @@ index a65efd4..17d61ff 100644
        /*
         * Is this a new hole at the highest possible address?
         */
-@@ -1529,8 +1753,10 @@ void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
+@@ -1575,8 +1799,10 @@ void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
                mm->free_area_cache = addr;
  
        /* dont allow allocations above current base */
@@ -71622,8 +72036,8 @@ index a65efd4..17d61ff 100644
  }
  
  unsigned long
-@@ -1638,6 +1864,28 @@ out:
-       return prev ? prev->vm_next : vma;
+@@ -1672,6 +1898,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
+       return vma;
  }
  
 +#ifdef CONFIG_PAX_SEGMEXEC
@@ -71651,7 +72065,7 @@ index a65efd4..17d61ff 100644
  /*
   * Verify that the stack growth is acceptable and
   * update accounting. This is shared with both the
-@@ -1654,6 +1902,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
+@@ -1688,6 +1936,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
                return -ENOMEM;
  
        /* Stack limit test */
@@ -71659,7 +72073,7 @@ index a65efd4..17d61ff 100644
        if (size > ACCESS_ONCE(rlim[RLIMIT_STACK].rlim_cur))
                return -ENOMEM;
  
-@@ -1664,6 +1913,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
+@@ -1698,6 +1947,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
                locked = mm->locked_vm + grow;
                limit = ACCESS_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur);
                limit >>= PAGE_SHIFT;
@@ -71667,7 +72081,7 @@ index a65efd4..17d61ff 100644
                if (locked > limit && !capable(CAP_IPC_LOCK))
                        return -ENOMEM;
        }
-@@ -1694,37 +1944,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
+@@ -1728,37 +1978,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
   * PA-RISC uses this for its stack; IA64 for its Register Backing Store.
   * vma is the last one with address > vma->vm_end.  Have to extend vma.
   */
@@ -71725,7 +72139,7 @@ index a65efd4..17d61ff 100644
                unsigned long size, grow;
  
                size = address - vma->vm_start;
-@@ -1739,6 +2000,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
+@@ -1773,6 +2034,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
                        }
                }
        }
@@ -71734,7 +72148,7 @@ index a65efd4..17d61ff 100644
        vma_unlock_anon_vma(vma);
        khugepaged_enter_vma_merge(vma);
        return error;
-@@ -1752,6 +2015,8 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -1786,6 +2049,8 @@ int expand_downwards(struct vm_area_struct *vma,
                                   unsigned long address)
  {
        int error;
@@ -71743,7 +72157,7 @@ index a65efd4..17d61ff 100644
  
        /*
         * We must make sure the anon_vma is allocated
-@@ -1765,6 +2030,15 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -1799,6 +2064,15 @@ int expand_downwards(struct vm_area_struct *vma,
        if (error)
                return error;
  
@@ -71759,7 +72173,7 @@ index a65efd4..17d61ff 100644
        vma_lock_anon_vma(vma);
  
        /*
-@@ -1774,9 +2048,17 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -1808,9 +2082,17 @@ int expand_downwards(struct vm_area_struct *vma,
         */
  
        /* Somebody else might have raced and expanded it already */
@@ -71778,7 +72192,7 @@ index a65efd4..17d61ff 100644
                size = vma->vm_end - address;
                grow = (vma->vm_start - address) >> PAGE_SHIFT;
  
-@@ -1786,11 +2068,22 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -1820,11 +2102,22 @@ int expand_downwards(struct vm_area_struct *vma,
                        if (!error) {
                                vma->vm_start = address;
                                vma->vm_pgoff -= grow;
@@ -71801,7 +72215,7 @@ index a65efd4..17d61ff 100644
        khugepaged_enter_vma_merge(vma);
        return error;
  }
-@@ -1860,6 +2153,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -1894,6 +2187,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
        do {
                long nrpages = vma_pages(vma);
  
@@ -71815,7 +72229,7 @@ index a65efd4..17d61ff 100644
                mm->total_vm -= nrpages;
                vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
                vma = remove_vma(vma);
-@@ -1905,6 +2205,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -1939,6 +2239,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
        insertion_point = (prev ? &prev->vm_next : &mm->mmap);
        vma->vm_prev = NULL;
        do {
@@ -71832,7 +72246,7 @@ index a65efd4..17d61ff 100644
                rb_erase(&vma->vm_rb, &mm->mm_rb);
                mm->map_count--;
                tail_vma = vma;
-@@ -1933,14 +2243,33 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -1967,14 +2277,33 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
        struct vm_area_struct *new;
        int err = -ENOMEM;
  
@@ -71866,7 +72280,7 @@ index a65efd4..17d61ff 100644
        /* most fields are the same, copy all, and then fixup */
        *new = *vma;
  
-@@ -1953,6 +2282,22 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -1987,6 +2316,22 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
                new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT);
        }
  
@@ -71889,7 +72303,7 @@ index a65efd4..17d61ff 100644
        pol = mpol_dup(vma_policy(vma));
        if (IS_ERR(pol)) {
                err = PTR_ERR(pol);
-@@ -1978,6 +2323,42 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2012,6 +2357,42 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
        else
                err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
  
@@ -71932,7 +72346,7 @@ index a65efd4..17d61ff 100644
        /* Success. */
        if (!err)
                return 0;
-@@ -1990,10 +2371,18 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2024,10 +2405,18 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
                        removed_exe_file_vma(mm);
                fput(new->vm_file);
        }
@@ -71952,7 +72366,7 @@ index a65efd4..17d61ff 100644
        kmem_cache_free(vm_area_cachep, new);
   out_err:
        return err;
-@@ -2006,6 +2395,15 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2040,6 +2429,15 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
  int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
              unsigned long addr, int new_below)
  {
@@ -71968,7 +72382,7 @@ index a65efd4..17d61ff 100644
        if (mm->map_count >= sysctl_max_map_count)
                return -ENOMEM;
  
-@@ -2017,11 +2415,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2051,11 +2449,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
   * work.  This now handles partial unmappings.
   * Jeremy Fitzhardinge <jeremy@goop.org>
   */
@@ -71999,7 +72413,7 @@ index a65efd4..17d61ff 100644
        if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start)
                return -EINVAL;
  
-@@ -2096,6 +2513,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
+@@ -2130,6 +2547,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
        /* Fix up all other VM information */
        remove_vma_list(mm, vma);
  
@@ -72007,21 +72421,23 @@ index a65efd4..17d61ff 100644
 +
        return 0;
  }
+ EXPORT_SYMBOL(do_munmap);
+@@ -2139,6 +2558,13 @@ int vm_munmap(unsigned long start, size_t len)
+       int ret;
+       struct mm_struct *mm = current->mm;
  
-@@ -2108,22 +2527,18 @@ SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
-       profile_munmap(addr);
++
 +#ifdef CONFIG_PAX_SEGMEXEC
 +      if ((mm->pax_flags & MF_PAX_SEGMEXEC) &&
-+          (len > SEGMEXEC_TASK_SIZE || addr > SEGMEXEC_TASK_SIZE-len))
++          (len > SEGMEXEC_TASK_SIZE || start > SEGMEXEC_TASK_SIZE-len))
 +              return -EINVAL;
 +#endif
 +
        down_write(&mm->mmap_sem);
-       ret = do_munmap(mm, addr, len);
+       ret = do_munmap(mm, start, len);
        up_write(&mm->mmap_sem);
-       return ret;
+@@ -2152,16 +2578,6 @@ SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
+       return vm_munmap(addr, len);
  }
  
 -static inline void verify_mm_writelocked(struct mm_struct *mm)
@@ -72037,7 +72453,7 @@ index a65efd4..17d61ff 100644
  /*
   *  this is really a simplified "do_mmap".  it only handles
   *  anonymous maps.  eventually we may be able to do some
-@@ -2137,6 +2552,7 @@ unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2175,6 +2591,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
        struct rb_node ** rb_link, * rb_parent;
        pgoff_t pgoff = addr >> PAGE_SHIFT;
        int error;
@@ -72045,7 +72461,7 @@ index a65efd4..17d61ff 100644
  
        len = PAGE_ALIGN(len);
        if (!len)
-@@ -2148,16 +2564,30 @@ unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2186,16 +2603,30 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
  
        flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
  
@@ -72077,7 +72493,7 @@ index a65efd4..17d61ff 100644
                locked += mm->locked_vm;
                lock_limit = rlimit(RLIMIT_MEMLOCK);
                lock_limit >>= PAGE_SHIFT;
-@@ -2174,22 +2604,22 @@ unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2212,22 +2643,22 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
        /*
         * Clear old maps.  this also does some error checking for us
         */
@@ -72087,9 +72503,10 @@ index a65efd4..17d61ff 100644
                if (do_munmap(mm, addr, len))
                        return -ENOMEM;
 -              goto munmap_back;
+-      }
 +              vma = find_vma_prepare(mm, addr, &prev, &rb_link, &rb_parent);
 +              BUG_ON(vma && vma->vm_start < addr + len);
-       }
++      }
  
        /* Check against address space limits *after* clearing old maps... */
 -      if (!may_expand_vm(mm, len >> PAGE_SHIFT))
@@ -72099,12 +72516,12 @@ index a65efd4..17d61ff 100644
        if (mm->map_count > sysctl_max_map_count)
                return -ENOMEM;
  
--      if (security_vm_enough_memory(len >> PAGE_SHIFT))
-+      if (security_vm_enough_memory(charged))
+-      if (security_vm_enough_memory_mm(mm, len >> PAGE_SHIFT))
++      if (security_vm_enough_memory_mm(mm, charged))
                return -ENOMEM;
  
        /* Can we just expand an old private anonymous mapping? */
-@@ -2203,7 +2633,7 @@ unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2241,7 +2672,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
         */
        vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
        if (!vma) {
@@ -72113,7 +72530,7 @@ index a65efd4..17d61ff 100644
                return -ENOMEM;
        }
  
-@@ -2217,11 +2647,12 @@ unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2255,11 +2686,12 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
        vma_link(mm, vma, prev, rb_link, rb_parent);
  out:
        perf_event_mmap(vma);
@@ -72128,7 +72545,7 @@ index a65efd4..17d61ff 100644
        return addr;
  }
  
-@@ -2268,8 +2699,10 @@ void exit_mmap(struct mm_struct *mm)
+@@ -2315,8 +2747,10 @@ void exit_mmap(struct mm_struct *mm)
         * Walk the list again, actually closing and freeing it,
         * with preemption enabled, without holding any MM locks.
         */
@@ -72140,7 +72557,7 @@ index a65efd4..17d61ff 100644
  
        BUG_ON(mm->nr_ptes > (FIRST_USER_ADDRESS+PMD_SIZE-1)>>PMD_SHIFT);
  }
-@@ -2283,6 +2716,13 @@ int insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma)
+@@ -2330,6 +2764,13 @@ int insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma)
        struct vm_area_struct * __vma, * prev;
        struct rb_node ** rb_link, * rb_parent;
  
@@ -72154,7 +72571,7 @@ index a65efd4..17d61ff 100644
        /*
         * The vm_pgoff of a purely anonymous vma should be irrelevant
         * until its first write fault, when page's anon_vma and index
-@@ -2305,7 +2745,22 @@ int insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma)
+@@ -2352,7 +2793,22 @@ int insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma)
        if ((vma->vm_flags & VM_ACCOUNT) &&
             security_vm_enough_memory_mm(mm, vma_pages(vma)))
                return -ENOMEM;
@@ -72177,16 +72594,16 @@ index a65efd4..17d61ff 100644
        return 0;
  }
  
-@@ -2323,6 +2778,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
-       struct rb_node **rb_link, *rb_parent;
+@@ -2371,6 +2827,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
        struct mempolicy *pol;
+       bool faulted_in_anon_vma = true;
  
 +      BUG_ON(vma->vm_mirror);
 +
        /*
         * If anonymous vma has not yet been faulted, update new pgoff
         * to match new location, to increase its chance of merging.
-@@ -2373,6 +2830,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -2438,6 +2896,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
        return NULL;
  }
  
@@ -72226,16 +72643,20 @@ index a65efd4..17d61ff 100644
  /*
   * Return true if the calling process may expand its vm space by the passed
   * number of pages
-@@ -2383,7 +2873,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
-       unsigned long lim;
+@@ -2449,6 +2940,12 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
  
        lim = rlimit(RLIMIT_AS) >> PAGE_SHIFT;
--
++#ifdef CONFIG_PAX_RANDMMAP
++      if (mm->pax_flags & MF_PAX_RANDMMAP)
++              cur -= mm->brk_gap;
++#endif
++
 +      gr_learn_resource(current, RLIMIT_AS, (cur + npages) << PAGE_SHIFT, 1);
        if (cur + npages > lim)
                return 0;
        return 1;
-@@ -2454,6 +2944,22 @@ int install_special_mapping(struct mm_struct *mm,
+@@ -2519,6 +3016,22 @@ int install_special_mapping(struct mm_struct *mm,
        vma->vm_start = addr;
        vma->vm_end = addr + len;
  
@@ -72259,16 +72680,17 @@ index a65efd4..17d61ff 100644
        vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
  
 diff --git a/mm/mprotect.c b/mm/mprotect.c
-index 5a688a2..27e031c 100644
+index a409926..8b32e6d 100644
 --- a/mm/mprotect.c
 +++ b/mm/mprotect.c
-@@ -23,10 +23,16 @@
+@@ -23,10 +23,17 @@
  #include <linux/mmu_notifier.h>
  #include <linux/migrate.h>
  #include <linux/perf_event.h>
 +
 +#ifdef CONFIG_PAX_MPROTECT
 +#include <linux/elf.h>
++#include <linux/binfmts.h>
 +#endif
 +
  #include <asm/uaccess.h>
@@ -72279,7 +72701,7 @@ index 5a688a2..27e031c 100644
  
  #ifndef pgprot_modify
  static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
-@@ -141,6 +147,48 @@ static void change_protection(struct vm_area_struct *vma,
+@@ -141,6 +148,48 @@ static void change_protection(struct vm_area_struct *vma,
        flush_tlb_range(vma, start, end);
  }
  
@@ -72328,7 +72750,7 @@ index 5a688a2..27e031c 100644
  int
  mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
        unsigned long start, unsigned long end, unsigned long newflags)
-@@ -153,11 +201,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
+@@ -153,11 +202,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
        int error;
        int dirty_accountable = 0;
  
@@ -72358,7 +72780,7 @@ index 5a688a2..27e031c 100644
        /*
         * If we make a private mapping writable we increase our commit;
         * but (without finer accounting) cannot reduce our commit if we
-@@ -174,6 +240,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
+@@ -174,6 +241,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
                }
        }
  
@@ -72401,7 +72823,7 @@ index 5a688a2..27e031c 100644
        /*
         * First try to merge with previous and/or next vma.
         */
-@@ -204,9 +306,21 @@ success:
+@@ -204,9 +307,21 @@ success:
         * vm_flags and vm_page_prot are protected by the mmap_sem
         * held in write mode.
         */
@@ -72424,7 +72846,7 @@ index 5a688a2..27e031c 100644
  
        if (vma_wants_writenotify(vma)) {
                vma->vm_page_prot = vm_get_page_prot(newflags & ~VM_SHARED);
-@@ -248,6 +362,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -248,6 +363,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
        end = start + len;
        if (end <= start)
                return -ENOMEM;
@@ -72442,7 +72864,7 @@ index 5a688a2..27e031c 100644
        if (!arch_validate_prot(prot))
                return -EINVAL;
  
-@@ -255,7 +380,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -255,7 +381,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
        /*
         * Does the application expect PROT_READ to imply PROT_EXEC:
         */
@@ -72451,7 +72873,7 @@ index 5a688a2..27e031c 100644
                prot |= PROT_EXEC;
  
        vm_flags = calc_vm_prot_bits(prot);
-@@ -287,6 +412,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -288,6 +414,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
        if (start > vma->vm_start)
                prev = vma;
  
@@ -72463,7 +72885,7 @@ index 5a688a2..27e031c 100644
        for (nstart = start ; ; ) {
                unsigned long newflags;
  
-@@ -296,6 +426,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -297,6 +428,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
  
                /* newflags >> 4 shift VM_MAY% in place of VM_% */
                if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) {
@@ -72478,7 +72900,7 @@ index 5a688a2..27e031c 100644
                        error = -EACCES;
                        goto out;
                }
-@@ -310,6 +448,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -311,6 +450,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
                error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
                if (error)
                        goto out;
@@ -72489,12 +72911,12 @@ index 5a688a2..27e031c 100644
  
                if (nstart < prev->vm_end)
 diff --git a/mm/mremap.c b/mm/mremap.c
-index 506fa44..ccc0ba9 100644
+index db8d983..76506cb 100644
 --- a/mm/mremap.c
 +++ b/mm/mremap.c
-@@ -113,6 +113,12 @@ static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd,
+@@ -106,6 +106,12 @@ static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd,
                        continue;
-               pte = ptep_clear_flush(vma, old_addr, old_pte);
+               pte = ptep_get_and_clear(mm, old_addr, old_pte);
                pte = move_pte(pte, new_vma->vm_page_prot, old_addr, new_addr);
 +
 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
@@ -72505,7 +72927,7 @@ index 506fa44..ccc0ba9 100644
                set_pte_at(mm, new_addr, new_pte, pte);
        }
  
-@@ -272,6 +278,11 @@ static struct vm_area_struct *vma_to_resize(unsigned long addr,
+@@ -299,6 +305,11 @@ static struct vm_area_struct *vma_to_resize(unsigned long addr,
        if (is_vm_hugetlb_page(vma))
                goto Einval;
  
@@ -72517,7 +72939,7 @@ index 506fa44..ccc0ba9 100644
        /* We can't remap across vm area boundaries */
        if (old_len > vma->vm_end - addr)
                goto Efault;
-@@ -328,20 +339,25 @@ static unsigned long mremap_to(unsigned long addr,
+@@ -355,20 +366,25 @@ static unsigned long mremap_to(unsigned long addr,
        unsigned long ret = -EINVAL;
        unsigned long charged = 0;
        unsigned long map_flags;
@@ -72548,7 +72970,7 @@ index 506fa44..ccc0ba9 100644
                goto out;
  
        ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
-@@ -413,6 +429,7 @@ unsigned long do_mremap(unsigned long addr,
+@@ -440,6 +456,7 @@ unsigned long do_mremap(unsigned long addr,
        struct vm_area_struct *vma;
        unsigned long ret = -EINVAL;
        unsigned long charged = 0;
@@ -72556,7 +72978,7 @@ index 506fa44..ccc0ba9 100644
  
        if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
                goto out;
-@@ -431,6 +448,17 @@ unsigned long do_mremap(unsigned long addr,
+@@ -458,6 +475,17 @@ unsigned long do_mremap(unsigned long addr,
        if (!new_len)
                goto out;
  
@@ -72574,7 +72996,7 @@ index 506fa44..ccc0ba9 100644
        if (flags & MREMAP_FIXED) {
                if (flags & MREMAP_MAYMOVE)
                        ret = mremap_to(addr, old_len, new_addr, new_len);
-@@ -480,6 +508,7 @@ unsigned long do_mremap(unsigned long addr,
+@@ -507,6 +535,7 @@ unsigned long do_mremap(unsigned long addr,
                                                   addr + new_len);
                        }
                        ret = addr;
@@ -72582,7 +73004,7 @@ index 506fa44..ccc0ba9 100644
                        goto out;
                }
        }
-@@ -506,7 +535,13 @@ unsigned long do_mremap(unsigned long addr,
+@@ -533,7 +562,13 @@ unsigned long do_mremap(unsigned long addr,
                ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
                if (ret)
                        goto out;
@@ -72596,45 +73018,8 @@ index 506fa44..ccc0ba9 100644
        }
  out:
        if (ret & ~PAGE_MASK)
-diff --git a/mm/nobootmem.c b/mm/nobootmem.c
-index 6e93dc7..c98df0c 100644
---- a/mm/nobootmem.c
-+++ b/mm/nobootmem.c
-@@ -110,19 +110,30 @@ static void __init __free_pages_memory(unsigned long start, unsigned long end)
- unsigned long __init free_all_memory_core_early(int nodeid)
- {
-       int i;
--      u64 start, end;
-+      u64 start, end, startrange, endrange;
-       unsigned long count = 0;
--      struct range *range = NULL;
-+      struct range *range = NULL, rangerange = { 0, 0 };
-       int nr_range;
-       nr_range = get_free_all_memory_range(&range, nodeid);
-+      startrange = __pa(range) >> PAGE_SHIFT;
-+      endrange = (__pa(range + nr_range) - 1) >> PAGE_SHIFT;
-       for (i = 0; i < nr_range; i++) {
-               start = range[i].start;
-               end = range[i].end;
-+              if (start <= endrange && startrange < end) {
-+                      BUG_ON(rangerange.start | rangerange.end);
-+                      rangerange = range[i];
-+                      continue;
-+              }
-               count += end - start;
-               __free_pages_memory(start, end);
-       }
-+      start = rangerange.start;
-+      end = rangerange.end;
-+      count += end - start;
-+      __free_pages_memory(start, end);
-       return count;
- }
 diff --git a/mm/nommu.c b/mm/nommu.c
-index 4358032..e79b99f 100644
+index bb8f4f0..40d3e02 100644
 --- a/mm/nommu.c
 +++ b/mm/nommu.c
 @@ -62,7 +62,6 @@ int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */
@@ -72645,7 +73030,7 @@ index 4358032..e79b99f 100644
  
  atomic_long_t mmap_pages_allocated;
  
-@@ -825,15 +824,6 @@ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
+@@ -827,15 +826,6 @@ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
  EXPORT_SYMBOL(find_vma);
  
  /*
@@ -72661,7 +73046,7 @@ index 4358032..e79b99f 100644
   * expand a stack to a given address
   * - not supported under NOMMU conditions
   */
-@@ -1553,6 +1543,7 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -1580,6 +1570,7 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
  
        /* most fields are the same, copy all, and then fixup */
        *new = *vma;
@@ -72669,24 +73054,11 @@ index 4358032..e79b99f 100644
        *region = *vma->vm_region;
        new->vm_region = region;
  
-diff --git a/mm/oom_kill.c b/mm/oom_kill.c
-index 626303b..e9a1785 100644
---- a/mm/oom_kill.c
-+++ b/mm/oom_kill.c
-@@ -162,7 +162,7 @@ static bool oom_unkillable_task(struct task_struct *p,
- unsigned int oom_badness(struct task_struct *p, struct mem_cgroup *mem,
-                     const nodemask_t *nodemask, unsigned long totalpages)
- {
--      int points;
-+      long points;
-       if (oom_unkillable_task(p, mem, nodemask))
-               return 0;
 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 6e8ecb6..d9e3d7a 100644
+index 918330f..ae99ae1 100644
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -340,7 +340,7 @@ out:
+@@ -335,7 +335,7 @@ out:
   * This usage means that zero-order pages may not be compound.
   */
  
@@ -72695,17 +73067,7 @@ index 6e8ecb6..d9e3d7a 100644
  {
        __free_pages_ok(page, compound_order(page));
  }
-@@ -355,8 +355,8 @@ void prep_compound_page(struct page *page, unsigned long order)
-       __SetPageHead(page);
-       for (i = 1; i < nr_pages; i++) {
-               struct page *p = page + i;
--
-               __SetPageTail(p);
-+              set_page_count(p, 0);
-               p->first_page = page;
-       }
- }
-@@ -653,6 +653,10 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
+@@ -692,6 +692,10 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
        int i;
        int bad = 0;
  
@@ -72713,10 +73075,10 @@ index 6e8ecb6..d9e3d7a 100644
 +      unsigned long index = 1UL << order;
 +#endif
 +
-       trace_mm_page_free_direct(page, order);
+       trace_mm_page_free(page, order);
        kmemcheck_free_shadow(page, order);
  
-@@ -668,6 +672,12 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
+@@ -707,6 +711,12 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
                debug_check_no_obj_freed(page_address(page),
                                           PAGE_SIZE << order);
        }
@@ -72729,7 +73091,7 @@ index 6e8ecb6..d9e3d7a 100644
        arch_free_page(page, order);
        kernel_map_pages(page, 1 << order, 0);
  
-@@ -783,8 +793,10 @@ static int prep_new_page(struct page *page, int order, gfp_t gfp_flags)
+@@ -830,8 +840,10 @@ static int prep_new_page(struct page *page, int order, gfp_t gfp_flags)
        arch_alloc_page(page, order);
        kernel_map_pages(page, 1 << order, 1);
  
@@ -72740,16 +73102,7 @@ index 6e8ecb6..d9e3d7a 100644
  
        if (order && (gfp_flags & __GFP_COMP))
                prep_compound_page(page, order);
-@@ -2539,6 +2551,8 @@ void show_free_areas(unsigned int filter)
-       int cpu;
-       struct zone *zone;
-+      pax_track_stack();
-+
-       for_each_populated_zone(zone) {
-               if (skip_free_areas_node(filter, zone_to_nid(zone)))
-                       continue;
-@@ -3350,7 +3364,13 @@ static int pageblock_is_reserved(unsigned long start_pfn, unsigned long end_pfn)
+@@ -3523,7 +3535,13 @@ static int pageblock_is_reserved(unsigned long start_pfn, unsigned long end_pfn)
        unsigned long pfn;
  
        for (pfn = start_pfn; pfn < end_pfn; pfn++) {
@@ -72763,20 +73116,12 @@ index 6e8ecb6..d9e3d7a 100644
                        return 1;
        }
        return 0;
-@@ -3373,6 +3393,7 @@ static void setup_zone_migrate_reserve(struct zone *zone)
-       /* Get the start pfn, end pfn and the number of blocks to reserve */
-       start_pfn = zone->zone_start_pfn;
-       end_pfn = start_pfn + zone->spanned_pages;
-+      start_pfn = roundup(start_pfn, pageblock_nr_pages);
-       reserve = roundup(min_wmark_pages(zone), pageblock_nr_pages) >>
-                                                       pageblock_order;
 diff --git a/mm/percpu.c b/mm/percpu.c
-index bf80e55..c7c3f9a 100644
+index bb4be74..a43ea85 100644
 --- a/mm/percpu.c
 +++ b/mm/percpu.c
-@@ -121,7 +121,7 @@ static unsigned int pcpu_first_unit_cpu __read_mostly;
- static unsigned int pcpu_last_unit_cpu __read_mostly;
+@@ -122,7 +122,7 @@ static unsigned int pcpu_low_unit_cpu __read_mostly;
+ static unsigned int pcpu_high_unit_cpu __read_mostly;
  
  /* the address of the first chunk which starts with the kernel static area */
 -void *pcpu_base_addr __read_mostly;
@@ -72784,11 +73129,62 @@ index bf80e55..c7c3f9a 100644
  EXPORT_SYMBOL_GPL(pcpu_base_addr);
  
  static const int *pcpu_unit_map __read_mostly;                /* cpu -> unit */
+diff --git a/mm/process_vm_access.c b/mm/process_vm_access.c
+index c20ff48..137702a 100644
+--- a/mm/process_vm_access.c
++++ b/mm/process_vm_access.c
+@@ -13,6 +13,7 @@
+ #include <linux/uio.h>
+ #include <linux/sched.h>
+ #include <linux/highmem.h>
++#include <linux/security.h>
+ #include <linux/ptrace.h>
+ #include <linux/slab.h>
+ #include <linux/syscalls.h>
+@@ -258,19 +259,19 @@ static ssize_t process_vm_rw_core(pid_t pid, const struct iovec *lvec,
+       size_t iov_l_curr_offset = 0;
+       ssize_t iov_len;
++      return -ENOSYS; // PaX: until properly audited
++
+       /*
+        * Work out how many pages of struct pages we're going to need
+        * when eventually calling get_user_pages
+        */
+       for (i = 0; i < riovcnt; i++) {
+               iov_len = rvec[i].iov_len;
+-              if (iov_len > 0) {
+-                      nr_pages_iov = ((unsigned long)rvec[i].iov_base
+-                                      + iov_len)
+-                              / PAGE_SIZE - (unsigned long)rvec[i].iov_base
+-                              / PAGE_SIZE + 1;
+-                      nr_pages = max(nr_pages, nr_pages_iov);
+-              }
++              if (iov_len <= 0)
++                      continue;
++              nr_pages_iov = ((unsigned long)rvec[i].iov_base + iov_len) / PAGE_SIZE -
++                              (unsigned long)rvec[i].iov_base / PAGE_SIZE + 1;
++              nr_pages = max(nr_pages, nr_pages_iov);
+       }
+       if (nr_pages == 0)
+@@ -298,6 +299,11 @@ static ssize_t process_vm_rw_core(pid_t pid, const struct iovec *lvec,
+               goto free_proc_pages;
+       }
++      if (gr_handle_ptrace(task, vm_write ? PTRACE_POKETEXT : PTRACE_ATTACH)) {
++              rc = -EPERM;
++              goto put_task_struct;
++      }
++
+       mm = mm_access(task, PTRACE_MODE_ATTACH);
+       if (!mm || IS_ERR(mm)) {
+               rc = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
 diff --git a/mm/rmap.c b/mm/rmap.c
-index 8005080..198c2cd 100644
+index 5b5ad58..0f77903 100644
 --- a/mm/rmap.c
 +++ b/mm/rmap.c
-@@ -152,6 +152,10 @@ int anon_vma_prepare(struct vm_area_struct *vma)
+@@ -167,6 +167,10 @@ int anon_vma_prepare(struct vm_area_struct *vma)
        struct anon_vma *anon_vma = vma->anon_vma;
        struct anon_vma_chain *avc;
  
@@ -72799,7 +73195,7 @@ index 8005080..198c2cd 100644
        might_sleep();
        if (unlikely(!anon_vma)) {
                struct mm_struct *mm = vma->vm_mm;
-@@ -161,6 +165,12 @@ int anon_vma_prepare(struct vm_area_struct *vma)
+@@ -176,6 +180,12 @@ int anon_vma_prepare(struct vm_area_struct *vma)
                if (!avc)
                        goto out_enomem;
  
@@ -72812,7 +73208,7 @@ index 8005080..198c2cd 100644
                anon_vma = find_mergeable_anon_vma(vma);
                allocated = NULL;
                if (!anon_vma) {
-@@ -174,6 +184,21 @@ int anon_vma_prepare(struct vm_area_struct *vma)
+@@ -189,6 +199,18 @@ int anon_vma_prepare(struct vm_area_struct *vma)
                /* page_table_lock to protect against threads */
                spin_lock(&mm->page_table_lock);
                if (likely(!vma->anon_vma)) {
@@ -72823,18 +73219,15 @@ index 8005080..198c2cd 100644
 +                      if (vma_m) {
 +                              BUG_ON(vma_m->anon_vma);
 +                              vma_m->anon_vma = anon_vma;
-+                              avc_m->anon_vma = anon_vma;
-+                              avc_m->vma = vma;
-+                              list_add(&avc_m->same_vma, &vma_m->anon_vma_chain);
-+                              list_add(&avc_m->same_anon_vma, &anon_vma->head);
++                              anon_vma_chain_link(vma_m, avc_m, anon_vma);
 +                              avc_m = NULL;
 +                      }
 +#endif
 +
                        vma->anon_vma = anon_vma;
-                       avc->anon_vma = anon_vma;
-                       avc->vma = vma;
-@@ -187,12 +212,24 @@ int anon_vma_prepare(struct vm_area_struct *vma)
+                       anon_vma_chain_link(vma, avc, anon_vma);
+                       allocated = NULL;
+@@ -199,12 +221,24 @@ int anon_vma_prepare(struct vm_area_struct *vma)
  
                if (unlikely(allocated))
                        put_anon_vma(allocated);
@@ -72859,7 +73252,7 @@ index 8005080..198c2cd 100644
        anon_vma_chain_free(avc);
   out_enomem:
        return -ENOMEM;
-@@ -243,7 +280,7 @@ static void anon_vma_chain_link(struct vm_area_struct *vma,
+@@ -240,7 +274,7 @@ static inline void unlock_anon_vma_root(struct anon_vma *root)
   * Attach the anon_vmas from src to dst.
   * Returns 0 on success, -ENOMEM on failure.
   */
@@ -72868,7 +73261,7 @@ index 8005080..198c2cd 100644
  {
        struct anon_vma_chain *avc, *pavc;
        struct anon_vma *root = NULL;
-@@ -276,7 +313,7 @@ int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src)
+@@ -318,7 +352,7 @@ void anon_vma_moveto_tail(struct vm_area_struct *dst)
   * the corresponding VMA in the parent process is attached to.
   * Returns 0 on success, non-zero on failure.
   */
@@ -72878,11 +73271,11 @@ index 8005080..198c2cd 100644
        struct anon_vma_chain *avc;
        struct anon_vma *anon_vma;
 diff --git a/mm/shmem.c b/mm/shmem.c
-index 32f6763..431c405 100644
+index 9d65a02..7c877e7 100644
 --- a/mm/shmem.c
 +++ b/mm/shmem.c
 @@ -31,7 +31,7 @@
- #include <linux/module.h>
+ #include <linux/export.h>
  #include <linux/swap.h>
  
 -static struct vfsmount *shm_mnt;
@@ -72899,16 +73292,7 @@ index 32f6763..431c405 100644
  
  struct shmem_xattr {
        struct list_head list;  /* anchored by shmem_inode_info->xattr_list */
-@@ -769,6 +769,8 @@ static struct page *shmem_swapin(swp_entry_t swap, gfp_t gfp,
-       struct mempolicy mpol, *spol;
-       struct vm_area_struct pvma;
-+      pax_track_stack();
-+
-       spol = mpol_cond_copy(&mpol,
-                       mpol_shared_policy_lookup(&info->policy, index));
-@@ -2149,8 +2151,7 @@ int shmem_fill_super(struct super_block *sb, void *data, int silent)
+@@ -2236,8 +2236,7 @@ int shmem_fill_super(struct super_block *sb, void *data, int silent)
        int err = -ENOMEM;
  
        /* Round up to L1_CACHE_BYTES to resist false sharing */
@@ -72919,10 +73303,10 @@ index 32f6763..431c405 100644
                return -ENOMEM;
  
 diff --git a/mm/slab.c b/mm/slab.c
-index 893c76d..a742de2 100644
+index e901a36..ca479fc 100644
 --- a/mm/slab.c
 +++ b/mm/slab.c
-@@ -151,7 +151,7 @@
+@@ -153,7 +153,7 @@
  
  /* Legal flag mask for kmem_cache_create(). */
  #if DEBUG
@@ -72931,7 +73315,7 @@ index 893c76d..a742de2 100644
                         SLAB_POISON | SLAB_HWCACHE_ALIGN | \
                         SLAB_CACHE_DMA | \
                         SLAB_STORE_USER | \
-@@ -159,7 +159,7 @@
+@@ -161,7 +161,7 @@
                         SLAB_DESTROY_BY_RCU | SLAB_MEM_SPREAD | \
                         SLAB_DEBUG_OBJECTS | SLAB_NOLEAKTRACE | SLAB_NOTRACK)
  #else
@@ -72940,7 +73324,7 @@ index 893c76d..a742de2 100644
                         SLAB_CACHE_DMA | \
                         SLAB_RECLAIM_ACCOUNT | SLAB_PANIC | \
                         SLAB_DESTROY_BY_RCU | SLAB_MEM_SPREAD | \
-@@ -288,7 +288,7 @@ struct kmem_list3 {
+@@ -290,7 +290,7 @@ struct kmem_list3 {
   * Need this for bootstrapping a per node allocator.
   */
  #define NUM_INIT_LISTS (3 * MAX_NUMNODES)
@@ -72949,7 +73333,7 @@ index 893c76d..a742de2 100644
  #define       CACHE_CACHE 0
  #define       SIZE_AC MAX_NUMNODES
  #define       SIZE_L3 (2 * MAX_NUMNODES)
-@@ -389,10 +389,10 @@ static void kmem_list3_init(struct kmem_list3 *parent)
+@@ -391,10 +391,10 @@ static void kmem_list3_init(struct kmem_list3 *parent)
                if ((x)->max_freeable < i)                              \
                        (x)->max_freeable = i;                          \
        } while (0)
@@ -72964,7 +73348,7 @@ index 893c76d..a742de2 100644
  #else
  #define       STATS_INC_ACTIVE(x)     do { } while (0)
  #define       STATS_DEC_ACTIVE(x)     do { } while (0)
-@@ -538,7 +538,7 @@ static inline void *index_to_obj(struct kmem_cache *cache, struct slab *slab,
+@@ -542,7 +542,7 @@ static inline void *index_to_obj(struct kmem_cache *cache, struct slab *slab,
   *   reciprocal_divide(offset, cache->reciprocal_buffer_size)
   */
  static inline unsigned int obj_to_index(const struct kmem_cache *cache,
@@ -72973,16 +73357,36 @@ index 893c76d..a742de2 100644
  {
        u32 offset = (obj - slab->s_mem);
        return reciprocal_divide(offset, cache->reciprocal_buffer_size);
-@@ -564,7 +564,7 @@ struct cache_names {
+@@ -563,12 +563,13 @@ EXPORT_SYMBOL(malloc_sizes);
+ struct cache_names {
+       char *name;
+       char *name_dma;
++      char *name_usercopy;
+ };
  static struct cache_names __initdata cache_names[] = {
- #define CACHE(x) { .name = "size-" #x, .name_dma = "size-" #x "(DMA)" },
+-#define CACHE(x) { .name = "size-" #x, .name_dma = "size-" #x "(DMA)" },
++#define CACHE(x) { .name = "size-" #x, .name_dma = "size-" #x "(DMA)", .name_usercopy = "size-" #x "(USERCOPY)" },
  #include <linux/kmalloc_sizes.h>
 -      {NULL,}
 +      {NULL}
  #undef CACHE
  };
  
-@@ -1572,7 +1572,7 @@ void __init kmem_cache_init(void)
+@@ -756,6 +757,12 @@ static inline struct kmem_cache *__find_general_cachep(size_t size,
+       if (unlikely(gfpflags & GFP_DMA))
+               return csizep->cs_dmacachep;
+ #endif
++
++#ifdef CONFIG_PAX_USERCOPY_SLABS
++      if (unlikely(gfpflags & GFP_USERCOPY))
++              return csizep->cs_usercopycachep;
++#endif
++
+       return csizep->cs_cachep;
+ }
+@@ -1588,7 +1595,7 @@ void __init kmem_cache_init(void)
        sizes[INDEX_AC].cs_cachep = kmem_cache_create(names[INDEX_AC].name,
                                        sizes[INDEX_AC].cs_size,
                                        ARCH_KMALLOC_MINALIGN,
@@ -72991,7 +73395,7 @@ index 893c76d..a742de2 100644
                                        NULL);
  
        if (INDEX_AC != INDEX_L3) {
-@@ -1580,7 +1580,7 @@ void __init kmem_cache_init(void)
+@@ -1596,7 +1603,7 @@ void __init kmem_cache_init(void)
                        kmem_cache_create(names[INDEX_L3].name,
                                sizes[INDEX_L3].cs_size,
                                ARCH_KMALLOC_MINALIGN,
@@ -73000,7 +73404,7 @@ index 893c76d..a742de2 100644
                                NULL);
        }
  
-@@ -1598,7 +1598,7 @@ void __init kmem_cache_init(void)
+@@ -1614,7 +1621,7 @@ void __init kmem_cache_init(void)
                        sizes->cs_cachep = kmem_cache_create(names->name,
                                        sizes->cs_size,
                                        ARCH_KMALLOC_MINALIGN,
@@ -73009,7 +73413,24 @@ index 893c76d..a742de2 100644
                                        NULL);
                }
  #ifdef CONFIG_ZONE_DMA
-@@ -4327,10 +4327,10 @@ static int s_show(struct seq_file *m, void *p)
+@@ -1626,6 +1633,16 @@ void __init kmem_cache_init(void)
+                                               SLAB_PANIC,
+                                       NULL);
+ #endif
++
++#ifdef CONFIG_PAX_USERCOPY_SLABS
++              sizes->cs_usercopycachep = kmem_cache_create(
++                                      names->name_usercopy,
++                                      sizes->cs_size,
++                                      ARCH_KMALLOC_MINALIGN,
++                                      ARCH_KMALLOC_FLAGS|SLAB_PANIC|SLAB_USERCOPY,
++                                      NULL);
++#endif
++
+               sizes++;
+               names++;
+       }
+@@ -4390,10 +4407,10 @@ static int s_show(struct seq_file *m, void *p)
        }
        /* cpu stats */
        {
@@ -73024,81 +73445,78 @@ index 893c76d..a742de2 100644
  
                seq_printf(m, " : cpustat %6lu %6lu %6lu %6lu",
                           allochit, allocmiss, freehit, freemiss);
-@@ -4587,15 +4587,70 @@ static const struct file_operations proc_slabstats_operations = {
- static int __init slab_proc_init(void)
+@@ -4652,13 +4669,68 @@ static int __init slab_proc_init(void)
  {
--      proc_create("slabinfo",S_IWUSR|S_IRUGO,NULL,&proc_slabinfo_operations);
-+      mode_t gr_mode = S_IRUGO;
-+
-+#ifdef CONFIG_GRKERNSEC_PROC_ADD
-+      gr_mode = S_IRUSR;
-+#endif
-+
-+      proc_create("slabinfo",S_IWUSR|gr_mode,NULL,&proc_slabinfo_operations);
+       proc_create("slabinfo",S_IWUSR|S_IRUSR,NULL,&proc_slabinfo_operations);
  #ifdef CONFIG_DEBUG_SLAB_LEAK
 -      proc_create("slab_allocators", 0, NULL, &proc_slabstats_operations);
-+      proc_create("slab_allocators", gr_mode, NULL, &proc_slabstats_operations);
++      proc_create("slab_allocators", S_IRUSR, NULL, &proc_slabstats_operations);
  #endif
        return 0;
  }
  module_init(slab_proc_init);
  #endif
  
-+void check_object_size(const void *ptr, unsigned long n, bool to)
++bool is_usercopy_object(const void *ptr)
 +{
++      struct page *page;
++      struct kmem_cache *cachep;
++
++      if (ZERO_OR_NULL_PTR(ptr))
++              return false;
++
++      if (!virt_addr_valid(ptr))
++              return false;
++
++      page = virt_to_head_page(ptr);
++
++      if (!PageSlab(page))
++              return false;
++
++      cachep = page_get_cache(page);
++      return cachep->flags & SLAB_USERCOPY;
++}
 +
 +#ifdef CONFIG_PAX_USERCOPY
++const char *check_heap_object(const void *ptr, unsigned long n, bool to)
++{
 +      struct page *page;
-+      struct kmem_cache *cachep = NULL;
++      struct kmem_cache *cachep;
 +      struct slab *slabp;
 +      unsigned int objnr;
 +      unsigned long offset;
-+      const char *type;
-+
-+      if (!n)
-+              return;
 +
-+      type = "<null>";
 +      if (ZERO_OR_NULL_PTR(ptr))
-+              goto report;
++              return "<null>";
 +
 +      if (!virt_addr_valid(ptr))
-+              return;
++              return NULL;
 +
 +      page = virt_to_head_page(ptr);
 +
-+      type = "<process stack>";
-+      if (!PageSlab(page)) {
-+              if (object_is_on_stack(ptr, n) == -1)
-+                      goto report;
-+              return;
-+      }
++      if (!PageSlab(page))
++              return NULL;
 +
 +      cachep = page_get_cache(page);
-+      type = cachep->name;
 +      if (!(cachep->flags & SLAB_USERCOPY))
-+              goto report;
++              return cachep->name;
 +
 +      slabp = page_get_slab(page);
 +      objnr = obj_to_index(cachep, slabp, ptr);
 +      BUG_ON(objnr >= cachep->num);
 +      offset = ptr - index_to_obj(cachep, slabp, objnr) - obj_offset(cachep);
 +      if (offset <= obj_size(cachep) && n <= obj_size(cachep) - offset)
-+              return;
-+
-+report:
-+      pax_report_usercopy(ptr, n, to, type);
-+#endif
++              return NULL;
 +
++      return cachep->name;
 +}
-+EXPORT_SYMBOL(check_object_size);
++#endif
 +
  /**
   * ksize - get the actual amount of memory allocated for a given object
   * @objp: Pointer to the object
 diff --git a/mm/slob.c b/mm/slob.c
-index bf39181..727f7a3 100644
+index 8105be4..3c15e57 100644
 --- a/mm/slob.c
 +++ b/mm/slob.c
 @@ -29,7 +29,7 @@
@@ -73249,7 +73667,7 @@ index bf39181..727f7a3 100644
        return ret;
  }
  EXPORT_SYMBOL(__kmalloc_node);
-@@ -533,13 +547,92 @@ void kfree(const void *block)
+@@ -533,13 +547,83 @@ void kfree(const void *block)
        sp = slob_page(block);
        if (is_slob_page(sp)) {
                int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
@@ -73267,40 +73685,34 @@ index bf39181..727f7a3 100644
  }
  EXPORT_SYMBOL(kfree);
  
-+void check_object_size(const void *ptr, unsigned long n, bool to)
++bool is_usercopy_object(const void *ptr)
 +{
++      return false;
++}
 +
 +#ifdef CONFIG_PAX_USERCOPY
++const char *check_heap_object(const void *ptr, unsigned long n, bool to)
++{
 +      struct slob_page *sp;
 +      const slob_t *free;
 +      const void *base;
 +      unsigned long flags;
-+      const char *type;
 +
-+      if (!n)
-+              return;
-+
-+      type = "<null>";
 +      if (ZERO_OR_NULL_PTR(ptr))
-+              goto report;
++              return "<null>";
 +
 +      if (!virt_addr_valid(ptr))
-+              return;
++              return NULL;
 +
-+      type = "<process stack>";
 +      sp = slob_page(ptr);
-+      if (!PageSlab((struct page*)sp)) {
-+              if (object_is_on_stack(ptr, n) == -1)
-+                      goto report;
-+              return;
-+      }
++      if (!PageSlab((struct page *)sp))
++              return NULL;
 +
-+      type = "<slob>";
 +      if (sp->size) {
 +              base = page_address(&sp->page);
 +              if (base <= ptr && n <= sp->size - (ptr - base))
-+                      return;
-+              goto report;
++                      return NULL;
++              return "<slob>";
 +      }
 +
 +      /* some tricky double walking to find the chunk */
@@ -73331,21 +73743,18 @@ index bf39181..727f7a3 100644
 +                      break;
 +
 +              spin_unlock_irqrestore(&slob_lock, flags);
-+              return;
++              return NULL;
 +      }
 +
 +      spin_unlock_irqrestore(&slob_lock, flags);
-+report:
-+      pax_report_usercopy(ptr, n, to, type);
-+#endif
-+
++      return "<slob>";
 +}
-+EXPORT_SYMBOL(check_object_size);
++#endif
 +
  /* can't use ksize for kmem_cache_alloc memory, only kmalloc */
  size_t ksize(const void *block)
  {
-@@ -552,10 +645,10 @@ size_t ksize(const void *block)
+@@ -552,10 +636,10 @@ size_t ksize(const void *block)
        sp = slob_page(block);
        if (is_slob_page(sp)) {
                int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
@@ -73359,11 +73768,11 @@ index bf39181..727f7a3 100644
  }
  EXPORT_SYMBOL(ksize);
  
-@@ -571,8 +664,13 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
+@@ -571,8 +655,13 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
  {
        struct kmem_cache *c;
  
-+#ifdef CONFIG_PAX_USERCOPY
++#ifdef CONFIG_PAX_USERCOPY_SLABS
 +      c = __kmalloc_node_align(sizeof(struct kmem_cache),
 +              GFP_KERNEL, -1, ARCH_KMALLOC_MINALIGN);
 +#else
@@ -73373,11 +73782,11 @@ index bf39181..727f7a3 100644
  
        if (c) {
                c->name = name;
-@@ -614,17 +712,25 @@ void *kmem_cache_alloc_node(struct kmem_cache *c, gfp_t flags, int node)
+@@ -614,17 +703,25 @@ void *kmem_cache_alloc_node(struct kmem_cache *c, gfp_t flags, int node)
  
        lockdep_trace_alloc(flags);
  
-+#ifdef CONFIG_PAX_USERCOPY
++#ifdef CONFIG_PAX_USERCOPY_SLABS
 +      b = __kmalloc_node_align(c->size, flags, node, c->align);
 +#else
        if (c->size < PAGE_SIZE) {
@@ -73399,7 +73808,7 @@ index bf39181..727f7a3 100644
  
        if (c->ctor)
                c->ctor(b);
-@@ -636,10 +742,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node);
+@@ -636,10 +733,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node);
  
  static void __kmem_cache_free(void *b, int size)
  {
@@ -73418,13 +73827,13 @@ index bf39181..727f7a3 100644
  }
  
  static void kmem_rcu_free(struct rcu_head *head)
-@@ -652,17 +764,31 @@ static void kmem_rcu_free(struct rcu_head *head)
+@@ -652,17 +755,31 @@ static void kmem_rcu_free(struct rcu_head *head)
  
  void kmem_cache_free(struct kmem_cache *c, void *b)
  {
 +      int size = c->size;
 +
-+#ifdef CONFIG_PAX_USERCOPY
++#ifdef CONFIG_PAX_USERCOPY_SLABS
 +      if (size + c->align < PAGE_SIZE) {
 +              size += c->align;
 +              b -= c->align;
@@ -73444,7 +73853,7 @@ index bf39181..727f7a3 100644
 +              __kmem_cache_free(b, size);
        }
  
-+#ifdef CONFIG_PAX_USERCOPY
++#ifdef CONFIG_PAX_USERCOPY_SLABS
 +      trace_kfree(_RET_IP_, b);
 +#else
        trace_kmem_cache_free(_RET_IP_, b);
@@ -73454,10 +73863,10 @@ index bf39181..727f7a3 100644
  EXPORT_SYMBOL(kmem_cache_free);
  
 diff --git a/mm/slub.c b/mm/slub.c
-index 7c54fe8..0bb4ac5 100644
+index 71de9b5..a93d4a4 100644
 --- a/mm/slub.c
 +++ b/mm/slub.c
-@@ -208,7 +208,7 @@ struct track {
+@@ -209,7 +209,7 @@ struct track {
  
  enum track_item { TRACK_ALLOC, TRACK_FREE };
  
@@ -73466,7 +73875,7 @@ index 7c54fe8..0bb4ac5 100644
  static int sysfs_slab_add(struct kmem_cache *);
  static int sysfs_slab_alias(struct kmem_cache *, const char *);
  static void sysfs_slab_remove(struct kmem_cache *);
-@@ -556,7 +556,7 @@ static void print_track(const char *s, struct track *t)
+@@ -538,7 +538,7 @@ static void print_track(const char *s, struct track *t)
        if (!t->addr)
                return;
  
@@ -73475,7 +73884,7 @@ index 7c54fe8..0bb4ac5 100644
                s, (void *)t->addr, jiffies - t->when, t->cpu, t->pid);
  #ifdef CONFIG_STACKTRACE
        {
-@@ -2456,6 +2456,8 @@ void kmem_cache_free(struct kmem_cache *s, void *x)
+@@ -2603,6 +2603,8 @@ void kmem_cache_free(struct kmem_cache *s, void *x)
  
        page = virt_to_head_page(x);
  
@@ -73484,7 +73893,7 @@ index 7c54fe8..0bb4ac5 100644
        slab_free(s, page, x, _RET_IP_);
  
        trace_kmem_cache_free(_RET_IP_, x);
-@@ -2489,7 +2491,7 @@ static int slub_min_objects;
+@@ -2636,7 +2638,7 @@ static int slub_min_objects;
   * Merge control. If this is set then no merging of slab caches will occur.
   * (Could be removed. This was introduced to pacify the merge skeptics.)
   */
@@ -73493,16 +73902,16 @@ index 7c54fe8..0bb4ac5 100644
  
  /*
   * Calculate the order of allocation given an slab object size.
-@@ -2912,7 +2914,7 @@ static int kmem_cache_open(struct kmem_cache *s,
-        * list to avoid pounding the page allocator excessively.
-        */
-       set_min_partial(s, ilog2(s->size));
+@@ -3089,7 +3091,7 @@ static int kmem_cache_open(struct kmem_cache *s,
+       else
+               s->cpu_partial = 30;
 -      s->refcount = 1;
 +      atomic_set(&s->refcount, 1);
  #ifdef CONFIG_NUMA
        s->remote_node_defrag_ratio = 1000;
  #endif
-@@ -3017,8 +3019,7 @@ static inline int kmem_cache_close(struct kmem_cache *s)
+@@ -3193,8 +3195,7 @@ static inline int kmem_cache_close(struct kmem_cache *s)
  void kmem_cache_destroy(struct kmem_cache *s)
  {
        down_write(&slub_lock);
@@ -73510,60 +73919,91 @@ index 7c54fe8..0bb4ac5 100644
 -      if (!s->refcount) {
 +      if (atomic_dec_and_test(&s->refcount)) {
                list_del(&s->list);
+               up_write(&slub_lock);
                if (kmem_cache_close(s)) {
-                       printk(KERN_ERR "SLUB %s: %s called for cache that "
-@@ -3228,6 +3229,50 @@ void *__kmalloc_node(size_t size, gfp_t flags, int node)
+@@ -3223,6 +3224,10 @@ static struct kmem_cache *kmem_cache;
+ static struct kmem_cache *kmalloc_dma_caches[SLUB_PAGE_SHIFT];
+ #endif
++#ifdef CONFIG_PAX_USERCOPY_SLABS
++static struct kmem_cache *kmalloc_usercopy_caches[SLUB_PAGE_SHIFT];
++#endif
++
+ static int __init setup_slub_min_order(char *str)
+ {
+       get_option(&str, &slub_min_order);
+@@ -3337,6 +3342,13 @@ static struct kmem_cache *get_slab(size_t size, gfp_t flags)
+               return kmalloc_dma_caches[index];
+ #endif
++
++#ifdef CONFIG_PAX_USERCOPY_SLABS
++      if (flags & SLAB_USERCOPY)
++              return kmalloc_usercopy_caches[index];
++
++#endif
++
+       return kmalloc_caches[index];
+ }
+@@ -3405,6 +3417,56 @@ void *__kmalloc_node(size_t size, gfp_t flags, int node)
  EXPORT_SYMBOL(__kmalloc_node);
  #endif
  
-+void check_object_size(const void *ptr, unsigned long n, bool to)
++bool is_usercopy_object(const void *ptr)
 +{
++      struct page *page;
++      struct kmem_cache *s;
++
++      if (ZERO_OR_NULL_PTR(ptr))
++              return false;
++
++      if (!virt_addr_valid(ptr))
++              return false;
++
++      page = virt_to_head_page(ptr);
++
++      if (!PageSlab(page))
++              return false;
++
++      s = page->slab;
++      return s->flags & SLAB_USERCOPY;
++}
 +
 +#ifdef CONFIG_PAX_USERCOPY
++const char *check_heap_object(const void *ptr, unsigned long n, bool to)
++{
 +      struct page *page;
-+      struct kmem_cache *s = NULL;
++      struct kmem_cache *s;
 +      unsigned long offset;
-+      const char *type;
-+
-+      if (!n)
-+              return;
 +
-+      type = "<null>";
 +      if (ZERO_OR_NULL_PTR(ptr))
-+              goto report;
++              return "<null>";
 +
 +      if (!virt_addr_valid(ptr))
-+              return;
++              return NULL;
 +
 +      page = virt_to_head_page(ptr);
 +
-+      type = "<process stack>";
-+      if (!PageSlab(page)) {
-+              if (object_is_on_stack(ptr, n) == -1)
-+                      goto report;
-+              return;
-+      }
++      if (!PageSlab(page))
++              return NULL;
 +
 +      s = page->slab;
-+      type = s->name;
 +      if (!(s->flags & SLAB_USERCOPY))
-+              goto report;
++              return s->name;
 +
 +      offset = (ptr - page_address(page)) % s->size;
 +      if (offset <= s->objsize && n <= s->objsize - offset)
-+              return;
-+
-+report:
-+      pax_report_usercopy(ptr, n, to, type);
-+#endif
++              return NULL;
 +
++      return s->name;
 +}
-+EXPORT_SYMBOL(check_object_size);
++#endif
 +
  size_t ksize(const void *object)
  {
        struct page *page;
-@@ -3502,7 +3547,7 @@ static void __init kmem_cache_bootstrap_fixup(struct kmem_cache *s)
+@@ -3679,7 +3741,7 @@ static void __init kmem_cache_bootstrap_fixup(struct kmem_cache *s)
        int node;
  
        list_add(&s->list, &slab_caches);
@@ -73572,7 +74012,7 @@ index 7c54fe8..0bb4ac5 100644
  
        for_each_node_state(node, N_NORMAL_MEMORY) {
                struct kmem_cache_node *n = get_node(s, node);
-@@ -3619,17 +3664,17 @@ void __init kmem_cache_init(void)
+@@ -3799,17 +3861,17 @@ void __init kmem_cache_init(void)
  
        /* Caches that are not of the two-to-the-power-of size */
        if (KMALLOC_MIN_SIZE <= 32) {
@@ -73593,7 +74033,30 @@ index 7c54fe8..0bb4ac5 100644
                caches++;
        }
  
-@@ -3697,7 +3742,7 @@ static int slab_unmergeable(struct kmem_cache *s)
+@@ -3851,6 +3913,22 @@ void __init kmem_cache_init(void)
+               }
+       }
+ #endif
++
++#ifdef CONFIG_PAX_USERCOPY_SLABS
++      for (i = 0; i < SLUB_PAGE_SHIFT; i++) {
++              struct kmem_cache *s = kmalloc_caches[i];
++
++              if (s && s->size) {
++                      char *name = kasprintf(GFP_NOWAIT,
++                               "usercopy-kmalloc-%d", s->objsize);
++
++                      BUG_ON(!name);
++                      kmalloc_usercopy_caches[i] = create_kmalloc_cache(name,
++                              s->objsize, SLAB_USERCOPY);
++              }
++      }
++#endif
++
+       printk(KERN_INFO
+               "SLUB: Genslabs=%d, HWalign=%d, Order=%d-%d, MinObjects=%d,"
+               " CPUs=%d, Nodes=%d\n",
+@@ -3877,7 +3955,7 @@ static int slab_unmergeable(struct kmem_cache *s)
        /*
         * We may have set a slab to be unmergeable during bootstrap.
         */
@@ -73602,7 +74065,7 @@ index 7c54fe8..0bb4ac5 100644
                return 1;
  
        return 0;
-@@ -3756,7 +3801,7 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
+@@ -3936,7 +4014,7 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
        down_write(&slub_lock);
        s = find_mergeable(size, align, flags, name, ctor);
        if (s) {
@@ -73611,7 +74074,7 @@ index 7c54fe8..0bb4ac5 100644
                /*
                 * Adjust the object sizes so that we clear
                 * the complete object on kzalloc.
-@@ -3765,7 +3810,7 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
+@@ -3945,7 +4023,7 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
                s->inuse = max_t(int, s->inuse, ALIGN(size, sizeof(void *)));
  
                if (sysfs_slab_alias(s, name)) {
@@ -73620,7 +74083,7 @@ index 7c54fe8..0bb4ac5 100644
                        goto err;
                }
                up_write(&slub_lock);
-@@ -3893,7 +3938,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
+@@ -4074,7 +4152,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
  }
  #endif
  
@@ -73629,7 +74092,7 @@ index 7c54fe8..0bb4ac5 100644
  static int count_inuse(struct page *page)
  {
        return page->inuse;
-@@ -4280,12 +4325,12 @@ static void resiliency_test(void)
+@@ -4461,12 +4539,12 @@ static void resiliency_test(void)
        validate_slab_cache(kmalloc_caches[9]);
  }
  #else
@@ -73644,7 +74107,7 @@ index 7c54fe8..0bb4ac5 100644
  enum slab_stat_type {
        SL_ALL,                 /* All slabs */
        SL_PARTIAL,             /* Only partially allocated slabs */
-@@ -4495,7 +4540,7 @@ SLAB_ATTR_RO(ctor);
+@@ -4709,7 +4787,7 @@ SLAB_ATTR_RO(ctor);
  
  static ssize_t aliases_show(struct kmem_cache *s, char *buf)
  {
@@ -73653,7 +74116,7 @@ index 7c54fe8..0bb4ac5 100644
  }
  SLAB_ATTR_RO(aliases);
  
-@@ -5025,6 +5070,7 @@ static char *create_unique_id(struct kmem_cache *s)
+@@ -5280,6 +5358,7 @@ static char *create_unique_id(struct kmem_cache *s)
        return name;
  }
  
@@ -73661,7 +74124,7 @@ index 7c54fe8..0bb4ac5 100644
  static int sysfs_slab_add(struct kmem_cache *s)
  {
        int err;
-@@ -5087,6 +5133,7 @@ static void sysfs_slab_remove(struct kmem_cache *s)
+@@ -5342,6 +5421,7 @@ static void sysfs_slab_remove(struct kmem_cache *s)
        kobject_del(&s->kobj);
        kobject_put(&s->kobj);
  }
@@ -73669,7 +74132,7 @@ index 7c54fe8..0bb4ac5 100644
  
  /*
   * Need to buffer aliases during bootup until sysfs becomes
-@@ -5100,6 +5147,7 @@ struct saved_alias {
+@@ -5355,6 +5435,7 @@ struct saved_alias {
  
  static struct saved_alias *alias_list;
  
@@ -73677,7 +74140,7 @@ index 7c54fe8..0bb4ac5 100644
  static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
  {
        struct saved_alias *al;
-@@ -5122,6 +5170,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
+@@ -5377,6 +5458,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
        alias_list = al;
        return 0;
  }
@@ -73685,26 +74148,33 @@ index 7c54fe8..0bb4ac5 100644
  
  static int __init slab_sysfs_init(void)
  {
-@@ -5257,7 +5306,13 @@ static const struct file_operations proc_slabinfo_operations = {
- static int __init slab_proc_init(void)
- {
--      proc_create("slabinfo", S_IRUGO, NULL, &proc_slabinfo_operations);
-+      mode_t gr_mode = S_IRUGO;
-+
-+#ifdef CONFIG_GRKERNSEC_PROC_ADD
-+      gr_mode = S_IRUSR;
-+#endif
-+
-+      proc_create("slabinfo", gr_mode, NULL, &proc_slabinfo_operations);
-       return 0;
+diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
+index 1b7e22a..3fcd4f3 100644
+--- a/mm/sparse-vmemmap.c
++++ b/mm/sparse-vmemmap.c
+@@ -128,7 +128,7 @@ pud_t * __meminit vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node)
+               void *p = vmemmap_alloc_block(PAGE_SIZE, node);
+               if (!p)
+                       return NULL;
+-              pud_populate(&init_mm, pud, p);
++              pud_populate_kernel(&init_mm, pud, p);
+       }
+       return pud;
+ }
+@@ -140,7 +140,7 @@ pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node)
+               void *p = vmemmap_alloc_block(PAGE_SIZE, node);
+               if (!p)
+                       return NULL;
+-              pgd_populate(&init_mm, pgd, p);
++              pgd_populate_kernel(&init_mm, pgd, p);
+       }
+       return pgd;
  }
- module_init(slab_proc_init);
 diff --git a/mm/swap.c b/mm/swap.c
-index 87627f1..8a9eb34 100644
+index 5c13f13..f1cfc13 100644
 --- a/mm/swap.c
 +++ b/mm/swap.c
-@@ -31,6 +31,7 @@
+@@ -30,6 +30,7 @@
  #include <linux/backing-dev.h>
  #include <linux/memcontrol.h>
  #include <linux/gfp.h>
@@ -73712,7 +74182,7 @@ index 87627f1..8a9eb34 100644
  
  #include "internal.h"
  
-@@ -71,6 +72,8 @@ static void __put_compound_page(struct page *page)
+@@ -70,6 +71,8 @@ static void __put_compound_page(struct page *page)
  
        __page_cache_release(page);
        dtor = get_compound_page_dtor(page);
@@ -73722,10 +74192,10 @@ index 87627f1..8a9eb34 100644
  }
  
 diff --git a/mm/swapfile.c b/mm/swapfile.c
-index 17bc224..1677059 100644
+index 38186d9..bfba6d3 100644
 --- a/mm/swapfile.c
 +++ b/mm/swapfile.c
-@@ -62,7 +62,7 @@ static DEFINE_MUTEX(swapon_mutex);
+@@ -61,7 +61,7 @@ static DEFINE_MUTEX(swapon_mutex);
  
  static DECLARE_WAIT_QUEUE_HEAD(proc_poll_wait);
  /* Activity counter to indicate that a swapon or swapoff has occurred */
@@ -73763,7 +74233,7 @@ index 17bc224..1677059 100644
        return 0;
  }
  
-@@ -2124,7 +2124,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
+@@ -2123,7 +2123,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
                (p->flags & SWP_DISCARDABLE) ? "D" : "");
  
        mutex_unlock(&swapon_mutex);
@@ -73773,26 +74243,10 @@ index 17bc224..1677059 100644
  
        if (S_ISREG(inode->i_mode))
 diff --git a/mm/util.c b/mm/util.c
-index 88ea1bd..0f1dfdb 100644
+index ae962b3..0bba886 100644
 --- a/mm/util.c
 +++ b/mm/util.c
-@@ -114,6 +114,7 @@ EXPORT_SYMBOL(memdup_user);
-  * allocated buffer. Use this if you don't want to free the buffer immediately
-  * like, for example, with RCU.
-  */
-+#undef __krealloc
- void *__krealloc(const void *p, size_t new_size, gfp_t flags)
- {
-       void *ret;
-@@ -147,6 +148,7 @@ EXPORT_SYMBOL(__krealloc);
-  * behaves exactly like kmalloc().  If @size is 0 and @p is not a
-  * %NULL pointer, the object pointed to is freed.
-  */
-+#undef krealloc
- void *krealloc(const void *p, size_t new_size, gfp_t flags)
- {
-       void *ret;
-@@ -243,6 +245,12 @@ void __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -284,6 +284,12 @@ done:
  void arch_pick_mmap_layout(struct mm_struct *mm)
  {
        mm->mmap_base = TASK_UNMAPPED_BASE;
@@ -73806,7 +74260,7 @@ index 88ea1bd..0f1dfdb 100644
        mm->unmap_area = arch_unmap_area;
  }
 diff --git a/mm/vmalloc.c b/mm/vmalloc.c
-index 56faf31..862c072 100644
+index 1196c77..2e608e8 100644
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
 @@ -39,8 +39,19 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
@@ -73875,6 +74329,24 @@ index 56faf31..862c072 100644
  }
  
  static int vmap_pmd_range(pud_t *pud, unsigned long addr,
+@@ -119,7 +144,7 @@ static int vmap_pmd_range(pud_t *pud, unsigned long addr,
+       pmd_t *pmd;
+       unsigned long next;
+-      pmd = pmd_alloc(&init_mm, pud, addr);
++      pmd = pmd_alloc_kernel(&init_mm, pud, addr);
+       if (!pmd)
+               return -ENOMEM;
+       do {
+@@ -136,7 +161,7 @@ static int vmap_pud_range(pgd_t *pgd, unsigned long addr,
+       pud_t *pud;
+       unsigned long next;
+-      pud = pud_alloc(&init_mm, pgd, addr);
++      pud = pud_alloc_kernel(&init_mm, pgd, addr);
+       if (!pud)
+               return -ENOMEM;
+       do {
 @@ -191,11 +216,20 @@ int is_vmalloc_or_module_addr(const void *x)
         * and fall back on vmalloc() if that fails. Others
         * just put it in the vmalloc space.
@@ -73912,7 +74384,18 @@ index 56faf31..862c072 100644
                        if (!pmd_none(*pmd)) {
                                pte_t *ptep, pte;
  
-@@ -1294,6 +1334,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
+@@ -332,6 +372,10 @@ static void purge_vmap_area_lazy(void);
+ static struct vmap_area *alloc_vmap_area(unsigned long size,
+                               unsigned long align,
+                               unsigned long vstart, unsigned long vend,
++                              int node, gfp_t gfp_mask) __size_overflow(1);
++static struct vmap_area *alloc_vmap_area(unsigned long size,
++                              unsigned long align,
++                              unsigned long vstart, unsigned long vend,
+                               int node, gfp_t gfp_mask)
+ {
+       struct vmap_area *va;
+@@ -1320,6 +1364,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
        struct vm_struct *area;
  
        BUG_ON(in_interrupt());
@@ -73929,7 +74412,7 @@ index 56faf31..862c072 100644
        if (flags & VM_IOREMAP) {
                int bit = fls(size);
  
-@@ -1526,6 +1576,11 @@ void *vmap(struct page **pages, unsigned int count,
+@@ -1552,6 +1606,11 @@ void *vmap(struct page **pages, unsigned int count,
        if (count > totalram_pages)
                return NULL;
  
@@ -73941,9 +74424,9 @@ index 56faf31..862c072 100644
        area = get_vm_area_caller((count << PAGE_SHIFT), flags,
                                        __builtin_return_address(0));
        if (!area)
-@@ -1627,6 +1682,13 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
+@@ -1653,6 +1712,13 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
        if (!size || (size >> PAGE_SHIFT) > totalram_pages)
-               return NULL;
+               goto fail;
  
 +#if defined(CONFIG_MODULES) && defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
 +      if (!(pgprot_val(prot) & _PAGE_NX))
@@ -73954,70 +74437,12 @@ index 56faf31..862c072 100644
 +
        area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNLIST,
                                  start, end, node, gfp_mask, caller);
-@@ -1634,6 +1696,8 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
-               return NULL;
-       addr = __vmalloc_area_node(area, gfp_mask, prot, node, caller);
-+      if (!addr)
-+              return NULL;
-       /*
-        * In this function, newly allocated vm_struct is not added
-@@ -1672,6 +1736,7 @@ static void *__vmalloc_node(unsigned long size, unsigned long align,
-                               gfp_mask, prot, node, caller);
- }
-+#undef __vmalloc
- void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot)
- {
-       return __vmalloc_node(size, 1, gfp_mask, prot, -1,
-@@ -1695,6 +1760,7 @@ static inline void *__vmalloc_node_flags(unsigned long size,
-  *    For tight control over page level allocator and protection flags
-  *    use __vmalloc() instead.
-  */
-+#undef vmalloc
- void *vmalloc(unsigned long size)
- {
-       return __vmalloc_node_flags(size, -1, GFP_KERNEL | __GFP_HIGHMEM);
-@@ -1711,6 +1777,7 @@ EXPORT_SYMBOL(vmalloc);
-  *    For tight control over page level allocator and protection flags
-  *    use __vmalloc() instead.
-  */
-+#undef vzalloc
- void *vzalloc(unsigned long size)
- {
-       return __vmalloc_node_flags(size, -1,
-@@ -1725,6 +1792,7 @@ EXPORT_SYMBOL(vzalloc);
-  * The resulting memory area is zeroed so it can be mapped to userspace
-  * without leaking data.
-  */
-+#undef vmalloc_user
- void *vmalloc_user(unsigned long size)
- {
-       struct vm_struct *area;
-@@ -1752,6 +1820,7 @@ EXPORT_SYMBOL(vmalloc_user);
-  *    For tight control over page level allocator and protection flags
-  *    use __vmalloc() instead.
-  */
-+#undef vmalloc_node
- void *vmalloc_node(unsigned long size, int node)
- {
-       return __vmalloc_node(size, 1, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL,
-@@ -1771,6 +1840,7 @@ EXPORT_SYMBOL(vmalloc_node);
-  * For tight control over page level allocator and protection flags
-  * use __vmalloc_node() instead.
-  */
-+#undef vzalloc_node
- void *vzalloc_node(unsigned long size, int node)
- {
-       return __vmalloc_node_flags(size, node,
-@@ -1793,10 +1863,10 @@ EXPORT_SYMBOL(vzalloc_node);
+       if (!area)
+@@ -1826,10 +1892,9 @@ EXPORT_SYMBOL(vzalloc_node);
   *    For tight control over page level allocator and protection flags
   *    use __vmalloc() instead.
   */
 -
-+#undef vmalloc_exec
  void *vmalloc_exec(unsigned long size)
  {
 -      return __vmalloc_node(size, 1, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC,
@@ -74025,23 +74450,7 @@ index 56faf31..862c072 100644
                              -1, __builtin_return_address(0));
  }
  
-@@ -1815,6 +1885,7 @@ void *vmalloc_exec(unsigned long size)
-  *    Allocate enough 32bit PA addressable pages to cover @size from the
-  *    page level allocator and map them into contiguous kernel virtual space.
-  */
-+#undef vmalloc_32
- void *vmalloc_32(unsigned long size)
- {
-       return __vmalloc_node(size, 1, GFP_VMALLOC32, PAGE_KERNEL,
-@@ -1829,6 +1900,7 @@ EXPORT_SYMBOL(vmalloc_32);
-  * The resulting memory area is 32bit addressable and zeroed so it can be
-  * mapped to userspace without leaking data.
-  */
-+#undef vmalloc_32_user
- void *vmalloc_32_user(unsigned long size)
- {
-       struct vm_struct *area;
-@@ -2091,6 +2163,8 @@ int remap_vmalloc_range(struct vm_area_struct *vma, void *addr,
+@@ -2124,6 +2189,8 @@ int remap_vmalloc_range(struct vm_area_struct *vma, void *addr,
        unsigned long uaddr = vma->vm_start;
        unsigned long usize = vma->vm_end - vma->vm_start;
  
@@ -74050,16 +74459,43 @@ index 56faf31..862c072 100644
        if ((PAGE_SIZE-1) & (unsigned long)addr)
                return -EINVAL;
  
+@@ -2376,8 +2443,8 @@ struct vm_struct **pcpu_get_vm_areas(const unsigned long *offsets,
+               return NULL;
+       }
+-      vms = kzalloc(sizeof(vms[0]) * nr_vms, GFP_KERNEL);
+-      vas = kzalloc(sizeof(vas[0]) * nr_vms, GFP_KERNEL);
++      vms = kcalloc(nr_vms, sizeof(vms[0]), GFP_KERNEL);
++      vas = kcalloc(nr_vms, sizeof(vas[0]), GFP_KERNEL);
+       if (!vas || !vms)
+               goto err_free2;
+diff --git a/mm/vmscan.c b/mm/vmscan.c
+index 4607cc6..be5bc0a 100644
+--- a/mm/vmscan.c
++++ b/mm/vmscan.c
+@@ -3013,7 +3013,10 @@ static void kswapd_try_to_sleep(pg_data_t *pgdat, int order, int classzone_idx)
+                * them before going back to sleep.
+                */
+               set_pgdat_percpu_threshold(pgdat, calculate_normal_threshold);
+-              schedule();
++
++              if (!kthread_should_stop())
++                      schedule();
++
+               set_pgdat_percpu_threshold(pgdat, calculate_pressure_threshold);
+       } else {
+               if (remaining)
 diff --git a/mm/vmstat.c b/mm/vmstat.c
-index d52b13d..381d1ac 100644
+index 7db1b9b..e9f6b07 100644
 --- a/mm/vmstat.c
 +++ b/mm/vmstat.c
 @@ -78,7 +78,7 @@ void vm_events_fold_cpu(int cpu)
   *
   * vm_stat contains the global counters
   */
--atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
-+atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
+-atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS] __cacheline_aligned_in_smp;
++atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS] __cacheline_aligned_in_smp;
  EXPORT_SYMBOL(vm_stat);
  
  #ifdef CONFIG_SMP
@@ -74081,7 +74517,7 @@ index d52b13d..381d1ac 100644
  }
  
  #endif
-@@ -1207,10 +1207,20 @@ static int __init setup_vmstat(void)
+@@ -1208,10 +1208,20 @@ static int __init setup_vmstat(void)
                start_cpu_timer(cpu);
  #endif
  #ifdef CONFIG_PROC_FS
@@ -74107,10 +74543,10 @@ index d52b13d..381d1ac 100644
        return 0;
  }
 diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
-index 8970ba1..e3361fe 100644
+index efea35b..9c8dd0b 100644
 --- a/net/8021q/vlan.c
 +++ b/net/8021q/vlan.c
-@@ -588,8 +588,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
+@@ -554,8 +554,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
                err = -EPERM;
                if (!capable(CAP_NET_ADMIN))
                        break;
@@ -74121,10 +74557,10 @@ index 8970ba1..e3361fe 100644
  
                        vn = net_generic(net, vlan_net_id);
 diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
-index fdfdb57..38d368c 100644
+index fccae26..e7ece2f 100644
 --- a/net/9p/trans_fd.c
 +++ b/net/9p/trans_fd.c
-@@ -423,7 +423,7 @@ static int p9_fd_write(struct p9_client *client, void *v, int len)
+@@ -425,7 +425,7 @@ static int p9_fd_write(struct p9_client *client, void *v, int len)
        oldfs = get_fs();
        set_fs(get_ds());
        /* The cast to a user pointer is valid due to the set_fs() */
@@ -74133,30 +74569,8 @@ index fdfdb57..38d368c 100644
        set_fs(oldfs);
  
        if (ret <= 0 && ret != -ERESTARTSYS && ret != -EAGAIN)
-diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
-index e317583..3c8aeaf 100644
---- a/net/9p/trans_virtio.c
-+++ b/net/9p/trans_virtio.c
-@@ -327,7 +327,7 @@ req_retry_pinned:
-               } else {
-                       char *pbuf;
-                       if (req->tc->pubuf)
--                              pbuf = (__force char *) req->tc->pubuf;
-+                              pbuf = (char __force_kernel *) req->tc->pubuf;
-                       else
-                               pbuf = req->tc->pkbuf;
-                       outp = pack_sg_list(chan->sg, out, VIRTQUEUE_NUM, pbuf,
-@@ -357,7 +357,7 @@ req_retry_pinned:
-               } else {
-                       char *pbuf;
-                       if (req->tc->pubuf)
--                              pbuf = (__force char *) req->tc->pubuf;
-+                              pbuf = (char __force_kernel *) req->tc->pubuf;
-                       else
-                               pbuf = req->tc->pkbuf;
 diff --git a/net/atm/atm_misc.c b/net/atm/atm_misc.c
-index f41f026..fe76ea8 100644
+index 876fbe8..8bbea9f 100644
 --- a/net/atm/atm_misc.c
 +++ b/net/atm/atm_misc.c
 @@ -17,7 +17,7 @@ int atm_charge(struct atm_vcc *vcc, int truesize)
@@ -74221,19 +74635,6 @@ index 0919a88..a23d54e 100644
  };
  
  
-diff --git a/net/atm/mpoa_caches.c b/net/atm/mpoa_caches.c
-index d1b2d9a..7cc2219 100644
---- a/net/atm/mpoa_caches.c
-+++ b/net/atm/mpoa_caches.c
-@@ -255,6 +255,8 @@ static void check_resolving_entries(struct mpoa_client *client)
-       struct timeval now;
-       struct k_message msg;
-+      pax_track_stack();
-+
-       do_gettimeofday(&now);
-       read_lock_bh(&client->ingress_lock);
 diff --git a/net/atm/proc.c b/net/atm/proc.c
 index 0d020de..011c7bb 100644
 --- a/net/atm/proc.c
@@ -74273,11 +74674,42 @@ index 23f45ce..c748f1a 100644
        __AAL_STAT_ITEMS
  #undef __HANDLE_ITEM
  }
+diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
+index a6d5d63..1cc6c2b 100644
+--- a/net/batman-adv/bat_iv_ogm.c
++++ b/net/batman-adv/bat_iv_ogm.c
+@@ -539,7 +539,7 @@ static void bat_iv_ogm_schedule(struct hard_iface *hard_iface,
+       /* change sequence number to network order */
+       batman_ogm_packet->seqno =
+-                      htonl((uint32_t)atomic_read(&hard_iface->seqno));
++                      htonl((uint32_t)atomic_read_unchecked(&hard_iface->seqno));
+       batman_ogm_packet->ttvn = atomic_read(&bat_priv->ttvn);
+       batman_ogm_packet->tt_crc = htons((uint16_t)
+@@ -559,7 +559,7 @@ static void bat_iv_ogm_schedule(struct hard_iface *hard_iface,
+       else
+               batman_ogm_packet->gw_flags = NO_FLAGS;
+-      atomic_inc(&hard_iface->seqno);
++      atomic_inc_unchecked(&hard_iface->seqno);
+       slide_own_bcast_window(hard_iface);
+       bat_iv_ogm_queue_add(bat_priv, hard_iface->packet_buff,
+@@ -917,7 +917,7 @@ static void bat_iv_ogm_process(const struct ethhdr *ethhdr,
+               return;
+       /* could be changed by schedule_own_packet() */
+-      if_incoming_seqno = atomic_read(&if_incoming->seqno);
++      if_incoming_seqno = atomic_read_unchecked(&if_incoming->seqno);
+       has_directlink_flag = (batman_ogm_packet->flags & DIRECTLINK ? 1 : 0);
 diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
-index db7aacf..991e539 100644
+index 3778977..f6a9450 100644
 --- a/net/batman-adv/hard-interface.c
 +++ b/net/batman-adv/hard-interface.c
-@@ -347,8 +347,8 @@ int hardif_enable_interface(struct hard_iface *hard_iface,
+@@ -328,8 +328,8 @@ int hardif_enable_interface(struct hard_iface *hard_iface,
        hard_iface->batman_adv_ptype.dev = hard_iface->net_dev;
        dev_add_pack(&hard_iface->batman_adv_ptype);
  
@@ -74288,46 +74720,11 @@ index db7aacf..991e539 100644
        bat_info(hard_iface->soft_iface, "Adding interface: %s\n",
                 hard_iface->net_dev->name);
  
-diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
-index 0f32c81..82d1895 100644
---- a/net/batman-adv/routing.c
-+++ b/net/batman-adv/routing.c
-@@ -656,7 +656,7 @@ void receive_bat_packet(const struct ethhdr *ethhdr,
-               return;
-       /* could be changed by schedule_own_packet() */
--      if_incoming_seqno = atomic_read(&if_incoming->seqno);
-+      if_incoming_seqno = atomic_read_unchecked(&if_incoming->seqno);
-       has_directlink_flag = (batman_packet->flags & DIRECTLINK ? 1 : 0);
-diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
-index 58d1447..2a66c8c 100644
---- a/net/batman-adv/send.c
-+++ b/net/batman-adv/send.c
-@@ -326,7 +326,7 @@ void schedule_own_packet(struct hard_iface *hard_iface)
-       /* change sequence number to network order */
-       batman_packet->seqno =
--              htonl((uint32_t)atomic_read(&hard_iface->seqno));
-+              htonl((uint32_t)atomic_read_unchecked(&hard_iface->seqno));
-       batman_packet->ttvn = atomic_read(&bat_priv->ttvn);
-       batman_packet->tt_crc = htons((uint16_t)atomic_read(&bat_priv->tt_crc));
-@@ -343,7 +343,7 @@ void schedule_own_packet(struct hard_iface *hard_iface)
-       else
-               batman_packet->gw_flags = NO_FLAGS;
--      atomic_inc(&hard_iface->seqno);
-+      atomic_inc_unchecked(&hard_iface->seqno);
-       slide_own_bcast_window(hard_iface);
-       send_time = own_send_time(bat_priv);
 diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
-index 05dd351..2ecd19b 100644
+index a5590f4..8d31969 100644
 --- a/net/batman-adv/soft-interface.c
 +++ b/net/batman-adv/soft-interface.c
-@@ -632,7 +632,7 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
+@@ -645,7 +645,7 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
  
                /* set broadcast sequence number */
                bcast_packet->seqno =
@@ -74336,7 +74733,7 @@ index 05dd351..2ecd19b 100644
  
                add_bcast_packet_to_list(bat_priv, skb, 1);
  
-@@ -824,7 +824,7 @@ struct net_device *softif_create(const char *name)
+@@ -841,7 +841,7 @@ struct net_device *softif_create(const char *name)
        atomic_set(&bat_priv->batman_queue_left, BATMAN_QUEUE_LEN);
  
        atomic_set(&bat_priv->mesh_state, MESH_INACTIVE);
@@ -74346,7 +74743,7 @@ index 05dd351..2ecd19b 100644
        atomic_set(&bat_priv->tt_local_changes, 0);
        atomic_set(&bat_priv->tt_ogm_append_cnt, 0);
 diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
-index 51a0db7..b8a62be 100644
+index 302efb5..1590365 100644
 --- a/net/batman-adv/types.h
 +++ b/net/batman-adv/types.h
 @@ -38,8 +38,8 @@ struct hard_iface {
@@ -74360,7 +74757,7 @@ index 51a0db7..b8a62be 100644
        unsigned char *packet_buff;
        int packet_len;
        struct kobject *hardif_obj;
-@@ -153,7 +153,7 @@ struct bat_priv {
+@@ -155,7 +155,7 @@ struct bat_priv {
        atomic_t orig_interval;         /* uint */
        atomic_t hop_penalty;           /* uint */
        atomic_t log_level;             /* uint */
@@ -74368,9 +74765,9 @@ index 51a0db7..b8a62be 100644
 +      atomic_unchecked_t bcast_seqno;
        atomic_t bcast_queue_left;
        atomic_t batman_queue_left;
-       atomic_t ttvn; /* tranlation table version number */
+       atomic_t ttvn; /* translation table version number */
 diff --git a/net/batman-adv/unicast.c b/net/batman-adv/unicast.c
-index 32b125f..f1447e0 100644
+index 676f6a6..3b4e668 100644
 --- a/net/batman-adv/unicast.c
 +++ b/net/batman-adv/unicast.c
 @@ -264,7 +264,7 @@ int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
@@ -74383,19 +74780,10 @@ index 32b125f..f1447e0 100644
        frag2->seqno = htons(seqno);
  
 diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
-index ea7f031..0615edc 100644
+index 5238b6b..c9798ce 100644
 --- a/net/bluetooth/hci_conn.c
 +++ b/net/bluetooth/hci_conn.c
-@@ -218,7 +218,7 @@ void hci_le_start_enc(struct hci_conn *conn, __le16 ediv, __u8 rand[8],
-       cp.handle = cpu_to_le16(conn->handle);
-       memcpy(cp.ltk, ltk, sizeof(cp.ltk));
-       cp.ediv = ediv;
--      memcpy(cp.rand, rand, sizeof(rand));
-+      memcpy(cp.rand, rand, sizeof(cp.rand));
-       hci_send_cmd(hdev, HCI_OP_LE_START_ENC, sizeof(cp), &cp);
- }
-@@ -234,7 +234,7 @@ void hci_le_ltk_reply(struct hci_conn *conn, u8 ltk[16])
+@@ -233,7 +233,7 @@ void hci_le_ltk_reply(struct hci_conn *conn, u8 ltk[16])
        memset(&cp, 0, sizeof(cp));
  
        cp.handle = cpu_to_le16(conn->handle);
@@ -74404,24 +74792,41 @@ index ea7f031..0615edc 100644
  
        hci_send_cmd(hdev, HCI_OP_LE_LTK_REPLY, sizeof(cp), &cp);
  }
-diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
-index e79ff75..215b57d 100644
---- a/net/bridge/br_multicast.c
-+++ b/net/bridge/br_multicast.c
-@@ -1485,7 +1485,7 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br,
-       nexthdr = ip6h->nexthdr;
-       offset = ipv6_skip_exthdr(skb, sizeof(*ip6h), &nexthdr);
+diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
+index 6f9c25b..d19fd66 100644
+--- a/net/bluetooth/l2cap_core.c
++++ b/net/bluetooth/l2cap_core.c
+@@ -2466,8 +2466,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len, voi
+                       break;
  
--      if (offset < 0 || nexthdr != IPPROTO_ICMPV6)
-+      if (nexthdr != IPPROTO_ICMPV6)
-               return 0;
+               case L2CAP_CONF_RFC:
+-                      if (olen == sizeof(rfc))
+-                              memcpy(&rfc, (void *)val, olen);
++                      if (olen != sizeof(rfc))
++                              break;
++
++                      memcpy(&rfc, (void *)val, olen);
  
-       /* Okay, we found ICMPv6 header */
+                       if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
+                                                       rfc.mode != chan->mode)
+@@ -2585,8 +2587,10 @@ static void l2cap_conf_rfc_get(struct l2cap_chan *chan, void *rsp, int len)
+               switch (type) {
+               case L2CAP_CONF_RFC:
+-                      if (olen == sizeof(rfc))
+-                              memcpy(&rfc, (void *)val, olen);
++                      if (olen != sizeof(rfc))
++                              break;
++
++                      memcpy(&rfc, (void *)val, olen);
+                       goto done;
+               }
+       }
 diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
-index 5864cc4..94cab18 100644
+index 5fe2ff3..10968b5 100644
 --- a/net/bridge/netfilter/ebtables.c
 +++ b/net/bridge/netfilter/ebtables.c
-@@ -1513,7 +1513,7 @@ static int do_ebt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
+@@ -1523,7 +1523,7 @@ static int do_ebt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
                        tmp.valid_hooks = t->table->valid_hooks;
                }
                mutex_unlock(&ebt_mutex);
@@ -74430,150 +74835,23 @@ index 5864cc4..94cab18 100644
                        BUGPRINT("c2u Didn't work\n");
                        ret = -EFAULT;
                        break;
-@@ -1781,6 +1781,8 @@ static int compat_copy_everything_to_user(struct ebt_table *t,
-       int ret;
-       void __user *pos;
-+      pax_track_stack();
-+
-       memset(&tinfo, 0, sizeof(tinfo));
-       if (cmd == EBT_SO_GET_ENTRIES) {
-diff --git a/net/caif/caif_socket.c b/net/caif/caif_socket.c
-index a986280..13444a1 100644
---- a/net/caif/caif_socket.c
-+++ b/net/caif/caif_socket.c
-@@ -48,19 +48,20 @@ static struct dentry *debugfsdir;
- #ifdef CONFIG_DEBUG_FS
- struct debug_fs_counter {
-       atomic_t caif_nr_socks;
--      atomic_t caif_sock_create;
--      atomic_t num_connect_req;
--      atomic_t num_connect_resp;
--      atomic_t num_connect_fail_resp;
--      atomic_t num_disconnect;
--      atomic_t num_remote_shutdown_ind;
--      atomic_t num_tx_flow_off_ind;
--      atomic_t num_tx_flow_on_ind;
--      atomic_t num_rx_flow_off;
--      atomic_t num_rx_flow_on;
-+      atomic_unchecked_t caif_sock_create;
-+      atomic_unchecked_t num_connect_req;
-+      atomic_unchecked_t num_connect_resp;
-+      atomic_unchecked_t num_connect_fail_resp;
-+      atomic_unchecked_t num_disconnect;
-+      atomic_unchecked_t num_remote_shutdown_ind;
-+      atomic_unchecked_t num_tx_flow_off_ind;
-+      atomic_unchecked_t num_tx_flow_on_ind;
-+      atomic_unchecked_t num_rx_flow_off;
-+      atomic_unchecked_t num_rx_flow_on;
- };
- static struct debug_fs_counter cnt;
- #define       dbfs_atomic_inc(v) atomic_inc_return(v)
-+#define       dbfs_atomic_inc_unchecked(v) atomic_inc_return_unchecked(v)
- #define       dbfs_atomic_dec(v) atomic_dec_return(v)
- #else
- #define       dbfs_atomic_inc(v) 0
-@@ -161,7 +162,7 @@ static int caif_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
-                                       atomic_read(&cf_sk->sk.sk_rmem_alloc),
-                                       sk_rcvbuf_lowwater(cf_sk));
-               set_rx_flow_off(cf_sk);
--              dbfs_atomic_inc(&cnt.num_rx_flow_off);
-+              dbfs_atomic_inc_unchecked(&cnt.num_rx_flow_off);
-               caif_flow_ctrl(sk, CAIF_MODEMCMD_FLOW_OFF_REQ);
-       }
-@@ -172,7 +173,7 @@ static int caif_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
-               set_rx_flow_off(cf_sk);
-               if (net_ratelimit())
-                       pr_debug("sending flow OFF due to rmem_schedule\n");
--              dbfs_atomic_inc(&cnt.num_rx_flow_off);
-+              dbfs_atomic_inc_unchecked(&cnt.num_rx_flow_off);
-               caif_flow_ctrl(sk, CAIF_MODEMCMD_FLOW_OFF_REQ);
-       }
-       skb->dev = NULL;
-@@ -233,14 +234,14 @@ static void caif_ctrl_cb(struct cflayer *layr,
-       switch (flow) {
-       case CAIF_CTRLCMD_FLOW_ON_IND:
-               /* OK from modem to start sending again */
--              dbfs_atomic_inc(&cnt.num_tx_flow_on_ind);
-+              dbfs_atomic_inc_unchecked(&cnt.num_tx_flow_on_ind);
-               set_tx_flow_on(cf_sk);
-               cf_sk->sk.sk_state_change(&cf_sk->sk);
-               break;
-       case CAIF_CTRLCMD_FLOW_OFF_IND:
-               /* Modem asks us to shut up */
--              dbfs_atomic_inc(&cnt.num_tx_flow_off_ind);
-+              dbfs_atomic_inc_unchecked(&cnt.num_tx_flow_off_ind);
-               set_tx_flow_off(cf_sk);
-               cf_sk->sk.sk_state_change(&cf_sk->sk);
-               break;
-@@ -249,7 +250,7 @@ static void caif_ctrl_cb(struct cflayer *layr,
-               /* We're now connected */
-               caif_client_register_refcnt(&cf_sk->layer,
-                                               cfsk_hold, cfsk_put);
--              dbfs_atomic_inc(&cnt.num_connect_resp);
-+              dbfs_atomic_inc_unchecked(&cnt.num_connect_resp);
-               cf_sk->sk.sk_state = CAIF_CONNECTED;
-               set_tx_flow_on(cf_sk);
-               cf_sk->sk.sk_state_change(&cf_sk->sk);
-@@ -263,7 +264,7 @@ static void caif_ctrl_cb(struct cflayer *layr,
-       case CAIF_CTRLCMD_INIT_FAIL_RSP:
-               /* Connect request failed */
--              dbfs_atomic_inc(&cnt.num_connect_fail_resp);
-+              dbfs_atomic_inc_unchecked(&cnt.num_connect_fail_resp);
-               cf_sk->sk.sk_err = ECONNREFUSED;
-               cf_sk->sk.sk_state = CAIF_DISCONNECTED;
-               cf_sk->sk.sk_shutdown = SHUTDOWN_MASK;
-@@ -277,7 +278,7 @@ static void caif_ctrl_cb(struct cflayer *layr,
-       case CAIF_CTRLCMD_REMOTE_SHUTDOWN_IND:
-               /* Modem has closed this connection, or device is down. */
--              dbfs_atomic_inc(&cnt.num_remote_shutdown_ind);
-+              dbfs_atomic_inc_unchecked(&cnt.num_remote_shutdown_ind);
-               cf_sk->sk.sk_shutdown = SHUTDOWN_MASK;
-               cf_sk->sk.sk_err = ECONNRESET;
-               set_rx_flow_on(cf_sk);
-@@ -297,7 +298,7 @@ static void caif_check_flow_release(struct sock *sk)
-               return;
+diff --git a/net/caif/caif_dev.c b/net/caif/caif_dev.c
+index aa6f716..7bf4c21 100644
+--- a/net/caif/caif_dev.c
++++ b/net/caif/caif_dev.c
+@@ -562,9 +562,9 @@ static int __init caif_device_init(void)
  
-       if (atomic_read(&sk->sk_rmem_alloc) <= sk_rcvbuf_lowwater(cf_sk)) {
--                      dbfs_atomic_inc(&cnt.num_rx_flow_on);
-+                      dbfs_atomic_inc_unchecked(&cnt.num_rx_flow_on);
-                       set_rx_flow_on(cf_sk);
-                       caif_flow_ctrl(sk, CAIF_MODEMCMD_FLOW_ON_REQ);
-       }
-@@ -854,7 +855,7 @@ static int caif_connect(struct socket *sock, struct sockaddr *uaddr,
-       /*ifindex = id of the interface.*/
-       cf_sk->conn_req.ifindex = cf_sk->sk.sk_bound_dev_if;
--      dbfs_atomic_inc(&cnt.num_connect_req);
-+      dbfs_atomic_inc_unchecked(&cnt.num_connect_req);
-       cf_sk->layer.receive = caif_sktrecv_cb;
-       err = caif_connect_client(sock_net(sk), &cf_sk->conn_req,
-@@ -943,7 +944,7 @@ static int caif_release(struct socket *sock)
-       spin_unlock_bh(&sk->sk_receive_queue.lock);
-       sock->sk = NULL;
--      dbfs_atomic_inc(&cnt.num_disconnect);
-+      dbfs_atomic_inc_unchecked(&cnt.num_disconnect);
-       WARN_ON(IS_ERR(cf_sk->debugfs_socket_dir));
-       if (cf_sk->debugfs_socket_dir != NULL)
-@@ -1122,7 +1123,7 @@ static int caif_create(struct net *net, struct socket *sock, int protocol,
-       cf_sk->conn_req.protocol = protocol;
-       /* Increase the number of sockets created. */
-       dbfs_atomic_inc(&cnt.caif_nr_socks);
--      num = dbfs_atomic_inc(&cnt.caif_sock_create);
-+      num = dbfs_atomic_inc_unchecked(&cnt.caif_sock_create);
- #ifdef CONFIG_DEBUG_FS
-       if (!IS_ERR(debugfsdir)) {
+ static void __exit caif_device_exit(void)
+ {
+-      unregister_pernet_subsys(&caif_net_ops);
+       unregister_netdevice_notifier(&caif_device_notifier);
+       dev_remove_pack(&caif_packet_type);
++      unregister_pernet_subsys(&caif_net_ops);
+ }
  
+ module_init(caif_device_init);
 diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c
-index e22671b..6598ea0 100644
+index 5cf5222..6f704ad 100644
 --- a/net/caif/cfctrl.c
 +++ b/net/caif/cfctrl.c
 @@ -9,6 +9,7 @@
@@ -74584,9 +74862,9 @@ index e22671b..6598ea0 100644
  #include <net/caif/caif_layer.h>
  #include <net/caif/cfpkt.h>
  #include <net/caif/cfctrl.h>
-@@ -45,8 +46,8 @@ struct cflayer *cfctrl_create(void)
+@@ -42,8 +43,8 @@ struct cflayer *cfctrl_create(void)
+       memset(&dev_info, 0, sizeof(dev_info));
        dev_info.id = 0xff;
-       memset(this, 0, sizeof(*this));
        cfsrvl_init(&this->serv, 0, &dev_info, false);
 -      atomic_set(&this->req_seq_no, 1);
 -      atomic_set(&this->rsp_seq_no, 1);
@@ -74595,7 +74873,7 @@ index e22671b..6598ea0 100644
        this->serv.layer.receive = cfctrl_recv;
        sprintf(this->serv.layer.name, "ctrl");
        this->serv.layer.ctrlcmd = cfctrl_ctrlcmd;
-@@ -132,8 +133,8 @@ static void cfctrl_insert_req(struct cfctrl *ctrl,
+@@ -129,8 +130,8 @@ static void cfctrl_insert_req(struct cfctrl *ctrl,
                              struct cfctrl_request_info *req)
  {
        spin_lock_bh(&ctrl->info_list_lock);
@@ -74606,7 +74884,7 @@ index e22671b..6598ea0 100644
        list_add_tail(&req->list, &ctrl->list);
        spin_unlock_bh(&ctrl->info_list_lock);
  }
-@@ -151,7 +152,7 @@ static struct cfctrl_request_info *cfctrl_remove_req(struct cfctrl *ctrl,
+@@ -148,7 +149,7 @@ static struct cfctrl_request_info *cfctrl_remove_req(struct cfctrl *ctrl,
                        if (p != first)
                                pr_warn("Requests are not received in order\n");
  
@@ -74615,19 +74893,24 @@ index e22671b..6598ea0 100644
                                         p->sequence_no);
                        list_del(&p->list);
                        goto out;
-@@ -364,6 +365,7 @@ static int cfctrl_recv(struct cflayer *layer, struct cfpkt *pkt)
-       struct cfctrl *cfctrl = container_obj(layer);
-       struct cfctrl_request_info rsp, *req;
+diff --git a/net/can/gw.c b/net/can/gw.c
+index 3d79b12..8de85fa 100644
+--- a/net/can/gw.c
++++ b/net/can/gw.c
+@@ -96,7 +96,7 @@ struct cf_mod {
+       struct {
+               void (*xor)(struct can_frame *cf, struct cgw_csum_xor *xor);
+               void (*crc8)(struct can_frame *cf, struct cgw_csum_crc8 *crc8);
+-      } csumfunc;
++      } __no_const csumfunc;
+ };
  
-+      pax_track_stack();
  
-       cfpkt_extr_head(pkt, &cmdrsp, 1);
-       cmd = cmdrsp & CFCTRL_CMD_MASK;
 diff --git a/net/compat.c b/net/compat.c
-index c578d93..257fab7 100644
+index e055708..3f80795 100644
 --- a/net/compat.c
 +++ b/net/compat.c
-@@ -70,9 +70,9 @@ int get_compat_msghdr(struct msghdr *kmsg, struct compat_msghdr __user *umsg)
+@@ -71,9 +71,9 @@ int get_compat_msghdr(struct msghdr *kmsg, struct compat_msghdr __user *umsg)
            __get_user(kmsg->msg_controllen, &umsg->msg_controllen) ||
            __get_user(kmsg->msg_flags, &umsg->msg_flags))
                return -EFAULT;
@@ -74640,7 +74923,7 @@ index c578d93..257fab7 100644
        return 0;
  }
  
-@@ -84,7 +84,7 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
+@@ -85,7 +85,7 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
  
        if (kern_msg->msg_namelen) {
                if (mode == VERIFY_READ) {
@@ -74649,7 +74932,7 @@ index c578d93..257fab7 100644
                                                      kern_msg->msg_namelen,
                                                      kern_address);
                        if (err < 0)
-@@ -95,7 +95,7 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
+@@ -96,7 +96,7 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
                kern_msg->msg_name = NULL;
  
        tot_len = iov_from_user_compat_to_kern(kern_iov,
@@ -74658,7 +74941,7 @@ index c578d93..257fab7 100644
                                          kern_msg->msg_iovlen);
        if (tot_len >= 0)
                kern_msg->msg_iov = kern_iov;
-@@ -115,20 +115,20 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
+@@ -116,20 +116,20 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
  
  #define CMSG_COMPAT_FIRSTHDR(msg)                     \
        (((msg)->msg_controllen) >= sizeof(struct compat_cmsghdr) ?     \
@@ -74682,16 +74965,16 @@ index c578d93..257fab7 100644
                        msg->msg_controllen)
                return NULL;
        return (struct compat_cmsghdr __user *)ptr;
-@@ -220,7 +220,7 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
+@@ -219,7 +219,7 @@ Efault:
+ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *data)
  {
-       struct compat_timeval ctv;
-       struct compat_timespec cts[3];
 -      struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control;
 +      struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __force_user *) kmsg->msg_control;
        struct compat_cmsghdr cmhdr;
        int cmlen;
  
-@@ -272,7 +272,7 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
+@@ -275,7 +275,7 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
  
  void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm)
  {
@@ -74700,7 +74983,7 @@ index c578d93..257fab7 100644
        int fdmax = (kmsg->msg_controllen - sizeof(struct compat_cmsghdr)) / sizeof(int);
        int fdnum = scm->fp->count;
        struct file **fp = scm->fp->fp;
-@@ -369,7 +369,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,
+@@ -372,7 +372,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,
                return -EFAULT;
        old_fs = get_fs();
        set_fs(KERNEL_DS);
@@ -74709,7 +74992,7 @@ index c578d93..257fab7 100644
        set_fs(old_fs);
  
        return err;
-@@ -430,7 +430,7 @@ static int do_get_sock_timeout(struct socket *sock, int level, int optname,
+@@ -433,7 +433,7 @@ static int do_get_sock_timeout(struct socket *sock, int level, int optname,
        len = sizeof(ktime);
        old_fs = get_fs();
        set_fs(KERNEL_DS);
@@ -74718,7 +75001,7 @@ index c578d93..257fab7 100644
        set_fs(old_fs);
  
        if (!err) {
-@@ -565,7 +565,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
+@@ -576,7 +576,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
        case MCAST_JOIN_GROUP:
        case MCAST_LEAVE_GROUP:
        {
@@ -74727,7 +75010,7 @@ index c578d93..257fab7 100644
                struct group_req __user *kgr =
                        compat_alloc_user_space(sizeof(struct group_req));
                u32 interface;
-@@ -586,7 +586,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
+@@ -597,7 +597,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
        case MCAST_BLOCK_SOURCE:
        case MCAST_UNBLOCK_SOURCE:
        {
@@ -74736,7 +75019,7 @@ index c578d93..257fab7 100644
                struct group_source_req __user *kgsr = compat_alloc_user_space(
                        sizeof(struct group_source_req));
                u32 interface;
-@@ -607,7 +607,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
+@@ -618,7 +618,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
        }
        case MCAST_MSFILTER:
        {
@@ -74745,7 +75028,7 @@ index c578d93..257fab7 100644
                struct group_filter __user *kgf;
                u32 interface, fmode, numsrc;
  
-@@ -645,7 +645,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,
+@@ -656,7 +656,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,
        char __user *optval, int __user *optlen,
        int (*getsockopt)(struct sock *, int, int, char __user *, int __user *))
  {
@@ -74755,10 +75038,10 @@ index c578d93..257fab7 100644
        int __user      *koptlen;
        u32 interface, fmode, numsrc;
 diff --git a/net/core/datagram.c b/net/core/datagram.c
-index 18ac112..fe95ed9 100644
+index e4fbfd6..6a6ac94 100644
 --- a/net/core/datagram.c
 +++ b/net/core/datagram.c
-@@ -285,7 +285,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags)
+@@ -290,7 +290,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags)
        }
  
        kfree_skb(skb);
@@ -74768,10 +75051,10 @@ index 18ac112..fe95ed9 100644
  
        return err;
 diff --git a/net/core/dev.c b/net/core/dev.c
-index ae5cf2d..2c950a1 100644
+index 533c586..f78a55f 100644
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -1135,10 +1135,14 @@ void dev_load(struct net *net, const char *name)
+@@ -1136,9 +1136,13 @@ void dev_load(struct net *net, const char *name)
        if (no_module && capable(CAP_NET_ADMIN))
                no_module = request_module("netdev-%s", name);
        if (no_module && capable(CAP_SYS_MODULE)) {
@@ -74779,14 +75062,31 @@ index ae5cf2d..2c950a1 100644
 +              ___request_module(true, "grsec_modharden_netdev", "%s", name);
 +#else
                if (!request_module("%s", name))
-                       pr_err("Loading kernel module for a network device "
- "with CAP_SYS_MODULE (deprecated).  Use CAP_NET_ADMIN and alias netdev-%s "
- "instead\n", name);
+                       pr_err("Loading kernel module for a network device with CAP_SYS_MODULE (deprecated).  Use CAP_NET_ADMIN and alias netdev-%s instead.\n",
+                              name);
 +#endif
        }
  }
  EXPORT_SYMBOL(dev_load);
-@@ -1977,7 +1981,7 @@ static int illegal_highdma(struct net_device *dev, struct sk_buff *skb)
+@@ -1602,7 +1606,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
+ {
+       if (skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY) {
+               if (skb_copy_ubufs(skb, GFP_ATOMIC)) {
+-                      atomic_long_inc(&dev->rx_dropped);
++                      atomic_long_inc_unchecked(&dev->rx_dropped);
+                       kfree_skb(skb);
+                       return NET_RX_DROP;
+               }
+@@ -1612,7 +1616,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
+       nf_reset(skb);
+       if (unlikely(!is_skb_forwardable(dev, skb))) {
+-              atomic_long_inc(&dev->rx_dropped);
++              atomic_long_inc_unchecked(&dev->rx_dropped);
+               kfree_skb(skb);
+               return NET_RX_DROP;
+       }
+@@ -2042,7 +2046,7 @@ static int illegal_highdma(struct net_device *dev, struct sk_buff *skb)
  
  struct dev_gso_cb {
        void (*destructor)(struct sk_buff *skb);
@@ -74795,7 +75095,16 @@ index ae5cf2d..2c950a1 100644
  
  #define DEV_GSO_CB(skb) ((struct dev_gso_cb *)(skb)->cb)
  
-@@ -2930,7 +2934,7 @@ int netif_rx_ni(struct sk_buff *skb)
+@@ -2877,7 +2881,7 @@ enqueue:
+       local_irq_restore(flags);
+-      atomic_long_inc(&skb->dev->rx_dropped);
++      atomic_long_inc_unchecked(&skb->dev->rx_dropped);
+       kfree_skb(skb);
+       return NET_RX_DROP;
+ }
+@@ -2949,7 +2953,7 @@ int netif_rx_ni(struct sk_buff *skb)
  }
  EXPORT_SYMBOL(netif_rx_ni);
  
@@ -74804,7 +75113,16 @@ index ae5cf2d..2c950a1 100644
  {
        struct softnet_data *sd = &__get_cpu_var(softnet_data);
  
-@@ -3779,7 +3783,7 @@ void netif_napi_del(struct napi_struct *napi)
+@@ -3237,7 +3241,7 @@ ncls:
+       if (pt_prev) {
+               ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
+       } else {
+-              atomic_long_inc(&skb->dev->rx_dropped);
++              atomic_long_inc_unchecked(&skb->dev->rx_dropped);
+               kfree_skb(skb);
+               /* Jamal, now you will not able to escape explaining
+                * me how you were going to use this. :-)
+@@ -3797,7 +3801,7 @@ void netif_napi_del(struct napi_struct *napi)
  }
  EXPORT_SYMBOL(netif_napi_del);
  
@@ -74813,8 +75131,31 @@ index ae5cf2d..2c950a1 100644
  {
        struct softnet_data *sd = &__get_cpu_var(softnet_data);
        unsigned long time_limit = jiffies + 2;
+@@ -4267,8 +4271,13 @@ static int ptype_seq_show(struct seq_file *seq, void *v)
+               else
+                       seq_printf(seq, "%04x", ntohs(pt->type));
++#ifdef CONFIG_GRKERNSEC_HIDESYM
++              seq_printf(seq, " %-8s %p\n",
++                         pt->dev ? pt->dev->name : "", NULL);
++#else
+               seq_printf(seq, " %-8s %pF\n",
+                          pt->dev ? pt->dev->name : "", pt->func);
++#endif
+       }
+       return 0;
+@@ -5818,7 +5827,7 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
+       } else {
+               netdev_stats_to_stats64(storage, &dev->stats);
+       }
+-      storage->rx_dropped += atomic_long_read(&dev->rx_dropped);
++      storage->rx_dropped += atomic_long_read_unchecked(&dev->rx_dropped);
+       return storage;
+ }
+ EXPORT_SYMBOL(dev_get_stats);
 diff --git a/net/core/flow.c b/net/core/flow.c
-index 555a456..de48421 100644
+index e318c7e..168b1d0 100644
 --- a/net/core/flow.c
 +++ b/net/core/flow.c
 @@ -61,7 +61,7 @@ struct flow_cache {
@@ -74854,10 +75195,10 @@ index 555a456..de48421 100644
                        fle->object = flo;
                else
 diff --git a/net/core/iovec.c b/net/core/iovec.c
-index c40f27e..7f49254 100644
+index 7e7aeb0..2a998cb 100644
 --- a/net/core/iovec.c
 +++ b/net/core/iovec.c
-@@ -42,7 +42,7 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr *address,
+@@ -42,7 +42,7 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *a
        if (m->msg_namelen) {
                if (mode == VERIFY_READ) {
                        void __user *namep;
@@ -74866,7 +75207,7 @@ index c40f27e..7f49254 100644
                        err = move_addr_to_kernel(namep, m->msg_namelen,
                                                  address);
                        if (err < 0)
-@@ -54,7 +54,7 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr *address,
+@@ -54,7 +54,7 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *a
        }
  
        size = m->msg_iovlen * sizeof(struct iovec);
@@ -74876,10 +75217,10 @@ index c40f27e..7f49254 100644
  
        m->msg_iov = iov;
 diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
-index 99d9e95..209bae2 100644
+index 90430b7..0032ec0 100644
 --- a/net/core/rtnetlink.c
 +++ b/net/core/rtnetlink.c
-@@ -57,7 +57,7 @@ struct rtnl_link {
+@@ -56,7 +56,7 @@ struct rtnl_link {
        rtnl_doit_func          doit;
        rtnl_dumpit_func        dumpit;
        rtnl_calcit_func        calcit;
@@ -74887,12 +75228,12 @@ index 99d9e95..209bae2 100644
 +} __no_const;
  
  static DEFINE_MUTEX(rtnl_mutex);
- static u16 min_ifinfo_dump_size;
 diff --git a/net/core/scm.c b/net/core/scm.c
-index 811b53f..5d6c343 100644
+index 611c5ef..88f6d6d 100644
 --- a/net/core/scm.c
 +++ b/net/core/scm.c
-@@ -218,7 +218,7 @@ EXPORT_SYMBOL(__scm_send);
+@@ -219,7 +219,7 @@ EXPORT_SYMBOL(__scm_send);
  int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
  {
        struct cmsghdr __user *cm
@@ -74901,7 +75242,7 @@ index 811b53f..5d6c343 100644
        struct cmsghdr cmhdr;
        int cmlen = CMSG_LEN(len);
        int err;
-@@ -241,7 +241,7 @@ int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
+@@ -242,7 +242,7 @@ int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
        err = -EFAULT;
        if (copy_to_user(cm, &cmhdr, sizeof cmhdr))
                goto out;
@@ -74910,7 +75251,7 @@ index 811b53f..5d6c343 100644
                goto out;
        cmlen = CMSG_SPACE(len);
        if (msg->msg_controllen < cmlen)
-@@ -257,7 +257,7 @@ EXPORT_SYMBOL(put_cmsg);
+@@ -258,7 +258,7 @@ EXPORT_SYMBOL(put_cmsg);
  void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
  {
        struct cmsghdr __user *cm
@@ -74919,7 +75260,7 @@ index 811b53f..5d6c343 100644
  
        int fdmax = 0;
        int fdnum = scm->fp->count;
-@@ -277,7 +277,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
+@@ -278,7 +278,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
        if (fdnum < fdmax)
                fdmax = fdnum;
  
@@ -74928,33 +75269,20 @@ index 811b53f..5d6c343 100644
             i++, cmfptr++)
        {
                int new_fd;
-diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index 387703f..035abcf 100644
---- a/net/core/skbuff.c
-+++ b/net/core/skbuff.c
-@@ -1650,6 +1650,8 @@ int skb_splice_bits(struct sk_buff *skb, unsigned int offset,
-       struct sock *sk = skb->sk;
-       int ret = 0;
-+      pax_track_stack();
-+
-       if (splice_grow_spd(pipe, &spd))
-               return -ENOMEM;
 diff --git a/net/core/sock.c b/net/core/sock.c
-index 11d67b3..df26d4b 100644
+index 0f8402e..f0b6338 100644
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -293,7 +293,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
-        */
-       if (atomic_read(&sk->sk_rmem_alloc) + skb->truesize >=
-           (unsigned)sk->sk_rcvbuf) {
+@@ -340,7 +340,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
+       struct sk_buff_head *list = &sk->sk_receive_queue;
+       if (atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf) {
 -              atomic_inc(&sk->sk_drops);
 +              atomic_inc_unchecked(&sk->sk_drops);
                trace_sock_rcvqueue_full(sk, skb);
                return -ENOMEM;
        }
-@@ -303,7 +303,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
+@@ -350,7 +350,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
                return err;
  
        if (!sk_rmem_schedule(sk, skb->truesize)) {
@@ -74963,7 +75291,7 @@ index 11d67b3..df26d4b 100644
                return -ENOBUFS;
        }
  
-@@ -323,7 +323,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
+@@ -370,7 +370,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
        skb_dst_force(skb);
  
        spin_lock_irqsave(&list->lock, flags);
@@ -74972,7 +75300,7 @@ index 11d67b3..df26d4b 100644
        __skb_queue_tail(list, skb);
        spin_unlock_irqrestore(&list->lock, flags);
  
-@@ -343,7 +343,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
+@@ -390,7 +390,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
        skb->dev = NULL;
  
        if (sk_rcvqueues_full(sk, skb)) {
@@ -74981,7 +75309,7 @@ index 11d67b3..df26d4b 100644
                goto discard_and_relse;
        }
        if (nested)
-@@ -361,7 +361,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
+@@ -408,7 +408,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
                mutex_release(&sk->sk_lock.dep_map, 1, _RET_IP_);
        } else if (sk_add_backlog(sk, skb)) {
                bh_unlock_sock(sk);
@@ -74990,7 +75318,7 @@ index 11d67b3..df26d4b 100644
                goto discard_and_relse;
        }
  
-@@ -924,7 +924,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
+@@ -984,7 +984,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
                if (len > sizeof(peercred))
                        len = sizeof(peercred);
                cred_to_ucred(sk->sk_peer_pid, sk->sk_peer_cred, &peercred);
@@ -74999,7 +75327,7 @@ index 11d67b3..df26d4b 100644
                        return -EFAULT;
                goto lenout;
        }
-@@ -937,7 +937,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
+@@ -997,7 +997,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
                        return -ENOTCONN;
                if (lv < len)
                        return -EINVAL;
@@ -75008,7 +75336,7 @@ index 11d67b3..df26d4b 100644
                        return -EFAULT;
                goto lenout;
        }
-@@ -970,7 +970,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
+@@ -1043,7 +1043,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
  
        if (len > lv)
                len = lv;
@@ -75017,7 +75345,7 @@ index 11d67b3..df26d4b 100644
                return -EFAULT;
  lenout:
        if (put_user(len, optlen))
-@@ -2029,7 +2029,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
+@@ -2131,7 +2131,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
         */
        smp_wmb();
        atomic_set(&sk->sk_refcnt, 1);
@@ -75026,6 +75354,38 @@ index 11d67b3..df26d4b 100644
  }
  EXPORT_SYMBOL(sock_init_data);
  
+diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c
+index b9868e1..849f809 100644
+--- a/net/core/sock_diag.c
++++ b/net/core/sock_diag.c
+@@ -16,20 +16,27 @@ static DEFINE_MUTEX(sock_diag_table_mutex);
+ int sock_diag_check_cookie(void *sk, __u32 *cookie)
+ {
++#ifndef CONFIG_GRKERNSEC_HIDESYM
+       if ((cookie[0] != INET_DIAG_NOCOOKIE ||
+            cookie[1] != INET_DIAG_NOCOOKIE) &&
+           ((u32)(unsigned long)sk != cookie[0] ||
+            (u32)((((unsigned long)sk) >> 31) >> 1) != cookie[1]))
+               return -ESTALE;
+       else
++#endif
+               return 0;
+ }
+ EXPORT_SYMBOL_GPL(sock_diag_check_cookie);
+ void sock_diag_save_cookie(void *sk, __u32 *cookie)
+ {
++#ifdef CONFIG_GRKERNSEC_HIDESYM
++      cookie[0] = 0;
++      cookie[1] = 0;
++#else
+       cookie[0] = (u32)(unsigned long)sk;
+       cookie[1] = (u32)(((unsigned long)sk >> 31) >> 1);
++#endif
+ }
+ EXPORT_SYMBOL_GPL(sock_diag_save_cookie);
 diff --git a/net/decnet/sysctl_net_decnet.c b/net/decnet/sysctl_net_decnet.c
 index 02e75d1..9a57a7c 100644
 --- a/net/decnet/sysctl_net_decnet.c
@@ -75061,11 +75421,28 @@ index 39a2d29..f39c0fe 100644
        ---help---
          Econet is a fairly old and slow networking protocol mainly used by
          Acorn computers to access file and print servers. It uses native
+diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c
+index c48adc5..667c1d4 100644
+--- a/net/ipv4/cipso_ipv4.c
++++ b/net/ipv4/cipso_ipv4.c
+@@ -1725,8 +1725,10 @@ int cipso_v4_validate(const struct sk_buff *skb, unsigned char **option)
+               case CIPSO_V4_TAG_LOCAL:
+                       /* This is a non-standard tag that we only allow for
+                        * local connections, so if the incoming interface is
+-                       * not the loopback device drop the packet. */
+-                      if (!(skb->dev->flags & IFF_LOOPBACK)) {
++                       * not the loopback device drop the packet. Further,
++                       * there is no legitimate reason for setting this from
++                       * userspace so reject it if skb is NULL. */
++                      if (skb == NULL || !(skb->dev->flags & IFF_LOOPBACK)) {
+                               err_offset = opt_iter;
+                               goto validate_return_locked;
+                       }
 diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
-index 92fc5f6..b790d91 100644
+index cbe3a68..a879b75 100644
 --- a/net/ipv4/fib_frontend.c
 +++ b/net/ipv4/fib_frontend.c
-@@ -970,12 +970,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
+@@ -969,12 +969,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
  #ifdef CONFIG_IP_ROUTE_MULTIPATH
                fib_sync_up(dev);
  #endif
@@ -75080,7 +75457,7 @@ index 92fc5f6..b790d91 100644
                if (ifa->ifa_dev->ifa_list == NULL) {
                        /* Last address was deleted from this interface.
                         * Disable IP.
-@@ -1011,7 +1011,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
+@@ -1010,7 +1010,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
  #ifdef CONFIG_IP_ROUTE_MULTIPATH
                fib_sync_up(dev);
  #endif
@@ -75090,10 +75467,10 @@ index 92fc5f6..b790d91 100644
                break;
        case NETDEV_DOWN:
 diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
-index 80106d8..232e898 100644
+index 8861f91..ab1e3c1 100644
 --- a/net/ipv4/fib_semantics.c
 +++ b/net/ipv4/fib_semantics.c
-@@ -699,7 +699,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh)
+@@ -698,7 +698,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh)
        nh->nh_saddr = inet_select_addr(nh->nh_dev,
                                        nh->nh_gw,
                                        nh->nh_parent->fib_scope);
@@ -75102,71 +75479,6 @@ index 80106d8..232e898 100644
  
        return nh->nh_saddr;
  }
-diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
-index 389a2e6..ac1c1de 100644
---- a/net/ipv4/inet_diag.c
-+++ b/net/ipv4/inet_diag.c
-@@ -114,8 +114,14 @@ static int inet_csk_diag_fill(struct sock *sk,
-       r->idiag_retrans = 0;
-       r->id.idiag_if = sk->sk_bound_dev_if;
-+
-+#ifdef CONFIG_GRKERNSEC_HIDESYM
-+      r->id.idiag_cookie[0] = 0;
-+      r->id.idiag_cookie[1] = 0;
-+#else
-       r->id.idiag_cookie[0] = (u32)(unsigned long)sk;
-       r->id.idiag_cookie[1] = (u32)(((unsigned long)sk >> 31) >> 1);
-+#endif
-       r->id.idiag_sport = inet->inet_sport;
-       r->id.idiag_dport = inet->inet_dport;
-@@ -201,8 +207,15 @@ static int inet_twsk_diag_fill(struct inet_timewait_sock *tw,
-       r->idiag_family       = tw->tw_family;
-       r->idiag_retrans      = 0;
-       r->id.idiag_if        = tw->tw_bound_dev_if;
-+
-+#ifdef CONFIG_GRKERNSEC_HIDESYM
-+      r->id.idiag_cookie[0] = 0;
-+      r->id.idiag_cookie[1] = 0;
-+#else
-       r->id.idiag_cookie[0] = (u32)(unsigned long)tw;
-       r->id.idiag_cookie[1] = (u32)(((unsigned long)tw >> 31) >> 1);
-+#endif
-+
-       r->id.idiag_sport     = tw->tw_sport;
-       r->id.idiag_dport     = tw->tw_dport;
-       r->id.idiag_src[0]    = tw->tw_rcv_saddr;
-@@ -285,12 +298,14 @@ static int inet_diag_get_exact(struct sk_buff *in_skb,
-       if (sk == NULL)
-               goto unlock;
-+#ifndef CONFIG_GRKERNSEC_HIDESYM
-       err = -ESTALE;
-       if ((req->id.idiag_cookie[0] != INET_DIAG_NOCOOKIE ||
-            req->id.idiag_cookie[1] != INET_DIAG_NOCOOKIE) &&
-           ((u32)(unsigned long)sk != req->id.idiag_cookie[0] ||
-            (u32)((((unsigned long)sk) >> 31) >> 1) != req->id.idiag_cookie[1]))
-               goto out;
-+#endif
-       err = -ENOMEM;
-       rep = alloc_skb(NLMSG_SPACE((sizeof(struct inet_diag_msg) +
-@@ -580,8 +595,14 @@ static int inet_diag_fill_req(struct sk_buff *skb, struct sock *sk,
-       r->idiag_retrans = req->retrans;
-       r->id.idiag_if = sk->sk_bound_dev_if;
-+
-+#ifdef CONFIG_GRKERNSEC_HIDESYM
-+      r->id.idiag_cookie[0] = 0;
-+      r->id.idiag_cookie[1] = 0;
-+#else
-       r->id.idiag_cookie[0] = (u32)(unsigned long)req;
-       r->id.idiag_cookie[1] = (u32)(((unsigned long)req >> 31) >> 1);
-+#endif
-       tmo = req->expires - jiffies;
-       if (tmo < 0)
 diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c
 index 984ec65..97ac518 100644
 --- a/net/ipv4/inet_hashtables.c
@@ -75197,19 +75509,10 @@ index 984ec65..97ac518 100644
                        inet_twsk_deschedule(tw, death_row);
                        while (twrefcnt) {
 diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c
-index 86f13c67..0bce60f 100644
+index dfba343..c827d50 100644
 --- a/net/ipv4/inetpeer.c
 +++ b/net/ipv4/inetpeer.c
-@@ -400,6 +400,8 @@ struct inet_peer *inet_getpeer(const struct inetpeer_addr *daddr, int create)
-       unsigned int sequence;
-       int invalidated, gccnt = 0;
-+      pax_track_stack();
-+
-       /* Attempt a lockless lookup first.
-        * Because of a concurrent writer, we might not find an existing entry.
-        */
-@@ -436,8 +438,8 @@ relookup:
+@@ -487,8 +487,8 @@ relookup:
        if (p) {
                p->daddr = *daddr;
                atomic_set(&p->refcnt, 1);
@@ -75221,10 +75524,10 @@ index 86f13c67..0bce60f 100644
                                        secure_ip_id(daddr->addr.a4) :
                                        secure_ipv6_id(daddr->addr.a6));
 diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
-index 0e0ab98..2ed7dd5 100644
+index 3727e23..517f5df 100644
 --- a/net/ipv4/ip_fragment.c
 +++ b/net/ipv4/ip_fragment.c
-@@ -316,7 +316,7 @@ static inline int ip_frag_too_far(struct ipq *qp)
+@@ -318,7 +318,7 @@ static inline int ip_frag_too_far(struct ipq *qp)
                return 0;
  
        start = qp->rid;
@@ -75234,19 +75537,10 @@ index 0e0ab98..2ed7dd5 100644
  
        rc = qp->q.fragments && (end - start) > max;
 diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
-index 8905e92..0b179fb 100644
+index 2fd0fba..83fac99 100644
 --- a/net/ipv4/ip_sockglue.c
 +++ b/net/ipv4/ip_sockglue.c
-@@ -1073,6 +1073,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
-       int val;
-       int len;
-+      pax_track_stack();
-+
-       if (level != SOL_IP)
-               return -EOPNOTSUPP;
-@@ -1110,7 +1112,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
+@@ -1137,7 +1137,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
                len = min_t(unsigned int, len, opt->optlen);
                if (put_user(len, optlen))
                        return -EFAULT;
@@ -75256,7 +75550,7 @@ index 8905e92..0b179fb 100644
                        return -EFAULT;
                return 0;
        }
-@@ -1238,7 +1241,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
+@@ -1268,7 +1269,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
                if (sk->sk_type != SOCK_STREAM)
                        return -ENOPROTOOPT;
  
@@ -75266,10 +75560,10 @@ index 8905e92..0b179fb 100644
                msg.msg_flags = flags;
  
 diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
-index 472a8c4..6507cd4 100644
+index 92ac7e7..13f93d9 100644
 --- a/net/ipv4/ipconfig.c
 +++ b/net/ipv4/ipconfig.c
-@@ -313,7 +313,7 @@ static int __init ic_devinet_ioctl(unsigned int cmd, struct ifreq *arg)
+@@ -321,7 +321,7 @@ static int __init ic_devinet_ioctl(unsigned int cmd, struct ifreq *arg)
  
        mm_segment_t oldfs = get_fs();
        set_fs(get_ds());
@@ -75278,7 +75572,7 @@ index 472a8c4..6507cd4 100644
        set_fs(oldfs);
        return res;
  }
-@@ -324,7 +324,7 @@ static int __init ic_dev_ioctl(unsigned int cmd, struct ifreq *arg)
+@@ -332,7 +332,7 @@ static int __init ic_dev_ioctl(unsigned int cmd, struct ifreq *arg)
  
        mm_segment_t oldfs = get_fs();
        set_fs(get_ds());
@@ -75287,7 +75581,7 @@ index 472a8c4..6507cd4 100644
        set_fs(oldfs);
        return res;
  }
-@@ -335,7 +335,7 @@ static int __init ic_route_ioctl(unsigned int cmd, struct rtentry *arg)
+@@ -343,7 +343,7 @@ static int __init ic_route_ioctl(unsigned int cmd, struct rtentry *arg)
  
        mm_segment_t oldfs = get_fs();
        set_fs(get_ds());
@@ -75296,24 +75590,11 @@ index 472a8c4..6507cd4 100644
        set_fs(oldfs);
        return res;
  }
-diff --git a/net/ipv4/netfilter/nf_nat_snmp_basic.c b/net/ipv4/netfilter/nf_nat_snmp_basic.c
-index 076b7c8..9c8d038 100644
---- a/net/ipv4/netfilter/nf_nat_snmp_basic.c
-+++ b/net/ipv4/netfilter/nf_nat_snmp_basic.c
-@@ -399,7 +399,7 @@ static unsigned char asn1_octets_decode(struct asn1_ctx *ctx,
-       *len = 0;
--      *octets = kmalloc(eoc - ctx->pointer, GFP_ATOMIC);
-+      *octets = kmalloc((eoc - ctx->pointer), GFP_ATOMIC);
-       if (*octets == NULL) {
-               if (net_ratelimit())
-                       pr_notice("OOM in bsalg (%d)\n", __LINE__);
 diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
-index 39b403f..8e6a0a8 100644
+index 50009c7..5996a9f 100644
 --- a/net/ipv4/ping.c
 +++ b/net/ipv4/ping.c
-@@ -837,7 +837,7 @@ static void ping_format_sock(struct sock *sp, struct seq_file *f,
+@@ -838,7 +838,7 @@ static void ping_format_sock(struct sock *sp, struct seq_file *f,
                sk_rmem_alloc_get(sp),
                0, 0L, 0, sock_i_uid(sp), 0, sock_i_ino(sp),
                atomic_read(&sp->sk_refcnt), sp,
@@ -75323,10 +75604,10 @@ index 39b403f..8e6a0a8 100644
  
  static int ping_seq_show(struct seq_file *seq, void *v)
 diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
-index 61714bd..c9cee6d 100644
+index bbd604c..4d5469c 100644
 --- a/net/ipv4/raw.c
 +++ b/net/ipv4/raw.c
-@@ -302,7 +302,7 @@ static int raw_rcv_skb(struct sock * sk, struct sk_buff * skb)
+@@ -304,7 +304,7 @@ static int raw_rcv_skb(struct sock * sk, struct sk_buff * skb)
  int raw_rcv(struct sock *sk, struct sk_buff *skb)
  {
        if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb)) {
@@ -75335,7 +75616,7 @@ index 61714bd..c9cee6d 100644
                kfree_skb(skb);
                return NET_RX_DROP;
        }
-@@ -737,16 +737,20 @@ static int raw_init(struct sock *sk)
+@@ -740,16 +740,20 @@ static int raw_init(struct sock *sk)
  
  static int raw_seticmpfilter(struct sock *sk, char __user *optval, int optlen)
  {
@@ -75357,7 +75638,7 @@ index 61714bd..c9cee6d 100644
  
        if (get_user(len, optlen))
                goto out;
-@@ -756,8 +760,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
+@@ -759,8 +763,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
        if (len > sizeof(struct icmp_filter))
                len = sizeof(struct icmp_filter);
        ret = -EFAULT;
@@ -75368,7 +75649,7 @@ index 61714bd..c9cee6d 100644
                goto out;
        ret = 0;
  out:  return ret;
-@@ -985,7 +989,13 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
+@@ -988,7 +992,13 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
                sk_wmem_alloc_get(sp),
                sk_rmem_alloc_get(sp),
                0, 0L, 0, sock_i_uid(sp), 0, sock_i_ino(sp),
@@ -75384,10 +75665,10 @@ index 61714bd..c9cee6d 100644
  
  static int raw_seq_show(struct seq_file *seq, void *v)
 diff --git a/net/ipv4/route.c b/net/ipv4/route.c
-index 05ac666c..82384a7 100644
+index 167ea10..4b15883 100644
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
-@@ -309,7 +309,7 @@ static inline unsigned int rt_hash(__be32 daddr, __be32 saddr, int idx,
+@@ -312,7 +312,7 @@ static inline unsigned int rt_hash(__be32 daddr, __be32 saddr, int idx,
  
  static inline int rt_genid(struct net *net)
  {
@@ -75396,16 +75677,16 @@ index 05ac666c..82384a7 100644
  }
  
  #ifdef CONFIG_PROC_FS
-@@ -842,7 +842,7 @@ static void rt_cache_invalidate(struct net *net)
+@@ -936,7 +936,7 @@ static void rt_cache_invalidate(struct net *net)
        unsigned char shuffle;
  
        get_random_bytes(&shuffle, sizeof(shuffle));
 -      atomic_add(shuffle + 1U, &net->ipv4.rt_genid);
 +      atomic_add_unchecked(shuffle + 1U, &net->ipv4.rt_genid);
-       redirect_genid++;
+       inetpeer_invalidate_tree(AF_INET);
  }
  
-@@ -2920,7 +2920,7 @@ static int rt_fill_info(struct net *net,
+@@ -3009,7 +3009,7 @@ static int rt_fill_info(struct net *net,
        error = rt->dst.error;
        if (peer) {
                inet_peer_refcheck(rt->peer);
@@ -75414,43 +75695,22 @@ index 05ac666c..82384a7 100644
                if (peer->tcp_ts_stamp) {
                        ts = peer->tcp_ts;
                        tsage = get_seconds() - peer->tcp_ts_stamp;
-diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
-index 46febca..98b73a4 100644
---- a/net/ipv4/tcp.c
-+++ b/net/ipv4/tcp.c
-@@ -2122,6 +2122,8 @@ static int do_tcp_setsockopt(struct sock *sk, int level,
-       int val;
-       int err = 0;
-+      pax_track_stack();
-+
-       /* These are data/string values, all the others are ints */
-       switch (optname) {
-       case TCP_CONGESTION: {
-@@ -2501,6 +2503,8 @@ static int do_tcp_getsockopt(struct sock *sk, int level,
-       struct tcp_sock *tp = tcp_sk(sk);
-       int val, len;
-+      pax_track_stack();
-+
-       if (get_user(len, optlen))
-               return -EFAULT;
 diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
-index 7963e03..c44f5d0 100644
+index 0cb86ce..8e7fda8 100644
 --- a/net/ipv4/tcp_ipv4.c
 +++ b/net/ipv4/tcp_ipv4.c
-@@ -87,6 +87,9 @@ int sysctl_tcp_tw_reuse __read_mostly;
- int sysctl_tcp_low_latency __read_mostly;
+@@ -90,6 +90,10 @@ int sysctl_tcp_low_latency __read_mostly;
  EXPORT_SYMBOL(sysctl_tcp_low_latency);
  
 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
 +extern int grsec_enable_blackhole;
 +#endif
++
  #ifdef CONFIG_TCP_MD5SIG
- static struct tcp_md5sig_key *tcp_v4_md5_do_lookup(struct sock *sk,
-@@ -1622,6 +1625,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
+ static int tcp_v4_md5_hash_hdr(char *md5_hash, const struct tcp_md5sig_key *key,
+                              __be32 daddr, __be32 saddr, const struct tcphdr *th);
+@@ -1641,6 +1645,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
        return 0;
  
  reset:
@@ -75460,7 +75720,7 @@ index 7963e03..c44f5d0 100644
        tcp_v4_send_reset(rsk, skb);
  discard:
        kfree_skb(skb);
-@@ -1684,12 +1690,19 @@ int tcp_v4_rcv(struct sk_buff *skb)
+@@ -1703,12 +1710,19 @@ int tcp_v4_rcv(struct sk_buff *skb)
        TCP_SKB_CB(skb)->sacked  = 0;
  
        sk = __inet_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest);
@@ -75483,7 +75743,7 @@ index 7963e03..c44f5d0 100644
  
        if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) {
                NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
-@@ -1739,6 +1752,10 @@ no_tcp_socket:
+@@ -1758,6 +1772,10 @@ no_tcp_socket:
  bad_packet:
                TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
        } else {
@@ -75494,7 +75754,7 @@ index 7963e03..c44f5d0 100644
                tcp_v4_send_reset(NULL, skb);
        }
  
-@@ -2403,7 +2420,11 @@ static void get_openreq4(struct sock *sk, struct request_sock *req,
+@@ -2419,7 +2437,11 @@ static void get_openreq4(const struct sock *sk, const struct request_sock *req,
                0,  /* non standard timer */
                0, /* open_requests have no inode */
                atomic_read(&sk->sk_refcnt),
@@ -75506,7 +75766,7 @@ index 7963e03..c44f5d0 100644
                len);
  }
  
-@@ -2453,7 +2474,12 @@ static void get_tcp4_sock(struct sock *sk, struct seq_file *f, int i, int *len)
+@@ -2469,7 +2491,12 @@ static void get_tcp4_sock(struct sock *sk, struct seq_file *f, int i, int *len)
                sock_i_uid(sk),
                icsk->icsk_probes_out,
                sock_i_ino(sk),
@@ -75520,7 +75780,7 @@ index 7963e03..c44f5d0 100644
                jiffies_to_clock_t(icsk->icsk_rto),
                jiffies_to_clock_t(icsk->icsk_ack.ato),
                (icsk->icsk_ack.quick << 1) | icsk->icsk_ack.pingpong,
-@@ -2481,7 +2507,13 @@ static void get_timewait4_sock(struct inet_timewait_sock *tw,
+@@ -2497,7 +2524,13 @@ static void get_timewait4_sock(const struct inet_timewait_sock *tw,
                " %02X %08X:%08X %02X:%08lX %08X %5d %8d %d %d %pK%n",
                i, src, srcp, dest, destp, tw->tw_substate, 0, 0,
                3, jiffies_to_clock_t(ttd), 0, 0, 0, 0,
@@ -75536,7 +75796,7 @@ index 7963e03..c44f5d0 100644
  
  #define TMPSZ 150
 diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
-index 0ce3d06..e182e59 100644
+index 3cabafb..640525b 100644
 --- a/net/ipv4/tcp_minisocks.c
 +++ b/net/ipv4/tcp_minisocks.c
 @@ -27,6 +27,10 @@
@@ -75550,7 +75810,7 @@ index 0ce3d06..e182e59 100644
  int sysctl_tcp_syncookies __read_mostly = 1;
  EXPORT_SYMBOL(sysctl_tcp_syncookies);
  
-@@ -750,6 +754,10 @@ listen_overflow:
+@@ -753,6 +757,10 @@ listen_overflow:
  
  embryonic_reset:
        NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_EMBRYONICRSTS);
@@ -75561,24 +75821,11 @@ index 0ce3d06..e182e59 100644
        if (!(flg & TCP_FLAG_RST))
                req->rsk_ops->send_reset(sk, skb);
  
-diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
-index 882e0b0..2eba47f 100644
---- a/net/ipv4/tcp_output.c
-+++ b/net/ipv4/tcp_output.c
-@@ -2421,6 +2421,8 @@ struct sk_buff *tcp_make_synack(struct sock *sk, struct dst_entry *dst,
-       int mss;
-       int s_data_desired = 0;
-+      pax_track_stack();
-+
-       if (cvp != NULL && cvp->s_data_constant && cvp->s_data_desired)
-               s_data_desired = cvp->s_data_desired;
-       skb = sock_wmalloc(sk, MAX_TCP_HEADER + 15 + s_data_desired, 1, GFP_ATOMIC);
 diff --git a/net/ipv4/tcp_probe.c b/net/ipv4/tcp_probe.c
-index 85ee7eb..53277ab 100644
+index a981cdc..48f4c3a 100644
 --- a/net/ipv4/tcp_probe.c
 +++ b/net/ipv4/tcp_probe.c
-@@ -202,7 +202,7 @@ static ssize_t tcpprobe_read(struct file *file, char __user *buf,
+@@ -204,7 +204,7 @@ static ssize_t tcpprobe_read(struct file *file, char __user *buf,
                if (cnt + width >= len)
                        break;
  
@@ -75588,7 +75835,7 @@ index 85ee7eb..53277ab 100644
                cnt += width;
        }
 diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
-index ecd44b0..b32fba6 100644
+index 34d4a02..3b57f86 100644
 --- a/net/ipv4/tcp_timer.c
 +++ b/net/ipv4/tcp_timer.c
 @@ -22,6 +22,10 @@
@@ -75602,7 +75849,7 @@ index ecd44b0..b32fba6 100644
  int sysctl_tcp_syn_retries __read_mostly = TCP_SYN_RETRIES;
  int sysctl_tcp_synack_retries __read_mostly = TCP_SYNACK_RETRIES;
  int sysctl_tcp_keepalive_time __read_mostly = TCP_KEEPALIVE_TIME;
-@@ -199,6 +203,13 @@ static int tcp_write_timeout(struct sock *sk)
+@@ -196,6 +200,13 @@ static int tcp_write_timeout(struct sock *sk)
                }
        }
  
@@ -75617,10 +75864,10 @@ index ecd44b0..b32fba6 100644
                                  syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
                /* Has it gone just too far? */
 diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
-index 1b5a193..bd354b0 100644
+index fe14105..0618260 100644
 --- a/net/ipv4/udp.c
 +++ b/net/ipv4/udp.c
-@@ -86,6 +86,7 @@
+@@ -87,6 +87,7 @@
  #include <linux/types.h>
  #include <linux/fcntl.h>
  #include <linux/module.h>
@@ -75628,7 +75875,7 @@ index 1b5a193..bd354b0 100644
  #include <linux/socket.h>
  #include <linux/sockios.h>
  #include <linux/igmp.h>
-@@ -108,6 +109,10 @@
+@@ -109,6 +110,10 @@
  #include <trace/events/udp.h>
  #include "udp_impl.h"
  
@@ -75639,7 +75886,7 @@ index 1b5a193..bd354b0 100644
  struct udp_table udp_table __read_mostly;
  EXPORT_SYMBOL(udp_table);
  
-@@ -565,6 +570,9 @@ found:
+@@ -567,6 +572,9 @@ found:
        return s;
  }
  
@@ -75649,7 +75896,7 @@ index 1b5a193..bd354b0 100644
  /*
   * This routine is called by the ICMP module when it gets some
   * sort of error condition.  If err < 0 then the socket should
-@@ -856,9 +864,18 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
+@@ -858,9 +866,18 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
                dport = usin->sin_port;
                if (dport == 0)
                        return -EINVAL;
@@ -75668,7 +75915,7 @@ index 1b5a193..bd354b0 100644
                daddr = inet->inet_daddr;
                dport = inet->inet_dport;
                /* Open fast path for connected socket.
-@@ -1099,7 +1116,7 @@ static unsigned int first_packet_length(struct sock *sk)
+@@ -1102,7 +1119,7 @@ static unsigned int first_packet_length(struct sock *sk)
                udp_lib_checksum_complete(skb)) {
                UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
                                 IS_UDPLITE(sk));
@@ -75677,7 +75924,7 @@ index 1b5a193..bd354b0 100644
                __skb_unlink(skb, rcvq);
                __skb_queue_tail(&list_kill, skb);
        }
-@@ -1185,6 +1202,10 @@ try_again:
+@@ -1188,6 +1205,10 @@ try_again:
        if (!skb)
                goto out;
  
@@ -75686,9 +75933,9 @@ index 1b5a193..bd354b0 100644
 +              goto out_free;
 +
        ulen = skb->len - sizeof(struct udphdr);
-       if (len > ulen)
-               len = ulen;
-@@ -1485,7 +1506,7 @@ int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
+       copied = len;
+       if (copied > ulen)
+@@ -1489,7 +1510,7 @@ int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
  
  drop:
        UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
@@ -75697,7 +75944,7 @@ index 1b5a193..bd354b0 100644
        kfree_skb(skb);
        return -1;
  }
-@@ -1504,7 +1525,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
+@@ -1508,7 +1529,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
                        skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
  
                if (!skb1) {
@@ -75706,7 +75953,7 @@ index 1b5a193..bd354b0 100644
                        UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
                                         IS_UDPLITE(sk));
                        UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
-@@ -1673,6 +1694,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
+@@ -1677,6 +1698,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
                goto csum_error;
  
        UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
@@ -75716,7 +75963,7 @@ index 1b5a193..bd354b0 100644
        icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
  
        /*
-@@ -2100,8 +2124,13 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
+@@ -2094,8 +2118,13 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
                sk_wmem_alloc_get(sp),
                sk_rmem_alloc_get(sp),
                0, 0L, 0, sock_i_uid(sp), 0, sock_i_ino(sp),
@@ -75733,10 +75980,10 @@ index 1b5a193..bd354b0 100644
  
  int udp4_seq_show(struct seq_file *seq, void *v)
 diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
-index 12368c5..fbf899f 100644
+index 7d5cb97..c56564f 100644
 --- a/net/ipv6/addrconf.c
 +++ b/net/ipv6/addrconf.c
-@@ -2083,7 +2083,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
+@@ -2142,7 +2142,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
                p.iph.ihl = 5;
                p.iph.protocol = IPPROTO_IPV6;
                p.iph.ttl = 64;
@@ -75746,7 +75993,7 @@ index 12368c5..fbf899f 100644
                if (ops->ndo_do_ioctl) {
                        mm_segment_t oldfs = get_fs();
 diff --git a/net/ipv6/inet6_connection_sock.c b/net/ipv6/inet6_connection_sock.c
-index 8a58e8c..8b5e631 100644
+index 02dd203..e03fcc9 100644
 --- a/net/ipv6/inet6_connection_sock.c
 +++ b/net/ipv6/inet6_connection_sock.c
 @@ -178,7 +178,7 @@ void __inet6_csk_dst_store(struct sock *sk, struct dst_entry *dst,
@@ -75768,28 +76015,10 @@ index 8a58e8c..8b5e631 100644
                        dst = NULL;
                }
 diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
-index 2fbda5f..26ed683 100644
+index 63dd1f8..e7f53ca 100644
 --- a/net/ipv6/ipv6_sockglue.c
 +++ b/net/ipv6/ipv6_sockglue.c
-@@ -129,6 +129,8 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
-       int val, valbool;
-       int retv = -ENOPROTOOPT;
-+      pax_track_stack();
-+
-       if (optval == NULL)
-               val=0;
-       else {
-@@ -919,6 +921,8 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
-       int len;
-       int val;
-+      pax_track_stack();
-+
-       if (ip6_mroute_opt(optname))
-               return ip6_mroute_getsockopt(sk, optname, optval, optlen);
-@@ -960,7 +964,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
+@@ -990,7 +990,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
                if (sk->sk_type != SOCK_STREAM)
                        return -ENOPROTOOPT;
  
@@ -75799,19 +76028,19 @@ index 2fbda5f..26ed683 100644
                msg.msg_flags = flags;
  
 diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
-index 343852e..c92bd15 100644
+index 5bddea7..82d9d67 100644
 --- a/net/ipv6/raw.c
 +++ b/net/ipv6/raw.c
-@@ -376,7 +376,7 @@ static inline int rawv6_rcv_skb(struct sock * sk, struct sk_buff * skb)
+@@ -377,7 +377,7 @@ static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb)
  {
-       if ((raw6_sk(sk)->checksum || rcu_dereference_raw(sk->sk_filter)) &&
+       if ((raw6_sk(sk)->checksum || rcu_access_pointer(sk->sk_filter)) &&
            skb_checksum_complete(skb)) {
 -              atomic_inc(&sk->sk_drops);
 +              atomic_inc_unchecked(&sk->sk_drops);
                kfree_skb(skb);
                return NET_RX_DROP;
        }
-@@ -403,7 +403,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -405,7 +405,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
        struct raw6_sock *rp = raw6_sk(sk);
  
        if (!xfrm6_policy_check(sk, XFRM_POLICY_IN, skb)) {
@@ -75820,7 +76049,7 @@ index 343852e..c92bd15 100644
                kfree_skb(skb);
                return NET_RX_DROP;
        }
-@@ -427,7 +427,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -429,7 +429,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
  
        if (inet->hdrincl) {
                if (skb_checksum_complete(skb)) {
@@ -75829,7 +76058,7 @@ index 343852e..c92bd15 100644
                        kfree_skb(skb);
                        return NET_RX_DROP;
                }
-@@ -601,7 +601,7 @@ out:
+@@ -602,7 +602,7 @@ out:
        return err;
  }
  
@@ -75838,16 +76067,7 @@ index 343852e..c92bd15 100644
                        struct flowi6 *fl6, struct dst_entry **dstp,
                        unsigned int flags)
  {
-@@ -742,6 +742,8 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk,
-       u16 proto;
-       int err;
-+      pax_track_stack();
-+
-       /* Rough check on arithmetic overflow,
-          better check is made in ip6_append_data().
-        */
-@@ -909,12 +911,15 @@ do_confirm:
+@@ -914,12 +914,15 @@ do_confirm:
  static int rawv6_seticmpfilter(struct sock *sk, int level, int optname,
                               char __user *optval, int optlen)
  {
@@ -75864,7 +76084,7 @@ index 343852e..c92bd15 100644
                return 0;
        default:
                return -ENOPROTOOPT;
-@@ -927,6 +932,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
+@@ -932,6 +935,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
                               char __user *optval, int __user *optlen)
  {
        int len;
@@ -75872,7 +76092,7 @@ index 343852e..c92bd15 100644
  
        switch (optname) {
        case ICMPV6_FILTER:
-@@ -938,7 +944,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
+@@ -943,7 +947,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
                        len = sizeof(struct icmp6_filter);
                if (put_user(len, optlen))
                        return -EFAULT;
@@ -75882,7 +76102,7 @@ index 343852e..c92bd15 100644
                        return -EFAULT;
                return 0;
        default:
-@@ -1245,7 +1252,13 @@ static void raw6_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
+@@ -1250,7 +1255,13 @@ static void raw6_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
                   0, 0L, 0,
                   sock_i_uid(sp), 0,
                   sock_i_ino(sp),
@@ -75898,10 +76118,10 @@ index 343852e..c92bd15 100644
  
  static int raw6_seq_show(struct seq_file *seq, void *v)
 diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
-index 7b8fc57..c6185da 100644
+index 98256cf..7f16dbd 100644
 --- a/net/ipv6/tcp_ipv6.c
 +++ b/net/ipv6/tcp_ipv6.c
-@@ -93,6 +93,10 @@ static struct tcp_md5sig_key *tcp_v6_md5_do_lookup(struct sock *sk,
+@@ -94,6 +94,10 @@ static struct tcp_md5sig_key *tcp_v6_md5_do_lookup(struct sock *sk,
  }
  #endif
  
@@ -75912,7 +76132,7 @@ index 7b8fc57..c6185da 100644
  static void tcp_v6_hash(struct sock *sk)
  {
        if (sk->sk_state != TCP_CLOSE) {
-@@ -1647,6 +1651,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -1542,6 +1546,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
        return 0;
  
  reset:
@@ -75922,7 +76142,7 @@ index 7b8fc57..c6185da 100644
        tcp_v6_send_reset(sk, skb);
  discard:
        if (opt_skb)
-@@ -1726,12 +1733,20 @@ static int tcp_v6_rcv(struct sk_buff *skb)
+@@ -1623,12 +1630,20 @@ static int tcp_v6_rcv(struct sk_buff *skb)
        TCP_SKB_CB(skb)->sacked = 0;
  
        sk = __inet6_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest);
@@ -75945,7 +76165,7 @@ index 7b8fc57..c6185da 100644
  
        if (hdr->hop_limit < inet6_sk(sk)->min_hopcount) {
                NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
-@@ -1779,6 +1794,10 @@ no_tcp_socket:
+@@ -1676,6 +1691,10 @@ no_tcp_socket:
  bad_packet:
                TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
        } else {
@@ -75956,7 +76176,7 @@ index 7b8fc57..c6185da 100644
                tcp_v6_send_reset(NULL, skb);
        }
  
-@@ -2039,7 +2058,13 @@ static void get_openreq6(struct seq_file *seq,
+@@ -1930,7 +1949,13 @@ static void get_openreq6(struct seq_file *seq,
                   uid,
                   0,  /* non standard timer */
                   0, /* open_requests have no inode */
@@ -75971,7 +76191,7 @@ index 7b8fc57..c6185da 100644
  }
  
  static void get_tcp6_sock(struct seq_file *seq, struct sock *sp, int i)
-@@ -2089,7 +2114,12 @@ static void get_tcp6_sock(struct seq_file *seq, struct sock *sp, int i)
+@@ -1980,7 +2005,12 @@ static void get_tcp6_sock(struct seq_file *seq, struct sock *sp, int i)
                   sock_i_uid(sp),
                   icsk->icsk_probes_out,
                   sock_i_ino(sp),
@@ -75985,7 +76205,7 @@ index 7b8fc57..c6185da 100644
                   jiffies_to_clock_t(icsk->icsk_rto),
                   jiffies_to_clock_t(icsk->icsk_ack.ato),
                   (icsk->icsk_ack.quick << 1 ) | icsk->icsk_ack.pingpong,
-@@ -2124,7 +2154,13 @@ static void get_timewait6_sock(struct seq_file *seq,
+@@ -2015,7 +2045,13 @@ static void get_timewait6_sock(struct seq_file *seq,
                   dest->s6_addr32[2], dest->s6_addr32[3], destp,
                   tw->tw_substate, 0, 0,
                   3, jiffies_to_clock_t(ttd), 0, 0, 0, 0,
@@ -76001,7 +76221,7 @@ index 7b8fc57..c6185da 100644
  
  static int tcp6_seq_show(struct seq_file *seq, void *v)
 diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
-index bb95e8e..ae0ee80 100644
+index 37b0699..d323408 100644
 --- a/net/ipv6/udp.c
 +++ b/net/ipv6/udp.c
 @@ -50,6 +50,10 @@
@@ -76015,7 +76235,7 @@ index bb95e8e..ae0ee80 100644
  int ipv6_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2)
  {
        const struct in6_addr *sk_rcv_saddr6 = &inet6_sk(sk)->rcv_saddr;
-@@ -548,7 +552,7 @@ int udpv6_queue_rcv_skb(struct sock * sk, struct sk_buff *skb)
+@@ -551,7 +555,7 @@ int udpv6_queue_rcv_skb(struct sock * sk, struct sk_buff *skb)
  
        return 0;
  drop:
@@ -76024,7 +76244,7 @@ index bb95e8e..ae0ee80 100644
  drop_no_sk_drops_inc:
        UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
        kfree_skb(skb);
-@@ -624,7 +628,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
+@@ -627,7 +631,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
                        continue;
                }
  drop:
@@ -76033,7 +76253,7 @@ index bb95e8e..ae0ee80 100644
                UDP6_INC_STATS_BH(sock_net(sk),
                                UDP_MIB_RCVBUFERRORS, IS_UDPLITE(sk));
                UDP6_INC_STATS_BH(sock_net(sk),
-@@ -779,6 +783,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
+@@ -782,6 +786,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
                UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS,
                                proto == IPPROTO_UDPLITE);
  
@@ -76043,7 +76263,7 @@ index bb95e8e..ae0ee80 100644
                icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0);
  
                kfree_skb(skb);
-@@ -795,7 +802,7 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
+@@ -798,7 +805,7 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
        if (!sock_owned_by_user(sk))
                udpv6_queue_rcv_skb(sk, skb);
        else if (sk_add_backlog(sk, skb)) {
@@ -76052,7 +76272,7 @@ index bb95e8e..ae0ee80 100644
                bh_unlock_sock(sk);
                sock_put(sk);
                goto discard;
-@@ -1406,8 +1413,13 @@ static void udp6_sock_seq_show(struct seq_file *seq, struct sock *sp, int bucket
+@@ -1411,8 +1418,13 @@ static void udp6_sock_seq_show(struct seq_file *seq, struct sock *sp, int bucket
                   0, 0L, 0,
                   sock_i_uid(sp), 0,
                   sock_i_ino(sp),
@@ -76069,10 +76289,10 @@ index bb95e8e..ae0ee80 100644
  
  int udp6_seq_show(struct seq_file *seq, void *v)
 diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c
-index b3cc8b3..baa02d0 100644
+index 6b9d5a0..4dffaf1 100644
 --- a/net/irda/ircomm/ircomm_tty.c
 +++ b/net/irda/ircomm/ircomm_tty.c
-@@ -282,16 +282,16 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
+@@ -281,16 +281,16 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
        add_wait_queue(&self->open_wait, &wait);
  
        IRDA_DEBUG(2, "%s(%d):block_til_ready before block on %s open_count=%d\n",
@@ -76092,7 +76312,7 @@ index b3cc8b3..baa02d0 100644
  
        while (1) {
                if (tty->termios->c_cflag & CBAUD) {
-@@ -331,7 +331,7 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
+@@ -330,7 +330,7 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
                }
  
                IRDA_DEBUG(1, "%s(%d):block_til_ready blocking on %s open_count=%d\n",
@@ -76101,7 +76321,7 @@ index b3cc8b3..baa02d0 100644
  
                schedule();
        }
-@@ -342,13 +342,13 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
+@@ -341,13 +341,13 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
        if (extra_count) {
                /* ++ is not atomic, so this should be protected - Jean II */
                spin_lock_irqsave(&self->spinlock, flags);
@@ -76118,7 +76338,7 @@ index b3cc8b3..baa02d0 100644
  
        if (!retval)
                self->flags |= ASYNC_NORMAL_ACTIVE;
-@@ -417,14 +417,14 @@ static int ircomm_tty_open(struct tty_struct *tty, struct file *filp)
+@@ -412,14 +412,14 @@ static int ircomm_tty_open(struct tty_struct *tty, struct file *filp)
        }
        /* ++ is not atomic, so this should be protected - Jean II */
        spin_lock_irqsave(&self->spinlock, flags);
@@ -76135,7 +76355,7 @@ index b3cc8b3..baa02d0 100644
  
        /* Not really used by us, but lets do it anyway */
        self->tty->low_latency = (self->flags & ASYNC_LOW_LATENCY) ? 1 : 0;
-@@ -510,7 +510,7 @@ static void ircomm_tty_close(struct tty_struct *tty, struct file *filp)
+@@ -505,7 +505,7 @@ static void ircomm_tty_close(struct tty_struct *tty, struct file *filp)
                return;
        }
  
@@ -76144,7 +76364,7 @@ index b3cc8b3..baa02d0 100644
                /*
                 * Uh, oh.  tty->count is 1, which means that the tty
                 * structure will be freed.  state->count should always
-@@ -520,16 +520,16 @@ static void ircomm_tty_close(struct tty_struct *tty, struct file *filp)
+@@ -515,16 +515,16 @@ static void ircomm_tty_close(struct tty_struct *tty, struct file *filp)
                 */
                IRDA_DEBUG(0, "%s(), bad serial port count; "
                           "tty->count is 1, state->count is %d\n", __func__ ,
@@ -76167,7 +76387,7 @@ index b3cc8b3..baa02d0 100644
                spin_unlock_irqrestore(&self->spinlock, flags);
  
                IRDA_DEBUG(0, "%s(), open count > 0\n", __func__ );
-@@ -561,7 +561,7 @@ static void ircomm_tty_close(struct tty_struct *tty, struct file *filp)
+@@ -556,7 +556,7 @@ static void ircomm_tty_close(struct tty_struct *tty, struct file *filp)
        tty->closing = 0;
        self->tty = NULL;
  
@@ -76176,7 +76396,7 @@ index b3cc8b3..baa02d0 100644
                if (self->close_delay)
                        schedule_timeout_interruptible(self->close_delay);
                wake_up_interruptible(&self->open_wait);
-@@ -1013,7 +1013,7 @@ static void ircomm_tty_hangup(struct tty_struct *tty)
+@@ -1008,7 +1008,7 @@ static void ircomm_tty_hangup(struct tty_struct *tty)
        spin_lock_irqsave(&self->spinlock, flags);
        self->flags &= ~ASYNC_NORMAL_ACTIVE;
        self->tty = NULL;
@@ -76185,7 +76405,7 @@ index b3cc8b3..baa02d0 100644
        spin_unlock_irqrestore(&self->spinlock, flags);
  
        wake_up_interruptible(&self->open_wait);
-@@ -1360,7 +1360,7 @@ static void ircomm_tty_line_info(struct ircomm_tty_cb *self, struct seq_file *m)
+@@ -1355,7 +1355,7 @@ static void ircomm_tty_line_info(struct ircomm_tty_cb *self, struct seq_file *m)
        seq_putc(m, '\n');
  
        seq_printf(m, "Role: %s\n", self->client ? "client" : "server");
@@ -76195,10 +76415,10 @@ index b3cc8b3..baa02d0 100644
        seq_printf(m, "Max header size: %d\n", self->max_header_size);
  
 diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
-index e2013e4..edfc1e3 100644
+index cd6f7a9..e63fe89 100644
 --- a/net/iucv/af_iucv.c
 +++ b/net/iucv/af_iucv.c
-@@ -648,10 +648,10 @@ static int iucv_sock_autobind(struct sock *sk)
+@@ -782,10 +782,10 @@ static int iucv_sock_autobind(struct sock *sk)
  
        write_lock_bh(&iucv_sk_list.lock);
  
@@ -76212,19 +76432,10 @@ index e2013e4..edfc1e3 100644
  
        write_unlock_bh(&iucv_sk_list.lock);
 diff --git a/net/key/af_key.c b/net/key/af_key.c
-index 1e733e9..c84de2f 100644
+index 7e5d927..cdbb54e 100644
 --- a/net/key/af_key.c
 +++ b/net/key/af_key.c
-@@ -2481,6 +2481,8 @@ static int pfkey_migrate(struct sock *sk, struct sk_buff *skb,
-       struct xfrm_migrate m[XFRM_MAX_DEPTH];
-       struct xfrm_kmaddress k;
-+      pax_track_stack();
-+
-       if (!present_and_same_family(ext_hdrs[SADB_EXT_ADDRESS_SRC - 1],
-                                    ext_hdrs[SADB_EXT_ADDRESS_DST - 1]) ||
-           !ext_hdrs[SADB_X_EXT_POLICY - 1]) {
-@@ -3016,10 +3018,10 @@ static int pfkey_send_policy_notify(struct xfrm_policy *xp, int dir, const struc
+@@ -3016,10 +3016,10 @@ static int pfkey_send_policy_notify(struct xfrm_policy *xp, int dir, const struc
  static u32 get_acqseq(void)
  {
        u32 res;
@@ -76237,100 +76448,11 @@ index 1e733e9..c84de2f 100644
        } while (!res);
        return res;
  }
-diff --git a/net/lapb/lapb_iface.c b/net/lapb/lapb_iface.c
-index 956b7e4..f01d328 100644
---- a/net/lapb/lapb_iface.c
-+++ b/net/lapb/lapb_iface.c
-@@ -158,7 +158,7 @@ int lapb_register(struct net_device *dev, struct lapb_register_struct *callbacks
-               goto out;
-       lapb->dev       = dev;
--      lapb->callbacks = *callbacks;
-+      lapb->callbacks = callbacks;
-       __lapb_insert_cb(lapb);
-@@ -380,32 +380,32 @@ int lapb_data_received(struct net_device *dev, struct sk_buff *skb)
- void lapb_connect_confirmation(struct lapb_cb *lapb, int reason)
- {
--      if (lapb->callbacks.connect_confirmation)
--              lapb->callbacks.connect_confirmation(lapb->dev, reason);
-+      if (lapb->callbacks->connect_confirmation)
-+              lapb->callbacks->connect_confirmation(lapb->dev, reason);
- }
- void lapb_connect_indication(struct lapb_cb *lapb, int reason)
- {
--      if (lapb->callbacks.connect_indication)
--              lapb->callbacks.connect_indication(lapb->dev, reason);
-+      if (lapb->callbacks->connect_indication)
-+              lapb->callbacks->connect_indication(lapb->dev, reason);
- }
- void lapb_disconnect_confirmation(struct lapb_cb *lapb, int reason)
- {
--      if (lapb->callbacks.disconnect_confirmation)
--              lapb->callbacks.disconnect_confirmation(lapb->dev, reason);
-+      if (lapb->callbacks->disconnect_confirmation)
-+              lapb->callbacks->disconnect_confirmation(lapb->dev, reason);
- }
- void lapb_disconnect_indication(struct lapb_cb *lapb, int reason)
- {
--      if (lapb->callbacks.disconnect_indication)
--              lapb->callbacks.disconnect_indication(lapb->dev, reason);
-+      if (lapb->callbacks->disconnect_indication)
-+              lapb->callbacks->disconnect_indication(lapb->dev, reason);
- }
- int lapb_data_indication(struct lapb_cb *lapb, struct sk_buff *skb)
- {
--      if (lapb->callbacks.data_indication)
--              return lapb->callbacks.data_indication(lapb->dev, skb);
-+      if (lapb->callbacks->data_indication)
-+              return lapb->callbacks->data_indication(lapb->dev, skb);
-       kfree_skb(skb);
-       return NET_RX_SUCCESS; /* For now; must be != NET_RX_DROP */
-@@ -415,8 +415,8 @@ int lapb_data_transmit(struct lapb_cb *lapb, struct sk_buff *skb)
- {
-       int used = 0;
--      if (lapb->callbacks.data_transmit) {
--              lapb->callbacks.data_transmit(lapb->dev, skb);
-+      if (lapb->callbacks->data_transmit) {
-+              lapb->callbacks->data_transmit(lapb->dev, skb);
-               used = 1;
-       }
-diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
-index a01d213..6a1f1ab 100644
---- a/net/mac80211/debugfs_sta.c
-+++ b/net/mac80211/debugfs_sta.c
-@@ -140,6 +140,8 @@ static ssize_t sta_agg_status_read(struct file *file, char __user *userbuf,
-       struct tid_ampdu_rx *tid_rx;
-       struct tid_ampdu_tx *tid_tx;
-+      pax_track_stack();
-+
-       rcu_read_lock();
-       p += scnprintf(p, sizeof(buf) + buf - p, "next dialog_token: %#02x\n",
-@@ -240,6 +242,8 @@ static ssize_t sta_ht_capa_read(struct file *file, char __user *userbuf,
-       struct sta_info *sta = file->private_data;
-       struct ieee80211_sta_ht_cap *htc = &sta->sta.ht_cap;
-+      pax_track_stack();
-+
-       p += scnprintf(p, sizeof(buf) + buf - p, "ht %ssupported\n",
-                       htc->ht_supported ? "" : "not ");
-       if (htc->ht_supported) {
 diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
-index 9fab144..7f0fc14 100644
+index db8fae5..ff070cd 100644
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -27,6 +27,7 @@
+@@ -28,6 +28,7 @@
  #include <net/ieee80211_radiotap.h>
  #include <net/cfg80211.h>
  #include <net/mac80211.h>
@@ -76338,7 +76460,7 @@ index 9fab144..7f0fc14 100644
  #include "key.h"
  #include "sta_info.h"
  
-@@ -754,7 +755,7 @@ struct ieee80211_local {
+@@ -842,7 +843,7 @@ struct ieee80211_local {
        /* also used to protect ampdu_ac_queue and amdpu_ac_stop_refcnt */
        spinlock_t queue_stop_reason_lock;
  
@@ -76348,10 +76470,10 @@ index 9fab144..7f0fc14 100644
        /* number of interfaces with corresponding FIF_ flags */
        int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
 diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
-index 556e7e6..120dcaf 100644
+index 48f937e..4ccd7b8 100644
 --- a/net/mac80211/iface.c
 +++ b/net/mac80211/iface.c
-@@ -211,7 +211,7 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up)
+@@ -222,7 +222,7 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up)
                break;
        }
  
@@ -76360,7 +76482,7 @@ index 556e7e6..120dcaf 100644
                res = drv_start(local);
                if (res)
                        goto err_del_bss;
-@@ -235,7 +235,7 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up)
+@@ -246,7 +246,7 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up)
                memcpy(dev->perm_addr, dev->dev_addr, ETH_ALEN);
  
                if (!is_valid_ether_addr(dev->dev_addr)) {
@@ -76369,25 +76491,25 @@ index 556e7e6..120dcaf 100644
                                drv_stop(local);
                        return -EADDRNOTAVAIL;
                }
-@@ -327,7 +327,7 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up)
+@@ -347,7 +347,7 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up)
        mutex_unlock(&local->mtx);
  
        if (coming_up)
 -              local->open_count++;
 +              local_inc(&local->open_count);
  
-       if (hw_reconf_flags) {
+       if (hw_reconf_flags)
                ieee80211_hw_config(local, hw_reconf_flags);
-@@ -347,7 +347,7 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up)
+@@ -360,7 +360,7 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up)
   err_del_interface:
-       drv_remove_interface(local, &sdata->vif);
+       drv_remove_interface(local, sdata);
   err_stop:
 -      if (!local->open_count)
 +      if (!local_read(&local->open_count))
                drv_stop(local);
   err_del_bss:
        sdata->bss = NULL;
-@@ -474,7 +474,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
+@@ -491,7 +491,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
        }
  
        if (going_down)
@@ -76396,7 +76518,7 @@ index 556e7e6..120dcaf 100644
  
        switch (sdata->vif.type) {
        case NL80211_IFTYPE_AP_VLAN:
-@@ -533,7 +533,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
+@@ -562,7 +562,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
  
        ieee80211_recalc_ps(local, -1);
  
@@ -76406,10 +76528,10 @@ index 556e7e6..120dcaf 100644
                        napi_disable(&local->napi);
                ieee80211_clear_tx_pending(local);
 diff --git a/net/mac80211/main.c b/net/mac80211/main.c
-index 3d90dad..36884d5 100644
+index 1633648..d45ebfa 100644
 --- a/net/mac80211/main.c
 +++ b/net/mac80211/main.c
-@@ -209,7 +209,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
+@@ -164,7 +164,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
                local->hw.conf.power_level = power;
        }
  
@@ -76418,21 +76540,8 @@ index 3d90dad..36884d5 100644
                ret = drv_config(local, changed);
                /*
                 * Goal:
-diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
-index 0f48368..d48e688 100644
---- a/net/mac80211/mlme.c
-+++ b/net/mac80211/mlme.c
-@@ -1464,6 +1464,8 @@ static bool ieee80211_assoc_success(struct ieee80211_work *wk,
-       bool have_higher_than_11mbit = false;
-       u16 ap_ht_cap_flags;
-+      pax_track_stack();
-+
-       /* AssocResp and ReassocResp have identical structure */
-       aid = le16_to_cpu(mgmt->u.assoc_resp.aid);
 diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
-index 6326d34..7225f61 100644
+index ef8eba1..5c63952 100644
 --- a/net/mac80211/pm.c
 +++ b/net/mac80211/pm.c
 @@ -34,7 +34,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
@@ -76453,7 +76562,7 @@ index 6326d34..7225f61 100644
        if (local->wowlan) {
                int err = drv_suspend(local, wowlan);
                if (err < 0) {
-@@ -129,7 +129,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
+@@ -128,7 +128,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
        }
  
        /* stop hardware - this must stop RX */
@@ -76463,10 +76572,10 @@ index 6326d34..7225f61 100644
  
   suspend:
 diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
-index 3d5a2cb..b17ad48 100644
+index 3313c11..bec9f17 100644
 --- a/net/mac80211/rate.c
 +++ b/net/mac80211/rate.c
-@@ -371,7 +371,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
+@@ -494,7 +494,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
  
        ASSERT_RTNL();
  
@@ -76476,10 +76585,10 @@ index 3d5a2cb..b17ad48 100644
  
        if (local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL) {
 diff --git a/net/mac80211/rc80211_pid_debugfs.c b/net/mac80211/rc80211_pid_debugfs.c
-index 4851e9e..d860e05 100644
+index c97a065..ff61928 100644
 --- a/net/mac80211/rc80211_pid_debugfs.c
 +++ b/net/mac80211/rc80211_pid_debugfs.c
-@@ -192,7 +192,7 @@ static ssize_t rate_control_pid_events_read(struct file *file, char __user *buf,
+@@ -193,7 +193,7 @@ static ssize_t rate_control_pid_events_read(struct file *file, char __user *buf,
  
        spin_unlock_irqrestore(&events->lock, status);
  
@@ -76489,12 +76598,12 @@ index 4851e9e..d860e05 100644
  
        return p;
 diff --git a/net/mac80211/util.c b/net/mac80211/util.c
-index fd031e8..84fbfcf 100644
+index eb9d7c0..d34b832 100644
 --- a/net/mac80211/util.c
 +++ b/net/mac80211/util.c
-@@ -1170,7 +1170,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
-       drv_set_coverage_class(local, hw->wiphy->coverage_class);
+@@ -1179,7 +1179,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
+       }
+ #endif
        /* everything else happens only if HW was up & running */
 -      if (!local->open_count)
 +      if (!local_read(&local->open_count))
@@ -76502,10 +76611,10 @@ index fd031e8..84fbfcf 100644
  
        /*
 diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
-index 32bff6d..d0cf986 100644
+index 0c6f67e..d02cdfc 100644
 --- a/net/netfilter/Kconfig
 +++ b/net/netfilter/Kconfig
-@@ -781,6 +781,16 @@ config NETFILTER_XT_MATCH_ESP
+@@ -836,6 +836,16 @@ config NETFILTER_XT_MATCH_ESP
  
          To compile it as a module, choose M here.  If unsure, say N.
  
@@ -76523,19 +76632,19 @@ index 32bff6d..d0cf986 100644
        tristate '"hashlimit" match support'
        depends on (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n)
 diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
-index 1a02853..5d8c22e 100644
+index ca36765..0882e7c 100644
 --- a/net/netfilter/Makefile
 +++ b/net/netfilter/Makefile
-@@ -81,6 +81,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_DCCP) += xt_dccp.o
- obj-$(CONFIG_NETFILTER_XT_MATCH_DEVGROUP) += xt_devgroup.o
+@@ -86,6 +86,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_DEVGROUP) += xt_devgroup.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
+ obj-$(CONFIG_NETFILTER_XT_MATCH_ECN) += xt_ecn.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_ESP) += xt_esp.o
 +obj-$(CONFIG_NETFILTER_XT_MATCH_GRADM) += xt_gradm.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o
 diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
-index 12571fb..fb73976 100644
+index 29fa5ba..8debc79 100644
 --- a/net/netfilter/ipvs/ip_vs_conn.c
 +++ b/net/netfilter/ipvs/ip_vs_conn.c
 @@ -556,7 +556,7 @@ ip_vs_bind_dest(struct ip_vs_conn *cp, struct ip_vs_dest *dest)
@@ -76566,10 +76675,10 @@ index 12571fb..fb73976 100644
  
        if (!todrop_rate[i]) return 0;
 diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
-index 4f77bb1..5d0bc26 100644
+index 00bdb1d..6725a48 100644
 --- a/net/netfilter/ipvs/ip_vs_core.c
 +++ b/net/netfilter/ipvs/ip_vs_core.c
-@@ -563,7 +563,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
+@@ -562,7 +562,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
                ret = cp->packet_xmit(skb, cp, pd->pp);
                /* do not touch skb anymore */
  
@@ -76578,7 +76687,7 @@ index 4f77bb1..5d0bc26 100644
                ip_vs_conn_put(cp);
                return ret;
        }
-@@ -1612,7 +1612,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
+@@ -1611,7 +1611,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
        if (cp->flags & IP_VS_CONN_F_ONE_PACKET)
                pkts = sysctl_sync_threshold(ipvs);
        else
@@ -76588,10 +76697,10 @@ index 4f77bb1..5d0bc26 100644
        if ((ipvs->sync_state & IP_VS_STATE_MASTER) &&
            cp->protocol == IPPROTO_SCTP) {
 diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
-index e3be48b..d658c8c 100644
+index f558998..7dfb054 100644
 --- a/net/netfilter/ipvs/ip_vs_ctl.c
 +++ b/net/netfilter/ipvs/ip_vs_ctl.c
-@@ -782,7 +782,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest,
+@@ -788,7 +788,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest,
                ip_vs_rs_hash(ipvs, dest);
                write_unlock_bh(&ipvs->rs_lock);
        }
@@ -76600,7 +76709,30 @@ index e3be48b..d658c8c 100644
  
        /* bind the service */
        if (!dest->svc) {
-@@ -2027,7 +2027,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
+@@ -1521,11 +1521,12 @@ static int ip_vs_dst_event(struct notifier_block *this, unsigned long event,
+ {
+       struct net_device *dev = ptr;
+       struct net *net = dev_net(dev);
++      struct netns_ipvs *ipvs = net_ipvs(net);
+       struct ip_vs_service *svc;
+       struct ip_vs_dest *dest;
+       unsigned int idx;
+-      if (event != NETDEV_UNREGISTER)
++      if (event != NETDEV_UNREGISTER || !ipvs)
+               return NOTIFY_DONE;
+       IP_VS_DBG(3, "%s() dev=%s\n", __func__, dev->name);
+       EnterFunction(2);
+@@ -1551,7 +1552,7 @@ static int ip_vs_dst_event(struct notifier_block *this, unsigned long event,
+               }
+       }
+-      list_for_each_entry(dest, &net_ipvs(net)->dest_trash, n_list) {
++      list_for_each_entry(dest, &ipvs->dest_trash, n_list) {
+               __ip_vs_dev_reset(dest, dev);
+       }
+       mutex_unlock(&__ip_vs_mutex);
+@@ -2028,7 +2029,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
                                           "      %-7s %-6d %-10d %-10d\n",
                                           &dest->addr.in6,
                                           ntohs(dest->port),
@@ -76609,7 +76741,7 @@ index e3be48b..d658c8c 100644
                                           atomic_read(&dest->weight),
                                           atomic_read(&dest->activeconns),
                                           atomic_read(&dest->inactconns));
-@@ -2038,7 +2038,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
+@@ -2039,7 +2040,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
                                           "%-7s %-6d %-10d %-10d\n",
                                           ntohl(dest->addr.ip),
                                           ntohs(dest->port),
@@ -76618,16 +76750,7 @@ index e3be48b..d658c8c 100644
                                           atomic_read(&dest->weight),
                                           atomic_read(&dest->activeconns),
                                           atomic_read(&dest->inactconns));
-@@ -2285,6 +2285,8 @@ do_ip_vs_set_ctl(struct sock *sk, int cmd, void __user *user, unsigned int len)
-       struct ip_vs_dest_user_kern udest;
-       struct netns_ipvs *ipvs = net_ipvs(net);
-+      pax_track_stack();
-+
-       if (!capable(CAP_NET_ADMIN))
-               return -EPERM;
-@@ -2508,7 +2510,7 @@ __ip_vs_get_dest_entries(struct net *net, const struct ip_vs_get_dests *get,
+@@ -2509,7 +2510,7 @@ __ip_vs_get_dest_entries(struct net *net, const struct ip_vs_get_dests *get,
  
                        entry.addr = dest->addr.ip;
                        entry.port = dest->port;
@@ -76636,7 +76759,7 @@ index e3be48b..d658c8c 100644
                        entry.weight = atomic_read(&dest->weight);
                        entry.u_threshold = dest->u_threshold;
                        entry.l_threshold = dest->l_threshold;
-@@ -3041,7 +3043,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
+@@ -3042,7 +3043,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
        NLA_PUT_U16(skb, IPVS_DEST_ATTR_PORT, dest->port);
  
        NLA_PUT_U32(skb, IPVS_DEST_ATTR_FWD_METHOD,
@@ -76646,7 +76769,7 @@ index e3be48b..d658c8c 100644
        NLA_PUT_U32(skb, IPVS_DEST_ATTR_U_THRESH, dest->u_threshold);
        NLA_PUT_U32(skb, IPVS_DEST_ATTR_L_THRESH, dest->l_threshold);
 diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
-index 3cdd479..116afa8 100644
+index 8a0d6d6..90ec197 100644
 --- a/net/netfilter/ipvs/ip_vs_sync.c
 +++ b/net/netfilter/ipvs/ip_vs_sync.c
 @@ -649,7 +649,7 @@ control:
@@ -76668,7 +76791,7 @@ index 3cdd479..116afa8 100644
        cp->old_state = cp->state;
        /*
 diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
-index ee319a4..8a285ee 100644
+index 7fd66de..e6fb361 100644
 --- a/net/netfilter/ipvs/ip_vs_xmit.c
 +++ b/net/netfilter/ipvs/ip_vs_xmit.c
 @@ -1151,7 +1151,7 @@ ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
@@ -76690,7 +76813,7 @@ index ee319a4..8a285ee 100644
        }
  
 diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
-index 2d8158a..5dca296 100644
+index 66b2c54..c7884e3 100644
 --- a/net/netfilter/nfnetlink_log.c
 +++ b/net/netfilter/nfnetlink_log.c
 @@ -70,7 +70,7 @@ struct nfulnl_instance {
@@ -76702,7 +76825,7 @@ index 2d8158a..5dca296 100644
  
  #define INSTANCE_BUCKETS      16
  static struct hlist_head instance_table[INSTANCE_BUCKETS];
-@@ -505,7 +505,7 @@ __build_packet_message(struct nfulnl_instance *inst,
+@@ -502,7 +502,7 @@ __build_packet_message(struct nfulnl_instance *inst,
        /* global sequence number */
        if (inst->flags & NFULNL_CFG_F_SEQ_GLOBAL)
                NLA_PUT_BE32(inst->skb, NFULA_SEQ_GLOBAL,
@@ -76769,11 +76892,11 @@ index 0000000..6905327
 +MODULE_ALIAS("ipt_gradm");
 +MODULE_ALIAS("ip6t_gradm");
 diff --git a/net/netfilter/xt_statistic.c b/net/netfilter/xt_statistic.c
-index 42ecb71..8d687c0 100644
+index 4fe4fb4..87a89e5 100644
 --- a/net/netfilter/xt_statistic.c
 +++ b/net/netfilter/xt_statistic.c
-@@ -18,7 +18,7 @@
- #include <linux/netfilter/x_tables.h>
+@@ -19,7 +19,7 @@
+ #include <linux/module.h>
  
  struct xt_statistic_priv {
 -      atomic_t count;
@@ -76781,7 +76904,7 @@ index 42ecb71..8d687c0 100644
  } ____cacheline_aligned_in_smp;
  
  MODULE_LICENSE("GPL");
-@@ -41,9 +41,9 @@ statistic_mt(const struct sk_buff *skb, struct xt_action_param *par)
+@@ -42,9 +42,9 @@ statistic_mt(const struct sk_buff *skb, struct xt_action_param *par)
                break;
        case XT_STATISTIC_MODE_NTH:
                do {
@@ -76793,7 +76916,7 @@ index 42ecb71..8d687c0 100644
                if (nval == 0)
                        ret = !ret;
                break;
-@@ -63,7 +63,7 @@ static int statistic_mt_check(const struct xt_mtchk_param *par)
+@@ -64,7 +64,7 @@ static int statistic_mt_check(const struct xt_mtchk_param *par)
        info->master = kzalloc(sizeof(*info->master), GFP_KERNEL);
        if (info->master == NULL)
                return -ENOMEM;
@@ -76803,10 +76926,10 @@ index 42ecb71..8d687c0 100644
        return 0;
  }
 diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
-index 0a4db02..604f748 100644
+index faa48f7..65f7f54 100644
 --- a/net/netlink/af_netlink.c
 +++ b/net/netlink/af_netlink.c
-@@ -742,7 +742,7 @@ static void netlink_overrun(struct sock *sk)
+@@ -741,7 +741,7 @@ static void netlink_overrun(struct sock *sk)
                        sk->sk_error_report(sk);
                }
        }
@@ -76815,7 +76938,7 @@ index 0a4db02..604f748 100644
  }
  
  static struct sock *netlink_getsockbypid(struct sock *ssk, u32 pid)
-@@ -2000,7 +2000,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
+@@ -2013,7 +2013,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
                           sk_wmem_alloc_get(s),
                           nlk->cb,
                           atomic_read(&s->sk_refcnt),
@@ -76825,10 +76948,10 @@ index 0a4db02..604f748 100644
                        );
  
 diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
-index 732152f..60bb09e 100644
+index 06592d8..64860f6 100644
 --- a/net/netrom/af_netrom.c
 +++ b/net/netrom/af_netrom.c
-@@ -839,6 +839,7 @@ static int nr_getname(struct socket *sock, struct sockaddr *uaddr,
+@@ -838,6 +838,7 @@ static int nr_getname(struct socket *sock, struct sockaddr *uaddr,
        struct sock *sk = sock->sk;
        struct nr_sock *nr = nr_sk(sk);
  
@@ -76836,7 +76959,7 @@ index 732152f..60bb09e 100644
        lock_sock(sk);
        if (peer != 0) {
                if (sk->sk_state != TCP_ESTABLISHED) {
-@@ -853,7 +854,6 @@ static int nr_getname(struct socket *sock, struct sockaddr *uaddr,
+@@ -852,7 +853,6 @@ static int nr_getname(struct socket *sock, struct sockaddr *uaddr,
                *uaddr_len = sizeof(struct full_sockaddr_ax25);
        } else {
                sax->fsa_ax25.sax25_family = AF_NETROM;
@@ -76845,10 +76968,10 @@ index 732152f..60bb09e 100644
                *uaddr_len = sizeof(struct sockaddr_ax25);
        }
 diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
-index fabb4fa..e146b73 100644
+index 4f2c0df..f0ff342 100644
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -954,7 +954,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -1687,7 +1687,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
  
        spin_lock(&sk->sk_receive_queue.lock);
        po->stats.tp_packets++;
@@ -76857,7 +76980,7 @@ index fabb4fa..e146b73 100644
        __skb_queue_tail(&sk->sk_receive_queue, skb);
        spin_unlock(&sk->sk_receive_queue.lock);
        sk->sk_data_ready(sk, skb->len);
-@@ -963,7 +963,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -1696,7 +1696,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
  drop_n_acct:
        spin_lock(&sk->sk_receive_queue.lock);
        po->stats.tp_drops++;
@@ -76866,7 +76989,7 @@ index fabb4fa..e146b73 100644
        spin_unlock(&sk->sk_receive_queue.lock);
  
  drop_n_restore:
-@@ -2479,7 +2479,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
+@@ -3294,7 +3294,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
        case PACKET_HDRLEN:
                if (len > sizeof(int))
                        len = sizeof(int);
@@ -76875,7 +76998,7 @@ index fabb4fa..e146b73 100644
                        return -EFAULT;
                switch (val) {
                case TPACKET_V1:
-@@ -2526,7 +2526,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
+@@ -3344,7 +3344,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
  
        if (put_user(len, optlen))
                return -EFAULT;
@@ -76885,7 +77008,7 @@ index fabb4fa..e146b73 100644
        return 0;
  }
 diff --git a/net/phonet/af_phonet.c b/net/phonet/af_phonet.c
-index c6fffd9..a7ffa0c 100644
+index d65f699..05aa6ce 100644
 --- a/net/phonet/af_phonet.c
 +++ b/net/phonet/af_phonet.c
 @@ -41,7 +41,7 @@ static struct phonet_protocol *phonet_proto_get(unsigned int protocol)
@@ -76907,10 +77030,10 @@ index c6fffd9..a7ffa0c 100644
  
        err = proto_register(pp->prot, 1);
 diff --git a/net/phonet/pep.c b/net/phonet/pep.c
-index f17fd84..edffce8 100644
+index 9726fe6..fc4e3a4 100644
 --- a/net/phonet/pep.c
 +++ b/net/phonet/pep.c
-@@ -387,7 +387,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -388,7 +388,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
  
        case PNS_PEP_CTRL_REQ:
                if (skb_queue_len(&pn->ctrlreq_queue) >= PNPIPE_CTRLREQ_MAX) {
@@ -76919,7 +77042,7 @@ index f17fd84..edffce8 100644
                        break;
                }
                __skb_pull(skb, 4);
-@@ -408,7 +408,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -409,7 +409,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
                }
  
                if (pn->rx_credits == 0) {
@@ -76928,7 +77051,7 @@ index f17fd84..edffce8 100644
                        err = -ENOBUFS;
                        break;
                }
-@@ -556,7 +556,7 @@ static int pipe_handler_do_rcv(struct sock *sk, struct sk_buff *skb)
+@@ -580,7 +580,7 @@ static int pipe_handler_do_rcv(struct sock *sk, struct sk_buff *skb)
                }
  
                if (pn->rx_credits == 0) {
@@ -76938,10 +77061,10 @@ index f17fd84..edffce8 100644
                        break;
                }
 diff --git a/net/phonet/socket.c b/net/phonet/socket.c
-index ab07711..9d4ac5d 100644
+index 4c7eff3..59c727f 100644
 --- a/net/phonet/socket.c
 +++ b/net/phonet/socket.c
-@@ -612,8 +612,13 @@ static int pn_sock_seq_show(struct seq_file *seq, void *v)
+@@ -613,8 +613,13 @@ static int pn_sock_seq_show(struct seq_file *seq, void *v)
                        pn->resource, sk->sk_state,
                        sk_wmem_alloc_get(sk), sk_rmem_alloc_get(sk),
                        sock_i_uid(sk), sock_i_ino(sk),
@@ -76958,10 +77081,10 @@ index ab07711..9d4ac5d 100644
        seq_printf(seq, "%*s\n", 127 - len, "");
        return 0;
 diff --git a/net/rds/cong.c b/net/rds/cong.c
-index 6daaa49..fbf6af5 100644
+index e5b65ac..f3b6fb7 100644
 --- a/net/rds/cong.c
 +++ b/net/rds/cong.c
-@@ -77,7 +77,7 @@
+@@ -78,7 +78,7 @@
   * finds that the saved generation number is smaller than the global generation
   * number, it wakes up the process.
   */
@@ -76970,7 +77093,7 @@ index 6daaa49..fbf6af5 100644
  
  /*
   * Congestion monitoring
-@@ -232,7 +232,7 @@ void rds_cong_map_updated(struct rds_cong_map *map, uint64_t portmask)
+@@ -233,7 +233,7 @@ void rds_cong_map_updated(struct rds_cong_map *map, uint64_t portmask)
        rdsdebug("waking map %p for %pI4\n",
          map, &map->m_addr);
        rds_stats_inc(s_cong_update_received);
@@ -76979,7 +77102,7 @@ index 6daaa49..fbf6af5 100644
        if (waitqueue_active(&map->m_waitq))
                wake_up(&map->m_waitq);
        if (waitqueue_active(&rds_poll_waitq))
-@@ -258,7 +258,7 @@ EXPORT_SYMBOL_GPL(rds_cong_map_updated);
+@@ -259,7 +259,7 @@ EXPORT_SYMBOL_GPL(rds_cong_map_updated);
  
  int rds_cong_updated_since(unsigned long *recent)
  {
@@ -77002,10 +77125,10 @@ index edfaaaf..8c89879 100644
        spinlock_t              i_ack_lock;     /* protect i_ack_next */
        u64                     i_ack_next;     /* next ACK to send */
 diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
-index cd67026..0b9a54a 100644
+index a1e1162..265e129 100644
 --- a/net/rds/ib_cm.c
 +++ b/net/rds/ib_cm.c
-@@ -720,7 +720,7 @@ void rds_ib_conn_shutdown(struct rds_connection *conn)
+@@ -718,7 +718,7 @@ void rds_ib_conn_shutdown(struct rds_connection *conn)
        /* Clear the ACK state */
        clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags);
  #ifdef KERNEL_HAS_ATOMIC64
@@ -77015,7 +77138,7 @@ index cd67026..0b9a54a 100644
        ic->i_ack_next = 0;
  #endif
 diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c
-index e29e0ca..fa3a6a3 100644
+index 8d19491..05a3e65 100644
 --- a/net/rds/ib_recv.c
 +++ b/net/rds/ib_recv.c
 @@ -592,7 +592,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
@@ -77050,7 +77173,7 @@ index 04ce3b1..48119a6 100644
        spinlock_t              i_ack_lock;     /* protect i_ack_next */
        u64                     i_ack_next;     /* next ACK to send */
 diff --git a/net/rds/iw_cm.c b/net/rds/iw_cm.c
-index 9556d28..f046d0e 100644
+index a91e1db..cf3053f 100644
 --- a/net/rds/iw_cm.c
 +++ b/net/rds/iw_cm.c
 @@ -663,7 +663,7 @@ void rds_iw_conn_shutdown(struct rds_connection *conn)
@@ -77062,21 +77185,8 @@ index 9556d28..f046d0e 100644
  #else
        ic->i_ack_next = 0;
  #endif
-diff --git a/net/rds/iw_rdma.c b/net/rds/iw_rdma.c
-index 4e1de17..d121708 100644
---- a/net/rds/iw_rdma.c
-+++ b/net/rds/iw_rdma.c
-@@ -184,6 +184,8 @@ int rds_iw_update_cm_id(struct rds_iw_device *rds_iwdev, struct rdma_cm_id *cm_i
-       struct rdma_cm_id *pcm_id;
-       int rc;
-+      pax_track_stack();
-+
-       src_addr = (struct sockaddr_in *)&cm_id->route.addr.src_addr;
-       dst_addr = (struct sockaddr_in *)&cm_id->route.addr.dst_addr;
 diff --git a/net/rds/iw_recv.c b/net/rds/iw_recv.c
-index 5e57347..3916042 100644
+index 4503335..db566b4 100644
 --- a/net/rds/iw_recv.c
 +++ b/net/rds/iw_recv.c
 @@ -427,7 +427,7 @@ static u64 rds_iw_get_ack(struct rds_iw_connection *ic)
@@ -77098,10 +77208,10 @@ index 5e57347..3916042 100644
  #endif
  
 diff --git a/net/rds/tcp.c b/net/rds/tcp.c
-index 8e0a320..ee8e38f 100644
+index edac9ef..16bcb98 100644
 --- a/net/rds/tcp.c
 +++ b/net/rds/tcp.c
-@@ -58,7 +58,7 @@ void rds_tcp_nonagle(struct socket *sock)
+@@ -59,7 +59,7 @@ void rds_tcp_nonagle(struct socket *sock)
        int val = 1;
  
        set_fs(KERNEL_DS);
@@ -77137,7 +77247,7 @@ index 74c064c..fdec26f 100644
  /* count of skbs currently in use */
  atomic_t rxrpc_n_skbs;
 diff --git a/net/rxrpc/ar-ack.c b/net/rxrpc/ar-ack.c
-index f99cfce..3682692 100644
+index c3126e8..21facc7 100644
 --- a/net/rxrpc/ar-ack.c
 +++ b/net/rxrpc/ar-ack.c
 @@ -175,7 +175,7 @@ static void rxrpc_resend(struct rxrpc_call *call)
@@ -77176,16 +77286,7 @@ index f99cfce..3682692 100644
  
                _proto("Rx ACK %%%u { m=%hu f=#%u p=#%u s=%%%u r=%s n=%u }",
                       latest,
-@@ -842,6 +842,8 @@ void rxrpc_process_call(struct work_struct *work)
-       u32 abort_code = RX_PROTOCOL_ERROR;
-       u8 *acks = NULL;
-+      pax_track_stack();
-+
-       //printk("\n--------------------\n");
-       _enter("{%d,%s,%lx} [%lu]",
-              call->debug_id, rxrpc_call_states[call->state], call->events,
-@@ -1161,7 +1163,7 @@ void rxrpc_process_call(struct work_struct *work)
+@@ -1161,7 +1161,7 @@ void rxrpc_process_call(struct work_struct *work)
        goto maybe_reschedule;
  
  send_ACK_with_skew:
@@ -77194,7 +77295,7 @@ index f99cfce..3682692 100644
                            ntohl(ack.serial));
  send_ACK:
        mtu = call->conn->trans->peer->if_mtu;
-@@ -1173,7 +1175,7 @@ send_ACK:
+@@ -1173,7 +1173,7 @@ send_ACK:
        ackinfo.rxMTU   = htonl(5692);
        ackinfo.jumbo_max = htonl(4);
  
@@ -77203,7 +77304,7 @@ index f99cfce..3682692 100644
        _proto("Tx ACK %%%u { m=%hu f=#%u p=#%u s=%%%u r=%s n=%u }",
               ntohl(hdr.serial),
               ntohs(ack.maxSkew),
-@@ -1191,7 +1193,7 @@ send_ACK:
+@@ -1191,7 +1191,7 @@ send_ACK:
  send_message:
        _debug("send message");
  
@@ -77314,10 +77415,10 @@ index 87f7135..74d3703 100644
        }
  
 diff --git a/net/rxrpc/ar-output.c b/net/rxrpc/ar-output.c
-index 5f22e26..e5bd20f 100644
+index 16ae887..d24f12b 100644
 --- a/net/rxrpc/ar-output.c
 +++ b/net/rxrpc/ar-output.c
-@@ -681,9 +681,9 @@ static int rxrpc_send_data(struct kiocb *iocb,
+@@ -682,9 +682,9 @@ static int rxrpc_send_data(struct kiocb *iocb,
                        sp->hdr.cid = call->cid;
                        sp->hdr.callNumber = call->call_id;
                        sp->hdr.seq =
@@ -77371,28 +77472,10 @@ index 92df566..87ec1bf 100644
                if (peer->srx.transport.family == AF_INET) {
                        switch (peer->srx.transport_type) {
 diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
-index 7635107..5000b71 100644
+index 7635107..4670276 100644
 --- a/net/rxrpc/rxkad.c
 +++ b/net/rxrpc/rxkad.c
-@@ -211,6 +211,8 @@ static int rxkad_secure_packet_encrypt(const struct rxrpc_call *call,
-       u16 check;
-       int nsg;
-+      pax_track_stack();
-+
-       sp = rxrpc_skb(skb);
-       _enter("");
-@@ -338,6 +340,8 @@ static int rxkad_verify_packet_auth(const struct rxrpc_call *call,
-       u16 check;
-       int nsg;
-+      pax_track_stack();
-+
-       _enter("");
-       sp = rxrpc_skb(skb);
-@@ -610,7 +614,7 @@ static int rxkad_issue_challenge(struct rxrpc_connection *conn)
+@@ -610,7 +610,7 @@ static int rxkad_issue_challenge(struct rxrpc_connection *conn)
  
        len = iov[0].iov_len + iov[1].iov_len;
  
@@ -77401,7 +77484,7 @@ index 7635107..5000b71 100644
        _proto("Tx CHALLENGE %%%u", ntohl(hdr.serial));
  
        ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len);
-@@ -660,7 +664,7 @@ static int rxkad_send_response(struct rxrpc_connection *conn,
+@@ -660,7 +660,7 @@ static int rxkad_send_response(struct rxrpc_connection *conn,
  
        len = iov[0].iov_len + iov[1].iov_len + iov[2].iov_len;
  
@@ -77410,24 +77493,41 @@ index 7635107..5000b71 100644
        _proto("Tx RESPONSE %%%u", ntohl(hdr->serial));
  
        ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len);
-diff --git a/net/sctp/auth.c b/net/sctp/auth.c
-index 865e68f..bf81204 100644
---- a/net/sctp/auth.c
-+++ b/net/sctp/auth.c
-@@ -82,7 +82,7 @@ static struct sctp_auth_bytes *sctp_auth_create_key(__u32 key_len, gfp_t gfp)
-       struct sctp_auth_bytes *key;
-       /* Verify that we are not going to overflow INT_MAX */
--      if ((INT_MAX - key_len) < sizeof(struct sctp_auth_bytes))
-+      if (key_len > (INT_MAX - sizeof(struct sctp_auth_bytes)))
-               return NULL;
+diff --git a/net/sctp/input.c b/net/sctp/input.c
+index 80f71af..be772c0 100644
+--- a/net/sctp/input.c
++++ b/net/sctp/input.c
+@@ -736,15 +736,12 @@ static void __sctp_unhash_endpoint(struct sctp_endpoint *ep)
+       epb = &ep->base;
+-      if (hlist_unhashed(&epb->node))
+-              return;
+-
+       epb->hashent = sctp_ep_hashfn(epb->bind_addr.port);
+       head = &sctp_ep_hashtable[epb->hashent];
+       sctp_write_lock(&head->lock);
+-      __hlist_del(&epb->node);
++      hlist_del_init(&epb->node);
+       sctp_write_unlock(&head->lock);
+ }
+@@ -825,7 +822,7 @@ static void __sctp_unhash_established(struct sctp_association *asoc)
+       head = &sctp_assoc_hashtable[epb->hashent];
+       sctp_write_lock(&head->lock);
+-      __hlist_del(&epb->node);
++      hlist_del_init(&epb->node);
+       sctp_write_unlock(&head->lock);
+ }
  
-       /* Allocate the shared key */
 diff --git a/net/sctp/proc.c b/net/sctp/proc.c
-index 05a6ce2..c8bf836 100644
+index 1e2eee8..ce3967e 100644
 --- a/net/sctp/proc.c
 +++ b/net/sctp/proc.c
-@@ -318,7 +318,8 @@ static int sctp_assocs_seq_show(struct seq_file *seq, void *v)
+@@ -319,7 +319,8 @@ static int sctp_assocs_seq_show(struct seq_file *seq, void *v)
                seq_printf(seq,
                           "%8pK %8pK %-3d %-3d %-2d %-4d "
                           "%4d %8d %8d %7d %5lu %-5d %5d ",
@@ -77438,10 +77538,38 @@ index 05a6ce2..c8bf836 100644
                           assoc->assoc_id,
                           assoc->sndbuf_used,
 diff --git a/net/sctp/socket.c b/net/sctp/socket.c
-index 836aa63..d779d7b 100644
+index 92ba71d..9352c05 100644
 --- a/net/sctp/socket.c
 +++ b/net/sctp/socket.c
-@@ -4575,7 +4575,7 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
+@@ -1231,8 +1231,14 @@ out_free:
+       SCTP_DEBUG_PRINTK("About to exit __sctp_connect() free asoc: %p"
+                         " kaddrs: %p err: %d\n",
+                         asoc, kaddrs, err);
+-      if (asoc)
++      if (asoc) {
++              /* sctp_primitive_ASSOCIATE may have added this association
++               * To the hash table, try to unhash it, just in case, its a noop
++               * if it wasn't hashed so we're safe
++               */
++              sctp_unhash_established(asoc);
+               sctp_association_free(asoc);
++      }
+       return err;
+ }
+@@ -1942,8 +1948,10 @@ SCTP_STATIC int sctp_sendmsg(struct kiocb *iocb, struct sock *sk,
+       goto out_unlock;
+ out_free:
+-      if (new_asoc)
++      if (new_asoc) {
++              sctp_unhash_established(asoc);
+               sctp_association_free(asoc);
++      }
+ out_unlock:
+       sctp_release_sock(sk);
+@@ -4569,7 +4577,7 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
                addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;
                if (space_left < addrlen)
                        return -ENOMEM;
@@ -77451,7 +77579,7 @@ index 836aa63..d779d7b 100644
                to += addrlen;
                cnt++;
 diff --git a/net/socket.c b/net/socket.c
-index ffe92ca..8057b85 100644
+index 851edcd..b786851 100644
 --- a/net/socket.c
 +++ b/net/socket.c
 @@ -88,6 +88,7 @@
@@ -77480,7 +77608,7 @@ index ffe92ca..8057b85 100644
  
  static struct file_system_type sock_fs_type = {
        .name =         "sockfs",
-@@ -1187,6 +1190,8 @@ int __sock_create(struct net *net, int family, int type, int protocol,
+@@ -1207,6 +1210,8 @@ int __sock_create(struct net *net, int family, int type, int protocol,
                return -EAFNOSUPPORT;
        if (type < 0 || type >= SOCK_MAX)
                return -EINVAL;
@@ -77489,7 +77617,7 @@ index ffe92ca..8057b85 100644
  
        /* Compatibility.
  
-@@ -1319,6 +1324,16 @@ SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
+@@ -1339,6 +1344,16 @@ SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
        if (SOCK_NONBLOCK != O_NONBLOCK && (flags & SOCK_NONBLOCK))
                flags = (flags & ~SOCK_NONBLOCK) | O_NONBLOCK;
  
@@ -77506,9 +77634,9 @@ index ffe92ca..8057b85 100644
        retval = sock_create(family, type, protocol, &sock);
        if (retval < 0)
                goto out;
-@@ -1431,6 +1446,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
+@@ -1451,6 +1466,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
        if (sock) {
-               err = move_addr_to_kernel(umyaddr, addrlen, (struct sockaddr *)&address);
+               err = move_addr_to_kernel(umyaddr, addrlen, &address);
                if (err >= 0) {
 +                      if (gr_handle_sock_server((struct sockaddr *)&address)) {
 +                              err = -EACCES;
@@ -77521,7 +77649,7 @@ index ffe92ca..8057b85 100644
                        err = security_socket_bind(sock,
                                                   (struct sockaddr *)&address,
                                                   addrlen);
-@@ -1439,6 +1462,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
+@@ -1459,6 +1482,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
                                                      (struct sockaddr *)
                                                      &address, addrlen);
                }
@@ -77529,7 +77657,7 @@ index ffe92ca..8057b85 100644
                fput_light(sock->file, fput_needed);
        }
        return err;
-@@ -1462,10 +1486,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
+@@ -1482,10 +1506,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
                if ((unsigned)backlog > somaxconn)
                        backlog = somaxconn;
  
@@ -77550,7 +77678,7 @@ index ffe92ca..8057b85 100644
                fput_light(sock->file, fput_needed);
        }
        return err;
-@@ -1509,6 +1543,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
+@@ -1529,6 +1563,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
        newsock->type = sock->type;
        newsock->ops = sock->ops;
  
@@ -77569,7 +77697,7 @@ index ffe92ca..8057b85 100644
        /*
         * We don't need try_module_get here, as the listening socket (sock)
         * has the protocol module (sock->ops->owner) held.
-@@ -1547,6 +1593,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
+@@ -1567,6 +1613,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
        fd_install(newfd, newfile);
        err = newfd;
  
@@ -77578,7 +77706,7 @@ index ffe92ca..8057b85 100644
  out_put:
        fput_light(sock->file, fput_needed);
  out:
-@@ -1579,6 +1627,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
+@@ -1599,6 +1647,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
                int, addrlen)
  {
        struct socket *sock;
@@ -77586,7 +77714,7 @@ index ffe92ca..8057b85 100644
        struct sockaddr_storage address;
        int err, fput_needed;
  
-@@ -1589,6 +1638,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
+@@ -1609,6 +1658,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
        if (err < 0)
                goto out_put;
  
@@ -77604,16 +77732,7 @@ index ffe92ca..8057b85 100644
        err =
            security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
        if (err)
-@@ -1890,6 +1950,8 @@ static int __sys_sendmsg(struct socket *sock, struct msghdr __user *msg,
-       unsigned char *ctl_buf = ctl;
-       int err, ctl_len, iov_size, total_len;
-+      pax_track_stack();
-+
-       err = -EFAULT;
-       if (MSG_CMSG_COMPAT & flags) {
-               if (get_compat_msghdr(msg_sys, msg_compat))
-@@ -1950,7 +2012,7 @@ static int __sys_sendmsg(struct socket *sock, struct msghdr __user *msg,
+@@ -1966,7 +2026,7 @@ static int __sys_sendmsg(struct socket *sock, struct msghdr __user *msg,
                 * checking falls down on this.
                 */
                if (copy_from_user(ctl_buf,
@@ -77622,7 +77741,7 @@ index ffe92ca..8057b85 100644
                                   ctl_len))
                        goto out_freectl;
                msg_sys->msg_control = ctl_buf;
-@@ -2120,7 +2182,7 @@ static int __sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
+@@ -2136,7 +2196,7 @@ static int __sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
         *      kernel msghdr to use the kernel address space)
         */
  
@@ -77630,8 +77749,8 @@ index ffe92ca..8057b85 100644
 +      uaddr = (void __force_user *)msg_sys->msg_name;
        uaddr_len = COMPAT_NAMELEN(msg);
        if (MSG_CMSG_COMPAT & flags) {
-               err = verify_compat_iovec(msg_sys, iov,
-@@ -2748,7 +2810,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
+               err = verify_compat_iovec(msg_sys, iov, &addr, VERIFY_WRITE);
+@@ -2758,7 +2818,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
        }
  
        ifr = compat_alloc_user_space(buf_size);
@@ -77640,7 +77759,7 @@ index ffe92ca..8057b85 100644
  
        if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ))
                return -EFAULT;
-@@ -2772,12 +2834,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
+@@ -2782,12 +2842,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
                        offsetof(struct ethtool_rxnfc, fs.ring_cookie));
  
                if (copy_in_user(rxnfc, compat_rxnfc,
@@ -77657,7 +77776,7 @@ index ffe92ca..8057b85 100644
                    copy_in_user(&rxnfc->rule_cnt, &compat_rxnfc->rule_cnt,
                                 sizeof(rxnfc->rule_cnt)))
                        return -EFAULT;
-@@ -2789,12 +2851,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
+@@ -2799,12 +2859,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
  
        if (convert_out) {
                if (copy_in_user(compat_rxnfc, rxnfc,
@@ -77674,7 +77793,7 @@ index ffe92ca..8057b85 100644
                    copy_in_user(&compat_rxnfc->rule_cnt, &rxnfc->rule_cnt,
                                 sizeof(rxnfc->rule_cnt)))
                        return -EFAULT;
-@@ -2864,7 +2926,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
+@@ -2874,7 +2934,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
                old_fs = get_fs();
                set_fs(KERNEL_DS);
                err = dev_ioctl(net, cmd,
@@ -77683,7 +77802,7 @@ index ffe92ca..8057b85 100644
                set_fs(old_fs);
  
                return err;
-@@ -2973,7 +3035,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
+@@ -2983,7 +3043,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
  
        old_fs = get_fs();
        set_fs(KERNEL_DS);
@@ -77692,7 +77811,7 @@ index ffe92ca..8057b85 100644
        set_fs(old_fs);
  
        if (cmd == SIOCGIFMAP && !err) {
-@@ -3078,7 +3140,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
+@@ -3088,7 +3148,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
                ret |= __get_user(rtdev, &(ur4->rt_dev));
                if (rtdev) {
                        ret |= copy_from_user(devname, compat_ptr(rtdev), 15);
@@ -77701,7 +77820,7 @@ index ffe92ca..8057b85 100644
                        devname[15] = 0;
                } else
                        r4.rt_dev = NULL;
-@@ -3318,8 +3380,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
+@@ -3314,8 +3374,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
        int __user *uoptlen;
        int err;
  
@@ -77712,7 +77831,7 @@ index ffe92ca..8057b85 100644
  
        set_fs(KERNEL_DS);
        if (level == SOL_SOCKET)
-@@ -3339,7 +3401,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
+@@ -3335,7 +3395,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
        char __user *uoptval;
        int err;
  
@@ -77722,10 +77841,10 @@ index ffe92ca..8057b85 100644
        set_fs(KERNEL_DS);
        if (level == SOL_SOCKET)
 diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
-index d12ffa5..0b5a6e2 100644
+index 994cfea..5343b6b 100644
 --- a/net/sunrpc/sched.c
 +++ b/net/sunrpc/sched.c
-@@ -238,9 +238,9 @@ static int rpc_wait_bit_killable(void *word)
+@@ -240,9 +240,9 @@ static int rpc_wait_bit_killable(void *word)
  #ifdef RPC_DEBUG
  static void rpc_task_set_debuginfo(struct rpc_task *task)
  {
@@ -77737,24 +77856,11 @@ index d12ffa5..0b5a6e2 100644
  }
  #else
  static inline void rpc_task_set_debuginfo(struct rpc_task *task)
-diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
-index 767d494..fe17e9d 100644
---- a/net/sunrpc/svcsock.c
-+++ b/net/sunrpc/svcsock.c
-@@ -394,7 +394,7 @@ static int svc_partial_recvfrom(struct svc_rqst *rqstp,
-                               int buflen, unsigned int base)
- {
-       size_t save_iovlen;
--      void __user *save_iovbase;
-+      void *save_iovbase;
-       unsigned int i;
-       int ret;
 diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
-index 09af4fa..77110a9 100644
+index 8343737..677025e 100644
 --- a/net/sunrpc/xprtrdma/svc_rdma.c
 +++ b/net/sunrpc/xprtrdma/svc_rdma.c
-@@ -61,15 +61,15 @@ unsigned int svcrdma_max_req_size = RPCRDMA_MAX_REQ_SIZE;
+@@ -62,15 +62,15 @@ unsigned int svcrdma_max_req_size = RPCRDMA_MAX_REQ_SIZE;
  static unsigned int min_max_inline = 4096;
  static unsigned int max_max_inline = 65536;
  
@@ -77779,7 +77885,7 @@ index 09af4fa..77110a9 100644
  
  /* Temporary NFS request map and context caches */
  struct kmem_cache *svc_rdma_map_cachep;
-@@ -109,7 +109,7 @@ static int read_reset_stat(ctl_table *table, int write,
+@@ -110,7 +110,7 @@ static int read_reset_stat(ctl_table *table, int write,
                len -= *ppos;
                if (len > *lenp)
                        len = *lenp;
@@ -77788,7 +77894,7 @@ index 09af4fa..77110a9 100644
                        return -EFAULT;
                *lenp = len;
                *ppos += len;
-@@ -150,63 +150,63 @@ static ctl_table svcrdma_parm_table[] = {
+@@ -151,63 +151,63 @@ static ctl_table svcrdma_parm_table[] = {
        {
                .procname       = "rdma_stat_read",
                .data           = &rdma_stat_read,
@@ -77862,10 +77968,10 @@ index 09af4fa..77110a9 100644
                .proc_handler   = read_reset_stat,
        },
 diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
-index df67211..c354b13 100644
+index 41cb63b..c4a1489 100644
 --- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
 +++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
-@@ -499,7 +499,7 @@ next_sge:
+@@ -501,7 +501,7 @@ next_sge:
                        svc_rdma_put_context(ctxt, 0);
                        goto out;
                }
@@ -77874,7 +77980,7 @@ index df67211..c354b13 100644
  
                if (read_wr.num_sge < chl_map->ch[ch_no].count) {
                        chl_map->ch[ch_no].count -= read_wr.num_sge;
-@@ -609,7 +609,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
+@@ -611,7 +611,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
                                  dto_q);
                list_del_init(&ctxt->dto_q);
        } else {
@@ -77883,7 +77989,7 @@ index df67211..c354b13 100644
                clear_bit(XPT_DATA, &xprt->xpt_flags);
                ctxt = NULL;
        }
-@@ -629,7 +629,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
+@@ -631,7 +631,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
        dprintk("svcrdma: processing ctxt=%p on xprt=%p, rqstp=%p, status=%d\n",
                ctxt, rdma_xprt, rqstp, ctxt->wc_status);
        BUG_ON(ctxt->wc_status != IB_WC_SUCCESS);
@@ -77893,7 +77999,7 @@ index df67211..c354b13 100644
        /* Build up the XDR from the receive buffers. */
        rdma_build_arg_xdr(rqstp, ctxt, ctxt->byte_len);
 diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
-index 249a835..fb2794b 100644
+index 42eb7ba..c887c45 100644
 --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
 +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
 @@ -362,7 +362,7 @@ static int send_write(struct svcxprt_rdma *xprt, struct svc_rqst *rqstp,
@@ -77906,10 +78012,10 @@ index 249a835..fb2794b 100644
                goto err;
        return 0;
 diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
-index a385430..32254ea 100644
+index 73b428b..5f3f8f3 100644
 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
 +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
-@@ -299,7 +299,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
+@@ -292,7 +292,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
                return;
  
        ib_req_notify_cq(xprt->sc_rq_cq, IB_CQ_NEXT_COMP);
@@ -77918,7 +78024,7 @@ index a385430..32254ea 100644
  
        while ((ret = ib_poll_cq(xprt->sc_rq_cq, 1, &wc)) > 0) {
                ctxt = (struct svc_rdma_op_ctxt *)(unsigned long)wc.wr_id;
-@@ -321,7 +321,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
+@@ -314,7 +314,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
        }
  
        if (ctxt)
@@ -77927,7 +78033,7 @@ index a385430..32254ea 100644
  
        set_bit(XPT_DATA, &xprt->sc_xprt.xpt_flags);
        /*
-@@ -393,7 +393,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
+@@ -386,7 +386,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
                return;
  
        ib_req_notify_cq(xprt->sc_sq_cq, IB_CQ_NEXT_COMP);
@@ -77936,7 +78042,7 @@ index a385430..32254ea 100644
        while ((ret = ib_poll_cq(cq, 1, &wc)) > 0) {
                if (wc.status != IB_WC_SUCCESS)
                        /* Close the transport */
-@@ -411,7 +411,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
+@@ -404,7 +404,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
        }
  
        if (ctxt)
@@ -77945,7 +78051,7 @@ index a385430..32254ea 100644
  }
  
  static void sq_comp_handler(struct ib_cq *cq, void *cq_context)
-@@ -1273,7 +1273,7 @@ int svc_rdma_send(struct svcxprt_rdma *xprt, struct ib_send_wr *wr)
+@@ -1266,7 +1266,7 @@ int svc_rdma_send(struct svcxprt_rdma *xprt, struct ib_send_wr *wr)
                spin_lock_bh(&xprt->sc_lock);
                if (xprt->sc_sq_depth < atomic_read(&xprt->sc_sq_count) + wr_count) {
                        spin_unlock_bh(&xprt->sc_lock);
@@ -77955,10 +78061,10 @@ index a385430..32254ea 100644
                        /* See if we can opportunistically reap SQ WR to make room */
                        sq_cq_reap(xprt);
 diff --git a/net/sysctl_net.c b/net/sysctl_net.c
-index ca84212..3aa338f 100644
+index c3e65ae..f512a2b 100644
 --- a/net/sysctl_net.c
 +++ b/net/sysctl_net.c
-@@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ctl_table_root *root,
+@@ -47,7 +47,7 @@ static int net_ctl_permissions(struct ctl_table_root *root,
                               struct ctl_table *table)
  {
        /* Allow network administrator to have same access as root. */
@@ -77968,10 +78074,10 @@ index ca84212..3aa338f 100644
                return (mode << 6) | (mode << 3) | mode;
        }
 diff --git a/net/tipc/link.c b/net/tipc/link.c
-index f89570c..016cf63 100644
+index b4b9b30..5b62131 100644
 --- a/net/tipc/link.c
 +++ b/net/tipc/link.c
-@@ -1170,7 +1170,7 @@ static int link_send_sections_long(struct tipc_port *sender,
+@@ -1203,7 +1203,7 @@ static int link_send_sections_long(struct tipc_port *sender,
        struct tipc_msg fragm_hdr;
        struct sk_buff *buf, *buf_chain, *prev;
        u32 fragm_crs, fragm_rest, hsz, sect_rest;
@@ -77980,7 +78086,7 @@ index f89570c..016cf63 100644
        int curr_sect;
        u32 fragm_no;
  
-@@ -1214,7 +1214,7 @@ again:
+@@ -1247,7 +1247,7 @@ again:
  
                if (!sect_rest) {
                        sect_rest = msg_sect[++curr_sect].iov_len;
@@ -77989,7 +78095,7 @@ index f89570c..016cf63 100644
                }
  
                if (sect_rest < fragm_rest)
-@@ -1233,7 +1233,7 @@ error:
+@@ -1266,7 +1266,7 @@ error:
                        }
                } else
                        skb_copy_to_linear_data_offset(buf, fragm_crs,
@@ -77999,7 +78105,7 @@ index f89570c..016cf63 100644
                sect_rest -= sz;
                fragm_crs += sz;
 diff --git a/net/tipc/msg.c b/net/tipc/msg.c
-index 83d5096..dcba497 100644
+index e3afe16..333ea83 100644
 --- a/net/tipc/msg.c
 +++ b/net/tipc/msg.c
 @@ -99,7 +99,7 @@ int tipc_msg_build(struct tipc_msg *hdr, struct iovec const *msg_sect,
@@ -78012,10 +78118,10 @@ index 83d5096..dcba497 100644
                pos += msg_sect[cnt].iov_len;
        }
 diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c
-index 6cf7268..7a488ce 100644
+index b2964e9..fdf2e27 100644
 --- a/net/tipc/subscr.c
 +++ b/net/tipc/subscr.c
-@@ -101,7 +101,7 @@ static void subscr_send_event(struct subscription *sub,
+@@ -101,7 +101,7 @@ static void subscr_send_event(struct tipc_subscription *sub,
  {
        struct iovec msg_sect;
  
@@ -78025,10 +78131,10 @@ index 6cf7268..7a488ce 100644
  
        sub->evt.event = htohl(event, sub->swap);
 diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
-index ec68e1c..fdd792f 100644
+index d510353..26c8a32 100644
 --- a/net/unix/af_unix.c
 +++ b/net/unix/af_unix.c
-@@ -767,6 +767,12 @@ static struct sock *unix_find_other(struct net *net,
+@@ -779,6 +779,12 @@ static struct sock *unix_find_other(struct net *net,
                err = -ECONNREFUSED;
                if (!S_ISSOCK(inode->i_mode))
                        goto put_fail;
@@ -78041,10 +78147,10 @@ index ec68e1c..fdd792f 100644
                u = unix_find_socket_byinode(inode);
                if (!u)
                        goto put_fail;
-@@ -787,6 +793,13 @@ static struct sock *unix_find_other(struct net *net,
+@@ -799,6 +805,13 @@ static struct sock *unix_find_other(struct net *net,
                if (u) {
                        struct dentry *dentry;
-                       dentry = unix_sk(u)->dentry;
+                       dentry = unix_sk(u)->path.dentry;
 +
 +                      if (!gr_handle_chroot_unix(pid_vnr(u->sk_peer_pid))) {
 +                              err = -EPERM;
@@ -78053,9 +78159,9 @@ index ec68e1c..fdd792f 100644
 +                      }
 +
                        if (dentry)
-                               touch_atime(unix_sk(u)->mnt, dentry);
+                               touch_atime(&unix_sk(u)->path);
                } else
-@@ -869,11 +882,18 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
+@@ -881,11 +894,18 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
                err = security_path_mknod(&path, dentry, mode, 0);
                if (err)
                        goto out_mknod_drop_write;
@@ -78075,7 +78181,7 @@ index ec68e1c..fdd792f 100644
                dput(path.dentry);
                path.dentry = dentry;
 diff --git a/net/wireless/core.h b/net/wireless/core.h
-index 8672e02..48782dd 100644
+index 3ac2dd0..fbe533e 100644
 --- a/net/wireless/core.h
 +++ b/net/wireless/core.h
 @@ -27,7 +27,7 @@ struct cfg80211_registered_device {
@@ -78088,10 +78194,10 @@ index 8672e02..48782dd 100644
        struct work_struct rfkill_sync;
  
 diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c
-index fdbc23c..212d53e 100644
+index af648e0..6185d3a 100644
 --- a/net/wireless/wext-core.c
 +++ b/net/wireless/wext-core.c
-@@ -746,8 +746,7 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
+@@ -747,8 +747,7 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
                 */
  
                /* Support for very large requests */
@@ -78101,7 +78207,7 @@ index fdbc23c..212d53e 100644
                        /* Allow userspace to GET more than max so
                         * we can support any size GET requests.
                         * There is still a limit : -ENOMEM.
-@@ -784,22 +783,6 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
+@@ -787,22 +786,6 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
                }
        }
  
@@ -78125,7 +78231,7 @@ index fdbc23c..212d53e 100644
  
        iwp->length += essid_compat;
 diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
-index 552df27..8e7f238 100644
+index a15d2a0..12142af 100644
 --- a/net/xfrm/xfrm_policy.c
 +++ b/net/xfrm/xfrm_policy.c
 @@ -299,7 +299,7 @@ static void xfrm_policy_kill(struct xfrm_policy *policy)
@@ -78182,7 +78288,7 @@ index 552df27..8e7f238 100644
  
        return xdst;
  }
-@@ -2335,7 +2335,7 @@ static int xfrm_bundle_ok(struct xfrm_dst *first)
+@@ -2348,7 +2348,7 @@ static int xfrm_bundle_ok(struct xfrm_dst *first)
                if (xdst->xfrm_genid != dst->xfrm->genid)
                        return 0;
                if (xdst->num_pols > 0 &&
@@ -78191,7 +78297,7 @@ index 552df27..8e7f238 100644
                        return 0;
  
                mtu = dst_mtu(dst->child);
-@@ -2870,7 +2870,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol,
+@@ -2885,7 +2885,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol,
                               sizeof(pol->xfrm_vec[i].saddr));
                        pol->xfrm_vec[i].encap_family = mp->new_family;
                        /* flush bundles */
@@ -78200,38 +78306,16 @@ index 552df27..8e7f238 100644
                }
        }
  
-diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
-index 0256b8a..9341ef6 100644
---- a/net/xfrm/xfrm_user.c
-+++ b/net/xfrm/xfrm_user.c
-@@ -1394,6 +1394,8 @@ static int copy_to_user_tmpl(struct xfrm_policy *xp, struct sk_buff *skb)
-       struct xfrm_user_tmpl vec[XFRM_MAX_DEPTH];
-       int i;
-+      pax_track_stack();
-+
-       if (xp->xfrm_nr == 0)
-               return 0;
-@@ -2062,6 +2064,8 @@ static int xfrm_do_migrate(struct sk_buff *skb, struct nlmsghdr *nlh,
-       int err;
-       int n = 0;
-+      pax_track_stack();
-+
-       if (attrs[XFRMA_MIGRATE] == NULL)
-               return -EINVAL;
 diff --git a/scripts/Makefile.build b/scripts/Makefile.build
-index a0fd502..a8e6e83 100644
+index ff1720d..ed8475e 100644
 --- a/scripts/Makefile.build
 +++ b/scripts/Makefile.build
-@@ -109,7 +109,7 @@ endif
+@@ -111,7 +111,7 @@ endif
  endif
  
  # Do not include host rules unless needed
 -ifneq ($(hostprogs-y)$(hostprogs-m),)
-+ifneq ($(hostprogs-y)$(hostprogs-m)$(hostlibs-y)$(hostlibs-m),)
++ifneq ($(hostprogs-y)$(hostprogs-m)$(hostlibs-y)$(hostlibs-m)$(hostcxxlibs-y)$(hostcxxlibs-m),)
  include scripts/Makefile.host
  endif
  
@@ -78250,27 +78334,78 @@ index 686cb0d..9d653bf 100644
  __clean-files   := $(filter-out $(no-clean-files), $(__clean-files))
  
 diff --git a/scripts/Makefile.host b/scripts/Makefile.host
-index 1ac414f..a1c1451 100644
+index 1ac414f..38575f7 100644
 --- a/scripts/Makefile.host
 +++ b/scripts/Makefile.host
-@@ -31,6 +31,7 @@
+@@ -31,6 +31,8 @@
  # Note: Shared libraries consisting of C++ files are not supported
  
  __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
 +__hostlibs := $(sort $(hostlibs-y) $(hostlibs-m))
++__hostcxxlibs := $(sort $(hostcxxlibs-y) $(hostcxxlibs-m))
  
  # C code
  # Executables compiled from a single .c file
-@@ -54,6 +55,7 @@ host-cxxobjs := $(sort $(foreach m,$(host-cxxmulti),$($(m)-cxxobjs)))
+@@ -54,11 +56,15 @@ host-cxxobjs       := $(sort $(foreach m,$(host-cxxmulti),$($(m)-cxxobjs)))
  # Shared libaries (only .c supported)
  # Shared libraries (.so) - all .so files referenced in "xxx-objs"
  host-cshlib   := $(sort $(filter %.so, $(host-cobjs)))
 +host-cshlib   += $(sort $(filter %.so, $(__hostlibs)))
++host-cxxshlib := $(sort $(filter %.so, $(__hostcxxlibs)))
  # Remove .so files from "xxx-objs"
  host-cobjs    := $(filter-out %.so,$(host-cobjs))
++host-cxxobjs  := $(filter-out %.so,$(host-cxxobjs))
+-#Object (.o) files used by the shared libaries
++# Object (.o) files used by the shared libaries
+ host-cshobjs  := $(sort $(foreach m,$(host-cshlib),$($(m:.so=-objs))))
++host-cxxshobjs        := $(sort $(foreach m,$(host-cxxshlib),$($(m:.so=-objs))))
+ # output directory for programs/.o files
+ # hostprogs-y := tools/build may have been specified. Retrieve directory
+@@ -82,7 +88,9 @@ host-cobjs   := $(addprefix $(obj)/,$(host-cobjs))
+ host-cxxmulti := $(addprefix $(obj)/,$(host-cxxmulti))
+ host-cxxobjs  := $(addprefix $(obj)/,$(host-cxxobjs))
+ host-cshlib   := $(addprefix $(obj)/,$(host-cshlib))
++host-cxxshlib := $(addprefix $(obj)/,$(host-cxxshlib))
+ host-cshobjs  := $(addprefix $(obj)/,$(host-cshobjs))
++host-cxxshobjs        := $(addprefix $(obj)/,$(host-cxxshobjs))
+ host-objdirs    := $(addprefix $(obj)/,$(host-objdirs))
+ obj-dirs += $(host-objdirs)
+@@ -156,6 +164,13 @@ quiet_cmd_host-cshobjs    = HOSTCC  -fPIC $@
+ $(host-cshobjs): $(obj)/%.o: $(src)/%.c FORCE
+       $(call if_changed_dep,host-cshobjs)
++# Compile .c file, create position independent .o file
++# host-cxxshobjs -> .o
++quiet_cmd_host-cxxshobjs      = HOSTCXX -fPIC $@
++      cmd_host-cxxshobjs      = $(HOSTCXX) $(hostcxx_flags) -fPIC -c -o $@ $<
++$(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
++      $(call if_changed_dep,host-cxxshobjs)
++
+ # Link a shared library, based on position independent .o files
+ # *.o -> .so shared library (host-cshlib)
+ quiet_cmd_host-cshlib = HOSTLLD -shared $@
+@@ -165,6 +180,15 @@ quiet_cmd_host-cshlib     = HOSTLLD -shared $@
+ $(host-cshlib): $(obj)/%: $(host-cshobjs) FORCE
+       $(call if_changed,host-cshlib)
++# Link a shared library, based on position independent .o files
++# *.o -> .so shared library (host-cxxshlib)
++quiet_cmd_host-cxxshlib       = HOSTLLD -shared $@
++      cmd_host-cxxshlib       = $(HOSTCXX) $(HOSTLDFLAGS) -shared -o $@ \
++                        $(addprefix $(obj)/,$($(@F:.so=-objs))) \
++                        $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
++$(host-cxxshlib): $(obj)/%: $(host-cxxshobjs) FORCE
++      $(call if_changed,host-cxxshlib)
++
+ targets += $(host-csingle)  $(host-cmulti) $(host-cobjs)\
+-         $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) 
++         $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs)
  
 diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
-index 291228e..6c55203 100644
+index cb1f50c..cef2a7c 100644
 --- a/scripts/basic/fixdep.c
 +++ b/scripts/basic/fixdep.c
 @@ -161,7 +161,7 @@ static unsigned int strhash(const char *str, unsigned int sz)
@@ -78307,7 +78442,7 @@ index 291228e..6c55203 100644
        const char *p, *q;
  
        for (; m < end; m++) {
-@@ -405,7 +405,7 @@ static void print_deps(void)
+@@ -406,7 +406,7 @@ static void print_deps(void)
  static void traps(void)
  {
        static char test[] __attribute__((aligned(sizeof(int)))) = "CONF";
@@ -78318,17 +78453,32 @@ index 291228e..6c55203 100644
                fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianess? %#x\n",
 diff --git a/scripts/gcc-plugin.sh b/scripts/gcc-plugin.sh
 new file mode 100644
-index 0000000..8729101
+index 0000000..008ac1a
 --- /dev/null
 +++ b/scripts/gcc-plugin.sh
-@@ -0,0 +1,2 @@
-+#!/bin/sh
-+echo -e "#include \"gcc-plugin.h\"\n#include \"tree.h\"\n#include \"tm.h\"\n#include \"rtl.h\"" | $1 -x c -shared - -o /dev/null -I`$2 -print-file-name=plugin`/include >/dev/null 2>&1 && echo "y"
+@@ -0,0 +1,17 @@
++#!/bin/bash
++plugincc=`$1 -x c -shared - -o /dev/null -I\`$3 -print-file-name=plugin\`/include 2>&1 <<EOF
++#include "gcc-plugin.h"
++#include "tree.h"
++#include "tm.h"
++#include "rtl.h"
++#ifdef ENABLE_BUILD_WITH_CXX
++#warning $2
++#else
++#warning $1
++#endif
++EOF`
++if [ $? -eq 0 ]
++then
++      [[ "$plugincc" =~ "$1" ]] && echo "$1"
++      [[ "$plugincc" =~ "$2" ]] && echo "$2"
++fi
 diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
-index e26e2fb..f84937b 100644
+index 44ddaa5..a3119bd 100644
 --- a/scripts/mod/file2alias.c
 +++ b/scripts/mod/file2alias.c
-@@ -72,7 +72,7 @@ static void device_id_check(const char *modname, const char *device_id,
+@@ -128,7 +128,7 @@ static void device_id_check(const char *modname, const char *device_id,
                            unsigned long size, unsigned long id_size,
                            void *symval)
  {
@@ -78337,7 +78487,7 @@ index e26e2fb..f84937b 100644
  
        if (size % id_size || size < id_size) {
                if (cross_build != 0)
-@@ -102,7 +102,7 @@ static void device_id_check(const char *modname, const char *device_id,
+@@ -158,7 +158,7 @@ static void device_id_check(const char *modname, const char *device_id,
  /* USB is special because the bcdDevice can be matched against a numeric range */
  /* Looks like "usb:vNpNdNdcNdscNdpNicNiscNipN" */
  static void do_usb_entry(struct usb_device_id *id,
@@ -78346,7 +78496,7 @@ index e26e2fb..f84937b 100644
                         unsigned char range_lo, unsigned char range_hi,
                         unsigned char max, struct module *mod)
  {
-@@ -203,7 +203,7 @@ static void do_usb_entry_multi(struct usb_device_id *id, struct module *mod)
+@@ -259,7 +259,7 @@ static void do_usb_entry_multi(struct usb_device_id *id, struct module *mod)
  {
        unsigned int devlo, devhi;
        unsigned char chi, clo, max;
@@ -78355,7 +78505,7 @@ index e26e2fb..f84937b 100644
  
        id->match_flags = TO_NATIVE(id->match_flags);
        id->idVendor = TO_NATIVE(id->idVendor);
-@@ -437,7 +437,7 @@ static void do_pnp_device_entry(void *symval, unsigned long size,
+@@ -501,7 +501,7 @@ static void do_pnp_device_entry(void *symval, unsigned long size,
        for (i = 0; i < count; i++) {
                const char *id = (char *)devs[i].id;
                char acpi_id[sizeof(devs[0].id)];
@@ -78364,7 +78514,7 @@ index e26e2fb..f84937b 100644
  
                buf_printf(&mod->dev_table_buf,
                           "MODULE_ALIAS(\"pnp:d%s*\");\n", id);
-@@ -467,7 +467,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
+@@ -531,7 +531,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
  
                for (j = 0; j < PNP_MAX_DEVICES; j++) {
                        const char *id = (char *)card->devs[j].id;
@@ -78373,7 +78523,7 @@ index e26e2fb..f84937b 100644
                        int dup = 0;
  
                        if (!id[0])
-@@ -493,7 +493,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
+@@ -557,7 +557,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
                        /* add an individual alias for every device entry */
                        if (!dup) {
                                char acpi_id[sizeof(card->devs[0].id)];
@@ -78382,7 +78532,7 @@ index e26e2fb..f84937b 100644
  
                                buf_printf(&mod->dev_table_buf,
                                           "MODULE_ALIAS(\"pnp:d%s*\");\n", id);
-@@ -786,7 +786,7 @@ static void dmi_ascii_filter(char *d, const char *s)
+@@ -882,7 +882,7 @@ static void dmi_ascii_filter(char *d, const char *s)
  static int do_dmi_entry(const char *filename, struct dmi_system_id *id,
                        char *alias)
  {
@@ -78392,10 +78542,10 @@ index e26e2fb..f84937b 100644
        sprintf(alias, "dmi*");
  
 diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
-index a509ff8..5822633 100644
+index c4e7d15..dad16c1 100644
 --- a/scripts/mod/modpost.c
 +++ b/scripts/mod/modpost.c
-@@ -919,6 +919,7 @@ enum mismatch {
+@@ -922,6 +922,7 @@ enum mismatch {
        ANY_INIT_TO_ANY_EXIT,
        ANY_EXIT_TO_ANY_INIT,
        EXPORT_TO_INIT_EXIT,
@@ -78403,7 +78553,7 @@ index a509ff8..5822633 100644
  };
  
  struct sectioncheck {
-@@ -1027,6 +1028,12 @@ const struct sectioncheck sectioncheck[] = {
+@@ -1030,6 +1031,12 @@ const struct sectioncheck sectioncheck[] = {
        .tosec   = { INIT_SECTIONS, EXIT_SECTIONS, NULL },
        .mismatch = EXPORT_TO_INIT_EXIT,
        .symbol_white_list = { DEFAULT_SYMBOL_WHITE_LIST, NULL },
@@ -78416,7 +78566,7 @@ index a509ff8..5822633 100644
  }
  };
  
-@@ -1149,10 +1156,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
+@@ -1152,10 +1159,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
                        continue;
                if (ELF_ST_TYPE(sym->st_info) == STT_SECTION)
                        continue;
@@ -78429,22 +78579,22 @@ index a509ff8..5822633 100644
                if (d < 0)
                        d = addr - sym->st_value;
                if (d < distance) {
-@@ -1431,6 +1438,14 @@ static void report_sec_mismatch(const char *modname,
+@@ -1434,6 +1441,14 @@ static void report_sec_mismatch(const char *modname,
                tosym, prl_to, prl_to, tosym);
                free(prl_to);
                break;
 +      case DATA_TO_TEXT:
-+/*
++#if 0
 +              fprintf(stderr,
-+              "The variable %s references\n"
-+              "the %s %s%s%s\n",
-+              fromsym, to, sec2annotation(tosec), tosym, to_p);
-+*/
++              "The %s %s:%s references\n"
++              "the %s %s:%s%s\n",
++              from, fromsec, fromsym, to, tosec, tosym, to_p);
++#endif
 +              break;
        }
        fprintf(stderr, "\n");
  }
-@@ -1656,7 +1671,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
+@@ -1668,7 +1683,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
  static void check_sec_ref(struct module *mod, const char *modname,
                            struct elf_info *elf)
  {
@@ -78453,7 +78603,7 @@ index a509ff8..5822633 100644
        Elf_Shdr *sechdrs = elf->sechdrs;
  
        /* Walk through all sections */
-@@ -1754,7 +1769,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf,
+@@ -1766,7 +1781,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf,
        va_end(ap);
  }
  
@@ -78462,7 +78612,7 @@ index a509ff8..5822633 100644
  {
        if (buf->size - buf->pos < len) {
                buf->size += len + SZ;
-@@ -1966,7 +1981,7 @@ static void write_if_changed(struct buffer *b, const char *fname)
+@@ -1984,7 +1999,7 @@ static void write_if_changed(struct buffer *b, const char *fname)
        if (fstat(fileno(file), &st) < 0)
                goto close_write;
  
@@ -78472,7 +78622,7 @@ index a509ff8..5822633 100644
  
        tmp = NOFAIL(malloc(b->pos));
 diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
-index 2031119..b5433af 100644
+index 51207e4..f7d603d 100644
 --- a/scripts/mod/modpost.h
 +++ b/scripts/mod/modpost.h
 @@ -92,15 +92,15 @@ void *do_nofail(void *ptr, const char *expr);
@@ -78538,16 +78688,14 @@ index 5c11312..72742b5 100644
      write_hex_cnt = 0;
      for (i = 0; i < logo_clutsize; i++) {
 diff --git a/security/Kconfig b/security/Kconfig
-index e0f08b5..7388edd 100644
+index ccc61f8..5e68d73 100644
 --- a/security/Kconfig
 +++ b/security/Kconfig
-@@ -4,6 +4,586 @@
+@@ -4,6 +4,875 @@
  
  menu "Security options"
  
-+source grsecurity/Kconfig
-+
-+menu "PaX"
++menu "Grsecurity"
 +
 +      config ARCH_TRACK_EXEC_LIMIT
 +      bool
@@ -78568,8 +78716,209 @@ index e0f08b5..7388edd 100644
 +      bool
 +      default y if (X86_32 && (MPENTIUM4 || MK8 || MPSC || MCORE2 || MATOM))
 +      
++      config PAX_USERCOPY_SLABS
++      bool
++
++config GRKERNSEC
++      bool "Grsecurity"
++      select CRYPTO
++      select CRYPTO_SHA256
++      select STOP_MACHINE
++      help
++        If you say Y here, you will be able to configure many features
++        that will enhance the security of your system.  It is highly
++        recommended that you say Y here and read through the help
++        for each option so that you fully understand the features and
++        can evaluate their usefulness for your machine.
++
++choice
++      prompt "Configuration Method"
++      depends on GRKERNSEC
++      default GRKERNSEC_CONFIG_CUSTOM
++      help
++
++config GRKERNSEC_CONFIG_AUTO
++      bool "Automatic"
++      help
++        If you choose this configuration method, you'll be able to answer a small
++        number of simple questions about how you plan to use this kernel.
++        The settings of grsecurity and PaX will be automatically configured for
++        the highest commonly-used settings within the provided constraints.
++
++        If you require additional configuration, custom changes can still be made
++        from the "custom configuration" menu.
++
++config GRKERNSEC_CONFIG_CUSTOM
++      bool "Custom"
++      help
++        If you choose this configuration method, you'll be able to configure all
++        grsecurity and PaX settings manually.  Via this method, no options are
++        automatically enabled.
++
++endchoice
++
++choice
++      prompt "Usage Type"
++      depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
++      default GRKERNSEC_CONFIG_SERVER
++      help
++
++config GRKERNSEC_CONFIG_SERVER
++      bool "Server"
++      help
++        Choose this option if you plan to use this kernel on a server.
++
++config GRKERNSEC_CONFIG_DESKTOP
++      bool "Desktop"
++      help
++        Choose this option if you plan to use this kernel on a desktop.
++
++endchoice
++
++choice
++      prompt "Virtualization Type"
++      depends on (GRKERNSEC && X86 && GRKERNSEC_CONFIG_AUTO)
++      default GRKERNSEC_CONFIG_VIRT_NONE
++      help
++
++config GRKERNSEC_CONFIG_VIRT_NONE
++      bool "None"
++      help
++        Choose this option if this kernel will be run on bare metal.
++
++config GRKERNSEC_CONFIG_VIRT_GUEST
++      bool "Guest"
++      help
++        Choose this option if this kernel will be run as a VM guest.
++
++config GRKERNSEC_CONFIG_VIRT_HOST
++      bool "Host"
++      help
++        Choose this option if this kernel will be run as a VM host.
++
++endchoice
++
++choice
++      prompt "Virtualization Hardware"
++      depends on (GRKERNSEC && X86 && GRKERNSEC_CONFIG_AUTO && (GRKERNSEC_CONFIG_VIRT_GUEST || GRKERNSEC_CONFIG_VIRT_HOST))
++      help
++
++config GRKERNSEC_CONFIG_VIRT_EPT
++      bool "EPT/RVI Processor Support"
++      depends on X86
++      help
++        Choose this option if your CPU supports the EPT or RVI features of 2nd-gen
++        hardware virtualization.  This allows for additional kernel hardening protections
++        to operate without additional performance impact.
++
++        To see if your Intel processor supports EPT, see:
++        http://ark.intel.com/Products/VirtualizationTechnology
++        (Most Core i3/5/7 support EPT)
++
++        To see if your AMD processor supports RVI, see:
++        http://support.amd.com/us/kbarticles/Pages/GPU120AMDRVICPUsHyperVWin8.aspx
++
++config GRKERNSEC_CONFIG_VIRT_SOFT
++      bool "First-gen/No Hardware Virtualization"
++      help
++        Choose this option if you use an Atom/Pentium/Core 2 processor that either doesn't
++        support hardware virtualization or doesn't support the EPT/RVI extensions.
++
++endchoice
++
++choice
++      prompt "Virtualization Software"
++      depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO && (GRKERNSEC_CONFIG_VIRT_GUEST || GRKERNSEC_CONFIG_VIRT_HOST))
++      help
++
++config GRKERNSEC_CONFIG_VIRT_XEN
++      bool "Xen"
++      help
++        Choose this option if this kernel is running as a Xen guest or host.
++
++config GRKERNSEC_CONFIG_VIRT_VMWARE
++      bool "VMWare"
++      help
++        Choose this option if this kernel is running as a VMWare guest or host.
++
++config GRKERNSEC_CONFIG_VIRT_KVM
++      bool "KVM"
++      help
++        Choose this option if this kernel is running as a KVM guest or host.
++
++config GRKERNSEC_CONFIG_VIRT_VIRTUALBOX
++      bool "VirtualBox"
++      help
++        Choose this option if this kernel is running as a VirtualBox guest or host.
++
++endchoice
++
++choice
++      prompt "Required Priorities"
++      depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
++      default GRKERNSEC_CONFIG_PRIORITY_PERF
++      help
++
++config GRKERNSEC_CONFIG_PRIORITY_PERF
++      bool "Performance"
++      help
++        Choose this option if performance is of highest priority for this deployment
++        of grsecurity.  Features like UDEREF on a 64bit kernel, kernel stack clearing,
++        and freed memory sanitizing will be disabled.
++
++config GRKERNSEC_CONFIG_PRIORITY_SECURITY
++      bool "Security"
++      help
++        Choose this option if security is of highest priority for this deployment of
++        grsecurity.  UDEREF, kernel stack clearing, and freed memory sanitizing will
++        be enabled for this kernel.  In a worst-case scenario, these features can
++        introduce a 20% performance hit (UDEREF on x64 contributing half of this hit).
++
++endchoice
++
++menu "Default Special Groups"
++depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
++
++config GRKERNSEC_PROC_GID
++      int "GID exempted from /proc restrictions"
++      default 1001
++      help
++        Setting this GID determines which group will be exempted from
++        grsecurity's /proc restrictions, allowing users of the specified
++        group  to view network statistics and the existence of other users'
++        processes on the system.
++
++config GRKERNSEC_TPE_GID
++      int "GID for untrusted users"
++      depends on GRKERNSEC_CONFIG_SERVER
++      default 1005
++      help
++        Setting this GID determines which group untrusted users should
++        be added to.  These users will be placed under grsecurity's Trusted Path
++        Execution mechanism, preventing them from executing their own binaries.
++        The users will only be able to execute binaries in directories owned and
++        writable only by the root user.
++
++config GRKERNSEC_SYMLINKOWN_GID
++        int "GID for users with kernel-enforced SymlinksIfOwnerMatch"
++        depends on GRKERNSEC_CONFIG_SERVER
++        default 1006
++        help
++          Setting this GID determines what group kernel-enforced
++          SymlinksIfOwnerMatch will be enabled for.  If the sysctl option
++          is enabled, a sysctl option with name "symlinkown_gid" is created.
++
++
++endmenu
++
++menu "Customize Configuration"
++depends on GRKERNSEC
++
++menu "PaX"
++
 +config PAX
 +      bool "Enable various PaX features"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on GRKERNSEC && (ALPHA || ARM || AVR32 || IA64 || MIPS || PARISC || PPC || SPARC || X86)
 +      help
 +        This allows you to enable various PaX features.  PaX adds
@@ -78581,12 +78930,11 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_SOFTMODE
 +      bool 'Support soft mode'
-+      select PAX_PT_PAX_FLAGS
 +      help
 +        Enabling this option will allow you to run PaX in soft mode, that
 +        is, PaX features will not be enforced by default, only on executables
-+        marked explicitly.  You must also enable PT_PAX_FLAGS support as it
-+        is the only way to mark executables for soft mode use.
++        marked explicitly.  You must also enable PT_PAX_FLAGS or XATTR_PAX_FLAGS
++        support as they are the only way to mark executables for soft mode use.
 +
 +        Soft mode can be activated by using the "pax_softmode=1" kernel command
 +        line option on boot.  Furthermore you can control various PaX features
@@ -78594,6 +78942,7 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_EI_PAX
 +      bool 'Use legacy ELF header marking'
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        Enabling this option will allow you to control PaX features on
 +        a per executable basis via the 'chpax' utility available at
@@ -78601,13 +78950,18 @@ index e0f08b5..7388edd 100644
 +        an otherwise reserved part of the ELF header.  This marking has
 +        numerous drawbacks (no support for soft-mode, toolchain does not
 +        know about the non-standard use of the ELF header) therefore it
-+        has been deprecated in favour of PT_PAX_FLAGS support.
++        has been deprecated in favour of PT_PAX_FLAGS and XATTR_PAX_FLAGS
++        support.
 +
-+        Note that if you enable PT_PAX_FLAGS marking support as well,
-+        the PT_PAX_FLAG marks will override the legacy EI_PAX marks.
++        Note that if you enable PT_PAX_FLAGS or XATTR_PAX_FLAGS marking
++        support as well, they will override the legacy EI_PAX marks.
++
++        If you enable none of the marking options then all applications
++        will run with PaX enabled on them by default.
 +
 +config PAX_PT_PAX_FLAGS
 +      bool 'Use ELF program header marking'
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        Enabling this option will allow you to control PaX features on
 +        a per executable basis via the 'paxctl' utility available at
@@ -78617,12 +78971,47 @@ index e0f08b5..7388edd 100644
 +        integrated into the toolchain (the binutils patch is available
 +        from http://pax.grsecurity.net).
 +
-+        If your toolchain does not support PT_PAX_FLAGS markings,
-+        you can create one in most cases with 'paxctl -C'.
-+
 +        Note that if you enable the legacy EI_PAX marking support as well,
 +        the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks.
 +
++        If you enable both PT_PAX_FLAGS and XATTR_PAX_FLAGS support then you
++        must make sure that the marks are the same if a binary has both marks.
++
++        If you enable none of the marking options then all applications
++        will run with PaX enabled on them by default.
++
++config PAX_XATTR_PAX_FLAGS
++      bool 'Use filesystem extended attributes marking'
++      default y if GRKERNSEC_CONFIG_AUTO
++      select CIFS_XATTR if CIFS
++      select EXT2_FS_XATTR if EXT2_FS
++      select EXT3_FS_XATTR if EXT3_FS
++      select EXT4_FS_XATTR if EXT4_FS
++      select JFFS2_FS_XATTR if JFFS2_FS
++      select REISERFS_FS_XATTR if REISERFS_FS
++      select SQUASHFS_XATTR if SQUASHFS
++      select TMPFS_XATTR if TMPFS
++      select UBIFS_FS_XATTR if UBIFS_FS
++      help
++        Enabling this option will allow you to control PaX features on
++        a per executable basis via the 'setfattr' utility.  The control
++        flags will be read from the user.pax.flags extended attribute of
++        the file.  This marking has the benefit of supporting binary-only
++        applications that self-check themselves (e.g., skype) and would
++        not tolerate chpax/paxctl changes.  The main drawback is that
++        extended attributes are not supported by some filesystems (e.g.,
++        isofs, udf, vfat) so copying files through such filesystems will
++        lose the extended attributes and these PaX markings.
++
++        Note that if you enable the legacy EI_PAX marking support as well,
++        the EI_PAX marks will be overridden by the XATTR_PAX_FLAGS marks.
++
++        If you enable both PT_PAX_FLAGS and XATTR_PAX_FLAGS support then you
++        must make sure that the marks are the same if a binary has both marks.
++
++        If you enable none of the marking options then all applications
++        will run with PaX enabled on them by default.
++
 +choice
 +      prompt 'MAC system integration'
 +      default PAX_HAVE_ACL_FLAGS
@@ -78654,7 +79043,8 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_NOEXEC
 +      bool "Enforce non-executable pages"
-+      depends on (PAX_EI_PAX || PAX_PT_PAX_FLAGS || PAX_HAVE_ACL_FLAGS || PAX_HOOK_ACL_FLAGS) && (ALPHA || (ARM && (CPU_V6 || CPU_V7)) || IA64 || MIPS || PARISC || PPC || S390 || SPARC || X86)
++      default y if GRKERNSEC_CONFIG_AUTO
++      depends on ALPHA || (ARM && (CPU_V6 || CPU_V7)) || IA64 || MIPS || PARISC || PPC || S390 || SPARC || X86
 +      help
 +        By design some architectures do not allow for protecting memory
 +        pages against execution or even if they do, Linux does not make
@@ -78682,6 +79072,7 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_PAGEEXEC
 +      bool "Paging based non-executable pages"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on PAX_NOEXEC && (!X86_32 || M586 || M586TSC || M586MMX || M686 || MPENTIUMII || MPENTIUMIII || MPENTIUMM || MCORE2 || MATOM || MPENTIUM4 || MPSC || MK7 || MK8 || MWINCHIPC6 || MWINCHIP2 || MWINCHIP3D || MVIAC3_2 || MVIAC7)
 +      select S390_SWITCH_AMODE if S390
 +      select S390_EXEC_PROTECT if S390
@@ -78704,6 +79095,7 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_SEGMEXEC
 +      bool "Segmentation based non-executable pages"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on PAX_NOEXEC && X86_32
 +      help
 +        This implementation is based on the segmentation feature of the
@@ -78770,6 +79162,7 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_MPROTECT
 +      bool "Restrict mprotect()"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on (PAX_PAGEEXEC || PAX_SEGMEXEC)
 +      help
 +        Enabling this option will prevent programs from
@@ -78787,8 +79180,8 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_MPROTECT_COMPAT
 +      bool "Use legacy/compat protection demoting (read help)"
++      default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_DESKTOP)
 +      depends on PAX_MPROTECT
-+      default n
 +      help
 +        The current implementation of PAX_MPROTECT denies RWX allocations/mprotects
 +        by sending the proper error code to the application.  For some broken 
@@ -78863,6 +79256,7 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_KERNEXEC
 +      bool "Enforce non-executable kernel pages"
++      default y if GRKERNSEC_CONFIG_AUTO && (GRKERNSEC_CONFIG_VIRT_NONE || (GRKERNSEC_CONFIG_VIRT_EPT && GRKERNSEC_CONFIG_VIRT_GUEST) || (GRKERNSEC_CONFIG_VIRT_EPT && GRKERNSEC_CONFIG_VIRT_KVM))
 +      depends on (PPC || X86) && (!X86_32 || X86_WP_WORKS_OK) && !XEN
 +      select PAX_PER_CPU_PGD if X86_64 || (X86_32 && X86_PAE)
 +      select PAX_KERNEXEC_PLUGIN if X86_64
@@ -78904,7 +79298,8 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_KERNEXEC_MODULE_TEXT
 +      int "Minimum amount of memory reserved for module code"
-+      default "4"
++      default "4" if (!GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_SERVER)
++      default "12" if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_DESKTOP)
 +      depends on PAX_KERNEXEC && X86_32 && MODULES
 +      help
 +        Due to implementation details the kernel must reserve a fixed
@@ -78929,7 +79324,7 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_ASLR
 +      bool "Address Space Layout Randomization"
-+      depends on PAX_EI_PAX || PAX_PT_PAX_FLAGS || PAX_HAVE_ACL_FLAGS || PAX_HOOK_ACL_FLAGS
++      default y if GRKERNSEC_CONFIG_AUTO
 +      help
 +        Many if not most exploit techniques rely on the knowledge of
 +        certain addresses in the attacked program.  The following options
@@ -78959,6 +79354,7 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_RANDKSTACK
 +      bool "Randomize kernel stack base"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on X86_TSC && X86
 +      help
 +        By saying Y here the kernel will randomize every task's kernel
@@ -78973,6 +79369,7 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_RANDUSTACK
 +      bool "Randomize user stack base"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on PAX_ASLR
 +      help
 +        By saying Y here the kernel will randomize every task's userland
@@ -78985,6 +79382,7 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_RANDMMAP
 +      bool "Randomize mmap() base"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on PAX_ASLR
 +      help
 +        By saying Y here the kernel will use a randomized base address for
@@ -79011,6 +79409,8 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_MEMORY_SANITIZE
 +      bool "Sanitize all freed memory"
++      default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
++      depends on !HIBERNATION
 +      help
 +        By saying Y here the kernel will erase memory pages as soon as they
 +        are freed.  This in turn reduces the lifetime of data stored in the
@@ -79032,6 +79432,7 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_MEMORY_STACKLEAK
 +      bool "Sanitize kernel stack"
++      default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
 +      depends on X86
 +      help
 +        By saying Y here the kernel will erase the kernel stack before it
@@ -79049,13 +79450,14 @@ index e0f08b5..7388edd 100644
 +        before deploying it.
 +
 +        Note: full support for this feature requires gcc with plugin support
-+        so make sure your compiler is at least gcc 4.5.0 (cross compilation
-+        is not supported).  Using older gcc versions means that functions
-+        with large enough stack frames may leave uninitialized memory behind
-+        that may be exposed to a later syscall leaking the stack.
++        so make sure your compiler is at least gcc 4.5.0.  Using older gcc
++        versions means that functions with large enough stack frames may
++        leave uninitialized memory behind that may be exposed to a later
++        syscall leaking the stack.
 +
 +config PAX_MEMORY_UDEREF
 +      bool "Prevent invalid userland pointer dereference"
++      default y if GRKERNSEC_CONFIG_AUTO && (X86_32 || (X86_64 && GRKERNSEC_CONFIG_PRIORITY_SECURITY)) && (GRKERNSEC_CONFIG_VIRT_NONE || GRKERNSEC_CONFIG_VIRT_EPT)
 +      depends on X86 && !UML_X86 && !XEN
 +      select PAX_PER_CPU_PGD if X86_64
 +      help
@@ -79075,7 +79477,8 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_REFCOUNT
 +      bool "Prevent various kernel object reference counter overflows"
-+      depends on GRKERNSEC && (X86 || SPARC64)
++      default y if GRKERNSEC_CONFIG_AUTO
++      depends on GRKERNSEC && ((ARM && (CPU_32v6 || CPU_32v6K || CPU_32v7)) || SPARC64 || X86)
 +      help
 +        By saying Y here the kernel will detect and prevent overflowing
 +        various (but not all) kinds of object reference counters.  Such
@@ -79094,8 +79497,10 @@ index e0f08b5..7388edd 100644
 +
 +config PAX_USERCOPY
 +      bool "Harden heap object copies between kernel and userland"
++      default y if GRKERNSEC_CONFIG_AUTO
 +      depends on X86 || PPC || SPARC || ARM
 +      depends on GRKERNSEC && (SLAB || SLUB || SLOB)
++      select PAX_USERCOPY_SLABS
 +      help
 +        By saying Y here the kernel will enforce the size of heap objects
 +        when they are copied in either direction between the kernel and
@@ -79121,6 +79526,40 @@ index e0f08b5..7388edd 100644
 +        Since this has a negligible performance impact, you should enable
 +        this feature.
 +
++config PAX_SIZE_OVERFLOW
++      bool "Prevent various integer overflows in function size parameters"
++      default y if GRKERNSEC_CONFIG_AUTO
++      depends on X86
++      help
++        By saying Y here the kernel recomputes expressions of function
++        arguments marked by a size_overflow attribute with double integer
++        precision (DImode/TImode for 32/64 bit integer types).
++
++        The recomputed argument is checked against INT_MAX and an event
++        is logged on overflow and the triggering process is killed.
++
++        Homepage:
++        http://www.grsecurity.net/~ephox/overflow_plugin/
++
++config PAX_LATENT_ENTROPY
++      bool "Generate some entropy during boot"
++      default y if GRKERNSEC_CONFIG_AUTO
++      help
++        By saying Y here the kernel will instrument early boot code to
++        extract some entropy from both original and artificially created
++        program state.  This will help especially embedded systems where
++        there is little 'natural' source of entropy normally.  The cost
++        is some slowdown of the boot process.
++
++        Note that entropy extracted this way is not cryptographically
++        secure!
++
++endmenu
++
++endmenu
++
++source grsecurity/Kconfig
++
 +endmenu
 +
 +endmenu
@@ -79128,7 +79567,7 @@ index e0f08b5..7388edd 100644
  config KEYS
        bool "Enable access key retention support"
        help
-@@ -167,7 +747,7 @@ config INTEL_TXT
+@@ -169,7 +1038,7 @@ config INTEL_TXT
  config LSM_MMAP_MIN_ADDR
        int "Low address space for LSM to protect from user allocation"
        depends on SECURITY && SECURITY_SELINUX
@@ -79138,10 +79577,10 @@ index e0f08b5..7388edd 100644
        help
          This is the portion of low virtual memory which should be protected
 diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
-index 3783202..1852837 100644
+index ad05d39..afffccb 100644
 --- a/security/apparmor/lsm.c
 +++ b/security/apparmor/lsm.c
-@@ -621,7 +621,7 @@ static int apparmor_task_setrlimit(struct task_struct *task,
+@@ -622,7 +622,7 @@ static int apparmor_task_setrlimit(struct task_struct *task,
        return error;
  }
  
@@ -79151,27 +79590,10 @@ index 3783202..1852837 100644
  
        .ptrace_access_check =          apparmor_ptrace_access_check,
 diff --git a/security/commoncap.c b/security/commoncap.c
-index a93b3b7..4410df9 100644
+index 71a166a..851bb3e 100644
 --- a/security/commoncap.c
 +++ b/security/commoncap.c
-@@ -28,6 +28,7 @@
- #include <linux/prctl.h>
- #include <linux/securebits.h>
- #include <linux/user_namespace.h>
-+#include <net/sock.h>
- /*
-  * If a non-root user executes a setuid-root binary in
-@@ -58,7 +59,7 @@ int cap_netlink_send(struct sock *sk, struct sk_buff *skb)
- int cap_netlink_recv(struct sk_buff *skb, int cap)
- {
--      if (!cap_raised(current_cap(), cap))
-+      if (!cap_raised(current_cap(), cap) || !gr_is_capable(cap))
-               return -EPERM;
-       return 0;
- }
-@@ -575,6 +576,9 @@ int cap_bprm_secureexec(struct linux_binprm *bprm)
+@@ -576,6 +576,9 @@ int cap_bprm_secureexec(struct linux_binprm *bprm)
  {
        const struct cred *cred = current_cred();
  
@@ -79182,10 +79604,10 @@ index a93b3b7..4410df9 100644
                if (bprm->cap_effective)
                        return 1;
 diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h
-index 08408bd..67e6e78 100644
+index 3ccf7ac..d73ad64 100644
 --- a/security/integrity/ima/ima.h
 +++ b/security/integrity/ima/ima.h
-@@ -85,8 +85,8 @@ void ima_add_violation(struct inode *inode, const unsigned char *filename,
+@@ -86,8 +86,8 @@ void ima_add_violation(struct inode *inode, const unsigned char *filename,
  extern spinlock_t ima_queue_lock;
  
  struct ima_h_table {
@@ -79197,7 +79619,7 @@ index 08408bd..67e6e78 100644
  };
  extern struct ima_h_table ima_htable;
 diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_api.c
-index da36d2c..e1e1965 100644
+index 88a2788..581ab92 100644
 --- a/security/integrity/ima/ima_api.c
 +++ b/security/integrity/ima/ima_api.c
 @@ -75,7 +75,7 @@ void ima_add_violation(struct inode *inode, const unsigned char *filename,
@@ -79210,7 +79632,7 @@ index da36d2c..e1e1965 100644
        entry = kmalloc(sizeof(*entry), GFP_KERNEL);
        if (!entry) {
 diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c
-index ef21b96..d53e674 100644
+index e1aa2b4..52027bf 100644
 --- a/security/integrity/ima/ima_fs.c
 +++ b/security/integrity/ima/ima_fs.c
 @@ -28,12 +28,12 @@
@@ -79229,10 +79651,10 @@ index ef21b96..d53e674 100644
  }
  
 diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c
-index 8e28f04..d5951b1 100644
+index 55a6271..ad829c3 100644
 --- a/security/integrity/ima/ima_queue.c
 +++ b/security/integrity/ima/ima_queue.c
-@@ -79,7 +79,7 @@ static int ima_add_digest_entry(struct ima_template_entry *entry)
+@@ -81,7 +81,7 @@ static int ima_add_digest_entry(struct ima_template_entry *entry)
        INIT_LIST_HEAD(&qe->later);
        list_add_tail_rcu(&qe->later, &ima_measurements);
  
@@ -79242,7 +79664,7 @@ index 8e28f04..d5951b1 100644
        hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
        return 0;
 diff --git a/security/keys/compat.c b/security/keys/compat.c
-index 338b510..a235861 100644
+index 4c48e13..7abdac9 100644
 --- a/security/keys/compat.c
 +++ b/security/keys/compat.c
 @@ -44,7 +44,7 @@ long compat_keyctl_instantiate_key_iov(
@@ -79255,10 +79677,10 @@ index 338b510..a235861 100644
        if (iov != iovstack)
                kfree(iov);
 diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
-index eca5191..da9c7f0 100644
+index fb767c6..b9c49c0 100644
 --- a/security/keys/keyctl.c
 +++ b/security/keys/keyctl.c
-@@ -921,7 +921,7 @@ static int keyctl_change_reqkey_auth(struct key *key)
+@@ -935,7 +935,7 @@ static int keyctl_change_reqkey_auth(struct key *key)
  /*
   * Copy the iovec data from userspace
   */
@@ -79267,7 +79689,7 @@ index eca5191..da9c7f0 100644
                                 unsigned ioc)
  {
        for (; ioc > 0; ioc--) {
-@@ -943,7 +943,7 @@ static long copy_from_user_iovec(void *buffer, const struct iovec *iov,
+@@ -957,7 +957,7 @@ static long copy_from_user_iovec(void *buffer, const struct iovec *iov,
   * If successful, 0 will be returned.
   */
  long keyctl_instantiate_key_common(key_serial_t id,
@@ -79276,7 +79698,7 @@ index eca5191..da9c7f0 100644
                                   unsigned ioc,
                                   size_t plen,
                                   key_serial_t ringid)
-@@ -1038,7 +1038,7 @@ long keyctl_instantiate_key(key_serial_t id,
+@@ -1052,7 +1052,7 @@ long keyctl_instantiate_key(key_serial_t id,
                        [0].iov_len  = plen
                };
  
@@ -79285,7 +79707,7 @@ index eca5191..da9c7f0 100644
        }
  
        return keyctl_instantiate_key_common(id, NULL, 0, 0, ringid);
-@@ -1071,7 +1071,7 @@ long keyctl_instantiate_key_iov(key_serial_t id,
+@@ -1085,7 +1085,7 @@ long keyctl_instantiate_key_iov(key_serial_t id,
        if (ret == 0)
                goto no_payload_free;
  
@@ -79295,7 +79717,7 @@ index eca5191..da9c7f0 100644
        if (iov != iovstack)
                kfree(iov);
 diff --git a/security/keys/keyring.c b/security/keys/keyring.c
-index 30e242f..ec111ab 100644
+index d605f75..2bc6be9 100644
 --- a/security/keys/keyring.c
 +++ b/security/keys/keyring.c
 @@ -214,15 +214,15 @@ static long keyring_read(const struct key *keyring,
@@ -79338,12 +79760,20 @@ index f728728..6457a0c 100644
  
  /*
 diff --git a/security/security.c b/security/security.c
-index d9e1533..91427f2 100644
+index bf619ff..8179030 100644
 --- a/security/security.c
 +++ b/security/security.c
-@@ -25,8 +25,8 @@ static __initdata char chosen_lsm[SECURITY_NAME_MAX + 1] =
- /* things that live in capability.c */
- extern void __init security_fixup_ops(struct security_operations *ops);
+@@ -20,6 +20,7 @@
+ #include <linux/ima.h>
+ #include <linux/evm.h>
+ #include <linux/fsnotify.h>
++#include <linux/mm.h>
+ #include <net/flow.h>
+ #define MAX_LSM_EVM_XATTR     2
+@@ -28,8 +29,8 @@
+ static __initdata char chosen_lsm[SECURITY_NAME_MAX + 1] =
+       CONFIG_DEFAULT_SECURITY;
  
 -static struct security_operations *security_ops;
 -static struct security_operations default_security_ops = {
@@ -79352,7 +79782,7 @@ index d9e1533..91427f2 100644
        .name   = "default",
  };
  
-@@ -67,7 +67,9 @@ int __init security_init(void)
+@@ -70,7 +71,9 @@ int __init security_init(void)
  
  void reset_security_ops(void)
  {
@@ -79363,18 +79793,19 @@ index d9e1533..91427f2 100644
  
  /* Save user chosen LSM */
 diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
-index 266a229..61bd553 100644
+index d85b793..a164832 100644
 --- a/security/selinux/hooks.c
 +++ b/security/selinux/hooks.c
-@@ -93,7 +93,6 @@
+@@ -95,8 +95,6 @@
  #define NUM_SEL_MNT_OPTS 5
  
- extern int selinux_nlmsg_lookup(u16 sclass, u16 nlmsg_type, u32 *perm);
 -extern struct security_operations *security_ops;
+-
  /* SECMARK reference count */
- atomic_t selinux_secmark_refcount = ATOMIC_INIT(0);
-@@ -5455,7 +5454,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer)
+ static atomic_t selinux_secmark_refcount = ATOMIC_INIT(0);
+@@ -5520,7 +5518,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer)
  
  #endif
  
@@ -79384,10 +79815,10 @@ index 266a229..61bd553 100644
  
        .ptrace_access_check =          selinux_ptrace_access_check,
 diff --git a/security/selinux/include/xfrm.h b/security/selinux/include/xfrm.h
-index b43813c..74be837 100644
+index c220f31..89fab3f 100644
 --- a/security/selinux/include/xfrm.h
 +++ b/security/selinux/include/xfrm.h
-@@ -48,7 +48,7 @@ int selinux_xfrm_decode_session(struct sk_buff *skb, u32 *sid, int ckall);
+@@ -50,7 +50,7 @@ int selinux_xfrm_decode_session(struct sk_buff *skb, u32 *sid, int ckall);
  
  static inline void selinux_xfrm_notify_policyload(void)
  {
@@ -79396,24 +79827,11 @@ index b43813c..74be837 100644
  }
  #else
  static inline int selinux_xfrm_enabled(void)
-diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
-index f6917bc..8e8713e 100644
---- a/security/selinux/ss/services.c
-+++ b/security/selinux/ss/services.c
-@@ -1814,6 +1814,8 @@ int security_load_policy(void *data, size_t len)
-       int rc = 0;
-       struct policy_file file = { data, len }, *fp = &file;
-+      pax_track_stack();
-+
-       if (!ss_initialized) {
-               avtab_cache_init();
-               rc = policydb_read(&policydb, fp);
 diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
-index b9c5e14..20ab779 100644
+index 45c32f0..0038be2 100644
 --- a/security/smack/smack_lsm.c
 +++ b/security/smack/smack_lsm.c
-@@ -3393,7 +3393,7 @@ static int smack_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
+@@ -3500,7 +3500,7 @@ static int smack_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
        return 0;
  }
  
@@ -79423,10 +79841,10 @@ index b9c5e14..20ab779 100644
  
        .ptrace_access_check =          smack_ptrace_access_check,
 diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c
-index f776400..f95b158c 100644
+index 620d37c..e2ad89b 100644
 --- a/security/tomoyo/tomoyo.c
 +++ b/security/tomoyo/tomoyo.c
-@@ -446,7 +446,7 @@ static int tomoyo_sb_pivotroot(struct path *old_path, struct path *new_path)
+@@ -501,7 +501,7 @@ static int tomoyo_socket_sendmsg(struct socket *sock, struct msghdr *msg,
   * tomoyo_security_ops is a "struct security_operations" which is used for
   * registering TOMOYO.
   */
@@ -79435,8 +79853,20 @@ index f776400..f95b158c 100644
        .name                = "tomoyo",
        .cred_alloc_blank    = tomoyo_cred_alloc_blank,
        .cred_prepare        = tomoyo_cred_prepare,
+diff --git a/security/yama/Kconfig b/security/yama/Kconfig
+index 51d6709..1f3dbe2 100644
+--- a/security/yama/Kconfig
++++ b/security/yama/Kconfig
+@@ -1,6 +1,6 @@
+ config SECURITY_YAMA
+       bool "Yama support"
+-      depends on SECURITY
++      depends on SECURITY && !GRKERNSEC
+       select SECURITYFS
+       select SECURITY_PATH
+       default n
 diff --git a/sound/aoa/codecs/onyx.c b/sound/aoa/codecs/onyx.c
-index 3687a6c..652565e 100644
+index 270790d..c67dfcb 100644
 --- a/sound/aoa/codecs/onyx.c
 +++ b/sound/aoa/codecs/onyx.c
 @@ -54,7 +54,7 @@ struct onyx {
@@ -79480,7 +79910,7 @@ index ffd2025..df062c9 100644
  /* PCM3052 register definitions */
  
 diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
-index 23c34a0..a2673a5 100644
+index 08fde00..0bf641a 100644
 --- a/sound/core/oss/pcm_oss.c
 +++ b/sound/core/oss/pcm_oss.c
 @@ -1189,10 +1189,10 @@ snd_pcm_sframes_t snd_pcm_oss_write3(struct snd_pcm_substream *substream, const
@@ -79568,7 +79998,7 @@ index 91cdf94..4085161 100644
        if (err < 0)
                return err;
 diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
-index 1c6be91..c761a59 100644
+index 3fe99e6..26952e4 100644
 --- a/sound/core/pcm_native.c
 +++ b/sound/core/pcm_native.c
 @@ -2770,11 +2770,11 @@ int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream,
@@ -79586,10 +80016,10 @@ index 1c6be91..c761a59 100644
        default:
                result = -EINVAL;
 diff --git a/sound/core/seq/seq_device.c b/sound/core/seq/seq_device.c
-index 1f99767..14636533 100644
+index 5cf8d65..912a79c 100644
 --- a/sound/core/seq/seq_device.c
 +++ b/sound/core/seq/seq_device.c
-@@ -63,7 +63,7 @@ struct ops_list {
+@@ -64,7 +64,7 @@ struct ops_list {
        int argsize;            /* argument size */
  
        /* operators */
@@ -79598,7 +80028,7 @@ index 1f99767..14636533 100644
  
        /* registred devices */
        struct list_head dev_list;      /* list of devices */
-@@ -332,7 +332,7 @@ int snd_seq_device_register_driver(char *id, struct snd_seq_dev_ops *entry,
+@@ -333,7 +333,7 @@ int snd_seq_device_register_driver(char *id, struct snd_seq_dev_ops *entry,
  
        mutex_lock(&ops->reg_mutex);
        /* copy driver operators */
@@ -79607,7 +80037,7 @@ index 1f99767..14636533 100644
        ops->driver |= DRIVER_LOADED;
        ops->argsize = argsize;
  
-@@ -462,7 +462,7 @@ static int init_device(struct snd_seq_device *dev, struct ops_list *ops)
+@@ -463,7 +463,7 @@ static int init_device(struct snd_seq_device *dev, struct ops_list *ops)
                           dev->name, ops->id, ops->argsize, dev->argsize);
                return -EINVAL;
        }
@@ -79616,7 +80046,7 @@ index 1f99767..14636533 100644
                dev->status = SNDRV_SEQ_DEVICE_REGISTERED;
                ops->num_init_devices++;
        } else {
-@@ -489,7 +489,7 @@ static int free_device(struct snd_seq_device *dev, struct ops_list *ops)
+@@ -490,7 +490,7 @@ static int free_device(struct snd_seq_device *dev, struct ops_list *ops)
                           dev->name, ops->id, ops->argsize, dev->argsize);
                return -EINVAL;
        }
@@ -79626,10 +80056,10 @@ index 1f99767..14636533 100644
                dev->driver_data = NULL;
                ops->num_init_devices--;
 diff --git a/sound/drivers/mts64.c b/sound/drivers/mts64.c
-index 8539ab0..be8a121 100644
+index 621e60e..f4543f5 100644
 --- a/sound/drivers/mts64.c
 +++ b/sound/drivers/mts64.c
-@@ -28,6 +28,7 @@
+@@ -29,6 +29,7 @@
  #include <sound/initval.h>
  #include <sound/rawmidi.h>
  #include <sound/control.h>
@@ -79637,7 +80067,7 @@ index 8539ab0..be8a121 100644
  
  #define CARD_NAME "Miditerminal 4140"
  #define DRIVER_NAME "MTS64"
-@@ -66,7 +67,7 @@ struct mts64 {
+@@ -67,7 +68,7 @@ struct mts64 {
        struct pardevice *pardev;
        int pardev_claimed;
  
@@ -79646,7 +80076,7 @@ index 8539ab0..be8a121 100644
        int current_midi_output_port;
        int current_midi_input_port;
        u8 mode[MTS64_NUM_INPUT_PORTS];
-@@ -696,7 +697,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
+@@ -697,7 +698,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
  {
        struct mts64 *mts = substream->rmidi->private_data;
  
@@ -79655,7 +80085,7 @@ index 8539ab0..be8a121 100644
                /* We don't need a spinlock here, because this is just called 
                   if the device has not been opened before. 
                   So there aren't any IRQs from the device */
-@@ -704,7 +705,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
+@@ -705,7 +706,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
  
                msleep(50);
        }
@@ -79664,7 +80094,7 @@ index 8539ab0..be8a121 100644
  
        return 0;
  }
-@@ -714,8 +715,7 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
+@@ -715,8 +716,7 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
        struct mts64 *mts = substream->rmidi->private_data;
        unsigned long flags;
  
@@ -79674,7 +80104,7 @@ index 8539ab0..be8a121 100644
                /* We need the spinlock_irqsave here because we can still
                   have IRQs at this point */
                spin_lock_irqsave(&mts->lock, flags);
-@@ -724,8 +724,8 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
+@@ -725,8 +725,8 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
  
                msleep(500);
  
@@ -79686,10 +80116,10 @@ index 8539ab0..be8a121 100644
        return 0;
  }
 diff --git a/sound/drivers/opl4/opl4_lib.c b/sound/drivers/opl4/opl4_lib.c
-index f07e38d..7aae69a 100644
+index b953fb4..1999c01 100644
 --- a/sound/drivers/opl4/opl4_lib.c
 +++ b/sound/drivers/opl4/opl4_lib.c
-@@ -28,7 +28,7 @@ MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
+@@ -29,7 +29,7 @@ MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
  MODULE_DESCRIPTION("OPL4 driver");
  MODULE_LICENSE("GPL");
  
@@ -79699,10 +80129,10 @@ index f07e38d..7aae69a 100644
        int timeout = 10;
        while ((inb(opl4->fm_port) & OPL4_STATUS_BUSY) && --timeout > 0)
 diff --git a/sound/drivers/portman2x4.c b/sound/drivers/portman2x4.c
-index f2b0ba2..429efc5 100644
+index 3e32bd3..46fc152 100644
 --- a/sound/drivers/portman2x4.c
 +++ b/sound/drivers/portman2x4.c
-@@ -47,6 +47,7 @@
+@@ -48,6 +48,7 @@
  #include <sound/initval.h>
  #include <sound/rawmidi.h>
  #include <sound/control.h>
@@ -79710,7 +80140,7 @@ index f2b0ba2..429efc5 100644
  
  #define CARD_NAME "Portman 2x4"
  #define DRIVER_NAME "portman"
-@@ -84,7 +85,7 @@ struct portman {
+@@ -85,7 +86,7 @@ struct portman {
        struct pardevice *pardev;
        int pardev_claimed;
  
@@ -79755,10 +80185,10 @@ index 537a9cb..8e8c8e9 100644
  
  /**
 diff --git a/sound/firewire/isight.c b/sound/firewire/isight.c
-index 4400308..261e9f3 100644
+index d428ffe..751ef78 100644
 --- a/sound/firewire/isight.c
 +++ b/sound/firewire/isight.c
-@@ -97,7 +97,7 @@ static void isight_update_pointers(struct isight *isight, unsigned int count)
+@@ -96,7 +96,7 @@ static void isight_update_pointers(struct isight *isight, unsigned int count)
        ptr += count;
        if (ptr >= runtime->buffer_size)
                ptr -= runtime->buffer_size;
@@ -79767,7 +80197,7 @@ index 4400308..261e9f3 100644
  
        isight->period_counter += count;
        if (isight->period_counter >= runtime->period_size) {
-@@ -308,7 +308,7 @@ static int isight_hw_params(struct snd_pcm_substream *substream,
+@@ -307,7 +307,7 @@ static int isight_hw_params(struct snd_pcm_substream *substream,
        if (err < 0)
                return err;
  
@@ -79776,7 +80206,7 @@ index 4400308..261e9f3 100644
  
        return 0;
  }
-@@ -341,7 +341,7 @@ static int isight_hw_free(struct snd_pcm_substream *substream)
+@@ -340,7 +340,7 @@ static int isight_hw_free(struct snd_pcm_substream *substream)
  {
        struct isight *isight = substream->private_data;
  
@@ -79785,7 +80215,7 @@ index 4400308..261e9f3 100644
  
        mutex_lock(&isight->mutex);
        isight_stop_streaming(isight);
-@@ -434,10 +434,10 @@ static int isight_trigger(struct snd_pcm_substream *substream, int cmd)
+@@ -433,10 +433,10 @@ static int isight_trigger(struct snd_pcm_substream *substream, int cmd)
  
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_START:
@@ -79799,7 +80229,7 @@ index 4400308..261e9f3 100644
        default:
                return -EINVAL;
 diff --git a/sound/isa/cmi8330.c b/sound/isa/cmi8330.c
-index fe79a16..4d9714e 100644
+index 7bd5e33..1fcab12 100644
 --- a/sound/isa/cmi8330.c
 +++ b/sound/isa/cmi8330.c
 @@ -172,7 +172,7 @@ struct snd_cmi8330 {
@@ -79863,7 +80293,7 @@ index 09d4648..cf234c7 100644
                  list_add(&s->list, &cs4297a_devs);
  
 diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
-index 755f2b0..5c12361 100644
+index 56b4f74..7cfd41a 100644
 --- a/sound/pci/hda/hda_codec.h
 +++ b/sound/pci/hda/hda_codec.h
 @@ -611,7 +611,7 @@ struct hda_bus_ops {
@@ -79924,10 +80354,10 @@ index 0da778a..bc38b84 100644
  
  
 diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
-index f3260e6..4a285d8 100644
+index a8159b81..5f006a5 100644
 --- a/sound/pci/ymfpci/ymfpci_main.c
 +++ b/sound/pci/ymfpci/ymfpci_main.c
-@@ -202,8 +202,8 @@ static void snd_ymfpci_hw_stop(struct snd_ymfpci *chip)
+@@ -203,8 +203,8 @@ static void snd_ymfpci_hw_stop(struct snd_ymfpci *chip)
                if ((snd_ymfpci_readl(chip, YDSXGR_STATUS) & 2) == 0)
                        break;
        }
@@ -79938,7 +80368,7 @@ index f3260e6..4a285d8 100644
                wake_up(&chip->interrupt_sleep);
        }
        __end:
-@@ -787,7 +787,7 @@ static void snd_ymfpci_irq_wait(struct snd_ymfpci *chip)
+@@ -788,7 +788,7 @@ static void snd_ymfpci_irq_wait(struct snd_ymfpci *chip)
                        continue;
                init_waitqueue_entry(&wait, current);
                add_wait_queue(&chip->interrupt_sleep, &wait);
@@ -79947,7 +80377,7 @@ index f3260e6..4a285d8 100644
                schedule_timeout_uninterruptible(msecs_to_jiffies(50));
                remove_wait_queue(&chip->interrupt_sleep, &wait);
        }
-@@ -825,8 +825,8 @@ static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id)
+@@ -826,8 +826,8 @@ static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id)
                snd_ymfpci_writel(chip, YDSXGR_MODE, mode);
                spin_unlock(&chip->reg_lock);
  
@@ -79958,7 +80388,7 @@ index f3260e6..4a285d8 100644
                        wake_up(&chip->interrupt_sleep);
                }
        }
-@@ -2363,7 +2363,7 @@ int __devinit snd_ymfpci_create(struct snd_card *card,
+@@ -2398,7 +2398,7 @@ int __devinit snd_ymfpci_create(struct snd_card *card,
        spin_lock_init(&chip->reg_lock);
        spin_lock_init(&chip->voice_lock);
        init_waitqueue_head(&chip->interrupt_sleep);
@@ -79968,23 +80398,23 @@ index f3260e6..4a285d8 100644
        chip->pci = pci;
        chip->irq = -1;
 diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
-index 2879c88..224159e 100644
+index 0ad8dca..7186339 100644
 --- a/sound/soc/soc-pcm.c
 +++ b/sound/soc/soc-pcm.c
-@@ -568,7 +568,7 @@ static snd_pcm_uframes_t soc_pcm_pointer(struct snd_pcm_substream *substream)
- }
- /* ASoC PCM operations */
--static struct snd_pcm_ops soc_pcm_ops = {
-+static snd_pcm_ops_no_const soc_pcm_ops = {
-       .open           = soc_pcm_open,
-       .close          = soc_pcm_close,
-       .hw_params      = soc_pcm_hw_params,
+@@ -641,7 +641,7 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
+       struct snd_soc_platform *platform = rtd->platform;
+       struct snd_soc_dai *codec_dai = rtd->codec_dai;
+       struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
+-      struct snd_pcm_ops *soc_pcm_ops = &rtd->ops;
++      snd_pcm_ops_no_const *soc_pcm_ops = &rtd->ops;
+       struct snd_pcm *pcm;
+       char new_name[64];
+       int ret = 0, playback = 0, capture = 0;
 diff --git a/sound/usb/card.h b/sound/usb/card.h
-index ae4251d..0961361 100644
+index da5fa1a..113cd02 100644
 --- a/sound/usb/card.h
 +++ b/sound/usb/card.h
-@@ -44,6 +44,7 @@ struct snd_urb_ops {
+@@ -45,6 +45,7 @@ struct snd_urb_ops {
        int (*prepare_sync)(struct snd_usb_substream *subs, struct snd_pcm_runtime *runtime, struct urb *u);
        int (*retire_sync)(struct snd_usb_substream *subs, struct snd_pcm_runtime *runtime, struct urb *u);
  };
@@ -79992,42 +80422,71 @@ index ae4251d..0961361 100644
  
  struct snd_usb_substream {
        struct snd_usb_stream *stream;
-@@ -93,7 +94,7 @@ struct snd_usb_substream {
+@@ -94,7 +95,7 @@ struct snd_usb_substream {
        struct snd_pcm_hw_constraint_list rate_list;    /* limited rates */
        spinlock_t lock;
  
 -      struct snd_urb_ops ops;         /* callbacks (must be filled at init) */
-+      snd_urb_ops_no_const ops;               /* callbacks (must be filled at init) */
++      snd_urb_ops_no_const ops;       /* callbacks (must be filled at init) */
+       int last_frame_number;          /* stored frame number */
+       int last_delay;                 /* stored delay */
  };
- struct snd_usb_stream {
+diff --git a/tools/gcc/.gitignore b/tools/gcc/.gitignore
+new file mode 100644
+index 0000000..50f2f2f
+--- /dev/null
++++ b/tools/gcc/.gitignore
+@@ -0,0 +1 @@
++size_overflow_hash.h
 diff --git a/tools/gcc/Makefile b/tools/gcc/Makefile
 new file mode 100644
-index 0000000..b044b80
+index 0000000..1d09b7e
 --- /dev/null
 +++ b/tools/gcc/Makefile
-@@ -0,0 +1,21 @@
+@@ -0,0 +1,43 @@
 +#CC := gcc
 +#PLUGIN_SOURCE_FILES := pax_plugin.c
 +#PLUGIN_OBJECT_FILES := $(patsubst %.c,%.o,$(PLUGIN_SOURCE_FILES))
 +GCCPLUGINS_DIR := $(shell $(CC) -print-file-name=plugin)
-+#CFLAGS += -I$(GCCPLUGINS_DIR)/include -fPIC -O2 -Wall -W
++#CFLAGS += -I$(GCCPLUGINS_DIR)/include -fPIC -O2 -Wall -W -std=gnu99
 +
-+HOST_EXTRACFLAGS += -I$(GCCPLUGINS_DIR)/include
++ifeq ($(PLUGINCC),$(HOSTCC))
++HOSTLIBS := hostlibs
++HOST_EXTRACFLAGS += -I$(GCCPLUGINS_DIR)/include -I$(GCCPLUGINS_DIR)/include/c-family -std=gnu99 -ggdb
++else
++HOSTLIBS := hostcxxlibs
++HOST_EXTRACXXFLAGS += -I$(GCCPLUGINS_DIR)/include -I$(GCCPLUGINS_DIR)/include/c-family -std=gnu++98 -ggdb -Wno-unused-parameter
++endif
 +
-+hostlibs-y := constify_plugin.so
-+hostlibs-$(CONFIG_PAX_MEMORY_STACKLEAK) += stackleak_plugin.so
-+hostlibs-$(CONFIG_KALLOCSTAT_PLUGIN) += kallocstat_plugin.so
-+hostlibs-$(CONFIG_PAX_KERNEXEC_PLUGIN) += kernexec_plugin.so
-+hostlibs-$(CONFIG_CHECKER_PLUGIN) += checker_plugin.so
++$(HOSTLIBS)-y := constify_plugin.so
++$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STACKLEAK) += stackleak_plugin.so
++$(HOSTLIBS)-$(CONFIG_KALLOCSTAT_PLUGIN) += kallocstat_plugin.so
++$(HOSTLIBS)-$(CONFIG_PAX_KERNEXEC_PLUGIN) += kernexec_plugin.so
++$(HOSTLIBS)-$(CONFIG_CHECKER_PLUGIN) += checker_plugin.so
++$(HOSTLIBS)-y += colorize_plugin.so
++$(HOSTLIBS)-$(CONFIG_PAX_SIZE_OVERFLOW) += size_overflow_plugin.so
++$(HOSTLIBS)-$(CONFIG_PAX_LATENT_ENTROPY) += latent_entropy_plugin.so
 +
-+always := $(hostlibs-y)
++always := $($(HOSTLIBS)-y)
 +
 +constify_plugin-objs := constify_plugin.o
 +stackleak_plugin-objs := stackleak_plugin.o
 +kallocstat_plugin-objs := kallocstat_plugin.o
 +kernexec_plugin-objs := kernexec_plugin.o
 +checker_plugin-objs := checker_plugin.o
++colorize_plugin-objs := colorize_plugin.o
++size_overflow_plugin-objs := size_overflow_plugin.o
++latent_entropy_plugin-objs := latent_entropy_plugin.o
++
++$(obj)/size_overflow_plugin.o: $(objtree)/$(obj)/size_overflow_hash.h
++
++quiet_cmd_build_size_overflow_hash = GENHASH  $@
++      cmd_build_size_overflow_hash = \
++      $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -d $< -o $@
++$(objtree)/$(obj)/size_overflow_hash.h: $(src)/size_overflow_hash.data FORCE
++      $(call if_changed,build_size_overflow_hash)
++
++targets += size_overflow_hash.h
 diff --git a/tools/gcc/checker_plugin.c b/tools/gcc/checker_plugin.c
 new file mode 100644
 index 0000000..d41b5af
@@ -80205,12 +80664,166 @@ index 0000000..d41b5af
 +
 +      return 0;
 +}
+diff --git a/tools/gcc/colorize_plugin.c b/tools/gcc/colorize_plugin.c
+new file mode 100644
+index 0000000..846aeb0
+--- /dev/null
++++ b/tools/gcc/colorize_plugin.c
+@@ -0,0 +1,148 @@
++/*
++ * Copyright 2012 by PaX Team <pageexec@freemail.hu>
++ * Licensed under the GPL v2
++ *
++ * Note: the choice of the license means that the compilation process is
++ *       NOT 'eligible' as defined by gcc's library exception to the GPL v3,
++ *       but for the kernel it doesn't matter since it doesn't link against
++ *       any of the gcc libraries
++ *
++ * gcc plugin to colorize diagnostic output
++ *
++ */
++
++#include "gcc-plugin.h"
++#include "config.h"
++#include "system.h"
++#include "coretypes.h"
++#include "tree.h"
++#include "tree-pass.h"
++#include "flags.h"
++#include "intl.h"
++#include "toplev.h"
++#include "plugin.h"
++#include "diagnostic.h"
++#include "plugin-version.h"
++#include "tm.h"
++
++int plugin_is_GPL_compatible;
++
++static struct plugin_info colorize_plugin_info = {
++      .version        = "201203092200",
++      .help           = NULL,
++};
++
++#define GREEN         "\033[32m\033[2m"
++#define LIGHTGREEN    "\033[32m\033[1m"
++#define YELLOW                "\033[33m\033[2m"
++#define LIGHTYELLOW   "\033[33m\033[1m"
++#define RED           "\033[31m\033[2m"
++#define LIGHTRED      "\033[31m\033[1m"
++#define BLUE          "\033[34m\033[2m"
++#define LIGHTBLUE     "\033[34m\033[1m"
++#define BRIGHT                "\033[m\033[1m"
++#define NORMAL                "\033[m"
++
++static diagnostic_starter_fn old_starter;
++static diagnostic_finalizer_fn old_finalizer;
++
++static void start_colorize(diagnostic_context *context, diagnostic_info *diagnostic)
++{
++      const char *color;
++      char *newprefix;
++
++      switch (diagnostic->kind) {
++      case DK_NOTE:
++              color = LIGHTBLUE;
++              break;
++
++      case DK_PEDWARN:
++      case DK_WARNING:
++              color = LIGHTYELLOW;
++              break;
++
++      case DK_ERROR:
++      case DK_FATAL:
++      case DK_ICE:
++      case DK_PERMERROR:
++      case DK_SORRY:
++              color = LIGHTRED;
++              break;
++
++      default:
++              color = NORMAL;
++      }
++
++      old_starter(context, diagnostic);
++      if (-1 == asprintf(&newprefix, "%s%s" NORMAL, color, context->printer->prefix))
++              return;
++      pp_destroy_prefix(context->printer);
++      pp_set_prefix(context->printer, newprefix);
++}
++
++static void finalize_colorize(diagnostic_context *context, diagnostic_info *diagnostic)
++{
++      old_finalizer(context, diagnostic);
++}
++
++static void colorize_arm(void)
++{
++      old_starter = diagnostic_starter(global_dc);
++      old_finalizer = diagnostic_finalizer(global_dc);
++
++      diagnostic_starter(global_dc) = start_colorize;
++      diagnostic_finalizer(global_dc) = finalize_colorize;
++}
++
++static unsigned int execute_colorize_rearm(void)
++{
++      if (diagnostic_starter(global_dc) == start_colorize)
++              return 0;
++
++      colorize_arm();
++      return 0;
++}
++
++struct simple_ipa_opt_pass pass_ipa_colorize_rearm = {
++      .pass = {
++              .type                   = SIMPLE_IPA_PASS,
++              .name                   = "colorize_rearm",
++              .gate                   = NULL,
++              .execute                = execute_colorize_rearm,
++              .sub                    = NULL,
++              .next                   = NULL,
++              .static_pass_number     = 0,
++              .tv_id                  = TV_NONE,
++              .properties_required    = 0,
++              .properties_provided    = 0,
++              .properties_destroyed   = 0,
++              .todo_flags_start       = 0,
++              .todo_flags_finish      = 0
++      }
++};
++
++static void colorize_start_unit(void *gcc_data, void *user_data)
++{
++      colorize_arm();
++}
++
++int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
++{
++      const char * const plugin_name = plugin_info->base_name;
++      struct register_pass_info colorize_rearm_pass_info = {
++              .pass                           = &pass_ipa_colorize_rearm.pass,
++              .reference_pass_name            = "*free_lang_data",
++              .ref_pass_instance_number       = 1,
++              .pos_op                         = PASS_POS_INSERT_AFTER
++      };
++
++      if (!plugin_default_version_check(version, &gcc_version)) {
++              error(G_("incompatible gcc/plugin versions"));
++              return 1;
++      }
++
++      register_callback(plugin_name, PLUGIN_INFO, NULL, &colorize_plugin_info);
++      register_callback(plugin_name, PLUGIN_START_UNIT, &colorize_start_unit, NULL);
++      register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &colorize_rearm_pass_info);
++      return 0;
++}
 diff --git a/tools/gcc/constify_plugin.c b/tools/gcc/constify_plugin.c
 new file mode 100644
-index 0000000..704a564
+index 0000000..048d4ff
 --- /dev/null
 +++ b/tools/gcc/constify_plugin.c
-@@ -0,0 +1,303 @@
+@@ -0,0 +1,328 @@
 +/*
 + * Copyright 2011 by Emese Revfy <re.emese@gmail.com>
 + * Copyright 2011 by PaX Team <pageexec@freemail.hu>
@@ -80251,24 +80864,47 @@ index 0000000..704a564
 +int plugin_is_GPL_compatible;
 +
 +static struct plugin_info const_plugin_info = {
-+      .version        = "201111150100",
++      .version        = "201205300030",
 +      .help           = "no-constify\tturn off constification\n",
 +};
 +
-+static void constify_type(tree type);
-+static bool walk_struct(tree node);
++static void deconstify_tree(tree node);
 +
-+static tree deconstify_type(tree old_type)
++static void deconstify_type(tree type)
 +{
-+      tree new_type, field;
++      tree field;
++
++      for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
++              tree type = TREE_TYPE(field);
++
++              if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
++                      continue;
++              if (!TYPE_READONLY(type))
++                      continue;
++
++              deconstify_tree(field);
++      }
++      TYPE_READONLY(type) = 0;
++      C_TYPE_FIELDS_READONLY(type) = 0;
++}
++
++static void deconstify_tree(tree node)
++{
++      tree old_type, new_type, field;
++
++      old_type = TREE_TYPE(node);
++
++      gcc_assert(TYPE_READONLY(old_type) && (TYPE_QUALS(old_type) & TYPE_QUAL_CONST));
 +
 +      new_type = build_qualified_type(old_type, TYPE_QUALS(old_type) & ~TYPE_QUAL_CONST);
 +      TYPE_FIELDS(new_type) = copy_list(TYPE_FIELDS(new_type));
 +      for (field = TYPE_FIELDS(new_type); field; field = TREE_CHAIN(field))
 +              DECL_FIELD_CONTEXT(field) = new_type;
-+      TYPE_READONLY(new_type) = 0;
-+      C_TYPE_FIELDS_READONLY(new_type) = 0;
-+      return new_type;
++
++      deconstify_type(new_type);
++
++      TREE_READONLY(node) = 0;
++      TREE_TYPE(node) = new_type;
 +}
 +
 +static tree handle_no_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
@@ -80312,14 +80948,19 @@ index 0000000..704a564
 +      }
 +
 +      if (TREE_CODE(*node) == TYPE_DECL) {
-+              TREE_TYPE(*node) = deconstify_type(type);
-+              TREE_READONLY(*node) = 0;
++              deconstify_tree(*node);
 +              return NULL_TREE;
 +      }
 +
 +      return NULL_TREE;
 +}
 +
++static void constify_type(tree type)
++{
++      TYPE_READONLY(type) = 1;
++      C_TYPE_FIELDS_READONLY(type) = 1;
++}
++
 +static tree handle_do_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
 +{
 +      *no_add_attrs = true;
@@ -80370,12 +81011,6 @@ index 0000000..704a564
 +      register_attribute(&do_const_attr);
 +}
 +
-+static void constify_type(tree type)
-+{
-+      TYPE_READONLY(type) = 1;
-+      C_TYPE_FIELDS_READONLY(type) = 1;
-+}
-+
 +static bool is_fptr(tree field)
 +{
 +      tree ptr = TREE_TYPE(field);
@@ -80390,11 +81025,14 @@ index 0000000..704a564
 +{
 +      tree field;
 +
-+      if (lookup_attribute("no_const", TYPE_ATTRIBUTES(node)))
++      if (TYPE_FIELDS(node) == NULL_TREE)
 +              return false;
 +
-+      if (TYPE_FIELDS(node) == NULL_TREE)
++      if (lookup_attribute("no_const", TYPE_ATTRIBUTES(node))) {
++              gcc_assert(!TYPE_READONLY(node));
++              deconstify_type(node);
 +              return false;
++      }
 +
 +      for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) {
 +              tree type = TREE_TYPE(field);
@@ -80470,7 +81108,7 @@ index 0000000..704a564
 +//                    continue;
 +
 +              if (walk_struct(type)) {
-+                      error("constified variable %qE cannot be local", var);
++                      error_at(DECL_SOURCE_LOCATION(var), "constified variable %qE cannot be local", var);
 +                      return 1;
 +              }
 +      }
@@ -80488,7 +81126,7 @@ index 0000000..704a564
 +      struct register_pass_info local_variable_pass_info = {
 +              .pass                           = &pass_local_variable.pass,
 +              .reference_pass_name            = "*referenced_vars",
-+              .ref_pass_instance_number       = 0,
++              .ref_pass_instance_number       = 1,
 +              .pos_op                         = PASS_POS_INSERT_AFTER
 +      };
 +
@@ -80514,9 +81152,109 @@ index 0000000..704a564
 +
 +      return 0;
 +}
+diff --git a/tools/gcc/generate_size_overflow_hash.sh b/tools/gcc/generate_size_overflow_hash.sh
+new file mode 100644
+index 0000000..a0fe8b2
+--- /dev/null
++++ b/tools/gcc/generate_size_overflow_hash.sh
+@@ -0,0 +1,94 @@
++#!/bin/bash
++
++# This script generates the hash table (size_overflow_hash.h) for the size_overflow gcc plugin (size_overflow_plugin.c).
++
++header1="size_overflow_hash.h"
++database="size_overflow_hash.data"
++n=65536
++
++usage() {
++cat <<EOF
++usage: $0 options
++OPTIONS:
++        -h|--help               help
++      -o                      header file
++      -d                      database file
++      -n                      hash array size
++EOF
++    return 0
++}
++
++while true
++do
++    case "$1" in
++    -h|--help)        usage && exit 0;;
++    -n)               n=$2; shift 2;;
++    -o)               header1="$2"; shift 2;;
++    -d)               database="$2"; shift 2;;
++    --)               shift 1; break ;;
++     *)               break ;;
++    esac
++done
++
++create_defines() {
++      for i in `seq 1 10`
++      do
++              echo -e "#define PARAM"$i" (1U << "$i")" >> "$header1"
++      done
++      echo >> "$header1"
++}
++
++create_structs () {
++      rm -f "$header1"
++
++      create_defines
++
++      cat "$database" | while read data
++      do
++              data_array=($data)
++              struct_hash_name="${data_array[0]}"
++              funcn="${data_array[1]}"
++              params="${data_array[2]}"
++              next="${data_array[5]}"
++
++              echo "struct size_overflow_hash $struct_hash_name = {" >> "$header1"
++
++              echo -e "\t.next\t= $next,\n\t.name\t= \"$funcn\"," >> "$header1"
++              echo -en "\t.param\t= " >> "$header1"
++              line=
++              for param_num in ${params//-/ };
++              do
++                      line="${line}PARAM"$param_num"|"
++              done
++
++              echo -e "${line%?},\n};\n" >> "$header1"
++      done
++}
++
++create_headers () {
++      echo "struct size_overflow_hash *size_overflow_hash[$n] = {" >> "$header1"
++}
++
++create_array_elements () {
++      index=0
++      grep -v "nohasharray" $database | sort -n -k 4 | while read data
++      do
++              data_array=($data)
++              i="${data_array[3]}"
++              hash="${data_array[4]}"
++              while [[ $index -lt $i ]]
++              do
++                      echo -e "\t["$index"]\t= NULL," >> "$header1"
++                      index=$(($index + 1))
++              done
++              index=$(($index + 1))
++              echo -e "\t["$i"]\t= &"$hash"," >> "$header1"
++      done
++      echo '};' >> $header1
++}
++
++create_structs
++create_headers
++create_array_elements
++
++exit 0
 diff --git a/tools/gcc/kallocstat_plugin.c b/tools/gcc/kallocstat_plugin.c
 new file mode 100644
-index 0000000..a5eabce
+index 0000000..a86e422
 --- /dev/null
 +++ b/tools/gcc/kallocstat_plugin.c
 @@ -0,0 +1,167 @@
@@ -80673,7 +81411,7 @@ index 0000000..a5eabce
 +      struct register_pass_info kallocstat_pass_info = {
 +              .pass                           = &kallocstat_pass.pass,
 +              .reference_pass_name            = "ssa",
-+              .ref_pass_instance_number       = 0,
++              .ref_pass_instance_number       = 1,
 +              .pos_op                         = PASS_POS_INSERT_AFTER
 +      };
 +
@@ -80689,10 +81427,10 @@ index 0000000..a5eabce
 +}
 diff --git a/tools/gcc/kernexec_plugin.c b/tools/gcc/kernexec_plugin.c
 new file mode 100644
-index 0000000..51f747e
+index 0000000..98011fa
 --- /dev/null
 +++ b/tools/gcc/kernexec_plugin.c
-@@ -0,0 +1,348 @@
+@@ -0,0 +1,427 @@
 +/*
 + * Copyright 2011 by the PaX Team <pageexec@freemail.hu>
 + * Licensed under the GPL v2
@@ -80740,13 +81478,32 @@ index 0000000..51f747e
 +      .help           = "method=[bts|or]\tinstrumentation method\n"
 +};
 +
++static unsigned int execute_kernexec_reload(void);
 +static unsigned int execute_kernexec_fptr(void);
 +static unsigned int execute_kernexec_retaddr(void);
 +static bool kernexec_cmodel_check(void);
 +
-+static void (*kernexec_instrument_fptr)(gimple_stmt_iterator);
++static void (*kernexec_instrument_fptr)(gimple_stmt_iterator *);
 +static void (*kernexec_instrument_retaddr)(rtx);
 +
++static struct gimple_opt_pass kernexec_reload_pass = {
++      .pass = {
++              .type                   = GIMPLE_PASS,
++              .name                   = "kernexec_reload",
++              .gate                   = kernexec_cmodel_check,
++              .execute                = execute_kernexec_reload,
++              .sub                    = NULL,
++              .next                   = NULL,
++              .static_pass_number     = 0,
++              .tv_id                  = TV_NONE,
++              .properties_required    = 0,
++              .properties_provided    = 0,
++              .properties_destroyed   = 0,
++              .todo_flags_start       = 0,
++              .todo_flags_finish      = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
++      }
++};
++
 +static struct gimple_opt_pass kernexec_fptr_pass = {
 +      .pass = {
 +              .type                   = GIMPLE_PASS,
@@ -80802,15 +81559,66 @@ index 0000000..51f747e
 +}
 +
 +/*
++ * add special KERNEXEC instrumentation: reload %r10 after it has been clobbered
++ */
++static void kernexec_reload_fptr_mask(gimple_stmt_iterator *gsi)
++{
++      gimple asm_movabs_stmt;
++
++      // build asm volatile("movabs $0x8000000000000000, %%r10\n\t" : : : );
++      asm_movabs_stmt = gimple_build_asm_vec("movabs $0x8000000000000000, %%r10\n\t", NULL, NULL, NULL, NULL);
++      gimple_asm_set_volatile(asm_movabs_stmt, true);
++      gsi_insert_after(gsi, asm_movabs_stmt, GSI_CONTINUE_LINKING);
++      update_stmt(asm_movabs_stmt);
++}
++
++/*
++ * find all asm() stmts that clobber r10 and add a reload of r10
++ */
++static unsigned int execute_kernexec_reload(void)
++{
++      basic_block bb;
++
++      // 1. loop through BBs and GIMPLE statements
++      FOR_EACH_BB(bb) {
++              gimple_stmt_iterator gsi;
++
++              for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
++                      // gimple match: __asm__ ("" :  :  : "r10");
++                      gimple asm_stmt;
++                      size_t nclobbers;
++
++                      // is it an asm ...
++                      asm_stmt = gsi_stmt(gsi);
++                      if (gimple_code(asm_stmt) != GIMPLE_ASM)
++                              continue;
++
++                      // ... clobbering r10
++                      nclobbers = gimple_asm_nclobbers(asm_stmt);
++                      while (nclobbers--) {
++                              tree op = gimple_asm_clobber_op(asm_stmt, nclobbers);
++                              if (strcmp(TREE_STRING_POINTER(TREE_VALUE(op)), "r10"))
++                                      continue;
++                              kernexec_reload_fptr_mask(&gsi);
++//print_gimple_stmt(stderr, asm_stmt, 0, TDF_LINENO);
++                              break;
++                      }
++              }
++      }
++
++      return 0;
++}
++
++/*
 + * add special KERNEXEC instrumentation: force MSB of fptr to 1, which will produce
 + * a non-canonical address from a userland ptr and will just trigger a GPF on dereference
 + */
-+static void kernexec_instrument_fptr_bts(gimple_stmt_iterator gsi)
++static void kernexec_instrument_fptr_bts(gimple_stmt_iterator *gsi)
 +{
 +      gimple assign_intptr, assign_new_fptr, call_stmt;
 +      tree intptr, old_fptr, new_fptr, kernexec_mask;
 +
-+      call_stmt = gsi_stmt(gsi);
++      call_stmt = gsi_stmt(*gsi);
 +      old_fptr = gimple_call_fn(call_stmt);
 +
 +      // create temporary unsigned long variable used for bitops and cast fptr to it
@@ -80818,22 +81626,22 @@ index 0000000..51f747e
 +      add_referenced_var(intptr);
 +      mark_sym_for_renaming(intptr);
 +      assign_intptr = gimple_build_assign(intptr, fold_convert(long_unsigned_type_node, old_fptr));
-+      gsi_insert_before(&gsi, assign_intptr, GSI_SAME_STMT);
++      gsi_insert_before(gsi, assign_intptr, GSI_SAME_STMT);
 +      update_stmt(assign_intptr);
 +
 +      // apply logical or to temporary unsigned long and bitmask
 +      kernexec_mask = build_int_cstu(long_long_unsigned_type_node, 0x8000000000000000LL);
 +//    kernexec_mask = build_int_cstu(long_long_unsigned_type_node, 0xffffffff80000000LL);
 +      assign_intptr = gimple_build_assign(intptr, fold_build2(BIT_IOR_EXPR, long_long_unsigned_type_node, intptr, kernexec_mask));
-+      gsi_insert_before(&gsi, assign_intptr, GSI_SAME_STMT);
++      gsi_insert_before(gsi, assign_intptr, GSI_SAME_STMT);
 +      update_stmt(assign_intptr);
 +
 +      // cast temporary unsigned long back to a temporary fptr variable
-+      new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec");
++      new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_fptr");
 +      add_referenced_var(new_fptr);
 +      mark_sym_for_renaming(new_fptr);
 +      assign_new_fptr = gimple_build_assign(new_fptr, fold_convert(TREE_TYPE(old_fptr), intptr));
-+      gsi_insert_before(&gsi, assign_new_fptr, GSI_SAME_STMT);
++      gsi_insert_before(gsi, assign_new_fptr, GSI_SAME_STMT);
 +      update_stmt(assign_new_fptr);
 +
 +      // replace call stmt fn with the new fptr
@@ -80841,14 +81649,14 @@ index 0000000..51f747e
 +      update_stmt(call_stmt);
 +}
 +
-+static void kernexec_instrument_fptr_or(gimple_stmt_iterator gsi)
++static void kernexec_instrument_fptr_or(gimple_stmt_iterator *gsi)
 +{
 +      gimple asm_or_stmt, call_stmt;
 +      tree old_fptr, new_fptr, input, output;
 +      VEC(tree, gc) *inputs = NULL;
 +      VEC(tree, gc) *outputs = NULL;
 +
-+      call_stmt = gsi_stmt(gsi);
++      call_stmt = gsi_stmt(*gsi);
 +      old_fptr = gimple_call_fn(call_stmt);
 +
 +      // create temporary fptr variable
@@ -80865,7 +81673,7 @@ index 0000000..51f747e
 +      VEC_safe_push(tree, gc, outputs, output);
 +      asm_or_stmt = gimple_build_asm_vec("orq %%r10, %0\n\t", inputs, outputs, NULL, NULL);
 +      gimple_asm_set_volatile(asm_or_stmt, true);
-+      gsi_insert_before(&gsi, asm_or_stmt, GSI_SAME_STMT);
++      gsi_insert_before(gsi, asm_or_stmt, GSI_SAME_STMT);
 +      update_stmt(asm_or_stmt);
 +
 +      // replace call stmt fn with the new fptr
@@ -80879,10 +81687,11 @@ index 0000000..51f747e
 +static unsigned int execute_kernexec_fptr(void)
 +{
 +      basic_block bb;
-+      gimple_stmt_iterator gsi;
 +
 +      // 1. loop through BBs and GIMPLE statements
 +      FOR_EACH_BB(bb) {
++              gimple_stmt_iterator gsi;
++
 +              for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
 +                      // gimple match: h_1 = get_fptr (); D.2709_3 = h_1 (x_2(D));
 +                      tree fn;
@@ -80909,7 +81718,7 @@ index 0000000..51f747e
 +                      if (TREE_CODE(fn) != FUNCTION_TYPE)
 +                              continue;
 +
-+                      kernexec_instrument_fptr(gsi);
++                      kernexec_instrument_fptr(&gsi);
 +
 +//debug_tree(gimple_call_fn(call_stmt));
 +//print_gimple_stmt(stderr, call_stmt, 0, TDF_LINENO);
@@ -80991,16 +81800,22 @@ index 0000000..51f747e
 +      const int argc = plugin_info->argc;
 +      const struct plugin_argument * const argv = plugin_info->argv;
 +      int i;
++      struct register_pass_info kernexec_reload_pass_info = {
++              .pass                           = &kernexec_reload_pass.pass,
++              .reference_pass_name            = "ssa",
++              .ref_pass_instance_number       = 1,
++              .pos_op                         = PASS_POS_INSERT_AFTER
++      };
 +      struct register_pass_info kernexec_fptr_pass_info = {
 +              .pass                           = &kernexec_fptr_pass.pass,
 +              .reference_pass_name            = "ssa",
-+              .ref_pass_instance_number       = 0,
++              .ref_pass_instance_number       = 1,
 +              .pos_op                         = PASS_POS_INSERT_AFTER
 +      };
 +      struct register_pass_info kernexec_retaddr_pass_info = {
 +              .pass                           = &kernexec_retaddr_pass.pass,
 +              .reference_pass_name            = "pro_and_epilogue",
-+              .ref_pass_instance_number       = 0,
++              .ref_pass_instance_number       = 1,
 +              .pos_op                         = PASS_POS_INSERT_AFTER
 +      };
 +
@@ -81036,17 +81851,4022 @@ index 0000000..51f747e
 +      if (!kernexec_instrument_fptr || !kernexec_instrument_retaddr)
 +              error(G_("no instrumentation method was selected via '-fplugin-arg-%s-method'"), plugin_name);
 +
++      if (kernexec_instrument_fptr == kernexec_instrument_fptr_or)
++              register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_reload_pass_info);
 +      register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_fptr_pass_info);
 +      register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_retaddr_pass_info);
 +
 +      return 0;
 +}
+diff --git a/tools/gcc/latent_entropy_plugin.c b/tools/gcc/latent_entropy_plugin.c
+new file mode 100644
+index 0000000..b8008f7
+--- /dev/null
++++ b/tools/gcc/latent_entropy_plugin.c
+@@ -0,0 +1,295 @@
++/*
++ * Copyright 2012 by the PaX Team <pageexec@freemail.hu>
++ * Licensed under the GPL v2
++ *
++ * Note: the choice of the license means that the compilation process is
++ *       NOT 'eligible' as defined by gcc's library exception to the GPL v3,
++ *       but for the kernel it doesn't matter since it doesn't link against
++ *       any of the gcc libraries
++ *
++ * gcc plugin to help generate a little bit of entropy from program state,
++ * used during boot in the kernel
++ *
++ * TODO:
++ * - add ipa pass to identify not explicitly marked candidate functions
++ * - mix in more program state (function arguments/return values, loop variables, etc)
++ * - more instrumentation control via attribute parameters
++ *
++ * BUGS:
++ * - LTO needs -flto-partition=none for now
++ */
++#include "gcc-plugin.h"
++#include "config.h"
++#include "system.h"
++#include "coretypes.h"
++#include "tree.h"
++#include "tree-pass.h"
++#include "flags.h"
++#include "intl.h"
++#include "toplev.h"
++#include "plugin.h"
++//#include "expr.h" where are you...
++#include "diagnostic.h"
++#include "plugin-version.h"
++#include "tm.h"
++#include "function.h"
++#include "basic-block.h"
++#include "gimple.h"
++#include "rtl.h"
++#include "emit-rtl.h"
++#include "tree-flow.h"
++
++int plugin_is_GPL_compatible;
++
++static tree latent_entropy_decl;
++
++static struct plugin_info latent_entropy_plugin_info = {
++      .version        = "201207271820",
++      .help           = NULL
++};
++
++static unsigned int execute_latent_entropy(void);
++static bool gate_latent_entropy(void);
++
++static struct gimple_opt_pass latent_entropy_pass = {
++      .pass = {
++              .type                   = GIMPLE_PASS,
++              .name                   = "latent_entropy",
++              .gate                   = gate_latent_entropy,
++              .execute                = execute_latent_entropy,
++              .sub                    = NULL,
++              .next                   = NULL,
++              .static_pass_number     = 0,
++              .tv_id                  = TV_NONE,
++              .properties_required    = PROP_gimple_leh | PROP_cfg,
++              .properties_provided    = 0,
++              .properties_destroyed   = 0,
++              .todo_flags_start       = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
++              .todo_flags_finish      = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
++      }
++};
++
++static tree handle_latent_entropy_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
++{
++      if (TREE_CODE(*node) != FUNCTION_DECL) {
++              *no_add_attrs = true;
++              error("%qE attribute only applies to functions", name);
++      }
++      return NULL_TREE;
++}
++
++static struct attribute_spec latent_entropy_attr = {
++      .name                           = "latent_entropy",
++      .min_length                     = 0,
++      .max_length                     = 0,
++      .decl_required                  = true,
++      .type_required                  = false,
++      .function_type_required         = false,
++      .handler                        = handle_latent_entropy_attribute,
++#if BUILDING_GCC_VERSION >= 4007
++      .affects_type_identity          = false
++#endif
++};
++
++static void register_attributes(void *event_data, void *data)
++{
++      register_attribute(&latent_entropy_attr);
++}
++
++static bool gate_latent_entropy(void)
++{
++      tree latent_entropy_attr;
++
++      latent_entropy_attr = lookup_attribute("latent_entropy", DECL_ATTRIBUTES(current_function_decl));
++      return latent_entropy_attr != NULL_TREE;
++}
++
++static unsigned HOST_WIDE_INT seed;
++static unsigned HOST_WIDE_INT get_random_const(void)
++{
++      seed = (seed >> 1U) ^ (-(seed & 1ULL) & 0xD800000000000000ULL);
++      return seed;
++}
++
++static enum tree_code get_op(tree *rhs)
++{
++      static enum tree_code op;
++      unsigned HOST_WIDE_INT random_const;
++
++      random_const = get_random_const();
++
++      switch (op) {
++      case BIT_XOR_EXPR:
++              op = PLUS_EXPR;
++              break;
++
++      case PLUS_EXPR:
++              if (rhs) {
++                      op = LROTATE_EXPR;
++                      random_const &= HOST_BITS_PER_WIDE_INT - 1;
++                      break;
++              }
++
++      case LROTATE_EXPR:
++      default:
++              op = BIT_XOR_EXPR;
++              break;
++      }
++      if (rhs)
++              *rhs = build_int_cstu(unsigned_intDI_type_node, random_const);
++      return op;
++}
++
++static void perturb_local_entropy(basic_block bb, tree local_entropy)
++{
++      gimple_stmt_iterator gsi;
++      gimple assign;
++      tree addxorrol, rhs;
++      enum tree_code op;
++
++      op = get_op(&rhs);
++      addxorrol = fold_build2_loc(UNKNOWN_LOCATION, op, unsigned_intDI_type_node, local_entropy, rhs);
++      assign = gimple_build_assign(local_entropy, addxorrol);
++      find_referenced_vars_in(assign);
++//debug_bb(bb);
++      gsi = gsi_after_labels(bb);
++      gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
++      update_stmt(assign);
++}
++
++static void perturb_latent_entropy(basic_block bb, tree rhs)
++{
++      gimple_stmt_iterator gsi;
++      gimple assign;
++      tree addxorrol, temp;
++
++      // 1. create temporary copy of latent_entropy
++      temp = create_tmp_var(unsigned_intDI_type_node, "temp_latent_entropy");
++      add_referenced_var(temp);
++      mark_sym_for_renaming(temp);
++
++      // 2. read...
++      assign = gimple_build_assign(temp, latent_entropy_decl);
++      find_referenced_vars_in(assign);
++      gsi = gsi_after_labels(bb);
++      gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
++      update_stmt(assign);
++
++      // 3. ...modify...
++      addxorrol = fold_build2_loc(UNKNOWN_LOCATION, get_op(NULL), unsigned_intDI_type_node, temp, rhs);
++      assign = gimple_build_assign(temp, addxorrol);
++      find_referenced_vars_in(assign);
++      gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
++      update_stmt(assign);
++
++      // 4. ...write latent_entropy
++      assign = gimple_build_assign(latent_entropy_decl, temp);
++      find_referenced_vars_in(assign);
++      gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
++      update_stmt(assign);
++}
++
++static unsigned int execute_latent_entropy(void)
++{
++      basic_block bb;
++      gimple assign;
++      gimple_stmt_iterator gsi;
++      tree local_entropy;
++
++      if (!latent_entropy_decl) {
++              struct varpool_node *node;
++
++              for (node = varpool_nodes; node; node = node->next) {
++                      tree var = node->decl;
++                      if (strcmp(IDENTIFIER_POINTER(DECL_NAME(var)), "latent_entropy"))
++                              continue;
++                      latent_entropy_decl = var;
++//                    debug_tree(var);
++                      break;
++              }
++              if (!latent_entropy_decl) {
++//                    debug_tree(current_function_decl);
++                      return 0;
++              }
++      }
++
++//fprintf(stderr, "latent_entropy: %s\n", IDENTIFIER_POINTER(DECL_NAME(current_function_decl)));
++
++      // 1. create local entropy variable
++      local_entropy = create_tmp_var(unsigned_intDI_type_node, "local_entropy");
++      add_referenced_var(local_entropy);
++      mark_sym_for_renaming(local_entropy);
++
++      // 2. initialize local entropy variable
++      bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest;
++      if (dom_info_available_p(CDI_DOMINATORS))
++              set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR);
++      gsi = gsi_start_bb(bb);
++
++      assign = gimple_build_assign(local_entropy, build_int_cstu(unsigned_intDI_type_node, get_random_const()));
++//    gimple_set_location(assign, loc);
++      find_referenced_vars_in(assign);
++      gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
++      update_stmt(assign);
++      bb = bb->next_bb;
++
++      // 3. instrument each BB with an operation on the local entropy variable
++      while (bb != EXIT_BLOCK_PTR) {
++              perturb_local_entropy(bb, local_entropy);
++              bb = bb->next_bb;
++      };
++
++      // 4. mix local entropy into the global entropy variable
++      perturb_latent_entropy(EXIT_BLOCK_PTR->prev_bb, local_entropy);
++      return 0;
++}
++
++static void start_unit_callback(void *gcc_data, void *user_data)
++{
++#if BUILDING_GCC_VERSION >= 4007
++      seed = get_random_seed(false);
++#else
++      sscanf(get_random_seed(false), "%" HOST_WIDE_INT_PRINT "x", &seed);
++      seed *= seed;
++#endif
++
++      if (in_lto_p)
++              return;
++
++      // extern u64 latent_entropy
++      latent_entropy_decl = build_decl(UNKNOWN_LOCATION, VAR_DECL, get_identifier("latent_entropy"), unsigned_intDI_type_node);
++
++      TREE_STATIC(latent_entropy_decl) = 1;
++      TREE_PUBLIC(latent_entropy_decl) = 1;
++      TREE_USED(latent_entropy_decl) = 1;
++      TREE_THIS_VOLATILE(latent_entropy_decl) = 1;
++      DECL_EXTERNAL(latent_entropy_decl) = 1;
++      DECL_ARTIFICIAL(latent_entropy_decl) = 0;
++      DECL_INITIAL(latent_entropy_decl) = NULL;
++//    DECL_ASSEMBLER_NAME(latent_entropy_decl);
++//    varpool_finalize_decl(latent_entropy_decl);
++//    varpool_mark_needed_node(latent_entropy_decl);
++}
++
++int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
++{
++      const char * const plugin_name = plugin_info->base_name;
++      struct register_pass_info latent_entropy_pass_info = {
++              .pass                           = &latent_entropy_pass.pass,
++              .reference_pass_name            = "optimized",
++              .ref_pass_instance_number       = 1,
++              .pos_op                         = PASS_POS_INSERT_BEFORE
++      };
++
++      if (!plugin_default_version_check(version, &gcc_version)) {
++              error(G_("incompatible gcc/plugin versions"));
++              return 1;
++      }
++
++      register_callback(plugin_name, PLUGIN_INFO, NULL, &latent_entropy_plugin_info);
++      register_callback ("start_unit", PLUGIN_START_UNIT, &start_unit_callback, NULL);
++      register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &latent_entropy_pass_info);
++      register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
++
++      return 0;
++}
+diff --git a/tools/gcc/size_overflow_hash.data b/tools/gcc/size_overflow_hash.data
+new file mode 100644
+index 0000000..daaa86c
+--- /dev/null
++++ b/tools/gcc/size_overflow_hash.data
+@@ -0,0 +1,2486 @@
++_000001_hash alloc_dr 2 65495 _000001_hash NULL
++_000002_hash __copy_from_user 3 10918 _000002_hash NULL
++_000003_hash copy_from_user 3 17559 _000003_hash NULL
++_000004_hash __copy_from_user_inatomic 3 4365 _000004_hash NULL
++_000005_hash __copy_from_user_nocache 3 39351 _000005_hash NULL
++_000006_hash __copy_to_user_inatomic 3 19214 _000006_hash NULL
++_000007_hash do_xip_mapping_read 5 60297 _000007_hash NULL
++_000008_hash hugetlbfs_read 3 11268 _000008_hash NULL
++_000009_hash kmalloc 1 60432 _002597_hash NULL nohasharray
++_000010_hash kmalloc_array 1-2 9444 _000010_hash NULL
++_000012_hash kmalloc_slab 1 11917 _000012_hash NULL
++_000013_hash kmemdup 2 64015 _000013_hash NULL
++_000014_hash __krealloc 2 14857 _000331_hash NULL nohasharray
++_000015_hash memdup_user 2 59590 _000015_hash NULL
++_000016_hash module_alloc 1 63630 _000016_hash NULL
++_000017_hash read_default_ldt 2 14302 _000017_hash NULL
++_000018_hash read_kcore 3 63488 _000018_hash NULL
++_000019_hash read_ldt 2 47570 _000019_hash NULL
++_000020_hash read_zero 3 19366 _000020_hash NULL
++_000021_hash __vmalloc_node 1 39308 _000021_hash NULL
++_000022_hash vm_map_ram 2 23078 _001054_hash NULL nohasharray
++_000023_hash aa_simple_write_to_buffer 4-3 49683 _000023_hash NULL
++_000024_hash ablkcipher_copy_iv 3 64140 _000024_hash NULL
++_000025_hash ablkcipher_next_slow 4 47274 _000025_hash NULL
++_000026_hash acpi_battery_write_alarm 3 1240 _000026_hash NULL
++_000027_hash acpi_os_allocate 1 14892 _000027_hash NULL
++_000028_hash acpi_system_write_wakeup_device 3 34853 _000028_hash NULL
++_000029_hash adu_write 3 30487 _000029_hash NULL
++_000030_hash aer_inject_write 3 52399 _000030_hash NULL
++_000031_hash afs_alloc_flat_call 2-3 36399 _000031_hash NULL
++_000033_hash afs_proc_cells_write 3 61139 _000033_hash NULL
++_000034_hash afs_proc_rootcell_write 3 15822 _000034_hash NULL
++_000035_hash agp_3_5_isochronous_node_enable 3 49465 _000035_hash NULL
++_000036_hash agp_alloc_page_array 1 22554 _000036_hash NULL
++_000037_hash ah_alloc_tmp 2 54378 _000037_hash NULL
++_000038_hash ahash_setkey_unaligned 3 33521 _000038_hash NULL
++_000039_hash alg_setkey 3 31485 _000039_hash NULL
++_000040_hash aligned_kmalloc 1 3628 _000040_hash NULL
++_000041_hash alloc_context 1 3194 _000041_hash NULL
++_000042_hash alloc_ep_req 2 54860 _000042_hash NULL
++_000043_hash alloc_fdmem 1 27083 _000043_hash NULL
++_000044_hash alloc_flex_gd 1 57259 _000044_hash NULL
++_000045_hash alloc_sglist 1-3-2 22960 _000045_hash NULL
++_000046_hash aoedev_flush 2 44398 _000046_hash NULL
++_000047_hash append_to_buffer 3 63550 _000047_hash NULL
++_000048_hash asix_read_cmd 5 13245 _000048_hash NULL
++_000049_hash asix_write_cmd 5 58192 _000049_hash NULL
++_000050_hash asn1_octets_decode 2 9991 _000050_hash NULL
++_000051_hash asn1_oid_decode 2 4999 _000051_hash NULL
++_000052_hash at76_set_card_command 4 4471 _000052_hash NULL
++_000053_hash ath6kl_add_bss_if_needed 6 24317 _000053_hash NULL
++_000054_hash ath6kl_debug_roam_tbl_event 3 5224 _000054_hash NULL
++_000055_hash ath6kl_mgmt_powersave_ap 6 13791 _000055_hash NULL
++_000056_hash ath6kl_send_go_probe_resp 3 21113 _000056_hash NULL
++_000057_hash ath6kl_set_ap_probe_resp_ies 3 50539 _000057_hash NULL
++_000058_hash ath6kl_set_assoc_req_ies 3 43185 _000058_hash NULL
++_000059_hash ath6kl_wmi_bssinfo_event_rx 3 2275 _000059_hash NULL
++_000060_hash ath6kl_wmi_send_action_cmd 7 58860 _000060_hash NULL
++_000061_hash __ath6kl_wmi_send_mgmt_cmd 7 38971 _000061_hash NULL
++_000062_hash attach_hdlc_protocol 3 19986 _000062_hash NULL
++_000063_hash audio_write 4 54261 _001597_hash NULL nohasharray
++_000064_hash audit_unpack_string 3 13748 _000064_hash NULL
++_000065_hash av7110_vbi_write 3 34384 _000065_hash NULL
++_000066_hash ax25_setsockopt 5 42740 _000066_hash NULL
++_000067_hash b43_debugfs_write 3 34838 _000067_hash NULL
++_000068_hash b43legacy_debugfs_write 3 28556 _000068_hash NULL
++_000069_hash bch_alloc 1 4593 _000069_hash NULL
++_000070_hash befs_nls2utf 3 17163 _000070_hash NULL
++_000071_hash befs_utf2nls 3 25628 _000071_hash NULL
++_000072_hash bfad_debugfs_write_regrd 3 15218 _000072_hash NULL
++_000073_hash bfad_debugfs_write_regwr 3 61841 _000073_hash NULL
++_000074_hash bio_alloc_map_data 1-2 50782 _000074_hash NULL
++_000076_hash bio_kmalloc 2 54672 _000076_hash NULL
++_000077_hash blkcipher_copy_iv 3 24075 _000077_hash NULL
++_000078_hash blkcipher_next_slow 4 52733 _000078_hash NULL
++_000079_hash bl_pipe_downcall 3 34264 _000079_hash NULL
++_000080_hash bnad_debugfs_write_regrd 3 6706 _000080_hash NULL
++_000081_hash bnad_debugfs_write_regwr 3 57500 _000081_hash NULL
++_000082_hash bnx2fc_cmd_mgr_alloc 2-3 24873 _000082_hash NULL
++_000084_hash bnx2_nvram_write 4 7790 _000084_hash NULL
++_000085_hash brcmf_sdbrcm_downloadvars 3 42064 _000085_hash NULL
++_000086_hash btmrvl_gpiogap_write 3 35053 _000086_hash NULL
++_000087_hash btmrvl_hscfgcmd_write 3 27143 _000087_hash NULL
++_000088_hash btmrvl_hscmd_write 3 27089 _000088_hash NULL
++_000089_hash btmrvl_hsmode_write 3 42252 _000089_hash NULL
++_000090_hash btmrvl_pscmd_write 3 29504 _000090_hash NULL
++_000091_hash btmrvl_psmode_write 3 3703 _000091_hash NULL
++_000092_hash btrfs_alloc_delayed_item 1 11678 _000092_hash NULL
++_000093_hash cache_do_downcall 3 6926 _000093_hash NULL
++_000094_hash cachefiles_cook_key 2 33274 _000094_hash NULL
++_000095_hash cachefiles_daemon_write 3 43535 _000095_hash NULL
++_000096_hash capi_write 3 35104 _000096_hash NULL
++_000097_hash carl9170_debugfs_write 3 50857 _000097_hash NULL
++_000098_hash cciss_allocate_sg_chain_blocks 2-3 5368 _000098_hash NULL
++_000100_hash cciss_proc_write 3 10259 _000100_hash NULL
++_000101_hash cdrom_read_cdda_old 4 27664 _000101_hash NULL
++_000102_hash ceph_alloc_page_vector 1 18710 _000102_hash NULL
++_000103_hash ceph_buffer_new 1 35974 _000103_hash NULL
++_000104_hash ceph_copy_user_to_page_vector 4 656 _000104_hash NULL
++_000105_hash ceph_get_direct_page_vector 2 41917 _000105_hash NULL
++_000106_hash ceph_msg_new 2 5846 _000106_hash NULL
++_000107_hash ceph_setxattr 4 18913 _000107_hash NULL
++_000108_hash cfi_read_pri 3 24366 _000108_hash NULL
++_000109_hash cgroup_write_string 5 10900 _000109_hash NULL
++_000110_hash cgroup_write_X64 5 54514 _000110_hash NULL
++_000111_hash change_xattr 5 61390 _000111_hash NULL
++_000112_hash check_load_and_stores 2 2143 _000112_hash NULL
++_000113_hash cifs_idmap_key_instantiate 3 54503 _000113_hash NULL
++_000114_hash cifs_security_flags_proc_write 3 5484 _000114_hash NULL
++_000115_hash cifs_setxattr 4 23957 _000115_hash NULL
++_000116_hash cifs_spnego_key_instantiate 3 23588 _000116_hash NULL
++_000117_hash ci_ll_write 4 3740 _000117_hash NULL
++_000118_hash cld_pipe_downcall 3 15058 _000118_hash NULL
++_000119_hash clear_refs_write 3 61904 _000119_hash NULL
++_000120_hash clusterip_proc_write 3 44729 _000120_hash NULL
++_000121_hash cm4040_write 3 58079 _000121_hash NULL
++_000122_hash cm_copy_private_data 2 3649 _000122_hash NULL
++_000123_hash cmm_write 3 2896 _000123_hash NULL
++_000124_hash cm_write 3 36858 _000124_hash NULL
++_000125_hash coda_psdev_write 3 1711 _000125_hash NULL
++_000126_hash codec_reg_read_file 3 36280 _000126_hash NULL
++_000127_hash command_file_write 3 31318 _000127_hash NULL
++_000128_hash command_write 3 58841 _000128_hash NULL
++_000129_hash comm_write 3 44537 _001532_hash NULL nohasharray
++_000130_hash concat_writev 3 21451 _000130_hash NULL
++_000131_hash copy_and_check 3 19089 _000131_hash NULL
++_000132_hash copy_from_user_toio 3 31966 _000132_hash NULL
++_000133_hash copy_items 6 50140 _000133_hash NULL
++_000134_hash copy_macs 4 45534 _000134_hash NULL
++_000135_hash __copy_to_user 3 17551 _000135_hash NULL
++_000136_hash copy_vm86_regs_from_user 3 45340 _000136_hash NULL
++_000137_hash cosa_write 3 1774 _000137_hash NULL
++_000138_hash create_entry 2 33479 _000138_hash NULL
++_000139_hash create_queues 2-3 9088 _000139_hash NULL
++_000141_hash create_xattr 5 54106 _000141_hash NULL
++_000142_hash create_xattr_datum 5 33356 _000142_hash NULL
++_000143_hash csum_partial_copy_fromiovecend 3-4 9957 _000143_hash NULL
++_000145_hash ctrl_out 3-5 8712 _000145_hash NULL
++_000147_hash cx24116_writeregN 4 41975 _000147_hash NULL
++_000148_hash cxacru_cm_get_array 4 4412 _000148_hash NULL
++_000149_hash cxgbi_alloc_big_mem 1 4707 _000149_hash NULL
++_000150_hash dac960_user_command_proc_write 3 3071 _000150_hash NULL
++_000151_hash datablob_format 2 39571 _002156_hash NULL nohasharray
++_000152_hash dccp_feat_clone_sp_val 3 11942 _000152_hash NULL
++_000153_hash dccp_setsockopt_ccid 4 30701 _000153_hash NULL
++_000154_hash dccp_setsockopt_cscov 2 37766 _000154_hash NULL
++_000155_hash dccp_setsockopt_service 4 65336 _000155_hash NULL
++_000156_hash ddb_output_write 3 31902 _000156_hash NULL
++_000157_hash ddebug_proc_write 3 18055 _000157_hash NULL
++_000158_hash dev_config 3 8506 _000158_hash NULL
++_000159_hash device_write 3 45156 _000159_hash NULL
++_000160_hash devm_kzalloc 2 4966 _000160_hash NULL
++_000161_hash devres_alloc 2 551 _000161_hash NULL
++_000162_hash dfs_file_write 3 41196 _000162_hash NULL
++_000163_hash direct_entry 3 38836 _000163_hash NULL
++_000164_hash dispatch_proc_write 3 44320 _000164_hash NULL
++_000165_hash diva_os_copy_from_user 4 7792 _000165_hash NULL
++_000166_hash dlm_alloc_pagevec 1 54296 _000166_hash NULL
++_000167_hash dlmfs_file_read 3 28385 _000167_hash NULL
++_000168_hash dlmfs_file_write 3 6892 _000168_hash NULL
++_000169_hash dm_read 3 15674 _000169_hash NULL
++_000170_hash dm_write 3 2513 _000170_hash NULL
++_000171_hash __dn_setsockopt 5 13060 _000171_hash NULL
++_000172_hash dns_query 3 9676 _000172_hash NULL
++_000173_hash dns_resolver_instantiate 3 63314 _000173_hash NULL
++_000174_hash do_add_counters 3 3992 _000174_hash NULL
++_000175_hash __do_config_autodelink 3 58763 _000175_hash NULL
++_000176_hash do_ip_setsockopt 5 41852 _000176_hash NULL
++_000177_hash do_ipv6_setsockopt 5 18215 _000177_hash NULL
++_000178_hash do_ip_vs_set_ctl 4 48641 _000178_hash NULL
++_000179_hash do_kimage_alloc 3 64827 _000179_hash NULL
++_000180_hash do_register_entry 4 29478 _000180_hash NULL
++_000181_hash do_tty_write 5 44896 _000181_hash NULL
++_000182_hash do_update_counters 4 2259 _000182_hash NULL
++_000183_hash dsp_write 2 46218 _000183_hash NULL
++_000184_hash dup_to_netobj 3 26363 _000184_hash NULL
++_000185_hash dvb_aplay 3 56296 _000185_hash NULL
++_000186_hash dvb_ca_en50221_io_write 3 43533 _000186_hash NULL
++_000187_hash dvbdmx_write 3 19423 _000187_hash NULL
++_000188_hash dvb_play 3 50814 _000188_hash NULL
++_000189_hash dw210x_op_rw 6 39915 _000189_hash NULL
++_000190_hash dwc3_link_state_write 3 12641 _000190_hash NULL
++_000191_hash dwc3_mode_write 3 51997 _000191_hash NULL
++_000192_hash dwc3_testmode_write 3 30516 _000192_hash NULL
++_000193_hash ecryptfs_copy_filename 4 11868 _000193_hash NULL
++_000194_hash ecryptfs_miscdev_write 3 26847 _000194_hash NULL
++_000195_hash ecryptfs_send_miscdev 2 64816 _000195_hash NULL
++_000196_hash efx_tsoh_heap_alloc 2 58545 _000196_hash NULL
++_000197_hash emi26_writememory 4 57908 _000197_hash NULL
++_000198_hash emi62_writememory 4 29731 _000198_hash NULL
++_000199_hash encrypted_instantiate 3 3168 _000199_hash NULL
++_000200_hash encrypted_update 3 13414 _000200_hash NULL
++_000201_hash ep0_write 3 14536 _001328_hash NULL nohasharray
++_000202_hash ep_read 3 58813 _000202_hash NULL
++_000203_hash ep_write 3 59008 _000203_hash NULL
++_000204_hash erst_dbg_write 3 46715 _000204_hash NULL
++_000205_hash esp_alloc_tmp 2 40558 _000205_hash NULL
++_000206_hash exofs_read_lookup_dev_table 3 17733 _000206_hash NULL
++_000207_hash ext4_kvmalloc 1 14796 _000207_hash NULL
++_000208_hash ezusb_writememory 4 45976 _000208_hash NULL
++_000209_hash fanotify_write 3 64623 _000209_hash NULL
++_000210_hash fd_copyin 3 56247 _000210_hash NULL
++_000211_hash ffs_epfile_io 3 64886 _000211_hash NULL
++_000212_hash ffs_prepare_buffer 2 59892 _000212_hash NULL
++_000213_hash f_hidg_write 3 7932 _000213_hash NULL
++_000214_hash file_read_actor 4 1401 _000214_hash NULL
++_000215_hash fill_write_buffer 3 3142 _000215_hash NULL
++_000216_hash fl_create 5 56435 _000216_hash NULL
++_000217_hash ftdi_elan_write 3 57309 _000217_hash NULL
++_000218_hash fuse_conn_limit_write 3 30777 _000218_hash NULL
++_000219_hash fw_iso_buffer_init 3 54582 _000219_hash NULL
++_000220_hash garmin_write_bulk 3 58191 _000220_hash NULL
++_000221_hash garp_attr_create 3 3883 _000221_hash NULL
++_000222_hash get_arg 3 5694 _000222_hash NULL
++_000223_hash getdqbuf 1 62908 _000223_hash NULL
++_000224_hash get_fdb_entries 3 41916 _000224_hash NULL
++_000225_hash get_indirect_ea 4 51869 _000225_hash NULL
++_000226_hash get_registers 3 26187 _000226_hash NULL
++_000227_hash get_scq 2 10897 _000227_hash NULL
++_000228_hash get_server_iovec 2 16804 _000228_hash NULL
++_000229_hash get_ucode_user 3 38202 _000229_hash NULL
++_000230_hash get_user_cpu_mask 2 14861 _000230_hash NULL
++_000231_hash gfs2_alloc_sort_buffer 1 18275 _000231_hash NULL
++_000232_hash gfs2_glock_nq_m 1 20347 _000232_hash NULL
++_000233_hash gigaset_initcs 2 43753 _000233_hash NULL
++_000234_hash gigaset_initdriver 2 1060 _000234_hash NULL
++_000235_hash gs_alloc_req 2 58883 _000235_hash NULL
++_000236_hash gs_buf_alloc 2 25067 _000236_hash NULL
++_000237_hash gsm_data_alloc 3 42437 _000237_hash NULL
++_000238_hash gss_pipe_downcall 3 23182 _000238_hash NULL
++_000239_hash handle_request 9 10024 _000239_hash NULL
++_000240_hash hash_new 1 62224 _000240_hash NULL
++_000241_hash hashtab_create 3 33769 _000241_hash NULL
++_000242_hash hcd_buffer_alloc 2 27495 _000242_hash NULL
++_000243_hash hci_sock_setsockopt 5 28993 _000243_hash NULL
++_000244_hash heap_init 2 49617 _000244_hash NULL
++_000245_hash hest_ghes_dev_register 1 46766 _000245_hash NULL
++_000246_hash hidraw_get_report 3 45609 _000246_hash NULL
++_000247_hash hidraw_report_event 3 49578 _000509_hash NULL nohasharray
++_000248_hash hidraw_send_report 3 23449 _000248_hash NULL
++_000249_hash hpfs_translate_name 3 41497 _000249_hash NULL
++_000250_hash hysdn_conf_write 3 52145 _000250_hash NULL
++_000251_hash hysdn_log_write 3 48694 _000251_hash NULL
++_000252_hash __i2400mu_send_barker 3 23652 _000252_hash NULL
++_000253_hash i2cdev_read 3 1206 _000253_hash NULL
++_000254_hash i2cdev_write 3 23310 _000254_hash NULL
++_000255_hash i2o_parm_field_get 5 34477 _000255_hash NULL
++_000256_hash i2o_parm_table_get 6 61635 _000256_hash NULL
++_000257_hash ib_copy_from_udata 3 59502 _000257_hash NULL
++_000258_hash ib_ucm_alloc_data 3 36885 _000258_hash NULL
++_000259_hash ib_umad_write 3 47993 _000259_hash NULL
++_000260_hash ib_uverbs_unmarshall_recv 5 12251 _000260_hash NULL
++_000261_hash icn_writecmd 2 38629 _000261_hash NULL
++_000262_hash ide_driver_proc_write 3 32493 _000262_hash NULL
++_000263_hash ide_settings_proc_write 3 35110 _000263_hash NULL
++_000264_hash idetape_chrdev_write 3 53976 _000264_hash NULL
++_000265_hash idmap_pipe_downcall 3 14591 _000265_hash NULL
++_000266_hash ieee80211_build_probe_req 7 27660 _000266_hash NULL
++_000267_hash ieee80211_if_write 3 34894 _000267_hash NULL
++_000268_hash if_write 3 51756 _000268_hash NULL
++_000269_hash ilo_write 3 64378 _000269_hash NULL
++_000270_hash ima_write_policy 3 40548 _000270_hash NULL
++_000271_hash init_data_container 1 60709 _000271_hash NULL
++_000272_hash init_send_hfcd 1 34586 _000272_hash NULL
++_000273_hash insert_dent 7 65034 _000273_hash NULL
++_000274_hash interpret_user_input 2 19393 _000274_hash NULL
++_000275_hash int_proc_write 3 39542 _000275_hash NULL
++_000276_hash ioctl_private_iw_point 7 1273 _000276_hash NULL
++_000277_hash iov_iter_copy_from_user 4 31942 _000277_hash NULL
++_000278_hash iov_iter_copy_from_user_atomic 4 56368 _000278_hash NULL
++_000279_hash iowarrior_write 3 18604 _000279_hash NULL
++_000280_hash ipc_alloc 1 1192 _000280_hash NULL
++_000281_hash ipc_rcu_alloc 1 21208 _000281_hash NULL
++_000282_hash ip_options_get_from_user 4 64958 _000282_hash NULL
++_000283_hash ipv6_renew_option 3 38813 _000283_hash NULL
++_000284_hash ip_vs_conn_fill_param_sync 6 29771 _002404_hash NULL nohasharray
++_000285_hash ip_vs_create_timeout_table 2 64478 _000285_hash NULL
++_000286_hash ipw_queue_tx_init 3 49161 _000286_hash NULL
++_000287_hash irda_setsockopt 5 19824 _000287_hash NULL
++_000288_hash irias_new_octseq_value 2 13596 _000288_hash NULL
++_000289_hash ir_lirc_transmit_ir 3 64403 _000289_hash NULL
++_000290_hash irnet_ctrl_write 3 24139 _000290_hash NULL
++_000291_hash isdn_add_channels 3 40905 _000291_hash NULL
++_000292_hash isdn_ppp_fill_rq 2 41428 _000292_hash NULL
++_000293_hash isdn_ppp_write 4 29109 _000293_hash NULL
++_000294_hash isdn_read 3 50021 _000294_hash NULL
++_000295_hash isdn_v110_open 3 2418 _000295_hash NULL
++_000296_hash isdn_writebuf_stub 4 52383 _000296_hash NULL
++_000297_hash islpci_mgt_transmit 5 34133 _000297_hash NULL
++_000298_hash iso_callback 3 43208 _000298_hash NULL
++_000299_hash iso_packets_buffer_init 3 29061 _000299_hash NULL
++_000300_hash it821x_firmware_command 3 8628 _000300_hash NULL
++_000301_hash ivtv_buf_copy_from_user 4 25502 _000301_hash NULL
++_000302_hash iwch_alloc_fastreg_pbl 2 40153 _000302_hash NULL
++_000303_hash iwl_calib_set 3 34400 _002188_hash NULL nohasharray
++_000304_hash jbd2_journal_init_revoke_table 1 36336 _000304_hash NULL
++_000305_hash jffs2_alloc_full_dirent 1 60179 _001111_hash NULL nohasharray
++_000306_hash journal_init_revoke_table 1 56331 _000306_hash NULL
++_000307_hash kcalloc 1-2 27770 _000307_hash NULL
++_000309_hash keyctl_instantiate_key_common 4 47889 _000309_hash NULL
++_000310_hash keyctl_update_key 3 26061 _000310_hash NULL
++_000311_hash __kfifo_alloc 2-3 22173 _000311_hash NULL
++_000313_hash kfifo_copy_from_user 3 5091 _000313_hash NULL
++_000314_hash kmalloc_node 1 50163 _000314_hash NULL
++_000315_hash kmalloc_parameter 1 65279 _000315_hash NULL
++_000316_hash kmem_alloc 1 31920 _000316_hash NULL
++_000317_hash kobj_map 2-3 9566 _000317_hash NULL
++_000319_hash kone_receive 4 4690 _000319_hash NULL
++_000320_hash kone_send 4 63435 _000320_hash NULL
++_000321_hash krealloc 2 14908 _000321_hash NULL
++_000322_hash kvmalloc 1 32646 _000322_hash NULL
++_000323_hash kvm_read_guest_atomic 4 10765 _000323_hash NULL
++_000324_hash kvm_read_guest_cached 4 39666 _000324_hash NULL
++_000325_hash kvm_read_guest_page 5 18074 _000325_hash NULL
++_000326_hash kzalloc 1 54740 _000326_hash NULL
++_000327_hash l2cap_sock_setsockopt 5 50207 _000327_hash NULL
++_000328_hash l2cap_sock_setsockopt_old 4 29346 _000328_hash NULL
++_000329_hash lane2_associate_req 4 45398 _000329_hash NULL
++_000330_hash lbs_debugfs_write 3 48413 _000330_hash NULL
++_000331_hash lcd_write 3 14857 _000331_hash &_000014_hash
++_000332_hash ldm_frag_add 2 5611 _000332_hash NULL
++_000333_hash __lgread 4 31668 _000333_hash NULL
++_000334_hash libipw_alloc_txb 1 27579 _000334_hash NULL
++_000335_hash link_send_sections_long 4 46556 _000335_hash NULL
++_000336_hash listxattr 3 12769 _000336_hash NULL
++_000337_hash LoadBitmap 2 19658 _000337_hash NULL
++_000338_hash load_msg 2 95 _000338_hash NULL
++_000339_hash lpfc_debugfs_dif_err_write 3 17424 _000339_hash NULL
++_000340_hash lp_write 3 9511 _000340_hash NULL
++_000341_hash mb_cache_create 2 17307 _000341_hash NULL
++_000342_hash mce_write 3 26201 _000342_hash NULL
++_000343_hash mcs7830_get_reg 3 33308 _000343_hash NULL
++_000344_hash mcs7830_set_reg 3 31413 _000344_hash NULL
++_000345_hash memcpy_fromiovec 3 55247 _000345_hash NULL
++_000346_hash memcpy_fromiovecend 3-4 2707 _000346_hash NULL
++_000348_hash mempool_kmalloc 2 53831 _000348_hash NULL
++_000349_hash mempool_resize 2 47983 _001821_hash NULL nohasharray
++_000350_hash mem_rw 3 22085 _000350_hash NULL
++_000351_hash mgmt_control 3 7349 _000351_hash NULL
++_000352_hash mgmt_pending_add 5 46976 _000352_hash NULL
++_000353_hash mlx4_ib_alloc_fast_reg_page_list 2 46119 _000353_hash NULL
++_000354_hash mmc_alloc_sg 1 21504 _000354_hash NULL
++_000355_hash mmc_send_bus_test 4 18285 _000355_hash NULL
++_000356_hash mmc_send_cxd_data 5 38655 _000356_hash NULL
++_000357_hash module_alloc_update_bounds 1 47205 _000357_hash NULL
++_000358_hash move_addr_to_kernel 2 32673 _000358_hash NULL
++_000359_hash mpi_alloc_limb_space 1 23190 _000359_hash NULL
++_000360_hash mpi_resize 2 44674 _000360_hash NULL
++_000361_hash mptctl_getiocinfo 2 28545 _000361_hash NULL
++_000362_hash mtdchar_readoob 4 31200 _000362_hash NULL
++_000363_hash mtdchar_write 3 56831 _000363_hash NULL
++_000364_hash mtdchar_writeoob 4 3393 _000364_hash NULL
++_000365_hash mtd_device_parse_register 5 5024 _000365_hash NULL
++_000366_hash mtf_test_write 3 18844 _000366_hash NULL
++_000367_hash mtrr_write 3 59622 _000367_hash NULL
++_000368_hash musb_test_mode_write 3 33518 _000368_hash NULL
++_000369_hash mwifiex_get_common_rates 3 17131 _000369_hash NULL
++_000370_hash mwifiex_update_curr_bss_params 5 16908 _000370_hash NULL
++_000371_hash nand_bch_init 2-3 16280 _001341_hash NULL nohasharray
++_000373_hash ncp_file_write 3 3813 _000373_hash NULL
++_000374_hash ncp__vol2io 5 4804 _000374_hash NULL
++_000375_hash nes_alloc_fast_reg_page_list 2 33523 _000375_hash NULL
++_000376_hash nfc_targets_found 3 29886 _000376_hash NULL
++_000377_hash nfs4_acl_new 1 49806 _000377_hash NULL
++_000378_hash nfs4_write_cached_acl 4 15070 _000378_hash NULL
++_000379_hash nfsd_cache_update 3 59574 _000379_hash NULL
++_000380_hash nfsd_symlink 6 63442 _000380_hash NULL
++_000381_hash nfs_idmap_get_desc 2-4 42990 _000381_hash NULL
++_000383_hash nfs_readdir_make_qstr 3 12509 _000383_hash NULL
++_000384_hash note_last_dentry 3 12285 _000384_hash NULL
++_000385_hash ntfs_copy_from_user 3-5 15072 _000385_hash NULL
++_000387_hash __ntfs_copy_from_user_iovec_inatomic 3-4 38153 _000387_hash NULL
++_000389_hash ntfs_ucstonls 3 23097 _000389_hash NULL
++_000390_hash nvme_alloc_iod 1 56027 _000390_hash NULL
++_000391_hash nvram_write 3 3894 _000391_hash NULL
++_000392_hash o2hb_debug_create 4 18744 _000392_hash NULL
++_000393_hash o2net_send_message_vec 4 879 _001792_hash NULL nohasharray
++_000394_hash ocfs2_control_cfu 2 37750 _000394_hash NULL
++_000395_hash oom_adjust_write 3 41116 _000395_hash NULL
++_000396_hash oom_score_adj_write 3 42594 _000396_hash NULL
++_000397_hash opera1_xilinx_rw 5 31453 _000397_hash NULL
++_000398_hash oprofilefs_ulong_from_user 3 57251 _000398_hash NULL
++_000399_hash opticon_write 4 60775 _000399_hash NULL
++_000400_hash orig_node_add_if 2 32833 _000400_hash NULL
++_000401_hash orig_node_del_if 2 28371 _000401_hash NULL
++_000402_hash p9_check_zc_errors 4 15534 _000402_hash NULL
++_000403_hash packet_buffer_init 2 1607 _000403_hash NULL
++_000404_hash packet_setsockopt 5 17662 _000404_hash NULL
++_000405_hash parse_command 2 37079 _000405_hash NULL
++_000406_hash pcbit_writecmd 2 12332 _000406_hash NULL
++_000407_hash pcmcia_replace_cis 3 57066 _000407_hash NULL
++_000408_hash pgctrl_write 3 50453 _000408_hash NULL
++_000409_hash pg_write 3 40766 _000409_hash NULL
++_000410_hash pidlist_allocate 1 64404 _000410_hash NULL
++_000411_hash pipe_iov_copy_from_user 3 23102 _000411_hash NULL
++_000412_hash pipe_iov_copy_to_user 3 3447 _000412_hash NULL
++_000413_hash pkt_add 3 39897 _000413_hash NULL
++_000414_hash pktgen_if_write 3 55628 _000414_hash NULL
++_000415_hash platform_device_add_data 3 310 _000415_hash NULL
++_000416_hash platform_device_add_resources 3 13289 _000416_hash NULL
++_000417_hash pm_qos_power_write 3 52513 _000417_hash NULL
++_000418_hash pnpbios_proc_write 3 19758 _000418_hash NULL
++_000419_hash pool_allocate 3 42012 _000419_hash NULL
++_000420_hash posix_acl_alloc 1 48063 _000420_hash NULL
++_000421_hash ppp_cp_parse_cr 4 5214 _000421_hash NULL
++_000422_hash ppp_write 3 34034 _000422_hash NULL
++_000423_hash pp_read 3 33210 _000423_hash NULL
++_000424_hash pp_write 3 39554 _000424_hash NULL
++_000425_hash printer_req_alloc 2 62687 _001807_hash NULL nohasharray
++_000426_hash printer_write 3 60276 _000426_hash NULL
++_000427_hash prism2_set_genericelement 3 29277 _000427_hash NULL
++_000428_hash __probe_kernel_read 3 61119 _000428_hash NULL
++_000429_hash __probe_kernel_write 3 29842 _000429_hash NULL
++_000430_hash proc_coredump_filter_write 3 25625 _000430_hash NULL
++_000431_hash _proc_do_string 2 6376 _000431_hash NULL
++_000432_hash process_vm_rw_pages 5-6 15954 _000432_hash NULL
++_000434_hash proc_loginuid_write 3 63648 _000434_hash NULL
++_000435_hash proc_pid_attr_write 3 63845 _000435_hash NULL
++_000436_hash proc_scsi_devinfo_write 3 32064 _000436_hash NULL
++_000437_hash proc_scsi_write 3 29142 _000437_hash NULL
++_000438_hash proc_scsi_write_proc 3 267 _000438_hash NULL
++_000439_hash pstore_mkfile 5 50830 _000439_hash NULL
++_000440_hash pti_char_write 3 60960 _000440_hash NULL
++_000441_hash ptrace_writedata 4 45021 _000441_hash NULL
++_000442_hash pt_write 3 40159 _000442_hash NULL
++_000443_hash pvr2_ioread_set_sync_key 3 59882 _000443_hash NULL
++_000444_hash pvr2_stream_buffer_count 2 33719 _000444_hash NULL
++_000445_hash qdisc_class_hash_alloc 1 18262 _000445_hash NULL
++_000446_hash r3964_write 4 57662 _000446_hash NULL
++_000447_hash raw_seticmpfilter 3 6888 _000447_hash NULL
++_000448_hash raw_setsockopt 5 45800 _000448_hash NULL
++_000449_hash rawv6_seticmpfilter 5 12137 _000449_hash NULL
++_000450_hash ray_cs_essid_proc_write 3 17875 _000450_hash NULL
++_000451_hash rbd_add 3 16366 _000451_hash NULL
++_000452_hash rbd_snap_add 4 19678 _000452_hash NULL
++_000453_hash rdma_set_ib_paths 3 45592 _000453_hash NULL
++_000454_hash rds_page_copy_user 4 35691 _000454_hash NULL
++_000455_hash read 3 9397 _000455_hash NULL
++_000456_hash read_buf 2 20469 _000456_hash NULL
++_000457_hash read_cis_cache 4 29735 _000457_hash NULL
++_000458_hash realloc_buffer 2 25816 _000458_hash NULL
++_000459_hash realloc_packet_buffer 2 25569 _000459_hash NULL
++_000460_hash receive_DataRequest 3 9904 _000460_hash NULL
++_000461_hash recent_mt_proc_write 3 8206 _000461_hash NULL
++_000462_hash regmap_access_read_file 3 37223 _000462_hash NULL
++_000463_hash regmap_bulk_write 4 59049 _000463_hash NULL
++_000464_hash regmap_map_read_file 3 37685 _000464_hash NULL
++_000465_hash regset_tls_set 4 18459 _000465_hash NULL
++_000466_hash reg_w_buf 3 27724 _000466_hash NULL
++_000467_hash reg_w_ixbuf 4 34736 _000467_hash NULL
++_000468_hash remote_settings_file_write 3 22987 _000468_hash NULL
++_000469_hash request_key_auth_new 3 38092 _000469_hash NULL
++_000470_hash restore_i387_fxsave 2 17528 _000470_hash NULL
++_000471_hash revalidate 2 19043 _000471_hash NULL
++_000472_hash rfcomm_sock_setsockopt 5 18254 _000472_hash NULL
++_000473_hash rndis_add_response 2 58544 _000473_hash NULL
++_000474_hash rndis_set_oid 4 6547 _000474_hash NULL
++_000475_hash rngapi_reset 3 34366 _000475_hash NULL
++_000476_hash roccat_common_receive 4 53407 _000476_hash NULL
++_000477_hash roccat_common_send 4 12284 _000477_hash NULL
++_000478_hash rpc_malloc 2 43573 _000478_hash NULL
++_000479_hash rt2x00debug_write_bbp 3 8212 _000479_hash NULL
++_000480_hash rt2x00debug_write_csr 3 64753 _000480_hash NULL
++_000481_hash rt2x00debug_write_eeprom 3 23091 _000481_hash NULL
++_000482_hash rt2x00debug_write_rf 3 38195 _000482_hash NULL
++_000483_hash rts51x_read_mem 4 26577 _000483_hash NULL
++_000484_hash rts51x_read_status 4 11830 _000484_hash NULL
++_000485_hash rts51x_write_mem 4 17598 _000485_hash NULL
++_000486_hash rw_copy_check_uvector 3 34271 _000486_hash NULL
++_000487_hash rxrpc_request_key 3 27235 _000487_hash NULL
++_000488_hash rxrpc_server_keyring 3 16431 _000488_hash NULL
++_000489_hash savemem 3 58129 _000489_hash NULL
++_000490_hash sb16_copy_from_user 10-7-6 55836 _000490_hash NULL
++_000493_hash sched_autogroup_write 3 10984 _000493_hash NULL
++_000494_hash scsi_mode_select 6 37330 _000494_hash NULL
++_000495_hash scsi_tgt_copy_sense 3 26933 _000495_hash NULL
++_000496_hash sctp_auth_create_key 1 51641 _000496_hash NULL
++_000497_hash sctp_getsockopt_delayed_ack 2 9232 _000497_hash NULL
++_000498_hash sctp_getsockopt_local_addrs 2 25178 _000498_hash NULL
++_000499_hash sctp_make_abort_user 3 29654 _000499_hash NULL
++_000500_hash sctp_setsockopt_active_key 3 43755 _000500_hash NULL
++_000501_hash sctp_setsockopt_adaptation_layer 3 26935 _001925_hash NULL nohasharray
++_000502_hash sctp_setsockopt_associnfo 3 51684 _000502_hash NULL
++_000503_hash sctp_setsockopt_auth_chunk 3 30843 _000503_hash NULL
++_000504_hash sctp_setsockopt_auth_key 3 3793 _000504_hash NULL
++_000505_hash sctp_setsockopt_autoclose 3 5775 _000505_hash NULL
++_000506_hash sctp_setsockopt_bindx 3 49870 _000506_hash NULL
++_000507_hash __sctp_setsockopt_connectx 3 46949 _000507_hash NULL
++_000508_hash sctp_setsockopt_context 3 31091 _000508_hash NULL
++_000509_hash sctp_setsockopt_default_send_param 3 49578 _000509_hash &_000247_hash
++_000510_hash sctp_setsockopt_delayed_ack 3 40129 _000510_hash NULL
++_000511_hash sctp_setsockopt_del_key 3 42304 _002281_hash NULL nohasharray
++_000512_hash sctp_setsockopt_events 3 18862 _000512_hash NULL
++_000513_hash sctp_setsockopt_hmac_ident 3 11687 _000513_hash NULL
++_000514_hash sctp_setsockopt_initmsg 3 1383 _000514_hash NULL
++_000515_hash sctp_setsockopt_maxburst 3 28041 _000515_hash NULL
++_000516_hash sctp_setsockopt_maxseg 3 11829 _000516_hash NULL
++_000517_hash sctp_setsockopt_peer_addr_params 3 734 _000517_hash NULL
++_000518_hash sctp_setsockopt_peer_primary_addr 3 13440 _000518_hash NULL
++_000519_hash sctp_setsockopt_rtoinfo 3 30941 _000519_hash NULL
++_000520_hash security_context_to_sid_core 2 29248 _000520_hash NULL
++_000521_hash sel_commit_bools_write 3 46077 _000521_hash NULL
++_000522_hash sel_write_avc_cache_threshold 3 2256 _000522_hash NULL
++_000523_hash sel_write_bool 3 46996 _000523_hash NULL
++_000524_hash sel_write_checkreqprot 3 60774 _000524_hash NULL
++_000525_hash sel_write_disable 3 10511 _000525_hash NULL
++_000526_hash sel_write_enforce 3 48998 _000526_hash NULL
++_000527_hash sel_write_load 3 63830 _000527_hash NULL
++_000528_hash send_bulk_static_data 3 61932 _000528_hash NULL
++_000529_hash send_control_msg 6 48498 _000529_hash NULL
++_000530_hash set_aoe_iflist 2 42737 _000530_hash NULL
++_000531_hash setkey_unaligned 3 39474 _000531_hash NULL
++_000532_hash set_registers 3 53582 _000532_hash NULL
++_000533_hash setsockopt 5 54539 _000533_hash NULL
++_000534_hash setup_req 3 5848 _000534_hash NULL
++_000535_hash setup_window 7 59178 _000535_hash NULL
++_000536_hash setxattr 4 37006 _000536_hash NULL
++_000537_hash sfq_alloc 1 2861 _000537_hash NULL
++_000538_hash sg_kmalloc 1 50240 _000538_hash NULL
++_000539_hash sgl_map_user_pages 2 30610 _000539_hash NULL
++_000540_hash shash_setkey_unaligned 3 8620 _000540_hash NULL
++_000541_hash shmem_xattr_alloc 2 61190 _000541_hash NULL
++_000542_hash sierra_setup_urb 5 46029 _000542_hash NULL
++_000543_hash simple_transaction_get 3 50633 _000543_hash NULL
++_000544_hash simple_write_to_buffer 2-5 3122 _000544_hash NULL
++_000546_hash sisusb_send_bulk_msg 3 17864 _000546_hash NULL
++_000547_hash skb_add_data 3 48363 _000547_hash NULL
++_000548_hash skb_do_copy_data_nocache 5 12465 _000548_hash NULL
++_000549_hash sl_alloc_bufs 2 50380 _000549_hash NULL
++_000550_hash sl_realloc_bufs 2 64086 _000550_hash NULL
++_000551_hash smk_write_ambient 3 45691 _000551_hash NULL
++_000552_hash smk_write_cipso 3 17989 _000552_hash NULL
++_000553_hash smk_write_direct 3 46363 _000553_hash NULL
++_000554_hash smk_write_doi 3 49621 _000554_hash NULL
++_000555_hash smk_write_load_list 3 52280 _000555_hash NULL
++_000556_hash smk_write_logging 3 2618 _000556_hash NULL
++_000557_hash smk_write_netlbladdr 3 42525 _000557_hash NULL
++_000558_hash smk_write_onlycap 3 14400 _000558_hash NULL
++_000559_hash snd_ctl_elem_user_tlv 3 11695 _000559_hash NULL
++_000560_hash snd_emu10k1_fx8010_read 5 9605 _000560_hash NULL
++_000561_hash snd_emu10k1_synth_copy_from_user 3-5 9061 _000561_hash NULL
++_000563_hash snd_gus_dram_poke 4 18525 _000563_hash NULL
++_000564_hash snd_hdsp_playback_copy 5 20676 _000564_hash NULL
++_000565_hash snd_info_entry_write 3 63474 _000565_hash NULL
++_000566_hash snd_korg1212_copy_from 6 36169 _000566_hash NULL
++_000567_hash snd_mem_proc_write 3 9786 _000567_hash NULL
++_000568_hash snd_midi_channel_init_set 1 30092 _000568_hash NULL
++_000569_hash snd_midi_event_new 1 9893 _000750_hash NULL nohasharray
++_000570_hash snd_opl4_mem_proc_write 5 9670 _000570_hash NULL
++_000571_hash snd_pcm_aio_read 3 13900 _000571_hash NULL
++_000572_hash snd_pcm_aio_write 3 28738 _000572_hash NULL
++_000573_hash snd_pcm_oss_write1 3 10872 _000573_hash NULL
++_000574_hash snd_pcm_oss_write2 3 27332 _000574_hash NULL
++_000575_hash snd_rawmidi_kernel_write1 4 56847 _000575_hash NULL
++_000576_hash snd_rme9652_playback_copy 5 20970 _000576_hash NULL
++_000577_hash snd_sb_csp_load_user 3 45190 _000577_hash NULL
++_000578_hash snd_usb_ctl_msg 8 8436 _000578_hash NULL
++_000579_hash sock_bindtodevice 3 50942 _000579_hash NULL
++_000580_hash sock_kmalloc 2 62205 _000580_hash NULL
++_000581_hash spidev_write 3 44510 _000581_hash NULL
++_000582_hash squashfs_read_table 3 16945 _000582_hash NULL
++_000583_hash srpt_alloc_ioctx 2-3 51042 _000583_hash NULL
++_000585_hash srpt_alloc_ioctx_ring 2 49330 _000585_hash NULL
++_000586_hash st5481_setup_isocpipes 6-4 61340 _000586_hash NULL
++_000587_hash sta_agg_status_write 3 45164 _000587_hash NULL
++_000588_hash svc_setsockopt 5 36876 _000588_hash NULL
++_000589_hash sys_add_key 4 61288 _000589_hash NULL
++_000590_hash sys_modify_ldt 3 18824 _000590_hash NULL
++_000591_hash sys_semtimedop 3 4486 _000591_hash NULL
++_000592_hash sys_setdomainname 2 4373 _000592_hash NULL
++_000593_hash sys_sethostname 2 42962 _000593_hash NULL
++_000594_hash tda10048_writeregbulk 4 11050 _000594_hash NULL
++_000595_hash tipc_log_resize 1 34803 _000595_hash NULL
++_000596_hash tomoyo_write_self 3 45161 _000596_hash NULL
++_000597_hash tower_write 3 8580 _000597_hash NULL
++_000598_hash tpm_write 3 50798 _000598_hash NULL
++_000599_hash trusted_instantiate 3 4710 _000599_hash NULL
++_000600_hash trusted_update 3 12664 _000600_hash NULL
++_000601_hash tt_changes_fill_buffer 3 62649 _000601_hash NULL
++_000602_hash tty_buffer_alloc 2 45437 _000602_hash NULL
++_000603_hash __tun_chr_ioctl 4 22300 _000603_hash NULL
++_000604_hash ubi_more_leb_change_data 4 63534 _000604_hash NULL
++_000605_hash ubi_more_update_data 4 39189 _000605_hash NULL
++_000606_hash ubi_resize_volume 2 50172 _000606_hash NULL
++_000607_hash udf_alloc_i_data 2 35786 _000607_hash NULL
++_000608_hash uea_idma_write 3 64139 _000608_hash NULL
++_000609_hash uea_request 4 47613 _000609_hash NULL
++_000610_hash uea_send_modem_cmd 3 3888 _000610_hash NULL
++_000611_hash uio_write 3 43202 _000611_hash NULL
++_000612_hash um_idi_write 3 18293 _000612_hash NULL
++_000613_hash us122l_ctl_msg 8 13330 _000613_hash NULL
++_000614_hash usb_alloc_urb 1 43436 _000614_hash NULL
++_000615_hash usblp_new_writeurb 2 22894 _000615_hash NULL
++_000616_hash usblp_write 3 23178 _000616_hash NULL
++_000617_hash usbtest_alloc_urb 3-5 34446 _000617_hash NULL
++_000619_hash usbtmc_write 3 64340 _000619_hash NULL
++_000620_hash user_instantiate 3 26131 _000620_hash NULL
++_000621_hash user_update 3 41332 _000621_hash NULL
++_000622_hash uvc_simplify_fraction 3 31303 _000622_hash NULL
++_000623_hash uwb_rc_cmd_done 4 35892 _000623_hash NULL
++_000624_hash uwb_rc_neh_grok_event 3 55799 _000624_hash NULL
++_000625_hash v9fs_alloc_rdir_buf 2 42150 _000625_hash NULL
++_000626_hash __vb2_perform_fileio 3 63033 _000626_hash NULL
++_000627_hash vc_do_resize 3-4 48842 _000627_hash NULL
++_000629_hash vcs_write 3 3910 _000629_hash NULL
++_000630_hash vfd_write 3 14717 _000630_hash NULL
++_000631_hash vga_arb_write 3 36112 _000631_hash NULL
++_000632_hash vga_switcheroo_debugfs_write 3 33984 _000632_hash NULL
++_000633_hash vhci_get_user 3 45039 _000633_hash NULL
++_000634_hash video_proc_write 3 6724 _000634_hash NULL
++_000635_hash vlsi_alloc_ring 3-4 57003 _000635_hash NULL
++_000637_hash __vmalloc 1 61168 _000637_hash NULL
++_000638_hash vmalloc_32 1 1135 _000638_hash NULL
++_000639_hash vmalloc_32_user 1 37519 _000639_hash NULL
++_000640_hash vmalloc_exec 1 36132 _000640_hash NULL
++_000641_hash vmalloc_node 1 58700 _000641_hash NULL
++_000642_hash __vmalloc_node_flags 1 30352 _000642_hash NULL
++_000643_hash vmalloc_user 1 32308 _000643_hash NULL
++_000644_hash vol_cdev_direct_write 3 20751 _000644_hash NULL
++_000645_hash vp_request_msix_vectors 2 28849 _000645_hash NULL
++_000646_hash vring_add_indirect 3-4 20737 _000646_hash NULL
++_000648_hash vring_new_virtqueue 1 9671 _000648_hash NULL
++_000649_hash vxge_os_dma_malloc 2 46184 _000649_hash NULL
++_000650_hash vxge_os_dma_malloc_async 3 56348 _000650_hash NULL
++_000651_hash wdm_write 3 53735 _000651_hash NULL
++_000652_hash wiimote_hid_send 3 48528 _000652_hash NULL
++_000653_hash wl1273_fm_fops_write 3 60621 _000653_hash NULL
++_000654_hash wlc_phy_loadsampletable_nphy 3 64367 _000654_hash NULL
++_000655_hash write 3 62671 _000655_hash NULL
++_000656_hash write_flush 3 50803 _000656_hash NULL
++_000657_hash write_rio 3 54837 _000657_hash NULL
++_000658_hash x25_asy_change_mtu 2 26928 _000658_hash NULL
++_000659_hash xdi_copy_from_user 4 8395 _000659_hash NULL
++_000660_hash xfrm_dst_alloc_copy 3 3034 _000660_hash NULL
++_000661_hash xfrm_user_policy 4 62573 _000661_hash NULL
++_000662_hash xfs_attrmulti_attr_set 4 59346 _000662_hash NULL
++_000663_hash xfs_handle_to_dentry 3 12135 _000663_hash NULL
++_000664_hash __xip_file_write 3 2733 _000664_hash NULL
++_000665_hash xprt_rdma_allocate 2 31372 _000665_hash NULL
++_000666_hash zd_usb_iowrite16v_async 3 23984 _000666_hash NULL
++_000667_hash zd_usb_read_fw 4 22049 _000667_hash NULL
++_000668_hash zerocopy_sg_from_iovec 3 11828 _000668_hash NULL
++_000669_hash zoran_write 3 22404 _000669_hash NULL
++_000671_hash acpi_ex_allocate_name_string 2 7685 _000671_hash NULL
++_000672_hash acpi_os_allocate_zeroed 1 37422 _000672_hash NULL
++_000673_hash acpi_ut_initialize_buffer 2 47143 _002314_hash NULL nohasharray
++_000674_hash ad7879_spi_xfer 3 36311 _000674_hash NULL
++_000675_hash add_new_gdb 3 27643 _000675_hash NULL
++_000676_hash add_numbered_child 5 14273 _000676_hash NULL
++_000677_hash add_res_range 4 21310 _000677_hash NULL
++_000678_hash addtgt 3 54703 _000678_hash NULL
++_000679_hash add_uuid 4 49831 _000679_hash NULL
++_000680_hash afs_cell_alloc 2 24052 _000680_hash NULL
++_000681_hash aggr_recv_addba_req_evt 4 38037 _000681_hash NULL
++_000682_hash agp_create_memory 1 1075 _000682_hash NULL
++_000683_hash agp_create_user_memory 1 62955 _000683_hash NULL
++_000684_hash alg_setsockopt 5 20985 _000684_hash NULL
++_000685_hash alloc_async 1 14208 _000685_hash NULL
++_000686_hash ___alloc_bootmem_nopanic 1 53626 _000686_hash NULL
++_000687_hash alloc_buf 1 34532 _000687_hash NULL
++_000688_hash alloc_chunk 1 49575 _000688_hash NULL
++_000689_hash alloc_context 1 41283 _000689_hash NULL
++_000690_hash alloc_ctrl_packet 1 44667 _000690_hash NULL
++_000691_hash alloc_data_packet 1 46698 _000691_hash NULL
++_000692_hash alloc_dca_provider 2 59670 _000692_hash NULL
++_000693_hash __alloc_dev_table 2 54343 _000693_hash NULL
++_000694_hash alloc_ep 1 17269 _000694_hash NULL
++_000695_hash __alloc_extent_buffer 3 15093 _000695_hash NULL
++_000696_hash alloc_group_attrs 2 9194 _000719_hash NULL nohasharray
++_000697_hash alloc_large_system_hash 2 64490 _000697_hash NULL
++_000698_hash alloc_netdev_mqs 1 30030 _000698_hash NULL
++_000699_hash __alloc_objio_seg 1 7203 _000699_hash NULL
++_000700_hash alloc_ring 2-4 15345 _000700_hash NULL
++_000701_hash alloc_ring 2-4 39151 _000701_hash NULL
++_000704_hash alloc_session 1-2 64171 _000704_hash NULL
++_000708_hash alloc_smp_req 1 51337 _000708_hash NULL
++_000709_hash alloc_smp_resp 1 3566 _000709_hash NULL
++_000710_hash alloc_ts_config 1 45775 _000710_hash NULL
++_000711_hash alloc_upcall 2 62186 _000711_hash NULL
++_000712_hash altera_drscan 2 48698 _000712_hash NULL
++_000713_hash altera_irscan 2 62396 _000713_hash NULL
++_000714_hash altera_set_dr_post 2 54291 _000714_hash NULL
++_000715_hash altera_set_dr_pre 2 64862 _000715_hash NULL
++_000716_hash altera_set_ir_post 2 20948 _000716_hash NULL
++_000717_hash altera_set_ir_pre 2 54103 _000717_hash NULL
++_000718_hash altera_swap_dr 2 50090 _000718_hash NULL
++_000719_hash altera_swap_ir 2 9194 _000719_hash &_000696_hash
++_000720_hash amd_create_gatt_pages 1 20537 _000720_hash NULL
++_000721_hash aoechr_write 3 62883 _001352_hash NULL nohasharray
++_000722_hash applesmc_create_nodes 2 49392 _000722_hash NULL
++_000723_hash array_zalloc 1-2 7519 _000723_hash NULL
++_000725_hash arvo_sysfs_read 6 31617 _000725_hash NULL
++_000726_hash arvo_sysfs_write 6 3311 _000726_hash NULL
++_000727_hash asd_store_update_bios 4 10165 _000727_hash NULL
++_000728_hash ata_host_alloc 2 46094 _000728_hash NULL
++_000729_hash atalk_sendmsg 4 21677 _000729_hash NULL
++_000730_hash ath6kl_cfg80211_connect_event 7-9-8 13443 _000730_hash NULL
++_000731_hash ath6kl_mgmt_tx 9 21153 _000731_hash NULL
++_000732_hash ath6kl_wmi_roam_tbl_event_rx 3 43440 _000732_hash NULL
++_000733_hash ath6kl_wmi_send_mgmt_cmd 7 17347 _000733_hash NULL
++_000734_hash ath_descdma_setup 5 12257 _000734_hash NULL
++_000735_hash ath_rx_edma_init 2 65483 _000735_hash NULL
++_000736_hash ati_create_gatt_pages 1 4722 _000736_hash NULL
++_000737_hash au0828_init_isoc 2-3 61917 _000737_hash NULL
++_000739_hash audit_init_entry 1 38644 _000739_hash NULL
++_000740_hash ax25_sendmsg 4 62770 _000740_hash NULL
++_000741_hash b1_alloc_card 1 36155 _000741_hash NULL
++_000742_hash b43_nphy_load_samples 3 36481 _000742_hash NULL
++_000743_hash bio_copy_user_iov 4 37660 _000743_hash NULL
++_000744_hash __bio_map_kern 2-3 47379 _000744_hash NULL
++_000746_hash blk_register_region 1-2 51424 _000746_hash NULL
++_000748_hash bm_entry_write 3 28338 _000748_hash NULL
++_000749_hash bm_realloc_pages 2 9431 _000749_hash NULL
++_000750_hash bm_register_write 3 9893 _000750_hash &_000569_hash
++_000751_hash bm_status_write 3 12964 _000751_hash NULL
++_000752_hash br_mdb_rehash 2 42643 _000752_hash NULL
++_000753_hash btrfs_copy_from_user 3 43806 _000753_hash NULL
++_000754_hash btrfs_insert_delayed_dir_index 4 63720 _000754_hash NULL
++_000755_hash __btrfs_map_block 3 49839 _000755_hash NULL
++_000756_hash __c4iw_init_resource_fifo 3 8334 _000756_hash NULL
++_000757_hash cache_downcall 3 13666 _000757_hash NULL
++_000758_hash cache_slow_downcall 2 8570 _000758_hash NULL
++_000759_hash ca_extend 2 64541 _000759_hash NULL
++_000760_hash caif_seqpkt_sendmsg 4 22961 _000760_hash NULL
++_000761_hash caif_stream_sendmsg 4 9110 _000761_hash NULL
++_000762_hash carl9170_cmd_buf 3 950 _000762_hash NULL
++_000763_hash cdev_add 2-3 38176 _000763_hash NULL
++_000765_hash cdrom_read_cdda 4 50478 _000765_hash NULL
++_000766_hash ceph_dns_resolve_name 1 62488 _000766_hash NULL
++_000767_hash ceph_msgpool_get 2 54258 _000767_hash NULL
++_000768_hash cfg80211_connect_result 4-6 56515 _000768_hash NULL
++_000770_hash cfg80211_disconnected 4 57 _000770_hash NULL
++_000771_hash cfg80211_inform_bss 8 19332 _000771_hash NULL
++_000772_hash cfg80211_inform_bss_frame 4 41078 _000772_hash NULL
++_000773_hash cfg80211_mlme_register_mgmt 5 19852 _000773_hash NULL
++_000774_hash cfg80211_roamed_bss 4-6 50198 _000774_hash NULL
++_000776_hash cifs_readdata_alloc 1 50318 _000776_hash NULL
++_000777_hash cifs_readv_from_socket 3 19109 _000777_hash NULL
++_000778_hash cifs_writedata_alloc 1 32880 _000778_hash NULL
++_000779_hash cnic_alloc_dma 3 34641 _000779_hash NULL
++_000780_hash configfs_write_file 3 61621 _000780_hash NULL
++_000781_hash construct_key 3 11329 _000781_hash NULL
++_000782_hash context_alloc 3 24645 _000782_hash NULL
++_000783_hash copy_to_user 3 57835 _000783_hash NULL
++_000784_hash create_attr_set 1 22861 _000784_hash NULL
++_000785_hash create_bounce_buffer 3 39155 _000785_hash NULL
++_000786_hash create_gpadl_header 2 19064 _000786_hash NULL
++_000787_hash _create_sg_bios 4 31244 _000787_hash NULL
++_000788_hash cryptd_alloc_instance 2-3 18048 _000788_hash NULL
++_000790_hash crypto_ahash_setkey 3 55134 _000790_hash NULL
++_000791_hash crypto_alloc_instance2 3 25277 _000791_hash NULL
++_000792_hash crypto_shash_setkey 3 60483 _000792_hash NULL
++_000793_hash cx231xx_init_bulk 3-2 47024 _000793_hash NULL
++_000794_hash cx231xx_init_isoc 2-3 56453 _000794_hash NULL
++_000796_hash cx231xx_init_vbi_isoc 2-3 28053 _000796_hash NULL
++_000798_hash cxgb_alloc_mem 1 24007 _000798_hash NULL
++_000799_hash cxgbi_device_portmap_create 3 25747 _000799_hash NULL
++_000800_hash cxgbi_device_register 1-2 36746 _000800_hash NULL
++_000802_hash __cxio_init_resource_fifo 3 23447 _000802_hash NULL
++_000803_hash dccp_sendmsg 4 56058 _000803_hash NULL
++_000804_hash ddp_make_gl 1 12179 _000804_hash NULL
++_000805_hash depth_write 3 3021 _000805_hash NULL
++_000806_hash dev_irnet_write 3 11398 _000806_hash NULL
++_000807_hash dev_set_alias 3 50084 _000807_hash NULL
++_000808_hash dev_write 3 7708 _000808_hash NULL
++_000809_hash dfs_global_file_write 3 6112 _000809_hash NULL
++_000810_hash dgram_sendmsg 4 45679 _000810_hash NULL
++_000811_hash disconnect 4 32521 _000811_hash NULL
++_000812_hash dma_attach 6-7 50831 _000812_hash NULL
++_000814_hash dn_sendmsg 4 38390 _000814_hash NULL
++_000815_hash do_dccp_setsockopt 5 54377 _000815_hash NULL
++_000816_hash do_jffs2_setxattr 5 25910 _000816_hash NULL
++_000817_hash do_msgsnd 4 1387 _000817_hash NULL
++_000818_hash do_raw_setsockopt 5 55215 _000818_hash NULL
++_000819_hash do_readv_writev 4 51849 _000819_hash NULL
++_000820_hash do_sync 1 9604 _000820_hash NULL
++_000821_hash dup_array 3 33551 _000821_hash NULL
++_000822_hash dvb_audio_write 3 51275 _000822_hash NULL
++_000823_hash dvb_ca_en50221_init 4 45718 _000823_hash NULL
++_000824_hash dvb_video_write 3 754 _000824_hash NULL
++_000825_hash econet_sendmsg 4 51430 _000825_hash NULL
++_000826_hash ecryptfs_decode_and_decrypt_filename 5 10379 _000826_hash NULL
++_000827_hash ecryptfs_encrypt_and_encode_filename 6 2109 _000827_hash NULL
++_000828_hash ecryptfs_send_message_locked 2 31801 _000828_hash NULL
++_000829_hash edac_device_alloc_ctl_info 1 5941 _000829_hash NULL
++_000830_hash edac_mc_alloc 1 54846 _000830_hash NULL
++_000831_hash edac_pci_alloc_ctl_info 1 63388 _000831_hash NULL
++_000832_hash efivar_create_sysfs_entry 2 19485 _000832_hash NULL
++_000833_hash em28xx_alloc_isoc 4 46892 _000833_hash NULL
++_000834_hash enable_write 3 30456 _000834_hash NULL
++_000835_hash enclosure_register 3 57412 _000835_hash NULL
++_000836_hash ext4_kvzalloc 1 47605 _000836_hash NULL
++_000837_hash extend_netdev_table 2 31680 _000837_hash NULL
++_000838_hash __feat_register_sp 6 64712 _000838_hash NULL
++_000839_hash __ffs_ep0_read_events 3 48868 _000839_hash NULL
++_000840_hash ffs_ep0_write 3 9438 _000840_hash NULL
++_000841_hash ffs_epfile_read 3 18775 _000841_hash NULL
++_000842_hash ffs_epfile_write 3 48014 _000842_hash NULL
++_000843_hash fib_info_hash_alloc 1 9075 _000843_hash NULL
++_000844_hash fillonedir 3 41746 _000844_hash NULL
++_000845_hash flexcop_device_kmalloc 1 54793 _000845_hash NULL
++_000846_hash frame_alloc 4 15981 _000846_hash NULL
++_000847_hash fw_node_create 2 9559 _000847_hash NULL
++_000848_hash garmin_read_process 3 27509 _000848_hash NULL
++_000849_hash garp_request_join 4 7471 _000849_hash NULL
++_000850_hash get_derived_key 4 61100 _000850_hash NULL
++_000851_hash get_entry 4 16003 _000851_hash NULL
++_000852_hash get_free_de 2 33714 _000852_hash NULL
++_000853_hash get_new_cssid 2 51665 _000853_hash NULL
++_000854_hash getxattr 4 24398 _000854_hash NULL
++_000855_hash gspca_dev_probe2 4 59833 _000855_hash NULL
++_000856_hash hcd_alloc_coherent 5 55862 _000856_hash NULL
++_000857_hash hci_sock_sendmsg 4 37420 _000857_hash NULL
++_000858_hash hid_register_field 2-3 4874 _000858_hash NULL
++_000860_hash hid_report_raw_event 4 7024 _000860_hash NULL
++_000861_hash hpi_alloc_control_cache 1 35351 _000861_hash NULL
++_000862_hash hugetlbfs_read_actor 2-5-4 34547 _000862_hash NULL
++_000865_hash hvc_alloc 4 12579 _000865_hash NULL
++_000866_hash __hwahc_dev_set_key 5 46328 _000866_hash NULL
++_000867_hash i2400m_zrealloc_2x 3 54166 _001430_hash NULL nohasharray
++_000868_hash ib_alloc_device 1 26483 _000868_hash NULL
++_000869_hash ib_create_send_mad 5 1196 _000869_hash NULL
++_000870_hash ibmasm_new_command 2 25714 _000870_hash NULL
++_000871_hash ib_send_cm_drep 3 50186 _000871_hash NULL
++_000872_hash ib_send_cm_mra 4 60202 _000872_hash NULL
++_000873_hash ib_send_cm_rtu 3 63138 _000873_hash NULL
++_000874_hash ieee80211_key_alloc 3 19065 _000874_hash NULL
++_000875_hash ieee80211_mgmt_tx 9 46860 _000875_hash NULL
++_000876_hash ieee80211_send_probe_req 6 6924 _000876_hash NULL
++_000877_hash if_writecmd 2 815 _000877_hash NULL
++_000878_hash init_bch 1-2 64130 _000878_hash NULL
++_000880_hash init_ipath 1 48187 _000880_hash NULL
++_000881_hash init_list_set 2-3 39188 _000881_hash NULL
++_000883_hash init_q 4 132 _000883_hash NULL
++_000884_hash init_state 2 60165 _000884_hash NULL
++_000885_hash init_tag_map 3 57515 _000885_hash NULL
++_000886_hash input_ff_create 2 21240 _000886_hash NULL
++_000887_hash input_mt_init_slots 2 31183 _000887_hash NULL
++_000888_hash interfaces 2 38859 _000888_hash NULL
++_000889_hash ioat2_alloc_ring 2 11172 _000889_hash NULL
++_000890_hash ip_generic_getfrag 3-4 12187 _000890_hash NULL
++_000892_hash ipr_alloc_ucode_buffer 1 40199 _000892_hash NULL
++_000893_hash ip_set_alloc 1 57953 _000893_hash NULL
++_000894_hash ipv6_flowlabel_opt 3 58135 _001125_hash NULL nohasharray
++_000895_hash ipv6_renew_options 5 28867 _000895_hash NULL
++_000896_hash ipxrtr_route_packet 4 54036 _000896_hash NULL
++_000897_hash irda_sendmsg 4 4388 _000897_hash NULL
++_000898_hash irda_sendmsg_dgram 4 38563 _000898_hash NULL
++_000899_hash irda_sendmsg_ultra 4 42047 _000899_hash NULL
++_000900_hash irias_add_octseq_attrib 4 29983 _000900_hash NULL
++_000901_hash irq_alloc_generic_chip 2 26650 _000901_hash NULL
++_000902_hash irq_domain_add_linear 2 29236 _000902_hash NULL
++_000903_hash iscsi_alloc_session 3 49390 _000903_hash NULL
++_000904_hash iscsi_create_conn 2 50425 _000904_hash NULL
++_000905_hash iscsi_create_endpoint 1 15193 _000905_hash NULL
++_000906_hash iscsi_create_iface 5 38510 _000906_hash NULL
++_000907_hash iscsi_decode_text_input 4 58292 _000907_hash NULL
++_000908_hash iscsi_pool_init 2-4 54913 _000908_hash NULL
++_000910_hash iscsit_dump_data_payload 2 38683 _000910_hash NULL
++_000911_hash isdn_write 3 45863 _000911_hash NULL
++_000912_hash isku_receive 4 54130 _000912_hash NULL
++_000913_hash isku_send 4 41542 _000913_hash NULL
++_000914_hash islpci_mgt_transaction 5 23610 _000914_hash NULL
++_000915_hash iso_sched_alloc 1 13377 _002079_hash NULL nohasharray
++_000916_hash ivtv_v4l2_write 3 39226 _000916_hash NULL
++_000917_hash iwl_trans_txq_alloc 3 36147 _000917_hash NULL
++_000918_hash iwmct_fw_parser_init 4 37876 _000918_hash NULL
++_000919_hash iwm_notif_send 6 12295 _000919_hash NULL
++_000920_hash iwm_ntf_calib_res 3 11686 _000920_hash NULL
++_000921_hash iwm_umac_set_config_var 4 17320 _000921_hash NULL
++_000922_hash ixgbe_alloc_q_vector 3-5 45428 _000922_hash NULL
++_000924_hash jbd2_journal_init_revoke 2 51088 _000924_hash NULL
++_000925_hash jffs2_write_dirent 5 37311 _000925_hash NULL
++_000926_hash journal_init_revoke 2 56933 _000926_hash NULL
++_000927_hash keyctl_instantiate_key 3 41855 _000927_hash NULL
++_000928_hash keyctl_instantiate_key_iov 3 16969 _000928_hash NULL
++_000929_hash __kfifo_from_user 3 20399 _000929_hash NULL
++_000930_hash kimage_crash_alloc 3 3233 _000930_hash NULL
++_000931_hash kimage_normal_alloc 3 31140 _000931_hash NULL
++_000932_hash kmem_realloc 2 37489 _000932_hash NULL
++_000933_hash kmem_zalloc 1 11510 _000933_hash NULL
++_000934_hash koneplus_send 4 18226 _000934_hash NULL
++_000935_hash koneplus_sysfs_read 6 42792 _000935_hash NULL
++_000936_hash kovaplus_send 4 10009 _000936_hash NULL
++_000937_hash kvm_read_guest_page_mmu 6 37611 _000937_hash NULL
++_000938_hash kvm_set_irq_routing 3 48704 _000938_hash NULL
++_000939_hash kvm_write_guest_cached 4 11106 _000939_hash NULL
++_000940_hash kvm_write_guest_page 5 63555 _000940_hash NULL
++_000941_hash l2cap_skbuff_fromiovec 3-4 35003 _000941_hash NULL
++_000943_hash l2tp_ip_sendmsg 4 50411 _000943_hash NULL
++_000944_hash l2tp_session_create 1 25286 _000944_hash NULL
++_000945_hash lc_create 3 48662 _000945_hash NULL
++_000946_hash leaf_dealloc 3 29566 _000946_hash NULL
++_000947_hash linear_conf 2 23485 _000947_hash NULL
++_000948_hash lirc_buffer_init 2-3 53282 _000948_hash NULL
++_000950_hash llc_ui_sendmsg 4 24987 _000950_hash NULL
++_000951_hash lpfc_sli4_queue_alloc 3 62646 _000951_hash NULL
++_000952_hash mce_request_packet 3 1073 _000952_hash NULL
++_000953_hash mdiobus_alloc_size 1 52259 _000953_hash NULL
++_000954_hash media_entity_init 2-4 15870 _001556_hash NULL nohasharray
++_000956_hash memstick_alloc_host 1 142 _000956_hash NULL
++_000957_hash mesh_table_alloc 1 22305 _000957_hash NULL
++_000958_hash mfd_add_devices 4 56753 _000958_hash NULL
++_000959_hash mISDN_sock_sendmsg 4 41035 _000959_hash NULL
++_000960_hash mmc_alloc_host 1 48097 _000960_hash NULL
++_000961_hash mmc_test_alloc_mem 3 28102 _000961_hash NULL
++_000962_hash mpi_alloc 1 18094 _000962_hash NULL
++_000963_hash mpihelp_mul_karatsuba_case 5-3 23918 _000963_hash NULL
++_000964_hash mpihelp_mul_n 4 16405 _000964_hash NULL
++_000965_hash mpi_set_bit 2 15104 _000965_hash NULL
++_000966_hash mpi_set_highbit 2 37327 _001420_hash NULL nohasharray
++_000967_hash mtd_concat_create 2 14416 _000967_hash NULL
++_000968_hash mvumi_alloc_mem_resource 3 47750 _000968_hash NULL
++_000969_hash mwifiex_11n_create_rx_reorder_tbl 4 63806 _000969_hash NULL
++_000970_hash mwifiex_alloc_sdio_mpa_buffers 2-3 60961 _000970_hash NULL
++_000972_hash mwl8k_cmd_set_beacon 4 23110 _000972_hash NULL
++_000973_hash neigh_hash_alloc 1 17595 _000973_hash NULL
++_000974_hash netlink_sendmsg 4 33708 _001172_hash NULL nohasharray
++_000975_hash netxen_alloc_sds_rings 2 13417 _000975_hash NULL
++_000976_hash new_bind_ctl 2 35324 _000976_hash NULL
++_000977_hash new_dir 3 31919 _000977_hash NULL
++_000978_hash new_tape_buffer 2 32866 _000978_hash NULL
++_000979_hash nfc_llcp_build_tlv 3 19536 _000979_hash NULL
++_000980_hash nfc_llcp_send_i_frame 3 59130 _000980_hash NULL
++_000981_hash nfs4_alloc_slots 1 2454 _000981_hash NULL
++_000982_hash nfsctl_transaction_write 3 64800 _000982_hash NULL
++_000983_hash nfs_idmap_request_key 3 30208 _000983_hash NULL
++_000984_hash nfs_readdata_alloc 1 9990 _000984_hash NULL
++_000985_hash nfs_writedata_alloc 1 62868 _000985_hash NULL
++_000986_hash nl_pid_hash_zalloc 1 23314 _000986_hash NULL
++_000987_hash nr_sendmsg 4 53656 _000987_hash NULL
++_000988_hash nsm_create_handle 4 38060 _000988_hash NULL
++_000989_hash ntfs_copy_from_user_iovec 3-6 49829 _000989_hash NULL
++_000991_hash ntfs_file_buffered_write 4-6 41442 _000991_hash NULL
++_000993_hash __ntfs_malloc 1 34022 _000993_hash NULL
++_000994_hash nvme_alloc_queue 3 46865 _000994_hash NULL
++_000995_hash ocfs2_acl_from_xattr 2 21604 _000995_hash NULL
++_000996_hash ocfs2_control_message 3 19564 _000996_hash NULL
++_000997_hash opera1_usb_i2c_msgxfer 4 64521 _000997_hash NULL
++_000998_hash _ore_get_io_state 3 2166 _000998_hash NULL
++_000999_hash orig_hash_add_if 2 53676 _000999_hash NULL
++_001000_hash orig_hash_del_if 2 45080 _001000_hash NULL
++_001001_hash orinoco_set_key 5-7 17878 _001001_hash NULL
++_001003_hash osdmap_set_max_osd 2 57630 _001003_hash NULL
++_001004_hash _osd_realloc_seg 3 54352 _001004_hash NULL
++_001005_hash OSDSetBlock 2-4 38986 _001005_hash NULL
++_001007_hash osst_execute 7-6 17607 _001007_hash NULL
++_001008_hash osst_write 3 31581 _001008_hash NULL
++_001009_hash otp_read 2-5-4 10594 _001009_hash NULL
++_001012_hash ovs_vport_alloc 1 33475 _001012_hash NULL
++_001013_hash packet_sendmsg_spkt 4 28885 _001013_hash NULL
++_001014_hash pair_device 4 61175 _001708_hash NULL nohasharray
++_001015_hash pccard_store_cis 6 18176 _001015_hash NULL
++_001016_hash pci_add_cap_save_buffer 3 3426 _001016_hash NULL
++_001017_hash pcnet32_realloc_rx_ring 3 36598 _001017_hash NULL
++_001018_hash pcnet32_realloc_tx_ring 3 38428 _001018_hash NULL
++_001019_hash pcpu_mem_zalloc 1 22948 _001019_hash NULL
++_001020_hash pep_sendmsg 4 62524 _001020_hash NULL
++_001021_hash pfkey_sendmsg 4 47394 _001021_hash NULL
++_001022_hash pidlist_resize 2 496 _001022_hash NULL
++_001023_hash pin_code_reply 4 46510 _001023_hash NULL
++_001024_hash ping_getfrag 3-4 8360 _001024_hash NULL
++_001026_hash pipe_set_size 2 5204 _001026_hash NULL
++_001027_hash pkt_bio_alloc 1 48284 _001027_hash NULL
++_001028_hash platform_create_bundle 4-6 12785 _001028_hash NULL
++_001030_hash play_iframe 3 8219 _001030_hash NULL
++_001031_hash pm8001_store_update_fw 4 55716 _001031_hash NULL
++_001032_hash pmcraid_alloc_sglist 1 9864 _001032_hash NULL
++_001033_hash pn533_dep_link_up 5 7659 _001033_hash NULL
++_001034_hash pnp_alloc 1 24869 _001419_hash NULL nohasharray
++_001035_hash pn_sendmsg 4 12640 _001035_hash NULL
++_001036_hash pppoe_sendmsg 4 48039 _001036_hash NULL
++_001037_hash pppol2tp_sendmsg 4 56420 _001037_hash NULL
++_001038_hash process_vm_rw 3-5 47533 _001038_hash NULL
++_001040_hash process_vm_rw_single_vec 1-2 26213 _001040_hash NULL
++_001042_hash proc_write 3 51003 _001042_hash NULL
++_001043_hash profile_load 3 58267 _001043_hash NULL
++_001044_hash profile_remove 3 8556 _001044_hash NULL
++_001045_hash profile_replace 3 14652 _001045_hash NULL
++_001046_hash pscsi_get_bio 1 56103 _001046_hash NULL
++_001047_hash pyra_send 4 12061 _001047_hash NULL
++_001048_hash qc_capture 3 19298 _001048_hash NULL
++_001049_hash qla4xxx_alloc_work 2 44813 _001049_hash NULL
++_001050_hash qlcnic_alloc_msix_entries 2 46160 _001050_hash NULL
++_001051_hash qlcnic_alloc_sds_rings 2 26795 _001051_hash NULL
++_001052_hash queue_received_packet 5 9657 _001052_hash NULL
++_001053_hash raw_send_hdrinc 4 58803 _001053_hash NULL
++_001054_hash raw_sendmsg 4 23078 _001054_hash &_000022_hash
++_001055_hash rawsock_sendmsg 4 60010 _001055_hash NULL
++_001056_hash rawv6_send_hdrinc 3 35425 _001056_hash NULL
++_001057_hash rb_alloc 1 3102 _001057_hash NULL
++_001058_hash rbd_alloc_coll 1 33678 _001058_hash NULL
++_001059_hash rbd_create_rw_ops 2 4605 _001059_hash NULL
++_001060_hash rds_ib_inc_copy_to_user 3 55007 _001060_hash NULL
++_001061_hash rds_iw_inc_copy_to_user 3 29214 _001061_hash NULL
++_001062_hash rds_message_alloc 1 10517 _001062_hash NULL
++_001063_hash rds_message_copy_from_user 3 45510 _001063_hash NULL
++_001064_hash rds_message_inc_copy_to_user 3 26540 _001064_hash NULL
++_001065_hash redrat3_transmit_ir 3 64244 _001065_hash NULL
++_001066_hash regcache_rbtree_insert_to_block 5 58009 _001066_hash NULL
++_001067_hash _regmap_raw_write 4 42652 _001067_hash NULL
++_001068_hash regmap_register_patch 3 21681 _001068_hash NULL
++_001069_hash relay_alloc_page_array 1 52735 _001069_hash NULL
++_001070_hash remove_uuid 4 64505 _001070_hash NULL
++_001071_hash reshape_ring 2 29147 _001071_hash NULL
++_001072_hash RESIZE_IF_NEEDED 2 56286 _001072_hash NULL
++_001073_hash resize_stripes 2 61650 _001073_hash NULL
++_001074_hash rfcomm_sock_sendmsg 4 37661 _001074_hash NULL
++_001075_hash rose_sendmsg 4 20249 _001075_hash NULL
++_001076_hash rxrpc_send_data 5 21553 _001076_hash NULL
++_001077_hash rxrpc_setsockopt 5 50286 _001077_hash NULL
++_001078_hash saa7146_vmalloc_build_pgtable 2 19780 _001078_hash NULL
++_001079_hash saa7164_buffer_alloc_user 2 9627 _001079_hash NULL
++_001081_hash sco_send_frame 3 41815 _001081_hash NULL
++_001082_hash scsi_host_alloc 2 63041 _001082_hash NULL
++_001083_hash scsi_tgt_kspace_exec 8 9522 _001083_hash NULL
++_001084_hash sctp_sendmsg 4 61919 _001084_hash NULL
++_001085_hash sctp_setsockopt 5 44788 _001085_hash NULL
++_001086_hash sctp_setsockopt_connectx 3 6073 _001086_hash NULL
++_001087_hash sctp_setsockopt_connectx_old 3 22631 _001087_hash NULL
++_001088_hash sctp_tsnmap_init 2 36446 _001088_hash NULL
++_001089_hash sctp_user_addto_chunk 2-3 62047 _001089_hash NULL
++_001091_hash security_context_to_sid 2 19839 _001091_hash NULL
++_001092_hash security_context_to_sid_default 2 3492 _001092_hash NULL
++_001093_hash security_context_to_sid_force 2 20724 _001093_hash NULL
++_001094_hash selinux_transaction_write 3 59038 _001094_hash NULL
++_001095_hash sel_write_access 3 51704 _001095_hash NULL
++_001096_hash sel_write_create 3 11353 _001096_hash NULL
++_001097_hash sel_write_member 3 28800 _001097_hash NULL
++_001098_hash sel_write_relabel 3 55195 _001098_hash NULL
++_001099_hash sel_write_user 3 45060 _001099_hash NULL
++_001100_hash __seq_open_private 3 40715 _001100_hash NULL
++_001101_hash serverworks_create_gatt_pages 1 46582 _001101_hash NULL
++_001102_hash set_connectable 4 56458 _001102_hash NULL
++_001103_hash set_dev_class 4 39645 _001697_hash NULL nohasharray
++_001104_hash set_discoverable 4 48141 _001104_hash NULL
++_001105_hash setkey 3 14987 _001105_hash NULL
++_001106_hash set_le 4 30581 _001106_hash NULL
++_001107_hash set_link_security 4 4502 _001107_hash NULL
++_001108_hash set_local_name 4 55757 _001108_hash NULL
++_001109_hash set_powered 4 12129 _001109_hash NULL
++_001110_hash set_ssp 4 62411 _001110_hash NULL
++_001111_hash sg_build_sgat 3 60179 _001111_hash &_000305_hash
++_001112_hash sg_read_oxfer 3 51724 _001112_hash NULL
++_001113_hash shmem_xattr_set 4 11843 _001113_hash NULL
++_001114_hash simple_alloc_urb 3 60420 _001114_hash NULL
++_001115_hash sisusb_send_bridge_packet 2 11649 _001115_hash NULL
++_001116_hash sisusb_send_packet 2 20891 _001116_hash NULL
++_001117_hash skb_add_data_nocache 4 4682 _001117_hash NULL
++_001118_hash skb_copy_datagram_from_iovec 2-5-4 52014 _001118_hash NULL
++_001121_hash skb_copy_to_page_nocache 6 58624 _001121_hash NULL
++_001122_hash sk_chk_filter 2 42095 _001122_hash NULL
++_001123_hash skcipher_sendmsg 4 30290 _001123_hash NULL
++_001124_hash sl_change_mtu 2 7396 _001124_hash NULL
++_001125_hash slhc_init 1-2 58135 _001125_hash &_000894_hash
++_001127_hash sm501_create_subdev 3-4 48668 _001127_hash NULL
++_001129_hash smk_write_access 3 49561 _001129_hash NULL
++_001130_hash snapshot_write 3 28351 _001130_hash NULL
++_001131_hash snd_ac97_pcm_assign 2 30218 _001131_hash NULL
++_001132_hash snd_card_create 4 64418 _001411_hash NULL nohasharray
++_001133_hash snd_emux_create_port 3 42533 _001133_hash NULL
++_001134_hash snd_gus_dram_write 4 38784 _001134_hash NULL
++_001135_hash snd_midi_channel_alloc_set 1 28153 _001135_hash NULL
++_001136_hash _snd_pcm_lib_alloc_vmalloc_buffer 2 17820 _001136_hash NULL
++_001137_hash snd_pcm_oss_sync1 2 45298 _001137_hash NULL
++_001138_hash snd_pcm_oss_write 3 38108 _001138_hash NULL
++_001139_hash snd_pcm_plugin_build 5 25505 _001139_hash NULL
++_001140_hash snd_rawmidi_kernel_write 3 25106 _001140_hash NULL
++_001141_hash snd_rawmidi_write 3 28008 _001141_hash NULL
++_001142_hash snd_rme32_playback_copy 5 43732 _001142_hash NULL
++_001143_hash snd_rme96_playback_copy 5 13111 _001143_hash NULL
++_001144_hash snd_seq_device_new 4 31753 _001144_hash NULL
++_001145_hash snd_seq_oss_readq_new 2 14283 _001145_hash NULL
++_001146_hash snd_vx_create 4 40948 _001146_hash NULL
++_001147_hash sock_setsockopt 5 50088 _001147_hash NULL
++_001148_hash sound_write 3 5102 _001148_hash NULL
++_001149_hash _sp2d_alloc 1 16944 _001149_hash NULL
++_001150_hash spi_alloc_master 2 45223 _001150_hash NULL
++_001151_hash spidev_message 3 5518 _001151_hash NULL
++_001152_hash spi_register_board_info 2 35651 _001152_hash NULL
++_001153_hash squashfs_cache_init 2 41656 _001153_hash NULL
++_001154_hash squashfs_read_data 6 59440 _001154_hash NULL
++_001155_hash srp_alloc_iu 2 44227 _001155_hash NULL
++_001156_hash srp_iu_pool_alloc 2 17920 _001156_hash NULL
++_001157_hash srp_ring_alloc 2 26760 _001157_hash NULL
++_001159_hash start_isoc_chain 2 565 _001159_hash NULL
++_001160_hash stk_prepare_sio_buffers 2 57168 _001160_hash NULL
++_001161_hash store_iwmct_log_level 4 60209 _001161_hash NULL
++_001162_hash store_iwmct_log_level_fw 4 1974 _001162_hash NULL
++_001163_hash st_write 3 16874 _001163_hash NULL
++_001164_hash svc_pool_map_alloc_arrays 2 47181 _001164_hash NULL
++_001165_hash symtab_init 2 61050 _001165_hash NULL
++_001166_hash sys_bind 3 10799 _001166_hash NULL
++_001167_hash sys_connect 3 15291 _001167_hash NULL
++_001168_hash sys_flistxattr 3 41407 _001168_hash NULL
++_001169_hash sys_fsetxattr 4 49736 _001169_hash NULL
++_001170_hash sysfs_write_file 3 57116 _001170_hash NULL
++_001171_hash sys_ipc 3 4889 _001171_hash NULL
++_001172_hash sys_keyctl 4 33708 _001172_hash &_000974_hash
++_001173_hash sys_listxattr 3 27833 _001173_hash NULL
++_001174_hash sys_llistxattr 3 4532 _001174_hash NULL
++_001175_hash sys_lsetxattr 4 61177 _001175_hash NULL
++_001176_hash sys_mq_timedsend 3 57661 _001176_hash NULL
++_001177_hash sys_sched_setaffinity 2 32046 _001177_hash NULL
++_001178_hash sys_semop 3 39457 _001178_hash NULL
++_001179_hash sys_sendto 6 20809 _001179_hash NULL
++_001180_hash sys_setxattr 4 37880 _001180_hash NULL
++_001181_hash t4_alloc_mem 1 32342 _001181_hash NULL
++_001182_hash tcf_hash_create 4 54360 _001182_hash NULL
++_001183_hash __team_options_register 3 63941 _001183_hash NULL
++_001184_hash test_unaligned_bulk 3 52333 _001184_hash NULL
++_001185_hash tifm_alloc_adapter 1 10903 _001185_hash NULL
++_001186_hash timeout_write 3 50991 _001186_hash NULL
++_001187_hash tipc_link_send_sections_fast 4 37920 _001187_hash NULL
++_001188_hash tipc_subseq_alloc 1 5957 _001188_hash NULL
++_001189_hash tm6000_read_write_usb 7 50774 _001189_hash NULL
++_001190_hash tnode_alloc 1 49407 _001190_hash NULL
++_001191_hash tomoyo_commit_ok 2 20167 _001191_hash NULL
++_001192_hash tomoyo_scan_bprm 2-4 15642 _001192_hash NULL
++_001194_hash tps65910_i2c_write 3 39531 _001194_hash NULL
++_001195_hash ts_write 3 64336 _001195_hash NULL
++_001196_hash ttusb2_msg 4 3100 _001196_hash NULL
++_001197_hash tty_write 3 5494 _001197_hash NULL
++_001198_hash ubi_dbg_check_all_ff 4 59810 _001198_hash NULL
++_001199_hash ubi_dbg_check_write 5 48525 _001199_hash NULL
++_001200_hash ubifs_setxattr 4 59650 _001370_hash NULL nohasharray
++_001201_hash udf_sb_alloc_partition_maps 2 62313 _001201_hash NULL
++_001202_hash udplite_getfrag 3-4 14479 _001202_hash NULL
++_001204_hash ulong_write_file 3 26485 _001204_hash NULL
++_001205_hash unix_dgram_sendmsg 4 45699 _001205_hash NULL
++_001206_hash unix_stream_sendmsg 4 61455 _001206_hash NULL
++_001207_hash unlink_queued 3-4 645 _001207_hash NULL
++_001208_hash update_pmkid 4 2481 _001208_hash NULL
++_001209_hash usb_alloc_coherent 2 65444 _001209_hash NULL
++_001210_hash uvc_alloc_buffers 2 9656 _001210_hash NULL
++_001211_hash uvc_alloc_entity 3 20836 _001211_hash NULL
++_001212_hash v4l2_ctrl_new 7 38725 _001212_hash NULL
++_001213_hash v4l2_event_subscribe 3 19510 _001213_hash NULL
++_001214_hash vb2_read 3 42703 _001214_hash NULL
++_001215_hash vb2_write 3 31948 _001215_hash NULL
++_001216_hash vc_resize 2-3 3585 _001216_hash NULL
++_001218_hash __vhost_add_used_n 3 26554 _001218_hash NULL
++_001219_hash __videobuf_alloc_vb 1 27062 _001219_hash NULL
++_001220_hash videobuf_dma_init_kernel 3 6963 _001220_hash NULL
++_001221_hash virtqueue_add_buf 3-4 59470 _001221_hash NULL
++_001223_hash vmalloc 1 15464 _001223_hash NULL
++_001224_hash vmalloc_to_sg 2 58354 _001224_hash NULL
++_001225_hash vol_cdev_write 3 40915 _001225_hash NULL
++_001226_hash vxge_device_register 4 7752 _001226_hash NULL
++_001227_hash __vxge_hw_channel_allocate 3 55462 _001227_hash NULL
++_001228_hash vzalloc 1 47421 _001228_hash NULL
++_001229_hash vzalloc_node 1 23424 _001229_hash NULL
++_001230_hash wa_nep_queue 2 8858 _001230_hash NULL
++_001231_hash __wa_xfer_setup_segs 2 56725 _001231_hash NULL
++_001232_hash wiphy_new 2 2482 _001232_hash NULL
++_001233_hash wpan_phy_alloc 1 48056 _001233_hash NULL
++_001234_hash wusb_ccm_mac 7 32199 _001234_hash NULL
++_001235_hash x25_sendmsg 4 12487 _001235_hash NULL
++_001236_hash xfrm_hash_alloc 1 10997 _001236_hash NULL
++_001237_hash _xfs_buf_get_pages 2 46811 _001237_hash NULL
++_001238_hash xfs_da_buf_make 1 55845 _001238_hash NULL
++_001239_hash xfs_da_grow_inode_int 3 21785 _001239_hash NULL
++_001240_hash xfs_dir_cilookup_result 3 64288 _001240_hash NULL
++_001241_hash xfs_iext_add_indirect_multi 3 32400 _001241_hash NULL
++_001242_hash xfs_iext_inline_to_direct 2 12384 _001242_hash NULL
++_001243_hash xfs_iroot_realloc 2 46826 _001243_hash NULL
++_001244_hash xhci_alloc_stream_info 3 63902 _001244_hash NULL
++_001245_hash xlog_recover_add_to_trans 4 62839 _001245_hash NULL
++_001246_hash xprt_alloc 2 1475 _001246_hash NULL
++_001247_hash xt_alloc_table_info 1 57903 _001247_hash NULL
++_001248_hash _zd_iowrite32v_async_locked 3 39034 _001248_hash NULL
++_001249_hash zd_usb_iowrite16v 3 49744 _001249_hash NULL
++_001250_hash acpi_ds_build_internal_package_obj 3 58271 _001250_hash NULL
++_001251_hash acpi_system_read_event 3 55362 _001251_hash NULL
++_001252_hash acpi_ut_create_buffer_object 1 42030 _001252_hash NULL
++_001253_hash acpi_ut_create_package_object 1 17594 _001253_hash NULL
++_001254_hash acpi_ut_create_string_object 1 15360 _001254_hash NULL
++_001255_hash ad7879_spi_multi_read 3 8218 _001255_hash NULL
++_001256_hash add_child 4 45201 _001256_hash NULL
++_001257_hash add_port 2 54941 _001257_hash NULL
++_001258_hash adu_read 3 24177 _001258_hash NULL
++_001259_hash afs_cell_create 2 27346 _001259_hash NULL
++_001260_hash agp_generic_alloc_user 1 9470 _001260_hash NULL
++_001261_hash alloc_agpphysmem_i8xx 1 39427 _001261_hash NULL
++_001262_hash allocate_cnodes 1 5329 _001262_hash NULL
++_001263_hash ___alloc_bootmem 1 11410 _001263_hash NULL
++_001264_hash __alloc_bootmem_nopanic 1 65397 _001264_hash NULL
++_001265_hash alloc_bulk_urbs_generic 5 12127 _001265_hash NULL
++_001266_hash alloc_candev 1-2 7776 _001266_hash NULL
++_001268_hash ____alloc_ei_netdev 1 51475 _001268_hash NULL
++_001269_hash alloc_etherdev_mqs 1 36450 _001269_hash NULL
++_001270_hash alloc_extent_buffer 3 52824 _001270_hash NULL
++_001271_hash alloc_fcdev 1 18780 _001271_hash NULL
++_001272_hash alloc_fddidev 1 15382 _001272_hash NULL
++_001273_hash alloc_hippi_dev 1 51320 _001273_hash NULL
++_001274_hash alloc_irdadev 1 19140 _001274_hash NULL
++_001275_hash alloc_ltalkdev 1 38071 _001275_hash NULL
++_001276_hash alloc_one_pg_vec_page 1 10747 _001276_hash NULL
++_001277_hash alloc_orinocodev 1 21371 _001277_hash NULL
++_001279_hash alloc_trdev 1 16399 _001279_hash NULL
++_001280_hash async_setkey 3 35521 _001280_hash NULL
++_001281_hash ata_host_alloc_pinfo 3 17325 _001281_hash NULL
++_001284_hash ath6kl_connect_event 7-9-8 14267 _001284_hash NULL
++_001285_hash ath6kl_fwlog_block_read 3 49836 _001285_hash NULL
++_001286_hash ath6kl_fwlog_read 3 32101 _001286_hash NULL
++_001287_hash ath_rx_init 2 43564 _001287_hash NULL
++_001288_hash ath_tx_init 2 60515 _001288_hash NULL
++_001289_hash atm_get_addr 3 31221 _001289_hash NULL
++_001290_hash av7110_ipack_init 2 46655 _001290_hash NULL
++_001291_hash bdx_rxdb_create 1 46525 _001291_hash NULL
++_001292_hash bdx_tx_db_init 2 41719 _001292_hash NULL
++_001293_hash bio_map_kern 3 64751 _001293_hash NULL
++_001294_hash bits_to_user 3 47733 _001294_hash NULL
++_001295_hash __blk_queue_init_tags 2 9778 _001295_hash NULL
++_001296_hash blk_queue_resize_tags 2 28670 _001296_hash NULL
++_001297_hash blk_rq_map_user_iov 5 16772 _001297_hash NULL
++_001298_hash bm_init 2 13529 _001298_hash NULL
++_001299_hash brcmf_alloc_wdev 1 60347 _001299_hash NULL
++_001300_hash btrfs_insert_dir_item 4 59304 _001300_hash NULL
++_001301_hash btrfs_map_block 3 64379 _001301_hash NULL
++_001302_hash c4_add_card 3 54968 _001302_hash NULL
++_001303_hash cache_read 3 24790 _001303_hash NULL
++_001304_hash cache_write 3 13589 _001304_hash NULL
++_001305_hash calc_hmac 3 32010 _001305_hash NULL
++_001306_hash ccid_getsockopt_builtin_ccids 2 53634 _001306_hash NULL
++_001307_hash ceph_copy_page_vector_to_user 4 31270 _001307_hash NULL
++_001308_hash ceph_read_dir 3 17005 _001308_hash NULL
++_001309_hash cfg80211_roamed 5-7 32632 _001309_hash NULL
++_001311_hash ci_ll_init 3 12930 _001311_hash NULL
++_001312_hash coda_psdev_read 3 35029 _001312_hash NULL
++_001313_hash construct_key_and_link 4 8321 _001313_hash NULL
++_001314_hash copy_counters_to_user 5 17027 _001824_hash NULL nohasharray
++_001315_hash copy_entries_to_user 1 52367 _001315_hash NULL
++_001316_hash copy_from_buf 4 27308 _001316_hash NULL
++_001317_hash copy_oldmem_page 3 26164 _001317_hash NULL
++_001318_hash copy_to_user_fromio 3 57432 _001318_hash NULL
++_001319_hash cryptd_hash_setkey 3 42781 _001319_hash NULL
++_001320_hash crypto_authenc_esn_setkey 3 6985 _001320_hash NULL
++_001321_hash crypto_authenc_setkey 3 80 _001321_hash NULL
++_001322_hash cx18_copy_buf_to_user 4 22735 _001322_hash NULL
++_001324_hash cxgbi_ddp_reserve 4 30091 _001324_hash NULL
++_001325_hash datablob_hmac_append 3 40038 _001325_hash NULL
++_001326_hash datablob_hmac_verify 4 24786 _001326_hash NULL
++_001327_hash dataflash_read_fact_otp 3-2 33204 _001327_hash NULL
++_001328_hash dataflash_read_user_otp 3-2 14536 _001328_hash &_000201_hash
++_001329_hash dccp_feat_register_sp 5 17914 _001329_hash NULL
++_001330_hash ddb_input_read 3 9743 _001330_hash NULL
++_001331_hash dev_read 3 56369 _001331_hash NULL
++_001332_hash diva_os_copy_to_user 4 48508 _001332_hash NULL
++_001333_hash diva_os_malloc 2 16406 _001333_hash NULL
++_001334_hash dlm_dir_lookup 4 56662 _001334_hash NULL
++_001335_hash dm_vcalloc 1-2 16814 _001335_hash NULL
++_001337_hash do_proc_readlink 3 14096 _001337_hash NULL
++_001338_hash do_readlink 2 43518 _001338_hash NULL
++_001339_hash __do_replace 5 37227 _001339_hash NULL
++_001340_hash do_sigpending 2 9766 _001340_hash NULL
++_001341_hash drbd_setsockopt 5 16280 _001341_hash &_000371_hash
++_001342_hash dsp_buffer_alloc 2 11684 _001342_hash NULL
++_001343_hash dump_midi 3 51040 _001343_hash NULL
++_001344_hash dvb_dmxdev_set_buffer_size 2 55643 _001344_hash NULL
++_001345_hash dvb_dvr_set_buffer_size 2 9840 _001345_hash NULL
++_001346_hash dvb_ringbuffer_pkt_read_user 3-5 4303 _001346_hash NULL
++_001348_hash dvb_ringbuffer_read_user 3 56702 _001348_hash NULL
++_001349_hash ecryptfs_filldir 3 6622 _001349_hash NULL
++_001350_hash ecryptfs_readlink 3 40775 _001350_hash NULL
++_001351_hash ecryptfs_send_message 2 18322 _001351_hash NULL
++_001352_hash em28xx_init_isoc 4 62883 _001352_hash &_000721_hash
++_001353_hash et61x251_read 3 25420 _001353_hash NULL
++_001354_hash ext4_add_new_descs 3 19509 _001354_hash NULL
++_001355_hash fat_ioctl_filldir 3 36621 _001355_hash NULL
++_001356_hash fd_copyout 3 59323 _001356_hash NULL
++_001357_hash f_hidg_read 3 6238 _001357_hash NULL
++_001358_hash filldir 3 55137 _001358_hash NULL
++_001359_hash filldir64 3 46469 _001359_hash NULL
++_001360_hash fops_read 3 40672 _001360_hash NULL
++_001361_hash from_buffer 3 18625 _001361_hash NULL
++_001362_hash fsm_init 2 16134 _001362_hash NULL
++_001363_hash get_subdir 3 62581 _001363_hash NULL
++_001364_hash gspca_dev_probe 4 2570 _001364_hash NULL
++_001365_hash handle_received_packet 3 22457 _001365_hash NULL
++_001366_hash hash_setkey 3 48310 _001366_hash NULL
++_001367_hash hdlcdrv_register 2 6792 _001367_hash NULL
++_001368_hash hdpvr_read 3 9273 _001368_hash NULL
++_001369_hash hid_input_report 4 32458 _001369_hash NULL
++_001370_hash hidraw_read 3 59650 _001370_hash &_001200_hash
++_001371_hash HiSax_readstatus 2 15752 _001371_hash NULL
++_001373_hash __hwahc_op_set_gtk 4 42038 _001373_hash NULL
++_001374_hash __hwahc_op_set_ptk 5 36510 _001374_hash NULL
++_001375_hash ib_copy_to_udata 3 27525 _001375_hash NULL
++_001376_hash idetape_chrdev_read 3 2097 _001376_hash NULL
++_001377_hash ieee80211_alloc_hw 1 43829 _001377_hash NULL
++_001378_hash ieee80211_bss_info_update 4 13991 _001378_hash NULL
++_001379_hash ilo_read 3 32531 _001379_hash NULL
++_001380_hash init_map_ipmac 3-4 63896 _001380_hash NULL
++_001382_hash init_tid_tabs 2-4-3 13252 _001382_hash NULL
++_001385_hash iowarrior_read 3 53483 _001385_hash NULL
++_001386_hash ipv6_getsockopt_sticky 5 56711 _001386_hash NULL
++_001387_hash ipwireless_send_packet 4 8328 _001387_hash NULL
++_001388_hash ipx_sendmsg 4 1362 _001388_hash NULL
++_001389_hash iscsi_conn_setup 2 35159 _001389_hash NULL
++_001390_hash iscsi_create_session 3 51647 _001390_hash NULL
++_001391_hash iscsi_host_alloc 2 36671 _001391_hash NULL
++_001392_hash iscsi_session_setup 4-5 196 _001392_hash NULL
++_001394_hash iscsit_find_cmd_from_itt_or_dump 3 17194 _001701_hash NULL nohasharray
++_001395_hash isdn_ppp_read 4 50356 _001395_hash NULL
++_001396_hash isku_sysfs_read 6 58806 _001396_hash NULL
++_001397_hash isku_sysfs_write 6 49767 _001397_hash NULL
++_001398_hash iso_alloc_urb 4-5 45206 _001398_hash NULL
++_001400_hash ivtv_copy_buf_to_user 4 6159 _001400_hash NULL
++_001401_hash iwm_rx_handle 3 24899 _001401_hash NULL
++_001402_hash iwm_wdev_alloc 1 38415 _001402_hash NULL
++_001403_hash jbd2_alloc 1 41359 _001403_hash NULL
++_001404_hash jffs2_do_link 6 42048 _001404_hash NULL
++_001405_hash jffs2_do_unlink 4 62020 _001405_hash NULL
++_001406_hash jffs2_security_setxattr 4 62107 _001406_hash NULL
++_001407_hash jffs2_trusted_setxattr 4 17048 _001407_hash NULL
++_001408_hash jffs2_user_setxattr 4 10182 _001408_hash NULL
++_001409_hash kernel_setsockopt 5 35913 _001409_hash NULL
++_001410_hash keyctl_describe_key 3 36853 _001410_hash NULL
++_001411_hash keyctl_get_security 3 64418 _001411_hash &_001132_hash
++_001412_hash keyring_read 3 13438 _001412_hash NULL
++_001413_hash kfifo_copy_to_user 3 20646 _001413_hash NULL
++_001414_hash kmem_zalloc_large 1 56128 _001414_hash NULL
++_001415_hash kmp_init 2 41373 _001415_hash NULL
++_001416_hash koneplus_sysfs_write 6 35993 _001416_hash NULL
++_001417_hash kvm_clear_guest_page 4 2308 _001417_hash NULL
++_001418_hash kvm_read_nested_guest_page 5 13337 _001418_hash NULL
++_001419_hash l2cap_create_basic_pdu 3 24869 _001419_hash &_001034_hash
++_001420_hash l2cap_create_connless_pdu 3 37327 _001420_hash &_000966_hash
++_001421_hash l2cap_create_iframe_pdu 3 51801 _001421_hash NULL
++_001422_hash __lgwrite 4 57669 _001422_hash NULL
++_001423_hash libfc_host_alloc 2 7917 _001423_hash NULL
++_001424_hash llcp_sock_sendmsg 4 1092 _001424_hash NULL
++_001425_hash macvtap_get_user 4 28185 _001425_hash NULL
++_001426_hash mcam_v4l_read 3 36513 _001426_hash NULL
++_001427_hash mce_async_out 3 58056 _001427_hash NULL
++_001428_hash mce_flush_rx_buffer 2 14976 _001428_hash NULL
++_001429_hash mdc800_device_read 3 22896 _001429_hash NULL
++_001430_hash memcpy_toiovec 3 54166 _001430_hash &_000867_hash
++_001431_hash memcpy_toiovecend 3-4 19736 _001431_hash NULL
++_001433_hash mgt_set_varlen 4 60916 _001433_hash NULL
++_001434_hash mlx4_en_create_rx_ring 3 62498 _001434_hash NULL
++_001435_hash mlx4_en_create_tx_ring 4 48501 _001435_hash NULL
++_001436_hash mon_bin_get_event 4 52863 _001436_hash NULL
++_001437_hash mousedev_read 3 47123 _001437_hash NULL
++_001438_hash move_addr_to_user 2 2868 _001438_hash NULL
++_001439_hash mpihelp_mul 5-3 27805 _001439_hash NULL
++_001441_hash mpi_lshift_limbs 2 9337 _001441_hash NULL
++_001442_hash msnd_fifo_alloc 2 23179 _001442_hash NULL
++_001443_hash mtdswap_init 2 55719 _001443_hash NULL
++_001444_hash neigh_hash_grow 2 17283 _001444_hash NULL
++_001445_hash nfs4_realloc_slot_table 2 22859 _001445_hash NULL
++_001446_hash nfs_idmap_get_key 2 39616 _001446_hash NULL
++_001447_hash nsm_get_handle 4 52089 _001447_hash NULL
++_001448_hash ntfs_malloc_nofs 1 49572 _001448_hash NULL
++_001449_hash ntfs_malloc_nofs_nofail 1 63631 _001449_hash NULL
++_001450_hash nvme_create_queue 3 170 _001450_hash NULL
++_001451_hash ocfs2_control_write 3 54737 _001451_hash NULL
++_001452_hash orinoco_add_extscan_result 3 18207 _001452_hash NULL
++_001454_hash override_release 2 52032 _001454_hash NULL
++_001455_hash packet_snd 3 13634 _001455_hash NULL
++_001456_hash pcbit_stat 2 27364 _001456_hash NULL
++_001457_hash pcpu_extend_area_map 2 12589 _001457_hash NULL
++_001458_hash pg_read 3 17276 _001458_hash NULL
++_001459_hash picolcd_debug_eeprom_read 3 14549 _001459_hash NULL
++_001460_hash pkt_alloc_packet_data 1 37928 _001460_hash NULL
++_001461_hash pmcraid_build_passthrough_ioadls 2 62034 _001461_hash NULL
++_001462_hash pms_capture 4 27142 _001462_hash NULL
++_001463_hash posix_clock_register 2 5662 _001463_hash NULL
++_001464_hash printer_read 3 54851 _001464_hash NULL
++_001465_hash __proc_file_read 3 54978 _001465_hash NULL
++_001466_hash pt_read 3 49136 _001466_hash NULL
++_001467_hash put_cmsg 4 36589 _001467_hash NULL
++_001468_hash pvr2_ioread_read 3 10720 _001505_hash NULL nohasharray
++_001469_hash pwc_video_read 3 51735 _001469_hash NULL
++_001470_hash px_raw_event 4 49371 _001470_hash NULL
++_001471_hash qcam_read 3 13977 _001471_hash NULL
++_001472_hash rawv6_sendmsg 4 20080 _001472_hash NULL
++_001473_hash rds_sendmsg 4 40976 _001473_hash NULL
++_001474_hash read_flush 3 43851 _001474_hash NULL
++_001475_hash read_profile 3 27859 _001475_hash NULL
++_001476_hash read_vmcore 3 26501 _001476_hash NULL
++_001477_hash redirected_tty_write 3 65297 _001477_hash NULL
++_001478_hash __register_chrdev 2-3 54223 _001478_hash NULL
++_001480_hash regmap_raw_write 4 53803 _001480_hash NULL
++_001481_hash reiserfs_allocate_list_bitmaps 3 21732 _001481_hash NULL
++_001482_hash reiserfs_resize 2 34377 _001482_hash NULL
++_001483_hash request_key_auth_read 3 24109 _001483_hash NULL
++_001484_hash rfkill_fop_read 3 54711 _001484_hash NULL
++_001485_hash rng_dev_read 3 41581 _001485_hash NULL
++_001486_hash roccat_read 3 41093 _001486_hash NULL
++_001487_hash sco_sock_sendmsg 4 62542 _001487_hash NULL
++_001488_hash scsi_register 2 49094 _001488_hash NULL
++_001489_hash sctp_getsockopt_events 2 3607 _001489_hash NULL
++_001490_hash sctp_getsockopt_maxburst 2 42941 _001490_hash NULL
++_001491_hash sctp_getsockopt_maxseg 2 10737 _001491_hash NULL
++_001492_hash sctpprobe_read 3 17741 _001492_hash NULL
++_001493_hash sdhci_alloc_host 2 7509 _001493_hash NULL
++_001494_hash selinux_inode_post_setxattr 4 26037 _001494_hash NULL
++_001495_hash selinux_inode_setsecurity 4 18148 _001495_hash NULL
++_001496_hash selinux_inode_setxattr 4 10708 _001496_hash NULL
++_001497_hash selinux_secctx_to_secid 2 63744 _001497_hash NULL
++_001498_hash selinux_setprocattr 4 55611 _001498_hash NULL
++_001499_hash sel_write_context 3 25726 _002397_hash NULL nohasharray
++_001500_hash seq_copy_in_user 3 18543 _001500_hash NULL
++_001501_hash seq_open_net 4 8968 _001594_hash NULL nohasharray
++_001502_hash seq_open_private 3 61589 _001502_hash NULL
++_001503_hash set_arg 3 42824 _001503_hash NULL
++_001504_hash sg_read 3 25799 _001504_hash NULL
++_001505_hash shash_async_setkey 3 10720 _001505_hash &_001468_hash
++_001506_hash shash_compat_setkey 3 12267 _001506_hash NULL
++_001507_hash shmem_setxattr 4 55867 _001507_hash NULL
++_001508_hash simple_read_from_buffer 2-5 55957 _001508_hash NULL
++_001511_hash sm_checker_extend 2 23615 _001511_hash NULL
++_001512_hash sn9c102_read 3 29305 _001512_hash NULL
++_001513_hash snd_es1938_capture_copy 5 25930 _001513_hash NULL
++_001514_hash snd_gus_dram_peek 4 9062 _001514_hash NULL
++_001515_hash snd_hdsp_capture_copy 5 4011 _001515_hash NULL
++_001516_hash snd_korg1212_copy_to 6 92 _001516_hash NULL
++_001517_hash snd_opl4_mem_proc_read 5 63774 _001517_hash NULL
++_001518_hash snd_pcm_alloc_vmalloc_buffer 2 44595 _001518_hash NULL
++_001519_hash snd_pcm_oss_read1 3 63771 _001519_hash NULL
++_001520_hash snd_rawmidi_kernel_read1 4 36740 _001520_hash NULL
++_001521_hash snd_rme9652_capture_copy 5 10287 _001521_hash NULL
++_001522_hash srp_target_alloc 3 37288 _001522_hash NULL
++_001523_hash stk_allocate_buffers 2 16291 _001523_hash NULL
++_001524_hash store_ifalias 4 35088 _001524_hash NULL
++_001525_hash store_msg 3 56417 _001525_hash NULL
++_001526_hash str_to_user 2 11411 _001526_hash NULL
++_001527_hash subbuf_read_actor 3 2071 _001527_hash NULL
++_001528_hash sys_fgetxattr 4 25166 _001528_hash NULL
++_001529_hash sys_gethostname 2 49698 _001529_hash NULL
++_001530_hash sys_getxattr 4 37418 _001530_hash NULL
++_001531_hash sys_kexec_load 2 14222 _001531_hash NULL
++_001532_hash sys_msgsnd 3 44537 _001532_hash &_000129_hash
++_001533_hash sys_process_vm_readv 3-5 19090 _001533_hash NULL
++_001535_hash sys_process_vm_writev 3-5 4928 _001535_hash NULL
++_001537_hash sys_sched_getaffinity 2 60033 _001537_hash NULL
++_001538_hash sys_setsockopt 5 35320 _001538_hash NULL
++_001539_hash t3_init_l2t 1 8261 _001539_hash NULL
++_001540_hash team_options_register 3 20091 _001540_hash NULL
++_001541_hash tipc_send2name 6 16809 _001541_hash NULL
++_001542_hash tipc_send2port 5 63935 _001542_hash NULL
++_001543_hash tipc_send 4 51238 _001543_hash NULL
++_001544_hash tm6000_i2c_recv_regs16 5 2949 _001544_hash NULL
++_001545_hash tm6000_i2c_recv_regs 5 46215 _001545_hash NULL
++_001546_hash tm6000_i2c_send_regs 5 20250 _001546_hash NULL
++_001547_hash tnode_new 3 44757 _001547_hash NULL
++_001548_hash tomoyo_read_self 3 33539 _001548_hash NULL
++_001549_hash tomoyo_update_domain 2 5498 _001549_hash NULL
++_001550_hash tomoyo_update_policy 2 40458 _001550_hash NULL
++_001551_hash tpm_read 3 50344 _001551_hash NULL
++_001552_hash TSS_rawhmac 3 17486 _001552_hash NULL
++_001553_hash tt3650_ci_msg 4 57219 _001553_hash NULL
++_001554_hash tun_get_user 3 33178 _001554_hash NULL
++_001555_hash ubi_dbg_dump_flash 4 3870 _001555_hash NULL
++_001556_hash ubi_io_write 4-5 15870 _001556_hash &_000954_hash
++_001558_hash uio_read 3 49300 _001558_hash NULL
++_001559_hash unix_seqpacket_sendmsg 4 27893 _001559_hash NULL
++_001560_hash unlink1 3 63059 _001560_hash NULL
++_001562_hash usb_allocate_stream_buffers 3 8964 _001562_hash NULL
++_001563_hash usbdev_read 3 45114 _001563_hash NULL
++_001564_hash usblp_read 3 57342 _001564_hash NULL
++_001565_hash usbtmc_read 3 32377 _001565_hash NULL
++_001566_hash usbvision_v4l2_read 3 34386 _001566_hash NULL
++_001567_hash _usb_writeN_sync 4 31682 _001567_hash NULL
++_001568_hash user_read 3 51881 _001568_hash NULL
++_001569_hash v4l_stk_read 3 39672 _001569_hash NULL
++_001570_hash vcs_read 3 8017 _001570_hash NULL
++_001571_hash vdma_mem_alloc 1 6171 _001571_hash NULL
++_001572_hash venus_create 4 20555 _001572_hash NULL
++_001573_hash venus_link 5 32165 _001573_hash NULL
++_001574_hash venus_lookup 4 8121 _001574_hash NULL
++_001575_hash venus_mkdir 4 8967 _001575_hash NULL
++_001576_hash venus_remove 4 59781 _001576_hash NULL
++_001577_hash venus_rename 4-5 17707 _001577_hash NULL
++_001579_hash venus_rmdir 4 45564 _001579_hash NULL
++_001580_hash venus_symlink 4-6 23570 _001580_hash NULL
++_001582_hash vfs_readlink 3 54368 _001582_hash NULL
++_001583_hash vfs_readv 3 38011 _001583_hash NULL
++_001584_hash vfs_writev 3 25278 _001584_hash NULL
++_001585_hash vga_arb_read 3 4886 _001585_hash NULL
++_001586_hash vhci_put_user 4 12604 _001586_hash NULL
++_001587_hash vhost_add_used_n 3 10760 _001587_hash NULL
++_001588_hash __videobuf_copy_to_user 4 15423 _001588_hash NULL
++_001589_hash videobuf_pages_to_sg 2 3708 _001589_hash NULL
++_001590_hash videobuf_vmalloc_to_sg 2 4548 _001590_hash NULL
++_001591_hash virtnet_send_command 5-6 61993 _001591_hash NULL
++_001593_hash vmbus_establish_gpadl 3 4495 _001593_hash NULL
++_001594_hash vol_cdev_read 3 8968 _001594_hash &_001501_hash
++_001595_hash w9966_v4l_read 3 31148 _001595_hash NULL
++_001596_hash wdm_read 3 6549 _001596_hash NULL
++_001597_hash wusb_prf 7 54261 _001597_hash &_000063_hash
++_001598_hash xdi_copy_to_user 4 48900 _001598_hash NULL
++_001599_hash xfs_buf_get_uncached 2 51477 _001599_hash NULL
++_001600_hash xfs_efd_init 3 5463 _001600_hash NULL
++_001601_hash xfs_efi_init 2 5476 _001601_hash NULL
++_001602_hash xfs_iext_realloc_direct 2 20521 _001602_hash NULL
++_001603_hash xfs_iext_realloc_indirect 2 59211 _001603_hash NULL
++_001604_hash xfs_inumbers_fmt 3 12817 _001604_hash NULL
++_001605_hash xlog_recover_add_to_cont_trans 4 44102 _001605_hash NULL
++_001606_hash xz_dec_lzma2_create 2 36353 _001606_hash NULL
++_001607_hash _zd_iowrite32v_locked 3 44725 _001607_hash NULL
++_001608_hash aat2870_reg_read_file 3 12221 _001608_hash NULL
++_001609_hash add_sctp_bind_addr 3 12269 _001609_hash NULL
++_001610_hash aes_decrypt_fail_read 3 54815 _001610_hash NULL
++_001611_hash aes_decrypt_interrupt_read 3 19910 _001611_hash NULL
++_001612_hash aes_decrypt_packets_read 3 10155 _001612_hash NULL
++_001613_hash aes_encrypt_fail_read 3 32562 _001613_hash NULL
++_001614_hash aes_encrypt_interrupt_read 3 39919 _001614_hash NULL
++_001615_hash aes_encrypt_packets_read 3 48666 _001615_hash NULL
++_001616_hash afs_cell_lookup 2 8482 _001616_hash NULL
++_001617_hash agp_allocate_memory 2 58761 _001617_hash NULL
++_001618_hash __alloc_bootmem 1 31498 _001618_hash NULL
++_001619_hash __alloc_bootmem_low 1 43423 _001619_hash NULL
++_001620_hash __alloc_bootmem_node_nopanic 2 6432 _001620_hash NULL
++_001621_hash alloc_cc770dev 1 48186 _001621_hash NULL
++_001622_hash __alloc_ei_netdev 1 29338 _001622_hash NULL
++_001623_hash __alloc_eip_netdev 1 51549 _001623_hash NULL
++_001624_hash alloc_libipw 1 22708 _001624_hash NULL
++_001625_hash alloc_pg_vec 2 8533 _001625_hash NULL
++_001626_hash alloc_sja1000dev 1 17868 _001626_hash NULL
++_001627_hash alloc_targets 2 8074 _001627_hash NULL
++_001630_hash ath6kl_disconnect_timeout_read 3 3650 _001630_hash NULL
++_001631_hash ath6kl_endpoint_stats_read 3 41554 _001631_hash NULL
++_001632_hash ath6kl_fwlog_mask_read 3 2050 _001632_hash NULL
++_001633_hash ath6kl_keepalive_read 3 44303 _001633_hash NULL
++_001634_hash ath6kl_listen_int_read 3 10355 _001634_hash NULL
++_001635_hash ath6kl_lrssi_roam_read 3 61022 _001635_hash NULL
++_001636_hash ath6kl_regdump_read 3 14393 _001636_hash NULL
++_001637_hash ath6kl_regread_read 3 25884 _001637_hash NULL
++_001638_hash ath6kl_regwrite_read 3 48747 _001638_hash NULL
++_001639_hash ath6kl_roam_table_read 3 26166 _001639_hash NULL
++_001640_hash ath9k_debugfs_read_buf 3 25316 _001640_hash NULL
++_001641_hash atk_debugfs_ggrp_read 3 29522 _001641_hash NULL
++_001642_hash b43_debugfs_read 3 24425 _001642_hash NULL
++_001643_hash b43legacy_debugfs_read 3 2473 _001643_hash NULL
++_001644_hash bcm_recvmsg 4 43992 _001644_hash NULL
++_001645_hash bfad_debugfs_read 3 13119 _001645_hash NULL
++_001646_hash bfad_debugfs_read_regrd 3 57830 _001646_hash NULL
++_001647_hash blk_init_tags 1 30592 _001647_hash NULL
++_001648_hash blk_queue_init_tags 2 44355 _001648_hash NULL
++_001649_hash blk_rq_map_kern 4 47004 _001649_hash NULL
++_001650_hash bm_entry_read 3 10976 _001650_hash NULL
++_001651_hash bm_status_read 3 19583 _001651_hash NULL
++_001652_hash bnad_debugfs_read 3 50665 _001652_hash NULL
++_001653_hash bnad_debugfs_read_regrd 3 51308 _001653_hash NULL
++_001654_hash btmrvl_curpsmode_read 3 46939 _001654_hash NULL
++_001655_hash btmrvl_gpiogap_read 3 4718 _001655_hash NULL
++_001656_hash btmrvl_hscfgcmd_read 3 56303 _001656_hash NULL
++_001657_hash btmrvl_hscmd_read 3 1614 _001657_hash NULL
++_001658_hash btmrvl_hsmode_read 3 1647 _001658_hash NULL
++_001659_hash btmrvl_hsstate_read 3 920 _001659_hash NULL
++_001660_hash btmrvl_pscmd_read 3 24308 _001660_hash NULL
++_001661_hash btmrvl_psmode_read 3 22395 _001661_hash NULL
++_001662_hash btmrvl_psstate_read 3 50683 _001662_hash NULL
++_001663_hash btmrvl_txdnldready_read 3 413 _001663_hash NULL
++_001664_hash btrfs_add_link 5 9973 _001664_hash NULL
++_001665_hash btrfs_discard_extent 2 38547 _001665_hash NULL
++_001666_hash btrfs_find_create_tree_block 3 55812 _001666_hash NULL
++_001667_hash btrfsic_map_block 2 56751 _001667_hash NULL
++_001668_hash caif_stream_recvmsg 4 13173 _001668_hash NULL
++_001669_hash carl9170_alloc 1 27 _001669_hash NULL
++_001670_hash carl9170_debugfs_read 3 47738 _001670_hash NULL
++_001671_hash cgroup_read_s64 5 19570 _001671_hash NULL
++_001672_hash cgroup_read_u64 5 45532 _001672_hash NULL
++_001673_hash channel_type_read 3 47308 _001673_hash NULL
++_001674_hash codec_list_read_file 3 24910 _001674_hash NULL
++_001675_hash configfs_read_file 3 1683 _001675_hash NULL
++_001676_hash cpuset_common_file_read 5 8800 _001676_hash NULL
++_001677_hash create_subvol 4 2347 _001677_hash NULL
++_001678_hash cx18_copy_mdl_to_user 4 45549 _001678_hash NULL
++_001679_hash dai_list_read_file 3 25421 _001679_hash NULL
++_001680_hash dapm_bias_read_file 3 64715 _001680_hash NULL
++_001681_hash dapm_widget_power_read_file 3 59950 _001754_hash NULL nohasharray
++_001684_hash dbgfs_frame 3 45917 _001684_hash NULL
++_001685_hash dbgfs_state 3 38894 _001685_hash NULL
++_001686_hash debugfs_read 3 62535 _001686_hash NULL
++_001687_hash debug_output 3 18575 _001687_hash NULL
++_001688_hash debug_read 3 19322 _001688_hash NULL
++_001689_hash dfs_file_read 3 18116 _001689_hash NULL
++_001690_hash dma_memcpy_pg_to_iovec 6 1725 _001690_hash NULL
++_001691_hash dma_memcpy_to_iovec 5 12173 _001691_hash NULL
++_001692_hash dma_rx_errors_read 3 52045 _001692_hash NULL
++_001693_hash dma_rx_requested_read 3 65354 _001693_hash NULL
++_001694_hash dma_show_regs 3 35266 _001694_hash NULL
++_001695_hash dma_tx_errors_read 3 46060 _001695_hash NULL
++_001696_hash dma_tx_requested_read 3 16110 _001775_hash NULL nohasharray
++_001697_hash dm_exception_table_init 2 39645 _001697_hash &_001103_hash
++_001698_hash dn_recvmsg 4 17213 _001698_hash NULL
++_001699_hash dns_resolver_read 3 54658 _001699_hash NULL
++_001700_hash do_msgrcv 4 5590 _001700_hash NULL
++_001701_hash driver_state_read 3 17194 _001701_hash &_001394_hash
++_001702_hash dvb_demux_do_ioctl 3 34871 _001702_hash NULL
++_001703_hash dvb_dmxdev_buffer_read 4 20682 _001703_hash NULL
++_001704_hash dvb_dvr_do_ioctl 3 43355 _001704_hash NULL
++_001705_hash econet_recvmsg 4 40978 _001705_hash NULL
++_001706_hash event_calibration_read 3 21083 _001706_hash NULL
++_001707_hash event_heart_beat_read 3 48961 _001707_hash NULL
++_001708_hash event_oom_late_read 3 61175 _001708_hash &_001014_hash
++_001709_hash event_phy_transmit_error_read 3 10471 _001709_hash NULL
++_001710_hash event_rx_mem_empty_read 3 40363 _001710_hash NULL
++_001711_hash event_rx_mismatch_read 3 38518 _001711_hash NULL
++_001712_hash event_rx_pool_read 3 25792 _001712_hash NULL
++_001713_hash event_tx_stuck_read 3 19305 _001713_hash NULL
++_001714_hash excessive_retries_read 3 60425 _001714_hash NULL
++_001715_hash fallback_on_nodma_alloc 2 35332 _001715_hash NULL
++_001716_hash filter_read 3 61692 _001716_hash NULL
++_001717_hash format_devstat_counter 3 32550 _001717_hash NULL
++_001718_hash fragmentation_threshold_read 3 61718 _001718_hash NULL
++_001719_hash fuse_conn_limit_read 3 20084 _001719_hash NULL
++_001720_hash fuse_conn_waiting_read 3 49762 _001720_hash NULL
++_001721_hash generic_readlink 3 32654 _001721_hash NULL
++_001722_hash gpio_power_read 3 36059 _001722_hash NULL
++_001723_hash hash_recvmsg 4 50924 _001723_hash NULL
++_001724_hash ht40allow_map_read 3 55209 _001724_hash NULL
++_001725_hash hwflags_read 3 52318 _001725_hash NULL
++_001726_hash hysdn_conf_read 3 42324 _001726_hash NULL
++_001727_hash i2400m_rx_stats_read 3 57706 _001727_hash NULL
++_001728_hash i2400m_tx_stats_read 3 28527 _001728_hash NULL
++_001729_hash idmouse_read 3 63374 _001729_hash NULL
++_001730_hash ieee80211_if_read 3 6785 _001730_hash NULL
++_001731_hash ieee80211_rx_bss_info 3 61630 _001731_hash NULL
++_001732_hash ikconfig_read_current 3 1658 _001732_hash NULL
++_001733_hash il3945_sta_dbgfs_stats_table_read 3 48802 _001733_hash NULL
++_001734_hash il3945_ucode_general_stats_read 3 46111 _001734_hash NULL
++_001735_hash il3945_ucode_rx_stats_read 3 3048 _001735_hash NULL
++_001736_hash il3945_ucode_tx_stats_read 3 36016 _001736_hash NULL
++_001737_hash il4965_rs_sta_dbgfs_rate_scale_data_read 3 37792 _001737_hash NULL
++_001738_hash il4965_rs_sta_dbgfs_scale_table_read 3 38564 _001738_hash NULL
++_001739_hash il4965_rs_sta_dbgfs_stats_table_read 3 49206 _001739_hash NULL
++_001740_hash il4965_ucode_general_stats_read 3 56277 _001740_hash NULL
++_001741_hash il4965_ucode_rx_stats_read 3 61948 _001741_hash NULL
++_001742_hash il4965_ucode_tx_stats_read 3 12064 _001742_hash NULL
++_001743_hash il_dbgfs_chain_noise_read 3 38044 _001743_hash NULL
++_001744_hash il_dbgfs_channels_read 3 25005 _001744_hash NULL
++_001745_hash il_dbgfs_disable_ht40_read 3 42386 _001745_hash NULL
++_001746_hash il_dbgfs_fh_reg_read 3 40993 _001746_hash NULL
++_001747_hash il_dbgfs_force_reset_read 3 57517 _001747_hash NULL
++_001748_hash il_dbgfs_interrupt_read 3 3351 _001748_hash NULL
++_001749_hash il_dbgfs_missed_beacon_read 3 59956 _001749_hash NULL
++_001750_hash il_dbgfs_nvm_read 3 12288 _001750_hash NULL
++_001751_hash il_dbgfs_power_save_status_read 3 43165 _001751_hash NULL
++_001752_hash il_dbgfs_qos_read 3 33615 _001752_hash NULL
++_001753_hash il_dbgfs_rxon_filter_flags_read 3 19281 _001753_hash NULL
++_001754_hash il_dbgfs_rxon_flags_read 3 59950 _001754_hash &_001681_hash
++_001755_hash il_dbgfs_rx_queue_read 3 11221 _001755_hash NULL
++_001756_hash il_dbgfs_rx_stats_read 3 15243 _001756_hash NULL
++_001757_hash il_dbgfs_sensitivity_read 3 2370 _001757_hash NULL
++_001758_hash il_dbgfs_sram_read 3 62296 _001758_hash NULL
++_001759_hash il_dbgfs_stations_read 3 21532 _001759_hash NULL
++_001760_hash il_dbgfs_status_read 3 58388 _001760_hash NULL
++_001761_hash il_dbgfs_tx_queue_read 3 55668 _001761_hash NULL
++_001762_hash il_dbgfs_tx_stats_read 3 32913 _001762_hash NULL
++_001763_hash ima_show_htable_value 2 57136 _001763_hash NULL
++_001765_hash ipw_write 3 59807 _001765_hash NULL
++_001766_hash irda_recvmsg_stream 4 35280 _001766_hash NULL
++_001767_hash iscsi_tcp_conn_setup 2 16376 _001767_hash NULL
++_001768_hash isr_cmd_cmplt_read 3 53439 _001768_hash NULL
++_001769_hash isr_commands_read 3 41398 _001769_hash NULL
++_001770_hash isr_decrypt_done_read 3 49490 _001770_hash NULL
++_001771_hash isr_dma0_done_read 3 8574 _001771_hash NULL
++_001772_hash isr_dma1_done_read 3 48159 _001772_hash NULL
++_001773_hash isr_fiqs_read 3 34687 _001773_hash NULL
++_001774_hash isr_host_acknowledges_read 3 54136 _001774_hash NULL
++_001775_hash isr_hw_pm_mode_changes_read 3 16110 _001775_hash &_001696_hash
++_001776_hash isr_irqs_read 3 9181 _001776_hash NULL
++_001777_hash isr_low_rssi_read 3 64789 _001777_hash NULL
++_001778_hash isr_pci_pm_read 3 30271 _001778_hash NULL
++_001779_hash isr_rx_headers_read 3 38325 _001779_hash NULL
++_001780_hash isr_rx_mem_overflow_read 3 43025 _001780_hash NULL
++_001781_hash isr_rx_procs_read 3 31804 _001781_hash NULL
++_001782_hash isr_rx_rdys_read 3 35283 _001782_hash NULL
++_001783_hash isr_tx_exch_complete_read 3 16103 _001783_hash NULL
++_001784_hash isr_tx_procs_read 3 23084 _001784_hash NULL
++_001785_hash isr_wakeups_read 3 49607 _001785_hash NULL
++_001786_hash ivtv_read 3 57796 _001786_hash NULL
++_001787_hash iwl_dbgfs_bt_traffic_read 3 35534 _001787_hash NULL
++_001788_hash iwl_dbgfs_chain_noise_read 3 46355 _001788_hash NULL
++_001789_hash iwl_dbgfs_channels_read 3 6784 _001789_hash NULL
++_001790_hash iwl_dbgfs_current_sleep_command_read 3 2081 _001790_hash NULL
++_001791_hash iwl_dbgfs_disable_ht40_read 3 35761 _001791_hash NULL
++_001792_hash iwl_dbgfs_fh_reg_read 3 879 _001792_hash &_000393_hash
++_001793_hash iwl_dbgfs_force_reset_read 3 62628 _001793_hash NULL
++_001794_hash iwl_dbgfs_interrupt_read 3 23574 _001794_hash NULL
++_001795_hash iwl_dbgfs_log_event_read 3 2107 _001795_hash NULL
++_001796_hash iwl_dbgfs_missed_beacon_read 3 50584 _001796_hash NULL
++_001797_hash iwl_dbgfs_nvm_read 3 23845 _001797_hash NULL
++_001798_hash iwl_dbgfs_plcp_delta_read 3 55407 _001798_hash NULL
++_001799_hash iwl_dbgfs_power_save_status_read 3 54392 _001799_hash NULL
++_001800_hash iwl_dbgfs_protection_mode_read 3 13943 _001800_hash NULL
++_001801_hash iwl_dbgfs_qos_read 3 11753 _001801_hash NULL
++_001802_hash iwl_dbgfs_reply_tx_error_read 3 19205 _001802_hash NULL
++_001803_hash iwl_dbgfs_rx_handlers_read 3 18708 _001803_hash NULL
++_001804_hash iwl_dbgfs_rxon_filter_flags_read 3 28832 _001804_hash NULL
++_001805_hash iwl_dbgfs_rxon_flags_read 3 20795 _001805_hash NULL
++_001806_hash iwl_dbgfs_rx_queue_read 3 19943 _001806_hash NULL
++_001807_hash iwl_dbgfs_rx_statistics_read 3 62687 _001807_hash &_000425_hash
++_001808_hash iwl_dbgfs_sensitivity_read 3 63116 _001808_hash NULL
++_001809_hash iwl_dbgfs_sleep_level_override_read 3 3038 _001809_hash NULL
++_001810_hash iwl_dbgfs_sram_read 3 44505 _001810_hash NULL
++_001811_hash iwl_dbgfs_stations_read 3 9309 _001811_hash NULL
++_001812_hash iwl_dbgfs_status_read 3 5171 _001812_hash NULL
++_001813_hash iwl_dbgfs_temperature_read 3 29224 _001813_hash NULL
++_001814_hash iwl_dbgfs_thermal_throttling_read 3 38779 _001814_hash NULL
++_001815_hash iwl_dbgfs_traffic_log_read 3 58870 _001815_hash NULL
++_001816_hash iwl_dbgfs_tx_queue_read 3 4635 _001816_hash NULL
++_001817_hash iwl_dbgfs_tx_statistics_read 3 314 _001817_hash NULL
++_001818_hash iwl_dbgfs_ucode_bt_stats_read 3 42820 _001818_hash NULL
++_001819_hash iwl_dbgfs_ucode_general_stats_read 3 49199 _001819_hash NULL
++_001820_hash iwl_dbgfs_ucode_rx_stats_read 3 58023 _001820_hash NULL
++_001821_hash iwl_dbgfs_ucode_tracing_read 3 47983 _001821_hash &_000349_hash
++_001822_hash iwl_dbgfs_ucode_tx_stats_read 3 31611 _001822_hash NULL
++_001823_hash iwl_dbgfs_wowlan_sram_read 3 540 _001823_hash NULL
++_001824_hash iwm_if_alloc 1 17027 _001824_hash &_001314_hash
++_001825_hash kernel_readv 3 35617 _001825_hash NULL
++_001826_hash key_algorithm_read 3 57946 _001826_hash NULL
++_001827_hash key_icverrors_read 3 20895 _001827_hash NULL
++_001828_hash key_key_read 3 3241 _001828_hash NULL
++_001829_hash key_replays_read 3 62746 _001829_hash NULL
++_001830_hash key_rx_spec_read 3 12736 _001830_hash NULL
++_001831_hash key_tx_spec_read 3 4862 _001831_hash NULL
++_001832_hash __kfifo_to_user 3 36555 _002199_hash NULL nohasharray
++_001833_hash __kfifo_to_user_r 3 39123 _001833_hash NULL
++_001834_hash kmem_zalloc_greedy 2-3 65268 _001834_hash NULL
++_001836_hash l2cap_chan_send 3 49995 _001836_hash NULL
++_001837_hash l2cap_sar_segment_sdu 3 27701 _001837_hash NULL
++_001838_hash lbs_debugfs_read 3 30721 _001838_hash NULL
++_001839_hash lbs_dev_info 3 51023 _001839_hash NULL
++_001840_hash lbs_host_sleep_read 3 31013 _001840_hash NULL
++_001841_hash lbs_rdbbp_read 3 45805 _001841_hash NULL
++_001842_hash lbs_rdmac_read 3 418 _001842_hash NULL
++_001843_hash lbs_rdrf_read 3 41431 _001843_hash NULL
++_001844_hash lbs_sleepparams_read 3 10840 _001844_hash NULL
++_001845_hash lbs_threshold_read 5 21046 _001845_hash NULL
++_001846_hash libfc_vport_create 2 4415 _001846_hash NULL
++_001847_hash lkdtm_debugfs_read 3 45752 _001847_hash NULL
++_001848_hash llcp_sock_recvmsg 4 13556 _001848_hash NULL
++_001849_hash long_retry_limit_read 3 59766 _001849_hash NULL
++_001850_hash lpfc_debugfs_dif_err_read 3 36303 _001850_hash NULL
++_001851_hash lpfc_debugfs_read 3 16566 _001851_hash NULL
++_001852_hash lpfc_idiag_baracc_read 3 58466 _002447_hash NULL nohasharray
++_001853_hash lpfc_idiag_ctlacc_read 3 33943 _001853_hash NULL
++_001854_hash lpfc_idiag_drbacc_read 3 15948 _001854_hash NULL
++_001855_hash lpfc_idiag_extacc_read 3 48301 _001855_hash NULL
++_001856_hash lpfc_idiag_mbxacc_read 3 28061 _001856_hash NULL
++_001857_hash lpfc_idiag_pcicfg_read 3 50334 _001857_hash NULL
++_001858_hash lpfc_idiag_queacc_read 3 13950 _001858_hash NULL
++_001859_hash lpfc_idiag_queinfo_read 3 55662 _001859_hash NULL
++_001860_hash mac80211_format_buffer 2 41010 _001860_hash NULL
++_001861_hash macvtap_put_user 4 55609 _001861_hash NULL
++_001862_hash macvtap_sendmsg 4 30629 _001862_hash NULL
++_001863_hash mic_calc_failure_read 3 59700 _001863_hash NULL
++_001864_hash mic_rx_pkts_read 3 27972 _001864_hash NULL
++_001865_hash minstrel_stats_read 3 17290 _001865_hash NULL
++_001866_hash mmc_ext_csd_read 3 13205 _001866_hash NULL
++_001867_hash mon_bin_read 3 6841 _001867_hash NULL
++_001868_hash mon_stat_read 3 25238 _001868_hash NULL
++_001870_hash mqueue_read_file 3 6228 _001870_hash NULL
++_001871_hash mwifiex_debug_read 3 53074 _001871_hash NULL
++_001872_hash mwifiex_getlog_read 3 54269 _001872_hash NULL
++_001873_hash mwifiex_info_read 3 53447 _001873_hash NULL
++_001874_hash mwifiex_rdeeprom_read 3 51429 _001874_hash NULL
++_001875_hash mwifiex_regrdwr_read 3 34472 _001875_hash NULL
++_001876_hash nfsd_vfs_read 6 62605 _001876_hash NULL
++_001877_hash nfsd_vfs_write 6 54577 _001877_hash NULL
++_001878_hash nfs_idmap_lookup_id 2 10660 _001878_hash NULL
++_001879_hash o2hb_debug_read 3 37851 _001879_hash NULL
++_001880_hash o2net_debug_read 3 52105 _001880_hash NULL
++_001881_hash ocfs2_control_read 3 56405 _001881_hash NULL
++_001882_hash ocfs2_debug_read 3 14507 _001882_hash NULL
++_001883_hash ocfs2_readlink 3 50656 _001883_hash NULL
++_001884_hash oom_adjust_read 3 25127 _001884_hash NULL
++_001885_hash oom_score_adj_read 3 39921 _002116_hash NULL nohasharray
++_001886_hash oprofilefs_str_to_user 3 42182 _001886_hash NULL
++_001887_hash oprofilefs_ulong_to_user 3 11582 _001887_hash NULL
++_001888_hash _osd_req_list_objects 6 4204 _001888_hash NULL
++_001889_hash osd_req_read_kern 5 59990 _001889_hash NULL
++_001890_hash osd_req_write_kern 5 53486 _001890_hash NULL
++_001891_hash p54_init_common 1 23850 _001891_hash NULL
++_001892_hash packet_sendmsg 4 24954 _001892_hash NULL
++_001893_hash page_readlink 3 23346 _001893_hash NULL
++_001894_hash pcf50633_write_block 3 2124 _001894_hash NULL
++_001895_hash platform_list_read_file 3 34734 _001895_hash NULL
++_001896_hash pm860x_bulk_write 3 43875 _001896_hash NULL
++_001897_hash pm_qos_power_read 3 55891 _001897_hash NULL
++_001898_hash pms_read 3 53873 _001898_hash NULL
++_001899_hash port_show_regs 3 5904 _001899_hash NULL
++_001900_hash proc_coredump_filter_read 3 39153 _001900_hash NULL
++_001901_hash proc_fdinfo_read 3 62043 _001901_hash NULL
++_001902_hash proc_info_read 3 63344 _001902_hash NULL
++_001903_hash proc_loginuid_read 3 15631 _001903_hash NULL
++_001904_hash proc_pid_attr_read 3 10173 _001904_hash NULL
++_001905_hash proc_pid_readlink 3 52186 _001905_hash NULL
++_001906_hash proc_read 3 43614 _001906_hash NULL
++_001907_hash proc_self_readlink 3 38094 _001907_hash NULL
++_001908_hash proc_sessionid_read 3 6911 _002038_hash NULL nohasharray
++_001909_hash provide_user_output 3 41105 _001909_hash NULL
++_001910_hash ps_pspoll_max_apturn_read 3 6699 _001910_hash NULL
++_001911_hash ps_pspoll_timeouts_read 3 11776 _001911_hash NULL
++_001912_hash ps_pspoll_utilization_read 3 5361 _001912_hash NULL
++_001913_hash pstore_file_read 3 57288 _001913_hash NULL
++_001914_hash ps_upsd_max_apturn_read 3 19918 _001914_hash NULL
++_001915_hash ps_upsd_max_sptime_read 3 63362 _001915_hash NULL
++_001916_hash ps_upsd_timeouts_read 3 28924 _001916_hash NULL
++_001917_hash ps_upsd_utilization_read 3 51669 _001917_hash NULL
++_001918_hash pvr2_v4l2_read 3 18006 _001918_hash NULL
++_001919_hash pwr_disable_ps_read 3 13176 _001919_hash NULL
++_001920_hash pwr_elp_enter_read 3 5324 _001920_hash NULL
++_001921_hash pwr_enable_ps_read 3 17686 _001921_hash NULL
++_001922_hash pwr_fix_tsf_ps_read 3 26627 _001922_hash NULL
++_001923_hash pwr_missing_bcns_read 3 25824 _001923_hash NULL
++_001924_hash pwr_power_save_off_read 3 18355 _001924_hash NULL
++_001925_hash pwr_ps_enter_read 3 26935 _001925_hash &_000501_hash
++_001926_hash pwr_rcvd_awake_beacons_read 3 50505 _001926_hash NULL
++_001927_hash pwr_rcvd_beacons_read 3 52836 _001927_hash NULL
++_001928_hash pwr_tx_without_ps_read 3 48423 _001928_hash NULL
++_001929_hash pwr_tx_with_ps_read 3 60851 _001929_hash NULL
++_001930_hash pwr_wake_on_host_read 3 26321 _001930_hash NULL
++_001931_hash pwr_wake_on_timer_exp_read 3 22640 _001931_hash NULL
++_001932_hash queues_read 3 24877 _001932_hash NULL
++_001933_hash raw_recvmsg 4 17277 _001933_hash NULL
++_001934_hash rcname_read 3 25919 _001934_hash NULL
++_001935_hash read_4k_modal_eeprom 3 30212 _001935_hash NULL
++_001936_hash read_9287_modal_eeprom 3 59327 _001936_hash NULL
++_001937_hash reada_find_extent 2 63486 _001937_hash NULL
++_001938_hash read_def_modal_eeprom 3 14041 _001938_hash NULL
++_001939_hash read_enabled_file_bool 3 37744 _001939_hash NULL
++_001940_hash read_file_ani 3 23161 _001940_hash NULL
++_001941_hash read_file_antenna 3 13574 _001941_hash NULL
++_001942_hash read_file_base_eeprom 3 42168 _001942_hash NULL
++_001943_hash read_file_beacon 3 32595 _001943_hash NULL
++_001944_hash read_file_blob 3 57406 _001944_hash NULL
++_001945_hash read_file_bool 3 4180 _001945_hash NULL
++_001946_hash read_file_credit_dist_stats 3 54367 _001946_hash NULL
++_001947_hash read_file_debug 3 58256 _001947_hash NULL
++_001948_hash read_file_disable_ani 3 6536 _001948_hash NULL
++_001949_hash read_file_dma 3 9530 _001949_hash NULL
++_001950_hash read_file_dump_nfcal 3 18766 _001950_hash NULL
++_001951_hash read_file_frameerrors 3 64001 _001951_hash NULL
++_001952_hash read_file_interrupt 3 61742 _001959_hash NULL nohasharray
++_001953_hash read_file_misc 3 9948 _001953_hash NULL
++_001954_hash read_file_modal_eeprom 3 39909 _001954_hash NULL
++_001955_hash read_file_queue 3 40895 _001955_hash NULL
++_001956_hash read_file_rcstat 3 22854 _001956_hash NULL
++_001957_hash read_file_recv 3 48232 _001957_hash NULL
++_001958_hash read_file_regidx 3 33370 _001958_hash NULL
++_001959_hash read_file_regval 3 61742 _001959_hash &_001952_hash
++_001960_hash read_file_reset 3 52310 _001960_hash NULL
++_001961_hash read_file_rx_chainmask 3 41605 _001961_hash NULL
++_001962_hash read_file_slot 3 50111 _001962_hash NULL
++_001963_hash read_file_stations 3 35795 _001963_hash NULL
++_001964_hash read_file_tgt_int_stats 3 20697 _001964_hash NULL
++_001965_hash read_file_tgt_rx_stats 3 33944 _001965_hash NULL
++_001966_hash read_file_tgt_stats 3 8959 _001966_hash NULL
++_001967_hash read_file_tgt_tx_stats 3 51847 _001967_hash NULL
++_001968_hash read_file_tx_chainmask 3 3829 _001968_hash NULL
++_001969_hash read_file_war_stats 3 292 _001969_hash NULL
++_001970_hash read_file_xmit 3 21487 _001970_hash NULL
++_001971_hash read_from_oldmem 2 3337 _001971_hash NULL
++_001972_hash read_oldmem 3 55658 _001972_hash NULL
++_001973_hash regmap_name_read_file 3 39379 _001973_hash NULL
++_001974_hash repair_io_failure 4 4815 _001974_hash NULL
++_001975_hash request_key_and_link 4 42693 _001975_hash NULL
++_001976_hash res_counter_read 4 33499 _001976_hash NULL
++_001977_hash retry_count_read 3 52129 _001977_hash NULL
++_001978_hash rs_sta_dbgfs_rate_scale_data_read 3 47165 _001978_hash NULL
++_001979_hash rs_sta_dbgfs_scale_table_read 3 40262 _001979_hash NULL
++_001980_hash rs_sta_dbgfs_stats_table_read 3 56573 _001980_hash NULL
++_001981_hash rts_threshold_read 3 44384 _001981_hash NULL
++_001982_hash rx_dropped_read 3 44799 _001982_hash NULL
++_001983_hash rx_fcs_err_read 3 62844 _001983_hash NULL
++_001984_hash rx_hdr_overflow_read 3 64407 _001984_hash NULL
++_001985_hash rx_hw_stuck_read 3 57179 _001985_hash NULL
++_001986_hash rx_out_of_mem_read 3 10157 _001986_hash NULL
++_001987_hash rx_path_reset_read 3 23801 _001987_hash NULL
++_001988_hash rxpipe_beacon_buffer_thres_host_int_trig_rx_data_read 3 55106 _001988_hash NULL
++_001989_hash rxpipe_descr_host_int_trig_rx_data_read 3 22001 _001989_hash NULL
++_001990_hash rxpipe_missed_beacon_host_int_trig_rx_data_read 3 63405 _001990_hash NULL
++_001991_hash rxpipe_rx_prep_beacon_drop_read 3 2403 _001991_hash NULL
++_001992_hash rxpipe_tx_xfr_host_int_trig_rx_data_read 3 35538 _001992_hash NULL
++_001993_hash rx_reset_counter_read 3 58001 _001993_hash NULL
++_001994_hash rx_xfr_hint_trig_read 3 40283 _001994_hash NULL
++_001995_hash s5m_bulk_write 3 4833 _001995_hash NULL
++_001996_hash scrub_setup_recheck_block 3-4 56245 _001996_hash NULL
++_001998_hash scsi_adjust_queue_depth 3 12802 _001998_hash NULL
++_001999_hash selinux_inode_notifysecctx 3 36896 _001999_hash NULL
++_002000_hash sel_read_avc_cache_threshold 3 33942 _002000_hash NULL
++_002001_hash sel_read_avc_hash_stats 3 1984 _002001_hash NULL
++_002002_hash sel_read_bool 3 24236 _002002_hash NULL
++_002003_hash sel_read_checkreqprot 3 33068 _002003_hash NULL
++_002004_hash sel_read_class 3 12669 _002541_hash NULL nohasharray
++_002005_hash sel_read_enforce 3 2828 _002005_hash NULL
++_002006_hash sel_read_handle_status 3 56139 _002006_hash NULL
++_002007_hash sel_read_handle_unknown 3 57933 _002007_hash NULL
++_002008_hash sel_read_initcon 3 32362 _002008_hash NULL
++_002009_hash sel_read_mls 3 25369 _002009_hash NULL
++_002010_hash sel_read_perm 3 42302 _002010_hash NULL
++_002011_hash sel_read_policy 3 55947 _002011_hash NULL
++_002012_hash sel_read_policycap 3 28544 _002012_hash NULL
++_002013_hash sel_read_policyvers 3 55 _002013_hash NULL
++_002014_hash send_msg 4 37323 _002014_hash NULL
++_002015_hash send_packet 4 52960 _002015_hash NULL
++_002016_hash short_retry_limit_read 3 4687 _002016_hash NULL
++_002017_hash simple_attr_read 3 24738 _002017_hash NULL
++_002018_hash simple_transaction_read 3 17076 _002018_hash NULL
++_002019_hash skb_copy_datagram_const_iovec 2-5-4 48102 _002019_hash NULL
++_002022_hash skb_copy_datagram_iovec 2-4 5806 _002022_hash NULL
++_002024_hash smk_read_ambient 3 61220 _002024_hash NULL
++_002025_hash smk_read_direct 3 15803 _002025_hash NULL
++_002026_hash smk_read_doi 3 30813 _002026_hash NULL
++_002027_hash smk_read_logging 3 37804 _002027_hash NULL
++_002028_hash smk_read_onlycap 3 3855 _002028_hash NULL
++_002029_hash snapshot_read 3 22601 _002029_hash NULL
++_002030_hash snd_cs4281_BA0_read 5 6847 _002030_hash NULL
++_002031_hash snd_cs4281_BA1_read 5 20323 _002031_hash NULL
++_002032_hash snd_cs46xx_io_read 5 45734 _002032_hash NULL
++_002033_hash snd_gus_dram_read 4 56686 _002033_hash NULL
++_002034_hash snd_pcm_oss_read 3 28317 _002034_hash NULL
++_002035_hash snd_rme32_capture_copy 5 39653 _002035_hash NULL
++_002036_hash snd_rme96_capture_copy 5 58484 _002036_hash NULL
++_002037_hash snd_soc_hw_bulk_write_raw 4 14245 _002037_hash NULL
++_002038_hash spi_show_regs 3 6911 _002038_hash &_001908_hash
++_002039_hash sta_agg_status_read 3 14058 _002039_hash NULL
++_002040_hash sta_connected_time_read 3 17435 _002040_hash NULL
++_002041_hash sta_flags_read 3 56710 _002041_hash NULL
++_002042_hash sta_ht_capa_read 3 10366 _002042_hash NULL
++_002043_hash sta_last_seq_ctrl_read 3 19106 _002043_hash NULL
++_002044_hash sta_num_ps_buf_frames_read 3 1488 _002044_hash NULL
++_002045_hash st_read 3 51251 _002045_hash NULL
++_002046_hash supply_map_read_file 3 10608 _002046_hash NULL
++_002047_hash sysfs_read_file 3 42113 _002047_hash NULL
++_002048_hash sys_lgetxattr 4 45531 _002048_hash NULL
++_002049_hash sys_preadv 3 17100 _002049_hash NULL
++_002050_hash sys_pwritev 3 41722 _002050_hash NULL
++_002051_hash sys_readv 3 50664 _002051_hash NULL
++_002052_hash sys_rt_sigpending 2 24961 _002052_hash NULL
++_002053_hash sys_writev 3 28384 _002053_hash NULL
++_002054_hash test_iso_queue 5 62534 _002054_hash NULL
++_002055_hash ts_read 3 44687 _002055_hash NULL
++_002056_hash TSS_authhmac 3 12839 _002056_hash NULL
++_002057_hash TSS_checkhmac1 5 31429 _002057_hash NULL
++_002058_hash TSS_checkhmac2 5-7 40520 _002058_hash NULL
++_002060_hash tt3650_ci_msg_locked 4 8013 _002060_hash NULL
++_002061_hash tun_sendmsg 4 10337 _002061_hash NULL
++_002062_hash tx_internal_desc_overflow_read 3 47300 _002062_hash NULL
++_002063_hash tx_queue_len_read 3 1463 _002063_hash NULL
++_002064_hash tx_queue_status_read 3 44978 _002064_hash NULL
++_002065_hash ubi_io_write_data 4-5 40305 _002065_hash NULL
++_002067_hash uhci_debug_read 3 5911 _002067_hash NULL
++_002068_hash unix_stream_recvmsg 4 35210 _002068_hash NULL
++_002069_hash uvc_debugfs_stats_read 3 56651 _002069_hash NULL
++_002070_hash vhost_add_used_and_signal_n 4 8038 _002070_hash NULL
++_002071_hash vifs_state_read 3 33762 _002071_hash NULL
++_002072_hash vmbus_open 2-3 12154 _002072_hash NULL
++_002074_hash waiters_read 3 40902 _002074_hash NULL
++_002075_hash wep_addr_key_count_read 3 20174 _002075_hash NULL
++_002076_hash wep_decrypt_fail_read 3 58567 _002076_hash NULL
++_002077_hash wep_default_key_count_read 3 43035 _002077_hash NULL
++_002078_hash wep_interrupt_read 3 41492 _002078_hash NULL
++_002079_hash wep_key_not_found_read 3 13377 _002079_hash &_000915_hash
++_002080_hash wep_packets_read 3 18751 _002080_hash NULL
++_002081_hash wl1271_format_buffer 2 20834 _002081_hash NULL
++_002082_hash wm8994_bulk_write 3 13615 _002082_hash NULL
++_002083_hash wusb_prf_256 7 29203 _002083_hash NULL
++_002084_hash wusb_prf_64 7 51065 _002084_hash NULL
++_002085_hash xfs_buf_read_uncached 4 27519 _002085_hash NULL
++_002086_hash xfs_iext_add 3 41422 _002086_hash NULL
++_002087_hash xfs_iext_remove_direct 3 40744 _002087_hash NULL
++_002088_hash xfs_trans_get_efd 3 51148 _002088_hash NULL
++_002089_hash xfs_trans_get_efi 2 7898 _002089_hash NULL
++_002090_hash xlog_get_bp 2 23229 _002090_hash NULL
++_002091_hash xz_dec_init 2 29029 _002091_hash NULL
++_002092_hash aac_change_queue_depth 2 825 _002092_hash NULL
++_002093_hash agp_allocate_memory_wrap 1 16576 _002093_hash NULL
++_002094_hash arcmsr_adjust_disk_queue_depth 2 16756 _002094_hash NULL
++_002095_hash atalk_recvmsg 4 22053 _002095_hash NULL
++_002097_hash atomic_read_file 3 16227 _002097_hash NULL
++_002098_hash ax25_recvmsg 4 64441 _002098_hash NULL
++_002099_hash beacon_interval_read 3 7091 _002099_hash NULL
++_002100_hash btrfs_init_new_buffer 4 55761 _002100_hash NULL
++_002101_hash btrfs_mksubvol 3 39479 _002101_hash NULL
++_002102_hash bt_sock_recvmsg 4 12316 _002102_hash NULL
++_002103_hash bt_sock_stream_recvmsg 4 52518 _002103_hash NULL
++_002104_hash caif_seqpkt_recvmsg 4 32241 _002104_hash NULL
++_002105_hash cpu_type_read 3 36540 _002105_hash NULL
++_002106_hash cx18_read 3 23699 _002106_hash NULL
++_002107_hash dccp_recvmsg 4 16056 _002107_hash NULL
++_002108_hash depth_read 3 31112 _002108_hash NULL
++_002109_hash dfs_global_file_read 3 7787 _002109_hash NULL
++_002110_hash dgram_recvmsg 4 23104 _002110_hash NULL
++_002111_hash dma_skb_copy_datagram_iovec 3-5 21516 _002111_hash NULL
++_002113_hash dtim_interval_read 3 654 _002113_hash NULL
++_002114_hash dynamic_ps_timeout_read 3 10110 _002114_hash NULL
++_002115_hash enable_read 3 2117 _002115_hash NULL
++_002116_hash exofs_read_kern 6 39921 _002116_hash &_001885_hash
++_002117_hash fc_change_queue_depth 2 36841 _002117_hash NULL
++_002118_hash forced_ps_read 3 31685 _002118_hash NULL
++_002119_hash frequency_read 3 64031 _002119_hash NULL
++_002120_hash get_alua_req 3 4166 _002120_hash NULL
++_002121_hash get_rdac_req 3 45882 _002121_hash NULL
++_002122_hash hci_sock_recvmsg 4 7072 _002122_hash NULL
++_002123_hash hpsa_change_queue_depth 2 15449 _002123_hash NULL
++_002124_hash hptiop_adjust_disk_queue_depth 2 20122 _002124_hash NULL
++_002125_hash ide_queue_pc_tail 5 11673 _002125_hash NULL
++_002126_hash ide_raw_taskfile 4 42355 _002126_hash NULL
++_002127_hash idetape_queue_rw_tail 3 29562 _002127_hash NULL
++_002128_hash ieee80211_if_read_aid 3 9705 _002128_hash NULL
++_002129_hash ieee80211_if_read_auto_open_plinks 3 38268 _002129_hash NULL
++_002130_hash ieee80211_if_read_ave_beacon 3 64924 _002130_hash NULL
++_002131_hash ieee80211_if_read_bssid 3 35161 _002131_hash NULL
++_002132_hash ieee80211_if_read_channel_type 3 23884 _002132_hash NULL
++_002133_hash ieee80211_if_read_dot11MeshConfirmTimeout 3 60670 _002133_hash NULL
++_002134_hash ieee80211_if_read_dot11MeshGateAnnouncementProtocol 3 14486 _002134_hash NULL
++_002135_hash ieee80211_if_read_dot11MeshHoldingTimeout 3 47356 _002135_hash NULL
++_002136_hash ieee80211_if_read_dot11MeshHWMPactivePathTimeout 3 7368 _002136_hash NULL
++_002137_hash ieee80211_if_read_dot11MeshHWMPmaxPREQretries 3 59829 _002137_hash NULL
++_002138_hash ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime 3 1589 _002138_hash NULL
++_002139_hash ieee80211_if_read_dot11MeshHWMPperrMinInterval 3 17346 _002139_hash NULL
++_002140_hash ieee80211_if_read_dot11MeshHWMPpreqMinInterval 3 24208 _002140_hash NULL
++_002141_hash ieee80211_if_read_dot11MeshHWMPRannInterval 3 2249 _002141_hash NULL
++_002142_hash ieee80211_if_read_dot11MeshHWMPRootMode 3 51441 _002142_hash NULL
++_002143_hash ieee80211_if_read_dot11MeshMaxPeerLinks 3 23878 _002143_hash NULL
++_002144_hash ieee80211_if_read_dot11MeshMaxRetries 3 12756 _002144_hash NULL
++_002145_hash ieee80211_if_read_dot11MeshRetryTimeout 3 52168 _002145_hash NULL
++_002146_hash ieee80211_if_read_dot11MeshTTL 3 58307 _002146_hash NULL
++_002147_hash ieee80211_if_read_dropped_frames_congestion 3 32603 _002147_hash NULL
++_002148_hash ieee80211_if_read_dropped_frames_no_route 3 33383 _002148_hash NULL
++_002149_hash ieee80211_if_read_dropped_frames_ttl 3 44500 _002149_hash NULL
++_002150_hash ieee80211_if_read_drop_unencrypted 3 37053 _002150_hash NULL
++_002151_hash ieee80211_if_read_dtim_count 3 38419 _002151_hash NULL
++_002152_hash ieee80211_if_read_element_ttl 3 18869 _002152_hash NULL
++_002153_hash ieee80211_if_read_estab_plinks 3 32533 _002153_hash NULL
++_002154_hash ieee80211_if_read_flags 3 57470 _002389_hash NULL nohasharray
++_002155_hash ieee80211_if_read_fwded_frames 3 36520 _002155_hash NULL
++_002156_hash ieee80211_if_read_fwded_mcast 3 39571 _002156_hash &_000151_hash
++_002157_hash ieee80211_if_read_fwded_unicast 3 59740 _002157_hash NULL
++_002158_hash ieee80211_if_read_last_beacon 3 31257 _002158_hash NULL
++_002159_hash ieee80211_if_read_min_discovery_timeout 3 13946 _002159_hash NULL
++_002160_hash ieee80211_if_read_num_buffered_multicast 3 12716 _002160_hash NULL
++_002161_hash ieee80211_if_read_num_sta_authorized 3 56177 _002161_hash NULL
++_002162_hash ieee80211_if_read_num_sta_ps 3 34722 _002162_hash NULL
++_002163_hash ieee80211_if_read_path_refresh_time 3 25545 _002163_hash NULL
++_002164_hash ieee80211_if_read_peer 3 45233 _002164_hash NULL
++_002165_hash ieee80211_if_read_rc_rateidx_mask_2ghz 3 61570 _002165_hash NULL
++_002166_hash ieee80211_if_read_rc_rateidx_mask_5ghz 3 27183 _002166_hash NULL
++_002167_hash ieee80211_if_read_rc_rateidx_mcs_mask_2ghz 3 37675 _002167_hash NULL
++_002168_hash ieee80211_if_read_rc_rateidx_mcs_mask_5ghz 3 44423 _002168_hash NULL
++_002169_hash ieee80211_if_read_rssi_threshold 3 49260 _002169_hash NULL
++_002170_hash ieee80211_if_read_smps 3 27416 _002170_hash NULL
++_002171_hash ieee80211_if_read_state 3 9813 _002280_hash NULL nohasharray
++_002172_hash ieee80211_if_read_tkip_mic_test 3 19565 _002172_hash NULL
++_002173_hash ieee80211_if_read_tsf 3 16420 _002173_hash NULL
++_002174_hash ieee80211_if_read_uapsd_max_sp_len 3 15067 _002174_hash NULL
++_002175_hash ieee80211_if_read_uapsd_queues 3 55150 _002175_hash NULL
++_002176_hash ieee80211_rx_mgmt_beacon 3 24430 _002176_hash NULL
++_002177_hash ieee80211_rx_mgmt_probe_resp 3 6918 _002177_hash NULL
++_002178_hash ima_show_htable_violations 3 10619 _002178_hash NULL
++_002179_hash ima_show_measurements_count 3 23536 _002179_hash NULL
++_002180_hash insert_one_name 7 61668 _002180_hash NULL
++_002181_hash ipr_change_queue_depth 2 6431 _002181_hash NULL
++_002182_hash ip_recv_error 3 23109 _002182_hash NULL
++_002183_hash ipv6_recv_error 3 56347 _002183_hash NULL
++_002184_hash ipv6_recv_rxpmtu 3 7142 _002184_hash NULL
++_002185_hash ipx_recvmsg 4 44366 _002185_hash NULL
++_002186_hash irda_recvmsg_dgram 4 32631 _002186_hash NULL
++_002187_hash iscsi_change_queue_depth 2 23416 _002187_hash NULL
++_002188_hash ivtv_read_pos 3 34400 _002188_hash &_000303_hash
++_002189_hash key_conf_hw_key_idx_read 3 25003 _002189_hash NULL
++_002190_hash key_conf_keyidx_read 3 42443 _002190_hash NULL
++_002191_hash key_conf_keylen_read 3 49758 _002191_hash NULL
++_002192_hash key_flags_read 3 25931 _002192_hash NULL
++_002193_hash key_ifindex_read 3 31411 _002193_hash NULL
++_002194_hash key_tx_rx_count_read 3 44742 _002194_hash NULL
++_002195_hash l2cap_sock_sendmsg 4 63427 _002195_hash NULL
++_002196_hash l2tp_ip_recvmsg 4 22681 _002196_hash NULL
++_002197_hash llc_ui_recvmsg 4 3826 _002197_hash NULL
++_002198_hash lpfc_change_queue_depth 2 25905 _002198_hash NULL
++_002199_hash macvtap_do_read 4 36555 _002199_hash &_001832_hash
++_002200_hash megaraid_change_queue_depth 2 64815 _002200_hash NULL
++_002201_hash megasas_change_queue_depth 2 32747 _002201_hash NULL
++_002202_hash mptscsih_change_queue_depth 2 26036 _002202_hash NULL
++_002203_hash NCR_700_change_queue_depth 2 31742 _002203_hash NULL
++_002204_hash netlink_recvmsg 4 61600 _002204_hash NULL
++_002205_hash nfsctl_transaction_read 3 48250 _002205_hash NULL
++_002206_hash nfs_map_group_to_gid 3 15892 _002206_hash NULL
++_002207_hash nfs_map_name_to_uid 3 51132 _002207_hash NULL
++_002208_hash nr_recvmsg 4 12649 _002208_hash NULL
++_002209_hash osd_req_list_collection_objects 5 36664 _002209_hash NULL
++_002210_hash osd_req_list_partition_objects 5 56464 _002210_hash NULL
++_002212_hash packet_recv_error 3 16669 _002212_hash NULL
++_002213_hash packet_recvmsg 4 47700 _002213_hash NULL
++_002214_hash pep_recvmsg 4 19402 _002214_hash NULL
++_002215_hash pfkey_recvmsg 4 53604 _002215_hash NULL
++_002216_hash ping_recvmsg 4 25597 _002216_hash NULL
++_002217_hash pmcraid_change_queue_depth 2 9116 _002217_hash NULL
++_002218_hash pn_recvmsg 4 30887 _002218_hash NULL
++_002219_hash pointer_size_read 3 51863 _002219_hash NULL
++_002220_hash power_read 3 15939 _002220_hash NULL
++_002221_hash pppoe_recvmsg 4 15073 _002221_hash NULL
++_002222_hash pppol2tp_recvmsg 4 57742 _002222_hash NULL
++_002223_hash qla2x00_adjust_sdev_qdepth_up 2 20097 _002223_hash NULL
++_002224_hash qla2x00_change_queue_depth 2 24742 _002224_hash NULL
++_002225_hash raw_recvmsg 4 52529 _002225_hash NULL
++_002226_hash rawsock_recvmsg 4 12144 _002226_hash NULL
++_002227_hash rawv6_recvmsg 4 30265 _002227_hash NULL
++_002228_hash reada_add_block 2 54247 _002228_hash NULL
++_002229_hash readahead_tree_block 3 36285 _002229_hash NULL
++_002230_hash reada_tree_block_flagged 3 18402 _002230_hash NULL
++_002231_hash read_tree_block 3 841 _002231_hash NULL
++_002232_hash recover_peb 6-7 29238 _002232_hash NULL
++_002234_hash recv_msg 4 48709 _002234_hash NULL
++_002235_hash recv_stream 4 30138 _002235_hash NULL
++_002236_hash _req_append_segment 2 41031 _002236_hash NULL
++_002237_hash request_key_async 4 6990 _002237_hash NULL
++_002238_hash request_key_async_with_auxdata 4 46624 _002238_hash NULL
++_002239_hash request_key_with_auxdata 4 24515 _002239_hash NULL
++_002240_hash rose_recvmsg 4 2368 _002240_hash NULL
++_002241_hash rxrpc_recvmsg 4 26233 _002241_hash NULL
++_002242_hash rx_streaming_always_read 3 49401 _002242_hash NULL
++_002243_hash rx_streaming_interval_read 3 55291 _002243_hash NULL
++_002244_hash sas_change_queue_depth 2 18555 _002244_hash NULL
++_002245_hash scsi_activate_tcq 2 42640 _002245_hash NULL
++_002246_hash scsi_deactivate_tcq 2 47086 _002246_hash NULL
++_002247_hash scsi_execute 5 33596 _002247_hash NULL
++_002248_hash _scsih_adjust_queue_depth 2 1083 _002248_hash NULL
++_002249_hash scsi_init_shared_tag_map 2 59812 _002249_hash NULL
++_002250_hash scsi_track_queue_full 2 44239 _002250_hash NULL
++_002251_hash sctp_recvmsg 4 23265 _002251_hash NULL
++_002252_hash send_stream 4 3397 _002252_hash NULL
++_002253_hash skb_copy_and_csum_datagram_iovec 2 24466 _002253_hash NULL
++_002255_hash snd_gf1_mem_proc_dump 5 16926 _002255_hash NULL
++_002256_hash split_scan_timeout_read 3 20029 _002256_hash NULL
++_002257_hash sta_dev_read 3 14782 _002257_hash NULL
++_002258_hash sta_inactive_ms_read 3 25690 _002258_hash NULL
++_002259_hash sta_last_signal_read 3 31818 _002259_hash NULL
++_002260_hash stats_dot11ACKFailureCount_read 3 45558 _002260_hash NULL
++_002261_hash stats_dot11FCSErrorCount_read 3 28154 _002261_hash NULL
++_002262_hash stats_dot11RTSFailureCount_read 3 43948 _002262_hash NULL
++_002263_hash stats_dot11RTSSuccessCount_read 3 33065 _002263_hash NULL
++_002264_hash storvsc_connect_to_vsp 2 22 _002264_hash NULL
++_002265_hash suspend_dtim_interval_read 3 64971 _002265_hash NULL
++_002266_hash sys_msgrcv 3 959 _002266_hash NULL
++_002267_hash tcm_loop_change_queue_depth 2 42454 _002267_hash NULL
++_002268_hash tcp_copy_to_iovec 3 28344 _002268_hash NULL
++_002269_hash tcp_recvmsg 4 31238 _002269_hash NULL
++_002270_hash timeout_read 3 47915 _002270_hash NULL
++_002271_hash total_ps_buffered_read 3 16365 _002271_hash NULL
++_002272_hash tun_put_user 4 59849 _002272_hash NULL
++_002273_hash twa_change_queue_depth 2 48808 _002273_hash NULL
++_002274_hash tw_change_queue_depth 2 11116 _002274_hash NULL
++_002275_hash twl_change_queue_depth 2 41342 _002275_hash NULL
++_002276_hash ubi_eba_write_leb 5-6 19826 _002276_hash NULL
++_002278_hash ubi_eba_write_leb_st 5 27896 _002278_hash NULL
++_002279_hash udp_recvmsg 4 42558 _002279_hash NULL
++_002280_hash udpv6_recvmsg 4 9813 _002280_hash &_002171_hash
++_002281_hash ulong_read_file 3 42304 _002281_hash &_000511_hash
++_002282_hash unix_dgram_recvmsg 4 14952 _002282_hash NULL
++_002283_hash user_power_read 3 39414 _002283_hash NULL
++_002284_hash vcc_recvmsg 4 37198 _002284_hash NULL
++_002285_hash wep_iv_read 3 54744 _002285_hash NULL
++_002286_hash x25_recvmsg 4 42777 _002286_hash NULL
++_002287_hash xfs_iext_insert 3 18667 _002287_hash NULL
++_002288_hash xfs_iext_remove 3 50909 _002288_hash NULL
++_002289_hash xlog_find_verify_log_record 2 18870 _002289_hash NULL
++_002290_hash btrfs_alloc_free_block 3 29982 _002290_hash NULL
++_002291_hash cx18_read_pos 3 4683 _002291_hash NULL
++_002292_hash l2cap_sock_recvmsg 4 59886 _002292_hash NULL
++_002293_hash osd_req_list_dev_partitions 4 60027 _002293_hash NULL
++_002294_hash osd_req_list_partition_collections 5 38223 _002294_hash NULL
++_002295_hash osst_do_scsi 4 44410 _002295_hash NULL
++_002296_hash qla2x00_handle_queue_full 2 24365 _002296_hash NULL
++_002297_hash rfcomm_sock_recvmsg 4 22227 _002297_hash NULL
++_002298_hash scsi_execute_req 5 42088 _002298_hash NULL
++_002299_hash _scsih_change_queue_depth 2 26230 _002299_hash NULL
++_002300_hash spi_execute 5 28736 _002300_hash NULL
++_002301_hash submit_inquiry 3 42108 _002301_hash NULL
++_002302_hash tcp_dma_try_early_copy 3 37651 _002302_hash NULL
++_002303_hash tun_do_read 4 50800 _002303_hash NULL
++_002304_hash ubi_eba_atomic_leb_change 5 13041 _002304_hash NULL
++_002305_hash ubi_leb_write 4-5 41691 _002305_hash NULL
++_002307_hash unix_seqpacket_recvmsg 4 23062 _002307_hash NULL
++_002308_hash write_leb 5 36957 _002308_hash NULL
++_002309_hash ch_do_scsi 4 31171 _002309_hash NULL
++_002310_hash dbg_leb_write 4-5 20478 _002310_hash NULL
++_002312_hash scsi_mode_sense 5 16835 _002312_hash NULL
++_002313_hash scsi_vpd_inquiry 4 30040 _002313_hash NULL
++_002314_hash ses_recv_diag 4 47143 _002314_hash &_000673_hash
++_002315_hash ses_send_diag 4 64527 _002315_hash NULL
++_002316_hash spi_dv_device_echo_buffer 2-3 39846 _002316_hash NULL
++_002318_hash ubifs_leb_write 4-5 61226 _002318_hash NULL
++_002320_hash ubi_leb_change 4 14899 _002320_hash NULL
++_002321_hash ubi_write 4-5 30809 _002321_hash NULL
++_002322_hash dbg_leb_change 4 19969 _002322_hash NULL
++_002323_hash gluebi_write 3 27905 _002323_hash NULL
++_002324_hash scsi_get_vpd_page 4 51951 _002324_hash NULL
++_002325_hash sd_do_mode_sense 5 11507 _002325_hash NULL
++_002326_hash ubifs_leb_change 4 22399 _002436_hash NULL nohasharray
++_002327_hash ubifs_write_node 5 15088 _002327_hash NULL
++_002328_hash fixup_leb 3 43256 _002328_hash NULL
++_002329_hash recover_head 3 17904 _002329_hash NULL
++_002330_hash alloc_cpu_rmap 1 65363 _002330_hash NULL
++_002331_hash alloc_ebda_hpc 1-2 50046 _002331_hash NULL
++_002333_hash alloc_sched_domains 1 28972 _002333_hash NULL
++_002334_hash amthi_read 4 45831 _002334_hash NULL
++_002335_hash bcm_char_read 3 31750 _002335_hash NULL
++_002336_hash BcmCopySection 5 2035 _002336_hash NULL
++_002337_hash buffer_from_user 3 51826 _002337_hash NULL
++_002338_hash buffer_to_user 3 35439 _002338_hash NULL
++_002339_hash c4iw_init_resource_fifo 3 48090 _002339_hash NULL
++_002340_hash c4iw_init_resource_fifo_random 3 25547 _002340_hash NULL
++_002341_hash card_send_command 3 40757 _002341_hash NULL
++_002342_hash chd_dec_fetch_cdata 3 50926 _002342_hash NULL
++_002343_hash crystalhd_create_dio_pool 2 3427 _002343_hash NULL
++_002344_hash crystalhd_user_data 3 18407 _002344_hash NULL
++_002345_hash cxio_init_resource_fifo 3 28764 _002345_hash NULL
++_002346_hash cxio_init_resource_fifo_random 3 47151 _002346_hash NULL
++_002347_hash do_pages_stat 2 4437 _002347_hash NULL
++_002348_hash do_read_log_to_user 4 3236 _002348_hash NULL
++_002349_hash do_write_log_from_user 3 39362 _002349_hash NULL
++_002350_hash dt3155_read 3 59226 _002350_hash NULL
++_002351_hash easycap_alsa_vmalloc 2 14426 _002351_hash NULL
++_002352_hash evm_read_key 3 54674 _002352_hash NULL
++_002353_hash evm_write_key 3 27715 _002353_hash NULL
++_002354_hash fir16_create 3 5574 _002354_hash NULL
++_002355_hash iio_allocate_device 1 18821 _002355_hash NULL
++_002356_hash __iio_allocate_kfifo 2-3 55738 _002356_hash NULL
++_002358_hash __iio_allocate_sw_ring_buffer 3 4843 _002358_hash NULL
++_002359_hash iio_debugfs_read_reg 3 60908 _002359_hash NULL
++_002360_hash iio_debugfs_write_reg 3 22742 _002360_hash NULL
++_002361_hash iio_event_chrdev_read 3 54757 _002361_hash NULL
++_002362_hash iio_read_first_n_kfifo 2 57910 _002362_hash NULL
++_002363_hash iio_read_first_n_sw_rb 2 51911 _002363_hash NULL
++_002364_hash ioapic_setup_resources 1 35255 _002364_hash NULL
++_002365_hash keymap_store 4 45406 _002365_hash NULL
++_002366_hash kzalloc_node 1 24352 _002366_hash NULL
++_002367_hash line6_alloc_sysex_buffer 4 28225 _002367_hash NULL
++_002368_hash line6_dumpreq_initbuf 3 53123 _002368_hash NULL
++_002369_hash line6_midibuf_init 2 52425 _002369_hash NULL
++_002370_hash lirc_write 3 20604 _002370_hash NULL
++_002371_hash _malloc 1 54077 _002371_hash NULL
++_002372_hash mei_read 3 6507 _002372_hash NULL
++_002373_hash mei_write 3 4005 _002373_hash NULL
++_002374_hash mempool_create_node 1 44715 _002374_hash NULL
++_002375_hash msg_set 3 51725 _002375_hash NULL
++_002376_hash newpart 6 47485 _002376_hash NULL
++_002377_hash OS_kmalloc 1 36909 _002377_hash NULL
++_002378_hash pcpu_alloc_bootmem 2 62074 _002378_hash NULL
++_002379_hash pcpu_get_vm_areas 3 50085 _002379_hash NULL
++_002380_hash resource_from_user 3 30341 _002380_hash NULL
++_002381_hash sca3000_read_data 4 57064 _002381_hash NULL
++_002382_hash sca3000_read_first_n_hw_rb 2 11479 _002382_hash NULL
++_002383_hash send_midi_async 3 57463 _002383_hash NULL
++_002384_hash sep_create_dcb_dmatables_context 6 37551 _002384_hash NULL
++_002385_hash sep_create_dcb_dmatables_context_kernel 6 49728 _002385_hash NULL
++_002386_hash sep_create_msgarea_context 4 33829 _002386_hash NULL
++_002387_hash sep_lli_table_secure_dma 2-3 64042 _002387_hash NULL
++_002389_hash sep_lock_user_pages 2-3 57470 _002389_hash &_002154_hash
++_002391_hash sep_prepare_input_output_dma_table_in_dcb 4-5 63087 _002391_hash NULL
++_002393_hash sep_read 3 17161 _002393_hash NULL
++_002394_hash TransmitTcb 4 12989 _002394_hash NULL
++_002395_hash ValidateDSDParamsChecksum 3 63654 _002395_hash NULL
++_002396_hash Wb35Reg_BurstWrite 4 62327 _002396_hash NULL
++_002397_hash __alloc_bootmem_low_node 2 25726 _002397_hash &_001499_hash
++_002398_hash __alloc_bootmem_node 2 1992 _002398_hash NULL
++_002399_hash alloc_irq_cpu_rmap 1 28459 _002399_hash NULL
++_002400_hash alloc_ring 2-4 18278 _002400_hash NULL
++_002402_hash c4iw_init_resource 2-3 30393 _002402_hash NULL
++_002404_hash cxio_hal_init_resource 2-7-6 29771 _002404_hash &_000284_hash
++_002407_hash cxio_hal_init_rhdl_resource 1 25104 _002407_hash NULL
++_002408_hash disk_expand_part_tbl 2 30561 _002408_hash NULL
++_002409_hash InterfaceTransmitPacket 3 42058 _002409_hash NULL
++_002410_hash line6_dumpreq_init 3 34473 _002410_hash NULL
++_002411_hash mempool_create 1 29437 _002411_hash NULL
++_002412_hash pcpu_fc_alloc 2 11818 _002412_hash NULL
++_002413_hash pod_alloc_sysex_buffer 3 31651 _002413_hash NULL
++_002414_hash r8712_usbctrl_vendorreq 6 48489 _002414_hash NULL
++_002415_hash r871x_set_wpa_ie 3 7000 _002415_hash NULL
++_002416_hash sys_move_pages 2 42626 _002416_hash NULL
++_002417_hash variax_alloc_sysex_buffer 3 15237 _002417_hash NULL
++_002418_hash vme_user_write 3 15587 _002418_hash NULL
++_002419_hash add_partition 2 55588 _002419_hash NULL
++_002420_hash __alloc_bootmem_node_high 2 65076 _002420_hash NULL
++_002421_hash ceph_msgpool_init 3 33312 _002421_hash NULL
++_002423_hash mempool_create_kmalloc_pool 1 41650 _002423_hash NULL
++_002424_hash mempool_create_page_pool 1 30189 _002424_hash NULL
++_002425_hash mempool_create_slab_pool 1 62907 _002425_hash NULL
++_002426_hash variax_set_raw2 4 32374 _002426_hash NULL
++_002427_hash bioset_create 1 5580 _002427_hash NULL
++_002428_hash bioset_integrity_create 2 62708 _002428_hash NULL
++_002429_hash biovec_create_pools 2 9575 _002429_hash NULL
++_002430_hash i2o_pool_alloc 4 55485 _002430_hash NULL
++_002431_hash prison_create 1 43623 _002431_hash NULL
++_002432_hash unlink_simple 3 47506 _002432_hash NULL
++_002433_hash alloc_ieee80211 1 20063 _002433_hash NULL
++_002434_hash alloc_ieee80211_rsl 1 34564 _002434_hash NULL
++_002435_hash alloc_page_cgroup 1 2919 _002435_hash NULL
++_002436_hash alloc_private 2 22399 _002436_hash &_002326_hash
++_002437_hash alloc_rtllib 1 51136 _002437_hash NULL
++_002438_hash alloc_rx_desc_ring 2 18016 _002438_hash NULL
++_002439_hash alloc_subdevices 2 43300 _002439_hash NULL
++_002440_hash atomic_counters_read 3 48827 _002440_hash NULL
++_002441_hash atomic_stats_read 3 36228 _002441_hash NULL
++_002442_hash capabilities_read 3 58457 _002442_hash NULL
++_002443_hash comedi_read 3 13199 _002443_hash NULL
++_002444_hash comedi_write 3 47926 _002444_hash NULL
++_002445_hash compat_do_arpt_set_ctl 4 12184 _002445_hash NULL
++_002446_hash compat_do_ip6t_set_ctl 4 3184 _002446_hash NULL
++_002447_hash compat_do_ipt_set_ctl 4 58466 _002447_hash &_001852_hash
++_002448_hash compat_filldir 3 32999 _002448_hash NULL
++_002449_hash compat_filldir64 3 35354 _002449_hash NULL
++_002450_hash compat_fillonedir 3 15620 _002450_hash NULL
++_002451_hash compat_rw_copy_check_uvector 3 25242 _002451_hash NULL
++_002452_hash compat_sock_setsockopt 5 23 _002452_hash NULL
++_002453_hash compat_sys_kexec_load 2 35674 _002453_hash NULL
++_002454_hash compat_sys_keyctl 4 9639 _002454_hash NULL
++_002455_hash compat_sys_move_pages 2 5861 _002455_hash NULL
++_002456_hash compat_sys_mq_timedsend 3 31060 _002456_hash NULL
++_002457_hash compat_sys_msgrcv 2 7482 _002457_hash NULL
++_002458_hash compat_sys_msgsnd 2 10738 _002458_hash NULL
++_002459_hash compat_sys_semtimedop 3 3606 _002459_hash NULL
++_002460_hash __copy_in_user 3 34790 _002460_hash NULL
++_002461_hash copy_in_user 3 57502 _002461_hash NULL
++_002462_hash dev_counters_read 3 19216 _002462_hash NULL
++_002463_hash dev_names_read 3 38509 _002463_hash NULL
++_002464_hash do_arpt_set_ctl 4 51053 _002464_hash NULL
++_002465_hash do_ip6t_set_ctl 4 60040 _002465_hash NULL
++_002466_hash do_ipt_set_ctl 4 56238 _002466_hash NULL
++_002467_hash drbd_bm_resize 2 20522 _002467_hash NULL
++_002468_hash driver_names_read 3 60399 _002468_hash NULL
++_002469_hash driver_stats_read 3 8944 _002469_hash NULL
++_002470_hash __earlyonly_bootmem_alloc 2 23824 _002470_hash NULL
++_002471_hash evtchn_read 3 3569 _002471_hash NULL
++_002472_hash ext_sd_execute_read_data 9 48589 _002472_hash NULL
++_002473_hash ext_sd_execute_write_data 9 8175 _002473_hash NULL
++_002474_hash fat_compat_ioctl_filldir 3 36328 _002474_hash NULL
++_002475_hash firmwareUpload 3 32794 _002475_hash NULL
++_002476_hash flash_read 3 57843 _002476_hash NULL
++_002477_hash flash_write 3 62354 _002477_hash NULL
++_002478_hash gather_array 3 56641 _002478_hash NULL
++_002479_hash ghash_async_setkey 3 60001 _002479_hash NULL
++_002480_hash gntdev_alloc_map 2 35145 _002480_hash NULL
++_002481_hash gnttab_map 2 56439 _002481_hash NULL
++_002482_hash gru_alloc_gts 2-3 60056 _002482_hash NULL
++_002484_hash handle_eviocgbit 3 44193 _002484_hash NULL
++_002485_hash hid_parse_report 3 51737 _002485_hash NULL
++_002486_hash ieee80211_alloc_txb 1 52477 _002486_hash NULL
++_002487_hash ieee80211_wx_set_gen_ie 3 51399 _002487_hash NULL
++_002488_hash ieee80211_wx_set_gen_ie_rsl 3 3521 _002488_hash NULL
++_002489_hash init_cdev 1 8274 _002489_hash NULL
++_002490_hash init_per_cpu 1 17880 _002490_hash NULL
++_002491_hash ipath_create_cq 2 45586 _002491_hash NULL
++_002492_hash ipath_get_base_info 3 7043 _002492_hash NULL
++_002493_hash ipath_init_qp_table 2 25167 _002493_hash NULL
++_002494_hash ipath_resize_cq 2 712 _002494_hash NULL
++_002495_hash ni_gpct_device_construct 5 610 _002495_hash NULL
++_002496_hash options_write 3 47243 _002496_hash NULL
++_002497_hash portcntrs_1_read 3 47253 _002497_hash NULL
++_002498_hash portcntrs_2_read 3 56586 _002498_hash NULL
++_002499_hash portnames_read 3 41958 _002499_hash NULL
++_002500_hash ptc_proc_write 3 12076 _002500_hash NULL
++_002501_hash put_cmsg_compat 4 35937 _002501_hash NULL
++_002502_hash qib_alloc_devdata 2 51819 _002502_hash NULL
++_002503_hash qib_alloc_fast_reg_page_list 2 10507 _002503_hash NULL
++_002504_hash qib_cdev_init 1 34778 _002504_hash NULL
++_002505_hash qib_create_cq 2 27497 _002505_hash NULL
++_002506_hash qib_diag_write 3 62133 _002506_hash NULL
++_002507_hash qib_get_base_info 3 11369 _002507_hash NULL
++_002508_hash qib_resize_cq 2 53090 _002508_hash NULL
++_002509_hash qsfp_1_read 3 21915 _002509_hash NULL
++_002510_hash qsfp_2_read 3 31491 _002510_hash NULL
++_002511_hash queue_reply 3 22416 _002511_hash NULL
++_002512_hash Realloc 2 34961 _002512_hash NULL
++_002513_hash rfc4106_set_key 3 54519 _002513_hash NULL
++_002514_hash rtllib_alloc_txb 1 21687 _002514_hash NULL
++_002515_hash rtllib_wx_set_gen_ie 3 59808 _002515_hash NULL
++_002516_hash rts51x_transfer_data_partial 6 5735 _002516_hash NULL
++_002517_hash sparse_early_usemaps_alloc_node 4 9269 _002517_hash NULL
++_002518_hash split 2 11691 _002518_hash NULL
++_002519_hash stats_read_ul 3 32751 _002519_hash NULL
++_002520_hash store_debug_level 3 35652 _002520_hash NULL
++_002521_hash sys32_ipc 3 7238 _002521_hash NULL
++_002522_hash sys32_rt_sigpending 2 25814 _002522_hash NULL
++_002523_hash tunables_read 3 36385 _002523_hash NULL
++_002524_hash tunables_write 3 59563 _002524_hash NULL
++_002525_hash u32_array_read 3 2219 _002525_hash NULL
++_002526_hash usb_buffer_alloc 2 36276 _002526_hash NULL
++_002527_hash xenbus_file_write 3 6282 _002527_hash NULL
++_002528_hash xpc_kmalloc_cacheline_aligned 1 42895 _002528_hash NULL
++_002529_hash xpc_kzalloc_cacheline_aligned 1 65433 _002529_hash NULL
++_002530_hash xsd_read 3 15653 _002530_hash NULL
++_002531_hash compat_do_readv_writev 4 49102 _002531_hash NULL
++_002532_hash compat_keyctl_instantiate_key_iov 3 57431 _002532_hash NULL
++_002533_hash compat_process_vm_rw 3-5 22254 _002533_hash NULL
++_002535_hash compat_sys_setsockopt 5 3326 _002535_hash NULL
++_002536_hash ipath_cdev_init 1 37752 _002536_hash NULL
++_002537_hash ms_read_multiple_pages 4-5 8052 _002537_hash NULL
++_002539_hash ms_write_multiple_pages 5-6 10362 _002539_hash NULL
++_002541_hash sparse_mem_maps_populate_node 4 12669 _002541_hash &_002004_hash
++_002542_hash vmemmap_alloc_block 1 43245 _002542_hash NULL
++_002543_hash xd_read_multiple_pages 4-5 11422 _002543_hash NULL
++_002545_hash xd_write_multiple_pages 5-6 53633 _002545_hash NULL
++_002546_hash compat_readv 3 30273 _002546_hash NULL
++_002547_hash compat_sys_process_vm_readv 3-5 15374 _002547_hash NULL
++_002549_hash compat_sys_process_vm_writev 3-5 41194 _002549_hash NULL
++_002551_hash compat_writev 3 60063 _002551_hash NULL
++_002552_hash ms_rw_multi_sector 4 7459 _002552_hash NULL
++_002553_hash sparse_early_mem_maps_alloc_node 4 36971 _002553_hash NULL
++_002554_hash vmemmap_alloc_block_buf 1 61126 _002554_hash NULL
++_002555_hash xd_rw 4 49020 _002555_hash NULL
++_002556_hash compat_sys_preadv64 3 24283 _002556_hash NULL
++_002557_hash compat_sys_pwritev64 3 51151 _002557_hash NULL
++_002558_hash compat_sys_readv 3 20911 _002558_hash NULL
++_002559_hash compat_sys_writev 3 5784 _002559_hash NULL
++_002560_hash ms_rw 4 17220 _002560_hash NULL
++_002561_hash compat_sys_preadv 3 583 _002561_hash NULL
++_002562_hash compat_sys_pwritev 3 17886 _002562_hash NULL
++_002563_hash alloc_apertures 1 56561 _002563_hash NULL
++_002564_hash bin_uuid 3 28999 _002564_hash NULL
++_002565_hash __copy_from_user_inatomic_nocache 3 49921 _002565_hash NULL
++_002566_hash do_dmabuf_dirty_sou 7 3017 _002566_hash NULL
++_002567_hash do_surface_dirty_sou 7 39678 _002567_hash NULL
++_002568_hash drm_agp_bind_pages 3 56748 _002568_hash NULL
++_002569_hash drm_calloc_large 1-2 65421 _002569_hash NULL
++_002571_hash drm_fb_helper_init 3-4 19044 _002571_hash NULL
++_002573_hash drm_ht_create 2 18853 _002573_hash NULL
++_002574_hash drm_malloc_ab 1-2 16831 _002574_hash NULL
++_002576_hash drm_mode_crtc_set_gamma_size 2 31881 _002576_hash NULL
++_002577_hash drm_plane_init 6 28731 _002577_hash NULL
++_002578_hash drm_property_create 4 51239 _002578_hash NULL
++_002579_hash drm_property_create_blob 2 7414 _002579_hash NULL
++_002580_hash drm_vblank_init 2 11362 _002580_hash NULL
++_002581_hash drm_vmalloc_dma 1 14550 _002581_hash NULL
++_002582_hash fb_alloc_cmap_gfp 2 20792 _002582_hash NULL
++_002583_hash fbcon_prepare_logo 5 6246 _002583_hash NULL
++_002584_hash fb_read 3 33506 _002584_hash NULL
++_002585_hash fb_write 3 46924 _002585_hash NULL
++_002586_hash framebuffer_alloc 1 59145 _002586_hash NULL
++_002587_hash i915_cache_sharing_read 3 24775 _002587_hash NULL
++_002588_hash i915_cache_sharing_write 3 57961 _002588_hash NULL
++_002589_hash i915_max_freq_read 3 20581 _002589_hash NULL
++_002590_hash i915_max_freq_write 3 11350 _002590_hash NULL
++_002591_hash i915_wedged_read 3 35474 _002591_hash NULL
++_002592_hash i915_wedged_write 3 47771 _002592_hash NULL
++_002593_hash p9_client_read 5 19750 _002593_hash NULL
++_002594_hash probe_kernel_write 3 17481 _002594_hash NULL
++_002595_hash sched_feat_write 3 55202 _002595_hash NULL
++_002596_hash sd_alloc_ctl_entry 1 29708 _002596_hash NULL
++_002597_hash tstats_write 3 60432 _002597_hash &_000009_hash
++_002598_hash ttm_bo_fbdev_io 4 9805 _002598_hash NULL
++_002599_hash ttm_bo_io 5 47000 _002599_hash NULL
++_002600_hash ttm_dma_page_pool_free 2 34135 _002600_hash NULL
++_002601_hash ttm_page_pool_free 2 61661 _002601_hash NULL
++_002602_hash vmw_execbuf_process 5 22885 _002602_hash NULL
++_002603_hash vmw_fifo_reserve 2 12141 _002603_hash NULL
++_002604_hash vmw_kms_present 9 38130 _002604_hash NULL
++_002605_hash vmw_kms_readback 6 5727 _002605_hash NULL
++_002606_hash do_dmabuf_dirty_ldu 6 52241 _002606_hash NULL
++_002607_hash drm_mode_create_tv_properties 2 23122 _002607_hash NULL
++_002608_hash drm_property_create_enum 5 29201 _002608_hash NULL
++_002609_hash fast_user_write 5 20494 _002609_hash NULL
++_002610_hash fb_alloc_cmap 2 6554 _002610_hash NULL
++_002611_hash i915_gem_execbuffer_relocate_slow 7 25355 _002611_hash NULL
++_002612_hash kgdb_hex2mem 3 24755 _002612_hash NULL
++_002613_hash ttm_object_device_init 2 10321 _002613_hash NULL
++_002614_hash ttm_object_file_init 2 27804 _002614_hash NULL
++_002615_hash vmw_cursor_update_image 3-4 16332 _002615_hash NULL
++_002617_hash vmw_gmr2_bind 3 21305 _002617_hash NULL
++_002618_hash vmw_cursor_update_dmabuf 3-4 32045 _002618_hash NULL
++_002620_hash vmw_gmr_bind 3 44130 _002620_hash NULL
++_002621_hash vmw_du_crtc_cursor_set 4-5 28479 _002621_hash NULL
++_002622_hash __module_alloc 1 50004 _002622_hash NULL
++_002623_hash module_alloc_update_bounds_rw 1 63233 _002623_hash NULL
++_002624_hash module_alloc_update_bounds_rx 1 58634 _002624_hash NULL
++_002625_hash acpi_system_write_alarm 3 40205 _002625_hash NULL
++_002626_hash create_table 2 16213 _002626_hash NULL
++_002627_hash mem_read 3 57631 _002627_hash NULL
++_002628_hash mem_write 3 22232 _002628_hash NULL
++_002629_hash proc_fault_inject_read 3 36802 _002629_hash NULL
++_002630_hash proc_fault_inject_write 3 21058 _002630_hash NULL
++_002631_hash v9fs_fid_readn 4 60544 _002631_hash NULL
++_002632_hash v9fs_file_read 3 40858 _002632_hash NULL
++_002633_hash __devres_alloc 2 25598 _002633_hash NULL
++_002634_hash acl_alloc 1 35979 _002634_hash NULL
++_002635_hash acl_alloc_stack_init 1 60630 _002635_hash NULL
++_002636_hash acl_alloc_num 1-2 60778 _002636_hash NULL
+diff --git a/tools/gcc/size_overflow_plugin.c b/tools/gcc/size_overflow_plugin.c
+new file mode 100644
+index 0000000..cc96254
+--- /dev/null
++++ b/tools/gcc/size_overflow_plugin.c
+@@ -0,0 +1,1204 @@
++/*
++ * Copyright 2011, 2012 by Emese Revfy <re.emese@gmail.com>
++ * Licensed under the GPL v2, or (at your option) v3
++ *
++ * Homepage:
++ * http://www.grsecurity.net/~ephox/overflow_plugin/
++ *
++ * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
++ * with double integer precision (DImode/TImode for 32/64 bit integer types).
++ * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
++ *
++ * Usage:
++ * $ gcc -I`gcc -print-file-name=plugin`/include/c-family -I`gcc -print-file-name=plugin`/include -fPIC -shared -O2 -ggdb -Wall -W -Wno-missing-field-initializers -o size_overflow_plugin.so size_overflow_plugin.c
++ * $ gcc -fplugin=size_overflow_plugin.so test.c  -O2
++ */
++
++#include "gcc-plugin.h"
++#include "config.h"
++#include "system.h"
++#include "coretypes.h"
++#include "tree.h"
++#include "tree-pass.h"
++#include "intl.h"
++#include "plugin-version.h"
++#include "tm.h"
++#include "toplev.h"
++#include "function.h"
++#include "tree-flow.h"
++#include "plugin.h"
++#include "gimple.h"
++#include "c-common.h"
++#include "diagnostic.h"
++#include "cfgloop.h"
++
++struct size_overflow_hash {
++              struct size_overflow_hash *next;
++              const char *name;
++              unsigned int param;
++};
++
++#include "size_overflow_hash.h"
++
++#define __unused __attribute__((__unused__))
++#define NAME(node) IDENTIFIER_POINTER(DECL_NAME(node))
++#define NAME_LEN(node) IDENTIFIER_LENGTH(DECL_NAME(node))
++#define BEFORE_STMT true
++#define AFTER_STMT false
++#define CREATE_NEW_VAR NULL_TREE
++#define CODES_LIMIT 32
++#define MAX_PARAM 10
++
++#if BUILDING_GCC_VERSION == 4005
++#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE)))
++#endif
++
++int plugin_is_GPL_compatible;
++void debug_gimple_stmt(gimple gs);
++
++static tree expand(struct pointer_set_t *visited, bool *potentionally_overflowed, tree var);
++static tree signed_size_overflow_type;
++static tree unsigned_size_overflow_type;
++static tree report_size_overflow_decl;
++static tree const_char_ptr_type_node;
++static unsigned int handle_function(void);
++
++static struct plugin_info size_overflow_plugin_info = {
++      .version        = "20120618beta",
++      .help           = "no-size-overflow\tturn off size overflow checking\n",
++};
++
++static tree handle_size_overflow_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
++{
++      unsigned int arg_count = type_num_arguments(*node);
++
++      for (; args; args = TREE_CHAIN(args)) {
++              tree position = TREE_VALUE(args);
++              if (TREE_CODE(position) != INTEGER_CST || TREE_INT_CST_HIGH(position) || TREE_INT_CST_LOW(position) < 1 || TREE_INT_CST_LOW(position) > arg_count ) {
++                      error("handle_size_overflow_attribute: overflow parameter outside range.");
++                      *no_add_attrs = true;
++              }
++      }
++      return NULL_TREE;
++}
++
++static struct attribute_spec no_size_overflow_attr = {
++      .name                           = "size_overflow",
++      .min_length                     = 1,
++      .max_length                     = -1,
++      .decl_required                  = false,
++      .type_required                  = true,
++      .function_type_required         = true,
++      .handler                        = handle_size_overflow_attribute,
++#if BUILDING_GCC_VERSION >= 4007
++      .affects_type_identity          = false
++#endif
++};
++
++static void register_attributes(void __unused *event_data, void __unused *data)
++{
++      register_attribute(&no_size_overflow_attr);
++}
++
++// http://www.team5150.com/~andrew/noncryptohashzoo2~/CrapWow.html
++static unsigned int CrapWow(const char *key, unsigned int len, unsigned int seed)
++{
++#define cwfold( a, b, lo, hi ) { p = (unsigned int)(a) * (unsigned long long)(b); lo ^= (unsigned int)p; hi ^= (unsigned int)(p >> 32); }
++#define cwmixa( in ) { cwfold( in, m, k, h ); }
++#define cwmixb( in ) { cwfold( in, n, h, k ); }
++
++      const unsigned int m = 0x57559429;
++      const unsigned int n = 0x5052acdb;
++      const unsigned int *key4 = (const unsigned int *)key;
++      unsigned int h = len;
++      unsigned int k = len + seed + n;
++      unsigned long long p;
++
++      while (len >= 8) {
++              cwmixb(key4[0]) cwmixa(key4[1]) key4 += 2;
++              len -= 8;
++      }
++      if (len >= 4) {
++              cwmixb(key4[0]) key4 += 1;
++              len -= 4;
++      }
++      if (len)
++              cwmixa(key4[0] & ((1 << (len * 8)) - 1 ));
++      cwmixb(h ^ (k + n));
++      return k ^ h;
++
++#undef cwfold
++#undef cwmixa
++#undef cwmixb
++}
++
++static inline unsigned int get_hash_num(const char *fndecl, const char *tree_codes, unsigned int len, unsigned int seed)
++{
++      unsigned int fn = CrapWow(fndecl, strlen(fndecl), seed) & 0xffff;
++      unsigned int codes = CrapWow(tree_codes, len, seed) & 0xffff;
++      return fn ^ codes;
++}
++
++static inline tree get_original_function_decl(tree fndecl)
++{
++      if (DECL_ABSTRACT_ORIGIN(fndecl))
++              return DECL_ABSTRACT_ORIGIN(fndecl);
++      return fndecl;
++}
++
++static inline gimple get_def_stmt(tree node)
++{
++      gcc_assert(TREE_CODE(node) == SSA_NAME);
++      return SSA_NAME_DEF_STMT(node);
++}
++
++static unsigned char get_tree_code(tree type)
++{
++      switch (TREE_CODE(type)) {
++      case ARRAY_TYPE:
++              return 0;
++      case BOOLEAN_TYPE:
++              return 1;
++      case ENUMERAL_TYPE:
++              return 2;
++      case FUNCTION_TYPE:
++              return 3;
++      case INTEGER_TYPE:
++              return 4;
++      case POINTER_TYPE:
++              return 5;
++      case RECORD_TYPE:
++              return 6;
++      case UNION_TYPE:
++              return 7;
++      case VOID_TYPE:
++              return 8;
++      case REAL_TYPE:
++              return 9;
++      case VECTOR_TYPE:
++              return 10;
++      case REFERENCE_TYPE:
++              return 11;
++      default:
++              debug_tree(type);
++              gcc_unreachable();
++      }
++}
++
++static size_t add_type_codes(tree type, unsigned char *tree_codes, size_t len)
++{
++      gcc_assert(type != NULL_TREE);
++
++      while (type && len < CODES_LIMIT) {
++              tree_codes[len] = get_tree_code(type);
++              len++;
++              type = TREE_TYPE(type);
++      }
++      return len;
++}
++
++static unsigned int get_function_decl(tree fndecl, unsigned char *tree_codes)
++{
++      tree arg, result, type = TREE_TYPE(fndecl);
++      enum tree_code code = TREE_CODE(type);
++      size_t len = 0;
++
++      gcc_assert(code == FUNCTION_TYPE);
++
++      arg = TYPE_ARG_TYPES(type);
++      // skip builtins __builtin_constant_p
++      if (!arg && DECL_BUILT_IN(fndecl))
++              return 0;
++      gcc_assert(arg != NULL_TREE);
++
++      if (TREE_CODE_CLASS(code) == tcc_type)
++              result = type;
++      else
++              result = DECL_RESULT(fndecl);
++
++      gcc_assert(result != NULL_TREE);
++      len = add_type_codes(TREE_TYPE(result), tree_codes, len);
++
++      while (arg && len < CODES_LIMIT) {
++              len = add_type_codes(TREE_VALUE(arg), tree_codes, len);
++              arg = TREE_CHAIN(arg);
++      }
++
++      gcc_assert(len != 0);
++      return len;
++}
++
++static struct size_overflow_hash *get_function_hash(tree fndecl)
++{
++      unsigned int hash;
++      struct size_overflow_hash *entry;
++      unsigned char tree_codes[CODES_LIMIT];
++      size_t len;
++      const char *func_name = NAME(fndecl);
++
++      len = get_function_decl(fndecl, tree_codes);
++      if (len == 0)
++              return NULL;
++
++      hash = get_hash_num(func_name, (const char*) tree_codes, len, 0);
++
++      entry = size_overflow_hash[hash];
++      while (entry) {
++              if (!strcmp(entry->name, func_name))
++                      return entry;
++              entry = entry->next;
++      }
++
++      return NULL;
++}
++
++static void check_arg_type(tree var)
++{
++      tree type = TREE_TYPE(var);
++      enum tree_code code = TREE_CODE(type);
++
++      gcc_assert(code == INTEGER_TYPE || code == ENUMERAL_TYPE ||
++                (code == POINTER_TYPE && TREE_CODE(TREE_TYPE(type)) == VOID_TYPE) ||
++                (code == POINTER_TYPE && TREE_CODE(TREE_TYPE(type)) == INTEGER_TYPE));
++}
++
++static int find_arg_number(tree arg, tree func)
++{
++      tree var;
++      bool match = false;
++      unsigned int argnum = 1;
++
++      if (TREE_CODE(arg) == SSA_NAME)
++              arg = SSA_NAME_VAR(arg);
++
++      for (var = DECL_ARGUMENTS(func); var; var = TREE_CHAIN(var)) {
++              if (strcmp(NAME(arg), NAME(var))) {
++                      argnum++;
++                      continue;
++              }
++              check_arg_type(var);
++
++              match = true;
++              break;
++      }
++      if (!match) {
++              warning(0, "find_arg_number: cannot find the %s argument in %s", NAME(arg), NAME(func));
++              return 0;
++      }
++      return argnum;
++}
++
++static void print_missing_msg(tree func, unsigned int argnum)
++{
++      unsigned int new_hash;
++      size_t len;
++      unsigned char tree_codes[CODES_LIMIT];
++      location_t loc = DECL_SOURCE_LOCATION(func);
++      const char *curfunc = NAME(func);
++
++      len = get_function_decl(func, tree_codes);
++      new_hash = get_hash_num(curfunc, (const char *) tree_codes, len, 0);
++      inform(loc, "Function %s is missing from the size_overflow hash table +%s+%d+%u+", curfunc, curfunc, argnum, new_hash);
++}
++
++static void check_missing_attribute(tree arg)
++{
++      tree type, func = get_original_function_decl(current_function_decl);
++      unsigned int argnum;
++      struct size_overflow_hash *hash;
++
++      gcc_assert(TREE_CODE(arg) != COMPONENT_REF);
++
++      type = TREE_TYPE(arg);
++      // skip function pointers
++      if (TREE_CODE(type) == POINTER_TYPE && TREE_CODE(TREE_TYPE(type)) == FUNCTION_TYPE)
++              return;
++
++      if (lookup_attribute("size_overflow", TYPE_ATTRIBUTES(TREE_TYPE(func))))
++              return;
++
++      argnum = find_arg_number(arg, func);
++      if (argnum == 0)
++              return;
++
++      hash = get_function_hash(func);
++      if (!hash || !(hash->param & (1U << argnum)))
++              print_missing_msg(func, argnum);
++}
++
++static tree create_new_var(tree type)
++{
++      tree new_var = create_tmp_var(type, "cicus");
++
++      add_referenced_var(new_var);
++      mark_sym_for_renaming(new_var);
++      return new_var;
++}
++
++static bool is_bool(tree node)
++{
++      tree type;
++
++      if (node == NULL_TREE)
++              return false;
++
++      type = TREE_TYPE(node);
++      if (!INTEGRAL_TYPE_P(type))
++              return false;
++      if (TREE_CODE(type) == BOOLEAN_TYPE)
++              return true;
++      if (TYPE_PRECISION(type) == 1)
++              return true;
++      return false;
++}
++
++static tree cast_a_tree(tree type, tree var)
++{
++      gcc_assert(type != NULL_TREE && var != NULL_TREE);
++      gcc_assert(fold_convertible_p(type, var));
++
++      return fold_convert(type, var);
++}
++
++static tree signed_cast(tree var)
++{
++      return cast_a_tree(signed_size_overflow_type, var);
++}
++
++static gimple build_cast_stmt(tree type, tree var, tree new_var, location_t loc)
++{
++      gimple assign;
++
++      if (new_var == CREATE_NEW_VAR)
++              new_var = create_new_var(type);
++
++      assign = gimple_build_assign(new_var, cast_a_tree(type, var));
++      gimple_set_location(assign, loc);
++      gimple_set_lhs(assign, make_ssa_name(new_var, assign));
++
++      return assign;
++}
++
++static tree create_assign(struct pointer_set_t *visited, bool *potentionally_overflowed, gimple oldstmt, tree rhs1, bool before)
++{
++      tree oldstmt_rhs1;
++      enum tree_code code;
++      gimple stmt;
++      gimple_stmt_iterator gsi;
++
++      if (!*potentionally_overflowed)
++              return NULL_TREE;
++
++      if (rhs1 == NULL_TREE) {
++              debug_gimple_stmt(oldstmt);
++              error("create_assign: rhs1 is NULL_TREE");
++              gcc_unreachable();
++      }
++
++      oldstmt_rhs1 = gimple_assign_rhs1(oldstmt);
++      code = TREE_CODE(oldstmt_rhs1);
++      if (code == PARM_DECL || (code == SSA_NAME && gimple_code(get_def_stmt(oldstmt_rhs1)) == GIMPLE_NOP))
++              check_missing_attribute(oldstmt_rhs1);
++
++      stmt = build_cast_stmt(signed_size_overflow_type, rhs1, CREATE_NEW_VAR, gimple_location(oldstmt));
++      gsi = gsi_for_stmt(oldstmt);
++      if (lookup_stmt_eh_lp(oldstmt) != 0) {
++              basic_block next_bb, cur_bb;
++              edge e;
++
++              gcc_assert(before == false);
++              gcc_assert(stmt_can_throw_internal(oldstmt));
++              gcc_assert(gimple_code(oldstmt) == GIMPLE_CALL);
++              gcc_assert(!gsi_end_p(gsi));
++
++              cur_bb = gimple_bb(oldstmt);
++              next_bb = cur_bb->next_bb;
++              e = find_edge(cur_bb, next_bb);
++              gcc_assert(e != NULL);
++              gcc_assert(e->flags & EDGE_FALLTHRU);
++
++              gsi = gsi_after_labels(next_bb);
++              gcc_assert(!gsi_end_p(gsi));
++              before = true;
++      }
++      if (before)
++              gsi_insert_before(&gsi, stmt, GSI_NEW_STMT);
++      else
++              gsi_insert_after(&gsi, stmt, GSI_NEW_STMT);
++      update_stmt(stmt);
++      pointer_set_insert(visited, oldstmt);
++      return gimple_get_lhs(stmt);
++}
++
++static tree dup_assign(struct pointer_set_t *visited, bool *potentionally_overflowed, gimple oldstmt, tree rhs1, tree rhs2, tree __unused rhs3)
++{
++      tree new_var, lhs = gimple_get_lhs(oldstmt);
++      gimple stmt;
++      gimple_stmt_iterator gsi;
++
++      if (!*potentionally_overflowed)
++              return NULL_TREE;
++
++      if (gimple_num_ops(oldstmt) != 4 && rhs1 == NULL_TREE) {
++              rhs1 = gimple_assign_rhs1(oldstmt);
++              rhs1 = create_assign(visited, potentionally_overflowed, oldstmt, rhs1, BEFORE_STMT);
++      }
++      if (gimple_num_ops(oldstmt) == 3 && rhs2 == NULL_TREE) {
++              rhs2 = gimple_assign_rhs2(oldstmt);
++              rhs2 = create_assign(visited, potentionally_overflowed, oldstmt, rhs2, BEFORE_STMT);
++      }
++
++      stmt = gimple_copy(oldstmt);
++      gimple_set_location(stmt, gimple_location(oldstmt));
++
++      if (gimple_assign_rhs_code(oldstmt) == WIDEN_MULT_EXPR)
++              gimple_assign_set_rhs_code(stmt, MULT_EXPR);
++
++      if (is_bool(lhs))
++              new_var = SSA_NAME_VAR(lhs);
++      else
++              new_var = create_new_var(signed_size_overflow_type);
++      new_var = make_ssa_name(new_var, stmt);
++      gimple_set_lhs(stmt, new_var);
++
++      if (rhs1 != NULL_TREE) {
++              if (!gimple_assign_cast_p(oldstmt))
++                      rhs1 = signed_cast(rhs1);
++              gimple_assign_set_rhs1(stmt, rhs1);
++      }
++
++      if (rhs2 != NULL_TREE)
++              gimple_assign_set_rhs2(stmt, rhs2);
++#if BUILDING_GCC_VERSION >= 4007
++      if (rhs3 != NULL_TREE)
++              gimple_assign_set_rhs3(stmt, rhs3);
++#endif
++      gimple_set_vuse(stmt, gimple_vuse(oldstmt));
++      gimple_set_vdef(stmt, gimple_vdef(oldstmt));
++
++      gsi = gsi_for_stmt(oldstmt);
++      gsi_insert_after(&gsi, stmt, GSI_SAME_STMT);
++      update_stmt(stmt);
++      pointer_set_insert(visited, oldstmt);
++      return gimple_get_lhs(stmt);
++}
++
++static gimple overflow_create_phi_node(gimple oldstmt, tree var)
++{
++      basic_block bb;
++      gimple phi;
++      gimple_stmt_iterator gsi = gsi_for_stmt(oldstmt);
++
++      bb = gsi_bb(gsi);
++
++      phi = create_phi_node(var, bb);
++      gsi = gsi_last(phi_nodes(bb));
++      gsi_remove(&gsi, false);
++
++      gsi = gsi_for_stmt(oldstmt);
++      gsi_insert_after(&gsi, phi, GSI_NEW_STMT);
++      gimple_set_bb(phi, bb);
++      return phi;
++}
++
++static basic_block create_a_first_bb(void)
++{
++      basic_block first_bb;
++
++      first_bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest;
++      if (dom_info_available_p(CDI_DOMINATORS))
++              set_immediate_dominator(CDI_DOMINATORS, first_bb, ENTRY_BLOCK_PTR);
++      return first_bb;
++}
++
++static gimple cast_old_phi_arg(gimple oldstmt, tree arg, tree new_var, unsigned int i)
++{
++      basic_block bb;
++      gimple newstmt, def_stmt;
++      gimple_stmt_iterator gsi;
++
++      newstmt = build_cast_stmt(signed_size_overflow_type, arg, new_var, gimple_location(oldstmt));
++      if (TREE_CODE(arg) == SSA_NAME) {
++              def_stmt = get_def_stmt(arg);
++              if (gimple_code(def_stmt) != GIMPLE_NOP) {
++                      gsi = gsi_for_stmt(def_stmt);
++                      gsi_insert_after(&gsi, newstmt, GSI_NEW_STMT);
++                      return newstmt;
++              }
++      }
++
++      bb = gimple_phi_arg_edge(oldstmt, i)->src;
++      if (bb->index == 0)
++              bb = create_a_first_bb();
++      gsi = gsi_after_labels(bb);
++      gsi_insert_before(&gsi, newstmt, GSI_NEW_STMT);
++      return newstmt;
++}
++
++static gimple handle_new_phi_arg(tree arg, tree new_var, tree new_rhs)
++{
++      gimple newstmt;
++      gimple_stmt_iterator gsi;
++      void (*gsi_insert)(gimple_stmt_iterator *, gimple, enum gsi_iterator_update);
++      gimple def_newstmt = get_def_stmt(new_rhs);
++
++      gsi_insert = gsi_insert_after;
++      gsi = gsi_for_stmt(def_newstmt);
++
++      switch (gimple_code(get_def_stmt(arg))) {
++      case GIMPLE_PHI:
++              newstmt = gimple_build_assign(new_var, new_rhs);
++              gsi = gsi_after_labels(gimple_bb(def_newstmt));
++              gsi_insert = gsi_insert_before;
++              break;
++      case GIMPLE_ASM:
++      case GIMPLE_CALL:
++              newstmt = gimple_build_assign(new_var, new_rhs);
++              break;
++      case GIMPLE_ASSIGN:
++              newstmt = gimple_build_assign(new_var, gimple_get_lhs(def_newstmt));
++              break;
++      default:
++              /* unknown gimple_code (handle_build_new_phi_arg) */
++              gcc_unreachable();
++      }
++
++      gimple_set_lhs(newstmt, make_ssa_name(new_var, newstmt));
++      gsi_insert(&gsi, newstmt, GSI_NEW_STMT);
++      update_stmt(newstmt);
++      return newstmt;
++}
++
++static tree build_new_phi_arg(struct pointer_set_t *visited, bool *potentionally_overflowed, tree arg, tree new_var)
++{
++      gimple newstmt;
++      tree new_rhs;
++
++      new_rhs = expand(visited, potentionally_overflowed, arg);
++
++      if (new_rhs == NULL_TREE)
++              return NULL_TREE;
++
++      newstmt = handle_new_phi_arg(arg, new_var, new_rhs);
++      return gimple_get_lhs(newstmt);
++}
++
++static tree build_new_phi(struct pointer_set_t *visited, bool *potentionally_overflowed, gimple oldstmt)
++{
++      gimple phi;
++      tree new_var = create_new_var(signed_size_overflow_type);
++      unsigned int i, n = gimple_phi_num_args(oldstmt);
++
++      pointer_set_insert(visited, oldstmt);
++      phi = overflow_create_phi_node(oldstmt, new_var);
++      for (i = 0; i < n; i++) {
++              tree arg, lhs;
++
++              arg = gimple_phi_arg_def(oldstmt, i);
++              if (is_gimple_constant(arg))
++                      arg = signed_cast(arg);
++              lhs = build_new_phi_arg(visited, potentionally_overflowed, arg, new_var);
++              if (lhs == NULL_TREE)
++                      lhs = gimple_get_lhs(cast_old_phi_arg(oldstmt, arg, new_var, i));
++              add_phi_arg(phi, lhs, gimple_phi_arg_edge(oldstmt, i), gimple_location(oldstmt));
++      }
++
++      update_stmt(phi);
++      return gimple_phi_result(phi);
++}
++
++static tree handle_unary_rhs(struct pointer_set_t *visited, bool *potentionally_overflowed, tree var)
++{
++      gimple def_stmt = get_def_stmt(var);
++      tree new_rhs1, rhs1 = gimple_assign_rhs1(def_stmt);
++
++      *potentionally_overflowed = true;
++      new_rhs1 = expand(visited, potentionally_overflowed, rhs1);
++      if (new_rhs1 == NULL_TREE) {
++              if (TREE_CODE(TREE_TYPE(rhs1)) == POINTER_TYPE)
++                      return create_assign(visited, potentionally_overflowed, def_stmt, var, AFTER_STMT);
++              else
++                      return create_assign(visited, potentionally_overflowed, def_stmt, rhs1, AFTER_STMT);
++      }
++      return dup_assign(visited, potentionally_overflowed, def_stmt, new_rhs1, NULL_TREE, NULL_TREE);
++}
++
++static tree handle_unary_ops(struct pointer_set_t *visited, bool *potentionally_overflowed, tree var)
++{
++      gimple def_stmt = get_def_stmt(var);
++      tree rhs1 = gimple_assign_rhs1(def_stmt);
++
++      if (is_gimple_constant(rhs1))
++              return dup_assign(visited, potentionally_overflowed, def_stmt, signed_cast(rhs1), NULL_TREE, NULL_TREE);
++
++      gcc_assert(TREE_CODE(rhs1) != COND_EXPR);
++      switch (TREE_CODE(rhs1)) {
++      case SSA_NAME:
++              return handle_unary_rhs(visited, potentionally_overflowed, var);
++
++      case ARRAY_REF:
++      case BIT_FIELD_REF:
++      case ADDR_EXPR:
++      case COMPONENT_REF:
++      case INDIRECT_REF:
++#if BUILDING_GCC_VERSION >= 4006
++      case MEM_REF:
++#endif
++      case PARM_DECL:
++      case TARGET_MEM_REF:
++      case VAR_DECL:
++              return create_assign(visited, potentionally_overflowed, def_stmt, var, AFTER_STMT);
++
++      default:
++              debug_gimple_stmt(def_stmt);
++              debug_tree(rhs1);
++              gcc_unreachable();
++      }
++}
++
++static void insert_cond(basic_block cond_bb, tree arg, enum tree_code cond_code, tree type_value)
++{
++      gimple cond_stmt;
++      gimple_stmt_iterator gsi = gsi_last_bb(cond_bb);
++
++      cond_stmt = gimple_build_cond(cond_code, arg, type_value, NULL_TREE, NULL_TREE);
++      gsi_insert_after(&gsi, cond_stmt, GSI_CONTINUE_LINKING);
++      update_stmt(cond_stmt);
++}
++
++static tree create_string_param(tree string)
++{
++      tree i_type, a_type;
++      int length = TREE_STRING_LENGTH(string);
++
++      gcc_assert(length > 0);
++
++      i_type = build_index_type(build_int_cst(NULL_TREE, length - 1));
++      a_type = build_array_type(char_type_node, i_type);
++
++      TREE_TYPE(string) = a_type;
++      TREE_CONSTANT(string) = 1;
++      TREE_READONLY(string) = 1;
++
++      return build1(ADDR_EXPR, ptr_type_node, string);
++}
++
++static void insert_cond_result(basic_block bb_true, gimple stmt, tree arg)
++{
++      gimple func_stmt, def_stmt;
++      tree current_func, loc_file, loc_line;
++      expanded_location xloc;
++      gimple_stmt_iterator gsi = gsi_start_bb(bb_true);
++
++      def_stmt = get_def_stmt(arg);
++      xloc = expand_location(gimple_location(def_stmt));
++
++      if (!gimple_has_location(def_stmt)) {
++              xloc = expand_location(gimple_location(stmt));
++              if (!gimple_has_location(stmt))
++                      xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
++      }
++
++      loc_line = build_int_cstu(unsigned_type_node, xloc.line);
++
++      loc_file = build_string(strlen(xloc.file) + 1, xloc.file);
++      loc_file = create_string_param(loc_file);
++
++      current_func = build_string(NAME_LEN(current_function_decl) + 1, NAME(current_function_decl));
++      current_func = create_string_param(current_func);
++
++      // void report_size_overflow(const char *file, unsigned int line, const char *func)
++      func_stmt = gimple_build_call(report_size_overflow_decl, 3, loc_file, loc_line, current_func);
++
++      gsi_insert_after(&gsi, func_stmt, GSI_CONTINUE_LINKING);
++}
++
++static void __unused print_the_code_insertions(gimple stmt)
++{
++      location_t loc = gimple_location(stmt);
++
++      inform(loc, "Integer size_overflow check applied here.");
++}
++
++static void insert_check_size_overflow(gimple stmt, enum tree_code cond_code, tree arg, tree type_value)
++{
++      basic_block cond_bb, join_bb, bb_true;
++      edge e;
++      gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
++
++      cond_bb = gimple_bb(stmt);
++      gsi_prev(&gsi);
++      if (gsi_end_p(gsi))
++              e = split_block_after_labels(cond_bb);
++      else
++              e = split_block(cond_bb, gsi_stmt(gsi));
++      cond_bb = e->src;
++      join_bb = e->dest;
++      e->flags = EDGE_FALSE_VALUE;
++      e->probability = REG_BR_PROB_BASE;
++
++      bb_true = create_empty_bb(cond_bb);
++      make_edge(cond_bb, bb_true, EDGE_TRUE_VALUE);
++      make_edge(cond_bb, join_bb, EDGE_FALSE_VALUE);
++      make_edge(bb_true, join_bb, EDGE_FALLTHRU);
++
++      if (dom_info_available_p(CDI_DOMINATORS)) {
++              set_immediate_dominator(CDI_DOMINATORS, bb_true, cond_bb);
++              set_immediate_dominator(CDI_DOMINATORS, join_bb, cond_bb);
++      }
++
++      if (current_loops != NULL) {
++              gcc_assert(cond_bb->loop_father == join_bb->loop_father);
++              add_bb_to_loop(bb_true, cond_bb->loop_father);
++      }
++
++      insert_cond(cond_bb, arg, cond_code, type_value);
++      insert_cond_result(bb_true, stmt, arg);
++
++//    print_the_code_insertions(stmt);
++}
++
++static gimple cast_to_unsigned_size_overflow_type(gimple stmt, tree cast_rhs)
++{
++      gimple ucast_stmt;
++      gimple_stmt_iterator gsi;
++      location_t loc = gimple_location(stmt);
++
++      ucast_stmt = build_cast_stmt(unsigned_size_overflow_type, cast_rhs, CREATE_NEW_VAR, loc);
++      gsi = gsi_for_stmt(stmt);
++      gsi_insert_before(&gsi, ucast_stmt, GSI_SAME_STMT);
++      return ucast_stmt;
++}
++
++static void check_size_overflow(gimple stmt, tree cast_rhs, tree rhs, bool *potentionally_overflowed)
++{
++      tree type_max, type_min, rhs_type = TREE_TYPE(rhs);
++      gimple ucast_stmt;
++
++      if (!*potentionally_overflowed)
++              return;
++
++      if (TYPE_UNSIGNED(rhs_type)) {
++              ucast_stmt = cast_to_unsigned_size_overflow_type(stmt, cast_rhs);
++              type_max = cast_a_tree(unsigned_size_overflow_type, TYPE_MAX_VALUE(rhs_type));
++              insert_check_size_overflow(stmt, GT_EXPR, gimple_get_lhs(ucast_stmt), type_max);
++      } else {
++              type_max = signed_cast(TYPE_MAX_VALUE(rhs_type));
++              insert_check_size_overflow(stmt, GT_EXPR, cast_rhs, type_max);
++
++              type_min = signed_cast(TYPE_MIN_VALUE(rhs_type));
++              insert_check_size_overflow(stmt, LT_EXPR, cast_rhs, type_min);
++      }
++}
++
++static tree change_assign_rhs(gimple stmt, tree orig_rhs, tree new_rhs)
++{
++      gimple assign;
++      gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
++      tree origtype = TREE_TYPE(orig_rhs);
++
++      gcc_assert(gimple_code(stmt) == GIMPLE_ASSIGN);
++
++      assign = build_cast_stmt(origtype, new_rhs, CREATE_NEW_VAR, gimple_location(stmt));
++      gsi_insert_before(&gsi, assign, GSI_SAME_STMT);
++      update_stmt(assign);
++      return gimple_get_lhs(assign);
++}
++
++static tree handle_const_assign(struct pointer_set_t *visited, bool *potentionally_overflowed, gimple def_stmt, tree var, tree orig_rhs, tree var_rhs, tree new_rhs1, tree new_rhs2, void (*gimple_assign_set_rhs)(gimple, tree))
++{
++      tree new_rhs;
++
++      if (gimple_assign_rhs_code(def_stmt) == MIN_EXPR)
++              return dup_assign(visited, potentionally_overflowed, def_stmt, new_rhs1, new_rhs2, NULL_TREE);
++
++      if (var_rhs == NULL_TREE)
++              return create_assign(visited, potentionally_overflowed, def_stmt, var, AFTER_STMT);
++
++      new_rhs = change_assign_rhs(def_stmt, orig_rhs, var_rhs);
++      gimple_assign_set_rhs(def_stmt, new_rhs);
++      update_stmt(def_stmt);
++
++      check_size_overflow(def_stmt, var_rhs, orig_rhs, potentionally_overflowed);
++      return create_assign(visited, potentionally_overflowed, def_stmt, var, AFTER_STMT);
++}
++
++static tree handle_binary_ops(struct pointer_set_t *visited, bool *potentionally_overflowed, tree var)
++{
++      tree rhs1, rhs2;
++      gimple def_stmt = get_def_stmt(var);
++      tree new_rhs1 = NULL_TREE;
++      tree new_rhs2 = NULL_TREE;
++
++      rhs1 = gimple_assign_rhs1(def_stmt);
++      rhs2 = gimple_assign_rhs2(def_stmt);
++
++      /* no DImode/TImode division in the 32/64 bit kernel */
++      switch (gimple_assign_rhs_code(def_stmt)) {
++      case RDIV_EXPR:
++      case TRUNC_DIV_EXPR:
++      case CEIL_DIV_EXPR:
++      case FLOOR_DIV_EXPR:
++      case ROUND_DIV_EXPR:
++      case TRUNC_MOD_EXPR:
++      case CEIL_MOD_EXPR:
++      case FLOOR_MOD_EXPR:
++      case ROUND_MOD_EXPR:
++      case EXACT_DIV_EXPR:
++      case POINTER_PLUS_EXPR:
++      case BIT_AND_EXPR:
++              return create_assign(visited, potentionally_overflowed, def_stmt, var, AFTER_STMT);
++      default:
++              break;
++      }
++
++      *potentionally_overflowed = true;
++
++      if (TREE_CODE(rhs1) == SSA_NAME)
++              new_rhs1 = expand(visited, potentionally_overflowed, rhs1);
++      if (TREE_CODE(rhs2) == SSA_NAME)
++              new_rhs2 = expand(visited, potentionally_overflowed, rhs2);
++
++      if (is_gimple_constant(rhs2))
++              return handle_const_assign(visited, potentionally_overflowed, def_stmt, var, rhs1, new_rhs1, new_rhs1, signed_cast(rhs2), &gimple_assign_set_rhs1);
++
++      if (is_gimple_constant(rhs1))
++              return handle_const_assign(visited, potentionally_overflowed, def_stmt, var, rhs2, new_rhs2, signed_cast(rhs1), new_rhs2, &gimple_assign_set_rhs2);
++
++      return dup_assign(visited, potentionally_overflowed, def_stmt, new_rhs1, new_rhs2, NULL_TREE);
++}
++
++#if BUILDING_GCC_VERSION >= 4007
++static tree get_new_rhs(struct pointer_set_t *visited, bool *potentionally_overflowed, tree rhs)
++{
++      if (is_gimple_constant(rhs))
++              return signed_cast(rhs);
++      if (TREE_CODE(rhs) != SSA_NAME)
++              return NULL_TREE;
++      return expand(visited, potentionally_overflowed, rhs);
++}
++
++static tree handle_ternary_ops(struct pointer_set_t *visited, bool *potentionally_overflowed, tree var)
++{
++      tree rhs1, rhs2, rhs3, new_rhs1, new_rhs2, new_rhs3;
++      gimple def_stmt = get_def_stmt(var);
++
++      *potentionally_overflowed = true;
++
++      rhs1 = gimple_assign_rhs1(def_stmt);
++      rhs2 = gimple_assign_rhs2(def_stmt);
++      rhs3 = gimple_assign_rhs3(def_stmt);
++      new_rhs1 = get_new_rhs(visited, potentionally_overflowed, rhs1);
++      new_rhs2 = get_new_rhs(visited, potentionally_overflowed, rhs2);
++      new_rhs3 = get_new_rhs(visited, potentionally_overflowed, rhs3);
++
++      if (new_rhs1 == NULL_TREE && new_rhs2 != NULL_TREE && new_rhs3 != NULL_TREE)
++              return dup_assign(visited, potentionally_overflowed, def_stmt, new_rhs1, new_rhs2, new_rhs3);
++      error("handle_ternary_ops: unknown rhs");
++      gcc_unreachable();
++}
++#endif
++
++static void set_size_overflow_type(tree node)
++{
++      switch (TYPE_MODE(TREE_TYPE(node))) {
++      case SImode:
++              signed_size_overflow_type = intDI_type_node;
++              unsigned_size_overflow_type = unsigned_intDI_type_node;
++              break;
++      case DImode:
++              if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode)) {
++                      signed_size_overflow_type = intDI_type_node;
++                      unsigned_size_overflow_type = unsigned_intDI_type_node;
++              } else {
++                      signed_size_overflow_type = intTI_type_node;
++                      unsigned_size_overflow_type = unsigned_intTI_type_node;
++              }
++              break;
++      default:
++              error("set_size_overflow_type: unsupported gcc configuration.");
++              gcc_unreachable();
++      }
++}
++
++static tree expand_visited(gimple def_stmt)
++{
++      gimple tmp;
++      gimple_stmt_iterator gsi = gsi_for_stmt(def_stmt);
++
++      gsi_next(&gsi);
++      tmp = gsi_stmt(gsi);
++      switch (gimple_code(tmp)) {
++      case GIMPLE_ASSIGN:
++              return gimple_get_lhs(tmp);
++      case GIMPLE_PHI:
++              return gimple_phi_result(tmp);
++      case GIMPLE_CALL:
++              return gimple_call_lhs(tmp);
++      default:
++              return NULL_TREE;
++      }
++}
++
++static tree expand(struct pointer_set_t *visited, bool *potentionally_overflowed, tree var)
++{
++      gimple def_stmt;
++      enum tree_code code = TREE_CODE(TREE_TYPE(var));
++
++      if (is_gimple_constant(var))
++              return NULL_TREE;
++
++      if (TREE_CODE(var) == ADDR_EXPR)
++              return NULL_TREE;
++
++      gcc_assert(code == INTEGER_TYPE || code == POINTER_TYPE || code == BOOLEAN_TYPE || code == ENUMERAL_TYPE);
++      if (code != INTEGER_TYPE)
++              return NULL_TREE;
++
++      if (SSA_NAME_IS_DEFAULT_DEF(var)) {
++              check_missing_attribute(var);
++              return NULL_TREE;
++      }
++
++      def_stmt = get_def_stmt(var);
++
++      if (!def_stmt)
++              return NULL_TREE;
++
++      if (pointer_set_contains(visited, def_stmt))
++              return expand_visited(def_stmt);
++
++      switch (gimple_code(def_stmt)) {
++      case GIMPLE_NOP:
++              check_missing_attribute(var);
++              return NULL_TREE;
++      case GIMPLE_PHI:
++              return build_new_phi(visited, potentionally_overflowed, def_stmt);
++      case GIMPLE_CALL:
++      case GIMPLE_ASM:
++              return create_assign(visited, potentionally_overflowed, def_stmt, var, AFTER_STMT);
++      case GIMPLE_ASSIGN:
++              switch (gimple_num_ops(def_stmt)) {
++              case 2:
++                      return handle_unary_ops(visited, potentionally_overflowed, var);
++              case 3:
++                      return handle_binary_ops(visited, potentionally_overflowed, var);
++#if BUILDING_GCC_VERSION >= 4007
++              case 4:
++                      return handle_ternary_ops(visited, potentionally_overflowed, var);
++#endif
++              }
++      default:
++              debug_gimple_stmt(def_stmt);
++              error("expand: unknown gimple code");
++              gcc_unreachable();
++      }
++}
++
++static void change_function_arg(gimple stmt, tree origarg, unsigned int argnum, tree newarg)
++{
++      gimple assign;
++      gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
++      tree origtype = TREE_TYPE(origarg);
++
++      gcc_assert(gimple_code(stmt) == GIMPLE_CALL);
++
++      assign = build_cast_stmt(origtype, newarg, CREATE_NEW_VAR, gimple_location(stmt));
++      gsi_insert_before(&gsi, assign, GSI_SAME_STMT);
++      update_stmt(assign);
++
++      gimple_call_set_arg(stmt, argnum, gimple_get_lhs(assign));
++      update_stmt(stmt);
++}
++
++static tree get_function_arg(unsigned int argnum, gimple stmt, tree fndecl)
++{
++      const char *origid;
++      tree arg, origarg;
++
++      if (!DECL_ABSTRACT_ORIGIN(fndecl)) {
++              gcc_assert(gimple_call_num_args(stmt) > argnum);
++              return gimple_call_arg(stmt, argnum);
++      }
++
++      origarg = DECL_ARGUMENTS(DECL_ABSTRACT_ORIGIN(fndecl));
++      while (origarg && argnum) {
++              argnum--;
++              origarg = TREE_CHAIN(origarg);
++      }
++
++      gcc_assert(argnum == 0);
++
++      gcc_assert(origarg != NULL_TREE);
++      origid = NAME(origarg);
++      for (arg = DECL_ARGUMENTS(fndecl); arg; arg = TREE_CHAIN(arg)) {
++              if (!strcmp(origid, NAME(arg)))
++                      return arg;
++      }
++      return NULL_TREE;
++}
++
++static void handle_function_arg(gimple stmt, tree fndecl, unsigned int argnum)
++{
++      struct pointer_set_t *visited;
++      tree arg, newarg;
++      bool potentionally_overflowed;
++
++      arg = get_function_arg(argnum, stmt, fndecl);
++      if (arg == NULL_TREE)
++              return;
++
++      if (is_gimple_constant(arg))
++              return;
++      if (TREE_CODE(arg) != SSA_NAME)
++              return;
++
++      check_arg_type(arg);
++
++      set_size_overflow_type(arg);
++
++      visited = pointer_set_create();
++      potentionally_overflowed = false;
++      newarg = expand(visited, &potentionally_overflowed, arg);
++      pointer_set_destroy(visited);
++
++      if (newarg == NULL_TREE || !potentionally_overflowed)
++              return;
++
++      change_function_arg(stmt, arg, argnum, newarg);
++
++      check_size_overflow(stmt, newarg, arg, &potentionally_overflowed);
++}
++
++static void handle_function_by_attribute(gimple stmt, tree attr, tree fndecl)
++{
++      tree p = TREE_VALUE(attr);
++      do {
++              handle_function_arg(stmt, fndecl, TREE_INT_CST_LOW(TREE_VALUE(p))-1);
++              p = TREE_CHAIN(p);
++      } while (p);
++}
++
++static void handle_function_by_hash(gimple stmt, tree fndecl)
++{
++      tree orig_fndecl;
++      unsigned int num;
++      struct size_overflow_hash *hash;
++
++      orig_fndecl = get_original_function_decl(fndecl);
++      hash = get_function_hash(orig_fndecl);
++      if (!hash)
++              return;
++
++      for (num = 1; num <= MAX_PARAM; num++)
++              if (hash->param & (1U << num))
++                      handle_function_arg(stmt, fndecl, num - 1);
++}
++
++static unsigned int handle_function(void)
++{
++      basic_block bb = ENTRY_BLOCK_PTR->next_bb;
++      int saved_last_basic_block = last_basic_block;
++
++      do {
++              gimple_stmt_iterator gsi;
++              basic_block next = bb->next_bb;
++
++              for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
++                      tree fndecl, attr;
++                      gimple stmt = gsi_stmt(gsi);
++
++                      if (!(is_gimple_call(stmt)))
++                              continue;
++                      fndecl = gimple_call_fndecl(stmt);
++                      if (fndecl == NULL_TREE)
++                              continue;
++                      if (gimple_call_num_args(stmt) == 0)
++                              continue;
++                      attr = lookup_attribute("size_overflow", TYPE_ATTRIBUTES(TREE_TYPE(fndecl)));
++                      if (!attr || !TREE_VALUE(attr))
++                              handle_function_by_hash(stmt, fndecl);
++                      else
++                              handle_function_by_attribute(stmt, attr, fndecl);
++                      gsi = gsi_for_stmt(stmt);
++              }
++              bb = next;
++      } while (bb && bb->index <= saved_last_basic_block);
++      return 0;
++}
++
++static struct gimple_opt_pass size_overflow_pass = {
++      .pass = {
++              .type                   = GIMPLE_PASS,
++              .name                   = "size_overflow",
++              .gate                   = NULL,
++              .execute                = handle_function,
++              .sub                    = NULL,
++              .next                   = NULL,
++              .static_pass_number     = 0,
++              .tv_id                  = TV_NONE,
++              .properties_required    = PROP_cfg | PROP_referenced_vars,
++              .properties_provided    = 0,
++              .properties_destroyed   = 0,
++              .todo_flags_start       = 0,
++              .todo_flags_finish      = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi | TODO_cleanup_cfg | TODO_ggc_collect | TODO_verify_flow
++      }
++};
++
++static void start_unit_callback(void __unused *gcc_data, void __unused *user_data)
++{
++      tree fntype;
++
++      const_char_ptr_type_node = build_pointer_type(build_type_variant(char_type_node, 1, 0));
++
++      // void report_size_overflow(const char *loc_file, unsigned int loc_line, const char *current_func)
++      fntype = build_function_type_list(void_type_node,
++                                        const_char_ptr_type_node,
++                                        unsigned_type_node,
++                                        const_char_ptr_type_node,
++                                        NULL_TREE);
++      report_size_overflow_decl = build_fn_decl("report_size_overflow", fntype);
++
++      DECL_ASSEMBLER_NAME(report_size_overflow_decl);
++      TREE_PUBLIC(report_size_overflow_decl) = 1;
++      DECL_EXTERNAL(report_size_overflow_decl) = 1;
++      DECL_ARTIFICIAL(report_size_overflow_decl) = 1;
++}
++
++int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
++{
++      int i;
++      const char * const plugin_name = plugin_info->base_name;
++      const int argc = plugin_info->argc;
++      const struct plugin_argument * const argv = plugin_info->argv;
++      bool enable = true;
++
++      struct register_pass_info size_overflow_pass_info = {
++              .pass                           = &size_overflow_pass.pass,
++              .reference_pass_name            = "ssa",
++              .ref_pass_instance_number       = 1,
++              .pos_op                         = PASS_POS_INSERT_AFTER
++      };
++
++      if (!plugin_default_version_check(version, &gcc_version)) {
++              error(G_("incompatible gcc/plugin versions"));
++              return 1;
++      }
++
++      for (i = 0; i < argc; ++i) {
++              if (!strcmp(argv[i].key, "no-size-overflow")) {
++                      enable = false;
++                      continue;
++              }
++              error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
++      }
++
++      register_callback(plugin_name, PLUGIN_INFO, NULL, &size_overflow_plugin_info);
++      if (enable) {
++              register_callback ("start_unit", PLUGIN_START_UNIT, &start_unit_callback, NULL);
++              register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &size_overflow_pass_info);
++      }
++      register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
++
++      return 0;
++}
 diff --git a/tools/gcc/stackleak_plugin.c b/tools/gcc/stackleak_plugin.c
 new file mode 100644
-index 0000000..d44f37c
+index 0000000..38d2014
 --- /dev/null
 +++ b/tools/gcc/stackleak_plugin.c
-@@ -0,0 +1,291 @@
+@@ -0,0 +1,313 @@
 +/*
 + * Copyright 2011 by the PaX Team <pageexec@freemail.hu>
 + * Licensed under the GPL v2
@@ -81096,7 +85916,7 @@ index 0000000..d44f37c
 +static bool init_locals;
 +
 +static struct plugin_info stackleak_plugin_info = {
-+      .version        = "201111150100",
++      .version        = "201203140940",
 +      .help           = "track-lowest-sp=nn\ttrack sp in functions whose frame size is at least nn bytes\n"
 +//                      "initialize-locals\t\tforcibly initialize all stack frames\n"
 +};
@@ -81146,31 +85966,33 @@ index 0000000..d44f37c
 +      return track_frame_size >= 0;
 +}
 +
-+static void stackleak_check_alloca(gimple_stmt_iterator gsi)
++static void stackleak_check_alloca(gimple_stmt_iterator *gsi)
 +{
 +      gimple check_alloca;
-+      tree fndecl, fntype, alloca_size;
++      tree fntype, fndecl, alloca_size;
 +
-+      // insert call to void pax_check_alloca(unsigned long size)
 +      fntype = build_function_type_list(void_type_node, long_unsigned_type_node, NULL_TREE);
 +      fndecl = build_fn_decl(check_function, fntype);
 +      DECL_ASSEMBLER_NAME(fndecl); // for LTO
-+      alloca_size = gimple_call_arg(gsi_stmt(gsi), 0);
++
++      // insert call to void pax_check_alloca(unsigned long size)
++      alloca_size = gimple_call_arg(gsi_stmt(*gsi), 0);
 +      check_alloca = gimple_build_call(fndecl, 1, alloca_size);
-+      gsi_insert_before(&gsi, check_alloca, GSI_CONTINUE_LINKING);
++      gsi_insert_before(gsi, check_alloca, GSI_SAME_STMT);
 +}
 +
-+static void stackleak_add_instrumentation(gimple_stmt_iterator gsi)
++static void stackleak_add_instrumentation(gimple_stmt_iterator *gsi)
 +{
 +      gimple track_stack;
-+      tree fndecl, fntype;
++      tree fntype, fndecl;
 +
-+      // insert call to void pax_track_stack(void)
 +      fntype = build_function_type_list(void_type_node, NULL_TREE);
 +      fndecl = build_fn_decl(track_function, fntype);
 +      DECL_ASSEMBLER_NAME(fndecl); // for LTO
++
++      // insert call to void pax_track_stack(void)
 +      track_stack = gimple_build_call(fndecl, 0);
-+      gsi_insert_after(&gsi, track_stack, GSI_CONTINUE_LINKING);
++      gsi_insert_after(gsi, track_stack, GSI_CONTINUE_LINKING);
 +}
 +
 +#if BUILDING_GCC_VERSION == 4005
@@ -81206,34 +86028,54 @@ index 0000000..d44f37c
 +static unsigned int execute_stackleak_tree_instrument(void)
 +{
 +      basic_block bb, entry_bb;
-+      bool prologue_instrumented = false;
++      bool prologue_instrumented = false, is_leaf = true;
 +
 +      entry_bb = ENTRY_BLOCK_PTR_FOR_FUNCTION(cfun)->next_bb;
 +
 +      // 1. loop through BBs and GIMPLE statements
 +      FOR_EACH_BB(bb) {
 +              gimple_stmt_iterator gsi;
++
 +              for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
++                      gimple stmt;
++
++                      stmt = gsi_stmt(gsi);
++
++                      if (is_gimple_call(stmt))
++                              is_leaf = false;
++
 +                      // gimple match: align 8 built-in BUILT_IN_NORMAL:BUILT_IN_ALLOCA attributes <tree_list 0xb7576450>
-+                      if (!is_alloca(gsi_stmt(gsi)))
++                      if (!is_alloca(stmt))
 +                              continue;
 +
 +                      // 2. insert stack overflow check before each __builtin_alloca call
-+                      stackleak_check_alloca(gsi);
++                      stackleak_check_alloca(&gsi);
 +
 +                      // 3. insert track call after each __builtin_alloca call
-+                      stackleak_add_instrumentation(gsi);
++                      stackleak_add_instrumentation(&gsi);
 +                      if (bb == entry_bb)
 +                              prologue_instrumented = true;
 +              }
 +      }
 +
++      // special cases for some bad linux code: taking the address of static inline functions will materialize them
++      // but we mustn't instrument some of them as the resulting stack alignment required by the function call ABI
++      // will break other assumptions regarding the expected (but not otherwise enforced) register clobbering  ABI.
++      // case in point: native_save_fl on amd64 when optimized for size clobbers rdx if it were instrumented here.
++      if (is_leaf && !TREE_PUBLIC(current_function_decl) && DECL_DECLARED_INLINE_P(current_function_decl))
++              return 0;
++      if (is_leaf && !strncmp(IDENTIFIER_POINTER(DECL_NAME(current_function_decl)), "_paravirt_", 10))
++              return 0;
++
 +      // 4. insert track call at the beginning
 +      if (!prologue_instrumented) {
++              gimple_stmt_iterator gsi;
++
 +              bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest;
 +              if (dom_info_available_p(CDI_DOMINATORS))
 +                      set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR);
-+              stackleak_add_instrumentation(gsi_start_bb(bb));
++              gsi = gsi_start_bb(bb);
++              stackleak_add_instrumentation(&gsi);
 +      }
 +
 +      return 0;
@@ -81294,13 +86136,13 @@ index 0000000..d44f37c
 +              .pass                           = &stackleak_tree_instrument_pass.pass,
 +//            .reference_pass_name            = "tree_profile",
 +              .reference_pass_name            = "optimized",
-+              .ref_pass_instance_number       = 0,
-+              .pos_op                         = PASS_POS_INSERT_AFTER
++              .ref_pass_instance_number       = 1,
++              .pos_op                         = PASS_POS_INSERT_BEFORE
 +      };
 +      struct register_pass_info stackleak_final_pass_info = {
 +              .pass                           = &stackleak_final_rtl_opt_pass.pass,
 +              .reference_pass_name            = "final",
-+              .ref_pass_instance_number       = 0,
++              .ref_pass_instance_number       = 1,
 +              .pos_op                         = PASS_POS_INSERT_BEFORE
 +      };
 +
@@ -81377,10 +86219,10 @@ index af0f22f..9a7d479 100644
                         break;
         }
 diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index aefdda3..8e8fbb9 100644
+index 9739b53..6d457e3 100644
 --- a/virt/kvm/kvm_main.c
 +++ b/virt/kvm/kvm_main.c
-@@ -73,7 +73,7 @@ LIST_HEAD(vm_list);
+@@ -75,7 +75,7 @@ LIST_HEAD(vm_list);
  
  static cpumask_var_t cpus_hardware_enabled;
  static int kvm_usage_count = 0;
@@ -81389,7 +86231,7 @@ index aefdda3..8e8fbb9 100644
  
  struct kmem_cache *kvm_vcpu_cache;
  EXPORT_SYMBOL_GPL(kvm_vcpu_cache);
-@@ -2266,7 +2266,7 @@ static void hardware_enable_nolock(void *junk)
+@@ -2247,7 +2247,7 @@ static void hardware_enable_nolock(void *junk)
  
        if (r) {
                cpumask_clear_cpu(cpu, cpus_hardware_enabled);
@@ -81398,7 +86240,7 @@ index aefdda3..8e8fbb9 100644
                printk(KERN_INFO "kvm: enabling virtualization on "
                                 "CPU%d failed\n", cpu);
        }
-@@ -2320,10 +2320,10 @@ static int hardware_enable_all(void)
+@@ -2301,10 +2301,10 @@ static int hardware_enable_all(void)
  
        kvm_usage_count++;
        if (kvm_usage_count == 1) {
@@ -81411,7 +86253,7 @@ index aefdda3..8e8fbb9 100644
                        hardware_disable_all_nolock();
                        r = -EBUSY;
                }
-@@ -2588,7 +2588,7 @@ static void kvm_sched_out(struct preempt_notifier *pn,
+@@ -2667,7 +2667,7 @@ static void kvm_sched_out(struct preempt_notifier *pn,
        kvm_arch_vcpu_put(vcpu);
  }
  
@@ -81420,7 +86262,7 @@ index aefdda3..8e8fbb9 100644
                  struct module *module)
  {
        int r;
-@@ -2651,7 +2651,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
+@@ -2730,7 +2730,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
        if (!vcpu_align)
                vcpu_align = __alignof__(struct kvm_vcpu);
        kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align,
@@ -81429,7 +86271,7 @@ index aefdda3..8e8fbb9 100644
        if (!kvm_vcpu_cache) {
                r = -ENOMEM;
                goto out_free_3;
-@@ -2661,9 +2661,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
+@@ -2740,9 +2740,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
        if (r)
                goto out_free;
  
diff --git a/kernel/patches/linux-2.6-defaults-acpi-video.patch b/kernel/patches/linux-2.6-defaults-acpi-video.patch
deleted file mode 100644 (file)
index af883b0..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
-index d8d7596..a1b7117 100644
---- a/drivers/acpi/video.c
-+++ b/drivers/acpi/video.c
-@@ -71,7 +71,7 @@ MODULE_AUTHOR("Bruno Ducrot");
- MODULE_DESCRIPTION("ACPI Video Driver");
- MODULE_LICENSE("GPL");
--static int brightness_switch_enabled = 1;
-+static int brightness_switch_enabled = 0;
- module_param(brightness_switch_enabled, bool, 0644);
- static int acpi_video_bus_add(struct acpi_device *device);
diff --git a/kernel/patches/linux-2.6-defaults-aspm.patch b/kernel/patches/linux-2.6-defaults-aspm.patch
deleted file mode 100644 (file)
index 49b832d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up linux-2.6.30.noarch/drivers/pci/pcie/aspm.c.mjg linux-2.6.30.noarch/drivers/pci/pcie/aspm.c
---- linux-2.6.30.noarch/drivers/pci/pcie/aspm.c.mjg    2009-07-16 22:01:11.000000000 +0100
-+++ linux-2.6.30.noarch/drivers/pci/pcie/aspm.c        2009-07-16 22:01:30.000000000 +0100
-@@ -65,7 +65,7 @@ static LIST_HEAD(link_list);
- #define POLICY_DEFAULT 0      /* BIOS default setting */
- #define POLICY_PERFORMANCE 1  /* high performance */
- #define POLICY_POWERSAVE 2    /* high power saving */
--static int aspm_policy;
-+static int aspm_policy = POLICY_POWERSAVE;
- static const char *policy_str[] = {
-       [POLICY_DEFAULT] = "default",
-       [POLICY_PERFORMANCE] = "performance",
diff --git a/kernel/patches/linux-3.1-bridge-master-device-stuck-in-no-carrier-state-forever-when-in-user-stp-mode.patch b/kernel/patches/linux-3.1-bridge-master-device-stuck-in-no-carrier-state-forever-when-in-user-stp-mode.patch
deleted file mode 100644 (file)
index 2e3d327..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-From b03b6dd58cef7d15b7c46a6729b83dd535ef08ab Mon Sep 17 00:00:00 2001
-From: Vitalii Demianets <vitas@nppfactor.kiev.ua>
-Date: Fri, 25 Nov 2011 00:16:37 +0000
-Subject: [PATCH] bridge: master device stuck in no-carrier state forever when
- in user-stp mode
-
-When in user-stp mode, bridge master do not follow state of its slaves, so
-after the following sequence of events it can stuck forever in no-carrier
-state:
-1) turn stp off
-2) put all slaves down - master device will follow their state and also go in
-no-carrier state
-3) turn stp on with bridge-stp script returning 0 (go to the user-stp mode)
-Now bridge master won't follow slaves' state and will never reach running
-state.
-
-This patch solves the problem by making user-stp and kernel-stp behavior
-similar regarding master following slaves' states.
-
-Signed-off-by: Vitalii Demianets <vitas@nppfactor.kiev.ua>
-Acked-by: Stephen Hemminger <shemminger@vyatta.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- net/bridge/br_netlink.c |    6 ++++++
- net/bridge/br_stp.c     |   29 ++++++++++++++---------------
- 2 files changed, 20 insertions(+), 15 deletions(-)
-
-diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
-index e5f9ece3..a1daf82 100644
---- a/net/bridge/br_netlink.c
-+++ b/net/bridge/br_netlink.c
-@@ -18,6 +18,7 @@
- #include <net/sock.h>
- #include "br_private.h"
-+#include "br_private_stp.h"
- static inline size_t br_nlmsg_size(void)
- {
-@@ -188,6 +189,11 @@ static int br_rtm_setlink(struct sk_buff *skb,  struct nlmsghdr *nlh, void *arg)
-       p->state = new_state;
-       br_log_state(p);
-+
-+      spin_lock_bh(&p->br->lock);
-+      br_port_state_selection(p->br);
-+      spin_unlock_bh(&p->br->lock);
-+
-       br_ifinfo_notify(RTM_NEWLINK, p);
-       return 0;
-diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c
-index ad0a3f7..dd147d7 100644
---- a/net/bridge/br_stp.c
-+++ b/net/bridge/br_stp.c
-@@ -399,25 +399,24 @@ void br_port_state_selection(struct net_bridge *br)
-       struct net_bridge_port *p;
-       unsigned int liveports = 0;
--      /* Don't change port states if userspace is handling STP */
--      if (br->stp_enabled == BR_USER_STP)
--              return;
--
-       list_for_each_entry(p, &br->port_list, list) {
-               if (p->state == BR_STATE_DISABLED)
-                       continue;
--              if (p->port_no == br->root_port) {
--                      p->config_pending = 0;
--                      p->topology_change_ack = 0;
--                      br_make_forwarding(p);
--              } else if (br_is_designated_port(p)) {
--                      del_timer(&p->message_age_timer);
--                      br_make_forwarding(p);
--              } else {
--                      p->config_pending = 0;
--                      p->topology_change_ack = 0;
--                      br_make_blocking(p);
-+              /* Don't change port states if userspace is handling STP */
-+              if (br->stp_enabled != BR_USER_STP) {
-+                      if (p->port_no == br->root_port) {
-+                              p->config_pending = 0;
-+                              p->topology_change_ack = 0;
-+                              br_make_forwarding(p);
-+                      } else if (br_is_designated_port(p)) {
-+                              del_timer(&p->message_age_timer);
-+                              br_make_forwarding(p);
-+                      } else {
-+                              p->config_pending = 0;
-+                              p->topology_change_ack = 0;
-+                              br_make_blocking(p);
-+                      }
-               }
-               if (p->state == BR_STATE_FORWARDING)
--- 
-1.7.6.2
-
diff --git a/kernel/patches/linux-3.1-bridge-push-blocking-slaves-to-forwarding-when-turning-stp-off.patch.off b/kernel/patches/linux-3.1-bridge-push-blocking-slaves-to-forwarding-when-turning-stp-off.patch.off
deleted file mode 100644 (file)
index e822b73..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-From vitas@nppfactor.kiev.ua Tue Dec 13 10:36:46 2011
-Return-Path: <vitas@nppfactor.kiev.ua>
-Delivered-To: <ms@ipfire.org>
-Received: from mail01.ipfire.org by hedwig.ipfire.org (Dovecot) with LMTP
- id JdGONK4c504YFwAAVNLeVg for <ms@ipfire.org>; Tue, 13 Dec 2011 10:36:46
- +0100
-Received: from mx3.cyfra.ua (mx3.cyfra.ua [62.80.160.182]) by
- mail01.ipfire.org (Postfix) with ESMTPS id B6735115 for
- <michael.tremer@ipfire.org>; Tue, 13 Dec 2011 10:36:35 +0100 (CET)
-Received: from c.1.173.a246.dynamic.cyfra.net ([62.80.173.1]
- helo=nppfactor.kiev.ua) by mx3.cyfra.ua with esmtp (Exim 4.63)
- (envelope-from <vitas@nppfactor.kiev.ua>) id 1RaOmo-0005Hq-Jy; Tue, 13 Dec
- 2011 11:36:34 +0200
-Received: from [192.168.0.20] (LUX [192.168.0.20]) by nppfactor.kiev.ua
- (Postfix) with ESMTP id 0F9BA22F128; Tue, 13 Dec 2011 11:36:26 +0200 (EET)
-From: Vitalii Demianets <vitas@nppfactor.kiev.ua>
-Organization: Factor-SPE
-To: netdev@vger.kernel.org
-Subject: [PATCH] bridge: push blocking slaves to forwarding when turning
- stp off
-Date: Tue, 13 Dec 2011 11:36:25 +0200
-User-Agent: KMail/1.9.10
-Cc: bridge@lists.linux-foundation.org, Stephen Hemminger
- <shemminger@vyatta.com>, Michael Tremer <michael.tremer@ipfire.org>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Disposition: inline
-Message-Id: <201112131136.25919.vitas@nppfactor.kiev.ua>
-X-Evolution-Source: 1292431680.19116.5@rice-oxley.tremer.info
-Content-Transfer-Encoding: 8bit
-
-If there is a slave in blocking state when stp is turned off, that slave will 
-remain in blocking state for indefinitely long time until interface state 
-changed. We should push all blocking slaves into forwarding state after 
-turning stp off.
-
-Signed-off-by: Vitalii Demianets <vitas@nppfactor.kiev.ua>
-
----
- net/bridge/br_stp.c    |    5 ++++-
- net/bridge/br_stp_if.c |   10 +++++-----
- 2 files changed, 9 insertions(+), 6 deletions(-)
-
-diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c
-index dd147d7..aed7e21 100644
---- a/net/bridge/br_stp.c
-+++ b/net/bridge/br_stp.c
-@@ -415,7 +415,10 @@ void br_port_state_selection(struct net_bridge *br)
-                       } else {
-                               p->config_pending = 0;
-                               p->topology_change_ack = 0;
--                              br_make_blocking(p);
-+                              if(br->stp_enabled == BR_NO_STP)
-+                                      br_make_forwarding(p);
-+                              else
-+                                      br_make_blocking(p);
-                       }
-               }
-diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
-index 19308e3..38d8dd7 100644
---- a/net/bridge/br_stp_if.c
-+++ b/net/bridge/br_stp_if.c
-@@ -153,14 +153,14 @@ static void br_stp_stop(struct net_bridge *br)
-       if (br->stp_enabled == BR_USER_STP) {
-               r = call_usermodehelper(BR_STP_PROG, argv, envp, UMH_WAIT_PROC);
-               br_info(br, "userspace STP stopped, return code %d\n", r);
--
--              /* To start timers on any ports left in blocking */
--              spin_lock_bh(&br->lock);
--              br_port_state_selection(br);
--              spin_unlock_bh(&br->lock);
-       }
-       br->stp_enabled = BR_NO_STP;
-+
-+      /* To push in forwarding state any ports left in blocking */
-+      spin_lock_bh(&br->lock);
-+      br_port_state_selection(br);
-+      spin_unlock_bh(&br->lock);
- }
- void br_stp_set_enabled(struct net_bridge *br, unsigned long val)
--- 
-1.7.3.4
-
diff --git a/kernel/scripts/configcommon.py b/kernel/scripts/configcommon.py
new file mode 100755 (executable)
index 0000000..54f355a
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+import re
+import sys
+
+filelist = sys.argv[1:]
+
+lines = []
+options_state   = {}
+options_counter = {}
+
+first_file = True
+for filename in filelist:
+       f = open(filename)
+
+       for line in f.readlines():
+               # Strip newline.
+               line = line.rstrip()
+
+               if line.startswith("# Automatically generated file;"):
+                       continue
+
+               if line.endswith("Kernel Configuration"):
+                       continue
+
+               option = value = None
+
+               m = re.match("^# (.*) is not set$", line)
+               if m:
+                       option = m.group(1)
+                       value  = "n"
+
+               m = re.match("^(.*)=(.*)$", line)
+               if m:
+                       option = m.group(1)
+                       value  = m.group(2)
+
+               if option:
+                       option_value = "%s=%s" % (option, value or "")
+
+                       try:
+                               options_counter[option_value] += 1
+                               continue
+
+                       except KeyError:
+                               options_counter[option_value] = 1
+
+               if first_file:
+                       lines.append(line)
+
+       f.close()
+       first_file = False
+
+for line in lines:
+       m = re.match("^# (.*) is not set$", line)
+       if m:
+               if options_counter.get("%s=n" % m.group(1), 0) == len(filelist):
+                       print "# %s is not set" % m.group(1)
+
+               continue
+
+       m = re.match("^(.*)=(.*)$", line)
+       if m:
+               if options_counter.get(m.group(0), 0) == len(filelist):
+                       print m.group(0)
+
+               continue
+
+       print line
diff --git a/kernel/scripts/configdiff.py b/kernel/scripts/configdiff.py
new file mode 100755 (executable)
index 0000000..166acd7
--- /dev/null
@@ -0,0 +1,86 @@
+#!/usr/bin/python
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+import re
+import sys
+
+filelist = sys.argv[1:]
+
+options = []
+
+f = open(filelist[0])
+for line in f.readlines():
+       # Strip newline.
+       line = line.rstrip()
+
+       option = value = None
+
+       m = re.match("^# (.*) is not set$", line)
+       if m:
+               option = m.group(1)
+               value  = "n"
+
+       m = re.match("^(.*)=(.*)$", line)
+       if m:
+               option = m.group(1)
+               value  = m.group(2)
+
+       if option:
+               option_value = "%s=%s" % (option, value or "")
+               options.append(option_value)
+
+f.close()
+
+f = open(filelist[1])
+
+section = None
+for line in f.readlines():
+       m = re.match("^# (.*)$", line)
+       if m:
+               _section = m.group(1)
+               if not _section.startswith("CONFIG_") and \
+                               not _section.endswith("Kernel Configuration") and \
+                               not _section.startswith("Automatically generated file;"):
+                       section = _section
+       elif not line:
+               section = None
+
+       option = None
+       value  = None
+
+       m = re.match("^# (.*) is not set$", line)
+       if m:
+               option = m.group(1)
+               value  = "n"
+
+       m = re.match("^(.*)=(.*)$", line)
+       if m:
+               option = m.group(1)
+               value  = m.group(2)
+
+       if not option:
+               continue
+
+       # Ignore all options CONFIG_HAVE_ because we cannot
+       # set them anyway.
+       elif option.startswith("CONFIG_HAVE_"):
+               continue
+
+       option_value = "%s=%s" % (option, value)
+       if not option_value in options:
+               if section:
+                       print
+                       print "#"
+                       print "# %s" % section
+                       print "#"
+                       section = None
+
+               if value == "n":
+                       print "# %s is not set" % option
+               else:
+                       print "%s=%s" % (option, value)
+
+f.close()
diff --git a/kernel/scripts/configure b/kernel/scripts/configure
new file mode 100755 (executable)
index 0000000..e60bc83
--- /dev/null
@@ -0,0 +1,315 @@
+#!/bin/bash
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+BASEDIR=$(dirname ${0})
+SCRIPTS_DIR=${BASEDIR}
+
+CONFIGS="x86_64:default i686:legacy i686:default"
+CONFIGS="${CONFIGS} armv7hl:omap armv5tel:versatile armv5tel:kirkwood"
+
+function merge_config() {
+       local arch=${1}
+       local flavour=${2}
+       local output=${3}
+       shift 3
+
+       local arg
+       for arg in arch flavour output; do
+               if [ -z "${!arg}" ]; then
+                       echo >&2 "merge usage: <arch> <flavour> <output filename>"
+                       exit 2
+               fi
+       done
+
+       local config_mode="oldnoconfig"
+       local extra_configs
+       while [ $# -gt 0 ]; do
+               case "${1}" in
+                       --mode=*)
+                               config_mode=${1#--mode=}
+                               shift
+                               ;;
+                       -*)
+                               echo >&2 "Unknown option: ${1}"
+                               ;;
+                       *)
+                               extra_configs="${extra_configs} ${1}"
+                               ;;
+               esac
+               shift
+       done
+
+       local configs="${extra_configs} config-generic"
+
+       case "${arch}:${flavour}" in
+               # x86
+               x86_64:default)
+                       configs="${configs} config-x86-generic config-x86_64-default"
+                       ;;
+               i686:default)
+                       configs="${configs} config-x86-generic config-i686-default"
+                       ;;
+               i686:legacy)
+                       configs="${configs} config-x86-generic config-i686-default"
+                       configs="${configs} config-i686-legacy"
+                       ;;
+
+               # ARM
+               armv5tel:versatile)
+                       configs="${configs} config-arm-generic"
+                       ;;
+               armv5tel:kirkwood)
+                       configs="${configs} config-arm-generic config-armv5tel-kirkwood"
+                       ;;
+               armv7hl:omap)
+                       configs="${configs} config-arm-generic config-armv7hl-omap"
+                       ;;
+               *)
+                       echo >&2 "ERROR: Invalid parameters given: $@"
+                       return 1
+                       ;;
+       esac
+
+       # Determine the kernel arch.
+       local kernel_arch=
+       case "${arch}" in
+               arm*)
+                       kernel_arch="arm"
+                       ;;
+               i?86|x86*)
+                       kernel_arch="x86"
+                       ;;
+       esac
+
+       # Merge the configuration files from its elementary configuration
+       # files.
+       local tmp_out=$(mktemp)
+       local tmp_in=$(mktemp)
+
+       local config
+       for config in ${configs}; do
+               cat ${tmp_out} > ${tmp_in}
+               perl ${SCRIPTS_DIR}/merge.pl \
+                       ${config} ${tmp_in} > ${tmp_out}
+       done
+
+       if [ "${config_mode}" != "none" ]; then
+               echo "Running 'make oldnoconfig' for ${arch} (${flavour})..."
+               (
+                       cd ${KERNEL_DIR}
+                       cat ${tmp_out} > .config
+                       make ARCH="${kernel_arch}" ${config_mode}
+                       cat .config > ${tmp_out}
+               )
+       fi
+
+       cat ${tmp_out} > ${output}
+       rm -f ${tmp_in} ${tmp_out}
+}
+
+# This function runs an interactive "make oldconfig".
+function make_oldconfig() {
+       local arch="x86_64"
+       local kernel_arch="x86"
+       local flavour="default"
+
+       local config_in=$(mktemp)
+       local config_out=$(mktemp)
+       local diff_out=$(mktemp)
+
+       merge_config ${arch} ${flavour} ${config_in} --mode=none
+
+       (
+               cd ${KERNEL_DIR}
+               cat ${config_in} > .config
+
+               echo "You may now edit the configuration..."
+
+               local option
+               select option in oldconfig menuconfig oldnoconfig startover quit; do
+                       case "${option}" in
+                               oldconfig|menuconfig|oldnoconfig)
+                                       make ARCH=${kernel_arch} ${option}
+                                       ;;
+                               startover)
+                                       cat ${config_in} > .config
+                                       ;;
+                               quit)
+                                       break
+                                       ;;
+                       esac
+               done
+
+               cat .config > ${config_out}
+       )
+
+       ${SCRIPTS_DIR}/configdiff.py ${config_in} ${config_out} > ${diff_out}
+
+       # Update the rest of the configurations.
+       diff_configs ${diff_out} --mode=oldconfig
+
+       rm -f ${config_in} ${config_out} ${diff_out}
+}
+
+# config-generic
+#  Intersection of all files.
+# config-x86-generic
+#  Diff of (intersection of (i686-{default,legacy} and x86_64-default)
+#  against config-generic).
+# config-x86-x86_64
+#  Diff against merge of (config-generic and config-x86-generic).
+
+function diff_configs() {
+       local extra_configs="$@"
+
+       declare -A arch_configs
+
+       tmpdir=$(mktemp -d)
+
+       for config in ${CONFIGS}; do
+               arch=${config%:*}
+               flavour=${config#*:}
+
+               filename=${tmpdir}/config-${arch}-${flavour}
+
+               merge_config ${arch} ${flavour} ${filename} ${extra_configs}
+
+               # Do not include i686 legacy.
+               case "${config}" in
+                       i686:legacy)
+                               continue
+                               ;;
+                       armv5tel:versatile)
+                               ;;
+                       arm*)
+                               continue
+                               ;;
+               esac
+
+               case "${arch}" in
+                       x86*|i?86)
+                               arch_configs[x86]="${arch_configs[x86]} ${filename}"
+                               ;;
+                       arm*)
+                               arch_configs[arm]="${arch_configs[arm]} ${filename}"
+                               ;;
+                       *)
+                               echo >&2 "ERROR: Invalid architecture: ${arch}"
+                               ;;
+               esac
+       done
+
+       common_configs=""
+       for arch in x86 arm; do
+               filename="${tmpdir}/config-${arch}-common"
+               ${SCRIPTS_DIR}/configcommon.py ${arch_configs[${arch}]} \
+                       > ${filename}
+
+               common_configs="${common_configs} ${filename}"
+       done
+
+       ${SCRIPTS_DIR}/configcommon.py ${common_configs} > ${tmpdir}/config-generic
+
+       ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-generic ${tmpdir}/config-arm-common \
+               > ${tmpdir}/config-arm-generic
+
+       ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-generic ${tmpdir}/config-x86-common \
+               > ${tmpdir}/config-x86-generic
+
+       for config in ${CONFIGS}; do
+               arch=${config%:*}
+               flavour=${config#*:}
+
+               case "${config}" in
+                       arm*:*)
+                               suparch="arm"
+                               ;;
+                       i?86:*|x86*:*)
+                               suparch="x86"
+                               ;;
+               esac
+               filename=${tmpdir}/config-${arch}-${flavour}
+
+               case "${config}" in
+                       i686:legacy)
+                               # Legacy depends directly on the default configuration.
+                               ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-i686-default \
+                                       ${filename} > ${filename}.tmp
+                               ;;
+                       armv5tel:versatile)
+                               rm -f ${filename}
+                               continue
+                               ;;
+                       *)
+                               ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-${suparch}-common \
+                                       ${filename} > ${filename}.tmp
+                               ;;
+               esac
+               mv ${filename}{.tmp,}
+       done
+       rm -f ${tmpdir}/config-*-common
+
+       for config in ${tmpdir}/*; do
+               if ! cmp $(basename ${config}) ${config} &>/dev/null; then
+                       echo "$(basename ${config}) has changed."
+               fi
+               cat ${config} > $(basename ${config})
+       done
+
+       rm -rf ${tmpdir}
+}
+
+KERNEL_DIR=
+
+# Parse commandline.
+while [ $# -gt 0 ]; do
+       arg=${1}; shift
+       case "${arg}" in
+               --kernel-dir=*)
+                       KERNEL_DIR=${arg#--kernel-dir=}
+                       ;;
+               help|"")
+                       echo "${0} - available commands:"
+                       echo "    * merge <arch> <flavour> <output filename>"
+                       echo "    * update ..."
+                       echo "    * oldconfig"
+                       echo ""
+                       echo "    You must always set --kernel-dir=..."
+                       exit 0
+                       ;;
+               merge|oldconfig|update)
+                       action=${arg}
+                       break
+                       ;;
+       esac
+done
+
+if [ -z "${KERNEL_DIR}" ]; then
+       echo >&2 "--kernel-dir=... was not set!"
+       exit 2
+fi
+
+if [ -z "${action}" ]; then
+       echo >&2 "No action given... Try ${0} help."
+       exit 2
+fi
+
+case "${action}" in
+       merge)
+               merge_config $@
+               exit $?
+               ;;
+       oldconfig)
+               make_oldconfig
+               exit $?
+               ;;
+       update)
+               diff_configs $@
+               exit $?
+               ;;
+esac
+
+exit 1
diff --git a/kernel/scripts/merge.pl b/kernel/scripts/merge.pl
new file mode 100644 (file)
index 0000000..8c31815
--- /dev/null
@@ -0,0 +1,66 @@
+#! /usr/bin/perl
+
+my @args=@ARGV;
+my %configvalues;
+my @configoptions;
+my $configcounter = 0;
+
+# optionally print out the architecture as the first line of our output
+my $arch = $args[2];
+if (defined $arch) {
+       print "# $arch\n";
+}
+
+# first, read the override file
+
+open (FILE,"$args[0]") || die "Could not open $args[0]";
+while (<FILE>) {
+       my $str = $_;
+       my $configname;
+
+       if (/\# ([\w]+) is not set/) {
+               $configname = $1;
+       } elsif (/([\w]+)=/) {
+               $configname = $1;
+       }
+
+       if (defined($configname) && !exists($configvalues{$configname})) {
+               $configvalues{$configname} = $str;
+               $configoptions[$configcounter] = $configname;
+               $configcounter ++;
+       }
+};
+
+# now, read and output the entire configfile, except for the overridden
+# parts... for those the new value is printed.
+
+open (FILE2,"$args[1]") || die "Could not open $args[1]";
+while (<FILE2>) {
+       my $configname;
+
+       if (/\# ([\w]+) is not set/) {
+               $configname = $1;
+       } elsif (/([\w]+)=/) {
+               $configname  = $1;
+       }
+
+       if (defined($configname) && exists($configvalues{$configname})) {
+               print "$configvalues{$configname}";
+               delete($configvalues{$configname});
+       } else {
+               print "$_";
+       }
+}
+
+# now print the new values from the overridden configfile
+my $counter = 0;
+
+while ($counter < $configcounter) {
+       my $configname = $configoptions[$counter];
+       if (exists($configvalues{$configname})) {
+               print "$configvalues{$configname}";
+       }
+       $counter++;
+}
+
+1;
index 73d1038fbf982bc912da606b2f92f56f3b683526..21d1098c9f6b0114be2a4cdbf0964b23fd3e5bbd 100644 (file)
@@ -5,8 +5,8 @@ After=syslog.target
 [Service]
 Type=oneshot
 RemainAfterExit=yes
-ExecStart=/usr/bin/cpupower frequency-set -g performance
-ExecStop=/usr/bin/cpupower frequency-set -g ondemand
+ExecStart=/usr/bin/cpupower frequency-set -g ondemand
+ExecStop=/usr/bin/cpupower frequency-set -g performance
 
 [Install]
 WantedBy=multi-user.target
index 00233cf7f13555cc06573b3c42a38bbcb2adca3e..3c80b72920f52ed671b6bdad2c37fc08143653ef 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = kmod
-version    = 6
-release    = 1
+version    = 9
+release    = 2
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = System/Kernel
@@ -30,37 +30,39 @@ build
        end
 
        configure_options += \
-               --bindir=/bin \
-               --with-rootprefix= \
-               --with-rootlibdir=/%{lib} \
                --with-xz \
                --with-zlib
 
        # The testsuite does generate lots of errors.
 
        install_cmds
-               # Remove all man pages (because there are not corresponding
-               # binaries, yet).
-               rm -rvf %{BUILDROOT}%{mandir}
-
-               mkdir -pv %{BUILDROOT}/lib/modprobe.d
+               mkdir -pv %{BUILDROOT}%{prefix}/lib/modprobe.d
                mkdir -pv %{BUILDROOT}%{sysconfdir}/modprobe.d
                mkdir -pv %{BUILDROOT}%{sysconfdir}/depmod.d
 
-               mkdir -pv %{BUILDROOT}/sbin
-               ln -svf ../bin/kmod %{BUILDROOT}/sbin/modprobe
-               ln -svf ../bin/kmod %{BUILDROOT}/sbin/modinfo
-               ln -svf ../bin/kmod %{BUILDROOT}/sbin/insmod
-               ln -svf ../bin/kmod %{BUILDROOT}/sbin/rmmod
-               ln -svf ../bin/kmod %{BUILDROOT}/sbin/depmod
-               ln -svf ../bin/kmod %{BUILDROOT}/sbin/lsmod
-               ln -svf kmod %{BUILDROOT}/bin/lsmod
+               mkdir -pv %{BUILDROOT}%{sbindir}
+               ln -svf ../bin/kmod %{BUILDROOT}%{sbindir}/modprobe
+               ln -svf ../bin/kmod %{BUILDROOT}%{sbindir}/modinfo
+               ln -svf ../bin/kmod %{BUILDROOT}%{sbindir}/insmod
+               ln -svf ../bin/kmod %{BUILDROOT}%{sbindir}/rmmod
+               ln -svf ../bin/kmod %{BUILDROOT}%{sbindir}/depmod
+               ln -svf ../bin/kmod %{BUILDROOT}%{sbindir}/lsmod
        end
 end
 
 packages
        package %{name}
-               provides = module-init-tools = 4.0-1
+               provides
+                       module-init-tools = 4.0-1
+                       /bin/kmod
+                       /sbin/depmod
+                       /sbin/insmod
+                       /sbin/lsmod
+                       /sbin/modinfo
+                       /sbin/modprobe
+                       /sbin/rmmod
+               end
+
                obsoletes = module-init-tools < 4.0-1
        end
 
index 63c5d9e273917ca8e808799a764d003e83b8ba75..fb0ff9c8b2d2a66793a40bd0e8114b75b7b474bb 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = ldapvi
 version    = 1.7
-release    = 1
+release    = 2
 
 groups     = Applications/Editors
 url        = http://www.lichteblau.com/ldapvi/
@@ -36,10 +36,6 @@ build
                        sed -e "s/getline/_&/g" -i $i
                done
        end
-
-       install
-               make install prefix=%{BUILDROOT}/usr
-       end
 end
 
 packages
diff --git a/ldapvi/patches/GNUmakefile.in.patch b/ldapvi/patches/GNUmakefile.in.patch
new file mode 100644 (file)
index 0000000..11afafe
--- /dev/null
@@ -0,0 +1,24 @@
+--- ldapvi-1.7/GNUmakefile.in  2007-05-05 11:17:26.000000000 +0100
++++ GNUmakefile.in     2007-07-05 13:34:33.000000000 +0100
+@@ -4,6 +4,7 @@
+ INSTALL:=@INSTALL@
+ prefix:=@prefix@
+ exec_prefix:=@exec_prefix@
++datarootdir:=@datarootdir@
+ all: ldapvi
+@@ -25,10 +26,9 @@
+ .PHONY: install
+ install: ldapvi
+-      mkdir -p @bindir@ @mandir@/man1/ @prefix@/share/doc/ldapvi
+-      @INSTALL_PROGRAM@ ldapvi @bindir@
+-      @INSTALL_PROGRAM@ -m 644 ldapvi.1 @mandir@/man1/
+-      @INSTALL_PROGRAM@ -m 644 manual/manual.css manual/manual.xml manual/bg.png manual/html.xsl @prefix@/share/doc/ldapvi
++      mkdir -p $(DESTDIR)@bindir@ $(DESTDIR)@mandir@/man1/ $(DESTDIR)@prefix@/share/doc/ldapvi
++      @INSTALL_PROGRAM@ ldapvi $(DESTDIR)@bindir@
++      @INSTALL_PROGRAM@ -m 644 ldapvi.1 $(DESTDIR)@mandir@/man1/
+ distclean:
+       rm -rf configure GNUmakefile config.h config.log autom4te.cache config.status
index d0a015fa53d39f7e694f18fff3ea147067f092b4..1fa16e989ca003d91d7cbcb266d0680ce3403e23 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = libcap-ng
-version    = 0.6.6
-release    = 2
+version    = 0.7
+release    = 1
 
 groups     = System/Libraries
 url        = http://people.redhat.com/sgrubb/libcap-ng
@@ -25,19 +25,7 @@ build
                python
        end
 
-       install_cmds
-               # Move libraries to lib
-               mkdir -pv %{BUILDROOT}/%{lib}
-               mv -vf %{BUILDROOT}%{libdir}/libcap-ng.so.* %{BUILDROOT}/%{lib}/
-
-               # Recreate symlink
-               ln -svf ../../%{lib}/libcap-ng.so.0 %{BUILDROOT}%{libdir}/libcap-ng.so
-       end
-
-       # XXX Testsuite is broken by the package developers
-       #def test
-       #       make check
-       #end
+       # The testsuite is broken by the package developers
 end
 
 packages
index a4bd162a363ae2a148bb64db163d96681d766c0e..6941bda5cb0f77343d1e47eeef8bccd9df1cb7bf 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = libcap
 version    = 2.22
-release    = 2
+release    = 3
 
 groups     = System/Libraries
 url        = http://ftp.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/
@@ -33,13 +33,8 @@ build
        end
 
        install
-               make install DESTDIR=%{BUILDROOT} lib=/%{lib}
-
-               rm -vf %{BUILDROOT}/%{lib}/libcap.so
-               mkdir -pv %{BUILDROOT}%{libdir}
-               ln -svf ../../%{lib}/libcap.so.2 %{BUILDROOT}%{libdir}/libcap.so
-
-               chmod 755 %{BUILDROOT}/%{lib}/libcap.so.%{version}
+               make install DESTDIR=%{BUILDROOT} prefix=%{prefix} lib=%{lib}
+               chmod 755 %{BUILDROOT}/%{libdir}/libcap.so.%{version}
        end
 end
 
index 9fd650894ccfc62618eb796cc35e39612f20d12f..bee134c56457a098baee0072dc6cff99d008f8b7 100644 (file)
@@ -8,7 +8,7 @@ version_major = 5
 version_minor = 2
 version_patch = 36
 version    = %{version_major}.%{version_minor}.%{version_patch}
-release    = 2
+release    = 3
 thisapp    = db-%{version}
 
 soversion  = %{version_major}.%{version_minor}
@@ -87,6 +87,12 @@ packages
        package %{name}-devel
                template DEVEL
 
+               # You cannot install libdb-devel and db4-devel
+               # at the same time.
+               conflicts
+                       db4-devel
+               end
+
                files += !%{libdir}/libdb-%{soversion}.so
                files += !%{libdir}/libdb_sql-%{soversion}.so
        end
index 789c9f49c73e8ac489a7ea640a2076c353c89c3a..f1bb5ecec6a5cc6e239bcee0f9877a5435667b10 100644 (file)
@@ -1 +1 @@
-KERNEL=="controlD[0-9]*",      NAME="dri/%k", MODE="0666"
+KERNEL=="controlD[0-9]*", SUBSYSTEM=="drm", MODE="0600"
index 007090ad525c0ab347a6626ea0ab445c289fdbad..e434c0fc3b128aa0023e5401640d1dc70ddd1f74 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = libdrm
-version    = 2.4.21
+version    = 2.4.31
 release    = 1
 
 maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
@@ -17,13 +17,15 @@ description
        Direct Rendering Manager runtime library.
 end
 
-source_dl  =
+source_dl  = %{url}
 sources    = %{thisapp}.tar.bz2
 
 build
        requires
                automake
                autoconf
+               cairo-devel
+               libpciaccess-devel
                libtool
                libxcb-devel
                pkg-config
@@ -33,6 +35,7 @@ build
        configure_options += \
                --enable-udev \
                --enable-libkms \
+               --enable-nouveau-experimental-api \
                --disable-static
 
        prepare_cmds
@@ -42,15 +45,14 @@ build
        end
 
        install_cmds
-               mkdir -pv %{BUILDROOT}/lib/udev/rules.d/
-               cd %{DIR_APP} && install -m 644 %{DIR_SOURCE}/91-drm-modeset.rules\
-                       %{BUILDROOT}/lib/udev/rules.d/
+               mkdir -pv %{BUILDROOT}%{prefix}/lib/udev/rules.d/
+               install -m 644 %{DIR_SOURCE}/91-drm-modeset.rules \
+                       %{BUILDROOT}%{prefix}/lib/udev/rules.d/
        end
 end
 
 packages
        package %{name}
-       end
 
        package %{name}-devel
                template DEVEL
diff --git a/libdrm/patches/libdrm-2.4.21-b803918f3f.patch b/libdrm/patches/libdrm-2.4.21-b803918f3f.patch
deleted file mode 100644 (file)
index ff8c1c4..0000000
+++ /dev/null
@@ -1,506 +0,0 @@
-diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
-index a8e072d..3446390 100644
---- a/intel/intel_bufmgr_gem.c
-+++ b/intel/intel_bufmgr_gem.c
-@@ -93,6 +93,7 @@ typedef struct _drm_intel_bufmgr_gem {
-       /** Array of lists of cached gem objects of power-of-two sizes */
-       struct drm_intel_gem_bo_bucket cache_bucket[14 * 4];
-       int num_buckets;
-+      time_t time;
-       uint64_t gtt_size;
-       int available_fences;
-@@ -132,6 +133,7 @@ struct _drm_intel_bo_gem {
-        */
-       uint32_t tiling_mode;
-       uint32_t swizzle_mode;
-+      unsigned long stride;
-       time_t free_time;
-@@ -200,8 +202,9 @@ drm_intel_gem_bo_get_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
-                           uint32_t * swizzle_mode);
- static int
--drm_intel_gem_bo_set_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
--                          uint32_t stride);
-+drm_intel_gem_bo_set_tiling_internal(drm_intel_bo *bo,
-+                                   uint32_t tiling_mode,
-+                                   uint32_t stride);
- static void drm_intel_gem_bo_unreference_locked_timed(drm_intel_bo *bo,
-                                                     time_t time);
-@@ -251,7 +254,7 @@ drm_intel_gem_bo_tile_size(drm_intel_bufmgr_gem *bufmgr_gem, unsigned long size,
-  */
- static unsigned long
- drm_intel_gem_bo_tile_pitch(drm_intel_bufmgr_gem *bufmgr_gem,
--                          unsigned long pitch, uint32_t tiling_mode)
-+                          unsigned long pitch, uint32_t *tiling_mode)
- {
-       unsigned long tile_width;
-       unsigned long i;
-@@ -259,10 +262,10 @@ drm_intel_gem_bo_tile_pitch(drm_intel_bufmgr_gem *bufmgr_gem,
-       /* If untiled, then just align it so that we can do rendering
-        * to it with the 3D engine.
-        */
--      if (tiling_mode == I915_TILING_NONE)
-+      if (*tiling_mode == I915_TILING_NONE)
-               return ALIGN(pitch, 64);
--      if (tiling_mode == I915_TILING_X)
-+      if (*tiling_mode == I915_TILING_X)
-               tile_width = 512;
-       else
-               tile_width = 128;
-@@ -271,6 +274,14 @@ drm_intel_gem_bo_tile_pitch(drm_intel_bufmgr_gem *bufmgr_gem,
-       if (bufmgr_gem->gen >= 4)
-               return ROUND_UP_TO(pitch, tile_width);
-+      /* The older hardware has a maximum pitch of 8192 with tiled
-+       * surfaces, so fallback to untiled if it's too large.
-+       */
-+      if (pitch > 8192) {
-+              *tiling_mode = I915_TILING_NONE;
-+              return ALIGN(pitch, 64);
-+      }
-+
-       /* Pre-965 needs power of two tile width */
-       for (i = tile_width; i < pitch; i <<= 1)
-               ;
-@@ -549,7 +560,9 @@ static drm_intel_bo *
- drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr,
-                               const char *name,
-                               unsigned long size,
--                              unsigned long flags)
-+                              unsigned long flags,
-+                              uint32_t tiling_mode,
-+                              unsigned long stride)
- {
-       drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bufmgr;
-       drm_intel_bo_gem *bo_gem;
-@@ -615,6 +628,13 @@ retry:
-                                                                   bucket);
-                               goto retry;
-                       }
-+
-+                      if (drm_intel_gem_bo_set_tiling_internal(&bo_gem->bo,
-+                                                               tiling_mode,
-+                                                               stride)) {
-+                              drm_intel_gem_bo_free(&bo_gem->bo);
-+                              goto retry;
-+                      }
-               }
-       }
-       pthread_mutex_unlock(&bufmgr_gem->lock);
-@@ -642,6 +662,17 @@ retry:
-                       return NULL;
-               }
-               bo_gem->bo.bufmgr = bufmgr;
-+
-+              bo_gem->tiling_mode = I915_TILING_NONE;
-+              bo_gem->swizzle_mode = I915_BIT_6_SWIZZLE_NONE;
-+              bo_gem->stride = 0;
-+
-+              if (drm_intel_gem_bo_set_tiling_internal(&bo_gem->bo,
-+                                                       tiling_mode,
-+                                                       stride)) {
-+                  drm_intel_gem_bo_free(&bo_gem->bo);
-+                  return NULL;
-+              }
-       }
-       bo_gem->name = name;
-@@ -650,8 +681,6 @@ retry:
-       bo_gem->reloc_tree_fences = 0;
-       bo_gem->used_as_reloc_target = 0;
-       bo_gem->has_error = 0;
--      bo_gem->tiling_mode = I915_TILING_NONE;
--      bo_gem->swizzle_mode = I915_BIT_6_SWIZZLE_NONE;
-       bo_gem->reusable = 1;
-       drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem);
-@@ -669,7 +698,8 @@ drm_intel_gem_bo_alloc_for_render(drm_intel_bufmgr *bufmgr,
-                                 unsigned int alignment)
- {
-       return drm_intel_gem_bo_alloc_internal(bufmgr, name, size,
--                                             BO_ALLOC_FOR_RENDER);
-+                                             BO_ALLOC_FOR_RENDER,
-+                                             I915_TILING_NONE, 0);
- }
- static drm_intel_bo *
-@@ -678,7 +708,8 @@ drm_intel_gem_bo_alloc(drm_intel_bufmgr *bufmgr,
-                      unsigned long size,
-                      unsigned int alignment)
- {
--      return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, 0);
-+      return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, 0,
-+                                             I915_TILING_NONE, 0);
- }
- static drm_intel_bo *
-@@ -687,10 +718,8 @@ drm_intel_gem_bo_alloc_tiled(drm_intel_bufmgr *bufmgr, const char *name,
-                            unsigned long *pitch, unsigned long flags)
- {
-       drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr;
--      drm_intel_bo *bo;
-       unsigned long size, stride;
-       uint32_t tiling;
--      int ret;
-       do {
-               unsigned long aligned_y;
-@@ -717,24 +746,17 @@ drm_intel_gem_bo_alloc_tiled(drm_intel_bufmgr *bufmgr, const char *name,
-                       aligned_y = ALIGN(y, 32);
-               stride = x * cpp;
--              stride = drm_intel_gem_bo_tile_pitch(bufmgr_gem, stride, tiling);
-+              stride = drm_intel_gem_bo_tile_pitch(bufmgr_gem, stride, tiling_mode);
-               size = stride * aligned_y;
-               size = drm_intel_gem_bo_tile_size(bufmgr_gem, size, tiling_mode);
-       } while (*tiling_mode != tiling);
--
--      bo = drm_intel_gem_bo_alloc_internal(bufmgr, name, size, flags);
--      if (!bo)
--              return NULL;
--
--      ret = drm_intel_gem_bo_set_tiling(bo, tiling_mode, stride);
--      if (ret != 0) {
--              drm_intel_gem_bo_unreference(bo);
--              return NULL;
--      }
--
-       *pitch = stride;
--      return bo;
-+      if (tiling == I915_TILING_NONE)
-+              stride = 0;
-+
-+      return drm_intel_gem_bo_alloc_internal(bufmgr, name, size, flags,
-+                                             tiling, stride);
- }
- /**
-@@ -791,6 +813,7 @@ drm_intel_bo_gem_create_from_name(drm_intel_bufmgr *bufmgr,
-       }
-       bo_gem->tiling_mode = get_tiling.tiling_mode;
-       bo_gem->swizzle_mode = get_tiling.swizzle_mode;
-+      /* XXX stride is unknown */
-       drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem);
-       DBG("bo_create_from_handle: %d (%s)\n", handle, bo_gem->name);
-@@ -829,6 +852,9 @@ drm_intel_gem_cleanup_bo_cache(drm_intel_bufmgr_gem *bufmgr_gem, time_t time)
- {
-       int i;
-+      if (bufmgr_gem->time == time)
-+              return;
-+
-       for (i = 0; i < bufmgr_gem->num_buckets; i++) {
-               struct drm_intel_gem_bo_bucket *bucket =
-                   &bufmgr_gem->cache_bucket[i];
-@@ -846,6 +872,8 @@ drm_intel_gem_cleanup_bo_cache(drm_intel_bufmgr_gem *bufmgr_gem, time_t time)
-                       drm_intel_gem_bo_free(&bo_gem->bo);
-               }
-       }
-+
-+      bufmgr_gem->time = time;
- }
- static void
-@@ -854,7 +882,6 @@ drm_intel_gem_bo_unreference_final(drm_intel_bo *bo, time_t time)
-       drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr;
-       drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
-       struct drm_intel_gem_bo_bucket *bucket;
--      uint32_t tiling_mode;
-       int i;
-       /* Unreference all the target buffers */
-@@ -883,9 +910,7 @@ drm_intel_gem_bo_unreference_final(drm_intel_bo *bo, time_t time)
-       bucket = drm_intel_gem_bo_bucket_for_size(bufmgr_gem, bo->size);
-       /* Put the buffer into our internal cache for reuse if we can. */
--      tiling_mode = I915_TILING_NONE;
-       if (bufmgr_gem->bo_reuse && bo_gem->reusable && bucket != NULL &&
--          drm_intel_gem_bo_set_tiling(bo, &tiling_mode, 0) == 0 &&
-           drm_intel_gem_bo_madvise_internal(bufmgr_gem, bo_gem,
-                                             I915_MADV_DONTNEED)) {
-               bo_gem->free_time = time;
-@@ -894,8 +919,6 @@ drm_intel_gem_bo_unreference_final(drm_intel_bo *bo, time_t time)
-               bo_gem->validate_index = -1;
-               DRMLISTADDTAIL(&bo_gem->head, &bucket->head);
--
--              drm_intel_gem_cleanup_bo_cache(bufmgr_gem, time);
-       } else {
-               drm_intel_gem_bo_free(bo);
-       }
-@@ -925,6 +948,7 @@ static void drm_intel_gem_bo_unreference(drm_intel_bo *bo)
-               pthread_mutex_lock(&bufmgr_gem->lock);
-               drm_intel_gem_bo_unreference_final(bo, time.tv_sec);
-+              drm_intel_gem_cleanup_bo_cache(bufmgr_gem, time.tv_sec);
-               pthread_mutex_unlock(&bufmgr_gem->lock);
-       }
- }
-@@ -982,12 +1006,9 @@ static int drm_intel_gem_bo_map(drm_intel_bo *bo, int write_enable)
-                           &set_domain);
-       } while (ret == -1 && errno == EINTR);
-       if (ret != 0) {
--              ret = -errno;
-               fprintf(stderr, "%s:%d: Error setting to CPU domain %d: %s\n",
-                       __FILE__, __LINE__, bo_gem->gem_handle,
-                       strerror(errno));
--              pthread_mutex_unlock(&bufmgr_gem->lock);
--              return ret;
-       }
-       pthread_mutex_unlock(&bufmgr_gem->lock);
-@@ -1062,9 +1083,7 @@ int drm_intel_gem_bo_map_gtt(drm_intel_bo *bo)
-                           DRM_IOCTL_I915_GEM_SET_DOMAIN,
-                           &set_domain);
-       } while (ret == -1 && errno == EINTR);
--
-       if (ret != 0) {
--              ret = -errno;
-               fprintf(stderr, "%s:%d: Error setting domain %d: %s\n",
-                       __FILE__, __LINE__, bo_gem->gem_handle,
-                       strerror(errno));
-@@ -1072,7 +1091,7 @@ int drm_intel_gem_bo_map_gtt(drm_intel_bo *bo)
-       pthread_mutex_unlock(&bufmgr_gem->lock);
--      return ret;
-+      return 0;
- }
- int drm_intel_gem_bo_unmap_gtt(drm_intel_bo *bo)
-@@ -1587,7 +1606,7 @@ drm_intel_gem_bo_mrb_exec2(drm_intel_bo *bo, int used,
-       if (ret != 0) {
-               ret = -errno;
--              if (ret == -ENOMEM) {
-+              if (ret == -ENOSPC) {
-                       fprintf(stderr,
-                               "Execbuffer fails to pin. "
-                               "Estimate: %u. Actual: %u. Available: %u\n",
-@@ -1671,34 +1690,56 @@ drm_intel_gem_bo_unpin(drm_intel_bo *bo)
- }
- static int
--drm_intel_gem_bo_set_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
--                          uint32_t stride)
-+drm_intel_gem_bo_set_tiling_internal(drm_intel_bo *bo,
-+                                   uint32_t tiling_mode,
-+                                   uint32_t stride)
- {
-       drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr;
-       drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
-       struct drm_i915_gem_set_tiling set_tiling;
-       int ret;
--      if (bo_gem->global_name == 0 && *tiling_mode == bo_gem->tiling_mode)
-+      if (bo_gem->global_name == 0 &&
-+          tiling_mode == bo_gem->tiling_mode &&
-+          stride == bo_gem->stride)
-               return 0;
-       memset(&set_tiling, 0, sizeof(set_tiling));
--      set_tiling.handle = bo_gem->gem_handle;
--
-       do {
--              set_tiling.tiling_mode = *tiling_mode;
-+              set_tiling.handle = bo_gem->gem_handle;
-+              set_tiling.tiling_mode = tiling_mode;
-               set_tiling.stride = stride;
-               ret = ioctl(bufmgr_gem->fd,
-                           DRM_IOCTL_I915_GEM_SET_TILING,
-                           &set_tiling);
-       } while (ret == -1 && errno == EINTR);
--      if (ret == 0) {
--              bo_gem->tiling_mode = set_tiling.tiling_mode;
--              bo_gem->swizzle_mode = set_tiling.swizzle_mode;
-+      if (ret == -1)
-+              return -errno;
-+
-+      bo_gem->tiling_mode = set_tiling.tiling_mode;
-+      bo_gem->swizzle_mode = set_tiling.swizzle_mode;
-+      bo_gem->stride = set_tiling.stride;
-+      return 0;
-+}
-+
-+static int
-+drm_intel_gem_bo_set_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
-+                          uint32_t stride)
-+{
-+      drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr;
-+      drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
-+      int ret;
-+
-+      /* Linear buffers have no stride. By ensuring that we only ever use
-+       * stride 0 with linear buffers, we simplify our code.
-+       */
-+      if (*tiling_mode == I915_TILING_NONE)
-+              stride = 0;
-+
-+      ret = drm_intel_gem_bo_set_tiling_internal(bo, *tiling_mode, stride);
-+      if (ret == 0)
-               drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem);
--      } else
--              ret = -errno;
-       *tiling_mode = bo_gem->tiling_mode;
-       return ret;
-diff --git a/xf86drmMode.c b/xf86drmMode.c
-index f330e6f..ecb1fd5 100644
---- a/xf86drmMode.c
-+++ b/xf86drmMode.c
-@@ -52,6 +52,12 @@
- #define U642VOID(x) ((void *)(unsigned long)(x))
- #define VOID2U64(x) ((uint64_t)(unsigned long)(x))
-+static inline DRM_IOCTL(int fd, int cmd, void *arg)
-+{
-+      int ret = drmIoctl(fd, cmd, arg);
-+      return ret < 0 ? -errno : ret;
-+}
-+
- /*
-  * Util functions
-  */
-@@ -242,7 +248,7 @@ int drmModeAddFB(int fd, uint32_t width, uint32_t height, uint8_t depth,
-       f.depth  = depth;
-       f.handle = bo_handle;
--      if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_ADDFB, &f)))
-+      if ((ret = DRM_IOCTL(fd, DRM_IOCTL_MODE_ADDFB, &f)))
-               return ret;
-       *buf_id = f.fb_id;
-@@ -251,7 +257,7 @@ int drmModeAddFB(int fd, uint32_t width, uint32_t height, uint8_t depth,
- int drmModeRmFB(int fd, uint32_t bufferId)
- {
--      return drmIoctl(fd, DRM_IOCTL_MODE_RMFB, &bufferId);
-+      return DRM_IOCTL(fd, DRM_IOCTL_MODE_RMFB, &bufferId);
- }
-@@ -289,7 +295,7 @@ int drmModeDirtyFB(int fd, uint32_t bufferId,
-       dirty.clips_ptr = VOID2U64(clips);
-       dirty.num_clips = num_clips;
--      return drmIoctl(fd, DRM_IOCTL_MODE_DIRTYFB, &dirty);
-+      return DRM_IOCTL(fd, DRM_IOCTL_MODE_DIRTYFB, &dirty);
- }
-@@ -344,7 +350,7 @@ int drmModeSetCrtc(int fd, uint32_t crtcId, uint32_t bufferId,
-       } else
-         crtc.mode_valid = 0;
--      return drmIoctl(fd, DRM_IOCTL_MODE_SETCRTC, &crtc);
-+      return DRM_IOCTL(fd, DRM_IOCTL_MODE_SETCRTC, &crtc);
- }
- /*
-@@ -361,7 +367,7 @@ int drmModeSetCursor(int fd, uint32_t crtcId, uint32_t bo_handle, uint32_t width
-       arg.height = height;
-       arg.handle = bo_handle;
--      return drmIoctl(fd, DRM_IOCTL_MODE_CURSOR, &arg);
-+      return DRM_IOCTL(fd, DRM_IOCTL_MODE_CURSOR, &arg);
- }
- int drmModeMoveCursor(int fd, uint32_t crtcId, int x, int y)
-@@ -373,7 +379,7 @@ int drmModeMoveCursor(int fd, uint32_t crtcId, int x, int y)
-       arg.x = x;
-       arg.y = y;
--      return drmIoctl(fd, DRM_IOCTL_MODE_CURSOR, &arg);
-+      return DRM_IOCTL(fd, DRM_IOCTL_MODE_CURSOR, &arg);
- }
- /*
-@@ -510,7 +516,7 @@ int drmModeAttachMode(int fd, uint32_t connector_id, drmModeModeInfoPtr mode_inf
-       memcpy(&res.mode, mode_info, sizeof(struct drm_mode_modeinfo));
-       res.connector_id = connector_id;
--      return drmIoctl(fd, DRM_IOCTL_MODE_ATTACHMODE, &res);
-+      return DRM_IOCTL(fd, DRM_IOCTL_MODE_ATTACHMODE, &res);
- }
- int drmModeDetachMode(int fd, uint32_t connector_id, drmModeModeInfoPtr mode_info)
-@@ -520,7 +526,7 @@ int drmModeDetachMode(int fd, uint32_t connector_id, drmModeModeInfoPtr mode_inf
-       memcpy(&res.mode, mode_info, sizeof(struct drm_mode_modeinfo));
-       res.connector_id = connector_id;
--      return drmIoctl(fd, DRM_IOCTL_MODE_DETACHMODE, &res);
-+      return DRM_IOCTL(fd, DRM_IOCTL_MODE_DETACHMODE, &res);
- }
-@@ -637,16 +643,12 @@ int drmModeConnectorSetProperty(int fd, uint32_t connector_id, uint32_t property
-                            uint64_t value)
- {
-       struct drm_mode_connector_set_property osp;
--      int ret;
-       osp.connector_id = connector_id;
-       osp.prop_id = property_id;
-       osp.value = value;
--      if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_SETPROPERTY, &osp)))
--              return ret;
--
--      return 0;
-+      return DRM_IOCTL(fd, DRM_IOCTL_MODE_SETPROPERTY, &osp);
- }
- /*
-@@ -715,7 +717,6 @@ int drmCheckModesettingSupported(const char *busid)
- int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size,
-                       uint16_t *red, uint16_t *green, uint16_t *blue)
- {
--      int ret;
-       struct drm_mode_crtc_lut l;
-       l.crtc_id = crtc_id;
-@@ -724,16 +725,12 @@ int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size,
-       l.green = VOID2U64(green);
-       l.blue = VOID2U64(blue);
--      if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_GETGAMMA, &l)))
--              return ret;
--
--      return 0;
-+      return DRM_IOCTL(fd, DRM_IOCTL_MODE_GETGAMMA, &l);
- }
- int drmModeCrtcSetGamma(int fd, uint32_t crtc_id, uint32_t size,
-                       uint16_t *red, uint16_t *green, uint16_t *blue)
- {
--      int ret;
-       struct drm_mode_crtc_lut l;
-       l.crtc_id = crtc_id;
-@@ -742,10 +739,7 @@ int drmModeCrtcSetGamma(int fd, uint32_t crtc_id, uint32_t size,
-       l.green = VOID2U64(green);
-       l.blue = VOID2U64(blue);
--      if ((ret = drmIoctl(fd, DRM_IOCTL_MODE_SETGAMMA, &l)))
--              return ret;
--
--      return 0;
-+      return DRM_IOCTL(fd, DRM_IOCTL_MODE_SETGAMMA, &l);
- }
- int drmHandleEvent(int fd, drmEventContextPtr evctx)
-@@ -810,5 +804,5 @@ int drmModePageFlip(int fd, uint32_t crtc_id, uint32_t fb_id,
-       flip.flags = flags;
-       flip.reserved = 0;
--      return drmIoctl(fd, DRM_IOCTL_MODE_PAGE_FLIP, &flip);
-+      return DRM_IOCTL(fd, DRM_IOCTL_MODE_PAGE_FLIP, &flip);
- }
index ab21d039180465dd0bd31c2f8e068ab0daac93e6..7f26939af164a1d10f20b9436258d2b36561a625 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = libgcrypt
 version    = 1.5.0
-release    = 2
+release    = 3
 
 groups     = System/Libraries
 url        = http://www.gnupg.org/
@@ -28,14 +28,7 @@ build
        end
 
        configure_options += \
-               --libdir=/%{lib} \
-               --enable-noexecstack \
-
-       install_cmds
-               mkdir -pv %{BUILDROOT}%{libdir}
-               rm -vf %{BUILDROOT}/%{lib}/libgcrypt.so
-               ln -sfv ../../%{lib}/libgcrypt.so.11 %{BUILDROOT}%{libdir}/libgcrypt.so
-       end
+               --enable-noexecstack
 end
 
 packages
index 5147094eb89f0da5d67e3a622588df75c785c079..9263df4c08216326cf8d1f462301ad8c8beebd66 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = libgpg-error
 version    = 1.9
-release    = 2
+release    = 3
 
 groups     = System/Libraries
 url        = http://www.gnupg.org/
@@ -25,15 +25,6 @@ build
        requires
                gcc-c++
        end
-
-       configure_options += \
-               --libdir=/%{lib}
-
-       install_cmds
-               mkdir -pv %{BUILDROOT}%{libdir}
-               rm -vf %{BUILDROOT}/%{lib}/libgpg-error.so
-               ln -sfv ../../%{lib}/libgpg-error.so.0 %{BUILDROOT}%{libdir}/libgpg-error.so
-       end
 end
 
 packages
index fbd566d36016cc2c371d6884afe566a505131b0c..50e537de4a599c529f4e9f2c081de22b2b3fd3ba 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = libidn
-version    = 1.24
+version    = 1.25
 release    = 1
 
 groups     = System/Libraries
@@ -23,7 +23,6 @@ source_dl  = http://ftp.gnu.org/gnu/libidn/
 
 build
        configure_options += \
-               --libdir=/%{lib} \
                --disable-csharp \
                --disable-static
 
@@ -31,15 +30,6 @@ build
                export LD_LIBRARY_PATH=$(pwd)/lib/.libs
                make -C tests check
        end
-
-       install
-               make install DESTDIR=%{BUILDROOT} \
-                       pkgconfigdir=%{libdir}/pkgconfig
-
-               mkdir -pv %{BUILDROOT}%{libdir}
-               rm -vf %{BUILDROOT}/%{lib}/libidn.so
-               ln -svf ../../%{lib}/libidn.so.11.6.7 %{BUILDROOT}%{libdir}/libidn.so
-       end
 end
 
 packages
index 242e1a88c7fe5ab9522b6a29ee80c93916bc9245..e592118e4165e60aa8cb715b975f8f32fe9f0ea9 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = libjpeg
-version    = 1.1.1
+version    = 1.2.0
 release    = 1
 thisapp    = libjpeg-turbo-%{version}
 
@@ -14,12 +14,12 @@ license    = wxWidgets
 summary    = A MMX/SSE2 accelerated library for manipulating JPEG image files.
 
 description
-       The libjpeg-turbo-utils package contains simple client programs for \
-       accessing the libjpeg functions. It contains cjpeg, djpeg, jpegtran,\
-       rdjpgcom and wrjpgcom. Cjpeg compresses an image file into JPEG format. \
-       Djpeg decompresses a JPEG file into a regular image file. Jpegtran \
-       can perform various useful transformations on JPEG files. Rdjpgcom \
-       displays any text comments included in a JPEG file. Wrjpgcom inserts \
+       The libjpeg-turbo-utils package contains simple client programs for
+       accessing the libjpeg functions. It contains cjpeg, djpeg, jpegtran,
+       rdjpgcom and wrjpgcom. Cjpeg compresses an image file into JPEG format.
+       Djpeg decompresses a JPEG file into a regular image file. Jpegtran
+       can perform various useful transformations on JPEG files. Rdjpgcom
+       displays any text comments included in a JPEG file. Wrjpgcom inserts
        text comments into a JPEG file.
 end
 
diff --git a/libmnl/libmnl.nm b/libmnl/libmnl.nm
new file mode 100644 (file)
index 0000000..e60e96a
--- /dev/null
@@ -0,0 +1,41 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = libmnl
+version    = 1.0.3
+release    = 1
+
+groups     = System/Libraries
+url        = http://www.netfilter.org/projects/libmnl/
+license    = LGPLv2.1+
+summary    = Minimalistic user-space Netlink library.
+
+description
+       libmnl is a minimalistic user-space library oriented to Netlink developers. 
+       There are a lot of common tasks in parsing, validating, constructing of both 
+       the Netlink header and TLVs that are repetitive and easy to get wrong. 
+       This library aims to provide simple helpers that allows you to re-use code
+        and to avoid re-inventing the wheel. 
+end
+
+source_dl  = http://www.netfilter.org/projects/%{name}/files/
+sources    = %{thisapp}.tar.bz2
+
+build
+       configure_options +=\
+               --disable-static
+end
+
+packages
+       package %{name}
+
+       package %{name}-devel
+               template DEVEL
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
index 9f519696d7d883f1b1f3b39876817e66587efdd9..a1d1d5c87366204b70ab739651f50293f912855e 100644 (file)
@@ -4,35 +4,57 @@
 ###############################################################################
 
 name       = libmpc
-version    = 0.9
-release    = 2
+version    = 1.0
+release    = 1
+thisapp    = mpc-%{version}
+
+compat_version = 0.9
 
 groups     = System/Libraries
 url        = http://www.multiprecision.org/
 license    = LGPLv2.1+
 summary    = Mpc is a C library for the arithmetic of complex numbers.
 
-thisapp    = mpc-%{version}
-
 description
-       Mpc is a C library for the arithmetic of complex numbers with \
-       arbitrarily high precision and correct rounding of the result. \
+       Mpc is a C library for the arithmetic of complex numbers with
+       arbitrarily high precision and correct rounding of the result.
        It is built upon and follows the same principles as Mpfr.
 end
 
 source_dl  = http://www.multiprecision.org/mpc/download/
+sources   += mpc-%{compat_version}.tar.gz
 
 build
        requires
-               gmp-devel>=4.3.2
-               mpfr-devel>=2.4.2
+               gmp-devel >= 4.3.2
+               mpfr-devel >= 2.4.2
        end
 
-       # http://lists.gforge.inria.fr/pipermail/mpc-discuss/2011-February/000805.html
-       export EGREP=egrep
+       configure_options += \
+               --enable-shared \
+               --disable-static
+
+       build_cmds
+               cd %{DIR_SRC}/mpc-%{compat_version}
+               EGREP=egrep ./configure \
+                       %{configure_options}
+
+               make %{PARALLELISMFLAGS}
+       end
 
        test
+               export LD_LIBRARY_PATH=$(pwd)/src/.libs
                make check
+
+               cd %{DIR_SRC}/mpc-%{compat_version}
+               export LD_LIBRARY_PATH=$(pwd)/src/.libs
+               make check
+       end
+
+       install_cmds
+               cd %{DIR_SRC}/mpc-%{compat_version}
+               install -m 644 src/.libs/libmpc.so.2.0.0 %{BUILDROOT}%{libdir}
+               ln -svf libmpc.so.2.0.0 %{BUILDROOT}%{libdir}/libmpc.so.2
        end
 end
 
@@ -43,6 +65,14 @@ packages
                template DEVEL
        end
 
+       package %{name}-compat
+               summary = Compat libraries of %{thisapp}.
+
+               files
+                       %{libdir}/libmpc.so.2*
+               end
+       end
+
        package %{name}-debuginfo
                template DEBUGINFO
        end
diff --git a/libnetfilter_acct/libnetfilter_acct.nm b/libnetfilter_acct/libnetfilter_acct.nm
new file mode 100644 (file)
index 0000000..30a3a4a
--- /dev/null
@@ -0,0 +1,40 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = libnetfilter_acct
+version    = 1.0.0
+release    = 1
+
+groups     = System/Libraries
+url        = http://www.netfilter.org/projects/libnetfilter_acct/index.html
+license    = GPL
+summary    = The libnetfilter_acct userspace library.
+
+description
+       libnetfilter_acct is the userspace library providing interface to
+       extended accounting infrastructure. 
+end
+
+source_dl  = http://www.netfilter.org/projects/libnetfilter_acct/files/
+sources    = %{thisapp}.tar.bz2
+
+build
+       requires
+               libmnl-devel
+               pkg-config
+       end
+end
+
+packages
+       package %{name}
+
+       package %{name}-devel
+               template DEVEL
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
index 988f4504907158283c25c05611c9ad096ff946d2..0d6f07928e42934bca7a6ce797fef99e9e8532e2 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = libnetfilter_log
-version    = 0.0.16
+version    = 1.0.1
 release    = 1
 
 groups     = System/Libraries
@@ -13,25 +13,31 @@ license    = GPL
 summary    = The libnetfilter_log userspace library.
 
 description
-       libnetfilter_log is a software library to interface with the \
-       nfnetlink_log mechanism in Linux 2.6.14 and later. The library \
-       enables programs to receive and process packets logged by the \
+       libnetfilter_log is a software library to interface with the
+       nfnetlink_log mechanism in Linux 2.6.14 and later. The library
+       enables programs to receive and process packets logged by the
        Linux packet filter (iptables).
 end
 
-source_dl  =
+source_dl  = http://www.netfilter.org/projects/%{name}/files/
 sources    = %{thisapp}.tar.bz2
 
 build
        requires
                libnfnetlink-devel
-               pkg-config
        end
+
+       # Disable any optimization because of
+       # https://bugzilla.ipfire.org/show_bug.cgi?id=10018
+       if "%{DISTRO_ARCH}" == "i686"
+               CFLAGS += -O0
+       end
+
+       make_build_targets += CFLAGS="%{CFLAGS}" 
 end
 
 packages
        package %{name}
-       end
 
        package %{name}-devel
                template DEVEL
diff --git a/libnetfilter_log/patches/libnetfilter_log-sysheader.patch b/libnetfilter_log/patches/libnetfilter_log-sysheader.patch
new file mode 100644 (file)
index 0000000..dc847e1
--- /dev/null
@@ -0,0 +1,154 @@
+diff -urN libnetfilter_log-1.0.0/include/libnetfilter_log/libnetfilter_log.h libnetfilter_log-1.0.0-noheader/include/libnetfilter_log/libnetfilter_log.h
+--- libnetfilter_log-1.0.0/include/libnetfilter_log/libnetfilter_log.h 2010-11-03 15:39:00.000000000 +0300
++++ libnetfilter_log-1.0.0-noheader/include/libnetfilter_log/libnetfilter_log.h        2010-11-03 15:36:09.000000000 +0300
+@@ -9,7 +9,11 @@
+ #ifndef __LIBNETFILTER_LOG_H
+ #define __LIBNETFILTER_LOG_H
+-#include <libnetfilter_log/linux_nfnetlink_log.h>
++#ifndef aligned_be64
++#define aligned_be64 __be64 __attribute__((aligned(8)))
++#endif
++
++#include <linux/netfilter/nfnetlink_log.h>
+ struct nflog_handle;
+ struct nflog_g_handle;
+diff -urN libnetfilter_log-1.0.0/include/libnetfilter_log/linux_nfnetlink_log.h libnetfilter_log-1.0.0-noheader/include/libnetfilter_log/linux_nfnetlink_log.h
+--- libnetfilter_log-1.0.0/include/libnetfilter_log/linux_nfnetlink_log.h      2010-11-03 15:39:00.000000000 +0300
++++ libnetfilter_log-1.0.0-noheader/include/libnetfilter_log/linux_nfnetlink_log.h     1970-01-01 03:00:00.000000000 +0300
+@@ -1,102 +0,0 @@
+-#ifndef _NFNETLINK_LOG_H
+-#define _NFNETLINK_LOG_H
+-
+-#ifndef aligned_u64
+-#define aligned_u64 unsigned long long __attribute__((aligned(8)))
+-#endif
+-
+-/* This file describes the netlink messages (i.e. 'protocol packets'),
+- * and not any kind of function definitions.  It is shared between kernel and
+- * userspace.  Don't put kernel specific stuff in here */
+-
+-#include <linux/types.h>
+-#include <libnfnetlink/linux_nfnetlink.h>
+-
+-enum nfulnl_msg_types {
+-      NFULNL_MSG_PACKET,              /* packet from kernel to userspace */
+-      NFULNL_MSG_CONFIG,              /* connect to a particular queue */
+-
+-      NFULNL_MSG_MAX
+-};
+-
+-struct nfulnl_msg_packet_hdr {
+-      u_int16_t       hw_protocol;    /* hw protocol (network order) */
+-      u_int8_t        hook;           /* netfilter hook */
+-      u_int8_t        _pad;
+-} __attribute__ ((packed));
+-
+-struct nfulnl_msg_packet_hw {
+-      u_int16_t       hw_addrlen;
+-      u_int16_t       _pad;
+-      u_int8_t        hw_addr[8];
+-} __attribute__ ((packed));
+-
+-struct nfulnl_msg_packet_timestamp {
+-      aligned_u64     sec;
+-      aligned_u64     usec;
+-} __attribute__ ((packed));
+-
+-#define NFULNL_PREFIXLEN      30      /* just like old log target */
+-
+-enum nfulnl_attr_type {
+-      NFULA_UNSPEC,
+-      NFULA_PACKET_HDR,
+-      NFULA_MARK,                     /* u_int32_t nfmark */
+-      NFULA_TIMESTAMP,                /* nfulnl_msg_packet_timestamp */
+-      NFULA_IFINDEX_INDEV,            /* u_int32_t ifindex */
+-      NFULA_IFINDEX_OUTDEV,           /* u_int32_t ifindex */
+-      NFULA_IFINDEX_PHYSINDEV,        /* u_int32_t ifindex */
+-      NFULA_IFINDEX_PHYSOUTDEV,       /* u_int32_t ifindex */
+-      NFULA_HWADDR,                   /* nfulnl_msg_packet_hw */
+-      NFULA_PAYLOAD,                  /* opaque data payload */
+-      NFULA_PREFIX,                   /* string prefix */
+-      NFULA_UID,                      /* user id of socket */
+-      NFULA_SEQ,                      /* instance-local sequence number */
+-      NFULA_SEQ_GLOBAL,               /* global sequence number */
+-      NFULA_GID,                      /* group id of socket */
+-      NFULA_HWTYPE,                   /* hardware type */
+-      NFULA_HWHEADER,                 /* hardware header */
+-      NFULA_HWLEN,                    /* hardware header length */
+-
+-      __NFULA_MAX
+-};
+-#define NFULA_MAX (__NFULA_MAX - 1)
+-
+-enum nfulnl_msg_config_cmds {
+-      NFULNL_CFG_CMD_NONE,
+-      NFULNL_CFG_CMD_BIND,
+-      NFULNL_CFG_CMD_UNBIND,
+-      NFULNL_CFG_CMD_PF_BIND,
+-      NFULNL_CFG_CMD_PF_UNBIND,
+-};
+-
+-struct nfulnl_msg_config_cmd {
+-      u_int8_t        command;        /* nfulnl_msg_config_cmds */
+-} __attribute__ ((packed));
+-
+-struct nfulnl_msg_config_mode {
+-      u_int32_t       copy_range;
+-      u_int8_t        copy_mode;
+-      u_int8_t        _pad;
+-} __attribute__ ((packed));
+-
+-enum nfulnl_attr_config {
+-      NFULA_CFG_UNSPEC,
+-      NFULA_CFG_CMD,                  /* nfulnl_msg_config_cmd */
+-      NFULA_CFG_MODE,                 /* nfulnl_msg_config_mode */
+-      NFULA_CFG_NLBUFSIZ,             /* u_int32_t buffer size */
+-      NFULA_CFG_TIMEOUT,              /* u_int32_t in 1/100 s */
+-      NFULA_CFG_QTHRESH,              /* u_int32_t */
+-      NFULA_CFG_FLAGS,                /* u_int16_t */
+-      __NFULA_CFG_MAX
+-};
+-#define NFULA_CFG_MAX (__NFULA_CFG_MAX -1)
+-
+-#define NFULNL_COPY_NONE      0x00
+-#define NFULNL_COPY_META      0x01
+-#define NFULNL_COPY_PACKET    0x02
+-
+-#define NFULNL_CFG_F_SEQ      0x0001
+-#define NFULNL_CFG_F_SEQ_GLOBAL       0x0002
+-
+-#endif /* _NFNETLINK_LOG_H */
+diff -urN libnetfilter_log-1.0.0/include/libnetfilter_log/Makefile.am libnetfilter_log-1.0.0-noheader/include/libnetfilter_log/Makefile.am
+--- libnetfilter_log-1.0.0/include/libnetfilter_log/Makefile.am        2010-11-03 15:39:00.000000000 +0300
++++ libnetfilter_log-1.0.0-noheader/include/libnetfilter_log/Makefile.am       2010-11-03 15:36:09.000000000 +0300
+@@ -1,3 +1 @@
+-
+-pkginclude_HEADERS = libnetfilter_log.h libipulog.h linux_nfnetlink_log.h
+-
++pkginclude_HEADERS = libnetfilter_log.h libipulog.h
+diff -urN libnetfilter_log-1.0.0/include/libnetfilter_log/Makefile.in libnetfilter_log-1.0.0-noheader/include/libnetfilter_log/Makefile.in
+--- libnetfilter_log-1.0.0/include/libnetfilter_log/Makefile.in        2010-11-03 15:39:26.000000000 +0300
++++ libnetfilter_log-1.0.0-noheader/include/libnetfilter_log/Makefile.in       2010-11-03 15:36:42.000000000 +0300
+@@ -196,7 +196,7 @@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-pkginclude_HEADERS = libnetfilter_log.h libipulog.h linux_nfnetlink_log.h
++pkginclude_HEADERS = libnetfilter_log.h libipulog.h
+ all: all-am
+ .SUFFIXES:
+diff -urN libnetfilter_log-1.0.0/src/libnetfilter_log.c libnetfilter_log-1.0.0-noheader/src/libnetfilter_log.c
+--- libnetfilter_log-1.0.0/src/libnetfilter_log.c      2010-11-03 15:39:00.000000000 +0300
++++ libnetfilter_log-1.0.0-noheader/src/libnetfilter_log.c     2010-11-03 15:36:09.000000000 +0300
+@@ -27,8 +27,6 @@
+ #include <netinet/in.h>
+ #include <sys/socket.h>
+-#include <libnetfilter_log/linux_nfnetlink_log.h>
+-
+ #include <libnfnetlink/libnfnetlink.h>
+ #include <libnetfilter_log/libnetfilter_log.h>
diff --git a/libpwquality/libpwquality.nm b/libpwquality/libpwquality.nm
new file mode 100644 (file)
index 0000000..5cc4f6e
--- /dev/null
@@ -0,0 +1,57 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = libpwquality
+version    = 1.0.0
+release    = 1
+
+groups     = System/Base
+url        = https://fedorahosted.org/libpwquality/
+license    = BSD or GPL+
+summary    = A library for password generation and password quality checking.
+
+description
+       This is a library for password quality checks and generation of random 
+       passwords that pass the checks. This library uses the cracklib and 
+       cracklib dictionaries to perform some of the checks.
+end
+
+source_dl  = http://fedorahosted.org/releases/l/i/libpwquality/
+sources    = %{thisapp}.tar.bz2
+
+build
+       requires
+               cracklib-devel
+               gettext
+               pam-devel
+               python-devel
+       end
+end
+
+packages
+       package %{name}
+
+       package python-%{name}
+               summary = Python bindings for the libpwquality library.
+               description
+                       This is pwquality Python module that provides Python bindings
+                       for the libpwquality library. These bindings can be used
+                       for easy password quality checking and generation of random
+                       pronounceable passwords from Python applications.
+               end
+
+               files
+                       %{libdir}/python*
+               end
+       end
+
+       package %{name}-devel
+               template DEVEL
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
index dbd857a1dc5a8a9830d6b47119ca7b662428ee10..0be2a677d77cbac3caebbffb93756764356898f6 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = libselinux
-version    = 2.0.96
-release    = 2
+version    = 2.1.10
+release    = 1
 
 groups     = System/Libraries
 url        = http://www.selinuxproject.org
@@ -13,34 +13,36 @@ license    = Public Domain
 summary    = SELinux library and simple utilities.
 
 description
-       libselinux provides an API for SELinux applications to get and set \
-       process and file security contexts and to obtain security policy \
+       libselinux provides an API for SELinux applications to get and set
+       process and file security contexts and to obtain security policy
        decisions.
 end
 
-source_dl  =
 sources    = %{thisapp}.tgz
 
 build
        requires
                libsepol-devel
+               libsepol-static
                python-devel
                swig
        end
 
        build
                make clean
-               make CC=gcc LIBDIR="%{libdir}" CFLAGS="-g %{CFLAGS}" swigify
-               make CC=gcc LIBDIR="%{libdir}" CFLAGS="-g %{CFLAGS}" all
-               make CC=gcc LIBDIR="%{libdir}" CFLAGS="-g %{CFLAGS}" pywrap
+               make CC=gcc LIBDIR="%{libdir}" SHLIBDIR="%{libdir}" CFLAGS="-g %{CFLAGS}" swigify
+               make CC=gcc LIBDIR="%{libdir}" SHLIBDIR="%{libdir}" CFLAGS="-g %{CFLAGS}" all
+               make CC=gcc LIBDIR="%{libdir}" SHLIBDIR="%{libdir}" CFLAGS="-g %{CFLAGS}" pywrap
        end
 
-       make_install_targets += LIBDIR="%{BUILDROOT}%{libdir}" \
-               SHLIBDIR="%{BUILDROOT}/%{lib}"
+       # Install libraries to correct place.
+       make_install_targets += install-pywrap \
+               BINDIR="%{BUILDROOT}%{bindir}" \
+               SBINDIR="%{BUILDROOT}%{sbindir}" \
+               LIBDIR="%{BUILDROOT}%{libdir}" \
+               SHLIBDIR="%{BUILDROOT}%{libdir}"
 
        install_cmds
-               make install-pywrap DESTDIR=%{BUILDROOT} LIBDIR="%{BUILDROOT}%{libdir}"
-
                # Remove unwanted binaries
                rm -f %{BUILDROOT}/usr/sbin/compute_*
                rm -f %{BUILDROOT}/usr/sbin/deftype
@@ -56,18 +58,14 @@ build
                rm -f %{BUILDROOT}/usr/sbin/getseuser
                rm -f %{BUILDROOT}/usr/sbin/selinux_check_securetty_context
 
-               # Move binaries from /sbin to /usr/sbin
-               mv %{BUILDROOT}/sbin/* %{BUILDROOT}/usr/sbin
-
-               # Remove python module
-               rm -rvf %{BUILDROOT}/usr/lib/python*
+               # Fix weird symlink.
+               ln -svf libselinux.so.1 %{BUILDROOT}%{libdir}/libselinux.so
        end
 end
 
 packages
        package %{name}
-       end
-
+       
        package %{name}-devel
                template DEVEL
        end
@@ -80,20 +78,18 @@ packages
 
                files
                        /usr/sbin/*
-                       /usr/share/man/man{5,8}/*
+                       /usr/share/man/man{5,8}
+               end
+       end
+       
+       package python-selinux
+               summary =  SELinux python bindings.
+               description = SELinux python bindings for libselinux.
+       
+               def files
+                       %{libdir}/python*
                end
        end
-
-       #package python-selinux
-       #       summary =  SELinux python bindings.
-       #       description = SELinux python bindings for libselinux.
-       #
-       #       def files
-       #               /usr/lib/python*
-       #       end
-       #end
-
-
 
        package %{name}-debuginfo
                template DEBUGINFO
diff --git a/libselinux/patches/libselinux-ipfire.patch b/libselinux/patches/libselinux-ipfire.patch
deleted file mode 100644 (file)
index 29e0eef..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur a/src/Makefile b/src/Makefile
---- a/src/Makefile     2010-11-06 13:49:19.000000000 +0100
-+++ b/src/Makefile     2010-06-16 14:03:39.000000000 +0200
-@@ -95,7 +95,7 @@
-       $(CC) $(CFLAGS) -I$(PYINC) -fPIC -DSHARED -c -o $@ $<
- $(AUDIT2WHYSO): audit2why.lo
--      $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lselinux ${LIBDIR}/libsepol.a -L$(LIBDIR) -Wl,-soname,$@
-+      $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ -L. -lselinux -lsepol -L$(LIBDIR) -Wl,-soname,$@
- %.o:  %.c policy.h
-       $(CC) $(CFLAGS) $(TLSFLAGS) -c -o $@ $<
diff --git a/libselinux/patches/libselinux-rhat.patch2 b/libselinux/patches/libselinux-rhat.patch2
new file mode 100644 (file)
index 0000000..4ac818f
--- /dev/null
@@ -0,0 +1,693 @@
+diff --git a/libselinux/include/selinux/label.h b/libselinux/include/selinux/label.h
+index 1a54307..f6eeb21 100644
+--- a/libselinux/include/selinux/label.h
++++ b/libselinux/include/selinux/label.h
+@@ -46,8 +46,10 @@ struct selabel_handle;
+ #define SELABEL_OPT_PATH      3
+ /* select a subset of the search space as an optimization (file backend) */
+ #define SELABEL_OPT_SUBSET    4
++/* like subset, but an array of subsets */
++#define SELABEL_OPT_PREFIXES  5
+ /* total number of options */
+-#define SELABEL_NOPT          5
++#define SELABEL_NOPT          6
+ /*
+  * Label operations
+diff --git a/libselinux/include/selinux/selinux.h b/libselinux/include/selinux/selinux.h
+index 6f483c9..9756ac9 100644
+--- a/libselinux/include/selinux/selinux.h
++++ b/libselinux/include/selinux/selinux.h
+@@ -139,7 +139,10 @@ struct av_decision {
+ /* Structure for passing options, used by AVC and label subsystems */
+ struct selinux_opt {
+       int type;
+-      const char *value;
++      union {
++              const char *value;
++              const char **values;
++      };
+ };
+ /* Callback facilities */
+@@ -420,6 +423,11 @@ extern int matchpathcon_init(const char *path);
+    regexes that have stems that are prefixes of 'prefix'. */
+ extern int matchpathcon_init_prefix(const char *path, const char *prefix);
++/* Same as matchpathcon_init, but only load entries with
++ * regexes that have stems that are prefixes of the 'prefixes'
++ * array of entries.  The last entry must be NULL. */
++extern int matchpathcon_init_prefixes(const char *patch, const char **prefixes);
++
+ /* Free the memory allocated by matchpathcon_init. */
+ extern void matchpathcon_fini(void);
+@@ -488,6 +496,7 @@ extern const char *selinux_policy_root(void);
+ /* These functions return the paths to specific files under the 
+    policy root directory. */
++extern const char *selinux_current_policy_path(void);
+ extern const char *selinux_binary_policy_path(void);
+ extern const char *selinux_failsafe_context_path(void);
+ extern const char *selinux_removable_context_path(void);
+@@ -502,10 +511,12 @@ extern const char *selinux_homedir_context_path(void);
+ extern const char *selinux_media_context_path(void);
+ extern const char *selinux_virtual_domain_context_path(void);
+ extern const char *selinux_virtual_image_context_path(void);
++extern const char *selinux_lxc_contexts_path(void);
+ extern const char *selinux_x_context_path(void);
+ extern const char *selinux_sepgsql_context_path(void);
+ extern const char *selinux_contexts_path(void);
+ extern const char *selinux_securetty_types_path(void);
++extern const char *selinux_booleans_subs_path(void);
+ extern const char *selinux_booleans_path(void);
+ extern const char *selinux_customizable_types_path(void);
+ extern const char *selinux_users_path(void);
+diff --git a/libselinux/man/man3/matchpathcon.3 b/libselinux/man/man3/matchpathcon.3
+index cdbb252..b6814ed 100644
+--- a/libselinux/man/man3/matchpathcon.3
++++ b/libselinux/man/man3/matchpathcon.3
+@@ -8,7 +8,9 @@ matchpathcon, matchpathcon_index \- get the default SELinux security context for
+ .BI "int matchpathcon_init(const char *" path ");"
+-.BI "int matchpathcon_init_prefix(const char *" path ", const char *" subset ");"
++.BI "int matchpathcon_init_prefix(const char *" path ", const char *" prefix ");"
++
++.BI "int matchpathcon_init_prefixes(const char *" path ", const char **" prefixes ");"
+ .BI "int matchpathcon_fini(void);"
+ .sp
+@@ -50,6 +52,14 @@ by
+ .I prefix.
+ .sp
++.B matchpathcon_init_prefixes
++is the same as
++.B matchpathcon_init_prefix
++but takes an array of
++.I prefixes
++instead of a single prefix.  The last entry in the array must be NULL.
++
++.sp
+ .B matchpathcon_fini
+ frees the memory allocated by a prior call to
+ .B matchpathcon_init.
+diff --git a/libselinux/man/man3/selabel_open.3 b/libselinux/man/man3/selabel_open.3
+index 8674e37..fc5b120 100644
+--- a/libselinux/man/man3/selabel_open.3
++++ b/libselinux/man/man3/selabel_open.3
+@@ -37,8 +37,11 @@ structures of length
+ .ta 4n 16n 24n
+ .nf
+ struct selinux_opt {
+-      int     type;
+-      const char      *value;
++      int type;
++      union {
++              const char *value;
++              const char **values;
++      };
+ };
+ .fi
+ .ta
+@@ -66,6 +69,13 @@ A non-null value for this option enables context validation.  By default,
+ is used; a custom validation function can be provided via
+ .BR selinux_set_callback (3).
+ Note that an invalid context may not be treated as an error unless it is actually encountered during a lookup operation.
++.TP
++.B SELABEL_OPT_SUBSET
++A ":" separates string of path prefixes that tell the system to only loads entries with regular expressions that could match this strings. For example "/dev:/var/run:/tmp".  This option can cause the system to use less memory and work faster, but you should only use paths that begin with a prefix.
++.TP
++.B SELABEL_OPT_PATH
++A string representing an alternate path the the regular expressions.
++.sp
+ .SH "BACKENDS"
+@@ -99,4 +109,3 @@ Eamon Walsh <ewalsh@tycho.nsa.gov>
+ .BR selabel_stats (3),
+ .BR selinux_set_callback (3),
+ .BR selinux (8)
+-
+diff --git a/libselinux/man/man3/selinux_binary_policy_path.3 b/libselinux/man/man3/selinux_binary_policy_path.3
+index 8ead1a4..c68ace5 100644
+--- a/libselinux/man/man3/selinux_binary_policy_path.3
++++ b/libselinux/man/man3/selinux_binary_policy_path.3
+@@ -17,6 +17,8 @@ extern const char *selinux_policy_root(void);
+ extern const char *selinux_binary_policy_path(void);
++extern const char *selinux_current_policy_path(void);
++
+ extern const char *selinux_failsafe_context_path(void);
+ extern const char *selinux_removable_context_path(void);
+@@ -52,7 +54,9 @@ selinux_path() - top-level SELinux configuration directory
+ .sp
+ selinux_policy_root() - top-level policy directory 
+ .sp
+-selinux_binary_policy_path() - binary policy file loaded into kernel
++selinux_current_policy_path() - binary policy file loaded into kernel
++.sp
++selinux_binary_policy_path() - binary policy path on disk
+ .sp
+ selinux_default_type_path - context file mapping roles to default types.
+ .sp
+diff --git a/libselinux/src/audit2why.c b/libselinux/src/audit2why.c
+index 1bf3599..f621de7 100644
+--- a/libselinux/src/audit2why.c
++++ b/libselinux/src/audit2why.c
+@@ -214,19 +214,12 @@ static int __policy_init(const char *init_path)
+                       PyErr_SetString( PyExc_ValueError, errormsg);
+                       return 1;
+               }
+-              snprintf(path, PATH_MAX, "%s.%d",
+-                       selinux_binary_policy_path(), vers);
+-              fp = fopen(path, "r");
+-              while (!fp && errno == ENOENT && --vers) {
+-                      snprintf(path, PATH_MAX, "%s.%d",
+-                               selinux_binary_policy_path(), vers);
+-                      fp = fopen(path, "r");
+-              }
++              fp = fopen(selinux_current_policy_path(), "r");
+               if (!fp) {
+                       snprintf(errormsg, sizeof(errormsg), 
+-                               "unable to open %s.%d:  %s\n",
+-                               selinux_binary_policy_path(),
+-                               security_policyvers(), strerror(errno));
++                               "unable to open %s:  %s\n",
++                               selinux_current_policy_path(),
++                               strerror(errno));
+                       PyErr_SetString( PyExc_ValueError, errormsg);
+                       return 1;
+               }
+diff --git a/libselinux/src/avc.c b/libselinux/src/avc.c
+index 802a07f..6ff83a7 100644
+--- a/libselinux/src/avc.c
++++ b/libselinux/src/avc.c
+@@ -827,6 +827,7 @@ int avc_has_perm(security_id_t ssid, security_id_t tsid,
+       errsave = errno;
+       avc_audit(ssid, tsid, tclass, requested, &avd, rc, auditdata);
+       errno = errsave;
++      if (!avc_enforcing) return 0;
+       return rc;
+ }
+diff --git a/libselinux/src/avc_internal.c b/libselinux/src/avc_internal.c
+index be4c0a3..a07aa7f 100644
+--- a/libselinux/src/avc_internal.c
++++ b/libselinux/src/avc_internal.c
+@@ -101,7 +101,9 @@ static int avc_netlink_receive(char *buf, unsigned buflen, int blocking)
+       socklen_t nladdrlen = sizeof nladdr;
+       struct nlmsghdr *nlh = (struct nlmsghdr *)buf;
+-      rc = poll(&pfd, 1, (blocking ? -1 : 0));
++      do {
++              rc = poll(&pfd, 1, (blocking ? -1 : 0));
++      } while (rc < 0 && errno == EINTR);
+       if (rc == 0 && !blocking) {
+               errno = EWOULDBLOCK;
+diff --git a/libselinux/src/booleans.c b/libselinux/src/booleans.c
+index 1510043..bf526c0 100644
+--- a/libselinux/src/booleans.c
++++ b/libselinux/src/booleans.c
+@@ -86,45 +86,131 @@ int security_get_boolean_names(char ***names, int *len)
+ }
+ hidden_def(security_get_boolean_names)
+-#define STRBUF_SIZE 3
+-static int get_bool_value(const char *name, char **buf)
++
++static char * bool_sub(const char *name) 
+ {
+-      int fd, len;
++      char *sub = NULL;
++      char *line_buf = NULL;
++      size_t line_len = 0;
++      FILE *cfg;
++
++      if (!name) 
++              return NULL;
++
++      cfg = fopen(selinux_booleans_subs_path(), "r");
++
++      if (!cfg)
++              return NULL;
++
++      while (getline(&line_buf, &line_len, cfg)) {
++              char *ptr = NULL;
++              char *src = line_buf;
++              char *dst = NULL;
++
++              while (*src && isspace(*src))
++                      src++;
++              if (src[0] == '#') continue;
++              ptr = src;
++              while (*ptr && ! isspace(*ptr))
++                      ptr++;
++              *ptr++ = '\0';
++              if (! *src || (strcmp(src, name) != 0))
++                      continue;
++
++              dst = ptr;
++              while (*dst && isspace(*dst))
++                      dst++;
++              ptr=dst;
++              while (*ptr && ! isspace(*ptr))
++                      ptr++;
++              *ptr='\0';
++              if (! *dst)
++                      continue;
++
++              sub = strdup(dst);
++              break;
++      }
++
++      free(line_buf);
++      fclose(cfg);
++      return sub;
++}
++
++static int bool_open(const char *name, int flag) {
+       char *fname = NULL;
++      char *alt_name = NULL;
++      int len;
++      int fd = -1;
++      char *ptr;
+-      if (!selinux_mnt) {
+-              errno = ENOENT;
+-              return -1;
++      if (!name) {
++              errno = EINVAL;
++              return fd;
+       }
+-      *buf = (char *)malloc(sizeof(char) * (STRBUF_SIZE + 1));
+-      if (!*buf)
+-              goto out;
+-      (*buf)[STRBUF_SIZE] = 0;
+-
+       len = strlen(name) + strlen(selinux_mnt) + sizeof(SELINUX_BOOL_DIR);
+       fname = (char *)malloc(sizeof(char) * len);
+       if (!fname)
+-              goto out;
++              return fd;
++
+       snprintf(fname, len, "%s%s%s", selinux_mnt, SELINUX_BOOL_DIR, name);
+-      fd = open(fname, O_RDONLY);
+-      if (fd < 0)
++      fd = open(fname, flag);
++      if (fd >= 0 || errno != ENOENT) 
+               goto out;
+-      len = read(fd, *buf, STRBUF_SIZE);
+-      close(fd);
+-      if (len != STRBUF_SIZE)
++      alt_name = bool_sub(name);
++      if (! alt_name)
+               goto out;
++      len = strlen(alt_name) + strlen(selinux_mnt) + sizeof(SELINUX_BOOL_DIR);
++      ptr = realloc(fname, len);
++      if (!ptr) 
++              goto out;
++
++      fname = ptr;
++      snprintf(fname, len, "%s%s%s", selinux_mnt, SELINUX_BOOL_DIR, alt_name);
++      fd = open(fname, flag);
++
++out:
+       free(fname);
+-      return 0;
++      free(alt_name);
++
++      return fd;
++}
++
++#define STRBUF_SIZE 3
++static int get_bool_value(const char *name, char **buf)
++{
++      int fd, len;
++      int rc = -1;
++      char *bool_buf = NULL;
++      if (!selinux_mnt) {
++              errno = ENOENT;
++              return -1;
++      }
++
++      fd = bool_open(name, O_RDONLY);
++      if (fd < 0)
++              return -1;
++
++      bool_buf = malloc(sizeof(char) * (STRBUF_SIZE + 1));
++      if (!bool_buf)
++              goto out;
++      bool_buf[STRBUF_SIZE] = 0;
++
++      len = read(fd, bool_buf, STRBUF_SIZE);
++      if (len != STRBUF_SIZE) 
++              goto out;
++      rc = 0;
+       out:
+-      if (*buf)
+-              free(*buf);
+-      if (fname)
+-              free(fname);
+-      return -1;
++      close(fd);
++      if (!rc) {
++              *buf = bool_buf;
++      } else {
++              free(bool_buf);
++      }
++      return rc;
+ }
+ int security_get_boolean_pending(const char *name)
+@@ -164,8 +250,8 @@ hidden_def(security_get_boolean_active)
+ int security_set_boolean(const char *name, int value)
+ {
+-      int fd, ret, len;
+-      char buf[2], *fname;
++      int fd, ret;
++      char buf[2];
+       if (!selinux_mnt) {
+               errno = ENOENT;
+@@ -176,17 +262,9 @@ int security_set_boolean(const char *name, int value)
+               return -1;
+       }
+-      len = strlen(name) + strlen(selinux_mnt) + sizeof(SELINUX_BOOL_DIR);
+-      fname = (char *)malloc(sizeof(char) * len);
+-      if (!fname)
++      fd = bool_open(name, O_WRONLY);
++      if (fd < 0) 
+               return -1;
+-      snprintf(fname, len, "%s%s%s", selinux_mnt, SELINUX_BOOL_DIR, name);
+-
+-      fd = open(fname, O_WRONLY);
+-      if (fd < 0) {
+-              ret = -1;
+-              goto out;
+-      }
+       if (value)
+               buf[0] = '1';
+@@ -196,8 +274,7 @@ int security_set_boolean(const char *name, int value)
+       ret = write(fd, buf, 2);
+       close(fd);
+-      out:
+-      free(fname);
++
+       if (ret > 0)
+               return 0;
+       else
+diff --git a/libselinux/src/callbacks.c b/libselinux/src/callbacks.c
+index b245364..7c47222 100644
+--- a/libselinux/src/callbacks.c
++++ b/libselinux/src/callbacks.c
+@@ -16,6 +16,7 @@ default_selinux_log(int type __attribute__((unused)), const char *fmt, ...)
+ {
+       int rc;
+       va_list ap;
++      if (is_selinux_enabled() == 0) return 0;
+       va_start(ap, fmt);
+       rc = vfprintf(stderr, fmt, ap);
+       va_end(ap);
+diff --git a/libselinux/src/file_path_suffixes.h b/libselinux/src/file_path_suffixes.h
+index 0b00156..825f295 100644
+--- a/libselinux/src/file_path_suffixes.h
++++ b/libselinux/src/file_path_suffixes.h
+@@ -22,6 +22,8 @@ S_(BINPOLICY, "/policy/policy")
+     S_(COLORS, "/secolor.conf")
+     S_(VIRTUAL_DOMAIN, "/contexts/virtual_domain_context")
+     S_(VIRTUAL_IMAGE, "/contexts/virtual_image_context")
++    S_(LXC_CONTEXTS, "/contexts/lxc_contexts")
+     S_(FILE_CONTEXT_SUBS, "/contexts/files/file_contexts.subs")
+     S_(FILE_CONTEXT_SUBS_DIST, "/contexts/files/file_contexts.subs_dist")
+     S_(SEPGSQL_CONTEXTS, "/contexts/sepgsql_contexts")
++    S_(BOOLEAN_SUBS, "/booleans.subs")
+diff --git a/libselinux/src/label_file.c b/libselinux/src/label_file.c
+index 7bc46cc..82a608c 100644
+--- a/libselinux/src/label_file.c
++++ b/libselinux/src/label_file.c
+@@ -27,6 +27,7 @@
+  * Internals, mostly moved over from matchpathcon.c
+  */
++#define MAX_PREFIX 100
+ /* A file security context specification. */
+ typedef struct spec {
+       struct selabel_lookup_rec lr;   /* holds contexts for lookup result */
+@@ -276,7 +277,7 @@ static int compile_regex(struct saved_data *data, spec_t *spec, char **errbuf)
+ static int process_line(struct selabel_handle *rec,
+-                      const char *path, const char *prefix,
++                      const char *path, const char **prefix_array,
+                       char *line_buf, int pass, unsigned lineno)
+ {
+       int items, len;
+@@ -310,12 +311,24 @@ static int process_line(struct selabel_handle *rec,
+       }
+       len = get_stem_from_spec(regex);
+-      if (len && prefix && strncmp(prefix, regex, len)) {
+-              /* Stem of regex does not match requested prefix, discard. */
+-              free(regex);
+-              free(type);
+-              free(context);
+-              return 0;
++      if (len && prefix_array[0]) {
++              int i = 0;
++              int found = 0;
++              while (i < MAX_PREFIX && prefix_array[i]) {
++                      if (strncmp(prefix_array[i], regex, len) == 0) {
++                              found = 1;
++                              break;
++                      }
++                      i++;
++              }
++
++              if (! found) {
++                      /* Stem of regex does not match requested prefix, discard. */
++                      free(regex);
++                      free(type);
++                      free(context);
++                      return 0;
++              }
+       }
+       if (pass == 1) {
+@@ -397,7 +410,8 @@ static int init(struct selabel_handle *rec, struct selinux_opt *opts,
+ {
+       struct saved_data *data = (struct saved_data *)rec->data;
+       const char *path = NULL;
+-      const char *prefix = NULL;
++      const char *static_prefix_array[2] = {NULL, };
++      const char **prefix_array = static_prefix_array;
+       FILE *fp;
+       FILE *localfp = NULL;
+       FILE *homedirfp = NULL;
+@@ -418,7 +432,10 @@ static int init(struct selabel_handle *rec, struct selinux_opt *opts,
+                       path = opts[n].value;
+                       break;
+               case SELABEL_OPT_SUBSET:
+-                      prefix = opts[n].value;
++                      static_prefix_array[0] = opts[n].value;
++                      break;
++              case SELABEL_OPT_PREFIXES:
++                      prefix_array = opts[n].values;
+                       break;
+               case SELABEL_OPT_BASEONLY:
+                       baseonly = !!opts[n].value;
+@@ -481,7 +498,7 @@ static int init(struct selabel_handle *rec, struct selinux_opt *opts,
+               while (getline(&line_buf, &line_len, fp) > 0) {
+                       if (data->nspec >= maxnspec)
+                               break;
+-                      status = process_line(rec, path, prefix, line_buf, pass, ++lineno);
++                      status = process_line(rec, path, prefix_array, line_buf, pass, ++lineno);
+                       if (status)
+                               goto finish;
+               }
+@@ -497,7 +514,7 @@ static int init(struct selabel_handle *rec, struct selinux_opt *opts,
+                       while (getline(&line_buf, &line_len, homedirfp) > 0) {
+                               if (data->nspec >= maxnspec)
+                                       break;
+-                              status = process_line(rec, homedir_path, prefix, line_buf, pass, ++lineno);
++                              status = process_line(rec, homedir_path, prefix_array, line_buf, pass, ++lineno);
+                               if (status)
+                                       goto finish;
+                       }
+@@ -507,7 +524,7 @@ static int init(struct selabel_handle *rec, struct selinux_opt *opts,
+                       while (getline(&line_buf, &line_len, localfp) > 0) {
+                               if (data->nspec >= maxnspec)
+                                       break;
+-                              status = process_line(rec, local_path, prefix, line_buf, pass, ++lineno);
++                              status = process_line(rec, local_path, prefix_array, line_buf, pass, ++lineno);
+                               if (status)
+                                       goto finish;
+                       }
+diff --git a/libselinux/src/matchpathcon.c b/libselinux/src/matchpathcon.c
+index 8f200d4..c18ea47 100644
+--- a/libselinux/src/matchpathcon.c
++++ b/libselinux/src/matchpathcon.c
+@@ -2,6 +2,7 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <stdio.h>
++#include <syslog.h>
+ #include "selinux_internal.h"
+ #include "label_internal.h"
+ #include "callbacks.h"
+@@ -62,7 +63,7 @@ static void
+ {
+       va_list ap;
+       va_start(ap, fmt);
+-      vfprintf(stderr, fmt, ap);
++      vsyslog(LOG_ERR, fmt, ap);
+       va_end(ap);
+ }
+@@ -306,7 +307,7 @@ static void matchpathcon_init_once(void)
+               destructor_key_initialized = 1;
+ }
+-int matchpathcon_init_prefix(const char *path, const char *subset)
++int matchpathcon_init_prefixes(const char *path, const char **prefixes)
+ {
+       if (!mycanoncon)
+               mycanoncon = default_canoncon;
+@@ -314,15 +315,22 @@ int matchpathcon_init_prefix(const char *path, const char *subset)
+       __selinux_once(once, matchpathcon_init_once);
+       __selinux_setspecific(destructor_key, (void *)1);
+-      options[SELABEL_OPT_SUBSET].type = SELABEL_OPT_SUBSET;
+-      options[SELABEL_OPT_SUBSET].value = subset;
++      options[SELABEL_OPT_PREFIXES].type = SELABEL_OPT_PREFIXES;
++      options[SELABEL_OPT_PREFIXES].values = prefixes;
+       options[SELABEL_OPT_PATH].type = SELABEL_OPT_PATH;
+       options[SELABEL_OPT_PATH].value = path;
+       hnd = selabel_open(SELABEL_CTX_FILE, options, SELABEL_NOPT);
+       return hnd ? 0 : -1;
+ }
++hidden_def(matchpathcon_init_prefixes)
++int matchpathcon_init_prefix(const char *path, const char *prefix)
++{
++      const char *prefixes[2] = { prefix, NULL };
++
++      return matchpathcon_init_prefixes(path, prefixes);
++}
+ hidden_def(matchpathcon_init_prefix)
+ int matchpathcon_init(const char *path)
+diff --git a/libselinux/src/selinux_config.c b/libselinux/src/selinux_config.c
+index f42cb7c..f544ac2 100644
+--- a/libselinux/src/selinux_config.c
++++ b/libselinux/src/selinux_config.c
+@@ -9,6 +9,7 @@
+ #include <unistd.h>
+ #include <pthread.h>
+ #include "selinux_internal.h"
++#include "policy.h"
+ #include "get_default_type_internal.h"
+ #define SELINUXDIR "/etc/selinux/"
+@@ -46,7 +47,9 @@
+ #define FILE_CONTEXT_SUBS 23
+ #define SEPGSQL_CONTEXTS  24
+ #define FILE_CONTEXT_SUBS_DIST 25
+-#define NEL               26
++#define BOOLEAN_SUBS      26
++#define LXC_CONTEXTS      27
++#define NEL               28
+ /* Part of one-time lazy init */
+ static pthread_once_t once = PTHREAD_ONCE_INIT;
+@@ -301,6 +304,29 @@ const char *selinux_binary_policy_path(void)
+ hidden_def(selinux_binary_policy_path)
++const char *selinux_current_policy_path(void)
++{
++      int rc = 0;
++      int vers = 0;
++      static char policy_path[PATH_MAX];
++
++      snprintf(policy_path, sizeof(policy_path), "%s/policy", selinux_mnt);
++      if (access(policy_path, F_OK) != 0 ) {
++              vers = security_policyvers();
++              do {
++                      /* Check prior versions to see if old policy is available */
++                      snprintf(policy_path, sizeof(policy_path), "%s.%d",
++                               selinux_binary_policy_path(), vers);
++              } while ((rc = access(policy_path, F_OK)) && --vers > 0);
++
++              if (rc) return NULL;
++      }
++
++      return policy_path;
++}
++
++hidden_def(selinux_current_policy_path)
++
+ const char *selinux_file_context_path(void)
+ {
+       return get_path(FILE_CONTEXTS);
+@@ -418,6 +444,19 @@ const char *selinux_virtual_image_context_path(void)
+ hidden_def(selinux_virtual_image_context_path)
++const char *selinux_lxc_contexts_path(void)
++{
++      return get_path(LXC_CONTEXTS);
++}
++
++hidden_def(selinux_lxc_contexts_path)
++
++const char * selinux_booleans_subs_path(void) {
++      return get_path(BOOLEAN_SUBS);
++}
++
++hidden_def(selinux_booleans_subs_path)
++
+ const char * selinux_file_context_subs_path(void) {
+       return get_path(FILE_CONTEXT_SUBS);
+ }
+diff --git a/libselinux/src/selinux_internal.h b/libselinux/src/selinux_internal.h
+index 00df405..8a935d0 100644
+--- a/libselinux/src/selinux_internal.h
++++ b/libselinux/src/selinux_internal.h
+@@ -60,12 +60,15 @@ hidden_proto(selinux_mkload_policy)
+     hidden_proto(security_setenforce)
+     hidden_proto(security_deny_unknown)
+     hidden_proto(selinux_binary_policy_path)
++    hidden_proto(selinux_booleans_subs_path)
++    hidden_proto(selinux_current_policy_path)
+     hidden_proto(selinux_default_context_path)
+     hidden_proto(selinux_securetty_types_path)
+     hidden_proto(selinux_failsafe_context_path)
+     hidden_proto(selinux_removable_context_path)
+     hidden_proto(selinux_virtual_domain_context_path)
+     hidden_proto(selinux_virtual_image_context_path)
++    hidden_proto(selinux_lxc_contexts_path)
+     hidden_proto(selinux_file_context_path)
+     hidden_proto(selinux_file_context_homedir_path)
+     hidden_proto(selinux_file_context_local_path)
+@@ -82,6 +85,7 @@ hidden_proto(selinux_mkload_policy)
+     hidden_proto(selinux_path)
+     hidden_proto(selinux_check_passwd_access)
+     hidden_proto(selinux_check_securetty_context)
++    hidden_proto(matchpathcon_init_prefixes)
+     hidden_proto(matchpathcon_init_prefix)
+     hidden_proto(selinux_users_path)
+     hidden_proto(selinux_usersconf_path);
index 348f335140240ec02404269dd352a0807c7d2b99..5bac1be2f1c3d520e09a15dcf1204f427b0f9580 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = libsemanage
-version    = 2.0.45
-release    = 1
+version    = 2.1.5
+release    = 3
 
 groups     = System/Libraries
 url        = http://www.selinuxproject.org
@@ -13,11 +13,10 @@ license    = LGPLv2+
 summary    = SELinux binary policy manipulation library.
 
 description
-       libsemanage provides an API for the manipulation of SELinux \
+       libsemanage provides an API for the manipulation of SELinux
        binary policies.
 end
 
-source_dl  =
 sources    = %{thisapp}.tgz
 
 build
@@ -26,7 +25,7 @@ build
                bzip2-devel
                flex
                libselinux-devel
-               libsepol-devel
+               libsepol-devel >= 2.1.4
                python-devel
                swig
                ustr-devel
@@ -34,13 +33,18 @@ build
 
        build
                make clean
-               make CC=gcc LIBDIR="/usr/lib" CFLAGS="-g %{CFLAGS}" swigify
-               make CC=gcc LIBDIR="/usr/lib" CFLAGS="-g %{CFLAGS}" all
-               make CC=gcc LIBDIR="/usr/lib" CFLAGS="-g %{CFLAGS}" pywrap
+               make CC=gcc LIBDIR="%{libdir}" CFLAGS="-g %{CFLAGS}" swigify
+               make CC=gcc LIBDIR="%{libdir}" CFLAGS="-g %{CFLAGS}" all
+               make CC=gcc LIBDIR="%{libdir}" CFLAGS="-g %{CFLAGS}" pywrap
        end
 
+       # Install libraries to correct place.
+       make_install_targets += \
+               LIBDIR="%{BUILDROOT}%{libdir}" \
+               SHLIBDIR="%{BUILDROOT}%{libdir}"
+
        install_cmds
-               make install-pywrap DESTDIR=%{BUILDROOT}
+               make install-pywrap %{make_install_targets} DESTDIR=%{BUILDROOT}
 
                # Install our config file
                cp -vf %{DIR_SOURCE}/semanage.conf %{BUILDROOT}/etc/selinux/semanage.conf
@@ -54,13 +58,13 @@ packages
        package %{name}-devel
                template DEVEL
        end
-
-       package python-selinux-manage
+       
+       package python-libsemanage
                summary =  SELinux manage python bindings.
                description = SELinux python bindings for libsemanage.
 
                files
-                       /usr/lib/python*
+                       %{libdir}/python*
                end
        end
 
index d2f9c59bed59d0b204a05942d44c5e3def76c340..882b8f004c4ad394252effce2ecbd6db4dad6d13 100644 (file)
@@ -46,3 +46,5 @@ expand-check=0
 # For example, if you had home dirs in /althome directory you would have to execute
 # semanage fcontext -a -e /home /althome
 usepasswd=False
+bzip-small=true
+bzip-blocksize=5
index fd2605f533f94b0af07f3d2f2f0afa84cbf4151b..43b6466f912dce815dfa72fd3125f8d2181e3583 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = libsepol
-version    = 2.0.41
-release    = 2
+version    = 2.1.5
+release    = 1
 
 groups     = System/Libraries
 url        = http://www.selinuxproject.org
@@ -13,35 +13,42 @@ license    = LGPLv2+
 summary    = SELinux binary policy manipulation library.
 
 description
-       libsepol provides an API for the manipulation of SELinux binary \
+       libsepol provides an API for the manipulation of SELinux binary
        policies.
 end
 
-source_dl  =
 sources    = %{thisapp}.tgz
 
 build
+       # Keep static libsepol.a for some selinux tools, that needs to link 
+       # against it. We will put it into an own package.
+       keep_libraries = %{libdir}/libsepol.a
+
        build
                make clean
                make CFLAGS="%{CFLAGS}" %{PARALELLISMFLAGS}
        end
 
-       make_install_targets += LIBDIR="%{BUILDROOT}%{libdir}" \
-               SHLIBDIR="%{BUILDROOT}/%{lib}"
+       # Install libraries to correct place.
+       make_install_targets += \
+               LIBDIR="%{BUILDROOT}%{libdir}" \
+               SHLIBDIR="%{BUILDROOT}%{libdir}"
 
        install_cmds
                # Remove binaries
                rm -rf %{BUILDROOT}/usr/bin
 
-               # Remove manpages from binaries
+               # Remove manpages for binaries
                rm -rf %{BUILDROOT}/usr/share/man/man8
+
+               # Fix bad symlink.
+               ln -svf libsepol.so.1 %{BUILDROOT}%{libdir}/libsepol.so
        end
 end
 
 packages
        package %{name}
-       end
-
+       
        package %{name}-devel
                template DEVEL
        end
@@ -49,4 +56,14 @@ packages
        package %{name}-debuginfo
                template DEBUGINFO
        end
+
+       package %{name}-static
+               summary = Static libraries used to build policy manipulation tools.
+               description = %{summary}
+               groups = Development/Libraries
+
+               files
+                       %{libdir}/libsepol.a
+               end
+       end
 end
index 2750d22e0772af14ab3978587331b5e370701249..5a9963b3eec501d95d0c632329b25aa39a180d6e 100644 (file)
@@ -5,8 +5,8 @@
 
 name       = libsolv
 version    = 0.0.0
-git_ver    = 0db9d7f
-release    = 3.git%{git_ver}
+git_ver    = c02d759
+release    = 5.git%{git_ver}
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = System/Libraries
@@ -33,44 +33,46 @@ build
        end
 
        prepare_cmds
-               # Remove -Werror from gcc command line.
-               find . -name CMakeLists.txt | xargs sed -e "s/-Werror//g" -i
-
-               # Do not build bindings, examples and tools.
-               sed "/bindings/d" -i CMakeLists.txt
-               sed "/examples/d" -i CMakeLists.txt
-               sed "/tools/d" -i CMakeLists.txt
-
                # Make sure that libsatsolverext is linked properly to all needed
                # libraries.
                echo "TARGET_LINK_LIBRARIES(libsolvext libsolv \${EXPAT_LIBRARY} \${ZLIB_LIBRARY})" \
                        >> ext/CMakeLists.txt
-
-               # Remove the RPM stuff when we build with -DFEDORA=1 because we
-               # do not support RPM.
-               sed -e "s/DEBIAN/FEDORA/g" -i ext/CMakeLists.txt
        end
 
        build
                mkdir build
-               cd build && cmake .. -DFEDORA=1 \
+               cd build && cmake .. \
                        -DCMAKE_INSTALL_PREFIX=/usr \
-                       -DCMAKE_BUILD_TYPE=Release \
-                       -DCMAKE_SKIP_RPATH=1
+                       -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+                       -DENABLE_PERL=0 \
+                       -DENABLE_PYTHON=0 \
+                       -DENABLE_RUBY=0
                make %{PARALELLISMFLAGS}
        end
 
        install
                cd build && make install DESTDIR=%{BUILDROOT}
-
-               # Remove unusable header.
-               rm -vf %{BUILDROOT}/usr/include/solv/repo_rpmdb.h
+               rm -vf %{BUILDROOT}%{bindir}/{,test}solv
        end
 end
 
 packages
        package %{name}
 
+       package %{name}-tools
+               summary = Tools to manipulate .solv files.
+
+               requires
+                       bzip2
+                       coreutils
+                       gzip
+               end
+
+               files
+                       %{bindir}
+               end
+       end
+
        package %{name}-devel
                template DEVEL
        end
similarity index 73%
rename from libusb/libusb.nm
rename to libusbx/libusbx.nm
index 5be775879e3c5b9561a74da3348db96d0ca4e215..6394d04577bbbf0de555d727f19c0f2f016e6e28 100644 (file)
@@ -3,13 +3,12 @@
 # Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
 ###############################################################################
 
-name       = libusb
-version    = 1.0.8
+name       = libusbx
+version    = 1.0.11
 release    = 1
 
-maintainer =
 groups     = System/Libraries
-url        = http://sourceforge.net/projects/libusb/
+url        = http://sourceforge.net/apps/mediawiki/libusbx/
 license    = LGPLv2+
 summary    = A library which allows userspace access to USB devices.
 
@@ -17,15 +16,19 @@ description
        This package provides a way for applications to access USB devices.
 end
 
+source_dl  = http://downloads.sourceforge.net/libusbx/
 sources    = %{thisapp}.tar.bz2
 
 build
        configure_options += \
-               --disable-static
+               --disable-static \
+               --enable-examples-build
 end
 
 packages
        package %{name}
+               provides  = libusb = %{thisver}
+               obsoletes = libusb < %{thisver}
        end
 
        package %{name}-devel
index 428e21fca8f55ec3d11d366348ded1f093b2f4d5..81ff42ffe5d6b0bca461e8a684c84de177ba24fe 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = linux-atm
-version    = 2.4.1
+version    = 2.5.1
 release    = 1
 
 groups     = System/Daemons
@@ -17,36 +17,34 @@ description
        using theLinux ATM API.
 end
 
-source_dl  =
+sources    = %{thisapp}.tgz
+source_dl  = http://downloads.sf.net/%{name}/
 
 build
        requires
+               bison
                flex
                flex-devel
                kernel-headers
                perl
        end
 
-       configure_options += \
-               --sysconfdir=/etc \
-               --mandir=/usr/share/man
-
        prepare_cmds
                sed -e "s/-lfl/&_pic/g" -i src/*{,/*}/Makefile.in
        end
-
-       # Fails
-       #def test
-       #       make check
-       #end
 end
 
 packages
        package %{name}
+
+       package %{name}-libs
+               template LIBS
        end
 
        package %{name}-devel
                template DEVEL
+
+               requires += %{name}-libs = %{thisver}
        end
 
        package %{name}-debuginfo
diff --git a/linux-atm/patches/linux-arm-gcc43.patch b/linux-atm/patches/linux-arm-gcc43.patch
new file mode 100644 (file)
index 0000000..9d9c5cd
--- /dev/null
@@ -0,0 +1,11 @@
+diff -rNu linux-atm-2.5.0/src/led/main.c linux-atm-2.5.0-atomix/src/led/main.c
+--- linux-atm-2.5.0/src/led/main.c     2005-10-06 19:27:50.000000000 +0200
++++ linux-atm-2.5.0-atomix/src/led/main.c      2008-04-18 12:14:21.000000000 +0200
+@@ -36,6 +36,7 @@
+ #include <sys/time.h>
+ #include <unistd.h>
+ #include <signal.h>
++#include <limits.h>
+ #include <ctype.h>
+ #include <string.h>
+ #include <getopt.h>
diff --git a/linux-atm/patches/linux-atm-2.4.1-gcc-4.patch b/linux-atm/patches/linux-atm-2.4.1-gcc-4.patch
deleted file mode 100644 (file)
index f6be9d2..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-diff -Naur linux-atm-2.4.1-orig/src/ilmid/atmf_uni.c linux-atm-2.4.1/src/ilmid/atmf_uni.c
---- linux-atm-2.4.1-orig/src/ilmid/atmf_uni.c  2001-09-03 19:41:06.000000000 +0100
-+++ linux-atm-2.4.1/src/ilmid/atmf_uni.c       2005-08-13 10:22:44.000000000 +0100
-@@ -187,7 +187,7 @@
-       newPrefix->name = alloc_t(AsnOid);
-       newPrefix->name->octs = alloc(varBindName->octetLen);
-       AsnOidCopy(newPrefix->name, varBindName);
--      Q_INSERT_BEFORE((NetPrefixNode *) var->value, newPrefix, prefix);
-+      Q_INSERT_BEFORE((*((NetPrefixNode **)&var->value)), newPrefix, prefix);
-       if(atmNetPrefix.octs == NULL)
-       {
-         atmNetPrefix.octetLen = varBindName->octetLen - NETPREFIX_LEN - 2;
-@@ -197,7 +197,7 @@
-     }
-   else if (varbind->value->a.simple->a.number == INVALID && cmp == AsnOidEqual)
-     {
--      Q_REMOVE((NetPrefixNode *) var->value, prefix);
-+      Q_REMOVE((*((NetPrefixNode **) &var->value)), prefix);
-     }
-   return NOERROR;
-diff -Naur linux-atm-2.4.1-orig/src/lib/sapequal.c linux-atm-2.4.1/src/lib/sapequal.c
---- linux-atm-2.4.1-orig/src/lib/sapequal.c    2001-09-03 19:41:05.000000000 +0100
-+++ linux-atm-2.4.1/src/lib/sapequal.c 2005-02-06 19:24:37.000000000 +0000
-@@ -65,6 +65,7 @@
-           CHECK(l2.itu.window,a.l2.itu.window > b.l2.itu.window);
-           break;
-       default:
-+          ;
-     }
-     switch (a.l3_proto) {
-       case ATM_L3_X25:
-@@ -83,6 +84,7 @@
-           if (a.l3.user != b.l3.user) return 0;
-           break;
-       default:
-+          ;
-     }
-     return 1;
- }
-diff -Naur linux-atm-2.4.1-orig/src/maint/atmtcp.c linux-atm-2.4.1/src/maint/atmtcp.c
---- linux-atm-2.4.1-orig/src/maint/atmtcp.c    2001-09-03 19:41:06.000000000 +0100
-+++ linux-atm-2.4.1/src/maint/atmtcp.c 2005-08-13 10:22:44.000000000 +0100
-@@ -60,7 +60,7 @@
- static IN *inputs = NULL;
- static fd_set in_set;
- static int fds = 0;
--static int debug = 0;
-+int debug = 0;
- static int links = 0;
-diff -Naur linux-atm-2.4.1-orig/src/maint/enitune.c linux-atm-2.4.1/src/maint/enitune.c
---- linux-atm-2.4.1-orig/src/maint/enitune.c   2001-09-03 19:41:06.000000000 +0100
-+++ linux-atm-2.4.1/src/maint/enitune.c        2005-02-06 19:24:37.000000000 +0000
-@@ -44,6 +44,7 @@
-               if (*end || mult.rx <= 100) usage(name);
-               break;
-           default:
-+          ;
-       }
-     if (argc != optind+1) usage(name);
-     sioc.number = strtol(argv[optind],&end,0);
-diff -Naur linux-atm-2.4.1-orig/src/mpoad/p_factory.c linux-atm-2.4.1/src/mpoad/p_factory.c
---- linux-atm-2.4.1-orig/src/mpoad/p_factory.c 2001-09-03 19:41:06.000000000 +0100
-+++ linux-atm-2.4.1/src/mpoad/p_factory.c      2005-08-13 10:22:44.000000000 +0100
-@@ -31,16 +31,17 @@
-             *         beginning at location "addr".
-             */
-        uint32_t sum = 0;
-+       uint16_t *addr16 = addr;
-         while( count > 1 )  {
-            /*  This is the inner loop */
--               sum += * ((uint16_t *) addr)++;
-+               sum += * addr16++;
-                count -= 2;
-        }
-            /*  Add left-over byte, if any */
-        if( count > 0 )
--               sum += * (unsigned char *) addr;
-+               sum += * (unsigned char *) addr16;
-            /*  Fold 32-bit sum to 16 bits */
-        while (sum>>16)
-diff -Naur linux-atm-2.4.1-orig/src/qgen/qlib.c linux-atm-2.4.1/src/qgen/qlib.c
---- linux-atm-2.4.1-orig/src/qgen/qlib.c       2001-09-03 19:41:05.000000000 +0100
-+++ linux-atm-2.4.1/src/qgen/qlib.c    2005-08-13 10:22:44.000000000 +0100
-@@ -26,8 +26,6 @@
- #include "op.h"
--static int debug = 0;
--
- void PREFIX(report)(int severity,const char *msg,...)
- {
-@@ -830,6 +828,8 @@
- #ifdef STANDALONE
-+int debug = 0;
-+
- int main(int argc,const char **argv)
- {
-     unsigned char msg[5000]; /* should be large enough for that */
-diff -Naur linux-atm-2.4.1-orig/src/qgen/qlib.h linux-atm-2.4.1/src/qgen/qlib.h
---- linux-atm-2.4.1-orig/src/qgen/qlib.h       2001-09-03 19:41:05.000000000 +0100
-+++ linux-atm-2.4.1/src/qgen/qlib.h    2005-08-13 10:22:44.000000000 +0100
-@@ -23,7 +23,6 @@
- #define Q_FATAL               -1
--extern int q_dump;
- extern void q_report(int severity,const char *msg,...);
- #ifdef DUMP_MODE
-diff -Naur linux-atm-2.4.1-orig/src/sigd/proto.c linux-atm-2.4.1/src/sigd/proto.c
---- linux-atm-2.4.1-orig/src/sigd/proto.c      2001-09-03 19:41:06.000000000 +0100
-+++ linux-atm-2.4.1/src/sigd/proto.c   2005-02-06 19:24:37.000000000 +0000
-@@ -259,6 +259,7 @@
-               break;
-           }
-       default:
-+          ;
-     }
-     va_end(ap);
-     if ((size = q_close(&dsc)) >= 0) to_signaling(sock->sig,q_buffer,size);
-@@ -288,6 +289,7 @@
-               }
-               break;
-           default:
-+          ;
-       }
-       va_end(ap);
-     }
-diff -Naur linux-atm-2.4.1-orig/src/switch/debug/debug.c linux-atm-2.4.1/src/switch/debug/debug.c
---- linux-atm-2.4.1-orig/src/switch/debug/debug.c      2001-09-03 19:41:06.000000000 +0100
-+++ linux-atm-2.4.1/src/switch/debug/debug.c   2005-08-13 10:22:44.000000000 +0100
-@@ -18,7 +18,7 @@
- #define COMPONENT "FAB(debug)"
--#define PRV(call) ((FAB *) (call)->fab)
-+#define PRV(call) (*((FAB **) &(call)->fab))
- typedef struct _fab {
-diff -Naur linux-atm-2.4.1-orig/src/switch/tcp/tcpsw.c linux-atm-2.4.1/src/switch/tcp/tcpsw.c
---- linux-atm-2.4.1-orig/src/switch/tcp/tcpsw.c        2001-09-03 19:41:06.000000000 +0100
-+++ linux-atm-2.4.1/src/switch/tcp/tcpsw.c     2005-08-13 10:22:44.000000000 +0100
-@@ -27,7 +27,7 @@
- #define COMPONENT "FAB(tcp)"
--#define PRV(call) ((FAB *) (call)->fab)
-+#define PRV(call) (*((FAB **) &(call)->fab))
- #define MAX_VCI       1024
diff --git a/linux-atm/patches/linux-atm-2.4.1-nmu.patch b/linux-atm/patches/linux-atm-2.4.1-nmu.patch
deleted file mode 100644 (file)
index ebf0a68..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
---- linux-atm-2.4.1~/src/arpd/arp.c    2001-09-03 20:41:05.000000000 +0200
-+++ linux-atm-2.4.1/src/arpd/arp.c     2007-07-19 01:38:37.000000000 +0200
-@@ -16,6 +16,7 @@
- #include <sys/socket.h> /* for linux/if_arp.h */
- #include <netinet/in.h> /* for ntohs, etc. */
- #define _LINUX_NETDEVICE_H /* very crude hack for glibc2 */
-+#include <linux/types.h>
- #include <linux/if_arp.h>
- #include <linux/if_ether.h>
- #include <atm.h>
-diff -urNad linux-atm-2.4.1~/src/arpd/io.c linux-atm-2.4.1/src/arpd/io.c
---- linux-atm-2.4.1~/src/arpd/io.c     2001-09-03 20:41:05.000000000 +0200
-+++ linux-atm-2.4.1/src/arpd/io.c      2007-07-19 01:38:37.000000000 +0200
-@@ -19,6 +19,7 @@
- #include <net/if.h>
- #include <netinet/in.h>
- #include <atm.h>
-+#include <linux/types.h>
- #include <linux/atmclip.h> /* for CLIP_DEFAULT_IDLETIMER */
- #include <linux/atmarp.h>
- #define _LINUX_NETDEVICE_H /* glibc2 */
-diff -urNad linux-atm-2.4.1~/src/arpd/itf.c linux-atm-2.4.1/src/arpd/itf.c
---- linux-atm-2.4.1~/src/arpd/itf.c    2001-09-03 20:41:05.000000000 +0200
-+++ linux-atm-2.4.1/src/arpd/itf.c     2007-07-19 01:38:37.000000000 +0200
-@@ -10,6 +10,7 @@
- #include <stdint.h>
- #include <string.h>
- #include <sys/types.h>
-+#include <linux/types.h>
- #include <linux/atmclip.h>
- #include <sys/socket.h>
- #define _LINUX_NETDEVICE_H /* glibc2 */
-diff -urNad linux-atm-2.4.1~/src/mpoad/io.c linux-atm-2.4.1/src/mpoad/io.c
---- linux-atm-2.4.1~/src/mpoad/io.c    2001-09-03 20:41:06.000000000 +0200
-+++ linux-atm-2.4.1/src/mpoad/io.c     2007-07-19 01:38:37.000000000 +0200
-@@ -19,6 +19,7 @@
- _syscall3(int,poll,struct pollfd *,ufds,unsigned int,nfds,int,timeout);
- #endif
- #include <atm.h>
-+#include <linux/types.h>
- #include <linux/atmioc.h>
- #include <linux/atmmpc.h>
- #include <sys/types.h>
-diff -urNad linux-atm-2.4.1~/src/mpoad/k_interf.c linux-atm-2.4.1/src/mpoad/k_interf.c
---- linux-atm-2.4.1~/src/mpoad/k_interf.c      2001-09-03 20:41:06.000000000 +0200
-+++ linux-atm-2.4.1/src/mpoad/k_interf.c       2007-07-19 01:38:37.000000000 +0200
-@@ -9,6 +9,7 @@
- #include <sys/param.h> /* for OPEN_MAX   */
- #include <stdint.h>
- #include <netinet/in.h> /* for ntohl()    */
-+#include <linux/types.h>
- #include <linux/atmmpc.h>
- #include <atm.h>
- #include "k_interf.h"
-diff -urNad linux-atm-2.4.1~/src/mpoad/lecs.c linux-atm-2.4.1/src/mpoad/lecs.c
---- linux-atm-2.4.1~/src/mpoad/lecs.c  2001-09-03 20:41:06.000000000 +0200
-+++ linux-atm-2.4.1/src/mpoad/lecs.c   2007-07-19 01:39:04.000000000 +0200
-@@ -11,6 +11,7 @@
- #include <errno.h>
- #include <atm.h>
- #include <atmsap.h>
-+#include <linux/types.h>
- #include <linux/atmmpc.h>   /* for MPOA Device type TLV */
- #include "lecs.h"
- #include "k_interf.h"
-diff -urNad linux-atm-2.4.1~/src/mpoad/main.c linux-atm-2.4.1/src/mpoad/main.c
---- linux-atm-2.4.1~/src/mpoad/main.c  2001-09-03 20:41:06.000000000 +0200
-+++ linux-atm-2.4.1/src/mpoad/main.c   2007-07-19 01:38:37.000000000 +0200
-@@ -9,6 +9,7 @@
- #include <time.h>
- #include <sys/ioctl.h>
- #include <atm.h>
-+#include <linux/types.h>
- #include <linux/atmdev.h>
- #include <linux/atmmpc.h>
- #include <sys/socket.h>
-diff -urNad linux-atm-2.4.1~/src/mpoad/p_factory.c linux-atm-2.4.1/src/mpoad/p_factory.c
---- linux-atm-2.4.1~/src/mpoad/p_factory.c     2007-07-19 01:22:42.000000000 +0200
-+++ linux-atm-2.4.1/src/mpoad/p_factory.c      2007-07-19 01:38:37.000000000 +0200
-@@ -5,6 +5,7 @@
- #include <sys/types.h>
- #include <stdint.h>
- #include <netinet/in.h>
-+#include <linux/types.h>
- #include <linux/atmmpc.h>
- #include <sys/socket.h>
- #include <unistd.h>
-diff -urNad linux-atm-2.4.1~/src/mpoad/p_recogn.c linux-atm-2.4.1/src/mpoad/p_recogn.c
---- linux-atm-2.4.1~/src/mpoad/p_recogn.c      2001-09-03 20:41:06.000000000 +0200
-+++ linux-atm-2.4.1/src/mpoad/p_recogn.c       2007-07-19 01:39:12.000000000 +0200
-@@ -7,6 +7,7 @@
- #include <stdlib.h>
- #include <sys/time.h>
- #include <atm.h>
-+#include <linux/types.h>
- #include <linux/atmmpc.h>
- #include <netinet/in.h>
- #include <limits.h> /* For UINT_MAX */
diff --git a/linux-atm/patches/linux-atm-2.5.0-disable-ilmidiag.patch b/linux-atm/patches/linux-atm-2.5.0-disable-ilmidiag.patch
new file mode 100644 (file)
index 0000000..c420be9
--- /dev/null
@@ -0,0 +1,11 @@
+--- linux-atm/src/ilmid/Makefile.am~   2007-07-11 17:07:57.000000000 +0100
++++ linux-atm/src/ilmid/Makefile.am    2007-08-23 09:22:45.000000000 +0100
+@@ -2,7 +2,7 @@ SUBDIRS = asn1
+ INCLUDES = -I$(srcdir)/../ilmid/asn1
+-sbin_PROGRAMS = ilmid ilmidiag
++sbin_PROGRAMS = ilmid
+ ilmid_SOURCES = rfc1157_snmp.c rfc1157_snmp.h rfc1155_smi.c rfc1155_smi.h \
+                       util.c util.h io.c io.h message.c message.h \
diff --git a/linux-atm/patches/linux-atm-2.5.0-open-macro.patch b/linux-atm/patches/linux-atm-2.5.0-open-macro.patch
new file mode 100644 (file)
index 0000000..928222f
--- /dev/null
@@ -0,0 +1,11 @@
+--- linux-atm/src/maint/atmtcp.c~      2007-08-22 14:59:21.000000000 +0100
++++ linux-atm/src/maint/atmtcp.c       2007-08-22 18:27:24.000000000 +0100
+@@ -109,7 +109,7 @@ static void control(int in_link,struct a
+       switch (msg->type) {
+           case ATMTCP_CTRL_OPEN:
+               if (out->ops->open)
+-                  changed += out->ops->open(out,in_link,msg);
++                  changed += (out->ops->open)(out,in_link,msg);
+               break;
+           case ATMTCP_CTRL_CLOSE:
+               if (out->ops->close)
diff --git a/linux-atm/patches/man-pages.patch b/linux-atm/patches/man-pages.patch
new file mode 100644 (file)
index 0000000..c504cfe
--- /dev/null
@@ -0,0 +1,45 @@
+diff -up linux-atm-2.5.1/src/led/zeppelin.8.fixman linux-atm-2.5.1/src/led/zeppelin.8
+--- linux-atm-2.5.1/src/led/zeppelin.8.fixman  2003-05-02 19:35:04.000000000 +0200
++++ linux-atm-2.5.1/src/led/zeppelin.8 2010-10-13 12:58:18.000000000 +0200
+@@ -99,7 +99,7 @@ Ring and ATM parts of the ELAN, so using
+ recommended. Token Ring support has received less testing than its
+ Ethernet counterpart.
+ .SH FILES
+-.IP \fI/var/run/lec[interface number].pid\fP
++\fI/var/run/lec[interface number].pid\fP
+ The file containing the process id of zeppelin.
+ .SH BUGS
+ John Bonham died 1980 and Led Zeppelin broke.
+diff -up linux-atm-2.5.1/src/mpoad/mpcd.8.fixman linux-atm-2.5.1/src/mpoad/mpcd.8
+--- linux-atm-2.5.1/src/mpoad/mpcd.8.fixman    2001-10-10 00:33:07.000000000 +0200
++++ linux-atm-2.5.1/src/mpoad/mpcd.8   2010-10-13 12:59:14.000000000 +0200
+@@ -28,7 +28,7 @@ mpcd \- ATM MPOA (Multi\-Protocol Over A
+ .B ]]
+ .SH DESCRIPTION
+ MPOA client
+-.SM(MPC) is responsible for creating and receiving
++.SM (MPC) is responsible for creating and receiving
+ internetwork layer shortcuts. Using these shortcuts MPCs forward
+ unicast internetwork layer packets effectively over ATM without need
+ for routing protocols.
+@@ -43,7 +43,7 @@ accepts shortcuts and packets arriving o
+ shortcuts is done with the help of
+ .SM MPOA
+ server
+-.SM(MPS).
++.SM (MPS).
+ .PP
+ Just as the Linux
+ .SM LAN
+diff -up linux-atm-2.5.1/src/sigd/atmsigd.conf.4.fixman linux-atm-2.5.1/src/sigd/atmsigd.conf.4
+--- linux-atm-2.5.1/src/sigd/atmsigd.conf.4.fixman     2001-10-10 00:33:07.000000000 +0200
++++ linux-atm-2.5.1/src/sigd/atmsigd.conf.4    2010-10-13 12:58:49.000000000 +0200
+@@ -125,7 +125,7 @@ a comment. The `#' character cannot be e
+ .P
+ If an option is specified in \fBatmsigd.conf\fP and on the command
+ line, the command line has priority.
+-.COMPATIBILITY
++.SH COMPATIBILITY
+ Certain options used by past versions of \fBatmsigd\fP but no longer documented
+ on the man page are still recognized and supported, but they also yield a
+ warning message. Future versions of \fBatmsigd\fP will not recognize those
index ec5766d15c4ca93e88a71626844cb0488896ac81..2650d512338476229ba0aba8dad93353b64a54fe 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = linux-firmware
 version    = 20110311
-release    = 2
+release    = 3
 arch       = noarch
 
 maintainer = Arne Fitzenreiter <arne.fitzenreiter@ipfire.org>
@@ -29,8 +29,8 @@ build
        end
 
        install
-               mkdir -pv %{BUILDROOT}/lib/firmware
-               cp -prv * %{BUILDROOT}/lib/firmware
+               mkdir -pv %{BUILDROOT}%{prefix}/lib/firmware
+               cp -prv * %{BUILDROOT}%{prefix}/lib/firmware
        end
 end
 
index 302204348dcdebd46493ad0b61ee46890736be24..babc5d75f01c8637c9e2263e54e1e9898db12920 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = lvm2
-version    = 2.02.54
+version    = 2.02.95
 release    = 2
 thisapp    = LVM2.%{version}
 
@@ -14,15 +14,15 @@ license    = GPLv2
 summary    = Userland logical volume management tools.
 
 description
-       LVM2 includes all of the support for handling read/write operations on \
-       physical volumes (hard disks, RAID-Systems, magneto optical, etc., \
-       multiple devices (MD), see mdadd(8) or even loop devices, see \
-       losetup(8)), creating volume groups (kind of virtual disks) from one \
-       or more physical volumes and creating one or more logical volumes \
+       LVM2 includes all of the support for handling read/write operations on
+       physical volumes (hard disks, RAID-Systems, magneto optical, etc.,
+       multiple devices (MD), see mdadd(8) or even loop devices, see
+       losetup(8)), creating volume groups (kind of virtual disks) from one
+       or more physical volumes and creating one or more logical volumes
        (kind of logical partitions) in volume groups.
 end
 
-source_dl  =
+source_dl  = ftp://sources.redhat.com/pub/lvm2/
 sources    = %{thisapp}.tgz
 
 build
@@ -34,18 +34,8 @@ build
        end
 
        configure_options += \
-               --bindir=/bin \
-               --sbindir=/sbin \
-               --exec-prefix=/ \
-               --libdir=/%{lib} \
+               --with-usrlibdir=%{libdir} \
                --enable-pkgconfig
-
-       install_cmds
-               mkdir -pv %{BUILDROOT}%{libdir}
-               rm -vf %{BUILDROOT}/%{lib}/libdevmapper.so
-               ln -svf libdevmapper.so.1.02 %{BUILDROOT}/%{lib}/libdevmapper.so.1
-               ln -svf ../../%{lib}/libdevmapper.so.1 %{BUILDROOT}%{libdir}/libdevmapper.so
-       end
 end
 
 packages
index d49cb96b0b767ed4a078c583ce0a7e2bb8eb340e..f1e3b59ee8ce57d024ba3752cfebd491b3460e12 100644 (file)
--- a/m4/m4.nm
+++ b/m4/m4.nm
@@ -5,7 +5,7 @@
 
 name       = m4
 version    = 1.4.16
-release    = 2
+release    = 3
 
 groups     = Applications/Text
 url        = http://www.gnu.org/software/m4/
@@ -32,6 +32,8 @@ end
 
 packages
        package %{name}
+               provides += bundled(gnulib)
+       end
 
        package %{name}-debuginfo
                template DEBUGINFO
diff --git a/m4/patches/m4-1.4.16-gnulib-gets.patch b/m4/patches/m4-1.4.16-gnulib-gets.patch
new file mode 100644 (file)
index 0000000..51df5b0
--- /dev/null
@@ -0,0 +1,13 @@
+diff -up m4-1.4.16/lib/stdio.in.h.orig m4-1.4.16/lib/stdio.in.h
+--- m4-1.4.16/lib/stdio.in.h.orig      2012-05-30 13:55:51.092600199 +0200
++++ m4-1.4.16/lib/stdio.in.h   2012-05-30 13:56:25.763794100 +0200
+@@ -162,7 +162,9 @@ _GL_WARN_ON_USE (fflush, "fflush is not
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ #undef gets
++#if HAVE_RAW_DECL_GETS
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
index 2a8fb0afd9b60652f81ea63683318e94b35008ed..792fbefd2d2198bca2c0220489fb3e9d41acbd2d 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = make
 version    = 3.81
-release    = 2
+release    = 3
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = Development/Tools
@@ -26,9 +26,6 @@ source_dl  =
 sources    = %{thisapp}.tar.bz2
 
 build
-       configure_options += \
-               --mandir=/usr/share
-
        test
                sed -e "s/-w/& /" -i tests/scripts/features/recursion
                make check
diff --git a/makedepend/makedepend.nm b/makedepend/makedepend.nm
new file mode 100644 (file)
index 0000000..7eca2cb
--- /dev/null
@@ -0,0 +1,35 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = makedepend
+version    = 1.0.4
+release    = 1
+
+groups     = Development/Tools
+url        = http://www.x.org
+license    = MIT
+summary    = makedepend - create dependencies in makefiles.
+
+description
+       Makedepend automatically creates dependencies in makefiles.
+end
+
+source_dl  = ftp://ftp.x.org/pub/individual/util/
+
+build
+       requires
+               pkg-config
+               xorg-x11-util-macros
+               xorg-x11-proto-devel
+       end
+end
+
+packages
+       package %{name}
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
diff --git a/man-db/man-db.cron b/man-db/man-db.cron
new file mode 100644 (file)
index 0000000..c7d21ad
--- /dev/null
@@ -0,0 +1,20 @@
+#! /bin/bash
+
+renice +19 -p $$ >/dev/null 2>&1
+ionice -c3 -p $$ >/dev/null 2>&1
+
+LOCKFILE=/var/lock/man-db.lock
+
+# The lockfile is not meant to be perfect, it's just in case the
+# two man-db cron scripts get run close to each other to keep
+# them from stepping on each other's toes.  The worst that will
+# happen is that they will temporarily corrupt the database.
+[ -f $LOCKFILE ] && exit 0
+
+trap "{ rm -f $LOCKFILE ; exit 0; }" EXIT
+touch $LOCKFILE
+
+# Create/update the mandb database.
+mandb -q
+
+exit 0
index 255c0ede152185f3c04874bb4ee9b59e1a602986..b3920385f94a8495275544440024fc5aa62e5251 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = man-db
 version    = 2.6.1
-release    = 1
+release    = 3
 
 groups     = Documentation
 url        = http://savannah.nongnu.org/projects/man-db
@@ -31,24 +31,22 @@ build
        end
 
        configure_options += \
+               --with-sections="1 1p 8 2 3 3p 4 5 6 7 9 0p n l p o 1x 2x 3x 4x 5x 6x 7x 8x" \
                --disable-setuid \
-               --with-browser=/usr/bin/lynx \
-               --with-col=/usr/bin/col \
-               --with-vgrind=/usr/bin/vgrind \
-               --with-grap=/usr/bin/grap
+               --with-browser=elinks
 
-       prepare_cmds
-               sed -i -e '\%\t/usr/man%d' -e '\%\t/usr/local/man%d' \
-                       src/man_db.conf.in
-       end
-end
+       install_cmds
+               # Move the libs to /usr/lib, but don't keep the symlinks so nothing
+               # will link against libman and libmandb as they are not stable.
+               mv -v %{BUILDROOT}%{libdir}/man-db/libman{,db}-%{version}.so %{BUILDROOT}%{libdir}
+               rm -rf %{BUILDROOT}%{libdir}/man-db/
 
-# This package installs a lib in /usr/lib/man-db and links all binaries
-# against it. Seems as if the ABI is not stable, yet and so we need to
-# accept that.
-quality-agent
-       whitelist_rpath
-               %{libdir}/man-db
+               # Create cron job to regularly update the man page database.
+               mkdir -pv %{BUILDROOT}%{sysconfdir}/cron.daily
+               install -v -m 755 %{DIR_SOURCE}/man-db.cron %{BUILDROOT}%{sysconfdir}/cron.daily
+
+               # Create cache directory.
+               mkdir -pv %{BUILDROOT}/var/cache/man
        end
 end
 
@@ -59,12 +57,23 @@ packages
                requires
                        groff
                        less
+                       xz
                end
 
                # This package also should be known as man.
                provides
                        man
                end
+
+               script posttransin
+                       # Update the database right now.
+                       %{sysconfdir}/cron.daily/man-db.cron
+               end
+
+               script posttransup
+                       # Update the database right now.
+                       %{sysconfdir}/cron.daily/man-db.cron
+               end
        end
 
        package %{name}-debuginfo
index 2728fa7b1de611e588acf27555b256b6c9c2d9a6..7657750d92d8e2e473f77501deaec36c5b59b293 100644 (file)
@@ -4,12 +4,12 @@
 ###############################################################################
 
 name       = man-pages
-version    = 3.35
+version    = 3.40
 release    = 1
 arch       = noarch
 
 groups     = Base Documentation
-url        = http://www.kernel.org/pub/linux/docs/manpages/
+url        = http://www.kernel.org/pub/linux/docs/man-pages/
 license    = GPLv2+ and GPL+ and BSD and MIT and Copyright only and IEEE
 summary    = Man (manual) pages from the Linux Documentation Project.
 
@@ -18,9 +18,23 @@ description
        Documentation Project (LDP).
 end
 
-source_dl  =
+source_dl  = http://www.kernel.org/pub/linux/docs/man-pages/
+sources    = %{thisapp}.tar.xz
 
 build
+       prepare_cmds
+               # Remove deprecated/unneeded stuff:
+
+               # libattr-devel
+               rm -vf man2/{,f,l}{get,list,remove,set}xattr.2
+
+               # db4
+               rm -vf man3/{db,btree,dbopen,hash,mpool,recno}.3
+
+               # misc.
+               rm -vf man2/pciconfig_{write,read,iobase}.2
+       end
+
        build = # Do nothing
 end
 
index 587eb115c79c6b175af75d0bec5eb4e99cc3e6b1..c585ed6ba0601ef9c2cca99ae9593e6115478603 100644 (file)
--- a/mc/mc.nm
+++ b/mc/mc.nm
@@ -4,8 +4,9 @@
 ###############################################################################
 
 name       = mc
-version    = 4.7.4
-release    = 2
+version    = 4.8.1.4
+release    = 1
+epoch      = 1
 
 groups     = Applications/System
 url        = http://www.ibiblio.org/mc/
@@ -20,8 +21,8 @@ description
        specific files.
 end
 
-sources    = %{thisapp}.tar.bz2
-sources_dl =
+sources    = %{thisapp}.tar.xz
+source_dl  = http://www.midnight-commander.org/downloads/
 
 build
        requires
index 8e0073e46c5e4876fc50ac10cd0717f2edce93c1..a166010a84a7411d1815c088833650eb8d51ce4c 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = mdadm
 version    = 3.2.2
-release    = 1
+release    = 2
 
 groups     = System/Base
 url        = http://www.kernel.org/pub/linux/utils/raid/mdadm/
@@ -35,12 +35,10 @@ build
 
        build
                make %{PARALLELISMFLAGS} CXFLAGS="%{CFLAGS}" \
-                       CWFLAGS= SYSCONFDIR="/etc" MDASSEMBLE_AUTO=1
+                       CWFLAGS= SYSCONFDIR="%{sysconfdir}" MDASSEMBLE_AUTO=1
        end
 
-       install
-               make install BINDIR=/sbin DESTDIR=%{BUILDROOT}
-
+       install_cmds
                mkdir -pv %{BUILDROOT}/var/run/mdadm
                chmod 700 %{BUILDROOT}/var/run/mdadm
        end
index b2212e95ed858cd900d63a3112d8b5fb4d822dbf..d12624a04aec25eedc724a0f18dadcef256b60f0 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = mesa
-version    = 7.8.2
-release    = 3
+version    = 7.11.2
+release    = 1
 
 groups     = Development/Tools
 url        = http://www.mesa3d.org
@@ -16,12 +16,15 @@ description
        Mesa libGL runtime libraries and DRI drivers.
 end
 
-source_dl  =
+source_dl  = ftp://ftp.freedesktop.org/pub/mesa/%{version}/
 sources    = MesaLib-%{version}.tar.bz2
 
 build
        requires
+               bison
                expat-devel
+               flex
+               gcc-c++
                pkg-config
                libX11-devel
                libXdamage-devel
@@ -31,6 +34,7 @@ build
                libdrm-devel
                libselinux-devel
                libxcb-devel
+               makedepend
                xorg-x11-proto-devel
        end
 
@@ -38,25 +42,31 @@ build
 
        CFLAGS += -Wl,-z,lazy
 
+       if "%{DISTRO_PLATFORM}" == "x86"
+               platform_drivers = ,i915,i965
+       end
+
        configure_options += \
+               --enable-pic \
+               --enable-selinux \
                --enable-pic \
                --with-driver=dri \
-               --with-state-tracker=dri,glx \
+               --with-dri-drivers="nouveau,radeon,r200%{platform_drivers}" \
+               --with-gallium-drivers=swrast \
+               --disable-asm \
                --disable-glw \
                --disable-glu \
                --disable-glut \
-               --disable-gl-osmesa \
-               --disable-gallium \
-               --disable-gallium-intel \
-               --disable-gallium-svga \
-               --disable-gallium-radeon \
-               --disable-gallium-nouveau \
+               --disable-gallium-llvm \
+               --disable-gallium-egl \
                --disable-egl \
+               --disable-static \
                --without-demos
-end
 
-quality-agent
-       permit_not_full_relro = yes
+       prepare_cmds
+               # Defaults to dri (not xlib) for libGL on all arches.
+               sed -i 's/^default_driver.*$/default_driver="dri"/' configure.ac
+       end
 end
 
 packages
diff --git a/miredo/client-hook b/miredo/client-hook
new file mode 100644 (file)
index 0000000..4ae8b0c
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/bash
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2012  IPFire Network Development Team                         #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+# This is a proxy script which is started instead of the real helper.
+# However, the only thing this script does it to call the actual helper script.
+
+script="/usr/lib/network/helpers/miredo-helper"
+
+if [ -x "${script}" ]; then
+       exec ${script}
+fi
+
+echo "${script} could not be found." >&2
+exit 1
diff --git a/miredo/miredo.nm b/miredo/miredo.nm
new file mode 100644 (file)
index 0000000..3499993
--- /dev/null
@@ -0,0 +1,145 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = miredo
+version    = 1.2.5
+release    = 2
+
+groups     = Network/VPN
+url        = http://www.remlab.net/miredo/
+license    = GPLv2+
+summary    = Tunneling of IPv6 over UDP through NATs.
+
+description
+       Miredo is an implementation of the "Teredo: Tunneling IPv6 over UDP
+       through NATs" proposed Internet standard (RFC4380). It can serve
+       either as a Teredo client, a stand-alone Teredo relay, or a Teredo
+       server, please install the miredo-server or miredo-client aproprietly.
+       It is meant to provide IPv6 connectivity to hosts behind NAT
+       devices, most of which do not support IPv6, and not even
+       IPv6-over-IPv4 (including 6to4).
+end
+
+source_dl  = http://www.remlab.net/files/miredo/
+sources    = %{thisapp}.tar.xz
+
+build
+       requires
+               libcap-devel
+               shadow-utils
+               systemd-units
+       end
+
+       configure_options += \
+               --disable-static \
+               --disable-rpath \
+               --enable-miredo-user
+
+       install_cmds
+               install -v -m 755 %{DIR_SOURCE}/client-hook \
+                       %{BUILDROOT}%{sysconfdir}/miredo/client-hook
+
+               touch %{BUILDROOT}%{sysconfdir}/miredo/miredo-server.conf
+       end
+end
+
+packages
+       package %{name}-client
+               summary = This is the client part of miredo.
+
+               # There is not "miredo" package, so the -client
+               # package has an alias for it.
+               provides = miredo = %{thisver}
+
+               requires
+                       %{name}-libs = %{thisver}
+                       network
+               end
+
+               script postin
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postup
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postun
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               configfiles
+                       %{sysconfdir}/miredo/miredo.conf
+               end
+
+               files
+                       %{sysconfdir}/miredo/client-hook
+                       %{sysconfdir}/miredo/miredo.conf
+                       %{sbindir}/miredo
+                       %{unitdir}/miredo-client@.service
+                       %{mandir}/man?/miredo.*
+               end
+       end
+
+       package %{name}-server
+               summary = This is the server part of miredo.
+
+               requires = %{name}-libs = %{thisver}
+
+               script postin
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postup
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+                       systemctl try-restart miredo-server.service >/dev/null 2>&1 || :
+               end
+
+               script preun
+                       systemctl --no-reload disable miredo-server.service >/dev/null 2>&1 || :
+                       systemctl stop miredo-server.service >/dev/null 2>&1 || :
+               end
+
+               script postun
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               configfiles
+                       %{sysconfdir}/miredo/miredo-server.conf
+               end
+
+               files
+                       %{bindir}/teredo-mire
+                       %{sbindir}/miredo-server
+                       %{sbindir}/miredo-checkconf
+                       %{unitdir}/miredo-server.service
+                       %{mandir}/man?/teredo-mire*
+                       %{mandir}/man?/miredo-server*
+                       %{mandir}/man?/miredo-checkconf*
+               end
+       end
+
+       package %{name}-libs
+               template LIBS
+
+               files += %{prefix}/lib/miredo
+
+               script prein
+                       getent group miredo >/dev/null || groupadd -r miredo
+                       getent passwd miredo >/dev/null || useradd -r -g miredo \
+                               -d %{sysconfdir}/miredo -s /sbin/nologin -c "Miredo Daemon" miredo
+               end
+       end
+
+       package %{name}-devel
+               template DEVEL
+
+               requires = %{name}-libs = %{thisver}
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
diff --git a/miredo/patches/miredo-1.2.5-libteredo-header.patch b/miredo/patches/miredo-1.2.5-libteredo-header.patch
new file mode 100644 (file)
index 0000000..6d7dc38
--- /dev/null
@@ -0,0 +1,10 @@
+--- miredo-1.2.5/libteredo/tunnel.h.orig       2012-05-30 14:59:00.742600216 +0000
++++ miredo-1.2.5/libteredo/tunnel.h    2012-05-30 14:59:05.760760580 +0000
+@@ -32,6 +32,7 @@
+ # define LIBTEREDO_TUNNEL_H
+ # include <stdbool.h>
++# include <stddef.h>
+ # ifdef __cplusplus
+ extern "C" {
diff --git a/miredo/patches/miredo-config-not-exec.patch b/miredo/patches/miredo-config-not-exec.patch
new file mode 100644 (file)
index 0000000..c4c5a31
--- /dev/null
@@ -0,0 +1,17 @@
+diff -ru miredo-1.1.6/misc/client-hook.iproute miredo-1.1.6-new/misc/client-hook.iproute
+--- miredo-1.1.6/misc/client-hook.iproute      2008-12-17 16:14:23.000000000 +0100
++++ miredo-1.1.6-new/misc/client-hook.iproute  2009-06-28 01:24:22.000000000 +0200
+@@ -1,4 +1,4 @@
+-#! /bin/sh
++#!/bin/sh
+ #
+ # Miredo client hook script for Linux/iproute2
+ # Copyright Â© 2007 Rémi Denis-Courmont.
+diff -ru miredo-1.1.6/misc/miredo.conf-in miredo-1.1.6-new/misc/miredo.conf-in
+--- miredo-1.1.6/misc/miredo.conf-in   2009-04-09 18:31:30.000000000 +0200
++++ miredo-1.1.6-new/misc/miredo.conf-in       2009-06-28 01:24:29.000000000 +0200
+@@ -1,4 +1,3 @@
+-#! @sbindir@/miredo -f -c
+ #
+ # Sample configuration file for Miredo
diff --git a/miredo/patches/reread-resolv-before-resolv-ipv4.patch b/miredo/patches/reread-resolv-before-resolv-ipv4.patch
new file mode 100644 (file)
index 0000000..4d7d9e1
--- /dev/null
@@ -0,0 +1,16 @@
+@@ -, +, @@ 
+ libteredo/maintain.c |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+--- a/libteredo/maintain.c     
++++ a/libteredo/maintain.c     
+@@ -262,6 +262,9 @@ void maintenance_thread (teredo_maintenance *m)
+               /* Resolve server IPv4 addresses */
+               while (server_ip == 0)
+               {
++                      /* Reread resolv.conf, it could have changed */
++                      res_init();
++
+                       /* FIXME: mutex kept while resolving - very bad */
+                       int val = getipv4byname (m->server, &server_ip);
+                       gettime (&deadline);
+
diff --git a/miredo/systemd/miredo-client@.service b/miredo/systemd/miredo-client@.service
new file mode 100644 (file)
index 0000000..b55e214
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+Description=Miredo - Teredo IPv6 Tunneling Client For Unix on %I
+BindTo=dev-%I.device
+After=dev-%I.device
+
+[Service]
+ExecStartPre=/usr/lib/network/helpers/miredo-config-helper create %I
+ExecStart=/usr/sbin/miredo -f -c /run/network/miredo/%I/client.conf -p /run/network/miredo/%I/client.pid
+ExecStopPost=/usr/lib/network/helpers/miredo-config-helper remove %I
+Restart=always
+UtmpIdentifier=%I
+KillMode=process
diff --git a/miredo/systemd/miredo-server.service b/miredo/systemd/miredo-server.service
new file mode 100644 (file)
index 0000000..e6d4d44
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+Description=Miredo - Teredo IPv6 tunneling Server For Unix
+After=network.target
+
+[Service]
+Type=forking
+PIDFile=/run/miredo-server.pid
+ExecStart=/usr/sbin/miredo-server
+
+[Install]
+WantedBy=multi-user.target
index e4783f23a31a8ebd25ee36f0c5fd8bc67e247e03..db54c5cf799321720f6ef0b8aeca5171b359da83 100644 (file)
@@ -5,8 +5,8 @@
 
 name       = mstpd
 version    = 0.01
-svn_ver    = 22
-release    = 0.3-svn%{svn_ver}.2
+svn_ver    = 30
+release    = 0.5-svn%{svn_ver}.1
 thisapp    = %{name}-%{version}-svn%{svn_ver}
 
 groups     = Networking/Tools
@@ -41,7 +41,6 @@ packages
 
                script postin
                        /bin/systemctl daemon-reload >/dev/null 2>&1 || :
-                       /bin/systemctl --no-reload enable mstpd.service >/dev/null 2>&1 || :
                end
 
                script preun
diff --git a/mstpd/patches/add-del-bridge-commands.patch0 b/mstpd/patches/add-del-bridge-commands.patch0
deleted file mode 100644 (file)
index 5f3e592..0000000
+++ /dev/null
@@ -1,619 +0,0 @@
-Index: bridge_ctl.h
-===================================================================
---- bridge_ctl.h       (revision 22)
-+++ bridge_ctl.h       (revision 27)
-@@ -37,7 +37,7 @@
-     __u8 macaddr[ETH_ALEN];
-     char name[IFNAMSIZ];
--    bool up, stp_up;
-+    bool up;
- } sysdep_br_data_t;
- typedef struct
-Index: bridge-stp
-===================================================================
---- bridge-stp (revision 22)
-+++ bridge-stp (revision 27)
-@@ -44,12 +44,12 @@
-         checkpid $pid_file || exit 1
-         for b in $MSTP_BRIDGES; do
-             if [ "$bridge" == "$b" ]; then
--                exec /sbin/mstpctl notify-daemon-that-stp-is-on $bridge
-+                exec /sbin/mstpctl addbridge $bridge
-             fi
-         done
-         exit 1 ;;
-     stop)
--        exec /sbin/mstpctl notify-daemon-that-stp-is-off $bridge
-+        exec /sbin/mstpctl delbridge $bridge
-         ;;
-     *)
-         echo "Unknown action:" $2
-Index: ctl_functions.h
-===================================================================
---- ctl_functions.h    (revision 22)
-+++ ctl_functions.h    (revision 27)
-@@ -448,23 +448,16 @@
- #define set_fids2mstids_CALL (in->br_index, in->fids2mstids)
- CTL_DECLARE(set_fids2mstids);
--/* stp_mode_notification */
--#define CMD_CODE_stp_mode_notification  (122 | RESPONSE_FIRST_HANDLE_LATER)
--#define stp_mode_notification_ARGS (int br_index, bool on)
--struct stp_mode_notification_IN
--{
--    int br_index;
--    bool on;
--};
--struct stp_mode_notification_OUT
--{
--};
--#define stp_mode_notification_COPY_IN  ({ in->br_index = br_index; \
--                                          in->on = on; })
--#define stp_mode_notification_COPY_OUT ({ (void)0; })
--#define stp_mode_notification_CALL (in->br_index, in->on)
--CTL_DECLARE(stp_mode_notification);
-+/* add bridges */
-+#define CMD_CODE_add_bridges    (122 | RESPONSE_FIRST_HANDLE_LATER)
-+#define add_bridges_ARGS (int *br_array, int* *ifaces_lists)
-+CTL_DECLARE(add_bridges);
-+/* delete bridges */
-+#define CMD_CODE_del_bridges    (123 | RESPONSE_FIRST_HANDLE_LATER)
-+#define del_bridges_ARGS (int *br_array)
-+CTL_DECLARE(del_bridges);
-+
- /* General case part in ctl command server switch */
- #define SERVER_MESSAGE_CASE(name)                            \
-     case CMD_CODE_ ## name : do                              \
-Index: bridge_track.c
-===================================================================
---- bridge_track.c     (revision 22)
-+++ bridge_track.c     (revision 27)
-@@ -175,27 +175,11 @@
-     }
- }
--static bool stp_enabled(bridge_t * br)
-+static void set_br_up(bridge_t * br, bool up)
- {
--    char path[40 + IFNAMSIZ];
--    sprintf(path, "/sys/class/net/%s/bridge/stp_state", br->sysdeps.name);
--    FILE *f = fopen(path, "r");
--    int enabled = 0;
--    if(!f || (1 != fscanf(f, "%d", &enabled)))
--        ERROR("Can't read from %s", path);
--    fclose(f);
--    INFO("STP on %s state %d", br->sysdeps.name, enabled);
-+    INFO("%s was %s", br->sysdeps.name, br->sysdeps.up ? "up" : "down");
-+    INFO("Set bridge %s %s", br->sysdeps.name, up ? "up" : "down");
--    return enabled == 2; /* ie user mode STP */
--}
--
--static void set_br_up(bridge_t * br, bool up, bool stp_up)
--{
--    INFO("%s was %s stp was %s", br->sysdeps.name,
--         br->sysdeps.up ? "up" : "down", br->sysdeps.stp_up ? "up" : "down");
--    INFO("Set bridge %s %s stp %s" , br->sysdeps.name,
--         up ? "up" : "down", stp_up ? "up" : "down");
--
-     bool changed = false;
-     if(up != br->sysdeps.up)
-@@ -204,12 +188,6 @@
-         changed = true;
-     }
--    if(br->sysdeps.stp_up != stp_up)
--    {
--        br->sysdeps.stp_up = stp_up;
--        changed = true;
--    }
--
-     if(check_mac_address(br->sysdeps.name, br->sysdeps.macaddr))
-     {
-         /* MAC address changed */
-@@ -218,7 +196,7 @@
-     }
-     if(changed)
--        MSTP_IN_set_bridge_enable(br, br->sysdeps.up && br->sysdeps.stp_up);
-+        MSTP_IN_set_bridge_enable(br, br->sysdeps.up);
- }
- static void set_if_up(port_t * ifc, bool up)
-@@ -291,15 +269,10 @@
-     if((br_index >= 0) && (br_index != if_index))
-     {
-         if(!(br = find_br(br_index)))
--            br = create_br(br_index);
--        if(!br)
--        {
--            ERROR("Couldn't create data for bridge interface %d", br_index);
--            return -1;
--        }
-+            return -2; /* bridge not in list */
-         int br_flags = get_flags(br->sysdeps.name);
-         if(br_flags >= 0)
--            set_br_up(br, !!(br_flags & IFF_UP), stp_enabled(br));
-+            set_br_up(br, !!(br_flags & IFF_UP));
-     }
-     if(br)
-@@ -358,15 +331,8 @@
-             if(br_index == if_index)
-             {
-                 if(!(br = find_br(br_index)))
--                {
--                    if(!(br = create_br(br_index)))
--                    {
--                        ERROR("Couldn't create data for bridge interface %d",
--                              br_index);
--                        return -1;
--                    }
--                }
--                set_br_up(br, up, stp_enabled(br));
-+                    return -2; /* bridge not in list */
-+                set_br_up(br, up);
-             }
-         }
-     }
-@@ -412,8 +378,6 @@
-     /* sanity checks */
-     TST(br == ifc->bridge,);
-     TST(ifc->sysdeps.up,);
--    if(!br->sysdeps.stp_up)
--        return;
-     /* Validate Ethernet and LLC header,
-      * maybe we can skip this check thanks to Berkeley filter in packet socket?
-@@ -840,12 +804,85 @@
-     return MSTP_IN_set_all_fids2mstids(br, fids2mstids) ? 0 : -1;
- }
--int CTL_stp_mode_notification(int br_index, bool on)
-+int CTL_add_bridges(int *br_array, int* *ifaces_lists)
- {
--    int br_flags;
--    CTL_CHECK_BRIDGE;
--    if(0 > (br_flags = get_flags(br->sysdeps.name)))
--        return br_flags;
--    set_br_up(br, !!(br_flags & IFF_UP), on);
-+    int i, j, ifcount, brcount = br_array[0];
-+    bridge_t *br, *other_br;
-+    port_t *ifc, *nxt;
-+    int br_flags, if_flags;
-+    int *if_array;
-+    bool found;
-+
-+    for(i = 1; i <= brcount; ++i)
-+    {
-+        if(NULL == (br = find_br(br_array[i])))
-+        {
-+            if(NULL == (br = create_br(br_array[i])))
-+            {
-+                ERROR("Couldn't create data for bridge interface %d",
-+                      br_array[i]);
-+                return -1;
-+            }
-+            if(0 <= (br_flags = get_flags(br->sysdeps.name)))
-+                set_br_up(br, !!(br_flags & IFF_UP));
-+        }
-+        if_array = ifaces_lists[i - 1];
-+        ifcount = if_array[0];
-+        /* delete all interfaces which are not in list */
-+        list_for_each_entry_safe(ifc, nxt, &br->ports, br_list)
-+        {
-+            found = false;
-+            for(j = 1; j <= ifcount; ++j)
-+            {
-+                if(ifc->sysdeps.if_index == if_array[j])
-+                {
-+                    found = true;
-+                    break;
-+                }
-+            }
-+            if(!found)
-+                delete_if(ifc);
-+        }
-+        /* add all new interfaces from the list */
-+        for(j = 1; j <= ifcount; ++j)
-+        {
-+            if(NULL != find_if(br, if_array[j]))
-+                continue;
-+            /* Check if this interface is slave of another bridge */
-+            list_for_each_entry(other_br, &bridges, list)
-+            {
-+                if(other_br != br)
-+                    if(delete_if_byindex(other_br, if_array[j]))
-+                    {
-+                        INFO("Device %d has come to bridge %s. "
-+                             "Missed notify for deletion from bridge %s",
-+                             if_array[j], br->sysdeps.name,
-+                             other_br->sysdeps.name);
-+                        break;
-+                    }
-+            }
-+            if(NULL == (ifc = create_if(br, if_array[j])))
-+            {
-+                INFO("Couldn't create data for interface %d (master %s)",
-+                     if_array[j], br->sysdeps.name);
-+                continue;
-+            }
-+            if(0 <= (if_flags = get_flags(ifc->sysdeps.name)))
-+                set_if_up(ifc, (IFF_UP | IFF_RUNNING) ==
-+                               (if_flags & (IFF_UP | IFF_RUNNING))
-+                         );
-+        }
-+    }
-+
-     return 0;
- }
-+
-+int CTL_del_bridges(int *br_array)
-+{
-+    int i, brcount = br_array[0];
-+
-+    for(i = 1; i <= brcount; ++i)
-+        delete_br_byindex(br_array[i]);
-+
-+    return 0;
-+}
-Index: ctl_socket_server.c
-===================================================================
---- ctl_socket_server.c        (revision 22)
-+++ ctl_socket_server.c        (revision 27)
-@@ -82,8 +82,92 @@
-         SERVER_MESSAGE_CASE(set_fid2mstid);
-         SERVER_MESSAGE_CASE(set_vids2fids);
-         SERVER_MESSAGE_CASE(set_fids2mstids);
--        SERVER_MESSAGE_CASE(stp_mode_notification);
-+        case CMD_CODE_add_bridges:
-+        {
-+            if(0 != lout)
-+            {
-+                LOG("Bad sizes: lout %d != 0", lout);
-+                return -1;
-+            }
-+            if(sizeof(int) > lin)
-+            {
-+                LOG("Bad sizes: lin == 0");
-+                return -1;
-+            }
-+            int *br_array = inbuf;
-+            int i, serialized_data_count, chunk_count, brcount = br_array[0];
-+            int *ptr = br_array + (serialized_data_count = (brcount + 1));
-+            if(lin < ((serialized_data_count + 1) * sizeof(int)))
-+            {
-+bad_lin1:       LOG("Bad sizes: lin %d < %d", lin,
-+                    (serialized_data_count + 1) * sizeof(int));
-+                return -1;
-+            }
-+            for(i = 0; i < brcount; ++i)
-+            {
-+                serialized_data_count += (chunk_count = *ptr + 1);
-+                if(i < (brcount - 1))
-+                {
-+                    if(lin < ((serialized_data_count + 1) * sizeof(int)))
-+                        goto bad_lin1;
-+                    ptr += chunk_count;
-+                }
-+                else
-+                {
-+                    if(lin != (serialized_data_count * sizeof(int)))
-+                    {
-+                        LOG("Bad sizes: lin %d != %d", lin,
-+                            serialized_data_count * sizeof(int));
-+                        return -1;
-+                    }
-+                }
-+            }
-+            int* *ifaces_lists = malloc(brcount * sizeof(int*));
-+            if(NULL == ifaces_lists)
-+            {
-+                LOG("out of memory, brcount = %d\n", brcount);
-+                return -1;
-+            }
-+            ptr = br_array + (brcount + 1);
-+            for(i = 0; i < brcount; ++i)
-+            {
-+                ifaces_lists[i] = ptr;
-+                ptr += ifaces_lists[i][0] + 1;
-+            }
-+            int r = CTL_add_bridges(br_array, ifaces_lists);
-+            free(ifaces_lists);
-+            if(r)
-+                return r;
-+            return r;
-+        }
-+
-+        case CMD_CODE_del_bridges:
-+        {
-+            if(0 != lout)
-+            {
-+                LOG("Bad sizes: lout %d != 0", lout);
-+                return -1;
-+            }
-+            if(sizeof(int) > lin)
-+            {
-+                LOG("Bad sizes: lin == 0");
-+                return -1;
-+            }
-+            int *br_array = inbuf;
-+            int brcount = br_array[0];
-+            if(((brcount + 1) * sizeof(int)) != lin)
-+            {
-+                LOG("Bad sizes: lin %d != %d", lin,
-+                    (brcount + 1) * sizeof(int));
-+                return -1;
-+            }
-+            int r = CTL_del_bridges(br_array);
-+            if(r)
-+                return r;
-+            return r;
-+        }
-+
-         default:
-             ERROR("CTL: Unknown command %d", cmd);
-             return -1;
-Index: mstp.c
-===================================================================
---- mstp.c     (revision 22)
-+++ mstp.c     (revision 27)
-@@ -206,7 +206,6 @@
-         return false;
-     list_add_tail(&cist->bridge_list, &br->trees);
--    br_state_machines_begin(br);
-     return true;
- }
-Index: ctl_main.c
-===================================================================
---- ctl_main.c (revision 22)
-+++ ctl_main.c (revision 27)
-@@ -636,6 +636,18 @@
-     return !('.' == n[0] && (0 == n[1] || ('.' == n[1] && 0 == n[2])));
- }
-+static int get_port_list(const char *br_ifname, struct dirent ***namelist)
-+{
-+    int res;
-+    char buf[SYSFS_PATH_MAX];
-+
-+    snprintf(buf, sizeof(buf), SYSFS_CLASS_NET "/%s/brif", br_ifname);
-+    if(0 > (res = scandir(buf, namelist, not_dot_dotdot, sorting_func)))
-+        fprintf(stderr, "Error getting list of all ports of bridge %s\n",
-+                br_ifname);
-+    return res;
-+}
-+
- static int cmd_showport(int argc, char *const *argv)
- {
-     int r = 0;
-@@ -666,15 +678,8 @@
-     }
-     else
-     {
--        char buf[SYSFS_PATH_MAX];
--        snprintf(buf, sizeof(buf), SYSFS_CLASS_NET "/%s/brif", argv[1]);
--        count = scandir(buf, &namelist, not_dot_dotdot, sorting_func);
--        if(0 > count)
--        {
--            fprintf(stderr, "Error getting list of all ports of bridge %s\n",
--                    argv[1]);
--            return -1;
--        }
-+        if(0 > (count = get_port_list(argv[1], &namelist)))
-+            return count;
-     }
-     for(i = 0; i < count; ++i)
-@@ -740,6 +745,91 @@
-     return 0;
- }
-+static int cmd_addbridge(int argc, char *const *argv)
-+{
-+    int i, j, res, ifcount, brcount = argc - 1;
-+    int *br_array;
-+    int* *ifaces_lists;
-+
-+    if(NULL == (br_array = malloc((brcount + 1) * sizeof(int))))
-+    {
-+out_of_memory_exit:
-+        fprintf(stderr, "out of memory, brcount = %d\n", brcount);
-+        return -1;
-+    }
-+    if(NULL == (ifaces_lists = malloc(brcount * sizeof(int*))))
-+    {
-+        free(br_array);
-+        goto out_of_memory_exit;
-+    }
-+
-+    br_array[0] = brcount;
-+    for(i = 1; i <= brcount; ++i)
-+    {
-+        struct dirent **namelist;
-+
-+        br_array[i] = get_index(argv[i], "bridge");
-+
-+        if(0 > (ifcount = get_port_list(argv[i], &namelist)))
-+        {
-+ifaces_error_exit:
-+            for(i -= 2; i >= 0; --i)
-+                free(ifaces_lists[i]);
-+            free(ifaces_lists);
-+            free(br_array);
-+            return ifcount;
-+        }
-+
-+        if(NULL == (ifaces_lists[i - 1] = malloc((ifcount + 1) * sizeof(int))))
-+        {
-+            fprintf(stderr, "out of memory, bridge %s, ifcount = %d\n",
-+                    argv[i], ifcount);
-+            for(j = 0; j < ifcount; ++j)
-+                free(namelist[j]);
-+            free(namelist);
-+            ifcount = -1;
-+            goto ifaces_error_exit;
-+        }
-+
-+        ifaces_lists[i - 1][0] = ifcount;
-+        for(j = 1; j <= ifcount; ++j)
-+        {
-+            ifaces_lists[i - 1][j] = get_index(namelist[j - 1]->d_name, "port");
-+            free(namelist[j - 1]);
-+        }
-+        free(namelist);
-+    }
-+
-+    res = CTL_add_bridges(br_array, ifaces_lists);
-+
-+    for(i = 0; i < brcount; ++i)
-+        free(ifaces_lists[i]);
-+    free(ifaces_lists);
-+    free(br_array);
-+    return res;
-+}
-+
-+static int cmd_delbridge(int argc, char *const *argv)
-+{
-+    int i, res, brcount = argc - 1;
-+    int *br_array;
-+
-+    if(NULL == (br_array = malloc((brcount + 1) * sizeof(int))))
-+    {
-+        fprintf(stderr, "out of memory, brcount = %d\n", brcount);
-+        return -1;
-+    }
-+
-+    br_array[0] = brcount;
-+    for(i = 1; i <= brcount; ++i)
-+        br_array[i] = get_index(argv[i], "bridge");
-+
-+    res = CTL_del_bridges(br_array);
-+
-+    free(br_array);
-+    return res;
-+}
-+
- static unsigned int getuint(const char *s)
- {
-     char *end;
-@@ -1191,23 +1281,6 @@
-     return CTL_set_fid2mstid(br_index, fid, mstid);
- }
--static int cmd_stp_mode_notification(int argc, char *const *argv, bool on)
--{
--    int br_index;
--    /* Because this command has special handling,
--     * argc was not checked earlier
--     */
--    if(2 > argc)
--    {
--        fprintf(stderr,
--                "Incorrect number of arguments for notification command\n");
--        exit(1);
--    }
--    if(0 > (br_index = get_index(argv[1], "bridge")))
--        return br_index;
--    return CTL_stp_mode_notification(br_index, on);
--}
--
- struct command
- {
-     int nargs;
-@@ -1220,6 +1293,12 @@
- static const struct command commands[] =
- {
-+    /* Add/delete bridges */
-+    {1, 32, "addbridge", cmd_addbridge,
-+     "<bridge> [<bridge> ...]", "Add bridges to the mstpd's list"},
-+    {1, 32, "delbridge", cmd_delbridge,
-+     "<bridge> [<bridge> ...]", "Remove bridges from the mstpd's list"},
-+
-     /* Show global bridge */
-     {0, 32, "showbridge", cmd_showbridge,
-      "[<bridge> ... [param]]", "Show bridge state for the CIST"},
-@@ -1370,12 +1449,6 @@
-     argv += optind;
-     if(NULL == (cmd = command_lookup(argv[0])))
-     {
--        /* Two special commands not intended for interactive use */
--        if(!strcmp(argv[0], "notify-daemon-that-stp-is-on"))
--            return cmd_stp_mode_notification(argc, argv, true);
--        if(!strcmp(argv[0], "notify-daemon-that-stp-is-off"))
--            return cmd_stp_mode_notification(argc, argv, false);
--
-         fprintf(stderr, "never heard of command [%s]\n", argv[0]);
-         goto help;
-     }
-@@ -1417,8 +1490,61 @@
- CLIENT_SIDE_FUNCTION(set_fid2mstid)
- CLIENT_SIDE_FUNCTION(set_vids2fids)
- CLIENT_SIDE_FUNCTION(set_fids2mstids)
--CLIENT_SIDE_FUNCTION(stp_mode_notification)
-+CTL_DECLARE(add_bridges)
-+{
-+    int res = 0;
-+    LogString log = { .buf = "" };
-+    int i, chunk_count, brcount, serialized_data_count;
-+    int *serialized_data, *ptr;
-+
-+    chunk_count = serialized_data_count = (brcount = br_array[0]) + 1;
-+    for(i = 0; i < brcount; ++i)
-+        serialized_data_count += ifaces_lists[i][0] + 1;
-+    if(NULL == (serialized_data = malloc(serialized_data_count * sizeof(int))))
-+    {
-+        LOG("out of memory, serialized_data_count = %d",
-+            serialized_data_count);
-+        return -1;
-+    }
-+    memcpy(serialized_data, br_array, chunk_count * sizeof(int));
-+    ptr = serialized_data + chunk_count;
-+    for(i = 0; i < brcount; ++i)
-+    {
-+        chunk_count = ifaces_lists[i][0] + 1;
-+        memcpy(ptr, ifaces_lists[i], chunk_count * sizeof(int));
-+        ptr += chunk_count;
-+    }
-+
-+    int r = send_ctl_message(CMD_CODE_add_bridges, serialized_data,
-+                             serialized_data_count * sizeof(int),
-+                             NULL, 0, &log, &res);
-+    free(serialized_data);
-+    if(r || res)
-+        LOG("Got return code %d, %d\n%s", r, res, log.buf);
-+    if(r)
-+        return r;
-+    if(res)
-+        return res;
-+    return 0;
-+}
-+
-+CTL_DECLARE(del_bridges)
-+{
-+    int res = 0;
-+    LogString log = { .buf = "" };
-+    int r = send_ctl_message(CMD_CODE_del_bridges,
-+                             br_array, (br_array[0] + 1) * sizeof(int),
-+                             NULL, 0, &log, &res);
-+    if(r || res)
-+        LOG("Got return code %d, %d\n%s", r, res, log.buf);
-+    if(r)
-+        return r;
-+    if(res)
-+        return res;
-+    return 0;
-+}
-+
- /*********************** Logging *********************/
- void Dprintf(int level, const char *fmt, ...)
index 57c01031c0fa6dec2e7d6ac19cf7cffedb804d4e..63b035a4e03ec7ea57cd2c84f73921d92cc0102f 100644 (file)
@@ -4,9 +4,12 @@
 ###############################################################################
 
 name       = multipath-tools
-version    = 0.4.9
+version    = %{rel_ver}.%{rel_date}
 release    = 1
 
+rel_ver    = 0.4.9
+rel_date   = 120613
+
 groups     = System/Base
 url        = http://christophe.varoqui.free.fr/
 license    = GPL+
@@ -17,27 +20,77 @@ description
        instructing the device-mapper multipath kernel module what to do.
 end
 
-source_dl  =
-sources    = %{name}-091027.tar.gz
+thisapp    = %{name}-%{rel_date}
+
+sources    = %{thisapp}.tgz
 
 build
        requires
                gzip
                libaio-devel
                libdevmapper-devel
+               libudev-devel
                ncurses-devel
                readline-devel
        end
 
-       DIR_APP = %{DIR_SRC}/%{name}
+       prepare_cmds
+               # Fix hardcoded install location for udev rules.
+               sed -e "s@lib/udev@usr/lib/udev@g" -i multipath/Makefile
+       end
+
+       # Install everything to the correct locations.
+       make_install_targets +=\
+               bindir=%{sbindir} \
+               syslibdir=%{libdir} \
+               libdir=%{libdir}/multipath \
+               unitdir=%{unitdir}
 
        install_cmds
+               # Remove old SysV init script and folder.
                rm -rf %{BUILDROOT}/etc/rc.d
+
+               # Install configuration file.
+               install -m 0664 %{DIR_SOURCE}/multipath.conf %{BUILDROOT}%{sysconfdir}/multipath.conf
        end
 end
 
 packages
        package %{name}
+               configfiles
+                       /etc/multipath.conf
+               end
+
+               script postin
+                       /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script preun
+                       /usr/bin/systemctl --no-reload disable multipathd.service >/dev/null 2>&1 || :
+                       /usr/bin/systemctl stop multipathd.service >/dev/null 2>&1 || :
+               end
+
+               script postun
+                       /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postup
+                       /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+                       /usr/bin/systemctl try-restart multipathd.service >/dev/null 2>&1 || :
+               end
+       end
+
+       package kpartx
+               summary = Partition manager for device-mapper devices.
+               description
+                       kpartx manages partition creation and removal for device-mapper devices.
+               end
+
+               files
+                       %{sbindir}/kpartx
+                       %{mandir}/man8/kpartx.8*
+               end
+       end
 
        package %{name}-devel
                template DEVEL
diff --git a/multipath-tools/multipath.conf b/multipath-tools/multipath.conf
new file mode 100644 (file)
index 0000000..6bbeadb
--- /dev/null
@@ -0,0 +1,90 @@
+# This is a basic configuration file with some examples, for device mapper
+# multipath.
+# For a complete list of the default configuration values, see
+# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.defaults
+# For a list of configuration options with descriptions, see
+# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.annotated
+
+## By default, devices with vendor = "IBM" and product = "S/390.*" are
+## blacklisted. To enable mulitpathing on these devies, uncomment the
+## following lines.
+#blacklist_exceptions {
+#      device {
+#              vendor  "IBM"
+#              product "S/390.*"
+#      }
+#}
+
+## Use user friendly names, instead of using WWIDs as names.
+defaults {
+       user_friendly_names yes
+}
+##
+## Here is an example of how to configure some standard options.
+##
+#
+#defaults {
+#      udev_dir                /dev
+#      polling_interval        10
+#      selector                "round-robin 0"
+#      path_grouping_policy    multibus
+#      getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
+#      prio                    alua
+#      path_checker            readsector0
+#      rr_min_io               100
+#      max_fds                 8192
+#      rr_weight               priorities
+#      failback                immediate
+#      no_path_retry           fail
+#      user_friendly_names     yes
+#}
+##
+## The wwid line in the following blacklist section is shown as an example
+## of how to blacklist devices by wwid.  The 2 devnode lines are the
+## compiled in default blacklist. If you want to blacklist entire types
+## of devices, such as all scsi devices, you should use a devnode line.
+## However, if you want to blacklist specific devices, you should use
+## a wwid line.  Since there is no guarantee that a specific device will
+## not change names on reboot (from /dev/sda to /dev/sdb for example)
+## devnode lines are not recommended for blacklisting specific devices.
+##
+#blacklist {
+#       wwid 26353900f02796769
+#      devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
+#      devnode "^hd[a-z]"
+#}
+#multipaths {
+#      multipath {
+#              wwid                    3600508b4000156d700012000000b0000
+#              alias                   yellow
+#              path_grouping_policy    multibus
+#              path_checker            readsector0
+#              path_selector           "round-robin 0"
+#              failback                manual
+#              rr_weight               priorities
+#              no_path_retry           5
+#      }
+#      multipath {
+#              wwid                    1DEC_____321816758474
+#              alias                   red
+#      }
+#}
+#devices {
+#      device {
+#              vendor                  "COMPAQ  "
+#              product                 "HSV110 (C)COMPAQ"
+#              path_grouping_policy    multibus
+#              getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
+#              path_checker            readsector0
+#              path_selector           "round-robin 0"
+#              hardware_handler        "0"
+#              failback                15
+#              rr_weight               priorities
+#              no_path_retry           queue
+#      }
+#      device {
+#              vendor                  "COMPAQ  "
+#              product                 "MSA1000         "
+#              path_grouping_policy    multibus
+#      }
+#}
diff --git a/multipath-tools/patches/0001-RH-queue-without-daemon.patch b/multipath-tools/patches/0001-RH-queue-without-daemon.patch
deleted file mode 100644 (file)
index 3834bfc..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-From 8191fb07d8212e29ad44370abb60e174e1c34bb5 Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Tue, 13 Oct 2009 08:15:15 +0200
-Subject: [PATCH 01/12] RH: queue without daemon
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
----
-:100644 100644 50a728c... 86b1320... M libmultipath/config.h
-:100644 100644 ee4de68... 7888e8e... M libmultipath/dict.c
-:100644 100644 afd1246... 2e7a0d1... M libmultipath/structs.h
-:100644 100644 c222da4... 9afa615... M multipath.conf.annotated
-:100644 100644 3e0fd6e... 44d1329... M multipath.conf.synthetic
-:100644 100644 41a9bd0... 90de6df... M multipathd/main.c
- libmultipath/config.h    |    1 +
- libmultipath/dict.c      |   35 +++++++++++++++++++++++++++++++++++
- libmultipath/structs.h   |    6 ++++++
- multipath.conf.annotated |    9 +++++++++
- multipath.conf.synthetic |    1 +
- multipathd/main.c        |    5 +++++
- 6 files changed, 57 insertions(+), 0 deletions(-)
-
-Index: multipath-tools/libmultipath/config.h
-===================================================================
---- multipath-tools.orig/libmultipath/config.h
-+++ multipath-tools/libmultipath/config.h
-@@ -74,6 +74,7 @@ struct config {
-       int pg_timeout;
-       int max_fds;
-       int force_reload;
-+      int queue_without_daemon;
-       int daemon;
-       int flush_on_last_del;
-       int attribute_flags;
-Index: multipath-tools/libmultipath/dict.c
-===================================================================
---- multipath-tools.orig/libmultipath/dict.c
-+++ multipath-tools/libmultipath/dict.c
-@@ -362,6 +362,28 @@ def_no_path_retry_handler(vector strvec)
- }
- static int
-+def_queue_without_daemon(vector strvec)
-+{
-+      char * buff;
-+
-+      buff = set_value(strvec);
-+      if (!buff)
-+              return 1;
-+
-+      if (!strncmp(buff, "off", 3) || !strncmp(buff, "no", 2) ||
-+          !strncmp(buff, "0", 1))
-+              conf->queue_without_daemon = QUE_NO_DAEMON_OFF;
-+      else if (!strncmp(buff, "on", 2) || !strncmp(buff, "yes", 3) ||
-+               !strncmp(buff, "1", 1))
-+              conf->queue_without_daemon = QUE_NO_DAEMON_ON;
-+      else
-+              conf->queue_without_daemon = QUE_NO_DAEMON_UNDEF;
-+
-+      free(buff);
-+      return 0;
-+}
-+
-+static int
- def_pg_timeout_handler(vector strvec)
- {
-       int pg_timeout;
-@@ -1944,6 +1966,18 @@ snprint_def_no_path_retry (char * buff, 
- }
- static int
-+snprint_def_queue_without_daemon (char * buff, int len, void * data)
-+{
-+      switch (conf->queue_without_daemon) {
-+      case QUE_NO_DAEMON_OFF:
-+              return snprintf(buff, len, "no");
-+      case QUE_NO_DAEMON_ON:
-+              return snprintf(buff, len, "yes");
-+      }
-+      return 0;
-+}
-+
-+static int
- snprint_def_pg_timeout (char * buff, int len, void * data)
- {
-       if (conf->pg_timeout == DEFAULT_PGTIMEOUT)
-@@ -2029,6 +2063,7 @@ init_keywords(void)
-       install_keyword("max_fds", &max_fds_handler, &snprint_max_fds);
-       install_keyword("rr_weight", &def_weight_handler, &snprint_def_rr_weight);
-       install_keyword("no_path_retry", &def_no_path_retry_handler, &snprint_def_no_path_retry);
-+      install_keyword("queue_without_daemon", &def_queue_without_daemon, &snprint_def_queue_without_daemon);
-       install_keyword("pg_timeout", &def_pg_timeout_handler, &snprint_def_pg_timeout);
-       install_keyword("flush_on_last_del", &def_flush_on_last_del_handler, &snprint_def_flush_on_last_del);
-       install_keyword("user_friendly_names", &names_handler, &snprint_def_user_friendly_names);
-Index: multipath-tools/libmultipath/structs.h
-===================================================================
---- multipath-tools.orig/libmultipath/structs.h
-+++ multipath-tools/libmultipath/structs.h
-@@ -63,6 +63,12 @@ enum pgstates {
-       PGSTATE_ACTIVE
- };
-+enum queue_without_daemon_states {
-+      QUE_NO_DAEMON_UNDEF,
-+      QUE_NO_DAEMON_OFF,
-+      QUE_NO_DAEMON_ON,
-+};
-+
- enum pgtimeouts {
-       PGTIMEOUT_UNDEF,
-       PGTIMEOUT_NONE
-Index: multipath-tools/multipath.conf.annotated
-===================================================================
---- multipath-tools.orig/multipath.conf.annotated
-+++ multipath-tools/multipath.conf.annotated
-@@ -153,6 +153,15 @@
- #     no_path_retry  queue
- #
- #     #
-+#     # name    : queue_without_daemon
-+#     # scope   : multipathd
-+#     # desc    : If set to "no", multipathd will disable queueing for all
-+#     #           devices when it is shut down.
-+#     # values  : yes|no
-+#     # default : yes
-+#     queue_without_daemon    no
-+#
-+#     #
- #     # name    : user_friendly_names
- #     # scope   : multipath
- #     # desc    : If set to "yes", using the bindings file
-Index: multipath-tools/multipath.conf.synthetic
-===================================================================
---- multipath-tools.orig/multipath.conf.synthetic
-+++ multipath-tools/multipath.conf.synthetic
-@@ -16,6 +16,7 @@
- #     rr_weight               priorities
- #     failback                immediate
- #     no_path_retry           fail
-+#     queue_without_daemon    no
- #     user_friendly_names     no
- #     mode                    644
- #     uid                     0
-Index: multipath-tools/multipathd/main.c
-===================================================================
---- multipath-tools.orig/multipathd/main.c
-+++ multipath-tools/multipathd/main.c
-@@ -1334,6 +1334,8 @@ child (void * param)
-       pthread_t check_thr, uevent_thr, uxlsnr_thr;
-       pthread_attr_t log_attr, misc_attr;
-       struct vectors * vecs;
-+      struct multipath * mpp;
-+      int i;
-       mlockall(MCL_CURRENT | MCL_FUTURE);
-@@ -1422,6 +1424,9 @@ child (void * param)
-        */
-       block_signal(SIGHUP, NULL);
-       lock(vecs->lock);
-+      if (conf->queue_without_daemon == QUE_NO_DAEMON_OFF)
-+              vector_foreach_slot(vecs->mpvec, mpp, i)
-+                      dm_queue_if_no_path(mpp->alias, 0);
-       remove_maps_and_stop_waiters(vecs);
-       free_pathvec(vecs->pathvec, FREE_PATHS);
diff --git a/multipath-tools/patches/0001-RH-remove_callout.patch b/multipath-tools/patches/0001-RH-remove_callout.patch
new file mode 100644 (file)
index 0000000..0c03cc4
--- /dev/null
@@ -0,0 +1,279 @@
+---
+ libmultipath/Makefile    |    2 
+ libmultipath/callout.c   |  217 -----------------------------------------------
+ libmultipath/callout.h   |    7 -
+ libmultipath/discovery.c |    1 
+ multipathd/main.c        |    1 
+ 5 files changed, 1 insertion(+), 227 deletions(-)
+
+Index: multipath-tools-120518/libmultipath/Makefile
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/Makefile
++++ multipath-tools-120518/libmultipath/Makefile
+@@ -9,7 +9,7 @@ DEVLIB = libmultipath.so
+ LIBS = $(DEVLIB).$(SONAME)
+ LIBDEPS = -lpthread -ldl -ldevmapper -ludev
+-OBJS = memory.o parser.o vector.o devmapper.o callout.o \
++OBJS = memory.o parser.o vector.o devmapper.o \
+        hwtable.o blacklist.o util.o dmparser.o config.o \
+        structs.o discovery.o propsel.o dict.o \
+        pgpolicies.o debug.o regex.o defaults.o uevent.o \
+Index: multipath-tools-120518/libmultipath/callout.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/callout.c
++++ /dev/null
+@@ -1,217 +0,0 @@
+-/*
+- * Source: copy of the udev package source file
+- *
+- * Copyrights of the source file apply
+- * Copyright (c) 2004 Christophe Varoqui
+- */
+-#include <stdio.h>
+-#include <sys/stat.h>
+-#include <string.h>
+-#include <unistd.h>
+-#include <sys/types.h>
+-#include <stdlib.h>
+-#include <fcntl.h>
+-#include <sys/wait.h>
+-#include <errno.h>
+-
+-#include "checkers.h"
+-#include "vector.h"
+-#include "structs.h"
+-#include "util.h"
+-#include "debug.h"
+-
+-int execute_program(char *path, char *value, int len)
+-{
+-      int retval;
+-      int count;
+-      int status;
+-      int fds[2], null_fd;
+-      pid_t pid;
+-      char *pos;
+-      char arg[CALLOUT_MAX_SIZE];
+-      int argc = sizeof(arg) / 2;
+-      char *argv[argc + 1];
+-      int i;
+-
+-      i = 0;
+-
+-      if (strchr(path, ' ')) {
+-              strlcpy(arg, path, sizeof(arg));
+-              pos = arg;
+-              while (pos != NULL && i < argc) {
+-                      if (pos[0] == '\'') {
+-                              /* don't separate if in apostrophes */
+-                              pos++;
+-                              argv[i] = strsep(&pos, "\'");
+-                              while (pos[0] == ' ')
+-                                      pos++;
+-                      } else {
+-                              argv[i] = strsep(&pos, " ");
+-                      }
+-                      i++;
+-              }
+-      } else {
+-              argv[i++] = path;
+-      }
+-      argv[i] =  NULL;
+-
+-      retval = pipe(fds);
+-
+-      if (retval != 0) {
+-              condlog(0, "error creating pipe for callout: %s", strerror(errno));
+-              return -1;
+-      }
+-
+-      pid = fork();
+-
+-      switch(pid) {
+-      case 0:
+-              /* child */
+-              close(STDOUT_FILENO);
+-
+-              /* dup write side of pipe to STDOUT */
+-              if (dup(fds[1]) < 0)
+-                      return -1;
+-
+-              /* Ignore writes to stderr */
+-              null_fd = open("/dev/null", O_WRONLY);
+-              if (null_fd > 0) {
+-                      close(STDERR_FILENO);
+-                      dup(null_fd);
+-                      close(null_fd);
+-              }
+-
+-              retval = execv(argv[0], argv);
+-              condlog(0, "error execing %s : %s", argv[0], strerror(errno));
+-              exit(-1);
+-      case -1:
+-              condlog(0, "fork failed: %s", strerror(errno));
+-              close(fds[0]);
+-              close(fds[1]);
+-              return -1;
+-      default:
+-              /* parent reads from fds[0] */
+-              close(fds[1]);
+-              retval = 0;
+-              i = 0;
+-              while (1) {
+-                      count = read(fds[0], value + i, len - i-1);
+-                      if (count <= 0)
+-                              break;
+-
+-                      i += count;
+-                      if (i >= len-1) {
+-                              condlog(0, "not enough space for response from %s", argv[0]);
+-                              retval = -1;
+-                              break;
+-                      }
+-              }
+-
+-              if (count < 0) {
+-                      condlog(0, "no response from %s", argv[0]);
+-                      retval = -1;
+-              }
+-
+-              if (i > 0 && value[i-1] == '\n')
+-                      i--;
+-              value[i] = '\0';
+-
+-              wait(&status);
+-              close(fds[0]);
+-
+-              retval = -1;
+-              if (WIFEXITED(status)) {
+-                      status = WEXITSTATUS(status);
+-                      if (status == 0)
+-                              retval = 0;
+-                      else
+-                              condlog(0, "%s exitted with %d", argv[0], status);
+-              }
+-              else if (WIFSIGNALED(status))
+-                      condlog(0, "%s was terminated by signal %d", argv[0], WTERMSIG(status));
+-              else
+-                      condlog(0, "%s terminated abnormally", argv[0]);
+-      }
+-      return retval;
+-}
+-
+-extern int
+-apply_format (char * string, char * cmd, struct path * pp)
+-{
+-      char * pos;
+-      char * dst;
+-      char * p;
+-      char * q;
+-      int len;
+-      int myfree;
+-
+-      if (!string)
+-              return 1;
+-
+-      if (!cmd)
+-              return 1;
+-
+-      dst = cmd;
+-      p = dst;
+-      pos = strchr(string, '%');
+-      myfree = CALLOUT_MAX_SIZE;
+-
+-      if (!pos) {
+-              strcpy(dst, string);
+-              return 0;
+-      }
+-
+-      len = (int) (pos - string) + 1;
+-      myfree -= len;
+-
+-      if (myfree < 2)
+-              return 1;
+-
+-      snprintf(p, len, "%s", string);
+-      p += len - 1;
+-      pos++;
+-
+-      switch (*pos) {
+-      case 'n':
+-              len = strlen(pp->dev) + 1;
+-              myfree -= len;
+-
+-              if (myfree < 2)
+-                      return 1;
+-
+-              snprintf(p, len, "%s", pp->dev);
+-              for (q = p; q < p + len; q++) {
+-                      if (q && *q == '!')
+-                              *q = '/';
+-              }
+-              p += len - 1;
+-              break;
+-      case 'd':
+-              len = strlen(pp->dev_t) + 1;
+-              myfree -= len;
+-
+-              if (myfree < 2)
+-                      return 1;
+-
+-              snprintf(p, len, "%s", pp->dev_t);
+-              p += len - 1;
+-              break;
+-      default:
+-              break;
+-      }
+-      pos++;
+-
+-      if (!*pos)
+-              return 0;
+-
+-      len = strlen(pos) + 1;
+-      myfree -= len;
+-
+-      if (myfree < 2)
+-              return 1;
+-
+-      snprintf(p, len, "%s", pos);
+-      condlog(3, "reformated callout = %s", dst);
+-      return 0;
+-}
+-
+Index: multipath-tools-120518/libmultipath/callout.h
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/callout.h
++++ /dev/null
+@@ -1,7 +0,0 @@
+-#ifndef _CALLOUT_H
+-#define _CALLOUT_H
+-
+-int execute_program(char *, char *, int);
+-int apply_format (char *, char *, struct path *);
+-
+-#endif /* _CALLOUT_H */
+Index: multipath-tools-120518/libmultipath/discovery.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/discovery.c
++++ multipath-tools-120518/libmultipath/discovery.c
+@@ -20,7 +20,6 @@
+ #include "structs.h"
+ #include "config.h"
+ #include "blacklist.h"
+-#include "callout.h"
+ #include "debug.h"
+ #include "propsel.h"
+ #include "sg_include.h"
+Index: multipath-tools-120518/multipathd/main.c
+===================================================================
+--- multipath-tools-120518.orig/multipathd/main.c
++++ multipath-tools-120518/multipathd/main.c
+@@ -35,7 +35,6 @@
+ #include <hwtable.h>
+ #include <defaults.h>
+ #include <structs.h>
+-#include <callout.h>
+ #include <blacklist.h>
+ #include <structs_vec.h>
+ #include <dmparser.h>
diff --git a/multipath-tools/patches/0001-for-upstream-add-tpg_pref-prioritizer.patch b/multipath-tools/patches/0001-for-upstream-add-tpg_pref-prioritizer.patch
deleted file mode 100644 (file)
index 93b0af2..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From faf6bfc96b98562626e0ea12aecb582032ff4cab Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Mon, 19 Oct 2009 07:02:02 +0200
-Subject: [PATCH 1/1] for-upstream: add tpg_pref prioritizer
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
----
-:100644 100644 fc9277f... 1f40859... M libmultipath/prio.h
-:100644 100644 949a60a... 5021c04... M libmultipath/prioritizers/Makefile
-:100644 100644 0048a44... 22513ab... M libmultipath/prioritizers/alua.c
-:100644 100644 0531052... cd9c29d... M libmultipath/prioritizers/alua_rtpg.c
-:100644 100644 bddbbdd... daf95a6... M libmultipath/prioritizers/alua_spc3.h
- libmultipath/prio.h                   |    1 +
- libmultipath/prioritizers/Makefile    |   10 ++++++++++
- libmultipath/prioritizers/alua.c      |    7 +++++++
- libmultipath/prioritizers/alua_rtpg.c |    4 ++++
- libmultipath/prioritizers/alua_spc3.h |    6 ++++++
- 5 files changed, 28 insertions(+), 0 deletions(-)
-
-diff --git a/libmultipath/prio.h b/libmultipath/prio.h
-index fc9277f..1f40859 100644
---- a/libmultipath/prio.h
-+++ b/libmultipath/prio.h
-@@ -16,6 +16,7 @@
-  * Known prioritizers for use in hwtable.c
-  */
- #define PRIO_ALUA "alua"
-+#define PRIO_TPG_PREF "tpg_pref"
- #define PRIO_CONST "const"
- #define PRIO_EMC "emc"
- #define PRIO_HDS "hds"
-diff --git a/libmultipath/prioritizers/Makefile b/libmultipath/prioritizers/Makefile
-index 949a60a..5021c04 100644
---- a/libmultipath/prioritizers/Makefile
-+++ b/libmultipath/prioritizers/Makefile
-@@ -11,6 +11,7 @@ LIBS = \
-       libprioemc.so \
-       libpriordac.so \
-       libprioalua.so \
-+      libpriotpg_pref.so \
-       libprionetapp.so \
-       libpriohds.so
-@@ -21,9 +22,18 @@ all: $(LIBS)
- libprioalua.so: alua.o alua_rtpg.o
-       $(CC) $(SHARED_FLAGS) -o $@ $^
-+libpriotpg_pref.so: pref.o pref_rtpg.o
-+      $(CC) $(SHARED_FLAGS) -o $@ $^
-+
- libprio%.so: %.o
-       $(CC) $(SHARED_FLAGS) -o $@ $^
-+pref.o: alua.c
-+      $(CC) $(CFLAGS) -DTPG_PREF -c -o $@ $<
-+
-+pref_rtpg.o: alua_rtpg.c
-+      $(CC) $(CFLAGS) -DTPG_PREF -c -o $@ $<
-+
- install: $(LIBS)
-       $(INSTALL_PROGRAM) -m 755 libprio*.so $(DESTDIR)$(libdir)
-diff --git a/libmultipath/prioritizers/alua.c b/libmultipath/prioritizers/alua.c
-index 0048a44..22513ab 100644
---- a/libmultipath/prioritizers/alua.c
-+++ b/libmultipath/prioritizers/alua.c
-@@ -28,6 +28,12 @@
- int
- get_alua_info(int fd)
- {
-+#ifdef TPG_PREF
-+      char * aas_string[] = {
-+              [AAS_OPTIMIZED]         = "preferred",
-+              [AAS_STANDBY]           = "non-preferred",
-+      };
-+#else
-       char *  aas_string[] = {
-               [AAS_OPTIMIZED]         = "active/optimized",
-               [AAS_NON_OPTIMIZED]     = "active/non-optimized",
-@@ -35,6 +41,7 @@ get_alua_info(int fd)
-               [AAS_UNAVAILABLE]       = "unavailable",
-               [AAS_TRANSITIONING]     = "transitioning between states",
-       };
-+#endif
-       int     rc;
-       int     tpg;
-diff --git a/libmultipath/prioritizers/alua_rtpg.c b/libmultipath/prioritizers/alua_rtpg.c
-index 0531052..cd9c29d 100644
---- a/libmultipath/prioritizers/alua_rtpg.c
-+++ b/libmultipath/prioritizers/alua_rtpg.c
-@@ -293,7 +293,11 @@ get_asymmetric_access_state(int fd, unsigned int tpg)
-                                       "group.\n");
-                       } else {
-                               PRINT_DEBUG("pref=%i\n", dscr->b0);
-+#ifdef TPG_PREF
-+                              rc = rtpg_tpg_dscr_get_pref(dscr);
-+#else
-                               rc = rtpg_tpg_dscr_get_aas(dscr);
-+#endif
-                       }
-               }
-       }
-diff --git a/libmultipath/prioritizers/alua_spc3.h b/libmultipath/prioritizers/alua_spc3.h
-index bddbbdd..daf95a6 100644
---- a/libmultipath/prioritizers/alua_spc3.h
-+++ b/libmultipath/prioritizers/alua_spc3.h
-@@ -302,6 +302,12 @@ rtpg_tpg_dscr_get_aas(struct rtpg_tpg_dscr *d)
-       return (d->b0 & 0x0f);
- }
-+static inline int
-+rtpg_tpg_dscr_get_pref(struct rtpg_tpg_dscr *d)
-+{
-+      return ((d->b0 & 0x80)?AAS_OPTIMIZED:AAS_STANDBY);
-+}
-+
- struct rtpg_data {
-       unsigned char                   length[4];              /* size-4 */
-       struct rtpg_tpg_dscr            data[0];
--- 
-1.6.5.1
-
diff --git a/multipath-tools/patches/0002-RH-add-wwids-file.patch b/multipath-tools/patches/0002-RH-add-wwids-file.patch
new file mode 100644 (file)
index 0000000..f3014ba
--- /dev/null
@@ -0,0 +1,748 @@
+---
+ libmultipath/Makefile    |    2 
+ libmultipath/alias.c     |  153 ---------------------------------------
+ libmultipath/alias.h     |    1 
+ libmultipath/configure.c |    3 
+ libmultipath/defaults.h  |    1 
+ libmultipath/discovery.c |    2 
+ libmultipath/file.c      |  180 +++++++++++++++++++++++++++++++++++++++++++++++
+ libmultipath/file.h      |   11 ++
+ libmultipath/wwids.c     |  139 ++++++++++++++++++++++++++++++++++++
+ libmultipath/wwids.h     |   18 ++++
+ multipath/main.c         |   37 ++++++++-
+ 11 files changed, 389 insertions(+), 158 deletions(-)
+
+Index: multipath-tools-120518/libmultipath/alias.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/alias.c
++++ multipath-tools-120518/libmultipath/alias.c
+@@ -3,19 +3,16 @@
+  * Copyright (c) 2005 Benjamin Marzinski, Redhat
+  */
+ #include <stdlib.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+ #include <errno.h>
+ #include <unistd.h>
+ #include <string.h>
+ #include <limits.h>
+ #include <stdio.h>
+-#include <signal.h>
+ #include "debug.h"
+ #include "uxsock.h"
+ #include "alias.h"
++#include "file.h"
+ /*
+@@ -36,150 +33,6 @@
+  * See the file COPYING included with this distribution for more details.
+  */
+-static int
+-ensure_directories_exist(char *str, mode_t dir_mode)
+-{
+-      char *pathname;
+-      char *end;
+-      int err;
+-
+-      pathname = strdup(str);
+-      if (!pathname){
+-              condlog(0, "Cannot copy bindings file pathname : %s",
+-                      strerror(errno));
+-              return -1;
+-      }
+-      end = pathname;
+-      /* skip leading slashes */
+-      while (end && *end && (*end == '/'))
+-              end++;
+-
+-      while ((end = strchr(end, '/'))) {
+-              /* if there is another slash, make the dir. */
+-              *end = '\0';
+-              err = mkdir(pathname, dir_mode);
+-              if (err && errno != EEXIST) {
+-                      condlog(0, "Cannot make directory [%s] : %s",
+-                              pathname, strerror(errno));
+-                      free(pathname);
+-                      return -1;
+-              }
+-              if (!err)
+-                      condlog(3, "Created dir [%s]", pathname);
+-              *end = '/';
+-              end++;
+-      }
+-      free(pathname);
+-      return 0;
+-}
+-
+-static void
+-sigalrm(int sig)
+-{
+-      /* do nothing */
+-}
+-
+-static int
+-lock_bindings_file(int fd)
+-{
+-      struct sigaction act, oldact;
+-      sigset_t set, oldset;
+-      struct flock lock;
+-      int err;
+-
+-      memset(&lock, 0, sizeof(lock));
+-      lock.l_type = F_WRLCK;
+-      lock.l_whence = SEEK_SET;
+-
+-      act.sa_handler = sigalrm;
+-      sigemptyset(&act.sa_mask);
+-      act.sa_flags = 0;
+-      sigemptyset(&set);
+-      sigaddset(&set, SIGALRM);
+-
+-      sigaction(SIGALRM, &act, &oldact);
+-      sigprocmask(SIG_UNBLOCK, &set, &oldset);
+-
+-      alarm(BINDINGS_FILE_TIMEOUT);
+-      err = fcntl(fd, F_SETLKW, &lock);
+-      alarm(0);
+-
+-      if (err) {
+-              if (errno != EINTR)
+-                      condlog(0, "Cannot lock bindings file : %s",
+-                                      strerror(errno));
+-              else
+-                      condlog(0, "Bindings file is locked. Giving up.");
+-      }
+-
+-      sigprocmask(SIG_SETMASK, &oldset, NULL);
+-      sigaction(SIGALRM, &oldact, NULL);
+-      return err;
+-
+-}
+-
+-
+-static int
+-open_bindings_file(char *file, int *can_write)
+-{
+-      int fd;
+-      struct stat s;
+-
+-      if (ensure_directories_exist(file, 0700))
+-              return -1;
+-      *can_write = 1;
+-      fd = open(file, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
+-      if (fd < 0) {
+-              if (errno == EROFS) {
+-                      *can_write = 0;
+-                      condlog(3, "Cannot open bindings file [%s] read/write. "
+-                              " trying readonly", file);
+-                      fd = open(file, O_RDONLY);
+-                      if (fd < 0) {
+-                              condlog(0, "Cannot open bindings file [%s] "
+-                                      "readonly : %s", file, strerror(errno));
+-                              return -1;
+-                      }
+-              }
+-              else {
+-                      condlog(0, "Cannot open bindings file [%s] : %s", file,
+-                              strerror(errno));
+-                      return -1;
+-              }
+-      }
+-      if (*can_write && lock_bindings_file(fd) < 0)
+-              goto fail;
+-
+-      memset(&s, 0, sizeof(s));
+-      if (fstat(fd, &s) < 0){
+-              condlog(0, "Cannot stat bindings file : %s", strerror(errno));
+-              goto fail;
+-      }
+-      if (s.st_size == 0) {
+-              if (*can_write == 0)
+-                      goto fail;
+-              /* If bindings file is empty, write the header */
+-              size_t len = strlen(BINDINGS_FILE_HEADER);
+-              if (write_all(fd, BINDINGS_FILE_HEADER, len) != len) {
+-                      condlog(0,
+-                              "Cannot write header to bindings file : %s",
+-                              strerror(errno));
+-                      /* cleanup partially written header */
+-                      if (ftruncate(fd, 0))
+-                              condlog(0, "Cannot truncate the header : %s",
+-                                      strerror(errno));
+-                      goto fail;
+-              }
+-              fsync(fd);
+-              condlog(3, "Initialized new bindings file [%s]", file);
+-      }
+-
+-      return fd;
+-
+-fail:
+-      close(fd);
+-      return -1;
+-}
+ static int
+ format_devname(char *name, int id, int len, char *prefix)
+@@ -370,7 +223,7 @@ get_user_friendly_alias(char *wwid, char
+               return NULL;
+       }
+-      fd = open_bindings_file(file, &can_write);
++      fd = open_file(file, &can_write, BINDINGS_FILE_HEADER);
+       if (fd < 0)
+               return NULL;
+@@ -414,7 +267,7 @@ get_user_friendly_wwid(char *alias, char
+               return NULL;
+       }
+-      fd = open_bindings_file(file, &unused);
++      fd = open_file(file, &unused, BINDINGS_FILE_HEADER);
+       if (fd < 0)
+               return NULL;
+Index: multipath-tools-120518/libmultipath/alias.h
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/alias.h
++++ multipath-tools-120518/libmultipath/alias.h
+@@ -1,4 +1,3 @@
+-#define BINDINGS_FILE_TIMEOUT 30
+ #define BINDINGS_FILE_HEADER \
+ "# Multipath bindings, Version : 1.0\n" \
+ "# NOTE: this file is automatically maintained by the multipath program.\n" \
+Index: multipath-tools-120518/libmultipath/configure.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/configure.c
++++ multipath-tools-120518/libmultipath/configure.c
+@@ -37,6 +37,7 @@
+ #include "prio.h"
+ #include "util.h"
+ #include "uxsock.h"
++#include "wwids.h"
+ extern int
+ setup_map (struct multipath * mpp, char * params, int params_size)
+@@ -407,6 +408,8 @@ domap (struct multipath * mpp, char * pa
+                * DM_DEVICE_CREATE, DM_DEVICE_RENAME, or DM_DEVICE_RELOAD
+                * succeeded
+                */
++              if (mpp->action == ACT_CREATE)
++                      remember_wwid(mpp->wwid);
+               if (!conf->daemon) {
+                       /* multipath client mode */
+                       dm_switchgroup(mpp->alias, mpp->bestpg);
+Index: multipath-tools-120518/libmultipath/defaults.h
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/defaults.h
++++ multipath-tools-120518/libmultipath/defaults.h
+@@ -24,5 +24,6 @@
+ #define DEFAULT_SOCKET                "/var/run/multipathd.sock"
+ #define DEFAULT_CONFIGFILE    "/etc/multipath.conf"
+ #define DEFAULT_BINDINGS_FILE "/etc/multipath/bindings"
++#define DEFAULT_WWIDS_FILE    "/etc/multipath/wwids"
+ char * set_default (char * str);
+Index: multipath-tools-120518/libmultipath/file.c
+===================================================================
+--- /dev/null
++++ multipath-tools-120518/libmultipath/file.c
+@@ -0,0 +1,180 @@
++/*
++ * Copyright (c) 2005 Christophe Varoqui
++ * Copyright (c) 2005 Benjamin Marzinski, Redhat
++ */
++#include <stdlib.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++#include <errno.h>
++#include <unistd.h>
++#include <string.h>
++#include <limits.h>
++#include <stdio.h>
++#include <signal.h>
++
++#include "file.h"
++#include "debug.h"
++#include "uxsock.h"
++
++
++/*
++ * significant parts of this file were taken from iscsi-bindings.c of the
++ * linux-iscsi project.
++ * Copyright (C) 2002 Cisco Systems, 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.
++ *
++ * See the file COPYING included with this distribution for more details.
++ */
++
++static int
++ensure_directories_exist(char *str, mode_t dir_mode)
++{
++      char *pathname;
++      char *end;
++      int err;
++
++      pathname = strdup(str);
++      if (!pathname){
++              condlog(0, "Cannot copy file pathname %s : %s",
++                      str, strerror(errno));
++              return -1;
++      }
++      end = pathname;
++      /* skip leading slashes */
++      while (end && *end && (*end == '/'))
++              end++;
++
++      while ((end = strchr(end, '/'))) {
++              /* if there is another slash, make the dir. */
++              *end = '\0';
++              err = mkdir(pathname, dir_mode);
++              if (err && errno != EEXIST) {
++                      condlog(0, "Cannot make directory [%s] : %s",
++                              pathname, strerror(errno));
++                      free(pathname);
++                      return -1;
++              }
++              if (!err)
++                      condlog(3, "Created dir [%s]", pathname);
++              *end = '/';
++              end++;
++      }
++      free(pathname);
++      return 0;
++}
++
++static void
++sigalrm(int sig)
++{
++      /* do nothing */
++}
++
++static int
++lock_file(int fd, char *file_name)
++{
++      struct sigaction act, oldact;
++      sigset_t set, oldset;
++      struct flock lock;
++      int err;
++
++      memset(&lock, 0, sizeof(lock));
++      lock.l_type = F_WRLCK;
++      lock.l_whence = SEEK_SET;
++
++      act.sa_handler = sigalrm;
++      sigemptyset(&act.sa_mask);
++      act.sa_flags = 0;
++      sigemptyset(&set);
++      sigaddset(&set, SIGALRM);
++
++      sigaction(SIGALRM, &act, &oldact);
++      sigprocmask(SIG_UNBLOCK, &set, &oldset);
++
++      alarm(FILE_TIMEOUT);
++      err = fcntl(fd, F_SETLKW, &lock);
++      alarm(0);
++
++      if (err) {
++              if (errno != EINTR)
++                      condlog(0, "Cannot lock %s : %s", file_name,
++                              strerror(errno));
++              else
++                      condlog(0, "%s is locked. Giving up.", file_name);
++      }
++
++      sigprocmask(SIG_SETMASK, &oldset, NULL);
++      sigaction(SIGALRM, &oldact, NULL);
++      return err;
++}
++
++int
++open_file(char *file, int *can_write, char *header)
++{
++      int fd;
++      struct stat s;
++
++      if (ensure_directories_exist(file, 0700))
++              return -1;
++      *can_write = 1;
++      fd = open(file, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
++      if (fd < 0) {
++              if (errno == EROFS) {
++                      *can_write = 0;
++                      condlog(3, "Cannot open file [%s] read/write. "
++                              " trying readonly", file);
++                      fd = open(file, O_RDONLY);
++                      if (fd < 0) {
++                              condlog(0, "Cannot open file [%s] "
++                                      "readonly : %s", file, strerror(errno));
++                              return -1;
++                      }
++              }
++              else {
++                      condlog(0, "Cannot open file [%s] : %s", file,
++                              strerror(errno));
++                      return -1;
++              }
++      }
++      if (*can_write && lock_file(fd, file) < 0)
++              goto fail;
++
++      memset(&s, 0, sizeof(s));
++      if (fstat(fd, &s) < 0){
++              condlog(0, "Cannot stat file %s : %s", file, strerror(errno));
++              goto fail;
++      }
++      if (s.st_size == 0) {
++              if (*can_write == 0)
++                      goto fail;
++              /* If file is empty, write the header */
++              size_t len = strlen(header);
++              if (write_all(fd, header, len) != len) {
++                      condlog(0,
++                              "Cannot write header to file %s : %s", file,
++                              strerror(errno));
++                      /* cleanup partially written header */
++                      if (ftruncate(fd, 0))
++                              condlog(0, "Cannot truncate header : %s",
++                                      strerror(errno));
++                      goto fail;
++              }
++              fsync(fd);
++              condlog(3, "Initialized new file [%s]", file);
++      }
++
++      return fd;
++
++fail:
++      close(fd);
++      return -1;
++}
+Index: multipath-tools-120518/libmultipath/file.h
+===================================================================
+--- /dev/null
++++ multipath-tools-120518/libmultipath/file.h
+@@ -0,0 +1,11 @@
++/*
++ * Copyright (c) 2010 Benjamin Marzinski, Redhat
++ */
++
++#ifndef _FILE_H
++#define _FILE_H
++
++#define FILE_TIMEOUT 30
++int open_file(char *file, int *can_write, char *header);
++
++#endif /* _FILE_H */
+Index: multipath-tools-120518/multipath/main.c
+===================================================================
+--- multipath-tools-120518.orig/multipath/main.c
++++ multipath-tools-120518/multipath/main.c
+@@ -53,6 +53,7 @@
+ #include <errno.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
++#include <wwids.h>
+ #include "dev_t.h"
+ int logsink;
+@@ -82,7 +83,7 @@ usage (char * progname)
+ {
+       fprintf (stderr, VERSION_STRING);
+       fprintf (stderr, "Usage:\n");
+-      fprintf (stderr, "  %s [-d] [-r] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
++      fprintf (stderr, "  %s [-c] [-d] [-r] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
+       fprintf (stderr, "  %s -l|-ll|-f [-v lvl] [-b fil] [dev]\n", progname);
+       fprintf (stderr, "  %s -F [-v lvl]\n", progname);
+       fprintf (stderr, "  %s -t\n", progname);
+@@ -95,6 +96,7 @@ usage (char * progname)
+               "  -ll     show multipath topology (maximum info)\n" \
+               "  -f      flush a multipath device map\n" \
+               "  -F      flush all multipath device maps\n" \
++              "  -c      check if a device should be a path in a multipath device\n" \
+               "  -q      allow queue_if_no_path when multipathd is not running\n"\
+               "  -d      dry run, do not create or update devmaps\n" \
+               "  -t      dump internal hardware table\n" \
+@@ -209,6 +211,7 @@ get_dm_mpvec (vector curmp, vector pathv
+               if (!conf->dry_run)
+                       reinstate_paths(mpp);
++              remember_wwid(mpp->wwid);
+       }
+       return 0;
+ }
+@@ -259,9 +262,13 @@ configure (void)
+        * if we have a blacklisted device parameter, exit early
+        */
+       if (dev &&
+-          (filter_devnode(conf->blist_devnode, conf->elist_devnode, dev) > 0))
+-                      goto out;
+-
++          (filter_devnode(conf->blist_devnode,
++                          conf->elist_devnode, dev) > 0)) {
++              if (conf->dry_run == 2)
++                      printf("%s is not a valid multipath device path\n",
++                             conf->dev);
++              goto out;
++      }
+       /*
+        * scope limiting must be translated into a wwid
+        * failing the translation is fatal (by policy)
+@@ -277,6 +284,15 @@ configure (void)
+               if (filter_wwid(conf->blist_wwid, conf->elist_wwid,
+                               refwwid) > 0)
+                       goto out;
++              if (conf->dry_run == 2) {
++                      if (check_wwids_file(refwwid, 0) == 0){
++                              printf("%s is a valid multipath device path\n", conf->dev);
++                              r = 0;
++                      }
++                      else
++                              printf("%s is not a valid multipath device path\n", conf->dev);
++                      goto out;
++              }
+       }
+       /*
+@@ -412,7 +428,7 @@ main (int argc, char *argv[])
+       if (load_config(DEFAULT_CONFIGFILE))
+               exit(1);
+-      while ((arg = getopt(argc, argv, ":dhl::FfM:v:p:b:Brtq")) != EOF ) {
++      while ((arg = getopt(argc, argv, ":dchl::FfM:v:p:b:Brtq")) != EOF ) {
+               switch(arg) {
+               case 1: printf("optarg : %s\n",optarg);
+                       break;
+@@ -434,8 +450,12 @@ main (int argc, char *argv[])
+               case 'q':
+                       conf->allow_queueing = 1;
+                       break;
++              case 'c':
++                      conf->dry_run = 2;
++                      break;
+               case 'd':
+-                      conf->dry_run = 1;
++                      if (!conf->dry_run)
++                              conf->dry_run = 1;
+                       break;
+               case 'f':
+                       conf->remove = FLUSH_ONE;
+@@ -517,6 +537,11 @@ main (int argc, char *argv[])
+       }
+       dm_init();
++      if (conf->dry_run == 2 &&
++          (!conf->dev || conf->dev_type == DEV_DEVMAP)) {
++              condlog(0, "the -c option requires a path to check");
++              goto out;
++      }
+       if (conf->remove == FLUSH_ONE) {
+               if (conf->dev_type == DEV_DEVMAP)
+                       r = dm_flush_map(conf->dev);
+Index: multipath-tools-120518/libmultipath/Makefile
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/Makefile
++++ multipath-tools-120518/libmultipath/Makefile
+@@ -15,7 +15,7 @@ OBJS = memory.o parser.o vector.o devmap
+        pgpolicies.o debug.o regex.o defaults.o uevent.o \
+        switchgroup.o uxsock.o print.o alias.o log_pthread.o \
+        log.o configure.o structs_vec.o sysfs.o prio.o checkers.o \
+-       lock.o waiter.o
++       lock.o waiter.o file.o wwids.o
+ LIBDM_API_FLUSH = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_no_flush' /usr/include/libdevmapper.h)
+Index: multipath-tools-120518/libmultipath/wwids.c
+===================================================================
+--- /dev/null
++++ multipath-tools-120518/libmultipath/wwids.c
+@@ -0,0 +1,139 @@
++#include <stdlib.h>
++#include <errno.h>
++#include <unistd.h>
++#include <string.h>
++#include <limits.h>
++#include <stdio.h>
++
++#include "checkers.h"
++#include "vector.h"
++#include "structs.h"
++#include "debug.h"
++#include "uxsock.h"
++#include "file.h"
++#include "wwids.h"
++#include "defaults.h"
++
++/*
++ * Copyright (c) 2010 Benjamin Marzinski, Redhat
++ */
++
++static int
++lookup_wwid(FILE *f, char *wwid) {
++      int c;
++      char buf[LINE_MAX];
++      int count;
++
++      while ((c = fgetc(f)) != EOF){
++              if (c != '/') {
++                      if (fgets(buf, LINE_MAX, f) == NULL)
++                              return 0;
++                      else
++                              continue;
++              }
++              count = 0;
++              while ((c = fgetc(f)) != '/') {
++                      if (c == EOF)
++                              return 0;
++                      if (count >= WWID_SIZE - 1)
++                              goto next;
++                      if (wwid[count] == '\0')
++                              goto next;
++                      if (c != wwid[count++])
++                              goto next;
++              }
++              if (wwid[count] == '\0')
++                      return 1;
++next:
++              if (fgets(buf, LINE_MAX, f) == NULL)
++                      return 0;
++      }
++      return 0;
++}
++
++static int
++write_out_wwid(int fd, char *wwid) {
++      int ret;
++      off_t offset;
++      char buf[WWID_SIZE + 3];
++
++      ret = snprintf(buf, WWID_SIZE + 3, "/%s/\n", wwid);
++      if (ret >= (WWID_SIZE + 3) || ret < 0){
++              condlog(0, "can't format wwid for writing (%d) : %s",
++                      ret, strerror(errno));
++              return -1;
++      }
++      offset = lseek(fd, 0, SEEK_END);
++      if (offset < 0) {
++              condlog(0, "can't seek to the end of wwids file : %s",
++                      strerror(errno));
++              return -1;
++      }
++      if (write_all(fd, buf, strlen(buf)) != strlen(buf)) {
++              condlog(0, "cannot write wwid to wwids file : %s",
++                      strerror(errno));
++              if (ftruncate(fd, offset))
++                      condlog(0, "cannot truncate failed wwid write : %s",
++                              strerror(errno));
++              return -1;
++      }
++      return 1;
++}
++
++int
++check_wwids_file(char *wwid, int write_wwid)
++{
++      int fd, can_write, found, ret;
++      FILE *f;
++      fd = open_file(DEFAULT_WWIDS_FILE, &can_write, WWIDS_FILE_HEADER);
++      if (fd < 0)
++              return -1;
++
++      f = fdopen(fd, "r");
++      if (!f) {
++              condlog(0,"can't fdopen wwids file : %s", strerror(errno));
++              close(fd);
++              return -1;
++      }
++      found = lookup_wwid(f, wwid);
++      if (found) {
++              ret = 0;
++              goto out;
++      }
++      if (!write_wwid) {
++              ret = -1;
++              goto out;
++      }
++      if (!can_write) {
++              condlog(0, "wwids file is read-only. Can't write wwid");
++              ret = -1;
++              goto out;
++      }
++
++      if (fflush(f) != 0) {
++              condlog(0, "cannot fflush wwids file stream : %s",
++                      strerror(errno));
++              ret = -1;
++              goto out;
++      }
++
++      ret = write_out_wwid(fd, wwid);
++out:
++      fclose(f);
++      return ret;
++}
++
++int
++remember_wwid(char *wwid)
++{
++      int ret = check_wwids_file(wwid, 1);
++      if (ret < 0){
++              condlog(3, "failed writing wwid %s to wwids file", wwid);
++              return -1;
++      }
++      if (ret == 1)
++              condlog(3, "wrote wwid %s to wwids file", wwid);
++      else
++              condlog(4, "wwid %s already in wwids file", wwid);
++      return 0;
++}
+Index: multipath-tools-120518/libmultipath/wwids.h
+===================================================================
+--- /dev/null
++++ multipath-tools-120518/libmultipath/wwids.h
+@@ -0,0 +1,18 @@
++/*
++ * Copyright (c) 2010 Benjamin Marzinski, Redhat
++ */
++
++#ifndef _WWIDS_H
++#define _WWIDS_H
++
++#define WWIDS_FILE_HEADER \
++"# Multipath wwids, Version : 1.0\n" \
++"# NOTE: This file is automatically maintained by multipath and multipathd.\n" \
++"# You should not need to edit this file in normal circumstances.\n" \
++"#\n" \
++"# Valid WWIDs:\n"
++
++int remember_wwid(char *wwid);
++int check_wwids_file(char *wwid, int write_wwid);
++
++#endif /* _WWIDS_H */
+Index: multipath-tools-120518/libmultipath/discovery.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/discovery.c
++++ multipath-tools-120518/libmultipath/discovery.c
+@@ -810,6 +810,8 @@ get_uid (struct path * pp)
+       memset(pp->wwid, 0, WWID_SIZE);
+       value = udev_device_get_property_value(pp->udev, pp->uid_attribute);
++      if ((!value || strlen(value) == 0) && conf->dry_run == 2)
++              value = getenv(pp->uid_attribute);
+       if (value && strlen(value)) {
+               size_t len = WWID_SIZE;
diff --git a/multipath-tools/patches/0002-RH-path-checker.patch b/multipath-tools/patches/0002-RH-path-checker.patch
deleted file mode 100644 (file)
index 37864ed..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-From f9ddbc18b7580f75c15bf6f3e10f08d6f016caca Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Tue, 13 Oct 2009 08:18:00 +0200
-Subject: [PATCH 02/12] RH: path checker
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
----
-:100644 100644 e06dc52... 47107a2... M libmultipath/checkers/tur.c
-:100644 100644 98d1618... 00aa5ea... M libmultipath/discovery.c
-:100644 100644 7283f36... 17cd4af... M libmultipath/discovery.h
-:100644 100644 90de6df... 5d3625a... M multipathd/main.c
- libmultipath/checkers/tur.c |    1 -
- libmultipath/discovery.c    |   62 +++++++++++++++++++++++++++++++++---------
- libmultipath/discovery.h    |    2 +
- multipathd/main.c           |   21 +-------------
- 4 files changed, 52 insertions(+), 34 deletions(-)
-
-Index: multipath-tools/libmultipath/checkers/tur.c
-===================================================================
---- multipath-tools.orig/libmultipath/checkers/tur.c
-+++ multipath-tools/libmultipath/checkers/tur.c
-@@ -69,7 +69,6 @@ libcheck_check (struct checker * c)
-               case DID_NO_CONNECT:
-               case DID_BAD_TARGET:
-               case DID_ABORT:
--              case DID_TRANSPORT_DISRUPTED:
-               case DID_TRANSPORT_FAILFAST:
-                       break;
-               default:
-Index: multipath-tools/libmultipath/discovery.c
-===================================================================
---- multipath-tools.orig/libmultipath/discovery.c
-+++ multipath-tools/libmultipath/discovery.c
-@@ -616,10 +616,9 @@ struct sysfs_device *sysfs_device_from_p
- }
- int
--path_offline (struct path * pp)
-+path_state (struct path * pp, char * buff)
- {
-       struct sysfs_device * parent;
--      char buff[SCSI_STATE_SIZE];
-       pp->sysdev = sysfs_device_from_path(pp);
-       if (!pp->sysdev) {
-@@ -641,6 +640,16 @@ path_offline (struct path * pp)
-               return 1;
-       condlog(3, "%s: state = %s", pp->dev, buff);
-+      return 0;
-+}
-+
-+int
-+path_offline (struct path * pp)
-+{
-+      char buff[SCSI_STATE_SIZE];
-+
-+      if (path_state(pp, buff))
-+              return 1;
-       if (!strncmp(buff, "offline", 7)) {
-               pp->offline = 1;
-@@ -650,6 +659,21 @@ path_offline (struct path * pp)
-       return 0;
- }
-+int
-+path_blocked (struct path * pp)
-+{
-+      char buff[SCSI_STATE_SIZE];
-+
-+      if (pp->bus != SYSFS_BUS_SCSI)
-+              return 0;
-+      if (path_state(pp, buff))
-+              return 0;
-+      if (!strncmp(buff, "blocked", 7)) {
-+              return 1;
-+      }
-+      return 0;
-+}
-+
- extern int
- sysfs_pathinfo(struct path * pp)
- {
-@@ -736,36 +760,43 @@ cciss_ioctl_pathinfo (struct path * pp, 
-       return 0;
- }
--static int
--get_state (struct path * pp)
-+int
-+get_state (struct path * pp, int daemon)
- {
-       struct checker * c = &pp->checker;
-+      int state;
-       condlog(3, "%s: get_state", pp->dev);
-       if (!checker_selected(c)) {
-+              if (daemon)
-+                      pathinfo(pp, conf->hwtable, DI_SYSFS);
-               select_checker(pp);
-               if (!checker_selected(c)) {
-                       condlog(3, "%s: No checker selected", pp->dev);
--                      return 1;
-+                      return PATH_UNCHECKED;
-               }
-               checker_set_fd(c, pp->fd);
-               if (checker_init(c, pp->mpp?&pp->mpp->mpcontext:NULL)) {
-                       condlog(3, "%s: checker init failed", pp->dev);
--                      return 1;
-+                      return PATH_UNCHECKED;
-               }
-       }
-       if (path_offline(pp)) {
-               condlog(3, "%s: path offline", pp->dev);
--              pp->state = PATH_DOWN;
--              return 0;
-+              return PATH_DOWN;
-       }
--      pp->state = checker_check(c);
--      condlog(3, "%s: state = %i", pp->dev, pp->state);
--      if (pp->state == PATH_DOWN && strlen(checker_message(c)))
-+      if (daemon) {
-+              if (path_blocked(pp))
-+                      return PATH_PENDING;
-+              checker_set_async(c);
-+      }
-+      state = checker_check(c);
-+      condlog(3, "%s: state = %i", pp->dev, state);
-+      if (state == PATH_DOWN && strlen(checker_message(c)))
-               condlog(3, "%s: checker msg is \"%s\"",
-                       pp->dev, checker_message(c));
--      return 0;
-+      return state;
- }
- static int
-@@ -850,8 +881,11 @@ pathinfo (struct path *pp, vector hwtabl
-           cciss_ioctl_pathinfo(pp, mask))
-               goto blank;
--      if (mask & DI_CHECKER && get_state(pp))
--              goto blank;
-+      if (mask & DI_CHECKER) {
-+              pp->state = get_state(pp, 0);
-+              if (pp->state == PATH_UNCHECKED || pp->state == PATH_WILD)
-+                      goto blank;
-+      }
-        /*
-         * Retrieve path priority, even for PATH_DOWN paths if it has never
-Index: multipath-tools/libmultipath/discovery.h
-===================================================================
---- multipath-tools.orig/libmultipath/discovery.h
-+++ multipath-tools/libmultipath/discovery.h
-@@ -30,6 +30,8 @@ int path_discovery (vector pathvec, stru
- int do_tur (char *);
- int devt2devname (char *, char *);
- int path_offline (struct path *);
-+int get_state (struct path * pp, int daemon);
-+int path_blocked (struct path *);
- int pathinfo (struct path *, vector hwtable, int mask);
- struct path * store_pathinfo (vector pathvec, vector hwtable,
-                             char * devname, int flag);
-Index: multipath-tools/multipathd/main.c
-===================================================================
---- multipath-tools.orig/multipathd/main.c
-+++ multipath-tools/multipathd/main.c
-@@ -908,26 +908,9 @@ check_path (struct vectors * vecs, struc
-        */
-       pp->tick = conf->checkint;
--      if (!checker_selected(&pp->checker)) {
--              pathinfo(pp, conf->hwtable, DI_SYSFS);
--              select_checker(pp);
--      }
--      if (!checker_selected(&pp->checker)) {
--              condlog(0, "%s: checker is not set", pp->dev);
--              return;
--      }
--      /*
--       * Set checker in async mode.
--       * Honored only by checker implementing the said mode.
--       */
--      checker_set_async(&pp->checker);
--
--      if (path_offline(pp))
--              newstate = PATH_DOWN;
--      else
--              newstate = checker_check(&pp->checker);
-+      newstate = get_state(pp, 1);
--      if (newstate < 0) {
-+      if (newstate == PATH_WILD || newstate == PATH_UNCHECKED) {
-               condlog(2, "%s: unusable path", pp->dev);
-               pathinfo(pp, conf->hwtable, 0);
-               return;
diff --git a/multipath-tools/patches/0002-for-upstream-add-tmo-config-options.patch b/multipath-tools/patches/0002-for-upstream-add-tmo-config-options.patch
deleted file mode 100644 (file)
index dba3659..0000000
+++ /dev/null
@@ -1,511 +0,0 @@
----
- libmultipath/config.h      |    4 +
- libmultipath/configure.c   |    3 +
- libmultipath/dict.c        |  102 +++++++++++++++++++++++++++++++++++++++++++++
- libmultipath/discovery.c   |   37 ++++++++++++++++
- libmultipath/discovery.h   |    1 
- libmultipath/propsel.c     |   42 ++++++++++++++++++
- libmultipath/propsel.h     |    2 
- libmultipath/structs.h     |    2 
- libmultipath/sysfs.c       |   56 ++++++++++++++++++++++++
- libmultipath/sysfs.h       |    3 -
- multipath.conf.annotated   |   38 ++++++++++++++++
- multipath/multipath.conf.5 |   15 ++++++
- 12 files changed, 303 insertions(+), 2 deletions(-)
-
-Index: multipath-tools-091020/multipath.conf.annotated
-===================================================================
---- multipath-tools-091020.orig/multipath.conf.annotated
-+++ multipath-tools-091020/multipath.conf.annotated
-@@ -191,6 +191,25 @@
- #     # default : determined by the process
- #     gid disk
- #
-+#     #
-+#     # name    : fast_io_fail_tmo
-+#     # scope   : multipath & multipathd
-+#     # desc    : The number of seconds the scsi layer will wait after a
-+#     #           problem has been detected on a FC remote port before failing
-+#     #           IO to devices on that remote port.
-+#     # values  : off | n >= 0 (smaller than dev_loss_tmo)
-+#     # default : determined by the OS
-+#     fast_io_fail_tmo 5
-+#
-+#     #
-+#     # name    : dev_loss_tmo
-+#     # scope   : multipath & multipathd
-+#     # desc    : The number of seconds the scsi layer will wait after a
-+#     #           problem has been detected on a FC remote port before
-+#     #           removing it from the system.
-+#     # values  : n > 0
-+#     # default : determined by the OS
-+#     dev_loss_tmo 600
- #}
- #     
- ##
-@@ -504,7 +523,6 @@
- #             # desc    : If set to "yes", multipathd will disable queueing
- #             #           when the last path to a device has been deleted.
- #             # values  : yes|no
--#             # default : no
- #             #
- #             flush_on_last_del       yes
- #
-@@ -514,6 +532,24 @@
- #             # desc    : product strings to blacklist for this vendor
- #             #
- #             product_blacklist       LUN_Z
-+#
-+#             #
-+#             # name    : fast_io_fail_tmo
-+#             # scope   : multipath & multipathd
-+#             # desc    : The number of seconds the scsi layer will wait after
-+#             #           a problem has been detected on a FC remote port
-+#             #           before failing IO to devices on that remote port.
-+#             # values  : off | n >= 0 (smaller than dev_loss_tmo)
-+#             fast_io_fail_tmo 5
-+#
-+#             #
-+#             # name    : dev_loss_tmo
-+#             # scope   : multipath & multipathd
-+#             # desc    : The number of seconds the scsi layer will wait after
-+#             #           a problem has been detected on a FC remote port
-+#             #           before removing it from the system.
-+#             # values  : n > 0
-+#             dev_loss_tmo 600
- #     }
- #     device {
- #             vendor                  "COMPAQ  "
-Index: multipath-tools-091020/multipath/multipath.conf.5
-===================================================================
---- multipath-tools-091020.orig/multipath/multipath.conf.5
-+++ multipath-tools-091020/multipath/multipath.conf.5
-@@ -240,6 +240,17 @@ this to the system limit from /proc/sys/
- maximum number of open fds is taken from the calling process. It is usually
- 1024. To be safe, this should be set to the maximum number of paths plus 32,
- if that number is greated than 1024.
-+.TP
-+.B fast_io_fail_tmo
-+Specify the number of seconds the scsi layer will wait after a problem has been
-+detected on a FC remote port before failing IO to devices on that remote port.
-+This should be smaller than dev_loss_tmo. Setting this to
-+.I off
-+will disable the timeout.
-+.TP
-+.B dev_loss_tmo
-+Specify the number of seconds the scsi layer will wait after a problem has
-+been detected on a FC remote port before removing it from the system.
- .
- .SH "blacklist section"
- The
-@@ -384,6 +395,10 @@ section:
- .B no_path_retry
- .TP
- .B rr_min_io
-+.TP
-+.B fast_io_fail_tmo
-+.TP
-+.B dev_loss_tmo
- .RE
- .PD
- .LP
-Index: multipath-tools-091020/libmultipath/dict.c
-===================================================================
---- multipath-tools-091020.orig/libmultipath/dict.c
-+++ multipath-tools-091020/libmultipath/dict.c
-@@ -37,6 +37,35 @@ polling_interval_handler(vector strvec)
- }
- static int
-+def_fast_io_fail_handler(vector strvec)
-+{
-+      char * buff;
-+
-+      buff = set_value(strvec);
-+      if (strlen(buff) == 3 && !strcmp(buff, "off"))
-+              conf->fast_io_fail = -1;
-+      else if (sscanf(buff, "%d", &conf->fast_io_fail) != 1 ||
-+               conf->fast_io_fail < -1)
-+              conf->fast_io_fail = 0;
-+
-+      FREE(buff);
-+      return 0;
-+}
-+
-+static int
-+def_dev_loss_handler(vector strvec)
-+{
-+      char * buff;
-+
-+      buff = set_value(strvec);
-+      if (sscanf(buff, "%u", &conf->dev_loss) != 1)
-+              conf->dev_loss = 0;
-+
-+      FREE(buff);
-+      return 0;
-+}
-+
-+static int
- verbosity_handler(vector strvec)
- {
-       char * buff;
-@@ -628,6 +657,37 @@ bl_product_handler(vector strvec)
- }
- static int
-+hw_fast_io_fail_handler(vector strvec)
-+{
-+      char * buff;
-+      struct hwentry * hwe = VECTOR_LAST_SLOT(conf->hwtable);
-+
-+      buff = set_value(strvec);
-+      if (strlen(buff) == 3 && !strcmp(buff, "off"))
-+              hwe->fast_io_fail = -1;
-+      else if (sscanf(buff, "%d", &hwe->fast_io_fail) != 1 ||
-+               hwe->fast_io_fail < -1)
-+              hwe->fast_io_fail = 0;
-+
-+      FREE(buff);
-+      return 0;
-+}
-+
-+static int
-+hw_dev_loss_handler(vector strvec)
-+{
-+      char * buff;
-+      struct hwentry * hwe = VECTOR_LAST_SLOT(conf->hwtable);
-+
-+      buff = set_value(strvec);
-+      if (sscanf(buff, "%u", &hwe->dev_loss) != 1)
-+              hwe->dev_loss = 0;
-+
-+      FREE(buff);
-+      return 0;
-+}
-+
-+static int
- hw_pgpolicy_handler(vector strvec)
- {
-       char * buff;
-@@ -1390,6 +1450,26 @@ snprint_mp_flush_on_last_del (char * buf
- }
- static int
-+snprint_hw_fast_io_fail(char * buff, int len, void * data)
-+{
-+      struct hwentry * hwe = (struct hwentry *)data;
-+      if (!hwe->fast_io_fail)
-+              return 0;
-+      if (hwe->fast_io_fail == -1)
-+              return snprintf(buff, len, "off");
-+      return snprintf(buff, len, "%d", hwe->fast_io_fail);
-+}
-+
-+static int
-+snprint_hw_dev_loss(char * buff, int len, void * data)
-+{
-+      struct hwentry * hwe = (struct hwentry *)data;
-+      if (!hwe->dev_loss)
-+              return 0;
-+      return snprintf(buff, len, "%u", hwe->dev_loss);
-+}
-+
-+static int
- snprint_hw_vendor (char * buff, int len, void * data)
- {
-       struct hwentry * hwe = (struct hwentry *)data;
-@@ -1640,6 +1720,24 @@ snprint_def_polling_interval (char * buf
- }
- static int
-+snprint_def_fast_io_fail(char * buff, int len, void * data)
-+{
-+      if (!conf->fast_io_fail)
-+              return 0;
-+      if (conf->fast_io_fail == -1)
-+              return snprintf(buff, len, "off");
-+      return snprintf(buff, len, "%d", conf->fast_io_fail);
-+}
-+
-+static int
-+snprint_def_dev_loss(char * buff, int len, void * data)
-+{
-+      if (!conf->dev_loss)
-+              return 0;
-+      return snprintf(buff, len, "%u", conf->dev_loss);
-+}
-+
-+static int
- snprint_def_verbosity (char * buff, int len, void * data)
- {
-       if (conf->checkint == DEFAULT_VERBOSITY)
-@@ -1937,6 +2035,8 @@ init_keywords(void)
-       install_keyword("mode", &def_mode_handler, &snprint_def_mode);
-       install_keyword("uid", &def_uid_handler, &snprint_def_uid);
-       install_keyword("gid", &def_gid_handler, &snprint_def_gid);
-+      install_keyword("fast_io_fail_tmo", &def_fast_io_fail_handler, &snprint_def_fast_io_fail);
-+      install_keyword("dev_loss_tmo", &def_dev_loss_handler, &snprint_def_dev_loss);
-       __deprecated install_keyword("default_selector", &def_selector_handler, NULL);
-       __deprecated install_keyword("default_path_grouping_policy", &def_pgpolicy_handler, NULL);
-       __deprecated install_keyword("default_getuid_callout", &def_getuid_callout_handler, NULL);
-@@ -1991,6 +2091,8 @@ init_keywords(void)
-       install_keyword("rr_min_io", &hw_minio_handler, &snprint_hw_rr_min_io);
-       install_keyword("pg_timeout", &hw_pg_timeout_handler, &snprint_hw_pg_timeout);
-       install_keyword("flush_on_last_del", &hw_flush_on_last_del_handler, &snprint_hw_flush_on_last_del);
-+      install_keyword("fast_io_fail_tmo", &hw_fast_io_fail_handler, &snprint_hw_fast_io_fail);
-+      install_keyword("dev_loss_tmo", &hw_dev_loss_handler, &snprint_hw_dev_loss);
-       install_sublevel_end();
-       install_keyword_root("multipaths", &multipaths_handler);
-Index: multipath-tools-091020/libmultipath/config.h
-===================================================================
---- multipath-tools-091020.orig/libmultipath/config.h
-+++ multipath-tools-091020/libmultipath/config.h
-@@ -31,6 +31,8 @@ struct hwentry {
-       int minio;
-       int pg_timeout;
-       int flush_on_last_del;
-+      int fast_io_fail;
-+      unsigned int dev_loss;
-       char * bl_product;
- };
-@@ -75,6 +77,8 @@ struct config {
-       int daemon;
-       int flush_on_last_del;
-       int attribute_flags;
-+      int fast_io_fail;
-+      unsigned int dev_loss;
-       uid_t uid;
-       gid_t gid;
-       mode_t mode;
-Index: multipath-tools-091020/libmultipath/propsel.c
-===================================================================
---- multipath-tools-091020.orig/libmultipath/propsel.c
-+++ multipath-tools-091020/libmultipath/propsel.c
-@@ -428,6 +428,48 @@ select_pg_timeout(struct multipath *mp)
- }
- extern int
-+select_fast_io_fail(struct multipath *mp)
-+{
-+      if (mp->hwe && mp->hwe->fast_io_fail) {
-+              mp->fast_io_fail = mp->hwe->fast_io_fail;
-+              if (mp->fast_io_fail == -1)
-+                      condlog(3, "%s: fast_io_fail_tmo = off (controller default)", mp->alias);
-+              else
-+                      condlog(3, "%s: fast_io_fail_tmo = %d (controller default)", mp->alias, mp->fast_io_fail);
-+              return 0;
-+      }
-+      if (conf->fast_io_fail) {
-+              mp->fast_io_fail = conf->fast_io_fail;
-+              if (mp->fast_io_fail == -1)
-+                      condlog(3, "%s: fast_io_fail_tmo = off (config file default)", mp->alias);
-+              else
-+                      condlog(3, "%s: fast_io_fail_tmo = %d (config file default)", mp->alias, mp->fast_io_fail);
-+              return 0;
-+      }
-+      mp->fast_io_fail = 0;
-+      return 0;
-+}
-+
-+extern int
-+select_dev_loss(struct multipath *mp)
-+{
-+      if (mp->hwe && mp->hwe->dev_loss) {
-+              mp->dev_loss = mp->hwe->dev_loss;
-+              condlog(3, "%s: dev_loss_tmo = %u (controller default)",
-+                      mp->alias, mp->dev_loss);
-+              return 0;
-+      }
-+      if (conf->dev_loss) {
-+              mp->dev_loss = conf->dev_loss;
-+              condlog(3, "%s: dev_loss_tmo = %u (config file default)",
-+                      mp->alias, mp->dev_loss);
-+              return 0;
-+      }
-+      mp->dev_loss = 0;
-+      return 0;
-+}
-+
-+extern int
- select_flush_on_last_del(struct multipath *mp)
- {
-       if (mp->flush_on_last_del == FLUSH_IN_PROGRESS)
-Index: multipath-tools-091020/libmultipath/structs.h
-===================================================================
---- multipath-tools-091020.orig/libmultipath/structs.h
-+++ multipath-tools-091020/libmultipath/structs.h
-@@ -166,6 +166,8 @@ struct multipath {
-       int pg_timeout;
-       int flush_on_last_del;
-       int attribute_flags;
-+      int fast_io_fail;
-+      unsigned int dev_loss;
-       uid_t uid;
-       gid_t gid;
-       mode_t mode;
-Index: multipath-tools-091020/libmultipath/configure.c
-===================================================================
---- multipath-tools-091020.orig/libmultipath/configure.c
-+++ multipath-tools-091020/libmultipath/configure.c
-@@ -70,7 +70,10 @@ setup_map (struct multipath * mpp)
-       select_mode(mpp);
-       select_uid(mpp);
-       select_gid(mpp);
-+      select_fast_io_fail(mpp);
-+      select_dev_loss(mpp);
-+      sysfs_set_scsi_tmo(mpp);
-       /*
-        * assign paths to path groups -- start with no groups and all paths
-        * in mpp->paths
-Index: multipath-tools-091020/libmultipath/discovery.c
-===================================================================
---- multipath-tools-091020.orig/libmultipath/discovery.c
-+++ multipath-tools-091020/libmultipath/discovery.c
-@@ -204,6 +204,43 @@ sysfs_get_fc_nodename (struct sysfs_devi
-       return 1;
- }
-+int
-+sysfs_set_scsi_tmo (struct multipath *mpp)
-+{
-+      char attr_path[SYSFS_PATH_SIZE];
-+      struct path *pp;
-+      int i;
-+      char value[11];
-+
-+      if (!mpp->dev_loss && !mpp->fast_io_fail)
-+              return 0;
-+      vector_foreach_slot(mpp->paths, pp, i) {
-+              if (safe_snprintf(attr_path, SYSFS_PATH_SIZE,
-+                                "/class/fc_remote_ports/rport-%d:%d-%d",
-+                                pp->sg_id.host_no, pp->sg_id.channel,
-+                                pp->sg_id.scsi_id)) {
-+                      condlog(0, "attr_path '/class/fc_remote_ports/rport-%d:%d-%d' too large", pp->sg_id.host_no, pp->sg_id.channel, pp->sg_id.scsi_id);
-+                      return 1;
-+              }
-+              if (mpp->dev_loss){
-+                      snprintf(value, 11, "%u", mpp->dev_loss);
-+                      if (sysfs_attr_set_value(attr_path, "dev_loss_tmo",
-+                                               value))
-+                              return 1;
-+              }
-+              if (mpp->fast_io_fail){
-+                      if (mpp->fast_io_fail == -1)
-+                              sprintf(value, "off");
-+                      else
-+                              snprintf(value, 11, "%u", mpp->fast_io_fail);
-+                      if (sysfs_attr_set_value(attr_path, "fast_io_fail",
-+                                               value))
-+                              return 1;
-+              }
-+      }
-+      return 0;
-+}
-+
- static int
- opennode (char * dev, int mode)
- {
-Index: multipath-tools-091020/libmultipath/propsel.h
-===================================================================
---- multipath-tools-091020.orig/libmultipath/propsel.h
-+++ multipath-tools-091020/libmultipath/propsel.h
-@@ -15,3 +15,5 @@ int select_minio(struct multipath *mp);
- int select_mode(struct multipath *mp);
- int select_uid(struct multipath *mp);
- int select_gid(struct multipath *mp);
-+int select_fast_io_fail(struct multipath *mp);
-+int select_dev_loss(struct multipath *mp);
-Index: multipath-tools-091020/libmultipath/discovery.h
-===================================================================
---- multipath-tools-091020.orig/libmultipath/discovery.h
-+++ multipath-tools-091020/libmultipath/discovery.h
-@@ -33,6 +33,7 @@ int path_offline (struct path *);
- int pathinfo (struct path *, vector hwtable, int mask);
- struct path * store_pathinfo (vector pathvec, vector hwtable,
-                             char * devname, int flag);
-+int sysfs_set_scsi_tmo (struct multipath *mpp);
- /*
-  * discovery bitmask
-Index: multipath-tools-091020/libmultipath/sysfs.c
-===================================================================
---- multipath-tools-091020.orig/libmultipath/sysfs.c
-+++ multipath-tools-091020/libmultipath/sysfs.c
-@@ -356,6 +356,62 @@ void sysfs_device_put(struct sysfs_devic
-       return;
- }
-+int
-+sysfs_attr_set_value(const char *devpath, const char *attr_name,
-+                   const char *value)
-+{
-+      char path_full[PATH_SIZE];
-+      int sysfs_len;
-+      struct stat statbuf;
-+      int fd, value_len, ret = -1;
-+
-+      dbg("open '%s'/'%s'", devpath, attr_name);
-+      sysfs_len = snprintf(path_full, PATH_SIZE, "%s%s/%s", sysfs_path,
-+                           devpath, attr_name);
-+      if (sysfs_len >= PATH_SIZE || sysfs_len < 0) {
-+              if (sysfs_len < 0)
-+                      dbg("cannot copy sysfs path %s%s/%s : %s", sysfs_path,
-+                          devpath, attr_name, strerror(errno));
-+              else
-+                      dbg("sysfs_path %s%s/%s too large", sysfs_path,
-+                          devpath, attr_name);
-+              goto out;
-+      }
-+
-+      if (stat(path_full, &statbuf) != 0) {
-+              dbg("stat '%s' failed: %s" path_full, strerror(errno));
-+              goto out;
-+      }
-+
-+      /* skip directories */
-+        if (S_ISDIR(statbuf.st_mode))
-+                goto out;
-+
-+      if ((statbuf.st_mode & S_IWUSR) == 0)
-+              goto out;
-+
-+      fd = open(path_full, O_WRONLY);
-+      if (fd < 0) {
-+              dbg("attribute '%s' can not be opened: %s",
-+                  path_full, strerror(errno));
-+              goto out;
-+      }
-+      value_len = strlen(value) + 1;
-+      ret = write(fd, value, value_len);
-+      if (ret == value_len)
-+              ret = 0;
-+      else if (ret < 0)
-+              dbg("write to %s failed: %s", path_full, strerror(errno));
-+      else {
-+              dbg("tried to write %d to %s. Wrote %d\n", value_len,
-+                  path_full, ret);
-+              ret = -1;
-+      }
-+out:
-+      return ret;
-+}
-+
-+
- char *sysfs_attr_get_value(const char *devpath, const char *attr_name)
- {
-       char path_full[PATH_SIZE];
-Index: multipath-tools-091020/libmultipath/sysfs.h
-===================================================================
---- multipath-tools-091020.orig/libmultipath/sysfs.h
-+++ multipath-tools-091020/libmultipath/sysfs.h
-@@ -22,5 +22,6 @@ void sysfs_device_put(struct sysfs_devic
- char *sysfs_attr_get_value(const char *devpath, const char *attr_name);
- int sysfs_resolve_link(char *path, size_t size);
- int sysfs_get_size (struct sysfs_device * dev, unsigned long long * size);
--
-+int sysfs_attr_set_value(const char *devpath, const char *attr_name,
-+                       const char *value);
- #endif
diff --git a/multipath-tools/patches/0003-RH-add-followover.patch b/multipath-tools/patches/0003-RH-add-followover.patch
new file mode 100644 (file)
index 0000000..9aeecf4
--- /dev/null
@@ -0,0 +1,235 @@
+---
+ libmultipath/dict.c        |   12 ++++++++++++
+ libmultipath/discovery.c   |    6 +++---
+ libmultipath/print.c       |    2 ++
+ libmultipath/structs.h     |    4 +++-
+ multipath/main.c           |    2 +-
+ multipath/multipath.conf.5 |    5 +++++
+ multipathd/main.c          |   35 ++++++++++++++++++++++++++++++++++-
+ 7 files changed, 60 insertions(+), 6 deletions(-)
+
+Index: multipath-tools-120518/libmultipath/dict.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/dict.c
++++ multipath-tools-120518/libmultipath/dict.c
+@@ -398,6 +398,8 @@ default_failback_handler(vector strvec)
+               conf->pgfailback = -FAILBACK_MANUAL;
+       else if (strlen(buff) == 9 && !strcmp(buff, "immediate"))
+               conf->pgfailback = -FAILBACK_IMMEDIATE;
++      else if (strlen(buff) == 10 && !strcmp(buff, "followover"))
++              conf->pgfailback = -FAILBACK_FOLLOWOVER;
+       else
+               conf->pgfailback = atoi(buff);
+@@ -1053,6 +1055,8 @@ hw_failback_handler(vector strvec)
+               hwe->pgfailback = -FAILBACK_MANUAL;
+       else if (strlen(buff) == 9 && !strcmp(buff, "immediate"))
+               hwe->pgfailback = -FAILBACK_IMMEDIATE;
++      else if (strlen(buff) == 10 && !strcmp(buff, "followover"))
++              hwe->pgfailback = -FAILBACK_FOLLOWOVER;
+       else
+               hwe->pgfailback = atoi(buff);
+@@ -1351,6 +1355,8 @@ mp_failback_handler(vector strvec)
+               mpe->pgfailback = -FAILBACK_MANUAL;
+       else if (strlen(buff) == 9 && !strcmp(buff, "immediate"))
+               mpe->pgfailback = -FAILBACK_IMMEDIATE;
++      else if (strlen(buff) == 10 && !strcmp(buff, "followover"))
++              mpe->pgfailback = -FAILBACK_FOLLOWOVER;
+       else
+               mpe->pgfailback = atoi(buff);
+@@ -1769,6 +1775,8 @@ snprint_mp_failback (char * buff, int le
+               return snprintf(buff, len, "manual");
+       case -FAILBACK_IMMEDIATE:
+               return snprintf(buff, len, "immediate");
++      case -FAILBACK_FOLLOWOVER:
++              return snprintf(buff, len, "followover");
+       default:
+               return snprintf(buff, len, "%i", mpe->pgfailback);
+       }
+@@ -2130,6 +2138,8 @@ snprint_hw_failback (char * buff, int le
+               return snprintf(buff, len, "manual");
+       case -FAILBACK_IMMEDIATE:
+               return snprintf(buff, len, "immediate");
++      case -FAILBACK_FOLLOWOVER:
++              return snprintf(buff, len, "followover");
+       default:
+               return snprintf(buff, len, "%i", hwe->pgfailback);
+       }
+@@ -2394,6 +2404,8 @@ snprint_def_failback (char * buff, int l
+               return snprintf(buff, len, "manual");
+       case -FAILBACK_IMMEDIATE:
+               return snprintf(buff, len, "immediate");
++      case -FAILBACK_FOLLOWOVER:
++              return snprintf(buff, len, "followover");
+       default:
+               return snprintf(buff, len, "%i", conf->pgfailback);
+       }
+Index: multipath-tools-120518/libmultipath/print.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/print.c
++++ multipath-tools-120518/libmultipath/print.c
+@@ -143,6 +143,8 @@ snprint_failback (char * buff, size_t le
+ {
+       if (mpp->pgfailback == -FAILBACK_IMMEDIATE)
+               return snprintf(buff, len, "immediate");
++      if (mpp->pgfailback == -FAILBACK_FOLLOWOVER)
++              return snprintf(buff, len, "followover");
+       if (!mpp->failback_tick)
+               return snprintf(buff, len, "-");
+Index: multipath-tools-120518/libmultipath/structs.h
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/structs.h
++++ multipath-tools-120518/libmultipath/structs.h
+@@ -39,7 +39,8 @@ enum rr_weight_mode {
+ enum failback_mode {
+       FAILBACK_UNDEF,
+       FAILBACK_MANUAL,
+-      FAILBACK_IMMEDIATE
++      FAILBACK_IMMEDIATE,
++      FAILBACK_FOLLOWOVER
+ };
+ enum sysfs_buses {
+@@ -151,6 +152,7 @@ struct path {
+       int offline;
+       int state;
+       int dmstate;
++      int chkrstate;
+       int failcount;
+       int priority;
+       int pgindex;
+Index: multipath-tools-120518/multipathd/main.c
+===================================================================
+--- multipath-tools-120518.orig/multipathd/main.c
++++ multipath-tools-120518/multipathd/main.c
+@@ -995,6 +995,32 @@ mpvec_garbage_collector (struct vectors
+       }
+ }
++/* This is called after a path has started working again. It the multipath
++ * device for this path uses the followover failback type, and this is the
++ * best pathgroup, and this is the first path in the pathgroup to come back
++ * up, then switch to this pathgroup */
++static int
++followover_should_failback(struct path * pp)
++{
++      struct pathgroup * pgp;
++      struct path *pp1;
++      int i;
++
++      if (pp->mpp->pgfailback != -FAILBACK_FOLLOWOVER ||
++          !pp->mpp->pg || !pp->pgindex ||
++          pp->pgindex != pp->mpp->bestpg)
++              return 0;
++
++      pgp = VECTOR_SLOT(pp->mpp->pg, pp->pgindex - 1);
++      vector_foreach_slot(pgp->paths, pp1, i) {
++              if (pp1 == pp)
++                      continue;
++              if (pp1->chkrstate != PATH_DOWN && pp1->chkrstate != PATH_SHAKY)
++                      return 0;
++      }
++      return 1;
++}
++
+ static void
+ defered_failback_tick (vector mpvec)
+ {
+@@ -1092,6 +1118,8 @@ check_path (struct vectors * vecs, struc
+ {
+       int newstate;
+       int new_path_up = 0;
++      int chkr_new_path_up = 0;
++      int oldchkrstate = pp->chkrstate;
+       if (!pp->mpp)
+               return;
+@@ -1130,6 +1158,7 @@ check_path (struct vectors * vecs, struc
+                       pp->dev);
+               pp->dmstate = PSTATE_UNDEF;
+       }
++      pp->chkrstate = newstate;
+       if (newstate != pp->state) {
+               int oldstate = pp->state;
+               pp->state = newstate;
+@@ -1182,6 +1211,9 @@ check_path (struct vectors * vecs, struc
+               new_path_up = 1;
++              if (oldchkrstate != PATH_UP && oldchkrstate != PATH_GHOST)
++                      chkr_new_path_up = 1;
++
+               /*
+                * if at least one path is up in a group, and
+                * the group is disabled, re-enable it
+@@ -1233,7 +1265,8 @@ check_path (struct vectors * vecs, struc
+                   (new_path_up || pp->mpp->failback_tick <= 0))
+                       pp->mpp->failback_tick =
+                               pp->mpp->pgfailback + 1;
+-              else if (pp->mpp->pgfailback == -FAILBACK_IMMEDIATE)
++              else if (pp->mpp->pgfailback == -FAILBACK_IMMEDIATE ||
++                       (chkr_new_path_up && followover_should_failback(pp)))
+                       switch_pathgroup(pp->mpp);
+       }
+ }
+Index: multipath-tools-120518/multipath/multipath.conf.5
+===================================================================
+--- multipath-tools-120518.orig/multipath/multipath.conf.5
++++ multipath-tools-120518/multipath/multipath.conf.5
+@@ -254,6 +254,11 @@ active paths.
+ .B manual
+ Do not perform automatic failback.
+ .TP
++.B followover
++Only perform automatic failback when the first path of a pathgroup
++becomes active. This keeps a node from automatically failing back when
++another node requested the failover.
++.TP
+ .B values > 0
+ deferred failback (time to defer in seconds)
+ .TP
+Index: multipath-tools-120518/libmultipath/discovery.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/discovery.c
++++ multipath-tools-120518/libmultipath/discovery.c
+@@ -878,13 +878,13 @@ pathinfo (struct path *pp, vector hwtabl
+       if (mask & DI_CHECKER) {
+               if (path_state == PATH_UP) {
+-                      pp->state = get_state(pp, 0);
++                      pp->chkrstate = pp->state = get_state(pp, 0);
+                       if (pp->state == PATH_UNCHECKED ||
+                           pp->state == PATH_WILD)
+                               goto blank;
+               } else {
+                       condlog(3, "%s: path inaccessible", pp->dev);
+-                      pp->state = path_state;
++                      pp->chkrstate = pp->state = path_state;
+               }
+       }
+@@ -912,7 +912,7 @@ blank:
+        * Recoverable error, for example faulty or offline path
+        */
+       memset(pp->wwid, 0, WWID_SIZE);
+-      pp->state = PATH_DOWN;
++      pp->chkrstate = pp->state = PATH_DOWN;
+       return 0;
+ }
+Index: multipath-tools-120518/multipath/main.c
+===================================================================
+--- multipath-tools-120518.orig/multipath/main.c
++++ multipath-tools-120518/multipath/main.c
+@@ -144,7 +144,7 @@ update_paths (struct multipath * mpp)
+                                       /*
+                                        * path is not in sysfs anymore
+                                        */
+-                                      pp->state = PATH_DOWN;
++                                      pp->chkrstate = pp->state = PATH_DOWN;
+                                       continue;
+                               }
+                               pp->mpp = mpp;
diff --git a/multipath-tools/patches/0003-RH-root-init-script.patch b/multipath-tools/patches/0003-RH-root-init-script.patch
deleted file mode 100644 (file)
index c687537..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-From e6a23cc9de85a66d774567515592bdbdba7b2ca4 Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Tue, 13 Oct 2009 08:19:01 +0200
-Subject: [PATCH 03/12] RH: root init script
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
----
-:100644 100644 ee776f0... e46b1b8... M multipathd/multipathd.init.redhat
- multipathd/multipathd.init.redhat |   38 ++++++++++++++++++++++++++++++++++++-
- 1 files changed, 37 insertions(+), 1 deletions(-)
-
-diff --git a/multipathd/multipathd.init.redhat b/multipathd/multipathd.init.redhat
-index ee776f0..e46b1b8 100644
---- a/multipathd/multipathd.init.redhat
-+++ b/multipathd/multipathd.init.redhat
-@@ -2,7 +2,7 @@
- #
- # multipathd  Starts the multipath daemon
- #
--# chkconfig: - 13 87
-+# chkconfig: - 06 87
- # description: Manages device-mapper multipath devices
- ### BEGIN INIT INFO
-@@ -17,6 +17,7 @@ prog=`basename $DAEMON`
- initdir=/etc/rc.d/init.d
- lockdir=/var/lock/subsys
- sysconfig=/etc/sysconfig
-+syspath=/sys/block
-  
- . $initdir/functions
-@@ -25,6 +26,36 @@ test -r $sysconfig/$prog && . $sysconfig/$prog
- RETVAL=0
-+teardown_slaves()
-+{
-+pushd $1 > /dev/null
-+if [ -d "slaves" ]; then
-+for slave in slaves/*;
-+do
-+      if [ "$slave" = "slaves/*" ]; then
-+              read dev <  $1/dev
-+              tablename=`dmsetup table --target multipath | sed -n "s/\(.*\): .* $dev .*/\1/p"`
-+              if ! [ -z $tablename ]; then
-+                      echo "Root is on a multipathed device, multipathd can not be stopped"
-+                      exit 1
-+              fi
-+      else
-+              local_slave=`readlink -f $slave`;
-+              teardown_slaves $local_slave;
-+      fi
-+      done
-+
-+else
-+              read dev <  $1/dev
-+              tablename=`dmsetup table --target multipath | sed -n "s/\(.*\): .* $dev .*/\1/p"`
-+              if ! [ -z $tablename ]; then
-+                      echo "Root is on a multipathed device, multipathd can not be stopped"
-+                      exit 1
-+              fi
-+fi
-+popd > /dev/null
-+}
-+
- #
- # See how we were called.
- #
-@@ -39,6 +70,11 @@ start() {
- }
- stop() {
-+        root_dev=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/mtab)
-+      dm_num=`dmsetup info -c --noheadings -o minor $root_dev`
-+      root_dm_device="dm-$dm_num"
-+      [ -d $syspath/$root_dm_device ] && teardown_slaves $syspath/$root_dm_device
-+
-       echo -n $"Stopping $prog daemon: "
-       killproc $DAEMON
-       RETVAL=$?
--- 
-1.6.5.1
-
diff --git a/multipath-tools/patches/0003-for-upstream-default-configs.patch b/multipath-tools/patches/0003-for-upstream-default-configs.patch
deleted file mode 100644 (file)
index fdd6347..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-Index: multipath-tools/libmultipath/hwtable.c
-===================================================================
---- multipath-tools.orig/libmultipath/hwtable.c
-+++ multipath-tools/libmultipath/hwtable.c
-@@ -425,6 +425,21 @@ static struct hwentry default_hw[] = {
-               .prio_name     = PRIO_RDAC,
-       },
-       {
-+              .vendor        = "IBM",
-+              .product       = "1745|1746",
-+              .getuid        = DEFAULT_GETUID,
-+              .features      = "2 pg_init_retries 50",
-+              .hwhandler     = "1 rdac",
-+              .selector      = DEFAULT_SELECTOR,
-+              .pgpolicy      = GROUP_BY_PRIO,
-+              .pgfailback    = -FAILBACK_IMMEDIATE,
-+              .rr_weight     = RR_WEIGHT_NONE,
-+              .no_path_retry = 15,
-+              .minio         = DEFAULT_MINIO,
-+              .checker_name  = RDAC,
-+              .prio_name     = PRIO_RDAC,
-+      },
-+      {
-           /* IBM DS4700 */
-               .vendor        = "IBM",
-               .product       = "1814",
-@@ -661,12 +676,13 @@ static struct hwentry default_hw[] = {
-               .vendor        = "DELL",
-               .product       = "MD3000",
-               .getuid        = DEFAULT_GETUID,
--              .features      = "1 queue_if_no_path",
-+              .features      = "2 pg_init_retries 50",
-               .hwhandler     = "1 rdac",
-               .selector      = DEFAULT_SELECTOR,
-               .pgpolicy      = GROUP_BY_PRIO,
-               .pgfailback    = -FAILBACK_IMMEDIATE,
-               .rr_weight     = RR_WEIGHT_NONE,
-+              .no_path_retry = 15,
-               .minio         = DEFAULT_MINIO,
-               .checker_name  = RDAC,
-               .prio_name     = PRIO_RDAC,
-@@ -676,12 +692,13 @@ static struct hwentry default_hw[] = {
-               .vendor        = "DELL",
-               .product       = "MD3000i",
-               .getuid        = DEFAULT_GETUID,
--              .features      = "1 queue_if_no_path",
-+              .features      = "2 pg_init_retries 50",
-               .hwhandler     = "1 rdac",
-               .selector      = DEFAULT_SELECTOR,
-               .pgpolicy      = GROUP_BY_PRIO,
-               .pgfailback    = -FAILBACK_IMMEDIATE,
-               .rr_weight     = RR_WEIGHT_NONE,
-+              .no_path_retry = 15,
-               .minio         = DEFAULT_MINIO,
-               .checker_name  = RDAC,
-               .prio_name     = PRIO_RDAC,
diff --git a/multipath-tools/patches/0004-RH-fix-cciss-names.patch b/multipath-tools/patches/0004-RH-fix-cciss-names.patch
new file mode 100644 (file)
index 0000000..890a483
--- /dev/null
@@ -0,0 +1,34 @@
+---
+ multipath/main.c |   12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+Index: multipath-tools-120518/multipath/main.c
+===================================================================
+--- multipath-tools-120518.orig/multipath/main.c
++++ multipath-tools-120518/multipath/main.c
+@@ -409,6 +409,16 @@ get_dev_type(char *dev) {
+               return DEV_DEVMAP;
+ }
++static void
++convert_dev(char *dev)
++{
++      char *ptr = strstr(dev, "cciss/");
++      if (ptr) {
++              ptr += 5;
++              *ptr = '!';
++      }
++}
++
+ int
+ main (int argc, char *argv[])
+ {
+@@ -514,6 +524,8 @@ main (int argc, char *argv[])
+               strncpy(conf->dev, argv[optind], FILE_NAME_SIZE);
+               conf->dev_type = get_dev_type(conf->dev);
++              if (conf->dev_type == DEV_DEVNODE)
++                      convert_dev(conf->dev);
+       }
+       conf->daemon = 0;
diff --git a/multipath-tools/patches/0004-RH-fix-kpartx.patch b/multipath-tools/patches/0004-RH-fix-kpartx.patch
deleted file mode 100644 (file)
index a28294d..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From 8d443fe2c58e22166426438e6f6d5757934f7b31 Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Tue, 13 Oct 2009 08:23:42 +0200
-Subject: [PATCH 04/12] RH: fix kpartx
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
----
-:100644 100644 b61a81f... 103ed0a... M kpartx/kpartx.c
- kpartx/kpartx.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/kpartx/kpartx.c b/kpartx/kpartx.c
-index b61a81f..103ed0a 100644
---- a/kpartx/kpartx.c
-+++ b/kpartx/kpartx.c
-@@ -488,6 +488,7 @@ main(int argc, char **argv){
-                       d = c;
-                       while (c) {
-                               for (j = 0; j < n; j++) {
-+                                      uint64_t start;
-                                       int k = slices[j].container - 1;
-                                       if (slices[j].size == 0)
-@@ -498,7 +499,7 @@ main(int argc, char **argv){
-                                               continue;
-                                       /* Skip all simple slices */
--                                      if (k < 0)
-+                                      if (slices[j].container == 0)
-                                               continue;
-                                       /* Check container slice */
-@@ -513,10 +514,11 @@ main(int argc, char **argv){
-                                       }
-                                       strip_slash(partname);
-+                                      start = slices[j].start - slices[k].start;
-                                       if (safe_sprintf(params, "%d:%d %" PRIu64,
-                                                        slices[k].major,
-                                                        slices[k].minor,
--                                                       slices[j].start)) {
-+                                                       start)) {
-                                               fprintf(stderr, "params too small\n");
-                                               exit(1);
-                                       }
--- 
-1.6.5.1
-
diff --git a/multipath-tools/patches/0005-RH-cciss_id.patch b/multipath-tools/patches/0005-RH-cciss_id.patch
deleted file mode 100644 (file)
index bf61664..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-From a3db7def912c2fd3756cfd99c1165db075281caa Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Tue, 13 Oct 2009 09:26:02 +0200
-Subject: [PATCH 05/12] RH: cciss_id
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
----
-:100644 100644 54be0a5... 7e4b7b1... M Makefile
-:000000 100644 0000000... 6db12a4... A cciss_id/Makefile
-:000000 100644 0000000... 091b5fe... A cciss_id/cciss_id.c
- Makefile            |    3 +-
- cciss_id/Makefile   |   47 +++++++++++++++++++
- cciss_id/cciss_id.c |  128 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 177 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 54be0a5..7e4b7b1 100644
---- a/Makefile
-+++ b/Makefile
-@@ -25,7 +25,8 @@ BUILDDIRS = \
-       libmultipath/checkers \
-       multipath \
-       multipathd \
--      kpartx
-+      kpartx \
-+      cciss_id
- ifeq   ($(MULTIPATH_VERSION),)
- VERSION = $(shell basename ${PWD} | cut -d'-' -f3)
-diff --git a/cciss_id/Makefile b/cciss_id/Makefile
-new file mode 100644
-index 0000000..6db12a4
---- /dev/null
-+++ b/cciss_id/Makefile
-@@ -0,0 +1,47 @@
-+
-+# *****************************************************************************
-+# *                                                                           *
-+# *     (C)  Copyright 2007 Hewlett-Packard Development Company, L.P          *
-+# *                                                                           *
-+# * 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.                                   *
-+# *                                                                           *
-+# *                                                                           *
-+# *                                                                           *
-+# *                                                                           *
-+# *****************************************************************************
-+
-+include ../Makefile.inc
-+
-+OBJS = cciss_id.o
-+CFLAGS = -pipe -g -Wall -Wunused -Wstrict-prototypes
-+
-+LDFLAGS = -ldevmapper
-+
-+EXEC = cciss_id
-+
-+all: $(EXEC)
-+
-+$(EXEC): $(OBJS)
-+      $(CC) $(OBJS) -o $(EXEC) $(LDFLAGS)
-+
-+install:
-+      $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
-+      $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
-+
-+uninstall:
-+      rm $(DESTDIR)$(bindir)/$(EXEC)
-+
-+clean:
-+      rm -f core.* *.o $(EXEC) *.gz
-diff --git a/cciss_id/cciss_id.c b/cciss_id/cciss_id.c
-new file mode 100644
-index 0000000..091b5fe
---- /dev/null
-+++ b/cciss_id/cciss_id.c
-@@ -0,0 +1,128 @@
-+/*
-+ *****************************************************************************
-+ *                                                                           *
-+ *     (C)  Copyright 2007 Hewlett-Packard Development Company, L.P          *
-+ *                                                                           *
-+ * 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.                                   *
-+ *                                                                           *
-+ *                                                                           *
-+ *                                                                           *
-+ *                                                                           *
-+ *****************************************************************************
-+*/
-+
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <sys/ioctl.h>
-+#include <fcntl.h>
-+#include <unistd.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <errno.h>
-+#include <string.h>
-+
-+#include <linux/cciss_ioctl.h>
-+
-+#define LEN_PAGE83_CCISSDEV   0x20    /* Page length of 83h for cciss devices */
-+#define LEN_DEVICEFILE        255             /* Length of device file name */
-+#define PATH_CCISSDEV "/dev/cciss/"   /* Path of CCISS devices */
-+int main(int argc, char *argv[])
-+{
-+      const int resp_len = LEN_PAGE83_CCISSDEV;
-+      unsigned char resp[resp_len+1];
-+      char dev_name[LEN_DEVICEFILE] = "\0" ;
-+      unsigned int lun_id = 0;
-+      int fd, status, i;
-+      struct stat file_stat;
-+
-+      LogvolInfo_struct    lvi;       // logical "volume" info
-+      IOCTL_Command_struct cic;       // cciss ioctl command
-+
-+      if(argc < 2) {
-+              fprintf(stderr, "Usage: %s /dev/cciss/cNdN\n", argv[0]);
-+              return -1;
-+      }
-+
-+      if ( strncmp(PATH_CCISSDEV, argv[1], strlen(PATH_CCISSDEV) ) != 0 ) {
-+              if ( strchr(argv[1], '!') ) {
-+                      sprintf(dev_name, "%s%s", PATH_CCISSDEV,
-+                              strchr(argv[1], '!')+1);
-+              }
-+                //fprintf(stderr, "dev_name is: -%s-", dev_name);
-+        } else {
-+              sprintf(dev_name, "%s", argv[1]);
-+      }
-+
-+      if (stat(dev_name, &file_stat) < 0) {
-+              fprintf (stderr, "Stat failed for file %s. Errno=%d\n", dev_name, errno);
-+              return -1;
-+      }
-+      if (!S_ISBLK(file_stat.st_mode)) {
-+              fprintf (stderr, "File %s is not a block device. \n", dev_name);
-+                return -1;
-+      }
-+
-+
-+      if((fd = open(dev_name,  O_RDWR)) < 0) {
-+              fprintf(stderr, "Open failed for file %s. Errno=%d\n", dev_name, errno);
-+              return -1;
-+      }
-+
-+              if (ioctl(fd, CCISS_GETLUNINFO, &lvi) < 0) {
-+              fprintf(stderr, "IOCTL failure CCISS_GETLUNINFO for file %s Errno=%d\n", dev_name, errno);
-+              close(fd);
-+                return -1;
-+              } else {
-+              lun_id = lvi.LunID;
-+              }
-+
-+      memset(&cic, 0, sizeof(IOCTL_Command_struct));
-+      memset(resp, 0, resp_len+1);
-+      cic.LUN_info.LogDev.Mode = 0x01; /* logical volume addressing */
-+      cic.LUN_info.LogDev.VolId = lun_id & 0x3FFFFFFF;
-+      cic.Request.CDBLen = 6;
-+      cic.Request.Type.Type =  TYPE_CMD; // It is a command.
-+      cic.Request.Type.Attribute = ATTR_SIMPLE;
-+      cic.Request.Type.Direction = XFER_READ; // Read
-+      cic.Request.Timeout = 0; // Don't time out
-+      cic.Request.CDB[0] = 0x12;
-+      cic.Request.CDB[1] = 0x01; /* EVPD (enable vital product data) */
-+      cic.Request.CDB[2] = 0x83;
-+      cic.Request.CDB[4] = resp_len & 0xFF;
-+      cic.buf_size = resp_len;
-+      cic.buf = resp;
-+      status = ioctl(fd, CCISS_PASSTHRU, &cic);
-+      if(status) {
-+              fprintf(stderr, "IOCTL failure CCISS_PASSTHRU for file %s Errno=%d\n", dev_name, errno);
-+              close(fd);
-+                return -1;
-+      }
-+      else {
-+              if ((cic.error_info.CommandStatus | cic.error_info.ScsiStatus )) {
-+                      fprintf(stderr, "CCISS command status error for Inquiry on %s\n",
-+                                      dev_name);
-+                      close(fd);
-+                      return -1;
-+              }
-+              printf("3");
-+              for(i=8; i<24; i++)
-+                      /* printf("Buff[%d] =%x\n", i, resp[i]); */
-+                      printf("%02x", resp[i]);
-+              printf("\n");
-+      }
-+
-+      close(fd);
-+      return 0;
-+}
--- 
-1.6.5.1
-
diff --git a/multipath-tools/patches/0005-RH-dont_start_with_no_config.patch b/multipath-tools/patches/0005-RH-dont_start_with_no_config.patch
new file mode 100644 (file)
index 0000000..7efd925
--- /dev/null
@@ -0,0 +1,16 @@
+---
+ multipathd/multipathd.service |    1 +
+ 1 file changed, 1 insertion(+)
+
+Index: multipath-tools-110916/multipathd/multipathd.service
+===================================================================
+--- multipath-tools-110916.orig/multipathd/multipathd.service
++++ multipath-tools-110916/multipathd/multipathd.service
+@@ -2,6 +2,7 @@
+ Description=Device-Mapper Multipath Device Controller
+ Before=iscsi.service iscsid.service
+ After=syslog.target
++ConditionPathExists=/etc/multipath.conf
+ [Service]
+ Type=forking
diff --git a/multipath-tools/patches/0006-RH-move-bindings.patch b/multipath-tools/patches/0006-RH-move-bindings.patch
deleted file mode 100644 (file)
index c26b5e8..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-From ff4c0c9ccbf8abe4a67c2a6cceef07bda9d38d7d Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Tue, 13 Oct 2009 09:26:25 +0200
-Subject: [PATCH 06/12] RH: move bindings
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
----
-:100644 100644 84e5d6b... 5a38d25... M libmultipath/defaults.h
-:100644 100644 9afa615... 7b6453f... M multipath.conf.annotated
-:100644 100644 a165e4e... 4340e51... M multipath/multipath.conf.5
- libmultipath/defaults.h    |    2 +-
- multipath.conf.annotated   |    2 +-
- multipath/multipath.conf.5 |    2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h
-index 84e5d6b..5a38d25 100644
---- a/libmultipath/defaults.h
-+++ b/libmultipath/defaults.h
-@@ -19,6 +19,6 @@
- #define DEFAULT_PIDFILE               "/var/run/multipathd.pid"
- #define DEFAULT_SOCKET                "/var/run/multipathd.sock"
- #define DEFAULT_CONFIGFILE    "/etc/multipath.conf"
--#define DEFAULT_BINDINGS_FILE "/var/lib/multipath/bindings"
-+#define DEFAULT_BINDINGS_FILE "/etc/multipath/bindings"
- char * set_default (char * str);
-diff --git a/multipath.conf.annotated b/multipath.conf.annotated
-index 9afa615..7b6453f 100644
---- a/multipath.conf.annotated
-+++ b/multipath.conf.annotated
-@@ -165,7 +165,7 @@
- #     # name    : user_friendly_names
- #     # scope   : multipath
- #     # desc    : If set to "yes", using the bindings file
--#     #           /var/lib/multipath/bindings to assign a persistent and
-+#     #           /etc/multipath/bindings to assign a persistent and
- #     #           unique alias to the multipath, in the form of mpath<n>.
- #     #           If set to "no" use the WWID as the alias. In either case
- #     #           this be will be overriden by any specific aliases in this
-diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
-index a165e4e..4340e51 100644
---- a/multipath/multipath.conf.5
-+++ b/multipath/multipath.conf.5
-@@ -224,7 +224,7 @@ for never stop queueing. Default is 0.
- If set to 
- .I yes
- , using the bindings file
--.I /var/lib/multipath/bindings
-+.I /etc/multipath/bindings
- to assign a persistent and unique alias to the multipath, in the form of mpath<n>.
- If set to 
- .I no
--- 
-1.6.5.1
-
similarity index 58%
rename from multipath-tools/patches/0010-RH-multipath-rules-udev-changes.patch
rename to multipath-tools/patches/0006-RH-multipath.rules.patch
index 4250ec78bddbdd2b63c833907536e50d8df37175..bfcfc98b875d1f40a009d581e8849886db0a459e 100644 (file)
@@ -1,42 +1,48 @@
-From 5a43356b54c2672441ce67cd9602904a5df04117 Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Mon, 19 Oct 2009 07:07:01 +0200
-Subject: [PATCH 10/12] RH: multipath rules + udev changes
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
 ---
-:100644 100644 ac97749... 064196d... M multipath/multipath.rules
  multipath/Makefile        |    6 +++---
- multipath/multipath.rules |   18 +++++++++++-------
- 2 files changed, 14 insertions(+), 10 deletions(-)
+ multipath/multipath.rules |   30 ++++++++++++++++++++++++------
+ 2 files changed, 27 insertions(+), 9 deletions(-)
 
-Index: multipath-tools/multipath/multipath.rules
+Index: multipath-tools-120613/multipath/multipath.rules
 ===================================================================
---- multipath-tools.orig/multipath/multipath.rules
-+++ multipath-tools/multipath/multipath.rules
-@@ -1,7 +1,11 @@
+--- multipath-tools-120613.orig/multipath/multipath.rules
++++ multipath-tools-120613/multipath/multipath.rules
+@@ -1,7 +1,25 @@
 -#
 -# udev rules for multipathing.
 -# The persistent symlinks are created with the kpartx rules
 -#
--
--# socket for uevents
--SUBSYSTEM=="block", RUN+="socket:/org/kernel/dm/multipath_event"
 +# multipath wants the devmaps presented as meaninglful device names
 +# so name them after their devmap name
 +SUBSYSTEM!="block", GOTO="end_mpath"
+-# socket for uevents
+-SUBSYSTEM=="block", RUN+="socket:/org/kernel/dm/multipath_event"
++ENV{MPATH_SBIN_PATH}="/sbin"
++TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin"
++
++ACTION=="add", ENV{DEVTYPE}!="partition", \
++      ENV{DM_MULTIPATH_DEVICE_PATH}!="1", \
++      TEST=="/etc/multipath.conf", \
++      PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -c $tempnode", \
++      ENV{DM_MULTIPATH_DEVICE_PATH}="1"
++
++ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{DEVTYPE}!="partition", \
++      RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
++
 +RUN+="socket:/org/kernel/dm/multipath_event"
 +KERNEL!="dm-*", GOTO="end_mpath"
 +ACTION!="change", GOTO="end_mpath"
-+ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
++ENV{DM_UUID}=="mpath-?*|part[0-9]*-mpath-?*", OPTIONS+="link_priority=10"
 +ENV{DM_UUID}!="mpath-?*", GOTO="end_mpath"
++ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
 +ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath"
-+RUN+="$env{DM_SBIN_PATH}/kpartx -a -p p $tempnode"
++RUN+="$env{MPATH_SBIN_PATH}/kpartx -a -p p $tempnode"
 +LABEL="end_mpath"
-Index: multipath-tools/multipath/Makefile
+Index: multipath-tools-120613/multipath/Makefile
 ===================================================================
---- multipath-tools.orig/multipath/Makefile
-+++ multipath-tools/multipath/Makefile
+--- multipath-tools-120613.orig/multipath/Makefile
++++ multipath-tools-120613/multipath/Makefile
 @@ -21,15 +21,15 @@ $(EXEC): $(OBJS)
  install:
        $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
@@ -44,7 +50,7 @@ Index: multipath-tools/multipath/Makefile
 -      $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
 -      $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/etc/udev/rules.d/
 +      $(INSTALL_PROGRAM) -d $(DESTDIR)/lib/udev/rules.d
-+      $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/lib/udev/rules.d/40-multipath.rules
++      $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/lib/udev/rules.d/62-multipath.rules
        $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
        $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
        $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
@@ -52,7 +58,7 @@ Index: multipath-tools/multipath/Makefile
  
  uninstall:
 -      rm $(DESTDIR)/etc/udev/rules.d/multipath.rules
-+      rm $(DESTDIR)/lib/udev/rules.d/multipath.rules
++      rm $(DESTDIR)/lib/udev/rules.d/62-multipath.rules
        rm $(DESTDIR)$(bindir)/$(EXEC)
        rm $(DESTDIR)$(mandir)/$(EXEC).8.gz
        rm $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
diff --git a/multipath-tools/patches/0007-RH-Make-build-system-RH-Fedora-friendly.patch b/multipath-tools/patches/0007-RH-Make-build-system-RH-Fedora-friendly.patch
new file mode 100644 (file)
index 0000000..bc5d17d
--- /dev/null
@@ -0,0 +1,101 @@
+From f5e11246063b07d6dce6d37d3b74662475baa981 Mon Sep 17 00:00:00 2001
+From: Fabio M. Di Nitto <fdinitto@redhat.com>
+Date: Thu, 15 Oct 2009 04:39:27 +0200
+Subject: [PATCH 08/12] RH: Make build system RH/Fedora friendly
+
+Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+---
+:100644 100644 7ec25d5... 06fb625... M Makefile.inc
+:100644 100644 21e4ad4... 06d79c0... M kpartx/Makefile
+:100644 100644 32d9ef5... 25e1483... M multipathd/Makefile
+ Makefile.inc             |    2 +-
+ kpartx/Makefile          |    8 ++++----
+ libmpathpersist/Makefile |    7 ++-----
+ libmultipath/Makefile    |    2 ++
+ multipathd/Makefile      |    1 +
+ 5 files changed, 10 insertions(+), 10 deletions(-)
+
+Index: multipath-tools-120613/Makefile.inc
+===================================================================
+--- multipath-tools-120613.orig/Makefile.inc
++++ multipath-tools-120613/Makefile.inc
+@@ -29,7 +29,7 @@ multipathdir = $(TOPDIR)/libmultipath
+ mandir      = $(prefix)/usr/share/man/man8
+ man5dir     = $(prefix)/usr/share/man/man5
+ man3dir      = $(prefix)/usr/share/man/man3
+-rcdir     = $(prefix)/etc/init.d
++rcdir     = $(prefix)/etc/rc.d/init.d
+ syslibdir   = $(prefix)/$(LIB)
+ libdir            = $(prefix)/$(LIB)/multipath
+ unitdir     = $(prefix)/lib/systemd/system
+Index: multipath-tools-120613/kpartx/Makefile
+===================================================================
+--- multipath-tools-120613.orig/kpartx/Makefile
++++ multipath-tools-120613/kpartx/Makefile
+@@ -26,10 +26,10 @@ $(EXEC): $(OBJS)
+ install: $(EXEC) $(EXEC).8
+       $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+       $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
+-      $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
+-      $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
+-      $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
+-      $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/
++#     $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
++#     $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
++#     $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
++#     $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/
+       $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
+       $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
+Index: multipath-tools-120613/multipathd/Makefile
+===================================================================
+--- multipath-tools-120613.orig/multipathd/Makefile
++++ multipath-tools-120613/multipathd/Makefile
+@@ -35,6 +35,7 @@ install:
+       $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+       $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
+       $(INSTALL_PROGRAM) -d $(DESTDIR)$(rcdir)
++      $(INSTALL_PROGRAM) -m 755 multipathd.init.redhat $(DESTDIR)$(rcdir)/$(EXEC)
+       $(INSTALL_PROGRAM) -d $(DESTDIR)$(unitdir)
+       $(INSTALL_PROGRAM) -m 644 $(EXEC).service $(DESTDIR)$(unitdir)
+       $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
+Index: multipath-tools-120613/libmultipath/Makefile
+===================================================================
+--- multipath-tools-120613.orig/libmultipath/Makefile
++++ multipath-tools-120613/libmultipath/Makefile
+@@ -46,9 +46,11 @@ install:
+       $(INSTALL_PROGRAM) -d $(DESTDIR)$(syslibdir)
+       $(INSTALL_PROGRAM) -m 755 $(LIBS) $(DESTDIR)$(syslibdir)/$(LIBS)
+       $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)$(libdir)
++      ln -sf $(LIBS) $(DESTDIR)$(syslibdir)/$(DEVLIB)
+ uninstall:
+       rm -f $(DESTDIR)$(syslibdir)/$(LIBS)
++      rm -f $(DESTDIR)$(syslibdir)/$(DEVLIB)
+ clean:
+       rm -f core *.a *.o *.gz *.so *.so.*
+Index: multipath-tools-120613/libmpathpersist/Makefile
+===================================================================
+--- multipath-tools-120613.orig/libmpathpersist/Makefile
++++ multipath-tools-120613/libmpathpersist/Makefile
+@@ -28,17 +28,14 @@ $(LIBS):
+ install: $(LIBS)
+       $(INSTALL_PROGRAM) -d $(DESTDIR)$(syslibdir)
+       $(INSTALL_PROGRAM) -m 755 $(LIBS) $(DESTDIR)$(syslibdir)/$(LIBS)
+-      $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)$(syslibdir)
+       $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)$(man3dir)
+-      $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)/usr/include/
+-      $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)/usr/share/doc/mpathpersist/
+-      ln -sf $(DESTDIR)$(syslibdir)/$(LIBS) $(DESTDIR)$(syslibdir)/$(DEVLIB)
++      ln -sf $(LIBS) $(DESTDIR)$(syslibdir)/$(DEVLIB)
+       install -m 644 mpath_persistent_reserve_in.3.gz $(DESTDIR)$(man3dir)    
+       install -m 644 mpath_persistent_reserve_out.3.gz $(DESTDIR)$(man3dir)   
+-      install -m 644 mpath_persist.h $(DESTDIR)/usr/include/
+ uninstall:
+       rm -f $(DESTDIR)$(syslibdir)/$(LIBS)
++      rm -f $(DESTDIR)$(syslibdir)/$(DEVLIB)
+       rm $(DESTDIR)$(mandir)/mpath_persistent_reserve_in.3.gz 
+       rm $(DESTDIR)$(mandir)/mpath_persistent_reserve_out.3.gz        
diff --git a/multipath-tools/patches/0007-RH-do-not-remove.patch b/multipath-tools/patches/0007-RH-do-not-remove.patch
deleted file mode 100644 (file)
index 1b27c76..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From b3519ef2eda768672d47c61f0acf8c87d74db427 Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Tue, 13 Oct 2009 09:33:59 +0200
-Subject: [PATCH 07/12] RH: do not remove
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
----
-:100644 100644 5d3625a... 244b8d5... M multipathd/main.c
- multipathd/main.c |   13 ++++++++++++-
- 1 files changed, 12 insertions(+), 1 deletions(-)
-
-diff --git a/multipathd/main.c b/multipathd/main.c
-index 5d3625a..244b8d5 100644
---- a/multipathd/main.c
-+++ b/multipathd/main.c
-@@ -290,8 +290,19 @@ ev_add_map (struct sysfs_device * dev, struct vectors * vecs)
- static int
- uev_remove_map (struct sysfs_device * dev, struct vectors * vecs)
- {
-+      struct multipath * mpp;
-+
-       condlog(2, "%s: remove map (uevent)", dev->kernel);
--      return ev_remove_map(dev->kernel, vecs);
-+
-+      mpp = find_mp_by_str(vecs->mpvec, dev->kernel);
-+      if (!mpp) {
-+              condlog(2, "%s: devmap not registered, can't remove",
-+                      dev->kernel);
-+              return 0;
-+      }
-+      orphan_paths(vecs->pathvec, mpp);
-+      remove_map_and_stop_waiter(mpp, vecs, 1);
-+      return 0;
- }
- int
--- 
-1.6.5.1
-
diff --git a/multipath-tools/patches/0008-RH-Make-build-system-RH-Fedora-friendly.patch b/multipath-tools/patches/0008-RH-Make-build-system-RH-Fedora-friendly.patch
deleted file mode 100644 (file)
index 9e6e3a0..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-From f5e11246063b07d6dce6d37d3b74662475baa981 Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Thu, 15 Oct 2009 04:39:27 +0200
-Subject: [PATCH 08/12] RH: Make build system RH/Fedora friendly
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
----
-:100644 100644 7ec25d5... 06fb625... M Makefile.inc
-:100644 100644 21e4ad4... 06d79c0... M kpartx/Makefile
-:100644 100644 32d9ef5... 25e1483... M multipathd/Makefile
- Makefile.inc        |    2 +-
- kpartx/Makefile     |    8 ++++----
- multipathd/Makefile |    1 +
- 3 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 7ec25d5..06fb625 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -28,7 +28,7 @@ libudevdir  = ${prefix}/lib/udev
- multipathdir = $(TOPDIR)/libmultipath
- mandir      = $(prefix)/usr/share/man/man8
- man5dir     = $(prefix)/usr/share/man/man5
--rcdir     = $(prefix)/etc/init.d
-+rcdir     = $(prefix)/etc/rc.d/init.d
- syslibdir   = $(prefix)/$(LIB)
- libdir            = $(prefix)/$(LIB)/multipath
-diff --git a/kpartx/Makefile b/kpartx/Makefile
-index 21e4ad4..06d79c0 100644
---- a/kpartx/Makefile
-+++ b/kpartx/Makefile
-@@ -20,10 +20,10 @@ $(EXEC): $(OBJS)
- install: $(EXEC) $(EXEC).8
-       $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
-       $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
--      $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
--      $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
--      $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
--      $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/
-+#     $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
-+#     $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
-+#     $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
-+#     $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/
-       $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
-       $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
-diff --git a/multipathd/Makefile b/multipathd/Makefile
-index 32d9ef5..25e1483 100644
---- a/multipathd/Makefile
-+++ b/multipathd/Makefile
-@@ -35,6 +35,7 @@ install:
-       $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
-       $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
-       $(INSTALL_PROGRAM) -d $(DESTDIR)$(rcdir)
-+      $(INSTALL_PROGRAM) -m 755 multipathd.init.redhat $(DESTDIR)$(rcdir)/$(EXEC)
-       $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
-       $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
--- 
-1.6.5.1
-
diff --git a/multipath-tools/patches/0008-RH-multipathd-blacklist-all-by-default.patch b/multipath-tools/patches/0008-RH-multipathd-blacklist-all-by-default.patch
new file mode 100644 (file)
index 0000000..5bbf3ca
--- /dev/null
@@ -0,0 +1,64 @@
+From 61b2002c6b2752c15b431e400cd614edc8c5b039 Mon Sep 17 00:00:00 2001
+From: Fabio M. Di Nitto <fdinitto@redhat.com>
+Date: Mon, 19 Oct 2009 07:05:45 +0200
+Subject: [PATCH 09/12] RH: multipathd blacklist all by default
+
+If there is no configuration installed on the system, blacklist
+everything by default.
+
+BZ#528059
+
+Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+---
+:100644 100644 e7e962e... 5aa1ab0... M libmultipath/config.c
+:100644 100644 86b1320... 7e90e75... M libmultipath/config.h
+ libmultipath/config.c |   16 ++++++++++++++++
+ libmultipath/config.h |    1 +
+ 2 files changed, 17 insertions(+)
+
+Index: multipath-tools-120518/libmultipath/config.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/config.c
++++ multipath-tools-120518/libmultipath/config.c
+@@ -21,6 +21,7 @@
+ #include "defaults.h"
+ #include "prio.h"
+ #include "devmapper.h"
++#include "version.h"
+ static int
+ hwe_strmatch (struct hwentry *hwe1, struct hwentry *hwe2)
+@@ -549,6 +550,21 @@ load_config (char * file)
+       } else {
+               init_keywords();
++              condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
++              condlog(0, "A default multipath.conf file is located at");
++              condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
++              if (conf->blist_devnode == NULL) {
++                      conf->blist_devnode = vector_alloc();
++                      if (!conf->blist_devnode) {
++                              condlog(0, "cannot allocate blacklist\n");
++                              goto out;
++                      }
++              }
++              if (store_ble(conf->blist_devnode, strdup(".*"),
++                            ORIGIN_NO_CONFIG)) {
++                      condlog(0, "cannot store default no-config blacklist\n");
++                      goto out;
++              }
+       }
+       /*
+Index: multipath-tools-120518/libmultipath/config.h
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/config.h
++++ multipath-tools-120518/libmultipath/config.h
+@@ -6,6 +6,7 @@
+ #define ORIGIN_DEFAULT 0
+ #define ORIGIN_CONFIG  1
++#define ORIGIN_NO_CONFIG 2
+ /*
+  * In kernel, fast_io_fail == 0 means immediate failure on rport delete.
diff --git a/multipath-tools/patches/0009-RH-add-mpathconf.patch b/multipath-tools/patches/0009-RH-add-mpathconf.patch
new file mode 100644 (file)
index 0000000..2a5bec8
--- /dev/null
@@ -0,0 +1,494 @@
+---
+ libmultipath/config.c |    1 
+ multipath/Makefile    |    5 
+ multipath/main.c      |    4 
+ multipath/mpathconf   |  312 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ multipath/mpathconf.8 |  103 ++++++++++++++++
+ 5 files changed, 423 insertions(+), 2 deletions(-)
+
+Index: multipath-tools-120613/libmultipath/config.c
+===================================================================
+--- multipath-tools-120613.orig/libmultipath/config.c
++++ multipath-tools-120613/libmultipath/config.c
+@@ -553,6 +553,7 @@ load_config (char * file)
+               condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
+               condlog(0, "A default multipath.conf file is located at");
+               condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
++              condlog(0, "You can run /sbin/mpathconf to create or modify /etc/multipath.conf");
+               if (conf->blist_devnode == NULL) {
+                       conf->blist_devnode = vector_alloc();
+                       if (!conf->blist_devnode) {
+Index: multipath-tools-120613/multipath/Makefile
+===================================================================
+--- multipath-tools-120613.orig/multipath/Makefile
++++ multipath-tools-120613/multipath/Makefile
+@@ -17,22 +17,27 @@ $(EXEC): $(OBJS)
+       $(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS)
+       $(GZIP) $(EXEC).8 > $(EXEC).8.gz
+       $(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz
++      $(GZIP) mpathconf.8 > mpathconf.8.gz
+ install:
+       $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+       $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
++      $(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/
+       $(INSTALL_PROGRAM) -d $(DESTDIR)/lib/udev/rules.d
+       $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/lib/udev/rules.d/62-multipath.rules
+       $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
+       $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
+       $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
+       $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir)
++      $(INSTALL_PROGRAM) -m 644 mpathconf.8.gz $(DESTDIR)$(mandir)
+ uninstall:
+       rm $(DESTDIR)/lib/udev/rules.d/62-multipath.rules
+       rm $(DESTDIR)$(bindir)/$(EXEC)
++      rm $(DESTDIR)$(bindir)/mpathconf
+       rm $(DESTDIR)$(mandir)/$(EXEC).8.gz
+       rm $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
++      rm $(DESTDIR)$(mandir)/mpathconf.8.gz
+ clean:
+       rm -f core *.o $(EXEC) *.gz
+Index: multipath-tools-120613/multipath/main.c
+===================================================================
+--- multipath-tools-120613.orig/multipath/main.c
++++ multipath-tools-120613/multipath/main.c
+@@ -432,10 +432,10 @@ main (int argc, char *argv[])
+               exit(1);
+       }
+-      if (dm_prereq())
++      if (load_config(DEFAULT_CONFIGFILE))
+               exit(1);
+-      if (load_config(DEFAULT_CONFIGFILE))
++      if (dm_prereq())
+               exit(1);
+       while ((arg = getopt(argc, argv, ":dchl::FfM:v:p:b:Brtq")) != EOF ) {
+Index: multipath-tools-120613/multipath/mpathconf
+===================================================================
+--- /dev/null
++++ multipath-tools-120613/multipath/mpathconf
+@@ -0,0 +1,312 @@
++#!/bin/sh
++#
++# Copyright (C) 2010 Red Hat, Inc. All rights reserved.
++#
++# This file is part of the device-mapper-multipath package.
++#
++# This copyrighted material is made available to anyone wishing to use,
++# modify, copy, or redistribute it subject to the terms and conditions
++# of the GNU General Public License v.2.
++#
++# 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
++
++#
++# Simple editting of /etc/multipath.conf
++# This program was largely ripped off from lvmconf
++#
++
++unset ENABLE FIND FRIENDLY MODULE MULTIPATHD HAVE_DISABLE HAVE_FIND HAVE_BLACKLIST HAVE_DEFAULTS HAVE_FRIENDLY HAVE_MULTIPATHD HAVE_MODULE SHOW_STATUS CHANGED_CONFIG
++
++DEFAULT_CONFIGFILE="/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf"
++CONFIGFILE="/etc/multipath.conf"
++MULTIPATHDIR="/etc/multipath"
++TMPFILE=/etc/multipath/.multipath.conf.tmp
++
++function usage
++{
++      echo "usage: $0 <command>"
++      echo ""
++      echo "Commands:"
++      echo "Enable: --enable "
++      echo "Disable: --disable"
++      echo "Set user_friendly_names (Default n): --user_friendly_names <y|n>"
++      echo "Set find_multipaths (Default n): --find_multipaths <y|n>"
++      echo "Load the dm-multipath modules on enable (Default y): --with_module <y|n>"
++      echo "start/stop/reload multipathd (Default n): --with_multipathd <y|n>"
++      echo ""
++}
++
++function parse_args
++{
++      while [ -n "$1" ]; do
++              case $1 in
++                      --enable)
++                              ENABLE=1
++                              shift
++                              ;;
++                      --disable)
++                              ENABLE=0
++                              shift
++                              ;;
++                      --user_friendly_names)
++                              if [ -n "$2" ]; then
++                                      FRIENDLY=$2
++                                      shift 2
++                              else
++                                      usage
++                                      exit 1
++                              fi
++                              ;;
++                      --find_multipaths)
++                              if [ -n "$2" ]; then
++                                      FIND=$2
++                                      shift 2
++                              else
++                                      usage
++                                      exit 1
++                              fi
++                              ;;
++                      --with_module)
++                              if [ -n "$2" ]; then
++                                      MODULE=$2
++                                      shift 2
++                              else
++                                      usage
++                                      exit 1
++                              fi
++                              ;;
++                      --with_multipathd)
++                              if [ -n "$2" ]; then
++                                      MULTIPATHD=$2
++                                      shift 2
++                              else
++                                      usage
++                                      exit 1
++                              fi
++                              ;;
++                      *)
++                              usage
++                              exit
++              esac
++      done
++}
++
++function validate_args
++{
++      if [ "$ENABLE" = "0" ] && [ -n "$FRIENDLY" -o -n "$FIND" -o -n "$MODULE" ]; then
++              echo "ignoring extra parameters on disable"
++              FRIENDLY=""
++              FIND=""
++              MODULE=""
++      fi
++      if [ -n "$FRIENDLY" ] && [ "$FRIENDLY" != "y" -a "$FRIENDLY" != "n" ]; then
++              echo "--user_friendly_names must be either 'y' or 'n'"
++              exit 1
++      fi
++      if [ -n "$FIND" ] && [ "$FIND" != "y" -a "$FIND" != "n" ]; then
++              echo "--find_multipaths must be either 'y' or 'n'"
++              exit 1
++      fi
++      if [ -z "$ENABLE" -a -z "$FIND" -a -z "$FRIENDLY" ]; then
++              SHOW_STATUS=1
++      fi
++      if [ -n "$MODULE" ] && [ "$MODULE" != "y" -a "$MODULE" != "n" ]; then
++              echo "--with_module must be either 'y' or 'n'"
++              exit 1
++      fi
++      if [ -n "$MULTIPATHD" ] && [ "$MULTIPATHD" != "y" -a "$MULTIPATHD" != "n" ]; then
++              echo "--with_multipathd must be either 'y' or 'n'"
++              exit 1
++      fi
++}
++
++umask 0077
++
++parse_args "$@"
++
++validate_args
++
++if [ ! -d "$MULTIPATHDIR" ]; then
++      echo "/etc/multipath/ does not exist. failing"
++      exit 1
++fi
++
++rm $TMPFILE 2> /dev/null
++if [ -f "$CONFIGFILE" ]; then
++      cp $CONFIGFILE $TMPFILE
++elif [ -f "$DEFAULT_CONFIGFILE" ]; then
++      cp $DEFAULT_CONFIGFILE $TMPFILE
++else
++      touch $TMPFILE
++fi
++
++if grep -q "^blacklist[[:space:]]*{" $TMPFILE ; then
++      HAVE_BLACKLIST=1
++fi
++
++if grep -q "^defaults[[:space:]]*{" $TMPFILE ; then
++      HAVE_DEFAULTS=1
++fi
++
++if [ -z "$MODULE" -o "$MODULE" = "y" ]; then
++      if lsmod | grep -q "dm_multipath" ; then
++              HAVE_MODULE=1
++      else
++              HAVE_MODULE=0
++      fi
++fi
++
++if [ "$MULTIPATHD" = "y" ]; then
++      if service multipathd status > /dev/null ; then
++              HAVE_MULTIPATHD=1
++      else
++              HAVE_MULTIPATHD=0
++      fi
++fi
++
++if [ "$HAVE_BLACKLIST" = "1" ]; then
++      if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*devnode \"\.\?\*\"" ; then
++              HAVE_DISABLE=1
++      elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[#[:space:]]*devnode \"\.\?\*\"" ; then
++              HAVE_DISABLE=0
++      fi
++fi
++
++if [ "$HAVE_DEFAULTS" = "1" ]; then
++      if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)" ; then
++              HAVE_FIND=1
++      elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)" ; then
++              HAVE_FIND=0
++      fi
++      if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)" ; then
++              HAVE_FRIENDLY=1
++      elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)" ; then
++              HAVE_FRIENDLY=0
++      fi
++fi
++
++if [ -n "$SHOW_STATUS" ]; then
++      if [ -z "$HAVE_DISABLE" -o "$HAVE_DISABLE" = 0 ]; then
++              echo "multipath is enabled"
++      else
++              echo "multipath is disabled"
++      fi
++      if [ -z "$HAVE_FIND"  -o "$HAVE_FIND" = 0 ]; then
++              echo "find_multipaths is disabled"
++      else
++              echo "find_multipaths is enabled"
++      fi
++      if [ -z "$HAVE_FRIENDLY" -o "$HAVE_FRIENDLY" = 0 ]; then
++              echo "user_friendly_names is disabled"
++      else
++              echo "user_friendly_names is enabled"
++      fi
++      if [ -n "$HAVE_MODULE" ]; then
++              if [ "$HAVE_MODULE" = 1 ]; then
++                      echo "dm_multipath module is loaded"
++              else
++                      echo "dm_multipath module is not loaded"
++              fi
++      fi
++      if [ -n "$HAVE_MULTIPATHD" ]; then
++              service multipathd status
++      fi
++      exit 0
++fi
++
++if [ -z "$HAVE_BLACKLIST" ]; then
++      cat >> $TMPFILE <<- _EOF_
++
++blacklist {
++}
++_EOF_
++fi
++
++if [ -z "$HAVE_DEFAULTS" ]; then
++      cat >> $TMPFILE <<- _EOF_
++
++defaults {
++}
++_EOF_
++fi
++
++if [ "$ENABLE" = 1 ]; then
++      if [ "$HAVE_DISABLE" = 1 ]; then
++              sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/#      devnode ".*"/' $TMPFILE
++      fi
++elif [ "$ENABLE" = 0 ]; then
++      if [ -z "$HAVE_DISABLE" ]; then
++              sed -i '/^blacklist[[:space:]]*{/ a\
++      devnode "*"
++' $TMPFILE
++      elif [ "$HAVE_DISABLE" = 0 ]; then
++              sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[#[:space:]]*devnode \"\.\?\*\"/ devnode ".*"/' $TMPFILE
++      fi
++fi
++
++if [ "$FIND" = "n" ]; then
++      if [ "$HAVE_FIND" = 1 ]; then
++              sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)/     find_multipaths no/' $TMPFILE
++              CHANGED_CONFIG=1
++      fi
++elif [ "$FIND" = "y" ]; then
++      if [ -z "$HAVE_FIND" ]; then
++              sed -i '/^defaults[[:space:]]*{/ a\
++      find_multipaths yes
++' $TMPFILE
++              CHANGED_CONFIG=1
++      elif [ "$HAVE_FIND" = 0 ]; then
++              sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)/      find_multipaths yes/' $TMPFILE
++              CHANGED_CONFIG=1
++      fi
++fi
++
++if [ "$FRIENDLY" = "n" ]; then
++      if [ "$HAVE_FRIENDLY" = 1 ]; then
++              sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)/ user_friendly_names no/' $TMPFILE
++              CHANGED_CONFIG=1
++      fi
++elif [ "$FRIENDLY" = "y" ]; then
++      if [ -z "$HAVE_FRIENDLY" ]; then
++              sed -i '/^defaults[[:space:]]*{/ a\
++      user_friendly_names yes
++' $TMPFILE
++              CHANGED_CONFIG=1
++      elif [ "$HAVE_FRIENDLY" = 0 ]; then
++              sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)/  user_friendly_names yes/' $TMPFILE
++              CHANGED_CONFIG=1
++      fi
++fi
++
++if [ -f "$CONFIGFILE" ]; then
++      cp $CONFIGFILE $CONFIGFILE.old
++      if [ $? != 0 ]; then
++              echo "failed to backup old config file, $CONFIGFILE not updated"
++              exit 1
++      fi
++fi
++
++cp $TMPFILE $CONFIGFILE
++if [ $? != 0 ]; then
++      echo "failed to copy new config file into place, check $CONFIGFILE is still OK"
++      exit 1
++fi
++
++rm -f $TMPFILE
++
++if [ "$ENABLE" = 1 ]; then
++      if [ "$HAVE_MODULE" = 0 ]; then
++              modprobe dm_multipath
++      fi
++      if [ "$HAVE_MULTIPATHD" = 0 ]; then
++              service multipathd start
++      fi
++elif [ "$ENABLE" = 0 ]; then
++      if [ "$HAVE_MULTIPATHD" = 1 ]; then
++              service multipathd stop
++      fi
++elif [ -n "$CHANGED_CONFIG" -a "$HAVE_MULTIPATHD" = 1 ]; then
++      service multipathd reload
++fi
+Index: multipath-tools-120613/multipath/mpathconf.8
+===================================================================
+--- /dev/null
++++ multipath-tools-120613/multipath/mpathconf.8
+@@ -0,0 +1,103 @@
++.TH MPATHCONF 8 "June 2010" "" "Linux Administrator's Manual"
++.SH NAME
++mpathconf - A tool for configuring device-mapper-multipath
++.SH SYNOPSIS
++.B mpathconf
++.RB [\| commands \|]
++.RB [\| options \|]
++.SH DESCRIPTION
++.B mpathconf
++is a utility that creates or modifies
++.B /etc/multipath.conf.
++It can enable or disable multipathing and configure some common options.
++.B mpathconf
++can also load the
++.B dm_multipath
++module, start and stop the
++.B multipathd
++daemon, and configure the
++.B multipathd
++service to start automatically or not. If
++.B mpathconf
++is called with no commands, it will display the current configuration.
++
++The default options for mpathconf are
++.B --with_module
++The
++.B --with_multipathd
++option is not set by default.  Enabling multipathing will load the
++.B dm_multipath
++module but it will not immediately start it. This is so
++that users can manually edit their config file if necessary, before starting
++.B multipathd.
++
++If
++.B /etc/multipath.conf
++already exists, mpathconf will edit it. If it does not exist, mpathconf will
++use
++.B /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
++as the starting file. This file has
++.B user_friendly_names
++set. If this file does not exist, mpathconf will create
++.B /etc/multipath.conf
++from scratch.  For most users, this means that
++.B user_friendly_names
++will be set by default, unless they use the
++.B --user_friendly_names n
++command.
++.SH COMMANDS
++.TP
++.B --enable
++Removes any line that blacklists all device nodes from the
++.B /etc/multipath.conf
++blacklist section.
++.TP
++.B --disable
++Adds a line that blacklists all device nodes to the
++.B /etc/multipath.conf
++blacklist section. If no blacklist section exists, it will create one.
++.TP
++.B --user_friendly_name \fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this adds the line
++.B user_friendly_names yes
++to the
++.B /etc/multipath.conf
++defaults section. If set to \fBn\fP, this removes the line, if present. This
++command can be used along with any other command.
++.TP
++.B --find_multipaths\fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this adds the line
++.B find_multipaths yes
++to the
++.B /etc/multipath.conf
++defaults section. If set to \fBn\fP, this removes the line, if present. This
++command can be used aldong with any other command.
++.SH OPTIONS
++.TP
++.B --with_module\fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this runs
++.B modprobe dm_multipath
++to install the multipath modules. This option only works with the
++.B --enable
++command. This option is set to \fBy\fP by default.
++.TP
++.B --with_multipathd { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this runs
++.B service multipathd start
++to start the multipathd daemon on \fB--enable\fP,
++.B service multipathd stop
++to start the multipathd daemon on \fB--disable\fP, and
++.B service multipathd reload
++to reconfigure multipathd on \fB--user_frindly_names\fP and
++\fB--find_multipaths\fP.
++This option is set to \fBn\fP by default.
++.SH FILES
++.BR /etc/multipath.conf
++.SH "SEE ALSO"
++.BR multipath.conf (5),
++.BR modprobe (8),
++.BR multipath (8),
++.BR multipathd (8),
++.BR service (8),
++.SH AUTHOR
++Benjamin Marzinski <bmarzins@redhat.com>
diff --git a/multipath-tools/patches/0009-RH-multipathd-blacklist-all-by-default.patch b/multipath-tools/patches/0009-RH-multipathd-blacklist-all-by-default.patch
deleted file mode 100644 (file)
index df4b4c7..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-From 61b2002c6b2752c15b431e400cd614edc8c5b039 Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Mon, 19 Oct 2009 07:05:45 +0200
-Subject: [PATCH 09/12] RH: multipathd blacklist all by default
-
-If there is no configuration installed on the system, blacklist
-everything by default.
-
-BZ#528059
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
----
-:100644 100644 e7e962e... 5aa1ab0... M libmultipath/config.c
-:100644 100644 86b1320... 7e90e75... M libmultipath/config.h
- libmultipath/config.c |   18 +++++++++++++++++-
- libmultipath/config.h |    1 +
- 2 files changed, 18 insertions(+), 1 deletions(-)
-
-diff --git a/libmultipath/config.c b/libmultipath/config.c
-index e7e962e..5aa1ab0 100644
---- a/libmultipath/config.c
-+++ b/libmultipath/config.c
-@@ -19,6 +19,7 @@
- #include "blacklist.h"
- #include "defaults.h"
- #include "prio.h"
-+#include "version.h"
- static int
- hwe_strmatch (struct hwentry *hwe1, struct hwentry *hwe2)
-@@ -463,8 +464,23 @@ load_config (char * file)
-                       condlog(0, "error parsing config file");
-                       goto out;
-               }
-+      } else {
-+              condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
-+              condlog(0, "A default multipath.conf file is located at");
-+              condlog(0,
-+"/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf",
-+                      MULTIPATH_VERSION(VERSION_CODE));
-+              conf->blist_devnode = vector_alloc();
-+              if (!conf->blist_devnode) {
-+                      condlog(0, "cannot allocate blacklist\n");
-+                      goto out;
-+              }
-+              if (store_ble(conf->blist_devnode, strdup(".*"),
-+                            ORIGIN_NO_CONFIG)) {
-+                      condlog(0, "cannot store default no-config blacklist\n");
-+                      goto out;
-+              }
-       }
--
-       /*
-        * remove duplica in hwtable. config file takes precedence
-        * over build-in hwtable
-diff --git a/libmultipath/config.h b/libmultipath/config.h
-index 86b1320..7e90e75 100644
---- a/libmultipath/config.h
-+++ b/libmultipath/config.h
-@@ -5,6 +5,7 @@
- #define ORIGIN_DEFAULT 0
- #define ORIGIN_CONFIG  1
-+#define ORIGIN_NO_CONFIG 2
- enum devtypes {
-       DEV_NONE,
--- 
-1.6.5.1
-
diff --git a/multipath-tools/patches/0010-RH-add-find-multipaths.patch b/multipath-tools/patches/0010-RH-add-find-multipaths.patch
new file mode 100644 (file)
index 0000000..57eb0a8
--- /dev/null
@@ -0,0 +1,222 @@
+---
+ libmultipath/config.c    |    1 +
+ libmultipath/config.h    |    1 +
+ libmultipath/configure.c |   11 +++++++++++
+ libmultipath/defaults.h  |    1 +
+ libmultipath/dict.c      |   34 ++++++++++++++++++++++++++++++++++
+ libmultipath/wwids.c     |   26 ++++++++++++++++++++++++++
+ libmultipath/wwids.h     |    1 +
+ multipath/main.c         |    2 +-
+ multipathd/main.c        |    6 ++++++
+ 9 files changed, 82 insertions(+), 1 deletion(-)
+
+Index: multipath-tools-120518/libmultipath/config.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/config.c
++++ multipath-tools-120518/libmultipath/config.c
+@@ -514,6 +514,7 @@ load_config (char * file)
+       conf->reassign_maps = DEFAULT_REASSIGN_MAPS;
+       conf->checkint = DEFAULT_CHECKINT;
+       conf->max_checkint = MAX_CHECKINT(conf->checkint);
++      conf->find_multipaths = DEFAULT_FIND_MULTIPATHS;
+       /*
+        * preload default hwtable
+Index: multipath-tools-120518/libmultipath/configure.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/configure.c
++++ multipath-tools-120518/libmultipath/configure.c
+@@ -497,6 +497,10 @@ coalesce_paths (struct vectors * vecs, v
+       memset(empty_buff, 0, WWID_SIZE);
++      /* ignore refwwid if it's empty */
++      if (refwwid && !strlen(refwwid))
++              refwwid = NULL;
++
+       if (force_reload) {
+               vector_foreach_slot (pathvec, pp1, k) {
+                       pp1->mpp = NULL;
+@@ -526,6 +530,13 @@ coalesce_paths (struct vectors * vecs, v
+               if (refwwid && strncmp(pp1->wwid, refwwid, WWID_SIZE))
+                       continue;
++              /* If find_multipaths was selected check if the path is valid */
++              if (conf->find_multipaths && !refwwid &&
++                  !should_multipath(pp1, pathvec)) {
++                      orphan_path(pp1);
++                      continue;
++              }
++
+               /*
+                * at this point, we know we really got a new mp
+                */
+Index: multipath-tools-120518/libmultipath/defaults.h
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/defaults.h
++++ multipath-tools-120518/libmultipath/defaults.h
+@@ -15,6 +15,7 @@
+ #define DEFAULT_USER_FRIENDLY_NAMES    0
+ #define DEFAULT_VERBOSITY     2
+ #define DEFAULT_REASSIGN_MAPS 1
++#define DEFAULT_FIND_MULTIPATHS 0
+ #define DEFAULT_CHECKINT      5
+ #define MAX_CHECKINT(a)               (a << 2)
+Index: multipath-tools-120518/libmultipath/dict.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/dict.c
++++ multipath-tools-120518/libmultipath/dict.c
+@@ -585,6 +585,27 @@ def_reservation_key_handler(vector strve
+ }
+ static int
++def_find_multipaths_handler(vector strvec)
++{
++      char * buff;
++
++      buff = set_value(strvec);
++
++      if (!buff)
++              return 1;
++
++      if ((strlen(buff) == 2 && !strcmp(buff, "no")) ||
++          (strlen(buff) == 1 && !strcmp(buff, "0")))
++              conf->find_multipaths = 0;
++      else if ((strlen(buff) == 3 && !strcmp(buff, "yes")) ||
++               (strlen(buff) == 1 && !strcmp(buff, "1")))
++              conf->find_multipaths = 1;
++
++      FREE(buff);
++      return 0;
++}
++
++static int
+ def_names_handler(vector strvec)
+ {
+       char * buff;
+@@ -2549,6 +2570,18 @@ snprint_def_log_checker_err (char * buff
+ }
+ static int
++snprint_def_find_multipaths (char * buff, int len, void * data)
++{
++      if (conf->find_multipaths == DEFAULT_FIND_MULTIPATHS)
++              return 0;
++      if (!conf->find_multipaths)
++              return snprintf(buff, len, "no");
++
++      return snprintf(buff, len, "yes");
++}
++
++
++static int
+ snprint_def_user_friendly_names (char * buff, int len, void * data)
+ {
+       if (conf->user_friendly_names  == USER_FRIENDLY_NAMES_ON)
+@@ -2646,6 +2679,7 @@ init_keywords(void)
+       install_keyword("bindings_file", &bindings_file_handler, &snprint_def_bindings_file);
+       install_keyword("log_checker_err", &def_log_checker_err_handler, &snprint_def_log_checker_err);
+       install_keyword("reservation_key", &def_reservation_key_handler, &snprint_def_reservation_key);
++      install_keyword("find_multipaths", &def_find_multipaths_handler, &snprint_def_find_multipaths);
+       __deprecated install_keyword("default_selector", &def_selector_handler, NULL);
+       __deprecated install_keyword("default_path_grouping_policy", &def_pgpolicy_handler, NULL);
+       __deprecated install_keyword("default_uid_attribute", &def_uid_attribute_handler, NULL);
+Index: multipath-tools-120518/libmultipath/wwids.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/wwids.c
++++ multipath-tools-120518/libmultipath/wwids.c
+@@ -124,6 +124,32 @@ out:
+ }
+ int
++should_multipath(struct path *pp1, vector pathvec)
++{
++      int i;
++      struct path *pp2;
++
++      condlog(4, "checking if %s should be multipathed", pp1->dev);
++      vector_foreach_slot(pathvec, pp2, i) {
++              if (pp1->dev == pp2->dev)
++                      continue;
++              if (strncmp(pp1->wwid, pp2->wwid, WWID_SIZE) == 0) {
++                      condlog(3, "found multiple paths with wwid %s, "
++                              "multipathing %s", pp1->wwid, pp1->dev);
++                      return 1;
++              }
++      }
++      if (check_wwids_file(pp1->wwid, 0) < 0) {
++              condlog(3, "wwid %s not in wwids file, skipping %s",
++                      pp1->wwid, pp1->dev);
++              return 0;
++      }
++      condlog(3, "found wwid %s in wwids file, multipathing %s", pp1->wwid,
++              pp1->dev);
++      return 1;
++}
++
++int
+ remember_wwid(char *wwid)
+ {
+       int ret = check_wwids_file(wwid, 1);
+Index: multipath-tools-120518/libmultipath/wwids.h
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/wwids.h
++++ multipath-tools-120518/libmultipath/wwids.h
+@@ -12,6 +12,7 @@
+ "#\n" \
+ "# Valid WWIDs:\n"
++int should_multipath(struct path *pp, vector pathvec);
+ int remember_wwid(char *wwid);
+ int check_wwids_file(char *wwid, int write_wwid);
+Index: multipath-tools-120518/multipath/main.c
+===================================================================
+--- multipath-tools-120518.orig/multipath/main.c
++++ multipath-tools-120518/multipath/main.c
+@@ -332,7 +332,7 @@ configure (void)
+       /*
+        * core logic entry point
+        */
+-      r = coalesce_paths(&vecs, NULL, NULL, conf->force_reload);
++      r = coalesce_paths(&vecs, NULL, refwwid, conf->force_reload);
+ out:
+       if (refwwid)
+Index: multipath-tools-120518/multipathd/main.c
+===================================================================
+--- multipath-tools-120518.orig/multipathd/main.c
++++ multipath-tools-120518/multipathd/main.c
+@@ -49,6 +49,7 @@
+ #include <print.h>
+ #include <configure.h>
+ #include <prio.h>
++#include <wwids.h>
+ #include <pgpolicies.h>
+ #include <uevent.h>
+@@ -473,6 +474,11 @@ rescan:
+                       return 1;
+               }
++              if (conf->find_multipaths &&
++                  !should_multipath(pp, vecs->pathvec)) {
++                      orphan_path(pp);
++                      return 0;
++              }
+               condlog(4,"%s: creating new map", pp->dev);
+               if ((mpp = add_map_with_path(vecs, pp, 1))) {
+                       mpp->action = ACT_CREATE;
+Index: multipath-tools-120518/libmultipath/config.h
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/config.h
++++ multipath-tools-120518/libmultipath/config.h
+@@ -104,6 +104,7 @@ struct config {
+       unsigned int dev_loss;
+       int log_checker_err;
+       int allow_queueing;
++      int find_multipaths;
+       uid_t uid;
+       gid_t gid;
+       mode_t mode;
similarity index 58%
rename from multipath-tools/patches/0014-RH-add-hp_tur-checker.patch
rename to multipath-tools/patches/0011-RH-add-hp_tur-checker.patch
index 33dd43a1a8812191876ca4bf75a1e73c28de4eac..bc8d73bba1966934c86b356fc68c2320113dcb9f 100644 (file)
@@ -1,14 +1,14 @@
 ---
  libmultipath/checkers.h        |    3 +
  libmultipath/checkers/Makefile |    4 +
- libmultipath/checkers/tur.c    |  111 +++++++++++++++++++++++++++++++++++++++++
+ libmultipath/checkers/tur.c    |  123 +++++++++++++++++++++++++++++++++++++++--
  multipath.conf.annotated       |    5 +
- 4 files changed, 121 insertions(+), 2 deletions(-)
+ 4 files changed, 128 insertions(+), 7 deletions(-)
 
-Index: multipath-tools/libmultipath/checkers.h
+Index: multipath-tools-120613/libmultipath/checkers.h
 ===================================================================
---- multipath-tools.orig/libmultipath/checkers.h
-+++ multipath-tools/libmultipath/checkers.h
+--- multipath-tools-120613.orig/libmultipath/checkers.h
++++ multipath-tools-120613/libmultipath/checkers.h
 @@ -60,6 +60,7 @@ enum path_check_state {
  
  #define DIRECTIO     "directio"
@@ -17,7 +17,7 @@ Index: multipath-tools/libmultipath/checkers.h
  #define HP_SW        "hp_sw"
  #define RDAC         "rdac"
  #define EMC_CLARIION "emc_clariion"
-@@ -91,6 +92,7 @@ enum path_check_state {
+@@ -77,6 +78,7 @@ enum path_check_state {
  #define CHECKER_MSG_LEN 256
  #define CHECKER_DEV_LEN 256
  #define LIB_CHECKER_NAMELEN 256
@@ -25,7 +25,7 @@ Index: multipath-tools/libmultipath/checkers.h
  
  struct checker {
        struct list_head node;
-@@ -99,6 +101,7 @@ struct checker {
+@@ -88,6 +90,7 @@ struct checker {
        int disable;
        char name[CHECKER_NAME_LEN];
        char message[CHECKER_MSG_LEN];       /* comm with callers */
@@ -33,10 +33,10 @@ Index: multipath-tools/libmultipath/checkers.h
        void * context;                      /* store for persistent data */
        void ** mpcontext;                   /* store for persistent data shared
                                                multipath-wide. Use MALLOC if
-Index: multipath-tools/libmultipath/checkers/Makefile
+Index: multipath-tools-120613/libmultipath/checkers/Makefile
 ===================================================================
---- multipath-tools.orig/libmultipath/checkers/Makefile
-+++ multipath-tools/libmultipath/checkers/Makefile
+--- multipath-tools-120613.orig/libmultipath/checkers/Makefile
++++ multipath-tools-120613/libmultipath/checkers/Makefile
 @@ -8,6 +8,7 @@ LIBS= \
        libcheckcciss_tur.so \
        libcheckreadsector0.so \
@@ -47,7 +47,7 @@ Index: multipath-tools/libmultipath/checkers/Makefile
        libcheckhp_sw.so \
 @@ -23,6 +24,9 @@ libcheckdirectio.so: libsg.o directio.o
  libcheck%.so: libsg.o %.o
-       $(CC) $(SHARED_FLAGS) -o $@ $^
+       $(CC) $(LDFLAGS) $(SHARED_FLAGS) -o $@ $^
  
 +hp_tur.o: tur.c
 +      $(CC) $(CFLAGS) -DCHECK_WWID -c -o $@ $<
@@ -55,17 +55,11 @@ Index: multipath-tools/libmultipath/checkers/Makefile
  install:
        $(INSTALL_PROGRAM) -m 755 $(LIBS) $(DESTDIR)$(libdir)
  
-Index: multipath-tools/libmultipath/checkers/tur.c
+Index: multipath-tools-120613/libmultipath/checkers/tur.c
 ===================================================================
---- multipath-tools.orig/libmultipath/checkers/tur.c
-+++ multipath-tools/libmultipath/checkers/tur.c
-@@ -15,14 +15,101 @@
- #include "checkers.h"
-+#include "../libmultipath/debug.h"
- #include "../libmultipath/sg_include.h"
+--- multipath-tools-120613.orig/libmultipath/checkers/tur.c
++++ multipath-tools-120613/libmultipath/checkers/tur.c
+@@ -24,12 +24,101 @@
  #define TUR_CMD_LEN 6
  #define HEAVY_CHECK_COUNT       10
  
@@ -73,6 +67,9 @@ Index: multipath-tools/libmultipath/checkers/tur.c
 +#define MSG_TUR_UP    "HP tur checker reports path is up"
 +#define MSG_TUR_DOWN  "HP tur checker reports path is down"
 +#define MSG_TUR_GHOST "HP tur checker reports path is in standby state"
++#define MSG_TUR_RUNNING "HP tur checker still running"
++#define MSG_TUR_TIMEOUT "HP tur checker timed out"
++#define MSG_TUR_FAILED  "HP tur checker failed to initialize"
 +#define EVPD            0x01
 +#define PAGE_83         0x83
 +#define INQUIRY_CMD     0x12
@@ -82,11 +79,14 @@ Index: multipath-tools/libmultipath/checkers/tur.c
  #define MSG_TUR_UP    "tur checker reports path is up"
  #define MSG_TUR_DOWN  "tur checker reports path is down"
  #define MSG_TUR_GHOST "tur checker reports path is in standby state"
+ #define MSG_TUR_RUNNING       "tur checker still running"
+ #define MSG_TUR_TIMEOUT       "tur checker timed out"
+ #define MSG_TUR_FAILED        "tur checker failed to initialize"
 +#endif
 +
 +#ifdef CHECK_WWID
 +static int
-+do_inq(struct checker * c, char * wwid)
++do_inq(int fd, unsigned int timeout, char * wwid)
 +{
 +      int ret = -1;
 +      unsigned char inq_cmd[INQUIRY_CMDLEN] =
@@ -111,9 +111,9 @@ Index: multipath-tools/libmultipath/checkers/tur.c
 +      io_hdr.dxferp = (unsigned char *)resp_buffer;
 +      io_hdr.cmdp = inq_cmd;
 +      io_hdr.sbp = sense_buffer;
-+      io_hdr.timeout = 60; // IOCTL timeout value.
++      io_hdr.timeout = timeout; // IOCTL timeout value.
 +
-+      if (ioctl(c->fd, SG_IO, &io_hdr) < 0) {
++      if (ioctl(fd, SG_IO, &io_hdr) < 0) {
 +              condlog(0, "SG_IO ioctl failed: %s", strerror(errno));
 +              return ret;
 +      }
@@ -160,57 +160,100 @@ Index: multipath-tools/libmultipath/checkers/tur.c
 +#endif
  
  struct tur_checker_context {
-       void * dummy;
-@@ -30,6 +117,9 @@ struct tur_checker_context {
+       dev_t devt;
+@@ -43,6 +132,7 @@ struct tur_checker_context {
+       pthread_cond_t active;
+       pthread_spinlock_t hldr_lock;
+       int holders;
++      char wwid[WWID_SIZE];
+       char message[CHECKER_MSG_LEN];
+ };
  
- int libcheck_init (struct checker * c)
- {
-+#ifdef CHECK_WWID
-+      memset(c->wwid, 0, WWID_SIZE);
-+#endif
-       return 0;
- }
+@@ -100,12 +190,15 @@ void libcheck_free (struct checker * c)
+ #define TUR_MSG(msg, fmt, args...) snprintf(msg, CHECKER_MSG_LEN, fmt, ##args);
  
-@@ -45,6 +135,9 @@ libcheck_check (struct checker * c)
+ int
+-tur_check(int fd, unsigned int timeout, char *msg)
++tur_check (int fd, unsigned int timeout, char *msg, char *wwid)
+ {
+       struct sg_io_hdr io_hdr;
        unsigned char turCmdBlk[TUR_CMD_LEN] = { 0x00, 0, 0, 0, 0, 0 };
        unsigned char sense_buffer[32];
        int retry_tur = 5;
 +#ifdef CHECK_WWID
-+      char wwid[WWID_SIZE];
++      char new_wwid[WWID_SIZE];
 +#endif
  
   retry:
        memset(&io_hdr, 0, sizeof (struct sg_io_hdr));
-@@ -110,6 +203,24 @@ libcheck_check (struct checker * c)
-               MSG(c, MSG_TUR_DOWN);
+@@ -179,6 +272,24 @@ tur_check(int fd, unsigned int timeout,
+               TUR_MSG(msg, MSG_TUR_DOWN);
                return PATH_DOWN;
        }
 +#ifdef CHECK_WWID
-+      if (!do_inq(c, wwid)) {
++      if (!do_inq(fd, timeout, new_wwid)) {
 +
-+              if(!strcmp(c->wwid, "\0")) {
-+                      strcpy(c->wwid, wwid);
++              if(!strcmp(wwid, "\0")) {
++                      strcpy(wwid, new_wwid);
 +                      goto up;
 +              }
 +
-+              if (strcmp(c->wwid , wwid)) {
++              if (strcmp(wwid , new_wwid)) {
 +                      condlog(0,
 +                              "hp_tur: Lun collided. new_wwid %s old_wwid %s",
-+                              wwid, c->wwid);
-+                      MSG(c, MSG_TUR_DOWN);
++                              new_wwid, wwid);
++                      TUR_MSG(msg, MSG_TUR_DOWN);
 +                      return PATH_DOWN;
 +              }
 +      }
 +up:
 +#endif
-       MSG(c, MSG_TUR_UP);
+       TUR_MSG(msg, MSG_TUR_UP);
        return PATH_UP;
  }
-Index: multipath-tools/multipath.conf.annotated
+@@ -215,7 +326,7 @@ void *tur_thread(void *ctx)
+       ct->state = PATH_PENDING;
+       pthread_mutex_unlock(&ct->lock);
+-      state = tur_check(ct->fd, ct->timeout, ct->message);
++      state = tur_check(ct->fd, ct->timeout, ct->message, ct->wwid);
+       /* TUR checker done */
+       pthread_mutex_lock(&ct->lock);
+@@ -275,7 +386,7 @@ libcheck_check (struct checker * c)
+               ct->devt = sb.st_rdev;
+       if (c->sync)
+-              return tur_check(c->fd, c->timeout, c->message);
++              return tur_check(c->fd, c->timeout, c->message, ct->wwid);
+       /*
+        * Async mode
+@@ -319,7 +430,8 @@ libcheck_check (struct checker * c)
+                       pthread_mutex_unlock(&ct->lock);
+                       condlog(3, "%d:%d: tur thread not responding, "
+                               "using sync mode", TUR_DEVT(ct));
+-                      return tur_check(c->fd, c->timeout, c->message);
++                      return tur_check(c->fd, c->timeout, c->message,
++                                       ct->wwid);
+               }
+               /* Start new TUR checker */
+               ct->state = PATH_UNCHECKED;
+@@ -337,7 +449,8 @@ libcheck_check (struct checker * c)
+                       ct->holders--;
+                       condlog(3, "%d:%d: failed to start tur thread, using"
+                               " sync mode", TUR_DEVT(ct));
+-                      return tur_check(c->fd, c->timeout, c->message);
++                      return tur_check(c->fd, c->timeout, c->message,
++                                       ct->wwid);
+               }
+               pthread_attr_destroy(&attr);
+               tur_timeout(&tsp);
+Index: multipath-tools-120613/multipath.conf.annotated
 ===================================================================
---- multipath-tools.orig/multipath.conf.annotated
-+++ multipath-tools/multipath.conf.annotated
-@@ -86,7 +86,8 @@
+--- multipath-tools-120613.orig/multipath.conf.annotated
++++ multipath-tools-120613/multipath.conf.annotated
+@@ -96,7 +96,8 @@
  #     # name    : path_checker, checker
  #     # scope   : multipath & multipathd
  #     # desc    : the default method used to determine the paths' state
@@ -220,9 +263,9 @@ Index: multipath-tools/multipath.conf.annotated
  #     # default : directio
  #     #
  #     path_checker    directio
-@@ -456,7 +457,7 @@
- #             # scope   : multipathd
- #             # desc    : path checking alorithm to use to check path state
+@@ -493,7 +494,7 @@
+ #             # scope   : multipathd & multipathd
+ #             # desc    : path checking algorithm to use to check path state
  #             # values  : readsector0|tur|emc_clariion|hp_sw|directio|rdac|
 -#             #           cciss_tur
 +#             #           cciss_tur|hp_tur
diff --git a/multipath-tools/patches/0011-RH-fix-init-script-LSB-headers.patch b/multipath-tools/patches/0011-RH-fix-init-script-LSB-headers.patch
deleted file mode 100644 (file)
index 4e305ad..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From 887b0721d29eed45621b5a7fefaf462378cc9dcd Mon Sep 17 00:00:00 2001
-From: Fabio M. Di Nitto <fdinitto@redhat.com>
-Date: Mon, 19 Oct 2009 08:33:07 +0200
-Subject: [PATCH 11/12] RH: fix init script LSB headers
-
-Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
----
-:100644 100644 e46b1b8... cfc9cf5... M multipathd/multipathd.init.redhat
- multipathd/multipathd.init.redhat |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/multipathd/multipathd.init.redhat b/multipathd/multipathd.init.redhat
-index e46b1b8..cfc9cf5 100644
---- a/multipathd/multipathd.init.redhat
-+++ b/multipathd/multipathd.init.redhat
-@@ -7,6 +7,10 @@
- ### BEGIN INIT INFO
- # Provides: multipathd
-+# Required-Start:
-+# Required-Stop:
-+# Default-Start:
-+# Default-Stop:
- # Short-Description: Control multipathd
- # Description: This service monitors and manages
- #              device-mapper multipath devices
--- 
-1.6.5.1
-
similarity index 81%
rename from multipath-tools/patches/0022-RHBZ-557845-RHEL5-style-partitions.patch
rename to multipath-tools/patches/0012-RH-RHEL5-style-partitions.patch
index 95488b8c867ae3de7867823ca1dbdff3d3364a5d..47fa725ee1176c996ab249b3a2f2b0beeca806df 100644 (file)
@@ -1,15 +1,15 @@
 ---
- kpartx/bsd.c    |   35 ----------------
+ kpartx/bsd.c    |   35 ---------------
  kpartx/dos.c    |    7 +--
- kpartx/kpartx.c |  121 +++++++-------------------------------------------------
+ kpartx/kpartx.c |  123 +++++++-------------------------------------------------
  kpartx/kpartx.h |    1 
- kpartx/sun.c    |   35 ----------------
- 5 files changed, 24 insertions(+), 175 deletions(-)
+ kpartx/sun.c    |   35 ---------------
+ 5 files changed, 24 insertions(+), 177 deletions(-)
 
-Index: multipath-tools/kpartx/bsd.c
+Index: multipath-tools-120123/kpartx/bsd.c
 ===================================================================
---- multipath-tools.orig/kpartx/bsd.c
-+++ multipath-tools/kpartx/bsd.c
+--- multipath-tools-120123.orig/kpartx/bsd.c
++++ multipath-tools-120123/kpartx/bsd.c
 @@ -50,10 +50,10 @@ int
  read_bsd_pt(int fd, struct slice all, struct slice *sp, int ns) {
        struct bsd_disklabel *l;
@@ -60,10 +60,10 @@ Index: multipath-tools/kpartx/bsd.c
 -      }
        return n;
  }
-Index: multipath-tools/kpartx/dos.c
+Index: multipath-tools-120123/kpartx/dos.c
 ===================================================================
---- multipath-tools.orig/kpartx/dos.c
-+++ multipath-tools/kpartx/dos.c
+--- multipath-tools-120123.orig/kpartx/dos.c
++++ multipath-tools-120123/kpartx/dos.c
 @@ -16,7 +16,7 @@ is_extended(int type) {
  }
  
@@ -92,20 +92,20 @@ Index: multipath-tools/kpartx/dos.c
                }
        }
        return n;
-Index: multipath-tools/kpartx/kpartx.c
+Index: multipath-tools-120123/kpartx/kpartx.c
 ===================================================================
---- multipath-tools.orig/kpartx/kpartx.c
-+++ multipath-tools/kpartx/kpartx.c
-@@ -185,7 +185,7 @@ get_hotplug_device(void)
+--- multipath-tools-120123.orig/kpartx/kpartx.c
++++ multipath-tools-120123/kpartx/kpartx.c
+@@ -190,7 +190,7 @@ get_hotplug_device(void)
  
  int
  main(int argc, char **argv){
--      int fd, i, j, m, n, op, off, arg, c, d;
-+      int fd, i, j, k, n, op, off, arg;
+-      int i, j, m, n, op, off, arg, c, d, ro=0;
++      int i, j, m, n, op, off, arg, ro=0;
+       int fd = -1;
        struct slice all;
        struct pt *ptp;
-       enum action what = LIST;
-@@ -355,49 +355,30 @@ main(int argc, char **argv){
+@@ -380,49 +380,30 @@ main(int argc, char **argv){
                else
                        continue;
  
@@ -114,9 +114,9 @@ Index: multipath-tools/kpartx/kpartx.c
 +               * zero their size to avoid mapping
 +               */
 +              for (j = 0; j < n; j++) {
-+                      for (k = j + 1; k < n; k++) {
-+                              if (slices[k].start > slices[j].start &&
-+                                  slices[k].start < slices[j].start +
++                      for (m = j + 1; m < n; m++) {
++                              if (slices[m].start > slices[j].start &&
++                                  slices[m].start < slices[j].start +
 +                                  slices[j].size)
 +                                      slices[j].size = 0;
 +                      }
@@ -167,12 +167,12 @@ Index: multipath-tools/kpartx/kpartx.c
 -                                      break;
 -                      }
  
-                       if (loopcreated && S_ISREG (buf.st_mode)) {
-                               if (del_loop(device)) {
-@@ -443,16 +424,10 @@ main(int argc, char **argv){
                        break;
  
+@@ -461,16 +442,10 @@ main(int argc, char **argv){
                case ADD:
+               case UPDATE:
+                       /* ADD and UPDATE share the same code that adds new partitions. */
 -                      for (j = 0, c = 0; j < n; j++) {
 +                      for (j = 0; j < n; j++) {
                                if (slices[j].size == 0)
@@ -187,7 +187,7 @@ Index: multipath-tools/kpartx/kpartx.c
                                if (safe_sprintf(partname, "%s%s%d",
                                             mapname, delim, j+1)) {
                                        fprintf(stderr, "partname too small\n");
-@@ -493,70 +468,6 @@ main(int argc, char **argv){
+@@ -511,72 +486,6 @@ main(int argc, char **argv){
                                               slices[j].minor, slices[j].size,
                                               DM_TARGET, params);
                        }
@@ -234,13 +234,15 @@ Index: multipath-tools/kpartx/kpartx.c
 -                                            DM_DEVICE_RELOAD : DM_DEVICE_CREATE);
 -
 -                                      dm_addmap(op, partname, DM_TARGET, params,
--                                                slices[j].size, uuid, j+1,
+-                                                slices[j].size, ro, uuid, j+1,
 -                                                buf.st_mode & 0777,
--                                                buf.st_uid, buf.st_gid);
+-                                                buf.st_uid, buf.st_gid,
+-                                                &cookie);
 -
 -                                      if (op == DM_DEVICE_RELOAD)
 -                                              dm_simplecmd(DM_DEVICE_RESUME,
--                                                           partname, 1);
+-                                                           partname, 1,
+-                                                           &cookie);
 -
 -                                      dm_devn(partname, &slices[j].major,
 -                                              &slices[j].minor);
@@ -255,13 +257,13 @@ Index: multipath-tools/kpartx/kpartx.c
 -                              if (d == c)
 -                                      break;
 -                      }
-                       break;
  
-               default:
-Index: multipath-tools/kpartx/kpartx.h
+                       if (what == ADD) {
+                               /* Skip code that removes devmappings for deleted partitions */
+Index: multipath-tools-120123/kpartx/kpartx.h
 ===================================================================
---- multipath-tools.orig/kpartx/kpartx.h
-+++ multipath-tools/kpartx/kpartx.h
+--- multipath-tools-120123.orig/kpartx/kpartx.h
++++ multipath-tools-120123/kpartx/kpartx.h
 @@ -24,7 +24,6 @@
  struct slice {
        uint64_t start;
@@ -270,10 +272,10 @@ Index: multipath-tools/kpartx/kpartx.h
        int major;
        int minor;
  };
-Index: multipath-tools/kpartx/sun.c
+Index: multipath-tools-120123/kpartx/sun.c
 ===================================================================
---- multipath-tools.orig/kpartx/sun.c
-+++ multipath-tools/kpartx/sun.c
+--- multipath-tools-120123.orig/kpartx/sun.c
++++ multipath-tools-120123/kpartx/sun.c
 @@ -62,8 +62,8 @@ int
  read_sun_pt(int fd, struct slice all, struct slice *sp, int ns) {
        struct sun_disk_label *l;
diff --git a/multipath-tools/patches/0012-RH-udev-sync-support.patch b/multipath-tools/patches/0012-RH-udev-sync-support.patch
deleted file mode 100644 (file)
index b30828c..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
----
- kpartx/devmapper.c       |   10 ++++++++--
- kpartx/devmapper.h       |    4 ++--
- kpartx/kpartx.c          |   22 ++++++++++++++++------
- libmultipath/config.h    |    2 ++
- libmultipath/configure.c |    2 +-
- libmultipath/devmapper.c |   29 +++++++++++++++++++----------
- libmultipath/devmapper.h |    8 +++++---
- multipath/main.c         |    1 +
- multipathd/main.c        |    1 +
- 9 files changed, 55 insertions(+), 24 deletions(-)
-
-Index: multipath-tools/kpartx/devmapper.c
-===================================================================
---- multipath-tools.orig/kpartx/devmapper.c
-+++ multipath-tools/kpartx/devmapper.c
-@@ -52,8 +52,10 @@ dm_prereq (char * str, int x, int y, int
- }
- extern int
--dm_simplecmd (int task, const char *name, int no_flush) {
-+dm_simplecmd (int task, const char *name, int no_flush, uint32_t *cookie) {
-       int r = 0;
-+      int udev_wait_flag = (task == DM_DEVICE_RESUME ||
-+                            task == DM_DEVICE_REMOVE);
-       struct dm_task *dmt;
-       if (!(dmt = dm_task_create(task)))
-@@ -68,6 +70,8 @@ dm_simplecmd (int task, const char *name
-       if (no_flush)
-               dm_task_no_flush(dmt);
-+      if (udev_wait_flag && !dm_task_set_cookie(dmt, cookie, 0))
-+              goto out;
-       r = dm_task_run(dmt);
-       out:
-@@ -78,7 +82,7 @@ dm_simplecmd (int task, const char *name
- extern int
- dm_addmap (int task, const char *name, const char *target,
-          const char *params, uint64_t size, const char *uuid, int part,
--         mode_t mode, uid_t uid, gid_t gid) {
-+         mode_t mode, uid_t uid, gid_t gid, uint32_t *cookie) {
-       int r = 0;
-       struct dm_task *dmt;
-       char *prefixed_uuid = NULL;
-@@ -113,6 +117,8 @@ dm_addmap (int task, const char *name, c
-       dm_task_no_open_count(dmt);
-+      if (task == DM_DEVICE_CREATE && !dm_task_set_cookie(dmt, cookie, 0))
-+              goto addout;
-       r = dm_task_run (dmt);
-       addout:
-Index: multipath-tools/kpartx/kpartx.c
-===================================================================
---- multipath-tools.orig/kpartx/kpartx.c
-+++ multipath-tools/kpartx/kpartx.c
-@@ -82,7 +82,7 @@ initpts(void)
-       addpts("sun", read_sun_pt);
- }
--static char short_opts[] = "ladgvp:t:";
-+static char short_opts[] = "ladgvp:t:s";
- /* Used in gpt.c */
- int force_gpt=0;
-@@ -96,6 +96,7 @@ usage(void) {
-       printf("\t-p set device name-partition number delimiter\n");
-       printf("\t-g force GUID partition table (GPT)\n");
-       printf("\t-v verbose\n");
-+      printf("\t-s sync mode. Don't return until the partitions are created\n");
-       return 1;
- }
-@@ -198,7 +199,9 @@ main(int argc, char **argv){
-       int loopro = 0;
-       int hotplug = 0;
-       int loopcreated = 0;
-+      int sync = 0;
-       struct stat buf;
-+      uint32_t cookie = 0;
-       initpts();
-       init_crc32();
-@@ -251,11 +254,17 @@ main(int argc, char **argv){
-               case 'd':
-                       what = DELETE;
-                       break;
-+              case 's':
-+                      sync = 1;
-+                      break;
-               default:
-                       usage();
-                       exit(1);
-       }
-+      if (!sync)
-+              dm_udev_set_sync_support(0);
-+
-       if (dm_prereq(DM_TARGET, 0, 0, 0) && (what == ADD || what == DELETE)) {
-               fprintf(stderr, "device mapper prerequisites not met\n");
-               exit(1);
-@@ -413,8 +422,8 @@ main(int argc, char **argv){
-                               if (!slices[j].size || !dm_map_present(partname))
-                                       continue;
--                              if (!dm_simplecmd(DM_DEVICE_REMOVE,
--                                                      partname, 0)) {
-+                              if (!dm_simplecmd(DM_DEVICE_REMOVE, partname,
-+                                                0, &cookie)) {
-                                       r++;
-                                       continue;
-                               }
-@@ -463,14 +472,14 @@ main(int argc, char **argv){
-                               if (!dm_addmap(op, partname, DM_TARGET, params,
-                                              slices[j].size, uuid, j+1,
-                                              buf.st_mode & 0777, buf.st_uid,
--                                             buf.st_gid)) {
-+                                             buf.st_gid, &cookie)) {
-                                       fprintf(stderr, "create/reload failed on %s\n",
-                                               partname);
-                                       r++;
-                               }
-                               if (op == DM_DEVICE_RELOAD &&
--                                  !dm_simplecmd(DM_DEVICE_RESUME,
--                                                      partname, 1)) {
-+                                  !dm_simplecmd(DM_DEVICE_RESUME, partname,
-+                                                1, &cookie)) {
-                                       fprintf(stderr, "resume failed on %s\n",
-                                               partname);
-                                       r++;
-@@ -557,6 +566,7 @@ main(int argc, char **argv){
-               if (n > 0)
-                       break;
-       }
-+      dm_udev_wait(cookie);
-       dm_lib_release();
-       dm_lib_exit();
-Index: multipath-tools/kpartx/devmapper.h
-===================================================================
---- multipath-tools.orig/kpartx/devmapper.h
-+++ multipath-tools/kpartx/devmapper.h
-@@ -3,9 +3,9 @@
- #define MKDEV(ma,mi)    ((mi & 0xff) | (ma << 8) | ((mi & ~0xff) << 12))
- int dm_prereq (char *, int, int, int);
--int dm_simplecmd (int, const char *, int);
-+int dm_simplecmd (int, const char *, int, uint32_t *);
- int dm_addmap (int, const char *, const char *, const char *, uint64_t,
--             const char *, int, mode_t, uid_t, gid_t);
-+             const char *, int, mode_t, uid_t, gid_t, uint32_t *);
- int dm_map_present (char *);
- char * dm_mapname(int major, int minor);
- dev_t dm_get_first_dep(char *devname);
-Index: multipath-tools/libmultipath/config.h
-===================================================================
---- multipath-tools.orig/libmultipath/config.h
-+++ multipath-tools/libmultipath/config.h
-@@ -2,6 +2,7 @@
- #define _CONFIG_H
- #include <sys/types.h>
-+#include <stdint.h>
- #define ORIGIN_DEFAULT 0
- #define ORIGIN_CONFIG  1
-@@ -84,6 +85,7 @@ struct config {
-       uid_t uid;
-       gid_t gid;
-       mode_t mode;
-+      uint32_t cookie;
-       char * dev;
-       char * sysfs_dir;
-Index: multipath-tools/libmultipath/devmapper.c
-===================================================================
---- multipath-tools.orig/libmultipath/devmapper.c
-+++ multipath-tools/libmultipath/devmapper.c
-@@ -149,8 +149,10 @@ dm_prereq (void)
- }
- static int
--dm_simplecmd (int task, const char *name, int no_flush) {
-+dm_simplecmd (int task, const char *name, int no_flush, int need_sync) {
-       int r = 0;
-+      int udev_wait_flag = (need_sync && (task == DM_DEVICE_RESUME ||
-+                                          task == DM_DEVICE_REMOVE));
-       struct dm_task *dmt;
-       if (!(dmt = dm_task_create (task)))
-@@ -166,6 +168,8 @@ dm_simplecmd (int task, const char *name
-               dm_task_no_flush(dmt);          /* for DM_DEVICE_SUSPEND/RESUME */
- #endif
-+      if (udev_wait_flag && !dm_task_set_cookie(dmt, &conf->cookie, 0))
-+              goto out;
-       r = dm_task_run (dmt);
-       out:
-@@ -174,13 +178,13 @@ dm_simplecmd (int task, const char *name
- }
- extern int
--dm_simplecmd_flush (int task, const char *name) {
--      return dm_simplecmd(task, name, 0);
-+dm_simplecmd_flush (int task, const char *name, int needsync) {
-+      return dm_simplecmd(task, name, 0, needsync);
- }
- extern int
- dm_simplecmd_noflush (int task, const char *name) {
--      return dm_simplecmd(task, name, 1);
-+      return dm_simplecmd(task, name, 1, 1);
- }
- extern int
-@@ -226,6 +230,9 @@ dm_addmap (int task, const char *target,
-       dm_task_no_open_count(dmt);
-+      if (task == DM_DEVICE_CREATE &&
-+          !dm_task_set_cookie(dmt, &conf->cookie, 0))
-+              goto freeout;
-       r = dm_task_run (dmt);
-       freeout:
-@@ -249,7 +256,7 @@ _dm_addmap_create (struct multipath *mpp
-       if (!r && dm_map_present(mpp->alias)) {
-               condlog(3, "%s: failed to load map (a path might be in use)",
-                       mpp->alias);
--              dm_flush_map(mpp->alias);
-+              dm_flush_map_nosync(mpp->alias);
-       }
-       return r;
- }
-@@ -529,7 +536,7 @@ out:
- }
- extern int
--dm_flush_map (const char * mapname)
-+_dm_flush_map (const char * mapname, int need_sync)
- {
-       int r;
-@@ -539,7 +546,7 @@ dm_flush_map (const char * mapname)
-       if (dm_type(mapname, TGT_MPATH) <= 0)
-               return 0; /* nothing to do */
--      if (dm_remove_partmaps(mapname))
-+      if (dm_remove_partmaps(mapname, need_sync))
-               return 1;
-       if (dm_get_opencount(mapname)) {
-@@ -547,7 +554,7 @@ dm_flush_map (const char * mapname)
-               return 1;
-       }
--      r = dm_simplecmd_flush(DM_DEVICE_REMOVE, mapname);
-+      r = dm_simplecmd_flush(DM_DEVICE_REMOVE, mapname, need_sync);
-       if (r) {
-               condlog(4, "multipath map %s removed", mapname);
-@@ -883,7 +890,7 @@ bad:
- }
- int
--dm_remove_partmaps (const char * mapname)
-+dm_remove_partmaps (const char * mapname, int need_sync)
- {
-       struct dm_task *dmt;
-       struct dm_names *names;
-@@ -946,7 +953,7 @@ dm_remove_partmaps (const char * mapname
-                                */
-                               condlog(4, "partition map %s removed",
-                                       names->name);
--                              dm_simplecmd_flush(DM_DEVICE_REMOVE, names->name);
-+                              dm_simplecmd_flush(DM_DEVICE_REMOVE, names->name, need_sync);
-                  }
-               next = names->next;
-@@ -1102,6 +1109,8 @@ dm_rename (char * old, char * new)
-       dm_task_no_open_count(dmt);
-+      if (!dm_task_set_cookie(dmt, &conf->cookie, 0))
-+              goto out;
-       if (!dm_task_run(dmt))
-               goto out;
-Index: multipath-tools/libmultipath/devmapper.h
-===================================================================
---- multipath-tools.orig/libmultipath/devmapper.h
-+++ multipath-tools/libmultipath/devmapper.h
-@@ -8,7 +8,7 @@
- void dm_init(void);
- int dm_prereq (void);
--int dm_simplecmd_flush (int, const char *);
-+int dm_simplecmd_flush (int, const char *, int);
- int dm_simplecmd_noflush (int, const char *);
- int dm_addmap_create (struct multipath *mpp);
- int dm_addmap_create_ro (struct multipath *mpp);
-@@ -18,7 +18,9 @@ int dm_map_present (const char *);
- int dm_get_map(char *, unsigned long long *, char *);
- int dm_get_status(char *, char *);
- int dm_type(const char *, char *);
--int dm_flush_map (const char *);
-+int _dm_flush_map (const char *, int);
-+#define dm_flush_map(mapname) _dm_flush_map(mapname, 1)
-+#define dm_flush_map_nosync(mapname) _dm_flush_map(mapname, 0)
- int dm_flush_maps (void);
- int dm_fail_path(char * mapname, char * path);
- int dm_reinstate_path(char * mapname, char * path);
-@@ -31,7 +33,7 @@ int dm_get_maps (vector mp);
- int dm_geteventnr (char *name);
- int dm_get_minor (char *name);
- char * dm_mapname(int major, int minor);
--int dm_remove_partmaps (const char * mapname);
-+int dm_remove_partmaps (const char * mapname, int need_sync);
- int dm_get_uuid(char *name, char *uuid);
- int dm_get_info (char * mapname, struct dm_info ** dmi);
- int dm_rename (char * old, char * new);
-Index: multipath-tools/multipath/main.c
-===================================================================
---- multipath-tools.orig/multipath/main.c
-+++ multipath-tools/multipath/main.c
-@@ -454,6 +454,7 @@ main (int argc, char *argv[])
-               condlog(3, "restart multipath configuration process");
-       
- out:
-+      dm_udev_wait(conf->cookie);
-       sysfs_cleanup();
-       dm_lib_release();
-Index: multipath-tools/multipathd/main.c
-===================================================================
---- multipath-tools.orig/multipathd/main.c
-+++ multipath-tools/multipathd/main.c
-@@ -1396,6 +1396,7 @@ child (void * param)
-               exit(1);
-       }
-       conf->daemon = 1;
-+      dm_udev_set_sync_support(0);
-       /*
-        * fetch and configure both paths and multipaths
-        */
-Index: multipath-tools/libmultipath/configure.c
-===================================================================
---- multipath-tools.orig/libmultipath/configure.c
-+++ multipath-tools/libmultipath/configure.c
-@@ -373,7 +373,7 @@ domap (struct multipath * mpp)
-               if (!r)
-                       r = dm_addmap_reload_ro(mpp);
-               if (r)
--                      r = dm_simplecmd_flush(DM_DEVICE_RESUME, mpp->alias);
-+                      r = dm_simplecmd_flush(DM_DEVICE_RESUME, mpp->alias, 1);
-               break;
-       case ACT_RENAME:
diff --git a/multipath-tools/patches/0013-RH-add-weighted_prio-prioritizer.patch b/multipath-tools/patches/0013-RH-add-weighted_prio-prioritizer.patch
deleted file mode 100644 (file)
index 63b493b..0000000
+++ /dev/null
@@ -1,546 +0,0 @@
----
- libmultipath/config.c                |   10 ++
- libmultipath/config.h                |    4 +
- libmultipath/dict.c                  |   92 ++++++++++++++++++++---
- libmultipath/discovery.c             |   56 +++++++-------
- libmultipath/prio.h                  |    1 
- libmultipath/prioritizers/Makefile   |    3 
- libmultipath/prioritizers/weighted.c |  139 +++++++++++++++++++++++++++++++++++
- libmultipath/prioritizers/weighted.h |    8 ++
- libmultipath/propsel.c               |   11 ++
- libmultipath/structs.h               |    1 
- 10 files changed, 286 insertions(+), 39 deletions(-)
-
-Index: multipath-tools/libmultipath/config.c
-===================================================================
---- multipath-tools.orig/libmultipath/config.c
-+++ multipath-tools/libmultipath/config.c
-@@ -156,6 +156,9 @@ free_hwe (struct hwentry * hwe)
-       if (hwe->prio_name)
-               FREE(hwe->prio_name);
-+      if (hwe->prio_args)
-+              FREE(hwe->prio_args);
-+
-       if (hwe->bl_product)
-               FREE(hwe->bl_product);
-@@ -195,6 +198,12 @@ free_mpe (struct mpentry * mpe)
-       if (mpe->alias)
-               FREE(mpe->alias);
-+      if (mpe->prio_name)
-+              FREE(mpe->prio_name);
-+
-+      if (mpe->prio_args)
-+              FREE(mpe->prio_args);
-+
-       FREE(mpe);
- }
-@@ -279,6 +288,7 @@ merge_hwe (struct hwentry * hwe1, struct
-       merge_str(selector);
-       merge_str(checker_name);
-       merge_str(prio_name);
-+      merge_str(prio_args);
-       merge_str(bl_product);
-       merge_num(pgpolicy);
-       merge_num(pgfailback);
-Index: multipath-tools/libmultipath/config.h
-===================================================================
---- multipath-tools.orig/libmultipath/config.h
-+++ multipath-tools/libmultipath/config.h
-@@ -25,6 +25,7 @@ struct hwentry {
-       char * selector;
-       char * checker_name;
-       char * prio_name;
-+      char * prio_args;
-       int pgpolicy;
-       int pgfailback;
-@@ -43,6 +44,8 @@ struct mpentry {
-       char * alias;
-       char * getuid;
-       char * selector;
-+      char * prio_name;
-+      char * prio_args;
-       int pgpolicy;
-       int pgfailback;
-@@ -97,6 +100,7 @@ struct config {
-       char * hwhandler;
-       char * bindings_file;
-       char * prio_name;
-+      char * prio_args;
-       char * checker_name;
-       vector keywords;
-Index: multipath-tools/libmultipath/dict.c
-===================================================================
---- multipath-tools.orig/libmultipath/dict.c
-+++ multipath-tools/libmultipath/dict.c
-@@ -139,11 +139,23 @@ def_getuid_callout_handler(vector strvec
- static int
- def_prio_handler(vector strvec)
- {
--      conf->prio_name = set_value(strvec);
-+      char *name, *args;
--      if (!conf->prio_name)
-+      name = set_value(strvec);
-+      if (!name)
-               return 1;
-+      args = strpbrk(name, " \t");
-+      if (args) {
-+              *args = 0;
-+              while(*++args && isblank(*args)); /* Do nothing */
-+      }
-+
-+      conf->prio_name = STRDUP(name);
-+      if (args && *args)
-+              conf->prio_args = STRDUP(args);
-+
-+      FREE(name);
-       return 0;
- }
-@@ -806,16 +818,27 @@ hw_handler_handler(vector strvec)
- static int
- hw_prio_handler(vector strvec)
- {
-+      char *name, *args;
-       struct hwentry * hwe = VECTOR_LAST_SLOT(conf->hwtable);
-       if (!hwe)
-               return 1;
--      hwe->prio_name = set_value(strvec);
--
--      if (!hwe->prio_name)
-+      name = set_value(strvec);
-+      if (!name)
-               return 1;
-+      args = strpbrk(name, " \t");
-+      if (args) {
-+              *args = 0;
-+              while(*++args && isblank(*args)); /* Do nothing */
-+      }
-+
-+      hwe->prio_name = STRDUP(name);
-+      if (args && *args)
-+              hwe->prio_args = STRDUP(args);
-+
-+      FREE(name);
-       return 0;
- }
-@@ -1293,6 +1316,33 @@ mp_flush_on_last_del_handler(vector strv
-       return 0;
- }
-+static int
-+mp_prio_handler(vector strvec)
-+{
-+      char *name, *args;
-+      struct mpentry *mpe = VECTOR_LAST_SLOT(conf->mptable);
-+
-+      if (!mpe)
-+              return 1;
-+
-+      name = set_value(strvec);
-+      if (!name)
-+              return 1;
-+
-+      args = strpbrk(name, " \t");
-+      if (args) {
-+              *args = 0;
-+              while(*++args && isblank(*args)); /* Do nothing */
-+      }
-+
-+      mpe->prio_name = STRDUP(name);
-+      if (args && *args)
-+              mpe->prio_args = STRDUP(args);
-+
-+      FREE(name);
-+      return 0;
-+}
-+
- /*
-  * config file keywords printing
-  */
-@@ -1472,6 +1522,20 @@ snprint_mp_flush_on_last_del (char * buf
- }
- static int
-+snprint_mp_prio (char * buff, int len, void * data)
-+{
-+      struct mpentry * mpe = (struct mpentry *)data;
-+
-+      if (!mpe->prio_name)
-+              return 0;
-+      if (!strcmp(mpe->prio_name, conf->prio_name) && !mpe->prio_args)
-+              return 0;
-+      if (!mpe->prio_args)
-+              return snprintf(buff, len, "%s", mpe->prio_name);
-+      return snprintf(buff, len, "%s %s", mpe->prio_name, mpe->prio_args);
-+}
-+
-+static int
- snprint_hw_fast_io_fail(char * buff, int len, void * data)
- {
-       struct hwentry * hwe = (struct hwentry *)data;
-@@ -1545,10 +1609,11 @@ snprint_hw_prio (char * buff, int len, v
-       if (!hwe->prio_name)
-               return 0;
--      if (!strcmp(hwe->prio_name, conf->prio_name))
-+      if (!strcmp(hwe->prio_name, conf->prio_name) && !hwe->prio_args)
-               return 0;
--      
--      return snprintf(buff, len, "%s", hwe->prio_name);
-+      if (!hwe->prio_args)
-+              return snprintf(buff, len, "%s", hwe->prio_name);
-+      return snprintf(buff, len, "%s %s", hwe->prio_name, hwe->prio_args);
- }
- static int
-@@ -1837,10 +1902,14 @@ snprint_def_prio (char * buff, int len, 
-               return 0;
-       if (strlen(conf->prio_name) == strlen(DEFAULT_PRIO) &&
--          !strcmp(conf->prio_name, DEFAULT_PRIO))
-+          !strcmp(conf->prio_name, DEFAULT_PRIO) && !conf->prio_args)
-               return 0;
--      
--      return snprintf(buff, len, "%s", conf->prio_name);
-+
-+      if (!conf->prio_args)
-+              return snprintf(buff, len, "%s", conf->prio_name);
-+      else
-+              return snprintf(buff, len, "%s %s", conf->prio_name,
-+                              conf->prio_args);
- }
- static int
-@@ -2146,5 +2215,6 @@ init_keywords(void)
-       install_keyword("mode", &mp_mode_handler, &snprint_mp_mode);
-       install_keyword("uid", &mp_uid_handler, &snprint_mp_uid);
-       install_keyword("gid", &mp_gid_handler, &snprint_mp_gid);
-+      install_keyword("prio", &mp_prio_handler, &snprint_mp_prio);
-       install_sublevel_end();
- }
-Index: multipath-tools/libmultipath/discovery.c
-===================================================================
---- multipath-tools.orig/libmultipath/discovery.c
-+++ multipath-tools/libmultipath/discovery.c
-@@ -800,30 +800,6 @@ get_state (struct path * pp, int daemon)
- }
- static int
--get_prio (struct path * pp)
--{
--      if (!pp)
--              return 0;
--
--      if (!pp->prio) {
--              select_prio(pp);
--              if (!pp->prio) {
--                      condlog(3, "%s: no prio selected", pp->dev);
--                      return 1;
--              }
--      }
--      pp->priority = prio_getprio(pp->prio, pp);
--      if (pp->priority < 0) {
--              condlog(3, "%s: %s prio error", pp->dev, prio_name(pp->prio));
--              pp->priority = PRIO_UNDEF;
--              return 1;
--      }
--      condlog(3, "%s: %s prio = %u",
--              pp->dev, prio_name(pp->prio), pp->priority);
--      return 0;
--}
--
--static int
- get_uid (struct path * pp)
- {
-       char buff[CALLOUT_MAX_SIZE];
-@@ -850,6 +826,32 @@ get_uid (struct path * pp)
-       return 0;
- }
-+static int
-+get_prio (struct path * pp)
-+{
-+      if (!pp)
-+              return 0;
-+
-+      if (!pp->prio) {
-+              if (!strlen(pp->wwid))
-+                      get_uid(pp);
-+              select_prio(pp);
-+              if (!pp->prio) {
-+                      condlog(3, "%s: no prio selected", pp->dev);
-+                      return 1;
-+              }
-+      }
-+      pp->priority = prio_getprio(pp->prio, pp);
-+      if (pp->priority < 0) {
-+              condlog(3, "%s: %s prio error", pp->dev, prio_name(pp->prio));
-+              pp->priority = PRIO_UNDEF;
-+              return 1;
-+      }
-+      condlog(3, "%s: %s prio = %u",
-+              pp->dev, prio_name(pp->prio), pp->priority);
-+      return 0;
-+}
-+
- extern int
- pathinfo (struct path *pp, vector hwtable, int mask)
- {
-@@ -887,6 +889,9 @@ pathinfo (struct path *pp, vector hwtabl
-                       goto blank;
-       }
-+      if (mask & DI_WWID && !strlen(pp->wwid))
-+              get_uid(pp);
-+
-        /*
-         * Retrieve path priority, even for PATH_DOWN paths if it has never
-         * been successfully obtained before.
-@@ -895,9 +900,6 @@ pathinfo (struct path *pp, vector hwtabl
-           (pp->state != PATH_DOWN || pp->priority == PRIO_UNDEF))
-               get_prio(pp);
--      if (mask & DI_WWID && !strlen(pp->wwid))
--              get_uid(pp);
--
-       return 0;
- blank:
-Index: multipath-tools/libmultipath/prio.h
-===================================================================
---- multipath-tools.orig/libmultipath/prio.h
-+++ multipath-tools/libmultipath/prio.h
-@@ -24,6 +24,7 @@
- #define PRIO_NETAPP "netapp"
- #define PRIO_RANDOM "random"
- #define PRIO_RDAC "rdac"
-+#define PRIO_WEIGHTED "weighted"
- /*
-  * Value used to mark the fact prio was not defined
-Index: multipath-tools/libmultipath/prioritizers/Makefile
-===================================================================
---- multipath-tools.orig/libmultipath/prioritizers/Makefile
-+++ multipath-tools/libmultipath/prioritizers/Makefile
-@@ -13,7 +13,8 @@ LIBS = \
-       libprioalua.so \
-       libpriotpg_pref.so \
-       libprionetapp.so \
--      libpriohds.so
-+      libpriohds.so \
-+      libprioweighted.so \
- CFLAGS += -I..
-Index: multipath-tools/libmultipath/prioritizers/weighted.c
-===================================================================
---- /dev/null
-+++ multipath-tools/libmultipath/prioritizers/weighted.c
-@@ -0,0 +1,139 @@
-+/******************************************************************************
-+*******************************************************************************
-+**
-+**  Copyright (C) 2009 Red Hat, Inc.  All rights reserved.
-+**
-+**  This copyrighted material is made available to anyone wishing to use,
-+**  modify, copy, or redistribute it subject to the terms and conditions
-+**  of the GNU General Public License v.2.
-+**
-+*******************************************************************************
-+******************************************************************************/
-+
-+/* This prioritizer is based on a path's device name or its H:T:B:L. Both of
-+ * these can change when the node is rebooted, and can differ from node to
-+ * node. (i.e. there is no guarantee that sda will point to the same device
-+ * after a reboot) If you use this prioritizer, it may be necessary to
-+ * manually edit /etc/multipath.conf after any reboot
-+ *
-+ * Format:
-+ * prio               "weighted hbtl <regex> <prio> [<regex> <prio>]
-+ * prio               "weighted devname <regex> <prio> [<regex> <prio>]
-+ *
-+ * Examples:
-+ * prio               "weighted hbtl 4:* 2 3:.:.:. 1"
-+ * prio               "weighted devname sda 2 sde 1"
-+ *
-+ */
-+
-+#include <string.h>
-+#include <prio.h>
-+#include <debug.h>
-+#include <regex.h>
-+
-+#include "weighted.h"
-+
-+#define DEFAULT_WEIGHTED_PRIO 0
-+
-+#define pp_weighted_log(prio, fmt, args...) \
-+      condlog(prio, "%s: weighted prio: " fmt, dev, ##args)
-+
-+static char *
-+next_str(char **str)
-+{
-+      char *next;
-+
-+      do {
-+              next = strsep(str, " \t");
-+      } while (next && strcmp(next, "") == 0);
-+      return next;
-+}
-+
-+
-+static int
-+match (char *dev, char *target, char *regex_str, char *prio_str,
-+       unsigned int *prio)
-+{
-+
-+      regex_t regex;
-+      int err, ret = 0;
-+      char *errbuf;
-+      size_t errbuf_size;
-+      unsigned int prio_match;
-+
-+      if (sscanf(prio_str, "%u", &prio_match) != 1) {
-+              condlog(0, "%s: weighted prio: invalid prio '%s'", dev,
-+                      prio_str);
-+              return 0;
-+      }
-+      err = regcomp(&regex, regex_str, REG_EXTENDED|REG_NOSUB);
-+      if (err) {
-+              errbuf_size = regerror(err, &regex, NULL, 0);
-+              errbuf = malloc(errbuf_size);
-+              regerror(err, &regex, errbuf, errbuf_size);
-+              condlog(0, "%s: weighted prio: cannot compile regex '%s' : %s",
-+                      dev, regex_str, errbuf);
-+              free(errbuf);
-+              return 0;
-+      }
-+      if (regexec(&regex, target, 0, NULL, 0) == 0) {
-+              *prio = prio_match;
-+              ret = 1;
-+      }
-+
-+      regfree(&regex);
-+      return ret;
-+}
-+
-+int
-+prio_weighted(struct path * pp)
-+{
-+      char target[FILE_NAME_SIZE];
-+      char *buff, *args, *ptr, *prio_str;
-+      unsigned int prio = DEFAULT_WEIGHTED_PRIO;
-+      char *regex_str = NULL;
-+      int regex_size = 0;
-+
-+      if (!pp->prio_args)
-+              return DEFAULT_WEIGHTED_PRIO;
-+      buff = args = strdup(pp->prio_args);
-+      ptr = next_str(&args);
-+
-+      if (strcasecmp(ptr, "hbtl") == 0)
-+              sprintf(target, "%d:%d:%d:%d", pp->sg_id.host_no,
-+                      pp->sg_id.channel, pp->sg_id.scsi_id, pp->sg_id.lun);
-+      else if (strcasecmp(ptr, "devname") == 0)
-+              strcpy(target, pp->dev);
-+      else {
-+              condlog(0, "%s: weighted prio: invalid argument. Want 'hbtl' or 'devname'. Got '%s'", pp->dev, ptr);
-+              goto out;
-+      }
-+
-+      while ((ptr = next_str(&args)) != NULL) {
-+
-+              prio_str = next_str(&args);
-+              if (!prio_str) {
-+                      condlog(0, "%s weighted prio: missing prio for regex '%s'", pp->dev, ptr);
-+                      goto out;
-+              }
-+              if (!regex_str || regex_size < strlen(ptr) + 3){
-+                      regex_size = strlen(ptr) + 3;
-+                      regex_str = realloc(regex_str, regex_size);
-+              }
-+              sprintf(regex_str, "%s%s%s", (ptr[0] == '^')? "" : "^",
-+                      ptr, (ptr[strlen(ptr)-1] == '$')? "" : "$");
-+              if (match(pp->dev, target, regex_str, prio_str, &prio))
-+                      break;
-+      }
-+out:
-+      free(buff);
-+      if (regex_str)
-+              free(regex_str);
-+      return prio;
-+}
-+
-+int
-+getprio(struct path * pp)
-+{
-+      return prio_weighted(pp);
-+}
-Index: multipath-tools/libmultipath/propsel.c
-===================================================================
---- multipath-tools.orig/libmultipath/propsel.c
-+++ multipath-tools/libmultipath/propsel.c
-@@ -312,14 +312,25 @@ select_getuid (struct path * pp)
- extern int
- select_prio (struct path * pp)
- {
-+      struct mpentry * mpe;
-+
-+      if ((mpe = find_mpe(pp->wwid)) && mpe->prio_name) {
-+              pp->prio = prio_lookup(mpe->prio_name);
-+              pp->prio_args = mpe->prio_args;
-+              condlog(3, "%s: prio = %s (LUN setting)",
-+                      pp->dev, mpe->prio_name);
-+              return 0;
-+      }
-       if (pp->hwe && pp->hwe->prio_name) {
-               pp->prio = prio_lookup(pp->hwe->prio_name);
-+              pp->prio_args = pp->hwe->prio_args;
-               condlog(3, "%s: prio = %s (controller setting)",
-                       pp->dev, pp->hwe->prio_name);
-               return 0;
-       }
-       if (conf->prio_name) {
-               pp->prio = prio_lookup(conf->prio_name);
-+              pp->prio_args = conf->prio_args;
-               condlog(3, "%s: prio = %s (config file default)",
-                       pp->dev, conf->prio_name);
-               return 0;
-Index: multipath-tools/libmultipath/structs.h
-===================================================================
---- multipath-tools.orig/libmultipath/structs.h
-+++ multipath-tools/libmultipath/structs.h
-@@ -142,6 +142,7 @@ struct path {
-       int priority;
-       int pgindex;
-       char * getuid;
-+      char * prio_args;
-       struct prio * prio;
-       struct checker checker;
-       struct multipath * mpp;
-Index: multipath-tools/libmultipath/prioritizers/weighted.h
-===================================================================
---- /dev/null
-+++ multipath-tools/libmultipath/prioritizers/weighted.h
-@@ -0,0 +1,8 @@
-+#ifndef _WEIGHTED_H
-+#define _WEIGHTED_H
-+
-+#define PRIO_WEIGHTED  "weighted"
-+
-+int prio_weighted(struct path *pp);
-+
-+#endif
diff --git a/multipath-tools/patches/0013-RH-dont-remove-map-on-enomem.patch b/multipath-tools/patches/0013-RH-dont-remove-map-on-enomem.patch
new file mode 100644 (file)
index 0000000..b7ee42c
--- /dev/null
@@ -0,0 +1,18 @@
+---
+ multipathd/main.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: multipath-tools-120518/multipathd/main.c
+===================================================================
+--- multipath-tools-120518.orig/multipathd/main.c
++++ multipath-tools-120518/multipathd/main.c
+@@ -993,7 +993,8 @@ mpvec_garbage_collector (struct vectors
+               return;
+       vector_foreach_slot (vecs->mpvec, mpp, i) {
+-              if (mpp && mpp->alias && !dm_map_present(mpp->alias)) {
++              if (mpp && mpp->alias && !dm_map_present(mpp->alias) &&
++                  errno != ENOMEM) {
+                       condlog(2, "%s: remove dead map", mpp->alias);
+                       remove_map_and_stop_waiter(mpp, vecs, 1);
+                       i--;
diff --git a/multipath-tools/patches/0014-RH-deprecate-uid-gid-mode.patch b/multipath-tools/patches/0014-RH-deprecate-uid-gid-mode.patch
new file mode 100644 (file)
index 0000000..9270d9d
--- /dev/null
@@ -0,0 +1,90 @@
+---
+ multipath.conf.annotated |   53 -----------------------------------------------
+ multipath.conf.synthetic |    3 --
+ 2 files changed, 56 deletions(-)
+
+Index: multipath-tools-120123/multipath.conf.annotated
+===================================================================
+--- multipath-tools-120123.orig/multipath.conf.annotated
++++ multipath-tools-120123/multipath.conf.annotated
+@@ -186,32 +186,6 @@
+ #     user_friendly_names no
+ #
+ #     #
+-#     # name    : mode
+-#     # scope   : multipath & multipathd
+-#     # desc    : The mode to use for the multipath device nodes, in octal.
+-#     # values  : 0000 - 0777
+-#     # default : determined by the process
+-#     mode 0644
+-#
+-#     #
+-#     # name    : uid
+-#     # scope   : multipath & multipathd
+-#     # desc    : The user id to use for the multipath device nodes. You
+-#     #           may use either the numeric or symbolic uid
+-#     # values  : <user_id>
+-#     # default : determined by the process
+-#     uid 0
+-#
+-#     #
+-#     # name    : gid
+-#     # scope   : multipath & multipathd
+-#     # desc    : The group id to user for the multipath device nodes. You
+-#     #           may use either the numeric or symbolic gid
+-#     # values  : <group_id>
+-#     # default : determined by the process
+-#     gid disk
+-#
+-#     #
+ #     # name    : checker_timeout
+ #     # scope   : multipath & multipathd
+ #     # desc    : The timeout to use for path checkers that issue scsi
+@@ -388,33 +362,6 @@
+ #             #
+ #             flush_on_last_del       yes
+ #
+-#             #
+-#             # name    : mode
+-#             # scope   : multipath & multipathd
+-#             # desc    : The mode to use for the multipath device nodes, in
+-#             #           octal.
+-#             # values  : 0000 - 0777
+-#             # default : determined by the process
+-#             mode 0644
+-#
+-#             #
+-#             # name    : uid
+-#             # scope   : multipath & multipathd
+-#             # desc    : The user id to use for the multipath device nodes.
+-#             #           You may use either the numeric or symbolic uid
+-#             # values  : <user_id>
+-#             # default : determined by the process
+-#             uid 0
+-#
+-#             #
+-#             # name    : gid
+-#             # scope   : multipath & multipathd
+-#             # desc    : The group id to user for the multipath device nodes.
+-#             #           You may use either the numeric or symbolic gid
+-#             # values  : <group_id>
+-#             # default : determined by the process
+-#             gid 0
+-#
+ #     }
+ #     multipath {
+ #             wwid    1DEC_____321816758474
+Index: multipath-tools-120123/multipath.conf.synthetic
+===================================================================
+--- multipath-tools-120123.orig/multipath.conf.synthetic
++++ multipath-tools-120123/multipath.conf.synthetic
+@@ -18,9 +18,6 @@
+ #     no_path_retry           fail
+ #     queue_without_daemon    no
+ #     user_friendly_names     no
+-#     mode                    644
+-#     uid                     0
+-#     gid                     disk
+ #}
+ #blacklist {
+ #       wwid 26353900f02796769
diff --git a/multipath-tools/patches/0015-RH-add-multipathd-count-paths-cmd.patch b/multipath-tools/patches/0015-RH-add-multipathd-count-paths-cmd.patch
deleted file mode 100644 (file)
index 87826ef..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-Index: multipath-tools/libmultipath/uevent.c
-===================================================================
---- multipath-tools.orig/libmultipath/uevent.c
-+++ multipath-tools/libmultipath/uevent.c
-@@ -52,6 +52,12 @@ pthread_mutex_t uevc_lock, *uevc_lockp =
- pthread_cond_t  uev_cond,  *uev_condp  = &uev_cond;
- uev_trigger *my_uev_trigger;
- void * my_trigger_data;
-+int servicing_uev;
-+
-+int is_uevent_busy(void)
-+{
-+      return (uevqhp != NULL || servicing_uev);
-+}
- static struct uevent * alloc_uevent (void)
- {
-@@ -96,7 +102,9 @@ uevq_thread(void * et)
-       while (1) {
-               pthread_mutex_lock(uevc_lockp);
-+              servicing_uev = 0;
-               pthread_cond_wait(uev_condp, uevc_lockp);
-+              servicing_uev = 1;
-               pthread_mutex_unlock(uevc_lockp);
-               service_uevq();
-Index: multipath-tools/libmultipath/uevent.h
-===================================================================
---- multipath-tools.orig/libmultipath/uevent.h
-+++ multipath-tools/libmultipath/uevent.h
-@@ -17,3 +17,4 @@ struct uevent {
- int uevent_listen(int (*store_uev)(struct uevent *, void * trigger_data),
-                 void * trigger_data);
-+int is_uevent_busy(void);
-Index: multipath-tools/multipathd/cli.c
-===================================================================
---- multipath-tools.orig/multipathd/cli.c
-+++ multipath-tools/multipathd/cli.c
-@@ -174,6 +174,7 @@ load_keys (void)
-       r += add_key(keys, "devices", DEVICES, 0);
-       r += add_key(keys, "format", FMT, 1);
-       r += add_key(keys, "wildcards", WILDCARDS, 0);
-+      r += add_key(keys, "count", COUNT, 0);
-       r += add_key(keys, "quit", QUIT, 0);
-       r += add_key(keys, "exit", QUIT, 0);
-@@ -443,6 +444,7 @@ cli_init (void) {
-       add_handler(RESTOREQ+MAPS, NULL);
-       add_handler(REINSTATE+PATH, NULL);
-       add_handler(FAIL+PATH, NULL);
-+      add_handler(COUNT+PATHS, NULL);
-       add_handler(QUIT, NULL);
-       return 0;
-Index: multipath-tools/multipathd/cli_handlers.h
-===================================================================
---- multipath-tools.orig/multipathd/cli_handlers.h
-+++ multipath-tools/multipathd/cli_handlers.h
-@@ -25,5 +25,6 @@ int cli_restore_all_queueing(void * v, c
- int cli_suspend(void * v, char ** reply, int * len, void * data);
- int cli_resume(void * v, char ** reply, int * len, void * data);
- int cli_reinstate(void * v, char ** reply, int * len, void * data);
-+int cli_count_paths(void * v, char ** reply, int * len, void * data);
- int cli_fail(void * v, char ** reply, int * len, void * data);
- int cli_quit(void * v, char ** reply, int * len, void * data);
-Index: multipath-tools/multipathd/main.c
-===================================================================
---- multipath-tools.orig/multipathd/main.c
-+++ multipath-tools/multipathd/main.c
-@@ -768,6 +768,7 @@ uxlsnrloop (void * ap)
-       set_handler_callback(RESTOREQ+MAP, cli_restore_queueing);
-       set_handler_callback(DISABLEQ+MAPS, cli_disable_all_queueing);
-       set_handler_callback(RESTOREQ+MAPS, cli_restore_all_queueing);
-+      set_handler_callback(COUNT+PATHS, cli_count_paths);
-       set_handler_callback(QUIT, cli_quit);
-       umask(077);
-Index: multipath-tools/multipathd/cli.h
-===================================================================
---- multipath-tools.orig/multipathd/cli.h
-+++ multipath-tools/multipathd/cli.h
-@@ -23,6 +23,7 @@ enum {
-       __BLACKLIST,
-       __DEVICES,
-       __FMT,
-+      __COUNT,
-       __WILDCARDS,
-       __QUIT,
- };
-@@ -51,6 +52,7 @@ enum {
- #define BLACKLIST     (1 << __BLACKLIST)
- #define DEVICES       (1 << __DEVICES)
- #define FMT           (1 << __FMT)
-+#define COUNT         (1 << __COUNT)
- #define WILDCARDS     (1 << __WILDCARDS)
- #define QUIT          (1 << __QUIT)
-Index: multipath-tools/multipathd/cli_handlers.c
-===================================================================
---- multipath-tools.orig/multipathd/cli_handlers.c
-+++ multipath-tools/multipathd/cli_handlers.c
-@@ -18,6 +18,29 @@
- #include "main.h"
- #include "cli.h"
-+#include "uevent.h"
-+
-+int
-+count_paths(char  **r, int *l, struct vectors *vecs)
-+{
-+      int i, len;
-+      struct path *pp;
-+      char * reply;
-+      unsigned int maxlen = INITIAL_REPLY_LEN;
-+      int monitored_count = 0;
-+
-+      reply = MALLOC(maxlen);
-+      if (!reply)
-+              return 1;
-+      vector_foreach_slot(vecs->pathvec, pp, i)
-+              if (pp->fd != -1)
-+                      monitored_count++;
-+      len = sprintf(reply, "Paths: %d\nBusy: %s\n", monitored_count,
-+                  is_uevent_busy()? "True" : "False");
-+      *r = reply;
-+      *l = len + 1;
-+      return 0;
-+}
- int
- show_paths (char ** r, int * len, struct vectors * vecs, char * style)
-@@ -176,6 +199,16 @@ cli_list_config (void * v, char ** reply
- }
- int
-+cli_count_paths (void * v, char ** reply, int * len, void * data)
-+{
-+      struct vectors * vecs = (struct vectors *)data;
-+
-+      condlog(3, "count paths (operator)");
-+
-+      return count_paths(reply, len, vecs);
-+}
-+
-+int
- cli_list_paths (void * v, char ** reply, int * len, void * data)
- {
-       struct vectors * vecs = (struct vectors *)data;
diff --git a/multipath-tools/patches/0015-RH-use-sync-support.patch b/multipath-tools/patches/0015-RH-use-sync-support.patch
new file mode 100644 (file)
index 0000000..c5dee9d
--- /dev/null
@@ -0,0 +1,17 @@
+---
+ libmultipath/devmapper.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: multipath-tools-120518/libmultipath/devmapper.c
+===================================================================
+--- multipath-tools-120518.orig/libmultipath/devmapper.c
++++ multipath-tools-120518/libmultipath/devmapper.c
+@@ -1272,6 +1272,8 @@ dm_rename (char * old, char * new)
+               goto out;
+       if (!dm_task_run(dmt))
+               goto out;
++      if (conf->daemon)
++              dm_task_update_nodes();
+       r = 1;
+ out:
diff --git a/multipath-tools/patches/0016-RH-change-configs.patch b/multipath-tools/patches/0016-RH-change-configs.patch
new file mode 100644 (file)
index 0000000..7942ea8
--- /dev/null
@@ -0,0 +1,541 @@
+---
+ libmultipath/config.c  |    1 
+ libmultipath/hwtable.c |   65 -------------------------------------------------
+ 2 files changed, 1 insertion(+), 65 deletions(-)
+
+Index: multipath-tools-120613/libmultipath/config.c
+===================================================================
+--- multipath-tools-120613.orig/libmultipath/config.c
++++ multipath-tools-120613/libmultipath/config.c
+@@ -515,6 +515,7 @@ load_config (char * file)
+       conf->checkint = DEFAULT_CHECKINT;
+       conf->max_checkint = MAX_CHECKINT(conf->checkint);
+       conf->find_multipaths = DEFAULT_FIND_MULTIPATHS;
++      conf->fast_io_fail = 5;
+       /*
+        * preload default hwtable
+Index: multipath-tools-120613/libmultipath/hwtable.c
+===================================================================
+--- multipath-tools-120613.orig/libmultipath/hwtable.c
++++ multipath-tools-120613/libmultipath/hwtable.c
+@@ -28,7 +28,6 @@ static struct hwentry default_hw[] = {
+               .product       = "Compellent Vol",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -50,7 +49,6 @@ static struct hwentry default_hw[] = {
+               .product       = "Xserve RAID ",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -72,7 +70,6 @@ static struct hwentry default_hw[] = {
+               .product       = "VV",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -88,7 +85,6 @@ static struct hwentry default_hw[] = {
+               .product       = "HSG80",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = "1 hp_sw",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -104,7 +100,6 @@ static struct hwentry default_hw[] = {
+               .product       = "A6189A",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -121,7 +116,6 @@ static struct hwentry default_hw[] = {
+               .product       = "(MSA|HSV)1.0.*",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = "1 hp_sw",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -137,7 +131,6 @@ static struct hwentry default_hw[] = {
+               .product       = "MSA VOLUME",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -153,7 +146,6 @@ static struct hwentry default_hw[] = {
+               .product       = "HSV1[01]1|HSV2[01]0|HSV300|HSV4[05]0",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -169,7 +161,6 @@ static struct hwentry default_hw[] = {
+               .product       = "MSA2[02]12fc|MSA2012i",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -185,7 +176,6 @@ static struct hwentry default_hw[] = {
+               .product       = "MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -202,7 +192,6 @@ static struct hwentry default_hw[] = {
+               .product       = "HSVX700",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 alua",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -219,7 +208,6 @@ static struct hwentry default_hw[] = {
+               .product       = "LOGICAL VOLUME.*",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -236,7 +224,6 @@ static struct hwentry default_hw[] = {
+               .product       = "P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -258,7 +245,6 @@ static struct hwentry default_hw[] = {
+               .product       = "SAN DataDirector",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -280,7 +266,6 @@ static struct hwentry default_hw[] = {
+               .product       = "SYMMETRIX",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -297,7 +282,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "LUNZ",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = "1 emc",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -314,7 +298,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "LUNZ",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -336,7 +319,6 @@ static struct hwentry default_hw[] = {
+               .product       = "CentricStor",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_SERIAL,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -352,7 +334,6 @@ static struct hwentry default_hw[] = {
+               .product       = "ETERNUS_DX(L|400|8000)",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -373,7 +354,6 @@ static struct hwentry default_hw[] = {
+               .product       = "OPEN-.*",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -389,7 +369,6 @@ static struct hwentry default_hw[] = {
+               .product       = "DF.*",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -411,7 +390,6 @@ static struct hwentry default_hw[] = {
+               .product       = "ProFibre 4000R",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -429,7 +407,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -447,7 +424,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -465,7 +441,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -483,7 +458,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -500,7 +474,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = "2 pg_init_retries 50",
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -518,7 +491,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -536,7 +508,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -554,7 +525,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -572,7 +542,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -589,7 +558,6 @@ static struct hwentry default_hw[] = {
+               .product       = "^3542",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_SERIAL,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -606,7 +574,6 @@ static struct hwentry default_hw[] = {
+               .product       = "^2105800",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_SERIAL,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -623,7 +590,6 @@ static struct hwentry default_hw[] = {
+               .product       = "^2105F20",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_SERIAL,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -640,7 +606,6 @@ static struct hwentry default_hw[] = {
+               .product       = "^1750500",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -657,7 +622,6 @@ static struct hwentry default_hw[] = {
+               .product       = "^2107900",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -674,7 +638,6 @@ static struct hwentry default_hw[] = {
+               .product       = "^2145",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -693,7 +656,6 @@ static struct hwentry default_hw[] = {
+               .uid_attribute = "ID_UID",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -712,7 +674,6 @@ static struct hwentry default_hw[] = {
+               .uid_attribute = "ID_UID",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -729,7 +690,6 @@ static struct hwentry default_hw[] = {
+               .product       = "^IPR.*",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = "1 alua",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -746,7 +706,6 @@ static struct hwentry default_hw[] = {
+               .product       = "1820N00",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -763,7 +722,6 @@ static struct hwentry default_hw[] = {
+               .product       = "2810XIV",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = 15,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -786,7 +744,6 @@ static struct hwentry default_hw[] = {
+               .product       = "VDASD",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -803,7 +760,6 @@ static struct hwentry default_hw[] = {
+               .product       = "3303      NVDISK",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = FAILOVER,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -820,7 +776,6 @@ static struct hwentry default_hw[] = {
+               .product       = "NVDISK",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 alua",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -838,7 +793,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = "2 pg_init_retries 50",
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -856,7 +810,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = "2 pg_init_retries 50",
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -874,7 +827,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = "2 pg_init_retries 50",
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -892,7 +844,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = "2 pg_init_retries 50",
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -914,7 +865,6 @@ static struct hwentry default_hw[] = {
+               .product       = "LUN.*",
+               .features      = "3 queue_if_no_path pg_init_retries 50",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .flush_on_last_del = FLUSH_ENABLED,
+@@ -936,7 +886,6 @@ static struct hwentry default_hw[] = {
+               .product       = "COMSTAR",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_SERIAL,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -957,7 +906,6 @@ static struct hwentry default_hw[] = {
+               .product       = "Nseries.*",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -978,7 +926,6 @@ static struct hwentry default_hw[] = {
+               .product       = "Axiom.*",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1001,7 +948,6 @@ static struct hwentry default_hw[] = {
+               .product       = "TP9[13]00",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1018,7 +964,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1035,7 +980,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = "2 pg_init_retries 50",
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1052,7 +996,6 @@ static struct hwentry default_hw[] = {
+               .product       = "DISK ARRAY",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 alua",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1075,7 +1018,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1097,7 +1039,6 @@ static struct hwentry default_hw[] = {
+               .product       = "(StorEdge 3510|T4)",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1113,7 +1054,6 @@ static struct hwentry default_hw[] = {
+               .product       = "FC2502",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1135,7 +1075,6 @@ static struct hwentry default_hw[] = {
+               .product       = "RAIGE VOLUME",
+               .features      = "1 queue_if_no_path",
+               .hwhandler     = DEFAULT_HWHANDLER,
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = MULTIBUS,
+               .pgfailback    = FAILBACK_UNDEF,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1151,7 +1090,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1169,7 +1107,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1187,7 +1124,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = "2 pg_init_retries 50",
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
+@@ -1204,7 +1140,6 @@ static struct hwentry default_hw[] = {
+               .bl_product    = "Universal Xport",
+               .features      = DEFAULT_FEATURES,
+               .hwhandler     = "1 rdac",
+-              .selector      = DEFAULT_SELECTOR,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .rr_weight     = RR_WEIGHT_NONE,
diff --git a/multipath-tools/patches/0016-RHBZ-554561-fix-init-error-msg.patch b/multipath-tools/patches/0016-RHBZ-554561-fix-init-error-msg.patch
deleted file mode 100644 (file)
index ae0ae70..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
----
- multipathd/multipathd.init.redhat |    8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-Index: multipath-tools/multipathd/multipathd.init.redhat
-===================================================================
---- multipath-tools.orig/multipathd/multipathd.init.redhat
-+++ multipath-tools/multipathd/multipathd.init.redhat
-@@ -75,9 +75,11 @@ start() {
- stop() {
-         root_dev=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/mtab)
--      dm_num=`dmsetup info -c --noheadings -o minor $root_dev`
--      root_dm_device="dm-$dm_num"
--      [ -d $syspath/$root_dm_device ] && teardown_slaves $syspath/$root_dm_device
-+      dm_num=`dmsetup info -c --noheadings -o minor $root_dev 2> /dev/null`
-+      if [ $? -eq 0 ]; then
-+              root_dm_device="dm-$dm_num"
-+              [ -d $syspath/$root_dm_device ] && teardown_slaves $syspath/$root_dm_device
-+      fi
-       echo -n $"Stopping $prog daemon: "
-       killproc $DAEMON
diff --git a/multipath-tools/patches/0017-RHBZ-554592-man-page-note.patch b/multipath-tools/patches/0017-RHBZ-554592-man-page-note.patch
deleted file mode 100644 (file)
index 9ebaf92..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
----
- multipath/multipath.8 |    2 ++
- 1 file changed, 2 insertions(+)
-
-Index: multipath-tools/multipath/multipath.8
-===================================================================
---- multipath-tools.orig/multipath/multipath.8
-+++ multipath-tools/multipath/multipath.8
-@@ -75,6 +75,8 @@ is in. 
- is in the /dev/sdb (as shown by udev in the $DEVNAME variable) or major:minor format.
- .I device
- may alternatively be a multipath mapname
-+.SH NOTES
-+a map may be unused if, eg, the file system on it is not mounted or there are no open file descriptors against the device file, as in a raw device.
- .SH "SEE ALSO"
- .BR udev (8),
- .BR dmsetup (8)
diff --git a/multipath-tools/patches/0018-RHBZ-554596-SUN-6540-config.patch b/multipath-tools/patches/0018-RHBZ-554596-SUN-6540-config.patch
deleted file mode 100644 (file)
index e3296d3..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
----
- libmultipath/hwtable.c  |   16 ++++++++++++++++
- multipath.conf.defaults |   16 ++++++++++++++++
- 2 files changed, 32 insertions(+)
-
-Index: multipath-tools/libmultipath/hwtable.c
-===================================================================
---- multipath-tools.orig/libmultipath/hwtable.c
-+++ multipath-tools/libmultipath/hwtable.c
-@@ -959,6 +959,22 @@ static struct hwentry default_hw[] = {
-               .checker_name  = RDAC,
-               .prio_name     = PRIO_RDAC,
-       },
-+      {
-+              .vendor        = "STK",
-+              .product       = "FLEXLINE 380",
-+              .bl_product    = "Universal Xport",
-+              .getuid        = DEFAULT_GETUID,
-+              .features      = DEFAULT_FEATURES,
-+              .hwhandler     = "1 rdac",
-+              .selector      = DEFAULT_SELECTOR,
-+              .pgpolicy      = GROUP_BY_PRIO,
-+              .pgfailback    = -FAILBACK_IMMEDIATE,
-+              .rr_weight     = RR_WEIGHT_NONE,
-+              .no_path_retry = NO_PATH_RETRY_QUEUE,
-+              .minio         = DEFAULT_MINIO,
-+              .checker_name  = RDAC,
-+              .prio_name     = PRIO_RDAC,
-+      },
-       /*
-        * EOL
-        */
-Index: multipath-tools/multipath.conf.defaults
-===================================================================
---- multipath-tools.orig/multipath.conf.defaults
-+++ multipath-tools/multipath.conf.defaults
-@@ -571,4 +571,20 @@
- #             path_checker            rdac
- #             prio                    rdac
- #     }
-+#     device {
-+#             vendor                  "STK"
-+#             product                 "FLEXLINE 380"
-+#             product_blacklist       "Universal Xport"
-+#             getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
-+#             features                "0"
-+#             hardware_handler        "1 rdac"
-+#             path_selector           "round-robin 0"
-+#             path_grouping_policy    group_by_prio
-+#             failback                immediate
-+#             rr_weight               uniform
-+#             no_path_retry           queue
-+#             rr_min_io               1000
-+#             path_checker            rdac
-+#             prio                    rdac
-+#     }
- #}
diff --git a/multipath-tools/patches/0019-RHBZ-554598-fix-multipath-locking.patch b/multipath-tools/patches/0019-RHBZ-554598-fix-multipath-locking.patch
deleted file mode 100644 (file)
index cf101e2..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
----
- libmultipath/configure.c |   16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
-
-Index: multipath-tools/libmultipath/configure.c
-===================================================================
---- multipath-tools.orig/libmultipath/configure.c
-+++ multipath-tools/libmultipath/configure.c
-@@ -284,6 +284,7 @@ lock_multipath (struct multipath * mpp, 
-       struct pathgroup * pgp;
-       struct path * pp;
-       int i, j;
-+      int x, y;
-       if (!mpp || !mpp->pg)
-               return 0;
-@@ -294,12 +295,25 @@ lock_multipath (struct multipath * mpp, 
-               vector_foreach_slot(pgp->paths, pp, j) {
-                       if (lock && flock(pp->fd, LOCK_EX | LOCK_NB) &&
-                           errno == EWOULDBLOCK)
--                              return 1;
-+                              goto fail;
-                       else if (!lock)
-                               flock(pp->fd, LOCK_UN);
-               }
-       }
-       return 0;
-+fail:
-+      vector_foreach_slot (mpp->pg, pgp, x) {
-+              if (x > i)
-+                      return 1;
-+              if (!pgp->paths)
-+                      continue;
-+              vector_foreach_slot(pgp->paths, pp, y) {
-+                      if (x == i && y > j)
-+                              return 1;
-+                      flock(pp->fd, LOCK_UN);
-+              }
-+      }
-+      return 1;
- }
- /*
diff --git a/multipath-tools/patches/0020-RHBZ-554605-fix-manual-failover.patch b/multipath-tools/patches/0020-RHBZ-554605-fix-manual-failover.patch
deleted file mode 100644 (file)
index 51b66bd..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
----
- libmultipath/pgpolicies.c |   23 +++++++++++++++++++----
- 1 file changed, 19 insertions(+), 4 deletions(-)
-
-Index: multipath-tools/libmultipath/pgpolicies.c
-===================================================================
---- multipath-tools.orig/libmultipath/pgpolicies.c
-+++ multipath-tools/libmultipath/pgpolicies.c
-@@ -205,7 +205,8 @@ out:
- extern int
- one_path_per_group (struct multipath * mp)
- {
--      int i;
-+      int i, j;
-+      unsigned int prio;
-       struct path * pp;
-       struct pathgroup * pgp;
-@@ -217,16 +218,30 @@ one_path_per_group (struct multipath * m
-       for (i = 0; i < VECTOR_SIZE(mp->paths); i++) {
-               pp = VECTOR_SLOT(mp->paths, i);
-+              prio = pp->priority;
-+
-+              vector_foreach_slot(mp->pg, pgp, j) {
-+                      pp = VECTOR_SLOT(pgp->paths, 0);
-+
-+                      if (prio > pp->priority)
-+                              break;
-+              }
-+
-               pgp = alloc_pathgroup();
-               if (!pgp)
-                       goto out;
--              if (store_pathgroup(mp->pg, pgp))
-+              if (store_path(pgp->paths, VECTOR_SLOT(mp->paths, i)))
-                       goto out;
--              if (store_path(pgp->paths, pp))
--                      goto out;
-+              if (j < VECTOR_SIZE(mp->pg)) {
-+                      if (!vector_insert_slot(mp->pg, j, pgp))
-+                              goto out;
-+              } else {
-+                      if (store_pathgroup(mp->pg, pgp))
-+                              goto out;
-+              }
-       }
-       free_pathvec(mp->paths, KEEP_PATHS);
-       mp->paths = NULL;
diff --git a/multipath-tools/patches/0021-RHBZ-548874-add-find-multipaths.patch b/multipath-tools/patches/0021-RHBZ-548874-add-find-multipaths.patch
deleted file mode 100644 (file)
index 12ec02c..0000000
+++ /dev/null
@@ -1,1153 +0,0 @@
----
- libmultipath/Makefile    |    2 
- libmultipath/alias.c     |  152 ------------------------------
- libmultipath/alias.h     |    1 
- libmultipath/config.c    |    5 -
- libmultipath/config.h    |    1 
- libmultipath/configure.c |   23 ++++
- libmultipath/defaults.h  |    2 
- libmultipath/dict.c      |   34 ++++++
- libmultipath/file.c      |  178 +++++++++++++++++++++++++++++++++++
- libmultipath/file.h      |   11 ++
- libmultipath/finder.c    |  150 ++++++++++++++++++++++++++++++
- libmultipath/finder.h    |   18 +++
- multipath/Makefile       |    2 
- multipath/main.c         |    2 
- multipath/mpathconf      |  234 +++++++++++++++++++++++++++++++++++++++++++++++
- multipathd/main.c        |   27 +++--
- 16 files changed, 679 insertions(+), 163 deletions(-)
-
-Index: multipath-tools/libmultipath/alias.c
-===================================================================
---- multipath-tools.orig/libmultipath/alias.c
-+++ multipath-tools/libmultipath/alias.c
-@@ -3,19 +3,16 @@
-  * Copyright (c) 2005 Benjamin Marzinski, Redhat
-  */
- #include <stdlib.h>
--#include <sys/types.h>
--#include <sys/stat.h>
--#include <fcntl.h>
- #include <errno.h>
- #include <unistd.h>
- #include <string.h>
- #include <limits.h>
- #include <stdio.h>
--#include <signal.h>
- #include "debug.h"
- #include "uxsock.h"
- #include "alias.h"
-+#include "file.h"
- /*
-@@ -37,149 +34,6 @@
-  */
- static int
--ensure_directories_exist(char *str, mode_t dir_mode)
--{
--      char *pathname;
--      char *end;
--      int err;
--
--      pathname = strdup(str);
--      if (!pathname){
--              condlog(0, "Cannot copy bindings file pathname : %s",
--                      strerror(errno));
--              return -1;
--      }
--      end = pathname;
--      /* skip leading slashes */
--      while (end && *end && (*end == '/'))
--              end++;
--
--      while ((end = strchr(end, '/'))) {
--              /* if there is another slash, make the dir. */
--              *end = '\0';
--              err = mkdir(pathname, dir_mode);
--              if (err && errno != EEXIST) {
--                      condlog(0, "Cannot make directory [%s] : %s",
--                              pathname, strerror(errno));
--                      free(pathname);
--                      return -1;
--              }
--              if (!err)
--                      condlog(3, "Created dir [%s]", pathname);
--              *end = '/';
--              end++;
--      }
--      free(pathname);
--      return 0;
--}
--
--static void
--sigalrm(int sig)
--{
--      /* do nothing */
--}
--
--static int
--lock_bindings_file(int fd)
--{
--      struct sigaction act, oldact;
--      sigset_t set, oldset;
--      struct flock lock;
--      int err;
--
--      memset(&lock, 0, sizeof(lock));
--      lock.l_type = F_WRLCK;
--      lock.l_whence = SEEK_SET;
--
--      act.sa_handler = sigalrm;
--      sigemptyset(&act.sa_mask);
--      act.sa_flags = 0;
--      sigemptyset(&set);
--      sigaddset(&set, SIGALRM);
--
--      sigaction(SIGALRM, &act, &oldact);
--      sigprocmask(SIG_UNBLOCK, &set, &oldset);
--
--      alarm(BINDINGS_FILE_TIMEOUT);
--      err = fcntl(fd, F_SETLKW, &lock);
--      alarm(0);
--
--      if (err) {
--              if (errno != EINTR)
--                      condlog(0, "Cannot lock bindings file : %s",
--                                      strerror(errno));
--              else
--                      condlog(0, "Bindings file is locked. Giving up.");
--      }
--
--      sigprocmask(SIG_SETMASK, &oldset, NULL);
--      sigaction(SIGALRM, &oldact, NULL);
--      return err;
--
--}
--
--
--static int
--open_bindings_file(char *file, int *can_write)
--{
--      int fd;
--      struct stat s;
--
--      if (ensure_directories_exist(file, 0700))
--              return -1;
--      *can_write = 1;
--      fd = open(file, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
--      if (fd < 0) {
--              if (errno == EROFS) {
--                      *can_write = 0;
--                      condlog(3, "Cannot open bindings file [%s] read/write. "
--                              " trying readonly", file);
--                      fd = open(file, O_RDONLY);
--                      if (fd < 0) {
--                              condlog(0, "Cannot open bindings file [%s] "
--                                      "readonly : %s", file, strerror(errno));
--                              return -1;
--                      }
--              }
--              else {
--                      condlog(0, "Cannot open bindings file [%s] : %s", file,
--                              strerror(errno));
--                      return -1;
--              }
--      }
--      if (*can_write && lock_bindings_file(fd) < 0)
--              goto fail;
--
--      memset(&s, 0, sizeof(s));
--      if (fstat(fd, &s) < 0){
--              condlog(0, "Cannot stat bindings file : %s", strerror(errno));
--              goto fail;
--      }
--      if (s.st_size == 0) {
--              if (*can_write == 0)
--                      goto fail;
--              /* If bindings file is empty, write the header */
--              size_t len = strlen(BINDINGS_FILE_HEADER);
--              if (write_all(fd, BINDINGS_FILE_HEADER, len) != len) {
--                      condlog(0,
--                              "Cannot write header to bindings file : %s",
--                              strerror(errno));
--                      /* cleanup partially written header */
--                      ftruncate(fd, 0);
--                      goto fail;
--              }
--              fsync(fd);
--              condlog(3, "Initialized new bindings file [%s]", file);
--      }
--
--      return fd;
--
--fail:
--      close(fd);
--      return -1;
--}
--
--static int
- format_devname(char *name, int id, int len)
- {
-       int pos;
-@@ -364,7 +218,7 @@ get_user_friendly_alias(char *wwid, char
-               return NULL;
-       }
--      fd = open_bindings_file(file, &can_write);
-+      fd = open_file(file, &can_write, BINDINGS_FILE_HEADER);
-       if (fd < 0)
-               return NULL;
-@@ -414,7 +268,7 @@ get_user_friendly_wwid(char *alias, char
-               return NULL;
-       }
--      fd = open_bindings_file(file, &unused);
-+      fd = open_file(file, &unused, BINDINGS_FILE_HEADER);
-       if (fd < 0)
-               return NULL;
-Index: multipath-tools/libmultipath/alias.h
-===================================================================
---- multipath-tools.orig/libmultipath/alias.h
-+++ multipath-tools/libmultipath/alias.h
-@@ -1,4 +1,3 @@
--#define BINDINGS_FILE_TIMEOUT 30
- #define BINDINGS_FILE_HEADER \
- "# Multipath bindings, Version : 1.0\n" \
- "# NOTE: this file is automatically maintained by the multipath program.\n" \
-Index: multipath-tools/libmultipath/config.c
-===================================================================
---- multipath-tools.orig/libmultipath/config.c
-+++ multipath-tools/libmultipath/config.c
-@@ -452,6 +452,7 @@ load_config (char * file)
-       conf->multipath_dir = set_default(DEFAULT_MULTIPATHDIR);
-       conf->flush_on_last_del = 0;
-       conf->attribute_flags = 0;
-+      conf->find_multipaths = DEFAULT_FIND_MULTIPATHS;
-       /*
-        * preload default hwtable
-@@ -476,10 +477,12 @@ load_config (char * file)
-               }
-       } else {
-               condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
--              condlog(0, "A default multipath.conf file is located at");
-+              condlog(0, "A sample multipath.conf file is located at");
-               condlog(0,
- "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf",
-                       MULTIPATH_VERSION(VERSION_CODE));
-+              condlog(0, 
-+"You can run /sbin/mpathconf to create or modify /etc/multipath.conf");
-               conf->blist_devnode = vector_alloc();
-               if (!conf->blist_devnode) {
-                       condlog(0, "cannot allocate blacklist\n");
-Index: multipath-tools/libmultipath/config.h
-===================================================================
---- multipath-tools.orig/libmultipath/config.h
-+++ multipath-tools/libmultipath/config.h
-@@ -85,6 +85,7 @@ struct config {
-       int attribute_flags;
-       int fast_io_fail;
-       unsigned int dev_loss;
-+      int find_multipaths;
-       uid_t uid;
-       gid_t gid;
-       mode_t mode;
-Index: multipath-tools/libmultipath/configure.c
-===================================================================
---- multipath-tools.orig/libmultipath/configure.c
-+++ multipath-tools/libmultipath/configure.c
-@@ -35,6 +35,7 @@
- #include "alias.h"
- #include "prio.h"
- #include "util.h"
-+#include "finder.h"
- extern int
- setup_map (struct multipath * mpp)
-@@ -462,6 +463,10 @@ coalesce_paths (struct vectors * vecs, v
-       memset(empty_buff, 0, WWID_SIZE);
-+      /* ignore refwwid if it's empty */
-+      if (refwwid && !strlen(refwwid))
-+              refwwid = NULL;
-+
-       if (force_reload) {
-               vector_foreach_slot (pathvec, pp1, k) {
-                       pp1->mpp = NULL;
-@@ -472,21 +477,35 @@ coalesce_paths (struct vectors * vecs, v
-               /* 1. if path has no unique id or wwid blacklisted */
-               if (memcmp(empty_buff, pp1->wwid, WWID_SIZE) == 0 ||
--                  filter_path(conf, pp1) > 0)
-+                  filter_path(conf, pp1) > 0) {
-+                      orphan_path(pp1);
-                       continue;
-+              }
-               /* 2. if path already coalesced */
-               if (pp1->mpp)
-                       continue;
-               /* 3. if path has disappeared */
--              if (!pp1->size)
-+              if (!pp1->size) {
-+                      orphan_path(pp1);
-                       continue;
-+              }
-               /* 4. path is out of scope */
-               if (refwwid && strncmp(pp1->wwid, refwwid, WWID_SIZE))
-                       continue;
-+              /* If find_multipaths was selected check if the path is valid */
-+              if (conf->find_multipaths){
-+                      if (refwwid || should_multipath(pp1, pathvec))
-+                              remember_wwid(pp1->wwid);
-+                      else {
-+                              orphan_path(pp1);
-+                              continue;
-+                      }
-+              }
-+
-               /*
-                * at this point, we know we really got a new mp
-                */
-Index: multipath-tools/libmultipath/defaults.h
-===================================================================
---- multipath-tools.orig/libmultipath/defaults.h
-+++ multipath-tools/libmultipath/defaults.h
-@@ -12,6 +12,7 @@
- #define DEFAULT_PGTIMEOUT      -PGTIMEOUT_NONE
- #define DEFAULT_USER_FRIENDLY_NAMES    0
- #define DEFAULT_VERBOSITY     2
-+#define DEFAULT_FIND_MULTIPATHS 0
- #define DEFAULT_CHECKINT      5
- #define MAX_CHECKINT(a)               (a << 2)
-@@ -20,5 +21,6 @@
- #define DEFAULT_SOCKET                "/var/run/multipathd.sock"
- #define DEFAULT_CONFIGFILE    "/etc/multipath.conf"
- #define DEFAULT_BINDINGS_FILE "/etc/multipath/bindings"
-+#define DEFAULT_WWIDS_FILE    "/etc/multipath/wwids"
- char * set_default (char * str);
-Index: multipath-tools/libmultipath/dict.c
-===================================================================
---- multipath-tools.orig/libmultipath/dict.c
-+++ multipath-tools/libmultipath/dict.c
-@@ -444,6 +444,27 @@ def_flush_on_last_del_handler(vector str
- }
- static int
-+def_find_multipaths_handler(vector strvec)
-+{
-+      char * buff;
-+
-+      buff = set_value(strvec);
-+
-+      if (!buff)
-+              return 1;
-+
-+      if ((strlen(buff) == 2 && !strcmp(buff, "no")) ||
-+          (strlen(buff) == 1 && !strcmp(buff, "0")))
-+              conf->find_multipaths = 0;
-+      else if ((strlen(buff) == 3 && !strcmp(buff, "yes")) ||
-+               (strlen(buff) == 1 && !strcmp(buff, "1")))
-+              conf->find_multipaths = 1;
-+
-+      FREE(buff);
-+      return 0;
-+}
-+
-+static int
- names_handler(vector strvec)
- {
-       char * buff;
-@@ -2076,6 +2097,18 @@ snprint_def_flush_on_last_del (char * bu
- }
- static int
-+snprint_def_find_multipaths (char * buff, int len, void * data)
-+{
-+      if (conf->find_multipaths == DEFAULT_FIND_MULTIPATHS)
-+              return 0;
-+      if (!conf->find_multipaths)
-+              return snprintf(buff, len, "no");
-+
-+      return snprintf(buff, len, "yes");
-+}
-+
-+
-+static int
- snprint_def_user_friendly_names (char * buff, int len, void * data)
- {
-       if (conf->user_friendly_names == DEFAULT_USER_FRIENDLY_NAMES)
-@@ -2141,6 +2174,7 @@ init_keywords(void)
-       install_keyword("gid", &def_gid_handler, &snprint_def_gid);
-       install_keyword("fast_io_fail_tmo", &def_fast_io_fail_handler, &snprint_def_fast_io_fail);
-       install_keyword("dev_loss_tmo", &def_dev_loss_handler, &snprint_def_dev_loss);
-+      install_keyword("find_multipaths", &def_find_multipaths_handler, &snprint_def_find_multipaths);
-       __deprecated install_keyword("default_selector", &def_selector_handler, NULL);
-       __deprecated install_keyword("default_path_grouping_policy", &def_pgpolicy_handler, NULL);
-       __deprecated install_keyword("default_getuid_callout", &def_getuid_callout_handler, NULL);
-Index: multipath-tools/libmultipath/file.c
-===================================================================
---- /dev/null
-+++ multipath-tools/libmultipath/file.c
-@@ -0,0 +1,178 @@
-+/*
-+ * Copyright (c) 2005 Christophe Varoqui
-+ * Copyright (c) 2005 Benjamin Marzinski, Redhat
-+ */
-+#include <stdlib.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <fcntl.h>
-+#include <errno.h>
-+#include <unistd.h>
-+#include <string.h>
-+#include <limits.h>
-+#include <stdio.h>
-+#include <signal.h>
-+
-+#include "file.h"
-+#include "debug.h"
-+#include "uxsock.h"
-+
-+
-+/*
-+ * significant parts of this file were taken from iscsi-bindings.c of the
-+ * linux-iscsi project.
-+ * Copyright (C) 2002 Cisco Systems, 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.
-+ *
-+ * See the file COPYING included with this distribution for more details.
-+ */
-+
-+static int
-+ensure_directories_exist(char *str, mode_t dir_mode)
-+{
-+      char *pathname;
-+      char *end;
-+      int err;
-+
-+      pathname = strdup(str);
-+      if (!pathname){
-+              condlog(0, "Cannot copy file pathname %s : %s",
-+                      str, strerror(errno));
-+              return -1;
-+      }
-+      end = pathname;
-+      /* skip leading slashes */
-+      while (end && *end && (*end == '/'))
-+              end++;
-+
-+      while ((end = strchr(end, '/'))) {
-+              /* if there is another slash, make the dir. */
-+              *end = '\0';
-+              err = mkdir(pathname, dir_mode);
-+              if (err && errno != EEXIST) {
-+                      condlog(0, "Cannot make directory [%s] : %s",
-+                              pathname, strerror(errno));
-+                      free(pathname);
-+                      return -1;
-+              }
-+              if (!err)
-+                      condlog(3, "Created dir [%s]", pathname);
-+              *end = '/';
-+              end++;
-+      }
-+      free(pathname);
-+      return 0;
-+}
-+
-+static void
-+sigalrm(int sig)
-+{
-+      /* do nothing */
-+}
-+
-+static int
-+lock_file(int fd, char *file_name)
-+{
-+      struct sigaction act, oldact;
-+      sigset_t set, oldset;
-+      struct flock lock;
-+      int err;
-+
-+      memset(&lock, 0, sizeof(lock));
-+      lock.l_type = F_WRLCK;
-+      lock.l_whence = SEEK_SET;
-+
-+      act.sa_handler = sigalrm;
-+      sigemptyset(&act.sa_mask);
-+      act.sa_flags = 0;
-+      sigemptyset(&set);
-+      sigaddset(&set, SIGALRM);
-+
-+      sigaction(SIGALRM, &act, &oldact);
-+      sigprocmask(SIG_UNBLOCK, &set, &oldset);
-+
-+      alarm(FILE_TIMEOUT);
-+      err = fcntl(fd, F_SETLKW, &lock);
-+      alarm(0);
-+
-+      if (err) {
-+              if (errno != EINTR)
-+                      condlog(0, "Cannot lock %s : %s", file_name,
-+                              strerror(errno));
-+              else
-+                      condlog(0, "%s is locked. Giving up.", file_name);
-+      }
-+
-+      sigprocmask(SIG_SETMASK, &oldset, NULL);
-+      sigaction(SIGALRM, &oldact, NULL);
-+      return err;
-+}
-+
-+int
-+open_file(char *file, int *can_write, char *header)
-+{
-+      int fd;
-+      struct stat s;
-+
-+      if (ensure_directories_exist(file, 0700))
-+              return -1;
-+      *can_write = 1;
-+      fd = open(file, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
-+      if (fd < 0) {
-+              if (errno == EROFS) {
-+                      *can_write = 0;
-+                      condlog(3, "Cannot open file [%s] read/write. "
-+                              " trying readonly", file);
-+                      fd = open(file, O_RDONLY);
-+                      if (fd < 0) {
-+                              condlog(0, "Cannot open file [%s] "
-+                                      "readonly : %s", file, strerror(errno));
-+                              return -1;
-+                      }
-+              }
-+              else {
-+                      condlog(0, "Cannot open file [%s] : %s", file,
-+                              strerror(errno));
-+                      return -1;
-+              }
-+      }
-+      if (*can_write && lock_file(fd, file) < 0)
-+              goto fail;
-+
-+      memset(&s, 0, sizeof(s));
-+      if (fstat(fd, &s) < 0){
-+              condlog(0, "Cannot stat file %s : %s", file, strerror(errno));
-+              goto fail;
-+      }
-+      if (s.st_size == 0) {
-+              if (*can_write == 0)
-+                      goto fail;
-+              /* If file is empty, write the header */
-+              size_t len = strlen(header);
-+              if (write_all(fd, header, len) != len) {
-+                      condlog(0,
-+                              "Cannot write header to file %s : %s", file,
-+                              strerror(errno));
-+                      /* cleanup partially written header */
-+                      ftruncate(fd, 0);
-+                      goto fail;
-+              }
-+              fsync(fd);
-+              condlog(3, "Initialized new file [%s]", file);
-+      }
-+
-+      return fd;
-+
-+fail:
-+      close(fd);
-+      return -1;
-+}
-Index: multipath-tools/libmultipath/file.h
-===================================================================
---- /dev/null
-+++ multipath-tools/libmultipath/file.h
-@@ -0,0 +1,11 @@
-+/*
-+ * Copyright (c) 2010 Benjamin Marzinski, Redhat
-+ */
-+
-+#ifndef _FILE_H
-+#define _FILE_H
-+
-+#define FILE_TIMEOUT 30
-+int open_file(char *file, int *can_write, char *header);
-+
-+#endif /* _FILE_H */
-Index: multipath-tools/libmultipath/finder.c
-===================================================================
---- /dev/null
-+++ multipath-tools/libmultipath/finder.c
-@@ -0,0 +1,150 @@
-+#include <stdlib.h>
-+#include <errno.h>
-+#include <unistd.h>
-+#include <string.h>
-+#include <limits.h>
-+#include <stdio.h>
-+
-+#include "checkers.h"
-+#include "vector.h"
-+#include "structs.h"
-+#include "debug.h"
-+#include "uxsock.h"
-+#include "file.h"
-+#include "finder.h"
-+#include "defaults.h"
-+
-+/*
-+ * Copyright (c) 2010 Benjamin Marzinski, Redhat
-+ */
-+
-+static int
-+lookup_wwid(FILE *f, char *wwid) {
-+      char buf[LINE_MAX];
-+
-+      while (fgets(buf, LINE_MAX, f)) {
-+              char *c;
-+
-+              c = strpbrk(buf, "#\n\r");
-+              if (c)
-+                      *c = '\0';
-+              if (*buf == '\0')
-+                      continue;
-+              if (strncmp(wwid, buf, WWID_SIZE) == 0)
-+                      return 1;
-+      }
-+      return 0;
-+}
-+
-+static int
-+write_out_wwid(int fd, char *wwid) {
-+      int ret;
-+      off_t offset;
-+      char buf[WWID_SIZE + 1];
-+
-+      ret = snprintf(buf, WWID_SIZE + 1, "%s\n", wwid);
-+      if (ret > WWID_SIZE || ret < 0){
-+              condlog(0, "can't format wwid for writing (%d) : %s",
-+                      ret, strerror(errno));
-+              return -1;
-+      }
-+      offset = lseek(fd, 0, SEEK_END);
-+      if (offset < 0) {
-+              condlog(0, "can't seek to the end of wwids file : %s",
-+                      strerror(errno));
-+              return -1;
-+      }
-+      if (write_all(fd, buf, strlen(buf)) != strlen(buf)) {
-+              condlog(0, "cannot write wwid to wwids file : %s",
-+                      strerror(errno));
-+              ftruncate(fd, offset);
-+              return -1;
-+      }
-+      return 1;
-+}
-+
-+static int
-+check_wwids_file(char *wwid, int write_wwid)
-+{
-+      int scan_fd, fd, can_write, found, ret;
-+      FILE *f;
-+      fd = open_file(DEFAULT_WWIDS_FILE, &can_write, WWIDS_FILE_HEADER);
-+      if (fd < 0)
-+              return -1;
-+
-+      scan_fd = dup(fd);
-+      if (scan_fd < 0) {
-+              condlog(0, "can't dup wwids file descriptor : %s",
-+                      strerror(errno));
-+              close(fd);
-+              return -1;
-+      }
-+      f = fdopen(scan_fd, "r");
-+      if (!f) {
-+              condlog(0,"can't fdopen wwids file : %s", strerror(errno));
-+              close(fd);
-+              close(scan_fd);
-+              return -1;
-+      }
-+      found = lookup_wwid(f, wwid);
-+      if (found) {
-+              ret = 0;
-+              goto out;
-+      }
-+      if (!write_wwid) {
-+              ret = -1;
-+              goto out;
-+      }
-+      if (!can_write) {
-+              condlog(0, "wwids file is read-only. Can't write wwid");
-+              ret = -1;
-+              goto out;
-+      }
-+      ret = write_out_wwid(fd, wwid);
-+out:
-+      fclose(f);
-+      close(scan_fd);
-+      close(fd);
-+      return ret;
-+}
-+
-+int
-+should_multipath(struct path *pp1, vector pathvec)
-+{
-+      int i;
-+      struct path *pp2;
-+
-+      condlog(4, "checking if %s should be multipathed", pp1->dev);
-+      vector_foreach_slot(pathvec, pp2, i) {
-+              if (pp1->dev == pp2->dev)
-+                      continue;
-+              if (strncmp(pp1->wwid, pp2->wwid, WWID_SIZE) == 0) {
-+                      condlog(3, "found multiple paths with wwid %s, "
-+                              "multipathing %s", pp1->wwid, pp1->dev);
-+                      return 1;
-+              }
-+      }
-+      if (check_wwids_file(pp1->wwid, 0) < 0) {
-+              condlog(3, "wwid %s not in wwids file, skipping %s",
-+                      pp1->wwid, pp1->dev);
-+              return 0;
-+      }
-+      condlog(3, "found wwid %s in wwids file, multipathing %s", pp1->wwid,
-+              pp1->dev);
-+      return 1;
-+}
-+
-+int
-+remember_wwid(char *wwid)
-+{
-+      int ret = check_wwids_file(wwid, 1);
-+      if (ret < 0){
-+              condlog(3, "failed writing wwid %s to wwids file", wwid);
-+              return -1;
-+      }
-+      if (ret == 1)
-+              condlog(3, "wrote wwid %s to wwids file", wwid);
-+      else
-+              condlog(4, "wwid %s already in wwids file", wwid);
-+      return 0;
-+}
-Index: multipath-tools/libmultipath/finder.h
-===================================================================
---- /dev/null
-+++ multipath-tools/libmultipath/finder.h
-@@ -0,0 +1,18 @@
-+/*
-+ * Copyright (c) 2010 Benjamin Marzinski, Redhat
-+ */
-+
-+#ifndef _FINDER_H
-+#define _FINDER_H
-+
-+#define WWIDS_FILE_HEADER \
-+"# Multipath wwids, Version : 1.0\n" \
-+"# NOTE: This file is automatically maintained by multipath and multipathd.\n" \
-+"# You should not need to edit this file in normal circumstances.\n" \
-+"#\n" \
-+"# Valid WWIDs:\n"
-+
-+int should_multipath(struct path *pp, vector pathvec);
-+int remember_wwid(char *wwid);
-+
-+#endif /* _FINDER_H */
-Index: multipath-tools/multipath/main.c
-===================================================================
---- multipath-tools.orig/multipath/main.c
-+++ multipath-tools/multipath/main.c
-@@ -307,7 +307,7 @@ configure (void)
-       /*
-        * core logic entry point
-        */
--      r = coalesce_paths(&vecs, NULL, NULL, conf->force_reload);
-+      r = coalesce_paths(&vecs, NULL, refwwid, conf->force_reload);
- out:
-       if (refwwid)
-Index: multipath-tools/multipathd/main.c
-===================================================================
---- multipath-tools.orig/multipathd/main.c
-+++ multipath-tools/multipathd/main.c
-@@ -47,6 +47,7 @@
- #include <print.h>
- #include <configure.h>
- #include <prio.h>
-+#include <finder.h>
- #include "main.h"
- #include "pidfile.h"
-@@ -397,7 +398,7 @@ ev_add_path (char * devname, struct vect
-        */
-       if (memcmp(empty_buff, pp->wwid, WWID_SIZE) == 0) {
-               condlog(0, "%s: failed to get path uid", devname);
--              return 1; /* leave path added to pathvec */
-+              goto fail; /* leave path added to pathvec */
-       }
-       if (filter_path(conf, pp) > 0){
-               int i = find_slot(vecs->pathvec, (void *)pp);
-@@ -412,18 +413,26 @@ rescan:
-               condlog(4,"%s: adopting all paths for path %s",
-                       mpp->alias, pp->dev);
-               if (adopt_paths(vecs->pathvec, mpp))
--                      return 1; /* leave path added to pathvec */
-+                      goto fail; /* leave path added to pathvec */
-               verify_paths(mpp, vecs, NULL);
-               mpp->flush_on_last_del = FLUSH_UNDEF;
-               mpp->action = ACT_RELOAD;
-       }
-       else {
-+              if (conf->find_multipaths) {
-+                      if (should_multipath(pp, vecs->pathvec))
-+                              remember_wwid(pp->wwid);
-+                      else {
-+                              orphan_path(pp);
-+                              return 0;
-+                      }
-+              }
-               condlog(4,"%s: creating new map", pp->dev);
-               if ((mpp = add_map_with_path(vecs, pp, 1)))
-                       mpp->action = ACT_CREATE;
-               else
--                      return 1; /* leave path added to pathvec */
-+                      goto fail; /* leave path added to pathvec */
-       }
-       /*
-@@ -432,7 +441,7 @@ rescan:
-       if (setup_map(mpp)) {
-               condlog(0, "%s: failed to setup map for addition of new "
-                       "path %s", mpp->alias, devname);
--              goto out;
-+              goto fail_map;
-       }
-       /*
-        * reload the map for the multipath mapped device
-@@ -450,7 +459,7 @@ rescan:
-                       goto rescan;
-               }
-               else
--                      goto out;
-+                      goto fail_map;
-       }
-       dm_lib_release();
-@@ -458,19 +467,21 @@ rescan:
-        * update our state from kernel regardless of create or reload
-        */
-       if (setup_multipath(vecs, mpp))
--              goto out;
-+              goto fail_map;
-       sync_map_state(mpp);
-       if (mpp->action == ACT_CREATE &&
-           start_waiter_thread(mpp, vecs))
--                      goto out;
-+                      goto fail_map;
-       condlog(2, "%s path added to devmap %s", devname, mpp->alias);
-       return 0;
--out:
-+fail_map:
-       remove_map(mpp, vecs, 1);
-+fail:
-+      orphan_path(pp);
-       return 1;
- }
-Index: multipath-tools/libmultipath/Makefile
-===================================================================
---- multipath-tools.orig/libmultipath/Makefile
-+++ multipath-tools/libmultipath/Makefile
-@@ -12,7 +12,7 @@ OBJS = memory.o parser.o vector.o devmap
-        pgpolicies.o debug.o regex.o defaults.o uevent.o \
-        switchgroup.o uxsock.o print.o alias.o log_pthread.o \
-        log.o configure.o structs_vec.o sysfs.o prio.o checkers.o \
--       lock.o waiter.o
-+       lock.o waiter.o file.o finder.o
- LIBDM_API_FLUSH = $(shell if test -d /lib64 ; then objdump -T /lib64/libdevmapper.so* ; else objdump -T /lib/libdevmapper.so.* ; fi | grep -c dm_task_no_flush)
-Index: multipath-tools/multipath/mpathconf
-===================================================================
---- /dev/null
-+++ multipath-tools/multipath/mpathconf
-@@ -0,0 +1,234 @@
-+#!/bin/sh
-+#
-+# Copyright (C) 2010 Red Hat, Inc. All rights reserved.
-+#
-+# This file is part of the device-mapper-multipath package.
-+#
-+# This copyrighted material is made available to anyone wishing to use,
-+# modify, copy, or redistribute it subject to the terms and conditions
-+# of the GNU General Public License v.2.
-+#
-+# 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
-+
-+#
-+# Simple editting of /etc/multipath.conf
-+# This program was largely ripped off from lvmconf
-+#
-+
-+DEFAULT_CONFIGFILE="/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf"
-+CONFIGFILE="/etc/multipath.conf"
-+MULTIPATHDIR="/etc/multipath"
-+TMPFILE=/etc/multipath/.multipath.conf.tmp
-+
-+function usage
-+{
-+      echo "usage: $0 <command>"
-+      echo ""
-+      echo "Commands:"
-+      echo "Enable: --enable [--user_friendly_names <y|n>] [--find_multipaths <y|n>"
-+      echo "Disable: --disable"
-+      echo "Set user_friendly_names: --user_friendly_names <y|n>"
-+      echo "Set find_multipaths: --find_multipaths <y|n>"
-+      echo ""
-+}
-+
-+function parse_args
-+{
-+      while [ -n "$1" ]; do
-+              case $1 in
-+                      --enable)
-+                              ENABLE=1
-+                              shift
-+                              ;;
-+                      --disable)
-+                              ENABLE=0
-+                              shift
-+                              ;;
-+                      --user_friendly_names)
-+                              if [ -n "$2" ]; then
-+                                      FRIENDLY=$2
-+                                      shift 2
-+                              else
-+                                      usage
-+                                      exit 1
-+                              fi
-+                              ;;
-+                      --find_multipaths)
-+                              if [ -n "$2" ]; then
-+                                      FIND=$2
-+                                      shift 2
-+                              else
-+                                      usage
-+                                      exit 1
-+                              fi
-+                              ;;
-+                      *)
-+                              usage
-+                              exit
-+              esac
-+      done
-+}
-+
-+function validate_args
-+{
-+      if [ "$ENABLE" = "0" ] && [ -n "$FRIENDLY" -o -n "$FIND" ]; then
-+              echo "ignoring extra parameters on disable"
-+              FRIENDLY=""
-+              FIND=""
-+      fi
-+      if [ -n "$FRIENDLY" ] && [ "$FRIENDLY" != "y" -a "$FRIENDLY" != "n" ]; then
-+              echo "--user_friendly_names must be either 'y' or 'n'"
-+              exit 1
-+      fi
-+      if [ -n "$FIND" ] && [ "$FIND" != "y" -a "$FIND" != "n" ]; then
-+              echo "--find_multipaths must be either 'y' or 'n'"
-+              exit 1
-+      fi
-+      if [ -z "$ENABLE" -a -z "$FIND" -a -z "$FRIENDLY" ]; then
-+              DISPLAY=1
-+      fi
-+}
-+
-+umask 0077
-+
-+parse_args "$@"
-+
-+validate_args
-+
-+if [ ! -d "$MULTIPATHDIR" ]; then
-+      echo "/etc/multipath/ does not exist. failing"
-+      exit 1
-+fi
-+
-+rm $TMPFILE 2> /dev/null
-+if [ -f "$CONFIGFILE" ]; then
-+      cp $CONFIGFILE $TMPFILE
-+elif [ -f "$DEFAULT_CONFIGFILE" ]; then
-+      cp $DEFAULT_CONFIGFILE $TMPFILE
-+else
-+      touch $TMPFILE
-+fi
-+
-+if grep -q "^blacklist[[:space:]]*{" $TMPFILE ; then
-+      HAVE_BLACKLIST=1
-+fi
-+
-+if grep -q "^defaults[[:space:]]*{" $TMPFILE ; then
-+      HAVE_DEFAULTS=1
-+fi
-+
-+if [ "$HAVE_BLACKLIST" = "1" ]; then
-+      if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*devnode \"\.\?\*\"" ; then
-+              HAVE_DISABLE=1
-+      elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[#[:space:]]*devnode \"\.\?\*\"" ; then
-+              HAVE_DISABLE=0
-+      fi
-+fi
-+
-+if [ "$HAVE_DEFAULTS" = "1" ]; then
-+      if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)" ; then
-+              HAVE_FIND=1
-+      elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)" ; then
-+              HAVE_FIND=0
-+      fi
-+      if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)" ; then
-+              HAVE_FRIENDLY=1
-+      elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)" ; then
-+              HAVE_FRIENDLY=0
-+      fi
-+fi
-+
-+if [ -n "$DISPLAY" ]; then
-+      if [ -z "$HAVE_DISABLE" -o "$HAVE_DISABLE" = 0 ]; then
-+              echo "multipath is enabled"
-+      else
-+              echo "multipath is disabled"
-+      fi
-+      if [ -z "$HAVE_FIND"  -o "$HAVE_FIND" = 0 ]; then
-+              echo "find_multipaths is disabled"
-+      else
-+              echo "find_multipaths is enabled"
-+      fi
-+      if [ -z "$HAVE_FRIENDLY" -o "$HAVE_FRIENDLY" = 0 ]; then
-+              echo "user_friendly_names is disabled"
-+      else
-+              echo "user_friendly_names is enabled"
-+      fi
-+      exit 0
-+fi
-+
-+if [ -z "$HAVE_BLACKLIST" ]; then
-+      cat >> $TMPFILE <<- _EOF_
-+
-+blacklist {
-+}
-+_EOF_
-+fi
-+
-+if [ -z "$HAVE_DEFAULTS" ]; then
-+      cat >> $TMPFILE <<- _EOF_
-+
-+defaults {
-+}
-+_EOF_
-+fi
-+
-+if [ "$ENABLE" = 1 ]; then
-+      if [ "$HAVE_DISABLE" = 1 ]; then
-+              sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/#      devnode ".*"/' $TMPFILE
-+      fi
-+elif [ "$ENABLE" = 0 ]; then
-+      if [ -z "$HAVE_DISABLE" ]; then
-+              sed -i '/^blacklist[[:space:]]*{/ a\
-+      devnode "*"
-+' $TMPFILE
-+      elif [ "$HAVE_DISABLE" = 0 ]; then
-+              sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[#[:space:]]*devnode \"\.\?\*\"/ devnode ".*"/' $TMPFILE
-+      fi
-+fi
-+
-+if [ "$FIND" = "n" ]; then
-+      if [ "$HAVE_FIND" = 1 ]; then
-+              sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)/     find_multipaths no/' $TMPFILE
-+      fi
-+elif [ "$FIND" = "y" ]; then
-+      if [ -z "$HAVE_FIND" ]; then
-+              sed -i '/^defaults[[:space:]]*{/ a\
-+      find_multipaths yes
-+' $TMPFILE
-+      elif [ "$HAVE_FIND" = 0 ]; then
-+              sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)/      find_multipaths yes/' $TMPFILE
-+      fi
-+fi
-+
-+if [ "$FRIENDLY" = "n" ]; then
-+      if [ "$HAVE_FRIENDLY" = 1 ]; then
-+              sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)/ user_friendly_names no/' $TMPFILE
-+      fi
-+elif [ "$FRIENDLY" = "y" ]; then
-+      if [ -z "$HAVE_FRIENDLY" ]; then
-+              sed -i '/^defaults[[:space:]]*{/ a\
-+      user_friendly_names yes
-+' $TMPFILE
-+      elif [ "$HAVE_FRIENDLY" = 0 ]; then
-+              sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)/  user_friendly_names yes/' $TMPFILE
-+      fi
-+fi
-+
-+if [ -f "$CONFIGFILE" ]; then
-+      cp $CONFIGFILE $CONFIGFILE.old
-+      if [ $? != 0 ]; then
-+              echo "failed to backup old config file, $CONFIGFILE not updated"
-+              exit 1
-+      fi
-+fi
-+
-+cp $TMPFILE $CONFIGFILE
-+if [ $? != 0 ]; then
-+      echo "failed to copy new config file into place, check $CONFIGFILE is still OK"
-+      exit 1
-+fi
-+
-+rm -f $TMPFILE
-Index: multipath-tools/multipath/Makefile
-===================================================================
---- multipath-tools.orig/multipath/Makefile
-+++ multipath-tools/multipath/Makefile
-@@ -21,6 +21,7 @@ $(EXEC): $(OBJS)
- install:
-       $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
-       $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
-+      $(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/
-       $(INSTALL_PROGRAM) -d $(DESTDIR)/lib/udev/rules.d
-       $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/lib/udev/rules.d/40-multipath.rules
-       $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
-@@ -31,6 +32,7 @@ install:
- uninstall:
-       rm $(DESTDIR)/lib/udev/rules.d/multipath.rules
-       rm $(DESTDIR)$(bindir)/$(EXEC)
-+      rm $(DESTDIR)$(bindir)/mpathconf
-       rm $(DESTDIR)$(mandir)/$(EXEC).8.gz
-       rm $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
diff --git a/multipath-tools/patches/0023-RHBZ-557810-emc-invista-config.patch b/multipath-tools/patches/0023-RHBZ-557810-emc-invista-config.patch
deleted file mode 100644 (file)
index 0db517f..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-Index: multipath-tools/libmultipath/hwtable.c
-===================================================================
---- multipath-tools.orig/libmultipath/hwtable.c
-+++ multipath-tools/libmultipath/hwtable.c
-@@ -282,6 +282,21 @@ static struct hwentry default_hw[] = {
-               .checker_name  = EMC_CLARIION,
-               .prio_name     = PRIO_EMC,
-       },
-+      {
-+              .vendor        = "EMC",
-+              .product       = "Invista",
-+              .bl_product    = "LUNZ",
-+              .getuid        = DEFAULT_GETUID,
-+              .features      = DEFAULT_FEATURES,
-+              .hwhandler     = DEFAULT_HWHANDLER,
-+              .selector      = DEFAULT_SELECTOR,
-+              .pgpolicy      = MULTIBUS,
-+              .pgfailback    = FAILBACK_UNDEF,
-+              .rr_weight     = RR_WEIGHT_NONE,
-+              .no_path_retry = 5,
-+              .minio         = DEFAULT_MINIO,
-+              .prio_name     = DEFAULT_PRIO,
-+      },
-       /*
-        * Fujitsu controller family
-        *
-Index: multipath-tools/multipath.conf.defaults
-===================================================================
---- multipath-tools.orig/multipath.conf.defaults
-+++ multipath-tools/multipath.conf.defaults
-@@ -209,6 +209,21 @@
- #             prio                    emc
- #     }
- #     device {
-+#             vendor                  "EMC"
-+#             product                 "Invista"
-+#             product_blacklist       "LUNZ"
-+#             getuid_callout          "/lib/udev/scsi_id --whitelisted --page=pre-spc3-83 --device=/dev/%n"
-+#             features                "0"
-+#             hardware_handler        "0"
-+#             path_selector           "round-robin 0"
-+#             path_grouping_policy    multibus
-+#             rr_weight               uniform
-+#             no_path_retry           5
-+#             rr_min_io               1000
-+#             path_checker            tur
-+#             prio                    const
-+#     }
-+#     device {
- #             vendor                  "FSC"
- #             product                 "CentricStor"
- #             getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
diff --git a/multipath-tools/patches/0024-RHBZ-565933-checker-timeout.patch b/multipath-tools/patches/0024-RHBZ-565933-checker-timeout.patch
deleted file mode 100644 (file)
index 44f12f7..0000000
+++ /dev/null
@@ -1,428 +0,0 @@
----
- libmultipath/checkers.h              |   15 +--------------
- libmultipath/checkers/emc_clariion.c |    4 ++--
- libmultipath/checkers/hp_sw.c        |   12 ++++++------
- libmultipath/checkers/libsg.c        |    5 +++--
- libmultipath/checkers/libsg.h        |    3 ++-
- libmultipath/checkers/rdac.c         |    9 +++++----
- libmultipath/checkers/readsector0.c  |    2 +-
- libmultipath/checkers/tur.c          |    4 ++--
- libmultipath/config.h                |    1 +
- libmultipath/dict.c                  |   29 +++++++++++++++++++++++++++++
- libmultipath/discovery.c             |   27 +++++++++++++++++++++++++++
- libmultipath/discovery.h             |    1 +
- libmultipath/propsel.c               |   19 +++++++++++++++++--
- multipath.conf.annotated             |    9 +++++++++
- 14 files changed, 106 insertions(+), 34 deletions(-)
-
-Index: multipath-tools/libmultipath/checkers.h
-===================================================================
---- multipath-tools.orig/libmultipath/checkers.h
-+++ multipath-tools/libmultipath/checkers.h
-@@ -69,20 +69,6 @@ enum path_check_state {
- #define DEFAULT_CHECKER DIRECTIO
--/*
-- * Overloaded storage response time can be very long.
-- * SG_IO timouts after DEF_TIMEOUT milliseconds, and checkers interprets this
-- * as a path failure. multipathd then proactively evicts the path from the DM
-- * multipath table in this case.
-- *
-- * This generaly snow balls and ends up in full eviction and IO errors for end
-- * users. Bad. This may also cause SCSI bus resets, causing disruption for all
-- * local and external storage hardware users.
-- * 
-- * Provision a long timeout. Longer than any real-world application would cope
-- * with.
-- */
--#define DEF_TIMEOUT           300000
- #define ASYNC_TIMEOUT_SEC     30
- /*
-@@ -98,6 +84,7 @@ struct checker {
-       struct list_head node;
-       int fd;
-       int sync;
-+      unsigned int timeout;
-       int disable;
-       char name[CHECKER_NAME_LEN];
-       char message[CHECKER_MSG_LEN];       /* comm with callers */
-Index: multipath-tools/libmultipath/checkers/emc_clariion.c
-===================================================================
---- multipath-tools.orig/libmultipath/checkers/emc_clariion.c
-+++ multipath-tools/libmultipath/checkers/emc_clariion.c
-@@ -113,7 +113,7 @@ int libcheck_check (struct checker * c)
-       io_hdr.dxferp = sense_buffer;
-       io_hdr.cmdp = inqCmdBlk;
-       io_hdr.sbp = sb;
--      io_hdr.timeout = DEF_TIMEOUT;
-+      io_hdr.timeout = c->timeout;
-       io_hdr.pack_id = 0;
-       if (ioctl(c->fd, SG_IO, &io_hdr) < 0) {
-               MSG(c, "emc_clariion_checker: sending query command failed");
-@@ -182,7 +182,7 @@ int libcheck_check (struct checker * c)
-               unsigned char buf[4096];
-               memset(buf, 0, 4096);
--              ret = sg_read(c->fd, &buf[0], sbb = &sb[0]);
-+              ret = sg_read(c->fd, &buf[0], sbb = &sb[0], c->timeout);
-               if (ret == PATH_DOWN) {
-                       hexadecimal_to_ascii(ct->wwn, wwnstr);
-Index: multipath-tools/libmultipath/checkers/hp_sw.c
-===================================================================
---- multipath-tools.orig/libmultipath/checkers/hp_sw.c
-+++ multipath-tools/libmultipath/checkers/hp_sw.c
-@@ -46,7 +46,7 @@ void libcheck_free (struct checker * c)
- static int
- do_inq(int sg_fd, int cmddt, int evpd, unsigned int pg_op,
--       void *resp, int mx_resp_len, int noisy)
-+       void *resp, int mx_resp_len, int noisy, unsigned int timeout)
- {
-       unsigned char inqCmdBlk[INQUIRY_CMDLEN] =
-               { INQUIRY_CMD, 0, 0, 0, 0, 0 };
-@@ -70,7 +70,7 @@ do_inq(int sg_fd, int cmddt, int evpd, u
-       io_hdr.dxferp = resp;
-       io_hdr.cmdp = inqCmdBlk;
-       io_hdr.sbp = sense_b;
--      io_hdr.timeout = DEF_TIMEOUT;
-+      io_hdr.timeout = timeout;
-       if (ioctl(sg_fd, SG_IO, &io_hdr) < 0)
-               return 1;
-@@ -98,7 +98,7 @@ do_inq(int sg_fd, int cmddt, int evpd, u
- }
- static int
--do_tur (int fd)
-+do_tur (int fd, unsigned int timeout)
- {
-       unsigned char turCmdBlk[TUR_CMD_LEN] = { 0x00, 0, 0, 0, 0, 0 };
-       struct sg_io_hdr io_hdr;
-@@ -111,7 +111,7 @@ do_tur (int fd)
-       io_hdr.dxfer_direction = SG_DXFER_NONE;
-       io_hdr.cmdp = turCmdBlk;
-       io_hdr.sbp = sense_buffer;
--      io_hdr.timeout = DEF_TIMEOUT;
-+      io_hdr.timeout = timeout;
-       io_hdr.pack_id = 0;
-       if (ioctl(fd, SG_IO, &io_hdr) < 0)
-@@ -128,12 +128,12 @@ libcheck_check (struct checker * c)
- {
-       char buff[MX_ALLOC_LEN];
--      if (0 != do_inq(c->fd, 0, 1, 0x80, buff, MX_ALLOC_LEN, 0)) {
-+      if (0 != do_inq(c->fd, 0, 1, 0x80, buff, MX_ALLOC_LEN, 0, c->timeout)) {
-               MSG(c, MSG_HP_SW_DOWN);
-               return PATH_DOWN;
-       }
--      if (do_tur(c->fd)) {
-+      if (do_tur(c->fd, c->timeout)) {
-               MSG(c, MSG_HP_SW_GHOST);
-               return PATH_GHOST;
-       }
-Index: multipath-tools/libmultipath/checkers/libsg.c
-===================================================================
---- multipath-tools.orig/libmultipath/checkers/libsg.c
-+++ multipath-tools/libmultipath/checkers/libsg.c
-@@ -11,7 +11,8 @@
- #include "../libmultipath/sg_include.h"
- int
--sg_read (int sg_fd, unsigned char * buff, unsigned char * senseBuff)
-+sg_read (int sg_fd, unsigned char * buff, unsigned char * senseBuff,
-+       unsigned int timeout)
- {
-       /* defaults */
-       int blocks = 1;
-@@ -51,7 +52,7 @@ sg_read (int sg_fd, unsigned char * buff
-       io_hdr.dxferp = buff;
-       io_hdr.mx_sb_len = SENSE_BUFF_LEN;
-       io_hdr.sbp = senseBuff;
--      io_hdr.timeout = DEF_TIMEOUT;
-+      io_hdr.timeout = timeout;
-       io_hdr.pack_id = (int)start_block;
-       if (diop && *diop)
-       io_hdr.flags |= SG_FLAG_DIRECT_IO;
-Index: multipath-tools/libmultipath/checkers/libsg.h
-===================================================================
---- multipath-tools.orig/libmultipath/checkers/libsg.h
-+++ multipath-tools/libmultipath/checkers/libsg.h
-@@ -3,6 +3,7 @@
- #define SENSE_BUFF_LEN 32
--int sg_read (int sg_fd, unsigned char * buff, unsigned char * senseBuff);
-+int sg_read (int sg_fd, unsigned char * buff, unsigned char * senseBuff,
-+           unsigned int timeout);
- #endif /* _LIBSG_H */
-Index: multipath-tools/libmultipath/checkers/rdac.c
-===================================================================
---- multipath-tools.orig/libmultipath/checkers/rdac.c
-+++ multipath-tools/libmultipath/checkers/rdac.c
-@@ -18,7 +18,6 @@
- #define INQUIRY_CMDLEN                6
- #define INQUIRY_CMD           0x12
- #define SENSE_BUFF_LEN                32
--#define RDAC_DEF_TIMEOUT      60000
- #define SCSI_CHECK_CONDITION  0x2
- #define SCSI_COMMAND_TERMINATED       0x22
- #define SG_ERR_DRIVER_SENSE   0x08
-@@ -43,7 +42,8 @@ void libcheck_free (struct checker * c)
- }
- static int
--do_inq(int sg_fd, unsigned int pg_op, void *resp, int mx_resp_len)
-+do_inq(int sg_fd, unsigned int pg_op, void *resp, int mx_resp_len,
-+       unsigned int timeout)
- {
-       unsigned char inqCmdBlk[INQUIRY_CMDLEN] = { INQUIRY_CMD, 1, 0, 0, 0, 0 };
-       unsigned char sense_b[SENSE_BUFF_LEN];
-@@ -62,7 +62,7 @@ do_inq(int sg_fd, unsigned int pg_op, vo
-       io_hdr.dxferp = resp;
-       io_hdr.cmdp = inqCmdBlk;
-       io_hdr.sbp = sense_b;
--      io_hdr.timeout = RDAC_DEF_TIMEOUT;
-+      io_hdr.timeout = timeout;
-       if (ioctl(sg_fd, SG_IO, &io_hdr) < 0)
-               return 1;
-@@ -103,7 +103,8 @@ libcheck_check (struct checker * c)
-       struct volume_access_inq inq;
-       memset(&inq, 0, sizeof(struct volume_access_inq));
--      if (0 != do_inq(c->fd, 0xC9, &inq, sizeof(struct volume_access_inq))) {
-+      if (0 != do_inq(c->fd, 0xC9, &inq, sizeof(struct volume_access_inq),
-+                      c->timeout)) {
-               MSG(c, MSG_RDAC_DOWN);
-               return PATH_DOWN;
-       } else {
-Index: multipath-tools/libmultipath/checkers/readsector0.c
-===================================================================
---- multipath-tools.orig/libmultipath/checkers/readsector0.c
-+++ multipath-tools/libmultipath/checkers/readsector0.c
-@@ -29,7 +29,7 @@ int libcheck_check (struct checker * c)
-       unsigned char sbuf[SENSE_BUFF_LEN];
-       int ret;
--      ret = sg_read(c->fd, &buf[0], &sbuf[0]);
-+      ret = sg_read(c->fd, &buf[0], &sbuf[0], c->timeout);
-       switch (ret)
-       {
-Index: multipath-tools/libmultipath/checkers/tur.c
-===================================================================
---- multipath-tools.orig/libmultipath/checkers/tur.c
-+++ multipath-tools/libmultipath/checkers/tur.c
-@@ -63,7 +63,7 @@ retry:
-       io_hdr.dxferp = (unsigned char *)resp_buffer;
-       io_hdr.cmdp = inq_cmd;
-       io_hdr.sbp = sense_buffer;
--      io_hdr.timeout = 60; // IOCTL timeout value.
-+      io_hdr.timeout = c->timeout; // IOCTL timeout value.
-       if (ioctl(c->fd, SG_IO, &io_hdr) < 0) {
-               condlog(0, "SG_IO ioctl failed: %s", strerror(errno));
-@@ -148,7 +148,7 @@ libcheck_check (struct checker * c)
-       io_hdr.dxfer_direction = SG_DXFER_NONE;
-       io_hdr.cmdp = turCmdBlk;
-       io_hdr.sbp = sense_buffer;
--      io_hdr.timeout = DEF_TIMEOUT;
-+      io_hdr.timeout = c->timeout;
-       io_hdr.pack_id = 0;
-       if (ioctl(c->fd, SG_IO, &io_hdr) < 0) {
-               MSG(c, MSG_TUR_DOWN);
-Index: multipath-tools/libmultipath/config.h
-===================================================================
---- multipath-tools.orig/libmultipath/config.h
-+++ multipath-tools/libmultipath/config.h
-@@ -80,6 +80,7 @@ struct config {
-       int max_fds;
-       int force_reload;
-       int queue_without_daemon;
-+      int checker_timeout;
-       int daemon;
-       int flush_on_last_del;
-       int attribute_flags;
-Index: multipath-tools/libmultipath/dict.c
-===================================================================
---- multipath-tools.orig/libmultipath/dict.c
-+++ multipath-tools/libmultipath/dict.c
-@@ -396,6 +396,25 @@ def_queue_without_daemon(vector strvec)
- }
- static int
-+def_checker_timeout_handler(vector strvec)
-+{
-+      unsigned int checker_timeout;
-+      char *buff;
-+
-+      buff = set_value(strvec);
-+      if (!buff)
-+              return 1;
-+
-+      if (sscanf(buff, "%u", &checker_timeout) == 1)
-+              conf->checker_timeout = checker_timeout;
-+      else
-+              conf->checker_timeout = 0;
-+
-+      free(buff);
-+      return 0;
-+}
-+
-+static int
- def_pg_timeout_handler(vector strvec)
- {
-       int pg_timeout;
-@@ -2068,6 +2087,15 @@ snprint_def_queue_without_daemon (char *
- }
- static int
-+snprint_def_checker_timeout (char *buff, int len, void *data)
-+{
-+      if (!conf->checker_timeout)
-+              return 0;
-+
-+      return snprintf(buff, len, "%u", conf->checker_timeout);
-+}
-+
-+static int
- snprint_def_pg_timeout (char * buff, int len, void * data)
- {
-       if (conf->pg_timeout == DEFAULT_PGTIMEOUT)
-@@ -2166,6 +2194,7 @@ init_keywords(void)
-       install_keyword("rr_weight", &def_weight_handler, &snprint_def_rr_weight);
-       install_keyword("no_path_retry", &def_no_path_retry_handler, &snprint_def_no_path_retry);
-       install_keyword("queue_without_daemon", &def_queue_without_daemon, &snprint_def_queue_without_daemon);
-+      install_keyword("checker_timeout", &def_checker_timeout_handler, &snprint_def_checker_timeout);
-       install_keyword("pg_timeout", &def_pg_timeout_handler, &snprint_def_pg_timeout);
-       install_keyword("flush_on_last_del", &def_flush_on_last_del_handler, &snprint_def_flush_on_last_del);
-       install_keyword("user_friendly_names", &names_handler, &snprint_def_user_friendly_names);
-Index: multipath-tools/libmultipath/discovery.c
-===================================================================
---- multipath-tools.orig/libmultipath/discovery.c
-+++ multipath-tools/libmultipath/discovery.c
-@@ -164,6 +164,31 @@ sysfs_get_dev (struct sysfs_device * dev
- }
- int
-+sysfs_get_timeout(struct sysfs_device *dev, unsigned int *timeout)
-+{
-+      char *attr;
-+      char attr_path[SYSFS_PATH_SIZE];
-+      int r;
-+      unsigned int t;
-+
-+      if (safe_sprintf(attr_path, "%s/device", dev->devpath))
-+              return 1;
-+
-+      attr = sysfs_attr_get_value(dev->devpath, "timeout");
-+      if (!attr)
-+              return 1;
-+
-+      r = sscanf(attr, "%u\n", &t);
-+
-+      if (r != 1)
-+              return 1;
-+
-+      *timeout = t * 1000;
-+
-+      return 0;
-+}
-+
-+int
- sysfs_get_size (struct sysfs_device * dev, unsigned long long * size)
- {
-       char *attr;
-@@ -791,6 +816,8 @@ get_state (struct path * pp, int daemon)
-                       return PATH_PENDING;
-               checker_set_async(c);
-       }
-+      if (!conf->checker_timeout)
-+              sysfs_get_timeout(pp->sysdev, &(c->timeout));
-       state = checker_check(c);
-       condlog(3, "%s: state = %i", pp->dev, state);
-       if (state == PATH_DOWN && strlen(checker_message(c)))
-Index: multipath-tools/libmultipath/propsel.c
-===================================================================
---- multipath-tools.orig/libmultipath/propsel.c
-+++ multipath-tools/libmultipath/propsel.c
-@@ -16,6 +16,7 @@
- #include "defaults.h"
- #include "devmapper.h"
- #include "prio.h"
-+#include "discovery.h"
- pgpolicyfn *pgpolicies[] = {
-       NULL,
-@@ -274,17 +275,31 @@ select_checker(struct path *pp)
-               checker_get(c, pp->hwe->checker_name);
-               condlog(3, "%s: path checker = %s (controller setting)",
-                       pp->dev, checker_name(c));
--              return 0;
-+              goto out;
-       }
-       if (conf->checker_name) {
-               checker_get(c, conf->checker_name);
-               condlog(3, "%s: path checker = %s (config file default)",
-                       pp->dev, checker_name(c));
--              return 0;
-+              goto out;
-       }
-       checker_get(c, DEFAULT_CHECKER);
-       condlog(3, "%s: path checker = %s (internal default)",
-               pp->dev, checker_name(c));
-+out:
-+      if (conf->checker_timeout) {
-+              c->timeout = conf->checker_timeout * 1000;
-+              condlog(3, "%s: checker timeout = %u ms (config file default)",
-+                              pp->dev, c->timeout);
-+      }
-+      else if (sysfs_get_timeout(pp->sysdev, &c->timeout) == 0)
-+              condlog(3, "%s: checker timeout = %u ms (sysfs setting)",
-+                              pp->dev, c->timeout);
-+      else {
-+              c->timeout = DEF_TIMEOUT;
-+              condlog(3, "%s: checker timeout = %u ms (internal default)",
-+                              pp->dev, c->timeout);
-+      }
-       return 0;
- }
-Index: multipath-tools/multipath.conf.annotated
-===================================================================
---- multipath-tools.orig/multipath.conf.annotated
-+++ multipath-tools/multipath.conf.annotated
-@@ -202,6 +202,15 @@
- #     gid disk
- #
- #     #
-+#     # name    : checker_timeout
-+#     # scope   : multipath & multipathd
-+#     # desc    : The timeout to use for path checkers that issue scsi
-+#     #           commands with an explicit timeout, in seconds.
-+#     # values  : n > 0
-+#     # default : taken from /sys/block/sd<x>/device/timeout
-+#     checker_timeout 60
-+#
-+#     #
- #     # name    : fast_io_fail_tmo
- #     # scope   : multipath & multipathd
- #     # desc    : The number of seconds the scsi layer will wait after a
-Index: multipath-tools/libmultipath/discovery.h
-===================================================================
---- multipath-tools.orig/libmultipath/discovery.h
-+++ multipath-tools/libmultipath/discovery.h
-@@ -36,6 +36,7 @@ int pathinfo (struct path *, vector hwta
- struct path * store_pathinfo (vector pathvec, vector hwtable,
-                             char * devname, int flag);
- int sysfs_set_scsi_tmo (struct multipath *mpp);
-+int sysfs_get_timeout(struct sysfs_device *dev, unsigned int *timeout);
- /*
-  * discovery bitmask
index 0f1cc84dc0e20c0c6a413e5f01795b6b1b775b6e..7b3f9186238b2afc826ace9ef3cde1a908ebc17a 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = ncurses
 version    = 5.9
-release    = 6
+release    = 9
 
 groups     = System/Base
 url        = http://invisible-island.net/ncurses/ncurses.html
@@ -27,7 +27,6 @@ build
        end
 
        configure_options += \
-               --mandir=/usr/share/man \
                --with-shared \
                --without-debug \
                --without-ada \
@@ -36,7 +35,7 @@ build
                --enable-hard-tabs \
                --enable-xmc-glitch \
                --enable-colorfgbg \
-               --with-terminfo-dirs=/etc/terminfo:/usr/share/terminfo:/lib/terminfo \
+               --with-terminfo-dirs=%{sysconfdir}/terminfo:%{datadir}/terminfo \
                --enable-overwrite \
                --enable-pc-files \
                --with-termlib=tinfo
@@ -68,39 +67,7 @@ build
 
                chmod -v 755 %{BUILDROOT}%{libdir}/lib*.so.*.*
 
-               # move lib{ncurses{,w},tinfo}.so.* to /lib*
-               mkdir -pv %{BUILDROOT}/%{lib}
-               mv -v %{BUILDROOT}%{libdir}/lib{ncurses{,w},tinfo}.so.* %{BUILDROOT}/%{lib}
-               for l in %{BUILDROOT}%{libdir}/lib{ncurses{,w},tinfo}.so; do
-                       ln -sf $(echo %{libdir} | \
-                               sed 's,\(^/\|\)[^/][^/]*,..,g')/%{lib}/$(readlink $l) $l
-               done
-               mkdir -pv %{BUILDROOT}/{etc,lib}/terminfo
-
-               # move few basic terminfo entries to /lib
-               baseterms=
-               for termname in \
-                               ansi dumb linux vt100 vt100-nav vt102 vt220 vt52; do
-                       for t in $(find %{BUILDROOT}/usr/share/terminfo \
-                                       -samefile %{BUILDROOT}/usr/share/terminfo/${termname::1}/$termname); do
-                               baseterms="$baseterms $(basename $t)"
-                       done
-               done
-               for termname in ${baseterms}; do
-                       termpath=terminfo/${termname::1}/${termname}
-                       mkdir -pv %{BUILDROOT}/lib/terminfo/${termname::1}
-                       mv -v %{BUILDROOT}/usr/share/${termpath} %{BUILDROOT}/lib/${termpath}
-                       ln -svf $(dirname /usr/share/${termpath} | \
-                                       sed 's,\(^/\|\)[^/][^/]*,..,g')/lib/${termpath} \
-                               %{BUILDROOT}/usr/share//${termpath}
-               done
-
-               # can't replace directory with symlink, symlink all headers
-               #mkdir %{BUILDROOT}/usr/include/ncurses{,w}
-               #for l in %{BUILDROOT}/usr/include/*.h; do
-               #       ln -s ../$(basename $l) %{BUILDROOT}/usr/include/ncurses
-               #       ln -s ../$(basename $l) %{BUILDROOT}/usr/include/ncursesw
-               #done
+               mkdir -pv %{BUILDROOT}/etc/terminfo
 
                # don't require -ltinfo when linking with --no-add-needed
                for l in %{BUILDROOT}%{libdir}/libncurses{,w}.so; do
@@ -158,12 +125,13 @@ packages
                conflicts = ncurses<=5.9-1
 
                files
-                       /lib/terminfo
                        /usr/share/terminfo/*/Eterm*
+                       /usr/share/terminfo/*/ansi
                        /usr/share/terminfo/*/aterm
                        /usr/share/terminfo/*/bterm
                        /usr/share/terminfo/*/cons25
                        /usr/share/terminfo/*/cygwin
+                       /usr/share/terminfo/*/dumb
                        /usr/share/terminfo/*/eterm*
                        /usr/share/terminfo/*/gnome
                        /usr/share/terminfo/*/gnome-256color
@@ -171,6 +139,7 @@ packages
                        /usr/share/terminfo/*/jfbterm
                        /usr/share/terminfo/*/konsole
                        /usr/share/terminfo/*/konsole-256color
+                       /usr/share/terminfo/*/linux
                        /usr/share/terminfo/*/mach*
                        /usr/share/terminfo/*/mlterm
                        /usr/share/terminfo/*/mrxvt
@@ -185,12 +154,18 @@ packages
                        /usr/share/terminfo/*/sun
                        /usr/share/terminfo/*/teraterm
                        /usr/share/terminfo/*/teraterm2.3
+                       /usr/share/terminfo/*/vt100
+                       /usr/share/terminfo/*/vt100-nav
+                       /usr/share/terminfo/*/vt102
+                       /usr/share/terminfo/*/vt220
+                       /usr/share/terminfo/*/vt52
                        /usr/share/terminfo/*/vte
                        /usr/share/terminfo/*/vte-256color
                        /usr/share/terminfo/*/vwmterm
                        /usr/share/terminfo/*/wsvt25*
                        /usr/share/terminfo/*/xfce
-                       /usr/share/terminfo/*/xterm xterm-*
+                       /usr/share/terminfo/*/xterm
+                       /usr/share/terminfo/*/xterm-*
                end
        end
 
index af0a929e4e40f831354de09c64984f05d864efd7..df0e73a4aa50a0f1e6b2fd41a550cdf0e3a03345 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = nettle
 version    = 2.4
-release    = 1
+release    = 2
 
 groups     = System/Libraries
 url        = http://www.lysator.liu.se/~nisse/nettle/
@@ -34,6 +34,12 @@ build
        test
                make check
        end
+
+       install_cmds
+               # Fix library permissions.
+               chmod 755 %{BUILDROOT}%{libdir}/libhogweed.so.*
+               chmod 755 %{BUILDROOT}%{libdir}/libnettle.so.*
+       end
 end
 
 packages
index 717dbe2fae71e9ede77ea935346943f957162a08..d082a2c42cdc2cfc8b8c9c84da8cc169b57b1864 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = network
 epoch      = 1
-version    = 003
+version    = 004
 release    = 1
 arch       = noarch
 
@@ -15,9 +15,6 @@ url        = http://www.ipfire.org/
 license    = GPLv3+
 summary    = The IPFire Networking Scripts.
 
-# XXX maybe we can split this package into smaller ones like -wireless,
-# -dialup etc.
-
 description
        The scripts that are contained in this package are the heart of the
        IPFire networking. They control the configuration of the network
@@ -28,49 +25,57 @@ end
 source_dl  = http://source.ipfire.org/releases/network/
 
 build
-       build = # Do nothing
+       install_cmds
+               # Create some dummy configuration files.
+               mkdir -pv %{BUILDROOT}%{sysconfdir}/{firewall,network}
+               touch %{BUILDROOT}%{sysconfdir}/network/{config,dns-servers}
+       end
 end
 
 packages
        package %{name}
                requires
                        aiccu
-                       bash>=4.0
+                       bash >= 4.0
                        bridge-utils
                        dhcp
                        ebtables
                        hostapd
                        iproute2
-                       ppp
+                       iw
+                       man
+                       miredo-client
+                       ppp >= 2.4.5-4
                        radvd
-                       rstp
+                       rp-pppoe
+                       mstpd
                        sqlite
                        systemd-units
                        tunctl
                        vlan
                        wpa_supplicant
-                       /bin/ipcalc
+                       /usr/bin/ipcalc
                        /usr/bin/logger
                end
 
-               prerequires = systemd-units
+               configfiles
+                       /etc/firewall
+                       /etc/network
+               end
 
                # Enable network service, so it starts at the first boot.
                script postin
-                       /bin/systemctl daemon-reload >/dev/null 2>&1 || :
-                       /bin/systemctl --no-reload enable network.service >/dev/null 2>&1 || :
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+                       systemctl --no-reload enable network.service >/dev/null 2>&1 || :
                end
 
                script preun
-                       /bin/systemctl --no-reload disable network.service >/dev/null 2>&1 || :
-                       /bin/systemctl stop network.service >/dev/null 2>&1 || :
+                       systemctl --no-reload disable network.service >/dev/null 2>&1 || :
+                       systemctl stop network.service >/dev/null 2>&1 || :
                end
 
                script postup
-                       /bin/systemctl daemon-reload >/dev/null 2>&1 || :
-
-                       # Maybe it is not a good idea to restart network.
-                       #/bin/systemctl try-reload-or-restart network.service >/dev/null 2>&1 || :
+                       systemctl daemon-reload >/dev/null 2>&1 || :
                end
        end
 end
index e1092b7116ffec545407e487ff0263c789a2222d..94ef18055c3c5abb45a721c8e582420e9f6530fa 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = newt
 version    = 0.52.13
-release    = 1
+release    = 2
 
 groups     = System/Libraries
 url        = https://fedorahosted.org/releases/n/e/newt/
@@ -58,7 +58,7 @@ packages
                end
 
                files
-                       /usr/lib/python*/site-packages/*snack*
+                       %{libdir}/python*/site-packages/*snack*
                end
        end
 
index bc357df398c7337fa584a1f231871ba58b7e65bc..c23b137b3e9e673239f7faca9ea35687aa2c6e9d 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = nspr
 version    = 4.8.9
-release    = 1
+release    = 2
 
 groups     = System/Libraries
 url        = http://www.mozilla.org/projects/nspr/
@@ -56,7 +56,6 @@ build
        end
 
        configure_options += \
-               --libdir=/%{lib} \
                --includedir=/usr/include/nspr4 \
                --enable-optimize="%{CFLAGS}" \
                --disable-debug
@@ -70,7 +69,6 @@ build
 
        install_cmds
                mkdir -pv %{BUILDROOT}/usr/{bin,%{lib}}
-               mkdir -pv %{BUILDROOT}/%{lib}
                mkdir -pv %{BUILDROOT}%{libdir}/pkgconfig
 
                cp -vf %{DIR_APP}/config/nspr-config-pc \
@@ -87,11 +85,6 @@ build
                        < %{DIR_SOURCE}/nspr.pc.in \
                        > %{BUILDROOT}%{libdir}/pkgconfig/nspr.pc
 
-               #mv -v %{BUILDROOT}/usr/lib/lib{nspr,plc.plds}4.so %{BUILDROOT}/lib/
-               ln -svf ../../%{lib}/libnspr4.so %{BUILDROOT}%{libdir}/libnspr4.so
-               ln -svf ../../%{lib}/libplc4.so %{BUILDROOT}%{libdir}/libplc4.so
-               ln -svf ../../%{lib}/libplds4.so %{BUILDROOT}%{libdir}/libplds4.so
-
                # Remove unneeded stuff
                rm -rfv \
                        %{BUILDROOT}/usr/bin/compile-et.pl \
@@ -106,6 +99,9 @@ packages
 
        package %{name}-devel
                template DEVEL
+
+               # libs are not versioned.
+               files += !%{libdir}/*.so
        end
 
        package %{name}-debuginfo
diff --git a/nss/nss-util-config.in b/nss/nss-util-config.in
new file mode 100644 (file)
index 0000000..ef8751d
--- /dev/null
@@ -0,0 +1,118 @@
+#!/bin/sh
+
+prefix=@prefix@
+
+major_version=@MOD_MAJOR_VERSION@
+minor_version=@MOD_MINOR_VERSION@
+patch_version=@MOD_PATCH_VERSION@
+
+usage()
+{
+       cat <<EOF
+Usage: nss-util-config [OPTIONS] [LIBRARIES]
+Options:
+       [--prefix[=DIR]]
+       [--exec-prefix[=DIR]]
+       [--includedir[=DIR]]
+       [--libdir[=DIR]]
+       [--version]
+       [--libs]
+       [--cflags]
+Dynamic Libraries:
+       nssutil
+EOF
+       exit $1
+}
+
+if test $# -eq 0; then
+       usage 1 1>&2
+fi
+
+lib_nssutil=yes
+
+while test $# -gt 0; do
+  case "$1" in
+  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) optarg= ;;
+  esac
+
+  case $1 in
+    --prefix=*)
+      prefix=$optarg
+      ;;
+    --prefix)
+      echo_prefix=yes
+      ;;
+    --exec-prefix=*)
+      exec_prefix=$optarg
+      ;;
+    --exec-prefix)
+      echo_exec_prefix=yes
+      ;;
+    --includedir=*)
+      includedir=$optarg
+      ;;
+    --includedir)
+      echo_includedir=yes
+      ;;
+    --libdir=*)
+      libdir=$optarg
+      ;;
+    --libdir)
+      echo_libdir=yes
+      ;;
+    --version)
+      echo ${major_version}.${minor_version}.${patch_version}
+      ;;
+    --cflags)
+      echo_cflags=yes
+      ;;
+    --libs)
+      echo_libs=yes
+      ;;
+    *)
+      usage 1 1>&2
+      ;;
+  esac
+  shift
+done
+
+# Set variables that may be dependent upon other variables
+if test -z "$exec_prefix"; then
+    exec_prefix=`pkg-config --variable=exec_prefix nss-util`
+fi
+if test -z "$includedir"; then
+    includedir=`pkg-config --variable=includedir nss-util`
+fi
+if test -z "$libdir"; then
+    libdir=`pkg-config --variable=libdir nss-util`
+fi
+
+if test "$echo_prefix" = "yes"; then
+    echo $prefix
+fi
+
+if test "$echo_exec_prefix" = "yes"; then
+    echo $exec_prefix
+fi
+
+if test "$echo_includedir" = "yes"; then
+    echo $includedir
+fi
+
+if test "$echo_libdir" = "yes"; then
+    echo $libdir
+fi
+
+if test "$echo_cflags" = "yes"; then
+    echo -I$includedir
+fi
+
+if test "$echo_libs" = "yes"; then
+      libdirs="-Wl,-rpath-link,$libdir -L$libdir"
+      if test -n "$lib_nssutil"; then
+       libdirs="$libdirs -lnssutil${major_version}"
+      fi
+      echo $libdirs
+fi      
+
diff --git a/nss/nss-util.pc.in b/nss/nss-util.pc.in
new file mode 100644 (file)
index 0000000..1310248
--- /dev/null
@@ -0,0 +1,11 @@
+prefix=%prefix%
+exec_prefix=%exec_prefix%
+libdir=%libdir%
+includedir=%includedir%
+
+Name: NSS-UTIL
+Description: Network Security Services Utility Library
+Version: %NSSUTIL_VERSION%
+Requires: nspr >= %NSPR_VERSION%
+Libs: -L${libdir} -lnssutil3
+Cflags: -I${includedir}
index 20acaf9b080b90755ce53ee415f4d97ad1748056..af0a2cfef424393813097a278b74d69571a1ebfc 100644 (file)
@@ -8,7 +8,7 @@ ver_major  = 3
 ver_minor  = 13
 ver_patch  = 1
 version    = %{ver_major}.%{ver_minor}.%{ver_patch}
-release    = 3
+release    = 4
 
 maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
 groups     = System/Libraries
@@ -146,29 +146,33 @@ build
                install -p -v -m 755 mozilla/dist/*.OBJ/bin/vfychain %{BUILDROOT}%{libdir}/nss/unsupported-tools
                chrpath --delete %{BUILDROOT}%{libdir}/nss/unsupported-tools/*
 
-               sed -e "s,@libdir@,%{libdir},g" \
-                       -e "s,@prefix@,/usr,g" \
-                       -e "s,@exec_prefix@,/usr,g" \
-                       -e "s,@includedir@,/usr/include/nss3,g" \
-                       -e "s,@MOD_MAJOR_VERSION@,$(grep "#define.*NSS_VMAJOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'),g" \
-                       -e "s,@MOD_MINOR_VERSION@,$(grep "#define.*NSS_VMINOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'),g" \
-                       -e "s,@MOD_PATCH_VERSION@,$(grep "#define.*NSS_VPATCH" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'),g" \
-                       < %{DIR_SOURCE}/nss-config.in \
-                       > %{BUILDROOT}/usr/bin/nss-config
-               chmod -v 755 %{BUILDROOT}/usr/bin/nss-config
+               for file in nss-config nss-util-config; do
+                       sed -e "s,@libdir@,%{libdir},g" \
+                               -e "s,@prefix@,/usr,g" \
+                               -e "s,@exec_prefix@,/usr,g" \
+                               -e "s,@includedir@,/usr/include/nss3,g" \
+                               -e "s,@MOD_MAJOR_VERSION@,$(grep "#define.*NSS_VMAJOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'),g" \
+                               -e "s,@MOD_MINOR_VERSION@,$(grep "#define.*NSS_VMINOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'),g" \
+                               -e "s,@MOD_PATCH_VERSION@,$(grep "#define.*NSS_VPATCH" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'),g" \
+                               < %{DIR_SOURCE}/${file}.in \
+                               > %{BUILDROOT}/usr/bin/${file}
+                       chmod -v 755 %{BUILDROOT}/usr/bin/${file}
+               done
 
                install -p -v -m 755 %{DIR_SOURCE}/setup-nsssysinit.sh %{BUILDROOT}/usr/bin
 
                # Generate file for pkg-config.
-               sed \
-                       -e "s,%libdir%,%{libdir},g" \
-                       -e "s,%prefix%,/usr,g" \
-                       -e "s,%exec_prefix%,/usr,g" \
-                       -e "s,%includedir%,/usr/include/nss3,g" \
-                       -e "s,%NSS_VERSION%,%{version},g" \
-                       -e "s,%NSPR_VERSION%,$(nspr-config --version),g" \
-                       < %{DIR_SOURCE}/nss.pc.in \
-                       > %{BUILDROOT}%{libdir}/pkgconfig/nss.pc
+               for file in nss.pc nss-util.pc; do
+                       sed \
+                               -e "s,%libdir%,%{libdir},g" \
+                               -e "s,%prefix%,/usr,g" \
+                               -e "s,%exec_prefix%,/usr,g" \
+                               -e "s,%includedir%,/usr/include/nss3,g" \
+                               -e "s,%NSS_VERSION%,%{version},g" \
+                               -e "s,%NSPR_VERSION%,$(nspr-config --version),g" \
+                               < %{DIR_SOURCE}/${file}.in \
+                               > %{BUILDROOT}%{libdir}/pkgconfig/${file}
+               done
 
                # Copy the include files we want
                cp -vf mozilla/dist/public/nss/*.h %{BUILDROOT}/usr/include/nss3
@@ -201,6 +205,10 @@ packages
                        nss=%{thisver}
                end
 
+               provides
+                       nss-util-devel = %{thisver}
+               end
+
                # Mozilla does no versioning :(
                files
                        /usr/bin/*-config
index fa87ed0e114e6e20e25c67a3ee007145550bc9fe..f574f46e66f975cc33362086cbf9ed37693375a5 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = nss_ldap
 version    = 265
-release    = 3
+release    = 5
 
 groups     = System/Base
 url        = http://www.padl.com/
@@ -20,7 +20,7 @@ description
        RPCs, services, and shadow passwords.
 end
 
-source_dl  =
+source_dl  = http://www.padl.com/download/
 
 patches = \
        nss_ldap-265-depth.patch \
@@ -47,7 +47,6 @@ build
 
        configure_options += \
                --sysconfdir=/etc \
-               --libdir=/%{lib} \
                --with-ldap-lib=openldap \
                --enable-rfc2307bis \
                --with-ldap-conf-file=/etc/nss_ldap.conf \
@@ -75,10 +74,10 @@ build
                # Remove awkward directory
                rm -rvf %{BUILDROOT}/usr/usr
 
-               mv -v %{BUILDROOT}/%{lib}/* %{BUILDROOT}%{libdir}
-               rm -rvf %{BUILDROOT}/%{lib}
-               ln -svf libnss_ldap-%{version}.so %{BUILDROOT}%{libdir}/libnss_ldap.so
-               ln -svf libnss_ldap.so.2 %{BUILDROOT}%{libdir}/libnss_ldap.so
+               if [ -e "%{BUILDROOT}%{libdir}/libnss_ldap-%{version}.so" ]; then
+                       ln -svf libnss_ldap-%{version}.so %{BUILDROOT}%{libdir}/libnss_ldap.so.2
+                       ln -svf libnss_ldap.so.2 %{BUILDROOT}%{libdir}/libnss_ldap.so
+               fi
 
                rm -vf %{BUILDROOT}/etc/nsswitch.ldap
 
@@ -91,7 +90,12 @@ end
 packages
        package %{name}
                requires
-                       /%{lib}/security/pam_ldap.so
+                       %{libdir}/security/pam_ldap.so
+               end
+
+               configfiles
+                       %{sysconfdir}/nss_ldap.conf
+                       %{sysconfdir}/nss_ldap.secret
                end
        end
 
index d04d2b24d55df185e7b8210791cfcfdd8d6abd00..707790b2f1dfbcce360119b562967ad7b0c8f173 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = openssh
 version    = 5.9p1
-release    = 4
+release    = 6
 
 groups     = Application/Internet
 url        = http://www.openssh.com/portable.html
@@ -122,7 +122,7 @@ packages
                end
 
                script prein
-                       getent group sshd_keys >/dev/null || groupadd -r ssh_keys || :
+                       getent group ssh_keys >/dev/null || groupadd -r ssh_keys
                end
        end
 
@@ -164,7 +164,10 @@ packages
                summary = OpenSSH server applications.
                description = %{summary}
 
-               requires = openssh = %{thisver}
+               requires
+                       audit
+                       openssh = %{thisver}
+               end
 
                files
                        %{sysconfdir}/pam.d/sshd
@@ -203,9 +206,7 @@ packages
 
                script preun
                        /bin/systemctl --no-reload disable sshd.service >/dev/null 2>&1 || :
-                       /bin/systemctl --no-reload disable sshd-keygen.service >/dev/null 2>&1 || :
                        /bin/systemctl stop sshd.service >/dev/null 2>&1 || :
-                       /bin/systemctl stop sshd-keygen.service >/dev/null 2>&1 || :
                end
 
                script postun
index bfef3289f4c287c0e87ef8e7fd7a20c83a5113a0..1554c242f962d57ea77acda07a18ec7ff0edb718 100644 (file)
@@ -2,11 +2,9 @@
 Description=SSH server keys generation.
 After=syslog.target
 Before=sshd.service
+BindTo=sshd.service
 
 [Service]
 Type=oneshot
 ExecStart=/usr/sbin/sshd-keygen
 RemainAfterExit=yes
-
-[Install]
-WantedBy=multi-user.target
index 6b90aa165c9686bb47f60664948e7e516e944978..9007d896704924b1f18647019782f6a759565bfd 100644 (file)
@@ -3,7 +3,8 @@ Description=OpenSSH server daemon
 After=syslog.target network.target auditd.service
 
 [Service]
-ExecStart=/usr/sbin/sshd -D $OPTIONS
+ExecStartPre=/usr/sbin/sshd-keygen
+ExecStart=/usr/sbin/sshd -D
 ExecReload=/bin/kill -HUP $MAINPID
 
 [Install]
diff --git a/openssh/systemd/sshd.socket b/openssh/systemd/sshd.socket
deleted file mode 100644 (file)
index 94b9533..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=OpenSSH Server Socket
-Conflicts=sshd.service
-
-[Socket]
-ListenStream=22
-Accept=yes
-
-[Install]
-WantedBy=sockets.target
diff --git a/openssh/systemd/sshd@.service b/openssh/systemd/sshd@.service
deleted file mode 100644 (file)
index 09f995e..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-[Unit]
-Description=OpenSSH per-connection server daemon
-After=syslog.target auditd.service
-
-[Service]
-EnvironmentFile=/etc/sysconfig/sshd
-ExecStart=-/usr/sbin/sshd -i $OPTIONS
-StandardInput=socket
index 0cbe7f99416b0102850fd4b8a4a43d4d4a5a5d4a..d484818cd16595abc34efa20b16d6fb966b58db1 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = openssl
-version    = 1.0.1
-release    = 1
+version    = 1.0.1b
+release    = 2
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = System/Libraries
@@ -31,6 +31,7 @@ build
        end
 
        CFLAGS += -DPURIFY
+       export RPM_OPT_FLAGS = %{CFLAGS}
 
        prepare_cmds
                find crypto/ -name Makefile -exec \
@@ -75,17 +76,18 @@ build
                        no-idea \
                        no-mdc2 \
                        no-rc5 \
-                       no-ec no-ecdh no-ecdsa \
+                       no-ec no-ec2m no-ecdh no-ecdsa \
                        no-srp \
                        -DSSL_FORBID_ENULL \
                         %{ssl_arch} \
                        fips
 
                # Build.
-               make depend all build-shared RPM_OPT_FLAGS="%{CFLAGS}" #%{PARALLELISMFLAGS}
+               make depend
+               make all
 
                # Generate hashes for the included certs.
-               make rehash build-shared
+               make rehash
        end
 
        test
@@ -113,7 +115,7 @@ build
                cp -v -r certs %{BUILDROOT}/etc/pki/tls
 
                # Rename man pages so that they don't conflict with other system man pages.
-               pushd ${BUILDROOT}/usr/share/man
+               pushd %{BUILDROOT}%{mandir}
                for manpage in man*/*; do
                        if [ -L ${manpage} ]; then
                                TARGET=`ls -l ${manpage} | awk '{ print $NF }'`
@@ -123,9 +125,6 @@ build
                                mv ${manpage} ${manpage}ssl
                        fi
                done
-
-               mv -v %{BUILDROOT}/usr/share/man/man1/{,ssl}passwd.1
-               mv -v %{BUILDROOT}/usr/share/man/man1/{,ssl}rand.1
                popd
        end
 end
@@ -138,8 +137,7 @@ packages
 
                requires += ca-certificates
 
-               provides += libcrypto.so.10(libcrypto.so.10)
-               provides += libssl.so.10(libssl.so.10)
+               files += %{libdir}/openssl
        end
 
        package %{name}-devel
diff --git a/openssl/patches/openssl-1.0.0-fips-pkcs8.patch b/openssl/patches/openssl-1.0.0-fips-pkcs8.patch
new file mode 100644 (file)
index 0000000..dd7e36a
--- /dev/null
@@ -0,0 +1,189 @@
+diff -up openssl-1.0.0/crypto/pem/pem_all.c.pkcs8 openssl-1.0.0/crypto/pem/pem_all.c
+--- openssl-1.0.0/crypto/pem/pem_all.c.pkcs8   2006-11-06 20:53:37.000000000 +0100
++++ openssl-1.0.0/crypto/pem/pem_all.c 2012-04-26 17:17:35.765317652 +0200
+@@ -147,7 +147,37 @@ IMPLEMENT_PEM_rw(PKCS7, PKCS7, PEM_STRIN
+ IMPLEMENT_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE,
+                                       PEM_STRING_X509, NETSCAPE_CERT_SEQUENCE)
++#ifdef OPENSSL_FIPS
++static int fips_PEM_write_bio_PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc,
++                                               unsigned char *kstr, int klen,
++                                               pem_password_cb *cb, void *u)
++      {
++              if (FIPS_mode())
++                      return PEM_write_bio_PKCS8PrivateKey(bp, x, enc,
++                                              (char *)kstr, klen, cb, u);
++              else
++                      return PEM_ASN1_write_bio((i2d_of_void *)i2d_PrivateKey,
++                ((x->type == EVP_PKEY_DSA)?PEM_STRING_DSA:(x->type == EVP_PKEY_RSA)?PEM_STRING_RSA:PEM_STRING_ECPRIVATEKEY),
++                        bp,x,enc,kstr,klen,cb,u);
++      }
++
++#ifndef OPENSSL_NO_FP_API
++static int fips_PEM_write_PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc,
++                                               unsigned char *kstr, int klen,
++                                               pem_password_cb *cb, void *u)
++      {
++              if (FIPS_mode())
++                      return PEM_write_PKCS8PrivateKey(fp, x, enc,
++                                              (char *)kstr, klen, cb, u);
++              else
++                      return PEM_ASN1_write((i2d_of_void *)i2d_PrivateKey,
++                ((x->type == EVP_PKEY_DSA)?PEM_STRING_DSA:(x->type == EVP_PKEY_RSA)?PEM_STRING_RSA:PEM_STRING_ECPRIVATEKEY),
++                        fp,x,enc,kstr,klen,cb,u);
++      }
++#endif
++
++#endif
+ #ifndef OPENSSL_NO_RSA
+@@ -193,7 +223,49 @@ RSA *PEM_read_RSAPrivateKey(FILE *fp, RS
+ #endif
++#ifdef OPENSSL_FIPS
++
++int PEM_write_bio_RSAPrivateKey(BIO *bp, RSA *x, const EVP_CIPHER *enc,
++                                               unsigned char *kstr, int klen,
++                                               pem_password_cb *cb, void *u)
++{
++      EVP_PKEY *k;
++      int ret;
++      k = EVP_PKEY_new();
++      if (!k)
++              return 0;
++      EVP_PKEY_set1_RSA(k, x);
++
++      ret = fips_PEM_write_bio_PrivateKey(bp, k, enc, kstr, klen, cb, u);
++      EVP_PKEY_free(k);
++      return ret;
++}
++
++#ifndef OPENSSL_NO_FP_API
++int PEM_write_RSAPrivateKey(FILE *fp, RSA *x, const EVP_CIPHER *enc,
++                                               unsigned char *kstr, int klen,
++                                               pem_password_cb *cb, void *u)
++{
++      EVP_PKEY *k;
++      int ret;
++      k = EVP_PKEY_new();
++      if (!k)
++              return 0;
++
++      EVP_PKEY_set1_RSA(k, x);
++
++      ret = fips_PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u);
++      EVP_PKEY_free(k);
++      return ret;
++}
++#endif
++
++#else
++
+ IMPLEMENT_PEM_write_cb_const(RSAPrivateKey, RSA, PEM_STRING_RSA, RSAPrivateKey)
++
++#endif
++
+ IMPLEMENT_PEM_rw_const(RSAPublicKey, RSA, PEM_STRING_RSA_PUBLIC, RSAPublicKey)
+ IMPLEMENT_PEM_rw(RSA_PUBKEY, RSA, PEM_STRING_PUBLIC, RSA_PUBKEY)
+@@ -223,7 +295,47 @@ DSA *PEM_read_bio_DSAPrivateKey(BIO *bp,
+       return pkey_get_dsa(pktmp, dsa);        /* will free pktmp */
+ }
++#ifdef OPENSSL_FIPS
++
++int PEM_write_bio_DSAPrivateKey(BIO *bp, DSA *x, const EVP_CIPHER *enc,
++                                               unsigned char *kstr, int klen,
++                                               pem_password_cb *cb, void *u)
++{
++      EVP_PKEY *k;
++      int ret;
++      k = EVP_PKEY_new();
++      if (!k)
++              return 0;
++      EVP_PKEY_set1_DSA(k, x);
++
++      ret = fips_PEM_write_bio_PrivateKey(bp, k, enc, kstr, klen, cb, u);
++      EVP_PKEY_free(k);
++      return ret;
++}
++
++#ifndef OPENSSL_NO_FP_API
++int PEM_write_DSAPrivateKey(FILE *fp, DSA *x, const EVP_CIPHER *enc,
++                                               unsigned char *kstr, int klen,
++                                               pem_password_cb *cb, void *u)
++{
++      EVP_PKEY *k;
++      int ret;
++      k = EVP_PKEY_new();
++      if (!k)
++              return 0;
++      EVP_PKEY_set1_DSA(k, x);
++      ret = fips_PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u);
++      EVP_PKEY_free(k);
++      return ret;
++}
++#endif
++
++#else
++
+ IMPLEMENT_PEM_write_cb_const(DSAPrivateKey, DSA, PEM_STRING_DSA, DSAPrivateKey)
++
++#endif
++
+ IMPLEMENT_PEM_rw(DSA_PUBKEY, DSA, PEM_STRING_PUBLIC, DSA_PUBKEY)
+ #ifndef OPENSSL_NO_FP_API
+@@ -269,8 +381,49 @@ EC_KEY *PEM_read_bio_ECPrivateKey(BIO *b
+ IMPLEMENT_PEM_rw_const(ECPKParameters, EC_GROUP, PEM_STRING_ECPARAMETERS, ECPKParameters)
++
++
++#ifdef OPENSSL_FIPS
++
++int PEM_write_bio_ECPrivateKey(BIO *bp, EC_KEY *x, const EVP_CIPHER *enc,
++                                               unsigned char *kstr, int klen,
++                                               pem_password_cb *cb, void *u)
++{
++      EVP_PKEY *k;
++      int ret;
++      k = EVP_PKEY_new();
++      if (!k)
++              return 0;
++      EVP_PKEY_set1_EC_KEY(k, x);
++
++      ret = fips_PEM_write_bio_PrivateKey(bp, k, enc, kstr, klen, cb, u);
++      EVP_PKEY_free(k);
++      return ret;
++}
++
++#ifndef OPENSSL_NO_FP_API
++int PEM_write_ECPrivateKey(FILE *fp, EC_KEY *x, const EVP_CIPHER *enc,
++                                               unsigned char *kstr, int klen,
++                                               pem_password_cb *cb, void *u)
++{
++      EVP_PKEY *k;
++      int ret;
++      k = EVP_PKEY_new();
++      if (!k)
++              return 0;
++      EVP_PKEY_set1_EC_KEY(k, x);
++      ret = fips_PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u);
++      EVP_PKEY_free(k);
++      return ret;
++}
++#endif
++
++#else
++
+ IMPLEMENT_PEM_write_cb(ECPrivateKey, EC_KEY, PEM_STRING_ECPRIVATEKEY, ECPrivateKey)
++#endif
++
+ IMPLEMENT_PEM_rw(EC_PUBKEY, EC_KEY, PEM_STRING_PUBLIC, EC_PUBKEY)
+ #ifndef OPENSSL_NO_FP_API
index e8033864d18cbf619ccaf2093063cef2a668d89a..3259d8c8eeac4a31286b1886569bccaabc9698a8 100644 (file)
@@ -15,7 +15,7 @@ diff -up openssl-1.0.1-beta2/ssl/ssl.h.op-all openssl-1.0.1-beta2/ssl/ssl.h
  /* SSL_OP_ALL: various bug workarounds that should be rather harmless.
   *             This used to be 0x000FFFFFL before 0.9.7. */
 -#define SSL_OP_ALL                                    0x80000BFFL
-+#define SSL_OP_ALL                                    0x80000FF7L /* we still have to include SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS */
++#define SSL_OP_ALL                                    0x80000BF7L /* we still have to include SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS */
  
  /* DTLS options */
  #define SSL_OP_NO_QUERY_MTU                 0x00001000L
diff --git a/openssl/patches/openssl-1.0.1-beta4-fips-md5-allow.patch b/openssl/patches/openssl-1.0.1-beta4-fips-md5-allow.patch
deleted file mode 100644 (file)
index d654730..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up openssl-1.0.1-beta2/crypto/md5/md5_dgst.c.md5-allow openssl-1.0.1-beta2/crypto/md5/md5_dgst.c
---- openssl-1.0.1-beta2/crypto/md5/md5_dgst.c.md5-allow        2012-02-06 20:09:56.000000000 +0100
-+++ openssl-1.0.1-beta2/crypto/md5/md5_dgst.c  2012-02-06 20:14:02.332117603 +0100
-@@ -71,7 +71,16 @@ const char MD5_version[]="MD5" OPENSSL_V
- #define INIT_DATA_C (unsigned long)0x98badcfeL
- #define INIT_DATA_D (unsigned long)0x10325476L
--nonfips_md_init(MD5)
-+int MD5_Init(MD5_CTX *c)
-+#ifdef OPENSSL_FIPS
-+      {
-+      if (FIPS_mode() && getenv("OPENSSL_FIPS_NON_APPROVED_MD5_ALLOW") == NULL)
-+              OpenSSLDie(__FILE__, __LINE__, \
-+                "Digest MD5 forbidden in FIPS mode!");
-+      return private_MD5_Init(c);
-+      }
-+int private_MD5_Init(MD5_CTX *c)
-+#endif
-       {
-       memset (c,0,sizeof(*c));
-       c->A=INIT_DATA_A;
index 2ac38c588f3ab27cc37730fe6d933b4485f4e3c9..8acd0ae356c9fe638fdb8df88a30738c249c4c66 100644 (file)
@@ -26,7 +26,7 @@ diff -up openssl-1.0.1/crypto/opensslv.h.version openssl-1.0.1/crypto/opensslv.h
   */
  #define SHLIB_VERSION_HISTORY ""
 -#define SHLIB_VERSION_NUMBER "1.0.0"
-+#define SHLIB_VERSION_NUMBER "1.0.1"
++#define SHLIB_VERSION_NUMBER "1.0.1b"
  
  
  #endif /* HEADER_OPENSSLV_H */
similarity index 52%
rename from openssl/patches/openssl-1.0.0-beta4-algo-doc.patch
rename to openssl/patches/openssl-1.0.1a-algo-doc.patch
index 2f18f3f024434fd7a6fb0467caa39db5691afaee..c4aaa897edd0ab6fbf1098be359d92a20907bcd3 100644 (file)
@@ -1,28 +1,7 @@
-diff -up openssl-1.0.0-beta4/doc/crypto/EVP_DigestInit.pod.algo-doc openssl-1.0.0-beta4/doc/crypto/EVP_DigestInit.pod
---- openssl-1.0.0-beta4/doc/crypto/EVP_DigestInit.pod.algo-doc 2009-10-16 17:29:34.000000000 +0200
-+++ openssl-1.0.0-beta4/doc/crypto/EVP_DigestInit.pod  2009-11-12 14:13:21.000000000 +0100
-@@ -6,7 +6,8 @@ EVP_MD_CTX_init, EVP_MD_CTX_create, EVP_
- EVP_DigestFinal_ex, EVP_MD_CTX_cleanup, EVP_MD_CTX_destroy, EVP_MAX_MD_SIZE,
- EVP_MD_CTX_copy_ex, EVP_MD_CTX_copy, EVP_MD_type, EVP_MD_pkey_type, EVP_MD_size,
- EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size, EVP_MD_CTX_block_size, EVP_MD_CTX_type,
--EVP_md_null, EVP_md2, EVP_md5, EVP_sha, EVP_sha1, EVP_dss, EVP_dss1, EVP_mdc2,
-+EVP_md_null, EVP_md2, EVP_md5, EVP_sha, EVP_sha1, EVP_sha224,
-+EVP_sha256, EVP_sha384, EVP_sha512, EVP_dss, EVP_dss1, EVP_mdc2,
- EVP_ripemd160, EVP_get_digestbyname, EVP_get_digestbynid, EVP_get_digestbyobj -
- EVP digest routines
-@@ -51,6 +52,10 @@ EVP digest routines
-  const EVP_MD *EVP_md5(void);
-  const EVP_MD *EVP_sha(void);
-  const EVP_MD *EVP_sha1(void);
-+ const EVP_MD *EVP_sha224(void);
-+ const EVP_MD *EVP_sha256(void);
-+ const EVP_MD *EVP_sha384(void);
-+ const EVP_MD *EVP_sha512(void);
-  const EVP_MD *EVP_dss(void);
-  const EVP_MD *EVP_dss1(void);
-  const EVP_MD *EVP_mdc2(void);
-@@ -70,7 +75,7 @@ EVP_MD_CTX_create() allocates, initializ
+diff -up openssl-1.0.1a/doc/crypto/EVP_DigestInit.pod.algo-doc openssl-1.0.1a/doc/crypto/EVP_DigestInit.pod
+--- openssl-1.0.1a/doc/crypto/EVP_DigestInit.pod.algo-doc      2012-04-11 00:28:22.000000000 +0200
++++ openssl-1.0.1a/doc/crypto/EVP_DigestInit.pod       2012-04-20 09:14:01.865167011 +0200
+@@ -75,7 +75,7 @@ EVP_MD_CTX_create() allocates, initializ
  
  EVP_DigestInit_ex() sets up digest context B<ctx> to use a digest
  B<type> from ENGINE B<impl>. B<ctx> must be initialized before calling this
@@ -31,22 +10,7 @@ diff -up openssl-1.0.0-beta4/doc/crypto/EVP_DigestInit.pod.algo-doc openssl-1.0.
  If B<impl> is NULL then the default implementation of digest B<type> is used.
  
  EVP_DigestUpdate() hashes B<cnt> bytes of data at B<d> into the
-@@ -127,9 +132,11 @@ with this digest. For example EVP_sha1()
- return B<NID_sha1WithRSAEncryption>. This "link" between digests and signature
- algorithms may not be retained in future versions of OpenSSL.
--EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), EVP_mdc2() and EVP_ripemd160()
--return B<EVP_MD> structures for the MD2, MD5, SHA, SHA1, MDC2 and RIPEMD160 digest
--algorithms respectively. The associated signature algorithm is RSA in each case.
-+EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), EVP_sha224(), EVP_sha256(),
-+EVP_sha384(), EVP_sha512(), EVP_mdc2() and EVP_ripemd160()
-+return B<EVP_MD> structures for the MD2, MD5, SHA, SHA1, SHA224, SHA256, SHA384,
-+SHA512, MDC2 and RIPEMD160 digest algorithms respectively. The associated
-+signature algorithm is RSA in each case.
- EVP_dss() and EVP_dss1() return B<EVP_MD> structures for SHA and SHA1 digest
- algorithms but using DSS (DSA) for the signature algorithm. Note: there is 
-@@ -158,7 +165,8 @@ EVP_MD_size(), EVP_MD_block_size(), EVP_
+@@ -165,7 +165,8 @@ EVP_MD_size(), EVP_MD_block_size(), EVP_
  EVP_MD_CTX_block_size()       and EVP_MD_block_size() return the digest or block
  size in bytes.
  
@@ -56,10 +20,10 @@ diff -up openssl-1.0.0-beta4/doc/crypto/EVP_DigestInit.pod.algo-doc openssl-1.0.
  EVP_dss1(), EVP_mdc2() and EVP_ripemd160() return pointers to the
  corresponding EVP_MD structures.
  
-diff -up openssl-1.0.0-beta4/doc/crypto/EVP_EncryptInit.pod.algo-doc openssl-1.0.0-beta4/doc/crypto/EVP_EncryptInit.pod
---- openssl-1.0.0-beta4/doc/crypto/EVP_EncryptInit.pod.algo-doc        2005-04-15 18:01:35.000000000 +0200
-+++ openssl-1.0.0-beta4/doc/crypto/EVP_EncryptInit.pod 2009-11-12 14:11:03.000000000 +0100
-@@ -91,6 +91,32 @@ EVP_CIPHER_CTX_set_padding - EVP cipher 
+diff -up openssl-1.0.1a/doc/crypto/EVP_EncryptInit.pod.algo-doc openssl-1.0.1a/doc/crypto/EVP_EncryptInit.pod
+--- openssl-1.0.1a/doc/crypto/EVP_EncryptInit.pod.algo-doc     2005-04-15 18:01:35.000000000 +0200
++++ openssl-1.0.1a/doc/crypto/EVP_EncryptInit.pod      2012-04-20 09:10:59.114736465 +0200
+@@ -91,6 +91,32 @@ EVP_CIPHER_CTX_set_padding - EVP cipher
   int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
   int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
  
similarity index 86%
rename from openssl/patches/openssl-1.0.1-beta3-fips.patch
rename to openssl/patches/openssl-1.0.1b-fips.patch
index 5308c049496416fa839ee7218e07eef99ad0db0f..96037a78f86434453e93de484c6dc660b6a3102d 100644 (file)
@@ -1,6 +1,6 @@
-diff -up openssl-1.0.1-beta3/apps/pkcs12.c.fips openssl-1.0.1-beta3/apps/pkcs12.c
---- openssl-1.0.1-beta3/apps/pkcs12.c.fips     2011-03-13 19:20:23.000000000 +0100
-+++ openssl-1.0.1-beta3/apps/pkcs12.c  2012-02-29 10:33:02.773294716 +0100
+diff -up openssl-1.0.1b/apps/pkcs12.c.fips openssl-1.0.1b/apps/pkcs12.c
+--- openssl-1.0.1b/apps/pkcs12.c.fips  2011-03-13 19:20:23.000000000 +0100
++++ openssl-1.0.1b/apps/pkcs12.c       2012-04-26 18:00:51.379768840 +0200
 @@ -67,6 +67,9 @@
  #include <openssl/err.h>
  #include <openssl/pem.h>
@@ -23,9 +23,9 @@ diff -up openssl-1.0.1-beta3/apps/pkcs12.c.fips openssl-1.0.1-beta3/apps/pkcs12.
      enc = EVP_des_ede3_cbc();
      if (bio_err == NULL ) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE);
  
-diff -up openssl-1.0.1-beta3/apps/speed.c.fips openssl-1.0.1-beta3/apps/speed.c
---- openssl-1.0.1-beta3/apps/speed.c.fips      2012-01-11 22:49:16.000000000 +0100
-+++ openssl-1.0.1-beta3/apps/speed.c   2012-02-29 10:33:02.774294724 +0100
+diff -up openssl-1.0.1b/apps/speed.c.fips openssl-1.0.1b/apps/speed.c
+--- openssl-1.0.1b/apps/speed.c.fips   2012-01-11 22:49:16.000000000 +0100
++++ openssl-1.0.1b/apps/speed.c        2012-04-26 18:00:51.380768861 +0200
 @@ -195,7 +195,6 @@
  #ifdef OPENSSL_DOING_MAKEDEPEND
  #undef AES_set_encrypt_key
@@ -123,9 +123,9 @@ diff -up openssl-1.0.1-beta3/apps/speed.c.fips openssl-1.0.1-beta3/apps/speed.c
  #endif
  #ifndef OPENSSL_NO_RSA
        memset(rsa_c,0,sizeof(rsa_c));
-diff -up openssl-1.0.1-beta3/Configure.fips openssl-1.0.1-beta3/Configure
---- openssl-1.0.1-beta3/Configure.fips 2012-02-29 10:33:02.738294416 +0100
-+++ openssl-1.0.1-beta3/Configure      2012-02-29 10:33:02.775294732 +0100
+diff -up openssl-1.0.1b/Configure.fips openssl-1.0.1b/Configure
+--- openssl-1.0.1b/Configure.fips      2012-04-26 18:00:51.341768009 +0200
++++ openssl-1.0.1b/Configure   2012-04-26 18:00:51.381768883 +0200
 @@ -993,11 +993,6 @@ if (defined($disabled{"md5"}) || defined
        $disabled{"ssl2"} = "forced";
        }
@@ -138,7 +138,7 @@ diff -up openssl-1.0.1-beta3/Configure.fips openssl-1.0.1-beta3/Configure
  # RSAX ENGINE sets default non-FIPS RSA method.
  if ($fips)
        {
-@@ -1478,7 +1473,6 @@ $cflags.=" -DOPENSSL_BN_ASM_GF2m" if ($b
+@@ -1472,7 +1467,6 @@ $cflags.=" -DOPENSSL_BN_ASM_GF2m" if ($b
  if ($fips)
        {
        $openssl_other_defines.="#define OPENSSL_FIPS\n";
@@ -146,7 +146,7 @@ diff -up openssl-1.0.1-beta3/Configure.fips openssl-1.0.1-beta3/Configure
        }
  
  $cpuid_obj="mem_clr.o"        unless ($cpuid_obj =~ /\.o$/);
-@@ -1665,9 +1659,12 @@ while (<IN>)
+@@ -1659,9 +1653,12 @@ while (<IN>)
  
        s/^FIPSDIR=.*/FIPSDIR=$fipsdir/;
        s/^FIPSLIBDIR=.*/FIPSLIBDIR=$fipslibdir/;
@@ -160,9 +160,9 @@ diff -up openssl-1.0.1-beta3/Configure.fips openssl-1.0.1-beta3/Configure
        s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
        s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
        s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
-diff -up openssl-1.0.1-beta3/crypto/aes/aes_misc.c.fips openssl-1.0.1-beta3/crypto/aes/aes_misc.c
---- openssl-1.0.1-beta3/crypto/aes/aes_misc.c.fips     2011-06-05 19:36:33.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/aes/aes_misc.c  2012-02-29 10:33:02.776294741 +0100
+diff -up openssl-1.0.1b/crypto/aes/aes_misc.c.fips openssl-1.0.1b/crypto/aes/aes_misc.c
+--- openssl-1.0.1b/crypto/aes/aes_misc.c.fips  2011-06-05 19:36:33.000000000 +0200
++++ openssl-1.0.1b/crypto/aes/aes_misc.c       2012-04-26 18:00:51.382768906 +0200
 @@ -69,17 +69,11 @@ const char *AES_options(void) {
  int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
                        AES_KEY *key)
@@ -181,9 +181,9 @@ diff -up openssl-1.0.1-beta3/crypto/aes/aes_misc.c.fips openssl-1.0.1-beta3/cryp
 -#endif
        return private_AES_set_decrypt_key(userKey, bits, key);
        }
-diff -up openssl-1.0.1-beta3/crypto/cmac/cmac.c.fips openssl-1.0.1-beta3/crypto/cmac/cmac.c
---- openssl-1.0.1-beta3/crypto/cmac/cmac.c.fips        2011-06-12 17:07:25.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/cmac/cmac.c     2012-02-29 10:33:02.776294741 +0100
+diff -up openssl-1.0.1b/crypto/cmac/cmac.c.fips openssl-1.0.1b/crypto/cmac/cmac.c
+--- openssl-1.0.1b/crypto/cmac/cmac.c.fips     2012-04-11 17:11:16.000000000 +0200
++++ openssl-1.0.1b/crypto/cmac/cmac.c  2012-04-26 18:00:51.382768906 +0200
 @@ -107,13 +107,6 @@ CMAC_CTX *CMAC_CTX_new(void)
  
  void CMAC_CTX_cleanup(CMAC_CTX *ctx)
@@ -210,7 +210,7 @@ diff -up openssl-1.0.1-beta3/crypto/cmac/cmac.c.fips openssl-1.0.1-beta3/crypto/
                }
  #endif
        /* All zeros means restart */
-@@ -214,10 +202,6 @@ int CMAC_Update(CMAC_CTX *ctx, const voi
+@@ -216,10 +204,6 @@ int CMAC_Update(CMAC_CTX *ctx, const voi
        {
        const unsigned char *data = in;
        size_t bl;
@@ -221,7 +221,7 @@ diff -up openssl-1.0.1-beta3/crypto/cmac/cmac.c.fips openssl-1.0.1-beta3/crypto/
        if (ctx->nlast_block == -1)
                return 0;
        if (dlen == 0)
-@@ -259,10 +243,6 @@ int CMAC_Update(CMAC_CTX *ctx, const voi
+@@ -261,10 +245,6 @@ int CMAC_Update(CMAC_CTX *ctx, const voi
  int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen)
        {
        int i, bl, lb;
@@ -232,9 +232,9 @@ diff -up openssl-1.0.1-beta3/crypto/cmac/cmac.c.fips openssl-1.0.1-beta3/crypto/
        if (ctx->nlast_block == -1)
                return 0;
        bl = EVP_CIPHER_CTX_block_size(&ctx->cctx);
-diff -up openssl-1.0.1-beta3/crypto/crypto.h.fips openssl-1.0.1-beta3/crypto/crypto.h
---- openssl-1.0.1-beta3/crypto/crypto.h.fips   2012-02-29 10:33:02.538292696 +0100
-+++ openssl-1.0.1-beta3/crypto/crypto.h        2012-02-29 10:33:02.777294750 +0100
+diff -up openssl-1.0.1b/crypto/crypto.h.fips openssl-1.0.1b/crypto/crypto.h
+--- openssl-1.0.1b/crypto/crypto.h.fips        2012-04-26 18:00:51.094762613 +0200
++++ openssl-1.0.1b/crypto/crypto.h     2012-04-26 18:00:51.382768906 +0200
 @@ -553,24 +553,29 @@ int FIPS_mode_set(int r);
  void OPENSSL_init(void);
  
@@ -280,9 +280,9 @@ diff -up openssl-1.0.1-beta3/crypto/crypto.h.fips openssl-1.0.1-beta3/crypto/cry
  /* Error codes for the CRYPTO functions. */
  
  /* Function codes. */
-diff -up openssl-1.0.1-beta3/crypto/des/des.h.fips openssl-1.0.1-beta3/crypto/des/des.h
---- openssl-1.0.1-beta3/crypto/des/des.h.fips  2012-02-29 10:33:02.605293272 +0100
-+++ openssl-1.0.1-beta3/crypto/des/des.h       2012-02-29 10:33:02.777294750 +0100
+diff -up openssl-1.0.1b/crypto/des/des.h.fips openssl-1.0.1b/crypto/des/des.h
+--- openssl-1.0.1b/crypto/des/des.h.fips       2012-04-26 18:00:51.173764340 +0200
++++ openssl-1.0.1b/crypto/des/des.h    2012-04-26 18:00:51.383768928 +0200
 @@ -224,9 +224,6 @@ int DES_set_key(const_DES_cblock *key,DE
  int DES_key_sched(const_DES_cblock *key,DES_key_schedule *schedule);
  int DES_set_key_checked(const_DES_cblock *key,DES_key_schedule *schedule);
@@ -293,9 +293,9 @@ diff -up openssl-1.0.1-beta3/crypto/des/des.h.fips openssl-1.0.1-beta3/crypto/de
  void DES_string_to_key(const char *str,DES_cblock *key);
  void DES_string_to_2keys(const char *str,DES_cblock *key1,DES_cblock *key2);
  void DES_cfb64_encrypt(const unsigned char *in,unsigned char *out,long length,
-diff -up openssl-1.0.1-beta3/crypto/des/set_key.c.fips openssl-1.0.1-beta3/crypto/des/set_key.c
---- openssl-1.0.1-beta3/crypto/des/set_key.c.fips      2011-06-01 18:54:04.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/des/set_key.c   2012-02-29 10:33:02.777294750 +0100
+diff -up openssl-1.0.1b/crypto/des/set_key.c.fips openssl-1.0.1b/crypto/des/set_key.c
+--- openssl-1.0.1b/crypto/des/set_key.c.fips   2011-06-01 18:54:04.000000000 +0200
++++ openssl-1.0.1b/crypto/des/set_key.c        2012-04-26 18:00:51.383768928 +0200
 @@ -337,13 +337,6 @@ int DES_set_key_checked(const_DES_cblock
        }
  
@@ -310,9 +310,9 @@ diff -up openssl-1.0.1-beta3/crypto/des/set_key.c.fips openssl-1.0.1-beta3/crypt
        {
        static const int shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0};
        register DES_LONG c,d,t,s,t2;
-diff -up openssl-1.0.1-beta3/crypto/dh/dh_gen.c.fips openssl-1.0.1-beta3/crypto/dh/dh_gen.c
---- openssl-1.0.1-beta3/crypto/dh/dh_gen.c.fips        2011-06-09 17:21:46.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/dh/dh_gen.c     2012-02-29 10:33:02.778294759 +0100
+diff -up openssl-1.0.1b/crypto/dh/dh_gen.c.fips openssl-1.0.1b/crypto/dh/dh_gen.c
+--- openssl-1.0.1b/crypto/dh/dh_gen.c.fips     2011-06-09 17:21:46.000000000 +0200
++++ openssl-1.0.1b/crypto/dh/dh_gen.c  2012-04-26 18:00:51.383768928 +0200
 @@ -84,11 +84,6 @@ int DH_generate_parameters_ex(DH *ret, i
  #endif
        if(ret->meth->generate_params)
@@ -346,9 +346,9 @@ diff -up openssl-1.0.1-beta3/crypto/dh/dh_gen.c.fips openssl-1.0.1-beta3/crypto/
        ctx=BN_CTX_new();
        if (ctx == NULL) goto err;
        BN_CTX_start(ctx);
-diff -up openssl-1.0.1-beta3/crypto/dh/dh.h.fips openssl-1.0.1-beta3/crypto/dh/dh.h
---- openssl-1.0.1-beta3/crypto/dh/dh.h.fips    2012-02-29 10:33:02.483292223 +0100
-+++ openssl-1.0.1-beta3/crypto/dh/dh.h 2012-02-29 10:33:02.778294759 +0100
+diff -up openssl-1.0.1b/crypto/dh/dh.h.fips openssl-1.0.1b/crypto/dh/dh.h
+--- openssl-1.0.1b/crypto/dh/dh.h.fips 2012-04-26 18:00:51.033761281 +0200
++++ openssl-1.0.1b/crypto/dh/dh.h      2012-04-26 18:00:51.384768950 +0200
 @@ -77,6 +77,8 @@
  # define OPENSSL_DH_MAX_MODULUS_BITS  10000
  #endif
@@ -358,9 +358,9 @@ diff -up openssl-1.0.1-beta3/crypto/dh/dh.h.fips openssl-1.0.1-beta3/crypto/dh/d
  #define DH_FLAG_CACHE_MONT_P     0x01
  #define DH_FLAG_NO_EXP_CONSTTIME 0x02 /* new with 0.9.7h; the built-in DH
                                         * implementation now uses constant time
-diff -up openssl-1.0.1-beta3/crypto/dh/dh_key.c.fips openssl-1.0.1-beta3/crypto/dh/dh_key.c
---- openssl-1.0.1-beta3/crypto/dh/dh_key.c.fips        2011-11-14 15:16:09.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/dh/dh_key.c     2012-02-29 10:33:02.779294768 +0100
+diff -up openssl-1.0.1b/crypto/dh/dh_key.c.fips openssl-1.0.1b/crypto/dh/dh_key.c
+--- openssl-1.0.1b/crypto/dh/dh_key.c.fips     2011-11-14 15:16:09.000000000 +0100
++++ openssl-1.0.1b/crypto/dh/dh_key.c  2012-04-26 18:00:51.384768950 +0200
 @@ -61,6 +61,9 @@
  #include <openssl/bn.h>
  #include <openssl/rand.h>
@@ -419,9 +419,9 @@ diff -up openssl-1.0.1-beta3/crypto/dh/dh_key.c.fips openssl-1.0.1-beta3/crypto/
        dh->flags |= DH_FLAG_CACHE_MONT_P;
        return(1);
        }
-diff -up openssl-1.0.1-beta3/crypto/dh/dh_lib.c.fips openssl-1.0.1-beta3/crypto/dh/dh_lib.c
---- openssl-1.0.1-beta3/crypto/dh/dh_lib.c.fips        2011-06-20 21:41:11.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/dh/dh_lib.c     2012-02-29 10:33:02.779294768 +0100
+diff -up openssl-1.0.1b/crypto/dh/dh_lib.c.fips openssl-1.0.1b/crypto/dh/dh_lib.c
+--- openssl-1.0.1b/crypto/dh/dh_lib.c.fips     2011-06-20 21:41:11.000000000 +0200
++++ openssl-1.0.1b/crypto/dh/dh_lib.c  2012-04-26 18:00:51.384768950 +0200
 @@ -81,14 +81,7 @@ const DH_METHOD *DH_get_default_method(v
        {
        if(!default_DH_method)
@@ -437,9 +437,9 @@ diff -up openssl-1.0.1-beta3/crypto/dh/dh_lib.c.fips openssl-1.0.1-beta3/crypto/
                }
        return default_DH_method;
        }
-diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_err.c.fips openssl-1.0.1-beta3/crypto/dsa/dsa_err.c
---- openssl-1.0.1-beta3/crypto/dsa/dsa_err.c.fips      2011-10-10 01:13:49.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/dsa/dsa_err.c   2012-02-29 10:33:02.779294768 +0100
+diff -up openssl-1.0.1b/crypto/dsa/dsa_err.c.fips openssl-1.0.1b/crypto/dsa/dsa_err.c
+--- openssl-1.0.1b/crypto/dsa/dsa_err.c.fips   2011-10-10 01:13:49.000000000 +0200
++++ openssl-1.0.1b/crypto/dsa/dsa_err.c        2012-04-26 18:00:51.385768972 +0200
 @@ -74,6 +74,8 @@ static ERR_STRING_DATA DSA_str_functs[]=
  {ERR_FUNC(DSA_F_DO_DSA_PRINT),        "DO_DSA_PRINT"},
  {ERR_FUNC(DSA_F_DSAPARAMS_PRINT),     "DSAparams_print"},
@@ -458,9 +458,9 @@ diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_err.c.fips openssl-1.0.1-beta3/crypt
  {ERR_REASON(DSA_R_MISSING_PARAMETERS)    ,"missing parameters"},
  {ERR_REASON(DSA_R_MODULUS_TOO_LARGE)     ,"modulus too large"},
  {ERR_REASON(DSA_R_NEED_NEW_SETUP_VALUES) ,"need new setup values"},
-diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_gen.c.fips openssl-1.0.1-beta3/crypto/dsa/dsa_gen.c
---- openssl-1.0.1-beta3/crypto/dsa/dsa_gen.c.fips      2011-06-09 17:21:46.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/dsa/dsa_gen.c   2012-02-29 10:33:02.780294777 +0100
+diff -up openssl-1.0.1b/crypto/dsa/dsa_gen.c.fips openssl-1.0.1b/crypto/dsa/dsa_gen.c
+--- openssl-1.0.1b/crypto/dsa/dsa_gen.c.fips   2011-06-09 17:21:46.000000000 +0200
++++ openssl-1.0.1b/crypto/dsa/dsa_gen.c        2012-04-26 18:00:51.385768972 +0200
 @@ -85,6 +85,14 @@
  #include <openssl/fips.h>
  #endif
@@ -867,9 +867,9 @@ diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_gen.c.fips openssl-1.0.1-beta3/crypt
                }
        if (mont != NULL) BN_MONT_CTX_free(mont);
        return ok;
-diff -up openssl-1.0.1-beta3/crypto/dsa/dsa.h.fips openssl-1.0.1-beta3/crypto/dsa/dsa.h
---- openssl-1.0.1-beta3/crypto/dsa/dsa.h.fips  2012-02-29 10:33:02.310290735 +0100
-+++ openssl-1.0.1-beta3/crypto/dsa/dsa.h       2012-02-29 10:33:02.780294777 +0100
+diff -up openssl-1.0.1b/crypto/dsa/dsa.h.fips openssl-1.0.1b/crypto/dsa/dsa.h
+--- openssl-1.0.1b/crypto/dsa/dsa.h.fips       2012-04-26 18:00:50.840757065 +0200
++++ openssl-1.0.1b/crypto/dsa/dsa.h    2012-04-26 18:00:51.386768993 +0200
 @@ -88,6 +88,8 @@
  # define OPENSSL_DSA_MAX_MODULUS_BITS 10000
  #endif
@@ -930,9 +930,9 @@ diff -up openssl-1.0.1-beta3/crypto/dsa/dsa.h.fips openssl-1.0.1-beta3/crypto/ds
  #define DSA_R_PARAMETER_ENCODING_ERROR                         105
  
  #ifdef  __cplusplus
-diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_key.c.fips openssl-1.0.1-beta3/crypto/dsa/dsa_key.c
---- openssl-1.0.1-beta3/crypto/dsa/dsa_key.c.fips      2011-06-09 17:21:46.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/dsa/dsa_key.c   2012-02-29 10:33:02.781294786 +0100
+diff -up openssl-1.0.1b/crypto/dsa/dsa_key.c.fips openssl-1.0.1b/crypto/dsa/dsa_key.c
+--- openssl-1.0.1b/crypto/dsa/dsa_key.c.fips   2011-06-09 17:21:46.000000000 +0200
++++ openssl-1.0.1b/crypto/dsa/dsa_key.c        2012-04-26 18:00:51.386768993 +0200
 @@ -66,6 +66,24 @@
  
  #ifdef OPENSSL_FIPS
@@ -1000,9 +1000,9 @@ diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_key.c.fips openssl-1.0.1-beta3/crypt
        ok=1;
  
  err:
-diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_lib.c.fips openssl-1.0.1-beta3/crypto/dsa/dsa_lib.c
---- openssl-1.0.1-beta3/crypto/dsa/dsa_lib.c.fips      2011-11-14 15:16:09.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/dsa/dsa_lib.c   2012-02-29 10:33:02.781294786 +0100
+diff -up openssl-1.0.1b/crypto/dsa/dsa_lib.c.fips openssl-1.0.1b/crypto/dsa/dsa_lib.c
+--- openssl-1.0.1b/crypto/dsa/dsa_lib.c.fips   2011-11-14 15:16:09.000000000 +0100
++++ openssl-1.0.1b/crypto/dsa/dsa_lib.c        2012-04-26 18:00:51.387769014 +0200
 @@ -87,14 +87,7 @@ const DSA_METHOD *DSA_get_default_method
        {
        if(!default_DSA_method)
@@ -1018,18 +1018,18 @@ diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_lib.c.fips openssl-1.0.1-beta3/crypt
                }
        return default_DSA_method;
        }
-diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_locl.h.fips openssl-1.0.1-beta3/crypto/dsa/dsa_locl.h
---- openssl-1.0.1-beta3/crypto/dsa/dsa_locl.h.fips     2012-02-29 10:33:02.313290762 +0100
-+++ openssl-1.0.1-beta3/crypto/dsa/dsa_locl.h  2012-02-29 10:33:02.781294786 +0100
+diff -up openssl-1.0.1b/crypto/dsa/dsa_locl.h.fips openssl-1.0.1b/crypto/dsa/dsa_locl.h
+--- openssl-1.0.1b/crypto/dsa/dsa_locl.h.fips  2012-04-26 18:00:50.844757152 +0200
++++ openssl-1.0.1b/crypto/dsa/dsa_locl.h       2012-04-26 18:00:51.387769014 +0200
 @@ -56,5 +56,4 @@
  
  int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits,
        const EVP_MD *evpmd, const unsigned char *seed_in, size_t seed_len,
 -      unsigned char *seed_out,
        int *counter_ret, unsigned long *h_ret, BN_GENCB *cb);
-diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_ossl.c.fips openssl-1.0.1-beta3/crypto/dsa/dsa_ossl.c
---- openssl-1.0.1-beta3/crypto/dsa/dsa_ossl.c.fips     2011-02-01 13:53:47.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/dsa/dsa_ossl.c  2012-02-29 10:33:02.782294795 +0100
+diff -up openssl-1.0.1b/crypto/dsa/dsa_ossl.c.fips openssl-1.0.1b/crypto/dsa/dsa_ossl.c
+--- openssl-1.0.1b/crypto/dsa/dsa_ossl.c.fips  2011-02-01 13:53:47.000000000 +0100
++++ openssl-1.0.1b/crypto/dsa/dsa_ossl.c       2012-04-26 18:00:51.388769035 +0200
 @@ -65,6 +65,9 @@
  #include <openssl/dsa.h>
  #include <openssl/rand.h>
@@ -1103,9 +1103,9 @@ diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_ossl.c.fips openssl-1.0.1-beta3/cryp
        dsa->flags|=DSA_FLAG_CACHE_MONT_P;
        return(1);
  }
-diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_pmeth.c.fips openssl-1.0.1-beta3/crypto/dsa/dsa_pmeth.c
---- openssl-1.0.1-beta3/crypto/dsa/dsa_pmeth.c.fips    2011-06-20 22:05:13.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/dsa/dsa_pmeth.c 2012-02-29 10:33:02.782294795 +0100
+diff -up openssl-1.0.1b/crypto/dsa/dsa_pmeth.c.fips openssl-1.0.1b/crypto/dsa/dsa_pmeth.c
+--- openssl-1.0.1b/crypto/dsa/dsa_pmeth.c.fips 2011-06-20 22:05:13.000000000 +0200
++++ openssl-1.0.1b/crypto/dsa/dsa_pmeth.c      2012-04-26 18:00:51.388769035 +0200
 @@ -255,7 +255,7 @@ static int pkey_dsa_paramgen(EVP_PKEY_CT
        if (!dsa)
                return 0;
@@ -1115,9 +1115,9 @@ diff -up openssl-1.0.1-beta3/crypto/dsa/dsa_pmeth.c.fips openssl-1.0.1-beta3/cry
        if (ret)
                EVP_PKEY_assign_DSA(pkey, dsa);
        else
-diff -up openssl-1.0.1-beta3/crypto/dsa/dsatest.c.fips openssl-1.0.1-beta3/crypto/dsa/dsatest.c
---- openssl-1.0.1-beta3/crypto/dsa/dsatest.c.fips      2008-08-06 17:54:11.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/dsa/dsatest.c   2012-02-29 10:33:02.782294795 +0100
+diff -up openssl-1.0.1b/crypto/dsa/dsatest.c.fips openssl-1.0.1b/crypto/dsa/dsatest.c
+--- openssl-1.0.1b/crypto/dsa/dsatest.c.fips   2008-08-06 17:54:11.000000000 +0200
++++ openssl-1.0.1b/crypto/dsa/dsatest.c        2012-04-26 18:00:51.389769058 +0200
 @@ -96,36 +96,41 @@ static int MS_CALLBACK dsa_cb(int p, int
  /* seed, out_p, out_q, out_g are taken from the updated Appendix 5 to
   * FIPS PUB 186 and also appear in Appendix 5 to FIPS PIB 186-1 */
@@ -1202,9 +1202,9 @@ diff -up openssl-1.0.1-beta3/crypto/dsa/dsatest.c.fips openssl-1.0.1-beta3/crypt
                goto end;
                }
        if (h != 2)
-diff -up openssl-1.0.1-beta3/crypto/engine/eng_all.c.fips openssl-1.0.1-beta3/crypto/engine/eng_all.c
---- openssl-1.0.1-beta3/crypto/engine/eng_all.c.fips   2011-08-10 20:53:13.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/engine/eng_all.c        2012-02-29 10:33:02.783294803 +0100
+diff -up openssl-1.0.1b/crypto/engine/eng_all.c.fips openssl-1.0.1b/crypto/engine/eng_all.c
+--- openssl-1.0.1b/crypto/engine/eng_all.c.fips        2011-08-10 20:53:13.000000000 +0200
++++ openssl-1.0.1b/crypto/engine/eng_all.c     2012-04-26 18:00:51.389769058 +0200
 @@ -58,11 +58,25 @@
  
  #include "cryptlib.h"
@@ -1231,9 +1231,9 @@ diff -up openssl-1.0.1-beta3/crypto/engine/eng_all.c.fips openssl-1.0.1-beta3/cr
  #if 0
        /* There's no longer any need for an "openssl" ENGINE unless, one day,
         * it is the *only* way for standard builtin implementations to be be
-diff -up openssl-1.0.1-beta3/crypto/err/err_all.c.fips openssl-1.0.1-beta3/crypto/err/err_all.c
---- openssl-1.0.1-beta3/crypto/err/err_all.c.fips      2011-06-21 18:58:10.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/err/err_all.c   2012-02-29 10:33:02.783294803 +0100
+diff -up openssl-1.0.1b/crypto/err/err_all.c.fips openssl-1.0.1b/crypto/err/err_all.c
+--- openssl-1.0.1b/crypto/err/err_all.c.fips   2011-06-21 18:58:10.000000000 +0200
++++ openssl-1.0.1b/crypto/err/err_all.c        2012-04-26 18:00:51.390769081 +0200
 @@ -96,6 +96,9 @@
  #include <openssl/ocsp.h>
  #include <openssl/err.h>
@@ -1254,9 +1254,9 @@ diff -up openssl-1.0.1-beta3/crypto/err/err_all.c.fips openssl-1.0.1-beta3/crypt
  #ifndef OPENSSL_NO_CMS
        ERR_load_CMS_strings();
  #endif
-diff -up openssl-1.0.1-beta3/crypto/evp/c_allc.c.fips openssl-1.0.1-beta3/crypto/evp/c_allc.c
---- openssl-1.0.1-beta3/crypto/evp/c_allc.c.fips       2011-11-14 22:13:35.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/evp/c_allc.c    2012-02-29 10:33:02.783294803 +0100
+diff -up openssl-1.0.1b/crypto/evp/c_allc.c.fips openssl-1.0.1b/crypto/evp/c_allc.c
+--- openssl-1.0.1b/crypto/evp/c_allc.c.fips    2011-11-14 22:13:35.000000000 +0100
++++ openssl-1.0.1b/crypto/evp/c_allc.c 2012-04-26 18:00:51.390769081 +0200
 @@ -65,6 +65,11 @@
  void OpenSSL_add_all_ciphers(void)
        {
@@ -1330,9 +1330,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/c_allc.c.fips openssl-1.0.1-beta3/crypto
 +              }
 +#endif
        }
-diff -up openssl-1.0.1-beta3/crypto/evp/c_alld.c.fips openssl-1.0.1-beta3/crypto/evp/c_alld.c
---- openssl-1.0.1-beta3/crypto/evp/c_alld.c.fips       2009-07-08 10:50:53.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/evp/c_alld.c    2012-02-29 10:33:02.784294811 +0100
+diff -up openssl-1.0.1b/crypto/evp/c_alld.c.fips openssl-1.0.1b/crypto/evp/c_alld.c
+--- openssl-1.0.1b/crypto/evp/c_alld.c.fips    2009-07-08 10:50:53.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/c_alld.c 2012-04-26 18:00:51.390769081 +0200
 @@ -64,6 +64,11 @@
  
  void OpenSSL_add_all_digests(void)
@@ -1378,9 +1378,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/c_alld.c.fips openssl-1.0.1-beta3/crypto
 +              }
 +#endif
        }
-diff -up openssl-1.0.1-beta3/crypto/evp/digest.c.fips openssl-1.0.1-beta3/crypto/evp/digest.c
---- openssl-1.0.1-beta3/crypto/evp/digest.c.fips       2011-05-29 17:55:13.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/evp/digest.c    2012-02-29 10:33:02.784294811 +0100
+diff -up openssl-1.0.1b/crypto/evp/digest.c.fips openssl-1.0.1b/crypto/evp/digest.c
+--- openssl-1.0.1b/crypto/evp/digest.c.fips    2011-05-29 17:55:13.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/digest.c 2012-04-26 18:00:51.391769103 +0200
 @@ -142,9 +142,50 @@ int EVP_DigestInit(EVP_MD_CTX *ctx, cons
        return EVP_DigestInit_ex(ctx, type, NULL);
        }
@@ -1529,9 +1529,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/digest.c.fips openssl-1.0.1-beta3/crypto
        memset(ctx,'\0',sizeof *ctx);
  
        return 1;
-diff -up openssl-1.0.1-beta3/crypto/evp/e_aes.c.fips openssl-1.0.1-beta3/crypto/evp/e_aes.c
---- openssl-1.0.1-beta3/crypto/evp/e_aes.c.fips        2011-11-15 13:19:56.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/evp/e_aes.c     2012-02-29 10:33:02.785294819 +0100
+diff -up openssl-1.0.1b/crypto/evp/e_aes.c.fips openssl-1.0.1b/crypto/evp/e_aes.c
+--- openssl-1.0.1b/crypto/evp/e_aes.c.fips     2011-11-15 13:19:56.000000000 +0100
++++ openssl-1.0.1b/crypto/evp/e_aes.c  2012-04-26 18:00:51.391769103 +0200
 @@ -56,7 +56,6 @@
  #include <assert.h>
  #include <openssl/aes.h>
@@ -1563,9 +1563,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/e_aes.c.fips openssl-1.0.1-beta3/crypto/
  
  #endif
 -#endif
-diff -up openssl-1.0.1-beta3/crypto/evp/e_des3.c.fips openssl-1.0.1-beta3/crypto/evp/e_des3.c
---- openssl-1.0.1-beta3/crypto/evp/e_des3.c.fips       2011-05-29 01:01:26.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/evp/e_des3.c    2012-02-29 10:33:02.785294819 +0100
+diff -up openssl-1.0.1b/crypto/evp/e_des3.c.fips openssl-1.0.1b/crypto/evp/e_des3.c
+--- openssl-1.0.1b/crypto/evp/e_des3.c.fips    2011-05-29 01:01:26.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/e_des3.c 2012-04-26 18:00:51.392769125 +0200
 @@ -65,8 +65,6 @@
  #include <openssl/des.h>
  #include <openssl/rand.h>
@@ -1624,9 +1624,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/e_des3.c.fips openssl-1.0.1-beta3/crypto
  }
  #endif
 -#endif
-diff -up openssl-1.0.1-beta3/crypto/evp/e_null.c.fips openssl-1.0.1-beta3/crypto/evp/e_null.c
---- openssl-1.0.1-beta3/crypto/evp/e_null.c.fips       2011-06-20 22:00:10.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/evp/e_null.c    2012-02-29 10:33:02.785294819 +0100
+diff -up openssl-1.0.1b/crypto/evp/e_null.c.fips openssl-1.0.1b/crypto/evp/e_null.c
+--- openssl-1.0.1b/crypto/evp/e_null.c.fips    2011-06-20 22:00:10.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/e_null.c 2012-04-26 18:00:51.392769125 +0200
 @@ -61,8 +61,6 @@
  #include <openssl/evp.h>
  #include <openssl/objects.h>
@@ -1650,9 +1650,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/e_null.c.fips openssl-1.0.1-beta3/crypto
        return 1;
        }
 -#endif
-diff -up openssl-1.0.1-beta3/crypto/evp/evp_enc.c.fips openssl-1.0.1-beta3/crypto/evp/evp_enc.c
---- openssl-1.0.1-beta3/crypto/evp/evp_enc.c.fips      2012-02-10 17:54:56.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/evp/evp_enc.c   2012-02-29 10:33:02.786294827 +0100
+diff -up openssl-1.0.1b/crypto/evp/evp_enc.c.fips openssl-1.0.1b/crypto/evp/evp_enc.c
+--- openssl-1.0.1b/crypto/evp/evp_enc.c.fips   2012-04-20 02:07:48.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/evp_enc.c        2012-04-26 18:02:25.419823276 +0200
 @@ -69,17 +69,58 @@
  #endif
  #include "evp_locl.h"
@@ -1731,35 +1731,29 @@ diff -up openssl-1.0.1-beta3/crypto/evp/evp_enc.c.fips openssl-1.0.1-beta3/crypt
  #ifndef OPENSSL_NO_ENGINE
        /* Whether it's nice or not, "Inits" can be used on "Final"'d contexts
         * so this context may already have an ENGINE! Try to avoid releasing
-@@ -169,9 +218,6 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ct
+@@ -169,10 +218,6 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ct
                        ctx->engine = NULL;
  #endif
  
 -#ifdef OPENSSL_FIPS
--              return FIPS_cipherinit(ctx, cipher, key, iv, enc);
--#else
+-              if (FIPS_mode())
+-                      return FIPS_cipherinit(ctx, cipher, key, iv, enc);
+-#endif
                ctx->cipher=cipher;
                if (ctx->cipher->ctx_size)
                        {
-@@ -196,7 +242,6 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ct
-                               return 0;
-                               }
-                       }
--#endif
-               }
-       else if(!ctx->cipher)
-               {
-@@ -206,9 +251,6 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ct
+@@ -206,10 +251,6 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ct
  #ifndef OPENSSL_NO_ENGINE
  skip_to_init:
  #endif
 -#ifdef OPENSSL_FIPS
--      return FIPS_cipherinit(ctx, cipher, key, iv, enc);
--#else
+-      if (FIPS_mode())
+-              return FIPS_cipherinit(ctx, cipher, key, iv, enc);
+-#endif
        /* we assume block size is a power of 2 in *cryptUpdate */
        OPENSSL_assert(ctx->cipher->block_size == 1
            || ctx->cipher->block_size == 8
-@@ -248,6 +290,22 @@ skip_to_init:
+@@ -249,6 +290,22 @@ skip_to_init:
                }
        }
  
@@ -1782,14 +1776,6 @@ diff -up openssl-1.0.1-beta3/crypto/evp/evp_enc.c.fips openssl-1.0.1-beta3/crypt
        if(key || (ctx->cipher->flags & EVP_CIPH_ALWAYS_CALL_INIT)) {
                if(!ctx->cipher->init(ctx,key,iv,enc)) return 0;
        }
-@@ -255,7 +313,6 @@ skip_to_init:
-       ctx->final_used=0;
-       ctx->block_mask=ctx->cipher->block_size-1;
-       return 1;
--#endif
-       }
- int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
 @@ -568,7 +625,6 @@ void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX
  
  int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *c)
@@ -1815,9 +1801,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/evp_enc.c.fips openssl-1.0.1-beta3/crypt
        memset(c,0,sizeof(EVP_CIPHER_CTX));
        return 1;
        }
-diff -up openssl-1.0.1-beta3/crypto/evp/evp.h.fips openssl-1.0.1-beta3/crypto/evp/evp.h
---- openssl-1.0.1-beta3/crypto/evp/evp.h.fips  2012-02-29 10:33:02.567292944 +0100
-+++ openssl-1.0.1-beta3/crypto/evp/evp.h       2012-02-29 10:33:02.787294835 +0100
+diff -up openssl-1.0.1b/crypto/evp/evp.h.fips openssl-1.0.1b/crypto/evp/evp.h
+--- openssl-1.0.1b/crypto/evp/evp.h.fips       2012-04-26 18:00:51.128763357 +0200
++++ openssl-1.0.1b/crypto/evp/evp.h    2012-04-26 18:00:51.394769168 +0200
 @@ -75,6 +75,10 @@
  #include <openssl/bio.h>
  #endif
@@ -1870,9 +1856,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/evp.h.fips openssl-1.0.1-beta3/crypto/ev
  /* Cipher handles any and all padding logic as well
   * as finalisation.
   */
-diff -up openssl-1.0.1-beta3/crypto/evp/evp_lib.c.fips openssl-1.0.1-beta3/crypto/evp/evp_lib.c
---- openssl-1.0.1-beta3/crypto/evp/evp_lib.c.fips      2011-05-29 04:32:05.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/evp/evp_lib.c   2012-02-29 10:33:02.787294835 +0100
+diff -up openssl-1.0.1b/crypto/evp/evp_lib.c.fips openssl-1.0.1b/crypto/evp/evp_lib.c
+--- openssl-1.0.1b/crypto/evp/evp_lib.c.fips   2011-05-29 04:32:05.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/evp_lib.c        2012-04-26 18:00:51.394769168 +0200
 @@ -190,6 +190,9 @@ int EVP_CIPHER_CTX_block_size(const EVP_
  
  int EVP_Cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, unsigned int inl)
@@ -1883,9 +1869,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/evp_lib.c.fips openssl-1.0.1-beta3/crypt
        return ctx->cipher->do_cipher(ctx,out,in,inl);
        }
  
-diff -up openssl-1.0.1-beta3/crypto/evp/evp_locl.h.fips openssl-1.0.1-beta3/crypto/evp/evp_locl.h
---- openssl-1.0.1-beta3/crypto/evp/evp_locl.h.fips     2012-02-29 10:33:02.558292867 +0100
-+++ openssl-1.0.1-beta3/crypto/evp/evp_locl.h  2012-02-29 10:33:02.787294835 +0100
+diff -up openssl-1.0.1b/crypto/evp/evp_locl.h.fips openssl-1.0.1b/crypto/evp/evp_locl.h
+--- openssl-1.0.1b/crypto/evp/evp_locl.h.fips  2012-04-26 18:00:51.118763138 +0200
++++ openssl-1.0.1b/crypto/evp/evp_locl.h       2012-04-26 18:00:51.395769190 +0200
 @@ -258,10 +258,9 @@ const EVP_CIPHER *EVP_##cname##_ecb(void
        BLOCK_CIPHER_func_cfb(cipher##_##keysize,cprefix,cbits,kstruct,ksched) \
        BLOCK_CIPHER_def_cfb(cipher##_##keysize,kstruct, \
@@ -1920,9 +1906,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/evp_locl.h.fips openssl-1.0.1-beta3/cryp
  #define Camellia_set_key      private_Camellia_set_key
  
  #endif
-diff -up openssl-1.0.1-beta3/crypto/evp/Makefile.fips openssl-1.0.1-beta3/crypto/evp/Makefile
---- openssl-1.0.1-beta3/crypto/evp/Makefile.fips       2011-12-27 15:38:27.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/evp/Makefile    2012-02-29 10:33:02.788294844 +0100
+diff -up openssl-1.0.1b/crypto/evp/Makefile.fips openssl-1.0.1b/crypto/evp/Makefile
+--- openssl-1.0.1b/crypto/evp/Makefile.fips    2012-04-26 12:42:19.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/Makefile 2012-04-26 18:00:51.395769190 +0200
 @@ -28,7 +28,7 @@ LIBSRC= encode.c digest.c evp_enc.c evp_
        bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c \
        c_all.c c_allc.c c_alld.c evp_lib.c bio_ok.c \
@@ -1941,806 +1927,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/Makefile.fips openssl-1.0.1-beta3/crypto
        e_aes_cbc_hmac_sha1.o e_rc4_hmac_md5.o
  
  SRC= $(LIBSRC)
-@@ -103,44 +103,46 @@ bio_b64.o: ../../e_os.h ../../include/op
- bio_b64.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- bio_b64.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
- bio_b64.o: ../../include/openssl/err.h ../../include/openssl/evp.h
--bio_b64.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
--bio_b64.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
--bio_b64.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--bio_b64.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--bio_b64.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_b64.c
-+bio_b64.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
-+bio_b64.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+bio_b64.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-+bio_b64.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-+bio_b64.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+bio_b64.o: ../cryptlib.h bio_b64.c
- bio_enc.o: ../../e_os.h ../../include/openssl/asn1.h
- bio_enc.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- bio_enc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
- bio_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
--bio_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
--bio_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
--bio_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--bio_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--bio_enc.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_enc.c
-+bio_enc.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
-+bio_enc.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+bio_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-+bio_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-+bio_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+bio_enc.o: ../cryptlib.h bio_enc.c
- bio_md.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- bio_md.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- bio_md.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--bio_md.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--bio_md.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--bio_md.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
--bio_md.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
--bio_md.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
--bio_md.o: ../cryptlib.h bio_md.c
-+bio_md.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+bio_md.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-+bio_md.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-+bio_md.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-+bio_md.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-+bio_md.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_md.c
- bio_ok.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- bio_ok.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- bio_ok.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--bio_ok.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--bio_ok.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--bio_ok.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
--bio_ok.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
--bio_ok.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--bio_ok.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_ok.c
-+bio_ok.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+bio_ok.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-+bio_ok.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-+bio_ok.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-+bio_ok.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
-+bio_ok.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+bio_ok.o: ../cryptlib.h bio_ok.c
- c_all.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- c_all.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--c_all.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--c_all.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--c_all.o: ../../include/openssl/engine.h ../../include/openssl/err.h
--c_all.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-+c_all.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
-+c_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+c_all.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
- c_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- c_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
- c_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
-@@ -150,9 +152,8 @@ c_all.o: ../../include/openssl/x509.h ..
- c_all.o: ../cryptlib.h c_all.c
- c_allc.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- c_allc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--c_allc.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--c_allc.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--c_allc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+c_allc.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+c_allc.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- c_allc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- c_allc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- c_allc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -163,9 +164,8 @@ c_allc.o: ../../include/openssl/x509.h .
- c_allc.o: ../cryptlib.h c_allc.c
- c_alld.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- c_alld.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--c_alld.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--c_alld.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--c_alld.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+c_alld.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+c_alld.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- c_alld.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- c_alld.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- c_alld.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -176,10 +176,9 @@ c_alld.o: ../../include/openssl/x509.h .
- c_alld.o: ../cryptlib.h c_alld.c
- digest.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- digest.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--digest.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--digest.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--digest.o: ../../include/openssl/engine.h ../../include/openssl/err.h
--digest.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-+digest.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
-+digest.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+digest.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
- digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- digest.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
- digest.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
-@@ -190,18 +189,19 @@ digest.o: ../cryptlib.h digest.c
- e_aes.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
- e_aes.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
- e_aes.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--e_aes.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--e_aes.o: ../../include/openssl/modes.h ../../include/openssl/obj_mac.h
--e_aes.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
--e_aes.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--e_aes.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
--e_aes.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
--e_aes.o: ../modes/modes_lcl.h e_aes.c evp_locl.h
-+e_aes.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+e_aes.o: ../../include/openssl/lhash.h ../../include/openssl/modes.h
-+e_aes.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+e_aes.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-+e_aes.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
-+e_aes.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-+e_aes.o: ../../include/openssl/symhacks.h ../modes/modes_lcl.h e_aes.c
-+e_aes.o: evp_locl.h
- e_aes_cbc_hmac_sha1.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
- e_aes_cbc_hmac_sha1.o: ../../include/openssl/bio.h
- e_aes_cbc_hmac_sha1.o: ../../include/openssl/crypto.h
- e_aes_cbc_hmac_sha1.o: ../../include/openssl/e_os2.h
--e_aes_cbc_hmac_sha1.o: ../../include/openssl/evp.h
-+e_aes_cbc_hmac_sha1.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- e_aes_cbc_hmac_sha1.o: ../../include/openssl/obj_mac.h
- e_aes_cbc_hmac_sha1.o: ../../include/openssl/objects.h
- e_aes_cbc_hmac_sha1.o: ../../include/openssl/opensslconf.h
-@@ -211,20 +211,23 @@ e_aes_cbc_hmac_sha1.o: ../../include/ope
- e_aes_cbc_hmac_sha1.o: ../../include/openssl/sha.h
- e_aes_cbc_hmac_sha1.o: ../../include/openssl/stack.h
- e_aes_cbc_hmac_sha1.o: ../../include/openssl/symhacks.h e_aes_cbc_hmac_sha1.c
-+e_aes_cbc_hmac_sha1.o: evp_locl.h
- e_bf.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- e_bf.o: ../../include/openssl/blowfish.h ../../include/openssl/buffer.h
- e_bf.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
- e_bf.o: ../../include/openssl/err.h ../../include/openssl/evp.h
--e_bf.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
--e_bf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
--e_bf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--e_bf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--e_bf.o: ../../include/openssl/symhacks.h ../cryptlib.h e_bf.c evp_locl.h
-+e_bf.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
-+e_bf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+e_bf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-+e_bf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-+e_bf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+e_bf.o: ../cryptlib.h e_bf.c evp_locl.h
- e_camellia.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
- e_camellia.o: ../../include/openssl/camellia.h ../../include/openssl/crypto.h
- e_camellia.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--e_camellia.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--e_camellia.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+e_camellia.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+e_camellia.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-+e_camellia.o: ../../include/openssl/objects.h
- e_camellia.o: ../../include/openssl/opensslconf.h
- e_camellia.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
- e_camellia.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-@@ -233,74 +236,80 @@ e_cast.o: ../../e_os.h ../../include/ope
- e_cast.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
- e_cast.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
- e_cast.o: ../../include/openssl/err.h ../../include/openssl/evp.h
--e_cast.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
--e_cast.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
--e_cast.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--e_cast.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--e_cast.o: ../../include/openssl/symhacks.h ../cryptlib.h e_cast.c evp_locl.h
-+e_cast.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
-+e_cast.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+e_cast.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-+e_cast.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-+e_cast.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+e_cast.o: ../cryptlib.h e_cast.c evp_locl.h
- e_des.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- e_des.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- e_des.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
- e_des.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--e_des.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--e_des.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--e_des.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
--e_des.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
--e_des.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--e_des.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
--e_des.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_des.c evp_locl.h
-+e_des.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+e_des.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-+e_des.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-+e_des.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-+e_des.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
-+e_des.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+e_des.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
-+e_des.o: ../cryptlib.h e_des.c evp_locl.h
- e_des3.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- e_des3.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- e_des3.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
- e_des3.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--e_des3.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--e_des3.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--e_des3.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
--e_des3.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
--e_des3.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--e_des3.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
--e_des3.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_des3.c evp_locl.h
-+e_des3.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+e_des3.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-+e_des3.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-+e_des3.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-+e_des3.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
-+e_des3.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+e_des3.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
-+e_des3.o: ../cryptlib.h e_des3.c evp_locl.h
- e_idea.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- e_idea.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- e_idea.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--e_idea.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
--e_idea.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
--e_idea.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
--e_idea.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--e_idea.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--e_idea.o: ../../include/openssl/symhacks.h ../cryptlib.h e_idea.c evp_locl.h
-+e_idea.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+e_idea.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
-+e_idea.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+e_idea.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-+e_idea.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-+e_idea.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+e_idea.o: ../cryptlib.h e_idea.c evp_locl.h
- e_null.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- e_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- e_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--e_null.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--e_null.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--e_null.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
--e_null.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
--e_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
--e_null.o: ../cryptlib.h e_null.c
-+e_null.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+e_null.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-+e_null.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-+e_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-+e_null.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-+e_null.o: ../../include/openssl/symhacks.h ../cryptlib.h e_null.c
- e_old.o: e_old.c
- e_rc2.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- e_rc2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- e_rc2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--e_rc2.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--e_rc2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--e_rc2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
--e_rc2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
--e_rc2.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--e_rc2.o: ../../include/openssl/symhacks.h ../cryptlib.h e_rc2.c evp_locl.h
-+e_rc2.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+e_rc2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-+e_rc2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-+e_rc2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-+e_rc2.o: ../../include/openssl/rc2.h ../../include/openssl/safestack.h
-+e_rc2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+e_rc2.o: ../cryptlib.h e_rc2.c evp_locl.h
- e_rc4.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- e_rc4.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- e_rc4.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--e_rc4.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--e_rc4.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--e_rc4.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
--e_rc4.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc4.h
--e_rc4.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--e_rc4.o: ../../include/openssl/symhacks.h ../cryptlib.h e_rc4.c evp_locl.h
-+e_rc4.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+e_rc4.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-+e_rc4.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-+e_rc4.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-+e_rc4.o: ../../include/openssl/rc4.h ../../include/openssl/safestack.h
-+e_rc4.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+e_rc4.o: ../cryptlib.h e_rc4.c evp_locl.h
- e_rc4_hmac_md5.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
- e_rc4_hmac_md5.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--e_rc4_hmac_md5.o: ../../include/openssl/evp.h ../../include/openssl/md5.h
--e_rc4_hmac_md5.o: ../../include/openssl/obj_mac.h
-+e_rc4_hmac_md5.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+e_rc4_hmac_md5.o: ../../include/openssl/md5.h ../../include/openssl/obj_mac.h
- e_rc4_hmac_md5.o: ../../include/openssl/objects.h
- e_rc4_hmac_md5.o: ../../include/openssl/opensslconf.h
- e_rc4_hmac_md5.o: ../../include/openssl/opensslv.h
-@@ -308,29 +317,24 @@ e_rc4_hmac_md5.o: ../../include/openssl/
- e_rc4_hmac_md5.o: ../../include/openssl/safestack.h
- e_rc4_hmac_md5.o: ../../include/openssl/stack.h
- e_rc4_hmac_md5.o: ../../include/openssl/symhacks.h e_rc4_hmac_md5.c
--e_rc5.o: ../../e_os.h ../../include/openssl/bio.h
--e_rc5.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--e_rc5.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--e_rc5.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
--e_rc5.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--e_rc5.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--e_rc5.o: ../../include/openssl/symhacks.h ../cryptlib.h e_rc5.c
-+e_rc5.o: e_rc5.c
- e_seed.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
- e_seed.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
- e_seed.o: ../../include/openssl/err.h ../../include/openssl/evp.h
--e_seed.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
--e_seed.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
--e_seed.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--e_seed.o: ../../include/openssl/safestack.h ../../include/openssl/seed.h
--e_seed.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
--e_seed.o: e_seed.c evp_locl.h
-+e_seed.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
-+e_seed.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+e_seed.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-+e_seed.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-+e_seed.o: ../../include/openssl/seed.h ../../include/openssl/stack.h
-+e_seed.o: ../../include/openssl/symhacks.h e_seed.c evp_locl.h
- e_xcbc_d.o: ../../e_os.h ../../include/openssl/asn1.h
- e_xcbc_d.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- e_xcbc_d.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
- e_xcbc_d.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
- e_xcbc_d.o: ../../include/openssl/err.h ../../include/openssl/evp.h
--e_xcbc_d.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
--e_xcbc_d.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-+e_xcbc_d.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
-+e_xcbc_d.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+e_xcbc_d.o: ../../include/openssl/opensslconf.h
- e_xcbc_d.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
- e_xcbc_d.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
- e_xcbc_d.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
-@@ -339,28 +343,27 @@ e_xcbc_d.o: evp_locl.h
- encode.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- encode.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- encode.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--encode.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--encode.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--encode.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
--encode.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
--encode.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
--encode.o: ../cryptlib.h encode.c
-+encode.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+encode.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-+encode.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-+encode.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-+encode.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-+encode.o: ../../include/openssl/symhacks.h ../cryptlib.h encode.c
- evp_acnf.o: ../../e_os.h ../../include/openssl/asn1.h
- evp_acnf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- evp_acnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
- evp_acnf.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--evp_acnf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--evp_acnf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--evp_acnf.o: ../../include/openssl/opensslconf.h
-+evp_acnf.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+evp_acnf.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-+evp_acnf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- evp_acnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
- evp_acnf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
- evp_acnf.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_acnf.c
- evp_enc.o: ../../e_os.h ../../include/openssl/asn1.h
- evp_enc.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- evp_enc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--evp_enc.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--evp_enc.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
--evp_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+evp_enc.o: ../../include/openssl/engine.h ../../include/openssl/err.h
-+evp_enc.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- evp_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- evp_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- evp_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -372,24 +375,17 @@ evp_enc.o: ../cryptlib.h evp_enc.c evp_l
- evp_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
- evp_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
- evp_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
--evp_err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
--evp_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
--evp_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--evp_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--evp_err.o: ../../include/openssl/symhacks.h evp_err.c
--evp_fips.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
--evp_fips.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--evp_fips.o: ../../include/openssl/evp.h ../../include/openssl/obj_mac.h
--evp_fips.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
--evp_fips.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--evp_fips.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--evp_fips.o: ../../include/openssl/symhacks.h evp_fips.c
-+evp_err.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
-+evp_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+evp_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-+evp_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-+evp_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+evp_err.o: evp_err.c
- evp_key.o: ../../e_os.h ../../include/openssl/asn1.h
- evp_key.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- evp_key.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--evp_key.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--evp_key.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
--evp_key.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-+evp_key.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+evp_key.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
- evp_key.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- evp_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
- evp_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
-@@ -401,17 +397,17 @@ evp_lib.o: ../../e_os.h ../../include/op
- evp_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- evp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
- evp_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
--evp_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
--evp_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
--evp_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--evp_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--evp_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_lib.c
-+evp_lib.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
-+evp_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+evp_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-+evp_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-+evp_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+evp_lib.o: ../cryptlib.h evp_lib.c
- evp_pbe.o: ../../e_os.h ../../include/openssl/asn1.h
- evp_pbe.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- evp_pbe.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--evp_pbe.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--evp_pbe.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
--evp_pbe.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-+evp_pbe.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+evp_pbe.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
- evp_pbe.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- evp_pbe.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
- evp_pbe.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
-@@ -422,9 +418,8 @@ evp_pbe.o: ../../include/openssl/x509_vf
- evp_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
- evp_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- evp_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--evp_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--evp_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
--evp_pkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-+evp_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+evp_pkey.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
- evp_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- evp_pkey.o: ../../include/openssl/opensslconf.h
- evp_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -436,9 +431,8 @@ evp_pkey.o: ../asn1/asn1_locl.h ../crypt
- m_dss.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- m_dss.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- m_dss.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
--m_dss.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--m_dss.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
--m_dss.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-+m_dss.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+m_dss.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
- m_dss.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- m_dss.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
- m_dss.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
-@@ -449,9 +443,8 @@ m_dss.o: ../cryptlib.h m_dss.c
- m_dss1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- m_dss1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- m_dss1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
--m_dss1.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--m_dss1.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
--m_dss1.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-+m_dss1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+m_dss1.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
- m_dss1.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- m_dss1.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
- m_dss1.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
-@@ -459,31 +452,23 @@ m_dss1.o: ../../include/openssl/safestac
- m_dss1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
- m_dss1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
- m_dss1.o: ../cryptlib.h m_dss1.c
--m_ecdsa.o: ../../e_os.h ../../include/openssl/asn1.h
--m_ecdsa.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
--m_ecdsa.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--m_ecdsa.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--m_ecdsa.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
--m_ecdsa.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--m_ecdsa.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--m_ecdsa.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
--m_ecdsa.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
--m_ecdsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
--m_ecdsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
--m_ecdsa.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
--m_ecdsa.o: ../cryptlib.h m_ecdsa.c
--m_md2.o: ../../e_os.h ../../include/openssl/bio.h
-+m_ecdsa.o: m_ecdsa.c
-+m_md2.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- m_md2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- m_md2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--m_md2.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
--m_md2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--m_md2.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
--m_md2.o: ../../include/openssl/symhacks.h ../cryptlib.h m_md2.c
-+m_md2.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+m_md2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
-+m_md2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+m_md2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-+m_md2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
-+m_md2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
-+m_md2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
-+m_md2.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
-+m_md2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h m_md2.c
- m_md4.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- m_md4.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--m_md4.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--m_md4.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--m_md4.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+m_md4.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+m_md4.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- m_md4.o: ../../include/openssl/lhash.h ../../include/openssl/md4.h
- m_md4.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- m_md4.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-@@ -494,9 +479,8 @@ m_md4.o: ../../include/openssl/symhacks.
- m_md4.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h m_md4.c
- m_md5.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- m_md5.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--m_md5.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--m_md5.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--m_md5.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+m_md5.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+m_md5.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- m_md5.o: ../../include/openssl/lhash.h ../../include/openssl/md5.h
- m_md5.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- m_md5.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-@@ -505,26 +489,17 @@ m_md5.o: ../../include/openssl/rsa.h ../
- m_md5.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
- m_md5.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
- m_md5.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h m_md5.c
--m_mdc2.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
-+m_mdc2.o: ../../e_os.h ../../include/openssl/bio.h
- m_mdc2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--m_mdc2.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
--m_mdc2.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--m_mdc2.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--m_mdc2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
--m_mdc2.o: ../../include/openssl/lhash.h ../../include/openssl/mdc2.h
--m_mdc2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--m_mdc2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
--m_mdc2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
--m_mdc2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
--m_mdc2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
--m_mdc2.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
--m_mdc2.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
--m_mdc2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h m_mdc2.c
-+m_mdc2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+m_mdc2.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
-+m_mdc2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-+m_mdc2.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-+m_mdc2.o: ../../include/openssl/symhacks.h ../cryptlib.h m_mdc2.c
- m_null.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- m_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--m_null.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--m_null.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--m_null.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+m_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+m_null.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- m_null.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- m_null.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- m_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -535,9 +510,8 @@ m_null.o: ../../include/openssl/x509_vfy
- m_ripemd.o: ../../e_os.h ../../include/openssl/asn1.h
- m_ripemd.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- m_ripemd.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--m_ripemd.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--m_ripemd.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
--m_ripemd.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-+m_ripemd.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+m_ripemd.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
- m_ripemd.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- m_ripemd.o: ../../include/openssl/opensslconf.h
- m_ripemd.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -549,9 +523,8 @@ m_ripemd.o: ../../include/openssl/x509_v
- m_ripemd.o: m_ripemd.c
- m_sha.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- m_sha.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--m_sha.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--m_sha.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--m_sha.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+m_sha.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+m_sha.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- m_sha.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- m_sha.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- m_sha.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -562,9 +535,8 @@ m_sha.o: ../../include/openssl/x509.h ..
- m_sha.o: ../cryptlib.h evp_locl.h m_sha.c
- m_sha1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- m_sha1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--m_sha1.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--m_sha1.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--m_sha1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+m_sha1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+m_sha1.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- m_sha1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- m_sha1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- m_sha1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -576,9 +548,8 @@ m_sha1.o: ../cryptlib.h m_sha1.c
- m_sigver.o: ../../e_os.h ../../include/openssl/asn1.h
- m_sigver.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- m_sigver.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--m_sigver.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--m_sigver.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
--m_sigver.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-+m_sigver.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+m_sigver.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
- m_sigver.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- m_sigver.o: ../../include/openssl/opensslconf.h
- m_sigver.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -589,9 +560,8 @@ m_sigver.o: ../../include/openssl/x509_v
- m_sigver.o: m_sigver.c
- m_wp.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- m_wp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--m_wp.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--m_wp.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--m_wp.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+m_wp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+m_wp.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- m_wp.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- m_wp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- m_wp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -602,9 +572,8 @@ m_wp.o: ../../include/openssl/x509.h ../
- m_wp.o: ../cryptlib.h evp_locl.h m_wp.c
- names.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- names.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--names.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--names.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--names.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+names.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+names.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- names.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- names.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- names.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -615,9 +584,8 @@ names.o: ../../include/openssl/x509_vfy.
- p5_crpt.o: ../../e_os.h ../../include/openssl/asn1.h
- p5_crpt.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- p5_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--p5_crpt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--p5_crpt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
--p5_crpt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-+p5_crpt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+p5_crpt.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
- p5_crpt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- p5_crpt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
- p5_crpt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
-@@ -628,9 +596,8 @@ p5_crpt.o: ../cryptlib.h p5_crpt.c
- p5_crpt2.o: ../../e_os.h ../../include/openssl/asn1.h
- p5_crpt2.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- p5_crpt2.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--p5_crpt2.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--p5_crpt2.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
--p5_crpt2.o: ../../include/openssl/evp.h ../../include/openssl/hmac.h
-+p5_crpt2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+p5_crpt2.o: ../../include/openssl/fips.h ../../include/openssl/hmac.h
- p5_crpt2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- p5_crpt2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- p5_crpt2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -641,9 +608,8 @@ p5_crpt2.o: ../../include/openssl/x509_v
- p5_crpt2.o: p5_crpt2.c
- p_dec.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- p_dec.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--p_dec.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--p_dec.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--p_dec.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+p_dec.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+p_dec.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- p_dec.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- p_dec.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- p_dec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -654,9 +620,8 @@ p_dec.o: ../../include/openssl/symhacks.
- p_dec.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_dec.c
- p_enc.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- p_enc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--p_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--p_enc.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--p_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+p_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+p_enc.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- p_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- p_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- p_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -670,9 +635,8 @@ p_lib.o: ../../include/openssl/asn1_mac.
- p_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
- p_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
- p_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
--p_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--p_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
--p_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+p_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
-+p_lib.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- p_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- p_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- p_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -683,9 +647,8 @@ p_lib.o: ../../include/openssl/x509.h ..
- p_lib.o: ../asn1/asn1_locl.h ../cryptlib.h p_lib.c
- p_open.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- p_open.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--p_open.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--p_open.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--p_open.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+p_open.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+p_open.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- p_open.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- p_open.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- p_open.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -696,9 +659,8 @@ p_open.o: ../../include/openssl/x509.h .
- p_open.o: ../cryptlib.h p_open.c
- p_seal.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- p_seal.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--p_seal.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--p_seal.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--p_seal.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+p_seal.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+p_seal.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- p_seal.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- p_seal.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- p_seal.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-@@ -709,35 +671,36 @@ p_seal.o: ../../include/openssl/symhacks
- p_seal.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_seal.c
- p_sign.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- p_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
--p_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
--p_sign.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
--p_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+p_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
-+p_sign.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- p_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- p_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- p_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--p_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
--p_sign.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
--p_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
--p_sign.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_sign.c
-+p_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
-+p_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
-+p_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+p_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
-+p_sign.o: ../cryptlib.h p_sign.c
- p_verify.o: ../../e_os.h ../../include/openssl/asn1.h
- p_verify.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- p_verify.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--p_verify.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--p_verify.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
--p_verify.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-+p_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+p_verify.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
- p_verify.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
- p_verify.o: ../../include/openssl/opensslconf.h
- p_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
--p_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
--p_verify.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
--p_verify.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
--p_verify.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_verify.c
-+p_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
-+p_verify.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
-+p_verify.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-+p_verify.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
-+p_verify.o: ../cryptlib.h p_verify.c
- pmeth_fn.o: ../../e_os.h ../../include/openssl/asn1.h
- pmeth_fn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- pmeth_fn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
- pmeth_fn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
--pmeth_fn.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
--pmeth_fn.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-+pmeth_fn.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
-+pmeth_fn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-+pmeth_fn.o: ../../include/openssl/opensslconf.h
- pmeth_fn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
- pmeth_fn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
- pmeth_fn.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
-@@ -746,9 +709,9 @@ pmeth_gn.o: ../../e_os.h ../../include/o
- pmeth_gn.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
- pmeth_gn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- pmeth_gn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
--pmeth_gn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
--pmeth_gn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
--pmeth_gn.o: ../../include/openssl/opensslconf.h
-+pmeth_gn.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
-+pmeth_gn.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-+pmeth_gn.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- pmeth_gn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
- pmeth_gn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
- pmeth_gn.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
-@@ -756,9 +719,8 @@ pmeth_gn.o: pmeth_gn.c
- pmeth_lib.o: ../../e_os.h ../../include/openssl/asn1.h
- pmeth_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
- pmeth_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
--pmeth_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
--pmeth_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
--pmeth_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-+pmeth_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
-+pmeth_lib.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
- pmeth_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
- pmeth_lib.o: ../../include/openssl/objects.h
- pmeth_lib.o: ../../include/openssl/opensslconf.h
-diff -up openssl-1.0.1-beta3/crypto/evp/m_dss1.c.fips openssl-1.0.1-beta3/crypto/evp/m_dss1.c
---- openssl-1.0.1-beta3/crypto/evp/m_dss1.c.fips       2011-06-01 17:11:00.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/evp/m_dss1.c    2012-02-29 10:33:02.788294844 +0100
+diff -up openssl-1.0.1b/crypto/evp/m_dss1.c.fips openssl-1.0.1b/crypto/evp/m_dss1.c
+--- openssl-1.0.1b/crypto/evp/m_dss1.c.fips    2011-06-01 17:11:00.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/m_dss1.c 2012-04-26 18:00:51.396769212 +0200
 @@ -68,8 +68,6 @@
  #include <openssl/dsa.h>
  #endif
@@ -2764,9 +1953,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/m_dss1.c.fips openssl-1.0.1-beta3/crypto
        }
  #endif
 -#endif
-diff -up openssl-1.0.1-beta3/crypto/evp/m_dss.c.fips openssl-1.0.1-beta3/crypto/evp/m_dss.c
---- openssl-1.0.1-beta3/crypto/evp/m_dss.c.fips        2011-06-01 17:11:00.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/evp/m_dss.c     2012-02-29 10:33:02.788294844 +0100
+diff -up openssl-1.0.1b/crypto/evp/m_dss.c.fips openssl-1.0.1b/crypto/evp/m_dss.c
+--- openssl-1.0.1b/crypto/evp/m_dss.c.fips     2011-06-01 17:11:00.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/m_dss.c  2012-04-26 18:00:51.396769212 +0200
 @@ -66,7 +66,6 @@
  #endif
  
@@ -2789,9 +1978,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/m_dss.c.fips openssl-1.0.1-beta3/crypto/
        }
  #endif
 -#endif
-diff -up openssl-1.0.1-beta3/crypto/evp/m_md2.c.fips openssl-1.0.1-beta3/crypto/evp/m_md2.c
---- openssl-1.0.1-beta3/crypto/evp/m_md2.c.fips        2005-07-16 14:37:32.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/evp/m_md2.c     2012-02-29 10:33:02.789294853 +0100
+diff -up openssl-1.0.1b/crypto/evp/m_md2.c.fips openssl-1.0.1b/crypto/evp/m_md2.c
+--- openssl-1.0.1b/crypto/evp/m_md2.c.fips     2005-07-16 14:37:32.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/m_md2.c  2012-04-26 18:00:51.396769212 +0200
 @@ -68,6 +68,7 @@
  #ifndef OPENSSL_NO_RSA
  #include <openssl/rsa.h>
@@ -2800,9 +1989,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/m_md2.c.fips openssl-1.0.1-beta3/crypto/
  
  static int init(EVP_MD_CTX *ctx)
        { return MD2_Init(ctx->md_data); }
-diff -up openssl-1.0.1-beta3/crypto/evp/m_sha1.c.fips openssl-1.0.1-beta3/crypto/evp/m_sha1.c
---- openssl-1.0.1-beta3/crypto/evp/m_sha1.c.fips       2011-05-29 01:01:26.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/evp/m_sha1.c    2012-02-29 10:33:02.789294853 +0100
+diff -up openssl-1.0.1b/crypto/evp/m_sha1.c.fips openssl-1.0.1b/crypto/evp/m_sha1.c
+--- openssl-1.0.1b/crypto/evp/m_sha1.c.fips    2011-05-29 01:01:26.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/m_sha1.c 2012-04-26 18:00:51.396769212 +0200
 @@ -59,8 +59,6 @@
  #include <stdio.h>
  #include "cryptlib.h"
@@ -2867,9 +2056,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/m_sha1.c.fips openssl-1.0.1-beta3/crypto
  #endif        /* ifndef OPENSSL_NO_SHA512 */
  
 -#endif
-diff -up openssl-1.0.1-beta3/crypto/evp/p_sign.c.fips openssl-1.0.1-beta3/crypto/evp/p_sign.c
---- openssl-1.0.1-beta3/crypto/evp/p_sign.c.fips       2011-06-09 18:02:39.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/evp/p_sign.c    2012-02-29 10:33:02.789294853 +0100
+diff -up openssl-1.0.1b/crypto/evp/p_sign.c.fips openssl-1.0.1b/crypto/evp/p_sign.c
+--- openssl-1.0.1b/crypto/evp/p_sign.c.fips    2011-06-09 18:02:39.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/p_sign.c 2012-04-26 18:00:51.396769212 +0200
 @@ -61,6 +61,7 @@
  #include <openssl/evp.h>
  #include <openssl/objects.h>
@@ -2901,9 +2090,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/p_sign.c.fips openssl-1.0.1-beta3/crypto
                if (EVP_PKEY_sign(pkctx, sigret, &sltmp, m, m_len) <= 0)
                        goto err;
                *siglen = sltmp;
-diff -up openssl-1.0.1-beta3/crypto/evp/p_verify.c.fips openssl-1.0.1-beta3/crypto/evp/p_verify.c
---- openssl-1.0.1-beta3/crypto/evp/p_verify.c.fips     2011-06-09 18:02:39.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/evp/p_verify.c  2012-02-29 10:33:02.789294853 +0100
+diff -up openssl-1.0.1b/crypto/evp/p_verify.c.fips openssl-1.0.1b/crypto/evp/p_verify.c
+--- openssl-1.0.1b/crypto/evp/p_verify.c.fips  2011-06-09 18:02:39.000000000 +0200
++++ openssl-1.0.1b/crypto/evp/p_verify.c       2012-04-26 18:00:51.396769212 +0200
 @@ -61,6 +61,7 @@
  #include <openssl/evp.h>
  #include <openssl/objects.h>
@@ -2935,9 +2124,9 @@ diff -up openssl-1.0.1-beta3/crypto/evp/p_verify.c.fips openssl-1.0.1-beta3/cryp
                i = EVP_PKEY_verify(pkctx, sigbuf, siglen, m, m_len);
                err:
                EVP_PKEY_CTX_free(pkctx);
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_aesavs.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_aesavs.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_aesavs.c.fips    2012-02-29 10:33:02.789294853 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_aesavs.c 2012-02-29 10:33:02.789294853 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_aesavs.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_aesavs.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_aesavs.c.fips 2012-04-26 18:00:51.397769234 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_aesavs.c      2012-04-26 18:00:51.397769234 +0200
 @@ -0,0 +1,939 @@
 +/* ====================================================================
 + * Copyright (c) 2004 The OpenSSL Project.  All rights reserved.
@@ -3878,9 +3067,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_aesavs.c.fips openssl-1.0.1-b
 +    }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_cmactest.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_cmactest.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_cmactest.c.fips  2012-02-29 10:33:02.790294862 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_cmactest.c       2012-02-29 10:33:02.790294862 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_cmactest.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_cmactest.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_cmactest.c.fips       2012-04-26 18:00:51.397769234 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_cmactest.c    2012-04-26 18:00:51.397769234 +0200
 @@ -0,0 +1,517 @@
 +/* fips_cmactest.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -4399,9 +3588,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_cmactest.c.fips openssl-1.0.1
 +      }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_desmovs.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_desmovs.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_desmovs.c.fips   2012-02-29 10:33:02.790294862 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_desmovs.c        2012-02-29 10:33:02.790294862 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_desmovs.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_desmovs.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_desmovs.c.fips        2012-04-26 18:00:51.398769255 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_desmovs.c     2012-04-26 18:00:51.398769255 +0200
 @@ -0,0 +1,702 @@
 +/* ====================================================================
 + * Copyright (c) 2004 The OpenSSL Project.  All rights reserved.
@@ -5105,9 +4294,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_desmovs.c.fips openssl-1.0.1-
 +    }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_dhvs.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_dhvs.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_dhvs.c.fips      2012-02-29 10:33:02.790294862 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_dhvs.c   2012-02-29 10:33:02.790294862 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_dhvs.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_dhvs.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_dhvs.c.fips   2012-04-26 18:00:51.398769255 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_dhvs.c        2012-04-26 18:00:51.398769255 +0200
 @@ -0,0 +1,292 @@
 +/* fips/dh/fips_dhvs.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -5401,9 +4590,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_dhvs.c.fips openssl-1.0.1-bet
 +      }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_drbgvs.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_drbgvs.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_drbgvs.c.fips    2012-02-29 10:33:02.790294862 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_drbgvs.c 2012-02-29 10:33:02.790294862 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_drbgvs.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_drbgvs.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_drbgvs.c.fips 2012-04-26 18:00:51.398769255 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_drbgvs.c      2012-04-26 18:00:51.398769255 +0200
 @@ -0,0 +1,416 @@
 +/* fips/rand/fips_drbgvs.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -5821,9 +5010,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_drbgvs.c.fips openssl-1.0.1-b
 +      }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_dssvs.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_dssvs.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_dssvs.c.fips     2012-02-29 10:33:02.791294871 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_dssvs.c  2012-02-29 10:33:02.791294871 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_dssvs.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_dssvs.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_dssvs.c.fips  2012-04-26 18:00:51.398769255 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_dssvs.c       2012-04-26 18:00:51.398769255 +0200
 @@ -0,0 +1,537 @@
 +#include <openssl/opensslconf.h>
 +
@@ -6362,9 +5551,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_dssvs.c.fips openssl-1.0.1-be
 +    }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_gcmtest.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_gcmtest.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_gcmtest.c.fips   2012-02-29 10:33:02.791294871 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_gcmtest.c        2012-02-29 10:33:02.791294871 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_gcmtest.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_gcmtest.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_gcmtest.c.fips        2012-04-26 18:00:51.399769276 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_gcmtest.c     2012-04-26 18:00:51.399769276 +0200
 @@ -0,0 +1,571 @@
 +/* fips/aes/fips_gcmtest.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -6937,9 +6126,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_gcmtest.c.fips openssl-1.0.1-
 +}
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_rngvs.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_rngvs.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_rngvs.c.fips     2012-02-29 10:33:02.791294871 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_rngvs.c  2012-02-29 10:33:02.791294871 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_rngvs.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_rngvs.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_rngvs.c.fips  2012-04-26 18:00:51.399769276 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_rngvs.c       2012-04-26 18:00:51.399769276 +0200
 @@ -0,0 +1,230 @@
 +/*
 + * Crude test driver for processing the VST and MCT testvector files
@@ -7171,9 +6360,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_rngvs.c.fips openssl-1.0.1-be
 +    return 0;
 +    }
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsagtest.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsagtest.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsagtest.c.fips  2012-02-29 10:33:02.791294871 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsagtest.c       2012-02-29 10:33:02.791294871 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_rsagtest.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_rsagtest.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_rsagtest.c.fips       2012-04-26 18:00:51.399769276 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_rsagtest.c    2012-04-26 18:00:51.399769276 +0200
 @@ -0,0 +1,390 @@
 +/* fips_rsagtest.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -7565,9 +6754,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsagtest.c.fips openssl-1.0.1
 +      }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsastest.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsastest.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsastest.c.fips  2012-02-29 10:33:02.792294880 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsastest.c       2012-02-29 10:33:02.792294880 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_rsastest.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_rsastest.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_rsastest.c.fips       2012-04-26 18:00:51.400769298 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_rsastest.c    2012-04-26 18:00:51.400769298 +0200
 @@ -0,0 +1,370 @@
 +/* fips_rsastest.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -7939,9 +7128,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsastest.c.fips openssl-1.0.1
 +      return ret;
 +      }
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsavtest.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsavtest.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsavtest.c.fips  2012-02-29 10:33:02.792294880 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsavtest.c       2012-02-29 10:33:02.792294880 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_rsavtest.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_rsavtest.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_rsavtest.c.fips       2012-04-26 18:00:51.400769298 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_rsavtest.c    2012-04-26 18:00:51.400769298 +0200
 @@ -0,0 +1,377 @@
 +/* fips_rsavtest.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -8320,9 +7509,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_rsavtest.c.fips openssl-1.0.1
 +      return ret;
 +      }
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_shatest.c.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_shatest.c
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_shatest.c.fips   2012-02-29 10:33:02.792294880 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_shatest.c        2012-02-29 10:33:02.792294880 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_shatest.c.fips openssl-1.0.1b/crypto/fips/cavs/fips_shatest.c
+--- openssl-1.0.1b/crypto/fips/cavs/fips_shatest.c.fips        2012-04-26 18:00:51.400769298 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_shatest.c     2012-04-26 18:00:51.400769298 +0200
 @@ -0,0 +1,388 @@
 +/* fips_shatest.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -8712,9 +7901,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_shatest.c.fips openssl-1.0.1-
 +      }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_utl.h.fips openssl-1.0.1-beta3/crypto/fips/cavs/fips_utl.h
---- openssl-1.0.1-beta3/crypto/fips/cavs/fips_utl.h.fips       2012-02-29 10:33:02.792294880 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/cavs/fips_utl.h    2012-02-29 10:33:02.792294880 +0100
+diff -up openssl-1.0.1b/crypto/fips/cavs/fips_utl.h.fips openssl-1.0.1b/crypto/fips/cavs/fips_utl.h
+--- openssl-1.0.1b/crypto/fips/cavs/fips_utl.h.fips    2012-04-26 18:00:51.400769298 +0200
++++ openssl-1.0.1b/crypto/fips/cavs/fips_utl.h 2012-04-26 18:00:51.400769298 +0200
 @@ -0,0 +1,343 @@
 +/* ====================================================================
 + * Copyright (c) 2007 The OpenSSL Project.  All rights reserved.
@@ -9059,9 +8248,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/cavs/fips_utl.h.fips openssl-1.0.1-beta
 +#endif
 +    }
 +
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_aes_selftest.c.fips openssl-1.0.1-beta3/crypto/fips/fips_aes_selftest.c
---- openssl-1.0.1-beta3/crypto/fips/fips_aes_selftest.c.fips   2012-02-29 10:33:02.793294889 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_aes_selftest.c        2012-02-29 10:33:02.793294889 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_aes_selftest.c.fips openssl-1.0.1b/crypto/fips/fips_aes_selftest.c
+--- openssl-1.0.1b/crypto/fips/fips_aes_selftest.c.fips        2012-04-26 18:00:51.401769321 +0200
++++ openssl-1.0.1b/crypto/fips/fips_aes_selftest.c     2012-04-26 18:00:51.401769321 +0200
 @@ -0,0 +1,359 @@
 +/* ====================================================================
 + * Copyright (c) 2003 The OpenSSL Project.  All rights reserved.
@@ -9422,9 +8611,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_aes_selftest.c.fips openssl-1.0.1-
 +      }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips.c.fips openssl-1.0.1-beta3/crypto/fips/fips.c
---- openssl-1.0.1-beta3/crypto/fips/fips.c.fips        2012-02-29 10:33:02.793294889 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips.c     2012-02-29 10:33:02.793294889 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips.c.fips openssl-1.0.1b/crypto/fips/fips.c
+--- openssl-1.0.1b/crypto/fips/fips.c.fips     2012-04-26 18:00:51.401769321 +0200
++++ openssl-1.0.1b/crypto/fips/fips.c  2012-04-26 18:00:51.401769321 +0200
 @@ -0,0 +1,489 @@
 +/* ====================================================================
 + * Copyright (c) 2003 The OpenSSL Project.  All rights reserved.
@@ -9915,9 +9104,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips.c.fips openssl-1.0.1-beta3/crypto/
 +
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_cmac_selftest.c.fips openssl-1.0.1-beta3/crypto/fips/fips_cmac_selftest.c
---- openssl-1.0.1-beta3/crypto/fips/fips_cmac_selftest.c.fips  2012-02-29 10:33:02.793294889 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_cmac_selftest.c       2012-02-29 10:33:02.793294889 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_cmac_selftest.c.fips openssl-1.0.1b/crypto/fips/fips_cmac_selftest.c
+--- openssl-1.0.1b/crypto/fips/fips_cmac_selftest.c.fips       2012-04-26 18:00:51.401769321 +0200
++++ openssl-1.0.1b/crypto/fips/fips_cmac_selftest.c    2012-04-26 18:00:51.401769321 +0200
 @@ -0,0 +1,161 @@
 +/* ====================================================================
 + * Copyright (c) 2011 The OpenSSL Project.  All rights reserved.
@@ -10080,9 +9269,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_cmac_selftest.c.fips openssl-1.0.1
 +      return rv;
 +      }
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_des_selftest.c.fips openssl-1.0.1-beta3/crypto/fips/fips_des_selftest.c
---- openssl-1.0.1-beta3/crypto/fips/fips_des_selftest.c.fips   2012-02-29 10:33:02.793294889 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_des_selftest.c        2012-02-29 10:33:02.793294889 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_des_selftest.c.fips openssl-1.0.1b/crypto/fips/fips_des_selftest.c
+--- openssl-1.0.1b/crypto/fips/fips_des_selftest.c.fips        2012-04-26 18:00:51.401769321 +0200
++++ openssl-1.0.1b/crypto/fips/fips_des_selftest.c     2012-04-26 18:00:51.401769321 +0200
 @@ -0,0 +1,147 @@
 +/* ====================================================================
 + * Copyright (c) 2003 The OpenSSL Project.  All rights reserved.
@@ -10231,9 +9420,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_des_selftest.c.fips openssl-1.0.1-
 +    return ret;
 +    }
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_ctr.c.fips openssl-1.0.1-beta3/crypto/fips/fips_drbg_ctr.c
---- openssl-1.0.1-beta3/crypto/fips/fips_drbg_ctr.c.fips       2012-02-29 10:33:02.793294889 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_drbg_ctr.c    2012-02-29 10:33:02.793294889 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_drbg_ctr.c.fips openssl-1.0.1b/crypto/fips/fips_drbg_ctr.c
+--- openssl-1.0.1b/crypto/fips/fips_drbg_ctr.c.fips    2012-04-26 18:00:51.401769321 +0200
++++ openssl-1.0.1b/crypto/fips/fips_drbg_ctr.c 2012-04-26 18:00:51.402769343 +0200
 @@ -0,0 +1,436 @@
 +/* fips/rand/fips_drbg_ctr.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -10671,9 +9860,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_ctr.c.fips openssl-1.0.1-beta
 +
 +      return 1;
 +      }
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_hash.c.fips openssl-1.0.1-beta3/crypto/fips/fips_drbg_hash.c
---- openssl-1.0.1-beta3/crypto/fips/fips_drbg_hash.c.fips      2012-02-29 10:33:02.794294898 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_drbg_hash.c   2012-02-29 10:33:02.794294898 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_drbg_hash.c.fips openssl-1.0.1b/crypto/fips/fips_drbg_hash.c
+--- openssl-1.0.1b/crypto/fips/fips_drbg_hash.c.fips   2012-04-26 18:00:51.402769343 +0200
++++ openssl-1.0.1b/crypto/fips/fips_drbg_hash.c        2012-04-26 18:00:51.402769343 +0200
 @@ -0,0 +1,378 @@
 +/* fips/rand/fips_drbg_hash.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -11053,9 +10242,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_hash.c.fips openssl-1.0.1-bet
 +
 +      return 1;
 +      }
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_hmac.c.fips openssl-1.0.1-beta3/crypto/fips/fips_drbg_hmac.c
---- openssl-1.0.1-beta3/crypto/fips/fips_drbg_hmac.c.fips      2012-02-29 10:33:02.794294898 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_drbg_hmac.c   2012-02-29 10:33:02.794294898 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_drbg_hmac.c.fips openssl-1.0.1b/crypto/fips/fips_drbg_hmac.c
+--- openssl-1.0.1b/crypto/fips/fips_drbg_hmac.c.fips   2012-04-26 18:00:51.402769343 +0200
++++ openssl-1.0.1b/crypto/fips/fips_drbg_hmac.c        2012-04-26 18:00:51.402769343 +0200
 @@ -0,0 +1,281 @@
 +/* fips/rand/fips_drbg_hmac.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -11338,10 +10527,10 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_hmac.c.fips openssl-1.0.1-bet
 +
 +      return 1;
 +      }
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_lib.c.fips openssl-1.0.1-beta3/crypto/fips/fips_drbg_lib.c
---- openssl-1.0.1-beta3/crypto/fips/fips_drbg_lib.c.fips       2012-02-29 10:33:02.794294898 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_drbg_lib.c    2012-02-29 10:33:02.794294898 +0100
-@@ -0,0 +1,576 @@
+diff -up openssl-1.0.1b/crypto/fips/fips_drbg_lib.c.fips openssl-1.0.1b/crypto/fips/fips_drbg_lib.c
+--- openssl-1.0.1b/crypto/fips/fips_drbg_lib.c.fips    2012-04-26 18:00:51.402769343 +0200
++++ openssl-1.0.1b/crypto/fips/fips_drbg_lib.c 2012-04-26 18:00:51.402769343 +0200
+@@ -0,0 +1,578 @@
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 + * project.
 + */
@@ -11501,6 +10690,8 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_lib.c.fips openssl-1.0.1-beta
 +              return dctx->get_entropy(dctx, pout, entropy, min_len, max_len);
 +      rv = dctx->get_entropy(dctx, &tout, entropy + bl,
 +                              min_len + bl, max_len + bl);
++      if (tout == NULL)
++              return 0;
 +      *pout = tout + bl;
 +      if (rv < (min_len + bl) || (rv % bl))
 +              return 0;
@@ -11918,9 +11109,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_lib.c.fips openssl-1.0.1-beta
 +      memcpy(dctx->lb, out, dctx->blocklength);
 +      return 1;
 +      }
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_rand.c.fips openssl-1.0.1-beta3/crypto/fips/fips_drbg_rand.c
---- openssl-1.0.1-beta3/crypto/fips/fips_drbg_rand.c.fips      2012-02-29 10:33:02.794294898 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_drbg_rand.c   2012-02-29 10:33:02.794294898 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_drbg_rand.c.fips openssl-1.0.1b/crypto/fips/fips_drbg_rand.c
+--- openssl-1.0.1b/crypto/fips/fips_drbg_rand.c.fips   2012-04-26 18:00:51.403769365 +0200
++++ openssl-1.0.1b/crypto/fips/fips_drbg_rand.c        2012-04-26 18:00:51.403769365 +0200
 @@ -0,0 +1,172 @@
 +/* fips/rand/fips_drbg_rand.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -12094,9 +11285,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_rand.c.fips openssl-1.0.1-bet
 +      return &rand_drbg_meth;
 +      }
 +
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_selftest.c.fips openssl-1.0.1-beta3/crypto/fips/fips_drbg_selftest.c
---- openssl-1.0.1-beta3/crypto/fips/fips_drbg_selftest.c.fips  2012-02-29 10:33:02.795294907 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_drbg_selftest.c       2012-02-29 10:33:02.795294907 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_drbg_selftest.c.fips openssl-1.0.1b/crypto/fips/fips_drbg_selftest.c
+--- openssl-1.0.1b/crypto/fips/fips_drbg_selftest.c.fips       2012-04-26 18:00:51.403769365 +0200
++++ openssl-1.0.1b/crypto/fips/fips_drbg_selftest.c    2012-04-26 18:00:51.403769365 +0200
 @@ -0,0 +1,862 @@
 +/* fips/rand/fips_drbg_selftest.c */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -12960,9 +12151,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_selftest.c.fips openssl-1.0.1
 +      return rv;
 +      }
 +
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_selftest.h.fips openssl-1.0.1-beta3/crypto/fips/fips_drbg_selftest.h
---- openssl-1.0.1-beta3/crypto/fips/fips_drbg_selftest.h.fips  2012-02-29 10:33:02.796294915 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_drbg_selftest.h       2012-02-29 10:33:02.796294915 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_drbg_selftest.h.fips openssl-1.0.1b/crypto/fips/fips_drbg_selftest.h
+--- openssl-1.0.1b/crypto/fips/fips_drbg_selftest.h.fips       2012-04-26 18:00:51.404769387 +0200
++++ openssl-1.0.1b/crypto/fips/fips_drbg_selftest.h    2012-04-26 18:00:51.404769387 +0200
 @@ -0,0 +1,2335 @@
 +/* ====================================================================
 + * Copyright (c) 2011 The OpenSSL Project.  All rights reserved.
@@ -15299,9 +14490,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_drbg_selftest.h.fips openssl-1.0.1
 +      0xc2,0xd6,0xfd,0xa5
 +      };
 +
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_dsa_selftest.c.fips openssl-1.0.1-beta3/crypto/fips/fips_dsa_selftest.c
---- openssl-1.0.1-beta3/crypto/fips/fips_dsa_selftest.c.fips   2012-02-29 10:33:02.796294915 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_dsa_selftest.c        2012-02-29 10:33:02.796294915 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_dsa_selftest.c.fips openssl-1.0.1b/crypto/fips/fips_dsa_selftest.c
+--- openssl-1.0.1b/crypto/fips/fips_dsa_selftest.c.fips        2012-04-26 18:00:51.404769387 +0200
++++ openssl-1.0.1b/crypto/fips/fips_dsa_selftest.c     2012-04-26 18:00:51.404769387 +0200
 @@ -0,0 +1,193 @@
 +/* ====================================================================
 + * Copyright (c) 2011 The OpenSSL Project.  All rights reserved.
@@ -15496,9 +14687,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_dsa_selftest.c.fips openssl-1.0.1-
 +      return ret;
 +      }
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_enc.c.fips openssl-1.0.1-beta3/crypto/fips/fips_enc.c
---- openssl-1.0.1-beta3/crypto/fips/fips_enc.c.fips    2012-02-29 10:33:02.796294915 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_enc.c 2012-02-29 10:33:02.796294915 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_enc.c.fips openssl-1.0.1b/crypto/fips/fips_enc.c
+--- openssl-1.0.1b/crypto/fips/fips_enc.c.fips 2012-04-26 18:00:51.405769408 +0200
++++ openssl-1.0.1b/crypto/fips/fips_enc.c      2012-04-26 18:00:51.405769408 +0200
 @@ -0,0 +1,191 @@
 +/* fipe/evp/fips_enc.c */
 +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
@@ -15691,9 +14882,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_enc.c.fips openssl-1.0.1-beta3/cry
 +              }
 +      }
 +
-diff -up openssl-1.0.1-beta3/crypto/fips/fips.h.fips openssl-1.0.1-beta3/crypto/fips/fips.h
---- openssl-1.0.1-beta3/crypto/fips/fips.h.fips        2012-02-29 10:33:02.797294923 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips.h     2012-02-29 10:33:02.797294923 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips.h.fips openssl-1.0.1b/crypto/fips/fips.h
+--- openssl-1.0.1b/crypto/fips/fips.h.fips     2012-04-26 18:00:51.405769408 +0200
++++ openssl-1.0.1b/crypto/fips/fips.h  2012-04-26 18:00:51.405769408 +0200
 @@ -0,0 +1,279 @@
 +/* ====================================================================
 + * Copyright (c) 2003 The OpenSSL Project.  All rights reserved.
@@ -15974,9 +15165,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips.h.fips openssl-1.0.1-beta3/crypto/
 +}
 +#endif
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_hmac_selftest.c.fips openssl-1.0.1-beta3/crypto/fips/fips_hmac_selftest.c
---- openssl-1.0.1-beta3/crypto/fips/fips_hmac_selftest.c.fips  2012-02-29 10:33:02.797294923 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_hmac_selftest.c       2012-02-29 10:33:02.797294923 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_hmac_selftest.c.fips openssl-1.0.1b/crypto/fips/fips_hmac_selftest.c
+--- openssl-1.0.1b/crypto/fips/fips_hmac_selftest.c.fips       2012-04-26 18:00:51.405769408 +0200
++++ openssl-1.0.1b/crypto/fips/fips_hmac_selftest.c    2012-04-26 18:00:51.405769408 +0200
 @@ -0,0 +1,137 @@
 +/* ====================================================================
 + * Copyright (c) 2005 The OpenSSL Project.  All rights reserved.
@@ -16115,9 +15306,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_hmac_selftest.c.fips openssl-1.0.1
 +    return 1;
 +    }
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_locl.h.fips openssl-1.0.1-beta3/crypto/fips/fips_locl.h
---- openssl-1.0.1-beta3/crypto/fips/fips_locl.h.fips   2012-02-29 10:33:02.797294923 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_locl.h        2012-02-29 10:33:02.797294923 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_locl.h.fips openssl-1.0.1b/crypto/fips/fips_locl.h
+--- openssl-1.0.1b/crypto/fips/fips_locl.h.fips        2012-04-26 18:00:51.405769408 +0200
++++ openssl-1.0.1b/crypto/fips/fips_locl.h     2012-04-26 18:00:51.405769408 +0200
 @@ -0,0 +1,71 @@
 +/* ====================================================================
 + * Copyright (c) 2011 The OpenSSL Project.  All rights reserved.
@@ -16190,9 +15381,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_locl.h.fips openssl-1.0.1-beta3/cr
 +}
 +#endif
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_md.c.fips openssl-1.0.1-beta3/crypto/fips/fips_md.c
---- openssl-1.0.1-beta3/crypto/fips/fips_md.c.fips     2012-02-29 10:33:02.797294923 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_md.c  2012-02-29 10:33:02.797294923 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_md.c.fips openssl-1.0.1b/crypto/fips/fips_md.c
+--- openssl-1.0.1b/crypto/fips/fips_md.c.fips  2012-04-26 18:00:51.405769408 +0200
++++ openssl-1.0.1b/crypto/fips/fips_md.c       2012-04-26 18:00:51.405769408 +0200
 @@ -0,0 +1,145 @@
 +/* fips/evp/fips_md.c */
 +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
@@ -16339,9 +15530,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_md.c.fips openssl-1.0.1-beta3/cryp
 +              return NULL;
 +              }
 +      }
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_post.c.fips openssl-1.0.1-beta3/crypto/fips/fips_post.c
---- openssl-1.0.1-beta3/crypto/fips/fips_post.c.fips   2012-02-29 10:33:02.797294923 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_post.c        2012-02-29 10:33:02.797294923 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_post.c.fips openssl-1.0.1b/crypto/fips/fips_post.c
+--- openssl-1.0.1b/crypto/fips/fips_post.c.fips        2012-04-26 18:00:51.406769429 +0200
++++ openssl-1.0.1b/crypto/fips/fips_post.c     2012-04-26 18:00:51.406769429 +0200
 @@ -0,0 +1,205 @@
 +/* ====================================================================
 + * Copyright (c) 2011 The OpenSSL Project.  All rights reserved.
@@ -16548,9 +15739,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_post.c.fips openssl-1.0.1-beta3/cr
 +      return 1;
 +      }
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_rand.c.fips openssl-1.0.1-beta3/crypto/fips/fips_rand.c
---- openssl-1.0.1-beta3/crypto/fips/fips_rand.c.fips   2012-02-29 10:33:02.798294931 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_rand.c        2012-02-29 10:33:02.798294931 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_rand.c.fips openssl-1.0.1b/crypto/fips/fips_rand.c
+--- openssl-1.0.1b/crypto/fips/fips_rand.c.fips        2012-04-26 18:00:51.406769429 +0200
++++ openssl-1.0.1b/crypto/fips/fips_rand.c     2012-04-26 18:00:51.406769429 +0200
 @@ -0,0 +1,457 @@
 +/* ====================================================================
 + * Copyright (c) 2007 The OpenSSL Project.  All rights reserved.
@@ -17009,9 +16200,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_rand.c.fips openssl-1.0.1-beta3/cr
 +}
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_rand.h.fips openssl-1.0.1-beta3/crypto/fips/fips_rand.h
---- openssl-1.0.1-beta3/crypto/fips/fips_rand.h.fips   2012-02-29 10:33:02.798294931 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_rand.h        2012-02-29 10:33:02.798294931 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_rand.h.fips openssl-1.0.1b/crypto/fips/fips_rand.h
+--- openssl-1.0.1b/crypto/fips/fips_rand.h.fips        2012-04-26 18:00:51.406769429 +0200
++++ openssl-1.0.1b/crypto/fips/fips_rand.h     2012-04-26 18:00:51.406769429 +0200
 @@ -0,0 +1,145 @@
 +/* ====================================================================
 + * Copyright (c) 2003 The OpenSSL Project.  All rights reserved.
@@ -17158,9 +16349,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_rand.h.fips openssl-1.0.1-beta3/cr
 +#endif
 +#endif
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_rand_lcl.h.fips openssl-1.0.1-beta3/crypto/fips/fips_rand_lcl.h
---- openssl-1.0.1-beta3/crypto/fips/fips_rand_lcl.h.fips       2012-02-29 10:33:02.798294931 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_rand_lcl.h    2012-02-29 10:33:02.798294931 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_rand_lcl.h.fips openssl-1.0.1b/crypto/fips/fips_rand_lcl.h
+--- openssl-1.0.1b/crypto/fips/fips_rand_lcl.h.fips    2012-04-26 18:00:51.406769429 +0200
++++ openssl-1.0.1b/crypto/fips/fips_rand_lcl.h 2012-04-26 18:00:51.406769429 +0200
 @@ -0,0 +1,219 @@
 +/* fips/rand/fips_rand_lcl.h */
 +/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
@@ -17381,9 +16572,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_rand_lcl.h.fips openssl-1.0.1-beta
 +#define FIPS_digestupdate EVP_DigestUpdate
 +#define FIPS_digestfinal EVP_DigestFinal
 +#define M_EVP_MD_size EVP_MD_size
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_rand_lib.c.fips openssl-1.0.1-beta3/crypto/fips/fips_rand_lib.c
---- openssl-1.0.1-beta3/crypto/fips/fips_rand_lib.c.fips       2012-02-29 10:33:02.798294931 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_rand_lib.c    2012-02-29 10:33:02.798294931 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_rand_lib.c.fips openssl-1.0.1b/crypto/fips/fips_rand_lib.c
+--- openssl-1.0.1b/crypto/fips/fips_rand_lib.c.fips    2012-04-26 18:00:51.407769451 +0200
++++ openssl-1.0.1b/crypto/fips/fips_rand_lib.c 2012-04-26 18:00:51.407769451 +0200
 @@ -0,0 +1,191 @@
 +/* ====================================================================
 + * Copyright (c) 2011 The OpenSSL Project.  All rights reserved.
@@ -17576,9 +16767,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_rand_lib.c.fips openssl-1.0.1-beta
 +              }
 +      return 0;
 +      }
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_rand_selftest.c.fips openssl-1.0.1-beta3/crypto/fips/fips_rand_selftest.c
---- openssl-1.0.1-beta3/crypto/fips/fips_rand_selftest.c.fips  2012-02-29 10:33:02.798294931 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_rand_selftest.c       2012-02-29 10:33:02.798294931 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_rand_selftest.c.fips openssl-1.0.1b/crypto/fips/fips_rand_selftest.c
+--- openssl-1.0.1b/crypto/fips/fips_rand_selftest.c.fips       2012-04-26 18:00:51.407769451 +0200
++++ openssl-1.0.1b/crypto/fips/fips_rand_selftest.c    2012-04-26 18:00:51.407769451 +0200
 @@ -0,0 +1,183 @@
 +/* ====================================================================
 + * Copyright (c) 2003 The OpenSSL Project.  All rights reserved.
@@ -17763,9 +16954,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_rand_selftest.c.fips openssl-1.0.1
 +      }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_randtest.c.fips openssl-1.0.1-beta3/crypto/fips/fips_randtest.c
---- openssl-1.0.1-beta3/crypto/fips/fips_randtest.c.fips       2012-02-29 10:33:02.798294931 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_randtest.c    2012-02-29 10:33:02.799294939 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_randtest.c.fips openssl-1.0.1b/crypto/fips/fips_randtest.c
+--- openssl-1.0.1b/crypto/fips/fips_randtest.c.fips    2012-04-26 18:00:51.407769451 +0200
++++ openssl-1.0.1b/crypto/fips/fips_randtest.c 2012-04-26 18:00:51.407769451 +0200
 @@ -0,0 +1,250 @@
 +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 + * All rights reserved.
@@ -18017,9 +17208,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_randtest.c.fips openssl-1.0.1-beta
 +      }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_rsa_selftest.c.fips openssl-1.0.1-beta3/crypto/fips/fips_rsa_selftest.c
---- openssl-1.0.1-beta3/crypto/fips/fips_rsa_selftest.c.fips   2012-02-29 10:33:02.799294939 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_rsa_selftest.c        2012-02-29 10:33:02.799294939 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_rsa_selftest.c.fips openssl-1.0.1b/crypto/fips/fips_rsa_selftest.c
+--- openssl-1.0.1b/crypto/fips/fips_rsa_selftest.c.fips        2012-04-26 18:00:51.407769451 +0200
++++ openssl-1.0.1b/crypto/fips/fips_rsa_selftest.c     2012-04-26 18:00:51.407769451 +0200
 @@ -0,0 +1,444 @@
 +/* ====================================================================
 + * Copyright (c) 2003-2007 The OpenSSL Project.  All rights reserved.
@@ -18465,9 +17656,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_rsa_selftest.c.fips openssl-1.0.1-
 +      }
 +
 +#endif /* def OPENSSL_FIPS */
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_rsa_x931g.c.fips openssl-1.0.1-beta3/crypto/fips/fips_rsa_x931g.c
---- openssl-1.0.1-beta3/crypto/fips/fips_rsa_x931g.c.fips      2012-02-29 10:33:02.799294939 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_rsa_x931g.c   2012-02-29 10:33:02.799294939 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_rsa_x931g.c.fips openssl-1.0.1b/crypto/fips/fips_rsa_x931g.c
+--- openssl-1.0.1b/crypto/fips/fips_rsa_x931g.c.fips   2012-04-26 18:00:51.408769474 +0200
++++ openssl-1.0.1b/crypto/fips/fips_rsa_x931g.c        2012-04-26 18:00:51.408769474 +0200
 @@ -0,0 +1,282 @@
 +/* crypto/rsa/rsa_gen.c */
 +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
@@ -18751,9 +17942,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_rsa_x931g.c.fips openssl-1.0.1-bet
 +      return 0;
 +
 +      }
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_sha_selftest.c.fips openssl-1.0.1-beta3/crypto/fips/fips_sha_selftest.c
---- openssl-1.0.1-beta3/crypto/fips/fips_sha_selftest.c.fips   2012-02-29 10:33:02.799294939 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_sha_selftest.c        2012-02-29 10:33:02.799294939 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_sha_selftest.c.fips openssl-1.0.1b/crypto/fips/fips_sha_selftest.c
+--- openssl-1.0.1b/crypto/fips/fips_sha_selftest.c.fips        2012-04-26 18:00:51.408769474 +0200
++++ openssl-1.0.1b/crypto/fips/fips_sha_selftest.c     2012-04-26 18:00:51.408769474 +0200
 @@ -0,0 +1,140 @@
 +/* ====================================================================
 + * Copyright (c) 2003 The OpenSSL Project.  All rights reserved.
@@ -18895,9 +18086,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_sha_selftest.c.fips openssl-1.0.1-
 +      }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_standalone_hmac.c.fips openssl-1.0.1-beta3/crypto/fips/fips_standalone_hmac.c
---- openssl-1.0.1-beta3/crypto/fips/fips_standalone_hmac.c.fips        2012-02-29 10:33:02.799294939 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_standalone_hmac.c     2012-02-29 10:33:02.799294939 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_standalone_hmac.c.fips openssl-1.0.1b/crypto/fips/fips_standalone_hmac.c
+--- openssl-1.0.1b/crypto/fips/fips_standalone_hmac.c.fips     2012-04-26 18:00:51.408769474 +0200
++++ openssl-1.0.1b/crypto/fips/fips_standalone_hmac.c  2012-04-26 18:00:51.408769474 +0200
 @@ -0,0 +1,180 @@
 +/* ====================================================================
 + * Copyright (c) 2003 The OpenSSL Project.  All rights reserved.
@@ -19079,9 +18270,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_standalone_hmac.c.fips openssl-1.0
 +    }
 +
 +
-diff -up openssl-1.0.1-beta3/crypto/fips/fips_test_suite.c.fips openssl-1.0.1-beta3/crypto/fips/fips_test_suite.c
---- openssl-1.0.1-beta3/crypto/fips/fips_test_suite.c.fips     2012-02-29 10:33:02.800294947 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/fips_test_suite.c  2012-02-29 10:33:02.800294947 +0100
+diff -up openssl-1.0.1b/crypto/fips/fips_test_suite.c.fips openssl-1.0.1b/crypto/fips/fips_test_suite.c
+--- openssl-1.0.1b/crypto/fips/fips_test_suite.c.fips  2012-04-26 18:00:51.408769474 +0200
++++ openssl-1.0.1b/crypto/fips/fips_test_suite.c       2012-04-26 18:00:51.408769474 +0200
 @@ -0,0 +1,588 @@
 +/* ====================================================================
 + * Copyright (c) 2003 The OpenSSL Project.  All rights reserved.
@@ -19671,9 +18862,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/fips_test_suite.c.fips openssl-1.0.1-be
 +    }
 +
 +#endif
-diff -up openssl-1.0.1-beta3/crypto/fips/Makefile.fips openssl-1.0.1-beta3/crypto/fips/Makefile
---- openssl-1.0.1-beta3/crypto/fips/Makefile.fips      2012-02-29 10:33:02.800294947 +0100
-+++ openssl-1.0.1-beta3/crypto/fips/Makefile   2012-02-29 10:33:02.800294947 +0100
+diff -up openssl-1.0.1b/crypto/fips/Makefile.fips openssl-1.0.1b/crypto/fips/Makefile
+--- openssl-1.0.1b/crypto/fips/Makefile.fips   2012-04-26 18:00:51.409769496 +0200
++++ openssl-1.0.1b/crypto/fips/Makefile        2012-04-26 18:00:51.409769496 +0200
 @@ -0,0 +1,340 @@
 +#
 +# OpenSSL/crypto/fips/Makefile
@@ -20015,9 +19206,9 @@ diff -up openssl-1.0.1-beta3/crypto/fips/Makefile.fips openssl-1.0.1-beta3/crypt
 +fips_sha_selftest.o: ../../include/openssl/safestack.h
 +fips_sha_selftest.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 +fips_sha_selftest.o: ../../include/openssl/symhacks.h fips_sha_selftest.c
-diff -up openssl-1.0.1-beta3/crypto/hmac/hmac.c.fips openssl-1.0.1-beta3/crypto/hmac/hmac.c
---- openssl-1.0.1-beta3/crypto/hmac/hmac.c.fips        2011-06-12 17:07:26.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/hmac/hmac.c     2012-02-29 10:33:02.800294947 +0100
+diff -up openssl-1.0.1b/crypto/hmac/hmac.c.fips openssl-1.0.1b/crypto/hmac/hmac.c
+--- openssl-1.0.1b/crypto/hmac/hmac.c.fips     2011-06-12 17:07:26.000000000 +0200
++++ openssl-1.0.1b/crypto/hmac/hmac.c  2012-04-26 18:00:51.409769496 +0200
 @@ -81,11 +81,6 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const vo
                        EVPerr(EVP_F_HMAC_INIT_EX, EVP_R_DISABLED_FOR_FIPS);
                        return 0;
@@ -20080,9 +19271,9 @@ diff -up openssl-1.0.1-beta3/crypto/hmac/hmac.c.fips openssl-1.0.1-beta3/crypto/
        EVP_MD_CTX_cleanup(&ctx->i_ctx);
        EVP_MD_CTX_cleanup(&ctx->o_ctx);
        EVP_MD_CTX_cleanup(&ctx->md_ctx);
-diff -up openssl-1.0.1-beta3/crypto/md2/md2_dgst.c.fips openssl-1.0.1-beta3/crypto/md2/md2_dgst.c
---- openssl-1.0.1-beta3/crypto/md2/md2_dgst.c.fips     2011-06-01 15:39:43.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/md2/md2_dgst.c  2012-02-29 10:33:02.800294947 +0100
+diff -up openssl-1.0.1b/crypto/md2/md2_dgst.c.fips openssl-1.0.1b/crypto/md2/md2_dgst.c
+--- openssl-1.0.1b/crypto/md2/md2_dgst.c.fips  2011-06-01 15:39:43.000000000 +0200
++++ openssl-1.0.1b/crypto/md2/md2_dgst.c       2012-04-26 18:00:51.409769496 +0200
 @@ -62,6 +62,11 @@
  #include <openssl/md2.h>
  #include <openssl/opensslv.h>
@@ -20104,9 +19295,9 @@ diff -up openssl-1.0.1-beta3/crypto/md2/md2_dgst.c.fips openssl-1.0.1-beta3/cryp
        {
        c->num=0;
        memset(c->state,0,sizeof c->state);
-diff -up openssl-1.0.1-beta3/crypto/md4/md4_dgst.c.fips openssl-1.0.1-beta3/crypto/md4/md4_dgst.c
---- openssl-1.0.1-beta3/crypto/md4/md4_dgst.c.fips     2011-06-01 15:39:43.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/md4/md4_dgst.c  2012-02-29 10:33:02.801294956 +0100
+diff -up openssl-1.0.1b/crypto/md4/md4_dgst.c.fips openssl-1.0.1b/crypto/md4/md4_dgst.c
+--- openssl-1.0.1b/crypto/md4/md4_dgst.c.fips  2011-06-01 15:39:43.000000000 +0200
++++ openssl-1.0.1b/crypto/md4/md4_dgst.c       2012-04-26 18:00:51.409769496 +0200
 @@ -71,7 +71,7 @@ const char MD4_version[]="MD4" OPENSSL_V
  #define INIT_DATA_C (unsigned long)0x98badcfeL
  #define INIT_DATA_D (unsigned long)0x10325476L
@@ -20116,9 +19307,9 @@ diff -up openssl-1.0.1-beta3/crypto/md4/md4_dgst.c.fips openssl-1.0.1-beta3/cryp
        {
        memset (c,0,sizeof(*c));
        c->A=INIT_DATA_A;
-diff -up openssl-1.0.1-beta3/crypto/md5/md5_dgst.c.fips openssl-1.0.1-beta3/crypto/md5/md5_dgst.c
---- openssl-1.0.1-beta3/crypto/md5/md5_dgst.c.fips     2011-06-01 15:39:43.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/md5/md5_dgst.c  2012-02-29 10:33:02.801294956 +0100
+diff -up openssl-1.0.1b/crypto/md5/md5_dgst.c.fips openssl-1.0.1b/crypto/md5/md5_dgst.c
+--- openssl-1.0.1b/crypto/md5/md5_dgst.c.fips  2011-06-01 15:39:43.000000000 +0200
++++ openssl-1.0.1b/crypto/md5/md5_dgst.c       2012-04-26 18:00:51.409769496 +0200
 @@ -71,7 +71,7 @@ const char MD5_version[]="MD5" OPENSSL_V
  #define INIT_DATA_C (unsigned long)0x98badcfeL
  #define INIT_DATA_D (unsigned long)0x10325476L
@@ -20128,9 +19319,9 @@ diff -up openssl-1.0.1-beta3/crypto/md5/md5_dgst.c.fips openssl-1.0.1-beta3/cryp
        {
        memset (c,0,sizeof(*c));
        c->A=INIT_DATA_A;
-diff -up openssl-1.0.1-beta3/crypto/mdc2/mdc2dgst.c.fips openssl-1.0.1-beta3/crypto/mdc2/mdc2dgst.c
---- openssl-1.0.1-beta3/crypto/mdc2/mdc2dgst.c.fips    2011-06-01 15:39:44.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/mdc2/mdc2dgst.c 2012-02-29 10:33:02.801294956 +0100
+diff -up openssl-1.0.1b/crypto/mdc2/mdc2dgst.c.fips openssl-1.0.1b/crypto/mdc2/mdc2dgst.c
+--- openssl-1.0.1b/crypto/mdc2/mdc2dgst.c.fips 2011-06-01 15:39:44.000000000 +0200
++++ openssl-1.0.1b/crypto/mdc2/mdc2dgst.c      2012-04-26 18:00:51.691775656 +0200
 @@ -76,7 +76,7 @@
                        *((c)++)=(unsigned char)(((l)>>24L)&0xff))
  
@@ -20140,9 +19331,9 @@ diff -up openssl-1.0.1-beta3/crypto/mdc2/mdc2dgst.c.fips openssl-1.0.1-beta3/cry
        {
        c->num=0;
        c->pad_type=1;
-diff -up openssl-1.0.1-beta3/crypto/o_init.c.fips openssl-1.0.1-beta3/crypto/o_init.c
---- openssl-1.0.1-beta3/crypto/o_init.c.fips   2011-05-26 16:19:19.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/o_init.c        2012-02-29 10:33:02.801294956 +0100
+diff -up openssl-1.0.1b/crypto/o_init.c.fips openssl-1.0.1b/crypto/o_init.c
+--- openssl-1.0.1b/crypto/o_init.c.fips        2011-05-26 16:19:19.000000000 +0200
++++ openssl-1.0.1b/crypto/o_init.c     2012-04-26 18:00:51.696775766 +0200
 @@ -55,28 +55,63 @@
  #include <e_os.h>
  #include <openssl/err.h>
@@ -20211,9 +19402,9 @@ diff -up openssl-1.0.1-beta3/crypto/o_init.c.fips openssl-1.0.1-beta3/crypto/o_i
 +      {
 +      OPENSSL_init_library();
 +      }
-diff -up openssl-1.0.1-beta3/crypto/opensslconf.h.in.fips openssl-1.0.1-beta3/crypto/opensslconf.h.in
---- openssl-1.0.1-beta3/crypto/opensslconf.h.in.fips   2005-12-16 11:37:23.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/opensslconf.h.in        2012-02-29 10:33:02.801294956 +0100
+diff -up openssl-1.0.1b/crypto/opensslconf.h.in.fips openssl-1.0.1b/crypto/opensslconf.h.in
+--- openssl-1.0.1b/crypto/opensslconf.h.in.fips        2005-12-16 11:37:23.000000000 +0100
++++ openssl-1.0.1b/crypto/opensslconf.h.in     2012-04-26 18:00:51.702775897 +0200
 @@ -1,5 +1,20 @@
  /* crypto/opensslconf.h.in */
  
@@ -20235,9 +19426,9 @@ diff -up openssl-1.0.1-beta3/crypto/opensslconf.h.in.fips openssl-1.0.1-beta3/cr
  /* Generate 80386 code? */
  #undef I386_ONLY
  
-diff -up openssl-1.0.1-beta3/crypto/pkcs12/p12_crt.c.fips openssl-1.0.1-beta3/crypto/pkcs12/p12_crt.c
---- openssl-1.0.1-beta3/crypto/pkcs12/p12_crt.c.fips   2009-03-09 14:08:04.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/pkcs12/p12_crt.c        2012-02-29 10:33:02.801294956 +0100
+diff -up openssl-1.0.1b/crypto/pkcs12/p12_crt.c.fips openssl-1.0.1b/crypto/pkcs12/p12_crt.c
+--- openssl-1.0.1b/crypto/pkcs12/p12_crt.c.fips        2009-03-09 14:08:04.000000000 +0100
++++ openssl-1.0.1b/crypto/pkcs12/p12_crt.c     2012-04-26 18:00:51.708776028 +0200
 @@ -59,6 +59,10 @@
  #include <stdio.h>
  #include "cryptlib.h"
@@ -20264,9 +19455,9 @@ diff -up openssl-1.0.1-beta3/crypto/pkcs12/p12_crt.c.fips openssl-1.0.1-beta3/cr
        if (!nid_key)
                nid_key = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
        if (!iter)
-diff -up openssl-1.0.1-beta3/crypto/rand/md_rand.c.fips openssl-1.0.1-beta3/crypto/rand/md_rand.c
---- openssl-1.0.1-beta3/crypto/rand/md_rand.c.fips     2011-01-26 15:55:23.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/rand/md_rand.c  2012-02-29 10:33:02.801294956 +0100
+diff -up openssl-1.0.1b/crypto/rand/md_rand.c.fips openssl-1.0.1b/crypto/rand/md_rand.c
+--- openssl-1.0.1b/crypto/rand/md_rand.c.fips  2011-01-26 15:55:23.000000000 +0100
++++ openssl-1.0.1b/crypto/rand/md_rand.c       2012-04-26 18:00:51.713776137 +0200
 @@ -389,7 +389,10 @@ static int ssleay_rand_bytes(unsigned ch
        CRYPTO_w_unlock(CRYPTO_LOCK_RAND2);
        crypto_lock_rand = 1;
@@ -20279,9 +19470,9 @@ diff -up openssl-1.0.1-beta3/crypto/rand/md_rand.c.fips openssl-1.0.1-beta3/cryp
                {
                RAND_poll();
                initialized = 1;
-diff -up openssl-1.0.1-beta3/crypto/rand/rand.h.fips openssl-1.0.1-beta3/crypto/rand/rand.h
---- openssl-1.0.1-beta3/crypto/rand/rand.h.fips        2012-02-29 10:33:02.283290504 +0100
-+++ openssl-1.0.1-beta3/crypto/rand/rand.h     2012-02-29 10:33:02.802294965 +0100
+diff -up openssl-1.0.1b/crypto/rand/rand.h.fips openssl-1.0.1b/crypto/rand/rand.h
+--- openssl-1.0.1b/crypto/rand/rand.h.fips     2012-04-26 18:00:50.809756388 +0200
++++ openssl-1.0.1b/crypto/rand/rand.h  2012-04-26 18:00:51.714776159 +0200
 @@ -133,15 +133,33 @@ void ERR_load_RAND_strings(void);
  /* Error codes for the RAND functions. */
  
@@ -20320,9 +19511,9 @@ diff -up openssl-1.0.1-beta3/crypto/rand/rand.h.fips openssl-1.0.1-beta3/crypto/
  
  #ifdef  __cplusplus
  }
-diff -up openssl-1.0.1-beta3/crypto/ripemd/rmd_dgst.c.fips openssl-1.0.1-beta3/crypto/ripemd/rmd_dgst.c
---- openssl-1.0.1-beta3/crypto/ripemd/rmd_dgst.c.fips  2011-06-01 15:39:44.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/ripemd/rmd_dgst.c       2012-02-29 10:33:02.802294965 +0100
+diff -up openssl-1.0.1b/crypto/ripemd/rmd_dgst.c.fips openssl-1.0.1b/crypto/ripemd/rmd_dgst.c
+--- openssl-1.0.1b/crypto/ripemd/rmd_dgst.c.fips       2011-06-01 15:39:44.000000000 +0200
++++ openssl-1.0.1b/crypto/ripemd/rmd_dgst.c    2012-04-26 18:00:51.715776181 +0200
 @@ -70,7 +70,7 @@ const char RMD160_version[]="RIPE-MD160"
       void ripemd160_block(RIPEMD160_CTX *c, unsigned long *p,size_t num);
  #  endif
@@ -20332,9 +19523,9 @@ diff -up openssl-1.0.1-beta3/crypto/ripemd/rmd_dgst.c.fips openssl-1.0.1-beta3/c
        {
        memset (c,0,sizeof(*c));
        c->A=RIPEMD160_A;
-diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_crpt.c.fips openssl-1.0.1-beta3/crypto/rsa/rsa_crpt.c
---- openssl-1.0.1-beta3/crypto/rsa/rsa_crpt.c.fips     2011-06-02 20:22:42.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/rsa/rsa_crpt.c  2012-02-29 10:33:02.802294965 +0100
+diff -up openssl-1.0.1b/crypto/rsa/rsa_crpt.c.fips openssl-1.0.1b/crypto/rsa/rsa_crpt.c
+--- openssl-1.0.1b/crypto/rsa/rsa_crpt.c.fips  2011-06-02 20:22:42.000000000 +0200
++++ openssl-1.0.1b/crypto/rsa/rsa_crpt.c       2012-04-26 18:00:51.715776181 +0200
 @@ -90,10 +90,9 @@ int RSA_private_encrypt(int flen, const
             RSA *rsa, int padding)
        {
@@ -20361,9 +19552,9 @@ diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_crpt.c.fips openssl-1.0.1-beta3/cryp
                return -1;
                }
  #endif
-diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_eay.c.fips openssl-1.0.1-beta3/crypto/rsa/rsa_eay.c
---- openssl-1.0.1-beta3/crypto/rsa/rsa_eay.c.fips      2011-10-19 16:58:59.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/rsa/rsa_eay.c   2012-02-29 10:33:02.802294965 +0100
+diff -up openssl-1.0.1b/crypto/rsa/rsa_eay.c.fips openssl-1.0.1b/crypto/rsa/rsa_eay.c
+--- openssl-1.0.1b/crypto/rsa/rsa_eay.c.fips   2011-10-19 16:58:59.000000000 +0200
++++ openssl-1.0.1b/crypto/rsa/rsa_eay.c        2012-04-26 18:00:51.716776203 +0200
 @@ -114,6 +114,10 @@
  #include <openssl/bn.h>
  #include <openssl/rsa.h>
@@ -20510,9 +19701,9 @@ diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_eay.c.fips openssl-1.0.1-beta3/crypt
        rsa->flags|=RSA_FLAG_CACHE_PUBLIC|RSA_FLAG_CACHE_PRIVATE;
        return(1);
        }
-diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_err.c.fips openssl-1.0.1-beta3/crypto/rsa/rsa_err.c
---- openssl-1.0.1-beta3/crypto/rsa/rsa_err.c.fips      2011-10-10 01:13:50.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/rsa/rsa_err.c   2012-02-29 10:33:02.802294965 +0100
+diff -up openssl-1.0.1b/crypto/rsa/rsa_err.c.fips openssl-1.0.1b/crypto/rsa/rsa_err.c
+--- openssl-1.0.1b/crypto/rsa/rsa_err.c.fips   2011-10-10 01:13:50.000000000 +0200
++++ openssl-1.0.1b/crypto/rsa/rsa_err.c        2012-04-26 18:00:51.717776225 +0200
 @@ -121,6 +121,8 @@ static ERR_STRING_DATA RSA_str_functs[]=
  {ERR_FUNC(RSA_F_RSA_PUBLIC_ENCRYPT),  "RSA_public_encrypt"},
  {ERR_FUNC(RSA_F_RSA_PUB_DECODE),      "RSA_PUB_DECODE"},
@@ -20522,9 +19713,9 @@ diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_err.c.fips openssl-1.0.1-beta3/crypt
  {ERR_FUNC(RSA_F_RSA_SIGN),    "RSA_sign"},
  {ERR_FUNC(RSA_F_RSA_SIGN_ASN1_OCTET_STRING),  "RSA_sign_ASN1_OCTET_STRING"},
  {ERR_FUNC(RSA_F_RSA_VERIFY),  "RSA_verify"},
-diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_gen.c.fips openssl-1.0.1-beta3/crypto/rsa/rsa_gen.c
---- openssl-1.0.1-beta3/crypto/rsa/rsa_gen.c.fips      2011-06-09 15:18:07.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/rsa/rsa_gen.c   2012-02-29 10:33:02.803294974 +0100
+diff -up openssl-1.0.1b/crypto/rsa/rsa_gen.c.fips openssl-1.0.1b/crypto/rsa/rsa_gen.c
+--- openssl-1.0.1b/crypto/rsa/rsa_gen.c.fips   2011-06-09 15:18:07.000000000 +0200
++++ openssl-1.0.1b/crypto/rsa/rsa_gen.c        2012-04-26 18:00:51.718776246 +0200
 @@ -69,6 +69,78 @@
  #include <openssl/rsa.h>
  #ifdef OPENSSL_FIPS
@@ -20666,9 +19857,9 @@ diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_gen.c.fips openssl-1.0.1-beta3/crypt
        ok=1;
  err:
        if (ok == -1)
-diff -up openssl-1.0.1-beta3/crypto/rsa/rsa.h.fips openssl-1.0.1-beta3/crypto/rsa/rsa.h
---- openssl-1.0.1-beta3/crypto/rsa/rsa.h.fips  2012-02-29 10:33:02.577293030 +0100
-+++ openssl-1.0.1-beta3/crypto/rsa/rsa.h       2012-02-29 10:33:02.803294974 +0100
+diff -up openssl-1.0.1b/crypto/rsa/rsa.h.fips openssl-1.0.1b/crypto/rsa/rsa.h
+--- openssl-1.0.1b/crypto/rsa/rsa.h.fips       2012-04-26 18:00:51.140763619 +0200
++++ openssl-1.0.1b/crypto/rsa/rsa.h    2012-04-26 18:00:51.718776246 +0200
 @@ -164,6 +164,8 @@ struct rsa_st
  # define OPENSSL_RSA_MAX_MODULUS_BITS 16384
  #endif
@@ -20753,9 +19944,9 @@ diff -up openssl-1.0.1-beta3/crypto/rsa/rsa.h.fips openssl-1.0.1-beta3/crypto/rs
  #define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE         148
  #define RSA_R_PADDING_CHECK_FAILED                     114
  #define RSA_R_P_NOT_PRIME                              128
-diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_lib.c.fips openssl-1.0.1-beta3/crypto/rsa/rsa_lib.c
---- openssl-1.0.1-beta3/crypto/rsa/rsa_lib.c.fips      2011-06-20 21:41:13.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/rsa/rsa_lib.c   2012-02-29 10:33:02.803294974 +0100
+diff -up openssl-1.0.1b/crypto/rsa/rsa_lib.c.fips openssl-1.0.1b/crypto/rsa/rsa_lib.c
+--- openssl-1.0.1b/crypto/rsa/rsa_lib.c.fips   2011-06-20 21:41:13.000000000 +0200
++++ openssl-1.0.1b/crypto/rsa/rsa_lib.c        2012-04-26 18:00:51.719776267 +0200
 @@ -84,6 +84,13 @@ RSA *RSA_new(void)
  
  void RSA_set_default_method(const RSA_METHOD *meth)
@@ -20831,9 +20022,9 @@ diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_lib.c.fips openssl-1.0.1-beta3/crypt
        if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_RSA, ret, &ret->ex_data))
                {
  #ifndef OPENSSL_NO_ENGINE
-diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_pmeth.c.fips openssl-1.0.1-beta3/crypto/rsa/rsa_pmeth.c
---- openssl-1.0.1-beta3/crypto/rsa/rsa_pmeth.c.fips    2012-02-15 15:14:01.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/rsa/rsa_pmeth.c 2012-02-29 10:34:56.290320046 +0100
+diff -up openssl-1.0.1b/crypto/rsa/rsa_pmeth.c.fips openssl-1.0.1b/crypto/rsa/rsa_pmeth.c
+--- openssl-1.0.1b/crypto/rsa/rsa_pmeth.c.fips 2012-02-15 15:14:01.000000000 +0100
++++ openssl-1.0.1b/crypto/rsa/rsa_pmeth.c      2012-04-26 18:00:51.720776289 +0200
 @@ -206,22 +206,6 @@ static int pkey_rsa_sign(EVP_PKEY_CTX *c
                                        RSA_R_INVALID_DIGEST_LENGTH);
                        return -1;
@@ -20877,9 +20068,9 @@ diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_pmeth.c.fips openssl-1.0.1-beta3/cry
                if (rctx->pad_mode == RSA_PKCS1_PADDING)
                        return RSA_verify(EVP_MD_type(rctx->md), tbs, tbslen,
                                        sig, siglen, rsa);
-diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_sign.c.fips openssl-1.0.1-beta3/crypto/rsa/rsa_sign.c
---- openssl-1.0.1-beta3/crypto/rsa/rsa_sign.c.fips     2012-02-15 15:00:09.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/rsa/rsa_sign.c  2012-02-29 10:37:54.916857424 +0100
+diff -up openssl-1.0.1b/crypto/rsa/rsa_sign.c.fips openssl-1.0.1b/crypto/rsa/rsa_sign.c
+--- openssl-1.0.1b/crypto/rsa/rsa_sign.c.fips  2012-02-15 15:00:09.000000000 +0100
++++ openssl-1.0.1b/crypto/rsa/rsa_sign.c       2012-04-26 18:00:51.720776289 +0200
 @@ -138,7 +138,8 @@ int RSA_sign(int type, const unsigned ch
                i2d_X509_SIG(&sig,&p);
                s=tmps;
@@ -20911,9 +20102,9 @@ diff -up openssl-1.0.1-beta3/crypto/rsa/rsa_sign.c.fips openssl-1.0.1-beta3/cryp
  
        if (i <= 0) goto err;
        /* Oddball MDC2 case: signature can be OCTET STRING.
-diff -up openssl-1.0.1-beta3/crypto/sha/sha256.c.fips openssl-1.0.1-beta3/crypto/sha/sha256.c
---- openssl-1.0.1-beta3/crypto/sha/sha256.c.fips       2011-06-01 15:39:44.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/sha/sha256.c    2012-02-29 10:33:02.804294983 +0100
+diff -up openssl-1.0.1b/crypto/sha/sha256.c.fips openssl-1.0.1b/crypto/sha/sha256.c
+--- openssl-1.0.1b/crypto/sha/sha256.c.fips    2011-06-01 15:39:44.000000000 +0200
++++ openssl-1.0.1b/crypto/sha/sha256.c 2012-04-26 18:00:51.721776312 +0200
 @@ -12,12 +12,19 @@
  
  #include <openssl/crypto.h>
@@ -20944,9 +20135,9 @@ diff -up openssl-1.0.1-beta3/crypto/sha/sha256.c.fips openssl-1.0.1-beta3/crypto
        memset (c,0,sizeof(*c));
        c->h[0]=0x6a09e667UL;   c->h[1]=0xbb67ae85UL;
        c->h[2]=0x3c6ef372UL;   c->h[3]=0xa54ff53aUL;
-diff -up openssl-1.0.1-beta3/crypto/sha/sha512.c.fips openssl-1.0.1-beta3/crypto/sha/sha512.c
---- openssl-1.0.1-beta3/crypto/sha/sha512.c.fips       2011-11-14 21:58:01.000000000 +0100
-+++ openssl-1.0.1-beta3/crypto/sha/sha512.c    2012-02-29 10:33:02.804294983 +0100
+diff -up openssl-1.0.1b/crypto/sha/sha512.c.fips openssl-1.0.1b/crypto/sha/sha512.c
+--- openssl-1.0.1b/crypto/sha/sha512.c.fips    2011-11-14 21:58:01.000000000 +0100
++++ openssl-1.0.1b/crypto/sha/sha512.c 2012-04-26 18:00:51.722776334 +0200
 @@ -5,6 +5,10 @@
   * ====================================================================
   */
@@ -20978,9 +20169,9 @@ diff -up openssl-1.0.1-beta3/crypto/sha/sha512.c.fips openssl-1.0.1-beta3/crypto
        c->h[0]=U64(0x6a09e667f3bcc908);
        c->h[1]=U64(0xbb67ae8584caa73b);
        c->h[2]=U64(0x3c6ef372fe94f82b);
-diff -up openssl-1.0.1-beta3/crypto/sha/sha.h.fips openssl-1.0.1-beta3/crypto/sha/sha.h
---- openssl-1.0.1-beta3/crypto/sha/sha.h.fips  2012-02-29 10:33:02.108288997 +0100
-+++ openssl-1.0.1-beta3/crypto/sha/sha.h       2012-02-29 10:33:02.804294983 +0100
+diff -up openssl-1.0.1b/crypto/sha/sha.h.fips openssl-1.0.1b/crypto/sha/sha.h
+--- openssl-1.0.1b/crypto/sha/sha.h.fips       2012-04-26 18:00:50.616752170 +0200
++++ openssl-1.0.1b/crypto/sha/sha.h    2012-04-26 18:00:51.722776334 +0200
 @@ -116,9 +116,6 @@ unsigned char *SHA(const unsigned char *
  void SHA_Transform(SHA_CTX *c, const unsigned char *data);
  #endif
@@ -21013,9 +20204,9 @@ diff -up openssl-1.0.1-beta3/crypto/sha/sha.h.fips openssl-1.0.1-beta3/crypto/sh
  int SHA384_Init(SHA512_CTX *c);
  int SHA384_Update(SHA512_CTX *c, const void *data, size_t len);
  int SHA384_Final(unsigned char *md, SHA512_CTX *c);
-diff -up openssl-1.0.1-beta3/crypto/sha/sha_locl.h.fips openssl-1.0.1-beta3/crypto/sha/sha_locl.h
---- openssl-1.0.1-beta3/crypto/sha/sha_locl.h.fips     2012-02-29 10:33:02.114289051 +0100
-+++ openssl-1.0.1-beta3/crypto/sha/sha_locl.h  2012-02-29 10:33:02.804294983 +0100
+diff -up openssl-1.0.1b/crypto/sha/sha_locl.h.fips openssl-1.0.1b/crypto/sha/sha_locl.h
+--- openssl-1.0.1b/crypto/sha/sha_locl.h.fips  2012-04-26 18:00:50.622752302 +0200
++++ openssl-1.0.1b/crypto/sha/sha_locl.h       2012-04-26 18:00:51.723776356 +0200
 @@ -123,11 +123,14 @@ void sha1_block_data_order (SHA_CTX *c,
  #define INIT_DATA_h4 0xc3d2e1f0UL
  
@@ -21032,9 +20223,9 @@ diff -up openssl-1.0.1-beta3/crypto/sha/sha_locl.h.fips openssl-1.0.1-beta3/cryp
        memset (c,0,sizeof(*c));
        c->h0=INIT_DATA_h0;
        c->h1=INIT_DATA_h1;
-diff -up openssl-1.0.1-beta3/crypto/whrlpool/wp_dgst.c.fips openssl-1.0.1-beta3/crypto/whrlpool/wp_dgst.c
---- openssl-1.0.1-beta3/crypto/whrlpool/wp_dgst.c.fips 2011-06-01 15:39:45.000000000 +0200
-+++ openssl-1.0.1-beta3/crypto/whrlpool/wp_dgst.c      2012-02-29 10:33:02.805294992 +0100
+diff -up openssl-1.0.1b/crypto/whrlpool/wp_dgst.c.fips openssl-1.0.1b/crypto/whrlpool/wp_dgst.c
+--- openssl-1.0.1b/crypto/whrlpool/wp_dgst.c.fips      2011-06-01 15:39:45.000000000 +0200
++++ openssl-1.0.1b/crypto/whrlpool/wp_dgst.c   2012-04-26 18:00:51.724776378 +0200
 @@ -55,7 +55,7 @@
  #include <openssl/crypto.h>
  #include <string.h>
@@ -21044,9 +20235,9 @@ diff -up openssl-1.0.1-beta3/crypto/whrlpool/wp_dgst.c.fips openssl-1.0.1-beta3/
        {
        memset (c,0,sizeof(*c));
        return(1);
-diff -up openssl-1.0.1-beta3/Makefile.org.fips openssl-1.0.1-beta3/Makefile.org
---- openssl-1.0.1-beta3/Makefile.org.fips      2012-02-29 10:33:02.746294484 +0100
-+++ openssl-1.0.1-beta3/Makefile.org   2012-02-29 10:33:02.805294992 +0100
+diff -up openssl-1.0.1b/Makefile.org.fips openssl-1.0.1b/Makefile.org
+--- openssl-1.0.1b/Makefile.org.fips   2012-04-26 18:00:51.350768207 +0200
++++ openssl-1.0.1b/Makefile.org        2012-04-26 18:00:51.724776378 +0200
 @@ -136,6 +136,9 @@ FIPSCANLIB=
  
  BASEADDR=
@@ -21074,9 +20265,9 @@ diff -up openssl-1.0.1-beta3/Makefile.org.fips openssl-1.0.1-beta3/Makefile.org
                THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
  # MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
  # which in turn eliminates ambiguities in variable treatment with -e.
-diff -up openssl-1.0.1-beta3/ssl/ssl_algs.c.fips openssl-1.0.1-beta3/ssl/ssl_algs.c
---- openssl-1.0.1-beta3/ssl/ssl_algs.c.fips    2012-01-15 14:42:50.000000000 +0100
-+++ openssl-1.0.1-beta3/ssl/ssl_algs.c 2012-02-29 10:33:02.805294992 +0100
+diff -up openssl-1.0.1b/ssl/ssl_algs.c.fips openssl-1.0.1b/ssl/ssl_algs.c
+--- openssl-1.0.1b/ssl/ssl_algs.c.fips 2012-01-15 14:42:50.000000000 +0100
++++ openssl-1.0.1b/ssl/ssl_algs.c      2012-04-26 18:00:51.725776399 +0200
 @@ -64,6 +64,12 @@
  int SSL_library_init(void)
        {
index f615de8492e911488694827933f48a2bcd6e5811..c071243e4837e8e2adbc29425ee57045be4733f9 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = pakfire
-version    = 0.9.20
-release    = 7
+version    = 0.9.23
+release    = 1
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = System/Packaging
@@ -26,7 +26,7 @@ build
                elfutils-devel
                gettext
                libcap-devel
-               libsolv-devel
+               libsolv-devel >= 0.0.0-4
                popt-devel
                python-devel
                xz-devel
@@ -43,6 +43,12 @@ build
                cd %{DIR_APP}/python/src/ && python -c "import _pakfire"
                cd %{DIR_APP}/python/src/ && python -c "import _lzma"
        end
+
+       install_cmds
+               # Remove all example repository definitions.
+               # Those will be solely provided by system-release.
+               rm -rfv %{BUILDROOT}%{sysconfdir}/pakfire/repos/*
+       end
 end
 
 packages
@@ -54,26 +60,34 @@ packages
 
        package %{name}-common
                requires
+                       libsolv >= 0.0.0-4
+                       pygpgme
                        python-progressbar
                        python-urlgrabber
                        system-release
                end
 
                files
+                       %{sysconfdir}/pakfire/general.conf
+                       %{bindir}/pakfire-key
                        /usr/lib/pakfire/pakfire-multicall.py
                        %{libdir}/python*/site-packages/pakfire*
                        /usr/share/locale
                end
+               configfiles = %{sysconfdir}/pakfire/general.conf
        end
-       
+
        package %{name}-builder
-               summary = The pakfire builder.
+               summary = The Pakfire builder.
                description
                        The tools that are needed to build new pakfire packages.
                end
                groups += Build
 
                requires
+                       # For --rpm-requires.
+                       bash >= 4.2-7
+
                        %{name} = %{thisver}
                        quality-agent = %{thisver}
                        cpio
@@ -81,17 +95,64 @@ packages
                end
                provides = pakfire-build = %{thisver}
                obsoletes = pakfire-build < %{thisver}
-               conflicts = build-essentials
+
+               conflicts
+                       build-essentials
+                       systemd-devel < 38
+               end
+
+               configfiles
+                       /etc/pakfire/builder.conf
+                       /etc/pakfire/distros
+               end
 
                files
+                       /etc/pakfire/builder.conf
+                       /etc/pakfire/distros
                        %{libdir}/libpakfire_preload.so
-                       /usr/bin/pakfire-builder
-                       /usr/bin/pakfire-server
+                       %{bindir}/pakfire-builder
+                       %{bindir}/pakfire-server
                        /usr/lib/pakfire/*
                        !/usr/lib/pakfire/pakfire-multicall.py
                end
        end
 
+       package %{name}-client
+               summary = The Pakfire XMLRPC client.
+               description
+                       The pakfire client has the power to create build jobs
+                       and communicate with the Pakfire Build Service.
+               end
+
+               requires
+                       pakfire-common = %{thisver}
+               end
+
+               files
+                       %{sysconfdir}/pakfire/client.conf
+                       %{bindir}/pakfire-client
+               end
+               configfiles = %{sysconfdir}/pakfire/client.conf
+       end
+
+       package %{name}-daemon
+               summary = The Pakfire daemon.
+               description
+                       The Pakfire daemon takes build jobs from the
+                       Pakfire Build Service and compiles them.
+               end
+
+               requires
+                       pakfire-builder = %{thisver}
+               end
+
+               files
+                       %{sysconfdir}/pakfire/daemon.conf
+                       %{bindir}/pakfire-daemon
+               end
+               configfiles = %{sysconfdir}/pakfire/daemon.conf
+       end
+
        package quality-agent
                arch = noarch
 
@@ -104,7 +165,8 @@ packages
                end
 
                files
-                       /usr/lib/pakfire/quality-agent*
+                       /usr/lib/pakfire/quality-agent
+                       /usr/lib/quality-agent*
                end
 
                requires
diff --git a/pakfire/patches/pakfire-0.9.20-change-default-hub-to-pakfirehub.ipfire.org.patch b/pakfire/patches/pakfire-0.9.20-change-default-hub-to-pakfirehub.ipfire.org.patch
deleted file mode 100644 (file)
index dce9bfd..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-From 0f8823593c2c815b3dc2c7c9cb74b4d7a6b218de Mon Sep 17 00:00:00 2001
-From: Michael Tremer <michael.tremer@ipfire.org>
-Date: Wed, 29 Feb 2012 12:29:07 +0100
-Subject: [PATCH] Change default hub to pakfirehub.ipfire.org.
-
----
- examples/client.conf          |    2 +-
- examples/daemon.conf          |    2 +-
- python/pakfire/client/base.py |    2 +-
- python/pakfire/config.py      |    4 ++--
- python/pakfire/constants.py   |    3 +++
- 5 files changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/examples/client.conf b/examples/client.conf
-index da57d03..6c59de9 100644
---- a/examples/client.conf
-+++ b/examples/client.conf
-@@ -3,7 +3,7 @@
- [client]
- # The URL of the server to connect to.
--# server = https://pakfire.ipfire.org/
-+# server = https://pakfirehub.ipfire.org/
- # Your credentials to log in on the hub.
- # username = ipfire
-diff --git a/examples/daemon.conf b/examples/daemon.conf
-index 525cc1f..143a7f6 100644
---- a/examples/daemon.conf
-+++ b/examples/daemon.conf
-@@ -3,7 +3,7 @@
- [daemon]
- # The URL of the server to connect to.
--# server = https://pakfire.ipfire.org/
-+# server = https://pakfirehub.ipfire.org/
- # The hostname of this machine.
- # hostname = <automatically detected>
-diff --git a/python/pakfire/client/base.py b/python/pakfire/client/base.py
-index 1886e2b..3ac4bef 100644
---- a/python/pakfire/client/base.py
-+++ b/python/pakfire/client/base.py
-@@ -51,7 +51,7 @@ class PakfireClient(object):
-                       ret += "%s:%s@" % (username, password)
-               # Add host and path components.
--              ret += "%s/pakfirehub/%s" % (url.netloc, self.type)
-+              ret += "/".join((url.netloc, self.type))
-               return ret
-diff --git a/python/pakfire/config.py b/python/pakfire/config.py
-index c7ab143..0d32784 100644
---- a/python/pakfire/config.py
-+++ b/python/pakfire/config.py
-@@ -237,7 +237,7 @@ class ConfigClient(_Config):
-               "client" : {
-                       # The default server is the official Pakfire
-                       # server.
--                      "server"   : "https://pakfire.ipfire.org",
-+                      "server"   : PAKFIRE_HUB,
-               },
-       }
-@@ -249,7 +249,7 @@ class ConfigDaemon(_Config):
-               "daemon" : {
-                       # The default server is the official Pakfire
-                       # server.
--                      "server"   : "https://pakfire.ipfire.org",
-+                      "server"   : PAKFIRE_HUB,
-                       # The default hostname is the host name of this
-                       # machine.
-diff --git a/python/pakfire/constants.py b/python/pakfire/constants.py
-index 2998ab7..2c091e4 100644
---- a/python/pakfire/constants.py
-+++ b/python/pakfire/constants.py
-@@ -27,6 +27,9 @@ from __version__ import PAKFIRE_VERSION
- PAKFIRE_LEAST_COMPATIBLE_VERSION = PAKFIRE_VERSION
-+# The default hub to connect to.
-+PAKFIRE_HUB = "https://pakfirehub.ipfire.org/"
-+
- SYSCONFDIR = "/etc"
- SCRIPT_DIR = "/usr/lib/pakfire"
--- 
-1.7.3.4
-
diff --git a/pakfire/patches/pakfire-0.9.20-check-for-nested-BUILDROOT.patch b/pakfire/patches/pakfire-0.9.20-check-for-nested-BUILDROOT.patch
deleted file mode 100644 (file)
index cadeaa6..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-From cd37f1637dc038f2ebdfc514882e4b600d85a606 Mon Sep 17 00:00:00 2001
-From: Michael Tremer <michael.tremer@ipfire.org>
-Date: Sat, 10 Mar 2012 13:25:41 +0100
-Subject: [PATCH] QA: Check for nested $BUILDROOT.
-
----
- tools/quality-agent.d/095-directory-layout |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/tools/quality-agent.d/095-directory-layout b/tools/quality-agent.d/095-directory-layout
-index 3f946a1..d605fe9 100755
---- a/tools/quality-agent.d/095-directory-layout
-+++ b/tools/quality-agent.d/095-directory-layout
-@@ -4,7 +4,7 @@
- DESC="The filelayout should comply to the FHS."
--DIRS="/etc/init.d /etc/rc.d /lib/pkgconfig /usr/etc /usr/libexec /usr/local /usr/man /usr/usr /usr/var"
-+DIRS="/etc/init.d /etc/rc.d /lib/pkgconfig /usr/etc /usr/libexec /usr/local /usr/man /usr/usr /usr/var ${BUILDROOT}"
- function check() {
-       # Do nothing, if directory check was disabled.
--- 
-1.7.3.4
-
diff --git a/pakfire/patches/pakfire-0.9.20-dont-download-mirrorlists.patch b/pakfire/patches/pakfire-0.9.20-dont-download-mirrorlists.patch
deleted file mode 100644 (file)
index c8cafc6..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-From 90919c62214dd821048027cce5752a8d7f64d437 Mon Sep 17 00:00:00 2001
-From: Michael Tremer <michael.tremer@ipfire.org>
-Date: Wed, 29 Feb 2012 18:37:50 +0100
-Subject: [PATCH] Don't download mirrorlist at repository initialization.
-
----
- python/pakfire/downloader.py |    9 +++++++--
- 1 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/python/pakfire/downloader.py b/python/pakfire/downloader.py
-index 3bfbff2..f89681f 100644
---- a/python/pakfire/downloader.py
-+++ b/python/pakfire/downloader.py
-@@ -190,8 +190,6 @@ class MirrorList(object):
-               # Save URL to more mirrors.
-               self.mirrorlist = repo._mirrors
--              self.update(force=False)
--
-       @property
-       def distro(self):
-               return self.repo.distro
-@@ -245,6 +243,7 @@ class MirrorList(object):
-                       f.close()
-               # Read mirrorlist from cache and parse it.
-+              self.forget_mirrors()
-               with self.cache.open(cache_filename) as f:
-                       self.parse_mirrordata(f.read())
-@@ -259,6 +258,9 @@ class MirrorList(object):
-               self.__mirrors.append(mirror)
-+      def forget_mirrors(self):
-+              self.__mirrors = []
-+
-       @property
-       def preferred(self):
-               """
-@@ -289,6 +291,9 @@ class MirrorList(object):
-               """
-                       Return a MirrorGroup object for the given grabber.
-               """
-+              # Make sure the mirrorlist is up to date.
-+              self.update()
-+
-               # A list of mirrors that is passed to MirrorGroup.
-               mirrors = []
--- 
-1.7.3.4
-
diff --git a/pakfire/patches/pakfire-0.9.20-fix-library-check.patch b/pakfire/patches/pakfire-0.9.20-fix-library-check.patch
deleted file mode 100644 (file)
index 8bde631..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-From 1f2968430df446dcbf0e27ff870ac7aa6e8113cd Mon Sep 17 00:00:00 2001
-From: Michael Tremer <michael.tremer@ipfire.org>
-Date: Tue, 6 Mar 2012 16:11:01 +0100
-Subject: [PATCH] Fix library check when updating GCC.
-
-As it only happens on ARM, the new GCC libdir is not found.
----
- tools/quality-agent.d/003-libs-location |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/tools/quality-agent.d/003-libs-location b/tools/quality-agent.d/003-libs-location
-index 48b2521..ce5ba72 100755
---- a/tools/quality-agent.d/003-libs-location
-+++ b/tools/quality-agent.d/003-libs-location
-@@ -16,13 +16,16 @@ esac
- # Find gcc libdir.
- gcc_libdir=$(gcc -print-libgcc-file-name)
--gcc_libdir=$(dirname ${gcc_libdir})
-+for i in 1 2; do
-+      gcc_libdir=$(dirname ${gcc_libdir})
-+done
-+gcc_libdir=$(ls ${BUILDROOT}${gcc_libdir}/* 2>/dev/null | tail -n1)
- function check() {
-       local failed=0
-       local found
--      for lib in $(find ${BUILDROOT}/${libdir} -type f -name "lib*.so.*" 2>/dev/null); do
-+      for lib in $(find ${BUILDROOT}/{,usr/}${libdir} -type f -name "lib*.so.*" 2>/dev/null); do
-               lib=${lib##*/}
-               lib=${lib%%.so*}
--- 
-1.7.3.4
-
diff --git a/pakfire/patches/pakfire-0.9.20-fix-ls-dir-listing.patch b/pakfire/patches/pakfire-0.9.20-fix-ls-dir-listing.patch
deleted file mode 100644 (file)
index 506778a..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-From 123f594fe738d6eb0a9238d094bbfbce7d4355b3 Mon Sep 17 00:00:00 2001
-From: Michael Tremer <michael.tremer@ipfire.org>
-Date: Sat, 10 Mar 2012 11:45:20 +0100
-Subject: [PATCH] QA: Don't use ls to list all directories in libs-location check.
-
----
- tools/quality-agent.d/003-libs-location |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/tools/quality-agent.d/003-libs-location b/tools/quality-agent.d/003-libs-location
-index ce5ba72..4c2e8ba 100755
---- a/tools/quality-agent.d/003-libs-location
-+++ b/tools/quality-agent.d/003-libs-location
-@@ -19,7 +19,7 @@ gcc_libdir=$(gcc -print-libgcc-file-name)
- for i in 1 2; do
-       gcc_libdir=$(dirname ${gcc_libdir})
- done
--gcc_libdir=$(ls ${BUILDROOT}${gcc_libdir}/* 2>/dev/null | tail -n1)
-+gcc_libdir=$(find ${BUILDROOT}${gcc_libdir}/* -type d -maxdepth 1 2>/dev/null | sort | head -n1)
- function check() {
-       local failed=0
--- 
-1.7.3.4
-
diff --git a/pakfire/patches/pakfire-0.9.20-fix-searching-too-deep.patch b/pakfire/patches/pakfire-0.9.20-fix-searching-too-deep.patch
deleted file mode 100644 (file)
index 0f6f328..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-commit da1de278eca7d6663cce89f7c1ad2a312fda8abb
-Author: Michael Tremer <michael.tremer@ipfire.org>
-Date:   Sun Mar 11 15:03:21 2012 +0100
-
-    QA: libs-location: Don't search in the deep.
-
-diff --git a/tools/quality-agent.d/003-libs-location b/tools/quality-agent.d/003-libs-location
-index 4c2e8ba..479f170 100755
---- a/tools/quality-agent.d/003-libs-location
-+++ b/tools/quality-agent.d/003-libs-location
-@@ -25,7 +25,7 @@ function check() {
-       local failed=0
-       local found
--      for lib in $(find ${BUILDROOT}/{,usr/}${libdir} -type f -name "lib*.so.*" 2>/dev/null); do
-+      for lib in $(find ${BUILDROOT}/{,usr/}${libdir} -maxdepth 1 -type f -name "lib*.so.*" 2>/dev/null); do
-               lib=${lib##*/}
-               lib=${lib%%.so*}
diff --git a/pakfire/patches/pakfire-0.9.20-pkgconfig-deps.patch b/pakfire/patches/pakfire-0.9.20-pkgconfig-deps.patch
deleted file mode 100644 (file)
index 1304cb9..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-commit 6230230c96c4961d6e5e7aed176d4859dd744b03
-Author: Michael Tremer <michael.tremer@ipfire.org>
-Date:   Sat Mar 17 13:12:57 2012 +0100
-
-    Fix automatic pkgconfig dependencies.
-    
-    The pkgconfig package was added as "provides" instead of a
-    dependency when .pc files were in a package.
-
-diff --git a/tools/find-provides b/tools/find-provides
-index 8a3e3cb..0be2de7 100755
---- a/tools/find-provides
-+++ b/tools/find-provides
-@@ -81,9 +81,6 @@ if [ -n "${pkgconfig}" -a -x "${pkgconfig}" ]; then
-                       # We have a dependency.  Make a note that we need the pkgconfig
-                       # tool for this package.
-                       echo "pkgconfig(${n}) ${r} ${v}"
--
--                      # The dependency on the pkgconfig package itself.
--                      echo "pkgconfig"
-               done
-       done | sort -u
- fi
-diff --git a/tools/find-requires b/tools/find-requires
-index 044c59f..9a98c32 100755
---- a/tools/find-requires
-+++ b/tools/find-requires
-@@ -142,6 +142,9 @@ fi
- pkgconfig=$(which pkg-config)
- if [ -n "${pkgconfig}" -a -x "${pkgconfig}" ]; then
-       for file in ${pkgconfig_files}; do
-+              # The dependency for the pkgconfig package itself.
-+              echo "pkgconfig"
-+
-               ${pkgconfig} --print-requires --print-requires-private "${file}" 2> /dev/null | while read n r v ; do
-                       echo "pkgconfig(${n})" "${r}" "${v}"
-               done
diff --git a/pakfire/patches/pakfire-0.9.20-python-abi-find-requires.patch b/pakfire/patches/pakfire-0.9.20-python-abi-find-requires.patch
deleted file mode 100644 (file)
index 512d454..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-commit d16c15690f94589c2667a5096c21cec16daee7b7
-Author: Michael Tremer <michael.tremer@ipfire.org>
-Date:   Sun Mar 11 19:53:10 2012 +0100
-
-    find-requires: Filter false positives for python abi.
-
-diff --git a/tools/find-requires b/tools/find-requires
-index 52b6651..044c59f 100755
---- a/tools/find-requires
-+++ b/tools/find-requires
-@@ -43,14 +43,16 @@ while read file; do
-               */usr/lib*/python*/*)
-                       # Sort out all python files.
-                       ;;
--              */usr/lib*/python*)
-+              */usr/lib/python*|*/usr/lib64/python*)
-                       # This will only get the python directory.
-                       file=$(basename ${file})
-                       # Strip the python version from the string.
-                       python_version="${file#python}"
--                      echo "python-abi = ${python_version}"
-+                      if [ -n "${python_version}" ]; then
-+                              echo "python-abi = ${python_version}"
-+                      fi
-                       continue
-                       ;;
-       esac
diff --git a/pakfire/patches/pakfire-0.9.20-revert-libs-location-in-usr.patch b/pakfire/patches/pakfire-0.9.20-revert-libs-location-in-usr.patch
deleted file mode 100644 (file)
index f5b6dda..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-commit 882bb1851ab12ee3ba1561552faf90850e212052
-Author: Michael Tremer <michael.tremer@ipfire.org>
-Date:   Sun Mar 11 17:59:34 2012 +0100
-
-    QA: libs-location: Revert checking in /usr/lib(64).
-    
-    That was not such a good idea because upstream is messing
-    too much with library names.
-
-diff --git a/tools/quality-agent.d/003-libs-location b/tools/quality-agent.d/003-libs-location
-index 479f170..0ee8237 100755
---- a/tools/quality-agent.d/003-libs-location
-+++ b/tools/quality-agent.d/003-libs-location
-@@ -25,7 +25,7 @@ function check() {
-       local failed=0
-       local found
--      for lib in $(find ${BUILDROOT}/{,usr/}${libdir} -maxdepth 1 -type f -name "lib*.so.*" 2>/dev/null); do
-+      for lib in $(find ${BUILDROOT}/${libdir} -maxdepth 1 -type f -name "lib*.so.*" 2>/dev/null); do
-               lib=${lib##*/}
-               lib=${lib%%.so*}
diff --git a/pakfire/patches/pakfire-0.9.20-sharedstatedir.patch b/pakfire/patches/pakfire-0.9.20-sharedstatedir.patch
deleted file mode 100644 (file)
index 8c582bd..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-From 7cefdc0a2cb917e16c95d522fb1e3d4ed600faca Mon Sep 17 00:00:00 2001
-From: Michael Tremer <michael.tremer@ipfire.org>
-Date: Wed, 7 Mar 2012 17:11:37 +0100
-Subject: [PATCH] Fix definition of sharedstatedir.
-
----
- macros/arch.macro |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/macros/arch.macro b/macros/arch.macro
-index e756b8e..536e9d2 100644
---- a/macros/arch.macro
-+++ b/macros/arch.macro
-@@ -8,7 +8,7 @@ sbindir           = %{exec_prefix}/sbin
- libexecdir        = %{exec_prefix}/lib
- datadir           = %{prefix}/share
- sysconfdir        = /etc
--sharedstatedir    = %{prefix}/com
-+sharedstatedir    = %{localstatedir}/lib
- localstatedir     = /var
- lib               = lib
- libdir            = %{exec_prefix}/%{lib}
--- 
-1.7.3.4
-
diff --git a/pakfire/patches/pakfire-0.9.20-update-repositories-only-when-are-actually-enabled.patch b/pakfire/patches/pakfire-0.9.20-update-repositories-only-when-are-actually-enabled.patch
deleted file mode 100644 (file)
index e8f4132..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-From 8fe602a7c5b3de4c4531d05c0dc1cf4d6bb9fb06 Mon Sep 17 00:00:00 2001
-From: Michael Tremer <michael.tremer@ipfire.org>
-Date: Wed, 29 Feb 2012 11:10:33 +0100
-Subject: [PATCH] Update repositories only when they are actually enabled.
-
----
- python/pakfire/cli.py                 |    8 +++++++-
- python/pakfire/repository/__init__.py |    4 ++++
- python/pakfire/repository/base.py     |    3 ++-
- 3 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/python/pakfire/cli.py b/python/pakfire/cli.py
-index 8bab886..7a94900 100644
---- a/python/pakfire/cli.py
-+++ b/python/pakfire/cli.py
-@@ -768,8 +768,14 @@ class CliBuilderIntern(Cli):
-               conf = config.ConfigBuilder()
-+              if self.args.nodeps:
-+                      disable_repos = ["*"]
-+              else:
-+                      disable_repos = None
-+
-               pakfire._build(pkg, builder_mode=self.args.mode, config=conf,
--                      arch=self.args.arch, resultdir=self.args.resultdir)
-+                      disable_repos=disable_repos, arch=self.args.arch,
-+                      resultdir=self.args.resultdir)
- class CliClient(Cli):
-diff --git a/python/pakfire/repository/__init__.py b/python/pakfire/repository/__init__.py
-index f6b2f6e..39872da 100644
---- a/python/pakfire/repository/__init__.py
-+++ b/python/pakfire/repository/__init__.py
-@@ -68,6 +68,10 @@ class Repositories(object):
-               # Disable all repositories here as demanded on commandline
-               if disable_repos:
-+                      # * is magic to disable all repositories.
-+                      if "*" in disable_repos:
-+                              disable_repos = [r.name for r in self]
-+
-                       for repo in disable_repos:
-                               self.disable_repo(repo)
-diff --git a/python/pakfire/repository/base.py b/python/pakfire/repository/base.py
-index 7fb8362..59d8615 100644
---- a/python/pakfire/repository/base.py
-+++ b/python/pakfire/repository/base.py
-@@ -115,7 +115,8 @@ class RepositoryFactory(object):
-               """
-               assert self.index
--              self.index.update(force, offline=offline)
-+              if force or self.enabled:
-+                      self.index.update(force, offline=offline)
-       def clean(self):
-               """
--- 
-1.7.3.4
-
diff --git a/pam/man/config-util.5 b/pam/man/config-util.5
new file mode 100644 (file)
index 0000000..17d7f8a
--- /dev/null
@@ -0,0 +1,36 @@
+.TH SYSTEM-AUTH 5 "2006 Feb 3" "Red Hat" "Linux-PAM Manual"
+.SH NAME
+
+config-util \- Common PAM configuration file for configuration utilities
+
+.SH SYNOPSIS
+.B /etc/pam.d/config-util
+.sp 2
+.SH DESCRIPTION
+
+The purpose of this configuration file is to provide common 
+configuration file for all configuration utilities which must be run
+from the supervisor account and use the userhelper wrapper application.
+
+.sp
+The
+.BR config-util
+configuration file is included from all individual configuration
+files of such utilities with the help of the
+.BR include
+directive.
+There are not usually any other modules in the individual configuration
+files of these utilities.
+
+.sp
+It is possible for example to modify duration of the validity of the 
+authentication timestamp there. See
+.BR pam_timestamp(8)
+for details.
+
+.SH BUGS
+.sp 2
+None known.
+
+.SH "SEE ALSO"
+pam(8), config-util(5), pam_timestamp(8)
diff --git a/pam/man/postlogin.5 b/pam/man/postlogin.5
new file mode 100644 (file)
index 0000000..3a8abcf
--- /dev/null
@@ -0,0 +1,46 @@
+.TH POSTLOGIN 5 "2010 Dec 22" "Red Hat" "Linux-PAM Manual"
+.SH NAME
+
+postlogin \- Common configuration file for PAMified services
+
+.SH SYNOPSIS
+.B /etc/pam.d/postlogin
+.sp 2
+.SH DESCRIPTION
+
+The purpose of this PAM configuration file is to provide a common
+place for all PAM modules which should be called after the stack
+configured in
+.BR system-auth
+or the other common PAM configuration files.
+
+.sp
+The
+.BR postlogin
+configuration file is included from all individual service configuration
+files that provide login service with shell or file access.
+
+.SH NOTES
+The modules in the postlogin configuration file are executed regardless
+of the success or failure of the modules in the
+.BR system-auth
+configuration file.
+
+.SH BUGS
+.sp 2
+Sometimes it would be useful to be able to skip the postlogin modules in
+case the substack of the
+.BR system-auth
+modules failed. Unfortunately the current Linux-PAM library does not
+provide any way how to achieve this.
+
+.SH "SEE ALSO"
+pam(8), config-util(5), system-auth(5)
+
+The three
+.BR Linux-PAM
+Guides, for
+.BR "system administrators" ", "
+.BR "module developers" ", "
+and
+.BR "application developers" ". "
diff --git a/pam/man/system-auth.5 b/pam/man/system-auth.5
new file mode 100644 (file)
index 0000000..c0ca80b
--- /dev/null
@@ -0,0 +1,58 @@
+.TH SYSTEM-AUTH 5 "2010 Dec 22" "Red Hat" "Linux-PAM Manual"
+.SH NAME
+
+system-auth \- Common configuration file for PAMified services
+
+.SH SYNOPSIS
+.B /etc/pam.d/system-auth
+.B /etc/pam.d/password-auth
+.B /etc/pam.d/fingerprint-auth
+.B /etc/pam.d/smartcard-auth
+.sp 2
+.SH DESCRIPTION
+
+The purpose of these configuration files are to provide a common
+interface for all applications and service daemons calling into
+the PAM library.
+
+.sp
+The
+.BR system-auth
+configuration file is included from nearly all individual service configuration
+files with the help of the
+.BR substack
+directive.
+
+.sp
+The
+.BR password-auth
+.BR fingerprint-auth
+.BR smartcard-auth
+configuration files are for applications which handle authentication from
+different types of devices via simultaneously running individual conversations
+instead of one aggregate conversation.
+
+.SH NOTES
+Previously these common configuration files were included with the help
+of the
+.BR include
+directive. This limited the use of the different action types of modules.
+With the use of
+.BR substack
+directive to include these common configuration files this limitation
+no longer applies.
+
+.SH BUGS
+.sp 2
+None known.
+
+.SH "SEE ALSO"
+pam(8), config-util(5), postlogin(5)
+
+The three
+.BR Linux-PAM
+Guides, for
+.BR "system administrators" ", "
+.BR "module developers" ", "
+and
+.BR "application developers" ". "
diff --git a/pam/pam.d/config-util b/pam/pam.d/config-util
new file mode 100644 (file)
index 0000000..8e70d9a
--- /dev/null
@@ -0,0 +1,8 @@
+#%PAM-1.0
+auth           sufficient      pam_rootok.so
+auth           sufficient      pam_timestamp.so
+auth           include         system-auth
+account                required        pam_permit.so
+session                required        pam_permit.so
+session                optional        pam_xauth.so
+session                optional        pam_timestamp.so
diff --git a/pam/pam.d/fingerprint-auth b/pam/pam.d/fingerprint-auth
new file mode 100644 (file)
index 0000000..fdcbcc0
--- /dev/null
@@ -0,0 +1,18 @@
+#%PAM-1.0
+# This file is auto-generated.
+# User changes will be destroyed the next time authconfig is run.
+auth        required      pam_env.so
+auth        sufficient    pam_fprintd.so
+auth        required      pam_deny.so
+
+account     required      pam_unix.so
+account     sufficient    pam_localuser.so
+account     sufficient    pam_succeed_if.so uid < 500 quiet
+account     required      pam_permit.so
+
+password    required      pam_deny.so
+
+session     optional      pam_keyinit.so revoke
+session     required      pam_limits.so
+session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
+session     required      pam_unix.so
diff --git a/pam/pam.d/password-auth b/pam/pam.d/password-auth
new file mode 100644 (file)
index 0000000..d598c67
--- /dev/null
@@ -0,0 +1,17 @@
+#%PAM-1.0
+# This file is auto-generated.
+# User changes will be destroyed the next time authconfig is run.
+auth        required      pam_env.so
+auth        sufficient    pam_unix.so try_first_pass nullok
+auth        required      pam_deny.so
+
+account     required      pam_unix.so
+
+password    requisite     pam_pwquality.so try_first_pass retry=3 type=
+password    sufficient    pam_unix.so try_first_pass use_authtok nullok sha512 shadow
+password    required      pam_deny.so
+
+session     optional      pam_keyinit.so revoke
+session     required      pam_limits.so
+session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
+session     required      pam_unix.so
diff --git a/pam/pam.d/postlogin b/pam/pam.d/postlogin
new file mode 100644 (file)
index 0000000..43d25c5
--- /dev/null
@@ -0,0 +1,3 @@
+#%PAM-1.0
+# This file is auto-generated.
+# User changes will be destroyed the next time authconfig is run.
diff --git a/pam/pam.d/smartcard-auth b/pam/pam.d/smartcard-auth
new file mode 100644 (file)
index 0000000..07f03f3
--- /dev/null
@@ -0,0 +1,18 @@
+#%PAM-1.0
+# This file is auto-generated.
+# User changes will be destroyed the next time authconfig is run.
+auth        required      pam_env.so
+auth        [success=done ignore=ignore default=die] pam_pkcs11.so wait_for_card
+auth        required      pam_deny.so
+
+account     required      pam_unix.so
+account     sufficient    pam_localuser.so
+account     sufficient    pam_succeed_if.so uid < 500 quiet
+account     required      pam_permit.so
+
+password    optional      pam_pkcs11.so
+
+session     optional      pam_keyinit.so revoke
+session     required      pam_limits.so
+session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
+session     required      pam_unix.so
index 0fa221b4893e3e2f8d081665bc4eb6094466e7fb..d598c67d7244d266f7b118a3bdc2b75de46eaf46 100644 (file)
@@ -1,23 +1,17 @@
 #%PAM-1.0
+# This file is auto-generated.
+# User changes will be destroyed the next time authconfig is run.
 auth        required      pam_env.so
-auth        sufficient    pam_unix.so nullok try_first_pass
-auth        requisite     pam_succeed_if.so uid >= 500 quiet
-auth        sufficient    pam_ldap.so use_first_pass
+auth        sufficient    pam_unix.so try_first_pass nullok
 auth        required      pam_deny.so
 
-account     required      pam_unix.so broken_shadow
-account     sufficient    pam_localuser.so
-account     sufficient    pam_succeed_if.so uid < 500 quiet
-account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
-account     required      pam_permit.so
+account     required      pam_unix.so
 
-password    requisite     pam_cracklib.so try_first_pass retry=3
-password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
-password    sufficient    pam_ldap.so use_authtok
+password    requisite     pam_pwquality.so try_first_pass retry=3 type=
+password    sufficient    pam_unix.so try_first_pass use_authtok nullok sha512 shadow
 password    required      pam_deny.so
 
 session     optional      pam_keyinit.so revoke
 session     required      pam_limits.so
 session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
 session     required      pam_unix.so
-session     optional      pam_ldap.so
index 4bb01c956be791fb48d403511985561ce44181ef..be4f7a242816dbc5e07cab93056b867e4d2d088e 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = pam
 version    = 1.1.5
-release    = 1
+release    = 3
 thisapp    = Linux-PAM-%{version}
 
 groups     = System/Base
@@ -34,20 +34,12 @@ build
        end
 
        configure_options += \
-               --libdir=/%{lib} \
                --includedir=%{includedir}/security \
                --docdir=/usr/share/doc/Linux-PAM-%{version} \
                --enable-read-both-confs \
                --disable-rpath
 
        install_cmds
-               mkdir -pv %{BUILDROOT}%{libdir}
-               for LINK in libpam{,c,_misc}.so; do
-                       ln -v -sf ../../%{lib}/$(readlink %{BUILDROOT}/%{lib}/${LINK}) \
-                               %{BUILDROOT}%{libdir}/${LINK}
-                       rm -v %{BUILDROOT}/%{lib}/${LINK}
-               done
-
                #useradd -D -b /home
                #sed -i 's/yes/no/' %{BUILDROOT}/etc/default/useradd
                mkdir -pv %{BUILDROOT}/etc/security
@@ -56,14 +48,25 @@ build
 
                # Included in setup package
                rm -f %{BUILDROOT}/etc/environment
+
+               # Install man pages.
+               mkdir -pv %{BUILDROOT}%{mandir}/man5
+               for file in config-util.5 postlogin.5 system-auth.5; do
+                       install -v -m 644 %{DIR_SOURCE}/man/${file} \
+                               %{BUILDROOT}%{mandir}/man5
+               done
        end
 end
 
 packages
        package %{name}
-               #requires
-               #       pam_ldap
-               #end
+               requires
+                       pam_ldap
+               end
+
+               configfiles
+                       /etc/pam.d
+               end
        end
 
        package %{name}-devel
index 05a88ab1493441beedd5358a9610a72a1d0277b0..9d9154b2e7528463749053f55d6a13a63ac81624 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = pam_ldap
 version    = 186
-release    = 2
+release    = 3
 
 groups     = System/Base
 url        = http://www.padl.com/OSS/pam_ldap.html
@@ -33,9 +33,6 @@ build
        end
 
        configure_options += \
-               --sysconfdir=/etc \
-               --libdir=/%{lib} \
-               --mandir=/usr/share/man \
                --with-ldap-conf-file=/etc/pam_ldap.conf \
                --with-ldap-secret-file=/etc/pam_ldap.secret
 
@@ -64,7 +61,7 @@ build
 
        install
                # Create directory layout
-               mkdir -pv %{BUILDROOT}/{etc,%{lib}/security,%{libdir}}
+               mkdir -pv %{BUILDROOT}/{etc,%{libdir}/security}
 
                # Prevent to install an ldap.conf
                touch %{BUILDROOT}/etc/ldap.conf
@@ -82,6 +79,10 @@ end
 
 packages
        package %{name}
+               conflicts
+                       filesystem < 002
+               end
+       end
 
        package %{name}-debuginfo
                template DEBUGINFO
index b544a9a765d46e9852af54ad6537eaf23a9a1591..ba16ffb0f7b7e6e720c11b00451b31c9792224ca 100644 (file)
@@ -6,7 +6,7 @@
 name       = pango
 major     = 1.29
 version    = %{major}.5
-release    = 1
+release    = 2
 
 groups     = System/Libraries
 url        = http://www.pango.org/
@@ -29,6 +29,7 @@ build
                gcc-c++
                glib2-devel
                glibc-devel
+               libXft-devel
                perl
                pkg-config
        end
index 9615bb355c7ed194a4300b55cec38bf5909824a8..3493b619d33a6f8e15df6b96c07752cfb11ce608 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = pcre
 version    = 8.30
-release    = 1
+release    = 2
 
 compat_version = 8.21
 
@@ -50,7 +50,7 @@ build
 
        install_cmds
                cd %{DIR_SRC}/%{name}-%{compat_version}
-               install -m 644 .libs/libpcre.so.0.0.1 %{BUILDROOT}%{libdir}
+               install -m 755 .libs/libpcre.so.0.0.1 %{BUILDROOT}%{libdir}
                ln -svf libpcre.so.0.0.1 %{BUILDROOT}%{libdir}/libprce.so.0
        end
 end
diff --git a/pdns/patches/pdns-fix-lua-detection.patch b/pdns/patches/pdns-fix-lua-detection.patch
deleted file mode 100644 (file)
index 29b352a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up pdns-3.0-rc3/configure.orig pdns-3.0-rc3/configure
---- pdns-3.0-rc3/configure.orig        2011-07-20 14:09:39.960000514 +0200
-+++ pdns-3.0-rc3/configure     2011-07-20 14:09:46.288007162 +0200
-@@ -16494,7 +16494,7 @@ $as_echo_n "checking if with lua... " >&
- # Check whether --with-lua was given.
- if test "${with_lua+set}" = set; then :
--  withval=$with_lua; WITH_LUA=$withval]
-+  withval=$with_lua; WITH_LUA=$withval
- else
-   WITH_LUA=yes
- fi
index a56570c65135819407c0f9e7147bc2f0825760ef..bd5e1e7ca5ce03b730ca74503b6fee984df8e68e 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = pdns
-version    = 3.0.1
+version    = 3.1
 release    = 1
 
 groups     = Networking/DNS
diff --git a/perl-BDB/perl-BDB.nm b/perl-BDB/perl-BDB.nm
new file mode 100644 (file)
index 0000000..508e914
--- /dev/null
@@ -0,0 +1,52 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = perl-BDB
+version    = 1.9
+release    = 1
+thisapp    = BDB-%{version}
+
+groups     = Development/Libraries
+url        = http://search.cpan.org/dist/BDB/
+license    = GPL+ or Artistic
+summary    = Asynchronous Berkeley DB access.
+
+description
+       Asynchronous Berkeley DB access.
+end
+
+source_dl  = http://search.cpan.org/CPAN/authors/id/M/ML/MLEHMANN/
+
+build
+       requires
+               perl(common::sense)
+               perl(ExtUtils::MakeMaker)
+               perl(ExtUtils::ParseXS)
+               libdb-devel
+       end
+
+       build
+               perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{CFLAGS}"
+               make %{PARALLELISMFLAGS}
+       end
+
+       test
+               make test
+       end
+
+       make_install_targets = pure_install DESTDIR=%{BUILDROOT}
+end
+
+packages
+       package %{name}
+               requires
+                       perl
+               end
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
diff --git a/perl-Coro/perl-Coro.nm b/perl-Coro/perl-Coro.nm
new file mode 100644 (file)
index 0000000..e263a67
--- /dev/null
@@ -0,0 +1,65 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = perl-Coro
+version    = 6.08
+release    = 1
+thisapp    = Coro-%{version}
+
+groups     = Development/Libraries
+url        = http://search.cpan.org/dist/Coro/
+license    = GPL+ or Artistic
+summary    = The only real threads in perl.
+
+description
+       This module collection manages continuations in general, most often in the
+       form of cooperative threads (also called coros, or simply "coro" in the
+       documentation). They are similar to kernel threads but don't (in general) run
+       in parallel at the same time even on SMP machines
+end
+
+source_dl  = http://search.cpan.org/CPAN/authors/id/M/ML/MLEHMANN/
+
+build
+       requires
+               perl(ExtUtils::MakeMaker)
+               perl(ExtUtils::ParseXS)
+       end
+
+       prepare_cmds
+               # Fix bad path for perl interpreter.
+               for F in Coro/jit-*.pl; do
+                       sed -i -e '/^#!/d' "$F"
+               done
+       end
+
+       build
+               perl Makefile.PL INSTALLDIRS=perl OPTIMIZE="%{CFLAGS}"
+               make %{PARALLELISMFLAGS}
+       end
+
+       make_install_targets = pure_install DESTDIR=%{BUILDROOT}
+end
+
+packages
+       package %{name}
+               filter_requires
+                       AnyEvent
+                       EV
+                       Event
+                       Guard
+                       Storable
+                       Coro
+               end
+
+               requires
+                       perl
+               end
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
diff --git a/perl-DBI/perl-DBI.nm b/perl-DBI/perl-DBI.nm
new file mode 100644 (file)
index 0000000..84cb0e1
--- /dev/null
@@ -0,0 +1,58 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = perl-DBI
+version    = 1.618
+release    = 1
+thisapp    = DBI-%{version}
+
+groups     = Development/Libraries
+url        = http://dbi.perl.org
+license    = GPL+ or Artistic
+summary    = A database access API for perl.
+
+description
+       DBI is a database access Application Programming Interface (API) for
+       the Perl Language.
+end
+
+source_dl  = http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/
+
+build
+       requires
+               perl(ExtUtils::MakeMaker)
+               perl(ExtUtils::ParseXS)
+               perl(Carp)
+               perl(Test::Simple)
+       end
+
+       build
+               perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{CFLAGS}"
+               make %{PARALLELISMFLAGS}
+       end
+
+       test
+               make test
+       end
+
+       make_install_targets = pure_install DESTDIR=%{BUILDROOT}
+end
+
+packages
+       package %{name}
+               filter_requires
+                       RPC
+                       Win32
+               end
+
+               requires
+                       perl
+               end
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
index 439449cb71e77e9f1d10b0b166e7dd562d3bf2de..b5bce3ffab11b51ba1b2b64060ba02b1311a95db 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = perl-FCGI
 version    = 0.74
-release    = 1
+release    = 2
 thisapp    = FCGI-%{version}
 
 groups     = Development/Libraries
@@ -22,6 +22,7 @@ source_dl  = http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/
 build
        requires
                perl(ExtUtils::MakeMaker)
+               perl(ExtUtils::ParseXS)
        end
 
        build
diff --git a/perl-Font-TTF/perl-Font-TTF.nm b/perl-Font-TTF/perl-Font-TTF.nm
new file mode 100644 (file)
index 0000000..fc0fd19
--- /dev/null
@@ -0,0 +1,60 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = perl-Font-TTF
+version    = 0.48
+release    = 1
+arch       = noarch
+thisapp    = Font-TTF-%{version}
+
+groups     = Development/Libraries
+url        = http://search.cpan.org/dist/Font-TTF/
+license    = Artistic 2.0
+summary    = Perl library for modifying TTF font files.
+
+description
+       Perl module for TrueType font hacking. Supports reading, processing and writing
+       of the following tables: GDEF, GPOS, GSUB, LTSH, OS/2, PCLT, bsln, cmap, cvt,
+       fdsc, feat, fpgm, glyf, hdmx, head, hhea, hmtx, kern, loca, maxp, mort, name,
+       post, prep, prop, vhea, vmtx and the reading and writing of all other table
+       types.
+end
+
+source_dl  = http://search.cpan.org/CPAN/authors/id/M/MH/MHOSKEN/
+
+build
+       requires
+               perl(ExtUtils::MakeMaker)
+               perl(ExtUtils::ParseXS)
+               perl(Test::Simple)
+       end
+
+       build
+               perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{CFLAGS}"
+               make %{PARALLELISMFLAGS}
+       end
+
+       test
+               make test
+       end
+
+       make_install_targets = pure_install DESTDIR=%{BUILDROOT}
+end
+
+packages
+       package %{name}
+               filter_requires
+                       Win32
+               end
+
+               requires
+                       perl
+               end
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
diff --git a/perl-IO-AIO/perl-IO-AIO.nm b/perl-IO-AIO/perl-IO-AIO.nm
new file mode 100644 (file)
index 0000000..2565f49
--- /dev/null
@@ -0,0 +1,58 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = perl-IO-AIO
+version    = 4.15
+release    = 1
+thisapp    = IO-AIO-%{version}
+
+groups     = Development/Libraries
+url        = http://search.cpan.org/dist/IO-AIO/
+license    = GPL+ or Artistic
+summary    = Perl module for Asynchronous Input/Output.
+
+description
+       This module implements asynchronous I/O using whatever means your operating
+       system supports.
+end
+
+source_dl  = http://search.cpan.org/CPAN/authors/id/M/ML/MLEHMANN/
+
+build
+       requires
+               perl(ExtUtils::MakeMaker)
+               perl(ExtUtils::ParseXS)
+               perl(Carp)
+               perl(common::sense)
+       end
+
+       build
+               perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{CFLAGS}"
+               make %{PARALLELISMFLAGS}
+       end
+
+       test
+               make test
+       end
+
+       make_install_targets = pure_install DESTDIR=%{BUILDROOT}
+
+       install_cmds
+               # Remove script we don't want packaged
+               rm -rvf %{BUILDROOT}%{bindir}/treescan
+       end
+end
+
+packages
+       package %{name}
+               requires
+                       perl
+               end
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
diff --git a/perl-common-sense/perl-common-sense.nm b/perl-common-sense/perl-common-sense.nm
new file mode 100644 (file)
index 0000000..f6dfb0e
--- /dev/null
@@ -0,0 +1,53 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = perl-common-sense
+version    = 3.5
+release    = 1
+arch       = noarch
+thisapp    = common-sense-%{version}
+
+groups     = Development/Libraries
+url        = http://search.cpan.org/dist/common-sense
+license    = GPL+ or Artistic
+summary    = "Common sense" Perl defaults.
+
+description
+       This module implements some sane defaults for Perl programs, as defined
+       by two typical (or not so typical - use your common sense) specimens of
+
+       Perl coders:
+               - use strict qw(vars subs);
+               - use feature qw(say state switch);
+               - no warnings;
+end
+
+source_dl  = http://search.cpan.org/CPAN/authors/id/M/ML/MLEHMANN/
+
+build
+       requires
+               perl(ExtUtils::MakeMaker)
+               perl(ExtUtils::ParseXS)
+       end
+
+       build
+               perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{CFLAGS}"
+               make %{PARALLELISMFLAGS}
+       end
+
+       test
+               make test
+       end
+
+       make_install_targets = pure_install DESTDIR=%{BUILDROOT}
+end
+
+packages
+       package %{name}
+               requires
+                       perl
+               end
+       end
+end
diff --git a/pigz/pigz.nm b/pigz/pigz.nm
new file mode 100644 (file)
index 0000000..27a30a2
--- /dev/null
@@ -0,0 +1,44 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = pigz
+version    = 2.2.5
+release    = 1
+
+groups     = Applications/Compression
+url        = http://www.zlib.net/pigz/
+license    = zlib
+summary    = Parallel implementation of gzip.
+
+description
+       pigz, which stands for parallel implementation of gzip,
+       is a fully functional replacement for gzip that exploits
+       multiple processors and multiple cores to the hilt when compressing
+       data.
+end
+
+source_dl  = %{url}
+
+build
+       requires
+               zlib-devel
+       end
+
+       make_build_targets += CFLAGS="%{CFLAGS}"
+
+       install
+               install -p -D pigz %{BUILDROOT}%{bindir}/pigz
+               ln -svf pigz %{BUILDROOT}%{bindir}/unpigz
+               install -p -D pigz.1 -m 644 %{BUILDROOT}%{mandir}/man1/pigz.1
+       end
+end
+
+packages
+       package %{name}
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
index fa240805a50ae6eb4ffaeaf6f42f6e7a6e0ad005..573d3438d0d06dedb2871d70509f83d42faed94e 100644 (file)
@@ -4,11 +4,11 @@
 ###############################################################################
 
 name       = pixman
-version    = 0.18.4
-release    = 2
+version    = 0.25.6
+release    = 1
 
 groups     = System/Libraries
-url        = http://xorg.freedesktop.org/archive/individual/lib/
+url        = http://www.X.org/
 license    = MIT
 summary    = Pixel manipulation library.
 
@@ -16,18 +16,21 @@ description
        Pixman is a pixel manipulation library for X and cairo.
 end
 
-source_dl  =
+source_dl  = http://xorg.freedesktop.org/archive/individual/lib/
 
 build
        requires
+               libpng-devel
                perl
                pkg-config
        end
+
+       configure_options += \
+               --disable-arm-iwmmxt
 end
 
 packages
        package %{name}
-       end
 
        package %{name}-devel
                template DEVEL
diff --git a/plymouth/boot-duration b/plymouth/boot-duration
new file mode 100644 (file)
index 0000000..7fe728c
--- /dev/null
@@ -0,0 +1,39 @@
+0.222:RCkernelparam
+0.223:RChostname
+0.238:RCmountfs
+0.275:RCswap
+0.330:microcode_ctl
+0.357:cpuspeed
+0.365:ip6tables
+0.380:iptables
+0.385:isdn
+0.504:auditd
+0.508:restorecond
+0.523:rsyslog
+0.530:irqbalance
+0.533:rpcbind
+0.549:nfslock
+0.561:mdmonitor
+0.563:rpcidmapd
+0.578:rpcgssd
+0.579:messagebus
+0.580:fuse
+0.594:netfs
+0.600:acpid
+0.611:haldaemon
+0.660:pcscd
+0.691:udev-post
+0.703:portreserve
+0.712:setroubleshoot
+0.749:bluetooth
+0.738:sshd
+0.763:ntpd
+0.807:sendmail
+0.876:crond
+0.902:kerneloops
+0.907:smolt
+0.915:atd
+0.927:avahi-daemon
+0.941:cups
+0.983:anacron
+0.992:local
diff --git a/plymouth/patches/plymouth-0.8.0-everything-is-better-in-red.patch b/plymouth/patches/plymouth-0.8.0-everything-is-better-in-red.patch
new file mode 100644 (file)
index 0000000..7dba9f7
--- /dev/null
@@ -0,0 +1,16 @@
+diff -up plymouth-0.8.0/src/plugins/splash/text/plugin.c.red plymouth-0.8.0/src/plugins/splash/text/plugin.c
+--- plymouth-0.8.0/src/plugins/splash/text/plugin.c.red        2009-11-19 14:40:24.000000000 -0500
++++ plymouth-0.8.0/src/plugins/splash/text/plugin.c    2009-11-19 14:41:40.000000000 -0500
+@@ -184,10 +184,10 @@ view_start_animation (view_t *view)
+                                     0xffffff);
+   ply_terminal_set_color_hex_value (terminal,
+                                     PLY_TERMINAL_COLOR_BLUE,
+-                                    0x0073B3);
++                                    0xCC0A00);
+   ply_terminal_set_color_hex_value (terminal,
+                                     PLY_TERMINAL_COLOR_BROWN,
+-                                    0x00457E);
++                                    0x880400);
+   ply_text_display_set_background_color (view->display,
+                                          PLY_TERMINAL_COLOR_BLACK);
diff --git a/plymouth/patches/plymouth-0.8.6.1-create-missing-links-for-systemd-targets.patch b/plymouth/patches/plymouth-0.8.6.1-create-missing-links-for-systemd-targets.patch
new file mode 100644 (file)
index 0000000..1e1aa95
--- /dev/null
@@ -0,0 +1,71 @@
+From edde4e0f2b85c6f298569fe219a08361b99b016b Mon Sep 17 00:00:00 2001
+From: Frederic Crozat <fcrozat@suse.com>
+Date: Fri, 20 Jul 2012 13:28:31 +0000
+Subject: systemd: create missing links various targets
+
+---
+diff --git a/systemd-units/Makefile.am b/systemd-units/Makefile.am
+index 1545a04..2f5e61f 100644
+--- a/systemd-units/Makefile.am
++++ b/systemd-units/Makefile.am
+@@ -13,6 +13,58 @@ systemd_unit_templates =                                                     \
+ if ENABLE_SYSTEMD_INTEGRATION
+ systemdunitdir=$(SYSTEMD_UNIT_DIR)
+ systemdunit_DATA = $(systemd_unit_templates:.in=)
++
++install-data-hook:
++      $(MKDIR_P) -m 0755                                                   \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysinit.target.wants           \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/multi-user.target.wants        \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/reboot.target.wants            \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/kexec.target.wants             \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/poweroff.target.wants          \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/halt.target.wants
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysinit.target.wants &&            \
++              rm -f plymouth-start.service plymouth-read-write.service &&  \
++              $(LN_S) ../plymouth-start.service &&                         \
++              $(LN_S) ../plymouth-read-write.service)
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/multi-user.target.wants &&         \
++              rm -f plymouth-quit.service plymouth-quit-wait.service &&    \
++              $(LN_S) ../plymouth-quit.service &&                          \
++              $(LN_S) ../plymouth-quit-wait.service)
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/reboot.target.wants &&             \
++              rm -f plymouth-reboot.service &&                             \
++              $(LN_S) ../plymouth-reboot.service)
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/kexec.target.wants &&              \
++              rm -f plymouth-kexec.service &&                              \
++              $(LN_S) ../plymouth-kexec.service)
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/poweroff.target.wants &&           \
++              rm -f plymouth-poweroff.service &&                           \
++              $(LN_S) ../plymouth-poweroff.service)
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/halt.target.wants &&               \
++              rm -f plymouth-halt.service &&                               \
++              $(LN_S) ../plymouth-halt.service)
++
++uninstall-hook:
++      rm -f \
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysinit.target.wants &&            \
++              rm -f plymouth-start.service plymouth-read-write.service)    \
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/multi-user.target.wants &&         \
++              rm -f plymouth-quit.service plymouth-quit-wait.service)      \
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/reboot.target.wants &&             \
++              rm -f plymouth-reboot.service)                               \
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/kexec.target.wants &&              \
++              rm -f plymouth-kexec.service)                                \
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/poweroff.target.wants &&           \
++              rm -f plymouth-poweroff.service)                             \
++      (cd $(DESTDIR)$(SYSTEMD_UNIT_DIR)/halt.target.wants &&               \
++              rm -f plymouth-halt.service)                                 \
++      rmdir --ignore-fail-on-non-empty                                     \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysinit.target.wants           \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/multi-user.target.wants        \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/reboot.target.wants            \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/kexec.target.wants             \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/poweroff.target.wants          \
++              $(DESTDIR)$(SYSTEMD_UNIT_DIR)/halt.target.wants
++
+ endif
+ EXTRA_DIST = $(systemd_unit_templates) $(systemdunit_DATA)
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/plymouth/plymouth-update-initrd b/plymouth/plymouth-update-initrd
new file mode 100644 (file)
index 0000000..c07b561
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+/sbin/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --install $(uname -r)
diff --git a/plymouth/plymouth.nm b/plymouth/plymouth.nm
new file mode 100644 (file)
index 0000000..96507de
--- /dev/null
@@ -0,0 +1,337 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = plymouth
+version    = 0.8.6.1
+release    = 1
+
+groups     = System/Base
+url        = http://www.freedesktop.org/wiki/Software/Plymouth
+license    = GPLv2+
+summary    = Graphical Boot Animation and Logger.
+
+description
+       Plymouth provides an attractive graphical boot animation in
+       place of the text messages that normally get shown. Text
+       messages are instead redirected to a log file for viewing
+       after boot.
+end
+
+source_dl  = http://www.freedesktop.org/software/plymouth/releases/
+sources    = %{thisapp}.tar.bz2
+
+build
+       requires
+               autoconf
+               automake
+               cairo-devel
+               glib2-devel
+               pkgconfig(libdrm)
+               pkgconfig(libdrm_radeon)
+               pkgconfig(libdrm_nouveau)
+               libpng-devel
+               pango-devel
+       end
+
+       enable_libdrm_intel = 0
+
+       if "%{DISTRO_PLATFORM}" == "x86"
+               enable_libdrm_intel = 1
+               requires += pkgconfig(libdrm_intel)
+       end
+
+       CFLAGS += -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
+
+       configure_options += \
+               --libexecdir=/usr/lib \
+               --disable-libkms \
+               --disable-gtk \
+               --enable-tracing \
+               --disable-tests \
+               --with-logo=%{datadir}/pixmaps/system-logo-white.png \
+               --with-background-start-color-stop=0x880400 \
+               --with-background-end-color-stop=0x000000 \
+               --with-background-color=0x880400 \
+               --disable-gdm-transition \
+               --enable-systemd-integration \
+               --without-system-root-install \
+               --without-rhgb-compat-link \
+               --without-log-viewer
+
+       if "%{enable_libdrm_intel}" == "0"
+               configure_options += --disable-libdrm_intel
+       end
+
+       prepare_cmds
+               autoreconf -vfi
+       end
+
+       # Fix install location for systemd files.
+       make_install_targets += \
+               SYSTEMD_UNIT_DIR=%{unitdir}
+
+       install_cmds
+               mkdir -pv %{BUILDROOT}%{datadir}/plymouth
+               mkdir -pv %{BUILDROOT}%{localstatedir}/lib/plymouth
+               cp -vf %{DIR_SOURCE}/boot-duration \
+                       %{BUILDROOT}%{datadir}/plymouth/default-boot-duration
+               cp -vf %{DIR_SOURCE}/boot-duration \
+                       %{BUILDROOT}%{localstatedir}/lib/plymouth
+
+               # Override plymouth-update-initrd to work dracut or mkinitrd
+               cp -vf %{DIR_SOURCE}/plymouth-update-initrd \
+                       %{BUILDROOT}/usr/lib/plymouth/plymouth-update-initrd
+               chmod 755 %{BUILDROOT}/usr/lib/plymouth/plymouth-update-initrd
+       end
+end
+
+packages
+       package %{name}
+               groups += Base
+
+               prerequires
+                       coreutils
+               end
+
+               requires
+                       %{name}-libs = %{thisver}
+                       %{name}-scripts = %{thisver}
+                       %{name}-system-theme = %{thisver}
+                       initscripts
+               end
+
+               conflicts
+                       systemd-units < 185-3
+               end
+
+               configfiles
+                       /etc/plymouth/plymouthd.conf
+               end
+
+               script postin
+                       if [ ! -f "%{localstatedir}/lib/plymouth/boot-duration" ]; then
+                               cp -f %{datadir}/plymouth/default-boot-duration \
+                                       %{localstatedir}/lib/plymouth/boot-duration
+                       fi
+
+                       # Just search for new unit files that were just installed.
+                       /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               # Reload systemd after update.
+               script postup
+                       /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               # Tell systemd that unitfiles have been removed.
+               script postun
+                       /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+
+                       rm -f /boot/initrd-plymouth.img
+               end
+
+               script posttransin
+                       /usr/lib/plymouth/plymouth-generate-initrd >/dev/null 2>&1
+               end
+       end
+
+       package %{name}-libs
+               template LIBS
+       end
+
+       package %{name}-devel
+               template DEVEL
+
+               requires = plymouth-libs = %{thisver}
+       end
+
+       package %{name}-scripts
+               summary = Plymouth related scripts.
+               descrtiption
+                       This package contains scripts that help to integrate
+                       Plymouth with the system.
+               end
+
+               prerequires = /usr/bin/plymouth
+
+               requires
+                       plymouth = %{thisver}
+                       coreutils
+                       cpio
+                       dracut
+                       findutils
+                       grubby
+                       gzip
+               end
+
+               files
+                       %{sbindir}/plymouth-set-default-theme
+                       %{sbindir}/plymouth-set-default-plugin
+                       /usr/lib/plymouth/plymouth-update-initrd
+                       /usr/lib/plymouth/plymouth-generate-initrd
+                       /usr/lib/plymouth/plymouth-populate-initrd
+               end
+       end
+
+       package %{name}-plugin-label
+               summary = Plymouth label plugin.
+               description
+                       This package contains the label plugin for Plymouth.
+                       It provides the ability to render text on graphical boot
+                       splashes using pango and cairo.
+               end
+
+               files
+                       %{libdir}/plymouth/label.so
+               end
+       end
+
+       package %{name}-plugin-fade-throbber
+               summary = Plymouth fade-throbber plugin.
+               description
+                       The package contains the fade-throbber plugin for Plymouth.
+                       It features a centered image that fades in and out while
+                       other images pulsate around during system boot up.
+               end
+
+               requires
+                       %{name}-plugin-label
+               end
+
+               files
+                       %{libdir}/plymouth/fade-throbber.so
+               end
+       end
+
+       package %{name}-plugin-throbgress
+               summary = Plymouth throbgress plugin.
+               description
+                       This package contains the throbgress plugin for Plymouth.
+                       It features a centered logo and animated spinner that spins
+                       repeatedly while a progress bar advances at the bootom of the
+                       screen.
+               end
+
+               requires
+                       %{name}-plugin-label
+               end
+
+               files
+                       %{libdir}/plymouth/throbgress.so
+               end
+       end
+
+       package %{name}-plugin-space-flares
+               summary = Plymouth space-flares plugin.
+               description
+                       This package contains the space-flares plugin for Plymouth.
+                       It features a corner image with animated flares.
+               end
+
+               requires
+                       %{name}-plugin-label
+               end
+
+               files
+                       %{libdir}/plymouth/space-flares.so
+               end
+       end
+
+       package %{name}-plugin-two-step
+               summary = Plymouth two-step plugin.
+               description
+                       This package contains the two-step plugin for Plymouth.
+                       It features a corner image with animated flares.
+               end
+
+               requires
+                       %{name}-plugin-label
+               end
+
+               files
+                       %{libdir}/plymouth/two-step.so
+               end
+       end
+
+       package %{name}-plugin-script
+               files
+                       %{libdir}/plymouth/script.so
+               end
+       end
+
+       template THEME
+               summary = The plymouth "%{theme_name}" theme.
+               description
+                       This package contains the "%{theme_name}" boot
+                       splash theme for plymouth.
+               end
+
+               requires
+                       %{name}-scripts = %{thisver}
+               end
+
+               files
+                       %{datadir}/plymouth/themes/%{theme_name}
+               end
+
+               script postun
+                       if [ "$(%{sbindir}/plymouth-set-default-theme)" = %{theme_name}" ]; then
+                               %{sbindir}/plymouth-set-default-theme --reset
+                               /usr/lib/plymouth/plymouth-generate-initrd
+                       fi
+               end
+       end
+
+       package %{name}-theme-fade-in
+               template THEME
+               theme_name = fade-in
+
+               requires += %{name}-plugin-fade-throbber=%{thisver}
+       end
+
+       package %{name}-theme-spinner
+               template THEME
+               theme_name = spinner
+
+               requires += %{name}-plugin-two-step=%{thisver}
+       end
+
+       package %{name}-theme-spinfinity
+               template THEME
+               theme_name = spinfinity
+
+               requires += %{name}-plugin-throbgress=%{thisver}
+       end
+
+       package %{name}-theme-script
+               template THEME
+               theme_name = script
+
+               requires += %{name}-plugin-script=%{thisver}
+       end
+
+       package %{name}-theme-solar
+               template THEME
+               theme_name = solar
+
+               requires += %{name}-plugin-space-flares=%{thisver}
+       end
+
+       package %{name}-system-theme
+               summary = Plymouth default theme.
+               description
+                       This metapackage tracks the current distribution default theme.
+               end
+
+               groups += Base
+
+               requires
+                       system-logos
+               end
+
+               # Don't package any files.
+               files =
+       end
+end
diff --git a/policycoreutils/patches/policycoreutils-rhat.patch2 b/policycoreutils/patches/policycoreutils-rhat.patch2
new file mode 100644 (file)
index 0000000..bbcb29d
--- /dev/null
@@ -0,0 +1,246668 @@
+diff --git a/policycoreutils/.gitignore b/policycoreutils/.gitignore
+index 50f8b82..9e2d86b 100644
+--- a/policycoreutils/.gitignore
++++ b/policycoreutils/.gitignore
+@@ -14,3 +14,4 @@ sestatus/sestatus
+ setfiles/restorecon
+ setfiles/setfiles
+ setsebool/setsebool
++.tx
+diff --git a/policycoreutils/Makefile b/policycoreutils/Makefile
+index 9cfe3bc..9c242d4 100644
+--- a/policycoreutils/Makefile
++++ b/policycoreutils/Makefile
+@@ -1,4 +1,4 @@
+-SUBDIRS = setfiles semanage load_policy newrole run_init sandbox secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps sepolgen-ifgen setsebool po man
++SUBDIRS = setfiles semanage semanage/default_encoding load_policy newrole run_init sandbox secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps sepolgen-ifgen setsebool po man gui
+ INOTIFYH = $(shell ls /usr/include/sys/inotify.h 2>/dev/null)
+diff --git a/policycoreutils/audit2allow/sepolgen-ifgen b/policycoreutils/audit2allow/sepolgen-ifgen
+index ef4bec3..9b313ec 100644
+--- a/policycoreutils/audit2allow/sepolgen-ifgen
++++ b/policycoreutils/audit2allow/sepolgen-ifgen
+@@ -61,20 +61,10 @@ def parse_options():
+     
+     return options
+-def get_policy():
+-    i = selinux.security_policyvers()
+-    p = selinux.selinux_binary_policy_path() + "." + str(i)
+-    while i > 0 and not os.path.exists(p):
+-        i = i - 1
+-        p = selinux.selinux_binary_policy_path() + "." + str(i)
+-    if i > 0:
+-        return p
+-    return None
+-
+ def get_attrs(policy_path):
+     try:
+         if not policy_path:
+-            policy_path = get_policy()
++            policy_path = selinux.selinux_current_policy_path()
+         if not policy_path:
+             sys.stderr.write("No installed policy to check\n")
+             return None
+diff --git a/policycoreutils/gui/Makefile b/policycoreutils/gui/Makefile
+new file mode 100644
+index 0000000..53efa84
+--- /dev/null
++++ b/policycoreutils/gui/Makefile
+@@ -0,0 +1,38 @@
++# Installation directories.
++PREFIX ?= ${DESTDIR}/usr
++BINDIR ?= $(PREFIX)/bin
++SHAREDIR ?= $(PREFIX)/share/system-config-selinux
++
++TARGETS= \
++booleansPage.py \
++domainsPage.py \
++fcontextPage.py \
++html_util.py \
++loginsPage.py \
++mappingsPage.py \
++modulesPage.py \
++polgen.glade \
++portsPage.py \
++semanagePage.py \
++statusPage.py \
++system-config-selinux.glade \
++usersPage.py \
++selinux.tbl
++
++all: $(TARGETS) system-config-selinux.py polgengui.py templates polgen.py 
++
++install: all
++      -mkdir -p $(SHAREDIR)/templates
++      -mkdir -p $(BINDIR)
++      install -m 755 system-config-selinux.py $(SHAREDIR)
++      install -m 755 polgengui.py $(SHAREDIR)
++      install -m 755 polgen.py $(SHAREDIR)
++      (cd $(BINDIR);  ln -fs ../share/system-config-selinux/polgen.py sepolgen)
++      install -m 644 $(TARGETS) $(SHAREDIR)
++      install -m 644 templates/*.py $(SHAREDIR)/templates/
++
++clean:
++
++indent:
++
++relabel:
+diff --git a/policycoreutils/gui/booleansPage.py b/policycoreutils/gui/booleansPage.py
+new file mode 100644
+index 0000000..dca786d
+--- /dev/null
++++ b/policycoreutils/gui/booleansPage.py
+@@ -0,0 +1,247 @@
++#
++# booleansPage.py - GUI for Booleans page in system-config-securitylevel
++#
++# Dan Walsh <dwalsh@redhat.com>
++#
++# Copyright 2006, 2007 Red Hat, 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
++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++#
++import string
++import gtk
++import gtk.glade
++import os
++import gobject
++import sys
++import tempfile
++import seobject
++import semanagePage
++
++INSTALLPATH='/usr/share/system-config-selinux'
++sys.path.append(INSTALLPATH)
++
++import commands
++ENFORCING=0
++PERMISSIVE=1
++DISABLED=2
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++from glob import fnmatch
++
++class Modifier:
++    def __init__(self,name, on, save):
++        self.on=on
++        self.name=name
++        self.save=save
++
++    def set(self,value):
++        self.on=value
++        self.save=True
++
++    def isOn(self):
++        return self.on
++
++class Boolean(Modifier):
++    def __init__(self,name, val, save=False):
++        Modifier.__init__(self,name, val, save)
++
++ACTIVE = 0
++MODULE = 1
++DESC = 2
++BOOLEAN = 3
++
++class booleansPage:
++    def __init__(self, xml, doDebug=None):
++        self.xml = xml
++        xml.signal_connect("on_lockdown_clicked", self.on_lockdown_clicked)
++        self.window = self.xml.get_widget("mainWindow").get_root_window()
++        self.local = False
++        self.types=[]
++        self.selinuxsupport = True
++        self.typechanged = False
++        self.doDebug = doDebug
++        self.busy_cursor = gtk.gdk.Cursor(gtk.gdk.WATCH)
++        self.ready_cursor = gtk.gdk.Cursor(gtk.gdk.LEFT_PTR)
++
++        # Bring in widgets from glade file.
++        self.typeHBox = xml.get_widget("typeHBox")
++        self.booleanSW = xml.get_widget("booleanSW")
++        self.booleansFilter = xml.get_widget("booleansFilter")
++        self.booleansFilter.connect("focus_out_event", self.filter_changed)
++        self.booleansFilter.connect("activate", self.filter_changed)
++        
++        self.booleansView = xml.get_widget("booleansView")
++        self.typeLabel = xml.get_widget("typeLabel")
++        self.modifySeparator = xml.get_widget("modifySeparator")
++
++        self.revertButton = xml.get_widget("booleanRevertButton")
++        self.revertButton.set_sensitive(self.local)
++        self.revertButton.connect("clicked", self.on_revert_clicked)
++        listStore = gtk.ListStore(gobject.TYPE_STRING)
++        cell = gtk.CellRendererText()
++
++        self.store = gtk.ListStore(gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
++        self.store.set_sort_column_id(1, gtk.SORT_ASCENDING)        
++        self.booleansView.set_model(self.store)
++
++        checkbox = gtk.CellRendererToggle()
++        checkbox.connect("toggled", self.boolean_toggled)
++        col = gtk.TreeViewColumn('Active', checkbox, active = ACTIVE)
++        col.set_clickable(True)
++        col.set_sort_column_id(ACTIVE)
++        self.booleansView.append_column(col)
++
++        col = gtk.TreeViewColumn("Module", gtk.CellRendererText(), text=MODULE)
++        col.set_sort_column_id(MODULE)
++        col.set_resizable(True)
++        self.booleansView.append_column(col)
++
++        col = gtk.TreeViewColumn("Description", gtk.CellRendererText(), text=DESC)
++      col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
++        col.set_fixed_width(400)
++        col.set_sort_column_id(DESC)
++        col.set_resizable(True)
++        self.booleansView.append_column(col)
++
++        col = gtk.TreeViewColumn("Name", gtk.CellRendererText(), text=BOOLEAN)
++        col.set_sort_column_id(BOOLEAN)
++        col.set_resizable(True)
++        self.booleansView.set_search_equal_func(self.__search)
++        self.booleansView.append_column(col)
++        self.filter=""
++        self.load(self.filter)
++            
++    def __search(self, model, col, key, i):
++        sort_col = self.store.get_sort_column_id()[0]
++        if sort_col > 0:
++            val = model.get_value(i, sort_col)
++            if val.lower().startswith(key.lower()):
++                return False
++        return True
++
++    def wait(self):
++        self.window.set_cursor(self.busy_cursor)
++        semanagePage.idle_func()
++    
++    def ready(self):
++        self.window.set_cursor(self.ready_cursor)
++        semanagePage.idle_func()
++    
++    def deleteDialog(self):
++        store, iter = self.booleansView.get_selection().get_selected()
++        if iter == None:
++            return
++        boolean = store.get_value(iter, BOOLEAN)
++        # change cursor
++        if boolean == None:
++            return
++        try:
++            self.wait()
++            (rc, out) = commands.getstatusoutput("semanage boolean -d %s" % boolean)
++            
++            self.ready()
++            if rc != 0:
++                return self.error(out)
++            self.load(self.filter)
++        except ValueError, e:
++            self.error(e.args[0])
++
++    def filter_changed(self, *arg):
++        filter =  arg[0].get_text()
++        if filter != self.filter:
++            self.load(filter)
++            self.filter=filter
++        
++    def use_menus(self):
++        return False
++    
++    def get_description(self):
++        return _("Boolean")
++
++    def match(self,key, filter=""):
++        try:
++            f=filter.lower()
++            cat=self.booleans.get_category(key).lower()
++            val=self.booleans.get_desc(key).lower()
++            k=key.lower()
++            return val.find(f) >= 0 or k.find(f) >= 0 or cat.find(f) >= 0
++        except:
++            return False
++
++
++    def load(self, filter=None):
++        self.store.clear()
++        self.booleans = seobject.booleanRecords()
++        booleansList = self.booleans.get_all(self.local)
++        for name in booleansList:
++            rec = booleansList[name]
++            if self.match(name, filter):
++                iter=self.store.append()
++                self.store.set_value(iter, ACTIVE, rec[2] == 1)
++                self.store.set_value(iter, MODULE, self.booleans.get_category(name))
++                self.store.set_value(iter, DESC, self.booleans.get_desc(name))
++                self.store.set_value(iter, BOOLEAN, name)
++
++    def boolean_toggled(self, widget, row):
++        iter = self.store.get_iter(row)
++        val = self.store.get_value(iter, ACTIVE)
++        key = self.store.get_value(iter, BOOLEAN)
++        self.store.set_value(iter, ACTIVE , not val)
++        self.wait()
++        setsebool="/usr/sbin/setsebool -P %s=%d" % (key, not val)
++        commands.getstatusoutput(setsebool)
++        self.load(self.filter)
++        self.ready()
++
++    def on_revert_clicked(self, button):
++        self.wait()
++        setsebool="semanage boolean --deleteall"
++        commands.getstatusoutput(setsebool)
++        self.load(self.filter)
++        self.ready()
++
++    def on_lockdown_clicked(self, button):
++        try:
++            os.spawnl(os.P_NOWAIT, "/usr/share/system-config-selinux/lockdown.py")
++        except ValueError, e:
++            self.error(e.args[0])
++
++    def on_local_clicked(self, button):
++        self.local = not self.local
++        self.revertButton.set_sensitive(self.local)
++
++        if self.local:
++            button.set_label(_("all"))
++        else:
++            button.set_label(_("Customized"))
++
++        self.load(self.filter)
++        return True
++        
+diff --git a/policycoreutils/gui/domainsPage.py b/policycoreutils/gui/domainsPage.py
+new file mode 100644
+index 0000000..3eeebca
+--- /dev/null
++++ b/policycoreutils/gui/domainsPage.py
+@@ -0,0 +1,154 @@
++## domainsPage.py - show selinux domains
++## Copyright (C) 2009 Red Hat, 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.
++
++## Author: Dan Walsh
++import string
++import gtk
++import gtk.glade
++import os
++import commands
++import gobject
++import sys
++import seobject
++import selinux
++from semanagePage import *;
++import polgen
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++class domainsPage(semanagePage):
++    def __init__(self, xml):
++        semanagePage.__init__(self, xml, "domains", _("Process Domain"))
++        self.domain_filter = xml.get_widget("domainsFilterEntry")
++        self.domain_filter.connect("focus_out_event", self.filter_changed)
++        self.domain_filter.connect("activate", self.filter_changed)
++
++        self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
++        self.view.set_model(self.store)
++        self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++        col = gtk.TreeViewColumn(_("Domain Name"), gtk.CellRendererText(), text = 0)
++        col.set_sort_column_id(0)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
++        col = gtk.TreeViewColumn(_("Mode"), gtk.CellRendererText(), text = 1)
++        col.set_sort_column_id(1)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        self.view.get_selection().connect("changed", self.itemSelected)
++
++        self.permissive_button = xml.get_widget("permissiveButton")
++        self.enforcing_button = xml.get_widget("enforcingButton")
++
++        self.domains=polgen.get_all_domains()
++        self.load()
++        
++    def get_modules(self):
++        modules=[]
++        fd=os.popen("semodule -l")
++        mods = fd.readlines()
++        fd.close()
++        for l in mods:
++            modules.append(l.split()[0])
++        return modules
++
++    def load(self, filter=""):
++        self.filter=filter            
++        self.store.clear()
++        try:
++            modules=self.get_modules()
++            for domain in self.domains:
++                if not self.match(domain, filter):
++                    continue
++                iter = self.store.append()
++                self.store.set_value(iter, 0, domain)
++                t = "permissive_%s_t" % domain 
++                if t in modules:
++                    self.store.set_value(iter, 1, _("Permissive"))
++                else:
++                    self.store.set_value(iter, 1, "")
++        except:
++            pass
++        self.view.get_selection().select_path ((0,))
++    
++    def itemSelected(self, selection):
++        store, iter = selection.get_selected()
++        if iter == None:
++            return
++        p = store.get_value(iter, 1) == _("Permissive")
++        self.permissive_button.set_sensitive(not p)
++        self.enforcing_button.set_sensitive(p)
++
++    def deleteDialog(self):
++        # Do nothing
++        return self.delete()
++    
++    def delete(self):
++        selection = self.view.get_selection()
++        store, iter = selection.get_selected()
++        domain = store.get_value(iter, 0)
++        try:
++            self.wait()
++            status, output = commands.getstatusoutput("semanage permissive -d %s_t" % domain)
++            self.ready()
++            if status != 0:
++                self.error(output)
++            else:
++                domain = store.set_value(iter, 1, "")
++                self.itemSelected(selection)
++                
++        except ValueError, e:
++            self.error(e.args[0])
++
++    def propertiesDialog(self):
++        # Do nothing
++        return
++    
++    def addDialog(self):
++        # Do nothing
++        return self.add()
++    
++    def add(self):
++        selection = self.view.get_selection()
++        store, iter = selection.get_selected()
++        domain = store.get_value(iter, 0)
++        try:
++            self.wait()
++            status, output = commands.getstatusoutput("semanage permissive -a %s_t" % domain)
++            self.ready()
++            if status != 0:
++                self.error(output)
++            else:
++                domain = store.set_value(iter, 1, _("Permissive"))
++                self.itemSelected(selection)
++                
++        except ValueError, e:
++            self.error(e.args[0])
+diff --git a/policycoreutils/gui/fcontextPage.py b/policycoreutils/gui/fcontextPage.py
+new file mode 100644
+index 0000000..d0889b2
+--- /dev/null
++++ b/policycoreutils/gui/fcontextPage.py
+@@ -0,0 +1,223 @@
++## fcontextPage.py - show selinux mappings
++## Copyright (C) 2006 Red Hat, 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.
++
++## Author: Dan Walsh
++import gtk
++import gtk.glade
++import os
++import gobject
++import seobject
++import commands
++from semanagePage import *;
++
++SPEC_COL = 0
++TYPE_COL = 1
++FTYPE_COL = 2
++
++class context:
++    def __init__(self, scontext):
++        self.scontext = scontext
++        con=scontext.split(":")
++        self.type = con[0]
++        if len(con) > 1:
++            self.mls = con[1]
++        else:
++            self.mls = "s0"
++        
++    def __str__(self):
++        return self.scontext
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++
++class fcontextPage(semanagePage):
++    def __init__(self, xml):
++        semanagePage.__init__(self, xml, "fcontext", _("File Labeling"))
++        self.fcontextFilter = xml.get_widget("fcontextFilterEntry")
++        self.fcontextFilter.connect("focus_out_event", self.filter_changed)
++        self.fcontextFilter.connect("activate", self.filter_changed)
++
++        self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
++        self.view = xml.get_widget("fcontextView")
++        self.view.set_model(self.store)
++        self.view.set_search_equal_func(self.search)
++
++        col = gtk.TreeViewColumn(_("File\nSpecification"), gtk.CellRendererText(), text=SPEC_COL)
++      col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
++      col.set_fixed_width(250)
++        
++        col.set_sort_column_id(SPEC_COL)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        col = gtk.TreeViewColumn(_("Selinux\nFile Type"), gtk.CellRendererText(), text=TYPE_COL)
++
++      col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
++      col.set_fixed_width(250)
++        col.set_sort_column_id(TYPE_COL)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        col = gtk.TreeViewColumn(_("File\nType"), gtk.CellRendererText(), text=2)
++        col.set_sort_column_id(FTYPE_COL)
++        col.set_resizable(True)
++        self.view.append_column(col)
++
++        self.store.set_sort_column_id(SPEC_COL, gtk.SORT_ASCENDING)        
++        self.load()
++        self.fcontextEntry = xml.get_widget("fcontextEntry")
++        self.fcontextFileTypeCombo = xml.get_widget("fcontextFileTypeCombo")
++        liststore=self.fcontextFileTypeCombo.get_model()
++        for k in seobject.file_types:
++            if len(k) > 0 and  k[0] != '-':
++                iter=liststore.append()
++                liststore.set_value(iter, 0, k)
++        iter = liststore.get_iter_first()
++        self.fcontextFileTypeCombo.set_active_iter(iter)
++        self.fcontextTypeEntry = xml.get_widget("fcontextTypeEntry")
++        self.fcontextMLSEntry = xml.get_widget("fcontextMLSEntry")
++
++    def match(self, fcon_dict, k, filter):
++        try:
++            f=filter.lower()
++            for con in k:
++                k=con.lower()
++                if k.find(f) >= 0:
++                    return True
++            for con in fcon_dict[k]:
++                k=con.lower()
++                if k.find(f) >= 0:
++                    return True
++        except:
++            pass
++        return False
++
++    def load(self, filter=""):
++        self.filter=filter            
++        self.fcontext=seobject.fcontextRecords()
++        self.store.clear()
++        fcon_dict=self.fcontext.get_all(self.local)
++        keys = fcon_dict.keys()
++        keys.sort()
++        for k in keys:
++            if not self.match(fcon_dict, k, filter):
++                continue
++            iter=self.store.append()
++            self.store.set_value(iter, SPEC_COL, k[0])
++            self.store.set_value(iter, FTYPE_COL, k[1])
++            if fcon_dict[k]:
++                rec="%s:%s" % (fcon_dict[k][2], seobject.translate(fcon_dict[k][3],False))
++            else:
++                rec="<<None>>"
++            self.store.set_value(iter, TYPE_COL, rec)
++        self.view.get_selection().select_path ((0,))
++    
++    def filter_changed(self, *arg):
++        filter =  arg[0].get_text()
++        if filter != self.filter:
++            self.load(filter)
++
++    def dialogInit(self):
++        store, iter = self.view.get_selection().get_selected()
++        self.fcontextEntry.set_text(store.get_value(iter, SPEC_COL))
++        self.fcontextEntry.set_sensitive(False)
++        scontext = store.get_value(iter, TYPE_COL)
++        scon=context(scontext)
++        self.fcontextTypeEntry.set_text(scon.type)
++        self.fcontextMLSEntry.set_text(scon.mls)
++        type=store.get_value(iter, FTYPE_COL)
++        liststore=self.fcontextFileTypeCombo.get_model()
++        iter = liststore.get_iter_first()
++        while iter != None and liststore.get_value(iter,0) != type:
++            iter = liststore.iter_next(iter)
++        if iter != None:
++            self.fcontextFileTypeCombo.set_active_iter(iter)
++        self.fcontextFileTypeCombo.set_sensitive(False)
++        
++    def dialogClear(self):
++        self.fcontextEntry.set_text("")
++        self.fcontextEntry.set_sensitive(True)
++        self.fcontextFileTypeCombo.set_sensitive(True)
++        self.fcontextTypeEntry.set_text("")
++        self.fcontextMLSEntry.set_text("s0")
++        
++    def delete(self):
++        store, iter = self.view.get_selection().get_selected()
++        try:
++            fspec=store.get_value(iter, SPEC_COL)
++            ftype=store.get_value(iter, FTYPE_COL)
++            self.wait()
++            (rc, out) = commands.getstatusoutput("semanage fcontext -d -f '%s' '%s'" % (ftype, fspec))
++            self.ready()
++            
++            if rc != 0:
++                return self.error(out)
++            store.remove(iter)
++            self.view.get_selection().select_path ((0,))
++        except ValueError, e:
++            self.error(e.args[0])
++
++    def add(self):
++        ftype=["", "--", "-d", "-c", "-b", "-s", "-l", "-p" ]
++        fspec=self.fcontextEntry.get_text().strip()
++        type=self.fcontextTypeEntry.get_text().strip()
++        mls=self.fcontextMLSEntry.get_text().strip()
++        list_model=self.fcontextFileTypeCombo.get_model()
++        active = self.fcontextFileTypeCombo.get_active()
++        self.wait()
++        (rc, out) = commands.getstatusoutput("semanage fcontext -a -t %s -r %s -f '%s' '%s'" % (type, mls, ftype[active], fspec))
++        self.ready()
++        if rc != 0:
++            self.error(out)
++            return False
++        
++        iter=self.store.append()
++        self.store.set_value(iter, SPEC_COL, fspec)
++        self.store.set_value(iter, FTYPE_COL, ftype)
++        self.store.set_value(iter, TYPE_COL, "%s:%s" % (type, mls))
++        
++    def modify(self):
++        fspec=self.fcontextEntry.get_text().strip()
++        type=self.fcontextTypeEntry.get_text().strip()
++        mls=self.fcontextMLSEntry.get_text().strip()
++        list_model=self.fcontextFileTypeCombo.get_model()
++        iter = self.fcontextFileTypeCombo.get_active_iter()
++        ftype=list_model.get_value(iter,0)
++        self.wait()
++        (rc, out) = commands.getstatusoutput("semanage fcontext -m -t %s -r %s -f '%s' '%s'" % (type, mls, ftype, fspec))
++        self.ready()
++        if rc != 0:
++            self.error(out)
++            return False
++
++        store, iter = self.view.get_selection().get_selected()
++        self.store.set_value(iter, SPEC_COL, fspec)
++        self.store.set_value(iter, FTYPE_COL, ftype)
++        self.store.set_value(iter, TYPE_COL, "%s:%s" % (type, mls))
+diff --git a/policycoreutils/gui/html_util.py b/policycoreutils/gui/html_util.py
+new file mode 100644
+index 0000000..d41643c
+--- /dev/null
++++ b/policycoreutils/gui/html_util.py
+@@ -0,0 +1,164 @@
++# Authors: John Dennis <jdennis@redhat.com>
++#
++# Copyright (C) 2007 Red Hat, 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.
++#
++
++
++__all__ = [
++    'escape_html',
++    'unescape_html',
++    'html_to_text',
++
++    'html_document',
++]
++
++import htmllib
++import formatter as Formatter
++import string
++from types import *
++import StringIO
++
++#------------------------------------------------------------------------------
++
++class TextWriter(Formatter.DumbWriter):
++    def __init__(self, file=None, maxcol=80, indent_width=4):
++        Formatter.DumbWriter.__init__(self, file, maxcol)
++        self.indent_level = 0
++        self.indent_width = indent_width
++        self._set_indent()
++
++    def _set_indent(self):
++        self.indent_col = self.indent_level * self.indent_width
++        self.indent = ' ' * self.indent_col
++
++    def new_margin(self, margin, level):
++        self.indent_level = level
++        self._set_indent()
++
++    def send_label_data(self, data):
++        data = data + ' '
++        if len(data) > self.indent_col:
++            self.send_literal_data(data)
++        else:
++            offset = self.indent_col - len(data)
++            self.send_literal_data(' ' * offset + data)
++
++    def send_flowing_data(self, data):
++        if not data: return
++        atbreak = self.atbreak or data[0] in string.whitespace
++        col = self.col
++        maxcol = self.maxcol
++        write = self.file.write
++        col = self.col
++        if col == 0:
++            write(self.indent)
++            col = self.indent_col
++        for word in data.split():
++            if atbreak:
++                if col + len(word) >= maxcol:
++                    write('\n' + self.indent)
++                    col = self.indent_col
++                else:
++                    write(' ')
++                    col = col + 1
++            write(word)
++            col = col + len(word)
++            atbreak = 1
++        self.col = col
++        self.atbreak = data[-1] in string.whitespace
++            
++class HTMLParserAnchor(htmllib.HTMLParser):
++
++    def __init__(self, formatter, verbose=0):
++        htmllib.HTMLParser.__init__(self, formatter, verbose)
++
++    def anchor_bgn(self, href, name, type):
++        self.anchor = href
++
++    def anchor_end(self):
++        if self.anchor:
++            self.handle_data(' (%s) ' % self.anchor)
++            self.anchor = None
++
++#------------------------------------------------------------------------------
++
++def escape_html(s):
++    if s is None: return None
++    s = s.replace("&", "&amp;") # Must be done first!
++    s = s.replace("<", "&lt;")
++    s = s.replace(">", "&gt;")
++    s = s.replace("'", "&apos;")
++    s = s.replace('"', "&quot;")
++    return s
++
++
++def unescape_html(s):
++    if s is None: return None
++    if '&' not in s:
++        return s
++    s = s.replace("&lt;", "<")
++    s = s.replace("&gt;", ">")
++    s = s.replace("&apos;", "'")
++    s = s.replace("&quot;", '"')
++    s = s.replace("&amp;", "&") # Must be last
++    return s
++
++def html_to_text(html, maxcol=80):
++    try:
++        buffer = StringIO.StringIO()
++        formatter = Formatter.AbstractFormatter(TextWriter(buffer, maxcol))
++        parser = HTMLParserAnchor(formatter)
++        parser.feed(html)
++        parser.close()
++        text = buffer.getvalue()
++        buffer.close()
++        return text
++    except Exception, e:
++        log_program.error('cannot convert html to text: %s' % e)
++        return None
++
++def html_document(*body_components):
++    '''Wrap the body components in a HTML document structure with a valid header.
++    Accepts a variable number of arguments of of which canb be:
++    * string
++    * a sequences of strings (tuple or list).
++    * a callable object taking no parameters and returning a string or sequence of strings.
++    '''
++    head = '<html>\n  <head>\n    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>\n  </head>\n  <body>\n'
++    tail = '\n  </body>\n</html>'
++
++    doc = head
++
++    for body_component in body_components:
++        if type(body_component) is StringTypes:
++            doc += body_component
++        elif type(body_component) in [TupleType, ListType]:
++            for item in body_component:
++                doc += item
++        elif callable(body_component):
++            result = body_component()
++            if type(result) in [TupleType, ListType]:
++                for item in result:
++                    doc += item
++            else:
++                doc += result
++        else:
++            doc += body_component
++
++    doc += tail
++    return doc
++
+diff --git a/policycoreutils/gui/lockdown.glade b/policycoreutils/gui/lockdown.glade
+new file mode 100644
+index 0000000..714da60
+--- /dev/null
++++ b/policycoreutils/gui/lockdown.glade
+@@ -0,0 +1,771 @@
++<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
++<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
++
++<glade-interface>
++<requires lib="gnome"/>
++<requires lib="bonobo"/>
++
++<widget class="GtkAboutDialog" id="aboutWindow">
++  <property name="border_width">5</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="name" translatable="yes">system-config-selinux</property>
++  <property name="copyright" translatable="yes">Copyright (c)2006 Red Hat, Inc.
++Copyright (c) 2006 Dan Walsh &lt;dwalsh@redhat.com&gt;</property>
++  <property name="wrap_license">False</property>
++  <property name="authors">Daniel Walsh &lt;dwalsh@redhat.com&gt;
++</property>
++  <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
++  <property name="logo">system-config-selinux.png</property>
++</widget>
++
++<widget class="GnomeApp" id="mainWindow">
++  <property name="width_request">800</property>
++  <property name="height_request">400</property>
++  <property name="title" translatable="yes">SELinux Boolean Lockdown</property>
++  <property name="type">GTK_WINDOW_TOPLEVEL</property>
++  <property name="window_position">GTK_WIN_POS_NONE</property>
++  <property name="modal">False</property>
++  <property name="resizable">True</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="icon">system-config-selinux.png</property>
++  <property name="decorated">True</property>
++  <property name="skip_taskbar_hint">False</property>
++  <property name="skip_pager_hint">False</property>
++  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
++  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
++  <property name="focus_on_map">True</property>
++  <property name="urgency_hint">False</property>
++  <property name="enable_layout_config">True</property>
++
++  <child internal-child="dock">
++    <widget class="BonoboDock" id="bonobodock2">
++      <property name="visible">True</property>
++      <property name="allow_floating">True</property>
++
++      <child>
++      <widget class="BonoboDockItem" id="bonobodockitem3">
++        <property name="visible">True</property>
++        <property name="shadow_type">GTK_SHADOW_NONE</property>
++
++        <child>
++          <widget class="GtkMenuBar" id="menubar1">
++            <property name="visible">True</property>
++            <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
++            <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
++
++            <child>
++              <widget class="GtkMenuItem" id="file1">
++                <property name="visible">True</property>
++                <property name="stock_item">GNOMEUIINFO_MENU_FILE_TREE</property>
++
++                <child>
++                  <widget class="GtkMenu" id="file1_menu">
++
++                    <child>
++                      <widget class="GtkImageMenuItem" id="forward_menu_item">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">_Forward</property>
++                        <property name="use_underline">True</property>
++                        <signal name="activate" handler="on_forward_clicked" last_modification_time="Thu, 24 Apr 2008 10:18:41 GMT"/>
++                        <accelerator key="f" modifiers="GDK_CONTROL_MASK" signal="activate"/>
++
++                        <child internal-child="image">
++                          <widget class="GtkImage" id="image46">
++                            <property name="visible">True</property>
++                            <property name="stock">gtk-media-next</property>
++                            <property name="icon_size">1</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xpad">0</property>
++                            <property name="ypad">0</property>
++                          </widget>
++                        </child>
++                      </widget>
++                    </child>
++
++                    <child>
++                      <widget class="GtkImageMenuItem" id="previous_menu_item">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">_Previous</property>
++                        <property name="use_underline">True</property>
++                        <signal name="activate" handler="on_previous_clicked" last_modification_time="Thu, 24 Apr 2008 10:18:41 GMT"/>
++                        <accelerator key="p" modifiers="GDK_CONTROL_MASK" signal="activate"/>
++
++                        <child internal-child="image">
++                          <widget class="GtkImage" id="image47">
++                            <property name="visible">True</property>
++                            <property name="stock">gtk-media-previous</property>
++                            <property name="icon_size">1</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xpad">0</property>
++                            <property name="ypad">0</property>
++                          </widget>
++                        </child>
++                      </widget>
++                    </child>
++
++                    <child>
++                      <widget class="GtkSeparatorMenuItem" id="separator1">
++                        <property name="visible">True</property>
++                      </widget>
++                    </child>
++
++                    <child>
++                      <widget class="GtkImageMenuItem" id="save_as2">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">Save As</property>
++                        <property name="use_underline">True</property>
++                        <signal name="activate" handler="on_save_clicked" last_modification_time="Thu, 03 Jul 2008 13:30:05 GMT"/>
++                        <accelerator key="s" modifiers="GDK_CONTROL_MASK" signal="activate"/>
++
++                        <child internal-child="image">
++                          <widget class="GtkImage" id="image48">
++                            <property name="visible">True</property>
++                            <property name="stock">gtk-save-as</property>
++                            <property name="icon_size">1</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xpad">0</property>
++                            <property name="ypad">0</property>
++                          </widget>
++                        </child>
++                      </widget>
++                    </child>
++
++                    <child>
++                      <widget class="GtkImageMenuItem" id="apply1">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">Apply</property>
++                        <property name="use_underline">True</property>
++                        <signal name="activate" handler="on_apply_clicked" last_modification_time="Thu, 03 Jul 2008 13:25:23 GMT"/>
++                        <accelerator key="a" modifiers="GDK_CONTROL_MASK" signal="activate"/>
++
++                        <child internal-child="image">
++                          <widget class="GtkImage" id="image49">
++                            <property name="visible">True</property>
++                            <property name="stock">gtk-apply</property>
++                            <property name="icon_size">1</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xpad">0</property>
++                            <property name="ypad">0</property>
++                          </widget>
++                        </child>
++                      </widget>
++                    </child>
++
++                    <child>
++                      <widget class="GtkImageMenuItem" id="cancel">
++                        <property name="visible">True</property>
++                        <property name="stock_item">GNOMEUIINFO_MENU_EXIT_ITEM</property>
++                        <signal name="activate" handler="on_cancel_clicked" last_modification_time="Thu, 24 Apr 2008 10:18:41 GMT"/>
++                      </widget>
++                    </child>
++                  </widget>
++                </child>
++              </widget>
++            </child>
++
++            <child>
++              <widget class="GtkMenuItem" id="help1">
++                <property name="visible">True</property>
++                <property name="stock_item">GNOMEUIINFO_MENU_HELP_TREE</property>
++
++                <child>
++                  <widget class="GtkMenu" id="help1_menu">
++
++                    <child>
++                      <widget class="GtkImageMenuItem" id="about">
++                        <property name="visible">True</property>
++                        <property name="stock_item">GNOMEUIINFO_MENU_ABOUT_ITEM</property>
++                        <signal name="activate" handler="on_about_activate" last_modification_time="Fri, 06 Oct 2006 13:58:02 GMT"/>
++                      </widget>
++                    </child>
++                  </widget>
++                </child>
++              </widget>
++            </child>
++          </widget>
++        </child>
++      </widget>
++      <packing>
++        <property name="placement">BONOBO_DOCK_TOP</property>
++        <property name="band">0</property>
++        <property name="position">0</property>
++        <property name="offset">0</property>
++        <property name="behavior">BONOBO_DOCK_ITEM_BEH_EXCLUSIVE|BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL|BONOBO_DOCK_ITEM_BEH_LOCKED</property>
++      </packing>
++      </child>
++
++      <child>
++      <widget class="GtkHPaned" id="hpaned1">
++        <property name="visible">True</property>
++        <property name="can_focus">True</property>
++        <property name="position">0</property>
++
++        <child>
++          <widget class="GtkFrame" id="frame1">
++            <property name="border_width">5</property>
++            <property name="visible">True</property>
++            <property name="label_xalign">0</property>
++            <property name="label_yalign">0.5</property>
++            <property name="shadow_type">GTK_SHADOW_NONE</property>
++
++            <child>
++              <widget class="GtkAlignment" id="alignment1">
++                <property name="visible">True</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xscale">1</property>
++                <property name="yscale">1</property>
++                <property name="top_padding">0</property>
++                <property name="bottom_padding">0</property>
++                <property name="left_padding">12</property>
++                <property name="right_padding">0</property>
++
++                <child>
++                  <widget class="GtkScrolledWindow" id="scrolledwindow21">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="shadow_type">GTK_SHADOW_NONE</property>
++                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                    <child>
++                      <widget class="GtkTreeView" id="booleanView">
++                        <property name="width_request">300</property>
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Select Management Object</property>
++                        <property name="can_focus">True</property>
++                        <property name="headers_visible">False</property>
++                        <property name="rules_hint">False</property>
++                        <property name="reorderable">False</property>
++                        <property name="enable_search">True</property>
++                        <property name="fixed_height_mode">False</property>
++                        <property name="hover_selection">False</property>
++                        <property name="hover_expand">False</property>
++                      </widget>
++                    </child>
++                  </widget>
++                </child>
++              </widget>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label45">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Select:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="type">label_item</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="shrink">False</property>
++            <property name="resize">False</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox1">
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkVBox" id="radio_vbox">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">0</property>
++
++                <child>
++                  <widget class="GtkScrolledWindow" id="html_scrolledwindow">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="shadow_type">GTK_SHADOW_NONE</property>
++                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                    <child>
++                      <placeholder/>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHButtonBox" id="savebox">
++                    <property name="visible">True</property>
++                    <property name="layout_style">GTK_BUTTONBOX_END</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkButton" id="button4">
++                        <property name="visible">True</property>
++                        <property name="can_default">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="label">gtk-apply</property>
++                        <property name="use_stock">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <signal name="clicked" handler="on_apply_clicked" last_modification_time="Thu, 03 Jul 2008 12:39:08 GMT"/>
++                      </widget>
++                    </child>
++
++                    <child>
++                      <widget class="GtkButton" id="savebutton">
++                        <property name="visible">True</property>
++                        <property name="can_default">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="label">gtk-save-as</property>
++                        <property name="use_stock">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <signal name="clicked" handler="on_save_clicked" last_modification_time="Thu, 03 Jul 2008 12:38:54 GMT"/>
++                      </widget>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                    <property name="pack_type">GTK_PACK_END</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="radiobox">
++                    <property name="homogeneous">True</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkRadioButton" id="enable_radiobutton">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <property name="active">False</property>
++                        <property name="inconsistent">False</property>
++                        <property name="draw_indicator">True</property>
++
++                        <child>
++                          <widget class="GtkAlignment" id="alignment2">
++                            <property name="visible">True</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xscale">0</property>
++                            <property name="yscale">0</property>
++                            <property name="top_padding">0</property>
++                            <property name="bottom_padding">0</property>
++                            <property name="left_padding">0</property>
++                            <property name="right_padding">0</property>
++
++                            <child>
++                              <widget class="GtkHBox" id="hbox15">
++                                <property name="visible">True</property>
++                                <property name="homogeneous">False</property>
++                                <property name="spacing">2</property>
++
++                                <child>
++                                  <widget class="GtkImage" id="image20">
++                                    <property name="visible">True</property>
++                                    <property name="stock">gtk-yes</property>
++                                    <property name="icon_size">4</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++
++                                <child>
++                                  <widget class="GtkLabel" id="button1">
++                                    <property name="label" translatable="yes">Enable</property>
++                                    <property name="use_underline">True</property>
++                                    <property name="use_markup">False</property>
++                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                    <property name="wrap">False</property>
++                                    <property name="selectable">False</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                    <property name="width_chars">-1</property>
++                                    <property name="single_line_mode">False</property>
++                                    <property name="angle">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++                              </widget>
++                            </child>
++                          </widget>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkRadioButton" id="disable_radiobutton">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <property name="active">False</property>
++                        <property name="inconsistent">False</property>
++                        <property name="draw_indicator">True</property>
++                        <property name="group">enable_radiobutton</property>
++
++                        <child>
++                          <widget class="GtkAlignment" id="alignment3">
++                            <property name="visible">True</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xscale">0</property>
++                            <property name="yscale">0</property>
++                            <property name="top_padding">0</property>
++                            <property name="bottom_padding">0</property>
++                            <property name="left_padding">0</property>
++                            <property name="right_padding">0</property>
++
++                            <child>
++                              <widget class="GtkHBox" id="hbox16">
++                                <property name="visible">True</property>
++                                <property name="homogeneous">False</property>
++                                <property name="spacing">2</property>
++
++                                <child>
++                                  <widget class="GtkImage" id="image21">
++                                    <property name="visible">True</property>
++                                    <property name="stock">gtk-no</property>
++                                    <property name="icon_size">4</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++
++                                <child>
++                                  <widget class="GtkLabel" id="label60">
++                                    <property name="visible">True</property>
++                                    <property name="label" translatable="yes">Disable</property>
++                                    <property name="use_underline">True</property>
++                                    <property name="use_markup">False</property>
++                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                    <property name="wrap">False</property>
++                                    <property name="selectable">False</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                    <property name="width_chars">-1</property>
++                                    <property name="single_line_mode">False</property>
++                                    <property name="angle">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++                              </widget>
++                            </child>
++                          </widget>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkRadioButton" id="default_radiobutton">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <property name="active">False</property>
++                        <property name="inconsistent">False</property>
++                        <property name="draw_indicator">True</property>
++                        <property name="group">enable_radiobutton</property>
++
++                        <child>
++                          <widget class="GtkAlignment" id="alignment4">
++                            <property name="visible">True</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xscale">0</property>
++                            <property name="yscale">0</property>
++                            <property name="top_padding">0</property>
++                            <property name="bottom_padding">0</property>
++                            <property name="left_padding">0</property>
++                            <property name="right_padding">0</property>
++
++                            <child>
++                              <widget class="GtkHBox" id="hbox17">
++                                <property name="visible">True</property>
++                                <property name="homogeneous">False</property>
++                                <property name="spacing">2</property>
++
++                                <child>
++                                  <widget class="GtkImage" id="image22">
++                                    <property name="visible">True</property>
++                                    <property name="stock">gtk-undo</property>
++                                    <property name="icon_size">4</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++
++                                <child>
++                                  <widget class="GtkLabel" id="label61">
++                                    <property name="visible">True</property>
++                                    <property name="label" translatable="yes">Default</property>
++                                    <property name="use_underline">True</property>
++                                    <property name="use_markup">False</property>
++                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                    <property name="wrap">False</property>
++                                    <property name="selectable">False</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                    <property name="width_chars">-1</property>
++                                    <property name="single_line_mode">False</property>
++                                    <property name="angle">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++                              </widget>
++                            </child>
++                          </widget>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">11</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHButtonBox" id="hbuttonbox4">
++                    <property name="visible">True</property>
++                    <property name="layout_style">GTK_BUTTONBOX_END</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkButton" id="cancelButton">
++                        <property name="visible">True</property>
++                        <property name="can_default">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="label">gtk-quit</property>
++                        <property name="use_stock">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <signal name="clicked" handler="on_cancel_clicked" last_modification_time="Thu, 24 Apr 2008 10:14:10 GMT"/>
++                      </widget>
++                    </child>
++
++                    <child>
++                      <widget class="GtkButton" id="previousButton">
++                        <property name="visible">True</property>
++                        <property name="can_default">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="label">gtk-media-previous</property>
++                        <property name="use_stock">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <signal name="clicked" handler="on_previous_clicked" last_modification_time="Thu, 24 Apr 2008 10:14:23 GMT"/>
++                      </widget>
++                    </child>
++
++                    <child>
++                      <widget class="GtkButton" id="forwardButton">
++                        <property name="visible">True</property>
++                        <property name="can_default">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="label">gtk-media-forward</property>
++                        <property name="use_stock">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <signal name="clicked" handler="on_forward_clicked" last_modification_time="Thu, 24 Apr 2008 10:14:38 GMT"/>
++                      </widget>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="shrink">True</property>
++            <property name="resize">True</property>
++          </packing>
++        </child>
++      </widget>
++      </child>
++    </widget>
++    <packing>
++      <property name="padding">0</property>
++      <property name="expand">True</property>
++      <property name="fill">True</property>
++    </packing>
++  </child>
++
++  <child internal-child="appbar">
++    <widget class="GnomeAppBar" id="appbar2">
++      <property name="visible">True</property>
++      <property name="has_progress">True</property>
++      <property name="has_status">True</property>
++    </widget>
++    <packing>
++      <property name="padding">0</property>
++      <property name="expand">True</property>
++      <property name="fill">True</property>
++    </packing>
++  </child>
++</widget>
++
++<widget class="GtkFileChooserDialog" id="filechooserdialog">
++  <property name="border_width">5</property>
++  <property name="tooltip" translatable="yes">Select file name to save  boolean settings.</property>
++  <property name="action">GTK_FILE_CHOOSER_ACTION_SAVE</property>
++  <property name="local_only">True</property>
++  <property name="select_multiple">False</property>
++  <property name="show_hidden">False</property>
++  <property name="do_overwrite_confirmation">False</property>
++  <property name="title" translatable="yes">Save Boolean Configuration File</property>
++  <property name="type">GTK_WINDOW_TOPLEVEL</property>
++  <property name="window_position">GTK_WIN_POS_MOUSE</property>
++  <property name="modal">False</property>
++  <property name="resizable">True</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="decorated">True</property>
++  <property name="skip_taskbar_hint">False</property>
++  <property name="skip_pager_hint">False</property>
++  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
++  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
++  <property name="focus_on_map">True</property>
++  <property name="urgency_hint">False</property>
++
++  <child internal-child="vbox">
++    <widget class="GtkVBox" id="dialog-vbox1">
++      <property name="visible">True</property>
++      <property name="homogeneous">False</property>
++      <property name="spacing">2</property>
++
++      <child internal-child="action_area">
++      <widget class="GtkHButtonBox" id="dialog-action_area1">
++        <property name="visible">True</property>
++        <property name="layout_style">GTK_BUTTONBOX_END</property>
++
++        <child>
++          <widget class="GtkButton" id="button7">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-cancel</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-6</property>
++          </widget>
++        </child>
++
++        <child>
++          <widget class="GtkButton" id="button8">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="has_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-save</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-5</property>
++          </widget>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">False</property>
++        <property name="fill">True</property>
++        <property name="pack_type">GTK_PACK_END</property>
++      </packing>
++      </child>
++    </widget>
++  </child>
++</widget>
++
++</glade-interface>
+diff --git a/policycoreutils/gui/lockdown.py b/policycoreutils/gui/lockdown.py
+new file mode 100644
+index 0000000..3c29327
+--- /dev/null
++++ b/policycoreutils/gui/lockdown.py
+@@ -0,0 +1,375 @@
++#!/usr/bin/python
++#
++# lockdown.py - GUI for Booleans page in system-config-securitylevel
++#
++# Dan Walsh <dwalsh@redhat.com>
++#
++# Copyright 2008 Red Hat, 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
++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++#
++import signal
++import string
++import gtk
++import gtk.glade
++import os
++import gobject
++import gnome
++import sys
++import selinux
++import seobject
++import webkit
++import commands
++import tempfile
++
++from html_util import *
++
++gnome.program_init("SELinux Boolean Lockdown Tool", "5")
++
++INSTALLPATH='/usr/share/system-config-selinux'
++sys.path.append(INSTALLPATH)
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++from glob import fnmatch
++
++STATUS=(_("Disable"), _("Enable"), _("Default"))
++DISABLE = 0
++ENABLE = 1
++DEFAULT = 2
++
++def idle_func():
++    while gtk.events_pending():
++        gtk.main_iteration()
++        
++def td_fmt(val):
++    return '<td>%s</td>' % val
++
++tr_fmt = '<tr>%s</tr>\n'
++
++p_fmt = '<p>%s\n'
++
++##
++## Pull in the Glade file
++##
++if os.access("system-config-selinux.glade", os.F_OK):
++    xml = gtk.glade.XML ("lockdown.glade", domain=PROGNAME)
++else:
++    xml = gtk.glade.XML ("/usr/share/system-config-selinux/lockdown.glade", domain=PROGNAME)
++BOOLEAN = 0
++class booleanWindow:
++    def __init__(self):
++        self.tabs=[]
++        self.xml = xml
++        xml.signal_connect("on_cancel_clicked", self.cancel)
++        xml.signal_connect("on_forward_clicked", self.forward)
++        xml.signal_connect("on_previous_clicked", self.previous)
++        xml.signal_connect("on_save_clicked", self.save)
++        xml.signal_connect("on_apply_clicked", self.apply)
++        self.xml = xml
++        self.mainWindow = self.xml.get_widget("mainWindow")
++        self.forwardbutton = self.xml.get_widget("forwardButton")
++        self.window = self.xml.get_widget("mainWindow").get_root_window()
++        self.busy_cursor = gtk.gdk.Cursor(gtk.gdk.WATCH)
++        self.ready_cursor = gtk.gdk.Cursor(gtk.gdk.LEFT_PTR)
++        self.radiobox = self.xml.get_widget("radiobox")
++        self.savebox = self.xml.get_widget("savebox")
++        self.file_dialog = self.xml.get_widget("filechooserdialog")
++        self.vbox = self.xml.get_widget("vbox")
++        self.enable_radiobutton = self.xml.get_widget("enable_radiobutton")
++        self.enable_radiobutton.connect("toggled", self.toggled)
++        self.disable_radiobutton = self.xml.get_widget("disable_radiobutton")
++        self.disable_radiobutton.connect("toggled", self.toggled)
++        self.default_radiobutton = self.xml.get_widget("default_radiobutton")
++        self.default_radiobutton.connect("toggled", self.toggled)
++        self.html_scrolledwindow = self.xml.get_widget("html_scrolledwindow")
++        self.view = xml.get_widget("booleanView")
++        self.view.get_selection().connect("changed", self.itemSelected)
++
++        self.store = gtk.TreeStore(gobject.TYPE_STRING)
++        self.view.set_model(self.store)
++
++        col = gtk.TreeViewColumn("Boolean", gtk.CellRendererText(), text=BOOLEAN)
++        col.set_sort_column_id(BOOLEAN)
++        col.set_resizable(True)
++        self.view.append_column(col)
++
++        self.html_view = self.create_htmlview(self.html_scrolledwindow)
++        self.load()
++        self.view.get_selection().select_path ((0,))
++
++    def create_htmlview(self, container):
++        view = webkit.WebView()
++        container.add(view)
++        return (view)
++
++    def wait(self):
++        self.window.set_cursor(self.busy_cursor)
++        idle_func()
++    
++    def ready(self):
++        self.window.set_cursor(self.ready_cursor)
++        idle_func()
++    
++    def load(self):
++        self.store.clear()
++        self.booleans = seobject.booleanRecords()
++        booleansList = self.booleans.get_all(0)
++        self.booldict = {}
++        for name in booleansList:
++            cat = self.booleans.get_category(name)
++            if cat not in self.booldict:
++                self.booldict[cat] = {}
++            
++            rec = booleansList[name]
++            self.booldict[cat][name]= [rec[2], self.booleans.get_desc(name)]
++
++        cats = self.booldict.keys()
++        cats.sort()
++
++        citer = self.store.append(None)
++        self.store.set_value(citer, BOOLEAN, "Begin")
++        for cat in  cats:
++            citer = self.store.append(None)
++            self.store.set_value(citer, BOOLEAN, cat)
++            bools = self.booldict[cat].keys()
++            for bool in  bools:
++                biter = self.store.append(citer)
++                self.store.set_value(biter, BOOLEAN, bool)
++            biter = self.store.append(citer)
++            self.store.set_value(biter, BOOLEAN, "Finish")
++        citer = self.store.append(None)
++        self.store.set_value(citer, BOOLEAN, "Finish")
++
++    def on_about_activate(self, args):
++        dlg = xml.get_widget ("aboutWindow")
++        dlg.run ()
++        dlg.hide ()
++
++    def cancel(self, args):
++        gtk.main_quit()
++
++    def error(self, message):
++        dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR,
++                                gtk.BUTTONS_CLOSE,
++                                message)
++        dlg.set_position(gtk.WIN_POS_MOUSE)
++        dlg.show_all()
++        dlg.run()
++        dlg.destroy()
++
++    def __out(self):
++        out = ''
++        for c in self.booldict.keys():
++            for b in self.booldict[c]:
++                out += "%s=%s\n" % (b, self.booldict[c][b][0])
++        return out
++
++    def save(self, args):
++        self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_SAVE)
++        rc = self.file_dialog.run()
++        self.file_dialog.hide()
++        if rc == gtk.RESPONSE_OK:
++            try:
++                fd = open(self.file_dialog.get_filename(), "w")
++                fd.write(self.__out())
++                fd.close()
++
++            except IOError, e:
++                self.error(e)
++
++    def apply(self, args):
++        fd = tempfile.NamedTemporaryFile(dir = "/var/lib/selinux")
++        fd.write(self.__out())
++        fd.flush()
++        self.wait()
++        rc, err = commands.getstatusoutput("semanage boolean -m -F %s" % fd.name)
++        self.ready()
++        fd.close()
++        if rc != 0:
++            self.error(err)
++
++    def forward(self, args):
++        selection = self.view.get_selection()
++        store, iter = selection.get_selected()
++        if self.store.iter_has_child(iter):
++            store, rows = selection.get_selected_rows()
++            self.view.expand_to_path(rows[0])
++            niter = self.store.iter_nth_child(iter, 0)
++        else:
++            niter = store.iter_next(iter)
++
++        if niter == None:
++            piter = self.store.iter_parent(iter)
++            if piter == None:
++                return
++            niter = store.iter_next(piter)
++
++        if niter != None:
++            selection.select_iter(niter)
++            store, rows = selection.get_selected_rows()
++            self.view.scroll_to_cell(rows[0])
++        else:
++            print "Finish"
++
++    def toggled(self, button):
++        if button.get_active() == False:
++            return
++        if self.cat == None:
++            return
++        if self.disable_radiobutton == button:
++            self.booldict[self.cat][self.name][0] = DISABLE
++        if self.enable_radiobutton == button:
++            self.booldict[self.cat][self.name][0] = ENABLE
++        if self.default_radiobutton == button:
++            self.booldict[self.cat][self.name][0] = DEFAULT
++
++    def previous(self, args):
++        selection = self.view.get_selection()
++        store, iter = selection.get_selected()
++        store, rows = selection.get_selected_rows()
++        row = rows[0]
++        if len(row) == 1 or self.store.iter_has_child(iter):
++            if row[0] == 0:
++                return
++            nrow = row[0] - 1
++            iter = self.store.get_iter((nrow,))
++            if self.store.iter_has_child(iter):
++                self.view.expand_to_path((nrow,))
++                n = store.iter_n_children(iter) -1
++                piter = store.iter_nth_child(iter, n)
++            else:
++                piter = iter
++        else:
++            if row[1] == 0:
++                piter = self.store.iter_parent(iter)
++            else:
++                r0 = row[0]
++                r1 = row[1] - 1
++                piter = self.store.get_iter((r0,r1))
++        if piter != None:
++            selection.select_iter(piter)
++            store, rows = selection.get_selected_rows()
++            self.view.scroll_to_cell(rows[0])
++        else:
++            print "Finish"
++                
++    def html_cat(self, cat):
++        html = ""
++        row = td_fmt(_("<b>Boolean</b>")) + td_fmt(_("<b>Description</b>")) + td_fmt(_("<b>Status</b>"))
++        html += tr_fmt % row
++        
++        for b in self.booldict[cat]:
++            row = td_fmt(b) + td_fmt(self.booleans.get_desc(b)) + td_fmt(STATUS[self.booldict[cat][b][0]])
++            html += tr_fmt % row
++        return html
++
++    def html_table(self, title, body):
++        html = self.html_head(title)
++        html += '<table width="100%" cellspacing="1" cellpadding="2">\n'
++        html += body
++        html += '</table>'
++        return html
++
++    def html_head(self, val):
++        # Wrap entire alert in one table
++        # 1st table: primary Information
++
++        html = '<b>%s</b>\n\n\n' % val
++        return html
++ 
++    def html_all(self):
++        html = ""
++        cats = self.booldict.keys()
++        cats.sort()
++        for cat in  cats:
++            html += self.html_table((_("Category: %s <br>") % cat), self.html_cat(cat))
++        return html
++
++    def itemSelected(self, selection):
++        store, iter = selection.get_selected()
++        if iter == None:
++            return
++
++        piter = self.store.iter_parent(iter)
++        if piter != None:
++            self.cat =  store.get_value(piter, BOOLEAN)
++        else:
++            self.cat =  None
++
++        self.name =  store.get_value(iter, BOOLEAN)
++
++        html = ''
++
++        self.radiobox.hide()
++        self.savebox.hide()
++
++        if self.name == _("Begin"):
++            html += self.html_head(_("Welcome to the SELinux Lockdown Tool.<br> <br>This tool can be used to lockdown SELinux booleans.The tool will generate a configuration file which can be used to lockdown this system or other SELinux systems.<br>"))
++            html += self.html_all()
++        else:
++            if self.name == _("Finish"):
++                if self.cat != None:
++                    html += self.html_head(_("Category %s booleans completed <br><br>") % self.cat)
++                    html += self.html_table(_("Current settings:<br><br>"), self.html_cat(self.cat))
++                else:
++                    html += self.html_head(_("Finish: <br><br>"))
++                    html += self.html_all()
++                    self.savebox.show()
++            else:
++                if self.store.iter_has_child(iter):
++                    html += self.html_table(_("Category: %s<br><br>Current Settings<br><br>") % self.name, self.html_cat(self.name))
++                else:
++                    self.radiobox.show()
++                    html += self.html_table(_("Boolean:   %s<br><br>") % self.name, tr_fmt % td_fmt(self.booleans.get_desc(self.name)))
++                    if self.booldict[self.cat][self.name][0] == ENABLE:
++                        self.enable_radiobutton.set_active(True)
++                    if self.booldict[self.cat][self.name][0] == DISABLE:
++                        self.disable_radiobutton.set_active(True)
++                    if self.booldict[self.cat][self.name][0] == DEFAULT:
++                        self.default_radiobutton.set_active(True)
++        html_doc= html_document(html)
++
++        self.html_view.load_html_string(html, "")
++
++    def stand_alone(self):
++        desktopName = _("Lockdown SELinux Booleans")
++
++        self.mainWindow.connect("destroy", self.cancel)
++
++        self.mainWindow.show_all()
++        self.radiobox.hide()
++        self.savebox.hide()
++        gtk.main()
++
++if __name__ == "__main__":
++    signal.signal (signal.SIGINT, signal.SIG_DFL)
++
++    app = booleanWindow()
++    app.stand_alone()
+diff --git a/policycoreutils/gui/loginsPage.py b/policycoreutils/gui/loginsPage.py
+new file mode 100644
+index 0000000..b41fc1c
+--- /dev/null
++++ b/policycoreutils/gui/loginsPage.py
+@@ -0,0 +1,185 @@
++## loginsPage.py - show selinux mappings
++## Copyright (C) 2006 Red Hat, 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.
++
++## Author: Dan Walsh
++import string
++import gtk
++import gtk.glade
++import os
++import gobject
++import sys
++import commands
++import seobject
++from semanagePage import *;
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++class loginsPage(semanagePage):
++    def __init__(self, xml):
++        self.firstTime = False
++        semanagePage.__init__(self, xml, "logins", _("User Mapping"))
++        self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
++        self.view.set_model(self.store)
++        self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++        col = gtk.TreeViewColumn(_("Login\nName"), gtk.CellRendererText(), text = 0)
++        col.set_sort_column_id(0)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        col = gtk.TreeViewColumn(_("SELinux\nUser"), gtk.CellRendererText(), text = 1)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        col = gtk.TreeViewColumn(_("MLS/\nMCS Range"), gtk.CellRendererText(), text = 2)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        self.load()
++        self.loginsNameEntry = xml.get_widget("loginsNameEntry")
++        self.loginsSelinuxUserCombo = xml.get_widget("loginsSelinuxUserCombo")
++        self.loginsMLSEntry = xml.get_widget("loginsMLSEntry")
++        
++    def load(self, filter = ""):
++        self.filter=filter            
++        self.login = seobject.loginRecords()
++        dict = self.login.get_all(0)
++        keys = dict.keys()
++        keys.sort()
++        self.store.clear()
++        for k in keys:
++            range = seobject.translate(dict[k][1])
++            if not (self.match(k, filter) or self.match(dict[k][0], filter) or self.match(range, filter)):
++                continue
++            iter = self.store.append()
++            self.store.set_value(iter, 0, k)
++            self.store.set_value(iter, 1, dict[k][0])
++            self.store.set_value(iter, 2, range)
++        self.view.get_selection().select_path ((0,))
++
++    def __dialogSetup(self):
++        if self.firstTime == True:
++            return
++        self.firstTime = True
++        liststore = gtk.ListStore(gobject.TYPE_STRING)
++        self.loginsSelinuxUserCombo.set_model(liststore)
++        cell = gtk.CellRendererText()
++        self.loginsSelinuxUserCombo.pack_start(cell, True)
++        self.loginsSelinuxUserCombo.add_attribute(cell, 'text', 0)
++        
++        selusers = seobject.seluserRecords().get_all(0)
++        keys = selusers.keys()
++        keys.sort()
++        for k in keys:
++            if k != "system_u":
++                self.loginsSelinuxUserCombo.append_text(k)
++
++        iter = liststore.get_iter_first()
++        while liststore.get_value(iter,0) != "user_u":
++            iter = liststore.iter_next(iter)
++        self.loginsSelinuxUserCombo.set_active_iter(iter)
++        
++    def dialogInit(self):
++        self.__dialogSetup()
++        store, iter = self.view.get_selection().get_selected()
++        self.loginsNameEntry.set_text(store.get_value(iter, 0))
++        self.loginsNameEntry.set_sensitive(False)
++        
++        self.loginsMLSEntry.set_text(store.get_value(iter, 2))
++        seuser = store.get_value(iter, 1)
++        liststore = self.loginsSelinuxUserCombo.get_model()
++        iter = liststore.get_iter_first()
++        while iter != None and liststore.get_value(iter,0) != seuser:
++            iter = liststore.iter_next(iter)
++        if iter != None:
++            self.loginsSelinuxUserCombo.set_active_iter(iter)
++        
++        
++    def dialogClear(self):
++        self.__dialogSetup()
++        self.loginsNameEntry.set_text("")
++        self.loginsNameEntry.set_sensitive(True)
++        self.loginsMLSEntry.set_text("s0")
++        
++    def delete(self):
++        store, iter = self.view.get_selection().get_selected()
++        try:
++            login=store.get_value(iter, 0)
++            if login == "root" or login == "__default__":
++                raise ValueError(_("Login '%s' is required") % login)
++                
++            self.wait()
++            (rc, out) = commands.getstatusoutput("semanage login -d %s" % login)
++            self.ready()
++            if rc != 0:
++                self.error(out)
++                return False
++            store.remove(iter)
++            self.view.get_selection().select_path ((0,))
++        except ValueError, e:
++            self.error(e.args[0])
++
++    def add(self):
++        target=self.loginsNameEntry.get_text().strip()
++        serange=self.loginsMLSEntry.get_text().strip()
++        if serange == "":
++            serange="s0"
++        list_model=self.loginsSelinuxUserCombo.get_model()
++        iter = self.loginsSelinuxUserCombo.get_active_iter()
++        seuser = list_model.get_value(iter,0)
++        self.wait()
++        (rc, out) = commands.getstatusoutput("semanage login -a -s %s -r %s %s" % (seuser, serange, target))
++        self.ready()
++        if rc != 0:
++            self.error(out)
++            return False
++        
++        iter = self.store.append()
++        self.store.set_value(iter, 0, target)
++        self.store.set_value(iter, 1, seuser)
++        self.store.set_value(iter, 2, seobject.translate(serange))
++        
++    def modify(self):
++        target=self.loginsNameEntry.get_text().strip()
++        serange=self.loginsMLSEntry.get_text().strip()
++        if serange == "":
++            serange = "s0"
++        list_model = self.loginsSelinuxUserCombo.get_model()
++        iter = self.loginsSelinuxUserCombo.get_active_iter()
++        seuser=list_model.get_value(iter,0)
++        self.wait()
++        (rc, out) = commands.getstatusoutput("semanage login -m -s %s -r %s %s" % (seuser, serange, target))
++        self.ready()
++        if rc != 0:
++            self.error(out)
++            return False
++        
++        store, iter = self.view.get_selection().get_selected()
++        self.store.set_value(iter, 0, target)
++        self.store.set_value(iter, 1, seuser)
++        self.store.set_value(iter, 2, seobject.translate(serange))
++
+diff --git a/policycoreutils/gui/mappingsPage.py b/policycoreutils/gui/mappingsPage.py
+new file mode 100644
+index 0000000..3e4c2a2
+--- /dev/null
++++ b/policycoreutils/gui/mappingsPage.py
+@@ -0,0 +1,56 @@
++## mappingsPage.py - show selinux mappings
++## Copyright (C) 2006 Red Hat, 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.
++
++## Author: Dan Walsh
++import string
++import gtk
++import gtk.glade
++import os
++import gobject
++import sys
++import seobject
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++class loginsPage:
++    def __init__(self, xml):
++        self.xml = xml
++        self.view = xml.get_widget("mappingsView")
++        self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
++        self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++        self.view.set_model(self.store)
++        self.login = loginRecords()
++        dict = self.login.get_all(0)
++        keys = dict.keys()
++        keys.sort()
++        for k in keys:
++            print "%-25s %-25s %-25s" % (k, dict[k][0], translate(dict[k][1]))
++
+diff --git a/policycoreutils/gui/modulesPage.py b/policycoreutils/gui/modulesPage.py
+new file mode 100644
+index 0000000..82f31b6
+--- /dev/null
++++ b/policycoreutils/gui/modulesPage.py
+@@ -0,0 +1,190 @@
++## modulesPage.py - show selinux mappings
++## Copyright (C) 2006-2009 Red Hat, 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.
++
++## Author: Dan Walsh
++import string
++import gtk
++import gtk.glade
++import os
++import commands
++import gobject
++import sys
++import seobject
++import selinux
++from semanagePage import *;
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++class modulesPage(semanagePage):
++    def __init__(self, xml):
++        semanagePage.__init__(self, xml, "modules", _("Policy Module"))
++        self.module_filter = xml.get_widget("modulesFilterEntry")
++        self.module_filter.connect("focus_out_event", self.filter_changed)
++        self.module_filter.connect("activate", self.filter_changed)
++        self.audit_enabled = False
++
++        self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
++        self.view.set_model(self.store)
++        self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++        col = gtk.TreeViewColumn(_("Module Name"), gtk.CellRendererText(), text = 0)
++        col.set_sort_column_id(0)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
++        col = gtk.TreeViewColumn(_("Version"), gtk.CellRendererText(), text = 1)
++        self.enable_audit_button = xml.get_widget("enableAuditButton")
++        self.enable_audit_button.connect("clicked", self.enable_audit)
++        self.new_button = xml.get_widget("newModuleButton")
++        self.new_button.connect("clicked", self.new_module)
++        col.set_sort_column_id(1)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        self.store.set_sort_func(1,self.sort_int, "")
++        status, self.policy_type = selinux.selinux_getpolicytype()
++
++        self.load()
++        
++    def sort_int(self, treemodel, iter1, iter2, user_data):
++        try:
++            p1 = int(treemodel.get_value(iter1,1))
++            p2 = int(treemodel.get_value(iter1,1))
++            if p1 > p2:
++                return 1
++            if p1 == p2:
++                return 0
++            return -1
++        except:
++            return 0
++
++    def load(self, filter=""):
++        self.filter=filter            
++        self.store.clear()
++        try:
++            fd=os.popen("semodule -l")
++            l = fd.readlines()
++            fd.close()
++            for i in l:
++                module, ver, newline = i.split('\t')
++                if not (self.match(module, filter) or self.match(ver, filter)):
++                    continue
++                iter = self.store.append()
++                self.store.set_value(iter, 0, module.strip())
++                self.store.set_value(iter, 1, ver.strip())
++        except:
++            pass
++        self.view.get_selection().select_path ((0,))
++    
++
++    def new_module(self, args):
++        try:
++            os.spawnl(os.P_NOWAIT, "/usr/share/system-config-selinux/polgengui.py")
++        except ValueError, e:
++            self.error(e.args[0])
++
++    def delete(self):
++        store, iter = self.view.get_selection().get_selected()
++        module = store.get_value(iter, 0)
++        try:
++            self.wait()
++            status, output = commands.getstatusoutput("semodule -r %s" % module)
++            self.ready()
++            if status != 0:
++                self.error(output)
++            else:
++                store.remove(iter)
++                self.view.get_selection().select_path ((0,))
++                
++        except ValueError, e:
++            self.error(e.args[0])
++
++    def enable_audit(self, button):
++        self.audit_enabled = not self.audit_enabled 
++        try:
++            self.wait()
++            if self.audit_enabled:
++                status, output =commands.getstatusoutput("semodule -DB")
++                button.set_label(_("Disable Audit"))
++            else:
++                status, output =commands.getstatusoutput("semodule -B")
++                button.set_label(_("Enable Audit"))
++            self.ready()
++
++            if status != 0:
++                self.error(output)
++
++        except ValueError, e:
++            self.error(e.args[0])
++
++    def disable_audit(self, button):
++        try:
++            self.wait()
++            status, output =commands.getstatusoutput("semodule -B")
++            self.ready()
++            if status != 0:
++                self.error(output)
++
++        except ValueError, e:
++            self.error(e.args[0])
++
++    def propertiesDialog(self):
++        # Do nothing
++        return
++    
++    def addDialog(self):
++        dialog = gtk.FileChooserDialog(_("Load Policy Module"),
++                                       None,
++                                       gtk.FILE_CHOOSER_ACTION_OPEN,
++                                       (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
++                                        gtk.STOCK_OPEN, gtk.RESPONSE_OK))
++        dialog.set_default_response(gtk.RESPONSE_OK)
++
++        filter = gtk.FileFilter()
++        filter.set_name("Policy Files")
++        filter.add_pattern("*.pp")
++        dialog.add_filter(filter)
++
++        response = dialog.run()
++        if response == gtk.RESPONSE_OK:
++            self.add(dialog.get_filename())
++        dialog.destroy()
++
++    def add(self, file):
++        try:
++            self.wait()
++            status, output =commands.getstatusoutput("semodule -i %s" % file)
++            self.ready()
++            if status != 0:
++                self.error(output)
++            else:
++                self.load()
++                
++        except ValueError, e:
++            self.error(e.args[0])
+diff --git a/policycoreutils/gui/polgen.glade b/policycoreutils/gui/polgen.glade
+new file mode 100644
+index 0000000..55bad9d
+--- /dev/null
++++ b/policycoreutils/gui/polgen.glade
+@@ -0,0 +1,3432 @@
++<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
++<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
++
++<glade-interface>
++<requires lib="gnome"/>
++
++<widget class="GtkFileChooserDialog" id="filechooserdialog">
++  <property name="border_width">5</property>
++  <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
++  <property name="local_only">True</property>
++  <property name="select_multiple">True</property>
++  <property name="show_hidden">True</property>
++  <property name="do_overwrite_confirmation">False</property>
++  <property name="type">GTK_WINDOW_TOPLEVEL</property>
++  <property name="window_position">GTK_WIN_POS_MOUSE</property>
++  <property name="modal">False</property>
++  <property name="resizable">True</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="decorated">True</property>
++  <property name="skip_taskbar_hint">False</property>
++  <property name="skip_pager_hint">False</property>
++  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
++  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
++  <property name="focus_on_map">True</property>
++  <property name="urgency_hint">False</property>
++
++  <child internal-child="vbox">
++    <widget class="GtkVBox" id="dialog-vbox1">
++      <property name="visible">True</property>
++      <property name="homogeneous">False</property>
++      <property name="spacing">24</property>
++
++      <child internal-child="action_area">
++      <widget class="GtkHButtonBox" id="dialog-action_area1">
++        <property name="visible">True</property>
++        <property name="layout_style">GTK_BUTTONBOX_END</property>
++
++        <child>
++          <widget class="GtkButton" id="button5">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-cancel</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-6</property>
++          </widget>
++        </child>
++
++        <child>
++          <widget class="GtkButton" id="button6">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="has_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-add</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-5</property>
++          </widget>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">False</property>
++        <property name="fill">True</property>
++        <property name="pack_type">GTK_PACK_END</property>
++      </packing>
++      </child>
++    </widget>
++  </child>
++</widget>
++
++<widget class="GtkAboutDialog" id="about_dialog">
++  <property name="border_width">5</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="name" translatable="yes">Polgen</property>
++  <property name="copyright" translatable="yes">Red Hat 2007</property>
++  <property name="license" translatable="yes">GPL</property>
++  <property name="wrap_license">False</property>
++  <property name="website">www.redhat.com</property>
++  <property name="authors">Daniel Walsh &lt;dwalsh@redhat.com&gt;</property>
++  <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
++</widget>
++
++<widget class="GtkWindow" id="main_window">
++  <property name="visible">True</property>
++  <property name="title" translatable="yes">SELinux Policy Generation Tool</property>
++  <property name="type">GTK_WINDOW_TOPLEVEL</property>
++  <property name="window_position">GTK_WIN_POS_NONE</property>
++  <property name="modal">False</property>
++  <property name="resizable">True</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="decorated">True</property>
++  <property name="skip_taskbar_hint">False</property>
++  <property name="skip_pager_hint">False</property>
++  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
++  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
++  <property name="focus_on_map">True</property>
++  <property name="urgency_hint">False</property>
++
++  <child>
++    <widget class="GtkVBox" id="vbox11">
++      <property name="visible">True</property>
++      <property name="homogeneous">False</property>
++      <property name="spacing">18</property>
++
++      <child>
++      <widget class="GtkNotebook" id="notebook">
++        <property name="visible">True</property>
++        <property name="show_tabs">False</property>
++        <property name="show_border">True</property>
++        <property name="tab_pos">GTK_POS_LEFT</property>
++        <property name="scrollable">False</property>
++        <property name="enable_popup">False</property>
++
++        <child>
++          <widget class="GtkVBox" id="vbox59">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_type_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Select the policy type for the application or user role you want to confine:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox58">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">0</property>
++
++                <child>
++                  <widget class="GtkVBox" id="vbox14">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkHBox" id="hbox16">
++                        <property name="visible">True</property>
++                        <property name="homogeneous">False</property>
++                        <property name="spacing">12</property>
++
++                        <child>
++                          <widget class="GtkVBox" id="vbox18">
++                            <property name="visible">True</property>
++                            <property name="homogeneous">False</property>
++                            <property name="spacing">6</property>
++
++                            <child>
++                              <widget class="GtkLabel" id="label41">
++                                <property name="visible">True</property>
++                                <property name="label" translatable="yes">&lt;b&gt;Applications&lt;/b&gt;</property>
++                                <property name="use_underline">False</property>
++                                <property name="use_markup">True</property>
++                                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                <property name="wrap">False</property>
++                                <property name="selectable">False</property>
++                                <property name="xalign">0</property>
++                                <property name="yalign">0.5</property>
++                                <property name="xpad">0</property>
++                                <property name="ypad">0</property>
++                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                <property name="width_chars">-1</property>
++                                <property name="single_line_mode">False</property>
++                                <property name="angle">0</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">0</property>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                              </packing>
++                            </child>
++
++                            <child>
++                              <widget class="GtkHBox" id="hbox17">
++                                <property name="visible">True</property>
++                                <property name="homogeneous">False</property>
++                                <property name="spacing">0</property>
++
++                                <child>
++                                  <widget class="GtkLabel" id="label52">
++                                    <property name="visible">True</property>
++                                    <property name="label">    </property>
++                                    <property name="use_underline">False</property>
++                                    <property name="use_markup">False</property>
++                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                    <property name="wrap">False</property>
++                                    <property name="selectable">False</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                    <property name="width_chars">-1</property>
++                                    <property name="single_line_mode">False</property>
++                                    <property name="angle">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++
++                                <child>
++                                  <widget class="GtkVBox" id="vbox6">
++                                    <property name="visible">True</property>
++                                    <property name="homogeneous">False</property>
++                                    <property name="spacing">6</property>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="init_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">Standard Init Daemon are daemons started on boot via init scripts.  Usually requires a script in /etc/rc.d/init.d</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">Standard Init Daemon</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="dbus_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">Standard Init Daemon are daemons started on boot via init scripts.  Usually requires a script in /etc/rc.d/init.d</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">DBUS System Daemon</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">init_radiobutton</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="inetd_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">Internet Services Daemon are daemons started by xinetd</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">Internet Services Daemon (inetd)</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">init_radiobutton</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="cgi_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">Web Applications/Script (CGI) CGI scripts started by the web server (apache)</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">Web Application/Script (CGI)</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">init_radiobutton</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="user_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">User Application are any application that you would like to confine that is started by a user</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">User Application</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">init_radiobutton</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="sandbox_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">User Application are any application that you would like to confine that is started by a user</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">Sandbox</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">init_radiobutton</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++                              </widget>
++                              <packing>
++                                <property name="padding">0</property>
++                                <property name="expand">True</property>
++                                <property name="fill">True</property>
++                              </packing>
++                            </child>
++                          </widget>
++                          <packing>
++                            <property name="padding">0</property>
++                            <property name="expand">False</property>
++                            <property name="fill">True</property>
++                          </packing>
++                        </child>
++
++                        <child>
++                          <widget class="GtkVBox" id="vbox19">
++                            <property name="visible">True</property>
++                            <property name="homogeneous">False</property>
++                            <property name="spacing">6</property>
++
++                            <child>
++                              <widget class="GtkLabel" id="label42">
++                                <property name="visible">True</property>
++                                <property name="label" translatable="yes">&lt;b&gt;Login Users&lt;/b&gt;</property>
++                                <property name="use_underline">False</property>
++                                <property name="use_markup">True</property>
++                                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                <property name="wrap">False</property>
++                                <property name="selectable">False</property>
++                                <property name="xalign">0</property>
++                                <property name="yalign">0.5</property>
++                                <property name="xpad">0</property>
++                                <property name="ypad">0</property>
++                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                <property name="width_chars">-1</property>
++                                <property name="single_line_mode">False</property>
++                                <property name="angle">0</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">0</property>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                              </packing>
++                            </child>
++
++                            <child>
++                              <widget class="GtkHBox" id="hbox18">
++                                <property name="visible">True</property>
++                                <property name="homogeneous">False</property>
++                                <property name="spacing">0</property>
++
++                                <child>
++                                  <widget class="GtkLabel" id="label53">
++                                    <property name="visible">True</property>
++                                    <property name="label">    </property>
++                                    <property name="use_underline">False</property>
++                                    <property name="use_markup">False</property>
++                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                    <property name="wrap">False</property>
++                                    <property name="selectable">False</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                    <property name="width_chars">-1</property>
++                                    <property name="single_line_mode">False</property>
++                                    <property name="angle">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++
++                                <child>
++                                  <widget class="GtkVBox" id="vbox15">
++                                    <property name="visible">True</property>
++                                    <property name="homogeneous">False</property>
++                                    <property name="spacing">6</property>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="existing_user_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">Modify an existing login user record.</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">Existing User Roles</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">init_radiobutton</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="terminal_user_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">This user will login to a machine only via a terminal or remote login.  By default this user will have  no setuid, no networking, no su, no sudo.</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">Minimal Terminal User Role</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">init_radiobutton</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="xwindows_user_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">This user can login to a machine via X or terminal.  By default this user will have no setuid, no networking, no sudo, no su</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">Minimal X Windows User Role</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">init_radiobutton</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="login_user_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">User with full networking, no setuid applications without transition, no sudo, no su.</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">User Role</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">init_radiobutton</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="admin_user_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">User with full networking, no setuid applications without transition, no su, can sudo to Root Administration Roles</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">Admin User Role</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">init_radiobutton</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">True</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++                              </widget>
++                              <packing>
++                                <property name="padding">0</property>
++                                <property name="expand">True</property>
++                                <property name="fill">True</property>
++                              </packing>
++                            </child>
++                          </widget>
++                          <packing>
++                            <property name="padding">0</property>
++                            <property name="expand">False</property>
++                            <property name="fill">True</property>
++                          </packing>
++                        </child>
++
++                        <child>
++                          <widget class="GtkVBox" id="vbox20">
++                            <property name="visible">True</property>
++                            <property name="homogeneous">False</property>
++                            <property name="spacing">6</property>
++
++                            <child>
++                              <widget class="GtkLabel" id="label50">
++                                <property name="visible">True</property>
++                                <property name="label" translatable="yes">&lt;b&gt;Root Users&lt;/b&gt;</property>
++                                <property name="use_underline">False</property>
++                                <property name="use_markup">True</property>
++                                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                <property name="wrap">False</property>
++                                <property name="selectable">False</property>
++                                <property name="xalign">0</property>
++                                <property name="yalign">0.5</property>
++                                <property name="xpad">0</property>
++                                <property name="ypad">0</property>
++                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                <property name="width_chars">-1</property>
++                                <property name="single_line_mode">False</property>
++                                <property name="angle">0</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">0</property>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                              </packing>
++                            </child>
++
++                            <child>
++                              <widget class="GtkHBox" id="hbox19">
++                                <property name="visible">True</property>
++                                <property name="homogeneous">False</property>
++                                <property name="spacing">0</property>
++
++                                <child>
++                                  <widget class="GtkLabel" id="label54">
++                                    <property name="visible">True</property>
++                                    <property name="label">    </property>
++                                    <property name="use_underline">False</property>
++                                    <property name="use_markup">False</property>
++                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                    <property name="wrap">False</property>
++                                    <property name="selectable">False</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                    <property name="width_chars">-1</property>
++                                    <property name="single_line_mode">False</property>
++                                    <property name="angle">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++
++                                <child>
++                                  <widget class="GtkVBox" id="vbox21">
++                                    <property name="visible">True</property>
++                                    <property name="homogeneous">False</property>
++                                    <property name="spacing">0</property>
++
++                                    <child>
++                                      <widget class="GtkRadioButton" id="root_user_radiobutton">
++                                        <property name="visible">True</property>
++                                        <property name="tooltip" translatable="yes">Select Root Administrator User Role, if this user will be used to administer the machine while running as root.  This user will not be able to login to the system directly.</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">Root Admin User Role</property>
++                                        <property name="use_underline">True</property>
++                                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                                        <property name="focus_on_click">True</property>
++                                        <property name="active">False</property>
++                                        <property name="inconsistent">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">init_radiobutton</property>
++                                      </widget>
++                                      <packing>
++                                        <property name="padding">0</property>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                      </packing>
++                                    </child>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++                              </widget>
++                              <packing>
++                                <property name="padding">0</property>
++                                <property name="expand">True</property>
++                                <property name="fill">True</property>
++                              </packing>
++                            </child>
++                          </widget>
++                          <packing>
++                            <property name="padding">0</property>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
++                          </packing>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">True</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="label104">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">label104</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox60">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_name_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Enter name of application or user role:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkTable" id="table5">
++                <property name="visible">True</property>
++                <property name="n_rows">3</property>
++                <property name="n_columns">3</property>
++                <property name="homogeneous">False</property>
++                <property name="row_spacing">6</property>
++                <property name="column_spacing">12</property>
++
++                <child>
++                  <widget class="GtkLabel" id="label1">
++                    <property name="visible">True</property>
++                    <property name="label" translatable="yes">Name</property>
++                    <property name="use_underline">False</property>
++                    <property name="use_markup">False</property>
++                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                    <property name="wrap">False</property>
++                    <property name="selectable">False</property>
++                    <property name="xalign">0</property>
++                    <property name="yalign">0.5</property>
++                    <property name="xpad">0</property>
++                    <property name="ypad">0</property>
++                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                    <property name="width_chars">-1</property>
++                    <property name="single_line_mode">False</property>
++                    <property name="angle">0</property>
++                  </widget>
++                  <packing>
++                    <property name="left_attach">0</property>
++                    <property name="right_attach">1</property>
++                    <property name="top_attach">0</property>
++                    <property name="bottom_attach">1</property>
++                    <property name="x_options">fill</property>
++                    <property name="y_options"></property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkEntry" id="exec_entry">
++                    <property name="visible">True</property>
++                    <property name="tooltip" translatable="yes">Enter complete path for executable to be confined.</property>
++                    <property name="can_focus">True</property>
++                    <property name="editable">True</property>
++                    <property name="visibility">True</property>
++                    <property name="max_length">0</property>
++                    <property name="text" translatable="yes"></property>
++                    <property name="has_frame">True</property>
++                    <property name="invisible_char">•</property>
++                    <property name="activates_default">False</property>
++                  </widget>
++                  <packing>
++                    <property name="left_attach">1</property>
++                    <property name="right_attach">2</property>
++                    <property name="top_attach">1</property>
++                    <property name="bottom_attach">2</property>
++                    <property name="y_options"></property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkButton" id="exec_button">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="label" translatable="yes">...</property>
++                    <property name="use_underline">True</property>
++                    <property name="relief">GTK_RELIEF_NORMAL</property>
++                    <property name="focus_on_click">True</property>
++                    <signal name="clicked" handler="on_exec_select_clicked" last_modification_time="Wed, 21 Feb 2007 18:45:26 GMT"/>
++                  </widget>
++                  <packing>
++                    <property name="left_attach">2</property>
++                    <property name="right_attach">3</property>
++                    <property name="top_attach">1</property>
++                    <property name="bottom_attach">2</property>
++                    <property name="x_options">fill</property>
++                    <property name="y_options"></property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkEntry" id="name_entry">
++                    <property name="visible">True</property>
++                    <property name="tooltip" translatable="yes">Enter unique name for the confined application or user role.</property>
++                    <property name="can_focus">True</property>
++                    <property name="editable">True</property>
++                    <property name="visibility">True</property>
++                    <property name="max_length">0</property>
++                    <property name="text" translatable="yes"></property>
++                    <property name="has_frame">True</property>
++                    <property name="invisible_char">•</property>
++                    <property name="activates_default">False</property>
++                  </widget>
++                  <packing>
++                    <property name="left_attach">1</property>
++                    <property name="right_attach">3</property>
++                    <property name="top_attach">0</property>
++                    <property name="bottom_attach">1</property>
++                    <property name="y_options"></property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkLabel" id="label2">
++                    <property name="visible">True</property>
++                    <property name="label" translatable="yes">Executable</property>
++                    <property name="use_underline">False</property>
++                    <property name="use_markup">False</property>
++                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                    <property name="wrap">False</property>
++                    <property name="selectable">False</property>
++                    <property name="xalign">0</property>
++                    <property name="yalign">0.5</property>
++                    <property name="xpad">0</property>
++                    <property name="ypad">0</property>
++                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                    <property name="width_chars">-1</property>
++                    <property name="single_line_mode">False</property>
++                    <property name="angle">0</property>
++                  </widget>
++                  <packing>
++                    <property name="left_attach">0</property>
++                    <property name="right_attach">1</property>
++                    <property name="top_attach">1</property>
++                    <property name="bottom_attach">2</property>
++                    <property name="x_options">fill</property>
++                    <property name="y_options"></property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkLabel" id="label40">
++                    <property name="visible">True</property>
++                    <property name="label" translatable="yes">Init script</property>
++                    <property name="use_underline">False</property>
++                    <property name="use_markup">False</property>
++                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                    <property name="wrap">False</property>
++                    <property name="selectable">False</property>
++                    <property name="xalign">0</property>
++                    <property name="yalign">0.5</property>
++                    <property name="xpad">0</property>
++                    <property name="ypad">0</property>
++                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                    <property name="width_chars">-1</property>
++                    <property name="single_line_mode">False</property>
++                    <property name="angle">0</property>
++                  </widget>
++                  <packing>
++                    <property name="left_attach">0</property>
++                    <property name="right_attach">1</property>
++                    <property name="top_attach">2</property>
++                    <property name="bottom_attach">3</property>
++                    <property name="x_options">fill</property>
++                    <property name="y_options"></property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkEntry" id="init_script_entry">
++                    <property name="visible">True</property>
++                    <property name="tooltip" translatable="yes">Enter complete path to init script used to start the confined application.</property>
++                    <property name="can_focus">True</property>
++                    <property name="editable">True</property>
++                    <property name="visibility">True</property>
++                    <property name="max_length">0</property>
++                    <property name="text" translatable="yes"></property>
++                    <property name="has_frame">True</property>
++                    <property name="invisible_char">•</property>
++                    <property name="activates_default">False</property>
++                  </widget>
++                  <packing>
++                    <property name="left_attach">1</property>
++                    <property name="right_attach">2</property>
++                    <property name="top_attach">2</property>
++                    <property name="bottom_attach">3</property>
++                    <property name="y_options"></property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkButton" id="init_script_button">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="label" translatable="yes">...</property>
++                    <property name="use_underline">True</property>
++                    <property name="relief">GTK_RELIEF_NORMAL</property>
++                    <property name="focus_on_click">True</property>
++                    <signal name="clicked" handler="on_init_script_select_clicked" last_modification_time="Thu, 30 Aug 2007 15:36:47 GMT"/>
++                  </widget>
++                  <packing>
++                    <property name="left_attach">2</property>
++                    <property name="right_attach">3</property>
++                    <property name="top_attach">2</property>
++                    <property name="bottom_attach">3</property>
++                    <property name="x_options">fill</property>
++                    <property name="y_options"></property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="select_name_label">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">label105</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox61">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_existing_role_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Select existing role to modify:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkScrolledWindow" id="scrolledwindow5">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
++                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
++                <property name="shadow_type">GTK_SHADOW_IN</property>
++                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                <child>
++                  <widget class="GtkTreeView" id="existing_user_treeview">
++                    <property name="visible">True</property>
++                    <property name="tooltip" translatable="yes">Select the user roles that will transiton to the %s domain.</property>
++                    <property name="can_focus">True</property>
++                    <property name="headers_visible">False</property>
++                    <property name="rules_hint">False</property>
++                    <property name="reorderable">False</property>
++                    <property name="enable_search">True</property>
++                    <property name="fixed_height_mode">False</property>
++                    <property name="hover_selection">False</property>
++                    <property name="hover_expand">False</property>
++                  </widget>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="label106">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">label106</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox62">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Select roles that %s will transition to:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkScrolledWindow" id="scrolledwindow12">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                <property name="shadow_type">GTK_SHADOW_NONE</property>
++                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                <child>
++                  <widget class="GtkTreeView" id="transition_treeview">
++                    <property name="visible">True</property>
++                    <property name="tooltip" translatable="yes">Select applications domains that %s will transition to.</property>
++                    <property name="can_focus">True</property>
++                    <property name="headers_visible">False</property>
++                    <property name="rules_hint">False</property>
++                    <property name="reorderable">False</property>
++                    <property name="enable_search">True</property>
++                    <property name="fixed_height_mode">False</property>
++                    <property name="hover_selection">False</property>
++                    <property name="hover_expand">False</property>
++                  </widget>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="label107">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">label107</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox63">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_user_roles_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Select the user_roles that will transition to %s:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkScrolledWindow" id="scrolledwindow13">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                <property name="shadow_type">GTK_SHADOW_NONE</property>
++                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                <child>
++                  <widget class="GtkTreeView" id="user_transition_treeview">
++                    <property name="visible">True</property>
++                    <property name="tooltip" translatable="yes">Select the user roles that will transiton to this applications domains.</property>
++                    <property name="can_focus">True</property>
++                    <property name="headers_visible">False</property>
++                    <property name="rules_hint">False</property>
++                    <property name="reorderable">False</property>
++                    <property name="enable_search">True</property>
++                    <property name="fixed_height_mode">False</property>
++                    <property name="hover_selection">False</property>
++                    <property name="hover_expand">False</property>
++                  </widget>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="label108">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">label108</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox64">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_domain_admin_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Select domains that %s will administer:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkScrolledWindow" id="scrolledwindow14">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                <property name="shadow_type">GTK_SHADOW_NONE</property>
++                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                <child>
++                  <widget class="GtkTreeView" id="admin_treeview">
++                    <property name="visible">True</property>
++                    <property name="tooltip" translatable="yes">Select the domains that you would like this user administer.</property>
++                    <property name="can_focus">True</property>
++                    <property name="headers_visible">False</property>
++                    <property name="rules_hint">False</property>
++                    <property name="reorderable">False</property>
++                    <property name="enable_search">True</property>
++                    <property name="fixed_height_mode">False</property>
++                    <property name="hover_selection">False</property>
++                    <property name="hover_expand">False</property>
++                  </widget>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="label109">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">label109</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox65">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_role_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Select additional roles for %s:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkScrolledWindow" id="scrolledwindow15">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                <property name="shadow_type">GTK_SHADOW_NONE</property>
++                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                <child>
++                  <widget class="GtkTreeView" id="role_treeview">
++                    <property name="visible">True</property>
++                    <property name="tooltip" translatable="yes">Select the domains that you would like this user administer.</property>
++                    <property name="can_focus">True</property>
++                    <property name="headers_visible">False</property>
++                    <property name="rules_hint">False</property>
++                    <property name="reorderable">False</property>
++                    <property name="enable_search">True</property>
++                    <property name="fixed_height_mode">False</property>
++                    <property name="hover_selection">False</property>
++                    <property name="hover_expand">False</property>
++                  </widget>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="in_net_page">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">label111</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="in_net_page">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_in_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Enter network ports that %s binds on:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox22">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">6</property>
++
++                <child>
++                  <widget class="GtkLabel" id="label55">
++                    <property name="visible">True</property>
++                    <property name="label" translatable="yes">&lt;b&gt;TCP Ports&lt;/b&gt;</property>
++                    <property name="use_underline">False</property>
++                    <property name="use_markup">True</property>
++                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                    <property name="wrap">False</property>
++                    <property name="selectable">False</property>
++                    <property name="xalign">0</property>
++                    <property name="yalign">0.5</property>
++                    <property name="xpad">0</property>
++                    <property name="ypad">0</property>
++                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                    <property name="width_chars">-1</property>
++                    <property name="single_line_mode">False</property>
++                    <property name="angle">0</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="hbox20">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label56">
++                        <property name="visible">True</property>
++                        <property name="label">    </property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkVBox" id="vbox23">
++                        <property name="visible">True</property>
++                        <property name="homogeneous">False</property>
++                        <property name="spacing">6</property>
++
++                        <child>
++                          <widget class="GtkHBox" id="hbox21">
++                            <property name="visible">True</property>
++                            <property name="homogeneous">False</property>
++                            <property name="spacing">12</property>
++
++                            <child>
++                              <widget class="GtkCheckButton" id="in_tcp_all_checkbutton">
++                                <property name="visible">True</property>
++                                <property name="tooltip" translatable="yes">Allows %s to bind to any udp port</property>
++                                <property name="can_focus">True</property>
++                                <property name="label" translatable="yes">All</property>
++                                <property name="use_underline">True</property>
++                                <property name="relief">GTK_RELIEF_NORMAL</property>
++                                <property name="focus_on_click">True</property>
++                                <property name="active">False</property>
++                                <property name="inconsistent">False</property>
++                                <property name="draw_indicator">True</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">10</property>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                              </packing>
++                            </child>
++
++                            <child>
++                              <widget class="GtkCheckButton" id="in_tcp_reserved_checkbutton">
++                                <property name="visible">True</property>
++                                <property name="tooltip" translatable="yes">Allow %s to call bindresvport with 0. Binding to port 600-1024</property>
++                                <property name="can_focus">True</property>
++                                <property name="label" translatable="yes">600-1024</property>
++                                <property name="use_underline">True</property>
++                                <property name="relief">GTK_RELIEF_NORMAL</property>
++                                <property name="focus_on_click">True</property>
++                                <property name="active">False</property>
++                                <property name="inconsistent">False</property>
++                                <property name="draw_indicator">True</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">10</property>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                              </packing>
++                            </child>
++
++                            <child>
++                              <widget class="GtkCheckButton" id="in_tcp_unreserved_checkbutton">
++                                <property name="visible">True</property>
++                                <property name="tooltip" translatable="yes">Enter a comma separated list of udp ports or ranges of ports that %s binds to. Example: 612, 650-660</property>
++                                <property name="can_focus">True</property>
++                                <property name="label" translatable="yes">Unreserved Ports (&gt;1024)</property>
++                                <property name="use_underline">True</property>
++                                <property name="relief">GTK_RELIEF_NORMAL</property>
++                                <property name="focus_on_click">True</property>
++                                <property name="active">False</property>
++                                <property name="inconsistent">False</property>
++                                <property name="draw_indicator">True</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">10</property>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                              </packing>
++                            </child>
++                          </widget>
++                          <packing>
++                            <property name="padding">0</property>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
++                          </packing>
++                        </child>
++
++                        <child>
++                          <widget class="GtkHBox" id="hbox22">
++                            <property name="visible">True</property>
++                            <property name="homogeneous">False</property>
++                            <property name="spacing">12</property>
++
++                            <child>
++                              <widget class="GtkLabel" id="label57">
++                                <property name="visible">True</property>
++                                <property name="label" translatable="yes">Select Ports</property>
++                                <property name="use_underline">False</property>
++                                <property name="use_markup">False</property>
++                                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                <property name="wrap">False</property>
++                                <property name="selectable">False</property>
++                                <property name="xalign">0</property>
++                                <property name="yalign">0.5</property>
++                                <property name="xpad">0</property>
++                                <property name="ypad">0</property>
++                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                <property name="width_chars">-1</property>
++                                <property name="single_line_mode">False</property>
++                                <property name="angle">0</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">5</property>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                              </packing>
++                            </child>
++
++                            <child>
++                              <widget class="GtkEntry" id="in_tcp_entry">
++                                <property name="visible">True</property>
++                                <property name="tooltip" translatable="yes">Allows %s to bind to any udp ports &gt; 1024</property>
++                                <property name="can_focus">True</property>
++                                <property name="editable">True</property>
++                                <property name="visibility">True</property>
++                                <property name="max_length">0</property>
++                                <property name="text" translatable="yes"></property>
++                                <property name="has_frame">True</property>
++                                <property name="invisible_char">•</property>
++                                <property name="activates_default">False</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">0</property>
++                                <property name="expand">True</property>
++                                <property name="fill">True</property>
++                              </packing>
++                            </child>
++                          </widget>
++                          <packing>
++                            <property name="padding">0</property>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
++                          </packing>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox24">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">6</property>
++
++                <child>
++                  <widget class="GtkLabel" id="label58">
++                    <property name="visible">True</property>
++                    <property name="label" translatable="yes">&lt;b&gt;UDP Ports&lt;/b&gt;</property>
++                    <property name="use_underline">False</property>
++                    <property name="use_markup">True</property>
++                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                    <property name="wrap">False</property>
++                    <property name="selectable">False</property>
++                    <property name="xalign">0</property>
++                    <property name="yalign">0.5</property>
++                    <property name="xpad">0</property>
++                    <property name="ypad">0</property>
++                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                    <property name="width_chars">-1</property>
++                    <property name="single_line_mode">False</property>
++                    <property name="angle">0</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="hbox23">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label59">
++                        <property name="visible">True</property>
++                        <property name="label">    </property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkVBox" id="vbox25">
++                        <property name="visible">True</property>
++                        <property name="homogeneous">False</property>
++                        <property name="spacing">6</property>
++
++                        <child>
++                          <widget class="GtkHBox" id="hbox24">
++                            <property name="visible">True</property>
++                            <property name="homogeneous">False</property>
++                            <property name="spacing">12</property>
++
++                            <child>
++                              <widget class="GtkCheckButton" id="in_udp_all_checkbutton">
++                                <property name="visible">True</property>
++                                <property name="tooltip" translatable="yes">Allows %s to bind to any udp port</property>
++                                <property name="can_focus">True</property>
++                                <property name="label" translatable="yes">All</property>
++                                <property name="use_underline">True</property>
++                                <property name="relief">GTK_RELIEF_NORMAL</property>
++                                <property name="focus_on_click">True</property>
++                                <property name="active">False</property>
++                                <property name="inconsistent">False</property>
++                                <property name="draw_indicator">True</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">10</property>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                              </packing>
++                            </child>
++
++                            <child>
++                              <widget class="GtkCheckButton" id="in_udp_reserved_checkbutton">
++                                <property name="visible">True</property>
++                                <property name="tooltip" translatable="yes">Allow %s to call bindresvport with 0. Binding to port 600-1024</property>
++                                <property name="can_focus">True</property>
++                                <property name="label" translatable="yes">600-1024</property>
++                                <property name="use_underline">True</property>
++                                <property name="relief">GTK_RELIEF_NORMAL</property>
++                                <property name="focus_on_click">True</property>
++                                <property name="active">False</property>
++                                <property name="inconsistent">False</property>
++                                <property name="draw_indicator">True</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">10</property>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                              </packing>
++                            </child>
++
++                            <child>
++                              <widget class="GtkCheckButton" id="in_udp_unreserved_checkbutton">
++                                <property name="visible">True</property>
++                                <property name="tooltip" translatable="yes">Enter a comma separated list of udp ports or ranges of ports that %s binds to. Example: 612, 650-660</property>
++                                <property name="can_focus">True</property>
++                                <property name="label" translatable="yes">Unreserved Ports (&gt;1024)</property>
++                                <property name="use_underline">True</property>
++                                <property name="relief">GTK_RELIEF_NORMAL</property>
++                                <property name="focus_on_click">True</property>
++                                <property name="active">False</property>
++                                <property name="inconsistent">False</property>
++                                <property name="draw_indicator">True</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">10</property>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                              </packing>
++                            </child>
++                          </widget>
++                          <packing>
++                            <property name="padding">0</property>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
++                          </packing>
++                        </child>
++
++                        <child>
++                          <widget class="GtkHBox" id="hbox25">
++                            <property name="visible">True</property>
++                            <property name="homogeneous">False</property>
++                            <property name="spacing">12</property>
++
++                            <child>
++                              <widget class="GtkLabel" id="label60">
++                                <property name="visible">True</property>
++                                <property name="label" translatable="yes">Select Ports</property>
++                                <property name="use_underline">False</property>
++                                <property name="use_markup">False</property>
++                                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                <property name="wrap">False</property>
++                                <property name="selectable">False</property>
++                                <property name="xalign">0</property>
++                                <property name="yalign">0.5</property>
++                                <property name="xpad">0</property>
++                                <property name="ypad">0</property>
++                                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                <property name="width_chars">-1</property>
++                                <property name="single_line_mode">False</property>
++                                <property name="angle">0</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">5</property>
++                                <property name="expand">False</property>
++                                <property name="fill">False</property>
++                              </packing>
++                            </child>
++
++                            <child>
++                              <widget class="GtkEntry" id="in_udp_entry">
++                                <property name="visible">True</property>
++                                <property name="tooltip" translatable="yes">Allows %s to bind to any udp ports &gt; 1024</property>
++                                <property name="can_focus">True</property>
++                                <property name="editable">True</property>
++                                <property name="visibility">True</property>
++                                <property name="max_length">0</property>
++                                <property name="text" translatable="yes"></property>
++                                <property name="has_frame">True</property>
++                                <property name="invisible_char">•</property>
++                                <property name="activates_default">False</property>
++                              </widget>
++                              <packing>
++                                <property name="padding">0</property>
++                                <property name="expand">True</property>
++                                <property name="fill">True</property>
++                              </packing>
++                            </child>
++                          </widget>
++                          <packing>
++                            <property name="padding">0</property>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
++                          </packing>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="label113">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">label113</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox75">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_out_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Select network ports that %s connects to:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox26">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">6</property>
++
++                <child>
++                  <widget class="GtkLabel" id="label37">
++                    <property name="visible">True</property>
++                    <property name="label" translatable="yes">&lt;b&gt;TCP Ports&lt;/b&gt;</property>
++                    <property name="use_underline">False</property>
++                    <property name="use_markup">True</property>
++                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                    <property name="wrap">False</property>
++                    <property name="selectable">False</property>
++                    <property name="xalign">0</property>
++                    <property name="yalign">0.5</property>
++                    <property name="xpad">0</property>
++                    <property name="ypad">0</property>
++                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                    <property name="width_chars">-1</property>
++                    <property name="single_line_mode">False</property>
++                    <property name="angle">0</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="hbox26">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label61">
++                        <property name="visible">True</property>
++                        <property name="label">    </property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkHBox" id="hbox15">
++                        <property name="visible">True</property>
++                        <property name="homogeneous">False</property>
++                        <property name="spacing">12</property>
++
++                        <child>
++                          <widget class="GtkCheckButton" id="out_tcp_all_checkbutton">
++                            <property name="tooltip" translatable="yes">Allows %s to connect to any tcp port</property>
++                            <property name="visible">True</property>
++                            <property name="can_focus">True</property>
++                            <property name="label" translatable="yes">All</property>
++                            <property name="use_underline">True</property>
++                            <property name="relief">GTK_RELIEF_NORMAL</property>
++                            <property name="focus_on_click">True</property>
++                            <property name="active">False</property>
++                            <property name="inconsistent">False</property>
++                            <property name="draw_indicator">True</property>
++                          </widget>
++                          <packing>
++                            <property name="padding">10</property>
++                            <property name="expand">False</property>
++                            <property name="fill">False</property>
++                          </packing>
++                        </child>
++
++                        <child>
++                          <widget class="GtkLabel" id="label38">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">Select Ports</property>
++                            <property name="use_underline">False</property>
++                            <property name="use_markup">False</property>
++                            <property name="justify">GTK_JUSTIFY_LEFT</property>
++                            <property name="wrap">False</property>
++                            <property name="selectable">False</property>
++                            <property name="xalign">0</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xpad">0</property>
++                            <property name="ypad">0</property>
++                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                            <property name="width_chars">-1</property>
++                            <property name="single_line_mode">False</property>
++                            <property name="angle">0</property>
++                          </widget>
++                          <packing>
++                            <property name="padding">5</property>
++                            <property name="expand">False</property>
++                            <property name="fill">False</property>
++                          </packing>
++                        </child>
++
++                        <child>
++                          <widget class="GtkEntry" id="out_tcp_entry">
++                            <property name="visible">True</property>
++                            <property name="tooltip" translatable="yes">Enter a comma separated list of tcp ports or ranges of ports that %s connects to. Example: 612, 650-660</property>
++                            <property name="can_focus">True</property>
++                            <property name="editable">True</property>
++                            <property name="visibility">True</property>
++                            <property name="max_length">0</property>
++                            <property name="text" translatable="yes"></property>
++                            <property name="has_frame">True</property>
++                            <property name="invisible_char">•</property>
++                            <property name="activates_default">False</property>
++                          </widget>
++                          <packing>
++                            <property name="padding">0</property>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
++                          </packing>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox27">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">6</property>
++
++                <child>
++                  <widget class="GtkLabel" id="label23">
++                    <property name="visible">True</property>
++                    <property name="label" translatable="yes">&lt;b&gt;UDP Ports&lt;/b&gt;</property>
++                    <property name="use_underline">False</property>
++                    <property name="use_markup">True</property>
++                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                    <property name="wrap">False</property>
++                    <property name="selectable">False</property>
++                    <property name="xalign">0</property>
++                    <property name="yalign">0.5</property>
++                    <property name="xpad">0</property>
++                    <property name="ypad">0</property>
++                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                    <property name="width_chars">-1</property>
++                    <property name="single_line_mode">False</property>
++                    <property name="angle">0</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="hbox27">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label62">
++                        <property name="visible">True</property>
++                        <property name="label">    </property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkHBox" id="hbox12">
++                        <property name="visible">True</property>
++                        <property name="homogeneous">False</property>
++                        <property name="spacing">12</property>
++
++                        <child>
++                          <widget class="GtkCheckButton" id="out_udp_all_checkbutton">
++                            <property name="tooltip" translatable="yes">Allows %s to connect to any udp port</property>
++                            <property name="visible">True</property>
++                            <property name="can_focus">True</property>
++                            <property name="label" translatable="yes">All</property>
++                            <property name="use_underline">True</property>
++                            <property name="relief">GTK_RELIEF_NORMAL</property>
++                            <property name="focus_on_click">True</property>
++                            <property name="active">False</property>
++                            <property name="inconsistent">False</property>
++                            <property name="draw_indicator">True</property>
++                          </widget>
++                          <packing>
++                            <property name="padding">10</property>
++                            <property name="expand">False</property>
++                            <property name="fill">False</property>
++                          </packing>
++                        </child>
++
++                        <child>
++                          <widget class="GtkLabel" id="label22">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">Select Ports</property>
++                            <property name="use_underline">False</property>
++                            <property name="use_markup">False</property>
++                            <property name="justify">GTK_JUSTIFY_LEFT</property>
++                            <property name="wrap">False</property>
++                            <property name="selectable">False</property>
++                            <property name="xalign">0</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xpad">0</property>
++                            <property name="ypad">0</property>
++                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                            <property name="width_chars">-1</property>
++                            <property name="single_line_mode">False</property>
++                            <property name="angle">0</property>
++                          </widget>
++                          <packing>
++                            <property name="padding">5</property>
++                            <property name="expand">False</property>
++                            <property name="fill">False</property>
++                          </packing>
++                        </child>
++
++                        <child>
++                          <widget class="GtkEntry" id="out_udp_entry">
++                            <property name="visible">True</property>
++                            <property name="tooltip" translatable="yes">Enter a comma separated list of udp ports or ranges of ports that %s connects to. Example: 612, 650-660</property>
++                            <property name="can_focus">True</property>
++                            <property name="editable">True</property>
++                            <property name="visibility">True</property>
++                            <property name="max_length">0</property>
++                            <property name="text" translatable="yes"></property>
++                            <property name="has_frame">True</property>
++                            <property name="invisible_char">•</property>
++                            <property name="activates_default">False</property>
++                          </widget>
++                          <packing>
++                            <property name="padding">0</property>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
++                          </packing>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="label114">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">label114</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox68">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_common_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Select common application traits for %s:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox4">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">6</property>
++
++                <child>
++                  <widget class="GtkCheckButton" id="syslog_checkbutton">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="label" translatable="yes">Writes syslog messages  </property>
++                    <property name="use_underline">True</property>
++                    <property name="relief">GTK_RELIEF_NORMAL</property>
++                    <property name="focus_on_click">True</property>
++                    <property name="active">False</property>
++                    <property name="inconsistent">False</property>
++                    <property name="draw_indicator">True</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkCheckButton" id="tmp_checkbutton">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="label" translatable="yes">Create/Manipulate temporary files in /tmp</property>
++                    <property name="use_underline">True</property>
++                    <property name="relief">GTK_RELIEF_NORMAL</property>
++                    <property name="focus_on_click">True</property>
++                    <property name="active">False</property>
++                    <property name="inconsistent">False</property>
++                    <property name="draw_indicator">True</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkCheckButton" id="pam_checkbutton">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="label" translatable="yes">Uses Pam for authentication</property>
++                    <property name="use_underline">True</property>
++                    <property name="relief">GTK_RELIEF_NORMAL</property>
++                    <property name="focus_on_click">True</property>
++                    <property name="active">False</property>
++                    <property name="inconsistent">False</property>
++                    <property name="draw_indicator">True</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkCheckButton" id="uid_checkbutton">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="label" translatable="yes">Uses nsswitch or getpw* calls</property>
++                    <property name="use_underline">True</property>
++                    <property name="relief">GTK_RELIEF_NORMAL</property>
++                    <property name="focus_on_click">True</property>
++                    <property name="active">False</property>
++                    <property name="inconsistent">False</property>
++                    <property name="draw_indicator">True</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkCheckButton" id="dbus_checkbutton">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="label" translatable="yes">Uses dbus</property>
++                    <property name="use_underline">True</property>
++                    <property name="relief">GTK_RELIEF_NORMAL</property>
++                    <property name="focus_on_click">True</property>
++                    <property name="active">False</property>
++                    <property name="inconsistent">False</property>
++                    <property name="draw_indicator">True</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkCheckButton" id="audit_checkbutton">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="label" translatable="yes">Sends audit messages</property>
++                    <property name="use_underline">True</property>
++                    <property name="relief">GTK_RELIEF_NORMAL</property>
++                    <property name="focus_on_click">True</property>
++                    <property name="active">False</property>
++                    <property name="inconsistent">False</property>
++                    <property name="draw_indicator">True</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkCheckButton" id="terminal_checkbutton">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="label" translatable="yes">Interacts with the terminal</property>
++                    <property name="use_underline">True</property>
++                    <property name="relief">GTK_RELIEF_NORMAL</property>
++                    <property name="focus_on_click">True</property>
++                    <property name="active">False</property>
++                    <property name="inconsistent">False</property>
++                    <property name="draw_indicator">True</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkCheckButton" id="mail_checkbutton">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="label" translatable="yes">Sends email</property>
++                    <property name="use_underline">True</property>
++                    <property name="relief">GTK_RELIEF_NORMAL</property>
++                    <property name="focus_on_click">True</property>
++                    <property name="active">False</property>
++                    <property name="inconsistent">False</property>
++                    <property name="draw_indicator">True</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="label115">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">label115</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox69">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_manages_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Add files/directories that %s manages&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkHBox" id="hbox1">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">12</property>
++
++                <child>
++                  <widget class="GtkVBox" id="vbox3">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">6</property>
++
++                    <child>
++                      <widget class="GtkButton" id="button2">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <signal name="clicked" handler="on_add_clicked" last_modification_time="Wed, 21 Feb 2007 18:47:51 GMT"/>
++
++                        <child>
++                          <widget class="GtkAlignment" id="alignment6">
++                            <property name="visible">True</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xscale">0</property>
++                            <property name="yscale">0</property>
++                            <property name="top_padding">0</property>
++                            <property name="bottom_padding">0</property>
++                            <property name="left_padding">0</property>
++                            <property name="right_padding">0</property>
++
++                            <child>
++                              <widget class="GtkHBox" id="hbox4">
++                                <property name="visible">True</property>
++                                <property name="homogeneous">False</property>
++                                <property name="spacing">2</property>
++
++                                <child>
++                                  <widget class="GtkImage" id="image3">
++                                    <property name="visible">True</property>
++                                    <property name="stock">gtk-add</property>
++                                    <property name="icon_size">4</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++
++                                <child>
++                                  <widget class="GtkLabel" id="label17">
++                                    <property name="visible">True</property>
++                                    <property name="label">Add File</property>
++                                    <property name="use_underline">True</property>
++                                    <property name="use_markup">False</property>
++                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                    <property name="wrap">False</property>
++                                    <property name="selectable">False</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                    <property name="width_chars">-1</property>
++                                    <property name="single_line_mode">False</property>
++                                    <property name="angle">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++                              </widget>
++                            </child>
++                          </widget>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkButton" id="button9">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <signal name="clicked" handler="on_add_dir_clicked" last_modification_time="Wed, 21 Feb 2007 22:15:43 GMT"/>
++
++                        <child>
++                          <widget class="GtkAlignment" id="alignment5">
++                            <property name="visible">True</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xscale">0</property>
++                            <property name="yscale">0</property>
++                            <property name="top_padding">0</property>
++                            <property name="bottom_padding">0</property>
++                            <property name="left_padding">0</property>
++                            <property name="right_padding">0</property>
++
++                            <child>
++                              <widget class="GtkHBox" id="hbox3">
++                                <property name="visible">True</property>
++                                <property name="homogeneous">False</property>
++                                <property name="spacing">2</property>
++
++                                <child>
++                                  <widget class="GtkImage" id="image2">
++                                    <property name="visible">True</property>
++                                    <property name="stock">gtk-add</property>
++                                    <property name="icon_size">4</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++
++                                <child>
++                                  <widget class="GtkLabel" id="label16">
++                                    <property name="visible">True</property>
++                                    <property name="label">Add Directory</property>
++                                    <property name="use_underline">True</property>
++                                    <property name="use_markup">False</property>
++                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                    <property name="wrap">False</property>
++                                    <property name="selectable">False</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                    <property name="width_chars">-1</property>
++                                    <property name="single_line_mode">False</property>
++                                    <property name="angle">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++                              </widget>
++                            </child>
++                          </widget>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkButton" id="button4">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="label">gtk-delete</property>
++                        <property name="use_stock">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <signal name="clicked" handler="on_delete_clicked" last_modification_time="Wed, 21 Feb 2007 18:48:10 GMT"/>
++                        <accelerator key="Delete" modifiers="0" signal="clicked"/>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">4</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkScrolledWindow" id="scrolledwindow2">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
++                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
++                    <property name="shadow_type">GTK_SHADOW_IN</property>
++                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                    <child>
++                      <widget class="GtkTreeView" id="write_treeview">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Files/Directories which the %s &quot;manages&quot;. Pid Files, Log Files, /var/lib Files ...</property>
++                        <property name="can_focus">True</property>
++                        <property name="headers_visible">False</property>
++                        <property name="rules_hint">False</property>
++                        <property name="reorderable">False</property>
++                        <property name="enable_search">True</property>
++                        <property name="fixed_height_mode">False</property>
++                        <property name="hover_selection">False</property>
++                        <property name="hover_expand">False</property>
++                      </widget>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="label116">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">label116</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox70">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_booleans_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Add booleans from the %s policy:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">5</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkHBox" id="hbox1">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">12</property>
++
++                <child>
++                  <widget class="GtkVBox" id="vbox3">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">6</property>
++
++                    <child>
++                      <widget class="GtkButton" id="button2">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <signal name="clicked" handler="on_add_boolean_clicked" last_modification_time="Wed, 17 Oct 2007 00:02:27 GMT"/>
++
++                        <child>
++                          <widget class="GtkAlignment" id="alignment6">
++                            <property name="visible">True</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xscale">0</property>
++                            <property name="yscale">0</property>
++                            <property name="top_padding">0</property>
++                            <property name="bottom_padding">0</property>
++                            <property name="left_padding">0</property>
++                            <property name="right_padding">0</property>
++
++                            <child>
++                              <widget class="GtkHBox" id="hbox4">
++                                <property name="visible">True</property>
++                                <property name="homogeneous">False</property>
++                                <property name="spacing">2</property>
++
++                                <child>
++                                  <widget class="GtkImage" id="image3">
++                                    <property name="visible">True</property>
++                                    <property name="stock">gtk-add</property>
++                                    <property name="icon_size">4</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++
++                                <child>
++                                  <widget class="GtkLabel" id="label17">
++                                    <property name="visible">True</property>
++                                    <property name="label">Add Boolean</property>
++                                    <property name="use_underline">True</property>
++                                    <property name="use_markup">False</property>
++                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                    <property name="wrap">False</property>
++                                    <property name="selectable">False</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                    <property name="width_chars">-1</property>
++                                    <property name="single_line_mode">False</property>
++                                    <property name="angle">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++                              </widget>
++                            </child>
++                          </widget>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkButton" id="button4">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="label">gtk-delete</property>
++                        <property name="use_stock">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <signal name="clicked" handler="on_delete_boolean_clicked" last_modification_time="Wed, 17 Oct 2007 00:02:39 GMT"/>
++                        <accelerator key="Delete" modifiers="0" signal="clicked"/>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">4</property>
++                    <property name="expand">False</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkScrolledWindow" id="scrolledwindow2">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
++                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
++                    <property name="shadow_type">GTK_SHADOW_IN</property>
++                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                    <child>
++                      <widget class="GtkTreeView" id="boolean_treeview">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Add/Remove booleans used by the %s domain</property>
++                        <property name="can_focus">True</property>
++                        <property name="headers_visible">True</property>
++                        <property name="rules_hint">False</property>
++                        <property name="reorderable">False</property>
++                        <property name="enable_search">True</property>
++                        <property name="fixed_height_mode">False</property>
++                        <property name="hover_selection">False</property>
++                        <property name="hover_expand">False</property>
++                      </widget>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="GtkLabel">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes"></property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkVBox" id="vbox71">
++            <property name="visible">True</property>
++            <property name="homogeneous">False</property>
++            <property name="spacing">0</property>
++
++            <child>
++              <widget class="GtkLabel" id="select_dir_label">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Which directory you will generate the %s policy?&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="padding">0</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkHBox" id="hbox6">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">12</property>
++
++                <child>
++                  <widget class="GtkLabel" id="label18">
++                    <property name="visible">True</property>
++                    <property name="label" translatable="yes">Policy Directory</property>
++                    <property name="use_underline">False</property>
++                    <property name="use_markup">False</property>
++                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                    <property name="wrap">False</property>
++                    <property name="selectable">False</property>
++                    <property name="xalign">0.5</property>
++                    <property name="yalign">0.5</property>
++                    <property name="xpad">0</property>
++                    <property name="ypad">0</property>
++                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                    <property name="width_chars">-1</property>
++                    <property name="single_line_mode">False</property>
++                    <property name="angle">0</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">5</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkEntry" id="output_entry">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="editable">True</property>
++                    <property name="visibility">True</property>
++                    <property name="max_length">0</property>
++                    <property name="text" translatable="yes"></property>
++                    <property name="has_frame">True</property>
++                    <property name="invisible_char">•</property>
++                    <property name="activates_default">False</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkButton" id="output_button">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="label" translatable="yes">...</property>
++                    <property name="use_underline">True</property>
++                    <property name="relief">GTK_RELIEF_NORMAL</property>
++                    <property name="focus_on_click">True</property>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="padding">12</property>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="tab_expand">False</property>
++            <property name="tab_fill">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="GtkLabel">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes"></property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0.5</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="type">tab</property>
++          </packing>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">True</property>
++        <property name="fill">True</property>
++      </packing>
++      </child>
++
++      <child>
++      <widget class="GtkHButtonBox" id="hbuttonbox2">
++        <property name="visible">True</property>
++        <property name="layout_style">GTK_BUTTONBOX_END</property>
++        <property name="spacing">0</property>
++
++        <child>
++          <widget class="GtkButton" id="cancel_button">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-cancel</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <signal name="activate" handler="on_cancel_activate" last_modification_time="Wed, 02 Feb 2011 21:21:29 GMT"/>
++          </widget>
++        </child>
++
++        <child>
++          <widget class="GtkButton" id="back_button">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-go-back</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <signal name="activate" handler="on_back_activate" last_modification_time="Wed, 02 Feb 2011 21:22:00 GMT"/>
++          </widget>
++        </child>
++
++        <child>
++          <widget class="GtkButton" id="forward_button">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-media-forward</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <signal name="activate" handler="on_forward_activate" last_modification_time="Wed, 02 Feb 2011 21:22:32 GMT"/>
++          </widget>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">5</property>
++        <property name="expand">False</property>
++        <property name="fill">False</property>
++      </packing>
++      </child>
++    </widget>
++  </child>
++</widget>
++
++<widget class="GtkDialog" id="boolean_dialog">
++  <property name="border_width">12</property>
++  <property name="title" translatable="yes">Add Booleans Dialog</property>
++  <property name="type">GTK_WINDOW_TOPLEVEL</property>
++  <property name="window_position">GTK_WIN_POS_MOUSE</property>
++  <property name="modal">False</property>
++  <property name="default_width">400</property>
++  <property name="resizable">True</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="decorated">True</property>
++  <property name="skip_taskbar_hint">False</property>
++  <property name="skip_pager_hint">False</property>
++  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
++  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
++  <property name="focus_on_map">True</property>
++  <property name="urgency_hint">False</property>
++  <property name="has_separator">False</property>
++
++  <child internal-child="vbox">
++    <widget class="GtkVBox" id="dialog-vbox2">
++      <property name="visible">True</property>
++      <property name="homogeneous">False</property>
++      <property name="spacing">6</property>
++
++      <child internal-child="action_area">
++      <widget class="GtkHButtonBox" id="dialog-action_area2">
++        <property name="visible">True</property>
++        <property name="layout_style">GTK_BUTTONBOX_END</property>
++
++        <child>
++          <widget class="GtkButton" id="cancelbutton1">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-cancel</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-6</property>
++          </widget>
++        </child>
++
++        <child>
++          <widget class="GtkButton" id="okbutton1">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-add</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-5</property>
++          </widget>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">False</property>
++        <property name="fill">True</property>
++        <property name="pack_type">GTK_PACK_END</property>
++      </packing>
++      </child>
++
++      <child>
++      <widget class="GtkTable" id="table6">
++        <property name="visible">True</property>
++        <property name="n_rows">2</property>
++        <property name="n_columns">2</property>
++        <property name="homogeneous">False</property>
++        <property name="row_spacing">6</property>
++        <property name="column_spacing">12</property>
++
++        <child>
++          <widget class="GtkLabel" id="label48">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">Boolean Name</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="left_attach">0</property>
++            <property name="right_attach">1</property>
++            <property name="top_attach">0</property>
++            <property name="bottom_attach">1</property>
++            <property name="x_options">fill</property>
++            <property name="y_options"></property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkLabel" id="label49">
++            <property name="visible">True</property>
++            <property name="label" translatable="yes">Description</property>
++            <property name="use_underline">False</property>
++            <property name="use_markup">False</property>
++            <property name="justify">GTK_JUSTIFY_LEFT</property>
++            <property name="wrap">False</property>
++            <property name="selectable">False</property>
++            <property name="xalign">0</property>
++            <property name="yalign">0.5</property>
++            <property name="xpad">0</property>
++            <property name="ypad">0</property>
++            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++            <property name="width_chars">-1</property>
++            <property name="single_line_mode">False</property>
++            <property name="angle">0</property>
++          </widget>
++          <packing>
++            <property name="left_attach">0</property>
++            <property name="right_attach">1</property>
++            <property name="top_attach">1</property>
++            <property name="bottom_attach">2</property>
++            <property name="x_options">fill</property>
++            <property name="y_options"></property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkEntry" id="boolean_name_entry">
++            <property name="visible">True</property>
++            <property name="can_focus">True</property>
++            <property name="editable">True</property>
++            <property name="visibility">True</property>
++            <property name="max_length">0</property>
++            <property name="text" translatable="yes"></property>
++            <property name="has_frame">True</property>
++            <property name="invisible_char">•</property>
++            <property name="activates_default">False</property>
++          </widget>
++          <packing>
++            <property name="left_attach">1</property>
++            <property name="right_attach">2</property>
++            <property name="top_attach">0</property>
++            <property name="bottom_attach">1</property>
++            <property name="y_options"></property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkEntry" id="boolean_description_entry">
++            <property name="visible">True</property>
++            <property name="can_focus">True</property>
++            <property name="editable">True</property>
++            <property name="visibility">True</property>
++            <property name="max_length">0</property>
++            <property name="text" translatable="yes"></property>
++            <property name="has_frame">True</property>
++            <property name="invisible_char">•</property>
++            <property name="activates_default">False</property>
++          </widget>
++          <packing>
++            <property name="left_attach">1</property>
++            <property name="right_attach">2</property>
++            <property name="top_attach">1</property>
++            <property name="bottom_attach">2</property>
++            <property name="y_options"></property>
++          </packing>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">True</property>
++        <property name="fill">True</property>
++      </packing>
++      </child>
++    </widget>
++  </child>
++</widget>
++
++</glade-interface>
+diff --git a/policycoreutils/gui/polgen.py b/policycoreutils/gui/polgen.py
+new file mode 100644
+index 0000000..04693e9
+--- /dev/null
++++ b/policycoreutils/gui/polgen.py
+@@ -0,0 +1,1370 @@
++#!/usr/bin/python -Es
++#
++# Copyright (C) 2007-2012 Red Hat 
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#  
++import os, sys, stat
++import re
++import commands
++import setools
++
++from templates import executable
++from templates import boolean
++from templates import etc_rw
++from templates import unit_file
++from templates import var_cache
++from templates import var_spool
++from templates import var_lib
++from templates import var_log
++from templates import var_run
++from templates import tmp
++from templates import rw
++from templates import network
++from templates import script
++from templates import user
++import sepolgen.interfaces as interfaces
++import sepolgen.defaults as defaults
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++methods = []
++fn = defaults.interface_info()
++try:
++    fd = open(fn)
++    # List of per_role_template interfaces
++    ifs = interfaces.InterfaceSet()
++    ifs.from_file(fd)
++    methods = ifs.interfaces.keys()
++    fd.close()
++except:
++    sys.stderr.write("could not open interface info [%s]\n" % fn)
++    sys.exit(1)
++
++all_types = None
++def get_all_types():
++    global all_types
++    if all_types == None:
++        all_types = map(lambda x: x['name'], setools.seinfo(setools.TYPE))
++    return all_types
++
++def get_all_ports():
++    dict = {}
++    for p in setools.seinfo(setools.PORT):
++        if p['type'] == "reserved_port_t" or \
++                p['type'] == "port_t" or \
++                p['type'] == "hi_reserved_port_t":
++            continue
++        dict[(p['low'], p['high'], p['protocol'])]=(p['type'], p['range'])
++    return dict
++
++def get_all_roles():
++    roles = map(lambda x: x['name'], setools.seinfo(setools.ROLE))
++    roles.remove("object_r")
++    roles.sort()
++    return roles
++
++def get_all_attributes():
++    attributes = map(lambda x: x['name'], setools.seinfo(setools.ATTRIBUTE))
++    attributes.sort()
++    return attributes
++
++def get_all_domains():
++    all_domains = []
++    types=get_all_types()
++    types.sort()
++    for i in types:
++        m = re.findall("(.*)%s" % "_exec_t$", i) 
++        if len(m) > 0:
++            if len(re.findall("(.*)%s" % "_initrc$", m[0])) == 0 and m[0] not in all_domains:
++                all_domains.append(m[0])
++    return all_domains
++
++def get_all_modules():
++    try:
++        all_modules = []
++        rc, output=commands.getstatusoutput("semodule -l 2>/dev/null")
++        if rc == 0:
++            l = output.split("\n")
++            for i in l:
++                all_modules.append(i.split()[0])
++    except:
++        pass
++
++    return all_modules
++
++def get_all_users():
++    users = map(lambda x: x['name'], setools.seinfo(setools.USER))
++    users.remove("system_u")
++    users.remove("root")
++    users.sort()
++    return users
++
++ALL = 0
++RESERVED = 1
++UNRESERVED = 2
++PORTS = 3
++ADMIN_TRANSITION_INTERFACE = "_admin$"
++USER_TRANSITION_INTERFACE = "_role$"
++
++DAEMON = 0
++DBUS = 1
++INETD = 2
++USER = 3
++CGI = 4
++XUSER = 5
++TUSER = 6
++LUSER = 7
++AUSER = 8
++EUSER = 9
++RUSER = 10
++SANDBOX = 11
++
++poltype={} 
++poltype[DAEMON] = _("Standard Init Daemon")
++poltype[DBUS] = _("DBUS System Daemon")
++poltype[INETD] = _("Internet Services Daemon") 
++poltype[CGI] = _("Web Application/Script (CGI)")
++poltype[USER] = _("User Application")
++poltype[TUSER] = _("Minimal Terminal User Role")
++poltype[XUSER] = _("Minimal X Windows User Role")
++poltype[LUSER] = _("User Role")
++poltype[AUSER] = _("Admin User Role")
++poltype[RUSER] = _("Root Admin User Role")
++poltype[SANDBOX] = _("Sandbox")
++
++APPLICATIONS = [ DAEMON, DBUS, INETD, USER, CGI ]
++USERS = [ XUSER, TUSER, LUSER, AUSER, EUSER, RUSER]
++
++def verify_ports(ports):
++    if ports == "":
++        return []
++    max_port=2**16
++    try:
++        temp = []
++        for a in ports.split(","):
++            r =  a.split("-")
++            if len(r) > 2:
++                raise  ValueError
++            if len(r) == 1:
++                begin = int (r[0])
++                end = int (r[0])
++            else:
++                begin = int (r[0])
++                end = int (r[1])
++                
++                if begin > end:
++                    raise  ValueError
++                
++            for p in range(begin, end + 1):
++                if p < 1 or p > max_port:
++                    raise  ValueError
++                temp.append(p)
++        return temp
++    except ValueError:
++        raise  ValueError(_("Ports must be numbers or ranges of numbers from 1 to %d " % max_port ))
++
++class policy:
++    
++      def __init__(self, name, type):
++                self.ports = []
++                try:
++                    self.ports = get_all_ports()
++                except ValueError, e:
++                    print "Can not get port types, must be root for this information"
++                except RuntimeError, e:
++                    print "Can not get port types", e
++
++                self.symbols = {} 
++                self.symbols["openlog"] = "set_use_kerberos(True)"
++                self.symbols["openlog"] = "set_use_kerb_rcache(True)"
++                self.symbols["openlog"] = "set_use_syslog(True)"
++                self.symbols["gethostby"] = "set_use_resolve(True)"
++                self.symbols["getaddrinfo"] = "set_use_resolve(True)"
++                self.symbols["getnameinfo"] = "set_use_resolve(True)"
++                self.symbols["krb"] = "set_use_kerberos(True)"
++                self.symbols["gss_accept_sec_context"] = "set_manage_krb5_rcache(True)"
++                self.symbols["krb5_verify_init_creds"] = "set_manage_krb5_rcache(True)"
++                self.symbols["krb5_rd_req"] = "set_manage_krb5_rcache(True)"
++                self.symbols["__syslog_chk"] = "set_use_syslog(True)"
++                self.symbols["getpwnam"] = "set_use_uid(True)"
++                self.symbols["getpwuid"] = "set_use_uid(True)"
++                self.symbols["dbus_"] = "set_use_dbus(True)"
++                self.symbols["pam_"] = "set_use_pam(True)"
++                self.symbols["pam_"] = "set_use_audit(True)"
++                self.symbols["fork"] = "add_process('fork')"
++                self.symbols["transition"] = "add_process('transition')"
++                self.symbols["sigchld"] = "add_process('sigchld')"
++                self.symbols["sigkill"] = "add_process('sigkill')"
++                self.symbols["sigstop"] = "add_process('sigstop')"
++                self.symbols["signull"] = "add_process('signull')"
++                self.symbols["signal"] = "add_process('signal')"
++                self.symbols["ptrace"] = "add_process('ptrace')"
++                self.symbols["getsched"] = "add_process('getsched')"
++                self.symbols["setsched"] = "add_process('setsched')"
++                self.symbols["getsession"] = "add_process('getsession')"
++                self.symbols["getpgid"] = "add_process('getpgid')"
++                self.symbols["setpgid"] = "add_process('setpgid')"
++                self.symbols["getcap"] = "add_process('getcap')"
++                self.symbols["setcap"] = "add_process('setcap')"
++                self.symbols["share"] = "add_process('share')"
++                self.symbols["getattr"] = "add_process('getattr')"
++                self.symbols["setexec"] = "add_process('setexec')"
++                self.symbols["setfscreate"] = "add_process('setfscreate')"
++                self.symbols["noatsecure"] = "add_process('noatsecure')"
++                self.symbols["siginh"] = "add_process('siginh')"
++                self.symbols["setrlimit"] = "add_process('setrlimit')"
++                self.symbols["rlimitinh"] = "add_process('rlimitinh')"
++                self.symbols["dyntransition"] = "add_process('dyntransition')"
++                self.symbols["setcurrent"] = "add_process('setcurrent')"
++                self.symbols["execmem"] = "add_process('execmem')"
++                self.symbols["execstack"] = "add_process('execstack')"
++                self.symbols["execheap"] = "add_process('execheap')"
++                self.symbols["setkeycreate"] = "add_process('setkeycreate')"
++                self.symbols["setsockcreate"] = "add_process('setsockcreate')"
++
++                self.symbols["chown"] = "add_capability('chown')"
++                self.symbols["dac_override"] = "add_capability('dac_override')"
++                self.symbols["dac_read_search"] = "add_capability('dac_read_search')"
++                self.symbols["fowner"] = "add_capability('fowner')"
++                self.symbols["fsetid"] = "add_capability('fsetid')"
++                self.symbols["kill"] = "add_capability('kill')"
++                self.symbols["setgid"] = "add_capability('setgid')"
++                self.symbols["setresuid"] = "add_capability('setuid')"
++                self.symbols["setuid"] = "add_capability('setuid')"
++                self.symbols["setpcap"] = "add_capability('setpcap')"
++                self.symbols["linux_immutable"] = "add_capability('linux_immutable')"
++                self.symbols["net_bind_service"] = "add_capability('net_bind_service')"
++                self.symbols["net_broadcast"] = "add_capability('net_broadcast')"
++                self.symbols["net_admin"] = "add_capability('net_admin')"
++                self.symbols["net_raw"] = "add_capability('net_raw')"
++                self.symbols["ipc_lock"] = "add_capability('ipc_lock')"
++                self.symbols["ipc_owner"] = "add_capability('ipc_owner')"
++                self.symbols["sys_module"] = "add_capability('sys_module')"
++                self.symbols["sys_rawio"] = "add_capability('sys_rawio')"
++                self.symbols["chroot"] = "add_capability('sys_chroot')"
++                self.symbols["sys_chroot"] = "add_capability('sys_chroot')"
++                self.symbols["sys_ptrace"] = "add_capability('sys_ptrace')"
++                self.symbols["sys_pacct"] = "add_capability('sys_pacct')"
++                self.symbols["mount"] = "add_capability('sys_admin')"
++                self.symbols["unshare"] = "add_capability('sys_admin')"
++                self.symbols["sys_admin"] = "add_capability('sys_admin')"
++                self.symbols["sys_boot"] = "add_capability('sys_boot')"
++                self.symbols["sys_nice"] = "add_capability('sys_nice')"
++                self.symbols["sys_resource"] = "add_capability('sys_resource')"
++                self.symbols["sys_time"] = "add_capability('sys_time')"
++                self.symbols["sys_tty_config"] = "add_capability('sys_tty_config')"
++                self.symbols["mknod"] = "add_capability('mknod')"
++                self.symbols["lease"] = "add_capability('lease')"
++                self.symbols["audit_write"] = "add_capability('audit_write')"
++                self.symbols["audit_control"] = "add_capability('audit_control')"
++                self.symbols["setfcap"] = "add_capability('setfcap')"
++                
++              self.DEFAULT_DIRS = {}
++              self.DEFAULT_DIRS["/etc"] = ["etc_rw", [], etc_rw];
++              self.DEFAULT_DIRS["/tmp"] = ["tmp", [], tmp];
++              self.DEFAULT_DIRS["rw"] = ["rw", [], rw];
++              self.DEFAULT_DIRS["/usr/lib/systemd/system"] = ["unit_file", [], unit_file];
++              self.DEFAULT_DIRS["/lib/systemd/system"] = ["unit_file", [], unit_file];
++              self.DEFAULT_DIRS["/etc/systemd/system"] = ["unit_file", [], unit_file];
++              self.DEFAULT_DIRS["/var/cache"] = ["var_cache", [], var_cache];
++              self.DEFAULT_DIRS["/var/lib"] = ["var_lib", [], var_lib];
++              self.DEFAULT_DIRS["/var/log"] = ["var_log", [], var_log];
++              self.DEFAULT_DIRS["/var/run"] = ["var_run", [], var_run];
++              self.DEFAULT_DIRS["/var/spool"] = ["var_spool", [], var_spool];
++
++                self.DEFAULT_KEYS=["/etc", "/var/cache", "/var/log", "/tmp", "rw", "/var/lib", "/var/run", "/var/spool", "/etc/systemd/system", "/usr/lib/systemd/system", "/lib/systemd/system" ]
++
++              self.DEFAULT_TYPES = (\
++( self.generate_daemon_types, self.generate_daemon_rules), \
++( self.generate_dbusd_types, self.generate_dbusd_rules), \
++( self.generate_inetd_types, self.generate_inetd_rules), \
++( self.generate_userapp_types, self.generate_userapp_rules), \
++( self.generate_cgi_types, self.generate_cgi_rules), \
++( self.generate_x_login_user_types, self.generate_x_login_user_rules), \
++( self.generate_min_login_user_types, self.generate_login_user_rules), \
++( self.generate_login_user_types, self.generate_login_user_rules), \
++( self.generate_admin_user_types, self.generate_login_user_rules), \
++( self.generate_existing_user_types, self.generate_existing_user_rules), \
++( self.generate_root_user_types, self.generate_root_user_rules), \
++( self.generate_sandbox_types, self.generate_sandbox_rules))
++              if name == "":
++                      raise ValueError(_("You must enter a name for your confined process/user"))
++                if not name.isalnum():
++                    raise ValueError(_("Name must be alpha numberic with no spaces. Consider using option \"-n MODULENAME\""))
++
++              if type == CGI:
++                      self.name = "httpd_%s_script" % name
++              else:
++                      self.name = name
++
++                self.file_name = name
++
++                self.capabilities = []
++                self.processes = []
++              self.type = type
++              self.initscript = ""
++                self.program = ""
++              self.in_tcp = [False, False, False, []]
++              self.in_udp = [False, False, False, []]
++              self.out_tcp = [False, False, False, []]
++              self.out_udp = [False, False, False, []]
++              self.use_resolve = False
++              self.use_tmp = False
++              self.use_uid = False
++              self.use_syslog = False
++              self.use_kerberos = False
++              self.manage_krb5_rcache = False
++              self.use_pam = False
++              self.use_dbus = False
++              self.use_audit = False
++              self.use_etc = True
++              self.use_localization = True
++              self.use_fd = True
++              self.use_terminal = False
++              self.use_mail = False
++              self.booleans = {}
++              self.files = {}
++              self.dirs = {}
++                self.found_tcp_ports=[]
++                self.found_udp_ports=[]
++                self.need_tcp_type=False
++                self.need_udp_type=False
++              self.admin_domains = []
++              self.transition_domains = []
++              self.transition_users = []
++                self.roles = []
++
++        def __isnetset(self, l):
++            return l[ALL] or l[RESERVED] or l[UNRESERVED] or len(l[PORTS]) > 0
++
++        def set_admin_domains(self, admin_domains):
++            self.admin_domains = admin_domains
++
++        def set_admin_roles(self, roles):
++            self.roles = roles
++
++        def set_transition_domains(self, transition_domains):
++            self.transition_domains = transition_domains
++
++        def set_transition_users(self, transition_users):
++            self.transition_users = transition_users
++
++        def use_in_udp(self):
++            return self.__isnetset(self.in_udp)
++            
++        def use_out_udp(self):
++            return self.__isnetset(self.out_udp)
++            
++        def use_udp(self):
++            return self.use_in_udp() or self.use_out_udp()
++
++        def use_in_tcp(self):
++            return self.__isnetset(self.in_tcp)
++            
++        def use_out_tcp(self):
++            return self.__isnetset(self.out_tcp)
++        
++        def use_tcp(self):
++            return self.use_in_tcp() or self.use_out_tcp()
++
++        def use_network(self):
++            return self.use_tcp() or self.use_udp()
++        
++        def find_port(self, port, protocol="tcp"):
++            for begin,end,p in self.ports.keys():
++                if port >= begin and port <= end and protocol == p:
++                    return self.ports[begin, end, protocol]
++            return  None
++
++      def set_program(self, program):
++                if self.type not in APPLICATIONS:
++                    raise ValueError(_("User Role types can not be assigned executables."))
++
++              self.program = program
++
++      def set_init_script(self, initscript):
++                if self.type != DAEMON:
++                    raise ValueError(_("Only Daemon apps can use an init script.."))
++
++              self.initscript = initscript
++
++      def set_in_tcp(self, all, reserved, unreserved, ports):
++              self.in_tcp = [ all, reserved, unreserved, verify_ports(ports)]
++
++      def set_in_udp(self, all, reserved, unreserved, ports):
++              self.in_udp = [ all, reserved, unreserved, verify_ports(ports)]
++
++      def set_out_tcp(self, all, ports):
++              self.out_tcp = [ all , False, False, verify_ports(ports) ]
++
++      def set_out_udp(self, all, ports):
++              self.out_udp = [ all , False, False, verify_ports(ports) ]
++
++      def set_use_resolve(self, val):
++              if val != True and val != False:
++                      raise  ValueError(_("use_resolve must be a boolean value "))
++            
++              self.use_resolve = val
++              
++      def set_use_syslog(self, val):
++              if val != True and val != False:
++                      raise  ValueError(_("use_syslog must be a boolean value "))
++            
++              self.use_syslog = val
++              
++      def set_use_kerberos(self, val):
++              if val != True and val != False:
++                      raise  ValueError(_("use_kerberos must be a boolean value "))
++            
++              self.use_kerberos = val
++              
++      def set_manage_krb5_rcache(self, val):
++              if val != True and val != False:
++                      raise  ValueError(_("manage_krb5_rcache must be a boolean value "))
++            
++              self.manage_krb5_rcache = val
++              
++      def set_use_pam(self, val):
++              self.use_pam = val == True
++              
++      def set_use_dbus(self, val):
++              self.use_dbus = val == True
++              
++      def set_use_audit(self, val):
++              self.use_audit = val == True
++              
++      def set_use_etc(self, val):
++              self.use_etc = val == True
++              
++      def set_use_localization(self, val):
++              self.use_localization = val == True
++              
++      def set_use_fd(self, val):
++              self.use_fd = val == True
++              
++      def set_use_terminal(self, val):
++              self.use_terminal = val == True
++              
++      def set_use_mail(self, val):
++              self.use_mail = val == True
++              
++      def set_use_tmp(self, val):
++            if self.type in USERS:
++                raise ValueError(_("USER Types automatically get a tmp type"))
++
++            if val:
++              self.DEFAULT_DIRS["/tmp"][1].append("/tmp");
++            else:
++              self.DEFAULT_DIRS["/tmp"][1]=[]
++              
++      def set_use_uid(self, val):
++              self.use_uid = val == True
++
++      def generate_uid_rules(self):
++                if self.use_uid:
++                    return re.sub("TEMPLATETYPE", self.name, executable.te_uid_rules)
++                else:
++                    return ""
++
++      def generate_syslog_rules(self):
++                if self.use_syslog:
++                    return re.sub("TEMPLATETYPE", self.name, executable.te_syslog_rules)
++                else:
++                    return ""
++
++      def generate_resolve_rules(self):
++                if self.use_resolve:
++                    return re.sub("TEMPLATETYPE", self.name, executable.te_resolve_rules)
++                else:
++                    return ""
++
++      def generate_kerberos_rules(self):
++                if self.use_kerberos:
++                    return re.sub("TEMPLATETYPE", self.name, executable.te_kerberos_rules)
++                else:
++                    return ""
++
++      def generate_manage_krb5_rcache_rules(self):
++                if self.manage_krb5_rcache:
++                    return re.sub("TEMPLATETYPE", self.name, executable.te_manage_krb5_rcache_rules)
++                else:
++                    return ""
++
++      def generate_pam_rules(self):
++                newte =""
++                if self.use_pam:
++                    newte = re.sub("TEMPLATETYPE", self.name, executable.te_pam_rules)
++                return newte
++
++      def generate_audit_rules(self):
++                newte =""
++                if self.use_audit:
++                    newte = re.sub("TEMPLATETYPE", self.name, executable.te_audit_rules)
++                return newte
++
++      def generate_etc_rules(self):
++                newte =""
++                if self.use_etc:
++                    newte = re.sub("TEMPLATETYPE", self.name, executable.te_etc_rules)
++                return newte
++
++      def generate_fd_rules(self):
++                newte =""
++                if self.use_fd:
++                    newte = re.sub("TEMPLATETYPE", self.name, executable.te_fd_rules)
++                return newte
++
++      def generate_localization_rules(self):
++                newte =""
++                if self.use_localization:
++                    newte = re.sub("TEMPLATETYPE", self.name, executable.te_localization_rules)
++                return newte
++
++      def generate_dbus_rules(self):
++                newte =""
++                if self.type != DBUS and self.use_dbus:
++                    newte = re.sub("TEMPLATETYPE", self.name, executable.te_dbus_rules)
++                return newte
++
++      def generate_mail_rules(self):
++                newte =""
++                if self.use_mail:
++                    newte = re.sub("TEMPLATETYPE", self.name, executable.te_mail_rules)
++                return newte
++
++        def generate_network_action(self, protocol, action, port_name):
++            line = ""
++            method = "corenet_%s_%s_%s" % (protocol, action, port_name)
++            if method in methods:
++                line = "%s(%s_t)\n" % (method, self.name)
++            else:
++                line = """
++gen_require(`
++    type %s_t;
++')
++allow %s_t %s_t:%s_socket name_%s;
++""" % (port_name, self.name, port_name, protocol, action)
++            return line
++                
++      def generate_network_types(self):
++            for i in self.in_tcp[PORTS]:
++                rec = self.find_port(int(i), "tcp")
++                if rec == None:
++                    self.need_tcp_type = True;
++                else:
++                    port_name = rec[0][:-2]
++                    line = self.generate_network_action("tcp", "bind", port_name)
++#                   line = "corenet_tcp_bind_%s(%s_t)\n" % (port_name, self.name)
++                    if line not in self.found_tcp_ports:
++                        self.found_tcp_ports.append(line)
++
++            for i in self.out_tcp[PORTS]:
++                rec = self.find_port(int(i), "tcp")
++                if rec == None:
++                    self.need_tcp_type = True;
++                else:
++                    port_name = rec[0][:-2]
++                    line = self.generate_network_action("tcp", "connect", port_name)
++#                   line = "corenet_tcp_connect_%s(%s_t)\n" % (port_name, self.name)
++                    if line not in self.found_tcp_ports:
++                        self.found_tcp_ports.append(line)
++                        
++            for i in self.in_udp[PORTS]:
++                rec = self.find_port(int(i),"udp")
++                if rec == None:
++                    self.need_udp_type = True;
++                else:
++                    port_name = rec[0][:-2]
++                    line = self.generate_network_action("udp", "bind", port_name)
++#                   line = "corenet_udp_bind_%s(%s_t)\n" % (port_name, self.name)
++                    if line not in self.found_udp_ports:
++                        self.found_udp_ports.append(line)
++                
++            if self.need_udp_type == True or self.need_tcp_type == True:
++                return re.sub("TEMPLATETYPE", self.name, network.te_port_types)
++            return ""
++      
++      def __find_path(self, file):
++            for d in self.DEFAULT_DIRS:
++                if file.find(d) == 0:
++                    self.DEFAULT_DIRS[d][1].append(file)
++                    return self.DEFAULT_DIRS[d]
++            self.DEFAULT_DIRS["rw"][1].append(file)
++            return self.DEFAULT_DIRS["rw"]
++      
++      def add_capability(self, capability):
++            if capability not in self.capabilities:
++                self.capabilities.append(capability)
++
++      def add_process(self, process):
++            if process not in self.processes:
++                self.processes.append(process)
++
++      def add_boolean(self, name, description):
++                self.booleans[name] = description
++
++      def add_file(self, file):
++              self.files[file] = self.__find_path(file)
++
++      def add_dir(self, file):
++              self.dirs[file] = self.__find_path(file)
++              
++      def generate_capabilities(self):
++            newte = ""
++            self.capabilities.sort()
++            if len(self.capabilities) > 0:
++                newte = "allow %s_t self:capability { %s };\n" % (self.name, " ".join(self.capabilities))
++            return newte
++
++      def generate_process(self):
++            newte = ""
++            self.processes.sort()
++            if len(self.processes) > 0:
++                newte = "allow %s_t self:process { %s };\n" % (self.name, " ".join(self.processes))
++            return newte
++
++
++      def generate_network_rules(self):
++              newte = ""
++              if self.use_network():
++                    newte = "\n"
++
++                    newte += re.sub("TEMPLATETYPE", self.name, network.te_network)
++                    
++                    if self.use_tcp():
++                        newte += "\n"
++                        newte += re.sub("TEMPLATETYPE", self.name, network.te_tcp)
++
++                        if self.use_in_tcp():
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_in_tcp)
++
++                            if self.need_tcp_type and len(self.in_tcp[PORTS]) > 0:
++                                newte += re.sub("TEMPLATETYPE", self.name, network.te_in_need_port_tcp)
++
++                        if self.need_tcp_type and len(self.out_tcp[PORTS]) > 0:
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_out_need_port_tcp)
++
++
++                        if self.in_tcp[ALL]:
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_in_all_ports_tcp)
++                        if self.in_tcp[RESERVED]:
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_in_reserved_ports_tcp)
++                        if self.in_tcp[UNRESERVED]:
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_in_unreserved_ports_tcp)
++                            
++                        if self.out_tcp[ALL]:
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_out_all_ports_tcp)
++                        if self.out_tcp[RESERVED]:
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_out_reserved_ports_tcp)
++                        if self.out_tcp[UNRESERVED]:
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_out_unreserved_ports_tcp)
++
++                        for i in self.found_tcp_ports:
++                            newte += i
++
++                    if self.use_udp():
++                        newte += "\n"
++                        newte += re.sub("TEMPLATETYPE", self.name, network.te_udp)
++
++                        if self.need_udp_type:
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_in_need_port_udp)
++                        if self.use_in_udp():
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_in_udp)
++                        if self.in_udp[ALL]:
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_in_all_ports_udp)
++                        if self.in_udp[RESERVED]:
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_in_reserved_ports_udp)
++                        if self.in_udp[UNRESERVED]:
++                            newte += re.sub("TEMPLATETYPE", self.name, network.te_in_unreserved_ports_udp)
++
++                        for i in self.found_udp_ports:
++                            newte += i
++              return newte
++      
++        def generate_transition_rules(self):
++            newte = ""
++            for app in self.transition_domains:
++                tmp = re.sub("TEMPLATETYPE", self.name, user.te_transition_rules)
++                newte += re.sub("APPLICATION", app, tmp)
++
++            if self.type == USER:
++                for u in self.transition_users:
++                    temp =  re.sub("TEMPLATETYPE", self.name, executable.te_run_rules)
++                    newte += re.sub("USER", u.split("_u")[0], temp)
++
++            return newte
++
++        def generate_admin_rules(self):
++            newte = ""
++            if self.type == RUSER:
++                newte += re.sub("TEMPLATETYPE", self.name, user.te_admin_rules)
++            
++                for app in self.admin_domains:
++                    tmp = re.sub("TEMPLATETYPE", self.name, user.te_admin_domain_rules)
++                    newte += re.sub("APPLICATION", app, tmp)
++
++                all_roles = []
++                try:
++                    all_roles = get_all_roles()
++                except ValueError, e:
++                    print "Can not get all roles, must be root for this information"
++                except RuntimeError, e:
++                    print "Can not get all roles", e
++
++                for u in self.transition_users:
++                    role = u.split("_u")[0]
++                    
++                    if (role + "_r") in all_roles:
++                        tmp =  re.sub("TEMPLATETYPE", self.name, user.te_admin_trans_rules)
++                        newte += re.sub("USER", role, tmp)
++
++            return newte
++
++      def generate_dbus_if(self):
++                newif = ""
++                if self.use_dbus:
++                    newif = re.sub("TEMPLATETYPE", self.name, executable.if_dbus_rules)
++                return newif
++
++        def generate_sandbox_if(self):
++            newif = ""
++            if self.type != SANDBOX:
++                return newif
++            newif = re.sub("TEMPLATETYPE", self.name, executable.if_sandbox_rules)
++            return newif
++            
++            
++        def generate_admin_if(self):
++            newif = ""
++            newtypes = ""
++            if self.initscript != "":
++                newtypes += re.sub("TEMPLATETYPE", self.name, executable.if_initscript_admin_types)
++                newif += re.sub("TEMPLATETYPE", self.name, executable.if_initscript_admin)
++            for d in self.DEFAULT_KEYS:
++                if len(self.DEFAULT_DIRS[d][1]) > 0:
++                    newtypes += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].if_admin_types)
++                    newif += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].if_admin_rules)
++
++            if newif != "":
++                ret = re.sub("TEMPLATETYPE", self.name, executable.if_begin_admin)
++                ret += newtypes
++
++                ret += re.sub("TEMPLATETYPE", self.name, executable.if_middle_admin)
++                ret += newif
++                ret += re.sub("TEMPLATETYPE", self.name, executable.if_end_admin)
++                return ret
++                
++            return ""
++                
++      def generate_cgi_types(self):
++              return re.sub("TEMPLATETYPE", self.file_name, executable.te_cgi_types)
++      
++      def generate_sandbox_types(self):
++              return re.sub("TEMPLATETYPE", self.file_name, executable.te_sandbox_types)
++      
++      def generate_userapp_types(self):
++              return re.sub("TEMPLATETYPE", self.name, executable.te_userapp_types)
++      
++      def generate_inetd_types(self):
++              return re.sub("TEMPLATETYPE", self.name, executable.te_inetd_types)
++      
++      def generate_dbusd_types(self):
++              return re.sub("TEMPLATETYPE", self.name, executable.te_dbusd_types)
++      
++      def generate_min_login_user_types(self):
++              return re.sub("TEMPLATETYPE", self.name, user.te_min_login_user_types)
++      
++      def generate_login_user_types(self):
++              return re.sub("TEMPLATETYPE", self.name, user.te_login_user_types)
++      
++      def generate_admin_user_types(self):
++              return re.sub("TEMPLATETYPE", self.name, user.te_admin_user_types)
++
++      def generate_existing_user_types(self):
++              return re.sub("TEMPLATETYPE", self.name, user.te_existing_user_types)
++      
++      def generate_x_login_user_types(self):
++              return re.sub("TEMPLATETYPE", self.name, user.te_x_login_user_types)
++      
++      def generate_root_user_types(self):
++              return re.sub("TEMPLATETYPE", self.name, user.te_root_user_types)
++      
++      def generate_daemon_types(self):
++                newte = re.sub("TEMPLATETYPE", self.name, executable.te_daemon_types)
++                if self.initscript != "":
++                    newte += re.sub("TEMPLATETYPE", self.name, executable.te_initscript_types)
++              return newte
++      
++      def generate_tmp_types(self):
++              if self.use_tmp:
++                    return re.sub("TEMPLATETYPE", self.name, tmp.te_types)
++                else:
++                    return ""
++      
++      def generate_booleans(self):
++            newte = ""
++            for b in self.booleans:
++                tmp = re.sub("BOOLEAN", b, boolean.te_boolean)
++                newte += re.sub("DESCRIPTION", self.booleans[b], tmp)
++            return newte
++
++      def generate_boolean_rules(self):
++            newte = ""
++            for b in self.booleans:
++                newte += re.sub("BOOLEAN", b, boolean.te_rules)
++            return newte
++
++      def generate_sandbox_te(self):
++              return re.sub("TEMPLATETYPE", self.name, executable.te_sandbox_types)
++
++      def generate_cgi_te(self):
++              return re.sub("TEMPLATETYPE", self.name, executable.te_cgi_types)
++
++      def generate_daemon_rules(self):
++                newif =  re.sub("TEMPLATETYPE", self.name, executable.te_daemon_rules)
++
++                return  newif
++      
++      def generate_login_user_rules(self):
++              return re.sub("TEMPLATETYPE", self.name, user.te_login_user_rules)
++      
++      def generate_existing_user_rules(self):
++              return re.sub("TEMPLATETYPE", self.name, user.te_existing_user_rules)
++      
++      def generate_x_login_user_rules(self):
++              return re.sub("TEMPLATETYPE", self.name, user.te_x_login_user_rules)
++      
++      def generate_root_user_rules(self):
++                newte =re.sub("TEMPLATETYPE", self.name, user.te_root_user_rules)
++              return newte
++      
++      def generate_userapp_rules(self):
++              return re.sub("TEMPLATETYPE", self.name, executable.te_userapp_rules)
++      
++      def generate_inetd_rules(self):
++              return re.sub("TEMPLATETYPE", self.name, executable.te_inetd_rules)
++      
++      def generate_dbusd_rules(self):
++              return re.sub("TEMPLATETYPE", self.name, executable.te_dbusd_rules)
++      
++      def generate_tmp_rules(self):
++              if self.use_tmp:
++                    return re.sub("TEMPLATETYPE", self.name, tmp.te_rules)
++                else:
++                    return ""
++      
++      def generate_cgi_rules(self):
++              newte = ""
++              newte += re.sub("TEMPLATETYPE", self.name, executable.te_cgi_rules)
++              return newte
++      
++      def generate_sandbox_rules(self):
++              newte = ""
++              newte += re.sub("TEMPLATETYPE", self.name, executable.te_sandbox_rules)
++              return newte
++      
++      def generate_user_if(self):
++                newif =""
++                if self.use_terminal or self.type == USER:
++                    newif = re.sub("TEMPLATETYPE", self.name, executable.if_user_program_rules)
++
++                if self.type in ( TUSER, XUSER, AUSER, LUSER):
++                    newif += re.sub("TEMPLATETYPE", self.name, executable.if_role_change_rules)
++                return newif
++                
++      def generate_if(self):
++                newif = ""
++                newif += re.sub("TEMPLATETYPE", self.name, executable.if_heading_rules)
++                if self.program != "":
++                    newif += re.sub("TEMPLATETYPE", self.name, executable.if_program_rules)
++                if self.initscript != "":
++                    newif += re.sub("TEMPLATETYPE", self.name, executable.if_initscript_rules)
++              
++                for d in self.DEFAULT_KEYS:
++                      if len(self.DEFAULT_DIRS[d][1]) > 0:
++                              newif += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].if_rules)
++                                for i in self.DEFAULT_DIRS[d][1]:
++                                        if os.path.exists(i) and stat.S_ISSOCK(os.stat(i)[stat.ST_MODE]):
++                                            newif += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].if_stream_rules)
++                                            break
++                newif += self.generate_user_if()
++                newif += self.generate_dbus_if()
++                newif += self.generate_admin_if()
++                newif += self.generate_sandbox_if()
++    
++              return newif
++
++      def generate_default_types(self):
++              return self.DEFAULT_TYPES[self.type][0]()
++              
++      def generate_default_rules(self):
++              return self.DEFAULT_TYPES[self.type][1]()
++              
++      def generate_roles_rules(self):
++            newte = ""
++            if self.type in ( TUSER, XUSER, AUSER, LUSER, EUSER):
++                roles = ""
++                if len(self.roles) > 0:
++                    newte += re.sub("TEMPLATETYPE", self.name, user.te_sudo_rules)
++                    newte += re.sub("TEMPLATETYPE", self.name, user.te_newrole_rules)
++                    for role in self.roles:
++                        tmp = re.sub("TEMPLATETYPE", self.name, user.te_roles_rules)
++                        newte += re.sub("ROLE", role, tmp)
++            return newte
++        
++      def generate_te(self):
++              newte = self.generate_default_types()
++                for d in self.DEFAULT_KEYS:
++                      if len(self.DEFAULT_DIRS[d][1]) > 0:
++                              # CGI scripts already have a rw_t 
++                              if self.type != CGI or d != "rw":
++                                      newte += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].te_types)
++
++                newte +="""
++########################################
++#
++# %s local policy
++#
++""" % self.name
++                newte += self.generate_capabilities()
++                newte += self.generate_process()
++              newte += self.generate_network_types()
++              newte += self.generate_tmp_types()
++              newte += self.generate_booleans()
++              newte += self.generate_default_rules()
++              newte += self.generate_boolean_rules()
++
++                for d in self.DEFAULT_KEYS:
++                      if len(self.DEFAULT_DIRS[d][1]) > 0:
++                              newte += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].te_rules)
++                                for i in self.DEFAULT_DIRS[d][1]:
++                                        if os.path.exists(i) and stat.S_ISSOCK(os.stat(i)[stat.ST_MODE]):
++                                            newte += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].te_stream_rules)
++                                            break
++
++              newte += self.generate_tmp_rules()
++              newte += self.generate_network_rules()
++              newte += self.generate_fd_rules()
++              newte += self.generate_etc_rules()
++              newte += self.generate_pam_rules()
++              newte += self.generate_uid_rules()              
++              newte += self.generate_audit_rules()    
++              newte += self.generate_syslog_rules()           
++              newte += self.generate_localization_rules()
++              newte += self.generate_resolve_rules()          
++              newte += self.generate_roles_rules()
++              newte += self.generate_mail_rules()             
++              newte += self.generate_transition_rules()
++              newte += self.generate_admin_rules()
++              newte += self.generate_dbus_rules()
++              newte += self.generate_kerberos_rules()
++              newte += self.generate_manage_krb5_rcache_rules()               
++
++              return newte
++              
++      def generate_fc(self):
++              newfc = ""
++                fclist = []
++                if self.type in USERS +  [ SANDBOX ]:
++                    return re.sub("EXECUTABLE", self.program, executable.fc_user)
++                if self.program == "":
++                    raise ValueError(_("You must enter the executable path for your confined process"))
++
++              t1 = re.sub("EXECUTABLE", self.program, executable.fc_program)
++              fclist.append(re.sub("TEMPLATETYPE", self.name, t1))
++
++                if self.initscript != "":
++                    t1 = re.sub("EXECUTABLE", self.initscript, executable.fc_initscript)
++                    fclist.append(re.sub("TEMPLATETYPE", self.name, t1))
++
++              for i in self.files.keys():
++                        if os.path.exists(i) and stat.S_ISSOCK(os.stat(i)[stat.ST_MODE]):
++                            t1 = re.sub("TEMPLATETYPE", self.name, self.files[i][2].fc_sock_file)
++                        else:
++                            t1 = re.sub("TEMPLATETYPE", self.name, self.files[i][2].fc_file)
++                      t2 = re.sub("FILENAME", i, t1)
++                        fclist.append(re.sub("FILETYPE", self.files[i][0], t2))
++
++              for i in self.dirs.keys():
++                      t1 = re.sub("TEMPLATETYPE", self.name, self.dirs[i][2].fc_dir)
++                      t2 = re.sub("FILENAME", i, t1)
++                        fclist.append(re.sub("FILETYPE", self.dirs[i][0], t2))
++
++                fclist.sort()
++                newfc="\n".join(fclist)
++              return newfc
++      
++      def generate_user_sh(self):
++            newsh = ""
++            if self.type not in ( TUSER, XUSER, AUSER, LUSER, EUSER):
++                return newsh
++
++            roles = ""
++            for role in self.roles:
++                roles += " %s_r" % role
++            if roles != "":
++                roles += " system_r"
++            if self.type == EUSER:
++                tmp = re.sub("TEMPLATETYPE", self.name, script.eusers)
++            else:
++                tmp = re.sub("TEMPLATETYPE", self.name, script.users)
++            newsh += re.sub("ROLES", roles, tmp)
++
++            if self.type == RUSER:
++                for u in self.transition_users:
++                    tmp =  re.sub("TEMPLATETYPE", self.name, script.admin_trans)
++                    newsh += re.sub("USER", u, tmp)
++
++            if self.type == LUSER:
++                    newsh +=  re.sub("TEMPLATETYPE", self.name, script.min_login_user_default_context)
++            else:
++                    newsh +=  re.sub("TEMPLATETYPE", self.name, script.x_login_user_default_context)
++
++                
++            return newsh
++        
++      def generate_sh(self):
++                temp  = re.sub("TEMPLATETYPE", self.file_name, script.compile)
++                if self.type == EUSER:
++                    newsh  = re.sub("TEMPLATEFILE", "my%s" % self.file_name, temp)
++                else:
++                    newsh  = re.sub("TEMPLATEFILE", self.file_name, temp)
++                if self.program != "":
++                    newsh += re.sub("FILENAME", self.program, script.restorecon)
++                if self.initscript != "":
++                    newsh += re.sub("FILENAME", self.initscript, script.restorecon)
++
++              for i in self.files.keys():
++                      newsh += re.sub("FILENAME", i, script.restorecon)
++
++              for i in self.dirs.keys():
++                      newsh += re.sub("FILENAME", i, script.restorecon)
++
++                for i in self.in_tcp[PORTS] + self.out_tcp[PORTS]:
++                    if self.find_port(i,"tcp") == None:
++                        t1 = re.sub("PORTNUM", "%d" % i, script.tcp_ports)
++                        newsh += re.sub("TEMPLATETYPE", self.name, t1)
++
++                for i in self.in_udp[PORTS]:
++                    if self.find_port(i,"udp") == None:
++                      t1 = re.sub("PORTNUM", "%d" % i, script.udp_ports)
++                      newsh += re.sub("TEMPLATETYPE", self.name, t1)
++
++                newsh += self.generate_user_sh()
++                      
++              return newsh
++      
++      def write_te(self, out_dir):
++                if self.type == EUSER:
++                    tefile = "%s/my%s.te" % (out_dir, self.file_name)
++                else:
++                    tefile = "%s/%s.te" % (out_dir, self.file_name)
++              fd = open(tefile, "w")
++              fd.write(self.generate_te())
++              fd.close()
++              return tefile
++
++      def write_sh(self, out_dir):
++                if self.type == EUSER:
++                    shfile = "%s/my%s.sh" % (out_dir, self.file_name)
++                else:
++                    shfile = "%s/%s.sh" % (out_dir, self.file_name)
++              fd = open(shfile, "w")
++              fd.write(self.generate_sh())
++              fd.close()
++                os.chmod(shfile, 0750)
++              return shfile
++
++      def write_if(self, out_dir):
++                if self.type == EUSER:
++                    iffile = "%s/my%s.if" % (out_dir, self.file_name)
++                else:
++                    iffile = "%s/%s.if" % (out_dir, self.file_name)
++              fd = open(iffile, "w")
++              fd.write(self.generate_if())
++              fd.close()
++              return iffile
++
++      def write_fc(self,out_dir):
++                if self.type == EUSER:
++                    fcfile = "%s/my%s.fc" % (out_dir, self.file_name)
++                else:
++                    fcfile = "%s/%s.fc" % (out_dir, self.file_name)
++                fd = open(fcfile, "w")
++                fd.write(self.generate_fc())
++                fd.close()
++              return fcfile
++
++        def gen_writeable(self):
++            fd = os.popen("rpm -qlf %s" % self.program)
++            for f in fd.read().split():
++                for b in self.DEFAULT_DIRS:
++                    if b == "/etc":
++                        continue
++                    if f.startswith(b):
++                        if os.path.isfile(f):
++                            self.add_file(f)
++                        else:
++                            self.add_dir(f)
++            fd.close()
++
++            # some packages have own systemd subpackage
++            # tor-systemd for example
++            binary_name = self.program.split("/")[-1]
++            rc, output = commands.getstatusoutput("rpm -q %s-systemd" % binary_name)
++            if rc == 0:
++                fd = os.popen("rpm -ql %s-systemd" % binary_name)
++                for f in fd.read().split():
++                    for b in self.DEFAULT_DIRS:
++                        if f.startswith(b):
++                            if os.path.isfile(f):
++                                self.add_file(f)
++                            else:
++                                self.add_dir(f)
++                fd.close()
++
++            if os.path.isfile("/var/run/%s.pid"  % self.name):
++                self.add_file("/var/run/%s.pid"  % self.name)
++
++            if os.path.isfile("/etc/rc.d/init.d/%s"  % self.name):
++                self.set_init_script("/etc/rc\.d/init\.d/%s"  % self.name)
++
++        def gen_symbols(self):
++            if self.type not in APPLICATIONS:
++                return
++
++            fd = os.popen("nm -D %s | grep U" % self.program)
++            for s in fd.read().split():
++                for b in self.symbols:
++                    if s.startswith(b):
++                        exec "self.%s" %  self.symbols[b]
++            fd.close()
++
++      def generate(self, out_dir = "."):
++            self.write_te(out_dir)
++            self.write_if(out_dir)
++            self.write_fc(out_dir)
++            self.write_sh(out_dir)
++            out = "Created the following files in:\n%s/\n" %  out_dir
++            out += "%s.te # %s\n" % (self.file_name, _("Type Enforcement file"))
++            out += "%s.if # %s\n" % (self.file_name, _("Interface file"))
++            out += "%s.fc # %s\n" % (self.file_name, _("File Contexts file"))
++            out += "%s.sh # %s\n" % (self.file_name, _("Setup Script"))
++            return out
++
++def errorExit(error):
++      sys.stderr.write("%s: " % sys.argv[0])
++      sys.stderr.write("%s\n" % error)
++      sys.stderr.flush()
++      sys.exit(1)
++
++def test():
++    import tempfile
++
++    tmpdir = tempfile.mkdtemp(prefix="polgen_")
++
++    mypolicy = policy("myrwho", DAEMON)
++    mypolicy.set_program("/usr/sbin/myrwhod")
++    mypolicy.set_init_script("/etc/init.d/myrwhod")
++    mypolicy.add_dir("/etc/nasd")
++    mypolicy.set_in_tcp(1, 0, 0, "513")
++    mypolicy.set_use_uid(True)
++    mypolicy.set_use_tmp(True)
++    mypolicy.set_use_syslog(True)
++    mypolicy.set_use_pam(True)
++    mypolicy.add_dir("/var/run/myrwho")
++    mypolicy.add_dir("/var/lib/myrwho")
++    print mypolicy.generate(tmpdir)
++
++    mypolicy = policy("mywhois", USER)
++    mypolicy.set_program("/usr/bin/jwhois")
++    mypolicy.set_out_tcp(0, "43,63,4321")
++    mypolicy.set_out_udp(0, "43,63,4321")
++    mypolicy.add_dir("/var/cache/jwhois")
++    mypolicy.set_transition_users(["staff_u"])
++    print mypolicy.generate(tmpdir)
++
++    mypolicy = policy("mytuser", TUSER)
++    mypolicy.set_admin_roles(["mydbadm"])
++    mypolicy.add_boolean("allow_mytuser_setuid", "Allow mytuser users to run setuid applications")
++    print mypolicy.generate(tmpdir)
++    
++    mypolicy = policy("mycgi", CGI)
++    mypolicy.set_program("/var/www/cgi-bin/cgi")
++    mypolicy.set_in_tcp(1, 0, 0, "512, 55000-55000")
++    mypolicy.set_in_udp(1, 0, 0, "1513")
++    mypolicy.set_use_uid(True)
++    mypolicy.set_use_tmp(False)
++    mypolicy.set_use_syslog(True)
++    mypolicy.set_use_pam(True)
++    mypolicy.set_out_tcp(0,"8000")
++    print mypolicy.generate(tmpdir)
++
++    mypolicy = policy("myinetd", INETD)
++    mypolicy.set_program("/usr/bin/mytest")
++    mypolicy.set_in_tcp(1, 0, 0, "513")
++    mypolicy.set_in_udp(1, 0, 0, "1513")
++    mypolicy.set_use_uid(True)
++    mypolicy.set_use_tmp(True)
++    mypolicy.set_use_syslog(True)
++    mypolicy.set_use_pam(True)
++    mypolicy.add_file("/var/lib/mysql/mysql.sock")
++    mypolicy.add_file("/var/run/rpcbind.sock")
++    mypolicy.add_file("/var/run/daemon.pub")
++    mypolicy.add_file("/var/log/daemon.log")
++    mypolicy.add_dir("/var/lib/daemon")
++    mypolicy.add_dir("/etc/daemon")
++    mypolicy.add_dir("/etc/daemon/special")
++    mypolicy.set_use_uid(True)
++    mypolicy.set_use_syslog(True)
++    mypolicy.set_use_pam(True)
++    mypolicy.set_use_audit(True)
++    mypolicy.set_use_dbus(True)
++    mypolicy.set_use_terminal(True)
++    mypolicy.set_use_mail(True)
++    mypolicy.set_out_tcp(0,"8000")
++    print mypolicy.generate(tmpdir)
++
++
++    mypolicy = policy("mydbus", DBUS)
++    mypolicy.set_program("/usr/libexec/mydbus")
++    mypolicy.set_in_tcp(1, 0, 0, "513")
++    mypolicy.set_in_udp(1, 0, 0, "1513")
++    mypolicy.set_use_uid(True)
++    mypolicy.set_use_tmp(True)
++    mypolicy.set_use_syslog(True)
++    mypolicy.set_use_pam(True)
++    print mypolicy.generate(tmpdir)
++
++    mypolicy = policy("myxuser", XUSER)
++    mypolicy.set_in_tcp(1, 1, 1, "28920")
++    mypolicy.set_in_udp(0, 0, 1, "1513")
++    mypolicy.set_transition_domains(["mozilla"])
++    print mypolicy.generate(tmpdir)
++    
++    mypolicy = policy("myuser", USER)
++    mypolicy.set_program("/usr/bin/myuser")
++    mypolicy.set_in_tcp(1, 0, 0, "513")
++    mypolicy.set_in_udp(1, 0, 0, "1513")
++    mypolicy.set_use_uid(True)
++    mypolicy.set_use_tmp(True)
++    mypolicy.set_use_syslog(True)
++    mypolicy.set_use_pam(True)
++    mypolicy.add_file("/var/lib/myuser/myuser.sock")
++    mypolicy.set_out_tcp(0,"8000")
++    mypolicy.set_transition_users(["unconfined_u", "staff_u"])
++    print mypolicy.generate(tmpdir)
++    
++    mypolicy = policy("mysandbox", SANDBOX)
++    mypolicy.set_out_udp(0, "993")
++    print mypolicy.generate("/tmp")
++
++    mypolicy = policy("mydbadm", RUSER)
++    mypolicy.set_admin_domains(["postgresql", "mysql"])
++    print mypolicy.generate(tmpdir)
++    os.chdir(tmpdir)
++    rc, output=commands.getstatusoutput("make -f /usr/share/selinux/devel/Makefile")
++    print output
++    sys.exit(os.WEXITSTATUS(rc))
++
++import os, sys, getopt, socket, random, fcntl
++    
++def usage(msg):
++    print _("""
++%s
++
++sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]
++valid Types:
++""") % msg
++    keys=poltype.keys()
++    for i in keys:
++        print "\t%s\t%s" % (i, poltype[i])
++    sys.exit(-1)
++        
++if __name__ == '__main__':
++    setype = DAEMON
++    name = None
++    try:
++        gopts, cmds = getopt.getopt(sys.argv[1:], "ht:mn:", 
++                                    ["type=", 
++                                     "mount",
++                                     "test",
++                                     "name=",
++                                     "help"])
++        for o, a in gopts:
++            if o == "-t" or o == "--type":
++                try:
++                    if int(a) not in poltype:
++                        usage ("invalid type %s" % a )
++                except:
++                    usage ("invalid type %s" % a )
++
++                setype = int(a)
++
++            if o == "-m" or o == "--mount":
++                mount_ind = True
++                
++            if o == "-n" or o == "--name":
++                name = a
++                
++            if o == "-h" or o == "--help":
++                usage("")
++
++            if o == "--test":
++                test()
++                sys.exit(0)
++            
++    except getopt.error, error:
++        usage(_("Options Error %s ") % error.msg)
++
++    if len(cmds) == 0:
++           usage(_("Executable or Name required"))
++
++    try:
++        if not name:
++            name = os.path.basename(cmds[0]).replace("-","_")
++        cmd = cmds[0]
++        mypolicy = policy(name, setype)
++        if setype not in USERS +  [ SANDBOX ]:
++            mypolicy.set_program(cmd)
++
++        if setype in APPLICATIONS:
++            mypolicy.gen_writeable()
++            mypolicy.gen_symbols()
++        print mypolicy.generate()
++        sys.exit(0)
++    except ValueError, e:
++        usage(e)
+diff --git a/policycoreutils/gui/polgengui.py b/policycoreutils/gui/polgengui.py
+new file mode 100644
+index 0000000..cba0611
+--- /dev/null
++++ b/policycoreutils/gui/polgengui.py
+@@ -0,0 +1,750 @@
++#!/usr/bin/python -Es
++#
++# polgengui.py - GUI for SELinux Config tool in system-config-selinux
++#
++# Dan Walsh <dwalsh@redhat.com>
++#
++# Copyright (C) 2007-2011 Red Hat 
++#
++# 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.
++#
++import signal
++import string
++import gtk
++import gtk.glade
++import os
++import gobject
++import gnome
++import sys
++import polgen
++import re
++
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++gnome.program_init("SELinux Policy Generation Tool", "5")
++
++version = "1.0"
++
++sys.path.append('/usr/share/system-config-selinux')
++sys.path.append('.')
++
++# From John Hunter http://www.daa.com.au/pipermail/pygtk/2003-February/004454.html
++def foreach(model, path, iter, selected):
++    selected.append(model.get_value(iter, 0))
++
++##
++## Pull in the Glade file
++##
++if os.access("polgen.glade", os.F_OK):
++    xml = gtk.glade.XML ("polgen.glade", domain=PROGNAME)
++else:
++    xml = gtk.glade.XML ("/usr/share/system-config-selinux/polgen.glade", domain=PROGNAME)
++
++FILE = 1
++DIR = 2
++
++class childWindow:
++    START_PAGE = 0
++    SELECT_TYPE_PAGE = 0
++    APP_PAGE = 1
++    EXISTING_USER_PAGE = 2
++    TRANSITION_PAGE = 3
++    USER_TRANSITION_PAGE = 4
++    ADMIN_PAGE = 5
++    ROLE_PAGE = 6
++    IN_NET_PAGE = 7
++    OUT_NET_PAGE = 8
++    COMMON_APPS_PAGE = 9
++    FILES_PAGE = 10
++    BOOLEAN_PAGE = 11
++    SELECT_DIR_PAGE = 12
++    FINISH_PAGE = 12
++
++    def __init__(self):
++        self.xml = xml
++        self.notebook = xml.get_widget ("notebook")
++        self.label_dict = {}
++        self.tooltip_dict = {}
++        label = xml.get_widget ("select_label")
++        self.label_dict[label] = label.get_text()
++
++        label = xml.get_widget ("select_user_roles_label")
++        self.label_dict[label] = label.get_text()
++
++        label = xml.get_widget ("select_dir_label")
++        self.label_dict[label] = label.get_text()
++
++        label = xml.get_widget ("select_domain_admin_label")
++        self.label_dict[label] = label.get_text()
++
++        label = xml.get_widget ("select_in_label")
++        self.label_dict[label] = label.get_text()
++
++        label = xml.get_widget ("select_out_label")
++        self.label_dict[label] = label.get_text()
++
++        label = xml.get_widget ("select_common_label")
++        self.label_dict[label] = label.get_text()
++
++        label = xml.get_widget ("select_manages_label")
++        self.label_dict[label] = label.get_text()
++
++        label = xml.get_widget ("select_booleans_label")
++        self.label_dict[label] = label.get_text()
++
++        label = xml.get_widget ("existing_user_treeview")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("transition_treeview")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("in_tcp_all_checkbutton")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("in_tcp_reserved_checkbutton")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("in_tcp_unreserved_checkbutton")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("in_tcp_entry")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("in_udp_all_checkbutton")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("in_udp_reserved_checkbutton")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("in_udp_unreserved_checkbutton")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("in_udp_entry")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("out_tcp_entry")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("out_udp_entry")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("out_tcp_all_checkbutton")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("out_udp_all_checkbutton")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("boolean_treeview")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        label = xml.get_widget ("write_treeview")
++        self.tooltip_dict[label] = label.get_tooltip_text()
++
++        try:
++            self.all_types = polgen.get_all_types()
++            self.all_modules = polgen.get_all_modules()
++            self.all_roles = polgen.get_all_roles()
++            self.all_users = polgen.get_all_users()
++        except RuntimeError, e:
++            self.all_types = []
++            self.all_modules = []
++            self.all_roles = []
++            self.all_users = []
++            self.error(str(e))
++
++        self.name=""
++        xml.signal_connect("on_delete_clicked", self.delete)
++        xml.signal_connect("on_delete_boolean_clicked", self.delete_boolean)
++        xml.signal_connect("on_exec_select_clicked", self.exec_select)
++        xml.signal_connect("on_init_script_select_clicked", self.init_script_select)
++        xml.signal_connect("on_add_clicked", self.add)
++        xml.signal_connect("on_add_boolean_clicked", self.add_boolean)
++        xml.signal_connect("on_add_dir_clicked", self.add_dir)
++        xml.signal_connect("on_about_clicked", self.on_about_clicked)
++        xml.get_widget ("cancel_button").connect("clicked",self.quit)
++        self.forward_button = xml.get_widget ("forward_button")
++        self.forward_button.connect("clicked",self.forward)
++        self.back_button = xml.get_widget ("back_button")
++        self.back_button.connect("clicked",self.back)
++
++        self.boolean_dialog = xml.get_widget ("boolean_dialog")
++        self.boolean_name_entry = xml.get_widget ("boolean_name_entry")
++        self.boolean_description_entry = xml.get_widget ("boolean_description_entry")
++
++        self.pages={}
++        for i in polgen.USERS:
++            self.pages[i] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE, self.TRANSITION_PAGE, self.ROLE_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE ]
++        self.pages[polgen.RUSER] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE,  self.ADMIN_PAGE, self.USER_TRANSITION_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE ]
++        self.pages[polgen.LUSER] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE, self.TRANSITION_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE ]
++        self.pages[polgen.SANDBOX] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE]
++        self.pages[polgen.EUSER] = [ self.SELECT_TYPE_PAGE, self.EXISTING_USER_PAGE, self.TRANSITION_PAGE, self.ROLE_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE ]
++
++        for i in polgen.APPLICATIONS:
++            self.pages[i] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.COMMON_APPS_PAGE, self.FILES_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE]
++        self.pages[polgen.USER] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE, self.USER_TRANSITION_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.COMMON_APPS_PAGE, self.FILES_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE ]
++        
++        self.current_page = 0
++        self.back_button.set_sensitive(0)
++
++        self.network_buttons = {}
++
++        self.in_tcp_all_checkbutton = xml.get_widget ("in_tcp_all_checkbutton")
++        self.in_tcp_reserved_checkbutton = xml.get_widget ("in_tcp_reserved_checkbutton")
++        self.in_tcp_unreserved_checkbutton = xml.get_widget ("in_tcp_unreserved_checkbutton")
++        self.in_tcp_entry = self.xml.get_widget("in_tcp_entry")
++        self.network_buttons[self.in_tcp_all_checkbutton] = [ self.in_tcp_reserved_checkbutton, self.in_tcp_unreserved_checkbutton, self.in_tcp_entry ]
++
++
++        self.out_tcp_all_checkbutton = xml.get_widget ("out_tcp_all_checkbutton")
++        self.out_tcp_reserved_checkbutton = xml.get_widget ("out_tcp_reserved_checkbutton")
++        self.out_tcp_unreserved_checkbutton = xml.get_widget ("out_tcp_unreserved_checkbutton")
++        self.out_tcp_entry = self.xml.get_widget("out_tcp_entry")
++
++        self.network_buttons[self.out_tcp_all_checkbutton] = [ self.out_tcp_entry ]
++
++        self.in_udp_all_checkbutton = xml.get_widget ("in_udp_all_checkbutton")
++        self.in_udp_reserved_checkbutton = xml.get_widget ("in_udp_reserved_checkbutton")
++        self.in_udp_unreserved_checkbutton = xml.get_widget ("in_udp_unreserved_checkbutton")
++        self.in_udp_entry = self.xml.get_widget("in_udp_entry")
++
++        self.network_buttons[self.in_udp_all_checkbutton] = [ self.in_udp_reserved_checkbutton, self.in_udp_unreserved_checkbutton, self.in_udp_entry ]
++
++        self.out_udp_all_checkbutton = xml.get_widget ("out_udp_all_checkbutton")
++        self.out_udp_entry = self.xml.get_widget("out_udp_entry")
++        self.network_buttons[self.out_udp_all_checkbutton] = [ self.out_udp_entry ]
++
++        for b in self.network_buttons.keys():
++            b.connect("clicked",self.network_all_clicked)
++
++        self.boolean_treeview = self.xml.get_widget("boolean_treeview")
++        self.boolean_store = gtk.ListStore(gobject.TYPE_STRING,gobject.TYPE_STRING)
++        self.boolean_treeview.set_model(self.boolean_store)
++        self.boolean_store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++        col = gtk.TreeViewColumn(_("Name"), gtk.CellRendererText(), text = 0)
++        self.boolean_treeview.append_column(col)
++        col = gtk.TreeViewColumn(_("Description"), gtk.CellRendererText(), text = 1)
++        self.boolean_treeview.append_column(col)
++
++        self.role_treeview = self.xml.get_widget("role_treeview")
++        self.role_store = gtk.ListStore(gobject.TYPE_STRING)
++        self.role_treeview.set_model(self.role_store)
++        self.role_treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
++        self.role_store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++        col = gtk.TreeViewColumn(_("Role"), gtk.CellRendererText(), text = 0)
++        self.role_treeview.append_column(col)
++
++        self.existing_user_treeview = self.xml.get_widget("existing_user_treeview")
++        self.existing_user_store = gtk.ListStore(gobject.TYPE_STRING)
++        self.existing_user_treeview.set_model(self.existing_user_store)
++        self.existing_user_store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++        col = gtk.TreeViewColumn(_("Existing_User"), gtk.CellRendererText(), text = 0)
++        self.existing_user_treeview.append_column(col)
++
++        for i in self.all_roles:
++            iter = self.role_store.append()
++            self.role_store.set_value(iter, 0, i[:-2])
++
++        self.in_tcp_reserved_checkbutton = xml.get_widget ("in_tcp_reserved_checkbutton")
++
++        self.transition_treeview = self.xml.get_widget("transition_treeview")
++        self.transition_store = gtk.ListStore(gobject.TYPE_STRING)
++        self.transition_treeview.set_model(self.transition_store)
++        self.transition_treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
++        self.transition_store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++        col = gtk.TreeViewColumn(_("Application"), gtk.CellRendererText(), text = 0)
++        self.transition_treeview.append_column(col)
++
++        self.user_transition_treeview = self.xml.get_widget("user_transition_treeview")
++        self.user_transition_store = gtk.ListStore(gobject.TYPE_STRING)
++        self.user_transition_treeview.set_model(self.user_transition_store)
++        self.user_transition_treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
++        self.user_transition_store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++        col = gtk.TreeViewColumn(_("Application"), gtk.CellRendererText(), text = 0)
++        self.user_transition_treeview.append_column(col)
++
++        for i in self.all_users:
++            iter = self.user_transition_store.append()
++            self.user_transition_store.set_value(iter, 0, i[:-2])
++            iter = self.existing_user_store.append()
++            self.existing_user_store.set_value(iter, 0, i[:-2])
++
++        self.admin_treeview = self.xml.get_widget("admin_treeview")
++        self.admin_store = gtk.ListStore(gobject.TYPE_STRING)
++        self.admin_treeview.set_model(self.admin_store)
++        self.admin_treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
++        self.admin_store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++        col = gtk.TreeViewColumn(_("Application"), gtk.CellRendererText(), text = 0)
++        self.admin_treeview.append_column(col)
++
++        for i in polgen.methods:
++            m = re.findall("(.*)%s" % polgen.USER_TRANSITION_INTERFACE, i) 
++            if len(m) > 0:
++                if "%s_exec_t" % m[0] in self.all_types:
++                    iter = self.transition_store.append()
++                    self.transition_store.set_value(iter, 0, m[0])
++                continue
++
++            m = re.findall("(.*)%s" % polgen.ADMIN_TRANSITION_INTERFACE, i) 
++            if len(m) > 0:
++                iter = self.admin_store.append()
++                self.admin_store.set_value(iter, 0, m[0])
++                continue
++        
++    def confine_application(self):
++        return self.get_type() in polgen.APPLICATIONS
++
++    def forward(self, arg):
++        type = self.get_type()
++        if self.current_page == self.START_PAGE:
++            self.back_button.set_sensitive(1)
++
++        if self.pages[type][self.current_page] == self.SELECT_TYPE_PAGE:
++            if self.on_select_type_page_next():
++                return
++
++        if self.pages[type][self.current_page] == self.IN_NET_PAGE:
++            if self.on_in_net_page_next():
++                return
++
++        if self.pages[type][self.current_page] == self.OUT_NET_PAGE:
++            if self.on_out_net_page_next():
++                return
++
++        if self.pages[type][self.current_page] == self.APP_PAGE:
++            if self.on_name_page_next():
++                return
++
++        if self.pages[type][self.current_page] == self.EXISTING_USER_PAGE:
++            if self.on_existing_user_page_next():
++                return
++
++        if self.pages[type][self.current_page] == self.SELECT_DIR_PAGE:
++            outputdir = self.output_entry.get_text()
++            if not os.path.isdir(outputdir):
++                self.error(_("%s must be a directory") % outputdir )
++                return False
++
++        if self.pages[type][self.current_page] == self.FINISH_PAGE:
++            self.generate_policy()
++            self.xml.get_widget ("cancel_button").set_label(gtk.STOCK_CLOSE)
++        else:
++            self.current_page = self.current_page + 1
++            self.notebook.set_current_page(self.pages[type][self.current_page])
++            if self.pages[type][self.current_page] == self.FINISH_PAGE:
++                self.forward_button.set_label(gtk.STOCK_APPLY)
++        
++    def back(self,arg):
++        type = self.get_type()
++        if self.pages[type][self.current_page] == self.FINISH_PAGE:
++            self.forward_button.set_label(gtk.STOCK_GO_FORWARD)
++
++        self.current_page = self.current_page - 1 
++        self.notebook.set_current_page(self.pages[type][self.current_page])
++        if self.pages[type][self.current_page] == self.START_PAGE:
++            self.back_button.set_sensitive(0)
++        
++    def network_all_clicked(self, button):
++        active = button.get_active()
++        for b in self.network_buttons[button]:
++            b.set_sensitive(not active)
++        
++    def verify(self, message, title="" ):
++        dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO,
++                                gtk.BUTTONS_YES_NO,
++                                message)
++        dlg.set_title(title)
++        dlg.set_position(gtk.WIN_POS_MOUSE)
++        dlg.show_all()
++        rc = dlg.run()
++        dlg.destroy()
++        return rc
++
++    def info(self, message):
++        dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO,
++                                gtk.BUTTONS_OK,
++                                message)
++        dlg.set_position(gtk.WIN_POS_MOUSE)
++        dlg.show_all()
++        dlg.run()
++        dlg.destroy()
++
++    def error(self, message):
++        dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR,
++                                gtk.BUTTONS_CLOSE,
++                                message)
++        dlg.set_position(gtk.WIN_POS_MOUSE)
++        dlg.show_all()
++        dlg.run()
++        dlg.destroy()
++
++    def get_name(self):
++        if self.existing_user_radiobutton.get_active():
++            store, iter = self.existing_user_treeview.get_selection().get_selected()
++            if iter == None:
++                raise ValueError(_("You must select a user"))
++            return store.get_value(iter, 0)
++        else:
++            return self.name_entry.get_text()
++
++    def get_type(self):
++        if self.sandbox_radiobutton.get_active():
++            return polgen.SANDBOX
++        if self.cgi_radiobutton.get_active():
++            return polgen.CGI
++        if self.user_radiobutton.get_active():
++            return polgen.USER
++        if self.init_radiobutton.get_active():
++            return polgen.DAEMON
++        if self.dbus_radiobutton.get_active():
++            return polgen.DBUS
++        if self.inetd_radiobutton.get_active():
++            return polgen.INETD
++        if self.login_user_radiobutton.get_active():
++            return polgen.LUSER
++        if self.admin_user_radiobutton.get_active():
++            return polgen.AUSER
++        if self.xwindows_user_radiobutton.get_active():
++            return polgen.XUSER
++        if self.terminal_user_radiobutton.get_active():
++            return polgen.TUSER
++        if self.root_user_radiobutton.get_active():
++            return polgen.RUSER
++        if self.existing_user_radiobutton.get_active():
++            return polgen.EUSER
++
++    def generate_policy(self, *args):
++        outputdir = self.output_entry.get_text()
++        try:
++            my_policy=polgen.policy(self.get_name(), self.get_type())
++
++            iter= self.boolean_store.get_iter_first()
++            while(iter):
++                my_policy.add_boolean(self.boolean_store.get_value(iter, 0), self.boolean_store.get_value(iter, 1))
++                iter= self.boolean_store.iter_next(iter)
++
++            if self.get_type() in polgen.APPLICATIONS:
++                my_policy.set_program(self.exec_entry.get_text())
++                my_policy.gen_symbols()
++
++                my_policy.set_use_syslog(self.syslog_checkbutton.get_active() == 1)
++                my_policy.set_use_tmp(self.tmp_checkbutton.get_active() == 1)
++                my_policy.set_use_uid(self.uid_checkbutton.get_active() == 1)
++                my_policy.set_use_pam(self.pam_checkbutton.get_active() == 1)
++
++                my_policy.set_use_dbus(self.dbus_checkbutton.get_active() == 1)
++                my_policy.set_use_audit(self.audit_checkbutton.get_active() == 1)
++                my_policy.set_use_terminal(self.terminal_checkbutton.get_active() == 1)
++                my_policy.set_use_mail(self.mail_checkbutton.get_active() == 1)
++                if self.get_type() is polgen.DAEMON:
++                    my_policy.set_init_script(self.init_script_entry.get_text())
++                if self.get_type() == polgen.USER:
++                    selected = []
++                    self.user_transition_treeview.get_selection().selected_foreach(foreach, selected)
++                    my_policy.set_transition_users(selected)
++            else:
++                if self.get_type() == polgen.RUSER:
++                    selected = []
++                    self.admin_treeview.get_selection().selected_foreach(foreach, selected)
++                    my_policy.set_admin_domains(selected)
++                    selected = []
++                    self.user_transition_treeview.get_selection().selected_foreach(foreach, selected)
++                    my_policy.set_transition_users(selected)
++                else:
++                    selected = []
++                    self.transition_treeview.get_selection().selected_foreach(foreach, selected)
++                    my_policy.set_transition_domains(selected)
++                
++                    selected = []
++                    self.role_treeview.get_selection().selected_foreach(foreach, selected)
++                    my_policy.set_admin_roles(selected)
++
++            my_policy.set_in_tcp(self.in_tcp_all_checkbutton.get_active(), self.in_tcp_reserved_checkbutton.get_active(), self.in_tcp_unreserved_checkbutton.get_active(), self.in_tcp_entry.get_text())
++            my_policy.set_in_udp(self.in_udp_all_checkbutton.get_active(), self.in_udp_reserved_checkbutton.get_active(), self.in_udp_unreserved_checkbutton.get_active(), self.in_udp_entry.get_text())
++            my_policy.set_out_tcp(self.out_tcp_all_checkbutton.get_active(), self.out_tcp_entry.get_text())
++            my_policy.set_out_udp(self.out_udp_all_checkbutton.get_active(), self.out_udp_entry.get_text())
++                
++            iter= self.store.get_iter_first()
++            while(iter):
++                if self.store.get_value(iter, 1) == FILE:
++                    my_policy.add_file(self.store.get_value(iter, 0))
++                else:
++                    my_policy.add_dir(self.store.get_value(iter, 0))
++                iter= self.store.iter_next(iter)
++                
++            self.info(my_policy.generate(outputdir))
++            return False
++        except ValueError, e:
++            self.error(e.message)
++        
++    def delete(self, args):
++        store, iter = self.view.get_selection().get_selected()
++        if iter != None:
++            store.remove(iter)
++            self.view.get_selection().select_path ((0,))
++
++    def delete_boolean(self, args):
++        store, iter = self.boolean_treeview.get_selection().get_selected()
++        if iter != None:
++            store.remove(iter)
++            self.boolean_treeview.get_selection().select_path ((0,))
++
++    def add_boolean(self,type):
++        self.boolean_name_entry.set_text("")
++        self.boolean_description_entry.set_text("")
++        rc = self.boolean_dialog.run()
++        self.boolean_dialog.hide()
++        if rc == gtk.RESPONSE_CANCEL:
++            return
++        iter = self.boolean_store.append()
++        self.boolean_store.set_value(iter, 0, self.boolean_name_entry.get_text())
++        self.boolean_store.set_value(iter, 1, self.boolean_description_entry.get_text())
++        
++    def __add(self,type):
++        rc = self.file_dialog.run()
++        self.file_dialog.hide()
++        if rc == gtk.RESPONSE_CANCEL:
++            return
++        for i in self.file_dialog.get_filenames():
++            iter = self.store.append()
++            self.store.set_value(iter, 0, i)
++            self.store.set_value(iter, 1, type)
++        
++    def exec_select(self, args):
++        self.file_dialog.set_select_multiple(0)
++        self.file_dialog.set_title(_("Select executable file to be confined."))
++        self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_OPEN)
++        self.file_dialog.set_current_folder("/usr/sbin")
++        rc = self.file_dialog.run()
++        self.file_dialog.hide()
++        if rc == gtk.RESPONSE_CANCEL:
++            return
++        self.exec_entry.set_text(self.file_dialog.get_filename())
++
++    def init_script_select(self, args):
++        self.file_dialog.set_select_multiple(0)
++        self.file_dialog.set_title(_("Select init script file to be confined."))
++        self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_OPEN)
++        self.file_dialog.set_current_folder("/etc/rc.d/init.d")
++        rc = self.file_dialog.run()
++        self.file_dialog.hide()
++        if rc == gtk.RESPONSE_CANCEL:
++            return
++        self.init_script_entry.set_text(self.file_dialog.get_filename())
++
++    def add(self, args):
++        self.file_dialog.set_title(_("Select file(s) that confined application creates or writes"))
++        self.file_dialog.set_current_folder("/")
++        self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_OPEN)
++        self.file_dialog.set_select_multiple(1)
++        self.__add(FILE)
++
++    def add_dir(self, args):
++        self.file_dialog.set_title(_("Select directory(s) that the confined application owns and writes into"))
++        self.file_dialog.set_current_folder("/")
++        self.file_dialog.set_select_multiple(1)
++        self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
++        self.__add(DIR)
++        
++    def on_about_clicked(self, args):
++        dlg = xml.get_widget ("about_dialog")
++        dlg.run ()
++        dlg.hide ()
++
++    def quit(self, args):
++        gtk.main_quit()
++
++    def setupScreen(self):
++        # Bring in widgets from glade file.
++        self.mainWindow = self.xml.get_widget("main_window")
++        self.druid = self.xml.get_widget("druid")
++        self.type = 0
++        self.name_entry = self.xml.get_widget("name_entry")
++        self.name_entry.connect("insert_text",self.on_name_entry_changed)
++        self.name_entry.connect("focus_out_event",self.on_focus_out_event)
++        self.exec_entry = self.xml.get_widget("exec_entry")
++        self.exec_button = self.xml.get_widget("exec_button")
++        self.init_script_entry = self.xml.get_widget("init_script_entry")
++        self.init_script_button = self.xml.get_widget("init_script_button")
++        self.output_entry = self.xml.get_widget("output_entry")
++        self.output_entry.set_text(os.getcwd())
++        self.xml.get_widget("output_button").connect("clicked",self.output_button_clicked)
++        
++        self.xwindows_user_radiobutton = self.xml.get_widget("xwindows_user_radiobutton")
++        self.terminal_user_radiobutton = self.xml.get_widget("terminal_user_radiobutton")
++        self.root_user_radiobutton = self.xml.get_widget("root_user_radiobutton")
++        self.login_user_radiobutton = self.xml.get_widget("login_user_radiobutton")
++        self.admin_user_radiobutton = self.xml.get_widget("admin_user_radiobutton")
++        self.existing_user_radiobutton = self.xml.get_widget("existing_user_radiobutton")
++
++        self.user_radiobutton = self.xml.get_widget("user_radiobutton")
++        self.init_radiobutton = self.xml.get_widget("init_radiobutton")
++        self.inetd_radiobutton = self.xml.get_widget("inetd_radiobutton")
++        self.dbus_radiobutton = self.xml.get_widget("dbus_radiobutton")
++        self.cgi_radiobutton = self.xml.get_widget("cgi_radiobutton")
++        self.sandbox_radiobutton = self.xml.get_widget("sandbox_radiobutton")
++        self.tmp_checkbutton = self.xml.get_widget("tmp_checkbutton")
++        self.uid_checkbutton = self.xml.get_widget("uid_checkbutton")
++        self.pam_checkbutton = self.xml.get_widget("pam_checkbutton")
++        self.dbus_checkbutton = self.xml.get_widget("dbus_checkbutton")
++        self.audit_checkbutton = self.xml.get_widget("audit_checkbutton")
++        self.terminal_checkbutton = self.xml.get_widget("terminal_checkbutton")
++        self.mail_checkbutton = self.xml.get_widget("mail_checkbutton")
++        self.syslog_checkbutton = self.xml.get_widget("syslog_checkbutton")
++        self.view = self.xml.get_widget("write_treeview")
++        self.file_dialog = self.xml.get_widget("filechooserdialog")
++
++        self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_INT)
++        self.view.set_model(self.store)
++        col = gtk.TreeViewColumn("",  gtk.CellRendererText(), text = 0)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        self.view.get_selection().select_path ((0,))
++
++    def output_button_clicked(self, *args):
++        self.file_dialog.set_title(_("Select directory to generate policy files in"))
++        self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
++        self.file_dialog.set_select_multiple(0)
++        rc = self.file_dialog.run()
++        self.file_dialog.hide()
++        if rc == gtk.RESPONSE_CANCEL:
++            return
++        self.output_entry.set_text(self.file_dialog.get_filename())
++        
++    def on_name_entry_changed(self, entry, text, size, position):
++        if text.find(" ") >= 0:
++            entry.emit_stop_by_name("insert_text")
++            
++    def on_focus_out_event(self, entry, third):
++        name = entry.get_text()
++        if self.name != name:
++            if name in self.all_types:
++                if self.verify(_("Type %s_t already defined in current policy.\nDo you want to continue?") % name, _("Verify Name")) == gtk.RESPONSE_NO:
++                    entry.set_text("")
++                    return False
++            if name in self.all_modules:
++                if self.verify(_("Module %s.pp already loaded in current policy.\nDo you want to continue?") % name, _("Verify Name")) == gtk.RESPONSE_NO:
++                    entry.set_text("")
++                    return False
++
++            file = "/etc/rc.d/init.d/" + name
++            if os.path.isfile(file) and self.init_script_entry.get_text() == "":
++                self.init_script_entry.set_text(file)
++                
++            file = "/usr/sbin/" + name
++            if os.path.isfile(file) and self.exec_entry.get_text() == "":
++                self.exec_entry.set_text(file)
++
++        self.name = name
++        return False
++
++    def on_in_net_page_next(self, *args):
++        try:
++            polgen.verify_ports(self.in_tcp_entry.get_text())
++            polgen.verify_ports(self.in_udp_entry.get_text())
++        except ValueError, e:
++            self.error(e.message)
++            return True
++        
++    def on_out_net_page_next(self, *args):
++        try:
++            polgen.verify_ports(self.out_tcp_entry.get_text())
++            polgen.verify_ports(self.out_udp_entry.get_text())
++        except ValueError, e:
++            self.error(e.message)
++            return True
++        
++    def on_select_type_page_next(self, *args):
++        self.exec_entry.set_sensitive(self.confine_application())
++        self.exec_button.set_sensitive(self.confine_application())
++        self.init_script_entry.set_sensitive(self.init_radiobutton.get_active())
++        self.init_script_button.set_sensitive(self.init_radiobutton.get_active())
++
++    def on_existing_user_page_next(self, *args):
++        store, iter = self.view.get_selection().get_selected()
++        if iter != None:
++            self.error(_("You must select a user"))
++            return True
++        
++    def on_name_page_next(self, *args):
++        name=self.name_entry.get_text()
++        if not name.isalnum():
++            self.error(_("You must add a name made up of letters and numbers and containing no spaces."))
++            return True
++        
++        for i in self.label_dict:
++            text = '<b>%s</b>' % (self.label_dict[i] % ("'" + name + "'"))
++            i.set_markup(text)
++
++        for i in self.tooltip_dict:
++            text = self.tooltip_dict[i] % ("'" + name + "'")
++            i.set_tooltip_text(text)
++
++        if self.confine_application():
++            exe = self.exec_entry.get_text()
++            if exe == "":
++                self.error(_("You must enter a executable"))
++                return True
++            policy=polgen.policy(name, self.get_type())
++            policy.set_program(exe)
++            policy.gen_writeable()
++            policy.gen_symbols()
++            for f in policy.files.keys():
++                iter = self.store.append()
++                self.store.set_value(iter, 0, f)
++                self.store.set_value(iter, 1, FILE)
++                
++            for f in policy.dirs.keys():
++                iter = self.store.append()
++                self.store.set_value(iter, 0, f)
++                self.store.set_value(iter, 1, DIR)
++            self.tmp_checkbutton.set_active(policy.use_tmp)
++            self.uid_checkbutton.set_active(policy.use_uid)
++            self.pam_checkbutton.set_active(policy.use_pam)
++            self.dbus_checkbutton.set_active(policy.use_dbus)
++            self.audit_checkbutton.set_active(policy.use_audit)
++            self.terminal_checkbutton.set_active(policy.use_terminal)
++            self.mail_checkbutton.set_active(policy.use_mail)
++            self.syslog_checkbutton.set_active(policy.use_syslog)
++
++    def stand_alone(self):
++        desktopName = _("Configue SELinux")
++
++        self.setupScreen()
++        self.mainWindow.connect("destroy", self.quit)
++
++        self.mainWindow.show_all()
++        gtk.main()
++
++if __name__ == "__main__":
++    signal.signal (signal.SIGINT, signal.SIG_DFL)
++
++    app = childWindow()
++    app.stand_alone()
+diff --git a/policycoreutils/gui/portsPage.py b/policycoreutils/gui/portsPage.py
+new file mode 100644
+index 0000000..d5daffb
+--- /dev/null
++++ b/policycoreutils/gui/portsPage.py
+@@ -0,0 +1,259 @@
++## portsPage.py - show selinux mappings
++## Copyright (C) 2006 Red Hat, 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.
++
++## Author: Dan Walsh
++import string
++import gtk
++import gtk.glade
++import os
++import gobject
++import sys
++import seobject
++import commands
++from semanagePage import *;
++
++##
++## I18N
++## 
++PROGNAME = "policycoreutils"
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++TYPE_COL = 0
++PROTOCOL_COL = 1
++MLS_COL = 2
++PORT_COL = 3
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++class portsPage(semanagePage):
++    def __init__(self, xml):
++        semanagePage.__init__(self, xml, "ports", _("Network Port"))
++        xml.signal_connect("on_group_clicked", self.on_group_clicked)
++        self.group = False
++        self.ports_filter = xml.get_widget("portsFilterEntry")
++        self.ports_filter.connect("focus_out_event", self.filter_changed)
++        self.ports_filter.connect("activate", self.filter_changed)
++        self.ports_name_entry = xml.get_widget("portsNameEntry")
++        self.ports_protocol_combo = xml.get_widget("portsProtocolCombo")
++        self.ports_number_entry = xml.get_widget("portsNumberEntry")
++        self.ports_mls_entry = xml.get_widget("portsMLSEntry")
++        self.ports_add_button = xml.get_widget("portsAddButton")
++        self.ports_properties_button = xml.get_widget("portsPropertiesButton")
++        self.ports_delete_button = xml.get_widget("portsDeleteButton")
++        liststore = self.ports_protocol_combo.get_model()
++        iter = liststore.get_iter_first()
++        self.ports_protocol_combo.set_active_iter(iter)
++        self.init_store()
++        self.edit = True
++        self.load()
++
++    def filter_changed(self, *arg):
++        filter =  arg[0].get_text()
++        if filter != self.filter:
++            if self.edit:
++                self.load(filter)
++            else:
++                self.group_load(filter)
++        
++    def init_store(self):
++        self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING , gobject.TYPE_STRING)
++        self.view.set_model(self.store)
++        self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++
++        self.view.set_search_equal_func(self.search)
++        col = gtk.TreeViewColumn(_("SELinux Port\nType"), gtk.CellRendererText(), text = TYPE_COL)
++        col.set_sort_column_id(TYPE_COL)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        self.store.set_sort_column_id(TYPE_COL, gtk.SORT_ASCENDING)
++
++        col = gtk.TreeViewColumn(_("Protocol"), gtk.CellRendererText(), text = PROTOCOL_COL)
++        col.set_sort_column_id(PROTOCOL_COL)
++        col.set_resizable(True)
++        self.view.append_column(col)
++
++        self.mls_col = gtk.TreeViewColumn(_("MLS/MCS\nLevel"), gtk.CellRendererText(), text = MLS_COL)
++        self.mls_col.set_resizable(True)
++        self.mls_col.set_sort_column_id(MLS_COL)
++        self.view.append_column(self.mls_col)
++
++        col = gtk.TreeViewColumn(_("Port"), gtk.CellRendererText(), text = PORT_COL)
++        col.set_sort_column_id(PORT_COL)
++        col.set_resizable(True)
++        self.view.append_column(col)
++        self.store.set_sort_func(PORT_COL,self.sort_int, "")
++
++    def sort_int(self, treemodel, iter1, iter2, user_data):
++        try:
++            p1 = int(treemodel.get_value(iter1,PORT_COL).split('-')[0])
++            p2 = int(treemodel.get_value(iter2,PORT_COL).split('-')[0])
++            if p1 > p2:
++                return 1
++            if p1 == p2:
++                return 0
++            return -1
++        except:
++            return 0
++
++    def load(self,filter = ""):
++        self.filter=filter            
++        self.port = seobject.portRecords()
++        dict = self.port.get_all(self.local)
++        keys = dict.keys()
++        keys.sort()
++        self.store.clear()
++        for k in keys:
++            if not (self.match(str(k[0]), filter) or self.match(dict[k][0], filter) or self.match(k[2], filter) or self.match(dict[k][1], filter) or self.match(dict[k][1], filter)):
++                continue
++            iter = self.store.append()
++            if k[0] == k[1]:
++                self.store.set_value(iter, PORT_COL, k[0])
++            else:
++                rec = "%s-%s" % k[:2]
++                self.store.set_value(iter, PORT_COL, rec)
++            self.store.set_value(iter, TYPE_COL, dict[k][0])
++            self.store.set_value(iter, PROTOCOL_COL, k[2])
++            self.store.set_value(iter, MLS_COL, dict[k][1])
++        self.view.get_selection().select_path ((0,))
++    
++    def group_load(self, filter = ""):
++        self.filter=filter            
++        self.port = seobject.portRecords()
++        dict = self.port.get_all_by_type(self.local)
++        keys = dict.keys()
++        keys.sort()
++        self.store.clear()
++        for k in keys:
++            ports_string = ", ".join(dict[k])
++            if not (self.match(ports_string, filter) or self.match(k[0], filter) or self.match(k[1], filter) ):
++                continue
++            iter = self.store.append()
++            self.store.set_value(iter, TYPE_COL, k[0])
++            self.store.set_value(iter, PROTOCOL_COL, k[1])
++            self.store.set_value(iter, PORT_COL, ports_string)
++            self.store.set_value(iter, MLS_COL, "")
++        self.view.get_selection().select_path ((0,))
++
++    def propertiesDialog(self):
++        if self.edit:
++            semanagePage.propertiesDialog(self)
++        
++    def dialogInit(self):
++        store, iter = self.view.get_selection().get_selected()
++        self.ports_number_entry.set_text(store.get_value(iter, PORT_COL))
++        self.ports_number_entry.set_sensitive(False)
++        self.ports_protocol_combo.set_sensitive(False)
++        self.ports_name_entry.set_text(store.get_value(iter, TYPE_COL))
++        self.ports_mls_entry.set_text(store.get_value(iter, MLS_COL))
++        protocol = store.get_value(iter, PROTOCOL_COL)
++        liststore = self.ports_protocol_combo.get_model()
++        iter = liststore.get_iter_first()
++        while iter != None and liststore.get_value(iter,0) != protocol:
++            iter = liststore.iter_next(iter)
++        if iter != None:
++            self.ports_protocol_combo.set_active_iter(iter)
++        
++    def dialogClear(self):
++        self.ports_number_entry.set_text("")
++        self.ports_number_entry.set_sensitive(True)
++        self.ports_protocol_combo.set_sensitive(True)
++        self.ports_name_entry.set_text("")
++        self.ports_mls_entry.set_text("s0")
++        
++    def delete(self):
++        store, iter = self.view.get_selection().get_selected()
++        port = store.get_value(iter, PORT_COL)
++        protocol = store.get_value(iter, 1)
++        try:
++            self.wait()            
++            (rc, out) = commands.getstatusoutput("semanage port -d -p %s %s" % (protocol, port))
++            self.ready()
++            if rc != 0:
++                return self.error(out)
++            store.remove(iter)
++            self.view.get_selection().select_path ((0,))
++        except ValueError, e:
++            self.error(e.args[0])
++
++    def add(self):
++        target = self.ports_name_entry.get_text().strip()
++        mls = self.ports_mls_entry.get_text().strip()
++        port_number = self.ports_number_entry.get_text().strip()
++        if port_number == "":
++            port_number = "1"
++        for i in port_number.split("-"):
++            if not i.isdigit():
++                self.error(_("Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 ") % port_number )
++                return False
++        list_model = self.ports_protocol_combo.get_model()
++        iter = self.ports_protocol_combo.get_active_iter()
++        protocol = list_model.get_value(iter,0)
++        self.wait()
++        (rc, out) = commands.getstatusoutput("semanage port -a -p %s -r %s -t %s %s" % (protocol, mls, target, port_number))
++        self.ready()
++        if rc != 0:
++            self.error(out)
++            return False
++        iter = self.store.append()
++
++        self.store.set_value(iter, TYPE_COL, target)
++        self.store.set_value(iter, PORT_COL, port_number)
++        self.store.set_value(iter, PROTOCOL_COL, protocol)
++        self.store.set_value(iter, MLS_COL, mls)
++        
++    def modify(self):
++        target = self.ports_name_entry.get_text().strip()
++        mls = self.ports_mls_entry.get_text().strip()
++        port_number = self.ports_number_entry.get_text().strip()
++        list_model = self.ports_protocol_combo.get_model()
++        iter = self.ports_protocol_combo.get_active_iter()
++        protocol = list_model.get_value(iter,0)
++        self.wait()
++        (rc, out) = commands.getstatusoutput("semanage port -m -p %s -r %s -t %s %s" % (protocol, mls, target, port_number))
++        self.ready()
++        if rc != 0:
++            self.error(out)
++            return False
++        store, iter = self.view.get_selection().get_selected()
++        self.store.set_value(iter, TYPE_COL, target)
++        self.store.set_value(iter, PORT_COL, port_number)
++        self.store.set_value(iter, PROTOCOL_COL, protocol)
++        self.store.set_value(iter, MLS_COL, mls)
++
++    def on_group_clicked(self, button):
++        self.ports_add_button.set_sensitive(self.group)
++        self.ports_properties_button.set_sensitive(self.group)
++        self.ports_delete_button.set_sensitive(self.group)
++        self.mls_col.set_visible(self.group)
++
++        self.group = not self.group
++        if self.group:
++            button.set_label(_("List View"))
++            self.group_load(self.filter)
++        else:
++            button.set_label(_("Group View"))
++            self.load(self.filter)
++
++        return True
++        
+diff --git a/policycoreutils/gui/selinux.tbl b/policycoreutils/gui/selinux.tbl
+new file mode 100644
+index 0000000..ed5ca6a
+--- /dev/null
++++ b/policycoreutils/gui/selinux.tbl
+@@ -0,0 +1,234 @@
++acct_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for acct daemon")
++allow_daemons_dump_core _("Admin") _("Allow all daemons to write corefiles to /")
++allow_daemons_use_tty _("Admin") _("Allow all daemons the ability to use unallocated ttys")
++allow_gadmin_exec_content _("User Privs") _("Allow gadmin SELinux user account to execute files in home directory or /tmp")
++allow_guest_exec_content _("User Privs") _("Allow guest SELinux user account to execute files in home directory or /tmp")
++allow_java_execstack _("Memory Protection") _("Allow java executable stack")
++allow_mount_anyfile _("Mount") _("Allow mount to mount any file")
++allow_mounton_anydir  _("Mount") _("Allow mount to mount any directory")
++allow_mplayer_execstack _("Memory Protection") _("Allow mplayer executable stack")
++allow_ssh_keysign _("SSH") _("Allow ssh to run ssh-keysign")
++allow_staff_exec_content _("User Privs") _("Allow staff SELinux user account to execute files in home directory or /tmp")
++allow_sysadm_exec_content _("User Privs") _("Allow sysadm SELinux user account to execute files in home directory or /tmp")
++allow_unconfined_exec_content _("User Privs") _("Allow unconfined SELinux user account to execute files in home directory or /tmp")
++allow_unlabeled_packets _("Network Configuration") _("Allow unlabeled packets to flow on the network")
++allow_user_exec_content _("User Privs") _("Allow user SELinux user account to execute files in home directory or /tmp")
++allow_unconfined_execmem_dyntrans _("Memory Protection") _("Allow unconfined to dyntrans to unconfined_execmem")
++allow_user_mysql_connect _("Databases") _("Allow user to connect to mysql socket")
++allow_user_postgresql_connect _("Databases") _("Allow user to connect to postgres socket")
++allow_write_xshm _("XServer") _("Allow clients to write to X shared memory")
++allow_xguest_exec_content _("User Privs") _("Allow xguest SELinux user account to execute files in home directory or /tmp")
++allow_ypbind _("NIS") _("Allow daemons to run with NIS")
++browser_confine_staff _("Web Applications") _("Transition staff SELinux user to Web Browser Domain")
++browser_confine_sysadm _("Web Applications") _("Transition sysadm SELinux user to Web Browser Domain")
++browser_confine_user _("Web Applications") _("Transition user SELinux user to Web Browser Domain")
++browser_confine_xguest _("Web Applications") _("Transition xguest SELinux user to Web Browser Domain")
++browser_write_staff_data _("Web Applications") _("Allow staff Web Browsers to write to home directories")
++browser_write_sysadm_data _("Web Applications") _("Allow staff Web Browsers to write to home directories")
++browser_write_user_data _("Web Applications") _("Allow staff Web Browsers to write to home directories")
++browser_write_xguest_data _("Web Applications") _("Allow staff Web Browsers to write to home directories")
++amanda_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for amanda")
++amavis_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for amavis")
++apmd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for apmd daemon")
++arpwatch_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for arpwatch daemon")
++auditd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for auditd daemon")
++automount_disable_trans _("Mount") _("Disable SELinux protection for automount daemon")
++avahi_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for avahi")
++bluetooth_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for bluetooth daemon")
++canna_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for canna daemon")
++cardmgr_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for cardmgr daemon")
++ccs_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for Cluster Server")
++cdrecord_read_content _("User Privs") _("Allow cdrecord to read various content. nfs, samba, removable devices, user temp and untrusted content files")
++ciped_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ciped daemon")
++clamd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for clamd daemon")
++clamscan_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for clamscan")
++clvmd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for clvmd")
++comsat_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for comsat daemon")
++courier_authdaemon_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for courier daemon")
++courier_pcp_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for courier daemon")
++courier_pop_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for courier daemon")
++courier_sqwebmail_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for courier daemon")
++courier_tcpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for courier daemon")
++cpucontrol_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for cpucontrol daemon")
++cpuspeed_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for cpuspeed daemon")
++crond_disable_trans _("Cron") _("Disable SELinux protection for crond daemon")
++cupsd_config_disable_trans _("Printing") _("Disable SELinux protection for cupsd back end server")
++cupsd_disable_trans _("Printing") _("Disable SELinux protection for cupsd daemon")
++cupsd_lpd_disable_trans _("Printing") _("Disable SELinux protection for cupsd_lpd")
++cvs_disable_trans _("CVS") _("Disable SELinux protection for cvs daemon")
++cyrus_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for cyrus daemon")
++dbskkd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dbskkd daemon")
++dbusd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dbusd daemon")
++dccd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dccd")
++dccifd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dccifd")
++dccm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dccm")
++ddt_client_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ddt daemon")
++devfsd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for devfsd daemon")
++dhcpc_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dhcpc daemon")
++dhcpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dhcpd daemon")
++dictd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dictd daemon")
++direct_sysadm_daemon _("Admin") _("Allow sysadm_t to directly start daemons")
++disable_evolution_trans _("Web Applications") _("Disable SELinux protection for Evolution")
++disable_games_trans _("Games") _("Disable SELinux protection for games")
++disable_mozilla_trans _("Web Applications") _("Disable SELinux protection for the web browsers")
++disable_thunderbird_trans _("Web Applications") _("Disable SELinux protection for Thunderbird")
++distccd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for distccd daemon")
++dmesg_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dmesg daemon")
++dnsmasq_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dnsmasq daemon")
++dovecot_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dovecot daemon")
++entropyd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for entropyd daemon")
++fetchmail_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for fetchmail")
++fingerd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for fingerd daemon")
++freshclam_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for freshclam daemon")
++fsdaemon_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for fsdaemon daemon")
++gpm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for gpm daemon")
++gssd_disable_trans _("NFS") _("Disable SELinux protection for gss daemon")
++hald_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for Hal daemon")
++hide_broken_symptoms _("Compatibility") _("Do not audit things that we know to be broken but which are not security risks")
++hostname_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for hostname daemon")
++hotplug_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for hotplug daemon")
++howl_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for howl daemon")
++hplip_disable_trans _("Printing") _("Disable SELinux protection for cups hplip daemon")
++httpd_rotatelogs_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for httpd rotatelogs")
++httpd_suexec_disable_trans _("HTTPD Service") _("Disable SELinux protection for http suexec")
++hwclock_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for hwclock daemon")
++i18n_input_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for i18n daemon")
++imazesrv_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for imazesrv daemon")
++inetd_child_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for inetd child daemons")
++inetd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for inetd daemon")
++innd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for innd daemon")
++iptables_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for iptables daemon")
++ircd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ircd daemon")
++irqbalance_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for irqbalance daemon")
++iscsid_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for iscsi daemon")
++jabberd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for jabberd daemon")
++kadmind_disable_trans _("Kerberos") _("Disable SELinux protection for kadmind daemon")
++klogd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for klogd daemon")
++krb5kdc_disable_trans _("Kerberos") _("Disable SELinux protection for krb5kdc daemon")
++ktalkd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ktalk daemons")
++kudzu_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for kudzu daemon")
++locate_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for locate daemon")
++lpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for lpd daemon")
++lrrd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for lrrd daemon")
++lvm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for lvm daemon")
++mailman_mail_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for mailman")
++mail_read_content _("Web Applications") _("Allow evolution and thunderbird to read user files")
++mdadm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for mdadm daemon")
++monopd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for monopd daemon")
++mozilla_read_content _("Web Applications") _("Allow the mozilla browser to read user files")
++mrtg_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for mrtg daemon")
++mysqld_disable_trans _("Databases") _("Disable SELinux protection for mysqld daemon")
++nagios_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for nagios daemon")
++named_disable_trans _("Name Service") _("Disable SELinux protection for named daemon")
++nessusd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for nessusd daemon")
++NetworkManager_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for NetworkManager")
++nfsd_disable_trans _("NFS") _("Disable SELinux protection for nfsd daemon")
++nmbd_disable_trans _("Samba") _("Disable SELinux protection for nmbd daemon")
++nrpe_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for nrpe daemon")
++nscd_disable_trans _("Name Service") _("Disable SELinux protection for nscd daemon")
++nsd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for nsd daemon")
++ntpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ntpd daemon")
++oddjob_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for oddjob")
++oddjob_mkhomedir_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for oddjob_mkhomedir")
++openvpn_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for openvpn daemon")
++pam_console_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for pam daemon")
++pegasus_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for pegasus")
++perdition_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for perdition daemon")
++portmap_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for portmap daemon")
++portslave_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for portslave daemon")
++postfix_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for postfix")
++postgresql_disable_trans _("Databases") _("Disable SELinux protection for postgresql daemon")
++pppd_for_user _("pppd") _("Allow pppd to be run for a regular user")
++pptp_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for pptp")
++prelink_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for prelink daemon")
++privoxy_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for privoxy daemon")
++ptal_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ptal daemon")
++pxe_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for pxe daemon")
++pyzord_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for pyzord")
++quota_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for quota daemon")
++radiusd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for radiusd daemon")
++radvd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for radvd daemon")
++rdisc_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for rdisc")
++readahead_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for readahead")
++read_default_t _("Admin") _("Allow programs to read files in non-standard locations (default_t)")
++restorecond_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for restorecond")
++rhgb_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for rhgb daemon")
++ricci_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ricci")
++ricci_modclusterd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ricci_modclusterd")
++rlogind_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for rlogind daemon")
++rpcd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for rpcd daemon")
++rshd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for rshd")
++rsync_disable_trans _("rsync") _("Disable SELinux protection for rsync daemon")
++run_ssh_inetd _("SSH") _("Allow ssh to run from inetd instead of as a daemon")
++samba_share_nfs _("Samba") _("Allow Samba to share nfs directories")
++allow_saslauthd_read_shadow _("SASL authentication server") _("Allow sasl authentication server to read /etc/shadow")
++allow_xserver_execmem _("XServer") _("Allow X-Windows server to map a memory region as both executable and writable")
++saslauthd_disable_trans _("SASL authentication server") _("Disable SELinux protection for saslauthd daemon")
++scannerdaemon_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for scannerdaemon daemon")
++secure_mode  _("Admin") _("Do not allow transition to sysadm_t, sudo and su effected")
++secure_mode_insmod  _("Admin") _("Do not allow any processes to load kernel modules")
++secure_mode_policyload  _("Admin") _("Do not allow any processes to modify kernel SELinux policy")
++sendmail_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for sendmail daemon")
++setrans_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for setrans")
++setroubleshootd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for setroubleshoot daemon")
++slapd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for slapd daemon")
++slrnpull_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for slrnpull daemon")
++smbd_disable_trans _("Samba") _("Disable SELinux protection for smbd daemon")
++snmpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for snmpd daemon")
++snort_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for snort daemon")
++soundd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for soundd daemon")
++sound_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for sound daemon")
++spamd_disable_trans _("Spam Protection") _("Disable SELinux protection for spamd daemon")
++spamd_enable_home_dirs _("Spam Protection") _("Allow spamd to access home directories")
++spamassassin_can_network _("Spam Protection") _("Allow Spam Assassin daemon network access")
++speedmgmt_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for speedmgmt daemon")
++squid_connect_any _("Squid") _("Allow squid daemon to connect to the network")
++squid_disable_trans _("Squid") _("Disable SELinux protection for squid daemon")
++ssh_keygen_disable_trans _("SSH") _("Disable SELinux protection for ssh daemon")
++ssh_sysadm_login _("SSH") _("Allow ssh logins as sysadm_r:sysadm_t")
++staff_read_sysadm_file _("Admin") _("Allow staff_r users to search the sysadm home dir and read files (such as ~/.bashrc)")
++stunnel_disable_trans _("Universal SSL tunnel") _("Disable SELinux protection for stunnel daemon")
++stunnel_is_daemon _("Universal SSL tunnel") _("Allow stunnel daemon to run as standalone, outside of xinetd")
++swat_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for swat daemon")
++sxid_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for sxid daemon")
++syslogd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for syslogd daemon")
++system_crond_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for system cron jobs")
++tcpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for tcp daemon")
++telnetd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for telnet daemon")
++tftpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for tftpd daemon")
++transproxy_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for transproxy daemon")
++udev_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for udev daemon")
++uml_switch_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for uml daemon")
++unlimitedInetd _("Admin") _("Allow xinetd to run unconfined, including any services it starts that do not have a domain transition explicitly defined")
++unlimitedRC _("Admin") _("Allow rc scripts to run unconfined, including any daemon started by an rc script that does not have a domain transition explicitly defined")
++unlimitedRPM _("Admin") _("Allow rpm to run unconfined")
++unlimitedUtils _("Admin") _("Allow privileged utilities like hotplug and insmod to run unconfined")
++updfstab_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for updfstab daemon")
++uptimed_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for uptimed daemon")
++user_canbe_sysadm _("User Privs") _("Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only staff_r can do so")
++user_can_mount _("Mount") _("Allow users to execute the mount command")
++user_direct_mouse _("User Privs") _("Allow regular users direct mouse access (only allow the X server)")
++user_dmesg _("User Privs") _("Allow users to run the dmesg command")
++user_net_control _("User Privs") _("Allow users to control network interfaces (also needs USERCTL=true)")
++user_ping _("User Privs") _("Allow normal user to execute ping")
++user_rw_noexattrfile _("User Privs") _("Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)")
++user_rw_usb _("User Privs") _("Allow users to rw usb devices")
++user_tcp_server _("User Privs") _("Allow users to run TCP servers (bind to ports and accept connection from the same domain and outside users)  disabling this forces FTP passive mode and may change other protocols")
++user_ttyfile_stat _("User Privs") _("Allow user to stat ttyfiles")
++uucpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for uucpd daemon")
++vmware_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for vmware daemon")
++watchdog_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for watchdog daemon")
++winbind_disable_trans _("Samba") _("Disable SELinux protection for winbind daemon")
++xdm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for xdm daemon")
++xdm_sysadm_login _("XServer") _("Allow xdm logins as sysadm_r:sysadm_t")
++xend_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for xen daemon")
++xen_use_raw_disk _("XEN") _("Allow xen to read/write physical disk devices")
++xfs_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for xfs daemon")
++xm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for xen control")
++ypbind_disable_trans _("NIS") _("Disable SELinux protection for ypbind daemon")
++yppasswdd_disable_trans _("NIS") _("Disable SELinux protection for NIS Password Daemon")
++ypserv_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ypserv daemon")
++ypxfr_disable_trans _("NIS") _("Disable SELinux protection for NIS Transfer Daemon")
++webadm_manage_user_files _("HTTPD Service") _("Allow SELinux webadm user to manage unprivileged users home directories")
++webadm_read_user_files _("HTTPD Service") _("Allow SELinux webadm user to read unprivileged users home directories")
++
+diff --git a/policycoreutils/gui/semanagePage.py b/policycoreutils/gui/semanagePage.py
+new file mode 100644
+index 0000000..110c654
+--- /dev/null
++++ b/policycoreutils/gui/semanagePage.py
+@@ -0,0 +1,168 @@
++## semanagePage.py - show selinux mappings
++## Copyright (C) 2006 Red Hat, 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.
++
++## Author: Dan Walsh
++import string
++import gtk
++import gtk.glade
++import os
++import gobject
++import sys
++import seobject
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++def idle_func():
++    while gtk.events_pending():
++        gtk.main_iteration()
++        
++class semanagePage:
++    def __init__(self, xml, name, description):
++        self.xml = xml
++        self.window = self.xml.get_widget("mainWindow").get_root_window()
++        self.busy_cursor = gtk.gdk.Cursor(gtk.gdk.WATCH)
++        self.ready_cursor = gtk.gdk.Cursor(gtk.gdk.LEFT_PTR)
++
++        self.local = False
++        self.view = xml.get_widget("%sView" % name)
++        self.dialog = xml.get_widget("%sDialog" % name)
++        self.filter_entry = xml.get_widget("%sFilterEntry" % name )
++        self.filter_entry.connect("focus_out_event", self.filter_changed)
++        self.filter_entry.connect("activate", self.filter_changed)
++
++        self.view.connect("row_activated", self.rowActivated)
++        self.view.get_selection().connect("changed", self.itemSelected)
++        self.description = description;
++
++    def wait(self):
++        self.window.set_cursor(self.busy_cursor)
++        idle_func()
++    
++    def ready(self):
++        self.window.set_cursor(self.ready_cursor)
++        idle_func()
++    
++    def get_description(self):
++        return self.description 
++        
++    def itemSelected(self, args):
++        return
++
++    def filter_changed(self, *arg):
++        filter =  arg[0].get_text()
++        if filter != self.filter:
++            self.load(filter)
++        
++    def search(self, model, col, key, i):
++        sort_col = self.store.get_sort_column_id()[0]
++        val = model.get_value(i,sort_col)
++        if val.lower().startswith(key.lower()):
++            return False
++        return True
++
++    def match(self, target, filter):
++        try:
++            f=filter.lower()
++            t=target.lower()
++            if t.find(f) >= 0:
++                return True
++        except:
++            pass
++        return False
++
++    def rowActivated(self, view, row, Column):
++        self.propertiesDialog()
++
++    def verify(self, message, title="" ):
++        dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO,
++                                gtk.BUTTONS_YES_NO,
++                                message)
++        dlg.set_title(title)
++        dlg.set_position(gtk.WIN_POS_MOUSE)
++        dlg.show_all()
++        rc = dlg.run()
++        dlg.destroy()
++        return rc
++
++    def error(self, message):
++        dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR,
++                                gtk.BUTTONS_CLOSE,
++                                message)
++        dlg.set_position(gtk.WIN_POS_MOUSE)
++        dlg.show_all()
++        dlg.run()
++        dlg.destroy()
++
++    def deleteDialog(self):
++        store, iter = self.view.get_selection().get_selected()
++        if self.verify(_("Are you sure you want to delete %s '%s'?" % (self.description, store.get_value(iter, 0))), _("Delete %s" % self.description)) == gtk.RESPONSE_YES:
++            self.delete()
++        
++    def use_menus(self):
++        return True
++    
++    def addDialog(self):
++        self.dialogClear()
++        self.dialog.set_title(_("Add %s" % self.description))
++        self.dialog.set_position(gtk.WIN_POS_MOUSE)
++
++        while self.dialog.run() ==  gtk.RESPONSE_OK:
++            try:
++                if self.add() == False:
++                    continue
++                break;
++            except ValueError, e:
++                self.error(e.args[0])
++        self.dialog.hide()
++
++    def propertiesDialog(self):
++        self.dialogInit()
++        self.dialog.set_title(_("Modify %s" % self.description))
++        self.dialog.set_position(gtk.WIN_POS_MOUSE)
++        while self.dialog.run() ==  gtk.RESPONSE_OK:
++            try:
++                if self.modify() == False:
++                    continue
++                break;
++            except ValueError, e:
++                self.error(e.args[0])
++        self.dialog.hide()
++    
++    def on_local_clicked(self, button):
++        self.local = not self.local
++        if self.local:
++            button.set_label(_("all"))
++        else:
++            button.set_label(_("Customized"))
++
++        self.load(self.filter)
++        return True
++        
+diff --git a/policycoreutils/gui/statusPage.py b/policycoreutils/gui/statusPage.py
+new file mode 100644
+index 0000000..fd6ef4f
+--- /dev/null
++++ b/policycoreutils/gui/statusPage.py
+@@ -0,0 +1,190 @@
++# statusPage.py - show selinux status
++## Copyright (C) 2006-2009 Red Hat, 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.
++
++## Author: Dan Walsh
++import string
++import gtk
++import gtk.glade
++import os
++import gobject
++import sys
++import tempfile
++
++INSTALLPATH = '/usr/share/system-config-selinux'
++sys.path.append(INSTALLPATH)
++
++import commands
++ENFORCING = 1
++PERMISSIVE = 0
++DISABLED = -1
++modearray = ( "disabled", "permissive",  "enforcing" )
++
++SELINUXDIR = "/etc/selinux/"
++RELABELFILE = "/.autorelabel"
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++import selinux
++try:
++    gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1)
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++class statusPage:
++    def __init__(self, xml):
++        self.xml = xml
++        self.needRelabel = False
++
++        self.type = selinux.selinux_getpolicytype()
++        # Bring in widgets from glade file.
++        self.typeHBox = xml.get_widget("typeHBox")
++        self.selinuxTypeOptionMenu = xml.get_widget("selinuxTypeOptionMenu")
++        self.typeLabel = xml.get_widget("typeLabel")
++        self.enabledOptionMenu = xml.get_widget("enabledOptionMenu")
++        self.currentOptionMenu = xml.get_widget("currentOptionMenu")
++        self.relabel_checkbutton = xml.get_widget("relabelCheckbutton")
++        self.relabel_checkbutton.set_active(self.is_relabel())
++        self.relabel_checkbutton.connect("toggled", self.on_relabel_toggle)
++        if self.get_current_mode() == ENFORCING or self.get_current_mode() == PERMISSIVE:
++                self.currentOptionMenu.append_text(_("Permissive"))
++                self.currentOptionMenu.append_text(_("Enforcing"))
++                self.currentOptionMenu.set_active(self.get_current_mode())
++                self.currentOptionMenu.connect("changed", self.set_current_mode)
++                self.currentOptionMenu.set_sensitive(True)
++        else:
++                self.currentOptionMenu.append_text(_("Disabled"))
++                self.currentOptionMenu.set_active(0)
++                self.currentOptionMenu.set_sensitive(False)
++
++        if self.read_selinux_config() == None:
++            self.selinuxsupport = False
++        else:
++            self.enabledOptionMenu.connect("changed", self.enabled_changed)
++        #
++        # This line must come after read_selinux_config
++        #
++        self.selinuxTypeOptionMenu.connect("changed", self.typemenu_changed)
++
++        self.typeLabel.set_mnemonic_widget(self.selinuxTypeOptionMenu)
++        
++    def use_menus(self):
++        return False
++    
++    def get_description(self):
++        return _("Status")
++
++    def get_current_mode(self):
++        if selinux.is_selinux_enabled():
++            if selinux.security_getenforce() > 0:
++                return ENFORCING
++            else:
++                return PERMISSIVE
++        else:
++            return DISABLED
++
++    def set_current_mode(self,menu):
++        selinux.security_setenforce(menu.get_active() == 1)
++
++    def is_relabel(self):
++        return os.access(RELABELFILE, os.F_OK) != 0
++
++    def on_relabel_toggle(self,button):
++        if button.get_active():
++            fd = open(RELABELFILE,"w")
++            fd.close()
++        else:
++            if os.access(RELABELFILE, os.F_OK) != 0:
++                os.unlink(RELABELFILE)
++
++    def verify(self, message):
++        dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO,
++                                gtk.BUTTONS_YES_NO,
++                                message)
++        dlg.set_position(gtk.WIN_POS_MOUSE)
++        dlg.show_all()
++        rc = dlg.run()
++        dlg.destroy()
++        return rc
++
++    def typemenu_changed(self, menu):
++        type = self.get_type()
++        enabled = self.enabledOptionMenu.get_active()
++        if self.initialtype != type:
++            if self.verify(_("Changing the policy type will cause a relabel of the entire file system on the next boot. Relabeling takes a long time depending on the size of the file system.  Do you wish to continue?")) == gtk.RESPONSE_NO:
++                menu.set_active(self.typeHistory)
++                return None
++
++            self.relabel_checkbutton.set_active(True)
++
++        self.write_selinux_config(modearray[enabled], type )
++        self.typeHistory = menu.get_active()
++        
++    def enabled_changed(self, combo):
++        enabled = combo.get_active()
++        type = self.get_type()
++
++        if self.initEnabled != DISABLED and enabled == DISABLED:
++            if self.verify(_("Changing to SELinux disabled requires a reboot.  It is not recommended.  If you later decide to turn SELinux back on, the system will be required to relabel.  If you just want to see if SELinux is causing a problem on your system, you can go to permissive mode which will only log errors and not enforce SELinux policy.  Permissive mode does not require a reboot    Do you wish to continue?")) == gtk.RESPONSE_NO:
++                combo.set_active(self.enabled)
++                return None
++
++        if self.initEnabled == DISABLED and enabled < 2:
++            if self.verify(_("Changing to SELinux enabled will cause a relabel of the entire file system on the next boot. Relabeling takes a long time depending on the size of the file system.  Do you wish to continue?")) == gtk.RESPONSE_NO:
++                combo.set_active(self.enabled)
++                return None
++            self.relabel_checkbutton.set_active(True)
++
++        self.write_selinux_config(modearray[enabled], type )
++        self.enabled = enabled
++
++    def write_selinux_config(self, enforcing, type):
++        import commands
++        commands.getstatusoutput("/usr/sbin/lokkit --selinuxtype=%s --selinux=%s" % (type, enforcing))
++
++    def read_selinux_config(self):
++        self.initialtype = selinux.selinux_getpolicytype()[1]
++        self.initEnabled = selinux.selinux_getenforcemode()[1]
++        self.enabled = self.initEnabled
++        self.enabledOptionMenu.set_active(self.enabled + 1 )
++
++        self.types = []
++
++        n = 0
++        current = n
++
++        for i in os.listdir(SELINUXDIR):
++            if os.path.isdir(SELINUXDIR+i) and os.path.isdir(SELINUXDIR+i+"/policy"):
++                self.types.append(i)
++                self.selinuxTypeOptionMenu.append_text(i)
++                if i == self.initialtype:
++                    current = n
++                n = n+1
++        self.selinuxTypeOptionMenu.set_active(current)
++        self.typeHistory = current
++
++        return 0
++
++    def get_type(self):
++        return self.types[self.selinuxTypeOptionMenu.get_active()]
++
++
+diff --git a/policycoreutils/gui/system-config-selinux.glade b/policycoreutils/gui/system-config-selinux.glade
+new file mode 100644
+index 0000000..05a697e
+--- /dev/null
++++ b/policycoreutils/gui/system-config-selinux.glade
+@@ -0,0 +1,3005 @@
++<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
++<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
++
++<glade-interface>
++<requires lib="gnome"/>
++<requires lib="bonobo"/>
++
++<widget class="GtkAboutDialog" id="aboutWindow">
++  <property name="border_width">5</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="name" translatable="yes">system-config-selinux</property>
++  <property name="copyright" translatable="yes">Copyright (c)2006 Red Hat, Inc.
++Copyright (c) 2006 Dan Walsh &lt;dwalsh@redhat.com&gt;</property>
++  <property name="wrap_license">False</property>
++  <property name="authors">Daniel Walsh &lt;dwalsh@redhat.com&gt;
++</property>
++  <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
++  <property name="logo">system-config-selinux.png</property>
++</widget>
++
++<widget class="GtkDialog" id="loginsDialog">
++  <property name="title" translatable="yes">Add SELinux Login Mapping</property>
++  <property name="type">GTK_WINDOW_TOPLEVEL</property>
++  <property name="window_position">GTK_WIN_POS_NONE</property>
++  <property name="modal">False</property>
++  <property name="resizable">True</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="decorated">True</property>
++  <property name="skip_taskbar_hint">False</property>
++  <property name="skip_pager_hint">False</property>
++  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
++  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
++  <property name="focus_on_map">True</property>
++  <property name="urgency_hint">False</property>
++  <property name="has_separator">True</property>
++
++  <child internal-child="vbox">
++    <widget class="GtkVBox" id="dialog-vbox1">
++      <property name="visible">True</property>
++      <property name="homogeneous">False</property>
++      <property name="spacing">0</property>
++
++      <child internal-child="action_area">
++      <widget class="GtkHButtonBox" id="dialog-action_area1">
++        <property name="visible">True</property>
++        <property name="layout_style">GTK_BUTTONBOX_END</property>
++
++        <child>
++          <widget class="GtkButton" id="cancelbutton1">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-cancel</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-6</property>
++          </widget>
++        </child>
++
++        <child>
++          <widget class="GtkButton" id="okbutton1">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-ok</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-5</property>
++          </widget>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">False</property>
++        <property name="fill">True</property>
++        <property name="pack_type">GTK_PACK_END</property>
++      </packing>
++      </child>
++
++      <child>
++      <widget class="GtkVBox" id="vbox2">
++        <property name="visible">True</property>
++        <property name="homogeneous">False</property>
++        <property name="spacing">0</property>
++
++        <child>
++          <widget class="GtkTable" id="table1">
++            <property name="visible">True</property>
++            <property name="n_rows">3</property>
++            <property name="n_columns">2</property>
++            <property name="homogeneous">False</property>
++            <property name="row_spacing">4</property>
++            <property name="column_spacing">6</property>
++
++            <child>
++              <widget class="GtkLabel" id="label15">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">Login Name</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">0</property>
++                <property name="bottom_attach">1</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label16">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">SELinux User</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">1</property>
++                <property name="bottom_attach">2</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label17">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">MLS/MCS Range</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkEntry" id="loginsNameEntry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="editable">True</property>
++                <property name="visibility">True</property>
++                <property name="max_length">0</property>
++                <property name="text" translatable="yes"></property>
++                <property name="has_frame">True</property>
++                <property name="invisible_char">*</property>
++                <property name="activates_default">False</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">0</property>
++                <property name="bottom_attach">1</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkComboBox" id="loginsSelinuxUserCombo">
++                <property name="visible">True</property>
++                <property name="add_tearoffs">False</property>
++                <property name="focus_on_click">True</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">1</property>
++                <property name="bottom_attach">2</property>
++                <property name="x_options">fill</property>
++                <property name="y_options">fill</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkEntry" id="loginsMLSEntry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="editable">True</property>
++                <property name="visibility">True</property>
++                <property name="max_length">0</property>
++                <property name="text" translatable="yes"></property>
++                <property name="has_frame">True</property>
++                <property name="invisible_char">*</property>
++                <property name="activates_default">False</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="padding">5</property>
++            <property name="expand">True</property>
++            <property name="fill">True</property>
++          </packing>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">True</property>
++        <property name="fill">True</property>
++      </packing>
++      </child>
++    </widget>
++  </child>
++</widget>
++
++<widget class="GtkDialog" id="portsDialog">
++  <property name="title" translatable="yes">Add SELinux Network Ports</property>
++  <property name="type">GTK_WINDOW_TOPLEVEL</property>
++  <property name="window_position">GTK_WIN_POS_NONE</property>
++  <property name="modal">False</property>
++  <property name="resizable">True</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="decorated">True</property>
++  <property name="skip_taskbar_hint">False</property>
++  <property name="skip_pager_hint">False</property>
++  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
++  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
++  <property name="focus_on_map">True</property>
++  <property name="urgency_hint">False</property>
++  <property name="has_separator">True</property>
++
++  <child internal-child="vbox">
++    <widget class="GtkVBox" id="vbox3">
++      <property name="visible">True</property>
++      <property name="homogeneous">False</property>
++      <property name="spacing">0</property>
++
++      <child internal-child="action_area">
++      <widget class="GtkHButtonBox" id="hbuttonbox1">
++        <property name="visible">True</property>
++        <property name="layout_style">GTK_BUTTONBOX_END</property>
++
++        <child>
++          <widget class="GtkButton" id="button1">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-cancel</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-6</property>
++          </widget>
++        </child>
++
++        <child>
++          <widget class="GtkButton" id="button2">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-ok</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-5</property>
++          </widget>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">False</property>
++        <property name="fill">True</property>
++        <property name="pack_type">GTK_PACK_END</property>
++      </packing>
++      </child>
++
++      <child>
++      <widget class="GtkVBox" id="vbox4">
++        <property name="visible">True</property>
++        <property name="homogeneous">False</property>
++        <property name="spacing">0</property>
++
++        <child>
++          <widget class="GtkTable" id="table2">
++            <property name="visible">True</property>
++            <property name="n_rows">4</property>
++            <property name="n_columns">2</property>
++            <property name="homogeneous">False</property>
++            <property name="row_spacing">4</property>
++            <property name="column_spacing">6</property>
++
++            <child>
++              <widget class="GtkLabel" id="label18">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">Port Number</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">0</property>
++                <property name="bottom_attach">1</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label19">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">Protocol</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">1</property>
++                <property name="bottom_attach">2</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label20">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">SELinux Type</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkEntry" id="portsNumberEntry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="editable">True</property>
++                <property name="visibility">True</property>
++                <property name="max_length">0</property>
++                <property name="text" translatable="yes"></property>
++                <property name="has_frame">True</property>
++                <property name="invisible_char">*</property>
++                <property name="activates_default">False</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">0</property>
++                <property name="bottom_attach">1</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkComboBox" id="portsProtocolCombo">
++                <property name="visible">True</property>
++                <property name="items">tcp
++udp</property>
++                <property name="add_tearoffs">False</property>
++                <property name="focus_on_click">True</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">1</property>
++                <property name="bottom_attach">2</property>
++                <property name="x_options">fill</property>
++                <property name="y_options">fill</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkEntry" id="portsNameEntry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="editable">True</property>
++                <property name="visibility">True</property>
++                <property name="max_length">0</property>
++                <property name="text" translatable="yes"></property>
++                <property name="has_frame">True</property>
++                <property name="invisible_char">*</property>
++                <property name="activates_default">False</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label21">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">MLS/MCS
++Level</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">3</property>
++                <property name="bottom_attach">4</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkEntry" id="portsMLSEntry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="editable">True</property>
++                <property name="visibility">True</property>
++                <property name="max_length">0</property>
++                <property name="text" translatable="yes"></property>
++                <property name="has_frame">True</property>
++                <property name="invisible_char">*</property>
++                <property name="activates_default">False</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">3</property>
++                <property name="bottom_attach">4</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="padding">5</property>
++            <property name="expand">True</property>
++            <property name="fill">True</property>
++          </packing>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">True</property>
++        <property name="fill">True</property>
++      </packing>
++      </child>
++    </widget>
++  </child>
++</widget>
++
++<widget class="GtkDialog" id="fcontextDialog">
++  <property name="title" translatable="yes">Add SELinux Login Mapping</property>
++  <property name="type">GTK_WINDOW_TOPLEVEL</property>
++  <property name="window_position">GTK_WIN_POS_NONE</property>
++  <property name="modal">False</property>
++  <property name="resizable">True</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="decorated">True</property>
++  <property name="skip_taskbar_hint">False</property>
++  <property name="skip_pager_hint">False</property>
++  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
++  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
++  <property name="focus_on_map">True</property>
++  <property name="urgency_hint">False</property>
++  <property name="has_separator">True</property>
++
++  <child internal-child="vbox">
++    <widget class="GtkVBox" id="vbox7">
++      <property name="visible">True</property>
++      <property name="homogeneous">False</property>
++      <property name="spacing">0</property>
++
++      <child internal-child="action_area">
++      <widget class="GtkHButtonBox" id="hbuttonbox3">
++        <property name="visible">True</property>
++        <property name="layout_style">GTK_BUTTONBOX_END</property>
++
++        <child>
++          <widget class="GtkButton" id="button5">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-cancel</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-6</property>
++          </widget>
++        </child>
++
++        <child>
++          <widget class="GtkButton" id="button6">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-ok</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-5</property>
++          </widget>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">False</property>
++        <property name="fill">True</property>
++        <property name="pack_type">GTK_PACK_END</property>
++      </packing>
++      </child>
++
++      <child>
++      <widget class="GtkVBox" id="vbox8">
++        <property name="visible">True</property>
++        <property name="homogeneous">False</property>
++        <property name="spacing">0</property>
++
++        <child>
++          <widget class="GtkTable" id="table4">
++            <property name="visible">True</property>
++            <property name="n_rows">4</property>
++            <property name="n_columns">2</property>
++            <property name="homogeneous">False</property>
++            <property name="row_spacing">4</property>
++            <property name="column_spacing">6</property>
++
++            <child>
++              <widget class="GtkLabel" id="label25">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">File Specification</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">0</property>
++                <property name="bottom_attach">1</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label26">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">File Type</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">1</property>
++                <property name="bottom_attach">2</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label27">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">SELinux Type</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkEntry" id="fcontextEntry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="editable">True</property>
++                <property name="visibility">True</property>
++                <property name="max_length">0</property>
++                <property name="text" translatable="yes"></property>
++                <property name="has_frame">True</property>
++                <property name="invisible_char">*</property>
++                <property name="activates_default">False</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">0</property>
++                <property name="bottom_attach">1</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkComboBox" id="fcontextFileTypeCombo">
++                <property name="visible">True</property>
++                <property name="items" translatable="yes">all files
++regular file
++directory
++character device
++block device
++socket
++symbolic link
++named pipe
++</property>
++                <property name="add_tearoffs">False</property>
++                <property name="focus_on_click">True</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">1</property>
++                <property name="bottom_attach">2</property>
++                <property name="x_options">fill</property>
++                <property name="y_options">fill</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkEntry" id="fcontextTypeEntry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="editable">True</property>
++                <property name="visibility">True</property>
++                <property name="max_length">0</property>
++                <property name="text" translatable="yes"></property>
++                <property name="has_frame">True</property>
++                <property name="invisible_char">*</property>
++                <property name="activates_default">False</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label31">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">MLS</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">3</property>
++                <property name="bottom_attach">4</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkEntry" id="fcontextMLSEntry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="editable">True</property>
++                <property name="visibility">True</property>
++                <property name="max_length">0</property>
++                <property name="text" translatable="yes"></property>
++                <property name="has_frame">True</property>
++                <property name="invisible_char">*</property>
++                <property name="activates_default">False</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">3</property>
++                <property name="bottom_attach">4</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="padding">5</property>
++            <property name="expand">True</property>
++            <property name="fill">True</property>
++          </packing>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">True</property>
++        <property name="fill">True</property>
++      </packing>
++      </child>
++    </widget>
++  </child>
++</widget>
++
++<widget class="GtkDialog" id="usersDialog">
++  <property name="title" translatable="yes">Add SELinux User</property>
++  <property name="type">GTK_WINDOW_TOPLEVEL</property>
++  <property name="window_position">GTK_WIN_POS_NONE</property>
++  <property name="modal">False</property>
++  <property name="resizable">True</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="decorated">True</property>
++  <property name="skip_taskbar_hint">False</property>
++  <property name="skip_pager_hint">False</property>
++  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
++  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
++  <property name="focus_on_map">True</property>
++  <property name="urgency_hint">False</property>
++  <property name="has_separator">True</property>
++
++  <child internal-child="vbox">
++    <widget class="GtkVBox" id="vbox9">
++      <property name="visible">True</property>
++      <property name="homogeneous">False</property>
++      <property name="spacing">0</property>
++
++      <child internal-child="action_area">
++      <widget class="GtkHButtonBox" id="hbuttonbox4">
++        <property name="visible">True</property>
++        <property name="layout_style">GTK_BUTTONBOX_END</property>
++
++        <child>
++          <widget class="GtkButton" id="button7">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-cancel</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-6</property>
++          </widget>
++        </child>
++
++        <child>
++          <widget class="GtkButton" id="button8">
++            <property name="visible">True</property>
++            <property name="can_default">True</property>
++            <property name="can_focus">True</property>
++            <property name="label">gtk-ok</property>
++            <property name="use_stock">True</property>
++            <property name="relief">GTK_RELIEF_NORMAL</property>
++            <property name="focus_on_click">True</property>
++            <property name="response_id">-5</property>
++          </widget>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">False</property>
++        <property name="fill">True</property>
++        <property name="pack_type">GTK_PACK_END</property>
++      </packing>
++      </child>
++
++      <child>
++      <widget class="GtkVBox" id="vbox10">
++        <property name="visible">True</property>
++        <property name="homogeneous">False</property>
++        <property name="spacing">0</property>
++
++        <child>
++          <widget class="GtkTable" id="table5">
++            <property name="visible">True</property>
++            <property name="n_rows">3</property>
++            <property name="n_columns">2</property>
++            <property name="homogeneous">False</property>
++            <property name="row_spacing">4</property>
++            <property name="column_spacing">6</property>
++
++            <child>
++              <widget class="GtkLabel" id="label32">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">SELinux User</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">0</property>
++                <property name="bottom_attach">1</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label34">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">MLS/MCS Range</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">1</property>
++                <property name="bottom_attach">2</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkEntry" id="mlsRangeEntry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="editable">True</property>
++                <property name="visibility">True</property>
++                <property name="max_length">0</property>
++                <property name="text" translatable="yes"></property>
++                <property name="has_frame">True</property>
++                <property name="invisible_char">*</property>
++                <property name="activates_default">False</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">1</property>
++                <property name="bottom_attach">2</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label36">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">SELinux Roles</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="left_attach">0</property>
++                <property name="right_attach">1</property>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++                <property name="x_options">fill</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkEntry" id="selinuxRolesEntry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="editable">True</property>
++                <property name="visibility">True</property>
++                <property name="max_length">0</property>
++                <property name="text" translatable="yes"></property>
++                <property name="has_frame">True</property>
++                <property name="invisible_char">*</property>
++                <property name="activates_default">False</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">2</property>
++                <property name="bottom_attach">3</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkEntry" id="selinuxUserEntry">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="editable">True</property>
++                <property name="visibility">True</property>
++                <property name="max_length">0</property>
++                <property name="text" translatable="yes"></property>
++                <property name="has_frame">True</property>
++                <property name="invisible_char">*</property>
++                <property name="activates_default">False</property>
++              </widget>
++              <packing>
++                <property name="left_attach">1</property>
++                <property name="right_attach">2</property>
++                <property name="top_attach">0</property>
++                <property name="bottom_attach">1</property>
++                <property name="y_options"></property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="padding">5</property>
++            <property name="expand">True</property>
++            <property name="fill">True</property>
++          </packing>
++        </child>
++      </widget>
++      <packing>
++        <property name="padding">0</property>
++        <property name="expand">True</property>
++        <property name="fill">True</property>
++      </packing>
++      </child>
++    </widget>
++  </child>
++</widget>
++
++<widget class="GnomeApp" id="mainWindow">
++  <property name="width_request">800</property>
++  <property name="height_request">500</property>
++  <property name="title" translatable="yes">SELinux Administration</property>
++  <property name="type">GTK_WINDOW_TOPLEVEL</property>
++  <property name="window_position">GTK_WIN_POS_NONE</property>
++  <property name="modal">False</property>
++  <property name="resizable">True</property>
++  <property name="destroy_with_parent">False</property>
++  <property name="icon">system-config-selinux.png</property>
++  <property name="decorated">True</property>
++  <property name="skip_taskbar_hint">False</property>
++  <property name="skip_pager_hint">False</property>
++  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
++  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
++  <property name="focus_on_map">True</property>
++  <property name="urgency_hint">False</property>
++  <property name="enable_layout_config">True</property>
++
++  <child internal-child="dock">
++    <widget class="BonoboDock" id="bonobodock2">
++      <property name="visible">True</property>
++      <property name="allow_floating">True</property>
++
++      <child>
++      <widget class="BonoboDockItem" id="bonobodockitem3">
++        <property name="visible">True</property>
++        <property name="shadow_type">GTK_SHADOW_NONE</property>
++
++        <child>
++          <widget class="GtkMenuBar" id="menubar1">
++            <property name="visible">True</property>
++            <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
++            <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
++
++            <child>
++              <widget class="GtkMenuItem" id="file1">
++                <property name="visible">True</property>
++                <property name="stock_item">GNOMEUIINFO_MENU_FILE_TREE</property>
++
++                <child>
++                  <widget class="GtkMenu" id="file1_menu">
++
++                    <child>
++                      <widget class="GtkImageMenuItem" id="add_menu_item">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">Add</property>
++                        <property name="use_underline">True</property>
++                        <signal name="activate" handler="on_add_clicked" last_modification_time="Sat, 17 Mar 2007 12:21:12 GMT"/>
++                        <accelerator key="a" modifiers="GDK_CONTROL_MASK" signal="activate"/>
++
++                        <child internal-child="image">
++                          <widget class="GtkImage" id="image13">
++                            <property name="visible">True</property>
++                            <property name="stock">gtk-add</property>
++                            <property name="icon_size">1</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xpad">0</property>
++                            <property name="ypad">0</property>
++                          </widget>
++                        </child>
++                      </widget>
++                    </child>
++
++                    <child>
++                      <widget class="GtkImageMenuItem" id="properties_menu_item">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">_Properties</property>
++                        <property name="use_underline">True</property>
++                        <signal name="activate" handler="on_properties_clicked" last_modification_time="Sat, 17 Mar 2007 12:21:12 GMT"/>
++                        <accelerator key="p" modifiers="GDK_CONTROL_MASK" signal="activate"/>
++
++                        <child internal-child="image">
++                          <widget class="GtkImage" id="image14">
++                            <property name="visible">True</property>
++                            <property name="stock">gtk-properties</property>
++                            <property name="icon_size">1</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xpad">0</property>
++                            <property name="ypad">0</property>
++                          </widget>
++                        </child>
++                      </widget>
++                    </child>
++
++                    <child>
++                      <widget class="GtkImageMenuItem" id="delete_menu_item">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">_Delete</property>
++                        <property name="use_underline">True</property>
++                        <signal name="activate" handler="on_delete_clicked" last_modification_time="Sat, 17 Mar 2007 12:21:12 GMT"/>
++                        <accelerator key="Delete" modifiers="0" signal="activate"/>
++
++                        <child internal-child="image">
++                          <widget class="GtkImage" id="image15">
++                            <property name="visible">True</property>
++                            <property name="stock">gtk-delete</property>
++                            <property name="icon_size">1</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xpad">0</property>
++                            <property name="ypad">0</property>
++                          </widget>
++                        </child>
++                      </widget>
++                    </child>
++
++                    <child>
++                      <widget class="GtkImageMenuItem" id="quit">
++                        <property name="visible">True</property>
++                        <property name="stock_item">GNOMEUIINFO_MENU_EXIT_ITEM</property>
++                        <signal name="activate" handler="on_quit_activate" last_modification_time="Fri, 06 Oct 2006 13:58:19 GMT"/>
++                      </widget>
++                    </child>
++                  </widget>
++                </child>
++              </widget>
++            </child>
++
++            <child>
++              <widget class="GtkMenuItem" id="help1">
++                <property name="visible">True</property>
++                <property name="stock_item">GNOMEUIINFO_MENU_HELP_TREE</property>
++
++                <child>
++                  <widget class="GtkMenu" id="help1_menu">
++
++                    <child>
++                      <widget class="GtkImageMenuItem" id="about">
++                        <property name="visible">True</property>
++                        <property name="stock_item">GNOMEUIINFO_MENU_ABOUT_ITEM</property>
++                        <signal name="activate" handler="on_about_activate" last_modification_time="Fri, 06 Oct 2006 13:58:02 GMT"/>
++                      </widget>
++                    </child>
++                  </widget>
++                </child>
++              </widget>
++            </child>
++          </widget>
++        </child>
++      </widget>
++      <packing>
++        <property name="placement">BONOBO_DOCK_TOP</property>
++        <property name="band">0</property>
++        <property name="position">0</property>
++        <property name="offset">0</property>
++        <property name="behavior">BONOBO_DOCK_ITEM_BEH_EXCLUSIVE|BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL|BONOBO_DOCK_ITEM_BEH_LOCKED</property>
++      </packing>
++      </child>
++
++      <child>
++      <widget class="GtkHPaned" id="hpaned1">
++        <property name="visible">True</property>
++        <property name="can_focus">True</property>
++
++        <child>
++          <widget class="GtkFrame" id="frame1">
++            <property name="border_width">5</property>
++            <property name="visible">True</property>
++            <property name="label_xalign">0</property>
++            <property name="label_yalign">0.5</property>
++            <property name="shadow_type">GTK_SHADOW_NONE</property>
++
++            <child>
++              <widget class="GtkAlignment" id="alignment1">
++                <property name="visible">True</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xscale">1</property>
++                <property name="yscale">1</property>
++                <property name="top_padding">0</property>
++                <property name="bottom_padding">0</property>
++                <property name="left_padding">12</property>
++                <property name="right_padding">0</property>
++
++                <child>
++                  <widget class="GtkTreeView" id="selectView">
++                    <property name="visible">True</property>
++                    <property name="tooltip" translatable="yes">Select Management Object</property>
++                    <property name="can_focus">True</property>
++                    <property name="headers_visible">False</property>
++                    <property name="rules_hint">False</property>
++                    <property name="reorderable">False</property>
++                    <property name="enable_search">True</property>
++                    <property name="fixed_height_mode">False</property>
++                    <property name="hover_selection">False</property>
++                    <property name="hover_expand">False</property>
++                  </widget>
++                </child>
++              </widget>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label45">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">&lt;b&gt;Select:&lt;/b&gt;</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">True</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="type">label_item</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="shrink">False</property>
++            <property name="resize">True</property>
++          </packing>
++        </child>
++
++        <child>
++          <widget class="GtkNotebook" id="notebook">
++            <property name="visible">True</property>
++            <property name="show_tabs">False</property>
++            <property name="show_border">True</property>
++            <property name="tab_pos">GTK_POS_TOP</property>
++            <property name="scrollable">False</property>
++            <property name="enable_popup">False</property>
++
++            <child>
++              <widget class="GtkVBox" id="vbox1">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">0</property>
++
++                <child>
++                  <widget class="GtkTable" id="table6">
++                    <property name="visible">True</property>
++                    <property name="n_rows">4</property>
++                    <property name="n_columns">2</property>
++                    <property name="homogeneous">False</property>
++                    <property name="row_spacing">5</property>
++                    <property name="column_spacing">5</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label29">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">System Default Enforcing Mode</property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="left_attach">0</property>
++                        <property name="right_attach">1</property>
++                        <property name="top_attach">0</property>
++                        <property name="bottom_attach">1</property>
++                        <property name="x_options">fill</property>
++                        <property name="y_options"></property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkComboBox" id="enabledOptionMenu">
++                        <property name="visible">True</property>
++                        <property name="items" translatable="yes">Disabled
++Permissive
++Enforcing
++</property>
++                        <property name="add_tearoffs">False</property>
++                        <property name="focus_on_click">True</property>
++                      </widget>
++                      <packing>
++                        <property name="left_attach">1</property>
++                        <property name="right_attach">2</property>
++                        <property name="top_attach">0</property>
++                        <property name="bottom_attach">1</property>
++                        <property name="y_options">fill</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkLabel" id="label48">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">Current Enforcing Mode</property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="left_attach">0</property>
++                        <property name="right_attach">1</property>
++                        <property name="top_attach">1</property>
++                        <property name="bottom_attach">2</property>
++                        <property name="x_options">fill</property>
++                        <property name="y_options"></property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkComboBox" id="currentOptionMenu">
++                        <property name="visible">True</property>
++                        <property name="items" translatable="yes"></property>
++                        <property name="add_tearoffs">False</property>
++                        <property name="focus_on_click">True</property>
++                      </widget>
++                      <packing>
++                        <property name="left_attach">1</property>
++                        <property name="right_attach">2</property>
++                        <property name="top_attach">1</property>
++                        <property name="bottom_attach">2</property>
++                        <property name="x_options">fill</property>
++                        <property name="y_options">fill</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkLabel" id="typeLabel">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">System Default Policy Type: </property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="left_attach">0</property>
++                        <property name="right_attach">1</property>
++                        <property name="top_attach">2</property>
++                        <property name="bottom_attach">3</property>
++                        <property name="x_options">fill</property>
++                        <property name="y_options"></property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkComboBox" id="selinuxTypeOptionMenu">
++                        <property name="visible">True</property>
++                        <property name="items" translatable="yes"></property>
++                        <property name="add_tearoffs">False</property>
++                        <property name="focus_on_click">True</property>
++                      </widget>
++                      <packing>
++                        <property name="left_attach">1</property>
++                        <property name="right_attach">2</property>
++                        <property name="top_attach">2</property>
++                        <property name="bottom_attach">3</property>
++                        <property name="x_options">fill</property>
++                        <property name="y_options">fill</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkCheckButton" id="relabelCheckbutton">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Select if you wish to relabel then entire file system on next reboot.  Relabeling can take a very long time, depending on the size of the system.  If you are changing policy types or going from disabled to enforcing, a relabel is required.</property>
++                        <property name="can_focus">True</property>
++                        <property name="relief">GTK_RELIEF_NORMAL</property>
++                        <property name="focus_on_click">True</property>
++                        <property name="active">False</property>
++                        <property name="inconsistent">False</property>
++                        <property name="draw_indicator">True</property>
++
++                        <child>
++                          <widget class="GtkAlignment" id="alignment4">
++                            <property name="visible">True</property>
++                            <property name="xalign">0.5</property>
++                            <property name="yalign">0.5</property>
++                            <property name="xscale">0</property>
++                            <property name="yscale">0</property>
++                            <property name="top_padding">0</property>
++                            <property name="bottom_padding">0</property>
++                            <property name="left_padding">0</property>
++                            <property name="right_padding">0</property>
++
++                            <child>
++                              <widget class="GtkHBox" id="hbox6">
++                                <property name="visible">True</property>
++                                <property name="homogeneous">False</property>
++                                <property name="spacing">2</property>
++
++                                <child>
++                                  <widget class="GtkImage" id="image2">
++                                    <property name="visible">True</property>
++                                    <property name="stock">gtk-refresh</property>
++                                    <property name="icon_size">4</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++
++                                <child>
++                                  <widget class="GtkLabel" id="label49">
++                                    <property name="visible">True</property>
++                                    <property name="label" translatable="yes">Relabel on next reboot.</property>
++                                    <property name="use_underline">True</property>
++                                    <property name="use_markup">False</property>
++                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
++                                    <property name="wrap">False</property>
++                                    <property name="selectable">False</property>
++                                    <property name="xalign">0.5</property>
++                                    <property name="yalign">0.5</property>
++                                    <property name="xpad">0</property>
++                                    <property name="ypad">0</property>
++                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                                    <property name="width_chars">-1</property>
++                                    <property name="single_line_mode">False</property>
++                                    <property name="angle">0</property>
++                                  </widget>
++                                  <packing>
++                                    <property name="padding">0</property>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                  </packing>
++                                </child>
++                              </widget>
++                            </child>
++                          </widget>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="left_attach">0</property>
++                        <property name="right_attach">2</property>
++                        <property name="top_attach">3</property>
++                        <property name="bottom_attach">4</property>
++                        <property name="x_options">fill</property>
++                        <property name="y_options">fill</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="tab_expand">False</property>
++                <property name="tab_fill">True</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label37">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">label37</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="type">tab</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox18">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">0</property>
++
++                <child>
++                  <widget class="GtkToolbar" id="toolbar9">
++                    <property name="visible">True</property>
++                    <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
++                    <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
++                    <property name="tooltips">True</property>
++                    <property name="show_arrow">True</property>
++
++                    <child>
++                      <widget class="GtkToolButton" id="booleanRevertButton">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Revert boolean setting to system default</property>
++                        <property name="stock_id">gtk-revert-to-saved</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton34">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Toggle between Customized and All Booleans</property>
++                        <property name="label" translatable="yes">Customized</property>
++                        <property name="use_underline">True</property>
++                        <property name="stock_id">gtk-find</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_local_clicked" last_modification_time="Wed, 19 Sep 2007 19:14:08 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="hbox7">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label51">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">Filter</property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="padding">10</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkEntry" id="booleansFilter">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="editable">True</property>
++                        <property name="visibility">True</property>
++                        <property name="max_length">0</property>
++                        <property name="text" translatable="yes"></property>
++                        <property name="has_frame">True</property>
++                        <property name="invisible_char">•</property>
++                        <property name="activates_default">False</property>
++                        <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">10</property>
++                    <property name="expand">False</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkScrolledWindow" id="scrolledwindow18">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="shadow_type">GTK_SHADOW_NONE</property>
++                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                    <child>
++                      <widget class="GtkTreeView" id="booleansView">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Boolean</property>
++                        <property name="can_focus">True</property>
++                        <property name="headers_visible">True</property>
++                        <property name="rules_hint">False</property>
++                        <property name="reorderable">False</property>
++                        <property name="enable_search">True</property>
++                        <property name="fixed_height_mode">False</property>
++                        <property name="hover_selection">False</property>
++                        <property name="hover_expand">False</property>
++                      </widget>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="tab_expand">False</property>
++                <property name="tab_fill">True</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label50">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">label50</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="type">tab</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox11">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">0</property>
++
++                <child>
++                  <widget class="GtkToolbar" id="toolbar2">
++                    <property name="visible">True</property>
++                    <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
++                    <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
++                    <property name="tooltips">True</property>
++                    <property name="show_arrow">True</property>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton5">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Add File Context</property>
++                        <property name="stock_id">gtk-add</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton6">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Modify File Context</property>
++                        <property name="stock_id">gtk-properties</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_properties_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:51 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton7">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Delete File Context</property>
++                        <property name="stock_id">gtk-delete</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="customizedButton">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Toggle between all and customized file context</property>
++                        <property name="label" translatable="yes">Customized</property>
++                        <property name="use_underline">True</property>
++                        <property name="stock_id">gtk-find</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_local_clicked" last_modification_time="Wed, 19 Sep 2007 19:14:08 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="hbox14">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label58">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">Filter</property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="padding">10</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkEntry" id="fcontextFilterEntry">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="editable">True</property>
++                        <property name="visibility">True</property>
++                        <property name="max_length">0</property>
++                        <property name="text" translatable="yes"></property>
++                        <property name="has_frame">True</property>
++                        <property name="invisible_char">•</property>
++                        <property name="activates_default">False</property>
++                        <signal name="changed" handler="on_fcontextFilter_changed" last_modification_time="Mon, 05 Nov 2007 21:22:11 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkScrolledWindow" id="scrolledwindow19">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="shadow_type">GTK_SHADOW_NONE</property>
++                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                    <child>
++                      <widget class="GtkTreeView" id="fcontextView">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">File Labeling</property>
++                        <property name="can_focus">True</property>
++                        <property name="headers_visible">True</property>
++                        <property name="rules_hint">False</property>
++                        <property name="reorderable">False</property>
++                        <property name="enable_search">True</property>
++                        <property name="fixed_height_mode">False</property>
++                        <property name="hover_selection">False</property>
++                        <property name="hover_expand">False</property>
++                      </widget>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="tab_expand">False</property>
++                <property name="tab_fill">True</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label38">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">label38</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="type">tab</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox12">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">0</property>
++
++                <child>
++                  <widget class="GtkToolbar" id="toolbar3">
++                    <property name="visible">True</property>
++                    <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
++                    <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
++                    <property name="tooltips">True</property>
++                    <property name="show_arrow">True</property>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton8">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Add SELinux User Mapping</property>
++                        <property name="stock_id">gtk-add</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton29">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Modify SELinux User Mapping</property>
++                        <property name="stock_id">gtk-properties</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_properties_clicked" last_modification_time="Wed, 15 Nov 2006 16:38:33 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton10">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Delete SELinux User Mapping</property>
++                        <property name="stock_id">gtk-delete</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="hbox13">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label57">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">Filter</property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="padding">10</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkEntry" id="loginsFilterEntry">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="editable">True</property>
++                        <property name="visibility">True</property>
++                        <property name="max_length">0</property>
++                        <property name="text" translatable="yes"></property>
++                        <property name="has_frame">True</property>
++                        <property name="invisible_char">•</property>
++                        <property name="activates_default">False</property>
++                        <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">5</property>
++                    <property name="expand">False</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkScrolledWindow" id="scrolledwindow16">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="shadow_type">GTK_SHADOW_NONE</property>
++                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                    <child>
++                      <widget class="GtkTreeView" id="loginsView">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">User Mapping</property>
++                        <property name="can_focus">True</property>
++                        <property name="headers_visible">True</property>
++                        <property name="rules_hint">False</property>
++                        <property name="reorderable">False</property>
++                        <property name="enable_search">True</property>
++                        <property name="fixed_height_mode">False</property>
++                        <property name="hover_selection">False</property>
++                        <property name="hover_expand">False</property>
++                      </widget>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="tab_expand">False</property>
++                <property name="tab_fill">True</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label39">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">label39</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="type">tab</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox14">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">0</property>
++
++                <child>
++                  <widget class="GtkToolbar" id="toolbar5">
++                    <property name="visible">True</property>
++                    <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
++                    <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
++                    <property name="tooltips">True</property>
++                    <property name="show_arrow">True</property>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton14">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Add User</property>
++                        <property name="stock_id">gtk-add</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton15">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Modify User</property>
++                        <property name="stock_id">gtk-properties</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_properties_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:51 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton16">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Delete User</property>
++                        <property name="stock_id">gtk-delete</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="hbox12">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label56">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">Filter</property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="padding">10</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkEntry" id="usersFilterEntry">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="editable">True</property>
++                        <property name="visibility">True</property>
++                        <property name="max_length">0</property>
++                        <property name="text" translatable="yes"></property>
++                        <property name="has_frame">True</property>
++                        <property name="invisible_char">•</property>
++                        <property name="activates_default">False</property>
++                        <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">5</property>
++                    <property name="expand">False</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkScrolledWindow" id="scrolledwindow11">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="shadow_type">GTK_SHADOW_NONE</property>
++                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                    <child>
++                      <widget class="GtkTreeView" id="usersView">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">SELinux User</property>
++                        <property name="can_focus">True</property>
++                        <property name="headers_visible">True</property>
++                        <property name="rules_hint">False</property>
++                        <property name="reorderable">False</property>
++                        <property name="enable_search">True</property>
++                        <property name="fixed_height_mode">False</property>
++                        <property name="hover_selection">False</property>
++                        <property name="hover_expand">False</property>
++                      </widget>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="tab_expand">False</property>
++                <property name="tab_fill">True</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label41">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">label41</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="type">tab</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox15">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">0</property>
++
++                <child>
++                  <widget class="GtkToolbar" id="toolbar6">
++                    <property name="visible">True</property>
++                    <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
++                    <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
++                    <property name="tooltips">False</property>
++                    <property name="show_arrow">True</property>
++
++                    <child>
++                      <widget class="GtkToolButton" id="portsAddButton">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Add Network Port</property>
++                        <property name="stock_id">gtk-add</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="portsPropertiesButton">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Edit Network Port</property>
++                        <property name="stock_id">gtk-properties</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_properties_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:51 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="portsDeleteButton">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Delete Network Port</property>
++                        <property name="stock_id">gtk-delete</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolItem" id="toolitem2">
++                        <property name="visible">True</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++
++                        <child>
++                          <widget class="GtkVSeparator" id="vseparator1">
++                            <property name="width_request">32</property>
++                            <property name="visible">True</property>
++                          </widget>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="listViewButton">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Toggle between Customized and All Ports</property>
++                        <property name="label" translatable="yes">Group View</property>
++                        <property name="use_underline">True</property>
++                        <property name="stock_id">gtk-indent</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_group_clicked" last_modification_time="Mon, 01 Oct 2007 21:31:19 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton35">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Toggle between Customized and All Ports</property>
++                        <property name="label" translatable="yes">Customized</property>
++                        <property name="use_underline">True</property>
++                        <property name="stock_id">gtk-find</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_local_clicked" last_modification_time="Wed, 19 Sep 2007 19:14:08 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="hbox9">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label53">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">Filter</property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="padding">10</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkEntry" id="portsFilterEntry">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="editable">True</property>
++                        <property name="visibility">True</property>
++                        <property name="max_length">0</property>
++                        <property name="text" translatable="yes"></property>
++                        <property name="has_frame">True</property>
++                        <property name="invisible_char">•</property>
++                        <property name="activates_default">False</property>
++                        <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">5</property>
++                    <property name="expand">False</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkScrolledWindow" id="scrolledwindow13">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="shadow_type">GTK_SHADOW_NONE</property>
++                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                    <child>
++                      <widget class="GtkTreeView" id="portsView">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Network Port</property>
++                        <property name="can_focus">True</property>
++                        <property name="headers_visible">True</property>
++                        <property name="rules_hint">False</property>
++                        <property name="reorderable">False</property>
++                        <property name="enable_search">True</property>
++                        <property name="fixed_height_mode">False</property>
++                        <property name="hover_selection">False</property>
++                        <property name="hover_expand">False</property>
++                      </widget>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="tab_expand">False</property>
++                <property name="tab_fill">True</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label42">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">label42</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="type">tab</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox17">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">0</property>
++
++                <child>
++                  <widget class="GtkToolbar" id="toolbar8">
++                    <property name="visible">True</property>
++                    <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
++                    <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
++                    <property name="tooltips">True</property>
++                    <property name="show_arrow">True</property>
++
++                    <child>
++                      <widget class="GtkToolButton" id="newModuleButton">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Generate new policy module</property>
++                        <property name="stock_id">gtk-new</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_new_clicked" last_modification_time="Sat, 17 Mar 2007 15:53:29 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton23">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Load policy module</property>
++                        <property name="stock_id">gtk-add</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="toolbutton25">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Remove loadable policy module</property>
++                        <property name="stock_id">gtk-remove</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolItem" id="toolitem3">
++                        <property name="visible">True</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++
++                        <child>
++                          <widget class="GtkVSeparator" id="vseparator2">
++                            <property name="width_request">10</property>
++                            <property name="visible">True</property>
++                          </widget>
++                        </child>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="enableAuditButton">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Enable/Disable additional audit rules, that are normally not reported in the log files.</property>
++                        <property name="label" translatable="yes">Enable Audit</property>
++                        <property name="use_underline">True</property>
++                        <property name="stock_id">gtk-zoom-in</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_disable_audit_clicked" last_modification_time="Wed, 15 Nov 2006 16:29:34 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="hbox11">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label55">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">Filter</property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="padding">10</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkEntry" id="modulesFilterEntry">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="editable">True</property>
++                        <property name="visibility">True</property>
++                        <property name="max_length">0</property>
++                        <property name="text" translatable="yes"></property>
++                        <property name="has_frame">True</property>
++                        <property name="invisible_char">•</property>
++                        <property name="activates_default">False</property>
++                        <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">5</property>
++                    <property name="expand">False</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkScrolledWindow" id="scrolledwindow15">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="shadow_type">GTK_SHADOW_NONE</property>
++                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                    <child>
++                      <widget class="GtkTreeView" id="modulesView">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Policy Module</property>
++                        <property name="can_focus">True</property>
++                        <property name="headers_visible">True</property>
++                        <property name="rules_hint">False</property>
++                        <property name="reorderable">False</property>
++                        <property name="enable_search">True</property>
++                        <property name="fixed_height_mode">False</property>
++                        <property name="hover_selection">False</property>
++                        <property name="hover_expand">False</property>
++                      </widget>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="tab_expand">False</property>
++                <property name="tab_fill">True</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label44">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">label44</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="type">tab</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkVBox" id="vbox19">
++                <property name="visible">True</property>
++                <property name="homogeneous">False</property>
++                <property name="spacing">0</property>
++
++                <child>
++                  <widget class="GtkToolbar" id="toolbar10">
++                    <property name="visible">True</property>
++                    <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
++                    <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
++                    <property name="tooltips">True</property>
++                    <property name="show_arrow">True</property>
++
++                    <child>
++                      <widget class="GtkToolButton" id="permissiveButton">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Change process mode to permissive.</property>
++                        <property name="label" translatable="yes">Permissive</property>
++                        <property name="use_underline">True</property>
++                        <property name="stock_id">gtk-dialog-warning</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkToolButton" id="enforcingButton">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Change process mode to enforcing</property>
++                        <property name="label" translatable="yes">Enforcing</property>
++                        <property name="use_underline">True</property>
++                        <property name="stock_id">gtk-dialog-error</property>
++                        <property name="visible_horizontal">True</property>
++                        <property name="visible_vertical">True</property>
++                        <property name="is_important">False</property>
++                        <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="homogeneous">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkHBox" id="hbox15">
++                    <property name="visible">True</property>
++                    <property name="homogeneous">False</property>
++                    <property name="spacing">0</property>
++
++                    <child>
++                      <widget class="GtkLabel" id="label60">
++                        <property name="visible">True</property>
++                        <property name="label" translatable="yes">Filter</property>
++                        <property name="use_underline">False</property>
++                        <property name="use_markup">False</property>
++                        <property name="justify">GTK_JUSTIFY_LEFT</property>
++                        <property name="wrap">False</property>
++                        <property name="selectable">False</property>
++                        <property name="xalign">0.5</property>
++                        <property name="yalign">0.5</property>
++                        <property name="xpad">0</property>
++                        <property name="ypad">0</property>
++                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                        <property name="width_chars">-1</property>
++                        <property name="single_line_mode">False</property>
++                        <property name="angle">0</property>
++                      </widget>
++                      <packing>
++                        <property name="padding">10</property>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                      </packing>
++                    </child>
++
++                    <child>
++                      <widget class="GtkEntry" id="domainsFilterEntry">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="editable">True</property>
++                        <property name="visibility">True</property>
++                        <property name="max_length">0</property>
++                        <property name="text" translatable="yes"></property>
++                        <property name="has_frame">True</property>
++                        <property name="invisible_char">•</property>
++                        <property name="activates_default">False</property>
++                        <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
++                      </widget>
++                      <packing>
++                        <property name="padding">0</property>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
++                      </packing>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">5</property>
++                    <property name="expand">False</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++
++                <child>
++                  <widget class="GtkScrolledWindow" id="scrolledwindow20">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
++                    <property name="shadow_type">GTK_SHADOW_NONE</property>
++                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++                    <child>
++                      <widget class="GtkTreeView" id="domainsView">
++                        <property name="visible">True</property>
++                        <property name="tooltip" translatable="yes">Process Domain</property>
++                        <property name="can_focus">True</property>
++                        <property name="headers_visible">True</property>
++                        <property name="rules_hint">False</property>
++                        <property name="reorderable">False</property>
++                        <property name="enable_search">True</property>
++                        <property name="fixed_height_mode">False</property>
++                        <property name="hover_selection">False</property>
++                        <property name="hover_expand">False</property>
++                      </widget>
++                    </child>
++                  </widget>
++                  <packing>
++                    <property name="padding">0</property>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                  </packing>
++                </child>
++              </widget>
++              <packing>
++                <property name="tab_expand">False</property>
++                <property name="tab_fill">True</property>
++              </packing>
++            </child>
++
++            <child>
++              <widget class="GtkLabel" id="label59">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">label59</property>
++                <property name="use_underline">False</property>
++                <property name="use_markup">False</property>
++                <property name="justify">GTK_JUSTIFY_LEFT</property>
++                <property name="wrap">False</property>
++                <property name="selectable">False</property>
++                <property name="xalign">0.5</property>
++                <property name="yalign">0.5</property>
++                <property name="xpad">0</property>
++                <property name="ypad">0</property>
++                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++                <property name="width_chars">-1</property>
++                <property name="single_line_mode">False</property>
++                <property name="angle">0</property>
++              </widget>
++              <packing>
++                <property name="type">tab</property>
++              </packing>
++            </child>
++          </widget>
++          <packing>
++            <property name="shrink">True</property>
++            <property name="resize">True</property>
++          </packing>
++        </child>
++      </widget>
++      </child>
++    </widget>
++    <packing>
++      <property name="padding">0</property>
++      <property name="expand">True</property>
++      <property name="fill">True</property>
++    </packing>
++  </child>
++
++  <child internal-child="appbar">
++    <widget class="GnomeAppBar" id="appbar2">
++      <property name="visible">True</property>
++      <property name="has_progress">True</property>
++      <property name="has_status">True</property>
++    </widget>
++    <packing>
++      <property name="padding">0</property>
++      <property name="expand">True</property>
++      <property name="fill">True</property>
++    </packing>
++  </child>
++</widget>
++
++</glade-interface>
+diff --git a/policycoreutils/gui/system-config-selinux.py b/policycoreutils/gui/system-config-selinux.py
+new file mode 100644
+index 0000000..f080dd9
+--- /dev/null
++++ b/policycoreutils/gui/system-config-selinux.py
+@@ -0,0 +1,187 @@
++#!/usr/bin/python -Es
++#
++# system-config-selinux.py - GUI for SELinux Config tool in system-config-selinux
++#
++# Dan Walsh <dwalsh@redhat.com>
++#
++# Copyright 2006-2009 Red Hat, 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.
++#
++import signal
++import string
++import gtk
++import gtk.glade
++import os
++import gobject
++import gnome
++import sys
++import statusPage
++import booleansPage
++import loginsPage
++import usersPage
++import portsPage
++import modulesPage
++import domainsPage
++import fcontextPage
++import selinux
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME,
++                    localedir="/usr/share/locale",
++                    unicode=False,
++                    codeset = 'utf-8')
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++gnome.program_init("SELinux Management Tool", "5")
++
++version = "1.0"
++
++sys.path.append('/usr/share/system-config-selinux')
++
++
++
++##
++## Pull in the Glade file
++##
++if os.access("system-config-selinux.glade", os.F_OK):
++    xml = gtk.glade.XML ("system-config-selinux.glade", domain=PROGNAME)
++else:
++    xml = gtk.glade.XML ("/usr/share/system-config-selinux/system-config-selinux.glade", domain=PROGNAME)
++
++class childWindow:
++    def __init__(self):
++        self.tabs=[]
++        self.xml = xml
++        xml.signal_connect("on_quit_activate", self.destroy)
++        xml.signal_connect("on_delete_clicked", self.delete)
++        xml.signal_connect("on_add_clicked", self.add)
++        xml.signal_connect("on_properties_clicked", self.properties)
++        xml.signal_connect("on_local_clicked", self.on_local_clicked)
++        self.add_page(statusPage.statusPage(xml))
++        if selinux.is_selinux_enabled() > 0:
++            try:
++                self.add_page(booleansPage.booleansPage(xml))
++                self.add_page(fcontextPage.fcontextPage(xml))
++                self.add_page(loginsPage.loginsPage(xml))
++                self.add_page(usersPage.usersPage(xml))
++                self.add_page(portsPage.portsPage(xml))
++                self.add_page(modulesPage.modulesPage(xml)) # modules
++                self.add_page(domainsPage.domainsPage(xml)) # domains
++            except ValueError, e:
++                self.error(e.message)
++
++        xml.signal_connect("on_quit_activate", self.destroy)
++        xml.signal_connect("on_policy_activate", self.policy)
++        xml.signal_connect("on_logging_activate", self.logging)
++        xml.signal_connect("on_about_activate", self.on_about_activate)
++
++        self.add_menu = xml.get_widget("add_menu_item")
++        self.properties_menu = xml.get_widget("properties_menu_item")
++        self.delete_menu = xml.get_widget("delete_menu_item")
++
++    def error(self, message):
++        dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR,
++                                gtk.BUTTONS_CLOSE,
++                                message)
++        dlg.set_position(gtk.WIN_POS_MOUSE)
++        dlg.show_all()
++        dlg.run()
++        dlg.destroy()
++
++    def add_page(self, page):
++        self.tabs.append(page)
++        
++    def policy(self, args):
++        os.spawnl(os.P_NOWAIT, "/usr/share/system-config-selinux/semanagegui.py")
++    def logging(self, args):
++        os.spawnl(os.P_NOWAIT, "/usr/bin/seaudit")
++    
++    def delete(self, args):
++        self.tabs[self.notebook.get_current_page()].deleteDialog()
++
++    def add(self, args):
++        self.tabs[self.notebook.get_current_page()].addDialog()
++
++    def properties(self, args):
++        self.tabs[self.notebook.get_current_page()].propertiesDialog()
++
++    def on_local_clicked(self, button):
++        self.tabs[self.notebook.get_current_page()].on_local_clicked(button)
++
++    def on_about_activate(self, args):
++        dlg = xml.get_widget ("aboutWindow")
++        dlg.run ()
++        dlg.hide ()
++
++    def destroy(self, args):
++        gtk.main_quit()
++
++    def use_menus(self, use_menus):
++        self.add_menu.set_sensitive(use_menus)
++        self.properties_menu.set_sensitive(use_menus)
++        self.delete_menu.set_sensitive(use_menus)
++
++    def itemSelected(self, selection):
++        store, rows = selection.get_selected_rows()
++        if store != None and len(rows) > 0:
++            self.notebook.set_current_page(rows[0][0])
++            self.use_menus(self.tabs[rows[0][0]].use_menus())
++        else:
++            self.notebook.set_current_page(0)
++            self.use_menus(self.tabs[0].use_menus())
++            
++
++    def setupScreen(self):
++        # Bring in widgets from glade file.
++        self.mainWindow = self.xml.get_widget("mainWindow")
++        self.notebook = self.xml.get_widget("notebook")
++        self.view = self.xml.get_widget("selectView")
++        self.view.get_selection().connect("changed", self.itemSelected)
++        self.store = gtk.ListStore(gobject.TYPE_STRING)
++        self.view.set_model(self.store)
++        col = gtk.TreeViewColumn("",  gtk.CellRendererText(), text = 0)
++        col.set_resizable(True)
++        self.view.append_column(col)
++
++        for page in self.tabs:
++            iter = self.store.append()
++            self.store.set_value(iter, 0, page.get_description())
++        self.view.get_selection().select_path ((0,))
++
++    def stand_alone(self):
++        desktopName = _("Configue SELinux")
++
++        self.setupScreen()
++
++        self.mainWindow.connect("destroy", self.destroy)
++
++        self.mainWindow.show_all()
++        gtk.main()
++
++if __name__ == "__main__":
++    signal.signal (signal.SIGINT, signal.SIG_DFL)
++
++    app = childWindow()
++    app.stand_alone()
+diff --git a/policycoreutils/gui/templates/__init__.py b/policycoreutils/gui/templates/__init__.py
+new file mode 100644
+index 0000000..683666f
+--- /dev/null
++++ b/policycoreutils/gui/templates/__init__.py
+@@ -0,0 +1,18 @@
++#
++# Copyright (C) 2007-2012 Red Hat
++#
++# 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.
++#
++
+diff --git a/policycoreutils/gui/templates/boolean.py b/policycoreutils/gui/templates/boolean.py
+new file mode 100644
+index 0000000..f7af4d8
+--- /dev/null
++++ b/policycoreutils/gui/templates/boolean.py
+@@ -0,0 +1,40 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### boolean Template File ###########################
++
++te_boolean="""
++## <desc>
++##    <p>
++##    DESCRIPTION
++##    </p>
++## </desc>
++gen_tunable(BOOLEAN, false)
++"""
++
++te_rules="""
++tunable_policy(`BOOLEAN',`
++#TRUE
++',`
++#FALSE
++')
++"""
++
+diff --git a/policycoreutils/gui/templates/etc_rw.py b/policycoreutils/gui/templates/etc_rw.py
+new file mode 100644
+index 0000000..0d3dbfe
+--- /dev/null
++++ b/policycoreutils/gui/templates/etc_rw.py
+@@ -0,0 +1,112 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### etc_rw Template File #############################
++
++########################### Type Enforcement File #############################
++te_types="""
++type TEMPLATETYPE_etc_rw_t;
++files_type(TEMPLATETYPE_etc_rw_t)
++"""
++te_rules="""
++manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_etc_rw_t, TEMPLATETYPE_etc_rw_t)
++manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_etc_rw_t, TEMPLATETYPE_etc_rw_t)
++files_etc_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_etc_rw_t, { dir file })
++"""
++
++########################### Interface File #############################
++if_rules="""
++########################################
++## <summary>
++##    Search TEMPLATETYPE conf directories.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_search_conf',`
++      gen_require(`
++              type TEMPLATETYPE_etc_rw_t;
++      ')
++
++      allow $1 TEMPLATETYPE_etc_rw_t:dir search_dir_perms;
++      files_search_etc($1)
++')
++
++########################################
++## <summary>
++##    Read TEMPLATETYPE conf files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_read_conf_files',`
++      gen_require(`
++              type TEMPLATETYPE_etc_rw_t;
++      ')
++
++      allow $1 TEMPLATETYPE_etc_rw_t:file read_file_perms;
++      allow $1 TEMPLATETYPE_etc_rw_t:dir list_dir_perms;
++      files_search_etc($1)
++')
++
++########################################
++## <summary>
++##    Manage TEMPLATETYPE conf files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_manage_conf_files',`
++      gen_require(`
++              type TEMPLATETYPE_etc_rw_t;
++      ')
++
++      manage_files_pattern($1, TEMPLATETYPE_etc_rw_t, TEMPLATETYPE_etc_rw_t)
++      files_search_etc($1)
++')
++
++"""
++
++if_admin_types="""
++              type TEMPLATETYPE_etc_rw_t;"""
++
++if_admin_rules="""
++      files_search_etc($1)
++      admin_pattern($1, TEMPLATETYPE_etc_rw_t)
++"""
++
++########################### File Context ##################################
++fc_file="""\
++FILENAME              --      gen_context(system_u:object_r:TEMPLATETYPE_etc_rw_t,s0)
++"""
++
++fc_dir="""\
++FILENAME(/.*)?                gen_context(system_u:object_r:TEMPLATETYPE_etc_rw_t,s0)
++"""
+diff --git a/policycoreutils/gui/templates/executable.py b/policycoreutils/gui/templates/executable.py
+new file mode 100644
+index 0000000..5b39d77
+--- /dev/null
++++ b/policycoreutils/gui/templates/executable.py
+@@ -0,0 +1,445 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### Type Enforcement File #############################
++te_daemon_types="""\
++policy_module(TEMPLATETYPE, 1.0.0)
++
++########################################
++#
++# Declarations
++#
++
++type TEMPLATETYPE_t;
++type TEMPLATETYPE_exec_t;
++init_daemon_domain(TEMPLATETYPE_t, TEMPLATETYPE_exec_t)
++
++permissive TEMPLATETYPE_t;
++"""
++
++te_initscript_types="""
++type TEMPLATETYPE_initrc_exec_t;
++init_script_file(TEMPLATETYPE_initrc_exec_t)
++"""
++
++te_dbusd_types="""\
++policy_module(TEMPLATETYPE, 1.0.0)
++
++########################################
++#
++# Declarations
++#
++
++type TEMPLATETYPE_t;
++type TEMPLATETYPE_exec_t;
++dbus_system_domain(TEMPLATETYPE_t, TEMPLATETYPE_exec_t)
++
++permissive TEMPLATETYPE_t;
++"""
++
++te_inetd_types="""\
++policy_module(TEMPLATETYPE, 1.0.0)
++
++########################################
++#
++# Declarations
++#
++
++type TEMPLATETYPE_t;
++type TEMPLATETYPE_exec_t;
++inetd_service_domain(TEMPLATETYPE_t, TEMPLATETYPE_exec_t)
++
++permissive TEMPLATETYPE_t;
++"""
++
++te_userapp_types="""\
++policy_module(TEMPLATETYPE, 1.0.0)
++
++########################################
++#
++# Declarations
++#
++
++type TEMPLATETYPE_t;
++type TEMPLATETYPE_exec_t;
++application_domain(TEMPLATETYPE_t, TEMPLATETYPE_exec_t)
++role system_r types TEMPLATETYPE_t;
++
++permissive TEMPLATETYPE_t;
++"""
++
++te_sandbox_types="""\
++policy_module(TEMPLATETYPE, 1.0.0)
++
++########################################
++#
++# Declarations
++#
++
++sandbox_x_domain_template(TEMPLATETYPE)
++
++permissive TEMPLATETYPE_t;
++permissive TEMPLATETYPE_client_t;
++
++"""
++
++te_cgi_types="""\
++policy_module(TEMPLATETYPE, 1.0.0)
++
++########################################
++#
++# Declarations
++#
++
++apache_content_template(TEMPLATETYPE)
++
++permissive httpd_TEMPLATETYPE_script_t;
++"""
++
++te_daemon_rules="""\
++allow TEMPLATETYPE_t self:fifo_file rw_fifo_file_perms;
++allow TEMPLATETYPE_t self:unix_stream_socket create_stream_socket_perms;
++"""
++
++te_inetd_rules="""
++"""
++
++te_dbusd_rules="""
++"""
++
++te_userapp_rules="""
++allow TEMPLATETYPE_t self:fifo_file manage_fifo_file_perms;
++allow TEMPLATETYPE_t self:unix_stream_socket create_stream_socket_perms;
++"""
++
++te_cgi_rules="""
++"""
++
++te_sandbox_rules="""
++"""
++
++te_uid_rules="""
++auth_use_nsswitch(TEMPLATETYPE_t)
++"""
++
++te_syslog_rules="""
++logging_send_syslog_msg(TEMPLATETYPE_t)
++"""
++
++te_resolve_rules="""
++sysnet_dns_name_resolve(TEMPLATETYPE_t)
++"""
++
++te_pam_rules="""
++auth_domtrans_chk_passwd(TEMPLATETYPE_t)
++"""
++
++te_mail_rules="""
++mta_send_mail(TEMPLATETYPE_t)
++"""
++
++te_dbus_rules="""
++optional_policy(`
++      dbus_system_bus_client(TEMPLATETYPE_t)
++      dbus_connect_system_bus(TEMPLATETYPE_t)
++')
++"""
++
++te_kerberos_rules="""
++optional_policy(`
++      kerberos_use(TEMPLATETYPE_t)
++')
++"""
++
++te_manage_krb5_rcache_rules="""
++optional_policy(`
++      kerberos_keytab_template(TEMPLATETYPE, TEMPLATETYPE_t)
++      kerberos_manage_host_rcache(TEMPLATETYPE_t)
++')
++"""
++
++te_audit_rules="""
++logging_send_audit_msgs(TEMPLATETYPE_t)
++"""
++
++te_run_rules="""
++optional_policy(`
++      gen_require(`
++              type USER_t;
++              role USER_r;
++      ')
++
++      TEMPLATETYPE_run(USER_t, USER_r)
++')
++"""
++
++te_fd_rules="""
++domain_use_interactive_fds(TEMPLATETYPE_t)
++"""
++
++te_etc_rules="""
++files_read_etc_files(TEMPLATETYPE_t)
++"""
++
++te_localization_rules="""
++miscfiles_read_localization(TEMPLATETYPE_t)
++"""
++
++########################### Interface File #############################
++
++if_heading_rules="""
++## <summary>policy for TEMPLATETYPE</summary>"""
++
++if_program_rules="""
++
++########################################
++## <summary>
++##    Transition to TEMPLATETYPE.
++## </summary>
++## <param name=\"domain\">
++## <summary>
++##    Domain allowed to transition.
++## </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_domtrans',`
++      gen_require(`
++              type TEMPLATETYPE_t, TEMPLATETYPE_exec_t;
++      ')
++
++      corecmd_search_bin($1)
++      domtrans_pattern($1, TEMPLATETYPE_exec_t, TEMPLATETYPE_t)
++')
++"""
++
++if_user_program_rules="""
++########################################
++## <summary>
++##    Execute TEMPLATETYPE in the TEMPLATETYPE domain, and
++##    allow the specified role the TEMPLATETYPE domain.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed to transition
++##    </summary>
++## </param>
++## <param name="role">
++##    <summary>
++##    The role to be allowed the TEMPLATETYPE domain.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_run',`
++      gen_require(`
++              type TEMPLATETYPE_t;
++      ')
++
++      TEMPLATETYPE_domtrans($1)
++      role $2 types TEMPLATETYPE_t;
++')
++
++########################################
++## <summary>
++##    Role access for TEMPLATETYPE
++## </summary>
++## <param name="role">
++##    <summary>
++##    Role allowed access
++##    </summary>
++## </param>
++## <param name="domain">
++##    <summary>
++##    User domain for the role
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_role',`
++      gen_require(`
++              type TEMPLATETYPE_t;
++      ')
++
++      role $1 types TEMPLATETYPE_t;
++
++      TEMPLATETYPE_domtrans($2)
++
++      ps_process_pattern($2, TEMPLATETYPE_t)
++      allow $2 TEMPLATETYPE_t:process signal;
++')
++"""
++
++if_sandbox_rules="""
++########################################
++## <summary>
++##    Execute sandbox in the TEMPLATETYPE_t domain, and
++##    allow the specified role the TEMPLATETYPE_t domain.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed to transition.
++##    </summary>
++## </param>
++## <param name="role">
++##    <summary>
++##    The role to be allowed the TEMPLATETYPE_t domain.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_transition',`
++      gen_require(`
++              type TEMPLATETYPE_t;
++              type TEMPLATETYPE_client_t;
++      ')
++
++      allow $1 TEMPLATETYPE_t:process { signal_perms transition };
++      dontaudit $1 TEMPLATETYPE_t:process { noatsecure siginh rlimitinh };
++      role $2 types TEMPLATETYPE_t;
++      role $2 types TEMPLATETYPE_client_t;
++
++      allow TEMPLATETYPE_t $1:process { sigchld signull };
++      allow TEMPLATETYPE_t $1:fifo_file rw_inherited_fifo_file_perms;
++      allow TEMPLATETYPE_client_t $1:process { sigchld signull };
++      allow TEMPLATETYPE_client_t $1:fifo_file rw_inherited_fifo_file_perms;
++')
++"""
++
++if_role_change_rules="""
++########################################
++## <summary>
++##    Change to the TEMPLATETYPE role.
++## </summary>
++## <param name="role">
++##    <summary>
++##    Role allowed access.
++##    </summary>
++## </param>
++## <rolecap/>
++#
++interface(`TEMPLATETYPE_role_change',`
++      gen_require(`
++              role TEMPLATETYPE_r;
++      ')
++
++      allow $1 TEMPLATETYPE_r;
++')
++"""
++
++if_initscript_rules="""
++########################################
++## <summary>
++##    Execute TEMPLATETYPE server in the TEMPLATETYPE domain.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_initrc_domtrans',`
++      gen_require(`
++              type TEMPLATETYPE_initrc_exec_t;
++      ')
++
++      init_labeled_script_domtrans($1, TEMPLATETYPE_initrc_exec_t)
++')
++"""
++
++if_dbus_rules="""
++########################################
++## <summary>
++##    Send and receive messages from
++##    TEMPLATETYPE over dbus.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_dbus_chat',`
++      gen_require(`
++              type TEMPLATETYPE_t;
++              class dbus send_msg;
++      ')
++
++      allow $1 TEMPLATETYPE_t:dbus send_msg;
++      allow TEMPLATETYPE_t $1:dbus send_msg;
++')
++"""
++
++if_begin_admin="""
++########################################
++## <summary>
++##    All of the rules required to administrate
++##    an TEMPLATETYPE environment
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++## <param name="role">
++##    <summary>
++##    Role allowed access.
++##    </summary>
++## </param>
++## <rolecap/>
++#
++interface(`TEMPLATETYPE_admin',`
++      gen_require(`
++              type TEMPLATETYPE_t;"""
++
++if_middle_admin="""
++      ')
++
++      allow $1 TEMPLATETYPE_t:process { ptrace signal_perms };
++      ps_process_pattern($1, TEMPLATETYPE_t)
++"""
++
++if_initscript_admin_types="""
++              type TEMPLATETYPE_initrc_exec_t;"""
++
++if_initscript_admin="""
++      TEMPLATETYPE_initrc_domtrans($1)
++      domain_system_change_exemption($1)
++      role_transition $2 TEMPLATETYPE_initrc_exec_t system_r;
++      allow $2 system_r;
++"""
++
++if_end_admin="""\
++      optional_policy(`
++              systemd_passwd_agent_exec($1)
++              systemd_read_fifo_file_passwd_run($1)
++      ')
++')
++"""
++
++########################### File Context ##################################
++fc_program="""\
++EXECUTABLE            --      gen_context(system_u:object_r:TEMPLATETYPE_exec_t,s0)
++"""
++
++fc_user="""\
++# Users do not have file context, leave blank
++"""
++
++fc_initscript="""\
++EXECUTABLE    --      gen_context(system_u:object_r:TEMPLATETYPE_initrc_exec_t,s0)
++"""
+diff --git a/policycoreutils/gui/templates/network.py b/policycoreutils/gui/templates/network.py
+new file mode 100644
+index 0000000..6a3d445
+--- /dev/null
++++ b/policycoreutils/gui/templates/network.py
+@@ -0,0 +1,102 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### Type Enforcement File #############################
++te_port_types="""
++type TEMPLATETYPE_port_t;
++corenet_port(TEMPLATETYPE_port_t)
++"""
++
++te_network="""\
++sysnet_dns_name_resolve(TEMPLATETYPE_t)
++corenet_all_recvfrom_unlabeled(TEMPLATETYPE_t)
++"""
++
++te_tcp="""\
++allow TEMPLATETYPE_t self:tcp_socket create_stream_socket_perms;
++corenet_tcp_sendrecv_generic_if(TEMPLATETYPE_t)
++corenet_tcp_sendrecv_generic_node(TEMPLATETYPE_t)
++corenet_tcp_sendrecv_all_ports(TEMPLATETYPE_t)
++"""
++
++te_in_tcp="""\
++corenet_tcp_bind_generic_node(TEMPLATETYPE_t)
++"""
++
++te_in_need_port_tcp="""\
++allow TEMPLATETYPE_t TEMPLATETYPE_port_t:tcp_socket name_bind;
++"""
++
++te_out_need_port_tcp="""\
++allow TEMPLATETYPE_t TEMPLATETYPE_port_t:tcp_socket name_connect;
++"""
++
++te_udp="""\
++allow TEMPLATETYPE_t self:udp_socket { create_socket_perms listen };
++corenet_udp_sendrecv_generic_if(TEMPLATETYPE_t)
++corenet_udp_sendrecv_generic_node(TEMPLATETYPE_t)
++corenet_udp_sendrecv_all_ports(TEMPLATETYPE_t)
++"""
++
++te_in_udp="""\
++corenet_udp_bind_generic_node(TEMPLATETYPE_t)
++"""
++
++te_in_need_port_udp="""\
++allow TEMPLATETYPE_t TEMPLATETYPE_port_t:udp_socket name_bind;
++"""
++
++te_out_all_ports_tcp="""\
++corenet_tcp_connect_all_ports(TEMPLATETYPE_t)
++"""
++
++te_out_reserved_ports_tcp="""\
++corenet_tcp_connect_all_rpc_ports(TEMPLATETYPE_t)
++"""
++
++te_out_unreserved_ports_tcp="""\
++corenet_tcp_connect_all_unreserved_ports(TEMPLATETYPE_t)
++"""
++
++te_in_all_ports_tcp="""\
++corenet_tcp_bind_all_ports(TEMPLATETYPE_t)
++"""
++
++te_in_reserved_ports_tcp="""\
++corenet_tcp_bind_all_rpc_ports(TEMPLATETYPE_t)
++"""
++
++te_in_unreserved_ports_tcp="""\
++corenet_tcp_bind_all_unreserved_ports(TEMPLATETYPE_t)
++"""
++
++te_in_all_ports_udp="""\
++corenet_udp_bind_all_ports(TEMPLATETYPE_t)
++"""
++
++te_in_reserved_ports_udp="""\
++corenet_udp_bind_all_rpc_ports(TEMPLATETYPE_t)
++"""
++
++te_in_unreserved_ports_udp="""\
++corenet_udp_bind_all_unreserved_ports(TEMPLATETYPE_t)
++"""
++
+diff --git a/policycoreutils/gui/templates/rw.py b/policycoreutils/gui/templates/rw.py
+new file mode 100644
+index 0000000..5dfc42f
+--- /dev/null
++++ b/policycoreutils/gui/templates/rw.py
+@@ -0,0 +1,129 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++
++########################### tmp Template File #############################
++te_types="""
++type TEMPLATETYPE_rw_t;
++files_type(TEMPLATETYPE_rw_t)
++"""
++
++te_rules="""
++manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_rw_t, TEMPLATETYPE_rw_t)
++manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_rw_t, TEMPLATETYPE_rw_t)
++"""
++
++########################### Interface File #############################
++if_rules="""
++########################################
++## <summary>
++##    Search TEMPLATETYPE rw directories.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_search_rw_dir',`
++      gen_require(`
++              type TEMPLATETYPE_rw_t;
++      ')
++
++      allow $1 TEMPLATETYPE_rw_t:dir search_dir_perms;
++      files_search_rw($1)
++')
++
++########################################
++## <summary>
++##    Read TEMPLATETYPE rw files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_read_rw_files',`
++      gen_require(`
++              type TEMPLATETYPE_rw_t;
++      ')
++
++      allow $1 TEMPLATETYPE_rw_t:file read_file_perms;
++      allow $1 TEMPLATETYPE_rw_t:dir list_dir_perms;
++      files_search_rw($1)
++')
++
++########################################
++## <summary>
++##    Manage TEMPLATETYPE rw files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_manage_rw_files',`
++      gen_require(`
++              type TEMPLATETYPE_rw_t;
++      ')
++
++      manage_files_pattern($1, TEMPLATETYPE_rw_t, TEMPLATETYPE_rw_t)
++')
++
++########################################
++## <summary>
++##    Create, read, write, and delete
++##    TEMPLATETYPE rw dirs.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_manage_rw_dirs',`
++      gen_require(`
++              type TEMPLATETYPE_rw_t;
++      ')
++
++      manage_dirs_pattern($1, TEMPLATETYPE_rw_t, TEMPLATETYPE_rw_t)
++')
++
++"""
++
++if_admin_types="""
++              type TEMPLATETYPE_rw_t;"""
++
++if_admin_rules="""
++      files_search_etc($1)
++      admin_pattern($1, TEMPLATETYPE_rw_t)
++"""
++
++########################### File Context ##################################
++fc_file="""
++FILENAME              --      gen_context(system_u:object_r:TEMPLATETYPE_rw_t,s0)
++"""
++
++fc_dir="""
++FILENAME(/.*)?                gen_context(system_u:object_r:TEMPLATETYPE_rw_t,s0)
++"""
+diff --git a/policycoreutils/gui/templates/script.py b/policycoreutils/gui/templates/script.py
+new file mode 100644
+index 0000000..79240ec
+--- /dev/null
++++ b/policycoreutils/gui/templates/script.py
+@@ -0,0 +1,126 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++
++########################### tmp Template File #############################
++compile="""\
++#!/bin/sh -e
++
++DIRNAME=`dirname $0`
++cd $DIRNAME
++USAGE="$0 [ --update ]"
++if [ `id -u` != 0 ]; then
++echo 'You must be root to run this script'
++exit 1
++fi
++
++if [ $# -eq 1 ]; then
++      if [ "$1" = "--update" ] ; then
++              time=`ls -l --time-style="+%x %X" TEMPLATEFILE.te | awk '{ printf "%s %s", $6, $7 }'`
++              rules=`ausearch --start $time -m avc --raw -se TEMPLATETYPE`
++              if [ x"$rules" != "x" ] ; then
++                      echo "Found avc's to update policy with"
++                      echo -e "$rules" | audit2allow -R
++                      echo "Do you want these changes added to policy [y/n]?"
++                      read ANS
++                      if [ "$ANS" = "y" -o "$ANS" = "Y" ] ; then
++                              echo "Updating policy"
++                              echo -e "$rules" | audit2allow -R >> TEMPLATEFILE.te
++                              # Fall though and rebuild policy
++                      else
++                              exit 0
++                      fi
++              else
++                      echo "No new avcs found"
++                      exit 0
++              fi
++      else
++              echo -e $USAGE
++              exit 1
++      fi
++elif [ $# -ge 2 ] ; then
++      echo -e $USAGE
++      exit 1
++fi
++
++echo "Building and Loading Policy"
++set -x
++make -f /usr/share/selinux/devel/Makefile TEMPLATEFILE.pp || exit
++/usr/sbin/semodule -i TEMPLATEFILE.pp
++
++"""
++
++restorecon="""\
++# Fixing the file context on FILENAME
++/sbin/restorecon -F -R -v FILENAME
++"""
++
++tcp_ports="""\
++# Adding SELinux tcp port to port PORTNUM
++/usr/sbin/semanage port -a -t TEMPLATETYPE_port_t -p tcp PORTNUM
++"""
++
++udp_ports="""\
++# Adding SELinux udp port to port PORTNUM
++/usr/sbin/semanage port -a -t TEMPLATETYPE_port_t -p udp PORTNUM
++"""
++
++users="""\
++# Adding SELinux user TEMPLATETYPE_u
++/usr/sbin/semanage user -a -R "TEMPLATETYPE_rROLES" TEMPLATETYPE_u
++"""
++
++eusers="""\
++# Adding roles to SELinux user TEMPLATETYPE_u
++/usr/sbin/semanage user -m -R "TEMPLATETYPE_rROLES" TEMPLATETYPE_u
++"""
++
++admin_trans="""\
++# Adding roles to SELinux user USER
++/usr/sbin/semanage user -m -R +TEMPLATETYPE_r USER
++"""
++
++min_login_user_default_context="""\
++if [ ! -f /etc/selinux/targeted/contexts/users/TEMPLATETYPE_u ]; then
++cat > /etc/selinux/targeted/contexts/users/TEMPLATETYPE_u << _EOF
++TEMPLATETYPE_r:TEMPLATETYPE_t:s0      TEMPLATETYPE_r:TEMPLATETYPE_t
++system_r:crond_t              TEMPLATETYPE_r:TEMPLATETYPE_t
++system_r:initrc_su_t          TEMPLATETYPE_r:TEMPLATETYPE_t
++system_r:local_login_t                TEMPLATETYPE_r:TEMPLATETYPE_t
++system_r:remote_login_t               TEMPLATETYPE_r:TEMPLATETYPE_t
++system_r:sshd_t                       TEMPLATETYPE_r:TEMPLATETYPE_t
++_EOF
++fi
++"""
++
++x_login_user_default_context="""\
++if [ ! -f /etc/selinux/targeted/contexts/users/TEMPLATETYPE_u ]; then
++cat > /etc/selinux/targeted/contexts/users/TEMPLATETYPE_u << _EOF
++TEMPLATETYPE_r:TEMPLATETYPE_t TEMPLATETYPE_r:TEMPLATETYPE_t
++system_r:crond_t              TEMPLATETYPE_r:TEMPLATETYPE_t
++system_r:initrc_su_t          TEMPLATETYPE_r:TEMPLATETYPE_t
++system_r:local_login_t                TEMPLATETYPE_r:TEMPLATETYPE_t
++system_r:remote_login_t               TEMPLATETYPE_r:TEMPLATETYPE_t
++system_r:sshd_t                               TEMPLATETYPE_r:TEMPLATETYPE_t
++system_r:xdm_t                                TEMPLATETYPE_r:TEMPLATETYPE_t
++_EOF
++fi
++"""
+diff --git a/policycoreutils/gui/templates/semodule.py b/policycoreutils/gui/templates/semodule.py
+new file mode 100644
+index 0000000..194fb2c
+--- /dev/null
++++ b/policycoreutils/gui/templates/semodule.py
+@@ -0,0 +1,41 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#  
++
++########################### tmp Template File #############################
++compile="""
++#!/bin/sh
++make -f /usr/share/selinux/devel/Makefile
++semodule -i TEMPLATETYPE.pp
++"""
++
++restorecon="""
++restorecon -R -v FILENAME
++"""
++
++tcp_ports="""
++semanage ports -a -t TEMPLATETYPE_port_t -p tcp PORTNUM
++"""
++
++udp_ports="""
++semanage ports -a -t TEMPLATETYPE_port_t -p udp PORTNUM
++"""
++
+diff --git a/policycoreutils/gui/templates/tmp.py b/policycoreutils/gui/templates/tmp.py
+new file mode 100644
+index 0000000..d2adaa4
+--- /dev/null
++++ b/policycoreutils/gui/templates/tmp.py
+@@ -0,0 +1,102 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### tmp Template File #############################
++
++te_types="""
++type TEMPLATETYPE_tmp_t;
++files_tmp_file(TEMPLATETYPE_tmp_t)
++"""
++
++te_rules="""
++manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_tmp_t, TEMPLATETYPE_tmp_t)
++manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_tmp_t, TEMPLATETYPE_tmp_t)
++files_tmp_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_tmp_t, { dir file })
++"""
++
++if_rules="""
++########################################
++## <summary>
++##    Do not audit attempts to read,
++##    TEMPLATETYPE tmp files
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain to not audit.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_dontaudit_read_tmp_files',`
++      gen_require(`
++              type TEMPLATETYPE_tmp_t;
++      ')
++
++      dontaudit $1 TEMPLATETYPE_tmp_t:file read_file_perms;
++')
++
++########################################
++## <summary>
++##    Read TEMPLATETYPE tmp files
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_read_tmp_files',`
++      gen_require(`
++              type TEMPLATETYPE_tmp_t;
++      ')
++
++      files_search_tmp($1)
++      allow $1 TEMPLATETYPE_tmp_t:file read_file_perms;
++')
++
++########################################
++## <summary>
++##    Manage TEMPLATETYPE tmp files
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_manage_tmp',`
++      gen_require(`
++              type TEMPLATETYPE_tmp_t;
++      ')
++
++      files_search_tmp($1)
++      manage_dirs_pattern($1, TEMPLATETYPE_tmp_t, TEMPLATETYPE_tmp_t)
++      manage_files_pattern($1, TEMPLATETYPE_tmp_t, TEMPLATETYPE_tmp_t)
++      manage_lnk_files_pattern($1, TEMPLATETYPE_tmp_t, TEMPLATETYPE_tmp_t)
++')
++"""
++
++if_admin_types="""
++              type TEMPLATETYPE_tmp_t;"""
++
++if_admin_rules="""
++      files_search_tmp($1)
++      admin_pattern($1, TEMPLATETYPE_tmp_t)
++"""
+diff --git a/policycoreutils/gui/templates/unit_file.py b/policycoreutils/gui/templates/unit_file.py
+new file mode 100644
+index 0000000..60e5844
+--- /dev/null
++++ b/policycoreutils/gui/templates/unit_file.py
+@@ -0,0 +1,72 @@
++# Copyright (C) 2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### unit Template File #############################
++
++########################### Type Enforcement File #############################
++te_types="""
++type TEMPLATETYPE_unit_file_t;
++systemd_unit_file(TEMPLATETYPE_unit_file_t)
++"""
++
++te_rules=""
++
++########################### Interface File #############################
++if_rules="""\
++########################################
++## <summary>
++##    Execute TEMPLATETYPE server in the TEMPLATETYPE domain.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed to transition.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_systemctl',`
++      gen_require(`
++              type TEMPLATETYPE_t;
++              type TEMPLATETYPE_unit_file_t;
++      ')
++
++      systemd_exec_systemctl($1)
++        systemd_read_fifo_file_password_run($1)
++      allow $1 TEMPLATETYPE_unit_file_t:file read_file_perms;
++      allow $1 TEMPLATETYPE_unit_file_t:service manage_service_perms;
++
++      ps_process_pattern($1, TEMPLATETYPE_t)
++')
++
++"""
++
++if_admin_types="""
++      type TEMPLATETYPE_unit_file_t;"""
++
++if_admin_rules="""
++      TEMPLATETYPE_systemctl($1)
++      admin_pattern($1, TEMPLATETYPE_unit_file_t)
++      allow $1 TEMPLATETYPE_unit_file_t:service all_service_perms;
++"""
++
++########################### File Context ##################################
++fc_file="""\
++FILENAME              --      gen_context(system_u:object_r:TEMPLATETYPE_unit_file_t,s0)
++"""
+diff --git a/policycoreutils/gui/templates/user.py b/policycoreutils/gui/templates/user.py
+new file mode 100644
+index 0000000..398c6f2
+--- /dev/null
++++ b/policycoreutils/gui/templates/user.py
+@@ -0,0 +1,204 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### Type Enforcement File #############################
++
++te_login_user_types="""\
++policy_module(TEMPLATETYPE, 1.0.0)
++
++########################################
++#
++# Declarations
++#
++
++userdom_unpriv_user_template(TEMPLATETYPE)
++"""
++
++te_admin_user_types="""\
++policy_module(TEMPLATETYPE, 1.0.0)
++
++########################################
++#
++# Declarations
++#
++
++userdom_admin_user_template(TEMPLATETYPE)
++"""
++
++te_min_login_user_types="""\
++policy_module(TEMPLATETYPE, 1.0.0)
++
++########################################
++#
++# Declarations
++#
++
++userdom_restricted_user_template(TEMPLATETYPE)
++"""
++
++te_x_login_user_types="""\
++policy_module(TEMPLATETYPE, 1.0.0)
++
++########################################
++#
++# Declarations
++#
++
++userdom_restricted_xwindows_user_template(TEMPLATETYPE)
++"""
++
++te_existing_user_types="""\
++policy_module(myTEMPLATETYPE, 1.0.0)
++
++gen_require(`
++      type TEMPLATETYPE_t, TEMPLATETYPE_devpts_t;
++      role TEMPLATETYPE_r;
++')
++
++"""
++
++te_root_user_types="""\
++policy_module(TEMPLATETYPE, 1.0.0)
++
++########################################
++#
++# Declarations
++#
++
++userdom_base_user_template(TEMPLATETYPE)
++"""
++
++te_login_user_rules="""\
++
++########################################
++#
++# TEMPLATETYPE local policy
++#
++
++"""
++
++te_existing_user_rules="""\
++
++########################################
++#
++# TEMPLATETYPE customized policy
++#
++
++"""
++
++te_x_login_user_rules="""\
++
++########################################
++#
++# TEMPLATETYPE local policy
++#
++"""
++
++te_root_user_rules="""\
++
++########################################
++#
++# TEMPLATETYPE local policy
++#
++"""
++
++te_transition_rules="""
++optional_policy(`
++      APPLICATION_role(TEMPLATETYPE_r, TEMPLATETYPE_t)
++')
++"""
++
++te_user_trans_rules="""
++optional_policy(`
++      gen_require(`
++              role USER_r;
++      ')
++
++      TEMPLATETYPE_role_change(USER_r)
++')
++"""
++
++te_admin_rules="""
++allow TEMPLATETYPE_t self:capability { dac_override dac_read_search kill sys_ptrace sys_nice };
++files_dontaudit_search_all_dirs(TEMPLATETYPE_t)
++
++selinux_get_enforce_mode(TEMPLATETYPE_t)
++seutil_domtrans_setfiles(TEMPLATETYPE_t)
++seutil_search_default_contexts(TEMPLATETYPE_t)
++
++logging_send_syslog_msg(TEMPLATETYPE_t)
++
++kernel_read_system_state(TEMPLATETYPE_t)
++
++domain_dontaudit_search_all_domains_state(TEMPLATETYPE_t)
++domain_dontaudit_ptrace_all_domains(TEMPLATETYPE_t)
++
++userdom_dontaudit_search_admin_dir(TEMPLATETYPE_t)
++userdom_dontaudit_search_user_home_dirs(TEMPLATETYPE_t)
++
++bool TEMPLATETYPE_read_user_files false;
++bool TEMPLATETYPE_manage_user_files false;
++
++if (TEMPLATETYPE_read_user_files) {
++      userdom_read_user_home_content_files(TEMPLATETYPE_t)
++      userdom_read_user_tmp_files(TEMPLATETYPE_t)
++}
++
++if (TEMPLATETYPE_manage_user_files) {
++      userdom_manage_user_home_content(TEMPLATETYPE_t)
++      userdom_manage_user_tmp_files(TEMPLATETYPE_t)
++}
++
++"""
++
++te_admin_trans_rules="""
++gen_require(`
++      role USER_r;
++')
++
++allow USER_r TEMPLATETYPE_r;
++"""
++
++te_admin_domain_rules="""
++optional_policy(`
++      APPLICATION_admin(TEMPLATETYPE_t, TEMPLATETYPE_r)
++')
++"""
++
++te_roles_rules="""
++optional_policy(`
++      gen_require(`
++              role ROLE_r;
++      ')
++
++      allow TEMPLATETYPE_r ROLE_r;
++')
++"""
++
++te_sudo_rules="""
++optional_policy(`
++      sudo_role_template(TEMPLATETYPE, TEMPLATETYPE_r, TEMPLATETYPE_t)
++')
++"""
++
++te_newrole_rules="""
++seutil_run_newrole(TEMPLATETYPE_t, TEMPLATETYPE_r)
++"""
+diff --git a/policycoreutils/gui/templates/var_cache.py b/policycoreutils/gui/templates/var_cache.py
+new file mode 100644
+index 0000000..84b342f
+--- /dev/null
++++ b/policycoreutils/gui/templates/var_cache.py
+@@ -0,0 +1,132 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### cache Template File #############################
++
++########################### Type Enforcement File #############################
++te_types="""
++type TEMPLATETYPE_cache_t;
++files_type(TEMPLATETYPE_cache_t)
++"""
++te_rules="""
++manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_cache_t, TEMPLATETYPE_cache_t)
++manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_cache_t, TEMPLATETYPE_cache_t)
++manage_lnk_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_cache_t, TEMPLATETYPE_cache_t)
++files_var_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_cache_t, { dir file })
++"""
++
++########################### Interface File #############################
++if_rules="""
++########################################
++## <summary>
++##    Search TEMPLATETYPE cache directories.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_search_cache',`
++      gen_require(`
++              type TEMPLATETYPE_cache_t;
++      ')
++
++      allow $1 TEMPLATETYPE_cache_t:dir search_dir_perms;
++      files_search_var($1)
++')
++
++########################################
++## <summary>
++##    Read TEMPLATETYPE cache files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_read_cache_files',`
++      gen_require(`
++              type TEMPLATETYPE_cache_t;
++      ')
++
++      files_search_var($1)
++      read_files_pattern($1, TEMPLATETYPE_cache_t TEMPLATETYPE_cache_t)
++')
++
++########################################
++## <summary>
++##    Create, read, write, and delete
++##    TEMPLATETYPE cache files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_manage_cache_files',`
++      gen_require(`
++              type TEMPLATETYPE_cache_t;
++      ')
++
++      files_search_var($1)
++      manage_files_pattern($1, TEMPLATETYPE_cache_t, TEMPLATETYPE_cache_t)
++')
++
++########################################
++## <summary>
++##    Manage TEMPLATETYPE cache dirs.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_manage_cache_dirs',`
++      gen_require(`
++              type TEMPLATETYPE_cache_t;
++      ')
++
++      files_search_var($1)
++      manage_dirs_pattern($1, TEMPLATETYPE_cache_t, TEMPLATETYPE_cache_t)
++')
++
++"""
++
++if_admin_types="""
++              type TEMPLATETYPE_cache_t;"""
++
++if_admin_rules="""
++      files_search_var($1)
++      admin_pattern($1, TEMPLATETYPE_cache_t)
++"""
++
++########################### File Context ##################################
++fc_file="""\
++FILENAME              --      gen_context(system_u:object_r:TEMPLATETYPE_cache_t,s0)
++"""
++
++fc_dir="""\
++FILENAME(/.*)?                gen_context(system_u:object_r:TEMPLATETYPE_cache_t,s0)
++"""
+diff --git a/policycoreutils/gui/templates/var_lib.py b/policycoreutils/gui/templates/var_lib.py
+new file mode 100644
+index 0000000..8bde8c6
+--- /dev/null
++++ b/policycoreutils/gui/templates/var_lib.py
+@@ -0,0 +1,160 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### var_lib Template File #############################
++
++########################### Type Enforcement File #############################
++te_types="""
++type TEMPLATETYPE_var_lib_t;
++files_type(TEMPLATETYPE_var_lib_t)
++"""
++te_rules="""
++manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
++manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
++files_var_lib_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_var_lib_t, { dir file })
++"""
++
++te_stream_rules="""\
++allow TEMPLATETYPE_t TEMPLATETYPE_var_lib_t:sock_file manage_sock_file_perms;
++files_var_lib_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_var_lib_t, sock_file)
++"""
++
++
++########################### Interface File #############################
++if_rules="""
++########################################
++## <summary>
++##    Search TEMPLATETYPE lib directories.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_search_lib',`
++      gen_require(`
++              type TEMPLATETYPE_var_lib_t;
++      ')
++
++      allow $1 TEMPLATETYPE_var_lib_t:dir search_dir_perms;
++      files_search_var_lib($1)
++')
++
++########################################
++## <summary>
++##    Read TEMPLATETYPE lib files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_read_lib_files',`
++      gen_require(`
++              type TEMPLATETYPE_var_lib_t;
++      ')
++
++      files_search_var_lib($1)
++      read_files_pattern($1, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
++')
++
++########################################
++## <summary>
++##    Manage TEMPLATETYPE lib files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_manage_lib_files',`
++      gen_require(`
++              type TEMPLATETYPE_var_lib_t;
++      ')
++
++      files_search_var_lib($1)
++      manage_files_pattern($1, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
++')
++
++########################################
++## <summary>
++##    Manage TEMPLATETYPE lib directories.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_manage_lib_dirs',`
++      gen_require(`
++              type TEMPLATETYPE_var_lib_t;
++      ')
++
++      files_search_var_lib($1)
++      manage_dirs_pattern($1, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
++')
++
++"""
++
++if_stream_rules="""
++########################################
++## <summary>
++##    Connect to TEMPLATETYPE over a unix stream socket.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_stream_connect',`
++      gen_require(`
++              type TEMPLATETYPE_t, TEMPLATETYPE_var_lib_t;
++      ')
++
++      stream_connect_pattern($1, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
++')
++"""
++
++if_admin_types="""
++              type TEMPLATETYPE_var_lib_t;"""
++
++if_admin_rules="""
++      files_search_var_lib($1)
++      admin_pattern($1, TEMPLATETYPE_var_lib_t)
++"""
++
++########################### File Context ##################################
++fc_file="""\
++FILENAME              --      gen_context(system_u:object_r:TEMPLATETYPE_var_lib_t,s0)
++"""
++
++fc_sock_file="""\
++FILENAME              -s      gen_context(system_u:object_r:TEMPLATETYPE_var_lib_t,s0)
++"""
++
++fc_dir="""\
++FILENAME(/.*)?                gen_context(system_u:object_r:TEMPLATETYPE_var_lib_t,s0)
++"""
+diff --git a/policycoreutils/gui/templates/var_log.py b/policycoreutils/gui/templates/var_log.py
+new file mode 100644
+index 0000000..b57b93d
+--- /dev/null
++++ b/policycoreutils/gui/templates/var_log.py
+@@ -0,0 +1,114 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### var_log Template File #############################
++
++########################### Type Enforcement File #############################
++te_types="""
++type TEMPLATETYPE_log_t;
++logging_log_file(TEMPLATETYPE_log_t)
++"""
++
++te_rules="""
++manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
++manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
++logging_log_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_log_t, { dir file })
++"""
++
++########################### Interface File #############################
++if_rules="""\
++########################################
++## <summary>
++##    Read TEMPLATETYPE's log files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++## <rolecap/>
++#
++interface(`TEMPLATETYPE_read_log',`
++      gen_require(`
++              type TEMPLATETYPE_log_t;
++      ')
++
++      logging_search_logs($1)
++      read_files_pattern($1, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
++')
++
++########################################
++## <summary>
++##    Append to TEMPLATETYPE log files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_append_log',`
++      gen_require(`
++              type TEMPLATETYPE_log_t;
++      ')
++
++      logging_search_logs($1)
++      append_files_pattern($1, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
++')
++
++########################################
++## <summary>
++##    Manage TEMPLATETYPE log files
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_manage_log',`
++      gen_require(`
++              type TEMPLATETYPE_log_t;
++      ')
++
++      logging_search_logs($1)
++      manage_dirs_pattern($1, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
++      manage_files_pattern($1, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
++      manage_lnk_files_pattern($1, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
++')
++"""
++
++if_admin_types="""
++              type TEMPLATETYPE_log_t;"""
++
++if_admin_rules="""
++      logging_search_logs($1)
++      admin_pattern($1, TEMPLATETYPE_log_t)
++"""
++
++########################### File Context ##################################
++fc_file="""\
++FILENAME              --      gen_context(system_u:object_r:TEMPLATETYPE_log_t,s0)
++"""
++
++fc_dir="""\
++FILENAME(/.*)?                gen_context(system_u:object_r:TEMPLATETYPE_log_t,s0)
++"""
+diff --git a/policycoreutils/gui/templates/var_run.py b/policycoreutils/gui/templates/var_run.py
+new file mode 100644
+index 0000000..916f44c
+--- /dev/null
++++ b/policycoreutils/gui/templates/var_run.py
+@@ -0,0 +1,101 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### var_run Template File #############################
++
++te_types="""
++type TEMPLATETYPE_var_run_t;
++files_pid_file(TEMPLATETYPE_var_run_t)
++"""
++
++te_rules="""
++manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_var_run_t, TEMPLATETYPE_var_run_t)
++manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_var_run_t, TEMPLATETYPE_var_run_t)
++files_pid_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_var_run_t, { dir file })
++"""
++
++te_stream_rules="""
++allow TEMPLATETYPE_t TEMPLATETYPE_var_run_t:sock_file manage_sock_file_perms;
++files_pid_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_var_run_t, sock_file)
++"""
++
++if_rules="""\
++########################################
++## <summary>
++##    Read TEMPLATETYPE PID files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_read_pid_files',`
++      gen_require(`
++              type TEMPLATETYPE_var_run_t;
++      ')
++
++      files_search_pids($1)
++      allow $1 TEMPLATETYPE_var_run_t:file read_file_perms;
++')
++
++"""
++
++if_stream_rules="""\
++########################################
++## <summary>
++##    Connect to TEMPLATETYPE over a unix stream socket.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_stream_connect',`
++      gen_require(`
++              type TEMPLATETYPE_t, TEMPLATETYPE_var_run_t;
++      ')
++
++      files_search_pids($1)
++      stream_connect_pattern($1, TEMPLATETYPE_var_run_t, TEMPLATETYPE_var_run_t, TEMPLATETYPE_t)
++')
++"""
++
++if_admin_types="""
++              type TEMPLATETYPE_var_run_t;"""
++
++if_admin_rules="""
++      files_search_pids($1)
++      admin_pattern($1, TEMPLATETYPE_var_run_t)
++"""
++
++fc_file="""\
++FILENAME              --      gen_context(system_u:object_r:TEMPLATETYPE_var_run_t,s0)
++"""
++
++fc_sock_file="""\
++FILENAME              -s      gen_context(system_u:object_r:TEMPLATETYPE_var_run_t,s0)
++"""
++
++fc_dir="""\
++FILENAME(/.*)?                gen_context(system_u:object_r:TEMPLATETYPE_var_run_t,s0)
++"""
+diff --git a/policycoreutils/gui/templates/var_spool.py b/policycoreutils/gui/templates/var_spool.py
+new file mode 100644
+index 0000000..8055a9e
+--- /dev/null
++++ b/policycoreutils/gui/templates/var_spool.py
+@@ -0,0 +1,131 @@
++# Copyright (C) 2007-2012 Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# policygentool is a tool for the initial generation of SELinux policy
++#
++#    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
++#
++#
++########################### var_spool Template File #############################
++
++########################### Type Enforcement File #############################
++te_types="""
++type TEMPLATETYPE_spool_t;
++files_type(TEMPLATETYPE_spool_t)
++"""
++te_rules="""
++manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
++manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
++manage_lnk_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
++files_spool_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_spool_t, { dir file })
++"""
++
++########################### Interface File #############################
++if_rules="""
++########################################
++## <summary>
++##    Search TEMPLATETYPE spool directories.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_search_spool',`
++      gen_require(`
++              type TEMPLATETYPE_spool_t;
++      ')
++
++      allow $1 TEMPLATETYPE_spool_t:dir search_dir_perms;
++      files_search_spool($1)
++')
++
++########################################
++## <summary>
++##    Read TEMPLATETYPE spool files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_read_spool_files',`
++      gen_require(`
++              type TEMPLATETYPE_spool_t;
++      ')
++
++      files_search_spool($1)
++      read_files_pattern($1, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
++')
++
++########################################
++## <summary>
++##    Manage TEMPLATETYPE spool files.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_manage_spool_files',`
++      gen_require(`
++              type TEMPLATETYPE_spool_t;
++      ')
++
++      files_search_spool($1)
++      manage_files_pattern($1, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
++')
++
++########################################
++## <summary>
++##    Manage TEMPLATETYPE spool dirs.
++## </summary>
++## <param name="domain">
++##    <summary>
++##    Domain allowed access.
++##    </summary>
++## </param>
++#
++interface(`TEMPLATETYPE_manage_spool_dirs',`
++      gen_require(`
++              type TEMPLATETYPE_spool_t;
++      ')
++
++      files_search_spool($1)
++      manage_dirs_pattern($1, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
++')
++
++"""
++
++if_admin_types="""
++              type TEMPLATETYPE_spool_t;"""
++
++if_admin_rules="""
++      files_search_spool($1)
++      admin_pattern($1, TEMPLATETYPE_spool_t)
++"""
++
++########################### File Context ##################################
++fc_file="""\
++FILENAME              --      gen_context(system_u:object_r:TEMPLATETYPE_spool_t,s0)
++"""
++
++fc_dir="""\
++FILENAME(/.*)?                gen_context(system_u:object_r:TEMPLATETYPE_spool_t,s0)
++"""
+diff --git a/policycoreutils/gui/usersPage.py b/policycoreutils/gui/usersPage.py
+new file mode 100644
+index 0000000..17c99df
+--- /dev/null
++++ b/policycoreutils/gui/usersPage.py
+@@ -0,0 +1,150 @@
++## usersPage.py - show selinux mappings
++## Copyright (C) 2006,2007,2008 Red Hat, 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.
++
++## Author: Dan Walsh
++import string
++import gtk
++import gtk.glade
++import os
++import gobject
++import sys
++import commands
++import seobject
++from semanagePage import *;
++
++##
++## I18N
++## 
++PROGNAME="policycoreutils"
++import gettext
++gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
++gettext.textdomain(PROGNAME)
++try:
++    gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1)
++except IOError:
++    import __builtin__
++    __builtin__.__dict__['_'] = unicode
++
++class usersPage(semanagePage):
++    def __init__(self, xml):
++        semanagePage.__init__(self, xml, "users", _("SELinux User"))
++
++        self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
++        self.view.set_model(self.store)
++        self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)        
++
++        col = gtk.TreeViewColumn(_("SELinux\nUser"), gtk.CellRendererText(), text = 0)
++        col.set_sort_column_id(0)
++        col.set_resizable(True)
++        self.view.append_column(col)
++
++        col = gtk.TreeViewColumn(_("MLS/\nMCS Range"), gtk.CellRendererText(), text = 1)
++        col.set_resizable(True)
++        self.view.append_column(col)
++
++        col = gtk.TreeViewColumn(_("SELinux Roles"), gtk.CellRendererText(), text = 2)
++        col.set_resizable(True)
++        self.view.append_column(col)
++
++        self.load()
++        self.selinuxUserEntry = xml.get_widget("selinuxUserEntry")
++        self.mlsRangeEntry = xml.get_widget("mlsRangeEntry")
++        self.selinuxRolesEntry = xml.get_widget("selinuxRolesEntry")
++
++    def load(self, filter = ""):
++        self.filter=filter            
++        self.user = seobject.seluserRecords()
++        dict = self.user.get_all()
++        keys = dict.keys()
++        keys.sort()
++        self.store.clear()
++        for k in keys:
++            range = seobject.translate(dict[k][2])
++            if not (self.match(k, filter) or self.match(dict[k][0], filter) or self.match(range, filter) or self.match(dict[k][3], filter)):
++                continue
++            
++            iter = self.store.append()
++            self.store.set_value(iter, 0, k)
++            self.store.set_value(iter, 1, range)
++            self.store.set_value(iter, 2, dict[k][3])
++        self.view.get_selection().select_path ((0,))
++
++    def delete(self):
++        if semanagePage.delete(self) == gtk.RESPONSE_NO:
++                return None
++
++    def dialogInit(self):
++        store, iter = self.view.get_selection().get_selected()
++        self.selinuxUserEntry.set_text(store.get_value(iter, 0))
++        self.selinuxUserEntry.set_sensitive(False)
++        self.mlsRangeEntry.set_text(store.get_value(iter, 1))
++        self.selinuxRolesEntry.set_text(store.get_value(iter, 2))
++        
++    def dialogClear(self):
++        self.selinuxUserEntry.set_text("")
++        self.selinuxUserEntry.set_sensitive(True)
++        self.mlsRangeEntry.set_text("s0")
++        self.selinuxRolesEntry.set_text("")
++        
++    def add(self):
++        user = self.selinuxUserEntry.get_text()
++        range = self.mlsRangeEntry.get_text()
++        roles = self.selinuxRolesEntry.get_text()
++
++        self.wait()
++        (rc, out) = commands.getstatusoutput("semanage user -a -R '%s' -r %s %s" %  (roles, range, user))
++        self.ready()
++        if rc != 0:
++            self.error(out)
++            return False
++        iter = self.store.append()
++        self.store.set_value(iter, 0, user)
++        self.store.set_value(iter, 1, range)
++        self.store.set_value(iter, 2, roles)
++        
++    def modify(self):
++        user = self.selinuxUserEntry.get_text()
++        range = self.mlsRangeEntry.get_text()
++        roles = self.selinuxRolesEntry.get_text()
++
++        self.wait()
++        (rc, out) = commands.getstatusoutput("semanage user -m -R '%s' -r %s %s" %  (roles, range, user))
++        self.ready()
++
++        if rc != 0:
++            self.error(out)
++            return False
++        self.load(self.filter)
++
++    def delete(self):
++        store, iter = self.view.get_selection().get_selected()
++        try:
++            user=store.get_value(iter, 0)
++            if user == "root" or user == "user_u":
++                raise ValueError(_("SELinux user '%s' is required") % user)
++                
++            self.wait()
++            (rc, out) = commands.getstatusoutput("semanage user -d %s" %  user)
++            self.ready()
++            if rc != 0:
++                self.error(out)
++                return False
++            store.remove(iter)
++            self.view.get_selection().select_path ((0,))
++        except ValueError, e:
++            self.error(e.args[0])
++
+diff --git a/policycoreutils/load_policy/Makefile b/policycoreutils/load_policy/Makefile
+index 5da2e0d..0e9d66f 100644
+--- a/policycoreutils/load_policy/Makefile
++++ b/policycoreutils/load_policy/Makefile
+@@ -19,7 +19,7 @@ install: all
+       test -d $(MANDIR)/man8 || install -m 755 -d $(MANDIR)/man8
+       install -m 644 load_policy.8 $(MANDIR)/man8/
+       -mkdir -p $(USRSBINDIR)
+-      -ln -sf /sbin/load_policy $(USRSBINDIR)/load_policy
++      -ln -s /sbin/load_policy $(USRSBINDIR)/load_policy
+ clean:
+       -rm -f $(TARGETS) *.o 
+diff --git a/policycoreutils/mcstrans/man/man8/mcstransd.8 b/policycoreutils/mcstrans/man/man8/mcstransd.8
+index 4c63965..718fd85 100644
+--- a/policycoreutils/mcstrans/man/man8/mcstransd.8
++++ b/policycoreutils/mcstrans/man/man8/mcstransd.8
+@@ -3,7 +3,7 @@
+ mcstransd \- MCS (Multiple Category System) daemon.  Translates SELinux MCS/MLS labels to human readable form.
+ .SH "SYNOPSIS"
+-.B mcstransd 
++.B mcstransd [-f] [-h]
+ .P
+ .SH "DESCRIPTION"
+@@ -12,6 +12,13 @@ This manual page describes the
+ program.
+ .P
+ This daemon reads /etc/selinux/{SELINUXTYPE}/setrans.conf configuration file, and communicates with libselinux via a socket in /var/run/setrans.
++.SH "OPTIONS"
++.TP
++-f
++Run mcstransd in the foreground.  Do not run as a daemon.
++.TP
++-h
++Output a short summary of available command line options\&.  
+ .SH "AUTHOR"
+ This man page was written by Dan Walsh <dwalsh@redhat.com>.
+diff --git a/policycoreutils/mcstrans/src/mcstransd.c b/policycoreutils/mcstrans/src/mcstransd.c
+index 26d9be8..a65076d 100644
+--- a/policycoreutils/mcstrans/src/mcstransd.c
++++ b/policycoreutils/mcstrans/src/mcstransd.c
+@@ -1,5 +1,4 @@
+ /* Copyright (c) 2006 Trusted Computer Solutions, Inc. */
+-
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/poll.h>
+@@ -13,6 +12,7 @@
+ #include <signal.h>
+ #include <string.h>
+ #include <syslog.h>
++#include <unistd.h>
+ #include <selinux/selinux.h>
+ #include <sys/types.h>
+ #include <sys/capability.h>
+@@ -556,9 +556,31 @@ void dropprivs(void)
+       cap_free(new_caps);
+ }
++static void usage(char *program)
++{
++      printf("%s [-f] [-h] \n", program);
++}
++
+ int
+-main(int UNUSED(argc), char *argv[])
++main(int argc, char *argv[])
+ {
++      int opt;
++      int do_fork = 1;
++      while ((opt = getopt(argc, argv, "hf")) > 0) {
++              switch (opt) {
++              case 'f':
++                      do_fork = 0;
++                      break;
++              case 'h':
++                      usage(argv[0]);
++                      exit(0);
++                      break;
++              case '?':
++                      usage(argv[0]);
++                      exit(-1);
++              }
++      }
++
+ #ifndef DEBUG
+       /* Make sure we are root */
+       if (getuid() != 0) {
+@@ -576,7 +598,7 @@ main(int UNUSED(argc), char *argv[])
+       dropprivs();
+       /* run in the background as a daemon */
+-      if (daemon(0, 0)) {
++      if (do_fork && daemon(0, 0)) {
+               syslog(LOG_ERR, "daemon() failed: %m");
+               cleanup_exit(1);
+       }
+diff --git a/policycoreutils/newrole/newrole.c b/policycoreutils/newrole/newrole.c
+index 42f08d0..989817b 100644
+--- a/policycoreutils/newrole/newrole.c
++++ b/policycoreutils/newrole/newrole.c
+@@ -543,14 +543,14 @@ static int restore_environment(int preserve_environment,
+ #if defined(AUDIT_LOG_PRIV) && !defined(NAMESPACE_PRIV)
+ static int drop_capabilities(int full)
+ {
++      uid_t uid = getuid();
++      if (!uid) return 0;
++
+       capng_setpid(getpid());
+       capng_clear(CAPNG_SELECT_BOTH);
+       if (capng_lock() < 0) 
+               return -1;
+-      uid_t uid = getuid();
+-      if (!uid) return 0;
+-
+       /* Change uid */
+       if (setresuid(uid, uid, uid)) {
+               fprintf(stderr, _("Error changing uid, aborting.\n"));
+@@ -1032,10 +1032,11 @@ int main(int argc, char *argv[])
+        * if it makes sense to continue to run newrole, and setting up
+        * a scrubbed environment.
+        */
+-      if (drop_capabilities(FALSE)) {
++/*    if (drop_capabilities(FALSE)) {
+               perror(_("Sorry, newrole failed to drop capabilities\n"));
+               return -1;
+       }
++*/
+       if (set_signal_handles())
+               return -1;
+diff --git a/policycoreutils/po/Makefile b/policycoreutils/po/Makefile
+index a52e4b0..1b8c8c0 100644
+--- a/policycoreutils/po/Makefile
++++ b/policycoreutils/po/Makefile
+@@ -45,7 +45,34 @@ POTFILES = \
+       ../restorecond/stringslist.h \
+       ../restorecond/restorecond.c \
+       ../restorecond/utmpwatcher.c \
+-      ../secon/secon.c \
++      ../gui/booleansPage.py \
++      ../gui/fcontextPage.py \
++      ../gui/loginsPage.py \
++      ../gui/mappingsPage.py \
++      ../gui/modulesPage.py \
++      ../gui/polgen.glade \
++      ../gui/polgengui.py \
++      ../gui/polgen.py \
++      ../gui/portsPage.py \
++      ../gui/selinux.tbl \
++      ../gui/semanagePage.py \
++      ../gui/statusPage.py \
++      ../gui/system-config-selinux.glade \
++      ../gui/system-config-selinux.py \
++      ../gui/usersPage.py \
++      ../gui/templates/executable.py \
++      ../gui/templates/__init__.py \
++      ../gui/templates/network.py \
++      ../gui/templates/rw.py \
++      ../gui/templates/script.py \
++      ../gui/templates/semodule.py \
++      ../gui/templates/tmp.py \
++      ../gui/templates/user.py \
++      ../gui/templates/var_lib.py \
++      ../gui/templates/var_log.py \
++      ../gui/templates/var_run.py \
++      ../gui/templates/var_spool.py \
++      ../secon/secon.c
+ #default:: clean
+diff --git a/policycoreutils/po/POTFILES b/policycoreutils/po/POTFILES
+index 7d9ad7d..667e394 100644
+--- a/policycoreutils/po/POTFILES
++++ b/policycoreutils/po/POTFILES
+@@ -1,26 +1,50 @@
+-      ../run_init/open_init_pty.c \
+-      ../run_init/run_init.c \
+-      ../semodule_link/semodule_link.c \
+-      ../audit2allow/audit2allow \
+-      ../semanage/seobject.py \
+-      ../restorecon/restorecon.c \
+-      ../setsebool/setsebool.c \
+-      ../newrole/newrole.c \
+-      ../load_policy/load_policy.c \
+-      ../sestatus/sestatus.c \
+-      ../semodule/semodule.c \
+-      ../setfiles/setfiles.c \
+-      ../semodule_package/semodule_package.c \
+-      ../semodule_deps/semodule_deps.c \
+-      ../semodule_expand/semodule_expand.c \
+-      ../scripts/genhomedircon \
+-      ../scripts/chcat \
+-      ../scripts/fixfiles \
+-      ../restorecond/stringslist.c \
+-      ../restorecond/restorecond.h \
+-      ../restorecond/utmpwatcher.h \
+-      ../restorecond/stringslist.h \
+-      ../restorecond/restorecond.c \
+-      ../restorecond/utmpwatcher.c \
+-      ../secon/secon.c \
+-
++      ../run_init/open_init_pty.c
++      ../run_init/run_init.c
++      ../semodule_link/semodule_link.c
++      ../audit2allow/audit2allow
++      ../semanage/seobject.py
++      ../setsebool/setsebool.c
++      ../newrole/newrole.c
++      ../load_policy/load_policy.c
++      ../sestatus/sestatus.c
++      ../semodule/semodule.c
++      ../setfiles/setfiles.c
++      ../semodule_package/semodule_package.c
++      ../semodule_deps/semodule_deps.c
++      ../semodule_expand/semodule_expand.c
++      ../scripts/chcat
++      ../scripts/fixfiles
++      ../restorecond/stringslist.c
++      ../restorecond/restorecond.h
++      ../restorecond/utmpwatcher.h
++      ../restorecond/stringslist.h
++      ../restorecond/restorecond.c
++      ../restorecond/utmpwatcher.c
++      ../gui/booleansPage.py
++      ../gui/fcontextPage.py
++      ../gui/loginsPage.py
++      ../gui/mappingsPage.py
++      ../gui/modulesPage.py
++      ../gui/polgen.glade
++      ../gui/polgengui.py
++      ../gui/polgen.py
++      ../gui/portsPage.py
++      ../gui/selinux.tbl
++      ../gui/semanagePage.py
++      ../gui/statusPage.py
++      ../gui/system-config-selinux.glade
++      ../gui/system-config-selinux.py
++      ../gui/usersPage.py
++      ../gui/templates/executable.py
++      ../gui/templates/__init__.py
++      ../gui/templates/network.py
++      ../gui/templates/rw.py
++      ../gui/templates/script.py
++      ../gui/templates/semodule.py
++      ../gui/templates/tmp.py
++      ../gui/templates/user.py
++      ../gui/templates/var_lib.py
++      ../gui/templates/var_log.py
++      ../gui/templates/var_run.py
++      ../gui/templates/var_spool.py
++      ../secon/secon.c
+diff --git a/policycoreutils/po/POTFILES.in b/policycoreutils/po/POTFILES.in
+index 0cbf0a9..aab1a4e 100644
+--- a/policycoreutils/po/POTFILES.in
++++ b/policycoreutils/po/POTFILES.in
+@@ -34,7 +34,6 @@ gui/semanagePage.py
+ gui/statusPage.py
+ gui/system-config-selinux.glade
+ gui/system-config-selinux.py
+-gui/translationsPage.py
+ gui/usersPage.py
+ gui/templates/executable.py
+ gui/templates/__init__.py
+diff --git a/policycoreutils/po/af.po b/policycoreutils/po/af.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/af.po
++++ b/policycoreutils/po/af.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/am.po b/policycoreutils/po/am.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/am.po
++++ b/policycoreutils/po/am.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/ar.po b/policycoreutils/po/ar.po
+index afeaa9f..30906fe 100644
+--- a/policycoreutils/po/ar.po
++++ b/policycoreutils/po/ar.po
+@@ -1,21 +1,27 @@
+ # SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
+-#, fuzzy
++# Translators:
++# Ali Al-Ammari <ali.a.alammari@gmail.com>, 2010.
++# Amjad Al-Obaili <moltaheb@hotmail.com>, 2010.
++# Majed Abdullah <majed1ksu@hotmail.com>, 2010.
++# Munzir Taha <munzirtaha@gmail.com>, 2012.
++# Saud Al-Otaibi <ss08ss08@hotmail.com>, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Arabic <trans-ar@lists.fedoraproject.org>\n"
++"Language: ar\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
++"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -23,128 +29,131 @@ msgid ""
+ "  where: <script> is the name of the init script to run,\n"
+ "         <args ...> are the arguments to that script."
+ msgstr ""
++"الاستخدام: run_init <script> <args ...>\n"
++"  Ø¹Ù†Ø¯: <script> Ù‡Ùˆ Ø§Ø³Ù… Ø¨Ø±Ù†Ø§Ù…ج init Ø§Ù„نصي Ø§Ù„ذي Ø³ÙŠØ¹Ù…Ù„,\n"
++"         <args ...> Ù‡ÙŠ Ø§Ù„مدخلات Ù„هذا Ø§Ù„برنامج Ø§Ù„نصي."
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+ #, c-format
+ msgid "failed to initialize PAM\n"
+-msgstr ""
++msgstr "خطأ ÙÙŠ ØªÙ‡ÙŠØ¦Ø© PAM\n"
+ #: ../run_init/run_init.c:139
+ #, c-format
+ msgid "failed to get account information\n"
+-msgstr ""
++msgstr "خطأ ÙÙŠ Ø§Ù„حصول Ø¹Ù„Ù‰ Ù…علومات Ø§Ù„حساب\n"
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+-msgstr ""
++msgstr "كلمة Ø§Ù„مرور:"
+ #: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+ #, c-format
+ msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
++msgstr "لم ÙŠØªÙ… Ø§Ù„عثور Ø¹Ù„Ù‰ Ø­Ø³Ø§Ø¨Ùƒ ÙÙŠ Ù…ل٠كلمات Ø§Ù„سر Ø§Ù„مظللة (passwd).\n"
+ #: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+ #, c-format
+ msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
++msgstr "لم ÙŠØ³ØªØ·Ø¹ getpass Ùتح /dev/tty\n"
+ #: ../run_init/run_init.c:275
+ #, c-format
+ msgid "run_init: incorrect password for %s\n"
+-msgstr ""
++msgstr "run_init: ÙƒÙ„مة Ù…رور Ø®Ø§Ø·Ø¦Ø© Ù„Ù€ %s\n"
+ #: ../run_init/run_init.c:309
+ #, c-format
+ msgid "Could not open file %s\n"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ùتح Ø§Ù„مل٠%s\n"
+ #: ../run_init/run_init.c:336
+ #, c-format
+ msgid "No context in file %s\n"
+-msgstr ""
++msgstr "لا ÙŠÙˆØ¬Ø¯ Ø³ÙŠØ§Ù‚ ÙÙŠ Ø§Ù„مل٠%s\n"
+ #: ../run_init/run_init.c:361
+ #, c-format
+ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
++msgstr "عÙوا، Ù„ا ÙŠÙ…كن Ø§Ø³ØªØ¹Ù…ال run_init Ø¥Ù„ا Ø¹Ù„Ù‰ Ù†ÙˆØ§Ø© SELinux.\n"
+ #: ../run_init/run_init.c:380
+ #, c-format
+ msgid "authentication failed.\n"
+-msgstr ""
++msgstr "Ùشل ÙÙŠ Ø§Ù„توثيق.\n"
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+ #, c-format
+ msgid "Could not set exec context to %s.\n"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø³ÙŠØ§Ù‚ exec Ù„Ù€ %s.\n"
+ #: ../audit2allow/audit2allow:230
+ msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
++msgstr "******************** Ù…هم ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr ""
++msgstr "لتÙعيل Ø­Ø²Ù…Ø© Ø§Ù„سياسات Ù‡Ø°Ù‡ØŒ Ù†ÙØ°:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "شامل"
+ #: ../semanage/seobject.py:222
+ msgid "Could not create semanage handle"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ Ù…عالج semanage"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
++msgstr "سياسة SELinux ØºÙŠØ± Ù…Ùدارة Ø£Ùˆ Ù„ا ÙŠÙ…كن Ø§Ù„وصول Ø¥Ù„Ù‰ Ø§Ù„مخزن."
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ù‚راءة Ù…خزن Ø§Ù„سياسات."
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن  Ø¥Ù†Ø´Ø§Ø¡ Ø§ØªØµØ§Ù„ semanage"
+ #: ../semanage/seobject.py:245
+ msgid "Could not test MLS enabled status"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ø®ØªØ¨Ø§Ø± Ø­Ø§Ù„Ø© ØªÙعيل MLS"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "غير Ù…طبقة Ø¨Ø¹Ø¯"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "عملية semanage ØªØ­Øª Ø§Ù„تنÙيذ"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¨Ø¯Ø¡ Ø¹Ù…لية semanage"
+ #: ../semanage/seobject.py:274
+ msgid "Could not commit semanage transaction"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن ØªÙ†Ùيذ Ø¹Ù…لية semanage"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "عملية semanage Ù„يست ØªØ­Øª Ø§Ù„تنÙيذ"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+ msgid "Could not list SELinux modules"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة ÙˆØ­Ø¯Ø§Øª SELinux"
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+-msgstr ""
++msgstr "اسم Ø§Ù„وحدة"
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+-msgstr ""
++msgstr "إصدار"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr ""
++msgstr "معطّل"
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -176,12 +185,12 @@ msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø§Ù„نطاق Ø§Ù„متساهل %s (خطأ ÙÙŠ ØªØ«Ø¨ÙŠØª Ø§Ù„وحدة)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ø²Ø§Ù„Ø© Ø§Ù„نطاق Ø§Ù„متساهل %s (Ùشل ÙÙŠ Ø§Ù„إزالة)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -192,212 +201,218 @@ msgstr ""
+ #: ../semanage/seobject.py:2037
+ #, python-format
+ msgid "Could not create a key for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ Ù…Ùتاح Ù„Ù€ %s"
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+ #, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ù„تحقق ÙÙŠ Ø¥Ø°Ø§ Ù…ا ÙƒØ§Ù† Ù…خطط Ø§Ù„دخول Ù„Ù€ %s Ù…عرÙا"
+ #: ../semanage/seobject.py:492
+ #, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr ""
++msgstr "مجموعة Ù„ينكس %s ØºÙŠØ± Ù…وجودة"
+ #: ../semanage/seobject.py:497
+ #, python-format
+ msgid "Linux User %s does not exist"
+-msgstr ""
++msgstr "مستخدم Ù„ينكس %s ØºÙŠØ± Ù…وجود"
+ #: ../semanage/seobject.py:501
+ #, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ Ù…خطط Ø§Ù„دخول Ù„Ù€ %s"
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+ msgid "Could not set name for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø§Ø³Ù… Ù„Ù€ %s"
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+ #, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù…دى MLS Ù„Ù€ %s"
+ #: ../semanage/seobject.py:514
+ #, python-format
+ msgid "Could not set SELinux user for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù…ستخدم SELinux Ù„Ù€ %s"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ø¶Ø§ÙØ© Ù…خطط Ø§Ù„دخول Ù„Ù€ %s"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+-msgstr ""
++msgstr "بحاجة Ø¥Ù„Ù‰ seuser Ø£Ùˆ serange"
+ #: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+ #, python-format
+ msgid "Login mapping for %s is not defined"
+-msgstr ""
++msgstr "مخطط Ø§Ù„دخول Ù„Ù€ %s ØºÙŠØ± Ù…عرّÙ"
+ #: ../semanage/seobject.py:563
+ #, python-format
+ msgid "Could not query seuser for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ø³ØªØ¹Ù„ام seuser Ù„Ù€ %s"
+ #: ../semanage/seobject.py:577
+ #, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن ØªØºÙŠÙŠØ± Ù…خطط Ø§Ù„دخول Ù„Ù€ %s"
+ #: ../semanage/seobject.py:611
+ #, python-format
+ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "تخطيط Ø§Ù„دخول Ù„Ù€ %s Ù…عر٠ÙÙŠ Ø§Ù„سياسة، Ù„ا ÙŠÙ…كن Ø­Ø°ÙÙ‡"
+ #: ../semanage/seobject.py:615
+ #, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø­Ø°Ù ØªØ®Ø·ÙŠØ· Ø§Ù„دخول Ù„Ù€ %s"
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+ msgid "Could not list login mappings"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة ØªØ®Ø·ÙŠØ·Ø§Øª Ø§Ù„دخول"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+-msgstr ""
++msgstr "اسم Ø§Ù„دخول"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr ""
++msgstr "مستخدم SELinux"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+-msgstr ""
++msgstr "مدى MLS/MCS"
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+ #: ../semanage/seobject.py:860
+ #, python-format
+ msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ù„تحقق Ù…Ù† Ø¥Ø°Ø§ ÙƒØ§Ù† Ù…ستخدم SELinux %s Ù…عرÙا"
+ #: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+ #: ../semanage/seobject.py:866
+ #, python-format
+ msgid "Could not query user for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ø³ØªØ¹Ù„ام Ø§Ù„مستخدم Ø¹Ù† %s"
+ #: ../semanage/seobject.py:722
+ #, python-format
+ msgid "You must add at least one role for %s"
+-msgstr ""
++msgstr "يجب Ø¥Ø¶Ø§ÙØ© Ø¯ÙˆØ± ÙˆØ§Ø­Ø¯ Ø¹Ù„Ù‰ Ø§Ù„أقل Ù„Ù€ %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+ msgid "Could not create SELinux user for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ Ù…ستخدم SELinux Ù„Ù€ %s"
+ #: ../semanage/seobject.py:746
+ #, python-format
+ msgid "Could not add role %s for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ø¶Ø§ÙØ© Ø¯ÙˆØ± %s Ù„Ù€ %s"
+ #: ../semanage/seobject.py:755
+ #, python-format
+ msgid "Could not set MLS level for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù…ستوى MLS Ù„Ù€ %s"
+ #: ../semanage/seobject.py:758
+ #, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ø¶Ø§ÙØ© Ø§Ù„بادئة %s Ù„Ù€ %s"
+ #: ../semanage/seobject.py:761
+ #, python-format
+ msgid "Could not extract key for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ø³ØªØ®Ø±Ø§Ø¬ Ù…Ùتاح Ù„Ù€ %s"
+ #: ../semanage/seobject.py:765
+ #, python-format
+ msgid "Could not add SELinux user %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ø¶Ø§ÙØ© Ù…ستخدم SELinux %s"
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+-msgstr ""
++msgstr "يحتاج Ø¥Ù„Ù‰ Ø¨Ø§Ø¯Ø¦Ø©ØŒ Ø£Ø¯ÙˆØ§Ø±ØŒ Ù…ستويات Ø£Ùˆ Ù…دى"
+ #: ../semanage/seobject.py:789
+ msgid "Requires prefix or roles"
+-msgstr ""
++msgstr "يحتاج Ø¥Ù„Ù‰ Ø¨Ø§Ø¯Ø¦Ø© Ø£Ùˆ Ø£Ø¯ÙˆØ§Ø±"
+ #: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+ #, python-format
+ msgid "SELinux user %s is not defined"
+-msgstr ""
++msgstr "مستخدم SELinux %s ØºÙŠØ± Ù…عرÙ"
+ #: ../semanage/seobject.py:828
+ #, python-format
+ msgid "Could not modify SELinux user %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن ØªØ¹Ø¯ÙŠÙ„ Ù…ستخدم SELinux %s"
+ #: ../semanage/seobject.py:862
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "مستخدم SELinux Ù„Ù€ %s Ù…عر٠ÙÙŠ Ø§Ù„سياسة، Ù„ا ÙŠÙ…كن Ø­Ø°ÙÙ‡"
+ #: ../semanage/seobject.py:873
+ #, python-format
+ msgid "Could not delete SELinux user %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø­Ø°Ù Ù…ستخدم SELinux %s"
+ #: ../semanage/seobject.py:911
+ msgid "Could not list SELinux users"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة Ù…ستخدمي SELinux"
+ #: ../semanage/seobject.py:917
+ #, python-format
+ msgid "Could not list roles for user %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة Ø£Ø¯ÙˆØ§Ø± Ø§Ù„مستخدم %s"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr ""
++msgstr "عنونة"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+-msgstr ""
++msgstr "MLS/"
+ #: ../semanage/seobject.py:943
+ msgid "Prefix"
+-msgstr ""
++msgstr "بادئة"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Level"
+-msgstr ""
++msgstr "مستوى MSC"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Range"
+-msgstr ""
++msgstr "مدى MSC"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+-msgstr ""
++msgstr "أدوار SELinux"
+ #: ../semanage/seobject.py:963
+ msgid "Protocol udp or tcp is required"
+-msgstr ""
++msgstr "بروتوكول udp Ø£Ùˆ tcp Ù…طلوب"
+ #: ../semanage/seobject.py:965
+ msgid "Port is required"
+-msgstr ""
++msgstr "المنÙØ° Ù…طلوب"
+ #: ../semanage/seobject.py:975
+ msgid "Invalid Port"
+@@ -406,134 +421,134 @@ msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+ msgid "Could not create a key for %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ Ù…Ùتاح Ù„Ù€ %s/%s"
+ #: ../semanage/seobject.py:990
+ msgid "Type is required"
+-msgstr ""
++msgstr "النوع Ù…طلوب"
+ #: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+ #: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+ #, python-format
+ msgid "Could not check if port %s/%s is defined"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ù„تحقق Ù…Ù† Ø¥Ø°Ø§ ÙƒØ§Ù† Ø§Ù„منÙØ° %s/%s Ù…عرÙا"
+ #: ../semanage/seobject.py:998
+ #, python-format
+ msgid "Port %s/%s already defined"
+-msgstr ""
++msgstr "المنÙØ° %s/%s Ù…عر٠مسبقا"
+ #: ../semanage/seobject.py:1002
+ #, python-format
+ msgid "Could not create port for %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ Ù…Ù†ÙØ° Ù„Ù€ %s/%s"
+ #: ../semanage/seobject.py:1008
+ #, python-format
+ msgid "Could not create context for %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ Ø³ÙŠØ§Ù‚ Ù„Ù€ %s/%s"
+ #: ../semanage/seobject.py:1012
+ #, python-format
+ msgid "Could not set user in port context for %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù…ستخدم ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„منÙØ° Ù„Ù€ %s/%s"
+ #: ../semanage/seobject.py:1016
+ #, python-format
+ msgid "Could not set role in port context for %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø¯ÙˆØ± ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„منÙØ° Ù„Ù€ %s/%s"
+ #: ../semanage/seobject.py:1020
+ #, python-format
+ msgid "Could not set type in port context for %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù†ÙˆØ¹ ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„منÙØ° Ù„Ù€ %s/%s"
+ #: ../semanage/seobject.py:1025
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø­Ù‚Ù„ mls ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„منÙØ° Ù„Ù€ %s/%s"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+ msgid "Could not set port context for %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø³ÙŠØ§Ù‚ Ø§Ù„منÙØ° Ù„Ù€ %s/%s"
+ #: ../semanage/seobject.py:1033
+ #, python-format
+ msgid "Could not add port %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ø¶Ø§ÙØ© Ø§Ù„منÙØ° %s/%s"
+ #: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+ #: ../semanage/seobject.py:1508
+ msgid "Requires setype or serange"
+-msgstr ""
++msgstr "يتطلب setype Ø£Ùˆ serange"
+ #: ../semanage/seobject.py:1049
+ msgid "Requires setype"
+-msgstr ""
++msgstr "يتطلب setype"
+ #: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+ #, python-format
+ msgid "Port %s/%s is not defined"
+-msgstr ""
++msgstr "المنÙØ° %s/%s ØºÙŠØ± Ù…عرÙØ©"
+ #: ../semanage/seobject.py:1061
+ #, python-format
+ msgid "Could not query port %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ø³ØªØ¹Ù„ام Ø§Ù„منÙØ° %s/%s"
+ #: ../semanage/seobject.py:1072
+ #, python-format
+ msgid "Could not modify port %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن ØªØ¹Ø¯ÙŠÙ„ Ø§Ù„منÙØ° %s/%s"
+ #: ../semanage/seobject.py:1085
+ msgid "Could not list the ports"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة Ø§Ù„مناÙØ°"
+ #: ../semanage/seobject.py:1101
+ #, python-format
+ msgid "Could not delete the port %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø­Ø°Ù Ø§Ù„منÙØ° %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+ msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "المنÙØ° %s/%s Ù…عر٠ÙÙŠ Ø§Ù„سياسة، Ù„ا ÙŠÙ…كن Ø­Ø°ÙÙ‡"
+ #: ../semanage/seobject.py:1122
+ #, python-format
+ msgid "Could not delete port %s/%s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø­Ø°Ù Ø§Ù„منÙØ° %s/%s"
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+ msgid "Could not list ports"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة Ø§Ù„مناÙØ°"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+-msgstr ""
++msgstr "نوع Ù…Ù†ÙØ° SELinux"
+ #: ../semanage/seobject.py:1199
+ msgid "Proto"
+-msgstr ""
++msgstr "الأول"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+-msgstr ""
++msgstr "رقم Ø§Ù„منÙØ°"
+ #: ../semanage/seobject.py:1218
+ msgid "Node Address is required"
+-msgstr ""
++msgstr "عنوان Ø§Ù„عقدة Ù…طلوب"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "البروتوكول ØºÙŠØ± Ù…عرو٠أو Ù…Ùقود"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+ msgid "SELinux Type is required"
+-msgstr ""
++msgstr "نوع SELinux Ù…طلوب"
+ #: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+ #: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+@@ -541,84 +556,84 @@ msgstr ""
+ #: ../semanage/seobject.py:1728
+ #, python-format
+ msgid "Could not create key for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ Ù…Ùتاح Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+ #, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ù„تحقق Ù…Ù† Ø¥Ø°Ø§ ÙƒØ§Ù† Ø§Ù„عنوان %s Ù…عرÙا"
+ #: ../semanage/seobject.py:1262
+ #, python-format
+ msgid "Could not create addr for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ Ø§Ù„عنوان Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+ #, python-format
+ msgid "Could not create context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ Ø³ÙŠØ§Ù‚ Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1272
+ #, python-format
+ msgid "Could not set mask for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù‚ناع Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1276
+ #, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù…ستخدم ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„عنوان Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1280
+ #, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø¯ÙˆØ± ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„عنوان Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1284
+ #, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù†ÙˆØ¹ ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„عنوان Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1289
+ #, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø­Ù‚Ù„ mls ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„عنوان Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1293
+ #, python-format
+ msgid "Could not set addr context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø³ÙŠØ§Ù‚ Ø§Ù„عنوان Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1297
+ #, python-format
+ msgid "Could not add addr %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ø¶Ø§ÙØ© Ø§Ù„عنوان %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+ #, python-format
+ msgid "Addr %s is not defined"
+-msgstr ""
++msgstr "العنوان %s ØºÙŠØ± Ù…عرÙ"
+ #: ../semanage/seobject.py:1326
+ #, python-format
+ msgid "Could not query addr %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ø³ØªØ¹Ù„ام Ø§Ù„عنوان %s"
+ #: ../semanage/seobject.py:1336
+ #, python-format
+ msgid "Could not modify addr %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن ØªØ¹Ø¯ÙŠÙ„ Ø§Ù„عنوان %s"
+ #: ../semanage/seobject.py:1364
+ #, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "العنوان %s Ù…عر٠ÙÙŠ Ø§Ù„سياسة، Ù„ا ÙŠÙ…كن Ø­Ø°ÙÙ‡"
+ #: ../semanage/seobject.py:1368
+ #, python-format
+ msgid "Could not delete addr %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø­Ø°Ù Ø§Ù„عنوان %s"
+ #: ../semanage/seobject.py:1380
+ msgid "Could not deleteall node mappings"
+@@ -626,78 +641,78 @@ msgstr ""
+ #: ../semanage/seobject.py:1394
+ msgid "Could not list addrs"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة Ø§Ù„عناوين"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+ #, python-format
+ msgid "Could not check if interface %s is defined"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ù„تحقق Ù…Ù† Ø¥Ø°Ø§ ÙƒØ§Ù†Øª Ø§Ù„واجهة %s Ù…عرÙØ©"
+ #: ../semanage/seobject.py:1461
+ #, python-format
+ msgid "Could not create interface for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ ÙˆØ§Ø¬Ù‡Ø© Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù…ستخدم ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„واجهة Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø¯ÙˆØ± ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„واجهة Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù†ÙˆØ¹ ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„واجهة Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø­Ù‚Ù„ mls ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„واجهة Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø³ÙŠØ§Ù‚ Ø§Ù„منÙØ° Ù„Ù€ %s"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+ msgid "Could not set message context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø³ÙŠØ§Ù‚ Ø§Ù„رسالة Ù„%s"
+ #: ../semanage/seobject.py:1495
+ #, python-format
+ msgid "Could not add interface %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ø¶Ø§ÙØ© Ø§Ù„واجهة %s"
+ #: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+ #, python-format
+ msgid "Interface %s is not defined"
+-msgstr ""
++msgstr "الواجهة %s ØºÙŠØ± Ù…عرÙØ©"
+ #: ../semanage/seobject.py:1522
+ #, python-format
+ msgid "Could not query interface %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ø³ØªØ¹Ù„ام Ø§Ù„واجهة %s"
+ #: ../semanage/seobject.py:1533
+ #, python-format
+ msgid "Could not modify interface %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن ØªØ¹Ø¯ÙŠÙ„ Ø§Ù„واجهة %s"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+ msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "الواجهة %s Ù…عرÙØ© ÙÙŠ Ø§Ù„سياسة، Ù„ا ÙŠÙ…كن Ø­Ø°Ùها"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+ msgid "Could not delete interface %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø­Ø°Ù Ø§Ù„واجهة %s"
+ #: ../semanage/seobject.py:1574
+ msgid "Could not delete all interface  mappings"
+@@ -705,15 +720,15 @@ msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة Ø§Ù„واجهات"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+-msgstr ""
++msgstr "واجهة SELinux"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+-msgstr ""
++msgstr "سياق"
+ #: ../semanage/seobject.py:1663
+ #, python-format
+@@ -733,21 +748,21 @@ msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù…ستخدم ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„مل٠لـ %s"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø¯ÙˆØ± ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„مل٠لـ %s"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø­Ù‚Ù„ mls ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„مل٠لـ %s"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+-msgstr ""
++msgstr "مواصÙات Ù…ل٠خاطئة"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -764,82 +779,82 @@ msgstr ""
+ #: ../semanage/seobject.py:1876
+ #, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ù„تحقق Ù…Ù† Ø¥Ø°Ø§ ÙƒØ§Ù† Ø³ÙŠØ§Ù‚ Ø§Ù„مل٠لـ %s Ù…عرÙا"
+ #: ../semanage/seobject.py:1745
+ #, python-format
+ msgid "Could not create file context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ù†Ø´Ø§Ø¡ Ø³ÙŠØ§Ù‚ Ø§Ù„مل٠لـ %s"
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ù†ÙˆØ¹ ÙÙŠ Ø³ÙŠØ§Ù‚ Ø§Ù„مل٠لـ %s"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø³ÙŠØ§Ù‚ Ù…ل٠لـ %s"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+ msgid "Could not add file context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥Ø¶Ø§ÙØ© Ø³ÙŠØ§Ù‚ Ù…ل٠لـ %s"
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+-msgstr ""
++msgstr "يتطلب setypeØŒ serange Ø£Ùˆ seuser"
+ #: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+ #, python-format
+ msgid "File context for %s is not defined"
+-msgstr ""
++msgstr "سياق Ø§Ù„مل٠لـ %s ØºÙŠØ± Ù…عرÙ"
+ #: ../semanage/seobject.py:1800
+ #, python-format
+ msgid "Could not query file context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ø³ØªØ¹Ù„ام Ø³ÙŠØ§Ù‚ Ø§Ù„مل٠لـ %s"
+ #: ../semanage/seobject.py:1826
+ #, python-format
+ msgid "Could not modify file context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن ØªØ¹Ø¯ÙŠÙ„ Ø³ÙŠØ§Ù‚ Ø§Ù„مل٠لـ %s"
+ #: ../semanage/seobject.py:1839
+ msgid "Could not list the file contexts"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة Ø³ÙŠØ§Ù‚ات Ø§Ù„ملÙات"
+ #: ../semanage/seobject.py:1853
+ #, python-format
+ msgid "Could not delete the file context %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø­Ø°Ù Ø³ÙŠØ§Ù‚ Ø§Ù„مل٠%s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+ msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "سياق Ø§Ù„مل٠لـ %s Ù…عر٠ÙÙŠ Ø§Ù„سياسة، Ù„ا ÙŠÙ…كن Ø­Ø°ÙÙ‡"
+ #: ../semanage/seobject.py:1884
+ #, python-format
+ msgid "Could not delete file context for %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø­Ø°Ù Ø³ÙŠØ§Ù‚ Ø§Ù„مل٠لـ %s"
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة Ø³ÙŠØ§Ù‚ات Ø§Ù„ملÙات"
+ #: ../semanage/seobject.py:1903
+ msgid "Could not list local file contexts"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة Ø³ÙŠØ§Ù‚ات Ø§Ù„ملÙات Ø§Ù„محلية"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+-msgstr ""
++msgstr "SELinux fcontext"
+ #: ../semanage/seobject.py:1936
+ msgid "type"
+-msgstr ""
++msgstr "نوع"
+ #: ../semanage/seobject.py:1949
+ msgid ""
+@@ -857,67 +872,67 @@ msgstr ""
+ #: ../semanage/seobject.py:2046
+ #, python-format
+ msgid "Could not check if boolean %s is defined"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ù„تحقق Ù…Ù† Ø¥Ø°Ø§ ÙƒØ§Ù†Øª Ø§Ù„قيمة Ø§Ù„منطقية %s Ù…عرÙØ©"
+ #: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+ #, python-format
+ msgid "Boolean %s is not defined"
+-msgstr ""
++msgstr "القيمة Ø§Ù„منطقية %s ØºÙŠØ± Ù…عرÙØ©"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+ msgid "Could not query file context %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ø³ØªØ¹Ù„ام Ø³ÙŠØ§Ù‚ Ø§Ù„مل٠%s"
+ #: ../semanage/seobject.py:1999
+ #, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr ""
++msgstr "يجب Ø£Ù† ØªØ­Ø¯Ø¯ Ø£Ø­Ø¯ Ø§Ù„قيم Ø§Ù„تالية: %s"
+ #: ../semanage/seobject.py:2004
+ #, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¶Ø¨Ø· Ø§Ù„قيمة Ø§Ù„منطقية Ø§Ù„نشطة %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+ msgid "Could not modify boolean %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن ØªØ¹Ø¯ÙŠÙ„ Ø§Ù„قيمة Ø§Ù„منطقية %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "بنية Ø®Ø§Ø·Ø¦Ø© %s: Ø³Ø¬Ù‘Ù„ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "القيمة Ø§Ù„منطقية %s Ù…عرÙØ© ÙÙŠ Ø§Ù„سياسة، Ù„ا ÙŠÙ…كن Ø­Ø°Ùها"
+ #: ../semanage/seobject.py:2052
+ #, python-format
+ msgid "Could not delete boolean %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø­Ø°Ù Ø§Ù„قيمة Ø§Ù„منطقية %s"
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+ msgid "Could not list booleans"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¹Ø±Ø¶ Ù‚ائمة Ø§Ù„قيم Ø§Ù„منطقية"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "غير Ù…عروÙ"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "إلغاء Ø§Ù„تشغيل"
+ #: ../semanage/seobject.py:2117
+ msgid "on"
+-msgstr ""
++msgstr "تشغيل"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr ""
++msgstr "قيمة Ù…نطقية Ù„Ù€SELinux"
+ #: ../semanage/seobject.py:2131
+ msgid "State"
+@@ -927,344 +942,2434 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "وصÙ"
+ #: ../newrole/newrole.c:201
+ #, c-format
+ msgid "failed to set PAM_TTY\n"
+-msgstr ""
++msgstr "خطأ ÙÙŠ Ø¶Ø¨Ø· PAM_TTY\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
++msgstr "دور Ø¬Ø¯ÙŠØ¯: Ø¬Ø¯ÙˆÙ„ Ù…ختصرات Ø¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø£Ø³Ù…اء Ø§Ù„خدمات Ùائضة\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
++msgstr "دور Ø¬Ø¯ÙŠØ¯: %s: Ø®Ø·Ø£ ÙÙŠ Ø³Ø·Ø± %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+ msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
++msgstr "لم ÙŠØªÙ… Ø§Ù„وجود Ø¹Ù„Ù‰ Ù‚يد ØµØ§Ù„Ø­ ÙÙŠ Ù…ل٠كلمات Ø§Ù„سر (passwd).\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+ msgid "Out of memory!\n"
+-msgstr ""
++msgstr "Ù†Ùذت Ø§Ù„ذاكرة!\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr ""
++msgstr "خطأ! Ø§Ù„قشرة (Shell) ØºÙŠØ± ØµØ§Ù„حة.\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+ msgid "Unable to clear environment\n"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن ÙÙŠ Ø¥Ø®Ù„اء Ø§Ù„بيئة\n"
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+ msgid "Error changing uid, aborting.\n"
+-msgstr ""
++msgstr "خطأ ÙÙŠ ØªØºÙŠÙŠØ± uidØŒ Ø³ÙŠØªÙ… Ø§Ù„إلغاء.\n"
+ #: ../newrole/newrole.c:612
+ #, c-format
+ msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
++msgstr "خطأ ÙÙŠ Ø¥Ø¹Ø§Ø¯Ø© KEEPCAPSØŒ Ø³ÙŠØªÙ… Ø§Ù„إلغاء.\n"
+ #: ../newrole/newrole.c:635
+ #, c-format
+ msgid "Error connecting to audit system.\n"
+-msgstr ""
++msgstr "خطأ ÙÙŠ Ø§Ù„اتصال Ø¨Ù†Ø¸Ø§Ù… Ø§Ù„تدوين.\n"
+ #: ../newrole/newrole.c:641
+ #, c-format
+ msgid "Error allocating memory.\n"
+-msgstr ""
++msgstr "خطأ ÙÙŠ ØªØ¹ÙŠÙŠÙ† Ø§Ù„ذاكرة.\n"
+ #: ../newrole/newrole.c:648
+ #, c-format
+ msgid "Error sending audit message.\n"
+-msgstr ""
++msgstr "خطأ ÙÙŠ Ø¥Ø±Ø³Ø§Ù„ Ø±Ø³Ø§Ù„Ø© Ø§Ù„تدوين.\n"
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن ØªØ­Ø¯ÙŠØ¯ Ø¶Ø¨Ø· Ø§Ù„إلزام.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr ""
++msgstr "خطأ! Ù„ا ÙŠÙ…كن Ùتح %s.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
++msgstr "%s! Ù„ا ÙŠÙ…كن Ø§Ù„حصول Ø¹Ù„Ù‰ Ø§Ù„سياق Ø§Ù„حالي Ù„Ù€ %sØŒ Ù„Ù† ØªØ¹Ø§Ø¯ Ø¹Ù†ÙˆÙ†Ø© tty.\n"
+ #: ../newrole/newrole.c:715
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
++msgstr "%s! Ù„ا ÙŠÙ…كن Ø§Ù„حصول Ø¹Ù„Ù‰ Ø§Ù„سياق Ø§Ù„جديد Ù„Ù€ %sØŒ Ù„Ù† ØªØ¹Ø§Ø¯ Ø¹Ù†ÙˆÙ†Ø© tty.\n"
+ #: ../newrole/newrole.c:725
+ #, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
++msgstr "%s! Ù„ا ÙŠÙ…كن Ø¶Ø¨Ø· Ø§Ù„سياق Ø§Ù„جديد Ù„Ù€ %s.\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+ msgid "%s changed labels.\n"
+-msgstr ""
++msgstr "تغيرت Ø¹Ù†Ø§ÙˆÙŠÙ† %s.\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
++msgstr "تحذير! Ù„ا ÙŠÙ…كن Ø§Ø³ØªØ¹Ø§Ø¯Ø© Ø§Ù„سياق Ù„Ù€ %s\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+ msgid "Error: multiple roles specified\n"
+-msgstr ""
++msgstr "خطأ: ØªÙ… ØªØ¹Ø±ÙŠÙ Ø£ÙƒØ«Ø± Ù…Ù† Ø¯ÙˆØ±\n"
+ #: ../newrole/newrole.c:843
+ #, c-format
+ msgid "Error: multiple types specified\n"
+-msgstr ""
++msgstr "خطأ: ØªÙ… ØªØ¹Ø±ÙŠÙ Ø£ÙƒØ«Ø± Ù…Ù† Ù†ÙˆØ¹\n"
+ #: ../newrole/newrole.c:850
+ #, c-format
+ msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
++msgstr "عÙوا، -l ÙŠÙ…كن Ø§Ø³ØªØ¹Ù…الها Ù…ع Ø¯Ø¹Ù… SELinux MLS.\n"
+ #: ../newrole/newrole.c:855
+ #, c-format
+ msgid "Error: multiple levels specified\n"
+-msgstr ""
++msgstr "خطأ: ØªÙ… ØªØ¹Ø±ÙŠÙ Ø£ÙƒØ«Ø± Ù…Ù† Ù…ستوى\n"
+ #: ../newrole/newrole.c:865
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
++msgstr "خطأ: Ù„ا ÙŠØ³Ù…Ø­ Ù„Ùƒ Ø¨ØªØºÙŠÙŠØ± Ø§Ù„مستويات Ù…Ù† Ø®Ù„ال ÙˆØ­Ø¯Ø© Ø·Ø±Ùية ØºÙŠØ± Ø¢Ù…نة \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ù„حصول Ø¹Ù„Ù‰ Ø§Ù„نوع Ø§Ù„اÙتراضي.\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+ msgid "failed to get new context.\n"
+-msgstr ""
++msgstr "Ùشل ÙÙŠ Ø§Ù„حصول Ø¹Ù„Ù‰ Ø³ÙŠØ§Ù‚ Ø¬Ø¯ÙŠØ¯.\n"
+ #: ../newrole/newrole.c:908
+ #, c-format
+ msgid "failed to set new role %s\n"
+-msgstr ""
++msgstr "Ùشل ÙÙŠ Ø¶Ø¨Ø· Ø¯ÙˆØ± Ø¬Ø¯ÙŠØ¯ %s\n"
+ #: ../newrole/newrole.c:915
+ #, c-format
+ msgid "failed to set new type %s\n"
+-msgstr ""
++msgstr "Ùشل ÙÙŠ Ø¶Ø¨Ø· Ù†ÙˆØ¹ Ø¬Ø¯ÙŠØ¯ %s\n"
+ #: ../newrole/newrole.c:925
+ #, c-format
+ msgid "failed to build new range with level %s\n"
+-msgstr ""
++msgstr "Ùشل ÙÙŠ Ø¨Ù†Ø§Ø¡ Ù…دى Ø¬Ø¯ÙŠØ¯ Ù…ع Ù…ستوى %s\n"
+ #: ../newrole/newrole.c:930
+ #, c-format
+ msgid "failed to set new range %s\n"
+-msgstr ""
++msgstr "Ùشل ÙÙŠ Ø¶Ø¨Ø· Ù…دى Ø¬Ø¯ÙŠØ¯ %s\n"
+ #: ../newrole/newrole.c:938
+ #, c-format
+ msgid "failed to convert new context to string\n"
+-msgstr ""
++msgstr "Ùشل ÙÙŠ ÙÙŠ ØªØ­ÙˆÙŠÙ„ Ø§Ù„سياق Ø§Ù„جديد Ø¥Ù„Ù‰ Ù†Øµ\n"
+ #: ../newrole/newrole.c:943
+ #, c-format
+ msgid "%s is not a valid context\n"
+-msgstr ""
++msgstr "%s Ù„يس Ø³ÙŠØ§Ù‚ا ØµØ§Ù„حا\n"
+ #: ../newrole/newrole.c:950
+ #, c-format
+ msgid "Unable to allocate memory for new_context"
+-msgstr ""
++msgstr "غير Ù‚ادر Ø¹Ù„Ù‰ ØªØ¹ÙŠÙŠÙ† Ø°Ø§ÙƒØ±Ø© Ù„Ù€new_context"
+ #: ../newrole/newrole.c:976
+ #, c-format
+ msgid "Unable to obtain empty signal set\n"
+-msgstr ""
++msgstr "غير Ù‚ادر Ø¹Ù„Ù‰ Ø§Ù„حصول Ø¹Ù„Ù‰ Ù…جموعة Ø§Ù„إشارات Ø§Ù„Ùارغة\n"
+ #: ../newrole/newrole.c:984
+ #, c-format
+ msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
++msgstr "غير Ù‚ادر Ø¹Ù„Ù‰ Ø¶Ø¨Ø· Ù…عالج SIGHUP\n"
+ #: ../newrole/newrole.c:1053
+ #, c-format
+ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
++msgstr "عÙوا، Ù„ا ÙŠÙ…كن Ø§Ø³ØªØ¹Ù…ال newrole Ø¥Ù„ا Ø¹Ù„Ù‰ Ù†ÙˆØ§Ø© SELinux.\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+ msgid "failed to get old_context.\n"
+-msgstr ""
++msgstr "Ùشل ÙÙŠ Ø§Ù„حصول Ø¹Ù„Ù‰ old_context.\n"
+ #: ../newrole/newrole.c:1077
+ #, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
++msgstr "تحذير! Ø§Ø³ØªØ¹Ø§Ø¯Ø© Ù…علومات tty ØºÙŠØ± Ù…مكنة.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr ""
++msgstr "خطأ ÙÙŠ Ù‚راءة Ø¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø®Ø¯Ù…Ø© PAM.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+ msgid "newrole: incorrect password for %s\n"
+-msgstr ""
++msgstr "newrole: ÙƒÙ„مة Ø§Ù„مرور Ø®Ø§Ø·Ø¦Ø© Ù„Ù€ %s\n"
+ #: ../newrole/newrole.c:1160
+ #, c-format
+ msgid "newrole: failure forking: %s"
+-msgstr ""
++msgstr "newrole: Ùشل ÙÙŠ Ø§Ù„تÙرع: %s"
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+ msgid "Unable to restore tty label...\n"
+-msgstr ""
++msgstr "غير Ù‚ادر Ù„استعادة Ø¹Ù†ÙˆØ§Ù† tty...\n"
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+ msgid "Failed to close tty properly\n"
+-msgstr ""
++msgstr "Ùشل ÙÙŠ Ø¥ØºÙ„اق tty Ø¨ØµÙˆØ±Ø© ØµØ­ÙŠØ­Ø©\n"
+ #: ../newrole/newrole.c:1224
+ #, c-format
+ msgid "Could not close descriptors.\n"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø¥ØºÙ„اق Ø§Ù„واصÙات.\n"
+ #: ../newrole/newrole.c:1251
+ #, c-format
+ msgid "Error allocating shell's argv0.\n"
+-msgstr ""
++msgstr "خطأ ÙÙŠ ØªØ¹ÙŠÙŠÙ† argv0 Ø§Ù„خاص Ø¨Ø§Ù„قشرة (shell).\n"
+ #: ../newrole/newrole.c:1287
+ #, c-format
+ msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
++msgstr "غير Ù‚ادر Ø¹Ù„Ù‰ Ø§Ø³ØªØ¹Ø§Ø¯Ø© Ø§Ù„بيئة، Ø³ÙŠØªÙ… Ø§Ù„إلغاء\n"
+ #: ../newrole/newrole.c:1298
+ msgid "failed to exec shell\n"
+-msgstr ""
++msgstr "Ùشل ÙÙŠ ØªÙ†Ùيذ Ø§Ù„قشرة (shell)\n"
+ #: ../load_policy/load_policy.c:22
+ #, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr ""
++msgstr "الاستخدام:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s: ØªÙ… ØªØ­Ù…يل Ø§Ù„سياسة Ù…سبقاً ÙˆØªÙ… Ø·Ù„ب Ø§Ù„تحميل Ø§Ù„مبدئي\n"
+ #: ../load_policy/load_policy.c:80
+ #, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
++msgstr "%s:  Ù„ا ÙŠÙ…كن ØªØ­Ù…يل Ø§Ù„سياسة ÙˆØªÙ… Ø·Ù„ب Ø§Ù„وضع Ø§Ù„ملزم:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
++msgstr "%s:  Ù„ا ÙŠÙ…كن ØªØ­Ù…يل Ø§Ù„سياسة:  %s\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+-msgstr ""
++msgstr "يتطلب ØªØµÙ†ÙŠÙ ÙˆØ§Ø­Ø¯ Ø¹Ù„Ù‰ Ø§Ù„أقل"
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+ msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن ØªØ¹Ø¯ÙŠÙ„ Ù…ستويات Ø§Ù„حساسية Ø¨Ø§Ø³ØªØ®Ø¯Ø§Ù… '+' Ø¹Ù„Ù‰ %s"
+ #: ../scripts/chcat:110
+ #, c-format
+ msgid "%s is already in %s"
+-msgstr ""
++msgstr "%s Ù…وجود ÙÙŠ %s Ù…سبقا"
+ #: ../scripts/chcat:188 ../scripts/chcat:198
+ #, c-format
+ msgid "%s is not in %s"
+-msgstr ""
++msgstr "%s Ù„يس ÙÙŠ %s"
+ #: ../scripts/chcat:267 ../scripts/chcat:272
+ msgid "Can not combine +/- with other types of categories"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø§Ù„جمع +/- Ù…ع Ø£Ù†ÙˆØ§Ø¹ Ø£Ø®Ø±Ù‰ Ù…Ù† Ø§Ù„تصنيÙات"
+ #: ../scripts/chcat:319
+ msgid "Can not have multiple sensitivities"
+-msgstr ""
++msgstr "لا ÙŠÙ…كن Ø£Ù† ÙŠÙƒÙˆÙ† Ù…تعدد Ø§Ù„حساسيات"
+ #: ../scripts/chcat:325
+ #, c-format
+ msgid "Usage %s CATEGORY File ..."
+-msgstr ""
++msgstr "الاستخدام %s CATEGORY Ù…ل٠..."
+ #: ../scripts/chcat:326
+ #, c-format
+ msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
++msgstr "الاستخدام %s -l CATEGORY Ù…ستخدم ..."
+ #: ../scripts/chcat:327
+ #, c-format
+ msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
++msgstr "الاستخدام %s [[+|-]CATEGORY],...]q Ù…ل٠..."
+ #: ../scripts/chcat:328
+ #, c-format
+ msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
++msgstr "الاستخدام %s -l [[+|-]CATEGORY],...]q Ù…ستخدم ..."
+ #: ../scripts/chcat:329
+ #, c-format
+ msgid "Usage %s -d File ..."
+-msgstr ""
++msgstr "الاستخدام %s -d Ù…ل٠..."
+ #: ../scripts/chcat:330
+ #, c-format
+ msgid "Usage %s -l -d user ..."
+-msgstr ""
++msgstr "الاستخدام %s -l -d Ù…ستخدم ..."
+ #: ../scripts/chcat:331
+ #, c-format
+ msgid "Usage %s -L"
+-msgstr ""
++msgstr "الاستخدام %s -L"
+ #: ../scripts/chcat:332
+ #, c-format
+ msgid "Usage %s -L -l user"
+-msgstr ""
++msgstr "الاستخدام %s -L -l Ù…ستخدم"
+ #: ../scripts/chcat:333
+ msgid "Use -- to end option list.  For example"
+-msgstr ""
++msgstr "استخدم -- Ù„إنهاء Ù‚ائمة Ø§Ù„خيارات. Ø¹Ù„Ù‰ Ø³Ø¨ÙŠÙ„ Ø§Ù„مثال"
+ #: ../scripts/chcat:334
+ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
++msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ #: ../scripts/chcat:335
+ msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
++msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
++msgstr "خطأ ÙÙŠ Ø§Ù„خيارات %s "
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
+ msgstr ""
+diff --git a/policycoreutils/po/as.po b/policycoreutils/po/as.po
+index ca9950d..0c67b35 100644
+--- a/policycoreutils/po/as.po
++++ b/policycoreutils/po/as.po
+@@ -1,24 +1,25 @@
+-# translation of as.po to Assamese
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+ #
++# Translators:
+ # Amitakhya Phukan <amitakhya.phukan@gmail.com>, 2006.
++# Amitakhya Phukan <aphukan@fedoraproject.org>, 2008, 2009.
+ # Amitakhya Phukan <aphukan@redhat.com>, 2008.
+-# Amitakhya Phukan <aphukan@fedoraproject.org>, 2008.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: as\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-01-31 12:04+0530\n"
+-"Last-Translator: Amitakhya Phukan <aphukan@fedoraproject.org>\n"
+-"Language-Team: Assamese\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Assamese (http://www.transifex.net/projects/p/fedora/language/"
++"as/)\n"
++"Language: as\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=2; plural=(n!=1)\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -94,7 +95,7 @@ msgstr "চিহà§à¦¨à¦¿à¦¤ à¦ªà¦²à¦¿à¦šà¦¿ à¦¸à§°à¦žà§à¦œà¦¾à¦® à¦¸à¦•à§à§°
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "আনà§à¦¤à§°à§à¦œà¦¾à¦¤à¦¿à¦•"
+ #: ../semanage/seobject.py:222
+ msgid "Could not create semanage handle"
+@@ -114,13 +115,12 @@ msgid "Could not establish semanage connection"
+ msgstr "semanage à¦¸à¦‚যোগ à¦¸à§à¦¥à¦¾à¦ªà¦¨ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ MLS à§°à§‡à¦žà§à¦œ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "MLS-ৰ à¦¸à¦•à§à§°à¦¿à§Ÿ à¦…ৱসà§à¦¥à¦¾ à¦ªà§°à§€à¦•à§à¦·à¦¾ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "বাসà§à¦¤à¦¬à¦¾à§Ÿà¦¿à¦¤ à¦¨à¦¹à§Ÿ"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+@@ -131,29 +131,26 @@ msgid "Could not start semanage transaction"
+ msgstr "semanage à¦†à¦¦à¦¾à¦¨-পà§à§°à¦¦à¦¾à¦¨ à¦†à§°à¦®à§à¦­ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage à¦†à¦¦à¦¾à¦¨-পà§à§°à¦¦à¦¾à¦¨ à¦†à§°à¦®à§à¦­ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "semanage à¦†à¦¦à¦¾à¦¨-পà§à§°à¦¦à¦¾à¦¨ à¦¸à¦®à¦¾à¦ªà§à¦¤ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+ msgstr ""
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à¦¸à¦•à¦²à§° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "SELinux à¦…ংশৰ à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "অংশেৰ à¦¨à¦¾à¦®"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "ভাৰà§à¦¸à¦¾à¦¨"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "Disabled"
+@@ -163,9 +160,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "%s à¦­à§‚মিকাটি, %s'ৰ à¦¬à¦¾à¦¬à§‡ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -187,12 +184,12 @@ msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "permissive à¦¡à§‹à¦®à§‡à¦‡à¦¨ %s à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ (মডিউল à¦¸à¦‚সà§à¦¥à¦¾à¦ªà¦¨ à¦•à§°à¦¿à¦¬à¦²à§ˆ à¦¬à§à¦¯à§°à§à¦¥)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "permissive à¦¡à§‹à¦®à§‡à¦‡à¦¨ %s à¦¸à§°à¦¿à§Ÿà§‡ à¦«à§‡à¦²à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ (অপসাৰণ à¦•à§°à¦¿à¦¬à¦²à§ˆ à¦¬à§à¦¯à§°à§à¦¥)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -212,9 +209,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦ªà§à§°à§±à§‡à¦¶ à¦®à§‡à¦ªà¦¿à¦‚ à¦¬à§à¦¯à§±à¦¸à§à¦¥à¦¾ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¹à§ˆà¦›à§‡ à¦¨à§‡ à¦¨à¦¾à¦‡ à¦ªà§°à§€à¦•à§à¦·à¦¾ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ %s à¦¬à§°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦¨à¦¾à¦‡"
++msgstr "Linux à¦¸à¦®à¦·à§à¦Ÿà¦¿ %s à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦¨à¦¾à¦‡"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -282,15 +279,20 @@ msgid "Could not list login mappings"
+ msgstr "পà§à§°à§±à§‡à¦¶ à¦®à§‡à¦ªà¦¿à¦‚ à¦¤à¦¾à¦²à¦¿à¦•à¦¾à¦­à§à¦•à§à¦¤ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "পà§à§°à§±à§‡à¦¶ à¦¨à¦¾à¦®"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS à¦¸à§€à¦®à¦¾"
+@@ -308,9 +310,9 @@ msgid "Could not query user for %s"
+ msgstr "%s'ৰ à¦¬à¦¾à¦¬à§‡ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¸à¦¨à§à¦§à¦¾à¦¨ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° context à¦¯à§‹à¦— à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦…নà§à¦¤à¦¤ à¦à¦Ÿà¦¾ à¦­à§‚মিকা à¦¯à§‹à¦— à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -402,6 +404,7 @@ msgid "MCS Range"
+ msgstr "MCS à¦¸à§€à¦®à¦¾"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux à§°à§‹à¦²"
+@@ -414,9 +417,8 @@ msgid "Port is required"
+ msgstr "পোৰà§à¦Ÿ à¦‰à¦²à§à¦²à§‡à¦– à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "পà§à§°à§‡à¦«à¦¿à¦•à§à¦¸ à¦¬à§ˆà¦§ à¦¨à¦¹à§Ÿ %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -503,14 +505,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "%s/%s à¦ªà§‹à§°à§à¦Ÿ à¦ªà§°à¦¿à¦¬à§°à§à¦¤à¦¨ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "পোৰà§à¦Ÿà§‡à§° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "প'ৰà§à¦Ÿà§° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "%s/%s à¦ªà§‹à§°à§à¦Ÿ à¦†à¦à¦¤à§°à§à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s à¦ªà§‹à§°à§à¦Ÿ à¦†à¦à¦¤à§°à§à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -524,7 +525,7 @@ msgstr "%s/%s à¦ªà§‹à§°à§à¦Ÿ à¦†à¦à¦¤à§°à§à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+ msgid "Could not list ports"
+-msgstr "পোৰà§à¦Ÿà§‡à§° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "প'ৰà§à¦Ÿà§° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+@@ -534,18 +535,17 @@ msgstr "SELinux à¦ªà§‹à§°à§à¦Ÿà§° à¦§à§°à¦¨"
+ msgid "Proto"
+ msgstr "পà§à§°à§‹à¦Ÿà§‹"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "পোৰà§à¦Ÿ à¦¸à¦‚খà§à¦¯à¦¾"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "পোৰà§à¦Ÿ à¦‰à¦²à§à¦²à§‡à¦– à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•"
++msgstr "নোডৰ à¦ à¦¿à¦•à¦¨à¦¾ à¦‰à¦²à§à¦²à§‡à¦– à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "অজà§à¦žà¦¾à¦¤ à¦¬à¦¾ à¦¹à§‡à§°à§à§±à¦¾ à¦†à¦šà¦¾à§°à¦¬à¦¿à¦§à¦¿"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -562,14 +562,14 @@ msgstr "%s'ৰ à¦šà¦¾à¦¬à¦¿ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "পোৰà§à¦Ÿ %s/%s à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¹à§ˆà¦›à§‡ à¦¨à§‡ à¦¨à¦¾à¦‡ à¦ªà§°à§€à¦•à§à¦·à¦¾ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "addr %s à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¹à§ˆà¦›à§‡ à¦¨à§‡ à¦¨à¦¾à¦‡ à¦ªà§°à§€à¦•à§à¦·à¦¾ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%s'ৰ à¦¬à¦¾à¦¬à§‡ à¦šà¦¾à¦¬à¦¿ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s-ৰ à¦¬à¦¾à¦¬à§‡ addr à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -578,74 +578,72 @@ msgid "Could not create context for %s"
+ msgstr "%s'ৰ à¦¬à¦¾à¦¬à§‡ context à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%s'ৰ à¦¨à¦¾à¦® à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s-ৰ à¦®à¦¾à¦¸à§à¦• à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context'ঠবà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ addr context à¦²à§ˆ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§à¦¤à¦¾ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context'ঠভূমিকা à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ addr context à¦²à§ˆ à¦­à§‚মিকা à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context'ঠধৰন à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ addr context à¦²à§ˆ à¦§à§°à¦¨ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context'ঠmls à¦•à§à¦·à§‡à¦¤à§à§° à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ addr context à¦²à§ˆ mls à¦•à§à¦·à§‡à¦¤à§à§° à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ addr context à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "%s/%s à¦ªà§‹à§°à§à¦Ÿ à¦¯à§‹à¦— à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s addr à¦¯à§‹à¦— à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "%s/%s à¦ªà§‹à§°à§à¦Ÿ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¨à¦¹à§Ÿ"
++msgstr "%s addr à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¨à¦¹à§Ÿ"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "%s/%s à¦ªà§‹à§°à§à¦Ÿ à¦¸à¦¨à§à¦§à¦¾à¦¨ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s addr à¦ªà§à§°à¦¶à§à¦¨ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "%s/%s à¦ªà§‹à§°à§à¦Ÿ à¦ªà§°à¦¿à¦¬à§°à§à¦¤à¦¨ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s addr à¦ªà§°à¦¿à¦¬à§°à§à¦¤à¦¨ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "%s/%s à¦ªà§‹à§°à§à¦Ÿà¦Ÿà¦¿ à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿à¦¤ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¹à§‹à§±à¦¾à§° à¦«à¦²à¦¤ à¦…পসাৰণযোগà§à¦¯ à¦¨à¦¹à§Ÿ"
++msgstr "%s addr à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿à¦¤ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¹à§‹à§±à¦¾à§° à¦«à¦²à¦¤ à¦…পসাৰণযোগà§à¦¯ à¦¨à¦¹à§Ÿ"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "%s à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿ à¦†à¦à¦¤à§°à§à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s addr à¦†à¦à¦¤à§°à§à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦ªà§à§°à§±à§‡à¦¶ à¦®à§‡à¦ªà¦¿à¦‚ à¦†à¦à¦¤à§°à§à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "পোৰà§à¦Ÿà§‡à§° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "addr-ৰ à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -661,22 +659,22 @@ msgstr "%s'ৰ à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ 
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿà§° context'ঠবà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿà§° context à¦²à§ˆ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿà§° context'ঠভূমিকাৰ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿà§° context à¦²à§ˆ à¦­à§‚মিকাৰ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿà§° context'ঠধৰন à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿà§° context à¦²à§ˆ à¦§à§°à¦¨ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿà§° context'ঠmls à¦•à§à¦·à§‡à¦¤à§à§° à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿà§° context à¦²à§ˆ mls à¦•à§à¦·à§‡à¦¤à§à§° à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+@@ -719,9 +717,8 @@ msgid "Could not delete interface %s"
+ msgstr "%s à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿ à¦†à¦à¦¤à§°à§à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "%s à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿ à¦†à¦à¦¤à§°à§à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -736,9 +733,9 @@ msgid "Context"
+ msgstr "কনটেকà§à¦¸à¦Ÿ"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s'ৰ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° context à¦¬à§°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦†à¦›à§‡"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -746,31 +743,28 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ %s à¦¬à§°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦¨à¦¾à¦‡"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context'ঠবà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context à¦²à§ˆ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context'ঠভূমিকা à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context à¦²à§ˆ à¦­à§‚মিকা à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context'ঠmls à¦•à§à¦·à§‡à¦¤à§à§° à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context à¦²à§ˆ mls à¦•à§à¦·à§‡à¦¤à§à§° à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1707
+-#, fuzzy
+ msgid "Invalid file specification"
+-msgstr ""
+-"নথিপতà§à§°\n"
+-"গà§à¦£"
++msgstr "নথিপতà§à§°à§° à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¬à§ˆà¦§ à¦¨à¦¹à§Ÿ"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -797,7 +791,7 @@ msgstr "%s'ৰ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° contex à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context'ঠধৰন à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°à§° context à¦²à§ˆ à¦§à§°à¦¨ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+@@ -830,14 +824,13 @@ msgid "Could not modify file context for %s"
+ msgstr "%s'ৰ à¦¬à¦¾à¦¬à§‡ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° context à¦ªà§°à¦¿à¦¬à§°à§à¦¤à¦¨ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+ msgstr "নথিপতà§à§° context'ৰ à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "%s'ৰ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° context à¦†à¦à¦¤à§°à§à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "নথিপতà§à§° context %s  à¦†à¦à¦¤à§°à§à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -873,11 +866,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -896,14 +888,14 @@ msgid "Could not query file context %s"
+ msgstr "%s'ৰ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° context à¦¸à¦¨à§à¦§à¦¾à¦¨ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "নাম à¦‰à¦²à§à¦²à§‡à¦– à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•"
++msgstr "নিমà§à¦¨à¦²à¦¿à¦–িত à¦à¦Ÿà¦¾ à¦®à¦¾à¦¨ à¦‰à¦²à§à¦²à§‡à¦– à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "বà§à¦²à¦¿à§Ÿà§‡à¦¨ %s à¦†à¦à¦¤à§°à§à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ"
++msgstr "%s à¦¬à§à¦²à¦¿à§Ÿà§‡à¦¨à§° à¦¸à¦•à§à§°à¦¿à§Ÿ à¦®à¦¾à¦¨ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à¦¿à¦¬à¦²à§ˆ à¦¬à§à¦¯à§°à§à¦¥"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -913,7 +905,7 @@ msgstr "%s à¦¬à§à¦²à¦¿à§Ÿà§‡à¦¨à§° à¦®à¦¾à¦¨ à¦ªà§°à¦¿à¦¬à§°à§à¦¤à¦¨ à¦•à§°à¦¾
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "ভà§à¦² à¦¬à¦¿à¦¨à§à¦¯à¦¾à¦¸ %s: à§°à§‡à¦•à§°à§à¦¡ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -931,33 +923,32 @@ msgstr "বà§à¦²à¦¿à§Ÿà§‡à¦¨à§° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "অজানা"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "বনà§à¦§"
+ #: ../semanage/seobject.py:2117
+-#, fuzzy
+ msgid "on"
+-msgstr "Cron"
++msgstr "আৰমà§à¦­"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+ msgstr "SELinux à¦¬à§à¦²à¦¿à§Ÿà§‡à¦¨"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "অবসà§à¦¥à¦¾"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "বিৱৰণ"
+ #: ../newrole/newrole.c:201
+ #, c-format
+@@ -987,7 +978,7 @@ msgstr "সà§à¦®à§ƒà¦¤à¦¿à¦¶à¦•à§à¦¤à¦¿ à¦…বশিষà§à¦Ÿ à¦¨à¦¾à¦‡!\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr "তà§à§°à§à¦Ÿà¦¿!  à¦¬à§ˆà¦§ à¦¶à§‡à¦² à¦¬à§à¦¯à§±à¦¹à¦¾à§° à¦•à§°à¦¾ à¦¨à¦¹à§Ÿ à¥¤\n"
++msgstr "তà§à§°à§à¦Ÿà¦¿!  à¦¬à§ˆà¦§ à¦¶à§à¦¬à§‡à¦² à¦¬à§à¦¯à§±à¦¹à¦¾à§° à¦•à§°à¦¾ à¦¨à¦¹à§Ÿ à¥¤\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+@@ -1007,7 +998,7 @@ msgstr "KEEPCAPS'ৰ à¦®à¦¾à¦¨ à¦ªà§à¦¨à§°à¦¾à§Ÿ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•
+ #: ../newrole/newrole.c:635
+ #, c-format
+ msgid "Error connecting to audit system.\n"
+-msgstr "অডিট à¦¸à¦¿à¦¸à§à¦Ÿà§‡à¦®à§‡à§° à¦¸à§ˆà¦¤à§‡ à¦¸à¦‚যোগ à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥ à¥¤\n"
++msgstr "অডিট à¦ªà§à§°à¦£à¦¾à¦²à§€à¦¤à§° à¦¸à§ˆà¦¤à§‡ à¦¸à¦‚যোগ à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥ à¥¤\n"
+ #: ../newrole/newrole.c:641
+ #, c-format
+@@ -1040,7 +1031,7 @@ msgstr ""
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s!  %s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¤à§à¦¨ context à¦ªà§à§°à¦¾à¦ªà§à¦¤ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ, tty'ৰ à¦²à§‡à¦¬à§‡à¦² à¦ªà§°à¦¿à¦¬à§°à§à¦¤à¦¨ à¦•à§°à¦¾ à¦¹'ব à¦¨à¦¾ "
++"%s!  %s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦¨à¦¤à§à¦¨ context à¦ªà§à§°à¦¾à¦ªà§à¦¤ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ, tty'ৰ à¦²à§‡à¦¬à§‡à¦² à¦ªà§°à¦¿à¦¬à§°à§à¦¤à¦¨ à¦•à§°à¦¾ à¦¨'হ'ব  "
+ "।\n"
+ #: ../newrole/newrole.c:725
+@@ -1066,12 +1057,12 @@ msgstr "তà§à§°à§à¦Ÿà¦¿: à¦à¦•à¦¾à¦§à¦¿à¦• à¦­à§‚মিকা à¦‰à¦²à§à¦²
+ #: ../newrole/newrole.c:843
+ #, c-format
+ msgid "Error: multiple types specified\n"
+-msgstr "তà§à§°à§à¦Ÿà¦¿: à¦à¦•à¦¾à¦§à¦¿à¦• à¦§à§°à¦¨à§‡à§° à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¹à§ˆà¦›à§‡\n"
++msgstr "তà§à§°à§à¦Ÿà¦¿: à¦à¦•à¦¾à¦§à¦¿à¦• à¦§à§°à¦¨à§° à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¹à§ˆà¦›à§‡\n"
+ #: ../newrole/newrole.c:850
+ #, c-format
+ msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr "দূঃকà§à¦·à¦¿à¦¤, -l à¦…কল SELinux MLS à¦¸à¦®à§°à§à¦¥à¦¨à§‡à§° à¦¸à§ˆà¦¤à§‡ à¦¬à§à¦¯à§±à¦¹à¦¾à§° à¦•à§°à¦¾ à¦¯à¦¾à¦¬à§‡\n"
++msgstr "দূঃকà§à¦·à¦¿à¦¤, -l à¦…কল SELinux MLS à¦¸à¦®à§°à§à¦¥à¦¨à§° à¦¸à§ˆà¦¤à§‡ à¦¬à§à¦¯à§±à¦¹à¦¾à§° à¦•à§°à¦¾ à¦¯à¦¾à¦¬à§‡\n"
+ #: ../newrole/newrole.c:855
+ #, c-format
+@@ -1079,9 +1070,9 @@ msgid "Error: multiple levels specified\n"
+ msgstr "তà§à§°à§à¦Ÿà¦¿: à¦à¦•à¦¾à¦§à¦¿à¦• à¦¸à§à¦¤à§° à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¹à§ˆà¦›à§‡\n"
+ #: ../newrole/newrole.c:865
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr "তà§à§°à§à¦Ÿà¦¿: à¦•à¦® à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾à¦¸à¦®à§à¦ªà¦¨à§à¦¨ à¦Ÿà¦¾à§°à§à¦®à¦¿à¦¨à¦¾à¦²à§‡ à¦¸à§à¦¤à§° à¦ªà§°à¦¿à¦¬à§°à§à¦¤à¦¨à§‡à§° à¦…নà§à¦®à¦¤à¦¿ à¦…নà§à¦ªà¦¸à§à¦¥à¦¿à¦¤\n"
++msgstr "তà§à§°à§à¦Ÿà¦¿: à¦¨à¦¿à¦®à§à¦¨ à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾à¦¸à¦®à§à¦ªà¦¨à§à¦¨ à¦Ÿà¦¾à§°à§à¦®à¦¿à¦¨à§‡à¦²à¦¤ à¦®à¦¾à¦¤à§à§°à¦¾ à¦ªà§°à¦¿à¦¬à§°à§à¦¤à¦¨à§° à¦…নà§à¦®à¦¤à¦¿ à¦‰à¦ªà¦²à¦¬à§à¦§ à¦¨à¦¹à§Ÿ \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+@@ -1141,7 +1132,7 @@ msgstr "SIGHUP à¦¹à§‡à¦¨à§à¦¡à¦²à¦¾à§° à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à§‹à¦à¦¤
+ #: ../newrole/newrole.c:1053
+ #, c-format
+ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr "দà§à¦ƒà¦•à§à¦·à¦¿à¦¤, newrole à¦…কল à¦à¦•à¦Ÿà¦¿ SELinux à¦•à¦¾à§°à§à¦£à§‡à¦²à§‡ à¦¬à§à¦¯à§±à¦¹à¦¾à§° à¦•à§°à¦¾ à¦¯à¦¾à¦¬à§‡ à¥¤\n"
++msgstr "দà§à¦ƒà¦•à§à¦·à¦¿à¦¤, newrole à¦…কল à¦à¦Ÿà¦¾ SELinux à¦•à¦¾à§°à§à¦£à§‡à¦²à§‡ à¦¬à§à¦¯à§±à¦¹à¦¾à§° à¦•à§°à¦¾ à¦¯à¦¾à¦¬à§‡ à¥¤\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+@@ -1149,7 +1140,7 @@ msgid "failed to get old_context.\n"
+ msgstr "old_context à¦ªà§à§°à¦¾à¦ªà§à¦¤ à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥ à¥¤\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+ msgstr "তà§à§°à§à¦Ÿà¦¿!  tty à¦¸à¦‚কà§à§°à¦¾à¦¨à§à¦¤ à¦¤à¦¥à§à¦¯ à¦ªà§à§°à¦¾à¦ªà§à¦¤ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ à¥¤\n"
+@@ -1181,12 +1172,12 @@ msgstr "tty à¦¸à¦ à¦¿à¦•à§°à§‚পে à¦¬à¦¨à§à¦§ à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯
+ #: ../newrole/newrole.c:1224
+ #, c-format
+ msgid "Could not close descriptors.\n"
+-msgstr "বিবৰণ à¦ªà§à§°à¦¦à§°à§à¦¶à¦¨ à¦¬à¦¨à§à¦§ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ à¥¤\n"
++msgstr "বিৱৰণ à¦ªà§à§°à¦¦à§°à§à¦¶à¦¨ à¦¬à¦¨à§à¦§ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ à¥¤\n"
+ #: ../newrole/newrole.c:1251
+ #, c-format
+ msgid "Error allocating shell's argv0.\n"
+-msgstr "শেল'ৰ argv0 à¦¬à§°à¦¾à¦¦à§à¦¦ à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥ à¥¤\n"
++msgstr "শà§à¦¬à§‡à¦²'ৰ argv0 à¦¬à§°à¦¾à¦¦à§à¦¦ à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥ à¥¤\n"
+ #: ../newrole/newrole.c:1287
+ #, c-format
+@@ -1195,31 +1186,31 @@ msgstr "পৰিবেশ à¦ªà§à¦¨à§°à§à¦¦à§à¦§à¦¾à§° à¦•à§°à§‹à¦à¦¤à§‡ à¦¬
+ #: ../newrole/newrole.c:1298
+ msgid "failed to exec shell\n"
+-msgstr "শেল exec à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥\n"
++msgstr "শà§à¦¬à§‡à¦² exec à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦ªà§à§°à¦£à¦¾à¦²à§€:  %s [-q]\n"
++msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦ªà§à§°à¦£à¦¾à¦²à§€:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s:  à¦ªà¦²à¦¿à¦šà¦¿ à¦¤à§à¦²à¦¿ à¦²à§‹à§±à¦¾ à¦¹à§ˆà¦›à§‡ à¦†à§°à§ à¦ªà§à§°à¦¾à§°à¦®à§à¦­à¦¿à¦• à¦²à§‹à¦¡à§° à¦…নà§à§°à§‹à¦§ à¦œà¦¨à§‹à§±à¦¾ à¦¹à§ˆà¦›à§‡\n"
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:  à¦šà¦¿à¦¹à§à¦¨à¦¿à¦¤ à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿ à¦²à§‹à¦¡ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ:  %s\n"
++msgstr "%s:  à¦ªà¦²à¦¿à¦šà¦¿ à¦¤à§à¦²à¦¿ à¦²à§‹à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ à¦†à§°à§ enforcing à¦®à§‹à¦¡à§° à¦…নà§à§°à§‹à¦§ à¦œà¦¨à§‹à§±à¦¾ à¦¹à§ˆà¦›à§‡:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr "%s:  à¦šà¦¿à¦¹à§à¦¨à¦¿à¦¤ à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿ à¦²à§‹à¦¡ à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ:  %s\n"
++msgstr "%s:  à¦šà¦¿à¦¹à§à¦¨à¦¿à¦¤ à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿ à¦¤à§à¦²à¦¿ à¦²à§‹à§±à¦¾ à¦¨à¦¾à¦¯à¦¾à§Ÿ:  %s\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+-msgstr "অনà§à¦¤à¦¤ à¦à¦•à¦Ÿà¦¿ à¦¶à§à§°à§‡à¦£à§€ à¦‰à¦²à§à¦²à§‡à¦– à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•"
++msgstr "অনà§à¦¤à¦¤ à¦à¦Ÿà¦¾ à¦¶à§à§°à§‡à¦£à§€ à¦‰à¦²à§à¦²à§‡à¦– à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•"
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+@@ -1242,7 +1233,7 @@ msgstr "অনà§à¦¯à¦¾à¦¨à§à¦¯ à¦¶à§à§°à§‡à¦£à§€ à¦¬à¦¿à¦­à¦¾à¦—েৰ à¦¸à§ˆ
+ #: ../scripts/chcat:319
+ msgid "Can not have multiple sensitivities"
+-msgstr "à¦à¦•à¦¾à¦§à¦¿à¦• à¦ªà§à§°à¦•à§ƒà¦¤à¦¿à§° à¦¸à¦‚বেদনশীলতা à¦¥à¦¾à¦•à¦¾ à¦¸à¦®à§à¦­à§± à¦¹'ব à¦¨à¦¾"
++msgstr "à¦à¦•à¦¾à¦§à¦¿à¦• à¦ªà§à§°à¦•à§ƒà¦¤à¦¿à§° à¦¸à¦‚বেদনশীলতা à¦¥à¦•à¦¾ à¦¸à¦®à§à¦­à§± à¦¨'হ'ব"
+ #: ../scripts/chcat:325
+ #, c-format
+@@ -1296,1535 +1287,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "বিকলà§à¦ª à¦¸à¦‚কà§à§°à¦¾à¦¨à§à¦¤ à¦¤à§à§°à§à¦Ÿà¦¿ %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "%s à¦–োলোà¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥: MLS-বিহীন à¦¯à¦¨à§à¦¤à§à§°à¦¤ à¦…নà§à¦¬à¦¾à¦¦ à¦¸à¦®à§°à§à¦¥à¦¨ à¦•à§°à¦¾ à¦¨à¦¹à§Ÿ"
+-
+-#~ msgid "Level"
+-#~ msgstr "সà§à¦¤à§°"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦à¦¤ à¦¶à§‚ণà§à¦¯à¦¸à§à¦¥à¦¾à¦¨ à¦¬à§à¦¯à§±à¦¹à¦¾à§° à¦•à§°à¦¾ à¦¨à¦¾à¦¯à¦¾à¦¬ '%s' "
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "সà§à¦¤à§° à¦¬à§ˆà¦§ à¦¨à¦¹à§Ÿ '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦à¦¤ %s à¦¬à§°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¬à§à¦¯à¦¾à¦–à§à¦¯à¦¾ à¦•à§°à¦¾ à¦¹à§ˆà¦›à§‡"
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦à¦¤ %s'ৰ à¦¬à§à¦¯à¦¾à¦–à§à¦¯à¦¾ à¦•à§°à¦¾ à¦¨à¦¹à§Ÿ"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s'ৰ à¦•à§à¦·à§‡à¦¤à§à§°à¦¤ à¦ªà§à§°à§±à§‡à¦¶ à¦®à§‡à¦ªà¦¿à¦‚ à¦¬à§à¦¯à§±à¦¸à§à¦¥à¦¾ à¦¬à§°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¹à§ˆà¦›à§‡"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦®à§‡à¦ªà¦¿à¦‚ à¦¯à§‹à¦— à¦•à§°à¦¾ à¦¹'ব"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ %s'ৰ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¬à§°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦¹à§ˆà¦›à§‡"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "পোৰà§à¦Ÿ à¦‰à¦²à§à¦²à§‡à¦– à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "পোৰà§à¦Ÿ %s/%s à¦¬à§°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦†à¦›à§‡"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "%s à¦ªà§à§°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿ à¦¬à§°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦¿à¦¤ à¦†à¦›à§‡"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "কৰà§à¦® init à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥, à¦ªà§°à¦¿à¦¤à§à¦¯à¦¾à¦— à¦•à§°à¦¾ à¦¹à§ˆà¦›à§‡ à¥¤\n"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "কà§à¦·à¦®à¦¤à¦¾ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥, à¦ªà§°à¦¿à¦¤à§à¦¯à¦¾à¦— à¦•à§°à¦¾ à¦¹à§ˆà¦›à§‡ à¥¤\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS'ৰ à¦®à¦¾à¦¨ à¦¨à¦¿à§°à§à¦§à¦¾à§°à¦£ à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥, à¦ªà§°à¦¿à¦¤à§à¦¯à¦¾à¦— à¦•à§°à¦¾ à¦¹à§ˆà¦›à§‡\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "কà§à¦·à¦®à¦¤à¦¾ drop à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥, à¦ªà§°à¦¿à¦¤à§à¦¯à¦¾à¦— à¦•à§°à¦¾ à¦¹à§ˆà¦›à§‡ à¥¤\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "SETUID à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ drop à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥, à¦ªà§°à¦¿à¦¤à§à¦¯à¦¾à¦— à¦•à§°à¦¾ à¦¹à§ˆà¦›à§‡\n"
+-
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "caps à¦®à§à¦•à§à¦¤ à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥\n"
+-
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "MLS-বিহীন à¦¯à¦¨à§à¦¤à§à§°à¦¤ à¦…নà§à¦¬à¦¾à¦¦ à¦¸à¦®à§°à§à¦¥à¦¨ à¦•à§°à¦¾ à¦¨à¦¹à§Ÿ"
+-
+-#~ msgid "Boolean"
+-#~ msgstr "বà§à¦²à¦¿à§Ÿà§‡à¦¨"
+-
+-#, fuzzy
+-#~ msgid "all"
+-#~ msgstr "সকল"
+-
+-#~ msgid "File Labeling"
+-#~ msgstr "নথিপতà§à§° à¦²à§‡à¦¬à§‡à¦² à¦¬à§à¦¯à§±à¦¸à§à¦¥à¦¾"
+-
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "নথিপতà§à§°\n"
+-#~ "গà§à¦£"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "নথিপতà§à§° à¦•à¦¨à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ"
+-
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "নথিপতà§à§°\n"
+-#~ "ধৰন"
+-
+-#~ msgid "User Mapping"
+-#~ msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦®à§‡à¦ªà¦¿à¦‚"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "পà§à§°à§±à§‡à¦¶\n"
+-#~ "নাম"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS à¦¸à§€à¦®à¦¾"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "পà§à§°à§±à§‡à¦¶ '%s' à¦†à§±à¦¶à§à¦¯à¦•"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "পলিচি à¦…ংশ"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "পলিচি à¦…ংশ à¦²à§‹à¦¡ à¦•à§°à¦•"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat à§¨à§¦à§¦à§­"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "অমিতাকà§à¦· à¦«à§à¦•à¦¨ (aphukan@fedoraproject.org)"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux Policy à¦¨à¦¿à§°à§à¦®à¦¾à¦£à§‡à§° à¦¸à¦¾à¦®à¦—à§à§°à§€"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ " SELinux à¦ªà§à§°à§Ÿà§‹à¦—কাৰী à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦…থবা à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à¦¸à¦•à¦²à§° confine à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§±à¦¹à§ƒà¦¤ "
+-#~ "পলিচিৰ à¦ªà§°à¦¿à¦•à¦¾à¦ à¦¾à¦®à§‹ à¦¨à¦¿à§°à§à¦®à¦¾à¦£à§‡à§° à¦¬à¦¾à¦¬à§‡ à¦à¦‡ à¦¸à¦¾à¦®à¦—à§à§°à§€ à¦¬à§à¦¯à§±à¦¹à¦¾à§° à¦•à§°à¦¾ à¦¯à¦¾à¦¬à§‡ à¥¤\n"
+-#~ "\n"
+-#~ "à¦à¦‡ à¦¸à¦¾à¦®à¦—à§à§°à§€ à¦ªà§à§°à§Ÿà§‹à¦— à¦•à§°à§‡ à¦¨à¦¿à§°à§à¦®à¦¾à¦£ à¦•à§°à¦¾ à¦¯à¦¾à¦¬à§‡:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - à¦ªà¦²à¦¿à¦šà¦¿ à¦•à¦®à§à¦ªà¦¾à¦‡à¦² à¦“ à¦‡à¦¨à¦¸à§à¦Ÿà¦² à¦•à§°à§‹à¦à¦¤à§‡ à¦¬à§à¦¯à§±à¦¹à§ƒà¦¤ à¥¤"
+-
+-#, fuzzy
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "আৱদà§à¦§ à¦•à§°à¦¾à§° à¦¬à¦¾à¦¬à§‡ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦…থবা à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à§° à¦­à§‚মিকা à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦• à¥¤"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨</b>"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "বà§à¦Ÿ à¦•à§°à¦¾à§° à¦¸à¦®à§Ÿ init à¦¸à§à¦•à§à§°à¦¿à¦ªà§à¦Ÿà§° à¦®à¦¾à¦§à§à¦¯à¦®à§‡ à¦†à§°à¦®à§à¦­ à¦¹à¦“য়া à¦¡à§‡à¦®à¦¨à¦—à§à¦²à¦¿ à¦ªà§à§°à¦®à¦¿à¦¤ Init à¦¡à§‡à¦®à¦¨ à¦¨à¦¾à¦®à§‡ "
+-#~ "পৰিচিত à¥¤ à¦¸à¦¾à¦§à¦¾à§°à¦£à¦¤ /etc/init.d-ত à¦à¦•à¦Ÿà¦¿ à¦¸à§à¦•à§à§°à¦¿à¦ªà§à¦Ÿ à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦¥à¦¾à¦•à¦¾ à¦†à§±à¦¶à§à¦¯à¦• à¥¤"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "পà§à§°à¦®à¦¿à¦¤ Init à¦¡à§‡à¦®à¦¨"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "Internet Services Daemon-ৰ à¦¡à§‡à¦®à¦¨à¦—à§à¦²à¦¿ xinetd à¦¦à§à¦¬à¦¾à§°à¦¾ à¦†à§°à¦®à§à¦­ à¦•à§°à¦¾ à¦¹à§Ÿ à¥¤"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Internet Services Daemon (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "ওয়েব à¦¸à¦¾à§°à§à¦­à¦¾à§° (apache) à¦¦à§à¦¬à¦¾à§°à¦¾ à¦†à§°à¦®à§à¦­ à¦•à§°à¦¾ à¦“য়েব à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/সà§à¦•à§à§°à¦¿à¦ªà§à¦Ÿ (CGI) CGI "
+-#~ "সà§à¦•à§à§°à¦¿à¦ªà§à¦Ÿ"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "ওয়েব à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/সà§à¦•à§à§°à¦¿à¦ªà§à¦Ÿ (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¦à§à¦¬à¦¾à§°à¦¾ à¦†à§°à¦®à§à¦­ à¦•à§°à¦¾ à¦•à§‹à¦¨à§‹ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¯à¦¾ à¦†à§±à¦¦à§à¦§ à¦•à§°à¦¾à§° à¦¬à¦¾à¦¬à§‡ à¦šà¦¿à¦¹à§à¦¨à¦¿à¦¤ à¦¤à¦¾à¦• "
+-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à¦¸à¦•à¦²à§° à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¨à¦¾à¦®à§‡ à¦ªà§°à¦¿à¦šà¦¿à¦¤"
+-
+-#~ msgid "User Application"
+-#~ msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à¦¸à¦•à¦²à§° à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨"
+-
+-#, fuzzy
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾</b>"
+-
+-#, fuzzy
+-#~ msgid "User Role"
+-#~ msgstr "ভূমিকা"
+-
+-#, fuzzy
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾</b>"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "à¦à¦‡ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¦à§à¦¬à¦¾à§°à¦¾ root à¦ªà§°à¦¿à¦šà§Ÿà§‡ à¦®à§‡à¦¶à¦¿à¦¨ à¦ªà§°à¦¿à¦šà¦¾à¦²à¦¨à¦¾ à¦•à§°à¦¾ à¦¹à¦²à§‡ root à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ "
+-#~ "নিৰà§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦• à¥¤ à¦¸à¦¿à¦¸à§à¦Ÿà§‡à¦®à§‡, à¦à¦‡ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¸à§°à¦¾à¦¸à§°à¦¿ à¦ªà§à§°à§±à§‡à¦¶ à¦•à§°à§‹à¦à¦¤à§‡ à¦¸à¦•à§à¦·à¦® à¦¹'বন à¦¨à¦¾ à¥¤"
+-
+-#, fuzzy
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Root à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾"
+-
+-#, fuzzy
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "আৱদà§à¦§ à¦•à§°à¦¾à§° à¦¬à¦¾à¦¬à§‡ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦…থবা à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à§° à¦­à§‚মিকা à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦• à¥¤"
+-
+-#~ msgid "Name"
+-#~ msgstr "নাম"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "confine à¦•à§°à¦¾à§° à¦¬à¦¾à¦¬à§‡ à¦à¦•à§à¦¸à§‡à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦¿à¦²à§‡à§° à¦¸à¦®à§à¦ªà§‚ৰà§à¦£ à¦ªà¦¾à¦¥ à¦²à¦¿à¦–à§à¦¨ à¥¤"
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#, fuzzy
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "confine à¦•à§°à¦¾ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦…থবা à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨à§‡à§° à¦§à§°à¦¨à§‡à§° à¦¸à§à¦¬à¦¤à¦¨à§à¦¤à§à§° à¦¨à¦¾à¦® à¦²à¦¿à¦–à§à¦¨ à¥¤"
+-
+-#~ msgid "Executable"
+-#~ msgstr "à¦à¦•à§à¦¸à§‡à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦²"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Init à¦¸à§à¦•à§à§°à¦¿à¦ªà§à¦Ÿ"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr "confine à¦•à§°à¦¾ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦†à§°à¦®à§à¦­à§‡à§° à¦¬à¦¾à¦¬à§‡ init à¦¸à§à¦•à§à§°à¦¿à¦ªà§à¦Ÿà§° à¦¸à¦®à§à¦ªà§‚ৰà§à¦£ à¦ªà¦¾à¦¥ à¦²à¦¿à¦–à§à¦¨ à¥¤"
+-
+-#, fuzzy
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "চিহà§à¦¨à¦¿à¦¤ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¦à§à¦¬à¦¾à§°à¦¾ à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ role à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦¸à¦®à§à¦­à§± à¦¤à¦¾à¦• à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦•"
+-
+-#, fuzzy
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "ৰূপানà§à¦¤à§°à§‡à§° à¦¬à¦¾à¦¬à§‡ à¦…তিৰিকà§à¦¤ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¡à§‹à¦®à§‡à¦‡à¦² à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦•"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr "চিহà§à¦¨à¦¿à¦¤ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¦à§à¦¬à¦¾à§°à¦¾ à¦ªà§°à¦¿à¦šà¦¾à¦²à¦¨à¦¾à§° à¦‰à¦¦à§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦¡à§‹à¦®à§‡à¦‡à¦¨ à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦• à¥¤"
+-
+-#, fuzzy
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¦à§à¦¬à¦¾à§°à¦¾ à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ à¦¡à§‹à¦®à§‡à¦‡à¦¨ à¦ªà§°à¦¿à¦šà¦¾à¦²à¦¿à¦¤ à¦¹'ব à¦¸à§‡à¦—à§à¦²à¦¿ à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦•"
+-
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "চিহà§à¦¨à¦¿à¦¤ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¦à§à¦¬à¦¾à§°à¦¾ à¦ªà§°à¦¿à¦šà¦¾à¦²à¦¨à¦¾à§° à¦‰à¦¦à§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦¡à§‹à¦®à§‡à¦‡à¦¨ à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦• à¥¤"
+-
+-#, fuzzy
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "ৰূপানà§à¦¤à§°à§‡à§° à¦¬à¦¾à¦¬à§‡ à¦…তিৰিকà§à¦¤ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¡à§‹à¦®à§‡à¦‡à¦² à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦•"
+-
+-#, fuzzy
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "তালিকা à¦¸à§°à§à¦¬à¦®à§‹à¦Ÿ."
+-
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP à¦ªà§‹à§°à§à¦Ÿ</b>"
+-
+-#, fuzzy
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "confine à¦•à§°à¦¾ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à¦¸à¦•à¦²à§° à¦¯à§‡ à¦•à§‹à¦¨à§‹ tcp à¦ªà§‹à§°à§à¦Ÿà§‡à§° à¦¸à§ˆà¦¤à§‡ bind à¦•à§°à¦¾à§° "
+-#~ "সà§à¦¯à§‹à¦— à¦¦à§‡à§Ÿ à¥¤"
+-
+-#~ msgid "All"
+-#~ msgstr "সকল"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr "১০২৪"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr "তালিকা à¦¸à§°à§à¦¬à¦®à§‹à¦Ÿ."
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "অসংৰকà§à¦·à¦¿à¦¤ à¦ªà§‹à§°à§à¦Ÿ (>1024)"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "নিৰà§à¦¬à¦¾à¦šà¦¿à¦¤ à¦ªà§‹à§°à§à¦Ÿ"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr "১০২৪"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP à¦ªà§‹à§°à§à¦Ÿ</b>"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr "তালিকা à¦¸à§°à§à¦¬à¦®à§‹à¦Ÿ."
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr "তালিকা à¦¸à§°à§à¦¬à¦®à§‹à¦Ÿ."
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr "তালিকা à¦¸à§°à§à¦¬à¦®à§‹à¦Ÿ."
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select common application traits"
+-#~ msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¤à§ˆà§°à¦¿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦‰à¦²à§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "অডিট à¦¸à¦‚কà§à§°à¦¾à¦¨à§à¦¤ à¦¬à¦¾à§°à§à¦¤à¦¾ à¦ªà¦¾à¦ à¦¾à¦¤à§‡ à¦¬à§à¦¯à§°à§à¦¥ à¥¤\n"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr "নথিপতà§à§° à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°."
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "নথিপতà§à§°"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr "confine à¦•à§°à¦¾ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦†à§°à¦®à§à¦­à§‡à§° à¦¬à¦¾à¦¬à§‡ init à¦¸à§à¦•à§à§°à¦¿à¦ªà§à¦Ÿà§° à¦¸à¦®à§à¦ªà§‚ৰà§à¦£ à¦ªà¦¾à¦¥ à¦²à¦¿à¦–à§à¦¨ à¥¤"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Policy Directory"
+-#~ msgstr "পলিচি à¦ªà¦žà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "নথিপতà§à§°"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Boolean Name"
+-#~ msgstr "বà§à¦²à¦¿à§Ÿà§‡à¦¨"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Role"
+-#~ msgstr "ভূমিকা"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Application"
+-#~ msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#, fuzzy
+-#~ msgid "%s must be a directory"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "নাম à¦‰à¦²à§à¦²à§‡à¦– à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "confine à¦•à§°à¦¾à§° à¦‰à¦¦à§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à§à¦¸à¦¿à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦¿à¦² à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦•"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "confine à¦•à§°à¦¾à§° à¦‰à¦¦à§à¦¦à§‡à¦¶à§à¦¯à§‡ init script à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦• à¥¤"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "নথিপতà§à§°"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "নাম à¦‰à¦²à§à¦²à§‡à¦– à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "You must enter a executable"
+-#~ msgstr "à¦à¦•à§à¦¸à§‡à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦² à¦‰à¦²à§à¦²à§‡à¦– à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦•"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux à¦•à¦¨à¦«à¦¿à¦—াৰ à¦•à§°à¦•"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "পোৰà§à¦Ÿ à¦¸à¦‚খà§à¦¯à¦¾ 1 à¦¥à§‡à¦•à§‡ %d-ত à¦¹à¦“য়া à¦†à§±à¦¶à§à¦¯à¦• "
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "বà§à¦²à¦¿à§Ÿà§‡à¦¨ à¦®à¦¾à¦¨ "
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "ধৰন"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "ধৰন à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "সংযোগমাধà§à¦¯à¦® à¦¸à¦‚কà§à§°à¦¾à¦¨à§à¦¤ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "নথিপতà§à§° à¦•à¦¨à¦Ÿà§‡à¦•à§à¦¸à¦Ÿà§‡à§° à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "বৈশিষà§à¦Ÿà§à¦¯"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux à¦ªà§‹à§°à§à¦Ÿ\n"
+-#~ "ধৰন"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "পà§à§°à§‹à¦Ÿà§‹à¦•à¦²"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "সà§à¦¤à§°"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "পোৰà§à¦Ÿ"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "প'ৰà§à¦Ÿ à¦¸à¦‚খà§à¦¯à¦¾ \"%s\" à¦¬à§ˆà¦§ à¦¨à¦¹à§Ÿ à¥¤  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "দল à¦­à¦¿à¦‰"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "সেৱা"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "পà§à§°à¦¶à¦¾à¦¸à¦•"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "সà§à¦®à§ƒà¦¤à¦¿à¦¶à¦•à§à¦¤à¦¿ à¦¸à¦‚ৰকà§à¦·à¦£"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "মাউনà§à¦Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "নথিপতà§à§°"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "নে'টৱৰà§à¦• à¦¬à¦¿à¦¨à§à¦¯à¦¾à¦¸"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "উপৰ à¦¨à§‡'টৱৰà§à¦•"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "তথà§à¦¯à¦­à¦à§°à¦¾à¦²"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "à¦à¦•à§à¦¸ à¦¸à§à¦¥à¦¾à¦¨à¦¾à¦™à§à¦•"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "ওয়েব à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "amanda-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "amavis-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "apmd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "arpwatch à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "auditd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "automount à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "avahi-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "bluetooth à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "canna à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "cardmgr à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Cluster Server-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ciped à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "clamd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "clamscan-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "clvmd-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "comsat à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "courier à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "cpucontrol à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "cpuspeed à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "পà§à§°à¦¿à¦¨à§à¦Ÿ à¦¬à§à¦¯à§±à¦¸à§à¦¥à¦¾"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "cupsd à¦¬à§à¦¯à¦¾à¦•-à¦à¦¨à§à¦¡ à¦¸à¦¾à§°à§à¦­à¦¾à§°à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "cupsd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "cupsd_lpd-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "cvs à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "cyrus à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "dbskkd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "dbusd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "dccd-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "dccifd-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "dccm-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ddt à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "devfsd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "dhcpc à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "dhcpd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "dictd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Evolution-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "খেলা"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Thunderbird-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "fetchmail-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "hal à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "hostname à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "hplip à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "httpd rotatelogs-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD à¦¸à§‡à§±à¦¾"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexec-ৰ à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "inetd à¦šà¦¾à¦‡à¦²à§à¦¡ à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "নাম à¦¸à§‡à§±à¦¾"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি rsync"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "সৰà§à¦¬à¦®à§‹à¦Ÿ"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr "à¦à¦•à§à¦¸ à¦¸à§à¦¥à¦¾à¦¨à¦¾à¦™à§à¦• à¦®à§‡à¦ª"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Spam Protection"
+-#~ msgstr "সà§à¦®à§ƒà¦¤à¦¿à¦¶à¦•à§à¦¤à¦¿ à¦¸à¦‚ৰকà§à¦·à¦£"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "নে'টৱৰà§à¦•"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "নে'টৱৰà§à¦•"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "সৰà§à¦¬à¦®à§‹à¦Ÿ"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr "ডোমেইম"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr "ডোমেইম"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr "à¦à¦•à§à¦¸ à¦¸à§à¦¥à¦¾à¦¨à¦¾à¦™à§à¦•"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr "নে'টৱৰà§à¦•"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr "ডোমেইম FTP"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি NIS"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি NIS"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr "ধৰন à¦¸à§°à§à¦¬à¦®à§‹à¦Ÿ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦‰à¦ªà§° à¦‰à¦ªà§° à¦¸à§°à§à¦¬à¦®à§‹à¦Ÿ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°?"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr "হলো à¦‰à¦ªà§° à¦¹à¦²à§‹ à¦‰à¦ªà§°?"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr "সৰà§à¦¬à¦®à§‹à¦Ÿ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦‰à¦ªà§° à¦‰à¦ªà§° à¦¸à§°à§à¦¬à¦®à§‹à¦Ÿ à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°?"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr "লাল<dwalsh@redhat.com>"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "পà§à§°à§±à§‡à¦¶"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux Type"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "File Type"
+-#~ msgstr "ধৰন"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¯à§‹à¦— à¦•à§°à¦•"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "_Properties"
+-#~ msgstr "বৈশিষà§à¦Ÿà§à¦¯à¦¾à¦¬à¦²à§€ (_P)"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "_Delete"
+-#~ msgstr "মà§à¦›à§‡ à¦«à§‡à¦²à§à¦¨ (_D)"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "বà§à¦¯à§±à¦¸à§à¦¥à¦¾à¦ªà§à§°à¦£à¦¾à¦²à§€ à¦¡à¦¿à¦«à¦²à§à¦Ÿ"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "বà§à¦¯à§±à¦¸à§à¦¥à¦¾à¦ªà§à§°à¦£à¦¾à¦²à§€ à¦¡à¦¿à¦«à¦²à§à¦Ÿ à¦§à§°à¦¨ "
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr "নথিপতà§à§° à¦‰à¦ªà§° à¦‰à¦ªà§° à¦¸à§°à§à¦¬à¦®à§‹à¦Ÿ à¦¹à¦²à§‹."
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "উপৰ."
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "কনটেকà§à¦¸à¦Ÿ"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "পৰিবৰà§à¦¤à¦¨ à¦•à§°à¦• à¦•à¦¨à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "মà§à¦›à§‡ à¦«à§‡à¦²à§à¦¨ à¦•à¦¨à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "পৰিবৰà§à¦¤à¦¨ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "মà§à¦›à§‡ à¦«à§‡à¦²à§à¦¨"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "পৰিবৰà§à¦¤à¦¨ à¦•à§°à¦• à¦…নà§à¦¬à¦¾à¦¦"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "মà§à¦›à§‡ à¦«à§‡à¦²à§à¦¨ à¦…নà§à¦¬à¦¾à¦¦"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "পৰিবৰà§à¦¤à¦¨ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "পোৰà§à¦Ÿ"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "সমà§à¦ªà¦¾à¦¦à¦¨ à¦ªà§‹à§°à§à¦Ÿ"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "মà§à¦›à§‡ à¦«à§‡à¦²à§à¦¨ à¦ªà§‹à§°à§à¦Ÿ"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "সà§à¦¤à§°"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "মান à¦†à§±à¦¶à§à¦¯à¦•"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "SELinux à¦ªà¦²à¦¿à¦šà¦¿ à¦¨à¦¿à§°à§à¦®à¦¾à¦£à§‡à§° Druid"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "label25"
+-#~ msgstr "label25"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "label26"
+-#~ msgstr "label26"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "label28"
+-#~ msgstr "label28"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "label30"
+-#~ msgstr "label30"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "label31"
+-#~ msgstr "label31"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "label32"
+-#~ msgstr "label32"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "label33"
+-#~ msgstr "label33"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "confine à¦•à§°à¦¾ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à¦¸à¦•à¦²à§° à¦¯à§‡ à¦•à§‹à¦¨à§‹ tcp à¦ªà§‹à§°à§à¦Ÿà§‡à§° à¦¸à§ˆà¦¤à§‡ bind à¦•à§°à¦¾à§° "
+-#~ "সà§à¦¯à§‹à¦— à¦¦à§‡à§Ÿ à¥¤"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr ""
+-#~ "আপোনাৰ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¦à§à¦¬à¦¾à§°à¦¾ 0 à¦®à¦¾à¦¨ à¦¸à¦¹ bindresvport à¦•à¦² à¦•à§°à¦¾ à¦¹à¦²à§‡ à¦à¦‡ à¦šà§‡à¦•-বাটনটি "
+-#~ "বà§à¦¯à§±à¦¹à¦¾à§° à¦•à§°à¦• à¥¤"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à¦¸à¦•à¦²à§° 1024-ৰ à¦…ধিক à¦¯à§‡ à¦•à§‹à¦¨à§‹ tcp à¦ªà§‹à§°à§à¦Ÿà§‡à§° à¦¸à§ˆà¦¤à§‡ bind à¦•à§°à¦¾à§°à¦¾ "
+-#~ "সà§à¦¯à§‹à¦— à¦¦à§‡à§Ÿ"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "অসংৰকà§à¦·à¦¿à¦¤ à¦ªà§‹à§°à§à¦Ÿ  (> 1024)"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr "তালিকা à¦¸à§°à§à¦¬à¦®à§‹à¦Ÿ "
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "label34"
+-#~ msgstr "label34"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "label35"
+-#~ msgstr "label35"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label51"
+-#~ msgstr "label25"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "value"
+-#~ msgstr "মান"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "You must be root to run %s."
+-#~ msgstr "%s à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ root à¦ªà§°à¦¿à¦šà§Ÿ à¦§à¦¾à§°à¦£ à¦•à§°à¦¾ à¦†à§±à¦¶à§à¦¯à¦• à¥¤"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Other"
+-#~ msgstr "অনà§à¦¯à¦¾à¦¨à§à¦¯"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid ""
+-#~ "Select XWindows login user, if this is a user who will login to a machine "
+-#~ "via X"
+-#~ msgstr ""
+-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¯à¦¦à¦¿ X-ৰ à¦®à¦¾à¦§à§à¦¯à¦®à§‡ à¦¯à¦¨à§à¦¤à§à§°à¦¤ à¦ªà§à§°à§±à§‡à¦¶ à¦•à§°à§‡à¦¨ à¦¤à¦¾à¦¹à¦²à§‡ XWindows à¦ªà§à§°à§±à§‡à¦¶ "
+-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "XWindows Login User"
+-#~ msgstr "XWindows à¦ªà§à§°à§±à§‡à¦¶ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Select Terminal Login User, if this user will login to a machine only via "
+-#~ "a terminal or remote login"
+-#~ msgstr ""
+-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¦à§à¦¬à¦¾à§°à¦¾ à¦…কল à¦Ÿà¦¾à§°à§à¦®à¦¿à¦¨à¦¾à¦² à¦…থবা à¦¦à§‚ৰবৰà§à¦¤à§€ à¦ªà§à§°à§±à§‡à¦¶à§‡à§° à¦¸à¦¾à¦¹à¦¾à¦¯à§à¦¯à§‡ à¦¯à¦¨à§à¦¤à§à§°à¦¤ à¦ªà§à§°à§±à§‡à¦¶ "
+-#~ "কৰা à¦¹à¦²à§‡ à¦Ÿà¦¾à§°à§à¦®à¦¿à¦¨à¦¾à¦² à¦ªà§à§°à§±à§‡à¦¶ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ à¦¨à¦¿à§°à§à¦¬à¦¾à¦šà¦¨ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Terminal Login User"
+-#~ msgstr "টাৰà§à¦®à¦¿à¦¨à¦¾à¦² à¦ªà§à§°à§±à§‡à¦¶ à¦¬à§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Name of application to be confined"
+-#~ msgstr "confine à¦•à§°à¦¾à§° à¦¬à¦¾à¦¬à§‡ à¦šà¦¿à¦¹à§à¦¨à¦¿à¦¤ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Incoming Network Port Connections"
+-#~ msgstr "আগমনকাৰী à¦¨à§‡'টৱৰà§à¦• à¦ªà§‹à§°à§à¦Ÿ à¦¸à¦‚যোগ"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Outgoing Network Port Connections"
+-#~ msgstr "বাহিৰমà§à¦–ী à¦¨à§‡'টৱৰà§à¦• à¦ªà§‹à§°à§à¦Ÿ à¦¸à¦‚যোগ"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Application uses nsswitch or translates UID's (daemons that run as non "
+-#~ "root)"
+-#~ msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ UID"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "Files and Directories"
+-#~ msgstr "নথিপতà§à§° à¦“ à¦ªà¦žà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Generate policy in this directory"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "Login"
+-#~ msgstr "পà§à§°à§±à§‡à¦¶"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Allow direct login to the console device. Requiered for System 390"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি à¦¬à§à¦¯à§±à¦¸à§à¦¥à¦¾à¦ªà§à§°à¦£à¦¾à¦²à§€"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow unconfined executables to make their heap memory executable.  Doing "
+-#~ "this is a really bad idea. Probably indicates a badly coded executable, "
+-#~ "but could indicate an attack. This executable should be reported in "
+-#~ "bugzilla"
+-#~ msgstr "হলো"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow unconfined executables to map a memory region as both executable "
+-#~ "and writable, this is dangerous and the executable should be reported in "
+-#~ "bugzilla"
+-#~ msgstr "মেপ à¦¹à¦²à§‹"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "FTP"
+-#~ msgstr "FTP"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Allow ftp servers to use cifs used for public file transfer services"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Allow ftp servers to use nfs used for public file transfer services"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Allow gssd to read temp directory"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow nfs servers to modify public files used for public file transfer "
+-#~ "services"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Polyinstatiation"
+-#~ msgstr "Polyinstatiation"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Enable polyinstantiated directory support"
+-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rsync to write files in directories labeled public_content_rw_t"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow Samba to write files in directories labeled public_content_rw_t"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Zebra"
+-#~ msgstr "জেবৰা"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow system cron jobs to relabel filesystem for restoring file contexts"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি à¦¨à¦¥à¦¿à¦ªà¦¤à§à§°"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Enable extra rules in the cron domain to support fcron"
+-#~ msgstr "ডোমেইম"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ftpd daemon"
+-#~ msgstr "ftpd à¦¡à§‡à¦®à¦¨à§‡à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid ""
+-#~ "This should be enabled when all programs are compiled with ProPolice/SSP "
+-#~ "stack smashing protection.  All domains will be allowed to read from /dev/"
+-#~ "urandom"
+-#~ msgstr "সকল"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Allow HTTPD scripts and modules to network connect to databases"
+-#~ msgstr "নে'টৱৰà§à¦•"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Allow HTTPD scripts and modules to connect to the network"
+-#~ msgstr "নে'টৱৰà§à¦•"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd daemon"
+-#~ msgstr "httpd à¦¡à§‡à¦®à¦¨à§° à¦¬à¦¾à¦¬à§‡ SELinux à¦¨à¦¿à§°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à§°à¦¿à§Ÿ à¦•à§°à¦•"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow HTTPD to run SSI executables in the same domain as system CGI "
+-#~ "scripts"
+-#~ msgstr "ডোমেইম"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid ""
+-#~ "Unify HTTPD to communicate with the terminal.  Needed for handling "
+-#~ "certificates"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Unify HTTPD handling of all content files"
+-#~ msgstr "সৰà§à¦¬à¦®à§‹à¦Ÿ"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Allow NFS to share any file/directory read only"
+-#~ msgstr "NFS à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦ªà¦žà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Allow NFS to share any file/directory read/write"
+-#~ msgstr "NFS à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦ªà¦žà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pppd daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the mozilla ppp daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "Allow spammassasin to access the network"
+-#~ msgstr "নে'টৱৰà§à¦•"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Use lpd server instead of cups"
+-#~ msgstr "সৰà§à¦¬à¦®à§‹à¦Ÿ"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Support NFS home directories"
+-#~ msgstr "NFS"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for zebra daemon"
+-#~ msgstr "উলà§à¦²à¦¿à¦–িত à¦¸à¦®à§Ÿ à¦…বধি"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Allow httpd to access samba/cifs file systems"
+-#~ msgstr "নথিপতà§à§°"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Allow httpd to access nfs file systems"
+-#~ msgstr "নথিপতà§à§°"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow samba to act as the domain controller, add users, groups and change "
+-#~ "passwords"
+-#~ msgstr "ডোমেইম"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Allow Samba to share any file/directory read only"
+-#~ msgstr "Samba à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦ªà¦žà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Allow Samba to share any file/directory read/write"
+-#~ msgstr "Samba à¦¨à¦¥à¦¿à¦ªà¦¤à§à§° à¦ªà¦žà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow Samba to run unconfined scripts in /var/lib/samba/scripts directory"
+-#~ msgstr "Samba à¦ªà¦žà§à¦œà¦¿à¦•à¦¾"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Label Prefix"
+-#~ msgstr "লেবেল à¦ªà§à§°à§‡à¦«à¦¿à¦•à§à¦¸"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "MLS/MCS Level"
+-#~ msgstr "সà§à¦¤à§°"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Group/ungroup network ports by SELinux type."
+-#~ msgstr "দল à¦¨à§‡'টৱৰà§à¦• à¦§à§°à¦¨."
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid ""
+-#~ "Labeling\n"
+-#~ "Prefix"
+-#~ msgstr "লেবেল à¦¬à§à¦¯à§±à¦¸à§à¦¥à¦¾"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Level"
+-#~ msgstr "সà§à¦¤à§°"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/be.po b/policycoreutils/po/be.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/be.po
++++ b/policycoreutils/po/be.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/bg.po b/policycoreutils/po/bg.po
+index 6d4a7cd..7d3cbe9 100644
+--- a/policycoreutils/po/bg.po
++++ b/policycoreutils/po/bg.po
+@@ -1,21 +1,24 @@
+-# translation of policycoreutils.pot to Bulgarian
+-# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ #
+-# Doncho N. Gunchev <gunchev@gmail.com>, 2007.
++# Translators:
+ # Alexander Todorov <atodorov@redhat.com>, 2008.
++# Doncho N. Gunchev <gunchev@gmail.com>, 2007.
++# Valentin Laskov <laskov@festa.bg>, 2012.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-03-10 21:37+0100\n"
+-"Last-Translator: Alexander Todorov <atodorov@redhat.com>\n"
+-"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-19 14:28+0000\n"
++"Last-Translator: Valentin Laskov <laskov@festa.bg>\n"
++"Language-Team: Bulgarian <trans-bg@lists.fedoraproject.org>\n"
+ "Language: bg\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -24,18 +27,18 @@ msgid ""
+ "         <args ...> are the arguments to that script."
+ msgstr ""
+ "УПОТРЕБÐ: run_init <Ñкрипт> <аргументи ...>\n"
+-"  ÐºÑŠÐ´ÐµÑ‚о: <Ñкрипт> Ðµ Ð¸Ð¼ÐµÑ‚о Ð½Ð° Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñкрипт Ð·Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ðµ,\n"
++"  ÐºÑŠÐ´ÐµÑ‚о: <Ñкрипт> Ðµ Ð¸Ð¼ÐµÑ‚о Ð½Ð° Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð°Ñ‰ Ñкрипт Ð·Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ðµ,\n"
+ "         <аргументи ...> Ñа Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ите ÐºÑŠÐ¼ Ñ‚ози Ñкрипт."
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+ #, c-format
+ msgid "failed to initialize PAM\n"
+-msgstr "неуÑпешна Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° PAM\n"
++msgstr "инициализациÑта Ð½Ð° PAM Ð½Ðµ ÑƒÑпÑ\n"
+ #: ../run_init/run_init.c:139
+ #, c-format
+ msgid "failed to get account information\n"
+-msgstr "неуÑпешно Ð¸Ð·Ð²Ð»Ð¸Ñ‡Ð°Ð½Ðµ Ð½Ð° Ð¸Ð½Ñ„ормациѠза Ð°ÐºÐ°ÑƒÐ½Ñ‚а\n"
++msgstr "взимането Ð½Ð° Ð¸Ð½Ñ„ормациѠза Ð°ÐºÐ°ÑƒÐ½Ñ‚а Ð½Ðµ ÑƒÑпÑ\n"
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+@@ -44,12 +47,12 @@ msgstr "Парола:"
+ #: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+ #, c-format
+ msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð½Ð°Ð¼ÐµÑ€Ð¸ Ð²Ð°ÑˆÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñ Ð²ÑŠÐ² Ñ„айла shadow.\n"
++msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð½Ð°Ð¼ÐµÑ€Ð¸ Ð’аш Ð·Ð°Ð¿Ð¸Ñ Ð²ÑŠÐ² Ñ„айла shadow.\n"
+ #: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+ #, c-format
+ msgid "getpass cannot open /dev/tty\n"
+-msgstr "getpass Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¾Ñ‚вори /dev/tty\n"
++msgstr "getpass Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¾Ñ‚вори /dev/tty\n"
+ #: ../run_init/run_init.c:275
+ #, c-format
+@@ -59,7 +62,7 @@ msgstr "run_init: Ð³Ñ€ÐµÑˆÐ½Ð° Ð¿Ð°Ñ€Ð¾Ð»Ð° Ð·Ð° %s\n"
+ #: ../run_init/run_init.c:309
+ #, c-format
+ msgid "Could not open file %s\n"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¾Ñ‚вори Ñ„айл %s\n"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¾Ñ‚ворѠфайл %s\n"
+ #: ../run_init/run_init.c:336
+ #, c-format
+@@ -74,12 +77,12 @@ msgstr "СъжалÑваме, run_init Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»Ð·Ð²Ð° Ñамо
+ #: ../run_init/run_init.c:380
+ #, c-format
+ msgid "authentication failed.\n"
+-msgstr "неуÑпешно ÑƒÐ´Ð¾ÑтоверÑване.\n"
++msgstr "удоÑтоверÑването Ð½Ðµ ÑƒÑпÑ.\n"
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+ #, c-format
+ msgid "Could not set exec context to %s.\n"
+-msgstr "ÐеуÑпешно ÑƒÑтановÑване ÐºÐ¾Ð½Ñ‚екÑта Ð½Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ðµ Ð½Ð° %s.\n"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ðµ Ð½Ð° %s.\n"
+ #: ../audit2allow/audit2allow:230
+ msgid "******************** IMPORTANT ***********************\n"
+@@ -91,7 +94,7 @@ msgstr "За Ð´Ð° Ð°ÐºÑ‚ивирате Ñ‚ози Ð¿Ð°ÐºÐµÑ‚ Ñ Ð¿Ð¾Ð»Ð¸Ñ‚ика,
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "глобален"
+ #: ../semanage/seobject.py:222
+ msgid "Could not create semanage handle"
+@@ -107,90 +110,85 @@ msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ñ‡ÐµÑ‚е Ñ…ранилището Ñ Ð¿Ð¾Ð»
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð½Ð°Ð¿Ñ€Ð°Ð²Ð¸ semanage Ð²Ñ€ÑŠÐ·ÐºÐ°"
++msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе ÑƒÑтанови semanage Ð²Ñ€ÑŠÐ·ÐºÐ°"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð·Ð°Ð´Ð°Ð´Ðµ MLS Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñ‚еÑтва ÑтатуѠѠразрешен MLS"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "Ð’Ñе Ð¾Ñ‰Ðµ Ð½Ðµ Ðµ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð¸Ñ€Ð°Ð½Ð¾"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage Ñ‚ранзакциÑта Ðµ Ð²ÐµÑ‡Ðµ Ð² Ñ…од"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñтартира semanage Ñ‚ранзакциÑ"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñтартирам semanage Ñ‚ранзакциÑ"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñтартира semanage Ñ‚ранзакциÑ"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð°Ð½Ð³Ð°Ð¶Ð¸Ñ€Ð°Ð¼ semanage Ñ‚ранзакциÑ"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage Ñ‚ранзакциÑта Ð½Ðµ Ðµ Ð² Ñ…од"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Ðе Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ð±ÑŠÐ´Ð°Ñ‚ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸ SELinux Ð¿Ð¾Ñ‚ребителите"
++msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð½Ð°Ð¿Ñ€Ð°Ð²Ð¸ ÑпиÑък Ð½Ð° SELinux Ð¼Ð¾Ð´ÑƒÐ»Ð¸Ñ‚е"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Име Ð½Ð° Ð¼Ð¾Ð´ÑƒÐ»Ð°"
++msgstr "Име Ð½Ð° Ð¼Ð¾Ð´ÑƒÐ»Ð¸"
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "ВерÑиÑ"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr "Изключен"
++msgstr "Забранен"
+ #: ../semanage/seobject.py:322
+ #, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr ""
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð±Ñ€Ð°Ð½Ñ Ð¼Ð¾Ð´ÑƒÐ»Ð° %s (неуÑпешно Ð¿Ñ€ÐµÐ¼Ð°Ñ…ване)"
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð´Ð¾Ð±Ð°Ð²Ð¸ Ñ€Ð¾Ð»Ñ %s Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñ€Ð°Ð·Ñ€ÐµÑˆÐ° Ð¼Ð¾Ð´ÑƒÐ»Ð° %s (неуÑпешно Ð¿Ñ€ÐµÐ¼Ð°Ñ…ване)"
+ #: ../semanage/seobject.py:348
+ #, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr ""
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€ÐµÐ¼Ð°Ñ…на Ð¼Ð¾Ð´ÑƒÐ»Ð° %s (неуÑпешно Ð¿Ñ€ÐµÐ¼Ð°Ñ…ване)"
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
++msgstr "dontaudit Ð¸Ð·Ð¸Ñква Ð¸Ð»Ð¸ 'вкл' Ð¸Ð»Ð¸ 'изкл'"
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "ПаÑивен"
++msgstr "Вградени Permissive Ñ‚ипове"
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "ПаÑивен"
++msgstr "Индивидуални Permissive Ñ‚ипове"
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
++"Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ permissive domain %s (инÑталирането Ð½Ð° Ð¼Ð¾Ð´ÑƒÐ» Ð½Ðµ ÑƒÑпÑ)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€ÐµÐ¼Ð°Ñ…на permissive domain %s (премахването Ð½Ðµ ÑƒÑпÑ)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -201,18 +199,18 @@ msgstr ""
+ #: ../semanage/seobject.py:2037
+ #, python-format
+ msgid "Could not create a key for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñъздаде ÐºÐ»ÑŽÑ‡ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам ÐºÐ»ÑŽÑ‡ Ð·Ð° %s"
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+ #, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ð´Ð°Ð»Ð¸ Ðµ Ð´ÐµÑ„инирано ÑъответÑтвие Ð·Ð° Ð²Ñ…од Ð½Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ Ð´Ð°Ð»Ð¸ Ðµ Ð´ÐµÑ„инирано ÑъответÑтвие Ð·Ð° Ð²Ñ…од Ð½Ð° %s"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux Ð¿Ð¾Ñ‚ребител %s Ð½Ðµ ÑъщеÑтвува"
++msgstr "Linux Ð³Ñ€ÑƒÐ¿Ð° %s Ð½Ðµ ÑъщеÑтвува"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -222,27 +220,27 @@ msgstr "Linux Ð¿Ð¾Ñ‚ребител %s Ð½Ðµ ÑъщеÑтвува"
+ #: ../semanage/seobject.py:501
+ #, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñъздаде ÑъответÑтвие Ð·Ð° Ð²Ñ…од Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам ÑъответÑтвие Ð·Ð° Ð²Ñ…од Ð·Ð° %s"
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+ msgid "Could not set name for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð·Ð°Ð´Ð°Ð´Ðµ Ð¸Ð¼ÐµÑ‚о Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ð¸Ð¼ÐµÑ‚о Ð·Ð° %s"
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+ #, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð·Ð°Ð´Ð°Ð´Ðµ MLS Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ MLS Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ð·Ð° %s"
+ #: ../semanage/seobject.py:514
+ #, python-format
+ msgid "Could not set SELinux user for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð·Ð°Ð´Ð°Ð´Ðµ SELinux Ð¿Ð¾Ñ‚ребител Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ SELinux Ð¿Ð¾Ñ‚ребител Ð·Ð° %s"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð´Ð¾Ð±Ð°Ð²Ð¸ ÑъответÑтвие Ð·Ð° Ð²Ñ…од Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð´Ð¾Ð±Ð°Ð²Ñ ÑъответÑтвие Ð·Ð° Ð²Ñ…од Ð·Ð° %s"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+@@ -256,12 +254,12 @@ msgstr "Ðе Ðµ Ð´ÐµÑ„инирано ÑъответÑтвие Ð·Ð° Ð²Ñ…од Ð·Ð°
+ #: ../semanage/seobject.py:563
+ #, python-format
+ msgid "Could not query seuser for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð·Ð°Ð¿Ð¸Ñ‚а seuser Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð¿Ð¸Ñ‚ам seuser Ð·Ð° %s"
+ #: ../semanage/seobject.py:577
+ #, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ ÑъответÑтвието Ð·Ð° Ð²Ñ…од Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ ÑъответÑтвието Ð·Ð° Ð²Ñ…од Ð·Ð° %s"
+ #: ../semanage/seobject.py:611
+ #, python-format
+@@ -272,23 +270,28 @@ msgstr ""
+ #: ../semanage/seobject.py:615
+ #, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие ÑъответÑтвието Ð·Ð° Ð²Ñ…од Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ñ‚риѠÑъответÑтвието Ð·Ð° Ð²Ñ…од Ð·Ð° %s"
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+ msgid "Could not list login mappings"
+-msgstr "Грешка Ð¿Ñ€Ð¸ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ð²Ð°Ð½Ðµ Ð½Ð° ÑъответÑтвиÑта Ð·Ð° Ð²Ñ…од"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ ÑпиÑък Ð½Ð° ÑъответÑтвиÑта Ð·Ð° Ð²Ñ…од"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "ПотребителÑко Ð¸Ð¼Ðµ"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux Ð¿Ð¾Ñ‚ребител"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS Ð¸Ð½Ñ‚ервал"
+@@ -297,48 +300,48 @@ msgstr "MLS/MCS Ð¸Ð½Ñ‚ервал"
+ #: ../semanage/seobject.py:860
+ #, python-format
+ msgid "Could not check if SELinux user %s is defined"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ð´Ð°Ð»Ð¸ SELinux Ð¿Ð¾Ñ‚ребител %s Ðµ Ð´ÐµÑ„иниран"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ Ð´Ð°Ð»Ð¸ SELinux Ð¿Ð¾Ñ‚ребител %s Ðµ Ð´ÐµÑ„иниран"
+ #: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+ #: ../semanage/seobject.py:866
+ #, python-format
+ msgid "Could not query user for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ð¿Ð¾Ñ‚ребителѠза %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð¿Ð¸Ñ‚ам Ð¿Ð¾Ñ‚ребителѠза %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð´Ð¾Ð±Ð°Ð²Ð¸ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "ТрÑбва Ð´Ð° Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚е Ð¿Ð¾Ð½Ðµ ÐµÐ´Ð½Ð° Ñ€Ð¾Ð»Ñ Ð·Ð° %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+ msgid "Could not create SELinux user for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñъздаде SELinux Ð¿Ð¾Ñ‚ребител Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам SELinux Ð¿Ð¾Ñ‚ребител Ð·Ð° %s"
+ #: ../semanage/seobject.py:746
+ #, python-format
+ msgid "Could not add role %s for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð´Ð¾Ð±Ð°Ð²Ð¸ Ñ€Ð¾Ð»Ñ %s Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð´Ð¾Ð±Ð°Ð²Ñ Ñ€Ð¾Ð»Ñ %s Ð·Ð° %s"
+ #: ../semanage/seobject.py:755
+ #, python-format
+ msgid "Could not set MLS level for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð·Ð°Ð´Ð°Ð´Ðµ MLS Ð½Ð¸Ð²Ð¾ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ MLS Ð½Ð¸Ð²Ð¾ Ð·Ð° %s"
+ #: ../semanage/seobject.py:758
+ #, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð´Ð¾Ð±Ð°Ð²Ð¸ Ð¿Ñ€ÐµÑ„икѠ%s Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð´Ð¾Ð±Ð°Ð²Ñ Ð¿Ñ€ÐµÑ„икѠ%s Ð·Ð° %s"
+ #: ../semanage/seobject.py:761
+ #, python-format
+ msgid "Could not extract key for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ð²Ð»ÐµÑ‡Ðµ ÐºÐ»ÑŽÑ‡ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ð²Ð»ÐµÐºÐ° ÐºÐ»ÑŽÑ‡ Ð·Ð° %s"
+ #: ../semanage/seobject.py:765
+ #, python-format
+ msgid "Could not add SELinux user %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð´Ð¾Ð±Ð°Ð²Ð¸ SELinux Ð¿Ð¾Ñ‚ребител %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð´Ð¾Ð±Ð°Ð²Ñ SELinux Ð¿Ð¾Ñ‚ребител %s"
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+@@ -356,30 +359,30 @@ msgstr "SELinux Ð¿Ð¾Ñ‚ребител %s Ð½Ðµ Ðµ Ð´ÐµÑ„иниран"
+ #: ../semanage/seobject.py:828
+ #, python-format
+ msgid "Could not modify SELinux user %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ SELinux Ð¿Ð¾Ñ‚ребител %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ SELinux Ð¿Ð¾Ñ‚ребителѠ%s"
+ #: ../semanage/seobject.py:862
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr "SELinux Ð¿Ð¾Ñ‚ребител %s Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ð¾Ð»Ð¸Ñ‚иката, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие"
++msgstr "SELinux Ð¿Ð¾Ñ‚ребителѠ%s Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ика, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие"
+ #: ../semanage/seobject.py:873
+ #, python-format
+ msgid "Could not delete SELinux user %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие SELinux Ð¿Ð¾Ñ‚ребител %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ñ‚риѠSELinux Ð¿Ð¾Ñ‚ребител %s"
+ #: ../semanage/seobject.py:911
+ msgid "Could not list SELinux users"
+-msgstr "Ðе Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ð±ÑŠÐ´Ð°Ñ‚ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸ SELinux Ð¿Ð¾Ñ‚ребителите"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ ÑпиÑък Ð½Ð° SELinux Ð¿Ð¾Ñ‚ребителите"
+ #: ../semanage/seobject.py:917
+ #, python-format
+ msgid "Could not list roles for user %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ð±ÑŠÐ´Ð°Ñ‚ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸ Ñ€Ð¾Ð»Ð¸Ñ‚е Ð·Ð° Ð¿Ð¾Ñ‚ребител %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ ÑпиÑък Ð½Ð° Ñ€Ð¾Ð»Ð¸Ñ‚е Ð·Ð° Ð¿Ð¾Ñ‚ребител %s"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr "Етикиране"
++msgstr "Етикетиране"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+@@ -398,6 +401,7 @@ msgid "MCS Range"
+ msgstr "MCS Ð¸Ð½Ñ‚ервал"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux Ñ€Ð¾Ð»Ð¸"
+@@ -410,14 +414,13 @@ msgid "Port is required"
+ msgstr "ИзиÑква Ñе Ð¿Ð¾Ñ€Ñ‚"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Ðевалиден Ð¿Ñ€ÐµÑ„икѠ%s"
++msgstr "Ðевалиден Ð¿Ð¾Ñ€Ñ‚"
+ #: ../semanage/seobject.py:979
+ #, python-format
+ msgid "Could not create a key for %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñъздаде ÐºÐ»ÑŽÑ‡ Ð·Ð° %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам ÐºÐ»ÑŽÑ‡ Ð·Ð° %s/%s"
+ #: ../semanage/seobject.py:990
+ msgid "Type is required"
+@@ -427,7 +430,7 @@ msgstr "ИзиÑква Ñе Ñ‚ип"
+ #: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+ #, python-format
+ msgid "Could not check if port %s/%s is defined"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ð´Ð°Ð»Ð¸ Ð¿Ð¾Ñ€Ñ‚ %s/%s Ðµ Ð´ÐµÑ„иниран"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ Ð´Ð°Ð»Ð¸ Ð¿Ð¾Ñ€Ñ‚ %s/%s Ðµ Ð´ÐµÑ„иниран"
+ #: ../semanage/seobject.py:998
+ #, python-format
+@@ -437,42 +440,42 @@ msgstr "Порт %s/%s Ð²ÐµÑ‡Ðµ Ðµ Ð´ÐµÑ„иниран"
+ #: ../semanage/seobject.py:1002
+ #, python-format
+ msgid "Could not create port for %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñъздаде Ð¿Ð¾Ñ€Ñ‚ Ð·Ð° %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам Ð¿Ð¾Ñ€Ñ‚ Ð·Ð° %s/%s"
+ #: ../semanage/seobject.py:1008
+ #, python-format
+ msgid "Could not create context for %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñъздаде ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s/%s"
+ #: ../semanage/seobject.py:1012
+ #, python-format
+ msgid "Could not set user in port context for %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ð¿Ð¾Ñ‚ребителѠв ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ð¿Ð¾Ñ€Ñ‚а Ð·Ð° %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ð¿Ð¾Ñ‚ребител Ð² ÐºÐ¾Ð½Ñ‚екÑта Ð½Ð° Ð¿Ð¾Ñ€Ñ‚а Ð·Ð° %s/%s"
+ #: ../semanage/seobject.py:1016
+ #, python-format
+ msgid "Could not set role in port context for %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ñ€Ð¾Ð»Ñта Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ð¿Ð¾Ñ€Ñ‚а Ð·Ð° %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ñ€Ð¾Ð»Ñ Ð² ÐºÐ¾Ð½Ñ‚екÑта Ð½Ð° Ð¿Ð¾Ñ€Ñ‚а Ð·Ð° %s/%s"
+ #: ../semanage/seobject.py:1020
+ #, python-format
+ msgid "Could not set type in port context for %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ñ‚ипа Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ð¿Ð¾Ñ€Ñ‚а Ð·Ð° %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ñ‚ип Ð² ÐºÐ¾Ð½Ñ‚екÑта Ð½Ð° Ð¿Ð¾Ñ€Ñ‚а Ð·Ð° %s/%s"
+ #: ../semanage/seobject.py:1025
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ð°Ñ‚ mls Ð¿Ð¾Ð»ÐµÑ‚ата Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ð¿Ð¾Ñ€Ñ‚а Ð·Ð° %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ mls Ð¿Ð¾Ð»ÐµÑ‚а Ð² ÐºÐ¾Ð½Ñ‚екÑта Ð½Ð° Ð¿Ð¾Ñ€Ñ‚а Ð·Ð° %s/%s"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+ msgid "Could not set port context for %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ ÐºÐ¾Ð½Ñ‚екÑта Ð½Ð° Ð¿Ð¾Ñ€Ñ‚а Ð·Ð° %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ ÐºÐ¾Ð½Ñ‚екÑта Ð½Ð° Ð¿Ð¾Ñ€Ñ‚а Ð·Ð° %s/%s"
+ #: ../semanage/seobject.py:1033
+ #, python-format
+ msgid "Could not add port %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð´Ð¾Ð±Ð°Ð²Ð¸ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð´Ð¾Ð±Ð°Ð²Ñ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
+ #: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+ #: ../semanage/seobject.py:1508
+@@ -491,36 +494,35 @@ msgstr "Порт %s/%s Ð½Ðµ Ðµ Ð´ÐµÑ„иниран"
+ #: ../semanage/seobject.py:1061
+ #, python-format
+ msgid "Could not query port %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð¿Ð¸Ñ‚ам Ð¿Ð¾Ñ€Ñ‚ %s/%s"
+ #: ../semanage/seobject.py:1072
+ #, python-format
+ msgid "Could not modify port %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»ÑƒÑ‡Ð¸ ÑпиÑък Ð½Ð° Ð¿Ð¾Ñ€Ñ‚овете"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ ÑпиÑък Ð½Ð° Ð¿Ð¾Ñ€Ñ‚овете"
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ñ‚риѠпорт %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+ msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr "Порт %s/%s Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ð¾Ð»Ð¸Ñ‚иката, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие"
++msgstr "Порт %s/%s Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ика, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие"
+ #: ../semanage/seobject.py:1122
+ #, python-format
+ msgid "Could not delete port %s/%s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ñ‚риѠпорт %s/%s"
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+ msgid "Could not list ports"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»ÑƒÑ‡Ð¸ ÑпиÑък Ð½Ð° Ð¿Ð¾Ñ€Ñ‚овете"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ ÑпиÑък Ð½Ð° Ð¿Ð¾Ñ€Ñ‚овете"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+@@ -530,18 +532,17 @@ msgstr "SELinux Ñ‚ип Ð¿Ð¾Ñ€Ñ‚"
+ msgid "Proto"
+ msgstr "Протокол"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "Ðомер Ð½Ð° Ð¿Ð¾Ñ€Ñ‚"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "ИзиÑква Ñе Ð¿Ð¾Ñ€Ñ‚"
++msgstr "ИзиÑква Ñе Ð°Ð´Ñ€ÐµÑ Ð½Ð° Ð²ÑŠÐ·ÐµÐ»"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Ðепознат Ð¸Ð»Ð¸ Ð»Ð¸Ð¿Ñващ Ð¿Ñ€Ð¾Ñ‚окол"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -554,140 +555,138 @@ msgstr "Ðеобходим Ðµ SELinux Ñ‚ип"
+ #: ../semanage/seobject.py:1728
+ #, python-format
+ msgid "Could not create key for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñъздаде ÐºÐ»ÑŽÑ‡ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам ÐºÐ»ÑŽÑ‡ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ð´Ð°Ð»Ð¸ Ð¿Ð¾Ñ€Ñ‚ %s/%s Ðµ Ð´ÐµÑ„иниран"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ Ð´Ð°Ð»Ð¸ addr %s Ðµ Ð´ÐµÑ„иниран"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñъздаде ÐºÐ»ÑŽÑ‡ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам addr Ð·Ð° %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+ #, python-format
+ msgid "Could not create context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñъздаде ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð·Ð°Ð´Ð°Ð´Ðµ Ð¸Ð¼ÐµÑ‚о Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ð¼Ð°Ñка Ð·Ð° %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ð¿Ð¾Ñ‚ребителѠв ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ð¿Ð¾Ñ‚ребител Ð² addr ÐºÐ¾Ð½Ñ‚екÑÑ‚ %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ñ€Ð¾Ð»Ñта Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ñ€Ð¾Ð»Ñ Ð² addr ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ñ‚ипа Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ñ‚ип Ð² addr ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ð°Ñ‚ mls Ð¿Ð¾Ð»ÐµÑ‚ата Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ mls Ð¿Ð¾Ð»ÐµÑ‚а Ð² addr ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе ÑƒÑтанови ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ addr ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð´Ð¾Ð±Ð°Ð²Ð¸ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð´Ð¾Ð±Ð°Ð²Ñ addr %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Порт %s/%s Ð½Ðµ Ðµ Ð´ÐµÑ„иниран"
++msgstr "Addr %s Ð½Ðµ Ðµ Ð´ÐµÑ„иниран"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð¿Ð¸Ñ‚ам addr %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ addr %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Порт %s/%s Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ð¾Ð»Ð¸Ñ‚иката, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие"
++msgstr "Addr %s Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ика, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие Ð¸Ð½Ñ‚ерфейѠ%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ñ‚риѠaddr %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие ÑъответÑтвието Ð·Ð° Ð²Ñ…од Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ñ‚риѠвÑички ÑъответÑтвиѠна Ð²ÑŠÐ·Ð»Ð¸"
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»ÑƒÑ‡Ð¸ ÑпиÑък Ð½Ð° Ð¿Ð¾Ñ€Ñ‚овете"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ addr ÑпиÑък"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+ #, python-format
+ msgid "Could not check if interface %s is defined"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ð´Ð°Ð»Ð¸ Ð¸Ð½Ñ‚ерфейѠ%s Ðµ Ð´ÐµÑ„инирано"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ Ð´Ð°Ð»Ð¸ Ð¸Ð½Ñ‚ерфейѠ%s Ðµ Ð´ÐµÑ„иниран"
+ #: ../semanage/seobject.py:1461
+ #, python-format
+ msgid "Could not create interface for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñъздаде Ð¸Ð½Ñ‚ерфейѠза %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам Ð¸Ð½Ñ‚ерфейѠза %s"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ð¿Ð¾Ñ‚ребителѠв Ð¸Ð½Ñ‚ерфейÑен ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ð¿Ð¾Ñ‚ребител Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ð¸Ð½Ñ‚ерфейѠза %s"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ñ€Ð¾Ð»Ñта Ð² Ð¸Ð½Ñ‚ерфейÑен ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ñ€Ð¾Ð»Ñ Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ð¸Ð½Ñ‚ерфейѠза %s"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ñ‚ипа Ð² Ð¸Ð½Ñ‚ерфейÑен ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ñ‚ип Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ð¸Ð½Ñ‚ерфейѠза %s"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ð°Ñ‚ mls Ð¿Ð¾Ð»ÐµÑ‚ата Ð² Ð¸Ð½Ñ‚ерфейÑен ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ mls Ð¿Ð¾Ð»ÐµÑ‚а Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ð¸Ð½Ñ‚ерфейѠза %s"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе ÑƒÑтанови Ð¸Ð½Ñ‚ерфейÑен ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ð¸Ð½Ñ‚ерфейѠза %s"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+ msgid "Could not set message context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе ÑƒÑтанови ÐºÐ¾Ð½Ñ‚екÑта Ð½Ð° Ñъобщението Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñъобщението Ð·Ð° %s"
+ #: ../semanage/seobject.py:1495
+ #, python-format
+ msgid "Could not add interface %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð´Ð¾Ð±Ð°Ð²Ð¸ Ð¸Ð½Ñ‚ерфейѠ%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð´Ð¾Ð±Ð°Ð²Ñ Ð¸Ð½Ñ‚ерфейѠ%s"
+ #: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+ #, python-format
+@@ -697,31 +696,30 @@ msgstr "ИнтерфейѠ%s Ð½Ðµ Ðµ Ð´ÐµÑ„иниран"
+ #: ../semanage/seobject.py:1522
+ #, python-format
+ msgid "Could not query interface %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ð¸Ð½Ñ‚ерфейѠ%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð¿Ð¸Ñ‚ам Ð¸Ð½Ñ‚ерфейѠ%s"
+ #: ../semanage/seobject.py:1533
+ #, python-format
+ msgid "Could not modify interface %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ Ð¸Ð½Ñ‚ерфейѠ%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð¸Ð½Ñ‚ерфейѠ%s"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+ msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr "ИнтерфейѠ%s Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ð¾Ð»Ð¸Ñ‚иката, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие"
++msgstr "ИнтерфейѠ%s Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ика, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+ msgid "Could not delete interface %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие Ð¸Ð½Ñ‚ерфейѠ%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ñ‚риѠинтерфейѠ%s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие Ð¸Ð½Ñ‚ерфейѠ%s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ñ‚риѠвÑички ÑъответÑтвиѠ  Ð½Ð° Ð¸Ð½Ñ‚ерфейÑи"
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»ÑƒÑ‡Ð¸ ÑпиÑък Ñ Ð¸Ð½Ñ‚ерфейÑите"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам ÑпиÑък Ñ Ð¸Ð½Ñ‚ерфейÑите"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+@@ -732,77 +730,79 @@ msgid "Context"
+ msgstr "КонтекÑÑ‚"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "ФайловиѠконтекÑÑ‚ Ð·Ð° %s Ð²ÐµÑ‡Ðµ Ðµ Ð´ÐµÑ„иниран"
++msgstr "КлаѠза ÐµÐºÐ²Ð¸Ð²Ð°Ð»ÐµÐ½Ñ‚ноÑÑ‚ Ð·Ð° %s Ð²ÐµÑ‡Ðµ ÑъщеÑтвува"
+ #: ../semanage/seobject.py:1669
+ #, python-format
+ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
++"Файловата ÑпецификациѠ%s Ðµ Ð² ÐºÐ¾Ð½Ñ„ликт Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ Ð·Ð° ÐµÐºÐ²Ð¸Ð²Ð°Ð»ÐµÐ½Ñ‚ноÑÑ‚ '%s %s'"
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux Ð¿Ð¾Ñ‚ребител %s Ð½Ðµ ÑъщеÑтвува"
++msgstr "КлаѠза ÐµÐºÐ²Ð¸Ð²Ð°Ð»ÐµÐ½Ñ‚ноÑÑ‚ Ð·Ð° %s Ð½Ðµ ÑъщеÑтвува"
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ð¿Ð¾Ñ‚ребителѠв ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ð¿Ð¾Ñ‚ребител Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ñ€Ð¾Ð»Ñта Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ñ€Ð¾Ð»Ñ Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ð°Ñ‚ mls Ð¿Ð¾Ð»ÐµÑ‚ата Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ mls Ð¿Ð¾Ð»ÐµÑ‚а Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
+ #: ../semanage/seobject.py:1707
+-#, fuzzy
+ msgid "Invalid file specification"
+-msgstr "Файлова ÑпецификациÑ"
++msgstr "Ðевалидна Ñ„айлова ÑпецификациÑ"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+-msgstr ""
++msgstr "Файловата ÑпецификациѠне Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñъдържа Ð¸Ð½Ñ‚ервали"
+ #: ../semanage/seobject.py:1714
+ #, python-format
+ msgid ""
+ "File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+ msgstr ""
++"Файловата ÑпецификациѠ%s Ðµ Ð² ÐºÐ¾Ð½Ñ„ликт Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾ Ð·Ð° ÐµÐºÐ²Ð¸Ð²Ð°Ð»ÐµÐ½Ñ‚ноÑÑ‚ '%s %s'; "
++"ВмеÑто Ñ‚ова Ð¾Ð¿Ð¸Ñ‚айте ÐºÐ°Ñ‚о Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚е '%s'"
+ #: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+ #: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+ #: ../semanage/seobject.py:1876
+ #, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ð´Ð°Ð»Ð¸ Ñ„айловиѠконтекÑÑ‚ Ð·Ð° %s Ðµ Ð´ÐµÑ„иниран"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ Ð´Ð°Ð»Ð¸ Ñ„айловиѠконтекÑÑ‚ Ð·Ð° %s Ðµ Ð´ÐµÑ„иниран"
+ #: ../semanage/seobject.py:1745
+ #, python-format
+ msgid "Could not create file context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ñъздаде Ñ„айлов ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ñъздам ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÐµÐ´Ðµ Ñ‚ипа Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ñ‚ип Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе ÑƒÑтанови ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+ msgid "Could not add file context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð´Ð¾Ð±Ð°Ð²Ð¸ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð´Ð¾Ð±Ð°Ð²Ñ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ð° Ñ„айл Ð·Ð° %s"
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+@@ -816,41 +816,40 @@ msgstr "Ðе Ðµ Ð´ÐµÑ„иниран Ñ„айлов ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1800
+ #, python-format
+ msgid "Could not query file context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ñ„айловиѠконтекÑÑ‚ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð¿Ð¸Ñ‚ам Ñ„айловиѠконтекÑÑ‚ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1826
+ #, python-format
+ msgid "Could not modify file context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ Ñ„айловиѠконтекÑÑ‚ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ñ„айловиѠконтекÑÑ‚ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ Ñ„айловите ÐºÐ¾Ð½Ñ‚екÑти"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ ÑпиÑък Ð½Ð° Ñ„айловите ÐºÐ¾Ð½Ñ‚екÑти"
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие Ñ„айловиѠконтекÑÑ‚ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ñ‚риѠфайловиѠконтекÑÑ‚ %s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+ msgid "File context for %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"ФайловиѠконтекÑÑ‚ Ð·Ð° %s Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ð¾Ð»Ð¸Ñ‚иката, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð±ÑŠÐ´Ðµ Ð¸Ð·Ñ‚рит"
++"ФайловиÑÑ‚ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ика, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð±ÑŠÐ´Ðµ Ð¸Ð·Ñ‚рит"
+ #: ../semanage/seobject.py:1884
+ #, python-format
+ msgid "Could not delete file context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие Ñ„айловиѠконтекÑÑ‚ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ñ‚риѠфайловиѠконтекÑÑ‚ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ Ñ„айловите ÐºÐ¾Ð½Ñ‚екÑти"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ ÑпиÑък Ð½Ð° Ñ„айловите ÐºÐ¾Ð½Ñ‚екÑти"
+ #: ../semanage/seobject.py:1903
+ msgid "Could not list local file contexts"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ‚е Ñ„айловите ÐºÐ¾Ð½Ñ‚екÑти"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ ÑпиÑък Ð½Ð° Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ‚е Ñ„айловите ÐºÐ¾Ð½Ñ‚екÑти"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+@@ -865,19 +864,22 @@ msgid ""
+ "\n"
+ "SELinux Distribution fcontext Equivalence \n"
+ msgstr ""
++"\n"
++"ДиÑтрибуционна SELinux fcontext ÐµÐºÐ²Ð¸Ð²Ð°Ð»ÐµÐ½Ñ‚ноÑÑ‚ \n"
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux Ñ„.контекÑÑ‚"
++msgstr ""
++"\n"
++"Локална SELinux fcontext ÐµÐºÐ²Ð¸Ð²Ð°Ð»ÐµÐ½Ñ‚ноÑÑ‚ \n"
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+ #, python-format
+ msgid "Could not check if boolean %s is defined"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ð´Ð°Ð»Ð¸ Ð±ÑƒÐ»ÐµÐ²Ð°Ñ‚а Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð° %s Ðµ Ð´ÐµÑ„инирана"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ Ð´Ð°Ð»Ð¸ Ð±ÑƒÐ»ÐµÐ²Ð°Ñ‚а Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð° %s Ðµ Ð´ÐµÑ„инирана"
+ #: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+ #, python-format
+@@ -887,27 +889,27 @@ msgstr "Булева Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð° %s Ð½Ðµ Ðµ Ð´ÐµÑ„инирана"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+ msgid "Could not query file context %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸ Ñ„айловиѠконтекÑÑ‚ %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ Ñ„айловиѠконтекÑÑ‚ %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Следва Ð´Ð° Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚е Ð¸Ð¼Ðµ"
++msgstr "ТрÑбва Ð´Ð° Ð·Ð°Ð´Ð°Ð´ÐµÑ‚е ÐµÐ´Ð½Ð° Ð¾Ñ‚ Ñледните ÑтойноÑти: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие Ð±ÑƒÐ»ÐµÐ²Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ð°ÐºÑ‚ивна ÑтойноÑÑ‚ Ð½Ð° Ð±ÑƒÐ»ÐµÐ²Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð° %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+ msgid "Could not modify boolean %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ Ð±ÑƒÐ»ÐµÐ²Ð°Ñ‚а Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð±ÑƒÐ»ÐµÐ²Ð°Ñ‚а Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð° %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Грешен Ñ„ормат %s: Ð—апиѠ%s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -917,46 +919,45 @@ msgstr "Булевата Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð° %s Ðµ Ð´ÐµÑ„инирана Ð² Ð¿Ð¾
+ #: ../semanage/seobject.py:2052
+ #, python-format
+ msgid "Could not delete boolean %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¸Ð·Ñ‚рие Ð±ÑƒÐ»ÐµÐ²Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ñ‚риѠбулева Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð° %s"
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+ msgid "Could not list booleans"
+-msgstr "Ðе Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ñе Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ Ð±ÑƒÐ»ÐµÐ²Ð¸Ñ‚е Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð¸"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ ÑпиÑък Ð½Ð° Ð±ÑƒÐ»ÐµÐ²Ð¸Ñ‚е Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð¸"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "неизвеÑтен"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "изкл"
+ #: ../semanage/seobject.py:2117
+-#, fuzzy
+ msgid "on"
+-msgstr "Cron"
++msgstr "вкл"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+ msgstr "SELinux Ð±ÑƒÐ»ÐµÐ²Ð°"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+ msgstr "СъÑтоÑние"
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+-msgstr ""
++msgstr "Подразбиращ Ñе"
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "ОпиÑание"
+ #: ../newrole/newrole.c:201
+ #, c-format
+ msgid "failed to set PAM_TTY\n"
+-msgstr "неуÑпешна Ð½Ð°Ñтройка Ð½Ð° PAM_TTY\n"
++msgstr "наÑтройката Ð½Ð° PAM_TTY Ð½Ðµ ÑƒÑпÑ\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+@@ -972,7 +973,7 @@ msgstr "newrole:  %s:  Ð³Ñ€ÐµÑˆÐºÐ° Ð½Ð° Ñ€ÐµÐ´ %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+ msgid "cannot find valid entry in the passwd file.\n"
+-msgstr "не Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð½Ð°Ð¼ÐµÑ€Ð¸ Ð²Ð°Ð»Ð¸Ð´ÐµÐ½ Ð·Ð°Ð¿Ð¸Ñ Ð²ÑŠÐ² Ñ„айла passwd.\n"
++msgstr "не Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð½Ð°Ð¼ÐµÑ€Ñ Ð²Ð°Ð»Ð¸Ð´ÐµÐ½ Ð·Ð°Ð¿Ð¸Ñ Ð²ÑŠÐ² Ñ„айла passwd.\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+@@ -987,7 +988,7 @@ msgstr "Грешка!  ÐžÐ±Ð²Ð¸Ð²ÐºÐ°Ñ‚а Ð½Ðµ Ðµ Ð²Ð°Ð»Ð¸Ð´Ð½Ð°.\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+ msgid "Unable to clear environment\n"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð±ÑŠÐ´Ðµ Ð¿Ð¾Ñ‡Ð¸Ñтена Ñредата\n"
++msgstr "Ðе Ð¼Ð¾Ð³Ð° Ð´Ð° Ð¿Ð¾Ñ‡Ð¸ÑÑ‚Ñ Ñредата\n"
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+@@ -1017,31 +1018,30 @@ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¸Ð·Ð¿Ñ€Ð°Ñ‰Ð°Ð½Ðµ Ð½Ð° Ð¾Ð´Ð¸Ñ‚ Ñъобщение.
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸ Ñ€ÐµÐ¶Ð¸Ð¼Ð° Ð½Ð° Ð½Ð°Ð»Ð°Ð³Ð°Ð½Ðµ.\n"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ enforcing Ñ€ÐµÐ¶Ð¸Ð¼Ð°.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr "Грешка!  Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¾Ñ‚вори %s.\n"
++msgstr "Грешка!  Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¾Ñ‚ворѠ%s.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s!  Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸ Ñ‚екущиѠконтекÑÑ‚ Ð·Ð° %s, tty Ð½Ñма Ð´Ð° Ñе "
+-"преетикира.\n"
++"%s!  Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ñ‚екущиѠконтекÑÑ‚ Ð·Ð° %s, tty Ð½Ñма Ð´Ð° Ñе "
++"преетикетира.\n"
+ #: ../newrole/newrole.c:715
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s!  Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸ Ð½Ð¾Ð²Ð¸Ñ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s, tty Ð½Ñма Ð´Ð° Ñе "
+-"преетикира.\n"
++"%s!  Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð½Ð¾Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s, tty Ð½Ñма Ð´Ð° Ñе Ð¿Ñ€ÐµÐµÑ‚икетира.\n"
+ #: ../newrole/newrole.c:725
+ #, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr "%s!  Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸ Ð½Ð¾Ð²Ð¸Ñ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s\n"
++msgstr "%s!  Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ð½Ð¾Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+@@ -1051,17 +1051,17 @@ msgstr "%s Ð¿Ñ€Ð¾Ð¼Ñна Ð½Ð° ÐµÑ‚икетите.\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr "Предупреждение! Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð²ÑŠÐ·Ñтанови ÐºÐ¾Ð½Ñ‚екÑта Ð½Ð° %s\n"
++msgstr "Предупреждение! Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð²ÑŠÐ·ÑтановѠконтекÑта Ð·Ð° %s\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+ msgid "Error: multiple roles specified\n"
+-msgstr "Грешка: ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ Ñа Ð½Ñколко Ñ€Ð¾Ð»Ð¸\n"
++msgstr "Грешка: Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸ Ñа Ð½Ñколко Ñ€Ð¾Ð»Ð¸\n"
+ #: ../newrole/newrole.c:843
+ #, c-format
+ msgid "Error: multiple types specified\n"
+-msgstr "Грешка: ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ Ñа Ð½Ñколко Ñ‚ипа\n"
++msgstr "Грешка: Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸ Ñа Ð½Ñколко Ñ‚ипа\n"
+ #: ../newrole/newrole.c:850
+ #, c-format
+@@ -1071,47 +1071,47 @@ msgstr "СъжалÑваме, -l Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»Ð·Ð²Ð° Ñ Ð¿Ð¾Ð´Ð´Ñ€ÑŠ
+ #: ../newrole/newrole.c:855
+ #, c-format
+ msgid "Error: multiple levels specified\n"
+-msgstr "Грешка: ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ Ñа Ð½Ñколко Ð½Ð¸Ð²Ð°\n"
++msgstr "Грешка: Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸ Ñа Ð½Ñколко Ð½Ð¸Ð²Ð°\n"
+ #: ../newrole/newrole.c:865
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+ msgstr "Грешка: Ð½Ðµ Ð’и Ðµ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾ Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñте Ð½Ð¸Ð²Ð°Ñ‚а Ð½Ð° Ð½ÐµÑигурен Ñ‚ерминал\n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸ Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð±Ð¸Ñ€Ð°Ñ‰Ð¸Ñ Ñе Ñ‚ип.\n"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð±Ð¸Ñ€Ð°Ñ‰Ð¸Ñ Ñе Ñ‚ип.\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+ msgid "failed to get new context.\n"
+-msgstr "неуÑпешно Ð¸Ð·Ð²Ð»Ð¸Ñ‡Ð°Ð½Ðµ Ð½Ð° Ð½Ð¾Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚.\n"
++msgstr "получаването Ð½Ð° Ð½Ð¾Ð² ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð½Ðµ ÑƒÑпÑ.\n"
+ #: ../newrole/newrole.c:908
+ #, c-format
+ msgid "failed to set new role %s\n"
+-msgstr "неуÑпешно ÑƒÑтановÑване Ð½Ð° Ð½Ð¾Ð²Ð° Ñ€Ð¾Ð»Ñ %s\n"
++msgstr "не ÑƒÑпѠзадаването Ð½Ð° Ð½Ð¾Ð²Ð° Ñ€Ð¾Ð»Ñ %s\n"
+ #: ../newrole/newrole.c:915
+ #, c-format
+ msgid "failed to set new type %s\n"
+-msgstr "неуÑпешно ÑƒÑтановÑване Ð½Ð° Ð½Ð¾Ð² Ñ‚ип %s\n"
++msgstr "не ÑƒÑпѠзадаването Ð½Ð° Ð½Ð¾Ð² Ñ‚ип %s\n"
+ #: ../newrole/newrole.c:925
+ #, c-format
+ msgid "failed to build new range with level %s\n"
+-msgstr "неуÑпешно Ð¸Ð·Ð³Ñ€Ð°Ð¶Ð´Ð°Ð½Ðµ Ð½Ð° Ð½Ð¾Ð² Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ñ Ð½Ð¸Ð²Ð¾ %s\n"
++msgstr "не ÑƒÑпѠизграждането Ð½Ð° Ð½Ð¾Ð² Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ñ Ð½Ð¸Ð²Ð¾ %s\n"
+ #: ../newrole/newrole.c:930
+ #, c-format
+ msgid "failed to set new range %s\n"
+-msgstr "неуÑпешно ÑƒÑтановÑване Ð½Ð° Ð½Ð¾Ð² Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ %s\n"
++msgstr "не ÑƒÑпѠзадаването Ð½Ð° Ð½Ð¾Ð² Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ %s\n"
+ #: ../newrole/newrole.c:938
+ #, c-format
+ msgid "failed to convert new context to string\n"
+-msgstr "неуÑпешно ÐºÐ¾Ð½Ð²ÐµÑ€Ñ‚иране Ð½Ð° Ð½Ð¾Ð²Ð¸Ñ ÐºÐ¾Ð½Ñ‚екÑÑ‚ ÐºÑŠÐ¼ Ð½Ð¸Ð·\n"
++msgstr "не ÑƒÑпѠконвертирането Ð½Ð° Ð½Ð¾Ð²Ð¸Ñ ÐºÐ¾Ð½Ñ‚екÑÑ‚ ÐºÑŠÐ¼ Ð½Ð¸Ð·\n"
+ #: ../newrole/newrole.c:943
+ #, c-format
+@@ -1121,32 +1121,32 @@ msgstr "%s Ð½Ðµ Ðµ Ð²Ð°Ð»Ð¸Ð´ÐµÐ½ ÐºÐ¾Ð½Ñ‚екÑÑ‚\n"
+ #: ../newrole/newrole.c:950
+ #, c-format
+ msgid "Unable to allocate memory for new_context"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð·Ð°Ð´ÐµÐ»Ð¸ Ð¿Ð°Ð¼ÐµÑ‚ Ð·Ð° Ð½Ð¾Ð²_контекÑÑ‚"
++msgstr "Ðе Ð¼Ð¾Ð³Ð° Ð´Ð° Ð·Ð°Ð´ÐµÐ»Ñ Ð¿Ð°Ð¼ÐµÑ‚ Ð·Ð° Ð½Ð¾Ð²_контекÑÑ‚"
+ #: ../newrole/newrole.c:976
+ #, c-format
+ msgid "Unable to obtain empty signal set\n"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸ Ð¿Ñ€Ð°Ð·Ð½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€ Ñигнали\n"
++msgstr "Ðе Ð¼Ð¾Ð³Ð° Ð´Ð° Ñе ÑдобиѠѠпразен Ñигнален Ð½Ð°Ð±Ð¾Ñ€\n"
+ #: ../newrole/newrole.c:984
+ #, c-format
+ msgid "Unable to set SIGHUP handler\n"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе ÑƒÑтанови Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ката Ð½Ð° SIGHUP\n"
++msgstr "Ðе Ð¼Ð¾Ð³Ð° Ð´Ð° Ð·Ð°Ð´Ð°Ð¼ Ð¼Ð°Ð½Ð¸Ð¿ÑƒÐ»Ð°Ñ‚ор Ð½Ð° SIGHUP\n"
+ #: ../newrole/newrole.c:1053
+ #, c-format
+ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr "СъжалÑваме, newrole Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»Ð·Ð²Ð° Ñамо ÑÑŠÑ SELinux Ñдро.\n"
++msgstr "СъжалÑваме, newrole Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»Ð·Ð²Ð° Ñамо Ð½Ð° SELinux Ñдро.\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+ msgid "failed to get old_context.\n"
+-msgstr "неуÑпешно Ð¸Ð·Ð²Ð»Ð¸Ñ‡Ð°Ð½Ðµ Ð½Ð° Ñтар_контекÑÑ‚.\n"
++msgstr "не ÑƒÑпѠизвличането Ð½Ð° Ñтар_контекÑÑ‚.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Грешка!  Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ð¾Ð»ÑƒÑ‡Ð¸ Ð¸Ð½Ñ„ормациѠза tty.\n"
++msgstr "Внимание!  Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð¸Ð·Ð²Ð»ÐµÐºÐ° tty Ð¸Ð½Ñ„ормациÑ.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+@@ -1156,7 +1156,7 @@ msgstr "грешка Ð¿Ñ€Ð¸ Ñ‡ÐµÑ‚ене Ð½Ð° ÐºÐ¾Ð½Ñ„игурациÑта Ð½Ð°
+ #: ../newrole/newrole.c:1133
+ #, c-format
+ msgid "newrole: incorrect password for %s\n"
+-msgstr "newrole: Ð³Ñ€ÐµÑˆÐ½Ð° Ð¿Ð°Ñ€Ð¾Ð»Ð° Ð·Ð° %s\n"
++msgstr "newrole: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚на Ð¿Ð°Ñ€Ð¾Ð»Ð° Ð·Ð° %s\n"
+ #: ../newrole/newrole.c:1160
+ #, c-format
+@@ -1166,17 +1166,17 @@ msgstr "newrole: Ð½ÐµÑƒÑпешно Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ðµ Ð½Ð° fork: %s"
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+ msgid "Unable to restore tty label...\n"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð²ÑŠÐ·Ñтанови ÐµÑ‚икета Ð½Ð° tty...\n"
++msgstr "Ðе Ð¼Ð¾Ð³Ð° Ð´Ð° Ð²ÑŠÐ·ÑтановѠетикета Ð½Ð° tty...\n"
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+ msgid "Failed to close tty properly\n"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð·Ð°Ñ‚вори tty ÐºÐ¾Ñ€ÐµÐºÑ‚но\n"
++msgstr "Коректното Ð·Ð°Ñ‚варÑне Ð½Ð° tty Ð½Ðµ ÑƒÑпÑ\n"
+ #: ../newrole/newrole.c:1224
+ #, c-format
+ msgid "Could not close descriptors.\n"
+-msgstr "Ðе Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ñе Ð·Ð°Ñ‚ворÑÑ‚ Ð´ÐµÑкриптори.\n"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ñ… Ð´Ð° Ð·Ð°Ñ‚ворѠдеÑкриптори.\n"
+ #: ../newrole/newrole.c:1251
+ #, c-format
+@@ -1186,26 +1186,26 @@ msgstr "Грешка Ð¿Ñ€Ð¸ Ð·Ð°Ð´ÐµÐ»Ñне argv0 Ð½Ð° Ð¾Ð±Ð²Ð¸Ð²ÐºÐ°Ñ‚а.\n"
+ #: ../newrole/newrole.c:1287
+ #, c-format
+ msgid "Unable to restore the environment, aborting\n"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð±ÑŠÐ´Ðµ Ð²ÑŠÐ·Ñтановена Ñредата, Ð°Ð²Ð°Ñ€Ð¸ÐµÐ½ Ð¸Ð·Ñ…од\n"
++msgstr "Ðе Ð¼Ð¾Ð³Ð° Ð´Ð° Ð²ÑŠÐ·ÑтановѠÑредата, Ð°Ð²Ð°Ñ€Ð¸ÐµÐ½ Ð¸Ð·Ñ…од\n"
+ #: ../newrole/newrole.c:1298
+ msgid "failed to exec shell\n"
+-msgstr "неуÑпешно Ð¿ÑƒÑкане Ð½Ð° Ð¾Ð±Ð²Ð¸Ð²ÐºÐ°Ñ‚а\n"
++msgstr "Ñтартирането Ð½Ð° Ð¾Ð±Ð²Ð¸Ð²ÐºÐ°Ñ‚а Ð½Ðµ ÑƒÑпÑ\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "употреба:  %s [-q]\n"
++msgstr "употреба:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s:  ÐŸÐ¾Ð»Ð¸Ñ‚иката Ðµ Ð²ÐµÑ‡Ðµ Ð·Ð°Ñ€ÐµÐ´ÐµÐ½Ð° Ð¸ Ðµ Ð¸Ð·Ð¸Ñкано Ð¿ÑŠÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¾ Ð·Ð°Ñ€ÐµÐ¶Ð´Ð°Ð½Ðµ\n"
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:  Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð·Ð°Ñ€ÐµÐ´Ð¸ Ð¿Ð¾Ð»Ð¸Ñ‚ика:  %s\n"
++msgstr "%s:  Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð·Ð°Ñ€ÐµÐ´Ð¸ Ð¿Ð¾Ð»Ð¸Ñ‚ика Ð¸ Ð¸ÑканиѠза Ð½Ð°Ð»Ð°Ð³Ð°Ð½Ðµ Ñ€ÐµÐ¶Ð¸Ð¼:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1219,7 +1219,7 @@ msgstr "ИзиÑква Ð¿Ð¾Ð½Ðµ ÐµÐ´Ð½Ð° ÐºÐ°Ñ‚егориÑ"
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+ msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ Ð½Ð¸Ð²Ð¾Ñ‚о Ð½Ð° Ñ‡ÑƒÐ²ÑтвителноÑÑ‚ Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹ÐºÐ¸ '+' Ð½Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÑÑ‚ Ð½Ð¸Ð²Ð°Ñ‚а Ð½Ð° Ñ‡ÑƒÐ²ÑтвителноÑÑ‚ Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹ÐºÐ¸ '+' Ð½Ð° %s"
+ #: ../scripts/chcat:110
+ #, c-format
+@@ -1281,7 +1281,7 @@ msgstr "Употреба %s -L -l Ð¿Ð¾Ñ‚ребител"
+ #: ../scripts/chcat:333
+ msgid "Use -- to end option list.  For example"
+-msgstr "Ползвайте -- Ð·Ð° ÐºÑ€Ð°Ð½ Ð½Ð° ÑпиÑъка Ñ Ð¾Ð¿Ñ†Ð¸Ð¸.  Ðапример"
++msgstr "Ползвайте -- Ð·Ð° ÐºÑ€Ð°Ð¹ Ð½Ð° ÑпиÑъка Ñ Ð¾Ð¿Ñ†Ð¸Ð¸.  Ðапример"
+ #: ../scripts/chcat:334
+ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+@@ -1291,2144 +1291,2231 @@ msgstr "chcat -- -КонфиденциалноЗаКомпаниÑта /доку
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +КонфиденциалноЗаКомпаниÑта Ñпотребител"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Грешка Ð² Ð¾Ð¿Ñ†Ð¸Ð¸Ñ‚е %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¾Ñ‚вори %s: Ð½Ðµ Ñе Ð¿Ð¾Ð´Ð´ÑŠÑ€Ð¶Ð°Ñ‚ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸ Ð½Ð° Ð¼Ð°ÑˆÐ¸Ð½Ð¸ Ð±ÐµÐ· MLS"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr "Булева"
+-#~ msgid "Level"
+-#~ msgstr "Ðиво"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr "вÑички"
+-#~ msgid "Translation"
+-#~ msgstr "Превод"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr "Индивидуални"
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Преводите Ð½Ðµ Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ñъдържат Ð¸Ð½Ñ‚ервали '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr "Етикетиране Ð½Ð° Ñ„айлове"
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Ðевалидно Ð½Ð¸Ð²Ð¾ '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++"Файлова\n"
++"ÑпецификациÑ"
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s Ð²ÐµÑ‡Ðµ Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸Ñ‚е"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++"Selinux\n"
++"Тип Ñ„айл"
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s Ð½Ðµ Ðµ Ð´ÐµÑ„иниран Ð² Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸Ñ‚е"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++"Файл\n"
++"Тип"
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Вече Ðµ Ð´ÐµÑ„инирано ÑъответÑтвие Ð·Ð° Ð²Ñ…од Ð½Ð° %s"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr "СъответÑтвие Ð½Ð° Ð¿Ð¾Ñ‚ребители"
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "добавÑне Ð½Ð° SELinux ÑъответÑтвие Ð·Ð° Ð¿Ð¾Ñ‚ребител"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++"Име Ð·Ð°\n"
++"влизане"
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux Ð¿Ð¾Ñ‚ребител %s Ð²ÐµÑ‡Ðµ Ðµ Ð´ÐµÑ„иниран"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++"SELinux\n"
++"Потребител"
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "ИзиÑква Ñе Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++"MLS/\n"
++"MCS ÐžÐ±Ñ…ват"
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Порт %s/%s Ð²ÐµÑ‡Ðµ Ðµ Ð´ÐµÑ„иниран"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr "ИзиÑква Ñе '%s' Ð²Ð»Ð¸Ð·Ð°Ð½Ðµ"
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "ИнтерфейѠ%s Ð²ÐµÑ‡Ðµ Ðµ Ð´ÐµÑ„иниран"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr "Модул Ð·Ð° Ð¿Ð¾Ð»Ð¸Ñ‚ики"
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° Ð¿Ñ€Ð°Ð²Ð°Ñ‚а, Ð°Ð²Ð°Ñ€Ð¸ÐµÐ½ Ð¸Ð·Ñ…од.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr "Име Ð½Ð° Ð¼Ð¾Ð´ÑƒÐ»"
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð½Ð°Ñтройка Ð½Ð° Ð¿Ñ€Ð°Ð²Ð°Ñ‚а, Ð°Ð²Ð°Ñ€Ð¸ÐµÐ½ Ð¸Ð·Ñ…од.\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr "Забрана Ð½Ð° Ð½Ð°Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸ÐµÑ‚о"
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð½Ð°Ñтройка Ð½Ð° KEEPCAPS, Ð°Ð²Ð°Ñ€Ð¸ÐµÐ½ Ð¸Ð·Ñ…од\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr "Разрешаване Ð½Ð° Ð½Ð°Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸ÐµÑ‚о"
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¾Ñ‚каз Ð¾Ñ‚ Ð¿Ñ€Ð°Ð²Ð°Ñ‚а, Ð°Ð²Ð°Ñ€Ð¸ÐµÐ½ Ð¸Ð·Ñ…од.\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr "Зареждане Ð½Ð° Ð¼Ð¾Ð´ÑƒÐ»Ð° Ð·Ð° Ð¿Ð¾Ð»Ð¸Ñ‚ики"
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¾Ñ‚каз Ð¾Ñ‚ SETUID Ð¿Ñ€Ð°Ð²Ð°, Ð°Ð²Ð°Ñ€Ð¸ÐµÐ½ Ð¸Ð·Ñ…од\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr "Polgen"
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¾Ñвобождаване Ð½Ð° Ð¿Ñ€Ð°Ð²Ð°\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr "Red Hat 2007"
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "не Ñе Ð¿Ð¾Ð´Ð´ÑŠÑ€Ð¶Ð°Ñ‚ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸ Ð½Ð° Ð¼Ð°ÑˆÐ¸Ð½Ð¸ Ð±ÐµÐ· MLS"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr "GPL"
+-#~ msgid "Boolean"
+-#~ msgstr "Булева"
+-
+-#, fuzzy
+-#~ msgid "all"
+-#~ msgstr "Ð’Ñички"
+-
+-#~ msgid "File Labeling"
+-#~ msgstr "Етикиране Ð½Ð° Ñ„айл"
+-
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "Файлова\n"
+-#~ "ÑпецификациÑ"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "файлов ÐºÐ¾Ð½Ñ‚екÑÑ‚"
+-
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Файлов\n"
+-#~ "Тип"
+-
+-#~ msgid "User Mapping"
+-#~ msgstr "СъответÑтвиѠза Ð¿Ð¾Ñ‚ребител"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "ПотребителÑко\n"
+-#~ "Име"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "Потребител"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS Ð¸Ð½Ñ‚ервал"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "ИзиÑква Ñе '%s' Ð·Ð° Ð²Ñ…од"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "Модул Ñ Ð¿Ð¾Ð»Ð¸Ñ‚ика"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "Изключване Ð½Ð° Ð¾Ð´Ð¸Ñ‚а"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "Включване Ð½Ð° Ð¾Ð´Ð¸Ñ‚а"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "Зареждане Ð½Ð° Ð¼Ð¾Ð´ÑƒÐ» Ñ Ð¿Ð¾Ð»Ð¸Ñ‚ика"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "ОПЛ"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "Doncho N. Gunchev <gunchev@gmail.com>, 2007."
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "ИнÑтрумент Ð·Ð° Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° SELinux Ð¿Ð¾Ð»Ð¸Ñ‚ики"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "С Ñ‚ози Ð¸Ð½Ñтрумент Ð¼Ð¾Ð¶ÐµÑ‚е Ð´Ð° Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ñ‚е Ð¿Ð¾Ð»Ð¸Ñ‚ики Ð·Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ðµ Ð½Ð° "
+-#~ "приложениѠили Ð¿Ð¾Ñ‚ребители Ñ‡Ñ€ÐµÐ· SELinux.   \n"
+-#~ "\n"
+-#~ "ИнÑтрумента Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°:\n"
+-#~ "Файлове Ð·Ð° Ð½Ð°Ð»Ð°Ð³Ð°Ð½Ðµ Ð½Ð° Ñ‚ип (te)\n"
+-#~ "ИнтерфейÑни Ñ„айлове (if)\n"
+-#~ "Файлове Ð·Ð° ÐºÐ¾Ð½Ñ‚екÑÑ‚ (fc)\n"
+-#~ "Скриптове Ð½Ð° Ñредата (sh) - Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚ Ñе Ð·Ð° ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ð¸Ñ€Ð°Ð½Ðµ Ð¸ Ð¸Ð½Ñталиране Ð½Ð° "
+-#~ "политиката. "
+-
+-#, fuzzy
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "Изберете Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð¸Ð»Ð¸ Ð¿Ð¾Ñ‚ребителÑка Ñ€Ð¾Ð»Ñ Ð·Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ðµ."
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>ПриложениÑ</b>"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "Стандартен init Ð´ÐµÐ¼Ð¾Ð½ Ñа Ñ‚ези Ð´ÐµÐ¼Ð¾Ð½Ð¸, ÐºÐ¾Ð¸Ñ‚о Ñе Ñтартират Ð¿Ñ€Ð¸ Ð·Ð°Ñ€ÐµÐ¶Ð´Ð°Ð½Ðµ Ð¾Ñ‚ "
+-#~ "init Ñкриптовете.  ÐžÐ±Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¾ Ð¸Ð·Ð¸Ñква Ñкрипт Ð² /etc/init.d"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "Стандартен init Ð´ÐµÐ¼Ð¾Ð½"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "Демони Ð·Ð° Ð˜Ð½Ñ‚ернет ÑƒÑлуги Ñа Ð´ÐµÐ¼Ð¾Ð½Ð¸, ÐºÐ¾Ð¸Ñ‚о Ñе Ñтартират Ð¾Ñ‚ xinetd"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Демони Ð·Ð° Ð˜Ð½Ñ‚ернет ÑƒÑлуги (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "Уеб Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ/Скриптове (CGI) Ñа Ñкриптове Ñтартирани Ð¾Ñ‚ ÑƒÐµÐ± Ñървъра "
+-#~ "(apache)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Уеб Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ/Скриптове (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "ПотребителÑки Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñа Ð²Ñички Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ, ÐºÐ¾Ð¸Ñ‚о Ð±Ð¸Ñ…те Ð¸Ñкали Ð´Ð° "
+-#~ "ограничите, Ñтартирани Ð¾Ñ‚ Ð¿Ð¾Ñ‚ребител"
+-
+-#~ msgid "User Application"
+-#~ msgstr "ПотребителÑки Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ"
+-
+-#, fuzzy
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Потребители</b>"
+-
+-#, fuzzy
+-#~ msgid "User Role"
+-#~ msgstr "РолÑ"
+-
+-#, fuzzy
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Потребители</b>"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "Изберете root Ð¿Ð¾Ñ‚ребител Ð°ÐºÐ¾ Ñ‚ози Ð¿Ð¾Ñ‚ребител Ñ‰Ðµ Ñе Ð¿Ð¾Ð»Ð·Ð²Ð° Ð·Ð° "
+-#~ "админиÑтриране Ð½Ð° Ð¼Ð°ÑˆÐ¸Ð½Ð°Ñ‚а Ñ€Ð°Ð±Ð¾Ñ‚ейки ÐºÐ°Ñ‚о root.  Ð¢Ð¾Ð·Ð¸ Ð¿Ð¾Ñ‚ребител Ð½Ñма Ð´Ð° "
+-#~ "може Ð´Ð° Ð²Ð»Ð¸Ð·Ð° Ð² ÑиÑтемата Ð´Ð¸Ñ€ÐµÐºÑ‚но."
+-
+-#, fuzzy
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Root Ð¿Ð¾Ñ‚ребител"
+-
+-#, fuzzy
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "Изберете Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð¸Ð»Ð¸ Ð¿Ð¾Ñ‚ребителÑка Ñ€Ð¾Ð»Ñ Ð·Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ðµ."
+-
+-#~ msgid "Name"
+-#~ msgstr "Име"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "Въведете Ð¿ÑŠÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ Ð·Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„айл Ð·Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ðµ."
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#, fuzzy
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr ""
+-#~ "Въведете ÑƒÐ½Ð¸ÐºÐ°Ð»Ð½Ð¾ Ð¸Ð¼Ðµ Ð½Ð° Ñ‚ип Ð·Ð° ÐºÐ¾Ð½Ñ„игурираниѠпотребител Ð¸Ð»Ð¸ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ."
+-
+-#~ msgid "Executable"
+-#~ msgstr "Изпълним Ñ„айл"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Init Ñкрипт"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "Въведете Ð¿ÑŠÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ Ð½Ð° init Ñкрипта Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½ Ð·Ð° Ñтартиране Ð½Ð° "
+-#~ "ограничаваното Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ."
+-
+-#, fuzzy
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "Изберете Ñ€Ð¾Ð»Ð¸Ñ‚е, ÐºÐ¾Ð¸Ñ‚о Ñ‚ози Ð¿Ð¾Ñ‚ребител Ñ‰Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¿Ñ€Ð¸ÐµÐ¼Ð°"
+-
+-#, fuzzy
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "Изберете Ð´Ð¾Ð¿ÑŠÐ»Ð½Ð¸Ñ‚елни Ð¿Ð¾Ñ‚ребителÑки Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð¸ Ð·Ð° Ð¿Ñ€ÐµÑ…од"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "Изберете Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð¸Ñ‚е Ð·Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ, ÐºÑŠÐ¼ ÐºÐ¾Ð¸Ñ‚о Ð±Ð¸Ñ…те Ð¸Ñкали Ñ‚ози Ð¿Ð¾Ñ‚ребител "
+-#~ "да Ð¿Ñ€ÐµÐ¼Ð¸Ð½Ð°Ð²Ð°."
+-
+-#, fuzzy
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "Изберете Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð¸Ñ‚е, ÐºÐ¾Ð¸Ñ‚о Ñ‚ози Ð¿Ð¾Ñ‚ребител Ñ‰Ðµ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрира"
+-
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr ""
+-#~ "Изберете Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð¸Ñ‚е, ÐºÐ¾Ð¸Ñ‚о Ð±Ð¸Ñ…те Ð¸Ñкали Ñ‚ози Ð¿Ð¾Ñ‚ребител Ð´Ð° Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрира."
+-
+-#, fuzzy
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "Изберете Ð´Ð¾Ð¿ÑŠÐ»Ð½Ð¸Ñ‚елни Ð¿Ð¾Ñ‚ребителÑки Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð¸ Ð·Ð° Ð¿Ñ€ÐµÑ…од"
+-
+-#, fuzzy
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr ""
+-#~ "Въведете Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½ ÑъѠзапетаи ÑпиÑък Ð¾Ñ‚ udp Ð¿Ð¾Ñ€Ñ‚ове, ÐºÑŠÐ¼ ÐºÐ¾Ð¸Ñ‚о "
+-#~ "приложението/потребителѠÑе Ñвързва."
+-
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP Ð¿Ð¾Ñ€Ñ‚ове</b>"
+-
+-#, fuzzy
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ð¾Ñ‚о Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ/потребител Ð´Ð° Ñе Ñлуша Ð½Ð° Ð²Ñеки "
+-#~ "udp Ð¿Ð¾Ñ€Ñ‚"
+-
+-#~ msgid "All"
+-#~ msgstr "Ð’Ñички"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚о/потребителѠда Ð¸Ð·Ð²Ð¸ÐºÐ²Ð° bindresvport Ñ 0. "
+-#~ "Слушане Ð½Ð° Ð¿Ð¾Ñ€Ñ‚ове 600-1024"
+-
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Въведете Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½ ÑъѠзапетаи ÑпиÑък Ð¾Ñ‚ udp Ð¿Ð¾Ñ€Ñ‚ове, ÐºÑŠÐ¼ ÐºÐ¾Ð¸Ñ‚о "
+-#~ "приложението/потребителѠÑе Ñвързва."
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "Ðерезервирани Ð¿Ð¾Ñ€Ñ‚ове (> 1024)"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "Избор Ð½Ð° Ð¿Ð¾Ñ€Ñ‚ове"
+-
+-#, fuzzy
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚о/потребителѠда Ñлуша Ð½Ð° Ð²Ñеки udp Ð¿Ð¾Ñ€Ñ‚ > 1024"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP Ð¿Ð¾Ñ€Ñ‚ове</b>"
+-
+-#, fuzzy
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "Въведете Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½ ÑъѠзапетаи ÑпиÑък Ð¾Ñ‚ udp Ð¿Ð¾Ñ€Ñ‚ове, ÐºÑŠÐ¼ ÐºÐ¾Ð¸Ñ‚о "
+-#~ "приложението/потребителѠÑе Ñвързва."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Въведете Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½ ÑъѠзапетаи ÑпиÑък Ð¾Ñ‚ udp Ð¿Ð¾Ñ€Ñ‚ове, ÐºÑŠÐ¼ ÐºÐ¾Ð¸Ñ‚о "
+-#~ "приложението/потребителѠÑе Ñвързва."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Въведете Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½ ÑъѠзапетаи ÑпиÑък Ð¾Ñ‚ udp Ð¿Ð¾Ñ€Ñ‚ове, ÐºÑŠÐ¼ ÐºÐ¾Ð¸Ñ‚о "
+-#~ "приложението/потребителѠÑе Ñвързва."
+-
+-#, fuzzy
+-#~ msgid "Select common application traits"
+-#~ msgstr "Общи Ð±ÐµÐ»ÐµÐ·Ð¸ Ð½Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚о"
+-
+-#, fuzzy
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "Приложението Ð¿Ð¾Ð»Ð·Ð²Ð° syslog Ð·Ð° Ð·Ð°Ð¿Ð¸Ñ Ð² Ð´Ð½ÐµÐ²Ð½Ð¸Ðº\t"
+-
+-#, fuzzy
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr ""
+-#~ "Приложението Ð¿Ð¾Ð»Ð·Ð²Ð° /tmp Ð·Ð° Ñъздаваме/манипулиран Ð½Ð° Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¸ Ñ„айлове"
+-
+-#, fuzzy
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "Приложението Ð¿Ð¾Ð»Ð·Ð²Ð° PAM Ð·Ð° ÑƒÐ´Ð¾ÑтоверÑване"
+-
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¸Ð·Ð¿Ñ€Ð°Ñ‰Ð°Ð½Ðµ Ð½Ð° Ð¾Ð´Ð¸Ñ‚ Ñъобщение.\n"
+-
+-#, fuzzy
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr ""
+-#~ "Изберете Ð´Ð¸Ñ€ÐµÐºÑ‚ориите ÐºÐ¾Ð¸Ñ‚о Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ð¾Ñ‚о Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð¿Ñ€Ð¸Ñ‚ежава Ð¸ Ð² ÐºÐ¾Ð¸Ñ‚о "
+-#~ "то Ð¿Ð¸ÑˆÐµ"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "ДобавÑне Ð½Ð° Ñ„айлове/директории, Ð² ÐºÐ¾Ð¸Ñ‚о Ñ‚ова Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ñ‰Ðµ Ñ‚Ñ€Ñбва Ð´Ð° Ð¼Ð¾Ð¶Ðµ "
+-#~ "да Ð¿Ð¸ÑˆÐµ. Pid Ñ„айлове, Ð´Ð½ÐµÐ²Ð½Ð¸Ñ†Ð¸, /var/lib Ñ„айлове ..."
+-
+-#, fuzzy
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "Изберете Ñ„айл(овете) ÐºÐ¾Ð¸Ñ‚о Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ð¾Ñ‚о Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ñъздава/пише"
+-
+-#, fuzzy
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "Въведете Ð¿ÑŠÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ Ð½Ð° init Ñкрипта Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½ Ð·Ð° Ñтартиране Ð½Ð° "
+-#~ "ограничаваното Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ."
+-
+-#, fuzzy
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "Изберете Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠв ÐºÐ¾Ñто Ð´Ð° Ñе Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ñ‚ Ñ„айловете Ð½Ð° Ð¿Ð¾Ð»Ð¸Ñ‚иката"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "ДиректориѠѠполитики"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "Генериране Ð½Ð° Ñ„айловете Ð½Ð° Ð¿Ð¾Ð»Ð¸Ñ‚иката"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Този Ð¸Ð½Ñтрумент Ñ‰Ðµ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð° Ñледното: Ð¤Ð°Ð¹Ð»Ð¾Ð²Ðµ Ð·Ð° Ð½Ð°Ð»Ð°Ð³Ð°Ð½Ðµ Ð½Ð° Ñ‚ип (te), "
+-#~ "файлове Ð·Ð° ÐºÐ¾Ð½Ñ‚екÑÑ‚ (fc), Ð¸Ð½Ñ‚ерфейÑни Ñ„айлове (if), Ñкриптове Ð½Ð° Ñредата "
+-#~ "(sh).\n"
+-#~ "Стартирайте Ñкрипта Ð·Ð° Ñредата Ð·Ð° ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ð¸Ñ€Ð°Ð½Ðµ/инÑталиране Ð¸ Ð¿Ñ€ÐµÐµÑ‚икиране "
+-#~ "на Ñ„айлове/директории.  Ð¡ÐµÐ³Ð° Ð¼Ð¾Ð¶ÐµÑ‚е Ð´Ð° Ð¿Ñ€ÐµÐ²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚е SELinux Ð² Ð¿Ð°Ñивен "
+-#~ "режим (setenforce 0). \n"
+-#~ "(Ре)Ñтартирайте Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚о Ð·Ð° Ð´Ð° Ñе Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ñ‚ avc ÑъобщениÑ.\n"
+-#~ "Ползвайте audit2allow -R Ð·Ð° Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° Ð´Ð¾Ð¿ÑŠÐ»Ð½Ð¸Ñ‚елни Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð·Ð° te "
+-#~ "файла.\n"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Този Ð¸Ð½Ñтрумент Ñ‰Ðµ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð° Ñледното: Ð¤Ð°Ð¹Ð»Ð¾Ð²Ðµ Ð·Ð° Ð½Ð°Ð»Ð°Ð³Ð°Ð½Ðµ Ð½Ð° Ñ‚ип (te), "
+-#~ "файлове Ð·Ð° ÐºÐ¾Ð½Ñ‚екÑÑ‚ (fc), Ð¸Ð½Ñ‚ерфейÑни Ñ„айлове (if), Ñкриптове Ð½Ð° Ñредата "
+-#~ "(sh).\n"
+-#~ "Стартирайте Ñкрипта Ð·Ð° Ñредата Ð·Ð° ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ð¸Ñ€Ð°Ð½Ðµ/инÑталиране Ð¸ Ð¿Ñ€ÐµÐµÑ‚икиране "
+-#~ "на Ñ„айлове/директории.  Ð¡ÐµÐ³Ð° Ð¼Ð¾Ð¶ÐµÑ‚е Ð´Ð° Ð¿Ñ€ÐµÐ²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚е SELinux Ð² Ð¿Ð°Ñивен "
+-#~ "режим (setenforce 0). \n"
+-#~ "(Ре)Ñтартирайте Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚о Ð·Ð° Ð´Ð° Ñе Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ñ‚ avc ÑъобщениÑ.\n"
+-#~ "Ползвайте audit2allow -R Ð·Ð° Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° Ð´Ð¾Ð¿ÑŠÐ»Ð½Ð¸Ñ‚елни Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð·Ð° te "
+-#~ "файла.\n"
+-
+-#, fuzzy
+-#~ msgid "Boolean Name"
+-#~ msgstr "Булева"
+-
+-#~ msgid "Role"
+-#~ msgstr "РолÑ"
+-
+-#~ msgid "Application"
+-#~ msgstr "Приложение"
+-
+-#, fuzzy
+-#~ msgid "%s must be a directory"
+-#~ msgstr "Разрешаване Ð½Ð° mount Ð´Ð° Ð¼Ð¾Ð½Ñ‚ира Ð²ÑÑка Ð´Ð¸Ñ€ÐµÐºÑ‚ориÑ"
+-
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Следва Ð´Ð° Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚е Ð¸Ð¼Ðµ"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "Изберете Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„айл Ð·Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ðµ."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "Изберете init Ñкрипта Ð·Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ðµ."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "Изберете Ñ„айл(овете) ÐºÐ¾Ð¸Ñ‚о Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ð¾Ñ‚о Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ñъздава/пише"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "Изберете Ð´Ð¸Ñ€ÐµÐºÑ‚ориите ÐºÐ¾Ð¸Ñ‚о Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ð¾Ñ‚о Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð¿Ñ€Ð¸Ñ‚ежава Ð¸ Ð² ÐºÐ¾Ð¸Ñ‚о "
+-#~ "то Ð¿Ð¸ÑˆÐµ"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "Изберете Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠв ÐºÐ¾Ñто Ð´Ð° Ñе Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ñ‚ Ñ„айловете Ð½Ð° Ð¿Ð¾Ð»Ð¸Ñ‚иката"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "Следва Ð´Ð° Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚е Ð¸Ð¼Ðµ"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Следва Ð´Ð° ÑƒÐºÐ°Ð¶ÐµÑ‚е Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼ Ñ„айл"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "ÐаÑтройка Ð½Ð° SELinux"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "Портовете Ñ‚Ñ€Ñбва Ð´Ð° Ñа Ñ‡Ð¸Ñла Ð¾Ñ‚ 1 Ð´Ð¾ %d "
+-
+-#, fuzzy
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "Следва Ð´Ð° Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚е Ð¸Ð¼Ðµ Ð·Ð° ÐºÐ¾Ð½Ñ„игурираниѠот Ð’аѠпроцеÑ"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "Типовете ÐŸÐžÐ¢Ð Ð•Ð‘ИТЕЛ Ð½Ðµ Ñа Ð¿Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¸ Ð·Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "Само Ð”ЕМОÐИТЕ Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚ init Ñкрипт"
+-
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog Ñ‚Ñ€Ñбва Ð´Ð° Ð±ÑŠÐ´Ðµ Ð±ÑƒÐ»ÐµÐ²Ð° ÑтойноÑÑ‚ "
+-
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "Типовете ÐŸÐžÐ¢Ð Ð•Ð‘ИТЕЛ Ð°Ð²Ñ‚оматично Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ð²Ð°Ñ‚ Ð²Ñ€ÐµÐ¼ÐµÐ½ÐµÐ½ Ñ‚ип"
+-
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr ""
+-#~ "ТрÑбва Ð´Ð° Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚е Ð¿ÑŠÑ‚Ѡна Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„айл Ð·Ð° Ð²Ð°ÑˆÐ¸Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½ Ð¿Ñ€Ð¾Ñ†ÐµÑ"
+-
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Файл Ð·Ð° Ð½Ð°Ð»Ð°Ð³Ð°Ð½Ðµ Ð½Ð° Ñ‚ип"
+-
+-#~ msgid "Interface file"
+-#~ msgstr "ИнтерфейÑен Ñ„айл"
+-
+-#~ msgid "File Contexts file"
+-#~ msgstr "Файл Ñ ÐºÐ¾Ð½Ñ‚екÑти"
+-
+-#~ msgid "Setup Script"
+-#~ msgstr "ÐаÑтройващ Ñкрипт"
+-
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "тип Ð¿Ð¾Ñ€Ñ‚"
+-
+-#~ msgid "Protocol"
+-#~ msgstr "Протокол "
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr "Валентин Ð›Ð°Ñков, 2012, laskov@fedoraproject.org"
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "Ðиво"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr "ИнÑтрумент Ð·Ð° Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° SELinux Ð¿Ð¾Ð»Ð¸Ñ‚ики"
+-#~ msgid "Port"
+-#~ msgstr "Порт"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++"<b>Изберете Ñ‚ип Ð¿Ð¾Ð»Ð¸Ñ‚ика Ð·Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚о Ð¸Ð»Ð¸ Ñ€Ð¾Ð»Ñ Ð½Ð° Ð¿Ð¾Ñ‚ребителÑ, ÐºÐ¾Ð¹Ñ‚о "
++"иÑкате Ð´Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð¸Ñ‚е:</b>"
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "Ðомера Ð½Ð° Ð¿Ð¾Ñ€Ñ‚ \"%s\" Ð½Ðµ Ðµ Ð²Ð°Ð»Ð¸Ð´ÐµÐ½.  0 < ÐОМЕР_ÐÐ_ПОРТ < 65536 "
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr "<b>ПриложениÑ</b>"
+-#~ msgid "Group View"
+-#~ msgstr "Групов Ð¿Ñ€ÐµÐ³Ð»ÐµÐ´"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++"Standard Init Daemon Ñа Ð´ÐµÐ¼Ð¾Ð½Ð¸, Ñтартирани Ð¿Ñ€Ð¸ Ð·Ð°Ñ€ÐµÐ¶Ð´Ð°Ð½ÐµÑ‚о Ð¾Ñ‚ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð°Ñ‰Ð¸ "
++"Ñкриптове.  ÐžÐ±Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¾ Ð¸Ð·Ð¸Ñква Ñкрипт Ð² /etc/rc.d/init.d"
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux Ð·Ð°Ñ‰Ð¸Ñ‚а Ð½Ð° ÑƒÑлугите"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr "Standard Init Daemon"
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° acct"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr "DBUS System Daemon"
+-#~ msgid "Admin"
+-#~ msgstr "ÐдминиÑтратор"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr "Internet Services Daemon Ñа Ð´ÐµÐ¼Ð¾Ð½Ð¸, Ñтартирани Ð¾Ñ‚ xinetd"
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "Разрешаване Ð½Ð° Ð²Ñички Ð´ÐµÐ¼Ð¾Ð½Ð¸ Ð´Ð° Ð¿Ð¸ÑˆÐ°Ñ‚ core Ñ„айлове Ð² /"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr "Internet Services Daemon (inetd)"
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "Разрешаване Ð½Ð° Ð²Ñички Ð´ÐµÐ¼Ð¾Ð½Ð¸ Ð´Ð° Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚ Ð½ÐµÐ·Ð°Ð´ÐµÐ»ÐµÐ½Ð¸ tty ÐºÐ¾Ð½Ð·Ð¾Ð»Ð¸"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++"Web Applications/Script (CGI) Ñа CGI Ñкриптове, Ñтартирани Ð¾Ñ‚ ÑƒÐµÐ± Ñървъра "
++"(apache)"
+-#~ msgid "User Privs"
+-#~ msgstr "ПотребителÑки Ð¿Ñ€Ð¸Ð²Ð¸Ð»ÐµÐ³Ð¸Ð¸"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr "Web Application/Script (CGI)"
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° gadmin SELinux Ð¿Ð¾Ñ‚ребителÑките Ð°ÐºÐ°ÑƒÐ½Ñ‚и Ð´Ð° Ñтартират "
+-#~ "файлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а Ñи Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠили Ð² /tmp"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++"ПотребителÑко Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ñа Ð²ÑÑкакви Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ, Ñтартирани Ð¾Ñ‚ Ð¿Ð¾Ñ‚ребител, "
++"които Ð¸Ñкате Ð´Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð¸Ñ‚е"
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° SELinux Ð³Ð¾ÑÑ‚ Ð°ÐºÐ°ÑƒÐ½Ñ‚а Ð´Ð° Ñтартира Ñ„айлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а Ñи "
+-#~ "директориѠили /tmp"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr "ПотребителÑко Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ"
+-#~ msgid "Memory Protection"
+-#~ msgstr "Защита Ð½Ð° Ð¿Ð°Ð¼ÐµÑ‚та"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr "Sandbox"
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼ Ñтек Ð·Ð° java"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr "<b>Влизане Ð½Ð° Ð¿Ð¾Ñ‚ребители</b>"
+-#~ msgid "Mount"
+-#~ msgstr "Монтиране"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr "ПромÑна Ð½Ð° ÑъщеÑтвуващиѠзапиѠза Ð²Ð»Ð¸Ð·Ð°Ð½Ðµ Ð½Ð° Ð¿Ð¾Ñ‚ребител."
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "Разрешаване Ð½Ð° mount Ð´Ð° Ð¼Ð¾Ð½Ñ‚ира Ð²Ñеки Ñ„айл"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr "СъщеÑтвуващи Ñ€Ð¾Ð»Ð¸ Ð½Ð° Ð¿Ð¾Ñ‚ребителÑ"
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "Разрешаване Ð½Ð° mount Ð´Ð° Ð¼Ð¾Ð½Ñ‚ира Ð²ÑÑка Ð´Ð¸Ñ€ÐµÐºÑ‚ориÑ"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++"Този Ð¿Ð¾Ñ‚ребител Ñ‰Ðµ Ð²Ð»Ð¸Ð·Ð° Ð² Ð¼Ð°ÑˆÐ¸Ð½Ð°Ñ‚а Ñамо Ð¿Ñ€ÐµÐ· Ñ‚ерминал Ð¸Ð»Ð¸ Ð¾Ñ‚далечено.  ÐŸÐ¾ "
++"подразбиране, Ñ‚ози Ð¿Ð¾Ñ‚ребител Ð½Ñма Ð´Ð° Ð¸Ð¼Ð°  setuid, Ð´Ð¾Ñтъп Ð´Ð¾ Ð¼Ñ€ÐµÐ¶Ð°, su Ð¸ "
++"sudo."
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼ Ñтек Ð·Ð° mplayer"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr "Минимална Ñ€Ð¾Ð»Ñ Ð½Ð° Ð¿Ð¾Ñ‚ребител Ð² Ñ‚ерминал"
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++"Такъв Ð¿Ð¾Ñ‚ребител Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð²Ð»ÐµÐ·Ðµ Ð² Ð¼Ð°ÑˆÐ¸Ð½Ð°Ñ‚а Ð¿Ñ€ÐµÐ· X Ð¸Ð»Ð¸ Ñ‚ерминал.  ÐŸÐ¾ "
++"подразбиране Ð¿Ð¾Ñ‚ребителÑÑ‚ Ñ‰Ðµ Ðµ Ð±ÐµÐ· setuid, Ð±ÐµÐ· Ñ€Ð°Ð±Ð¾Ñ‚а Ð² Ð¼Ñ€ÐµÐ¶Ð°, Ð±ÐµÐ· sudo Ð¸ su"
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "Разрешаване Ð½Ð° ssh Ð´Ð° Ñтартира ssh-keysign"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr "Минимална X Windows Ñ€Ð¾Ð»Ñ Ð½Ð° Ð¿Ð¾Ñ‚ребител"
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° staff SELinux Ð¿Ð¾Ñ‚ребителÑките Ð°ÐºÐ°ÑƒÐ½Ñ‚и Ð´Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ñват "
+-#~ "файлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а Ñи Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠили /tmp"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++"Потребител Ñ Ð¿ÑŠÐ»Ð½Ð¾Ñ†ÐµÐ½Ð½Ð° Ñ€Ð°Ð±Ð¾Ñ‚а Ð² Ð¼Ñ€ÐµÐ¶Ð°, Ð±ÐµÐ· setuid Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð±ÐµÐ· "
++"transition, Ð±ÐµÐ· sudo Ð¸ su."
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° sysadm SELinux Ð¿Ð¾Ñ‚ребителÑките Ð°ÐºÐ°ÑƒÐ½Ñ‚и Ð´Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ñват "
+-#~ "файлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а Ñи Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠили /tmp"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr "РолѠна Ð¿Ð¾Ñ‚ребител"
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ‚е SELinux Ð¿Ð¾Ñ‚ребителÑки Ð°ÐºÐ°ÑƒÐ½Ñ‚и Ð´Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ñват "
+-#~ "файлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а Ñи Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠили /tmp"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++"Потребител Ñ Ð¿ÑŠÐ»Ð½Ð¾Ñ†ÐµÐ½Ð½Ð° Ñ€Ð°Ð±Ð¾Ñ‚а Ð² Ð¼Ñ€ÐµÐ¶Ð°, Ð±ÐµÐ· setuid Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð±ÐµÐ· "
++"transition, Ð±ÐµÐ· su, Ñ Ð²ÑŠÐ·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑ‚ Ð·Ð° sudo ÐºÑŠÐ¼ ÐдминиÑтративна Root Ñ€Ð¾Ð»Ñ."
+-#~ msgid "Network Configuration"
+-#~ msgstr "Мрежова ÐºÐ¾Ð½Ñ„игурациÑ"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr "Потребител Ñ ÐдминиÑтративна Ñ€Ð¾Ð»Ñ"
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "Разрешаване Ð½Ð° Ð½ÐµÐµÑ‚икирани Ð¿Ð°ÐºÐµÑ‚и Ð´Ð° Ð¿ÑŠÑ‚уват Ð² Ð¼Ñ€ÐµÐ¶Ð°Ñ‚а"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr "<b>Root Ð¿Ð¾Ñ‚ребители</b>"
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° user SELinux Ð¿Ð¾Ñ‚ребителÑките Ð°ÐºÐ°ÑƒÐ½Ñ‚и Ð´Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ñват Ñ„айлове "
+-#~ "в Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а Ñи Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠили /tmp"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++"Изберете Ñ€Ð¾Ð»Ñ Ð½Ð° Ð¿Ð¾Ñ‚ребител Root ÐдминиÑтратор, Ð°ÐºÐ¾ Ñ‚ози Ð¿Ð¾Ñ‚ребител Ñ‰Ðµ Ñе "
++"ползва Ð´Ð° Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрира Ð¼Ð°ÑˆÐ¸Ð½Ð°Ñ‚а, Ð´Ð¾ÐºÐ°Ñ‚о Ñ€Ð°Ð±Ð¾Ñ‚и ÐºÐ°Ñ‚о root.  Ð¢Ð¾Ð·Ð¸ Ð¿Ð¾Ñ‚ребител "
++"нÑма Ð´Ð° Ðµ ÑпоÑобен Ð´Ð° Ð²Ð»ÐµÐ·Ðµ Ð² ÑиÑтемата Ð´Ð¸Ñ€ÐµÐºÑ‚но."
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° unconfined (неограничените) Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡Ð½Ð¾ Ð´Ð° Ð¿Ñ€ÐµÐ¼Ð¸Ð½Ð°Ð²Ð° ÐºÑŠÐ¼ "
+-#~ "unconfined_execmem"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr "Потребител Ñ Ñ€Ð¾Ð»Ñ Root ÐдминиÑтратор"
+-#~ msgid "Databases"
+-#~ msgstr "Бази Ð´Ð°Ð½Ð½Ð¸"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr "label104"
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¿Ð¾Ñ‚ребителите Ð´Ð° Ñе Ñвързват Ñ mysql Ð³Ð½ÐµÐ·Ð´Ð¾"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr "<b>Въведете Ð¸Ð¼Ðµ Ð½Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð¸Ð»Ð¸ Ñ€Ð¾Ð»Ñ Ð½Ð° Ð¿Ð¾Ñ‚ребител:</b>"
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¿Ð¾Ñ‚ребителите Ð´Ð° Ñе Ñвързват Ñ postgres Ð³Ð½ÐµÐ·Ð´Ð¾"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr "Име"
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr "Въведете Ð¿ÑŠÐ»ÐµÐ½ Ð¿ÑŠÑ‚ Ð½Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼ Ñ„айл, ÐºÐ¾Ð¹Ñ‚о Ñ‰Ðµ Ð±ÑŠÐ´Ðµ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½."
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "Разрешаване Ð½Ð° ÐºÐ»Ð¸ÐµÐ½Ñ‚ите Ð´Ð° Ð¿Ð¸ÑˆÐ°Ñ‚ Ð² Ñподелената Ð¿Ð°Ð¼ÐµÑ‚ Ð½Ð° X"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr "..."
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° xguest SELinux Ð¿Ð¾Ñ‚ребителÑките Ð°ÐºÐ°ÑƒÐ½Ñ‚и Ð´Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ñват "
+-#~ "файлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а Ñи Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠили /tmp"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++"Въведете ÑƒÐ½Ð¸ÐºÐ°Ð»Ð½Ð¾ Ð¸Ð¼Ðµ Ð·Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾Ñ‚о Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð¸Ð»Ð¸ Ñ€Ð¾Ð»Ñ Ð½Ð° Ð¿Ð¾Ñ‚ребител."
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr "Изпълним Ñ„айл"
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "Разрешаване Ð½Ð° Ð´ÐµÐ¼Ð¾Ð½Ð¸Ñ‚е Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚ÑÑ‚ Ñ NIS"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr "Инициализиращ Ñкрипт"
+-#~ msgid "Web Applications"
+-#~ msgstr "Уеб Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++"Въведете Ð¿ÑŠÐ»ÐµÐ½ Ð¿ÑŠÑ‚ Ð´Ð¾ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð°Ñ‰ Ñкрипт, Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½ Ð·Ð° Ñтартиране Ð½Ð° "
++"ограниченото Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ."
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "Преход Ð½Ð° staff SELinux Ð¿Ð¾Ñ‚ребителите ÐºÑŠÐ¼ ÑƒÐµÐ± Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€ Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð°"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr "label105"
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "Преход Ð½Ð° sysadm SELinux Ð¿Ð¾Ñ‚ребителите ÐºÑŠÐ¼ ÑƒÐµÐ± Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€ Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð°"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr "<b>Изберете ÑъщеÑтвуваща Ñ€Ð¾Ð»Ñ Ð·Ð° Ð¿Ñ€Ð¾Ð¼Ñна:</b>"
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "Преход Ð½Ð° user SELinux Ð¿Ð¾Ñ‚ребителите ÐºÑŠÐ¼ ÑƒÐµÐ± Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€ Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð°"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "Преход Ð½Ð° xguest SELinux Ð¿Ð¾Ñ‚ребителите ÐºÑŠÐ¼ ÑƒÐµÐ± Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€ Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð°"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr "label106"
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "Разрешаване Ð½Ð° staff ÑƒÐµÐ± Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€Ð¸Ñ‚е Ð´Ð° Ð¿Ð¸ÑˆÐ°Ñ‚ Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸Ñ‚е Ð´Ð¸Ñ€ÐµÐºÑ‚ории"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° amanda"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° amavis"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr "label107"
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° apmd"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° arpwatch"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° auditd"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr "label108"
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° automount"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr "<b>Изберете Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð¸, ÐºÐ¾Ð¸Ñ‚о %s Ñ‰Ðµ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрира:</b>"
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° avahi"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr "Изберете Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð¸Ñ‚е, ÐºÐ¾Ð¸Ñ‚о Ð¶ÐµÐ»Ð°ÐµÑ‚е Ñ‚ози Ð¿Ð¾Ñ‚ребител Ð´Ð° Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрира."
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° bluetooth"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr "label109"
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° canna"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr "<b>Изберете Ð´Ð¾Ð¿ÑŠÐ»Ð½Ð¸Ñ‚елни Ñ€Ð¾Ð»Ð¸ Ð·Ð° %s:</b>"
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cardmgr"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr "label111"
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Cluster Server"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr "<b>Въведете Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ Ð¿Ð¾Ñ€Ñ‚ове, ÐºÑŠÐ¼ ÐºÐ¾Ð¸Ñ‚о %s Ñ‰Ðµ Ñе Ð¿Ñ€Ð¸Ð²ÑŠÑ€Ð·Ð²Ð°:</b>"
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° cdrecord Ð´Ð° Ñ‡ÐµÑ‚е Ñ€Ð°Ð·Ð½Ð¾Ñ€Ð¾Ð´Ð½Ð¾ Ñъдържание. nfs, samba, "
+-#~ "преноÑими ÑƒÑтройÑтва, Ð¿Ð¾Ñ‚ребителÑки Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¸ Ñ„айлове Ð¸ Ñ„айлове Ñ "
+-#~ "неÑигурно Ñъдържание"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr "<b>TCP Ð¿Ð¾Ñ€Ñ‚ове</b>"
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ciped"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr "ПозволÑва %s Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÑŠÑ€Ð·Ð²Ð° ÐºÑŠÐ¼ ÐºÐ¾Ð¹Ñ‚о Ð¸ Ð´Ð° Ðµ udp Ð¿Ð¾Ñ€Ñ‚"
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° clamd"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr "Ð’Ñички"
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° clamscan"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr "Позволи %s Ð´Ð° Ð¸Ð·Ð²Ð¸ÐºÐ²Ð° bindresvport Ñ 0. ÐŸÑ€Ð¸Ð²ÑŠÑ€Ð·Ð²Ð°Ð½Ðµ ÐºÑŠÐ¼ Ð¿Ð¾Ñ€Ñ‚ 600-1024"
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° clvmd"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr "600-1024"
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° comsat"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++"Въведете ÑпиÑък udp Ð¿Ð¾Ñ€Ñ‚ове Ð¸Ð»Ð¸ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¸ Ð¾Ñ‚ Ð¿Ð¾Ñ€Ñ‚ове, Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸ ÑъѠзапетаи, "
++"към ÐºÐ¾Ð¸Ñ‚о %s Ñ‰Ðµ Ñе Ð¿Ñ€Ð¸Ð²ÑŠÑ€Ð·Ð²Ð°. ÐŸÑ€Ð¸Ð¼ÐµÑ€: 612, 650-660"
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° courier"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr "Ðерезервирани Ð¿Ð¾Ñ€Ñ‚ове (>1024)"
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cpucontrol"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr "Изберете Ð¿Ð¾Ñ€Ñ‚ове"
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cpuspeed"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr "ПозволÑва %s Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²ÑŠÑ€Ð·Ð²Ð° ÐºÑŠÐ¼ ÐºÐ¾Ð¹Ñ‚о Ð¸ Ð´Ð° Ðµ udp Ð¿Ð¾Ñ€Ñ‚ > 1024"
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr "<b>UDP Ð¿Ð¾Ñ€Ñ‚ове</b>"
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° crond"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr "label113"
+-#~ msgid "Printing"
+-#~ msgstr "Печат"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr "<b>Изберете Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ‚е Ð¿Ð¾Ñ€Ñ‚ове, ÐºÑŠÐ¼ ÐºÐ¾Ð¸Ñ‚о %s Ñ‰Ðµ Ñе Ñвързва:</b>"
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ñървъра Ð½Ð° Ð½Ð¸Ñко Ð½Ð¸Ð²Ð¾ Ð½Ð° cupsd"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr "ПозволÑва %s Ð´Ð° Ñе Ñвързва Ñ ÐºÐ¾Ð¹Ñ‚о Ð¸ Ð´Ð° Ðµ tcp Ð¿Ð¾Ñ€Ñ‚"
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cupsd"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++"Въведете ÑпиÑък tcp Ð¿Ð¾Ñ€Ñ‚ове Ð¸Ð»Ð¸ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¸ Ð¾Ñ‚ Ð¿Ð¾Ñ€Ñ‚ове, Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸ ÑъѠзапетаи, "
++"към ÐºÐ¾Ð¸Ñ‚о %s Ñ‰Ðµ Ñе Ñвързва. ÐŸÑ€Ð¸Ð¼ÐµÑ€: 612, 650-660"
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° cupsd_lpd"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr "ПозволÑва %s Ð´Ð° Ñе Ñвързва Ñ ÐºÐ¾Ð¹Ñ‚о Ð¸ Ð´Ð° Ðµ udp Ð¿Ð¾Ñ€Ñ‚"
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++"Въведете ÑпиÑък udp Ð¿Ð¾Ñ€Ñ‚ове Ð¸Ð»Ð¸ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¸ Ð¾Ñ‚ Ð¿Ð¾Ñ€Ñ‚ове, Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸ ÑъѠзапетаи, "
++"към ÐºÐ¾Ð¸Ñ‚о %s Ñ‰Ðµ Ñе Ñвързва. ÐŸÑ€Ð¸Ð¼ÐµÑ€: 612, 650-660"
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cvs"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr "label114"
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cyrus"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr "<b>Изберете Ð¾Ñ‚личителни Ñ‡ÐµÑ€Ñ‚и Ð½Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚о %s:</b>"
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dbskkd"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr "Пише syslog ÑъобщениÑ\t"
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dbusd"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr "Създава/Работи Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¸ Ñ„айлове Ð² /tmp"
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° dccd"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr "Ползва Pam Ð·Ð° ÑƒÐ´Ð¾ÑтоверÑване"
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° dccifd"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr "Ползва Ð¸Ð·Ð²Ð¸ÐºÐ²Ð°Ð½Ð¸Ñ Ð½Ð° nsswitch Ð¸Ð»Ð¸ getpw*"
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° dccm"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr "Ползва dbus"
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ddt"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr "Праща ÑъобщениѠкъм Ð½Ð°Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸ÐµÑ‚о"
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° devfsd"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr "ВзаимодейÑтва Ñ Ñ‚ерминала"
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dhcpc"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr "Праща Ð¸Ð¼ÐµÐ¹Ð»"
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dhcpd"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr "label115"
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dictd"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr "<b>Добавете Ñ„айлове/директории, ÐºÐ¾Ð¸Ñ‚о %s ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñва</b>"
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "Разрешаване Ð½Ð° sysadm_t Ð´Ð° Ñтартира Ð´Ð¸Ñ€ÐµÐºÑ‚но Ð´ÐµÐ¼Ð¾Ð½Ð¸"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++"Файлове/директории, ÐºÐ¾Ð¸Ñ‚о %s \"управлÑва\". Pid Ñ„айлове, Log Ñ„айлове, /var/"
++"lib Ñ„айлове ..."
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Evolution"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr "label116"
+-#~ msgid "Games"
+-#~ msgstr "Игри"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr "<b>Добави Ð±ÑƒÐ»ÐµÐ²Ð¸Ñ‚е Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð¸ Ð¾Ñ‚ Ð¿Ð¾Ð»Ð¸Ñ‚иката %s:</b>"
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð¸Ð³Ñ€Ð¸Ñ‚е"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr "ДобавÑ/Премахва Ð±ÑƒÐ»ÐµÐ²Ð¸ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð¸, Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½Ð¸ Ð¾Ñ‚ Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð° %s"
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° ÑƒÐµÐ± Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€Ð¸Ñ‚е"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr "<b>Ð’ ÐºÐ¾Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠще Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ñ‚е Ð¿Ð¾Ð»Ð¸Ñ‚иката %s?</b>"
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Thunderbird"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr "ДиректориѠна Ð¿Ð¾Ð»Ð¸Ñ‚иката"
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° distccd"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr "Добави Ð´Ð¸Ð°Ð»Ð¾Ð³ Ð·Ð° Ð±ÑƒÐ»ÐµÐ²Ð¸ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð¸"
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dmesg"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr "Име Ð½Ð° Ð±ÑƒÐ»ÐµÐ²Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð°"
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dnsmasq"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr "РолÑ"
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dovecot"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr "СъщеÑтвуващ Ð¿Ð¾Ñ‚ребител"
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° entropyd"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr "Приложение"
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° fetchmail"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr "%s Ñ‚Ñ€Ñбва Ð´Ð° Ðµ Ð´Ð¸Ñ€ÐµÐºÑ‚ориÑ"
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° fingerd"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr "ТрÑбва Ð´Ð° Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚е Ð¿Ð¾Ñ‚ребител"
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° freshclam"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr "ПоÑочете Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼ Ñ„айл, ÐºÐ¾Ð¹Ñ‚о Ð´Ð° Ð±ÑŠÐ´Ðµ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½"
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° fsdaemon"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr "ПоÑочете Ñ„айл Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð°Ñ‰ Ñкрипт, ÐºÐ¾Ð¹Ñ‚о Ð´Ð° Ð±ÑŠÐ´Ðµ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½"
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° gpm"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr "ПоÑочете Ñ„айл(ове), ÐºÐ¾Ð¸Ñ‚о Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾Ñ‚о Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ñъздава Ð¸Ð»Ð¸ Ð¿Ð¸ÑˆÐµ"
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++"ПоÑочете Ð´Ð¸Ñ€ÐµÐºÑ‚ориÑ(и), ÐºÐ¾Ð¸Ñ‚о Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾Ñ‚о Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð¿Ñ€Ð¸Ñ‚ежава Ð¸ Ð¿Ð¸ÑˆÐµ Ð² Ñ‚ÑÑ…"
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° gss"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr "ПоÑочете Ð´Ð¸Ñ€ÐµÐºÑ‚ориÑ, Ð² ÐºÐ¾Ñто Ð´Ð° Ñе Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ñ‚ Ñ„айловете Ð½Ð° Ð¿Ð¾Ð»Ð¸Ñ‚иката"
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° hal"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++"Типът %s_t Ðµ Ð²ÐµÑ‡Ðµ Ð´ÐµÑ„иниран Ð² Ñ‚екущата Ð¿Ð¾Ð»Ð¸Ñ‚ика.\n"
++"ИÑкате Ð»Ð¸ Ð´Ð° Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸Ñ‚е?"
+-#~ msgid "Compatibility"
+-#~ msgstr "СъвмеÑтимоÑÑ‚"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr "Проверете Ð¸Ð¼ÐµÑ‚о"
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "Да Ð½Ðµ Ñе Ð¿Ñ€Ð°Ð²Ð¸ Ð¾Ð´Ð¸Ñ‚ Ð½Ð° Ð½ÐµÑ‰Ð°, ÐºÐ¾Ð¸Ñ‚о Ñе Ð·Ð½Ð°Ðµ Ñ‡Ðµ Ñа Ñчупени, Ð½Ð¾ Ð½Ðµ "
+-#~ "предÑтавлÑват Ñ€Ð¸Ñк Ð·Ð° ÑигурноÑтта"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++"Модулът %s.pp Ðµ Ð²ÐµÑ‡Ðµ Ð·Ð°Ñ€ÐµÐ´ÐµÐ½ Ð² Ñ‚екущата Ð¿Ð¾Ð»Ð¸Ñ‚ика.\n"
++"ИÑкате Ð»Ð¸ Ð´Ð° Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸Ñ‚е?"
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° hostname"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr "ТрÑбва Ð´Ð° Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚е Ð¸Ð¼Ðµ, ÑÑŠÑтавено Ð¾Ñ‚ Ð±ÑƒÐºÐ²Ð¸ Ð¸ Ñ†Ð¸Ñ„ри, Ð¸ Ð±ÐµÐ· Ð¸Ð½Ñ‚ервали."
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° hotplug"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr "ТрÑбва Ð´Ð° Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚е Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼ Ñ„айл"
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° howl"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr "Конфигуриране Ð½Ð° "
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cups hplip"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr "Internet Services Ð´ÐµÐ¼Ð¾Ð½"
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð¿Ñ€ÐµÐ²ÑŠÑ€Ñ‚ане Ð½Ð° httpd Ð´Ð½ÐµÐ²Ð½Ð¸Ñ†Ð¸Ñ‚е"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr "Портовете Ñ‚Ñ€Ñбва Ð´Ð° Ñа Ð½Ð¾Ð¼ÐµÑ€Ð° Ð¸Ð»Ð¸ Ð¸Ð½Ñ‚ервали Ð¾Ñ‚ Ð½Ð¾Ð¼ÐµÑ€Ð° Ð¾Ñ‚ 1 Ð´Ð¾ %d "
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD ÑƒÑлуга"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr "ТрÑбва Ð´Ð° Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚е Ð¸Ð¼Ðµ Ð·Ð° Ð’ашиѠограничен Ð¿Ñ€Ð¾Ñ†ÐµÑ/потребител"
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° http suexec"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++"Името Ñ‚Ñ€Ñбва Ð´Ð° Ðµ Ð¾Ñ‚ Ð±ÑƒÐºÐ²Ð¸ Ð¸ Ñ†Ð¸Ñ„ри Ð±ÐµÐ· Ð¸Ð½Ñ‚ервали. Ð Ð°Ð·Ð³Ð»ÐµÐ´Ð°Ð¹Ñ‚е Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½ÐµÑ‚о Ð½Ð° "
++"опциÑта \"-n MODULENAME\""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° hwclock"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° i18n"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr "Само Ð”емон Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñта Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚ Ð¸Ð½Ð¸Ñ‚ Ñкрипт."
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° imazesrv"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr "use_resolve Ñ‚Ñ€Ñбва Ð´Ð° Ðµ Ð±ÑƒÐ»ÐµÐ²Ð° ÑтойноÑÑ‚ "
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð¸Ñ‚е Ð´ÐµÑ†Ð° Ð½Ð° inetd"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr "use_syslog Ñ‚Ñ€Ñбва Ð´Ð° Ðµ Ð±ÑƒÐ»ÐµÐ²Ð° ÑтойноÑÑ‚ "
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° inetd"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr "use_kerberos Ñ‚Ñ€Ñбва Ð´Ð° Ðµ Ð±ÑƒÐ»ÐµÐ²Ð° ÑтойноÑÑ‚ "
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° innd"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr "manage_krb5_rcache Ñ‚Ñ€Ñбва Ð´Ð° Ðµ Ð±ÑƒÐ»ÐµÐ²Ð° ÑтойноÑÑ‚ "
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° iptables"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr "USER Ñ‚иповете Ð°Ð²Ñ‚оматично Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ð²Ð°Ñ‚ tmp Ñ‚ип"
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ircd"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr "ТрÑбва Ð´Ð° Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚е Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ð¿ÑŠÑ‚ Ð·Ð° Ð’ашиѠограничен Ð¿Ñ€Ð¾Ñ†ÐµÑ"
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° irqbalance"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr "Тип Enforcement Ñ„айл"
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° iscsi"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr "ИнтерфейÑен Ñ„айл"
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° jabberd"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr "Файл ÐºÐ¾Ð½Ñ‚екÑтен Ñ„айл"
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr "Setup Script"
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° kadmind"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"валидни Ñ‚ипове:\n"
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° klogd"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr "ИзиÑква Ñе ÐŸÑ€Ð¾Ð³Ñ€Ð°Ð¼Ð° Ð¸Ð»Ð¸ Ð˜Ð¼Ðµ"
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° krb5kdc"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr "Мрежови Ð¿Ð¾Ñ€Ñ‚"
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð¸Ñ‚е ktalk"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++"SELinux Ð¢Ð¸Ð¿\n"
++"порт"
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° kudzu"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr "Протокол"
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° locate"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++"MLS/MCS\n"
++"ниво"
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr "Порт"
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr "Ðомер \"%s\" Ð½Ð° Ð¿Ð¾Ñ€Ñ‚ Ð½Ðµ Ðµ Ð²Ð°Ð»Ð¸Ð´ÐµÐ½.  0 < ÐŸÐ¾Ñ€Ñ‚_номер < 65536 "
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr "Изглед ÐºÐ°Ñ‚о ÑпиÑък"
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr "Изглед ÐºÐ°Ñ‚о Ð³Ñ€ÑƒÐ¿Ð°"
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr "SELinux Ð·Ð°Ñ‰Ð¸Ñ‚а Ð½Ð° ÑƒÑлугите"
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° acct Ð´ÐµÐ¼Ð¾Ð½Ð°"
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr "Ðдмин"
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr "Позволи Ð²Ñички Ð´ÐµÐ¼Ð¾Ð½Ð¸ Ð´Ð° Ð¿Ð¸ÑˆÐ°Ñ‚ Ð¾Ñновни Ñ„айлове Ð² /"
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr "Позволи Ð½Ð° Ð²Ñички Ð´ÐµÐ¼Ð¾Ð½Ð¸ Ð²ÑŠÐ·Ð¼Ð¾Ð¶Ð½Ð¾Ñтта Ð´Ð° Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚ Ñ€Ð°Ð·Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸ tty"
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr "Права Ð½Ð° Ð¿Ð¾Ñ‚ребители"
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Позволи gadmin SELinux Ð¿Ð¾Ñ‚ребителÑки Ð°ÐºÐ°ÑƒÐ½Ñ‚ Ð´Ð° Ñтартира Ñ„айлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а "
++"директориѠили /tmp"
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° lpd"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Позволи guest SELinux Ð¿Ð¾Ñ‚ребителÑки Ð°ÐºÐ°ÑƒÐ½Ñ‚ Ð´Ð° Ñтартира Ñ„айлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а "
++"директориѠили /tmp"
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° lrrd"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr "Защита Ð½Ð° Ð¿Ð°Ð¼ÐµÑ‚та"
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° lvm"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr "Позволи Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼ Ñтек Ð½Ð° java"
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° mailman"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr "Монтиране"
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° evolution Ð¸ thunderbird Ð´Ð° Ñ‡ÐµÑ‚ат Ð¿Ð¾Ñ‚ребителÑки Ñ„айлове"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr "Позволи mount Ð´Ð° Ð¼Ð¾Ð½Ñ‚ира ÐºÐ¾Ð¹Ñ‚о Ð¸ Ð´Ð° Ðµ Ñ„айл"
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° mdadm"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr "Позволи mount Ð´Ð° Ð¼Ð¾Ð½Ñ‚ира ÐºÐ¾Ñто Ð¸ Ð´Ð° Ðµ Ð´Ð¸Ñ€ÐµÐºÑ‚ориÑ"
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° monopd"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr "Позволи Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼ Ñтек Ð½Ð° mplayer"
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "Разрешаване Ð½Ð° mozilla Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€Ð° Ð´Ð° Ñ‡ÐµÑ‚е Ð¿Ð¾Ñ‚ребителÑки Ñ„айлове"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr "SSH"
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° mrtg"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr "Позволи ssh Ð´Ð° Ñтартира ssh-keysign"
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° mysqld"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Позволи staff SELinux Ð¿Ð¾Ñ‚ребителÑки Ð°ÐºÐ°ÑƒÐ½Ñ‚ Ð´Ð° Ñтартира Ñ„айлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а "
++"директориѠили /tmp"
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Позволи sysadm SELinux Ð¿Ð¾Ñ‚ребителÑки Ð°ÐºÐ°ÑƒÐ½Ñ‚ Ð´Ð° Ñтартира Ñ„айлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а "
++"директориѠили /tmp"
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++"Позволи Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½ SELinux Ð¿Ð¾Ñ‚ребителÑки Ð°ÐºÐ°ÑƒÐ½Ñ‚ Ð´Ð° Ñтартира Ñ„айлове Ð² "
++"домашната Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠили /tmp"
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr "Мрежова ÐºÐ¾Ð½Ñ„игурациÑ"
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr "Позволи Ð½ÐµÐµÑ‚икетирани Ð¿Ð°ÐºÐµÑ‚и Ð´Ð° Ñ‚екат Ð¿Ñ€ÐµÐ· Ð¼Ñ€ÐµÐ¶Ð°Ñ‚а"
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Позволи user SELinux Ð¿Ð¾Ñ‚ребителÑки Ð°ÐºÐ°ÑƒÐ½Ñ‚ Ð´Ð° Ñтартира Ñ„айлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а "
++"директориѠили /tmp"
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr "Позволи Ð½Ð° Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ dyntrans ÐºÑŠÐ¼ unconfined_execmem"
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr "Бази Ð´Ð°Ð½Ð½Ð¸"
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr "Позволи Ð¿Ð¾Ñ‚ребител Ð´Ð° Ñе Ñвързва ÐºÑŠÐ¼ mysql Ñокет"
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr "Позволи Ð¿Ð¾Ñ‚ребител Ð´Ð° Ñе Ñвързва ÐºÑŠÐ¼ postgres Ñокет"
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr "XServer"
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr "Позволи ÐºÐ»Ð¸ÐµÐ½Ñ‚и Ð´Ð° Ð¿Ð¸ÑˆÐ°Ñ‚ Ð² X Ñподелена Ð¿Ð°Ð¼ÐµÑ‚"
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Позволи xguest SELinux Ð¿Ð¾Ñ‚ребителÑки Ð°ÐºÐ°ÑƒÐ½Ñ‚ Ð´Ð° Ñтартира Ñ„айлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а "
++"директориѠили /tmp"
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr "NIS"
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr "Позволи Ð´ÐµÐ¼Ð¾Ð½Ð¸ Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚ÑÑ‚ Ñ NIS"
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr "Уеб Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ"
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr "Позволи staff ÑƒÐµÐ± Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€Ð¸ Ð´Ð° Ð¿Ð¸ÑˆÐ°Ñ‚ Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸ Ð´Ð¸Ñ€ÐµÐºÑ‚ории"
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° amanda"
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° amavis"
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° apmd"
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° arpwatch"
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nagios"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° auditd"
+-#~ msgid "Name Service"
+-#~ msgstr "УÑлуга Ð·Ð° Ð¸Ð¼ÐµÐ½Ð°"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° automount"
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° named"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° avahi"
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nessusd"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° bluetooth"
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° NetworkManager"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° canna"
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nfsd"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cardmgr"
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Cluster Server"
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nmbd"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++"Позволи cdrecord Ð´Ð° Ñ‡ÐµÑ‚е Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ð¾ Ñъдържание. nfs, samba, ÑменÑеми "
++"уÑтройÑтва, Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¸ Ð¿Ð¾Ñ‚ребителÑки Ñ„айлове Ð¸ Ñ‚акива Ñ Ð½ÐµÑигурно Ñъдържание"
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ciped"
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° clamd"
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° clamscan"
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nrpe"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° clvmd"
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nscd"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° comsat"
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nsd"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° courier"
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cpucontrol"
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cpuspeed"
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr "Cron"
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ntpd"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° crond"
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° oddjob"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr "Печатане"
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° oddjob_mkhomedir"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° cupsd back end server"
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° openvpn"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cupsd"
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° pam"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° cupsd_lpd"
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° pegasus"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr "CVS"
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð°  perdition"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cvs"
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° portmap"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° cyrus"
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° portslave"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dbskkd"
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° postfix"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dbusd"
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° postgresql"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° dccd"
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° dccifd"
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "Разрешаване pppd Ð´Ð° Ñе Ñтартира Ð·Ð° Ð¾Ð±Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½ Ð¿Ð¾Ñ‚ребител"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° dccm"
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° pptp"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ddt"
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° prelink"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° devfsd"
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° privoxy"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dhcpc"
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ptal"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dhcpd"
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° pxe"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dictd"
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° pyzord"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr "Позволи sysadm_t Ð´Ð¸Ñ€ÐµÐºÑ‚но Ð´Ð° Ñтартира Ð´ÐµÐ¼Ð¾Ð½Ð¸"
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° quota"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Evolution"
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° radiusd"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr "Игри"
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° radvd"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð¸Ð³Ñ€Ð¸"
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° rdisc"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° ÑƒÐµÐ± Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€Ð¸Ñ‚е"
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° readahead"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Thunderbird"
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸Ñ‚е Ð´Ð° Ñ‡ÐµÑ‚ат Ñ„айлове Ð¾Ñ‚ Ð½Ð°Ñтандартни Ð¼ÐµÑта "
+-#~ "(default_t)"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° distccd"
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° restorecond"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dmesg"
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° rhgb"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dnsmasq"
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° ricci"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° dovecot"
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° ricci_modclusterd"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° entropyd"
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° rlogind"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° fetchmail"
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° rpcd"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° fingerd"
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° rshd"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° freshclam"
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° fsdaemon"
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° gpm"
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr "NFS"
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° gss"
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° Hal"
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr "СъвмеÑтимоÑÑ‚"
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++"Ðе Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ð²Ð°Ð¹ Ð½ÐµÑ‰Ð°, ÐºÐ¾Ð¸Ñ‚о Ð·Ð½Ð°ÐµÐ¼, Ñ‡Ðµ Ñа Ñчупени, Ð½Ð¾ Ð½Ðµ Ñа Ñ€Ð¸Ñкови Ð·Ð° "
++"ÑигурноÑтта"
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° rsync"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° hostname"
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "Разрешаване ssh Ð´Ð° Ñе Ñтартира Ð¾Ñ‚ inetd Ð²Ð¼ÐµÑто ÐºÐ°Ñ‚о Ð´ÐµÐ¼Ð¾Ð½"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° hotplug"
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Разрешаване Ð½Ð° Samba Ð´Ð° ÑподелѠnfs Ð´Ð¸Ñ€ÐµÐºÑ‚ории"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° howl"
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL Ñървър Ð·Ð° ÑƒÐ´Ð¾ÑтоверÑване"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° cups Ð´ÐµÐ¼Ð¾Ð½Ð° hplip"
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "Разрешаване Ð½Ð° ÑƒÐ´Ð¾ÑтоверÑващиѠÑървър sasl Ð´Ð° Ñ‡ÐµÑ‚е /etc/shadow"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° httpd rotatelog-овете"
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ñървъра X-Windows Ð´Ð° Ð¿Ð¾Ð»Ð·Ð²Ð° Ñ‡Ð°Ñти Ð¾Ñ‚ Ð¿Ð°Ð¼ÐµÑ‚та ÐµÐ´Ð½Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ "
+-#~ "за Ð¿Ð¸Ñане Ð¸ Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ðµ"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr "УÑлугата HTTPD"
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° saslauthd"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° http suexec"
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° scannerdaemon"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° hwclock"
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "Забрана Ð·Ð° Ð¿Ñ€ÐµÑ…од ÐºÑŠÐ¼ sysadm_t, Ð·Ð°ÑÑгат Ñе sudo Ð¸ su"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° i18n"
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "Забрана Ð½Ð° Ð²Ñички Ð¿Ñ€Ð¾Ñ†ÐµÑи Ð´Ð° Ð·Ð°Ñ€ÐµÐ¶Ð´Ð°Ñ‚ Ð¼Ð¾Ð´ÑƒÐ»Ð¸ Ð² Ñдрото"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° imazesrv"
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "Забрана Ð½Ð° Ð²Ñички Ð¿Ñ€Ð¾Ñ†ÐµÑи Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÑÑ‚ SELinux Ð¿Ð¾Ð»Ð¸Ñ‚иката Ð² Ñдрото"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° inetd child Ð´ÐµÐ¼Ð¾Ð½Ð¸Ñ‚е"
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° sendmail"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° inetd"
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° setrans"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° innd"
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° setroublesoot"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° iptables"
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° slapd"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ircd"
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° slrnpull"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° irqbalance"
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° smbd"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° iscsi"
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° snmpd"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° jabberd"
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° snort"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr "Kerberos"
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° soundd"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° kadmind"
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° sound"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° klogd"
+-#, fuzzy
+-#~ msgid "Spam Protection"
+-#~ msgstr "Spam Ð·Ð°Ñ‰Ð¸Ñ‚а"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° krb5kdc"
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° spamd"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð¸Ñ‚е ktalk"
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "Разрешаване Ð½Ð° Ð´Ð¾Ñтъп Ð´Ð¾ Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸Ñ‚е Ð´Ð¸Ñ€ÐµÐºÑ‚ории Ð½Ð° spamd"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° kudzu"
+-#, fuzzy
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¼Ñ€ÐµÐ¶Ð¾Ð² Ð´Ð¾Ñтъп Ð½Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° Spam Assasin"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° locate"
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° speedmgmt"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° lpd"
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° lrrd"
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¼Ñ€ÐµÐ¶Ð¾Ð² Ð´Ð¾Ñтъп Ð½Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° squid"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° lvm"
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° squid"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° mailman"
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ssh"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr "Позволи evolution Ð¸ thunderbird Ð´Ð° Ñ‡ÐµÑ‚ат Ð¿Ð¾Ñ‚ребителÑки Ñ„айлове"
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "Разрешаване Ð½Ð° ssh Ð²Ñ…од ÐºÐ°Ñ‚о sysadm_r:sysadm_t"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° mdadm"
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° staff_r Ð¿Ð¾Ñ‚ребителите Ð´Ð° Ð¿Ñ€ÐµÑ‚ÑŠÑ€Ñват sysadm Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а "
+-#~ "директориѠи Ð´Ð° Ñ‡ÐµÑ‚ат Ñ„айлове (като ~/.bashrc Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð½Ð¾)"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° monopd"
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "УниверÑален SSL Ñ‚унел"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr "Позволи Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€ÑŠÑ‚ mozilla Ð´Ð° Ñ‡ÐµÑ‚е Ð¿Ð¾Ñ‚ребителÑки Ñ„айлове"
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° stunnel"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° mrtg"
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "Разрешаване Ð½Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° stunnel Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚и ÑамоÑтоÑтелно, Ð¸Ð·Ð²ÑŠÐ½ xinetd"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° mysqld"
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° swat"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nagios"
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° sxid"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr "УÑлуга Ð·Ð° Ð¸Ð¼ÐµÐ½Ð°"
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° syslogd"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° named"
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° ÑиÑтемните cron Ð·Ð°Ð´Ð°Ñ‡Ð¸"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nessusd"
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° tcp"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° NetworkManager"
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° telnet"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nfsd"
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° tftpd"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr "Samba"
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° transproxy"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nmbd"
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° udev"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nrpe"
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° uml"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nscd"
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° xinetd Ð´Ð° Ñтартира Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸, Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚елно Ð½Ñмащи "
+-#~ "изрично Ð´ÐµÑ„иниран Ð¿Ñ€ÐµÑ…од ÐºÑŠÐ¼ Ð´Ð¾Ð¼ÐµÐ¹Ð½ ÑƒÑлуги"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° nsd"
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° rc Ñкриптовете Ð´Ð° Ñтартират Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸, Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚елно "
+-#~ "вÑеки rc Ñкрипт, ÐºÐ¾Ð¹Ñ‚о Ð½Ñма Ð¸Ð·Ñ€Ð¸Ñ‡Ð½Ð¾ Ð´ÐµÑ„иниран Ð¿Ñ€ÐµÑ…од ÐºÑŠÐ¼ Ð´Ð¾Ð¼ÐµÐ¹Ð½"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ntpd"
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "Разрешаване Ð½Ð° rpm Ð´Ð° Ñтартира Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° oddjob"
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð¿Ñ€Ð¸Ð²Ð¸Ð»ÐµÐ³Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸ Ð¸Ð½Ñтрументи ÐºÐ°Ñ‚о hotplug Ð¸ insmod Ð´Ð° "
+-#~ "работÑÑ‚ Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° oddjob_mkhomedir"
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° updfstab"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° openvpn"
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° uptimed"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° pam"
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° user_r Ð¿Ñ€ÐµÑ…од ÐºÑŠÐ¼ sysadm_r Ñ‡Ñ€ÐµÐ· su, sudo, Ð¸Ð»Ð¸ userhelper. "
+-#~ "Ð’ Ð¿Ñ€Ð¾Ñ‚ивен Ñлучай, Ñамо staff_r Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð³Ð¾ Ð¿Ñ€Ð°Ð²Ð¸"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° pegasus"
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¿Ð¾Ñ‚ребителите Ð´Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ñват ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚а mount"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° perdition"
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð¾Ð±Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ‚е Ð¿Ð¾Ñ‚ребители Ð´Ð¸Ñ€ÐµÐºÑ‚ен Ð´Ð¾Ñтъп Ð´Ð¾ Ð¼Ð¸ÑˆÐºÐ°Ñ‚а (Ñамо "
+-#~ "на X Ñървъра)"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° portmap"
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¿Ð¾Ñ‚ребителите Ð´Ð° Ñтартират ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚а dmesg"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° portslave"
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð¿Ð¾Ñ‚ребителите Ð´Ð° ÐºÐ¾Ð½Ñ‚ролират Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ Ð¸Ð½Ñ‚ерфейÑи (Ñ‚Ñ€Ñбва Ð¸ "
+-#~ "USERCTL=true Ð·Ð° Ð¸Ð½Ñ‚ерфейÑа)"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° postfix"
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "Разрешаване Ð½Ð° Ð½Ð¾Ñ€Ð¼Ð°Ð»Ð½Ð¸Ñ‚е Ð¿Ð¾Ñ‚ребители Ð´Ð° Ñтартират ping"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° postgresql"
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¿Ð¾Ñ‚ребителите Ñ‡/з noextattrfile (FAT, CDROM, FLOPPY)"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr "pppd"
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¿Ð¾Ñ‚ребителите Ñ‡/з Ð½Ð° usb ÑƒÑтройÑтва"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr "Позволи pppd Ð´Ð° Ð±ÑŠÐ´Ðµ Ñтартиран Ð·Ð° Ð½Ð¾Ñ€Ð¼Ð°Ð»ÐµÐ½ Ð¿Ð¾Ñ‚ребител"
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð¿Ð¾Ñ‚ребителите Ð´Ð° Ñтартират TCP ÑƒÑлуги (Ñе Ð·Ð°ÐºÐ°Ñ‡Ð°Ñ‚ Ð½Ð° "
+-#~ "портове Ð¸ Ð´Ð° Ð¿Ñ€Ð¸ÐµÐ¼Ð°Ñ‚ Ð²Ñ€ÑŠÐ·ÐºÐ¸ Ð¾Ñ‚ ÑъщиѠдомейн Ð¸ Ð²ÑŠÐ½ÑˆÐ½Ð¸ Ð¿Ð¾Ñ‚ребители).  "
+-#~ "Забраната Ð½Ð° Ñ‚ова Ð½Ð°Ð»Ð°Ð³Ð° Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½ÐµÑ‚о Ð½Ð° Ð¿Ð°Ñивен FTP Ñ€ÐµÐ¶Ð¸Ð¼ Ð¸ Ð¼Ð¾Ð¶Ðµ Ð´Ð° "
+-#~ "промени Ð¸ Ð´Ñ€ÑƒÐ³Ð¸ Ð¿Ñ€Ð¾Ñ‚околи"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° pptp"
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¿Ð¾Ñ‚ребителите stat Ð²ÑŠÑ€Ñ…у tty Ñ„айлове"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° prelink"
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° uucpd"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° privoxy"
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° vmware"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° watchdog"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° winbind"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° xdm"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "Разрешаване Ð½Ð° xdm Ð²Ñ…од ÐºÐ°Ñ‚о sysadm_r:sysadm_t"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° xen"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "Разрешаване Ð½Ð° xen Ð´Ð° Ñ‡ÐµÑ‚е/пише Ñ„изичеÑки Ð´Ð¸Ñкови ÑƒÑтройÑтва"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° xfs"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° xen constrol"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ypbind"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° Ð·Ð° NIS Ð¿Ð°Ñ€Ð¾Ð»Ð¸"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ypserv"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° NIS Ñ‚ранÑфери"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° SELinux webadm Ð¿Ð¾Ñ‚ребителѠда ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñва Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸Ñ‚е "
+-#~ "директории Ð½Ð° Ð½ÐµÐ¿Ñ€Ð¸Ð²Ð¸Ð»ÐµÐ³Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ‚е Ð¿Ð¾Ñ‚ребители"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° SELinux webadm Ð¿Ð¾Ñ‚ребителѠда Ñ‡ÐµÑ‚е Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸Ñ‚е Ð´Ð¸Ñ€ÐµÐºÑ‚ории Ð½Ð° "
+-#~ "непривилегированите Ð¿Ð¾Ñ‚ребители"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "Сигурни Ð»Ð¸ Ñте, Ñ‡Ðµ Ð¸Ñкате Ð´Ð° Ð¸Ð·Ñ‚риете %s '%s'?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "Изтриване Ð½Ð° %s"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "ДобавÑне Ð½Ð° %s"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "ПромÑна Ð½Ð° %s"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "ПаÑивен"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "Ðктивен"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "СмÑната Ð½Ð° Ñ‚ипа Ð½Ð° Ð¿Ð¾Ð»Ð¸Ñ‚иката Ñ‰Ðµ Ð¿Ñ€ÐµÐ´Ð¸Ð·Ð²Ð¸ÐºÐ° Ð¿Ñ€ÐµÐµÑ‚икиране Ð½Ð° Ñ†Ñлата "
+-#~ "ÑиÑтема ÑледващиѠреÑтарт. ÐŸÑ€ÐµÐµÑ‚икирането Ð¾Ñ‚нема Ð¼Ð½Ð¾Ð³Ð¾ Ð²Ñ€ÐµÐ¼Ðµ Ð² Ð·Ð°Ð²Ð¸ÑимоÑÑ‚ "
+-#~ "от Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° Ð½Ð° Ñ„айловата ÑиÑтема.  Ð˜Ñкате Ð»Ð¸ Ð´Ð° Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸Ñ‚е?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Изключването Ð½Ð° SELinux Ð¸Ð·Ð¸Ñква Ñ€ÐµÑтарт.  Ðе Ðµ Ð¿Ñ€ÐµÐ¿Ð¾Ñ€ÑŠÑ‡Ð¸Ñ‚елно.  Ðко Ð¿Ð¾-"
+-#~ "къÑно Ñ€ÐµÑˆÐ¸Ñ‚е Ð´Ð° Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚е Ð¾Ñ‚ново SELinux, ÑиÑтемата Ñ‰Ðµ Ñ‚Ñ€Ñбва Ð´Ð° Ñе "
+-#~ "преетикира.  Ðко Ð¿Ñ€Ð¾Ñто Ð¸Ñкате Ð´Ð° Ð²Ð¸Ð´Ð¸Ñ‚е Ð´Ð°Ð»Ð¸ SELinux Ð¿Ñ€ÐµÐ´Ð¸Ð·Ð²Ð¸ÐºÐ²Ð° Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ "
+-#~ "във Ð’ашата ÑиÑтема, Ð¼Ð¾Ð¶ÐµÑ‚е Ð´Ð° Ð¿Ñ€ÐµÐ¼Ð¸Ð½ÐµÑ‚е Ð² Ð¿Ð°Ñивен Ñ€ÐµÐ¶Ð¸Ð¼, ÐºÐ¾Ð¹Ñ‚о Ñамо Ñ‰Ðµ "
+-#~ "рапортува Ð² Ð´Ð½ÐµÐ²Ð½Ð¸Ñ†Ð¸Ñ‚е Ð³Ñ€ÐµÑˆÐºÐ¸Ñ‚е Ð¸ Ð½Ñма Ð´Ð° Ð½Ð°Ð»Ð°Ð³Ð° SELinux Ð¿Ð¾Ð»Ð¸Ñ‚иката.  "
+-#~ "ПаÑивниѠрежим Ð½Ðµ Ð¸Ð·Ð¸Ñква Ñ€ÐµÑтарт. Ð˜Ñкате Ð»Ð¸ Ð´Ð° Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸Ñ‚е?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Включването Ð½Ð° SELinux Ñ‰Ðµ Ð¿Ñ€ÐµÐ´Ð¸Ð·Ð²Ð¸ÐºÐ° Ð¿Ñ€ÐµÐµÑ‚икиране Ð½Ð° Ñ†Ñлата Ñ„айлова "
+-#~ "ÑиÑтема ÑледващиѠреÑтарт. ÐŸÑ€ÐµÐµÑ‚икирането Ð¾Ñ‚нема Ð¼Ð½Ð¾Ð³Ð¾ Ð²Ñ€ÐµÐ¼Ðµ Ð² Ð·Ð°Ð²Ð¸ÑимоÑÑ‚ "
+-#~ "от Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° Ð½Ð° Ñ„айловата ÑиÑтема.  Ð˜Ñкате Ð»Ð¸ Ð´Ð° Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸Ñ‚е?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "ДобавÑне Ð½Ð° SELinux Ð²Ñ…одно ÑъответÑтвие"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "ДобавÑне Ð½Ð° SELinux Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ Ð¿Ð¾Ñ€Ñ‚ове"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux Ñ‚ип"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "ниво"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "Файлова ÑпецификациÑ"
+-
+-#~ msgid "File Type"
+-#~ msgstr "Файлов Ñ‚ип"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "вÑички Ñ„айлове\n"
+-#~ "нормален Ñ„айл\n"
+-#~ "директориÑ\n"
+-#~ "знаково ÑƒÑтройÑтво\n"
+-#~ "блоково ÑƒÑтройÑтво\n"
+-#~ "гнездо\n"
+-#~ "Ñимволна Ð²Ñ€ÑŠÐ·ÐºÐ°\n"
+-#~ "именована Ñ‚ръба\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "ДобавÑне Ð½Ð° SELinux Ð¿Ð¾Ñ‚ребител"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑтрациÑ"
+-
+-#~ msgid "Add"
+-#~ msgstr "ДобавÑне"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "_СвойÑтва"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "_Изтриване"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "Избор Ð½Ð° Ð¾Ð±ÐµÐºÑ‚ Ð·Ð° Ð¼ÐµÐ½Ð°Ð¶Ð¸Ñ€Ð°Ð½Ðµ"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Изберете:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "ОÑновен Ñ€ÐµÐ¶Ð¸Ð¼ Ð½Ð° ÑиÑтемата: "
+-
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "Текущ Ð°ÐºÑ‚ивен Ñ€ÐµÐ¶Ð¸Ð¼"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ptal"
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "ОÑновен Ñ‚ип Ð¿Ð¾Ð»Ð¸Ñ‚ика Ð½Ð° ÑиÑтемата: "
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° pxe"
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "Изберете Ð´Ð°Ð»Ð¸ Ð¸Ñкате Ð´Ð° Ð¿Ñ€ÐµÐµÑ‚икирате Ñ†Ñлата Ñ„айлова ÑиÑтема Ð½Ð° Ñледващото "
+-#~ "реÑтартиране. ÐŸÑ€ÐµÐµÑ‚икирането Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¾Ñ‚неме Ð¼Ð½Ð¾Ð³Ð¾ Ð´ÑŠÐ»Ð³Ð¾ Ð²Ñ€ÐµÐ¼Ðµ, Ð² "
+-#~ "завиÑимоÑÑ‚ Ð¾Ñ‚ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° Ð½Ð° Ñ„айловата ÑиÑтема.  Ðко Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñте Ñ‚ипове Ð¾Ñ‚ "
+-#~ "политиката Ð¸Ð»Ð¸ Ð¿Ñ€ÐµÐ¼Ð¸Ð½Ð°Ð²Ð°Ñ‚е Ð¾Ñ‚ Ð¸Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð° ÐºÑŠÐ¼ Ð°ÐºÑ‚ивна Ð¿Ð¾Ð»Ð¸Ñ‚ика, Ñ‚о "
+-#~ "преетикирането Ðµ Ð½ÐµÐ¾Ð±Ñ…одимо."
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° pyzord"
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Преетикиране Ð½Ð° ÑледващиѠреÑтарт."
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° quota"
+-#~ msgid "label37"
+-#~ msgstr "label37"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° radiusd"
+-#~ msgid "Filter"
+-#~ msgstr "Филтър"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° radvd"
+-#~ msgid "label50"
+-#~ msgstr "label50"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° rdisc"
+-#~ msgid "Add File Context"
+-#~ msgstr "ДобавÑне Ð½Ð° Ñ„айлов ÐºÐ¾Ð½Ñ‚екÑÑ‚"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° readahead"
+-#~ msgid "Modify File Context"
+-#~ msgstr "ПромÑна Ð½Ð° Ñ„айлов ÐºÐ¾Ð½Ñ‚екÑÑ‚"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++"Позволи Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð´Ð° Ñ‡ÐµÑ‚ат Ñ„айлове Ð² Ð½ÐµÑтандартни Ð¼ÐµÑтоположениѠ(default_t)"
+-#~ msgid "Delete File Context"
+-#~ msgstr "Изтриване Ð½Ð° Ñ„айлов ÐºÐ¾Ð½Ñ‚екÑÑ‚"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° restorecond"
+-#~ msgid "label38"
+-#~ msgstr "label38"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° rhgb"
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "ДобавÑне Ð½Ð° SELinux ÑъответÑтвие Ð·Ð° Ð¿Ð¾Ñ‚ребител"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° ricci"
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "ПромÑна Ð½Ð° SELinux ÑъответÑтвие Ð·Ð° Ð¿Ð¾Ñ‚ребител"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° ricci_modclusterd"
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Изтриване Ð½Ð° SELinux ÑъответÑтвие Ð·Ð° Ð¿Ð¾Ñ‚ребител"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° rlogind"
+-#~ msgid "label39"
+-#~ msgstr "label39"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° rpcd"
+-#~ msgid "Add Translation"
+-#~ msgstr "ДобавÑне Ð½Ð° Ð¿Ñ€ÐµÐ²Ð¾Ð´"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° rshd"
+-#~ msgid "Modify Translation"
+-#~ msgstr "ПромÑна Ð½Ð° Ð¿Ñ€ÐµÐ²Ð¾Ð´"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr "rsync"
+-#~ msgid "Delete Translation"
+-#~ msgstr "Изтриване Ð½Ð° Ð¿Ñ€ÐµÐ²Ð¾Ð´"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° rsync"
+-#~ msgid "label41"
+-#~ msgstr "label41"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr "Позволи ssh Ð´Ð° Ð±ÑŠÐ´Ðµ Ñтартиран Ð¾Ñ‚ inetd Ð²Ð¼ÐµÑто Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚и ÐºÐ°Ñ‚о Ð´ÐµÐ¼Ð¾Ð½"
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "ПромÑна Ð½Ð° SELinux Ð¿Ð¾Ñ‚ребител"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr "Позволи Samba Ð´Ð° ÑподелѠnfs Ð´Ð¸Ñ€ÐµÐºÑ‚ории"
+-#~ msgid "label40"
+-#~ msgstr "label40"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr "SASL ÑƒÐ´Ð¾ÑтоверÑващ Ñървър"
+-#~ msgid "Add Network Port"
+-#~ msgstr "ДобавÑне Ð½Ð° Ð¼Ñ€ÐµÐ¶Ð¾Ð² Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr "Позволи sasl ÑƒÐ´Ð¾ÑтоверÑващиÑÑ‚ Ñървър Ð´Ð° Ñ‡ÐµÑ‚е /etc/shadow"
+-#~ msgid "Edit Network Port"
+-#~ msgstr "РедакциѠна Ð¼Ñ€ÐµÐ¶Ð¾Ð² Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++"Позволи X-Windows Ñървъра Ð´Ð° Ð½Ð°Ð·Ð½Ð°Ñ‡Ð°Ð²Ð° Ñ€ÐµÐ³Ð¸Ð¾Ð½Ð¸ Ð¾Ñ‚ Ð¿Ð°Ð¼ÐµÑ‚та ÐµÐ´Ð½Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ ÐºÐ°Ñ‚о "
++"изпълними Ð¸ Ð·Ð°Ð¿Ð¸Ñваеми"
+-#~ msgid "Delete Network Port"
+-#~ msgstr "Изтриване Ð½Ð° Ð¼Ñ€ÐµÐ¶Ð¾Ð² Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° saslauthd"
+-#~ msgid "label42"
+-#~ msgstr "label42"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° scannerdaemon"
+-#~ msgid "Generate new policy module"
+-#~ msgstr "Генериране Ð½Ð° Ð½Ð¾Ð² Ð¼Ð¾Ð´ÑƒÐ» Ñ Ð¿Ð¾Ð»Ð¸Ñ‚ика"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr "Ðе Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñвай transition ÐºÑŠÐ¼ sysadm_t, Ð¸Ð·Ð²ÑŠÑ€ÑˆÐ²Ð°Ð½Ð¸ sudo Ð¸ su"
+-#~ msgid "Load policy module"
+-#~ msgstr "Зареждане Ð½Ð° Ð¼Ð¾Ð´ÑƒÐ» Ñ Ð¿Ð¾Ð»Ð¸Ñ‚ика"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr "Ðе Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñвай Ð½Ð° Ð½Ð¸ÐºÐ¾Ð¹ Ð¾Ñ‚ Ð¿Ñ€Ð¾Ñ†ÐµÑите Ð´Ð° Ð·Ð°Ñ€ÐµÐ¶Ð´Ð° Ð¼Ð¾Ð´ÑƒÐ»Ð¸ ÐºÑŠÐ¼ Ñдрото"
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "Деактивиране Ð½Ð° Ð·Ð°Ñ€ÐµÐ¶Ð´Ð°ÐµÐ¼ Ð¼Ð¾Ð´ÑƒÐ» Ñ Ð¿Ð¾Ð»Ð¸Ñ‚ика"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++"Ðе Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñвай Ð½Ð° Ð½Ð¸ÐºÐ¾Ð¹ Ð¾Ñ‚ Ð¿Ñ€Ð¾Ñ†ÐµÑите Ð´Ð° Ð¼Ð¾Ð´Ð¸Ñ„ицира kernel SELinux Ð¿Ð¾Ð»Ð¸Ñ‚иката"
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "Спиране Ð½Ð° Ð´Ð¾Ð¿ÑŠÐ»Ð½Ð¸Ñ‚елните Ð¾Ð´Ð¸Ñ‚ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°, ÐºÐ¾Ð¸Ñ‚о Ð½Ð¾Ñ€Ð¼Ð°Ð»Ð½Ð¾ Ð½Ðµ Ñе Ñ€Ð°Ð¿Ð¾Ñ€Ñ‚уват "
+-#~ "във Ñ„айловете Ð½Ð° Ð´Ð½ÐµÐ²Ð½Ð¸ÐºÐ°."
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° sendmail"
+-#~ msgid "label44"
+-#~ msgstr "label44"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° setrans"
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "Ðиво Ð½Ð° Ñ‡ÑƒÐ²ÑтвителноÑÑ‚"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° setroubleshoot"
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "Ðеобходим Ðµ SELinux Ð¿Ð¾Ñ‚ребител '%s'"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° slapd"
+-#~ msgid "Requires value"
+-#~ msgstr "ИзиÑква ÑтойноÑÑ‚"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° slrnpull"
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "Друид Ð·Ð° Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° SELinux Ð¿Ð¾Ð»Ð¸Ñ‚ики"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° smbd"
+-#~ msgid "label25"
+-#~ msgstr "label25"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° snmpd"
+-#~ msgid "label26"
+-#~ msgstr "label26"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° snort"
+-#~ msgid "label28"
+-#~ msgstr "label28"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° soundd"
+-#~ msgid "label30"
+-#~ msgstr "label30"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° sound"
+-#~ msgid "label31"
+-#~ msgstr "label31"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr "Spam Ð·Ð°Ñ‰Ð¸Ñ‚а"
+-#~ msgid "label32"
+-#~ msgstr "label32"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° spamd"
+-#~ msgid "label33"
+-#~ msgstr "label33"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr "Позволи Ð½Ð° spamd Ð´Ð¾Ñтъп Ð´Ð¾ Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸Ñ‚е Ð´Ð¸Ñ€ÐµÐºÑ‚ории"
+-#, fuzzy
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ð¾Ñ‚о Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ/потребител Ð´Ð° Ñе Ñлуша Ð½Ð° Ð²Ñеки "
+-#~ "tcp Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr "Позволи Ð½Ð° Spam Assassin Ð´ÐµÐ¼Ð¾Ð½Ð° Ð´Ð¾Ñтъп Ð´Ð¾ Ð¼Ñ€ÐµÐ¶Ð°Ñ‚а"
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr ""
+-#~ "Ползвайте Ñ‚ози Ð±ÑƒÑ‚он Ð¾Ñ‚метка, Ð°ÐºÐ¾ Ð²Ð°ÑˆÐµÑ‚о Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð¸Ð·Ð²Ð¸ÐºÐ²Ð° bindresvport "
+-#~ "Ñ 0."
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° speedmgmt"
+-#, fuzzy
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚о/потребителѠда Ñлуша Ð½Ð° Ð²Ñеки tcp Ð¿Ð¾Ñ€Ñ‚ > 1024"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr "Squid"
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "Ðерезервирани Ð¿Ð¾Ñ€Ñ‚ове  (> 1024)"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr "Позволи Ð½Ð° squid Ð´ÐµÐ¼Ð¾Ð½Ð° Ð´Ð° Ñе Ñвързва ÐºÑŠÐ¼ Ð¼Ñ€ÐµÐ¶Ð°Ñ‚а"
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Въведете Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½ Ñ Ð·Ð°Ð¿ÐµÑ‚аи ÑпиÑък Ð¾Ñ‚ tcp Ð¿Ð¾Ñ€Ñ‚ове, Ð½Ð° ÐºÐ¾Ð¸Ñ‚о Ñ‚ова "
+-#~ "приложение Ñлуша. "
+-
+-#~ msgid "label34"
+-#~ msgstr "label34"
+-
+-#~ msgid "label35"
+-#~ msgstr "label35"
+-
+-#, fuzzy
+-#~ msgid "label51"
+-#~ msgstr "label25"
+-
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "Ðктивен\n"
+-#~ "ПаÑивен\n"
+-#~ "Изключен\n"
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule·-i·%s\n"
+-#~ "\n"
+-
+-#~ msgid "value"
+-#~ msgstr "ÑтойноÑÑ‚"
+-
+-#~ msgid "Other"
+-#~ msgstr "Друго"
+-
+-#~ msgid ""
+-#~ "Application uses nsswitch or translates UID's (daemons that run as non "
+-#~ "root)"
+-#~ msgstr ""
+-#~ "Приложението Ð¿Ð¾Ð»Ð·Ð²Ð° nsswitch Ð¸Ð»Ð¸ Ð¿Ñ€ÐµÐ²ÐµÐ¶Ð´Ð° Ð¿Ð¾Ñ‚ребителÑки ID-та (UID, "
+-#~ "демони, ÐºÐ¾Ð¸Ñ‚о Ñ€Ð°Ð±Ð¾Ñ‚ÑÑ‚ Ð½Ðµ ÐºÐ°Ñ‚о root)"
+-
+-#~ msgid "Files and Directories"
+-#~ msgstr "Файлове Ð¸ Ð´Ð¸Ñ€ÐµÐºÑ‚ории"
+-
+-#~ msgid "Generate policy in this directory"
+-#~ msgstr "Генериране Ð½Ð° Ð¿Ð¾Ð»Ð¸Ñ‚ика Ð² Ñ‚ази Ð´Ð¸Ñ€ÐµÐºÑ‚ориÑ"
+-
+-#~ msgid "Incoming Network Port Connections"
+-#~ msgstr "ВходÑщи Ð¿Ð¾Ñ€Ñ‚ове Ð·Ð° Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ Ð²Ñ€ÑŠÐ·ÐºÐ¸"
+-
+-#~ msgid "Name of application to be confined"
+-#~ msgstr "Име Ð½Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚о Ð·Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð°Ð²Ð°Ð½Ðµ"
+-
+-#~ msgid "Outgoing Network Port Connections"
+-#~ msgstr "ИзходÑщи Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ Ð²Ñ€ÑŠÐ·ÐºÐ¸"
+-
+-#~ msgid ""
+-#~ "Select Terminal Login User, if this user will login to a machine only via "
+-#~ "a terminal or remote login"
+-#~ msgstr ""
+-#~ "Изберете ÐºÐ¾Ð½Ð·Ð¾Ð»ÐµÐ½ Ð¿Ð¾Ñ‚ребител Ð°ÐºÐ¾ Ñ‚ова Ðµ Ð¿Ð¾Ñ‚ребител, ÐºÐ¾Ð¹Ñ‚о Ñ‰Ðµ Ð²Ð»Ð¸Ð·Ð° Ð½Ð° "
+-#~ "машина Ñамо Ð¿Ñ€ÐµÐ· Ñ‚ерминал Ð¸Ð»Ð¸ Ð¾Ñ‚далечено"
+-
+-#~ msgid ""
+-#~ "Select XWindows login user, if this is a user who will login to a machine "
+-#~ "via X"
+-#~ msgstr ""
+-#~ "Изберете XWindows Ð¿Ð¾Ñ‚ребител Ð°ÐºÐ¾ Ñ‚ова Ðµ Ð¿Ð¾Ñ‚ребител, ÐºÐ¾Ð¹Ñ‚о Ñ‰Ðµ Ð²Ð»Ð¸Ð·Ð° Ð½Ð° "
+-#~ "машината Ð¿Ñ€ÐµÐ· X"
+-
+-#~ msgid "Terminal Login User"
+-#~ msgstr "Конзолен Ð¿Ð¾Ñ‚ребител"
+-
+-#~ msgid "XWindows Login User"
+-#~ msgstr "XWindows Ð¿Ð¾Ñ‚ребител"
+-
+-#~ msgid "Login"
+-#~ msgstr "Потребител"
+-
+-#~ msgid "Allow direct login to the console device. Requiered for System 390"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð´Ð¸Ñ€ÐµÐºÑ‚ен Ð²Ñ…од Ð½Ð° ÐºÐ¾Ð½Ð·Ð¾Ð»Ð½Ð¾Ñ‚о ÑƒÑтройÑтво. Ðеобходимо Ðµ Ð·Ð° "
+-#~ "System 390"
+-
+-#~ msgid "Allow cvs daemon to read shadow"
+-#~ msgstr "Разрешаване Ð½Ð° cvs Ð´ÐµÐ¼Ð¾Ð½Ð° Ð´Ð° Ñ‡ÐµÑ‚е shadow Ñ„айла"
+-
+-#~ msgid ""
+-#~ "Allow unconfined executables to make their heap memory executable.  Doing "
+-#~ "this is a really bad idea. Probably indicates a badly coded executable, "
+-#~ "but could indicate an attack. This executable should be reported in "
+-#~ "bugzilla"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð½ÐµÐºÐ¾Ð½Ñ„игурирани Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð´Ð° Ð¿Ñ€Ð°Ð²ÑÑ‚ ÑвоÑта Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡Ð½Ð° Ð¿Ð°Ð¼ÐµÑ‚ "
+-#~ "изпълнима.  Ð¢Ð¾Ð²Ð° Ð½Ð°Ð¸Ñтина Ðµ Ð¼Ð½Ð¾Ð³Ð¾ Ð»Ð¾ÑˆÐ° Ð¸Ð´ÐµÑ. ÐŸÐ¾ Ð²ÑÑка Ð²ÐµÑ€Ð¾ÑтноÑÑ‚ Ð¸Ð½Ð´Ð¸ÐºÐ¸Ñ€Ð° "
+-#~ "зле ÐºÐ¾Ð´Ð¸Ñ€Ð°Ð½Ð¾ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ, Ð½Ð¾ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¸Ð½Ð´Ð¸ÐºÐ¸Ñ€Ð° Ð°Ñ‚ака. Ð¢Ð¾Ð²Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ "
+-#~ "Ñледва Ð´Ð° Ñе Ñ€Ð°Ð¿Ð¾Ñ€Ñ‚ува Ð² bugzilla"
+-
+-#~ msgid ""
+-#~ "Allow unconfined executables to map a memory region as both executable "
+-#~ "and writable, this is dangerous and the executable should be reported in "
+-#~ "bugzilla"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ‚е Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸ Ñ„айлове Ð´Ð° Ð·Ð°Ð´ÐµÐ»ÑÑ‚ Ð¾Ð±Ð»Ð°Ñти Ð¿Ð°Ð¼ÐµÑ‚ "
+-#~ "за Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ðµ Ð¸ Ð¿Ð¸Ñане ÐµÐ´Ð½Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾, Ñ‚ова Ðµ Ð¾Ð¿Ð°Ñно Ð¸ Ñ‚ези Ñ„айлове Ñледва "
+-#~ "да Ñе Ñ€Ð°Ð¿Ð¾Ñ€Ñ‚уват Ð² bugzilla"
+-
+-#~ msgid ""
+-#~ "Allow all unconfined executables to use libraries requiring text "
+-#~ "relocation that are not labeled textrel_shlib_t"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð²Ñички Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð° Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚еки, "
+-#~ "които Ð¸Ð·Ð¸Ñкват Ð¿Ñ€ÐµÐ¼ÐµÑтване Ð½Ð° ÐºÐ¾Ð´Ð°, Ð° Ð½Ðµ Ñа ÐµÑ‚икирани ÐºÐ°Ñ‚о textrel_shlib_t"
+-
+-#~ msgid ""
+-#~ "Allow unconfined executables to make their stack executable.  This should "
+-#~ "never, ever be neessary. Probably indicates a badly coded executable, but "
+-#~ "could indicate an attack. This executable should be reported in bugzilla"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð²Ñички Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð´Ð° Ð¿Ñ€Ð°Ð²ÑÑ‚ Ñтека Ñи Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼.  "
+-#~ "Това Ð°Ð±Ñолютно Ð½Ð¸ÐºÐ¾Ð³Ð° Ð½Ðµ Ð±Ð¸ Ñ‚Ñ€Ñбвало Ð´Ð° Ðµ Ð½ÐµÐ¾Ð±Ñ…одимо. ÐŸÐ¾ Ð²ÑÑка Ð²ÐµÑ€Ð¾ÑтноÑÑ‚ "
+-#~ "индикира Ð·Ð»Ðµ ÐºÐ¾Ð´Ð¸Ñ€Ð°Ð½Ð¾ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ, Ð½Ð¾ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¿Ð¾ÐºÐ°Ð·Ð²Ð° Ð¸ Ð°Ñ‚ака. Ð¢Ð¾Ð²Ð° "
+-#~ "приложение Ñледва Ð´Ð° Ñе Ñ€Ð°Ð¿Ð¾Ñ€Ñ‚ува Ð² bugzilla"
+-
+-#~ msgid "FTP"
+-#~ msgstr "FTP"
+-
+-#~ msgid "Allow ftpd to full access to the system"
+-#~ msgstr "Разрешаване Ð½Ð° ftpd Ð¿ÑŠÐ»ÐµÐ½ Ð´Ð¾Ñтъп Ð´Ð¾ ÑиÑтемата"
+-
+-#~ msgid ""
+-#~ "Allow ftpd to upload files to directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° ftpd Ð´Ð° ÐºÐ°Ñ‡Ð²Ð° Ñ„айлове Ð² Ð´Ð¸Ñ€ÐµÐºÑ‚ории ÐµÑ‚икирани ÐºÐ°Ñ‚о "
+-#~ "public_content_rw_t"
+-
+-#~ msgid "Allow ftp servers to use cifs used for public file transfer services"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° ftp Ñървърите Ð´Ð° Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚ cifs Ð·Ð° Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸ ÑƒÑлуги Ð·Ð° "
+-#~ "ÑподелÑне Ð½Ð° Ñ„айлове"
+-
+-#~ msgid "Allow ftp servers to use nfs used for public file transfer services"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° ftp Ñървърите Ð´Ð° Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚ nfs Ð·Ð° Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸ ÑƒÑлуги Ð·Ð° "
+-#~ "ÑподелÑне Ð½Ð° Ñ„айлове"
+-
+-#~ msgid "Allow gpg executable stack"
+-#~ msgstr "Разрешаване Ð½Ð° gpg Ð½Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼ Ñтек"
+-
+-#~ msgid "Allow gssd to read temp directory"
+-#~ msgstr "Разрешаване Ð½Ð° gssd Ð´Ð° Ñ‡ÐµÑ‚е /tmp"
+-
+-#~ msgid ""
+-#~ "Allow httpd daemon to write files in directories labeled "
+-#~ "public_content_rw_t"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° httpd Ð´Ð° Ð¿Ð¸ÑˆÐµ Ñ„айлове Ð² Ð´Ð¸Ñ€ÐµÐºÑ‚ории ÐµÑ‚икирани ÐºÐ°Ñ‚о "
+-#~ "public_content_rw_t"
+-
+-#~ msgid "Allow Apache to communicate with avahi service"
+-#~ msgstr "Разрешаване Ð½Ð° Apache Ð´Ð° ÐºÐ¾Ð¼ÑƒÐ½Ð¸ÐºÐ¸Ñ€Ð° Ñ ÑƒÑлугата avahi"
+-
+-#~ msgid "Allow Apache to use mod_auth_pam"
+-#~ msgstr "Разрешаване Ð½Ð° Apache Ð´Ð° Ð¿Ð¾Ð»Ð·Ð²Ð° mod_auth_pam"
+-
+-#~ msgid ""
+-#~ "Allow httpd scripts to write files in directories labeled "
+-#~ "public_content_rw_t"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° httpd Ñкриптовете Ð´Ð° Ð¿Ð¸ÑˆÐ°Ñ‚ Ñ„айлове Ð² Ð´Ð¸Ñ€ÐµÐºÑ‚ориите "
+-#~ "етикирани ÐºÐ°Ñ‚о public_content_rw_t"
+-
+-#~ msgid "Allow daemons to use kerberos files"
+-#~ msgstr "Разрешаване Ð½Ð° Ð´ÐµÐ¼Ð¾Ð½Ð¸Ñ‚е Ð´Ð° Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚ kerberos Ñ„айлове"
+-
+-#~ msgid ""
+-#~ "Allow nfs servers to modify public files used for public file transfer "
+-#~ "services"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° nfs Ñървърите Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÑÑ‚ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸ Ñ„айлове Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½Ð¸ Ð·Ð° "
+-#~ "общодоÑтъпни ÑƒÑлуги Ð·Ð° Ñ‚ранÑфер Ð½Ð° Ñ„айлове"
+-
+-#~ msgid "Polyinstatiation"
+-#~ msgstr "ПолиинÑтанциране"
+-
+-#~ msgid "Enable polyinstantiated directory support"
+-#~ msgstr "Включване Ð½Ð° Ð¿Ð¾Ð´Ð´Ñ€ÑŠÐ¶ÐºÐ°Ñ‚а Ð·Ð° Ð¿Ð¾Ð»Ð¸Ð¸Ð½Ñтанциране Ð½Ð° Ð´Ð¸Ñ€ÐµÐºÑ‚ории"
+-
+-#~ msgid "Allow sysadm_t to debug or ptrace applications"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° sysadm_t Ð´Ð° Ñ‚ÑŠÑ€Ñи Ð³Ñ€ÐµÑˆÐºÐ¸ Ð² Ð¸Ð»Ð¸ Ð¿Ð¾Ð»Ð·Ð²Ð° ptrace Ð²ÑŠÑ€Ñ…у "
+-#~ "приложениÑ"
+-
+-#~ msgid ""
+-#~ "Allow rsync to write files in directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° rsync Ð´Ð° Ð¿Ð¸ÑˆÐµ Ñ„айлове Ð² Ð´Ð¸Ñ€ÐµÐºÑ‚ории ÐµÑ‚икирани ÐºÐ°Ñ‚о "
+-#~ "public_content_rw_t"
+-
+-#~ msgid ""
+-#~ "Allow Samba to write files in directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Samba Ð´Ð° Ð¿Ð¸ÑˆÐµ Ñ„айлове Ð² Ð´Ð¸Ñ€ÐµÐºÑ‚ории ÐµÑ‚икирани ÐºÐ°Ñ‚о "
+-#~ "public_content_rw_t"
+-
+-#~ msgid "Zebra"
+-#~ msgstr "Zebra"
+-
+-#~ msgid "Allow zebra daemon to write it configuration files"
+-#~ msgstr "Разрешаване Ð½Ð° zebra Ð´ÐµÐ¼Ð¾Ð½Ð° Ð´Ð° Ð¿Ð¸ÑˆÐµ Ð² ÐºÐ¾Ð½Ñ„игурационните Ñи Ñ„айлове"
+-
+-#~ msgid ""
+-#~ "Allow system cron jobs to relabel filesystem for restoring file contexts"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° ÑиÑтемните cron Ð·Ð°Ð´Ð°Ñ‡Ð¸ Ð´Ð° Ð¿Ñ€ÐµÐµÑ‚икират Ñ„айловата ÑиÑтема Ñ "
+-#~ "цел Ð²ÑŠÐ·ÑтановÑване Ð½Ð° ÐºÐ¾Ð½Ñ‚екÑта Ð½Ð° Ñ„айловете"
+-
+-#~ msgid "Enable extra rules in the cron domain to support fcron"
+-#~ msgstr ""
+-#~ "Включване Ð½Ð° Ð´Ð¾Ð¿ÑŠÐ»Ð½Ð¸Ñ‚елни Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð² Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð° Ð½Ð° cron Ð·Ð° Ð¿Ð¾Ð´Ð´Ñ€ÑŠÐ¶ÐºÐ° Ð½Ð° fcron"
+-
+-#~ msgid "Disable SELinux protection for ftpd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ftpd"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° squid"
+-#~ msgid "Allow ftpd to run directly without inetd"
+-#~ msgstr "Разрешаване Ð½Ð° ftpd Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚и Ð´Ð¸Ñ€ÐµÐºÑ‚но, Ð±ÐµÐ· inetd"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ssh"
+-#~ msgid "Allow ftp to read/write files in the user home directories"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° ftp Ð´Ð° Ñ‡ÐµÑ‚е/пише Ñ„айлове Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸Ñ‚е Ð´Ð¸Ñ€ÐµÐºÑ‚ории Ð½Ð° "
+-#~ "потребителите"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr "Позволи ssh Ð²Ð»Ð¸Ð·Ð°Ð½Ð¸Ñ ÐºÐ°Ñ‚о sysadm_r:sysadm_t"
+-#~ msgid ""
+-#~ "This should be enabled when all programs are compiled with ProPolice/SSP "
+-#~ "stack smashing protection.  All domains will be allowed to read from /dev/"
+-#~ "urandom"
+-#~ msgstr ""
+-#~ "Това Ñледва Ð´Ð° Ð±ÑŠÐ´Ðµ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾ ÐºÐ¾Ð³Ð°Ñ‚о Ð²Ñички Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ñа ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ð¸Ñ€Ð°Ð½Ð¸ Ñ "
+-#~ "ProPolice/SSP Ð·Ð°Ñ‰Ð¸Ñ‚а Ð¾Ñ‚ Ñчупване Ð½Ð° Ñтека.  Ðа Ð²Ñички Ð´Ð¾Ð¼ÐµÐ¹Ð½Ð¸ Ñ‰Ðµ Ð±ÑŠÐ´Ðµ "
+-#~ "разрешено Ð´Ð° Ñ‡ÐµÑ‚ат Ð¾Ñ‚ /dev/urandom"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++"Позволи staff_r Ð¿Ð¾Ñ‚ребители Ð´Ð° Ñ‚ÑŠÑ€ÑÑÑ‚ Ð² Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð°Ñ‚а Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠна sysadm Ð¸ Ð´Ð° "
++"четат Ñ„айлове (като ~/.bashrc)"
+-#~ msgid "Allow HTTPD to support built-in scripting"
+-#~ msgstr "Разрешаване Ð½Ð° HTTPD Ð´Ð° Ð¿Ð¾Ð´Ð´ÑŠÑ€Ð¶Ð° Ð²Ð³Ñ€Ð°Ð´ÐµÐ½Ð¸Ñ‚е Ð¼Ñƒ Ñкриптове"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr "УниверÑален SSL Ñ‚унел"
+-#~ msgid "Allow HTTPD to send mail"
+-#~ msgstr "Разрешаване Ð½Ð° HTTPD Ð´Ð° Ð¸Ð·Ð¿Ñ€Ð°Ñ‰Ð° Ð¿Ð¾Ñ‰Ð°"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° stunnel"
+-#~ msgid "Allow HTTPD scripts and modules to network connect to databases"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° HTTPD Ñкриптове Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ð¸ Ð´Ð° Ñе Ñвързват Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¾ Ñ Ð±Ð°Ð·Ð¸ "
+-#~ "данни"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr "Позволи stunnel Ð´ÐµÐ¼Ð¾Ð½Ð° Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚и ÑамоÑтоÑтелно, Ð¸Ð·Ð²ÑŠÐ½ xinetd"
+-#~ msgid "Allow HTTPD scripts and modules to connect to the network"
+-#~ msgstr "Разрешаване Ð½Ð° HTTPD Ñкриптове Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ð¸ Ð´Ð° Ñе Ñвързват Ð² Ð¼Ñ€ÐµÐ¶Ð°Ñ‚а"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° swat"
+-#~ msgid "Allow httpd to act as a relay"
+-#~ msgstr "Разрешаване Ð½Ð° httpd Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚и ÐºÐ°Ñ‚о Ñ€ÐµÑ‚ранÑлатор"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° sxid"
+-#~ msgid "Disable SELinux protection for httpd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° httpd"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° syslogd"
+-#~ msgid "Allow HTTPD cgi support"
+-#~ msgstr "Разрешаване Ð½Ð° HTTPD Ð½Ð° cgi Ð¿Ð¾Ð´Ð´Ñ€ÑŠÐ¶ÐºÐ°"
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° ÑиÑтемните cron Ð·Ð°Ð´Ð°Ñ‡Ð¸"
+-#~ msgid "Allow HTTPD to run as a ftp server"
+-#~ msgstr "Разрешаване Ð½Ð° HTTPD Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚и ÐºÐ°Ñ‚о ftp Ñървър"
+-
+-#~ msgid "Allow HTTPD to read home directories"
+-#~ msgstr "Разрешаване Ð½Ð° HTTPD Ð´Ð° Ñ‡ÐµÑ‚е Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸Ñ‚е Ð´Ð¸Ñ€ÐµÐºÑ‚ории"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° tcp"
+-#~ msgid ""
+-#~ "Allow HTTPD to run SSI executables in the same domain as system CGI "
+-#~ "scripts"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° HTTPD Ð´Ð° Ñтартира SSI Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð² ÑъщиѠдомейн ÐºÐ°Ñ‚о "
+-#~ "ÑиÑтемните CGI Ñкриптове"
+-
+-#~ msgid ""
+-#~ "Unify HTTPD to communicate with the terminal.  Needed for handling "
+-#~ "certificates"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° HTTPD Ð´Ð° ÐºÐ¾Ð¼ÑƒÐ½Ð¸ÐºÐ¸Ñ€Ð° ÑъѠтерминала.  Ðеобходимо Ðµ Ð·Ð° "
+-#~ "поддръжка Ð½Ð° Ñертификати (Ѡпарола)"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° telnet"
+-#~ msgid "Unify HTTPD handling of all content files"
+-#~ msgstr "Унифициране Ñ€Ð°Ð±Ð¾Ñ‚ата Ð½Ð° HTTPD Ñ Ð²Ñички Ñ„айлове ÑÑŠÑ Ñъдържание"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° tftpd"
+-#~ msgid "Allow named to overwrite master zone files"
+-#~ msgstr "Разрешаване Ð½Ð° named Ð´Ð° Ð¿Ñ€ÐµÐ·Ð°Ð¿Ð¸Ñва Ð³Ð»Ð°Ð²Ð½Ð¸Ñ‚е Ð·Ð¾Ð½Ð¾Ð²Ð¸ Ñ„айлове"
+-
+-#~ msgid "Allow NFS to share any file/directory read only"
+-#~ msgstr "Разрешаване Ð½Ð° NFS Ð´Ð° ÑподелѠвÑеки Ñ„айл/директориѠза Ñ‡ÐµÑ‚ене"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° transproxy"
+-#~ msgid "Allow NFS to share any file/directory read/write"
+-#~ msgstr "Разрешаване Ð½Ð° NFS Ð´Ð° ÑподелѠвÑеки Ñ„айл/директориѠза Ñ‡ÐµÑ‚ене/запиÑ"
+-
+-#~ msgid "Allow openvpn service access to users home directories"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° openvpn ÑƒÑлугата Ð´Ð¾Ñтъп Ð´Ð¾ Ð¿Ð¾Ñ‚ребителÑките Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸ "
+-#~ "директории"
+-
+-#~ msgid "Allow pppd daemon to insert modules into the kernel"
+-#~ msgstr "Разрешаване Ð½Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° pppd Ð´Ð° Ð²Ð¼ÑŠÐºÐ²Ð° Ð¼Ð¾Ð´ÑƒÐ»Ð¸ Ð² Ñдрото"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° udev"
+-#~ msgid "Disable SELinux protection for pppd daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° pppd"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° uml"
+-#~ msgid "Disable SELinux protection for the mozilla ppp daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° mozilla ppp"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++"Позволи xinetd Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚и Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾, Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚елно ÐºÐ¾Ð¸Ñ‚о Ð¸ Ð´Ð° Ñа ÑƒÑлуги, "
++"които Ñ‚ой Ñтартира, ÐºÐ¾Ð¸Ñ‚о Ð½Ñмат Ð¸Ð·Ñ€Ð¸Ñ‡Ð½Ð¾ Ð´ÐµÑ„иниран domain transition"
+-#~ msgid "Allow programs to read untrusted content without relabel"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸Ñ‚е Ð´Ð° Ñ‡ÐµÑ‚ат Ð½ÐµÑигурно Ñъдържание Ð±ÐµÐ· Ð¿Ñ€ÐµÐµÑ‚икиране"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++"Позволи rc Ñкриптове Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚ÑÑ‚ Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾, Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚елно ÐºÐ¾Ð¹Ñ‚о Ð¸ Ð´Ð° Ðµ "
++"демон, Ñтартиран Ð¾Ñ‚ rc Ñкрипт, ÐºÐ¾Ð¹Ñ‚о Ð½Ñма Ð¸Ð·Ñ€Ð¸Ñ‡Ð½Ð¾ Ð´ÐµÑ„иниран domain transition"
+-#~ msgid "Allow Samba to share users home directories"
+-#~ msgstr "Разрешаване Ð½Ð° Samba Ð´Ð° ÑподелѠпотребителÑки Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸ Ð´Ð¸Ñ€ÐµÐºÑ‚ории"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr "Позволи rpm Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚и Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾"
+-#~ msgid "Spam Assassin"
+-#~ msgstr "Spam Assassin"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++"Позволи Ð¿Ñ€Ð¸Ð²Ð¸Ð»ÐµÐ³Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸ Ð¸Ð½Ñтрументи ÐºÐ°Ñ‚о hotplug Ð¸ insmod Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚ÑÑ‚ "
++"неограничено"
+-#~ msgid "Allow spammassasin to access the network"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¼Ñ€ÐµÐ¶Ð¾Ð² Ð´Ð¾Ñтъп Ð½Ð° spammassasin"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° updfstab"
+-#~ msgid "Use lpd server instead of cups"
+-#~ msgstr "Ползване Ð½Ð° lpd Ñървър Ð²Ð¼ÐµÑто cups"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° uptimed"
+-#~ msgid "Support NFS home directories"
+-#~ msgstr "Поддръжка Ð½Ð° NFS Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸ Ð´Ð¸Ñ€ÐµÐºÑ‚ории"
+-
+-#~ msgid "Allow users to login with CIFS home directories"
+-#~ msgstr "Разрешаване Ð½Ð° Ð¿Ð¾Ñ‚ребителите Ð´Ð° Ð²Ð»Ð¸Ð·Ð°Ñ‚ Ñ CIFS Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð° Ð´Ð¸Ñ€ÐµÐºÑ‚ориÑ"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++"Позволи user_r Ð´Ð° Ð´Ð¾Ñтига sysadm_r Ñ‡Ñ€ÐµÐ· su, sudo, Ð¸Ð»Ð¸ userhelper. Ð˜Ð½Ð°Ñ‡Ðµ Ñамо "
++"staff_r Ð³Ð¾ Ð¼Ð¾Ð¶Ðµ"
+-#~ msgid ""
+-#~ "Allow web applications to write untrusted content to disk (implies read)"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° ÑƒÐµÐ± Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñта Ð´Ð° Ð¿Ð¸ÑˆÐ°Ñ‚ Ð½ÐµÑигурно Ñъдържание Ð²ÑŠÑ€Ñ…у Ð´Ð¸Ñка "
+-#~ "(включва Ñ‡ÐµÑ‚ене)"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr "Позволи Ð¿Ð¾Ñ‚ребители Ð´Ð° Ñтартират ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚а mount"
+-#~ msgid "Disable SELinux protection for zebra daemon"
+-#~ msgstr "Изключване Ð½Ð° SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° zebra"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++"Позволи Ð½Ð° Ð½Ð¾Ñ€Ð¼Ð°Ð»Ð½Ð¸ Ð¿Ð¾Ñ‚ребители Ð´Ð¸Ñ€ÐµÐºÑ‚ен Ð´Ð¾Ñтъп Ð´Ð¾ Ð¼Ð¸ÑˆÐºÐ°Ñ‚а (позволи Ñамо X "
++"Ñървъра)"
+-#~ msgid "Allow httpd to access samba/cifs file systems"
+-#~ msgstr "Разрешаване Ð´Ð¾Ñтъп Ð½Ð° httpd Ð´Ð¾ samba/cifs Ñ„айлови ÑиÑтеми"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr "Позволи Ð¿Ð¾Ñ‚ребители Ð´Ð° Ñтартират ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚а dmesg"
+-#~ msgid "Allow httpd to access nfs file systems"
+-#~ msgstr "Разрешаване Ð´Ð¾Ñтъп Ð½Ð° httpd Ð´Ð¾ nfs Ñ„айлови ÑиÑтеми"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++"Позволи Ð¿Ð¾Ñ‚ребителите Ð´Ð° ÐºÐ¾Ð½Ñ‚ролират Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ Ð¸Ð½Ñ‚ерфейÑи (нужно Ðµ Ñъщо "
++"USERCTL=true)"
+-#~ msgid ""
+-#~ "Allow samba to act as the domain controller, add users, groups and change "
+-#~ "passwords"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° samba Ð´Ð° Ñ€Ð°Ð±Ð¾Ñ‚и ÐºÐ°Ñ‚о Ð´Ð¾Ð¼ÐµÐ¹Ð½ ÐºÐ¾Ð½Ñ‚ролер, Ð´Ð¾Ð±Ð°Ð²Ñ Ð¿Ð¾Ñ‚ребители, "
+-#~ "групи Ð¸ Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ð¸"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr "Позволи Ð½Ð¾Ñ€Ð¼Ð°Ð»ÐµÐ½ Ð¿Ð¾Ñ‚ребител Ð´Ð° Ñтартира ping"
+-#~ msgid "Allow Samba to share any file/directory read only"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Samba Ð´Ð° ÑподелѠвÑеки Ñ„айл/директориѠÑамо Ð·Ð° Ñ‡ÐµÑ‚ене"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr "Позволи Ð¿Ð¾Ñ‚ребител Ð´Ð° Ñ‡ÐµÑ‚е/пише noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgid "Allow Samba to share any file/directory read/write"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Samba Ð´Ð° ÑподелѠвÑеки Ñ„айл/директориѠза Ñ‡ÐµÑ‚ене/запиÑ"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr "Позволи Ð¿Ð¾Ñ‚ребителите Ð´Ð° Ñ‡ÐµÑ‚ат/пишат usb ÑƒÑтройÑтва"
+-#~ msgid ""
+-#~ "Allow Samba to run unconfined scripts in /var/lib/samba/scripts directory"
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Samba Ð´Ð° Ñтартира Ð½ÐµÐºÐ¾Ð½Ñ„игурирани Ñкриптове Ð² Ð´Ð¸Ñ€ÐµÐºÑ‚ориѠ/"
+-#~ "var/lib/samba/scripts"
+-
+-#~ msgid ""
+-#~ "Enable additional audit rules, that are normally not reported in the log "
+-#~ "files."
+-#~ msgstr ""
+-#~ "Разрешаване Ð½Ð° Ð´Ð¾Ð¿ÑŠÐ»Ð½Ð¸Ñ‚елните Ð¾Ð´Ð¸Ñ‚ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°, ÐºÐ¾Ð¸Ñ‚о Ð½Ð¾Ñ€Ð¼Ð°Ð»Ð½Ð¾ Ð½Ðµ Ñе "
+-#~ "рапортуват Ð²ÑŠÐ² Ñ„айловете Ð½Ð° Ð´Ð½ÐµÐ²Ð½Ð¸ÐºÐ°."
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++"Позволи Ð¿Ð¾Ñ‚ребители Ð´Ð° Ñтартират TCP Ñървъри (привързване ÐºÑŠÐ¼ Ð¿Ð¾Ñ€Ñ‚ове Ð¸ "
++"приемане Ð½Ð° Ð²Ñ€ÑŠÐ·ÐºÐ¸ Ð¾Ñ‚ Ñъщата Ñреда Ð¸ Ð²ÑŠÐ½ÑˆÐ½Ð¸ Ð¿Ð¾Ñ‚ребители)  Ð·Ð°Ð±Ñ€Ð°Ð½Ð°Ñ‚а Ð½Ð° Ñ‚ова "
++"налага FTP passive Ñ€ÐµÐ¶Ð¸Ð¼ Ð¸ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ Ð´Ñ€ÑƒÐ³Ð¸ Ð¿Ñ€Ð¾Ñ‚околи"
+-#~ msgid "Group/ungroup network ports by SELinux type."
+-#~ msgstr "Групиране/разгрупиране Ð½Ð° Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ‚е Ð¿Ð¾Ñ€Ñ‚ове Ð¿Ð¾ SELinux Ñ‚ип."
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr "Позволи Ð½Ð° Ð¿Ð¾Ñ‚ребител stat ttyfiles"
+-#~ msgid "Label Prefix"
+-#~ msgstr "ПрефикѠна ÐµÑ‚икета"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° uucpd"
+-#~ msgid "MLS/MCS Level"
+-#~ msgstr "MLS/MCS Ð½Ð¸Ð²Ð¾"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° vmware"
+-#~ msgid ""
+-#~ "Labeling\n"
+-#~ "Prefix"
+-#~ msgstr ""
+-#~ "ПрефикÑ\n"
+-#~ "на ÐµÑ‚икета"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° watchdog"
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Level"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS Ð½Ð¸Ð²Ð¾"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° winbind"
+-#~ msgid "You must be root to run %s."
+-#~ msgstr "Следва Ð´Ð° Ñте root Ð·Ð° Ð´Ð° Ñтартирате %s."
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° xdm"
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr "Позволи xdm Ð²Ð»Ð¸Ð·Ð°Ð½Ð¸Ñ ÐºÐ°Ñ‚о sysadm_r:sysadm_t"
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° xen"
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr "XEN"
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr "Позволи xen Ð´Ð° Ñ‡ÐµÑ‚е/пише Ñ„изичеÑки Ð´Ð¸Ñкови ÑƒÑтройÑтва"
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° xfs"
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° xen control"
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ypbind"
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° NIS Password"
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° ypserv"
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr "Забрани SELinux Ð·Ð°Ñ‰Ð¸Ñ‚ата Ð·Ð° Ð´ÐµÐ¼Ð¾Ð½Ð° NIS Transfer"
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++"Позволи SELinux webadm Ð¿Ð¾Ñ‚ребител Ð´Ð° ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñва Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸ Ð´Ð¸Ñ€ÐµÐºÑ‚ории Ð½Ð° "
++"непривилегировани Ð¿Ð¾Ñ‚ребители"
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++"Позволи SELinux webadm Ð¿Ð¾Ñ‚ребител Ð´Ð° Ñ‡ÐµÑ‚е Ð´Ð¾Ð¼Ð°ÑˆÐ½Ð¸ Ð´Ð¸Ñ€ÐµÐºÑ‚ории Ð½Ð° "
++"непривилегировани Ð¿Ð¾Ñ‚ребители"
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr "Сигурни Ð»Ð¸ Ñте, Ñ‡Ðµ Ð¸Ñкате Ð´Ð° Ð¸Ð·Ñ‚риете %s '%s'?"
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr "Изтрий %s"
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr "Добави %s"
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr "Промени %s"
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr "Permissive"
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr "Enforcing"
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr "СъÑтоÑние"
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++"ПроменÑйки Ñ‚ипа Ð¿Ð¾Ð»Ð¸Ñ‚ика, Ñ‰Ðµ Ð¿Ñ€ÐµÐ´Ð¸Ð·Ð²Ð¸ÐºÐ°Ñ‚е Ð¿Ñ€ÐµÐµÑ‚икетиране Ð½Ð° Ñ†Ñлата Ñ„айлова "
++"ÑиÑтема Ð¿Ñ€Ð¸ Ñледващото Ð·Ð°Ñ€ÐµÐ¶Ð´Ð°Ð½Ðµ. ÐŸÑ€ÐµÐµÑ‚икетирането Ð¾Ñ‚нема Ð´Ð¾Ñта Ð²Ñ€ÐµÐ¼Ðµ, Ð² "
++"завиÑимоÑÑ‚ Ð¾Ñ‚ Ð³Ð¾Ð»ÐµÐ¼Ð¸Ð½Ð°Ñ‚а Ð½Ð° Ñ„айловата ÑиÑтема.  Ð˜Ñкате Ð»Ð¸ Ð´Ð° Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸Ñ‚е?"
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++"ПромÑната ÐºÑŠÐ¼ Ð·Ð°Ð±Ñ€Ð°Ð½ÐµÐ½ SELinux Ð¸Ð·Ð¸Ñква Ñ€ÐµÑтартиране.  Ð¢Ð¾Ð²Ð° Ð½Ðµ Ñе "
++"препоръчва.  Ðко Ð¿Ð¾-къÑно Ñ€ÐµÑˆÐ¸Ñ‚е Ð´Ð° Ð°ÐºÑ‚ивирате SELinux, ÑиÑтемата Ñ‰Ðµ Ñ‚Ñ€Ñбва "
++"да Ð±ÑŠÐ´Ðµ Ð¿Ñ€ÐµÐµÑ‚икетирана.  Ðко Ð¿Ñ€Ð¾Ñто Ð¸Ñкате Ð´Ð° Ð²Ð¸Ð´Ð¸Ñ‚е Ð´Ð°Ð»Ð¸ SELinux Ðµ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ð° "
++"за Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ Ð² ÑиÑтемата Ð’и, Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¿Ñ€ÐµÐ¼Ð¸Ð½ÐµÑ‚е Ð² Ñ€ÐµÐ¶Ð¸Ð¼ permissive, ÐºÐ¾Ð¹Ñ‚о Ñамо "
++"ще Ñ€ÐµÐ³Ð¸Ñтрира Ð³Ñ€ÐµÑˆÐºÐ¸Ñ‚е, Ð±ÐµÐ· Ð´Ð° Ð½Ð°Ð»Ð°Ð³Ð° SELinux Ð¿Ð¾Ð»Ð¸Ñ‚ика.  Ð ÐµÐ¶Ð¸Ð¼ÑŠÑ‚ Permissive "
++"не Ð¸Ð·Ð¸Ñква Ñ€ÐµÑтартиране    Ð˜Ñкате Ð»Ð¸ Ð´Ð° Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸Ñ‚е?"
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++"ПромÑната ÐºÑŠÐ¼ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½ SELinux Ñ‰Ðµ Ð¿Ñ€ÐµÐ´Ð¸Ð·Ð²Ð¸ÐºÐ° Ð¿Ñ€ÐµÐµÑ‚икетиране Ð½Ð° Ñ†Ñлата "
++"файлова ÑиÑтема Ð¿Ñ€Ð¸ Ñледващото Ð·Ð°Ñ€ÐµÐ¶Ð´Ð°Ð½Ðµ. ÐŸÑ€ÐµÐµÑ‚икетирането Ð¾Ñ‚нема Ð´Ð¾Ñта "
++"време, Ð² Ð·Ð°Ð²Ð¸ÑимоÑÑ‚ Ð¾Ñ‚ Ð³Ð¾Ð»ÐµÐ¼Ð¸Ð½Ð°Ñ‚а Ð½Ð° Ñ„айловата ÑиÑтема.  Ð˜Ñкате Ð»Ð¸ Ð´Ð° "
++"продължите?"
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr "system-config-selinux"
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr "Добави SELinux ÑъответÑтвие Ð·Ð° Ð²Ð»Ð¸Ð·Ð°Ð½Ðµ"
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr "ДобавѠSELinux Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ Ð¿Ð¾Ñ€Ñ‚ове"
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr "SELinux Ñ‚ип"
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr "Файлова ÑпецификациÑ"
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr "Тип Ñ„айл"
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++"вÑички Ñ„айлове\n"
++"нормален Ñ„айл\n"
++"директориÑ\n"
++"знаково ÑƒÑÑ‚Ñ€.\n"
++"блоково ÑƒÑÑ‚Ñ€.\n"
++"Ñокет\n"
++"Ñимволна Ð²Ñ€ÑŠÐ·ÐºÐ°\n"
++"named pipe\n"
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr "MLS"
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr "ДобавѠSELinux Ð¿Ð¾Ñ‚ребител"
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr "SELinux Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑтрациÑ"
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr "Добави"
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr "_СвойÑтва"
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr "_Изтрий"
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr "Изберете Management Object"
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr "<b>Изберете:</b>"
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr "СиÑтемен Enforcing Ñ€ÐµÐ¶Ð¸Ð¼ Ð¿Ð¾ Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð±Ð¸Ñ€Ð°Ð½Ðµ"
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++"Забранен\n"
++"Permissive\n"
++"Enforcing\n"
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr "Текущ Enforcing Ñ€ÐµÐ¶Ð¸Ð¼"
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr "СиÑтемен Ñ‚ип Ð¿Ð¾Ð»Ð¸Ñ‚ика Ð¿Ð¾ Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð±Ð¸Ñ€Ð°Ð½Ðµ: "
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++"Изберете, Ð°ÐºÐ¾ Ð¸Ñкате Ð´Ð° Ð¿Ñ€ÐµÐµÑ‚икетирате Ñ‚огава Ñ†Ñлата Ñ„айлова ÑиÑтема Ð¿Ñ€Ð¸ "
++"Ñледващото Ð·Ð°Ñ€ÐµÐ¶Ð´Ð°Ð½Ðµ.  ÐŸÑ€ÐµÐµÑ‚икетирането Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¾Ñ‚неме Ð´Ð¾Ñта Ð²Ñ€ÐµÐ¼Ðµ, Ð² "
++"завиÑимоÑÑ‚ Ð¾Ñ‚ Ð³Ð¾Ð»ÐµÐ¼Ð¸Ð½Ð°Ñ‚а Ð½Ð° Ñ„айловата ÑиÑтема.  Ðко Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñте Ñ‚иповете "
++"политика Ð¸Ð»Ð¸ Ð¿Ñ€ÐµÐ¼Ð¸Ð½Ð°Ð²Ð°Ñ‚е Ð¾Ñ‚ Ð·Ð°Ð±Ñ€Ð°Ð½ÐµÐ½ ÐºÑŠÐ¼ enforcing, Ðµ Ð½ÐµÐ¾Ð±Ñ…одимо "
++"преетикетиране."
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr "Преетикетиране Ð¿Ñ€Ð¸ Ñледващото Ð·Ð°Ñ€ÐµÐ¶Ð´Ð°Ð½Ðµ"
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr "label37"
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr "Върни Ð±ÑƒÐ»ÐµÐ²Ð¸Ñ‚е Ð½Ð°Ñтройки ÐºÑŠÐ¼ Ñ‚ези Ð¿Ð¾ Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð±Ð¸Ñ€Ð°Ð½Ðµ"
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr "Превключва Ð¼ÐµÐ¶Ð´Ñƒ Ð˜Ð½Ð´Ð¸Ð²Ð¸Ð´ÑƒÐ°Ð»Ð½Ð¸ Ð¸ Ð’Ñички Ð±ÑƒÐ»ÐµÐ²Ð¸ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð¸"
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr "Филтър"
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr "label50"
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr "ДобавѠфайлов ÐºÐ¾Ð½Ñ‚екÑÑ‚"
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr "ПроменѠфайлов ÐºÐ¾Ð½Ñ‚екÑÑ‚"
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr "Изтрива Ñ„айлов ÐºÐ¾Ð½Ñ‚екÑÑ‚"
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr "Превключва Ð¼ÐµÐ¶Ð´Ñƒ Ð²Ñички Ð¸ Ð¸Ð½Ð´Ð¸Ð²Ð¸Ð´ÑƒÐ°Ð»ÐµÐ½ Ñ„айлов ÐºÐ¾Ð½Ñ‚екÑÑ‚"
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr "label38"
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr "Добави SELinux ÑъответÑтвие Ð½Ð° Ð¿Ð¾Ñ‚ребител"
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr "Промени SELinux ÑъответÑтвие Ð½Ð° Ð¿Ð¾Ñ‚ребител"
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr "Изтрий SELinux ÑъответÑтвие Ð½Ð° Ð¿Ð¾Ñ‚ребител"
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr "label39"
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr "ДобавѠпотребител"
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr "ПроменѠпотребител"
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr "Изтрива Ð¿Ð¾Ñ‚ребител"
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr "label41"
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr "ДобавѠмрежов Ð¿Ð¾Ñ€Ñ‚"
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr "Редактира Ð¼Ñ€ÐµÐ¶Ð¾Ð² Ð¿Ð¾Ñ€Ñ‚"
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr "Изтрива Ð¼Ñ€ÐµÐ¶Ð¾Ð² Ð¿Ð¾Ñ€Ñ‚"
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr "Превключва Ð¼ÐµÐ¶Ð´Ñƒ Ð˜Ð½Ð´Ð¸Ð²Ð¸Ð´ÑƒÐ°Ð»Ð½Ð¸ Ð¸ Ð’Ñички Ð¿Ð¾Ñ€Ñ‚ове"
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr "label42"
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr "Генерира Ð½Ð¾Ð² Ð¼Ð¾Ð´ÑƒÐ» Ñ Ð¿Ð¾Ð»Ð¸Ñ‚ика"
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr "Зарежда Ð¼Ð¾Ð´ÑƒÐ» Ñ Ð¿Ð¾Ð»Ð¸Ñ‚ика"
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr "Премахва Ð·Ð°Ñ€ÐµÐ¶Ð´Ð°ÐµÐ¼ Ð¼Ð¾Ð´ÑƒÐ» Ñ Ð¿Ð¾Ð»Ð¸Ñ‚ика"
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++"Разрешава/ЗабранÑва Ð´Ð¾Ð¿ÑŠÐ»Ð½Ð¸Ñ‚елни Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð·Ð° Ð½Ð°Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸Ðµ, ÐºÐ¾Ð¸Ñ‚о Ð½Ð¾Ñ€Ð¼Ð°Ð»Ð½Ð¾ Ð½Ðµ Ñе "
++"докладват Ð² Ð¶ÑƒÑ€Ð½Ð°Ð»Ð½Ð¸Ñ‚е Ñ„айлове."
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr "label44"
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr "Смени Ñ€ÐµÐ¶Ð¸Ð¼Ð° Ð½Ð° Ð¿Ñ€Ð¾Ñ†ÐµÑа Ð½Ð° permissive."
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr "Смени Ñ€ÐµÐ¶Ð¸Ð¼Ð° Ð½Ð° Ð¿Ñ€Ð¾Ñ†ÐµÑа Ð½Ð° enforcing"
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr "Домейн Ð½Ð° Ð¿Ñ€Ð¾Ñ†ÐµÑа"
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr "label59"
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr "ИзиÑква Ñе SELinux Ð¿Ð¾Ñ‚ребител '%s'"
+diff --git a/policycoreutils/po/bn.po b/policycoreutils/po/bn.po
+index afeaa9f..c63d0f4 100644
+--- a/policycoreutils/po/bn.po
++++ b/policycoreutils/po/bn.po
+@@ -1,21 +1,21 @@
+ # SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
+-#, fuzzy
++# Translators:
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-03-30 18:14+0000\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
++"Language-Team: Bengali <info@ankur.org.bd>\n"
++"Language: bn\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/bn_IN.po b/policycoreutils/po/bn_IN.po
+index a791a3d..fcd6ac2 100644
+--- a/policycoreutils/po/bn_IN.po
++++ b/policycoreutils/po/bn_IN.po
+@@ -1,26 +1,24 @@
+-# translation of policycoreutils.HEAD.po to Bengali INDIA
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+ #
+-# Runa Bhattacharjee <runab@redhat.com>, 2006.
+-# Runa Bhattacharjee <runabh@gmail.com>, 2007.
++# Translators:
+ # Runa Bhattacharjee <runab@fedoraproject.org>, 2008.
++# Runa Bhattacharjee <runabh@gmail.com>, 2007.
++# Runa Bhattacharjee <runab@redhat.com>, 2006, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-04-04 18:56+0530\n"
+-"Last-Translator: Runa Bhattacharjee <runab@fedoraproject.org>\n"
+-"Language-Team: Bengali INDIA <fedora-trans-bn_IN@redhat.com>\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Bengali (India) <anubad@lists.ankur.org.in>\n"
++"Language: bn_IN\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+-"\n"
+-"\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -115,9 +113,8 @@ msgid "Could not establish semanage connection"
+ msgstr "semanage à¦¸à¦‚যোগ à¦¸à§à¦¥à¦¾à¦ªà¦¨ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ MLS à¦°à§‡à¦žà§à¦œ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "MLS-র à¦¸à¦•à§à¦°à¦¿à§Ÿ à¦…বসà§à¦¥à¦¾ à¦ªà¦°à§€à¦•à§à¦·à¦¾ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -125,36 +122,33 @@ msgstr "বাসà§à¦¤à¦¬à¦¾à§Ÿà¦¿à¦¤ à¦¹à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage à¦Ÿà§à¦°à¦¾à¦¨à¦¸à§à¦¯à¦¾à¦•à¦¶à¦¨ à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦šà¦²à¦›à§‡"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "semanage à¦†à¦¦à¦¾à¦¨-পà§à¦°à¦¦à¦¾à¦¨ à¦†à¦°à¦®à§à¦­ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage à¦†à¦¦à¦¾à¦¨-পà§à¦°à¦¦à¦¾à¦¨ à¦†à¦°à¦®à§à¦­ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "semanage à¦†à¦¦à¦¾à¦¨-পà§à¦°à¦¦à¦¾à¦¨ à¦¸à¦®à¦¾à¦ªà§à¦¤ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦šà¦²à¦›à§‡ à¦¨à¦¾"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "SELinux à¦®à¦¡à¦¿à¦‰à¦²à§‡à¦° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "মডিউলের à¦¨à¦¾à¦®"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "সংসà§à¦•à¦°à¦£"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "Disabled (নিষà§à¦•à§à¦°à¦¿à§Ÿ)"
+@@ -164,9 +158,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "%s à¦­à§‚মিকাটি, %s'র à¦œà¦¨à§à¦¯ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -178,24 +172,22 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Permissive (সতরà§à¦•à¦¤à¦¾à¦®à§‚লক)"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Permissive (সতরà§à¦•à¦¤à¦¾à¦®à§‚লক)"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "permissive à¦¡à§‹à¦®à§‡à¦‡à¦¨ %s à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿ (মডিউল à¦‡à¦¨à¦¸à§à¦Ÿà¦² à¦•à¦°à¦¤à§‡ à¦¬à§à¦¯à¦°à§à¦¥)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "permissive à¦¡à§‹à¦®à§‡à¦‡à¦¨ %s à¦¸à¦°à¦¿à§Ÿà§‡ à¦«à§‡à¦²à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿ (অপসারণ à¦•à¦°à¦¤à§‡ à¦¬à§à¦¯à¦°à§à¦¥)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -215,9 +207,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦²à¦—-ইন à¦®à§à¦¯à¦¾à¦ªà¦¿à¦‚ à¦¬à§à¦¯à¦¬à¦¸à§à¦¥à¦¾ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à§Ÿà§‡à¦›à§‡ à¦•à¦¿à¦¨à¦¾ à¦ªà¦°à§€à¦•à§à¦·à¦¾ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ %s à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦¨à§‡à¦‡"
++msgstr "Linux à¦¦à¦² %s à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦¨à§‡à¦‡"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -286,15 +278,20 @@ msgid "Could not list login mappings"
+ msgstr "লগ-ইন à¦®à§à¦¯à¦¾à¦ªà¦¿à¦‚ à¦¤à¦¾à¦²à¦¿à¦•à¦¾à¦­à§à¦•à§à¦¤ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "লগ-ইন à¦¨à¦¾à¦®"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS à¦¸à§€à¦®à¦¾"
+@@ -312,9 +309,9 @@ msgid "Could not query user for %s"
+ msgstr "%s'র à¦œà¦¨à§à¦¯ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦•à§‹à§Ÿà§‡à¦°à¦¿ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦«à¦¾à¦‡à¦² context à¦¯à§‹à¦— à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s'র à¦…নà§à¦¤à¦¤ à¦à¦•à¦Ÿà¦¿ à¦­à§‚মিকা à¦¯à§‹à¦— à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -406,6 +403,7 @@ msgid "MCS Range"
+ msgstr "MCS à¦¸à§€à¦®à¦¾"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux à¦°à§‹à¦²"
+@@ -418,9 +416,8 @@ msgid "Port is required"
+ msgstr "পোরà§à¦Ÿ à¦‰à¦²à§à¦²à§‡à¦– à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "পà§à¦°à§‡à¦«à¦¿à¦•à§à¦¸ à¦¬à§ˆà¦§ à¦¨à§Ÿ %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -537,18 +534,17 @@ msgstr "SELinux à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° à¦§à¦°à¦¨"
+ msgid "Proto"
+ msgstr "পà§à¦°à§‹à¦Ÿà§‹"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "পোরà§à¦Ÿ à¦¸à¦‚খà§à¦¯à¦¾"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "পোরà§à¦Ÿ à¦‰à¦²à§à¦²à§‡à¦– à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•"
++msgstr "নোডের à¦ à¦¿à¦•à¦¾à¦¨à¦¾ à¦‰à¦²à§à¦²à§‡à¦– à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "পà§à¦°à§‹à¦Ÿà§‹à¦•à¦² à¦…জানা à¦…থবা à¦…নà§à¦ªà¦¸à§à¦¥à¦¿à¦¤"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -565,14 +561,14 @@ msgstr "%s'র à¦•à¦¿ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "পোরà§à¦Ÿ %s/%s à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à§Ÿà§‡à¦›à§‡ à¦•à¦¿à¦¨à¦¾ à¦ªà¦°à§€à¦•à§à¦·à¦¾ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "addr %s à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à§Ÿà§‡à¦›à§‡ à¦•à¦¿à¦¨à¦¾ à¦ªà¦°à§€à¦•à§à¦·à¦¾ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%s'র à¦œà¦¨à§à¦¯ à¦•à¦¿ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s-র à¦œà¦¨à§à¦¯ addr à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -581,74 +577,72 @@ msgid "Could not create context for %s"
+ msgstr "%s'র à¦œà¦¨à§à¦¯ context à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%s'র à¦¨à¦¾à¦® à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s-র à¦®à¦¾à¦¸à§à¦• à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦«à¦¾à¦‡à¦²à§‡à¦° context'ঠবà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ addr context'ঠবà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦«à¦¾à¦‡à¦²à§‡à¦° context'ঠভূমিকা à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ addr context'ঠভূমিকা à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦«à¦¾à¦‡à¦²à§‡à¦° context'ঠধরন à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ addr context'ঠধরন à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦«à¦¾à¦‡à¦²à§‡à¦° context'ঠmls à¦•à§à¦·à§‡à¦¤à§à¦° à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ addr context'ঠmls à¦•à§à¦·à§‡à¦¤à§à¦° à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦«à¦¾à¦‡à¦²à§‡à¦° context à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ addr context à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "%s/%s à¦ªà§‹à¦°à§à¦Ÿ à¦¯à§‹à¦— à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s addr à¦¯à§‹à¦— à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "%s/%s à¦ªà§‹à¦°à§à¦Ÿ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à§Ÿà¦¨à¦¿"
++msgstr "%s addr à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "%s/%s à¦ªà§‹à¦°à§à¦Ÿ à¦•à§‹à§Ÿà§‡à¦°à¦¿ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s addr à¦•à§‹à§Ÿà§‡à¦°à¦¿ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "%s/%s à¦ªà§‹à¦°à§à¦Ÿ à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s addr à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "%s/%s à¦ªà§‹à¦°à§à¦Ÿà¦Ÿà¦¿ à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿à¦° à¦®à¦§à§à¦¯à§‡ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à¦“য়ার à¦«à¦²à§‡ à¦…পসারণযোগà§à¦¯ à¦¨à§Ÿ"
++msgstr "%s addr à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿à¦° à¦®à¦§à§à¦¯à§‡ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à¦“য়ার à¦«à¦²à§‡ à¦…পসারণযোগà§à¦¯ à¦¨à§Ÿ"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "%s à¦®à§à¦›à§‡ à¦«à§‡à¦²à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s addr à¦®à§à¦›à§‡ à¦«à§‡à¦²à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦²à¦—-ইন à¦®à§à¦¯à¦¾à¦ªà¦¿à¦‚ à¦®à§à¦›à§‡ à¦«à§‡à¦²à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "পোরà§à¦Ÿà§‡à¦° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "addr-র à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -722,9 +716,8 @@ msgid "Could not delete interface %s"
+ msgstr "%s à¦ªà§à¦°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿ à¦®à§à¦›à§‡ à¦«à§‡à¦²à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "%s à¦ªà§à¦°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿ à¦®à§à¦›à§‡ à¦«à§‡à¦²à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -739,9 +732,9 @@ msgid "Context"
+ msgstr "কনটেকà§à¦¸à¦Ÿ"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s'র à¦«à¦¾à¦‡à¦² context à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦°à§Ÿà§‡à¦›à§‡"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -749,9 +742,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ %s à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦¨à§‡à¦‡"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -872,11 +865,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -895,14 +887,14 @@ msgid "Could not query file context %s"
+ msgstr "%s'র à¦«à¦¾à¦‡à¦² context à¦•à§‹à§Ÿà§‡à¦°à¦¿ à¦•à¦°à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "মান à¦‰à¦²à§à¦²à§‡à¦– à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•"
++msgstr "নিমà§à¦¨à¦²à¦¿à¦–িত à¦à¦•à¦Ÿà¦¿ à¦®à¦¾à¦¨ à¦‰à¦²à§à¦²à§‡à¦– à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "বà§à¦²à¦¿à§Ÿà¦¾à¦¨ %s à¦®à§à¦›à§‡ à¦«à§‡à¦²à¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿"
++msgstr "%s à¦¬à§à¦²à¦¿à§Ÿà§‡à¦¨à§‡à¦° à¦¸à¦•à§à¦°à¦¿à§Ÿ à¦®à¦¾à¦¨ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¤à§‡ à¦¬à§à¦¯à¦°à§à¦¥"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -912,7 +904,7 @@ msgstr "%s à¦¬à§à¦²à¦¿à§Ÿà¦¾à¦¨à§‡à¦° à¦®à¦¾à¦¨ à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "ভà§à¦² à¦¬à¦¿à¦¨à§à¦¯à¦¾à¦¸ %s: à¦°à§‡à¦•à¦°à§à¦¡ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -945,15 +937,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux à¦¬à§à¦²à¦¿à§Ÿà¦¾à¦¨"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "অবসà§à¦¥à¦¾"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "বিবরণ"
+@@ -1294,1677 +1286,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "বিকলà§à¦ª à¦¸à¦‚কà§à¦°à¦¾à¦¨à§à¦¤ à¦¤à§à¦°à§à¦Ÿà¦¿ %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "%s à¦–à§à¦²à¦¤à§‡ à¦¬à§à¦¯à¦°à§à¦¥: MLS-বিহীন à¦®à§‡à¦¶à¦¿à¦¨à§‡ à¦…নà§à¦¬à¦¾à¦¦ à¦¸à¦®à¦°à§à¦¥à¦¨ à¦•à¦°à¦¾ à¦¹à§Ÿ à¦¨à¦¾: %s"
+-
+-#~ msgid "Level"
+-#~ msgstr "সà§à¦¤à¦°"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦à§‡à¦° à¦®à¦§à§à¦¯à§‡ à¦¶à§‚ণà§à¦¯à¦¸à§à¦¥à¦¾à¦¨ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à¦¾ à¦¯à¦¾à¦¬à§‡ à¦¨à¦¾ '%s' "
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "সà§à¦¤à¦° à¦¬à§ˆà¦§ à¦¨à§Ÿ '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦à§‡à¦° à¦®à¦§à§à¦¯à§‡ %s à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¬à§à¦¯à¦¾à¦–à§à¦¯à¦¾ à¦•à¦°à¦¾ à¦¹à§Ÿà§‡à¦›à§‡"
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦à§‡à¦° à¦®à¦§à§à¦¯à§‡ %s'র à¦¬à§à¦¯à¦¾à¦–à§à¦¯à¦¾ à¦•à¦°à¦¾ à¦¹à§Ÿà¦¨à¦¿"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s'র à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦²à¦—-ইন à¦®à§à¦¯à¦¾à¦ªà¦¿à¦‚ à¦¬à§à¦¯à¦¬à¦¸à§à¦¥à¦¾ à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à§Ÿà§‡à¦›à§‡"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦®à§à¦¯à¦¾à¦ªà¦¾à¦° à¦¯à§‹à¦— à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ %s'র à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à§Ÿà§‡à¦›à§‡"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "পোরà§à¦Ÿ à¦‰à¦²à§à¦²à§‡à¦– à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "পোরà§à¦Ÿ %s/%s à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦†à¦›à§‡"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "%s à¦ªà§à¦°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿ à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦°à§Ÿà§‡à¦›à§‡"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "করà§à¦® init à¦•à¦°à¦¤à§‡ à¦¬à§à¦¯à¦°à§à¦¥, à¦ªà¦°à¦¿à¦¤à§à¦¯à¦¾à¦— à¦•à¦°à¦¾ à¦¹à¦šà§à¦›à§‡à¥¤\n"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "কà§à¦·à¦®à¦¤à¦¾ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¤à§‡ à¦¬à§à¦¯à¦°à§à¦¥, à¦ªà¦°à¦¿à¦¤à§à¦¯à¦¾à¦— à¦•à¦°à¦¾ à¦¹à¦šà§à¦›à§‡à¥¤\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS'র à¦®à¦¾à¦¨ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£ à¦•à¦°à¦¤à§‡ à¦¬à§à¦¯à¦°à§à¦¥, à¦ªà¦°à¦¿à¦¤à§à¦¯à¦¾à¦— à¦•à¦°à¦¾ à¦¹à¦šà§à¦›à§‡\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "কà§à¦·à¦®à¦¤à¦¾ drop à¦•à¦°à¦¤à§‡ à¦¬à§à¦¯à¦°à§à¦¥, à¦ªà¦°à¦¿à¦¤à§à¦¯à¦¾à¦— à¦•à¦°à¦¾ à¦¹à¦šà§à¦›à§‡à¥¤\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "SETUID à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ drop à¦•à¦°à¦¤à§‡ à¦¬à§à¦¯à¦°à§à¦¥, à¦ªà¦°à¦¿à¦¤à§à¦¯à¦¾à¦— à¦•à¦°à¦¾ à¦¹à¦šà§à¦›à§‡\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "caps à¦®à§à¦•à§à¦¤ à¦•à¦°à¦¤à§‡ à¦¬à§à¦¯à¦°à§à¦¥\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "MLS-বিহীন à¦®à§‡à¦¶à¦¿à¦¨à§‡ à¦…নà§à¦¬à¦¾à¦¦ à¦¸à¦®à¦°à§à¦¥à¦¨ à¦•à¦°à¦¾ à¦¹à§Ÿ à¦¨à¦¾"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "বà§à¦²à¦¿à§Ÿà¦¾à¦¨"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "সকল"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "সà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "ফাইল à¦²à§‡à¦¬à§‡à¦² à¦¬à§à¦¯à¦¬à¦¸à§à¦¥à¦¾"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "ফাইলের\n"
+-#~ "বৈশিষà§à¦Ÿà§à¦¯"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "ফাইলের à¦§à¦°à¦¨"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "ফাইল\n"
+-#~ "ধরন"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦®à§à¦¯à¦¾à¦ªà¦¿à¦‚"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "লগ-ইন\n"
+-#~ "নাম"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS à¦¸à§€à¦®à¦¾"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "লগ-ইন '%s' à¦†à¦¬à¦¶à§à¦¯à¦•"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "পলিসি à¦®à¦¡à¦¿à¦‰à¦²"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "অডিট à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "অডিট à¦¸à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "পলিসি à¦®à¦¡à¦¿à¦‰à¦² à¦²à§‹à¦¡ à¦•à¦°à§à¦¨"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat à§¨à§¦à§¦à§­"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "রà§à¦£à¦¾ à¦­à¦Ÿà§à¦Ÿà¦¾à¦šà¦¾à¦°à§à¦¯ (runab@redhat.com)"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux Policy à¦¨à¦¿à¦°à§à¦®à¦¾à¦£à§‡à¦° à¦¸à¦¾à¦®à¦—à§à¦°à§€"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ " SELinux à¦ªà§à¦°à§Ÿà§‹à¦—কারী à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦…থবা à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° confine à¦•à¦°à¦¤à§‡ à¦¬à§à¦¯à¦¬à¦¹à§ƒà¦¤ "
+-#~ "পলিসির à¦ªà¦°à¦¿à¦•à¦¾à¦ à¦¾à¦®à§‹ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£à§‡à¦° à¦œà¦¨à§à¦¯ à¦à¦‡ à¦¸à¦¾à¦®à¦—à§à¦°à§€ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à¦¾ à¦¯à¦¾à¦¬à§‡à¥¤\n"
+-#~ "\n"
+-#~ "à¦à¦‡ à¦¸à¦¾à¦®à¦—à§à¦°à§€ à¦ªà§à¦°à§Ÿà§‹à¦— à¦•à¦°à§‡ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à¦¾ à¦¯à¦¾à¦¬à§‡:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - à¦ªà¦²à¦¿à¦¸à¦¿ à¦•à¦®à§à¦ªà¦¾à¦‡à¦² à¦“ à¦‡à¦¨à¦¸à§à¦Ÿà¦² à¦•à¦°à¦¤à§‡ à¦¬à§à¦¯à¦¬à¦¹à§ƒà¦¤à¥¤"
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "আবদà§à¦§ à¦•à¦°à¦¾à¦° à¦œà¦¨à§à¦¯ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦­à§‚মিকা à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨à¥¤"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "বà§à¦Ÿ à¦•à¦°à¦¾à¦° à¦¸à¦®à§Ÿ init à¦¸à§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿà§‡à¦° à¦®à¦¾à¦§à§à¦¯à¦®à§‡ à¦†à¦°à¦®à§à¦­ à¦¹à¦“য়া à¦¡à§‡à¦®à¦¨à¦—à§à¦²à¦¿ à¦ªà§à¦°à¦®à¦¿à¦¤ Init à¦¡à§‡à¦®à¦¨ à¦¨à¦¾à¦®à§‡ "
+-#~ "পরিচিত। à¦¸à¦¾à¦§à¦¾à¦°à¦£à¦¤ /etc/rc.d/init.d-র à¦®à¦§à§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ à¦¸à§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦¥à¦¾à¦•à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•à¥¤"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "পà§à¦°à¦®à¦¿à¦¤ Init à¦¡à§‡à¦®à¦¨"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "Internet Services Daemon-র à¦¡à§‡à¦®à¦¨à¦—à§à¦²à¦¿ xinetd à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦†à¦°à¦®à§à¦­ à¦•à¦°à¦¾ à¦¹à§Ÿà¥¤"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Internet Services Daemon (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "ওয়েব à¦¸à¦¾à¦°à§à¦­à¦¾à¦° (apache) à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦†à¦°à¦®à§à¦­ à¦•à¦°à¦¾ à¦“য়েব à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ (CGI) CGI "
+-#~ "সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "ওয়েব à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦†à¦°à¦®à§à¦­ à¦•à¦°à¦¾ à¦•à§‹à¦¨à§‹ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¯à¦¾ à¦†à¦¬à¦¦à§à¦§ à¦•à¦°à¦¾à¦° à¦œà¦¨à§à¦¯ à¦šà¦¿à¦¹à§à¦¨à¦¿à¦¤ à¦¤à¦¾ "
+-#~ "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¨à¦¾à¦®à§‡ à¦ªà¦°à¦¿à¦šà¦¿à¦¤"
+-
+-#~ msgid "User Application"
+-#~ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦²à¦—-ইন</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦²à¦—-ইন à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦¤à¦¥à§à¦¯ à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°à§à¦¨à¥¤"
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦­à§‚মিকা"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "চিহà§à¦¨à¦¿à¦¤ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦Ÿà¦¾à¦°à§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦² à¦…থবা à¦¦à§‚রবরà§à¦¤à§€ à¦²à¦—-ইনের à¦®à¦¾à¦§à§à¦¯à¦®à§‡ à¦®à§‡à¦¶à¦¿à¦¨à§‡ à¦²à¦—-ইন à¦•à¦°à¦¤à§‡ "
+-#~ "পারবেন।  à¦¡à¦¿à¦«à¦²à§à¦Ÿà¦°à§‚পে, à¦à¦‡ à¦®à§‡à¦¶à¦¿à¦¨à§‡ à¦•à§‹à¦¨à§‹ setuid, à¦¨à§‡à¦Ÿà¦“য়ারà§à¦•, sudo à¦…থবা su à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ "
+-#~ "থাকবে à¦¨à¦¾"
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "সরà§à¦¬à¦¨à¦¿à¦®à§à¦¨ à¦Ÿà¦¾à¦°à§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦² à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦­à§‚মিকা"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "চিহà§à¦¨à¦¿à¦¤ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ X à¦…থবা à¦Ÿà¦¾à¦°à§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡à¦° à¦®à¦¾à¦§à§à¦¯à¦®à§‡ à¦®à§‡à¦¶à¦¿à¦¨à§‡ à¦²à¦—-ইন à¦•à¦°à¦¤à§‡ à¦ªà¦¾à¦°à¦¬à§‡à¦¨à¥¤  "
+-#~ "ডিফলà§à¦Ÿà¦°à§‚পে, à¦à¦‡ à¦®à§‡à¦¶à¦¿à¦¨à§‡ à¦•à§‹à¦¨à§‹ setuid, à¦¨à§‡à¦Ÿà¦“য়ারà§à¦•, sudo à¦…থবা su à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦¥à¦¾à¦•à¦¬à§‡ à¦¨à¦¾"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "সরà§à¦¬à¦¨à¦¿à¦®à§à¦¨ X Windows à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦­à§‚মিকা"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "সমà§à¦ªà§‚রà§à¦£ à¦¨à§‡à¦Ÿà¦“য়ারà§à¦•, à¦°à§‚পানà§à¦¤à¦°à¦¬à¦¿à¦¹à§€à¦¨ setuid à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¬à¦¿à¦¨à¦¾, su à¦¬à¦¿à¦¨à¦¾ à¦“ sudo à¦¬à¦¿à¦¨à¦¾ "
+-#~ "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦­à§‚মিকা।"
+-
+-#~ msgid "User Role"
+-#~ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦­à§‚মিকা"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "সমà§à¦ªà§‚রà§à¦£ à¦¨à§‡à¦Ÿà¦“য়ারà§à¦•, à¦°à§‚পানà§à¦¤à¦°à¦¬à¦¿à¦¹à§€à¦¨ setuid à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¬à¦¿à¦¨à¦¾ à¦“ su à¦¬à¦¿à¦¨à¦¾ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ "
+-#~ "ভূমিকা। sudo à¦¸à¦¹à¦¯à§‹à¦—ে root à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦ªà§à¦°à¦¶à¦¾à¦¸à¦¨à¦¿à¦• à¦­à§‚মিকা à¦ªà§à¦°à§Ÿà§‹à¦— à¦•à¦°à¦¾ à¦¯à¦¾à¦¬à§‡à¥¤"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "অà§à¦¯à¦¾à¦¡à¦®à¦¿à¦¨ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦­à§‚মিকা"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>root à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€</b>"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "à¦à¦‡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦¦à§à¦¬à¦¾à¦°à¦¾ root à¦ªà¦°à¦¿à¦šà§Ÿà§‡ à¦®à§‡à¦¶à¦¿à¦¨ à¦ªà¦°à¦¿à¦šà¦¾à¦²à¦¨à¦¾ à¦•à¦°à¦¾ à¦¹à¦²à§‡ 'Root à¦ªà§à¦°à¦¶à¦¾à¦¸à¦¨à¦¿à¦• "
+-#~ "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦­à§‚মিকা' à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨à¥¤ à¦¸à¦¿à¦¸à§à¦Ÿà§‡à¦®à§‡, à¦à¦‡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦¸à¦°à¦¾à¦¸à¦°à¦¿ à¦²à¦—-ইন à¦•à¦°à¦¤à§‡ "
+-#~ "সকà§à¦·à¦® à¦¹à¦¬à§‡à¦¨ à¦¨à¦¾à¥¤"
+-
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Root à¦ªà§à¦°à¦¶à¦¾à¦¸à¦¨à¦¿à¦• à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦­à§‚মিকা"
+-
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "confine à¦•à¦°à¦¾à¦° à¦œà¦¨à§à¦¯ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦…থবা à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦¨à¦¾à¦® à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨à¥¤"
+-
+-#~ msgid "Name"
+-#~ msgstr "নাম"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "confine à¦•à¦°à¦¾à¦° à¦œà¦¨à§à¦¯ à¦à¦•à§à¦¸à§‡à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦¿à¦²à§‡à¦° à¦¸à¦®à§à¦ªà§‚রà§à¦£ à¦ªà¦¾à¦¥ à¦²à¦¿à¦–à§à¦¨à¥¤"
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "confine à¦•à¦°à¦¾ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦…থবা à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦­à§‚মিকার à¦¸à§à¦¬à¦¤à¦¨à§à¦¤à§à¦° à¦¨à¦¾à¦® à¦²à¦¿à¦–à§à¦¨à¥¤"
+-
+-#~ msgid "Executable"
+-#~ msgstr "à¦à¦•à§à¦¸à§‡à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦²"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Init à¦¸à§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr "confine à¦•à¦°à¦¾ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦†à¦°à¦®à§à¦­à§‡à¦° à¦œà¦¨à§à¦¯ init à¦¸à§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿà§‡à¦° à¦¸à¦®à§à¦ªà§‚রà§à¦£ à¦ªà¦¾à¦¥ à¦²à¦¿à¦–à§à¦¨à¥¤"
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "সà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦£à§‡à¦° à¦œà¦¨à§à¦¯ à¦ªà§à¦°à¦¯à§‹à¦œà§à¦¯ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦­à§‚মিকা à¦šà¦¿à¦¹à§à¦¨à¦¿à¦¤ à¦•à¦°à§à¦¨"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr ""
+-#~ "চিহà§à¦¨à¦¿à¦¤ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¡à§‹à¦®à§‡à¦‡à¦¨à§‡à¦° à¦®à¦§à§à¦¯à§‡ à¦°à§‚পানà§à¦¤à¦°à¦¯à§‹à¦—à§à¦¯ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦­à§‚মিকা à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "à¦à¦‡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦­à§‚মিকা à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦°à§‚পানà§à¦¤à¦°à§‡à¦° à¦œà¦¨à§à¦¯ à¦…তিরিকà§à¦¤ à¦¡à§‹à¦®à§‡à¦‡à¦¨ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "চিহà§à¦¨à¦¿à¦¤ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦­à§‚মিকা à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¡à§‹à¦®à§‡à¦‡à¦¨à§‡ à¦°à§‚পানà§à¦¤à¦° à¦•à¦°à¦¾ à¦¸à¦®à§à¦­à¦¬ "
+-#~ "হবে à¦¤à¦¾ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨à¥¤"
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "চিহà§à¦¨à¦¿à¦¤ à¦¡à§‹à¦®à§‡à¦‡à¦¨à§‡à¦° à¦®à¦§à§à¦¯à§‡ à¦°à§‚পানà§à¦¤à¦°à¦¯à§‹à¦—à§à¦¯ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦­à§‚মিকা à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
+-
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr ""
+-#~ "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ à¦…তিরিকà§à¦¤ à¦¡à§‹à¦®à§‡à¦‡à¦¨ à¦ªà¦°à¦¿à¦šà¦¾à¦²à¦¿à¦¤ à¦¹à¦¬à§‡ à¦¸à§‡à¦—à§à¦²à¦¿ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
+-
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "চিহà§à¦¨à¦¿à¦¤ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦ªà¦°à¦¿à¦šà¦¾à¦²à¦¨à¦¾à¦° à¦‰à¦¦à§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦¡à§‹à¦®à§‡à¦‡à¦¨ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨à¥¤"
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "চিহà§à¦¨à¦¿à¦¤ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦œà¦¨à§à¦¯ à¦…তিরিকà§à¦¤ à¦­à§‚মিকা à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
+-
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr ""
+-#~ "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦­à§‚মিকা à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ à¦¨à§‡à¦Ÿà¦“য়ারà§à¦• à¦ªà§‹à¦°à§à¦Ÿà§‡ à¦…পেকà§à¦·à¦¾ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
+-
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP à¦ªà§‹à¦°à§à¦Ÿ</b>"
+-
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "confine à¦•à¦°à¦¾ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦¯à§‡ à¦•à§‹à¦¨à§‹ udp à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° à¦¸à¦¾à¦¥à§‡ bind à¦•à¦°à¦¾à¦° "
+-#~ "সà§à¦¯à§‹à¦— à¦¦à§‡à§Ÿà¥¤"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "সকল"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° 0 à¦ªà§à¦°à§Ÿà§‹à¦— à¦•à¦°à§‡ bindresvport à¦•à¦² à¦•à¦°à¦¾à¦° à¦¸à§à¦¯à§‹à¦— à¦¦à§‡à¦“য়া à¦¹à¦¬à§‡à¥¤ "
+-#~ "পোরà§à¦Ÿ à¦¸à¦‚খà§à¦¯à¦¾ à§¬à§¦à§¦-১০২৪-র à¦¸à¦¾à¦¥à§‡ bind à¦•à¦°à¦¾ à¦¹à¦¬à§‡à¥¤"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦­à§‚মিকা à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ udp à¦ªà§‹à¦°à§à¦Ÿ à¦…থবা à¦ªà§‹à¦°à§à¦Ÿ à¦¸à§€à¦®à¦¾à¦° à¦®à¦§à§à¦¯à§‡ "
+-#~ "উপসà§à¦¥à¦¿à¦¤ à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° à¦¸à¦¾à¦¥à§‡ à¦¬à¦¾à¦‡à¦¨à§à¦¡ à¦•à¦°à¦¤à§‡ à¦¸à¦•à§à¦·à¦® à¦¹à¦¬à§‡ à¦¸à§‡à¦—à§à¦²à¦¿à¦° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à§à¦¨ à¦“ à¦•à¦®à¦¾ "
+-#~ "চিহà§à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¬à¦¿à¦­à¦¾à¦œà¦¨ à¦•à¦°à§à¦¨à¥¤ à¦‰à¦¦à¦¾à¦¹à¦°à¦£à¦¸à§à¦¬à¦°à§‚প: 612, 650-660"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "অসংরকà§à¦·à¦¿à¦¤ à¦ªà§‹à¦°à§à¦Ÿ (>1024)"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ à¦ªà§‹à¦°à§à¦Ÿ"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° 1024-র à¦…ধিক à¦¯à§‡ à¦•à§‹à¦¨à§‹ udp à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° à¦¸à¦¾à¦¥à§‡ bind à¦•à¦°à¦¾à¦° "
+-#~ "সà§à¦¯à§‹à¦— à¦¦à§‡à¦“য়া à¦¹à§Ÿà¥¤"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP à¦ªà§‹à¦°à§à¦Ÿ</b>"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦­à§‚মিকা à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ à¦¨à§‡à¦Ÿà¦“য়ারà§à¦• à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° à¦¸à¦¾à¦¥à§‡ à¦¸à¦‚যোগ "
+-#~ "সà§à¦¥à¦¾à¦ªà¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦­à§‚মিকা à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ tcp à¦ªà§‹à¦°à§à¦Ÿ à¦…থবা à¦ªà§‹à¦°à§à¦Ÿ à¦¸à§€à¦®à¦¾à¦° à¦®à¦§à§à¦¯à§‡ "
+-#~ "উপসà§à¦¥à¦¿à¦¤ à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° à¦¸à¦¾à¦¥à§‡ à¦¸à¦‚যোগ à¦•à¦°à¦¤à§‡ à¦¸à¦•à§à¦·à¦® à¦¹à¦¬à§‡ à¦¸à§‡à¦—à§à¦²à¦¿à¦° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à§à¦¨ à¦“ à¦•à¦®à¦¾ "
+-#~ "চিহà§à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¬à¦¿à¦­à¦¾à¦œà¦¨ à¦•à¦°à§à¦¨à¥¤ à¦‰à¦¦à¦¾à¦¹à¦°à¦£à¦¸à§à¦¬à¦°à§‚প: 612, 650-660"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦­à§‚মিকা à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ udp à¦ªà§‹à¦°à§à¦Ÿ à¦…থবা à¦ªà§‹à¦°à§à¦Ÿ à¦¸à§€à¦®à¦¾à¦° à¦®à¦§à§à¦¯à§‡ "
+-#~ "উপসà§à¦¥à¦¿à¦¤ à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° à¦¸à¦¾à¦¥à§‡ à¦¸à¦‚যোগ à¦•à¦°à¦¤à§‡ à¦¸à¦•à§à¦·à¦® à¦¹à¦¬à§‡ à¦¸à§‡à¦—à§à¦²à¦¿à¦° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à§à¦¨ à¦“ à¦•à¦®à¦¾ "
+-#~ "চিহà§à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¬à¦¿à¦­à¦¾à¦œà¦¨ à¦•à¦°à§à¦¨à¥¤ à¦‰à¦¦à¦¾à¦¹à¦°à¦£à¦¸à§à¦¬à¦°à§‚প: 612, 650-660"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Select common application traits"
+-#~ msgstr "সাধারণ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨à§‡à¦° à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "syslog à¦¬à¦¾à¦°à§à¦¤à¦¾ à¦²à§‡à¦–া à¦¹à§Ÿ\t"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "/tmp-র à¦®à¦§à§à¦¯à§‡ à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦…সà§à¦¥à¦¾à§Ÿà§€ à¦«à¦¾à¦‡à¦² à¦¨à¦¿à¦°à§à¦®à¦¾à¦£/পরিবরà§à¦¤à¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "অনà§à¦®à§‹à¦¦à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ Pam à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "nsswitch à¦…থবা getpw* à¦•à¦² à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à¦¾ à¦¹à§Ÿ"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Uses dbus"
+-#~ msgstr "dbus à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à¦¾ à¦¹à§Ÿ"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Sends audit messages"
+-#~ msgstr "অডিট à¦¸à¦‚কà§à¦°à¦¾à¦¨à§à¦¤ à¦¬à¦¾à¦°à§à¦¤à¦¾ à¦ªà¦¾à¦ à¦¾à¦¨à§‹ à¦¹à§Ÿ"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡à¦° à¦¸à¦¾à¦¥à§‡ à¦¯à§‹à¦—াযোগ"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Sends email"
+-#~ msgstr "ই-মেইল à¦¬à¦¾à¦°à§à¦¤à¦¾ à¦ªà¦¾à¦ à¦¾à¦¨à§‹ à¦¹à§Ÿ"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦ªà¦°à¦¿à¦šà¦¾à¦²à¦¿à¦¤ à¦«à¦¾à¦‡à¦²/ডিরেকà§à¦Ÿà¦°à¦¿ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ à¦«à¦¾à¦‡à¦²/ডিরেকà§à¦Ÿà¦°à¦¿à¦¤à§‡ \"Write\" à¦²à¦¿à¦–তে à¦ªà¦¾à¦°à¦¬à§‡ à¦¸à§‡à¦—à§à¦²à¦¿à¦° à¦¨à¦¾à¦® à¦¯à§‹à¦— "
+-#~ "করà§à¦¨à¥¤ Pid à¦«à¦¾à¦‡à¦², à¦²à¦— à¦«à¦¾à¦‡à¦², /var/lib à¦«à¦¾à¦‡à¦² ..."
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¬à§à¦¯à¦¬à¦¹à§ƒà¦¤ à¦¬à§à¦²à¦¿à§Ÿà¦¾à¦¨ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "কনফাইন à¦•à¦°à¦¾ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦œà¦¨à§à¦¯ à¦ªà§à¦°à§Ÿà§‹à¦— à¦¹à¦“য়া à¦¬à§à¦²à¦¿à§Ÿà¦¾à¦¨ à¦¯à§‹à¦— à¦•à¦°à§à¦¨/মà§à¦›à§‡ à¦«à§‡à¦²à§à¦¨"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "নিয়মনীতি à¦¨à¦¿à¦°à§à¦®à¦¾à¦£à§‡à¦° à¦œà¦¨à§à¦¯ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Policy Directory"
+-#~ msgstr "নিয়মনীতির à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "উৎপনà§à¦¨ à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿à¦° à¦«à¦¾à¦‡à¦²"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "বà§à¦²à¦¿à§Ÿà¦¾à¦¨ à¦¡à¦¾à§Ÿà¦²à¦— à¦¯à§‹à¦— à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Boolean Name"
+-#~ msgstr "বà§à¦²à¦¿à§Ÿà¦¾à¦¨ à¦¨à¦¾à¦®"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Role"
+-#~ msgstr "Role"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Existing_User"
+-#~ msgstr "উপসà§à¦¥à¦¿à¦¤_বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Application"
+-#~ msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ à¦¹à¦“য়া à¦†à¦¬à¦¶à§à¦¯à¦•"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "You must select a user"
+-#~ msgstr "à¦à¦•à¦Ÿà¦¿ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "confine à¦•à¦°à¦¾à¦° à¦‰à¦¦à§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à§à¦¸à¦¿à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦¿à¦² à¦«à¦¾à¦‡à¦² à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "confine à¦•à¦°à¦¾à¦° à¦‰à¦¦à§à¦¦à§‡à¦¶à§à¦¯à§‡ init script à¦«à¦¾à¦‡à¦² à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨à¥¤"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "কনফাইন à¦•à¦°à¦¾ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¨à¦¿à¦°à§à¦®à¦¿à¦¤ à¦…থবা à¦²à§‡à¦–া à¦«à¦¾à¦‡à¦² à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "কনফাইন à¦•à¦°à¦¾ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨à§‡à¦° à¦®à¦¾à¦²à¦¿à¦•à¦¾à¦¨à¦¾à¦§à§€à¦¨ à¦…থবা à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦²à¦¿à¦–নযোগà§à¦¯ "
+-#~ "ডিরেকà§à¦Ÿà¦°à¦¿ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "নিয়মনীতি à¦¸à¦‚কà§à¦°à¦¾à¦¨à§à¦¤ à¦«à¦¾à¦‡à¦² à¦¨à¦¿à¦°à§à¦®à¦¾à¦£à§‡à¦° à¦œà¦¨à§à¦¯ à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "বরà§à¦¤à¦®à¦¾à¦¨ à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿à¦° à¦®à¦§à§à¦¯à§‡ %s_t à¦§à¦°à¦¨ à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¬à§à¦¯à¦¾à¦–à§à¦¯à¦¾ à¦•à¦°à¦¾ à¦¹à§Ÿà§‡à¦›à§‡à¥¤\n"
+-#~ "à¦à¦—িয়ে à¦¯à§‡à¦¤à§‡ à¦‡à¦šà§à¦›à§à¦• à¦•à¦¿?"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Verify Name"
+-#~ msgstr "নাম à¦ªà¦°à§€à¦•à§à¦·à¦£"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "বরà§à¦¤à¦®à¦¾à¦¨ à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿à¦° à¦®à¦§à§à¦¯à§‡ %s.pp à¦®à¦¡à¦¿à¦‰à¦² à¦¬à¦°à§à¦¤à¦®à¦¾à¦¨à§‡ à¦¬à§à¦¯à¦¾à¦–à§à¦¯à¦¾ à¦•à¦°à¦¾ à¦¹à§Ÿà§‡à¦›à§‡à¥¤\n"
+-#~ "à¦à¦—িয়ে à¦¯à§‡à¦¤à§‡ à¦‡à¦šà§à¦›à§à¦• à¦•à¦¿?"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "নাম à¦‰à¦²à§à¦²à§‡à¦– à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "You must enter a executable"
+-#~ msgstr "à¦à¦•à§à¦¸à§‡à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦² à¦‰à¦²à§à¦²à§‡à¦– à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux à¦•à¦¨à¦«à¦¿à¦—ার à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr ""
+-#~ "পোরà§à¦Ÿ à¦¸à¦‚খà§à¦¯à¦¾à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ 1 à¦¥à§‡à¦•à§‡ %d-র à¦®à¦§à§à¦¯à§‡ à¦¸à¦‚খà§à¦¯à¦¾ à¦…থবা à¦¸à¦‚খà§à¦¯à¦¾à¦®à¦¾à¦²à¦¾ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦• "
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "কনফাইন à¦•à¦°à¦¾ à¦ªà§à¦°à¦¸à§‡à¦¸/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦œà¦¨à§à¦¯ à¦¨à¦¾à¦® à¦²à§‡à¦–া à¦†à¦¬à¦¶à§à¦¯à¦•"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "USER à¦§à¦°à¦¨à¦Ÿà¦¿ à¦…নà§à¦®à§‹à¦¦à¦¿à¦¤ à¦à¦•à§à¦¸à§‡à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦² à¦¨à§Ÿ"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° DAEMON à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ init à¦¸à§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à¦¾ à¦¯à¦¾à¦¬à§‡"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog-র à¦®à¦¾à¦¨ à¦¬à§à¦²à¦¿à§Ÿà¦¾à¦¨ à¦¹à¦“য়া à¦†à¦¬à¦¶à§à¦¯à¦• "
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "USER à¦§à¦°à¦¨à§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¸à§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে tmp à¦§à¦°à¦¨ à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "কনফাইন à¦•à¦°à¦¾ à¦ªà§à¦°à¦¸à§‡à¦¸à§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦à¦•à§à¦¸à§‡à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦²à§‡à¦° à¦ªà¦¾à¦¥ à¦‰à¦²à§à¦²à§‡à¦– à¦•à¦°à¦¾ à¦†à¦¬à¦¶à§à¦¯à¦•"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "ধরন à¦ªà§à¦°à§Ÿà§‹à¦—কারী à¦«à¦¾à¦‡à¦²"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "ইনà§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ à¦¸à¦‚কà§à¦°à¦¾à¦¨à§à¦¤ à¦«à¦¾à¦‡à¦²"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "ফাইল à¦•à¦¨à¦Ÿà§‡à¦•à§à¦¸à¦Ÿà§‡à¦° à¦«à¦¾à¦‡à¦²"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "পà§à¦°à¦¸à§à¦¤à§à¦¤à¦¿à¦° à¦¸à§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux à¦ªà§‹à¦°à§à¦Ÿ\n"
+-#~ "ধরন"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "পà§à¦°à§‹à¦Ÿà§‹à¦•à¦²"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "সà§à¦¤à¦°"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "পোরà§à¦Ÿ"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "\"%s\" à¦ªà§‹à¦°à§à¦Ÿ à¦¸à¦‚খà§à¦¯à¦¾ à¦¬à§ˆà¦§ à¦¨à§Ÿà¥¤  0 < à¦ªà§‹à¦°à§à¦Ÿ_সংখà§à¦¯à¦¾ < 65536 "
+-
+-#~ msgid "List View"
+-#~ msgstr "তালিকা à¦…নà§à¦¸à¦¾à¦°à§‡ à¦ªà§à¦°à¦¦à¦°à§à¦¶à¦¨"
+-
+-#~ msgid "Group View"
+-#~ msgstr "সংকলন à¦…নà§à¦¯à¦¾à§Ÿà§€ à¦ªà§à¦°à¦¦à¦°à§à¦¶à¦¨"
+-
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux Service Protection"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "acct-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "অà§à¦¯à¦¾à¦¡à¦®à¦¿à¦¨"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "সরà§à¦¬à¦§à¦°à¦¨à§‡à¦° à¦¡à§‡à¦®à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ /-র à¦®à¦§à§à¦¯à§‡ corefile à¦²à§‡à¦–ার à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "সরà§à¦¬à¦§à¦°à¦¨à§‡à¦° à¦¡à§‡à¦®à¦¨à¦•à§‡ à¦…বà§à¦¯à¦¬à¦¹à§ƒà¦¤ ttys à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° à¦•à§à¦·à¦®à¦¤à¦¾ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦…ধিকার"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "gadmin SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦…à§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ "
+-#~ "(home) à¦…থবা /tmp à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿à¦° à¦®à¦§à§à¦¯à§‡ à¦«à¦¾à¦‡à¦² à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "guest SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦…à§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ "
+-#~ "(home) à¦…থবা /tmp à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿à¦° à¦®à¦§à§à¦¯à§‡ à¦«à¦¾à¦‡à¦² à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "মেমরি à¦¸à¦‚রকà§à¦·à¦£"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "java à¦à¦•à§à¦¸à§‡à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦² à¦¸à§à¦Ÿà§à¦¯à¦¾à¦•à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Mount"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "mount à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¯à§‡ à¦•à§‹à¦¨à§‹ à¦«à¦¾à¦‡à¦² à¦®à¦¾à¦‰à¦¨à§à¦Ÿ à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "mount à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¯à§‡ à¦•à§‹à¦¨à§‹ à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ à¦®à¦¾à¦‰à¦¨à§à¦Ÿ à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "mplayer à¦à¦•à§à¦¸à§‡à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦² à¦¸à§à¦Ÿà§à¦¯à¦¾à¦•à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "ssh à¦¦à§à¦¬à¦¾à¦°à¦¾ ssh-keysign à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦¦à§‡à¦“য়া à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "staff SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦…à§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ "
+-#~ "(home) à¦…থবা /tmp à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿à¦° à¦®à¦§à§à¦¯à§‡ à¦«à¦¾à¦‡à¦² à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "sysadm SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦…à§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ "
+-#~ "(home) à¦…থবা /tmp à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿à¦° à¦®à¦§à§à¦¯à§‡ à¦«à¦¾à¦‡à¦² à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "আন-কনফাইন à¦•à¦°à¦¾ SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦…à§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত "
+-#~ "ডিরেকà§à¦Ÿà¦°à¦¿ (home) à¦…থবা /tmp à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿à¦° à¦®à¦§à§à¦¯à§‡ à¦«à¦¾à¦‡à¦² à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "নেটওয়ারà§à¦• à¦•à¦¨à¦«à¦¿à¦—ারেশন"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "লেবেল à¦¬à¦¿à¦¹à§€à¦¨ à¦ªà§à¦¯à¦¾à¦•à§‡à¦Ÿà¦—à§à¦²à¦¿ à¦¨à§‡à¦Ÿà¦“য়ারà§à¦•à§‡à¦° à¦®à¦§à§à¦¯à§‡ à¦šà¦²à¦¾à¦šà¦²à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "user SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦…à§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ "
+-#~ "(home) à¦…থবা /tmp à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿à¦° à¦®à¦§à§à¦¯à§‡ à¦«à¦¾à¦‡à¦² à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr ""
+-#~ "আন-কনফাইন à¦•à¦°à¦¾ à¦¸à¦¾à¦®à¦—à§à¦°à§€ unconfined_execmem-ঠdyntrans à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ "
+-#~ "হবে"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "ডাটাবেস"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° mysql à¦¸à¦•à§‡à¦Ÿà§‡à¦° à¦¸à¦¾à¦¥à§‡ à¦¸à¦‚যোগ à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° postgres à¦¸à¦•à§‡à¦Ÿà§‡à¦° à¦¸à¦¾à¦¥à§‡ à¦¸à¦‚যোগ à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿà¦¦à§‡à¦°à¦•à§‡ X à¦¶à§‡à§Ÿà¦¾à¦° à¦®à§‡à¦®à¦°à¦¿à¦¤à§‡ à¦²à§‡à¦–ার à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "xguest SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦…à§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ "
+-#~ "(home) à¦…থবা /tmp à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿à¦° à¦®à¦§à§à¦¯à§‡ à¦«à¦¾à¦‡à¦² à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "NIS-র à¦¸à¦¾à¦¥à§‡ à¦¡à§‡à¦®à¦¨ à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦¦à§‡à¦“য়া à¦¹à¦¬à§‡"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "ওয়েব à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "staff SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦•à§‡ à¦“য়েব à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦° à¦¡à§‹à¦®à§‡à¦‡à¦¨à§‡à¦° à¦®à¦§à§à¦¯à§‡ à¦°à§‚পানà§à¦¤à¦° à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "sysadm SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦•à§‡ à¦“য়েব à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦° à¦¡à§‹à¦®à§‡à¦‡à¦¨à§‡à¦° à¦®à¦§à§à¦¯à§‡ à¦°à§‚পানà§à¦¤à¦° à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "user SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦•à§‡ à¦“য়েব à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦° à¦¡à§‹à¦®à§‡à¦‡à¦¨à§‡à¦° à¦®à¦§à§à¦¯à§‡ à¦°à§‚পানà§à¦¤à¦° à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "xguest SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦•à§‡ à¦“য়েব à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦° à¦¡à§‹à¦®à§‡à¦‡à¦¨à§‡à¦° à¦®à¦§à§à¦¯à§‡ à¦°à§‚পানà§à¦¤à¦° à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr ""
+-#~ "staff à¦“য়েব à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦° à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত (home) à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿à¦° à¦®à¦§à§à¦¯à§‡ à¦²à§‡à¦–ার à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ "
+-#~ "করা à¦¹à¦¬à§‡"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "amanda-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "amavis-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "apmd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "arpwatch à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "auditd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "automount à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "avahi-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "bluetooth à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "canna à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "cardmgr à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Cluster Server-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "cdrecord à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¬à¦¿à¦¬à¦¿à¦§ à¦¬à¦¸à§à¦¤à§ à¦ªà¦¾à¦ à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡à¥¤ nfs, samba, "
+-#~ "অপসারণযোগà§à¦¯ à¦¡à¦¿à¦­à¦¾à¦‡à¦¸, user temp à¦“ à¦…বিশà§à¦¬à¦¸à§à¦¤ à¦¤à¦¥à§à¦¯ à¦¸à¦¹ à¦«à¦¾à¦‡à¦²"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ciped à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "clamd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "clamscan-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "clvmd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "comsat à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "courier à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "cpucontrol à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "cpuspeed à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "পà§à¦°à¦¿à¦¨à§à¦Ÿ à¦¬à§à¦¯à¦¬à¦¸à§à¦¥à¦¾"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "cupsd à¦¬à§à¦¯à¦¾à¦•-à¦à¦¨à§à¦¡ à¦¸à¦¾à¦°à§à¦­à¦¾à¦°à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "cupsd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "cupsd_lpd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "cvs à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "cyrus à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "dbskkd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "dbusd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "dccd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "dccifd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "dccm-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ddt à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "devfsd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "dhcpc à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "dhcpd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "dictd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "sysadm_t à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¸à¦°à¦¾à¦¸à¦°à¦¿ à¦¡à§‡à¦®à¦¨ à¦†à¦°à¦®à§à¦­à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Evolution-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "খেলা"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "খেলার à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "ওয়েব à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Thunderbird-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "fetchmail-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Hal à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "সà§à¦¸à¦‚গতি"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr "বিপদের à¦†à¦¶à¦™à§à¦•à¦¾à¦¬à¦¿à¦¹à§€à¦¨ à¦œà§à¦žà¦¾à¦¤ à¦¸à¦®à¦¸à§à¦¯à¦¾à¦¸à¦¹ à¦¸à¦¾à¦®à¦—à§à¦°à§€à¦° à¦œà¦¨à§à¦¯ à¦…ডিট à¦•à¦°à¦¾ à¦¹à¦¬à§‡ à¦¨à¦¾"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "hostname à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "hplip à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "httpd rotatelogs-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD à¦ªà¦°à¦¿à¦¸à§‡à¦¬à¦¾"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexec-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "inetd à¦šà¦¾à¦‡à¦²à§à¦¡ à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ircd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "irqbalance-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "iscsi-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "jabberd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "kadmind-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "klogd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "krb5kdc-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ktalk-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "kudzu-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "locate-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "lpd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "lrrd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "lvm-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "mailman-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr ""
+-#~ "evolution à¦“ thunderbird à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦«à¦¾à¦‡à¦² à¦ªà¦¾à¦  à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ "
+-#~ "হবে"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "mdadm-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "monopd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "mozilla à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦° à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦«à¦¾à¦‡à¦² à¦ªà§œà¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "mrtg-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "mysqld-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "nagios-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "Name à¦ªà¦°à¦¿à¦¸à§‡à¦¬à¦¾"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "named-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "nessusd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "NetworkManager-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "nfsd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "nmbd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "nrpe à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "nscd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "nsd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ntpd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "oddjob-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "oddjob_mkhomedir-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "openvpn à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "pam à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "pegasus-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "perdition à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "portmap à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "portslave à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "postfix-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "postgresql à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "সাধারণ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦œà¦¨à§à¦¯ pppd à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "pptp-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "prelink à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "privoxy à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ptal à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "pxe à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "pyzord-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "quota à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "radiusd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "radvd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "rdisc-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "readahead-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "পà§à¦°à¦®à¦¿à¦¤ à¦…বসà§à¦¥à¦¾à¦¨ à¦­à¦¿à¦¨à§à¦¨ à¦…নà§à¦¯ à¦…বসà§à¦¥à¦¾à¦¨à§‡ à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦«à¦¾à¦‡à¦²à¦—à§à¦²à¦¿ à¦¬à¦¿à¦­à¦¿à¦¨à§à¦¨ à¦ªà§à¦°à§‹à¦—à§à¦°à¦¾à¦® à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦ªà¦¾à¦  "
+-#~ "করার à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡ (default_t)"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "restorecond-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "rhgb à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ricci-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ricci_modclusterd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "rlogind à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "rpcd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "rshd-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "rsync à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "ssh-কে à¦¡à§‡à¦®à¦¨à§‡à¦° à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à§‡ inetd à¦¥à§‡à¦•à§‡ à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Samba à¦¦à§à¦¬à¦¾à¦°à¦¾ nfs à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ à¦¶à§‡à§Ÿà¦¾à¦° à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL à¦…নà§à¦®à§‹à¦¦à¦¨à§‡à¦° à¦¸à¦¾à¦°à§à¦­à¦¾à¦°"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr ""
+-#~ "sasl à¦…নà§à¦®à§‹à¦¦à¦¨ à¦¸à¦¾à¦°à§à¦­à¦¾à¦° à¦¦à§à¦¬à¦¾à¦°à¦¾ /etc/shadow à¦«à¦¾à¦‡à¦² à¦ªà¦¾à¦  à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "X-Windows à¦¸à¦¾à¦°à§à¦­à¦¾à¦° à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦®à§‡à¦®à¦°à¦¿à¦° à¦…ংশকে à¦à¦•à§à¦¸à¦¿à¦•à¦¿à¦‰à¦Ÿà§‡à¦¬à¦² à¦“ à¦²à¦¿à¦–নযোগà§à¦¯ à¦°à§‚পে à¦®à§à¦¯à¦¾à¦ª à¦•à¦°à¦¾ "
+-#~ "হবে"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "saslauthd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "scannerdaemon à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "কোনো à¦ªà§à¦°à¦¸à§‡à¦¸ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦•à¦¾à¦°à§à¦¨à§‡à¦² à¦®à¦¡à¦¿à¦‰à¦² à¦²à§‹à¦¡ à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡ à¦¨à¦¾"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "কোনো à¦ªà§à¦°à¦¸à§‡à¦¸ à¦¦à§à¦¬à¦¾à¦°à¦¾ SELinux à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿ à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "sendmail à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "setrans-র à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "setroubleshoot à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "slapd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "slrnpull à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "smbd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "snmpd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "snort à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "soundd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "sound à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "সà§à¦ªà§à¦¯à¦¾à¦® à¦¥à§‡à¦•à§‡ à¦¸à§à¦°à¦•à§à¦·à¦¾"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "spamd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "spamd à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত (home) à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Spam Assassin à¦¡à§‡à¦®à¦¨à§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¨à§‡à¦Ÿà¦“য়ারà§à¦• à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "speedmgmt à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "squid à¦¡à§‡à¦®à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¨à§‡à¦Ÿà¦“য়ারà§à¦•à§‡à¦° à¦¸à¦¾à¦¥à§‡ à¦¸à¦‚যোগ à¦¸à§à¦¥à¦¾à¦ªà¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "squid à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ssh à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "sysadm_r:sysadm_t à¦°à§‚পে ssh à¦²à¦—-ইনের à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "staff_r à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦¦à§à¦¬à¦¾à¦°à¦¾ sysadm-র à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত (home) à¦¡à¦¿à¦°à§‡à¦•à§à¦Ÿà¦°à¦¿à¦° à¦®à¦§à§à¦¯à§‡ "
+-#~ "অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ à¦“ à¦«à¦¾à¦‡à¦² (যেমন ~/.bashrc) à¦ªà¦¾à¦ à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡ "
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "সারà§à¦¬à¦œà¦¨à§€à¦¨ SSL à¦Ÿà¦¾à¦¨à§‡à¦²"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "stunnel à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr ""
+-#~ "stunnel à¦¡à§‡à¦®à¦¨à¦•à§‡ xinetd-র à¦¬à¦¾à¦‡à¦°à§‡ à¦¸à§à¦¬à¦¤à¦¨à§à¦¤à§à¦°à¦°à§‚পে à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "swat à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "sxid à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "syslogd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "সিসà§à¦Ÿà§‡à¦®à§‡à¦° cron à¦•à¦°à§à¦®à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "tcp à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "telnet à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "tftpd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "transproxy à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "udev à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "uml à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "xinetd à¦†à¦¨-কনফাইন à¦…বসà§à¦¥à¦¾à§Ÿ à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡à¥¤ xinetd à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦†à¦°à¦®à§à¦­ "
+-#~ "হওয়া à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ à¦ªà¦°à¦¿à¦¸à§‡à¦¬à¦¾à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¡à§‹à¦®à§‡à¦‡à¦¨ à¦°à§‚পানà§à¦¤à¦° à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à§Ÿà¦¨à¦¿ à¦¸à§‡à¦—à§à¦²à¦¿à¦“ à¦†à¦¨-কনফাইল "
+-#~ "অবসà§à¦¥à¦¾à§Ÿ à¦¸à¦žà§à¦šà¦¾à¦²à¦¿à¦¤ à¦¹à¦¬à§‡à¥¤"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "rc à¦¸à§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ à¦†à¦¨-কনফাইন à¦…বসà§à¦¥à¦¾à§Ÿ à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡à¥¤ rc à¦¸à§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ à¦¦à§à¦¬à¦¾à¦°à¦¾ "
+-#~ "আরমà§à¦­ à¦¹à¦“য়া à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ à¦¡à§‡à¦®à¦¨à§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¡à§‹à¦®à§‡à¦‡à¦¨ à¦°à§‚পানà§à¦¤à¦° à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦¹à§Ÿà¦¨à¦¿ à¦¸à§‡à¦—à§à¦²à¦¿à¦“ à¦†à¦¨-"
+-#~ "কনফাইল à¦…বসà§à¦¥à¦¾à§Ÿ à¦¸à¦žà§à¦šà¦¾à¦²à¦¿à¦¤ à¦¹à¦¬à§‡à¥¤"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "rpm à¦†à¦¨-কনফাইল à¦…বসà§à¦¥à¦¾à§Ÿ à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "বিশেষ à¦…ধিকারপà§à¦°à¦¾à¦ªà§à¦¤ à¦¸à¦¾à¦®à¦—à§à¦°à§€ à¦¯à§‡à¦® hotplug à¦“ insmod-কে à¦†à¦¨-কনফাইন à¦°à§‚পে à¦¸à¦žà§à¦šà¦¾à¦²à¦¨à§‡à¦° "
+-#~ "অনà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "updfstab à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "uptimed à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "user_r-কে su, sudo à¦…থবা userhelper-র à¦¸à¦¾à¦¹à¦¾à¦¯à§à¦¯à§‡ sysadm_r à¦ªà§à¦°à¦¾à¦ªà§à¦¤ à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ "
+-#~ "পà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡à¥¤ à¦…নà§à¦¯à¦¥à¦¾, à¦¶à§à¦§à§à¦®à¦¾à¦¤à§à¦° staff_r à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦à¦Ÿà¦¿ à¦•à¦°à¦¾ à¦¸à¦®à§à¦­à¦¬ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦¦à§à¦¬à¦¾à¦°à¦¾ mount à¦•à¦®à¦¾à¦¨à§à¦¡ à¦ªà§à¦°à§Ÿà§‹à¦— à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "সাধারণ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ à¦¸à¦°à¦¾à¦¸à¦°à¦¿ à¦®à¦¾à¦‰à¦¸à§‡à¦° à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡ "
+-#~ "(শà§à¦§à§à¦®à¦¾à¦¤à§à¦° X à¦¸à¦¾à¦°à§à¦­à¦¾à¦° à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à¦¾ à¦¹à¦¬à§‡)"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° dmesg à¦•à¦®à¦¾à¦¨à§à¦¡ à¦ªà§à¦°à§Ÿà§‹à¦—ের à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦°à¦•à§‡ à¦¨à§‡à¦Ÿà¦“য়ারà§à¦• à¦‡à¦¨à§à¦Ÿà¦¾à¦°à¦«à§‡à¦¸ à¦¨à¦¿à§Ÿà¦¨à§à¦¤à§à¦°à¦£à§‡à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡ "
+-#~ "(USERCTL=true à¦†à¦¬à¦¶à§à¦¯à¦•)"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "সাধারণ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦°à¦•à§‡ ping à¦ªà§à¦°à§Ÿà§‹à¦— à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr ""
+-#~ "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° noextattrfile à¦ªà§œà¦¤à§‡/লিখতে (r/w) à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡ (FAT, "
+-#~ "CDROM, FLOPPY)"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° usb à¦ªà§œà¦¤à§‡ à¦“ à¦²à¦¿à¦–তে (rw) à¦…নà§à¦®à§‹à¦¦à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° ttyfiles stat à¦•à¦°à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "uucpd à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "vmware à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "watchdog à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "winbind à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "xdm à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "sysadm_r:sysadm_t à¦°à§‚পে xdm à¦²à¦—-ইনের à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "xen à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "xen-কে à¦ªà§à¦°à¦•à§ƒà¦¤ à¦¡à¦¿à¦¸à§à¦• à¦¡à¦¿à¦­à¦¾à¦‡à¦¸ à¦ªà§œà¦¤à§‡/লিখতে à¦…নà§à¦®à¦¦à§‹à¦¨ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "xfs à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "xen à¦¨à¦¿à§Ÿà¦¨à§à¦¤à§à¦°à¦£à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ypbind à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "NIS à¦ªà¦¾à¦¸à¦“য়ারà§à¦¡ à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ypserv à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "NIS Transfer à¦¡à§‡à¦®à¦¨à§‡à¦° à¦œà¦¨à§à¦¯ SELinux à¦¨à¦¿à¦°à¦¾à¦ªà¦¤à§à¦¤à¦¾ à¦¨à¦¿à¦·à§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦•à§‡ à¦…ধিকারবিহীন à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত (home) "
+-#~ "ডিরেকà§à¦Ÿà¦°à¦¿ à¦ªà¦°à¦¿à¦šà¦¾à¦²à¦¨à¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦•à§‡ à¦…ধিকারবিহীন à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦¬à§à¦¯à¦•à§à¦¤à¦¿à¦—ত (home) "
+-#~ "ডিরেকà§à¦Ÿà¦°à¦¿ à¦ªà§œà¦¾à¦° à¦…নà§à¦®à¦¤à¦¿ à¦ªà§à¦°à¦¦à¦¾à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "আপনি à¦•à¦¿ à¦¨à¦¿à¦¶à§à¦šà¦¿à¦¤à¦°à§‚পে %s '%s' à¦®à§à¦›à§‡ à¦«à§‡à¦²à¦¤à§‡ à¦‡à¦šà§à¦›à§à¦•?"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Delete %s"
+-#~ msgstr "%s à¦®à§à¦›à§‡ à¦«à§‡à¦²à§à¦¨"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Add %s"
+-#~ msgstr "%s à¦¯à§‹à¦— à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Modify %s"
+-#~ msgstr "%s à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Permissive"
+-#~ msgstr "Permissive (সতরà§à¦•à¦¤à¦¾à¦®à§‚লক)"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Enforcing"
+-#~ msgstr "Enforcing (সমà§à¦ªà§‚রà§à¦£ à¦¸à¦•à§à¦°à¦¿à§Ÿ)"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "সà§à¦¬à¦¤à§à¦¬à¦¾à¦§à¦¿à¦•à¦¾à¦° (c)২০০৬ Red Hat, Inc.\n"
+-#~ "সà§à¦¬à¦¤à§à¦¬à¦¾à¦§à¦¿à¦•à¦¾à¦° (c) à§¨à§¦à§¦à§¬ à¦¡à§à¦¯à¦¾à¦¨ à¦“য়ালà§â€Œà¦¶ <dwalsh@redhat.com>"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux à¦²à¦—-ইন à¦®à§à¦¯à¦¾à¦ª à¦¬à§à¦¯à¦¬à¦¸à§à¦¥à¦¾ à¦¯à§‹à¦— à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux à¦¨à§‡à¦Ÿà¦“য়ারà§à¦• à¦ªà§‹à¦°à§à¦Ÿ à¦¯à§‹à¦— à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux Type"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "মাতà§à¦°à¦¾"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "File Specification"
+-#~ msgstr "ফাইলের à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "File Type"
+-#~ msgstr "ফাইলের à¦§à¦°à¦¨"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "সরà§à¦¬à¦§à¦°à¦¨à§‡à¦° à¦«à¦¾à¦‡à¦²\n"
+-#~ "সাধারণ à¦«à¦¾à¦‡à¦²\n"
+-#~ "ডিরেকà§à¦Ÿà¦°à¦¿\n"
+-#~ "কà§à¦¯à¦¾à¦°à§‡à¦•à§à¦Ÿà¦¾à¦° à¦¡à¦¿à¦­à¦¾à¦‡à¦¸\n"
+-#~ "বà§à¦²à¦•-ডিভাইস\n"
+-#~ "সকেট\n"
+-#~ "সিমà§à¦¬à¦²à¦¿à¦• à¦²à¦¿à¦™à§à¦•\n"
+-#~ "নেমড à¦ªà¦¾à¦‡à¦ª\n"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦¯à§‹à¦— à¦•à¦°à§à¦¨"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux à¦ªà¦°à¦¿à¦šà¦¾à¦²à¦¨à¦¾"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "Add"
+-#~ msgstr "যোগ à¦•à¦°à§à¦¨"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "_Properties"
+-#~ msgstr "বৈশিষà§à¦Ÿà§à¦¯ (_P)"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "_Delete"
+-#~ msgstr "মà§à¦›à§‡ à¦«à§‡à¦²à§à¦¨ (_D)"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "Select Management Object"
+-#~ msgstr "পরিচালনার à¦¬à¦¿à¦·à§Ÿ à¦¨à¦¿à¦°à§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>নিরà§à¦¬à¦¾à¦šà¦¨ à¦•à¦°à§à¦¨:</b>"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "সিসà§à¦Ÿà§‡à¦®à§‡à¦° à¦¡à¦¿à¦«à¦²à§à¦Ÿ à¦ªà§à¦°à§Ÿà§‹à¦— à¦¹à¦“য়া à¦®à§‹à¦¡"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦ªà§à¦°à§Ÿà§‹à¦— à¦¹à¦“য়া à¦®à§‹à¦¡"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "সিসà§à¦Ÿà§‡à¦®à§‡à¦° à¦¡à¦¿à¦«à¦²à§à¦Ÿ à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿à¦° à¦§à¦°à¦¨: "
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "পরবরà§à¦¤à§€ à¦¬à§à¦Ÿà§‡à¦° à¦ªà¦°à§‡ à¦°à¦¿-লেবেল à¦•à¦°à¦¾ à¦¹à¦¬à§‡à¥¤"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "বà§à¦²à¦¿à§Ÿà¦¾à¦¨ à¦¬à§ˆà¦¶à¦¿à¦·à§à¦Ÿà§à¦¯à§‡à¦° à¦®à¦¾à¦¨ à¦¸à¦¿à¦¸à§à¦Ÿà§‡à¦® à¦¡à¦¿à¦«à¦²à§à¦Ÿà§‡ à¦ªà§à¦°à¦¤à§à¦¯à¦¾à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "সà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦“ à¦¸à¦•à¦² à¦¬à§à¦²à¦¿à§Ÿà¦¾à¦¨à§‡à¦° à¦®à¦§à§à¦¯à§‡ à¦…দল-বদল à¦•à¦°à§à¦¨"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "ফিলà§à¦Ÿà¦¾à¦°"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "ফাইল à¦•à¦¨à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ à¦¯à§‹à¦— à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "ফাইল à¦•à¦¨à¦Ÿà§‡à¦•à¦¸à§à¦Ÿ à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "ফাইল à¦•à¦¨à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ à¦®à§à¦›à§‡ à¦«à§‡à¦²à§à¦¨"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "সà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦«à¦¾à¦‡à¦² à¦•à¦¨à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ à¦“ à¦¸à¦•à¦²à§‡à¦° à¦®à¦§à§à¦¯à§‡ à¦…দল-বদল à¦•à¦°à§à¦¨"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦®à§à¦¯à¦¾à¦ª à¦¬à§à¦¯à¦¬à¦¸à§à¦¥à¦¾ à¦¯à§‹à¦— à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° à¦®à§à¦¯à¦¾à¦ªà¦¿à¦‚ à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°à§à¦¨"
+-
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦®à§à¦¯à¦¾à¦ªà¦¿à¦‚ à¦®à§à¦›à§‡ à¦«à§‡à¦²à§à¦¨"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦ à¦¯à§‹à¦— à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦ à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "অনà§à¦¬à¦¾à¦¦ à¦®à§à¦›à§‡ à¦«à§‡à¦²à§à¦¨"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°à§à¦¨"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "নেটওয়ারà§à¦• à¦ªà§‹à¦°à§à¦Ÿ à¦¯à§‹à¦— à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "নেটওয়ারà§à¦• à¦ªà§‹à¦°à§à¦Ÿ à¦¸à¦®à§à¦ªà¦¾à¦¦à¦¨à¦¾"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "নেটওয়ারà§à¦• à¦ªà§‹à¦°à§à¦Ÿ à¦®à§à¦›à§‡ à¦«à§‡à¦²à§à¦¨"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "সà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ à¦“ à¦¸à¦•à¦² à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° à¦®à¦§à§à¦¯à§‡ à¦…দল-বদল à¦•à¦°à§à¦¨"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "নতà§à¦¨ à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿à¦° à¦®à¦¡à¦¿à¦‰à¦² à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à§à¦¨"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "নিয়মনীতির à¦®à¦¡à¦¿à¦‰à¦² à¦²à§‹à¦¡ à¦•à¦°à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "লোড à¦•à¦°à¦¾à¦° à¦¯à§‹à¦—à§à¦¯ à¦¨à¦¿à§Ÿà¦®à¦¨à§€à¦¤à¦¿à¦° à¦®à¦¡à¦¿à¦‰à¦² à¦®à§à¦›à§‡ à¦«à§‡à¦²à¦¾ à¦¹à¦¬à§‡"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "লগ à¦«à¦¾à¦‡à¦² à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¸à¦¾à¦§à¦¾à¦°à¦£à¦¤ à¦‰à¦²à§à¦²à§‡à¦– à¦¨à¦¾ à¦¹à¦“য়া à¦…তিরিকà§à¦¤ à¦…ডিট à¦¨à¦¿à§Ÿà¦® à¦¸à¦•à§à¦°à¦¿à§Ÿ/নিষà§à¦•à§à¦°à¦¿à§Ÿ à¦•à¦°à¦¾ "
+-#~ "হবে।"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "সংবেদনশীলতার à¦®à¦¾à¦¤à§à¦°à¦¾"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ '%s'-র à¦‰à¦ªà¦¸à§à¦¥à¦¿à¦¤ à¦†à¦¬à¦¶à§à¦¯à¦•"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "মান à¦†à¦¬à¦¶à§à¦¯à¦•"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° 1024-র à¦…ধিক à¦¯à§‡ à¦•à§‹à¦¨à§‹ tcp à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° à¦¸à¦¾à¦¥à§‡ bind à¦•à¦°à¦¾à¦° "
+-#~ "সà§à¦¯à§‹à¦— à¦¦à§‡à¦“য়া à¦¹à¦¬à§‡"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "confine à¦•à¦°à¦¾ à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦° à¦¯à§‡ à¦•à§‹à¦¨à§‹ tcp à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° à¦¸à¦¾à¦¥à§‡ bind à¦•à¦°à¦¾à¦° "
+-#~ "সà§à¦¯à§‹à¦— à¦¦à§‡à§Ÿà¥¤"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨/বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ à¦­à§‚মিকা à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¯à§‡ à¦¸à¦®à¦¸à§à¦¤ tcp à¦ªà§‹à¦°à§à¦Ÿ à¦…থবা à¦ªà§‹à¦°à§à¦Ÿ à¦¸à§€à¦®à¦¾à¦° à¦®à¦§à§à¦¯à§‡ "
+-#~ "উপসà§à¦¥à¦¿à¦¤ à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° à¦¸à¦¾à¦¥à§‡ à¦¬à¦¾à¦‡à¦¨à§à¦¡ à¦•à¦°à¦¤à§‡ à¦¸à¦•à§à¦·à¦® à¦¹à¦¬à§‡ à¦¸à§‡à¦—à§à¦²à¦¿à¦° à¦¤à¦¾à¦²à¦¿à¦•à¦¾ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£ à¦•à¦°à§à¦¨ à¦“ à¦•à¦®à¦¾ "
+-#~ "চিহà§à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¬à¦¿à¦­à¦¾à¦œà¦¨ à¦•à¦°à§à¦¨à¥¤ à¦‰à¦¦à¦¾à¦¹à¦°à¦£à¦¸à§à¦¬à¦°à§‚প: 612, 650-660"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "SELinux à¦ªà¦²à¦¿à¦¸à¦¿ à¦¨à¦¿à¦°à§à¦®à¦¾à¦£à§‡à¦° Druid"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "অসংরকà§à¦·à¦¿à¦¤ à¦ªà§‹à¦°à§à¦Ÿ  (> 1024)"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr ""
+-#~ "আপনার à¦…à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦¦à§à¦¬à¦¾à¦°à¦¾ 0 à¦®à¦¾à¦¨ à¦¸à¦¹ bindresvport à¦•à¦² à¦•à¦°à¦¾ à¦¹à¦²à§‡ à¦à¦‡ à¦šà§‡à¦•-বাটনটি "
+-#~ "বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à§à¦¨à¥¤"
+-
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/bs.po b/policycoreutils/po/bs.po
+index 6430d38..10dc679 100644
+--- a/policycoreutils/po/bs.po
++++ b/policycoreutils/po/bs.po
+@@ -1,20 +1,24 @@
+-# translation of bs.po to Bosnian
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
+ # Adnan Hodzic <AbsintheSyringe@gmail.com>, 2007.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: bs\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-01-23 16:51+0100\n"
+-"Last-Translator: Adnan Hodzic <AbsintheSyringe@gmail.com>\n"
+-"Language-Team: Bosnian <lokal@linux.org.ba>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Bosnian (http://www.transifex.net/projects/p/fedora/language/"
++"bs/)\n"
+ "Language: bs\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Poedit-Language: Croatian\n"
+-"X-Poedit-Country: CROATIA\n"
+-"X-Generator: KBabel 1.11.4\n"
++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
++"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -81,11 +85,8 @@ msgid "Could not set exec context to %s.\n"
+ msgstr "Nije moguće postaviti exec kontekst za %s.\n"
+ #: ../audit2allow/audit2allow:230
+-#, fuzzy
+ msgid "******************** IMPORTANT ***********************\n"
+ msgstr ""
+-"\n"
+-"********************  VAŽNO  ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+@@ -96,9 +97,8 @@ msgid "global"
+ msgstr ""
+ #: ../semanage/seobject.py:222
+-#, fuzzy
+ msgid "Could not create semanage handle"
+-msgstr "Semanage transakciju nije moguće pokrenuti"
++msgstr ""
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+@@ -113,9 +113,8 @@ msgid "Could not establish semanage connection"
+ msgstr "Uspostavljanje semanage veze nije moguće"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Zadavanje MLS raspona za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -130,28 +129,26 @@ msgid "Could not start semanage transaction"
+ msgstr "Semanage transakciju nije moguće pokrenuti"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Semanage transakciju nije moguće pokrenuti"
++msgstr ""
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+ msgstr ""
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Ispisivanje popisa SELinux korisnika nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -161,9 +158,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Dodavanje uloge %s za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -210,9 +207,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "Nije moguće provjeriti je li mapiranje za prijavu %s odreÄ‘eno"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux korisnik %s ne postoji"
++msgstr ""
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -279,16 +276,20 @@ msgid "Could not list login mappings"
+ msgstr "Ispisivanje popisa mapiranja prijava nije moguće"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-#, fuzzy
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "Potrebna je SELinux vrsta"
++msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -306,9 +307,9 @@ msgid "Could not query user for %s"
+ msgstr "Propitivanje korisnika za %s nije moguće"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Dodavanje konteksta datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -398,6 +399,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -410,9 +412,8 @@ msgid "Port is required"
+ msgstr "Potreban je port"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Neispravan prefiks %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -499,14 +500,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "UreÄ‘ivanje porta %s/%s nije moguće"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "Ispisivanje popisa portova nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Brisanje porta %s/%s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -530,14 +530,13 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Potreban je port"
++msgstr ""
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+@@ -558,14 +557,14 @@ msgstr "Izrada kljuÄa za %s nije moguća"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Nije moguće provjeriti je li port %s/%s odreÄ‘en"
++msgstr ""
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Izrada kljuÄa za %s nije moguća"
++msgstr ""
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -574,74 +573,72 @@ msgid "Could not create context for %s"
+ msgstr "Izrada konteksta za %s nije moguća"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Zadavanje naziva za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Zadavanje korisnika u kontekstu datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Zadavanje uloge u kontekstu datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Zadavanje vrste u kontekstu datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Zadavanje MLS polja u kontekstu datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Zadavanje konteksta datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Dodavanje porta %s/%s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Port %s/%s nije odreÄ‘en"
++msgstr ""
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Propitivanje porta %s/%s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "UreÄ‘ivanje porta %s/%s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Port %s/%s odreÄ‘en je u pravilima. Brisanje nije moguće."
++msgstr ""
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Brisanje suÄelja %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Brisanje mapiranja prijave za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Ispisivanje popisa portova nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -715,9 +712,8 @@ msgid "Could not delete interface %s"
+ msgstr "Brisanje suÄelja %s nije moguće"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Brisanje suÄelja %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -732,9 +728,9 @@ msgid "Context"
+ msgstr ""
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Kontekst datoteke za %s već je odreÄ‘en"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -742,9 +738,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux korisnik %s ne postoji"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -823,14 +819,13 @@ msgid "Could not modify file context for %s"
+ msgstr "UreÄ‘ivanje konteksta datoteke za %s nije moguće"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Ispisivanje popisa konteksta datoteke nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Brisanje konteksta datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -887,14 +882,14 @@ msgid "Could not query file context %s"
+ msgstr "Propitivanje konteksta datoteke %s nije moguće"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Potrebno je odrediti prefiks"
++msgstr ""
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Brisanje Booleove vrijednosti %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -944,7 +939,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1138,9 +1134,9 @@ msgid "failed to get old_context.\n"
+ msgstr "Dohvaćanje starog konteksta nije uspjelo.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "GreÅ¡ka! Dohvaćanje TTY podataka nije moguće.\n"
++msgstr ""
+ #: ../newrole/newrole.c:1098
+ #, c-format
+@@ -1187,9 +1183,9 @@ msgid "failed to exec shell\n"
+ msgstr "IzvrÅ¡avanje ljuske nije uspjelo\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "upotreba:  %s [-bq]\n"
++msgstr ""
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+@@ -1197,9 +1193,9 @@ msgid "%s:  Policy is already loaded and initial load requested\n"
+ msgstr ""
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s: Pravilo nije moguće uÄitati: %s\n"
++msgstr ""
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1285,180 +1281,2096 @@ msgstr "chcat -- -TvrtkaPovjerljivo /docs/poslovniplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +TvrtkaPovjerljivo juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "GreÅ¡ka opcija %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Otvaranje %s nije moguće: Prijevodi nisu podržani na ne-MLS raÄunalima"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Prijevodi ne mogu sadržavati prazna mjesta (razmake) '%s' "
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Neispravna razina '%s'. "
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s već je definiran u prijevodima"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s nije definiran u prijevodima"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Mapiranje prijave za %s već je odreÄ‘eno"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "Dodavanje SELinux korisnika %s nije moguće"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux korisnik %s već je odreÄ‘en"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Potreban je port"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Port %s/%s već je odreÄ‘en"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "SuÄelje %s već je odreÄ‘eno"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "GreÅ¡ka pri inicijalizaciji sposobnosti. Bit Ä‡e prekinuto.\n"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "GreÅ¡ka pri postavljanju sposobnosti. Bit Ä‡e prekinuto.\n"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "GreÅ¡ka postavljanju KEEPCAPS. Bit Ä‡e prekinuto.\n"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "GreÅ¡ka pri ispuÅ¡tanju sposobnosti. Bit Ä‡e prekinuto.\n"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "GreÅ¡ka pri ispuÅ¡tanju SETUID sposobnosti. Bit Ä‡e prekinuto.\n"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "GreÅ¡ka pri oslobaÄ‘anju sposobnosti\n"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "Prijevodi nisu podržani na ne-MLS raÄunalima"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr "Potrebna je SELinux vrsta"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Potrebna je SELinux vrsta"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "GreÅ¡ka pri slanju poruke provjere.\n"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Potrebno je odrediti ulogu"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name"
+-#~ msgstr "Potrebno je odrediti ulogu"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Potrebno je odrediti ulogu"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Generiranje datoteke prisile vrste: %s.te"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "SuÄelje %s nije odreÄ‘eno"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "File Contexts file"
+-#~ msgstr "Kontekst datoteke za %s nije odreÄ‘en"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux korisnik %s nije odreÄ‘en"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Compatibility"
+-#~ msgstr "Pravila prevoÄ‘enja"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Provjera autentiÄnosti %s.\n"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Type"
+-#~ msgstr "Potrebna je SELinux vrsta"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Dodavanje SELinux korisnika %s nije moguće"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "UreÄ‘ivanje SELinux korisnika %s nije moguće"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Brisanje SELinux korisnika %s nije moguće"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "UreÄ‘ivanje SELinux korisnika %s nije moguće"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Load policy module"
+-#~ msgstr "ÄŒitanje pohrane pravila nije moguće."
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "Potrebna je SELinux vrsta"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Zahtijeva vrijednost"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Zahtijeva 2 ili viÅ¡e argumenta"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "%s not defined"
+-#~ msgstr "%s nije odreÄ‘en"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "%s nije valjan za %s objekata\n"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "Opseg nije podržan na ne-MLS raÄunalima"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Neispravna vrijednost '%s'. "
+-
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Da bi se ovaj novoizraÄ‘eni paket pravila uÄitao u kernel,\n"
+-#~ "potrebno je da izvrÅ¡ite naredbu \n"
+-#~ "\n"
+-#~ "semodule -I %s.pp\n"
+-#~ "\n"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Opciona greÅ¡ka: %s "
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/ca.po b/policycoreutils/po/ca.po
+index c676726..c333722 100644
+--- a/policycoreutils/po/ca.po
++++ b/policycoreutils/po/ca.po
+@@ -1,35 +1,24 @@
+-# Catalan translation for policycoreutils
+-# Copyright Â© 2006 The Free Software Foundation, Inc.
+-# This file is distributed under the same license as the policycoreutils
+-#   package.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
++# Translators:
++# Albert Carabasa Giribet <albertc@asic.udl.cat>, 2009.
+ # Josep Puigdemont Casamajó <josep.puigdemont@gmail.com>, 2006.
+-# Xavier Conde Rueda <xavi.conde@gmail.com>, 2006
+-#
+-# This file is translated according to the glossary and style guide of
+-#   Softcatalà. If you plan to modify this file, please read first the page
+-#   of the Catalan translation team for the Fedora project at:
+-#   http://www.softcatala.org/projectes/fedora/
+-#   and contact the previous translator
+-#
+-# Aquest fitxer s'ha de traduir d'acord amb el recull de termes i la guia
+-#   d'estil de Softcatalà. Si voleu modificar aquest fitxer, llegiu si
+-#   us plau la pàgina de catalanització del projecte Fedora a:
+-#   http://www.softcatala.org/projectes/fedora/
+-#   i contacteu l'anterior traductor/a.
+-#
++# Xavier Conde Rueda <xavi.conde@gmail.com>, 2006.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2006-12-03 01:04+0100\n"
+-"Last-Translator: Xavier Conde Rueda <xavi.conde@gmail.com>\n"
+-"Language-Team: Catalan <tradgnome@softcatala.org>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Catalan <fedora@llistes.softcatala.org>\n"
+ "Language: ca\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -98,29 +87,25 @@ msgid "Could not set exec context to %s.\n"
+ msgstr "No s'ha pogut establir el context d'execució a %s.\n"
+ #: ../audit2allow/audit2allow:230
+-#, fuzzy
+ msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-"\n"
+-"******************** IMPORTANT ***********************\n"
++msgstr "******************** IMPORTANT ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr ""
++msgstr "Per activar aquest paquet de política, executeu:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "global"
+ #: ../semanage/seobject.py:222
+-#, fuzzy
+ msgid "Could not create semanage handle"
+-msgstr "No s'ha pogut iniciar la transacció del semanage"
++msgstr "No s'ha pogut crear el gestor del semanage"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+ msgstr ""
+-"No s'està gestionant les polítiques del SELinux o no es pot accedir el "
++"No s'està gestionant les polítiques del SELinux o no es pot accedir al "
+ "magatzem."
+ #: ../semanage/seobject.py:235
+@@ -132,47 +117,44 @@ msgid "Could not establish semanage connection"
+ msgstr "No es pot establir la connexió amb el semanage"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "No s'ha pogut establir el rang MLS per a %s"
++msgstr "No s'ha pogut provar l'estat del MLS %s"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "Encara no està implementat"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Tansacció semanage ja en progrés"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "No s'ha pogut iniciar la transacció del semanage"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "No s'ha pogut iniciar la transacció del semanage"
++msgstr "No s'ha pogut completar la transacció del semanage"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Tansacció semanage no en progrés"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "No es pot llistar els usuaris SELinux"
++msgstr "No s'han pogut llistar els mòduls SELinux"
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+-msgstr ""
++msgstr "Versió"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr ""
++msgstr "Desactivat"
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -180,9 +162,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "No s'ha pogut afegir el rol %s per a %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -205,11 +187,13 @@ msgstr ""
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
++"No s'ha pogut establir el domini permissiu %s (la instal·lació del mòdul ha "
++"fallat)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "No s'ha pogut eliminar el domini permissiu %s (l'eliminació ha fallat)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -229,9 +213,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "No s'ha pogut comprovar si està definit el mapatge d'entrada per a %s"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "No existeix l'usuari de Linux %s"
++msgstr "No existeix el grup de Linux %s"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -298,18 +282,22 @@ msgid "Could not list login mappings"
+ msgstr "No s'ha pogut llistar els mapatges d'entrada"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+-msgstr ""
++msgstr "Nom d'entrada"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-#, fuzzy
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "Cal el tipus SELinux"
++msgstr "Usuari SELinux"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+-msgstr ""
++msgstr "Rang MLS/MCS"
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+@@ -325,9 +313,9 @@ msgid "Could not query user for %s"
+ msgstr "No s'ha pogut demanar l'usuari per a %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "No s'ha pogut afegir el context de fitxer per a %s"
++msgstr "Heu d'afegir almenys un rol per %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -389,7 +377,7 @@ msgstr "No s'ha pogut suprimir l'usuari SELinux %s"
+ #: ../semanage/seobject.py:911
+ msgid "Could not list SELinux users"
+-msgstr "No es pot llistar els usuaris SELinux"
++msgstr "No es poden llistar els usuaris SELinux"
+ #: ../semanage/seobject.py:917
+ #, python-format
+@@ -398,27 +386,28 @@ msgstr "No es pot llistar els rols per a l'usuari %s"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr ""
++msgstr "Etiquetatge"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+-msgstr ""
++msgstr "MLS/"
+ #: ../semanage/seobject.py:943
+ msgid "Prefix"
+-msgstr ""
++msgstr "Prefix"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Level"
+-msgstr ""
++msgstr "Nivell MCS"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Range"
+-msgstr ""
++msgstr "Rang MCS"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+-msgstr ""
++msgstr "Rols SELinux"
+ #: ../semanage/seobject.py:963
+ msgid "Protocol udp or tcp is required"
+@@ -429,9 +418,8 @@ msgid "Port is required"
+ msgstr "Cal el port"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "El prefix %s invàlid"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -482,7 +470,7 @@ msgstr "No s'ha pogut establir el tipus al context del port per a %s/%s"
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+ msgstr ""
+-"No s'ha pogut establir els camps mls en el context del port per a %s/%s"
++"No s'han pogut establir els camps mls en el context del port per a %s/%s"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+@@ -519,14 +507,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "No es pot modificar el port %s/%s"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "No s'ha pogut llistar els ports"
++msgstr "No s'han pogut llistar els ports"
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "No s'ha pogut suprimir el port %s/%s"
++msgstr "No s'ha pogut suprimir el port %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -540,28 +527,27 @@ msgstr "No s'ha pogut suprimir el port %s/%s"
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+ msgid "Could not list ports"
+-msgstr "No s'ha pogut llistar els ports"
++msgstr "No s'han pogut llistar els ports"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+-msgstr ""
++msgstr "Tipus de port SELinux"
+ #: ../semanage/seobject.py:1199
+ msgid "Proto"
+-msgstr ""
++msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+-msgstr ""
++msgstr "Número de port"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Cal el port"
++msgstr "L'adreça del node Ã©s necessària"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Manca el port o no es coneix"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -578,14 +564,14 @@ msgstr "No s'ha pogut crear la clau per a %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "No s'ha pogut comprovar si el port %s/%s està definit"
++msgstr "No s'ha pogut comprovar si l'adreça %s està definida"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "No s'ha pogut crear una clau per a %s"
++msgstr "No s'ha pogut crear l'adreça per a %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -594,74 +580,73 @@ msgid "Could not create context for %s"
+ msgstr "No s'ha pogut crear el context per a %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "No s'ha pogut establir el nom per a %s"
++msgstr "No s'ha pogut establir la màscara per a %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "No s'ha pogut establir l'usuari en el context del fitxer per a %s"
++msgstr "No s'ha pogut establir l'usuari en el context de l'adreça per a %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "No s'ha pogut establir el rol en el context del fitxer per a %s"
++msgstr "No s'ha pogut establir el rol en el context de l'adreça per a %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "No s'ha pogut establir el tipus en el context del fitxer per a %s"
++msgstr "No s'ha pogut establir el tipus en el context de l'adreça per a %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "No s'ha pogut establir els camps mls en el context de fitxer per a %s"
++msgstr ""
++"No s'ha pogut establir els camps mls en el context de l'adreça per a %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "No s'ha pogut establir el context de fitxer per a %s"
++msgstr "No s'ha pogut establir el context de l'adreça per a %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "No s'ha pogut afegir el port %s/%s"
++msgstr "No s'ha pogut afegir l'adreça %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "El port %s/%s no està definit"
++msgstr "L'adreça %s no està definida"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "No es pot consultar el port %s/%s"
++msgstr "No es pot consultar l'adreça %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "No es pot modificar el port %s/%s"
++msgstr "No es pot modificar l'adreça %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "El port %s/%s està definit en la política, no es pot suprimir"
++msgstr "L'adreça %s està definida en la política, no es pot suprimir"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "No s'ha pogut suprimir la interfície %s"
++msgstr "No s'ha pogut suprimir l'adreça %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "No s'ha pogut suprimir el mapatge d'entrada per a %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "No s'ha pogut llistar els ports"
++msgstr "No s'han pogut llistar les adreces"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -694,7 +679,7 @@ msgstr "No s'ha pogut establir el tipus en el context d'interfície per a %s"
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+ msgstr ""
+-"No s'ha pogut establir els camps mls en el context d'interfície per a %s"
++"No s'han pogut establir els camps mls en el context d'interfície per a %s"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+@@ -737,9 +722,8 @@ msgid "Could not delete interface %s"
+ msgstr "No s'ha pogut suprimir la interfície %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "No s'ha pogut suprimir la interfície %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -747,16 +731,16 @@ msgstr "No s'han pogut llistar les interfícies"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+-msgstr ""
++msgstr "Interfície del SELinux"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+-msgstr ""
++msgstr "Context"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "El context de fitxer per a %s ja està definit"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -764,9 +748,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "No existeix l'usuari de Linux %s"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -785,7 +769,7 @@ msgstr "No s'ha pogut establir els camps mls en el context de fitxer per a %s"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+-msgstr ""
++msgstr "Especificació de fitxer no vàlida"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -845,14 +829,13 @@ msgid "Could not modify file context for %s"
+ msgstr "No s'ha pogut modificar el context de fitxer per a %s"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "No s'ha pogut llistar els contexts del fitxer"
++msgstr "No s'han pogut llistar els contexts de fitxer"
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "No s'ha pogut suprimir el context de fitxer per a %s"
++msgstr "No s'ha pogut suprimir el context de fitxer %s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -876,11 +859,11 @@ msgstr "No s'ha pogut llistar els contexts del fitxer local"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+-msgstr ""
++msgstr "SELinux fcontext"
+ #: ../semanage/seobject.py:1936
+ msgid "type"
+-msgstr ""
++msgstr "tipus"
+ #: ../semanage/seobject.py:1949
+ msgid ""
+@@ -911,14 +894,14 @@ msgid "Could not query file context %s"
+ msgstr "No s'ha pogut consultar el context %s del fitxer"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Heu d'especificar un prefix"
++msgstr "Heu d'especificar un dels següents valors: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "No s'ha pogut suprimir el booleà %s"
++msgstr "No s'ha pogut establir el valor actiu del booleà %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -928,7 +911,7 @@ msgstr "No s'ha pogut modificar el booleà %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Format incorrecte %s: registre %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -946,19 +929,19 @@ msgstr "No s'ha pogut llistar els booleans"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "desconegut"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "inactiu"
+ #: ../semanage/seobject.py:2117
+ msgid "on"
+-msgstr ""
++msgstr "actiu"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr ""
++msgstr "Booleà SELinux"
+ #: ../semanage/seobject.py:2131
+ msgid "State"
+@@ -968,9 +951,10 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "Descripció"
+ #: ../newrole/newrole.c:201
+ #, c-format
+@@ -981,11 +965,13 @@ msgstr "no s'ha pogut establir PAM_TTY\n"
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+ msgstr ""
++"newrole: desbordament de la taula de dispersió del servei de configuració de "
++"noms\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
++msgstr "newrole:  %s:  error en la línia %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+@@ -1034,11 +1020,10 @@ msgstr "S'ha produït un error en assignar memòria.\n"
+ msgid "Error sending audit message.\n"
+ msgstr "S'ha produït un error en enviar el missatge d'audit.\n"
+-# FIXME: enforce -> fer cumplir (josep)
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr "No s'ha pogut determinar el mode de reforç.\n"
++msgstr "No s'ha pogut determinar el mode de compliment.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+@@ -1098,6 +1083,8 @@ msgstr "S'ha produït un error: s'han especificat múltiples nivells\n"
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+ msgstr ""
++"S'ha produït un error: no teniu autorització per canviar els nivells en un "
++"terminal no segur \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+@@ -1165,14 +1152,14 @@ msgid "failed to get old_context.\n"
+ msgstr "no s'ha pogut obtenir l'old_context.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "No s'ha pogut obtenir informació de la tty.\n"
++msgstr "Avís! No s'ha pogut obtenir informació de la tty.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr ""
++msgstr "error en la lectura de la configuració del servei PAM.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+@@ -1214,19 +1201,22 @@ msgid "failed to exec shell\n"
+ msgstr "no s'ha pogut executar l'intèrpret d'ordres\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "Forma d'ús: %s [-bq]\n"
++msgstr "Forma d'ús: %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+ msgstr ""
++"%s: la política ja ha estat carregada i la càrrega inicial sol·licitada\n"
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s: no es pot carregar la política: %s\n"
++msgstr ""
++"%s:  No s'ha pogut carregar la política, però s'ha demanat el mode de "
++"compliment: %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1313,187 +1303,2096 @@ msgstr "chcat -- -CompanyiaConfidencial /docs/pladenegocis.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyiaConfidencial jusuari"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Error en les opcions %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "No s'ha pogut obrir %s: les traduccions no estan suportades a màquines "
+-#~ "sense MLS"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Les traduccions no poden contenir espais '%s' "
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Nivell '%s' invàlid "
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s ja existeix a les traduccions"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s no està definit a les traduccions"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Ja s'ha definit el mapatge per a %s"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#, fuzzy
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "No s'ha pogut afegir l'usuari SELinux %s"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "L'usuari SELinux %s ja està definit"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Cal el port"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "El port %s/%s està definit"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Ja s'ha definit la interfície %s"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr ""
+-#~ "S'ha produït un error en iniciar les capacitats, s'està anul·lant.\n"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr ""
+-#~ "S'ha produït un error en establir les capacitats, s'està anul·lant\n"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "S'ha produït un error en establir KEEPCAPS, s'està anul·lant.\n"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr ""
+-#~ "S'ha produït un error en eliminar les capacitats, s'està anul·lant.\n"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr ""
+-#~ "S'ha produït un error en eliminar la capacitat per a SETUID, s'està "
+-#~ "anul·lant.\n"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "S'ha produït un error en eliminar les capacitats\n"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "les traduccions no estan suportades en màquines sense MLS"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr "Cal el tipus SELinux"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Cal el tipus SELinux"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "S'ha produït un error en enviar el missatge d'audit.\n"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Heu d'especificar un rol"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name"
+-#~ msgstr "Heu d'especificar un rol"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Heu d'especificar un rol"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-# FIXME: enforce -> fer cumplir (josep)
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "S'està generant el fitxer de reforç del tipus: %s.te"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "La interfície %s no s'ha definit"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "File Contexts file"
+-#~ msgstr "No s'ha definit el context del fitxer per a %s"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "L'usuari SELinux %s no està definit"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Compatibility"
+-#~ msgstr "S'està compilant la política"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SASL authentication server"
+-#~ msgstr "S'està autenticant %s.\n"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Type"
+-#~ msgstr "Cal el tipus SELinux"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add SELinux User"
+-#~ msgstr "No s'ha pogut afegir l'usuari SELinux %s"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "No s'ha pogut modificar l'usuari SELinux %s"
+-
+-#, fuzzy
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "No s'ha pogut suprimir l'usuari SELinux %s"
+-
+-#, fuzzy
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "No s'ha pogut modificar l'usuari SELinux %s"
+-
+-#, fuzzy
+-#~ msgid "Load policy module"
+-#~ msgstr "No es pot llegir el magatzem de polítiques."
+-
+-#, fuzzy
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "Cal el tipus SELinux"
+-
+-#~ msgid "Requires value"
+-#~ msgstr "Requereix un valor"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Necessita almenys dos arguments"
+-
+-#~ msgid "%s not defined"
+-#~ msgstr "%s no Ã©s definit"
+-
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "%s no Ã©s vàlid per a objectes %s\n"
+-
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "el rang no està implementat amb màquines sense MLS"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Valor invàlid per a %s"
+-
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Per carregar aquest nou paquet de polítiques en el nucli,\n"
+-#~ "us cal executar\n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Error en les opcions: %s "
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/cs.po b/policycoreutils/po/cs.po
+index 64bc3b6..93e243b 100644
+--- a/policycoreutils/po/cs.po
++++ b/policycoreutils/po/cs.po
+@@ -1,25 +1,26 @@
+-# translation of cs.po to Czech
+-# Copyright (C) 2002, FSF
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
++# Translators:
++# Adam Pribyl <pribyl@lowlevel.cz>, 2007.
++# Milan KerÅ¡láger <kerslage@linux.cz>, 2007.
+ # Miloslav TrmaÄ <mitr@volny.cz>, 2002, 2003, 2004, 2005, 2008.
+ # Nikola Å tohanzl <niko@srnet.cz>, 2006.
+-# Milan KerÅ¡láger <kerslage@linux.cz>, 2007.
+-# Adam Pribyl <pribyl@lowlevel.cz>, 2007.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: cs\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-03-03 05:55+0100\n"
+-"Last-Translator: Miloslav TrmaÄ <mitr@volny.cz>\n"
+-"Language-Team: Czech <fedora-cs-list@redhat.com>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Czech (http://www.transifex.net/projects/p/fedora/language/"
++"cs/)\n"
+ "Language: cs\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
++"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -34,9 +35,9 @@ msgid "failed to initialize PAM\n"
+ msgstr ""
+ #: ../run_init/run_init.c:139
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to get account information\n"
+-msgstr "Nemohu pÅ™ipojit oddíl."
++msgstr ""
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+@@ -73,9 +74,9 @@ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+ msgstr ""
+ #: ../run_init/run_init.c:380
+-#, fuzzy, c-format
++#, c-format
+ msgid "authentication failed.\n"
+-msgstr "Operace LVM selhala"
++msgstr ""
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+ #, c-format
+@@ -111,9 +112,8 @@ msgid "Could not establish semanage connection"
+ msgstr ""
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Úprava rozhraní"
++msgstr ""
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -136,20 +136,18 @@ msgid "Semanage transaction not in progress"
+ msgstr ""
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Místo pÅ™ipojení je již používáno"
++msgstr ""
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
+-#, fuzzy
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+-msgstr "PerÅ¡tina"
++msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "Zakázáno"
+@@ -197,9 +195,9 @@ msgstr ""
+ #: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+ #: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+ #: ../semanage/seobject.py:2037
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create a key for %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+@@ -277,16 +275,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#, fuzzy
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+-msgstr "Jméno logického svazku (LV)"
++msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -304,9 +306,9 @@ msgid "Could not query user for %s"
+ msgstr ""
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Musíte vybrat alespoň jeden z protokolů (IPv4 nebo IPv6)."
++msgstr ""
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -367,9 +369,8 @@ msgid "Could not delete SELinux user %s"
+ msgstr ""
+ #: ../semanage/seobject.py:911
+-#, fuzzy
+ msgid "Could not list SELinux users"
+-msgstr "Místo pÅ™ipojení je již používáno"
++msgstr ""
+ #: ../semanage/seobject.py:917
+ #, python-format
+@@ -377,9 +378,8 @@ msgid "Could not list roles for user %s"
+ msgstr ""
+ #: ../semanage/seobject.py:942
+-#, fuzzy
+ msgid "Labeling"
+-msgstr "Název"
++msgstr ""
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+@@ -390,15 +390,15 @@ msgid "Prefix"
+ msgstr "Prefix"
+ #: ../semanage/seobject.py:943
+-#, fuzzy
+ msgid "MCS Level"
+-msgstr "RAID Level:"
++msgstr ""
+ #: ../semanage/seobject.py:943
+ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -411,9 +411,8 @@ msgid "Port is required"
+ msgstr ""
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Neplatné jméno poÄítaÄe"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -436,12 +435,9 @@ msgid "Port %s/%s already defined"
+ msgstr ""
+ #: ../semanage/seobject.py:1002
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create port for %s/%s"
+ msgstr ""
+-"Nemohu alokovat požadované oddíly: \n"
+-"\n"
+-"%s.%s"
+ #: ../semanage/seobject.py:1008
+ #, python-format
+@@ -507,9 +503,9 @@ msgid "Could not list the ports"
+ msgstr ""
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Nemohu alokovat požadované oddíly: %s."
++msgstr ""
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -517,12 +513,9 @@ msgid "Port %s/%s is defined in policy, cannot be deleted"
+ msgstr ""
+ #: ../semanage/seobject.py:1122
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete port %s/%s"
+ msgstr ""
+-"Nemohu alokovat požadované oddíly: \n"
+-"\n"
+-"%s.%s"
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+ msgid "Could not list ports"
+@@ -536,7 +529,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -568,65 +561,65 @@ msgid "Could not check if addr %s is defined"
+ msgstr ""
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create context for %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Nelze odstranit volné místo."
++msgstr ""
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "%s není platné jméno poÄítaÄe."
++msgstr ""
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Nelze odstranit volné místo."
++msgstr ""
+ #: ../semanage/seobject.py:1364
+ #, python-format
+@@ -634,19 +627,17 @@ msgid "Addr %s is defined in policy, cannot be deleted"
+ msgstr ""
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Nelze odstranit volné místo."
++msgstr ""
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Nelze odstranit volné místo."
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Úprava rozhraní"
++msgstr ""
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -655,9 +646,9 @@ msgid "Could not check if interface %s is defined"
+ msgstr ""
+ #: ../semanage/seobject.py:1461
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create interface for %s"
+-msgstr "Nemohu alokovat oddíly pomocí cylindrů.\n"
++msgstr ""
+ #: ../semanage/seobject.py:1470
+ #, python-format
+@@ -715,29 +706,25 @@ msgid "Interface %s is defined in policy, cannot be deleted"
+ msgstr ""
+ #: ../semanage/seobject.py:1562
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete interface %s"
+-msgstr "Nelze odstranit volné místo."
++msgstr ""
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Nelze odstranit volné místo."
++msgstr ""
+ #: ../semanage/seobject.py:1588
+-#, fuzzy
+ msgid "Could not list interfaces"
+-msgstr "Úprava rozhraní"
++msgstr ""
+ #: ../semanage/seobject.py:1613
+-#, fuzzy
+ msgid "SELinux Interface"
+-msgstr "Úprava rozhraní"
++msgstr ""
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-#, fuzzy
+ msgid "Context"
+-msgstr "PokraÄovat"
++msgstr ""
+ #: ../semanage/seobject.py:1663
+ #, python-format
+@@ -770,9 +757,8 @@ msgid "Could not set mls fields in file context for %s"
+ msgstr ""
+ #: ../semanage/seobject.py:1707
+-#, fuzzy
+ msgid "Invalid file specification"
+-msgstr "Chybná IP informace"
++msgstr ""
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -792,9 +778,9 @@ msgid "Could not check if file context for %s is defined"
+ msgstr ""
+ #: ../semanage/seobject.py:1745
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create file context for %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:1753
+ #, python-format
+@@ -846,9 +832,9 @@ msgid "File context for %s is defined in policy, cannot be deleted"
+ msgstr ""
+ #: ../semanage/seobject.py:1884
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete file context for %s"
+-msgstr "Nemohu vytvoÅ™it editor klonů disku"
++msgstr ""
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+@@ -863,9 +849,8 @@ msgid "SELinux fcontext"
+ msgstr ""
+ #: ../semanage/seobject.py:1936
+-#, fuzzy
+ msgid "type"
+-msgstr "Typ"
++msgstr ""
+ #: ../semanage/seobject.py:1949
+ msgid ""
+@@ -896,14 +881,14 @@ msgid "Could not query file context %s"
+ msgstr ""
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Musíte vložit hodnotu"
++msgstr ""
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Nelze odstranit volné místo."
++msgstr ""
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -921,9 +906,9 @@ msgid "Boolean %s is defined in policy, cannot be deleted"
+ msgstr ""
+ #: ../semanage/seobject.py:2052
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete boolean %s"
+-msgstr "Nelze odstranit volné místo."
++msgstr ""
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+ msgid "Could not list booleans"
+@@ -938,27 +923,25 @@ msgid "off"
+ msgstr ""
+ #: ../semanage/seobject.py:2117
+-#, fuzzy
+ msgid "on"
+-msgstr "Nic"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+ msgstr ""
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "ZaÄátek"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr "Implicitní"
+-#: ../semanage/seobject.py:2131
+-#, fuzzy
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr "Oddíl"
++msgstr ""
+ #: ../newrole/newrole.c:201
+ #, c-format
+@@ -986,14 +969,14 @@ msgid "Out of memory!\n"
+ msgstr ""
+ #: ../newrole/newrole.c:455
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr "Chyba - jméno logického svazku (LV) %s není platné."
++msgstr ""
+ #: ../newrole/newrole.c:512
+-#, fuzzy, c-format
++#, c-format
+ msgid "Unable to clear environment\n"
+-msgstr "Nemohu pÅ™eÄíst soubor!"
++msgstr ""
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+@@ -1016,9 +999,9 @@ msgid "Error allocating memory.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:648
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error sending audit message.\n"
+-msgstr "Chyba pÅ™i stahování obrazu s aktualizacemi"
++msgstr ""
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+@@ -1116,9 +1099,9 @@ msgid "failed to convert new context to string\n"
+ msgstr ""
+ #: ../newrole/newrole.c:943
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s is not a valid context\n"
+-msgstr "%s není platné jméno poÄítaÄe."
++msgstr ""
+ #: ../newrole/newrole.c:950
+ #, c-format
+@@ -1126,9 +1109,9 @@ msgid "Unable to allocate memory for new_context"
+ msgstr ""
+ #: ../newrole/newrole.c:976
+-#, fuzzy, c-format
++#, c-format
+ msgid "Unable to obtain empty signal set\n"
+-msgstr "Nelze pÅ™ipojit souborový systém"
++msgstr ""
+ #: ../newrole/newrole.c:984
+ #, c-format
+@@ -1151,9 +1134,9 @@ msgid "Warning!  Could not retrieve tty information.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:1098
+-#, fuzzy, c-format
++#, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr "Zapisuji nastavení po aktualizaci..."
++msgstr ""
+ #: ../newrole/newrole.c:1133
+ #, c-format
+@@ -1166,9 +1149,9 @@ msgid "newrole: failure forking: %s"
+ msgstr ""
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, fuzzy, c-format
++#, c-format
+ msgid "Unable to restore tty label...\n"
+-msgstr "Nemohu pÅ™enést instalaÄní obraz."
++msgstr ""
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+@@ -1176,9 +1159,9 @@ msgid "Failed to close tty properly\n"
+ msgstr ""
+ #: ../newrole/newrole.c:1224
+-#, fuzzy, c-format
++#, c-format
+ msgid "Could not close descriptors.\n"
+-msgstr "Nemohu alokovat oddíly pomocí cylindrů.\n"
++msgstr ""
+ #: ../newrole/newrole.c:1251
+ #, c-format
+@@ -1186,9 +1169,9 @@ msgid "Error allocating shell's argv0.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:1287
+-#, fuzzy, c-format
++#, c-format
+ msgid "Unable to restore the environment, aborting\n"
+-msgstr "Nemohu pÅ™enést instalaÄní obraz."
++msgstr ""
+ #: ../newrole/newrole.c:1298
+ msgid "failed to exec shell\n"
+@@ -1215,9 +1198,8 @@ msgid "%s:  Can't load policy:  %s\n"
+ msgstr ""
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+-#, fuzzy
+ msgid "Requires at least one category"
+-msgstr "Vložená hodnota není Äíslo"
++msgstr ""
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+@@ -1230,9 +1212,9 @@ msgid "%s is already in %s"
+ msgstr ""
+ #: ../scripts/chcat:188 ../scripts/chcat:198
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s is not in %s"
+-msgstr "%s není platné jméno poÄítaÄe."
++msgstr ""
+ #: ../scripts/chcat:267 ../scripts/chcat:272
+ msgid "Can not combine +/- with other types of categories"
+@@ -1263,9 +1245,9 @@ msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+ msgstr ""
+ #: ../scripts/chcat:329
+-#, fuzzy, c-format
++#, c-format
+ msgid "Usage %s -d File ..."
+-msgstr "Zavádím ovladaÄ %s ..."
++msgstr ""
+ #: ../scripts/chcat:330
+ #, c-format
+@@ -1294,5910 +1276,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, fuzzy, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+-msgstr "Chyby v oddílech"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Level"
+-#~ msgstr "RAID Level:"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Translation"
+-#~ msgstr "Virtualizace"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Instalace nemůže pokraÄovat."
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Neplatná jmenovka"
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "balíÄek je již nainstalován"
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "balíÄek je již nainstalován"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Boolean"
+-#~ msgstr "KorejÅ¡tina"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#, fuzzy
+-#~ msgid "all"
+-#~ msgstr "_Instalovat"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Customized"
+-#~ msgstr "_Upravit teÄ"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "File Labeling"
+-#~ msgstr "Jmenovka systému souborů:"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr "Typ"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable Audit"
+-#~ msgstr "Zakázáno"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Enable Audit"
+-#~ msgstr "Nelze upravit"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Uživatelské jméno:</b>"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "User Role"
+-#~ msgstr "Uživatelské jméno"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Uživatelské jméno:</b>"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>FCP LUN:</b>"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select Ports"
+-#~ msgstr "VýbÄ›r oddílu"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>IPv4 adresa:</b>"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Policy Directory"
+-#~ msgstr "Neplatné adresáře"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Existing_User"
+-#~ msgstr "Konec"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Application"
+-#~ msgstr "oddíl"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#, fuzzy
+-#~ msgid "%s must be a directory"
+-#~ msgstr "Adresář %s:"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Zvolte oddíl, který chcete upravit"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Verify Name"
+-#~ msgstr "Název proxy:"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name"
+-#~ msgstr "Musíte zadat jméno serveru."
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Musíte zadat jméno serveru."
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Configue SELinux"
+-#~ msgstr "Nastavit proxy"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "Úprava rozhraní"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Protocol"
+-#~ msgstr "ChybÄ›jící protokol"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Port"
+-#~ msgstr "Formátovat"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Memory Protection"
+-#~ msgstr "Nastavení oddílu"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Mount"
+-#~ msgstr "PÅ™ipojit do"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Nastavení sítÄ›"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#, fuzzy
+-#~ msgid "XServer"
+-#~ msgstr "Name server:"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "NIS"
+-#~ msgstr "NFS"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Cron"
+-#~ msgstr "ChorvatÅ¡tina"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Printing"
+-#~ msgstr "Oddíl"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Games"
+-#~ msgstr "ÃsámÅ¡tina"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#, fuzzy
+-#~ msgid "HTTPD Service"
+-#~ msgstr "Zařízení"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Name Service"
+-#~ msgstr "Name server:"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Spam Protection"
+-#~ msgstr "oddíl"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "Opravdu chcete odstranit logický svazek (LV) \"%s\"?"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete %s"
+-#~ msgstr "Odstranit"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add %s"
+-#~ msgstr "_PÅ™idat"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "File Type"
+-#~ msgstr "Typ systému souborů:"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add"
+-#~ msgstr "_PÅ™idat"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "_Delete"
+-#~ msgstr "_Odstranit"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Uživatelské jméno:</b>"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label37"
+-#~ msgstr "Název"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label50"
+-#~ msgstr "Název"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#, fuzzy
+-#~ msgid "label38"
+-#~ msgstr "Název"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#, fuzzy
+-#~ msgid "label39"
+-#~ msgstr "Název"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add Translation"
+-#~ msgstr "PÅ™idat oddíl"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify Translation"
+-#~ msgstr "Nastavení oddílu"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label41"
+-#~ msgstr "Název"
+-
+-#, fuzzy
+-#~ msgid "label40"
+-#~ msgstr "Název"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add Network Port"
+-#~ msgstr "Chyba sítÄ›"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Edit Network Port"
+-#~ msgstr "Chyba sítÄ›"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete Network Port"
+-#~ msgstr "Chyba sítÄ›"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#, fuzzy
+-#~ msgid "label42"
+-#~ msgstr "Název"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label44"
+-#~ msgstr "Název"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Requires value"
+-#~ msgstr "PotÅ™ebná instalaÄní média"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Invalid prefix %s"
+-#~ msgstr "Neplatný prefix"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label25"
+-#~ msgstr "Název"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label26"
+-#~ msgstr "Název"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#, fuzzy
+-#~ msgid "label28"
+-#~ msgstr "Název"
+-
+-#, fuzzy
+-#~ msgid "label30"
+-#~ msgstr "Název"
+-
+-#, fuzzy
+-#~ msgid "label31"
+-#~ msgstr "Název"
+-
+-#, fuzzy
+-#~ msgid "label32"
+-#~ msgstr "Název"
+-
+-#, fuzzy
+-#~ msgid "label33"
+-#~ msgstr "Název"
+-
+-#, fuzzy
+-#~ msgid "label34"
+-#~ msgstr "Název"
+-
+-#, fuzzy
+-#~ msgid "label35"
+-#~ msgstr "Název"
+-
+-#, fuzzy
+-#~ msgid "label51"
+-#~ msgstr "Název"
+-
+-#~ msgid "Error processing %%ksappend lines: %s"
+-#~ msgstr "Chyba pÅ™i zpracovávání Å™Ã¡dků %%ksappend: %s"
+-
+-#~ msgid "Unknown error processing %%ksappend lines: %s"
+-#~ msgstr "Neznámá chyba pÅ™i zpracovávání Å™Ã¡dků %%ksappend: %s"
+-
+-#~ msgid ""
+-#~ "The following error was found while parsing your kickstart "
+-#~ "configuration:\n"
+-#~ "\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "PÅ™i zpracovávání kickstart souboru byla nalezena následující chyba:\n"
+-#~ "\n"
+-#~ "%s"
+-
+-#~ msgid "Press <enter> for a shell"
+-#~ msgstr "StisknÄ›te <Enter> pro shell"
+-
+-#~ msgid "OK"
+-#~ msgstr "OK"
+-
+-#~ msgid ""
+-#~ "You do not have enough RAM to use the graphical installer.  Starting text "
+-#~ "mode."
+-#~ msgstr ""
+-#~ "Nemáte dostatek pamÄ›ti RAM pro grafický instalaÄní program. SpouÅ¡tím "
+-#~ "textový režim."
+-
+-#~ msgid "No video hardware found, assuming headless"
+-#~ msgstr "Nenalezen Å¾Ã¡dný video hardware, pÅ™edpokládám poÄítaÄ bez monitoru"
+-
+-#~ msgid "Unable to instantiate a X hardware state object."
+-#~ msgstr "Nemohu vytvoÅ™it objekt stavu hardware X."
+-
+-#~ msgid "Starting graphical installation..."
+-#~ msgstr "SpouÅ¡tím grafickou instalaci..."
+-
+-#~ msgid "Install class forcing text mode installation"
+-#~ msgstr "Třída instalace vynucující instalaci v textovém režimu"
+-
+-#~ msgid "Graphical installation not available...  Starting text mode."
+-#~ msgstr "Grafická instalace není k dispozici... SpouÅ¡tím textový režim."
+-
+-#~ msgid "DISPLAY variable not set. Starting text mode!"
+-#~ msgstr "PromÄ›nná prostÅ™edí DISPLAY není nastavena. SpouÅ¡tím textový režim!."
+-
+-#~ msgid ""
+-#~ "Error resizing partition %s.\n"
+-#~ "\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "Chyba pÅ™i zmÄ›nÄ› velikosti oddílu %s.\n"
+-#~ "\n"
+-#~ "%s"
+-
+-#~ msgid "Start of partition %s was moved when resizing"
+-#~ msgstr "ZaÄátek oddílu %s byl pÅ™i zmÄ›nÄ› velikosti pÅ™esunut"
+-
+-#~ msgid ""
+-#~ "Could not allocate cylinder-based partitions as primary partitions.\n"
+-#~ msgstr "Nemohu alokovat primární oddíly podle cylindrů.\n"
+-
+-#~ msgid "Could not allocate partitions as primary partitions.\n"
+-#~ msgstr "Nemohu alokovat oddíly jako primární.\n"
+-
+-#~ msgid ""
+-#~ "Boot partition %s doesn't belong to a BSD disk label. SRM won't be able "
+-#~ "to boot from this partition. Use a partition belonging to a BSD disk "
+-#~ "label or change this device disk label to BSD."
+-#~ msgstr ""
+-#~ "ZavádÄ›cí oddíl %s nemá BSD rozložení oddílů (BSD disk label). SRM nemůže "
+-#~ "z tohoto oddílu systém zavést. Vyberte oddíl, který má BSD rozložení nebo "
+-#~ "změňte rozložení disku na BSD."
+-
+-#~ msgid ""
+-#~ "Boot partition %s doesn't belong to a disk with enough free space at its "
+-#~ "beginning for the bootloader to live on. Make sure that there's at least "
+-#~ "5MB of free space at the beginning of the disk that contains /boot"
+-#~ msgstr ""
+-#~ "ZavádÄ›cí oddíl %s není na disku, kde je na zaÄátku dostatek volného místa "
+-#~ "pro zavadÄ›Ä. UjistÄ›te se, Å¾e na zaÄátku disku, který obsahuje /boot, je k "
+-#~ "dispozici alespoň 5 MB volného místa."
+-
+-#~ msgid ""
+-#~ "Boot partition %s isn't a VFAT partition.  EFI won't be able to boot from "
+-#~ "this partition."
+-#~ msgstr ""
+-#~ "ZavádÄ›cí oddíl %s není typu VFAT, a proto z nÄ›j EFI nemůže naÄíst systém."
+-
+-#~ msgid ""
+-#~ "The boot partition must entirely be in the first 4GB of the disk.  "
+-#~ "OpenFirmware won't be able to boot this installation."
+-#~ msgstr ""
+-#~ "ZavádÄ›cí oddíl musí být celý umístÄ›n v prvních 4GB disku. OpenFirmware "
+-#~ "nebude moct systém nastartovat."
+-
+-#~ msgid ""
+-#~ "Boot partition %s may not meet booting constraints for your architecture."
+-#~ msgstr ""
+-#~ "ZavádÄ›cí oddíl %s zÅ™ejmÄ› na vaší architektuÅ™e nesplňuje omezení pro "
+-#~ "zavedení systému."
+-
+-#~ msgid ""
+-#~ "Adding this partition would not leave enough disk space for already "
+-#~ "allocated logical volumes in %s."
+-#~ msgstr ""
+-#~ "PÅ™idání oddílu by nenechalo dost diskového prostoru pro již alokované "
+-#~ "logické oddíly (LV) v %s."
+-
+-#~ msgid "Requested Partition Does Not Exist"
+-#~ msgstr "Požadovaný oddíl neexistuje"
+-
+-#~ msgid ""
+-#~ "Unable to locate partition %s to use for %s.\n"
+-#~ "\n"
+-#~ "Press 'OK' to exit the installer."
+-#~ msgstr ""
+-#~ "Nemohu nalézt oddíl %s pro %s.\n"
+-#~ "\n"
+-#~ "KliknÄ›te na 'OK' pro ukonÄení instalace."
+-
+-#~ msgid "Requested Raid Device Does Not Exist"
+-#~ msgstr "Požadované RAID zařízení neexistuje"
+-
+-#~ msgid ""
+-#~ "Unable to locate raid device %s to use for %s.\n"
+-#~ "\n"
+-#~ "Press 'OK' to exit the installer."
+-#~ msgstr ""
+-#~ "Nemohu nalézt raid zařízení %s pro %s.\n"
+-#~ "\n"
+-#~ "KliknÄ›te na 'OK' pro ukonÄení instalace."
+-
+-#~ msgid "Requested Volume Group Does Not Exist"
+-#~ msgstr "Požadovaná skupina svazků neexistuje"
+-
+-#~ msgid ""
+-#~ "Unable to locate volume group %s to use for %s.\n"
+-#~ "\n"
+-#~ "Press 'OK' to exit the installer."
+-#~ msgstr ""
+-#~ "Nemohu nalézt skupinu svazků %s pro %s.\n"
+-#~ "\n"
+-#~ "KliknÄ›te na 'OK' pro ukonÄení instalace."
+-
+-#~ msgid "Requested Logical Volume Does Not Exist"
+-#~ msgstr "Požadovaný logický svazek neexistuje"
+-
+-#~ msgid ""
+-#~ "Unable to locate logical volume %s to use for %s.\n"
+-#~ "\n"
+-#~ "Press 'OK' to exit the installer."
+-#~ msgstr ""
+-#~ "Nemohu nalézt logický svazek %s pro %s.\n"
+-#~ "\n"
+-#~ "KliknÄ›te na 'OK' pro ukonÄení instalace."
+-
+-#~ msgid "Automatic Partitioning Errors"
+-#~ msgstr "Chyby pÅ™i automatickém vytvoÅ™ení oddílů"
+-
+-#~ msgid ""
+-#~ "The following errors occurred with your partitioning:\n"
+-#~ "\n"
+-#~ "%s\n"
+-#~ "\n"
+-#~ "Press 'OK' to exit the installer."
+-#~ msgstr ""
+-#~ "PÅ™i vytváření oddílů doÅ¡lo k následujícím chybám:\n"
+-#~ "\n"
+-#~ "%s\n"
+-#~ "\n"
+-#~ "KliknÄ›te na 'OK' pro ukonÄení instalace."
+-
+-#~ msgid "Warnings During Automatic Partitioning"
+-#~ msgstr "Varování pÅ™i automatickém vytvoÅ™ení oddílů"
+-
+-#~ msgid ""
+-#~ "Following warnings occurred during automatic partitioning:\n"
+-#~ "\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "PÅ™i automatickém vytvoÅ™ení oddílů vznikla následující varování:\n"
+-#~ "\n"
+-#~ "%s"
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "Press 'OK' to exit the installer."
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "KliknÄ›te na 'OK' pro ukonÄení instalace."
+-
+-#~ msgid "Error Partitioning"
+-#~ msgstr "Chyba pÅ™i vytváření oddílů"
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "Press 'OK' to choose a different partitioning option."
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "KliknÄ›te na 'OK' pro výbÄ›r jiné možnosti rozdÄ›lení disku."
+-
+-#~ msgid ""
+-#~ "The following errors occurred with your partitioning:\n"
+-#~ "\n"
+-#~ "%s\n"
+-#~ "\n"
+-#~ "This can happen if there is not enough space on your hard drive(s) for "
+-#~ "the installation. %s"
+-#~ msgstr ""
+-#~ "PÅ™i vytváření oddílů doÅ¡lo k následujícím chybám:\n"
+-#~ "\n"
+-#~ "%s\n"
+-#~ "\n"
+-#~ "Chyby mohou vzniknout v případÄ›, Å¾e na disku (discích) není pro instalaci "
+-#~ "%s dostatek místa."
+-
+-#~ msgid "Unrecoverable Error"
+-#~ msgstr "Neopravitelná chyba"
+-
+-#~ msgid "Your system will now be rebooted."
+-#~ msgstr "Systém bude restartován."
+-
+-#~ msgid ""
+-#~ "Automatic Partitioning sets partitions based on the selected installation "
+-#~ "type. You also can customize the partitions once they have been created.\n"
+-#~ "\n"
+-#~ "The manual disk partitioning tool, Disk Druid, allows you to create "
+-#~ "partitions in an interactive environment. You can set the file system "
+-#~ "types, mount points, partition sizes, and more."
+-#~ msgstr ""
+-#~ "Automatické vytvoÅ™ení oddílů je závislé na zvoleném typu instalace. Jeho "
+-#~ "výsledek můžete dodateÄnÄ› upravit.\n"
+-#~ "\n"
+-#~ "Disk Druid umožňuje ruÄní vytváření oddílů. Lze urÄit typy systémů "
+-#~ "souborů, místa pÅ™ipojení, velikosti a další podrobnosti."
+-
+-#~ msgid ""
+-#~ "Before automatic partitioning can be set up by the installation program, "
+-#~ "you must choose how to use the space on your hard drives."
+-#~ msgstr ""
+-#~ "PÅ™ed automatickým vytvoÅ™ením oddílů musíte zvolit, jak využít místo na "
+-#~ "vaÅ¡ich pevných discích."
+-
+-#~ msgid "Remove all partitions on this system"
+-#~ msgstr "Odstranit vÅ¡echny oddíly"
+-
+-#~ msgid "Remove all Linux partitions on this system"
+-#~ msgstr "Odstranit vÅ¡echny linuxové oddíly"
+-
+-#~ msgid "Keep all partitions and use existing free space"
+-#~ msgstr "Zachovat vÅ¡echny oddíly a využít jen volný prostor"
+-
+-#~ msgid "Upgrading %s\n"
+-#~ msgstr "Aktualizace %s\n"
+-
+-#~ msgid "Installing %s\n"
+-#~ msgstr "Instalace %s\n"
+-
+-#~ msgid "Warning"
+-#~ msgstr "Varování"
+-
+-#~ msgid ""
+-#~ "Your filesystems have already been activated.  You cannot go back past "
+-#~ "this point.\n"
+-#~ "\n"
+-#~ "Would you like to continue with the installation?"
+-#~ msgstr ""
+-#~ "VaÅ¡e systémy souborů již byly aktivovány. PÅ™ed tento krok se nemůžete "
+-#~ "vrátit.\n"
+-#~ "\n"
+-#~ "Chcete pokraÄovat v instalaci?"
+-
+-#~ msgid "_Exit installer"
+-#~ msgstr "_UkonÄit instalátor"
+-
+-#~ msgid "_Continue"
+-#~ msgstr "_PokraÄovat"
+-
+-#~ msgid "Bootloader"
+-#~ msgstr "ZavadÄ›Ä"
+-
+-#~ msgid "Installing bootloader..."
+-#~ msgstr "Instalace zavadÄ›Äe systému..."
+-
+-#~ msgid ""
+-#~ "No kernel packages were installed on your system.  Your boot loader "
+-#~ "configuration will not be changed."
+-#~ msgstr ""
+-#~ "V systému nebyl nainstalován Å¾Ã¡dný balíÄek s jádrem. Nastavení zavadÄ›Äe "
+-#~ "systému nebude zmÄ›nÄ›no."
+-
+-#~ msgid "Completed"
+-#~ msgstr "Hotovo"
+-
+-#~ msgid "In progress...   "
+-#~ msgstr "Probíhá...   "
+-
+-#~ msgid "Can't have a question in command line mode!"
+-#~ msgstr "Nelze mít dotaz v režimu příkazového Å™Ã¡dku!"
+-
+-#~ msgid "Parted exceptions can't be handled in command line mode!"
+-#~ msgstr ""
+-#~ "Výjimky pro parted nemohou být v režimu příkazového Å™Ã¡dku obslouženy!"
+-
+-#~ msgid ""
+-#~ "An unhandled exception has occurred.  This is most likely a bug.  Please "
+-#~ "save a copy of the detailed exception and file a bug report"
+-#~ msgstr ""
+-#~ "Byla zachycena neobsloužená výjimka, což nejspíše způsobila chyba v "
+-#~ "programu. Uložte prosím podrobný záznam výjimky a vyplňte hlášení o chybÄ›"
+-
+-#~ msgid " with the provider of this software."
+-#~ msgstr " u poskytovatele tohoto software."
+-
+-#~ msgid " against anaconda at %s"
+-#~ msgstr " programu Anaconda na %s"
+-
+-#~ msgid "Dump Written"
+-#~ msgstr "Záznam uložen"
+-
+-#~ msgid ""
+-#~ "Your system's state has been successfully written to the disk. The "
+-#~ "installer will now exit."
+-#~ msgstr ""
+-#~ "Stav vaÅ¡eho systému byl ÃºspěšnÄ› zapsán na disk. Instalace bude nyní "
+-#~ "ukonÄena."
+-
+-#~ msgid "Dump Not Written"
+-#~ msgstr "Záznam nebyl uložen"
+-
+-#~ msgid "There was a problem writing the system state to the disk."
+-#~ msgstr "PÅ™i zápisu stavu systému na disk doÅ¡lo k chybÄ›."
+-
+-#~ msgid ""
+-#~ "Your system's state has been successfully written to the remote host.  "
+-#~ "The installer will now exit."
+-#~ msgstr ""
+-#~ "Stav vaÅ¡eho systému byl ÃºspěšnÄ› zapsán na vzdálený poÄítaÄ. Instalace "
+-#~ "bude nyní ukonÄena."
+-
+-#~ msgid "There was a problem writing the system state to the remote host."
+-#~ msgstr "PÅ™i zápisu záznamu chyby na vzdálený poÄítaÄ doÅ¡lo k chybÄ›."
+-
+-#~ msgid "Checking"
+-#~ msgstr "Kontroluji"
+-
+-#~ msgid "Checking filesystem on %s..."
+-#~ msgstr "Kontroluji systém souborů na %s..."
+-
+-#~ msgid "Resizing"
+-#~ msgstr "MÄ›ním velikost"
+-
+-#~ msgid "Resizing filesystem on %s..."
+-#~ msgstr "MÄ›ním velikost systému souborů na %s..."
+-
+-#~ msgid "Error"
+-#~ msgstr "Chyba"
+-
+-#~ msgid ""
+-#~ "An error occurred migrating %s to ext3.  It is possible to continue "
+-#~ "without migrating this file system if desired.\n"
+-#~ "\n"
+-#~ "Would you like to continue without migrating %s?"
+-#~ msgstr ""
+-#~ "PÅ™i pÅ™evodu (migrace) %s na ext3 doÅ¡lo k chybÄ›. Instalace může pokraÄovat "
+-#~ "i bez pÅ™evodu.\n"
+-#~ "\n"
+-#~ "PÅ™ejete si pokraÄovat bez pÅ™evodu %s?"
+-
+-#~ msgid "RAID Device"
+-#~ msgstr "RAID zařízení"
+-
+-#~ msgid "Apple Bootstrap"
+-#~ msgstr "Apple zavadÄ›Ä"
+-
+-#~ msgid "PPC PReP Boot"
+-#~ msgstr "PPC PReP zavadÄ›Ä"
+-
+-#~ msgid "First sector of boot partition"
+-#~ msgstr "První sektor zavádÄ›cího oddílu"
+-
+-#~ msgid "Master Boot Record (MBR)"
+-#~ msgstr "Hlavní zavádÄ›cí záznam (MBR)"
+-
+-#~ msgid ""
+-#~ "An error occurred trying to initialize swap on device %s.  This problem "
+-#~ "is serious, and the install cannot continue.\n"
+-#~ "\n"
+-#~ "Press <Enter> to exit the installer."
+-#~ msgstr ""
+-#~ "PÅ™i inicializaci odkládacího prostoru (swap) na zařízení %s doÅ¡lo k "
+-#~ "chybÄ›. Chyba je závažná a instalace nemůže pokraÄovat.\n"
+-#~ "\n"
+-#~ "StisknÄ›te <Enter> pro ukonÄení instalace."
+-
+-#~ msgid "Skip"
+-#~ msgstr "Vynechat"
+-
+-#~ msgid ""
+-#~ "The swap device:\n"
+-#~ "\n"
+-#~ "     /dev/%s\n"
+-#~ "\n"
+-#~ "is a version 0 Linux swap partition. If you want to use this device, you "
+-#~ "must reformat as a version 1 Linux swap partition. If you skip it, the "
+-#~ "installer will ignore it during the installation."
+-#~ msgstr ""
+-#~ "Odkládací (swap) zařízení:\n"
+-#~ "\n"
+-#~ "     /dev/%s\n"
+-#~ "\n"
+-#~ "je linuxový odkládací oddíl verze 0. Chcete-li zařízení použít, musíte ho "
+-#~ "pÅ™eformátovat na verzi 1. Vynecháte-li zmÄ›nu na verzi 1, bude instalátor "
+-#~ "odkládací oddíl v průbÄ›hu instalace ignorovat."
+-
+-#~ msgid "Reformat"
+-#~ msgstr "PÅ™eformátovat"
+-
+-#~ msgid ""
+-#~ "The swap device:\n"
+-#~ "\n"
+-#~ "     /dev/%s\n"
+-#~ "\n"
+-#~ "in your /etc/fstab file is currently in use as a software suspend "
+-#~ "partition, which means your system is hibernating. To perform an upgrade, "
+-#~ "please shut down your system rather than hibernating it."
+-#~ msgstr ""
+-#~ "Odkládací (swap) zařízení:\n"
+-#~ "\n"
+-#~ "     /dev/%s\n"
+-#~ "\n"
+-#~ "v /etc/fstab je právÄ› používáno jako oddíl pro uspání poÄítaÄe (software "
+-#~ "suspend), což znamená, Å¾e je systém uspán (hibernován). PÅ™ed provedením "
+-#~ "aktualizace systém radÄ›ji ÃºplnÄ› vypnÄ›te a nepoužívejte pÅ™itom režim "
+-#~ "spánku."
+-
+-#~ msgid ""
+-#~ "The swap device:\n"
+-#~ "\n"
+-#~ "     /dev/%s\n"
+-#~ "\n"
+-#~ "in your /etc/fstab file is currently in use as a software suspend "
+-#~ "partition, which means your system is hibernating. If you are performing "
+-#~ "a new install, make sure the installer is set to format all swap "
+-#~ "partitions."
+-#~ msgstr ""
+-#~ "Odkládací (swap) zařízení:\n"
+-#~ "\n"
+-#~ "     /dev/%s\n"
+-#~ "\n"
+-#~ "v /etc/fstab je právÄ› používáno jako oddíl pro uspání poÄítaÄe (software "
+-#~ "suspend), což znamená, Å¾e je systém uspán (hibernován). PÅ™ed spuÅ¡tÄ›ním "
+-#~ "nové instalace se ujistÄ›te, Å¾e instalátor vÅ¡echny odkládací oddíly "
+-#~ "naformátuje."
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "Choose Skip if you want the installer to ignore this partition during the "
+-#~ "upgrade.  Choose Format to reformat the partition as swap space."
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "Zvolte Vynechat, chcete-li, aby instalátor tento oddíl v průbÄ›hu "
+-#~ "aktualizace ignoroval. Zvolte Formátovat, má-li být oddíl naformátován "
+-#~ "jako odkládací oddíl (swap)."
+-
+-#~ msgid ""
+-#~ "Error enabling swap device %s: %s\n"
+-#~ "\n"
+-#~ "Devices in /etc/fstab should be specified by label, not by device name.\n"
+-#~ "\n"
+-#~ "Press OK to exit the installer."
+-#~ msgstr ""
+-#~ "Chyba pÅ™i povolování odkládacího zařízení %s: %s\n"
+-#~ "\n"
+-#~ "Zařízení v /etc/fstab musí být urÄena jmenovkou (label), ne názvem "
+-#~ "zařízení.\n"
+-#~ "\n"
+-#~ "UkonÄete instalaci stisknutím OK."
+-
+-#~ msgid ""
+-#~ "Error enabling swap device %s: %s\n"
+-#~ "\n"
+-#~ "The /etc/fstab on your upgrade partition does not reference a valid swap "
+-#~ "partition.\n"
+-#~ "\n"
+-#~ "Press OK to exit the installer"
+-#~ msgstr ""
+-#~ "Chyba pÅ™i povolování odkládacího zařízení %s: %s\n"
+-#~ "\n"
+-#~ "/etc/fstab na oddílu urÄeném pro aktualizaci se neodkazuje na platný "
+-#~ "odkládací oddíl.\n"
+-#~ "\n"
+-#~ "UkonÄete instalaci stisknutím OK."
+-
+-#~ msgid ""
+-#~ "Error enabling swap device %s: %s\n"
+-#~ "\n"
+-#~ "This most likely means this swap partition has not been initialized.\n"
+-#~ "\n"
+-#~ "Press OK to exit the installer."
+-#~ msgstr ""
+-#~ "Chyba pÅ™i povolování odkládacího zařízení %s: %s\n"
+-#~ "\n"
+-#~ "Chyba je obvykle způsobena tím, Å¾e odkládací prostor není naformátován.\n"
+-#~ "\n"
+-#~ "UkonÄete instalaci stisknutím OK."
+-
+-#~ msgid ""
+-#~ "An error occurred trying to format %s.  This problem is serious, and the "
+-#~ "install cannot continue.\n"
+-#~ "\n"
+-#~ "Press <Enter> to exit the installer."
+-#~ msgstr ""
+-#~ "PÅ™i formátování oddílu %s doÅ¡lo k chybÄ›.  Problém je závažný a instalace "
+-#~ "nemůže pokraÄovat.\n"
+-#~ "\n"
+-#~ "StisknÄ›te <Enter> pro ukonÄení instalace."
+-
+-#~ msgid ""
+-#~ "An error occurred trying to migrate %s.  This problem is serious, and the "
+-#~ "install cannot continue.\n"
+-#~ "\n"
+-#~ "Press <Enter> to exit the installer."
+-#~ msgstr ""
+-#~ "PÅ™i pÅ™evodu (migraci) oddílu %s doÅ¡lo k chybÄ›. Problém je závažný a "
+-#~ "instalace nemůže pokraÄovat.\n"
+-#~ "\n"
+-#~ "StisknÄ›te <Enter> pro ukonÄení instalace."
+-
+-#~ msgid "Invalid mount point"
+-#~ msgstr "Neplatné místo pÅ™ipojení"
+-
+-#~ msgid ""
+-#~ "An error occurred when trying to create %s.  Some element of this path is "
+-#~ "not a directory. This is a fatal error and the install cannot continue.\n"
+-#~ "\n"
+-#~ "Press <Enter> to exit the installer."
+-#~ msgstr ""
+-#~ "PÅ™i pokusu o vytvoÅ™ení %s doÅ¡lo k chybÄ›. NÄ›která Äást cesty není adresář. "
+-#~ "Problém je závažný a instalace nemůže pokraÄovat.\n"
+-#~ "\n"
+-#~ "StisknÄ›te <Enter> pro ukonÄení instalace."
+-
+-#~ msgid ""
+-#~ "An error occurred when trying to create %s: %s.  This is a fatal error "
+-#~ "and the install cannot continue.\n"
+-#~ "\n"
+-#~ "Press <Enter> to exit the installer."
+-#~ msgstr ""
+-#~ "PÅ™i pokusu o vytvoÅ™ení %s doÅ¡lo k chybÄ›: %s. Chyba je závažná a instalace "
+-#~ "nemůže pokraÄovat.\n"
+-#~ "\n"
+-#~ "StisknÄ›te <Enter> pro ukonÄení instalace."
+-
+-#~ msgid ""
+-#~ "An error occurred mounting device %s as %s.  You may continue "
+-#~ "installation, but there may be problems."
+-#~ msgstr ""
+-#~ "V pokusu o pÅ™ipojení zařízení %s jako %s doÅ¡lo k chybÄ›. Můžete pokraÄovat "
+-#~ "v instalaci, mohou vÅ¡ak nastat problémy."
+-
+-#~ msgid ""
+-#~ "Error mounting device %s as %s: %s\n"
+-#~ "\n"
+-#~ "Devices in /etc/fstab should be specified by label, not by device name.\n"
+-#~ "\n"
+-#~ "Press OK to exit the installer."
+-#~ msgstr ""
+-#~ "Chyba pÅ™i pÅ™ipojování zařízení %s jako %s: %s\n"
+-#~ "\n"
+-#~ "Zařízení v souboru /etc/fstab musí být urÄena jmenovkou (label) a ne "
+-#~ "názvem zařízení.\n"
+-#~ "\n"
+-#~ "KliknÄ›te na 'OK' pro ukonÄení instalace."
+-
+-#~ msgid ""
+-#~ "Error mounting device %s as %s: %s\n"
+-#~ "\n"
+-#~ "This most likely means this partition has not been formatted.\n"
+-#~ "\n"
+-#~ "Press OK to exit the installer."
+-#~ msgstr ""
+-#~ "Chyba pÅ™i pÅ™ipojování zařízení %s jako %s: %s\n"
+-#~ "\n"
+-#~ "Problém je obvykle způsoben tím, Å¾e zařízení není naformátováno.\n"
+-#~ "\n"
+-#~ "KliknÄ›te na 'OK' pro ukonÄení instalace."
+-
+-#~ msgid ""
+-#~ "Error finding / entry.\n"
+-#~ "\n"
+-#~ "This is most likely means that your fstab is incorrect.\n"
+-#~ "\n"
+-#~ "Press OK to exit the installer."
+-#~ msgstr ""
+-#~ "Chyba pÅ™i hledání položky /.\n"
+-#~ "\n"
+-#~ "Problém je obvykle způsoben tím, Å¾e tabulka fstab není správná.\n"
+-#~ "\n"
+-#~ "KliknÄ›te na 'OK' pro ukonÄení instalace."
+-
+-#~ msgid "Duplicate Labels"
+-#~ msgstr "Duplicitní jmenovky"
+-
+-#~ msgid ""
+-#~ "Multiple devices on your system are labelled %s.  Labels across devices "
+-#~ "must be unique for your system to function properly.\n"
+-#~ "\n"
+-#~ "Please fix this problem and restart the installation process."
+-#~ msgstr ""
+-#~ "NÄ›kolik zařízení ve vaÅ¡em poÄítaÄi má jmenovku %s. Aby váš systém správnÄ› "
+-#~ "fungoval, musí mít jmenovky různé názvy.\n"
+-#~ "\n"
+-#~ "Opravte jmenovky a spusÅ¥te instalaci znovu."
+-
+-#~ msgid ""
+-#~ "An invalid label was found on device %s.  Please fix this problem and "
+-#~ "restart the installation process."
+-#~ msgstr ""
+-#~ "Na zařízení %s je neplatná jmenovka (label). Opravte problém a spusÅ¥te "
+-#~ "instalaÄní program znovu."
+-
+-#~ msgid "Formatting"
+-#~ msgstr "Formátování"
+-
+-#~ msgid "Formatting %s file system..."
+-#~ msgstr "Formátování systému souborů %s..."
+-
+-#~ msgid "An error occurred copying the screenshots over."
+-#~ msgstr "PÅ™i kopírování snímků obrazovky doÅ¡lo k chybÄ›."
+-
+-#~ msgid "Screenshots Copied"
+-#~ msgstr "Snímek obrazovky zkopírován"
+-
+-#~ msgid ""
+-#~ "The screenshots have been saved into the directory:\n"
+-#~ "\n"
+-#~ "\t/root/anaconda-screenshots/\n"
+-#~ "\n"
+-#~ "You can access these when you reboot and login as root."
+-#~ msgstr ""
+-#~ "Snímky obrazovky byly uloženy do adresáře\n"
+-#~ "\n"
+-#~ "\t/root/anaconda-screenshots/\n"
+-#~ "\n"
+-#~ "Soubory můžete použít až po restartu poÄítaÄe a pÅ™ihlášení se jako root."
+-
+-#~ msgid "Saving Screenshot"
+-#~ msgstr "Ukládám snímek obrazovky"
+-
+-#~ msgid "A screenshot named '%s' has been saved."
+-#~ msgstr "Snímek obrazovky pojmenovaný '%s' byl uložen."
+-
+-#~ msgid "Error Saving Screenshot"
+-#~ msgstr "Chyba pÅ™i ukládání snímku obrazovky"
+-
+-#~ msgid ""
+-#~ "An error occurred while saving the screenshot.  If this occurred during "
+-#~ "package installation, you may need to try several times for it to succeed."
+-#~ msgstr ""
+-#~ "PÅ™i ukládání snímku obrazovky doÅ¡lo k chybÄ›. Jestliže k ní doÅ¡lo v "
+-#~ "průbÄ›hu instalace balíÄků, můžete zkusit získat snímek obrazovky "
+-#~ "opakovanÄ›."
+-
+-#~ msgid "Fix"
+-#~ msgstr "Opravit"
+-
+-#~ msgid "Yes"
+-#~ msgstr "Ano"
+-
+-#~ msgid "No"
+-#~ msgstr "Ne"
+-
+-#~ msgid "Retry"
+-#~ msgstr "Znovu"
+-
+-#~ msgid "Ignore"
+-#~ msgstr "Ignorovat"
+-
+-#~ msgid "Cancel"
+-#~ msgstr "ZruÅ¡it"
+-
+-#~ msgid "Installation Key"
+-#~ msgstr "InstalaÄní klíÄ"
+-
+-#~ msgid "Error with passphrase"
+-#~ msgstr "Chyba v hesle"
+-
+-#~ msgid "The passphrases you entered were different.  Please try again."
+-#~ msgstr "Hesla, která jste zadali, jsou různá. Zkuste to prosím znovu."
+-
+-#~ msgid "The passphrase must be at least eight characters long."
+-#~ msgstr "Heslo musí být alespoň osm znaků dlouhé."
+-
+-#~ msgid ""
+-#~ "Device %s is encrypted. In order to access the device's contents during "
+-#~ "installation you must enter the device's passphrase below."
+-#~ msgstr ""
+-#~ "Zařízení %s je Å¡ifrováno. Abysteo mohli k obsahu tohoto zařízení "
+-#~ "pÅ™istupovat pÅ™i instalaci, musíte níže zadat heslo zařízení."
+-
+-#~ msgid "_Debug"
+-#~ msgstr "_LadÄ›ní"
+-
+-#~ msgid "Exit installer"
+-#~ msgstr "UkonÄit instalátor"
+-
+-#~ msgid "Debug"
+-#~ msgstr "LadÄ›ní"
+-
+-#~ msgid "Exception Occurred"
+-#~ msgstr "DoÅ¡lo k výjimce"
+-
+-#~ msgid "Error Parsing Kickstart Config"
+-#~ msgstr "Chyba pÅ™i zpracovávání kickstart souboru"
+-
+-#~ msgid "default:LTR"
+-#~ msgstr "default:LTR"
+-
+-#~ msgid "Error!"
+-#~ msgstr "Chyba!"
+-
+-#~ msgid ""
+-#~ "An error occurred when attempting to load an installer interface "
+-#~ "component.\n"
+-#~ "\n"
+-#~ "className = %s"
+-#~ msgstr ""
+-#~ "Chyba pÅ™i pokusu o naÄtení komponenty rozhraní instalaÄního programu.\n"
+-#~ "\n"
+-#~ "className = %s"
+-
+-#~ msgid "_Exit"
+-#~ msgstr "_Konec"
+-
+-#~ msgid "_Retry"
+-#~ msgstr "_Znovu"
+-
+-#~ msgid "The installer will now exit..."
+-#~ msgstr "InstalaÄní program bude ukonÄen..."
+-
+-#~ msgid "Your system will now be rebooted..."
+-#~ msgstr "PoÄítaÄ bude restartován..."
+-
+-#~ msgid "_Reboot"
+-#~ msgstr "_Restartovat"
+-
+-#~ msgid "%s Installer"
+-#~ msgstr "InstalaÄní program %s"
+-
+-#~ msgid "Unable to load title bar"
+-#~ msgstr "Nemohu pÅ™eÄíst titulek"
+-
+-#~ msgid "Install Window"
+-#~ msgstr "InstalaÄní okno"
+-
+-#~ msgid ""
+-#~ "The ISO image %s has a size which is not a multiple of 2048 bytes.  This "
+-#~ "may mean it was corrupted on transfer to this computer.\n"
+-#~ "\n"
+-#~ "It is recommended that you exit and abort your installation, but you can "
+-#~ "choose to continue if you think this is in error."
+-#~ msgstr ""
+-#~ "ISO obraz %s má velikost, která není násobkem 2048 bajtů. Obraz byl "
+-#~ "pravdÄ›podobnÄ› pÅ™i pÅ™enosu poÅ¡kozen.\n"
+-#~ "\n"
+-#~ "DoporuÄujeme pÅ™eruÅ¡it a ukonÄit instalaci. Pokud si myslíte, Å¾e to není "
+-#~ "chyba, můžete v instalaci pokraÄovat."
+-
+-#~ msgid "Couldn't Mount ISO Source"
+-#~ msgstr "Nelze pÅ™ipojit ISO obraz"
+-
+-#~ msgid ""
+-#~ "An error occurred mounting the source device %s.  This may happen if your "
+-#~ "ISO images are located on an advanced storage device like LVM or RAID, or "
+-#~ "if there was a problem mounting a partition.  Click exit to abort the "
+-#~ "installation."
+-#~ msgstr ""
+-#~ "PÅ™i pÅ™ipojováni ISO obrazu %s doÅ¡lo k chybÄ›. Chyba může být způsobena "
+-#~ "umístÄ›ním ISO obrazů na zařízení s LVM nebo RAID nebo pÅ™i problémech s "
+-#~ "pÅ™ipojením oddílu, kde jsou obrazy umístÄ›ny. Pro opuÅ¡tÄ›ní instalace "
+-#~ "kliknÄ›te na UkonÄit."
+-
+-#~ msgid "Missing ISO 9660 Image"
+-#~ msgstr "ChybÄ›jící obraz formátu ISO 9660"
+-
+-#~ msgid ""
+-#~ "The installer has tried to mount image #%s, but cannot find it on the "
+-#~ "hard drive.\n"
+-#~ "\n"
+-#~ "Please copy this image to the drive and click Retry. Click Exit  to abort "
+-#~ "the installation."
+-#~ msgstr ""
+-#~ "Instalátor se pokusil pÅ™ipojit obraz #%s, ale na pevném disku se ho "
+-#~ "nepodaÅ™ilo nalézt.\n"
+-#~ "\n"
+-#~ "Zkopírujte požadovaný obraz na disk a stisknÄ›te 'Znovu'. Chcete-li "
+-#~ "instalaci opustit, zvolte UkonÄit."
+-
+-#~ msgid ""
+-#~ "The software you have selected to install will require the following "
+-#~ "discs:\n"
+-#~ "\n"
+-#~ "%s\n"
+-#~ "Please have these ready before proceeding with the installation.  If you "
+-#~ "need to abort the installation and exit please select \"Reboot\"."
+-#~ msgstr ""
+-#~ "Pro programy, které jste se rozhodli nainstalovat, budou potÅ™eba "
+-#~ "následující média:\n"
+-#~ "\n"
+-#~ "%s\n"
+-#~ "PÅ™ipravte si je pÅ™ed pokraÄováním v instalaci. Pokud potÅ™ebujete "
+-#~ "instalaci pÅ™eruÅ¡it a restartovat, zvolte 'Restartovat'."
+-
+-#~ msgid "_Back"
+-#~ msgstr "_PÅ™edchozí"
+-
+-#~ msgid ""
+-#~ "An error occurred unmounting the disc.  Please make sure you're not "
+-#~ "accessing %s from the shell on tty2 and then click OK to retry."
+-#~ msgstr ""
+-#~ "PÅ™i odpojování média doÅ¡lo k chybÄ›. Zkontrolujte, Å¾e v příkazovém Å™Ã¡dku "
+-#~ "shellu na tty2 (druhá kvirtuální konzole) nepÅ™istupujete na %s a "
+-#~ "stisknÄ›te 'OK' pro další pokus."
+-
+-#~ msgid "Install on System"
+-#~ msgstr "Typ instalace"
+-
+-#~ msgid "Initializing iSCSI initiator"
+-#~ msgstr "Inicializace iSCSI iniciátoru"
+-
+-#~ msgid ""
+-#~ "There was an error running the kickstart script at line %s.  You may "
+-#~ "examine the output in %s.  This is a fatal error and your install will be "
+-#~ "aborted.  Press the OK button to exit the installer."
+-#~ msgstr ""
+-#~ "PÅ™i provádÄ›ní kickstart skriptu doÅ¡lo k chybÄ› na Å™Ã¡dku %s. Výstup můžete "
+-#~ "zkontrolovat v %s. Toto je závažná chyba a instalace bude ukonÄena. "
+-#~ "UkonÄete instalaci stisknutím tlaÄítka OK."
+-
+-#~ msgid "Scriptlet Failure"
+-#~ msgstr "Chyba skriptu"
+-
+-#~ msgid "Running..."
+-#~ msgstr "SpouÅ¡tím..."
+-
+-#~ msgid "Running post-install scripts"
+-#~ msgstr "SpouÅ¡tím poinstalaÄní skripty"
+-
+-#~ msgid "Running pre-install scripts"
+-#~ msgstr "SpouÅ¡tím pÅ™edinstalaÄní skripty"
+-
+-#~ msgid "Missing Package"
+-#~ msgstr "ChybÄ›jící BalíÄek"
+-
+-#~ msgid ""
+-#~ "You have specified that the package '%s' should be installed.  This "
+-#~ "package does not exist. Would you like to continue or abort your "
+-#~ "installation?"
+-#~ msgstr ""
+-#~ "V kickstart souboru je požadována instalace balíÄku '%s'. Takový balíÄek "
+-#~ "neexistuje. Chcete pokraÄovat nebo ukonÄit instalaci?"
+-
+-#~ msgid "_Abort"
+-#~ msgstr "_PÅ™eruÅ¡it"
+-
+-#~ msgid "Missing Group"
+-#~ msgstr "ChybÄ›jící skupina"
+-
+-#~ msgid ""
+-#~ "You have specified that the group '%s' should be installed. This group "
+-#~ "does not exist. Would you like to continue or abort your installation?"
+-#~ msgstr ""
+-#~ "V kickstart souboru je požadována instalace skupiny '%s'. Taková skupina "
+-#~ "neexistuje. Chcete pokraÄovat nebo ukonÄit instalaci?"
+-
+-#~ msgid "Unable to find image"
+-#~ msgstr "Nelze najít obraz"
+-
+-#~ msgid ""
+-#~ "The given location isn't a valid %s live CD to use as an installation "
+-#~ "source."
+-#~ msgstr ""
+-#~ "Na zadaném místÄ› není platné %s Live CD, které by mohlo být použito pro "
+-#~ "instalaci."
+-
+-#~ msgid "Copying live image to hard drive."
+-#~ msgstr "Kopírování live obrazu na pevný disk."
+-
+-#~ msgid "Doing post-installation"
+-#~ msgstr "DokonÄení instalace"
+-
+-#~ msgid ""
+-#~ "Performing post-installation filesystem changes.  This may take several "
+-#~ "minutes..."
+-#~ msgstr "Probíhá dokonÄení instalace. Může to chvíli trvat..."
+-
+-#~ msgid ""
+-#~ "The root filesystem you created is not large enough for this live image "
+-#~ "(%.2f MB required)."
+-#~ msgstr ""
+-#~ "KoÅ™enový systém souborů, který jste vytvoÅ™ili, není pro tento Å¾ivý obraz "
+-#~ "dost velký (je tÅ™eba %.2f MB)."
+-
+-#~ msgid "Hostname must be 64 or less characters in length."
+-#~ msgstr "Jméno poÄítaÄe musí být dlouhé nejvýše 64 znaků."
+-
+-#~ msgid ""
+-#~ "Hostname must start with a valid character in the range 'a-z' or 'A-Z'"
+-#~ msgstr ""
+-#~ "Jméno poÄítaÄe musí zaÄínat znakem 'a-z' nebo 'A-Z' (bez háÄků a Äárek)"
+-
+-#~ msgid "Hostnames can only contain the characters 'a-z', 'A-Z', '-', or '.'"
+-#~ msgstr ""
+-#~ "Jméno poÄítaÄe může obsahovat jen znaky 'a-z', 'A-Z', '-' nebo '.' (bez "
+-#~ "háÄků a Äárek)"
+-
+-#~ msgid "IP address is missing."
+-#~ msgstr "Chybí IP adresa."
+-
+-#~ msgid ""
+-#~ "IPv4 addresses must contain four numbers between 0 and 255, separated by "
+-#~ "periods."
+-#~ msgstr ""
+-#~ "IPv4 adresy musí obsahovat ÄtyÅ™i Äísla mezi 0 a 255 oddÄ›lená teÄkami."
+-
+-#~ msgid "'%s' is not a valid IPv6 address."
+-#~ msgstr "'%s' není platná IPv6 adresa."
+-
+-#~ msgid "'%s' is an invalid IP address."
+-#~ msgstr "'%s' není platná IP adresa."
+-
+-#~ msgid "Invalid Key"
+-#~ msgstr "Neplatný klíÄ"
+-
+-#~ msgid "The key you entered is invalid."
+-#~ msgstr "Vložený klíĠnení platný."
+-
+-#~ msgid "_Skip"
+-#~ msgstr "_PÅ™eskoÄit"
+-
+-#~ msgid "Warning! This is pre-release software!"
+-#~ msgstr "Varování! Používáte pÅ™edběžnou verzi!"
+-
+-#~ msgid ""
+-#~ "Thank you for downloading this pre-release of %s.\n"
+-#~ "\n"
+-#~ "This is not a final release and is not intended for use on production "
+-#~ "systems.  The purpose of this release is to collect feedback from "
+-#~ "testers, and it is not suitable for day to day usage.\n"
+-#~ "\n"
+-#~ "To report feedback, please visit:\n"
+-#~ "\n"
+-#~ "   %s\n"
+-#~ "\n"
+-#~ "and file a report against '%s'.\n"
+-#~ msgstr ""
+-#~ "DÄ›kujeme vám, Å¾e jste si stáhli pÅ™edběžnou verzi (pre-release) %s.\n"
+-#~ "\n"
+-#~ "PÅ™edběžná verze není jeÅ¡tÄ› dokonÄeným produktem a není urÄena pro použití "
+-#~ "na důležitých poÄítaÄích ani pro běžné použití. ÃšÄelem pÅ™edběžné verze je "
+-#~ "umožnit testování a získat ohlasy a hlášení o chybách.\n"
+-#~ "\n"
+-#~ "Pro nahlášení svých zkuÅ¡eností navÅ¡tivte prosím:\n"
+-#~ "\n"
+-#~ "    %s\n"
+-#~ "\n"
+-#~ "a vyplňte hlášení chyb pro '%s'.\n"
+-
+-#~ msgid "_Install anyway"
+-#~ msgstr "PÅ™esto _instalovat"
+-
+-#~ msgid "Foreign"
+-#~ msgstr "Cizí"
+-
+-#~ msgid ""
+-#~ "The device %s is LDL formatted instead of CDL formatted.  LDL formatted "
+-#~ "DASDs are not supported for usage during an install of %s.  If you wish "
+-#~ "to use this disk for installation, it must be re-initialized causing the "
+-#~ "loss of ALL DATA on this drive.\n"
+-#~ "\n"
+-#~ "Would you like to reformat this DASD using CDL format?"
+-#~ msgstr ""
+-#~ "Zařízení %s je naformátován na LDL místo na CDL. DASD s formátem LDL "
+-#~ "nejsou pÅ™i instalaci %s podporovány. Pokud chcete disk použít pro "
+-#~ "instalaci, musí být znovu inicializován, což způsobí ztrátu VÅ ECH DAT na "
+-#~ "disku.\n"
+-#~ "\n"
+-#~ "Chcete DASD pÅ™eformátovat na formát CDL?"
+-
+-#~ msgid ""
+-#~ "/dev/%s currently has a %s partition layout.  To use this drive for the "
+-#~ "installation of %s, it must be re-initialized, causing the loss of ALL "
+-#~ "DATA on this drive.\n"
+-#~ "\n"
+-#~ "Would you like to re-initialize this drive?"
+-#~ msgstr ""
+-#~ "Zařízení /dev/%s má tabulku rozložení oddílů %s. Abyste na disk mohli "
+-#~ "nainstalovat %s, musí být znovu inicializován, což znamená ztrátu VÅ ECH "
+-#~ "DAT na disku.\n"
+-#~ "\n"
+-#~ "Chcete disk inicializovat?"
+-
+-#~ msgid "_Ignore drive"
+-#~ msgstr "_Ignorovat disk"
+-
+-#~ msgid "_Re-initialize drive"
+-#~ msgstr "_Inicializovat disk"
+-
+-#~ msgid "Initializing"
+-#~ msgstr "Inicializace"
+-
+-#~ msgid "Please wait while formatting drive %s...\n"
+-#~ msgstr "ÄŒekejte prosím, formátuje se disk %s...\n"
+-
+-#~ msgid ""
+-#~ "The partition table on device %s was unreadable. To create new partitions "
+-#~ "it must be initialized, causing the loss of ALL DATA on this drive.\n"
+-#~ "\n"
+-#~ "This operation will override any previous installation choices about "
+-#~ "which drives to ignore.\n"
+-#~ "\n"
+-#~ "Would you like to initialize this drive, erasing ALL DATA?"
+-#~ msgstr ""
+-#~ "Tabulka oddílů na zařízení %s je neÄitelná. Aby mohly být vytvoÅ™eny nové "
+-#~ "oddíly, musí být tabulka oddílů inicializována, což znamená ztrátu VÅ ECH "
+-#~ "DAT na disku.\n"
+-#~ "\n"
+-#~ "Operace nebere ohled na dřívÄ›jší rozhodnutí, které disky chcete "
+-#~ "ignorovat.\n"
+-#~ "\n"
+-#~ "Chcete inicializovat disk a smazat VÅ ECHNA DATA?"
+-
+-#~ msgid ""
+-#~ "The partition table on device %s (%s) was unreadable. To create new "
+-#~ "partitions it must be initialized, causing the loss of ALL DATA on this "
+-#~ "drive.\n"
+-#~ "\n"
+-#~ "This operation will override any previous installation choices about "
+-#~ "which drives to ignore.\n"
+-#~ "\n"
+-#~ "Would you like to initialize this drive, erasing ALL DATA?"
+-#~ msgstr ""
+-#~ "Tabulka oddílů na zařízení %s (%s) je neÄitelná. Aby mohly být vytvoÅ™eny "
+-#~ "nové oddíly, musí být tabulka oddílů inicializována, což znamená ztrátu "
+-#~ "VÅ ECH DAT na disku.\n"
+-#~ "\n"
+-#~ "Operace nebere ohled na dřívÄ›jší rozhodnutí, které disky chcete "
+-#~ "ignorovat.\n"
+-#~ "\n"
+-#~ "Chcete inicializovat disk a smazat VÅ ECHNA DATA?"
+-
+-#~ msgid ""
+-#~ "The drive /dev/%s has more than 15 partitions on it.  The SCSI subsystem "
+-#~ "in the Linux kernel does not allow for more than 15 partitons at this "
+-#~ "time.  You will not be able to make changes to the partitioning of this "
+-#~ "disk or use any partitions beyond /dev/%s15 in %s"
+-#~ msgstr ""
+-#~ "Zařízení /dev/%s obsahuje více než 15 oddílů. SCSI subsystém v jádÅ™e "
+-#~ "Linuxu zatím více, než 15 zařízení neumožňuje. Nebude možné provádÄ›t "
+-#~ "zmÄ›ny v rozdÄ›lení disku ani používat oddíly za 15. oddílem /dev/%s v %s."
+-
+-#~ msgid "No Drives Found"
+-#~ msgstr "Nenalezeny Å¾Ã¡dné disky"
+-
+-#~ msgid ""
+-#~ "An error has occurred - no valid devices were found on which to create "
+-#~ "new file systems. Please check your hardware for the cause of this "
+-#~ "problem."
+-#~ msgstr ""
+-#~ "DoÅ¡lo k chybÄ› - nebyla nalezena Å¾Ã¡dná platná zařízení, na nichž by bylo "
+-#~ "možné vytvoÅ™it nové systémy souborů. Může se jednat o hardwarovou chybu."
+-
+-#~ msgid "Please enter a volume group name."
+-#~ msgstr "Vložte jméno skupiny svazků (VG)."
+-
+-#~ msgid "Volume Group Names must be less than 128 characters"
+-#~ msgstr "Jméno skupiny svazků (VG) musí mít ménÄ› než 128 znaků"
+-
+-#~ msgid "Error - the volume group name %s is not valid."
+-#~ msgstr "Chyba - jméno skupiny svazku (VG) %s není platné."
+-
+-#~ msgid ""
+-#~ "Error - the volume group name contains illegal characters or spaces.  "
+-#~ "Acceptable characters are letters, digits, '.' or '_'."
+-#~ msgstr ""
+-#~ "Chyba - jméno skupiny svazků obsahuje neplatné znaky nebo mezery. "
+-#~ "Povolené znaky jsou písmena, Äíslice, '.' a '_'."
+-
+-#~ msgid "Please enter a logical volume name."
+-#~ msgstr "Vložte jméno logického svazku (LV)."
+-
+-#~ msgid "Logical Volume Names must be less than 128 characters"
+-#~ msgstr "Jméno logického svazku (LV) musí mít ménÄ› než 128 znaků"
+-
+-#~ msgid ""
+-#~ "Error - the logical volume name contains illegal characters or spaces.  "
+-#~ "Acceptable characters are letters, digits, '.' or '_'."
+-#~ msgstr ""
+-#~ "Chyba - jméno logického svazku (LV) obsahuje nedovolené znaky nebo "
+-#~ "mezery. Povolené znaky jsou písmena, Äíslice, '.' a '_'."
+-
+-#~ msgid ""
+-#~ "The mount point %s is invalid.  Mount points must start with '/' and "
+-#~ "cannot end with '/', and must contain printable characters and no spaces."
+-#~ msgstr ""
+-#~ "Místo pÅ™ipojení %s není platné. Musí zaÄínat znakem '/' a nesmí tímto "
+-#~ "znakem konÄit. Může obsahovat pouze tisknutelné znaky a Å¾Ã¡dné mezery."
+-
+-#~ msgid "Please specify a mount point for this partition."
+-#~ msgstr "Zvolte místo pÅ™ipojení oddílu."
+-
+-#~ msgid "This partition is part of the RAID device /dev/md%s."
+-#~ msgstr "Oddíl je Äást RAID zařízení /dev/md%s."
+-
+-#~ msgid "This partition is part of a RAID device."
+-#~ msgstr "Oddíl je Äást RAID zařízení."
+-
+-#~ msgid "This partition is part of the LVM volume group '%s'."
+-#~ msgstr "Oddíl je Äást LVM skupiny svazků (VG) '%s'."
+-
+-#~ msgid "This partition is part of a LVM volume group."
+-#~ msgstr "Oddíl je Äást LVM skupiny svazků (VG)."
+-
+-#~ msgid "Unable To Delete"
+-#~ msgstr "Nelze odstranit"
+-
+-#~ msgid "You must first select a partition to delete."
+-#~ msgstr "Nejprve musíte zvolit oddíl, který chcete odstranit."
+-
+-#~ msgid "You cannot delete a partition of a LDL formatted DASD."
+-#~ msgstr "Nelze odstranit oddíl DASD formátovaného LDL."
+-
+-#~ msgid ""
+-#~ "You cannot delete this partition, as it is an extended partition which "
+-#~ "contains %s"
+-#~ msgstr "Nelze odstranit rozšířený (extended) oddíl, protože obsahuje %s"
+-
+-#~ msgid "This partition is holding the data for the hard drive install."
+-#~ msgstr "Oddíl obsahuje data pro instalaci z disku."
+-
+-#~ msgid ""
+-#~ "You cannot delete this partition:\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Nelze odstranit oddíl:\n"
+-#~ "\n"
+-
+-#~ msgid "Confirm Delete"
+-#~ msgstr "Potvrdit odstranÄ›ní"
+-
+-#~ msgid "You are about to delete all partitions on the device '/dev/%s'."
+-#~ msgstr "OdstranÄ›ní vÅ¡ech oddílů na zařízení /dev/%s."
+-
+-#~ msgid "Notice"
+-#~ msgstr "UpozornÄ›ní"
+-
+-#~ msgid ""
+-#~ "The following partitions were not deleted because they are in use:\n"
+-#~ "\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "Následující oddíly nebyly odstranÄ›ny, protože jsou právÄ› používány:\n"
+-#~ "\n"
+-#~ "%s"
+-
+-#~ msgid ""
+-#~ "You cannot edit this partition:\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Nelze upravit oddíl:\n"
+-#~ "\n"
+-
+-#~ msgid ""
+-#~ "You cannot edit this partition, as it is an extended partition which "
+-#~ "contains %s"
+-#~ msgstr "Nelze upravit rozšířený (extended) oddíl, protože obsahuje %s"
+-
+-#~ msgid "Format as Swap?"
+-#~ msgstr "Formátovat jako SWAP?"
+-
+-#~ msgid ""
+-#~ "/dev/%s has a partition type of 0x82 (Linux swap) but does not appear to "
+-#~ "be formatted as a Linux swap partition.\n"
+-#~ "\n"
+-#~ "Would you like to format this partition as a swap partition?"
+-#~ msgstr ""
+-#~ "Oddíl /dev/%s je typu 0x82 (odkládací oddíl - Linux swap), ale nezdá se, "
+-#~ "že byl byl jako swap naformátován.\n"
+-#~ "\n"
+-#~ "Chcete oddíl naformátovat jako swap?"
+-
+-#~ msgid "You need to select at least one hard drive to install %s."
+-#~ msgstr "Musíte vybrat alespoň jeden disk, na který nainstalujete %s."
+-
+-#~ msgid ""
+-#~ "You have chosen to use a pre-existing partition for this installation "
+-#~ "without formatting it. We recommend that you format this partition to "
+-#~ "make sure files from a previous operating system installation do not "
+-#~ "cause problems with this installation of Linux. However, if this "
+-#~ "partition contains files that you need to keep, such as home directories, "
+-#~ "then continue without formatting this partition."
+-#~ msgstr ""
+-#~ "Rozhodli jste se pro instalaci použít existující oddíl bez jeho "
+-#~ "naformátování. DoporuÄujeme oddíl naformátovat, aby soubory z instalace "
+-#~ "pÅ™edchozího operaÄního systému nemohly v této instalaci Linuxu způsobit "
+-#~ "problémy. Pokud ale oddíl obsahuje data, která potÅ™ebujete zachovat, "
+-#~ "napÅ™. domovské adresáře uživatelů, tak pokraÄujte bez formátování tohoto "
+-#~ "oddílu."
+-
+-#~ msgid "Format?"
+-#~ msgstr "Formátovat?"
+-
+-#~ msgid "_Modify Partition"
+-#~ msgstr "_ZpÄ›t na nastavení oddílu"
+-
+-#~ msgid "Do _Not Format"
+-#~ msgstr "_Neformátovat"
+-
+-#~ msgid "Error with Partitioning"
+-#~ msgstr "Chyba pÅ™i vytváření oddílů"
+-
+-#~ msgid ""
+-#~ "The following critical errors exist with your requested partitioning "
+-#~ "scheme. These errors must be corrected prior to continuing with your "
+-#~ "install of %s.\n"
+-#~ "\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "V požadovaném rozdÄ›lení na oddíly se vyskytly následující kritické chyby, "
+-#~ "které musí být pÅ™ed pokraÄováním instalace %s odstranÄ›ny.\n"
+-#~ "\n"
+-#~ "%s"
+-
+-#~ msgid "Partitioning Warning"
+-#~ msgstr "Varování pÅ™i vytváření oddílů"
+-
+-#~ msgid ""
+-#~ "The following warnings exist with your requested partition scheme.\n"
+-#~ "\n"
+-#~ "%s\n"
+-#~ "\n"
+-#~ "Would you like to continue with your requested partitioning scheme?"
+-#~ msgstr ""
+-#~ "V požadovaném rozdÄ›lení na oddíly se vyskytla následující varování.\n"
+-#~ "\n"
+-#~ "%s\n"
+-#~ "\n"
+-#~ "Chcete i pÅ™es to pokraÄovat?"
+-
+-#~ msgid ""
+-#~ "The following pre-existing partitions have been selected to be formatted, "
+-#~ "destroying all data."
+-#~ msgstr ""
+-#~ "Uvedené oddíly budou naformátovány, což smaže vÅ¡echna data, která jsou na "
+-#~ "nich uložena:"
+-
+-#~ msgid ""
+-#~ "Select 'Yes' to continue and format these partitions, or 'No' to go back "
+-#~ "and change these settings."
+-#~ msgstr ""
+-#~ "Pro pokraÄování a naformátování oddílů kliknÄ›te na 'Ano'. Pokud zvolíte "
+-#~ "'Ne', bude možné provést zmÄ›ny v nastavení."
+-
+-#~ msgid "Format Warning"
+-#~ msgstr "Varování pÅ™ed formátováním"
+-
+-#~ msgid ""
+-#~ "You are about to delete the volume group \"%s\".\n"
+-#~ "\n"
+-#~ "ALL logical volumes in this volume group will be lost!"
+-#~ msgstr ""
+-#~ "Chcete odstranit skupinu svazků (VG) \"%s\".\n"
+-#~ "\n"
+-#~ "VÅ ECHNY logické svazky (LV) ve skupinÄ› (VG) budou smazány!"
+-
+-#~ msgid "You are about to delete the logical volume \"%s\"."
+-#~ msgstr "Chcete odstranit logický svazek (LV) \"%s\"."
+-
+-#~ msgid "You are about to delete a RAID device."
+-#~ msgstr "Chcete odstranit RAID zařízení."
+-
+-#~ msgid "You are about to delete the /dev/%s partition."
+-#~ msgstr "Chcete odstranit oddíl /dev/%s."
+-
+-#~ msgid "The partition you selected will be deleted."
+-#~ msgstr "Vybraný oddíl bude odstranÄ›n."
+-
+-#~ msgid "Confirm Reset"
+-#~ msgstr "Potvrzení obnovení"
+-
+-#~ msgid ""
+-#~ "Are you sure you want to reset the partition table to its original state?"
+-#~ msgstr "Chcete opravdu obnovit tabulku oddílů do jejího původního stavu?"
+-
+-#~ msgid ""
+-#~ "The partitioning options you have chosen have already been activated. You "
+-#~ "can no longer return to the disk editing screen. Would you like to "
+-#~ "continue with the installation process?"
+-#~ msgstr ""
+-#~ "ZmÄ›ny v oddílech byly zapsány. Nní možné se již vrátit zpÄ›t na Ãºpravu "
+-#~ "oddílů. Chcete pokraÄovat v instalaci?"
+-
+-#~ msgid "Writing partitioning to disk"
+-#~ msgstr "Zapisuji oddíly na disk"
+-
+-#~ msgid ""
+-#~ "The partitioning options you have selected will now be written to disk.  "
+-#~ "Any data on deleted or reformatted partitions will be lost"
+-#~ msgstr ""
+-#~ "Možnosti rozložení oddílů, které jste zvolili, budou nyní zapsány na "
+-#~ "disk.  VÅ¡echna data na odstranÄ›ných nebo pÅ™eformátovaných oddílech budou "
+-#~ "ztracena"
+-
+-#~ msgid "Go _back"
+-#~ msgstr "Jít _zpÄ›t"
+-
+-#~ msgid "_Write changes to disk"
+-#~ msgstr "Za_psat zmÄ›ny na disk"
+-
+-#~ msgid "Back"
+-#~ msgstr "ZpÄ›t"
+-
+-#~ msgid "Confirm"
+-#~ msgstr "PotvrÄte"
+-
+-#~ msgid ""
+-#~ "Are you sure you want to skip entering a passphrase for device %s?\n"
+-#~ "\n"
+-#~ "If you skip this step the device's contents will not be available during "
+-#~ "installation."
+-#~ msgstr ""
+-#~ "Opravdu chcete pÅ™eskoÄit zadávání hesla pro zařízení %s?\n"
+-#~ "\n"
+-#~ "Pokud tento krok pÅ™eskoÄíte, obsah zařízení nebude k dispozici pÅ™i "
+-#~ "instalaci."
+-
+-#~ msgid ""
+-#~ "You have not defined a root partition (/), which is required for "
+-#~ "installation of %s to continue."
+-#~ msgstr ""
+-#~ "Není definován koÅ™enový oddíl (/), který je nutný pro pokraÄování "
+-#~ "instalace distribuce %s."
+-
+-#~ msgid ""
+-#~ "Your root partition is less than 250 megabytes which is usually too small "
+-#~ "to install %s."
+-#~ msgstr ""
+-#~ "KoÅ™enový oddíl je menší než 250 MB, což je obvykle příliÅ¡ málo pro "
+-#~ "instalaci distribuce %s."
+-
+-#~ msgid ""
+-#~ "You must create a /boot/efi partition of type FAT and a size of 50 "
+-#~ "megabytes."
+-#~ msgstr ""
+-#~ "Musíte vytvoÅ™it oddíl /boot/efi, který bude typu FAT a jeho velikost bude "
+-#~ "50 MB."
+-
+-#~ msgid ""
+-#~ "Your boot partition isn't on one of the first four partitions and thus "
+-#~ "won't be bootable."
+-#~ msgstr ""
+-#~ "Oddíl, ze kterého se bude zavádÄ›t systém, není na jednom z prvních ÄtyÅ™ "
+-#~ "oddílů, a proto z nÄ›j nebude možné systém spustit."
+-
+-#~ msgid "You must create an Apple Bootstrap partition."
+-#~ msgstr "Musíte vytvoÅ™it zavádÄ›cí oddíl Apple."
+-
+-#~ msgid "You must create a PPC PReP Boot partition."
+-#~ msgstr "Musíte vytvoÅ™it zavádÄ›cí oddíl PPC PReP."
+-
+-#~ msgid ""
+-#~ "Your %s partition is less than %s megabytes which is lower than "
+-#~ "recommended for a normal %s install."
+-#~ msgstr ""
+-#~ "Oddíl %s je menší než %s MB, což je ménÄ› než je doporuÄená velikost pro "
+-#~ "obvyklou instalaci distribuce %s."
+-
+-#~ msgid ""
+-#~ "Installing on a USB device.  This may or may not produce a working system."
+-#~ msgstr ""
+-#~ "Instalace na USB zařízení. To může (ale nemusí) vést k vytvoÅ™ení "
+-#~ "funkÄního systému. "
+-
+-#~ msgid ""
+-#~ "Installing on a FireWire device.  This may or may not produce a working "
+-#~ "system."
+-#~ msgstr ""
+-#~ "Instalace na FireWire zařízení. To může (ale nemusí) vést k vytvoÅ™ení "
+-#~ "funkÄního systému. "
+-
+-#~ msgid "Bootable partitions can only be on RAID1 devices."
+-#~ msgstr "Oddíl pro zavádÄ›ní systému může být pouze na RAID1 zařízení."
+-
+-#~ msgid "Bootable partitions cannot be on a logical volume."
+-#~ msgstr "Oddíl pro zavádÄ›ní systému nemůže být na logickém svazku (LV)."
+-
+-#~ msgid "Bootable partitions cannot be on a RAID device."
+-#~ msgstr "Oddíl pro zavádÄ›ní systému nemůže být na RAID zařízení."
+-
+-#~ msgid "Bootable partitions cannot be on an %s filesystem."
+-#~ msgstr "Oddíl pro zavádÄ›ní systému nemůže být na systému souborů %s."
+-
+-#~ msgid "Bootable partitions cannot be on an encrypted block device"
+-#~ msgstr ""
+-#~ "Oddíl pro zavádÄ›ní systému nemůže být na Å¡ifrovaném blokovém zařízení"
+-
+-#~ msgid ""
+-#~ "You have not specified a swap partition.  Although not strictly required "
+-#~ "in all cases, it will significantly improve performance for most "
+-#~ "installations."
+-#~ msgstr ""
+-#~ "NeurÄili jste odkládací oddíl (swap). PÅ™esto, Å¾e to není není nezbytnÄ› "
+-#~ "nutné, jeho použití ve vÄ›tÅ¡inÄ› případů výraznÄ› zvýší výkonnost systému."
+-
+-#~ msgid ""
+-#~ "You have specified more than 32 swap devices.  The kernel for %s only "
+-#~ "supports 32 swap devices."
+-#~ msgstr ""
+-#~ "UrÄili jste více než 32 odkládacích zařízení, což je více než podporuje "
+-#~ "jádro distribuce %s."
+-
+-#~ msgid ""
+-#~ "You have allocated less swap space (%dM) than available RAM (%dM) on your "
+-#~ "system.  This could negatively impact performance."
+-#~ msgstr ""
+-#~ "Systém má k dispozici ménÄ› odkládacího prostoru (%dM), než je velikost "
+-#~ "RAM (%dM), což může negativnÄ› ovlivnit výkon vaÅ¡eho systému."
+-
+-#~ msgid "the partition in use by the installer."
+-#~ msgstr "oddíl používaný instalaÄním programem."
+-
+-#~ msgid "a partition which is a member of a RAID array."
+-#~ msgstr "oddíl, který je souÄástí RAID pole."
+-
+-#~ msgid "a partition which is a member of a LVM Volume Group."
+-#~ msgstr "oddíl, který je Älenem skupiny svazků LVM."
+-
+-#~ msgid "The mount point %s must be formatted during live CD installs."
+-#~ msgstr ""
+-#~ "Místo pÅ™ipojení %s musí být pÅ™i instalaci z Å¾ivého CD naformátováno."
+-
+-#~ msgid ""
+-#~ "This mount point is invalid.  The %s directory must be on the / file "
+-#~ "system."
+-#~ msgstr ""
+-#~ "Místo pÅ™ipojení není platné. Adresář %s musí být v koÅ™enovém systému "
+-#~ "souborů."
+-
+-#~ msgid ""
+-#~ "The mount point %s cannot be used.  It must be a symbolic link for proper "
+-#~ "system operation.  Please select a different mount point."
+-#~ msgstr ""
+-#~ "Pro pÅ™ipojení (mount) nelze %s použít. Pro správnou funkci by to musel "
+-#~ "být symbolický odkaz. Zvolte jiné místo pÅ™ipojení."
+-
+-# Týká se jen / /boot /var /tmp /usr /home. Nemusíme uživatele straÅ¡it pÅ™i
+-# pÅ™ipojování windowsovské partition víc, než je nutné.
+-#~ msgid "This mount point must be on a linux file system."
+-#~ msgstr "Místo pÅ™ipojení musí být na linuxovém systému souborů."
+-
+-#~ msgid ""
+-#~ "The mount point \"%s\" is already in use, please choose a different mount "
+-#~ "point."
+-#~ msgstr "Místo pÅ™ipojení \"%s\" je již používáno. Zadejte jiné."
+-
+-#~ msgid ""
+-#~ "The size of the %s partition (%10.2f MB) exceeds the maximum size of "
+-#~ "%10.2f MB."
+-#~ msgstr ""
+-#~ "Velikost oddílu %s (%10.2f MB) pÅ™ekraÄuje maximální velikost %10.2f MB."
+-
+-#~ msgid ""
+-#~ "The size of the requested partition (size = %s MB) exceeds the maximum "
+-#~ "size of %s MB."
+-#~ msgstr "Velikost oddílu (size = %s MB) pÅ™ekraÄuje maximální velikost %s MB."
+-
+-#~ msgid "The size of the requested partition is negative! (size = %s MB)"
+-#~ msgstr "Velikost zadaného oddílu je záporná! (size = %s MB)"
+-
+-#~ msgid "Partitions can't start below the first cylinder."
+-#~ msgstr "Oddíl nemůže zaÄínat pÅ™ed prvním cylindrem."
+-
+-#~ msgid "Partitions can't end on a negative cylinder."
+-#~ msgstr "Oddíl nemůže konÄit na záporném cylindru."
+-
+-#~ msgid "No members in RAID request, or not RAID level specified."
+-#~ msgstr "Nevybráni Älenové pro RAID nebo nezvolen typ RAIDu."
+-
+-#~ msgid "A RAID device of type %s requires at least %s members."
+-#~ msgstr "RAID zařízení typu %s vyžaduje alespoň %s Älenů."
+-
+-#~ msgid ""
+-#~ "This RAID device can have a maximum of %s spares. To have more spares you "
+-#~ "will need to add members to the RAID device."
+-#~ msgstr ""
+-#~ "RAID zařízení může mít maximálnÄ› %s rezerv (spare). Pokud jich chcete "
+-#~ "více, musíte pÅ™idat další Äleny RAIDu."
+-
+-#~ msgid ""
+-#~ "Logical volume size must be larger than the volume group's physical "
+-#~ "extent size."
+-#~ msgstr ""
+-#~ "Velikost logického svazku (LV) musí být vÄ›tší, než je velikost extentu "
+-#~ "skupiny svazků (VG)."
+-
+-#~ msgid "Starting Interface"
+-#~ msgstr "Start rozhraní"
+-
+-#~ msgid "Attempting to start %s"
+-#~ msgstr "Pokus o spuÅ¡tÄ›ní %s"
+-
+-#~ msgid ""
+-#~ "When finished please exit from the shell and your system will reboot."
+-#~ msgstr "Po dokonÄení práce ukonÄete shell a váš systém bude restartován."
+-
+-#~ msgid "Setup Networking"
+-#~ msgstr "Nastavení sítÄ›"
+-
+-#~ msgid "Do you want to start the network interfaces on this system?"
+-#~ msgstr "Chcete aktivovat síťová rozhraní?"
+-
+-#~ msgid "Cancelled"
+-#~ msgstr "PÅ™eruÅ¡eno"
+-
+-#~ msgid ""
+-#~ "I can't go to the previous step from here. You will have to try again."
+-#~ msgstr "Nelze se již vrátit zpÄ›t. Musíte to zkusit znovu."
+-
+-#~ msgid "Rescue"
+-#~ msgstr "Záchrana"
+-
+-#~ msgid ""
+-#~ "The rescue environment will now attempt to find your Linux installation "
+-#~ "and mount it under the directory %s.  You can then make any changes "
+-#~ "required to your system.  If you want to proceed with this step choose "
+-#~ "'Continue'.  You can also choose to mount your file systems read-only "
+-#~ "instead of read-write by choosing 'Read-Only'.\n"
+-#~ "\n"
+-#~ "If for some reason this process fails you can choose 'Skip' and this step "
+-#~ "will be skipped and you will go directly to a command shell.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Záchranné prostÅ™edí se pokusí najít vaÅ¡i instalaci Linuxu a pÅ™ipojit ji "
+-#~ "do adresáře %s. Pak budete moci provést v systému zmÄ›ny. Pokud chcete "
+-#~ "pokraÄovat, stisknÄ›te tlaÄítko 'PokraÄovat'. Disky lze pÅ™ipojit v režimu "
+-#~ "jen pro Ätení místo s povoleným zápisem stiskem tlaÄítka 'Jen pro "
+-#~ "Ätení'.\n"
+-#~ "\n"
+-#~ "Pokud proces z nÄ›jakého důvodu selhává, stisknÄ›te tlaÄítko 'Vynechat' a "
+-#~ "dostanete se přímo do shellu.\n"
+-#~ "\n"
+-
+-#~ msgid "Read-Only"
+-#~ msgstr "Jen pro Ätení"
+-
+-#~ msgid "System to Rescue"
+-#~ msgstr "Opravit systém"
+-
+-#~ msgid "What partition holds the root partition of your installation?"
+-#~ msgstr ""
+-#~ "Který oddíl obsahuje koÅ™enový systém souborů nainstalovaného systému?"
+-
+-#~ msgid "Exit"
+-#~ msgstr "Konec"
+-
+-#~ msgid ""
+-#~ "Your system had dirty file systems which you chose not to mount.  Press "
+-#~ "return to get a shell from which you can fsck and mount your partitions.  "
+-#~ "The system will reboot automatically when you exit from the shell."
+-#~ msgstr ""
+-#~ "V poÄítaÄi jsou systémy souborů s chybami, které nebyly pÅ™ipojeny. Po "
+-#~ "stisknutí klávesy <Enter>, bude spuÅ¡tÄ›n příkazový Å™Ã¡dek (shell), ze "
+-#~ "kterého můžete chyby opravít příkazem fsck, a pak je bezpeÄnÄ› pÅ™ipojit "
+-#~ "příkazem mount. PoÄítaÄ bude po ukonÄení shellu automaticky restartován."
+-
+-#~ msgid ""
+-#~ "Your system has been mounted under %s.\n"
+-#~ "\n"
+-#~ "Press <return> to get a shell. If you would like to make your system the "
+-#~ "root environment, run the command:\n"
+-#~ "\n"
+-#~ "\tchroot %s\n"
+-#~ "\n"
+-#~ "The system will reboot automatically when you exit from the shell."
+-#~ msgstr ""
+-#~ "Systém byl pÅ™ipojen do adresáře %s.\n"
+-#~ "\n"
+-#~ "StisknÄ›te <Enter> pro vstup do shellu. Pokud chcete, aby byl výše uvedený "
+-#~ "adresář koÅ™enem, napiÅ¡te příkaz:\n"
+-#~ "\n"
+-#~ "\tchroot %s\n"
+-#~ "\n"
+-#~ "PoÄítaÄ bude po ukonÄení shellu automaticky restartován."
+-
+-#~ msgid ""
+-#~ "An error occurred trying to mount some or all of your system. Some of it "
+-#~ "may be mounted under %s.\n"
+-#~ "\n"
+-#~ "Press <return> to get a shell. The system will reboot automatically when "
+-#~ "you exit from the shell."
+-#~ msgstr ""
+-#~ "PÅ™i pÅ™ipojování oddílů doÅ¡lo k chybÄ›. NÄ›které mohou být pÅ™ipojeny v "
+-#~ "adresáři %s.\n"
+-#~ "\n"
+-#~ "StisknÄ›te Enter pro vstup do shellu. PoÄítaÄ bude po ukonÄení shellu "
+-#~ "automaticky restartován."
+-
+-#~ msgid "Rescue Mode"
+-#~ msgstr "Záchranný režim"
+-
+-#~ msgid ""
+-#~ "You don't have any Linux partitions. Press return to get a shell. The "
+-#~ "system will reboot automatically when you exit from the shell."
+-#~ msgstr ""
+-#~ "Ve vaÅ¡em systému nejsou Å¾Ã¡dné oddíly s Linuxem. StisknÄ›te Enter pro vstup "
+-#~ "do shellu. PoÄítaÄ bude po ukonÄení shellu automaticky restartován."
+-
+-#~ msgid "Your system is mounted under the %s directory."
+-#~ msgstr "Systém je pÅ™ipojen v adresáři %s."
+-
+-#~ msgid "Save"
+-#~ msgstr "Uložit"
+-
+-#~ msgid "Save to Disk"
+-#~ msgstr "Uložit na disk"
+-
+-#~ msgid "Save to Remote"
+-#~ msgstr "Uložit na vzdálený poÄítaÄ"
+-
+-#~ msgid "Host"
+-#~ msgstr "PoÄítaÄ"
+-
+-#~ msgid "Remote path"
+-#~ msgstr "Cesta a jméno"
+-
+-#~ msgid "Password"
+-#~ msgstr "Heslo"
+-
+-#~ msgid "Passphrase"
+-#~ msgstr "Heslo"
+-
+-#~ msgid "This is a global passphrase"
+-#~ msgstr "Toto je globální heslo"
+-
+-#~ msgid "Help not available"
+-#~ msgstr "NápovÄ›da není k dispozici"
+-
+-#~ msgid "No help is available for this step of the install."
+-#~ msgstr "NápovÄ›da není k dispozici."
+-
+-#~ msgid "Repository editing is not available in text mode."
+-#~ msgstr "Úprava repozitářů instalace není v textovém režimu k dispozici."
+-
+-#~ msgid "Please enter your %(instkey)s"
+-#~ msgstr "Vložte %(instkey)s."
+-
+-#~ msgid "Skip entering %(instkey)s"
+-#~ msgstr "PÅ™eskoÄit vložení %(instkey)s"
+-
+-#~ msgid "Welcome to %s for %s"
+-#~ msgstr "Vítá vás %s pro %s"
+-
+-#~ msgid "Welcome to %s"
+-#~ msgstr "Vítá vás %s"
+-
+-#~ msgid ""
+-#~ " <F1> for help | <Tab> between elements | <Space> selects | <F12> next "
+-#~ "screen"
+-#~ msgstr ""
+-#~ "<F1> nápovÄ›da  |  <Tab> další položka  |  <Mezera> vybrat  |  <F12> "
+-#~ "pokraÄovat"
+-
+-#~ msgid ""
+-#~ "  <Tab>/<Alt-Tab> between elements   |  <Space> selects   |  <F12> next "
+-#~ "screen"
+-#~ msgstr ""
+-#~ "  <Tab>/<Alt-Tab> další položka   |   <Mezera> vybrat   |   <F12> "
+-#~ "pokraÄovat"
+-
+-#~ msgid "Proceed with upgrade?"
+-#~ msgstr "Provést aktualizaci?"
+-
+-#~ msgid ""
+-#~ "You have choosen the upgrade for %s architecture, but the installed "
+-#~ "system is for %s architecture. \n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Zvolili jste aktualizaci pro architekturu %s, ale nainstalovaný systém je "
+-#~ "pro architekturu %s. \n"
+-#~ "\n"
+-
+-#~ msgid ""
+-#~ "Would you like to upgrade  the installed system to the %s architecture?"
+-#~ msgstr "Chcete nainstalovaný systém aktualizovat na architekturu %s?"
+-
+-#~ msgid ""
+-#~ "The file systems of the Linux installation you have chosen to upgrade "
+-#~ "have already been mounted. You cannot go back past this point. \n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Systémy souborů s instalací Linuxu, kterou jste zvolili k aktualizaci, "
+-#~ "již byly pÅ™ipojeny. Nelze se již vrátit zpÄ›t.\n"
+-#~ "\n"
+-
+-#~ msgid "Would you like to continue with the upgrade?"
+-#~ msgstr "Chcete pokraÄovat v aktualizaci?"
+-
+-#~ msgid "Dirty File Systems"
+-#~ msgstr "Systémy souborů s chybami"
+-
+-#~ msgid ""
+-#~ "The following file systems for your Linux system were not unmounted "
+-#~ "cleanly.  Please boot your Linux installation, let the file systems be "
+-#~ "checked and shut down cleanly to upgrade.\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "Následující systémy souborů nebyly správnÄ› odpojeny. SpusÅ¥te svůj "
+-#~ "Linuxový systém a nechte ho, aby disky opravil. Pak systém správnÄ› "
+-#~ "ukonÄete a proveÄte aktualizaci.\n"
+-#~ "%s"
+-
+-#~ msgid ""
+-#~ "The following file systems for your Linux system were not unmounted "
+-#~ "cleanly.  Would you like to mount them anyway?\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "Následující systémy souborů nebyly správnÄ› odpojeny. Chcete je pÅ™esto "
+-#~ "pÅ™ipojit?\n"
+-#~ "%s"
+-
+-#~ msgid "Mount failed"
+-#~ msgstr "PÅ™ipojení selhalo"
+-
+-#~ msgid ""
+-#~ "One or more of the file systems listed in the /etc/fstab on your Linux "
+-#~ "system cannot be mounted. Please fix this problem and try to upgrade "
+-#~ "again."
+-#~ msgstr ""
+-#~ "Jeden nebo více systémů souborů zapsaných v /etc/fstab nemohou být "
+-#~ "pÅ™ipojeny. Odstraňte problém a spusÅ¥te aktualizaci znovu."
+-
+-#~ msgid ""
+-#~ "One or more of the file systems listed in the /etc/fstab of your Linux "
+-#~ "system are inconsistent and cannot be mounted.  Please fix this problem "
+-#~ "and try to upgrade again."
+-#~ msgstr ""
+-#~ "Jeden nebo více systémů souborů zapsaných v /etc/fstab nejsou "
+-#~ "konzistentní, a proto nemohou být pÅ™ipojeny. Odstraňte problém a spusÅ¥te "
+-#~ "aktualizaci znovu."
+-
+-#~ msgid ""
+-#~ "The following files are absolute symbolic links, which we do not support "
+-#~ "during an upgrade. Please change them to relative symbolic links and "
+-#~ "restart the upgrade.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Níže jsou vypsány absolutní symbolické linky, které nejsou aktualizací "
+-#~ "podporovány. Změňte je na relativní a spusÅ¥te aktualizaci znovu.\n"
+-#~ "\n"
+-
+-#~ msgid "Absolute Symlinks"
+-#~ msgstr "Absolutní symbolické linky"
+-
+-#~ msgid ""
+-#~ "The following are directories which should instead be symbolic links, "
+-#~ "which will cause problems with the upgrade.  Please return them to their "
+-#~ "original state as symbolic links and restart the upgrade.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Níže jsou vypsány adresáře, které vÅ¡ak mají být symbolické linky, což pÅ™i "
+-#~ "aktualizaci způsobí problémy. Změňte je zpÄ›t na symbolické linky a "
+-#~ "spusÅ¥te aktualizaci znovu.\n"
+-
+-#~ msgid "%s not found"
+-#~ msgstr "%s nenalezen"
+-
+-#~ msgid "%s %s installation on host %s"
+-#~ msgstr "Instalace %s %s na poÄítaÄ %s"
+-
+-#~ msgid "%s %s installation"
+-#~ msgstr "Instalace %s %s"
+-
+-#~ msgid "Attempting to connect to vnc client on host %s..."
+-#~ msgstr "Pokouším se pÅ™ipojit k VNC klientovi na poÄítaÄi %s..."
+-
+-#~ msgid "Connected!"
+-#~ msgstr "PÅ™ipojen!"
+-
+-#~ msgid "Will try to connect again in 15 seconds..."
+-#~ msgstr "Nový pokus o pÅ™ipojení za 15 sekund..."
+-
+-#~ msgid "Giving up attempting to connect after %d tries!\n"
+-#~ msgstr "Po %d pokusech konÄím pokusy o pÅ™ipojení!\n"
+-
+-#~ msgid "Please manually connect your vnc client to %s to begin the install."
+-#~ msgstr "Pro spuÅ¡tÄ›ní instalace se pomocí VNC klienta pÅ™ipojte k %s."
+-
+-#~ msgid "Please manually connect your vnc client to begin the install."
+-#~ msgstr "Pro spuÅ¡tÄ›ní instalace se pÅ™ipojte pomocí VNC klienta."
+-
+-#~ msgid "Starting VNC..."
+-#~ msgstr "Startuji VNC..."
+-
+-#~ msgid "The VNC server is now running."
+-#~ msgstr "VNC server byl spuÅ¡tÄ›n."
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "You chose to connect to a listening vncviewer. \n"
+-#~ "This does not require a password to be set.  If you \n"
+-#~ "set a password, it will be used in case the connection \n"
+-#~ "to the vncviewer is unsuccessful\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "Rozhodli jste se pÅ™ipojit k poslouchajícímu vncviewer. \n"
+-#~ "K tomu není potÅ™eba nastavit heslo. Pokud jste \n"
+-#~ "nastavili heslo, bude použito, pokud pÅ™ipojení \n"
+-#~ "k vncviewer není Ãºspěšné\n"
+-#~ "\n"
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "WARNING!!! VNC server running with NO PASSWORD!\n"
+-#~ "You can use the self.password=<password> boot option\n"
+-#~ "if you would like to secure the server.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "VAROVÃNÃ!!! VNC server je spuÅ¡tÄ›n BEZ HESLA!\n"
+-#~ "Pokud chcete server zabezpeÄit, můžete použít\n"
+-#~ "pÅ™i startu systému parametr self.password=<heslo>.\n"
+-#~ "\n"
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "You chose to execute vnc with a password. \n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "Rozhodli jste se spustit vnc s heslem. \n"
+-#~ "\n"
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "Unknown Error.  Aborting. \n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "Neznámá chyba. KonÄím. \n"
+-#~ "\n"
+-
+-#~ msgid "VNC Configuration"
+-#~ msgstr "Nastavení VNC"
+-
+-#~ msgid "No password"
+-#~ msgstr "Žádné heslo"
+-
+-#~ msgid ""
+-#~ "A password will prevent unauthorized listeners connecting and monitoring "
+-#~ "your installation progress.  Please enter a password to be used for the "
+-#~ "installation"
+-#~ msgstr ""
+-#~ "Heslo zabrání neautorizovaným klientům, aby se také pÅ™ipojili a sledovali "
+-#~ "průbÄ›h vaší instalace. Zadejte proto heslo, které chcete pro pÅ™ipojení k "
+-#~ "instalaci použít."
+-
+-#~ msgid "Password (confirm):"
+-#~ msgstr "Heslo (znovu):"
+-
+-#~ msgid "Password Mismatch"
+-#~ msgstr "Hesla nejsou stejná"
+-
+-#~ msgid "The passwords you entered were different. Please try again."
+-#~ msgstr "Nezadali jste stejná hesla. Zadejte je prosím znovu."
+-
+-#~ msgid "Password Length"
+-#~ msgstr "Délka hesla"
+-
+-#~ msgid "The password must be at least six characters long."
+-#~ msgstr "Heslo musí mít délku alespoň 6 znaků."
+-
+-#~ msgid "Unable to Start X"
+-#~ msgstr "Nelze spustit X"
+-
+-#~ msgid ""
+-#~ "X was unable to start on your machine.  Would you like to start VNC to "
+-#~ "connect to this computer from another computer and perform a graphical "
+-#~ "install or continue with a text mode install?"
+-#~ msgstr ""
+-#~ "Na poÄítaÄi selhalo spuÅ¡tÄ›ní grafického prostÅ™edí X Window System. "
+-#~ "PokraÄovat můžete pomocí instalace v textovém režimu nebo můžete spustit "
+-#~ "VNC. Pomocí VNC je možné se k poÄítaÄi pÅ™ipojit z jiného poÄítaÄe a "
+-#~ "pokraÄovat tak v instalaci v grafickém režimu."
+-
+-#~ msgid "Use text mode"
+-#~ msgstr "Použít textový režim"
+-
+-#~ msgid "Start VNC"
+-#~ msgstr "Spustit VNC"
+-
+-#~ msgid "%s MB"
+-#~ msgstr "%s MB"
+-
+-#~ msgid "%s KB"
+-#~ msgstr "%s KB"
+-
+-#~ msgid "%s Byte"
+-#~ msgstr "%s bajt"
+-
+-#~ msgid "%s Bytes"
+-#~ msgstr "%s bajtů"
+-
+-#~ msgid "Processing"
+-#~ msgstr "Zpracovávání"
+-
+-#~ msgid "Preparing transaction from installation source..."
+-#~ msgstr "PÅ™ipravuje se transakce z instalaÄního zdroje..."
+-
+-#~ msgid "<b>Installing %s</b> (%s)\n"
+-#~ msgstr "<b>Instalace %s</b> (%s)\n"
+-
+-#~ msgid "%s of %s packages completed"
+-#~ msgstr "%s z %s balíÄků dokonÄeno"
+-
+-#~ msgid "Finishing upgrade"
+-#~ msgstr "UkonÄení aktualizace"
+-
+-#~ msgid "Finishing upgrade process.  This may take a little while..."
+-#~ msgstr "UkonÄuji proces aktualizace. Může to chvíli trvat..."
+-
+-#~ msgid "Copying File"
+-#~ msgstr "Kopírování souboru"
+-
+-#~ msgid "Transferring install image to hard drive..."
+-#~ msgstr "PÅ™enášení instalaÄního obrazu na pevný disk..."
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid ""
+-#~ "An error occurred transferring the install image to your hard drive.  "
+-#~ "This is probably due to bad media."
+-#~ msgstr ""
+-#~ "DoÅ¡lo k chybÄ› pÅ™i pÅ™enosu instalaÄního obrazu na pevný disk. Médium je "
+-#~ "zÅ™ejmÄ› vadné."
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "An error occurred transferring the install image to your hard drive. You "
+-#~ "are probably out of disk space."
+-#~ msgstr ""
+-#~ "DoÅ¡lo k chybÄ› pÅ™i pÅ™enosu instalaÄního obrazu na pevný disk. Disk je "
+-#~ "zÅ™ejmÄ› plný."
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Change Disc"
+-#~ msgstr "VýmÄ›na média"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Please insert %s disc %d to continue."
+-#~ msgstr "Pro pokraÄování vložte %s disk %d."
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Wrong Disc"
+-#~ msgstr "Nesprávné médium"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "That's not the correct %s disc."
+-#~ msgstr "Nesprávné %s médium."
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Unable to access the disc."
+-#~ msgstr "Nelze pÅ™istupovat na médium."
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Re_boot"
+-#~ msgstr "_Restartovat"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "_Eject"
+-#~ msgstr "_Vysunout"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid ""
+-#~ "The file %s cannot be opened.  This is due to a missing file, a corrupt "
+-#~ "package or corrupt media.  Please verify your installation source.\n"
+-#~ "\n"
+-#~ "If you exit, your system will be left in an inconsistent state that will "
+-#~ "likely require reinstallation.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Nelze otevřít soubor %s. Důvodem může být chybÄ›jící soubor, poÅ¡kozený "
+-#~ "balíÄek nebo poÅ¡kozené médium. Zkontrolujte prosím svůj zdroj instalace.\n"
+-#~ "\n"
+-#~ "UkonÄíte-li instalaci, zůstane systém v nekonzistentním stavu, což bude "
+-#~ "pravdÄ›podobnÄ› vyžadovat reinstalaci.\n"
+-#~ "\n"
+-
+-#~ msgid "Retrying"
+-#~ msgstr "Zkouším to znovu"
+-
+-#~ msgid "Retrying package download..."
+-#~ msgstr "Znovu se pokouším stáhnout balíÄek..."
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid ""
+-#~ "There was an error running your transaction for the following reason: %s\n"
+-#~ msgstr "PÅ™i provádÄ›ní transakce doÅ¡lo k chybÄ› z následujícího důvodu: %s\n"
+-
+-#~ msgid "file conflicts"
+-#~ msgstr "kolize souborů"
+-
+-#~ msgid "older package(s)"
+-#~ msgstr "starší balíÄky"
+-
+-#~ msgid "insufficient disk space"
+-#~ msgstr "nedostatek místa na disku"
+-
+-#~ msgid "insufficient disk inodes"
+-#~ msgstr "nedostatek inodů na disku"
+-
+-#~ msgid "package conflicts"
+-#~ msgstr "kolize balíÄků"
+-
+-#~ msgid "required package"
+-#~ msgstr "vyžadovaný balíÄek"
+-
+-#~ msgid "package for incorrect arch"
+-#~ msgstr "balíÄek pro nesprávnou architekturu"
+-
+-#~ msgid "package for incorrect os"
+-#~ msgstr "balíÄek pro nesprávný operaÄní systém"
+-
+-#~ msgid "You need more space on the following file systems:\n"
+-#~ msgstr "Na následujících systémech souborů je potÅ™eba více místa:\n"
+-
+-#~ msgid ""
+-#~ "There were file conflicts when checking the packages to be installed:\n"
+-#~ "%s\n"
+-#~ msgstr ""
+-#~ "PÅ™i kontrole balíÄků k instalaci doÅ¡lo ke konfliktům souborů:\n"
+-#~ "%s\n"
+-
+-#~ msgid ""
+-#~ "There was an error running your transaction for the following reason(s): "
+-#~ "%s.\n"
+-#~ msgstr "PÅ™i provádÄ›ní transakce doÅ¡lo k chybÄ› z následujících důvodů: %s.\n"
+-
+-#~ msgid "Error Running Transaction"
+-#~ msgstr "Chyba pÅ™i provádÄ›ní transakce"
+-
+-#~ msgid "Error running transaction"
+-#~ msgstr "Chyba v průbÄ›hu transakce"
+-
+-#~ msgid "Retrieving installation information..."
+-#~ msgstr "NaÄítám informace o instalaci..."
+-
+-#~ msgid "Retrieving installation information for %s..."
+-#~ msgstr "NaÄítám informace o instalaci pro %s..."
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid ""
+-#~ "Unable to read package metadata. This may be due to a missing repodata "
+-#~ "directory.  Please ensure that your install tree has been correctly "
+-#~ "generated.\n"
+-#~ "\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "Nemohu Äíst metadata balíÄku. Důvodem může být chybÄ›jící adresář "
+-#~ "repodata. Zkontrolujte prosím, Å¾e byl instalaÄní strom správnÄ› "
+-#~ "vygenerován.\n"
+-#~ "\n"
+-#~ "%s"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid ""
+-#~ "Unable to read group information from repositories.  This is a problem "
+-#~ "with the generation of your install tree."
+-#~ msgstr ""
+-#~ "Ze zadaných repozitářů nelze pÅ™eÄíst informace o skupinách. PÅ™i "
+-#~ "generování vaÅ¡eho instalaÄního stromu doÅ¡lo k chybÄ›."
+-
+-#~ msgid "Uncategorized"
+-#~ msgstr "NezaÅ™azeno"
+-
+-#~ msgid ""
+-#~ "Your selected packages require %d MB of free space for installation, but "
+-#~ "you do not have enough available.  You can change your selections or exit "
+-#~ "the installer."
+-#~ msgstr ""
+-#~ "Vybrané balíÄky vyžadují pro instalaci %d MB volného místa. Tolik místa "
+-#~ "není k dispozici. Můžete zmÄ›nit výbÄ›r nebo ukonÄit instalaci."
+-
+-#~ msgid "Reboot?"
+-#~ msgstr "Restartovat?"
+-
+-#~ msgid "The system will be rebooted now."
+-#~ msgstr "Systém bude restartován."
+-
+-#~ msgid ""
+-#~ "You appear to be upgrading from a system which is too old to upgrade to "
+-#~ "this version of %s.  Are you sure you wish to continue the upgrade "
+-#~ "process?"
+-#~ msgstr ""
+-#~ "ZÅ™ejmÄ› aktualizujete ze systému, který je příliÅ¡ starý pro aktualizaci na "
+-#~ "verzi %s. Opravdu chcete pokraÄovat v procesu aktualizace?"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid ""
+-#~ "The arch of the release of %s you are upgrading to appears to be %s which "
+-#~ "does not match your previously installed arch of %s.  This is likely to "
+-#~ "not succeed.  Are you sure you wish to continue the upgrade process?"
+-#~ msgstr ""
+-#~ "Akchitektura verze %s, na kterou aktualizujete, je zÅ™ejmÄ› %s, což "
+-#~ "neodpovídá dříve nainstalované architektuÅ™e %s. To pravdÄ›podobnÄ› "
+-#~ "neuspÄ›je. Opravdu chcete v aktualizaci pokraÄovat?"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Install Starting"
+-#~ msgstr "Start instalace"
+-
+-#~ msgid "Starting install process.  This may take several minutes..."
+-#~ msgstr "SpouÅ¡tím proces instalace. Může to chvíli trvat..."
+-
+-#~ msgid "Post Upgrade"
+-#~ msgstr "DokonÄení Upgrade"
+-
+-#~ msgid "Post Install"
+-#~ msgstr "Po instalaci"
+-
+-#~ msgid "Performing post install configuration..."
+-#~ msgstr "Zapisuji nastavení po instalaci..."
+-
+-#~ msgid "Installation Progress"
+-#~ msgstr "Postup instalace"
+-
+-#~ msgid "Dependency Check"
+-#~ msgstr "Kontrola závislostí"
+-
+-#~ msgid "Checking dependencies in packages selected for installation..."
+-#~ msgstr "Řeším závislosti mezi balíÄky vybranými pro instalaci..."
+-
+-#~ msgid "You have not specified a device number or the number is invalid"
+-#~ msgstr "NeurÄili jste Äíslo zařízení nebo Äíslo zařízení není platné"
+-
+-#~ msgid "You have not specified a worldwide port name or the name is invalid."
+-#~ msgstr "NeurÄili jste název portu nebo název portu není platný."
+-
+-#~ msgid "You have not specified a FCP LUN or the number is invalid."
+-#~ msgstr "NeurÄili jste FCP LUN nebo Äíslo není platné."
+-
+-#~ msgid "Root _Password:"
+-#~ msgstr "_Heslo správce systému:"
+-
+-#~ msgid "_Confirm:"
+-#~ msgstr "P_otvrÄte:"
+-
+-#~ msgid "Caps Lock is on."
+-#~ msgstr "Caps Lock je aktivní."
+-
+-#~ msgid "Error with Password"
+-#~ msgstr "Chyba v hesle"
+-
+-#~ msgid ""
+-#~ "You must enter your root password and confirm it by typing it a second "
+-#~ "time to continue."
+-#~ msgstr "Zadejte heslo pro uživatele root a potvrÄte ho opakovaným zadáním."
+-
+-#~ msgid "The passwords you entered were different.  Please try again."
+-#~ msgstr "Hesla, která jste zadali, jsou různá. Zadejte je znovu."
+-
+-#~ msgid "The root password must be at least six characters long."
+-#~ msgstr "Heslo pro uživatele root musí být alespoň 6 znaků dlouhé."
+-
+-#~ msgid "Weak Password"
+-#~ msgstr "Slabé heslo"
+-
+-#~ msgid ""
+-#~ "Weak password provided: %s\n"
+-#~ "\n"
+-#~ "Would you like to continue with this password?"
+-#~ msgstr ""
+-#~ "Zadáno slabé heslo: %s\n"
+-#~ "\n"
+-#~ "Chcete s tímto heslem pokraÄovat?"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid ""
+-#~ "Requested password contains non-ASCII characters, which are not allowed."
+-#~ msgstr "Heslo nesmí obsahovat znaky, které nepatří do ASCII."
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "No partitions are available to resize.  Only physical partitions with "
+-#~ "specific filesystems can be resized."
+-#~ msgstr ""
+-#~ "Pro zmÄ›nu velikosti není k dispozici Å¾Ã¡dný oddíl.  Lze zmÄ›nit velikost "
+-#~ "jen fyzických oddílů s konkrétními systémy souborů."
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid ""
+-#~ "Do you really want to boot from disk which is not used for instalation?"
+-#~ msgstr ""
+-#~ "Opravdu chcete zavádÄ›t systém z disku, který se nepoužívá pro instalaci?"
+-
+-#~ msgid "Invalid Initiator Name"
+-#~ msgstr "Neplatné jméno pro iniciátor"
+-
+-#~ msgid "You must provide an initiator name."
+-#~ msgstr "Je nutné vložit jméno iniciátoru."
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Error with Data"
+-#~ msgstr "Chyba v datech"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Remove all partitions on selected drives and create default layout"
+-#~ msgstr "Odstranit vÅ¡echny oddíly a vytvoÅ™it oddíly dle vzoru"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Remove Linux partitions on selected drives and create default layout"
+-#~ msgstr "Odstranit linuxové oddíly a vytvoÅ™it oddíly dle vzoru"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Resize existing partition and create default layout in free space"
+-#~ msgstr ""
+-#~ "ZmÄ›nit velikost existujícího oddílu a ve volném místu vytvoÅ™it oddíly dle "
+-#~ "vzoru"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Use free space on selected drives and create default layout"
+-#~ msgstr "Použít jen volné místo a vytvoÅ™it oddíly dle vzoru"
+-
+-#~ msgid "Create custom layout"
+-#~ msgstr "VytvoÅ™it oddíly ruÄnÄ›"
+-
+-#~ msgid "_Use a boot loader password"
+-#~ msgstr "Použít _heslo pro zavaděĠsystému"
+-
+-#~ msgid ""
+-#~ "A boot loader password prevents users from changing kernel options, "
+-#~ "increasing security."
+-#~ msgstr ""
+-#~ "Heslo pro zavaděĠsystému zabraňuje uživatelům mÄ›nit volby jádra, což "
+-#~ "zvyÅ¡uje zabezpeÄení systému."
+-
+-#~ msgid "Change _password"
+-#~ msgstr "Z_mÄ›nit heslo"
+-
+-#~ msgid "Enter Boot Loader Password"
+-#~ msgstr "Vložte heslo pro zavaděĠsystému"
+-
+-#~ msgid ""
+-#~ "Enter a boot loader password and then confirm it.  (Note that your BIOS "
+-#~ "keymap may be different than the actual keymap you are used to.)"
+-#~ msgstr ""
+-#~ "Zadejte heslo pro zavaděĠsystému (pro kontrolu dvakrát). POZOR: Mapa "
+-#~ "klávesnice může být pÅ™i startu poÄítaÄe jiná, než je právÄ› používané "
+-#~ "rozložení kláves. ZavaděĠpoužívá ke Ätení klávesnice BIOS, který se "
+-#~ "neřídí národními mapami klávesnic (obvykle používá anglické rozložení)."
+-
+-#~ msgid "_Password:"
+-#~ msgstr "_Heslo:"
+-
+-#~ msgid "Con_firm:"
+-#~ msgstr "Heslo (_znovu):"
+-
+-#~ msgid "Passwords don't match"
+-#~ msgstr "Hesla nejsou stejná."
+-
+-#~ msgid "Passwords do not match"
+-#~ msgstr "Hesla nejsou stejná."
+-
+-#~ msgid ""
+-#~ "Your boot loader password is shorter than six characters.  We recommend a "
+-#~ "longer boot loader password.\n"
+-#~ "\n"
+-#~ "Would you like to continue with this password?"
+-#~ msgstr ""
+-#~ "Heslo pro zavaděĠsystému je kratší než 6 znaků. DoporuÄujeme použít "
+-#~ "delší heslo.\n"
+-#~ "\n"
+-#~ "Chcete pokraÄovat s tímto heslem?"
+-
+-#~ msgid "Boot Loader Configuration"
+-#~ msgstr "Nastavení zavadÄ›Äe systému"
+-
+-#~ msgid "_Install boot loader on /dev/%s."
+-#~ msgstr "Na_instalovat zavaděĠsystému na /dev/%s."
+-
+-#~ msgid "_Change device"
+-#~ msgstr "_ZmÄ›nit zařízení"
+-
+-#~ msgid "Congratulations"
+-#~ msgstr "Gratulujeme"
+-
+-#~ msgid ""
+-#~ "Press the \"Reboot\" button to reboot your system.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "KliknÄ›te na 'OK' pro restart poÄítaÄe.\n"
+-#~ "\n"
+-
+-#~ msgid ""
+-#~ "Congratulations, the installation is complete.\n"
+-#~ "\n"
+-#~ "%s%s"
+-#~ msgstr ""
+-#~ "BlahopÅ™ejeme, instalace je dokonÄena.\n"
+-#~ "\n"
+-#~ "%s%s"
+-
+-#~ msgid "Upgrade Examine"
+-#~ msgstr "Prozkoumání aktualizaci"
+-
+-#~ msgid "_Install %s"
+-#~ msgstr "_Instalovat systém %s"
+-
+-#~ msgid ""
+-#~ "Choose this option to freshly install your system. Existing software and "
+-#~ "data may be overwritten depending on your configuration choices."
+-#~ msgstr ""
+-#~ "Zvolte instalaci pro novou instalaci vaÅ¡eho systému. Existující software "
+-#~ "a data mohou být pÅ™epsána, podle vaÅ¡ich rozhodnutí pÅ™i konfiguraci."
+-
+-#~ msgid "_Upgrade an existing installation"
+-#~ msgstr "_Aktualizovat existující instalaci"
+-
+-#~ msgid ""
+-#~ "Choose this option if you would like to upgrade your existing %s system.  "
+-#~ "This option preserves the existing data on your drives."
+-#~ msgstr ""
+-#~ "Zvolte aktualizaci, jestliže chcete aktualizovat %s. Aktualizace zachová "
+-#~ "data na vaÅ¡ich discích."
+-
+-#~ msgid "The following installed system will be upgraded:"
+-#~ msgstr "Bude aktualizován následující nainstalovaný systém:"
+-
+-#~ msgid "Unknown Linux system"
+-#~ msgstr "Neznámý systém Linux"
+-
+-#~ msgid "Language Selection"
+-#~ msgstr "VýbÄ›r jazyka"
+-
+-#~ msgid "What language would you like to use during the installation process?"
+-#~ msgstr "Jaký jazyk chcete používat bÄ›hem instalace?"
+-
+-#~ msgid "Not enough space"
+-#~ msgstr "Nedostatek místa"
+-
+-#~ msgid ""
+-#~ "The physical extent size cannot be changed because otherwise the space "
+-#~ "required by the currently defined logical volumes will be increased to "
+-#~ "more than the available space."
+-#~ msgstr ""
+-#~ "Velikost extentu nelze zmÄ›nit, protože velikost potÅ™ebná pro definované "
+-#~ "logické svazky (LV) by byla vÄ›tší, než je dostupné místo."
+-
+-#~ msgid "Confirm Physical Extent Change"
+-#~ msgstr "Potvrdit zmÄ›nu velikosti extentu."
+-
+-#~ msgid ""
+-#~ "This change in the value of the physical extent will require the sizes of "
+-#~ "the current logical volume requests to be rounded up in size to an "
+-#~ "integer multiple of the physical extent.\n"
+-#~ "\n"
+-#~ "This change will take effect immediately."
+-#~ msgstr ""
+-#~ "ZmÄ›na velikosti extentu znamená, Å¾e se velikost logického svazku (LV) "
+-#~ "zaokrouhlí nahoru na celoÄíselný násobek velikosti extentu.\n"
+-#~ "\n"
+-#~ "ZmÄ›na bude mít okamžitý ÃºÄinek."
+-
+-#~ msgid "C_ontinue"
+-#~ msgstr "_PokraÄovat"
+-
+-#~ msgid ""
+-#~ "The physical extent size cannot be changed because the value selected "
+-#~ "(%10.2f MB) is larger than the smallest physical volume (%10.2f MB) in "
+-#~ "the volume group."
+-#~ msgstr ""
+-#~ "Velikost fyzického oddílu nelze zmÄ›nit, protože zvolená hodnota (%10.2f "
+-#~ "MB) je vÄ›tší, než nejmenší fyzický svazek (%10.2f MB) ve skupinÄ› svazků."
+-
+-#~ msgid ""
+-#~ "The physical extent size cannot be changed because the value selected "
+-#~ "(%10.2f MB) is too large compared to the size of the smallest physical "
+-#~ "volume (%10.2f MB) in the volume group."
+-#~ msgstr ""
+-#~ "Velikost fyzického svazku nelze zmÄ›nit, protože zvolená hodnota (%10.2f "
+-#~ "MB) je příliÅ¡ velká vzhledem k velikosti nejmenšího fyzického svazku "
+-#~ "(%10.2f MB) ve skupinÄ› svazků."
+-
+-#~ msgid "Too small"
+-#~ msgstr "PříliÅ¡ malý"
+-
+-#~ msgid ""
+-#~ "This change in the value of the physical extent will waste substantial "
+-#~ "space on one or more of the physical volumes in the volume group."
+-#~ msgstr ""
+-#~ "ZmÄ›na velikosti extentu způsobí nezanedbatelné plýtvání místem na jednom "
+-#~ "nebo více fyzických svazcích (PV) ve skupinÄ› svazků (VG)."
+-
+-#~ msgid ""
+-#~ "The physical extent size cannot be changed because the resulting maximum "
+-#~ "logical volume size (%10.2f MB) is smaller than one or more of the "
+-#~ "currently defined logical volumes."
+-#~ msgstr ""
+-#~ "Velikost extentu nelze zmÄ›nit, protože výsledná maximální velikost "
+-#~ "logického svazku (LV, tj. %10.2f MB) je menší, než jeden nebo více z "
+-#~ "aktuálnÄ› definovaných logických svazků (LV)."
+-
+-#~ msgid ""
+-#~ "You cannot remove this physical volume because otherwise the volume group "
+-#~ "will be too small to hold the currently defined logical volumes."
+-#~ msgstr ""
+-#~ "Nelze odstranit fyzický svazek (PV), protože jinak by byla skupina svazků "
+-#~ "(VG) příliÅ¡ malá pro aktuálnÄ› definované logické svazky (LV)."
+-
+-#~ msgid "Make Logical Volume"
+-#~ msgstr "VytvoÅ™it logický svazek (LV)"
+-
+-#~ msgid "Edit Logical Volume: %s"
+-#~ msgstr "Upravit logický svazek (LV): %s"
+-
+-#~ msgid "Edit Logical Volume"
+-#~ msgstr "Upravit logický svazek (LV)"
+-
+-#~ msgid "_Mount Point:"
+-#~ msgstr "_PÅ™ipojit do:"
+-
+-#~ msgid "_File System Type:"
+-#~ msgstr "Typ _systému souborů:"
+-
+-#~ msgid "Original File System Type:"
+-#~ msgstr "Původní typ systému souborů:"
+-
+-#~ msgid "Unknown"
+-#~ msgstr "Neznámý"
+-
+-#~ msgid "Original File System Label:"
+-#~ msgstr "Původní jmenovka systému souborů:"
+-
+-#~ msgid "_Logical Volume Name:"
+-#~ msgstr "Jméno _logického svazku (LV):"
+-
+-#~ msgid "Logical Volume Name:"
+-#~ msgstr "Jméno logického svazku (LV):"
+-
+-#~ msgid "_Size (MB):"
+-#~ msgstr "_Velikost (MB):"
+-
+-#~ msgid "Size (MB):"
+-#~ msgstr "Velikost (MB):"
+-
+-#~ msgid "(Max size is %s MB)"
+-#~ msgstr "(Maximum je %s MB)"
+-
+-#~ msgid "Illegal size"
+-#~ msgstr "Neplatná velikost"
+-
+-#~ msgid "The requested size as entered is not a valid number greater than 0."
+-#~ msgstr "Vložená velikost není není platné Äíslo vÄ›tší než 0."
+-
+-#~ msgid "The mount point \"%s\" is in use. Please pick another."
+-#~ msgstr "Místo pÅ™ipojení \"%s\" je již používáno. Zadejte jiné."
+-
+-#~ msgid "Illegal Logical Volume Name"
+-#~ msgstr "Neplatné jméno logického svazku (LV)"
+-
+-#~ msgid "Illegal logical volume name"
+-#~ msgstr "Neplatné jméno logického svazku (LV)"
+-
+-#~ msgid ""
+-#~ "The logical volume name \"%s\" is already in use. Please pick another."
+-#~ msgstr "Jméno logického svazku \"%s\" je již používáno. Zadejte jiné."
+-
+-#~ msgid ""
+-#~ "The current requested size (%10.2f MB) is larger than the maximum logical "
+-#~ "volume size (%10.2f MB). To increase this limit you can create more "
+-#~ "Physical Volumes from unpartitioned disk space and add them to this "
+-#~ "Volume Group."
+-#~ msgstr ""
+-#~ "Požadovaná velikost (%10.2f MB) je vÄ›tší, než maximální velikost "
+-#~ "logického svazku (LV, tj. %10.2f MB). Limit můžete zvýšit vytoÅ™ením "
+-#~ "dalších fyzických svazků (PV) ve volném diskovém prostoru a jejich "
+-#~ "pÅ™idáním do skupiny svazků (VG)."
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Error With Request"
+-#~ msgstr "Chyba pÅ™i požadavku"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "The logical volumes you have configured require %d MB, but the volume "
+-#~ "group only has %d MB.  Please either make the volume group larger or make "
+-#~ "the logical volume(s) smaller."
+-#~ msgstr ""
+-#~ "Logické svazky (LV) potÅ™ebují %d MB, ale ve skupinÄ› svazků (VG) je k "
+-#~ "dispozici jen %d MB. BuÄ zvÄ›tÅ¡ete skupinu svazků (VG), nebo zmenÅ¡ete "
+-#~ "logický svazek (LV)."
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "No free slots"
+-#~ msgstr "Chybí volné pozice"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "You cannot create more than %s logical volumes per volume group."
+-#~ msgstr ""
+-#~ "Nelze vytvoÅ™it více než %s logických svazků (LV) v jedné skupinÄ› svazků "
+-#~ "(VG)."
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "No free space"
+-#~ msgstr "Chybí volné místo"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid ""
+-#~ "There is no room left in the volume group to create new logical volumes. "
+-#~ "To add a logical volume you must reduce the size of one or more of the "
+-#~ "currently existing logical volumes"
+-#~ msgstr ""
+-#~ "Ve skupinÄ› svazků (VG) není místo pro vytvoÅ™ení nových logických svazků "
+-#~ "(LV). ZmenÅ¡ete velikost jednoho nebo více z existujících logických svazků "
+-#~ "(LV)."
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Invalid Volume Group Name"
+-#~ msgstr "Neplatné jméno skupiny svazků (VG)"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Name in use"
+-#~ msgstr "Jméno je již používáno"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "The volume group name \"%s\" is already in use. Please pick another."
+-#~ msgstr "Jméno skupiny svazků (VG) \"%s\" je již používáno. Zadejte jiné."
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Not enough physical volumes"
+-#~ msgstr "Nedostatek fyzických svazků (PV)"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid ""
+-#~ "At least one unused physical volume partition is needed to create an LVM "
+-#~ "Volume Group.\n"
+-#~ "\n"
+-#~ "Create a partition or RAID array of type \"physical volume (LVM)\" and "
+-#~ "then select the \"LVM\" option again."
+-#~ msgstr ""
+-#~ "Pro vytvoÅ™ení skupiny svazků (VG) v LVM je potÅ™eba alespoň jeden oddíl s "
+-#~ "fyzickým svazkem (PV).\n"
+-#~ "\n"
+-#~ "VytvoÅ™te oddíl nebo pole RAID typu \"fyzický svazek (PV)\" a pak zvolte "
+-#~ "volbu \"LVM\" znovu."
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Make LVM Volume Group"
+-#~ msgstr "VytvoÅ™it skupinu svazků (VG) LVM"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Edit LVM Volume Group: %s"
+-#~ msgstr "Upravit skupinu svazků (VG) LVM: %s"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Edit LVM Volume Group"
+-#~ msgstr "Upravit skupinu svazků (VG) LVM"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "_Volume Group Name:"
+-#~ msgstr "_Jméno skupiny svazků (VG):"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Volume Group Name:"
+-#~ msgstr "Jméno skupiny svazků (VG):"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "_Physical Extent:"
+-#~ msgstr "_Fyzický extent:"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Physical Volumes to _Use:"
+-#~ msgstr "_Použít fyzické svazky (PV):"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Used Space:"
+-#~ msgstr "Použité místo:"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Free Space:"
+-#~ msgstr "Volné místo:"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Total Space:"
+-#~ msgstr "Celkem:"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Size (MB)"
+-#~ msgstr "Velikost (MB)"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "_Edit"
+-#~ msgstr "_Upravit"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "_Logical Volumes"
+-#~ msgstr "_Logické svazky"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Mouse Configuration"
+-#~ msgstr "Nastavení myÅ¡i"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "/dev/ttyS0 (COM1 under DOS)"
+-#~ msgstr "/dev/ttyS0 (v DOSu COM1)"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "/dev/ttyS1 (COM2 under DOS)"
+-#~ msgstr "/dev/ttyS1 (v DOSu COM2)"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "/dev/ttyS2 (COM3 under DOS)"
+-#~ msgstr "/dev/ttyS2 (v DOSu COM3)"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "/dev/ttyS3 (COM4 under DOS)"
+-#~ msgstr "/dev/ttyS3 (v DOSu COM4)"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "_Device"
+-#~ msgstr "Z_ařízení"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "_Model"
+-#~ msgstr "_Model"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "_Emulate 3 buttons"
+-#~ msgstr "_Emulovat 3 tlaÄítka"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Select the appropriate mouse for the system."
+-#~ msgstr "Zvolte typ myÅ¡i."
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid ""
+-#~ "An error occurred converting the value entered for \"%s\":\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "PÅ™i konverzi hodnoty zadané pro \"%s\" doÅ¡lo k chybÄ›:\n"
+-#~ "%s"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Error With Data"
+-#~ msgstr "Chyba v datech"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "A value is required for the field %s."
+-#~ msgstr "V poli %s je nutné vyplnit hodnotu."
+-
+-#~ msgid "Dynamic IP"
+-#~ msgstr "Dynamické nastavení IP"
+-
+-#~ msgid "Sending request for IP information for %s..."
+-#~ msgstr "Odesílám požadavek o informace IP pro %s..."
+-
+-#~ msgid "IP Address"
+-#~ msgstr "IP adresa"
+-
+-#~ msgid "IPv4 CIDR prefix must be between 0 and 32."
+-#~ msgstr "Prefix CIDR IPv4 musí být mezi 0 a 32."
+-
+-#~ msgid "IPv4 Network Mask"
+-#~ msgstr "IPv4 maska sítÄ› "
+-
+-#~ msgid "Gateway"
+-#~ msgstr "Gateway"
+-
+-#~ msgid "Nameserver"
+-#~ msgstr "DNS server"
+-
+-#~ msgid "Error configuring network device:"
+-#~ msgstr "Chyba pÅ™i konfigurování síťového rozhraní "
+-
+-#~ msgid "Error configuring network device"
+-#~ msgstr "Chyba pÅ™i konfigurování síťového rozhraní"
+-
+-#~ msgid "Primary DNS"
+-#~ msgstr "Primární DNS"
+-
+-#~ msgid "Secondary DNS"
+-#~ msgstr "Sekundární DNS"
+-
+-#~ msgid "_Gateway"
+-#~ msgstr "_Gateway"
+-
+-#~ msgid "_Primary DNS"
+-#~ msgstr "Primární _DNS"
+-
+-#~ msgid "_Secondary DNS"
+-#~ msgstr "_Sekundární DNS"
+-
+-#~ msgid ""
+-#~ "You have not specified a hostname.  Depending on your network environment "
+-#~ "this may cause problems later."
+-#~ msgstr ""
+-#~ "Nezadali jste jméno poÄítaÄe. To může, v závislosti na vaÅ¡em síťovém "
+-#~ "prostÅ™edí, pozdÄ›ji způsobit problémy."
+-
+-#~ msgid ""
+-#~ "You have not specified the field \"%s\".  Depending on your network "
+-#~ "environment this may cause problems later."
+-#~ msgstr ""
+-#~ "Nevyplnili jste pole \"%s\". To může, v závislosti na vaÅ¡em síťovém "
+-#~ "prostÅ™edí, pozdÄ›ji způsobit problémy."
+-
+-#~ msgid ""
+-#~ "The hostname \"%s\" is not valid for the following reason:\n"
+-#~ "\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "Jméno poÄítaÄe \"%s\" není platné z následujícího důvodu:\n"
+-#~ "\n"
+-#~ "%s"
+-
+-#~ msgid "Error With %s Data"
+-#~ msgstr "Chyba v datech %s"
+-
+-#~ msgid "The IPv4 information you have entered is invalid."
+-#~ msgstr "Hodnoty pro IPv4 nejsou platné."
+-
+-#~ msgid ""
+-#~ "You have no active network devices.  Your system will not be able to "
+-#~ "communicate over a network by default without at least one device active."
+-#~ msgstr ""
+-#~ "Nemáte Å¾Ã¡dná aktivní síťová zařízení. Váš systém nebude moci komunikovat "
+-#~ "po síti bez aktivního zařízení."
+-
+-#~ msgid "Active on Boot"
+-#~ msgstr "Aktivovat pÅ™i startu"
+-
+-#~ msgid "IPv4/Netmask"
+-#~ msgstr "IPv4/Maska sítÄ›"
+-
+-#~ msgid "IPv6/Prefix"
+-#~ msgstr "IPv6/Prefix"
+-
+-#~ msgid "Network Devices"
+-#~ msgstr "Síťová zařízení"
+-
+-#~ msgid "Set the hostname:"
+-#~ msgstr "Nastavit jméno poÄítaÄe:"
+-
+-#~ msgid "_automatically via DHCP"
+-#~ msgstr "_automaticky pomocí DHCP"
+-
+-#~ msgid "_manually"
+-#~ msgstr "_ruÄnÄ›"
+-
+-#~ msgid "(e.g., host.domain.com)"
+-#~ msgstr "(napÅ™. pocitac.domena.cz)"
+-
+-#~ msgid "Hostname"
+-#~ msgstr "Jméno poÄítaÄe"
+-
+-#~ msgid "Miscellaneous Settings"
+-#~ msgstr "Různé volby"
+-
+-#~ msgid "Edit Device "
+-#~ msgstr "Upravit zařízení "
+-
+-#~ msgid "Unknown Ethernet Device"
+-#~ msgstr "Neznámé Ethernet zařízení"
+-
+-#~ msgid "Hardware address: "
+-#~ msgstr "Hardwarová adresa: "
+-
+-#~ msgid "You must select at least IPv4 or IPv6 support."
+-#~ msgstr "Musíte vybrat alespoň jeden z protokolů IPv4 nebo IPv6."
+-
+-#~ msgid "IPv4 prefix must be between 0 and 32."
+-#~ msgstr "Prefix IPv4 musí být mezi 0 a 32."
+-
+-#~ msgid "IPv6 prefix must be between 0 and 128."
+-#~ msgstr "Prefix IPv6 musí být mezi 0 a 128."
+-
+-#~ msgid "Boot loader operating system list"
+-#~ msgstr "Seznam operaÄních systémů pro zavadÄ›Ä."
+-
+-#~ msgid "Image"
+-#~ msgstr "Obraz"
+-
+-#~ msgid ""
+-#~ "Enter a label for the boot loader menu to display. The device (or hard "
+-#~ "drive and partition number) is the device from which it boots."
+-#~ msgstr ""
+-#~ "Vložte název, který bude zobrazen v menu zavadÄ›Äe. Zařízení (nebo disk a "
+-#~ "Äíslo oddílu) urÄuje, odkud bude systém zaveden."
+-
+-#~ msgid "_Label"
+-#~ msgstr "_Název"
+-
+-#~ msgid "Default Boot _Target"
+-#~ msgstr "Implicitní _obraz pro zavedení systému"
+-
+-#~ msgid "You must specify a label for the entry"
+-#~ msgstr "Musíte zvolit jmenovku pro položku"
+-
+-#~ msgid "Boot label contains illegal characters"
+-#~ msgstr "Název systému obsahuje nedovolené znaky"
+-
+-#~ msgid "Duplicate Label"
+-#~ msgstr "Název je již používán"
+-
+-#~ msgid "This label is already in use for another boot entry."
+-#~ msgstr "Název je již používána v jiné položce zavadÄ›Äe."
+-
+-#~ msgid "Duplicate Device"
+-#~ msgstr "Zařízení je používáno"
+-
+-#~ msgid "This device is already being used for another boot entry."
+-#~ msgstr "Zařízení je již používáno v jiné položce zavadÄ›Äe."
+-
+-#~ msgid "Cannot Delete"
+-#~ msgstr "Nemohu odstranit"
+-
+-#~ msgid ""
+-#~ "This boot target cannot be deleted because it is for the %s system you "
+-#~ "are about to install."
+-#~ msgstr ""
+-#~ "Položku v zavadÄ›Äi nelze odstranit, protože je pro systém %s, který "
+-#~ "budete instalovat."
+-
+-#~ msgid "Additional Size Options"
+-#~ msgstr "Další volby pro velikost"
+-
+-#~ msgid "_Fixed size"
+-#~ msgstr "_Uvedená velikost"
+-
+-#~ msgid "Fill all space _up to (MB):"
+-#~ msgstr "Vyplnit vo_lné místo do velikosti (MB):"
+-
+-#~ msgid "Fill to maximum _allowable size"
+-#~ msgstr "Vyplnit vÅ¡_echno volné místo"
+-
+-#~ msgid "The end cylinder must be greater than the start cylinder."
+-#~ msgstr "Koncový cylindr musí být vÄ›tší než poÄáteÄní cylindr."
+-
+-#~ msgid "Edit Partition: /dev/%s"
+-#~ msgstr "Nastavení oddílu: /dev/%s"
+-
+-#~ msgid "Edit Partition"
+-#~ msgstr "Nastavení oddílu"
+-
+-#~ msgid "File System _Type:"
+-#~ msgstr "_Typ systému souborů:"
+-
+-#~ msgid "_Encrypt"
+-#~ msgstr "_Å ifrovat"
+-
+-#~ msgid "Allowable _Drives:"
+-#~ msgstr "VýbÄ›r _disků:"
+-
+-#~ msgid "Drive:"
+-#~ msgstr "Disk:"
+-
+-#~ msgid "_Start Cylinder:"
+-#~ msgstr "_PoÄáteÄní cylindr:"
+-
+-#~ msgid "_End Cylinder:"
+-#~ msgstr "_Koncový cylindr:"
+-
+-#~ msgid "Force to be a _primary partition"
+-#~ msgstr "VytvoÅ™it jako _primární oddíl"
+-
+-#~ msgid "Drive %s (Geom: %s/%s/%s) (Model: %s)"
+-#~ msgstr "Disk %s (Geom: %s/%s/%s) (Model: %s)"
+-
+-#~ msgid "Drive %s (%-0.f MB) (Model: %s)"
+-#~ msgstr "Disk %s (%-0.f MB) (Model: %s)"
+-
+-#~ msgid "End"
+-#~ msgstr "Konec"
+-
+-#~ msgid ""
+-#~ "Mount Point/\n"
+-#~ "RAID/Volume"
+-#~ msgstr ""
+-#~ "PÅ™ipojit do/\n"
+-#~ "RAID/svazek"
+-
+-#~ msgid ""
+-#~ "Size\n"
+-#~ "(MB)"
+-#~ msgstr ""
+-#~ "Velikost\n"
+-#~ "(MB)"
+-
+-#~ msgid "Partitioning"
+-#~ msgstr "Vytváření oddílů"
+-
+-#~ msgid ""
+-#~ "The partitioning scheme you requested caused the following critical "
+-#~ "errors."
+-#~ msgstr ""
+-#~ "RozdÄ›lení disku, které bylo vybráno, skonÄilo s následujícími chybami."
+-
+-#~ msgid ""
+-#~ "You must correct these errors before you continue your installation of %s."
+-#~ msgstr "PÅ™ed pokraÄováním instalace %s musí být chyby opraveny."
+-
+-#~ msgid ""
+-#~ "The partitioning scheme you requested generated the following warnings."
+-#~ msgstr ""
+-#~ "RozdÄ›lení disku, které bylo vybráno, probÄ›hlo s následujícími varováními."
+-
+-#~ msgid "Would you like to continue with your requested partitioning scheme?"
+-#~ msgstr "Chcete pokraÄovat s požadovaným schématem oddílů?"
+-
+-#~ msgid "Partitioning Warnings"
+-#~ msgstr "Varování o oddílech"
+-
+-#~ msgid "Format Warnings"
+-#~ msgstr "Varování pÅ™ed formátováním"
+-
+-#~ msgid "_Format"
+-#~ msgstr "_Formátovat"
+-
+-#~ msgid "LVM Volume Groups"
+-#~ msgstr "Skupiny svazků LVM"
+-
+-#~ msgid "RAID Devices"
+-#~ msgstr "RAID zařízení"
+-
+-#~ msgid "Hard Drives"
+-#~ msgstr "Pevné disky"
+-
+-#~ msgid "Free space"
+-#~ msgstr "Nevyužito"
+-
+-#~ msgid "Extended"
+-#~ msgstr "Extended"
+-
+-#~ msgid "software RAID"
+-#~ msgstr "softwarový RAID"
+-
+-#~ msgid "Free"
+-#~ msgstr "Volné"
+-
+-#~ msgid "Warning: %s."
+-#~ msgstr "Varování: %s."
+-
+-#~ msgid "Not supported"
+-#~ msgstr "Nepodporováno"
+-
+-#~ msgid "LVM is NOT supported on this platform."
+-#~ msgstr "LVM na této platformÄ› NENàpodporován."
+-
+-#~ msgid "Software RAID is NOT supported on this platform."
+-#~ msgstr "Softwarový RAID na této platformÄ› NENàpodporován."
+-
+-#~ msgid "No RAID minor device numbers available"
+-#~ msgstr "Chybí menší Äísla zařízení RAID"
+-
+-#~ msgid ""
+-#~ "A software RAID device cannot be created because all of the available "
+-#~ "RAID minor device numbers have been used."
+-#~ msgstr ""
+-#~ "Nelze vytvoÅ™it zařízení softwarový RAID, protože vÅ¡echna menší Äísla "
+-#~ "zařízení RAID již byla použita."
+-
+-#~ msgid "RAID Options"
+-#~ msgstr "Nastavení RAID"
+-
+-#~ msgid ""
+-#~ "Software RAID allows you to combine several disks into a larger RAID "
+-#~ "device.  A RAID device can be configured to provide additional speed and "
+-#~ "reliability compared to using an individual drive.  For more information "
+-#~ "on using RAID devices please consult the %s documentation.\n"
+-#~ "\n"
+-#~ "You currently have %s software RAID partition(s) free to use.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Softwarový RAID umožňuje zkombinovat nÄ›kolik disků do vÄ›tšího zařízení "
+-#~ "RAID. Zařízení RAID může být nakonfigurováno, aby poskytlo vÄ›tší rychlost "
+-#~ "a spolehlivost než jednotlivý disk. Pro více informací o používání "
+-#~ "zařízení RAID si prosím pÅ™eÄtÄ›te dokumentaci %s.\n"
+-#~ "\n"
+-#~ "AktuálnÄ› máte k dispozici %s oddílů softwarového RAID.\n"
+-#~ "\n"
+-
+-#~ msgid ""
+-#~ "To use RAID you must first create at least two partitions of type "
+-#~ "'software RAID'.  Then you can create a RAID device that can be formatted "
+-#~ "and mounted.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Aby Å¡lo používat RAID, musíte nejdříve vytvoÅ™it alespoň dva oddíly typu "
+-#~ "'softwarový RAID'. Pak lze vytvoÅ™it RAID zařízení, které je možné "
+-#~ "naformátovat a pÅ™ipojit.\n"
+-#~ "\n"
+-
+-#~ msgid "What do you want to do now?"
+-#~ msgstr "Co chcete provést?"
+-
+-#~ msgid "Create a software RAID _partition."
+-#~ msgstr "VytvoÅ™it _oddíl softwarového RAID."
+-
+-#~ msgid "Create a RAID _device [default=/dev/md%s]."
+-#~ msgstr "VytvoÅ™it _zařízení RAID [implicitní /dev/md%s]."
+-
+-#~ msgid "Clone a _drive to create a RAID device [default=/dev/md%s]."
+-#~ msgstr "VytvoÅ™it zařízení RAID _klonováním disku [implicitní /dev/md%s]."
+-
+-#~ msgid "The drive clone editor could not be created for some reason."
+-#~ msgstr "Z nÄ›jakého důvodu nelze vytvoÅ™it editor klonů disku."
+-
+-#~ msgid "Ne_w"
+-#~ msgstr "No_vý"
+-
+-#~ msgid "Re_set"
+-#~ msgstr "O_bnovit"
+-
+-#~ msgid "R_AID"
+-#~ msgstr "_RAID"
+-
+-#~ msgid "_LVM"
+-#~ msgstr "_LVM"
+-
+-#~ msgid "Hide RAID device/LVM Volume _Group members"
+-#~ msgstr "_Skrýt Äleny zařízení RAID a skupin svazků LVM"
+-
+-#~ msgid "<Not Applicable>"
+-#~ msgstr "<Není použitelné>"
+-
+-#~ msgid "_Format as:"
+-#~ msgstr "_Formátovat jako:"
+-
+-#~ msgid "Mi_grate filesystem to:"
+-#~ msgstr "_Migrovat systém souborů na:"
+-
+-#~ msgid "_Resize"
+-#~ msgstr "ZmÄ›nit _velikost"
+-
+-#~ msgid ""
+-#~ "Partitions of type '%s' must be constrained to a single drive.  To do "
+-#~ "this, select the drive in the 'Allowable Drives' checklist."
+-#~ msgstr ""
+-#~ "Oddíly typu '%s' musí být omezeny na jeden disk. Vyberte pouze jeden disk "
+-#~ "v seznamu 'VýbÄ›r disků'."
+-
+-#~ msgid "Disk Partitioning Setup"
+-#~ msgstr "Nastavení oddílů na disku"
+-
+-#~ msgid "_Automatically partition"
+-#~ msgstr "_Automatické vytvoÅ™ení oddílů"
+-
+-#~ msgid "Manually partition with _Disk Druid"
+-#~ msgstr "_RuÄní vytvoÅ™ení oddílů pomocí programu Disk Druid"
+-
+-#~ msgid "Installing Packages"
+-#~ msgstr "Instaluji balíÄky"
+-
+-#~ msgid ""
+-#~ "At least two unused software RAID partitions are needed to create a RAID "
+-#~ "device.\n"
+-#~ "\n"
+-#~ "First create at least two partitions of type \"software RAID\", and then "
+-#~ "select the \"RAID\" option again."
+-#~ msgstr ""
+-#~ "Pro vytvoÅ™ení zařízení RAID jsou potÅ™eba alespoň dva nepoužité oddíly "
+-#~ "softwarového RAID.\n"
+-#~ "\n"
+-#~ "Nejdříve vytvoÅ™te alespoň dva oddíly typu \"softwarový RAID\", pak zvolte "
+-#~ "volbu \"RAID\" znovu."
+-
+-#~ msgid "Make RAID Device"
+-#~ msgstr "VytvoÅ™it RAID zařízení"
+-
+-#~ msgid "Edit RAID Device: /dev/md%s"
+-#~ msgstr "Upravit RAID zařízení: /dev/md%s"
+-
+-#~ msgid "Edit RAID Device"
+-#~ msgstr "Upravit RAID zařízení"
+-
+-#~ msgid "RAID _Device:"
+-#~ msgstr "RAID _zařízení:"
+-
+-#~ msgid "RAID _Level:"
+-#~ msgstr "RAID _Level:"
+-
+-#~ msgid "_RAID Members:"
+-#~ msgstr "ÄŒlenové _RAID:"
+-
+-#~ msgid "Number of _spares:"
+-#~ msgstr "PoÄet _rezerv:"
+-
+-#~ msgid "_Format partition?"
+-#~ msgstr "_Formátovat oddíl?"
+-
+-#~ msgid ""
+-#~ "The source drive has no partitions to be cloned.  You must first define "
+-#~ "partitions of type 'software RAID' on this drive before it can be cloned."
+-#~ msgstr ""
+-#~ "Zdrojový disk nemá Å¾Ã¡dné oddíly pro klonování. Než může být disk "
+-#~ "klonován, musí na nÄ›m nejdříve být definovány oddíly typu 'softwarový "
+-#~ "RAID'."
+-
+-#~ msgid "Source Drive Error"
+-#~ msgstr "Chyba zdrojového disku"
+-
+-#~ msgid ""
+-#~ "The source drive you selected has partitions which are not of type "
+-#~ "'software RAID'.\n"
+-#~ "\n"
+-#~ "You must remove these partitions before this drive can be cloned. "
+-#~ msgstr ""
+-#~ "Zvolený zdrojový disk obsahuje oddíly, které nejsou typu 'softwarový "
+-#~ "RAID'.\n"
+-#~ "\n"
+-#~ "Aby bylo možné klonovat disk, musíte je odstranit."
+-
+-#~ msgid ""
+-#~ "The source drive you selected has partitions which are not constrained to "
+-#~ "the drive /dev/%s.\n"
+-#~ "\n"
+-#~ "You must remove these partitions or restrict them to this drive before "
+-#~ "this drive can be cloned. "
+-#~ msgstr ""
+-#~ "Zvolený zdrojový disk obsahuje oddíly, které nejsou omezeny na disk /dev/"
+-#~ "%s.\n"
+-#~ "\n"
+-#~ "Aby bylo možné klonovat disk, musíte je odstranit nebo omezit pouze na "
+-#~ "zdrojový disk."
+-
+-#~ msgid ""
+-#~ "The source drive you selected has software RAID partition(s) which are "
+-#~ "members of an active software RAID device.\n"
+-#~ "\n"
+-#~ "You must remove these partitions before this drive can be cloned."
+-#~ msgstr ""
+-#~ "Zvolený zdrojový disk obsahuje oddíl 'softwarový RAID', které jsou Äleny "
+-#~ "aktivního softwarového RAID zařízení.\n"
+-#~ "\n"
+-#~ "Aby bylo možné klonovat disk, musíte je odstranit."
+-
+-#~ msgid "Target Drive Error"
+-#~ msgstr "Chyba cílového disku"
+-
+-#~ msgid "Please select the target drives for the clone operation."
+-#~ msgstr "Vyberte cílové disky pro klonování."
+-
+-#~ msgid ""
+-#~ "The source drive /dev/%s cannot be selected as a target drive as well."
+-#~ msgstr "Zdrojový disk /dev/%s nemůže být zvolen také jako cílový disk."
+-
+-#~ msgid ""
+-#~ "The target drive /dev/%s has a partition which cannot be removed for the "
+-#~ "following reason:\n"
+-#~ "\n"
+-#~ "\"%s\"\n"
+-#~ "\n"
+-#~ "You must remove this partition before this drive can be a target."
+-#~ msgstr ""
+-#~ "Na cílovém disku /dev/%s je oddíl, který nelze odstranit z následujícího "
+-#~ "důvodu:\n"
+-#~ "\n"
+-#~ "\"%s\"\n"
+-#~ "\n"
+-#~ "Aby disk mohl být cílem, musíte oddíl odstranit."
+-
+-#~ msgid "Please select a source drive."
+-#~ msgstr "Zvolte zdrojový disk."
+-
+-#~ msgid ""
+-#~ "The drive /dev/%s will now be cloned to the following drives:\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Disk /dev/%s bude nyní naklonován na následující disky:\n"
+-#~ "\n"
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "WARNING! ALL DATA ON THE TARGET DRIVES WILL BE DESTROYED."
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "VAROVÃNÃ! VÅ ECHNA DATA NA CÃLOVÃCH DISCÃCH BUDOU SMAZÃNA."
+-
+-#~ msgid "Final Warning"
+-#~ msgstr "Poslední varování"
+-
+-#~ msgid "Clone Drives"
+-#~ msgstr "Klonovat disky"
+-
+-#~ msgid "There was an error clearing the target drives.  Cloning failed."
+-#~ msgstr "PÅ™i mazání cílových disků doÅ¡lo k chybÄ›. Klonování selhalo."
+-
+-#~ msgid ""
+-#~ "Clone Drive Tool\n"
+-#~ "\n"
+-#~ "This tool allows you to significantly reduce the amount of effort "
+-#~ "required to setup RAID arrays.  This tool uses a source drive which has "
+-#~ "been prepared with the desired partitioning layout, and clones this "
+-#~ "layout onto other similar sized drives.  Then a RAID device can be "
+-#~ "created.\n"
+-#~ "\n"
+-#~ "NOTE: The source drive must have partitions which are restricted to be on "
+-#~ "that drive only, and can only contain unused software RAID partitions.  "
+-#~ "Other partition types are not allowed.\n"
+-#~ "\n"
+-#~ "EVERYTHING on the target drive(s) will be destroyed by this process."
+-#~ msgstr ""
+-#~ "Nástroj pro klonování disků\n"
+-#~ "\n"
+-#~ "Nástroj na klonování disků umožňuje podstatnÄ› zjednoduÅ¡it vytvoÅ™ení polí "
+-#~ "RAID. Vytvoříte zdrojový disk s požadovaným rozložením oddílů a "
+-#~ "naklonujete jeho rozložení na ostatní, podobnÄ› velké disky. Pak lze "
+-#~ "vytvoÅ™it zařízení RAID.\n"
+-#~ "\n"
+-#~ "UPOZORNÄšNÃ: Zdrojový disk musí mít oddíly, které jsou omezeny na jeden "
+-#~ "disk a může obsahovat jen nepoužité softwarové RAID oddíly. Jiné typy "
+-#~ "oddílů nejsou povoleny.\n"
+-#~ "\n"
+-#~ "VÅ ECHNA DATA na cílovém disku (discích) budou klonováním smazána."
+-
+-#~ msgid "Source Drive:"
+-#~ msgstr "Zdrojový disk:"
+-
+-#~ msgid "Target Drive(s):"
+-#~ msgstr "Cílový disk (disky):"
+-
+-#~ msgid "Drives"
+-#~ msgstr "Disky"
+-
+-#~ msgid ""
+-#~ "Unable to read package metadata from repository.  This may be due to a "
+-#~ "missing repodata directory.  Please ensure that your repository has been "
+-#~ "correctly generated.\n"
+-#~ "\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "Nelze naÄíst metadata balíÄku z repozitáře. Důvodem může být chybÄ›jící "
+-#~ "adresář repodata. Zkontrolujte, zda metadata repozitáře byla správnÄ› "
+-#~ "vygenerována.\n"
+-#~ "\n"
+-#~ "%s"
+-
+-#~ msgid ""
+-#~ "Unable to find a group file for %s.  This will prevent manual selection "
+-#~ "of packages from the repository from working"
+-#~ msgstr ""
+-#~ "Nelze najít soubor se skupinami pro %s. RuÄní výbÄ›r balíÄků nebude pro "
+-#~ "repozitář fungovat."
+-
+-#~ msgid "Edit Repository"
+-#~ msgstr "Upravit repozitář"
+-
+-#~ msgid "Invalid Repository Name"
+-#~ msgstr "Neplatné jméno repozitáře"
+-
+-#~ msgid "You must provide a repository name."
+-#~ msgstr "Musíte vložit jméno repozitáře."
+-
+-#~ msgid "Invalid Proxy URL"
+-#~ msgstr "Neplatné URL proxy"
+-
+-#~ msgid "You must provide an HTTP, HTTPS, or FTP URL to a proxy."
+-#~ msgstr "Musíte zadat HTTP, HTTPS nebo FTP URL proxy."
+-
+-#~ msgid "Invalid Repository URL"
+-#~ msgstr "Neplatné URL repozitáře"
+-
+-#~ msgid "You must provide an HTTP, HTTPS, or FTP URL to a repository."
+-#~ msgstr "Musíte zadat HTTP, HTTPS nebo FTP URL repozitáře."
+-
+-#~ msgid ""
+-#~ "The repository %s has already been added.  Please choose a different "
+-#~ "repository name and URL."
+-#~ msgstr "Repozitář %s již byl pÅ™idán. Zvolte jiné jméno repozitáře a URL."
+-
+-#~ msgid "Time Zone Selection"
+-#~ msgstr "VýbÄ›r Äasové zóny"
+-
+-#~ msgid "Upgrade Boot Loader Configuration"
+-#~ msgstr "Aktualizace zavadÄ›Äe systému"
+-
+-#~ msgid "_Update boot loader configuration"
+-#~ msgstr "_Aktualizovat zavaděĠsystému"
+-
+-#~ msgid "This will update your current boot loader."
+-#~ msgstr "Bude provedena aktualizace zavadÄ›Äe systému."
+-
+-#~ msgid ""
+-#~ "Due to system changes, your boot loader configuration can not be "
+-#~ "automatically updated."
+-#~ msgstr ""
+-#~ "Konfigurace zavadÄ›Äe nemůže být kvůli systémovým zmÄ›nám automaticky "
+-#~ "aktualizována."
+-
+-#~ msgid ""
+-#~ "The installer is unable to detect the boot loader currently in use on "
+-#~ "your system."
+-#~ msgstr ""
+-#~ "InstalaÄní program není schopen detekovat, jaký zavaděĠje v systému "
+-#~ "používán."
+-
+-#~ msgid ""
+-#~ "The installer has detected the %s boot loader currently installed on %s."
+-#~ msgstr "InstalaÄní program nalezl zavaděĠ%s nainstalovaný na %s."
+-
+-#~ msgid "This is the recommended option."
+-#~ msgstr "Toto je doporuÄená volba."
+-
+-#~ msgid "_Create new boot loader configuration"
+-#~ msgstr "_VytvoÅ™it nové nastavení zavadÄ›Äe"
+-
+-#~ msgid ""
+-#~ "This option creates a new boot loader configuration.  If you wish to "
+-#~ "switch boot loaders, you should choose this."
+-#~ msgstr ""
+-#~ "VytvoÅ™ení nového nastavení zavadÄ›Äe systému použijte v případÄ›, Å¾e chcete "
+-#~ "pÅ™ejít na jiný zavadÄ›Ä."
+-
+-#~ msgid "_Skip boot loader updating"
+-#~ msgstr "_Vynechat aktualizaci zavadÄ›Äe"
+-
+-#~ msgid ""
+-#~ "This option makes no changes to boot loader configuration.  If you are "
+-#~ "using a third party boot loader, you should choose this."
+-#~ msgstr ""
+-#~ "V nastavení zavadÄ›Äe nebudou provedeny Å¾Ã¡dné zmÄ›ny. Volbu použijte v "
+-#~ "případÄ›, Å¾e používáte zavaděĠtÅ™etí strany."
+-
+-#~ msgid "What would you like to do?"
+-#~ msgstr "Co chcete provést?"
+-
+-#~ msgid "Migrate File Systems"
+-#~ msgstr "Migrovat systémy souborů"
+-
+-#~ msgid ""
+-#~ "This release of %s supports the ext3 journaling file system, which has "
+-#~ "several benefits over the ext2 file system traditionally shipped in %s.  "
+-#~ "This installation program can migrate the ext2 formatted partitions to "
+-#~ "ext3 without data loss.\n"
+-#~ "\n"
+-#~ "Which of these partitions would you like to migrate?"
+-#~ msgstr ""
+-#~ "Distribuce %s podporuje Å¾urnálový systém souborů ext3, který má proti "
+-#~ "ext2, které se používá v %s, nÄ›kolik významných vylepÅ¡ení. Migrace "
+-#~ "(pÅ™evod) z ext2 na ext3 je možný beze ztráty dat.\n"
+-#~ "\n"
+-#~ "Které oddíly chcete migrovat na ext3?"
+-
+-#~ msgid "Upgrade Swap Partition"
+-#~ msgstr "Aktualizace odkládacího oddílu"
+-
+-#~ msgid ""
+-#~ "Recent kernels (2.4 or newer) need significantly more swap than older "
+-#~ "kernels, up to twice the amount of RAM on the system.  You currently have "
+-#~ "%dMB of swap configured, but you may create additional swap space on one "
+-#~ "of your file systems now."
+-#~ msgstr ""
+-#~ "Moderní jádra (2.4 a novÄ›jší) potÅ™ebují více odkládacího prostoru, než "
+-#~ "jádra starší. DoporuÄená velikost odkládacího prostoru je dvojnásobek "
+-#~ "velikosti RAM, kterou máte ve vaÅ¡em poÄítaÄi. V souÄasné dobÄ› máte %d MB "
+-#~ "odkládacího prostoru. Chcete-li, můžete na jednom ze systémů souborů "
+-#~ "odkládací prostor pÅ™idat."
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "The installer has detected %s MB of RAM.\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "InstalaÄní program detekoval %s MB RAM.\n"
+-
+-#~ msgid "I _want to create a swap file"
+-#~ msgstr "Chci _vytvoÅ™it odkládací soubor"
+-
+-#~ msgid "Select the _partition to put the swap file on:"
+-#~ msgstr "Zvolte _oddíl, na kterém se má vytvoÅ™it odkládací soubor:"
+-
+-#~ msgid "Free Space (MB)"
+-#~ msgstr "Volný prostor (MB)"
+-
+-#~ msgid ""
+-#~ "A minimum swap file size of %d MB is recommended.  Please enter a size "
+-#~ "for the swap file:"
+-#~ msgstr ""
+-#~ "DoporuÄená velikost odkládacího souboru je alespoň %d MB. Vložte prosím "
+-#~ "velikost odkládacího souboru:"
+-
+-#~ msgid "Swap file _size (MB):"
+-#~ msgstr "Velikost odkládacího _souboru (MB):"
+-
+-#~ msgid "I _don't want to create a swap file"
+-#~ msgstr "_Nechci vytvoÅ™it odkládací soubor"
+-
+-#~ msgid ""
+-#~ "A swap file is strongly recommended. Failure to create one could cause "
+-#~ "the installer to abort abnormally.  Are you sure you wish to continue?"
+-#~ msgstr ""
+-#~ "DůraznÄ› doporuÄujeme vytvoÅ™it odkládací soubor. Pokud jej nevytvoříte, "
+-#~ "může být bÄ›h instalaÄního programu neoÄekávanÄ› ukonÄen. Opravdu chcete "
+-#~ "pokraÄovat?"
+-
+-#~ msgid "The swap file must be between 1 and 2000 MB in size."
+-#~ msgstr "Velikost odkládacího souboru musí být mezi 1 a 2000 MB."
+-
+-#~ msgid ""
+-#~ "There is not enough space on the device you selected for the swap "
+-#~ "partition."
+-#~ msgstr ""
+-#~ "Na vybraném zařízení není dostatek volného místa pro odkládací oddíl."
+-
+-#~ msgid "z/IPL Boot Loader Configuration"
+-#~ msgstr "Nastavení zavadÄ›Äe systému z/IPL"
+-
+-#~ msgid "The z/IPL boot loader will be installed on your system."
+-#~ msgstr "ZavaděĠz/IPL bude nainstalován na váš systém."
+-
+-#~ msgid ""
+-#~ "The z/IPL Boot Loader will now be installed on your system.\n"
+-#~ "\n"
+-#~ "The root partition will be the one you selected previously in the "
+-#~ "partition setup.\n"
+-#~ "\n"
+-#~ "The kernel used to start the machine will be the one to be installed by "
+-#~ "default.\n"
+-#~ "\n"
+-#~ "If you wish to make changes later after the installation feel free to "
+-#~ "change the /etc/zipl.conf configuration file.\n"
+-#~ "\n"
+-#~ "You can now enter any additional kernel parameters which your machine or "
+-#~ "your setup may require."
+-#~ msgstr ""
+-#~ "Nyní bude na Víš systém nainstalován zavaděĠsystému z/IPL.\n"
+-#~ "\n"
+-#~ "KoÅ™enový oddíl bude ten, co jste zvolili pÅ™i nastavování oddílů.\n"
+-#~ "\n"
+-#~ "Jádro použité pro zavedení systému bude implicitní nainstalované jádro.\n"
+-#~ "\n"
+-#~ "Pokud chcete zmÄ›nit nastaveni, upravte po instalaci konfiguraÄní soubor /"
+-#~ "etc/zipl.conf.\n"
+-#~ "\n"
+-#~ "Nyní můžete zadat přídavné parametry jádra, které jsou potÅ™eba pro váš "
+-#~ "poÄítaÄ."
+-
+-#~ msgid "Kernel Parameters"
+-#~ msgstr "Parametry jádra"
+-
+-#~ msgid "Chandev Parameters"
+-#~ msgstr "Parametry chandev"
+-
+-#~ msgid "Which boot loader would you like to use?"
+-#~ msgstr "Který zavaděĠsystému chcete použít?"
+-
+-#~ msgid "Use GRUB Boot Loader"
+-#~ msgstr "Použít GRUB"
+-
+-#~ msgid "No Boot Loader"
+-#~ msgstr "Žádný zavadÄ›Ä"
+-
+-#~ msgid "Skip Boot Loader"
+-#~ msgstr "Vynechat zavadÄ›Ä"
+-
+-#~ msgid ""
+-#~ "You have elected not to install any boot loader, which is not recommended "
+-#~ "unless you have an advanced need. Booting your system into Linux directly "
+-#~ "from the hard drive almost always requires a boot loader.\n"
+-#~ "\n"
+-#~ "Are you sure you want to skip boot loader installation?"
+-#~ msgstr ""
+-#~ "Nezvolili jste instalaci Å¾Ã¡dného zavadÄ›Äe. DoporuÄujeme jeho instalaci "
+-#~ "neprovádÄ›t jen v případÄ›, Å¾e k tomu máte zvláštní důvody. ZavaděĠje "
+-#~ "potÅ™eba pro zavedení systému přímo z pevného disku.\n"
+-#~ "\n"
+-#~ "Opravdu chcete vynechat instalaci zavadÄ›Äe systému?"
+-
+-#~ msgid ""
+-#~ "A few systems need to pass special options to the kernel at boot time to "
+-#~ "function properly. If you need to pass boot options to the kernel, enter "
+-#~ "them now. If you don't need any or aren't sure, leave this blank."
+-#~ msgstr ""
+-#~ "U nÄ›kterých systémů je pÅ™i startu potÅ™eba pÅ™edat jádru speciální "
+-#~ "parametry. Máte-li takové, můžete je zde uvést. Pokud nevíte, co byste "
+-#~ "mÄ›li zadat, nezadávejte nic."
+-
+-#~ msgid "Force use of LBA32 (not normally required)"
+-#~ msgstr "Použít LBA32 (bez ohledu na autodetekci)"
+-
+-#~ msgid ""
+-#~ "If LBA32 is not supported by your system's BIOS, forcing its use can "
+-#~ "prevent your machine from booting.\n"
+-#~ "\n"
+-#~ "Would you like to continue and force LBA32 mode?"
+-#~ msgstr ""
+-#~ "Pokud použijete LBA32 a její podpora v BIOSu nebude přítomna, poÄítaÄ "
+-#~ "nebude schopen nastartovat.\n"
+-#~ "\n"
+-#~ "Opravdu chcete použít LBA32 bez ohledu na autodetekci?"
+-
+-#~ msgid "Where do you want to install the boot loader?"
+-#~ msgstr "Kam chcete nainstalovat zavaděĠsystému?"
+-
+-#~ msgid "Boot label"
+-#~ msgstr "Název v zavadÄ›Äi"
+-
+-#~ msgid "Clear"
+-#~ msgstr "Smazat"
+-
+-#~ msgid "Edit Boot Label"
+-#~ msgstr "Upravit název v zavadÄ›Äi"
+-
+-#~ msgid "Invalid Boot Label"
+-#~ msgstr "Neplatný název v zavadÄ›Äi"
+-
+-#~ msgid "Boot label may not be empty."
+-#~ msgstr "Název nesmí být prázdný."
+-
+-#~ msgid "Boot label contains illegal characters."
+-#~ msgstr "Název položky zavadÄ›Äe obsahuje neplatné znaky."
+-
+-#~ msgid "Edit"
+-#~ msgstr "Upravit"
+-
+-#~ msgid ""
+-#~ "The boot manager %s uses can boot other operating systems as well.  "
+-#~ "Please tell me what partitions you would like to be able to boot and what "
+-#~ "label you want to use for each of them."
+-#~ msgstr ""
+-#~ "ZavadÄ›Ä, který používá %s, lze použít pÅ™i startu systému i pro zavedení "
+-#~ "jiných operaÄních systémů. Je potÅ™eba zadat, ve kterých oddílech jsou a "
+-#~ "názvy, které budou použity v menu."
+-
+-#~ msgid ""
+-#~ " <Space> select | <F2> select default | <F4> delete | <F12> next screen>"
+-#~ msgstr ""
+-#~ " <Mezera> zvolit | <F2> jako implicitní | <F4> odstranit | <F12> "
+-#~ "pokraÄovat"
+-
+-#~ msgid ""
+-#~ "A boot loader password prevents users from passing arbitrary options to "
+-#~ "the kernel.  For highest security, you should set a password, but a "
+-#~ "password is not necessary for more casual users."
+-#~ msgstr ""
+-#~ "Heslo pro zavaděĠsystému brání uživatelům, aby pÅ™i startu systému mÄ›nili "
+-#~ "nebo pÅ™idávali jádru dodateÄné parametry. Chcete-li systém zabezpeÄit, "
+-#~ "nastavte heslo. Pro běžné použití to vÅ¡ak není nutné."
+-
+-#~ msgid "Use a GRUB Password"
+-#~ msgstr "Chránit GRUB heslem"
+-
+-#~ msgid "Boot Loader Password:"
+-#~ msgstr "Heslo pro zavaděĠGRUB:"
+-
+-#~ msgid "Confirm:"
+-#~ msgstr "PotvrÄte:"
+-
+-#~ msgid "Passwords Do Not Match"
+-#~ msgstr "Hesla nesouhlasí."
+-
+-#~ msgid "Password Too Short"
+-#~ msgstr "Heslo je příliÅ¡ krátké."
+-
+-#~ msgid "Boot loader password is too short"
+-#~ msgstr "Heslo pro zavaděĠje příliÅ¡ krátké."
+-
+-#~ msgid ""
+-#~ "Press <Enter> to end the installation process.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "DokonÄete instalaci stisknutím <Enter>.\n"
+-#~ "\n"
+-
+-#~ msgid "<Enter> to exit"
+-#~ msgstr "<Enter> pro ukonÄení"
+-
+-#~ msgid ""
+-#~ "Congratulations, your %s installation is complete.\n"
+-#~ "\n"
+-#~ "%s%s"
+-#~ msgstr ""
+-#~ "BlahopÅ™ejeme, vaÅ¡e instalace %s je dokonÄena.\n"
+-#~ "\n"
+-#~ "%s%s"
+-
+-#~ msgid ""
+-#~ "For information on errata (updates and bug fixes), visit http://www."
+-#~ "redhat.com/errata/.\n"
+-#~ "\n"
+-#~ "Information on using your system is available in the %s manuals at http://"
+-#~ "www.redhat.com/docs/."
+-#~ msgstr ""
+-#~ "Pro informace o errata (aktualizacích a opravách chyb) navÅ¡tivte http://"
+-#~ "www.redhat.com/errata/.\n"
+-#~ "\n"
+-#~ "Informace o používání systému naleznete v manuálech distribuce %s na "
+-#~ "http://www.redhat.com/docs/."
+-
+-#~ msgid "Complete"
+-#~ msgstr "Hotovo"
+-
+-#~ msgid "Reboot"
+-#~ msgstr "Restartovat"
+-
+-#~ msgid "Please select the package groups you would like to install."
+-#~ msgstr "Zvolte skupiny balíÄků, které chcete nainstalovat."
+-
+-#~ msgid ""
+-#~ "<Space>,<+>,<-> selection   |   <F2> Group Details   |   <F12> next screen"
+-#~ msgstr ""
+-#~ "  <Mezera>,<+>,<-> vybrat   |   <F2> Detaily skupiny   |   <F12> "
+-#~ "pokraÄovat"
+-
+-#~ msgid "No optional packages to select"
+-#~ msgstr "Žádné volitelné balíÄky"
+-
+-#~ msgid "Package Group Details"
+-#~ msgstr "Detaily skupiny balíÄků"
+-
+-#~ msgid "Keyboard Selection"
+-#~ msgstr "VýbÄ›r klávesnice"
+-
+-#~ msgid "Which model keyboard is attached to this computer?"
+-#~ msgstr "Jaký model klávesnice je pÅ™ipojen k poÄítaÄi?"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "What device is your mouse located on?"
+-#~ msgstr "K jakému zařízení je pÅ™ipojena vaÅ¡e myÅ¡?"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Which model mouse is attached to this computer?"
+-#~ msgstr "Jaký model myÅ¡i je pÅ™ipojen k poÄítaÄi?"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Emulate 3 Buttons?"
+-#~ msgstr "Emulovat 3 tlaÄítka?"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Mouse Selection"
+-#~ msgstr "VýbÄ›r myÅ¡i"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid ""
+-#~ "You have not specified the field %s.  Depending on your network "
+-#~ "environment this may cause problems later."
+-#~ msgstr ""
+-#~ "Nevyplnili jste pole %s. V závislosti na vaÅ¡em síťovém prostÅ™edí to může "
+-#~ "pozdÄ›ji způsobit problémy."
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "IPv%d prefix must be between 0 and %d."
+-#~ msgstr "Prefix IPv%d musí být mezi 0 a %d."
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Integer Required for Prefix"
+-#~ msgstr "Prefix musí být celé Äíslo"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid ""
+-#~ "You must enter a valid integer for the %s.  For IPv4, the value can be "
+-#~ "between 0 and 32.  For IPv6 it can be between 0 and 128."
+-#~ msgstr ""
+-#~ "Pro %s musíte vložit platné celé Äíslo. Pro IPv4 je rozsah od 0 do 32, "
+-#~ "pro IPv6 je rozsah od 0 do 128."
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Prefix (Netmask)"
+-#~ msgstr "Prefix (maska sítÄ›)"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Activate on boot"
+-#~ msgstr "Aktivovat pÅ™i startu"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Enable IPv4 support"
+-#~ msgstr "Povolit podporu IPv4"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Enable IPv6 support"
+-#~ msgstr "Povolit podporu IPv6"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "P-to-P:"
+-#~ msgstr "P-to-P:"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "ESSID:"
+-#~ msgstr "ESSID:"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "WEP Key:"
+-#~ msgstr "WEP klíÄ:"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Network Configuration for %s"
+-#~ msgstr "Nastavení sítÄ› pro %s"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "point-to-point IP address"
+-#~ msgstr "point-to-point IP adresa"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Dynamic IP configuration (DHCP)"
+-#~ msgstr "Dynamické nastavení IP adresy (DHCP)"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Manual address configuration"
+-#~ msgstr "RuÄní konfigurace IP adresy"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "IPv4 Configuration for %s"
+-#~ msgstr "IPv4 konfigurace pro %s"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "IPv4 address"
+-#~ msgstr "IPv4 adresa"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "IPv4 network mask"
+-#~ msgstr "IPv4 maska sítÄ›"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "IPv4 prefix (network mask)"
+-#~ msgstr "IPv4 prefix (maska sítÄ›)"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Automatic neighbor discovery"
+-#~ msgstr "Automatické vyhledání okolních poÄítaÄů"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Dynamic IP configuration (DHCPv6)"
+-#~ msgstr "Dynamické nastavení IP adresy (DHCPv6)"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "IPv6 Configuration for %s"
+-#~ msgstr "IPv6 konfigurace pro %s"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "IPv6 address"
+-#~ msgstr "IPv6 adresa"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "IPv6 prefix"
+-#~ msgstr "IPv6 prefix"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Configure Network Interface"
+-#~ msgstr "Nastavení síťového rozhraní"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Would you like to configure the %s network interface in your system?"
+-#~ msgstr "Chcete nastavit síťové rozhraní %s?"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "UNCONFIGURED"
+-#~ msgstr "NENASTAVENO"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid ""
+-#~ "The current configuration settings for each interface are listed next to "
+-#~ "the device name.  Unconfigured interfaces are shown as UNCONFIGURED.  To "
+-#~ "configure an interface, highlight it and choose Edit.  When you are "
+-#~ "finished, press OK to continue."
+-#~ msgstr ""
+-#~ "Aktuální nastavení vÅ¡ech síťových zařízení je vypsáno vedle jeho názvu. "
+-#~ "Zařízení, která nejsou nakonfigurována, jsou oznaÄena NENASTAVENO. Chcete-"
+-#~ "li nastavení zmÄ›nit, kliknÄ›te na zařízení a pak na Upravit. Po dokonÄení "
+-#~ "stisknÄ›te OK pro pokraÄování."
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Active on boot"
+-#~ msgstr "Aktivní pÅ™i startu"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Inactive on boot"
+-#~ msgstr "Neaktivní pÅ™i startu"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "DHCP"
+-#~ msgstr "DHCP"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Auto IPv6"
+-#~ msgstr "Auto IPv6"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "DHCPv6"
+-#~ msgstr "DHCPv6"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Gateway:"
+-#~ msgstr "Brána:"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Primary DNS:"
+-#~ msgstr "Primární DNS:"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Secondary DNS:"
+-#~ msgstr "Sekundární DNS:"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Miscellaneous Network Settings"
+-#~ msgstr "Různá nastavení sítÄ›"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "gateway"
+-#~ msgstr "brána"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "primary DNS"
+-#~ msgstr "primární DNS"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "secondary DNS"
+-#~ msgstr "sekundární DNS"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "automatically via DHCP"
+-#~ msgstr "automaticky pomocí DHCP"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "manually"
+-#~ msgstr "ruÄnÄ›"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Hostname Configuration"
+-#~ msgstr "Nastavení jména poÄítaÄe"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid ""
+-#~ "If your system is part of a larger network where hostnames are assigned "
+-#~ "by DHCP, select automatically via DHCP. Otherwise, select manually and "
+-#~ "enter a hostname for your system. If you do not, your system will be "
+-#~ "known as 'localhost.'"
+-#~ msgstr ""
+-#~ "Pokud je systém souÄástí vÄ›tší sítÄ›, kde jsou jména poÄítaÄů pÅ™iÅ™azována "
+-#~ "pomocí DHCP, zvolte 'Automaticky pomocí DHCP'. V opaÄném případÄ› zvolte "
+-#~ "RuÄnÄ› a zadejte jméno svého poÄítaÄe. Pokud nezvolíte nic, systém se bude "
+-#~ "jmenovat 'localhost'."
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "You have not specified a hostname."
+-#~ msgstr "NeurÄili jste jméno poÄítaÄe."
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Requested value is too large"
+-#~ msgstr "Vložená hodnota je příliÅ¡ velká"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "RAID Device %s"
+-#~ msgstr "RAID zařízení %s"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Warning: %s"
+-#~ msgstr "Varování: %s"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Add anyway"
+-#~ msgstr "PÅ™esto použít"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Mount Point:"
+-#~ msgstr "PÅ™ipojeno do:"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "File System type:"
+-#~ msgstr "Typ systému souborů:"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Allowable Drives:"
+-#~ msgstr "VýbÄ›r disků:"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Fixed Size:"
+-#~ msgstr "Uvedená velikost:"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Fill maximum size of (MB):"
+-#~ msgstr "Vyplnit maximálnÄ› (MB):"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Fill all available space:"
+-#~ msgstr "Vyplnit vÅ¡echen volný prostor:"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Start Cylinder:"
+-#~ msgstr "PoÄáteÄní cylindr:"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "End Cylinder:"
+-#~ msgstr "Koncový cylindr:"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Volume Group:"
+-#~ msgstr "Skupina svazků:"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "RAID Members:"
+-#~ msgstr "ÄŒlenové RAID:"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Number of spares?"
+-#~ msgstr "PoÄet rezerv?"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "File System Option:"
+-#~ msgstr "Nastavení systému souborů:"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Format as %s"
+-#~ msgstr "Formátovat jako %s"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Migrate to %s"
+-#~ msgstr "Migrovat na %s"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Leave unchanged"
+-#~ msgstr "Ponechat beze zmÄ›ny"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "File System Options"
+-#~ msgstr "Nastavení systému souborů"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Please choose how you would like to prepare the file system on this "
+-#~ "partition."
+-#~ msgstr "Vyberte, jak chcete pÅ™ipravit systém souborů na oddílu."
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Leave unchanged (preserve data)"
+-#~ msgstr "Ponechat beze zmÄ›ny (zachovat data)"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Format as:"
+-#~ msgstr "Formátovat jako:"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Migrate to:"
+-#~ msgstr "Migrovat na:"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Force to be a primary partition"
+-#~ msgstr "Nastavit jako primární oddíl"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Not Supported"
+-#~ msgstr "Nepodporováno"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "You can only edit LVM Volume Groups in the graphical installer."
+-#~ msgstr ""
+-#~ "Skupiny svazků LVM mohou být mÄ›nÄ›ny jen v grafickém instalaÄním programu."
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Invalid Entry for Partition Size"
+-#~ msgstr "Å patná velikost oddílu"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Invalid Entry for Maximum Size"
+-#~ msgstr "Å patná maximální velikost"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Invalid Entry for Starting Cylinder"
+-#~ msgstr "Å patný poÄáteÄní cylindr"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Invalid Entry for End Cylinder"
+-#~ msgstr "Å patný koncový cylindr"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "No RAID partitions"
+-#~ msgstr "Žádné RAID oddíly"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "At least two software RAID partitions are needed."
+-#~ msgstr "Jsou potÅ™eba alespoň dva softwarové RAID oddíly."
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Format partition?"
+-#~ msgstr "Formátovat oddíl?"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Invalid Entry for RAID Spares"
+-#~ msgstr "Å patná položka pro RAID rezervy"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Too many spares"
+-#~ msgstr "PříliÅ¡ mnoho rezerv"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "You may not use any spares with a RAID0 array."
+-#~ msgstr "U RAID0 nelze použít Å¾Ã¡dné rezervy."
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "No Volume Groups"
+-#~ msgstr "Žádná skupina svazků"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "No volume groups exist in which to create a logical volume"
+-#~ msgstr ""
+-#~ "Neexistuje skupina svazků (VG), ve které vytvoÅ™it logický svazek (LV)"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "The current requested size (%10.2f MB) is larger than the maximum logical "
+-#~ "volume size (%10.2f MB). "
+-#~ msgstr ""
+-#~ "Požadovaná velikost (%10.2f MB) je vÄ›tší než maximální velikost logického "
+-#~ "svazku (LV, tj. %10.2f MB). "
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "The current requested size (%10.2f MB) is larger than the available size "
+-#~ "in the volume group (%10.2f MB)."
+-#~ msgstr ""
+-#~ "MomentálnÄ› požadovaná velikost (%10.2f MB) je vÄ›tší než dostupná velikost "
+-#~ "ve skupinÄ› svazků (%10.2f MB)."
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "New Partition or Logical Volume?"
+-#~ msgstr "Nový oddíl nebo logický svazek?"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Would you like to create a new partition or a new logical volume?"
+-#~ msgstr "Chcete vytvoÅ™it nový oddíl nebo nový logický svazek?"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "logical volume"
+-#~ msgstr "logický svazek"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Size"
+-#~ msgstr "Velikost"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "New"
+-#~ msgstr "Nový"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "RAID"
+-#~ msgstr "RAID"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid ""
+-#~ "    F1-Help     F2-New      F3-Edit   F4-Delete    F5-Reset    F12-"
+-#~ "OK        "
+-#~ msgstr ""
+-#~ "   F1-NápovÄ›da   F2-Nový   F3-Upravit   F4-Odstranit   F5-Obnovit   F12-"
+-#~ "Ok   "
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "No Root Partition"
+-#~ msgstr "Chybí koÅ™enový oddíl"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Installation requires a / partition."
+-#~ msgstr "Instalace vyžaduje koÅ™enový oddíl (/)."
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Partitioning Type"
+-#~ msgstr "Typ tabulky oddílů"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Installation requires partitioning of your hard drive.  The default "
+-#~ "layout is reasonable for most users.  You can either choose to use this "
+-#~ "or create your own."
+-#~ msgstr ""
+-#~ "PÅ™ed instalací je potÅ™eba rozdÄ›lit disk na oddíly a urÄit, kam se bude "
+-#~ "instalovat. Automatické rozdÄ›lení vytvoří implicitní rozdÄ›lení, které "
+-#~ "bude ve vÄ›tÅ¡inÄ› případů vyhovovat. Můžete také vytvoÅ™it oddíly ruÄnÄ› a "
+-#~ "sami urÄit, kam budou pÅ™ipojeny."
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Which drive(s) do you want to use for this installation?"
+-#~ msgstr "Které disky chcete pro instalaci použít?"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid ""
+-#~ "<Space>,<+>,<-> selection   |   <F2> Add drive   |   <F12> next screen"
+-#~ msgstr ""
+-#~ "<Mezera>,<+>,<-> vybrat  |  <F2> pÅ™idat jednotku  |  <F12> pokraÄovat"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Review Partition Layout"
+-#~ msgstr "Prohlédnout rozložení oddílů"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Review and modify partitioning layout?"
+-#~ msgstr "Prohlédnout a upravit rozložení oddílů?"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Advanced Storage Options"
+-#~ msgstr "PokroÄilé volby pro ukládání dat"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "How would you like to modify your drive configuration?"
+-#~ msgstr "Jak chcete upravit nastavení disku?"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Add FCP Device"
+-#~ msgstr "PÅ™idat FCP zařízení"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "zSeries machines can access industry-standard SCSI devices via Fibre "
+-#~ "Channel (FCP). You need to provide a 16 bit device number, a 64 bit World "
+-#~ "Wide Port Name (WWPN), and a 64 bit FCP LUN for each device."
+-#~ msgstr ""
+-#~ "PoÄítaÄe zSeries mohou používat standardní zařízení SCSI pÅ™es Fibre "
+-#~ "Channel (FCP). Pro každé zařízení musíte zadat tyto parametry: 16 bitové "
+-#~ "Äíslo zařízení, 64 bitové World Wide Port Name (WWPN) a 64 bitové FCP LUN."
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Configure iSCSI Parameters"
+-#~ msgstr "Konfigurace iSCSI"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid ""
+-#~ "To use iSCSI disks, you must provide the address of your iSCSI target and "
+-#~ "the iSCSI initiator name you've configured for your host."
+-#~ msgstr ""
+-#~ "Chcete-li používat iSCSI disky, musíte zadat adresu a jméno vaÅ¡eho iSCSI "
+-#~ "iniciátoru, které jste konfigurovali pro váš poÄítaÄ."
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Target IP Address"
+-#~ msgstr "Cílová IP adresa"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "iSCSI Initiator Name"
+-#~ msgstr "Název iSCSI iniciátoru"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Autopartition"
+-#~ msgstr "Automatické vytváření oddílů"
+-
+-#~ msgid "Disk Druid"
+-#~ msgstr "Disk Druid"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Package Installation"
+-#~ msgstr "Instalace balíÄků"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Package selection"
+-#~ msgstr "VýbÄ›r balíÄků"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid ""
+-#~ "The default installation of %s includes a set of software applicable for "
+-#~ "general internet usage.  What additional tasks would you like your system "
+-#~ "to support?"
+-#~ msgstr ""
+-#~ "Standardní instalace %s obsahuje sadu programů pro běžné používání "
+-#~ "Internetu. Které další Äinnosti by mÄ›l váš systém podporovat?"
+-
+-#~ msgid "Customize software selection"
+-#~ msgstr "Upravit výbÄ›r programů"
+-
+-#~ msgid "In which time zone are you located?"
+-#~ msgstr "Ve které Äasové zónÄ› je poÄítaÄ umístÄ›n?"
+-
+-#~ msgid "System clock uses UTC"
+-#~ msgstr "Systémové hodiny jsou nastaveny na Äas UTC"
+-
+-#~ msgid "Update boot loader configuration"
+-#~ msgstr "Aktualizace zavadÄ›Äe systému"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Skip boot loader updating"
+-#~ msgstr "Vynechat aktualizaci zavadÄ›Äe"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Create new boot loader configuration"
+-#~ msgstr "VytvoÅ™it nové nastavení zavadÄ›Äe"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Free Space"
+-#~ msgstr "Volné místo"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "RAM detected (MB):"
+-#~ msgstr "Detekovaná RAM (MB):"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Suggested size (MB):"
+-#~ msgstr "DoporuÄená velikost (MB):"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Swap file size (MB):"
+-#~ msgstr "Velikost odkládacího souboru (MB):"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Add Swap"
+-#~ msgstr "PÅ™idat swap"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "The value you entered is not a valid number."
+-#~ msgstr "Vložený Ãºdaj není platné Äíslo."
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Reinstall System"
+-#~ msgstr "PÅ™einstalovat systém"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "System to Upgrade"
+-#~ msgstr "Aktualizace systému"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "There seem to be one or more existing Linux installations on your "
+-#~ "system.\n"
+-#~ "\n"
+-#~ "Please choose one to upgrade, or select 'Reinstall System' to freshly "
+-#~ "install your system."
+-#~ msgstr ""
+-#~ "Na vaÅ¡em systému byla nalezena jedna nebo více dalších instalací Linuxu.\n"
+-#~ "\n"
+-#~ "Chcete-li nÄ›kterou z nich aktualizovat, vyberte ji. ÃšplnÄ› nový systém "
+-#~ "můžete nainstalovat volbou 'PÅ™einstalovat systém'."
+-
+-#~ msgid "Root Password"
+-#~ msgstr "Heslo správce systému"
+-
+-#~ msgid ""
+-#~ "Pick a root password. You must type it twice to ensure you know it and do "
+-#~ "not make a typing mistake. "
+-#~ msgstr ""
+-#~ "Zvolte heslo pro uživatele root. Heslo musíte zadat dvakrát, abyste "
+-#~ "zajistili, Å¾e je víte a Å¾e jste se pÅ™i psaní nespletli."
+-
+-#~ msgid "The root password must be at least 6 characters long."
+-#~ msgstr "Heslo pro uživatele root musí obsahovat nejménÄ› 6 znaků."
+-
+-#~ msgid "%s"
+-#~ msgstr "%s"
+-
+-#~ msgid ""
+-#~ "Welcome to %s!\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Vítá vás %s!\n"
+-#~ "\n"
+-
+-#~ msgid ""
+-#~ "The z/IPL Boot Loader will be installed on your system after installation "
+-#~ "is complete. You can now enter any additional kernel and chandev "
+-#~ "parameters which your machine or your setup require."
+-#~ msgstr ""
+-#~ "ZavaděĠz/IPL bude na váš systém nainstalován po dokonÄení instalace. "
+-#~ "Zadejte vlastní parametry jádra a chandev, které jsou pro poÄítaÄ potÅ™eba."
+-
+-#~ msgid "z/IPL Configuration"
+-#~ msgstr "Nastavení z-IPL"
+-
+-#~ msgid "Chandev line "
+-#~ msgstr "Řádek chandev "
+-
+-#~ msgid "_Fedora"
+-#~ msgstr "_Fedora"
+-
+-#~ msgid ""
+-#~ "The default installation of %s includes a set of software applicable for "
+-#~ "general internet usage. What additional tasks would you like your system "
+-#~ "to include support for?"
+-#~ msgstr ""
+-#~ "Standardní instalace %s obsahuje sadu programů pro běžné používání "
+-#~ "Internetu. Které další Äinnosti by mÄ›l váš systém podporovat?"
+-
+-#~ msgid "Office and Productivity"
+-#~ msgstr "Kancelář a Produktivita"
+-
+-#~ msgid "Software Development"
+-#~ msgstr "Vývoj software"
+-
+-#~ msgid "Web server"
+-#~ msgstr "Web server"
+-
+-#~ msgid "Red Hat Enterprise Linux"
+-#~ msgstr "Red Hat Enterprise Linux"
+-
+-#~ msgid "Office"
+-#~ msgstr "Kancelář"
+-
+-#~ msgid "Multimedia"
+-#~ msgstr "Multimédia"
+-
+-#~ msgid "Clustering"
+-#~ msgstr "Clustery"
+-
+-#~ msgid "Storage Clustering"
+-#~ msgstr "Úložné clustery"
+-
+-#~ msgid "Installation Number"
+-#~ msgstr "InstalaÄní Äíslo"
+-
+-#~ msgid ""
+-#~ "To install the full set of supported packages included in your "
+-#~ "subscription, please enter your Installation Number"
+-#~ msgstr ""
+-#~ "Pro instalaci vÅ¡ech podporovaných balíÄků pro vaÅ¡e pÅ™edplatné vložte své "
+-#~ "InstalaÄní Äíslo"
+-
+-#~ msgid ""
+-#~ "If you're unable to locate the Installation Number, consult http://www."
+-#~ "redhat.com/apps/support/in.html.\n"
+-#~ "\n"
+-#~ "If you skip:\n"
+-#~ "* You may not get access to the full set of packages included in your "
+-#~ "subscription.\n"
+-#~ "* It may result in an unsupported/uncertified installation of Red Hat "
+-#~ "Enterprise Linux.\n"
+-#~ "* You will not get software and security updates for packages not "
+-#~ "included in your subscription."
+-#~ msgstr ""
+-#~ "Pokud nemůžete nalézt instalaÄní Äíslo, podívejte se na http://www.redhat."
+-#~ "com/apps/support/in.html.\n"
+-#~ "\n"
+-#~ "Pokud tento krok pÅ™eskoÄíte:\n"
+-#~ "* Nemusíte získat přístup ke vÅ¡em balíÄkům v pÅ™edplatném.\n"
+-#~ "* Může mít nepodporovanou/necertifikovanou instalaci Red Hat Entriprise "
+-#~ "Linuxu.\n"
+-#~ "* Nezískáte bezpeÄnostní a softwarové aktualizace dle pÅ™edplatného."
+-
+-#~ msgid "Media Check"
+-#~ msgstr "Kontrola média"
+-
+-#~ msgid "Test"
+-#~ msgstr "Test"
+-
+-#~ msgid "Eject Disc"
+-#~ msgstr "Vysunout CD "
+-
+-#~ msgid ""
+-#~ "Choose \"%s\" to test the disc currently in the drive, or \"%s\" to eject "
+-#~ "the disc and insert another for testing."
+-#~ msgstr ""
+-#~ "Zvolte \"%s\" pro test média, které je právÄ› v mechanice nebo \"%s\" pro "
+-#~ "vysunutí média. Pak vložte další médium, které chcete otestovat."
+-
+-#~ msgid ""
+-#~ "If you would like to test additional media, insert the next disc and "
+-#~ "press \"%s\". Testing each disc is not strictly required, however it is "
+-#~ "highly recommended.  Minimally, the discs should be tested prior to using "
+-#~ "them for the first time. After they have been successfully tested, it is "
+-#~ "not required to retest each disc prior to using it again."
+-#~ msgstr ""
+-#~ "Chcete-li testovat doplňková média, vložte další médium a stisknÄ›te \"%s"
+-#~ "\".Testování každého média není bezpodmíneÄnÄ› vyžadován, je ale velmi "
+-#~ "doporuÄován. UrÄitÄ› by mÄ›la být média testována pÅ™ed prvním použitím. Po "
+-#~ "úspěšném otestování již není vyžadováno dalsí testování pÅ™ed každým "
+-#~ "použitím."
+-
+-#~ msgid ""
+-#~ "The %s disc was not found in any of your drives. Please insert the %s "
+-#~ "disc and press %s to retry."
+-#~ msgstr ""
+-#~ "Nemohu nalézt médium %s v Å¾Ã¡dné jednotce. Vložte médium s distribucí %s a "
+-#~ "stisknÄ›te tlaÄítko %s pro opakování."
+-
+-#~ msgid "Disc Found"
+-#~ msgstr "Médium nalezeno"
+-
+-#~ msgid ""
+-#~ "To begin testing the media before installation press %s.\n"
+-#~ "\n"
+-#~ "Choose %s to skip the media test and start the installation."
+-#~ msgstr ""
+-#~ "Pro kontrolu média pÅ™ed vlastní instalací stisknÄ›te %s.\n"
+-#~ "\n"
+-#~ "KliknÄ›te na %s pro vynechání testu média a zapoÄetí instalace. "
+-
+-#~ msgid ""
+-#~ "No %s disc was found which matches your boot media.  Please insert the %s "
+-#~ "disc and press %s to retry."
+-#~ msgstr ""
+-#~ "Nemohu nalézt médium %s odpovídající vaÅ¡emu zavádÄ›címu médiu. Vložte "
+-#~ "médium % s a opakujte stisknutím %s."
+-
+-#~ msgid ""
+-#~ "The %s disc was not found in any of your CDROM drives. Please insert the "
+-#~ "%s disc and press %s to retry."
+-#~ msgstr ""
+-#~ "Nemohu nalézt médium %s v Å¾Ã¡dné jednotce. Vložte médium s distribucí %s a "
+-#~ "stisknÄ›te tlaÄítko %s pro opakování."
+-
+-#~ msgid "Disc Not Found"
+-#~ msgstr "Médium  nenalezeno"
+-
+-#~ msgid "Cannot find kickstart file on CDROM."
+-#~ msgstr "Nemohu najít soubor kickstart na CDROM."
+-
+-#~ msgid "Failed to read directory %s: %s"
+-#~ msgstr "Nemohu Äíst adresář %s: %s"
+-
+-#~ msgid "Loading"
+-#~ msgstr "NaÄítání"
+-
+-#~ msgid "Reading driver disk..."
+-#~ msgstr "NaÄítám ovladaÄe..."
+-
+-#~ msgid "Driver Disk Source"
+-#~ msgstr "UmístÄ›ní ovladaÄů"
+-
+-#~ msgid ""
+-#~ "You have multiple devices which could serve as sources for a driver "
+-#~ "disk.  Which would you like to use?"
+-#~ msgstr ""
+-#~ "V poÄítaÄi je k dispozici více zařízení, která by mohla být použita pro "
+-#~ "naÄtení ovladaÄů. Vyberte zařízení, ze kterého chcete ovladaÄe naÄíst."
+-
+-#~ msgid ""
+-#~ "There are multiple partitions on this device which could contain the "
+-#~ "driver disk image.  Which would you like to use?"
+-#~ msgstr ""
+-#~ "Na zařízení je více oddílů, které by mohly obsahovat obraz disku s "
+-#~ "ovladaÄi. Který chcete použít?"
+-
+-#~ msgid "Select driver disk image"
+-#~ msgstr "Zvolte obraz disku s ovladaÄi"
+-
+-#~ msgid "Select the file which is your driver disk image."
+-#~ msgstr "Zvolte soubor, který je obraz vaší disk s ovladaÄi."
+-
+-#~ msgid "Failed to load driver disk from file."
+-#~ msgstr "Nemohu naÄíst disk s ovladaÄi ze souboru."
+-
+-#~ msgid "Insert your driver disk into /dev/%s and press \"OK\" to continue."
+-#~ msgstr ""
+-#~ "Vložte disk s ovladaÄi do zařízení /dev/%s a pokraÄujte stisknutím \"OK\"."
+-
+-#~ msgid "Insert Driver Disk"
+-#~ msgstr "Vložte disk s ovladaÄi"
+-
+-#~ msgid "Failed to mount driver disk."
+-#~ msgstr "Nemohu pÅ™ipojit disk s ovladaÄi."
+-
+-#~ msgid "Driver disk is invalid for this release of %s."
+-#~ msgstr "Disk s ovladaÄi není pro %s platný."
+-
+-#~ msgid "Manually choose"
+-#~ msgstr "Zvolit ruÄnÄ›"
+-
+-#~ msgid "Load another disk"
+-#~ msgstr "NaÄíst jiný disk"
+-
+-#~ msgid ""
+-#~ "No devices of the appropriate type were found on this driver disk.  Would "
+-#~ "you like to manually select the driver, continue anyway, or load another "
+-#~ "driver disk?"
+-#~ msgstr ""
+-#~ "Na disku s ovladaÄi nebyla nalezena Å¾Ã¡dná zařízení potÅ™ebného typu. "
+-#~ "Chcete vybrat ovladaÄ ruÄnÄ›, i pÅ™esto pokraÄovat, nebo naÄíst jiný disk s "
+-#~ "ovladaÄi?"
+-
+-#~ msgid "Driver disk"
+-#~ msgstr "Disk s ovladaÄi"
+-
+-#~ msgid "Do you have a driver disk?"
+-#~ msgstr "Máte disk s ovladaÄi?"
+-
+-#~ msgid "More Driver Disks?"
+-#~ msgstr "Více disků s ovladaÄi?"
+-
+-#~ msgid "Do you wish to load any more driver disks?"
+-#~ msgstr "Chcete naÄíst další disky s ovladaÄi?"
+-
+-#~ msgid "Kickstart Error"
+-#~ msgstr "Chyba kickstartu"
+-
+-#~ msgid "Unknown driver disk kickstart source: %s"
+-#~ msgstr "Neznámy zdroj driver disk kickstartu: %s"
+-
+-#~ msgid ""
+-#~ "The following invalid argument was specified for the kickstart driver "
+-#~ "disk command: %s:%s"
+-#~ msgstr ""
+-#~ "Byl zadán následující neplatný argument příkazu kickstart driver disk: %s:"
+-#~ "%s"
+-
+-#~ msgid ""
+-#~ "Please enter any parameters which you wish to pass to the %s module "
+-#~ "separated by spaces.  If you don't know what parameters to supply, skip "
+-#~ "this screen by pressing the \"OK\" button."
+-#~ msgstr ""
+-#~ "Zadejte parametry, které chcete pÅ™edat modulu %s, oddÄ›lené mezerami. "
+-#~ "Pokud nevíte, jaké parametry zadat, stiskňete tlaÄítko \"OK\"."
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Enter Module Parameters"
+-#~ msgstr "Zadejte parametry modulu"
+-
+-#~ msgid "No drivers found"
+-#~ msgstr "Nenalezen Å¾Ã¡dný ovladaÄ"
+-
+-#~ msgid "Load driver disk"
+-#~ msgstr "NaÄíst disk s ovladaÄi"
+-
+-#~ msgid ""
+-#~ "No drivers were found to manually insert.  Would you like to use a driver "
+-#~ "disk?"
+-#~ msgstr ""
+-#~ "Nebyly nalezeny Å¾Ã¡dné ovladaÄe pro ruÄní zavedení. Chcete použít disk s "
+-#~ "ovladaÄi?"
+-
+-#~ msgid ""
+-#~ "Please select the driver below which you wish to load.  If it does not "
+-#~ "appear and you have a driver disk, press F2."
+-#~ msgstr ""
+-#~ "Vyberte ovladaÄ, který si pÅ™ejete naÄíst. Pokud není uveden a máte disk s "
+-#~ "ovladaÄi, stisknÄ›te F2."
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Specify optional module arguments"
+-#~ msgstr "Zadejte volitelné parametry modulu"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Select Device Driver to Load"
+-#~ msgstr "Vyberte ovladaÄ zařízení, který naÄíst"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Media Detected"
+-#~ msgstr "Detekováno médium"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Local installation media detected..."
+-#~ msgstr "Detekováno místní instalaÄní médium..."
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "The %s installation tree in that directory does not seem to match your "
+-#~ "boot media."
+-#~ msgstr ""
+-#~ "InstalaÄní strom %s v zadaném adresáři neodpovídá systému, který jste "
+-#~ "nastartovali."
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid ""
+-#~ "An error occured reading the install from the ISO images. Please check "
+-#~ "your ISO images and try again."
+-#~ msgstr ""
+-#~ "PÅ™i Ätení instalaÄního programu z ISO obrazu doÅ¡lo k chybÄ›. Zkontrolujte "
+-#~ "ISO obrazy a zkuste spustit instalaci znovu."
+-
+-#~ msgid ""
+-#~ "You don't seem to have any hard drives on your system! Would you like to "
+-#~ "configure additional devices?"
+-#~ msgstr ""
+-#~ "V poÄítaÄi nebyly nalezeny Å¾Ã¡dné pevné disky! Chcete nastavit další "
+-#~ "pÅ™ipojená zařízení?"
+-
+-#~ msgid ""
+-#~ "What partition and directory on that partition hold the CD (iso9660) "
+-#~ "images for %s? If you don't see the disk drive you're using listed here, "
+-#~ "press F2 to configure additional devices."
+-#~ msgstr ""
+-#~ "Který disk, oddíl a adresář obsahuje obrazy s instalaÄními CD (iso9660) "
+-#~ "pro %s? Pokud oddíl ani disk na seznamu nenaleznete, stisknÄ›te klávesu F2 "
+-#~ "pro nakonfigurování dalších zařízení."
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Directory holding images:"
+-#~ msgstr "Adresář obsahující obrazy:"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Device %s does not appear to contain %s CDROM images."
+-#~ msgstr "Zařízení %s zÅ™ejmÄ› neobsahuje obrazy CD %s."
+-
+-#~ msgid "Bad argument to HD kickstart method command %s: %s"
+-#~ msgstr "Chybný argument kickstart příkazu metody HD %s: %s"
+-
+-#~ msgid "Cannot find kickstart file on hard drive."
+-#~ msgstr "Nemohu najít soubor kickstart na pevném disku."
+-
+-#~ msgid "Cannot find hard drive for BIOS disk %s"
+-#~ msgstr "Nemohu najít pevný disk pro disk BIOSu %s"
+-
+-#~ msgid "Keyboard Type"
+-#~ msgstr "Typ klávesnice"
+-
+-#~ msgid "What type of keyboard do you have?"
+-#~ msgstr "Jakou mapu kláves chcete použít?"
+-
+-#~ msgid "Error opening kickstart file %s: %s"
+-#~ msgstr "Chyba pÅ™i otevírání souboru kickstart %s: %s"
+-
+-#~ msgid "Error reading contents of kickstart file %s: %s"
+-#~ msgstr "Chyba pÅ™i Ätení obsahu souboru kickstart %s: %s"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Error in %s on line %d of kickstart file %s."
+-#~ msgstr "Chyba v %s na Å™Ã¡dku %d souboru kickstart %s."
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Cannot find ks.cfg on removable media."
+-#~ msgstr "Na výmÄ›nném médiu nemohu nalézt ks.cfg."
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Unable to download the kickstart file.  Please modify the kickstart "
+-#~ "parameter below or press Cancel to proceed as an interactive installation."
+-#~ msgstr ""
+-#~ "Chyba pÅ™i stahování kickstart souboru. Opravte umístÄ›ní kickstart souboru "
+-#~ "nebo stisknÄ›te 'PÅ™eruÅ¡it' a instalace bude dále pokraÄovat interaktivnÄ›."
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Error downloading kickstart file"
+-#~ msgstr "Chyba pÅ™i stahování kickstart souboru"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Bad argument to shutdown kickstart method command %s: %s"
+-#~ msgstr "Chybný argument kickstart příkazu metody shutdown %s: %s"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Welcome to %s for %s - Rescue Mode"
+-#~ msgstr "Vítá vás %s pro %s - Záchranný režim"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "  <Tab>/<Alt-Tab> between elements  | <Space> selects | <F12> next screen "
+-#~ msgstr ""
+-#~ "  <Tab>/<Alt-Tab> další položka   |  <Mezera> vybrat   |  <F12> "
+-#~ "pokraÄovat "
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Choose a Language"
+-#~ msgstr "Vyberte jazyk"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Local CD/DVD"
+-#~ msgstr "Lokální CD/DVD"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Hard drive"
+-#~ msgstr "Pevný disk"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "NFS directory"
+-#~ msgstr "NFS adresář"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Welcome to %s%n for %s"
+-#~ msgstr "Vítá vás %s%n pro %s"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Update Disk Source"
+-#~ msgstr "Zdroj disku s aktualizací"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "You have multiple devices which could serve as sources for an update "
+-#~ "disk.  Which would you like to use?"
+-#~ msgstr ""
+-#~ "Máte více zařízení, která by mohla být použita pro disk s aktualizací. "
+-#~ "Které chcete použít?"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid ""
+-#~ "There are multiple partitions on this device which could contain the "
+-#~ "update disk image.  Which would you like to use?"
+-#~ msgstr ""
+-#~ "Na zařízení je více oddílů, které by mohly obsahovat obraz disku s "
+-#~ "aktualizacemi. Který chcete použít?"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Insert your updates disk into /dev/%s and press \"OK\" to continue."
+-#~ msgstr ""
+-#~ "Vložte disk s aktualizací do /dev/%s a pokraÄujte stisknutím \"OK\"."
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Updates Disk"
+-#~ msgstr "Disk s aktualizací"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Failed to mount updates disk"
+-#~ msgstr "Nemohu pÅ™ipojit disk s aktualizací"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Updates"
+-#~ msgstr "Aktualizace"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Reading anaconda updates..."
+-#~ msgstr "ÄŒtu aktualizace anacondy..."
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Unable to download the updates image.  Please modify the updates location "
+-#~ "below or press Cancel to proceed without updates.."
+-#~ msgstr ""
+-#~ "Nemohu stáhnout obraz s aktualizacemi. Opravte prosím umístÄ›ní "
+-#~ "aktualizací níže nebo pokraÄujte bez aktualizací stisknutím ZruÅ¡it.."
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "You do not have enough RAM to install %s on this machine."
+-#~ msgstr "Nemáte dostatek pamÄ›ti RAM pro instalaci distribuce %s."
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Rescue Method"
+-#~ msgstr "Metoda zotavení"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Installation Method"
+-#~ msgstr "Metoda instalace"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "What type of media contains the rescue image?"
+-#~ msgstr "Jaký druh média obsahuje disk pro zotavení?"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "What type of media contains the packages to be installed?"
+-#~ msgstr "Kde jsou umístÄ›ny balíÄky, které chcete instalovat?"
+-
+-#~ msgid "No driver found"
+-#~ msgstr "Žádný ovladaÄ nebyl nalezen"
+-
+-#~ msgid "Select driver"
+-#~ msgstr "Vybrat ovladaÄ"
+-
+-#~ msgid "Use a driver disk"
+-#~ msgstr "Použít disk s ovladaÄi"
+-
+-#~ msgid ""
+-#~ "Unable to find any devices of the type needed for this installation "
+-#~ "type.  Would you like to manually select your driver or use a driver disk?"
+-#~ msgstr ""
+-#~ "Nemohu najít Å¾Ã¡dná zařízení, která jsou potÅ™eba pro provedení tohoto typu "
+-#~ "instalace. Chcete vybrat ovladaÄ ruÄnÄ› nebo chcete použít disk s ovladaÄi?"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "The following devices have been found on your system."
+-#~ msgstr "Ve vaÅ¡em systému byla nalezena následující zařízení."
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "No device drivers have been loaded for your system.  Would you like to "
+-#~ "load any now?"
+-#~ msgstr ""
+-#~ "Pro váš systém nebyly zavedeny Å¾Ã¡dné ovladaÄe zařízení. Chcete nÄ›jaké "
+-#~ "zavést?"
+-
+-#~ msgid "Devices"
+-#~ msgstr "Zařízení"
+-
+-#~ msgid "Done"
+-#~ msgstr "Hotovo"
+-
+-#~ msgid "Add Device"
+-#~ msgstr "PÅ™idat zařízení"
+-
+-#~ msgid "loader has already been run.  Starting shell.\n"
+-#~ msgstr "loader již byl spuÅ¡tÄ›n. SpouÅ¡tím shell.\n"
+-
+-#~ msgid "Running anaconda %s, the %s rescue mode - please wait...\n"
+-#~ msgstr ""
+-#~ "SpouÅ¡tím anacondu %s, záchranný režim systému %s - Äekejte prosím...\n"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Running anaconda %s, the %s system installer - please wait...\n"
+-#~ msgstr ""
+-#~ "SpouÅ¡tím anacondu %s, instalaÄní program systému %s - Äekejte prosím...\n"
+-
+-#~ msgid "Unable to find install image %s"
+-#~ msgstr "Nemohu najít instalaÄní obraz %s"
+-
+-#~ msgid "Checking \"%s\"..."
+-#~ msgstr "Kontroluji \"%s\"..."
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Checking media now..."
+-#~ msgstr "Probíhá kontrola média..."
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid ""
+-#~ "Unable to read the disc checksum from the primary volume descriptor.  "
+-#~ "This probably means the disc was created without adding the checksum."
+-#~ msgstr ""
+-#~ "Nemohu pÅ™eÄíst kontrolní souÄet disku z primárního deskriptoru svazku. "
+-#~ "Disk byl pravdÄ›podobnÄ› vytvoÅ™en bez kontrolního souÄtu."
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Would you like to perform a checksum test of the ISO image:\n"
+-#~ "\n"
+-#~ "   %s?"
+-#~ msgstr ""
+-#~ "Chcete zkontrolovat kontrolní souÄty v ISO obrazu:\n"
+-#~ "\n"
+-#~ "   %s?"
+-
+-#~ msgid "Checksum Test"
+-#~ msgstr "Test kontrolních souÄtů"
+-
+-#~ msgid "Bad argument to device kickstart method command %s: %s"
+-#~ msgstr "Chybný argument kickstart příkazu metody device %s: %s"
+-
+-#~ msgid "A module name must be specified for the kickstart device command."
+-#~ msgstr "Pro příkaz kickstartu device musí být zadán název modulu."
+-
+-#~ msgid ""
+-#~ "Please enter the URL containing %s on your\n"
+-#~ "server.\n"
+-#~ msgstr ""
+-#~ "Zadejte prosím URL, které na vaÅ¡em serveru\n"
+-#~ "obsahuje %s.\n"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid ""
+-#~ "Prefix must be between 1 and 32 for IPv4 networks or between 1 and 128 "
+-#~ "for IPv6 networks"
+-#~ msgstr ""
+-#~ "Prefix musí být pro IPv4 sítÄ› mezi 1 a 32 a pro IPv6 sítÄ› mezi 1 a 128"
+-
+-#~ msgid ""
+-#~ "%s is a wireless network adapter.  Please provide the ESSID and "
+-#~ "encryption key needed to access your wireless network.  If no key is "
+-#~ "needed, leave this field blank and the install will continue."
+-#~ msgstr ""
+-#~ "%s je adaptér pro bezdrátovou síť. Zadejte ESSID a Å¡ifrovací klíĠ"
+-#~ "potÅ™ebný po přístup k vaší bezdrátové síti. Pokud klíĠnení potÅ™eba, "
+-#~ "nechte pole prázdné a instalace bude pokraÄovat."
+-
+-#~ msgid "ESSID"
+-#~ msgstr "ESSID"
+-
+-#~ msgid "Encryption Key"
+-#~ msgstr "Å ifrovací klíÄ"
+-
+-# If you can get away with it in English...
+-#~ msgid "Wireless Settings"
+-#~ msgstr "Bezdrátová nastavení"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Nameserver IP"
+-#~ msgstr "IP DNS serveru"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Missing Nameserver"
+-#~ msgstr "Chybí DNS server"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Your IP address request returned configuration information, but it did "
+-#~ "not include a nameserver address. If you do not have this information, "
+-#~ "you can leave the field blank and the install will continue."
+-#~ msgstr ""
+-#~ "OdpověĠna Å¾Ã¡dost o pÅ™idÄ›lení IP adresy neobsahuje jméno DNS serveru. "
+-#~ "Pokud adresu neznáte, ponechte políÄko prázdné a instalace bude "
+-#~ "pokraÄovat."
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "You entered an invalid IP address."
+-#~ msgstr "Vložili jste chybnou IP adresu."
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "There was an error configuring your network interface."
+-#~ msgstr "DoÅ¡lo k chybÄ› v průbÄ›hu konfigurování vaÅ¡eho síťového rozhraní"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Configure TCP/IP"
+-#~ msgstr "Nastavení TCP/IP"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "IPv4 Needed for NFS"
+-#~ msgstr "Pro NFS je potÅ™eba IPv4"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "NFS installation method requires IPv4 support."
+-#~ msgstr "NFS instalace vyžaduje podporu IPv4."
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "IPv4 address:"
+-#~ msgstr "IPv4 adresa:"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "/"
+-#~ msgstr "/"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "IPv6 address:"
+-#~ msgstr "IPv6 adresa:"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter the IPv4 and/or the IPv6 address and prefix (address / prefix).  "
+-#~ "For IPv4, the dotted-quad netmask or the CIDR-style prefix are "
+-#~ "acceptable. The gateway and name server fields must be valid IPv4 or IPv6 "
+-#~ "addresses."
+-#~ msgstr ""
+-#~ "Vložte IPv4 a/nebo IPv6 adresy a prefixy (adresa/prefix). V případÄ› IPv4 "
+-#~ "můžete zadat masku ve formátu ÄtyÅ™ Äísel oddÄ›lených teÄkami nebo použít "
+-#~ "CIDR-styl. Brána a adresy DNS serverů musí být platné IPv4 nebo IPv6 "
+-#~ "adresy."
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Manual TCP/IP Configuration"
+-#~ msgstr "RuÄní konfigurace TCP/IP"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Missing Information"
+-#~ msgstr "ChybÄ›jící informace"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "You must enter both a valid IPv4 address and a network mask or CIDR "
+-#~ "prefix."
+-#~ msgstr "Musíte zadat platnou IPv4 adresu a masku sítÄ› nebo CIDR prefix."
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "You must enter both a valid IPv6 address and a CIDR prefix."
+-#~ msgstr "Musíte zadat platnou IPv6 adresu a platný CIDR prefix."
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Determining host name and domain..."
+-#~ msgstr "ZjiÅ¡Å¥uji jméno poÄítaÄe a doménu..."
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Bad argument to kickstart network command %s: %s"
+-#~ msgstr "Chybný argument Kickstart příkazu network %s: %s"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Bad bootproto %s specified in network command"
+-#~ msgstr "Chybný zavádÄ›cí protokol %s v příkazu network"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Networking Device"
+-#~ msgstr "Síťové zařízení"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid ""
+-#~ "You have multiple network devices on this system. Which would you like to "
+-#~ "install through?"
+-#~ msgstr ""
+-#~ "V poÄítaÄi je více síťových zařízení. Pomocí kterého chcete instalovat?"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "NFS server name:"
+-#~ msgstr "Jméno NFS serveru:"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "NFS Setup"
+-#~ msgstr "NFS instalace"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "Hostname specified with no DNS configured"
+-#~ msgstr "Zadáno jméno poÄítaÄe s nekonfigurovaným DNS"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "That directory could not be mounted from the server."
+-#~ msgstr "Uvedený adresář nelze pÅ™ipojit."
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "That directory does not seem to contain a %s installation tree."
+-#~ msgstr "Uvedený adresář zÅ™ejmÄ› neobsahuje instalaÄní strom %s."
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Bad argument to NFS kickstart method command %s: %s"
+-#~ msgstr "Chybný argument Kickstart příkazu metody NFS %s: %s"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Telnet"
+-#~ msgstr "Telnet"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Waiting for telnet connection..."
+-#~ msgstr "ÄŒekám na telnetové spojení..."
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Running anaconda via telnet..."
+-#~ msgstr "SpouÅ¡tím Anacondu pÅ™es telnet..."
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Unable to retrieve %s://%s/%s/%s."
+-#~ msgstr "Nemohu pÅ™enést %s://%s/%s/%s."
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Bad argument to Url kickstart method command %s: %s"
+-#~ msgstr "Chybný argument Kickstart příkazu metody Url %s: %s"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Must supply a --url argument to Url kickstart method."
+-#~ msgstr "Kickstart metodÄ› Url musíte zadat argument --url."
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Unknown Url method %s"
+-#~ msgstr "Neznámá metoda v URL %s"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Retrieving"
+-#~ msgstr "NaÄítání"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "URL Setup"
+-#~ msgstr "Nastavení URL"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "You must enter a URL."
+-#~ msgstr "Musíte zadat URL."
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Unknown Host"
+-#~ msgstr "Neznámý poÄítaÄ"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "If you are using a HTTP proxy server enter the name of the HTTP proxy "
+-#~ "server to use."
+-#~ msgstr "Jestliže používáte HTTP proxy server, zadejte jeho jméno."
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Proxy Port:"
+-#~ msgstr "Port proxy:"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Further Setup"
+-#~ msgstr "Další nastavení"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Loading SCSI driver"
+-#~ msgstr "Zavádím SCSI ovladaÄ"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Root Password:"
+-#~ msgstr "Heslo správce systému:"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "The root account is used for administering the system.  Enter a password "
+-#~ "for the root user."
+-#~ msgstr ""
+-#~ "ÚÄet root se používá pro správu systému. Zadejte heslo pro uživatele root."
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Add _ZFCP LUN"
+-#~ msgstr "PÅ™idat _ZFCP LUN"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Add _iSCSI target"
+-#~ msgstr "PÅ™idat _iSCSI target"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "Disable _dmraid device"
+-#~ msgstr "Zakázat zařízení _dmraid"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "_Add drive"
+-#~ msgstr "_PÅ™idat disk"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "<b>Repository _name:</b>"
+-#~ msgstr "<b>_Název repozitáře:</b>"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Add Repository"
+-#~ msgstr "PÅ™idat repozitář"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Please provide the location where your additional software can be "
+-#~ "installed from."
+-#~ msgstr ""
+-#~ "Zadejte prosím umístÄ›ní, odkud lze nainstalovát váš dodateÄný software."
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Proxy U_RL:"
+-#~ msgstr "_URL proxy:"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Proxy pass_word:"
+-#~ msgstr "_Heslo proxy:"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "Proxy u_sername:"
+-#~ msgstr "Jméno _uživatele proxy:"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "Repository _Mirror"
+-#~ msgstr "_Kopie repozitáře"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Repository _URL"
+-#~ msgstr "_URL repozitáře"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "_Proxy configuration"
+-#~ msgstr "Nastavení _proxy"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid "Reboo_t"
+-#~ msgstr "_Restartovat"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
+-#~ msgid "_Next"
+-#~ msgstr "_Další"
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
+-#~ msgid "<b>Resize _target:</b>"
+-#~ msgstr "<b>ZmÄ›nit velikost _cíle:</b>"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Installation requires partitioning of your hard drive.  By default, a "
+-#~ "partitioning layout is chosen which is reasonable for most users.  You "
+-#~ "can either choose to use this or create your own."
+-#~ msgstr ""
+-#~ "Instalace vyžaduje rozdÄ›lení VaÅ¡eho pevného disku na oddíly. StandardnÄ› "
+-#~ "je vybrán takový způsob rozložení oddílů, který vyhovuje vÄ›tÅ¡inÄ› "
+-#~ "uživatelů. Můžete buÄ použít navržené rozložení, nebo definovat vlastní."
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#~ msgid "Re_view and modify partitioning layout"
+-#~ msgstr "Pro_hlédnout a upravit rozložení oddílů"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
+-#~ msgid "What drive would you like to _boot this installation from?"
+-#~ msgstr "Z _kterého zařízení chcete zavádÄ›t tuto instalaci?"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
+-#~ msgid "Which Partition to resize"
+-#~ msgstr "Kterému oddílu zmÄ›nit velikost"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Which partition would you like to resize to make room for your "
+-#~ "installation?"
+-#~ msgstr ""
+-#~ "Kterému oddílu chcete zmÄ›nit velikost, abyste pro instalaci udÄ›lali místo?"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
+-#~ msgid "_Advanced storage configuration"
+-#~ msgstr "_PokroÄilé nastavení ukládání dat"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "_Encrypt system"
+-#~ msgstr "_Å ifrovat systém"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "_Select the drive(s) to use for this installation."
+-#~ msgstr "_Vybrat disk(y), které budou použity pro instalaci:"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#~ msgid "/boot"
+-#~ msgstr "/boot"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid "BIOS Drive Order"
+-#~ msgstr "PoÅ™adí disků BIOSu"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid "Boot loader device"
+-#~ msgstr "Zařízení zavadÄ›Äe systému"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid "First BIOS drive:"
+-#~ msgstr "První disk BIOSu:"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#~ msgid "Fourth BIOS drive:"
+-#~ msgstr "ÄŒtvrtý disk BIOSu:"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#~ msgid "MBR"
+-#~ msgstr "MBR"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
+-#~ msgid "Second BIOS drive:"
+-#~ msgstr "Druhý disk BIOSu:"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
+-#~ msgid "Third BIOS drive:"
+-#~ msgstr "TÅ™etí disk BIOSu:"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
+-#~ msgid "Where would you like to install the boot loader for your system?"
+-#~ msgstr "Kam chcete nainstalovat zavaděĠsystému?"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
+-#~ msgid "Info"
+-#~ msgstr "Informace"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
+-#~ msgid "_Details"
+-#~ msgstr "_Podrobnosti"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
+-#~ msgid "Select a destination for the exception information."
+-#~ msgstr "Zvolte cíl pro informace o výjimce."
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
+-#~ msgid "_Disk"
+-#~ msgstr "_Disk"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
+-#~ msgid "_Remote"
+-#~ msgstr "_Vzdálený poÄítaÄ"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#~ msgid "%(instkey)s:"
+-#~ msgstr "%(instkey)s:"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid "Please enter your %(instkey)s."
+-#~ msgstr "Vložte %(instkey)s."
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid "<b>_Password:</b>"
+-#~ msgstr "<b>_Heslo:</b>"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid "<b>_Target IP Address:</b>"
+-#~ msgstr "<b>_IP adresa cíle:</b>"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "<b>iSCSI Initiator _Name:</b>"
+-#~ msgstr "<b>_Název iSCSI iniciátoru:</b>"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "_Add target"
+-#~ msgstr "_PÅ™idat cíl"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid "Install the live CD to your hard disk"
+-#~ msgstr "Nainstalovat Live CD na pevný disk"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "Install to Hard Drive"
+-#~ msgstr "Instalovat na pevný disk"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid ""
+-#~ "Choose a passphrase for this encrypted partition. You will be prompted "
+-#~ "for the passphrase during system boot."
+-#~ msgstr ""
+-#~ "Zvolte heslo pro tento Å¡ifrovaný oddíl. O heslo budete Å¾Ã¡dáni pÅ™i "
+-#~ "zavádÄ›ní systému."
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid "Confirm passphrase:"
+-#~ msgstr "PotvrÄte heslo:"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid "Enter passphrase for encrypted partition"
+-#~ msgstr "Zadejte heslo pro Å¡ifrovaný oddíl"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "Enter passphrase:"
+-#~ msgstr "Zadejte heslo:"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid "<b>Gateway:</b>"
+-#~ msgstr "<b>Gateway:</b>"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "<b>IPv6 Address:</b>"
+-#~ msgstr "<b>IPv6 adresa:</b>"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid "<b>Nameserver:</b>"
+-#~ msgstr "<b>Nameserver:</b>"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "<b>_Interface:</b>"
+-#~ msgstr "<b>_Rozhraní:</b>"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Enable IPv_4 support"
+-#~ msgstr "Povolit podporu IPv_4"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid "Enable IPv_6 support"
+-#~ msgstr "Povolit podporu IPv_6"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "Enable network interface"
+-#~ msgstr "Povolit síťové rozhraní"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid ""
+-#~ "This requires that you have an active network connection during the "
+-#~ "installation process.  Please configure a network interface."
+-#~ msgstr ""
+-#~ "Pro pokraÄování instalace potÅ™ebujete aktivní síťové pÅ™ipojení. "
+-#~ "Nakonfigurujte prosím síťové rozhraní."
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Use _dynamic IP configuration (DHCP)"
+-#~ msgstr "_Dynamické nastavení IP adresy (DHCP)"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "<b>Description Goes Here</b>"
+-#~ msgstr "<b>Popis: %s</b>"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "<b>Hardware address: DE:AD:00:BE:EF:00</b>"
+-#~ msgstr "<b>Hardwarová adresa: DE:AD:00:BE:EF:00</b>"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Encryption Key:"
+-#~ msgstr "Å ifrovací klíÄ:"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Manual configuration"
+-#~ msgstr "RuÄní konfigurace"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Point to Point (IP):"
+-#~ msgstr "Point to Point (IP):"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Customize _later"
+-#~ msgstr "Upravit po_zdÄ›ji"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid ""
+-#~ "Please select any additional repositories that you want to use for "
+-#~ "software installation."
+-#~ msgstr "Vložte další repozitář, který chcete pro instalaci použít."
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid ""
+-#~ "You can further customize the software selection now, or after install "
+-#~ "via the software management application."
+-#~ msgstr ""
+-#~ "VýbÄ›r instalovaných souÄástí můžete zmÄ›nit teÄ nebo po instalaci pomocí "
+-#~ "aplikace pro správu balíÄků."
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "_Add additional software repositories"
+-#~ msgstr "_PÅ™idat rozÅ¡iÅ™ující repozitáře"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "_Modify repository"
+-#~ msgstr "_Upravit repozitář"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "<b>Device number:</b>"
+-#~ msgstr "<b>Číslo zařízení:</b>"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid "<b>WWPN:</b>"
+-#~ msgstr "<b>WWPN:</b>"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Add FCP device"
+-#~ msgstr "PÅ™idat zařízení FCP"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "Afrikaans"
+-#~ msgstr "AfrikánÅ¡tina"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Arabic"
+-#~ msgstr "ArabÅ¡tina"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Bengali"
+-#~ msgstr "BengálÅ¡tina"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Bengali(India)"
+-#~ msgstr "BengálÅ¡tina (Indie)"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Bulgarian"
+-#~ msgstr "BulharÅ¡tina"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "Catalan"
+-#~ msgstr "KatalánÅ¡tina"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "Chinese(Simplified)"
+-#~ msgstr "ČínÅ¡tina (zjednoduÅ¡ená)"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "Chinese(Traditional)"
+-#~ msgstr "ČínÅ¡tina (tradiÄní)"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Czech"
+-#~ msgstr "ÄŒeÅ¡tina"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "Danish"
+-#~ msgstr "DánÅ¡tina"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Dutch"
+-#~ msgstr "HolandÅ¡tina"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "English"
+-#~ msgstr "AngliÄtina"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "Estonian"
+-#~ msgstr "EstonÅ¡tina"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid "Finnish"
+-#~ msgstr "FinÅ¡tina"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "French"
+-#~ msgstr "FrancouzÅ¡tina"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "German"
+-#~ msgstr "NÄ›mÄina"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid "Greek"
+-#~ msgstr "ŘeÄtina"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "Gujarati"
+-#~ msgstr "Gujarati"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "Hindi"
+-#~ msgstr "HindÅ¡tina"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "Hungarian"
+-#~ msgstr "MaÄarÅ¡tina"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "Icelandic"
+-#~ msgstr "IslandÅ¡tina"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "Iloko"
+-#~ msgstr "Iloko"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Indonesian"
+-#~ msgstr "Indonéština"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid "Italian"
+-#~ msgstr "ItalÅ¡tina"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "Japanese"
+-#~ msgstr "JaponÅ¡tina"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "Kannada"
+-#~ msgstr "Kannada"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid "Macedonian"
+-#~ msgstr "MakedonÅ¡tina"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "Malay"
+-#~ msgstr "MalajÅ¡tina"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#~ msgid "Malayalam"
+-#~ msgstr "Malayalam"
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#~ msgid "Marathi"
+-#~ msgstr "Marathi"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "Norwegian"
+-#~ msgstr "NorÅ¡tina"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "Northern Sotho"
+-#~ msgstr "Northern Sotho"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Oriya"
+-#~ msgstr "Oriya"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#~ msgid "Polish"
+-#~ msgstr "PolÅ¡tina"
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid "Portuguese"
+-#~ msgstr "PortugalÅ¡tina"
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#~ msgid "Portuguese(Brazilian)"
+-#~ msgstr "PortugalÅ¡tina(brazilská)"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Punjabi"
+-#~ msgstr "PaňdžábÅ¡tina"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid "Romanian"
+-#~ msgstr "RumunÅ¡tina"
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "Russian"
+-#~ msgstr "RuÅ¡tina"
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid "Serbian"
+-#~ msgstr "SrbÅ¡tina"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "Serbian(Latin)"
+-#~ msgstr "SrbÅ¡tina(Latin)"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid "Sinhala"
+-#~ msgstr "Sinhala"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid "Slovak"
+-#~ msgstr "SlovenÅ¡tina"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "Slovenian"
+-#~ msgstr "SlovinÅ¡tina"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid "Spanish"
+-#~ msgstr "Å panÄ›lÅ¡tina"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid "Swedish"
+-#~ msgstr "Å védÅ¡tina"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid "Tamil"
+-#~ msgstr "TamilÅ¡tina"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid "Telugu"
+-#~ msgstr "Telugu"
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#~ msgid "Turkish"
+-#~ msgstr "TureÄtina"
+-
+-#~ msgid "Ukrainian"
+-#~ msgstr "UkrajiÅ¡tina"
+-
+-#~ msgid "Vietnamese"
+-#~ msgstr "VietnamÅ¡tina"
+-
+-#~ msgid "Welsh"
+-#~ msgstr "VelÅ¡tina"
+-
+-#~ msgid "Zulu"
+-#~ msgstr "Zulu"
+-
+-#~ msgid "Error pulling second part of kickstart config: %s!"
+-#~ msgstr "Chyba pÅ™i stahování druhé Äásti konfigurace kickstart: %s"
+-
+-#~ msgid "Unknown install method"
+-#~ msgstr "Neznámý způsob instalace"
+-
+-#~ msgid ""
+-#~ "You have specified an install method which isn't supported by anaconda."
+-#~ msgstr "Byl zvolen způsob instalace, který Anaconda nepodporuje."
+-
+-#~ msgid "unknown install method: %s"
+-#~ msgstr "Neznámý způsob instalace: %s"
+-
+-#~ msgid ""
+-#~ "You have chosen to remove all partitions (ALL DATA) on the following "
+-#~ "drives:%s\n"
+-#~ "Are you sure you want to do this?"
+-#~ msgstr ""
+-#~ "Zvolili jste odstranÄ›ní vÅ¡ech oddílů (VÅ ECHNA DATA) na následujících "
+-#~ "discích:%s\n"
+-#~ "Opravdu je chcete odstranit?"
+-
+-#~ msgid ""
+-#~ "You have chosen to remove all Linux partitions (and ALL DATA on them) on "
+-#~ "the following drives:%s\n"
+-#~ "Are you sure you want to do this?"
+-#~ msgstr ""
+-#~ "Zvolili jste odstranÄ›ní vÅ¡ech linuxových oddílů (a VÅ ECH DAT na nich) na "
+-#~ "následujících discích:%s\n"
+-#~ "Opravdu je chcete odstranit?"
+-
+-#~ msgid "Checking for Bad Blocks"
+-#~ msgstr "Vyhledávání vadných bloků"
+-
+-#~ msgid ""
+-#~ "Bad blocks have been detected on device /dev/%s. We do not recommend you "
+-#~ "use this device.\n"
+-#~ "\n"
+-#~ "Press <Enter> to exit the installer."
+-#~ msgstr ""
+-#~ "Na zařízení /dev/%s byly nalezeny vadné bloky. Zařízení nedoporuÄujeme "
+-#~ "používat.\n"
+-#~ "\n"
+-#~ "StisknÄ›te <Enter> pro ukonÄení instalace."
+-
+-#~ msgid ""
+-#~ "An error occurred searching for bad blocks on %s.  This problem is "
+-#~ "serious, and the install cannot continue.\n"
+-#~ "\n"
+-#~ "Press <Enter> to exit the installer."
+-#~ msgstr ""
+-#~ "PÅ™i vyhledávání vadných bloků na %s doÅ¡lo k chybÄ›. Problém je závažný a "
+-#~ "instalace nemůže pokraÄovat.\n"
+-#~ "\n"
+-#~ "StisknÄ›te <Enter> pro ukonÄení instalace."
+-
+-#~ msgid ""
+-#~ "Please insert a floppy now. All contents of the disk will be erased, so "
+-#~ "please choose your diskette carefully."
+-#~ msgstr ""
+-#~ "Vložte prosím disketu. Celý obsah diskety bude smazán, proto vyberte "
+-#~ "disketu, na které nemáte důležitá data."
+-
+-#~ msgid ""
+-#~ "The file %s cannot be opened.  This is due to a missing file or perhaps a "
+-#~ "corrupt package.  Please verify your installation images and that you "
+-#~ "have all the required media.\n"
+-#~ "\n"
+-#~ "If you exit, your system will be left in an inconsistent state that will "
+-#~ "likely require reinstallation.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Nelze otevřít soubor %s. Důvodem je chybÄ›jící soubor nebo poÅ¡kození "
+-#~ "balíÄku.  Zkontrolujte obrazy médií, z nichž instalujete, a pÅ™esvÄ›dÄte "
+-#~ "se, Å¾e máte vÅ¡echna potÅ™ebná média.\n"
+-#~ "\n"
+-#~ "UkonÄíte-li instalaci, zůstane systém v nekonzistentním stavu, což si "
+-#~ "může vyžádat opÄ›tovnou instalaci.\n"
+-#~ "\n"
+-
+-#~ msgid ""
+-#~ "The installer has tried to mount image #%s, but cannot find it on the "
+-#~ "server.\n"
+-#~ "\n"
+-#~ "Please copy this image to the remote server's share path and click Retry. "
+-#~ "Click Exit to abort the installation."
+-#~ msgstr ""
+-#~ "Instalátor se pokusil pÅ™ipojit obraz #%s, ale nepodaÅ™ilo se mu ho na "
+-#~ "serveru nalézt.\n"
+-#~ "\n"
+-#~ "Zkopírujte požadovaný obraz do sdíleného adresáře na serveru a zvolte "
+-#~ "'Znovu'. Chcete-li instalaci opustit, zvolte UkonÄit."
+-
+-#~ msgid ""
+-#~ "The drive /dev/%s has more than 15 partitions on it.  The SCSI subsystem  "
+-#~ "in the Linux kernel does not allow for more than 15 partitions at this "
+-#~ "time.  You will not be able to make changes to the partitioning of this "
+-#~ "disk or use any partitions beyond /dev/%s15 in %s"
+-#~ msgstr ""
+-#~ "Zařízení /dev/%s obsahuje více než 15 oddílů. SCSI subsystém v jádÅ™e "
+-#~ "Linuxu zatím více, než 15 zařízení neupodporuje. Nebude možné provádÄ›t "
+-#~ "zmÄ›ny v rozdÄ›lení disku ani používat oddíly za 15. oddílem /dev/%s15 v %s."
+-
+-#~ msgid "Low Memory"
+-#~ msgstr "Nedostatek pamÄ›ti"
+-
+-#~ msgid ""
+-#~ "As you don't have much memory in this machine, we need to turn on swap "
+-#~ "space immediately. To do this we'll have to write your new partition "
+-#~ "table to the disk immediately. Is that OK?"
+-#~ msgstr ""
+-#~ "Protože na poÄítaÄi není dostatek pamÄ›ti, je nutné aktivovat odkládací "
+-#~ "prostor (swap). Proto je nutné zapsat novou tabulku oddílů na disk již "
+-#~ "nyní. Souhlasíte?"
+-
+-#~ msgid "Save to Remote Host"
+-#~ msgstr "Uložit na vzdálený poÄítaÄ"
+-
+-#~ msgid "Save Crash Dump"
+-#~ msgstr "Uložit záznam havárie"
+-
+-#~ msgid "Searching"
+-#~ msgstr "Vyhledávání"
+-
+-#~ msgid "Searching for %s installations..."
+-#~ msgstr "Vyhledávání systémů %s..."
+-
+-#~ msgid "Connecting..."
+-#~ msgstr "PÅ™ipojování..."
+-
+-#~ msgid ""
+-#~ "The file %s cannot be opened.  This is due to a missing file or perhaps a "
+-#~ "corrupt package.  Please verify your mirror contains all required "
+-#~ "packages, and try using a different one.\n"
+-#~ "\n"
+-#~ "If you exit, your system will be left in an inconsistent state that will "
+-#~ "likely require reinstallation.\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Nelze otevřít soubor %s, protože nebyl nalezen nebo je soubor s balíÄkem "
+-#~ "poÅ¡kozen. Zkontrolujte, zda zdrojový adresář obsahuje vÅ¡echny požadované "
+-#~ "balíÄky nebo zkuste jako zdroj použít jiné umístÄ›ní.\n"
+-#~ "\n"
+-#~ "UkonÄíte-li instalaci, zůstane systém v nekonzistentním stavu, který bude "
+-#~ "zÅ™ejmÄ› vyžadovat reinstalaci.\n"
+-#~ "\n"
+-
+-#~ msgid "VNC Password Error"
+-#~ msgstr "Chyba VNC Hesla"
+-
+-#~ msgid ""
+-#~ "You need to specify a vnc password of at least 6 characters long.\n"
+-#~ "\n"
+-#~ "Press <return> to reboot your system.\n"
+-#~ msgstr ""
+-#~ "Pro VNC zadejte heslo délky alespoň 6 znaků.\n"
+-#~ "\n"
+-#~ "Stisknutím <Enter> restartujte systém.\n"
+-
+-#~ msgid "Unable to set vnc password - using no password!"
+-#~ msgstr "Nelze nastavit VNC heslo - pokraÄuje se bez hesla!"
+-
+-#~ msgid "Make sure your password is at least 6 characters in length."
+-#~ msgstr "Zkontrolujte, zda je heslo dlouhé alespoň 6 znaků."
+-
+-#~ msgid "Please connect to %s to begin the install..."
+-#~ msgstr "Pro spuÅ¡tÄ›ní instalace se pÅ™ipojte k %s..."
+-
+-#~ msgid "Please connect to begin the install..."
+-#~ msgstr "PÅ™ipojte se pro spuÅ¡tÄ›ní instalace..."
+-
+-#~ msgid "Set Root Password"
+-#~ msgstr "Nastavit heslo správce systému"
+-
+-#~ msgid "Advanced Boot Loader Configuration"
+-#~ msgstr "PokroÄilé nastavení zavadÄ›Äe systému"
+-
+-#~ msgid "Force LBA32"
+-#~ msgstr "Použít LBA32"
+-
+-#~ msgid "_Force LBA32 (not normally required)"
+-#~ msgstr "Použít _LBA32 (bez ohledu na autodetekci)"
+-
+-#~ msgid ""
+-#~ "If you wish to add default options to the boot command, enter them into "
+-#~ "the 'General kernel parameters' field."
+-#~ msgstr ""
+-#~ "Pokud si pÅ™ejete, aby zavaděĠpÅ™i každém zavedení systému pÅ™edal jádru "
+-#~ "nÄ›jaké parametry, vložte je do pole Implicitní parametry jádra."
+-
+-#~ msgid "_General kernel parameters"
+-#~ msgstr "_Implicitní parametry jádra: "
+-
+-#~ msgid "The %s boot loader will be installed on /dev/%s."
+-#~ msgstr "ZavaděĠ%s bude nainstalován na /dev/%s."
+-
+-#~ msgid "No boot loader will be installed."
+-#~ msgstr "Neinstalovat Å¾Ã¡dný zavadÄ›Ä."
+-
+-#~ msgid "Configure advanced boot loader _options"
+-#~ msgstr "_Nastavení pokroÄilých voleb zavadÄ›Äe"
+-
+-#~ msgid "Install Boot Loader record on:"
+-#~ msgstr "Instalovat zavaděĠdo:"
+-
+-#~ msgid "_Change Drive Order"
+-#~ msgstr "Z_mÄ›nit poÅ™adí disků"
+-
+-#~ msgid ""
+-#~ "Arrange the drives to be in the same order as used by the BIOS. Changing "
+-#~ "the drive order may be useful if you have multiple SCSI adapters or both "
+-#~ "SCSI and IDE adapters and want to boot from the SCSI device.\n"
+-#~ "\n"
+-#~ "Changing the drive order will change where the installation program "
+-#~ "locates the Master Boot Record (MBR)."
+-#~ msgstr ""
+-#~ "SeÅ™aÄte disky tak, aby byly ve stejném poÅ™adí, jaké používá BIOS. ZmÄ›na "
+-#~ "poÅ™adí disků muže být užiteÄná, pokud máte více SCSI Å™adiÄů, případnÄ› jak "
+-#~ "SCSI, tak IDE Å™adiÄe a chcete zavádÄ›t systém ze SCSI zařízení.\n"
+-#~ "\n"
+-#~ "ZmÄ›na poÅ™adí disků ovlivní, kam instalaÄní program umístí zavaděĠsystému."
+-
+-#~ msgid "About to Install"
+-#~ msgstr "Zahájení instalace"
+-
+-#~ msgid "Click next to begin installation of %s."
+-#~ msgstr "KliknÄ›te na 'Další' pro zahájení instalace distribuce %s."
+-
+-#~ msgid ""
+-#~ "A complete log of the installation can be found in the file '%s' after "
+-#~ "rebooting your system.\n"
+-#~ "\n"
+-#~ "A kickstart file containing the installation options selected can be "
+-#~ "found in the file '%s' after rebooting the system."
+-#~ msgstr ""
+-#~ "Záznam průbÄ›hu instalace najdete po restartu poÄítaÄe v souboru '%s'.\n"
+-#~ "\n"
+-#~ "V souboru '%s' naleznete Å™Ã­díci instrukce, které můžete použít pro "
+-#~ "opakované provedení stejné instalace."
+-
+-#~ msgid "About to Upgrade"
+-#~ msgstr "Aktualizace systému"
+-
+-#~ msgid "Click next to begin upgrade of %s."
+-#~ msgstr "KliknÄ›te na 'Další' pro zahájení aktualizace distribuce %s."
+-
+-#~ msgid ""
+-#~ "A complete log of the upgrade can be found in the file '%s' after "
+-#~ "rebooting your system."
+-#~ msgstr ""
+-#~ "Záznam průbÄ›hu aktualizace najdete po restartu poÄítaÄe v souboru '%s'."
+-
+-#~ msgid "Drive"
+-#~ msgstr "Disk"
+-
+-#~ msgid "Model"
+-#~ msgstr "Model"
+-
+-#~ msgid "Netmask"
+-#~ msgstr "Maska sítÄ›"
+-
+-#~ msgid ""
+-#~ "You can configure the boot loader to boot other operating systems by "
+-#~ "selecting from the list. To add an operating systems that was not "
+-#~ "automatically detected, click 'Add.' To change the operating system "
+-#~ "booted by default, select 'Default' next to the desired operating system."
+-#~ msgstr ""
+-#~ "ZavaděĠsystému lze nastavit i pro zavádÄ›ní jiných operaÄních systémů, "
+-#~ "které jsou v seznamu. Další operaÄní systémy, které nejsou automaticky "
+-#~ "detekovány, můžete pÅ™idat pomocí tlaÄítka 'PÅ™idat'. ZaÅ¡krtnutím políÄka "
+-#~ "vedle seznamu můžete urÄit, který operaÄní systém bude zaveden implicitnÄ›."
+-
+-#~ msgid "Leave _unchanged (preserve data)"
+-#~ msgstr "_Ponechat beze zmÄ›ny (zachovat data)"
+-
+-#~ msgid "_Format partition as:"
+-#~ msgstr "_Naformátovat jako:"
+-
+-#~ msgid "Check for _bad blocks?"
+-#~ msgstr "ZjiÅ¡Å¥ovat pÅ™i formátování vadné _bloky?"
+-
+-#~ msgid "Release notes are missing.\n"
+-#~ msgstr "Poznámky k vydání nejsou k dispozici.\n"
+-
+-#~ msgid "Release Notes"
+-#~ msgstr "Poznámky k vydání"
+-
+-#~ msgid "Installation to begin"
+-#~ msgstr "Zahájení instalace"
+-
+-#~ msgid ""
+-#~ "A complete log of your installation will be in %s after rebooting your "
+-#~ "system. You may want to keep this file for later reference."
+-#~ msgstr ""
+-#~ "Úplný protokol o instalaci bude po restartu poÄítaÄe v %s. Soubor se může "
+-#~ "hodit pro pozdÄ›jší referenci."
+-
+-#~ msgid "Upgrade to begin"
+-#~ msgstr "Zahájení aktualizace"
+-
+-#~ msgid ""
+-#~ "A complete log of your upgrade will be in %s after rebooting your system. "
+-#~ "You may want to keep this file for later reference."
+-#~ msgstr ""
+-#~ "Úplný protokol o aktualizaci bude po restartu poÄítaÄe v %s. Soubor se "
+-#~ "může hodit pro pozdÄ›jší referenci."
+-
+-#~ msgid "Check for bad blocks"
+-#~ msgstr "PÅ™i formátování zjiÅ¡Å¥ovat vadné bloky"
+-
+-#~ msgid ""
+-#~ "No hard drives have been found.  You probably need to manually choose "
+-#~ "device drivers for the installation to succeed.  Would you like to select "
+-#~ "drivers now?"
+-#~ msgstr ""
+-#~ "Nebyly nalezeny Å¾Ã¡dné pevné disky. PravdÄ›podobnÄ› budete muset pro "
+-#~ "úspěšnou instalaci ruÄnÄ› zvolit ovladaÄe zařízení. Chcete nyní vybrat "
+-#~ "ovladaÄe?"
+-
+-#~ msgid "FAILED"
+-#~ msgstr "NEÚSPÄšCH"
+-
+-#~ msgid ""
+-#~ "The image which was just tested has errors. This could be due to a "
+-#~ "corrupt download or a bad disc.  If applicable, please clean the disc and "
+-#~ "try again.  If this test continues to fail you should not continue the "
+-#~ "install."
+-#~ msgstr ""
+-#~ "Obraz, který byl právÄ› testován, má chyby. To může být kvůli chybnému "
+-#~ "stažení nebo Å¡patnému médiu. Je-li to tÅ™eba, oÄistÄ›te médium a zkuste "
+-#~ "test znovu. Bude-li test nadále selhávat, nemÄ›li byste pokraÄovat v "
+-#~ "instalaci."
+-
+-#~ msgid "PASSED"
+-#~ msgstr "V POŘÃDKU"
+-
+-#~ msgid "It is OK to install from this media."
+-#~ msgstr "Médium lze použít pro instalaci."
+-
+-#~ msgid "No checksum information available, unable to verify media."
+-#~ msgstr "Kontrolní souÄty nejsou k dispozici, médium nelze prověřit."
+-
+-#~ msgid "Media Check Result"
+-#~ msgstr "Výsledek kontroly média"
+-
+-#~ msgid ""
+-#~ "%s for the image:\n"
+-#~ "\n"
+-#~ "   %s"
+-#~ msgstr ""
+-#~ "%s pro obraz:\n"
+-#~ "\n"
+-#~ "   %s"
+-
+-#~ msgid ""
+-#~ "The media check %s\n"
+-#~ "\n"
+-#~ "%s"
+-#~ msgstr ""
+-#~ "Kontrola média %s\n"
+-#~ "\n"
+-#~ "%s"
+-
+-#~ msgid ""
+-#~ "Please enter the following information:\n"
+-#~ "\n"
+-#~ "    o the name or IP number of your %s server\n"
+-#~ "    o the directory on that server containing\n"
+-#~ "      %s for your architecture\n"
+-#~ msgstr ""
+-#~ "Zadejte následující informace:\n"
+-#~ "\n"
+-#~ "    * jméno nebo IP adresu %s serveru\n"
+-#~ "    * adresář daného serveru obsahující\n"
+-#~ "      %s pro vaÅ¡i architekturu\n"
+-
+-#~ msgid "FTP"
+-#~ msgstr "FTP"
+-
+-#~ msgid "Web"
+-#~ msgstr "Web"
+-
+-#~ msgid "Web site name:"
+-#~ msgstr "Jméno WWW serveru:"
+-
+-#~ msgid "Use non-anonymous ftp"
+-#~ msgstr "Použít neanonymní ftp"
+-
+-#~ msgid "FTP Setup"
+-#~ msgstr "FTP instalace"
+-
+-#~ msgid "HTTP Setup"
+-#~ msgstr "HTTP instalace"
+-
+-#~ msgid ""
+-#~ "If you are using non anonymous ftp, enter the account name and password "
+-#~ "you wish to use below."
+-#~ msgstr ""
+-#~ "Nepoužíváte-li anonymní FTP, zadejte jméno uživatele a heslo, které "
+-#~ "chcete použít."
+-
+-#~ msgid "Account name:"
+-#~ msgstr "Jméno ÃºÄtu:"
+-
+-#~ msgid "Further HTTP Setup"
+-#~ msgstr "Další nastavení HTTP"
+-
+-#~ msgid "_Release Notes"
+-#~ msgstr "Poznámky k _vydání"
+-
+-#~ msgid "Exception Info"
+-#~ msgstr "Informace o výjimce"
+-
+-#~ msgid "_Exception details"
+-#~ msgstr "_Podrobnosti o výjimce"
+-
+-#~ msgid "_Save to floppy"
+-#~ msgstr "Uložit na _disketu"
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/cy.po b/policycoreutils/po/cy.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/cy.po
++++ b/policycoreutils/po/cy.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/da.po b/policycoreutils/po/da.po
+index 7dc47b5..b7e84be 100644
+--- a/policycoreutils/po/da.po
++++ b/policycoreutils/po/da.po
+@@ -1,25 +1,25 @@
+-# translation of da.po to
+-# Danish messages for policycoreutils.
+-# Copyright (C) 2006 Christian Rose.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
+-# $Id: da.po,v 1.15 2008/09/09 17:25:39 dwalsh Exp $
++# Translators:
+ # Christian Rose <menthos@menthos.com>, 2006.
+ # Keld Simonsen <keld@dkuug.dk>, 2006.
+ # Keld Simonsen <keld@rap.dk>, 2007.
+-#
++# Kris Thomsen <lakristho@gmail.com>, 2009, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: da\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-04-15 09:36+0200\n"
+-"Last-Translator: Keld Simonsen <keld@rap.dk>\n"
+-"Language-Team:  <da@li.org>\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
++"Language: da\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.10.2\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -28,18 +28,18 @@ msgid ""
+ "         <args ...> are the arguments to that script."
+ msgstr ""
+ "BRUG: run_init <skript> <args ...>\n"
+-"  hvor: <skript> er navnet pÃ¥ init skript som skal køres,\n"
+-"         <args ...> er argumenter til dette skript."
++"  hvor: <skript> er navnet pÃ¥ init-skriptet som skal køres,\n"
++"         <args ...> er argumenterne til dette skript."
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+ #, c-format
+ msgid "failed to initialize PAM\n"
+-msgstr "kunne ikke initiere PAM\n"
++msgstr "kunne ikke initialisere PAM\n"
+ #: ../run_init/run_init.c:139
+ #, c-format
+ msgid "failed to get account information\n"
+-msgstr "kunne ikke fÃ¥ fat i konto-information.\n"
++msgstr "kunne ikke hente kontoinformation\n"
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+@@ -48,7 +48,7 @@ msgstr "Adgangskode:"
+ #: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+ #, c-format
+ msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr "Kan ikke finde din post i skyggeadgangskodesfilen.\n"
++msgstr "Kan ikke finde din post i skyggeadgangskode-filen.\n"
+ #: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+ #, c-format
+@@ -73,12 +73,12 @@ msgstr "Ingen kontekst i filen %s\n"
+ #: ../run_init/run_init.c:361
+ #, c-format
+ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr "Desværre, run_init kan kun bruges pÃ¥ en SELinux-kerne.\n"
++msgstr "Beklager, run_init kan kun bruges pÃ¥ en SELinux-kerne.\n"
+ #: ../run_init/run_init.c:380
+ #, c-format
+ msgid "authentication failed.\n"
+-msgstr "autentisering mislykkedes.\n"
++msgstr "godkendelse mislykkedes.\n"
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+ #, c-format
+@@ -86,79 +86,72 @@ msgid "Could not set exec context to %s.\n"
+ msgstr "Kunne ikke sætte kørselskontekst til %s.\n"
+ #: ../audit2allow/audit2allow:230
+-#, fuzzy
+ msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-"\n"
+-"********************* VIGTIGT ************************\n"
++msgstr "********************* VIGTIGT ************************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr ""
++msgstr "For at gøre denne regelsætpakke aktiv, kør:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "global"
+ #: ../semanage/seobject.py:222
+-#, fuzzy
+ msgid "Could not create semanage handle"
+-msgstr "Kunne ikke starte semanage-transaktion"
++msgstr "Kunne ikke oprette semanage-hÃ¥ndtering"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr "SELinux policy er ikke hÃ¥ndteret, eller der er ikke adgang til lager."
++msgstr "SELinux regelsæt er ikke hÃ¥ndteret, eller lager kan ikke tilgÃ¥es."
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr "Kan ikke læse policylager."
++msgstr "Kan ikke læse regelsætlager."
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+-msgstr "Kunne ikke sætte en semanage-opkobling op"
++msgstr "Kunne ikke starte en semanage-forbindelse"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Kunne ikke sætte MLS-interval for %s"
++msgstr "Kunne ikke teste MLS-aktiveret status"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "Ikke implementeret endnu"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage-transaktion er allerede i gang"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "Kunne ikke starte semanage-transaktion"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Kunne ikke starte semanage-transaktion"
++msgstr "Kunne ikke sende semanage-transaktion"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage-transaktion er ikke i gang"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Kan ikke liste SELinuxtbrugere"
++msgstr "Kunne ikke liste SELinux-moduler"
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+-msgstr ""
++msgstr "Version"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr ""
++msgstr "Deaktiveret"
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -166,9 +159,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Kunne ikke tilføje rolle %s for %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -191,11 +184,12 @@ msgstr ""
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
++"Kunne ikke indstille tilladelsesdomæne %s (installation af modul fejlede)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "Kunne ikke fjerne tilladelsesdomæne %s (fjernelse fejlede)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -206,48 +200,48 @@ msgstr ""
+ #: ../semanage/seobject.py:2037
+ #, python-format
+ msgid "Could not create a key for %s"
+-msgstr "Kunne ikke oprette en nøgle for %s"
++msgstr "Kunne ikke oprette en nøgle til %s"
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+ #, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr "Kunne ikke kontrollere om indlogningskortlægning for %s er defineret"
++msgstr "Kunne ikke kontrollere om indlogningtilknytning for %s er defineret"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linuxbruger %s findes ikke"
++msgstr "Linux-gruppe %s findes ikke"
+ #: ../semanage/seobject.py:497
+ #, python-format
+ msgid "Linux User %s does not exist"
+-msgstr "Linuxbruger %s findes ikke"
++msgstr "Linux-bruger %s findes ikke"
+ #: ../semanage/seobject.py:501
+ #, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr "Kunne ikke oprette indlogningskortlægning for %s"
++msgstr "Kunne ikke oprette indlogningtilknytning for %s"
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+ msgid "Could not set name for %s"
+-msgstr "Kunne ikke sætte navn for %s"
++msgstr "Kunne ikke indstille navn for %s"
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+ #, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr "Kunne ikke sætte MLS-interval for %s"
++msgstr "Kunne ikke indstille MLS-interval for %s"
+ #: ../semanage/seobject.py:514
+ #, python-format
+ msgid "Could not set SELinux user for %s"
+-msgstr "Kunne ikke sætte SELinux-bruger for %s"
++msgstr "Kunne ikke indstille SELinux-bruger for %s"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "Kunne ikke tilføje indlogningskortlægning for %s"
++msgstr "Kunne ikke tilføje indlogningstilknytning for %s"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+@@ -256,7 +250,7 @@ msgstr "Kræver seuser eller serange"
+ #: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+ #, python-format
+ msgid "Login mapping for %s is not defined"
+-msgstr "Indlogningskortlægning for %s er ikke defineret"
++msgstr "Indlogningstilknytning for %s er ikke defineret"
+ #: ../semanage/seobject.py:563
+ #, python-format
+@@ -266,36 +260,41 @@ msgstr "Kunne ikke forespørge seuser om %s"
+ #: ../semanage/seobject.py:577
+ #, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr "Kunne ikke Ã¦ndre indlognings-kortlægning for %s"
++msgstr "Kunne ikke Ã¦ndre indlogningstilknytning for %s"
+ #: ../semanage/seobject.py:611
+ #, python-format
+ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr "Indlogningskortlægning for %s er defineret i policy, kan ikke fjernes"
++msgstr ""
++"Indlogningstilknytning for %s er defineret i regelsæt, kan ikke slettes"
+ #: ../semanage/seobject.py:615
+ #, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr "Kunne ikke fjerne indlogningkortlægning for %s"
++msgstr "Kunne ikke slette indlogningstilknytning for %s"
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+ msgid "Could not list login mappings"
+-msgstr "Kunne ikke liste indlogningskortlægninger"
++msgstr "Kunne ikke liste indlogningstilknytninger"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+-msgstr ""
++msgstr "Logindnavn"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-#, fuzzy
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "SELinux Type kræves"
++msgstr "SELinux-bruger"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+-msgstr ""
++msgstr "MLS/MCS-interval"
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+@@ -308,12 +307,12 @@ msgstr "Kunne ikke kontrollere om SELinux-bruger %s er defineret"
+ #: ../semanage/seobject.py:866
+ #, python-format
+ msgid "Could not query user for %s"
+-msgstr "Kan ikke forespørge bruger om %s"
++msgstr "Kunne ikke forespørge bruger om %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Kunne ikke tilføje filkontekst for %s"
++msgstr "Du skal tilføje mindst Ã©n rolle for %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -323,17 +322,17 @@ msgstr "Kunne ikke oprette SELinux-bruger for %s"
+ #: ../semanage/seobject.py:746
+ #, python-format
+ msgid "Could not add role %s for %s"
+-msgstr "Kunne ikke tilføje rolle %s for %s"
++msgstr "Kunne ikke tilføje rolle %s til %s"
+ #: ../semanage/seobject.py:755
+ #, python-format
+ msgid "Could not set MLS level for %s"
+-msgstr "Kunne ikke sætte MLS-niveau for %s"
++msgstr "Kunne ikke indstille MLS-niveau for %s"
+ #: ../semanage/seobject.py:758
+ #, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr "Kunne ikke tilføje præfiks %s for %s"
++msgstr "Kunne ikke tilføje præfiks %s til %s"
+ #: ../semanage/seobject.py:761
+ #, python-format
+@@ -347,7 +346,7 @@ msgstr "Kunne ikke tilføje SELinux-bruger %s"
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+-msgstr "Kræver præfiks, roller, niveau eller omrÃ¥de"
++msgstr "Kræver præfiks, roller, niveau eller interval"
+ #: ../semanage/seobject.py:789
+ msgid "Requires prefix or roles"
+@@ -361,63 +360,63 @@ msgstr "SELinux-bruger %s er ikke defineret"
+ #: ../semanage/seobject.py:828
+ #, python-format
+ msgid "Could not modify SELinux user %s"
+-msgstr "Kan ikke Ã¦ndre SELinux-bruger %s"
++msgstr "Kunne ikke Ã¦ndre SELinux-bruger %s"
+ #: ../semanage/seobject.py:862
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr "SELinux-bruger %s er defineret i policy, kan ikke fjernes"
++msgstr "SELinux-bruger %s er defineret i regelsæt, kan ikke slettes"
+ #: ../semanage/seobject.py:873
+ #, python-format
+ msgid "Could not delete SELinux user %s"
+-msgstr "Kan ikke fjerne SELinuxtbruger %s"
++msgstr "Kunne ikke fjerne SELinux-bruger %s"
+ #: ../semanage/seobject.py:911
+ msgid "Could not list SELinux users"
+-msgstr "Kan ikke liste SELinuxtbrugere"
++msgstr "Kunne ikke liste SELinux-brugere"
+ #: ../semanage/seobject.py:917
+ #, python-format
+ msgid "Could not list roles for user %s"
+-msgstr "Kan ikke liste roller for bruger %s"
++msgstr "Kunne ikke liste roller for bruger %s"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr ""
++msgstr "Mærkning"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+-msgstr ""
++msgstr "MLS/"
+ #: ../semanage/seobject.py:943
+ msgid "Prefix"
+-msgstr ""
++msgstr "Præfiks"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Level"
+-msgstr ""
++msgstr "MCS-niveau"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Range"
+-msgstr ""
++msgstr "MCS-interval"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+-msgstr ""
++msgstr "SELinux-roller"
+ #: ../semanage/seobject.py:963
+ msgid "Protocol udp or tcp is required"
+-msgstr "Protokol udp eller tcp kræves"
++msgstr "Protokol udp eller tcp er pÃ¥krævet"
+ #: ../semanage/seobject.py:965
+ msgid "Port is required"
+-msgstr "Port kræves"
++msgstr "Port er pÃ¥krævet"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Ugyldigt præfiks %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -426,7 +425,7 @@ msgstr "Kunne ikke oprette en nøgle for %s/%s"
+ #: ../semanage/seobject.py:990
+ msgid "Type is required"
+-msgstr "Type kræves"
++msgstr "Type er pÃ¥krævet"
+ #: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+ #: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+@@ -442,37 +441,37 @@ msgstr "Port %s/%s allerede defineret"
+ #: ../semanage/seobject.py:1002
+ #, python-format
+ msgid "Could not create port for %s/%s"
+-msgstr "Kunne ikke oprette port for %s/%s"
++msgstr "Kunne ikke oprette port til %s/%s"
+ #: ../semanage/seobject.py:1008
+ #, python-format
+ msgid "Could not create context for %s/%s"
+-msgstr "Kunne ikke oprette kontekst for %s/%s"
++msgstr "Kunne ikke oprette kontekst til %s/%s"
+ #: ../semanage/seobject.py:1012
+ #, python-format
+ msgid "Could not set user in port context for %s/%s"
+-msgstr "Kunne ikke sætte bruger i port-kontekst for %s/%s"
++msgstr "Kunne ikke indstille bruger i portkontekst for %s/%s"
+ #: ../semanage/seobject.py:1016
+ #, python-format
+ msgid "Could not set role in port context for %s/%s"
+-msgstr "Kunne ikke sætte rolle i port-kontekst for %s/%s"
++msgstr "Kunne ikke indstille rolle i portkontekst for %s/%s"
+ #: ../semanage/seobject.py:1020
+ #, python-format
+ msgid "Could not set type in port context for %s/%s"
+-msgstr "Kunne ikke sætte type i port-kontekst for %s/%s"
++msgstr "Kunne ikke indstille type i portkontekst for %s/%s"
+ #: ../semanage/seobject.py:1025
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr "Kunne ikke sætte mls-felter i port-kontekst for %s/%s"
++msgstr "Kunne ikke indstille MLS-felter i portkontekst for %s/%s"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+ msgid "Could not set port context for %s/%s"
+-msgstr "Kunne ikke sætte port-kontekst for %s/%s"
++msgstr "Kunne ikke indstille portkontekst for %s/%s"
+ #: ../semanage/seobject.py:1033
+ #, python-format
+@@ -504,24 +503,23 @@ msgid "Could not modify port %s/%s"
+ msgstr "Kunne ikke Ã¦ndre port %s/%s"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "Kunne ikke liste porte"
++msgstr "Kunne ikke liste portene"
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Kan ikke fjerne port %s/%s"
++msgstr "Kunne ikke slette porten %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+ msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr "Port %s/%s er defineret i policy, kan ikke fjernes"
++msgstr "Port %s/%s er defineret i regelsæt, kan ikke slettes"
+ #: ../semanage/seobject.py:1122
+ #, python-format
+ msgid "Could not delete port %s/%s"
+-msgstr "Kan ikke fjerne port %s/%s"
++msgstr "Kan ikke slette port %s/%s"
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+ msgid "Could not list ports"
+@@ -529,29 +527,28 @@ msgstr "Kunne ikke liste porte"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+-msgstr ""
++msgstr "SELinux-porttype"
+ #: ../semanage/seobject.py:1199
+ msgid "Proto"
+-msgstr ""
++msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+-msgstr ""
++msgstr "Portnummer"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Port kræves"
++msgstr "Knudeadresse er pÃ¥krævet"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Ukendt eller manglende protokol"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+ msgid "SELinux Type is required"
+-msgstr "SELinux Type kræves"
++msgstr "SELinux-type er pÃ¥krævet"
+ #: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+ #: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+@@ -559,100 +556,98 @@ msgstr "SELinux Type kræves"
+ #: ../semanage/seobject.py:1728
+ #, python-format
+ msgid "Could not create key for %s"
+-msgstr "Kunne ikke oprette nøgle for %s"
++msgstr "Kunne ikke oprette nøgle til %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Kunne ikke kontrollere om port %s/%s er defineret"
++msgstr "Kunne ikke kontrollere om adresse %s er defineret"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Kunne ikke oprette en nøgle for %s"
++msgstr "Kunne ikke oprette adresse for %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+ #, python-format
+ msgid "Could not create context for %s"
+-msgstr "Kunne ikke oprette-kontekst for %s"
++msgstr "Kunne ikke oprette kontekst for %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Kunne ikke sætte navn for %s"
++msgstr "Kunne ikke indstille maske for %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Kunne ikke sætte bruger i filkontekst for %s"
++msgstr "Kunne ikke indstille bruger i adressekontekst for %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Kunne ikke sætte rolle i filkontekst for %s"
++msgstr "Kunne ikke indstille rolle i adressekontekst for %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Kunne ikke sætte type i filkontekst for %s"
++msgstr "Kunne ikke indstille type i adressekontekst for %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Kunne ikke sætte mls-felter i filkontekst for %s"
++msgstr "Kunne ikke indstille MLS-felter i adressekontekst for %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Kunne ikke sætte filkontekst for %s"
++msgstr "Kunne ikke indstille adressekontekst for %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Kunne ikke tilføje port %s/%s"
++msgstr "Kunne ikke tilføje adresse %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Port %s/%s er ikke defineret"
++msgstr "Adresse %s er ikke defineret"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Kunne ikke forespørge port %s/%s"
++msgstr "Kunne ikke forespørge adresse %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Kunne ikke Ã¦ndre port %s/%s"
++msgstr "Kunne ikke Ã¦ndre adresse %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Port %s/%s er defineret i policy, kan ikke fjernes"
++msgstr "Adresse %s er defineret i regelsæt, kan ikke slettes"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Kunne ikke fjerne grænsefladen %s"
++msgstr "Kunne ikke slette adresse %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Kunne ikke fjerne indlogningkortlægning for %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Kunne ikke liste porte"
++msgstr "Kunne ikke liste adresser"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+ #, python-format
+ msgid "Could not check if interface %s is defined"
+-msgstr "Kunne ikke kontrollere om grænsefladen %s er defineret"
++msgstr "Kunne ikke kontrollere om grænseflade %s er defineret"
+ #: ../semanage/seobject.py:1461
+ #, python-format
+@@ -662,37 +657,37 @@ msgstr "Kunne ikke oprette grænseflade for %s"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "Kunne ikke sætte bruger i grænseflade-kontekst for %s"
++msgstr "Kunne ikke indstille bruger i grænsefladekontekst for %s"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "Kunne ikke sætte rolle i grænseflade-kontekst for %s"
++msgstr "Kunne ikke indstille rolle i grænsefladekontekst for %s"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "Kan ikke sætte type i grænseflade-kontekst for %s"
++msgstr "Kunne ikke indstille type i grænsefladekontekst for %s"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr "Kan ikke sætte mls-felt i grænseflade-kontekst for %s"
++msgstr "Kunne ikke indstille MLS-felter i grænsefladekontekst for %s"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr "Kan ikke sætte grænseflade-kontekst for %s"
++msgstr "Kunne ikke indstille grænsefladekontekst for %s"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+ msgid "Could not set message context for %s"
+-msgstr "Kan ikke sætte meddelelse-kontekst for %s"
++msgstr "Kunne ikke indstille meddelelseskontekst for %s"
+ #: ../semanage/seobject.py:1495
+ #, python-format
+ msgid "Could not add interface %s"
+-msgstr "Kunne ikke tilføje grænsefladen %s"
++msgstr "Kunne ikke tilføje grænseflade %s"
+ #: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+ #, python-format
+@@ -702,27 +697,26 @@ msgstr "Grænsefladen %s er ikke defineret"
+ #: ../semanage/seobject.py:1522
+ #, python-format
+ msgid "Could not query interface %s"
+-msgstr "Kunne ikke spørge grænsefladen %s"
++msgstr "Kunne ikke spørge grænseflade %s"
+ #: ../semanage/seobject.py:1533
+ #, python-format
+ msgid "Could not modify interface %s"
+-msgstr "Kunne ikke Ã¦ndre grænsefladen %s"
++msgstr "Kunne ikke Ã¦ndre grænseflade %s"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+ msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr "Grænseflade %s er defineret i policy, kan ikke fjernes"
++msgstr "Grænseflade %s er defineret i regelsæt, kan ikke slettes"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+ msgid "Could not delete interface %s"
+-msgstr "Kunne ikke fjerne grænsefladen %s"
++msgstr "Kunne ikke slette grænseflade %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Kunne ikke fjerne grænsefladen %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -730,16 +724,16 @@ msgstr "Kunne ikke liste grænseflader"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+-msgstr ""
++msgstr "SELinux-grænseflade"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+-msgstr ""
++msgstr "Kontekst"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Filkontekst for %s allerede defineret"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -747,28 +741,28 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linuxbruger %s findes ikke"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "Kunne ikke sætte bruger i filkontekst for %s"
++msgstr "Kunne ikke indstille bruger i filkontekst for %s"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "Kunne ikke sætte rolle i filkontekst for %s"
++msgstr "Kunne ikke indstille rolle i filkontekst for %s"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "Kunne ikke sætte mls-felter i filkontekst for %s"
++msgstr "Kunne ikke indstille MLS-felter i filkontekst for %s"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+-msgstr ""
++msgstr "Ugyldig filangivelse"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -785,7 +779,7 @@ msgstr ""
+ #: ../semanage/seobject.py:1876
+ #, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr "Kan ikke kontrollere om fil-kontekst for %s er defineret"
++msgstr "Kunne ikke kontrollere om filkontekst for %s er defineret"
+ #: ../semanage/seobject.py:1745
+ #, python-format
+@@ -795,13 +789,13 @@ msgstr "Kunne ikke oprette filkontekst for %s"
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "Kunne ikke sætte type i filkontekst for %s"
++msgstr "Kunne ikke indstille type i filkontekst for %s"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr "Kunne ikke sætte filkontekst for %s"
++msgstr "Kunne ikke indstille filkontekst for %s"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+@@ -820,7 +814,7 @@ msgstr "Filkontekst for %s er ikke defineret"
+ #: ../semanage/seobject.py:1800
+ #, python-format
+ msgid "Could not query file context for %s"
+-msgstr "Kunne ikke spørge filkontekst for %s"
++msgstr "Kunne ikke forespørge filkontekst for %s"
+ #: ../semanage/seobject.py:1826
+ #, python-format
+@@ -828,19 +822,18 @@ msgid "Could not modify file context for %s"
+ msgstr "Kunne ikke Ã¦ndre filkontekst for %s"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Kunne ikke liste filkontekst"
++msgstr "Kunne ikke liste filkontekster"
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Kunne ikke slette filkontekst for %s"
++msgstr "Kunne ikke slette filkonteksten %s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+ msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr "Filkontekst for %s er defineret i policy, kan ikke fjernes"
++msgstr "Filkontekst for %s er defineret i regelsæt, kan ikke slettes"
+ #: ../semanage/seobject.py:1884
+ #, python-format
+@@ -857,11 +850,11 @@ msgstr "Kunne ikke liste lokale filkontekster"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+-msgstr ""
++msgstr "SELinux kontekst"
+ #: ../semanage/seobject.py:1936
+ msgid "type"
+-msgstr ""
++msgstr "type"
+ #: ../semanage/seobject.py:1949
+ msgid ""
+@@ -879,12 +872,12 @@ msgstr ""
+ #: ../semanage/seobject.py:2046
+ #, python-format
+ msgid "Could not check if boolean %s is defined"
+-msgstr "Kunne ikke kontrollere om flaget %s er defineret"
++msgstr "Kunne ikke kontrollere om boolesk %s er defineret"
+ #: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+ #, python-format
+ msgid "Boolean %s is not defined"
+-msgstr "Flaget %s er ikke defineret"
++msgstr "Boolesk %s er ikke defineret"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+@@ -892,54 +885,54 @@ msgid "Could not query file context %s"
+ msgstr "Kunne ikke forespørge filkontekst %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Du skal angive et præfiks"
++msgstr "Du skal angive Ã©n af de følgende værdier: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Kunne ikke fjerne flag %s"
++msgstr "Kunne ikke indstille aktiv værdi af boolesk %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+ msgid "Could not modify boolean %s"
+-msgstr "Kunne ikke Ã¦ndre flag %s"
++msgstr "Kunne ikke Ã¦ndre boolesk %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "DÃ¥rligt format %s: Notér %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr "Flag %s er defineret i policy, kan ikke fjernes"
++msgstr "Boolesk %s er defineret i regelsæt, kan ikke slettes"
+ #: ../semanage/seobject.py:2052
+ #, python-format
+ msgid "Could not delete boolean %s"
+-msgstr "Kunne ikke fjerne flag %s"
++msgstr "Kunne ikke slette boolesk %s"
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+ msgid "Could not list booleans"
+-msgstr "Kunne ikke liste flag"
++msgstr "Kunne ikke liste boolesker"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "ukendt"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "inaktiv"
+ #: ../semanage/seobject.py:2117
+ msgid "on"
+-msgstr ""
++msgstr "aktiv"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr ""
++msgstr "SELinux boolesk"
+ #: ../semanage/seobject.py:2131
+ msgid "State"
+@@ -949,24 +942,25 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "Beskrivelse"
+ #: ../newrole/newrole.c:201
+ #, c-format
+ msgid "failed to set PAM_TTY\n"
+-msgstr "kunne ikke sætte PAM_TTY\n"
++msgstr "kunne ikke indstille PAM_TTY\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
++msgstr "ny rolle: tjenestenavnskonfiguration overløb for hashtabel\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
++msgstr "ny rolle:  %s:  fejl pÃ¥ linje %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+@@ -976,22 +970,22 @@ msgstr "kan ikke finde gyldig indgang i passwd-filen.\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+ msgid "Out of memory!\n"
+-msgstr "Ikke mere hukommelse!\n"
++msgstr "Løbet tør for hukommelse!\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr "Fejl! Skallen er ikke gyldig.\n"
++msgstr "Fejl!  Skallen er ugyldig.\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+ msgid "Unable to clear environment\n"
+-msgstr "Kunne ikke nulstille miljøet\n"
++msgstr "Kunne ikke nulstille miljø\n"
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+ msgid "Error changing uid, aborting.\n"
+-msgstr "Fejl ved skift af uid, afbryder.\n"
++msgstr "Fejl ved skift af UID, afbryder.\n"
+ #: ../newrole/newrole.c:612
+ #, c-format
+@@ -1001,27 +995,27 @@ msgstr "Fejl ved nulstilling af KEEPCAPS, afbryder\n"
+ #: ../newrole/newrole.c:635
+ #, c-format
+ msgid "Error connecting to audit system.\n"
+-msgstr "Fejl ved forbindelse til auditeringssystem.\n"
++msgstr "Fejl ved forbindelse til revisionssystem.\n"
+ #: ../newrole/newrole.c:641
+ #, c-format
+ msgid "Error allocating memory.\n"
+-msgstr "Fejl ved hukommelsesallokering.\n"
++msgstr "Fejl ved allokering afhukommelse.\n"
+ #: ../newrole/newrole.c:648
+ #, c-format
+ msgid "Error sending audit message.\n"
+-msgstr "Fejl ved sending af auditeringsmeddelelse.\n"
++msgstr "Fejl ved afsendelse af revisionsmeddelelse.\n"
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr "Kunne ikke bestemme gennemtvingnings-tilstand.\n"
++msgstr "Kunne ikke bestemme tvungentilstand.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr "Fejl! Kunne ikke Ã¥bne %s.\n"
++msgstr "Fejl!  Kunne ikke Ã¥bne %s.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+@@ -1031,7 +1025,7 @@ msgstr "%s!  Kunne ikke hente aktuel kontekst for %s, ommærker ikke tty.\n"
+ #: ../newrole/newrole.c:715
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr "%s!  Kunne ikke fÃ¥ ny kontekst for %s, ommærker ikke tty.\n"
++msgstr "%s!  Kunne ikke modtage ny kontekst for %s, ommærker ikke tty.\n"
+ #: ../newrole/newrole.c:725
+ #, c-format
+@@ -1041,17 +1035,17 @@ msgstr "%s!  Kunne ikke sætte ny kontekst for %s\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+ msgid "%s changed labels.\n"
+-msgstr "%s Ã¦ndrede mærkninger.\n"
++msgstr "%s Ã¦ndrede mærker.\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr "Advarsel!  Kunne ikke genetablere kontekst for %s\n"
++msgstr "Advarsel! Kunne ikke genetablere kontekst for %s\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+ msgid "Error: multiple roles specified\n"
+-msgstr "Fejl: flere roller specificeret\n"
++msgstr "Fejl: flere roller angivet\n"
+ #: ../newrole/newrole.c:843
+ #, c-format
+@@ -1061,7 +1055,7 @@ msgstr "Fejl: flere typer angivet\n"
+ #: ../newrole/newrole.c:850
+ #, c-format
+ msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr "Desværre, -l kan bruges med SELinux MLS understøttelse.\n"
++msgstr "Beklager, -l skal bruges med SELinux MLS-understøttelse.\n"
+ #: ../newrole/newrole.c:855
+ #, c-format
+@@ -1072,26 +1066,27 @@ msgstr "Fejl: flere niveauer angivet\n"
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+ msgstr ""
++"Fejl: du har ikke tilladelse til at Ã¦ndre niveauer fra en usikker terminal \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr "Kunne ikke fÃ¥ fat i standardtype.\n"
++msgstr "Kunne ikke hente standardtype.\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+ msgid "failed to get new context.\n"
+-msgstr "kunne ikke fÃ¥ fat i ny kontekst.\n"
++msgstr "kunne ikke hente ny kontekst.\n"
+ #: ../newrole/newrole.c:908
+ #, c-format
+ msgid "failed to set new role %s\n"
+-msgstr "kunne ikke sætte ny rolle %s\n"
++msgstr "kunne ikke indstille ny rolle %s\n"
+ #: ../newrole/newrole.c:915
+ #, c-format
+ msgid "failed to set new type %s\n"
+-msgstr "kunne ikke sætte ny type %s\n"
++msgstr "kunne ikke indstille ny type %s\n"
+ #: ../newrole/newrole.c:925
+ #, c-format
+@@ -1101,7 +1096,7 @@ msgstr "kunne ikke bygge nyt interval med niveau %s\n"
+ #: ../newrole/newrole.c:930
+ #, c-format
+ msgid "failed to set new range %s\n"
+-msgstr "kunne ikke sætte nyt interval %s\n"
++msgstr "kunne ikke indstille nyt interval %s\n"
+ #: ../newrole/newrole.c:938
+ #, c-format
+@@ -1116,42 +1111,42 @@ msgstr "%s er ikke en gyldig kontekst\n"
+ #: ../newrole/newrole.c:950
+ #, c-format
+ msgid "Unable to allocate memory for new_context"
+-msgstr "Kunne ikke tildele hukommelse for new_context"
++msgstr "Kunne ikke allokere hukommelse for new_context"
+ #: ../newrole/newrole.c:976
+ #, c-format
+ msgid "Unable to obtain empty signal set\n"
+-msgstr "Kunne ikke hente tomt signal-samling\n"
++msgstr "Kunne ikke hente tom signalsæt\n"
+ #: ../newrole/newrole.c:984
+ #, c-format
+ msgid "Unable to set SIGHUP handler\n"
+-msgstr "Kunne ikke sætte SIGHUP-behandler\n"
++msgstr "Kunne ikke indstille SIGHUP-hÃ¥ndtering\n"
+ #: ../newrole/newrole.c:1053
+ #, c-format
+ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr "Desværre, newrole kan kun bruges pÃ¥ en SELinux-kerne.\n"
++msgstr "Beklager, newrole kan kun bruges pÃ¥ en SELinux-kerne.\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+ msgid "failed to get old_context.\n"
+-msgstr "kunne ikke fÃ¥ fat i old_context.\n"
++msgstr "kunne ikke modtage old_context.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Fejl! Kunne ikke fÃ¥ fat pÃ¥ tty-information.\n"
++msgstr "Fejl!  Kunne ikke hente tty-information.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr ""
++msgstr "fejl ved læsning af servicekonfiguration af PAM.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+ msgid "newrole: incorrect password for %s\n"
+-msgstr "newrole: fejlagtig adgangskode for %s\n"
++msgstr "newrole: forkert adgangskode for %s\n"
+ #: ../newrole/newrole.c:1160
+ #, c-format
+@@ -1161,7 +1156,7 @@ msgstr "newrole: fejl ved forgrening: %s"
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+ msgid "Unable to restore tty label...\n"
+-msgstr "Kunne ikke genetablere tty-etikette...\n"
++msgstr "Kunne ikke genetablere tty-mærke...\n"
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+@@ -1176,7 +1171,7 @@ msgstr "Kunne ikke lukke deskriptorerne.\n"
+ #: ../newrole/newrole.c:1251
+ #, c-format
+ msgid "Error allocating shell's argv0.\n"
+-msgstr "Fejl ved tildeling af skallens argv0.\n"
++msgstr "Fejl ved allokering af skallens argv0.\n"
+ #: ../newrole/newrole.c:1287
+ #, c-format
+@@ -1185,27 +1180,27 @@ msgstr "Kunne ikke genetablere miljøet, afbryder\n"
+ #: ../newrole/newrole.c:1298
+ msgid "failed to exec shell\n"
+-msgstr "kunne ikke udføre skál\n"
++msgstr "kunne ikke udføre skal\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "brug: %s [-bq]\n"
++msgstr "brug:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s:  Regelsæt er allerede indlæst og første indlæsning anmodet\n"
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s: Kan ikke indlæse policy: %s\n"
++msgstr "%s:  Kan ikke indlæse regelsæt og anmodet tvungen tilstand:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr "%s: Kan ikke indlæse policy: %s\n"
++msgstr "%s:  Kan ikke indlæse regelsæt:  %s\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+@@ -1214,12 +1209,12 @@ msgstr "Kræver mindst Ã©n kategori"
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+ msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr "Kan ikke Ã¦ndre følsomhedsniveau ved at bruge '+' pÃ¥ %s"
++msgstr "Kan ikke Ã¦ndre følsomhedsniveau ved at bruge \"+\" pÃ¥ %s"
+ #: ../scripts/chcat:110
+ #, c-format
+ msgid "%s is already in %s"
+-msgstr "%s er allerede i %s"
++msgstr "%s findes allerede i %s"
+ #: ../scripts/chcat:188 ../scripts/chcat:198
+ #, c-format
+@@ -1276,191 +1271,2106 @@ msgstr "Brug %s -L -l bruger"
+ #: ../scripts/chcat:333
+ msgid "Use -- to end option list.  For example"
+-msgstr "Brug -- for afslutte option-listen.  For eksempel"
++msgstr "Brug -- for at afslutte tilvalgslisten.  For eksempel"
+ #: ../scripts/chcat:334
+ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr "chcat -- -Hemmeligt /dok/forretningsplan.odt"
++msgstr "chcat -- -ForretningsHemmeligt /dok/forretningsplan.odt"
+ #: ../scripts/chcat:335
+ msgid "chcat -l +CompanyConfidential juser"
+-msgstr "chcat -l +Hemmeligt juser"
++msgstr "chcat -l +ForretningsHemmeligt juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+-msgstr "Flagfejl %s "
++msgstr "Tilvalgsfejl %s "
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Kan ikke Ã¥bne %s: oversættelser understøttes ikke pÃ¥ maskiner som ikke "
+-#~ "har MLS"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "oversættelser kan ikke indeholde mellemrum \"%s\" "
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Ugyldigt niveau \"%s\" "
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s er allerede defineret i oversættelser"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s er ikke defineret i oversættelser"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Indlogningskortlægning for %s er allerede defineret"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "Kunne ikke tilføje SELinux-bruger %s"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux-bruger %s er allerede defineret"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Port kræves"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Port %s/%s allerede defineret"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Grænsefladen %s er allerede defineret"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Fejl ved initiering af kapabiliteter, afbryder.\n"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Fejl ved indstilling af kapabiliteter, afbryder.\n"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Fejl ved indstilling af KEEPCAPS, afbryder\n"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Fejl ved fjernelse af kapabiliteter, afbryder\n"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Fejl ved fjernelse af SETUID kapabilitet, afbryder\n"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Fejl ved frigivelse af caps\n"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "oversættelser understøttes ikke pÃ¥ maskiner som ikke har MLS"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr "SELinux Type kræves"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "SELinux Type kræves"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Fejl ved sending af auditeringsmeddelelse.\n"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Du skal angive en rolle"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name"
+-#~ msgstr "Du skal angive en rolle"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Du skal angive en rolle"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Genererer gennemtvingnings-type fil: %s.te"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "Grænsefladen %s er ikke defineret"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid "File Contexts file"
+-#~ msgstr "Filkontekst for %s er ikke defineret"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux-bruger %s er ikke defineret"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Compatibility"
+-#~ msgstr "Kompilerer policy"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Autentifiserer %s.\n"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux Type kræves"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Kunne ikke tilføje SELinux-bruger %s"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Kan ikke Ã¦ndre SELinux-bruger %s"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Kan ikke fjerne SELinuxtbruger %s"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Kan ikke Ã¦ndre SELinux-bruger %s"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Load policy module"
+-#~ msgstr "Kan ikke læse policylager."
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux Type kræves"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Kræver værdi"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Kræver 2 eller flere argumenter"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "%s not defined"
+-#~ msgstr "%s er ikke defineret"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "%s ikke gyldig for %s objekt\n"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "interval understøttes ikke af ikke-MLS maskiner"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Ugyldigxt værdi %s"
+-
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "For at indlæse denne nye policy-pakke in i kernen,\n"
+-#~ "skal du køre \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Flagfejl: %s "
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/de.po b/policycoreutils/po/de.po
+index 617cac8..5d927f5 100644
+--- a/policycoreutils/po/de.po
++++ b/policycoreutils/po/de.po
+@@ -1,29 +1,30 @@
+-# translation of policycoreutils.HEAD.de.po to German
+-# German translation of policycoreutils.
+-# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+-#
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
++# Translators:
++# Daniela Kugelmann <dkugelma@redhat.com >, 2008.
++# Fabian Affolter <fab@fedoraproject.org>, 2008, 2009.
++# Hedda Peters <hpeters@redhat.com>, 2009.
+ # Holger Wansing <linux@wansing-online.de>, 2006.
+-# Timo Trinks <ttrinks@redhat.com>, 2006, 2007.
++# Michael Münch <micm@fedoraproject.org.org>, 2009.
+ # Michael Schönitzer <michael@schoenitzer.de>, 2007.
+-# Fabian Affolter <fab@fedoraproject.org>, 2008.
+-# Timo Trinks <ttrinks@redhat.com>, 2008.
+-# Daniela Kugelmann <dkugelma@redhat.com >, 2008.
++# Roman Spirgi <bigant@fedoraproject.org>, 2012.
++# sknirT omiT <moc.tahder@sknirtt>, 2010.
++# Timo Trinks <ttrinks@redhat.com>, 2006, 2007, 2008.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD.de\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-09-11 10:30+1000\n"
+-"Last-Translator: Daniela Kugelmann <dkugelma@redhat.com >\n"
+-"Language-Team: German <i18@redhat.com>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-13 08:22+0000\n"
++"Last-Translator: Roman Spirgi <bigant@fedoraproject.org>\n"
++"Language-Team: German <trans-de@lists.fedoraproject.org>\n"
+ "Language: de\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+-"X-Poedit-Language: German\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -78,9 +79,7 @@ msgstr "Kein Kontext in Datei %s\n"
+ #: ../run_init/run_init.c:361
+ #, c-format
+ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-"Entschuldigung, run_init sollte nur auf einem SELinux-Kernel benutzt "
+-"werden.\n"
++msgstr "Sorry, run_init darf nur auf einem SELinux-Kernel benutzt werden.\n"
+ #: ../run_init/run_init.c:380
+ #, c-format
+@@ -98,7 +97,7 @@ msgstr "******************** WICHTIG ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr "Um dieses Richtlinien-Paket zu aktivieren, führen sie folgendes aus:"
++msgstr "Um dieses Richtlinien-Paket zu aktivieren, führen Sie folgendes aus:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+@@ -123,9 +122,8 @@ msgid "Could not establish semanage connection"
+ msgstr "Konnte semanage-Verbindung nicht herstellen"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "MLS-Bereich für %s konnte nicht gesetzt werden"
++msgstr "MLS-Status konnte nicht auf Aktivierung Ã¼berprüft werden"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -133,7 +131,7 @@ msgstr "Noch nicht implementiert"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage-Transaktion bereits im Gang"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+@@ -145,53 +143,50 @@ msgstr "semanage-Transaktion konnte nicht gestartet werden"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage-Transaktion nicht im Gang"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+ msgid "Could not list SELinux modules"
+ msgstr "Konnte SELinux-Module nicht auflisten"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Modul-Name"
++msgstr "Modulname"
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Version"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "Deaktiviert"
+ #: ../semanage/seobject.py:322
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr "Konnte permissive Domain %s nicht entfernen (Entfernen fehlgeschlagen)"
++msgstr "Konnte Modul %s nicht deaktivieren (Entfernen fehlgeschlagen)"
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Konnte permissive Domain %s nicht entfernen (Entfernen fehlgeschlagen)"
++msgstr "Konnte Modul %s nicht aktivieren (Entfernen fehlgeschlagen)"
+ #: ../semanage/seobject.py:348
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr "Konnte permissive Domain %s nicht entfernen (Entfernen fehlgeschlagen)"
++msgstr "Konnte Modul %s nicht entfernen (Entfernen fehlgeschlagen)"
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
++msgstr "Dontaudit benötigt entweder Â»on« oder Â»off«"
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Permissive Typen"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Permissive Typen"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+@@ -293,17 +288,22 @@ msgid "Could not list login mappings"
+ msgstr "Konnte Login-Zuweisungen nicht anzeigen"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "Benutzername:"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "SELinux-User"
++msgstr "SELinux-Benutzer"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+-msgstr "MLS/MCS Bereich"
++msgstr "MLS/MCS-Bereich"
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+@@ -413,6 +413,7 @@ msgid "MCS Range"
+ msgstr "MCS-Bereich"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux-Rollen"
+@@ -426,7 +427,7 @@ msgstr "Port wird benötigt"
+ #: ../semanage/seobject.py:975
+ msgid "Invalid Port"
+-msgstr ""
++msgstr "Ungültiger Port"
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -544,7 +545,7 @@ msgstr "SELinux Port-Typ"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "Port-Nummer"
+@@ -648,9 +649,8 @@ msgid "Could not delete addr %s"
+ msgstr "Konnte addr %s nicht löschen"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Konnte Login-Zuweisung für %s nicht löschen"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+ msgid "Could not list addrs"
+@@ -670,27 +670,27 @@ msgstr "Konnte keine Schnittstelle für %s kreieren"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "Konnte Benutzer in Schnittstellen-Kontext für %s nicht setzen"
++msgstr "Konnte Benutzer in Schnittstellenkontext für %s nicht setzen"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "Konnte Aufgabe in Schnittstellen-Kontext für %s nicht setzen"
++msgstr "Konnte Aufgabe in Schnittstellenkontext für %s nicht setzen"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "Konnte Typ in Schnittstellen-Kontext für %s nicht setzen"
++msgstr "Konnte Typ in Schnittstellenkontext für %s nicht setzen"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr "Konnte die mls-Felder in Schnittstellen-Kontext für %s nicht setzen"
++msgstr "Konnte die mls-Felder in Schnittstellenkontext für %s nicht setzen"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr "Konnte Schnittstellen-Kontext für %s nicht setzen"
++msgstr "Konnte Schnittstellenkontext für %s nicht setzen"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+@@ -730,9 +730,8 @@ msgid "Could not delete interface %s"
+ msgstr "Konnte Schnittstelle %s nicht löschen"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Konnte Schnittstelle %s nicht löschen"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -747,9 +746,9 @@ msgid "Context"
+ msgstr "Inhalt"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Datei-Kontext für %s ist bereits definiert"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -757,24 +756,24 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux-Benutzer %s existiert nicht"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "Konnte Benutzer in Datei-Kontext für %s nicht setzen"
++msgstr "Konnte Benutzer in Dateikontext für %s nicht setzen"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "Konnte Aufgabe in Datei-Kontext für %s nicht setzen"
++msgstr "Konnte Aufgabe in Dateikontext für %s nicht setzen"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "Konnte die mls-Felder in Datei-Kontext für %s nicht setzen"
++msgstr "Konnte die mls-Felder in Dateikontext für %s nicht setzen"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+@@ -795,28 +794,28 @@ msgstr ""
+ #: ../semanage/seobject.py:1876
+ #, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr "Konnte nicht Ã¼berprüfen, ob Datei-Kontext für %s definiert ist"
++msgstr "Konnte nicht Ã¼berprüfen, ob Dateikontext für %s definiert ist"
+ #: ../semanage/seobject.py:1745
+ #, python-format
+ msgid "Could not create file context for %s"
+-msgstr "Konnte Datei-Kontext für %s nicht kreieren"
++msgstr "Konnte Dateikontext für %s nicht kreieren"
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "Konnte Typ in Datei-Kontext für %s nicht setzen"
++msgstr "Konnte Typ in Dateikontext für %s nicht setzen"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr "Konnte Datei-Kontext für %s nicht setzen"
++msgstr "Konnte Dateikontext für %s nicht setzen"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+ msgid "Could not add file context for %s"
+-msgstr "Konnte Datei-Kontext für %s nicht hinzufügen"
++msgstr "Konnte Dateikontext für %s nicht hinzufügen"
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+@@ -825,26 +824,26 @@ msgstr "Benötigt setype, serange oder seuser"
+ #: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+ #, python-format
+ msgid "File context for %s is not defined"
+-msgstr "Datei-Kontext für %s ist nicht definiert"
++msgstr "Dateikontext für %s ist nicht definiert"
+ #: ../semanage/seobject.py:1800
+ #, python-format
+ msgid "Could not query file context for %s"
+-msgstr "Konnte Datei-Kontext für %s nicht abfragen"
++msgstr "Konnte Dateikontext für %s nicht abfragen"
+ #: ../semanage/seobject.py:1826
+ #, python-format
+ msgid "Could not modify file context for %s"
+-msgstr "Konnte Datei-Kontext für %s nicht erneuern"
++msgstr "Konnte Dateikontext für %s nicht erneuern"
+ #: ../semanage/seobject.py:1839
+ msgid "Could not list the file contexts"
+-msgstr "Konnte Datei-Kontexte nicht auflisten"
++msgstr "Konnte Dateikontexte nicht auflisten"
+ #: ../semanage/seobject.py:1853
+ #, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Konnte Datei-Kontext für %s nicht löschen"
++msgstr "Konnte Dateikontext für %s nicht löschen"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -856,15 +855,15 @@ msgstr ""
+ #: ../semanage/seobject.py:1884
+ #, python-format
+ msgid "Could not delete file context for %s"
+-msgstr "Konnte Datei-Kontext für %s nicht löschen"
++msgstr "Konnte Dateikontext für %s nicht löschen"
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+-msgstr "Konnte Datei-Kontexte nicht auflisten"
++msgstr "Konnte Dateikontexte nicht auflisten"
+ #: ../semanage/seobject.py:1903
+ msgid "Could not list local file contexts"
+-msgstr "Konnte lokale Datei-Kontexte nicht auflisten"
++msgstr "Konnte lokale Dateikontexte nicht auflisten"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+@@ -881,27 +880,26 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux-fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+ #, python-format
+ msgid "Could not check if boolean %s is defined"
+-msgstr "Konnte nicht Ã¼berprüfen, ob Boolesch %s definiert ist"
++msgstr "Konnte nicht Ã¼berprüfen, ob Boolesche Variable %s definiert ist"
+ #: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+ #, python-format
+ msgid "Boolean %s is not defined"
+-msgstr "Boolescher Wert %s ist nicht definiert"
++msgstr "Boolesche Variable %s ist nicht definiert"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+ msgid "Could not query file context %s"
+-msgstr "Konnte den Datei-Kontext %s nicht abfragen"
++msgstr "Konnte den Dateikontext %s nicht abfragen"
+ #: ../semanage/seobject.py:1999
+ #, python-format
+@@ -911,12 +909,12 @@ msgstr "Sie müssen einen der folgenden Werte angeben: %s"
+ #: ../semanage/seobject.py:2004
+ #, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Konnte Boolesch %s nicht auf aktiv setzen"
++msgstr "Konnte Boolesche Variable %s nicht auf aktiv setzen"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+ msgid "Could not modify boolean %s"
+-msgstr "Konnte Boolesch %s nicht erneuern"
++msgstr "Konnte Boolesche Variable %s nicht Ã¤ndern"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+@@ -927,17 +925,17 @@ msgstr "Ungültiges Format %s: Auszeichnung %s"
+ #, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"Boolescher Wert %s ist in der Richtlinie festgelegt und kann nicht entfernt "
+-"werden"
++"Boolesche Variable %s ist in der Richtlinie festgelegt und kann nicht "
++"gelöscht werden"
+ #: ../semanage/seobject.py:2052
+ #, python-format
+ msgid "Could not delete boolean %s"
+-msgstr "Konnte Boolesch %s nicht löschen"
++msgstr "Konnte Boolesche Variable %s nicht löschen"
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+ msgid "Could not list booleans"
+-msgstr "Konnte Boolesche Werte nicht auflisten"
++msgstr "Konnte Boolesche Variablen nicht auflisten"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+@@ -953,18 +951,18 @@ msgstr "ein"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr "SELinux Wahrheitswert"
++msgstr "SELinux Boolesche Variablen"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+ msgstr "Status"
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+-msgstr ""
++msgstr "Standard"
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "Beschreibung"
+@@ -987,7 +985,7 @@ msgstr "newrole:  %s:  Fehler in Zeile %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+ msgid "cannot find valid entry in the passwd file.\n"
+-msgstr "Kann keinen gültigen Eintrag in der \"passwd\"-Datei finden.\n"
++msgstr "Kann keinen gültigen Eintrag in der passwd-Datei finden.\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+@@ -1012,7 +1010,7 @@ msgstr "Fehler beim Ã„ndern der Benutzerkennung (uid), Abbruch.\n"
+ #: ../newrole/newrole.c:612
+ #, c-format
+ msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr "Fehler beim zurücksetzen von KEEPCAPS, Abbruch\n"
++msgstr "Fehler beim Zurücksetzen von KEEPCAPS, Abbruch\n"
+ #: ../newrole/newrole.c:635
+ #, c-format
+@@ -1056,7 +1054,7 @@ msgstr ""
+ #: ../newrole/newrole.c:725
+ #, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr "%s! Konnte neuen Kontext für Â»%s« nicht setzen.\n"
++msgstr "%s! Konnte neuen Kontext für %s nicht setzen.\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+@@ -1071,24 +1069,22 @@ msgstr "Warnung! Kontext für %s nicht wiederherstellbar\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+ msgid "Error: multiple roles specified\n"
+-msgstr "Fehler: Mehrere Funktionen festgelegt\n"
++msgstr "Fehler: mehrere Funktionen angegeben\n"
+ #: ../newrole/newrole.c:843
+ #, c-format
+ msgid "Error: multiple types specified\n"
+-msgstr "Fehler: mehrere Typen festgelegt\n"
++msgstr "Fehler: mehrere Typen angegeben\n"
+ #: ../newrole/newrole.c:850
+ #, c-format
+ msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-"Entschuldigung, ich sollte nur mit SELinux-MLS-Unterstützung benutzt "
+-"werden.\n"
++msgstr "Sorry, -l darf nur mit SELinux-MLS-Unterstützung benutzt werden.\n"
+ #: ../newrole/newrole.c:855
+ #, c-format
+ msgid "Error: multiple levels specified\n"
+-msgstr "Fehler: mehrere Ebenen festgelegt\n"
++msgstr "Fehler: mehrere Stufen angegeben\n"
+ #: ../newrole/newrole.c:865
+ #, c-format
+@@ -1099,17 +1095,17 @@ msgstr ""
+ #: ../newrole/newrole.c:891
+ #, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr "Konnte Standardtyp nicht feststellen.\n"
++msgstr "Standardtyp konnte nicht abgerufen werden.\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+ msgid "failed to get new context.\n"
+-msgstr "Erwerb des neuen Kontexts fehlgeschlagen.\n"
++msgstr "Erhalt des neuen Kontexts fehlgeschlagen.\n"
+ #: ../newrole/newrole.c:908
+ #, c-format
+ msgid "failed to set new role %s\n"
+-msgstr "Setzen einer neuen Funktion %s fehlgeschlagen\n"
++msgstr "Setzen der neuen Rolle %s fehlgeschlagen\n"
+ #: ../newrole/newrole.c:915
+ #, c-format
+@@ -1119,7 +1115,7 @@ msgstr "Setzen des neuen Typs %s fehlgeschlagen\n"
+ #: ../newrole/newrole.c:925
+ #, c-format
+ msgid "failed to build new range with level %s\n"
+-msgstr "Erstellung von neuem Bereich mit Level %s fehlgeschlagen\n"
++msgstr "Erstellung von neuem Bereich mit Stufe %s fehlgeschlagen\n"
+ #: ../newrole/newrole.c:930
+ #, c-format
+@@ -1129,8 +1125,7 @@ msgstr "Setzen von neuem Bereich %s fehlgeschlagen\n"
+ #: ../newrole/newrole.c:938
+ #, c-format
+ msgid "failed to convert new context to string\n"
+-msgstr ""
+-"Konvertieren des neuen Kontexts in Zeichenfolge (String) fehlgeschlagen\n"
++msgstr "Konvertierung des neuen Kontexts in String fehlgeschlagen\n"
+ #: ../newrole/newrole.c:943
+ #, c-format
+@@ -1140,7 +1135,7 @@ msgstr "%s ist kein gültiger Kontext\n"
+ #: ../newrole/newrole.c:950
+ #, c-format
+ msgid "Unable to allocate memory for new_context"
+-msgstr "Kann keinen Speicher für new_context zuweisen"
++msgstr "Kann new_context keinen Speicher zuweisen"
+ #: ../newrole/newrole.c:976
+ #, c-format
+@@ -1155,14 +1150,12 @@ msgstr "Kann SIGHUP-Handler nicht setzen\n"
+ #: ../newrole/newrole.c:1053
+ #, c-format
+ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-"Entschuldigung, diese neue Eingabe sollte nur auf einem SELinux-Kernel "
+-"benutzt werden.\n"
++msgstr "Sorry, newrole darf nur auf einem SELinux-Kernel benutzt werden.\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+ msgid "failed to get old_context.\n"
+-msgstr "Konnte alten Kontext nicht bekommen.\n"
++msgstr "Erhalt von old_context fehlgeschlagen.\n"
+ #: ../newrole/newrole.c:1077
+ #, c-format
+@@ -1172,12 +1165,12 @@ msgstr "Warnung! Konnte tty-Informationen nicht abrufen.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr "Fehler beim Lesen der PAM-Dienst Konfiguration.\n"
++msgstr "Fehler beim Lesen der PAM-Dienstkonfiguration.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+ msgid "newrole: incorrect password for %s\n"
+-msgstr "Neue Eingabe: falsches Passwort für %s\n"
++msgstr "newrole: falsches Passwort für %s\n"
+ #: ../newrole/newrole.c:1160
+ #, c-format
+@@ -1187,12 +1180,12 @@ msgstr "newrole: Fork fehlgeschlagen: %s"
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+ msgid "Unable to restore tty label...\n"
+-msgstr "Kann TTY-Label nicht wiederherstellen...\n"
++msgstr "Kann tty-Label nicht wiederherstellen ...\n"
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+ msgid "Failed to close tty properly\n"
+-msgstr "Schliessen von TTY fehlgeschlagen\n"
++msgstr "Ordnungsgemässes Schliessen von tty fehlgeschlagen\n"
+ #: ../newrole/newrole.c:1224
+ #, c-format
+@@ -1221,27 +1214,28 @@ msgstr "Verwendung:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr "%s:  Richtlinie bereits geladen und initiale Ladeanforderung\n"
++msgstr ""
++"%s:  Richtlinie ist bereits geladen und initiale Ladeanforderung ist "
++"erfolgt\n"
+ #: ../load_policy/load_policy.c:80
+ #, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:  Kann Richtlinie nicht laden und fordere Zwangsmodus an:  %s\n"
++msgstr "%s:  Kann angefragte Richtlinie und Enforcing-Modus nicht laden:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr "%s: Kann Richtlinie nicht laden: %s\n"
++msgstr "%s:  Kann Richtlinie nicht laden:  %s\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+ msgstr "Benötigt mindestens eine Kategorie"
+-# Translation of sensitivity fuzzy
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+ msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr "Kann Sensivitätsstufe mittels '+' auf %s nicht Ã¤ndern"
++msgstr "Kann Sensitivitätsstufen mittels '+' auf %s nicht Ã¤ndern"
+ #: ../scripts/chcat:110
+ #, c-format
+@@ -1257,10 +1251,9 @@ msgstr "%s ist nicht in %s"
+ msgid "Can not combine +/- with other types of categories"
+ msgstr "Kann +/- nicht mit anderen Kategorietypen kombinieren"
+-# Translation of 'sensitivities' fuzzy
+ #: ../scripts/chcat:319
+ msgid "Can not have multiple sensitivities"
+-msgstr "Kann nicht mehrere Empfindlichkeiten besitzen"
++msgstr "Kann nicht mehrere Sensitivitäten besitzen"
+ #: ../scripts/chcat:325
+ #, c-format
+@@ -1285,7 +1278,7 @@ msgstr "Verwendung %s -l [[+|-]KATEGORIE],...]q Benutzer ..."
+ #: ../scripts/chcat:329
+ #, c-format
+ msgid "Usage %s -d File ..."
+-msgstr "Aufruf %s -d Datei ..."
++msgstr "Verwendung %s -d Datei ..."
+ #: ../scripts/chcat:330
+ #, c-format
+@@ -1295,1785 +1288,2125 @@ msgstr "Verwendung %s -l -d Benutzer ..."
+ #: ../scripts/chcat:331
+ #, c-format
+ msgid "Usage %s -L"
+-msgstr "Aufruf %s -L"
++msgstr "Verwendung %s -L"
+ #: ../scripts/chcat:332
+ #, c-format
+ msgid "Usage %s -L -l user"
+-msgstr "Aufruf: %s -L -l Benutzer"
++msgstr "Verwendung %s -L -l Benutzer"
+ #: ../scripts/chcat:333
+ msgid "Use -- to end option list.  For example"
+-msgstr "Benutze -- um die Optionsliste abzuschliessen. Beispiel:"
++msgstr "Verwenden Sie -- zum Abschluss der Optionsliste. Zum Beispiel"
+ #: ../scripts/chcat:334
+ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr "chcat -- -Vertraulich /docs/geschaeftsplanung.odt"
++msgstr "chcat -- -Vertraulich /docs/geschäftsplanung.odt"
+ #: ../scripts/chcat:335
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +Vertraulich juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+-msgstr "Optionsfehler %s"
++msgstr "Optionenfehler %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Öffnen von %s fehlgeschlagen: Ãœbersetzungen auf Nicht-MLS Machinen werden "
+-#~ "nicht unterstützt: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr "Boolean"
+-#~ msgid "Level"
+-#~ msgstr "Level"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr "Alle"
+-#~ msgid "Translation"
+-#~ msgstr "Ãœbersetzung"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr "Benutzerdefiniert"
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Ãœbersetzungen können keine Leerfelder enthalten '%s'"
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Ungültiges Level '%s'"
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++"Datei\n"
++"Spezifikation"
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s ist bereits in Ãœbersetzungen festgelegt"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++"Selinux\n"
++"Dateityp"
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s ist nicht in Ãœbersetzungen festgelegt"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++"Datei\n"
++"Typ"
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Login-Zuordung für %s ist bereits festgelegt"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr "Benutzer-Mapping"
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux-Benutzerzuordnung hinzufügen"
+-
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux-Benutzer %s ist bereits angelegt"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++"Login\n"
++"Name"
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Node-Netzmaske wird benötigt"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++"SELinux\n"
++"Benutzer"
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Addr %s ist bereits definiert"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Schnittstelle %s ist bereits definiert"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr "Login Â»%s« wird benötigt"
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Fehler bei der Funktions-Initialisierung, Abbruch.\n"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr "Policy-Modul"
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Fehler bei der Leistungsinitialisierung, Abbruch.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr "Modulname"
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Fehler bei der KEEPCAPS-Einrichtung, Abbruch\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr "Audit deaktivieren"
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Fehler beim Verwerfen von Funktionen.\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr "Audit aktivieren"
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Fehler beim Verwerfen der SETUID-Funktion, Abbruch.\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr "Lade Policy-Modul"
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Fehler beim Lösen von Caps\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr "Red Hat 2007"
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "Ãœbersetzungen auf Nicht-MLS Machinen werden nicht unterstützt"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr "GPL"
+-#~ msgid "Boolean"
+-#~ msgstr "Boolesche"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr "Ãœbersetzer"
+-#~ msgid "all"
+-#~ msgstr "alle"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr "SELinux Policy-Erstellungswerkzeug"
+-#~ msgid "Customized"
+-#~ msgstr "Angepasst"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "Dateikennzeichnung"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr "<b>Anwendungen</b>"
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "Datei\n"
+-#~ "Spezifikation"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "Datei-Typ"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Datei\n"
+-#~ "Typ"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "Benutzerzuordnung"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "Anmelden\n"
+-#~ "Name"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "Benutzer"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS-Bereich"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Login '%s' wird benötigt"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "Richtlinien-Modul"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "Audit deaktivieren"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "Audit aktivieren"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "Richtlinien-Modul laden"
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Applikationen</b>"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Melde Benutzer an</b>"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Root-Benutzer</b>"
+-
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP-Ports</b>"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP Ports</b>"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "Fügen Boolean-Dialog hinzu"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "Hinzufügen von Dateien/Ordnern, in welche diese Applikation \"Schreiben\" "
+-#~ "muss. Pid Files, Log Files, /var/lib Files ..."
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "Boolsche Werte, die für diese eingeschränkte Applikation/Benutzer "
+-#~ "verwendet werden hinzufügen/entfernen"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "Admin-Benutzerrolle"
+-
+-#~ msgid "All"
+-#~ msgstr "Alle"
+-
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "Erlaubt Applikationsrolle/Benutzer-Rolle bindresvport mit 0 aufzurufen. "
+-#~ "Verbinde mit Ports 600-1024"
+-
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "Erlaubt Applikationsrolle/Benutzer-Rolle sich mit einem beliebigen UDP-"
+-#~ "Port > 1024 zu verbinden"
+-
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "Erlaubt einer eingeschränkten Applikationsrolle/einem eingeschränkten "
+-#~ "Benutzer-Rolle sich mit jedem beliebigen UDP-Port zu verbinden"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Boolean Name"
+-#~ msgstr "Boolean-Name:"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "Erstelle/ändert temporäre Dateien in /tmp"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Geben Sie eine durch Kommas getrennte Liste von TCP-Ports oder einen "
+-#~ "Bereich an, an welche Applikation/Benutzer-Rollen gebunden werden. "
+-#~ "Beispiel: 612, 650-660"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Geben Sie eine durch Kommas getrennte Liste von UDP-Ports oder einen "
+-#~ "Bereich an, an welche Applikation/Benutzer-Rollen gebunden werden. "
+-#~ "Beispiel: 612, 650-660"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Geben Sie eine durch Kommas getrennte Liste von UDP-Ports an, mit denen "
+-#~ "sich die Applikation/der Benutzer verbindet. Beispiel: 612, 650-660"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr ""
+-#~ "Geben Sie den vollständigen Pfad der ausführbaren Datei ein, die "
+-#~ "eingeschränkt werden soll."
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "Geben Sie einen vollständigen Pfad zum Init-Skript ein, das verwendet "
+-#~ "wird, um die eingeschränkte Applikation zu starten."
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "Geben Sie die einzuschränkende Applikation oder Benutzerrollen ein."
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "Geben Sie die Netzwerkports an, mit denen sich die Applikation/der "
+-#~ "Benutzer verbinden können"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr ""
+-#~ "Geben Sie die Netzwerksports an, auf denen Applikation/Benutzer hören"
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr ""
+-#~ "Geben Sie einen eindeutigen Namen für die eingeschränkte Benutzer- oder "
+-#~ "Applikationsrolle ein."
+-
+-#~ msgid "Executable"
+-#~ msgstr "Ausführbar"
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "Existierende Benutzer-Rollen"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "Generierte Richtliniendateien"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Init Skript"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "Interagiere mit dem Terminal"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Internet Services Daemon (inetd)"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr ""
+-#~ "'Internet Services Daemon' sind Daemons, die von xinetd gestartet werden"
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "Minimale Terminal-Benutzerrolle"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "Minimale X-Windows-Benutzerrolle"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "Ändere einen existierenden Benutzer-Datensatz."
+-
+-#~ msgid "Name"
+-#~ msgstr "Name"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "Richtlinienverzeichnis"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Root-Admin-Benutzerrolle"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "Tool zum Erstellen von SELinux-Richtlinien"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "Ports auswählen"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "Wählen Sie 'Root-Administrator Benutzerrolle', wenn dieser Benutzer zur "
+-#~ "Verwaltung des Rechners als Root-Benutzer verwendet wird.  Dieser "
+-#~ "Benutzer kann sich nicht direkt auf dem System einloggen."
+-
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr ""
+-#~ "Wählen Sie zusätzliche Domains, die dieser Benutzer administrieren soll."
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr ""
+-#~ "Wählen Sie zusätzliche Domain(s), in die diese Benutzerrolle Ã¼bergeht"
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "Wählen Sie zusätzliche Rollen für diesen Benutzer"
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "Wählen Sie booleschen Werte, die diese Applikation verwendet"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "Wählen Sie allgemeine Applikationseigenschaften"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr ""
+-#~ "Wählen Sie das Verzeichnis, in das die Richtliniendateien generiert "
+-#~ "werden sollen"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "Wählen Sie die Dateien/Verzeichnisse, die die Applikation verwaltet"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "Wählen Sie die Applikation-Domains, auf die dieser Benutzerrolle wechseln "
+-#~ "soll."
+-
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "Wählen Sie die Domains, die dieser Benutzer administrieren soll."
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr ""
+-#~ "Wählen Sie die Applikation-Domains, auf die diese Benutzerrole wechseln "
+-#~ "soll."
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr ""
+-#~ "Wählen Sie den Typ der einzuschränkenden Applikation oder Benutzerrolle"
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr ""
+-#~ "Wählen Sie die Benutzerrolle(n), die auf diese Domain Ã¼bertragen werden "
+-#~ "soll"
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "Wählen Sie die Rolle, welche Sie anpassen wollen"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Sende Audit-Meldungen"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "Sende Nachricht"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "Standard Init Daemon"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "Standard-Init-Daemon sind Daemons, die beim Booten via Init-Skripte "
+-#~ "gestartet werden. Benötigt normalerweise ein Skript in /etc/rc.d/init.d"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "Dieses Tool kann dazu verwendet werden, ein Richtlinien-Framework zur "
+-#~ "Abgrenzung von Applikationen oder Benutzern mit SELinux zu erstellen.   \n"
+-#~ "\n"
+-#~ "Das Tool generiert:\n"
+-#~ "Typ-Enforcement-Datei (te)\n"
+-#~ "Interface-Datei (if)\n"
+-#~ "Dateikontextdatei (fc)\n"
+-#~ "Shell-Skript (sh) - wird für das Kompilieren und Installieren der "
+-#~ "Richtlinie verwendet. "
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Dieses Werkzeug erstellt das folgende: \n"
+-#~ "Type Enforcment(te), File Context(fc), Interface(if), Shell Script(sh).\n"
+-#~ "\n"
+-#~ "Führen Sie das Shell-Skript aus, um Dateien/Verzeichnisse zu kompilieren/"
+-#~ "installieren und neu zu kennzeichnen.\n"
+-#~ "Anschliessend können Sie den Rechner in 'permissive' Modus versetzen. \n"
+-#~ "Führen Sie die Applikation aus oder starten Sie diese neu, um 'avc'-"
+-#~ "Meldungen zu generieren.\n"
+-#~ "Verwenden Sie 'audit2allow -R', um zusätzliche Regeln für die 'te'-Datei "
+-#~ "zu erstellen.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Dieses Werkzeug erstellt das folgende: \n"
+-#~ "Type Enforcment(te), File Context(fc), Interface(if), Shell Script(sh).\n"
+-#~ "Führen Sie das Shell-Skript als root aus, um Dateien/Verzeichnisse zu "
+-#~ "kompilieren/installieren und neu zu kennzeichnen.\n"
+-#~ "Benutzen Sie semanage oder useradd, um Linux-Anmeldebenutzer den "
+-#~ "Beutzerrollen zuzuordnen.\n"
+-#~ "Anschliessend können Sie den Rechner in permissive-Modus versetzen. \n"
+-#~ "Melden Sie sich als Benutzer an und testen Sie die Benutzerrolle.\n"
+-#~ "Verwenden Sie audit2allow -R, um zusätzliche Regeln für die Datei zu "
+-#~ "erstellen.\n"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "Dieser Benutzer kann sich via X oder Terminal auf einer Maschine "
+-#~ "einloggen.  Standardmäßig besitzt dieser Benutzer kein setuid, kein "
+-#~ "Netzwerk, kein sudo und kein su."
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "Dieser Benutzer loggt sich auf einer Maschine nur via Terminal oder Login "
+-#~ "von Remote aus ein.  Standardmäßig besitzt dieser Benutzer kein setuid, "
+-#~ "kein Netzwerk, kein su und kein sudo."
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "Nicht reservierte Ports (>1024)"
+-
+-#~ msgid "User Application"
+-#~ msgstr "Benutzerapplikation"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "Eine Benutzerapplikation ist eine beliebige Applikation, die von einem "
+-#~ "Benutzer gestartet wird und die Sie einschränken möchten"
+-
+-#~ msgid "User Role"
+-#~ msgstr "Benutzer-Rolle"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "Benutzer mit vollem Zugriff auf das Netzwerk, keine setuid-Applikationen "
+-#~ "ohne Ãœbertragung, kein su und kann mit sudo in Root Administration Roles "
+-#~ "wechseln."
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "Benutzer mit vollem Zugriff auf das Netzwerk, keine setuid-Applikationen "
+-#~ "ohne Ãœbertragung, kein sudo und kein su."
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "Benutzt PAM zur Authentifizierung"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "Benutzt DBus"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "Benutzt nsswitch- oder getpw*-Aufrufe"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Web Application/Script (CGI)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "Web-Applikationen/Skript (CGI) CGI-Skripte, die vom Web-Server (Apache) "
+-#~ "gestartet werden"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "Schreibt syslog-Nachricht\t"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "N/A"
+-
+-#~ msgid "Role"
+-#~ msgstr "Funktion"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "Bestehender_Benutzer"
+-
+-#~ msgid "Application"
+-#~ msgstr "Applikation"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s muss ein Verzeichnis sein"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "Sie müssen eine Benutzer auswählen"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "Wählen Sie eine einzuschränkende ausführbare Datei."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "Wählen Sie eine Init-Skript-Datei, die eingeschränkt werden soll."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr ""
+-#~ "Wählen Sie die Datei(en), die eine eingeschränkte Applikation erstellt "
+-#~ "oder schreibt"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "Wählen Sie das/die Verzeichnis(se), die die eingeschränkte Applikation "
+-#~ "besitzt und in die sie schreibt"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr ""
+-#~ "Wählen Sie das Verzeichnis, in das die Richtliniendateien generiert "
+-#~ "werden sollen"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Typ %s_t bereits definiert in aktueller Richtlinie.\n"
+-#~ "Wollen Sie fortfahren?"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Verify Name"
+-#~ msgstr "Ãœberprüfe Name"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Modul %s.pp bereits geladen in aktueller Richtlinie.\n"
+-#~ "Wollen Sie fortfahren?"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "Sie müssen einen Namen angeben"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Sie müssen eine ausführbare Datei angeben"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux konfigurieren"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "Ports müssen Zahlen zwischen 1 und %d sein"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr ""
+-#~ "Sie müssen einen Pfad für Ihren eingeschränkten Prozess/Benutzer eingeben"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "USER-Types sind keine erlaubten ausführbaren Dateien"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "Nur DAEMON-Applikationen können ein Init-Skript verwenden"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog muss ein Boolescher Wert sein"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "USER-Types erhalten automatisch ein tmp-Type"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr ""
+-#~ "Sie müssen einen ausführbaren Pfad für Ihren eingeschränkten Prozess "
+-#~ "eingeben"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Type Enforcement Datei"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "Schnittstellendatei"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "Datei-Kontexte-Datei"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "Skript für das Einrichten"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux Port\n"
+-#~ "Typ"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "Protokoll"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "Port"
+-
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "Portnummer \"%s\" ist nicht gültig. 0 < PORTNUMMER < 65536 "
+-
+-#~ msgid "List View"
+-#~ msgstr "Listenansicht"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "Gruppenansicht"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux-Dienst-Schutz"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für acct daemon"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "Administrator"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "Allen Daemons erlauben, 'corefiles' nach \"/\" zu schreiben"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr ""
+-#~ "Allen Daemons die Fähigkeit geben, nicht zugewiesene TTYs zu verwenden"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "Benutzer-Privs"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "gadmin-SELinux-Benutzer erlauben, Dateien in seinem Stammverzeichnis "
+-#~ "oder /tmp auszuführen"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "SELinux Gast-Benutzerkonten erlauben, Dateien in ihrem Stammverzeichnis "
+-#~ "oder /tmp auszuführen"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "Speicherschutz"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "Ausführbaren Java-Stapel erlauben"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Einhängen"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "'mount' gestatten, jede beliebige Datei einzuhängen"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "'mount' gestatten, jedes beliebige Verzeichnis einzuhängen"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "'mplayer' einen ausführbaren Stapel erlauben"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "SSH gestatten, 'ssh-keysign' auszuführen"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "staff-SELinux-Benutzerkonten gestatten, Dateien in ihren "
+-#~ "Stammverzeichnissen oder /tmp auszuführen"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "sysadm-SELinux-Benutzerkonten gestatten, Dateien in ihren "
+-#~ "Stammverzeichnissen oder /tmp auszuführen"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "Uneingeschränkten SELinux-Benutzerkonten gestatten, Dateien in ihren "
+-#~ "Stammverzeichnissen oder /tmp auszuführen"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Netzwerkkonfiguration"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr ""
+-#~ "Nicht gekennzeichneten Paketen gestatten, sich durch das Netzwerk "
+-#~ "fortzubewegen"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "user-SELinux-Benutzerkonten gestatten, Dateien in ihren "
+-#~ "Stammverzeichnissen oder /tmp auszuführen"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "'unconfined' zu 'dyntrans' zu 'unconfined_execmem' gestatten"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Datenbanken"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "Benutzer gestatten, sich mit dem MySQL-Socket zu verbinden"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "Benutzer gestatten, sich mit dem Postgres-Socket zu verbinden"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "X-Server"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr ""
+-#~ "Clients gestatten, in von X gemeinsam genutzten Speicher zu schreiben"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "xguest-SELinux-Benutzerkonten gestatten, Dateien in ihren "
+-#~ "Stammverzeichnissen oder /tmp auszuführen"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "Daemons gestatten, mit NIS zu laufen"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "Web-Applikationen"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "'staff'-SELinux-Benutzer auf Web-Browser-Domain Ã¼bertragen"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "'sysadmin'-SELinux-Benutzer auf Web-Browser-Domain Ã¼bertragen"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "'user'-SELinux-Benutzer auf Web-Browser-Domain Ã¼bertragen"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "'xguest'-SELinux-Benutzer auf Web-Browser-Domain Ã¼bertragen"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "'staff'-Web-Browsern gestatten, in Stammverzeichnisse zu schreiben"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "Deaktiviere SELinux Schutz für amanda"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "Deaktiviere SELinux Schutz für amavis"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für apmd daemon"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für arpwatch daemon"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für auditd daemon"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für automount daemon"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "Deaktiviere SELinux Schutz für avahi"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für bluetooth daemon"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für canna daemon"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für cardmgr daemon"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Deaktiviere SELinux Schutz für Cluster Server"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "'cdrecord' gestatten, verschiedenen Inhalt zu lesen. NFS, SAMBA, "
+-#~ "entfernbare Geräte, temporäre Benutzerverzeichnisse und nicht "
+-#~ "vertrauenswürdige Inhaltsdateien"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für ciped daemon"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für clamd daemon"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "Deaktiviere SELinux Schutz für clamscan"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "Deaktiviere SELinux Schutz für clvmd"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für comsat daemon"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für courier daemon"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für cpucontrol daemon"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für cpuspeed daemon"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für crond daemon"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "Drucken"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "Deaktiviere SELinux-Schutz für cupsd backend-Server"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für cupsd daemon"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "Deaktiviere SELinux Schutz für cupsd_lpd"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für cvs daemon"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für cyrus daemon"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für dbskkd daemon"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für dbusd daemon"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "Deaktiviere SELinux Schutz für dccd"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "Deaktiviere SELinux Schutz für dccifd"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "Deaktiviere SELinux Schutz für dccm"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für ddt daemon"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für devfsd daemon"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für dhcpc daemon"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für dhcpd daemon"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für dictd daemon"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "'sysadm_t' gestatten, Daemons direkt zu starten"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Deaktiviere SELinux Schutz für Evolution"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "Spiele"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "Deaktiviere SELinux Schutz für games"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "Deaktiviere SELinux Schutz für the web browsers"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Deaktiviere SELinux Schutz für Thunderbird"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für distccd daemon"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für dmesg daemon"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für dnsmasq daemon"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für dovecot daemon"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für entropyd daemon"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "Deaktiviere SELinux Schutz für fetchmail"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für fingerd daemon"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für freshclam daemon"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für fsdaemon daemon"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für gpm daemon"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für gss daemon"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Deaktiviere SELinux-Schutz für Hal-Daemon"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "Kompatibilität"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "Dinge, die als defekt bekannt sind, aber keine Gefährdung der Sicherheit "
+-#~ "darstellen, nicht Ã¼berprüfen"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für hostname daemon"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für hotplug daemon"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für howl daemon"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für hplip daemon"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "Deaktiviere SELinux Schutz für httpd rotatelogs"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD-Dienst"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "Deaktiviere SELinux Schutz für http suexec"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für hwclock daemon"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für i18n daemon"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für imazesrv daemon"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "Deaktiviere SELinux Schutz für inetd child daemons"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für inetd daemon"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für innd daemon"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für iptables daemon"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für ircd daemon"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für irqbalance daemon"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für iscsi daemon"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für jabberd daemon"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für kadmind daemon"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für klogd daemon"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für krb5kdc daemon"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "Deaktiviere SELinux Schutz für ktalk daemons"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für kudzu daemon"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für locate daemon"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für lpd daemon"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für lrrd daemon"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für lvm daemon"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "Deaktiviere SELinux Schutz für mailman"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "Evolution und Thunderbird gestatten, Benutzerdateien zu lesen"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für mdadm daemon"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für monopd daemon"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "Dem Mozilla-Browser gestatten, Benutzerdateien zu lesen"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für mrtg daemon"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für mysqld daemon"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für nagios daemon"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "Name-Dienst"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für named daemon"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für nessusd daemon"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "Deaktiviere SELinux Schutz für NetworkManager"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für nfsd daemon"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für nmbd daemon"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für nrpe daemon"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für nscd daemon"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für nsd daemon"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für ntpd daemon"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "Deaktiviere SELinux Schutz für oddjob"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "Deaktiviere SELinux Schutz für oddjob_mkhomedir"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für openvpn daemon"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für pam daemon"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "Deaktiviere SELinux Schutz für pegasus"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für perdition daemon"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für portmap daemon"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für portslave daemon"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "Deaktiviere SELinux Schutz für postfix"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für postgresql daemon"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "Gestatten, dass 'pppd' für einen regulären Benutzer ausgeführt wird"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "Deaktiviere SELinux Schutz für pptp"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für prelink daemon"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für privoxy daemon"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für ptal daemon"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für pxe daemon"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "Deaktiviere SELinux Schutz für pyzord"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für quota daemon"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für radiusd daemon"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für radvd daemon"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "Deaktiviere SELinux Schutz für rdisc"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "Deaktiviere SELinux Schutz für readahead"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "Programmen gestatten, Dateien an nicht standardmässigen Orten zu lesen "
+-#~ "(default_t)"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "Deaktiviere SELinux Schutz für restorecond"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für rhgb daemon"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "Deaktiviere SELinux Schutz für ricci"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "Deaktiviere SELinux Schutz für ricci_modclusterd"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für rlogind daemon"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für rpcd daemon"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "Deaktiviere SELinux Schutz für rshd"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für rsync daemon"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr ""
+-#~ "SSH gestatten, von 'inetd' aus gestartet zu werden, anstatt als Daemon"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Samba gestatten, NFS-Verzeichnisse freizugeben"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL-Authentifizierungs-Server"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "SASL-Authentifizierungs-Server gestatten, /etc/shadow zu lesen"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "Dem X-Windows-Server gestatten, einen Speicherbereich sowohl als "
+-#~ "ausführbar, als auch beschreibbar auszuweisen"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für saslauthd daemon"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für scannerdaemon daemon"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr ""
+-#~ "Wechsel zu 'sysadm_t' nicht gestatten. Davon betroffen sind 'sudo' und "
+-#~ "'su'"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "Keinem Prozess gestatten, Kernel-Module zu laden"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr ""
+-#~ "Keinem Prozess gestatten, die Kernel SELinux-Richtlinien zu verändern"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für sendmail daemon"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "Deaktiviere SELinux Schutz für setrans"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "Deaktiviere SELinux-Schutz für setroubleshoot-Daemon"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für slapd daemon"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für slrnpull daemon"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für smbd daemon"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für snmpd daemon"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für snort daemon"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für soundd daemon"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für sound daemon"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "Spam-Schutz"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für spamd daemon"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "'spamd' Zugriff auf Stammverzeichnisse gestatten"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Dem Spamassassin-Daemon Netzwerkzugriff gestatten"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für speedmgmt daemon"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "Dem Squid-Daemon gestatten, sich mit dem Netzwerk zu verbinden"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für squid daemon"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für ssh daemon"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "SSH-Logins als 'sysadm_r:sysadm_t' gestatten"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "'staff_r'-Benutzern gestatten, das 'sysadm'-Stammverzeichnis zu "
+-#~ "durchsuchen und Dateien zu lesen (z.B. ~/.bashrc)"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Universeller SSL-Tunnel"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für stunnel daemon"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr ""
+-#~ "Dem stunnel-Daemon gestatten, als \"standalone\" zu laufen, ausserhalb "
+-#~ "von 'xinetd'"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für swat daemon"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für sxid daemon"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für syslogd daemon"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "Deaktiviere SELinux Schutz für system cron jobs"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für tcp daemon"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für telnet daemon"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für tftpd daemon"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für transproxy daemon"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für udev daemon"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für uml daemon"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "'xinetd' gestatten, uneingeschränkt zu laufen, inklusive einiger Dienste, "
+-#~ "die gestartet werden, die keine Domain-Ãœbertragung explizit definiert "
+-#~ "haben."
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "rc-Skripten gestatten, uneingeschränkt zu laufen, inklusive beliebiger "
+-#~ "Daemons, die von einem rc-Skript gestartet werden, das keine Domain-"
+-#~ "Ãœbertragung explizit definiert hat"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "'rpm' gestatten, ohne Einschränkungen zu laufen"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "Privilegierten Dienstprogrammen wie 'hotplug' und 'insmod' gestatten, "
+-#~ "ohne Einschränkung zu laufen"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für updfstab daemon"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für uptimed daemon"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "'user_r' gestatten, 'sysadm_r'-Rechte via 'su', 'sudo' oder 'userhelper' "
+-#~ "zu erlangen. Ansonsten ist dies lediglich 'staff_r' gestattet"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "Benutzern gestatten, den Befehl 'mount' auszuführen"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "Regulären Benutzern direkten Zugriff auf die Maus gestatten (nur dem X-"
+-#~ "Server gestatten)"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "Benutzern gestatten, den Befehl 'dmesg' auszuführen"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "Benutzern gestatten, Netzwerkschnittstellen zu kontrollieren (setzt "
+-#~ "ebenfalls USERCTL=true voraus)"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "Einem normalen Benutzer gestatten, 'ping' auszuführen"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "Benutzer r/w noextattrfile (FAT, CDROM, FLOPPY) gestatten"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "Benutzern gestatten, USB-Geräte zu lesen/beschreiben"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "Benutzern gestatten, TCP-Server auszuführen (Verbindung zu Ports und "
+-#~ "Annahme der Verbindung aus derselben Domain und ausserhalb 'users'). Wird "
+-#~ "dies verweigert, muss FTP im Passiv-Modus laufen und verändert ggf. auch "
+-#~ "andere Protokolle"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "Benutzer gestatten, 'ttyfiles' statistisch anzusehen"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für uucpd daemon"
+-
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für vmware daemon"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für watchdog daemon"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für winbind daemon"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für xdm daemon"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "'xdm' Logins als 'sysadm_r:sysadm_t' gestatten"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für xen daemon"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "'xen' gestatten, physikalische Plattengeräte zu lesen/beschreiben"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für xfs daemon"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "Deaktiviere SELinux-Schutz für xen-Daemon"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für ypbind daemon"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für NIS Password Daemon"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für ypserv daemon"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "Deaktiviere SELinux Schutz für NIS Transfer Daemon"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Dem SELinux-Benutzer webadm gestatten, nicht privilegierte "
+-#~ "Benutzerverzeichnisse zu verwalten"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Dem SELinux-Benutzer webadm gestatten, nicht privilegierte "
+-#~ "Benutzerverzeichnisse zu lesen"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "Möchten Sie %s '%s' wirklich löschen?"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Delete %s"
+-#~ msgstr "%s löschen"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Add %s"
+-#~ msgstr "Hinzufügen von %s"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "%s Ã¤ndern"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Permissive"
+-#~ msgstr "Permissive"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Enforcing"
+-#~ msgstr "Enforcing"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Wenn der Richtlinientyp geändert wird, muss beim nächsten Neustart das "
+-#~ "vollständige Dateisystem neu beschriftet werden. Das Neubeschriften wird, "
+-#~ "je nach Grösse des Dateisystems, sehr lange dauern. Wollen Sie fortfahren?"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Das Deaktivieren von SELinux erfordert einen Neustart. Es wird nicht "
+-#~ "empfohlen. Falls Sie nachträglich entscheiden, SELinux wieder zu "
+-#~ "aktivieren, muss das System neu gekennzeichnet werden. Falls Sie nur "
+-#~ "überprüfen möchten, ob SELinux ein Problem auf Ihrem System verursacht, "
+-#~ "können Sie in den 'permissive' Modus wechseln, in dem Fehler lediglich "
+-#~ "protokolliert, die SELinux-Richtlinien jedoch nicht erzwungen werden. Der "
+-#~ "'permissive' Modus erfordert keinen Neustart. Möchten Sie fortfahren?"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Das Aktivieren von SELinux führt eine komplette Neu-Kennzeichnung des "
+-#~ "gesamten Dateisystems beim nächsten Neustart nach sich. Das Neu-"
+-#~ "Kennzeichnen dauert sehr lange, abhängig von der Grösse des Dateisystems. "
+-#~ "Möchten Sie fortfahren?"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Wählen Sie aus:</b>"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "Add"
+-#~ msgstr "Hinzufügen"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "Dateikontext hinzufügen"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "Netzwerk-Port hinzufügen"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux Login-Zuweisung hinzufügen"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux Netzwerk-Ports hinzufügen"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux-Benutzer hinzufügen"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux Benutzerzuweisung hinzufügen"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "Ãœbersetzung hinzufügen"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "Derzeitiger Enforcing-Modus"
+-
+-#~ msgid "Delete File Context"
+-#~ msgstr "Dateikontext löschen"
+-
+-#~ msgid "Delete Network Port"
+-#~ msgstr "Netzwerk-Port löschen"
+-
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux-Benutzerzuordnung löschen"
+-
+-#~ msgid "Delete Translation"
+-#~ msgstr "Ãœbersetzung löschen"
+-
+-#~ msgid ""
+-#~ "Disabled\n"
+-#~ "Permissive\n"
+-#~ "Enforcing\n"
+-#~ msgstr ""
+-#~ "Deaktiviert\n"
+-#~ "Permissive\n"
+-#~ "Enforcing\n"
+-
+-#~ msgid "Edit Network Port"
+-#~ msgstr "Netzwerk-Port bearbeiten"
+-
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "Zusätzliche Prüfregeln aktivieren/deaktivieren, die normalerweise nicht "
+-#~ "in den Protokolldateien erscheinen."
+-
+-#~ msgid "File Specification"
+-#~ msgstr "Dateispezifikation"
+-
+-#~ msgid "File Type"
+-#~ msgstr "Dateityp"
+-
+-#~ msgid "Filter"
+-#~ msgstr "Filter"
+-
+-#~ msgid "Generate new policy module"
+-#~ msgstr "Neues Richtlinienmodul generieren"
+-
+-#~ msgid "Load policy module"
+-#~ msgstr "Richtlinienmodul laden"
+-
+-#~ msgid "Lockdown..."
+-#~ msgstr "Abriegelung..."
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Modify File Context"
+-#~ msgstr "Datei-Kontext Ã¤ndern"
+-
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux-Benutzer modifizieren"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux-Benutzer Benutzerzuordnung"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "Ãœbersetzung bearbeiten"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Beim nächsten Neustart neu kennzeichnen."
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "Ladbares Richtlinienmodul entfernen"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr ""
+-#~ "Boolsche Einstellungen auf Standardeinstellungen des Systems zurücksetzen"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#~ msgid "Run booleans lockdown wizard"
+-#~ msgstr "Führe Boolean Abrieglungs-Konfigurationsassistenten aus"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux-Administration"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux-Typ"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "Management-Objekt auswählen"
+-
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "Wählen Sie aus, ob Sie das gesamte Dateisystem beim nächsten Neustart neu "
+-#~ "kennzeichnen möchten. Das Neu-Kennzeichnen kann sehr lange dauern, "
+-#~ "abhängig von der Grösse des Systems. Falls Sie die Richtlinientypen "
+-#~ "ändern oder vom Zustand 'disabled' zu 'enforcing' wechseln, ist eine Neu-"
+-#~ "Kennzeichnung erforderlich."
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "Standard-Enforcing-Modus des Systems"
+-
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "Systemstandard-Richtlinientyp: "
+-
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "Zwischen 'Angepasst' und 'Alles Boolsche Werte' auswählen"
+-
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "Zwischen 'Angepasst' und 'Alle Ports' auswählen"
+-
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "Zwischen 'Alles' oder 'Angepasstem Dateikontext' auswählen"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "_Löschen"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "_Einstellungen"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "alle Dateien\n"
+-#~ "reguläre Datei\n"
+-#~ "Verzeichnis\n"
+-#~ "Zeichengerät\n"
+-#~ "Blockgerät\n"
+-#~ "Socket\n"
+-#~ "symbolischer Link\n"
+-#~ "Named-Pipe\n"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "Empfindlichkeitsstufe"
+-
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux-Benutzer '%s' wird benötigt"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/el.po b/policycoreutils/po/el.po
+index a86ac32..63b5522 100644
+--- a/policycoreutils/po/el.po
++++ b/policycoreutils/po/el.po
+@@ -1,23 +1,25 @@
+-# translation of el.po to Greek
++# SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ #
+-# Simos Xenitellis <simos@gnome.org>, 2006.
++# Translators:
+ # Dimitris Glezos <dimitris@glezos.com>, 2006.
++# Nikos Charonitakis <nikcha@ovi.com>, 2010.
++# Simos Xenitellis <simos@gnome.org>, 2006.
++# Thalia Papoutsaki <saliyath@gmail.com>, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: el\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2006-09-18 14:49+0100\n"
+-"Last-Translator: Dimitris Glezos <dimitris@glezos.com>\n"
+-"Language-Team: Greek <fedora-trans-el@redhat.com>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Greek <trans-el@lists.fedoraproject.org>\n"
+ "Language: el\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -27,16 +29,15 @@ msgid ""
+ msgstr ""
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to initialize PAM\n"
+-msgstr "Αδυναμία Î±Ïχικοποίησης Ï†Ï‰Î½ÏŽÎ½\n"
++msgstr ""
+ #: ../run_init/run_init.c:139
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to get account information\n"
+-msgstr "Αποτυχία Î¿ÏισμοϠεÏÏεσης ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…: %s."
++msgstr ""
+-# #-#-#-#-#  gdm2.gnome-2-14.el.po (el)  #-#-#-#-#
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+ msgstr "Συνθηματικό:"
+@@ -57,14 +58,14 @@ msgid "run_init: incorrect password for %s\n"
+ msgstr "run_init: Î»Î±Î½Î¸Î±ÏƒÎ¼Î­Î½Î¿ ÏƒÏ…νθηματικό Î³Î¹Î± %s\n"
+ #: ../run_init/run_init.c:309
+-#, fuzzy, c-format
++#, c-format
+ msgid "Could not open file %s\n"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατό Ï„ο Î¬Î½Î¿Î¹Î³Î¼Î± Ï„ου Î±Ïχείου"
++msgstr "Δεν Î®Ï„αν Î´Ï…νατό Ï„ο Î¬Î½Î¿Î¹Î³Î¼Î± Ï„ου Î±Ïχείου %s\n"
+ #: ../run_init/run_init.c:336
+-#, fuzzy, c-format
++#, c-format
+ msgid "No context in file %s\n"
+-msgstr "Αδυναμία Î±Î½Î¿Î¯Î³Î¼Î±Ï„ος Î±Ïχείου %s.\n"
++msgstr "Δεν Ï…πάÏχει Ï€ÎµÏιεχόμενο ÏƒÏ„ο Î±Ïχείο %s.\n"
+ #: ../run_init/run_init.c:361
+ #, c-format
+@@ -77,13 +78,13 @@ msgid "authentication failed.\n"
+ msgstr "αποτυχία Ï€Î¹ÏƒÏ„οποίησης.\n"
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, fuzzy, c-format
++#, c-format
+ msgid "Could not set exec context to %s.\n"
+-msgstr "Αδυναμία ÎµÎºÏ„έλεσης '%s': %s\n"
++msgstr ""
+ #: ../audit2allow/audit2allow:230
+ msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
++msgstr "******************** Î£Î—ΜΑÎΤΙΚΟ ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+@@ -94,28 +95,24 @@ msgid "global"
+ msgstr ""
+ #: ../semanage/seobject.py:222
+-#, fuzzy
+ msgid "Could not create semanage handle"
+-msgstr "Αδυναμία Î­Î½Î±Ïξης Î±Î»Î»Î·Î»Î¿Ï…χίας ÎºÎ±Ï„άστασης: %s"
++msgstr ""
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+ msgstr ""
+ #: ../semanage/seobject.py:235
+-#, fuzzy
+ msgid "Cannot read policy store."
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας ÏƒÏ…σκευής Î±Î½Î±Ï€Î±Ïαγωγής"
++msgstr ""
+ #: ../semanage/seobject.py:240
+-#, fuzzy
+ msgid "Could not establish semanage connection"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας ÏƒÏνδεσης ÏƒÎµ â€œ%s†."
++msgstr ""
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Αδυναμία Î±Ï€Î¿Î¸Î®ÎºÎµÏ…σης Ï†Î±ÎºÎ­Î»Î¿Ï… : %s"
++msgstr ""
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -126,35 +123,32 @@ msgid "Semanage transaction already in progress"
+ msgstr ""
+ #: ../semanage/seobject.py:264
+-#, fuzzy
+ msgid "Could not start semanage transaction"
+-msgstr "Αδυναμία Î­Î½Î±Ïξης Î±Î»Î»Î·Î»Î¿Ï…χίας ÎºÎ±Ï„άστασης: %s"
++msgstr ""
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Αδυναμία Î­Î½Î±Ïξης Î±Î»Î»Î·Î»Î¿Ï…χίας ÎºÎ±Ï„άστασης: %s"
++msgstr ""
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+ msgstr ""
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Αδυναμία ÎµÎºÎºÎ¯Î½Î·ÏƒÎ·Ï‚ Sound Juicer"
++msgstr ""
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+-msgstr ""
++msgstr "Έκδοση"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr ""
++msgstr "ΑνενεÏγό"
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -162,9 +156,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Αδυναμία Ï€Ïοσθήκης Î±Î³Î±Ï€Î·Î¼Î­Î½Î¿Ï…: %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -200,69 +194,69 @@ msgstr ""
+ #: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+ #: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+ #: ../semanage/seobject.py:2037
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create a key for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î³Î¹Î± %s"
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατό Î½Î± ÎµÎ»ÎµÎ³Ï‡Î¸ÎµÎ¯ Ï„ο Î±Ïχείο Î¼Î·Î½Ï…μάτων %s: %s"
++msgstr ""
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Ο Ï†Î¬ÎºÎµÎ»Î¿Ï‚ `%s' Î´ÎµÎ½ Ï…πάÏχει."
++msgstr "Η ÎŸÎ¼Î¬Î´Î± Linux  %s  Î´ÎµÎ½ Ï…πάÏχει"
+ #: ../semanage/seobject.py:497
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux User %s does not exist"
+-msgstr "Ο Ï†Î¬ÎºÎµÎ»Î¿Ï‚ `%s' Î´ÎµÎ½ Ï…πάÏχει."
++msgstr "Ο Ï‡Ïήστης Linux %s Î´ÎµÎ½ Ï…πάÏχει"
+ #: ../semanage/seobject.py:501
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας journal Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set name for %s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Î¼ÎµÏ„ονομασία Ï„ου Ï†Î±ÎºÎ­Î»Î¿Ï… : %s"
++msgstr ""
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr "Αδυναμία Î±Ï€Î¿Î¸Î®ÎºÎµÏ…σης Ï†Î±ÎºÎ­Î»Î¿Ï… : %s"
++msgstr ""
+ #: ../semanage/seobject.py:514
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set SELinux user for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας journal Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:518
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Ï†ÏŒÏτωση Ï„ης Ï€ÎµÏίληψης Î³Î¹Î±  %s"
++msgstr ""
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+ msgstr ""
+ #: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, fuzzy, python-format
++#, python-format
+ msgid "Login mapping for %s is not defined"
+-msgstr "η Î³ÏαμματοσειÏά %d Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί\n"
++msgstr ""
+ #: ../semanage/seobject.py:563
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query seuser for %s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Ï†ÏŒÏτωση Ï„ης Ï€ÎµÏίληψης Î³Î¹Î±  %s"
++msgstr ""
+ #: ../semanage/seobject.py:577
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr "Δεν ÎµÎ¯Î½Î±Î¹ Î´Ï…νατή Î· Î±Î½Î¬Î³Î½Ï‰ÏƒÎ· Ï€Î»Î·ÏοφοÏιών ÏƒÏ…μβολικοϠδεσμοϠγια %s"
++msgstr ""
+ #: ../semanage/seobject.py:611
+ #, python-format
+@@ -270,97 +264,98 @@ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+ msgstr ""
+ #: ../semanage/seobject.py:615
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας journal Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+-#, fuzzy
+ msgid "Could not list login mappings"
+-msgstr "Αποτυχία Î´Î·Î¼Î¹Î¿Ï…Ïγίας Î´ÎµÏƒÎ¼Î¿Ï ÏƒÏ„ο pipeline"
++msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-#, fuzzy
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "ΧÏειάζεται Î­Î½Î±Ï‚ Î´Î¹Î¿Ïγανωτής."
++msgstr "ΧÏήστης SELinux"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+ #: ../semanage/seobject.py:860
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if SELinux user %s is defined"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατό Î½Î± ÎµÎ»ÎµÎ³Ï‡Î¸ÎµÎ¯ Ï„ο Î±Ïχείο Î¼Î·Î½Ï…μάτων %s: %s"
++msgstr "Δεν Î®Ï„αν Î´Ï…νατό Î½Î± ÎµÎ»ÎµÎ³Ï‡Î¸ÎµÎ¯ Î±Î½ Î¿ Ï‡Ïήστης SELinux %s Î­Ï‡ÎµÎ¹ ÎºÎ±Î¸Î¿Ïιστεί"
+ #: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+ #: ../semanage/seobject.py:866
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query user for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας journal Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Αδυναμία Ï†ÏŒÏτωσης ÎµÎ¹ÎºÎ¿Î½Î¹Î´Î¯Î¿Ï… Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:737
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create SELinux user for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας journal Î³Î¹Î± %s"
++msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας Ï‡Ïήστη SELinux Î³Î¹Î± %s"
+ #: ../semanage/seobject.py:746
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add role %s for %s"
+-msgstr "Αδυναμία Ï€Ïοσθήκης Î±Î³Î±Ï€Î·Î¼Î­Î½Î¿Ï…: %s"
++msgstr ""
+-#
+ #: ../semanage/seobject.py:755
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set MLS level for %s"
+-msgstr "Αποτυχία ÏÏθμισης Ï„ων Î´Î¹Î±Ï€Î¹ÏƒÏ„ευτηÏίων Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:758
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr "Αδυναμία Ï€Ïοσθήκης Î±Î³Î±Ï€Î·Î¼Î­Î½Î¿Ï…: %s"
++msgstr ""
+ #: ../semanage/seobject.py:761
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not extract key for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:765
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add SELinux user %s"
+-msgstr "Αδυναμία Ï€Ïοσθήκης Î±Î³Î±Ï€Î·Î¼Î­Î½Î¿Ï…: %s"
++msgstr ""
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+ msgstr ""
+ #: ../semanage/seobject.py:789
+-#, fuzzy
+ msgid "Requires prefix or roles"
+-msgstr "_ΑπαιτοÏμενα Î¬Ï„ομα"
++msgstr ""
+ #: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, fuzzy, python-format
++#, python-format
+ msgid "SELinux user %s is not defined"
+-msgstr "η Î³ÏαμματοσειÏά %d Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί\n"
++msgstr "Ο Ï‡Ïήστης SELinux %s Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί"
+ #: ../semanage/seobject.py:828
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify SELinux user %s"
+-msgstr "Αδυναμία Ï†ÏŒÏτωσης ÎµÎ¹ÎºÎ¿Î½Î¹Î´Î¯Î¿Ï… \"%s\": %s\n"
++msgstr ""
+ #: ../semanage/seobject.py:862
+ #, python-format
+@@ -368,19 +363,18 @@ msgid "SELinux user %s is defined in policy, cannot be deleted"
+ msgstr ""
+ #: ../semanage/seobject.py:873
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete SELinux user %s"
+-msgstr "Αδυναμία ÎµÎ½ÎµÏγοποίησης Ï„ης Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ %s"
++msgstr ""
+ #: ../semanage/seobject.py:911
+-#, fuzzy
+ msgid "Could not list SELinux users"
+-msgstr "Αδυναμία ÎµÎºÎºÎ¯Î½Î·ÏƒÎ·Ï‚ Sound Juicer"
++msgstr ""
+ #: ../semanage/seobject.py:917
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not list roles for user %s"
+-msgstr "Αδυναμία Î±Ï€Î¿Î¸Î®ÎºÎµÏ…σης Ï†Î±ÎºÎ­Î»Î¿Ï… : %s"
++msgstr ""
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+@@ -388,11 +382,11 @@ msgstr ""
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+-msgstr ""
++msgstr "MLS/"
+ #: ../semanage/seobject.py:943
+ msgid "Prefix"
+-msgstr ""
++msgstr "Prefix"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Level"
+@@ -403,84 +397,81 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+ #: ../semanage/seobject.py:963
+-#, fuzzy
+ msgid "Protocol udp or tcp is required"
+-msgstr "Δεν Ï…ποστηÏίζεται Ï„ο Ï€Ïωτόκολλο"
++msgstr ""
+ #: ../semanage/seobject.py:965
+-#, fuzzy
+ msgid "Port is required"
+-msgstr "Απαιτείται ÎºÏ‰Î´Î¹ÎºÏŒÏ‚."
++msgstr ""
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Μη Î­Î³ÎºÏ…Ïη Ï„ιμή VGA"
++msgstr ""
+ #: ../semanage/seobject.py:979
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create a key for %s/%s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:990
+-#, fuzzy
+ msgid "Type is required"
+-msgstr "Απαιτείται Ï€Î»Î·Ïωμή"
++msgstr ""
+ #: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+ #: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if port %s/%s is defined"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατό Î½Î± ÎµÎ»ÎµÎ³Ï‡Î¸ÎµÎ¯ Ï„ο Î±Ïχείο Î¼Î·Î½Ï…μάτων %s: %s"
++msgstr ""
+ #: ../semanage/seobject.py:998
+-#, fuzzy, python-format
++#, python-format
+ msgid "Port %s/%s already defined"
+-msgstr "Constant \"%s\" Î­Ï‡ÎµÎ¹ Î®Î´Î· ÎºÎ±Î¸Î¿Ïισθεί"
++msgstr ""
+ #: ../semanage/seobject.py:1002
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create port for %s/%s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας journal Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1008
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create context for %s/%s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1012
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in port context for %s/%s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατό Ï„ο ÎºÎ»ÎµÎ¯ÏƒÎ¹Î¼Î¿ Ï„ου Ï†Î±ÎºÎ­Î»Î¿Ï… Ï€Î·Î³Î®Ï‚ %s: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1016
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in port context for %s/%s"
+-msgstr "Δεν ÎµÎ¯Î½Î±Î¹ Î´Ï…νατή Î· Î±Î½Î¬Î³Î½Ï‰ÏƒÎ· Ï€Î»Î·ÏοφοÏιών ÏƒÏ…μβολικοϠδεσμοϠγια %s"
++msgstr ""
+ #: ../semanage/seobject.py:1020
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in port context for %s/%s"
+-msgstr "Αδυναμία ÏƒÏ…γχÏονισμοϠφακέλου spool %s: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1025
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Î´Î·Î¼Î¹Î¿Ï…Ïγία Î±Ïχείου ÎºÎ»ÎµÎ¹Î´ÏŽÎ¼Î±Ï„ος Î³Î¹Î± %s: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1029
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set port context for %s/%s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατό Ï„ο ÎºÎ»ÎµÎ¯ÏƒÎ¹Î¼Î¿ Ï„ου Ï†Î±ÎºÎ­Î»Î¿Ï… Ï€Î·Î³Î®Ï‚ %s: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1033
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add port %s/%s"
+-msgstr "Αδυναμία Ï€Ïοσθήκης Î±Î³Î±Ï€Î·Î¼Î­Î½Î¿Ï…: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+ #: ../semanage/seobject.py:1508
+@@ -488,34 +479,32 @@ msgid "Requires setype or serange"
+ msgstr ""
+ #: ../semanage/seobject.py:1049
+-#, fuzzy
+ msgid "Requires setype"
+-msgstr "_ΑπαιτοÏμενα Î¬Ï„ομα"
++msgstr ""
+ #: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, fuzzy, python-format
++#, python-format
+ msgid "Port %s/%s is not defined"
+-msgstr "η Î³ÏαμματοσειÏά %d Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί\n"
++msgstr ""
+ #: ../semanage/seobject.py:1061
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query port %s/%s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Ï†ÏŒÏτωση Ï„ης Ï€ÎµÏίληψης Î³Î¹Î±  %s"
++msgstr ""
+ #: ../semanage/seobject.py:1072
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify port %s/%s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Î´Î¹ÎºÏάνωση: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "Αδυναμία Î±Ï€Î¿Î¸Î®ÎºÎµÏ…σης Ï†Î±ÎºÎ­Î»Î¿Ï… : %s"
++msgstr ""
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Î´Î¹Î±Î³Ïαφή Ï„ου Ï†Î±ÎºÎ­Î»Î¿Ï… `%s': %s"
++msgstr ""
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -523,14 +512,13 @@ msgid "Port %s/%s is defined in policy, cannot be deleted"
+ msgstr ""
+ #: ../semanage/seobject.py:1122
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete port %s/%s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Î´Î¹Î±Î³Ïαφή Ï„ου Ï†Î±ÎºÎ­Î»Î¿Ï… `%s': %s"
++msgstr ""
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-#, fuzzy
+ msgid "Could not list ports"
+-msgstr "Αδυναμία Î±Ï€Î¿Î¸Î®ÎºÎµÏ…σης Ï†Î±ÎºÎ­Î»Î¿Ï… : %s"
++msgstr ""
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+@@ -540,186 +528,176 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Απαιτείται ÎºÏ‰Î´Î¹ÎºÏŒÏ‚."
++msgstr ""
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "άγνωστο Î® Ï‡Î±Î¼Î­Î½Î¿ Ï€Ïωτόκολλο"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+-#, fuzzy
+ msgid "SELinux Type is required"
+-msgstr "ΧÏειάζεται Î­Î½Î±Ï‚ Î´Î¹Î¿Ïγανωτής."
++msgstr ""
+ #: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+ #: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+ #: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+ #: ../semanage/seobject.py:1728
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create key for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατό Î½Î± ÎµÎ»ÎµÎ³Ï‡Î¸ÎµÎ¯ Ï„ο Î±Ïχείο Î¼Î·Î½Ï…μάτων %s: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create context for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Î¼ÎµÏ„ονομασία Ï„ου Ï†Î±ÎºÎ­Î»Î¿Ï… : %s"
++msgstr ""
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Αδυναμία Î±Î½Î±Î³Î½ÏŽÏισης Ï„Ïπου Î±Ïχείου %s"
++msgstr ""
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Αδυναμία Î±Î½Î±Î³Î½ÏŽÏισης Ï„Ïπου Î±Ïχείου %s"
++msgstr ""
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Αδυναμία Î±Ï€Î¿Î¸Î®ÎºÎµÏ…σης Ï„ου Î±Ïχείου  %s."
++msgstr ""
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Δεν ÎµÎ¯Î½Î±Î¹ Î´Ï…νατή Î· Î±Î½Î¬Î³Î½Ï‰ÏƒÎ· Ï€Î»Î·ÏοφοÏιών ÏƒÏ…μβολικοϠδεσμοϠγια %s"
++msgstr ""
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Αδυναμία Ï€Ïοσθήκης Î±Î³Î±Ï€Î·Î¼Î­Î½Î¿Ï…: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "η Î³ÏαμματοσειÏά %d Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί\n"
++msgstr ""
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Ï†ÏŒÏτωση Ï„ης Ï€ÎµÏίληψης Î³Î¹Î±  %s"
++msgstr ""
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Î´Î¹ÎºÏάνωση: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Οι Ï†Î¬ÎºÎµÎ»Î¿Î¹ spool Î´Îµ Î¼Ï€Î¿ÏοÏν Î½Î± Î´Î¹Î±Î³ÏαφοÏν"
++msgstr ""
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Αδυναμία ÎµÎ½ÎµÏγοποίησης Ï„ης Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ %s"
++msgstr ""
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας journal Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Αδυναμία Î±Ï€Î¿Î¸Î®ÎºÎµÏ…σης Ï†Î±ÎºÎ­Î»Î¿Ï… : %s"
++msgstr ""
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if interface %s is defined"
+-msgstr "Αδυναμία ÏƒÏνδεσης ÏƒÏ„ο Ï€ÎµÏιβάλλον Ï‡Ïήσης '%s'"
++msgstr ""
+ #: ../semanage/seobject.py:1461
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create interface for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1470
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "Αδυναμία Î±Î½Î¬Î»Ï…σης Î¿Î½ÏŒÎ¼Î±Ï„ος Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ Î±Ï€ÏŒ  '%s'"
++msgstr ""
+ #: ../semanage/seobject.py:1474
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "Αδυναμία Î±Î½Î¬Î»Ï…σης Î¿Î½ÏŒÎ¼Î±Ï„ος Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ Î±Ï€ÏŒ  '%s'"
++msgstr ""
+ #: ../semanage/seobject.py:1478
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "Αδυναμία Î±Î½Î¬Î»Ï…σης Î¿Î½ÏŒÎ¼Î±Ï„ος Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ Î±Ï€ÏŒ  '%s'"
++msgstr ""
+ #: ../semanage/seobject.py:1483
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr "Αδυναμία Î±Î½Î¬Î»Ï…σης Î¿Î½ÏŒÎ¼Î±Ï„ος Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ Î±Ï€ÏŒ  '%s'"
++msgstr ""
+ #: ../semanage/seobject.py:1487
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set interface context for %s"
+-msgstr "Αδυναμία Î±Î½Î¬Î»Ï…σης Î¿Î½ÏŒÎ¼Î±Ï„ος Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ Î±Ï€ÏŒ  '%s'"
++msgstr ""
+ #: ../semanage/seobject.py:1491
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set message context for %s"
+-msgstr "Δεν ÎµÎ¯Î½Î±Î¹ Î´Ï…νατή Î· Î±Ï€Î¿ÏƒÏ„ολή Ï„ου Î¼Î·Î½Ïματος : %s"
++msgstr ""
+ #: ../semanage/seobject.py:1495
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add interface %s"
+-msgstr "Αδυναμία ÎµÎ½ÎµÏγοποίησης Ï„ης Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ %s"
++msgstr ""
+ #: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, fuzzy, python-format
++#, python-format
+ msgid "Interface %s is not defined"
+-msgstr "η Î³ÏαμματοσειÏά %d Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί\n"
++msgstr ""
+ #: ../semanage/seobject.py:1522
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query interface %s"
+-msgstr "Αδυναμία ÎµÎ½ÎµÏγοποίησης Ï„ης Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ %s"
++msgstr ""
+ #: ../semanage/seobject.py:1533
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify interface %s"
+ msgstr ""
+-"#-#-#-#-#  gnome-control-center.gnome-2-14.el.po (el)  #-#-#-#-#\n"
+-"Αδυναμία Ï†ÏŒÏτωσης Ï„ης ÎºÏÏιας ÎµÏ€Î¹Ï†Î¬Î½ÎµÎ¹Î±Ï‚ Ï‡Ïήστη\n"
+-"#-#-#-#-#  gnome-screensaver.gnome-2-14.el.po (el)  #-#-#-#-#\n"
+-"Αδυναμία Ï†ÏŒÏτωση Ï„ης ÎºÏÏιας ÎµÏ€Î¹Ï†Î¬Î½ÎµÎ¹Î±Ï‚ Ï‡Ïήσης\n"
+-"#-#-#-#-#  gnome-volume-manager.HEAD.el.po (el)  #-#-#-#-#\n"
+-"Αδυναμία Ï†ÏŒÏτωσης ÎºÏÏιας Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+@@ -727,32 +705,30 @@ msgid "Interface %s is defined in policy, cannot be deleted"
+ msgstr ""
+ #: ../semanage/seobject.py:1562
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete interface %s"
+-msgstr "Αδυναμία ÎµÎ½ÎµÏγοποίησης Ï„ης Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ %s"
++msgstr ""
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Αδυναμία ÎµÎ½ÎµÏγοποίησης Ï„ης Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+-#, fuzzy
+ msgid "Could not list interfaces"
+-msgstr "Αδυναμία ÎµÎ½ÎµÏγοποίησης Ï„ης Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ %s"
++msgstr ""
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+-msgstr ""
++msgstr "ΠεÏιβάλλον SELinux"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+ msgstr ""
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Constant \"%s\" Î­Ï‡ÎµÎ¹ Î®Î´Î· ÎºÎ±Î¸Î¿Ïισθεί"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -760,24 +736,24 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Ο Ï†Î¬ÎºÎµÎ»Î¿Ï‚ `%s' Î´ÎµÎ½ Ï…πάÏχει."
++msgstr ""
+ #: ../semanage/seobject.py:1692
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "Αδυναμία Î±Î½Î±Î³Î½ÏŽÏισης Ï„Ïπου Î±Ïχείου %s"
++msgstr ""
+ #: ../semanage/seobject.py:1696
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "Αδυναμία Î±Î½Î±Î³Î½ÏŽÏισης Ï„Ïπου Î±Ïχείου %s"
++msgstr ""
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "Δεν ÎµÎ¯Î½Î±Î¹ Î´Ï…νατή Î· Î±Î½Î¬Î³Î½Ï‰ÏƒÎ· Ï€Î»Î·ÏοφοÏιών ÏƒÏ…μβολικοϠδεσμοϠγια %s"
++msgstr ""
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+@@ -796,60 +772,58 @@ msgstr ""
+ #: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+ #: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+ #: ../semanage/seobject.py:1876
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατό Î½Î± ÎµÎ»ÎµÎ³Ï‡Î¸ÎµÎ¯ Ï„ο Î±Ïχείο Î¼Î·Î½Ï…μάτων %s: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1745
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create file context for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1753
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "Αδυναμία Î±Ï€Î¿Î¸Î®ÎºÎµÏ…σης Ï„ου Î±Ïχείου  %s."
++msgstr ""
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set file context for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1767
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add file context for %s"
+-msgstr "Αδυναμία Ï†ÏŒÏτωσης ÎµÎ¹ÎºÎ¿Î½Î¹Î´Î¯Î¿Ï… Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+ msgstr ""
+ #: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, fuzzy, python-format
++#, python-format
+ msgid "File context for %s is not defined"
+-msgstr "η Î³ÏαμματοσειÏά %d Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί\n"
++msgstr ""
+ #: ../semanage/seobject.py:1800
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query file context for %s"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1826
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify file context for %s"
+-msgstr "Αδυναμία Ï†ÏŒÏτωσης ÎµÎ¹ÎºÎ¿Î½Î¹Î´Î¯Î¿Ï… Î³Î¹Î± %s"
++msgstr ""
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Αδυναμία Ï€Ïοβολής Ï€ÎµÏιεχομένου."
++msgstr ""
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+ msgstr ""
+-"Δεν Î®Ï„αν Î´Ï…νατή Î· Î´Î¹Î±Î³Ïαφή Ï„ου Î±Ïχείου Ï€ÎµÏιεχομένων Ï„ου Ï†Î±ÎºÎ­Î»Î¿Ï… `%s': %s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -857,28 +831,25 @@ msgid "File context for %s is defined in policy, cannot be deleted"
+ msgstr ""
+ #: ../semanage/seobject.py:1884
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete file context for %s"
+ msgstr ""
+-"Δεν Î®Ï„αν Î´Ï…νατή Î· Î´Î¹Î±Î³Ïαφή Ï„ου Î±Ïχείου Ï€ÎµÏιεχομένων Ï„ου Ï†Î±ÎºÎ­Î»Î¿Ï… `%s': %s"
+ #: ../semanage/seobject.py:1899
+-#, fuzzy
+ msgid "Could not list file contexts"
+-msgstr "Αδυναμία Ï€Ïοβολής Ï€ÎµÏιεχομένου."
++msgstr ""
+ #: ../semanage/seobject.py:1903
+-#, fuzzy
+ msgid "Could not list local file contexts"
+-msgstr "Αδυναμία Ï€Ïοβολής Ï€ÎµÏιεχομένου."
++msgstr ""
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+-msgstr ""
++msgstr "SELinux fcontext"
+ #: ../semanage/seobject.py:1936
+ msgid "type"
+-msgstr ""
++msgstr "Ï„Ïπος"
+ #: ../semanage/seobject.py:1949
+ msgid ""
+@@ -894,34 +865,34 @@ msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if boolean %s is defined"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατό Î½Î± ÎµÎ»ÎµÎ³Ï‡Î¸ÎµÎ¯ Ï„ο Î±Ïχείο Î¼Î·Î½Ï…μάτων %s: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, fuzzy, python-format
++#, python-format
+ msgid "Boolean %s is not defined"
+-msgstr "η Î³ÏαμματοσειÏά %d Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί\n"
++msgstr ""
+ #: ../semanage/seobject.py:1994
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query file context %s"
+-msgstr "Δεν ÎµÎ¯Î½Î±Î¹ Î´Ï…νατό Ï„ο Î¬Î½Î¿Î¹Î³Î¼Î± Ï„ου Î±Ïχείου: %s: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Θα Ï€Ïέπει Î½Î± ÎºÎ±Î¸Î¿Ïίσετε Î­Î½Î± Î¼Î¿Ï„ίβο"
++msgstr ""
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Î´Î¹Î±Î³Ïαφή Ï„ου Ï†Î±ÎºÎ­Î»Î¿Ï… `%s': %s"
++msgstr ""
+ #: ../semanage/seobject.py:2007
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify boolean %s"
+-msgstr "Αδυναμία Î±Î½Î¿Î¯Î³Î¼Î±Ï„ος \"%s\""
++msgstr ""
+ #: ../semanage/seobject.py:2025
+ #, python-format
+@@ -929,23 +900,22 @@ msgid "Bad format %s: Record %s"
+ msgstr ""
+ #: ../semanage/seobject.py:2048
+-#, fuzzy, python-format
++#, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr "Οι Ï†Î¬ÎºÎµÎ»Î¿Î¹ spool Î´Îµ Î¼Ï€Î¿ÏοÏν Î½Î± Î´Î¹Î±Î³ÏαφοÏν"
++msgstr ""
+ #: ../semanage/seobject.py:2052
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete boolean %s"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Î´Î¹Î±Î³Ïαφή Ï„ου Ï†Î±ÎºÎ­Î»Î¿Ï… `%s': %s"
++msgstr ""
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-#, fuzzy
+ msgid "Could not list booleans"
+-msgstr "Αδυναμία Î±Ï€Î¿Î¸Î®ÎºÎµÏ…σης Ï†Î±ÎºÎ­Î»Î¿Ï… : %s"
++msgstr ""
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "άγνωστο"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+@@ -957,7 +927,7 @@ msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr ""
++msgstr "SELinux boolean"
+ #: ../semanage/seobject.py:2131
+ msgid "State"
+@@ -967,15 +937,15 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "ΠεÏιγÏαφή"
+-#
+ #: ../newrole/newrole.c:201
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to set PAM_TTY\n"
+-msgstr "Αποτυχία Î¿Ïίσματος Ï„ου PAM_TTY=%s"
++msgstr ""
+ #: ../newrole/newrole.c:290
+ #, c-format
+@@ -993,9 +963,9 @@ msgid "cannot find valid entry in the passwd file.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:450
+-#, fuzzy, c-format
++#, c-format
+ msgid "Out of memory!\n"
+-msgstr "Η Î¼Î½Î®Î¼Î· ÎµÎ¾Î±Î½Ï„λήθηκε"
++msgstr "ΑνεπάÏκεια Î¼Î½Î®Î¼Î·Ï‚!\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+@@ -1007,59 +977,55 @@ msgstr ""
+ msgid "Unable to clear environment\n"
+ msgstr ""
+-#
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error changing uid, aborting.\n"
+-msgstr "Σφάλμα ÏƒÏ„ην Î±Î½Î¬Î³Î½Ï‰ÏƒÎ·... Î¼Î±Ï„αίωση"
++msgstr ""
+ #: ../newrole/newrole.c:612
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr "Σφάλμα Î´Î¹Î±Î³Ïαφής ÎµÎ¹ÎºÏŒÎ½Î±Ï‚ boot"
++msgstr ""
+ #: ../newrole/newrole.c:635
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error connecting to audit system.\n"
+-msgstr "Σφάλμα ÎµÎ³Î³Ïαφής ÏƒÏ„ο Î´Î¯ÏƒÎºÎ¿"
++msgstr ""
+ #: ../newrole/newrole.c:641
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error allocating memory.\n"
+-msgstr "Σφάλμα Ï†ÏŒÏτωσης Î»Î¯ÏƒÏ„ας memo"
++msgstr ""
+ #: ../newrole/newrole.c:648
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error sending audit message.\n"
+-msgstr "Σφάλμα Î±Î½Î¬ÎºÏ„ησης Î¼Î·Î½Ïματος"
++msgstr ""
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, fuzzy, c-format
++#, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr "ΑδÏνατος Î¿ Ï€ÏοσδιοÏισμός Ï„ης Ï„Ïέχουσας Î³ÎµÏ‰Î¼ÎµÏ„Ïίας Î´Î¹ÏƒÎºÎ­Ï„ας."
++msgstr ""
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+ msgstr "Σφάλμα! Î‘δυναμία Î±Î½Î¿Î¯Î³Î¼Î±Ï„ος %s.\n"
+-#
+ #: ../newrole/newrole.c:705
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr "%s: Î‘ποτυχία Î´Î·Î¼Î¹Î¿Ï…Ïγίας Ï€ÎµÏιβάλλοντος Î³Î¹Î± %s. Î”ιακοπή."
++msgstr ""
+-#
+ #: ../newrole/newrole.c:715
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr "%s: Î‘ποτυχία Î´Î·Î¼Î¹Î¿Ï…Ïγίας Ï€ÎµÏιβάλλοντος Î³Î¹Î± %s. Î”ιακοπή."
++msgstr ""
+-#
+ #: ../newrole/newrole.c:725
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr "%s: Î‘ποτυχία Î´Î·Î¼Î¹Î¿Ï…Ïγίας Î½Î­Î¿Ï… Î±Ïχείου cookie ÏƒÎµ %s"
++msgstr ""
+ #: ../newrole/newrole.c:772
+ #, c-format
+@@ -1067,14 +1033,14 @@ msgid "%s changed labels.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:778
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας cache Î³Î¹Î± %s"
++msgstr ""
+ #: ../newrole/newrole.c:835
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error: multiple roles specified\n"
+-msgstr "Îα ÎµÏ€Î¹Ï„Ïέπεται Î· ÎµÏ€Î¹Î»Î¿Î³Î® Ï€Î¿Î»Î»Î±Ï€Î»ÏŽÎ½ Î³Ïαμμών"
++msgstr ""
+ #: ../newrole/newrole.c:843
+ #, c-format
+@@ -1097,24 +1063,24 @@ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+ msgstr ""
+ #: ../newrole/newrole.c:891
+-#, fuzzy, c-format
++#, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατή Î· Î»Î®ÏˆÎ· Î¼Î·Î½Ïματος"
++msgstr ""
+ #: ../newrole/newrole.c:901
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to get new context.\n"
+-msgstr "Αποτυχία Î¿ÏισμοϠεÏÏεσης ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…: %s."
++msgstr ""
+ #: ../newrole/newrole.c:908
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to set new role %s\n"
+-msgstr "Αποτυχία Î¿ÏισμοϠτιμής: %s."
++msgstr ""
+ #: ../newrole/newrole.c:915
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to set new type %s\n"
+-msgstr "Αποτυχία Î¿ÏισμοϠεÏÏεσης ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…: %s."
++msgstr ""
+ #: ../newrole/newrole.c:925
+ #, c-format
+@@ -1122,19 +1088,19 @@ msgid "failed to build new range with level %s\n"
+ msgstr ""
+ #: ../newrole/newrole.c:930
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to set new range %s\n"
+-msgstr "Αποτυχία Î¿ÏισμοϠγλώσσας: %s."
++msgstr ""
+ #: ../newrole/newrole.c:938
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to convert new context to string\n"
+-msgstr "αποτυχία Î±Ï€Î¿ÏƒÏ„ολής ÎµÏ€ÏŒÎ¼ÎµÎ½Î¿Ï… Î±Î»Ï†Î±ÏιθμητικοϠ\"%s\" ÏƒÏ„ην Î¿Î¼Î¹Î»Î¯Î±"
++msgstr ""
+ #: ../newrole/newrole.c:943
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s is not a valid context\n"
+-msgstr "Το %s Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ Î­Î³ÎºÏ…Ïη Ï„οποθεσία"
++msgstr ""
+ #: ../newrole/newrole.c:950
+ #, c-format
+@@ -1157,14 +1123,14 @@ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:1070
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to get old_context.\n"
+-msgstr "Αποτυχία Î¿ÏισμοϠαÏίθμησης: %s."
++msgstr ""
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Αδυναμία Î±Î½Î¬ÎºÏ„ησης Î´ÎµÎ´Î¿Î¼Î­Î½Ï‰Î½ Î¼ÎµÏ„οχών."
++msgstr ""
+ #: ../newrole/newrole.c:1098
+ #, c-format
+@@ -1172,9 +1138,9 @@ msgid "error on reading PAM service configuration.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:1133
+-#, fuzzy, c-format
++#, c-format
+ msgid "newrole: incorrect password for %s\n"
+-msgstr "Εισάγετε ÏƒÏ…νθηματικό Î³Î¹Î± %s"
++msgstr ""
+ #: ../newrole/newrole.c:1160
+ #, c-format
+@@ -1187,19 +1153,19 @@ msgid "Unable to restore tty label...\n"
+ msgstr ""
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, fuzzy, c-format
++#, c-format
+ msgid "Failed to close tty properly\n"
+-msgstr "Αποτυχία Î¿ÏισμοϠεÏÏεσης ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…: %s."
++msgstr ""
+ #: ../newrole/newrole.c:1224
+-#, fuzzy, c-format
++#, c-format
+ msgid "Could not close descriptors.\n"
+-msgstr "Δεν Î®Ï„αν Î´Ï…νατό Ï„ο ÎºÎ»ÎµÎ¯ÏƒÎ¹Î¼Î¿ Ï„ου Ï€ÏοσωÏινοϠφακέλου:%s"
++msgstr ""
+ #: ../newrole/newrole.c:1251
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error allocating shell's argv0.\n"
+-msgstr "Σφάλμα Ï†ÏŒÏτωσης Î»Î¯ÏƒÏ„ας memo"
++msgstr ""
+ #: ../newrole/newrole.c:1287
+ #, c-format
+@@ -1207,14 +1173,13 @@ msgid "Unable to restore the environment, aborting\n"
+ msgstr ""
+ #: ../newrole/newrole.c:1298
+-#, fuzzy
+ msgid "failed to exec shell\n"
+-msgstr "Αποτυχία ÎµÎºÏ„έλεσης gpg: %s"
++msgstr ""
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "ΧÏήση: %s\n"
++msgstr "ΧÏήση:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+@@ -1222,19 +1187,18 @@ msgid "%s:  Policy is already loaded and initial load requested\n"
+ msgstr ""
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "(tt) %s: Î±Î´Ï…ναμία Ï†ÏŒÏτωσης Ï€Ïόσοψης: %s\n"
++msgstr ""
+ #: ../load_policy/load_policy.c:90
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr "(tt) %s: Î±Î´Ï…ναμία Ï†ÏŒÏτωσης Ï€Ïόσοψης: %s\n"
++msgstr ""
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+-#, fuzzy
+ msgid "Requires at least one category"
+-msgstr "ΑπαιτοÏμενα Î¬Ï„ομα ÎºÎ±Î¹ Î­_νας Ï€ÏŒÏος"
++msgstr ""
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+@@ -1242,16 +1206,14 @@ msgid "Can not modify sensitivity levels using '+' on %s"
+ msgstr ""
+ #: ../scripts/chcat:110
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s is already in %s"
+-msgstr "%s ÎµÎ¯Î½Î±Î¹ Î®Î´Î· ÏƒÏ„η Î»Î¯ÏƒÏ„α"
++msgstr "%s ÎµÎ¯Î½Î±Î¹ Î®Î´Î· ÏƒÏ„ο %s"
+-# #-#-#-#-#  nautilus.gnome-2-14.el.po (el)  #-#-#-#-#
+-#
+ #: ../scripts/chcat:188 ../scripts/chcat:198
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s is not in %s"
+-msgstr "%s ÏƒÎµ %s"
++msgstr ""
+ #: ../scripts/chcat:267 ../scripts/chcat:272
+ msgid "Can not combine +/- with other types of categories"
+@@ -1292,9 +1254,9 @@ msgid "Usage %s -l -d user ..."
+ msgstr ""
+ #: ../scripts/chcat:331
+-#, fuzzy, c-format
++#, c-format
+ msgid "Usage %s -L"
+-msgstr "ΧÏήση: %s\n"
++msgstr "ΧÏήση %s -L"
+ #: ../scripts/chcat:332
+ #, c-format
+@@ -1307,192 +1269,2102 @@ msgstr ""
+ #: ../scripts/chcat:334
+ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
++msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ #: ../scripts/chcat:335
+ msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
++msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, fuzzy, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+-msgstr "Σφάλμα Ï€Î¹ÏƒÏ„οποίησης: %s"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "#-#-#-#-#  epiphany.gnome-2-14.el.po (el)  #-#-#-#-#\n"
+-#~ "Δεν Ï…ποστηÏίζεται Î· ÎµÎºÏ„Ïπωση ÏƒÎµ Î±Ï…τόν Ï„ον ÎµÎºÏ„υπωτή\n"
+-#~ "#-#-#-#-#  yelp.gnome-2-14.el.po (el)  #-#-#-#-#\n"
+-#~ "Η ÎµÎºÏ„Ïπωση Î´ÎµÎ½ Ï…ποστηÏίζεται ÏƒÎµ Î±Ï…τόν Ï„ον ÎµÎºÏ„υπωτή"
+-
+-#, fuzzy
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Ο Ï†Î¬ÎºÎµÎ»Î¿Ï‚ Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ Î´Ï…νατό Î½Î± Ï€ÎµÏιέχει Ï„ο Ï‡Î±ÏακτήÏα '/'"
+-
+-#, fuzzy
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Μη Î­Î³ÎºÏ…Ïη ÏƒÏ„Ïατηγική '%s'"
+-
+-#, fuzzy
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s ÎµÎ¯Î½Î±Î¹ Î®Î´Î· ÏƒÏ„η Î»Î¯ÏƒÏ„α"
+-
+-#, fuzzy
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "η Î³ÏαμματοσειÏά %d Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί ÏƒÏ„ο postamble\n"
+-
+-#, fuzzy
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Constant \"%s\" Î­Ï‡ÎµÎ¹ Î®Î´Î· ÎºÎ±Î¸Î¿Ïισθεί"
+-
+-#, fuzzy
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "Αδυναμία Ï€Ïοσθήκης Î±Î³Î±Ï€Î·Î¼Î­Î½Î¿Ï…: %s"
+-
+-#, fuzzy
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "Constant \"%s\" Î­Ï‡ÎµÎ¹ Î®Î´Î· ÎºÎ±Î¸Î¿Ïισθεί"
+-
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Απαιτείται ÎºÏ‰Î´Î¹ÎºÏŒÏ‚."
+-
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Constant \"%s\" Î­Ï‡ÎµÎ¹ Î®Î´Î· ÎºÎ±Î¸Î¿Ïισθεί"
+-
+-#, fuzzy
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Constant \"%s\" Î­Ï‡ÎµÎ¹ Î®Î´Î· ÎºÎ±Î¸Î¿Ïισθεί"
+-
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Σφάλμα ÎºÎ±Ï„ά Ï„ην Î¿Î»Î¿ÎºÎ»Î®Ïωση Ï„ης Î¼Î¿Ïφοποίησης"
+-
+-#, fuzzy
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Σφάλμα ÎºÎ±Ï„ά Ï„ην Î¿Î»Î¿ÎºÎ»Î®Ïωση Ï„ης Î¼Î¿Ïφοποίησης"
+-
+-#, fuzzy
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Σφάλμα Î´Î¹Î±Î³Ïαφής ÎµÎ¹ÎºÏŒÎ½Î±Ï‚ boot"
+-
+-#, fuzzy
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Σφάλμα ÎºÎ±Ï„ά Ï„ην Î¿Î»Î¿ÎºÎ»Î®Ïωση Ï„ης Î¼Î¿Ïφοποίησης"
+-
+-#, fuzzy
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr ""
+-#~ "#-#-#-#-#  epiphany.gnome-2-14.el.po (el)  #-#-#-#-#\n"
+-#~ "Δεν Ï…ποστηÏίζεται Î· ÎµÎºÏ„Ïπωση ÏƒÎµ Î±Ï…τόν Ï„ον ÎµÎºÏ„υπωτή\n"
+-#~ "#-#-#-#-#  yelp.gnome-2-14.el.po (el)  #-#-#-#-#\n"
+-#~ "Η ÎµÎºÏ„Ïπωση Î´ÎµÎ½ Ï…ποστηÏίζεται ÏƒÎµ Î±Ï…τόν Ï„ον ÎµÎºÏ„υπωτή"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr "ΧÏειάζεται Î­Î½Î±Ï‚ Î´Î¹Î¿Ïγανωτής."
+-
+-#, fuzzy
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "ΧÏειάζεται Î­Î½Î±Ï‚ Î´Î¹Î¿Ïγανωτής."
+-
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Σφάλμα Î±Î½Î¬ÎºÏ„ησης Î¼Î·Î½Ïματος"
+-
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "ΠÏέπει Î½Î± ÎºÎ±Î¸Î¿Ïίσετε Î­Î½Î± ÎºÎ±Ï„άλογο."
+-
+-#, fuzzy
+-#~ msgid "You must enter a name"
+-#~ msgstr "ΠÏέπει Î½Î± ÎºÎ±Î¸Î¿Ïίσετε Î­Î½Î± ÎºÎ±Ï„άλογο."
+-
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "ΠÏέπει Î½Î± ÎºÎ±Î¸Î¿Ïίσετε Î­Î½Î± ÎºÎ±Ï„άλογο."
+-
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "η Î³ÏαμματοσειÏά %d Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί\n"
+-
+-#, fuzzy
+-#~ msgid "File Contexts file"
+-#~ msgstr "η Î³ÏαμματοσειÏά %d Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί\n"
+-
+-#, fuzzy
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "η Î³ÏαμματοσειÏά %d Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ Î¿Ïισθεί\n"
+-
+-#, fuzzy
+-#~ msgid "Compatibility"
+-#~ msgstr "Γίνεται Î±Î½Ï„ιγÏαφή Î´Î¯ÏƒÎºÎ¿Ï…"
+-
+-#, fuzzy
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Πιστοποίηση %s.\n"
+-
+-#, fuzzy
+-#~ msgid "SELinux Type"
+-#~ msgstr "ΧÏειάζεται Î­Î½Î±Ï‚ Î´Î¹Î¿Ïγανωτής."
+-
+-#, fuzzy
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Αδυναμία Ï€Ïοσθήκης Î±Î³Î±Ï€Î·Î¼Î­Î½Î¿Ï…: %s"
+-
+-#, fuzzy
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Αδυναμία Ï†ÏŒÏτωσης ÎµÎ¹ÎºÎ¿Î½Î¹Î´Î¯Î¿Ï… \"%s\": %s\n"
+-
+-#, fuzzy
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Αδυναμία ÎµÎ½ÎµÏγοποίησης Ï„ης Î´Î¹ÎµÏ€Î±Ï†Î®Ï‚ %s"
+-
+-#, fuzzy
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Αδυναμία Ï†ÏŒÏτωσης ÎµÎ¹ÎºÎ¿Î½Î¹Î´Î¯Î¿Ï… \"%s\": %s\n"
+-
+-#, fuzzy
+-#~ msgid "Load policy module"
+-#~ msgstr "Αδυναμία Î´Î·Î¼Î¹Î¿Ï…Ïγίας ÏƒÏ…σκευής Î±Î½Î±Ï€Î±Ïαγωγής"
+-
+-#, fuzzy
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "ΧÏειάζεται Î­Î½Î±Ï‚ Î´Î¹Î¿Ïγανωτής."
+-
+-#, fuzzy
+-#~ msgid "Requires value"
+-#~ msgstr "ΑπόκÏυψη Ï„ιμής"
+-
+-#, fuzzy
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Μεταβλητή Î® ÎµÎ½Ï„ολή Ï€ÏογÏάμματος"
+-
+-#, fuzzy
+-#~ msgid "%s not defined"
+-#~ msgstr "%s: Î´ÎµÎ½ Î­Ï‡Î¿Ï…ν Î¿Ïισθεί Î³ÏαμματοσειÏές\n"
+-
+-#, fuzzy
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "Μή Î­Î³ÎºÏ…Ïο Î±Î½Ï„ικείμενο"
+-
+-#, fuzzy
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr ""
+-#~ "#-#-#-#-#  epiphany.gnome-2-14.el.po (el)  #-#-#-#-#\n"
+-#~ "Δεν Ï…ποστηÏίζεται Î· ÎµÎºÏ„Ïπωση ÏƒÎµ Î±Ï…τόν Ï„ον ÎµÎºÏ„υπωτή\n"
+-#~ "#-#-#-#-#  yelp.gnome-2-14.el.po (el)  #-#-#-#-#\n"
+-#~ "Η ÎµÎºÏ„Ïπωση Î´ÎµÎ½ Ï…ποστηÏίζεται ÏƒÎµ Î±Ï…τόν Ï„ον ÎµÎºÏ„υπωτή"
+-
+-#, fuzzy
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Μη Î­Î³ÎºÏ…Ïη Ï„ιμή VGA"
+-
+-#, fuzzy
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Σφάλμα Ï€Î¹ÏƒÏ„οποίησης: %s"
++msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/en_GB.po b/policycoreutils/po/en_GB.po
+index 14bb4ad..63ca985 100644
+--- a/policycoreutils/po/en_GB.po
++++ b/policycoreutils/po/en_GB.po
+@@ -1,20 +1,25 @@
+-# English (British) translation.
+-# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Abigail Brady <morwen@evilmagic.org>, Bastien Nocera <hadess@hadess.net>, 2007.
+ #
++# Translators:
++# Abigail Brady <morwen@evilmagic.org>, 2007.
++# Bastien Nocera <hadess@hadess.net>, 2007.
++# Bruce Cowan <bruce@bcowan.me.uk>, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-06-11 13:52+0000\n"
+-"Last-Translator: Abigail Brady <morwen@evilmagic.org>\n"
+-"Language-Team: \n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: English (United Kingdom) (http://www.transifex.net/projects/p/"
++"fedora/language/en_GB/)\n"
++"Language: en_GB\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -29,7 +34,7 @@ msgstr ""
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+ #, c-format
+ msgid "failed to initialize PAM\n"
+-msgstr "failed to initialize PAM\n"
++msgstr "failed to initialise PAM\n"
+ #: ../run_init/run_init.c:139
+ #, c-format
+@@ -81,24 +86,20 @@ msgid "Could not set exec context to %s.\n"
+ msgstr "Could not set exec context to %s.\n"
+ #: ../audit2allow/audit2allow:230
+-#, fuzzy
+ msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-"\n"
+-"******************** IMPORTANT ***********************\n"
++msgstr "******************** IMPORTANT ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr ""
++msgstr "To make this policy package active, execute:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "global"
+ #: ../semanage/seobject.py:222
+-#, fuzzy
+ msgid "Could not create semanage handle"
+-msgstr "Could not start semanage transaction"
++msgstr "Could not create semanage handle"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+@@ -113,47 +114,44 @@ msgid "Could not establish semanage connection"
+ msgstr "Could not establish semanage connection"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Could not set MLS range for %s"
++msgstr "Could not test MLS enabled status"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "Not yet implemented"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage transaction already in progress"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "Could not start semanage transaction"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Could not start semanage transaction"
++msgstr "Could not commit semanage transaction"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage transaction not in progress"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Could not list SELinux users"
++msgstr "Could not list SELinux modules"
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+-msgstr ""
++msgstr "Version"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr ""
++msgstr "Disabled"
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -161,9 +159,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Could not add role %s for %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -185,12 +183,12 @@ msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "Could not set permissive domain %s (module installation failed)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "Could not remove permissive domain %s (remove failed)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -210,9 +208,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "Could not check if login mapping for %s is defined"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux User %s does not exist"
++msgstr "Linux Group %s does not exist"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -279,18 +277,22 @@ msgid "Could not list login mappings"
+ msgstr "Could not list login mappings"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+-msgstr ""
++msgstr "Login Name"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-#, fuzzy
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "SELinux Type is required"
++msgstr "SELinux User"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+-msgstr ""
++msgstr "MLS/MCS Range"
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+@@ -306,9 +308,9 @@ msgid "Could not query user for %s"
+ msgstr "Could not query user for %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Could not add file context for %s"
++msgstr "You must add at least one role for %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -379,27 +381,28 @@ msgstr "Could not list roles for user %s"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr ""
++msgstr "Labelling"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+-msgstr ""
++msgstr "MLS/"
+ #: ../semanage/seobject.py:943
+ msgid "Prefix"
+-msgstr ""
++msgstr "Prefix"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Level"
+-msgstr ""
++msgstr "MCS Level"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Range"
+-msgstr ""
++msgstr "MCS Range"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+-msgstr ""
++msgstr "SELinux Roles"
+ #: ../semanage/seobject.py:963
+ msgid "Protocol udp or tcp is required"
+@@ -410,9 +413,8 @@ msgid "Port is required"
+ msgstr "Port is required"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Invalid prefix %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -499,14 +501,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "Could not modify port %s/%s"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "Could not list ports"
++msgstr "Could not list the ports"
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Could not delete port %s/%s"
++msgstr "Could not delete the port %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -524,24 +525,23 @@ msgstr "Could not list ports"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+-msgstr ""
++msgstr "SELinux Port Type"
+ #: ../semanage/seobject.py:1199
+ msgid "Proto"
+-msgstr ""
++msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+-msgstr ""
++msgstr "Port Number"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Port is required"
++msgstr "Node Address is required"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Unknown or missing protocol"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -558,14 +558,14 @@ msgstr "Could not create key for %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Could not check if port %s/%s is defined"
++msgstr "Could not check if addr %s is defined"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Could not create a key for %s"
++msgstr "Could not create addr for %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -574,74 +574,72 @@ msgid "Could not create context for %s"
+ msgstr "Could not create context for %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Could not set name for %s"
++msgstr "Could not set mask for %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Could not set user in file context for %s"
++msgstr "Could not set user in addr context for %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Could not set role in file context for %s"
++msgstr "Could not set role in addr context for %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Could not set type in file context for %s"
++msgstr "Could not set type in addr context for %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Could not set mls fields in file context for %s"
++msgstr "Could not set mls fields in addr context for %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Could not set file context for %s"
++msgstr "Could not set addr context for %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Could not add port %s/%s"
++msgstr "Could not add addr %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Port %s/%s is not defined"
++msgstr "Addr %s is not defined"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Could not query port %s/%s"
++msgstr "Could not query addr %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Could not modify port %s/%s"
++msgstr "Could not modify addr %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Port %s/%s is defined in policy, cannot be deleted"
++msgstr "Addr %s is defined in policy, cannot be deleted"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Could not delete interface %s"
++msgstr "Could not delete addr %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Could not delete login mapping for %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Could not list ports"
++msgstr "Could not list addrs"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -715,9 +713,8 @@ msgid "Could not delete interface %s"
+ msgstr "Could not delete interface %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Could not delete interface %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -725,16 +722,16 @@ msgstr "Could not list interfaces"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+-msgstr ""
++msgstr "SELinux Interface"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+-msgstr ""
++msgstr "Context"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "File context for %s already defined"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -742,9 +739,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux User %s does not exist"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -763,7 +760,7 @@ msgstr "Could not set mls fields in file context for %s"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+-msgstr ""
++msgstr "Invalid file specification"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -823,14 +820,13 @@ msgid "Could not modify file context for %s"
+ msgstr "Could not modify file context for %s"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Could not list file contexts"
++msgstr "Could not list the file contexts"
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Could not delete file context for %s"
++msgstr "Could not delete the file context %s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -852,11 +848,11 @@ msgstr "Could not list local file contexts"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+-msgstr ""
++msgstr "SELinux fcontext"
+ #: ../semanage/seobject.py:1936
+ msgid "type"
+-msgstr ""
++msgstr "type"
+ #: ../semanage/seobject.py:1949
+ msgid ""
+@@ -887,14 +883,14 @@ msgid "Could not query file context %s"
+ msgstr "Could not query file context %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "You must specify a prefix"
++msgstr "You must specify one of the following values: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Could not delete boolean %s"
++msgstr "Could not set active value of boolean %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -904,7 +900,7 @@ msgstr "Could not modify boolean %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Bad format %s: Record %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -922,19 +918,19 @@ msgstr "Could not list booleans"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "unknown"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "off"
+ #: ../semanage/seobject.py:2117
+ msgid "on"
+-msgstr ""
++msgstr "on"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr ""
++msgstr "SELinux boolean"
+ #: ../semanage/seobject.py:2131
+ msgid "State"
+@@ -944,9 +940,10 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "Description"
+ #: ../newrole/newrole.c:201
+ #, c-format
+@@ -956,12 +953,12 @@ msgstr "failed to set PAM_TTY\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
++msgstr "newrole: service name configuration hashtable overflow\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
++msgstr "newrole:  %s:  error on line %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+@@ -1067,6 +1064,7 @@ msgstr "Error: multiple levels specified\n"
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+ msgstr ""
++"Error: you are not allowed to change levels on a non secure terminal \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+@@ -1134,14 +1132,14 @@ msgid "failed to get old_context.\n"
+ msgstr "failed to get old_context.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Error!  Could not retrieve tty information.\n"
++msgstr "Warning!  Could not retrieve tty information.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr ""
++msgstr "error on reading PAM service configuration.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+@@ -1183,19 +1181,19 @@ msgid "failed to exec shell\n"
+ msgstr "failed to exec shell\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "usage:  %s [-bq]\n"
++msgstr "usage:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s:  Policy is already loaded and initial load requested\n"
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:  Can't load policy:  %s\n"
++msgstr "%s:  Can't load policy and enforcing mode requested:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1281,179 +1279,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Options Error %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "Unable to open %s: translations not supported on non-MLS machines"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Translations can not contain spaces '%s' "
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Invalid Level '%s' "
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s already defined in translations"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s not defined in translations"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Login mapping for %s is already defined"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#, fuzzy
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "Could not add SELinux user %s"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux user %s is already defined"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Port is required"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Port %s/%s already defined"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Interface %s already defined"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Error initing capabilities, aborting.\n"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Error setting capabilities, aborting\n"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Error setting KEEPCAPS, aborting\n"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Error dropping capabilities, aborting\n"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Error dropping SETUID capability, aborting\n"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Error freeing caps\n"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "translations not supported on non-MLS machines"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr "SELinux Type is required"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "SELinux Type is required"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Error sending audit message.\n"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "You must specify a role"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name"
+-#~ msgstr "You must specify a role"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "You must specify a role"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Generating type enforcment file: %s.te"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "Interface %s is not defined"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#, fuzzy
+-#~ msgid "File Contexts file"
+-#~ msgstr "File context for %s is not defined"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux user %s is not defined"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Compatibility"
+-#~ msgstr "Compiling policy"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Authenticating %s.\n"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux Type is required"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Could not add SELinux user %s"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Could not modify SELinux user %s"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Could not delete SELinux user %s"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Could not modify SELinux user %s"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Load policy module"
+-#~ msgstr "Cannot read policy store."
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux Type is required"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Requires value"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Requires 2 or more arguments"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "%s not defined"
+-#~ msgstr "%s not defined"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "%s not valid for %s objects\n"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "range not supported on Non MLS machines"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Invalid value %s"
+-
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Options Error: %s "
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/es.po b/policycoreutils/po/es.po
+index e1fdcd9..1239b79 100644
+--- a/policycoreutils/po/es.po
++++ b/policycoreutils/po/es.po
+@@ -1,23 +1,24 @@
+-# translation of policycoreutils.HEAD.es.po to Spanish
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
+-#
+-# Domingo E. Becker <beckerde@hotmail.com>, 2006.
+-# Domingo Becker <domingobecker@gmail.com>, 2008.
++# Translators:
++# Domingo Becker <domingobecker@gmail.com>, 2006, 2008.
++# Gladys Guerrero <gguerrer@redhat.com>, 2010.
++# Héctor Daniel Cabrera <logan@fedoraproject.org>, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD.es\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-09-03 08:55-0300\n"
+-"Last-Translator: Domingo Becker <domingobecker@gmail.com>\n"
+-"Language-Team: Spanish <fedora-trans-es@redhat.com>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Spanish (Castilian) <trans-es@lists.fedoraproject.org>\n"
+ "Language: es\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n"
+-"X-Poedit-Language: Spanish\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -113,9 +114,8 @@ msgid "Could not establish semanage connection"
+ msgstr "No se pudo establecer una conexión semanage"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "No se pudo fijar el rango MLS para %s"
++msgstr "No se pudo probar si el estado de MLS es activado"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -123,11 +123,11 @@ msgstr "Todavía no implementado"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Transacción semanage actualmente en progreso"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+-msgstr "No se puede iniciar transacción·semanage"
++msgstr "No se puede iniciar transacción semanage"
+ #: ../semanage/seobject.py:274
+ msgid "Could not commit semanage transaction"
+@@ -135,53 +135,50 @@ msgstr "No se puede confirmar la transacción·semanage"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Transacción semanage no ejecutándose"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+ msgid "Could not list SELinux modules"
+ msgstr "No se pudieron listar los módulos SELinux"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Nombre de Módulo"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Versión"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr "Deshabilitado"
++msgstr "Inhabilitado"
+ #: ../semanage/seobject.py:322
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr "No se pudo eliminar el dominio permisivo %s (falló el borrado)"
++msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "No se pudo eliminar el dominio permisivo %s (falló el borrado)"
++msgstr ""
+ #: ../semanage/seobject.py:348
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr "No se pudo eliminar el dominio permisivo %s (falló el borrado)"
++msgstr ""
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Tipos de Permisivo"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Tipos de Permisivo"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+@@ -209,7 +206,7 @@ msgstr "No se pudo crear una clave para %s"
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+ #, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr "No se pudo chequear si está definido el mapeo de login para %s"
++msgstr "No se pudo chequear si la asignación de ingreso para %s está definida"
+ #: ../semanage/seobject.py:492
+ #, python-format
+@@ -224,7 +221,7 @@ msgstr "El Usuario de Linux %s no existe"
+ #: ../semanage/seobject.py:501
+ #, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr "No se pudo crear mapeo de login para %s"
++msgstr "No se pudo crear asignación de ingreso para %s"
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+@@ -244,7 +241,7 @@ msgstr "No se pudo fijar el usuario SELinux para %s"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "No se pudo agregar el mapeo de ingreso para %s"
++msgstr "No se pudo agregar asignación de ingreso para %s"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+@@ -253,7 +250,7 @@ msgstr "Se requiere seuser o serange"
+ #: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+ #, python-format
+ msgid "Login mapping for %s is not defined"
+-msgstr "El mapeo de ingreso para %s no está definido"
++msgstr "La asignación de ingreso para %s no está definida"
+ #: ../semanage/seobject.py:563
+ #, python-format
+@@ -263,34 +260,40 @@ msgstr "No se pudo consultar seuser para %s"
+ #: ../semanage/seobject.py:577
+ #, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr "No se pudo modificar el mapeo de ingreso para %s"
++msgstr "No se pudo modificar la asignación de ingreso para %s"
+ #: ../semanage/seobject.py:611
+ #, python-format
+ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"El mapeo de ingreso para %s se definió en la política, no se puede eliminar"
++"La asignación de ingreso para %s se definió en la política, no se puede "
++"eliminar"
+ #: ../semanage/seobject.py:615
+ #, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr "No se pudo eliminar el mapeo de ingreso para %s"
++msgstr "No se pudo eliminar la asignación de ingreso para %s"
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+ msgid "Could not list login mappings"
+-msgstr "No se pudo listar los mapeos de ingreso"
++msgstr "No se pudieron listar las asignaciones de ingreso"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "Nombre de Ingreso"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "Usuario SELinux "
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "Rango MLS/MCS"
+@@ -315,7 +318,7 @@ msgstr "Debe agregar al menos un rol para %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+ msgid "Could not create SELinux user for %s"
+-msgstr "N o se pudo crear el usuario SELinux para %s"
++msgstr "No se pudo crear el usuario SELinux para %s"
+ #: ../semanage/seobject.py:746
+ #, python-format
+@@ -340,7 +343,7 @@ msgstr "No se pudo extraer la clave para %s"
+ #: ../semanage/seobject.py:765
+ #, python-format
+ msgid "Could not add SELinux user %s"
+-msgstr "no se pudo agregar el usuario SELinux %s"
++msgstr "No se pudo agregar el usuario SELinux %s"
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+@@ -353,7 +356,7 @@ msgstr "Se requiere prefijo o roles"
+ #: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+ #, python-format
+ msgid "SELinux user %s is not defined"
+-msgstr "El usuario SELinux %s no es definido"
++msgstr "El usuario SELinux %s no está definido"
+ #: ../semanage/seobject.py:828
+ #, python-format
+@@ -400,6 +403,7 @@ msgid "MCS Range"
+ msgstr "Rango MCS"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "Roles SELinux"
+@@ -412,9 +416,8 @@ msgid "Port is required"
+ msgstr "Se requiere un puerto"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Prefijo inválido %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -464,7 +467,7 @@ msgstr "No se pudo poner el tipo en el contexto de puerto para %s/%s"
+ #: ../semanage/seobject.py:1025
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr " No se pudo fijar los campos mls en el contexto de puerto para %s/%s"
++msgstr "No se pudo fijar los campos mls en el contexto de puerto para %s/%s"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+@@ -531,18 +534,17 @@ msgstr "Tipo de Puerto SELinux"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "Número de Puerto"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Se requiere un puerto"
++msgstr "Se requiere una Dirección de Nodo"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Falta el protocolo o es desconocido"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -559,14 +561,14 @@ msgstr "No se pudo crear clave para %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "No se pudo chequear si el puerto %s/%s está definido"
++msgstr "No se pudo chequear si la dirección %s está definida"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "No se pudo crear una clave para %s"
++msgstr "No se pudo crear la dirección para %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -575,74 +577,73 @@ msgid "Could not create context for %s"
+ msgstr "No se pudo crear el contexto para %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "No se pudo fijar el nombre para %s"
++msgstr "No se pudo poner la máscara para %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "No se pudo poner al usuario en el contexto de archivo para %s"
++msgstr "No se pudo poner al usuario en el contexto de dirección para %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "No se pudo poner el rol en el contexto de archivo para %s"
++msgstr "No se pudo poner el rol en el contexto de dirección para %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "No se pudo poner el tipo en el contexto de archivo para %s"
++msgstr "No se pudo poner el tipo en el contexto de dirección para %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "No se pudieron poner los campos mls en el contexto de archivo para %s"
++msgstr ""
++"No se pudieron poner los campos mls en el contexto de dirección para %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "No se pudo poner el contexto de archivo para %s"
++msgstr "No se pudo poner el contexto de dirección para %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "No se pudo agregar puerto %s/%s"
++msgstr "No se pudo agregar la dirección %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "El puerto %s/%s no está definido"
++msgstr "La dirección %s no está definida"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "No se pudo consultar el puerto %s/%s"
++msgstr "No se pudo consultar la dirección %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "No se pudo modificar el puerto %s/%s"
++msgstr "No se pudo modificar la dirección %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "El puerto %s/%s está definido en la política, no se puede borrar"
++msgstr "La dirección %s está definido en la política, no se puede borrar"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "No se pudo borrar a %s"
++msgstr "No se pudo borrar la dirección %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "No se pudo eliminar el mapeo de ingreso para %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "No se pueden listar los puertos"
++msgstr "No se pudieron listar las direcciones"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -653,33 +654,32 @@ msgstr "No se pudo chequear si la interfase %s está definida"
+ #: ../semanage/seobject.py:1461
+ #, python-format
+ msgid "Could not create interface for %s"
+-msgstr "No se pudo crear la interfase para %s"
++msgstr "No se pudo crear la interfaz para %s"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "No se pudo poner el usuario en el contexto de interfase para %s"
++msgstr "No se pudo poner el usuario en el contexto de interfaz para %s"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "No se pudo fijar el rol en el contexto de interfase para %s"
++msgstr "No se pudo fijar el rol en el contexto de interfaz para %s"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "No se pudo poner el tipo en el contexto de interfase para %s"
++msgstr "No se pudo poner el tipo en el contexto de interfaz para %s"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-"No se pudieron poner los campos mls en el contexto de interfase para %s"
++msgstr "No se pudieron poner los campos mls en el contexto de interfaz para %s"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr "No se pudo poner el contexto de interfase para %s"
++msgstr "No se pudo poner el contexto de interfaz para %s"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+@@ -689,22 +689,22 @@ msgstr "No se pudo poner el contexto de mensaje para %s"
+ #: ../semanage/seobject.py:1495
+ #, python-format
+ msgid "Could not add interface %s"
+-msgstr "No se pudo agregar la interfase %s"
++msgstr "No se pudo agregar la interfaz %s"
+ #: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+ #, python-format
+ msgid "Interface %s is not defined"
+-msgstr "La interfase %s no está definida"
++msgstr "La interfaz %s no está definida"
+ #: ../semanage/seobject.py:1522
+ #, python-format
+ msgid "Could not query interface %s"
+-msgstr "No se pudo consultar la interfase %s"
++msgstr "No se pudo consultar la interfaz %s"
+ #: ../semanage/seobject.py:1533
+ #, python-format
+ msgid "Could not modify interface %s"
+-msgstr "No se pudo modificar la interfase %s"
++msgstr "No se pudo modificar la interfaz %s"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+@@ -714,29 +714,28 @@ msgstr "La interfase %s está definida en la política, no se puede borrar"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+ msgid "Could not delete interface %s"
+-msgstr "No se pudo borrar la interfase %s"
++msgstr "No se pudo borrar la interfaz %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "No se pudo borrar la interfase %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+-msgstr "No se pudieron listar las interfases"
++msgstr "No se pudieron listar las interfaces"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+-msgstr "Interfase SELinux"
++msgstr "Interfaz SELinux"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+ msgstr "Contexto"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "El contexto de archivo para %s ya está definido"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -744,9 +743,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "El Usuario de Linux %s no existe"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -868,11 +867,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "fcontext SELinux"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -888,7 +886,7 @@ msgstr "El booleano %s no está definido"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+ msgid "Could not query file context %s"
+-msgstr "No se udo consultar el contexto de archivo %s"
++msgstr "No se pudo consultar el contexto de archivo %s"
+ #: ../semanage/seobject.py:1999
+ #, python-format
+@@ -941,15 +939,15 @@ msgid "SELinux boolean"
+ msgstr "booleano SELinux"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "Estado"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+-msgstr "Predeterminado"
++msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "Descripción"
+@@ -977,12 +975,12 @@ msgstr "no se puede encontrar un registro válido en el archivo passwd.\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+ msgid "Out of memory!\n"
+-msgstr "Falta memoria!\n"
++msgstr "¡Falta memoria!\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr "Error! El shell no es válido.\n"
++msgstr "¡Error! El shell no es válido.\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+@@ -1022,25 +1020,26 @@ msgstr "No se pudo determinar el modo de obediencia.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr "Error! No se pudo abrir %s.\n"
++msgstr "¡Error! No se pudo abrir %s.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s!  No se pudo obtener el contexto actual para %s, no se reetiqueta el "
++"¡%s!  No se pudo obtener el contexto actual para %s, no se reetiqueta el "
+ "tty.\n"
+ #: ../newrole/newrole.c:715
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s!  No se pudo obtener un contexto nuevo para %s, no se reetiqueta el tty.\n"
++"¡%s!  No se pudo obtener un contexto nuevo para %s, no se reetiqueta el "
++"tty.\n"
+ #: ../newrole/newrole.c:725
+ #, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr "%s!  No se pudo fijar el nuevo contexto para %s\n"
++msgstr "¡%s!  No se pudo fijar el nuevo contexto para %s\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+@@ -1050,7 +1049,7 @@ msgstr "%s etiquetas cambiadas.\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr "Precaución!  No se pudo restablecer el contexto para %s\n"
++msgstr "¡Precaución!  No se pudo restablecer el contexto para %s\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+@@ -1294,1860 +1293,2096 @@ msgstr "chcat -- -ConfidencialEmpresa /docs/plandenegocios.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +ConfidencialEmpresa juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Error en Opciones %s"
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "No se pudo abrir %s: traducciones no soportadas en máquinas no MLS: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "Nivel"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "Traducción"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Las traducciones no pueden tener espacios '%s'"
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Nivel inválido '%s'"
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s ya definido en traducciones"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s no definido en traducciones"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "El mapeo de login para %s ya fue definido"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "agregar mapeado de usuario SELinux"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "El usuario SELinux %s ya está definido"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Se requiere un puerto"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "El puerto %s/%s ya está definido"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "La interfase %s ya está definida"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Error al hacer init en las capacidades, abortando.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Error al configurar las capacidades, abortando.\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Error al configurar KEEPCAPS, abortando\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Error al desechar las capacidades, abortando\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Error al desechar la capacidad SETUID, abortando\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Error al liberar caps\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "traducciones no soportadas en máquinas no MLS"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "Booleano"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "todos"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "Personalizado"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "Etiquetado de Archivo"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "Especificación\n"
+-#~ "de Archivo"
+-
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "Tipo de Archivo"
+-
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Tipo de\n"
+-#~ "Archivo"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "Mapeado de Usuario"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "Nombre de\n"
+-#~ "Ingreso"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "Usuario\n"
+-#~ "SELinux"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "Rango\n"
+-#~ "MLS/MCS"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Se requiere el ingreso con '%s'"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "Módulo de Política"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "Deshabilitar la Auditoría"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "Permitir Auditar"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "Cargar Módulo de Política"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "Domingo Becker, domingobecker@gmail.com, 2007"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "Herramienta de Generación de Políticas de SELinux"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "Esta herramienta se puede usar para generar un marco de trabajo de "
+-#~ "políticas, para confinar aplicaciones o usuarios usando SELinux.   \n"
+-#~ "\n"
+-#~ "La herramienta genera:\n"
+-#~ "Archivo de obediencia de tipo (te)\n"
+-#~ "Archivo de interfase (if)\n"
+-#~ "Archivo de contexto de archivo (fc)\n"
+-#~ "Script de shell (sh) - usado para compilar e instalar la política."
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "Seleccione el tipo de aplicación o rol de usuario a confinar"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Aplicaciones</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "Los Demonios de Inicio Standard son los demonios que se inician al "
+-#~ "arrancar a través de los scripts de inicio. Normalmente requieren un "
+-#~ "script en /etc/rc.d/init.d"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "Demonio de Inicio Estándar"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr ""
+-#~ "Los Demonios de Servicios de Internet son los demonios iniciados por "
+-#~ "xinetd"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Demonios de Servicios de Internet (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "Scripts (CGI)/Aplicaciones Web son los scripts CGI iniciados por el "
+-#~ "servidor web (apache)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Aplicaciones Web/Scripts (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "La Aplicación del Usuario es cualquier aplicación que desee confinar y "
+-#~ "que es iniciada por un usuario"
+-
+-#~ msgid "User Application"
+-#~ msgstr "Aplicación del Usuario"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Usuarios que Ingresan</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "Modificar el registro de nombre de ingreso de usuario existente."
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "Roles de Usuario Existentes"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "Este usuario ingresará a una máquina sólo a través de una terminal o "
+-#~ "login remoto. Por defecto, este usuario no tendra setuid, ni red, ni su, "
+-#~ "ni sudo."
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "Rol de Usuario de la Terminal Mínima"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "Este usuario puede ingresar a una máquina vía X o una terminal. Por def "
+-#~ "scto este usuario no tendrá setuid, ni red, ni su,"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "Rol de Usuario de Ventanas X Mínimo."
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "Usuario con red completa, sin setuid para aplicaciones sin transición, "
+-#~ "sin sudo ni su."
+-
+-#~ msgid "User Role"
+-#~ msgstr "Rol de Usuario"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "El Usuario con red completo, no hay setuid de aplicaciones sin "
+-#~ "transición, sin su, y puede hacer sudo a Roles de Administración Root"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "Rol de Usuario Admin"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Usuarios Administrativos</b>"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "Seleccione el Rol de Usuario Root Administrativo, si este usuario será el "
+-#~ "usado para administrar la máquina mientras corra como root. Este usuario "
+-#~ "no podrá ingresar al sistema directamente."
+-
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Rol de Usuario Root Administrativo"
+-
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "Ingrese el nombre de la aplicación o rol de usuario a confinar"
+-
+-#~ msgid "Name"
+-#~ msgstr "Nombre"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "Ingrese la dirección completa del ejecutable a confinar."
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr ""
+-#~ "Ingrese un nombre Ãºnico para la aplicación o rol de usuario confinado."
+-
+-#~ msgid "Executable"
+-#~ msgstr "Ejecutable"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Script de inicio"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "Ingrese la dirección completa al script de inicio usado para iniciar la "
+-#~ "aplicación confinada."
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "Seleccione los roles de usuario que quiere personalizar"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr ""
+-#~ "Seleccione los roles de usuario que transicionarán a este dominio de "
+-#~ "aplicaciones"
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr ""
+-#~ "Seleccione los dominios adicionales a los que este rol de usuario "
+-#~ "transicionará"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "Seleccione los dominios de aplicación a los que desearía que este usuario "
+-#~ "transicione."
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "Seleccione los roles de usuario que transicionarán a este dominio"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "Seleccione los dominios que este rol de usuario administrará"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "Seleccione los dominios que desearía que administre este usuario."
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "Seleccione roles adicionales para este usuario"
+-
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr ""
+-#~ "Ingrese los puertos de red en los que esta aplicación/usuario se conecta"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>Puertos TCP</b>"
+-
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "Permitir a las aplicaciones/usuarios confinados engancharse a cualquier "
+-#~ "puerto udp"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "Todos"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "Permitir a la aplicación/usuario llamar a bindresvport con 0. Engancharse "
+-#~ "a los puertos 600-1024"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Ingrese una lista separada por comas de puertos udp o rangos de puertos a "
+-#~ "los que esta aplicación/rol de usuario se conecta. Ejemplo 612, 650-660"
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "Puertos No Reservados (>1024)"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "Seleccionar Puertos"
+-
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "Permite a la aplicación/usuario engancharse a cualquier puerto udp > 1024"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>Puertos UDP</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "Ingrese los puertos de red a los que esta aplicación/rol de usuario se "
+-#~ "conecta"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Ingrese una lista separada por comas de los rangos puertos a los que esta "
+-#~ "aplicación/rol de usuario se conecta. Ejemplo: 612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Ingrese una lista separada por comas de puertos udp o rangos de puertos a "
+-#~ "los que esta aplicación/rol de usuario se conecta. Ejemplo: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "Seleccione las Características de Aplicación Comunes"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "Escribe mensajes syslog\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "Crear/Manipular archivos temporales en /tmp"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "Usa Pam para la autenticación"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "Usa nsswitch o llamadas getpw*"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "Usa dbus"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Enviar mensajes de auditoría"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "Interactúa con la terminal"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "Enviar correo"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "Seleccione los archivos/directorios que administra la aplicación"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "Agregar Archivos/Directorios a los que esta aplicación necesitará "
+-#~ "\"Escribir\". Archivos con Pid, con Log, de /var/lib..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "Seleccione los booleanosque usa esta aplicación"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "Agregar/Quitar booleanos usados para esta aplicación/usuario confinada."
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "Seleccione el directorio donde generar las políticas"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "Directorio de Política"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "Archivos de Política Generado"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Esta herramienta generará lo siguiente: \n"
+-#~ "Obligación de Tipos (te), Contexto deArchivo (fc), Interface (if), Script "
+-#~ "de Shell (sh).\n"
+-#~ "Ejecute el script de shell para compilar/instalar y reetiquete archivos/"
+-#~ "directorios. \n"
+-#~ "Use semanage o useradd para mapear usuarios de ingreso a Linux a roles de "
+-#~ "usuarios.\n"
+-#~ "Ahora puede poner la máquina en modo permisivo (setenforce 0).\n"
+-#~ "Ingrese como ese usuario y pruebe el rol de usuario.\n"
+-#~ "Use audit2allow -R para generar reglas adicionales para el archivo te.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Esta herramienta generará lo siguiente: \n"
+-#~ "Obligación de Tipos (te), Contexto deArchivo (fc), Interface (if), Script "
+-#~ "de Shell (sh).\n"
+-#~ "\n"
+-#~ "Ejecute el script de shell para compilar/instalar y reetiquete archivos/"
+-#~ "directorios. \n"
+-#~ "Ahora puede poner la máquina en modo permisivo (setenforce 0).\n"
+-#~ "Ejecute/reinicie la aplicación para generar mensajes avc.\n"
+-#~ "Use audit2allow -R para generar reglas adicionales para el archivo te.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "Diálogo para Agregar Booleanos"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "Nombre del Booleano"
+-
+-#~ msgid "Role"
+-#~ msgstr "Rol"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "_Usuario Existente"
+-
+-#~ msgid "Application"
+-#~ msgstr "Aplicación"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s debe ser un directorio"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "Debe seleccionar un usuario"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "Seleccione el archivo ejecutable a confinar."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "Seleccione el script de inicio a confinar."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "Seleccione los archivos a los que la aplicación escribe o genera"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "Seleccione el/los directorio(s) que pertenecen a la aplicación confinada "
+-#~ "y a los que escribe"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "Seleccione el directorio donde generar los archivos de política"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "El tipo  %s_t ya está definido en la política actual.\n"
+-#~ "¿Desea continuar?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "Verificar Nombre"
+-
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "El módulo %s.pp ya está cargado en la política actual.\n"
+-#~ "¿Desea continuar?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "Debe ingresar un nombre"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Debe ingresar un ejecutable"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "Configurar SELinux"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "Los puertos deben ser números o rangos entre 1 y %d"
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "Debe ingresar un nombre para su proceso/usuario confinado"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "Los Tipos de USUARIOS no son ejecutables permitidos"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "Solo las aplicaciones DEMONIO puede usar un script de inicio"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog debe ser un valor booleano "
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "Los Tipos de USUARIO obtienen un tipo tmp automáticamente"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "Debe ingresar la dirección del ejecutable para su proceso confinado"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Archivo de Tipo de Obediencia"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "Archivo de Interfase"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "Archivo de Contextos de Archivo"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "Script de Configuración"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Puerto SELinux\n"
+-#~ "Tipo"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "Protocolo"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "Nivel"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "Puerto"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr ""
+-#~ "El número de puerto \"%s\" no es válido.  0 < NUMERO_DE_PUERTO < 65536"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "Ver como Lista"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "Ver Grupo"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "Protección de Servicios de SELinux"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para del demonio acct"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "Admin"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "Permitir a los demonios escribir archivos principales a /"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr ""
+-#~ "Permitir a todos los demonios la habilidad de usar ttys no asignadas"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "Privados del Usuario"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir a la cuenta gadmin de usuario SELinux ejecutar archivos en su "
+-#~ "directorio home o /tmp"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir a la cuenta guest de SELinux ejecutar archivos en su directorio "
+-#~ "home o /tmp"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "Protección de Memoria"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "Permitir la pila ejecutable a java"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Montar"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "Permitir a mount montar cualquier archivo"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "Permitir a mount montar cualquier directorio"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "Permitir a mplayer la pila ejecutable"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "Permitir a ssh ejecutar ssh_keysign"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir a la cuenta staff de SELinux ejecutar archivos en su directorio "
+-#~ "home o /tmp"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir a la cuenta sysadmin de SELinux ejecutar archivos en su "
+-#~ "directorio home o /tmp"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "Permitir a las cuentas de usuario SELinux no confinadas ejecutar archivos "
+-#~ "en su directorio home o /tmp"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Configuración de Red"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "Permitir a los paquetes no etiquetados fluir por la red"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "Permitir a las cuentas de usuarios SELinux ejecutar archivos en su "
+-#~ "directorio home o /tmp"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "Permitir a las no confinadas a dyntrans a unconfined_execmem"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Bases de Datos"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "Permitir a los usuarios conectar a socket mysql"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "Permitir a los usuarios conectara  socket postgres"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "ServidorX"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "Permitir a los clientes escribir a la memoria compartida de X"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir a las cuentas xguest de SELinux ejecutar archivos en el "
+-#~ "directorio home o /tmp"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "Permitir a los demonios ejecutar con NIS"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "Aplicaciones Web"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "Transicionar los usuarios SELinux del staff al Dominio del Navegador Web"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "Transicionar el usuario SELinux sysadm al Dominio del Navegador Web"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "Transicionar el usuario SELinux user al Dominio del Navegador Web"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "Transicionar el usuario SELinux xguest al Dominio del Navegador Web"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr ""
+-#~ "Permitir al los Navegadores Web del staff escribir a sus directorios de "
+-#~ "inicio"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "Deshabilitar la protección SELinux para amanda"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "Deshabilitar la protección SELinux para amavis"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio apmd"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio arpwatch"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio auditd"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio automount"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "Deshabilitar la protección SELinux para avahi"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio bluetooth"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio canna"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio cardmgr"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Deshabilitar la protección SELinux para el Servidor de Cluster"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "Permitir a cdrecord leer varios contenidos. nfs, samba, dispositivos "
+-#~ "removibles, temporales del usuario y archivos de contenidos no confiable"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio ciped"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio clamd"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "Deshabilitar la protección SELinux para clamscan"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "Deshabilitar la protección SELinux para clvmd"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio comsat"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio courier"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio cpucontrol"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "Deshabilitar la protección SELinux para el demonio cpuspeed"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio crond"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "Impresión"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr ""
+-#~ "Deshabilitar la protección de SELinux para el servidor de bajo nivel de "
+-#~ "cupsd"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio cupsd"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "Deshabilitar la protección de SELinux para cupsd_lpd"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio cvs"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio cyrus"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio dbskkd"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio dbusd"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "Deshabilitar la protección de SELinux para dccd"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "Deshabilitar la protección de SELinux para dccifd"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "Deshabilitar la protección de SELinux para dccm"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio ddt"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio devfsd"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio dhcpc"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio dhcpd"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio dictd"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "Permitir a sysadm_t iniciar directamente los demonios"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Deshabilitar la protección de SELinux para Evolution"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "Juegos"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "Deshabilitar la protección de SELinux para los juegos"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "Deshabilitar la protección de SELinux para los navegadores web"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Deshabilitar la protección de SELinux para Thunderbird"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio distccd"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio dmesg"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio dnsmasq"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio dovecot"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio entropyd"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "Deshabilitar la protección de SELinux para fetchmail"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio fingerd"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio freshclam"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio fsdaemon"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio gpm"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio gss"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio Hal"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "Compatibilidad"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "No auditar cosas que ya se saben que no andan bien y que no representan "
+-#~ "riesgos de seguridad"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio hostname"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio hotplug"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio howl"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio cups hplip"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr ""
+-#~ "Deshabilitar la protección de SELinux para la rotación de logs de httpd"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "Servicio HTTPD"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "Deshabilitar la protección de SELinux para suexec de http"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio hwclock"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio i18n"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio imazesrv"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr ""
+-#~ "Deshabilitar la protección de SELinux para los demonios hijos de inetd"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio inetd"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio innd"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio iptables"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio ircd"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio irqbalance"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio iscsi"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio jabberd"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio kadmind"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio klogd"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio krb5kdc"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "Deshabilitar la protección de SELinux para los demonios ktalk"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio kudzu"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio locate"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio lpd"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio lrrd"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio lvm"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "Deshabilitar la protección de SELinux para mailman"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "Permitir a evolution y a thunderbird leer archivos de los usuarios"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio mdadm"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio monopd"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "Permitir al navegador mozilla leer archivos de los usuarios"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio mrtg"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio mysqld"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio nagios"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "Servicio de Nombre"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio named"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio nessusd"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "Deshabilitar la protección de SELinux para NetworkManager"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio nfsd"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio nmbd"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio nrpe"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio nscd"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio nsd"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio ntpd"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "Deshabilitar la protección de SELinux para oddjob"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "Deshabilitar la protección de SELinux para oddjob_mkhomedir"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio openvpn"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio pam"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "Deshabilitar la protección de SELinux para pegasus"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio perdition"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio portmap"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio portslave"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "Deshabilitar la protección de SELinux para postfix"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio postgresql"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "Permitir a pppd correr para un usuario regular"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "Deshabilitar la protección de SELinux para pptp"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio prelink"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio privoxy"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio ptal"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio pxe"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "Deshabilitar la protección de SELinux para pyzord"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio quota"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio radiusd"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio radvd"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "Deshabilitar la protección de SELinux para rdisk"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "Deshabilitar la protección de SELinux para readahead"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "Permitir a los programas leer los archivos en ubicaciones no estándares "
+-#~ "(default_t)"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "Deshabilitar la protección de SELinux para restorecond"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio rhgb"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "Deshabilitar la protección de SELinux para ricci"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "Deshabilitar la protección de SELinux para ricci_modclusterd"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio rlogind"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio rpcd"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio rshd"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio rsync"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "Permitir a ssh correr desde inetd en vez de como un demonio"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Permitir a Samba compartir los directorios nfs"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Servidor de autenticación SASL"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "Permitir al servidor de autenticación sasl leer /etc/shadow"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "Permitir al servidor X-Windows mapear una región de memoria como "
+-#~ "ejecutable y de escritura"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio saslauthd"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio scannerdaemon"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "No permitir la transición a sysadm_t, sudo y su"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "No permitir a ningún proceso cargar módulos del kernel"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr ""
+-#~ "No permitir a ningún proceso modificar la política de SELinux del kernel"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio sendmail"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "Deshabilitar la protección de SELinux para setrans"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr ""
+-#~ "Deshabilitar la protección de SELinux para el demonio setroubleshoot"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio slapd"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio slrnpull"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio smbd"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio snmpd"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio snort"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio soundd"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio sound"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "Protección contra spam"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio spamd"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "Permitir a spamd acceder a los directorios home"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Permitir el acceso a red al demonio Spam Assassin"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio speedmgmt"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "Permitir al demonio squid conectarse a la red"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio squid"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio ssh"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "Permitir ingresos a ssh como sysadm_r:sysadm_t"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "Permitir a los usuarios staff_r buscar el directorio home de sysadm y "
+-#~ "leer archivos (tales como ~/.bashrc)"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Tunel SSL Universal"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio stunnel"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "Permitir al demonio stunnel correr como aplicación, fuera de xinetd"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio swat"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio sxid"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio syslogd"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr ""
+-#~ "Deshabilitar la protección de SELinux para los trabajos cron de sistema"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio tcp"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio telnet"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio tftpd"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio transproxy"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio udev"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio uml"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Permitir a xinetd correr no confinado, incluyendo cualquier servicio que "
+-#~ "inicie que no tenga una transición de dominio explícitamente definida"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Permitir a los scripts de rc ejecutarse no confinados, incluyendo "
+-#~ "cualquier demonio iniciado en un script de rc que no tenga una transición "
+-#~ "de dominio explícitamente definida"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "Permitir a rpm correr no confinado"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "Permitir a las utilidades privilegiadas como hotplug e insmod ejecutarse "
+-#~ "no confinadas"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio updfstab"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio uptimed"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "Permitir a user_r llegar a sysadm_r vía su, sudo o userhelper. Sinó, "
+-#~ "solamente staff_r podrán hacerlo"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "Permitir a los usuarios ejecutar el comando mount"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "Permitir a los usuarios regulares el acceso directo al ratón (solo "
+-#~ "permitir al servidor X)"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "Permitir a los usuarios ejecutar el comando dmesg"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "Permitir a los usuarios controlar las interases de red (también necesita "
+-#~ "USERCTL=true)"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "Permitir a los usuarios normales ejecutar ping"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "Permitir a los usuarios l/e noextattrfile (FAT, CDROM, FLOPPY)"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "Permitir a los usuarios l/e dispositivos usb"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "Permitir a los usuarios ejecutar servidores TCP (adjuntarse a puertos y "
+-#~ "aceptar conexiones entrantes desde el mismo dominio o usuarios externos) "
+-#~ "deshabilitando esto forza el modo pasivo de FTP y puede cambiar otros "
+-#~ "protocolos"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "Permitir a los usuarios hacer stat a archivos tty"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio uucpd"
+-
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio vmware"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio watchdog"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio winbind"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio xdm"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "Permitir ingresos xdm como sysadm_r:sysadm_t"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio xen"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "Permitir a xen leer/escribir dispositivos de disco físicos"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio xfs"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "Deshabilitar la protección de SELinux para xen control"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio ypbind"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio NIS Password"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio ypserv"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "Deshabilitar la protección de SELinux para el demonio NIS Transfer"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Permitir al usuario SELinux webadm administrar los directorios de inicio "
+-#~ "de usuarios no privilegiados"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Permitir a los usuarios webadm de SELinux leer los directorios de inicio "
+-#~ "de los usuarios no privilegiados"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "¿Está seguro que desea eliminar %s '%s'?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "Borrar %s"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "Agregar %s"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "Modificar %s"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "Permisivo"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "Obligatorio"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "El cambio del tipo de política puede causar un reetiquetado de todo el "
+-#~ "sistema de archivo en el siguiente arranque. El reetiquetado demora un "
+-#~ "tiempo largo, dependiendo del tamaño del sistema de archivo. Â¿Desea "
+-#~ "continuar?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "El cambio de SELinux a deshabilitado requiere una reiniciada. No se "
+-#~ "recomienda. Si más tarde decide volver a activar SELinux, el sistema "
+-#~ "requerirá un reetiquetado. Si solo quiere ver si SELinux está causando un "
+-#~ "problema en su sistema, puede ir a modo permisivo que solamente "
+-#~ "registrará los errores pero no lo obligará a la política de SELinux. El "
+-#~ "modo permisivo no requiere una reiniciada. Â¿Desea continuar?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "El cambio de SELinux a activado provocará el reetiquetado de todo el "
+-#~ "sistema de archivo en el siguiente arranque. El reetiquetado demora un "
+-#~ "tiempo largo, dependiendo del tamaño del sistema de archivo. Â¿Desea "
+-#~ "continuar?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "Agregar el Mapeo de Ingreso SELinux"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "Agregar Puertos de Red de SELinux"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "Tipo SELinux"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "Nivel MLS/MCS\n"
+-#~ "de SELinux"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "Especificación de Archivo"
+-
+-#~ msgid "File Type"
+-#~ msgstr "Tipo de Archivo"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "todos los archivos\n"
+-#~ "archivo regular\n"
+-#~ "directorio\n"
+-#~ "dispositivo de caracter\n"
+-#~ "dispositivo de bloque\n"
+-#~ "socket\n"
+-#~ "enlace simbólico\n"
+-#~ "tubería con nombre\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Agregar Usuario SELinux"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "Administración de SELinux"
+-
+-#~ msgid "Add"
+-#~ msgstr "Agregar"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "_Propiedades"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "_Eliminar"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "Seleccionar Objeto de Administración"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Seleccionar:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "Modo de Obligatorio por Defecto del Sistema"
+-
+-#~ msgid ""
+-#~ "Disabled\n"
+-#~ "Permissive\n"
+-#~ "Enforcing\n"
+-#~ msgstr ""
+-#~ "Deshabilitado\n"
+-#~ "Permisivo\n"
+-#~ "Obediente\n"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "Modo Obligatorio Actual"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "Tipo de Política por Defecto del Sistema:"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "Seleccione si desea reetiquetar todo el sistema de archivo en la "
+-#~ "siguiente reiniciada. El reetiquetado toma mucho tiempo, dependiendo del "
+-#~ "tamaño del sistema. Si cambia los tipos de políticas o va de desactivado "
+-#~ "a obligatorio, se requiere un reetiquetado."
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Reetiquetar en la próxima reiniciada."
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "Revertir los valores booleanos a los predeterminados del sistema"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "Cambiar entre los Personalizados y Todos los Booleanos"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Run booleans lockdown wizard"
+-#~ msgstr "Ejecutar el asistente de bloqueo de booleanos"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Lockdown..."
+-#~ msgstr "Bloquear..."
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "Filtro"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "Agregar Contexto de Archivo"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "Modificar Contexto de Archivo"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "Borrar Contexto de Archivo"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "Cambiar entre todos los contextos de archivo y los personalizados"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "Agregar Mapeo de Usuario SELinux"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Modificar Mapeo de Usuario SELinux"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Borrar el Mapeo de Usuario SELinux"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "Agregar Traducción"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "Modificar Traducción"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "Borrar Traducción"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Modificar Usuario SELinux"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "Agregar Puerto de Red"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "Editar Puerto de Red"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "Borrar Puerto de Red"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "Cambiar entre los Personalizados y Todos los Puertos"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "Generar nuevo módulo de política"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "Cargar módulo de políticas"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "Eliminar módulo de política cargable"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "Deshabilitar reglas de auditoría adicional, que no son normalmente "
+-#~ "informadas en los archivos log."
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "Nivel de Sensibilidad"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "Se requiere el usuario SELinux '%s'"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Disable"
+-#~ msgstr "Deshabilitar"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Enable"
+-#~ msgstr "Habilitar"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "<b>Boolean</b>"
+-#~ msgstr "<b>Booleano</b>"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "<b>Description</b>"
+-#~ msgstr "<b>Descripción</b>"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "<b>Status</b>"
+-#~ msgstr "<b>Estado</b>"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Category: %s <br>"
+-#~ msgstr "Categoría: %s <br>"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Begin"
+-#~ msgstr "Iniciar"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Welcome to the SELinux Lockdown Tool.<br> <br>This tool can be used to "
+-#~ "lockdown SELinux booleans.The tool will generate a configuration file "
+-#~ "which can be used to lockdown this system or other SELinux systems.<br>"
+-#~ msgstr ""
+-#~ "Bienvenido a la Herramienta de Bloqueo de SELinux. <br> <br>Esta "
+-#~ "herramienta se puede usar para bloquear booleanos de SELinux. La "
+-#~ "herramienta generará un archivo de configuración que se puede usar para "
+-#~ "bloquear este sistema u otros sistemas SELinux.<br>"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Finish"
+-#~ msgstr "Finalizar"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Category %s booleans completed <br><br>"
+-#~ msgstr "Categoría %s de booleanos completada <br><br>"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Current settings:<br><br>"
+-#~ msgstr "Configuración actual:<br><br>"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Finish: <br><br>"
+-#~ msgstr "Finalizar: <br><br>"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Category: %s<br><br>Current Settings<br><br>"
+-#~ msgstr "Categoría: %s<br><br>Configuración Actual<br><br>"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Boolean:   %s<br><br>"
+-#~ msgstr "Booleano:  %s<br><br>"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Lockdown SELinux Booleans"
+-#~ msgstr "Bloquear Booleanos de SELinux"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Apply"
+-#~ msgstr "Aplicar"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "SELinux Boolean Lockdown"
+-#~ msgstr "Bloqueo de Booleanos de SELinux"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Save As"
+-#~ msgstr "Guardar Como"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Save Boolean Configuration File"
+-#~ msgstr "Guardar Archivo de Configuración de Booleanos"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "Select file name to save  boolean settings."
+-#~ msgstr ""
+-#~ "Seleccione el nombre de archivo para guardar la configuración de "
+-#~ "booleanos."
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "_Forward"
+-#~ msgstr "_Siguiente"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "_Previous"
+-#~ msgstr "_Previo"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Se requiere un valor"
+-
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "Permitir a la aplicación/usuario engancharse a cualquier puerto tcp > 1024"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "Permitir que la aplicación/usuario confinado se enganche a cualquier "
+-#~ "puerto tcp"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Ingrese una lista separado por comas de los puertos tcp a los que esta  "
+-#~ "aplicación/rol de usuario se engancha. Ejemplo: 612, 650-660"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "Druid de Generación de Políticas de SELinux"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "Puertos No Reservados (> 1024)"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr ""
+-#~ "Use esta casilla de verificación si su aplicación llama a bidresvport con "
+-#~ "0."
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "Obligatorio\n"
+-#~ "Permisivo\n"
+-#~ "Deshabilitado\n"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/eu_ES.po b/policycoreutils/po/eu_ES.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/eu_ES.po
++++ b/policycoreutils/po/eu_ES.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/fa.po b/policycoreutils/po/fa.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/fa.po
++++ b/policycoreutils/po/fa.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/fi.po b/policycoreutils/po/fi.po
+index afeaa9f..4f44483 100644
+--- a/policycoreutils/po/fi.po
++++ b/policycoreutils/po/fi.po
+@@ -1,165 +1,167 @@
+ # SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
++# 
++# Translators:
++# Juhani Numminen <juhaninumminen0@gmail.com>, 2012.
++# Ville-Pekka Vainio <vpivaini@cs.helsinki.fi>, 2009, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-02 16:29-0400\n"
++"PO-Revision-Date: 2012-04-24 04:25+0000\n"
++"Last-Translator: Juhani Numminen <juhaninumminen0@gmail.com>\n"
++"Language-Team: Finnish (http://www.transifex.net/projects/p/fedora/language/fi/)\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Language: fi\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+ "USAGE: run_init <script> <args ...>\n"
+ "  where: <script> is the name of the init script to run,\n"
+ "         <args ...> are the arguments to that script."
+-msgstr ""
++msgstr "Käyttö: run_init <komentosarja> <argumentit ...>\n  missä: <komentosarja> on suoritettavan käynnistyskomentosarjan nimi,\n         <argumentit ...> ovat sen argumentit."
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+ #, c-format
+ msgid "failed to initialize PAM\n"
+-msgstr ""
++msgstr "PAMin alustaminen epäonnistui\n"
+ #: ../run_init/run_init.c:139
+ #, c-format
+ msgid "failed to get account information\n"
+-msgstr ""
++msgstr "kirjautumistietoja ei saatu\n"
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+-msgstr ""
++msgstr "Salasana:"
+ #: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+ #, c-format
+ msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
++msgstr "Varjosalasanatiedostosta ei löydy tämän käyttäjän tietoja.\n"
+ #: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+ #, c-format
+ msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
++msgstr "getpass ei voi avata laitetta /dev/tty\n"
+ #: ../run_init/run_init.c:275
+ #, c-format
+ msgid "run_init: incorrect password for %s\n"
+-msgstr ""
++msgstr "run_init: väärä salasana käyttäjälle %s\n"
+ #: ../run_init/run_init.c:309
+ #, c-format
+ msgid "Could not open file %s\n"
+-msgstr ""
++msgstr "Tiedostoa %s ei voitu avata\n"
+ #: ../run_init/run_init.c:336
+ #, c-format
+ msgid "No context in file %s\n"
+-msgstr ""
++msgstr "Tiedostolla %s ei ole kontekstia\n"
+ #: ../run_init/run_init.c:361
+ #, c-format
+ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
++msgstr "run_initiä voi käyttää vain SELinux-kernelillä.\n"
+ #: ../run_init/run_init.c:380
+ #, c-format
+ msgid "authentication failed.\n"
+-msgstr ""
++msgstr "tunnistautuminen epäonnistui.\n"
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+ #, c-format
+ msgid "Could not set exec context to %s.\n"
+-msgstr ""
++msgstr "Ei voitu asettaa suorituskontekstia kontekstiksi %s.\n"
+ #: ../audit2allow/audit2allow:230
+ msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
++msgstr "******************** TÄRKEÄÄ ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr ""
++msgstr "Tämän käytäntöpakkauksen aktivoimiseksi suorita:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "globaali"
+ #: ../semanage/seobject.py:222
+ msgid "Could not create semanage handle"
+-msgstr ""
++msgstr "Ei voitu luoda semanage-kahvaa"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
++msgstr "SELinux-käytäntöä ei hallita tai säilöä ei voida käyttää."
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr ""
++msgstr "Käytäntösäilöä ei voida lukea."
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+-msgstr ""
++msgstr "Semanage-yhteyttä ei voitu muodostaa"
+ #: ../semanage/seobject.py:245
+ msgid "Could not test MLS enabled status"
+-msgstr ""
++msgstr "Ei voitu testata onko MLS käytössä"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "Ei vielä toteutettu"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage-transaktio on jo käynnissä"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+-msgstr ""
++msgstr "Semanage-transaktiota ei voitu käynnistää"
+ #: ../semanage/seobject.py:274
+ msgid "Could not commit semanage transaction"
+-msgstr ""
++msgstr "Semanage-transaktiota ei voitu toteuttaa"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage-transaktio ei ole käynnissä"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+ msgid "Could not list SELinux modules"
+-msgstr ""
++msgstr "SELinux-moduuleita ei voitu luetteloida"
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+-msgstr ""
++msgstr "Moduulin nimi"
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+-msgstr ""
++msgstr "Versio"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr ""
++msgstr "Ei käytössä"
+ #: ../semanage/seobject.py:322
+ #, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr ""
++msgstr "Ei voitu poistaa käytöstä moduulia %s (poisto epäonnistui)"
+ #: ../semanage/seobject.py:333
+ #, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr ""
++msgstr "Ei voitu ottaa käyttöön moduulia %s (poisto epäonnistui)"
+ #: ../semanage/seobject.py:348
+ #, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr ""
++msgstr "Ei voitu poistaa moduulia %s (poisto epäonnistui)"
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+@@ -167,21 +169,21 @@ msgstr ""
+ #: ../semanage/seobject.py:387
+ msgid "Builtin Permissive Types"
+-msgstr ""
++msgstr "Sisäänrakennetut sallivat tyypit"
+ #: ../semanage/seobject.py:397
+ msgid "Customized Permissive Types"
+-msgstr ""
++msgstr "Omat sallivat tyypit"
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "Ei voitu asettaa sallivaa toimialuetta %s (moduulin asennus epäonnistui)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "Ei voitu poistaa sallivaa toimialuetta %s (poisto epäonnistui)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -192,348 +194,354 @@ msgstr ""
+ #: ../semanage/seobject.py:2037
+ #, python-format
+ msgid "Could not create a key for %s"
+-msgstr ""
++msgstr "Ei voitu luoda avainta käyttäjälle %s"
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+ #, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
++msgstr "Ei voitu tarkistaa onko käyttäjälle %s määritelty kirjautumisassosiaatiota"
+ #: ../semanage/seobject.py:492
+ #, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr ""
++msgstr "Linux-ryhmää %s ei ole olemassa"
+ #: ../semanage/seobject.py:497
+ #, python-format
+ msgid "Linux User %s does not exist"
+-msgstr ""
++msgstr "Linux-käyttäjää %s ei ole olemassa"
+ #: ../semanage/seobject.py:501
+ #, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr ""
++msgstr "Käyttäjälle %s ei voitu tehdä kirjautumisassosiaatiota"
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+ msgid "Could not set name for %s"
+-msgstr ""
++msgstr "Käyttäjän %s nimeä ei voitu asettaa"
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+ #, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr ""
++msgstr "Käyttäjän %s MLS-aluetta ei voitu asettaa"
+ #: ../semanage/seobject.py:514
+ #, python-format
+ msgid "Could not set SELinux user for %s"
+-msgstr ""
++msgstr "Käyttäjän %s SELinux-käyttäjää ei voitu asettaa"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr ""
++msgstr "Käyttäjälle %s ei voitu lisätä kirjautumisassosiaatiota"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+-msgstr ""
++msgstr "Vaatii seuserin tai serangen"
+ #: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+ #, python-format
+ msgid "Login mapping for %s is not defined"
+-msgstr ""
++msgstr "Käyttäjälle %s ei ole määritelty kirjautumisassosiaatiota"
+ #: ../semanage/seobject.py:563
+ #, python-format
+ msgid "Could not query seuser for %s"
+-msgstr ""
++msgstr "Seuserilta ei voitu kysellä käyttäjän %s tietoja"
+ #: ../semanage/seobject.py:577
+ #, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr ""
++msgstr "Käyttäjän %s kirjautumisassosiaatiota ei voitu muokata"
+ #: ../semanage/seobject.py:611
+ #, python-format
+ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "Käyttäjän %s kirjautumisassosiaatio on määritelty SELinux-käytännössä, sitä ei voi poistaa"
+ #: ../semanage/seobject.py:615
+ #, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr ""
++msgstr "Käyttäjän %s kirjautumisassosiaatiota ei voitu poistaa"
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+ msgid "Could not list login mappings"
+-msgstr ""
++msgstr "Kirjautumisassosiaatioita ei voitu luetteloida"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+-msgstr ""
++msgstr "Kirjautumisnimi"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr ""
++msgstr "SELinux-käyttäjä"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+-msgstr ""
++msgstr "MLS/MCS-alue"
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+ #: ../semanage/seobject.py:860
+ #, python-format
+ msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
++msgstr "Ei voitu tarkistaa onko SELinux-käyttäjää %s määritelty"
+ #: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+ #: ../semanage/seobject.py:866
+ #, python-format
+ msgid "Could not query user for %s"
+-msgstr ""
++msgstr "Ei voitu kysellä käyttäjältä tietoja kohteesta %s"
+ #: ../semanage/seobject.py:722
+ #, python-format
+ msgid "You must add at least one role for %s"
+-msgstr ""
++msgstr "Ainakin yksi rooli on lisättävä käyttäjälle %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+ msgid "Could not create SELinux user for %s"
+-msgstr ""
++msgstr "Ei voitu luoda SELinux-käyttäjää käyttäjälle %s"
+ #: ../semanage/seobject.py:746
+ #, python-format
+ msgid "Could not add role %s for %s"
+-msgstr ""
++msgstr "Roolia %s ei voitu lisätä käyttäjälle %s"
+ #: ../semanage/seobject.py:755
+ #, python-format
+ msgid "Could not set MLS level for %s"
+-msgstr ""
++msgstr "Käyttäjän %s MLS-tasoa ei voitu asettaa"
+ #: ../semanage/seobject.py:758
+ #, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr ""
++msgstr "Etuliitettä %s ei voitu lisätä käyttäjälle %s"
+ #: ../semanage/seobject.py:761
+ #, python-format
+ msgid "Could not extract key for %s"
+-msgstr ""
++msgstr "Ei voitu purkaa käyttäjän %s avainta"
+ #: ../semanage/seobject.py:765
+ #, python-format
+ msgid "Could not add SELinux user %s"
+-msgstr ""
++msgstr "Ei voitu lisätä SELinux-käyttäjää %s"
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+-msgstr ""
++msgstr "Vaatii etuliitteen, roolit, tasot tai alueen"
+ #: ../semanage/seobject.py:789
+ msgid "Requires prefix or roles"
+-msgstr ""
++msgstr "Vaatii etuliitteen tai roolit"
+ #: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+ #, python-format
+ msgid "SELinux user %s is not defined"
+-msgstr ""
++msgstr "SELinux-käyttäjää %s ei ole määritelty"
+ #: ../semanage/seobject.py:828
+ #, python-format
+ msgid "Could not modify SELinux user %s"
+-msgstr ""
++msgstr "Ei voitu muokata SELinux-käyttäjää %s"
+ #: ../semanage/seobject.py:862
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "SELinux-käyttäjä %s on määritelty SELinux-käytännössä, sitä ei voi poistaa"
+ #: ../semanage/seobject.py:873
+ #, python-format
+ msgid "Could not delete SELinux user %s"
+-msgstr ""
++msgstr "Ei voitu poistaa SELinux-käyttäjää %s"
+ #: ../semanage/seobject.py:911
+ msgid "Could not list SELinux users"
+-msgstr ""
++msgstr "SELinux-käyttäjiä ei voitu luetteloida"
+ #: ../semanage/seobject.py:917
+ #, python-format
+ msgid "Could not list roles for user %s"
+-msgstr ""
++msgstr "Käyttäjän %s rooleja ei voitu luetteloida"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr ""
++msgstr "Nimiöinti"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+-msgstr ""
++msgstr "MLS/"
+ #: ../semanage/seobject.py:943
+ msgid "Prefix"
+-msgstr ""
++msgstr "Etuliite"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Level"
+-msgstr ""
++msgstr "MCS-taso"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Range"
+-msgstr ""
++msgstr "MCS-alue"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+-msgstr ""
++msgstr "SELinux-roolit"
+ #: ../semanage/seobject.py:963
+ msgid "Protocol udp or tcp is required"
+-msgstr ""
++msgstr "Udp- tai tcp-protokolla on pakollinen"
+ #: ../semanage/seobject.py:965
+ msgid "Port is required"
+-msgstr ""
++msgstr "Portti on pakollinen"
+ #: ../semanage/seobject.py:975
+ msgid "Invalid Port"
+-msgstr ""
++msgstr "Portti ei kelpaa"
+ #: ../semanage/seobject.py:979
+ #, python-format
+ msgid "Could not create a key for %s/%s"
+-msgstr ""
++msgstr "Ei voitu luoda avainta yhdistelmälle %s/%s"
+ #: ../semanage/seobject.py:990
+ msgid "Type is required"
+-msgstr ""
++msgstr "Tyyppi on pakollinen"
+ #: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+ #: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+ #, python-format
+ msgid "Could not check if port %s/%s is defined"
+-msgstr ""
++msgstr "Ei voitu tarkistaa onko portti %s/%s määritelty"
+ #: ../semanage/seobject.py:998
+ #, python-format
+ msgid "Port %s/%s already defined"
+-msgstr ""
++msgstr "Portti %s/%s on jo määritelty"
+ #: ../semanage/seobject.py:1002
+ #, python-format
+ msgid "Could not create port for %s/%s"
+-msgstr ""
++msgstr "Yhdistelmälle %s/%s ei voitu luoda porttia"
+ #: ../semanage/seobject.py:1008
+ #, python-format
+ msgid "Could not create context for %s/%s"
+-msgstr ""
++msgstr "Yhdistelmälle %s/%s ei voitu luoda kontekstia"
+ #: ../semanage/seobject.py:1012
+ #, python-format
+ msgid "Could not set user in port context for %s/%s"
+-msgstr ""
++msgstr "Ei voitu asettaa käyttäjää yhdistelmän %s/%s porttikontekstissa"
+ #: ../semanage/seobject.py:1016
+ #, python-format
+ msgid "Could not set role in port context for %s/%s"
+-msgstr ""
++msgstr "Ei voitu asettaa roolia yhdistelmän %s/%s porttikontekstissa"
+ #: ../semanage/seobject.py:1020
+ #, python-format
+ msgid "Could not set type in port context for %s/%s"
+-msgstr ""
++msgstr "Ei voitu asettaa tyyppiä yhdistelmän %s/%s porttikontekstissa"
+ #: ../semanage/seobject.py:1025
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
++msgstr "Ei voitu asettaa mls-kenttiä yhdistelmän %s/%s porttikontekstissa"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+ msgid "Could not set port context for %s/%s"
+-msgstr ""
++msgstr "Ei voitu asettaa porttikontekstia yhdistelmälle %s/%s"
+ #: ../semanage/seobject.py:1033
+ #, python-format
+ msgid "Could not add port %s/%s"
+-msgstr ""
++msgstr "Ei voitu lisätä porttia %s/%s"
+ #: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+ #: ../semanage/seobject.py:1508
+ msgid "Requires setype or serange"
+-msgstr ""
++msgstr "Vaatii setypen tai serangen"
+ #: ../semanage/seobject.py:1049
+ msgid "Requires setype"
+-msgstr ""
++msgstr "Vaatii setypen"
+ #: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+ #, python-format
+ msgid "Port %s/%s is not defined"
+-msgstr ""
++msgstr "Porttia %s/%s ei ole määritelty"
+ #: ../semanage/seobject.py:1061
+ #, python-format
+ msgid "Could not query port %s/%s"
+-msgstr ""
++msgstr "Ei voitu kysellä porttia %s/%s"
+ #: ../semanage/seobject.py:1072
+ #, python-format
+ msgid "Could not modify port %s/%s"
+-msgstr ""
++msgstr "Ei voitu muokata porttia %s/%s"
+ #: ../semanage/seobject.py:1085
+ msgid "Could not list the ports"
+-msgstr ""
++msgstr "Ei voitu luetteloida portteja"
+ #: ../semanage/seobject.py:1101
+ #, python-format
+ msgid "Could not delete the port %s"
+-msgstr ""
++msgstr "Ei voitu poistaa porttia %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+ msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "Portti %s/%s on määritelty SELinux-käytännössä, sitä ei voi poistaa"
+ #: ../semanage/seobject.py:1122
+ #, python-format
+ msgid "Could not delete port %s/%s"
+-msgstr ""
++msgstr "Ei voitu poistaa porttia %s/%s"
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+ msgid "Could not list ports"
+-msgstr ""
++msgstr "Ei voitu luetteloida portteja"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+-msgstr ""
++msgstr "SELinux-porttityyppi"
+ #: ../semanage/seobject.py:1199
+ msgid "Proto"
+-msgstr ""
++msgstr "Protokolla"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+-msgstr ""
++msgstr "Porttinumero"
+ #: ../semanage/seobject.py:1218
+ msgid "Node Address is required"
+-msgstr ""
++msgstr "Koneen osoite on pakollinen"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Tuntematon tai puuttuva protokolla"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+ msgid "SELinux Type is required"
+-msgstr ""
++msgstr "SELinux-tyyppi on pakollinen"
+ #: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+ #: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+@@ -541,84 +549,84 @@ msgstr ""
+ #: ../semanage/seobject.py:1728
+ #, python-format
+ msgid "Could not create key for %s"
+-msgstr ""
++msgstr "Ei voitu luoda avainta osoitteelle %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+ #, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr ""
++msgstr "Ei voitu tarkistaa onko osoite %s määritelty"
+ #: ../semanage/seobject.py:1262
+ #, python-format
+ msgid "Could not create addr for %s"
+-msgstr ""
++msgstr "Ei voitu luoda osoitetta kohteelle %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+ #, python-format
+ msgid "Could not create context for %s"
+-msgstr ""
++msgstr "Ei voitu luoda kontekstia osoitteelle %s"
+ #: ../semanage/seobject.py:1272
+ #, python-format
+ msgid "Could not set mask for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa peitettä osoitteelle %s"
+ #: ../semanage/seobject.py:1276
+ #, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa käyttäjää osoitekontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1280
+ #, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa roolia osoitekontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1284
+ #, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa tyyppiä osoitekontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1289
+ #, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa mls-kenttiä osoitekontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1293
+ #, python-format
+ msgid "Could not set addr context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa osoitekontekstia kohteelle %s"
+ #: ../semanage/seobject.py:1297
+ #, python-format
+ msgid "Could not add addr %s"
+-msgstr ""
++msgstr "Ei voitu lisätä osoitetta %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+ #, python-format
+ msgid "Addr %s is not defined"
+-msgstr ""
++msgstr "Osoitetta %s ei ole määritelty"
+ #: ../semanage/seobject.py:1326
+ #, python-format
+ msgid "Could not query addr %s"
+-msgstr ""
++msgstr "Ei voitu kysellä osoitetta %s"
+ #: ../semanage/seobject.py:1336
+ #, python-format
+ msgid "Could not modify addr %s"
+-msgstr ""
++msgstr "Ei voitu muokata osoitetta %s"
+ #: ../semanage/seobject.py:1364
+ #, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "Osoite %s on määritelty SELinux-käytännössä, sitä ei voi poistaa"
+ #: ../semanage/seobject.py:1368
+ #, python-format
+ msgid "Could not delete addr %s"
+-msgstr ""
++msgstr "Ei voitu poistaa osoitetta %s"
+ #: ../semanage/seobject.py:1380
+ msgid "Could not deleteall node mappings"
+@@ -626,78 +634,78 @@ msgstr ""
+ #: ../semanage/seobject.py:1394
+ msgid "Could not list addrs"
+-msgstr ""
++msgstr "Ei voitu luetteloida osoitteita"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+ #, python-format
+ msgid "Could not check if interface %s is defined"
+-msgstr ""
++msgstr "Ei voitu tarkistaa onko verkkoliitäntä %s määritelty"
+ #: ../semanage/seobject.py:1461
+ #, python-format
+ msgid "Could not create interface for %s"
+-msgstr ""
++msgstr "Ei voitu luoda verkkoliitäntää kohteelle %s"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa käyttäjää verkkoliitäntäkontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa roolia verkkoliitäntäkontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa tyyppiä verkkoliitäntäkontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa mls-kenttiä verkkoliitäntäkontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa verkkoliitäntäkontekstia kohteelle %s"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+ msgid "Could not set message context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa viestikontekstia kohteelle %s"
+ #: ../semanage/seobject.py:1495
+ #, python-format
+ msgid "Could not add interface %s"
+-msgstr ""
++msgstr "Ei voitu lisätä verkkoliitäntää %s"
+ #: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+ #, python-format
+ msgid "Interface %s is not defined"
+-msgstr ""
++msgstr "Verkkoliitäntää %s ei ole määritelty"
+ #: ../semanage/seobject.py:1522
+ #, python-format
+ msgid "Could not query interface %s"
+-msgstr ""
++msgstr "Ei voitu kysellä verkkoliitäntää %s"
+ #: ../semanage/seobject.py:1533
+ #, python-format
+ msgid "Could not modify interface %s"
+-msgstr ""
++msgstr "Ei voitu muokata verkkoliitäntää %s"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+ msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "Verkkoliitäntä %s on määritelty SELinux-käytännössä, sitä ei voi poistaa"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+ msgid "Could not delete interface %s"
+-msgstr ""
++msgstr "Ei voitu poistaa verkkoliitäntää %s"
+ #: ../semanage/seobject.py:1574
+ msgid "Could not delete all interface  mappings"
+@@ -705,15 +713,15 @@ msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+-msgstr ""
++msgstr "Ei voitu luetella verkkoliitäntöjä"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+-msgstr ""
++msgstr "SELinux-verkkoliitäntä"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+-msgstr ""
++msgstr "Konteksti"
+ #: ../semanage/seobject.py:1663
+ #, python-format
+@@ -733,21 +741,21 @@ msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa käyttäjää tiedostokontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa roolia tiedostokontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa mls-kenttiä tiedostokontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+-msgstr ""
++msgstr "Virheellinen tiedostomääritys"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -756,7 +764,8 @@ msgstr ""
+ #: ../semanage/seobject.py:1714
+ #, python-format
+ msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
++"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' "
++"instead"
+ msgstr ""
+ #: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+@@ -764,82 +773,82 @@ msgstr ""
+ #: ../semanage/seobject.py:1876
+ #, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr ""
++msgstr "Ei voitu tarkistaa onko tiedostokonteksti määritelty kohteelle %s"
+ #: ../semanage/seobject.py:1745
+ #, python-format
+ msgid "Could not create file context for %s"
+-msgstr ""
++msgstr "Ei voitu luoda tiedostokontekstia kohteelle %s"
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa tyyppiä tiedostokontekstissa kohteelle %s"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr ""
++msgstr "Ei voitu asettaa tiedostokontekstia kohteelle %s"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+ msgid "Could not add file context for %s"
+-msgstr ""
++msgstr "Ei voitu lisätä tiedostokontekstia kohteelle %s"
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+-msgstr ""
++msgstr "Vaatii setypen, serangen tai seuserin"
+ #: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+ #, python-format
+ msgid "File context for %s is not defined"
+-msgstr ""
++msgstr "Tiedostokonteksti ei ole määritelty kohteelle %s"
+ #: ../semanage/seobject.py:1800
+ #, python-format
+ msgid "Could not query file context for %s"
+-msgstr ""
++msgstr "Ei voitu kysellä tiedostokontekstia kohteelle %s"
+ #: ../semanage/seobject.py:1826
+ #, python-format
+ msgid "Could not modify file context for %s"
+-msgstr ""
++msgstr "Ei voitu muokata kohteen %s tiedostokontekstia"
+ #: ../semanage/seobject.py:1839
+ msgid "Could not list the file contexts"
+-msgstr ""
++msgstr "Ei voitu luetella tiedostokonteksteja"
+ #: ../semanage/seobject.py:1853
+ #, python-format
+ msgid "Could not delete the file context %s"
+-msgstr ""
++msgstr "Ei voitu poistaa kohteen %s tiedostokontekstia"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+ msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "Kohteen %s tiedostokonteksti on määritelty SELinux-käytännössä, sitä ei voi poistaa"
+ #: ../semanage/seobject.py:1884
+ #, python-format
+ msgid "Could not delete file context for %s"
+-msgstr ""
++msgstr "Ei voitu poistaa kohteen %s tiedostokontekstia"
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+-msgstr ""
++msgstr "Ei voitu luetella tiedostokonteksteja"
+ #: ../semanage/seobject.py:1903
+ msgid "Could not list local file contexts"
+-msgstr ""
++msgstr "Ei voitu luetella paikallisia tiedostokonteksteja"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+-msgstr ""
++msgstr "SELinux-tiedostokonteksti"
+ #: ../semanage/seobject.py:1936
+ msgid "type"
+-msgstr ""
++msgstr "tyyppi"
+ #: ../semanage/seobject.py:1949
+ msgid ""
+@@ -857,414 +866,2507 @@ msgstr ""
+ #: ../semanage/seobject.py:2046
+ #, python-format
+ msgid "Could not check if boolean %s is defined"
+-msgstr ""
++msgstr "Ei voitu tarkistaa onko totuusarvo %s määritelty"
+ #: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+ #, python-format
+ msgid "Boolean %s is not defined"
+-msgstr ""
++msgstr "Totuusarvoa %s ei ole määritelty"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+ msgid "Could not query file context %s"
+-msgstr ""
++msgstr "Ei voitu kysellä tiedostokontekstia kohteelle %s"
+ #: ../semanage/seobject.py:1999
+ #, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr ""
++msgstr "Yksi seuraavista arvoista on määriteltävä: %s"
+ #: ../semanage/seobject.py:2004
+ #, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr ""
++msgstr "Ei voitu asettaa totuusarvon %s aktiivista arvoa"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+ msgid "Could not modify boolean %s"
+-msgstr ""
++msgstr "Ei voitu muokata totuusarvoa %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Virheellinen muoto %s: tietue %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
++msgstr "Totuusarvo %s on määritelty SELinux-käytännössä, sitä ei voi poistaa"
+ #: ../semanage/seobject.py:2052
+ #, python-format
+ msgid "Could not delete boolean %s"
+-msgstr ""
++msgstr "Ei voitu poistaa totuusarvoa %s"
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+ msgid "Could not list booleans"
+-msgstr ""
++msgstr "Ei voitu luetteloida totuusarvoja"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "tuntematon"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "epätosi"
+ #: ../semanage/seobject.py:2117
+ msgid "on"
+-msgstr ""
++msgstr "tosi"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr ""
++msgstr "SELinux-totuusarvo"
+ #: ../semanage/seobject.py:2131
+ msgid "State"
+-msgstr ""
++msgstr "Tila"
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+-msgstr ""
++msgstr "Oletus"
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "Kuvaus"
+ #: ../newrole/newrole.c:201
+ #, c-format
+ msgid "failed to set PAM_TTY\n"
+-msgstr ""
++msgstr "PAM_TTY:n asettaminen epäonnistui\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
++msgstr "newrole: palveluiden nimiasetusten hajautustaulun ylivuoto\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
++msgstr "newrole: %s: virhe rivillä %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+ msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
++msgstr "passwd-tiedostosta ei löydy kelvollista kohtaa.\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+ msgid "Out of memory!\n"
+-msgstr ""
++msgstr "Muisti loppui!\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr ""
++msgstr "Virhe! Komentotulkki on virheellinen.\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+ msgid "Unable to clear environment\n"
+-msgstr ""
++msgstr "Ympäristöä ei voida siivota\n"
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+ msgid "Error changing uid, aborting.\n"
+-msgstr ""
++msgstr "Virhe käyttäjätunnuksen vaihdossa, lopetetaan.\n"
+ #: ../newrole/newrole.c:612
+ #, c-format
+ msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
++msgstr "Virhe KEEPCAPSin uudelleenasetuksessa, lopetetaan.\n"
+ #: ../newrole/newrole.c:635
+ #, c-format
+ msgid "Error connecting to audit system.\n"
+-msgstr ""
++msgstr "Virhe audit-järjestelmään yhdistämisessä.\n"
+ #: ../newrole/newrole.c:641
+ #, c-format
+ msgid "Error allocating memory.\n"
+-msgstr ""
++msgstr "Virhe muistivarauksessa.\n"
+ #: ../newrole/newrole.c:648
+ #, c-format
+ msgid "Error sending audit message.\n"
+-msgstr ""
++msgstr "Virhe audit-viestin lähettämisessä.\n"
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr ""
++msgstr "Ei voitu selvittää toimeenpanevaa tilaa.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr ""
++msgstr "Virhe! Ei voitu avata tty:tä %s.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
++msgstr "%s! Ei saatu nykyistä kontekstia tty:lle %s, ei nimiöidä sitä uudelleen.\n"
+ #: ../newrole/newrole.c:715
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
++msgstr "%s! Ei saatu uutta kontekstia tty:lle %s, ei nimiöidä sitä uudelleen.\n"
+ #: ../newrole/newrole.c:725
+ #, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
++msgstr "%s! Ei voitu asettaa uutta kontekstia tty:lle %s\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+ msgid "%s changed labels.\n"
+-msgstr ""
++msgstr "tty %s vaihtoi nimiötä.\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
++msgstr "Varoitus! Ei voitu palauttaa tty:n %s kontekstia\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+ msgid "Error: multiple roles specified\n"
+-msgstr ""
++msgstr "Virhe: annettiin useita rooleja\n"
+ #: ../newrole/newrole.c:843
+ #, c-format
+ msgid "Error: multiple types specified\n"
+-msgstr ""
++msgstr "Virhe: annettiin useita tyyppejä\n"
+ #: ../newrole/newrole.c:850
+ #, c-format
+ msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
++msgstr "Valitsinta -l voi käyttää vain SELinuxin MLS-tuen kanssa.\n"
+ #: ../newrole/newrole.c:855
+ #, c-format
+ msgid "Error: multiple levels specified\n"
+-msgstr ""
++msgstr "Virhe: annettiin useita tasoja\n"
+ #: ../newrole/newrole.c:865
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
++msgstr "Virhe: tasoa ei voi vaihtaa turvattomassa päätteessä\n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr ""
++msgstr "Ei voitu hakea oletustyyppiä.\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+ msgid "failed to get new context.\n"
+-msgstr ""
++msgstr "uuden kontekstin hakeminen epäonnistui.\n"
+ #: ../newrole/newrole.c:908
+ #, c-format
+ msgid "failed to set new role %s\n"
+-msgstr ""
++msgstr "uuden roolin %s asettaminen epäonnistui\n"
+ #: ../newrole/newrole.c:915
+ #, c-format
+ msgid "failed to set new type %s\n"
+-msgstr ""
++msgstr "uuden tyypin %s asettaminen epäonnistui\n"
+ #: ../newrole/newrole.c:925
+ #, c-format
+ msgid "failed to build new range with level %s\n"
+-msgstr ""
++msgstr "uuden alueen tekeminen tasolle %s epäonnistui\n"
+ #: ../newrole/newrole.c:930
+ #, c-format
+ msgid "failed to set new range %s\n"
+-msgstr ""
++msgstr "uuden alueen %s asettaminen epäonnistui\n"
+ #: ../newrole/newrole.c:938
+ #, c-format
+ msgid "failed to convert new context to string\n"
+-msgstr ""
++msgstr "uuden kontekstin muuntaminen merkkijonoksi epäonnistui\n"
+ #: ../newrole/newrole.c:943
+ #, c-format
+ msgid "%s is not a valid context\n"
+-msgstr ""
++msgstr "%s ei ole kelvollinen konteksti\n"
+ #: ../newrole/newrole.c:950
+ #, c-format
+ msgid "Unable to allocate memory for new_context"
+-msgstr ""
++msgstr "new_contextille ei voida varata muistia"
+ #: ../newrole/newrole.c:976
+ #, c-format
+ msgid "Unable to obtain empty signal set\n"
+-msgstr ""
++msgstr "Tyhjän signaalijoukon hankkiminen epäonnistui\n"
+ #: ../newrole/newrole.c:984
+ #, c-format
+ msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
++msgstr "SIGHUP-käsittelimen asetus epäonnistui\n"
+ #: ../newrole/newrole.c:1053
+ #, c-format
+ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
++msgstr "newrolea voi käyttää vain SELinux-kernelillä.\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+ msgid "failed to get old_context.\n"
+-msgstr ""
++msgstr "old_contextin hakeminen epäonnistui.\n"
+ #: ../newrole/newrole.c:1077
+ #, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
++msgstr "Varoitus! Ei voitu hakea tty-tietoja.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr ""
++msgstr "virhe luettaessa PAM-palveluasetuksia.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+ msgid "newrole: incorrect password for %s\n"
+-msgstr ""
++msgstr "newrole: virheellinen salasana käyttäjälle %s\n"
+ #: ../newrole/newrole.c:1160
+ #, c-format
+ msgid "newrole: failure forking: %s"
+-msgstr ""
++msgstr "newrole: haarautuminen epäonnistui: %s"
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+ msgid "Unable to restore tty label...\n"
+-msgstr ""
++msgstr "Tty:n nimiötä ei voitu palauttaa…\n"
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+ msgid "Failed to close tty properly\n"
+-msgstr ""
++msgstr "Tty:n sulkeminen kunnolla epäonnistui\n"
+ #: ../newrole/newrole.c:1224
+ #, c-format
+ msgid "Could not close descriptors.\n"
+-msgstr ""
++msgstr "Kuvaajia ei voitu sulkea.\n"
+ #: ../newrole/newrole.c:1251
+ #, c-format
+ msgid "Error allocating shell's argv0.\n"
+-msgstr ""
++msgstr "Komentotulkin argv0:n varaamisessa tapahtui virhe.\n"
+ #: ../newrole/newrole.c:1287
+ #, c-format
+ msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
++msgstr "Ei voitu palauttaa ympäristöä, lopetetaan\n"
+ #: ../newrole/newrole.c:1298
+ msgid "failed to exec shell\n"
+-msgstr ""
++msgstr "komentotulkin suorittaminen epäonnistui\n"
+ #: ../load_policy/load_policy.c:22
+ #, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr ""
++msgstr "käyttö:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s: Käytäntö on jo ladattu, silti pyydettiin ensimmäistä latausta\n"
+ #: ../load_policy/load_policy.c:80
+ #, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
++msgstr "%s: Ei voida ladata käytäntöä, pyydettiin toimeenpanevaa tilaa: %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
++msgstr "%s: Ei voida ladata käytäntöä: %s\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+-msgstr ""
++msgstr "Vaaditaan ainakin yksi kategoria"
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+ msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
++msgstr "Ei voida muokata herkkyystasoja käyttämällä â€+â€-merkkiä kohteessa %s"
+ #: ../scripts/chcat:110
+ #, c-format
+ msgid "%s is already in %s"
+-msgstr ""
++msgstr "%s on jo kohteessa %s"
+ #: ../scripts/chcat:188 ../scripts/chcat:198
+ #, c-format
+ msgid "%s is not in %s"
+-msgstr ""
++msgstr "%s ei ole kohteessa %s"
+ #: ../scripts/chcat:267 ../scripts/chcat:272
+ msgid "Can not combine +/- with other types of categories"
+-msgstr ""
++msgstr "Merkkejä + tai - ei voi yhdistää muiden kategoriatyyppien kanssa"
+ #: ../scripts/chcat:319
+ msgid "Can not have multiple sensitivities"
+-msgstr ""
++msgstr "Ei voi olla useita herkkyyksiä"
+ #: ../scripts/chcat:325
+ #, c-format
+ msgid "Usage %s CATEGORY File ..."
+-msgstr ""
++msgstr "Käyttö %s KATEGORIA Tiedosto ..."
+ #: ../scripts/chcat:326
+ #, c-format
+ msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
++msgstr "Käyttö %s -l KATEGORIA käyttäjä ..."
+ #: ../scripts/chcat:327
+ #, c-format
+ msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
++msgstr "Käyttö %s [[+|-]KATEGORIA],...]q Tiedosto ..."
+ #: ../scripts/chcat:328
+ #, c-format
+ msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
++msgstr "Käyttö %s -l [[+|-]KATEGORIA],...]q käyttäjä ..."
+ #: ../scripts/chcat:329
+ #, c-format
+ msgid "Usage %s -d File ..."
+-msgstr ""
++msgstr "Käyttö %s -d Tiedosto ..."
+ #: ../scripts/chcat:330
+ #, c-format
+ msgid "Usage %s -l -d user ..."
+-msgstr ""
++msgstr "Käyttö %s -l -d käyttäjä ..."
+ #: ../scripts/chcat:331
+ #, c-format
+ msgid "Usage %s -L"
+-msgstr ""
++msgstr "Käyttö %s -L"
+ #: ../scripts/chcat:332
+ #, c-format
+ msgid "Usage %s -L -l user"
+-msgstr ""
++msgstr "Käyttö %s -L -l käyttäjä"
+ #: ../scripts/chcat:333
+ msgid "Use -- to end option list.  For example"
+-msgstr ""
++msgstr "Käytä -- valitsinluettelon lopettamiseksi. Esimerkiksi"
+ #: ../scripts/chcat:334
+ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
++msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ #: ../scripts/chcat:335
+ msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
++msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1334
++#, c-format, python-format
+ msgid "Options Error %s "
++msgstr "Valitsinvirhe %s"
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr "Totuusarvo"
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr "kaikki"
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr "Oma"
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr "Tiedostonimiöinti"
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr "Moduulin nimi"
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr "Red Hat 2007"
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr "GPL"
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr "Juhani Numminen <juhaninumminen0@gmail.com>"
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr "<b>Sovellukset</b>"
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su,"
++" can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer"
++" the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr "Nimi"
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr "..."
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid ""
++"Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr "<b>TCP-portit</b>"
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr "Kaikki"
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr "600-1024"
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr "<b>UDP-portit</b>"
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:323
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:325
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:413
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:419
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:437
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:443
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:449
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:455
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:485
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1003
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1165
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1289
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1337
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or "
++"/tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and "
++"writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as "
++"~/.bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not"
++" have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the"
++" same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid ""
++"Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you"
++" wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the"
++" log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
+ msgstr ""
+diff --git a/policycoreutils/po/fr.po b/policycoreutils/po/fr.po
+index cea8f18..a006058 100644
+--- a/policycoreutils/po/fr.po
++++ b/policycoreutils/po/fr.po
+@@ -1,23 +1,27 @@
+-# translation of policycoreutils.HEAD.fr_modifié(1).po to french
+-# Thomas Canniot <mrtom@fedoraproject.org>, 2006.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
+ # Alain PORTAL <aportal@univ-montp2.fr>, 2007.
++# Charles-Antoine Couret <cacouret@wanadoo.fr>, 2009.
+ # Gauthier Ancelin <gauthier.ancelin@laposte.net>, 2007.
+ # Matthieu Rondeau <milanito1985@yahoo.fr>, 2008.
+-# translation of Policy Core Utils.
+-# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
++# Sam Friedmann <sam.friedmann@redhat.com>, 2010.
++# Thomas Canniot <mrtom@fedoraproject.org>, 2006, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD.fr_modifié(1)\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-04-05 22:13+0200\n"
+-"Last-Translator: Matthieu Rondeau <milanito1985@yahoo.fr>\n"
+-"Language-Team: french <fedora-trans-fr@redhat.com>\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: French <trans-fr@lists.fedoraproject.org>\n"
++"Language: fr\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
++"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -53,7 +57,7 @@ msgstr ""
+ #: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+ #, c-format
+ msgid "getpass cannot open /dev/tty\n"
+-msgstr "getpass ne peut accéder Ã Â  /dev/tty\n"
++msgstr "getpass ne peut accéder Ã   /dev/tty\n"
+ #: ../run_init/run_init.c:275
+ #, c-format
+@@ -114,9 +118,8 @@ msgid "Could not establish semanage connection"
+ msgstr "Impossible d'établir de connexion semanage"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Impossible de définir une plage MLS pour %s"
++msgstr "Impossible de tester les statuts MLS activés"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -124,36 +127,33 @@ msgstr "Pas encore implémenté"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Transaction de semanage déjà en cours"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "Impossible de démarrer une transaction semanage"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Impossible de démarrer une transaction semanage"
++msgstr "Impossible de commiter une transaction semanage"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Aucune transaction semanage en cours"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Impossible de lister les identités SELinux"
++msgstr "Impossible de lister les modules SELinux"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Nom du module"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Version"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "Désactivé"
+@@ -163,9 +163,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Impossible d'ajouter un rôle %s pour %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -177,24 +177,25 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Permissif"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Permissif"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
++"Impossible de définir le domaine permissif %s (échec de l'installation du "
++"module)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+ msgstr ""
++"Impossible de supprimer le domaine permissif %s (échec de la suppression)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -214,9 +215,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "Ne peut vérifier si le mappage de connexion est défini pour %s"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "L'utilisateur Linux %s n'existe pas"
++msgstr "Le groupe Linux %s n'existe pas"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -287,15 +288,20 @@ msgid "Could not list login mappings"
+ msgstr "Impossible de lister les mappages"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "Nom pour l'ouverture de session"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "Identité SELinux"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "Intervalle MLS/MCS"
+@@ -313,9 +319,9 @@ msgid "Could not query user for %s"
+ msgstr "Impossible d'interroger l'utilisateur pour %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Impossible d'ajouter le contexte du fichier pour %s"
++msgstr "Vous devez ajouter au moins un rôle pour %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -335,7 +341,7 @@ msgstr "Impossible de régler le niveau MLS pour %s"
+ #: ../semanage/seobject.py:758
+ #, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr "Impossible d'ajouter le préfixe %s Ã Â  %s"
++msgstr "Impossible d'ajouter le préfixe %s Ã   %s"
+ #: ../semanage/seobject.py:761
+ #, python-format
+@@ -407,6 +413,7 @@ msgid "MCS Range"
+ msgstr "Intervalle MCS"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "Rôles SELinux"
+@@ -419,9 +426,8 @@ msgid "Port is required"
+ msgstr "Un numéro de port nécessaire"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Préfixe invalide %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -540,18 +546,17 @@ msgstr "Types de port SELinux"
+ msgid "Proto"
+ msgstr "Protocole"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "Numéro de port"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Un numéro de port nécessaire"
++msgstr "L'adresse du nÅ“ud est requise"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Protocole inconnu ou manquant"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -568,14 +573,14 @@ msgstr "Impossible de créer la clef pour %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Impossible de vérifier si le port %s/%s est défini"
++msgstr "Impossible de vérifier si l'adresse %s est définie"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Impossible de créer une clef pour %s"
++msgstr "Impossible de créer une adresse pour %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -584,78 +589,75 @@ msgid "Could not create context for %s"
+ msgstr "Impossible de créer le contexte pour %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Impossible de définir le nom pour %s"
++msgstr "Impossible de définir le masque pour %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+ msgstr ""
+-"Impossible de définir l'utilisateur dans le contexte du fichier pour %s"
++"Impossible de définir l'utilisateur dans le contexte de l'adresse pour %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Impossible de définir le rôle dans le contexte du fichier pour %s"
++msgstr "Impossible de définir le rôle dans le contexte de l'adresse pour %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Impossible de définir le type dans le contexte du fichier pour %s"
++msgstr "Impossible de définir le type dans le contexte de l'adresse pour %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+ msgstr ""
+-"Impossible de définir les champs MLS dans le contexte du fichier pour %s"
++"Impossible de définir les champs MLS dans le contexte de l'adresse pour %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Impossible de définir le contexte du fichier %s"
++msgstr "Impossible de définir le contexte de l'adresse pour %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Impossible d'ajouter le port %s/%s"
++msgstr "Impossible d'ajouter l'adresse %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Le port %s/%s n'est pas défini"
++msgstr "L'adresse %s n'est pas définie"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Impossible d'interroger le port %s/%s"
++msgstr "Impossible d'interroger l'adresse %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Impossible de modifier le port %s/%s"
++msgstr "Impossible de modifier l'adresse %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Le port %s/%s est défini dans la stratégie, il ne peut Ãªtre supprimé"
++msgstr ""
++"L'adresse %s est définie dans la stratégie, elle ne peut Ãªtre supprimée"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Impossible de supprimer %s"
++msgstr "Impossible de supprimer l'adresse %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+ msgstr ""
+-"Impossible de supprimer la correspondance utilisateurs - identités SELinux "
+-"pour %s"
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Impossible d'énumérer les ports"
++msgstr "Impossible d'énumérer les adresses"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -732,9 +734,8 @@ msgid "Could not delete interface %s"
+ msgstr "Impossible de supprimer l'interface %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Impossible de supprimer l'interface %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -749,9 +750,9 @@ msgid "Context"
+ msgstr "Contexte"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Le contexte du fichier pour %s est déjà défini"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -759,9 +760,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "L'utilisateur Linux %s n'existe pas"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -885,11 +886,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "contexte fichier SELinux"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -908,14 +908,14 @@ msgid "Could not query file context %s"
+ msgstr "Impossible d'interroger le contexte du fichier %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Vous devez spécifier une valeur"
++msgstr "Vous devez spécifier une des valeurs suivantes : %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Impossible de supprimer le booléen %s"
++msgstr "Impossible de définir une valeur active du booléen %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -925,7 +925,7 @@ msgstr "Impossible de modifier les booléens %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Mauvais format %s : Enregistrement de %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -958,15 +958,15 @@ msgid "SELinux boolean"
+ msgstr "booléen SELinux"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "État"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "Description"
+@@ -1247,7 +1247,7 @@ msgstr ""
+ #: ../scripts/chcat:110
+ #, c-format
+ msgid "%s is already in %s"
+-msgstr "%s se trouve déjà  dans %s"
++msgstr "%s se trouve déjà  dans %s"
+ #: ../scripts/chcat:188 ../scripts/chcat:198
+ #, c-format
+@@ -1314,1808 +1314,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Erreur %s dans les options"
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Impossible d'ouvrir %s : Les translations ne sont pas supportées par des "
+-#~ "machines non MLS : %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "Niveau"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "Translation"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Les translations ne peuvent contenir d'espaces Â« %s Â» "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Niveau invalide Â« %s Â» "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s est déjà  défini dans les translations"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s n'est pas défini dans les translations"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Mappage pour %s est déjà  défini"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "ajouter la correspondance utilisateurs - identités SELinux"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "L'identité SELinux %s est déjà  définie"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Un numéro de port nécessaire"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Le port %s/%s est déjà défini"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "L'interface %s existe déjà "
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Erreur lors de l'initialisation des capacités, abandon\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Erreur lors de la configuration des capacités, abandon\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Erreur de la configuration de KEEPCAPS, abandon\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Erreur lors de la libération des capacités, abandon\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Erreur lors de la libération du SETUID, abandon\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Erreur lors de la libération de caps\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "translations non prises en charge sur une machine non MLS"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "Booléen"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "tout"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "Personnalisé"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "Étiquetage de fichier"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "Fichier\n"
+-#~ "Spécification"
+-
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "Contexte du fichier"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Fichier\n"
+-#~ "Type"
+-
+-#~ msgid "User Mapping"
+-#~ msgstr "Correspondance utilisateur"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "Utilisateur\n"
+-#~ "Nom"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "Identité"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "Plage MLS/\n"
+-#~ "MCS"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "L'ouverture de session en tant que Â« %s Â» est exigée"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "Module de stratégies"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "Désactiver l'audit"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "Activer l'audit"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "Charger un module de stratégie"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "traducteurs"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "Outil de génération de stratégies SELinux"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "Cet outil peut Ãªtre utilisé pour générer un modèle de stratégie, pour "
+-#~ "confiner des applications ou des utilisateurs qui se servent de SELinux.\n"
+-#~ "\n"
+-#~ "L'outil génère :\n"
+-#~ "un fichier de types applicables (te)\n"
+-#~ "un fichier d'interfaces (if)\n"
+-#~ "un fichier de contextes fichiers (fc)\n"
+-#~ "un script shell (sh) - utilisé pour compiler et installer la stratégie. "
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "Sélectionner le modèle d'application ou d'utilisateur Ã  confiner."
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Programmes</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "Les démons d'initialisation standards sont des démons chargés au "
+-#~ "démarrage par les scripts d'initialisation. Ils requièrent habituellement "
+-#~ "un script placé dans /etc/init.d"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "Démons d'initialisation standards"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "Les démons de services Internet sont des démons démarrés par xinetd"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Démons de services Internet (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "Applications Web / script (CGI) Scripts SGI démarrés par le serveur web "
+-#~ "(Apache)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Applications Web / scripts (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "Un programme utilisateur correspond Ã  tout programme que vous aimeriez "
+-#~ "confiner et qui peut Ãªtre démarré par un utilisateur"
+-
+-#~ msgid "User Application"
+-#~ msgstr "Programme utilisateur"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Identifiant de connexion</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "Modifier un enregistrement existant d'ouverture de session"
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "Modèles d'utilisateurs existant"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "Cet utilisateur va ouvrir une session sur une machine seulement par un "
+-#~ "terminal ou une connexion Ã  distance. Par défaut cet utilisateur n'aura "
+-#~ "pas de propriété setuid, pas de réseautage, pas de commandes sudo et su."
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "Modèle minimal de terminal utilisateur"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "Cet utilisateur peut ouvrir une session sur une machine par X ou par un "
+-#~ "terminal. Par défaut cet utilisateur n'aura pas de propriété setuid, pas "
+-#~ "de réseautage, pas de commandes sudo et su."
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "Modèle minimal de serveur X utilisateur"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "Utilisateur avec un réseautage complet, pas de propriété setuid sans "
+-#~ "transition, pas de commandes sudo et su."
+-
+-#~ msgid "User Role"
+-#~ msgstr "Modèle d'utilisateur"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "Utilisateur avec un réseautage complet, pas d'application setuid sans "
+-#~ "transition, pas de commande su, pouvant utiliser la commande sudo pour "
+-#~ "les tâches administratives réservées au Root"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "Rôle de l'administrateur"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Utilisateurs root</b>"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "Sélectionner le rôle d'utilisateur root, si cet utilisateur doit "
+-#~ "administrer la machine en tant que root. Cet utilisateur ne pourra pas "
+-#~ "ouvrir de session sur le système directement."
+-
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Modèle d'utilisateur root"
+-
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "Sélectionner le modèle d'application ou d'utilisateur Ã  confiner."
+-
+-#~ msgid "Name"
+-#~ msgstr "Nom"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "Entrez le chemin d'accès aux exécutables Ã  confiner."
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr ""
+-#~ "Entrer un nom de type unique pour le modèle d'utilisateur ou de programme "
+-#~ "à confiner."
+-
+-#~ msgid "Executable"
+-#~ msgstr "Exécutable"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Script d'initialisation"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "Entrez le chemin d'accès complet au script d'initialisation utilisé pour "
+-#~ "démarrer le programme confiné."
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "Sélectionnez les rôles d'utilisateur que vous voulez personnaliser"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr ""
+-#~ "Sélectionnez le modèle d'utilisateur qui va faire la transition aux "
+-#~ "domaines de cette application"
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr ""
+-#~ "Sélectionner le(s) domaine(s) supplémentaire(s) de l'utilisateur pour la "
+-#~ "transition"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "Sélectionner les domaines des applications vers lesquels vous souhaitez "
+-#~ "que ce modèle d'utilisateur effectue une transition."
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr ""
+-#~ "Sélectionnez le modèle d'utilisateur qui va faire la transition de ce "
+-#~ "domaine"
+-
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr ""
+-#~ "Sélectionner le(s) domaine(s) additionnel(s) que cet utilisateur "
+-#~ "administrera"
+-
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr ""
+-#~ "Sélectionner les domaines qui doivent Ãªtre administrés par cet "
+-#~ "utilisateur."
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "Sélectionner les rôles supplémentaires de cet utilisateur"
+-
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr ""
+-#~ "Entrez les ports réseau que ce modèle d'application/utilisateur Ã©coute"
+-
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>Ports TCP</b>"
+-
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "Permettre au modèle d'un utilisateur/programme confiné de se connecter Ã  "
+-#~ "n'importe quel port UDP"
+-
+-#~ msgid "All"
+-#~ msgstr "Tout"
+-
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "Permettre au modèle d'un utilisateur/programme d'appeler Â« bindresvport Â» "
+-#~ "avec 0. Connexion aux ports 600-1024"
+-
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Entrez une liste, séparés par des virgules, ou une plage de ports UDP "
+-#~ "auxquels ce modèle programme/utilisateur se connecte. Par exemple : 612, "
+-#~ "650-660 "
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "Ports non réservés (> 1024)"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "Sélectionner des ports"
+-
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "Permettre au modèle d'un utilisateur/programme de se connecter Ã  "
+-#~ "n'importe quel port UDP > 1024"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>Ports UDP</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "Entrez les ports réseau auxquel ce modèle application/utilisateur se "
+-#~ "connecte"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Entrez une liste, séparés par des virgules, ou une plage de ports UDP "
+-#~ "auxquels ce modèle de programme/utilisateur se connecte. "
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Entrez une liste de ports UDP séparés par une virgule auxquels ce modèle "
+-#~ "programme/utilisateur se connecte. Par exemple : 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "Sélectionner les caractéristiques communes de l'application"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "Le programme utilise syslog pour journaliser des messages\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "Créer/manipuler des fichiers temporaires dans /tmp"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "Utilise PAM pour l'authentification"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "Utilise les appels nsswitch ou getpw"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "Utilise dbus"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Envoie des messages audit"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "Interagit avec le terminal"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "Envoie un courrier Ã©lectronique"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "Sélectionnez les fichiers/répertoires que le programme gère"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "Ajoutez les fichiers/répertoires dans lesquels ce programme va devoir "
+-#~ "écrire. Fichiers PID, fichiers de journalisation, fichiers /var/lib..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "Sélectionnez les booléens que le programme utilise"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "Ajoutez/enlevez les booléens utilisés pour cette application/utilisateur "
+-#~ "même"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr ""
+-#~ "Sélectionnez un répertoire dans lequel générer les fichiers de stratégie"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "Répertoire de stratégie"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "Fichiers de stratégie générés"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Cet outil va générer les Ã©léments suivantes : type applicable (TE), "
+-#~ "contexte fichier (FC), interface (IF), script shell (SH).\n"
+-#~ "Exécutez le script shell pour compiler/installer et re-étiqueter les "
+-#~ "fichiers/répertoires.\n"
+-#~ "Utilisez \"semanage\" ou \"useradd\" pour organiser les logins "
+-#~ "utilisateurs Linux par rapport aux modèles. Passez en mode permissif "
+-#~ "(\"setenforce 0).\n"
+-#~ "Utilisez Â« audit2allow -R Â» pour générer des règles supplémentaires pour "
+-#~ "le fichier.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Cet outil va générer les Ã©léments suivantes : type applicable (TE), "
+-#~ "contexte fichier (FC), interface (IF), script shell (SH).\n"
+-#~ "Exécutez le script shell pour compiler/installer et re-étiqueter les "
+-#~ "fichiers/répertoires. Passez en mode permissif (« setenforce 0 Â»).\n"
+-#~ "Exécutez/redémarrez le programme pour générer les messages AVC.\n"
+-#~ "Utilisez Â« audit2allow -R Â» pour générer des règles supplémentaires pour "
+-#~ "le fichier.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "Ajout de boite de dialogue de booléens"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "Nom de Booléen"
+-
+-#~ msgid "Role"
+-#~ msgstr "Rôle"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "Utilisateur existant_"
+-
+-#~ msgid "Application"
+-#~ msgstr "Programme"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s doit Ãªtre un répertoire"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "Vous devez sélectionner un utilisateur"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "Sélectionner les fichiers exécutables Ã  confiner."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "Sélectionnez le script d'initialisation Ã  confiner."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr ""
+-#~ "Sélectionnez un ou plusieurs fichiers que le programme confiné crée ou "
+-#~ "dans lesquels il Ã©crit"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "Sélectionnez les répertoires que le programme confiné possède et dans "
+-#~ "lesquels il Ã©crit"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr ""
+-#~ "Sélectionnez un répertoire dans lequel générer les fichiers de stratégie"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Le type %s_t est déjà défini dans la stratégie.\n"
+-#~ "Voulez-vous continuer?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "Verifiez le nom"
+-
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Le module %s.pp est déjà chargé dans la stratégie.\n"
+-#~ "Voulez-vous continuer?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "Vous devez spécifier un nom"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Vous devez spécifier un exécutable"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "Configurer SELinux"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr ""
+-#~ "Les ports doivent Ãªtre des numéros ou des plages compris entre 1 et %d "
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr ""
+-#~ "Vous devez spécifier un nom pour votre processus/utilisateur confiné"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "Les types USER ne sont pas autorisés Ã  Ãªtre exécutables"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr ""
+-#~ "Seuls les programmes démons peuvent utiliser un script d'initialisation"
+-
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "« use_syslog Â» doit avoir une valeur booléenne "
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "Les types USER obtiennent automatiquement un type tmp"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr ""
+-#~ "Vous devez spécifier le chemin d'accès Ã  l'exécutable pour votre "
+-#~ "processus confiné"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Fichier de types applicables"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "Fichier d'interface"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "Fichier de contextes fichier"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "Script de configuration"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Port SELinux\n"
+-#~ "Type"
+-
+-#~ msgid "Protocol"
+-#~ msgstr "Protocole"
+-
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "Niveau"
+-
+-#~ msgid "Port"
+-#~ msgstr "Port"
+-
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "Le numéro de port Â« %s Â» est invalide. 0 < NUMERO_DE_PORT < 65536 "
+-
+-#~ msgid "List View"
+-#~ msgstr "Affichage par liste"
+-
+-#~ msgid "Group View"
+-#~ msgstr "Affichage par groupe"
+-
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "Protection des services SELinux"
+-
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon Â« acct Â»"
+-
+-#~ msgid "Admin"
+-#~ msgstr "Administrateur"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "Permettre Ã  tous les démons d'écrire des vidages mémoires dans /"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "Permettre Ã  tous les démons d'utiliser des TTY non alloués"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "Privilèges utilisateur"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permettre au compte d'identité SELinux Â« gadmin Â» d'éxecuter des fichiers "
+-#~ "dans son répertoire Â« home Â» ou dans /tmp"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permettre au compte d'identité SELinux Â« guest Â» d'éxecuter des fichiers "
+-#~ "dans son répertoire Â« home Â» ou dans /tmp"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "Protection mémoire"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "Autoriser l'exécution de code dans la pile de Java"
+-
+-#~ msgid "Mount"
+-#~ msgstr "Monter"
+-
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "Permettre Ã  Â« mount Â» de monter n'importe quel fichier"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "Permettre Ã  Â« mount Â» de monter n'importe quel répertoire"
+-
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "Autoriser l'exécution de code dans la pile de Mplayer"
+-
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
+-
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "Permettre Ã  ssh d'exécuter Â« ssh-keysign Â»"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permettre au compte d'identité SELinux Â« staff Â» d'exécuter des fichiers "
+-#~ "dans son répertoire Â« home Â» ou dans /tmp"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permettre au compte d'identité SELinux Â« sysadm Â» d'exécuter des fichiers "
+-#~ "dans son répertoire Â« home Â» ou dans /tmp"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "Permettre au compte d'identité SELinux Â« unconfined Â» d'exécuter des "
+-#~ "fichiers dans son répertoire Â« home Â» ou dans /tmp"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Configuration réseau"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "Permettre aux paquets non Ã©tiquetés de circuler sur le réseau"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "Permettre au compte d'identité SELinux Â« user Â» d'exécuter des fichiers "
+-#~ "dans son répertoire Â« home Â» ou dans /tmp"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr ""
+-#~ "Autoriser les non confinés Ã  faire une transition dynamique en Â« "
+-#~ "unconfined_execmem Â»"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Bases de données"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "Permettre Ã  l'utilisateur de se connecter au socket Â« mysql Â»"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "Permettre Ã  l'utilisateur de se connecter au socket Â« postgres Â»"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "Serveur X"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "Permettre aux clients d'écrire dans la mémoire partagée de X"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permettre au compte utilisateur SELinux Â« xguest Â» d'exécuter des "
+-#~ "fichiers dans son répertoire Â« home Â» ou dans /tmp"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "Permettre aux démons de s'exécuter avec NIS"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "Applications Web"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "Transition de l'identité SELinux Â« staff Â» vers le domaine Â« Web Browser Â»"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "Transition de l'identité SELinux Â« sysadm Â» vers le domaine Â« Web Browser "
+-#~ "»"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "Transition de l'identité SELinux Â« user Â» vers le domaine Â« Web Browser Â»"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "Transition de l'identité SELinux Â« xguest Â» vers le domaine Â« Web Browser "
+-#~ "»"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr ""
+-#~ "Permettre aux Â« Web Browsers Â» de staff d'écrire dans les répertoires "
+-#~ "personnels"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "Désactiver la protection SELinux pour amanda"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "Désactiver la protection SELinux pour amavis"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon apmd"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon arpwatch"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon auditd"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon automount"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "Désactiver la protection SELinux pour avahi"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon bluetooth"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon canna"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon cardmgr"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Désactiver la protection SELinux pour le serveur Cluster"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "Permettre Ã  cdrecord de lire de nombreux contenus : nfs, samba, "
+-#~ "périphériques extractibles, répertoires temp d'utilisateurs et fichiers "
+-#~ "non dignes de confiance"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon ciped"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon clamd"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "Désactiver la protection SELinux pour clamscan"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "Désactiver la protection SELinux pour clvmd"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "Désactiver la protection SELinux pour démon comsat"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon courier"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon cpucontrol"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon cpuspeed"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon crond"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "Impression"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "Désactiver la protection SELinux pour le serveur cupsd"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon cupsd"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "Désactiver la protection SELinux pour cupsd_lpd"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon CVS"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon cyrus"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon dbskkd"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon dbusd"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "Désactiver la protection SELinux pour dccd"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "Désactiver la protection SELinux pour dccifd"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "Désactiver la protection SELinux pour dccm"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon ddt"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon devfsd"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon dhcpc"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon dhcpd"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon dictd"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "Permettre Ã  sysadmin_t de démarrer directement des démons"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Désactiver la protection SELinux pour Evolution"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "Jeux"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "Désactiver la protection SELinux pour games"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "Désactiver la protection SELinux pour web browsers"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Désactiver la protection SELinux pour Thunderbird"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon distccd"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon dmesg"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon dnsmasq"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon dovecot"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon entropyd"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "Désactiver la protection SELinux pour fetchmail"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon fingerd"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon freshclam"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon fsdaemon"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon gpm"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon gss"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon hal"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "Compatibilité"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "Ne pas auditer les Ã©léments défectueux qui ne constituent pas un risque "
+-#~ "en terme de sécurité"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon hostname"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon hotplug"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon howl"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon cups hplip"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "Désactiver la protection SELinux pour httpd rotatelogs"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "Service HTTPD"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "Désactiver la protection SELinux pour http suexec"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon hwclock"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon i18n"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon imazesrv"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "Désactiver la protection SELinux pour les démons inetd child"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon inetd"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon innd"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon iptables"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon ircd"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon irqbalance"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon iscsi"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon jabberd"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon kadmind"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon klogd"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon krb5kdc"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "Désactiver la protection SELinux pour le démon ktalk"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon kudzu"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon locate"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon lpd"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon lrrd"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon lvm"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "Désactiver la protection SELinux pour mailman"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr ""
+-#~ "Permettre Ã  Evolution et Thunderbird de lire les fichiers utilisateur"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon mdadm"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon monopd"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "Permettre au navigateur mozilla de lire les fichiers utilisateur"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon mrtg"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon mysqld"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon nagios"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "Service de nom"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon named"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon nessusd"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "Désactiver la protection SELinux pour NetworkManager"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon nfsd"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon nmbd"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon nrpe"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon nscd"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon nsd"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon ntpd"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "Désactiver la protection SELinux pour oddjob"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "Désactiver la protection SELinux pour oddjob_mkhomedir"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon openvpn"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon pam"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "Désactiver la protection SELinux pour pegasus"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon perdition"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon portmap"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon portslave"
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "Désactiver la protection SELinux pour postfix"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon postgresql"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "Permettre Ã  un utilisateur ordinaire d'exécuter pppd"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "Désactiver la protection SELinux pour pptp"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon prelink"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon privoxy"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon ptal"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon pxe"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "Désactiver la protection SELinux pour pyzord"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon quota"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon radiusd"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon radvd"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "Désactiver la protection SELinux pour rdisc"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "Désactiver la protection SELinux pour readahead"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "Permettre aux programmes de lire des fichiers Ã  des emplacements non "
+-#~ "standards (default_t)"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "Désactiver la protection SELinux pour restorecond"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon rhgb"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "Désactiver la protection SELinux pour ricci"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "Désactiver la protection SELinux pour ricci_modclusterd"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon rlogind"
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon rpcd"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "Désactiver la protection SELinux pour rshd"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon rsync"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "Permettre Ã  ssh de s'exécuter depuis inetd et non en tant que démon"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Permettre Ã  Samba de partager des répertoires NFS"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Serveur d'authentification SASL"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "Permettre au serveur d'authentification SASL de lire /etc/shadow"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "Permettre au serveur X-Window de considérer une zone mémoire comme "
+-#~ "exécutable et pouvant Ãªtre Ã©crite"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon saslauthd"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon scannerdaemon"
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "Interdire la transition vers sysadmin_t, effectuée par sudo et su"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "Interdire Ã  tout processus de charger des modules noyau"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr ""
+-#~ "Interdire Ã  tout processus de modifier la stratégie SELinux du noyau"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon sendmail"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "Désactiver la protection SELinux pour setrans"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon setroubleshoot"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon slapd"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon slrnpull"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon smbd"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon snmpd"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon snort"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon soundd"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon sound"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "Protection anti-spam"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon spamd"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "Autoriser l'accès de spamd aux répertoires personnels"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Permettre l'accès réseau au  démon Spam Assassin"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon speedmgmt"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "Autoriser l'accès réseau au démon squid"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon squid"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon ssh"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "Autoriser l'ouverture de session ssh en tant que sysadm_r:sysadm_t"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "Autoriser les utilisateurs staff_r Ã  chercher dans le répertoire "
+-#~ "personnel de sysadm et Ã  lire des fichiers (comme ~/.bashrc par exemple)"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Tunnel SSL universel"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon stunnel"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr ""
+-#~ "Autoriser le démon stunnel Ã  s'exécuter de manière autonome, hors de "
+-#~ "xinetd"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon swat"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon sxid"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon syslogd"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "Désactiver la protection SELinux pour les travaux système cron"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon tcp"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon telnet"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon tftpd"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon transproxy"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon udev"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon uml"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Autoriser xinetd Ã  s'exécuter de manière non confinée, y compris tout "
+-#~ "service qu'il démarre et qui n'a pas de transition de domaine "
+-#~ "explicitement définie"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Autoriser les scripts rc Ã  s'exécuter de manière non confinée, y compris "
+-#~ "tout service qu'ils démarrent et qui n'a pas de transition de domaine "
+-#~ "explicitement définie"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "Autoriser rpm Ã  s'exécuter de manière non confinée"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "Autoriser les utilitaires privilégiés comme hotplug et insmod Ã  "
+-#~ "s'exécuter de manière non confinée"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon updfstab"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon uptimed"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "Autoriser user_r Ã  passer sysadm_r via su, sudo ou userhelper. Dans le "
+-#~ "cas contraire, seul staff_r est habilité Ã  le faire"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "Autoriser les utilisateurs Ã  exécuter la commande Â« mount Â»"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "Donner aux utilisateurs ordinaires un accès direct Ã  la souris (seul le "
+-#~ "serveur X a cet accès)"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "Autoriser les utilisateurs Ã  exécuter la commande Â« dmesg Â»"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "Autoriser les utilisateurs Ã  contrôler les interfaces réseau (il faut "
+-#~ "aussi que USERCTL=true)"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr ""
+-#~ "Autoriser les utilisateurs ordinaires Ã  exécuter la commande Â« ping Â»"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr ""
+-#~ "Autoriser l'utilisateur Ã  lire/écrire les noextattrfile (FAT, CDROM, "
+-#~ "disquette)"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "Autoriser les utilisateurs Ã  lire/écrire dans des périphériques USB"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "Autoriser les utilisateurs Ã  lancer des serveurs TCP (lier Ã  des ports et "
+-#~ "accepter des connexions d'un même domaine ou d'utilisateurs extérieurs). "
+-#~ "Désactiver cette option force le mode FTP passif et peut avoir une "
+-#~ "influence sur d'autres protocoles"
+-
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr ""
+-#~ "Autoriser l'utilisateur Ã  effectuer un Â« stat Â» sur les fichiers TTY"
+-
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon uucpd"
+-
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon vmware"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon watchdog"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon winbind"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon xdm"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr ""
+-#~ "Autoriser les ouvertures de session xdm en tant que sysadm_r:sysadm_t"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon xen"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "Autoriser xen Ã  lire/écrire sur des périphériques disques physiques"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon xfs"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "Désactiver la protection SELinux pour xen control"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon ypbind"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon NIS Password"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon ypserv"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "Désactiver la protection SELinux pour le démon NIS Transfer"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Autoriser l'utilisateur SELinux webadm Ã  gérer les répertoires personnels "
+-#~ "des utilisateurs non privilégiés"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Autoriser l'utilisateur SELinux webadm Ã  lire les répertoires personnels "
+-#~ "des utilisateurs non privilégiés"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "Êtes-vous sur de vouloir supprimer %s Â« %s Â» ?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "Supprimer %s"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "Ajouter %s"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "Modifier %s"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "Permissif"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "Strict"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Changer de type de stratégie va entraîner un ré-étiqutage de l'ensemble "
+-#~ "du système de fichier au prochain démarrage. Le ré-étiquetage est une "
+-#~ "opération longue dont la durée dépend de la taille de votre système de "
+-#~ "fichiers. Voulez-vous continuer ?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Désactiver SELinux exige un redémarrage. Cette opération n'est pas "
+-#~ "recommandée. Si vous décidez plus tard de réactiver SELinux, il faudra "
+-#~ "procéder Ã  un ré-étiquetage du système de fichier. Si vous souhaitez "
+-#~ "seulement voir si SELinux pose un problème sur votre système, vous pouvez "
+-#~ "passer en mode permissif, ce qui permet de journaliser les erreurs sans "
+-#~ "modifier la stratégie SELinux. Le passage en mode permissif ne nécessite "
+-#~ "pas de redémarrage. Voulez-vous continuer malgré tout ?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Changer pour une stratégie active va entraîner un ré-étiqutage de "
+-#~ "l'ensemble du système de fichier au prochain démarrage. Le ré-étiquetage "
+-#~ "est une opération longue dont la durée dépend de la taille de votre "
+-#~ "système de fichiers. Voulez-vous continuer ?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c) 2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "Ajouter les correspondances utilisateurs - identités SELinux"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "Ajouter les ports réseau SELinux"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "Type SELinux"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "TCP\n"
+-#~ "UDP"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "Niveau MLS/MCS\n"
+-#~ "SELinux"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "Spécification de fichier"
+-
+-#~ msgid "File Type"
+-#~ msgstr "Type de fichier"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "tout fichier\n"
+-#~ "fichier ordinaire\n"
+-#~ "répertoire\n"
+-#~ "périphérique en mode caractères\n"
+-#~ "périphérique en mode block\n"
+-#~ "socket\n"
+-#~ "lien symbolique\n"
+-#~ "tube nommé\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Ajouter une identité SELinux"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "Administration SELinux"
+-
+-#~ msgid "Add"
+-#~ msgstr "Ajouter"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "_Propriétés"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "_Supprimer"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "Sélectionnez l'objet de gestion"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Sélectionnez :</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "Mode de protection par défaut du système"
+-
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "Mode de protection en vigueur"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "Type de stratégie par défaut pour le système : "
+-
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "Sélectionnez si vous souhaitez ré-étiqueter l'intégralité du système de "
+-#~ "fichiers au prochain démarrage. Le ré-étiquetage peut prendre un temps "
+-#~ "considérable, qui dépend de la taille de votre système de fichiers. Si "
+-#~ "vous Ãªtes en train de changer de type de stratégie ou si vous passez de Â« "
+-#~ "désactivé Â» Ã  Â« strict Â», un ré-étiquetage est obligatoire."
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Ré-étiquetage au prochain redémarrage."
+-
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "Faire revenir les réglages booléens Ã  ceux du sytéme par défaut"
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "Basculer entre les booléens personnalisés et tous les booléens"
+-
+-#~ msgid "Filter"
+-#~ msgstr "Filtre"
+-
+-#~ msgid "Add File Context"
+-#~ msgstr "Ajouter un contexte du fichier"
+-
+-#~ msgid "Modify File Context"
+-#~ msgstr "Modifier le contexte du fichier"
+-
+-#~ msgid "Delete File Context"
+-#~ msgstr "Supprimer un contexte du fichier"
+-
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr ""
+-#~ "Basculer entre les contextes de fichier personnalisés et tous les "
+-#~ "contextes de fichiers"
+-
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "Ajouter une correspondance utilisateurs - identités SELinux"
+-
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Modifier une correspondance utilisateurs - identités SELinux"
+-
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Supprimer une correspondance utilisateurs - identités SELinux"
+-
+-#~ msgid "Add Translation"
+-#~ msgstr "Ajouter une translation"
+-
+-#~ msgid "Modify Translation"
+-#~ msgstr "Modifier une translation"
+-
+-#~ msgid "Delete Translation"
+-#~ msgstr "Supprimer une translation"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Modifier une identité SELinux"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "Ajouter un port réseau"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "Éditer un port réseau"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "Supprimer un port réseau"
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "Basculer entre les ports personnalisés et tous les ports"
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "Générer un module pour une nouvelle stratégie"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "Charger un module de stratégie"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "Effacer un module de stratégie chargeable"
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "Activer/désactiver les règles supplémentaires d'audit, qui ne sont "
+-#~ "normalement pas reportées dans les fichiers journaux."
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "Niveau de sensibilité"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "L'identité SELinux Â« %s Â» est exigée"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Valeur requise"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "Permet au modèle d'un utilisateur ou d'un programme de se connecter Ã  "
+-#~ "n'importe quel port TCP > 1024"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "Permettre au modèle d'un utilisateur ou d'un programme confiné de se "
+-#~ "connecter Ã  n'importe quel port TCP"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Entrez une liste, séparés par des virgules, ou une plage de ports TCP "
+-#~ "auxquels ce modèle de programme/utilisateur se connecte. "
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "Générateur de stratégies SELinux"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "Ports non réservés  (> 1024)"
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr ""
+-#~ "Cochez ce bouton si votre programme appelle Â« bindresvport Â» avec 0."
+-
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "Strict\n"
+-#~ "Permissif\n"
+-#~ "Désactivé\n"
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/gl.po b/policycoreutils/po/gl.po
+new file mode 100644
+index 0000000..005eac0
+--- /dev/null
++++ b/policycoreutils/po/gl.po
+@@ -0,0 +1,3367 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++msgid ""
++msgstr ""
++"Project-Id-Version: Policycoreutils\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-03-30 18:14+0000\n"
++"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
++"Language-Team: Galician (http://www.transifex.net/projects/p/fedora/language/"
++"gl/)\n"
++"Language: gl\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
++
++#: ../run_init/run_init.c:67
++msgid ""
++"USAGE: run_init <script> <args ...>\n"
++"  where: <script> is the name of the init script to run,\n"
++"         <args ...> are the arguments to that script."
++msgstr ""
++
++#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
++#, c-format
++msgid "failed to initialize PAM\n"
++msgstr ""
++
++#: ../run_init/run_init.c:139
++#, c-format
++msgid "failed to get account information\n"
++msgstr ""
++
++#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
++msgid "Password:"
++msgstr ""
++
++#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
++#, c-format
++msgid "Cannot find your entry in the shadow passwd file.\n"
++msgstr ""
++
++#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
++#, c-format
++msgid "getpass cannot open /dev/tty\n"
++msgstr ""
++
++#: ../run_init/run_init.c:275
++#, c-format
++msgid "run_init: incorrect password for %s\n"
++msgstr ""
++
++#: ../run_init/run_init.c:309
++#, c-format
++msgid "Could not open file %s\n"
++msgstr ""
++
++#: ../run_init/run_init.c:336
++#, c-format
++msgid "No context in file %s\n"
++msgstr ""
++
++#: ../run_init/run_init.c:361
++#, c-format
++msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
++msgstr ""
++
++#: ../run_init/run_init.c:380
++#, c-format
++msgid "authentication failed.\n"
++msgstr ""
++
++#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
++#, c-format
++msgid "Could not set exec context to %s.\n"
++msgstr ""
++
++#: ../audit2allow/audit2allow:230
++msgid "******************** IMPORTANT ***********************\n"
++msgstr ""
++
++#: ../audit2allow/audit2allow:231
++msgid "To make this policy package active, execute:"
++msgstr ""
++
++#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
++msgid "global"
++msgstr ""
++
++#: ../semanage/seobject.py:222
++msgid "Could not create semanage handle"
++msgstr ""
++
++#: ../semanage/seobject.py:230
++msgid "SELinux policy is not managed or store cannot be accessed."
++msgstr ""
++
++#: ../semanage/seobject.py:235
++msgid "Cannot read policy store."
++msgstr ""
++
++#: ../semanage/seobject.py:240
++msgid "Could not establish semanage connection"
++msgstr ""
++
++#: ../semanage/seobject.py:245
++msgid "Could not test MLS enabled status"
++msgstr ""
++
++#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
++msgid "Not yet implemented"
++msgstr ""
++
++#: ../semanage/seobject.py:255
++msgid "Semanage transaction already in progress"
++msgstr ""
++
++#: ../semanage/seobject.py:264
++msgid "Could not start semanage transaction"
++msgstr ""
++
++#: ../semanage/seobject.py:274
++msgid "Could not commit semanage transaction"
++msgstr ""
++
++#: ../semanage/seobject.py:279
++msgid "Semanage transaction not in progress"
++msgstr ""
++
++#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
++msgid "Could not list SELinux modules"
++msgstr ""
++
++#: ../semanage/seobject.py:304
++msgid "Modules Name"
++msgstr ""
++
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
++msgid "Version"
++msgstr ""
++
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
++msgid "Disabled"
++msgstr ""
++
++#: ../semanage/seobject.py:322
++#, python-format
++msgid "Could not disable module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:333
++#, python-format
++msgid "Could not enable module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:348
++#, python-format
++msgid "Could not remove module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:358
++msgid "dontaudit requires either 'on' or 'off'"
++msgstr ""
++
++#: ../semanage/seobject.py:387
++msgid "Builtin Permissive Types"
++msgstr ""
++
++#: ../semanage/seobject.py:397
++msgid "Customized Permissive Types"
++msgstr ""
++
++#: ../semanage/seobject.py:438
++#, python-format
++msgid "Could not set permissive domain %s (module installation failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:444
++#, python-format
++msgid "Could not remove permissive domain %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
++#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
++#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
++#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
++#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
++#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
++#: ../semanage/seobject.py:2037
++#, python-format
++msgid "Could not create a key for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
++#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
++#, python-format
++msgid "Could not check if login mapping for %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:492
++#, python-format
++msgid "Linux Group %s does not exist"
++msgstr ""
++
++#: ../semanage/seobject.py:497
++#, python-format
++msgid "Linux User %s does not exist"
++msgstr ""
++
++#: ../semanage/seobject.py:501
++#, python-format
++msgid "Could not create login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
++#, python-format
++msgid "Could not set name for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
++#, python-format
++msgid "Could not set MLS range for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:514
++#, python-format
++msgid "Could not set SELinux user for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:518
++#, python-format
++msgid "Could not add login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:536
++msgid "Requires seuser or serange"
++msgstr ""
++
++#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
++#, python-format
++msgid "Login mapping for %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:563
++#, python-format
++msgid "Could not query seuser for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:577
++#, python-format
++msgid "Could not modify login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:611
++#, python-format
++msgid "Login mapping for %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:615
++#, python-format
++msgid "Could not delete login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
++#: ../semanage/seobject.py:893
++msgid "Could not list login mappings"
++msgstr ""
++
++#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
++msgid "Login Name"
++msgstr ""
++
++#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
++msgid "SELinux User"
++msgstr ""
++
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
++msgid "MLS/MCS Range"
++msgstr ""
++
++#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
++#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
++#: ../semanage/seobject.py:860
++#, python-format
++msgid "Could not check if SELinux user %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
++#: ../semanage/seobject.py:866
++#, python-format
++msgid "Could not query user for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:722
++#, python-format
++msgid "You must add at least one role for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:737
++#, python-format
++msgid "Could not create SELinux user for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:746
++#, python-format
++msgid "Could not add role %s for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:755
++#, python-format
++msgid "Could not set MLS level for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:758
++#, python-format
++msgid "Could not add prefix %s for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:761
++#, python-format
++msgid "Could not extract key for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:765
++#, python-format
++msgid "Could not add SELinux user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:787
++msgid "Requires prefix, roles, level or range"
++msgstr ""
++
++#: ../semanage/seobject.py:789
++msgid "Requires prefix or roles"
++msgstr ""
++
++#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
++#, python-format
++msgid "SELinux user %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:828
++#, python-format
++msgid "Could not modify SELinux user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:862
++#, python-format
++msgid "SELinux user %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:873
++#, python-format
++msgid "Could not delete SELinux user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:911
++msgid "Could not list SELinux users"
++msgstr ""
++
++#: ../semanage/seobject.py:917
++#, python-format
++msgid "Could not list roles for user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:942
++msgid "Labeling"
++msgstr ""
++
++#: ../semanage/seobject.py:942
++msgid "MLS/"
++msgstr ""
++
++#: ../semanage/seobject.py:943
++msgid "Prefix"
++msgstr ""
++
++#: ../semanage/seobject.py:943
++msgid "MCS Level"
++msgstr ""
++
++#: ../semanage/seobject.py:943
++msgid "MCS Range"
++msgstr ""
++
++#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
++msgid "SELinux Roles"
++msgstr ""
++
++#: ../semanage/seobject.py:963
++msgid "Protocol udp or tcp is required"
++msgstr ""
++
++#: ../semanage/seobject.py:965
++msgid "Port is required"
++msgstr ""
++
++#: ../semanage/seobject.py:975
++msgid "Invalid Port"
++msgstr ""
++
++#: ../semanage/seobject.py:979
++#, python-format
++msgid "Could not create a key for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:990
++msgid "Type is required"
++msgstr ""
++
++#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
++#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
++#, python-format
++msgid "Could not check if port %s/%s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:998
++#, python-format
++msgid "Port %s/%s already defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1002
++#, python-format
++msgid "Could not create port for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1008
++#, python-format
++msgid "Could not create context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1012
++#, python-format
++msgid "Could not set user in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1016
++#, python-format
++msgid "Could not set role in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1020
++#, python-format
++msgid "Could not set type in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1025
++#, python-format
++msgid "Could not set mls fields in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1029
++#, python-format
++msgid "Could not set port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1033
++#, python-format
++msgid "Could not add port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
++#: ../semanage/seobject.py:1508
++msgid "Requires setype or serange"
++msgstr ""
++
++#: ../semanage/seobject.py:1049
++msgid "Requires setype"
++msgstr ""
++
++#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
++#, python-format
++msgid "Port %s/%s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1061
++#, python-format
++msgid "Could not query port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1072
++#, python-format
++msgid "Could not modify port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1085
++msgid "Could not list the ports"
++msgstr ""
++
++#: ../semanage/seobject.py:1101
++#, python-format
++msgid "Could not delete the port %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1118
++#, python-format
++msgid "Port %s/%s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1122
++#, python-format
++msgid "Could not delete port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
++msgid "Could not list ports"
++msgstr ""
++
++#: ../semanage/seobject.py:1199
++msgid "SELinux Port Type"
++msgstr ""
++
++#: ../semanage/seobject.py:1199
++msgid "Proto"
++msgstr ""
++
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
++msgid "Port Number"
++msgstr ""
++
++#: ../semanage/seobject.py:1218
++msgid "Node Address is required"
++msgstr ""
++
++#: ../semanage/seobject.py:1233
++msgid "Unknown or missing protocol"
++msgstr ""
++
++#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
++#: ../semanage/seobject.py:1724
++msgid "SELinux Type is required"
++msgstr ""
++
++#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
++#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
++#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
++#: ../semanage/seobject.py:1728
++#, python-format
++msgid "Could not create key for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
++#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
++#, python-format
++msgid "Could not check if addr %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1262
++#, python-format
++msgid "Could not create addr for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
++#: ../semanage/seobject.py:1686
++#, python-format
++msgid "Could not create context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1272
++#, python-format
++msgid "Could not set mask for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1276
++#, python-format
++msgid "Could not set user in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1280
++#, python-format
++msgid "Could not set role in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1284
++#, python-format
++msgid "Could not set type in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1289
++#, python-format
++msgid "Could not set mls fields in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1293
++#, python-format
++msgid "Could not set addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1297
++#, python-format
++msgid "Could not add addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
++#, python-format
++msgid "Addr %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1326
++#, python-format
++msgid "Could not query addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1336
++#, python-format
++msgid "Could not modify addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1364
++#, python-format
++msgid "Addr %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1368
++#, python-format
++msgid "Could not delete addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1380
++msgid "Could not deleteall node mappings"
++msgstr ""
++
++#: ../semanage/seobject.py:1394
++msgid "Could not list addrs"
++msgstr ""
++
++#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
++#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
++#, python-format
++msgid "Could not check if interface %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1461
++#, python-format
++msgid "Could not create interface for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1470
++#, python-format
++msgid "Could not set user in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1474
++#, python-format
++msgid "Could not set role in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1478
++#, python-format
++msgid "Could not set type in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1483
++#, python-format
++msgid "Could not set mls fields in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1487
++#, python-format
++msgid "Could not set interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1491
++#, python-format
++msgid "Could not set message context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1495
++#, python-format
++msgid "Could not add interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
++#, python-format
++msgid "Interface %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1522
++#, python-format
++msgid "Could not query interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1533
++#, python-format
++msgid "Could not modify interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1558
++#, python-format
++msgid "Interface %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1562
++#, python-format
++msgid "Could not delete interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1574
++msgid "Could not delete all interface  mappings"
++msgstr ""
++
++#: ../semanage/seobject.py:1588
++msgid "Could not list interfaces"
++msgstr ""
++
++#: ../semanage/seobject.py:1613
++msgid "SELinux Interface"
++msgstr ""
++
++#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
++msgid "Context"
++msgstr ""
++
++#: ../semanage/seobject.py:1663
++#, python-format
++msgid "Equivalence class for %s already exists"
++msgstr ""
++
++#: ../semanage/seobject.py:1669
++#, python-format
++msgid "File spec %s conflicts with equivalency rule '%s %s'"
++msgstr ""
++
++#: ../semanage/seobject.py:1678
++#, python-format
++msgid "Equivalence class for %s does not exists"
++msgstr ""
++
++#: ../semanage/seobject.py:1692
++#, python-format
++msgid "Could not set user in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1696
++#, python-format
++msgid "Could not set role in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
++#, python-format
++msgid "Could not set mls fields in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1707
++msgid "Invalid file specification"
++msgstr ""
++
++#: ../semanage/seobject.py:1709
++msgid "File specification can not include spaces"
++msgstr ""
++
++#: ../semanage/seobject.py:1714
++#, python-format
++msgid ""
++"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
++msgstr ""
++
++#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
++#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
++#: ../semanage/seobject.py:1876
++#, python-format
++msgid "Could not check if file context for %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1745
++#, python-format
++msgid "Could not create file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1753
++#, python-format
++msgid "Could not set type in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
++#: ../semanage/seobject.py:1822
++#, python-format
++msgid "Could not set file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1767
++#, python-format
++msgid "Could not add file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1781
++msgid "Requires setype, serange or seuser"
++msgstr ""
++
++#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
++#, python-format
++msgid "File context for %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1800
++#, python-format
++msgid "Could not query file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1826
++#, python-format
++msgid "Could not modify file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1839
++msgid "Could not list the file contexts"
++msgstr ""
++
++#: ../semanage/seobject.py:1853
++#, python-format
++msgid "Could not delete the file context %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1878
++#, python-format
++msgid "File context for %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1884
++#, python-format
++msgid "Could not delete file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1899
++msgid "Could not list file contexts"
++msgstr ""
++
++#: ../semanage/seobject.py:1903
++msgid "Could not list local file contexts"
++msgstr ""
++
++#: ../semanage/seobject.py:1936
++msgid "SELinux fcontext"
++msgstr ""
++
++#: ../semanage/seobject.py:1936
++msgid "type"
++msgstr ""
++
++#: ../semanage/seobject.py:1949
++msgid ""
++"\n"
++"SELinux Distribution fcontext Equivalence \n"
++msgstr ""
++
++#: ../semanage/seobject.py:1954
++msgid ""
++"\n"
++"SELinux Local fcontext Equivalence \n"
++msgstr ""
++
++#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
++#: ../semanage/seobject.py:2046
++#, python-format
++msgid "Could not check if boolean %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
++#, python-format
++msgid "Boolean %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1994
++#, python-format
++msgid "Could not query file context %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1999
++#, python-format
++msgid "You must specify one of the following values: %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2004
++#, python-format
++msgid "Could not set active value of boolean %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2007
++#, python-format
++msgid "Could not modify boolean %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2025
++#, python-format
++msgid "Bad format %s: Record %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2048
++#, python-format
++msgid "Boolean %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:2052
++#, python-format
++msgid "Could not delete boolean %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
++msgid "Could not list booleans"
++msgstr ""
++
++#: ../semanage/seobject.py:2104
++msgid "unknown"
++msgstr ""
++
++#: ../semanage/seobject.py:2117
++msgid "off"
++msgstr ""
++
++#: ../semanage/seobject.py:2117
++msgid "on"
++msgstr ""
++
++#: ../semanage/seobject.py:2131
++msgid "SELinux boolean"
++msgstr ""
++
++#: ../semanage/seobject.py:2131
++msgid "State"
++msgstr ""
++
++#: ../semanage/seobject.py:2131
++msgid "Default"
++msgstr ""
++
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
++msgid "Description"
++msgstr ""
++
++#: ../newrole/newrole.c:201
++#, c-format
++msgid "failed to set PAM_TTY\n"
++msgstr ""
++
++#: ../newrole/newrole.c:290
++#, c-format
++msgid "newrole: service name configuration hashtable overflow\n"
++msgstr ""
++
++#: ../newrole/newrole.c:300
++#, c-format
++msgid "newrole:  %s:  error on line %lu.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:439
++#, c-format
++msgid "cannot find valid entry in the passwd file.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:450
++#, c-format
++msgid "Out of memory!\n"
++msgstr ""
++
++#: ../newrole/newrole.c:455
++#, c-format
++msgid "Error!  Shell is not valid.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:512
++#, c-format
++msgid "Unable to clear environment\n"
++msgstr ""
++
++#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
++#, c-format
++msgid "Error changing uid, aborting.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:612
++#, c-format
++msgid "Error resetting KEEPCAPS, aborting\n"
++msgstr ""
++
++#: ../newrole/newrole.c:635
++#, c-format
++msgid "Error connecting to audit system.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:641
++#, c-format
++msgid "Error allocating memory.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:648
++#, c-format
++msgid "Error sending audit message.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
++#, c-format
++msgid "Could not determine enforcing mode.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:699
++#, c-format
++msgid "Error!  Could not open %s.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:705
++#, c-format
++msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:715
++#, c-format
++msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:725
++#, c-format
++msgid "%s!  Could not set new context for %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:772
++#, c-format
++msgid "%s changed labels.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:778
++#, c-format
++msgid "Warning! Could not restore context for %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:835
++#, c-format
++msgid "Error: multiple roles specified\n"
++msgstr ""
++
++#: ../newrole/newrole.c:843
++#, c-format
++msgid "Error: multiple types specified\n"
++msgstr ""
++
++#: ../newrole/newrole.c:850
++#, c-format
++msgid "Sorry, -l may be used with SELinux MLS support.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:855
++#, c-format
++msgid "Error: multiple levels specified\n"
++msgstr ""
++
++#: ../newrole/newrole.c:865
++#, c-format
++msgid "Error: you are not allowed to change levels on a non secure terminal \n"
++msgstr ""
++
++#: ../newrole/newrole.c:891
++#, c-format
++msgid "Couldn't get default type.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:901
++#, c-format
++msgid "failed to get new context.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:908
++#, c-format
++msgid "failed to set new role %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:915
++#, c-format
++msgid "failed to set new type %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:925
++#, c-format
++msgid "failed to build new range with level %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:930
++#, c-format
++msgid "failed to set new range %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:938
++#, c-format
++msgid "failed to convert new context to string\n"
++msgstr ""
++
++#: ../newrole/newrole.c:943
++#, c-format
++msgid "%s is not a valid context\n"
++msgstr ""
++
++#: ../newrole/newrole.c:950
++#, c-format
++msgid "Unable to allocate memory for new_context"
++msgstr ""
++
++#: ../newrole/newrole.c:976
++#, c-format
++msgid "Unable to obtain empty signal set\n"
++msgstr ""
++
++#: ../newrole/newrole.c:984
++#, c-format
++msgid "Unable to set SIGHUP handler\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1053
++#, c-format
++msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1070
++#, c-format
++msgid "failed to get old_context.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1077
++#, c-format
++msgid "Warning!  Could not retrieve tty information.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1098
++#, c-format
++msgid "error on reading PAM service configuration.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1133
++#, c-format
++msgid "newrole: incorrect password for %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1160
++#, c-format
++msgid "newrole: failure forking: %s"
++msgstr ""
++
++#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
++#, c-format
++msgid "Unable to restore tty label...\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
++#, c-format
++msgid "Failed to close tty properly\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1224
++#, c-format
++msgid "Could not close descriptors.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1251
++#, c-format
++msgid "Error allocating shell's argv0.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1287
++#, c-format
++msgid "Unable to restore the environment, aborting\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1298
++msgid "failed to exec shell\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:22
++#, c-format
++msgid "usage:  %s [-qi]\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:71
++#, c-format
++msgid "%s:  Policy is already loaded and initial load requested\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:80
++#, c-format
++msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:90
++#, c-format
++msgid "%s:  Can't load policy:  %s\n"
++msgstr ""
++
++#: ../scripts/chcat:92 ../scripts/chcat:169
++msgid "Requires at least one category"
++msgstr ""
++
++#: ../scripts/chcat:106 ../scripts/chcat:183
++#, c-format
++msgid "Can not modify sensitivity levels using '+' on %s"
++msgstr ""
++
++#: ../scripts/chcat:110
++#, c-format
++msgid "%s is already in %s"
++msgstr ""
++
++#: ../scripts/chcat:188 ../scripts/chcat:198
++#, c-format
++msgid "%s is not in %s"
++msgstr ""
++
++#: ../scripts/chcat:267 ../scripts/chcat:272
++msgid "Can not combine +/- with other types of categories"
++msgstr ""
++
++#: ../scripts/chcat:319
++msgid "Can not have multiple sensitivities"
++msgstr ""
++
++#: ../scripts/chcat:325
++#, c-format
++msgid "Usage %s CATEGORY File ..."
++msgstr ""
++
++#: ../scripts/chcat:326
++#, c-format
++msgid "Usage %s -l CATEGORY user ..."
++msgstr ""
++
++#: ../scripts/chcat:327
++#, c-format
++msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
++msgstr ""
++
++#: ../scripts/chcat:328
++#, c-format
++msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
++msgstr ""
++
++#: ../scripts/chcat:329
++#, c-format
++msgid "Usage %s -d File ..."
++msgstr ""
++
++#: ../scripts/chcat:330
++#, c-format
++msgid "Usage %s -l -d user ..."
++msgstr ""
++
++#: ../scripts/chcat:331
++#, c-format
++msgid "Usage %s -L"
++msgstr ""
++
++#: ../scripts/chcat:332
++#, c-format
++msgid "Usage %s -L -l user"
++msgstr ""
++
++#: ../scripts/chcat:333
++msgid "Use -- to end option list.  For example"
++msgstr ""
++
++#: ../scripts/chcat:334
++msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
++msgstr ""
++
++#: ../scripts/chcat:335
++msgid "chcat -l +CompanyConfidential juser"
++msgstr ""
++
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
++msgid "Options Error %s "
++msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/gu.po b/policycoreutils/po/gu.po
+index 51d155d..073c7fe 100644
+--- a/policycoreutils/po/gu.po
++++ b/policycoreutils/po/gu.po
+@@ -1,22 +1,23 @@
+-# translation of policycoreutils.HEAD.gu.po to Gujarati
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+ #
++# Translators:
+ # Ankit Patel <ankit@redhat.com>, 2006, 2007, 2008.
++# Sweta Kothari <swkothar@redhat.com>, 2008, 2009, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD.gu\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-03-26 13:07+0530\n"
+-"Last-Translator: Ankit Patel <ankit@redhat.com>\n"
+-"Language-Team: Gujarati <fedora-trans-gu@redhat.com>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Gujarati <trans-gu@lists.fedoraproject.org>\n"
+ "Language: gu\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms:  nplurals=2; plural=(n!=1);\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -111,9 +112,8 @@ msgid "Could not establish semanage connection"
+ msgstr "semanage àªœà«‹àª¡àª¾àª£ àª…ધિષà«àª àª¾àªªàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯à«àª‚ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "%s àª®àª¾àªŸà«‡ MLS àª®àª°à«àª¯àª¾àª¦àª¾ àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "MLS àª¸àª•à«àª°àª¿àª¯ àª¥àª¯à«‡àª² àª¸à«àª¥àª¿àª¤àª¿àª¨à«‡ àªšàª•àª¾àª¸àª£à«€ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -121,36 +121,33 @@ msgstr "હજૠસà«àª§à«€ àª…મલમાં àª®à«‚કાયેલ àª¨àª¥
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage àªªàª°àª¿àªµàª¹àª¨ àªªàª¹à«‡àª²à«‡àª¥à«€ àªœ àªªà«àª°àª—તિમાં àª›à«‡"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "semanage àª²à«‡àªµàª¡àª¦à«‡àªµàª¡ àª¶àª°à«‚ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage àª²à«‡àªµàª¡àª¦à«‡àªµàª¡ àª¶àª°à«‚ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "semanage àª²à«‡àªµàª¡àª¦à«‡àªµàª¡ àª•àª®à«€àªŸ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage àªªàª°àª¿àªµàª¹àª¨ àªªà«àª°àª—તિમાં àª¨àª¥à«€"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª“ની àª¯àª¾àª¦à«€ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "SELinux àª®à«‹àª¡à«àª¯à«àª²à«‹àª¨à«€ àª¯àª¾àª¦à«€ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "મોડà«àª¯à«àª² àª¨àª¾àª®"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "આવૃતà«àª¤àª¿"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "Disabled"
+@@ -160,9 +157,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "ભૂમિકા %s àª¨à«‡ %s àª®àª¾àªŸà«‡ àª‰àª®à«‡àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -174,24 +171,22 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Permissive"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Permissive"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "છૂટ àª…પાય àªàªµà« àª¡à«‹àª®à«‡àª‡àª¨ %s àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•àª¾àª¤à« àª¨àª¥à«€ (મોડà«àª¯à«àª² àª¸à«àª¥àª¾àªªàª¨ àª¨àª¿àª·à«àª«àª³ àª¥àª¯à«‡àª² àª›à«‡)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "છૂટ àª…પાય àªàªµà« àª¡à«‹àª®à«‡àª‡àª¨ %s àª¦à«‚ર àª•àª°à«€ àª¶àª•àª¾àª¤à« àª¨àª¥à«€ (નિષà«àª«àª³àª¤àª¾ àª¦à«‚ર àª•àª°à«‹)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -211,9 +206,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "ચકાસી àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚ àª•à«‡ àª¶à«àª‚ %s àª®àª¾àªŸà«‡ àªªà«àª°àªµà«‡àª¶ àªœà«‹àª¡àª£à«€ àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª¥àª¯à«‡àª² àª›à«‡"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ %s àª…સà«àª¤àª¿àª¤à«àªµàª®àª¾àª‚ àª¨àª¥à«€"
++msgstr "Linux àªœà«‚થ %s àª…સà«àª¤àª¿àª¤à«àªµàª®àª¾àª‚ àª¨àª¥à«€"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -280,15 +275,20 @@ msgid "Could not list login mappings"
+ msgstr "પà«àª°àªµà«‡àª¶ àªœà«‹àª¡àª£à«€àª“ની àª¯àª¾àª¦à«€ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "પà«àª°àªµà«‡àª¶ àª¨àª¾àª®"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS àªµàª¿àª¸à«àª¤àª¾àª°"
+@@ -306,9 +306,9 @@ msgid "Could not query user for %s"
+ msgstr "વપરાશકરà«àª¤àª¾àª¨à«‡ %s àª®àª¾àªŸà«‡ àªªà«àª°àª¶à«àª¨ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%s àª®àª¾àªŸà«‡ àª«àª¾àªˆàª² àª¸àª‚દરà«àª­ àª‰àª®à«‡àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "%s àª®àª¾àªŸà«‡ àª“છામાં àª“છો àªàª• àª­à«‚મિકા àª‰àª®à«‡àª°àª¾àªµà«€ àªœ àªœà«‹àª‡àª"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -398,6 +398,7 @@ msgid "MCS Range"
+ msgstr "MCS àªµàª¿àª¸à«àª¤àª¾àª°"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux àª­à«‚મિકાઓ"
+@@ -410,9 +411,8 @@ msgid "Port is required"
+ msgstr "પોરà«àªŸ àªœàª°à«‚રી àª›à«‡"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "અયોગà«àª¯ àªªà«‚રà«àªµàª— %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -529,18 +529,17 @@ msgstr "SELinux àªªà«‹àª°à«àªŸ àªªà«àª°àª•àª¾àª°"
+ msgid "Proto"
+ msgstr "પà«àª°à«‹àªŸà«‹"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "પોરà«àªŸ àª¨àª‚બર"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "પોરà«àªŸ àªœàª°à«‚રી àª›à«‡"
++msgstr "નોડ àª¸àª°àª¨àª¾àª®à«àª‚ àªœàª°à«‚રી àª›à«‡"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "અજà«àªžàª¾àª¤ àª…થવા àª—ેરહાજર àªªà«àª°à«‹àªŸà«‹àª•à«‹àª²"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -557,14 +556,14 @@ msgstr "%s àª®àª¾àªŸà«‡ àª•à«€ àª¬àª¨àª¾àªµà«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "શà«àª‚ àªªà«‹àª°à«àªŸ %s/%s àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª›à«‡ àª•à«‡ àª¨àª¹àª¿àª‚ àª¤à«‡ àªšàª•àª¾àª¸à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "ચકાસી àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚ àªœà«‹ àª¸àª°àª¨àª¾àª®à«àª‚ %s àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª¥àª¯à«‡àª² àª›à«‡"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%s àª®àª¾àªŸà«‡ àª•à«€ àª¬àª¨àª¾àªµà«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "%s àª®àª¾àªŸà«‡ àª¸àª°àª¨àª¾àª®à«àª‚ àª¬àª¨àª¾àªµà«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -573,74 +572,72 @@ msgid "Could not create context for %s"
+ msgstr "%s àª®àª¾àªŸà«‡ àª¸àª‚દરà«àª­ àª¬àª¨àª¾àªµà«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%s àª®àª¾àªŸà«‡ àª¨àª¾àª® àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "%s àª®àª¾àªŸà«‡ àª®àª¾àª¸à«àª• àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s àª®àª¾àªŸà«‡ àª«àª¾àªˆàª² àª¸àª‚દરà«àª­àª®àª¾àª‚ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "%s àª®àª¾àªŸà«‡ àª¸àª°àª¨àª¾àª®à«àª‚ àª¸àª‚દરà«àª­àª®àª¾àª‚ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s àª®àª¾àªŸà«‡ àª«àª¾àªˆàª² àª¸àª‚દરà«àª­àª®àª¾àª‚ àª­à«‚મિકા àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "%s àª®àª¾àªŸà«‡ àª¸àª°àª¨àª¾àª®à«àª‚ àª¸àª‚દરà«àª­àª®àª¾àª‚ àª­à«‚મિકા àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s àª®àª¾àªŸà«‡ àª«àª¾àªˆàª² àª¸àª‚દરà«àª­àª®àª¾àª‚ àªªà«àª°àª•àª¾àª° àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "%s àª®àª¾àªŸà«‡ àª¸àª°àª¨àª¾àª®à«àª‚ àª¸àª‚દરà«àª­àª®àª¾àª‚ àªªà«àª°àª•àª¾àª° àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%s àª®àª¾àªŸà«‡ àª«àª¾àªˆàª² àª¸àª‚દરà«àª­àª®àª¾àª‚ mls àª•à«àª·à«‡àª¤à«àª°à«‹ àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "%s àª®àª¾àªŸà«‡ àª¸àª°àª¨àª¾àª®à« àª¸àª‚દરà«àª­àª®àª¾àª‚ mls àª•à«àª·à«‡àª¤à«àª°à«‹ àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s àª®àª¾àªŸà«‡ àª«àª¾àªˆàª² àª¸àª‚દરà«àª­ àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "%s àª®àª¾àªŸà«‡ àª¸àª°àª¨àª¾àª®àª¾ àª¸àª‚દરà«àª­ àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "પોરà«àªŸ %s/%s àª‰àª®à«‡àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "સરનામà«àª‚ %s àª‰àª®à«‡àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "પોરà«àªŸ %s/%s àª àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª¨àª¥à«€"
++msgstr "સરનામà«àª‚ %s àª àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª¨àª¥à«€"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "પોરà«àªŸ %s/%s àª¨à«‹ àªªà«àª°àª¶à«àª¨ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "પà«àª°àª¶à«àª°à«àª¨ àª¸àª°àª¨àª¾àª®à«àª‚ %s àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "પોરà«àªŸ %s/%s àª¸à«àª§àª¾àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "સરનામà«àª‚ %s àª¬àª¦àª²à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "પોરà«àªŸ %s/%s àª àªªà«‹àª²àª¿àª¸à«€àª®àª¾àª‚ àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª›à«‡, àª•àª¾àª¢à«€ àª¶àª•àª¾àª¤à«‹ àª¨àª¥à«€"
++msgstr "સરનામà«àª‚ %s àª àªªà«‹àª²àª¿àª¸à«€àª®àª¾àª‚ àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª›à«‡, àª•àª¾àª¢à«€ àª¶àª•àª¾àª¤à«‹ àª¨àª¥à«€"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "%s àª•àª¾àª¢à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "સરનામાં %s àª•àª¾àª¢à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%s àª®àª¾àªŸà«‡ àªªà«àª°àªµà«‡àª¶ àªœà«‹àª¡àª£à«€ àª•àª¾àª¢à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "પોરà«àªŸà«‹àª¨à«€ àª¯àª¾àª¦à«€ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "સરનામાંની àª¯àª¾àª¦à«€ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -714,9 +711,8 @@ msgid "Could not delete interface %s"
+ msgstr "ઈનà«àªŸàª°àª«à«‡àª¸ %s àª•àª¾àª¢à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "ઈનà«àªŸàª°àª«à«‡àª¸ %s àª•àª¾àª¢à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -731,9 +727,9 @@ msgid "Context"
+ msgstr "સંદરà«àª­"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s àª®àª¾àªŸà«‡àª¨à«‹ àª«àª¾àªˆàª² àª¸àª‚દરà«àª­ àªªàª¹à«‡àª²àª¾àª¥à«€ àªœ àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª¥àª¯à«‡àª² àª›à«‡"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -741,9 +737,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ %s àª…સà«àª¤àª¿àª¤à«àªµàª®àª¾àª‚ àª¨àª¥à«€"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -863,11 +859,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux àª¸àª‚દરà«àª­"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -886,14 +881,14 @@ msgid "Could not query file context %s"
+ msgstr "ફાઈલ àª¸àª‚દરà«àª­ %s àª¨à«‹ àªªà«àª°àª¶à«àª¨ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "તમારે àª•àª¿àª‚મત àª¦àª¾àª–લ àª•àª°àªµà«€ àªœ àªªàª¡àª¶à«‡"
++msgstr "નીચેની àª•àª¿àª‚મતો àª¨à«€ àªàª• àª¸à«àªªàª·à«àªŸ àª•àª°àªµà«€ àªœ àªœà«‹àª‡àª: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "બà«àª²àª¿àª¯àª¨ %s àª•àª¾àª¢à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
++msgstr "બà«àª²àª¿àª¯àª¨ %s àª¨à«€ àª¸àª•à«àª°àª¿àª¯ àª•àª¿àª‚મત àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -903,7 +898,7 @@ msgstr "બà«àª²àª¿àª¯àª¨ %s àª¸à«àª§àª¾àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "ખરાબ àª¬àª‚ધારણ%s: àª°à«‡àª•à«‹àª°à«àª¡ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -936,15 +931,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux àª¬à«àª²àª¿àª¯àª¨"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "પરિસà«àª¥àª¿àª¤àª¿"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "વરà«àª£àª¨"
+@@ -1011,7 +1006,7 @@ msgstr "audit àª¸àª‚દેશો àª®à«‹àª•àª²àªµàª¾àª®àª¾àª‚ àª­à«‚લ.\n"
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr "enforcing àª¸à«àª¥àª¿àª¤àª¿ àª¨àª•à«àª•à«€ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚.\n"
++msgstr "દબાણ àª¸à«àª¥àª¿àª¤àª¿ àª¨àª•à«àª•à«€ àª•àª°à«€ àª¶àª•à«àª¯àª¾ àª¨àª¹àª¿àª‚.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+@@ -1281,1735 +1276,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "વિકલà«àªªà«‹ àª­à«‚લ %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "%s àª–ોલવામાં àª…સમરà«àª¥: àª¬àª¿àª¨-MLS àª®àª¶à«€àª¨à«‹ àªªàª° àª­àª¾àª·àª¾àª‚તરો àª†àª§àª¾àª°àª­à«‚ત àª¨àª¥à«€: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "સà«àª¤àª°"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "અનà«àªµàª¾àª¦"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "ભાષાંતરો àªœàª—à«àª¯àª¾àª“ àª¸àª®àª¾àªµà«€ àª¶àª•àª¤àª¾ àª¨àª¥à«€ '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "અમાનà«àª¯ àª¸à«àª¤àª° '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s àª àªªàª¹à«‡àª²àª¾àª¥à«€ àªœ àª­àª¾àª·àª¾àª‚તરોમાં àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª¥àª¯à«‡àª² àª›à«‡"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s àª àª­àª¾àª·àª¾àª‚તરોમાં àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª¥àª¯à«‡àª² àª¨àª¥à«€"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s àª®àª¾àªŸà«‡àª¨à«àª‚ àªªà«àª°àªµà«‡àª¶ àªœà«‹àª¡àª¾àª£ àªªàª¹à«‡àª²àª¾àª¥à«€ àªœ àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª¥àª¯à«‡àª² àª›à«‡"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª®àª¾àªªàª¨ àª‰àª®à«‡àª°à«‹"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ %s àª àªªàª¹à«‡àª²àª¾àª¥à«€ àªœ àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª›à«‡"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "પોરà«àªŸ àªœàª°à«‚રી àª›à«‡"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "પોરà«àªŸ %s/%s àªªàª¹à«‡àª²àª¾àª¥à«€ àªœ àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª›à«‡"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "ઈનà«àªŸàª°àª«à«‡àª¸ %s àªªàª¹à«‡àª²àª¾àª¥à«€ àªœ àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª¥àª¯à«‡àª² àª›à«‡"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "કà«àª·àª®àª¤àª¾àª“નો àª†àª°àª‚ભ àª•àª°àªµàª¾àª®àª¾àª‚ àª­à«‚લ, àª…ડધેથી àª¬àª‚ધ àª•àª°à«€ àª°àª¹à«àª¯àª¾ àª›à«€àª.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "કà«àª·àª®àª¤àª¾àª“ àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°àªµàª¾àª®àª¾àª‚ àª­à«‚લ, àª…ડધેથી àª¬àª‚ધ àª•àª°à«€ àª°àª¹à«àª¯àª¾ àª›à«€àª\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS àª¸à«àª¯à«‹àªœàª¿àª¤ àª•àª°àªµàª¾àª®àª¾àª‚ àª­à«‚લ, àª…ડધેથી àª¬àª‚ધ àª•àª°à«€ àª°àª¹à«àª¯àª¾ àª›à«€àª\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "કà«àª·àª®àª¤àª¾àª“ àª®à«‚કી àª¦à«‡àªµàª¾àª®àª¾àª‚ àª­à«‚લ, àª…ડધેથી àª¬àª‚ધ àª•àª°à«€ àª°àª¹à«àª¯àª¾ àª›à«€àª\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "SETUID àª•à«àª·àª®àª¤àª¾àª“ àª›à«‹àª¡à«€ àª®à«‚કવામાં àª­à«‚લ, àª…ડધેથી àª¬àª‚ધ àª•àª°à«€ àª°àª¹à«àª¯àª¾ àª›à«€àª\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "કેપà«àª¸ àª®à«àª•à«àª¤ àª•àª°àªµàª¾àª®àª¾àª‚ àª­à«‚લ\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "બિન-MLS àª®àª¶à«€àª¨à«‹ àªªàª° àª­àª¾àª·àª¾àª‚તરો àª†àª§àª¾àª°àª­à«‚ત àª¨àª¥à«€"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "બà«àª²àª¿àª¯àª¨"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "બધà«àª‚"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "વૈવિધà«àª¯àªªà«‚રà«àª£ àª¬àª¨àª¾àªµà«‡àª²"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "ફાઈલ àª²à«‡àª¬àª²à«€àª‚ગ"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "ફાઈલ\n"
+-#~ "સà«àªªàª·à«àªŸà«€àª•àª°àª£"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "ફાઈલ àªªà«àª°àª•àª¾àª°"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "ફાઈલ\n"
+-#~ "પà«àª°àª•àª¾àª°"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "વપરાશકરà«àª¤àª¾ àª®àª¾àªªàª¨"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "પà«àª°àªµà«‡àª¶\n"
+-#~ "નામ"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "વપરાશકરà«àª¤àª¾"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS àªµàª¿àª¸à«àª¤àª¾àª°"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "પà«àª°àªµà«‡àª¶ '%s' àªœàª°à«‚રી àª›à«‡"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "પોલીસિ àª®à«‹àª¡à«àª¯à«àª²"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "સંપાદન àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "સંપાદન àª¸àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "પોલિસી àª®à«‹àª¡à«àª¯à«àª² àª²àª¾àªµà«‹"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "અંકિત àªªàªŸà«‡àª² <ankit@redhat.com>"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux àªªà«‹àª²àª¿àª¸à«€ àª¬àª¨àª¾àªµàªŸ àª¸àª¾àª§àª¨"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "આ àª¸àª¾àª§àª¨ àªªà«‹àª²àª¿àª¸à«€ àª«à«àª°à«‡àª®àªµàª°à«àª• àª¬àª¨àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªµàª¾àªªàª°à«€ àª¶àª•àª¾àª¯ àª›à«‡, SELinux àªµàª¾àªªàª°à«€ àª°àª¹à«‡àª² àª•àª¾àª°à«àª¯àª•à«àª°àª®à«‹ "
+-#~ "અથવા àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª“ àª¸à«àª°àª•à«àª·àª¿àª¤ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡.   \n"
+-#~ "\n"
+-#~ "સાધન àª† àª¬àª¨àª¾àªµà«‡ àª›à«‡:\n"
+-#~ "પà«àª°àª•àª¾àª° àª¦àª¬àª¾àª£ àª«àª¾àªˆàª² (te)\n"
+-#~ "ઈનà«àªŸàª°àª«à«‡àª¸ àª«àª¾àªˆàª² (if)\n"
+-#~ "ફાઈલ àª¸àª‚દરà«àª­ àª«àª¾àªˆàª² (fc)\n"
+-#~ "શેલ àª¸à«àª•à«àª°àª¿àªªà«àªŸ (sh) - àªªà«‹àª²àª¿àª¸à«€ àª•àª®à«àªªàª¾àªˆàª² àª•àª°àªµàª¾ àª…ને àª¸à«àª¥àª¾àªªàª¿àª¤ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àªµàªªàª°àª¾àª¯ àª›à«‡. "
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "શà«àª¦à«àª§àª¿ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àª•àª¾àª°à«àª¯àª•à«àª°àª® àª…થવા àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકા àªªàª¸àª‚દ àª•àª°à«‹."
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>કારà«àª¯àª•à«àª°àª®à«‹</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "પà«àª°àª®àª¾àª£àª­à«‚ત àª†àª°àª‚ભ àª¡àª¿àª®àª¨ àª init àª¸à«àª•à«àª°àª¿àªªà«àªŸà«‹ àª®àª¾àª°àª«àª¤à«‡ àª¬à«àªŸ àª•àª°àªµàª¾ àªªàª° àª¶àª°à«‚ àª¥àª¤àª¾ àª¡àª¿àª®àª¨à«‹ àª›à«‡.  àª¸àª¾àª®àª¾àª¨à«àª¯ "
+-#~ "રીતે /etc/rc.d/init.d àª®àª¾àª‚ àª¸à«àª•à«àª°àª¿àªªà«àªŸàª¨à«€ àªœàª°à«‚ર àªªàª¡à«‡ àª›à«‡"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "પà«àª°àª®àª¾àª£àª­à«‚ત Init àª¡àª¿àª®àª¨"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "ઈનà«àªŸàª°àª¨à«‡àªŸ àª¸à«‡àªµàª¾àª“ àª¡àª¿àª®àª¨ àª xinetd àª¦à«àªµàª¾àª°àª¾ àª¶àª°à«‚ àª•àª°àªµàª¾àª®àª¾àª‚ àª†àªµà«‡àª² àª¡àª¿àª®àª¨à«‹ àª›à«‡"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "ઈનà«àªŸàª°àª¨à«‡àªŸ àª¸à«‡àªµàª¾àª“ àª¡àª¿àª®àª¨ (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "વેબ àª•àª¾àª°à«àª¯àª•à«àª°àª®à«‹/સà«àª•à«àª°àª¿àªªà«àªŸ (CGI) CGI àª¸à«àª•à«àª°àª¿àªªà«àªŸà«‹ àªµà«‡àª¬ àª¸àª°à«àªµàª° àª¦à«àªµàª¾àª°àª¾ àª¶àª°à«‚ àª•àª°àªµàª¾àª®àª¾àª‚ àª†àªµà«‡àª² àª›à«‡ (અપાચે)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "વેબ àª•àª¾àª°à«àª¯àª•à«àª°àª®/સà«àª•à«àª°àª¿àªªà«àªŸ (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "વપરાશકરà«àª¤àª¾ àª•àª¾àª°à«àª¯àª•à«àª°àª® àª àª•à«‹àªˆàªªàª£ àª•àª¾àª°à«àª¯àª•à«àª°àª® àª›à«‡ àª•à«‡ àªœà«‡àª¨à«‡ àª¤àª®à«‡ àª¤à«‡ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª¦à«àªµàª¾àª°àª¾ àª¶àª°à«‚ àª•àª°à«€àª¨à«‡ "
+-#~ "શà«àª¦à«àª§àª¿ àª•àª°àªµàª¾ àª®àª¾àª‚ગો"
+-
+-#~ msgid "User Application"
+-#~ msgstr "વપરાશકરà«àª¤àª¾ àª•àª¾àª°à«àª¯àª•à«àª°àª®"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>પà«àª°àªµà«‡àª¶ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª“</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "હાલનો àªªà«àª°àªµà«‡àª¶ àª°à«‡àª•à«‹àª°à«àª¡ àª¸à«àª§àª¾àª°à«‹."
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "હાલની àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકાઓ"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "આ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª®àª¶à«€àª¨àª®àª¾àª‚ àª®àª¾àª¤à«àª° àªŸàª°à«àª®àª¿àª¨àª² àª•à«‡ àª¦à«‚રસà«àª¥ àªªà«àª°àªµà«‡àª¶ àª®àª¾àª°àª«àª¤à«‡ àªœ àªªà«àª°àªµà«‡àª¶à«€ àª¶àª•àª¶à«‡.  àª®à«‚ળભૂત àª°à«€àª¤à«‡ àª† "
+-#~ "વપરાશકરà«àª¤àª¾àª¨à«‡ àª•à«‹àªˆ setuid àª¹àª¶à«‡ àª¨àª¹àª¿àª‚, àª•à«‹àªˆ àª¨à«‡àªŸàªµàª°à«àª•à«€àª‚ગ, àª•à«‹àªˆ su, àª•à«‹àªˆ sudo àª¹àª¶à«‡ àª¨àª¹àª¿àª‚."
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "નà«àª¯à«‚નતમ àªŸàª°à«àª®àª¿àª¨àª² àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકા"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "આ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª®àª¶à«€àª¨àª®àª¾àª‚ àª®àª¾àª¤à«àª° X àª…થવા àªŸàª°à«àª®àª¿àª¨àª² àª®àª¾àª°àª«àª¤à«‡ àªœ àªªà«àª°àªµà«‡àª¶ àª•àª°à«€ àª¶àª•àª¶à«‡.  àª®à«‚ળભૂત àª°à«€àª¤à«‡ àª† "
+-#~ "વપરાશકરà«àª¤àª¾àª¨à«‡ àª•à«‹àªˆ setuid, àª•à«‹àªˆ àª¨à«‡àªŸàªµàª°à«àª•à«€àª‚ગ, àª•à«‹àªˆ sudo, àª•à«‡ àª•à«‹àªˆ su àª¹àª¶à«‡ àª¨àª¹àª¿àª‚"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "નà«àª¯à«‚નતમ X àªµàª¿àª¨à«àª¡à«‹ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકા"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "પૂરેપૂરા àª¨à«‡àªŸàªµàª°à«àª•à«€àª‚ગ àª¸àª¾àª¥à«‡àª¨à«‹ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾, àª•à«‹àªˆ setuid àª•àª¾àª°à«àª¯àª•à«àª°àª®à«‹ àªªàª°àª¿àªµàª¹àª¨ àªµàª¿àª¨àª¾, àª•à«‹àªˆ sudo, "
+-#~ "કોઈ su àª¨àª¥à«€."
+-
+-#~ msgid "User Role"
+-#~ msgstr "વપરાશકરà«àª¤àª¾ àª­à«‚મિકા"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "પૂરેપૂરા àª¨à«‡àªŸàªµàª°à«àª•à«€àª‚ગ àª¸àª¾àª¥à«‡àª¨à«‹ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾, àª•à«‹àªˆ setuid àª•àª¾àª°à«àª¯àª•à«àª°àª®à«‹ àªªàª°àª¿àªµàª¹àª¨ àªµàª¿àª¨àª¾ àª¨àª¥à«€, su "
+-#~ "નથી, àª¤à«‡ àª°à«àªŸ àª¸àª‚ચાલન àª­à«‚મિકાઓમાં sudo àª•àª°à«€ àª¶àª•àª¤à«àª‚ àª¨àª¥à«€"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "સંચાલક àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકા"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>રà«àªŸ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª“</b>"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "રà«àªŸ àª¸àª‚ચાલક àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકા àªªàª¸àª‚દ àª•àª°à«‹, àªœà«‹ àª† àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª®àª¶à«€àª¨àª¨àª¾ àª¸àª‚ચાલન àª®àª¾àªŸà«‡ "
+-#~ "વાપરવામાં àª†àªµà«‡ àªœà«àª¯àª¾àª°à«‡ àª°à«àªŸ àª¤àª°à«€àª•à«‡ àªšàª²àª¾àªµà«€ àª°àª¹à«àª¯àª¾ àª¹à«‹àª¯.  àª† àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª¸àª¿àª¸à«àªŸàª®àª®àª¾àª‚ àª¸à«€àª§à«‹ àªœ àªªà«àª°àªµà«‡àª¶ "
+-#~ "કરવા àª®àª¾àªŸà«‡ àª¸àª®àª°à«àª¥ àª¹àª¶à«‡ àª¨àª¹àª¿àª‚."
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "રà«àªŸ àª¸àª‚ચાલક àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકા"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "શà«àª¦à«àª§àª¿ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡àª¨àª¾ àª•àª¾àª°à«àª¯àª•à«àª°àª® àª…થવા àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકાનà«àª‚ àª¨àª¾àª® àª¦àª¾àª–લ àª•àª°à«‹"
+-
+-#~ msgid "Name"
+-#~ msgstr "નામ"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "શà«àª¦à«àª§àª¿ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡àª¨à«€ àªàª•à«àªà«‡àª•à«àª¯à«àªŸà«‡àª¬àª²àª¨à«‹ àª¸àª‚પૂરà«àª£ àªªàª¾àª¥ àª¦àª¾àª–લ àª•àª°à«‹."
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "શà«àª¦à«àª§àª¿ àª¥àª¯à«‡àª² àª•àª¾àª°à«àª¯àª•à«àª°àª® àª•à«‡ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકા àª®àª¾àªŸà«‡ àª…નનà«àª¯ àª¨àª¾àª® àª¦àª¾àª–લ àª•àª°à«‹."
+-
+-#~ msgid "Executable"
+-#~ msgstr "àªàª•à«àªà«‡àª•à«àª¯à«àªŸà«‡àª¬àª²"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Init àª¸à«àª•à«àª°àª¿àªªà«àªŸ"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "શà«àª¦à«àª§àª¿ àª¥àª¯à«‡àª² àª•àª¾àª°à«àª¯àª•à«àª°àª® àª¶àª°à«‚ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àªµàª¾àªªàª°àªµàª¾àª®àª¾àª‚ àª†àªµàª¤à«€ init àª¸à«àª•à«àª°àª¿àªªà«àªŸàª¨à«‹ àª†àª–à«‹ àªªàª¾àª¥ àª¦àª¾àª–લ àª•àª°à«‹."
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "વપરાશકરà«àª¤àª¾ àª­à«‚મિકાઓ àªªàª¸àª‚દ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‡ àª¤àª®à«‡ àªµà«ˆàªµàª¿àª§à«àª¯àªªà«‚રà«àª£ àª¬àª¨àª¾àªµàªµàª¾ àª®àª¾àª‚ગો"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr "વપરાશકરà«àª¤àª¾ àª­à«‚મિકાઓ àªªàª¸àª‚દ àª•àª°à«‹ àª•à«‡ àªœà«‡ àª•àª¾àª°à«àª¯àª•à«àª°àª® àª¡à«‹àª®à«‡àªˆàª¨à«‹àª®àª¾àª‚ àªªàª°àª¿àªµàª¹àª¨ àª•àª°àª¶à«‡."
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "વધારાના àª¡à«‹àª®à«‡àªˆàª¨à«‹ àªªàª¸àª‚દ àª•àª°à«‹ àª•à«‡ àªœà«‡àª®àª¾àª‚ àª† àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકા àªªàª°àª¿àªµàª¹àª¨ àª•àª°àª¶à«‡"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "કારà«àª¯àª•à«àª°àª® àª¡à«‹àª®à«‡àªˆàª¨à«‹ àªªàª¸àª‚દ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‡ àª¤àª®à«‡ àªªàª°àª¿àªµàª¹àª¨ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àª† àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકા àª†àªªàªµàª¾ "
+-#~ "ઈચà«àª›à«‹."
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "વપરાશકરà«àª¤àª¾ àª­à«‚મિકાઓ àªªàª¸àª‚દ àª•àª°à«‹ àª•à«‡ àªœà«‡ àª† àª¡à«‹àª®à«‡àªˆàª¨àª®àª¾àª‚ àªªàª°àª¿àªµàª¹àª¨ àª•àª°àª¶à«‡"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "વધારાના àª¡à«‹àª®à«‡àªˆàª¨à«‹ àªªàª¸àª‚દ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‡ àª† àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª­à«‚મિકા àª¸àª‚ચાલિત àª•àª°àª¶à«‡"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "ડોમેઈનો àªªàª¸àª‚દ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‡ àª¤àª®à«‡ àª† àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª®àª¾àª°àª«àª¤à«‡ àª¸àª‚ચાલિત àª•àª°àªµàª¾ àª®àª¾àª‚ગો."
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "આ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª®àª¾àªŸà«‡ àªµàª§àª¾àª°àª¾àª¨à«€ àª­à«‚મિકાઓ àªªàª¸àª‚દ àª•àª°à«‹"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "નેટવરà«àª• àªªà«‹àª°à«àªŸà«‹ àª¦àª¾àª–લ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‡ àª•àª¾àª°à«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ àª­à«‚મિકા àª¸àª¾àª‚ભળે àª›à«‡"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP àªªà«‹àª°à«àªŸà«‹</b>"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "શà«àª¦à«àª§àª¿ àª¥àª¯à«‡àª² àª•àª¾àª°à«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ àª­à«‚મિકાને àª•à«‹àªˆàªªàª£ udp àªªà«‹àª°à«àªŸ àª¸àª¾àª¥à«‡ àª¬àª‚ધાવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‡ "
+-#~ "છે"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "બધà«àª‚"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "કારà«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ àª­à«‚મિકાને bindresvport àª¨à«‡ 0 àª¸àª¾àª¥à«‡ àª•à«‹àª² àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‡ àª›à«‡. "
+-#~ "પોરà«àªŸ 600-1024 àª¸àª¾àª§à«‡ àª¬àª¾àª‚ધી àª°àª¹à«àª¯àª¾ àª›à«€àª"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "અલà«àªªàªµàª¿àª°àª¾àª®àª¥à«€ àª…લગ àªªàª¡à«‡àª² udp àªªà«‹àª°à«àªŸà«‹àª¨à«€ àª¯àª¾àª¦à«€ àª¦àª¾àª–લ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‡ àª† àª•àª¾àª°à«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ "
+-#~ "ભૂમિકા àªœà«‹àª¡àª¾àª¯. àª‰àª¦àª¾àª¹àª°àª£: 612, 650-660"
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "બિનઆરકà«àª·àª¿àª¤ àªªà«‹àª°à«àªŸà«‹ (>1024)"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "પોરà«àªŸà«‹ àªªàª¸àª‚દ àª•àª°à«‹"
+-
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "કારà«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ àª­à«‚મિકાને àª•à«‹àªˆàªªàª£ udp àªªà«‹àª°à«àªŸà«‹ > 1024 àª¸àª¾àª¥à«‡ àª¬àª‚ધાવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‡ àª›à«‡"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP àªªà«‹àª°à«àªŸà«‹</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "અલà«àªªàªµàª¿àª°àª¾àª®àª¥à«€ àª…લગ àªªàª¡à«‡àª² udp àªªà«‹àª°à«àªŸà«‹àª¨à«€ àª¯àª¾àª¦à«€ àª¦àª¾àª–લ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‡ àª† àª•àª¾àª°à«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ "
+-#~ "ભૂમિકા àªœà«‹àª¡àª¾àª¯."
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "અલà«àªªàªµàª¿àª°àª¾àª®àª¥à«€ àª…લગ àªªàª¡à«‡àª² udp àªªà«‹àª°à«àªŸà«‹àª¨à«€ àª¯àª¾àª¦à«€ àª¦àª¾àª–લ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‡ àª† àª•àª¾àª°à«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ "
+-#~ "ભૂમિકા àªœà«‹àª¡àª¾àª¯. àª‰àª¦àª¾àª¹àª°àª£: 612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "અલà«àªªàªµàª¿àª°àª¾àª®àª¥à«€ àª…લગ àªªàª¡à«‡àª² udp àªªà«‹àª°à«àªŸà«‹àª¨à«€ àª¯àª¾àª¦à«€ àª¦àª¾àª–લ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‡ àª† àª•àª¾àª°à«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ "
+-#~ "જોડાય. àª‰àª¦àª¾àª¹àª°àª£: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "સામાનà«àª¯ àª•àª¾àª°à«àª¯àª•à«àª°àª® àªµàª°à«àª¤àª¨à«‹ àªªàª¸àª‚દ àª•àª°à«‹"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "syslog àª¸àª‚દેશાઓ àª²àª–ે àª›à«‡\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "/tmp àª®àª¾àª‚ àª•àª¾àª®àªšàª²àª¾àª‰ àª«àª¾àªˆàª²à«‹ àª¬àª¨àª¾àªµà«‡/જાળવે àª›à«‡"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "સતà«àª¤àª¾àª§àª¿àª•àª°àª£ àª®àª¾àªŸà«‡ Pam àªµàª¾àªªàª°à«‡ àª›à«‡"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "nsswitch àª…થવા getpw* àª•à«‹àª² àªµàª¾àªªàª°à«‡ àª›à«‡"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "dbus àªµàª¾àªªàª°à«‡ àª›à«‡"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "audit àª¸àª‚દેશાઓ àª®à«‹àª•àª²à«‡ àª›à«‡"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "ટરà«àª®àª¿àª¨àª² àª¸àª¾àª¥à«‡ àª¸àª‚પરà«àª• àª•àª°à«‡ àª›à«‡"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "ઈમેઈલ àª®à«‹àª•àª²à«‡ àª›à«‡"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "ફાઈલો/ડિરેકà«àªŸàª°à«€àª“ àªªàª¸àª‚દ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«€ àªµà«àª¯àªµàª¸à«àª¥àª¾ àª•àª¾àª°à«àª¯àª•à«àª°àª® àª•àª°à«‡ àª›à«‡"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "ફાઈલો/ડિરેકà«àªŸàª°à«€àª“ àª‰àª®à«‡àª°à«‹ àª•à«‡ àªœà«‡àª¨à«€ àª† àª•àª¾àª°à«àª¯àª•à«àª°àª®àª¨à«‡ \"લખવાની\" àªœàª°à«‚ર àªªàª¡à«‡. Pid àª«àª¾àªˆàª²à«‹, àª²à«‹àª— "
+-#~ "ફાઈલો, /var/lib àª«àª¾àªˆàª²à«‹ ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "બà«àª²àª¿àª¯àª¨à«‹ àªªàª¸àª‚દ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‹ àª† àª•àª¾àª°à«àª¯àª•à«àª°àª® àªµàªªàª°àª¾àª¶ àª•àª°à«‡ àª›à«‡"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr "આ àª¶à«àª¦à«àª§àª¿ àª¥àª¯à«‡àª² àª•àª¾àª°à«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ àª®àª¾àªŸà«‡ àªµàªªàª°àª¾àª¯à«‡àª² àª¬à«àª²àª¿àª¯àª¨à«‹ àª‰àª®à«‡àª°à«‹/દૂર àª•àª°à«‹"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "માં àªªà«‹àª²à«€àª¸àª¿ àª¬àª¨àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€ àªªàª¸àª‚દ àª•àª°à«‹"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "પોલિસી àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "પોલિસી àª«àª¾àªˆàª²à«‹ àª¬àª¨àª¾àªµàª¾àª¯à«‡àª²"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "આ àª¸àª¾àª§àª¨ àª¨à«€àªšà«‡àª¨à«àª‚ àª¬àª¨àª¾àªµàª¶à«‡: \n"
+-#~ "Type Enforcment(te), File Context(fc), Interface(if), Shell Script(sh).\n"
+-#~ "કમà«àªªàª¾àªˆàª²/સà«àª¥àª¾àªªàª¨ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àª…ને àª«àª¾àªˆàª²à«‹/ડિરેકà«àªŸàª°à«€àª“ àªªà«àª¨àªƒàª²à«‡àª¬àª² àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àª¶à«‡àª² àª¸à«àª•à«àª°àª¿àªªà«àªŸ àªšàª²àª¾àªµà«‹.  "
+-#~ "હવે àª¤àª®à«‡ àª®àª¶à«€àª¨àª¨à«‡ àªªàª°àªµàª¾àª¨àª—ીય àª¸à«àª¥àª¿àª¤àª¿àª®àª‚ àª®à«‚કી àª¶àª•à«‹ àª›à«‹ (setenforce 0). \n"
+-#~ "avc àª¸àª‚દેશાઓ àªªà«‡àª¦àª¾ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àª•àª¾àª°à«àª¯àª•à«àª°àª® àªšàª²àª¾àªµà«‹/પà«àª¨àªƒàª¶àª°à«‚ àª•àª°à«‹.\n"
+-#~ "te àª«àª¾àªˆàª² àª®àª¾àªŸà«‡ àªµàª§àª¾àª°àª¾àª¨àª¾ àª¨àª¿àª¯àª®à«‹ àª¬àª¨àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ audit2allow -R àªµàª¾àªªàª°à«‹.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "આ àª¸àª¾àª§àª¨ àª¨à«€àªšà«‡àª¨à«àª‚ àª¬àª¨àª¾àªµàª¶à«‡: \n"
+-#~ "Type Enforcment(te), File Context(fc), Interface(if), Shell Script(sh).\n"
+-#~ "કમà«àªªàª¾àªˆàª²/સà«àª¥àª¾àªªàª¨ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àª…ને àª«àª¾àªˆàª²à«‹/ડિરેકà«àªŸàª°à«€àª“ àªªà«àª¨àªƒàª²à«‡àª¬àª² àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àª¶à«‡àª² àª¸à«àª•à«àª°àª¿àªªà«àªŸ àªšàª²àª¾àªµà«‹.  "
+-#~ "હવે àª¤àª®à«‡ àª®àª¶à«€àª¨àª¨à«‡ àªªàª°àªµàª¾àª¨àª—ીય àª¸à«àª¥àª¿àª¤àª¿àª®àª‚ àª®à«‚કી àª¶àª•à«‹ àª›à«‹ (setenforce 0). \n"
+-#~ "avc àª¸àª‚દેશાઓ àªªà«‡àª¦àª¾ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àª•àª¾àª°à«àª¯àª•à«àª°àª® àªšàª²àª¾àªµà«‹/પà«àª¨àªƒàª¶àª°à«‚ àª•àª°à«‹.\n"
+-#~ "te àª«àª¾àªˆàª² àª®àª¾àªŸà«‡ àªµàª§àª¾àª°àª¾àª¨àª¾ àª¨àª¿àª¯àª®à«‹ àª¬àª¨àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ audit2allow -R àªµàª¾àªªàª°à«‹.\n"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "બà«àª²àª¿àª¯àª¨à«‹ àª¸àª‚વાદ àª‰àª®à«‡àª°à«‹"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "બà«àª²àª¿àª¯àª¨ àª¨àª¾àª®"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Role"
+-#~ msgstr "ભૂમિકા"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Existing_User"
+-#~ msgstr "હાલનો àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ (_U)"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Application"
+-#~ msgstr "કારà«àª¯àª•à«àª°àª®"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€ àª¹à«‹àªµà«€ àªœ àªœà«‹àªˆàª"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "You must select a user"
+-#~ msgstr "તમારે àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àªªàª¸àª‚દ àª•àª°àªµà«‹ àªœ àªªàª¡àª¶à«‡"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "શà«àª¦à«àª§àª¿ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àªàª•à«àªà«‡àª•à«àª¯à«àªŸà«‡àª¬àª² àª«àª¾àªˆàª² àªªàª¸àª‚દ àª•àª°à«‹."
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "શà«àª¦à«àª§àª¿ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ init àª¸à«àª•à«àª°àª¿àªªà«àªŸ àª«àª¾àªˆàª² àªªàª¸àª‚દ àª•àª°à«‹."
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "ફાઈલ(ઓ) àªªàª¸àª‚દ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‡ àª¶à«àª¦à«àª§àª¿ àª•àª°à«‡àª² àª•àª¾àª°à«àª¯àª•à«àª°àª® àª¬àª¨àª¾àªµà«‡ àª›à«‡ àª…થવા àª²àª–ે àª›à«‡"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr "ડિરેકà«àªŸàª°à«€(ઓ) àªªàª¸àª‚દ àª•àª°à«‹ àª•à«‡ àªœà«‡ àª¶à«àª¦à«àª§àª¿ àª¥àª¯à«‡àª² àª•àª¾àª°à«àª¯àª•à«àª°àª®àª¨à«€ àª®àª¾àª²àª¿àª•à«€àª¨à«€ àª›à«‡ àª…થવા àªœà«‡àª®àª¾ àª²àª–ે àª›à«‡"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "પોલિસી àª«àª¾àªˆàª²à«‹ àª¬àª¨àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€ àªªàª¸àª‚દ àª•àª°à«‹"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "પà«àª°àª•àª¾àª° %s_t àªµàª°à«àª¤àª®àª¾àª¨ àªªà«‹àª²à«€àª¸àª¿àª®àª¾àª‚ àªªàª¹à«‡àª²àª¾àª¥à«€ àªœ àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª›à«‡.\n"
+-#~ "શà«àª‚ àª¤àª®à«‡ àªšàª¾àª²à« àª°àª¾àª–વા àª®àª¾àª‚ગો àª›à«‹?"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Verify Name"
+-#~ msgstr "નામની àª–ાતરી àª•àª°à«‹"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "મોડà«àª¯à«àª² %s.pp àªªàª¹à«‡àª²àª¾àª¥à«€ àªœ àªµàª°à«àª¤àª®àª¾àª¨ àªªà«‹àª²à«€àª¸àª¿àª®àª¾àª‚ àª²à«‹àª¡ àª¥àª¯à«‡àª² àª›à«‡.\n"
+-#~ "શà«àª‚ àª¤àª®à«‡ àªšàª¾àª²à« àª°àª¾àª–વા àª®àª¾àª‚ગો àª›à«‹?"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "તમારે àª¨àª¾àª® àª¦àª¾àª–લ àª•àª°àªµà«àª‚ àªœ àªªàª¡àª¶à«‡"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "તમારે àªàª•à«àªà«‡àª•à«àª¯à«àªŸà«‡àª¬àª² àª¦àª¾àª–લ àª•àª°àªµà«€ àªœ àªªàª¡àª¶à«‡"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux àª°à«‚પરેખાંકિત àª•àª°à«‹"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "પોરà«àªŸà«‹ àª¨àª‚બરો àª•à«‡ 1 àª¥à«€ %d àª¸à«àª§à«€àª¨àª¾ àªµàª¿àª¸à«àª¤àª¾àª°àª¨àª¾ àª¨àª‚બરો àª¹à«‹àªµàª¾ àªœ àªœà«‹àªˆàª"
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "તમારે àª¤àª®àª¾àª°à«€ àª¶à«àª¦à«àª§àª¿ àª¥àª¯à«‡àª² àªªà«àª°àª•à«àª°àª¿àª¯àª¾/વપરાશકરà«àª¤àª¾ àª®àª¾àªŸà«‡ àª¨àª¾àª® àª¦àª¾àª–લ àª•àª°àªµà«àª‚ àªœ àªªàª¡àª¶à«‡"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "USER àªªà«àª°àª•àª¾àª°à«‹ àª®àª¾àª¨à«àª¯ àªàª•à«àªà«‡àª•à«àª¯à«àªŸà«‡àª¬àª²à«‹ àª¨àª¥à«€"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "માતà«àª° DAEMON àª•àª¾àª°à«àª¯àª•à«àª°àª®à«‹ init àª¸à«àª•à«àª°àª¿àªªà«àªŸ àªµàª¾àªªàª°à«€ àª¶àª•à«‡"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog àª àª¬à«àª²àª¿àª¯àª¨ àª•àª¿àª‚મત àª¹à«‹àªµà«‹ àªœ àªœà«‹àªˆàª "
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "USER àªªà«àª°àª•àª¾àª°à«‹ àª†àªªà«‹àª†àªª tmp àªªà«àª°àª•àª¾àª° àª®à«‡àª³àªµà«‡ àª›à«‡"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "તમારી àª¶à«àª¦à«àª§àª¿ àªªà«àª°àª•à«àª°àª¿àª¯àª¾ àª®àª¾àªŸà«‡ àª¤àª®àª¾àª°à«‡ àªàª•à«àªà«‡àª•à«àª¯à«àªŸà«‡àª¬àª² àªªàª¾àª¥ àª¦àª¾àª–લ àª•àª°àªµà«‹ àªœ àªªàª¡àª¶à«‡"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "પà«àª°àª•àª¾àª° àª¦àª¬àª¾àª£ àª«àª¾àªˆàª²"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "ઈનà«àªŸàª°àª«à«‡àª¸ àª«àª¾àªˆàª²"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "ફાઈલ àª¸àª‚દરà«àª­à«‹ àª«àª¾àªˆàª²"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "સેટઅપ àª¸à«àª•à«àª°àª¿àªªà«àªŸ"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux àªªà«‹àª°à«àªŸ\n"
+-#~ "પà«àª°àª•àª¾àª°"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "પà«àª°à«‹àªŸà«‹àª•à«‹àª²"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "સà«àª¤àª°"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "પોરà«àªŸ"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "પોરà«àªŸ àª¨àª‚બર \"%s\" àª àª®àª¾àª¨à«àª¯ àª¨àª¥à«€.  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "યાદી àª¦à«‡àª–ાવ"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "જૂથ àª¦à«‡àª–ાવ"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux àª¸à«‡àªµàª¾ àª¸à«àª°àª•à«àª·àª¾"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "acct àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "સંચાલક"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "ડિમનોને àª®à«‚ળફાઈલો / àª®àª¾àª‚ àª²àª–વા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "બધા àª¡àª¿àª®àª¨à«‹àª¨à«‡ àª¬àª¿àª¨ àª«àª¾àª³àªµà«‡àª² ttys àªµàª¾àªªàª°àªµàª¾ àª®àª¾àªŸà«‡àª¨à«€ àª•à«àª·àª®àª¤àª¾ àª†àªªà«‹"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "વપરાશકરà«àª¤àª¾ àªµàª¿àª¶à«‡àª·àª¾àª§àª¿àª•àª¾àª°à«‹"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "gadmin SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª–ાતાઓને àª¤à«‡àª®àª¨à«€ àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€ àª…થવા /tmp àª®àª¾àª‚ àª«àª¾àªˆàª²à«‹ àªàª•à«àªà«‡àª•à«àª¯à«àªŸ "
+-#~ "કરવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "મહેમાન SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª–ાતાઓને àª¤à«‡àª®àª¨à«€ àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€ àª…થવા /tmp àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€àª®àª¾àª‚ àª«àª¾àªˆàª²à«‹ "
+-#~ "àªàª•à«àªà«‡àª•à«àª¯à«àªŸ àª•àª°àªµàª¾àª¨à«€ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "મેમરી àª¸à«àª°àª•à«àª·àª¾"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "java àªàª•à«àªà«‡àª•à«àª¯à«àªŸà«‡àª¬àª² àª¸à«àªŸà«‡àª•àª¨à«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "માઉનà«àªŸ"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "mount àª¨à«‡ àª•à«‹àªˆàªªàª£ àª«àª¾àªˆàª² àª®àª¾àª‰àª¨à«àªŸ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "mount àª¨à«‡ àª•à«‹àªˆàªªàª£ àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€ àª®àª¾àª‰àª¨à«àªŸ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "mplayer àªàª•à«àªà«‡àª•à«àª¯à«àªŸà«‡àª¬àª² àª¸à«àªŸà«‡àª•àª¨à«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "ssh àª¨à«‡ ssh-keysign àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "સà«àªŸàª¾àª« SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª–ાતાઓને àª¤à«‡àª®àª¨à«€ àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€ àª…થવા /tmp àª®àª¾àª‚ àª«àª¾àªˆàª²à«‹ àªšàª²àª¾àªµàªµàª¾ "
+-#~ "માટે àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "sysadm SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª–ાતાઓને àª¤à«‡àª¨à«€ àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€ àª…થવા /tmp àª®àª¾àª‚ àª«àª¾àªˆàª²à«‹ àªšàª²àª¾àªµàªµàª¾ "
+-#~ "માટે àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "unconfined SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª–ાતાઓને àª¤à«‡àª¨à«€ àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€ àª…થવા /tmp àª®àª¾àª‚ àª«àª¾àªˆàª²à«‹ "
+-#~ "ચલાવવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "નેટવરà«àª• àª°à«‚પરેખાંકન"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "લેબલ àªµàª¿àª¨àª¾àª¨àª¾ àªªà«‡àª•à«‡àªŸà«‹àª¨à«‡ àª¨à«‡àªŸàªµàª°à«àª• àªªàª° àªµàª¹à«‡àªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª–ાતાઓને àª¤à«‡àª¨à«€ àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€ àª…થવા /tmp àª®àª¾àª‚ àª«àª¾àªˆàª²à«‹ àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ "
+-#~ "પરવાનગી àª†àªªà«‹"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "unconfined dyntrans àª¨à«‡ unconfined_execmem àª¨à«€ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "ડેટાબેàªà«‹"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "વપરાશકરà«àª¤àª¾àª¨à«‡ mysql àª¸à«‹àª•à«‡àªŸ àª¸àª¾àª¥à«‡ àªœà«‹àª¡àª¾àªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "વપરાશકરà«àª¤àª¾àª¨à«‡ postgres àª¸à«‹àª•à«‡àªŸ àª¸àª¾àª¥à«‡ àªœà«‹àª¡àª¾àªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "કà«àª²àª¾àªˆàª¨à«àªŸà«‹àª¨à«‡ X àªµàª¹à«‡àª‚ચાયેલ àª®à«‡àª®àª°à«€àª®àª¾àª‚ àª²àª–વા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "xguest SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª–ાતાઓને àª¤à«‡àª®àª¨à«€ àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€ àª…થવા /tmp àª®àª¾àª‚ àª«àª¾àªˆàª²à«‹ àªšàª²àª¾àªµàªµàª¾ "
+-#~ "માટે àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "ડિમનોને NIS àª¸àª¾àª¥à«‡ àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "વેબ àª•àª¾àª°à«àª¯àª•à«àª°àª®à«‹"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "પરિવહન àª¸à«àªŸàª¾àª« SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª¥à«€ àªµà«‡àª¬ àª¬à«àª°àª¾àª‰àªàª° àª¡à«‹àª®à«‡àªˆàª¨àª®àª¾àª‚"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "પરિવહન sysadm SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª¥à«€ àªµà«‡àª¬ àª¬à«àª°àª¾àª‰àªàª° àª¡à«‹àª®à«‡àªˆàª¨"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "પરિવહન àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª¥à«€ àªµà«‡àª¬ àª¬à«àª°àª¾àª‰àªàª° àª¡à«‹àª®à«‡àªˆàª¨"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "પરિવહન xguest SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª¥à«€ àªµà«‡àª¬ àª¬à«àª°àª¾àª‰àªàª° àª¡à«‹àª®à«‡àªˆàª¨"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "સà«àªŸàª¾àª« àªµà«‡àª¬ àª¬à«àª°àª¾àª‰àªàª°à«‹àª¨à«‡ àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€àª“માં àª²àª–વાની àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ amanda àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ amavis àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ apmd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ arpwatch àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ auditd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ automount àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ avahi àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ bluetooth àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ canna àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ cardmgr àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ àª•à«àª²àª¸à«àªŸàª° àª¸àª°à«àªµàª° àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "cdrecord àª¨à«‡ àªµàª¿àªµàª¿àª§ àª¸àª®àª¾àªµàª¿àª·à«àªŸ àªµàª¾àª‚ચવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹. nfs, samba, àª¦à«‚ર àª•àª°à«€ àª¶àª•àª¾àª¯ "
+-#~ "તેવા àª‰àªªàª•àª°àª£à«‹, àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª•àª¾àª®àªšàª²àª¾àª‰ àª…ને àª…વિશà«àªµàª¾àª¸à« àª¸àª®àª¾àªµàª¿àª·à«àªŸ àª«àª¾àªˆàª²à«‹"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ ciped àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ clamd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ clamscan àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ clvmd àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ comsat àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ courier àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ cpucontrol àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "SELinux àª¸à«àª°àª•à«àª·àª¾àª¨à«‡ cpuspeed àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "છાપન"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "cupsd àª¬à«‡àª•à«‡àª¨à«àª¡ àª¸àª°à«àªµàª° àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "cupsd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "cupsd_lpd àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "cvs àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "cyrus àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "dbskkd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "dbusd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "dccd àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "dccifd àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "dccm àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ddt àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "devfsd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "dhcpc àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "dhcpd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "dictd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "sysadm_t àª¨à«‡ àª¡àª¿àª®àª¨à«‹ àª¸à«€àª§àª¾ àªœ àª¶àª°à«‚ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "ઈવોલà«àª¯à«àª¶àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "રમતો"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "રમતો àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "વેબ àª¬à«àª°àª¾àª‰àªàª°à«‹ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "થનà«àª¡àª°àª¬àª°à«àª¡ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "fetchmail àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Hal àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "સà«àª—મતા"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "વસà«àª¤à«àª“નà«àª‚ àª¸àª‚પાદન àª•àª°à«‹ àª¨àª¹àª¿àª‚ àª•à«‡ àªœà«‡àª¨à«‡ àª†àªªàª£à«‡ àªœàª¾àª£àª¤àª¾ àª¹à«‹àªˆàª àª•à«‡ àª­àª¾àª‚ગેલ àª›à«‡ àªªàª°àª‚તૠજેઓને àª¸à«àª°àª•à«àª·àª¾ àªœà«‹àª–મો àª¨àª¥à«€"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "hostname àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "hplip àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "httpd rotatelogs àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD àª¸à«‡àªµàª¾"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexec àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "inetd àª¬àª¾àª³ àª¡àª¿àª®àª¨à«‹ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ircd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "irqbalance àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "iscsi àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "jabberd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "કરà«àª¬àª°à«‹àª"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "kadmind àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "klogd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "krb5kdc àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ktalk àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "kudzu àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "locate àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "lpd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "lrrd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "lvm àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "mailman àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "ઈવોલà«àª¯à«àª¶àª¨ àª…ને àª¥àª¨à«àª¡àª°àª¬àª°à«àª¡àª¨à«‡ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª«àª¾àªˆàª²à«‹ àªµàª¾àª‚ચવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "mdadm àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "monopd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "મોàªàª¿àª²à«àª²àª¾ àª¬à«àª°àª¾àª‰àªàª°àª¨à«‡ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª«àª¾àªˆàª²à«‹ àªµàª¾àª‚ચવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "mrtg àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "mysqld àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "nagios àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "નામ àª¸à«‡àªµàª¾"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "named àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "nessusd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "NetworkManager àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "nfsd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "સામà«àª¬àª¾"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "nmbd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "nrpe àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "nscd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "nsd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ntpd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "oddjob àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "oddjob_mkhomedir àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "openvpn àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "pam àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "pegasus àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "perdition àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "portmap àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "portslave àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "postfix àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "postgresql àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "pppd àª¨à«‡ àª¨àª¿àª¯àª®àª¿àª¤ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª¤àª°à«€àª•à«‡ àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "pptp àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "prelink àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "privoxy àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ptal àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "pxe àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "pyzord àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "quota àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "radiusd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "radvd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "rdisc àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "readhead àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "કારà«àª¯àª•à«àª°àª®à«‹àª¨à«‡ àª¬àª¿àª¨-પà«àª°àª®àª¾àª£àª­à«‚ત àª¸à«àª¥àª¾àª¨à«‹àª àª°àª¹à«‡àª² àª«àª¾àªˆàª²à«‹ àªµàª¾àª‚ચવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹ (default_t)"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "restorecond àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "rhgb àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ricci àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ricci_modclusterd àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "rlogind àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "rpcd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "rshd àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "rsync àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "ssh àª¨à«‡ àª¡àª¿àª®àª¨ àª¤àª°à«€àª•à«‡ àªšàª²àª¾àªµàªµàª¾àª¨à«€ àªœàª—à«àª¯àª¾àª inetd àª®àª¾àª‚થી àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Samba àª¨à«‡ nfs àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€àª“ àªµàª¹à«‡àª‚ચવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL àª¸àª¤à«àª¤àª¾àª§àª¿àª•àª°àª£ àª¸àª°à«àªµàª°"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "sasl àª¸àª¤à«àª¤àª¾àª§àª¿àª•àª°àª£ àª¸àª°à«àªµàª°àª¨à«‡ /etc/shadow àªµàª¾àª‚ચવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "X-Windows àª¸àª°à«àªµàª°àª¨à«‡ àª®à«‡àª®àª°à«€ àªµàª¿àª¸à«àª¤àª¾àª° àªàª•à«àªà«‡àª•à«àª¯à«àªŸà«‡àª¬àª² àª…ને àª²àª–à«€ àª¶àª•àª¾àª¯ àª¤à«‡àªµà«àª‚ àªàª® àª¬àª‚ને àª¸àª¾àª¥à«‡ àª®à«‡àªª àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ "
+-#~ "પરવાનગી àª†àªªà«‹"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "saslauthd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "scannerdaemon àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "sysadm_t, sudo àª…ને su effected àª®àª¾àª‚ àª°à«‚પાંતરણને àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªàª¶à«‹ àª¨àª¹àª¿àª‚"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "કોઈપણ àªªà«àª°àª•à«àª°àª¿àª¯àª¾àª“ને àª•àª°à«àª¨àª² àª®à«‹àª¡à«àª¯à«àª²à«‹ àª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªàª¶à«‹ àª¨àª¹àª¿àª‚"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "કોઈપણ àªªà«àª°àª•à«àª°àª¿àª¯àª¾àª“ને àª•àª°à«àª¨àª² SELinux àªªà«‹àª²àª¿àª¸à«€ àª¸à«àª§àª¾àª°àªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªàª¶à«‹ àª¨àª¹àª¿àª‚"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "sendmail àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "setrans àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "setroubleshoot àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "slapd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "slrnpull àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "smbd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "snmpd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "snort àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "soundd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "sound àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "સà«àªªàª¾àª® àª¸à«àª°àª•à«àª·àª¾"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "spamd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "spamd àª¨à«‡ àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€àª“ àªµàª¾àªªàª°àªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Spam Assasin àª¡àª¿àª®àª¨ àª¨à«‡àªŸàªµàª°à«àª• àªµàªªàª°àª¾àª¶àª¨à«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "speedmgmt àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "squid àª¡àª¿àª®àª¨àª¨à«‡ àª¨à«‡àªŸàªµàª°à«àª• àª¸àª¾àª¥à«‡ àªœà«‹àª¡àª¾àªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "squid àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ssh àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "ssh àªªà«àª°àªµà«‡àª¶à«‹àª¨à«‡ sysadm_r:sysadm_t àª¤àª°à«€àª•à«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "staff_r àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª“ને sysadm àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€àª®àª¾àª‚ àª¶à«‹àª§àªµàª¾ àª…ને àª«àª¾àªˆàª²à«‹ àªµàª¾àª‚ચવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ "
+-#~ "આપો (જેમ àª•à«‡ ~/.bashrc)"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "સારà«àªµàª¤à«àª°àª¿àª• SSL àªŸàª¨àª²"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "stunnel àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "stunnel àª¡àª¿àª®àª¨àª¨à«‡ àªàª•àª²à«àª‚ àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹, xinetd àª¨à«€ àª¬àª¹àª¾àª°"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "swat àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "sxid àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "syslogd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "સિસà«àªŸàª® cron àª•à«àª°àª¿àª¯àª¾àª“ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "tcp àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "telnet àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "tftp àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "transproxy àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "udev àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "uml àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "xinetd àª¨à«‡ unconfined àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹, àª•à«‹àªˆàªªàª£ àª¸à«‡àªµàª¾àª“નો àª¸àª®àª¾àªµà«‡àª¶ àª•àª°à«€àª¨à«‡ àª•à«‡ àªœà«‡àª¨à«‡ "
+-#~ "તે àª¶àª°à«‚ àª•àª°à«‡ àª›à«‡ àª…ને àªœà«‡àª¨à«€ àªªàª¾àª¸à«‡ àª¡à«‹àª®à«‡àªˆàª¨ àªªàª°àª¿àªµàª¹àª¨ àª¬àª¾àª¹à«àª¯ àª°à«€àª¤à«‡ àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª¥àª¯à«‡àª² àª¨àª¹àª¿àª‚ àª¹à«‹àª¯"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "rc àª¸à«àª•à«àª°àª¿àªªà«àªŸà«‹àª¨à«‡ unconfined àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹, rc àª¸à«àª•à«àª°àª¿àªªà«àªŸ àª¦à«àªµàª¾àª°àª¾ àª¶àª°à«‚ àª¥àª¯à«‡àª² "
+-#~ "કોઈપણ àª¡àª¿àª®àª¨àª¨à«‹ àª¸àª®àª¾àªµà«‡àª¶ àª•àª°à«€àª¨à«‡ àª•à«‡ àªœà«‡àª¨à«‡ àªªàª°àª¿àªµàª¹àª¨ àª¬àª¾àª¹à«àª¯ àª°à«€àª¤à«‡ àªµà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ àª¥àª¯à«‡àª² àª¨àª¹àª¿àª‚ àª¹à«‹àª¯"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "rpm àª¨à«‡ unconfined àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "hotplug àª…ને insmod àªœà«‡àªµà«€ àªµàª¿àª¶à«‡àª·àª¾àª§àª¿àª•àª¾àª°à«€àª¤ àª‰àªªàª¯à«‹àª—ીતાઓને unconfined àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ "
+-#~ "પરવાનગી àª†àªªà«‹"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "updfstab àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "utimed àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "user_r àª¨à«‡ sysadm_r àª¸à«àª§à«€ su, sudo, àª…થવા userhelper àª®àª¾àª°àª«àª¤à«‡ àªªàª¹à«‹àª‚ચવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ "
+-#~ "આપો. àª¨àª¹àª¿àª‚તર, àª®àª¾àª¤à«àª° staff_r àª†àªµà«àª‚ àª•àª°à«€ àª¶àª•àª¶à«‡"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "વપરાશકરà«àª¤àª¾àª“ને mount àª†àª¦à«‡àª¶ àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "નિયમિત àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª“ને àª¸à«€àª§à«‹ àª®àª¾àª‰àª¸ àªµàªªàª°àª¾àª¶àª¨à«€ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹ (માતà«àª° X àª¸àª°à«àªµàª°àª¨à«‡ àªªàª°àªµàª¾àª¨àª—à«€ "
+-#~ "આપો)"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "વપરાશકરà«àª¤àª¾àª“ને dmesg àª†àª¦à«‡àª¶ àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "વપરાશકરà«àª¤àª¾àª“ને àª¨à«‡àªŸàªµàª°à«àª• àªˆàª¨à«àªŸàª°àª«à«‡àª¸à«‹ àª¨àª¿àª¯àª‚તà«àª°àª¿àª¤ àª•àª°àªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹ (USERCTL=true àª¨à«€ "
+-#~ "પણ àªœàª°à«‚ર àª›à«‡)"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "સામાનà«àª¯ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª¨à«‡ ping àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "વપરાશકરà«àª¤àª¾àª¨à«‡ r/w noextattrfile àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹ (FAT, CDROM, FLOPPY)"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "વપરાકરà«àª¤àª¾àª“ને rw usb àª‰àªªàª•àª°àª£à«‹àª¨à«€ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "વપરાશકરà«àª¤àª¾àª“ને TCP àª¸àª°à«àªµàª°à«‹ àªšàª²àª¾àªµàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹ (પોરà«àªŸà«‹ àª¸àª¾àª¥à«‡ àª¬àª¾àª‚ધો àª…ને àªàª• àªœ "
+-#~ "ડોમેઈન àª…ને àª¬àª¾àª¹à«àª¯ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª“માંથી àªœà«‹àª¡àª¾àª£ àª¸à«àªµà«€àª•àª¾àª°à«‹)  àª†àª¨à«‡ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°àªµàª¾àª¨à«àª‚ FTP àªªà«‡àª¸à«€àªµ "
+-#~ "સà«àª¥àª¿àª¤àª¿àª¨à«‡ àª¦àª¬àª¾àª£ àª•àª°à«‡ àª›à«‡ àª…ને àª…નà«àª¯ àªªà«àª°à«‹àªŸà«‹àª•à«‹àª²à«‹àª¨à«‡ àªªàª£ àª¬àª¦àª²àª¶à«‡"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "વપરાશકરà«àª¤àª¾àª“ને ttyfiles àª¨à«€ àªªàª°àª¿àª¸à«àª¥àª¿àª¤àª¿ àª†àªªàªµàª¾ àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "uucpd àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "vmware àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "watchdog àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "winbind àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "xdm àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "xdm àªªà«àª°àªµà«‡àª¶à«‹àª¨à«‡ sysadm_r:sysadm_t àª¤àª°à«€àª•à«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "xen àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "xen àª¨à«‡ àª­à«Œàª¤àª¿àª• àª¡àª¿àª¸à«àª• àª‰àªªàª•àª°àª£ àªªàª° àªµàª¾àª‚ચવા/લખવાની àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "xfs àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "xen àª•àª¨à«àª¸à«‹àª² àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ypbind àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "NIS àªªàª¾àª¸àªµàª°à«àª¡ àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ypserv àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "NIS àªªàª°àª¿àªµàª¹àª¨ àª¡àª¿àª®àª¨ àª®àª¾àªŸà«‡ SELinux àª¸à«àª°àª•à«àª·àª¾ àª¨àª¿àª·à«àª•à«àª°àª¿àª¯ àª•àª°à«‹"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª¨à«‡ àª¬àª¿àª¨àªµàª¿àª¶à«‡àª·àª¾àª§àª¿àª•àª¾àª°à«€ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª“ àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€àª“ની àªµà«àª¯àªµàª¸à«àª¥àª¾ "
+-#~ "કરવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª¨à«‡ àª¬àª¿àª¨àªµàª¿àª¶à«‡àª·àª¾àª§àª¿àª•àª¾àª°à«€àª¤ àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾àª“ àª˜àª° àª¡àª¿àª°à«‡àª•à«àªŸàª°à«€àª“ àªµàª¾àª‚ચવા "
+-#~ "માટે àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‹"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "શà«àª‚ àª¤àª®à«‡ àª–રેખર %s '%s' àª•àª¾àª¢à«€ àª¨àª¾àª‚ખવા àª®àª¾àª‚ગો àª›à«‹?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "%s àª•àª¾àª¢à«€ àª¨àª¾àª‚ખો"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "%s àª‰àª®à«‡àª°à«‹"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "%s àª¸à«àª§àª¾àª°à«‹"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "Permissive"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "Enforcing"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "પોલિસી àªªà«àª°àª•àª¾àª° àª¬àª¦àª²àªµàª¾àª¨à«àª‚ àª†àª—ળના àª¬à«àªŸ àªªàª° àªµàª°à«àª¤àª®àª¾àª¨ àª«àª¾àªˆàª² àª¸àª¿àª¸à«àªŸàª®àª¨à«‡ àªªà«àª¨àªƒàª²à«‡àª¬àª² àª•àª°àªµàª¾àª¨à«àª‚ àª•àª¾àª°àª£ àª†àªªà«€ "
+-#~ "શકશે. àªªà«àª¨àªƒàª²à«‡àª¬àª²à«€àª‚ગ àª•àª°àªµàª¾àª¨à«àª‚ àª«àª¾àªˆàª² àª¸àª¿àª¸à«àªŸàª®àª¨àª¾ àª®àª¾àªª àªªàª° àª†àª§àª¾àª° àª°àª¾àª–ીને àª²àª¾àª‚બો àª¸àª®àª¯ àª²à«‡ àª›à«‡.  àª¶à«àª‚ àª¤àª®à«‡ "
+-#~ "ચાલૠરાખવા àª®àª¾àª‚ગો àª›à«‹?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux àª¨àª¿àª·à«àª•à«àª°àª¿àª¯àª•à«ƒàª¤àª®àª¾àª‚ àª¬àª¦àª²àªµàª¾ àª®àª¾àªŸà«‡ àª°à«€àª¬à«àªŸ àªœàª°à«‚રી àª›à«‡.  àª àª†àª—à«àª°àª¹àª£à«€àª¯ àª¨àª¥à«€.  àªœà«‹ àª¤àª®à«‡ àªªàª›à«€àª¥à«€ "
+-#~ "SELinux àª¨à«‡ àªªàª¾àª›à«àª‚ àªšàª¾àª²à« àª•àª°àªµàª¾àª¨à«àª‚ àª¨àª•à«àª•à«€ àª•àª°à«‹, àª¤à«‹ àª¸àª¿àª¸à«àªŸàª®àª¨à«‡ àªªà«àª¨àªƒàª²à«‡àª¬àª² àª•àª°àªµàª¾àª¨à«€ àªœàª°à«‚ર àª°àª¹à«‡àª¶à«‡.  àªœà«‹ àª¤àª®à«‡ "
+-#~ "ખાલી àª àªœà«‹àªµàª¾ àª®àª¾àª‚ગો àª•à«‡ àª¶à«àª‚ SELinux àª àª¤àª®àª¾àª°à«€ àª¸àª¿àª¸à«àªŸàª® àªªàª° àª¸àª®àª¸à«àª¯àª¾ àª¸àª°à«àªœà«€ àª°àª¹à«€ àª›à«‡, àª¤à«‹ àª¤àª®à«‡ "
+-#~ "પરવાનગીય àª¸à«àª¥àª¿àª¤àª¿àª®àª¾àª‚ àªœàªˆ àª¶àª•àª¶à«‹ àª•à«‡ àªœà«‡ àª®àª¾àª¤à«àª° àª­à«‚લો àªœ àª²à«‹àª— àª•àª°àª¶à«‡ àª…ને SELinux àªªà«‹àª²àª¿àª¸à«€àª¨à«‡ àª¦àª¬àª¾àª£ "
+-#~ "કરશે àª¨àª¹àª¿àª‚. àªªàª°àªµàª¾àª¨àª—ીય àª¸à«àª¥àª¿àª¤àª¿àª¨à«‡ àª°à«€àª¬à«àªŸ àª•àª°àªµàª¾àª¨à«€ àªœàª°à«‚ર àª°àª¹à«‡àª¤à«€ àª¨àª¥à«€    àª¶à«àª‚ àª¤àª®à«‡ àªšàª¾àª²à« àª°àª¾àª–વા àª®àª¾àª‚ગો "
+-#~ "છો?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux àª¸àª•à«àª°àª¿àª¯àª•à«ƒàª¤àª®àª¾àª‚ àª¬àª¦àª²àªµàª¾àª¨à«àª‚ àª†àª—ળના àª¬à«àªŸ àªªàª° àªµàª°à«àª¤àª®àª¾àª¨ àª«àª¾àªˆàª² àª¸àª¿àª¸à«àªŸàª®àª¨à«‡ àªªà«àª¨àªƒàª²à«‡àª¬àª² àª•àª°àªµàª¾àª¨à«àª‚ àª•àª¾àª°àª£ "
+-#~ "આપી àª¶àª•àª¶à«‡. àªªà«àª¨àªƒàª²à«‡àª¬àª²à«€àª‚ગ àª•àª°àªµàª¾àª¨à«àª‚ àª«àª¾àªˆàª² àª¸àª¿àª¸à«àªŸàª®àª¨àª¾ àª®àª¾àªª àªªàª° àª†àª§àª¾àª° àª°àª¾àª–ીને àª²àª¾àª‚બો àª¸àª®àª¯ àª²à«‡ àª›à«‡.  àª¶à«àª‚ "
+-#~ "તમે àªšàª¾àª²à« àª°àª¾àª–વા àª®àª¾àª‚ગો àª›à«‹?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux àªªà«àª°àªµà«‡àª¶ àª®à«‡àªªà«€àª‚ગ àª‰àª®à«‡àª°à«‹"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux àª¨à«‡àªŸàªµàª°à«àª• àªªà«‹àª°à«àªŸà«‹ àª‰àª®à«‡àª°à«‹"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux àªªà«àª°àª•àª¾àª°"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "સà«àª¤àª°"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "ફાઈલ àª¸à«àªªàª·à«àªŸà«€àª•àª°àª£"
+-
+-#~ msgid "File Type"
+-#~ msgstr "ફાઈલ àªªà«àª°àª•àª¾àª°"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "બધી àª«àª¾àªˆàª²à«‹\n"
+-#~ "નિયમિત àª«àª¾àªˆàª²\n"
+-#~ "ડિરેકà«àªŸàª°à«€\n"
+-#~ "અકà«àª·àª° àª‰àªªàª•àª°àª£\n"
+-#~ "બà«àª²à«‹àª• àª‰àªªàª•àª°àª£\n"
+-#~ "સોકેટ\n"
+-#~ "સાંકેતિક àª•àª¡à«€\n"
+-#~ "નામવાળà«àª‚ àªªàª¾àªˆàªª\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª‰àª®à«‡àª°à«‹"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux àª¸àª‚ચાલન"
+-
+-#~ msgid "Add"
+-#~ msgstr "ઉમેરો"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "ગà«àª£àª§àª°à«àª®à«‹ (_P)"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "કાઢો (_D)"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "વà«àª¯àªµàª¸à«àª¥àª¾àªªàª¨ àª“બà«àªœà«‡àª•à«àªŸ àªªàª¸àª‚દ àª•àª°à«‹"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>પસંદ àª•àª°à«‹:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "સિસà«àªŸàª® àª®à«‚ળભૂત àª¦àª¬àª¾àª£ àª¸à«àª¥àª¿àª¤àª¿"
+-
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "વરà«àª¤àª®àª¾àª¨ àª¦àª¬àª¾àª£ àª¸à«àª¥àª¿àª¤àª¿"
+-
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "સિસà«àªŸàª® àª®à«‚ળભૂત àªªà«‹àª²àª¿àª¸à«€ àªªà«àª°àª•àª¾àª°: "
+-
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "આગળના àª°à«€àª¬à«àªŸ àªªàª° àª¤àª®à«‡ àª¶à«àª‚ àªµàª°à«àª¤àª®àª¾àª¨ àª«àª¾àªˆàª² àª¸àª¿àª¸à«àªŸàª®àª¨à«‡ àªªà«àª¨àªƒàª²à«‡àª¬àª² àª•àª°àªµàª¾ àªˆàªšà«àª›à«‹ àª›à«‹ àª¤à«‡ àªªàª¸àª‚દ àª•àª°à«‹.  "
+-#~ "પà«àª¨àªƒàª²à«‡àª¬àª² àª•àª°àªµàª¾àª¨à«àª‚ àª²àª¾àª‚બો àª¸àª®àª¯ àª²àªˆ àª¶àª•à«‡ àª›à«‡, àª¸àª¿àª¸à«àªŸàª®àª¨àª¾ àª®àª¾àªª àªªàª° àª†àª§àª¾àª° àª°àª¾àª–ીને.  àªœà«‹ àª¤àª®à«‡ àªªà«‹àª²àª¿àª¸à«€ "
+-#~ "પà«àª°àª•àª¾àª°à«‹ àª¬àª¦àª²à«€ àª°àª¹à«àª¯àª¾ àª¹à«‹àª¯ àª…થવા disabled àª¥à«€ enforcing àª®àª¾àª‚ àªœàªˆ àª°àª¹à«àª¯àª¾ àª¹à«‹àª¯, àª¤à«‹ àªªà«àª¨àªƒàª²à«‡àª¬àª² "
+-#~ "જરૂરી àª›à«‡."
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "આગળના àªªà«àª¨àªƒàª¬à«àªŸ àªªàª° àªªà«àª¨àªƒàª²à«‡àª¬àª²."
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "બà«àª²àª¿àª¯àª¨ àª¸à«àª¯à«‹àªœàª¨àª¨à«‡ àª¸àª¿àª¸à«àªŸàª® àª®à«‚ળભૂતમાં àª‰àª²àªŸàª¾àªµà«‹"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "વૈવિધà«àª¯àªªà«‚રà«àª£ àª¬àª¨àª¾àªµà«‡àª² àª…ને àª¬àª§àª¾ àª¬à«àª²àª¿àª¯àª¨à«‹ àªµàªšà«àªšà«‡ àª«à«‡àª°àª¬àª¦àª²à«€ àª•àª°à«‹"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "ગાળક"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "ફાઈલ àª¸àª‚દરà«àª­ àª‰àª®à«‡àª°à«‹"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "ફાઈલ àª¸àª‚દરà«àª­ àª¸à«àª§àª¾àª°à«‹"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "ફાઈલ àª¸àª‚દરà«àª­ àª•àª¾àª¢à«‹"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "બધા àª…ને àªµà«ˆàªµàª¿àª§à«àª¯àªªà«‚રà«àª£ àª¬àª¨àª¾àªµà«‡àª² àª«àª¾àªˆàª² àª¸àª‚દરà«àª­ àªµàªšà«àªšà«‡ àª¬àª¦àª²à«‹"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª®à«‡àªªà«€àª‚ગ àª‰àª®à«‡àª°à«‹"
+-
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª®àª¾àªªàª¨ àª¸à«àª§àª¾àª°à«‹"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª®àª¾àªªàª¨ àª•àª¾àª¢à«‹"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "ભાષાંતર àª‰àª®à«‡àª°à«‹"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "ભાષાંતર àª¸à«àª§àª¾àª°à«‹"
+-
+-#~ msgid "Delete Translation"
+-#~ msgstr "ભાષાંતર àª•àª¾àª¢à«‹"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ àª¸à«àª§àª¾àª°à«‹"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "નેટવરà«àª• àªªà«‹àª°à«àªŸ àª‰àª®à«‡àª°à«‹"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "નેટવરà«àª• àªªà«‹àª°à«àªŸàª®àª¾àª‚ àª«à«‡àª°àª«àª¾àª° àª•àª°à«‹"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "નેટવરà«àª• àªªà«‹àª°à«àªŸ àª•àª¾àª¢à«‹"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "વૈવિધà«àª¯àªªà«‚રà«àª£ àª¬àª¨àª¾àªµà«‡àª² àª…ને àª¬àª§àª¾ àªªà«‹àª°à«àªŸ àªµàªšà«àªšà«‡ àª¬àª¦àª²à«‹"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "નવà«àª‚ àªªà«‹àª²àª¿àª¸à«€ àª®à«‹àª¡à«àª¯à«àª² àª¬àª¨àª¾àªµà«‹"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "પોલિસી àª®à«‹àª¡à«àª¯à«àª² àª²àª¾àªµà«‹"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "લાવી àª¶àª•àª¾àª¯ àª¤à«‡àªµà«àª‚ àªªà«‹àª²àª¿àª¸à«€ àª®à«‹àª¡à«àª¯à«àª² àª¦à«‚ર àª•àª°à«‹"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "વધારાના àª¸àª‚પાદન àª¨àª¿àª¯àª®à«‹ àª¸àª•à«àª°àª¿àª¯/નિષà«àª•à«àª°àª¿àª¯ àª•àª°à«‹, àª•à«‡ àªœà«‡àª“ àª¸àª¾àª®àª¾àª¨à«àª¯ àª°à«€àª¤à«‡ àª²à«‹àª— àª«àª¾àªˆàª²à«‹àª®àª¾àª‚ àª…હેવાલ "
+-#~ "અપાયેલ àª¨àª¹àª¿àª‚ àª¹à«‹àª¯."
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "સંવેદનશીલતા àª¸à«àª¤àª°"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux àªµàªªàª°àª¾àª¶àª•àª°à«àª¤àª¾ '%s' àªœàª°à«‚રી àª›à«‡"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "કિંમત àªœàª°à«‚રી àª›à«‡"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "કારà«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ àª­à«‚મિકાને àª•à«‹àªˆàªªàª£ tcp àªªà«‹àª°à«àªŸà«‹ > 1024 àª¬àª¾àª‚ધવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‡ àª›à«‡"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "શà«àª¦à«àª§àª¿ àª¥àª¯à«‡àª² àª•àª¾àª°à«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ àª­à«‚મિકાને àª•à«‹àªˆàªªàª£ tcp àªªà«‹àª°à«àªŸ àª¸àª¾àª¥à«‡ àª¬àª¾àª‚ધવા àª®àª¾àªŸà«‡ àªªàª°àªµàª¾àª¨àª—à«€ àª†àªªà«‡ "
+-#~ "છે"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "અલà«àªªàªµàª¿àª°àª¾àª®àª¥à«€ àª…લગ àªªàª¡à«‡àª² tcp àªªà«‹àª°à«àªŸà«‹àª¨à«€ àª¯àª¾àª¦à«€ àª…થવા àªªà«‹àª°à«àªŸà«‹àª¨à«‹ àªµàª¿àª¸à«àª¤àª¾àª° àª¦àª¾àª–લ àª•àª°à«‹ àª•à«‡ àªœà«‡àª¨à«‡ "
+-#~ "કારà«àª¯àª•à«àª°àª®/વપરાશકરà«àª¤àª¾ àª­à«‚મિકા àª¬àª¾àª‚ધે. àª‰àª¦àª¾àª¹àª°àª£: 612, 650-660"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "SELinux àªªà«‹àª²àª¿àª¸à«€ àª¬àª¨àª¾àªµàªŸ àª¡à«àª°à«àª¡"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "બિનઆરકà«àª·àª¿àª¤ àªªà«‹àª°à«àªŸà«‹  (> 1024)"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr "જો àª¤àª®àª¾àª°à«‹ àª•àª¾àª°à«àª¯àª•à«àª°àª® bindresvport àª¨à«‡ 0 àª¸àª¾àª¥à«‡ àª¬àª¾àª‚ધે àª¤à«‹ àª† àªšàª•àª¾àª¸àª£à«€àª¬àªŸàª¨ àªµàª¾àªªàª°à«‹."
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/he.po b/policycoreutils/po/he.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/he.po
++++ b/policycoreutils/po/he.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/hi.po b/policycoreutils/po/hi.po
+index f1a3b31..09de31c 100644
+--- a/policycoreutils/po/hi.po
++++ b/policycoreutils/po/hi.po
+@@ -1,36 +1,22 @@
+-# translation of policycoreutils.HEAD.hi.po to Hindi
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+ #
+-# Rajesh Ranjan <rranjan@redhat.com>, 2006, 2007, 2008.
++# Translators:
++# Rajesh Ranjan <rranjan@redhat.com>, 2006, 2007, 2008, 2009, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD.hi\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-03-31 15:14+0530\n"
+-"Last-Translator: Rajesh Ranjan <rranjan@redhat.com>\n"
+-"Language-Team: Hindi <hindi.sf.net>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Hindi <indlinux-hindi@lists.sourceforge.net>\n"
+ "Language: hi\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -125,9 +111,8 @@ msgid "Could not establish semanage connection"
+ msgstr "semanage à¤¸à¤‚बंधन à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "MLS à¤ªà¤°à¤¿à¤¸à¤° %s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
++msgstr "MLS à¤¸à¤•à¥à¤°à¤¿à¤¯ à¤¸à¥à¤¥à¤¿à¤¤à¤¿ à¤œà¤¾à¤à¤š à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -135,36 +120,33 @@ msgstr "अब à¤¤à¤• à¤²à¤¾à¤—ू à¤¨à¤¹à¥€à¤‚"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "सीमैनेज à¤²à¥‡à¤¨à¤¦à¥‡à¤¨ à¤ªà¤¹à¤²à¥‡ à¤¸à¥‡ à¤ªà¥à¤°à¤—ति à¤ªà¤° à¤¹à¥ˆ"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "semanage à¤µà¤¿à¤¨à¤¿à¤®à¤¯ à¤†à¤°à¤‚भ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage à¤µà¤¿à¤¨à¤¿à¤®à¤¯ à¤†à¤°à¤‚भ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
++msgstr "semanage à¤µà¤¿à¤¨à¤¿à¤®à¤¯ à¤¸à¥Œà¤‚प à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "सीमैनेज à¤²à¥‡à¤¨à¤¦à¥‡à¤¨ à¤ªà¥à¤°à¤—ति à¤ªà¤° à¤¨à¤¹à¥€à¤‚ à¤¹à¥ˆ"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¸à¥‚चीबदà¥à¤§ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
++msgstr "SELinux à¤®à¥‰à¤¡à¥à¤¯à¥‚ल à¤¸à¥‚चीबदà¥à¤§ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "मॉडà¥à¤¯à¥‚ल à¤¨à¤¾à¤®"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "संसà¥à¤•à¤°à¤£"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "निषà¥à¤•à¥à¤°à¤¿à¤¯"
+@@ -174,9 +156,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "%s à¤­à¥‚मिका %s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤œà¥‹à¤¡à¤¼ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -188,24 +170,22 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "अनà¥à¤œà¥à¤žà¤¾à¤¤à¥à¤®à¤•"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "अनà¥à¤œà¥à¤žà¤¾à¤¤à¥à¤®à¤•"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "अनà¥à¤œà¥à¤žà¤¾à¤¤à¥à¤®à¤• à¤¡à¥‹à¤®à¥‡à¤¨ %s (मॉडà¥à¤¯à¥‚ल à¤¸à¤‚सà¥à¤¥à¤¾à¤ªà¤¨ à¤µà¤¿à¤«à¤²) à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "अनà¥à¤œà¥à¤žà¤¾à¤¤à¥à¤®à¤• à¤¡à¥‹à¤®à¥‡à¤¨ %s (हटाना à¤µà¤¿à¤«à¤²) à¤¹à¤Ÿà¤¾ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -225,9 +205,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "नहीं à¤œà¤¾à¤‚च à¤¸à¤•à¤¾ à¤…गर %s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤²à¥‰à¤—िन à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤®à¥Œà¤œà¥‚द à¤¨à¤¹à¥€à¤‚ à¤¹à¥ˆ"
++msgstr "Linux à¤¸à¤®à¥‚ह %s à¤®à¥Œà¤œà¥‚द à¤¨à¤¹à¥€à¤‚ à¤¹à¥ˆ"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -294,15 +274,20 @@ msgid "Could not list login mappings"
+ msgstr "लॉगिन à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤¨à¤¹à¥€à¤‚ à¤¸à¥‚चीबदà¥à¤§ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "लॉगिन à¤¨à¤¾à¤®"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS à¤ªà¤°à¤¿à¤¸à¤°"
+@@ -320,9 +305,9 @@ msgid "Could not query user for %s"
+ msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¤à¤¾"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¥€à¤‚ à¤œà¥‹à¤¡à¤¼ à¤¸à¤•à¤¾"
++msgstr "आपको à¤•à¤® à¤¸à¥‡ à¤•à¤® à¤à¤• à¤­à¥‚मिका %s à¤•à¥‡ à¤²à¤¿à¤ à¤œà¤°à¥‚र à¤œà¥‹à¤¡à¤¼à¤¨à¤¾ à¤šà¤¾à¤¹à¤¿à¤"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -412,6 +397,7 @@ msgid "MCS Range"
+ msgstr "MCS à¤ªà¤°à¤¿à¤¸à¤°"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux à¤­à¥‚मिका"
+@@ -424,9 +410,8 @@ msgid "Port is required"
+ msgstr "पोरà¥à¤Ÿ à¤œà¤°à¥‚री à¤¹à¥ˆ"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "अवैध à¤‰à¤ªà¤¸à¤°à¥à¤— %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -543,18 +528,17 @@ msgstr "SELinux à¤ªà¥‹à¤°à¥à¤Ÿ à¤ªà¥à¤°à¤•à¤¾à¤°"
+ msgid "Proto"
+ msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "पोरà¥à¤Ÿ à¤¸à¤‚खà¥à¤¯à¤¾"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "पोरà¥à¤Ÿ à¤œà¤°à¥‚री à¤¹à¥ˆ"
++msgstr "नोड à¤ªà¤¤à¤¾ à¤œà¤°à¥‚री à¤¹à¥ˆ"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "अजà¥à¤žà¤¾à¤¤ à¤µ à¤…नà¥à¤ªà¤¸à¥à¤¥à¤¿à¤¤ à¤ªà¥à¤°à¥‹à¤Ÿà¥‹à¤•à¥‰à¤²"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -571,14 +555,14 @@ msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤•à¥à¤‚जी à¤¨à¤¹à¥€à¤‚ à¤¬à¤¨à¤¾ à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "जांच à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾ à¤…गर à¤ªà¥‹à¤°à¥à¤Ÿ %s/%s à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ"
++msgstr "जांच à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾ à¤…गर addr %s à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤•à¥à¤‚जी à¤¨à¤¹à¥€à¤‚ à¤¬à¤¨à¤¾ à¤¸à¤•à¤¾"
++msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ addr à¤¨à¤¹à¥€à¤‚ à¤¬à¤¨à¤¾ à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -587,74 +571,72 @@ msgid "Could not create context for %s"
+ msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤¸à¤‚दरà¥à¤­ à¤¬à¤¨à¤¾ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤¨à¤¾à¤® à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
++msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤®à¤¾à¤¸à¥à¤• à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤®à¥‡à¤‚ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
++msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ addr à¤¸à¤‚दरà¥à¤­ à¤®à¥‡à¤‚ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤®à¥‡à¤‚ à¤­à¥‚मिका à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
++msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ addr à¤¸à¤‚दरà¥à¤­ à¤®à¥‡à¤‚ à¤­à¥‚मिका à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤®à¥‡à¤‚ à¤Ÿà¤¾à¤‡à¤ª à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
++msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ addr à¤¸à¤‚दरà¥à¤­ à¤®à¥‡à¤‚ à¤Ÿà¤¾à¤‡à¤ª à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "mls à¤•à¥à¤·à¥‡à¤¤à¥à¤° %s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤•à¥‡ à¤•à¥à¤°à¤® à¤®à¥‡à¤‚ à¤¨à¤¹à¥€à¤‚ à¤¸à¥‡à¤Ÿ à¤•à¤° à¤¸à¤•à¤¾"
++msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ addr à¤¸à¤‚दरà¥à¤­ à¤•à¥‡ mls à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤®à¥‡à¤‚ à¤¨à¤¹à¥€à¤‚ à¤¸à¥‡à¤Ÿ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¥€à¤‚ à¤¸à¥‡à¤Ÿ à¤•à¤° à¤¸à¤•à¤¾"
++msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ addr à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¥€à¤‚ à¤¸à¥‡à¤Ÿ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "%s/%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤œà¥‹à¤¡à¤¼ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
++msgstr "%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤œà¥‹à¤¡à¤¼ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "पोरà¥à¤Ÿ %s/%s à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¨à¤¹à¥€à¤‚ à¤¹à¥ˆ"
++msgstr "Addr %s à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¨à¤¹à¥€à¤‚ à¤¹à¥ˆ"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "%s/%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
++msgstr "addr %s à¤•à¥‹ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "%s/%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤°à¥‚पांतरित à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
++msgstr "addr %s à¤°à¥‚पांतरित à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "%s/%s à¤¨à¥€à¤¤à¤¿ à¤®à¥‡à¤‚ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ, à¤®à¤¿à¤Ÿà¤¾ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¤à¤¾"
++msgstr "Addr %s à¤¨à¥€à¤¤à¤¿ à¤®à¥‡à¤‚ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ, à¤®à¤¿à¤Ÿà¤¾à¤¯à¤¾ à¤¨à¤¹à¥€à¤‚ à¤œà¤¾ à¤¸à¤•à¤¤à¤¾ à¤¹à¥ˆ"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "%s à¤®à¤¿à¤Ÿà¤¾ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
++msgstr "addr %s à¤®à¤¿à¤Ÿà¤¾ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤²à¥‰à¤—िन à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤¨à¤¹à¥€à¤‚ à¤®à¤¿à¤Ÿà¤¾ à¤¸à¤•à¤¾"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "पोरà¥à¤Ÿ à¤¸à¥‚ची à¤¬à¤¦à¥à¤§ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
++msgstr "addrs à¤¸à¥‚ची à¤¬à¤¦à¥à¤§ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -728,9 +710,8 @@ msgid "Could not delete interface %s"
+ msgstr "%s à¤…ंतरफलक à¤®à¤¿à¤Ÿà¤¾ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "%s à¤…ंतरफलक à¤®à¤¿à¤Ÿà¤¾ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -745,9 +726,9 @@ msgid "Context"
+ msgstr "संदरà¥à¤­"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤ªà¤¹à¤²à¥‡ à¤¸à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -755,9 +736,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤®à¥Œà¤œà¥‚द à¤¨à¤¹à¥€à¤‚ à¤¹à¥ˆ"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -877,11 +858,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -900,14 +880,14 @@ msgid "Could not query file context %s"
+ msgstr "%s à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤•à¥‹ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "आपको à¤à¤• à¤®à¤¾à¤¨ à¤…वशà¥à¤¯ à¤¨à¤¿à¤°à¥à¤¦à¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¨à¤¾ à¤¹à¥ˆ"
++msgstr "आपको à¤¨à¤¿à¤®à¥à¤¨à¤²à¤¿à¤–ित à¤®à¤¾à¤¨ à¤…वशà¥à¤¯ à¤¨à¤¿à¤°à¥à¤¦à¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¨à¤¾ à¤¹à¥ˆ: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "%s à¤¬à¥à¤²à¤¿à¤¯à¤¨ à¤®à¤¿à¤Ÿà¤¾ à¤¨à¤¹à¥€à¤‚ à¤¸à¤•à¤¾"
++msgstr "%s à¤¬à¥à¤²à¤¿à¤¯à¤¨ à¤•à¤¾ à¤¸à¤•à¥à¤°à¤¿à¤¯ à¤®à¤¾à¤¨ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤° à¤¸à¤•à¤¾"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -917,7 +897,7 @@ msgstr "%s à¤¬à¥à¤²à¤¿à¤¯à¤¨ à¤°à¥‚पांतरित à¤¨à¤¹à¥€à¤‚ à¤•à¤° 
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "खराब à¤ªà¥à¤°à¤¾à¤°à¥‚प %s: à¤°à¤¿à¤•à¤¾à¤°à¥à¤¡ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -950,15 +930,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux à¤¬à¥‚लियन"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "सà¥à¤¤à¤°"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "विवरण"
+@@ -1295,1729 +1275,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "विकलà¥à¤ª à¤¤à¥à¤°à¥à¤Ÿà¤¿ %s"
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "%s à¤–ोलने à¤®à¥‡à¤‚ à¤…समरà¥à¤¥: à¤—ैर-MLS à¤®à¤¶à¥€à¤¨ à¤ªà¤° à¤…नà¥à¤µà¤¾à¤¦ à¤¸à¤®à¤°à¥à¤¥à¤¿à¤¤ à¤¨à¤¹à¥€à¤‚: %s"
+-
+-#~ msgid "Level"
+-#~ msgstr "सà¥à¤¤à¤°"
+-
+-#~ msgid "Translation"
+-#~ msgstr "अनà¥à¤µà¤¾à¤¦"
+-
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "अनà¥à¤µà¤¾à¤¦ à¤®à¥‡à¤‚ '%s' à¤–ाली à¤¸à¥à¤¥à¤¾à¤¨ à¤¨à¤¹à¥€à¤‚ à¤¹à¥‹à¤¤à¥‡ à¤¹à¥ˆà¤‚."
+-
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "अवैध à¤¸à¥à¤¤à¤° '%s' "
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s à¤ªà¤¹à¤²à¥‡ à¤¸à¥‡ à¤…नà¥à¤µà¤¾à¤¦ à¤®à¥‡à¤‚ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s à¤…नà¥à¤µà¤¾à¤¦ à¤®à¥‡à¤‚ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¨à¤¹à¥€à¤‚ à¤¹à¥ˆ"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤²à¥‰à¤—िन à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤ªà¤¹à¤²à¥‡ à¤¸à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ"
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤œà¥‹à¤¡à¤¼à¥‡à¤‚"
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤ªà¤¹à¤²à¥‡ à¤¸à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "पोरà¥à¤Ÿ à¤œà¤°à¥‚री à¤¹à¥ˆ"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "%s/%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤ªà¤¹à¤²à¥‡ à¤¸à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "%s à¤…ंतरफलक à¤ªà¤¹à¤²à¥‡ à¤¸à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "तà¥à¤°à¥à¤Ÿà¤¿ initing à¤•à¥à¤·à¤®à¤¤à¤¾, à¤¤à¥à¤¯à¤¾à¤— à¤°à¤¹à¤¾ à¤¹à¥ˆ.\n"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "तà¥à¤°à¥à¤Ÿà¤¿ à¤¸à¥‡à¤Ÿà¤¿à¤‚ग à¤•à¥à¤·à¤®à¤¤à¤¾, à¤°à¥‹à¤• à¤°à¤¹à¤¾ à¤¹à¥ˆ\n"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS à¤¸à¥‡à¤Ÿ à¤•à¤°à¤¨à¥‡ à¤®à¥‡à¤‚ à¤¤à¥à¤°à¥à¤Ÿà¤¿, à¤°à¥‹à¤• à¤°à¤¹à¤¾ à¤¹à¥ˆ\n"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "तà¥à¤°à¥à¤Ÿà¤¿ à¤¤à¥à¤¯à¤¾à¤— à¤•à¥à¤·à¤®à¤¤à¤¾, à¤¤à¥à¤¯à¤¾à¤— à¤°à¤¹à¤¾ à¤¹à¥ˆ\n"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "तà¥à¤°à¥à¤Ÿà¤¿ SETUID à¤•à¥à¤·à¤®à¤¤à¤¾ à¤›à¥‹à¤¡à¤¼ à¤°à¤¹à¤¾ à¤¹à¥ˆ, à¤¤à¥à¤¯à¤¾à¤— à¤°à¤¹à¤¾ à¤¹à¥ˆ\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "caps à¤¸à¥à¤µà¤¤à¤‚तà¥à¤° à¤•à¤°à¤¨à¥‡ à¤®à¥‡à¤‚ à¤¤à¥à¤°à¥à¤Ÿà¤¿\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "गैर-MLS à¤®à¤¶à¥€à¤¨ à¤ªà¤° à¤…नà¥à¤µà¤¾à¤¦ à¤¸à¤®à¤°à¥à¤¥à¤¿à¤¤ à¤¨à¤¹à¥€à¤‚"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "बूलिये"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "सभी"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "पसंदीदा"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "फाइल à¤²à¥‡à¤¬à¤²à¤¿à¤‚ग"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "फाइल\n"
+-#~ "विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "फाइल à¤ªà¥à¤°à¤•à¤¾à¤°"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "फाइल\n"
+-#~ "पà¥à¤°à¤•à¤¾à¤°"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "उपयोकà¥à¤¤à¤¾ à¤®à¥ˆà¤ªà¤¿à¤‚ग"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "लॉगिन\n"
+-#~ "नाम"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "उपयोकà¥à¤¤à¤¾"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS à¤ªà¤°à¤¿à¤¸à¤°"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "लॉगिन '%s' à¤œà¤°à¥‚री à¤¹à¥ˆ"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "पॉलिसी à¤®à¥‰à¤¡à¥à¤¯à¥‚ल"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "ऑडिट à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "ऑडिट à¤¸à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "पॉलिसी à¤®à¥‰à¤¡à¥à¤¯à¥‚ल à¤²à¥‹à¤¡ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "पोलà¥à¤œà¥‡à¤¨"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "राजेश à¤°à¤‚जन (rranjan@redhat.com, rajeshkajha@yahoo.com)"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux à¤ªà¥‰à¤²à¤¿à¤¸à¥€ à¤œà¤¨à¤¨ à¤”जार"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "यह à¤”जार à¤à¤• à¤ªà¥‰à¤²à¤¿à¤¸à¥€ à¤«à¥à¤°à¥‡à¤®à¤µà¤°à¥à¤• à¤¬à¤¨à¤¾à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤ªà¥à¤°à¤¯à¥à¤•à¥à¤¤ à¤¹à¥‹à¤¤à¤¾ à¤¹à¥ˆ, à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¯à¤¾ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ "
+-#~ "SELinux à¤•à¥‡ à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¥‡ à¤²à¤¿à¤ à¤¸à¥€à¤®à¤¤à¤¿ à¤•à¤°à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤.   \n"
+-#~ "\n"
+-#~ "औजार à¤¬à¤¨à¤¾à¤¤à¤¾ à¤¹à¥ˆ:\n"
+-#~ "पà¥à¤°à¤•à¤¾à¤° à¤¬à¤¾à¤§à¥à¤¯à¤•à¤¾à¤°à¥€ à¤«à¤¾à¤‡à¤²\n"
+-#~ "अंतरफलक à¤«à¤¾à¤‡à¤² (if)\n"
+-#~ "फाइल à¤¸à¤‚दरà¥à¤­ à¤«à¤¾à¤‡à¤² (fc)\n"
+-#~ "Shell script (sh) - à¤ªà¥‰à¤²à¤¿à¤¸à¥€ à¤•à¤‚पाइल à¤µ à¤…धिषà¥à¤ à¤¾à¤ªà¤¿à¤¤ à¤•à¤°à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤ªà¥à¤°à¤¯à¥à¤•à¥à¤¤. "
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "सीमित à¤°à¤¹à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/उपयोकà¥à¤¤à¤¾ à¤­à¥‚मिका à¤•à¥‡ à¤ªà¥à¤°à¤•à¤¾à¤° à¤šà¥à¤¨à¥‡à¤‚."
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "मानक Init à¤¡à¥‡à¤®à¥‰à¤¨ à¤µà¥‡ à¤¡à¥‡à¤®à¥‰à¤¨ à¤¹à¥ˆà¤‚ à¤œà¥‹ à¤¬à¥‚ट à¤ªà¤° init à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤¸à¥‡ à¤¹à¥‹à¤•à¤° à¤†à¤°à¤‚भ à¤•à¤¿à¤¯à¤¾ à¤—या.  à¤ªà¥à¤°à¤¾à¤¯à¤ƒ /"
+-#~ "etc/rc.d/init.d à¤®à¥‡à¤‚ à¤à¤• à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤•à¥€ à¤œà¤°à¥‚री à¤¹à¥ˆ"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "मानक Init à¤¡à¥‡à¤®à¥‰à¤¨"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "इंटरनेट à¤¸à¥‡à¤µà¤¾ à¤¡à¥‡à¤®à¥‰à¤¨ xinetd à¤•à¥‡ à¤¦à¥à¤µà¤¾à¤°à¤¾ à¤†à¤°à¤‚भ à¤•à¤¿à¤¯à¤¾ à¤œà¤¾à¤¤à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "इंटरनेट à¤¸à¤°à¥à¤µà¤¿à¤¸ à¤¡à¥‡à¤®à¥‰à¤¨ (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "वेब à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ (CGI) CGI à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤•à¥‹ à¤µà¥‡à¤¬ à¤¸à¤°à¥à¤µà¤° à¤•à¥‡ à¤¦à¥à¤µà¤¾à¤°à¤¾ à¤†à¤°à¤‚भ à¤•à¤¿à¤¯à¤¾ à¤œà¤¾à¤¤à¤¾ à¤¹à¥ˆ "
+-#~ "(apache)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "वेब à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "उपयोकà¥à¤¤à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¥‹à¤ˆ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¹à¥ˆ à¤œà¥‹ à¤¸à¥€à¤®à¤¿à¤¤ à¤•à¤°à¤¨à¤¾ à¤šà¤¾à¤¹à¥‡à¤—ा à¤œà¥‹ à¤•à¤¿ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‡ à¤¦à¥à¤µà¤¾à¤°à¤¾ "
+-#~ "आरंभ à¤¹à¥à¤† à¤¹à¥ˆ"
+-
+-#~ msgid "User Application"
+-#~ msgstr "उपयोकà¥à¤¤à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>लॉगिन à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "मौजूदा à¤²à¥‰à¤—िन à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤°à¤¿à¤•à¤¾à¤°à¥à¤¡ à¤°à¥‚पांतरित à¤•à¤°à¥‡à¤‚."
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "मौजूदा à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "यह à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤®à¤¶à¥€à¤¨ à¤®à¥‡à¤‚ à¤²à¥‰à¤—िन à¤®à¤¾à¤¤à¥à¤° à¤Ÿà¤°à¥à¤®à¤¿à¤¨à¤² à¤¯à¤¾ à¤¦à¥‚रसà¥à¤¥ à¤²à¥‰à¤—िन à¤¸à¥‡ à¤¹à¥‹à¤—ा.  à¤®à¥‚लभूत à¤°à¥‚प à¤¸à¥‡ à¤¯à¤¹ "
+-#~ "उपयोकà¥à¤¤à¤¾ à¤•à¥‡ à¤ªà¤¾à¤¸ à¤•à¥‹à¤ˆ setuid à¤¨à¤¹à¥€à¤‚ à¤¹à¥‹à¤—ा, à¤•à¥‹à¤ˆ à¤¸à¤‚जालन à¤¨à¤¹à¥€à¤‚, à¤•à¥‹à¤ˆ su à¤¨à¤¹à¥€à¤‚, à¤•à¥‹à¤ˆ sudo "
+-#~ "नहीं."
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "नà¥à¤¯à¥‚नतम à¤Ÿà¤°à¥à¤®à¤¿à¤¨à¤² à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "यह à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤®à¤¶à¥€à¤¨ à¤®à¥‡à¤‚ à¤²à¥‰à¤—िन X à¤¯à¤¾ à¤Ÿà¤°à¥à¤®à¤¿à¤¨à¤² à¤¸à¥‡ à¤•à¤° à¤¸à¤•à¤¤à¤¾ à¤¹à¥ˆ.  à¤®à¥‚लभूत à¤°à¥‚प à¤¸à¥‡ à¤¯à¤¹ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‡ "
+-#~ "पास à¤•à¥‹à¤ˆ setuid à¤¨à¤¹à¥€à¤‚ à¤¹à¥‹à¤—ा, à¤•à¥‹à¤ˆ à¤¸à¤‚जालन à¤¨à¤¹à¥€à¤‚, à¤•à¥‹à¤ˆ sudo à¤¨à¤¹à¥€à¤‚, à¤•à¥‹à¤ˆ su à¤¨à¤¹à¥€à¤‚."
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "नà¥à¤¯à¥‚नतम X à¤µà¤¿à¤‚डोज à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "पूरà¥à¤£ à¤¸à¤‚जालन à¤•à¥‡ à¤¸à¤¾à¤¥ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾, à¤•à¥‹à¤ˆ setuid à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¬à¤¿à¤¨à¤¾ à¤¸à¤‚कà¥à¤°à¤®à¤£ à¤•à¥‡ à¤¨à¤¹à¥€à¤‚, à¤•à¥‹à¤ˆ sudo "
+-#~ "नहीं, à¤•à¥‹à¤ˆ su à¤¨à¤¹à¥€à¤‚."
+-
+-#~ msgid "User Role"
+-#~ msgstr "उपयोकà¥à¤¤à¤¾ à¤­à¥‚मिका"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "पूरà¥à¤£ à¤¸à¤‚जालन à¤•à¥‡ à¤¸à¤¾à¤¥ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾, à¤•à¥‹à¤ˆ setuid à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¬à¤¿à¤¨à¤¾ à¤¸à¤‚कà¥à¤°à¤®à¤£ à¤•à¥‡ à¤¨à¤¹à¥€à¤‚, à¤•à¥‹à¤ˆ su à¤¨à¤¹à¥€à¤‚, "
+-#~ "रूट à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤¨ à¤­à¥‚मिका à¤•à¥‹ sudo à¤•à¤° à¤¸à¤•à¤¤à¤¾ à¤¹à¥ˆ."
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "पà¥à¤°à¤¶à¤¾à¤¸à¤¨ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>रूट à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾</b>"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "रूट à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤¨ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾  à¤­à¥‚मिका à¤šà¥à¤¨à¥‡à¤‚, à¤¯à¤¦à¤¿ à¤¯à¤¹ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤®à¤¶à¥€à¤¨ à¤•à¥‹ à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤¿à¤¤ à¤•à¤°à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ "
+-#~ "पà¥à¤°à¤¯à¥‹à¤— à¤•à¤¿à¤¯à¤¾ à¤œà¤¾à¤¤à¤¾ à¤¹à¥ˆ à¤°à¥‚ट à¤•à¥‡ à¤°à¥‚प à¤®à¥‡à¤‚ à¤•à¤¾à¤°à¥à¤¯ à¤•à¤°à¤¤à¥‡ à¤¹à¥à¤.  à¤¯à¤¹ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¸à¤¿à¤¸à¥à¤Ÿà¤® à¤®à¥‡à¤‚ à¤¸à¥€à¤§à¥‡ à¤²à¥‰à¤—िन "
+-#~ "होने à¤•à¥‡ à¤²à¤¿à¤ à¤¸à¤®à¤°à¥à¤¥ à¤¨à¤¹à¥€à¤‚ à¤¹à¥‹à¤—ा."
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "रूट à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤¨ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤¾ à¤¨à¤¾à¤® à¤µ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका à¤¸à¥€à¤®à¤¿à¤¤ à¤°à¤¹à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤¡à¤¾à¤²à¥‡à¤‚."
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "नाम"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "सीमित à¤°à¤¹à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤à¤•à¥à¤¸à¤•à¥à¤¯à¥‚टेबल à¤•à¤¾ à¤ªà¥‚रा à¤ªà¤¥ à¤¦à¥‡à¤‚."
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "सीमित à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¯à¤¾ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका  à¤•à¥‡ à¤²à¤¿à¤ à¤…दà¥à¤µà¤¿à¤¤à¥€à¤¯ à¤¨à¤¾à¤® à¤¦à¥‡à¤‚."
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Executable"
+-#~ msgstr "à¤à¤•à¥à¤¸à¤•à¥à¤¯à¥‚टेबल"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Init script"
+-#~ msgstr "Init à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr "सीमित à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤†à¤°à¤‚भ à¤•à¤°à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ init à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤®à¥‡à¤‚ à¤ªà¥‚रा à¤ªà¤¥ à¤¡à¤¾à¤²à¥‡à¤‚."
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "उन à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिकाओं à¤•à¥‹ à¤šà¥à¤¨à¥‡à¤‚ à¤œà¤¿à¤¸à¥‡ à¤†à¤ª à¤ªà¤¸à¤‚दीदा à¤¬à¤¨à¤¾à¤¨à¤¾ à¤šà¤¾à¤¹à¤¤à¥‡ à¤¹à¥ˆà¤‚"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr "उपयोकà¥à¤¤à¤¾ à¤­à¥‚मिका à¤šà¥à¤¨à¥‡à¤‚ à¤œà¥‹ à¤•à¤¿ à¤‡à¤¸ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¡à¥‹à¤®à¥‡à¤¨ à¤®à¥‡à¤‚ à¤¸à¤‚कà¥à¤°à¤®à¤¿à¤¤ à¤•à¤°à¥‡à¤—ा."
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "अतिरिकà¥à¤¤ à¤¡à¥‹à¤®à¥‡à¤¨ à¤šà¥à¤¨à¥‡à¤‚ à¤œà¤¿à¤¸à¤®à¥‡à¤‚ à¤¯à¤¹ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका à¤¸à¤‚कà¥à¤°à¤®à¤£ à¤•à¤°à¥‡à¤—ा"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¡à¥‹à¤®à¥‡à¤¨ à¤šà¥à¤¨à¥‡à¤‚ à¤œà¤¿à¤¸à¤®à¥‡à¤‚ à¤†à¤ª à¤‡à¤¸ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका à¤•à¥‹ à¤¸à¤‚कà¥à¤°à¤®à¤£ à¤•à¤°à¤¾à¤¨à¤¾ à¤šà¤¾à¤¹à¥‡à¤‚गे."
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "उन à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिकाओं à¤•à¥‹ à¤šà¥à¤¨à¥‡à¤‚ à¤œà¥‹ à¤‡à¤¸ à¤¡à¥‹à¤®à¥‡à¤¨ à¤®à¥‡à¤‚ à¤¸à¤‚कà¥à¤°à¤®à¤¿à¤¤ à¤•à¤¿à¤¯à¤¾ à¤œà¤¾à¤à¤—ा"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "अतिरिकà¥à¤¤ à¤¡à¥‹à¤®à¥‡à¤¨ à¤šà¥à¤¨à¥‡à¤‚ à¤œà¤¿à¤¸à¥‡ à¤¯à¤¹ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤¿à¤¤ à¤•à¤°à¥‡à¤—ा"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "डोमेन à¤šà¥à¤¨à¥‡à¤‚ à¤œà¤¿à¤¸à¥‡ à¤†à¤ª à¤‡à¤¸ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‡ à¤¦à¥à¤µà¤¾à¤°à¤¾ à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤¿à¤¤ à¤•à¤°à¤¾à¤¨à¤¾ à¤šà¤¾à¤¹à¥‡à¤‚गे."
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "इस à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‡ à¤²à¤¿à¤ à¤…तिरिकà¥à¤¤ à¤­à¥‚मिकाà¤à¤‚ à¤šà¥à¤¨à¥‡à¤‚"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "संजाल à¤ªà¥‹à¤°à¥à¤Ÿ à¤¦à¤¾à¤–िल à¤•à¤°à¥‡à¤‚ à¤œà¤¿à¤¸à¤¸à¥‡ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/उपयोकà¥à¤¤à¤¾ à¤²à¤¾à¤‡à¤¸à¥‡à¤‚स à¤²à¤¿à¤¯à¤¾ à¤¹à¥‹à¤¤à¤¾ à¤¹à¥ˆ."
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP à¤ªà¥‹à¤°à¥à¤Ÿ</b>"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr "सीमित à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/उपयोकà¥à¤¤à¤¾ à¤­à¥‚मिका à¤•à¥‹ à¤•à¤¿à¤¸à¥€ udp à¤ªà¥‹à¤°à¥à¤Ÿ à¤®à¥‡à¤‚ à¤¬à¤¾à¤‚धने à¤•à¥‡ à¤²à¤¿à¤ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "सभी"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/उपयोकà¥à¤¤à¤¾ à¤­à¥‚मिका à¤•à¥‹ bindresvport à¤•à¥‹ 0 à¤•à¥‡ à¤¸à¤¾à¤¥ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚. à¤ªà¥‹à¤°à¥à¤Ÿ 600-1024 "
+-#~ "में à¤¬à¤¾à¤‚ध à¤°à¤¹à¤¾ à¤¹à¥ˆ"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "udp à¤ªà¥‹à¤°à¥à¤Ÿ à¤¯à¤¾ à¤ªà¥‹à¤°à¥à¤Ÿ à¤•à¥‡ à¤ªà¤°à¤¿à¤¸à¤° à¤•à¤¾ à¤•à¥Œà¤®à¤¾ à¤¸à¥‡ à¤…लग à¤•à¤¿à¤¯à¤¾ à¤¸à¥‚ची à¤¦à¤¾à¤–िल à¤•à¤°à¥‡à¤‚ à¤¯à¤¾ à¤ªà¤°à¤¿à¤¸à¤° à¤œà¤¿à¤¸à¤®à¥‡à¤‚ "
+-#~ "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¬à¤‚धा à¤¹à¥ˆ. à¤‰à¤¦à¤¾à¤¹à¤°à¤£: 612, 650-660"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "अनारकà¥à¤·à¤¿à¤¤ à¤ªà¥‹à¤°à¥à¤Ÿ (>1024)"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "पोरà¥à¤Ÿ à¤šà¥à¤¨à¥‡à¤‚"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/उपयोकà¥à¤¤à¤¾ à¤­à¥‚मिका à¤•à¥‹ à¤•à¤¿à¤¸à¥€ udp à¤ªà¥‹à¤°à¥à¤Ÿ à¤¸à¥‡ à¤¬à¤¾à¤‚धने à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤¤à¤¾ à¤¹à¥ˆ > 1024"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP à¤ªà¥‹à¤°à¥à¤Ÿ</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr "संजाल à¤ªà¥‹à¤°à¥à¤Ÿ à¤¦à¤¾à¤–िल à¤•à¤°à¥‡à¤‚ à¤œà¤¿à¤¸à¤¸à¥‡ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/उपयोकà¥à¤¤à¤¾ à¤•à¤¨à¥‡à¤•à¥à¤Ÿ à¤¹à¥‹à¤¤à¤¾ à¤¹à¥ˆ."
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "tcp à¤ªà¥‹à¤°à¥à¤Ÿ à¤¯à¤¾ à¤ªà¥‹à¤°à¥à¤Ÿ à¤•à¥‡ à¤ªà¤°à¤¿à¤¸à¤° à¤•à¤¾ à¤•à¥Œà¤®à¤¾ à¤¸à¥‡ à¤…लग à¤•à¤¿à¤¯à¤¾ à¤¸à¥‚ची à¤¦à¤¾à¤–िल à¤•à¤°à¥‡à¤‚ à¤¯à¤¾ à¤ªà¤°à¤¿à¤¸à¤° à¤œà¤¿à¤¸à¤®à¥‡à¤‚ "
+-#~ "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤œà¥à¤¡à¤¼à¤¤à¤¾ à¤¹à¥ˆ. à¤‰à¤¦à¤¾à¤¹à¤°à¤£: 612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "udp à¤ªà¥‹à¤°à¥à¤Ÿ à¤¯à¤¾ à¤ªà¥‹à¤°à¥à¤Ÿ à¤•à¥‡ à¤ªà¤°à¤¿à¤¸à¤° à¤•à¤¾ à¤•à¥Œà¤®à¤¾ à¤¸à¥‡ à¤…लग à¤•à¤¿à¤¯à¤¾ à¤¸à¥‚ची à¤¦à¤¾à¤–िल à¤•à¤°à¥‡à¤‚ à¤¯à¤¾ à¤ªà¤°à¤¿à¤¸à¤° à¤œà¤¿à¤¸à¤®à¥‡à¤‚ "
+-#~ "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤œà¥à¤¡à¤¼à¤¤à¤¾ à¤¹à¥ˆ. à¤‰à¤¦à¤¾à¤¹à¤°à¤£: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "सामानà¥à¤¯ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤—à¥à¤£ à¤šà¥à¤¨à¥‡à¤‚"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "syslog à¤¸à¤‚देश à¤²à¤¿à¤–ता à¤¹à¥ˆ\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "/tmp à¤®à¥‡à¤‚ à¤…सà¥à¤¥à¤¾à¤¯à¥€ à¤«à¤¾à¤‡à¤²à¥‹à¤‚ à¤•à¥‹ à¤¬à¤¨à¤¾à¤¤à¤¾ / à¤•à¤¾à¤® à¤•à¤°à¤¤à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ à¤•à¥‡ à¤²à¤¿à¤ PAM à¤•à¤¾ à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¤¤à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "nsswitch à¤¯à¤¾ getpw* à¤•à¥‰à¤² à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¤¤à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "dbus à¤•à¤¾ à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "ऑडिट à¤¸à¤‚देश à¤­à¥‡à¤œà¤¤à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "टरà¥à¤®à¤¿à¤¨à¤² à¤•à¥‡ à¤¸à¤¾à¤¥ à¤…ंतःकà¥à¤°à¤¿à¤¯à¤¾ à¤•à¤°à¤¤à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "ईमेल à¤­à¥‡à¤œà¤¤à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "फाइल/निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤šà¥à¤¨à¥‡à¤‚ à¤œà¤¿à¤¸à¥‡ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤ªà¥à¤°à¤¬à¤‚धित à¤•à¤°à¤¤à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "फाइल/निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤œà¥‹à¤¡à¤¼à¥‡à¤‚ à¤œà¤¿à¤¸à¤•à¥€ à¤‡à¤¸ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¥‹ \"Write\" à¤²à¤¿à¤–ने à¤•à¥€ à¤œà¤°à¥‚रत à¤¹à¥‹à¤—ी. Pid "
+-#~ "फाइल, à¤²à¥‰à¤— à¤«à¤¾à¤‡à¤², /var/lib à¤«à¤¾à¤‡à¤²à¥‡à¤‚ ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "बà¥à¤²à¤¿à¤¯à¤¨ à¤•à¥‹ à¤šà¥à¤¨à¥‡à¤‚ à¤œà¤¿à¤¸à¥‡ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¤¤à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr "सीमित à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/उपयोकà¥à¤¤à¤¾ à¤•à¥‡ à¤²à¤¿à¤ à¤ªà¥à¤°à¤¯à¥à¤•à¥à¤¤ à¤¬à¥à¤²à¤¿à¤¯à¤¨ à¤œà¥‹à¤¡à¤¼à¥‡à¤‚/हटाà¤à¤‚."
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤šà¥à¤¨à¥‡à¤‚ à¤œà¤¿à¤¸à¤®à¥‡à¤‚ à¤ªà¥‰à¤²à¤¿à¤¸à¥€ à¤«à¤¾à¤‡à¤² à¤•à¥‹ à¤¬à¤¨à¤¾à¤¨à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "पॉलिसी à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "पॉलिसी à¤«à¤¾à¤‡à¤² à¤‰à¤¤à¥à¤ªà¤¨à¥à¤¨ à¤•à¤¿à¤¯à¤¾"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "यह à¤”जार à¤¨à¤¿à¤®à¥à¤¨à¤²à¤¿à¤–ित à¤•à¥‹ à¤‰à¤¤à¥à¤ªà¤¨à¥à¤¨ à¤•à¤°à¤¤à¤¾ à¤¹à¥ˆ: \n"
+-#~ "Type Enforcment(te), File Context(fc), Interface(if), Shell Script(sh).\n"
+-#~ "शेल à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤•à¥‹ à¤•à¤‚पाइल/अधिषà¥à¤ à¤¾à¤ªà¤¿à¤¤ à¤•à¤°à¤¨à¥‡ à¤µ à¤«à¤¾à¤‡à¤²/निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤•à¥‹ à¤«à¤¿à¤° à¤²à¥‡à¤¬à¤² à¤•à¤°à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ "
+-#~ "चलाà¤à¤‚.\n"
+-#~ "semanage à¤¯à¤¾ useradd à¤•à¤¾ à¤ªà¥à¤°à¤¯à¥‹à¤— Linux à¤²à¥‰à¤—िन à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका à¤®à¥‡à¤‚ à¤®à¥ˆà¤ª "
+-#~ "करने à¤•à¥‡ à¤²à¤¿à¤ à¤•à¤°à¥‡à¤‚\n"
+-#~ "अब à¤†à¤ª à¤®à¤¶à¥€à¤¨ à¤•à¥‹ à¤…नà¥à¤œà¥à¤žà¤¾à¤¤à¥à¤®à¤• à¤®à¥‹à¤¡ à¤®à¥‡à¤‚ (setenforce 0) à¤°à¤– à¤¸à¤•à¤¤à¥‡ à¤¹à¥ˆà¤‚. \n"
+-#~ "उपयोकà¥à¤¤à¤¾ à¤•à¥‡ à¤°à¥‚प à¤®à¥‡à¤‚ à¤²à¥‰à¤—िन à¤•à¤°à¥‡à¤‚ à¤”र à¤‡à¤¸ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤­à¥‚मिका à¤•à¥€ à¤œà¤¾à¤‚च à¤•à¤°à¥‡à¤‚.\n"
+-#~ "audit2allow -R à¤•à¥‹ te à¤«à¤¾à¤‡à¤² à¤•à¥‡ à¤²à¤¿à¤ à¤…तिरिकà¥à¤¤ à¤¨à¤¿à¤¯à¤® à¤¬à¤¨à¤¾à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¥‡à¤‚.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "यह à¤”जार à¤¨à¤¿à¤®à¥à¤¨à¤²à¤¿à¤–ित à¤•à¥‹ à¤‰à¤¤à¥à¤ªà¤¨à¥à¤¨ à¤•à¤°à¤¤à¤¾ à¤¹à¥ˆ: \n"
+-#~ "Type Enforcment(te), File Context(fc), Interface(if), Shell Script(sh).\n"
+-#~ "\n"
+-#~ "शेल à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤•à¥‹ à¤•à¤‚पाइल/अधिषà¥à¤ à¤¾à¤ªà¤¿à¤¤ à¤•à¤°à¤¨à¥‡ à¤µ à¤«à¤¾à¤‡à¤²/निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤•à¥‹ à¤«à¤¿à¤° à¤²à¥‡à¤¬à¤² à¤•à¤°à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ "
+-#~ "चलाà¤à¤‚. \n"
+-#~ "अब à¤†à¤ª à¤®à¤¶à¥€à¤¨ à¤•à¥‹ à¤…नà¥à¤œà¥à¤žà¤¾à¤¤à¥à¤®à¤• à¤®à¥‹à¤¡ à¤®à¥‡à¤‚ (setenforce 0) à¤°à¤– à¤¸à¤•à¤¤à¥‡ à¤¹à¥ˆà¤‚. \n"
+-#~ "avc à¤¸à¤‚देश à¤šà¤²à¤¾à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¥‹ à¤šà¤²à¤¾à¤à¤‚/फिर à¤†à¤°à¤‚भ à¤•à¤°à¥‡à¤‚.\n"
+-#~ "audit2allow -R à¤•à¥‹ te à¤«à¤¾à¤‡à¤² à¤•à¥‡ à¤²à¤¿à¤ à¤…तिरिकà¥à¤¤ à¤¨à¤¿à¤¯à¤® à¤¬à¤¨à¤¾à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¥‡à¤‚.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "बà¥à¤²à¤¿à¤¯à¤¨ à¤¸à¤‚वाद à¤œà¥‹à¤¡à¤¼ à¤°à¤¹à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "बूलियन à¤¨à¤¾à¤®"
+-
+-#~ msgid "Role"
+-#~ msgstr "भूमिका"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Existing_User"
+-#~ msgstr "मौजूदा à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ (_U)"
+-
+-#~ msgid "Application"
+-#~ msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s à¤•à¥‹ à¤œà¤°à¥‚र à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤¹à¥‹à¤¨à¥€ à¤šà¤¾à¤¹à¤¿à¤"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "आपको à¤œà¤°à¥‚र à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤šà¥à¤¨à¤¨à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "सीमित à¤°à¤¹à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤à¤•à¥à¤¸à¤•à¥à¤¯à¥‚टेबल à¤«à¤¾à¤‡à¤² à¤šà¥à¤¨à¥‡à¤‚."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "सीमित à¤¹à¥‹à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ init à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤šà¥à¤¨à¥‡à¤‚."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "फाइलों à¤•à¥‹ à¤šà¥à¤¨à¥‡à¤‚ à¤œà¤¿à¤¸à¥‡ à¤¸à¥€à¤®à¤¿à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¬à¤¨à¤¾à¤¤à¤¾ à¤¹à¥ˆ à¤µ à¤²à¤¿à¤–ता à¤¹à¥ˆ"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤šà¥à¤¨à¥‡à¤‚ à¤œà¤¿à¤¸à¤•à¤¾ à¤¸à¥€à¤®à¤¿à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤®à¤¾à¤²à¤¿à¤• à¤¹à¥ˆ à¤µ à¤œà¤¿à¤¸à¤®à¥‡à¤‚ à¤²à¤¿à¤–ता à¤¹à¥ˆ"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤šà¥à¤¨à¥‡à¤‚ à¤œà¤¿à¤¸à¤®à¥‡à¤‚ à¤ªà¥‰à¤²à¤¿à¤¸à¥€ à¤«à¤¾à¤‡à¤² à¤•à¥‹ à¤²à¤¿à¤–ा à¤œà¤¾à¤¨à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "मौजूदा à¤¨à¥€à¤¤à¤¿ à¤®à¥‡à¤‚ %s_t à¤ªà¤¹à¤²à¥‡ à¤¸à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¹à¥ˆ.\n"
+-#~ "कà¥à¤¯à¤¾ à¤†à¤ª à¤œà¤¾à¤°à¥€ à¤°à¤–ना à¤šà¤¾à¤¹à¤¤à¥‡ à¤¹à¥ˆà¤‚?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "नाम à¤œà¤¾à¤‚चें"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "मॉडà¥à¤¯à¥‚ल %s.pp à¤ªà¤¹à¤²à¥‡ à¤¸à¥‡ à¤®à¥Œà¤œà¥‚दा à¤¨à¥€à¤¤à¤¿ à¤®à¥‡à¤‚ à¤²à¥‹à¤¡ à¤•à¤¿à¤¯à¤¾ à¤¹à¥ˆ.\n"
+-#~ "कà¥à¤¯à¤¾ à¤†à¤ª à¤œà¤¾à¤°à¥€ à¤°à¤–ना à¤šà¤¾à¤¹à¤¤à¥‡ à¤¹à¥ˆà¤‚?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "आपको à¤à¤• à¤¨à¤¾à¤® à¤…वशà¥à¤¯ à¤¦à¤¾à¤–िल à¤•à¤°à¤¨à¤¾ à¤¹à¥ˆ"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "आप à¤œà¤°à¥‚र à¤à¤• à¤à¤•à¥à¤¸à¤•à¥à¤¯à¥‚टेबल à¤¦à¥‡à¤‚"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux à¤µà¤¿à¤¨à¥à¤¯à¤¸à¥à¤¤ à¤•à¤°à¥‡à¤‚"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "पोरà¥à¤Ÿ à¤•à¥‹ à¤œà¤°à¥‚र 1 à¤¸à¥‡ %d à¤¤à¤• à¤¸à¤‚खà¥à¤¯à¤¾ à¤¯à¤¾ à¤¸à¤‚खà¥à¤¯à¤¾ à¤•à¤¾ à¤ªà¤°à¤¿à¤¸à¤° à¤œà¤°à¥‚र à¤¹à¥‹à¤¨à¤¾ à¤šà¤¾à¤¹à¤¿à¤."
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "अपनी à¤¸à¥€à¤®à¤¿à¤¤ à¤ªà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾/उपयोकà¥à¤¤à¤¾ à¤•à¥‡ à¤²à¤¿à¤ à¤†à¤ª à¤…पना à¤¨à¤¾à¤® à¤œà¤°à¥‚र à¤¦à¥‡à¤‚"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "USER à¤ªà¥à¤°à¤•à¤¾à¤° à¤…नà¥à¤®à¤¤à¤¿ à¤ªà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤•à¥à¤¸à¤•à¥à¤¯à¥‚टेबल à¤¨à¤¹à¥€à¤‚ à¤¹à¥ˆ"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "सिरà¥à¤« DAEMON apps à¤à¤• init à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤•à¤¾ à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤° à¤¸à¤•à¤¤à¤¾ à¤¹à¥ˆ"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog à¤•à¥‡ à¤ªà¤¾à¤¸ à¤œà¤°à¥‚र à¤¬à¥‚लियन à¤®à¤¾à¤¨ à¤¹à¥‹à¤¨à¤¾ à¤šà¤¾à¤¹à¤¿à¤"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "USER à¤ªà¥à¤°à¤•à¤¾à¤° à¤•à¥‹ à¤¸à¥à¤µà¤¤à¤ƒ tmp à¤ªà¥à¤°à¤•à¤¾à¤° à¤²à¥‡à¤¨à¤¾ à¤šà¤¾à¤¹à¤¿à¤"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "अपने à¤¸à¥€à¤®à¤¤à¤¿ à¤ªà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ à¤•à¥‡ à¤²à¤¿à¤ à¤†à¤ª à¤œà¤°à¥‚र à¤…पना à¤à¤•à¥à¤¸à¤•à¥à¤¯à¥‚टेबल à¤ªà¤¥ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "टाइप à¤¬à¤¾à¤§à¥à¤¯à¤•à¤¾à¤°à¥€ à¤«à¤¾à¤‡à¤²"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "अंतरफलक à¤«à¤¾à¤‡à¤²"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "फाइल à¤¸à¤‚दरà¥à¤­ à¤«à¤¾à¤‡à¤²"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "सेटअप à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux à¤ªà¥‹à¤°à¥à¤Ÿ\n"
+-#~ "पà¥à¤°à¤•à¤¾à¤°"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•à¥‰à¤²"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "सà¥à¤¤à¤°"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "पोरà¥à¤Ÿ"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "पोरà¥à¤Ÿ à¤¸à¤‚खà¥à¤¯à¤¾ \"%s\" à¤µà¥ˆà¤§ à¤¨à¤¹à¥€à¤‚ à¤¹à¥ˆ.  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "अंतिम à¤¦à¥ƒà¤¶à¥à¤¯"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "समूह à¤¦à¥ƒà¤¶à¥à¤¯"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux à¤¸à¥‡à¤µà¤¾ à¤¸à¥à¤°à¤•à¥à¤·à¤¾"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "acct à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "Admin"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "सभी à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‹ à¤•à¥‹à¤°à¤«à¤¾à¤‡à¤²à¥‹à¤‚ à¤•à¥‹ / à¤®à¥‡à¤‚ à¤²à¤¿à¤–ने à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "सभी à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‹ à¤—ैर à¤†à¤¬à¤‚टति ttys à¤•à¥‡ à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¥€ à¤›à¥‚ट à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "उपयोकà¥à¤¤à¤¾ Privs"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "gadmin SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤–ाता à¤•à¥‹ à¤«à¤¾à¤‡à¤²à¥‹à¤‚ à¤•à¥‹ à¤‰à¤¨à¤•à¥‡ à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤¯à¤¾ /tmp à¤®à¥‡à¤‚ "
+-#~ "निषà¥à¤ªà¤¾à¤¦à¤¿à¤¤ à¤•à¤°à¤¨à¥‡ à¤•à¥€ à¤…नà¥à¤®à¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "अतिथि SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤–ाता à¤•à¥‹ à¤‰à¤¨à¤•à¥‡ à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤¯à¤¾ /tmp à¤®à¥‡à¤‚ à¤«à¤¾à¤‡à¤² à¤¨à¤¿à¤·à¥à¤ªà¤¾à¤¦à¤¿à¤¤ "
+-#~ "करने à¤•à¥€ à¤…नà¥à¤®à¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "सà¥à¤®à¥ƒà¤¤à¤¿ à¤¸à¥à¤°à¤•à¥à¤·à¤¾"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "java à¤à¤•à¥à¤¸à¤•à¥à¤¯à¥‚टेबल à¤¸à¥à¤Ÿà¥ˆà¤• à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "आरोह"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "किसी à¤«à¤¾à¤‡à¤² à¤•à¥‹ à¤®à¤¾à¤‰à¤‚ट à¤•à¤°à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ mount à¤•à¥‹ à¤…नà¥à¤®à¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "किसी à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤•à¥‹ à¤®à¤¾à¤‰à¤‚ट à¤•à¤°à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ mount à¤•à¥‹ à¤…नà¥à¤®à¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "mplayer à¤à¤•à¥à¤¸à¤•à¥à¤¯à¥‚टेबल à¤¸à¥à¤Ÿà¥ˆà¤• à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "ssh à¤•à¥‹ ssh-keysign à¤šà¤²à¤¾à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "सà¥à¤Ÿà¤¾à¤« SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤–ाता à¤•à¥‹ à¤‰à¤¨à¤•à¥‡ à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤¯à¤¾ /tmp à¤®à¥‡à¤‚ à¤«à¤¾à¤‡à¤² à¤¨à¤¿à¤·à¥à¤ªà¤¾à¤¦à¤¨ à¤•à¥€ "
+-#~ "सà¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "sysadm SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤–ाता à¤•à¥‹ à¤‰à¤¨à¤•à¥‡ à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤¯à¤¾ /tmp à¤®à¥‡à¤‚ à¤«à¤¾à¤‡à¤² à¤¨à¤¿à¤·à¥à¤ªà¤¾à¤¦à¤¨ à¤•à¥€ "
+-#~ "सà¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "असीमित SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤–ाता à¤•à¥‹ à¤‰à¤¨à¤•à¥‡ à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤¯à¤¾ /tmp à¤®à¥‡à¤‚ à¤«à¤¾à¤‡à¤² à¤¨à¤¿à¤·à¥à¤ªà¤¾à¤¦à¤¨ à¤•à¥€ "
+-#~ "सà¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "संजाल à¤µà¤¿à¤¨à¥à¤¯à¤¾à¤¸"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "संजाल à¤ªà¤° à¤¬à¤¿à¤¨à¤¾ à¤²à¥‡à¤¬à¤² à¤•à¤¿à¤¯à¥‡ à¤ªà¥ˆà¤•à¥‡à¤Ÿ à¤•à¥‹ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "उपयोकà¥à¤¤à¤¾ SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤–ाता à¤•à¥‹ à¤‰à¤¨à¤•à¥‡ à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤¯à¤¾ /tmp à¤®à¥‡à¤‚ à¤«à¤¾à¤‡à¤² à¤¨à¤¿à¤·à¥à¤ªà¤¾à¤¦à¤¨ "
+-#~ "की à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "असीमित à¤•à¥‹ dyntrans à¤¸à¥‡ unconfined_execmem à¤®à¥‡à¤‚ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "डाटाबेस"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "उपयोकà¥à¤¤à¤¾ à¤•à¥‹ mysql à¤¸à¥‰à¤•à¥‡à¤Ÿ à¤®à¥‡à¤‚ à¤œà¥‹à¤¡à¤¼à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "उपयोकà¥à¤¤à¤¾ à¤•à¥‹ postgres à¤¸à¥‰à¤•à¥‡à¤Ÿ à¤®à¥‡à¤‚ à¤œà¥‹à¤¡à¤¼à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "कà¥à¤²à¤¾à¤‡à¤‚ट à¤•à¥‹ X à¤¸à¤¾à¤à¤¾ à¤¸à¥à¤®à¥ƒà¤¤à¤¿ à¤®à¥‡à¤‚ à¤²à¤¿à¤–ने à¤•à¥€ à¤…नà¥à¤®à¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "xguest SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤–ाता à¤•à¥‹ à¤‰à¤¨à¤•à¥‡ à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤¯à¤¾ /tmp à¤®à¥‡à¤‚ à¤«à¤¾à¤‡à¤² à¤¨à¤¿à¤·à¥à¤ªà¤¾à¤¦à¤¿à¤¤ "
+-#~ "करने à¤•à¥€ à¤…नà¥à¤®à¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "NIS à¤•à¥‡ à¤¡à¥‡à¤®à¥‰à¤¨ à¤šà¤²à¤¾à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "वेब à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "सà¥à¤Ÿà¤¾à¤« SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤µà¥‡à¤¬ à¤¬à¥à¤°à¥‰à¤‰à¤œà¤° à¤¡à¥‹à¤®à¥‡à¤¨ à¤®à¥‡à¤‚ à¤²à¥‡ à¤œà¤¾à¤à¤‚"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "sysadm SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤µà¥‡à¤¬ à¤¬à¥à¤°à¥‰à¤‰à¤œà¤° à¤¡à¥‹à¤®à¥‡à¤¨ à¤®à¥‡à¤‚ à¤²à¥‡ à¤œà¤¾à¤à¤‚"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "उपयोकà¥à¤¤à¤¾ SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤µà¥‡à¤¬ à¤¬à¥à¤°à¥‰à¤‰à¤œà¤° à¤¡à¥‹à¤®à¥‡à¤¨ à¤®à¥‡à¤‚ à¤²à¥‡ à¤œà¤¾à¤à¤‚"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "xguest SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤µà¥‡à¤¬ à¤¬à¥à¤°à¥‰à¤‰à¤œà¤° à¤¡à¥‹à¤®à¥‡à¤¨ à¤®à¥‡à¤‚ à¤²à¥‡ à¤œà¤¾à¤à¤‚"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "सà¥à¤Ÿà¤¾à¤« à¤µà¥‡à¤¬ à¤¬à¥à¤°à¥‰à¤‰à¤œà¤° à¤•à¥‹ à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤®à¥‡à¤‚ à¤²à¤¿à¤–ने à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "amanda à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "amavis à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "apmd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "arpwatch à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "auditd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "automount à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "avahi à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "bluetooth à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "canna à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "cardmgr à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Cluster Server à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "cdrecord à¤•à¥‹ à¤µà¤¿à¤­à¤¿à¤¨à¥à¤¨ à¤¸à¤¾à¤®à¤—à¥à¤°à¥€ à¤•à¥‹ à¤ªà¤¢à¤¼à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚. nfs, samba, à¤µà¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¨à¥€à¤¯ "
+-#~ "यà¥à¤•à¥à¤¤à¤¿à¤¯à¤¾à¤‚, user temp à¤”र à¤…विशà¥à¤µà¤¸à¤¨à¥€à¤¯ à¤¸à¤¾à¤®à¤—à¥à¤°à¥€ à¤«à¤¾à¤‡à¤²à¥‡à¤‚"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ciped à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "clamd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "clamscan à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "clvmd à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "comsat à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "courier à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "cpucontrol à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "cpuspeed à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "कà¥à¤°à¥‰à¤¨"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "छाप à¤°à¤¹à¤¾ à¤¹à¥ˆ"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "cupsd à¤¬à¥ˆà¤•à¥‡à¤‚ड à¤¸à¤°à¥à¤µà¤° à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "cupsd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "cupsd_lpd à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "cvs à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "cyrus à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "dbskkd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "dbusd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "dccd à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "dccifd à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "dccm à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ddt à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "devfsd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "dhcpc à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "dhcpd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "dictd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "sysadm_t à¤•à¥‹ à¤¸à¥€à¤§à¥‡ à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‹ à¤†à¤°à¤‚भ à¤•à¤°à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Evolution à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "खेल"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "गेम à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "वेब à¤¬à¥à¤°à¥‰à¤‰à¤œà¤° à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Thunderbird à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "fetchmail à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Hal à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "सà¥à¤¸à¤‚गतता"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "उन à¤šà¥€à¤œà¥‹à¤‚ à¤•à¤¾ à¤‘डिट à¤®à¤¤ à¤•à¤°à¥‡à¤‚ à¤œà¤¿à¤¸à¥‡ à¤¹à¤® à¤Ÿà¥‚टे à¤¹à¥à¤ à¤•à¥‡ à¤¤à¥Œà¤° à¤ªà¤° à¤œà¤¾à¤¨à¤¤à¥‡ à¤¹à¥ˆà¤‚ à¤²à¥‡à¤•à¤¿à¤¨ à¤œà¥‹ à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤–तरा à¤¨à¤¹à¥€à¤‚ "
+-#~ "है"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "hostname à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "hplip à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "httpd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD à¤¸à¥‡à¤µà¤¾"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexec à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "inetd child à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ircd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "irqbalance à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "iscsi à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "jabberd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "करबरोस"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "kadmind à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "klogd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "krb5kdc à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ktalk à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "kudzu à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "locate à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "lpd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "lrrd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "lvm à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "mailman à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "उपयोकà¥à¤¤à¤¾ à¤«à¤¾à¤‡à¤² à¤ªà¤¢à¤¼à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ evolution à¤”र thunderbird à¤•à¥‹ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "mdadm à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "monopd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "मोजिला à¤¬à¥à¤°à¥‰à¤‰à¤œà¤° à¤•à¥‹ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤«à¤¾à¤‡à¤²à¥‡à¤‚ à¤ªà¤¢à¤¼à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "mrtg à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "mysqld à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "nagios à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "नाम à¤¸à¥‡à¤µà¤¾"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "named à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "nessusd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "NetworkManager à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "nfsd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "सांबा"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "nmbd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "nrpe à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "nscd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "nsd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ntpd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "oddjob à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "oddjob_mkhomedir à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "openvpn à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "pam à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "pegasus à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "perdition à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "portmap à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "portslave à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "postfix à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "postgresql à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "pppd à¤•à¥‹ à¤¨à¤¿à¤¯à¤®à¤¿à¤¤ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‡ à¤°à¥‚प à¤®à¥‡à¤‚ à¤šà¤²à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "pptp à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "prelink à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "privoxy à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ptal à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "pxe à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "pyzord à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "quota à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "radiusd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "radvd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "rdisc à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "readahead à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr "गैर à¤®à¤¾à¤¨à¤• à¤¸à¥à¤¥à¤¾à¤¨ à¤®à¥‡à¤‚ à¤«à¤¾à¤‡à¤²à¥‹à¤‚ à¤•à¥‹ à¤ªà¤¢à¤¼à¤¨à¥‡ à¤•à¥€ à¤ªà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® à¤•à¥‹ à¤…नà¥à¤®à¤¤à¤¿ à¤¦à¥‡à¤‚ (default_t)"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "restorecond à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "rhgb à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ricci à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ricci_modclusterd à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "rlogind à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "rpcd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "rshd à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "rsync à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "ssh à¤•à¥‹ inetd à¤¸à¥‡ à¤šà¤²à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤°à¥‚प à¤•à¥‡ à¤¬à¤œà¤¾à¤¯ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Samba à¤•à¥‹ nfs à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤¸à¤¾à¤à¤¾ à¤•à¤°à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL à¤¸à¤¤à¥à¤¯à¤¾à¤ªà¤¨ à¤¸à¤°à¥à¤µà¤°"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "sasl à¤¸à¤¤à¥à¤¯à¤¾à¤ªà¤¨ à¤¸à¤°à¥à¤µà¤° à¤•à¥‹ /etc/shadow à¤•à¥‹ à¤ªà¤¢à¤¼à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "X-Windows à¤¸à¤°à¥à¤µà¤° à¤•à¥‹ à¤à¤•à¥à¤¸à¤•à¥à¤¯à¥‚टेबल à¤µ à¤²à¤¿à¤–ने à¤¯à¥‹à¤—à¥à¤¯ à¤¦à¥‹à¤¨à¥‹à¤‚ à¤°à¥‚प à¤®à¥‡à¤‚ à¤¸à¥à¤®à¥ƒà¤¤à¤¿ à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤®à¥‡à¤‚ à¤®à¥ˆà¤ª à¤•à¤°à¤¨à¥‡ à¤•à¥€ "
+-#~ "सà¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "saslauthd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "scannerdaemon à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "sysadm_t, sudo à¤”र su à¤ªà¥à¤°à¤­à¤¾à¤µà¤¿à¤¤ à¤®à¥‡à¤‚ à¤¸à¤‚कà¥à¤°à¤®à¤£ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤®à¤¤ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "करà¥à¤¨à¥‡à¤² à¤®à¥‰à¤¡à¥à¤¯à¥‚ल à¤²à¥‹à¤¡ à¤•à¤°à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤•à¤¿à¤¸à¥€ à¤ªà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ à¤•à¥€ à¤…नà¥à¤®à¤¤à¤¿ à¤®à¤¤ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "करà¥à¤¨à¥‡à¤² SELinux à¤ªà¥‰à¤²à¤¿à¤¸à¥€ à¤®à¥‡à¤‚ à¤•à¤¿à¤¸à¥€ à¤ªà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ à¤•à¥‹ à¤®à¤¤ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "sendmail à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "setrans à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "setroublesoot à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "slapd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "slrnpull à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "smbd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "snmpd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "snort à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "soundd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "sound à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "सà¥à¤ªà¥ˆà¤® à¤¸à¥à¤°à¤•à¥à¤·à¤¾"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "spamd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "spamd à¤•à¥‹ à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤•à¥‡ à¤…भिगम à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Spam Assasin à¤¡à¥‡à¤®à¥‰à¤¨ à¤¸à¤‚जाल à¤…भिगम à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "speedmgmt à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "squid à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‹ à¤¸à¤‚जाल à¤¸à¥‡ à¤•à¤¨à¥‡à¤•à¥à¤Ÿ à¤¹à¥‹à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "squid à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ssh à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "ssh à¤²à¥‰à¤—िन à¤•à¥‹ sysadm_r:sysadm_t à¤•à¥‡ à¤°à¥‚प à¤®à¥‡à¤‚ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "staff_r à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ sysadm à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ à¤µ à¤°à¥€à¤¡ à¤«à¤¾à¤‡à¤² à¤•à¥‹à¤‚ à¤–ोजने à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚ (जैसे "
+-#~ "कि ~/.bashrc)"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "सारà¥à¤µà¤­à¥Œà¤®à¤¿à¤• SSL à¤Ÿà¤¨à¥‡à¤²"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "stunnel à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "stunnel à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‹ à¤ªà¥ƒà¤¥à¤• à¤šà¤²à¤¾à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚, xinetd à¤•à¥‡ à¤¬à¤¾à¤¹à¤°"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "swat à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "sxid à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "syslogd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "system cron jobs  à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "tcp à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "telnet à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "tftpd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "transproxy à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "udev à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "uml à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "xinetd à¤•à¥‹ à¤…सीमित à¤°à¥‚प à¤¸à¥‡ à¤šà¤²à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚, à¤•à¤¿à¤¸à¥€ à¤¸à¥‡à¤µà¤¾ à¤•à¥‡ à¤¸à¤¾à¤¥ à¤œà¥‹ à¤¯à¤¹ à¤†à¤°à¤‚भ à¤•à¤°à¤¤à¥€ à¤¹à¥ˆ à¤œà¥‹ "
+-#~ "डोमेन à¤¸à¤‚कà¥à¤°à¤®à¤£ à¤•à¥‹ à¤…लग à¤¸à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¨à¤¹à¥€à¤‚ à¤°à¤–ती à¤¹à¥ˆ"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "rc à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤•à¥‹ à¤…सीमित à¤°à¥‚प à¤¸à¥‡ à¤šà¤²à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚, à¤•à¤¿à¤¸à¥€ à¤¸à¥‡à¤µà¤¾ à¤•à¥‡ à¤¸à¤¾à¤¥ à¤œà¥‹ rc à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤†à¤°à¤‚भ "
+-#~ "करती à¤¹à¥ˆ à¤œà¥‹ à¤¡à¥‹à¤®à¥‡à¤¨ à¤¸à¤‚कà¥à¤°à¤®à¤£ à¤•à¥‹ à¤…लग à¤¸à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¨à¤¹à¥€à¤‚ à¤°à¤–ती à¤¹à¥ˆ"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "rpm à¤•à¥‹ à¤…सीमित à¤°à¥‚प à¤¸à¥‡ à¤šà¤²à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "हॉटपà¥à¤²à¤— à¤”र insmod à¤•à¥€ à¤¤à¤°à¤¹ à¤•à¥‡ à¤¸à¥à¤µà¤¿à¤§à¤¾ à¤ªà¥à¤°à¤¾à¤ªà¥à¤¤ à¤‰à¤ªà¤¯à¥‹à¤—िता à¤•à¥‹ à¤…सीमित à¤°à¥‚प à¤¸à¥‡ à¤šà¤²à¤¨à¥‡ à¤•à¥€ "
+-#~ "सà¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "updfstab à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "uptimed à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "user_r à¤•à¥‹ sysadm_r à¤ªà¤° su, sudo, à¤¯à¤¾ userhelper à¤¸à¥‡ à¤¹à¥‹à¤•à¤° à¤ªà¤¹à¥à¤‚चने à¤•à¥€ à¤…नà¥à¤®à¤¤à¤¿ à¤¦à¥‡à¤‚. "
+-#~ "अनà¥à¤¯à¤¥à¤¾, à¤¸à¤¿à¤°à¥à¤« staff_r à¤à¤¸à¤¾ à¤•à¤° à¤¸à¤•à¤¤à¤¾ à¤¹à¥ˆ"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "उपयोकà¥à¤¤à¤¾ à¤•à¥‹ mount à¤•à¤®à¤¾à¤‚ड à¤šà¤²à¤¾à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "नियमित à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤¸à¥€à¤§à¤¾ à¤®à¤¾à¤‰à¤¸ à¤…भिगम à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚ (सिरà¥à¤« X à¤¸à¤°à¥à¤µà¤° à¤•à¥‹ à¤…नà¥à¤®à¤¤à¤¿ à¤¦à¥‡à¤‚)"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "उपयोकà¥à¤¤à¤¾ à¤•à¥‹ dmesg à¤•à¤®à¤¾à¤‚ड à¤šà¤²à¤¾à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "उपयोकà¥à¤¤à¤¾ à¤•à¥‹ à¤¸à¤‚जाल à¤…ंतरफलक à¤¨à¤¿à¤¯à¤‚तà¥à¤°à¤¿à¤¤ à¤•à¤°à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚ (USERCTL=true à¤•à¥‡ à¤¸à¤¹à¥€ à¤•à¥€ "
+-#~ "जरूरत à¤¹à¥ˆ)"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "सामानà¥à¤¯ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤ªà¤¿à¤‚ग à¤•à¤°à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr ""
+-#~ "r/w noextattrfile (FAT, CDROM, FLOPPY) à¤•à¤°à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "usb à¤¯à¥à¤•à¥à¤¤à¤¿ à¤•à¥‹ rw à¤¬à¤¨à¤¾à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "उपयोकà¥à¤¤à¤¾ à¤•à¥‹ TCP à¤¸à¤°à¥à¤µà¤° (bind to ports and accept connection from the same "
+-#~ "domain and outside users) à¤šà¤²à¤¾à¤¨à¥‡ à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚ à¤‡à¤¨ à¤¬à¤²à¥‹à¤‚ à¤•à¥‹ FTP à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤®à¥‹à¤¡ à¤®à¥‡à¤‚ "
+-#~ "निषà¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¤¤à¥‡ à¤¹à¥à¤ à¤”र à¤…नà¥à¤¯ à¤ªà¥à¤°à¥‹à¤Ÿà¥‹à¤•à¥‰à¤² à¤¬à¤¦à¤² à¤¸à¤•à¤¤à¤¾ à¤¹à¥ˆ"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "ttyfiles à¤•à¥‹ stat à¤•à¥‡ à¤²à¤¿à¤ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "uucpd à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "vmware à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "watchdog à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "winbind à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "xdm à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "xdm à¤²à¥‰à¤—िन à¤•à¥‹ sysadm_r:sysadm_t à¤•à¥‡ à¤°à¥‚प à¤®à¥‡à¤‚ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "xen à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "भौतिक à¤¡à¤¿à¤¸à¥à¤• à¤¯à¥à¤•à¥à¤¤à¤¿ à¤•à¥‹ xen à¤•à¥‹ à¤ªà¤¢à¤¼à¤¨à¥‡/लिखने à¤•à¥€ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "xfs à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤•à¥‹ xen à¤¨à¤¿à¤¯à¤‚तà¥à¤°à¤£ à¤•à¥‡ à¤²à¤¿à¤ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ypbind à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "NIS Password à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ypserv à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "NIS Transfer à¤¡à¥‡à¤®à¥‰à¤¨ à¤•à¥‡ à¤²à¤¿à¤ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤…नधिकृत à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾à¤“ं à¤•à¥‹ à¤ªà¥à¤°à¤¬à¤‚धित à¤•à¤°à¤¨à¥‡ à¤•à¥€ "
+-#~ "सà¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤•à¥‹ à¤…नधिकृत à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¹à¥‹à¤® à¤¨à¤¿à¤°à¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾à¤“ं à¤•à¥‹ à¤ªà¤¢à¤¼à¤¨à¥‡ à¤¸à¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ à¤¦à¥‡à¤‚"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "कà¥à¤¯à¤¾ à¤†à¤ª à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤¹à¥ˆà¤‚ à¤•à¤¿ à¤†à¤ª %s '%s' à¤•à¥‹ à¤®à¤¿à¤Ÿà¤¾à¤¨à¤¾ à¤šà¤¾à¤¹à¤¤à¥‡ à¤¹à¥ˆà¤‚?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "%s à¤®à¤¿à¤Ÿà¤¾à¤à¤‚"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "%s à¤œà¥‹à¤¡à¤¼à¥‡à¤‚"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "%s à¤¬à¤¦à¤²à¥‡à¤‚"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "अनà¥à¤œà¥à¤žà¤¾à¤¤à¥à¤®à¤•"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "बाधà¥à¤¯à¤•à¤¾à¤°à¥€"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "पॉलिसी à¤ªà¥à¤°à¤•à¤¾à¤° à¤•à¥‹ à¤¬à¤¦à¤²à¤¨à¤¾ à¤ªà¥‚रे à¤«à¤¾à¤‡à¤² à¤¸à¤¿à¤¸à¥à¤Ÿà¤® à¤•à¥‹ à¤°à¤¿à¤²à¥‡à¤¬à¤² à¤•à¤°à¤¨à¥‡ à¤•à¤¾ à¤•à¤¾à¤°à¤£ à¤¬à¤¨à¥‡à¤—ा à¤…गले à¤¬à¥‚ट à¤ªà¤°. "
+-#~ "रिलेबलिंग à¤²à¤‚बा à¤¸à¤®à¤¯ à¤²à¥‡à¤¤à¤¾ à¤¹à¥ˆ à¤«à¤¾à¤‡à¤² à¤¸à¤¿à¤¸à¥à¤Ÿà¤® à¤•à¥‡ à¤†à¤•à¤¾à¤° à¤ªà¤° à¤¨à¤¿à¤°à¥à¤­à¤° à¤•à¤°à¤¤à¥‡ à¤¹à¥à¤.  à¤•à¥à¤¯à¤¾ à¤†à¤ª à¤œà¤¾à¤°à¥€ "
+-#~ "रखना à¤šà¤¾à¤¹à¤¤à¥‡ à¤¹à¥ˆà¤‚?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux à¤•à¥‹ à¤¨à¤¿à¤·à¥à¤•à¥à¤°à¤¿à¤¯ à¤®à¥‡à¤‚ à¤¬à¤¦à¤²à¤¨à¥‡ à¤•à¥‡ à¤²à¤¿à¤ à¤°à¤¿à¤¬à¥‚ट à¤•à¥€ à¤œà¤°à¥‚रत à¤¹à¥‹à¤¤à¥€ à¤¹à¥ˆ.  à¤‡à¤¸à¤•à¥€ à¤¸à¤²à¤¾à¤¹ à¤¨à¤¹à¥€à¤‚ à¤¦à¥€ "
+-#~ "जाती à¤¹à¥ˆ.  à¤¯à¤¦à¤¿ à¤†à¤ª SELinux à¤•à¥‹ à¤µà¤¾à¤ªà¤¸ à¤²à¥Œà¤Ÿà¤¾à¤¨à¥‡ à¤•à¥€ à¤¸à¥‹à¤šà¤¤à¥‡ à¤¹à¥ˆà¤‚, à¤¸à¤¿à¤¸à¥à¤Ÿà¤® à¤•à¥‹ à¤°à¤¿à¤²à¥‡à¤¬à¤² à¤•à¤°à¤¨à¥‡ à¤•à¥€ "
+-#~ "जरूरत à¤¹à¥‹à¤—ी.  à¤¯à¤¦à¤¿ à¤†à¤ª à¤¯à¤¹ à¤¦à¥‡à¤–ना à¤šà¤¾à¤¹à¤¤à¥‡ à¤¹à¥ˆà¤‚ à¤•à¤¿ SELinux à¤¸à¤¿à¤¸à¥à¤Ÿà¤® à¤ªà¤° à¤¸à¤®à¤¸à¥à¤¯à¤¾ à¤¦à¥‡ à¤°à¤¹à¤¾ à¤¹à¥ˆ, à¤†à¤ª "
+-#~ "अनà¥à¤œà¥à¤žà¤¾à¤¤à¥à¤®à¤• à¤®à¥‹à¤¡ à¤®à¥‡à¤‚ à¤œà¤¾ à¤¸à¤•à¤¤à¥‡ à¤¹à¥ˆà¤‚ à¤œà¥‹ à¤¸à¤¿à¤°à¥à¤« à¤¤à¥à¤°à¥à¤Ÿà¤¿ à¤¦à¥‡à¤—ा à¤”र SELinux à¤ªà¥‰à¤²à¤¿à¤¸à¥€ à¤•à¥‹ à¤¬à¤¾à¤§à¥à¤¯à¤•à¤¾à¤°à¥€ "
+-#~ "नहीं à¤•à¤°à¥‡à¤—ा.  à¤…नà¥à¤œà¥à¤žà¤¾à¤¤à¥à¤®à¤• à¤®à¥‹à¤¡ à¤•à¥‡ à¤²à¤¿à¤ à¤°à¤¿à¤¬à¥‚ट à¤•à¥€ à¤œà¤°à¥‚रत à¤¨à¤¹à¥€à¤‚ à¤¹à¥ˆ, à¤•à¥à¤¯à¤¾ à¤†à¤ª à¤œà¤¾à¤°à¥€ à¤°à¤–ना à¤šà¤¾à¤¹à¤¤à¥‡ à¤¹à¥ˆà¤‚?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "सकà¥à¤°à¤¿à¤¯ SELinux à¤¸à¥à¤¥à¤¿à¤¤à¤¿ à¤®à¥‡à¤‚ à¤¬à¤¦à¤²à¤¨à¤¾ à¤…गले à¤¬à¥‚ट à¤ªà¤° à¤ªà¥‚रे à¤«à¤¾à¤‡à¤² à¤¸à¤¿à¤¸à¥à¤Ÿà¤® à¤•à¥‡ à¤«à¤¿à¤° à¤²à¥‡à¤¬à¤² à¤•à¤¿à¤¯à¥‡ à¤œà¤¾à¤¨à¥‡ à¤•à¤¾ "
+-#~ "कारण à¤¬à¤¨à¥‡à¤—ा. à¤«à¤¾à¤‡à¤² à¤¸à¤¿à¤¸à¥à¤Ÿà¤® à¤•à¥‡ à¤†à¤•à¤¾à¤° à¤•à¥‡ à¤†à¤§à¤¾à¤° à¤ªà¤° à¤«à¤¿à¤° à¤¸à¥‡ à¤²à¥‡à¤¬à¤² à¤•à¤¿à¤¯à¤¾ à¤œà¤¾à¤¨à¤¾ à¤•à¤¾à¤«à¥€ à¤¸à¤®à¤¯ à¤²à¥‡à¤¤à¤¾ "
+-#~ "है. à¤•à¥à¤¯à¤¾ à¤†à¤ª à¤œà¤¾à¤°à¥€ à¤°à¤–ना à¤šà¤¾à¤¹à¥‡à¤‚गे?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux à¤²à¥‰à¤—िंग à¤®à¥ˆà¤ªà¤¿à¤‚ग"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux à¤¸à¤‚जाल à¤ªà¥‹à¤°à¥à¤Ÿ"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux à¤ªà¥à¤°à¤•à¤¾à¤°"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "सà¥à¤¤à¤°"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "फाइल à¤µà¤¿à¤¶à¥‡à¤·à¤¤à¤¾"
+-
+-#~ msgid "File Type"
+-#~ msgstr "फाइल à¤ªà¥à¤°à¤•à¤¾à¤°"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "सभी à¤«à¤¾à¤‡à¤²à¥‡à¤‚\n"
+-#~ "नियमित à¤«à¤¾à¤‡à¤²\n"
+-#~ "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾\n"
+-#~ "संपà¥à¤°à¤¤à¥€à¤• à¤¯à¥à¤•à¥à¤¤à¤¿\n"
+-#~ "बà¥à¤²à¥‰à¤• à¤¯à¥à¤•à¥à¤¤à¤¿\n"
+-#~ "सॉकेट\n"
+-#~ "सांकेतिक à¤²à¤¿à¤‚क\n"
+-#~ "नामित à¤ªà¤¾à¤‡à¤ª\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤œà¥‹à¤¡à¤¼à¥‡à¤‚"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤¨"
+-
+-#~ msgid "Add"
+-#~ msgstr "जोड़ें"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "गà¥à¤£ (_P)"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "मिटाà¤à¤ (_D)"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "पà¥à¤°à¤¬à¤‚धन à¤µà¤¸à¥à¤¤à¥ à¤šà¥à¤¨à¥‡à¤‚"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>चà¥à¤¨à¥‡à¤‚:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "सिसà¥à¤Ÿà¤® à¤®à¥‚लभूत à¤¬à¤¾à¤§à¥à¤¯à¤•à¤¾à¤°à¥€ à¤®à¥‹à¤¡"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "मौजूदा à¤ªà¥à¤¨à¤°à¥à¤¬à¤²à¤¨ à¤®à¥‹à¤¡"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "सिसà¥à¤Ÿà¤® à¤®à¥‚लभूत à¤ªà¥‰à¤²à¤¿à¤¸à¥€ à¤ªà¥à¤°à¤•à¤¾à¤°: "
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "चà¥à¤¨à¥‡à¤‚ à¤¯à¤¦à¤¿ à¤†à¤ª à¤ªà¥‚रे à¤«à¤¾à¤‡à¤² à¤¸à¤¿à¤¸à¥à¤Ÿà¤® à¤•à¥‹ à¤…गले à¤°à¤¿à¤¬à¥‚ट à¤ªà¤° à¤«à¤¿à¤° à¤²à¥‡à¤¬à¤² à¤•à¤°à¤¨à¤¾ à¤šà¤¾à¤¹à¤¤à¥‡ à¤¹à¥ˆà¤‚.  à¤°à¤¿à¤²à¥‡à¤¬à¤² à¤•à¤°à¤¨à¤¾ "
+-#~ "लंबा à¤¸à¤®à¤¯ à¤²à¥‡ à¤¸à¤•à¤¤à¤¾ à¤¹à¥ˆ, à¤¸à¤¿à¤¸à¥à¤Ÿà¤® à¤•à¥‡ à¤†à¤•à¤¾à¤° à¤ªà¤° à¤¨à¤¿à¤°à¥à¤­à¤° à¤•à¤°à¤¤à¥‡ à¤¹à¥à¤.  à¤¯à¤¦à¤¿ à¤†à¤ª à¤ªà¥‰à¤²à¤¿à¤¸à¥€ à¤ªà¥à¤°à¤•à¤¾à¤° à¤•à¥‹ "
+-#~ "निषà¥à¤•à¥à¤°à¤¿à¤¯ à¤¸à¥‡ à¤¬à¤¾à¤§à¥à¤¯à¤•à¤¾à¤°à¥€ à¤®à¥‡à¤‚ à¤¬à¤¦à¤² à¤°à¤¹à¥‡ à¤¹à¥ˆà¤‚, à¤«à¤¿à¤° à¤²à¥‡à¤¬à¤² à¤•à¤°à¤¨à¤¾ à¤œà¤°à¥‚री à¤¹à¥ˆ."
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "अगले à¤°à¤¿à¤¬à¥‚ट à¤ªà¤° à¤«à¤¿à¤° à¤²à¥‡à¤¬à¤² à¤•à¤°à¥‡à¤‚."
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "सिसà¥à¤Ÿà¤® à¤®à¥‚लभूत à¤®à¥‡à¤‚ à¤¬à¥à¤²à¤¿à¤¯à¤¨ à¤¸à¥‡à¤Ÿà¤¿à¤‚ग à¤µà¤¾à¤ªà¤¸ à¤²à¤¾à¤à¤‚"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "पसंदीदा à¤”र à¤¸à¤­à¥€ à¤¬à¥à¤²à¤¿à¤¯à¤¨ à¤•à¥‡ à¤¬à¥€à¤š à¤Ÿà¥‰à¤—ल à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "फिलà¥à¤Ÿà¤°"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "फाइल à¤¸à¤‚दरà¥à¤­ à¤œà¥‹à¤¡à¤¼à¥‡à¤‚"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "फाइल à¤¸à¤‚दरà¥à¤­ à¤¬à¤¦à¤²à¥‡à¤‚"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "फाइल à¤¸à¤‚दरà¥à¤­ à¤®à¤¿à¤Ÿà¤¾à¤à¤‚"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "सभी à¤”र à¤ªà¤¸à¤‚दीदा à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤•à¥‡ à¤¬à¥€à¤š à¤Ÿà¥‰à¤—ल à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤œà¥‹à¤¡à¤¼à¥‡à¤‚"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤¬à¤¦à¤²à¥‡à¤‚"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤®à¤¿à¤Ÿà¤¾à¤à¤‚"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "अनà¥à¤µà¤¾à¤¦ à¤œà¥‹à¤¡à¤¼à¥‡à¤‚"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "अनà¥à¤µà¤¾à¤¦ à¤°à¥‚पांतरित à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "अनà¥à¤µà¤¾à¤¦ à¤®à¤¿à¤Ÿà¤¾à¤à¤‚"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¸à¥à¤§à¤¾à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "संजाल à¤ªà¥‹à¤°à¥à¤Ÿ à¤œà¥‹à¤¡à¤¼à¥‡à¤‚"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "संजाल à¤ªà¥‹à¤°à¥à¤Ÿ à¤¸à¤‚पादित à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "संजाल à¤ªà¥‹à¤°à¥à¤Ÿ à¤®à¤¿à¤Ÿà¤¾à¤à¤‚"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "पसंदीदा à¤”र à¤¸à¤­à¥€ à¤ªà¥‹à¤°à¥à¤Ÿ à¤•à¥‡ à¤¬à¥€à¤š à¤Ÿà¥‰à¤—ल à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "नया à¤ªà¥‰à¤²à¤¿à¤¸à¥€ à¤®à¥‰à¤¡à¥à¤¯à¥‚ल à¤‰à¤¤à¥à¤ªà¤¨à¥à¤¨ à¤•à¤°à¥‡à¤‚"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "पॉलिसी à¤®à¥‰à¤¡à¥à¤¯à¥‚ल à¤²à¥‹à¤¡ à¤•à¤°à¥‡à¤‚."
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "लोड à¤•à¤°à¤¨à¥‡ à¤²à¤¾à¤¯à¤• à¤¸à¤¾à¤°à¥à¤µà¤œà¤¨à¤¿à¤• à¤®à¥‰à¤¡à¥à¤¯à¥‚ल à¤¹à¤Ÿà¤¾à¤à¤‚"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "अतिरिकà¥à¤¤ à¤‘डिट à¤¨à¤¿à¤¯à¤® à¤¸à¤•à¥à¤°à¤¿à¤¯/निषà¥à¤•à¥à¤°à¤¿à¤¯ à¤•à¤°à¥‡à¤‚, à¤œà¥‹ à¤²à¥‰à¤— à¤«à¤¾à¤‡à¤² à¤®à¥‡à¤‚ à¤¸à¤¾à¤®à¤¾à¤¨à¥à¤¯à¤¤à¤ƒ à¤°à¤¿à¤ªà¥‹à¤°à¥à¤Ÿ à¤¨à¤¹à¥€à¤‚ "
+-#~ "किया à¤¹à¥à¤† à¤¹à¥ˆ."
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "संवेदनशीलता à¤¸à¥à¤¤à¤°"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ '%s' à¤œà¤°à¥‚री à¤¹à¥ˆà¤‚"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "मान à¤œà¤°à¥‚री"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/उपयोकà¥à¤¤à¤¾ à¤­à¥‚मिका à¤•à¥‹ à¤•à¤¿à¤¸à¥€ tcp à¤ªà¥‹à¤°à¥à¤Ÿ à¤¸à¥‡ à¤¬à¤¾à¤‡à¤‚ड à¤•à¤°à¤¨à¥‡ à¤¦à¥‡à¤‚ > 1024"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr "किसी tcp à¤ªà¥‹à¤°à¥à¤Ÿ à¤®à¥‡à¤‚ à¤¬à¤¾à¤‚धने à¤•à¥‡ à¤²à¤¿à¤ à¤¸à¥€à¤®à¤¿à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/उपयोकà¥à¤¤à¤¾ à¤šà¥à¤¨à¥‡à¤‚"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "tcp à¤ªà¥‹à¤°à¥à¤Ÿ à¤¯à¤¾ à¤ªà¥‹à¤°à¥à¤Ÿ à¤•à¥‡ à¤ªà¤°à¤¿à¤¸à¤° à¤•à¤¾ à¤•à¥Œà¤®à¤¾ à¤¸à¥‡ à¤…लग à¤•à¤¿à¤¯à¤¾ à¤¸à¥‚ची à¤¦à¤¾à¤–िल à¤•à¤°à¥‡à¤‚ à¤¯à¤¾ à¤ªà¤°à¤¿à¤¸à¤° à¤œà¤¿à¤¸à¤®à¥‡à¤‚ "
+-#~ "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¬à¤‚धा à¤¹à¥ˆ. à¤‰à¤¦à¤¾à¤¹à¤°à¤£: 612, 650-660"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "SELinux à¤ªà¥‰à¤²à¤¿à¤¸à¥€ à¤œà¤¨à¤¨ à¤¡à¥à¤°à¥à¤¯à¥‚ड"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "अनारकà¥à¤·à¤¿à¤¤ à¤ªà¥‹à¤°à¥à¤Ÿ (> 1024)"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr "इस à¤šà¥‡à¤•à¤¬à¤Ÿà¤¨ à¤•à¥‹ à¤šà¥à¤¨à¥‡à¤‚ à¤¯à¤¦à¤¿ à¤†à¤ªà¤•à¤¾ app bindresvport à¤•à¥‹ 0 à¤•à¥‡ à¤¸à¤¾à¤¥ à¤†à¤¹à¥à¤µà¤¾à¤¨ à¤•à¤°à¤¤à¤¾ à¤¹à¥ˆ."
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "बाधà¥à¤¯à¤•à¤¾à¤°à¥€\n"
+-#~ "अनà¥à¤œà¥à¤žà¤¾à¤¤à¥à¤®à¤•\n"
+-#~ "निषà¥à¤•à¥à¤°à¤¿à¤¯\n"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/hr.po b/policycoreutils/po/hr.po
+index 8975247..0065118 100644
+--- a/policycoreutils/po/hr.po
++++ b/policycoreutils/po/hr.po
+@@ -1,17 +1,22 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-10-06 03:44+0100\n"
+-"Last-Translator: Renato Pavicic <renato@translator-shop.org>\n"
+-"Language-Team: Croatian <www.translator-shop.org>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: LANGUAGE <LL@li.org>\n"
+ "Language: hr\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Poedit-Language: Croatian\n"
+-"X-Poedit-Country: CROATIA\n"
++"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
++"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -106,9 +111,8 @@ msgid "Could not establish semanage connection"
+ msgstr "Uspostavljanje semanage veze nije moguće"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Zadavanje MLS raspona za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -123,32 +127,28 @@ msgid "Could not start semanage transaction"
+ msgstr "Semanage transakciju nije moguće pokrenuti"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Semanage transakciju nije moguće pokrenuti"
++msgstr ""
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+ msgstr ""
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Ispisivanje popisa SELinux korisnika nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Naziv modula"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Verzija"
+-#: ../semanage/seobject.py:307
+-#, fuzzy
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr "Onemogućeno"
++msgstr ""
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -156,9 +156,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Dodavanje uloge %s za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -170,14 +170,12 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Dopustivo"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Dopustivo"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+@@ -207,9 +205,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "Nije moguće provjeriti je li mapiranje za prijavu %s odreÄ‘eno"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux korisnik %s ne postoji"
++msgstr ""
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -276,15 +274,20 @@ msgid "Could not list login mappings"
+ msgstr "Ispisivanje popisa mapiranja prijava nije moguće"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "KorisniÄko ime"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux korisnik"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS raspon"
+@@ -302,9 +305,9 @@ msgid "Could not query user for %s"
+ msgstr "Propitivanje korisnika za %s nije moguće"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Dodavanje konteksta datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -394,6 +397,7 @@ msgid "MCS Range"
+ msgstr "MCS raspon"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux uloge"
+@@ -406,9 +410,8 @@ msgid "Port is required"
+ msgstr "Potreban je port"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Neispravan prefiks %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -495,14 +498,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "UreÄ‘ivanje porta %s/%s nije moguće"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "Ispisivanje popisa portova nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Brisanje porta %s/%s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -526,14 +528,13 @@ msgstr "SELinux vrsta porta"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "Broj porta"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Potreban je port"
++msgstr ""
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+@@ -554,14 +555,14 @@ msgstr "Izrada kljuÄa za %s nije moguća"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Nije moguće provjeriti je li port %s/%s odreÄ‘en"
++msgstr ""
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Izrada kljuÄa za %s nije moguća"
++msgstr ""
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -570,74 +571,72 @@ msgid "Could not create context for %s"
+ msgstr "Izrada konteksta za %s nije moguća"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Zadavanje naziva za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Zadavanje korisnika u kontekstu datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Zadavanje uloge u kontekstu datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Zadavanje vrste u kontekstu datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Zadavanje MLS polja u kontekstu datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Zadavanje konteksta datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Dodavanje porta %s/%s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Port %s/%s nije odreÄ‘en"
++msgstr ""
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Propitivanje porta %s/%s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "UreÄ‘ivanje porta %s/%s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Port %s/%s odreÄ‘en je u pravilima. Brisanje nije moguće."
++msgstr ""
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Brisanje suÄelja %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Brisanje mapiranja prijave za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Ispisivanje popisa portova nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -711,9 +710,8 @@ msgid "Could not delete interface %s"
+ msgstr "Brisanje suÄelja %s nije moguće"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Brisanje suÄelja %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -728,9 +726,9 @@ msgid "Context"
+ msgstr "Kontekst"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Kontekst datoteke za %s već je odreÄ‘en"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -738,9 +736,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux korisnik %s ne postoji"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -758,9 +756,8 @@ msgid "Could not set mls fields in file context for %s"
+ msgstr "Zadavanje MLS polja u kontekstu datoteke za %s nije moguće"
+ #: ../semanage/seobject.py:1707
+-#, fuzzy
+ msgid "Invalid file specification"
+-msgstr "Specifikacija:"
++msgstr ""
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -820,14 +817,13 @@ msgid "Could not modify file context for %s"
+ msgstr "UreÄ‘ivanje konteksta datoteke za %s nije moguće"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Ispisivanje popisa konteksta datoteke nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Brisanje konteksta datoteke za %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -862,11 +858,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -885,14 +880,14 @@ msgid "Could not query file context %s"
+ msgstr "Propitivanje konteksta datoteke %s nije moguće"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Potrebno je odrediti prefiks"
++msgstr ""
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Brisanje Booleove vrijednosti %s nije moguće"
++msgstr ""
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -927,24 +922,23 @@ msgid "off"
+ msgstr ""
+ #: ../semanage/seobject.py:2117
+-#, fuzzy
+ msgid "on"
+-msgstr "Cron"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+ msgstr "SELinux Booleov"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "Stanje"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1138,9 +1132,9 @@ msgid "failed to get old_context.\n"
+ msgstr "Dohvaćanje starog konteksta nije uspjelo.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "PogreÅ¡ka! Dohvaćanje TTY podataka nije moguće.\n"
++msgstr ""
+ #: ../newrole/newrole.c:1098
+ #, c-format
+@@ -1187,9 +1181,9 @@ msgid "failed to exec shell\n"
+ msgstr "IzvrÅ¡avanje ljuske nije uspjelo\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "upotreba:  %s [-q]\n"
++msgstr ""
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+@@ -1197,9 +1191,9 @@ msgid "%s:  Policy is already loaded and initial load requested\n"
+ msgstr ""
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s: Pravilo nije moguće uÄitati: %s\n"
++msgstr ""
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1285,1902 +1279,2096 @@ msgstr "chcat -- -TvrtkaPovjerljivo /docs/poslovniplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +TvrtkaPovjerljivo juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "PogreÅ¡ka opcija %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Otvaranje %s nije moguće: Prijevodi nisu podržani na ne-MLS raÄunalima"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "Razina"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "Prijevod"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Prijevodi ne mogu sadržavati prazna mjesta (razmake) '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Neispravna razina '%s'. "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s već je definiran u prijevodima"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s nije definiran u prijevodima"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Mapiranje prijave za %s već je odreÄ‘eno"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "dodaj SELinux korisniÄko mapiranje"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux korisnik %s već je odreÄ‘en"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Potreban je port"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Port %s/%s već je odreÄ‘en"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "SuÄelje %s već je odreÄ‘eno"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "PogreÅ¡ka pri inicijalizaciji sposobnosti. Bit Ä‡e prekinuto.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "PogreÅ¡ka pri postavljanju sposobnosti. Bit Ä‡e prekinuto.\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "PogreÅ¡ka postavljanju KEEPCAPS. Bit Ä‡e prekinuto.\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "PogreÅ¡ka pri ispuÅ¡tanju sposobnosti. Bit Ä‡e prekinuto.\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "PogreÅ¡ka pri ispuÅ¡tanju SETUID sposobnosti. Bit Ä‡e prekinuto.\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "PogreÅ¡ka pri oslobaÄ‘anju sposobnosti\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "Prijevodi nisu podržani na ne-MLS raÄunalima"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "Booleova vrijednost"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#, fuzzy
+-#~ msgid "all"
+-#~ msgstr "Sve"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "OznaÄavanje datoteka"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "Datoteka\n"
+-#~ "Specifikacija"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "Kontekst"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Datoteka\n"
+-#~ "Vrsta"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "KorisniÄko mapiranje"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "Prijava\n"
+-#~ "Ime"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "Korisnik"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS raspon"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Potrebna je '%s' prijava"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Policy Module"
+-#~ msgstr "Modul pravila"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable Audit"
+-#~ msgstr "Nepovezana revizija"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Enable Audit"
+-#~ msgstr "Nepovezana revizija"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "Load Policy Module"
+-#~ msgstr "UÄitaj modul pravila"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "translator-credits"
+-#~ msgstr "Renato PaviÄić, renato<AT>translator-shop.org"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "Alat za izradu SELinux pravila"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "Da biste pokrenuli ovu aplikaciju morate biti korijenski korisnik."
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Aplikacije</b>"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "Standardni demon inicijalizacije"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Demon internetskih usluga (inetd)"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Web-aplikacija/Skripta (CGI)"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "User Application"
+-#~ msgstr "KorisniÄka aplikacija"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Korisnici</b>"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#, fuzzy
+-#~ msgid "User Role"
+-#~ msgstr "Uloga"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Korisnici</b>"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Korijenski korisnik"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "Da biste pokrenuli ovu aplikaciju morate biti korijenski korisnik."
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Name"
+-#~ msgstr "Naziv"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Executable"
+-#~ msgstr "&IzvrÅ¡na datoteka:"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Init script"
+-#~ msgstr "KorisniÄka skripta"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "Odaberite najmanje jednu grupu za korisnika."
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "Odaberite najmanje jednu grupu za korisnika."
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "Odaberite najmanje jednu grupu za korisnika."
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP portovi</b>"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "Sve"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "DSL 4096/1024"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select Ports"
+-#~ msgstr "Ostali portovi"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP portovi</b>"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select common application traits"
+-#~ msgstr "Aplikacija za upravljanje glazbom"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr ""
+-#~ "Pluggable Authentication Module (PAM) za upotrebu sa SMB poslužiteljima"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "PogreÅ¡ka pri slanju poruke provjere.\n"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Policy Directory"
+-#~ msgstr "Zadana mapa"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "UÄitavanje generiranih datoteka…"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Boolean Name"
+-#~ msgstr "Booleova vrijednost"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Role"
+-#~ msgstr "Uloga"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Application"
+-#~ msgstr "Aplikacija"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#, fuzzy
+-#~ msgid "%s must be a directory"
+-#~ msgstr "Dopusti korisnicima izvrÅ¡avanje naredbe mount"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Potrebno je unijeti ime"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "Odaberite _particiju na koju Ä‡e biti smjeÅ¡tena razmjenska datoteka:"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "Potrebno je unijeti ime"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Potrebno je unijeti izvrÅ¡ni program"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Configue SELinux"
+-#~ msgstr "Konfiguriraj SELinux"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "Ping razdoblje mora biti izmeÄ‘u 1 i 10"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr ""
+-#~ "Ako je odabrano 'Nova usluga', potrebno je unijeti naziv nove usluge "
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "Prazan certifikat autorizacije nije dopuÅ¡ten."
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#, fuzzy
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr ""
+-#~ "Vrijednost opcije \"%s\" mora biti \"yes\" ili \"no\" (\"da\" ili \"ne\")"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Datoteke prisile vrste"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "Datoteka suÄelja"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "Datoteka konteksta"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Setup Script"
+-#~ msgstr "KorisniÄka skripta"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr "Potreban je port"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "Protokol"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "Razina"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "Port"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "Vrijednost koju ste unijeli nije ispravni broj."
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Group View"
+-#~ msgstr "Prikaz klijenata"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux usluga zaÅ¡tite"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon acct"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "Admin"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "Dopusti klijentima zapisivanje u X dijeljenu memoriju"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "KorisniÄke privilegije"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "ZaÅ¡tita memorije"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "OgraniÄenje veliÄine spremnika memorije"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Pristupi"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "Dopusti korisnicima izvrÅ¡avanje naredbe mount"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "Dopusti korisnicima izvrÅ¡avanje naredbe mount"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "OgraniÄenje veliÄine spremnika memorije"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "Omogući da ssh pokreće ssh-keysign"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Konfiguriranje mreže"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "Dopusti neometeno djelovanje alatu rpm."
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Baze podataka"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "Dopusti korisnicima povezivanje na mysql socket"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "Dopusti korisnicima povezivanje na postgres socket"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "Dopusti klijentima zapisivanje u X dijeljenu memoriju"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "Omogući demonima pokretanje s NIS."
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "Web aplikacije"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr ""
+-#~ "Dopusti alatu ftp da piÅ¡e/Äita datoteke u korisniÄkim glavnim mapama."
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za amanda"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za amavis"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon apmd"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon arpwatch"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon auditd"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon automount"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za avahi"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon bluetooth"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon canna"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon cardmgr"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Onemogući Selinux zaÅ¡titu za cupsd backend poslužitelj"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon ciped"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon clamd"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za clamscan"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za clvmd"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon comsat"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon courier"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon cpucontrol"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon cpuspeed"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon crond"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "Ispisivanje"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "Onemogući Selinux zaÅ¡titu za cupsd backend poslužitelj"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon cupsd"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za cupsd_lpd"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon cvs"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon cyrus"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon dbskkd"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon dbusd"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon ddt"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon devfsd"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon dhcpc"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon dhcpd"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon dictd"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "Dopusti sysadm_t da izravno pokrene demone."
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Games"
+-#~ msgstr "Igre"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon crond"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon distccd"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon dmesg"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon dnsmasq"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon dovecot"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon entropyd"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon fingerd"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon freshclam"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon fsdaemon"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon gpm"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon gss"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon hal"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "Kompatibilnost"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "Ne provjeravaj stvari za koje znamo da su nedovrÅ¡ene, ali koje ne "
+-#~ "predstavljaju sigurnosni rizik."
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon hostname"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon hotplug"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon howl"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon cups hplip"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon httpd"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD usluga"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za http suexec"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon hwclock"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon i18n"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon imazesrv"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demone inetd child"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon inetd"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon innd"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon iptables"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon ircd"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon irqbalance"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon crond"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon jabberd"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon kadmind"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon klogd"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon krb5kdc"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demone ktalk"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon kudzu"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon locate"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon lpd"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon lrrd"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon lvm"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "Dopusti da Evolution i Thunderbird Äitaju korisniÄke datoteke"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon mdadm"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon monopd"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "Dopusti da preglednik Mozilla Äita korisniÄke datoteke"
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon mrtg"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon mysqld"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon nagios"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Name Service"
+-#~ msgstr "Usluga naziva"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon nazivatelja"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon nessusd"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za NetworkManager"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon nfsd"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon nmbd"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon nrpe"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon nscd"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon nsd"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon ntpd"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon crond"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon openvpn"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon pam"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon perdition"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon portmap"
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon portslave"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon postgresql"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon prelink"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon privoxy"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon ptal"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon pxe"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon quota"
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon radiusd"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon radvd"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "Dopusti programima iÅ¡Äitavanje datoteka na nestandardnim lokacijama "
+-#~ "(default_t)"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon rhgb"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon crond"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon rlogind"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon rpcd"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon rsync"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "Dopusti da se ssh pokreće iz inetd, umjesto kao demon"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Dopusti da Samba razmjenjuje NFS mape."
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL poslužitelj provjere autentiÄnosti"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr ""
+-#~ "Dopusti da sasl poslužitelj provjere autentiÄnosti Äita mapu /etc/shadow"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon saslauthd"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon scannerdaemon"
+-
+-#, fuzzy
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "Ne dopusti prijelaz u sysadm_t"
+-
+-#, fuzzy
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "Nikakvim postupcima ne dopuÅ¡taj uÄitavanje kernelskih modula"
+-
+-#, fuzzy
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr ""
+-#~ "Nikakvim postupcima ne dopuÅ¡taj izmjenjivanje kernelskih SELinux pravila"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon sendmail"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za igre"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon crond"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon slapd"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon slrnpull"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon smbd"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon snmpd"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon snort"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon soundd"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon sound"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Spam Protection"
+-#~ msgstr "Spam zaÅ¡tita"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon spamd"
+-
+-#, fuzzy
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "Dopusti da spamd ima pristup korisniÄkim glavnim mapama."
+-
+-#, fuzzy
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Dopusti demonu Spam Assasin pristup mreži"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon speedmgmt"
+-
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
+-
+-#, fuzzy
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "Dopusti demonu squid povezivanje na mrežu."
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon crond"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon ssh"
+-
+-#, fuzzy
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "Dopusti ssh prijavljivanja kao sysadm_r:sysadm_t"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "Dopusti korisnicima staff_r da pretražuju i Äitaju sadržaj mape sysadm "
+-#~ "home (poput ~/.bashrc)"
+-
+-#, fuzzy
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Univerzalan SSL tunel"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon stunnel"
+-
+-#, fuzzy
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "Dopusti demonu stunnel samostalno pokretanje, izvan xinetd"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon swat"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon sxid"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon syslogd"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "Onemogući Selinux zaÅ¡titu za cupsd backend poslužitelj"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon crond"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon telnet"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon tftpd"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon transproxy"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon udev"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon uml"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Dopusti nesputani rad xinetd, ukljuÄujući bilo koje usluge koje je "
+-#~ "pokrenuo, a koji nemaju izriÄito zadano pretvaranje domena."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Dopusti nesputani rad rc skripti, ukljuÄujući bilo koji demon koje je "
+-#~ "pokrenula rc skripta, a koji nema izriÄito zadano pretvaranje domena."
+-
+-#, fuzzy
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "Dopusti neometeno djelovanje alatu rpm."
+-
+-#, fuzzy
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "Dopusti neometeno djelovanje privilegiranim alatima kao Å¡to su hotplug i "
+-#~ "insmod."
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon updfstab"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon uptimed"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "Dopusti da user_r pristupi u sysadm_r putem su, sudo, ili userhelper. U "
+-#~ "protivno dopuÅ¡teno samo za staff_r."
+-
+-#, fuzzy
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "Dopusti korisnicima izvrÅ¡avanje naredbe mount"
+-
+-#, fuzzy
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "Dopusti redovnim korisnicima izravan pristup miÅ¡em (dopusti samo X "
+-#~ "poslužitelj)"
+-
+-#, fuzzy
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "Dopusti korisnicima izvrÅ¡avanje naredbe dmesg"
+-
+-#, fuzzy
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "Dopusti korisnicima nadzor nad mrežnim suÄeljima (potreban je i "
+-#~ "USERCTL=true)"
+-
+-#, fuzzy
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "Dopusti normalnim korisnicima izvrÅ¡avanje alata ping"
+-
+-#, fuzzy
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr ""
+-#~ "Dopusti korisnicima Äitanja i pisanje noextattrfile (FAT, CDROM, FLOPPY)"
+-
+-#, fuzzy
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "Dopusti korisnicima Äitanja i pisanje USB ureÄ‘aja"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "Dopusti korisnicima pokretanje TCP poslužitelja (povezivanje s portovima "
+-#~ "i prihvaćanje povezivanja iz iste domene i vanjskim korisnicima). "
+-#~ "Onemogućavanje ove opcije prisiljava pasivan naÄin za FTP i može "
+-#~ "izmijeniti ostale protokole."
+-
+-#, fuzzy
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "Dopusti korisnicima definiranje tty datoteka"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon uucpd"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon vmware"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon vmware"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon winbind"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon xdm"
+-
+-#, fuzzy
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "Dopusti xdm prijave kao sysadm_r:sysadm_t"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon crond"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon xfs"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon crond"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon ypbind"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon cups hplip"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon ypserv"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon cups hplip"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr "Dopusti da Samba razmjenjuje korisniÄkih glavnih mapa."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr "Dopusti da Samba razmjenjuje korisniÄkih glavnih mapa."
+-
+-#, fuzzy
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "Jeste li sigurni ste da Å¾elite izbrisati %s?"
+-
+-#, fuzzy
+-#~ msgid "Delete %s"
+-#~ msgstr "_IzbriÅ¡i"
+-
+-#, fuzzy
+-#~ msgid "Add %s"
+-#~ msgstr "_Dodaj"
+-
+-#, fuzzy
+-#~ msgid "Modify %s"
+-#~ msgstr "&Uredi..."
+-
+-#, fuzzy
+-#~ msgid "Permissive"
+-#~ msgstr "Dopustivo"
+-
+-#, fuzzy
+-#~ msgid "Enforcing"
+-#~ msgstr "Prisiljavanje"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Promjena sigurnosnih pravila prisilit Ä‡e ponovno oznaÄavanje cjelokupnog "
+-#~ "datoteÄnog sustava pri sljedećem pokretanju. Ponovno je oznaÄavanje "
+-#~ "dugotrajno i ovisi o veliÄini datoteÄnog sustava. Å½elite li nastaviti?"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Omogućavanje SELinux prisilit Ä‡e ponovno oznaÄavanje cjelokupnog "
+-#~ "datoteÄnog sustava pri sljedećem pokretanju. Ponovno je oznaÄavanje "
+-#~ "dugotrajno i ovisi o veliÄini datoteÄnog sustava. Å½elite li nastaviti?"
+-
+-#, fuzzy
+-#~ msgid "system-config-selinux"
+-#~ msgstr "System-Config-Printer"
+-
+-#, fuzzy
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "Dodavanje mapiranja prijave za %s nije moguće"
+-
+-#, fuzzy
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "Dodavanje SELinux korisnika %s nije moguće"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux vrsta"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr "SELinux mls temeljna pravila"
+-
+-#, fuzzy
+-#~ msgid "File Specification"
+-#~ msgstr "Specifikacija:"
+-
+-#, fuzzy
+-#~ msgid "File Type"
+-#~ msgstr "Vrsta _datoteÄnog sustava:"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Dodaj SELinux korisnika"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Administration"
+-#~ msgstr "Administrativni alati"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Add"
+-#~ msgstr "Dodaj"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "_Properties"
+-#~ msgstr "_Svojstva"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "_Delete"
+-#~ msgstr "_IzbriÅ¡i"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Select Management Object"
+-#~ msgstr "Odabir odreÄ‘enog dijela auta"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Odaberite:</b>"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#, fuzzy
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "Izmjena zadanog jezik sustava"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "OdreÄ‘ivanje naÄina prisiljavanja nije moguće.\n"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "Dohvaćanje zadane vrste nije moguće.\n"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Kod sljedećeg pokretanja sustava bit Ä‡e prisiljen 'fsck'."
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "label37"
+-#~ msgstr "label37"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "Filtar"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "label50"
+-#~ msgstr "label50"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add File Context"
+-#~ msgstr "Dodavanje konteksta datoteke za %s nije moguće"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify File Context"
+-#~ msgstr "UreÄ‘ivanje konteksta datoteke za %s nije moguće"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete File Context"
+-#~ msgstr "Brisanje konteksta datoteke za %s nije moguće"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid "label38"
+-#~ msgstr "label38"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "Dodavanje SELinux korisnika %s nije moguće"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Uredi mapiranje SELinux korisnika"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "IzbriÅ¡i mapiranje SELinux korisnika"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "label39"
+-#~ msgstr "label39"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add Translation"
+-#~ msgstr "PogreÅ¡ka pri prevoÄ‘enju"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify Translation"
+-#~ msgstr "PogreÅ¡ka pri prevoÄ‘enju"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete Translation"
+-#~ msgstr "PogreÅ¡ka pri prevoÄ‘enju"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "label41"
+-#~ msgstr "label41"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Uredi SELinux korisnika"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid "label40"
+-#~ msgstr "label40"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add Network Port"
+-#~ msgstr "Port za mrežno povezivanje"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Edit Network Port"
+-#~ msgstr "Port za mrežno povezivanje"
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete Network Port"
+-#~ msgstr "Port za mrežno povezivanje"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "label42"
+-#~ msgstr "label42"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Generate new policy module"
+-#~ msgstr "SELinux referentna pravila - osnovni modul 'targeted'."
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "UÄitaj modul pravila"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "SELinux referentna pravila - osnovni modul 'targeted'."
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid "label44"
+-#~ msgstr "label44"
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "RAID _razina:"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "Potrebna je SELinux korisnik '%s'"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Zahtijeva vrijednost"
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "Druid za izradu SELinux pravila"
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid "label25"
+-#~ msgstr "label25"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "label26"
+-#~ msgstr "label26"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid "label28"
+-#~ msgstr "label28"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid "label30"
+-#~ msgstr "label30"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "label31"
+-#~ msgstr "label31"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid "label32"
+-#~ msgstr "label32"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid "label33"
+-#~ msgstr "label33"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "DSL 4096/1024"
+-
+-#~ msgid "label34"
+-#~ msgstr "label34"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid "label35"
+-#~ msgstr "label35"
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label51"
+-#~ msgstr "label25"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr "'prisiljavanje', 'dopuÅ¡tanje', ili 'onemogućeno'"
+-
+-#~ msgid "value"
+-#~ msgstr "vrijednost"
+-
+-#~ msgid "You must be root to run %s."
+-#~ msgstr "Za pokretanje %s morate biti korijenski korisnik."
+-
+-#~ msgid "Other"
+-#~ msgstr "Ostalo"
+-
+-#, fuzzy
+-#~ msgid "XWindows Login User"
+-#~ msgstr "%1: TTY prijava"
+-
+-#, fuzzy
+-#~ msgid "Terminal Login User"
+-#~ msgstr "%1: TTY prijava"
+-
+-#, fuzzy
+-#~ msgid "Incoming Network Port Connections"
+-#~ msgstr "ÄŒekanje dolaznih veza na portu %1."
+-
+-#, fuzzy
+-#~ msgid "Outgoing Network Port Connections"
+-#~ msgstr "%s: ip=%s, port=%s <mrežni powercontroller>"
+-
+-#, fuzzy
+-#~ msgid "Files and Directories"
+-#~ msgstr "Dodatne razvojne datoteke 'include' i razvojne datoteke"
+-
+-#, fuzzy
+-#~ msgid "Generate policy in this directory"
+-#~ msgstr "this file must be located in your Template directory.;"
+-
+-#~ msgid "Login"
+-#~ msgstr "Prijava"
+-
+-#, fuzzy
+-#~ msgid "Allow cvs daemon to read shadow"
+-#~ msgstr ""
+-#~ "Dopusti da sasl poslužitelj provjere autentiÄnosti Äita mapu /etc/shadow"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined executables to make their heap memory executable.  Doing "
+-#~ "this is a really bad idea. Probably indicates a badly coded executable, "
+-#~ "but could indicate an attack. This executable should be reported in "
+-#~ "bugzilla"
+-#~ msgstr ""
+-#~ "Dopusti nevezanim izvrÅ¡nim datotekama da svoju memorijsku gomilu uÄine "
+-#~ "izvrÅ¡nom.  Omogućavanje ove opcije je zaista loÅ¡a zamisao.  Vjerojatno "
+-#~ "predstavlja loÅ¡e kodiranu izvrÅ¡nu datoteku, ali može predstavljati i "
+-#~ "napad. IzvrÅ¡nu bi datoteku trebalo prijaviti pri bugzilla."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined executables to map a memory region as both executable "
+-#~ "and writable, this is dangerous and the executable should be reported in "
+-#~ "bugzilla"
+-#~ msgstr ""
+-#~ "Dopusti nevezanim izvrÅ¡nim datotekama mapiranje memorijskih podruÄja kao "
+-#~ "izvrÅ¡ih i kao zapisivih. Ovo je nepouzdano i izvrÅ¡nu bi datoteku trebalo "
+-#~ "prijaviti pri bugzilla."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow all unconfined executables to use libraries requiring text "
+-#~ "relocation that are not labeled textrel_shlib_t"
+-#~ msgstr ""
+-#~ "Dopusti svim nevezanim izvrÅ¡nim datotekama upotrebu biblioteka koje "
+-#~ "zahtijevaju premjeÅ¡tanje teksta, bez oznaÄavanja kao textrel_shlib_t"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined executables to make their stack executable.  This should "
+-#~ "never, ever be neessary. Probably indicates a badly coded executable, but "
+-#~ "could indicate an attack. This executable should be reported in bugzilla"
+-#~ msgstr ""
+-#~ "Dopusti nevezanim izvrÅ¡nim datotekama da svoju memorijsku hrpu uÄine "
+-#~ "izvrÅ¡nom.  Ovo nikad, ali nikad ne bi smjelo biti potrebno.  Vjerojatno "
+-#~ "predstavlja loÅ¡e kodiranu izvrÅ¡nu datoteku, ali može predstavljati i "
+-#~ "napad. IzvrÅ¡nu bi datoteku trebalo prijaviti pri bugzilla."
+-
+-#~ msgid "FTP"
+-#~ msgstr "FTP"
+-
+-#, fuzzy
+-#~ msgid "Allow ftpd to full access to the system"
+-#~ msgstr "VaÅ¡ Ä‡e sustav zahtijevati pristup pretplati."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow ftpd to upload files to directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Dopusti da ftpd uÄitava datoteke u mape oznaÄene kao javni sadržaj "
+-#~ "(public_content_rw_t)"
+-
+-#, fuzzy
+-#~ msgid "Allow gpg executable stack"
+-#~ msgstr "OgraniÄenje veliÄine spremnika memorije"
+-
+-#, fuzzy
+-#~ msgid "Allow gssd to read temp directory"
+-#~ msgstr "Dopusti da HTTPD da iÅ¡Äitava glavne mape."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow httpd daemon to write files in directories labeled "
+-#~ "public_content_rw_t"
+-#~ msgstr ""
+-#~ "Dopusti da demon httpd zapisuje datoteke u mapama oznaÄenim kao javni "
+-#~ "sadržaj (public_content_rw_t)"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow httpd scripts to write files in directories labeled "
+-#~ "public_content_rw_t"
+-#~ msgstr ""
+-#~ "Dopusti da httpd skripte zapisuje datoteke u mapama oznaÄenim kao javni "
+-#~ "sadržaj (public_content_rw_t)"
+-
+-#, fuzzy
+-#~ msgid "Allow daemons to use kerberos files"
+-#~ msgstr "Omogući demonima upotrebu kerberos datoteka."
+-
+-#~ msgid "Polyinstatiation"
+-#~ msgstr "Polyinstatiation"
+-
+-#, fuzzy
+-#~ msgid "Enable polyinstantiated directory support"
+-#~ msgstr "Omogući podrÅ¡ku za Smart _Card"
+-
+-#, fuzzy
+-#~ msgid "Allow sysadm_t to debug or ptrace applications"
+-#~ msgstr "Dopusti da sysadm_t otkriva nedostatke ili prati aplikacije)"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow rsync to write files in directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Dopusti da rsync zapisuje datoteke u mapama oznaÄenim kao javni sadržaj "
+-#~ "(public_content_rw_t)"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow Samba to write files in directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Dopusti da Samba zapisuje datoteke u mapama oznaÄenim kao javni sadržaj "
+-#~ "(public_content_rw_t)"
+-
+-#~ msgid "Zebra"
+-#~ msgstr "Zebra"
+-
+-#~ msgid "Allow zebra daemon to write it configuration files"
+-#~ msgstr "Dopusti da demon zebra zapisuje konfiguracijske datoteke"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow system cron jobs to relabel filesystem for restoring file contexts"
+-#~ msgstr ""
+-#~ "Dopusti cron radnjama sustava ponovno oznaÄavanje sustava za potrebe "
+-#~ "obnavljanja."
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for ftpd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon ftpd"
+-
+-#, fuzzy
+-#~ msgid "Allow ftpd to run directly without inetd"
+-#~ msgstr "Dopusti izravno djelovanje alata ftpd bez inetd."
+-
+-#, fuzzy
+-#~ msgid "Allow ftp to read/write files in the user home directories"
+-#~ msgstr ""
+-#~ "Dopusti alatu ftp da piÅ¡e/Äita datoteke u korisniÄkim glavnim mapama."
+-
+-#, fuzzy
+-#~ msgid "Allow HTTPD to support built-in scripting"
+-#~ msgstr "Dopusti da HTTPD podržava ugraÄ‘ene skripte."
+-
+-#, fuzzy
+-#~ msgid "Allow HTTPD to send mail"
+-#~ msgstr "Dopusti da HTTPD da iÅ¡Äitava glavne mape."
+-
+-#, fuzzy
+-#~ msgid "Allow HTTPD scripts and modules to network connect to databases"
+-#~ msgstr ""
+-#~ "Dopusti HTTPD skriptama i modulima mrežno povezivanje na bazu podataka."
+-
+-#, fuzzy
+-#~ msgid "Allow HTTPD scripts and modules to connect to the network"
+-#~ msgstr "Dopusti HTTPD skriptama i modulima povezivanje na mrežu."
+-
+-#, fuzzy
+-#~ msgid "Allow httpd to act as a relay"
+-#~ msgstr "Dopusti da se HTTPD da pokreće kao FTP poslužitelj"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for httpd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon httpd"
+-
+-#, fuzzy
+-#~ msgid "Allow HTTPD cgi support"
+-#~ msgstr "Dopusti HTTPD cgi podrÅ¡ku"
+-
+-#, fuzzy
+-#~ msgid "Allow HTTPD to run as a ftp server"
+-#~ msgstr "Dopusti da se HTTPD da pokreće kao FTP poslužitelj"
+-
+-#, fuzzy
+-#~ msgid "Allow HTTPD to read home directories"
+-#~ msgstr "Dopusti da HTTPD da iÅ¡Äitava glavne mape."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow HTTPD to run SSI executables in the same domain as system CGI "
+-#~ "scripts"
+-#~ msgstr ""
+-#~ "Dopusti da HTTPD pokreće SSI u istoj domeni kao i sistemske CGI skripte."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unify HTTPD to communicate with the terminal.  Needed for handling "
+-#~ "certificates"
+-#~ msgstr ""
+-#~ "Objedini HTTPD radi komuniciranja s terminalom. Potrebno za rukovanje "
+-#~ "certifikatima."
+-
+-#, fuzzy
+-#~ msgid "Unify HTTPD handling of all content files"
+-#~ msgstr "Objedini HTTPD rukovanje svih datoteka sa sadržajem."
+-
+-#, fuzzy
+-#~ msgid "Allow named to overwrite master zone files"
+-#~ msgstr "Dopusti da nazivatelj prepisuje preko glavnih zonskih datoteka."
+-
+-#, fuzzy
+-#~ msgid "Allow openvpn service access to users home directories"
+-#~ msgstr "Dopusti korisnicima prijavljivanje s CIFS glavnom mapom."
+-
+-#, fuzzy
+-#~ msgid "Allow pppd daemon to insert modules into the kernel"
+-#~ msgstr "Dopusti demonu pppd umetanje modula u kernel."
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for pppd daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon pppd"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for the mozilla ppp daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za Mozilla demon ppp"
+-
+-#, fuzzy
+-#~ msgid "Allow programs to read untrusted content without relabel"
+-#~ msgstr ""
+-#~ "Dopusti programima da Äitaju nepouzdan sadržaj bez upotrebe programa "
+-#~ "relabel"
+-
+-#, fuzzy
+-#~ msgid "Spam Assassin"
+-#~ msgstr "Spam Assassin"
+-
+-#, fuzzy
+-#~ msgid "Allow spammassasin to access the network"
+-#~ msgstr "Dopusti da spammassasin ima pristup na mrežu."
+-
+-#, fuzzy
+-#~ msgid "Use lpd server instead of cups"
+-#~ msgstr "Upotrijebi &sistemsko zvono umjesto obavijesti sustava"
+-
+-#, fuzzy
+-#~ msgid "Support NFS home directories"
+-#~ msgstr "PodrÅ¡ka za NFS glavne mape"
+-
+-#, fuzzy
+-#~ msgid "Allow users to login with CIFS home directories"
+-#~ msgstr "Dopusti korisnicima prijavljivanje s CIFS glavnom mapom."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow web applications to write untrusted content to disk (implies read)"
+-#~ msgstr ""
+-#~ "Dopusti web aplikacijama zapisivanje nepouzdanog sadržaja na disk "
+-#~ "(implicira i Äitanje)"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for zebra daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za demon zebra"
+-
+-#, fuzzy
+-#~ msgid "Label Prefix"
+-#~ msgstr "Neispravan prefiks"
+-
+-#, fuzzy
+-#~ msgid "MLS/MCS Level"
+-#~ msgstr "Zadavanje MLS razine za %s nije moguće"
+-
+-#~ msgid ""
+-#~ "Labeling\n"
+-#~ "Prefix"
+-#~ msgstr ""
+-#~ "OznaÄavanje\n"
+-#~ "Prefiks"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Level"
+-#~ msgstr "Zadavanje MLS razine za %s nije moguće"
+-
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Zahtijeva 2 ili viÅ¡e argumenta"
+-
+-#~ msgid "%s not defined"
+-#~ msgstr "%s nije odreÄ‘en"
+-
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "%s nije valjan za %s objekata\n"
+-
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "Opseg nije podržan na ne-MLS raÄunalima"
+-
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Neispravna vrijednost '%s'. "
+-
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Da bi se ovaj novoizraÄ‘eni paket pravila uÄitao u kernel,\n"
+-#~ "potrebno je da izvrÅ¡ite naredbu \n"
+-#~ "\n"
+-#~ "semodule -I %s.pp\n"
+-#~ "\n"
+-
+-#~ msgid "Options Error: %s "
+-#~ msgstr "PogreÅ¡ka opcija: %s "
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/hu.po b/policycoreutils/po/hu.po
+index 88f7c45..3045b7e 100644
+--- a/policycoreutils/po/hu.po
++++ b/policycoreutils/po/hu.po
+@@ -1,20 +1,24 @@
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
++# Translators:
+ # Arpad Biro <biro_arpad@yahoo.com>, 2006, 2007.
++# Nagy István Zoltán <nagyesta@gmail.com>, 2009.
++# Zoltan Hoppár <hopparz@gmail.com>, 2012.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-03-27 20:12+0200\n"
+-"Last-Translator: Arpad Biro <biro_arpad@yahoo.com>\n"
+-"Language-Team: \n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-23 07:55+0000\n"
++"Last-Translator: Zoltan Hoppár <hopparz@gmail.com>\n"
++"Language-Team: Hungarian <trans-hu@lists.fedoraproject.org>\n"
++"Language: hu\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -81,24 +85,20 @@ msgid "Could not set exec context to %s.\n"
+ msgstr "Nem sikerült beállítani a végrehajtási kontextust erre: %s.\n"
+ #: ../audit2allow/audit2allow:230
+-#, fuzzy
+ msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-"\n"
+-"*********************** FONTOS ***********************\n"
++msgstr "*********************** FONTOS ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr ""
++msgstr "Ezen házirend aktiválásához futtassa:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "globális"
+ #: ../semanage/seobject.py:222
+-#, fuzzy
+ msgid "Could not create semanage handle"
+-msgstr "Nem sikerült elindítani az Semanage-tranzakciót"
++msgstr "Nem sikerült létrehozni az Semanage kezelÅ‘t"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+@@ -113,47 +113,44 @@ msgid "Could not establish semanage connection"
+ msgstr "Nem sikerült létrehozni Semanage-kapcsolatot"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Nem sikerült MLS-tartományt beállítani ehhez: %s"
++msgstr "MLS aktív Ã¡llapot tesztelése nem sikerült"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "Még nincs megvalósítva."
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "SEmanage művelet már folyamatban"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "Nem sikerült elindítani az Semanage-tranzakciót"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Nem sikerült elindítani az Semanage-tranzakciót"
++msgstr "Nem sikerült véglegesíteni az Semanage-tranzakciót"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "SEmanage művelet nincs folyamatban"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Nem sikerült listázni az SELinux-felhasználókat"
++msgstr "Nem sikerült listázni az SELinux modulokat"
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+-msgstr ""
++msgstr "Modulok nevei"
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+-msgstr ""
++msgstr "Verzió"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr ""
++msgstr "Kikapcsolva"
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -161,9 +158,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Nem sikerült felvenni \"%s\" szerepet ehhez: %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -172,25 +169,25 @@ msgstr ""
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
++msgstr "dontaudit-hoz szükséges vagy 'be\" vagy 'ki'"
+ #: ../semanage/seobject.py:387
+ msgid "Builtin Permissive Types"
+-msgstr ""
++msgstr "Beépített elengedÅ‘ típusok"
+ #: ../semanage/seobject.py:397
+ msgid "Customized Permissive Types"
+-msgstr ""
++msgstr "Egyéni elengedÅ‘ típusok"
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "Nem Ã¡llítható be a megengedÅ‘ tartomány %s (sikertelen modul telepítés)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "Nem törölhetÅ‘ a megengedÅ‘ tartomány %s (sikertelen eltávolítás)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -212,9 +209,9 @@ msgstr ""
+ "ehhez: %s"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Nem létezik %s nevű Linux-felhasználó"
++msgstr "A %s Linux csoport nem létezik"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -282,18 +279,22 @@ msgid "Could not list login mappings"
+ msgstr "Nem sikerült listázni a bejelentkezési hozzárendeléseket"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+-msgstr ""
++msgstr "Bejelentkezési név"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-#, fuzzy
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "Meg kell adni SELinux-típust"
++msgstr "SELinux felhasználó"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+-msgstr ""
++msgstr "MLS/MCS hatáskör"
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+@@ -310,9 +311,9 @@ msgid "Could not query user for %s"
+ msgstr "Nem sikerült lekérdezni a felhasználót ehhez: %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Nem sikerült felvenni fájlkontextust ehhez: %s"
++msgstr "Legalább egy szerepet meg kell adnia %s számára"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -384,27 +385,28 @@ msgstr "Nem sikerült listázni a(z) \"%s\" felhasználó szerepeit"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr ""
++msgstr "Címkézés"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+-msgstr ""
++msgstr "MLS/"
+ #: ../semanage/seobject.py:943
+ msgid "Prefix"
+-msgstr ""
++msgstr "ElÅ‘tag"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Level"
+-msgstr ""
++msgstr "MCS Szint"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Range"
+-msgstr ""
++msgstr "MCS hatáskör"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+-msgstr ""
++msgstr "SELinux szerepek"
+ #: ../semanage/seobject.py:963
+ msgid "Protocol udp or tcp is required"
+@@ -415,9 +417,8 @@ msgid "Port is required"
+ msgstr "Meg kell adni portot"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Érvénytelen elÅ‘tag: %s"
++msgstr "Hibás port"
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -504,14 +505,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "Nem sikerült módosítani ezt a portot: %s/%s"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+ msgstr "Nem sikerült listázni a portokat"
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Nem sikerült törölni ezt a portot: %s/%s"
++msgstr "Nem sikerült törölni a portot: %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -529,24 +529,23 @@ msgstr "Nem sikerült listázni a portokat"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+-msgstr ""
++msgstr "SELinux Port típus"
+ #: ../semanage/seobject.py:1199
+ msgid "Proto"
+-msgstr ""
++msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+-msgstr ""
++msgstr "Portszám"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Meg kell adni portot"
++msgstr "Csomópont cím szükséges"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Ismeretlen vagy hiányzó protokoll"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -563,14 +562,14 @@ msgstr "Nem sikerült létrehozni kulcsot ehhez: %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Nem sikerült ellenÅ‘rizni, hogy definiálva van-e a(z) %s/%s port"
++msgstr "Nem sikerült ellenÅ‘rizni, hogy definiálva van-e a(z) %s"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Nem sikerült létrehozni kulcsot ehhez: %s"
++msgstr "Nem sikerült létrehozni addr-t %s-hez"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -579,74 +578,72 @@ msgid "Could not create context for %s"
+ msgstr "Nem sikerült létrehozni kontextust ehhez: %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Nem sikerült nevet beállítani ehhez: %s"
++msgstr "Nem Ã¡llítható be a(z) %s maszkja"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Nem sikerült beállítani a felhasználót %s fájlkontextusban"
++msgstr "Nem sikerült beállítani a felhasználót %s addr kontextusban"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Nem sikerült beállítani a szerepet %s fájlkontextusban"
++msgstr "Nem sikerült beállítani a szerepet %s addr kontextusban"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Nem sikerült beállítani a típust %s fájlkontextusban"
++msgstr "Nem sikerült beállítani a típust %s addr kontextusban"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Nem sikerült beállítani az MLS-mezÅ‘ket %s fájlkontextusban"
++msgstr "Nem sikerült beállítani az MLS-mezÅ‘ket %s addr kontextusban"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Nem sikerült beállítani a fájlkontextust ehhez: %s"
++msgstr "Nem sikerült beállítani a(z) %s addr kontextust"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Nem sikerült felvenni ezt a portot: %s/%s"
++msgstr "Nem adható hozzá %s addr"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "%s/%s port nincs definiálva"
++msgstr "%s addr nincs definiálva"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Nem sikerült lekérdezni ezt a portot: %s/%s"
++msgstr "Nem kérdezhetÅ‘ le %s addr"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Nem sikerült módosítani ezt a portot: %s/%s"
++msgstr "Nem módosítható %s addr"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "A(z) %s/%s port szabályzatban van definiálva - nem törölhetÅ‘"
++msgstr "A(z) %s addr nincs definiálva a házirendben, nem törölhetÅ‘"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Nem sikerült törölni ezt a csatolót: %s"
++msgstr "Nem törölhetÅ‘ %s addr"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Nem sikerült törölni \"%s\" bejelentkezési hozzárendelését"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Nem sikerült listázni a portokat"
++msgstr "Nem listázható addr"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -720,9 +717,8 @@ msgid "Could not delete interface %s"
+ msgstr "Nem sikerült törölni ezt a csatolót: %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Nem sikerült törölni ezt a csatolót: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -730,16 +726,16 @@ msgstr "Nem sikerült listázni a csatolókat"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+-msgstr ""
++msgstr "SELinux Interfész"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+-msgstr ""
++msgstr "Környezet"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Már van definiálva fájlkontextus ehhez: %s"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -747,9 +743,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Nem létezik %s nevű Linux-felhasználó"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -768,7 +764,7 @@ msgstr "Nem sikerült beállítani az MLS-mezÅ‘ket %s fájlkontextusban"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+-msgstr ""
++msgstr "Érvénytelen fájl specifikáció"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -829,14 +825,13 @@ msgid "Could not modify file context for %s"
+ msgstr "Nem sikerült módosítani a fájlkontextust ehhez: %s"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Nem sikerült listázni a fájlkontextusokat"
++msgstr "A fájl kontextus listázása nem sikerült"
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Nem sikerült törölni %s fájlkontextusát"
++msgstr "Nem sikerült a(z) %s fájl kontextus törlése"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -858,23 +853,27 @@ msgstr "Nem sikerült listázni a helyi fájlkontextusokat"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+-msgstr ""
++msgstr "SELinux fkörnyezet"
+ #: ../semanage/seobject.py:1936
+ msgid "type"
+-msgstr ""
++msgstr "Típus"
+ #: ../semanage/seobject.py:1949
+ msgid ""
+ "\n"
+ "SELinux Distribution fcontext Equivalence \n"
+ msgstr ""
++"\n"
++"SELinux Distribution fcontext Equivalence \n"
+ #: ../semanage/seobject.py:1954
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+ msgstr ""
++"\n"
++"SELinux Local fcontext Equivalence \n"
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -893,14 +892,14 @@ msgid "Could not query file context %s"
+ msgstr "Nem sikerült lekérdezni a fájlkontextust ehhez: %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Meg kell adni egy elÅ‘tagot"
++msgstr "A következÅ‘ Ã©rtékek egyikét kell megadnia: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Nem sikerült törölni a(z) \"%s\" logikai Ã©rtéket"
++msgstr "Nem lehet beállítani az aktív logikai Ã©rtéket %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -910,7 +909,7 @@ msgstr "Nem sikerült módosítani a(z) \"%s\" logikai Ã©rtéket"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Hibás formátum %s: Rekord %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -928,31 +927,32 @@ msgstr "Nem sikerült listázni a logikai Ã©rtékeket"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "ismeretlen"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "ki"
+ #: ../semanage/seobject.py:2117
+ msgid "on"
+-msgstr ""
++msgstr "be"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr ""
++msgstr "SELinux Logikai Ã©rték"
+ #: ../semanage/seobject.py:2131
+ msgid "State"
+-msgstr ""
++msgstr "Ãllapot"
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+-msgstr ""
++msgstr "Alapértelmezett"
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "Leírás"
+ #: ../newrole/newrole.c:201
+ #, c-format
+@@ -962,12 +962,12 @@ msgstr "nem sikerült beállítani ezt: PAM_TTY\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
++msgstr "newrole: szolgáltatásnév beállító hasító tábla túlcsordulás\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
++msgstr "newrole: %s: hiba a(z) %lu. sorban\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+@@ -1077,6 +1077,7 @@ msgstr "Hiba: több szint lett megadva\n"
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+ msgstr ""
++"Hiba: nem változtathat szinteket nem biztonságos terminálon keresztül \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+@@ -1144,14 +1145,14 @@ msgid "failed to get old_context.\n"
+ msgstr "Nem sikerült meghatározni a régi kontextust.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Hiba: nem sikerült lekérdezni a tty-információkat.\n"
++msgstr "Figyelem! Nem sikerült lekérdezni a tty információt.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr ""
++msgstr "hiba a PAM szolgáltatás beállításakor.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+@@ -1193,19 +1194,19 @@ msgid "failed to exec shell\n"
+ msgstr "nem sikerült végrehajtani a parancsértelmezÅ‘t\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "használat: %s [-bq]\n"
++msgstr "Használat: %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s: A házirend már be van töltve Ã©s kezdeti betöltés igényelt\n"
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s: szabályzat nem betölthetÅ‘: %s\n"
++msgstr "%s: A házirend nem tölthetÅ‘ be Ã©s kikényszerítÅ‘ mód igényelt: %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1291,181 +1292,2111 @@ msgstr "chcat -- -Bizalmas /docs/üzletiterv.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +Bizalmas felhasználó1"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Hiba az opciókban: %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Nem lehet megnyitni ezt: %s: a fordítások nem támogatottak a nem MLS-es "
+-#~ "gépeken"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr "Bináris"
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr "összes"
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr "Egyéni"
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr "Fájl cimke"
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++"Fájl\n"
++"Specifikáció"
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++"Selinux\n"
++"Fájl típusa"
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++"Fájl\n"
++"Típus"
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr "Hozzárendelt felhasználó"
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "A fordítások nem tartalmazhatnak szóközöket - \"%s\" "
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++"Bejelentkezési\n"
++"Név"
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++"SELinux\n"
++"Felhasználó"
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++"MLS/\n"
++"MCS Range"
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr "'%s' bejelentkezés szükséges"
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr "Szabályzat modul"
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr "Modul neve"
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr "Auditálás kikapcsolása"
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr "Audit engedélyezése"
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr "Szabályzat modul betöltése"
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr "Polgen"
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr "Red Hat 2007"
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr "GPL"
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr "Zoltan Hoppar"
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr "SELinux SzabályzatkészítÅ‘ Eszköz"
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr "<b>Alkalmazások</b>"
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++"Szabványos Init Daemon-ok azok a szolgáltatások amelyeket rendszerindításkor "
++"init szkriptekkel indítanak.  Rendszerint egy szkriptet igényel az /etc/rc.d/"
++"init.d mappában"
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr "Szabványos init daemon"
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr "DBUS rendszer daemon"
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr "Internet Services Daemon azok a daemonok amelyeket az xinetd indít el"
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Érvénytelen szint: \"%s\" "
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr "..."
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s már definiálva van a fordításokban"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s nincs definiálva a fordításokban"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Már van definiálva bejelentkezési hozzárendelés ehhez: %s"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#, fuzzy
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "Nem sikerült felvenni \"%s\" SELinux-felhasználót"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "Már van definiálva \"%s\" nevű SELinux-felhasználó"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Meg kell adni portot"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "A(z) %s/%s port már definiálva van"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "%s csatoló már definiálva van"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Hiba a képességek inicializálásakor; megszakítás.\n"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Hiba a képességek beállításakor; megszakítás.\n"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Hiba a KEEPCAPS beállításakor; megszakítás.\n"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Hiba a képességek eldobásakor; megszakítás.\n"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Hiba a SETUID képesség eldobásakor; megszakítás.\n"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Hiba a képességek felszabadításakor\n"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "a fordítások nem támogatottak a nem MLS-es gépeken"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr "Meg kell adni SELinux-típust"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Meg kell adni SELinux-típust"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Hiba az auditálási Ã¼zenet küldésekor.\n"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Meg kell adni egy szerepet"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name"
+-#~ msgstr "Meg kell adni egy szerepet"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Meg kell adni egy szerepet"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr "<b>TCP Portok</b>"
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Típuskényszerítési fájl készítése: %s.te"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "%s csatoló nincs definiálva"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#, fuzzy
+-#~ msgid "File Contexts file"
+-#~ msgstr "Nincs definiálva fájlkontextus ehhez: %s"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "\"%s\" SELinux-felhasználó nincs definiálva"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Compatibility"
+-#~ msgstr "Szabályzat elkészítése"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SASL authentication server"
+-#~ msgstr "%s azonosítása.\n"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Type"
+-#~ msgstr "Meg kell adni SELinux-típust"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Nem sikerült felvenni \"%s\" SELinux-felhasználót"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Nem sikerült módosítani a(z) \"%s\" SELinux-felhasználót"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Nem sikerült törölni a(z) \"%s\" SELinux-felhasználót"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Nem sikerült módosítani a(z) \"%s\" SELinux-felhasználót"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Load policy module"
+-#~ msgstr "Nem lehet olvasni a szabályzat-tárolót."
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "Meg kell adni SELinux-típust"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Meg kell adni egy Ã©rtéket"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Meg kell adni legalább 2 argumentumot"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "%s not defined"
+-#~ msgstr "%s nincs definiálva"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "\"%s\" nem Ã©rvényes \"%s\" objektumokhoz\n"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "a tartomány nem támogatott a nem MLS-es gépeken"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Érvénytelen Ã©rték: %s"
+-
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Az Ãºjonnan elkészített szabályzatcsomagnak a kernelbe való\n"
+-#~ "betöltéséhez végre kell hajtania a következÅ‘ parancsot:\n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Hiba az opciókban: %s "
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr "Szabály"
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr "Ki kell választania a felhasználót"
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/hy.po b/policycoreutils/po/hy.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/hy.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/id.po b/policycoreutils/po/id.po
+new file mode 100644
+index 0000000..ed854b6
+--- /dev/null
++++ b/policycoreutils/po/id.po
+@@ -0,0 +1,3366 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++msgid ""
++msgstr ""
++"Project-Id-Version: Policycoreutils\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-03-30 18:14+0000\n"
++"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
++"Language-Team: Indonesian <trans-id@lists.fedoraproject.org>\n"
++"Language: id\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=1; plural=0\n"
++
++#: ../run_init/run_init.c:67
++msgid ""
++"USAGE: run_init <script> <args ...>\n"
++"  where: <script> is the name of the init script to run,\n"
++"         <args ...> are the arguments to that script."
++msgstr ""
++
++#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
++#, c-format
++msgid "failed to initialize PAM\n"
++msgstr ""
++
++#: ../run_init/run_init.c:139
++#, c-format
++msgid "failed to get account information\n"
++msgstr ""
++
++#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
++msgid "Password:"
++msgstr ""
++
++#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
++#, c-format
++msgid "Cannot find your entry in the shadow passwd file.\n"
++msgstr ""
++
++#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
++#, c-format
++msgid "getpass cannot open /dev/tty\n"
++msgstr ""
++
++#: ../run_init/run_init.c:275
++#, c-format
++msgid "run_init: incorrect password for %s\n"
++msgstr ""
++
++#: ../run_init/run_init.c:309
++#, c-format
++msgid "Could not open file %s\n"
++msgstr ""
++
++#: ../run_init/run_init.c:336
++#, c-format
++msgid "No context in file %s\n"
++msgstr ""
++
++#: ../run_init/run_init.c:361
++#, c-format
++msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
++msgstr ""
++
++#: ../run_init/run_init.c:380
++#, c-format
++msgid "authentication failed.\n"
++msgstr ""
++
++#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
++#, c-format
++msgid "Could not set exec context to %s.\n"
++msgstr ""
++
++#: ../audit2allow/audit2allow:230
++msgid "******************** IMPORTANT ***********************\n"
++msgstr ""
++
++#: ../audit2allow/audit2allow:231
++msgid "To make this policy package active, execute:"
++msgstr ""
++
++#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
++msgid "global"
++msgstr ""
++
++#: ../semanage/seobject.py:222
++msgid "Could not create semanage handle"
++msgstr ""
++
++#: ../semanage/seobject.py:230
++msgid "SELinux policy is not managed or store cannot be accessed."
++msgstr ""
++
++#: ../semanage/seobject.py:235
++msgid "Cannot read policy store."
++msgstr ""
++
++#: ../semanage/seobject.py:240
++msgid "Could not establish semanage connection"
++msgstr ""
++
++#: ../semanage/seobject.py:245
++msgid "Could not test MLS enabled status"
++msgstr ""
++
++#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
++msgid "Not yet implemented"
++msgstr ""
++
++#: ../semanage/seobject.py:255
++msgid "Semanage transaction already in progress"
++msgstr ""
++
++#: ../semanage/seobject.py:264
++msgid "Could not start semanage transaction"
++msgstr ""
++
++#: ../semanage/seobject.py:274
++msgid "Could not commit semanage transaction"
++msgstr ""
++
++#: ../semanage/seobject.py:279
++msgid "Semanage transaction not in progress"
++msgstr ""
++
++#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
++msgid "Could not list SELinux modules"
++msgstr ""
++
++#: ../semanage/seobject.py:304
++msgid "Modules Name"
++msgstr ""
++
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
++msgid "Version"
++msgstr ""
++
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
++msgid "Disabled"
++msgstr ""
++
++#: ../semanage/seobject.py:322
++#, python-format
++msgid "Could not disable module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:333
++#, python-format
++msgid "Could not enable module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:348
++#, python-format
++msgid "Could not remove module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:358
++msgid "dontaudit requires either 'on' or 'off'"
++msgstr ""
++
++#: ../semanage/seobject.py:387
++msgid "Builtin Permissive Types"
++msgstr ""
++
++#: ../semanage/seobject.py:397
++msgid "Customized Permissive Types"
++msgstr ""
++
++#: ../semanage/seobject.py:438
++#, python-format
++msgid "Could not set permissive domain %s (module installation failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:444
++#, python-format
++msgid "Could not remove permissive domain %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
++#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
++#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
++#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
++#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
++#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
++#: ../semanage/seobject.py:2037
++#, python-format
++msgid "Could not create a key for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
++#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
++#, python-format
++msgid "Could not check if login mapping for %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:492
++#, python-format
++msgid "Linux Group %s does not exist"
++msgstr ""
++
++#: ../semanage/seobject.py:497
++#, python-format
++msgid "Linux User %s does not exist"
++msgstr ""
++
++#: ../semanage/seobject.py:501
++#, python-format
++msgid "Could not create login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
++#, python-format
++msgid "Could not set name for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
++#, python-format
++msgid "Could not set MLS range for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:514
++#, python-format
++msgid "Could not set SELinux user for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:518
++#, python-format
++msgid "Could not add login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:536
++msgid "Requires seuser or serange"
++msgstr ""
++
++#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
++#, python-format
++msgid "Login mapping for %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:563
++#, python-format
++msgid "Could not query seuser for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:577
++#, python-format
++msgid "Could not modify login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:611
++#, python-format
++msgid "Login mapping for %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:615
++#, python-format
++msgid "Could not delete login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
++#: ../semanage/seobject.py:893
++msgid "Could not list login mappings"
++msgstr ""
++
++#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
++msgid "Login Name"
++msgstr ""
++
++#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
++msgid "SELinux User"
++msgstr ""
++
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
++msgid "MLS/MCS Range"
++msgstr ""
++
++#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
++#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
++#: ../semanage/seobject.py:860
++#, python-format
++msgid "Could not check if SELinux user %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
++#: ../semanage/seobject.py:866
++#, python-format
++msgid "Could not query user for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:722
++#, python-format
++msgid "You must add at least one role for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:737
++#, python-format
++msgid "Could not create SELinux user for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:746
++#, python-format
++msgid "Could not add role %s for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:755
++#, python-format
++msgid "Could not set MLS level for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:758
++#, python-format
++msgid "Could not add prefix %s for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:761
++#, python-format
++msgid "Could not extract key for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:765
++#, python-format
++msgid "Could not add SELinux user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:787
++msgid "Requires prefix, roles, level or range"
++msgstr ""
++
++#: ../semanage/seobject.py:789
++msgid "Requires prefix or roles"
++msgstr ""
++
++#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
++#, python-format
++msgid "SELinux user %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:828
++#, python-format
++msgid "Could not modify SELinux user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:862
++#, python-format
++msgid "SELinux user %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:873
++#, python-format
++msgid "Could not delete SELinux user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:911
++msgid "Could not list SELinux users"
++msgstr ""
++
++#: ../semanage/seobject.py:917
++#, python-format
++msgid "Could not list roles for user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:942
++msgid "Labeling"
++msgstr ""
++
++#: ../semanage/seobject.py:942
++msgid "MLS/"
++msgstr ""
++
++#: ../semanage/seobject.py:943
++msgid "Prefix"
++msgstr ""
++
++#: ../semanage/seobject.py:943
++msgid "MCS Level"
++msgstr ""
++
++#: ../semanage/seobject.py:943
++msgid "MCS Range"
++msgstr ""
++
++#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
++msgid "SELinux Roles"
++msgstr ""
++
++#: ../semanage/seobject.py:963
++msgid "Protocol udp or tcp is required"
++msgstr ""
++
++#: ../semanage/seobject.py:965
++msgid "Port is required"
++msgstr ""
++
++#: ../semanage/seobject.py:975
++msgid "Invalid Port"
++msgstr ""
++
++#: ../semanage/seobject.py:979
++#, python-format
++msgid "Could not create a key for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:990
++msgid "Type is required"
++msgstr ""
++
++#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
++#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
++#, python-format
++msgid "Could not check if port %s/%s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:998
++#, python-format
++msgid "Port %s/%s already defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1002
++#, python-format
++msgid "Could not create port for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1008
++#, python-format
++msgid "Could not create context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1012
++#, python-format
++msgid "Could not set user in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1016
++#, python-format
++msgid "Could not set role in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1020
++#, python-format
++msgid "Could not set type in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1025
++#, python-format
++msgid "Could not set mls fields in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1029
++#, python-format
++msgid "Could not set port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1033
++#, python-format
++msgid "Could not add port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
++#: ../semanage/seobject.py:1508
++msgid "Requires setype or serange"
++msgstr ""
++
++#: ../semanage/seobject.py:1049
++msgid "Requires setype"
++msgstr ""
++
++#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
++#, python-format
++msgid "Port %s/%s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1061
++#, python-format
++msgid "Could not query port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1072
++#, python-format
++msgid "Could not modify port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1085
++msgid "Could not list the ports"
++msgstr ""
++
++#: ../semanage/seobject.py:1101
++#, python-format
++msgid "Could not delete the port %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1118
++#, python-format
++msgid "Port %s/%s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1122
++#, python-format
++msgid "Could not delete port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
++msgid "Could not list ports"
++msgstr ""
++
++#: ../semanage/seobject.py:1199
++msgid "SELinux Port Type"
++msgstr ""
++
++#: ../semanage/seobject.py:1199
++msgid "Proto"
++msgstr ""
++
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
++msgid "Port Number"
++msgstr ""
++
++#: ../semanage/seobject.py:1218
++msgid "Node Address is required"
++msgstr ""
++
++#: ../semanage/seobject.py:1233
++msgid "Unknown or missing protocol"
++msgstr ""
++
++#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
++#: ../semanage/seobject.py:1724
++msgid "SELinux Type is required"
++msgstr ""
++
++#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
++#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
++#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
++#: ../semanage/seobject.py:1728
++#, python-format
++msgid "Could not create key for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
++#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
++#, python-format
++msgid "Could not check if addr %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1262
++#, python-format
++msgid "Could not create addr for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
++#: ../semanage/seobject.py:1686
++#, python-format
++msgid "Could not create context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1272
++#, python-format
++msgid "Could not set mask for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1276
++#, python-format
++msgid "Could not set user in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1280
++#, python-format
++msgid "Could not set role in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1284
++#, python-format
++msgid "Could not set type in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1289
++#, python-format
++msgid "Could not set mls fields in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1293
++#, python-format
++msgid "Could not set addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1297
++#, python-format
++msgid "Could not add addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
++#, python-format
++msgid "Addr %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1326
++#, python-format
++msgid "Could not query addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1336
++#, python-format
++msgid "Could not modify addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1364
++#, python-format
++msgid "Addr %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1368
++#, python-format
++msgid "Could not delete addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1380
++msgid "Could not deleteall node mappings"
++msgstr ""
++
++#: ../semanage/seobject.py:1394
++msgid "Could not list addrs"
++msgstr ""
++
++#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
++#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
++#, python-format
++msgid "Could not check if interface %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1461
++#, python-format
++msgid "Could not create interface for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1470
++#, python-format
++msgid "Could not set user in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1474
++#, python-format
++msgid "Could not set role in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1478
++#, python-format
++msgid "Could not set type in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1483
++#, python-format
++msgid "Could not set mls fields in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1487
++#, python-format
++msgid "Could not set interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1491
++#, python-format
++msgid "Could not set message context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1495
++#, python-format
++msgid "Could not add interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
++#, python-format
++msgid "Interface %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1522
++#, python-format
++msgid "Could not query interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1533
++#, python-format
++msgid "Could not modify interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1558
++#, python-format
++msgid "Interface %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1562
++#, python-format
++msgid "Could not delete interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1574
++msgid "Could not delete all interface  mappings"
++msgstr ""
++
++#: ../semanage/seobject.py:1588
++msgid "Could not list interfaces"
++msgstr ""
++
++#: ../semanage/seobject.py:1613
++msgid "SELinux Interface"
++msgstr ""
++
++#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
++msgid "Context"
++msgstr ""
++
++#: ../semanage/seobject.py:1663
++#, python-format
++msgid "Equivalence class for %s already exists"
++msgstr ""
++
++#: ../semanage/seobject.py:1669
++#, python-format
++msgid "File spec %s conflicts with equivalency rule '%s %s'"
++msgstr ""
++
++#: ../semanage/seobject.py:1678
++#, python-format
++msgid "Equivalence class for %s does not exists"
++msgstr ""
++
++#: ../semanage/seobject.py:1692
++#, python-format
++msgid "Could not set user in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1696
++#, python-format
++msgid "Could not set role in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
++#, python-format
++msgid "Could not set mls fields in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1707
++msgid "Invalid file specification"
++msgstr ""
++
++#: ../semanage/seobject.py:1709
++msgid "File specification can not include spaces"
++msgstr ""
++
++#: ../semanage/seobject.py:1714
++#, python-format
++msgid ""
++"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
++msgstr ""
++
++#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
++#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
++#: ../semanage/seobject.py:1876
++#, python-format
++msgid "Could not check if file context for %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1745
++#, python-format
++msgid "Could not create file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1753
++#, python-format
++msgid "Could not set type in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
++#: ../semanage/seobject.py:1822
++#, python-format
++msgid "Could not set file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1767
++#, python-format
++msgid "Could not add file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1781
++msgid "Requires setype, serange or seuser"
++msgstr ""
++
++#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
++#, python-format
++msgid "File context for %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1800
++#, python-format
++msgid "Could not query file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1826
++#, python-format
++msgid "Could not modify file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1839
++msgid "Could not list the file contexts"
++msgstr ""
++
++#: ../semanage/seobject.py:1853
++#, python-format
++msgid "Could not delete the file context %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1878
++#, python-format
++msgid "File context for %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1884
++#, python-format
++msgid "Could not delete file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1899
++msgid "Could not list file contexts"
++msgstr ""
++
++#: ../semanage/seobject.py:1903
++msgid "Could not list local file contexts"
++msgstr ""
++
++#: ../semanage/seobject.py:1936
++msgid "SELinux fcontext"
++msgstr ""
++
++#: ../semanage/seobject.py:1936
++msgid "type"
++msgstr ""
++
++#: ../semanage/seobject.py:1949
++msgid ""
++"\n"
++"SELinux Distribution fcontext Equivalence \n"
++msgstr ""
++
++#: ../semanage/seobject.py:1954
++msgid ""
++"\n"
++"SELinux Local fcontext Equivalence \n"
++msgstr ""
++
++#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
++#: ../semanage/seobject.py:2046
++#, python-format
++msgid "Could not check if boolean %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
++#, python-format
++msgid "Boolean %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1994
++#, python-format
++msgid "Could not query file context %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1999
++#, python-format
++msgid "You must specify one of the following values: %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2004
++#, python-format
++msgid "Could not set active value of boolean %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2007
++#, python-format
++msgid "Could not modify boolean %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2025
++#, python-format
++msgid "Bad format %s: Record %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2048
++#, python-format
++msgid "Boolean %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:2052
++#, python-format
++msgid "Could not delete boolean %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
++msgid "Could not list booleans"
++msgstr ""
++
++#: ../semanage/seobject.py:2104
++msgid "unknown"
++msgstr ""
++
++#: ../semanage/seobject.py:2117
++msgid "off"
++msgstr ""
++
++#: ../semanage/seobject.py:2117
++msgid "on"
++msgstr ""
++
++#: ../semanage/seobject.py:2131
++msgid "SELinux boolean"
++msgstr ""
++
++#: ../semanage/seobject.py:2131
++msgid "State"
++msgstr ""
++
++#: ../semanage/seobject.py:2131
++msgid "Default"
++msgstr ""
++
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
++msgid "Description"
++msgstr ""
++
++#: ../newrole/newrole.c:201
++#, c-format
++msgid "failed to set PAM_TTY\n"
++msgstr ""
++
++#: ../newrole/newrole.c:290
++#, c-format
++msgid "newrole: service name configuration hashtable overflow\n"
++msgstr ""
++
++#: ../newrole/newrole.c:300
++#, c-format
++msgid "newrole:  %s:  error on line %lu.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:439
++#, c-format
++msgid "cannot find valid entry in the passwd file.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:450
++#, c-format
++msgid "Out of memory!\n"
++msgstr ""
++
++#: ../newrole/newrole.c:455
++#, c-format
++msgid "Error!  Shell is not valid.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:512
++#, c-format
++msgid "Unable to clear environment\n"
++msgstr ""
++
++#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
++#, c-format
++msgid "Error changing uid, aborting.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:612
++#, c-format
++msgid "Error resetting KEEPCAPS, aborting\n"
++msgstr ""
++
++#: ../newrole/newrole.c:635
++#, c-format
++msgid "Error connecting to audit system.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:641
++#, c-format
++msgid "Error allocating memory.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:648
++#, c-format
++msgid "Error sending audit message.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
++#, c-format
++msgid "Could not determine enforcing mode.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:699
++#, c-format
++msgid "Error!  Could not open %s.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:705
++#, c-format
++msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:715
++#, c-format
++msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:725
++#, c-format
++msgid "%s!  Could not set new context for %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:772
++#, c-format
++msgid "%s changed labels.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:778
++#, c-format
++msgid "Warning! Could not restore context for %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:835
++#, c-format
++msgid "Error: multiple roles specified\n"
++msgstr ""
++
++#: ../newrole/newrole.c:843
++#, c-format
++msgid "Error: multiple types specified\n"
++msgstr ""
++
++#: ../newrole/newrole.c:850
++#, c-format
++msgid "Sorry, -l may be used with SELinux MLS support.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:855
++#, c-format
++msgid "Error: multiple levels specified\n"
++msgstr ""
++
++#: ../newrole/newrole.c:865
++#, c-format
++msgid "Error: you are not allowed to change levels on a non secure terminal \n"
++msgstr ""
++
++#: ../newrole/newrole.c:891
++#, c-format
++msgid "Couldn't get default type.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:901
++#, c-format
++msgid "failed to get new context.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:908
++#, c-format
++msgid "failed to set new role %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:915
++#, c-format
++msgid "failed to set new type %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:925
++#, c-format
++msgid "failed to build new range with level %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:930
++#, c-format
++msgid "failed to set new range %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:938
++#, c-format
++msgid "failed to convert new context to string\n"
++msgstr ""
++
++#: ../newrole/newrole.c:943
++#, c-format
++msgid "%s is not a valid context\n"
++msgstr ""
++
++#: ../newrole/newrole.c:950
++#, c-format
++msgid "Unable to allocate memory for new_context"
++msgstr ""
++
++#: ../newrole/newrole.c:976
++#, c-format
++msgid "Unable to obtain empty signal set\n"
++msgstr ""
++
++#: ../newrole/newrole.c:984
++#, c-format
++msgid "Unable to set SIGHUP handler\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1053
++#, c-format
++msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1070
++#, c-format
++msgid "failed to get old_context.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1077
++#, c-format
++msgid "Warning!  Could not retrieve tty information.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1098
++#, c-format
++msgid "error on reading PAM service configuration.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1133
++#, c-format
++msgid "newrole: incorrect password for %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1160
++#, c-format
++msgid "newrole: failure forking: %s"
++msgstr ""
++
++#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
++#, c-format
++msgid "Unable to restore tty label...\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
++#, c-format
++msgid "Failed to close tty properly\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1224
++#, c-format
++msgid "Could not close descriptors.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1251
++#, c-format
++msgid "Error allocating shell's argv0.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1287
++#, c-format
++msgid "Unable to restore the environment, aborting\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1298
++msgid "failed to exec shell\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:22
++#, c-format
++msgid "usage:  %s [-qi]\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:71
++#, c-format
++msgid "%s:  Policy is already loaded and initial load requested\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:80
++#, c-format
++msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:90
++#, c-format
++msgid "%s:  Can't load policy:  %s\n"
++msgstr ""
++
++#: ../scripts/chcat:92 ../scripts/chcat:169
++msgid "Requires at least one category"
++msgstr ""
++
++#: ../scripts/chcat:106 ../scripts/chcat:183
++#, c-format
++msgid "Can not modify sensitivity levels using '+' on %s"
++msgstr ""
++
++#: ../scripts/chcat:110
++#, c-format
++msgid "%s is already in %s"
++msgstr ""
++
++#: ../scripts/chcat:188 ../scripts/chcat:198
++#, c-format
++msgid "%s is not in %s"
++msgstr ""
++
++#: ../scripts/chcat:267 ../scripts/chcat:272
++msgid "Can not combine +/- with other types of categories"
++msgstr ""
++
++#: ../scripts/chcat:319
++msgid "Can not have multiple sensitivities"
++msgstr ""
++
++#: ../scripts/chcat:325
++#, c-format
++msgid "Usage %s CATEGORY File ..."
++msgstr ""
++
++#: ../scripts/chcat:326
++#, c-format
++msgid "Usage %s -l CATEGORY user ..."
++msgstr ""
++
++#: ../scripts/chcat:327
++#, c-format
++msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
++msgstr ""
++
++#: ../scripts/chcat:328
++#, c-format
++msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
++msgstr ""
++
++#: ../scripts/chcat:329
++#, c-format
++msgid "Usage %s -d File ..."
++msgstr ""
++
++#: ../scripts/chcat:330
++#, c-format
++msgid "Usage %s -l -d user ..."
++msgstr ""
++
++#: ../scripts/chcat:331
++#, c-format
++msgid "Usage %s -L"
++msgstr ""
++
++#: ../scripts/chcat:332
++#, c-format
++msgid "Usage %s -L -l user"
++msgstr ""
++
++#: ../scripts/chcat:333
++msgid "Use -- to end option list.  For example"
++msgstr ""
++
++#: ../scripts/chcat:334
++msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
++msgstr ""
++
++#: ../scripts/chcat:335
++msgid "chcat -l +CompanyConfidential juser"
++msgstr ""
++
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
++msgid "Options Error %s "
++msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/is.po b/policycoreutils/po/is.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/is.po
++++ b/policycoreutils/po/is.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/it.po b/policycoreutils/po/it.po
+index 5e8f8e1..cd444fc 100644
+--- a/policycoreutils/po/it.po
++++ b/policycoreutils/po/it.po
+@@ -1,21 +1,23 @@
+-# translation of it.po to
+-# This file is distributed under the same license as the policycoreutils package.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
+-# Francesco Tombolini <tombo@adamantio.net>, 2006, 2007, 2008.
++# Translators:
++# Francesco Tombolini <tombo@adamantio.net>, 2006, 2007, 2008, 2009.
++# Silvio Pierro <perplesso82@gmail.com>, 2008.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: it\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-07-13 01:02+0200\n"
+-"Last-Translator: Francesco Tombolini <tombo@adamantio.net>\n"
+-"Language-Team: Italian <fedora-trans-it@redhat.com>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Italian <trans-it@lists.fedoraproject.org>\n"
+ "Language: it\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KAider 0.1\n"
+-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -111,9 +113,8 @@ msgid "Could not establish semanage connection"
+ msgstr "Impossibile stabilire connessione semanage"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Impossibile impostare range MLS per %s"
++msgstr "Impossibile verificare lo stato MLS abilitato"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -121,36 +122,33 @@ msgstr "Non ancora implementato"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Una transazione semanage Ã¨ già in esecuzione"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "Impossibile avviare transazione semanage"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Impossibile avviare transazione semanage"
++msgstr "Impossibile eseguire la transazione semanage"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Transazione semanage non in esecuzione"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Impossibile elencare gli utenti SELinux"
++msgstr "Impossibile elencare i moduli SELinux"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Nome della policy"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Versione"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "Disabilitato"
+@@ -160,9 +158,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Impossibile aggiungere il ruolo %s per %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -174,24 +172,24 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Tipi permissivi"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Tipi permissivi"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
++"Impossibile impostare il dominio permissive %s (installazione del modulo "
++"fallita)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "Impossibile rimuovere il dominio permissive %s (rimozione fallita)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -211,9 +209,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "Impossibile controllare se Ã¨ definito il login mapping per %s"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "L'utente linux %s non esiste"
++msgstr "Il gruppo linux %s non esiste"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -281,15 +279,20 @@ msgid "Could not list login mappings"
+ msgstr "Impossibile elencare i login mappings"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "Nome di registrazione"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "Utente di SELinux"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "Gamma MLS/MCS"
+@@ -307,9 +310,9 @@ msgid "Could not query user for %s"
+ msgstr "Impossibile interrogare l'utente per %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Impossibile aggiungere il contesto del file per %s"
++msgstr "Si deve aggiungere almeno un ruolo per %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -399,6 +402,7 @@ msgid "MCS Range"
+ msgstr "Gamma MCS"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "Ruoli SELinux"
+@@ -411,9 +415,8 @@ msgid "Port is required"
+ msgstr "E' richiesta la porta"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Prefisso non valido %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -530,18 +533,17 @@ msgstr "Tipo di porta SELinux"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "Numero porta"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "E' richiesta la porta"
++msgstr "L'indirizzo del nodo Ã¨ necessario"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Protocollo mancante o sconosciuto"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -558,14 +560,14 @@ msgstr "Impossibile creare la chiave per %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Impossibile controllare se la porta %s/%s Ã¨ definita"
++msgstr "Impossibile controllare se la porta %s Ã¨ definita"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Impossibile creare una chiave per %s"
++msgstr "Impossibile creare un indirizzo per %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -574,74 +576,72 @@ msgid "Could not create context for %s"
+ msgstr "Impossibile creare il contesto per %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Impossibile impostare nome per %s"
++msgstr "Impossibile impostare una maschera per %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Impossibile impostare l'utente nel contesto del file per %s"
++msgstr "Impossibile impostare l'utente nel contesto indirizzo per %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Impossibile impostare il ruolo nel contesto del file per %s"
++msgstr "Impossibile impostare il ruolo nel contesto indirizzo per %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Impossibile impostare il tipo nel contesto del file per %s"
++msgstr "Impossibile impostare il tipo nel contesto indirizzo per %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Impossibile impostare i campi mls nel contesto del file per %s"
++msgstr "Impossibile impostare i campi mls nel contesto indirizzo per %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Impossibile impostare il contesto del file per %s"
++msgstr "Impossibile impostare il contesto indirizzo per %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Impossibile aggiungere la porta %s/%s"
++msgstr "Impossibile aggiungere l'indirizzo %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "La porta %s/%s non Ã¨ definita"
++msgstr "Indirizzo %s non definito"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Impossibile interrogare la porta %s/%s"
++msgstr "Impossibile interrogare l'indirizzo %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Impossibile modificare la porta %s/%s"
++msgstr "Impossibile modificare l'indirizzo %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "La porta %s/%s Ã¨ definita nella policy, non può essere eliminata"
++msgstr "L'indirizzo %s Ã¨ definito nella policy, non può essere eliminato"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Impossibile eliminare %s"
++msgstr "Impossibile eliminare l'indirizzo %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Impossibile eliminare il login mapping per %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Impossibile elencare le porte"
++msgstr "Impossibile elencare gli indirizzi"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -715,9 +715,8 @@ msgid "Could not delete interface %s"
+ msgstr "Impossibile eliminare l'interfaccia %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Impossibile eliminare l'interfaccia %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -732,9 +731,9 @@ msgid "Context"
+ msgstr "Contesto"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Contesto del file per %s già definito"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -742,9 +741,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "L'utente linux %s non esiste"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -865,11 +864,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "fcontext di SELinux"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -888,9 +886,9 @@ msgid "Could not query file context %s"
+ msgstr "Impossibile interrogare il contesto del file %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "È necessario specificare un valore"
++msgstr "E' necessario specificare uno dei seguenti valori: %s"
+ #: ../semanage/seobject.py:2004
+ #, python-format
+@@ -905,7 +903,7 @@ msgstr "Impossibile modificare la booleana %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Formato non valido %s: Record %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -938,15 +936,15 @@ msgid "SELinux boolean"
+ msgstr "Booleana di SELinux"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "Stato"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "Descrizione"
+@@ -1292,1791 +1290,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Errore opzioni %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Impossibile aprire %s: traduzioni non supportate su macchine non-MLS: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "Livello"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "Traduzione"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Le traduzioni non possono contenere spazi '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Livello non valido '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s già definito nelle traduzioni"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s non definito nelle traduzioni"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Il login mapping per %s Ã¨ già definito"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "aggiungi mappatura dell'utente di SELinux"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "L'utente SELinux %s Ã¨ già definito"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "E' richiesta la porta"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Porta %s/%s già definita"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Interfaccia %s già definita"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Errore inizializzazione capacità, abbandono.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Errore impostazione capacità, abbandono.\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Errore impostazione KEEPCAPS, abbandono\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Errore rilascio capacità, abbandono\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Errore rilascio capacità SETUID, abbandono\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Errore nel liberare caps\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "traduzioni non supportate su macchine non-MLS"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "Boolean"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "Tutte/i"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "Personalizzato"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "File Labeling"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "Specifiche\n"
+-#~ "del file"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Tipo di file\n"
+-#~ "Selinux"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Tipo\n"
+-#~ "di file"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "Mappatura utente"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "Nome\n"
+-#~ "di login"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "Utente"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "Gamma MCS/\n"
+-#~ "MLS"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Il login '%s' Ã¨ necessario"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "Modulo della policy"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "Disabilita audit"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "Abilita audit"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "Carica modulo della policy"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "crediti-traduttore"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "Tool di generazione della policy di SELinux"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "Questo tool può essere usato per generare una struttura per la policy, "
+-#~ "per confinare le applicazioni o gli utenti che utilizzano SELinux.   \n"
+-#~ "\n"
+-#~ "Il tool genera:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - usato per compilare ed installare la policy. "
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "Selezionare il tipo di ruolo utente/applicazione da confinare"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Applicazioni</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "Il demone init standard Ã¨ un demone avviato al momento dell'avvio tramite "
+-#~ "gli script init.  Generalmente richiede uno script in /etc/init.d"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "Demone init standard"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "Internet Services Daemon sono demoni avviati da xinetd"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Internet Services Daemon (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "Script CGI Web Applications/Script (CGI) vengono avviati dal server web "
+-#~ "(apache)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Web Application/Script (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "Una User Application rappresenta qualsiasi applicazione che desiderate "
+-#~ "confinare avviata da un utente"
+-
+-#~ msgid "User Application"
+-#~ msgstr "User Application"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Utenti di registrazione</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "Modifica una voce esistente dell'utente di registrazione."
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "Utenti esistenti"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "Questo utente eseguirà la registrazione solo tramite un terminale o un "
+-#~ "login remoto.  Per default il suddetto utente non avrà alcun setuid, no "
+-#~ "networking, no su e no sudo."
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "Ruolo utente del terminale minimo"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "Questo utente può registrarsi ad una macchina tramite X o terminale.  Per "
+-#~ "default il suddetto utente non avrà alcun setuid, nessun networking, no "
+-#~ "sudo, e no su"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "Ruolo utente X Windows minimo"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "Utente con networking conpleto, nessuna applicazione setuid senza "
+-#~ "transizione, no sudo e no su."
+-
+-#~ msgid "User Role"
+-#~ msgstr "Ruolo utente"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "Utente con un network completo, nessuna applicazione setuid senza "
+-#~ "transizione, no su, può eseguire il sudo nei ruoli di amministrazione root"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "Ruolo Utente amministratore"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Utenti root</b>"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "Selezionare il Ruolo utente amministratore root, se l'utente verrà "
+-#~ "impiegato per amministrare la macchina operando come utente root.  Il "
+-#~ "suddetto utente non sarà in grado di eseguire il login diretto sul "
+-#~ "sistema."
+-
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Ruolo utente amministratore root"
+-
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr ""
+-#~ "Inserisci il nome dell'applicazione o il ruolo dell'utente da confinare"
+-
+-#~ msgid "Name"
+-#~ msgstr "Nome"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "Inserire il percorso completo per confinare l'eseguibile."
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr ""
+-#~ "Inserire un nome unico per un ruolo utente o applicazione confinata."
+-
+-#~ msgid "Executable"
+-#~ msgstr "Eseguibile"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Script init"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "Inserire il percorso completo sullo script init usato per avviare "
+-#~ "l'applicazione confinata."
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "Selezionare i ruoli utente che desiderate personalizzare"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr ""
+-#~ "Selezionare i ruoli utente che eseguiranno la transizione a questi domini "
+-#~ "delle applicazioni. "
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr ""
+-#~ "Selezionare i domini aggiuntivi ai quali questo ruolo utente eseguirà la "
+-#~ "transizione"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "Selezionare i domini delle applicazioni dasiderati per la transizione di "
+-#~ "questo ruolo utente."
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr ""
+-#~ "Selezionare i ruoli utente che eseguiranno la transizione a questo dominio"
+-
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr ""
+-#~ "Selezionare i domini aggiuntivi che questo utente dovrà amministrare"
+-
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "Selezionare i domini che si desidera che questo utente amministri."
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "Selezionare i ruoli aggiuntivi per questo utente"
+-
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr ""
+-#~ "Inserisci le porte di rete alle quali un ruolo utente/applicazione Ã¨ in "
+-#~ "ascolto"
+-
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>Porte TCP</b>"
+-
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "Permette ad un ruolo utente/applicazione di eseguire il bind a qualsiasi "
+-#~ "porta udp"
+-
+-#~ msgid "All"
+-#~ msgstr "Tutte/i"
+-
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "Permetti ad un ruolo utente/applicazione di chiamare bindresvport con 0. "
+-#~ "Binding alle porte 600-1024 in corso"
+-
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Inserisci un elenco di porte udp o una gamma di porte separato da "
+-#~ "virgole, alle quali un ruolo utente/applicazione può eseguire il bind. Ad "
+-#~ "esempio: 612, 650-660"
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "Porte non riservate (>1024)"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "Seleziona porte"
+-
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "Permette ad un ruolo utente/applicazione di eseguire il bind a qualsiasi "
+-#~ "porta udp > 1024"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>Porte UDP</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "Inserisci le porte di rete alle quali un ruolo utente/applicazione può "
+-#~ "collegarsi"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Inserire un elenco di porte tcp o una gamma di porte separato da virgole, "
+-#~ "alle quali un ruolo utente/applicazione può collegarsi. Ad esempio: 612, "
+-#~ "650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Inserisci un elenco di porte udp o una gamma di porte separato da "
+-#~ "virgole, alle quali un ruolo utente/applicazione si può collegare. Ad "
+-#~ "esempio: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "Selezionare le caratteristiche di applicazione comune"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "Scrive i messaggi syslog\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "Crea/Manipola i file temporanei in /tmp"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "Utilizza Pam per l'autenticazione"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "Utilizza le chiamate getpw* o nsswitch"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "Utilizza dbus"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Invia messaggi audit"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "Interagisce con il terminale"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "Invia email"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "Selezionare i file/directory gestiti dall'applicazione"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "Aggiungi File/Directory sulle quali questa applicazione deve eseguire la "
+-#~ "\"scrittura\". Pid Files, File di log, /var/lib Files ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "Selezionare le booleane usate dall'applicazione"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "Aggiungi/Rimuovi valori della booleana usati per questa applicazione/"
+-#~ "utente confinati"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "Selezionare la directory per generare la policy in"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "Directory della policy"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "File della policy generati"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Questo tool genererà quanto segue: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Eseguire lo script della shell per compilare/installare e rietichettare i "
+-#~ "file/directory.  \n"
+-#~ "Utilizzare semanage o useradd per mappare gli utenti di registrazione di "
+-#~ "Linux con i ruoli\n"
+-#~ " utente. Impostare la macchina in modalità permissiva (setenforce 0). \n"
+-#~ "Registratevi come utente e testate questo ruolo utente.\n"
+-#~ "Utilizzare audit2allow -R per generare le regole aggiuntive per il file "
+-#~ "te.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Questo tool genererà quanto segue: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Eseguire lo script della shell per compilare/installare e rietichettare "
+-#~ "i  \n"
+-#~ "file/directory.  Impostare la macchina in modalità permissiva (setenforce "
+-#~ "0). \n"
+-#~ "Eseguire/riavviare l'applicazione per generare i messaggi avc.\n"
+-#~ "Utilizzare audit2allow -R per generare le regole aggiuntive per il file "
+-#~ "te.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "Aggiungi dialogo booleana"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "Nome booleana"
+-
+-#~ msgid "Role"
+-#~ msgstr "Ruolo"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "Utente_esistente"
+-
+-#~ msgid "Application"
+-#~ msgstr "Applicazione"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s deve essere una directory"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "È necessario selezionare un utente"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "Selezionare il file eseguibile da confinare."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "Selezionare il file dello script init da confinare."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "Selezionare i file che l'applicazione confinata crea o scrive"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "Selezionare le directory che l'applicazione confinata possiede o nelle "
+-#~ "quali scrive"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "Selezionare la directory per generare i file della policy in"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Tipo %s_t già definito nella policy corrente.\n"
+-#~ "Desideri continuare?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "Verifica nome"
+-
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Modulo %s.pp già caricato nella policy corrente.\n"
+-#~ "Desideri continuare?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "È necessario inserire un nome"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "È necessario inserire un eseguibile"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "Configura SELinux"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr ""
+-#~ "Le porte devono essere numerate o avere una gamma di numeri da 1 a %d "
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr ""
+-#~ "È necessario inserire un nome per il vostro processo/utente confinato"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "I tipi di UTENTI non sono eseguibili permessi"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "Solo le applicazioni DAEMON possono utilizzare uno script init"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog deve essere un valore boolean"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "I tipi di UTENTE ottengono automaticamente un tipo di tmp"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr ""
+-#~ "È necessario inserire il percorso eseguibile per il vostro processo "
+-#~ "confinato"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "File tipo enforcement"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "File dell'interfaccia"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "File dei contesti del file"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "Script d'impostazione"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Tipo di\n"
+-#~ "porta di SELinux"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "Protocollo"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "Livello MLS/\n"
+-#~ "MCS"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "Porta"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "Numero porta \"%s\" non valido.  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "Vista elenco"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "Vista del gruppo"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "Protezione del servizio di SELiunx"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone acct"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "Amministratore"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "Permetti a tutti i demoni di scrivere i corefile su /"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "Permetti a tutti i demoni di utilizzare i tty non assegnati"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "Priv utente"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permetti all'account utente di SELinux gadmin di eseguire i file nella "
+-#~ "home directory o /tmp"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permetti all'account utente SELinux guest di eseguire i file nella home "
+-#~ "directory o /tmp"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "Protezione memoria"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "Permetti lo stack eseguibile di java"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Mount"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "Permetti a mount di montare qualsiasi file"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "Permetti a mount di montare qualsiasi directory"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "Permetti lo stack eseguibile di mplayer"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "Permetti a ssh di eseguire ssh-keysign"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permetti all'account utente di SELinux staff di eseguire i file nella "
+-#~ "home directory o /tmp"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permetti all'account utente di SELinux sysadm di eseguire i file nella "
+-#~ "home directory o /tmp"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "Permetti all'account utente di SELinux unconfined di eseguire i file "
+-#~ "nella home directory o /tmp"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Configurazione di rete"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "Permetti ai pacchetti non etichettati di percorrere la rete"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "Permetti all'account utente di SELinux user di eseguire i file nella home "
+-#~ "directory o /tmp"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "Permetti non confinato a dyntrans su unconfined_execmem"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Database"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "Permetti all'utente di collegarsi al socket mysql"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "Permetti all'utente di collegarsi al socket postgres"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "Permetti ai client di scrivere sulla memoria condivisa di X"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permetti all'account utente di SELinux xguest di eseguire i file nella "
+-#~ "home directory o /tmp"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "Permetti ai demoni di essere eseguiti con NIS"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "Web Application"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "Transizione utente di SELinux staff su Web Browser Domain"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "Transizione utente di SELinux sysadm su Web Browser Domain"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "Transizione utente di SELinux user su Web Browser Domain"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "Transizione utente di SELinux xguest su Web Browser Domain"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "Permetti ai web browser di staff di scrivere sulle home directory"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "Disabilita la protezione SELinux per amanda"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "Disabilita la protezione SELinux per amavis"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone apmd"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone arpwatch"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone auditd"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone automount"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "Disabilita la protezione SELinux per avahi"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone bluetooth"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone canna"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone cardmgr"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Disabilita la protezione SELinux per il Cluster server"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "Permetti a cdrecord di leggere vari contenuti. nfs, samba, dispositivi "
+-#~ "estraibili, user-temp e file con contenuti non fidati"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone ciped"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone clamd"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "Disabilita la protezione SELinux per clamscan"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "Disabilita la protezione SELinux per clvmd"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone comsat"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone courier"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone cpucontrol"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone cpuspeed"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone crond"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "Stampa"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "Disabilita la protezione SELinux per il server backend di cupsd"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone cupsd"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "Disabilita la protezione SELinux per cupsd_lpd"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone cvs"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone cyrus"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone dbskkd"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone dbusd"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "Disabilita la protezione SELinux per dccd"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "Disabilita la protezione SELinux per dccifd"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "Disabilita la protezione SELinux per dccm"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone ddt"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone devfsd"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone dhcpc"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone dhcpd"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone dictd"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "Permetti a sysadm_t di avviare direttamente i demoni"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Disabilita la protezione SELinux per Evolution"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "Giochi"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "Disabilita la protezione SELinux per i giochi"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "Disabilita la protezione SELinux per i web browser"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Disabilita la protezione SELinux per Thunderbird"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone distccd"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone dmesg"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone dnsmasq"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone dovecot"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone entropyd"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "Disabilita la protezione SELinux per fetchmail"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone fingerd"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone freshclam"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone fsdaemon"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone gpm"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone gss"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone Hal"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "Compatibilità"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "Non eseguire l'audit degli oggetti che sappiamo essere corrotti ma che "
+-#~ "non rappresentano alcun rischio della sicurezza"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone hostname"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone hotplug"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone howl"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone hplip di cups"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "Disabilita la protezione SELinux per httpd rotatelog"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "Servizio HTTPD"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "Disabilita la protezione SELinux per http suexec"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone hwclock"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone i18n"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone imazesrv"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "Disabilita la protezione SELinux per il demone figlio inetd"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone inetd"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone innd"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone iptables"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone ircd"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone irqbalance"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone iscsi"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone jabberd"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone kadmind"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone klogd"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone krb5kdc"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "Disabilita la protezione SELinux per il demone ktalk"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone kudzu"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone locate"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone lpd"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone lrrd"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone lvm"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "Disabilita la protezione SELinux per mailman"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "Permetti a evolution e thunderbird di leggere i file dell'utente"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone mdadm"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone monopd"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "Permetti al browser di mozilla di leggere i file dell'utente"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone mrtg"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone mysqld"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone nagios"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "Nome servizio"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone named"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone nessusd"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "Disabilita la protezione SELinux per NetworkManager"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone nfsd"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone nmbd"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone nrpe"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone nscd"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone nsd"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone ntpd"
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "Disabilita la protezione SELinux per oddjob"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "Disabilita la protezione SELinux per oddjob_mkhomedir"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone openvpn"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone pam"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "Disabilita la protezione SELinux per pegasus"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone perdition"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone portmap"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone portslave"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "Disabilita la protezione SELinux per postfix"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "Disabilita la protezione SELinux per il demone postgresql"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "Permetti a pppd di essere eseguito per un utente normale"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "Disabilita protezione SELinux per pptp"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone prelink"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone privoxy"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone ptal"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone pxe"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "Disabilita protezione SELinux per pyzord"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone quota"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone radiusd"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone radvd"
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "Disabilita protezione SELinux per rdisc"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "Disabilita protezione SELinux per readahead"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "Permetti ai programmi di leggere i file in posizioni non-standard "
+-#~ "(default_t)"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "Disabilita protezione SELinux per restorecond"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone rhgb"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "Disabilita protezione SELinux per ricci"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "Disabilita protezione SELinux per ricci_modclusterd"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone rlogind"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone rpcd"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "Disabilita protezione SELinux per rshd"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone rsync"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr ""
+-#~ "Permetti a ssh di essere eseguito da inetd invece di essere eseguito come "
+-#~ "demone"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Permetti a Samba di condividere le directory nfs"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Server per l'autenticazione SASL"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "Permetti al server di autenticazione sasl di leggere /etc/shadow"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "Permetti al server di X-Windows di mappare una regione della memoria come "
+-#~ "eseguibile e scrivibile"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone saslauthd"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone scannerdaemon"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "Non permettere la transizione a sysadm_t, sudo e su sono affetti"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "Non permettere ad alcun processo di caricare i moduli del kernel"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr ""
+-#~ "Non permettere ad alcun processo di modificare la policy SELinux del "
+-#~ "kernel"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone sendmail"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "Disabilita protezione SELinux per setrans"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone setroubleshoot"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone slapd"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone slrnpull"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone smbd"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone snmpd"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone snort"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone soundd"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone sound"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "Spam Protection"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone spamd"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "Permetti a spamd di accedere alle home directory "
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Permetti l'accesso alla rete del demone Spam Assasin"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone speedmgmt"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "Permetti al demone squid di collegarsi alla rete"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone squid"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone ssh"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "Permetti i login ssh come sysadm_r:sysadm_t"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "Permetti agli utenti staff_r di eseguire una ricerca della home dir di "
+-#~ "sysadm e leggere i file (come ad esempio ~/.bashrc)"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Tunnel SSL universale"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone stunnel"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr ""
+-#~ "Permetti al demone stunnel di essere eseguito come standalone, "
+-#~ "esternamente a xinetd"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone swat"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone sxid"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone syslogd"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "Disabilita protezione SELinux per i cron job del sistema"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone tcp"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone telnet"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone tftpd"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone transproxy"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone udev"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone uml"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Permetti a xinetd di essere eseguito come non confinato, incluso "
+-#~ "qualsiasi servizio avviato che non possiede una transizione del dominio "
+-#~ "definita in modo esplicito"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Permetti agli script rc di essere eseguiti come non confinati, incluso "
+-#~ "qualsiasi demone avviato da uno script rc che non possiede una "
+-#~ "transizione del dominio definita in modo esplicito"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "Permetti ad rpm di essere eseguito in modo non confinato"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "Permetti alle utilità privilegiate, come hotplug e insmod, di essere "
+-#~ "eseguite in modo non confinato"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone updfstab"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone uptimed"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "Permetti a user_r di raggiungere sysadm_r tramite su, sudo, o userhelper. "
+-#~ "Altrimenti solo staff_r può eseguire tale operazione"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "Permetti agli utenti di eseguire il comando mount"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "Permetti l'accesso diretto del mouse agli utenti normali (abilita solo il "
+-#~ "server X)"
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "Permetti agli utenti di eseguire il comando dmesg"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "Permetti agli utenti di controllare le interfacce di rete (necessita "
+-#~ "anche USERCTL=true)"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "Permetti agli utenti normali di eseguire ping"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr ""
+-#~ "Permetti all'utente di leggere/scrivere noextattrfile (FAT, CDROM, FLOPPY)"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "Permetti agli utenti di rw i dispositivi usb"
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "Permetti agli utenti di eseguire i server TCP (unisci alle porte ed "
+-#~ "accetta il collegamento dallo stesso dominio ed utenti esterni),  "
+-#~ "disabilitandolo verrà forzata la modalità passiva FTP e potrete "
+-#~ "modificare altri protocolli."
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "Permetti agli utenti lo stat ttyfiles"
+-
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone uucpd"
+-
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone vmware"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone watchdog"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone winbind"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone xdm"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "Permetti login xdm come sysadm_r:sysadm_t"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone xen"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "Permetti a xen di leggere/scrivere i dispositivi fisici del disco"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone xfs"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "Disabilita protezione SELinux per il controllo di xen"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone ypbind"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone della password NIS"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "Disabilita protezione SELinux per il demone ypserv"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "Disabilita protezione SELinux per il NIS Transfer Daemon"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Permetti all'utente webadm di SELinux di gestire le directory home di "
+-#~ "utenti non privilegiati"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Permetti all'utente webadm di SELinux di leggere le home directory di "
+-#~ "utenti non privilegiati"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "Siete sicuri di voler cancellare %s '%s'?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "Cancella %s"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "Aggiungi %s"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "Modifica %s"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "Permissivo"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "Enforcing"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Modificando il tipo di policy si provocherà la rietichettatura "
+-#~ "dell'intero file system al prossimo riavvio. La rietichettatura "
+-#~ "richiederà un temponotevole a seconda della grandezza del file system. "
+-#~ "Desiderate continuare?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Selezionando SELinux disabilitato sarà necessario riavviare il vostro "
+-#~ "sistema.  Tale azione non Ã¨ consigliata.  Se desiderate attivare "
+-#~ "nuovamente SELinux, sarà necessario rietichettare il sistema.  Se "
+-#~ "desiderate sapere se SELinux Ã¨ la causa di un problema che si Ã¨ "
+-#~ "verificato sul vostro sistema, selezionate la modalità permissiva la "
+-#~ "quale Ã¨ in grado di registrare i messaggi senza forzare la policy di "
+-#~ "SELinux.  La modalità permissiva non richiede un riavvio del sistema    "
+-#~ "Desiderate continuare?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Modificando su SELinux si provocherà la rietichettatura dell'intero "
+-#~ "filesystem al prossimo riavvio. La rietichettatura richiederà un tempo "
+-#~ "notevolea seconda della grandezza del file system. Desiderate continuare?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "Aggiungi mappatura login di SELinux"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "Aggiungi porte di rete di SELinux"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "Tipo di SELinux"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "Livello MLS/MCS\n"
+-#~ "di SELinux"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "Specifiche del file"
+-
+-#~ msgid "File Type"
+-#~ msgstr "Tipo di file"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "tutti i files\n"
+-#~ "file regolari\n"
+-#~ "directory\n"
+-#~ "device a carattere\n"
+-#~ "device a blocchi\n"
+-#~ "socket\n"
+-#~ "link simbolici\n"
+-#~ "named pipe\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Aggiungi utente di SELinux"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "Amministrazione SELinux"
+-
+-#~ msgid "Add"
+-#~ msgstr "Aggiungi"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "_Proprietà"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "_Cancella"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "Seleziona oggetto di gestione"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Seleziona:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "Modalità Enforcing predefinita del sistema"
+-
+-#~ msgid ""
+-#~ "Disabled\n"
+-#~ "Permissive\n"
+-#~ "Enforcing\n"
+-#~ msgstr ""
+-#~ "Disabilitato\n"
+-#~ "Permissivo\n"
+-#~ "Enforcing\n"
+-
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "Modalità Enforcing corrente"
+-
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "Tipo di policy predefinita del sistema: "
+-
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "Selezionare se si desidera rietichettare l'intero file system al prossimo "
+-#~ "riavvio.  La rietichettatura può richiedere un tempo notevole, dependente "
+-#~ "dalla grandezza del sistema.  Se si sta cambiando tipi di policy o "
+-#~ "cambiando da disabilitato a enforcing, una rietichettatura Ã¨ necessaria."
+-
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Rietichetta al riavvio successivo."
+-
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "Ritorna le impostazioni booleane in default del sistema"
+-
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "Attiva/Disattiva tra Personalizzata e Tutte booleane"
+-
+-#~ msgid "Filter"
+-#~ msgstr "Filtro"
+-
+-#~ msgid "Add File Context"
+-#~ msgstr "Aggiungi contesto del file"
+-
+-#~ msgid "Modify File Context"
+-#~ msgstr "Modifica contesto del file"
+-
+-#~ msgid "Delete File Context"
+-#~ msgstr "Cancella contesto del file"
+-
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "Attiva/Disattiva tra tutte e contesto personalizzato del file"
+-
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "Aggiungi mappatura utente SELinux"
+-
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Modifica mappatura utente SELinux"
+-
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Cancella mappatura utente SELinux %s"
+-
+-#~ msgid "Add Translation"
+-#~ msgstr "Aggiungi traduzione"
+-
+-#~ msgid "Modify Translation"
+-#~ msgstr "Modifica traduzione"
+-
+-#~ msgid "Delete Translation"
+-#~ msgstr "Cancella traduzione"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Modifica utente SELinux"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "Aggiungi porta di rete"
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "Modifica porta di rete"
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "Cancella porta di rete"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "Attiva/Disattiva tra Personalizzata e Tutte le porte"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "Genera nuovo modulo della policy"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "Carica modulo della policy"
+-
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "Rimuovi modulo della policy caricabile"
+-
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "Abilita/Disabilita le regole audit aggiuntive generalemente non riportate "
+-#~ "nei file di log."
+-
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "Livello sensibilità"
+-
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "E' richiesto l'utente '%s' di SELinux"
+-
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-
+-#~ msgid "Requires value"
+-#~ msgstr "Richiede valore"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "Permetti ad un ruolo utente/applicazione di eseguire il bind a qualsiasi "
+-#~ "porta tcp > 1024"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "Permette ad un ruolo utente/applicazione confinata di eseguire il bind a "
+-#~ "qualsiasi porta tcp"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Inserisci un elenco di porte tcp o una gamma di porte separato da "
+-#~ "virgole, alle quali un ruolo utente/applicazione può eseguire il bind. Ad "
+-#~ "esempio: 612, 650-660"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "Druid di generazione della policy di SELinux"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "Porte non riservate  (> 1024)"
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr ""
+-#~ "Utilizzate questa casella se la vostra applicazione richiama bindresvport "
+-#~ "con 0."
+-
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "Enforcing\n"
+-#~ "Permissiva\n"
+-#~ "Disabilitata\n"
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/ja.po b/policycoreutils/po/ja.po
+index 0cf90dc..6a4a6b6 100644
+--- a/policycoreutils/po/ja.po
++++ b/policycoreutils/po/ja.po
+@@ -1,26 +1,26 @@
+-# translation of ja.po to Japanese
+-# translation of ja.po to
+-# translation of ja.po to
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+ #
+-# Takuro Nagamoto <tnagamot@redhat.com>, 2006.
+-# Noriko Mizumoto <noriko@redhat.com>, 2006, 2008.
++# Translators:
+ # Hyu_gabaru Ryu_ichi <hyu_gabaru@yahoo.co.jp>, 2007.
+-# Kiyoto Hashida <khashida@redhat.com>, 2008.
++# Kiyoto Hashida <khashida@redhat.com>, 2008, 2009, 2010.
++# Makoto Mizukami <makoto@fedoraproject.org>, 2008.
++# Noriko Mizumoto <noriko@redhat.com>, 2006, 2008, 2009.
++# Takuro Nagamoto <tnagamot@redhat.com>, 2006.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: ja\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-09-09 21:12+1000\n"
+-"Last-Translator: Noriko Mizumoto <noriko@redhat.com>\n"
+-"Language-Team: Japanese <fedora-trans-ja@redhat.com>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Japanese <trans-ja@lists.fedoraproject.org>\n"
+ "Language: ja\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
++"Plural-Forms: nplurals=1; plural=0\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -29,8 +29,8 @@ msgid ""
+ "         <args ...> are the arguments to that script."
+ msgstr ""
+ "使ã„æ–¹: run_init <script> <args ...>\n"
+-"  ã“ã“ã§ã€ <script> ã¯å®Ÿè¡Œã™ã‚‹ init ã‚¹ã‚¯ãƒªãƒ—トã®åå‰ã€\n"
+-"         <args ...> ã¯ãã®ã‚¹ã‚¯ãƒªãƒ—トã«å¯¾ã™ã‚‹å¼•æ•°ã«ãªã‚Šã¾ã™ã€‚"
++"  ã“ã“ã§ã€ <script> ã«å®Ÿè¡Œã™ã‚‹ init ã‚¹ã‚¯ãƒªãƒ—トã®åå‰ã€\n"
++"         <args ...> ã«ãã®ã‚¹ã‚¯ãƒªãƒ—トã«å¯¾ã™ã‚‹å¼•æ•°ã‚’指定ã—ã¾ã™ã€‚"
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+ #, c-format
+@@ -117,9 +117,8 @@ msgid "Could not establish semanage connection"
+ msgstr "semanage æŽ¥ç¶šã‚’確立ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "%s ã® MLS ç¯„囲を設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "MLS ã‚’有効ã«ã—ãŸçŠ¶æ…‹ã‚’テストã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -127,7 +126,7 @@ msgstr "ã¾ã ã€å®Ÿè£…ã•ã‚Œã¦ã„ã¾ã›ã‚“"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã¯æ—¢ã«é€²è¡Œã—ã¦ã„ã¾ã™"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+@@ -139,53 +138,50 @@ msgstr "semanage ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’コミットã§ãã¾ã›ã‚“ã§ã—ãŸ
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã¯é€²è¡Œã—ã¦ã„ã¾ã›ã‚“"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+ msgid "Could not list SELinux modules"
+ msgstr "SELinux ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ä¸€è¦§ã‚’表示ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "モジュールå"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "無効"
+ #: ../semanage/seobject.py:322
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr "許容ドメイン %s ã®å‰Šé™¤ãŒã§ãã¾ã›ã‚“ã§ã—㟠(削除ã«å¤±æ•—)"
++msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "許容ドメイン %s ã®å‰Šé™¤ãŒã§ãã¾ã›ã‚“ã§ã—㟠(削除ã«å¤±æ•—)"
++msgstr ""
+ #: ../semanage/seobject.py:348
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr "許容ドメイン %s ã®å‰Šé™¤ãŒã§ãã¾ã›ã‚“ã§ã—㟠(削除ã«å¤±æ•—)"
++msgstr ""
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "許容タイプ"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "許容タイプ"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+@@ -285,15 +281,20 @@ msgid "Could not list login mappings"
+ msgstr "ログインマッピングã®ä¸€è¦§ã‚’表示ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "ログインå"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS ç¯„囲"
+@@ -403,6 +404,7 @@ msgid "MCS Range"
+ msgstr "MCS ç¯„囲"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux ãƒ­ãƒ¼ãƒ«"
+@@ -533,18 +535,17 @@ msgstr "SELinux ãƒãƒ¼ãƒˆã‚¿ã‚¤ãƒ—"
+ msgid "Proto"
+ msgstr "プロト"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "ãƒãƒ¼ãƒˆç•ªå·"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "ãƒãƒ¼ãƒˆãŒå¿…è¦ã§ã™"
++msgstr "ノードアドレスãŒå¿…è¦ã§ã™"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "ä¸æ˜Žåˆã¯æ¬ å¦‚ã—ãŸãƒ—ロトコル"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -561,14 +562,14 @@ msgstr "%s ã®ã‚­ãƒ¼ã‚’作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "ãƒãƒ¼ãƒˆ %s/%s ãŒå®šç¾©ã•ã‚Œã¦ã„ã‚‹ã‹ç¢ºèªã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "アドレス %s ãŒå®šç¾©ã•ã‚Œã¦ã„ã‚‹ã‹ç¢ºèªã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%s ã®ã‚­ãƒ¼ã‚’作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "%s ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -577,74 +578,72 @@ msgid "Could not create context for %s"
+ msgstr "%s ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã‚’作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%s ã®åå‰ã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "%s ã®ãƒžã‚¹ã‚¯ã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "%s ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã«ãƒ­ãƒ¼ãƒ«ã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "%s ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã«ãƒ­ãƒ¼ãƒ«ã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã«ã‚¿ã‚¤ãƒ—を設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "%s ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã«ã‚¿ã‚¤ãƒ—を設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%s ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã« mls ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "%s ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã« mls ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "%s ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "ãƒãƒ¼ãƒˆ %s/%s ã‚’追加ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "アドレス %s ã‚’追加ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "ãƒãƒ¼ãƒˆ %s/%s ã¯å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“"
++msgstr "アドレス %s ã¯å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "ãƒãƒ¼ãƒˆ %s/%s ã‚’クエリーã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "アドレス %s ã‚’クエリã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "ãƒãƒ¼ãƒˆ %s/%s ã‚’修正ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "アドレス %s ã‚’修正ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "ãƒãƒ¼ãƒˆ %s/%s ã¯ãƒãƒªã‚·ãƒ¼ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™ã€ å‰Šé™¤ã§ãã¾ã›ã‚“"
++msgstr "アドレス %s ã¯ãƒãƒªã‚·ãƒ¼å†…ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™ã€å‰Šé™¤ã§ãã¾ã›ã‚“"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "ãƒãƒ¼ãƒˆ %s/%s ã‚’削除ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "アドレス %s ã‚’削除ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%s ã®ãƒ­ã‚°ã‚¤ãƒ³ãƒžãƒƒãƒ”ングを削除ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "ãƒãƒ¼ãƒˆã®ä¸€è¦§ã‚’表示ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr "アドレスã®ä¸€è¦§ã‚’表示ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -719,9 +718,8 @@ msgid "Could not delete interface %s"
+ msgstr "インターフェース %s ã‚’削除ã§ãã¾ã›ã‚“ã§ã—ãŸ"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "インターフェース %s ã‚’削除ã§ãã¾ã›ã‚“ã§ã—ãŸ"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -736,9 +734,9 @@ msgid "Context"
+ msgstr "コンテキスト"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã¯ã™ã§ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -746,9 +744,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux ãƒ¦ãƒ¼ã‚¶ãƒ¼ %s ã¯å­˜åœ¨ã—ã¦ã„ã¾ã›ã‚“"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -868,11 +866,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -941,15 +938,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux boolean"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "状態"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+-msgstr "デフォルト"
++msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "説明"
+@@ -1204,7 +1201,7 @@ msgstr "%s:  ãƒãƒªã‚·ãƒ¼ã¯ã™ã§ã«ãƒ­ãƒ¼ãƒ‰æ¸ˆã¿ã§åˆæœŸãƒ­ãƒ¼ãƒ‰ãŒå¿…è¦
+ #: ../load_policy/load_policy.c:80
+ #, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:  ãƒãƒªã‚·ãƒ¼ã¨è¦æ±‚ã•ã‚ŒãŸå¼·åˆ¶ãƒ¢ãƒ¼ãƒ‰ã‚’ロード出æ¥ã¾ã›ã‚“:  %s\n"
++msgstr "%s:  è¦æ±‚ã•ã‚ŒãŸãƒãƒªã‚·ãƒ¼ã¨å¼·åˆ¶ãƒ¢ãƒ¼ãƒ‰ã‚’ロード出æ¥ã¾ã›ã‚“:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1290,1799 +1287,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "オプションエラー %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "%s ã‚’é–‹ã‘ã¾ã›ã‚“: MLS ä»¥å¤–ã®ãƒžã‚·ãƒ³ã§ã¯å¤‰æ›ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "レベル"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "変æ›"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "変æ›ã«ç©ºç™½ '%s' ã‚’å«ã¾ã›ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“"
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "無効ãªãƒ¬ãƒ™ãƒ« '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s ã¯ã™ã§ã«å¤‰æ›ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s ã¯å¤‰æ›ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s ã®ãƒ­ã‚°ã‚¤ãƒ³ãƒžãƒƒãƒ”ングã¯ã™ã§ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒžãƒƒãƒ”ングを追加"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ %s ã¯ã™ã§ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "ãƒãƒ¼ãƒˆãŒå¿…è¦ã§ã™"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "ãƒãƒ¼ãƒˆ %s/%s ã¯ã™ã§ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "インターフェース %s ã¯ã™ã§ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "機能ã®åˆæœŸåŒ–中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã€ä¸­æ­¢ã—ã¾ã™ã€‚\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "機能ã®è¨­å®šä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã€ä¸­æ­¢ã—ã¾ã™ã€‚\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS ã®è¨­å®šä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã€ä¸­æ­¢ã—ã¾ã™ã€‚\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "機能をドロップ中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã€ä¸­æ­¢ã—ã¾ã™ã€‚\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "SETUID æ©Ÿèƒ½ã‚’ドロップ中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã€ä¸­æ­¢ã—ã¾ã™\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "caps ã‚’解放中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿ\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "MLS ä»¥å¤–ã®ãƒžã‚·ãƒ³ã§ã¯å¤‰æ›ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "ブーリアン値"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "å…¨ã¦"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "カスタム化"
+-
+-#~ msgid "File Labeling"
+-#~ msgstr "ファイルラベリング"
+-
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "ファイル\n"
+-#~ "仕様"
+-
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "ファイルタイプ"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "ファイル\n"
+-#~ "タイプ"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "ユーザーマッピング"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "ログイン\n"
+-#~ "å"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "ユーザー"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS ç¯„囲"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "ログイン '%s' ãŒå¿…è¦ã§ã™"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "ãƒãƒªã‚·ãƒ¼ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "監査を無効ã«ã™ã‚‹"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "監査を有効ã«ã™ã‚‹"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "ãƒãƒªã‚·ãƒ¼ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’ロード"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr ""
+-#~ "Takuro Nagamoto <tnagamot AT redhat DOT com>, 2006.\n"
+-#~ "Noriko Mizumoto <noriko AT redhat DOT com>, 2006.\n"
+-#~ "Hyu_gabaru Ryu_ichi <hyu_gabaru AT yahoo DOT co DOT jp>, 2007."
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux ãƒãƒªã‚·ãƒ¼ç”Ÿæˆãƒ„ール"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "ã“ã®ãƒ„ール㯠SELinux ã‚’使用ã—ã¦ã‚¢ãƒ—リケーションやユーザーを制é™ã™ã‚‹ãƒãƒª"
+-#~ "シーフレームワークを生æˆã™ã‚‹ã®ã«ä½¿ç”¨ã§ãã¾ã™ã€‚ \n"
+-#~ "\n"
+-#~ "ツールãŒç”Ÿæˆã™ã‚‹ã®ã¯:\n"
+-#~ "タイプ強制ファイル (te)\n"
+-#~ "インターフェースファイル (if)\n"
+-#~ "ファイルコンテキストファイル (fc)\n"
+-#~ "シェルスクリプト (sh) - ãƒãƒªã‚·ãƒ¼ã‚’コンパイルã—インストールã™ã‚‹ã®ã«ä½¿ç”¨ã—ã¾"
+-#~ "ã™"
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "制é™ã™ã‚‹ã‚¢ãƒ—リケーション/ユーザーロールã®ã‚¿ã‚¤ãƒ—ã‚’é¸æŠž"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>アプリケーション</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "標準 Init ãƒ‡ãƒ¼ãƒ¢ãƒ³ã¯ init ã‚¹ã‚¯ãƒªãƒ—ト経由ã§ãƒ–ート時ã«èµ·å‹•ã•ã‚Œã‚‹ãƒ‡ãƒ¼ãƒ¢ãƒ³ã§"
+-#~ "ã™ã€‚通常 /etc/rc.d/init.d ã«ã‚¹ã‚¯ãƒªãƒ—トãŒå¿…è¦ã§ã™"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "標準åˆæœŸåŒ–デーモン"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr ""
+-#~ "インターãƒãƒƒãƒˆã‚µãƒ¼ãƒ“スデーモン㯠xinetd ã«ã‚ˆã‚Šèµ·å‹•ã•ã‚Œã‚‹ãƒ‡ãƒ¼ãƒ¢ãƒ³ã§ã™"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "インターãƒãƒƒãƒˆã‚µãƒ¼ãƒ“スデーモン (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "ウェブサーãƒãƒ¼ (apache) ã«ã‚ˆã‚Šèµ·å‹•ã•ã‚Œã‚‹ã‚¦ã‚§ãƒ–アプリケーション/スクリプト "
+-#~ "(CGI) CGI ã‚¹ã‚¯ãƒªãƒ—ト"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "ウェブアプリケーション/スクリプト (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "ユーザーアプリケーションã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã‚ˆã£ã¦èµ·å‹•ã•ã‚Œã‚‹ã€åˆ¶é™ã‚’ã‹ã‘ãŸã„アプリ"
+-#~ "ケーションã§ã™"
+-
+-#~ msgid "User Application"
+-#~ msgstr "ユーザーアプリケーション"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>ログインユーザー</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "既存ã®ãƒ­ã‚°ã‚¤ãƒ³ãƒ¦ãƒ¼ã‚¶ãƒ¼è¨˜éŒ²ã‚’修正"
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "既存ユーザーã®ãƒ­ãƒ¼ãƒ«"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã‚¿ãƒ¼ãƒŸãƒŠãƒ«ã€åˆã¯ãƒªãƒ¢ãƒ¼ãƒˆãƒ­ã‚°ã‚¤ãƒ³ã‚’介ã—ã¦ãƒ­ã‚°ã‚¤ãƒ³ ã™ã‚‹ã§ã—ょ"
+-#~ "ã†ã€‚デフォルトã§ã¯ã€ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ setuid ã‚„ networking ã‚„ su ã‚„ sudo ã‚’æŒ"
+-#~ "ã¡ã¾ã›ã‚“。"
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "最å°é™ã®ã‚¿ãƒ¼ãƒŸãƒŠãƒ«ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ X åˆã¯ã‚¿ãƒ¼ãƒŸãƒŠãƒ«ã‚’介ã—ã¦ãƒžã‚·ãƒ³ã«ãƒ­ã‚°ã‚¤ãƒ³ã§ãã¾ã™ã€‚デフォル"
+-#~ "ト ã§ã¯ã€ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ setuid ã‚„ networking ã‚„ sudo ã‚„ su ã‚’æŒã¡ã¾ã›ã‚“。"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "最å°é™ã® X Windows ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "完全ãªãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚­ãƒ³ã‚°ã‚’æŒã¡ã€è»¢ç§»ã®ãªã„ setuid ã‚¢ãƒ—リケーションや sudo "
+-#~ "ã‚„ su ã‚’æŒãŸãªã„ユーザー。"
+-
+-#~ msgid "User Role"
+-#~ msgstr "ユーザーロール"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "完全ãªãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚­ãƒ³ã‚°ã‚’æŒã¡ã€è»¢ç§»ã®ãªã„ setuid ã‚¢ãƒ—リケーションや su ã‚’æŒ"
+-#~ "ãŸãªã„ユーザー㯠sudo ã§ Root ã®ç®¡ç†ãƒ­ãƒ¼ãƒ«ã‚’使用ã§ãã¾ã™ã€‚"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "管ç†ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ­ãƒ¼ãƒ«"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Root ãƒ¦ãƒ¼ã‚¶ãƒ¼</b>"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒ root ã¨ã—ã¦å®Ÿè¡Œã—ã€ãƒžã‚·ãƒ³ã®ç®¡ç†è€…ã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼ãªã‚‰"
+-#~ "ã° Root ç®¡ç†ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„。ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã‚·ã‚¹ãƒ†ãƒ ã« ç›´"
+-#~ "接ログインã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。"
+-
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Root ç®¡ç†ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«"
+-
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "制é™ã™ã‚‹ã‚¢ãƒ—リケーションã‹ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«ã®åå‰ã‚’入力"
+-
+-#~ msgid "Name"
+-#~ msgstr "åå‰"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "制é™ã™ã‚‹å®Ÿè¡Œãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ•ãƒ«ãƒ‘スを入力ã—ã¦ãã ã•ã„。"
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "制é™ã™ã‚‹ã‚¢ãƒ—リケーションã‹ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«ã®ç‰¹æœ‰ãªåå‰ã‚’入力"
+-
+-#~ msgid "Executable"
+-#~ msgstr "実行ファイル"
+-
+-#~ msgid "Init script"
+-#~ msgstr "åˆæœŸåŒ–スクリプト"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "制é™ã•ã‚Œã‚‹ã‚¢ãƒ—リケーションã®èµ·å‹•ã«ä½¿ç”¨ã•ã‚Œã‚‹åˆæœŸåŒ–スクリプトã®ãƒ•ãƒ«ãƒ‘スを入"
+-#~ "力ã—ã¦ãã ã•ã„。"
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "カスタマイズã—ãŸã„ユーザーロールをé¸æŠž"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr "ã“ã®ã‚¢ãƒ—リケーションドメインã«è»¢ç§»ã™ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«ã‚’é¸æŠž"
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«ãŒè»¢ç§»ã™ã‚‹å…ˆã®è¿½åŠ ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’é¸æŠžã—ã¦ãã ã•ã„"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«ã®è»¢ç§»å…ˆã¨ãªã‚‹ã‚¢ãƒ—リケーションドメインをé¸æŠž ã—ã¦ãã ã•"
+-#~ "ã„"
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "ã“ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ã«è»¢ç§»ã™ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«ã‚’é¸æŠž"
+-
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«ãŒç®¡ç†ã™ã‚‹è¿½åŠ ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’é¸æŠžã—ã¦ãã ã•ã„"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ç®¡ç†ã•ã›ãŸã„ドメインをé¸æŠžã—ã¦ãã ã•ã„。"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç”¨ã®è¿½åŠ ã®ãƒ­ãƒ¼ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„"
+-
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr ""
+-#~ "アプリケーション/ユーザーロールãŒãƒªãƒƒã‚¹ãƒ³ã™ã‚‹ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒãƒ¼ãƒˆã‚’入力ã—ã¾"
+-#~ "ã™"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP ãƒãƒ¼ãƒˆ</b>"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "制é™ã•ã‚ŒãŸã‚¢ãƒ—リケーション/ユーザーロールã«ã‚ˆã‚‹å…¨ã¦ã® udp ãƒãƒ¼ãƒˆã¸ã®ãƒã‚¤ãƒ³"
+-#~ "ドを è¨±å¯"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "å…¨ã¦"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "アプリケーション/ユーザーロール㌠bindresvport ã‚’ 0 ã§ã‚³ãƒ¼ãƒ«ã™ã‚‹ã“ã¨ã‚’許"
+-#~ "å¯ã€‚ ãƒãƒ¼ãƒˆ 600-1024 ã«ãƒã‚¤ãƒ³ãƒ‰"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "アプリケーション/ユーザーロールãŒãƒã‚¤ãƒ³ãƒ‰ã™ã‚‹ udp ãƒãƒ¼ãƒˆã®ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã®ä¸€"
+-#~ "覧ã‹ã€ åˆã¯ãƒãƒ¼ãƒˆã®ç¯„囲を入力ã—ã¾ã™ã€‚例: 612, 650-660"
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "予約ã•ã‚Œã¦ã„ãªã„ãƒãƒ¼ãƒˆ (> 1024)"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "ãƒãƒ¼ãƒˆã‚’é¸æŠžã—ã¦ãã ã•ã„"
+-
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "アプリケーション/ユーザーロールã«ã‚ˆã‚‹ 1024 ä»¥ä¸Šã®å…¨ã¦ã® udp ãƒãƒ¼ãƒˆã¸ã®ãƒã‚¤"
+-#~ "ンドを è¨±å¯"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP ãƒãƒ¼ãƒˆ</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "アプリケーション/ユーザーロールãŒæŽ¥ç¶šã™ã‚‹ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒãƒ¼ãƒˆã‚’入力ã—ã¾ã™"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "アプリケーション/ユーザーロールãŒæŽ¥ç¶šã™ã‚‹ tcp ãƒãƒ¼ãƒˆã®ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã®ä¸€è¦§"
+-#~ "ã‹ã€ åˆã¯ã€ãƒãƒ¼ãƒˆã®ç¯„囲を入力ã—ã¾ã™ã€‚例: 612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "アプリケーション/ユーザーロールãŒæŽ¥ç¶šã™ã‚‹ udp ãƒãƒ¼ãƒˆã®ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã®ä¸€è¦§"
+-#~ "ã‹ã€ åˆã¯ãƒãƒ¼ãƒˆã®ç¯„囲を入力ã—ã¾ã™ã€‚例: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "共通ã®ã‚¢ãƒ—リケーション特質をé¸æŠžã—ã¦ãã ã•ã„"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "syslog ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’書ãã¾ã™\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr " /tmp å†…ã®ä¸€æ™‚ファイルã®ä½œæˆ/æ“作をã—ã¾ã™"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "Pam ã‚’èªè¨¼ã«ä½¿ç”¨ã—ã¾ã™"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "nsswitch åˆã¯ getpw* ã‚³ãƒ¼ãƒ«ã‚’使用ã—ã¾ã™"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "dbus ã‚’使用ã—ã¾ã™"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "監査メッセージをé€ä¿¡ã—ã¾ã™ã€‚"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "ターミナルã¨ç›¸äº’作用"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "é›»å­ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã—ã¾ã™"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "アプリケーションãŒç®¡ç†ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«/ディレクトリーをé¸æŠžã—ã¦ãã ã•ã„"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "アプリケーション㌠\"書ã込む\" å¿…è¦ãŒã‚るファイル/ディレクトリーを追加ã—"
+-#~ "ã¾ã™ã€‚Pid ãƒ•ã‚¡ã‚¤ãƒ«ã€ãƒ­ã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã€/var/lib ãƒ•ã‚¡ã‚¤ãƒ« ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "アプリケーションãŒä½¿ç”¨ã™ã‚‹ãƒ–ーリアン値をé¸æŠžã—ã¦ãã ã•ã„"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "ã“ã®åˆ¶é™ã•ã‚Œã‚‹ã‚¢ãƒ—リケーション/ユーザーã«ä½¿ç”¨ã•ã‚Œã‚‹ãƒ–ーリアン値を追加/削除"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "ãƒãƒªã‚·ãƒ¼ã‚’生æˆã™ã‚‹å ´æ‰€ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚’é¸æŠžã—ã¦ãã ã•ã„"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "ãƒãƒªã‚·ãƒ¼ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "生æˆã—ãŸãƒãƒªã‚·ãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "ã“ã®ãƒ„ールã¯ä»¥ä¸‹ã‚’生æˆã—ã¾ã™: \n"
+-#~ "タイプ強制(te)ã€ãƒ•ã‚¡ã‚¤ãƒ«ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(fc)ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹(if)ã€ã‚·ã‚§ãƒ«ã‚¹ã‚¯"
+-#~ "リプト(sh)。\n"
+-#~ "コンパイル/インストールã—ã€ãƒ•ã‚¡ã‚¤ãƒ«/ディレクトリーã®ãƒªãƒ©ãƒ™ãƒ«ã™ã‚‹ãŸã‚ã«ã‚·ã‚§"
+-#~ "ルスクリプトを実行ã—ã¾ã™ã€‚emanage åˆã¯ useradd ã‚’使用ã—㦠Linux ãƒ­ã‚°ã‚¤ãƒ³"
+-#~ "㮠ユーザーをユーザーロールã«ãƒžãƒƒãƒ—ã—ã¾ã™ã€‚\n"
+-#~ "マシンを寛容モード (setenforce 0) ã«ã—ã¾ã™ã€‚\n"
+-#~ "ユーザーã¨ã—ã¦ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ­ãƒ¼ãƒ«ã‚’テストã—ã¾ã™ã€‚audit2allow -"
+-#~ "R ã‚’使用ã—ã€te ãƒ•ã‚¡ã‚¤ãƒ«ã®ãŸã‚ã®è¿½åŠ ãƒ«ãƒ¼ãƒ«ã‚’生æˆã—ã¾ã™ã€‚\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "ã“ã®ãƒ„ールã¯ä»¥ä¸‹ã‚’生æˆã—ã¾ã™: \n"
+-#~ "タイプ強制(te)ã€ãƒ•ã‚¡ã‚¤ãƒ«ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(fc)ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹(if)ã€ã‚·ã‚§ãƒ«ã‚¹ã‚¯"
+-#~ "リプト(sh)。\n"
+-#~ "コンパイル/インストールã—ã€ãƒ•ã‚¡ã‚¤ãƒ«/ディレクトリーã®ãƒªãƒ©ãƒ™ãƒ«ã™ã‚‹ãŸã‚ã«ã‚·ã‚§"
+-#~ "ルスクリプトを実行ã—ã¾ã™ã€‚マシンを寛容モード (setenforce 0) ã«ã—ã¾ã™ã€‚\n"
+-#~ "アプリケーションを実行/å†èµ·å‹•ã—ã€avc ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’生æˆã—ã¾ã™ã€‚\n"
+-#~ "audit2allow -R ã‚’使用ã—ã€te ãƒ•ã‚¡ã‚¤ãƒ«ã®ãŸã‚ã®è¿½åŠ ãƒ«ãƒ¼ãƒ«ã‚’生æˆã—ã¾ã™ã€‚\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "ブーリアンダイアログを追加"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "ブーリアン値å"
+-
+-#~ msgid "Role"
+-#~ msgstr "ロール"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "既存ユーザー(_U)"
+-
+-#~ msgid "Application"
+-#~ msgstr "アプリケーション"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s  ã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "ユーザーをé¸æŠžã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "制é™ã™ã‚‹å®Ÿè¡Œãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„。"
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "制é™ã™ã‚‹åˆæœŸåŒ–スクリプトをé¸æŠžã—ã¦ãã ã•ã„。"
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr ""
+-#~ "制é™ã•ã‚ŒãŸã‚¢ãƒ—リケーションãŒä½œæˆã—ãŸã‚Šã€æ›¸ã込んã ã‚Šã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦"
+-#~ "ãã ã•ã„"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "制é™ã™ã‚‹ã‚¢ãƒ—リケーションãŒæ‰€æœ‰ã—ã¦ã„ãŸã‚Šã€æ›¸ã込んã ã‚Šã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚’"
+-#~ "é¸æŠžã—ã¦ãã ã•ã„"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "生æˆã™ã‚‹ãƒãƒªã‚·ãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«ã‚’入れるディレクトリーをé¸æŠžã—ã¦ãã ã•ã„"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "タイプ %s_t ã¯æ—¢ã«ç¾åœ¨ã®ãƒãƒªã‚·ãƒ¼ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™ã€‚\n"
+-#~ "継続ã—ã¾ã™ã‹ ?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "åå‰ã®è¨¼æ˜Ž"
+-
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "モジュール %s.pp ã¯æ—¢ã«ç¾åœ¨ã®ãƒãƒªã‚·ãƒ¼å†…ã«ãƒ­ãƒ¼ãƒ‰ã•ã‚Œã¦ã„ã¾ã™ã€‚\n"
+-#~ "継続ã—ã¾ã™ã‹ ?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "åå‰ã‚’指定ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "実行ファイルを指定ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux ã‚’設定ã™ã‚‹"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr ""
+-#~ "ãƒãƒ¼ãƒˆã¯ 1 ã‹ã‚‰ %d ã¾ã§ã®æ•°å­—ã‹ã€åˆã¯æ•°å­—ã®ç¯„囲ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“ "
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "制é™ã™ã‚‹ãƒ—ロセス/ユーザーã®åå‰ã‚’入力ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "USER ã‚¿ã‚¤ãƒ—ã¯å®Ÿè¡Œãƒ•ã‚¡ã‚¤ãƒ«ã¨ã—ã¦ã¯èªã‚られã¾ã›ã‚“"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "DAEMON ã‚¢ãƒ—リã®ã¿ãŒåˆæœŸåŒ–スクリプトを使用ã§ãã¾ã™"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog ã¯ãƒ–ール値ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "USER ã‚¿ã‚¤ãƒ—ã¯è‡ªå‹•çš„ã« tmp ã‚¿ã‚¤ãƒ—ã‚’å¾—ã¾ã™"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "制é™ã™ã‚‹ãƒ—ロセスã®å®Ÿè¡Œãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒã‚¹ã‚’入力ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "強制ファイルを入力ã—ã¦ãã ã•ã„"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "インターフェースファイル"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "ファイルコンテキストファイル"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "設定スクリプト"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux ãƒãƒ¼ãƒˆ\n"
+-#~ "タイプ"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "プロトコル"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "レベル"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "ãƒãƒ¼ãƒˆ"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "ãƒãƒ¼ãƒˆç•ªå· \"%s\" ã¯æœ‰åŠ¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“。0 < ãƒãƒ¼ãƒˆç•ªå· < 65536 "
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "一覧表示"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "グループ表示"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux ã‚µãƒ¼ãƒ“スä¿è­·"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "acct ãƒ‡ãƒ¼ãƒ¢ãƒ³ã® SELinux ä¿è­·ã‚’無効ã«ã—ã¾ã™"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "管ç†è€…"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "å…¨ã¦ã®ãƒ‡ãƒ¼ãƒ¢ãƒ³ãŒã‚³ã‚¢ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ / ã¸æ›¸ã込むã®ã‚’èªã‚ã¾ã™"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "å…¨ã¦ã®ãƒ‡ãƒ¼ãƒ¢ãƒ³ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ãªã„ tty ã‚’使用ã§ãã‚‹ã“ã¨ã‚’èªã‚ã¾ã™"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "ユーザー権é™"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "gadmin SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«è‡ªåˆ†ã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚„ /tmp ãƒ‡ã‚£ãƒ¬"
+-#~ "クトリã«ã‚るファイルã®å®Ÿè¡Œã‚’許å¯ã™ã‚‹"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ゲスト SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«è‡ªåˆ†ã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚„ /tmp ãƒ‡ã‚£ãƒ¬"
+-#~ "クトリã«ã‚るファイルã®å®Ÿè¡Œã‚’許å¯ã™ã‚‹"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "メモリä¿è­·"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "java å®Ÿè¡Œå¯èƒ½ã‚¹ã‚¿ãƒƒã‚¯ã‚’èªã‚ã‚‹"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "マウント"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "mount ã«ã‚らゆるファイルをマウントã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "mount ã«ã‚らゆるディレクトリーをマウントã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "mplayer å®Ÿè¡Œå¯èƒ½ã‚¹ã‚¿ãƒƒã‚¯ã‚’èªã‚ã‚‹"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "ssh ã« ssh-keysign ã‚’実行ã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "スタッフ SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«è‡ªåˆ†ã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚„ /tmp ãƒ‡ã‚£"
+-#~ "レクトリã«ã‚るファイルã®å®Ÿè¡Œã‚’許å¯ã™ã‚‹"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "sysadm SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«è‡ªåˆ†ã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚„ /tmp ãƒ‡ã‚£ãƒ¬"
+-#~ "クトリã«ã‚るファイルã®å®Ÿè¡Œã‚’許å¯ã™ã‚‹"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "制é™ã•ã‚Œã¦ã„ãªã„ SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«è‡ªåˆ†ã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚„ /"
+-#~ "tmp ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã‚るファイルã®å®Ÿè¡Œã‚’許å¯ã™ã‚‹"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯è¨­å®š"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "ラベルã®ãªã„パケットãŒãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«æµã‚Œã‚‹ã®ã‚’èªã‚ã‚‹"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "ユーザー SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«è‡ªåˆ†ã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚„ /tmp ãƒ‡ã‚£"
+-#~ "レクトリã«ã‚るファイルã®å®Ÿè¡Œã‚’許å¯ã™ã‚‹"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr ""
+-#~ "制é™ã•ã‚Œã¦ã„ãªã„ã‚‚ã®ã« unconfined_execmem ã« dyntrans ã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "データベース"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "ユーザー㫠mysql ã‚½ã‚±ãƒƒãƒˆã«æŽ¥ç¶šã™ã‚‹ã“ã¨ã‚’許å¯"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "ユーザー㫠postgres ã‚½ã‚±ãƒƒãƒˆã«æŽ¥ç¶šã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "X ã‚µãƒ¼ãƒãƒ¼"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "クライアント㫠X å…±æœ‰ãƒ¡ãƒ¢ãƒªã«æ›¸ã込むã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "xguest SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«è‡ªåˆ†ã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚„ /tmp ãƒ‡ã‚£ãƒ¬"
+-#~ "クトリã«ã‚るファイルã®å®Ÿè¡Œã‚’許å¯ã™ã‚‹"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "デーモン㫠NIS ã¨ã„ã£ã—ょã«å®Ÿè¡Œã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "ウェブアプリケーション"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "スタッフ SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ã‚¦ã‚§ãƒ–ブラウザードメインã¸ã®è»¢ä½"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "sysadm SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ã‚¦ã‚§ãƒ–ブラウザードメインã¸ã®è»¢ä½"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "ユーザー SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ã‚¦ã‚§ãƒ–ブラウザードメインã¸ã®è»¢ä½"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "xguest SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ã‚¦ã‚§ãƒ–ブラウザードメインã¸ã®è»¢ä½"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr ""
+-#~ "スタッフウェブブラウザーã«ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã«æ›¸ã込むã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "amanda ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "amavis ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "apmd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "arpwatch ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "auditd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "automount ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "avahi ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "bluetooth ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "canna ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "cardmgr ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "クラスターサーãƒãƒ¼ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "cdrecord ã«ã„ã‚ã„ã‚ãªå†…容ã®èª­ã¿è¾¼ã¿ã‚’èªã‚る。nfsã€sambaã€å¯æ¬æ€§è£…ç½®ã€ãƒ¦ãƒ¼"
+-#~ "ザー tempã€ä¿¡é ¼ã§ããªã„内容ã®ãƒ•ã‚¡ã‚¤ãƒ«"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ciped ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "clamd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "clamscan ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "clvmd ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "comsat ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "courier ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "cpucontrol ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "cpuspeed ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "å°åˆ·"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "cupsd ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã‚µãƒ¼ãƒãƒ¼ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "cupsd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "cupsd_lpd ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "cvs ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "cyrus ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "dbskkd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "dbusd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "dccd ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "dccifd ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "dccm ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ddt ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "devfsd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "dhcpc ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "dhcpd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "dictd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "sysadm_t ã«ç›´æŽ¥ãƒ‡ãƒ¼ãƒ¢ãƒ³ã‚’èµ·å‹•ã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Evolution ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "ゲーム"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "ゲーム用㮠SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "ウェブブラウザー用㮠SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Thunderbird ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "fetchmail ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Hal ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "互æ›æ€§"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "壊れã¦ã„ã‚‹ã“ã¨ã‚’知ã£ã¦ã„ã‚‹ãŒã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒªã‚¹ã‚¯ã®ãªã„ã“ã¨ãŒåˆ†ã‹ã£ã¦ã„ã‚‹ã‚‚"
+-#~ "ã®ã‚’監査ã—ãªã„"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "hostname ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "cups hplip ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "httpd äº¤ä»£ãƒ­ã‚°ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD ã‚µãƒ¼ãƒ“ス"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexec ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "inetd å­ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ircd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "irqbalance ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "iscsi ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "jabberd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "ケルベロス"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "kadmind ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "klogd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "krb5kdc ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ktalk ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "kudzu ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "locate ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "lpd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "lrrd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "lvm ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "mailman ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "evolution ã¨ thunderbird ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«ã‚’読ã¿è¾¼ã‚€ã®ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "mdadm ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "monopd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "mozilla ãƒ–ラウザーã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«ã‚’読ã¿è¾¼ã‚€ã®ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "mrtg ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "mysqld ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "nagios ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "åå‰ã‚µãƒ¼ãƒ“ス"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "named ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "nessusd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "NetworkManager ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "nfsd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "nmbd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "nrpe ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "nscd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "nsd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ntpd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "oddjob ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "oddjob mkhomedir ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "openvpn ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "pam ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "pegasus ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "perdition ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "portmap ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "portslave ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "postfix ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "postgresql ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "pppd ã«ä¸€èˆ¬ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãŸã‚ã«å®Ÿè¡Œã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "pptp ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "prelink ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "privoxy ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ptal ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "pxe ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "pyzord ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "quota ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "radiusd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "radvd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "rdisc ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "rdisc ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "プログラムã«æ¨™æº–以外ã®å ´æ‰€ã«ã‚るファイルを読ã¿è¾¼ã‚€ã“ã¨ã‚’èªã‚ã‚‹ (default_t)"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "restorecond ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "rhgb ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ricci ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ricci_modclusterd ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "rlogind ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "rpcd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "rshd ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "rsync ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "ssh ã«ãƒ‡ãƒ¼ãƒ¢ãƒ³ã¨ã—ã¦ã§ã¯ãªãã€inetd ã‹ã‚‰å®Ÿè¡Œã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Samba ã« nfs ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚’共有ã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL èªè¨¼ã‚µãƒ¼ãƒãƒ¼"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "sasl èªè¨¼ã‚µãƒ¼ãƒãƒ¼ã« /etc/shadow ã‚’読ã¿è¾¼ã‚€ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "X-Windows ã‚µãƒ¼ãƒãƒ¼ã«ãƒ¡ãƒ¢ãƒªé ˜åŸŸã‚’実行å¯èƒ½ã¨æ›¸è¾¼ã¿å¯èƒ½ã®ä¸¡æ–¹ã¨ã—ã¦ãƒžãƒƒãƒ—ã™ã‚‹"
+-#~ "ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "saslauthd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "scannerdaemon ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "sysadm_t ã¸ã®è»¢ä½ã‚’èªã‚ãªã„ã€sudo ã¨ su ãŒå½±éŸ¿ã—ã¦ã„ã‚‹"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "ã©ã®ãƒ—ロセスã«ã‚‚カーãƒãƒ«ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’ロードã™ã‚‹ã“ã¨ã‚’èªã‚ãªã„"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "ã©ã®ãƒ—ロセスã«ã‚‚カーãƒãƒ« SELinux ãƒãƒªã‚·ãƒ¼ã‚’変更ã™ã‚‹ã“ã¨ã‚’èªã‚ãªã„"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "sendmail ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "setrans ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "setroubleshoot ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "slapd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "slrnpull ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "smbd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "snmpd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "snort ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "soundd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "sound ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "スパムä¿è­·"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "spamd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "spamd ã«ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Spam Assassin ãƒ‡ãƒ¼ãƒ¢ãƒ³ã«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¢ã‚¯ã‚»ã‚¹ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "speedmgmt ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "squid ãƒ‡ãƒ¼ãƒ¢ãƒ³ã«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¸ã®æŽ¥ç¶šã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "squid ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ssh ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "ssh ã« sysadm_r:sysadm_t ã¨ã—ã¦ãƒ­ã‚°ã‚¤ãƒ³ã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "staff_r ãƒ¦ãƒ¼ã‚¶ãƒ¼ã« sysadm ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚’æœã—ã€(~/.bashrc ã®ã‚ˆã†"
+-#~ "ãª) ãƒ•ã‚¡ã‚¤ãƒ«ã‚’読むã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "汎用 SSL ãƒˆãƒ³ãƒãƒ«"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "stunnel ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr ""
+-#~ "stunnel ãƒ‡ãƒ¼ãƒ¢ãƒ³ã« xinetd ã®å¤–ã§ã‚¹ã‚¿ãƒ³ãƒ‰ã‚¢ãƒ­ãƒ¼ãƒ³ã¨ã—ã¦å®Ÿè¡Œã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "swat ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "sxid ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "syslogd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "システム cron ã‚¸ãƒ§ãƒ–用㮠SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "tcp ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "telnet ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "tftpd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "transproxy ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "udev ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "uml ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "xinetd ã«ã€ãã‚ŒãŒèµ·å‹•ã™ã‚‹ãƒ‰ãƒ¡ã‚¤ãƒ³è»¢ä½ãŒæ˜Žã«å®šç¾©ã•ã‚Œã¦ã„ãªã„サービスをå«"
+-#~ "ã‚ã€åˆ¶é™ãªã—ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "rc ã‚¹ã‚¯ãƒªãƒ—トã«ã€rc ã‚¹ã‚¯ãƒªãƒ—トã«ã‚ˆã‚Šèµ·å‹•ã•ã‚Œã‚‹ãƒ‰ãƒ¡ã‚¤ãƒ³è»¢ä½ãŒæ˜Žã«å®šç¾©ã•ã‚Œã¦"
+-#~ "ã„ãªã„デーモンをå«ã‚ã€åˆ¶é™ãªã—ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "rpm ã«åˆ¶é™ãªã—ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "hotplug ã‚„ insmod ã®ã‚ˆã†ãªç‰¹æ¨©ãƒ¦ãƒ¼ãƒ†ã‚£ãƒªãƒ†ã‚£ãƒ¼ã«åˆ¶é™ãªã—ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ã‚’èª"
+-#~ "ã‚ã‚‹"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "updfstab ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "uptimed ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "user_r ã« su ã‹ã€sudoã€userhelper çµŒç”±ã§ sysadm_r ã«é”ã™ã‚‹ã“ã¨ã‚’èªã‚る。ã"
+-#~ "ã†ã§ãªã‘れ㰠staff_r ã®ã¿ãŒãã†ã§ãã‚‹"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "ユーザー㫠mount ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr "標準ユーザーã«ç›´æŽ¥ãƒžã‚¦ã‚¹ã‚¢ã‚¯ã‚»ã‚¹ã‚’èªã‚ã‚‹ (X ã‚µãƒ¼ãƒãƒ¼ã®ã¿èªã‚ã‚‹)"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "ユーザー㫠dmesg ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "ユーザーã«ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã‚’制御ã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹ "
+-#~ "(USERCTL=true ã‚‚å¿…è¦)"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "通常ユーザー㫠ping ã‚’実行ã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr ""
+-#~ "ユーザー㫠ext å±žæ€§ã§ãªã„ファイルã®èª­ã¿æ›¸ãã‚’èªã‚ã‚‹ (FATã€CDROMã€ãƒ•ãƒ­ãƒƒ"
+-#~ "ピー)"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "ユーザー㫠usb è£…ç½®ã®èª­ã¿æ›¸ãã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "ユーザー㫠TCP ã‚µãƒ¼ãƒãƒ¼ã‚’実行ã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹ (ãƒãƒ¼ãƒˆã¨çµã³ã¤ã‘ã€åŒä¸€ãƒ‰ãƒ¡"
+-#~ "インや外部ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ã®æŽ¥ç¶šã‚’å—ã‘付ã‘ã‚‹) ã“れを無効ã«ã™ã‚‹ã¨ FTP ã‚’å—å‹•"
+-#~ "モードã«ã—ã€ä»–ã®ãƒ—ロトコルも変更ã™ã‚‹ã‹ã‚‚ã—ã‚Œãªã„"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "ユーザー㫠stat ttyfiles ã‚’èªã‚ã‚‹"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "uucpd ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "vmware ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "watchdog ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "winbind ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "xdm ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "xdm ãŒ sysadm_r:sysadm_t ã¨ã—ã¦ãƒ­ã‚°ã‚¤ãƒ³ã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "xen ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "xen ã«ç‰©ç†ãƒ‡ã‚£ã‚¹ã‚¯è£…置を読ã¿æ›¸ãã™ã‚‹ã“ã¨ã‚’èªã‚ã‚‹"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "xfs ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "xen control ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ypbind ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "NIS ãƒ‘スワードデーモン用㮠SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ypserv ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "NIS è»¢é€ãƒ‡ãƒ¼ãƒ¢ãƒ³ç”¨ã® SELinux ä¿è­·ã‚’無効ã«ã™ã‚‹"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã€éžç‰¹æ¨©ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã®ç®¡ç†ã‚’èª"
+-#~ "ã‚ã‚‹"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã€éžç‰¹æ¨©ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã®èª­ã¿è¾¼ã¿"
+-#~ "ã‚’èªã‚ã‚‹"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "%s '%s' ã‚’本当ã«å‰Šé™¤ã—ãŸã„ã®ã§ã™ã‹?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "%s ã‚’削除"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "%s ã‚’追加"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "%s ã‚’変更"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "許容"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "強制"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "ãƒãƒªã‚·ãƒ¼ã‚¿ã‚¤ãƒ—を変更ã™ã‚‹ã¨æ¬¡ã®èµ·å‹•æ™‚ã«å…¨ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã®ãƒªãƒ©ãƒ™ãƒ«ã‚’引ãèµ·"
+-#~ "ã—ã¾ã™ã€‚ファイルシステムã®å¤§ãã•ã«ä¾å­˜ã—ã¦ãƒªãƒ©ãƒ™ãƒ«ã¯é•·ã„時間を必è¦ã¨ã—ã¾"
+-#~ "ã™ã€‚続ã‘ã¾ã™ã‹?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux ã‚’無効ã«ã™ã‚‹ã«ã¯å†èµ·å‹•ãŒå¿…è¦ã§ã™ã€‚è–¦ã‚られã¾ã›ã‚“。後㫠SELinux ã‚’"
+-#~ "有効ã«æˆ»ã™ã“ã¨ã«æ±ºã‚ãŸã‚‰ã€ã‚·ã‚¹ãƒ†ãƒ ã¯ãƒªãƒ©ãƒ™ãƒ«ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚å˜ã« "
+-#~ "SELinux ãŒã‚·ã‚¹ãƒ†ãƒ ã«å•é¡Œã‚’èµ·ã“ã—ã¦ã„ã‚‹ã‹ã‚’知りãŸã„ã®ãªã‚‰ã°ã€ã‚¨ãƒ©ãƒ¼ã‚’記録ã™"
+-#~ "ã‚‹ã ã‘㧠SELinux ãƒãƒªã‚·ãƒ¼ã‚’強制ã—ãªã„許容モードã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚許容"
+-#~ "モードã¯å†èµ·å‹•ã¯å¿…è¦ã§ã¯ã‚ã‚Šã¾ã›ã‚“。続ã‘ã¾ã™ã‹?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux ã‚’有効ã«å¤‰æ›´ã™ã‚‹ã¨æ¬¡ã®èµ·å‹•æ™‚ã«å…¨ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã®ãƒªãƒ©ãƒ™ãƒ«ã‚’引ãèµ·"
+-#~ "ã—ã¾ã™ã€‚ファイルシステムã®å¤§ãã•ã«ä¾å­˜ã—ã¦ãƒªãƒ©ãƒ™ãƒ«ã¯é•·ã„時間を必è¦ã¨ã—ã¾"
+-#~ "ã™ã€‚続ã‘ã¾ã™ã‹?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux ãƒ­ã‚°ã‚¤ãƒ³ãƒžãƒƒãƒ”ングを追加"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒãƒ¼ãƒˆã‚’追加"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux ã‚¿ã‚¤ãƒ—"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "レベル"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "ファイル仕様"
+-
+-#~ msgid "File Type"
+-#~ msgstr "ファイルタイプ"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "全ファイル\n"
+-#~ "通常ファイル\n"
+-#~ "ディレクトリー\n"
+-#~ "文字装置\n"
+-#~ "ブロック装置\n"
+-#~ "ソケット\n"
+-#~ "シンボリックリンク\n"
+-#~ "åå‰ä»˜ãパイプ\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¿½åŠ "
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux ç®¡ç†è€…"
+-
+-#~ msgid "Add"
+-#~ msgstr "追加"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "特性(_P)"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "削除(_D)"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "管ç†ã‚ªãƒ–ジェクトをé¸æŠž"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>é¸æŠž:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "システムデフォルトã®å¼·åˆ¶ãƒ¢ãƒ¼ãƒ‰"
+-
+-#~ msgid ""
+-#~ "Disabled\n"
+-#~ "Permissive\n"
+-#~ "Enforcing\n"
+-#~ msgstr ""
+-#~ "許容\n"
+-#~ "強制ãŒ\n"
+-#~ "無効ã«ãªã‚Šã¾ã—ãŸ\n"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "ç¾åœ¨ã®å¼·åˆ¶ãƒ¢ãƒ¼ãƒ‰"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "システムデフォルトã®ãƒãƒªã‚·ãƒ¼ã‚¿ã‚¤ãƒ—: "
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "リラベルã—ãŸã„ã®ãªã‚‰ã°é¸æŠžã—ã€ãã†ã™ã‚Œã°å…¨ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ãŒæ¬¡ã®å†èµ·å‹•æ™‚"
+-#~ "ã«ã€‚システムã®å¤§ãã•ã«ä¾å­˜ã—ã¾ã™ãŒã€ãƒªãƒ©ãƒ™ãƒ«ã¯éžå¸¸ã«é•·ã„時間ãŒã‹ã‹ã‚Šã¾ã™ã€‚"
+-#~ "ãƒãƒªã‚·ãƒ¼ã‚¿ã‚¤ãƒ—を変更ã—ãŸã‚Šç„¡åŠ¹ã‹ã‚‰å¼·åˆ¶ã¸å¤‰ãˆã‚‹å ´åˆã€ãƒªãƒ©ãƒ™ãƒ«ãŒå¿…è¦ã«ãªã‚Šã¾"
+-#~ "ã™ã€‚"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "次ã®å†èµ·å‹•ã§ãƒªãƒ©ãƒ™ãƒ«"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "ブーリアン設定をシステムデフォルトã«æˆ»ã™"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "カスタム化ã¨å…¨ãƒ–ーリアン値ã¨ã®é–“ã§åˆ‡ã‚Šæ›¿ãˆ"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Run booleans lockdown wizard"
+-#~ msgstr "boolean ãƒ­ãƒƒã‚¯ãƒ€ã‚¦ãƒ³ã®ã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã‚’実行"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Lockdown..."
+-#~ msgstr "ロックダウン..."
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "フィルター"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "ファイルコンテキストã®è¿½åŠ "
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "ファイルコンテキストã®å¤‰æ›´"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "ファイルコンテキストã®å‰Šé™¤"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "å…¨ã¦ã¨ã‚«ã‚¹ã‚¿ãƒ åŒ–ファイルコンテキストã®é–“ã§åˆ‡ã‚Šæ›¿ãˆ"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒžãƒƒãƒ”ングã®è¿½åŠ "
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒžãƒƒãƒ”ングã®å¤‰æ›´"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒžãƒƒãƒ”ングã®å‰Šé™¤"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "変æ›ã®è¿½åŠ "
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "変æ›ã®å¤‰æ›´"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "変æ›ã®å‰Šé™¤"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®å¤‰æ›´"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒãƒ¼ãƒˆã®è¿½åŠ "
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒãƒ¼ãƒˆã®ç·¨é›†"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒãƒ¼ãƒˆã®å‰Šé™¤"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "カスタム化ã¨å…¨ãƒãƒ¼ãƒˆã®é–“ã§åˆ‡ã‚Šæ›¿ãˆ"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "æ–°ãƒãƒªã‚·ãƒ¼ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ç”Ÿæˆ"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "ãƒãƒªã‚·ãƒ¼ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’ロード"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "ロードå¯èƒ½ãªãƒãƒªã‚·ãƒ¼ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’å–り外ã™"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr "通常ã¯ãƒ­ã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã«å ±å‘Šã•ã‚Œãªã„追加ã®ç›£æŸ»ãƒ«ãƒ¼ãƒ«ã‚’有効/無効ã«ã™ã‚‹ã€‚"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "感度"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux ãƒ¦ãƒ¼ã‚¶ãƒ¼ '%s' ãŒå¿…è¦ã§ã™"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Disable"
+-#~ msgstr "無効"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Enable"
+-#~ msgstr "有効"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "<b>Boolean</b>"
+-#~ msgstr "<b>Boolean</b>"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "<b>Description</b>"
+-#~ msgstr "<b>説明</b>"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "<b>Status</b>"
+-#~ msgstr "<b>ステータス</b>"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Category: %s <br>"
+-#~ msgstr "カテゴリ: %s <br>"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Begin"
+-#~ msgstr "開始"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Welcome to the SELinux Lockdown Tool.<br> <br>This tool can be used to "
+-#~ "lockdown SELinux booleans.The tool will generate a configuration file "
+-#~ "which can be used to lockdown this system or other SELinux systems.<br>"
+-#~ msgstr ""
+-#~ "SELinux ãƒ­ãƒƒã‚¯ãƒ€ã‚¦ãƒ³ãƒ„ールã«ã‚ˆã†ã“ã。 <br> <br>ã“ã®ãƒ„ールを使用ã™ã‚‹ã¨ "
+-#~ "SELinux ã® boolean ã‚’ロックダウンã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã¾ãŸã¯ä»–"
+-#~ "ã® SELinux ã‚·ã‚¹ãƒ†ãƒ ã®ãƒ­ãƒƒã‚¯ãƒ€ã‚¦ãƒ³ã«ä½¿ç”¨ã§ãる設定ファイルを生æˆã—ã¾ã™ã€‚"
+-#~ "<br>"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Finish"
+-#~ msgstr "終了"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Category %s booleans completed <br><br>"
+-#~ msgstr "カテゴリ %s boolean ã¯å®Œäº†ã—ã¾ã—㟠<br><br>"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Current settings:<br><br>"
+-#~ msgstr "ç¾åœ¨ã®è¨­å®š:<br><br>"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Finish: <br><br>"
+-#~ msgstr "終了: <br><br>"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Category: %s<br><br>Current Settings<br><br>"
+-#~ msgstr "カテゴリ: %s<br><br>ç¾åœ¨ã®è¨­å®š<br><br>"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Boolean:   %s<br><br>"
+-#~ msgstr "Boolean:   %s<br><br>"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Lockdown SELinux Booleans"
+-#~ msgstr "SELinux boolean ã®ãƒ­ãƒƒã‚¯ãƒ€ã‚¦ãƒ³"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Apply"
+-#~ msgstr "é©ç”¨"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "SELinux Boolean Lockdown"
+-#~ msgstr "SELinux boolean ã®ãƒ­ãƒƒã‚¯ãƒ€ã‚¦ãƒ³"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Save As"
+-#~ msgstr "åå‰ã‚’付ã‘ã¦ä¿å­˜"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Save Boolean Configuration File"
+-#~ msgstr "Boolean è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä¿å­˜"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Select file name to save  boolean settings."
+-#~ msgstr "boolean è¨­å®šã‚’ä¿å­˜ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«åã‚’é¸æŠžã—ã¾ã™ã€‚"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "_Forward"
+-#~ msgstr "転é€(_F)"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "_Previous"
+-#~ msgstr "å‰(_P)"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/ka.po b/policycoreutils/po/ka.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/ka.po
++++ b/policycoreutils/po/ka.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/kn.po b/policycoreutils/po/kn.po
+index 7d706a8..2c6f6e4 100644
+--- a/policycoreutils/po/kn.po
++++ b/policycoreutils/po/kn.po
+@@ -1,28 +1,23 @@
+-# translation of policycoreutils.HEAD.kn.po to Kannada
++# SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ #
+-# Shankar Prasad <svenkate@redhat.com>, 2007, 2008.
++# Translators:
++# Shankar Prasad <svenkate@redhat.com>, 2007, 2008, 2009, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD.kn\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-04-02 10:45+0530\n"
+-"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
+-"Language-Team: Kannada <en@li.org>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Kannada (http://www.transifex.net/projects/p/fedora/language/"
++"kn/)\n"
+ "Language: kn\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
++"Plural-Forms: nplurals=1; plural=0\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -94,7 +89,7 @@ msgstr "******************** à²ªà³à²°à²®à³à²– à²…ಂಶ **********************
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr "ಈ à²¨à³€à²¤à²¿(ಪಾಲಿಸಿ) à²ªà³à²¯à²¾à²•à³‡à²œà²¨à³à²¨à³ à²¸à²•à³à²°à²¿à²¯à²µà²¾à²—ಿಸಲà³, à²‡à²¦à²¨à³à²¨à³ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಿ:"
++msgstr "ಈ à²ªà²¾à²²à²¿à²¸à²¿(ಪಾಲಿಸಿ) à²ªà³à²¯à²¾à²•à³‡à²œà²¨à³à²¨à³ à²¸à²•à³à²°à²¿à²¯à²µà²¾à²—ಿಸಲà³, à²‡à²¦à²¨à³à²¨à³ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಿ:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+@@ -106,20 +101,19 @@ msgstr "semanage à²¹à³à²¯à²¾à²‚ಡಲನà³à²¨à³ à²¸à³ƒà²œà²¿à²¸à²²à³ à²¸à²¾
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr "SELinux à²¨à³€à²¤à²¿à²¯à²¨à³à²¨à³ à²¨à²¿à²°à³à²µà²¹à²¿à²¸à²²à²¾à²—ಿಲà³à²² à²…ಥವ à²¶à³‡à²–ರಣೆಯನà³à²¨à³ à²¨à²¿à²²à³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à²¾à²—ಿಲà³à²²."
++msgstr "SELinux à²ªà²¾à²²à²¿à²¸à²¿à²¯à²¨à³à²¨à³ à²¨à²¿à²°à³à²µà²¹à²¿à²¸à²²à²¾à²—ಿಲà³à²² à²…ಥವ à²¶à³‡à²–ರಣೆಯನà³à²¨à³ à²¨à²¿à²²à³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à²¾à²—ಿಲà³à²²."
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr "ನೀತಿ à²¶à³‡à²–ರಣೆಯನà³à²¨à³ à²“ದಲಾಗಿಲà³à²²."
++msgstr "ಪಾಲಿಸಿ à²¶à³‡à²–ರಣೆಯನà³à²¨à³ à²“ದಲಾಗಿಲà³à²²."
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+ msgstr "semanage à²¸à²‚ಪರà³à²•à²µà²¨à³à²¨à³ à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "%s à²—ಾಗಿ MLS à²µà³à²¯à²¾à²ªà³à²¤à²¿à²¯à²¨à³à²¨à³ à²¹à³Šà²‚ದಿಸಲಾಗಿಲà³à²²"
++msgstr "MLS à²¶à²•à³à²¤à²—ೊಂಡಿರà³à²µ à²¸à³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ à²ªà²°à³€à²•à³à²·à²¿à²¸à²²à²¾à²—ಲಿಲà³à²²"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -127,77 +121,73 @@ msgstr "ಇನà³à²¨à³‚ à²…ನà³à²µà²¯à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "ಸೆಮನೇಜೠವà³à²¯à²µà²¹à²¾à²°à²µà³ à²ˆà²—ಾಗಲೆ à²ªà³à²°à²—ತಿಯಲà³à²²à²¿à²¦à³†"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "semanage à²µà²¹à²¿à²µà²¾à²Ÿà²¨à³à²¨à³ à²†à²°à²‚ಭಿಸಲಾಗಿಲà³à²²"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage à²µà²¹à²¿à²µà²¾à²Ÿà²¨à³à²¨à³ à²†à²°à²‚ಭಿಸಲಾಗಿಲà³à²²"
++msgstr "semanage à²µà²¹à²¿à²µà²¾à²Ÿà²¨à³à²¨à³ à²¸à²²à³à²²à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "ಸೆಮನೇಜೠವà³à²¯à²µà²¹à²¾à²°à²µà³ à²ªà³à²°à²—ತಿಯಲà³à²²à²¿à²²à³à²²"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²°à²°à²¨à³à²¨à³ à²ªà²Ÿà³à²Ÿà²¿ à²®à²¾à²¡à²²à²¾à²—ಿಲà³à²²"
++msgstr "SELinux à²®à²¾à²¡à³à²¯à³‚ಲà³â€Œà²—ಳನà³à²¨à³ à²ªà²Ÿà³à²Ÿà²¿ à²®à²¾à²¡à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "ಘಟಕದ à²¹à³†à²¸à²°à³"
++msgstr "ಮಾಡà³à²¯à³‚ಲಿನ à²¹à³†à²¸à²°à³"
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "ಆವೃತà³à²¤à²¿"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "ಅಶಕà³à²¤à²—ೊಂಡ"
+ #: ../semanage/seobject.py:322
+ #, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr ""
++msgstr "%s à²Žà²‚ಬ à²®à²¾à²¡à³à²¯à³‚ಲೠಅನà³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸಲಾಗಲಿಲà³à²² (ತೆಗೆದೠಹಾಕà³à²µà²²à³à²²à²¿ à²µà²¿à²«à²²à²¤à³†)"
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "ಪಾತà³à²° %s à²…ನà³à²¨à³ %s à²—ೆ à²¸à³‡à²°à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
++msgstr "%s à²Žà²‚ಬ à²®à²¾à²¡à³à²¯à³‚ಲನà³à²¨à³ à²¶à²•à³à²¤à²—ೊಳಿಸಲಾಗಲಿಲà³à²² (ತೆಗೆದೠಹಾಕà³à²µà²²à³à²²à²¿ à²µà²¿à²«à²²à²¤à³†)"
+ #: ../semanage/seobject.py:348
+ #, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr ""
++msgstr "%s à²Žà²‚ಬ à²®à²¾à²¡à³à²¯à³‚ಲನà³à²¨à³ à²¤à³†à²—ೆದà³à²¹à²¾à²•à²²à²¾à²—ಲಿಲà³à²² (ತೆಗೆದೠಹಾಕà³à²µà²²à³à²²à²¿ à²µà²¿à²«à²²à²¤à³†)"
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
++msgstr "dontaudit à²—ೆ 'on' à²…ಥವ 'off' à²‡à²µà³†à²°à²¡à²°à²²à³à²²à²¿ à²¯à²¾à²µà³à²¦à²¾à²¦à²°à³‚ à²’ಂದರ à²…ಗತà³à²¯à²µà²¿à²¦à³†"
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "ಅನà³à²®à²¤à²¿à²ªà³‚ರà³à²µà²•à²µà²¾à²—ಿ"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "ಅನà³à²®à²¤à²¿à²ªà³‚ರà³à²µà²•à²µà²¾à²—ಿ"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
++"ಅನà³à²®à²¤à²¿à²ªà³‚ರà³à²µà²• à²¡à³Šà²®à³ˆà²¨à³ %s à²…ನà³à²¨à³ à²¹à³Šà²‚ದಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²² (ಡೊಮೈನà³â€Œ à²…ನà³à²¸à³à²¥à²¾à²ªà²¨à³†à²¯à³ à²µà²¿à²«à²²à²—ೊಂಡಿದೆ)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "ಅನà³à²®à²¤à²¿à²ªà³‚ರà³à²µà²•à²µà²¾à²¦ à²¡à³Šà²®à³ˆà²¨à³ %s à²…ನà³à²¨à³ à²¤à³†à²—ೆದà³à²¹à²¾à²•à²²à²¾à²—ಲಿಲà³à²² (ತೆಗೆದೠಹಾಕà³à²µà²²à³à²²à²¿ à²µà²¿à²«à²²à²¤à³†)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -208,7 +198,7 @@ msgstr ""
+ #: ../semanage/seobject.py:2037
+ #, python-format
+ msgid "Could not create a key for %s"
+-msgstr "%s à²—ಾಗಿ à²•à³€à²²à²¿à²¯à²¨à³à²¨à³ à²¸à³ƒà²œà²¿à²¸à²²à²¾à²—ಿಲà³à²²"
++msgstr "%s à²—ಾಗಿ à²•à³€à²²à²¿à²¯à²¨à³à²¨à³ à²°à²šà²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+@@ -217,9 +207,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "%s à²—ೆ à²ªà³à²°à²µà³‡à²¶ à²®à³à²¯à²¾à²ªà²¿à²‚ಗೠವಿವರಿಸಲà³à²ªà²Ÿà³à²Ÿà²¿à²¦à³†à²¯à³† à²Žà²‚ದೠಪರಿಶೀಲಿಸಲಾಗಿಲà³à²²"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux à²¬à²³à²•à³†à²¦à²¾à²° %s à²…ಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²²"
++msgstr "Linux à²¸à²®à³‚ಹ %s à²…ಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²²"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -273,7 +263,7 @@ msgstr "%s à²—ಾಗಿ à²ªà³à²°à²µà³‡à²¶ à²®à³à²¯à²¾à²ªà²¿à²‚ಗನà³à²¨à³
+ #: ../semanage/seobject.py:611
+ #, python-format
+ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr "%s à²—ಾಗಿನ à²ªà³à²°à²µà³‡à²¶ à²®à³à²¯à²¾à²ªà²¿à²‚ಗೠನೀತಿಯಲà³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
++msgstr "%s à²—ಾಗಿನ à²ªà³à²°à²µà³‡à²¶ à²®à³à²¯à²¾à²ªà²¿à²‚ಗೠಪಾಲಿಸಿಯಲà³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
+ #: ../semanage/seobject.py:615
+ #, python-format
+@@ -286,15 +276,20 @@ msgid "Could not list login mappings"
+ msgstr "ಪà³à²°à²µà³‡à²¶ à²®à³à²¯à²¾à²ªà²¿à²‚ಗà³à²—ಳನà³à²¨à³ à²ªà²Ÿà³à²Ÿà²¿ à²®à²¾à²¡à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "ಪà³à²°à²µà³‡à²¶ à²¹à³†à²¸à²°à³"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²°"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS à²µà³à²¯à²¾à²ªà³à²¤à²¿"
+@@ -312,9 +307,9 @@ msgid "Could not query user for %s"
+ msgstr "ಬಳಕೆದಾರನನà³à²¨à³ %s à²—ಾಗಿ à²ªà³à²°à²¶à³à²¨à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%s à²—ಾಗಿ à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ à²¸à³‡à²°à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
++msgstr "%s à²—ಾಗಿ à²•à²¨à²¿à²·à³à²Ÿ à²’ಂದೠಪಾತà³à²°à²µà²¨à³à²¨à³ à²¸à³‡à²°à²¿à²¸à²¬à³‡à²•à³"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -367,7 +362,7 @@ msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²° %s à²¨à²¨à³à²¨à³ à²®à²¾à²°à³à²ªà²¡à²¿
+ #: ../semanage/seobject.py:862
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²° %s à²¨à²¨à³à²¨à³ à²¨à³€à²¤à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
++msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²° %s à²¨à²¨à³à²¨à³ à²ªà²¾à²²à²¿à²¸à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
+ #: ../semanage/seobject.py:873
+ #, python-format
+@@ -404,6 +399,7 @@ msgid "MCS Range"
+ msgstr "MCS à²µà³à²¯à²¾à²ªà³à²¤à²¿"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux à²ªà²¾à²¤à³à²°à²—ಳà³"
+@@ -416,9 +412,8 @@ msgid "Port is required"
+ msgstr "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨à²¦ à²…ಗತà³à²¯à²µà²¿à²¦à³†"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "ಅಮಾನà³à²¯ à²ªà³‚ರà³à²µà²ªà³à²°à²¤à³à²¯à²¯ %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -516,7 +511,7 @@ msgstr "ಸಂಪರà³à²• à²¸à³à²¥à²¾à²¨ %s à²…ನà³à²¨à³ à²…ಳಿಸಲಾ
+ #: ../semanage/seobject.py:1118
+ #, python-format
+ msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨ %s/%s à²µà²¨à³à²¨à³ à²¨à³€à²¤à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
++msgstr "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨ %s/%s à²µà²¨à³à²¨à³ à²ªà²¾à²²à²¿à²¸à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
+ #: ../semanage/seobject.py:1122
+ #, python-format
+@@ -535,18 +530,17 @@ msgstr "SELinux à²¸à²‚ಪರà³à²• à²¸à³à²¥à²¾à²¨à²¦ à²¬à²—ೆ"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨à²¦ à²¸à²‚ಖà³à²¯à³†"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨à²¦ à²…ಗತà³à²¯à²µà²¿à²¦à³†"
++msgstr "ನೋಡà³â€Œà²¨ à²µà²¿à²³à²¾à²¸à²¦ à²…ಗತà³à²¯à²µà²¿à²¦à³†"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "ಗೊತà³à²¤à²¿à²°à²¦ à²…ಥವ à²•à²¾à²£à³†à²¯à²¾à²¦ à²ªà³à²°à³Šà²Ÿà³Šà²•à²¾à²²à³"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -563,14 +557,14 @@ msgstr "%s à²—ಾಗಿ à²•à³€à²²à²¿à²¯à²¨à³à²¨à³ à²¸à³ƒà²œà²¿à²¸à²²à²¾à²—ಲ
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "%s/%s à²¸à²‚ಪರà³à²• à²¸à³à²¥à²¾à²¨à²µà²¨à³à²¨à³ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆಯೆ à²Žà²‚ದೠಪರಿಶೀಲಿಸಲಾಗಿಲà³à²²"
++msgstr "ವಿಳಾಸ %s à²…ನà³à²¨à³ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆಯೆ à²Žà²‚ದೠಪರಿಶೀಲಿಸಲಾಗಿಲà³à²²"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%s à²—ಾಗಿ à²•à³€à²²à²¿à²¯à²¨à³à²¨à³ à²¸à³ƒà²œà²¿à²¸à²²à²¾à²—ಿಲà³à²²"
++msgstr "%s à²—ಾಗಿ à²µà²¿à²³à²¾à²¸à²µà²¨à³à²¨à³ à²¸à³ƒà²œà²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -579,74 +573,72 @@ msgid "Could not create context for %s"
+ msgstr "%s à²—ಾಗಿ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ à²¸à³ƒà²œà²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%s à²—ಾಗಿ à²¹à³†à²¸à²°à²¨à³à²¨à³ à²¹à³Šà²‚ದಿಸಲಾಗಿಲà³à²²"
++msgstr "%s à²—ಾಗಿ à²®à²¾à²¸à³à²•à²¨à³à²¨à³ à²¹à³Šà²‚ದಿಸಲಾಗಿಲà³à²²"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s à²—ಾಗಿ à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²¦à²²à³à²²à²¿ à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¨à³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸಲಾಗಿಲà³à²²"
++msgstr "%s à²—ಾಗಿ à²µà²¿à²³à²¾à²¸ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²¦à²²à³à²²à²¿ à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¨à³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸಲಾಗಿಲà³à²²"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s à²—ಾಗಿ à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²¦à²²à³à²²à²¿ à²ªà²¾à²¤à³à²°à²µà²¨à³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸಲಾಗಿಲà³à²²"
++msgstr "%s à²—ಾಗಿ à²µà²¿à²³à²¾à²¸ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²¦à²²à³à²²à²¿ à²ªà²¾à²¤à³à²°à²µà²¨à³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸಲಾಗಿಲà³à²²"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s à²—ಾಗಿ à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²¦à²²à³à²²à³à²²à²¿ à²¬à²—ೆಯನà³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸಲಾಗಿಲà³à²²"
++msgstr "%s à²—ಾಗಿ à²µà²¿à²³à²¾à²¸ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²¦à²²à³à²²à³à²²à²¿ à²¬à²—ೆಯನà³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸಲಾಗಿಲà³à²²"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%s à²—ಾಗಿ à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²¦à²²à³à²²à²¿ mls à²•à³à²·à³‡à²¤à³à²°à²—ಳನà³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸಲಾಗಿಲà³à²²"
++msgstr "%s à²—ಾಗಿ à²µà²¿à²³à²¾à²¸ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²¦à²²à³à²²à²¿à²¨ mls à²•à³à²·à³‡à²¤à³à²°à²—ಳನà³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸಲಾಗಿಲà³à²²"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s à²—ಾಗಿ à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸಲಾಗಿಲà³à²²"
++msgstr "%s à²—ಾಗಿ à²µà²¿à²³à²¾à²¸ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸಲಾಗಿಲà³à²²"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "%s/%s à²¦à²²à³à²²à²¿ à²¸à²‚ಪರà³à²• à²¸à³à²¥à²¾à²¨à²µà²¨à³à²¨à³ à²¸à³‡à²°à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
++msgstr "ವಿಳಾಸ %s à²…ನà³à²¨à³ à²¸à³‡à²°à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨ %s/%s à²µà³ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
++msgstr "ವಿಳಾಸ %s à²…ನà³à²¨à³ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨ %s/%s à²…ನà³à²¨à³ à²ªà³à²°à²¶à³à²¨à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
++msgstr "ವಿಳಾಸ %s à²…ನà³à²¨à³ à²ªà³à²°à²¶à³à²¨à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨ %s/%s à²…ನà³à²¨à³ à²®à²¾à²°à³à²ªà²¡à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
++msgstr "ವಿಳಾಸ %s à²…ನà³à²¨à³ à²®à²¾à²°à³à²ªà²¡à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨ %s/%s à²µà²¨à³à²¨à³ à²¨à³€à²¤à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
++msgstr "ವಿಳಾಸ %s à²…ನà³à²¨à³ à²ªà²¾à²²à²¿à²¸à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "%s à²…ನà³à²¨à³ à²…ಳಿಸಲಾಗಿಲà³à²²"
++msgstr "ವಿಳಾಸ %s à²…ನà³à²¨à³ à²…ಳಿಸಲಾಗಿಲà³à²²"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%s à²—ಾಗಿನ à²ªà³à²°à²µà³‡à²¶ à²®à³à²¯à²¾à²ªà²¿à²‚ಗನà³à²¨à³ à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "ಸಂಪರà³à²• à²¸à³à²¥à²¾à²¨à²—ಳನà³à²¨à³ à²ªà²Ÿà³à²Ÿà²¿ à²®à²¾à²¡à²²à²¾à²—ಲಿಲà³à²²"
++msgstr "ವಿಳಾಸಗಳನà³à²¨à³ à²ªà²Ÿà³à²Ÿà²¿ à²®à²¾à²¡à²²à²¾à²—ಲಿಲà³à²²"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -712,7 +704,7 @@ msgstr "ಸಂಪರà³à²• à²¸à²¾à²§à²¨ %s à²…ನà³à²¨à³ à²®à²¾à²°à³à²ªà²¡à²¿
+ #: ../semanage/seobject.py:1558
+ #, python-format
+ msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr "ಸಂಪರà³à²•à²¸à²¾à²§à²¨ %s à²µà²¨à³à²¨à³ à²¨à³€à²¤à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
++msgstr "ಸಂಪರà³à²•à²¸à²¾à²§à²¨ %s à²µà²¨à³à²¨à³ à²ªà²¾à²²à²¿à²¸à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+@@ -720,9 +712,8 @@ msgid "Could not delete interface %s"
+ msgstr "ಸಂಪರà³à²• à²¸à²¾à²§à²¨ %s à²…ನà³à²¨à³ à²…ಳಿಸಲಾಗಿಲà³à²²"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "ಸಂಪರà³à²• à²¸à²¾à²§à²¨ %s à²…ನà³à²¨à³ à²…ಳಿಸಲಾಗಿಲà³à²²"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -737,9 +728,9 @@ msgid "Context"
+ msgstr "ಸನà³à²¨à²¿à²µà³‡à²¶"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s à²—ಾಗಿನ à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²µà³ à²ˆà²—ಾಗಲೆ à²µà²¿à²µà²°à²¿à²¸à²²à³à²ªà²Ÿà³à²Ÿà²¿à²¦à³†"
++msgstr "%s à²•à³à²•à³† à²¸à²®à²¨à²¾à²¦ à²µà²°à³à²—ವೠಈಗಾಗಲೆ à²…ಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³†"
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -747,9 +738,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux à²¬à²³à²•à³†à²¦à²¾à²° %s à²…ಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²²"
++msgstr "%s à²•à³à²•à³† à²¸à²®à²¨à²¾à²¦ à²µà²°à³à²—ವೠಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²²"
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -839,7 +830,7 @@ msgstr "%s à²¦ à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ à²…ಳಿಸಲ
+ #: ../semanage/seobject.py:1878
+ #, python-format
+ msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr "%s à²—ಾಗಿನ à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²µà³ à²¨à³€à²¤à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à³à²ªà²Ÿà³à²Ÿà²¿à²¦à³†, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
++msgstr "%s à²—ಾಗಿನ à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²µà³ à²ªà²¾à²²à²¿à²¸à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à³à²ªà²Ÿà³à²Ÿà²¿à²¦à³†, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
+ #: ../semanage/seobject.py:1884
+ #, python-format
+@@ -869,11 +860,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -892,14 +882,14 @@ msgid "Could not query file context %s"
+ msgstr "ಕಡತ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶ %s à²…ನà³à²¨à³ à²ªà³à²°à²¶à³à²¨à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "ನೀವೠಒಂದೠಮೌಲà³à²¯à²µà²¨à³à²¨à³ à²¨à²®à³‚ದಿಸಬೇಕà³"
++msgstr "ಈ à²•à³†à²³à²—ಿನ à²®à³Œà²²à³à²¯à²—ಳಲà³à²²à²¿ à²’ಂದನà³à²¨à³ à²¨à³€à²µà³ à²¸à³‚ಚಿಸಲೇಬೇಕà³: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "ಬೂಲಿಯನೠ%s à²…ನà³à²¨à³ à²…ಳಿಸಲಾಗಿಲà³à²²"
++msgstr "ಬೂಲಿಯನೠ%s à²—ೆ à²¯à²¾à²µà³à²¦à³† à²¸à²•à³à²°à²¿à²¯ à²®à³Œà²²à³à²¯à²µà²¨à³à²¨à³ à²°à²µà²¾à²¨à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -909,12 +899,12 @@ msgstr "ಬೂಲಿಯನೠ%s à²…ನà³à²¨à³ à²®à²¾à²°à³à²ªà²¡à²¿à²¸à²²à²¾
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "ಸರಿಯಲà³à²²à²¦ à²µà²¿à²¨à³à²¯à²¾à²¸ %s: à²°à³†à²•à²¾à²°à³à²¡à³ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr "ಬೂಲಿಯನೠ%s à²µà³ à²¨à³€à²¤à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
++msgstr "ಬೂಲಿಯನೠ%s à²µà³ à²ªà²¾à²²à²¿à²¸à²¿à²¯à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ, à²…ಳಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
+ #: ../semanage/seobject.py:2052
+ #, python-format
+@@ -942,15 +932,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux à²¬à³‚ಲಿಯನà³"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "ಸà³à²¥à²¿à²¤à²¿"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "ವಿವರಣೆ"
+@@ -1200,18 +1190,19 @@ msgstr "ಬಳಕೆ:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr "%s:  à²¨à³€à²¤à²¿à²¯à³ à²ˆà²—ಾಗಲೆ à²²à³‹à²¡à³â€Œ à²®à²¾à²¡à²²à²¾à²—ಿದೆ à²¹à²¾à²—ೠಆರಂಭಿಕ à²²à³‹à²¡à³â€à²—ೆ à²®à²¨à²µà²¿ à²¸à²²à³à²²à²¿à²¸à²²à²¾à²—ಿದೆ\n"
++msgstr ""
++"%s:  à²ªà²¾à²²à²¿à²¸à²¿à²¯à³ à²ˆà²—ಾಗಲೆ à²²à³‹à²¡à³â€Œ à²®à²¾à²¡à²²à²¾à²—ಿದೆ à²¹à²¾à²—ೠಆರಂಭಿಕ à²²à³‹à²¡à³â€à²—ೆ à²®à²¨à²µà²¿ à²¸à²²à³à²²à²¿à²¸à²²à²¾à²—ಿದೆ\n"
+ #: ../load_policy/load_policy.c:80
+ #, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+ msgstr ""
+-"%s:  à²¨à³€à²¤à²¿à²¯à²¨à³à²¨à³ à²²à³‹à²¡à³ à²®à²¾à²¡à²²à²¾à²—ಿಲà³à²² à²¹à²¾à²—ೠಒತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²• à²•à³à²°à²®à²•à³à²•à³† à²®à²¨à²µà²¿ à²¸à²²à³à²²à²¿à²¸à²²à²¾à²—ಿದೆ:  %s\n"
++"%s:  à²ªà²¾à²²à²¿à²¸à²¿à²¯à²¨à³à²¨à³ à²²à³‹à²¡à³ à²®à²¾à²¡à²²à²¾à²—ಿಲà³à²² à²¹à²¾à²—ೠಒತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²• à²•à³à²°à²®à²•à³à²•à³† à²®à²¨à²µà²¿ à²¸à²²à³à²²à²¿à²¸à²²à²¾à²—ಿದೆ:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr "%s:  à²¨à³€à²¤à²¿à²¯à²¨à³à²¨à³ à²²à³‹à²¡à³ à²®à²¾à²¡à²²à²¾à²—ಿಲà³à²²:  %s\n"
++msgstr "%s:  à²ªà²¾à²²à²¿à²¸à²¿à²¯à²¨à³à²¨à³ à²²à³‹à²¡à³ à²®à²¾à²¡à²²à²¾à²—ಿಲà³à²²:  %s\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+@@ -1293,1743 +1284,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "ಆಯà³à²•à³†à²—ಳ à²¦à³‹à²· %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "%s à²…ನà³à²¨à³ à²¤à³†à²°à³†à²¯à³à²µà²²à³à²²à²¿ à²µà²¿à²«à²²à²¤à³†: MLS à²…ಲà³à²²à²¦ à²—ಣಕಗಳಲà³à²²à²¿ à²…ನà³à²µà²¾à²¦à²—ಳಿಗೆ à²¬à³†à²‚ಬಲ à²‡à²°à³à²µà³à²¦à²¿à²²à³à²²:"
+-#~ "%s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "ಮಟà³à²Ÿ"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "ಅನà³à²µà²¾à²¦"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "ಅನà³à²µà²¾à²¦à²—ಳೠಖಾಲಿ à²œà²¾à²—ಗಳನà³à²¨à³ à²¹à³Šà²‚ದಿರà³à²µà²‚ತಿಲà³à²² '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "ಅಮಾನà³à²¯ à²®à²Ÿà³à²Ÿ '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s à²…ನà³à²¨à³ à²ˆà²—ಾಗಲೆ à²…ನà³à²µà²¾à²¦à²¦à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s à²…ನà³à²µà²¾à²¦à²¦à²²à³à²²à²¿ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s à²—ಾಗಿ à²ªà³à²°à²µà³‡à²¶ à²®à³à²¯à²¾à²ªà²¿à²‚ಗೠವಿವರಿಸಲಾಗಿದೆ"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux à²ªà³à²°à²µà³‡à²¶ à²®à³à²¯à²¾à²ªà²¿à²‚ಗನà³à²¨à³ à²¸à³‡à²°à²¿à²¸à³"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²° %s à²¨à²¨à³à²¨à³ à²ˆà²—ಾಗಲೆ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨à²¦ à²…ಗತà³à²¯à²µà²¿à²¦à³†"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "ಸಂಪರà³à²• à²¸à³à²¥à²¾à²¨ %s/%s à²µà²¨à³à²¨à³ à²ˆà²—ಾಗಲೆ à²µà²¿à²µà²°à²¿à²¸à²²à²¾à²—ಿದೆ"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "ಸಂಪರà³à²•à²¸à²¾à²§à²¨ %s à²µà³ à²ˆà²—ಾಗಲೆ à²µà²¿à²µà²°à²¿à²¸à²²à³à²ªà²Ÿà³à²Ÿà²¿à²¦à³†"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "ಸಾಮರà³à²¥à³à²¯à²—ಳನà³à²¨à³ à²†à²°à²‚ಭಿಸà³à²µà²²à³à²²à²¿ à²¦à³‹à²·, à²¸à³à²¥à²—ಿತಗೊಳಿಸಲಾಗà³à²¤à³à²¤à²¦à³†.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "ಸಾಮರà³à²¥à³à²¯à²—ಳನà³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸà³à²µà²²à³à²²à²¿ à²¦à³‹à²·, à²¸à³à²¥à²—ಿತಗೊಳಿಸಲಾಗà³à²¤à³à²¤à²¦à³†.\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS à²…ನà³à²¨à³ à²¸à²¿à²¦à³à²§à²—ೊಳಿಸà³à²µà²²à³à²²à²¿ à²¦à³‹à²·, à²¸à³à²¥à²—ಿತಗೊಳಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "ಸಾಮರà³à²¥à³à²¯à²—ಳನà³à²¨à³ à²¤à³à²¯à²œà²¿à²¸à³à²µà²²à³à²²à²¿(dropping) à²¦à³‹à²·, à²•à²¾à²°à³à²¯à²­à²‚ಗಗೊಳಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "SETUID à²¸à²¾à²®à²°à³à²¥à³à²¯à²µà²¨à³à²¨à³ à²¤à³à²¯à²œà²¿à²¸à³à²µà²²à³à²²à²¿(dropping) à²¦à³‹à²·, à²•à²¾à²°à³à²¯à²­à²‚ಗಗೊಳಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "caps à²…ನà³à²¨à³ à²®à³à²•à³à²¤à²—ೊಳಿಸà³à²µà²²à³à²²à²¿ à²¦à³‹à²·\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "MLS à²…ಲà³à²²à²¦ à²—ಣಕಗಳಲà³à²²à²¿ à²…ನà³à²µà²¾à²¦à²—ಳಿಗೆ à²¬à³†à²‚ಬಲ à²‡à²°à³à²µà³à²¦à²¿à²²à³à²²à³à²²"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "ಬೂಲಿಯನà³"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "ಎಲà³à²²à²¾"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "ಕಸà³à²Ÿà²®à³ˆà²¸à³ à²®à²¾à²¡à²²à²¾à²¦"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "ಕಡತವನà³à²¨à³ à²²à³‡à²¬à²²à³ à²®à²¾à²¡à³à²µà³à²¦à³"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "ಕಡತದ\n"
+-#~ "ವಿಶಿಷà³à²Ÿ à²µà²¿à²µà²°à²—ಳà³"
+-
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "ಕಡತದ à²¬à²—ೆ"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "ಕಡತದ\n"
+-#~ "ಹೆಸರà³"
+-
+-#~ msgid "User Mapping"
+-#~ msgstr "ಬಳಕೆದಾರ à²®à³à²¯à²¾à²ªà²¿à²‚ಗà³"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "ಪà³à²°à²µà³‡à²¶à²¦\n"
+-#~ "ಹೆಸರà³"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "ಬಳಕೆದಾರ"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS à²µà³à²¯à²¾à²ªà³à²¤à²¿"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "'%s' à²¦ à²ªà³à²°à²µà³‡à²¶à²¦ à²…ಗತà³à²¯à²µà²¿à²¦à³†"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "ನೀತಿ à²˜à²Ÿà²•"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "ಆಡಿಟನà³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "ಆಡಿಟನà³à²¨à³ à²¶à²•à³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "ನೀತಿ à²˜à²Ÿà²•à²µà²¨à³à²¨à³ à²²à³‹à²¡à³ à²®à²¾à²¡à²¿"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "ಶಂಕರೠಪà³à²°à²¸à²¾à²¦à³ à²Žà²‚. à²µà²¿."
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux à²¨à³€à²¤à²¿ à²‰à²¤à³à²ªà²¾à²¦à²¨à²¾ à²‰à²ªà²•à²°à²£"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "ಈ à²‰à²ªà²•à²°à²£à²¦à²¿à²‚ದ SELinux à²¬à²³à²¸à²¿à²•à³Šà²‚ಡೠನೀತಿ à²šà³Œà²•à²Ÿà³à²Ÿà²¨à³à²¨à³ (framework), à²…ನà³à²µà²¯à²—ಳನà³à²¨à³ "
+-#~ "ಮಿತಿಗೊಳಿಸಲೠಅಥವ à²¬à²³à²•à³†à²¦à²¾à²°à²°à²¨à³à²¨à³ à²¨à²¿à²°à³à²®à²¿à²¸à²²à³ à²¬à²³à²¸à²¬à²¹à³à²¦à²¾à²—ಿದೆ.   \n"
+-#~ "\n"
+-#~ "ಉಪಕರಣವೠಈ à²•à³†à²³à²—ಿನವà³à²—ಳನà³à²¨à³ à²‰à²¤à³à²ªà²¾à²¦à²¿à²¸à³à²¤à³à²¤à²¦à³†:\n"
+-#~ "ಒತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²• à²•à²¡à²¤à²¦ à²¬à²—ೆ (te)\n"
+-#~ "ಸಂಪರà³à²•à²¸à²¾à²§à²¨ à²•à²¡à²¤ (if)\n"
+-#~ "ಕಡತ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶ à²•à²¡à²¤ (fc)\n"
+-#~ "ಶೆಲೠಸà³à²•à³à²°à²¿à²ªà³à²Ÿà³ (sh) - à²¨à³€à²¤à²¿à²¯à²¨à³à²¨à³ à²¸à²‚ಕಲಿಸಲೠಹಾಗೠಅನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ à²¬à²³à²¸à²²à²¾à²—à³à²¤à³à²¤à²¦à³†. "
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "ಮಿತಿಗೊಳಿಸಲೠಅನà³à²µà²¯/ಬಳಕೆದಾರನ à²ªà²¾à²¤à³à²°à²µà²¨à³à²¨à³ à²†à²°à²¿à²¸à²¿"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>ಅನà³à²µà²¯à²—ಳà³</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "ಸà³à²Ÿà²¾à²‚ಡರà³à²¡à³ Init à²¡à³†à²®à²¨à³â€à²—ಳೆಂದರೆ init à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà³â€à²—ಳ à²®à³‚ಲಕ à²¬à³‚ಟೠಸಮಯದಲà³à²²à²¿ à²†à²°à²‚ಭಗೊಳà³à²³à³à²µ "
+-#~ "ಡೆಮನà³â€à²—ಳಾಗಿರà³à²¤à³à²¤à²µà³†.  à²¸à²¾à²®à²¾à²¨à³à²¯à²µà²¾à²—ಿ /etc/rc.d/init.d à²¨à²²à³à²²à²¿ à²’ಂದೠಸà³à²•à³à²°à²¿à²ªà³à²Ÿà³â€à²¨ "
+-#~ "ಅಗತà³à²¯à²µà²¿à²°à³à²¤à³à²¤à²¦à³†"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "ಸಾಮಾನà³à²¯ init à²¡à³†à²®à³‹à²¨à³"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "ಜಾಲಬಂಧ à²¸à³‡à²µà³†à²—ಳ à²¡à³†à²®à³Šà²¨à³à²—ಳೠxinetd à²‡à²‚ದ à²†à²°à²‚ಭಗೊಂಡವà³"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "ಜಾಲಬಂಧ à²¸à³‡à²µà³†à²—ಳ à²¡à³†à²®à³Šà²¨à³ (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "ಜಾಲ à²…ನà³à²µà²¯à²—ಳà³/ಸà³à²•à³à²°à²¿à²ªà³à²Ÿà³ (CGI) à²œà²¾à²² à²ªà²°à²¿à²šà²¾à²°à²•à²¦à²¿à²‚ದ (apache) à²†à²°à²‚ಭಿಸಲಾದ CGI à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà³à²—ಳà³"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "ಜಾಲ à²…ನà³à²µà²¯à²—ಳà³/ಸà³à²•à³à²°à²¿à²ªà³à²Ÿà³ (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "ಬಳಕೆದಾರರಿಂದ à²†à²°à²‚ಭಿಸಲà³à²ªà²Ÿà³à²Ÿà²¿à²¦à³† à²Žà²‚ದೠನೀವೠಮಿತಿಗೊಳಪಡಿಸà³à²µ à²¯à²¾à²µà³à²¦à³† à²…ನà³à²µà²¯à²µà³ à²¬à²³à²•à³†à²¦à²¾à²° "
+-#~ "ಅನà³à²µà²¯ à²†à²—ಿರà³à²¤à³à²¤à²¦à³†"
+-
+-#~ msgid "User Application"
+-#~ msgstr "ಬಳಕೆದಾರ à²…ನà³à²µà²¯à²—ಳà³"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²°à³à²µ à²¬à²³à²•à³†à²¦à²¾à²°à²°à³</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "ಈಗಿರà³à²µ à²’ಂದೠಪà³à²°à²µà³‡à²¶ à²¬à²³à²•à³†à²¦à²¾à²° à²¦à²¾à²–ಲೆಯನà³à²¨à³ à²®à²¾à²°à³à²ªà²¡à²¿à²¸à³."
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "ಈಗಿರà³à²µ à²¬à²³à²•à³†à²¦à²¾à²° à²ªà²¾à²¤à³à²°à²—ಳà³"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "ಈ à²¬à²³à²•à³†à²¦à²¾à²°à²¨à³ à²’ಂದೠಟರà³à²®à²¿à²¨à²²à³ à²…ಥವ à²¦à³‚ರಸà³à²¥ à²ªà³à²°à²µà³‡à²¶à²¦ à²®à³‚ಲಕ à²’ಂದೠಗಣಕಕà³à²•à³† à²ªà³à²°à²µà³‡à²¶à²¿à²¸à²¬à²²à³à²²à²¨à³.  "
+-#~ "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤à²µà²¾à²—ಿ à²ˆ à²¬à²³à²•à³†à²¦à²¾à²°à²¨à³ setuid, networking, sudo à²¹à²¾à²—à³ su à²—ಳಲà³à²²à²¿ "
+-#~ "ಯಾವà³à²¦à²¨à³à²¨à³‚ à²¹à³Šà²‚ದಿರà³à²µà³à²¦à²¿à²²à³à²²."
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "ಕನಿಷà³à²Ÿ à²Ÿà²°à³à²®à²¿à²¨à²²à³ à²¬à²³à²•à³†à²¦à²¾à²° à²ªà²¾à²¤à³à²°"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "ಈ à²¬à²³à²•à³†à²¦à²¾à²°à²¨à³ X à²…ಥವ à²Ÿà²°à³à²®à²¿à²¨à²²à³ à²®à³‚ಲಕ à²’ಂದೠಗಣಕಕà³à²•à³† à²ªà³à²°à²µà³‡à²¶à²¿à²¸à²¬à²²à³à²²à²¨à³.  à²ªà³‚ರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤à²µà²¾à²—ಿ "
+-#~ "ಈ à²¬à²³à²•à³†à²¦à²¾à²°à²¨à³ setuid, networking, sudo à²¹à²¾à²—à³ su à²—ಳಲà³à²²à²¿ à²¯à²¾à²µà³à²¦à²¨à³à²¨à³‚ à²¹à³Šà²‚ದಿರà³à²µà³à²¦à²¿à²²à³à²²"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "ಕನಿಷà³à²Ÿ X Windows à²¬à²³à²•à³†à²¦à²¾à²° à²ªà²¾à²¤à³à²°"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "ಸಂಪೂರà³à²£ networking à²¹à³Šà²‚ದಿರà³à²µ, à²ªà²°à²¿à²µà²°à³à²¤à²¨à³† à²¹à³Šà²‚ದದ setuid à²…ನà³à²µà²¯à²—ಳಿಲà³à²²à²¦, sudo à²‡à²²à³à²²à²¦ "
+-#~ "ಹಾಗೠಯಾವà³à²¦à³† su à²‡à²²à³à²²à²¦à²¿à²°à³à²µ à²¬à²³à²•à³†à²¦à²¾à²°."
+-
+-#~ msgid "User Role"
+-#~ msgstr "ಬಳಕೆದಾರ à²ªà²¾à²¤à³à²°"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "ಸಂಪೂರà³à²£ networking à²¹à³Šà²‚ದಿರà³à²µ, à²ªà²°à²¿à²µà²°à³à²¤à²¨à³† à²¹à³Šà²‚ದದ setuid à²…ನà³à²µà²¯à²—ಳಿಲà³à²²à²¦, à²¯à²¾à²µà³à²¦à³† su "
+-#~ "ಇಲà³à²²à²¦à²¿à²°à³à²µ à²†à²¦à²°à³† à²®à³‚ಲ à²µà³à²¯à²µà²¸à³à²¥à²¾à²ªà²• à²ªà²¾à²¤à³à²°à²—ಳಿಗೆ sudo à²®à²¾à²¡à²¬à²¹à³à²¦à²¾à²¦ à²¬à²³à²•à³†à²¦à²¾à²°"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "ನಿರà³à²µà²¹à²£à²¾ à²¬à²³à²•à³†à²¦à²¾à²° à²ªà²¾à²¤à³à²°"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>ಮೂಲ à²¬à²³à²•à³†à²¦à²¾à²°à²°à³</b>"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "ಈ à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¨à³à²¨à³ à²®à³‚ಲವಾಗಿ à²šà²²à²¾à²¯à²¿à²¸à³à²µà²¾à²— à²—ಣಕದ à²¨à²¿à²°à³à²µà²¹à²£à³†à²—ೆ à²¬à²³à²¸à³à²µà²‚ತಿದà³à²¦à²°à³†, à²®à³‚ಲ "
+-#~ "ಬಳಕೆದಾರನನà³à²¨à³ à²†à²°à²¿à²¸à²¿.  à²ˆ à²¬à²³à²•à³†à²¦à²¾à²°à²¨à³ à²—ಣಕಕà³à²•à³† à²¨à³‡à²°à²µà²¾à²—ಿ à²ªà³à²°à²µà³‡à²¶à²¿à²¸à²²à³ à²¸à²¾à²§à³à²¯à²µà²¿à²°à³à²µà³à²¦à²¿à²²à³à²²."
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "ಮೂಲ à²¨à²¿à²°à³à²µà²¾à²¹à²• à²¬à²³à²•à³†à²¦à²¾à²° à²ªà²¾à²¤à³à²°"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "ಮಿತಿಗೊಳಿಸಲೠಅನà³à²µà²¯ à²…ಥವ à²¬à²³à²•à³†à²¦à²¾à²°à²¨ à²ªà²¾à²¤à³à²°à²¦ à²¹à³†à²¸à²°à²¨à³à²¨à³ à²¨à²®à³‚ದಿಸಿ"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "ಹೆಸರà³"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "ಕಾರà³à²¯à²—ತಗೊಳಿಸಬಲà³à²²à²¦à³à²¦à²¨à³à²¨à³ à²ªà²°à²¿à²®à²¿à²¤à²¿à²—ೆ à²’ಳಪಡಿಸಲೠಸಂಪೂರà³à²£ à²ªà²¥à²µà²¨à³à²¨à³ à²¨à²®à³‚ದಿಸಿ."
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "ಮಿತಿಗೊಳಿಸಬೇಕಿರà³à²µ à²¬à²³à²•à³†à²¦à²¾à²° à²…ಥವ à²…ನà³à²µà²¯à²¦ à²µà²¿à²¶à³‡à²·à²µà²¾à²¦ à²ªà³à²°à²•à²¾à²°à²¦ à²¹à³†à²¸à²°à²¨à³à²¨à³ à²¨à²®à³‚ದಿಸಿ."
+-
+-#~ msgid "Executable"
+-#~ msgstr "ಕಾರà³à²¯à²—ತಗೊಳಿಸಬಲà³à²²"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Init à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà³"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "ಮಿತಿಗೊಳಿಸಲಾದ à²…ನà³à²µà²¯à²µà²¨à³à²¨à³ à²†à²°à²‚ಭಿಸಲೠinit à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà²¿à²—ೆ à²¸à²‚ಪೂರà³à²£ à²ªà²¥à²µà²¨à³à²¨à³ à²¨à²®à³‚ದಿಸಿ."
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "ನೀವೠಕಸà³à²Ÿà²®à³ˆà²à³ à²®à²¾à²¡à²²à³ à²¬à²¯à²¸à³à²µ à²¬à²³à²•à³†à²¦à²¾à²° à²ªà²¾à²¤à³à²°à²—ಳನà³à²¨à³ à²†à²°à²¿à²¸à²¿"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr "ಈ à²…ನà³à²µà²¯ à²•à³à²·à³‡à²¤à³à²°à²—ಳಿಗೆ à²ªà²°à²¿à²µà²°à³à²¤à²¿à²¤à²—ೊಳà³à²³à³à²µ à²¬à²³à²•à³†à²¦à²¾à²° à²ªà²¾à²¤à³à²°à²—ಳನà³à²¨à³ à²†à²°à²¿à²¸à²¿."
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "ಈ à²¬à²³à²•à³†à²¦à²¾à²° à²ªà²¾à²¤à³à²°à²µà³ à²ªà²°à²¿à²µà²°à³à²¤à²¨à³† à²¹à³Šà²‚ದಬೇಕಿರà³à²µ à²¹à³†à²šà³à²šà³à²µà²°à²¿ à²•à³à²·à³‡à²¤à³à²°à²—ಳನà³à²¨à³ à²†à²°à²¿à²¸à²¿"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr "ಈ à²¬à²³à²•à³†à²¦à²¾à²° à²ªà²¾à²¤à³à²°à²µà³ à²ªà²°à²¿à²µà²°à³à²¤à²¨à³† à²¹à³Šà²‚ದಲೠನೀವೠಬಯಸà³à²µ à²…ನà³à²µà²¯ à²•à³à²·à³‡à²¤à³à²°à²—ಳನà³à²¨à³ à²…ರಿಸಿ."
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "ಈ à²•à³à²·à³‡à²¤à³à²°à²•à³à²•à³† à²ªà²°à²¿à²µà²°à³à²¤à²¿à²¤à²—ೊಳà³à²³à³à²µ à²¬à²³à²•à³†à²¦à²¾à²° à²ªà²¾à²¤à³à²°à²—ಳನà³à²¨à³ à²†à²°à²¿à²¸à²¿"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "ಈ à²¬à²³à²•à³†à²¦à²¾à²° à²µà³à²¯à²µà²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à²¹à³à²¦à²¾à²¦ à²¹à³†à²šà³à²šà³à²µà²°à²¿ à²•à³à²·à³‡à²¤à³à²°à²—ಳನà³à²¨à³ à²†à²°à²¿à²¸à²¿"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "ಈ à²¬à²³à²•à³†à²¦à²¾à²° à²µà³à²¯à²µà²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ à²¨à³€à²µà³ à²¬à²¯à²¸à³à²µ à²•à³à²·à³‡à²¤à³à²°à²—ಳನà³à²¨à³ à²†à²°à²¿à²¸à²¿."
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "ಈ à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¿à²—ೆ à²¹à³†à²šà³à²šà³à²µà²°à²¿ à²ªà²¾à²¤à³à²°à²—ಳನà³à²¨à³ à²†à²°à²¿à²¸à³"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "ಈ à²…ನà³à²µà²¯/ಬಳಕೆದಾರ à²ªà²¾à²¤à³à²°à²µà³ à²†à²²à²¿à²¸à³à²µ à²œà²¾à²²à²¬à²‚ಧ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳನà³à²¨à³ à²¨à²®à³‚ದಿಸಿ"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP à²¸à²‚ಪರà³à²• à²¸à³à²¥à²¾à²¨à²—ಳà³</b>"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "ಮಿತಿಗೊಳಪಟà³à²Ÿ à²…ನà³à²µà²¯/ಬಳಕೆದಾರನನà³à²¨à³ à²¯à²¾à²µà³à²¦à³† udp à²¸à²‚ಪರà³à²• à²¸à³à²¥à²¾à²¨à²•à³à²•à³† à²¬à²¦à³à²§à²µà²¾à²—ಿರಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "ಎಲà³à²²à²¾"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "ಅನà³à²µà²¯/ಬಳಕೆದಾರನೠ೦ à²¯à³Šà²‚ದಿಗೆ bindresvport à²…ನà³à²¨à³ à²•à²°à³† à²®à²¾à²¡à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³. à³¬à³¦à³¦-೧೦೨೪ "
+-#~ "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨à²•à³à²•à³† à²¬à²¦à³à²§à²µà²¾à²—ಿರಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "೬೦೦-೧೦೨೪"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "ಅನà³à²µà²¯/ಬಳಕೆದಾರ à²ªà²¾à²¤à³à²°à²µà³ à²¬à²¦à³à²§à²µà²¾à²—ಿರà³à²µ udp à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳೠಅಥವ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳ à²µà³à²¯à²¾à²ªà³à²¤à²¿à²—ಳ "
+-#~ "ಅಲà³à²ªà²µà²¿à²°à²¾à²® à²šà²¿à²¹à³à²¨à³†à²—ಳಿಂದ à²ªà³à²°à²¤à³à²¯à³‡à²•à²¿à²¸à²²à²¾à²¦ à²ªà²Ÿà³à²Ÿà²¿à²¯à²¨à³à²¨à³ à²¨à²®à³‚ದಿಸಿ. à²‰à²¦à²¾à²¹à²°à²£à³†à²—ೆ: 612, 650-660"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "ಕಾದಿರಿಸದ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳೠ(> à³§à³¦à³¨à³ª)"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳನà³à²¨à³ à²†à²°à²¿à²¸à³"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "ಅನà³à²µà²¯/ಬಳಕೆದಾರನನà³à²¨à³ à²¯à²¾à²µà³à²¦à³† udp à²¸à²‚ಪರà³à²• à²¸à³à²¥à²¾à²¨à²—ಳಿಗೆ à²¬à²¦à³à²§à²µà²¾à²—ಿರಲೠಅನà³à²®à²¤à²¿à²¸à³ >೧೦೨೪"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳà³</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr "ಈ à²…ನà³à²µà²¯/ಬಳಕೆದಾರ à²ªà²¾à²¤à³à²°à²µà³ à²¸à²‚ಪರà³à²•à²¿à²¤à²—ೊಳà³à²³à³à²µ à²œà²¾à²²à²¬à²‚ಧ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳನà³à²¨à³ à²¨à²®à³‚ದಿಸಿ"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "ಅನà³à²µà²¯/ಬಳಕೆದಾರ à²ªà²¾à²¤à³à²°à²µà³ à²¸à²‚ಪರà³à²•à²¿à²¤à²µà²¾à²—à³à²µ tcp à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳೠಅಥವ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳ "
+-#~ "ವà³à²¯à²¾à²ªà³à²¤à²¿à²—ಳ à²…ಲà³à²ªà²µà²¿à²°à²¾à²® à²šà²¿à²¹à³à²¨à³†à²—ಳಿಂದ à²ªà³à²°à²¤à³à²¯à³‡à²•à²¿à²¸à²²à²¾à²¦ à²ªà²Ÿà³à²Ÿà²¿à²¯à²¨à³à²¨à³ à²¨à²®à³‚ದಿಸಿ. à²‰à²¦à²¾à²¹à²°à²£à³†à²—ೆ: "
+-#~ "612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "ಅನà³à²µà²¯/ಬಳಕೆದಾರ à²ªà²¾à²¤à³à²°à²µà³ à²¸à²‚ಪರà³à²•à²¿à²¤à²µà²¾à²—à³à²µ udp à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳೠಅಥವ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳ "
+-#~ "ವà³à²¯à²¾à²ªà³à²¤à²¿à²—ಳ à²…ಲà³à²ªà²µà²¿à²°à²¾à²® à²šà²¿à²¹à³à²¨à³†à²—ಳಿಂದ à²ªà³à²°à²¤à³à²¯à³‡à²•à²¿à²¸à²²à²¾à²¦ à²ªà²Ÿà³à²Ÿà²¿à²¯à²¨à³à²¨à³ à²¨à²®à³‚ದಿಸಿ. à²‰à²¦à²¾à²¹à²°à²£à³†à²—ೆ: "
+-#~ "612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "ಸಾಮಾನà³à²¯ à²…ನà³à²µà²¯ à²µà²¿à²¶à³‡à²· à²—à³à²£à²—ಳನà³à²¨à³(Traits) à²†à²°à²¿à²¸à³"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "syslog  à²¸à²‚ದೇಶಗಳನà³à²¨à³ à²¬à²°à³†à²¯à³à²¤à³à²¤à²¦à³†\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "/tmp à²¤à²¾à²¤à³à²•à²¾à²²à²¿à²• à²•à²¡à²¤à²—ಳನà³à²¨à³ à²¸à³ƒà²œà²¿à²¸à³/ಕà³à²¶à²²à²µà²¾à²—ಿ à²¨à²¿à²°à³à²µà²¹à²¿à²¸à³"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "ದೃಢೀಕರಣಕà³à²•à²¾à²—ಿ Pam à²…ನà³à²¨à³ à²¬à²³à²¸à³à²¤à³à²¤à²¦à³†"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "nsswitch à²…ಥವ getpw* à²•à²°à³†à²—ಳನà³à²¨à³ à²¬à²³à²¸à³à²¤à³à²¤à²¦à³†"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "dbus à²…ನà³à²¨à³ à²¬à²³à²¸à³à²¤à³à²¤à²¦à³†"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "ಆಡಿಟೠಸಂದೇಶಗಳನà³à²¨à³ à²•à²³à³à²¹à²¿à²¸à³à²¤à³à²¤à²¦à³†"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "ಟರà³à²®à²¿à²¨à²²à³â€à²¨à³Šà²‚ದಿಗೆ à²µà³à²¯à²µà²¹à²°à²¿à²¸à³à²¤à³à²¤à²¦à³†"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "ಇಮೈಲೠಅನà³à²¨à³ à²•à²³à³à²¹à²¿à²¸à³à²¤à³à²¤à²¦à³†"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "ಅನà³à²µà²¯à²µà³ à²¨à²¿à²°à³à²µà²¹à²¿à²¸à³à²µ à²•à²¡à²¤à²—ಳà³/ಕಡತಕೋಶಗಳನà³à²¨à³ à²†à²°à²¿à²¸à²¿"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "ಈ à²…ನà³à²µà²¯à²µà³ \"ಬರೆಯ\"ಬೇಕಿರà³à²µ à²•à²¡à²¤à²—ಳನà³à²¨à³/ಕಡತಕೋಶಗಳನà³à²¨à³ à²¸à³‡à²°à²¿à²¸à³. Pid à²•à²¡à²¤à²—ಳà³, Log "
+-#~ "ಕಡತಗಳà³, /var/lib à²•à²¡à²¤à²—ಳೠ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "ಅನà³à²µà²¯à²µà³ à²¬à²³à²¸à³à²µ à²¬à³‚ಲಿಯನà³â€à²—ಳೠಆರಿಸà³"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr "ಈ à²®à²¿à²¤à²¿à²—ೊಳಿಸಲಾದ à²…ನà³à²µà²¯à²•à³à²•à²¾à²—ಿ à²¬à²³à²¸à²²à²¾à²¦ à²¬à³‚ಲಿಯನà³â€à²—ಳನà³à²¨à³ à²¸à³‡à²°à²¿à²¸à³/ತೆಗೆದà³à²¹à²¾à²•à³"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "ನೀತಿ à²•à²¡à²¤à²—ಳನà³à²¨à³ à²‰à²¤à³à²ªà²¾à²¦à²¿à²¸à²²à³ à²•à³‹à²¶à²µà²¨à³à²¨à³ à²†à²°à²¿à²¸à³"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "ನೀತಿ à²•à³‹à²¶"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "ನೀತಿ à²•à²¡à²¤à²—ಳನà³à²¨à³ à²‰à²¤à³à²ªà²¾à²¦à²¿à²¸à³"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "ಈ à²‰à²ªà²•à²°à²£à²µà³ à²ˆ à²•à³†à²³à²—ಿನವà³à²—ಳನà³à²¨à³ à²‰à²¤à³à²ªà²¾à²¦à²¿à²¸à³à²¤à³à²¤à²¦à³†: à²’ತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²• à²•à²¡à²¤à²¦ à²¬à²—ೆ (te)\n"
+-#~ "ಸಂಪರà³à²•à²¸à²¾à²§à²¨ à²•à²¡à²¤ (if) à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶ à²•à²¡à²¤ (fc) à²¶à³†à²²à³ à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà³ (sh).\n"
+-#~ "ಸಂಕಲಿಸಲà³/ಅನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ à²¹à²¾à²—ೠಕಡತಗಳನà³à²¨à³/ಕಡತಕೋಶಗಳನà³à²¨à³.ಮರà³à²²à³‡à²¬à²²à³ à²®à²¾à²¡à²²à³ à²¶à³†à²²à³ à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà³â€ "
+-#~ "ಅನà³à²¨à³ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಿ.  \n"
+-#~ " Linux à²²à²¾à²—ಿನೠಬಳಕೆದಾರರನà³à²¨à³ à²¬à²³à²•à³†à²¦à²¾à²°à²° à²ªà²¾à²¤à³à²°à²—ಳಿಗೆ à²®à³à²¯à²¾à²ªà³ à²®à²¾à²¡à²²à³ semanage à²…ಥವ "
+-#~ "useradd à²…ನà³à²¨à³ à²¬à²³à²¸à²¿.\n"
+-#~ "ಗಣಕವನà³à²¨à³ à²…ನà³à²®à²¤à²¿ à²•à³à²°à²®à²¦à²²à³à²²à²¿ à²‡à²°à²¿à²¸à²¿ (setenforce 0). \n"
+-#~ "ಬಳಕೆದಾರನಾಗಿ à²ªà³à²°à²µà³‡à²¶à²¿à²¸à²¿ à²¹à²¾à²—ೠಈ à²¬à²³à²•à³†à²¦à²¾à²° à²ªà²¾à²¤à³à²°à²µà²¨à³à²¨à³ à²ªà²°à³€à²•à³à²·à²¿à²¸à²¿.\n"
+-#~ "te à²•à²¡à²¤à²•à³à²•à³† à²¹à³†à²šà³à²šà³à²µà²°à²¿ à²¨à²¿à²¯à²®à²—ಳನà³à²¨à³ à²‰à²¤à³à²ªà²¾à²¦à²¿à²¸à²²à³ audit2allow -R à²…ನà³à²¨à³ à²¬à²³à²¸à²¿.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "ಈ à²‰à²ªà²•à²°à²£à²µà³ à²ˆ à²•à³†à²³à²—ಿನವà³à²—ಳನà³à²¨à³ à²‰à²¤à³à²ªà²¾à²¦à²¿à²¸à³à²¤à³à²¤à²¦à³†: à²’ತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²• à²•à²¡à²¤à²¦ à²¬à²—ೆ (te)\n"
+-#~ "ಸಂಪರà³à²•à²¸à²¾à²§à²¨ à²•à²¡à²¤ (if) à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶ à²•à²¡à²¤ (fc) à²¶à³†à²²à³ à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà³ (sh).\n"
+-#~ "ಸಂಕಲಿಸಲà³/ಅನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ à²¹à²¾à²—ೠಕಡತಗಳನà³à²¨à³/ಕಡತಕೋಶಗಳನà³à²¨à³.ಮರà³à²²à³‡à²¬à²²à³ à²®à²¾à²¡à²²à³ à²¶à³†à²²à³ à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà³â€ "
+-#~ "ಅನà³à²¨à³ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಿ\n"
+-#~ " à²—ಣಕವನà³à²¨à³ à²…ನà³à²®à²¤à²¿ à²•à³à²°à²®à²¦à²²à³à²²à²¿ à²‡à²°à²¿à²¸à²¿ (setenforce 0). \n"
+-#~ "avc à²¸à²‚ದೇಶಗಳನà³à²¨à³ à²‰à²¤à³à²ªà²¾à²¦à²¿à²¸à²²à³ à²…ನà³à²µà²¯à²µà²¨à³à²¨à³ à²šà²²à²¾à²¯à²¿à²¸à²¿/ಪà³à²¨à²°à²¾à²°à²‚ಭಿಸಿ.\n"
+-#~ "te à²•à²¡à²¤à²•à³à²•à³† à²¹à³†à²šà³à²šà³à²µà²°à²¿ à²¨à²¿à²¯à²®à²—ಳನà³à²¨à³ à²‰à²¤à³à²ªà²¾à²¦à²¿à²¸à²²à³ audit2allow -R à²…ನà³à²¨à³ à²¬à²³à²¸à²¿.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "ಬೂಲಿಯನೠಸಂವಾದವನà³à²¨à³ à²¸à³‡à²°à²¿à²¸à³"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "ಬೂಲಿಯನೠಹೆಸರà³"
+-
+-#~ msgid "Role"
+-#~ msgstr "ಪಾತà³à²°"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "ಬಳಕೆದಾರನಿಂದ à²¨à²¿à²°à³à²—ಮಿಸà³à²¤à³à²¤à²¿à²¦à³†(_U)"
+-
+-#~ msgid "Application"
+-#~ msgstr "ಅನà³à²µà²¯"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s à²µà³ à²•à²¡à²¤à²•à³‹à²¶ à²†à²—ಿರಬೇಕà³"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "ನೀವೠಒಬà³à²¬ à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¾à²—ಿರಬೇಕà³"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "ಮಿತಿಗೊಳಪಡಿಸಬೇಕಾದ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಬಲà³à²² à²•à²¡à²¤à²µà²¨à³à²¨à³ à²†à²°à²¿à²¸à³."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "ಮಿತಿಗೊಳಪಡಿಸಬೇಕಾದ init à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà³ à²•à²¡à²¤à²µà²¨à³à²¨à³ à²†à²°à²¿à²¸à³."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "ಮಿತಿಗೊಳಿಸಲà³à²ªà²Ÿà³à²Ÿ à²…ನà³à²µà²¯à²µà³ à²¨à²¿à²°à³à²®à²¿à²¸à³à²µ à²…ಥವ à²¬à²°à³†à²¯à³à²µ à²•à²¡à²¤à²µà²¨à³à²¨à³(ಗಳನà³à²¨à³) à²†à²°à²¿à²¸à²¿"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "ಮಿತಿಗೊಳಿಸಲà³à²ªà²Ÿà³à²Ÿ à²…ನà³à²µà²¯à²µà³ à²…ಧಿಕಾರ à²¹à³Šà²‚ದಿರà³à²µ à²…ಥವ à²¬à²°à³†à²¯à³à²µ à²•à²¡à²¤à²•à³‹à²¶à²µà²¨à³à²¨à³(ಗಳನà³à²¨à³) à²†à²°à²¿à²¸à²¿"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "ನೀತಿ à²•à²¡à²¤à²—ಳನà³à²¨à³ à²‰à²¤à³à²ªà²¾à²¦à²¿à²¸à²²à³ à²•à³‹à²¶à²µà²¨à³à²¨à³ à²†à²°à²¿à²¸à³"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "ಈಗಿರà³à²µ à²ªà²¾à²²à²¿à²¸à²¿à²¯à²²à³à²²à²¿ à²¬à²—ೆ %s_t à²µà³ à²ˆà²—ಾಗಲೆ à²²à³‹à²¡à³ à²†à²—ಿದೆ.\n"
+-#~ "ಮà³à²‚ದà³à²µà²°à³†à²¯à²²à³ à²¬à²¯à²¸à³à²¤à³à²¤à³€à²°à²¾?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "ಹೆಸರನà³à²¨à³ à²ªà²°à²¿à²¶à³€à²²à²¿à²¸à³"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "ಈಗಿರà³à²µ à²ªà²¾à²²à²¿à²¸à²¿à²¯à²²à³à²²à²¿ à²˜à²Ÿà²• %s.pp à²µà³ à²ˆà²—ಾಗಲೆ à²²à³‹à²¡à³ à²†à²—ಿದೆ.\n"
+-#~ "ಮà³à²‚ದà³à²µà²°à³†à²¯à²²à³ à²¬à²¯à²¸à³à²¤à³à²¤à³€à²°à²¾?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "ನೀವೠಒಂದೠಹೆಸರನà³à²¨à³ à²¨à²®à³‚ದಿಸಬೇಕà³"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "ನೀವೠಒಂದೠಕಾರà³à²¯à²—ೊಳಿಸಬಹà³à²¦à²¾à²¦à³à²¦à²¨à³à²¨à³ à²¨à²®à³‚ದಿಸಬೇಕà³"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux à²…ನà³à²¨à³ à²¸à²‚ರಚಿಸà³"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "ಸಂಪರà³à²• à²¸à³à²¥à²¾à²¨à²—ಳೠ1 à²°à²¿à²‚ದ %d à²° à²¨à²¡à³à²µà²¿à²¨ à²¸à²‚ಖà³à²¯à³† à²…ಥವ à²µà³à²¯à²¾à²ªà³à²¤à²¿à²¯à²¾à²—ಿರಬೇಕà³"
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "ನಿಮà³à²® à²®à²¿à²¤à²¿à²—ೊಳಿಸಲà³à²ªà²Ÿà³à²Ÿ à²ªà³à²°à²•à³à²°à²¿à²¯à³†/ಬಳಕೆದಾರರಿಗಾಗಿ à²’ಂದೠಹೆಸರನà³à²¨à³ à²¦à²¾à²–ಲಿಸಬೇಕà³"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "USER à²ªà³à²°à²•à²¾à²°à²—ಳೠಅನà³à²®à²¤à²¿à²¸à²²à²¾à²¦ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಬಲà³à²²à²µà³à²—ಳಲà³à²²"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "ಕೇವಲ DAEMON à²…ನà³à²µà²¯à²—ಳೠಮಾತà³à²° à²’ಂದೠinit à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà²¨à³à²¨à³ à²¬à²³à²¸à²¬à²²à³à²²à²¦à³"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog à²µà³ à²’ಂದೠಬೂಲಿಯನೠಮೌಲà³à²¯à²µà²¾à²—ಿರಬೇಕೠ"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "USER à²ªà³à²°à²•à²¾à²°à²—ಳೠಸà³à²µà²¯à²‚ಚಾಲಿತವಾಗಿ à²’ಂದೠtmp à²¬à²—ೆಯನà³à²¨à³ à²ªà²¡à³†à²¦à³à²•à³Šà²³à³à²³à³à²¤à³à²¤à²¦à³†"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr ""
+-#~ "ನಿಮà³à²® à²®à²¿à²¤à²¿à²—ೊಳಿಸಲà³à²ªà²Ÿà³à²Ÿ à²ªà³à²°à²•à³à²°à²¿à²¯à³†à²—ಳಿಗಾಗಿ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಬಲà³à²² à²ªà²¥à²µà²¨à³à²¨à³ à²¨à³€à²µà³ à²¨à²®à³‚ದಿಸಲೇ à²¬à³‡à²•à³"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "ಪà³à²°à²•à²¾à²° à²œà²¾à²°à²¿ à²•à²¡à²¤"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "ಸಂಪರà³à²• à²¸à²¾à²§à²¨ à²•à²¡à²¤"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "ಕಡತ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²—ಳ à²•à²¡à²¤"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "ಸಿದà³à²§à²¤à²¾ à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà³"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²¦\n"
+-#~ "ಬಗೆ"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "ಪà³à²°à³Šà²Ÿà³Šà²•à²¾à²²à³"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "ಮಟà³à²Ÿ"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "ಸಂಪರà³à²• à²¸à³à²¥à²¾à²¨"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "ಸಂಪರà³à²• à²¸à³à²¥à²¾à²¨ à²¸à²‚ಖà³à²¯à³† \"%s\" à²¯à³ à²…ಮಾನà³à²¯à²µà²¾à²—ಿದೆ.  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "ಪಟà³à²Ÿà²¿ à²¨à³‹à²Ÿ"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "ಸಮೂಹ à²¨à³‹à²Ÿ"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux à²¸à³‡à²µà²¾ à²¸à²‚ರಕà³à²·à²£à³†"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "acct à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "Admin"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "ಮà³à²–à³à²¯à²•à²¡à²¤à²—ಳನà³à²¨à³(corefiles) / à²•à³à²•à³† à²¬à²°à³†à²¯à²²à³ à²¡à³†à²®à³‹à²¨à³à²—ಳಿಗೆ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "ಎಲà³à²²à²¾ à²¡à³†à²®à³‹à²¨à³à²—ಳೠನಿಯೋಜಿಸಲಾದ tty à²—ಳನà³à²¨à³ à²¬à²³à²¸à³à²µ à²¸à²¾à²®à²°à³à²¥à³à²¯à²µà²¨à³à²¨à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "ಬಳಕೆದಾರ Privs"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "gadmin SELinux à²¬à²³à²•à³†à²¦à²¾à²° à²–ಾತೆಗಳಿಗೆ à²…ವà³à²—ಳ à²¨à³†à²²à³† à²•à³‹à²¶à²¦à²²à³à²²à²¿ à²…ಥವ /tmp à²¦à²²à³à²²à²¿ "
+-#~ "ಕಡತಗಳನà³à²¨à³ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ಅತಿಥಿ SELinux à²¬à²³à²•à³†à²¦à²¾à²° à²–ಾತೆಗಳಿಗೆ à²…ವà³à²—ಳ à²¨à³†à²²à³† à²•à³‹à²¶à²¦à²²à³à²²à²¿ à²…ಥವ /tmp à²¦à²²à³à²²à²¿ à²•à²¡à²¤à²—ಳನà³à²¨à³ "
+-#~ "ಕಾರà³à²¯à²—ತಗೊಳಿಸಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "ಮೆಮೊರಿ à²¸à²‚ರಕà³à²·à²£à³†"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "java à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಬಲà³à²²à²‚ತಹ à²¸à³à²Ÿà²¾à²•à³ à²…ನà³à²¨à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "ಆರೋಹಣ"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "ಆರೋಹಣಕà³à²•à³† à²¯à²¾à²µà³à²¦à³† à²•à²¡à²¤à²—ಳನà³à²¨à³ à²†à²°à³‹à²¹à²¿à²¸à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "ಆರೋಹಿಸà³à²¦à²•à³à²•à³† à²¯à²¾à²µà³à²¦à³† à²•à²¡à²¤à²•à³‹à²¶à²µà²¨à³à²¨à³ à²†à²°à³‹à²¹à²¿à²¸ à²…ನà³à²®à²¤à²¿à²¸à³à²²à³"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "mplayer à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಬಲà³à²²à²‚ತಹ à²¸à³à²Ÿà²¾à²•à³ à²…ನà³à²¨à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "ssh à²—ೆ ssh-keysign à²…ನà³à²¨à³ à²šà²²à²¾à²¯à²¿à²¸à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ಸà³à²Ÿà²¾à²«à³ SELinux à²¬à²³à²•à³†à²¦à²¾à²° à²–ಾತೆಗಳಿಗೆ à²…ವà³à²—ಳ à²¨à³†à²²à³† à²•à³‹à²¶à²¦à²²à³à²²à²¿ à²…ಥವ /tmp à²¦à²²à³à²²à²¿ à²•à²¡à²¤à²—ಳನà³à²¨à³ "
+-#~ "ಕಾರà³à²¯à²—ತಗೊಳಿಸಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "sysadm SELinux à²¬à²³à²•à³†à²¦à²¾à²° à²–ಾತೆಗಳಿಗೆ à²…ವà³à²—ಳ à²¨à³†à²²à³† à²•à³‹à²¶à²¦à²²à³à²²à²¿ à²…ಥವ /tmp à²¦à²²à³à²²à²¿ "
+-#~ "ಕಡತಗಳನà³à²¨à³ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "ಮಿತಿಗೊಳಪಡಿಸದ SELinux à²¬à²³à²•à³†à²¦à²¾à²° à²–ಾತೆಗಳೠತಮà³à²® à²¨à³†à²²à³† à²•à²¡à²¤à²•à³‹à²¶ à²…ಥವ /tmp à²¯à²²à³à²²à²¿ "
+-#~ "ಕಡತಗಳನà³à²¨à³ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "ಜಾಲಬಂಧ à²¸à²‚ರಚನೆ"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "ಲೇಬಲೠಮಾಡಲಾಗದ à²ªà³à²¯à²¾à²•à³‡à²Ÿà³à²—ಳೠಜಾಲಬಂಧದಲà³à²²à²¿ à²¹à²¾à²¯à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "ಬಳಕೆದಾರ SELinux à²¬à²³à²•à³†à²¦à²¾à²° à²–ಾತೆಗಳಿಗೆ à²…ವà³à²—ಳ à²¨à³†à²²à³† à²•à³‹à²¶à²¦à²²à³à²²à²¿ à²…ಥವ /tmp à²¦à²²à³à²²à²¿ "
+-#~ "ಕಡತಗಳನà³à²¨à³ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "ಮಿತಿಗೊಳಪಡದವನà³à²¨à³ dyntrans à²—ೆ unconfined_execmem à²®à²¾à²¡à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "ದತà³à²¤à²¸à²‚ಚಯಗಳà³"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "ಬಳಕೆದಾರನಿಗೆ mysql à²¸à²¾à²•à³†à²Ÿà³à²Ÿà²¿à²—ೆ à²¸à²‚ಪರà³à²• à²•à²²à³à²ªà²¿à²¸à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "ಬಳಕೆದಾರನಿಗೆ postgres à²¸à²¾à²•à³†à²Ÿà³à²Ÿà²¿à²—ೆ à²¸à²‚ಪರà³à²• à²•à²²à³à²ªà²¿à²¸à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "Xಪರಿಚಾರಕ"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "ಕà³à²²à³ˆà²‚ಟà³à²—ಳಿಗೆ X à²¹à²‚ಚಿಕಾ à²®à³†à²®à³Šà²°à²¿à²—ೆ à²¬à²°à³†à²¯à²²à³ à²…ನà³à²®à²¤à²¿à²¸à²²à³"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "xguest SELinux à²¬à²³à²•à³†à²¦à²¾à²° à²–ಾತೆಗಳಿಗೆ à²…ವà³à²—ಳ à²¨à³†à²²à³† à²•à³‹à²¶à²¦à²²à³à²²à²¿ à²…ಥವ /tmp à²¦à²²à³à²²à²¿ "
+-#~ "ಕಡತಗಳನà³à²¨à³ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "ಡೆಮೊನà³à²³à²¿à²—ೆ NIS à²¨à³Šà²‚ದಿಗೆ à²šà²²à²¾à²¯à²¿à²¤à²µà²¾à²—à³à²µà²‚ತೆ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "ಜಾಲ à²…ನà³à²µà²¯à²—ಳà³"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "ಸà³à²Ÿà²¾à²«à³ SELinux à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¨à³à²¨à³ à²œà²¾à²² à²µà³€à²•à³à²·à²• à²•à³à²·à³‡à²¤à³à²°à²•à³à²•à³† à²ªà²°à²¿à²µà²°à³à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "sysadm SELinux à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¨à³à²¨à³ à²œà²¾à²² à²µà³€à²•à³à²·à²• à²•à³à²·à³‡à²¤à³à²°à²•à³à²•à³† à²ªà²°à²¿à²µà²°à³à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "ಬಳಕೆದಾರ SELinux à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¨à³à²¨à³ à²œà²¾à²² à²µà³€à²•à³à²·à²• à²•à³à²·à³‡à²¤à³à²°à²•à³à²•à³† à²ªà²°à²¿à²µà²°à³à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "xguest SELinux à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¨à³à²¨à³ à²œà²¾à²² à²µà³€à²•à³à²·à²• à²•à³à²·à³‡à²¤à³à²°à²•à³à²•à³† à²ªà²°à²¿à²µà²°à³à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "ಸà³à²Ÿà²¾à²«à³ à²œà²¾à²² à²µà³€à²•à³à²·à²•à²°à²¿à²—ೆ à²¨à³†à²²à³† à²•à²¡à²¤à²•à³‹à²¶à²—ಳಿಗೆ à²¬à²°à³†à²¯à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "amanda à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "amavis à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "apmd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "arpwatch à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "audit à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "automount à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "avahi à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "bluetooth à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "canna à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "cardmgr à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Cluster à²ªà²°à²¿à²šà²¾à²°à²•à²•à³à²•à²¾à²—ಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "cdrecord à²—ೆ à²¹à²²à²µà²¾à²°à³ à²µà²¿à²·à²¯à²µà²¨à³à²¨à³ à²“ದಲೠಅನà³à²®à²¤à²¿à²¸à³. nfs, samba, à²¤à³†à²—ೆದà³à²¹à²¾à²•à²¬à²¹à³à²¦à²¾à²¦ "
+-#~ "ಸಾಧನಗಳà³, à²¬à²³à²•à³†à²¦à²¾à²° temp à²¹à²¾à²—ೠನಂಬಲರà³à²¹à²µà²²à³à²²à²¦ à²µà²¿à²·à²¯à²µà²¨à³à²¨à³ à²¹à³Šà²‚ದಿರà³à²µ à²•à²¡à²¤à²—ಳà³"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ciped à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "clamd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "clamscan à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "clvmd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "comsat à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "courier à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "cpucontrol à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "cpuspeed à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "ಮà³à²¦à³à²°à²£"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "cupsd back end à²ªà²°à²¿à²šà²¾à²°à²•à²•à³à²•à²¾à²—ಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "cupsd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "cup_Ipd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "cvs à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "cyrus à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "dbskkd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "bdusd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "dccd à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "dccifd à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "dccm à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ddt à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "devfsd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "dhcpc à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "dhcpd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "dictd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "sysadm_t à²—ೆ à²¨à³‡à²°à²µà²¾à²—ಿ à²¡à³†à²®à³‹à²¨à³à²—ಳನà³à²¨à³ à²†à²°à²‚ಭಿಸಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "ಇವಲೂಶನಿಗಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "ಆಟಗಳà³"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "ಆಟಗಳಿಗಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "ಜಾಲ à²µà³€à²•à³à²·à²•à²—ಳಿಗಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "ಥಂಡರà³-ಬರà³à²¡à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "fetchmail à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Hal à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "ಸಹರà³à²¤à²¨à³€à²¯à²¤à³†"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr "ತà³à²‚ಡರಿಸಲà³à²ªà²Ÿà³à²Ÿ à²†à²¦à²°à³† à²¸à³à²°à²•à³à²·à²¤à³†à²¯ à²¦à³ƒà²·à³à²Ÿà²¿à²¯à²²à³à²²à²¿ à²…ಪಾಯಕಾರಿಯಲà³à²²à²µà³à²—ಳನà³à²¨à³ à²†à²¡à²¿à²Ÿà³ à²®à²¾à²¡à²¬à³‡à²¡"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "hostname à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "cups hplip à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "httpd rotatelogs à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD à²¸à³‡à²µà³†"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexec à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "inetd child à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ircd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "irqbalance à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "iscsi à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "jabberd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "ಕರà³à²¬à²°à³‹à²¸à³"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "kadmind à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "klogd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "krb5kdc à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ktalk à²¡à³†à²®à³‹à²¨à³à²—ಳಿಗಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "kudzu à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "locate à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "lpd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "lrrd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "lvm à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "mailman à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "ಬಳಕೆದಾರ à²•à²¡à²¤à²—ಳನà³à²¨à³ à²‡à²µà²²à³‚ಶನೠಹಾಗೠಥಂಡರà³-ಬರà³à²¡à³ à²“ದಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "mdadm à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "monopd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "ಬಳಕೆದಾರ à²•à²¡à²¤à²—ಳನà³à²¨à³ à²“ದಲೠಮೊà²à²¿à²²à³à²²à²¾ à²µà³€à²•à³à²·à²•à²•à³à²•à³† à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "Dmrtg à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "mysqld à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "nagios à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "ಹೆಸರೠಸೇವೆ"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "named à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "nessusd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "NetworkManager SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "nfsd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "ಸಾಂಬಾ"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "nmbd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "nrpe à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "nscd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "Dnsd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ntpd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "oddjob à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "oddjob_mkhomedir à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "openvpn à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "pam à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "pegasus à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "perdition à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "portmap à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "portslave à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "postfix à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "postgresql à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "ಒಬà³à²¬ à²¸à²¾à²®à²¾à²¨à³à²¯ à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¿à²—ೆ à²šà²²à²¾à²¯à²¿à²¤à²µà²¾à²—à³à²µà²‚ತೆ pppd à²—ೆ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "pptp à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "prelink à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "privoxy à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ptal à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "pxe à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "pyzord à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "quota à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "radiusd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "radvd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "rdisc à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "readahead à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr "ಸà³à²Ÿà²¾à²‚ಡರà³à²¡à³â€Œ à²…ಲà³à²²à²¦ à²¸à³à²¥à²³à²—ಳಿಂದ (default_t) à²•à²¡à²¤à²—ಳನà³à²¨à³ à²“ದಲೠಪà³à²°à³‹à²—à³à²°à²¾à²‚ಗೆ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "restorecond à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "rhgb à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ricci à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ricci_modclusterd à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "rlogind à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "rpcd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "rshd à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "rsync à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "ssh à²—ೆ à²’ಂದೠಡೆಮೋನಿನ à²¬à²¦à²²à²¿à²—ೆ inetd à²¯à²¿à²‚ದ à²šà²²à²¾à²¯à²¿à²¤à²µà²¾à²—à³à²µà²‚ತೆ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "ಸಾಂಬಾಗೆ nfs à²•à²¡à²¤à²•à³‹à²¶à²—ಳನà³à²¨à³ à²¹à²‚ಚಿಕೆ à²®à²¾à²¡à²¿à²•à³Šà²³à³à²³à³à²µà²‚ತೆ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL à²¦à³ƒà²¢à³€à²•à²°à²£ à²ªà²°à²¿à²šà²¾à²°à²•"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "sasl à²¦à³ƒà²¢à³€à²•à²°à²£ à²ªà²°à²¿à²šà²¾à²°à²•à²•à³à²•à³† /etc/shadow à²…ನà³à²¨à³ à²“ದಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "X-Windows à²ªà²°à²¿à²šà²¾à²°à²•à²µà³ à²’ಂದೠಮೆಮೊರಿ à²ªà³à²°à²¦à³‡à²¶à²•à³à²•à³† à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಬಲà³à²² à²¹à²¾à²—ೠಬರೆಯಬಲà³à²²à³à²¦à²¾à²—ಿ "
+-#~ "ಮà³à²¯à²¾à²ªà³ à²®à²¾à²¡à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "saslauthd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "scannerdaemon à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr ""
+-#~ "sysadm_t, sudo à²¹à²¾à²—à³ su à²ªà³à²°à²­à²¾à²µà²—ೊಂಡಿದà³à²¦à²•à³à²•à³† à²ªà²°à²¿à²µà²°à³à²¤à²¿à²¤à²—ೊಳà³à²³à³à²µà³à²¦à²¨à³à²¨à³ à²…ನà³à²®à²¤à²¿à²¸à²¬à³‡à²¡"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "ಯಾವà³à²¦à³† à²ªà³à²°à²•à³à²°à²¿à²¯à³†à²—ಳೠಕರà³à²¨à²²à³ à²˜à²Ÿà²•à²—ಳಿಗೆ à²²à³‹à²¡à³ à²†à²—à³à²µà³à²¦à²¨à³à²¨à³ à²…ನà³à²®à²¤à²¿à²¸à²¬à³‡à²¡"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "ಕರà³à²¨à²²à³ SELinux à²¨à³€à²¤à²¿à²¯à²¨à³à²¨à³ à²®à²¾à²°à³à²ªà²¡à²¿à²¸à²²à³ à²¯à²¾à²µà³à²¦à³‡ à²ªà³à²°à²•à³à²°à²¿à²¯à³†à²—ಳಿಗೆ à²…ನà³à²®à²¤à²¿à²¸à²¬à³‡à²¡"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "sendmail à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "setrans à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "setroublesoot à²¡à³†à²®à²¨à³â€à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "slapd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "slrnpull à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "smbd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "snmpd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "snort à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "soundd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "sound à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "Spamನಿಂದ à²¸à²‚ರಕà³à²·à²£à³†"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "spamd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "spamd à²¨à³†à²²à³† à²•à²¡à²¤à²•à³‹à²¶à²—ಳನà³à²¨à³ à²¨à²¿à²²à³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Spam assasin à²¡à³†à²®à²¨à³â€à²—ೆ à²œà²¾à²²à²¬à²‚ಧವನà³à²¨à³ à²¨à²¿à²²à³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "speedmgmt à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "squid à²¡à³†à²®à³‹à²¨à²¿à²—ೆ à²œà²¾à²²à²¬à²‚ಧವನà³à²¨à³ à²¸à²‚ಪರà³à²•à²¿à²¸à²²à³ à²…ನà³à²®à²¤à²¿à²¸à²²à³"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "squid à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ssh à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "sysadm_r:sysadm_t à²†à²—ಿ ssh à²ªà³à²°à²µà³‡à²¶à²µà²¨à³à²¨à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "staff_r à²¬à²³à²•à³†à²¦à²¾à²°à²°à²¿à²—ೆ sysadm à²¨ à²¨à³†à²²à³† dir à²¹à²¾à²—ೠಕಡತಗಳನà³à²¨à³ à²“ದಲೠಅನà³à²®à²¤à²¿à²¸à³ (~/."
+-#~ "bashrc à²¨à²‚ತಹ)"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "ವಿಶà³à²µà²µà³à²¯à²¾à²ªà²¿ SSL à²Ÿà²¨à³à²¨à²²à³"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "stunnel à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "stunnel à²¡à³†à²®à²¨à³ à²…ನà³à²¨à³ xinetd à²¦ à²¹à³Šà²°à²—ೆ à²à²•à²®à³‡à²µà²µà²¾à²—ಿ à²šà²²à²¾à²¯à²¿à²¤à²—ೊಳà³à²³à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³ "
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "swat à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "sxid à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "syslogd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "ಗಣಕ cron à²•à²¾à²°à³à²¯à²—ಳಿಗಾಗಿ(jobs) SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "tcp à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "telnet à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "tftpd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "transproxy à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "udev à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "uml à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "ಒಂದೠಕà³à²·à³‡à²¤à³à²° à²ªà²°à²¿à²µà²°à³à²¤à²¨à³†à²¯à²¨à³à²¨à³ à²¸à³à²ªà²·à³à²Ÿà²µà²¾à²—ಿ à²¸à³‚ಚಿಸದ à²¯à²¾à²µà³à²¦à³† à²¸à³‡à²µà³†à²—ಳನà³à²¨à³ à²’ಳಗೊಂಡಂತಹ xinetd "
+-#~ "ಯನà³à²¨à³ à²®à²¿à²¤à²¿à²—ೊಳಪಡದೆ à²šà²²à²¾à²¯à²¿à²¤à²—ೊಳà³à²³à²²à³ à²…ನà³à²®à²¤à²¿à²¸à²¿"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "ಒಂದೠಕà³à²·à³‡à²¤à³à²° à²ªà²°à²¿à²µà²°à³à²¤à²¨à³†à²¯à²¨à³à²¨à³ à²¸à³à²ªà²·à³à²Ÿà²µà²¾à²—ಿ à²¸à³‚ಚಿಸದ à²’ಂದೠrc à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà³â€à²¨à²¿à²‚ದ à²†à²°à²‚ಭಗೊಂಡ "
+-#~ "ಯಾವà³à²¦à³† à²¡à³†à²®à²¨à³ à²…ನà³à²¨à³ à²’ಳಗೊಂಡಂತಹ rc à²¸à³à²•à³à²°à²¿à²ªà³à²Ÿà³â€ à²…ನà³à²¨à³ à²®à²¿à²¤à²¿à²—ೊಳಪಡದೆ à²šà²²à²¾à²¯à²¿à²¤à²—ೊಳà³à²³à²²à³ "
+-#~ "ಅನà³à²®à²¤à²¿à²¸à²¿"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "rpm à²…ನà³à²¨à³ à²®à²¿à²¤à²¿à²—ೊಳಪಡದೆ à²šà²²à²¾à²¯à²¿à²¤à²—ೊಳà³à²³à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "ಸವಲತà³à²¤à³ à²‰à²ªà²¯à³à²•à³à²¤à²¤à³†à²—ಳಾದ hotplug à²¹à²¾à²—à³ insmod à²¨à²‚ತಹà³à²—ಳನà³à²¨à³ à²®à²¿à²¤à²¿à²—ೊಳಪಡದೆ "
+-#~ "ಚಲಾಯಿತಗೊಳà³à²³à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "updfstab à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "ಡೆಮೋನಿಗಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "user_r à²—ೆ su à²¨ à²®à³‚ಲಕ sysadm_r, sudo, à²…ಥವ userhelper à²…ನà³à²¨à³ à²¤à²²à³à²ªà²²à³ à²…ನà³à²®à²¤à²¿à²¸à²¿. "
+-#~ "ಇಲà³à²²à²¦à³† à²¹à³‹à²¦à²²à³à²²à²¿, à²•à³‡à²µà²² staff_r à²¹à²¾à²—ೆ à²®à²¾à²¡à³à²¤à³à²¤à²¦à³†"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "ಬಳಕೆದಾರರಿಗೆ à²†à²°à³‹à²¹à²¿à²¸à³ à²†à²œà³à²žà³†à²¯à²¨à³à²¨à³ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "ಸಾಮಾನà³à²¯ à²¬à²³à²•à³†à²¦à²¾à²°à²°à²¿à²—ೆ à²¨à³‡à²° à²®à³Œà²¸à²¿à²¨ à²¨à²¿à²²à³à²•à²£à³†à²¯à²¨à³à²¨à³ à²…ನà³à²®à²¤à²¿à²¸à³(ಕೇವಲ X à²ªà²°à²¿à²šà²¾à²°à²•à²µà²¨à³à²¨à³ à²®à²¾à²¤à³à²° "
+-#~ "ಅನà³à²®à²¤à²¿à²¸à³)"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "dmesg à²†à²œà³à²žà³†à²¯à²¨à³à²¨à³ à²šà²²à²¾à²¯à²¿à²¸à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "ಬಳಕೆದಾರರಿಗೆ à²œà²¾à²²à²¬à²‚ಧ à²¸à²‚ಪರà³à²•à²¸à²¾à²§à²¨à²—ಳನà³à²¨à³ à²¨à²¿à²¯à²‚ತà³à²°à²¿à²¸à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³(USERCTL=true à²¨ "
+-#~ "ಅಗತà³à²¯à²µà³ à²¸à²¹ à²‡à²°à³à²¤à³à²¤à²¦à³†)"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "ಸಾಮಾನà³à²¯ à²¬à²³à²•à³†à²¦à²¾à²°à²°à²¿à²—ೆ à²ªà²¿à²‚ಗೠಅನà³à²¨à³ à²•à²¾à²°à³à²¯à²—ತಗೊಳಿಸಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "ಬಳಕೆದಾರನನà³à²¨à³ r/w noextattrfile (FAT, CDROM, FLOPPY) à²—ೆ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "rw usb à²¸à²¾à²§à²¨à²—ಳಿಗೆ à²¬à²³à²•à³†à²¦à²¾à²°à²°à²¨à³à²¨à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "ಬಳಕೆದಾರರಿಗೆ TCP à²ªà²°à²¿à²šà²¾à²°à²•à²—ಳನà³à²¨à³ à²šà²²à²¾à²¯à²¿à²¸à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³ (ಸಂಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳಿಗೆ à²¬à³ˆà²‚ಡೠಮಾಡಿ "
+-#~ "ಹಾಗೠಅದೆ à²•à³à²·à³‡à²¤à³à²°à²¦à²¿à²‚ದ à²¹à²¾à²—ೠಬಳಕೆದಾರರ à²¹à³Šà²°à²—ಿನ à²¸à²‚ಪರà³à²•à²—ಳನà³à²¨à³ à²…ನà³à²®à²¤à²¿à²¸à³).  à²‡à²¦à²¨à³à²¨à³ "
+-#~ "ಅಶಕà³à²¤à²—ೊಳಿಸà³à²µà³à²¦à²°à²¿à²‚ದ à²…ದà³FTP à²œà²¡ à²•à³à²°à²®à²•à³à²•à³† à²’ತà³à²¤à²¾à²¯à²¿à²¸à³à²¤à³à²¤à²¦à³† à²¹à²¾à²—ೠಇತರೆ à²ªà³à²°à³Šà²Ÿà³‹à²•à²¾à²²à³â€à²—ಳನà³à²¨à³ "
+-#~ "ಸಹ à²¬à²¦à²²à²¾à²¯à²¿à²¸à²¬à²¹à³à²¦à³"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "ಬಳಕೆದಾರರಿಗೆ ttyfiles à²…ನà³à²¨à³ stat à²®à²¾à²¡à²²à³ à²…ನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "uucpd à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²¶à²•à³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "vmware à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²¶à²•à³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "watchdog à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²¶à²•à³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "winbind à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²¶à²•à³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "xdm à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "xdm à²ªà³à²°à²µà³‡à²¶à²—ಳನà³à²¨à³ sysadm_r:sysadm_t à²†à²—ಿ à²…ನà³à²®à²¤à²¿à²¸à³"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "xen à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "xen à²—ೆ à²­à³Œà²¤à²¿à²• à²¡à²¿à²¸à³à²•à³ à²¸à²¾à²§à²¨à²—ಳನà³à²¨à³ à²“ದಲà³/ಬರೆಯಲೠಅನà³à²®à²¤à²¿à²¸à³"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "xfs à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "xen constrol à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ypbind à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "NIS à²—à³à²ªà³à²¤à²ªà²¦ à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ypserv à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "NIS à²µà²°à³à²—ಾವಣಾ à²¡à³†à²®à³‹à²¨à²¿à²—ಾಗಿ SELinux à²¸à²‚ರಕà³à²·à²£à³†à²¯à²¨à³à²¨à³ à²…ಶಕà³à²¤à²—ೊಳಿಸà³"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "ಸವಲತà³à²¤à³à²—ಳಿಲà³à²²à²¦ à²¬à²³à²•à³†à²¦à²¾à²°à²° à²¨à³†à²²à³† à²•à²¡à²¤à²•à³‹à²¶à²—ಳನà³à²¨à³ à²¨à²¿à²°à³à²µà²¹à²¿à²¸à²²à³ SELinux webadm "
+-#~ "ಬಳಕೆದಾರನಿಗೆ à²…ನà³à²®à²¤à²¿à²¸à³"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "ಸವಲತà³à²¤à³à²—ಳಿಲà³à²²à²¦ à²¬à²³à²•à³†à²¦à²¾à²°à²° à²¨à³†à²²à³† à²•à²¡à²¤à²•à³‹à²¶à²—ಳನà³à²¨à³ à²“ದಲೠSELinux webadm à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¿à²—ೆ "
+-#~ "ಅನà³à²®à²¤à²¿à²¸à³"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "%s '%s' à²…ನà³à²¨à³ à²…ಳಿಸಿಹಾಕಬೇಕೆಂದೠನೀವೠಖಚಿತವೆ?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "%s à²…ನà³à²¨à³ à²…ಳಿಸಿಹಾಕà³"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "%s à²…ನà³à²¨à³ à²¸à³‡à²°à²¿à²¸à³"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "%s à²®à²¾à²°à³à²ªà²¡à²¿à²¸à³"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "ಅನà³à²®à²¤à²¿à²ªà³‚ರà³à²µà²•à²µà²¾à²—ಿ"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "ಒತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²•"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "ನೀತಿಯ à²ªà³à²°à²•à²¾à²°à²µà²¨à³à²¨à³ à²¬à²¦à²²à²¾à²¯à²¿à²¸à³à²µà³à²¦à²°à²¿à²‚ದ à²®à³à²‚ದಿನ à²¬à³‚ಟಿನಲà³à²²à²¿ à²‡à²¡à²¿ à²•à²¡à²¤à²µà³à²¯à²µà²¸à³à²¥à³†à²¯à²¨à³à²¨à³ à²²à³‡à²¬à²²à³ "
+-#~ "ಮಾಡà³à²µà³à²¦à³ à²…ಗತà³à²¯à²µà²¾à²—à³à²¤à³à²¤à²¦à³†. à²•à²¡à²¤ à²µà³à²¯à²µà²¸à³à²¥à³†à²—ೆ à²…ನà³à²—à³à²£à²µà²¾à²—ಿ à²ªà³à²¨à²ƒ à²²à³‡à²¬à²²à³ à²®à²¾à²¡à²²à³ à²¬à²¹à²³ à²¸à²®à²¯ "
+-#~ "ಹಿಡಿಯà³à²¤à³à²¤à²¦à³†.  à²¨à³€à²µà³ à²®à³à²‚ದà³à²µà²°à³†à²¯à²²à³ à²¬à²¯à²¸à³à²¤à³à²¤à³€à²°à³†?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux à²…ಶಕà³à²¤à²—ೊಂಡಿದà³à²¦à²•à³à²•à³† à²¬à²¦à²²à²¾à²¯à²¿à²¸à²²à³ à²ªà³à²¨à²°à³ à²¬à³‚ಟಿಸà³à²µà³à²¦à³ à²…ಗತà³à²¯à²µà²¾à²—à³à²¤à³à²¤à²¦à³†.  à²¹à²¾à²—ೆ "
+-#~ "ಮಾಡà³à²µà³à²¦à³ à²¸à³‚ಕà³à²¤à²µà²²à³à²².   à²¨à³€à²µà³ à²¨à²‚ತರ SELinux à²…ನà³à²¨à³ à²ªà³à²¨à²ƒ à²†à²¨à³ à²®à²¾à²¡à²²à³ à²¨à²¿à²°à³à²§à²°à²¿à²¸à²¿à²¦à²¾à²—, "
+-#~ "ಗಣಕವನà³à²¨à³ à²ªà³à²¨à²ƒ à²²à³‡à²¬à²²à³ à²®à²¾à²¡à³à²µà³à²¦à³ à²…ಗತà³à²¯à²µà²¾à²—à³à²¤à³à²¤à²¦à³†.  à²¨à³€à²µà³ à²•à³‡à²µà²² SELinux à²¨à²¿à²®à³à²® à²—ಣಕದಲà³à²²à²¿à²¨ "
+-#~ "ಒಂದೠತೊಂದರೆಗೆ à²•à²¾à²°à²£à²µà²¾à²—ಿದೆಯೆ à²Žà²‚ದೠನೋಡಲà³, à²…ನà³à²®à²¤à²¿à²ªà³‚ರà³à²µà²• à²•à³à²°à²®à²•à³à²•à³† à²¹à³‹à²—ಿ à²…ದೠಕೇವಲ "
+-#~ "ದೋಷಗಳನà³à²¨à³ à²¦à²¾à²–ಲಿಸà³à²¤à³à²¤à²¦à³†à²¯à³† à²¹à³Šà²°à²¤à³ SELinux à²¨à³€à²¤à²¿à²¯à²¨à³à²¨à³ à²’ತà³à²¤à²¾à²¯à²¿à²¸à³à²µà³à²¦à²¿à²²à³à²².  "
+-#~ "ಅನà³à²®à²¤à²¿à²ªà³‚ರà³à²µà²• à²•à³à²°à²®à²•à³à²•à³† à²’ಂದೠಪà³à²¨à²°à³ à²¬à³‚ಟಿನ à²…ಗತà³à²¯à²µà²¿à²°à³à²µà³à²¦à²¿à²²à³à²²    à²¨à³€à²µà³ à²®à³à²‚ದà³à²µà²°à³†à²¯à²²à³ "
+-#~ "ಬಯಸà³à²¤à³à²¤à³€à²°à³†?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux à²¶à²•à³à²¤à²—ೊಂಡ à²¸à³à²¥à²¿à²¤à²¿à²—ೆ à²¬à²¦à²²à²¾à²¯à²¿à²¸à³à²µà³à²¦à²°à²¿à²‚ದ à²®à³à²‚ದಿನ à²¬à³‚ಟಿನಲà³à²²à²¿ à²‡à²¡à²¿ à²•à²¡à²¤à²µà³à²¯à²µà²¸à³à²¥à³†à²¯à²¨à³à²¨à³ "
+-#~ "ಲೇಬಲೠಮಾಡà³à²µà³à²¦à³ à²…ಗತà³à²¯à²µà²¾à²—à³à²¤à³à²¤à²¦à³†. à²•à²¡à²¤ à²µà³à²¯à²µà²¸à³à²¥à³†à²—ೆ à²…ನà³à²—à³à²£à²µà²¾à²—ಿ à²ªà³à²¨à²ƒ à²²à³‡à²¬à²²à³ à²®à²¾à²¡à²²à³ à²¬à²¹à²³ "
+-#~ "ಸಮಯ à²¹à²¿à²¡à²¿à²¯à³à²¤à³à²¤à²¦à³†.  à²¨à³€à²µà³ à²®à³à²‚ದà³à²µà²°à³†à²¯à²²à³ à²¬à²¯à²¸à³à²¤à³à²¤à³€à²°à³†?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "ಕೃತಿಸà³à²µà²¾à²®à³à²¯ (c)2006 Red Hat, Inc.\n"
+-#~ "ಕೃತಿಸà³à²µà²¾à²®à³à²¯ (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux à²ªà³à²°à²µà³‡à²¶ à²®à³à²¯à²¾à²ªà²¿à²‚ಗನà³à²¨à³ à²¸à³‡à²°à²¿à²¸à³"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux à²œà²¾à²²à²¬à²‚ಧ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳನà³à²¨à³ à²¸à³‡à²°à²¿à²¸à³"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux à²¨ à²¬à²—ೆ"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "ಮಟà³à²Ÿ"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "ಕಡತದ à²µà²¿à²¶à²¿à²·à³à²Ÿ à²µà²¿à²µà²°à²—ಳà³"
+-
+-#~ msgid "File Type"
+-#~ msgstr "ಕಡತದ à²¬à²—ೆ"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "ಎಲà³à²²à²¾ à²•à²¡à²¤à²—ಳà³\n"
+-#~ "ಸಾಮಾನà³à²¯ à²•à²¡à²¤\n"
+-#~ "ಕಡತಕೋಶ\n"
+-#~ "ವೈಶಿಷà³à²Ÿà³à²¯ à²¸à²¾à²§à²¨\n"
+-#~ "ಬà³à²²à²¾à²•à³(block) à²¸à²¾à²§à²¨\n"
+-#~ "ಸಾಕೆಟà³\n"
+-#~ "ಸಾಂಕೇತಿಕ à²•à³Šà²‚ಡಿ\n"
+-#~ "ಹೆಸರಿಸಲಾದ à²ªà³ˆà²ªà³\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¨à³à²¨à³ à²¸à³‡à²°à²¿à²¸à³"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux à²¨à²¿à²°à³à²µà²¹à²£à³†"
+-
+-#~ msgid "Add"
+-#~ msgstr "ಸೇರಿಸà³"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "ಗà³à²£à²²à²•à³à²·à²£à²—ಳà³(_P)"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "ಅಳಿಸಿಹಾಕà³(_D)"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "ನಿರà³à²µà²¹à²£à²¾ à²µà²¸à³à²¤à³à²µà²¨à³à²¨à³ à²†à²°à²¿à²¸à³"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>ಆರಿಸà³:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "ಗಣಕ à²ªà³‚ರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ à²’ತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²• à²•à³à²°à²®"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "ಪà³à²°à²¸à²•à³à²¤ à²’ತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²• à²•à³à²°à²®"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "ಗಣಕ à²ªà³‚ರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ à²¨à³€à²¤à²¿à²¯ à²¬à²—ೆ: "
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "ಮà³à²‚ದಿನ à²¬à³‚ಟಿನಲà³à²²à²¿ à²‡à²¡à²¿ à²•à²¡à²¤à²µà³à²¯à²µà²¸à³à²¥à³†à²¯à²¨à³à²¨à³ à²ªà³à²¨à²ƒ à²²à³‡à²¬à²²à³ à²®à²¾à²¡à²²à³ à²¨à³€à²µà³ à²¬à²¯à²¸à²¿à²¦à²°à³† à²‡à²¦à²¨à³à²¨à³ "
+-#~ "ಆರಿಸಿ.  à²—ಣಕದ à²—ಾತà³à²°à²•à³à²•à³† à²…ನà³à²—à³à²£à²µà²¾à²—ಿ, à²ªà³à²¨à²ƒ à²²à³‡à²¬à²²à³ à²®à²¾à²¡à²²à³ à²¬à²¹à²³ à²¸à²®à²¯ "
+-#~ "ತೆಗೆದà³à²•à³Šà²³à³à²³à²¬à²¹à³à²¦à³.  à²¨à³€à²¤à²¿à²¯ à²¬à²—ೆಗಳನà³à²¨à³ à²¬à²¦à²²à²¾à²¯à²¿à²¸à³à²µà²‚ತಿದà³à²¦à²°à³† à²…ಥವ à²…ಶಕà³à²¤à²—ೊಂಡ à²¸à³à²¥à²¿à²¤à²¿à²¯à²¿à²‚ದ "
+-#~ "ಒತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²•à²•à³à²•à³† à²¹à³‹à²—à³à²µà²‚ತಿದà³à²¦à²°à³†, à²’ಂದೠಪà³à²¨à²ƒ à²²à³‡à²¬à²²à³ à²®à²¾à²¡à³à²µ à²…ಗತà³à²¯à²µà²¿à²¦à³†."
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "ಮà³à²‚ದಿನ à²¬à³‚ಟಿನಲà³à²²à²¿ à²ªà³à²¨à²°à³ à²²à³‡à²¬à²²à³ à²®à²¾à²¡à³."
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "ಬೂಲಿಯನೠಸಂಯೋಜನೆಯನà³à²¨à³ à²—ಣಕ à²ªà³‚ರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤à²•à³à²•à³† à²®à²°à²³à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "ಕಸà³à²Ÿà²®à³ˆà²à³ à²®à²¾à²¡à²²à²¾à²¦ à²¹à²¾à²—ೠಎಲà³à²²à²¾ à²¬à³‚ಲಿಯನà³â€à²—ಳ à²¨à²¡à³à²µà³† à²Ÿà²¾à²—ಲೠಮಾಡà³"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "ಶೋಧಕ(Filter)"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "ಕಡತ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ à²¸à³‡à²°à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "ಕಡತ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ à²®à²¾à²°à³à²ªà²¡à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "ಕಡತ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²µà²¨à³à²¨à³ à²…ಳಿಸಿಹಾಕà³"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "ಎಲà³à²²à²¾ à²¹à²¾à²—ೠಕಸà³à²Ÿà²®à³ˆà²à³ à²®à²¾à²¡à²²à²¾à²¦ à²•à²¡à²¤ à²¸à²¨à³à²¨à²¿à²µà³‡à²¶à²—ಳ à²¨à²¡à³à²µà³† à²Ÿà²¾à²—ಲೠಮಾಡà³"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²° à²®à³à²¯à²¾à²ªà²¿à²‚ಗನà³à²¨à³ à²¸à³‡à²°à²¿à²¸à³"
+-
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²° à²®à³à²¯à²¾à²ªà²¿à²‚ಗನà³à²¨à³ à²®à²¾à²°à³à²ªà²¡à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²° à²®à³à²¯à²¾à²ªà²¿à²‚ಗನà³à²¨à³ à²…ಳಿಸà³"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "ಅನà³à²µà²¾à²¦à²µà²¨à³à²¨à³ à²¸à³‡à²°à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "ಅನà³à²µà²¾à²¦à²µà²¨à³à²¨à³ à²®à²¾à²°à³à²ªà²¡à²¿à²¸à³"
+-
+-#~ msgid "Delete Translation"
+-#~ msgstr "ಅನà³à²µà²¾à²¦à²µà²¨à³à²¨à³ à²…ಳಿಸಿಹಾಕà³"
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²°à²¨à²¨à³à²¨à³ à²¸à²‚ಪಾದಿಸà³"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "ಜಾಲಬಂಧ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²µà²¨à³à²¨à³ à²¸à³‡à²°à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "ಜಾಲಬಂಧ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²µà²¨à³à²¨à³ à²¸à²‚ಪಾದಿಸà³"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "ಜಾಲಬಂಧ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²µà²¨à³à²¨à³ à²…ಳಿಸಿಹಾಕà³"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "ಕಸà³à²Ÿà²®à³ˆà²à³ à²®à²¾à²¡à²²à²¾à²¦ à²¹à²¾à²—ೠಎಲà³à²²à²¾ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳ à²¨à²¡à³à²µà³† à²Ÿà²¾à²—ಲೠಮಾಡà³"
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "ಹೊಸ à²¨à³€à²¤à²¿ à²˜à²Ÿà²•à²µà²¨à³à²¨à³ à²‰à²¤à³à²ªà²¾à²¦à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "ನೀತಿ à²˜à²Ÿà²•à²µà²¨à³à²¨à³ à²²à³‹à²¡à³ à²®à²¾à²¡à³"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "ಲೋಡೠಮಾಡಬಹà³à²¦à²¾à²¦ à²¨à³€à²¤à²¿à²¯ à²˜à²Ÿà²•à²µà²¨à³à²¨à³ à²¤à³†à²—ೆದà³à²¹à²¾à²•à³"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "ದಾಖಲೆ à²•à²¡à²¤à²—ಳಲà³à²²à²¿ à²¸à²¾à²®à²¾à²¨à³à²¯à²µà²¾à²—ಿ à²µà²°à²¦à²¿ à²®à²¾à²¡à²¦à³† à²‡à²°à³à²µ à²¹à³†à²šà³à²šà³à²µà²°à²¿ à²†à²¡à²¿à²Ÿà³ à²¨à²¿à²¯à²®à²—ಳನà³à²¨à³ à²¶à²•à³à²¤/"
+-#~ "ಅಶಕà³à²¤à²—ೊಳಿಸà³."
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "ಸಂವೇದನೆಯ à²®à²Ÿà³à²Ÿ (Sensitvity Level)"
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux à²¬à²³à²•à³†à²¦à²¾à²° '%s' à²¨ à²…ಗತà³à²¯à²µà²¿à²¦à³†"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "ಮೌಲà³à²¯à²¦ à²…ಗತà³à²¯à²µà²¿à²¦à³†"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "ಅನà³à²µà²¯/ಬಳಕೆದಾರನನà³à²¨à³ à²¯à²¾à²µà³à²¦à³† tcp à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳಿಗೆ à²¬à²¦à³à²§à²µà²¾à²—ಿರಲೠಅನà³à²®à²¤à²¿à²¸à³ > à³§à³¦à³¨à³ª"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "ಮಿತಿಗೊಳಪಟà³à²Ÿ à²…ನà³à²µà²¯/ಬಳಕೆದಾರನನà³à²¨à³ à²¯à²¾à²µà³à²¦à³† tcp à²¸à²‚ಪರà³à²• à²¸à³à²¥à²¾à²¨à²•à³à²•à³† à²¬à²¦à³à²§à²µà²¾à²—ಿರಲೠಅನà³à²®à²¤à²¿à²¸à³"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "ಅನà³à²µà²¯/ಬಳಕೆದಾರ à²ªà²¾à²¤à³à²°à²µà³ à²¬à²¦à³à²§à²µà²¾à²—ಿರà³à²µ tcp à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳೠಅಥವ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳ à²µà³à²¯à²¾à²ªà³à²¤à²¿à²—ಳ "
+-#~ "ಅಲà³à²ªà²µà²¿à²°à²¾à²® à²šà²¿à²¹à³à²¨à³†à²—ಳಿಂದ à²ªà³à²°à²¤à³à²¯à³‡à²•à²¿à²¸à²²à²¾à²¦ à²ªà²Ÿà³à²Ÿà²¿à²¯à²¨à³à²¨à³ à²¨à²®à³‚ದಿಸಿ. à²‰à²¦à²¾à²¹à²°à²£à³†à²—ೆ: 612, 650-660"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "SELinux à²¨à³€à²¤à²¿ à²‰à²¤à³à²ªà²¾à²¦à²¨à²¾ à²®à²¾à²‚ತà³à²°à²¿à²•(Druid)"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "ಕಾದಿರಿಸದ à²¸à²‚ಪರà³à²•à²¸à³à²¥à²¾à²¨à²—ಳೠ (> à³§à³¦à³¨à³ª)"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr ""
+-#~ "ನಿಮà³à²® à²…ನà³à²µà²¯à²µà³ à³¦ à²¯à³Šà²‚ದಿಗೆ bindresvport à²…ನà³à²¨à³ à²•à²°à³†à²®à²¾à²¡à²¿à²¦à²°à³† à²ˆ à²—à³à²‚ಡಿಯನà³à²¨à³ à²¬à²³à²¸à²¿."
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "ಒತà³à²¤à²¾à²¯à²ªà³‚ರà³à²µà²•\n"
+-#~ "ಅನà³à²®à²¤à²¿à²ªà³‚ರà³à²µà²•\n"
+-#~ "ಅಶಕà³à²¤à²—ೊಂಡ\n"
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/ko.po b/policycoreutils/po/ko.po
+index e69d33f..e0297ba 100644
+--- a/policycoreutils/po/ko.po
++++ b/policycoreutils/po/ko.po
+@@ -1,21 +1,24 @@
+-# translation of ko.po to Korean
+-# Eunju Kim <eukim@redhat.com>, 2006, 2007.
+-# translation of ko.po to
+-# translation of ko.po to
+-# translation of ko.po to
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# Eunju Kim <eukim@redhat.com>, 2006, 2007, 2009.
++# Hyunsok Oh <hoh@redhat.com>, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: ko\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-09-25 17:04+1000\n"
+-"Last-Translator: Eunju Kim <eukim@redhat.com>\n"
+-"Language-Team: Korean <ko@li.org>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Korean (http://www.transifex.net/projects/p/fedora/language/"
++"ko/)\n"
+ "Language: ko\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
++"Plural-Forms: nplurals=1; plural=0\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -91,7 +94,7 @@ msgstr "ì •ì±… íŒ¨í‚¤ì§€ë¥¼ í™œì„±í™”하려면 ë‹¤ìŒì„ ì‹¤í–‰í•©ë‹ˆë‹¤:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "글로벌 "
+ #: ../semanage/seobject.py:222
+ msgid "Could not create semanage handle"
+@@ -110,48 +113,44 @@ msgid "Could not establish semanage connection"
+ msgstr "semanage ì—°ê²°ì„ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "%s ì— ëŒ€í•œ MLS ë²”위를 ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "MLSê°€ í™œì„±í™”뜠ìƒíƒœë¥¼ í…ŒìŠ¤íŠ¸í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "아짠구현ë˜ì§€ ì•Šì•˜ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage íŠ¸ëžœìž­ì…˜ì´ ì´ë¯¸ ì§„행중입니다"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "semanage íŠ¸ëžœìž­ì…˜ì„ ì‹œìž‘í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage íŠ¸ëžœìž­ì…˜ì„ ì‹œìž‘í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "semanage íŠ¸ëžœìž­ì…˜ì„ ì»¤ë°‹í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage íŠ¸ëžœìž­ì…˜ì´ ì§„행중촠아닙니다"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux ì‚¬ìš©ìž ëª©ë¡ì„ ë§Œë“¤ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "SELinux ëª¨ë“ˆ ëª©ë¡ì„ ë§Œë“¤ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "모듈 ì´ë¦„"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "버전"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr ""
++msgstr "비활성화 "
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -159,9 +158,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "%s엠대한 %s옠역할선추가할 ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -183,12 +182,12 @@ msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "%s í—ˆìš© ë„ë©”ì¸ì„ ì„¤ì •í•  ìˆ˜ì—†ìŠµë‹ˆë‹¤ (모듈 ì„¤ì¹˜ ì‹¤íŒ¨) "
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "%s í—ˆìš© ë„ë©”ì¸ì„ ì œê±°í•˜ì§€ ëª»í–ˆìŠµë‹ˆë‹¤ (제거 ì‹¤íŒ¨) "
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -208,9 +207,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "%s엠대한 ë¡œê·¸ì¸ ë§µí•‘촠지정ë˜ì—ˆëŠ”지를 í™•ì¸í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤."
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux ì‚¬ìš©ìž %s ê°€ ì¡´ìž¬í•˜ì§€ ì•ŠìŠµë‹ˆë‹¤"
++msgstr "%s Linux ê·¸ë£¹ì´ ì¡´ìž¬í•˜ì§€ ì•ŠìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -277,15 +276,20 @@ msgid "Could not list login mappings"
+ msgstr "로그츠맵핑 ëª©ë¡ì„ ë§Œë“¤ ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "로그츠ì´ë¦„"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux ì‚¬ìš©ìž"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS ë²”위"
+@@ -303,9 +307,9 @@ msgid "Could not query user for %s"
+ msgstr "%s엠대한 ì‚¬ìš©ìžë¥¼ ì§ˆì˜í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%s엠대한 íŒŒì¼ ë¬¸ë§¥ì„ ì¶”가할 ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s엠대해 ìµœì†Œ í•˜ë‚˜ì˜ ì—­í• ì„ ì¶”가해야 í•©ë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -396,6 +400,7 @@ msgid "MCS Range"
+ msgstr "MCS ë²”위"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux ê¸°ëŠ¥"
+@@ -408,9 +413,8 @@ msgid "Port is required"
+ msgstr "í¬íŠ¸ í•„ìš”"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "유효하지 ì•Šì€ ì ‘ë‘ì–´ %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -497,14 +501,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "%s/%s엠대한 í¬íŠ¸ë¥¼ ìˆ˜ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "í¬íŠ¸ ëª©ë¡ì„ ë§Œë“¤ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "í¬íŠ¸ ëª©ë¡ì„ ë§Œë“¤ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "%s/%s엠대한 í¬íŠ¸ë¥¼ ì‚­ì œí•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s í¬íŠ¸ë¥¼ ì‚­ì œí•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -528,18 +531,17 @@ msgstr "SELinux í¬íŠ¸ ìœ í˜•"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "í¬íŠ¸ ë²ˆí˜¸"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "í¬íŠ¸ í•„ìš”"
++msgstr "노드 ì£¼ì†Œ í•„ìš”  "
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "알려지지 ì•Šê±°ë‚˜ ë˜ëŠ” ìƒëžµëœ í”„로토콜 "
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -556,14 +558,14 @@ msgstr "%s엠대한 í‚¤ë¥¼ ìƒì„±í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "%s/%s엠대한 í¬íŠ¸ê°€ ì§€ì •ë˜ì—ˆëŠ”지 í™•ì¸í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
++msgstr "%s ì£¼ì†Œê°€ ì§€ì •ë˜ì—ˆëŠ”지 í™•ì¸í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤   "
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%s엠사용ë˜ëŠ” í‚¤ë¥¼ ìƒì„±í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s엠대한 ì£¼ì†Œë¥¼ ìƒì„±í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤  "
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -572,74 +574,72 @@ msgid "Could not create context for %s"
+ msgstr "%s엠대한 ë¬¸ë§¥ì„ ìƒì„±í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%s엠대한 ì´ë¦„선설정할 ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s엠대한 ë§ˆìŠ¤í¬ë¥¼ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s엠대한 íŒŒì¼ ë¬¸ë§¥ì˜ ì‚¬ìš©ìžë¥¼ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s엠대한 ì£¼ì†Œ ë¬¸ë§¥ì˜ ì‚¬ìš©ìžë¥¼ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤  "
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s엠대한 íŒŒì¼ ë¬¸ë§¥ì˜ ì—­í• ì„ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s엠대한 ì£¼ì†Œ ë¬¸ë§¥ì˜ ì—­í• ì„ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤  "
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s엠대한 íŒŒì¼ ë¬¸ë§¥ì˜ ìœ í˜•ì„ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s엠대한 ì£¼ì†Œ ë¬¸ë§¥ì˜ ìœ í˜•ì„ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤  "
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%s엠대한 íŒŒì¼ ë¬¸ë§¥ì˜ mls í•­ëª©ì„ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s엠대한 ì£¼ì†Œ ë¬¸ë§¥ì˜ mls í•­ëª©ì„ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤  "
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s엠대한 íŒŒì¼ ë¬¸ë§¥ì„ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s엠대한 ì£¼ì†Œ ë¬¸ë§¥ì„ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤  "
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "%s/%s ì— ëŒ€í•œ í¬íŠ¸ë¥¼ ì¶”가할 ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s ì£¼ì†Œë¥¼ ì¶”가할 ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "%s/%s엠대한 í¬íŠ¸ê°€ ì§€ì •ë˜ì§€ ì•Šì•˜ìŠµë‹ˆë‹¤"
++msgstr "%s ì£¼ì†Œê°€ ì§€ì •ë˜ì§€ ì•Šì•˜ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "%s/%s엠대한 í¬íŠ¸ë¥¼ ì§ˆì˜í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s ì£¼ì†Œë¥¼ ì§ˆì˜í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "%s/%s엠대한 í¬íŠ¸ë¥¼ ìˆ˜ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s ì£¼ì†Œë¥¼ ìˆ˜ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤  "
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "%s/%s엠대한 í¬íŠ¸ê°€ ì •ì±…엠지정ë˜ì–´ ìžˆì–´ ì´ë¥¼ ì‚­ì œí•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s ì£¼ì†Œê°€ ì •ì±…엠지정ë˜ì–´ ìžˆì–´ ì´ë¥¼ ì‚­ì œí•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "%s엠대한 ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ì‚­ì œí•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s ì£¼ì†Œë¥¼ ì‚­ì œí•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%s엠대한 ë¡œê·¸ì¸ ë§µí•‘선삭제할 ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "í¬íŠ¸ ëª©ë¡ì„ ë§Œë“¤ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "주소 ëª©ë¡ì„ ë§Œë“¤ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -713,9 +713,8 @@ msgid "Could not delete interface %s"
+ msgstr "%s엠대한 ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ì‚­ì œí•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "%s엠대한 ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ì‚­ì œí•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -730,9 +729,9 @@ msgid "Context"
+ msgstr "문맥"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s엠대한 íŒŒì¼ ë¬¸ë§¥ì´ ì´ë¯¸ ì§€ì •ë˜ì—ˆìŠµë‹ˆë‹¤"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -740,9 +739,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux ì‚¬ìš©ìž %s ê°€ ì¡´ìž¬í•˜ì§€ ì•ŠìŠµë‹ˆë‹¤"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -761,7 +760,7 @@ msgstr "%s엠대한 íŒŒì¼ ë¬¸ë§¥ì˜ mls í•­ëª©ì„ ì„¤ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+-msgstr ""
++msgstr "잘못뜠파켠사양 "
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -821,14 +820,13 @@ msgid "Could not modify file context for %s"
+ msgstr "%s엠대한 íŒŒì¼ ë¬¸ë§¥ì„ ìˆ˜ì •í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "파켠문맥 ëª©ë¡ì„ ë§Œë“¤ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "파켠문맥 ëª©ë¡ì„ ë§Œë“¤ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "%s엠대한 íŒŒì¼ ë¬¸ë§¥ì„ ì‚­ì œí•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s íŒŒì¼ ë¬¸ë§¥ì„ ì‚­ì œí•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -863,11 +861,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -886,14 +883,14 @@ msgid "Could not query file context %s"
+ msgstr "%s엠대한 íŒŒì¼ ë¬¸ë§¥ì„ ì§ˆì˜í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "반드시 ì´ë¦„선입력해야 í•©ë‹ˆë‹¤"
++msgstr "다ìŒì˜ ê°’ ì¤‘ í•˜ë‚˜ë¥¼ ë°˜ë“œì‹œ ì§€ì •í•´ì•¼ í•©ë‹ˆë‹¤: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "%s엠대한 ë¶€ìš¸ì„ ì‚­ì œí•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
++msgstr "%s ë¶€ìš¸ì˜ í™œì„±í™”값선설정할 ìˆ˜ ì—†ìŠµë‹ˆë‹¤      "
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -903,7 +900,7 @@ msgstr "%s엠대한 ë¶€ì„선수정할 ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "잘못뜠형신%s: ê¸°ë¡ %s "
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -921,32 +918,32 @@ msgstr "부울 ëª©ë¡ì„ ë§Œë“¤ìˆ˜ ì—†ìŠµë‹ˆë‹¤"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "알려지지 ì•ŠìŒ "
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "비활성 "
+ #: ../semanage/seobject.py:2117
+ msgid "on"
+-msgstr ""
++msgstr "활성 "
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+ msgstr "SELinux ë¶€ìš¸"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "ìƒíƒœ"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "설명 "
+ #: ../newrole/newrole.c:201
+ #, c-format
+@@ -956,12 +953,12 @@ msgstr "PAM_TTY ì„¤ì •ì„ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
++msgstr "새 ì—­í• : ì„œë¹„스 ì´ë¦„ ì„¤ì • í•´ì‹œ í…Œì´ë¸” ì˜¤ë²„플로우\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
++msgstr "새 ì—­í• :  %s:  %lu í–‰ì— ì˜¤ë¥˜.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+@@ -1070,7 +1067,7 @@ msgstr "오류: ë‹¤ì¤‘ ë ˆë²¨ì´ ì§€ì •ë˜ì—ˆìŠµë‹ˆë‹¤\n"
+ #: ../newrole/newrole.c:865
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
++msgstr "오류: ë¹„보안 í„°ë¯¸ë„ì—ì„œ ë ˆë²¨ì„ ë³€ê²½í•˜ëŠ” ê²ƒì„ í—ˆìš©í•˜ì§€ ì•ŠìŠµë‹ˆë‹¤ \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+@@ -1138,9 +1135,9 @@ msgid "failed to get old_context.\n"
+ msgstr "오래뜠문맥를 ê°–는밠실패했습니다.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "오류! tty ì •ë³´ë¥¼ ê²€ìƒ‰í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤.\n"
++msgstr "경고! tty ì •ë³´ë¥¼ ê²€ìƒ‰í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+@@ -1187,19 +1184,19 @@ msgid "failed to exec shell\n"
+ msgstr "쉘선실행하는밠실패하였습니다\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "사용법:  %s [-q]\n"
++msgstr "사용법:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s:  ì •ì±…ì„ ì´ë¯¸ ì½ì–´ì™”습니다 ì´ˆê¸° ì„¤ì •ì´ í•„요합니다\n"
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:  ì •ì±…ì„ ì½ì–´ì˜¬ ìˆ˜ ì—†ìŠµë‹ˆë‹¤:  %s\n"
++msgstr "%s:  ì •ì±…ì„ ì½ì–´ì˜¬ ìˆ˜ ì—†ìŠµë‹ˆë‹¤ ê°•ì œ ëª¨ë“œê°€ í•„요합니다:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1285,342 +1282,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "옵션 ì˜¤ë¥˜ %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "%s를 ì—´ ìˆ˜ ì—†ìŠµë‹ˆë‹¤: ë²ˆì—­ì€ MLSê°€ ì•„ë‹Œ ìž¥ì¹˜ì—ì„œ ì§€ì›ë˜ì§€ ì•ŠìŠµë‹ˆë‹¤"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "레벨"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "번역"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "번역ì—는 ê³µë°± '%s'ì´(ê°€) í¬í•¨ë  ìˆ˜ ì—†ìŠµë‹ˆë‹¤ "
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "유효하지 ì•Šì€ ë ˆë²¨ '%s'"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%sì€(는) ë²ˆì—­ì—ì„œ ì´ë¯¸ ì •ì˜ë˜ì—ˆìŠµë‹ˆë‹¤"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%sì€(는) ë²ˆì—­ì—ì„œ ì •ì˜ë˜ì§€ ì•Šì•˜ìŠµë‹ˆë‹¤"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s엠대한 ë¡œê·¸ì¸ ë§µí•‘ì´ ì´ë¯¸ ì§€ì •ë˜ì—ˆìŠµë‹ˆë‹¤"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux ì‚¬ìš©ìž ë§µí•‘선추가합니다"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "%s엠대한 SELinux ì‚¬ìš©ìžê°€ ì´ë¯¸ ì§€ì •ë˜ì—ˆìŠµë‹ˆë‹¤"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "í¬íŠ¸ í•„ìš”"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "%s/%s엠대한 í¬íŠ¸ê°€ ì´ë¯¸ ì§€ì •ë˜ì—ˆìŠµë‹ˆë‹¤"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "%s엠대한 ì¸í„°íŽ˜ì´ìŠ¤ê°€ ì´ë¯¸ ì§€ì •ë˜ì—ˆìŠµë‹ˆë‹¤"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "기능 ì´ˆê¸°í™” ì˜¤ë¥˜, ì¤‘지합니다.\n"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "기능 ì„¤ì • ì˜¤ë¥˜, ì¤‘지합니다.\n"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS ì„¤ì • ì˜¤ë¥˜, ì¤‘지합니다\n"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "기능 ì·¨ì†Œ ì˜¤ë¥˜, ì¤‘지합니다\n"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "SETUID ê¸°ëŠ¥ ì·¨ì†Œ ì˜¤ë¥˜, ì¤‘지합니다\n"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "caps를 í•´ì œí•˜ëŠ” ë„중 ì˜¤ë¥˜ ë°œìƒ\n"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "번역쀠MLSê°€ ì•„ë‹Œ ìž¥ì¹˜ì—ì„œ ì§€ì›ë˜ì§€ ì•ŠìŠµë‹ˆë‹¤"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "부울"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "파켠레ì´ë¸”ë§"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "파켠문맥"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "파ì¼\n"
+-#~ "유형"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "사용잠맵핑"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "로그ì¸\n"
+-#~ "ì´ë¦„"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "사용ìž"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS ë²”위"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "'%s' ë¡œê·¸ì¸í•´ì•¼ í•©ë‹ˆë‹¤"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Policy Module"
+-#~ msgstr "ì •ì±… ëª¨ë“ˆ"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Load Policy Module"
+-#~ msgstr "ì •ì±… ëª¨ë“ˆ ì½ì–´ì˜¤ê¸°"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "translator-credits"
+-#~ msgstr "ê¹€ì€ì£¼ (eukim@redhat.com), 2006, 2007"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux ì •ì±… ìƒì„± ë„구"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "ê°ì‚¬(audit) ë©”세지를 ë³´ë‚´ëŠ”밠오류 ë°œìƒ.\n"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Boolean Name"
+-#~ msgstr "부울"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "반드시 ì´ë¦„선입력해야 í•©ë‹ˆë‹¤"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "반드시 ì´ë¦„선입력해야 í•©ë‹ˆë‹¤"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "You must enter a executable"
+-#~ msgstr "실행 ê°€ëŠ¥í•œ ì§€ë¥¼ ìž…력해야 í•©ë‹ˆë‹¤"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux ì„¤ì •"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "1ì—ì„œ %d까지 í¬íŠ¸ ë²ˆí˜¸ë¥¼ ë§¤ê²¨ì•¼ í•©ë‹ˆë‹¤"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "설정 í”„로세스엠해당하는 ì´ë¦„선입력해야 í•©ë‹ˆë‹¤"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "유형 ê°•ì¡° íŒŒì¼ "
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "ì¸í„°íŽ˜ì´ìŠ¤ íŒŒì¼"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "파켠문맥 íŒŒì¼"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "프로토콜"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "í¬íŠ¸"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "그룹 ë³´ê¸°"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux ì„œë¹„스 ë³´ì•ˆ"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "마운트"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "ë„¤íŠ¸ì›Œí¬ ì„¤ì •"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "ì¸ì‡„"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "호환"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL ì¸ì¦ ì„œë²„"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux ìœ í˜•"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux ì‚¬ìš©ìž ì¶”ê°€"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Add"
+-#~ msgstr "추가"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "_Delete"
+-#~ msgstr "ì‚­ì œ(_D)"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>ì„ íƒ:</b>"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "label37"
+-#~ msgstr "label37"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "í•„í„°"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "label50"
+-#~ msgstr "label50"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "파켠문맥 ì¶”ê°€"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "파켠문맥 ìˆ˜ì •"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "파켠문맥 ì‚­ì œ"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "label38"
+-#~ msgstr "label38"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux ì‚¬ìš©ìž ë§µí•‘ ì¶”ê°€"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux ì‚¬ìš©ìž ë§µí•‘ ìˆ˜ì •"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux ì‚¬ìš©ìž ë§µí•‘ ì‚­ì œ"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "label39"
+-#~ msgstr "label39"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "번역 ì¶”ê°€"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "번역 ìˆ˜ì •"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "번역 ì‚­ì œ"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "label41"
+-#~ msgstr "label41"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux ì‚¬ìš©ìž ìˆ˜ì •"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "label40"
+-#~ msgstr "label40"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "ë„¤íŠ¸ì›Œí¬ í¬íŠ¸ ì¶”ê°€"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "ë„¤íŠ¸ì›Œí¬ í¬íŠ¸ íŽ¸ì§‘"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "ë„¤íŠ¸ì›Œí¬ í¬íŠ¸ ì‚­ì œ"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "label42"
+-#~ msgstr "label42"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "새 ì •ì±… ëª¨ë“ˆ ìƒì„±"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "ì •ì±… ëª¨ë“ˆ ì½ì–´ì˜¤ê¸°"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "ì½ì–´ì˜¬ ìˆ˜ ìžˆëŠ” ì •ì±… ëª¨ë“ˆ ì‚­ì œ"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "label44"
+-#~ msgstr "label44"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux ì‚¬ìš©ìž '%s'ì´(ê°€) í•„요합니다"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "ê°’ í•„ìš”"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label51"
+-#~ msgstr "label50"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "value"
+-#~ msgstr "ê°’"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "You must be root to run %s."
+-#~ msgstr "rootë¡œ %sì„(를) ì‹¤í–‰í•´ì•¼ í•©ë‹ˆë‹¤."
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Other"
+-#~ msgstr "기타"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "MLS/MCS Level"
+-#~ msgstr "MLS/MCS ë ˆë²¨"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid ""
+-#~ "Labeling\n"
+-#~ "Prefix"
+-#~ msgstr ""
+-#~ "ë ˆì´ë¸”ë§\n"
+-#~ "ì ‘ë‘부"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Level"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS ë ˆë²¨"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/ku.po b/policycoreutils/po/ku.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/ku.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/lo.po b/policycoreutils/po/lo.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/lo.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/lt.po b/policycoreutils/po/lt.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/lt.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/lv.po b/policycoreutils/po/lv.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/lv.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/mai.po b/policycoreutils/po/mai.po
+new file mode 100644
+index 0000000..fd18454
+--- /dev/null
++++ b/policycoreutils/po/mai.po
+@@ -0,0 +1,3371 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# Sangeeta Kumari <sangeeta09@gmail.com>, 2009.
++msgid ""
++msgstr ""
++"Project-Id-Version: Policycoreutils\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Maithili (http://www.transifex.net/projects/p/fedora/language/"
++"mai/)\n"
++"Language: mai\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
++
++#: ../run_init/run_init.c:67
++msgid ""
++"USAGE: run_init <script> <args ...>\n"
++"  where: <script> is the name of the init script to run,\n"
++"         <args ...> are the arguments to that script."
++msgstr ""
++"पà¥à¤°à¤¯à¥‹à¤—: run_init <script> <args ...>\n"
++"  à¤œà¤¤à¤: <script> init à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤• à¤¨à¤¾à¤® à¤…छि à¤šà¤²à¤¾à¤¬à¥ˆ à¤• à¤²à¥‡à¤²,\n"
++"         <args ...> à¤ˆ à¤‰à¤¸ à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ à¤• à¤¤à¤°à¥à¤• à¤…छि."
++
++#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
++#, c-format
++msgid "failed to initialize PAM\n"
++msgstr "PAM à¤†à¤°à¤‚भीकरणमे à¤µà¤¿à¤«à¤²\n"
++
++#: ../run_init/run_init.c:139
++#, c-format
++msgid "failed to get account information\n"
++msgstr "खाता à¤¸à¥‚चना à¤ªà¤¾à¤¬à¥ˆà¤®à¥‡ à¤µà¤¿à¤«à¤²\n"
++
++#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
++msgid "Password:"
++msgstr "शबà¥à¤¦à¤•à¥‚ट:"
++
++#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
++#, c-format
++msgid "Cannot find your entry in the shadow passwd file.\n"
++msgstr "अहाà¤à¤• à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿à¤•à¥‡à¤ à¤›à¤¾à¤¯à¤¾ à¤¶à¤¬à¥à¤¦à¤•à¥‚ट à¤«à¤¾à¤‡à¤²à¤®à¥‡ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤².\n"
++
++#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
++#, c-format
++msgid "getpass cannot open /dev/tty\n"
++msgstr "getpass cannot open /dev/tty\n"
++
++#: ../run_init/run_init.c:275
++#, c-format
++msgid "run_init: incorrect password for %s\n"
++msgstr "run_init: %s à¤•' à¤²à¥‡à¤² à¤—लत à¤¶à¤¬à¥à¤¦à¤•à¥‚ट\n"
++
++#: ../run_init/run_init.c:309
++#, c-format
++msgid "Could not open file %s\n"
++msgstr "%s à¤«à¤¾à¤‡à¤² à¤–ोलि à¤¨à¤¹à¤¿ à¤¸à¤•à¤²\n"
++
++#: ../run_init/run_init.c:336
++#, c-format
++msgid "No context in file %s\n"
++msgstr "%s à¤«à¤¾à¤‡à¤²à¤®à¥‡ à¤•à¥‹à¤¨à¥‹ à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¤¿\n"
++
++#: ../run_init/run_init.c:361
++#, c-format
++msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
++msgstr "कà¥à¤·à¤®à¤¾ à¤•à¤°à¥‚, run_init à¤•à¥‡à¤ à¤¸à¤¿à¤°à¥à¤« SELinux à¤•à¤°à¥à¤¨à¥‡à¤² à¤ªà¤° à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤à¤² à¤œà¤¾à¤ à¤¸à¤•à¥ˆà¤¤ à¤…छि.\n"
++
++#: ../run_init/run_init.c:380
++#, c-format
++msgid "authentication failed.\n"
++msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ à¤µà¤¿à¤«à¤².\n"
++
++#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
++#, c-format
++msgid "Could not set exec context to %s.\n"
++msgstr "exec à¤¸à¤‚दरà¥à¤­ %s à¤®à¥‡ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤².\n"
++
++#: ../audit2allow/audit2allow:230
++msgid "******************** IMPORTANT ***********************\n"
++msgstr "******************** à¤®à¤¹à¤¤à¥à¤µà¤ªà¥‚रà¥à¤£ ***********************\n"
++
++#: ../audit2allow/audit2allow:231
++msgid "To make this policy package active, execute:"
++msgstr "à¤à¤¹à¤¿ à¤¨à¥€à¤¤à¤¿ à¤•à¥‡à¤ à¤¸à¤•à¥à¤°à¤¿à¤¯ à¤¬à¤¨à¤¾à¤¬à¥ˆ à¤•' à¤²à¥‡à¤², à¤šà¤²à¤¾à¤‰:"
++
++#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
++msgid "global"
++msgstr "वैशà¥à¤µà¤¿à¤•"
++
++#: ../semanage/seobject.py:222
++msgid "Could not create semanage handle"
++msgstr "semanage à¤¨à¤¿à¤¯à¤‚तà¥à¤°à¤£ à¤†à¤°à¤‚भ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:230
++msgid "SELinux policy is not managed or store cannot be accessed."
++msgstr "SELinux à¤¨à¥€à¤¤à¤¿ à¤ªà¥à¤°à¤¬à¤‚धित à¤¨à¤¹à¤¿ à¤…छि à¤¯à¤¾ à¤­à¤‚डार à¤…भिगम à¤¨à¤¹à¤¿ à¤•à¤à¤² à¤œà¤¾à¤ à¤¸à¤•à¥ˆà¤¤ à¤…छि."
++
++#: ../semanage/seobject.py:235
++msgid "Cannot read policy store."
++msgstr "नीति à¤­à¤‚डार à¤¨à¤¹à¤¿ à¤ªà¤¢à¤¼à¤¿ à¤¸à¤•à¥ˆà¤¤ à¤…छि."
++
++#: ../semanage/seobject.py:240
++msgid "Could not establish semanage connection"
++msgstr "semanage à¤¸à¤‚बंधन à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:245
++msgid "Could not test MLS enabled status"
++msgstr ""
++
++#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
++msgid "Not yet implemented"
++msgstr "अखन à¤¤à¤•à¤¿ à¤²à¤¾à¤—ू à¤¨à¤¹à¤¿"
++
++#: ../semanage/seobject.py:255
++msgid "Semanage transaction already in progress"
++msgstr ""
++
++#: ../semanage/seobject.py:264
++msgid "Could not start semanage transaction"
++msgstr "semanage à¤µà¤¿à¤¨à¤¿à¤®à¤¯ à¤†à¤°à¤‚भ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:274
++msgid "Could not commit semanage transaction"
++msgstr ""
++
++#: ../semanage/seobject.py:279
++msgid "Semanage transaction not in progress"
++msgstr ""
++
++#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
++msgid "Could not list SELinux modules"
++msgstr ""
++
++#: ../semanage/seobject.py:304
++msgid "Modules Name"
++msgstr ""
++
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
++msgid "Version"
++msgstr "संसà¥à¤•à¤°à¤£"
++
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
++msgid "Disabled"
++msgstr "निषà¥à¤•à¥à¤°à¤¿à¤¯"
++
++#: ../semanage/seobject.py:322
++#, python-format
++msgid "Could not disable module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:333
++#, python-format
++msgid "Could not enable module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:348
++#, python-format
++msgid "Could not remove module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:358
++msgid "dontaudit requires either 'on' or 'off'"
++msgstr ""
++
++#: ../semanage/seobject.py:387
++msgid "Builtin Permissive Types"
++msgstr ""
++
++#: ../semanage/seobject.py:397
++msgid "Customized Permissive Types"
++msgstr ""
++
++#: ../semanage/seobject.py:438
++#, python-format
++msgid "Could not set permissive domain %s (module installation failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:444
++#, python-format
++msgid "Could not remove permissive domain %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
++#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
++#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
++#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
++#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
++#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
++#: ../semanage/seobject.py:2037
++#, python-format
++msgid "Could not create a key for %s"
++msgstr "%s à¤•' à¤²à¥‡à¤² à¤•à¥à¤‚जी à¤¨à¤¹à¤¿ à¤¬à¤¨à¤¾à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
++#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
++#, python-format
++msgid "Could not check if login mapping for %s is defined"
++msgstr "नहि à¤œà¤¾à¤à¤šà¤¿ à¤¸à¤•à¤² à¤œà¤ %s à¤•' à¤²à¥‡à¤² à¤²à¤¾à¤—िन à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि"
++
++#: ../semanage/seobject.py:492
++#, python-format
++msgid "Linux Group %s does not exist"
++msgstr ""
++
++#: ../semanage/seobject.py:497
++#, python-format
++msgid "Linux User %s does not exist"
++msgstr "Linux à¤ªà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤®à¥‹à¤œà¥‚द à¤¨à¤¹à¤¿ à¤…छि"
++
++#: ../semanage/seobject.py:501
++#, python-format
++msgid "Could not create login mapping for %s"
++msgstr "%s à¤•' à¤²à¥‡à¤² à¤²à¤¾à¤—िन à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤¨à¤¹à¤¿ à¤¬à¤¨à¤¾à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
++#, python-format
++msgid "Could not set name for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤¨à¤¾à¤® à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
++#, python-format
++msgid "Could not set MLS range for %s"
++msgstr "MLS à¤ªà¤°à¤¿à¤¸à¤° %s à¤• à¤²à¥‡à¤² à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:514
++#, python-format
++msgid "Could not set SELinux user for %s"
++msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤• à¤²à¥‡à¤² à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:518
++#, python-format
++msgid "Could not add login mapping for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤²à¥‰à¤—िन à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤œà¥‹à¤¡à¤¼ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:536
++msgid "Requires seuser or serange"
++msgstr "seuser à¤…थवा serange à¤œà¤°à¥‚री"
++
++#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
++#, python-format
++msgid "Login mapping for %s is not defined"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤²à¥‰à¤—िन à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¨à¤¹à¤¿ à¤…छि"
++
++#: ../semanage/seobject.py:563
++#, python-format
++msgid "Could not query seuser for %s"
++msgstr "seuser à¤•à¥‡à¤ %s à¤• à¤²à¥‡à¤² à¤ªà¥à¤°à¤¶à¥à¤¨ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:577
++#, python-format
++msgid "Could not modify login mapping for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤²à¥‰à¤—िन à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤¨à¤¹à¤¿ à¤°à¥‚पांतरित à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:611
++#, python-format
++msgid "Login mapping for %s is defined in policy, cannot be deleted"
++msgstr "नीतिमे %s à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि, à¤®à¥‡à¤Ÿà¤¾à¤“ल à¤¨à¤¹à¤¿ à¤œà¤¾à¤ à¤¸à¤•à¤¤"
++
++#: ../semanage/seobject.py:615
++#, python-format
++msgid "Could not delete login mapping for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤²à¥‰à¤—िन à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤¨à¤¹à¤¿ à¤®à¥‡à¤Ÿà¤¾à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
++#: ../semanage/seobject.py:893
++msgid "Could not list login mappings"
++msgstr "लॉगिन à¤®à¥ˆà¤ªà¤¿à¤‚ग à¤¨à¤¹à¤¿ à¤¸à¥‚चीबदà¥à¤§ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
++msgid "Login Name"
++msgstr "लॉगिन à¤¨à¤¾à¤®"
++
++#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
++msgid "SELinux User"
++msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾"
++
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
++msgid "MLS/MCS Range"
++msgstr "MLS/MCS à¤ªà¤°à¤¿à¤¸à¤°"
++
++#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
++#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
++#: ../semanage/seobject.py:860
++#, python-format
++msgid "Could not check if SELinux user %s is defined"
++msgstr "जाà¤à¤š à¤¨à¤¹à¤¿ à¤¸à¤•à¤² à¤œà¥‡ SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि"
++
++#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
++#: ../semanage/seobject.py:866
++#, python-format
++msgid "Could not query user for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾à¤•à¥‡à¤ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤¤"
++
++#: ../semanage/seobject.py:722
++#, python-format
++msgid "You must add at least one role for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:737
++#, python-format
++msgid "Could not create SELinux user for %s"
++msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤• à¤²à¥‡à¤² à¤¬à¤¨à¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:746
++#, python-format
++msgid "Could not add role %s for %s"
++msgstr "%s à¤­à¥‚मिका %s à¤• à¤²à¥‡à¤² à¤œà¥‹à¤¡à¤¼ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:755
++#, python-format
++msgid "Could not set MLS level for %s"
++msgstr "MLS à¤¸à¥à¤¤à¤° %s à¤• à¤²à¥‡à¤² à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:758
++#, python-format
++msgid "Could not add prefix %s for %s"
++msgstr "%s à¤‰à¤ªà¤¸à¤°à¥à¤— %s à¤• à¤²à¥‡à¤² à¤¨à¤¹à¤¿ à¤œà¥‹à¤¡à¤¼ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:761
++#, python-format
++msgid "Could not extract key for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤•à¥à¤‚जी à¤¨à¤¿à¤•à¤¾à¤² à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:765
++#, python-format
++msgid "Could not add SELinux user %s"
++msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤¨à¤¹à¤¿ à¤œà¥‹à¤¡à¤¼ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:787
++msgid "Requires prefix, roles, level or range"
++msgstr "उपसरà¥à¤—, à¤­à¥‚मिका, à¤¸à¥à¤¤à¤° à¤¯à¤¾ à¤ªà¤°à¤¿à¤¸à¤° à¤œà¤°à¥‚री"
++
++#: ../semanage/seobject.py:789
++msgid "Requires prefix or roles"
++msgstr "उपसरà¥à¤— à¤¯à¤¾ à¤­à¥‚मिका à¤œà¤°à¥‚री"
++
++#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
++#, python-format
++msgid "SELinux user %s is not defined"
++msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¨à¤¹à¤¿ à¤…छि"
++
++#: ../semanage/seobject.py:828
++#, python-format
++msgid "Could not modify SELinux user %s"
++msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤¨à¤¹à¤¿ à¤¸à¥à¤§à¤¾à¤° à¤¸à¤•à¤¤"
++
++#: ../semanage/seobject.py:862
++#, python-format
++msgid "SELinux user %s is defined in policy, cannot be deleted"
++msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤¨à¥€à¤¤à¤¿à¤®à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि, à¤®à¥‡à¤Ÿà¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤¤"
++
++#: ../semanage/seobject.py:873
++#, python-format
++msgid "Could not delete SELinux user %s"
++msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤®à¥‡à¤Ÿà¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:911
++msgid "Could not list SELinux users"
++msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¸à¥‚चीबदà¥à¤§ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:917
++#, python-format
++msgid "Could not list roles for user %s"
++msgstr "%s à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤• à¤²à¥‡à¤² à¤­à¥‚मिका à¤¸à¥‚चीबदà¥à¤§ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:942
++msgid "Labeling"
++msgstr "लेबलिंग"
++
++#: ../semanage/seobject.py:942
++msgid "MLS/"
++msgstr "MLS/"
++
++#: ../semanage/seobject.py:943
++msgid "Prefix"
++msgstr "उपसरà¥à¤—"
++
++#: ../semanage/seobject.py:943
++msgid "MCS Level"
++msgstr "MCS à¤¸à¥à¤¤à¤°"
++
++#: ../semanage/seobject.py:943
++msgid "MCS Range"
++msgstr "MCS à¤ªà¤°à¤¿à¤¸à¤°"
++
++#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
++msgid "SELinux Roles"
++msgstr "SELinux à¤­à¥‚मिका"
++
++#: ../semanage/seobject.py:963
++msgid "Protocol udp or tcp is required"
++msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•à¥‰à¤² udp à¤¯à¤¾ tcp à¤œà¤°à¥‚री à¤…छि"
++
++#: ../semanage/seobject.py:965
++msgid "Port is required"
++msgstr "पोरà¥à¤Ÿ à¤œà¤°à¥‚री à¤…छि"
++
++#: ../semanage/seobject.py:975
++msgid "Invalid Port"
++msgstr ""
++
++#: ../semanage/seobject.py:979
++#, python-format
++msgid "Could not create a key for %s/%s"
++msgstr "%s/%s à¤• à¤²à¥‡à¤² à¤•à¥à¤‚जी à¤¨à¤¹à¤¿ à¤¬à¤¨à¤¾à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:990
++msgid "Type is required"
++msgstr "टाइप à¤œà¤°à¥‚री à¤…छि"
++
++#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
++#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
++#, python-format
++msgid "Could not check if port %s/%s is defined"
++msgstr "जाà¤à¤š à¤¨à¤¹à¤¿ à¤¸à¤•à¤² à¤œà¤ à¤ªà¥‹à¤°à¥à¤Ÿ %s/%s à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि"
++
++#: ../semanage/seobject.py:998
++#, python-format
++msgid "Port %s/%s already defined"
++msgstr "%s/%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤ªà¤¹à¤²à¥‡ à¤¸à¤ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि"
++
++#: ../semanage/seobject.py:1002
++#, python-format
++msgid "Could not create port for %s/%s"
++msgstr "%s/%s à¤• à¤²à¥‡à¤² à¤ªà¥‹à¤°à¥à¤Ÿ à¤¬à¤¨à¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1008
++#, python-format
++msgid "Could not create context for %s/%s"
++msgstr "%s/%s à¤• à¤²à¥‡à¤² à¤¸à¤‚दरà¥à¤­ à¤¬à¤¨à¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1012
++#, python-format
++msgid "Could not set user in port context for %s/%s"
++msgstr "%s/%s à¤• à¤²à¥‡à¤² à¤ªà¥‹à¤°à¥à¤Ÿ à¤¸à¤‚दरà¥à¤­à¤®à¥‡ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1016
++#, python-format
++msgid "Could not set role in port context for %s/%s"
++msgstr "%s/%s à¤• à¤²à¥‡à¤² à¤ªà¥‹à¤°à¥à¤Ÿ à¤¸à¤‚दरà¥à¤­à¤®à¥‡ à¤­à¥‚मिका à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1020
++#, python-format
++msgid "Could not set type in port context for %s/%s"
++msgstr "%s/%s à¤• à¤²à¥‡à¤² à¤ªà¥‹à¤°à¥à¤Ÿ à¤¸à¤‚दरà¥à¤­à¤®à¥‡ à¤Ÿà¤¾à¤‡à¤ª à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1025
++#, python-format
++msgid "Could not set mls fields in port context for %s/%s"
++msgstr "%s/%s à¤• à¤²à¥‡à¤² à¤ªà¥‹à¤°à¥à¤Ÿ à¤¸à¤‚दरà¥à¤­à¤®à¥‡ à¤•à¥à¤·à¥‡à¤¤à¥à¤° mls à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1029
++#, python-format
++msgid "Could not set port context for %s/%s"
++msgstr "%s/%s à¤• à¤²à¥‡à¤² à¤ªà¥‹à¤°à¥à¤Ÿ à¤¸à¤‚दरà¥à¤­ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1033
++#, python-format
++msgid "Could not add port %s/%s"
++msgstr "%s/%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤œà¥‹à¤¡à¤¼à¤¿ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
++#: ../semanage/seobject.py:1508
++msgid "Requires setype or serange"
++msgstr "setype à¤¯à¤¾ serange à¤œà¤°à¥‚री"
++
++#: ../semanage/seobject.py:1049
++msgid "Requires setype"
++msgstr "सेटटाइप à¤œà¤°à¥‚री"
++
++#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
++#, python-format
++msgid "Port %s/%s is not defined"
++msgstr "पोरà¥à¤Ÿ %s/%s à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¨à¤¹à¤¿ à¤…छि"
++
++#: ../semanage/seobject.py:1061
++#, python-format
++msgid "Could not query port %s/%s"
++msgstr "%s/%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1072
++#, python-format
++msgid "Could not modify port %s/%s"
++msgstr "%s/%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤°à¥‚पांतरित à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤² "
++
++#: ../semanage/seobject.py:1085
++msgid "Could not list the ports"
++msgstr "पोरà¥à¤Ÿ à¤¸à¥‚ची à¤¬à¤¦à¥à¤§ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1101
++#, python-format
++msgid "Could not delete the port %s"
++msgstr "%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤®à¥‡à¤Ÿà¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1118
++#, python-format
++msgid "Port %s/%s is defined in policy, cannot be deleted"
++msgstr "%s/%s à¤¨à¥€à¤¤à¤¿à¤®à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि, à¤®à¥‡à¤Ÿà¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤¤"
++
++#: ../semanage/seobject.py:1122
++#, python-format
++msgid "Could not delete port %s/%s"
++msgstr "%s/%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤®à¥‡à¤Ÿà¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤¤"
++
++#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
++msgid "Could not list ports"
++msgstr "पोरà¥à¤Ÿ à¤¸à¥‚ची à¤¬à¤¦à¥à¤§ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1199
++msgid "SELinux Port Type"
++msgstr "SELinux à¤ªà¥‹à¤°à¥à¤Ÿ à¤ªà¥à¤°à¤•à¤¾à¤°"
++
++#: ../semanage/seobject.py:1199
++msgid "Proto"
++msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹"
++
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
++msgid "Port Number"
++msgstr "पोरà¥à¤Ÿ à¤¸à¤‚खà¥à¤¯à¤¾"
++
++#: ../semanage/seobject.py:1218
++msgid "Node Address is required"
++msgstr ""
++
++#: ../semanage/seobject.py:1233
++msgid "Unknown or missing protocol"
++msgstr ""
++
++#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
++#: ../semanage/seobject.py:1724
++msgid "SELinux Type is required"
++msgstr "SELinux à¤ªà¥à¤°à¤•à¤¾à¤° à¤œà¤°à¥‚री à¤…छि"
++
++#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
++#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
++#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
++#: ../semanage/seobject.py:1728
++#, python-format
++msgid "Could not create key for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤•à¥à¤‚जी à¤¨à¤¹à¤¿ à¤¬à¤¨à¤¾à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
++#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
++#, python-format
++msgid "Could not check if addr %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1262
++#, python-format
++msgid "Could not create addr for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
++#: ../semanage/seobject.py:1686
++#, python-format
++msgid "Could not create context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤¸à¤‚दरà¥à¤­ à¤¬à¤¨à¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1272
++#, python-format
++msgid "Could not set mask for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1276
++#, python-format
++msgid "Could not set user in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1280
++#, python-format
++msgid "Could not set role in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1284
++#, python-format
++msgid "Could not set type in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1289
++#, python-format
++msgid "Could not set mls fields in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1293
++#, python-format
++msgid "Could not set addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1297
++#, python-format
++msgid "Could not add addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
++#, python-format
++msgid "Addr %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1326
++#, python-format
++msgid "Could not query addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1336
++#, python-format
++msgid "Could not modify addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1364
++#, python-format
++msgid "Addr %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1368
++#, python-format
++msgid "Could not delete addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1380
++msgid "Could not deleteall node mappings"
++msgstr ""
++
++#: ../semanage/seobject.py:1394
++msgid "Could not list addrs"
++msgstr ""
++
++#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
++#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
++#, python-format
++msgid "Could not check if interface %s is defined"
++msgstr "जांच à¤¨à¤¹à¤¿ à¤¸à¤•à¤² à¤œà¤ %s à¤…ंतरफलक à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि"
++
++#: ../semanage/seobject.py:1461
++#, python-format
++msgid "Could not create interface for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤…ंतरफलक à¤¨à¤¹à¤¿ à¤¬à¤¨à¤¾à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1470
++#, python-format
++msgid "Could not set user in interface context for %s"
++msgstr "उपयोकà¥à¤¤à¤¾ à¤•à¥‡à¤ %s à¤• à¤²à¥‡à¤² à¤…ंतरफलक à¤¸à¤‚दरà¥à¤­à¤®à¥‡ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1474
++#, python-format
++msgid "Could not set role in interface context for %s"
++msgstr "भूमिका à¤•à¥‡à¤ %s à¤• à¤²à¥‡à¤² à¤…ंतरफलक à¤¸à¤‚दरà¥à¤­à¤®à¥‡ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1478
++#, python-format
++msgid "Could not set type in interface context for %s"
++msgstr "टाइप à¤•à¥‡à¤ %s à¤• à¤²à¥‡à¤² à¤…ंतरफलक à¤¸à¤‚दरà¥à¤­à¤®à¥‡ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1483
++#, python-format
++msgid "Could not set mls fields in interface context for %s"
++msgstr "mls à¤•à¥à¤·à¥‡à¤¤à¥à¤° %s à¤• à¤²à¥‡à¤² à¤…ंतरफलक à¤¸à¤‚दरà¥à¤­à¤®à¥‡ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1487
++#, python-format
++msgid "Could not set interface context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤…ंतरफलक à¤¸à¤‚दरà¥à¤­ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1491
++#, python-format
++msgid "Could not set message context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤¸à¤‚देश à¤¸à¤‚दरà¥à¤­ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1495
++#, python-format
++msgid "Could not add interface %s"
++msgstr "%s à¤…ंतरफलक à¤œà¥‹à¤¡à¤¼ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
++#, python-format
++msgid "Interface %s is not defined"
++msgstr "%s à¤…ंतरफलक à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¨à¤¹à¤¿ à¤…छि"
++
++#: ../semanage/seobject.py:1522
++#, python-format
++msgid "Could not query interface %s"
++msgstr "%s à¤…ंतरफलक à¤ªà¥à¤°à¤¶à¥à¤¨ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤¤"
++
++#: ../semanage/seobject.py:1533
++#, python-format
++msgid "Could not modify interface %s"
++msgstr "%s à¤…ंतरफलक à¤°à¥‚पांतरित à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1558
++#, python-format
++msgid "Interface %s is defined in policy, cannot be deleted"
++msgstr "अंतरफलक %s à¤¨à¥€à¤¤à¤¿à¤®à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि, à¤®à¥‡à¤Ÿà¤¾à¤“ल à¤¨à¤¹à¤¿ à¤œà¤¾à¤ à¤¸à¤•à¤¤"
++
++#: ../semanage/seobject.py:1562
++#, python-format
++msgid "Could not delete interface %s"
++msgstr "%s à¤…ंतरफलक à¤®à¥‡à¤Ÿà¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1574
++msgid "Could not delete all interface  mappings"
++msgstr ""
++
++#: ../semanage/seobject.py:1588
++msgid "Could not list interfaces"
++msgstr "अंतरफलक à¤¸à¥‚चीबदà¥à¤§ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1613
++msgid "SELinux Interface"
++msgstr "SELinux à¤…ंतरफलक"
++
++#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
++msgid "Context"
++msgstr "संदरà¥à¤­"
++
++#: ../semanage/seobject.py:1663
++#, python-format
++msgid "Equivalence class for %s already exists"
++msgstr ""
++
++#: ../semanage/seobject.py:1669
++#, python-format
++msgid "File spec %s conflicts with equivalency rule '%s %s'"
++msgstr ""
++
++#: ../semanage/seobject.py:1678
++#, python-format
++msgid "Equivalence class for %s does not exists"
++msgstr ""
++
++#: ../semanage/seobject.py:1692
++#, python-format
++msgid "Could not set user in file context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­à¤®à¥‡ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1696
++#, python-format
++msgid "Could not set role in file context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­à¤®à¥‡ à¤­à¥‚मिका à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
++#, python-format
++msgid "Could not set mls fields in file context for %s"
++msgstr "mls à¤•à¥à¤·à¥‡à¤¤à¥à¤° %s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤•à¥‡à¤° à¤•à¥à¤°à¤®à¤®à¥‡ à¤¨à¤¹à¤¿ à¤¸à¥‡à¤Ÿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1707
++msgid "Invalid file specification"
++msgstr "अवैध à¤«à¤¾à¤‡à¤² à¤µà¤¿à¤¶à¥‡à¤·à¤¤à¤¾"
++
++#: ../semanage/seobject.py:1709
++msgid "File specification can not include spaces"
++msgstr ""
++
++#: ../semanage/seobject.py:1714
++#, python-format
++msgid ""
++"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
++msgstr ""
++
++#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
++#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
++#: ../semanage/seobject.py:1876
++#, python-format
++msgid "Could not check if file context for %s is defined"
++msgstr "जाà¤à¤š à¤¨à¤¹à¤¿ à¤¸à¤•à¤² à¤œà¤ %s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि"
++
++#: ../semanage/seobject.py:1745
++#, python-format
++msgid "Could not create file context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¤¿ à¤¬à¤¨à¤¾à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1753
++#, python-format
++msgid "Could not set type in file context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­à¤®à¥‡ à¤Ÿà¤¾à¤‡à¤ª à¤¸à¥‡à¤Ÿ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
++#: ../semanage/seobject.py:1822
++#, python-format
++msgid "Could not set file context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¤¿ à¤¸à¥‡à¤Ÿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1767
++#, python-format
++msgid "Could not add file context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¤¿ à¤œà¥‹à¤¡à¤¼à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1781
++msgid "Requires setype, serange or seuser"
++msgstr "सेटटाइप à¤œà¤°à¥‚री, serange à¤¯à¤¾ seuser"
++
++#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
++#, python-format
++msgid "File context for %s is not defined"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¨à¤¹à¤¿ à¤…छि"
++
++#: ../semanage/seobject.py:1800
++#, python-format
++msgid "Could not query file context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤•à¥‡à¤ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1826
++#, python-format
++msgid "Could not modify file context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¤¿ à¤¸à¥à¤§à¤¾à¤° à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1839
++msgid "Could not list the file contexts"
++msgstr "फाइल à¤¸à¤‚दरà¥à¤­ à¤¸à¥‚चीबदà¥à¤§ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1853
++#, python-format
++msgid "Could not delete the file context %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤®à¥‡à¤Ÿà¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1878
++#, python-format
++msgid "File context for %s is defined in policy, cannot be deleted"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤¨à¥€à¤¤à¤¿à¤®à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि, à¤®à¥‡à¤Ÿà¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤¤"
++
++#: ../semanage/seobject.py:1884
++#, python-format
++msgid "Could not delete file context for %s"
++msgstr "%s à¤• à¤²à¥‡à¤² à¤«à¤¾à¤‡à¤²à¤¸à¤‚दरà¥à¤­ à¤®à¥‡à¤Ÿà¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1899
++msgid "Could not list file contexts"
++msgstr "फाइल à¤¸à¤‚दरà¥à¤­ à¤¸à¥‚चीबदà¥à¤§ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1903
++msgid "Could not list local file contexts"
++msgstr "सà¥à¤¥à¤¾à¤¨à¥€à¤¯ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤¸à¥‚चीबदà¥à¤§ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1936
++msgid "SELinux fcontext"
++msgstr "SELinux fcontext"
++
++#: ../semanage/seobject.py:1936
++msgid "type"
++msgstr "पà¥à¤°à¤•à¤¾à¤°"
++
++#: ../semanage/seobject.py:1949
++msgid ""
++"\n"
++"SELinux Distribution fcontext Equivalence \n"
++msgstr ""
++
++#: ../semanage/seobject.py:1954
++msgid ""
++"\n"
++"SELinux Local fcontext Equivalence \n"
++msgstr ""
++
++#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
++#: ../semanage/seobject.py:2046
++#, python-format
++msgid "Could not check if boolean %s is defined"
++msgstr "जठ%s à¤¬à¥à¤²à¤¿à¤¯à¤¨ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि à¤¤à¤ à¤œà¤¾à¤‚च à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
++#, python-format
++msgid "Boolean %s is not defined"
++msgstr "%s à¤¬à¥à¤²à¤¿à¤¯à¤¨ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤¨à¤¹à¤¿ à¤…छि"
++
++#: ../semanage/seobject.py:1994
++#, python-format
++msgid "Could not query file context %s"
++msgstr "%s à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤•à¥‡à¤ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:1999
++#, python-format
++msgid "You must specify one of the following values: %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2004
++#, python-format
++msgid "Could not set active value of boolean %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2007
++#, python-format
++msgid "Could not modify boolean %s"
++msgstr "%s à¤¬à¥à¤²à¤¿à¤¯à¤¨ à¤°à¥‚पांतरित à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:2025
++#, python-format
++msgid "Bad format %s: Record %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2048
++#, python-format
++msgid "Boolean %s is defined in policy, cannot be deleted"
++msgstr "%s à¤¬à¥à¤²à¤¿à¤¯à¤¨ à¤¨à¥€à¤¤à¤¿ à¤®à¥‡ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¿à¤¤ à¤…छि, à¤®à¥‡à¤Ÿà¤¾à¤à¤² à¤¨à¤¹à¤¿ à¤œà¤¾à¤ à¤¸à¤•à¥ˆà¤¤"
++
++#: ../semanage/seobject.py:2052
++#, python-format
++msgid "Could not delete boolean %s"
++msgstr "%s à¤¬à¥à¤²à¤¿à¤¯à¤¨ à¤®à¥‡à¤Ÿà¤¾à¤ à¤¨à¤¹à¤¿ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
++msgid "Could not list booleans"
++msgstr "बà¥à¤²à¤¿à¤¯à¤¨ à¤¸à¥‚चीबदà¥à¤§ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²"
++
++#: ../semanage/seobject.py:2104
++msgid "unknown"
++msgstr "अजà¥à¤žà¤¾à¤¤"
++
++#: ../semanage/seobject.py:2117
++msgid "off"
++msgstr "बनà¥à¤¨"
++
++#: ../semanage/seobject.py:2117
++msgid "on"
++msgstr "चालू"
++
++#: ../semanage/seobject.py:2131
++msgid "SELinux boolean"
++msgstr "SELinux à¤¬à¥‚लियन"
++
++#: ../semanage/seobject.py:2131
++msgid "State"
++msgstr ""
++
++#: ../semanage/seobject.py:2131
++msgid "Default"
++msgstr ""
++
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
++msgid "Description"
++msgstr "वरà¥à¤£à¤¨"
++
++#: ../newrole/newrole.c:201
++#, c-format
++msgid "failed to set PAM_TTY\n"
++msgstr "PAM_TTY à¤¸à¥‡à¤Ÿ à¤•à¤°à¤¬à¤¾à¤®à¥‡ à¤µà¤¿à¤«à¤²\n"
++
++#: ../newrole/newrole.c:290
++#, c-format
++msgid "newrole: service name configuration hashtable overflow\n"
++msgstr "newrole: à¤¸à¥‡à¤µà¤¾ à¤¨à¤¾à¤® à¤µà¤¿à¤¨à¥à¤¯à¤¾à¤¸ hashtable à¤†à¤§à¤¿à¤•à¥à¤¯\n"
++
++#: ../newrole/newrole.c:300
++#, c-format
++msgid "newrole:  %s:  error on line %lu.\n"
++msgstr "newrole:  %s:  %lu à¤ªà¤‚कà¥à¤¤à¤¿ à¤ªà¤° à¤¤à¥à¤°à¥à¤Ÿà¤¿.\n"
++
++#: ../newrole/newrole.c:439
++#, c-format
++msgid "cannot find valid entry in the passwd file.\n"
++msgstr "passwd à¤«à¤¾à¤‡à¤² à¤®à¥‡ à¤µà¥ˆà¤§ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ à¤¨à¤¹à¤¿ à¤ªà¤¾à¤¬à¤¿ à¤¸à¤•à¥ˆà¤¤.\n"
++
++#: ../newrole/newrole.c:450
++#, c-format
++msgid "Out of memory!\n"
++msgstr "सà¥à¤®à¥ƒà¤¤à¤¿à¤• à¤¬à¤¾à¤¹à¤°!\n"
++
++#: ../newrole/newrole.c:455
++#, c-format
++msgid "Error!  Shell is not valid.\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¤¿!  à¤¶à¥‡à¤² à¤µà¥ˆà¤§ à¤¨à¤¹à¤¿ à¤…छि.\n"
++
++#: ../newrole/newrole.c:512
++#, c-format
++msgid "Unable to clear environment\n"
++msgstr "वातावरण à¤¸à¤¾à¤« à¤•à¤°à¤¬à¤¾à¤®à¥‡ à¤…समरà¥à¤¥\n"
++
++#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
++#, c-format
++msgid "Error changing uid, aborting.\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¤¿ uid à¤¬à¤¦à¤² à¤°à¤¹à¤² à¤…छि, à¤¤à¥à¤¯à¤¾à¤— à¤°à¤¹à¤² à¤…छि.\n"
++
++#: ../newrole/newrole.c:612
++#, c-format
++msgid "Error resetting KEEPCAPS, aborting\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¤¿ KEEPCAPS à¤«à¥‡à¤° à¤¸à¥‡à¤Ÿ à¤•à¤ à¤°à¤¹à¤² à¤…छि, à¤¤à¥à¤¯à¤¾à¤— à¤°à¤¹à¤² à¤…छि\n"
++
++#: ../newrole/newrole.c:635
++#, c-format
++msgid "Error connecting to audit system.\n"
++msgstr "सिसà¥à¤Ÿà¤® à¤‘डिट à¤¸à¤‚बंधन à¤®à¥‡ à¤¤à¥à¤°à¥à¤Ÿà¤¿.\n"
++
++#: ../newrole/newrole.c:641
++#, c-format
++msgid "Error allocating memory.\n"
++msgstr "सà¥à¤®à¥ƒà¤¤à¤¿ à¤¸à¤‚भाजन à¤®à¥‡ à¤¤à¥à¤°à¥à¤Ÿà¤¿.\n"
++
++#: ../newrole/newrole.c:648
++#, c-format
++msgid "Error sending audit message.\n"
++msgstr "ऑडिट à¤¸à¤‚देश à¤­à¥‡à¤œà¤¬à¤¾ à¤®à¥‡ à¤¤à¥à¤°à¥à¤Ÿà¤¿.\n"
++
++#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
++#, c-format
++msgid "Could not determine enforcing mode.\n"
++msgstr "पà¥à¤¨à¤°à¥à¤¬à¤²à¤¨ à¤®à¥‹à¤¡ à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤².\n"
++
++#: ../newrole/newrole.c:699
++#, c-format
++msgid "Error!  Could not open %s.\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¤¿!  %s à¤–ोल à¤¨à¤¹à¤¿ à¤¸à¤•à¥ˆà¤¤.\n"
++
++#: ../newrole/newrole.c:705
++#, c-format
++msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
++msgstr "%s!  %s à¤• à¤²à¥‡à¤² à¤®à¥‹à¤œà¥à¤¦à¤¾ à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¤¿ à¤ªà¤¾à¤¬à¤¿ à¤¸à¤•à¥ˆà¤¤, tty à¤«à¥‡à¤° à¤²à¥‡à¤¬à¤² à¤¨à¤¹à¤¿ à¤•à¤ à¤°à¤¹à¤² à¤…छि.\n"
++
++#: ../newrole/newrole.c:715
++#, c-format
++msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
++msgstr "%s!  %s à¤• à¤²à¥‡à¤² à¤¨à¤µà¥€à¤¨ à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¤¿ à¤ªà¤¾à¤¬à¤¿ à¤¸à¤•à¤², tty à¤«à¥‡à¤° à¤²à¥‡à¤¬à¤² à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¥ˆà¤¤.\n"
++
++#: ../newrole/newrole.c:725
++#, c-format
++msgid "%s!  Could not set new context for %s\n"
++msgstr "%s!  %s à¤• à¤²à¥‡à¤² à¤¨à¤µà¥€à¤¨ à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¤¿ à¤¸à¥‡à¤Ÿ à¤•à¤ à¤¸à¤•à¤²\n"
++
++#: ../newrole/newrole.c:772
++#, c-format
++msgid "%s changed labels.\n"
++msgstr "%s à¤²à¥‡à¤¬à¤² à¤¬à¤¦à¤²à¤²à¤•à¤¾à¤¹.\n"
++
++#: ../newrole/newrole.c:778
++#, c-format
++msgid "Warning! Could not restore context for %s\n"
++msgstr "चेतावनी! %s à¤• à¤²à¥‡à¤² à¤¸à¤‚दरà¥à¤­ à¤œà¤®à¤¾ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¤²\n"
++
++#: ../newrole/newrole.c:835
++#, c-format
++msgid "Error: multiple roles specified\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¤¿: à¤¬à¤¹à¥à¤² à¤­à¥‚मिका à¤¨à¤¿à¤°à¥à¤¦à¤¿à¤·à¥à¤Ÿ\n"
++
++#: ../newrole/newrole.c:843
++#, c-format
++msgid "Error: multiple types specified\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¤¿: à¤¬à¤¹à¥à¤² à¤ªà¥à¤°à¤•à¤¾à¤° à¤¨à¤¿à¤°à¥à¤¦à¤¿à¤·à¥à¤Ÿ\n"
++
++#: ../newrole/newrole.c:850
++#, c-format
++msgid "Sorry, -l may be used with SELinux MLS support.\n"
++msgstr "कà¥à¤·à¤®à¤¾ à¤•à¤°à¥‚, -l à¤•à¥‡à¤ SELinux MLS à¤¸à¤®à¤°à¥à¤¥à¤¨ à¤• à¤¸à¤‚ग à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤à¤² à¤œà¤¾à¤ à¤¸à¤•à¥ˆà¤¤ à¤…छि.\n"
++
++#: ../newrole/newrole.c:855
++#, c-format
++msgid "Error: multiple levels specified\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¤¿: à¤¬à¤¹à¥à¤² à¤¸à¥à¤¤à¤° à¤¨à¤¿à¤°à¥à¤¦à¤¿à¤·à¥à¤Ÿ\n"
++
++#: ../newrole/newrole.c:865
++#, c-format
++msgid "Error: you are not allowed to change levels on a non secure terminal \n"
++msgstr "तà¥à¤°à¥à¤Ÿà¤¿: à¤…हाà¤à¤•à¥‡à¤ à¤…सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤Ÿà¤°à¥à¤®à¤¿à¤¨à¤² à¤ªà¤° à¤²à¥‡à¤¬à¤² à¤•à¥‡à¤ à¤¬à¤¦à¤²à¤¬à¤¾ à¤• à¤²à¥‡à¤² à¤…नà¥à¤®à¤¤à¤¿ à¤ªà¥à¤°à¤¾à¤ªà¥à¤¤ à¤¨à¤¹à¤¿ à¤…छि \n"
++
++#: ../newrole/newrole.c:891
++#, c-format
++msgid "Couldn't get default type.\n"
++msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤ªà¥à¤°à¤•à¤¾à¤° à¤¨à¤¹à¤¿ à¤ªà¤¾à¤¬à¤¿ à¤¸à¤•à¤².\n"
++
++#: ../newrole/newrole.c:901
++#, c-format
++msgid "failed to get new context.\n"
++msgstr "नये à¤¸à¤‚दरà¥à¤­ à¤ªà¤¾à¤¬à¥ˆ à¤®à¥‡ à¤µà¤¿à¤«à¤².\n"
++
++#: ../newrole/newrole.c:908
++#, c-format
++msgid "failed to set new role %s\n"
++msgstr "%s à¤¨à¤¯à¥€ à¤­à¥‚मिका à¤¨à¤¹à¤¿ à¤¸à¥‡à¤Ÿ à¤•à¤ à¤¸à¤•à¤²\n"
++
++#: ../newrole/newrole.c:915
++#, c-format
++msgid "failed to set new type %s\n"
++msgstr "नवीन à¤ªà¥à¤°à¤•à¤¾à¤° %s à¤¸à¥‡à¤Ÿ à¤•à¤°à¤¬à¤¾à¤®à¥‡ à¤µà¤¿à¤«à¤²\n"
++
++#: ../newrole/newrole.c:925
++#, c-format
++msgid "failed to build new range with level %s\n"
++msgstr "%s à¤¸à¥à¤¤à¤° à¤• à¤¸à¤‚ग à¤¨à¤µà¥€à¤¨ à¤ªà¤°à¤¿à¤¸à¤° à¤¬à¤¨à¤¾à¤¬à¥ˆ à¤®à¥‡ à¤µà¤¿à¤«à¤²\n"
++
++#: ../newrole/newrole.c:930
++#, c-format
++msgid "failed to set new range %s\n"
++msgstr "%s à¤¨à¤µà¥€à¤¨ à¤ªà¤°à¤¿à¤¸à¤° à¤¸à¥‡à¤Ÿ à¤•à¤°à¤¬à¤¾à¤®à¥‡ à¤µà¤¿à¤«à¤²\n"
++
++#: ../newrole/newrole.c:938
++#, c-format
++msgid "failed to convert new context to string\n"
++msgstr "नवीन à¤¸à¤‚दरà¥à¤­ à¤¸à¥à¤Ÿà¥à¤°à¤¿à¤‚ग à¤®à¥‡ à¤¬à¤¦à¤²à¤¬à¤¾ à¤®à¥‡ à¤µà¤¿à¤«à¤²\n"
++
++#: ../newrole/newrole.c:943
++#, c-format
++msgid "%s is not a valid context\n"
++msgstr "%s à¤à¤•à¤Ÿà¤¾ à¤µà¥ˆà¤§ à¤¸à¤‚दरà¥à¤­ à¤¨à¤¹à¤¿ à¤…छि\n"
++
++#: ../newrole/newrole.c:950
++#, c-format
++msgid "Unable to allocate memory for new_context"
++msgstr "new_context à¤• à¤²à¥‡à¤² à¤¸à¥à¤®à¥ƒà¤¤à¤¿ à¤†à¤¬à¤‚टित à¤•à¤°à¤¬à¤¾à¤®à¥‡ à¤¸à¤®à¤°à¥à¤¥"
++
++#: ../newrole/newrole.c:976
++#, c-format
++msgid "Unable to obtain empty signal set\n"
++msgstr "रिकà¥à¤¤ à¤¸à¤‚केत à¤¸à¥‡à¤Ÿ à¤ªà¤¾à¤¬à¥ˆ à¤®à¥‡ à¤…समरà¥à¤¥\n"
++
++#: ../newrole/newrole.c:984
++#, c-format
++msgid "Unable to set SIGHUP handler\n"
++msgstr "SIGHUP à¤¨à¤¿à¤¯à¤‚तà¥à¤°à¤£ à¤¸à¥‡à¤Ÿ à¤•à¤°à¤¬à¤¾à¤®à¥‡ à¤…समरà¥à¤¥\n"
++
++#: ../newrole/newrole.c:1053
++#, c-format
++msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
++msgstr "कà¥à¤·à¤®à¤¾ à¤•à¤°à¥‚, newrole à¤¸à¤¿à¤°à¥à¤« SELinux à¤•à¤°à¥à¤¨à¥‡à¤² à¤ªà¤° à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤à¤² à¤œà¤¾à¤ à¤¸à¤•à¥ˆà¤¤ à¤…छि.\n"
++
++#: ../newrole/newrole.c:1070
++#, c-format
++msgid "failed to get old_context.\n"
++msgstr "old_context à¤•à¥‡à¤ à¤ªà¤¾à¤¬à¥ˆ à¤®à¥‡ à¤µà¤¿à¤«à¤².\n"
++
++#: ../newrole/newrole.c:1077
++#, c-format
++msgid "Warning!  Could not retrieve tty information.\n"
++msgstr "चेतावनी! tty à¤¸à¥‚चना à¤¨à¤¹à¤¿ à¤ªà¤¾à¤¬à¤¿ à¤¸à¤•à¥ˆà¤¤.\n"
++
++#: ../newrole/newrole.c:1098
++#, c-format
++msgid "error on reading PAM service configuration.\n"
++msgstr "PAM à¤¸à¥‡à¤µà¤¾ à¤µà¤¿à¤¨à¥à¤¯à¤¾à¤¸ à¤ªà¤° à¤ªà¤¢à¤¼à¤¬à¤¾ à¤®à¥‡ à¤¤à¥à¤°à¥à¤Ÿà¤¿.\n"
++
++#: ../newrole/newrole.c:1133
++#, c-format
++msgid "newrole: incorrect password for %s\n"
++msgstr "newrole: %s à¤• à¤²à¥‡à¤² à¤—लत à¤—à¥à¤¡à¤¼à¤•à¤¿à¤²à¥à¤²à¥€\n"
++
++#: ../newrole/newrole.c:1160
++#, c-format
++msgid "newrole: failure forking: %s"
++msgstr "newrole: à¤µà¤¿à¤­à¤¾à¤œà¤¨ à¤®à¥‡ à¤µà¤¿à¤«à¤²à¤¤à¤¾: %s"
++
++#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
++#, c-format
++msgid "Unable to restore tty label...\n"
++msgstr "tty à¤¸à¥à¤¤à¤° à¤«à¥‡à¤° à¤œà¤®à¤¾ à¤•à¤°à¤¬à¤¾à¤®à¥‡ à¤…समरà¥à¤¥...\n"
++
++#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
++#, c-format
++msgid "Failed to close tty properly\n"
++msgstr "tty à¤•à¥‡à¤ à¤µà¤¿à¤§à¤¿à¤µà¤¤ à¤°à¥‚पेठबंद à¤•à¤°à¤¬à¤¾à¤®à¥‡ à¤µà¤¿à¤«à¤²\n"
++
++#: ../newrole/newrole.c:1224
++#, c-format
++msgid "Could not close descriptors.\n"
++msgstr "विवरणकरà¥à¤¤à¤¾ à¤¬à¤‚द à¤¨à¤¹à¤¿ à¤¸à¤•à¤².\n"
++
++#: ../newrole/newrole.c:1251
++#, c-format
++msgid "Error allocating shell's argv0.\n"
++msgstr "शैल argv0 à¤†à¤¬à¤‚टित à¤•à¤°à¤¬à¤¾à¤®à¥‡ à¤¤à¥à¤°à¥à¤Ÿà¤¿.\n"
++
++#: ../newrole/newrole.c:1287
++#, c-format
++msgid "Unable to restore the environment, aborting\n"
++msgstr "वातावरण à¤«à¥‡à¤° à¤­à¤‚डारित à¤•à¤°à¤¬à¤¾à¤®à¥‡ à¤…समरà¥à¤¥, à¤°à¥‹à¤• à¤°à¤¹à¤² à¤…छि\n"
++
++#: ../newrole/newrole.c:1298
++msgid "failed to exec shell\n"
++msgstr "शेल à¤¨à¤¿à¤·à¥à¤ªà¤¾à¤¦à¤¨ à¤®à¥‡ à¤µà¤¿à¤«à¤²\n"
++
++#: ../load_policy/load_policy.c:22
++#, c-format
++msgid "usage:  %s [-qi]\n"
++msgstr "usage:  %s [-qi]\n"
++
++#: ../load_policy/load_policy.c:71
++#, c-format
++msgid "%s:  Policy is already loaded and initial load requested\n"
++msgstr "%s:  à¤¨à¥€à¤¤à¤¿ à¤ªà¤¹à¤¿à¤¨à¥‡ à¤¸à¤ à¤²à¥‹à¤¡ à¤•à¤à¤² à¤¹à¥à¤† à¤…छि à¤†à¤“र à¤†à¤°à¤‚भिक à¤²à¥‹à¤¡ à¤¨à¤¿à¤µà¥‡à¤¦à¤¿à¤¤ à¤…छि\n"
++
++#: ../load_policy/load_policy.c:80
++#, c-format
++msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
++msgstr "%s:  à¤¨à¥€à¤¤à¤¿ à¤²à¥‹à¤¡ à¤¨à¤¹à¤¿ à¤•à¤ à¤¸à¤•à¥ˆà¤¤ à¤…छि à¤†à¤“र à¤ªà¥à¤¨à¤°à¥à¤¬à¤²à¤¨ à¤®à¥‹à¤¡ à¤¨à¤¿à¤µà¥‡à¤¦à¤¿à¤¤:  %s\n"
++
++#: ../load_policy/load_policy.c:90
++#, c-format
++msgid "%s:  Can't load policy:  %s\n"
++msgstr "%s:  à¤¨à¥€à¤¤à¤¿ à¤¨à¤¹à¤¿ à¤²à¥‹à¤¡ à¤•à¤ à¤¸à¤•à¥ˆà¤¤ à¤…छि:  %s\n"
++
++#: ../scripts/chcat:92 ../scripts/chcat:169
++msgid "Requires at least one category"
++msgstr "कम à¤¸à¤ à¤•à¤® à¤à¤•à¤Ÿà¤¾ à¤¶à¥à¤°à¥‡à¤£à¥€ à¤œà¤°à¥‚री"
++
++#: ../scripts/chcat:106 ../scripts/chcat:183
++#, c-format
++msgid "Can not modify sensitivity levels using '+' on %s"
++msgstr "'+' %s à¤ªà¤° à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¤¤à¥‡ à¤¹à¥à¤¯à¥‡ à¤¸à¤‚वेदनशीलता à¤¸à¥à¤¤à¤° à¤¨à¤¹à¤¿ à¤¬à¤¦à¤² à¤¸à¤•à¥ˆà¤¤ à¤…छि"
++
++#: ../scripts/chcat:110
++#, c-format
++msgid "%s is already in %s"
++msgstr "%s à¤ªà¤¹à¤¿à¤¨à¥‡ à¤¸à¤ %s à¤®à¥‡ à¤…छि"
++
++#: ../scripts/chcat:188 ../scripts/chcat:198
++#, c-format
++msgid "%s is not in %s"
++msgstr "%s %s à¤®à¥‡ à¤¨à¤¹à¤¿ à¤…छि"
++
++#: ../scripts/chcat:267 ../scripts/chcat:272
++msgid "Can not combine +/- with other types of categories"
++msgstr "+/- à¤•à¥‡à¤ à¤†à¤¨ à¤¶à¥à¤°à¥‡à¤£à¥€ à¤ªà¥à¤°à¤•à¤¾à¤° à¤¸à¤ à¤œà¥‹à¤¡à¤¼à¤¿ à¤¨à¤¹à¤¿ à¤¸à¤•à¥ˆà¤¤"
++
++#: ../scripts/chcat:319
++msgid "Can not have multiple sensitivities"
++msgstr "बहà¥à¤² à¤¸à¤‚वेदनशीलता à¤¨à¤¹à¤¿ à¤°à¤¾à¤–ि à¤¸à¤•à¥ˆà¤¤ à¤…छि"
++
++#: ../scripts/chcat:325
++#, c-format
++msgid "Usage %s CATEGORY File ..."
++msgstr "पà¥à¤°à¤¯à¥‹à¤— %s CATEGORY à¤«à¤¾à¤‡à¤² ..."
++
++#: ../scripts/chcat:326
++#, c-format
++msgid "Usage %s -l CATEGORY user ..."
++msgstr "पà¥à¤°à¤¯à¥‹à¤— %s -l CATEGORY à¤ªà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ ..."
++
++#: ../scripts/chcat:327
++#, c-format
++msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
++msgstr "पà¥à¤°à¤¯à¥‹à¤— %s [[+|-]CATEGORY],...]q à¤«à¤¾à¤‡à¤² ..."
++
++#: ../scripts/chcat:328
++#, c-format
++msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
++msgstr "पà¥à¤°à¤¯à¥‹à¤— %s -l [[+|-]CATEGORY],...]q à¤ªà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ ..."
++
++#: ../scripts/chcat:329
++#, c-format
++msgid "Usage %s -d File ..."
++msgstr "पà¥à¤°à¤¯à¥‹à¤— %s -d à¤«à¤¾à¤‡à¤² ..."
++
++#: ../scripts/chcat:330
++#, c-format
++msgid "Usage %s -l -d user ..."
++msgstr "पà¥à¤°à¤¯à¥‹à¤— %s -l -d à¤ªà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ ..."
++
++#: ../scripts/chcat:331
++#, c-format
++msgid "Usage %s -L"
++msgstr "पà¥à¤°à¤¯à¥‹à¤— %s -L"
++
++#: ../scripts/chcat:332
++#, c-format
++msgid "Usage %s -L -l user"
++msgstr "पà¥à¤°à¤¯à¥‹à¤— %s -L -l à¤ªà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾"
++
++#: ../scripts/chcat:333
++msgid "Use -- to end option list.  For example"
++msgstr "पà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¥‚ -- à¤µà¤¿à¤•à¤²à¥à¤ª à¤¸à¥‚ची à¤¸à¤®à¤¾à¤ªà¥à¤¤ à¤•à¤°à¤¬à¤¾à¤• à¤²à¥‡à¤².  à¤‰à¤¦à¤¾à¤¹à¤°à¤£ à¤• à¤²à¥‡à¤²"
++
++#: ../scripts/chcat:334
++msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
++msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
++
++#: ../scripts/chcat:335
++msgid "chcat -l +CompanyConfidential juser"
++msgstr "chcat -l +CompanyConfidential juser"
++
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
++msgid "Options Error %s "
++msgstr "विकलà¥à¤ª à¤¤à¥à¤°à¥à¤Ÿà¤¿ %s"
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/mk.po b/policycoreutils/po/mk.po
+index 150182a..17899a3 100644
+--- a/policycoreutils/po/mk.po
++++ b/policycoreutils/po/mk.po
+@@ -1,22 +1,23 @@
+-# translation of mk.po to Macedonian
++# SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ #
+-# Bozidar Proevski <bobibobi@freemail.com.mk>, 2007.
++# Translators:
+ # Arangel Angov <arangel@linux.net.mk>, 2007.
++# Bozidar Proevski <bobibobi@freemail.com.mk>, 2007.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: mk\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-07-28 23:44+0200\n"
+-"Last-Translator: Arangel Angov <arangel@linux.net.mk>\n"
+-"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: LANGUAGE <LL@li.org>\n"
+ "Language: mk\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
++"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -83,11 +84,8 @@ msgid "Could not set exec context to %s.\n"
+ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ð¾Ñтавам ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° Ð¸Ð·Ð²Ñ€ÑˆÑƒÐ²Ð°ÑšÐµ Ð½Ð° %s.\n"
+ #: ../audit2allow/audit2allow:230
+-#, fuzzy
+ msgid "******************** IMPORTANT ***********************\n"
+ msgstr ""
+-"\n"
+-"******************** Ð’ÐЖÐО ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+@@ -98,9 +96,8 @@ msgid "global"
+ msgstr ""
+ #: ../semanage/seobject.py:222
+-#, fuzzy
+ msgid "Could not create semanage handle"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ñтартувам semanage-транÑакција"
++msgstr ""
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+@@ -117,9 +114,8 @@ msgid "Could not establish semanage connection"
+ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð²Ð¾ÑпоÑтавам Ð¿Ð¾Ð²Ñ€Ð·ÑƒÐ²Ð°ÑšÐµ Ñо semanage"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ð¾Ñтавам MLS-опÑег Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -134,28 +130,26 @@ msgid "Could not start semanage transaction"
+ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ñтартувам semanage-транÑакција"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ñтартувам semanage-транÑакција"
++msgstr ""
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+ msgstr ""
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¸ Ð¿Ñ€Ð¸ÐºÐ°Ð¶Ð°Ð¼ SELinux-кориÑниците"
++msgstr ""
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -165,9 +159,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ñ˜Ð° Ð´Ð¾Ð´Ð°Ð´Ð°Ð¼ ÑƒÐ»Ð¾Ð³Ð°Ñ‚а %s Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -214,9 +208,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð°Ð¼ Ð´Ð°Ð»Ð¸ Ðµ Ð´ÐµÑ„инирано Ð¼Ð°Ð¿Ð¸Ñ€Ð°ÑšÐµ Ð·Ð° Ð½Ð°Ñ˜Ð°Ð²Ð° Ð·Ð° %s"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux-кориÑникот %s Ð½Ðµ Ð¿Ð¾Ñтои"
++msgstr ""
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -285,16 +279,20 @@ msgid "Could not list login mappings"
+ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¸ Ð¿Ñ€Ð¸ÐºÐ°Ð¶Ð°Ð¼ Ð¼Ð°Ð¿Ð¸Ñ€Ð°ÑšÐ°Ñ‚а Ð·Ð° Ð½Ð°Ñ˜Ð°Ð²Ð¸"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-#, fuzzy
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "Потребен Ðµ SELinux-тип"
++msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -312,9 +310,9 @@ msgid "Could not query user for %s"
+ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ñ€ÐµÐ±Ð°Ñ€ÑƒÐ²Ð°Ð¼ Ð²Ð¾ ÐºÐ¾Ñ€Ð¸Ñниците Ð·Ð° %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð´Ð¾Ð´Ð°Ð´Ð°Ð¼ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° Ð´Ð°Ñ‚отека Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -405,6 +403,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -417,9 +416,8 @@ msgid "Port is required"
+ msgstr "Потребна Ðµ Ð¿Ð¾Ñ€Ñ‚а"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Ðевалиден Ð¿Ñ€ÐµÑ„икѠ%s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -506,14 +504,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ñ˜Ð° Ð¸Ð·Ð¼ÐµÐ½Ð°Ð¼ Ð¿Ð¾Ñ€Ñ‚ата %s/%s"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¸ Ð¿Ñ€Ð¸ÐºÐ°Ð¶Ð°Ð¼ Ð¿Ð¾Ñ€Ñ‚ите"
++msgstr ""
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ñ˜Ð° Ð¸Ð·Ð±Ñ€Ð¸ÑˆÐ°Ð¼ Ð¿Ð¾Ñ€Ñ‚ата %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -537,14 +534,13 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Потребна Ðµ Ð¿Ð¾Ñ€Ñ‚а"
++msgstr ""
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+@@ -565,14 +561,14 @@ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° ÐºÑ€ÐµÐ¸Ñ€Ð°Ð¼ ÐºÐ»ÑƒÑ‡ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð°Ð¼ Ð´Ð°Ð»Ð¸ Ðµ Ð´ÐµÑ„инирана Ð¿Ð¾Ñ€Ñ‚а %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° ÐºÑ€ÐµÐ¸Ñ€Ð°Ð¼ ÐºÐ»ÑƒÑ‡ Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -581,74 +577,72 @@ msgid "Could not create context for %s"
+ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° ÐºÑ€ÐµÐ¸Ñ€Ð°Ð¼ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ð¾Ñтавам Ð¸Ð¼Ðµ Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ð¾Ñтавам ÐºÐ¾Ñ€Ð¸Ñник Ð²Ð¾ ÐºÐ¾Ð½Ñ‚екÑтот Ð·Ð° Ð´Ð°Ñ‚отека Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ð¾Ñтавам ÑƒÐ»Ð¾Ð³Ð° Ð²Ð¾ ÐºÐ¾Ð½Ñ‚екÑтот Ð·Ð° Ð´Ð°Ñ‚отека Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ð¾Ñтавам Ñ‚ип Ð²Ð¾ ÐºÐ¾Ð½Ñ‚екÑтот Ð·Ð° Ð´Ð°Ñ‚отека Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ð¾Ñтавам mls-полиња Ð²Ð¾ ÐºÐ¾Ð½Ñ‚екÑтот Ð·Ð° Ð´Ð°Ñ‚отека Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ð¾Ñтавам ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° Ð´Ð°Ñ‚отека Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ñ˜Ð° Ð´Ð¾Ð´Ð°Ð´Ð°Ð¼ Ð¿Ð¾Ñ€Ñ‚ата %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Портата %s/%s Ð½Ðµ Ðµ Ð´ÐµÑ„инирана"
++msgstr ""
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð¿Ñ€ÐµÐ±Ð°Ñ€ÑƒÐ²Ð°Ð¼ Ð½Ð° Ð¿Ð¾Ñ€Ñ‚ата %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ñ˜Ð° Ð¸Ð·Ð¼ÐµÐ½Ð°Ð¼ Ð¿Ð¾Ñ€Ñ‚ата %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Портата %s/%s Ðµ Ð´ÐµÑ„инирана Ð²Ð¾ Ð¿Ð¾Ð»Ð¸Ñ‚иката Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð±Ð¸Ð´Ðµ Ð¸Ð·Ð±Ñ€Ð¸ÑˆÐ°Ð½Ð°"
++msgstr ""
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð¸Ð·Ð±Ñ€Ð¸ÑˆÐ°Ð¼ Ð¸Ð½Ñ‚ерфејÑот %s"
++msgstr ""
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð¸Ð·Ð±Ñ€Ð¸ÑˆÐ°Ð¼ Ð¼Ð°Ð¿Ð¸Ñ€Ð°ÑšÐµÑ‚о Ð·Ð° Ð½Ð°Ñ˜Ð°Ð²Ð° Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¸ Ð¿Ñ€Ð¸ÐºÐ°Ð¶Ð°Ð¼ Ð¿Ð¾Ñ€Ñ‚ите"
++msgstr ""
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -722,9 +716,8 @@ msgid "Could not delete interface %s"
+ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð¸Ð·Ð±Ñ€Ð¸ÑˆÐ°Ð¼ Ð¸Ð½Ñ‚ерфејÑот %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð¸Ð·Ð±Ñ€Ð¸ÑˆÐ°Ð¼ Ð¸Ð½Ñ‚ерфејÑот %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -739,9 +732,9 @@ msgid "Context"
+ msgstr ""
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "КонтекÑтот Ð·Ð° Ð´Ð°Ñ‚отека Ð·Ð° %s Ðµ Ð²ÐµÑœÐµ Ð´ÐµÑ„иниран"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -749,9 +742,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux-кориÑникот %s Ð½Ðµ Ð¿Ð¾Ñтои"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -830,14 +823,13 @@ msgid "Could not modify file context for %s"
+ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð¸Ð·Ð¼ÐµÐ½Ð°Ð¼ ÐºÐ¾Ð½Ñ‚екÑтот Ð·Ð° Ð´Ð°Ñ‚отека Ð·Ð° %s"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¸ Ð¿Ñ€Ð¸ÐºÐ°Ð¶Ð°Ð¼ ÐºÐ¾Ð½Ñ‚екÑтите Ð½Ð° Ð´Ð°Ñ‚отеките"
++msgstr ""
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð¸Ð·Ð±Ñ€Ð¸ÑˆÐ°Ð¼ ÐºÐ¾Ð½Ñ‚екÑтот Ð·Ð° Ð´Ð°Ñ‚отека Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -896,14 +888,14 @@ msgid "Could not query file context %s"
+ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð¿Ñ€ÐµÐ±Ð°Ñ€ÑƒÐ²Ð°Ð¼ ÐºÐ¾Ð½Ñ‚екÑтот Ð½Ð° Ð´Ð°Ñ‚отека %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Мора Ð´Ð° Ð½Ð°Ð²ÐµÐ´ÐµÑ‚е Ð¿Ñ€ÐµÑ„икÑ"
++msgstr ""
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ñ˜Ð° Ð¸Ð·Ð±Ñ€Ð¸ÑˆÐ°Ð¼ Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐ°Ñ‚а Ð²Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚ %s"
++msgstr ""
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -954,7 +946,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1146,9 +1139,9 @@ msgid "failed to get old_context.\n"
+ msgstr "не ÑƒÑпеав Ð´Ð° Ð³Ð¾ Ð´Ð¾Ð±Ð¸Ñ˜Ð°Ð¼ old_context.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Грешка!  Ðе Ð¼Ð¾Ð¶Ð°Ð¼ Ð´Ð° Ð¿Ñ€ÐµÐ·ÐµÐ¼Ð°Ð¼ Ð¸Ð½Ñ„ормации Ð·Ð° tty.\n"
++msgstr ""
+ #: ../newrole/newrole.c:1098
+ #, c-format
+@@ -1195,9 +1188,9 @@ msgid "failed to exec shell\n"
+ msgstr "не ÑƒÑпеав Ð´Ð° Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð¼ ÑˆÐºÐ¾Ð»ÐºÐ°\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "употреба:  %s [-bq]\n"
++msgstr ""
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+@@ -1205,9 +1198,9 @@ msgid "%s:  Policy is already loaded and initial load requested\n"
+ msgstr ""
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:  Ðе Ð¼Ð¾Ð¶Ð°Ð¼ Ð´Ð° Ñ˜Ð° Ð²Ñ‡Ð¸Ñ‚ам Ð¿Ð¾Ð»Ð¸Ñ‚иката:  %s\n"
++msgstr ""
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1293,181 +1286,2096 @@ msgstr "chcat -- -KompanijaDoverlivo /dokumenti/biznisplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +KompanijaDoverlivo jkorisnik"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Грешка Ð²Ð¾ Ð¾Ð¿Ñ†Ð¸Ð¸Ñ‚е %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Ðе Ð¼Ð¾Ð¶Ð°Ð¼ Ð´Ð° Ð³Ð¾ Ð¾Ñ‚ворам %s: Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸Ñ‚е Ð½Ðµ Ñе Ð¿Ð¾Ð´Ð´Ñ€Ð¶Ð°Ð½Ð¸ Ð½Ð° Ð¼Ð°ÑˆÐ¸Ð½Ð¸ ÑˆÑ‚о Ð½ÐµÐ¼Ð°Ð°Ñ‚ "
+-#~ "MLS"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Преводите Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñодржат Ð¿Ñ€Ð°Ð·Ð½Ð¸ Ð¼ÐµÑта â€ž%s“ "
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Ðевалидно Ð½Ð¸Ð²Ð¾ â€ž%s“ "
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s Ðµ Ð²ÐµÑœÐµ Ð´ÐµÑ„инирано Ð²Ð¾ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸Ñ‚е"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s Ð½Ðµ Ðµ Ð´ÐµÑ„инирано Ð²Ð¾ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸Ñ‚е"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Мапирањето Ð·Ð° Ð½Ð°Ñ˜Ð°Ð²Ð° Ð·Ð° %s Ðµ Ð²ÐµÑœÐµ Ð´ÐµÑ„инирано"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð´Ð¾Ð´Ð°Ð´Ð°Ð¼ SELinux-кориÑникот %s"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux-кориÑникот %s Ðµ Ð²ÐµÑœÐµ Ð´ÐµÑ„иниран"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Потребна Ðµ Ð¿Ð¾Ñ€Ñ‚а"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Портата %s/%s Ðµ Ð²ÐµÑœÐµ Ð´ÐµÑ„инирана"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "ИнтерфејÑот %s Ðµ Ð²ÐµÑœÐµ Ð´ÐµÑ„иниран"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¸Ð½Ð¸Ñ†Ð¸Ñ˜Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ˜Ð°Ñ‚а Ð½Ð° ÑпоÑобноÑтите, Ð¿Ñ€ÐµÐºÐ¸Ð½ÑƒÐ²Ð°Ð¼.\n"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¿Ð¾Ñтавувањето Ð½Ð° ÑпоÑобноÑтите, Ð¿Ñ€ÐµÐºÐ¸Ð½ÑƒÐ²Ð°Ð¼.\n"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¿Ð¾Ñтавувањето Ð½Ð° KEEPCAPS, Ð¿Ñ€ÐµÐºÐ¸Ð½ÑƒÐ²Ð°Ð¼.\n"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¸Ñклучувањето Ð½Ð° ÑпоÑобноÑтите, Ð¿Ñ€ÐµÐºÐ¸Ð½ÑƒÐ²Ð°Ð¼.\n"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¸Ñклучувањето Ð½Ð° ÑпоÑобноÑта SETUID, Ð¿Ñ€ÐµÐºÐ¸Ð½ÑƒÐ²Ð°Ð¼.\n"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¾Ñлободувањето Ð½Ð° ÑпоÑобноÑтите\n"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "преводите Ð½Ðµ Ñе Ð¿Ð¾Ð´Ð´Ñ€Ð¶Ð°Ð½Ð¸ Ð½Ð° Ð¼Ð°ÑˆÐ¸Ð½Ð¸ ÑˆÑ‚о Ð½ÐµÐ¼Ð°Ð°Ñ‚ MLS"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr "Потребен Ðµ SELinux-тип"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Потребен Ðµ SELinux-тип"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¸Ñпраќањето Ð¿Ð¾Ñ€Ð°ÐºÐ° Ð·Ð° ÐºÐ¾Ð½Ñ‚рола.\n"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Мора Ð´Ð° Ð½Ð°Ð²ÐµÐ´ÐµÑ‚е ÑƒÐ»Ð¾Ð³Ð°"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name"
+-#~ msgstr "Мора Ð´Ð° Ð½Ð°Ð²ÐµÐ´ÐµÑ‚е ÑƒÐ»Ð¾Ð³Ð°"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Мора Ð´Ð° Ð½Ð°Ð²ÐµÐ´ÐµÑ‚е ÑƒÐ»Ð¾Ð³Ð°"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Генерирам Ð´Ð°Ñ‚отека Ð·Ð° Ñ‚ип Ð½Ð° Ñпроведување: %s.te"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "ИнтерфејÑот %s Ð½Ðµ Ðµ Ð´ÐµÑ„иниран"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "File Contexts file"
+-#~ msgstr "КонтекÑтот Ð·Ð° Ð´Ð°Ñ‚отека Ð·Ð° %s Ð½Ðµ Ðµ Ð´ÐµÑ„иниран"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux-кориÑникот %s Ð½Ðµ Ðµ Ð´ÐµÑ„иниран"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Compatibility"
+-#~ msgstr "Компилирам Ð¿Ð¾Ð»Ð¸Ñ‚ика"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Проверувам %s Ð·Ð° Ð°Ð²Ñ‚ентичноÑÑ‚.\n"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Type"
+-#~ msgstr "Потребен Ðµ SELinux-тип"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð´Ð¾Ð´Ð°Ð´Ð°Ð¼ SELinux-кориÑникот %s"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð¸Ð·Ð¼ÐµÐ½Ð°Ð¼ SELinux-кориÑникот %s"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð¸Ð·Ð±Ñ€Ð¸ÑˆÐ°Ð¼ SELinux-кориÑникот %s"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Ðе Ð¼Ð¾Ð¶ÐµÐ² Ð´Ð° Ð³Ð¾ Ð¸Ð·Ð¼ÐµÐ½Ð°Ð¼ SELinux-кориÑникот %s"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Load policy module"
+-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ð°Ð¼ Ð´Ð° Ñ˜Ð° Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚ам Ð¿Ð¾Ð»Ð¸Ñ‚иката Ð½Ð° Ñкладиштето."
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "Потребен Ðµ SELinux-тип"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Побарува Ð²Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Има Ð¿Ð¾Ñ‚реба Ð¾Ð´ 2 Ð¸Ð»Ð¸ Ð¿Ð¾Ð²ÐµÑœÐµ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚и"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "%s not defined"
+-#~ msgstr "%s Ð½Ðµ Ðµ Ð´ÐµÑ„инирано"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "%s Ð½Ðµ Ðµ Ð²Ð°Ð»Ð¸Ð´Ð½Ð° Ð·Ð° Ð¾Ð±Ñ˜ÐµÐºÑ‚ите %s\n"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "опÑегот Ð½Ðµ Ðµ Ð¿Ð¾Ð´Ð´Ñ€Ð¶Ð°Ð½ Ð½Ð° Ð¼Ð°ÑˆÐ¸Ð½Ð¸ ÑˆÑ‚о Ð½ÐµÐ¼Ð°Ð°Ñ‚ MLS"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Ðевалидна Ð²Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚ %s"
+-
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "За Ð´Ð° Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð³Ð¾ Ð²Ñ‡Ð¸Ñ‚ате Ð²Ð¾ ÐºÐµÑ€Ð½ÐµÐ»Ð¾Ñ‚ Ð¾Ð²Ð¾Ñ˜ Ð½Ð¾Ð² ÐºÑ€ÐµÐ¸Ñ€Ð°Ð½ Ð¿Ð°ÐºÐµÑ‚ Ñо Ð¿Ð¾Ð»Ð¸Ñ‚ики,\n"
+-#~ "мора Ð´Ð° Ð³Ð¾ Ð¸Ð·Ð²Ñ€ÑˆÐ¸Ñ‚е \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Грешка Ð²Ð¾ Ð¾Ð¿Ñ†Ð¸Ð¸Ñ‚е: %s "
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/ml.po b/policycoreutils/po/ml.po
+index a3c1888..fa76e08 100644
+--- a/policycoreutils/po/ml.po
++++ b/policycoreutils/po/ml.po
+@@ -1,25 +1,22 @@
+-# translation of ml.po to
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+ #
++# Translators:
+ # Ani Peter <apeter@redhat.com>, 2006, 2007.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: ml\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-04-01 13:24+0530\n"
+-"Last-Translator: \n"
+-"Language-Team:  <en@li.org>\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Malayalam <discuss@lists.smc.org.in>\n"
++"Language: ml\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+-"\n"
+-"\n"
+-"\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -28,7 +25,7 @@ msgid ""
+ "         <args ...> are the arguments to that script."
+ msgstr ""
+ "USAGE: run_init <script> <args ...>\n"
+-"  where: <script> à´ªàµà´°à´µà´±àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´µà´¾à´¨àµà´³à´³ init scriptà´¨àµâ€à´±àµ† à´ªàµ‡à´°àµ,\n"
++"  where: <script> à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´µà´¾à´¨àµà´³à´³ init scriptà´¨àµâ€à´±àµ† à´ªàµ‡à´°àµ,\n"
+ "         <args ...> à´¸àµà´•àµà´°à´¿à´ªàµà´ªàµà´±àµà´±à´¿à´¨àµà´³à´³ arguments."
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+@@ -58,7 +55,7 @@ msgstr "getpassനൠ/dev/tty à´¤àµà´±à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿
+ #: ../run_init/run_init.c:275
+ #, c-format
+ msgid "run_init: incorrect password for %s\n"
+-msgstr "run_init: %sനൠതെറàµà´±à´¾à´¯ à´ªà´¾à´¸àµà´µàµ‡à´¡àµ \n"
++msgstr "run_init: %sനൠതെറàµà´±à´¾à´¯  à´ªà´¾à´¸àµâ€Œà´µàµ‡à´°àµâ€à´¡àµ \n"
+ #: ../run_init/run_init.c:309
+ #, c-format
+@@ -107,16 +104,15 @@ msgstr "SELinux policy à´®à´¾à´¨àµ‡à´œàµ à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµ
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr "പോളിസി à´¸àµà´±àµà´±àµ‹à´±àµâ€ à´µà´¾à´¯à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•àµà´¨àµà´¨à´¿à´²àµà´²."
++msgstr "പോളിസി à´¸àµà´±àµà´±àµ‹à´°àµâ€ à´µà´¾à´¯à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•àµà´¨àµà´¨à´¿à´²àµà´²."
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+ msgstr "semanage à´•à´£à´•àµà´·à´¨àµâ€ à´¸àµà´¥à´¾à´ªà´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´²àµà´²"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "%sനൠMLS à´±à´¯àµà´¨àµà´šàµ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "MLS à´¸à´œàµà´œà´®à´¾à´•àµà´•à´¿à´¯ à´…വസàµà´¥ à´ªà´°àµ€à´•àµà´·à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -124,36 +120,33 @@ msgstr "ഇതൠവരെ à´¸à´¾à´•àµà´·à´¾à´¤àµà´•à´°à´¿à´šàµà´šà´¿à´Ÿàµ
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "സെമനേജൠഇടപാടàµàµ à´¨à´¿à´²à´µà´¿à´²àµâ€ à´ªàµà´°àµ‹à´—മികàµà´•àµà´¨àµà´¨àµ"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "semanage transaction à´†à´°à´‚à´­à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage transaction à´†à´°à´‚à´­à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "semanage transaction à´¸à´®à´°àµâ€à´ªàµà´ªà´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "സെമനേജൠഇടപാടàµàµ à´ªàµà´°àµ‹à´—മികàµà´•àµà´¨àµà´¨à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux à´¯àµ‚സറàµà´•à´³àµ† à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "SELinux à´˜à´Ÿà´•à´™àµà´™à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "ഘടകതàµà´¤à´¿à´¨àµà´±àµ† à´ªàµ‡à´°àµ"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "ലകàµà´•à´‚"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´‚"
+@@ -163,9 +156,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "%sനൠറോളàµâ€ %s à´šàµ‡à´±àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•à´¿à´²àµà´²"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -177,24 +170,22 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "പെരàµâ€à´®à´¿à´¸àµà´¸àµ€à´µàµ"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "പെരàµâ€à´®à´¿à´¸àµà´¸àµ€à´µàµ"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "പെരàµâ€à´®àµà´®à´¿à´¸àµà´¸àµ€à´µàµ à´˜à´Ÿà´•à´‚ %s à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´¾à´¯à´¿à´²àµà´² (ഘടകം à´‡à´¨àµâ€à´¸àµà´±àµà´±à´²àµ‡à´·à´¨àµâ€ à´ªà´°à´¾à´œà´¯à´ªàµà´ªàµ†à´Ÿàµà´Ÿàµ)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "പെരàµâ€à´®àµà´®à´¿à´¸àµà´¸àµ€à´µàµ à´˜à´Ÿà´•à´‚ %s à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´¾à´¯à´¿à´²àµà´² (നീകàµà´•à´‚ à´šàµ†à´¯àµà´¯à´²àµâ€ à´ªà´°à´¾à´œà´¯à´ªàµà´ªàµ†à´Ÿàµà´Ÿàµ)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -214,14 +205,14 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "%sà´¨àµà´³à´³ à´²àµ‹à´—à´¿à´¨àµâ€ à´®à´¾à´ªàµà´ªà´¿à´‚ങൠdefine à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ‹ à´Žà´¨àµà´¨àµ à´ªà´°à´¿à´¶àµ‹à´§à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "%s à´Žà´¨àµà´¨ Linux à´¯àµ‚സറàµâ€ à´¨à´¿à´²à´µà´¿à´²à´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ à´²à´¿à´¨à´•àµà´¸àµ à´—àµà´°àµ‚à´ªàµà´ªàµ à´¨à´¿à´²à´µà´¿à´²à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:497
+ #, python-format
+ msgid "Linux User %s does not exist"
+-msgstr "%s à´Žà´¨àµà´¨ Linux à´¯àµ‚സറàµâ€ à´¨à´¿à´²à´µà´¿à´²à´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ Linux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µàµàµ à´¨à´¿à´²à´µà´¿à´²à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:501
+ #, python-format
+@@ -231,22 +222,22 @@ msgstr "%sà´¨àµà´³à´³ à´²àµ‹à´—à´¿à´¨àµâ€ à´®à´¾à´ªàµà´ªà´¿à´‚ങൠഉണ
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+ msgid "Could not set name for %s"
+-msgstr "%sനൠപേരൠസെറàµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sനൠപേരൠസജàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+ #, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr "%sനൠMLS à´±à´¯àµà´¨àµà´šàµ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sനൠMLS à´ªà´°à´¿à´§à´¿ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:514
+ #, python-format
+ msgid "Could not set SELinux user for %s"
+-msgstr "%sനൠSELinux à´¯àµ‚സറിനെ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sനൠSELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "%sà´¨àµà´³à´³ à´²àµ‹à´—à´¿à´¨àµâ€ à´®à´¾à´ªàµà´ªà´¿à´‚ങൠചേറàµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sà´¨àµà´³à´³ à´²àµ‹à´—à´¿à´¨àµâ€ à´®à´¾à´ªàµà´ªà´¿à´‚ങൠചേരàµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+@@ -283,15 +274,20 @@ msgid "Could not list login mappings"
+ msgstr "ലോഗിനàµâ€ à´®à´¾à´ªàµà´ªà´¿à´‚à´™àµà´•à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "à´ªàµà´°à´µàµ‡à´¶à´¨ à´¨à´¾à´®à´‚"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µàµ"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS à´ªà´°à´¿à´§à´¿"
+@@ -300,38 +296,38 @@ msgstr "MLS/MCS à´ªà´°à´¿à´§à´¿"
+ #: ../semanage/seobject.py:860
+ #, python-format
+ msgid "Could not check if SELinux user %s is defined"
+-msgstr "%sà´Žà´¨àµà´¨ SELinux à´¯àµ‚സറàµâ€ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ‹ à´Žà´¨àµà´¨àµ à´ªà´°à´¿à´¶àµ‹à´§à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sà´Žà´¨àµà´¨ SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µàµàµàµà´¨à´²àµâ€à´•à´¿à´¯à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ‹à´Ÿàµ‹ à´Žà´¨àµà´¨àµ à´ªà´°à´¿à´¶àµ‹à´§à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+ #: ../semanage/seobject.py:866
+ #, python-format
+ msgid "Could not query user for %s"
+-msgstr "Could not query user for %s"
++msgstr "%s-à´¨àµà´³àµà´³ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ context à´šàµ‡à´±àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´¨àµàµ à´•àµà´±à´žàµà´žà´¤àµàµ à´’രൠജോലി à´Žà´™àµà´•à´¿à´²àµà´‚ à´šàµ‡à´°àµâ€à´¤àµà´¤à´¿à´°à´¿à´•àµà´•à´£à´‚"
+ #: ../semanage/seobject.py:737
+ #, python-format
+ msgid "Could not create SELinux user for %s"
+-msgstr "%sà´Žà´¨àµà´¨ SELinux à´¯àµ‚സറàµâ€ à´¸àµƒà´·àµà´Ÿà´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´² "
++msgstr "%s à´Žà´¨àµà´¨ SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´¸àµƒà´·àµà´Ÿà´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´² "
+ #: ../semanage/seobject.py:746
+ #, python-format
+ msgid "Could not add role %s for %s"
+-msgstr "%sനൠറോളàµâ€ %s à´šàµ‡à´±àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•à´¿à´²àµà´²"
++msgstr "%s à´¨àµàµ à´±àµ‹à´³àµâ€ %s à´šàµ‡à´°àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:755
+ #, python-format
+ msgid "Could not set MLS level for %s"
+-msgstr "%sനൠMLS à´²à´µà´²àµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sനൠMLS à´ªà´°à´¿à´§à´¿ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:758
+ #, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr "%sനൠപàµà´°à´«à´¿à´•àµà´¸àµ %s à´šàµ‡à´±àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sനൠപàµà´°à´«à´¿à´•àµà´¸àµ %s à´šàµ‡à´°àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:761
+ #, python-format
+@@ -341,7 +337,7 @@ msgstr "%sനൠകീ extract à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿
+ #: ../semanage/seobject.py:765
+ #, python-format
+ msgid "Could not add SELinux user %s"
+-msgstr "SELinux à´¯àµ‚സറàµâ€ %s à´šàµ‡à´±àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µàµàµ %s à´šàµ‡à´°àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+@@ -354,17 +350,17 @@ msgstr "à´ªàµà´°à´«à´¿à´•àµà´¸àµ à´…à´²àµà´²àµ†à´¨àµà´•à´¿à´²àµâ€ à´±àµ‹
+ #: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+ #, python-format
+ msgid "SELinux user %s is not defined"
+-msgstr "%sà´Žà´¨àµà´¨ SELinux à´¯àµ‚സറàµâ€ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µàµàµ à´¨à´²àµâ€à´•à´¿à´¯à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:828
+ #, python-format
+ msgid "Could not modify SELinux user %s"
+-msgstr "SELinux à´¯àµ‚സറàµâ€ %sനെ à´ªà´°à´¿à´·àµà´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µàµàµ %s-നെ à´ªà´°à´¿à´·àµà´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:862
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr "SELinux à´¯àµ‚സറàµâ€ %sനെ à´ªàµ‹à´³à´¿à´¸à´¿à´¯à´¿à´²àµâ€ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ, à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´²àµà´²"
++msgstr "SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µàµàµ %s-നെ à´ªàµ‹à´³à´¿à´¸à´¿à´¯à´¿à´²àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•à´¿à´¯à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµàµ, à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´²àµà´²"
+ #: ../semanage/seobject.py:873
+ #, python-format
+@@ -373,12 +369,12 @@ msgstr "%sനൠSELinux à´¯àµ‚സറിനെ à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµ
+ #: ../semanage/seobject.py:911
+ msgid "Could not list SELinux users"
+-msgstr "SELinux à´¯àµ‚സറàµà´•à´³àµ† à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµ† à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:917
+ #, python-format
+ msgid "Could not list roles for user %s"
+-msgstr "യൂസറàµâ€ %sà´¨àµà´³à´³ à´±àµ‹à´³àµà´•à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "ഉപയോകàµà´¤à´¾à´µàµàµ %s-à´¨àµà´³à´³ à´±àµ‹à´³àµà´•à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+@@ -401,6 +397,7 @@ msgid "MCS Range"
+ msgstr "MCS à´ªà´°à´¿à´§à´¿"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux à´±àµ‹à´³àµà´•à´³àµâ€"
+@@ -410,12 +407,11 @@ msgstr "udp à´…à´²àµà´²àµ†à´¨àµà´•à´¿à´²àµâ€ tcp à´Žà´¨àµà´¨ à´ªàµà´°àµ‹
+ #: ../semanage/seobject.py:965
+ msgid "Port is required"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ"
++msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "അസാധàµà´µà´¾à´¯ à´ªàµà´°à´¿à´«à´¿à´•àµà´¸àµ à´†à´£àµ%s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -430,17 +426,17 @@ msgstr "ടൈപàµà´ªàµ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµà´²àµà´² "
+ #: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+ #, python-format
+ msgid "Could not check if port %s/%s is defined"
+-msgstr "%s/%sà´Žà´¨àµà´¨ à´ªàµ‹à´±àµâ€à´Ÿàµà´Ÿàµ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ‹ à´Žà´¨àµà´¨àµ à´ªà´°à´¿à´¶àµ‹à´§à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s/%sà´Žà´¨àµà´¨ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ à´¨à´²àµâ€à´•à´¿à´¯à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ‹ à´Žà´¨àµà´¨àµ à´ªà´°à´¿à´¶àµ‹à´§à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:998
+ #, python-format
+ msgid "Port %s/%s already defined"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ %s/%s already defined"
++msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ %s/%s à´¨à´¿à´²à´µà´¿à´²àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•à´¿à´¯à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµàµ"
+ #: ../semanage/seobject.py:1002
+ #, python-format
+ msgid "Could not create port for %s/%s"
+-msgstr "%s/%sà´Žà´¨àµà´¨ à´ªàµ‹à´±àµâ€à´Ÿàµà´Ÿàµ à´¸àµƒà´·àµà´Ÿà´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s/%sà´Žà´¨àµà´¨ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ à´¸àµƒà´·àµà´Ÿà´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1008
+ #, python-format
+@@ -450,32 +446,32 @@ msgstr "%s/%sനൠcontext à´¸àµƒà´·àµà´Ÿà´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾
+ #: ../semanage/seobject.py:1012
+ #, python-format
+ msgid "Could not set user in port context for %s/%s"
+-msgstr "%s/%sനൠപോറàµâ€à´Ÿàµà´Ÿàµ contextà´²àµâ€ à´¯àµ‚സറàµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s/%sനൠപോരàµâ€à´Ÿàµà´Ÿàµ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1016
+ #, python-format
+ msgid "Could not set role in port context for %s/%s"
+-msgstr "%s/%sനൠപോറàµâ€à´Ÿàµà´Ÿàµ contextà´²àµâ€ à´±àµ‹à´³àµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s/%sനൠപോരàµâ€à´Ÿàµà´Ÿàµ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´±àµ‹à´³àµâ€ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1020
+ #, python-format
+ msgid "Could not set type in port context for %s/%s"
+-msgstr "%s/%sനൠപോറàµâ€à´Ÿàµà´Ÿàµ contextà´²àµâ€ à´¯àµ‚സറàµâ€ à´Ÿàµˆà´ªàµà´ªàµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s/%s-à´¨àµà´³àµà´³ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´à´¤àµàµ à´¤à´°à´‚ à´Žà´¨àµà´¨àµàµ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1025
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr "%s/%sനൠപോറàµâ€à´Ÿàµà´Ÿàµ contextà´²àµâ€ mls à´«àµ€à´²àµâ€à´¡àµà´•à´³àµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s/%sനൠപോരàµâ€à´Ÿàµà´Ÿàµ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ mls à´«àµ€à´²àµâ€à´¡àµà´•à´³àµâ€ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+ msgid "Could not set port context for %s/%s"
+-msgstr "%s/%sനൠപോറàµâ€à´Ÿàµà´Ÿàµ context à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s/%sനൠപോരàµâ€à´Ÿàµà´Ÿàµ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1033
+ #, python-format
+ msgid "Could not add port %s/%s"
+-msgstr "%s/%s à´Žà´¨àµà´¨ à´ªàµ‹à´±àµâ€à´Ÿàµà´Ÿàµ à´šàµ‡à´±àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s/%s à´Žà´¨àµà´¨ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ à´šàµ‡à´°àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+ #: ../semanage/seobject.py:1508
+@@ -489,17 +485,17 @@ msgstr "setype à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ"
+ #: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+ #, python-format
+ msgid "Port %s/%s is not defined"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ %s/%s define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
++msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ %s/%s à´²à´­àµà´¯à´®à´¾à´•àµà´•à´¿à´¯à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1061
+ #, python-format
+ msgid "Could not query port %s/%s"
+-msgstr "%s/%s à´Žà´¨àµà´¨ à´ªàµ‹à´±àµâ€à´Ÿàµà´Ÿàµ à´šàµ‹à´¦àµà´¯à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s/%s à´Žà´¨àµà´¨ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ à´šàµ‹à´¦àµà´¯à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1072
+ #, python-format
+ msgid "Could not modify port %s/%s"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ %s/%s à´ªà´°à´¿à´·àµà´•àµà´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ %s/%s à´ªà´°à´¿à´·àµà´•àµà´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1085
+ msgid "Could not list the ports"
+@@ -513,16 +509,16 @@ msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ %s à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µ
+ #: ../semanage/seobject.py:1118
+ #, python-format
+ msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ %s/%s à´ªàµ‹à´³à´¿à´¸à´¿à´¯à´¿à´²àµâ€ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ, à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•à´¿à´²àµà´²"
++msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ %s/%s à´ªàµ‹à´³à´¿à´¸à´¿à´¯à´¿à´²àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•à´¿à´¯à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµàµ, à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1122
+ #, python-format
+ msgid "Could not delete port %s/%s"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ %s/%s à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ %s/%s à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+ msgid "Could not list ports"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "പോരàµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+@@ -532,18 +528,17 @@ msgstr "SELinux à´°àµ€à´¤à´¿à´¯à´¿à´²àµà´³àµà´³ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ à´¨à´‚ബരàµâ€"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ"
++msgstr "നോഡിനàµà´±àµ† à´µà´¿à´²à´¾à´¸à´‚ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "അപരിചിതം à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ à´²à´­àµà´¯à´®à´²àµà´²à´¾à´¤àµà´¤ à´¸à´®àµà´ªàµà´°à´¦à´¾à´¯à´‚"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -560,14 +555,14 @@ msgstr "%sà´¯àµà´•àµà´•àµ à´•àµ€ à´‰à´£àµà´Ÿà´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ 
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "%s/%sà´Žà´¨àµà´¨ à´ªàµ‹à´±àµâ€à´Ÿàµà´Ÿàµ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ‹ à´Žà´¨àµà´¨àµ à´ªà´°à´¿à´¶àµ‹à´§à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ à´µà´¿à´²à´¾à´¸à´‚ à´¨à´¿à´·àµà´•à´°àµâ€à´·à´¿à´šàµà´šà´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ†à´™àµà´•à´¿à´²àµâ€ à´‡à´¤àµàµ à´ªà´°à´¿à´¶àµ‹à´§à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´²àµà´²"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%sà´¯àµà´•àµà´•àµ à´’രൠകീ à´‰à´£àµà´Ÿà´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´¨àµà´³àµà´³ à´µà´¿à´²à´¾à´¸à´‚ à´‰à´£àµà´Ÿà´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -576,110 +571,108 @@ msgid "Could not create context for %s"
+ msgstr "%sനൠcontext à´‰à´£àµà´Ÿà´¾à´•àµà´•à´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%sനൠപേരൠസെറàµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´¨àµà´³àµà´³ à´®à´¾à´¸àµà´•àµ à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ contextà´²àµâ€ à´¯àµ‚സറàµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´²àµà´³àµà´³ à´µà´¿à´²à´¾à´¸à´¤àµà´¤à´¿à´¨àµà´±àµ† à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨à´¾à´¯à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ contextà´²àµâ€ à´±àµ‹à´³àµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´²àµà´³àµà´³ à´µà´¿à´²à´¾à´¸à´¤àµà´¤à´¿à´¨àµà´±àµ† à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´œàµ‹à´²à´¿ à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨à´¾à´¯à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ contextà´²àµâ€ à´Ÿàµˆà´ªàµà´ªàµ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´²àµà´³àµà´³ à´µà´¿à´²à´¾à´¸à´¤àµà´¤à´¿à´¨àµà´±àµ† à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´à´¤àµàµ à´¤à´°àµà´‚ à´Žà´¨àµà´¨àµàµ à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨à´¾à´¯à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ contextà´²àµâ€ mls à´«àµ€à´³àµâ€à´¡àµà´•à´³àµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´²àµà´³àµà´³ à´µà´¿à´²à´¾à´¸à´¤àµà´¤à´¿à´¨àµà´±àµ† à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ mls à´«àµ€à´³àµâ€à´¡àµà´•à´³àµâ€ à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨à´¾à´¯à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%sനൠഫൈലàµâ€ context à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´²àµà´³àµà´³ à´µà´¿à´²à´¾à´¸à´¤àµà´¤à´¿à´¨àµà´±àµ† à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨à´¾à´¯à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "%s/%s à´Žà´¨àµà´¨ à´ªàµ‹à´±àµâ€à´Ÿàµà´Ÿàµ à´šàµ‡à´±àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´²àµà´³àµà´³ à´µà´¿à´²à´¾à´¸à´‚ à´šàµ‡à´°àµâ€à´•àµà´•àµà´µà´¾à´¨à´¾à´¯à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ %s/%s define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ à´µà´¿à´²à´¾à´¸à´‚ à´¨à´¿à´·àµà´•à´°àµâ€à´·à´¿à´šàµà´šà´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "%s/%s à´Žà´¨àµà´¨ à´ªàµ‹à´±àµâ€à´Ÿàµà´Ÿàµ à´šàµ‹à´¦àµà´¯à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "വിലാസം %s-നായി à´šàµ‹à´¦à´¿à´•àµà´•àµà´µà´¾à´¨à´¾à´¯à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ %s/%s à´ªà´°à´¿à´·àµà´•àµà´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "വിലാസം %s-à´²àµâ€ à´®à´¾à´±àµà´±à´‚ à´µà´°àµà´¤àµà´¤àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´²àµà´²"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ %s/%s à´ªàµ‹à´³à´¿à´¸à´¿à´¯à´¿à´²àµâ€ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ, à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•à´¿à´²àµà´²"
++msgstr "വിലാസം %s à´ªàµ‹à´³à´¿à´¸à´¿à´¯à´¿à´²àµâ€ à´¨à´¿à´·àµà´•à´°àµâ€à´·à´¿à´šàµà´šà´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµàµ, à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "%s à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "വിലാസം %s à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%sà´¨àµà´³à´³ à´²àµ‹à´—à´¿à´¨àµâ€ à´®à´¾à´ªàµà´ªà´¿à´‚ങൠപരിഷàµà´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "പോറàµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "വിലാസങàµà´™à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+ #, python-format
+ msgid "Could not check if interface %s is defined"
+-msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ‹ à´Žà´¨àµà´¨àµ à´ªà´°à´¿à´¶àµ‹à´§à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´²à´­àµà´¯à´®à´¾à´•àµà´•à´¿à´¯à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ‹  à´Žà´¨àµà´¨àµ à´ªà´°à´¿à´¶àµ‹à´§à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1461
+ #, python-format
+ msgid "Could not create interface for %s"
+-msgstr "%sനൠഇനàµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ à´‰à´£àµà´Ÿà´¾à´•àµà´•à´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´¨àµàµ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´‰à´£àµà´Ÿà´¾à´•àµà´•à´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "%sനൠഇനàµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ contextà´²àµâ€ à´¯àµ‚സറàµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´¨àµà´³àµà´³ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "%sനൠഇനàµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ contextà´²àµâ€ à´±àµ‹à´³àµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´¨àµà´³àµà´³ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´±àµ‹à´³àµâ€ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "%sനൠഇനàµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ contextà´²àµâ€ à´Ÿàµˆà´ªàµà´ªàµ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´¨àµà´³àµà´³ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´à´¤àµàµ à´¤à´°à´‚ à´Žà´¨àµà´¨àµàµ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr "%sനൠഇനàµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ contextà´²àµâ€ mls à´«àµ€à´³àµâ€à´¡àµà´•à´³àµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´¨àµà´³àµà´³ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ mls à´«àµ€à´³àµâ€à´¡àµà´•à´³àµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr "%sനൠഇനàµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ context à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´¨àµà´³àµà´³ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+@@ -689,41 +682,40 @@ msgstr "%sനൠമെസàµà´¸àµ‡à´œàµ context à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯
+ #: ../semanage/seobject.py:1495
+ #, python-format
+ msgid "Could not add interface %s"
+-msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ à´šàµ‡à´±àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´šàµ‡à´°àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+ #, python-format
+ msgid "Interface %s is not defined"
+-msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´²à´­àµà´¯à´®à´¾à´•àµà´•à´¿à´¯à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1522
+ #, python-format
+ msgid "Could not query interface %s"
+-msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ à´šàµ‹à´¦àµà´¯à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´šàµ‹à´¦àµà´¯à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1533
+ #, python-format
+ msgid "Could not modify interface %s"
+-msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ à´ªà´°à´¿à´·àµà´•àµà´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´ªà´°à´¿à´·àµà´•àµà´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+ msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ à´ªàµ‹à´³à´¿à´¸à´¿à´¯à´¿à´²àµâ€ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ, à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•à´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´ªàµ‹à´³à´¿à´¸à´¿à´¯à´¿à´²àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•à´¿à´¯à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµàµ, à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+ msgid "Could not delete interface %s"
+-msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµàµ à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+-msgstr "ഇനàµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµà´•à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµà´•à´³àµâ€â€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+@@ -734,9 +726,9 @@ msgid "Context"
+ msgstr "കോണàµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ context define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -744,24 +736,24 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "%s à´Žà´¨àµà´¨ Linux à´¯àµ‚സറàµâ€ à´¨à´¿à´²à´µà´¿à´²à´¿à´²àµà´²"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ contextà´²àµâ€ à´¯àµ‚സറàµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%s-à´¨àµà´³à´³ à´«àµˆà´²àµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ contextà´²àµâ€ à´±àµ‹à´³àµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ contextà´²àµâ€ à´±àµ‹à´³àµâ€ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ contextà´²àµâ€ mls à´«àµ€à´³àµâ€à´¡àµà´•à´³àµâ€ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ mls à´«àµ€à´³àµâ€à´¡àµà´•à´³àµâ€ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+@@ -792,18 +784,18 @@ msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ context à´‰à´£àµà´Ÿà´¾à´•àµà´•àµà´µà´¾
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ contextà´²àµâ€ à´Ÿàµˆà´ªàµà´ªàµ à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ contextà´²àµâ€ à´Ÿàµˆà´ªàµà´ªàµ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr "%sനൠഫൈലàµâ€ context à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sനൠഫൈലàµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+ msgid "Could not add file context for %s"
+-msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ context à´šàµ‡à´±àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+@@ -845,11 +837,11 @@ msgstr "%sà´¨àµà´³à´³ à´«àµˆà´²àµâ€ context à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµ
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+-msgstr "ഫൈലàµâ€ contextà´•à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "ഫൈലàµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµà´•à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1903
+ msgid "Could not list local file contexts"
+-msgstr "ലോകàµà´•à´²àµâ€ à´«àµˆà´²àµâ€ contextà´•à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "ലോകàµà´•à´²àµâ€ à´«àµˆà´²àµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµà´•à´³àµâ€ à´²à´¿à´¸àµà´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+@@ -866,11 +858,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -889,14 +880,14 @@ msgid "Could not query file context %s"
+ msgstr "context à´šàµ‹à´¦àµà´¯à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•à´¾à´žàµà´ž à´«àµˆà´²àµâ€ à´†à´£àµ %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "ഒരൠമൂലàµà´²àµà´¯à´‚ à´ªà´±à´žàµà´žà´¿à´°à´¿à´•àµà´•à´£à´‚"
++msgstr "താഴെ à´ªà´±à´žàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´²àµâ€ à´’രൠമൂലàµà´²àµà´¯à´‚ à´ªà´±à´žàµà´žà´¿à´°à´¿à´•àµà´•à´£à´‚: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "ബൂളàµà´¯à´¨àµâ€ %s à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´šàµà´šà´¿à´²àµà´²"
++msgstr "ബൂളàµà´¯à´¨àµâ€ %s-à´¨àµàµ à´¸à´œàµ€à´µà´®à´¾à´¯ à´’രൠമൂലàµà´²àµà´¯à´‚ à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´µà´¾à´¨à´¾à´¯à´¿à´²àµà´²"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -906,7 +897,7 @@ msgstr "ബൂàµà´¬à´³àµà´¯à´¨àµâ€ %s à´ªà´°à´¿à´·àµà´•à´°à´¿à´•àµà´•àµ
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "തെറàµà´±à´¾à´¯ à´°àµ€à´¤à´¿ %s: à´±à´¿à´•àµà´•àµ‹à´°àµâ€à´¡àµ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -939,15 +930,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux à´¬àµ‚ളിയനàµâ€"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "അവസàµà´¥"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "വിവരണം"
+@@ -989,12 +980,12 @@ msgstr "à´Žà´¨àµâ€à´µà´¿à´±àµ‹à´£àµâ€à´®àµ†à´¨àµâ€à´±àµ à´µàµ†à´Ÿà´¿à´ª
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+ msgid "Error changing uid, aborting.\n"
+-msgstr "uid à´®à´¾à´±àµà´±àµà´¨àµà´¨à´¤à´¿à´²àµâ€ à´ªà´¿à´´à´µàµ, à´¨à´¿à´±àµâ€à´¤àµà´¤àµà´¨àµà´¨àµ.\n"
++msgstr "uid à´®à´¾à´±àµà´±àµà´¨àµà´¨à´¤à´¿à´²àµâ€ à´ªà´¿à´´à´µàµ, à´¨à´¿à´°àµâ€à´¤àµà´¤àµà´¨àµà´¨àµ.\n"
+ #: ../newrole/newrole.c:612
+ #, c-format
+ msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr "KEEPCAPS à´±àµ€à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´²àµâ€ à´ªà´¿à´´à´µàµ,നിറàµâ€à´¤àµà´¤àµà´¨àµà´¨àµ\n"
++msgstr "KEEPCAPS à´±àµ€à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´²àµâ€ à´ªà´¿à´´à´µàµ,നിരàµâ€à´¤àµà´¤àµà´¨àµà´¨àµ\n"
+ #: ../newrole/newrole.c:635
+ #, c-format
+@@ -1059,7 +1050,7 @@ msgstr "പിഴവàµ: à´’à´¨àµà´¨à´¿à´²àµâ€ à´•àµ‚à´Ÿàµà´¤à´²àµâ€ à´Ÿ
+ #: ../newrole/newrole.c:850
+ #, c-format
+ msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr "à´•àµà´·à´®à´¿à´•àµà´•à´£à´‚, SELinux kernel à´¸à´ªàµà´ªàµ‹à´±àµâ€à´Ÿàµà´Ÿà´¿à´²àµâ€ -l à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´µàµà´¨àµà´¨à´¤à´¾à´£àµ.\n"
++msgstr "à´•àµà´·à´®à´¿à´•àµà´•à´£à´‚, SELinux kernel à´ªà´¿à´¨àµà´¤àµà´£à´¯à´¿à´²àµâ€ -l à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´µàµà´¨àµà´¨à´¤à´¾à´£àµ.\n"
+ #: ../newrole/newrole.c:855
+ #, c-format
+@@ -1149,7 +1140,7 @@ msgstr "PAM à´¸à´°àµâ€à´µàµ€à´¸àµ à´•àµà´°à´®à´¿à´•à´°à´£à´‚ à´µà´¾à´¯à´¿à´•
+ #: ../newrole/newrole.c:1133
+ #, c-format
+ msgid "newrole: incorrect password for %s\n"
+-msgstr "newrole: %sനൠ à´¤àµ†à´±àµà´±à´¾à´¯ à´ªà´¾à´¸àµà´µàµ‡à´¡àµ \n"
++msgstr "newrole: %sനൠ à´¤àµ†à´±àµà´±à´¾à´¯ à´ªà´¾à´¸àµâ€Œà´µàµ‡à´°àµâ€à´¡àµ \n"
+ #: ../newrole/newrole.c:1160
+ #, c-format
+@@ -1226,7 +1217,7 @@ msgstr "%sà´²àµâ€ %s à´‡à´²àµà´²"
+ #: ../scripts/chcat:267 ../scripts/chcat:272
+ msgid "Can not combine +/- with other types of categories"
+-msgstr "മറàµà´±àµ à´•à´¾à´±àµà´±à´—റികളോടൊപàµà´ªà´‚ +/- à´•àµ‚à´Ÿàµà´Ÿà´¿à´šàµ‡à´±àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´²àµà´²"
++msgstr "മറàµà´±àµ à´•à´¾à´±àµà´±à´—റികളോടൊപàµà´ªà´‚ +/- à´•àµ‚à´Ÿàµà´Ÿà´¿à´šàµ‡à´°àµâ€à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´²àµà´²"
+ #: ../scripts/chcat:319
+ msgid "Can not have multiple sensitivities"
+@@ -1284,1744 +1275,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "ഉപാധിയിലàµâ€ à´ªà´¿à´´à´µàµ: %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "%s à´¤àµà´±à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•àµà´¨àµà´¨à´¿à´²àµà´²: non-MLS à´®à´·àµ€à´¨àµà´•à´³à´¿à´²àµâ€ à´¤à´°àµâ€à´œàµà´œà´®à´•à´³àµâ€ à´ªà´¿à´¨àµà´¤àµà´£à´¯àµà´•àµà´•àµà´¨àµà´¨à´¿à´²àµà´²: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "ലവലàµâ€"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "തരàµâ€à´œàµà´œà´®"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "തറàµâ€à´œà´¿à´®à´•à´³à´¿à´²àµâ€ spaces '%s' à´‰à´£àµà´Ÿà´¾à´•àµà´µà´¾à´¨àµâ€ à´ªà´¾à´Ÿà´¿à´²àµà´²"
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "അസാധàµà´µà´¾à´¯ à´²à´µà´²àµâ€ à´†à´£àµ '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s already defined in translations"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s not defined in translations"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%sà´¨àµà´³à´³ à´²àµ‹à´—à´¿à´¨àµâ€ à´®à´¾à´ªàµà´ªà´¿à´‚ങൠdefine à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿà´£àµà´Ÿàµ"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux à´¯àµ‚സരàµâ€ à´®à´¾à´ªàµà´ªà´¿à´™àµ à´šàµ‡à´°àµâ€à´•àµà´•àµà´•"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "%sà´Žà´¨àµà´¨ SELinux à´¯àµ‚സറàµâ€ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "പോറàµâ€à´Ÿàµà´Ÿàµ %s/%s already defined"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "%s à´Žà´¨àµà´¨ à´‡à´¨àµâ€à´±àµà´±à´±àµâ€à´«àµ†à´¯àµà´¸àµ define à´šàµ†à´¯àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "initing à´²àµâ€ à´ªà´¿à´´à´µàµ, à´¨à´¿à´±àµâ€à´¤àµà´¤àµà´¨àµà´¨àµ.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "à´•àµà´°à´®àµ€à´•à´°à´£à´™àµà´™à´³à´¿à´²àµâ€ à´ªà´¿à´´à´µàµ, à´¨à´¿à´±àµâ€à´¤àµà´¤àµà´¨àµà´¨àµ.\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS à´¸àµ†à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´²àµâ€ à´ªà´¿à´´à´µàµ,നിറàµâ€à´¤àµà´¤àµà´¨àµà´¨àµ\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "droppingà´²àµâ€ à´ªà´¿à´´à´µàµ, à´¨à´¿à´±àµâ€à´¤àµà´¤àµà´¨àµà´¨àµ\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Error dropping SETUID capability, aborting\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "caps à´«àµà´°àµ€ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´²àµâ€ à´ªà´¿à´´à´µàµ\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "non-MLS à´®à´·àµ€à´¨àµà´•à´³à´¿à´²àµâ€ à´¤à´±àµâ€à´œà´¿à´®à´•à´³àµâ€ à´¸à´ªàµà´ªàµ‹à´±àµâ€à´Ÿàµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¿à´²àµà´²"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "ബൂളിയനàµâ€"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "à´Žà´²àµà´²à´¾à´‚ "
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "യഥേഷàµà´Ÿà´®à´¾à´•àµà´•à´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "ഫയലിനൠപേരിടലàµâ€"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "ഫയലിനàµà´³àµà´³\n"
+-#~ "à´ªàµà´°à´¤àµà´¯àµ‡à´•à´¤à´•à´³àµâ€"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "രീതിയിലàµà´³àµà´³ à´«à´¯à´²àµâ€"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "à´à´¤àµ à´¤à´°à´¤àµà´¤à´¿à´²àµà´³àµà´³\n"
+-#~ "ഫയലàµâ€"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "യൂസരàµâ€ à´®à´¾à´ªàµà´ªà´¿à´™àµ"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "à´ªàµà´°à´µàµ‡à´¶à´¨\n"
+-#~ "നാമം"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "ഉപയോകàµà´¤à´¾à´µàµ"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS à´ªà´°à´¿à´§à´¿"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "'%s' à´²àµ‹à´—à´¿à´¨àµâ€ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "പോളിസി à´˜à´Ÿà´•à´‚"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "à´“à´¡à´¿à´±àµà´±àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "à´“à´¡à´¿à´±àµà´±àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "പോളിസി à´˜à´Ÿà´•à´‚ à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "അനി à´ªàµ€à´±àµà´±à´°àµâ€ <apeter@redhat.com>"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux à´ªàµ‹à´³à´¿à´¸à´¿ à´‰à´¤àµà´ªà´¾à´¦à´¨ à´ªàµà´°à´¯àµ‹à´—à´‚"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "ഒരൠപോളിസി à´«àµà´°àµ†à´¯à´¿à´‚വരàµâ€à´•àµà´•àµà´£àµà´Ÿà´¾à´•àµà´•àµà´•, SELinux à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ "
+-#~ "ഉപയോകàµà´¤à´¾à´•àµà´•à´³àµâ€à´•àµà´•àµ à´ªà´°à´¿à´®à´¿à´¤à´¿ à´•à´²àµâ€à´ªà´¿à´•àµà´•àµà´• à´Žà´¨àµà´¨à´¿à´µà´¯àµà´•àµà´•à´¾à´¯à´¿ à´ˆ à´ªàµà´°à´¯àµ‹à´—à´‚ à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•à´¾à´‚.   \n"
+-#~ "\n"
+-#~ "à´ªàµà´°à´¯àµ‹à´—à´‚ à´‰à´²àµâ€à´ªà´¾à´¦à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤àµ:\n"
+-#~ "ടൈപàµà´ªàµ à´Žà´¨àµâ€à´«àµ‹à´´àµà´¸àµà´®àµ†à´¨àµà´±àµ à´«à´¯à´²àµâ€ (te)\n"
+-#~ "ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´«à´¯à´²àµâ€ (if)\n"
+-#~ "ഫയലàµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ à´«à´¯à´²àµâ€ (fc)\n"
+-#~ "ഷെലàµâ€ à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ (sh) - à´ªàµ‹à´³à´¿à´¸à´¿ à´•à´‚പൈലàµâ€ à´šàµ†à´¯àµà´¤àµ à´‡à´¨àµâ€à´¸àµà´±àµà´±àµ‹à´³àµâ€ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´¨àµà´¨àµ. "
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "à´à´¤àµ à´¤à´°à´‚ à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´œàµ‹à´²à´¿ à´Žà´¨àµà´¨àµ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "init à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµà´•à´³àµâ€ à´µà´´à´¿ à´¬àµ‚à´Ÿàµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´†à´°à´‚à´­à´¿à´•àµà´•àµà´¨àµà´¨ à´¡àµ†à´®à´£àµà´•à´³à´¾à´£àµ à´¸àµà´±àµà´±à´¾à´¨àµâ€à´¡àµ‡à´°àµâ€à´¡àµ Init à´¡àµ†à´®à´£àµâ€.  "
+-#~ "ഇതിനൠസാധാരണയായി, /etc/rc.d/init.d-à´²àµâ€ à´’രൠസàµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ."
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "à´¸àµà´±àµà´±à´¾à´¨àµâ€à´¡àµ‡à´°àµâ€à´¡àµ Init à´¡àµ†à´®à´£àµâ€"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "xinetd à´†à´°à´‚à´­à´¿à´•àµà´•àµà´¨àµà´¨ à´¡àµ†à´®à´£àµà´•à´³àµâ€ à´†à´£àµ à´‡à´¨àµà´±à´°àµâ€à´¨àµ†à´±àµà´±àµ à´¸à´°àµâ€à´µàµ€à´¸àµà´•à´³àµà´Ÿàµ† à´¡àµ†à´®à´£àµâ€"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "ഇനàµà´±à´°àµâ€à´¨àµ†à´±àµà´±àµ à´¸à´°àµâ€à´µàµ€à´¸à´¸àµ à´¡àµ†à´®à´£àµâ€ (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr "വെബൠസരàµâ€à´µà´°àµâ€ (à´…à´ªàµà´ªà´¾à´šàµà´šàµ†) à´†à´°à´‚à´­à´¿à´šàµà´š à´µàµ†à´¬àµ à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€/à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ (CGI) CGI à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµà´•à´³àµâ€"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "വെബൠആപàµà´³à´¿à´•àµà´•àµ‡à´·à´¨àµâ€/à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "ഉപയോകàµà´¤à´¾à´µàµ à´†à´°à´‚à´­à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ à´ªàµà´°à´¯àµ‹à´—à´‚ à´à´¤à´¾à´£àµ‹ à´…താകàµà´¨àµà´¨àµ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ à´ªàµà´°à´¯àµ‹à´—à´‚ (യൂസരàµâ€ "
+-#~ "ആപàµà´²à´¿à´•àµà´•àµ‡à´·à´¨àµâ€)"
+-
+-#~ msgid "User Application"
+-#~ msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ à´ªàµà´°à´¯àµ‹à´—à´‚"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>ലോഗിനàµâ€ à´šàµ†à´¯àµà´¤ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµâ€</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "നിലവിലàµà´³àµà´³ à´’രൠലോഗിനàµâ€ à´¯àµ‚സരàµâ€ à´±à´¿à´•àµà´•àµ‹à´°àµâ€à´¡à´¿à´²àµâ€ à´®à´¾à´±àµà´±à´‚ à´µà´°àµà´¤àµà´¤àµà´¨àµà´¨àµ."
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "ഉപയോകàµà´¤à´µà´¾à´¨àµ à´¨à´¿à´²à´µà´¿à´²àµà´³àµà´³ à´¨à´¿à´¯à´®à´¨à´™àµà´™à´³àµâ€"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "ടെരàµâ€à´®à´¿à´¨à´²àµâ€ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ à´±à´¿à´®àµ‹à´Ÿàµà´Ÿàµ à´²àµ‹à´—à´¿à´¨àµâ€ à´µà´´à´¿ à´®à´¾à´¤àµà´°à´®àµ‡ à´¸à´¿à´¸àµà´±àµà´±à´®à´¿à´²àµ‡à´•àµà´•àµ à´ˆ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ "
+-#~ "à´ªàµà´°à´µàµ‡à´¶à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•àµà´¨àµà´¨àµ.  à´¸àµà´µà´¤à´µàµ‡, à´ˆ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ, setuid, à´¨àµ†à´±àµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•à´¿à´™àµ, sudo, su "
+-#~ "à´Žà´¨àµà´¨à´¿à´µ à´²à´­àµà´¯à´®à´²àµà´²."
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "à´à´±àµà´±à´µàµà´‚ à´•àµà´±à´žàµà´ž à´Ÿàµ†à´°àµâ€à´®à´¿à´¨à´²àµâ€ à´¯àµ‚സരàµâ€ à´±àµ‹à´³àµâ€"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "à´Žà´•àµà´¸àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ à´Ÿàµ†à´°àµâ€à´®à´¿à´¨à´²àµâ€ à´µà´´à´¿ à´¸à´¿à´¸àµà´±àµà´±à´®à´¿à´²àµ‡à´•àµà´•àµ à´ˆ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ à´ªàµà´°à´µàµ‡à´¶à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•àµà´¨àµà´¨àµ.  "
+-#~ "à´¸àµà´µà´¤à´µàµ‡, à´ˆ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ, setuid, à´¨àµ†à´±àµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•à´¿à´™àµ, sudo, su à´Žà´¨àµà´¨à´¿à´µ à´²à´­àµà´¯à´®à´²àµà´²."
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "à´à´±àµà´±à´µàµà´‚ à´•àµ‚à´Ÿà´¿à´¯ à´Ÿàµ†à´°àµâ€à´®à´¿à´¨à´²àµâ€ à´¯àµ‚സരàµâ€ à´±àµ‹à´³àµâ€"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "പൂരàµâ€à´£àµà´£ à´¨àµ†à´±àµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•à´¿à´™àµà´³àµà´³, à´®à´¾à´±àµà´±à´‚ à´¸à´¾à´§àµà´¯à´®à´²àµà´²à´¾à´¤àµà´¤ setuid à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€, su, sudo à´Žà´¨àµà´¨à´¿à´µ "
+-#~ "ഇലàµà´²à´¾à´¤àµà´¤ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µàµ."
+-
+-#~ msgid "User Role"
+-#~ msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´œàµ‹à´²à´¿"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "പൂരàµâ€à´£àµà´£ à´¨àµ†à´±àµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•à´¿à´™àµà´³àµà´³, à´®à´¾à´±àµà´±à´‚ à´¸à´¾à´§àµà´¯à´®à´²àµà´²à´¾à´¤àµà´¤ setuid à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€, su à´Žà´¨àµà´¨à´¿à´µ à´‡à´²àµà´²à´¾à´¤àµà´¤ "
+-#~ "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ à´±àµ‚à´Ÿàµà´Ÿàµ à´…à´¡àµà´®à´¿à´¨à´¿à´¸àµà´Ÿàµà´°àµ‡à´·à´¨àµâ€ à´œàµ‹à´²à´¿à´•à´³à´¿à´²àµ‡à´•àµà´•àµ sudo à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•àµà´¨àµà´¨àµ"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "à´…à´¡àµà´®à´¿à´¨àµâ€ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´¨à´¿à´¯à´®à´¨à´‚ "
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>റൂടàµà´Ÿàµ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµâ€</b>"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "റൂടàµà´Ÿàµ à´†à´¯à´¿ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´®àµà´ªàµ‹à´³àµâ€, à´ˆ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¾à´£àµ à´¸à´¿à´¸àµà´±àµà´±à´‚ à´¨à´¿à´°àµ€à´•àµà´·à´¿à´•àµà´•àµà´¨àµà´¨à´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, à´±àµ‚à´Ÿàµà´Ÿàµ "
+-#~ "à´…à´¡àµà´®à´¿à´¨à´¿à´¸àµà´Ÿàµà´°àµ‡à´±àµà´±à´°àµâ€ à´¯àµ‚സരàµâ€ à´±àµ‹à´³àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•.  à´ˆ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ à´¸à´¿à´¸àµà´±àµà´±à´®à´¿à´²àµ‡à´•àµà´•àµ à´¨àµ‡à´°à´¿à´Ÿàµà´Ÿàµ "
+-#~ "à´ªàµà´°à´µàµ‡à´¶à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´²àµà´²."
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "റൂടàµà´Ÿàµ à´…à´¡àµà´®à´¿à´¨àµâ€ à´¯àµ‚സരàµâ€ à´±àµ‹à´³àµâ€"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµà´±àµ† à´ªàµ‡à´°àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´œàµ‹à´²à´¿ à´¨à´²àµâ€à´•àµà´•"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "പേരàµ"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "നിഷàµà´•à´°àµâ€à´·à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³àµà´³ à´ªàµ‚à´°àµâ€à´£àµà´£ à´ªà´¾à´¥àµ à´¨à´²àµâ€à´•àµà´•."
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´¨à´¿à´¯à´®à´¨à´¤àµà´¤à´¿à´¨àµ à´’രൠപേരൠനലàµâ€à´•àµà´•."
+-
+-#~ msgid "Executable"
+-#~ msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•àµà´¨àµà´¨"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Init script"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr "à´ªàµà´°à´¯àµ‹à´—à´‚ à´¤àµà´Ÿà´™àµà´™àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ init à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±à´¿à´¨àµà´³àµà´³ à´ªàµ‚à´°àµâ€à´£àµà´£ à´ªà´¾à´¥àµ à´¨à´²àµâ€à´•àµà´•."
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "നിങàµà´™à´³àµâ€à´•àµà´•àµ à´¯à´¥àµ‡à´·àµà´Ÿà´‚ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´œàµ‹à´²à´¿à´•à´³àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr ""
+-#~ "ഉപയോകàµà´¤à´¾à´µàµ à´à´¤àµ à´œàµ‹à´²à´¿à´•à´³à´¿à´²àµâ€ à´¨à´¿à´¨àµà´¨àµà´‚ à´ˆ à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµà´Ÿàµ† à´¡àµŠà´®àµ†à´¯à´¿à´¨àµà´•à´³à´¿à´²àµ‡à´•àµà´•àµ à´®à´¾à´±àµà´¨àµà´¨àµ à´Žà´¨àµà´¨àµ "
+-#~ "തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "à´ˆ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´ªà´°à´¿à´®à´¿à´¤à´¿à´•à´³àµâ€ à´®à´¾à´±àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³àµà´³ à´•àµ‚à´Ÿàµà´¤à´²àµâ€ à´¡àµŠà´®àµ†à´¯à´¿à´¨àµà´•à´³àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "നിങàµà´™à´³àµâ€ à´ˆ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´œàµ‹à´²à´¿à´•à´³àµâ€ à´à´¤àµ à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµà´Ÿàµ† à´¡àµŠà´®àµ†à´¯à´¿à´¨àµà´•à´³à´¿à´²àµ‡à´•àµà´•àµ à´®à´¾à´±à´£à´‚ à´Žà´¨àµà´¨àµ "
+-#~ "തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•."
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "à´ˆ à´¡àµŠà´®àµ†à´¯à´¿à´¨à´¿à´²àµ‡à´•àµà´•àµ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´à´¤àµ†à´²àµà´²à´¾à´‚ à´œàµ‹à´²à´¿à´•à´³àµâ€ à´®à´¾à´±àµà´¨àµà´¨àµ à´Žà´¨àµà´¨àµ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "à´ˆ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ à´•àµˆà´•à´¾à´°àµà´¯à´‚ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ à´•àµ‚à´Ÿàµà´¤à´²àµâ€ à´¡àµŠà´®àµ†à´¯à´¿à´¨àµà´•à´³àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "à´ˆ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µàµ à´¨à´¿à´°àµ€à´•àµà´·à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ à´¡àµŠà´®àµ†à´¯à´¿à´¨àµà´•à´³àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•."
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "à´ˆ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ à´•àµ‚à´Ÿàµà´¤à´²àµâ€ à´œàµ‹à´²à´¿à´•à´³àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ à´²à´­àµà´¯à´®à´¾à´•àµà´¨àµà´¨ à´¨àµ†à´±àµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ à´¨à´²àµâ€à´•àµà´•"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€</b>"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr "à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ† à´à´¤àµ†à´™àµà´•à´¿à´²àµà´‚ udp à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿà´¿à´²àµ‡à´•àµà´•àµ à´¬àµˆà´¨àµâ€à´¡àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´¨àµà´¨àµ"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "à´Žà´²àµà´²à´¾à´‚"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "0 à´‰à´³àµà´³ bindresvport-നെ à´µà´¿à´³à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•. à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ "
+-#~ "600-1024-ലേകàµà´•àµ à´¬àµˆà´¨àµâ€à´¡àµ à´šàµ†à´¯àµà´¯àµà´•"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ à´¬àµˆà´¨àµâ€à´¡àµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´¯àµà´¡à´¿à´ªà´¿ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµ‹ à´…വയàµà´Ÿàµ† à´ªà´°à´¿à´§à´¿à´¯à´¿à´²àµâ€à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨ "
+-#~ "മറàµà´±àµ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµ‹ à´•àµ‹à´®à´¾ à´‰à´ªà´¯àµ‹à´—à´¿à´šàµà´šàµ à´µàµ‡à´°àµâ€à´¤à´¿à´°à´¿à´šàµà´šàµ à´¨à´²àµâ€à´•àµà´•. à´‰à´¦à´¾: 612, 650-660"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "മറàµà´±àµŠà´¨àµà´¨à´¿à´¨àµà´‚ à´•à´°àµà´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²à´¾à´¤àµà´¤ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ (>1024)"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "പോരàµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
+-
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ† à´à´¤àµ†à´™àµà´•à´¿à´²àµà´‚ udp à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ > 1024-ലേകàµà´•àµ à´¬àµˆà´¨àµâ€à´¡àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´¨àµà´¨àµ"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr "à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µàµ à´•à´£à´•àµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨ à´¨àµ†à´±àµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ à´¨à´²àµâ€à´•àµà´•"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ à´•à´£à´•àµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´Ÿà´¿à´¸à´¿à´ªà´¿ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµ‹ à´…വയàµà´Ÿàµ† à´ªà´°à´¿à´§à´¿à´¯à´¿à´²àµâ€à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨ "
+-#~ "മറàµà´±àµ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµ‹ à´•àµ‹à´®à´¾ à´‰à´ªà´¯àµ‹à´—à´¿à´šàµà´šàµ à´µàµ‡à´°àµâ€à´¤à´¿à´°à´¿à´šàµà´šàµ à´¨à´²àµâ€à´•àµà´•. à´‰à´¦à´¾: 612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ à´•à´£à´•àµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´¯àµà´¡à´¿à´ªà´¿ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµ‹ à´…വയàµà´Ÿàµ† à´ªà´°à´¿à´§à´¿à´¯à´¿à´²àµâ€à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨ "
+-#~ "മറàµà´±àµ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµ‹ à´•àµ‹à´®à´¾ à´‰à´ªà´¯àµ‹à´—à´¿à´šàµà´šàµ à´µàµ‡à´°àµâ€à´¤à´¿à´°à´¿à´šàµà´šàµ à´¨à´²àµâ€à´•àµà´•. à´‰à´¦à´¾: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "സാധാരണ à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµà´Ÿàµ† à´µà´¿à´¶àµ‡à´·à´¤à´•à´³àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "syslog à´¸à´¨àµà´¦àµ‡à´¶à´™àµà´™à´³àµâ€ à´Žà´´àµà´¤àµà´¨àµà´¨àµ\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "/tmp-à´²àµà´³àµà´³ à´¤à´¾à´²àµâ€à´•àµà´•à´¾à´²à´¿à´• à´«à´¯à´²à´•àµà´³àµâ€ à´‰à´£àµà´Ÿà´¾à´•àµà´•àµà´•/കൈകാരàµà´¯à´‚ à´šàµ†à´¯àµà´¯àµà´•."
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "അധികാരം à´‰à´±à´ªàµà´ªà´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´ªà´¾à´‚ à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´•"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "nsswitch à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ getpw* à´•àµ‹à´³àµà´•à´³àµâ€ à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´¨àµà´¨àµ"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "dbus à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´¨àµà´¨àµ"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "à´“à´¡à´¿à´±àµà´±àµ à´¸à´¨àµà´¦àµ‡à´¶à´™àµà´™à´³àµâ€ à´…യയàµà´•àµà´•àµà´¨àµà´¨àµ"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "ടെരàµâ€à´®à´¿à´¨à´²àµà´®à´¾à´¯à´¿ à´¬à´¨àµà´§à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨àµ"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "ഈമെയിലàµâ€ à´…യയàµà´•àµà´•àµà´¨àµà´¨àµ"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "à´ªàµà´°à´¯àµ‹à´—à´‚ à´•àµˆà´•à´¾à´°àµà´¯à´‚ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ à´«à´¯à´²àµà´•à´³àµâ€/ഡയറകàµà´Ÿà´±à´¿à´•à´³àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•."
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "Pid, à´²àµ‹à´—àµ, /var/lib à´Žà´¨àµà´¨àµ€ à´«à´¯à´²àµà´•à´³à´¿à´²àµ‡à´•àµà´•àµ \"à´Žà´´àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨àµ\" â€Œâ€Œâ€Œà´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ à´†à´µà´¶àµà´¯à´®à´¾à´¯ à´«à´¯à´²àµà´•à´³àµâ€/"
+-#~ "ഡയറകàµà´Ÿà´±à´¿à´•à´³àµâ€ à´šàµ‡à´°àµâ€à´•àµà´•àµà´• ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "à´ªàµà´°à´¯àµ‹à´—à´‚ à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´¨àµà´¨ à´¬àµ‚ളിയനàµà´•à´³àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr "à´ˆ à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ à´†à´µà´¶àµà´¯à´®àµà´³àµà´³ à´¬àµ‚ളിയനàµà´•à´³àµâ€ à´šàµ‡à´°àµâ€à´•àµà´•àµà´•/നീകàµà´•àµà´•"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "പോളിസി à´‰à´£àµà´Ÿà´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "പോളിസി à´¡à´¯à´±à´•àµà´Ÿà´±à´¿"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "പോളിസി à´«à´¯à´²àµà´•à´³àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•à´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "à´ˆ à´Ÿàµ‚à´³àµâ€ à´¤à´¾à´´àµ† à´ªà´±à´¯àµà´¨àµà´¨à´µ à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨àµ: \n"
+-#~ "ടൈപàµà´ªàµ à´Žà´¨àµâ€à´«àµ‹à´´àµà´¸àµà´®àµ†à´¨àµà´±àµ(te), à´«à´¯à´²àµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ(fc), à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ(if), à´·àµ†à´²àµâ€ à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ(sh)\n"
+-#~ "കംപൈലàµâ€/ഇനàµâ€à´¸àµà´±àµà´±àµ‹à´³àµâ€ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´‚ à´«à´¯à´²àµà´•à´³àµâ€/ഡയറകàµà´Ÿà´±à´¿à´•à´³àµâ€à´•àµà´•àµ à´µàµ€à´£àµà´Ÿàµà´‚ à´ªàµ‡à´°àµ à´®à´¾à´±àµà´±àµà´¨àµà´¨à´¤à´¿à´¨àµà´‚ à´·àµ†à´²àµâ€ "
+-#~ "à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´•.  \n"
+-#~ "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ à´œàµ‹à´²à´¿à´•à´³à´¿à´²àµ‡à´•àµà´•àµ à´²à´¿à´¨à´•àµà´¸àµ à´²àµ‹à´—à´¿à´¨àµâ€ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµ† à´®à´¾à´ªàµà´ªàµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ "
+-#~ "semanage à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ useradd à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´•\n"
+-#~ "സിസàµà´±àµà´±à´‚ à´ªàµ†à´°àµâ€à´®àµà´®à´¿à´¸àµà´¸àµ€à´µàµ à´®àµ‹à´¡à´¿à´²à´¾à´•àµà´•àµà´• (setenforce 0). \n"
+-#~ "ഉപയോകàµà´¤à´¾à´µà´¾à´¯à´¿ à´²àµ‹à´—à´¿à´¨àµâ€ à´šàµ†à´¯àµà´¤àµ à´ˆ à´œàµ‹à´²à´¿ à´ªà´°àµ€à´•àµà´·à´¿à´•àµà´•àµà´• .\n"
+-#~ "te à´«à´¯à´²à´¿à´²àµâ€ à´•àµ‚à´Ÿàµà´¤à´²àµâ€ à´¨à´¿à´¯à´®à´™àµà´™à´³àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ audit2allow -R à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´•.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "à´ˆ à´Ÿàµ‚à´³àµâ€ à´¤à´¾à´´àµ† à´ªà´±à´¯àµà´¨àµà´¨à´µ à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨àµ: \n"
+-#~ "ടൈപàµà´ªàµ à´Žà´¨àµâ€à´«àµ‹à´´àµà´¸àµà´®àµ†à´¨àµà´±àµ(te), à´«à´¯à´²àµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ(fc), à´‡à´¨àµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ(if), à´·àµ†à´²àµâ€ à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ(sh)\n"
+-#~ "\n"
+-#~ "കംപൈലàµâ€/ഇനàµâ€à´¸àµà´±àµà´±àµ‹à´³àµâ€ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´‚ à´«à´¯à´²àµà´•à´³àµâ€/ഡയറകàµà´Ÿà´±à´¿à´•à´³àµâ€à´•àµà´•àµ à´µàµ€à´£àµà´Ÿàµà´‚ à´ªàµ‡à´°àµ à´®à´¾à´±àµà´±àµà´¨àµà´¨à´¤à´¿à´¨àµà´‚ à´·àµ†à´²àµâ€ "
+-#~ "à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´•.  \n"
+-#~ "സിസàµà´±àµà´±à´‚ à´ªàµ†à´°àµâ€à´®àµà´®à´¿à´¸àµà´¸àµ€à´µàµ à´®àµ‹à´¡à´¿à´²à´¾à´•àµà´•àµà´• (setenforce 0). \n"
+-#~ "avc à´¸à´¨àµà´¦àµ‡à´¶à´™àµà´™à´³àµâ€ à´‰à´£àµà´Ÿà´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´ªàµà´°à´¯àµ‹à´—à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´•à´¯àµ‹ à´µàµ€à´£àµà´Ÿàµà´‚ à´†à´°à´‚à´­à´¿à´•àµà´•àµà´•à´¯àµ‹ "
+-#~ "ചെയàµà´¯àµà´• .\n"
+-#~ "te à´«à´¯à´²à´¿à´²àµâ€ à´•àµ‚à´Ÿàµà´¤à´²àµâ€ à´¨à´¿à´¯à´®à´™àµà´™à´³àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ audit2allow -R à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´•.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "ബൂളിയനàµâ€à´¸àµ à´¡à´¯à´²àµ‹à´—ൠചേരàµâ€à´•àµà´•àµà´•"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "ബൂളിയനàµâ€ à´ªàµ‡à´°àµ"
+-
+-#~ msgid "Role"
+-#~ msgstr "നിയമനം"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "നിലവിലàµà´³àµà´³ _ഉപയോകàµà´¤à´¾à´µàµ"
+-
+-#~ msgid "Application"
+-#~ msgstr "à´ªàµà´°à´¯àµ‹à´—à´‚"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s à´’രൠഡയറകàµà´Ÿà´±à´¿ à´†à´¯à´¿à´°à´¿à´•àµà´•à´£à´‚"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "നിങàµà´™à´³àµâ€ à´’രൠഉപയോകàµà´¤à´¾à´µàµ à´†à´¯à´¿à´°à´¿à´•àµà´•à´£à´‚"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "പരിമിതി à´†à´µà´¶àµà´¯à´®àµà´³àµà´³ à´¨à´¿à´·àµà´•à´°àµâ€à´·à´¿à´•àµà´•àµ‡à´£àµà´Ÿ à´«à´¯à´²àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "പരിമിതി à´†à´µà´¶àµà´¯à´®àµà´³àµà´³ à´‡à´¨à´¿à´±àµà´±àµ à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ à´«à´¯à´²àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "à´ªàµà´°à´¯àµ‹à´—à´‚ à´‰à´£àµà´Ÿà´¾à´•àµà´•àµà´•à´¯àµ‹ à´…തിലേകàµà´•àµ à´Žà´´àµà´¤àµà´•à´¯àµ‹ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµ à´ªà´°à´¿à´®à´¿à´¤à´¿à´¯àµà´³àµà´³ à´«à´¯à´²àµâ€ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµà´±àµ† à´‰à´Ÿà´®à´¸àµà´¥à´¤à´¯à´¿à´²àµà´³àµà´³à´¤àµà´‚ à´…തിലേകàµà´•àµ à´Žà´´àµà´¤àµà´•à´¯àµà´‚ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµ à´ªà´°à´¿à´®à´¿à´¤à´¿à´¯àµà´³àµà´³ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿ "
+-#~ "തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "പോളിസി à´«à´¯à´²àµà´•à´³àµâ€ à´‰à´£àµà´Ÿà´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "നിലവിലàµà´³àµà´³ à´ªàµ‹à´³à´¿à´¸à´¿à´¯à´¿à´²àµâ€ %s_t à´Žà´¨àµà´¨ à´°àµ€à´¤à´¿ à´¨à´¿à´·àµà´•à´°àµâ€à´·à´¿à´šàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ.\n"
+-#~ "നിങàµà´™à´³àµâ€à´•àµà´•àµ à´®àµà´®àµà´ªàµ‹à´Ÿàµà´Ÿàµ à´ªàµ‹à´•à´£à´®àµ‹?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "പേരൠഉറപàµà´ªà´¾à´•àµà´•àµà´•"
+-
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "നിലവിലàµà´³àµà´³ à´ªàµ‹à´³à´¿à´¸à´¿à´¯à´¿à´²àµâ€ %s.pp à´Žà´¨àµà´¨ à´˜à´Ÿà´•à´‚ à´²à´­àµà´¯à´®à´¾à´£àµ.\n"
+-#~ "നിങàµà´™à´³àµâ€à´•àµà´•àµ à´®àµà´®àµà´ªàµ‹à´Ÿàµà´Ÿàµ à´ªàµ‹à´•à´£à´®àµ‹?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "ഒരൠപേരൠപറഞàµà´žà´¿à´°à´¿à´•àµà´•à´£à´‚"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´¤àµà´¤à´¿à´²àµà´³àµà´³à´¤àµ à´ªà´±à´žàµà´žà´¿à´°à´¿à´•àµà´•à´£à´‚"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´•"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "പോരàµâ€à´Ÿàµà´Ÿàµà´•à´³àµà´Ÿàµ† à´¨à´‚ബരàµâ€ 1 à´®àµà´¤à´²àµâ€ %d à´†à´¯à´¿à´°à´¿à´•àµà´•à´£à´‚ "
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "നിങàµà´™à´³àµâ€à´•àµà´•àµ à´ªà´°à´¿à´®à´¿à´¤à´¿à´¯àµà´³àµà´³ à´ªàµà´°à´•àµà´°à´¿à´¯/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ à´’രൠപേരൠനലàµâ€à´•àµà´•"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "USER à´¤à´°à´¤àµà´¤à´¿à´²àµà´³àµà´³à´µ à´¨à´¿à´·àµà´•à´°àµâ€à´·à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§àµà´¯à´®à´²àµà´²"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "ഡെമണàµâ€ à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€à´•àµà´•àµ à´®à´¾à´¤àµà´°à´®àµ‡ init à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ à´¸à´¾à´§à´¿à´•àµà´•àµ‚"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog à´’രൠബൂളിയനàµâ€ à´†à´¯à´¿à´°à´¿à´•àµà´•à´£à´‚"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "USER à´¤à´°à´¤àµà´¤à´¿à´²àµà´³àµà´³à´µà´¯àµà´•àµà´•àµ à´¸àµà´µà´¯à´®àµ‡ à´’രൠtmp à´¤à´°à´¤àµà´¤à´¿à´²àµà´³àµà´³à´¤àµ à´²à´­àµà´¯à´®à´¾à´•àµà´¨àµà´¨àµ"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "നിങàµà´™à´³àµâ€à´•àµà´•àµ à´ªà´°à´¿à´®à´¿à´¤à´¿à´¯àµà´³àµà´³ à´ªàµà´°à´•àµà´°à´¿à´¯à´¯àµà´•àµà´•àµà´³àµà´³ à´ªà´¾à´¥àµ à´¨à´²àµâ€à´•àµà´•"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "à´Žà´¨àµâ€à´«àµ‹à´°àµâ€à´¸àµà´®àµ†à´¨àµà´±àµ à´«à´¯à´²àµâ€ à´Ÿàµˆà´ªàµà´ªàµ à´šàµ†à´¯àµà´¯àµà´•"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "ഇനàµà´±à´°àµâ€à´«àµ†à´¯à´¿à´¸àµ à´«à´¯à´²àµâ€"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "ഫൈലàµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ à´«à´¯à´²àµà´•à´³àµâ€"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux à´¤à´°à´¤àµà´¤à´¿à´²àµà´³àµà´³\n"
+-#~ "പോരàµâ€à´Ÿàµà´Ÿàµ"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "സമàµà´ªàµà´°à´¦à´¾à´¯à´‚"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "ലവലàµâ€"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "പോരàµâ€à´Ÿàµà´Ÿàµ"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "\"%s\" à´Žà´¨àµà´¨ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ à´¨à´‚ബരàµâ€ à´¤àµ†à´±àµà´±à´¾à´£àµ.  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "പടàµà´Ÿà´¿à´•à´¯à´¿à´²àµâ€ à´•à´¾à´£àµà´•"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "à´—àµà´°àµ‚à´ªàµà´ªà´¾à´¯àµà´³àµà´³ à´•à´¾à´´àµà´š"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux à´¸à´°àµâ€à´µàµ€à´¸àµ à´¸àµà´°à´•àµà´·"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "acct à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "à´…à´¡àµà´®à´¿à´¨àµâ€"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "/-ലേകàµà´•àµ corefile-à´•à´³àµâ€ à´Žà´´àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´Žà´²àµà´²à´¾ à´¡àµ†à´®à´£àµà´•à´³àµ‡à´¯àµà´‚ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "നലàµâ€à´•à´¿à´¯à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²à´¾à´¤àµà´¤ tty à´‰à´ªà´¯àµ‹à´—à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ à´•à´´à´¿à´µàµ à´Žà´²àµà´²à´¾ à´¡àµ†à´®à´£àµà´•à´³àµâ€à´•àµà´•àµà´‚ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ à´…à´¨àµà´®à´¤à´¿à´•à´³àµâ€"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´¹àµ‹à´‚ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ /tmp-à´²àµâ€ à´«à´¯à´²àµà´•à´³àµâ€ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´—à´¸àµà´±àµà´±àµ "
+-#~ "SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµà´Ÿàµ† à´…à´•àµà´•àµŒà´£àµà´Ÿàµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´¹àµ‹à´‚ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ /tmp-à´²àµâ€ à´«à´¯à´²àµà´•à´³àµâ€ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ "
+-#~ "gadmin SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµà´Ÿàµ† à´…à´•àµà´•àµŒà´£àµà´Ÿàµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "മെമàµà´®à´±à´¿ à´¸àµà´°à´•àµà´·"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "ജാവാ à´Žà´•àµà´¸à´¿à´•àµà´¯àµ‚à´Ÿàµà´Ÿà´¬à´¿à´³àµâ€ à´¸àµà´±àµà´±à´¾à´•àµà´•àµ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Mount"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "mount à´‰à´ªà´¯àµ‹à´—à´¿à´šàµà´šàµ à´à´¤àµ à´«à´¯à´²àµà´‚ à´®àµŒà´£àµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "mount à´‰à´ªà´¯àµ‹à´—à´¿à´šàµà´šàµ à´à´¤àµ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿à´¯àµà´‚ à´®àµŒà´£àµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "mplayer à´Žà´•àµà´¸à´¿à´•àµà´¯àµ‚à´Ÿàµà´Ÿà´¬à´¿à´³àµâ€ à´¸àµà´±àµà´±à´¾à´•àµà´•àµ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "ssh-keysign à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ ssh-നെ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´¹àµ‹à´‚ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ /tmp-à´²àµâ€ à´«à´¯à´²àµà´•à´³àµâ€ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ staff "
+-#~ "SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµà´Ÿàµ† à´…à´•àµà´•àµŒà´£àµà´Ÿàµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´¹àµ‹à´‚ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ /tmp-à´²àµâ€ à´«à´¯à´²àµà´•à´³àµâ€ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ "
+-#~ "sysadm SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµà´Ÿàµ† à´…à´•àµà´•àµŒà´£àµà´Ÿàµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´¹àµ‹à´‚ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ /tmp-à´²àµâ€ à´«à´¯à´²àµà´•à´³àµâ€ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ "
+-#~ "പരിമിതകളിലàµà´²à´¾à´¤àµà´¤ SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµà´Ÿàµ† à´…à´•àµà´•àµŒà´£àµà´Ÿàµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµ à´•àµà´°à´®à´¿à´•à´°à´£à´‚"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "പേരിലàµà´²à´¾à´¤àµà´¤ à´ªà´¾à´•àµà´•à´±àµà´±àµà´•à´³àµ† à´¨àµ†à´±àµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•à´¿à´²àµ‚ടെ à´•à´Ÿà´¤àµà´¤à´¿à´µà´¿à´Ÿà´¾à´¨àµâ€ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´¹àµ‹à´‚ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ /tmp-à´²àµâ€ à´«à´¯à´²àµà´•à´³àµâ€ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´¯àµ‚സരàµâ€ "
+-#~ "SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµà´Ÿàµ† à´…à´•àµà´•àµŒà´£àµà´Ÿàµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr ""
+-#~ "unconfined_execmem-ലേകàµà´•àµ dyntrans à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´ªà´°à´¿à´®à´¿à´¤à´¿à´•à´³à´¿à´²àµà´²à´¾à´¤àµà´¤à´µà´¯àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "ഡേറàµà´±à´¾ à´¶àµ‡à´–രണങàµà´™à´³àµâ€"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "mysql à´¸àµ‹à´•àµà´•à´±àµà´±à´¿à´²àµ‡à´•àµà´•àµ à´•à´£à´•àµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "postgres à´¸àµ‹à´•àµà´•à´±àµà´±à´¿à´²àµ‡à´•àµà´•àµ à´•à´£à´•àµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "X à´·àµ†à´¯à´°àµâ€à´¡àµ à´®àµ†à´®àµà´®à´±à´¿à´¯à´¿à´²àµ‡à´•àµà´•àµ à´Žà´´àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´•àµà´³àµˆà´¨àµà´±àµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´¹àµ‹à´‚ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ /tmp-à´²àµâ€ à´«à´¯à´²àµà´•à´³àµâ€ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ "
+-#~ "xguest SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµà´Ÿàµ† à´…à´•àµà´•àµŒà´£àµà´Ÿàµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "NIS-നൊപàµà´ªà´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´¡àµ†à´®à´£àµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "വെബൠപàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "à´¸àµà´±àµà´±à´¾à´«àµ SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´µàµ†à´¬àµ à´¬àµà´°àµŒà´¸à´°àµâ€ à´¡àµŠà´®àµ†à´¯à´¿à´¨à´¿à´²àµ‡à´•àµà´•àµ à´®à´¾à´±àµà´±àµà´•"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "sysadm SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´µàµ†à´¬àµ à´¬àµà´°àµŒà´¸à´°àµâ€ à´¡àµŠà´®àµ†à´¯à´¿à´¨à´¿à´²àµ‡à´•àµà´•àµ à´®à´¾à´±àµà´±àµà´•"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "യൂസരàµâ€ SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´µàµ†à´¬àµ à´¬àµà´°àµŒà´¸à´°àµâ€ à´¡àµŠà´®àµ†à´¯à´¿à´¨à´¿à´²àµ‡à´•àµà´•àµ à´®à´¾à´±àµà´±àµà´•"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "xguest SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´µàµ†à´¬àµ à´¬àµà´°àµŒà´¸à´°àµâ€ à´¡àµŠà´®àµ†à´¯à´¿à´¨à´¿à´²àµ‡à´•àµà´•àµ à´®à´¾à´±àµà´±àµà´•"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "ഹോം à´¡à´¯à´±à´•àµà´Ÿà´±à´¿à´•à´³à´¿à´²àµ‡à´•àµà´•àµ à´Žà´´àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´¸àµà´±àµà´±à´¾à´«àµ à´µàµ†à´¬àµ à´¬àµà´°àµŒà´¸à´±àµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "amanda-à´¯àµà´•àµà´•àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "amavis-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "apmd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "arpwatch à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "auditd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "automount à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "avahi-à´¯àµà´•àµà´•àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "bluetooth à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "canna à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "cardmgr à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "à´•àµà´³à´¸àµà´±àµà´±à´°àµâ€ à´¸à´°àµâ€à´µà´±à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "പല à´‰à´³àµà´³à´Ÿà´•àµà´•à´™àµà´™à´³àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ cdrecord-നെ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•. nfs, samba, à´®à´¾à´±àµà´±àµà´µà´¾à´¨àµâ€ "
+-#~ "സാധികàµà´•àµà´¨àµà´¨ à´¡à´¿à´µàµˆà´¸àµà´•à´³àµâ€, à´¯àµ‚സരàµâ€ temp, à´µà´¿à´¶àµà´µà´¸à´¨àµ€à´¯à´®à´²àµà´²à´¾à´¤àµà´¤ à´•à´£àµâ€à´Ÿàµ†à´¨àµà´±àµ à´«à´¯à´²àµà´•à´³àµâ€ à´Žà´¨àµà´¨à´¿à´µ"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ciped à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "clamd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "clamscan-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "clvmd-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "comsat à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "courier à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "cpucontrol à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "cpuspeed à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "à´ªàµà´°à´¿à´¨àµà´±àµ à´šàµ†à´¯àµà´¯à´²àµâ€"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "cupsd à´¬à´¾à´•àµà´•àµ†à´¨àµâ€à´¡àµ à´¸à´°àµâ€à´µà´±à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´• "
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "cupsd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "cupsd_lpd-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "cvs à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "cyrus à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "dbskkd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "dbusd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "dccd-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "dccifd-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "dccm-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ddt à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "devfsd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "dhcpc à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "dhcpd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "dictd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "നേരിടàµà´Ÿàµ à´¡àµ†à´®à´£àµà´•à´³àµâ€ à´†à´°à´‚à´­à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ sysadm_t-നെ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "ഇവലàµà´¯àµ‚à´·à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "കളികളàµâ€"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "കളികളàµâ€à´•àµà´•àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "വെബൠബàµà´°àµŒà´¸à´±àµà´•à´³àµâ€à´•àµà´•àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "തണàµà´Ÿà´°àµâ€à´¬àµ‡à´°àµâ€à´¡à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "fetchmail-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Hal à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "കോംപാറàµà´±à´¿à´¬à´¿à´³à´¿à´±àµà´±à´¿"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr "à´¸àµà´°à´•àµà´·à´¯àµà´•àµà´•àµ à´•àµ‹à´Ÿàµà´Ÿà´‚ à´¤à´Ÿàµà´Ÿà´¾à´¤àµà´¤à´¤àµà´‚ à´¤à´•à´°à´¾à´±àµà´³àµà´³à´¤àµà´®à´¾à´¯ à´•à´¾à´°àµà´¯à´™àµà´™à´³àµâ€ à´“à´¡à´¿à´±àµà´±àµ à´šàµ†à´¯àµà´¯à´°àµà´¤àµ"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "hostname à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "cups hplip à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "http rotatelogs-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD à´¸à´°àµâ€à´µàµ€à´¸àµ"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexec-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "inetd à´šàµˆà´³àµâ€à´¡àµ à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ircd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "irqbalance à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "iscsi à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "jabberd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "kadmind à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "klogd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "krb5kdc à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ktalk à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "kudzu à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "locate à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "lpd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "lrrd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "lvm à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "mailman-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr ""
+-#~ "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ à´«à´¯à´²àµà´•à´³àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´‡à´µà´²àµà´¯àµ‚à´·àµà´¯à´¨àµâ€, à´¤à´£àµà´Ÿà´°àµâ€à´¬àµ‡à´°àµâ€à´¡àµ à´Žà´¨àµà´¨à´¿à´µà´°àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "mdadm à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "monopd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ à´«à´¯à´²àµà´•à´³àµâ€ à´µà´¾à´¯à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´®àµ‹à´¸à´¿à´²à´¾ à´¬àµà´°àµŒà´¸à´±à´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "mrtg à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "mysqld à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "nagios à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "നെയിം à´¸à´°àµâ€à´µàµ€à´¸àµ"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "named à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "nessusd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "NetworkManager-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "nfsd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "സാംബാ"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "nmbd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "nrpe à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "nscd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "nsd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ntpd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "oddjob-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "oddjob_mkhomedir-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "openvpn à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "pam à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "pegasus-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "perdition à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "portmap à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "portslave à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "postfix-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "postgresql à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "ഒരൠസാധാരണ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ pppd-യെ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "ppt-à´¯àµà´•àµà´•àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "prelink à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "privoxy à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ptal à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "pxe à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "pyzord-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "quota à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "radiusd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "radvd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "rdisc-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "readahead-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "നിലവാരമിലàµà´²à´¾à´¤àµà´¤ à´¸àµà´¥à´¾à´¨à´™àµà´™à´³à´¿à´²àµà´³àµà´³ à´«à´¯à´²àµà´•à´³àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ à´ªàµà´°àµ‹à´—àµà´°à´¾à´®àµà´•à´³àµâ€ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´• "
+-#~ "(default_t)"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "restorecond-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "rhgb à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ricci-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ricci_modclusterd-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "rlogind à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "rpcd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "rshd-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "rsync à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr ""
+-#~ "ഒരൠഡെമണàµâ€ à´†à´¯à´¿ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ à´ªà´•à´°à´‚ inetd à´†à´¯à´¿ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ ssh-നെ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "nfs à´¡à´¯à´±à´•àµà´Ÿà´±à´¿à´•à´³àµâ€ à´ªà´™àµà´•à´¿à´Ÿàµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ Samba-യെ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL à´“ഥനàµà´±à´¿à´•àµà´•àµ‡à´·à´¨àµâ€ à´¸à´°àµâ€à´µà´°àµâ€"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "/etc/shadow à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ sasl à´“ഥനàµà´±à´¿à´•àµà´•àµ‡à´·à´¨àµâ€ à´¸à´°àµâ€à´µà´±à´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "à´Žà´•àµà´¸à´¿à´•àµà´¯àµ‚à´Ÿàµà´Ÿà´¬à´¿à´³àµà´‚ à´±àµˆà´±àµà´±à´¬à´¿à´³àµà´®à´¾à´¯à´¿ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ à´’രൠമെമàµà´®à´±à´¿à´¯à´¿à´²àµ‡à´•àµà´•àµ à´®à´¾à´ªàµà´ªàµ "
+-#~ "ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´Žà´•àµà´¸àµ-വിനàµâ€à´¡àµ‹à´¸àµ à´¸à´°àµâ€à´µà´±à´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "saslauthd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "scannerdaemon à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "sysadm_t, sudo, su à´¬à´¾à´§à´•à´®à´¾à´¯à´µà´¯à´¿à´²àµ‡à´•àµà´•àµ à´®à´¾à´±àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´…à´¨àµà´µà´¦à´¿à´•àµà´•à´°àµà´¤àµ"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "കേരàµâ€à´£à´²àµâ€ à´˜à´Ÿà´•à´™àµà´™à´³àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´’രൠപàµà´°à´•àµà´°à´¿à´¯à´•à´³àµ‡à´¯àµà´‚ à´…à´¨àµà´µà´¦à´¿à´•àµà´•à´°àµà´¤àµ"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr ""
+-#~ "കേരàµâ€à´£à´²à´¿à´¨àµà´±àµ† SELinux à´ªàµ‹à´³à´¿à´¸à´¿à´¯à´¿à´²àµâ€ à´®à´¾à´±àµà´±à´‚ à´µà´°àµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´’രൠപàµà´°à´•àµà´°à´¿à´¯à´•à´³àµ‡à´¯àµà´‚ à´…à´¨àµà´µà´¦à´¿à´•àµà´•à´°àµà´¤àµ"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "sendmail à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "setrans-à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "setroublesoot à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´• "
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "slapd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "slrnpull à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "smbd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "snmpd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "snort à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "soundd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "sound à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "à´¸àµà´ªà´¾à´®à´¿à´¨àµà´³àµà´³ à´¸àµà´°à´•àµà´· "
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "spamd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "ഹോം à´¡à´¯à´±à´•àµà´Ÿà´±à´¿à´•à´³à´¿à´²àµ‡à´•àµà´•àµ à´ªàµà´°à´µàµ‡à´¶à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ spamd à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "à´¸àµà´ªà´¾à´‚ à´…à´¸àµà´¸à´¾à´¸àµà´¸à´¿à´¨àµâ€ à´¡àµ†à´®à´£àµâ€ à´¨àµ†à´±àµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµ à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "speedmgmt à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "à´¸àµà´•àµà´µà´¿à´¡àµ"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•à´¿à´²àµ‡à´•àµà´•àµ à´•à´£à´•àµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ squid à´¡àµ†à´®à´£à´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "squid à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ssh à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´• "
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "ssh à´²àµ‹à´—à´¿à´¨àµà´•à´³àµ† sysadm_r:sysadm_t à´†à´¯à´¿ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "sysadm à´¹àµ‹à´‚ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿ à´¤à´¿à´°à´žàµà´žàµ à´«à´¯à´²àµà´•à´³àµâ€ à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ staff_r users-നെ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´• "
+-#~ "(such as ~/.bashrc)"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "യൂണിവേഴàµà´¸à´²àµâ€ SSL à´Ÿà´£à´²àµâ€"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "stunnel à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "xinetd-നൠപàµà´±à´¤àµà´¤àµ à´’à´±àµà´±à´¯àµà´•àµà´•àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ stunnel à´¡àµ†à´®à´£à´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "swat à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "sxid à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "syslogd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "സിസàµà´±àµà´±à´‚ cron à´œàµ‹à´²à´¿à´•à´³àµâ€à´•àµà´•àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "tcp à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "telnet à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "tftpd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "transproxy à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "udev à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "uml à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "പരിമിതികളിലàµà´²à´¾à´¤àµ† à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ xinetd-യെ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•. à´¡àµŠà´®àµ†à´¯à´¿à´²àµâ€ "
+-#~ "à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•à´¿à´¯à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²à´¾à´¤àµà´¤à´¤àµà´‚ à´…തൠആരംഭികàµà´•àµà´¨àµà´¨à´¤àµà´®à´¾à´¯à´à´¤àµ à´¡à´¸àµ‡à´µà´¨à´™àµà´™à´³àµà´‚ഇതിലàµâ€ à´‰à´³àµâ€à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨àµ."
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "പരിമിതികളിലàµà´²à´¾à´¤àµ† à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ rc à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•. à´¡àµŠà´®àµ†à´¯à´¿à´²àµâ€ "
+-#~ "à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•à´¿à´¯à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²à´¾à´¤àµà´¤à´¤àµà´‚ rc à´¸àµà´•àµà´°à´¿à´ªàµà´±àµà´±àµ à´†à´°à´‚à´­à´¿à´•àµà´•àµà´¨àµà´¨à´¤àµà´®à´¾à´¯ à´à´¤àµ à´¡àµ†à´®à´£àµà´‚ à´‡à´¤à´¿à´²àµâ€ à´‰à´³àµâ€à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨àµ."
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "പരിതികളിലàµà´²à´¾à´¤àµ† rpm à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "à´…à´¨àµà´µà´¦à´¨àµ€à´¯à´®à´¾à´¯ à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³à´¾à´¯ hotplug, insmod à´Žà´¨àµà´¨à´¿à´µ à´ªà´°à´¿à´®à´¿à´¤à´¿à´•à´³à´¿à´²àµà´²à´¾à´¤àµ† "
+-#~ "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "updfstab à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "uptimed à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´•à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "su, sudo, à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ userhelper à´‰à´ªà´¯àµ‹à´—à´¿à´šàµà´šàµ user_r-നെ sysadm_r-à´²àµâ€ "
+-#~ "à´Žà´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•. à´…à´²àµà´²à´¾à´¯àµ†à´™àµà´•à´¿à´²àµâ€, staff_r-നൠമാതàµà´°à´®àµ‡ à´¸à´¾à´§à´¿à´•àµà´•àµ‚."
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "mount à´•à´®à´¾à´¨àµâ€à´¡àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "സാധാരണ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµâ€à´•àµà´•àµ à´¨àµ‡à´°à´¿à´Ÿàµà´Ÿàµà´³àµà´³ à´®àµŒà´¸àµ à´²à´­àµà´¯à´¤ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´• (à´Žà´•àµà´¸àµ à´¸à´°àµâ€à´µà´±à´¿à´¨àµ à´®à´¾à´¤àµà´°à´‚ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•)"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "dmesg à´•à´®à´¾à´¨àµâ€à´¡àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµ à´¸à´‚യോജക à´˜à´Ÿà´•à´™àµà´™à´³àµâ€ à´¨à´¿à´¯à´¨àµà´¤àµà´°à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´• "
+-#~ "(USERCTL=true à´Žà´¨àµà´¨à´¤àµà´‚ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ)"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "ping à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´¸à´¾à´§à´¾à´°à´£ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr ""
+-#~ "r/w noextattrfile (FAT, CDROM, FLOPPY) r/w à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† "
+-#~ "à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "usb à´¡à´¿à´µàµˆà´¸àµà´•à´³àµâ€ rw à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "ഇതൠപàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•à´¿ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµ† à´Ÿà´¿à´¸à´¿à´ªà´¿ à´¸à´°àµâ€à´µà´±àµà´•à´³àµâ€ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ "
+-#~ "à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´¨àµà´¨à´¤àµ (പോരàµâ€à´Ÿàµà´Ÿàµà´•à´³à´¿à´²àµ‡à´•àµà´•àµ à´¬àµˆà´¨àµâ€à´¡àµ à´šàµ†à´¯àµà´¤àµ à´…തേ à´¡àµŠà´®à´¿à´¯à´¿à´¨à´¿à´²àµâ€ à´¨à´¿à´¨àµà´¨àµà´‚ à´®à´±àµà´±àµà´³àµà´³à´µà´°à´¿à´²àµâ€ à´¨à´¿à´¨àµà´¨àµà´‚ "
+-#~ "കണകàµà´·à´¨àµâ€ à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´•)  à´Žà´«àµà´Ÿà´¿à´ªà´¿ à´ªà´¾à´¸àµà´¸àµ€à´µàµ à´®àµ‹à´¡àµ à´¨à´¿à´·àµà´•àµà´°à´¿à´¯à´®à´¾à´•àµà´•à´¿ à´®à´±àµà´±àµ à´¸à´®àµà´ªàµà´°à´¦à´¾à´¯à´™àµà´™à´³àµà´‚ à´®à´¾à´±àµà´±àµà´¨àµà´¨àµ."
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "ttyfiles à´¸àµà´±àµà´±à´¾à´±àµà´±àµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "uucpd à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "vmware à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "watchdog à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "winbind à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "xdm à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "xdm à´²àµ‹à´—à´¿à´¨àµà´•à´³àµâ€ sysadm_r:sysadm_t à´†à´¯à´¿ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "xen à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "ഫിസികàµà´•à´²àµâ€ à´¡à´¿à´¸àµà´•àµ à´¡à´¿à´µàµˆà´¸àµà´•à´³à´¿à´²àµ‡à´•àµà´•àµ à´±àµ€à´¡àµ/റൈറàµà´±àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿ xen à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "xfs à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "xen control à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ypbind à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "NIS à´ªà´¾à´¸àµâ€Œà´µàµ‡à´°àµâ€à´¡àµ à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ypserv à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "NIS à´Ÿàµà´°à´¾à´¨àµâ€à´¸àµà´«à´°àµâ€ à´¡àµ†à´®à´£à´¿à´¨àµà´³àµà´³ SELinux à´¸àµà´°à´•àµà´· à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "അവകാശമിലàµà´²à´¾à´¤àµà´¤ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµà´Ÿàµ† à´¹àµ‹à´‚ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿à´•à´³àµâ€ à´•àµˆà´•à´¾à´°àµà´¯à´‚ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ SELinux "
+-#~ "webadm à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "അവകാശമിലàµà´²à´¾à´¤àµà´¤ à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´•àµà´•à´³àµà´Ÿàµ† à´¹àµ‹à´‚ à´¡à´¯à´±à´•àµà´Ÿà´±à´¿à´•à´³à´¿à´²àµ‡à´•àµà´•àµ à´ªàµà´°à´µàµ‡à´¶à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ SELinux "
+-#~ "webadm à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "നിങàµà´™à´³àµâ€à´•àµà´•àµ %s '%s' à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯à´£à´®àµ†à´¨àµà´¨àµà´±à´ªàµà´ªà´¾à´£àµ‹?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "%s à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´•"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "%s à´šàµ‡à´°àµâ€à´•àµà´•àµà´•"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "%s-à´²àµâ€ à´®à´¾à´±àµà´±à´‚ à´µà´°àµà´¤àµà´¤àµà´•"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "പെരàµâ€à´®à´¿à´¸àµà´¸àµ€à´µàµ"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "à´Žà´¨àµâ€à´«àµ‹à´°àµâ€à´¸à´¿à´™àµ"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "പോളിസി à´®à´¾à´±àµà´±à´¿à´¯à´¾à´²àµâ€ à´…à´Ÿàµà´¤àµà´¤ à´¤à´µà´£ à´¬àµ‚à´Ÿàµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´«à´¯à´²àµâ€ à´¸à´¿à´¸àµà´±àµà´±à´‚ à´ªàµ‚à´°àµâ€à´£àµà´£à´®à´¾à´¯àµà´‚ à´±àµ€à´²àµ‡à´¬à´²àµâ€ "
+-#~ "ചെയàµà´¯à´£àµà´Ÿà´¤à´¾à´•àµà´¨àµà´¨àµ.  à´¸à´¿à´¸àµà´±àµà´±à´®à´¿à´¨àµà´±àµ† à´µàµà´¯à´¾à´ªàµà´¤à´¿ à´…à´¨àµà´¸à´°à´¿à´šàµà´šàµ à´±àµ€à´²àµ‡à´¬à´²à´¿à´™à´¿à´¨àµ à´¸à´®à´¯à´®àµ†à´Ÿàµà´•àµà´•àµà´¨àµà´¨àµ.നിങàµà´™à´³àµâ€à´•àµà´•àµ "
+-#~ "à´®àµà´®àµà´ªàµ‹à´Ÿàµà´Ÿàµ à´ªàµ‹à´•à´£à´®àµ†à´¨àµà´¨àµà´±à´ªàµà´ªà´¾à´£àµ‹?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux à´¨à´¿à´°àµâ€à´œàµà´œàµ€à´µà´¾à´®à´¾à´•àµà´•àµà´¨àµà´¨àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´±àµ€à´¬àµ‚à´Ÿàµà´Ÿàµ à´šàµ†à´¯àµà´¯àµ‡à´£àµà´Ÿà´¤àµà´£àµà´Ÿàµ.  à´‡à´¤àµ à´‰à´¤àµà´¤à´®à´®à´²àµà´². à´•à´¾à´°à´£à´‚, "
+-#~ "നിങàµà´™à´³àµâ€à´•àµà´•àµ à´ªà´¿à´¨àµà´¨àµ€à´Ÿàµ SELinux à´†à´µà´¶àµà´¯à´®à´¾à´£àµ à´Žà´™àµà´•à´¿à´²àµâ€, à´“à´£àµâ€ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿, à´¸à´¿à´¸àµà´±àµà´±à´‚ à´µàµ€à´£àµà´Ÿàµà´‚ "
+-#~ "റീലേബലàµâ€ à´šàµ†à´¯àµà´¯à´£àµà´Ÿà´¤àµà´£àµà´Ÿàµ. SELinux à´¨à´¿à´™àµà´™à´³àµà´Ÿàµ† à´¸à´¿à´¸àµà´±àµà´±à´®à´¿à´²àµâ€ à´Žà´¨àµà´¤àµ†à´™àµà´•à´¿à´²àµà´‚ à´¤à´•à´°à´¾à´±àµà´•à´³àµâ€ à´‰à´£àµà´Ÿà´¾à´•àµà´•àµà´¨àµà´¨àµà´£àµà´Ÿàµ‹ "
+-#~ "à´Žà´¨àµà´¨àµ à´…റിയണമെങàµà´•à´¿à´²àµâ€ à´¨à´¿à´™àµà´™à´³àµâ€à´•àµà´•àµ à´ªàµ†à´°àµâ€à´®àµà´®à´¿à´¸àµà´¸àµ€à´µàµ à´®àµ‹à´¡à´¿à´²àµ‡à´•àµà´•àµ à´®à´¾à´±àµà´±à´¾à´‚. à´‡à´¤àµ à´ªà´¿à´¶à´•àµà´•à´³àµâ€ à´®à´¾à´¤àµà´°à´‚ à´²àµ‹à´—ൠ"
+-#~ "ചെയàµà´¯àµà´¨àµà´¨àµ, à´•àµ‚ടാതെ SELinux à´ªàµ‹à´³à´¿à´¸à´¿ à´Žà´¨àµâ€à´«àµ‹à´´àµà´¸àµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨àµà´®à´¿à´²àµà´². à´ªàµ†à´°àµâ€à´®àµà´®à´¿à´¸àµà´¸àµ€à´µàµ à´®àµ‹à´¡àµà´•à´³àµâ€à´•àµà´•àµ à´±àµ€à´¬àµ‚à´Ÿàµà´Ÿàµ "
+-#~ "ചെയàµà´¯àµ‡à´£àµà´Ÿà´¤à´¿à´²àµà´².    à´¨à´¿à´™àµà´™à´³àµâ€à´•àµà´•àµ à´®àµà´®àµà´ªàµ‹à´Ÿàµà´Ÿàµ à´¤àµà´Ÿà´°à´£à´®àµ‹?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux à´¸à´œàµà´œà´®à´¾à´•àµà´•à´¿à´¯à´¾à´²àµâ€ à´…à´Ÿàµà´¤àµà´¤ à´¤à´µà´£ à´¬àµ‚à´Ÿàµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´«à´¯à´²àµâ€ à´¸à´¿à´¸àµà´±àµà´±à´‚ à´ªàµ‚à´°àµâ€à´£àµà´£à´®à´¾à´¯àµà´‚ à´±àµ€à´²àµ‡à´¬à´²àµâ€ "
+-#~ "ചെയàµà´¯à´£àµà´Ÿà´¤à´¾à´•àµà´¨àµà´¨àµ.  à´¸à´¿à´¸àµà´±àµà´±à´®à´¿à´¨àµà´±àµ† à´µàµà´¯à´¾à´ªàµà´¤à´¿ à´…à´¨àµà´¸à´°à´¿à´šàµà´šàµ à´±àµ€à´²àµ‡à´¬à´²à´¿à´™à´¿à´¨àµ à´¸à´®à´¯à´®àµ†à´Ÿàµà´•àµà´•àµà´¨àµà´¨àµ.നിങàµà´™à´³àµâ€à´•àµà´•àµ "
+-#~ "à´®àµà´®àµà´ªàµ‹à´Ÿàµà´Ÿàµ à´ªàµ‹à´•à´£à´®àµ†à´¨àµà´¨àµà´±à´ªàµà´ªà´¾à´£àµ‹?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "പകരàµâ€à´ªàµà´ªà´µà´•à´¾à´¶à´‚ (c)2006 Red Hat, Inc.\n"
+-#~ "പകരàµâ€à´ªàµà´ªà´µà´•à´¾à´¶à´‚ (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux à´²àµ‹à´—à´¿à´¨àµâ€ à´®à´¾à´ªàµà´ªà´¿à´™àµ à´šàµ‡à´°àµâ€à´•àµà´•àµà´•"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux à´¨àµ†à´±àµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ à´šàµ‡à´°àµâ€à´•àµà´•àµà´•"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux à´¤à´°à´¤àµà´¤à´¿à´²àµà´³àµà´³"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "ലവലàµâ€"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "ഫയലിനàµà´³àµà´³ à´ªàµà´°à´¤àµà´¯àµ‡à´•à´¤à´•à´³àµâ€"
+-
+-#~ msgid "File Type"
+-#~ msgstr "à´à´¤àµ à´¤à´°à´‚ à´«à´¯à´²àµâ€"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "à´Žà´²àµà´²à´¾ à´«à´¯à´²àµà´•à´³àµà´‚\n"
+-#~ "സാധാരണ à´«à´¯à´²àµâ€\n"
+-#~ "ഡയറകàµà´Ÿà´±à´¿\n"
+-#~ "à´•àµà´¯à´¾à´°à´•àµà´Ÿà´°àµâ€ à´¡à´¿à´µàµˆà´¸àµ\n"
+-#~ "à´¬àµà´³àµ‹à´•àµà´•àµ à´¡à´¿à´µàµˆà´¸àµ\n"
+-#~ "സോകàµà´•à´±àµà´±àµ\n"
+-#~ "സിംബോളികൠലിങàµà´•àµ\n"
+-#~ "നെയിമàµà´¡àµ à´ªàµˆà´ªàµà´ªàµ\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´¨àµ† à´šàµ‡à´°àµâ€à´•àµà´•àµà´•"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux à´…à´¡àµà´®à´¿à´¨à´¿à´¸àµà´Ÿàµà´°àµ‡à´·à´¨àµâ€"
+-
+-#~ msgid "Add"
+-#~ msgstr "ചേരàµâ€à´•àµà´•àµà´•"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "à´—àµà´£à´—ണങàµà´™à´³àµâ€ (_P)"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "നീകàµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´• (_D)"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "മാനേജàµà´®àµ†à´¨àµà´±àµ à´’à´¬àµà´œà´•àµà´Ÿàµ à´¤à´¿à´°à´žàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "സിസàµà´±àµà´±à´®à´¿à´²àµâ€ à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ à´Žà´¨àµâ€à´«àµ‹à´°àµâ€à´¸à´¿à´™àµ à´®àµ‹à´¡àµ"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "നിലവിലàµà´³àµà´³ à´Žà´¨àµâ€à´«àµ‹à´°àµâ€à´¸à´¿à´™àµ à´®àµ‹à´¡àµ"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "സിസàµà´±àµà´±à´¤àµà´¤à´¿à´¨àµà´±àµ† à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ à´ªàµ‹à´³à´¿à´¸à´¿ à´¤à´°à´¤àµà´¤à´¿à´²àµà´³àµà´³à´µ: "
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "à´…à´Ÿàµà´¤àµà´¤ à´¤à´µà´£ à´±àµ€à´¬àµ‚à´Ÿàµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´«à´¯à´²àµâ€ à´¸à´¿à´¸àµà´±àµà´±à´‚ à´ªàµ‚à´°àµâ€à´£àµà´£à´®à´¾à´¯àµà´‚ à´±àµ€à´²àµ‡à´¬à´²àµâ€ à´šàµ†à´¯àµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€ "
+-#~ "തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•.  à´¸à´¿à´¸àµà´±àµà´±à´®à´¿à´¨àµà´±àµ† à´µàµà´¯à´¾à´ªàµà´¤à´¿ à´…à´¨àµà´¸à´°à´¿à´šàµà´šàµ à´±àµ€à´²àµ‡à´¬à´²à´¿à´™à´¿à´¨àµ à´¸à´®à´¯à´®àµ†à´Ÿàµà´•àµà´•àµà´¨àµà´¨àµ.നിങàµà´™à´³àµâ€ à´ªàµ‹à´³à´¿à´¸à´¿ "
+-#~ "മാറàµà´±àµà´•à´¯àµ‹, à´¨à´¿à´°àµâ€à´œàµà´œàµ€à´µà´‚ à´Žà´¨àµà´¨à´¤à´¿à´²àµâ€ à´¨à´¿à´¨àµà´¨àµà´‚ à´Žà´¨àµâ€à´«àµ‹à´´àµà´¸à´¿à´™àµ à´†à´•àµà´•à´¯àµ‹ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´±àµ€à´²àµ‡à´¬à´²àµâ€ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ."
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "à´…à´Ÿàµà´¤àµà´¤ à´¤à´µà´£ à´±àµ€à´¬àµ‚à´Ÿàµà´Ÿàµ à´šàµ†à´¯àµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´²àµ‡à´¬à´²àµâ€ à´®à´¾à´±àµà´±àµà´•."
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "ബൂളിയനàµâ€ à´•àµà´°à´®à´¿à´•à´°à´£à´¤àµà´¤à´¿à´¨àµ† à´¸à´¿à´¸àµà´±àµà´±à´®à´¿à´¨àµà´±àµ† à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³à´¤à´¾à´•àµà´•à´¿ à´®à´¾à´±àµà´±àµà´•"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "യഥേഷàµà´Ÿà´‚ à´¤à´¯àµà´¯à´¾à´±à´¾à´•àµà´•à´¿à´¯à´µà´¯àµà´‚ à´®à´±àµà´±àµ†à´²àµà´²à´¾ à´¬àµ‚ളിയനàµà´•à´³àµà´‚ à´¤à´®àµà´®à´¿à´²àµâ€ à´®à´¾à´±àµà´±àµà´•"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "à´«à´¿à´²àµâ€â€Œà´±àµà´±à´°àµâ€"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "ഫയലàµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ à´šàµ‡à´°àµâ€à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "ഫയലàµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±à´¿à´²àµâ€ à´®à´¾à´±àµà´±à´‚ à´µà´°àµà´¤àµà´¤àµà´•"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "ഫയലàµâ€ à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´•"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "യഥേഷàµà´Ÿà´‚ à´¤à´¯àµà´¯à´¾à´±à´¾à´•àµà´•à´¿à´¯ à´«à´¯à´²à´¿à´¨àµà´±àµ† à´•àµ‹à´£àµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµà´‚ à´®à´±àµà´±àµ†à´²àµà´²à´¾à´‚ à´¤à´®àµà´®à´¿à´²àµâ€ à´®à´¾à´±àµà´±àµà´•"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux à´¯àµ‚സരàµâ€ à´®à´¾à´ªàµà´ªà´¿à´™àµ à´šàµ‡à´°àµâ€à´•àµà´•àµà´•"
+-
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux à´¯àµ‚സരàµâ€ à´®à´¾à´ªàµà´ªà´¿à´™à´¿à´²àµâ€ à´®à´¾à´±àµà´±à´‚ à´µà´°àµà´¤àµà´¤àµà´•"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux à´¯àµ‚സരàµâ€ à´®à´¾à´ªàµà´ªà´¿à´™àµ à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´•"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "തരàµâ€à´œàµà´œà´® à´šàµ‡à´°àµâ€à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "തരàµâ€à´œàµà´œà´®à´¯à´¿à´²àµâ€ à´®à´¾à´±àµà´±à´‚ à´µà´°àµà´¤àµà´¤àµà´•"
+-
+-#~ msgid "Delete Translation"
+-#~ msgstr "തരàµâ€à´œàµà´œà´® à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´•"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µà´¿à´²àµâ€ à´®à´¾à´±àµà´±à´‚ à´µà´°àµà´¤àµà´¤àµà´•"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ à´šàµ‡à´°àµâ€à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿà´¿à´²àµâ€ à´®à´¾à´±àµà´±à´‚ à´µà´°àµà´¤àµà´¤àµà´•"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "നെറàµà´±àµâ€Œà´µà´°àµâ€à´•àµà´•àµ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´•"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "യഥേഷàµà´Ÿà´‚ à´¤à´¯àµà´¯à´¾à´±à´¾à´•àµà´•à´¿à´¯à´µà´¯àµà´‚ à´®à´±àµà´±àµ†à´²àµà´²à´¾ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµà´‚ à´¤à´®àµà´®à´¿à´²àµâ€ à´®à´¾à´±àµà´±àµà´•"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "à´ªàµà´¤à´¿à´¯ à´ªàµ‹à´³à´¿à´¸à´¿ à´˜à´Ÿà´•à´‚ à´‰à´£àµà´Ÿà´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "പോളിസി à´˜à´Ÿà´•à´‚ à´²à´­àµà´¯à´®à´¾à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "ലഭàµà´¯à´®à´¾à´•àµà´¨àµà´¨ à´ªàµ‹à´³à´¿à´¸à´¿ à´˜à´Ÿà´•à´‚ à´¨àµ€à´•àµà´•à´‚ à´šàµ†à´¯àµà´¯àµà´•"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "കൂടàµà´¤à´²àµà´³àµà´³ à´“à´¡à´¿à´±àµà´±àµ à´¨à´¿à´¯à´®à´™àµà´™à´³àµâ€ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•àµà´•, à´…à´µ à´¸à´¾à´§à´¾à´°à´£ à´²àµ‹à´—ൠഫയലàµà´•à´³à´¿à´²àµâ€ à´±à´¿à´ªàµà´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ "
+-#~ "ചെയàµà´¯à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨à´¿à´²àµà´²."
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "സെനàµâ€à´¸à´¿à´±àµà´±à´¿à´µà´¿à´±àµà´±à´¿ à´¨à´¿à´²à´µà´¾à´°à´‚"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "'%s' à´Žà´¨àµà´¨ SELinux à´‰à´ªà´¯àµ‹à´•àµà´¤à´¾à´µàµ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "മൂലàµà´²àµà´¯à´‚ à´†à´µà´¶àµà´¯à´®àµà´£àµà´Ÿàµ"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ† à´à´¤àµ†à´™àµà´•à´¿à´²àµà´‚ tcp à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€ > 1024-ലേകàµà´•àµ à´¬àµˆà´¨àµâ€à´¡àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´•"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr "à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ† à´à´¤àµ†à´™àµà´•à´¿à´²àµà´‚ tcp à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿà´¿à´²àµ‡à´•àµà´•àµ à´¬àµˆà´¨àµâ€à´¡àµ à´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµâ€ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´¨àµà´¨àµ"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "à´ªàµà´°à´¯àµ‹à´—à´‚/ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµ à´¬àµˆà´¨àµâ€à´¡àµ à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´Ÿà´¿à´¸à´¿à´ªà´¿ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµ‹ à´…വയàµà´Ÿàµ† à´ªà´°à´¿à´§à´¿à´¯à´¿à´²àµâ€à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨ "
+-#~ "മറàµà´±àµ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµ‹ à´•àµ‹à´®à´¾ à´‰à´ªà´¯àµ‹à´—à´¿à´šàµà´šàµ à´µàµ‡à´°àµâ€à´¤à´¿à´°à´¿à´šàµà´šàµ à´¨à´²àµâ€à´•àµà´•. à´‰à´¦à´¾: 612, 650-660"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "SELinux à´ªàµ‹à´³à´¿à´¸à´¿ à´‰à´¤àµà´ªà´¾à´¦à´¨ à´¡àµà´°àµ‚യിഡàµ"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "മറàµà´±àµŠà´¨àµà´¨à´¿à´¨àµà´‚ à´•à´°àµà´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²à´¾à´¤àµà´¤ à´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµà´•à´³àµâ€  (>1024)"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr ""
+-#~ "0 à´‰à´³àµà´³ bindresvport à´†à´£àµ à´¨à´¿à´™àµà´™à´³àµà´Ÿàµ† à´ªàµà´°à´¯àµ‹à´—à´‚ à´†à´µà´¶àµà´¯à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨à´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´ˆ à´šàµ†à´•àµà´•àµà´¬à´Ÿàµà´Ÿà´£àµâ€ "
+-#~ "ഉപയോഗികàµà´•àµà´•."
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "à´Žà´¨àµâ€à´«àµ‹à´°àµâ€à´¸à´¿à´™àµ\n"
+-#~ "പെരàµâ€à´®à´¿à´¸àµà´¸àµ€à´µàµ\n"
+-#~ "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ à´°à´¹à´¿à´¤à´‚\n"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/mr.po b/policycoreutils/po/mr.po
+index 4065e2c..cfbcc4e 100644
+--- a/policycoreutils/po/mr.po
++++ b/policycoreutils/po/mr.po
+@@ -1,25 +1,27 @@
+-# translation of policycoreutils.HEAD.mr.po to marathi
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+ #
+-# Rahul Bhalerao <rbhalera@redhat.com>, 2006.
++# Translators:
+ # Rahul Bhalerao <b.rahul.pm@gmail.com>, 2006.
++# Rahul Bhalerao <rbhalera@redhat.com>, 2006.
+ # sandeep shedmake <sandeep.shedmake@gmail.com>, 2007.
+-# Sandeep Shedmake <sandeep.shedmake@gmail.com>, 2008.
++# Sandeep Shedmake <sandeep.shedmake@gmail.com>, 2008, 2009.
++# Sandeep Shedmake <sshedmak@redhat.com>, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD.mr\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-03-24 15:54+0530\n"
+-"Last-Translator: Sandeep Shedmake <sandeep.shedmake@gmail.com>\n"
+-"Language-Team: marathi\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Marathi (http://www.transifex.net/projects/p/fedora/language/"
++"mr/)\n"
++"Language: mr\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -28,8 +30,8 @@ msgid ""
+ "         <args ...> are the arguments to that script."
+ msgstr ""
+ "वापर: run_init <script> <args ...>\n"
+-"  à¤œà¥‡à¤¥à¥‡: <script> à¤¹à¥‡ à¤šà¤¾à¤²à¤µà¤¾à¤¯à¤šà¥à¤¯à¤¾ init à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿà¤šà¥‡ à¤¨à¤¾à¤µ à¤†à¤¹à¥‡,\n"
+-"         <args ...> à¤¹à¥‡ à¤¤à¥à¤¯à¤¾ à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿà¤šà¥‡ à¤†à¤°à¥à¤—à¥à¤¯à¥‚मेंटà¥à¤¸ à¤†à¤¹à¥‡à¤¤."
++"  à¤œà¥‡à¤¥à¥‡: <script> à¤¹à¥‡ à¤šà¤¾à¤²à¤µà¤¾à¤¯à¤šà¥à¤¯à¤¾ init à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿà¤šà¥‡ à¤¨à¤¾à¤µ à¤†à¤¹à¥‡,\n"
++"         <args ...> à¤¹à¥‡ à¤¤à¥à¤¯à¤¾ à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿà¤šà¥‡ à¤†à¤°à¥à¤—à¥à¤¯à¥‚मेंटà¥à¤¸ à¤†à¤¹à¥‡à¤¤."
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+ #, c-format
+@@ -114,9 +116,8 @@ msgid "Could not establish semanage connection"
+ msgstr "semanage à¤œà¥‹à¤¡à¤£à¥€ à¤ªà¥à¤°à¤¸à¥à¤¤à¤¾à¤ªà¤¿à¤¤ à¤•à¤°à¥‚ à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "MLS à¤ªà¤°à¤¿à¤¸à¥€à¤®à¤¾ %s à¤¸à¤¾à¤ à¥€ à¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥€ à¤¨à¤¾à¤¹à¥€"
++msgstr "MLS à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤¸à¥à¤¤à¤°à¤šà¥€ à¤šà¤¾à¤šà¤£à¥€ à¤•à¤°à¤£à¥‡ à¤…शकà¥à¤¯"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -124,38 +125,35 @@ msgstr "अजून à¤²à¤¾à¤—ू à¤•à¥‡à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage à¤Ÿà¥à¤°à¤¾à¤‚जॅकशनची à¤ªà¥à¤°à¤—ती à¤†à¤§à¤¿à¤ªà¤¾à¤¸à¥‚नच à¤†à¤¹à¥‡"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "semanage à¤µà¥à¤¯à¤µà¤¹à¤¾à¤° à¤¸à¥à¤°à¥‚ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¤¾ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage à¤µà¥à¤¯à¤µà¤¹à¤¾à¤° à¤¸à¥à¤°à¥‚ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¤¾ à¤¨à¤¾à¤¹à¥€"
++msgstr "semanage à¤µà¥à¤¯à¤µà¤¹à¤¾à¤° à¤ªà¤¾à¤ à¤µà¥‚ à¤¶à¤•à¤²à¤¾ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage à¤Ÿà¥à¤°à¤¾à¤‚जॅकशनची à¤ªà¥à¤°à¤—ती à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¥à¤¯à¤¾à¤‚ची à¤¯à¤¾à¤¦à¥€ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥€ à¤¨à¤¾à¤¹à¥€"
++msgstr "SELinux à¤µà¤¿à¤­à¤¾à¤—ांची à¤¸à¥‚ची à¤¦à¤¾à¤–वणे à¤…शकà¥à¤¯"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "घटकाचे à¤¨à¤¾à¤µ"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "आवृतà¥à¤¤à¥€"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr "अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤"
++msgstr "बंद à¤•à¤°à¤£à¥‡"
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -163,9 +161,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "भà¥à¤®à¤¿à¤•à¤¾ %s à¤œà¤®à¤¾ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥€ à¤¨à¤¾à¤¹à¥€ %s à¤•à¤°à¤¤à¤¾"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -177,24 +175,22 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "परवानगीक"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "परवानगीक"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "परवानगीय à¤•à¥à¤·à¥‡à¤¤à¥à¤° %s à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤•à¤°à¥‚ à¤¶à¤•à¤²à¥‡ à¤¨à¤¾à¤¹à¥€ (विभाग à¤ªà¥à¤°à¤¤à¤¿à¤·à¥à¤ à¤¾à¤ªà¤¨ à¤…पयशी)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "परवानगीय à¤•à¥à¤·à¥‡à¤¤à¥à¤° %s à¤•à¤¾à¤¢à¥‚न à¤Ÿà¤¾à¤•à¥‚ à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€ (काढून à¤Ÿà¤¾à¤•à¤£à¥‡ à¤…पयशी)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -214,9 +210,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "%s à¤¸à¤¾à¤ à¥€ à¤²à¥‰à¤—ीन à¤®à¥…पिंग à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤ à¤•à¥‡à¤²à¥€ à¤†à¤¹à¥‡ à¤•à¤¾ à¤¹à¥‡ à¤¤à¤ªà¤¾à¤¸à¥‚ à¤¶à¤•à¤²à¥‹ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤…सà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ à¤¨à¤¾à¤¹à¥€"
++msgstr "Linux à¤¸à¤®à¥à¤¹ %s à¤…सà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -283,15 +279,20 @@ msgid "Could not list login mappings"
+ msgstr "लॉगीन à¤®à¥…पिंगà¥à¤¸à¤šà¥€ à¤¯à¤¾à¤¦à¥€ à¤•à¤°à¥‚ à¤¶à¤•à¤²à¥‹ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "दाखलन à¤¨à¤¾à¤µ"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS à¤•à¥à¤·à¥‡à¤¤à¥à¤°"
+@@ -309,9 +310,9 @@ msgid "Could not query user for %s"
+ msgstr "%s à¤¸à¤¾à¤ à¥€ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¥à¤¯à¤¾à¤¸ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤•à¤°à¥‚ à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%s à¤¸à¤¾à¤ à¥€ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤œà¥‹à¤¡à¤¤à¤¾ à¤†à¤²à¤¾ à¤¨à¤¾à¤¹à¥€"
++msgstr "%s à¤¸à¤¾à¤ à¥€ à¤•à¤¿à¤®à¤¾à¤¨ à¤à¤• à¤­à¥‚मिका à¤œà¥‹à¤¡à¤²à¥€ à¤ªà¤¾à¤¹à¤¿à¤œà¥‡"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -401,6 +402,7 @@ msgid "MCS Range"
+ msgstr "MCS à¤•à¥à¤·à¥‡à¤¤à¥à¤°"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux à¤­à¥‚मिका"
+@@ -413,9 +415,8 @@ msgid "Port is required"
+ msgstr "पोरà¥à¤Ÿ à¤†à¤µà¤¶à¥à¤¯à¤• à¤†à¤¹à¥‡"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "अवैध à¤ªà¥‚रà¥à¤µà¤ªà¤¦ %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -532,18 +533,17 @@ msgstr "SELinux à¤ªà¥‹à¤°à¥à¤Ÿ à¤ªà¥à¤°à¤•à¤¾à¤°"
+ msgid "Proto"
+ msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "पोरà¥à¤Ÿ à¤•à¥à¤°à¤®à¤¾à¤‚क"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "पोरà¥à¤Ÿ à¤†à¤µà¤¶à¥à¤¯à¤• à¤†à¤¹à¥‡"
++msgstr "नोड à¤ªà¤¤à¥à¤¤à¤¾ à¤†à¤µà¤¶à¥à¤¯à¤• à¤†à¤¹à¥‡"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "अपरिचीत à¤•à¤¿à¤‚वा à¤¨ à¤†à¤¢à¤³à¤²à¥‡à¤²à¥‡ à¤¶à¤¿à¤·à¥à¤Ÿà¤¾à¤šà¤¾à¤°"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -560,90 +560,88 @@ msgstr "%s à¤¸à¤¾à¤ à¥€ à¤•à¤³ à¤¬à¤¨à¤µà¥‚ à¤¶à¤•à¤²à¥‹ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "%s/%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤ à¤†à¤¹à¥‡ à¤•à¤¾à¤¯ à¤¹à¥‡ à¤¤à¤ªà¤¾à¤¸à¤¤à¤¾ à¤†à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
++msgstr "पतà¥à¤¤à¤¾ %s à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤ à¤†à¤¹à¥‡ à¤¹à¥‡ à¤¤à¤ªà¤¾à¤¸à¤¤à¤¾ à¤†à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%s à¤¸à¤¾à¤ à¥€ à¤•à¤³ à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤•à¤°à¥‚ à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€"
++msgstr "%s à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤¤à¥à¤¤à¤¾ à¤¬à¤¨à¤µà¥‚ à¤¶à¤•à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+ #, python-format
+ msgid "Could not create context for %s"
+-msgstr "%s à¤¸à¤¾à¤ à¥€ à¤¸à¤‚दरà¥à¤­ à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¤¾ à¤¨à¤¾à¤¹à¥€"
++msgstr "%s à¤¸à¤¾à¤ à¥€ à¤¸à¤‚दरà¥à¤­ à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤•à¤°à¥‚ à¤¶à¤•à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%s à¤¸à¤¾à¤ à¥€ à¤¨à¤¾à¤µ à¤ à¥‡à¤µà¤¤à¤¾ à¤†à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
++msgstr "%s à¤•à¤°à¥€à¤¤à¤¾ à¤®à¤¾à¤¸à¥à¤•à¥ à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s à¤¸à¤¾à¤ à¥€ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­à¤¾à¤¤ à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ à¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¤¾ à¤¨à¤¾à¤¹à¥€"
++msgstr "%s à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤¤à¥à¤¤à¤¾ à¤¸à¤‚दरà¥à¤­à¤¾à¤¤ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤•à¤°à¥‚ à¤¶à¤•à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s à¤¸à¤¾à¤ à¥€ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­à¤¾à¤¤ à¤­à¥à¤®à¤¿à¤•à¤¾ à¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥€ à¤¨à¤¾à¤¹à¥€"
++msgstr "%s à¤¸à¤¾à¤ à¥€ à¤ªà¤¤à¥à¤¤à¤¾ à¤¸à¤‚दरà¥à¤­à¤¾à¤¤ à¤­à¥à¤®à¤¿à¤•à¤¾ à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤•à¤°à¥‚ à¤¶à¤•à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s à¤šà¥à¤¯à¤¾ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­à¤¾à¤¤ à¤ªà¥à¤°à¤•à¤¾à¤° à¤¨à¤¿à¤°à¥à¤§à¤†à¤°à¤¿à¤¤ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¤¾ à¤¨à¤¾à¤¹à¥€"
++msgstr "%s à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤¤à¥à¤¤à¤¾ à¤¸à¤‚दरà¥à¤­à¤¾à¤¤à¥€à¤² à¤ªà¥à¤°à¤•à¤¾à¤° à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤•à¤°à¥‚ à¤¶à¤•à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%s à¤¸à¤¾à¤ à¥€ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­à¤¾à¤¤ mls à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¥‡ à¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥‡ à¤¨à¤¾à¤¹à¥€à¤¤"
++msgstr "%s à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤¤à¥à¤¤à¤¾ à¤¸à¤‚दरà¥à¤­ à¤…ंतरà¥à¤—त mls à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤•à¤°à¥‚ à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s à¤¸à¤¾à¤ à¥€ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¤¾ à¤¨à¤¾à¤¹à¥€"
++msgstr "%s à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤¤à¥à¤¤à¤¾ à¤¸à¤‚दरà¥à¤­ à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤•à¤°à¥‚ à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "%s/%s à¤ªà¥‹à¤°à¥à¤Ÿ à¤œà¥‹à¤¡à¥‚ à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€"
++msgstr "पतà¥à¤¤à¤¾ %s à¤œà¥‹à¤¡à¥‚ à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "पोरà¥à¤Ÿ %s/%s à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤ à¤¨à¤¾à¤¹à¥€"
++msgstr "पतà¥à¤¤à¤¾ %s à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤•à¥‡à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "पोरà¥à¤Ÿ %s/%s à¤²à¤¾ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
++msgstr "पतà¥à¤¤à¤¾ %s à¤²à¤¾ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤µà¤¿à¤šà¤¾à¤°à¥‚ à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "पोरà¥à¤Ÿ %s/%s à¤®à¤§à¥à¤¯à¥‡ à¤¬à¤¦à¤² à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥‡ à¤¨à¤¾à¤¹à¥€à¤¤"
++msgstr "पतà¥à¤¤à¤¾ %s à¤¸à¤‚पादीत à¤•à¤°à¥‚ à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "पोरà¥à¤Ÿ %s/%s à¤§à¥‹à¤°à¤£à¤¾à¤¤ à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤ à¤†à¤¹à¥‡, à¤¨à¤·à¥à¤Ÿ à¤•à¤°à¤¤à¤¾ à¤¯à¥‡à¤£à¤¾à¤° à¤¨à¤¾à¤¹à¥€"
++msgstr "पतà¥à¤¤à¤¾ %s à¤¨à¤¿à¤¯à¤®à¤¾à¤µà¤²à¥€à¤¤ à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤•à¥‡à¤²à¥‡ à¤†à¤¹à¥‡, à¤µà¤—ळले à¤œà¤¾à¤Š à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "%s à¤¨à¤·à¥à¤Ÿ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¤¾ à¤¨à¤¾à¤¹à¥€"
++msgstr "पतà¥à¤¤à¤¾ %s à¤¨à¤·à¥à¤Ÿ à¤•à¤°à¥‚ à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%s à¤¸à¤¾à¤ à¥€ à¤²à¥‰à¤—ीन à¤®à¥…पिंग à¤¨à¤·à¥à¤Ÿ à¤•à¤°à¥‚ à¤¶à¤•à¤²à¥‹ à¤¨à¤¾à¤¹à¥€"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "पोरà¥à¤Ÿà¤¾à¤‚ची à¤¯à¤¾à¤¦à¥€ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥€ à¤¨à¤¾à¤¹à¥€"
++msgstr "addrs à¤¯à¤¾à¤¦à¥€à¤¤ à¤¦à¤°à¥à¤¶à¤µà¥‚ à¤¶à¤•à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -717,9 +715,8 @@ msgid "Could not delete interface %s"
+ msgstr "इंटरफेस %s à¤¨à¤·à¥à¤Ÿ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¤¾ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "इंटरफेस %s à¤¨à¤·à¥à¤Ÿ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¤¾ à¤¨à¤¾à¤¹à¥€"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -734,9 +731,9 @@ msgid "Context"
+ msgstr "संदरà¥à¤­"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s à¤¸à¤¾à¤ à¥€ à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤†à¤§à¤¿à¤š à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -744,9 +741,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤…सà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ à¤¨à¤¾à¤¹à¥€"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -866,11 +863,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -889,14 +885,14 @@ msgid "Could not query file context %s"
+ msgstr "फाइल à¤¸à¤‚दरà¥à¤­ %s à¤²à¤¾ à¤ªà¥à¤°à¤¶à¥à¤¨ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "तà¥à¤®à¥à¤¹à¥€ à¤®à¥à¤²à¥à¤¯ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¥‡à¤²à¥‡à¤š à¤ªà¤¾à¤¹à¤¿à¤œà¥‡"
++msgstr "तà¥à¤®à¥à¤¹à¥€ à¤–ालिल à¤®à¥à¤²à¥à¤¯ à¤ªà¥ˆà¤•à¥€ à¤à¤• à¤®à¥à¤²à¥à¤¯ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¥‡à¤²à¥‡ à¤ªà¤¾à¤¹à¤¿à¤œà¥‡: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "boolean %s à¤¨à¤·à¥à¤Ÿ à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
++msgstr "बूलीयन %s à¤šà¥‡ à¤¸à¤•à¥à¤°à¥€à¤¯ à¤®à¥à¤²à¥à¤¯ à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ à¤•à¤°à¥‚ à¤¶à¤•à¤²à¥‡ à¤¨à¤¾à¤¹à¥€"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -906,7 +902,7 @@ msgstr "boolean %s à¤®à¤§à¥à¤¯à¥‡ à¤¬à¤¦à¤² à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥‡ à¤¨à¤¾à¤¹à¥€
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "अयोगà¥à¤¯ à¤ªà¥à¤°à¤•à¤¾à¤° %s: à¤°à¥‡à¤•à¥‰à¤°à¥à¤¡ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -939,15 +935,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux à¤¬à¥‚लीयन"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "सà¥à¤¤à¤¿à¤¥à¥€"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "वरà¥à¤£à¤¨"
+@@ -979,7 +975,7 @@ msgstr "सà¥à¤®à¥ƒà¤¤à¥€à¤¬à¤¾à¤¹à¥‡à¤°!\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr "चूक!  à¤¶à¥‡à¤² à¤µà¥ˆà¤§ à¤¨à¤¾à¤¹à¥€.\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¥€!  à¤¶à¥‡à¤² à¤µà¥ˆà¤§ à¤¨à¤¾à¤¹à¥€.\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+@@ -989,27 +985,27 @@ msgstr "परà¥à¤¯à¤¾à¤µà¤°à¤£ à¤¸à¤¾à¤« à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸ à¤…समरà¥
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+ msgid "Error changing uid, aborting.\n"
+-msgstr "uid à¤¬à¤¦à¤²à¤£à¥à¤¯à¤¾à¤¤ à¤šà¥‚क, à¤¸à¥‹à¤¡à¤¤ à¤†à¤¹à¥‡.\n"
++msgstr "uid à¤¬à¤¦à¤²à¤£à¥à¤¯à¤¾à¤¤ à¤¤à¥à¤°à¥à¤Ÿà¥€, à¤¸à¥‹à¤¡à¤¤ à¤†à¤¹à¥‡.\n"
+ #: ../newrole/newrole.c:612
+ #, c-format
+ msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr "KEEPCAPS à¤ªà¥à¤¨à¤ƒà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¤ à¤šà¥‚क, à¤¸à¥‹à¤¡à¤¤ à¤†à¤¹à¥‡\n"
++msgstr "KEEPCAPS à¤ªà¥à¤¨à¤ƒà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¤ à¤¤à¥à¤°à¥à¤Ÿà¥€, à¤¸à¥‹à¤¡à¤¤ à¤†à¤¹à¥‡\n"
+ #: ../newrole/newrole.c:635
+ #, c-format
+ msgid "Error connecting to audit system.\n"
+-msgstr "ऑडिट à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤¸ à¤œà¥‹à¤¡à¤£à¥à¤¯à¤¾à¤¤ à¤šà¥‚क\n"
++msgstr "ऑडिट à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤¸ à¤œà¥‹à¤¡à¤£à¥à¤¯à¤¾à¤¤ à¤¤à¥à¤°à¥à¤Ÿà¥€\n"
+ #: ../newrole/newrole.c:641
+ #, c-format
+ msgid "Error allocating memory.\n"
+-msgstr "सà¥à¤®à¥ƒà¤¤à¥€ à¤µà¤¾à¤Ÿà¤ªà¤¾à¤¤ à¤šà¥‚क.\n"
++msgstr "सà¥à¤®à¥ƒà¤¤à¥€ à¤µà¤¾à¤Ÿà¤ªà¤¾à¤¤ à¤¤à¥à¤°à¥à¤Ÿà¥€.\n"
+ #: ../newrole/newrole.c:648
+ #, c-format
+ msgid "Error sending audit message.\n"
+-msgstr "ऑडिट à¤¸à¤‚देश à¤ªà¤¾à¤ à¤µà¤£à¥à¤¯à¤¾à¤¤ à¤šà¥‚क.\n"
++msgstr "ऑडिट à¤¸à¤‚देश à¤ªà¤¾à¤ à¤µà¤£à¥à¤¯à¤¾à¤¤ à¤¤à¥à¤°à¥à¤Ÿà¥€.\n"
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+@@ -1019,7 +1015,7 @@ msgstr "बलपà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤°à¥€à¤¤ à¤ à¤°à¤µà¤¤à¤¾ à¤†à¤²à¥€ à¤¨
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr "चूक!  %s à¤‰à¤˜à¤¡à¥‚ à¤¶à¤•à¤²à¥‹ à¤¨à¤¾à¤¹à¥€.\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¥€!  %s à¤‰à¤˜à¤¡à¥‚ à¤¶à¤•à¤²à¥‹ à¤¨à¤¾à¤¹à¥€.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+@@ -1049,12 +1045,12 @@ msgstr "सà¥à¤šà¤¨à¤¾! %s à¤¸à¤¾à¤ à¥€ à¤¸à¤‚दरà¥à¤­ à¤ªà¥à¤¨à¤ƒà¤°à¤•
+ #: ../newrole/newrole.c:835
+ #, c-format
+ msgid "Error: multiple roles specified\n"
+-msgstr "चूक: à¤¬à¤¹à¥‚ à¤­à¥‚मिका à¤¦à¤°à¥à¤¶à¤µà¤²à¥à¤¯à¤¾\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¥€: à¤¬à¤¹à¥‚ à¤­à¥‚मिका à¤¦à¤°à¥à¤¶à¤µà¤²à¥à¤¯à¤¾\n"
+ #: ../newrole/newrole.c:843
+ #, c-format
+ msgid "Error: multiple types specified\n"
+-msgstr "चूक: à¤¬à¤¹à¥‚ à¤ªà¥à¤°à¤•à¤¾à¤° à¤¦à¤°à¥à¤¶à¤µà¤²à¥‡\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¥€: à¤¬à¤¹à¥‚ à¤ªà¥à¤°à¤•à¤¾à¤° à¤¦à¤°à¥à¤¶à¤µà¤²à¥‡\n"
+ #: ../newrole/newrole.c:850
+ #, c-format
+@@ -1064,7 +1060,7 @@ msgstr "कà¥à¤·à¤®à¤¾, -l SELinux MLS à¤†à¤§à¤¾à¤°à¤¾à¤¸à¤¹ à¤µà¤¾à¤ªà¤°à¤¤à¤¾
+ #: ../newrole/newrole.c:855
+ #, c-format
+ msgid "Error: multiple levels specified\n"
+-msgstr "चूक: à¤¬à¤¹à¥‚ à¤¸à¥à¤¤à¤° à¤¦à¤°à¥à¤¶à¤µà¤²à¥‡\n"
++msgstr "तà¥à¤°à¥à¤Ÿà¥€: à¤¬à¤¹à¥‚ à¤¸à¥à¤¤à¤° à¤¦à¤°à¥à¤¶à¤µà¤²à¥‡\n"
+ #: ../newrole/newrole.c:865
+ #, c-format
+@@ -1174,7 +1170,7 @@ msgstr "वरà¥à¤£à¤• à¤¬à¤‚द à¤•à¤°à¤¤à¤¾ à¤†à¤²à¥‡ à¤¨à¤¾à¤¹à¥€à¤¤.\n"
+ #: ../newrole/newrole.c:1251
+ #, c-format
+ msgid "Error allocating shell's argv0.\n"
+-msgstr "शेलचा argv0 à¤µà¤¾à¤Ÿà¤£à¥à¤¯à¤¾à¤¤ à¤šà¥‚क.\n"
++msgstr "शेलचा argv0 à¤µà¤¾à¤Ÿà¤£à¥à¤¯à¤¾à¤¤ à¤¤à¥à¤°à¥à¤Ÿà¥€.\n"
+ #: ../newrole/newrole.c:1287
+ #, c-format
+@@ -1284,1732 +1280,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+-msgstr "परà¥à¤¯à¤¾à¤¯ à¤šà¥‚क %s "
++msgstr "परà¥à¤¯à¤¾à¤¯ à¤¤à¥à¤°à¥à¤Ÿà¥€ %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "%s à¤‰à¤˜à¤¡à¤£à¥à¤¯à¤¾à¤¸ à¤…समरà¥à¤¥: à¤…नà¥à¤µà¤¾à¤¦ non-MLS à¤®à¤¶à¥€à¤¨à¥€à¤‚वर à¤¸à¤®à¤°à¥à¤¥à¤¿à¤¤ à¤¨à¤¾à¤¹à¥€à¤¤: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "सà¥à¤¥à¤°"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "अनà¥à¤µà¤¾à¤¦"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "अनà¥à¤µà¤¾à¤¦à¤¾à¤‚त à¤®à¥‹à¤•à¤³à¥à¤¯à¤¾ à¤œà¤¾à¤—ा '%s' à¤…सू à¤¶à¤•à¤¤ à¤¨à¤¾à¤¹à¥€à¤¤ "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "अवैध à¤¸à¥à¤¤à¤° '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s à¤…नà¥à¤µà¤¾à¤¦à¤¾à¤‚त à¤†à¤§à¤¿à¤š à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s à¤…नà¥à¤µà¤¾à¤¦à¤¾à¤‚त à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤ à¤¨à¤¾à¤¹à¥€"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s à¤¸à¤¾à¤ à¥€ à¤²à¥‰à¤—ीन à¤®à¥…पिंग à¤†à¤§à¤¿à¤š à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤ à¤•à¥‡à¤²à¥‡à¤²à¥€ à¤†à¤¹à¥‡"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux à¤®à¥…पिंग à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤¸à¤®à¤¾à¤µà¤¿à¤·à¥à¤Ÿà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux à¤‰à¤ªà¤¯à¥‹à¤•à¥à¤¤à¤¾ %s à¤†à¤§à¤¿à¤š à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤ à¤†à¤¹à¥‡"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "पोरà¥à¤Ÿ à¤†à¤µà¤¶à¥à¤¯à¤• à¤†à¤¹à¥‡"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "पोरà¥à¤Ÿ %s/%s à¤†à¤§à¤¿à¤š à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "इंटरफेस %s à¤†à¤§à¤¿à¤š à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "कà¥à¤·à¤®à¤¤à¤¾ à¤†à¤°à¤‚भणà¥à¤¯à¤¾à¤¤ à¤šà¥‚क, à¤¸à¥‹à¤¡à¤¤ à¤†à¤¹à¥‡.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "कà¥à¤·à¤®à¤¤à¤¾ à¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¤ à¤šà¥‚क, à¤¸à¥‹à¤¡à¤¤ à¤†à¤¹à¥‡\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS à¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¤ à¤šà¥‚क, à¤¸à¥‹à¤¡à¤¤ à¤†à¤¹à¥‡\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "कà¥à¤·à¤®à¤¤à¤¾ à¤¸à¥‹à¤¡à¤£à¥à¤¯à¤¾à¤¤ à¤šà¥‚क, à¤¸à¥‹à¤¡à¤¤ à¤†à¤¹à¥‡\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "SETUID à¤•à¥à¤·à¤®à¤¤à¤¾ à¤¸à¥‹à¤¡à¤£à¥à¤¯à¤¾à¤¤ à¤šà¥‚क, à¤¸à¥‹à¤¡à¤¤ à¤†à¤¹à¥‡\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "caps à¤®à¥à¤•à¥à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¤ à¤šà¥‚क\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "अनà¥à¤µà¤¾à¤¦ non-MLS à¤®à¤¶à¥€à¤¨à¥€à¤‚वर à¤¸à¤®à¤°à¥à¤¥à¤¿à¤¤ à¤¨à¤¾à¤¹à¥€à¤¤"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "बूलीयन"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "सरà¥à¤µ"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "इचà¥à¤›à¤¿à¤•"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "फाइल à¤²à¥‡à¤¬à¤²à¥€à¤‚ग"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "फाइल\n"
+-#~ "संरचना"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "फाइल à¤ªà¥à¤°à¤•à¤¾à¤°"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "फाइल\n"
+-#~ "पà¥à¤°à¤•à¤¾à¤°"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "वापरकरà¥à¤¤à¤¾ à¤®à¥…पिंग"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "दाखलन\n"
+-#~ "नाव"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "वापरकरà¥à¤¤à¤¾"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS à¤•à¥à¤·à¥‡à¤¤à¥à¤°"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "'%s' à¤¦à¤¾à¤–लन à¤†à¤µà¤¶à¥à¤¯à¤• à¤†à¤¹à¥‡"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "करार à¤˜à¤Ÿà¤•"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "ऑडीट à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "ऑडीट à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "करार à¤˜à¤Ÿà¤• à¤¦à¤¾à¤–ल à¤•à¤°à¤¾"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "Sandeep Shedmake <sandeep.shedmake@gmail.com>, 2008"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux à¤•à¤°à¤¾à¤° à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤¸à¤¾à¤§à¤¨"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥‡ à¤µ à¤¤à¥à¤¯à¤¾à¤µà¤°à¥€à¤² à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ांना à¤®à¤°à¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€, à¤¹à¤¾ à¤¸à¤¾à¤§à¤¨à¤šà¤¾ à¤•à¤°à¤¾à¤° "
+-#~ "रचना à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£à¤¾à¤¸à¤¾à¤ à¥€ à¤•à¥‡à¤²à¤¾ à¤œà¤¾à¤‰ à¤¶à¤•à¤¤à¥‹.   \n"
+-#~ "\n"
+-#~ "साधन à¤–ालील à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤•à¤°à¤¤à¥‹:\n"
+-#~ "जबरन à¤«à¤¾à¤‡à¤² à¤ªà¥à¤°à¤•à¤¾à¤° (te)\n"
+-#~ "संवादपट à¤«à¤¾à¤‡à¤² (if)\n"
+-#~ "फाइल à¤¸à¤‚दरà¥à¤­ à¤«à¤¾à¤‡à¤² (fc)\n"
+-#~ "शेल à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ (sh) - à¤œà¥à¤¯à¤¾à¤šà¤¾ à¤µà¤¾à¤ªà¤° à¤•à¤°à¤¾à¤° à¤¸à¤‚कलन à¤µ à¤ªà¥à¤°à¤¤à¤¿à¤·à¥à¤ à¤¾à¤ªà¤¨à¤¾ à¤•à¤°à¥€à¤¤à¤¾ à¤¹à¥‹à¤¤à¥‹. "
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥€ à¤­à¥‚मिका à¤®à¤°à¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤¨à¤¿à¤µà¤¡à¤¾"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "मानक Init à¤¡à¥€à¤®à¤¨ à¤…से à¤¡à¥€à¤®à¤¨ à¤œà¥€ à¤¬à¥‚टचà¥à¤¯à¤¾à¤µà¥‡à¤³à¥€ init à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ à¤šà¥à¤¯à¤¾ à¤®à¤¦à¤¤à¥€à¤¨à¥‡ à¤¸à¥à¤°à¥à¤µà¤¾à¤¤ à¤¹à¥‹à¤¤à¥‡.  à¤¯à¤¾ "
+-#~ "करीता /etc/rc.d/init.d à¤®à¤§à¥€à¤² à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿà¤šà¥€ à¤—रज à¤²à¤¾à¤—ते"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "मानक Init à¤¡à¥€à¤®à¤¨"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "इनटरनेट à¤¸à¥‡à¤µà¤¾ à¤¡à¥€à¤®à¤¨ à¤¤à¥à¤¯à¤¾ à¤¡à¥€à¤®à¤¨ à¤†à¤¹à¥‡à¤¤ à¤œà¥€ xinetd à¤šà¥à¤¯à¤¾ à¤®à¤¦à¤¤à¥€à¤¨à¥‡ à¤¸à¥à¤°à¥ à¤¹à¥‹à¤¤à¤¾à¤¤"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "इनटरनेट à¤¸à¥‡à¤µà¤¾ à¤¡à¥€à¤®à¤¨ (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr "वेब à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/Script (CGI) CGI à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ à¤µà¥‡à¤¬ à¤¸à¤°à¥à¤µà¤° (apache) à¤¦à¥à¤µà¤¾à¤°à¥‡ à¤¸à¥à¤°à¥à¤µà¤¾à¤¤ à¤•à¥‡à¤²à¥‡à¤²à¥‡"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "वेब à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/सà¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "वापरकरà¥à¤¤à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¤à¥€ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤†à¤¹à¥‡à¤¤ à¤œà¥€ à¤†à¤ªà¤²à¥à¤¯à¤¾à¤²à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤•à¤¡à¥‚न à¤®à¤°à¥à¤¯à¤¾à¤¦à¥€à¤¤ "
+-#~ "करतायेणà¥à¤¯à¤¾à¤œà¥‹à¤—ी à¤µà¤¾à¤Ÿà¥‡à¤²"
+-
+-#~ msgid "User Application"
+-#~ msgstr "वापरकरà¥à¤¤à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>वापरकरà¥à¤¤à¤¾ à¤¦à¤¾à¤–लन</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "सदà¥à¤¯à¤¾à¤šà¥‡ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤¦à¤¾à¤–लन à¤°à¥‡à¤•à¥‰à¤°à¥à¤¡ à¤¸à¤‚पादीत à¤•à¤°à¤¾."
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤à¥€à¤² à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤­à¥‚मिका"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "हा à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤®à¤¶à¥€à¤¨ à¤µà¤° à¤¦à¤¾à¤–लन à¤Ÿà¤°à¥à¤®à¤¿à¤¨à¤² à¤•à¤¿à¤‚वा à¤¦à¥‚ररà¥à¤¸à¥à¤¥ à¤¦à¤¾à¤–लन à¤¦à¥à¤µà¤¾à¤°à¥‡ à¤¦à¤¾à¤–लन à¤•à¤°à¥‡à¤².  "
+-#~ "मà¥à¤²à¤­à¥‚तरितà¥à¤¯à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾à¤•à¤¡à¥‡  setuid, à¤¸à¤‚जाळ, su, sudo à¤¨à¤¸à¤¤à¥€à¤²."
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "किमान à¤Ÿà¤°à¥à¤®à¤¿à¤¨à¤² à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤­à¥‚मिका"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "हा à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤®à¤¶à¥€à¤¨à¤µà¤° X à¤•à¤¿à¤‚वा à¤Ÿà¤°à¥à¤®à¤¿à¤¨à¤² à¤¦à¥à¤µà¤¾à¤°à¥‡ à¤¦à¤¾à¤–लन à¤•à¤°à¥‚ à¤¶à¤•à¤¤à¥‹.  à¤®à¥à¤²à¤­à¥‚तरितà¥à¤¯à¤¾ à¤¯à¤¾ "
+-#~ "वापरकरà¥à¤¤à¥à¤¯à¤¾à¤•à¤¡à¥‡ setuid à¤¨à¤¾à¤¹à¥€, à¤¸à¤‚जाळ à¤¨à¤¾à¤¹à¥€, sudo à¤¨à¤¾à¤¹à¥€, su à¤¨à¤¾à¤¹à¥€"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "किमान X Windows à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤­à¥‚मिका"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "पूरà¥à¤£ à¤¸à¤‚जाळ à¤¸à¤®à¤°à¥à¤¥à¥€à¤¤, à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तरन à¤µà¤¿à¤¨à¤¾ à¤ªà¤£ setuid à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¨à¤¾à¤¹à¥€, su à¤¨à¤¾à¤¹à¥€, sudo à¤¨à¤¾à¤¹à¥€ "
+-#~ "सकà¥à¤·à¤® à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾."
+-
+-#~ msgid "User Role"
+-#~ msgstr "वापरकरà¥à¤¤à¤¾ à¤­à¥‚मिका"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "पूरà¥à¤£ à¤¸à¤‚जाळ à¤¸à¤®à¤°à¥à¤¥à¥€à¤¤, à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तरन à¤µà¤¿à¤¨à¤¾ à¤ªà¤£ setuid à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¨à¤¾à¤¹à¥€, su à¤¨à¤¾à¤¹à¥€, à¤ªà¤°à¤‚तॠरूट "
+-#~ "पà¥à¤°à¤¶à¤¾à¤¸à¤• à¤­à¥‚मिका à¤•à¤°à¥€à¤¤à¤¾ sudo à¤•à¤°à¥‚ à¤¶à¤•à¤£à¤¾à¤° à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "पà¥à¤°à¤¶à¤¾à¤¸à¤• à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤­à¥‚मिका"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>रूट à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾</b>"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "वापरकरà¥à¤¤à¤¾ à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤µà¤° à¤°à¥à¤Ÿ à¤®à¤§à¥à¤¯à¥‡ à¤œà¤° à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤šà¤¾ à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤• à¤¸à¥à¤µà¤°à¥‚पी à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤…सलà¥à¤¯à¤¾à¤¸, à¤°à¥‚ट "
+-#~ "वापरकरà¥à¤¤à¤¾ à¤¨à¤¿à¤µà¤¡à¤¾.  à¤¹à¥à¤¯à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤²à¤¾ à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤µà¤° à¤ªà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤·à¤°à¥€à¤¤à¥à¤¯à¤¾ à¤¦à¤¾à¤–ल à¤•à¤°à¤¤à¤¾ à¤¯à¥‡à¤£à¥‡ à¤¶à¤•à¥à¤¯ "
+-#~ "होणार à¤¨à¤¾à¤¹à¥€."
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "रूट à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤• à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤ªà¤§à¥à¤¦à¤¤à¥€"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤¿à¤‚वा à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤šà¥€ à¤­à¥‚मिका à¤®à¤°à¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤¨à¤¿à¤µà¤¡à¤¾"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "नाव"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤à¤•à¥à¤œà¥€à¤•à¥à¤¯à¥‚टेबेलाकरीता à¤ªà¥‚रà¥à¤£ à¤®à¤¾à¤°à¥à¤— à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾."
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "मरà¥à¤¯à¤¦à¥€à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤¿à¤‚वा à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤­à¥‚मिका à¤•à¤°à¥€à¤¤à¤¾ à¤à¤•à¤®à¥‡à¤µ à¤°à¥€à¤¤à¥€à¤¨à¥‡ à¤¨à¤¾à¤µ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾."
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Executable"
+-#~ msgstr "à¤à¤•à¥à¤œà¥€à¤•à¥à¤¯à¥‚टेबल"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Init script"
+-#~ msgstr "Init à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr "मरà¥à¤¯à¤¦à¥€à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤¸à¥à¤°à¥‚ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ init à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ à¤®à¤§à¥à¤¯à¥‡ à¤ªà¥‚रà¥à¤£ à¤®à¤¾à¤°à¥à¤— à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾."
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "इचà¥à¤›à¤¿à¤• à¤¬à¤¨à¤µà¤¿à¤£à¥à¤¯à¤¾à¤œà¥‹à¤—ी à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤­à¥‚मिका à¤¨à¤¿à¤µà¤¡à¤¾"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr "या à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤•à¤°à¥€à¤¤à¤¾ à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तरन à¤•à¤°à¤£à¥à¤¯à¤¾à¤œà¥‹à¤—ी à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤­à¥‚मिका à¤¨à¤¿à¤µà¤¡à¤¾."
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "सà¥à¤¥à¤¾à¤¨à¤¾à¤‚तरन à¤•à¤°à¥€à¤¤à¤¾ à¤…तिरीकà¥à¤¤ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤¨à¤¿à¤µà¤¡à¤¾"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr "हà¥à¤¯à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾à¤¸ à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तर à¤•à¤¸à¥‡ à¤…सावे à¤¹à¥à¤¯à¤¾ à¤•à¤°à¥€à¤¤à¤¾ à¤…तिरीकà¥à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤¨à¤¿à¤µà¤¡à¤¾."
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "या à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤•à¤°à¥€à¤¤à¤¾ à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तरन à¤•à¤°à¤£à¥à¤¯à¤¾à¤œà¥‹à¤—ी à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤­à¥‚मिका à¤¨à¤¿à¤µà¤¡à¤¾"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "हा à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤•à¥€à¤¯ à¤•à¤¾à¤®à¤¾à¤¸ à¤•à¥‹à¤£à¤¤à¥‡ à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤µà¤¾à¤ªà¤°à¥‡à¤² à¤¤à¥€ à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤¨à¤¿à¤µà¤¡à¤¾"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "हा à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾à¤¸ à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤•à¥€à¤¯ à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤†à¤ªà¤£ à¤¨à¤¿à¤µà¤¡à¥‚न à¤¦à¥à¤¯à¤¾."
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "सà¥à¤¥à¤¾à¤¨à¤¾à¤‚तरन à¤•à¤°à¥€à¤¤à¤¾ à¤…तिरीकà¥à¤¤ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤¨à¤¿à¤µà¤¡à¤¾"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास/वापरकरà¥à¤¤à¤¾à¤šà¥à¤¯à¤¾ à¤¸à¤‚परà¥à¤•à¤¾à¤¤ à¤¯à¥‡à¤¤ à¤…सलेलà¥à¤¯à¤¾ tcp à¤ªà¥‹à¤°à¥à¤Ÿ à¤šà¥€ à¤¯à¤¾à¤¦à¥€ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP à¤ªà¥‹à¤°à¥à¤Ÿ</b>"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/वापरकरà¥à¤¤à¥à¤¯à¤¾à¤¸ à¤•à¥à¤ à¤²à¥à¤¯à¤¾à¤¹à¥€ udp à¤ªà¥‹à¤°à¥à¤Ÿ à¤¶à¥€ à¤¬à¤‚धनकारक à¤¹à¥‹à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥‡à¤¤à¥‹"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "सरà¥à¤µ"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास/वापरकरà¥à¤¤à¥à¤¯à¤¾à¤¸ bindresvport 0 à¤¸à¤¹ à¤¹à¤¾à¤• à¤¦à¥‡à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾. à¤ªà¥‹à¤°à¥à¤Ÿ "
+-#~ "600-1024 à¤¶à¥€ à¤¬à¤¾à¤‚धणी à¤•à¤°à¥€à¤¤ à¤†à¤¹à¥‡"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "हà¥à¤¯à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास/वापरकरà¥à¤¤à¤¾à¤¸ à¤¸à¤‚परà¥à¤•à¤¾à¤¤ à¤¯à¥‡à¤¤ à¤…सलेलà¥à¤¯à¤¾ à¤¸à¥à¤µà¤²à¥à¤ªà¤µà¤¿à¤°à¤¾à¤® à¤µà¤¿à¤­à¤¾à¤œà¥€à¤¤ udp à¤ªà¥‹à¤°à¥à¤Ÿ à¤•à¤¿à¤‚वा "
+-#~ "पोरà¥à¤Ÿ à¤•à¥à¤·à¥‡ à¤¤à¥à¤°à¤¾à¤šà¥€à¤¯à¤¾à¤¦à¥€ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾. à¤‰à¤¦à¤¾à¤¹à¤°à¤£: 612, 650-660"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "अनारकà¥à¤·à¥€à¤¤ à¤ªà¥‹à¤°à¥à¤Ÿ (>1024)"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "पोरà¥à¤Ÿ à¤¨à¤¿à¤µà¤¡à¤¾"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास/वापरकरà¥à¤¤à¥à¤¯à¤¾à¤¸ à¤•à¥à¤ à¤²à¥à¤¯à¤¾à¤¹à¥€ udp à¤ªà¥‹à¤°à¥à¤Ÿ > 1024 à¤¶à¥€ à¤¬à¤‚धनकारक à¤¹à¥‹à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥‡à¤¤à¥‹"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP à¤ªà¥‹à¤°à¥à¤Ÿà¤¸à¥</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr "हà¥à¤¯à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास/वापरकरà¥à¤¤à¤¾ à¤¸à¤‚परà¥à¤•à¤¾à¤¤ à¤¯à¥‡à¤¤ à¤…सलेलà¥à¤¯à¤¾ à¤¸à¤‚जाळ à¤ªà¥‹à¤°à¥à¤Ÿà¤šà¥€ à¤¯à¤¾à¤¦à¥€ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "हà¥à¤¯à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास/वापरकरà¥à¤¤à¤¾à¤¸ à¤¸à¤‚परà¥à¤•à¤¾à¤¤ à¤¯à¥‡à¤¤ à¤…सलेलà¥à¤¯à¤¾ à¤¸à¥à¤µà¤²à¥à¤ªà¤µà¤¿à¤°à¤¾à¤® à¤µà¤¿à¤­à¤¾à¤œà¥€à¤¤ tcp à¤ªà¥‹à¤°à¥à¤Ÿ à¤•à¤¿à¤‚वा "
+-#~ "पोरà¥à¤Ÿ à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¤¾à¤šà¥€ à¤¯à¤¾à¤¦à¥€ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾.  à¤‰à¤¹à¤¾à¤°à¤£à¤¾à¤°à¥à¤¥: 612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "हà¥à¤¯à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास/वापरकरà¥à¤¤à¤¾à¤¸ à¤¸à¤‚परà¥à¤•à¤¾à¤¤ à¤¯à¥‡à¤¤ à¤…सलेलà¥à¤¯à¤¾ à¤¸à¥à¤µà¤²à¥à¤ªà¤µà¤¿à¤°à¤¾à¤® à¤µà¤¿à¤­à¤¾à¤œà¥€à¤¤ udp à¤ªà¥‹à¤°à¥à¤Ÿ à¤•à¤¿à¤‚वा "
+-#~ "पोरà¥à¤Ÿ à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¤¾à¤šà¥€ à¤¯à¤¾à¤¦à¥€ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾. à¤‰à¤¦à¤¾à¤¹à¤°à¤£: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "साधारणतः à¤…नà¥à¤ªà¥à¤°à¥‹à¤—ाचे à¤µà¤¿à¤¶à¥‡à¤· à¤—à¥à¤£à¤§à¤°à¥à¤®"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "syslog à¤¸à¤‚देश à¤²à¤¿à¤¹à¥€à¤¤à¥‹\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "/tmp à¤®à¤§à¥à¤¯à¥‡ à¤¤à¤¾à¤¤à¥à¤ªà¥‚रती à¤«à¤¾à¤‡à¤² à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£/संपादीत à¤•à¤°à¤¾"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ à¤•à¤°à¥€à¤¤à¤¾ Pam à¤šà¤¾ à¤µà¤¾à¤ªà¤° à¤•à¤°à¤¤à¥‹"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "nsswitch à¤•à¤¿à¤‚वा getpw* à¤•à¥‰à¤² à¤µà¤¾à¤ªà¤°à¤¤à¥‹"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "dbus à¤µà¤¾à¤ªà¤°à¤¤à¥‹"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "ऑडिट à¤¸à¤‚देश à¤ªà¤¾à¤ à¤µà¤¿à¤¤à¥‹"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "टरà¥à¤®à¤¿à¤¨à¤²à¤¶à¥€ à¤¸à¤‚वाद à¤¸à¤¾à¤§à¤¤à¥‹"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "ईमेल à¤ªà¤¾à¤ à¤µà¤¾"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—चà¥à¤¯à¤¾ à¤¨à¤¿à¤¯à¤‚तà¥à¤°à¤£à¤¾à¤¤à¥€à¤² à¤«à¤¾à¤‡à¤²/संचयीका à¤¨à¤¿à¤µà¤¡à¤¾"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "हà¥à¤¯à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास à¤²à¤¾à¤—णाऱà¥à¤¯à¤¾ \"लेखन\" à¤•à¤°à¥€à¤¤à¤¾ à¤«à¤¾à¤‡à¤²/संचयीका à¤¸à¤®à¤¾à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾. Pid à¤«à¤¾à¤‡à¤², "
+-#~ "लॉग à¤«à¤¾à¤‡à¤², /var/lib à¤«à¤¾à¤‡à¤² ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—चà¥à¤¯à¤¾ à¤¦à¥à¤µà¤¾à¤°à¥‡ à¤¨à¤¿à¤°à¥à¤®à¥€à¤¤ à¤•à¤¿à¤‚वा à¤²à¤¿à¤–ीत à¤«à¤¾à¤‡à¤² à¤¨à¤¿à¤µà¤¡à¤¾"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr "मरà¥à¤¯à¤¦à¥€à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—/वापरकरà¥à¤¤à¤¾ à¤•à¤°à¥€à¤¤à¤¾ à¤¬à¥‚लीयन à¤œà¥‹à¤¡à¤¾/काढूण à¤Ÿà¤¾à¤•à¤¾"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "यात à¤•à¤°à¤¾à¤° à¤«à¤¾à¤‡à¤² à¤¬à¤¨à¤µà¤¿à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤¸à¤‚चयीका à¤¨à¤¿à¤µà¤¡à¤¾"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "करार à¤¸à¤‚चयीका"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "निरà¥à¤®à¤¾à¤£ à¤à¤¾à¤²à¥‡à¤²à¥à¤¯à¤¾ à¤•à¤°à¤¾à¤° à¤«à¤¾à¤‡à¤²"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "हे à¤¸à¤¾à¤§à¤¨ à¤–ालिल à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤•à¤°à¤¤à¥‹: \n"
+-#~ "टाइप à¤à¤‚फोरà¥à¤¸à¤®à¥‡à¤‚ट (te), à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­(fc), à¤¸à¤‚वाद(if), à¤¶à¥‡à¤² à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ(sh).\n"
+-#~ "संकलन/पà¥à¤°à¤¤à¤¿à¤·à¥à¤ à¤¾à¤ªà¤¨ à¤µ à¤«à¤¾à¤‡à¤²/संचयीका à¤ªà¥à¤¨à¥à¤¹à¤¾ à¤²à¥‡à¤¬à¤² à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤¶à¥‡à¤² à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ "
+-#~ "करा.  \n"
+-#~ "आता à¤¤à¥à¤®à¥à¤¹à¥€ à¤ªà¥à¤°à¤£à¤¾à¤²à¥€ à¤ªà¤°à¤µà¤¾à¤‚गीक à¤®à¤¾à¤§à¥à¤¯à¤®à¤¾à¤¤ à¤ à¥‡à¤µà¥‚ à¤¶à¤•à¤¤à¤¾ (setenforce 0). \n"
+-#~ "avc à¤¸à¤‚देश à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤/पà¥à¤¨à¥à¤¹à¤¾ à¤šà¤¾à¤²à¥‚ à¤•à¤°à¤¾.\n"
+-#~ "te à¤«à¤¾à¤‡à¤² à¤•à¤°à¥€à¤¤à¤¾ à¤…तिरीकà¥à¤¤ à¤¨à¤¿à¤¯à¤®à¤¾à¤µà¤²à¥€ à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ audit2allow -R à¤šà¤¾ à¤µà¤¾à¤ªà¤° "
+-#~ "करा.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "हे à¤¸à¤¾à¤§à¤¨ à¤–ालिल à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤•à¤°à¤¤à¥‹: \n"
+-#~ "टाईप à¤à¤‚फोरà¥à¤¸à¤®à¥‡à¤‚ट (te), à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­(fc), à¤¸à¤‚वाद(if), à¤¶à¥‡à¤² à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ(sh).\n"
+-#~ "संकलन/पà¥à¤°à¤¤à¤¿à¤·à¥à¤ à¤¾à¤ªà¤¨ à¤µ à¤«à¤¾à¤‡à¤²/संचयीका à¤ªà¥à¤¨à¥à¤¹à¤¾ à¤²à¥‡à¤¬à¤² à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤¶à¥‡à¤² à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ "
+-#~ "करा.  \n"
+-#~ "आता à¤¤à¥à¤®à¥à¤¹à¥€ à¤ªà¥à¤°à¤£à¤¾à¤²à¥€ à¤ªà¤°à¤µà¤¾à¤‚गीक à¤®à¤¾à¤§à¥à¤¯à¤®à¤¾à¤¤ à¤ à¥‡à¤µà¥‚ à¤¶à¤•à¤¤à¤¾ (setenforce 0). \n"
+-#~ "avc à¤¸à¤‚देश à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤/पà¥à¤¨à¥à¤¹à¤¾ à¤šà¤¾à¤²à¥‚ à¤•à¤°à¤¾.\n"
+-#~ "te à¤«à¤¾à¤‡à¤² à¤•à¤°à¥€à¤¤à¤¾ à¤…तिरीकà¥à¤¤ à¤¨à¤¿à¤¯à¤®à¤¾à¤µà¤²à¥€ à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ audit2allow -R à¤šà¤¾ à¤µà¤¾à¤ªà¤° "
+-#~ "करा.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "बूलियन à¤¸à¤‚वाद à¤œà¥‹à¤¡à¤¾"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "बूलीयन à¤¨à¤¾à¤µ"
+-
+-#~ msgid "Role"
+-#~ msgstr "भूमिका"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤à¥€à¤²_वापरकरà¥à¤¤à¤¾"
+-
+-#~ msgid "Application"
+-#~ msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s à¤¸à¤‚चयीका à¤…सायला à¤¹à¤µà¥€"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "तà¥à¤®à¥à¤¹à¥€ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤¨à¤¿à¤µà¤¡à¤²à¤¾ à¤ªà¤¾à¤¹à¤¿à¤œà¥‡"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤«à¤¾à¤‡à¤² à¤®à¤°à¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤¨à¤¿à¤µà¤¡à¤¾."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "init script à¤«à¤¾à¤‡à¤² à¤®à¤°à¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤¨à¤¿à¤µà¤¡à¤¾."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—चà¥à¤¯à¤¾ à¤¦à¥à¤µà¤¾à¤°à¥‡ à¤¨à¤¿à¤°à¥à¤®à¥€à¤¤ à¤•à¤¿à¤‚वा à¤²à¤¿à¤–ीत à¤«à¤¾à¤‡à¤² à¤¨à¤¿à¤µà¤¡à¤¾"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—चà¥à¤¯à¤¾ à¤¨à¤¾à¤µà¥€ à¤…सलेले à¤µ à¤¤à¥à¤¯à¤¾à¤¸ à¤²à¤¿à¤¹à¥€à¤¤à¤¾à¤¯à¥‡à¤£à¥à¤¯à¤¾à¤œà¥‹à¤—ी à¤…सलेले à¤¸à¤‚चयीका à¤¨à¤¿à¤µà¤¡à¤¾"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "यात à¤•à¤°à¤¾à¤° à¤«à¤¾à¤‡à¤² à¤¬à¤¨à¤µà¤¿à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤¸à¤‚चयीका à¤¨à¤¿à¤µà¤¡à¤¾"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "टाइप %s_t à¤†à¤§à¤¿à¤ªà¤¾à¤¸à¥‚नच à¤¸à¤¦à¥à¤¯à¤¾à¤šà¥‡ à¤•à¤°à¤¾à¤° à¤®à¤§à¥à¤¯à¥‡ à¤µà¥à¤¯à¤¾à¤–à¥à¤¯à¥€à¤¤ à¤•à¥‡à¤²à¥‡ à¤†à¤¹à¥‡.\n"
+-#~ "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ à¤ªà¥à¤¢à¥‡ à¤œà¤¾à¤¯à¤šà¥‡?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "नाव à¤¤à¤ªà¤¾à¤¸à¤¾"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "विभाग %s.pp à¤†à¤§à¤¿à¤ªà¤¾à¤¸à¥‚नच à¤¸à¤¦à¥à¤¯à¤¾à¤šà¥‡ à¤•à¤°à¤¾à¤° à¤®à¤§à¥à¤¯à¥‡ à¤¦à¤¾à¤–ल à¤•à¥‡à¤²à¥‡ à¤†à¤¹à¥‡.\n"
+-#~ "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ à¤¨à¤•à¥à¤•à¥€ à¤ªà¥à¤¢à¥‡ à¤œà¤¾à¤¯à¤šà¥‡?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "तà¥à¤®à¥à¤¹à¥€ à¤à¤• à¤¨à¤¾à¤µ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¥‡à¤²à¥‡à¤š à¤ªà¤¾à¤¹à¤¿à¤œà¥‡"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "आपण à¤à¤•à¥à¤œà¥€à¤•à¥à¤¯à¥‚टेबल à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¥‡à¤²à¥‡à¤š à¤ªà¤¾à¤¹à¤¿à¤œà¥‡"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux à¤¸à¤‚रचीत à¤•à¤°à¤¾"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "पोरà¥à¤Ÿà¤šà¥‡ à¤•à¥à¤°à¤®à¤¾à¤‚कन à¤•à¤¿à¤‚वा à¤•à¥à¤°à¤®à¤¾à¤‚काचे à¤•à¥à¤·à¥‡à¤¤à¥à¤° 1 à¤ªà¤¾à¤¸à¥‚न %d à¤ªà¤°à¥à¤¯à¤‚त à¤…सायला à¤ªà¤¾à¤¹à¤¿à¤œà¥‡"
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤•à¤¾à¤°à¥à¤¯à¤ªà¤¦à¥à¤§à¤¤à¥€/वापरकरà¥à¤¤à¥à¤¯à¤¾à¤¸ à¤¨à¤¾à¤µ à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¥‡à¤²à¥‡ à¤ªà¤¾à¤¹à¤¿à¤œà¥‡"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "USER à¤ªà¥à¤°à¤•à¤¾à¤° à¤ªà¤°à¤µà¤¾à¤¨à¤—ीरहीत à¤à¤•à¥à¤à¥€à¤•à¥à¤¯à¥‚टेबल à¤¨à¤¾à¤¹à¥€"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "फकà¥à¤¤ DAEMON à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—च init à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿà¤šà¤¾ à¤µà¤¾à¤ªà¤° à¤•à¤°à¥‚ à¤¶à¤•à¤¤à¤¾à¤¤"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog à¤¬à¥‚लीयन à¤¸à¤‚खà¥à¤¯à¤¾ à¤…सली à¤ªà¤¾à¤¹à¤¿à¤œà¥‡ "
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "USER à¤ªà¥à¤°à¤•à¤¾à¤° à¤†à¤ªà¥‹à¤†à¤ª tmp à¤ªà¥à¤°à¤•à¤¾à¤° à¤®à¤¿à¤³à¤¤à¥‡"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "आपलà¥à¤¯à¤¾ à¤®à¤°à¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤•à¤¾à¤°à¥à¤¯à¤ªà¤¦à¥à¤§à¤¤à¥€à¤•à¤°à¥€à¤¤à¤¾ à¤à¤•à¥à¤œà¥€à¤•à¥à¤¯à¥‚टेबेल à¤®à¤¾à¤°à¥à¤— à¤ªà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¥‡à¤²à¤¾à¤š à¤ªà¤¾à¤¹à¤¿à¤œà¥‡"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "पà¥à¤°à¤•à¤¾à¤° à¤¸à¤•à¥à¤¤à¥€ à¤«à¤¾à¤‡à¤²"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "संवादपट à¤«à¤¾à¤‡à¤²"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "फाइल à¤¸à¤‚दरà¥à¤­ à¤«à¤¾à¤‡à¤²"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "संरचना à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux à¤ªà¥‹à¤°à¥à¤Ÿ\n"
+-#~ "पà¥à¤°à¤•à¤¾à¤°"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•à¥‰à¤²"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "सà¥à¤¥à¤°"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "पोरà¥à¤Ÿ"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "पोरà¥à¤Ÿ à¤•à¥à¤°à¤®à¤¾à¤‚क \"%s\" à¤µà¥ˆà¤§ à¤¨à¤¾à¤¹à¥€.  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "दृशà¥à¤¯ à¤ªà¤¹à¤¾"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "संच à¤¦à¥ƒà¤¶à¥à¤¯"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux à¤¸à¥‡à¤µà¤¾ à¤¸à¥à¤°à¤•à¥à¤·à¤¾"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "acct à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "ऑडमीन"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "सरà¥à¤µ à¤¡à¥€à¤®à¤¨à¤¨à¤¾ à¤•à¥‹à¤°à¤«à¤¾à¤‡à¤²à¥à¤¸ à¤²à¤¿à¤¹à¥€à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾ /"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "अनिशà¥à¤šà¤¿à¤¤ ttys à¤²à¤¾ à¤µà¤¾à¤ªà¤°à¤£à¥à¤¯à¤¾à¤šà¥€ à¤•à¤¾à¤°à¥à¤¯à¤•à¥à¤·à¤®à¤¤à¤¾ à¤¸à¤°à¥à¤µ à¤¡à¥€à¤®à¤¨à¥à¤¸à¤²à¤¾ à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "वापरकरà¥à¤¤à¤¾ Privs"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "gadmin SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤–ातà¥à¤¯à¤¾à¤‚ना à¤®à¥à¤–à¥à¤¯ à¤¸à¤‚चिकेत à¤•à¤¿à¤‚वा /tmp à¤®à¤§à¥à¤¯à¥‡ à¤«à¤¾à¤‡à¤²à¥à¤¸ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ "
+-#~ "करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤–ातà¥à¤¯à¤¾à¤‚ना à¤®à¥à¤–à¥à¤¯ à¤¸à¤‚चिकेत à¤•à¤¿à¤‚वा /tmp à¤®à¤§à¥à¤¯à¥‡ à¤«à¤¾à¤‡à¤²à¥à¤¸ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ "
+-#~ "करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "सà¥à¤®à¥ƒà¤¤à¤¾ à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "जावा à¤•à¤¾à¤°à¥à¤¯à¤¾à¤°à¤¤ à¤¸à¥à¤Ÿà¥…कला à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "आरोहण"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "कà¥à¤ à¤²à¤¿à¤¹à¥€ à¤«à¤¾à¤‡à¤² à¤†à¤°à¥‹à¤¹à¥€à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤†à¤°à¥‹à¤¹à¤£à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "कà¥à¤ à¤²à¤¿à¤¹à¥€ à¤¸à¤‚चयीका à¤†à¤°à¥‹à¤¹à¥€à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤†à¤°à¥‹à¤¹à¤£à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "mplayer à¤•à¤¾à¤°à¥à¤¯à¤¾à¤°à¤¤ à¤¸à¥à¤Ÿà¥…कला à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "ssh à¤²à¤¾ ssh-keysign à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "सà¥à¤Ÿà¥‰à¤« SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤–ातà¥à¤¯à¤¾à¤‚ना à¤®à¥à¤–à¥à¤¯ à¤¸à¤‚चिकेत à¤•à¤¿à¤‚वा /tmp à¤®à¤§à¥à¤¯à¥‡ à¤«à¤¾à¤‡à¤²à¥à¤¸ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ "
+-#~ "करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "sysadm SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤–ातà¥à¤¯à¤¾à¤‚ना à¤®à¥à¤–à¥à¤¯ à¤¸à¤‚चिकेत à¤•à¤¿à¤‚वा /tmp à¤®à¤§à¥à¤¯à¥‡ à¤«à¤¾à¤‡à¤²à¥à¤¸ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ "
+-#~ "करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ SELinux à¤µà¤¾à¤µà¤°à¤•à¤°à¥à¤¤à¤¾ à¤–ातींना à¤«à¤¾à¤‡à¤²à¤²à¤¾ à¤®à¥à¤–à¥à¤¯ à¤¸à¤‚चयीका à¤•à¤¿à¤‚वा /tmp à¤®à¤§à¥à¤¯à¥‡ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ "
+-#~ "करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "संजाळ à¤¸à¤‚रचना"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "संजळावर à¤²à¥‡à¤¬à¤² à¤¨à¤¸à¤²à¥‡à¤²à¥‡ à¤ªà¥…केट à¤ªà¥à¤°à¤µà¤¾à¤¹à¥€à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "वापरकरà¥à¤¤à¤¾ SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤–ातà¥à¤¯à¤¾à¤‚ना à¤®à¥à¤–à¥à¤¯ à¤¸à¤‚चिकेत à¤•à¤¿à¤‚वा /tmp à¤®à¤§à¥à¤¯à¥‡ à¤«à¤¾à¤‡à¤²à¥à¤¸ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ "
+-#~ "करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "unconfined_execmem à¤•à¤°à¥€à¤¤à¤¾ à¤®à¤°à¥à¤¯à¤¾à¤¦à¥€à¤¤à¤²à¤¾ dyntrans à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "डाटाबेसेस"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "mysql à¤¸à¥‰à¤•à¥‡à¤Ÿà¤²à¤¾ à¤œà¥‹à¤¡à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤²à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "postgres à¤¸à¥‰à¤•à¥‡à¤Ÿà¤²à¤¾ à¤œà¥‹à¤¡à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤²à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "X à¤¸à¤¹à¤­à¤¾à¤—ीय à¤¸à¥à¤®à¥ƒà¤¤à¥€à¤¸ à¤²à¤¿à¤¹à¥€à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤•à¥à¤²à¤¾à¤à¤‚टला à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "xguest SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤–ातà¥à¤¯à¤¾à¤‚ना à¤®à¥à¤–à¥à¤¯ à¤¸à¤‚चिकेत à¤•à¤¿à¤‚वा /tmp à¤®à¤§à¥à¤¯à¥‡ à¤«à¤¾à¤‡à¤²à¥à¤¸ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ "
+-#~ "करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "डीमनला NIS à¤¶à¥€ à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤ à¥‡à¤µà¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "वेब à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "सà¥à¤Ÿà¥‰à¤« SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾à¤ªà¤¾à¤¸à¥‚न à¤¤à¥‡ à¤µà¥‡à¤¬ à¤¬à¥à¤°à¤¾à¤Šà¤œà¤° à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¤¾à¤®à¤§à¥à¤¯à¥‡ à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तर"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "sysadm SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾à¤ªà¤¾à¤¸à¥‚न à¤¤à¥‡ à¤µà¥‡à¤¬ à¤¬à¥à¤°à¤¾à¤Šà¤œà¤° à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¤¾à¤®à¤§à¥à¤¯à¥‡ à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तर"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "वापरकरà¥à¤¤à¤¾ SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾à¤ªà¤¾à¤¸à¥‚न  à¤¤à¥‡ à¤µà¥‡à¤¬ à¤¬à¥à¤°à¤¾à¤Šà¤œà¤° à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¤¾à¤®à¤§à¥à¤¯à¥‡ à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तर"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "xguest SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾à¤ªà¤¾à¤¸à¥‚न à¤¤à¥‡ à¤µà¥‡à¤¬ à¤¬à¥à¤°à¤¾à¤Šà¤œà¤° à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¤¾à¤®à¤§à¥à¤¯à¥‡ à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तर"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "मà¥à¤–à¥à¤¯ à¤¸à¤‚चिकेत à¤¸à¥à¤Ÿà¥‰à¤« à¤µà¥‡à¤¬ à¤¬à¥à¤°à¤¾à¤Šà¤œà¤°à¤¾à¤‚ना à¤²à¤¿à¤¹à¥€à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "अमॅनडा à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "अमॅवीस à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "apmd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "arpwatch à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "auditd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "automount à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "avahi à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "bluetooth à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "canna à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "cardmgr à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "कà¥à¤²à¤¸à¥à¤Ÿà¤° à¤¸à¤°à¥à¤µà¤° à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "खालील à¤…नà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•à¥‡à¤¤ à¤…ंतरà¥à¤­à¥‚त à¤µà¤¾à¤šà¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ cdrecord à¤²à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾. nfs, samba, "
+-#~ "काढूनठेवतायेणà¥à¤¯à¤¾à¤œà¥‹à¤—ी à¤¸à¤¾à¤§à¤¨à¥‡, à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤šà¥‡ à¤Ÿà¥‡à¤‚म à¤µ à¤…विशà¥à¤µà¤¾à¤¸à¥‚ à¤®à¤œà¤•à¥‚र à¤«à¤¾à¤‡à¤²"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ciped à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "clamd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "clamscan à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "clvmd à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "comsat à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "courier à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "cpucontrol à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "cpuspeed à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "कà¥à¤°à¥‰à¤¨"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "छपाई"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "cupsd à¤¬à¥…कà¤à¤‚ड à¤¸à¤°à¥à¤µà¤° à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "cupsd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "cupsd_lpd à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "cvs à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "cyrus à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "dbskkd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "dbusd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "dccd à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "dccifd à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "dccm à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ddt à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "devfsd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "dhcpc à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "dhcpd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "dictd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· à¤°à¥‚पी à¤¡à¥€à¤®à¤¨ à¤¸à¥à¤°à¥‚ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ sysadm_t à¤²à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "à¤à¤µà¥à¤¹à¤²à¥‚शन à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "खेळ"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "खेळांकरीता SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "वेब à¤¬à¥à¤°à¤¾à¤‰à¤œà¤° à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "थंडरबरà¥à¤¡ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "फेचमेल à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Hal à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "सहतà¥à¤µ"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "माहीत à¤…सलेलà¥à¤¯à¤¾ à¤œà¥à¤¯à¤¾à¤šà¥‡ à¤‰à¤²à¥à¤²à¤‚गन à¤¶à¤•à¥à¤¯ à¤†à¤¹à¥‡ à¤ªà¤°à¤‚तॠसà¥à¤°à¤•à¥à¤·à¤¾à¤•à¤¾à¤°à¤£à¤¾à¤¸à¥à¤¤à¤µ à¤­à¥€à¤¤à¥€ à¤¨à¤¸à¤²à¥‡à¤²à¥à¤¯à¤¾ à¤—ोषà¥à¤Ÿà¥€ à¤‘डीट "
+-#~ "करू à¤¨à¤•à¤¾"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "यजमान à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "hplip à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "httpd à¤²à¥‰à¤—बदली à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD à¤¸à¥‡à¤µà¤¾"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexec à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "inetd à¤‰à¤ª à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ircd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "irqbalance à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "iscsi à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "jabberd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "केरबेरोस"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "kadmind à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "klogd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "krb5kdc à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ktalk à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "kudzu à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "locate à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "lpd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "lrrd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "lvm à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "मेलमॅन à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "à¤à¤µà¥à¤¹à¤²à¥à¤¯à¥‚शन à¤µ à¤¥à¤‚डरबरà¥à¤¡à¤²à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤šà¥‡ à¤«à¤¾à¤‡à¤² à¤µà¤¾à¤šà¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "mdadm à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "monopd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "मोà¤à¥€à¤²à¤¾ à¤¬à¥à¤°à¤¾à¤‰à¤œà¤°à¤²à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤šà¥‡ à¤«à¤¾à¤‡à¤² à¤µà¤¾à¤šà¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "mrtg à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "mysqld à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "nagios à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "नाव à¤¸à¥‡à¤µà¤¾"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "named à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "nessusd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "संजाळ à¤µà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•à¤¾ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "nfsd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "सांबा"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "nmbd à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "nrpe à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "nscd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "nsd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ntpd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "oddjob à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "oddjob_mkhomedir à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "openvpn à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "pam à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "pegasus à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "perdition à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "portmap à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "portslave à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "पूरà¥à¤µà¤ªà¤¦ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "postgresql à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "नियमीत à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¸ pppd à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "pptp à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "prelink à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "privoxy à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ptal à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "pxe à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "pyzord à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "quota à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "radiusd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "radvd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "prelink à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "readhead à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr "फाइल à¤…-मानक à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤ªà¤¾à¤¸à¥‚न (default_t) à¤µà¤¾à¤šà¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "restorecond à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "rhgb à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ricci à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ricci_modclusterd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "rlogind à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "rpcd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "rshd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "rsync à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "डीमन à¤à¤µà¤œà¥€ inetd à¤ªà¤¾à¤¸à¥‚न ssh à¤²à¤¾ à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥à¤¯à¥‡ nfs à¤¸à¤‚चयीका à¤¸à¤¹à¤­à¤¾à¤— à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸ Samba à¤²à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL à¤…धिपà¥à¤°à¤®à¤¾à¤£à¤¿à¤¤ à¤¸à¤°à¥à¤µà¤°"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "sasl à¤…धिपà¥à¤°à¤®à¤¾à¤£à¥€à¤¤ à¤¸à¤°à¥à¤µà¤°à¤²à¤¾ /etc/shadow à¤µà¤¾à¤šà¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "सà¥à¤®à¥ƒà¤¤à¥€ à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¤¾à¤¸ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤µ à¤²à¤¿à¤¹à¥€à¤¤à¤¾à¤¯à¥‡à¤£à¥à¤¯à¤¾à¤œà¥‹à¤—ी à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸ X-Windows à¤¸à¤°à¥à¤µà¤°à¤²à¤¾ à¤®à¥…प à¤•à¤°à¤£à¥à¤¯à¤¾à¤šà¥€ "
+-#~ "परवानगी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "saslauthd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "scannerdaemon à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "sysadm_t, sudo à¤µ su à¤ªà¥à¤°à¤­à¤¾à¤µà¤¿à¤¤ à¤®à¤§à¥à¤¯à¥‡ à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तरीत à¤¹à¥‹à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥‡à¤Š à¤¨à¤•à¤¾"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "कà¥à¤ à¤²à¥à¤¯à¤¾à¤¹à¥€ à¤•à¤¾à¤°à¥à¤¯à¤ªà¤¦à¥à¤§à¤¤à¥€à¤¸ à¤•à¤°à¥à¤¨à¤² à¤˜à¤Ÿà¤• à¤¦à¤¾à¤–ल à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥‡à¤Š à¤¨à¤•à¤¾"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "कà¥à¤ à¤²à¥à¤¯à¤¾à¤¹à¥€ à¤•à¤¾à¤°à¥à¤¯à¤ªà¤¦à¥à¤§à¤¤à¥€à¤¸ à¤•à¤°à¥à¤¨à¤² SELinux à¤•à¤°à¤¾à¤° à¤¸à¤‚पादीत à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥‡à¤Š à¤¨à¤•à¤¾"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "sendmail à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "setrans à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "setroubleshoot à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "slapd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "slrnpull à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "smbd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "snmpd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "snort à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "soundd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "sound à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "सà¥à¤ªà¥…म à¤¸à¥à¤°à¤•à¥à¤·à¤¾"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "spamd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "spamd à¤²à¤¾ à¤®à¥à¤–à¥à¤¯ à¤¸à¤‚चयीका à¤ªà¥à¤°à¤µà¥‡à¤¶à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "सà¥à¤ªà¥…म à¤¨à¤¿à¤·à¤•à¥à¤°à¥€à¤¯à¤• à¤¡à¥€à¤®à¤¨à¤¾à¤²à¤¾ à¤¸à¤‚जाळ à¤ªà¥à¤°à¤µà¥‡à¤¶à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "speedmgmt à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "squid à¤¡à¥€à¤®à¤¨à¤²à¤¾ à¤¸à¤‚जाळ à¤ªà¥à¤°à¤µà¥‡à¤¶à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "squid à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ssh à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "ssh à¤¦à¤¾à¤–लनला sysadm_r:sysadm_t à¤šà¥à¤¯à¤¾ à¤¸à¥à¤µà¤°à¥‚पास à¤¦à¤¾à¤–लनास à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "staff_r à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤‚ना sysadm à¤¤à¥€à¤² à¤®à¥à¤–à¥à¤¯ à¤¸à¤‚चयीका à¤µ à¤µà¤¾à¤šà¤¤à¤¾à¤¯à¥‡à¤£à¥à¤¯à¤¾à¤œà¥‹à¤—ी à¤«à¤¾à¤‡à¤² (जसे à¤•à¥€ ~/."
+-#~ "bashrc) à¤¶à¥‹à¤§à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "वैशà¥à¤µà¤¿à¤• SSL à¤®à¤¾à¤°à¥à¤—"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "stunnel à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr ""
+-#~ "stunnel à¤¡à¥€à¤®à¤¨à¤²à¤¾ à¤¸à¥à¤µà¤¤à¤‚तà¥à¤°à¤°à¥€à¤¤à¥à¤¯à¤¾, xinetd à¤šà¥à¤¯à¤¾ à¤¬à¤¾à¤¹à¥‡à¤° à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤ à¥‡à¤µà¤£à¥à¤¯à¤¾à¤šà¥€ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "swat à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "sxid à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "syslogd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ à¤•à¥à¤°à¥‰à¤¨ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤‚करीता SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "spamd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "telnet à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "tftpd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "transproxy à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "udev à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "uml à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "xinetd à¤²à¤¾ à¤…मरà¥à¤¯à¤¾à¤¦à¥€à¤¤à¤°à¥€à¤¤à¥à¤¯à¤¾ à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤ à¥‡à¤µà¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾, à¤µ à¤¤à¤¸à¥‡à¤š à¤¤à¥à¤¯à¤¾ à¤¸à¥‡à¤µà¤¾à¤¹à¥€ à¤œà¥€ à¤•à¥à¤·à¥‡à¤¤à¥à¤° "
+-#~ "सà¥à¤¥à¤¾à¤¨à¤¾à¤‚तर à¤ªà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤·à¤°à¥‚पी à¤¨à¤¿à¤¶à¥à¤šà¥€à¤¤ à¤¨à¤¾à¤¹à¥€ à¤¤à¥à¤¯à¤¾à¤‚नाही à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "rc à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ à¤²à¤¾ à¤…मरà¥à¤¯à¤¾à¤¦à¥€à¤¤à¤°à¥€à¤¤à¥à¤¯à¤¾ à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤ à¥‡à¤µà¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾, à¤µ à¤¤à¤¸à¥‡à¤š rc à¤¸à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿ à¤¦à¥à¤µà¤¾à¤°à¥‡ à¤¸à¥à¤°à¥à¤µà¤¾à¤¤ "
+-#~ "केलेले à¤•à¥à¤ à¤²à¥‡à¤¹à¥€ à¤¡à¥€à¤®à¤¨ à¤œà¥€ à¤•à¥à¤·à¥‡à¤¤à¥à¤° à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तर à¤ªà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤·à¤°à¥‚पी à¤¨à¤¿à¤¶à¥à¤šà¥€à¤¤ à¤¨à¤¾à¤¹à¥€ à¤¤à¥à¤¯à¤¾à¤‚नाही à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "rpm à¤²à¤¾ unconfined à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "अधिकार à¤…सेले à¤…पअनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤œà¤¸à¥‡ hotplug à¤µ insmod à¤²à¤¾ unconfined à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ "
+-#~ "परवानगी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "updfstab à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "uptimed à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "sysadm_r via su, sudo, à¤•à¤¿à¤‚वा userhelper à¤ªà¤°à¥à¤¯à¤‚त à¤ªà¥‹à¤¹à¤šà¤£à¥à¤¯à¤¾à¤¸ user_r à¤²à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी "
+-#~ "दà¥à¤¯à¤¾. à¤•à¤¿à¤‚वा, à¤«à¤•à¥à¤¤ staff_r à¤¹à¥‡ à¤•à¤°à¥‚ à¤¶à¤•à¤¤à¥‹"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "वापरकरà¥à¤¤à¥à¤¯à¤¾à¤‚ना mount à¤†à¤¦à¥‡à¤¶ à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "नियमीत à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤‚ना à¤ªà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤·à¤°à¥à¤ªà¥€ à¤®à¤¾à¤‰à¤¸ à¤ªà¥à¤°à¤µà¥‡à¤¶à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾ (फकà¥à¤¤ X à¤¸à¤°à¥à¤µà¤°à¤²à¤¾ "
+-#~ "परवानगी à¤¦à¥à¤¯à¤¾)"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "वापरकरà¥à¤¤à¥à¤¯à¤¾à¤‚ना dmesg à¤†à¤¦à¥‡à¤¶ à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "वापरकरà¥à¤¤à¥à¤¯à¤¾à¤‚ना à¤¸à¤‚जाळ à¤¸à¤‚वादपट à¤¨à¤¿à¤¯à¤‚तà¥à¤°à¥€à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾ (हà¥à¤¯à¤¾à¤šà¥€à¤¹à¥€ à¤—रज à¤…सते "
+-#~ "USERCTL=true)"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "साधारण à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¸ ping à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "r/w noextattrfile (FAT, CDROM, FLOPPY) à¤•à¤°à¥€à¤¤à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "usb à¤¸à¤¾à¤§à¤¨ rw à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤‚ना à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "TCP à¤¸à¤°à¥à¤µà¤° à¤•à¤¾à¤°à¥à¤¯à¤°à¤¤ à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤‚ना à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾ (पोरà¥à¤Ÿà¤¶à¥€ à¤¬à¤‚धनकारक à¤µ à¤†à¤¤à¥€à¤² "
+-#~ "कà¥à¤·à¥‡à¤¤à¥à¤°à¤¾à¤¤à¥‚न à¤µ à¤¬à¤¾à¤¹à¥‡à¤°à¥€à¤² à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤‚कडून à¤¸à¤‚परà¥à¤• à¤¸à¥à¤µà¥€à¤•à¤¾à¤°à¤¤à¥‹)  à¤¯à¤¾à¤²à¤¾ à¤…समरà¥à¤¥à¤¿à¤¤ à¤•à¥‡à¤²à¥à¤¯à¤¾à¤¸ FTP "
+-#~ "निषकà¥à¤°à¥€à¤¯ à¤®à¤¾à¤§à¥à¤¯à¤®à¤¾à¤¤ à¤œà¤¾à¤¤à¥‹ à¤µ à¤‡à¤¤à¤° à¤ªà¥à¤°à¥‹à¤Ÿà¥‹à¤•à¥‰à¤²à¤¹à¥€ à¤¬à¤¦à¤²à¥‚ à¤¶à¤•à¤¤à¤¾à¤¤"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "वापरकरà¥à¤¤à¥à¤¯à¤¾à¤²à¤¾ ttyfiles stat à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "uucpd à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "vmware à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "watchdog à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "winbind à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "xdm à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "xdm à¤¦à¤¾à¤–लनाला sysadm_r:sysadm_t à¤°à¥‚पी à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "xen à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "xen à¤²à¤¾ à¤¡à¥€à¤¸à¥à¤• à¤¡à¥à¤°à¤¾à¤‡à¤µà¥à¤¹ à¤¸à¤¾à¤§à¤¨ à¤µà¤¾à¤šà¤£à¥à¤¯à¤¾à¤¸/लिहीणà¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥à¤¯à¤¾"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "xfs à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "xen constrol à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ypbind à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "NIS à¤—à¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ypserv à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "NIS à¤¸à¤¥à¤¾à¤¨à¤¾à¤‚तर à¤¡à¥€à¤®à¤¨ à¤•à¤°à¥€à¤¤à¤¾ SELinux à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤…कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¸ à¤…धिकार à¤µà¤¿à¤¨à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤®à¥à¤–à¥à¤¯ à¤¸à¤‚चयीका à¤¨à¤¿à¤¯à¤‚तà¥à¤°à¤£ à¤•à¤°à¤£à¥à¤¯à¤¾à¤šà¥€ "
+-#~ "परवानगी à¤¦à¥à¤¯à¤¾"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¸ à¤…धिकार à¤µà¤¿à¤¨à¤¾ à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤®à¥à¤–à¥à¤¯ à¤¸à¤‚चयीका à¤µà¤¾à¤šà¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी "
+-#~ "दà¥à¤¯à¤¾"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ à¤¨à¤•à¥à¤•à¥€ %s '%s' à¤•à¤¾à¤¢à¥‚न à¤Ÿà¤¾à¤•à¤¾à¤¯à¤šà¥‡?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "%s à¤•à¤¾à¤¢à¥‚न à¤Ÿà¤¾à¤•à¤¾"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "%s à¤¸à¤®à¤¾à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "%s à¤¸à¤‚पादीत à¤•à¤°à¤¾"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "परवानगीक"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "जबरदसà¥à¤¤à¥€à¤°à¥€à¤¤à¥à¤¯à¤¾"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "करारचा à¤ªà¥à¤°à¤•à¤¾à¤° à¤¬à¤¦à¤²à¥à¤¯à¤¾à¤¸ à¤ªà¥à¤¢à¤šà¥à¤¯à¤¾ à¤¬à¥‚टला à¤ªà¥‚रà¥à¤ª à¤«à¤¾à¤‡à¤² à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤¸ à¤ªà¥à¤¨à¥à¤¹à¤¾ à¤²à¥‡à¤¬à¤² à¤•à¤°à¤£à¥à¤¯à¤¾à¤œà¥€ à¤—रज à¤ªà¤¡à¥‡à¤². "
+-#~ "फाइल à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤šà¥à¤¯à¤¾ à¤†à¤•à¤¾à¤°à¤¾à¤µà¤° à¤…वलंबून à¤ªà¥à¤¨à¥à¤¹à¤¾ à¤²à¥‡à¤¬à¤² à¤•à¤°à¤¾à¤¯à¤²à¤¾ à¤¬à¤°à¤¾à¤š à¤µà¥‡à¤³ à¤²à¤¾à¤—ू à¤¶à¤•à¤¤à¥‹.  à¤¤à¤°à¥€ à¤†à¤ªà¤²à¥à¤¯à¤¾ "
+-#~ "पà¥à¤¢à¥‡ à¤œà¤¾à¤¯à¤šà¥‡ à¤†à¤¹à¥‡ à¤•à¤¾?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "अकारà¥à¤¯à¤¨à¤µà¥€à¤¤ SELinux à¤µà¤° à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤‚तर à¤•à¤°à¤¤à¥‡à¤µà¥‡à¤³à¥€ à¤ªà¥à¤¨à¥à¤¹à¤¾ à¤¬à¥‚टची à¤—रज à¤ªà¤¡à¤¤à¥‡. à¤…से à¤•à¤°à¤£à¥‡ à¤¯à¥‹à¤—à¥à¤¯ à¤¨à¤¾à¤¹à¥€ à¤µ "
+-#~ "सà¥à¤šà¤µà¥€à¤²à¥‡à¤¹à¥€ à¤œà¤¾à¤¤ à¤¨à¤¾à¤¹à¥€.  à¤ªà¥à¤¢à¥‡ SELinux à¤µà¤¾à¤ªà¤°à¤£à¥à¤¯à¤¾à¤šà¤¾ à¤«à¥‡à¤°à¤µà¤¿à¤šà¤¾à¤° à¤•à¥‡à¤²à¥à¤¯à¤¾à¤¸, à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤¸ à¤ªà¥à¤¨à¥à¤¹à¤¾ à¤²à¥‡à¤¬à¤² "
+-#~ "करणà¥à¤¯à¤¾à¤šà¥€ à¤—रज à¤ªà¤¡à¥‡à¤².  SELinux à¤®à¥à¤³à¥‡ à¤†à¤ªà¤²à¥à¤¯à¤¾ à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤µà¤° à¤•à¤¾à¤¹à¥€ à¤…डचन à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤¹à¥‹à¤¤à¥‡ à¤•à¤¾, à¤¹à¥‡ "
+-#~ "अनà¥à¤­à¤µà¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ीक à¤®à¤¾à¤§à¥à¤¯à¤®à¤¾à¤¤ à¤œà¤¾à¤µà¥‡ à¤œà¥à¤¯à¤¾à¤¨à¥‡ à¤«à¤•à¥à¤¤ à¤¤à¥à¤°à¥‚टीची à¤²à¥‰à¤— à¤¤à¤¯à¤¾à¤° à¤¹à¥‹à¤ˆà¤² à¤µ SELinux "
+-#~ "करारचे à¤‰à¤²à¥à¤²à¤‚गन à¤¹à¥‹à¤£à¤¾à¤° à¤¨à¤¾à¤¹à¥€.  à¤ªà¤°à¤µà¤¾à¤¨à¤—ीक à¤®à¤¾à¤§à¥à¤¯à¤®à¤¾à¤²à¤¾ à¤ªà¥à¤¨à¥à¤¹à¤¾ à¤¬à¥‚ट à¤•à¤°à¤¾à¤¯à¤šà¥€ à¤—रज à¤ªà¤¡à¤¤ à¤¨à¤¾à¤¹à¥€    "
+-#~ "तरी à¤†à¤ªà¤²à¥à¤¯à¤¾à¤²à¤¾ à¤ªà¥à¤¢à¥‡ à¤œà¤¾à¤¯à¤šà¥‡ à¤†à¤¹à¥‡ à¤•à¤¾?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux à¤¸à¤®à¤°à¥à¤¥à¤¿à¤¤ à¤¬à¤¦à¤² à¤•à¥‡à¤²à¥à¤¯à¤¾à¤¸ à¤ªà¥à¤¢à¤šà¥à¤¯à¤¾ à¤¬à¥‚टला à¤ªà¥‚रà¥à¤ª à¤«à¤¾à¤‡à¤² à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤¸ à¤ªà¥à¤¨à¥à¤¹à¤¾ à¤²à¥‡à¤¬à¤² à¤•à¤°à¤£à¥à¤¯à¤¾à¤œà¥€ à¤—रज "
+-#~ "पडेल. à¤«à¤¾à¤‡à¤² à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤šà¥à¤¯à¤¾ à¤†à¤•à¤¾à¤°à¤¾à¤µà¤° à¤…वलंबून à¤ªà¥à¤¨à¥à¤¹à¤¾ à¤²à¥‡à¤¬à¤² à¤•à¤°à¤¾à¤¯à¤²à¤¾ à¤¬à¤°à¤¾à¤š à¤µà¥‡à¤³ à¤²à¤¾à¤—ू à¤¶à¤•à¤¤à¥‹.  à¤¤à¤°à¥€ "
+-#~ "आपलà¥à¤¯à¤¾ à¤ªà¥à¤¢à¥‡ à¤œà¤¾à¤¯à¤šà¥‡ à¤†à¤¹à¥‡ à¤•à¤¾?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "पà¥à¤°à¤¤à¤¿à¤•à¥ƒà¤¤à¥€ à¤…धिकार (c)2006 Red Hat, Inc.\n"
+-#~ "पà¥à¤°à¤¤à¤¿à¤•à¥ƒà¤¤à¥€ à¤…धिकार (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux à¤¦à¤¾à¤–लन à¤®à¥…पिंग à¤¸à¤®à¤¾à¤µà¤¿à¤·à¥à¤Ÿà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux à¤¸à¤‚जाळ à¤ªà¥‹à¤°à¥à¤Ÿ à¤¸à¤®à¤¾à¤µà¤¿à¤·à¥à¤Ÿà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux à¤ªà¥à¤°à¤•à¤¾à¤°"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "सà¥à¤¥à¤°"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "फाइल à¤—à¥à¤£à¤§à¤°à¥à¤®"
+-
+-#~ msgid "File Type"
+-#~ msgstr "फाइल à¤ªà¥à¤°à¤•à¤¾à¤°"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "सरà¥à¤µ à¤«à¤¾à¤‡à¤²\n"
+-#~ "नियमीत à¤«à¤¾à¤‡à¤²\n"
+-#~ "संचयीका\n"
+-#~ "अकà¥à¤·à¤°à¥€ à¤¸à¤¾à¤§à¤¨\n"
+-#~ "बà¥à¤²à¥‰à¤• à¤¸à¤¾à¤§à¤¨\n"
+-#~ "सॉकेट\n"
+-#~ "संकेतीक à¤²à¥€à¤‚क\n"
+-#~ "नामांकीत à¤ªà¤¾à¤‡à¤ª\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤¸à¤®à¤¾à¤µà¤¿à¤·à¥à¤Ÿà¥€à¤¤ à¤•à¤°à¤¾"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux à¤ªà¥à¤°à¤¶à¤¾à¤¸à¤¨"
+-
+-#~ msgid "Add"
+-#~ msgstr "समाविषà¥à¤Ÿ"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "गà¥à¤£à¤§à¤°à¥à¤® (_P)"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "काढून à¤Ÿà¤¾à¤•à¤¾ (_D)"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨ à¤µà¤¸à¥à¤¤à¥‚ à¤¨à¤¿à¤µà¤¡à¤¾"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>निवडा:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ à¤®à¥à¤²à¤­à¥‚त à¤œà¤¬à¤°à¤¨ à¤®à¤¾à¤§à¥à¤¯à¤®"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "सधà¥à¤¯à¤¾à¤šà¥‡ à¤œà¤¬à¤°à¤¨ à¤®à¤¾à¤§à¥à¤¯à¤®"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ à¤®à¥à¤²à¤­à¥‚त à¤•à¤°à¤¾à¤° à¤ªà¥à¤°à¤•à¤¾à¤°: "
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "पà¥à¤¢à¤šà¥à¤¯à¤¾ à¤¬à¥‚ट à¤ªà¤°à¥à¤¯à¤‚त à¤ªà¥‚रà¥à¤£ à¤«à¤¾à¤‡à¤² à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤¸ à¤ªà¥à¤¨à¤ƒ à¤²à¥‡à¤¬à¥‡à¤² à¤•à¤°à¤¾à¤¯à¤šà¥‡ à¤…सलà¥à¤¯à¤¾à¤¸ à¤¨à¤¿à¤µà¤¡à¤¾.  à¤ªà¥à¤°à¤£à¤¾à¤²à¥€à¤šà¥à¤¯à¤¾ "
+-#~ "आकारावरून, à¤ªà¥à¤¨à¤ƒ à¤²à¥‡à¤¬à¤²à¥€à¤—ला à¤¬à¤°à¤¾à¤š à¤µà¥‡à¤³ à¤²à¤¾à¤—ू à¤¶à¤•à¤¤à¥‹.  à¤•à¤°à¤¾à¤°à¤¾à¤šà¥‡ à¤ªà¥à¤°à¤•à¤¾à¤° à¤¬à¤¦à¤²à¤¤ à¤…सलà¥à¤¯à¤¾à¤¸ à¤•à¤¿à¤‚वा "
+-#~ "अकारà¥à¤¯à¤¨à¥à¤µà¥€à¤¤ à¤ªà¤¾à¤¸à¥‚न à¤œà¤¬à¤°à¤¨ à¤ªà¤°à¥à¤¯à¤‚त à¤œà¤¾à¤¤ à¤…सलà¥à¤¯à¤¾à¤¸, à¤ªà¥à¤¨à¤ƒ à¤²à¥‡à¤¬à¤²à¤šà¥€ à¤—रज à¤ªà¤¡à¥‡à¤²."
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "पà¥à¤¢à¤šà¥à¤¯à¤¾ à¤ªà¥à¤¨à¤ƒ à¤¬à¥‚टवेळी à¤²à¥‡à¤¬à¤² à¤•à¤°à¤¾."
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ à¤®à¥à¤²à¤­à¥‚त à¤•à¤°à¥€à¤¤à¤¾ à¤¬à¥‚लीयन à¤¸à¤‚योजना à¤ªà¥à¤¨à¥à¤¹à¤¾ à¤¸à¥à¤¥à¤¾à¤ªà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "इचà¥à¤›à¤¿à¤• à¤µ à¤¸à¤°à¥à¤µ à¤¬à¥‚लीयन à¤…ंतरà¥à¤—त à¤Ÿà¥‰à¤—ल à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "फिलà¥à¤Ÿà¤°"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "फाइल à¤¸à¤‚दरà¥à¤­ à¤¸à¤®à¤¾à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "फाइल à¤¸à¤‚दरà¥à¤­ à¤¸à¤‚पादीत à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "फाइल à¤¸à¤‚दरà¥à¤­ à¤•à¤¾à¤¢à¥‚न à¤Ÿà¤¾à¤•à¤¾"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "सरà¥à¤µ à¤µ à¤‡à¤šà¥à¤›à¤¿à¤• à¤«à¤¾à¤‡à¤² à¤¸à¤‚दरà¥à¤­ à¤…ंतरà¥à¤—त à¤Ÿà¥‰à¤—ल à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤®à¥…पिंग à¤¸à¤®à¤¾à¤µà¤¿à¤·à¥à¤Ÿà¥€à¤¤ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤®à¥…पिंग à¤¸à¤‚पादीत à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤®à¥…पिंग à¤•à¤¾à¤¢à¥‚न à¤Ÿà¤¾à¤•à¤¤ à¤†à¤¹à¥‡"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "भाषांतरन à¤¸à¤®à¤¾à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "भाषांतरन à¤¸à¤‚पादित à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "भाषांतरने à¤•à¤¾à¤¢à¥‚न à¤Ÿà¤¾à¤•à¤¾"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ à¤¸à¤‚पादीत à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "संजाळ à¤ªà¥‹à¤°à¥à¤Ÿ à¤¸à¤®à¤¾à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "संजाळ à¤ªà¥‹à¤°à¥à¤Ÿ à¤¸à¤‚पादित à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "संजाळ à¤ªà¥‹à¤°à¥à¤Ÿ à¤•à¤¾à¤¢à¥‚न à¤Ÿà¤¾à¤•à¤¾"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "इचà¥à¤›à¤¿à¤• à¤µ à¤¸à¤°à¥à¤µ à¤ªà¥‹à¤°à¥à¤Ÿ à¤…ंतरà¥à¤—त à¤Ÿà¥‰à¤—ल à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "नविन à¤•à¤°à¤¾à¤° à¤˜à¤Ÿà¤• à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "करार à¤˜à¤Ÿà¤• à¤¦à¤¾à¤–ल à¤•à¤°à¤¾"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "दाखलकरतायेणà¥à¤¯à¤¾à¤œà¥‹à¤—ी à¤•à¤°à¤¾à¤° à¤˜à¤Ÿà¤• à¤•à¤¾à¤¢à¥‚न à¤Ÿà¤¾à¤•à¤¾"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "अतिरीक à¤‘डीट à¤¨à¤¿à¤¯à¤® à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤/अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ à¤•à¤°à¤¾, à¤œà¥à¤¯à¤¾à¤šà¤¾ à¤…हवाल à¤¸à¤¾à¤§à¤¾à¤°à¤£à¤¤à¤ƒ à¤²à¥‰à¤— "
+-#~ "फाइलमधà¥à¤¯à¥‡ à¤¨à¤¸à¤¤à¥‹."
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "संवेदनशीलतेचा à¤¸à¥à¤¥à¤°"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux à¤µà¤¾à¤ªà¤°à¤•à¤°à¥à¤¤à¤¾ '%s' à¤œà¤°à¥‚री à¤†à¤¹à¥‡"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "मूलà¥à¤¯ à¤†à¤µà¤¶à¥à¤¯à¤•"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास/वापरकरà¥à¤¤à¥à¤¯à¤¾à¤¸ à¤•à¥à¤ à¤²à¥à¤¯à¤¾à¤¹à¥€ tcp à¤ªà¥‹à¤°à¥à¤Ÿ > 1024 à¤¶à¥€ à¤¬à¤‚धनकारक à¤¹à¥‹à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥‡à¤¤à¥‹"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "मरà¥à¤¯à¤¾à¤¦à¥€à¤¤ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास/वापरकरà¥à¤¤à¥à¤¯à¤¾à¤¸ à¤•à¥à¤ à¤²à¥à¤¯à¤¾à¤¹à¥€ tcp à¤ªà¥‹à¤°à¥à¤Ÿà¤¶à¥€ à¤¬à¤‚धनकारक à¤¹à¥‹à¤£à¥à¤¯à¤¾à¤¸ à¤ªà¤°à¤µà¤¾à¤¨à¤—ी à¤¦à¥‡à¤¤à¥‹"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "हà¥à¤¯à¤¾ à¤…नà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास à¤¬à¤‚धनकारक à¤•à¤°à¤£à¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ à¤¸à¥à¤µà¤²à¥à¤ªà¤µà¤¿à¤°à¤¾à¤® à¤µà¤¿à¤­à¤¾à¤œà¥€à¤¤ tcp à¤ªà¥‹à¤°à¥à¤Ÿ à¤šà¥€ à¤¯à¤¾à¤¦à¥€ "
+-#~ "पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ à¤•à¤°à¤¾. Example: 612, 650-660"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "SELinux à¤•à¤°à¤¾à¤° à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ à¤¡à¥à¤°à¥à¤¯à¥‚ईड"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "अनारकà¥à¤·à¥€à¤¤ à¤ªà¥‹à¤°à¥à¤Ÿ  (> 1024)"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— 0 à¤¸à¤¹ bindresvport à¤²à¤¾ à¤•à¤¾à¤°à¥à¤¯à¤¾à¤¸ à¤¹à¤¾à¤• à¤¦à¥‡à¤¤ à¤…सलà¥à¤¯à¤¾à¤¸ à¤¹à¤¾ à¤šà¥‡à¤•à¤¬à¤Ÿà¤¨ à¤µà¤¾à¤ªà¤°à¤¾."
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "जबरन\n"
+-#~ "परवानगीक\n"
+-#~ "अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤\n"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/ms.po b/policycoreutils/po/ms.po
+index 1491735..6a1eaa8 100644
+--- a/policycoreutils/po/ms.po
++++ b/policycoreutils/po/ms.po
+@@ -1,20 +1,21 @@
+ # SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
++# Translators:
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-07-27 23:11+0800\n"
+-"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n"
+-"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: LANGUAGE <LL@li.org>\n"
+ "Language: ms\n"
+ "MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=utf-8\n"
++"Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=1; plural=0\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -24,14 +25,14 @@ msgid ""
+ msgstr ""
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to initialize PAM\n"
+-msgstr "PAM: gagal untuk melepaskan pengesah."
++msgstr ""
+ #: ../run_init/run_init.c:139
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to get account information\n"
+-msgstr "Gagal menukar maklumat usia untuk %s: %s\n"
++msgstr ""
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+@@ -53,14 +54,14 @@ msgid "run_init: incorrect password for %s\n"
+ msgstr ""
+ #: ../run_init/run_init.c:309
+-#, fuzzy, c-format
++#, c-format
+ msgid "Could not open file %s\n"
+-msgstr "tidak dapat membuka fail tetapan `%s': %s"
++msgstr ""
+ #: ../run_init/run_init.c:336
+-#, fuzzy, c-format
++#, c-format
+ msgid "No context in file %s\n"
+-msgstr "akhir fail tidak dijangka dalam %s\n"
++msgstr ""
+ #: ../run_init/run_init.c:361
+ #, c-format
+@@ -68,21 +69,18 @@ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+ msgstr ""
+ #: ../run_init/run_init.c:380
+-#, fuzzy, c-format
++#, c-format
+ msgid "authentication failed.\n"
+-msgstr "Pengesahan gagal"
++msgstr ""
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, fuzzy, c-format
++#, c-format
+ msgid "Could not set exec context to %s.\n"
+-msgstr "Tidak dapat menetapkan konteks exec ke %s.\n"
++msgstr ""
+ #: ../audit2allow/audit2allow:230
+-#, fuzzy
+ msgid "******************** IMPORTANT ***********************\n"
+ msgstr ""
+-"\n"
+-"******************** PENTING ************************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+@@ -93,28 +91,24 @@ msgid "global"
+ msgstr ""
+ #: ../semanage/seobject.py:222
+-#, fuzzy
+ msgid "Could not create semanage handle"
+-msgstr "Tidak dapat menetapkan konteks default untuk %s untuk program %s.\n"
++msgstr ""
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+ msgstr ""
+ #: ../semanage/seobject.py:235
+-#, fuzzy
+ msgid "Cannot read policy store."
+-msgstr "gagal baca fail menu:%s"
++msgstr ""
+ #: ../semanage/seobject.py:240
+-#, fuzzy
+ msgid "Could not establish semanage connection"
+-msgstr "Tidak dapat menetapkan konteks default untuk %s untuk program %s.\n"
++msgstr ""
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Tidak dapat menetapkan konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -125,33 +119,30 @@ msgid "Semanage transaction already in progress"
+ msgstr ""
+ #: ../semanage/seobject.py:264
+-#, fuzzy
+ msgid "Could not start semanage transaction"
+-msgstr "Tidak dapat menetapkan konteks default untuk %s untuk program %s.\n"
++msgstr ""
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Tidak dapat menetapkan konteks default untuk %s untuk program %s.\n"
++msgstr ""
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+ msgstr ""
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Tidak dapat menyenaraikan pengguna SELinux"
++msgstr ""
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -161,9 +152,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Tidak dapat menambah konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -199,70 +190,69 @@ msgstr ""
+ #: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+ #: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+ #: ../semanage/seobject.py:2037
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create a key for %s"
+-msgstr "Tidak dapat mencipta konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr "Tidak dapat memeriksa jika konteks fail untuk %s telah dinyatakan"
++msgstr ""
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Partisyen Diminta Tidak Wujud"
++msgstr ""
+ #: ../semanage/seobject.py:497
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux User %s does not exist"
+-msgstr "Partisyen Diminta Tidak Wujud"
++msgstr ""
+ #: ../semanage/seobject.py:501
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr "Tidak dapat mencipta konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set name for %s"
+-msgstr "Tidak dapat menetapkan konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr "Tidak dapat menetapkan konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:514
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set SELinux user for %s"
+-msgstr "Tidak dapat menetapkan pengguna dalam konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:518
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "Tidak dapat menambah konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:536
+-#, fuzzy
+ msgid "Requires seuser or serange"
+-msgstr "Memerlukan setype, serange atau seuser"
++msgstr ""
+ #: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, fuzzy, python-format
++#, python-format
+ msgid "Login mapping for %s is not defined"
+-msgstr "Konteks fail %s tidak dinyatakan"
++msgstr ""
+ #: ../semanage/seobject.py:563
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query seuser for %s"
+-msgstr "Tidak dapat menyoal konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:577
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr "Tidak dapat mengubahsuai konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:611
+ #, python-format
+@@ -270,106 +260,108 @@ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+ msgstr ""
+ #: ../semanage/seobject.py:615
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr "Tidak dapat memadam konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+-#, fuzzy
+ msgid "Could not list login mappings"
+-msgstr "Tidak dapat menyenaraikan konteks fail"
++msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-#, fuzzy
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "Jenis SELinux diperlukan"
++msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+ #: ../semanage/seobject.py:860
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if SELinux user %s is defined"
+-msgstr "Tidak dapat memeriksa jika konteks fail untuk %s telah dinyatakan"
++msgstr ""
+ #: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+ #: ../semanage/seobject.py:866
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query user for %s"
+-msgstr "Tidak dapat menyoal konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Tidak dapat menambah konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:737
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create SELinux user for %s"
+-msgstr "Tidak dapat mencipta konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:746
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add role %s for %s"
+-msgstr "Tidak dapat menambah konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:755
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set MLS level for %s"
+-msgstr "Tidak dapat menetapkan konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:758
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr "Tidak dapat menambah konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:761
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not extract key for %s"
+-msgstr "Tidak dapat membuka %s untuk salinan: %s"
++msgstr ""
+ #: ../semanage/seobject.py:765
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add SELinux user %s"
+-msgstr "Pengguna %s tidak dapat dipadam: %s.\n"
++msgstr ""
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+ msgstr ""
+ #: ../semanage/seobject.py:789
+-#, fuzzy
+ msgid "Requires prefix or roles"
+-msgstr "Memerlukan setype, serange atau seuser"
++msgstr ""
+ #: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, fuzzy, python-format
++#, python-format
+ msgid "SELinux user %s is not defined"
+-msgstr "Jenis terminal `%s' tidak ditakrifkan."
++msgstr ""
+ #: ../semanage/seobject.py:828
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify SELinux user %s"
+-msgstr "Pengguna %s tidak dapat dipadam: %s.\n"
++msgstr ""
+ #: ../semanage/seobject.py:862
+-#, fuzzy, python-format
++#, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr "$file bukan milik \"$user\""
++msgstr ""
+ #: ../semanage/seobject.py:873
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete SELinux user %s"
+-msgstr "Pengguna %s tidak dapat dipadam: %s.\n"
++msgstr ""
+ #: ../semanage/seobject.py:911
+ msgid "Could not list SELinux users"
+@@ -401,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -413,9 +406,8 @@ msgid "Port is required"
+ msgstr "Port diperlukan"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "prefix tidak dikenali: %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -502,14 +494,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "Tidak dapat mengubah port %s/%s"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "Tidak dapat menyenaraikan port"
++msgstr ""
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Tidak dapat memadam port %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -533,14 +524,13 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Port diperlukan"
++msgstr ""
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+@@ -561,14 +551,14 @@ msgstr "Tidak dapat mencipta kekunci untuk %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Tidak dapat memeriksa sama ada port %s/%s telah dinyatakan"
++msgstr ""
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Tidak dapat mencipta konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -577,74 +567,72 @@ msgid "Could not create context for %s"
+ msgstr "Tidak dapat mencipta konteks untuk %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Tidak dapat menetapkan konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Tidak dapat menetapkan pengguna dalam konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Tidak dapat menetapkan tugas dalam konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Tidak dapat menetapkan jenis dalam konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Tidak dapat menetapkan medan mls dalam konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Tidak dapat menetapkan konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Tidak dapat menambah port %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Port %s/%s tidak dinyatakan"
++msgstr ""
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Tidak dapat menyoal port %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Tidak dapat mengubah port %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Port %s/%s dinyatakan dalam polisi, tidak boleh dipadam"
++msgstr ""
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Tidak dapat memadam antaramuka %s"
++msgstr ""
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Tidak dapat memadam konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Tidak dapat menyenaraikan port"
++msgstr ""
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -718,9 +706,8 @@ msgid "Could not delete interface %s"
+ msgstr "Tidak dapat memadam antaramuka %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Tidak dapat memadam antaramuka %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -735,9 +722,9 @@ msgid "Context"
+ msgstr ""
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Konteks fail %s telah dinyatakan"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -745,9 +732,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Partisyen Diminta Tidak Wujud"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -826,14 +813,13 @@ msgid "Could not modify file context for %s"
+ msgstr "Tidak dapat mengubahsuai konteks fail untuk %s"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Tidak dapat menyenaraikan konteks fail"
++msgstr ""
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Tidak dapat memadam konteks fail untuk %s"
++msgstr ""
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -890,14 +876,14 @@ msgid "Could not query file context %s"
+ msgstr "Tidak dapat menyoal fail konteks %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Anda mesti nyatakan peranti."
++msgstr ""
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Tidak dapat memadam boolean %s"
++msgstr ""
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -947,14 +933,15 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+ #: ../newrole/newrole.c:201
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to set PAM_TTY\n"
+-msgstr "PAM: gagal untuk melepaskan pengesah."
++msgstr ""
+ #: ../newrole/newrole.c:290
+ #, c-format
+@@ -972,19 +959,19 @@ msgid "cannot find valid entry in the passwd file.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:450
+-#, fuzzy, c-format
++#, c-format
+ msgid "Out of memory!\n"
+-msgstr "Memori tidak cukup."
++msgstr ""
+ #: ../newrole/newrole.c:455
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr "Ralat - nama kumpulan volum %s adalah tidak sah."
++msgstr ""
+ #: ../newrole/newrole.c:512
+-#, fuzzy, c-format
++#, c-format
+ msgid "Unable to clear environment\n"
+-msgstr "RALAT: Tidak boleh menginitialisasikan persekitaran grafikal."
++msgstr ""
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+@@ -1002,14 +989,14 @@ msgid "Error connecting to audit system.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:641
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error allocating memory.\n"
+-msgstr "Ralat membaca maklumat memori sistem:"
++msgstr ""
+ #: ../newrole/newrole.c:648
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error sending audit message.\n"
+-msgstr "Terdapat ralat RPM.  Mesejnya ialah:\n"
++msgstr ""
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+@@ -1017,9 +1004,9 @@ msgid "Could not determine enforcing mode.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:699
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr "Tidak Dapat Membuka Pakej"
++msgstr ""
+ #: ../newrole/newrole.c:705
+ #, c-format
+@@ -1032,29 +1019,29 @@ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:725
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr "Tidak dapat menetapkan konteks fail untuk %s"
++msgstr ""
+ #: ../newrole/newrole.c:772
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s changed labels.\n"
+-msgstr "Label Berulang"
++msgstr ""
+ #: ../newrole/newrole.c:778
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr "Tidak dapat menyoal konteks fail untuk %s"
++msgstr ""
+ #: ../newrole/newrole.c:835
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error: multiple roles specified\n"
+-msgstr "banyak opsyen -l or -t dinyatakan"
++msgstr ""
+ #: ../newrole/newrole.c:843
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error: multiple types specified\n"
+-msgstr "banyak opsyen -l or -t dinyatakan"
++msgstr ""
+ #: ../newrole/newrole.c:850
+ #, c-format
+@@ -1062,9 +1049,9 @@ msgid "Sorry, -l may be used with SELinux MLS support.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:855
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error: multiple levels specified\n"
+-msgstr "banyak opsyen -l or -t dinyatakan"
++msgstr ""
+ #: ../newrole/newrole.c:865
+ #, c-format
+@@ -1072,26 +1059,24 @@ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+ msgstr ""
+ #: ../newrole/newrole.c:891
+-#, fuzzy, c-format
++#, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr "tidak dapat menetapkan konteks keselamatan bagi `%s': %s"
++msgstr ""
+ #: ../newrole/newrole.c:901
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to get new context.\n"
+ msgstr ""
+-"Gagal menghantar konteks alchemist: \n"
+-"%s"
+ #: ../newrole/newrole.c:908
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to set new role %s\n"
+-msgstr "Gagal menyimpan direktori baru dalam %s"
++msgstr ""
+ #: ../newrole/newrole.c:915
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to set new type %s\n"
+-msgstr "Gagal menyimpan direktori baru dalam %s"
++msgstr ""
+ #: ../newrole/newrole.c:925
+ #, c-format
+@@ -1099,9 +1084,9 @@ msgid "failed to build new range with level %s\n"
+ msgstr ""
+ #: ../newrole/newrole.c:930
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to set new range %s\n"
+-msgstr "Gagal menyimpan direktori baru dalam %s"
++msgstr ""
+ #: ../newrole/newrole.c:938
+ #, c-format
+@@ -1109,9 +1094,9 @@ msgid "failed to convert new context to string\n"
+ msgstr ""
+ #: ../newrole/newrole.c:943
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s is not a valid context\n"
+-msgstr "%s adalah nama hos yang tidak sah"
++msgstr ""
+ #: ../newrole/newrole.c:950
+ #, c-format
+@@ -1124,9 +1109,9 @@ msgid "Unable to obtain empty signal set\n"
+ msgstr ""
+ #: ../newrole/newrole.c:984
+-#, fuzzy, c-format
++#, c-format
+ msgid "Unable to set SIGHUP handler\n"
+-msgstr "%s: tidak dapat menetapkan lengahan kegagalan: %s\n"
++msgstr ""
+ #: ../newrole/newrole.c:1053
+ #, c-format
+@@ -1134,16 +1119,14 @@ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:1070
+-#, fuzzy, c-format
++#, c-format
+ msgid "failed to get old_context.\n"
+ msgstr ""
+-"Gagal menghantar konteks alchemist: \n"
+-"%s"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Tidak dapat menyoal konteks fail untuk %s"
++msgstr ""
+ #: ../newrole/newrole.c:1098
+ #, c-format
+@@ -1151,14 +1134,14 @@ msgid "error on reading PAM service configuration.\n"
+ msgstr ""
+ #: ../newrole/newrole.c:1133
+-#, fuzzy, c-format
++#, c-format
+ msgid "newrole: incorrect password for %s\n"
+-msgstr "Sila tetapkan katalaluan bagi %s."
++msgstr ""
+ #: ../newrole/newrole.c:1160
+-#, fuzzy, c-format
++#, c-format
+ msgid "newrole: failure forking: %s"
+-msgstr "Kegagalan rangkaian hos %1"
++msgstr ""
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+@@ -1166,34 +1149,33 @@ msgid "Unable to restore tty label...\n"
+ msgstr ""
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, fuzzy, c-format
++#, c-format
+ msgid "Failed to close tty properly\n"
+-msgstr "Gagal menyimpan direktori baru dalam %s"
++msgstr ""
+ #: ../newrole/newrole.c:1224
+-#, fuzzy, c-format
++#, c-format
+ msgid "Could not close descriptors.\n"
+-msgstr "Tidak dapat memperuntukkan partisyen"
++msgstr ""
+ #: ../newrole/newrole.c:1251
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error allocating shell's argv0.\n"
+-msgstr "Ralat membaca maklumat memori sistem:"
++msgstr ""
+ #: ../newrole/newrole.c:1287
+-#, fuzzy, c-format
++#, c-format
+ msgid "Unable to restore the environment, aborting\n"
+-msgstr "tidak dapat mengambil pakej asal, batal"
++msgstr ""
+ #: ../newrole/newrole.c:1298
+-#, fuzzy
+ msgid "failed to exec shell\n"
+-msgstr "Gagal untuk melekapkan partisyen."
++msgstr ""
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "penggunaan: %s [pilihan]"
++msgstr ""
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+@@ -1201,19 +1183,18 @@ msgid "%s:  Policy is already loaded and initial load requested\n"
+ msgstr ""
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "Tentutetap Polisi SELinux"
++msgstr ""
+ #: ../load_policy/load_policy.c:90
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr "Tentutetap Polisi SELinux"
++msgstr ""
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+-#, fuzzy
+ msgid "Requires at least one category"
+-msgstr "Peranti RAID jenis  %s memerlukan sekurang-kurangnya %s ahli."
++msgstr ""
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+@@ -1221,63 +1202,62 @@ msgid "Can not modify sensitivity levels using '+' on %s"
+ msgstr ""
+ #: ../scripts/chcat:110
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s is already in %s"
+-msgstr "gid %s telah digunakan."
++msgstr ""
+ #: ../scripts/chcat:188 ../scripts/chcat:198
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s is not in %s"
+-msgstr "%s tidak dilaksanakan.\n"
++msgstr ""
+ #: ../scripts/chcat:267 ../scripts/chcat:272
+ msgid "Can not combine +/- with other types of categories"
+ msgstr ""
+ #: ../scripts/chcat:319
+-#, fuzzy
+ msgid "Can not have multiple sensitivities"
+-msgstr "Profil \"%s\" tidak dapat dipadam!"
++msgstr ""
+ #: ../scripts/chcat:325
+-#, fuzzy, c-format
++#, c-format
+ msgid "Usage %s CATEGORY File ..."
+-msgstr "Penggunaan: %s [PILIHAN]... FAIL\n"
++msgstr ""
+ #: ../scripts/chcat:326
+-#, fuzzy, c-format
++#, c-format
+ msgid "Usage %s -l CATEGORY user ..."
+-msgstr "Nama Pengguna Teruk"
++msgstr ""
+ #: ../scripts/chcat:327
+-#, fuzzy, c-format
++#, c-format
+ msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr "Penggunaan: %s [PILIHAN]... FAIL\n"
++msgstr ""
+ #: ../scripts/chcat:328
+-#, fuzzy, c-format
++#, c-format
+ msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr "Nama Pengguna Teruk"
++msgstr ""
+ #: ../scripts/chcat:329
+-#, fuzzy, c-format
++#, c-format
+ msgid "Usage %s -d File ..."
+-msgstr "Penggunaan: %s [PILIHAN]... FAIL\n"
++msgstr ""
+ #: ../scripts/chcat:330
+-#, fuzzy, c-format
++#, c-format
+ msgid "Usage %s -l -d user ..."
+-msgstr "Edit Pengguna"
++msgstr ""
+ #: ../scripts/chcat:331
+-#, fuzzy, c-format
++#, c-format
+ msgid "Usage %s -L"
+-msgstr "Penggunaan: %s"
++msgstr ""
+ #: ../scripts/chcat:332
+-#, fuzzy, c-format
++#, c-format
+ msgid "Usage %s -L -l user"
+-msgstr "Edit Pengguna"
++msgstr ""
+ #: ../scripts/chcat:333
+ msgid "Use -- to end option list.  For example"
+@@ -1291,158 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, fuzzy, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+-msgstr "Ralat Pilihan: %s"
++msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Nama Perkongsian tidak boleh mengandungi ruang"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "_Aras RAID:"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#, fuzzy
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "Simpan masih dalam process"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#, fuzzy
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s: %s: bukan dalam format a.out\n"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Tiada 'Mountpoints' dikenalpasti"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#, fuzzy
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "Pengguna %s tidak dapat dipadam: %s.\n"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "$file bukan milik \"$user\""
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Port diperlukan"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Port %s/%s telah ditakrif"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Antaramuka %s telah ditakrif"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "ralat menetapkan sifat terminal"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "ralat menetapkan sifat terminal"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "ralat menetapkan sifat terminal"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Amaran: Cap dikunci"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr "Jenis SELinux diperlukan"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Jenis SELinux diperlukan"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Terdapat ralat RPM.  Mesejnya ialah:\n"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Anda mesti nyatakan peranti."
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name"
+-#~ msgstr "Anda mesti nyatakan peranti."
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Anda mesti nyatakan peranti."
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "Antaramuka %s tidak dinyatakan"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#, fuzzy
+-#~ msgid "File Contexts file"
+-#~ msgstr "Konteks fail %s tidak dinyatakan"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "Jenis terminal `%s' tidak ditakrifkan."
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Compatibility"
+-#~ msgstr "Menghimpun polisi"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#, fuzzy
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Pengesahan gagal"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Type"
+-#~ msgstr "Jenis SELinux diperlukan"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Pengguna %s tidak dapat dipadam: %s.\n"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Pengguna %s tidak dapat dipadam: %s.\n"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Pengguna %s tidak dapat dipadam: %s.\n"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Pengguna %s tidak dapat dipadam: %s.\n"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Load policy module"
+-#~ msgstr "gagal baca fail menu:%s"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "Jenis SELinux diperlukan"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Memerlukan nilai"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "64 MB atau lebih"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#, fuzzy
+-#~ msgid "%s not defined"
+-#~ msgstr "tidak ditakrif"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "$0: konfigurasi bagi ${1} tidak dijumpai."
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#, fuzzy
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Nilai tidak sah"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Ralat Pilihan: %s"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/my.po b/policycoreutils/po/my.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/my.po
++++ b/policycoreutils/po/my.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/nb.po b/policycoreutils/po/nb.po
+index d206584..8b79fbc 100644
+--- a/policycoreutils/po/nb.po
++++ b/policycoreutils/po/nb.po
+@@ -1,20 +1,21 @@
+-# Norwegian bokmÃ¥l translation of policycoreutils.
+-# Copyright (C) 2006 Red Hat, Inc.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Kjartan Maraas <kmaraas@gnome.org>, 2006, 2007.
+ #
++# Translators:
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-10-04 15:01+0200\n"
+-"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
+-"Language-Team: Norwegian bokmal <i18n-nb@lister.ping.uio.no>\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Norwegian BokmÃ¥l <i18n-nb@lister.ping.uio.no>\n"
++"Language: nb\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -137,13 +138,13 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Versjon"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr ""
++msgstr "SlÃ¥tt av"
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -269,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -387,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -517,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -595,9 +602,9 @@ msgid "Could not add addr %s"
+ msgstr ""
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "%s er ikke i %s"
++msgstr ""
+ #: ../semanage/seobject.py:1326
+ #, python-format
+@@ -869,9 +876,9 @@ msgid "Could not query file context %s"
+ msgstr ""
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Du mÃ¥ oppgi et navn"
++msgstr ""
+ #: ../semanage/seobject.py:2004
+ #, python-format
+@@ -926,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -983,7 +991,7 @@ msgstr ""
+ #: ../newrole/newrole.c:641
+ #, c-format
+ msgid "Error allocating memory.\n"
+-msgstr ""
++msgstr "Feil under allokering av minne.\n"
+ #: ../newrole/newrole.c:648
+ #, c-format
+@@ -998,7 +1006,7 @@ msgstr ""
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr ""
++msgstr "Feil:  Klarte ikke Ã¥ Ã¥pne %s.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+@@ -1165,9 +1173,9 @@ msgid "failed to exec shell\n"
+ msgstr ""
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "bruk:   %s [-q]\n"
++msgstr "bruk:   %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+@@ -1239,7 +1247,7 @@ msgstr "Bruk %s -d fil ..."
+ #: ../scripts/chcat:330
+ #, c-format
+ msgid "Usage %s -l -d user ..."
+-msgstr ""
++msgstr "Bruk %s -l -d bruker ..."
+ #: ../scripts/chcat:331
+ #, c-format
+@@ -1263,133 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "%s er allerede i %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "translator-credits"
+-#~ msgstr "Kjartan Maraas <kmaraas@gnome.org>"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Programmer</b>"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Brukere</b>"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#, fuzzy
+-#~ msgid "User Role"
+-#~ msgstr "Rolle"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Brukere</b>"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "Navn"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "Velg porter"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP-porter</b>"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Role"
+-#~ msgstr "Rolle"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Application"
+-#~ msgstr "Program"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Du mÃ¥ oppgi et navn"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "Du mÃ¥ oppgi et navn"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Configue SELinux"
+-#~ msgstr "Konfigurer SELinux"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "Protokoll"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "Port"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "Admin"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "Minnebeskyttelse"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Montering"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Nettverkskonfigurasjon"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Databaser"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "X-tjener"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "Kompatibilitet"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD-tjeneste"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Spam Protection"
+-#~ msgstr "Minnebeskyttelse"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "You must be root to run %s."
+-#~ msgstr "Du mÃ¥ være root for Ã¥ kjøre %s."
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Other"
+-#~ msgstr "Annet"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Files and Directories"
+-#~ msgstr "Filer og kataloger"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "FTP"
+-#~ msgstr "FTP"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Zebra"
+-#~ msgstr "Zebra"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/nds.po b/policycoreutils/po/nds.po
+new file mode 100644
+index 0000000..7f0e110
+--- /dev/null
++++ b/policycoreutils/po/nds.po
+@@ -0,0 +1,3375 @@
++# translation of policycoreutils.HEAD.po to
++# translation of policycoreutils.HEAD.nds.po to
++# Low German translation of policycoreutils.
++# Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
++#
++#
++# Nils-Christoph Fiedler <ncfiedler@fedoraproject.org>, 2010.
++msgid ""
++msgstr ""
++"Project-Id-Version: policycoreutils.HEAD.nds\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2010-12-05 15:46+0100\n"
++"Last-Translator: Nils-Christoph Fiedler <ncfiedler@gnome.org>\n"
++"Language-Team: Fedora Low German <nds-lowgerman@lists.sourceforge.net>\n"
++"Language: nds\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++"X-Poedit-Language: Low German\n"
++"X-Generator: KBabel 1.11.4\n"
++
++#: ../run_init/run_init.c:67
++msgid ""
++"USAGE: run_init <script> <args ...>\n"
++"  where: <script> is the name of the init script to run,\n"
++"         <args ...> are the arguments to that script."
++msgstr ""
++
++#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
++#, c-format
++msgid "failed to initialize PAM\n"
++msgstr ""
++
++#: ../run_init/run_init.c:139
++#, c-format
++msgid "failed to get account information\n"
++msgstr ""
++
++#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
++msgid "Password:"
++msgstr ""
++
++#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
++#, c-format
++msgid "Cannot find your entry in the shadow passwd file.\n"
++msgstr ""
++
++#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
++#, c-format
++msgid "getpass cannot open /dev/tty\n"
++msgstr ""
++
++#: ../run_init/run_init.c:275
++#, c-format
++msgid "run_init: incorrect password for %s\n"
++msgstr ""
++
++#: ../run_init/run_init.c:309
++#, c-format
++msgid "Could not open file %s\n"
++msgstr ""
++
++#: ../run_init/run_init.c:336
++#, c-format
++msgid "No context in file %s\n"
++msgstr ""
++
++#: ../run_init/run_init.c:361
++#, c-format
++msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
++msgstr ""
++
++#: ../run_init/run_init.c:380
++#, c-format
++msgid "authentication failed.\n"
++msgstr ""
++
++#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
++#, c-format
++msgid "Could not set exec context to %s.\n"
++msgstr ""
++
++#: ../audit2allow/audit2allow:230
++msgid "******************** IMPORTANT ***********************\n"
++msgstr ""
++
++#: ../audit2allow/audit2allow:231
++msgid "To make this policy package active, execute:"
++msgstr ""
++
++#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
++msgid "global"
++msgstr ""
++
++#: ../semanage/seobject.py:222
++msgid "Could not create semanage handle"
++msgstr ""
++
++#: ../semanage/seobject.py:230
++msgid "SELinux policy is not managed or store cannot be accessed."
++msgstr ""
++
++#: ../semanage/seobject.py:235
++msgid "Cannot read policy store."
++msgstr ""
++
++#: ../semanage/seobject.py:240
++msgid "Could not establish semanage connection"
++msgstr ""
++
++#: ../semanage/seobject.py:245
++msgid "Could not test MLS enabled status"
++msgstr ""
++
++#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
++msgid "Not yet implemented"
++msgstr ""
++
++#: ../semanage/seobject.py:255
++msgid "Semanage transaction already in progress"
++msgstr ""
++
++#: ../semanage/seobject.py:264
++msgid "Could not start semanage transaction"
++msgstr ""
++
++#: ../semanage/seobject.py:274
++msgid "Could not commit semanage transaction"
++msgstr ""
++
++#: ../semanage/seobject.py:279
++msgid "Semanage transaction not in progress"
++msgstr ""
++
++#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
++msgid "Could not list SELinux modules"
++msgstr ""
++
++#: ../semanage/seobject.py:304
++msgid "Modules Name"
++msgstr ""
++
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
++msgid "Version"
++msgstr ""
++
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
++msgid "Disabled"
++msgstr ""
++
++#: ../semanage/seobject.py:322
++#, python-format
++msgid "Could not disable module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:333
++#, python-format
++msgid "Could not enable module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:348
++#, python-format
++msgid "Could not remove module %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:358
++msgid "dontaudit requires either 'on' or 'off'"
++msgstr ""
++
++#: ../semanage/seobject.py:387
++msgid "Builtin Permissive Types"
++msgstr ""
++
++#: ../semanage/seobject.py:397
++msgid "Customized Permissive Types"
++msgstr ""
++
++#: ../semanage/seobject.py:438
++#, python-format
++msgid "Could not set permissive domain %s (module installation failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:444
++#, python-format
++msgid "Could not remove permissive domain %s (remove failed)"
++msgstr ""
++
++#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
++#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
++#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
++#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
++#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
++#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
++#: ../semanage/seobject.py:2037
++#, python-format
++msgid "Could not create a key for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
++#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
++#, python-format
++msgid "Could not check if login mapping for %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:492
++#, python-format
++msgid "Linux Group %s does not exist"
++msgstr ""
++
++#: ../semanage/seobject.py:497
++#, python-format
++msgid "Linux User %s does not exist"
++msgstr ""
++
++#: ../semanage/seobject.py:501
++#, python-format
++msgid "Could not create login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
++#, python-format
++msgid "Could not set name for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
++#, python-format
++msgid "Could not set MLS range for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:514
++#, python-format
++msgid "Could not set SELinux user for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:518
++#, python-format
++msgid "Could not add login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:536
++msgid "Requires seuser or serange"
++msgstr ""
++
++#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
++#, python-format
++msgid "Login mapping for %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:563
++#, python-format
++msgid "Could not query seuser for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:577
++#, python-format
++msgid "Could not modify login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:611
++#, python-format
++msgid "Login mapping for %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:615
++#, python-format
++msgid "Could not delete login mapping for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
++#: ../semanage/seobject.py:893
++msgid "Could not list login mappings"
++msgstr ""
++
++#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
++msgid "Login Name"
++msgstr ""
++
++#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
++msgid "SELinux User"
++msgstr ""
++
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
++msgid "MLS/MCS Range"
++msgstr ""
++
++#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
++#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
++#: ../semanage/seobject.py:860
++#, python-format
++msgid "Could not check if SELinux user %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
++#: ../semanage/seobject.py:866
++#, python-format
++msgid "Could not query user for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:722
++#, python-format
++msgid "You must add at least one role for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:737
++#, python-format
++msgid "Could not create SELinux user for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:746
++#, python-format
++msgid "Could not add role %s for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:755
++#, python-format
++msgid "Could not set MLS level for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:758
++#, python-format
++msgid "Could not add prefix %s for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:761
++#, python-format
++msgid "Could not extract key for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:765
++#, python-format
++msgid "Could not add SELinux user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:787
++msgid "Requires prefix, roles, level or range"
++msgstr ""
++
++#: ../semanage/seobject.py:789
++msgid "Requires prefix or roles"
++msgstr ""
++
++#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
++#, python-format
++msgid "SELinux user %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:828
++#, python-format
++msgid "Could not modify SELinux user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:862
++#, python-format
++msgid "SELinux user %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:873
++#, python-format
++msgid "Could not delete SELinux user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:911
++msgid "Could not list SELinux users"
++msgstr ""
++
++#: ../semanage/seobject.py:917
++#, python-format
++msgid "Could not list roles for user %s"
++msgstr ""
++
++#: ../semanage/seobject.py:942
++msgid "Labeling"
++msgstr ""
++
++#: ../semanage/seobject.py:942
++msgid "MLS/"
++msgstr ""
++
++#: ../semanage/seobject.py:943
++msgid "Prefix"
++msgstr ""
++
++#: ../semanage/seobject.py:943
++msgid "MCS Level"
++msgstr ""
++
++#: ../semanage/seobject.py:943
++msgid "MCS Range"
++msgstr ""
++
++#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
++msgid "SELinux Roles"
++msgstr ""
++
++#: ../semanage/seobject.py:963
++msgid "Protocol udp or tcp is required"
++msgstr ""
++
++#: ../semanage/seobject.py:965
++msgid "Port is required"
++msgstr ""
++
++#: ../semanage/seobject.py:975
++msgid "Invalid Port"
++msgstr ""
++
++#: ../semanage/seobject.py:979
++#, python-format
++msgid "Could not create a key for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:990
++msgid "Type is required"
++msgstr ""
++
++#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
++#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
++#, python-format
++msgid "Could not check if port %s/%s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:998
++#, python-format
++msgid "Port %s/%s already defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1002
++#, python-format
++msgid "Could not create port for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1008
++#, python-format
++msgid "Could not create context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1012
++#, python-format
++msgid "Could not set user in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1016
++#, python-format
++msgid "Could not set role in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1020
++#, python-format
++msgid "Could not set type in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1025
++#, python-format
++msgid "Could not set mls fields in port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1029
++#, python-format
++msgid "Could not set port context for %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1033
++#, python-format
++msgid "Could not add port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
++#: ../semanage/seobject.py:1508
++msgid "Requires setype or serange"
++msgstr ""
++
++#: ../semanage/seobject.py:1049
++msgid "Requires setype"
++msgstr ""
++
++#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
++#, python-format
++msgid "Port %s/%s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1061
++#, python-format
++msgid "Could not query port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1072
++#, python-format
++msgid "Could not modify port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1085
++msgid "Could not list the ports"
++msgstr ""
++
++#: ../semanage/seobject.py:1101
++#, python-format
++msgid "Could not delete the port %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1118
++#, python-format
++msgid "Port %s/%s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1122
++#, python-format
++msgid "Could not delete port %s/%s"
++msgstr ""
++
++#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
++msgid "Could not list ports"
++msgstr ""
++
++#: ../semanage/seobject.py:1199
++msgid "SELinux Port Type"
++msgstr ""
++
++#: ../semanage/seobject.py:1199
++msgid "Proto"
++msgstr ""
++
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
++msgid "Port Number"
++msgstr ""
++
++#: ../semanage/seobject.py:1218
++msgid "Node Address is required"
++msgstr ""
++
++#: ../semanage/seobject.py:1233
++msgid "Unknown or missing protocol"
++msgstr ""
++
++#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
++#: ../semanage/seobject.py:1724
++msgid "SELinux Type is required"
++msgstr ""
++
++#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
++#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
++#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
++#: ../semanage/seobject.py:1728
++#, python-format
++msgid "Could not create key for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
++#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
++#, python-format
++msgid "Could not check if addr %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1262
++#, python-format
++msgid "Could not create addr for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
++#: ../semanage/seobject.py:1686
++#, python-format
++msgid "Could not create context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1272
++#, python-format
++msgid "Could not set mask for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1276
++#, python-format
++msgid "Could not set user in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1280
++#, python-format
++msgid "Could not set role in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1284
++#, python-format
++msgid "Could not set type in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1289
++#, python-format
++msgid "Could not set mls fields in addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1293
++#, python-format
++msgid "Could not set addr context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1297
++#, python-format
++msgid "Could not add addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
++#, python-format
++msgid "Addr %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1326
++#, python-format
++msgid "Could not query addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1336
++#, python-format
++msgid "Could not modify addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1364
++#, python-format
++msgid "Addr %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1368
++#, python-format
++msgid "Could not delete addr %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1380
++msgid "Could not deleteall node mappings"
++msgstr ""
++
++#: ../semanage/seobject.py:1394
++msgid "Could not list addrs"
++msgstr ""
++
++#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
++#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
++#, python-format
++msgid "Could not check if interface %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1461
++#, python-format
++msgid "Could not create interface for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1470
++#, python-format
++msgid "Could not set user in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1474
++#, python-format
++msgid "Could not set role in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1478
++#, python-format
++msgid "Could not set type in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1483
++#, python-format
++msgid "Could not set mls fields in interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1487
++#, python-format
++msgid "Could not set interface context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1491
++#, python-format
++msgid "Could not set message context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1495
++#, python-format
++msgid "Could not add interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
++#, python-format
++msgid "Interface %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1522
++#, python-format
++msgid "Could not query interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1533
++#, python-format
++msgid "Could not modify interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1558
++#, python-format
++msgid "Interface %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1562
++#, python-format
++msgid "Could not delete interface %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1574
++msgid "Could not delete all interface  mappings"
++msgstr ""
++
++#: ../semanage/seobject.py:1588
++msgid "Could not list interfaces"
++msgstr ""
++
++#: ../semanage/seobject.py:1613
++msgid "SELinux Interface"
++msgstr ""
++
++#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
++msgid "Context"
++msgstr ""
++
++#: ../semanage/seobject.py:1663
++#, python-format
++msgid "Equivalence class for %s already exists"
++msgstr ""
++
++#: ../semanage/seobject.py:1669
++#, python-format
++msgid "File spec %s conflicts with equivalency rule '%s %s'"
++msgstr ""
++
++#: ../semanage/seobject.py:1678
++#, python-format
++msgid "Equivalence class for %s does not exists"
++msgstr ""
++
++#: ../semanage/seobject.py:1692
++#, python-format
++msgid "Could not set user in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1696
++#, python-format
++msgid "Could not set role in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
++#, python-format
++msgid "Could not set mls fields in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1707
++msgid "Invalid file specification"
++msgstr ""
++
++#: ../semanage/seobject.py:1709
++msgid "File specification can not include spaces"
++msgstr ""
++
++#: ../semanage/seobject.py:1714
++#, python-format
++msgid ""
++"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
++msgstr ""
++
++#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
++#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
++#: ../semanage/seobject.py:1876
++#, python-format
++msgid "Could not check if file context for %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1745
++#, python-format
++msgid "Could not create file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1753
++#, python-format
++msgid "Could not set type in file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
++#: ../semanage/seobject.py:1822
++#, python-format
++msgid "Could not set file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1767
++#, python-format
++msgid "Could not add file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1781
++msgid "Requires setype, serange or seuser"
++msgstr ""
++
++#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
++#, python-format
++msgid "File context for %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1800
++#, python-format
++msgid "Could not query file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1826
++#, python-format
++msgid "Could not modify file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1839
++msgid "Could not list the file contexts"
++msgstr ""
++
++#: ../semanage/seobject.py:1853
++#, python-format
++msgid "Could not delete the file context %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1878
++#, python-format
++msgid "File context for %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:1884
++#, python-format
++msgid "Could not delete file context for %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1899
++msgid "Could not list file contexts"
++msgstr ""
++
++#: ../semanage/seobject.py:1903
++msgid "Could not list local file contexts"
++msgstr ""
++
++#: ../semanage/seobject.py:1936
++msgid "SELinux fcontext"
++msgstr ""
++
++#: ../semanage/seobject.py:1936
++msgid "type"
++msgstr ""
++
++#: ../semanage/seobject.py:1949
++msgid ""
++"\n"
++"SELinux Distribution fcontext Equivalence \n"
++msgstr ""
++
++#: ../semanage/seobject.py:1954
++msgid ""
++"\n"
++"SELinux Local fcontext Equivalence \n"
++msgstr ""
++
++#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
++#: ../semanage/seobject.py:2046
++#, python-format
++msgid "Could not check if boolean %s is defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
++#, python-format
++msgid "Boolean %s is not defined"
++msgstr ""
++
++#: ../semanage/seobject.py:1994
++#, python-format
++msgid "Could not query file context %s"
++msgstr ""
++
++#: ../semanage/seobject.py:1999
++#, python-format
++msgid "You must specify one of the following values: %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2004
++#, python-format
++msgid "Could not set active value of boolean %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2007
++#, python-format
++msgid "Could not modify boolean %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2025
++#, python-format
++msgid "Bad format %s: Record %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2048
++#, python-format
++msgid "Boolean %s is defined in policy, cannot be deleted"
++msgstr ""
++
++#: ../semanage/seobject.py:2052
++#, python-format
++msgid "Could not delete boolean %s"
++msgstr ""
++
++#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
++msgid "Could not list booleans"
++msgstr ""
++
++#: ../semanage/seobject.py:2104
++msgid "unknown"
++msgstr ""
++
++#: ../semanage/seobject.py:2117
++msgid "off"
++msgstr ""
++
++#: ../semanage/seobject.py:2117
++msgid "on"
++msgstr ""
++
++#: ../semanage/seobject.py:2131
++msgid "SELinux boolean"
++msgstr ""
++
++#: ../semanage/seobject.py:2131
++msgid "State"
++msgstr ""
++
++#: ../semanage/seobject.py:2131
++msgid "Default"
++msgstr ""
++
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
++msgid "Description"
++msgstr ""
++
++#: ../newrole/newrole.c:201
++#, c-format
++msgid "failed to set PAM_TTY\n"
++msgstr ""
++
++#: ../newrole/newrole.c:290
++#, c-format
++msgid "newrole: service name configuration hashtable overflow\n"
++msgstr ""
++
++#: ../newrole/newrole.c:300
++#, c-format
++msgid "newrole:  %s:  error on line %lu.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:439
++#, c-format
++msgid "cannot find valid entry in the passwd file.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:450
++#, c-format
++msgid "Out of memory!\n"
++msgstr ""
++
++#: ../newrole/newrole.c:455
++#, c-format
++msgid "Error!  Shell is not valid.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:512
++#, c-format
++msgid "Unable to clear environment\n"
++msgstr ""
++
++#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
++#, c-format
++msgid "Error changing uid, aborting.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:612
++#, c-format
++msgid "Error resetting KEEPCAPS, aborting\n"
++msgstr ""
++
++#: ../newrole/newrole.c:635
++#, c-format
++msgid "Error connecting to audit system.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:641
++#, c-format
++msgid "Error allocating memory.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:648
++#, c-format
++msgid "Error sending audit message.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
++#, c-format
++msgid "Could not determine enforcing mode.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:699
++#, c-format
++msgid "Error!  Could not open %s.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:705
++#, c-format
++msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:715
++#, c-format
++msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:725
++#, c-format
++msgid "%s!  Could not set new context for %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:772
++#, c-format
++msgid "%s changed labels.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:778
++#, c-format
++msgid "Warning! Could not restore context for %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:835
++#, c-format
++msgid "Error: multiple roles specified\n"
++msgstr ""
++
++#: ../newrole/newrole.c:843
++#, c-format
++msgid "Error: multiple types specified\n"
++msgstr ""
++
++#: ../newrole/newrole.c:850
++#, c-format
++msgid "Sorry, -l may be used with SELinux MLS support.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:855
++#, c-format
++msgid "Error: multiple levels specified\n"
++msgstr ""
++
++#: ../newrole/newrole.c:865
++#, c-format
++msgid "Error: you are not allowed to change levels on a non secure terminal \n"
++msgstr ""
++
++#: ../newrole/newrole.c:891
++#, c-format
++msgid "Couldn't get default type.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:901
++#, c-format
++msgid "failed to get new context.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:908
++#, c-format
++msgid "failed to set new role %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:915
++#, c-format
++msgid "failed to set new type %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:925
++#, c-format
++msgid "failed to build new range with level %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:930
++#, c-format
++msgid "failed to set new range %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:938
++#, c-format
++msgid "failed to convert new context to string\n"
++msgstr ""
++
++#: ../newrole/newrole.c:943
++#, c-format
++msgid "%s is not a valid context\n"
++msgstr ""
++
++#: ../newrole/newrole.c:950
++#, c-format
++msgid "Unable to allocate memory for new_context"
++msgstr ""
++
++#: ../newrole/newrole.c:976
++#, c-format
++msgid "Unable to obtain empty signal set\n"
++msgstr ""
++
++#: ../newrole/newrole.c:984
++#, c-format
++msgid "Unable to set SIGHUP handler\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1053
++#, c-format
++msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1070
++#, c-format
++msgid "failed to get old_context.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1077
++#, c-format
++msgid "Warning!  Could not retrieve tty information.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1098
++#, c-format
++msgid "error on reading PAM service configuration.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1133
++#, c-format
++msgid "newrole: incorrect password for %s\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1160
++#, c-format
++msgid "newrole: failure forking: %s"
++msgstr ""
++
++#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
++#, c-format
++msgid "Unable to restore tty label...\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
++#, c-format
++msgid "Failed to close tty properly\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1224
++#, c-format
++msgid "Could not close descriptors.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1251
++#, c-format
++msgid "Error allocating shell's argv0.\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1287
++#, c-format
++msgid "Unable to restore the environment, aborting\n"
++msgstr ""
++
++#: ../newrole/newrole.c:1298
++msgid "failed to exec shell\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:22
++#, c-format
++msgid "usage:  %s [-qi]\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:71
++#, c-format
++msgid "%s:  Policy is already loaded and initial load requested\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:80
++#, c-format
++msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
++msgstr ""
++
++#: ../load_policy/load_policy.c:90
++#, c-format
++msgid "%s:  Can't load policy:  %s\n"
++msgstr ""
++
++#: ../scripts/chcat:92 ../scripts/chcat:169
++msgid "Requires at least one category"
++msgstr ""
++
++#: ../scripts/chcat:106 ../scripts/chcat:183
++#, c-format
++msgid "Can not modify sensitivity levels using '+' on %s"
++msgstr ""
++
++#: ../scripts/chcat:110
++#, c-format
++msgid "%s is already in %s"
++msgstr ""
++
++#: ../scripts/chcat:188 ../scripts/chcat:198
++#, c-format
++msgid "%s is not in %s"
++msgstr ""
++
++#: ../scripts/chcat:267 ../scripts/chcat:272
++msgid "Can not combine +/- with other types of categories"
++msgstr ""
++
++#: ../scripts/chcat:319
++msgid "Can not have multiple sensitivities"
++msgstr ""
++
++#: ../scripts/chcat:325
++#, c-format
++msgid "Usage %s CATEGORY File ..."
++msgstr ""
++
++#: ../scripts/chcat:326
++#, c-format
++msgid "Usage %s -l CATEGORY user ..."
++msgstr ""
++
++#: ../scripts/chcat:327
++#, c-format
++msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
++msgstr ""
++
++#: ../scripts/chcat:328
++#, c-format
++msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
++msgstr ""
++
++#: ../scripts/chcat:329
++#, c-format
++msgid "Usage %s -d File ..."
++msgstr ""
++
++#: ../scripts/chcat:330
++#, c-format
++msgid "Usage %s -l -d user ..."
++msgstr ""
++
++#: ../scripts/chcat:331
++#, c-format
++msgid "Usage %s -L"
++msgstr ""
++
++#: ../scripts/chcat:332
++#, c-format
++msgid "Usage %s -L -l user"
++msgstr ""
++
++#: ../scripts/chcat:333
++msgid "Use -- to end option list.  For example"
++msgstr ""
++
++#: ../scripts/chcat:334
++msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
++msgstr ""
++
++#: ../scripts/chcat:335
++msgid "chcat -l +CompanyConfidential juser"
++msgstr ""
++
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
++msgid "Options Error %s "
++msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++#, fuzzy
++msgid "all"
++msgstr "Allens"
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++#, fuzzy
++msgid "User Mapping"
++msgstr "Brukerprogramm"
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr "Nils-Christoph Fiedler <ncfiedler@fedoraproject.org>"
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++#, fuzzy
++msgid "<b>Applications</b>"
++msgstr "Netprogramme"
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++#, fuzzy
++msgid "Web Application/Script (CGI)"
++msgstr "Netprogramme"
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr "Brukerprogramm"
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr "..."
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr "Allens"
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++#, fuzzy
++msgid "Application"
++msgstr "Brukerprogramm"
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr "Port"
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr "Inbinnen"
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr "NIS"
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr "Netprogramme"
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr "CVS"
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr "Speele"
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr "NFS"
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr "Kerberos"
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr "Samba"
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr "pppd"
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr "rsync"
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr "Squid"
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/nl.po b/policycoreutils/po/nl.po
+index 64ba5d6..e32d403 100644
+--- a/policycoreutils/po/nl.po
++++ b/policycoreutils/po/nl.po
+@@ -1,20 +1,25 @@
+-# translation of policycoreutils to Dutch
+-# This file is distributed under the same license as the policycoreutils package.
+-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
++# Translators:
++# Geert Warrink <geert.warrink@onsnet.nu>, 2009, 2010.
+ # Peter van Egdom <p.van.egdom@gmail.com>, 2006, 2007, 2008.
++# R.E. van der Luit <nippur@fedoraproject.org>, 2009.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-08-10 15:45+0200\n"
+-"Last-Translator: Peter van Egdom <p.van.egdom@gmail.com>\n"
+-"Language-Team: Dutch <vertaling@nl.linux.org>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Dutch (http://www.transifex.net/projects/p/fedora/language/"
++"nl/)\n"
+ "Language: nl\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -23,7 +28,8 @@ msgid ""
+ "         <args ...> are the arguments to that script."
+ msgstr ""
+ "GEBRUIK: run_init <script> <argumenten ...>\n"
+-"  waar: <script> de naam is van het init script dat moet worden uitgevoerd,\n"
++"  waarin: <script> de naam is van het init script dat moet worden "
++"uitgevoerd,\n"
+ "        <argumenten ...> de argumenten zijn voor dat script."
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+@@ -34,7 +40,7 @@ msgstr "initialiseren van PAM is mislukt\n"
+ #: ../run_init/run_init.c:139
+ #, c-format
+ msgid "failed to get account information\n"
+-msgstr "verkrijgen van account-informatie is mislukt\n"
++msgstr "verkrijgen van account informatie is mislukt\n"
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+@@ -43,7 +49,7 @@ msgstr "Wachtwoord:"
+ #: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+ #, c-format
+ msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr "Kan uw item in het shadow passwd bestand niet vinden.\n"
++msgstr "Kan jouw ingang in het schaduw passwd bestand niet vinden.\n"
+ #: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+ #, c-format
+@@ -68,7 +74,7 @@ msgstr "Geen context in bestand %s\n"
+ #: ../run_init/run_init.c:361
+ #, c-format
+ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr "Sorry, run_init mag alleen worden gebruikt op een SELinux kernel.\n"
++msgstr "Sorry, run_init mag alleen worden gebruikt met een SELinux kernel.\n"
+ #: ../run_init/run_init.c:380
+ #, c-format
+@@ -86,32 +92,31 @@ msgstr "******************** BELANGRIJK **********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr ""
++msgstr "Om dit tactiek pakket te activeren, voer uit:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "globaal"
+ #: ../semanage/seobject.py:222
+ msgid "Could not create semanage handle"
+-msgstr ""
++msgstr "Kan semanage handle niet creëren"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr "SELinux policy is niet beheerd of store kan niet worden benaderd."
++msgstr "SELinux tactiek is niet beheerd of krijg geen toegang tot opslag."
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr "Kan policy store niet lezen."
++msgstr "Kan tactiek opslag niet lezen."
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+-msgstr "Kan semanage-connectie niet tot stand brengen"
++msgstr "Kan semanage verbinding niet tot stand brengen"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Kan MLS bereik niet instellen voor %s"
++msgstr "Kan MLS aangezet status niet testen"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -119,36 +124,35 @@ msgstr "Nog niet geïmplementeerd"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage transactie is al bezig"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+-msgstr "Kan semanage-transactie niet starten"
++msgstr "Kan semanage transactie niet starten"
+ #: ../semanage/seobject.py:274
+ msgid "Could not commit semanage transaction"
+-msgstr "Kan semanage-transactie niet uitvoeren"
++msgstr "Kan semanage transactie niet uitvoeren"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage transactie is niet bezig"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+ msgid "Could not list SELinux modules"
+ msgstr "Kan SELinux modules niet tonen"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Modulenaam"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Versie"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr ""
++msgstr "Uitgezet"
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -156,9 +160,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Kan rol %s niet toevoegen voor %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -170,24 +174,22 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Permissive soorten"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Permissive soorten"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "Kan toelatend domein %s niet instellen (module installatie mislukte)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "Kan toelatend domein %s niet verwijderen (verwijderen mislukte)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -204,7 +206,7 @@ msgstr "Kan geen sleutel aanmaken voor %s"
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+ #, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr "Kan niet controleren of login mapping voor %s is gedefinieerd"
++msgstr "Kan niet controleren of inlog afbeelding voor %s is gedefinieerd"
+ #: ../semanage/seobject.py:492
+ #, python-format
+@@ -219,7 +221,7 @@ msgstr "Linux gebruiker %s bestaat niet"
+ #: ../semanage/seobject.py:501
+ #, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr "Kan geen login mapping aanmaken voor %s"
++msgstr "Kan geen inlog afbeelding aanmaken voor %s"
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+@@ -229,7 +231,7 @@ msgstr "Kan naam niet instellen voor %s"
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+ #, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr "Kan MLS bereik niet instellen voor %s"
++msgstr "Kan MLS reeks niet instellen voor %s"
+ #: ../semanage/seobject.py:514
+ #, python-format
+@@ -239,7 +241,7 @@ msgstr "Kan SELinux gebruiker niet instellen voor %s"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "Kan login mapping niet toevoegen voor %s"
++msgstr "Kan inlog afbeelding niet toevoegen voor %s"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+@@ -248,7 +250,7 @@ msgstr "Vereist seuser of serange"
+ #: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+ #, python-format
+ msgid "Login mapping for %s is not defined"
+-msgstr "Login mapping voor %s is niet gedefinieerd"
++msgstr "Inlog afbeelding voor %s is niet gedefinieerd"
+ #: ../semanage/seobject.py:563
+ #, python-format
+@@ -258,36 +260,42 @@ msgstr "Kan seuser niet opvragen voor %s"
+ #: ../semanage/seobject.py:577
+ #, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr "Kan login mapping niet veranderen voor %s"
++msgstr "Kan inlog afbeelding niet veranderen voor %s"
+ #: ../semanage/seobject.py:611
+ #, python-format
+ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"Login mapping voor %s is gedefinieerd in policy, kan niet worden verwijderd"
++"Inlog afbeelding voor %s is gedefinieerd in tactiek, kan niet worden "
++"verwijderd"
+ #: ../semanage/seobject.py:615
+ #, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr "Kan login mapping niet verwijderen voor %s"
++msgstr "Kan inlog afbeelding niet verwijderen voor %s"
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+ msgid "Could not list login mappings"
+-msgstr "Kan login mappings niet tonen"
++msgstr "Kan inlog afbeeldingen niet tonen"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+-msgstr ""
++msgstr "Inlog naam"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux gebruiker"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+-msgstr "MLS/MCS bereik"
++msgstr "MLS/MCS reeks"
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+@@ -305,7 +313,7 @@ msgstr "Kan gebruiker niet opvragen voor %s"
+ #: ../semanage/seobject.py:722
+ #, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "U moet ten minste een rol voor %s toevoegen"
++msgstr "Je moet ten minste een rol voor %s toevoegen"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -330,7 +338,7 @@ msgstr "Kan prefix %s niet toevoegen voor %s"
+ #: ../semanage/seobject.py:761
+ #, python-format
+ msgid "Could not extract key for %s"
+-msgstr "Kan sleutel niet uitpakken voor %s"
++msgstr "Kan sleutel niet extraheren voor %s"
+ #: ../semanage/seobject.py:765
+ #, python-format
+@@ -359,7 +367,7 @@ msgstr "Kan SELinux gebruiker %s niet veranderen"
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"SELinux gebruiker %s is gedefinieerd in policy, kan niet worden verwijderd"
++"SELinux gebruiker %s is gedefinieerd in tactiek, kan niet worden verwijderd"
+ #: ../semanage/seobject.py:873
+ #, python-format
+@@ -377,7 +385,7 @@ msgstr "Kan rollen voor gebruiker %s niet tonen"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr ""
++msgstr "Labelen"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+@@ -393,11 +401,12 @@ msgstr "MCS niveau"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Range"
+-msgstr "MCS bereik"
++msgstr "MCS reeks"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+-msgstr ""
++msgstr "SELinux rollen"
+ #: ../semanage/seobject.py:963
+ msgid "Protocol udp or tcp is required"
+@@ -408,9 +417,8 @@ msgid "Port is required"
+ msgstr "Poort is vereist"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Ongeldige prefix %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -425,7 +433,7 @@ msgstr "Type is vereist"
+ #: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+ #, python-format
+ msgid "Could not check if port %s/%s is defined"
+-msgstr "Kan niet controleren of poort %s/%s is gedefinieerd"
++msgstr "Kan niet controleren of poort %s/%s gedefinieerd is"
+ #: ../semanage/seobject.py:998
+ #, python-format
+@@ -508,7 +516,7 @@ msgstr "Kan poort %s niet verwijderen"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+ msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr "Poort %s/%s is gedefinieerd in policy, kan niet worden verwijderd"
++msgstr "Poort %s/%s is gedefinieerd in tactiek, kan niet worden verwijderd"
+ #: ../semanage/seobject.py:1122
+ #, python-format
+@@ -521,24 +529,23 @@ msgstr "Kan poorten niet tonen"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+-msgstr ""
++msgstr "SELinux poort type"
+ #: ../semanage/seobject.py:1199
+ msgid "Proto"
+-msgstr ""
++msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+-msgstr "Poortnummer"
++msgstr "Poort nummer"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Poort is vereist"
++msgstr "Node adres is vereist"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Onbekend of ontbrekend protocol"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -555,14 +562,14 @@ msgstr "Kan geen sleutel aanmaken voor %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Kan niet controleren of poort %s/%s is gedefinieerd"
++msgstr "Kan niet controleren of addr %s is gedefinieerd"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Kan geen sleutel aanmaken voor %s"
++msgstr "Kan geen addr aanmaken voor %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -571,80 +578,78 @@ msgid "Could not create context for %s"
+ msgstr "Kan geen context aanmaken voor %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Kan naam niet instellen voor %s"
++msgstr "Kan geen masker instellen voor %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Kan gebruiker in bestandscontext niet instellen voor %s"
++msgstr "Kan gebruiker in addr context niet instellen voor %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Kan rol in bestandscontext niet instellen voor %s"
++msgstr "Kan rol in addr context niet instellen voor %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Kan type in bestandscontext niet instellen voor %s"
++msgstr "Kan type in addr context niet instellen voor %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Kan mls velden in bestandscontext niet instellen voor %s"
++msgstr "Kan mls velden in addr context niet instellen voor %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Kan bestandscontext niet instellen voor %s"
++msgstr "Kan addr context niet instellen voor %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Kan poort %s/%s niet toevoegen"
++msgstr "Kan addr %s niet toevoegen"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Poort %s/%s is niet gedefinieerd"
++msgstr "Addr %s is niet gedefinieerd"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Kan poort %s/%s niet opvragen"
++msgstr "Kan addr %s niet bevragen"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Kan poort %s/%s niet veranderen"
++msgstr "Kan addr %s niet veranderen"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Poort %s/%s is gedefinieerd in policy, kan niet worden verwijderd"
++msgstr "Addr %s gedefinieerd in tactiek, kan niet worden verwijderd"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Kan de %s niet verwijderen"
++msgstr "Kan addr %s niet verwijderen"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Kan login mapping niet verwijderen voor %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Kan poorten niet tonen"
++msgstr "Kan addr's niet tonen"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+ #, python-format
+ msgid "Could not check if interface %s is defined"
+-msgstr "Kan niet controleren of interface %s is gedefinieerd"
++msgstr "Kan niet controleren of interface %s gedefinieerd is"
+ #: ../semanage/seobject.py:1461
+ #, python-format
+@@ -679,7 +684,7 @@ msgstr "Kan interface context niet instellen voor %s"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+ msgid "Could not set message context for %s"
+-msgstr "Kan message context niet instellen voor %s"
++msgstr "Kan boodschap context niet instellen voor %s"
+ #: ../semanage/seobject.py:1495
+ #, python-format
+@@ -704,7 +709,7 @@ msgstr "Kan interface %s niet veranderen"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+ msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr "Interface %s is gedefinieerd in policy, kan niet worden verwijderd"
++msgstr "Interface %s is gedefinieerd in tactiek, kan niet worden verwijderd"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+@@ -712,9 +717,8 @@ msgid "Could not delete interface %s"
+ msgstr "Kan interface %s niet verwijderen"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Kan interface %s niet verwijderen"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -729,9 +733,9 @@ msgid "Context"
+ msgstr "Context"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Bestandscontext voor %s is al gedefinieerd"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -739,28 +743,28 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux gebruiker %s bestaat niet"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "Kan gebruiker in bestandscontext niet instellen voor %s"
++msgstr "Kan gebruiker in bestand context niet instellen voor %s"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "Kan rol in bestandscontext niet instellen voor %s"
++msgstr "Kan rol in bestand context niet instellen voor %s"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "Kan mls velden in bestandscontext niet instellen voor %s"
++msgstr "Kan mls velden in bestand context niet instellen voor %s"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+-msgstr ""
++msgstr "Ongeldige bestand specificatie"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -777,28 +781,28 @@ msgstr ""
+ #: ../semanage/seobject.py:1876
+ #, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr "Kan niet controleren of bestandscontext voor %s is gedefinieerd"
++msgstr "Kan niet controleren of bestand context voor %s is gedefinieerd"
+ #: ../semanage/seobject.py:1745
+ #, python-format
+ msgid "Could not create file context for %s"
+-msgstr "Kan geen bestandscontext aanmaken voor %s"
++msgstr "Kan geen bestand context aanmaken voor %s"
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "Kan type in bestandscontext niet instellen voor %s"
++msgstr "Kan type in bestand context niet instellen voor %s"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr "Kan bestandscontext niet instellen voor %s"
++msgstr "Kan bestand context niet instellen voor %s"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+ msgid "Could not add file context for %s"
+-msgstr "Kan bestandscontext niet toevoegen voor %s"
++msgstr "Kan bestand context niet toevoegen voor %s"
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+@@ -807,53 +811,54 @@ msgstr "Vereist setype, serange of seuser"
+ #: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+ #, python-format
+ msgid "File context for %s is not defined"
+-msgstr "Bestandscontext voor %s is niet gedefinieerd"
++msgstr "Bestand context voor %s is niet gedefinieerd"
+ #: ../semanage/seobject.py:1800
+ #, python-format
+ msgid "Could not query file context for %s"
+-msgstr "Kan bestandscontext niet opvragen voor %s"
++msgstr "Kan bestand context niet opvragen voor %s"
+ #: ../semanage/seobject.py:1826
+ #, python-format
+ msgid "Could not modify file context for %s"
+-msgstr "Kan bestandscontext niet veranderen voor %s"
++msgstr "Kan bestand context niet veranderen voor %s"
+ #: ../semanage/seobject.py:1839
+ msgid "Could not list the file contexts"
+-msgstr "Kan bestandscontexten niet tonen"
++msgstr "Kan bestand contexten niet tonen"
+ #: ../semanage/seobject.py:1853
+ #, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Kan bestandscontext %s niet verwijderen"
++msgstr "Kan bestand context %s niet verwijderen"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+ msgid "File context for %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"Bestandscontext voor %s is gedefinieerd in policy, kan niet worden verwijderd"
++"Bestand context voor %s is gedefinieerd in tactiek, kan niet worden "
++"verwijderd"
+ #: ../semanage/seobject.py:1884
+ #, python-format
+ msgid "Could not delete file context for %s"
+-msgstr "Kan bestandscontext niet verwijderen voor %s"
++msgstr "Kan bestand context niet verwijderen voor %s"
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+-msgstr "Kan bestandscontexten niet tonen"
++msgstr "Kan bestand contexten niet tonen"
+ #: ../semanage/seobject.py:1903
+ msgid "Could not list local file contexts"
+-msgstr "Kan lokale bestandscontexten niet tonen"
++msgstr "Kan lokale bestand contexten niet tonen"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+-msgstr ""
++msgstr "SELinux fcontext"
+ #: ../semanage/seobject.py:1936
+ msgid "type"
+-msgstr "soort"
++msgstr "type"
+ #: ../semanage/seobject.py:1949
+ msgid ""
+@@ -871,51 +876,51 @@ msgstr ""
+ #: ../semanage/seobject.py:2046
+ #, python-format
+ msgid "Could not check if boolean %s is defined"
+-msgstr "Kan niet controleren of boolean %s is gedefinieerd"
++msgstr "Kan niet controleren of Boolean %s gedefinieerd is"
+ #: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+ #, python-format
+ msgid "Boolean %s is not defined"
+-msgstr "Booleaan %s is niet gedefinieerd"
++msgstr "Boolean %s is niet gedefinieerd"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+ msgid "Could not query file context %s"
+-msgstr "Kan bestandscontext %s niet opvragen"
++msgstr "Kan bestand context %s niet opvragen"
+ #: ../semanage/seobject.py:1999
+ #, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "U moet een van de volgende waarden opgeven: %s"
++msgstr "Je moet een van de volgende waarden opgeven: %s"
+ #: ../semanage/seobject.py:2004
+ #, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Kan actieve waarde van booleaan %s niet instellen"
++msgstr "Kan actieve waarde van Boolean %s niet instellen"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+ msgid "Could not modify boolean %s"
+-msgstr "Kan booleaan %s niet veranderen"
++msgstr "Kan Boolean %s niet veranderen"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Verkeerd formaat %s: Record %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr "Booleaan %s is gedefinieerd in policy, kan niet worden verwijderd"
++msgstr "Boolean %s is gedefinieerd in tactiek, kan niet worden verwijderd"
+ #: ../semanage/seobject.py:2052
+ #, python-format
+ msgid "Could not delete boolean %s"
+-msgstr "Kan booleaan %s niet verwijderen"
++msgstr "Kan Boolean %s niet verwijderen"
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+ msgid "Could not list booleans"
+-msgstr "Kan booleanen niet tonen"
++msgstr "Kan Booleans niet tonen"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+@@ -931,20 +936,20 @@ msgstr "aan"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr ""
++msgstr "SELinux Boolean"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "Status"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+-msgstr "Standaard"
++msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "Beschrijving"
+ #: ../newrole/newrole.c:201
+ #, c-format
+@@ -954,17 +959,17 @@ msgstr "instellen van PAM_TTY is mislukt\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
++msgstr "newrole: service naam configuratie hashtable overflow\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
++msgstr "newrole:  %s:  fout op regel %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+ msgid "cannot find valid entry in the passwd file.\n"
+-msgstr "kan geen geldig item in het passwd bestand vinden.\n"
++msgstr "kan geen geldige ingang in het passwd bestand vinden.\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+@@ -1004,12 +1009,12 @@ msgstr "Fout bij het toewijzen van geheugen.\n"
+ #: ../newrole/newrole.c:648
+ #, c-format
+ msgid "Error sending audit message.\n"
+-msgstr "Fout bij het versturen van audit melding.\n"
++msgstr "Fout bij het versturen van audit boodschap.\n"
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr "Kan enforcing mode niet vaststellen.\n"
++msgstr "Kan afdwingende mode niet vaststellen.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+@@ -1038,7 +1043,7 @@ msgstr "%s!  Kon geen nieuwe context instellen voor %s\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+ msgid "%s changed labels.\n"
+-msgstr "%s heeft andere labels.\n"
++msgstr "%s veranderde labels.\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+@@ -1069,11 +1074,12 @@ msgstr "Fout: meerdere niveaus opgegeven\n"
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+ msgstr ""
++"Fout: Niveaus op een onbeveiligde terminal veranderen is niet toegestaan \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr "Kan standaardtype niet verkrijgen.\n"
++msgstr "Kan standaard type niet verkrijgen.\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+@@ -1093,7 +1099,7 @@ msgstr "instellen van nieuw type %s is mislukt\n"
+ #: ../newrole/newrole.c:925
+ #, c-format
+ msgid "failed to build new range with level %s\n"
+-msgstr "samenstellen van nieuw bereik met niveau %s is mislukt\n"
++msgstr "samenstellen van nieuwe reeks met niveau %s is mislukt\n"
+ #: ../newrole/newrole.c:930
+ #, c-format
+@@ -1118,17 +1124,17 @@ msgstr "Niet in staat om geheugen te reserveren voor new_context"
+ #: ../newrole/newrole.c:976
+ #, c-format
+ msgid "Unable to obtain empty signal set\n"
+-msgstr "Niet in staat om een lege signaalverzameling te verkrijgen\n"
++msgstr "Niet in staat om een lege signaal set te verkrijgen\n"
+ #: ../newrole/newrole.c:984
+ #, c-format
+ msgid "Unable to set SIGHUP handler\n"
+-msgstr "Niet in staat om SIGHUP-verwerker in te stellen\n"
++msgstr "Niet in staat om SIGHUP verwerker in te stellen\n"
+ #: ../newrole/newrole.c:1053
+ #, c-format
+ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr "Sorry, newrole mag alleen worden gebruikt op een SELinux kernel.\n"
++msgstr "Sorry, newrole mag alleen worden gebruikt met een SELinux kernel.\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+@@ -1138,12 +1144,12 @@ msgstr "verkrijgen van old_context is mislukt.\n"
+ #: ../newrole/newrole.c:1077
+ #, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Waarschuwing! Kan tty-informatie niet ophalen.\n"
++msgstr "Waarschuwing! Kan tty informatie niet ophalen.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr ""
++msgstr "fout bij het lezen van de PAM service instelling.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+@@ -1158,7 +1164,7 @@ msgstr "newrole: forking mislukt: %s"
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+ msgid "Unable to restore tty label...\n"
+-msgstr "Niet in staat om tty-label terug te zetten...\n"
++msgstr "Niet in staat om tty label terug te zetten...\n"
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+@@ -1168,7 +1174,7 @@ msgstr "Afsluiten van tty op een juiste manier is mislukt\n"
+ #: ../newrole/newrole.c:1224
+ #, c-format
+ msgid "Could not close descriptors.\n"
+-msgstr "Kan indicators niet sluiten.\n"
++msgstr "Kan beschrijvingen niet sluiten.\n"
+ #: ../newrole/newrole.c:1251
+ #, c-format
+@@ -1192,17 +1198,17 @@ msgstr "gebruik:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s:  Tactiek is al geladen en initiële inladen wordt verzocht\n"
+ #: ../load_policy/load_policy.c:80
+ #, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
++msgstr "%s:  Kan tactiek niet laden en afdwingende mode verzocht:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr "%s:  Kan policy:  %s niet laden\n"
++msgstr "%s:  Kan tactiek:  %s niet laden\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+@@ -1212,7 +1218,7 @@ msgstr "Vereist tenminste Ã©Ã©n categorie"
+ #, c-format
+ msgid "Can not modify sensitivity levels using '+' on %s"
+ msgstr ""
+-"Kan sensitivity niveaus door gebruik te maken van '+' op %s niet wijzigen"
++"Kan gevoeligheid niveaus door gebruik te maken van '+' op %s niet wijzigen"
+ #: ../scripts/chcat:110
+ #, c-format
+@@ -1230,7 +1236,7 @@ msgstr "Kan +/- niet combineren met andere typen categorieën"
+ #: ../scripts/chcat:319
+ msgid "Can not have multiple sensitivities"
+-msgstr "Kan geen meerdere sensitivities hebben"
++msgstr "Kan geen meerdere gevoeligheden hebben"
+ #: ../scripts/chcat:325
+ #, c-format
+@@ -1274,7 +1280,7 @@ msgstr "Gebruik %s -L -l gebruiker"
+ #: ../scripts/chcat:333
+ msgid "Use -- to end option list.  For example"
+-msgstr "Gebruik -- om de optielijst te beëindigen.  Bijvoorbeeld"
++msgstr "Gebruik -- om de optie lijst te beëindigen.  Bijvoorbeeld"
+ #: ../scripts/chcat:334
+ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+@@ -1284,442 +1290,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Fout in opties %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Niet in staat om %s te openen: vertalingen zijn niet ondersteund op niet-"
+-#~ "MLS machines: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "Niveau"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "Vertaling"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Vertalingen kunnen geen spaties bevatten '%s' "
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Ongeldig niveau '%s' "
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s is al gedefinieerd in vertalingen"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s niet gedefinieerd in vertalingen"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Login mapping voor %s is al gedefinieerd"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux gebruiker %s is al gedefinieerd"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Poort is vereist"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Poort %s/%s is al gedefinieerd"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Interface %s is al gedefinieerd"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Fout bij het initialiseren van capabilities, afbreken.\n"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Fout bij het instellen van capabilities, afbreken.\n"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Fout bij het instellen van KEEPCAPS, afbreken\n"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Fout bij het uitzetten van capabilities, afbreken\n"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Fout bij het uitzetten van SETUID capability, afbreken\n"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Fout bij het vrijgeven van caps\n"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "vertalingen niet ondersteund op niet-MLS machines"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "bestandstype"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "gebruiker"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS bereik"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Login '%s' is vereist"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "translator-credits"
+-#~ msgstr "Peter van Egdom <p.van.egdom@gmail.com>"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Applicaties</b>"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Webapplicatie/script (CGI)"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "User Role"
+-#~ msgstr "Gebruikersrol"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "Naam"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP-poorten</b>"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "Niet-gereserveerde poorten (> 1024)"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP-poorten</b>"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Boolean Name"
+-#~ msgstr "Booleaanse naam"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Role"
+-#~ msgstr "Rol"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Application"
+-#~ msgstr "Applicatie"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s moet een directory zijn"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "You must select a user"
+-#~ msgstr "U moet een gebruiker selecteren"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "U moet een naam invoeren"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "You must enter a executable"
+-#~ msgstr "U moet een uitvoerbaar bestand opgeven"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux configureren"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "Interface-bestand"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "Protocol"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "niveau"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "Poort"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "Poortnummer \"%s\" is niet geldig.  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Netwerkconfiguratie"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Databases"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "Compatibiliteit"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL-authenticatieserver"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "Spambeveiliging"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Universele SSL-tunnel"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Delete %s"
+-#~ msgstr "%s wissen"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Add %s"
+-#~ msgstr "%s toevoegen"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Modify %s"
+-#~ msgstr "%s veranderen"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Permissive"
+-#~ msgstr "Permissive"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c) 2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux type"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "niveau"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "File Type"
+-#~ msgstr "Bestandstype"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux gebruiker toevoegen"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Add"
+-#~ msgstr "Toevoegen"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "_Properties"
+-#~ msgstr "_Eigenschappen"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "_Delete"
+-#~ msgstr "_Wissen"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "label37"
+-#~ msgstr "label37"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "Filter"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "label50"
+-#~ msgstr "label50"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "label38"
+-#~ msgstr "label38"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "label39"
+-#~ msgstr "label39"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "label41"
+-#~ msgstr "label41"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux gebruiker veranderen"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "label40"
+-#~ msgstr "label40"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "Netwerkpoorten toevoegen"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "label42"
+-#~ msgstr "label42"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "Policy-module laden"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "label44"
+-#~ msgstr "label44"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux gebruiker '%s' is vereist"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "<b>Boolean</b>"
+-#~ msgstr "<b>Booleaan</b>"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "<b>Description</b>"
+-#~ msgstr "<b>Omschrijving</b>"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "<b>Status</b>"
+-#~ msgstr "<b>Status</b>"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Apply"
+-#~ msgstr "Toepassen"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Save Boolean Configuration File"
+-#~ msgstr "Booleaan configuratiebestand opslaan"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "_Previous"
+-#~ msgstr "_Vorige"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Vereist waarde"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "Niet-gereserveerde poorten (> 1024)"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "label25"
+-#~ msgstr "label25"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "label26"
+-#~ msgstr "label26"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "label28"
+-#~ msgstr "label28"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "label30"
+-#~ msgstr "label30"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "label31"
+-#~ msgstr "label31"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "label32"
+-#~ msgstr "label32"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "label33"
+-#~ msgstr "label33"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "label34"
+-#~ msgstr "label34"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "label35"
+-#~ msgstr "label35"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label51"
+-#~ msgstr "label25"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "value"
+-#~ msgstr "waarde"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "FTP"
+-#~ msgstr "FTP"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Zebra"
+-#~ msgstr "Zebra"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Spam Assassin"
+-#~ msgstr "Spam Assassin"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "MLS/MCS Level"
+-#~ msgstr "MLS/MCS niveau"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Level"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS niveau"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Vereist 2 of meer argumenten"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "%s not defined"
+-#~ msgstr "%s niet gedefinieerd"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "%s niet geldig voor %s objecten\n"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "bereik niet ondersteund op niet-MLS machines"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Ongeldige waarde %s"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Om dit nieuw aangemaakte policy-pakket in de kernel te laden,\n"
+-#~ "dient u het volgende commando uit te voeren \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Fout in opties: %s "
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/nn.po b/policycoreutils/po/nn.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/nn.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/no.po b/policycoreutils/po/no.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/no.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/nso.po b/policycoreutils/po/nso.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/nso.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/or.po b/policycoreutils/po/or.po
+index 08561b8..c35c371 100644
+--- a/policycoreutils/po/or.po
++++ b/policycoreutils/po/or.po
+@@ -1,25 +1,25 @@
+-# translation of policycoreutils.HEAD.or.po to Oriya
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+ #
+-# Subhransu Behera <sbehera@redhat.com>, 2006.
++# Translators:
+ # Manoj Kumar Giri <giri.manojkr@gmail.com>, 2008.
++# Manoj Kumar Giri <mgiri@redhat.com>, 2008, 2009, 2010.
++# Subhransu Behera <sbehera@redhat.com>, 2006.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD.or\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-07-05 14:27+0530\n"
+-"Last-Translator: Manoj Kumar Giri <giri.manojkr@gmail.com>\n"
+-"Language-Team: Oriya\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Oriya (http://www.transifex.net/projects/p/fedora/language/"
++"or/)\n"
++"Language: or\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+-"\n"
+-"\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -114,9 +114,8 @@ msgid "Could not establish semanage connection"
+ msgstr "semanage à¬¸à¬‚ଯୋଗ à¬•à­ à¬¸à­à¬¥à¬¾à¬ªà¬¿à¬¤ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ à¬à¬®à­.à¬à¬².à¬à¬¸à­. à¬ªà¬°à¬¿à¬¸à¬° à¬•à­ à¬¸à­‡à¬Ÿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "MLS à¬¸à¬•à­à¬°à¬¿à­Ÿ à¬¸à­à¬¥à¬¿à¬¤à¬¿à¬•à­ à¬ªà¬°à­€à¬•à­à¬·à¬¾ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -124,36 +123,33 @@ msgstr "à¬à¬ªà¬°à­à¬¯à­à­Ÿà¬¨à­à¬¤ à¬•à¬¾à¬°à­à¬¯à­à­Ÿà¬•à¬¾à¬°à­€ à¬¹à­‹
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage à¬¬à¬¿à¬¨à¬¿à¬®à­Ÿ à¬ªà­‚ରà­à¬¬à¬°à­ à¬šà¬¾à¬²à¬¿à¬…ଛି"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "semanage à¬¬à¬¿à¬¨à¬¿à¬®à­Ÿ à¬•à­ à¬¸à­‡à¬Ÿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage à¬¬à¬¿à¬¨à¬¿à¬®à­Ÿ à¬•à­ à¬¸à­‡à¬Ÿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "semanage à¬…ନà­à¬¬à¬¾à¬¦à¬•à­ à¬¦à¬¾à¬–ଲ à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage à¬¬à¬¿à¬¨à¬¿à¬®à­Ÿ à¬šà¬¾à¬²à­à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux à¬šà¬¾à¬³à¬• à¬•à­ à¬—ୋଟିଠତାଲିକା à¬°à­‡ à¬²à­‡à¬–ି à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "SELinux à¬à¬•à¬•à¬¾à¬‚ଶକୠତାଲିକାଭà­à¬•à­à¬¤ à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "à¬à¬•à¬•à¬¾à¬‚ଶ à¬¨à¬¾à¬®"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "ସଂସà­à¬•à¬°à¬£"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "ନିଷà­à¬•à­à¬°à¬¿à­Ÿ"
+@@ -163,9 +159,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ %s à¬¦à¬¾à­Ÿà¬¿à¬¤à­à¬¬ à¬•à­ à¬¯à­‹à¬— à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -177,24 +173,22 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "ଅନà­à¬®à­‹à¬¦à¬¨à¬•à¬¾à¬°à­€ à¬ªà­à¬°à¬•à¬¾à¬°à¬—à­à¬¡à¬¿à¬•"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "ଅନà­à¬®à­‹à¬¦à¬¨à¬•à¬¾à¬°à­€ à¬ªà­à¬°à¬•à¬¾à¬°à¬—à­à¬¡à¬¿à¬•"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "ଅନà­à¬®à¬¤à¬¿ à¬ªà¬¾à¬‡à¬¬à¬¾ à¬¯à­‹à¬—à­à­Ÿ à¬ªà¬°à¬¿à¬¸à¬° %s à¬•à­ à¬¬à¬¿à¬¨à­à­Ÿà¬¾à¬¸ à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬ (à¬à¬•à¬•à¬¾à¬‚ଶ à¬¸à­à¬¥à¬¾à¬ªà¬¨ à¬¬à¬¿à¬«à¬³)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "ଅନà­à¬®à¬¤à¬¿ à¬ªà¬¾à¬‡à¬¬à¬¾ à¬¯à­‹à¬—à­à­Ÿ à¬ªà¬°à¬¿à¬¸à¬° %s à¬•à­ à¬•à¬¾à¬¢à¬¼à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬ (କାଢ଼ିବା à¬¬à¬¿à¬«à¬³)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -214,9 +208,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "%s à¬ªà¬¾à¬‡à¬ à¬²à¬—ଇନୠପà­à¬°à¬¤à¬¿à¬šà¬¿à¬¤à­à¬°à¬£ à¬° à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡à¬›à¬¿ à¬•à¬¿ à¬¨à¬¾à¬¹à¬¿à¬ à¬¤à¬¾à¬¹à¬¾ à¬¯à¬¾à¬žà­à¬š à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux à¬šà¬¾à¬³à¬• %s à¬…ବସà­à¬¥à¬¿à¬¤ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "Linux à¬¶à­à¬°à­‡à¬£à­€ %s à¬…ବସà­à¬¥à¬¿à¬¤ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -283,15 +277,20 @@ msgid "Could not list login mappings"
+ msgstr "ଲଗଇନୠପà­à¬°à¬¤à¬¿à¬šà¬¿à¬¤à­à¬°à¬£ à¬•à­ à¬¤à¬¾à¬²à¬¿à¬•à¬¾ à¬°à­‡ à¬²à­‡à¬–ି à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "ଲଗଇନ à¬¨à¬¾à¬®"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux à¬šà¬¾à¬³à¬•"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS à¬ªà¬°à¬¿à¬¸à¬°"
+@@ -309,9 +308,9 @@ msgid "Could not query user for %s"
+ msgstr "%s à¬ªà¬¾à¬‡à¬ à¬šà¬¾à¬³à¬• à¬•à­ à¬ªà­à¬°à¬¶à­à¬¨ à¬ªà¬šà¬¾à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬¬ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ à¬«à¬¾à¬‡à¬² à¬ªà­à¬°à¬¸à¬™à­à¬— à¬•à­ à¬¯à­‹à¬— à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "%s à¬ªà¬¾à¬‡à¬ à¬…ତିକମରେ à¬—ୋଟିଠଭà­à¬®à¬¿à¬•à¬¾ à¬¯à­‹à¬— à¬•à¬°à¬¿à¬¬à¬¾ à¬‰à¬šà¬¿à¬¤"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -401,6 +400,7 @@ msgid "MCS Range"
+ msgstr "MCS à¬ªà¬°à¬¿à¬¸à¬°"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux à¬­à­‚ମିକାଗà­à¬¡à¬¿à¬•"
+@@ -531,18 +531,17 @@ msgstr "SELinux à¬¸à¬‚ଯୋଗିକୀ à¬ªà­à¬°à¬•à¬¾à¬°"
+ msgid "Proto"
+ msgstr "ପà­à¬°à¬¥à¬®"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "ସଂଯୋଗିକୀ à¬¸à¬‚ଖà­à­Ÿà¬¾"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "ସଂଯୋଗିକୀ à¬†à¬¬à¬¶à­à¬¯à¬•"
++msgstr "ନୋଡ à¬ à¬¿à¬•à¬£à¬¾ à¬†à¬¬à¬¶à­à¬¯à¬•"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "ଅଜଣା à¬•à¬¿à¬®à­à¬¬à¬¾ à¬…ନà­à¬ªà¬¸à­à¬¥à¬¿à¬¤ à¬ªà­à¬°à­‹à¬Ÿà­‹à¬•à¬²"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -559,14 +558,14 @@ msgstr "%s à¬ªà¬¾à¬‡à¬ à¬šà¬¾à¬¬à¬¿ à¬¸à­à¬°à­à¬·à­à¬Ÿà¬¿ à¬•à¬°à¬¿ à¬ªà¬¾
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "%s/%s à¬¸à¬‚ଯୋଗିକୀ à¬° à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡à¬›à¬¿ à¬•à¬¿ à¬¨à¬¾à¬¹à¬¿à¬ à¬¤à¬¾à¬¹à¬¾ à¬¯à¬¾à¬žà­à¬š à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "%s à¬ à¬¿à¬•à¬£à¬¾ à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾à¬¯à¬¾à¬‡à¬›à¬¿ à¬•à¬¿ à¬¨à¬¾à¬¹à¬¿à¬ à¬¤à¬¾à¬¹à¬¾ à¬¯à¬¾à¬žà­à¬š à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ à¬—ୋଟିଠଚାବି à¬¸à­à¬°à­à¬·à­à¬Ÿà¬¿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "%s à¬ªà¬¾à¬‡à¬ à¬ à¬¿à¬•à¬£à¬¾ à¬¸à­ƒà¬·à­à¬Ÿà¬¿ à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -575,74 +574,72 @@ msgid "Could not create context for %s"
+ msgstr "%s à¬ªà¬¾à¬‡à¬ à¬ªà­à¬°à¬¸à¬™à­à¬— à¬¸à­à¬°à­à¬·à­à¬Ÿà¬¿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ à¬¨à¬¾à¬® à¬¸à­‡à¬Ÿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "%s à¬ªà¬¾à¬‡à¬ à¬®à¬¾à¬¸à­à¬• à¬¸à­‡à¬Ÿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ à¬«à¬¾à¬‡à¬² à¬ªà­à¬°à¬¸à¬™à­à¬— à¬°à­‡ à¬šà¬¾à¬³à¬• à¬•à­ à¬¸à­‡à¬Ÿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "%s à¬ªà¬¾à¬‡à¬ à¬ à¬¿à¬•à¬£à¬¾ à¬ªà­à¬°à¬¸à¬™à­à¬—ରେ à¬šà¬¾à¬³à¬•à¬•à­ à¬¬à¬¿à¬¨à­à­Ÿà¬¾à¬¸ à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ à¬«à¬¾à¬‡à¬² à¬ªà­à¬°à¬¸à¬™à­à¬— à¬° à¬¦à¬¾à­Ÿà¬¿à¬¤à­à¬¬ à¬•à­ à¬¸à­‡à¬Ÿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "%s à¬ªà¬¾à¬‡à¬ à¬ à¬¿à¬•à¬£à¬¾ à¬ªà­à¬°à¬¸à¬™à­à¬—ରେ à¬­à­à¬®à¬¿à¬•à¬¾à¬•à­ à¬¬à¬¿à¬¨à­à­Ÿà¬¾à¬¸ à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ à¬«à¬¾à¬‡à¬² à¬ªà­à¬°à¬¸à¬™à­à¬— à¬° à¬ªà­à¬°à¬•à¬¾à¬° à¬•à­ à¬¸à­‡à¬Ÿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "%s à¬ªà¬¾à¬‡à¬ à¬ à¬¿à¬•à¬£à¬¾ à¬ªà­à¬°à¬¸à¬™à­à¬—ରେ à¬ªà­à¬°à¬•à¬¾à¬°à¬•à­ à¬¬à¬¿à¬¨à­à­Ÿà¬¾à¬¸ à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ à¬«à¬¾à¬‡à¬² à¬ªà­à¬°à¬¸à¬™à­à¬— à¬°à­‡ à¬à¬®à­.à¬à¬².à¬à¬¸à­. à¬•à­à¬·à­‡à¬¤à­à¬° à¬•à­ à¬¸à­‡à¬Ÿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "%s à¬ªà¬¾à¬‡à¬ à¬ à¬¿à¬•à¬£à¬¾ à¬ªà­à¬°à¬¸à¬™à­à¬—ରେ mls à¬•à­à¬·à­‡à¬¤à­à¬°à¬•à­ à¬¬à¬¿à¬¨à­à­Ÿà¬¾à¬¸ à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ à¬«à¬¾à¬‡à¬² à¬ªà­à¬°à¬¸à¬™à­à¬— à¬•à­ à¬¸à­‡à¬Ÿ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "%s à¬ªà¬¾à¬‡à¬ à¬ à¬¿à¬•à¬£à¬¾ à¬ªà­à¬°à¬¸à¬™à­à¬—କୠବିନà­à­Ÿà¬¾à¬¸ à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "%s/%s à¬¸à¬‚ଯୋଗିକୀ à¬•à­ à¬¯à­‹à¬— à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "ଠିକଣା %sକୠଯୋଗକରିପାରିଲା à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "%s/%s à¬¸à¬‚ଯୋଗିକୀ à¬•à­ à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "ଠିକଣା %sକୠବà­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "%s/%s à¬¸à¬‚ଯୋଗିକୀ à¬•à­ à¬ªà­à¬°à¬¶à­à¬¨ à¬ªà¬šà¬¾à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "ଠିକଣା %s à¬•à­ à¬ªà­à¬°à¬¶à­à¬¨ à¬ªà¬šà¬¾à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "%s/%s à¬¸à¬‚ଯୋଗିକୀ à¬•à­ à¬°à­‚ପାନà­à¬¤à¬°à¬¿à¬¤ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "ଠିକଣା %s à¬•à­ à¬ªà¬°à¬¿à¬¬à¬°à­à¬¤à­à¬¤à¬¨ à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "%s/%s à¬¸à¬‚ଯୋଗିକୀ à¬Ÿà¬¿ à¬¨à¬¿à­Ÿà¬® à¬°à­‡ à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡à¬›à¬¿, à¬à¬¹à¬¾à¬•à­ à¬…ପସାରଣ à¬•à¬°à¬¿à¬¹à­‡à¬¬ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "ଠିକଣା %sଟି à¬¨à¬¿à­Ÿà¬®à¬°à­‡ à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾à¬¯à¬¾à¬‡à¬›à¬¿, à¬à¬¹à¬¾à¬•à­ à¬…ପସାରଣ à¬•à¬°à¬¿à¬¹à­‡à¬¬ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "%s à¬…ନà­à¬¤à¬°à¬¾à¬ªà­à¬°à­à¬·à­à¬  à¬•à­ à¬…ପସାରଣ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "ଠିକଣା %sକୠଅପସାରଣ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ à¬²à¬—ଇନୠପà­à¬°à¬¤à¬¿à¬šà¬¿à¬¤à­à¬°à¬£ à¬•à­ à¬…ପସାରଣ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "ସଂଯୋଗିକୀ à¬®à¬¾à¬¨à¬™à­à¬•à­ à¬¤à¬¾à¬²à¬¿à¬•à¬¾ à¬°à­‡ à¬²à­‡à¬–ି à¬ªà¬¾à¬°à¬¿à¬¬ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr "ଠିକଣାଗà­à¬¡à¬¼à¬¿à¬•à­ à¬¤à¬¾à¬²à¬¿à¬•à¬¾à¬­à­à¬•à­à¬¤ à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬¬ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -716,9 +713,8 @@ msgid "Could not delete interface %s"
+ msgstr "%s à¬…ନà­à¬¤à¬°à¬¾à¬ªà­à¬°à­à¬·à­à¬  à¬•à­ à¬…ପସାରଣ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "%s à¬…ନà­à¬¤à¬°à¬¾à¬ªà­à¬°à­à¬·à­à¬  à¬•à­ à¬…ପସାରଣ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -733,9 +729,9 @@ msgid "Context"
+ msgstr "ପà­à¬°à¬¸à¬™à­à¬—"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s à¬ªà¬¾à¬‡à¬ à¬«à¬¾à¬‡à¬² à¬ªà­à¬°à¬¸à¬™à­à¬— à¬•à­ à¬ªà­‚ରà­à¬¬à¬°à­ à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡à¬›à¬¿"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -743,9 +739,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux à¬šà¬¾à¬³à¬• %s à¬…ବସà­à¬¥à¬¿à¬¤ à¬¨à¬¾à¬¹à¬¿à¬"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -865,11 +861,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fପà­à¬°à¬¸à¬™à­à¬—"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -888,9 +883,9 @@ msgid "Could not query file context %s"
+ msgstr "ଫାଇଲ à¬ªà­à¬°à¬¸à¬™à­à¬— à¬•à­ %s à¬•à­ à¬ªà­à¬°à¬¶à­à¬¨ à¬ªà¬šà¬¾à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "ଆପଣ à¬—ୋଟିଠମୂଲà­à­Ÿ à¬¨à¬¿à¬°à­à¬¦à­à¬¦à¬¿à¬·à­à¬Ÿ à¬•à¬°à¬¿à¬¬à¬¾ à¬‰à¬šà¬¿à¬¤"
++msgstr "ଆପଣ à¬¨à¬¿à¬®à­à¬¨à¬²à¬¿à¬–ିତ à¬®à­‚ଲà­à­Ÿà¬—à­à¬¡à¬¼à¬¿à¬• à¬®à¬§à­à¬¯à¬°à­ à¬—ୋଟିଠଉଲà­à¬²à­‡à¬–କରିବା à¬‰à¬šà¬¿à¬¤: %s"
+ #: ../semanage/seobject.py:2004
+ #, python-format
+@@ -905,7 +900,7 @@ msgstr "ବà­à¬²à¬¿à¬†à¬¨ %s à¬•à­ à¬°à­‚ପାନà­à¬¤à¬°à¬¿à¬¤ à¬•à¬°à¬¿ 
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "ଖରାପ à¬¶à­ˆà¬³à­€ %s: à¬…ନà­à¬²à¬¿à¬ªà¬¿ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -938,15 +933,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux à¬¬à­à¬²à¬¿à¬†à¬¨"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "ଅବସà­à¬¥à¬¿à¬¤à¬¿"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "ବରà­à¬£à­à¬£à¬¨à¬¾"
+@@ -1283,1615 +1278,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "ପସନà­à¬¦ à¬¤à­ƒà¬Ÿà¬¿ %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "%s à¬•à­ à¬–ୋଲିବା à¬°à­‡ à¬…ସଫଳ: non-MLS à¬¯à¬¨à­à¬¤à­à¬° à¬®à¬¾à¬¨à¬™à­à¬• à¬°à­‡ à¬…ନà­à¬¬à¬¾à¬¦ à¬—à­à¬¡à¬¿à¬• à¬¸à¬¹à¬¾à­Ÿà¬• à¬¹à­‡à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "ସà­à¬¤à¬°"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "ଅନà­à¬¬à¬¾à¬¦"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "ଅନà­à¬¬à¬¾à¬¦ à¬—à­à¬¡à¬¿à¬• à¬–ାଲି à¬¸à­à¬¥à¬¾à¬¨ à¬§à¬¾à¬°à¬£ à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬¬à­‡ à¬¨à¬¾à¬¹à¬¿à¬ '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "ଅବୈଧ à¬¸à­à¬¤à¬° '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s à¬Ÿà¬¿ à¬ªà­‚ରà­à¬¬à¬°à­ à¬…ନà­à¬¬à¬¾à¬¦ à¬®à¬¾à¬¨à¬™à­à¬• à¬°à­‡ à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡à¬›à¬¿"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s à¬Ÿà¬¿ à¬…ନà­à¬¬à¬¾à¬¦ à¬®à¬¾à¬¨à¬™à­à¬• à¬°à­‡ à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡ à¬¨à¬¾à¬¹à¬¿à¬"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s à¬ªà¬¾à¬‡à¬ à¬²à¬—ଇନୠପà­à¬°à¬¤à¬¿à¬šà¬¿à¬¤à­à¬°à¬£ à¬ªà­‚ରà­à¬¬à¬°à­ à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡à¬›à¬¿"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux à¬šà¬¾à¬³à¬• à¬ªà­à¬°à¬¤à¬¿à¬šà¬¿à¬¤à­à¬°à¬£à¬•à­ à¬¯à­‹à¬— à¬•à¬°à¬¿ à¬ªà¬¾à¬°à¬¿à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux à¬šà¬¾à¬³à¬• %s à¬•à­ à¬ªà­‚ରà­à¬¬à¬°à­ à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡à¬›à¬¿"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "ସଂଯୋଗିକୀ à¬†à¬¬à¬¶à­à¬¯à¬•"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "%s/%s à¬¸à¬‚ଯୋଗିକୀ à¬•à­ à¬ªà­‚ରà­à¬¬à¬°à­ à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡à¬›à¬¿"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "%s à¬…ନà­à¬¤à¬°à¬¾à¬ªà­à¬°à­à¬·à­à¬  à¬° à¬ªà­‚ରà­à¬¬à¬°à­ à¬¬à­à¬¯à¬¾à¬–à­à¬¯à¬¾ à¬•à¬°à¬¾ à¬¯à¬¾à¬‡à¬›à¬¿"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "ସାମରà­à¬¥à­à¬¯ à¬®à¬¾à¬¨à¬™à­à¬• à¬° à¬ªà­à¬°à¬¾à¬°à¬®à­à¬­à¬¿à¬•à¬°à¬£ à¬¸à¬®à­Ÿ à¬°à­‡ à¬¤à­ƒà¬Ÿà¬¿, à¬ªà¬°à¬¿à¬¤à­à¬¯à¬¾à¬— à¬•à¬°à­à¬…ଛି \n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "ସାମରà­à¬¥à­à¬¯ à¬®à¬¾à¬¨à¬™à­à¬•à­ à¬¬à¬¿à¬¨à­à¬¯à¬¾à¬¸ à¬•à¬°à¬¿à¬¬à¬¾ à¬¸à¬®à­Ÿ à¬°à­‡ à¬¤à­ƒà¬Ÿà¬¿, à¬ªà¬°à¬¿à¬¤à­à¬¯à¬¾à¬— à¬•à¬°à­à¬…ଛି\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS à¬•à­ à¬¬à¬¿à¬¨à­à¬¯à¬¾à¬¸ à¬•à¬°à¬¿à¬¬à¬¾ à¬¸à¬®à­Ÿà¬°à­‡ à¬¤à­ƒà¬Ÿà¬¿, à¬ªà¬°à¬¿à¬¤à­à¬¯à¬¾à¬— à¬•à¬°à­à¬…ଛି\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "ସାମରà­à¬¥à­à¬¯ à¬®à¬¾à¬¨à¬™à­à¬•à­ à¬¤à­à¬¯à¬¾à¬— à¬•à¬°à¬¿à¬¬à¬¾ à¬¸à¬®à­Ÿ à¬°à­‡ à¬¤à­ƒà¬Ÿà¬¿, à¬ªà¬°à¬¿à¬¤à­à¬¯à¬¾à¬— à¬•à¬°à­à¬…ଛି \n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "SETUID à¬¸à¬¾à¬®à¬°à­à¬¥à­à¬¯ à¬•à­ à¬¤à­à¬¯à¬¾à¬— à¬•à¬°à¬¿à¬¬à¬¾ à¬¸à¬®à­Ÿ à¬°à­‡ à¬¤à­ƒà¬Ÿà¬¿, à¬ªà¬°à¬¿à¬¤à­à¬¯à¬¾à¬— à¬•à¬°à­à¬…ଛି \n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "caps à¬•à­ à¬®à­à¬•à­à¬¤ à¬•à¬°à¬¿à¬¬à¬¾ à¬¸à¬®à­Ÿà¬°à­‡ à¬¤à­ƒà¬Ÿà¬¿\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "non-MLS à¬¯à¬¨à­à¬¤à­à¬° à¬®à¬¾à¬¨à¬™à­à¬• à¬°à­‡ à¬…ନà­à¬¬à¬¾à¬¦ à¬—à­à¬¡à¬¿à¬• à¬¸à¬¹à¬¾à­Ÿà¬• à¬¹à­‡à¬²à¬¾ à¬¨à¬¾à¬¹à¬¿à¬"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "ବà­à¬²à¬¿à¬†à¬¨"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "ସମସà­à¬¤"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "ଇଚà­à¬›à¬¾à¬°à­‚ପଣ"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "ଫାଇଲ à¬¨à¬¾à¬®à¬ªà¬Ÿà¬¿à¬•à¬°à¬£"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "ଫାଇଲ\n"
+-#~ "ନିରà­à¬¦à­à¬¦à¬¿à¬·à­à¬Ÿà¬• à¬¸à­‚ଚନା"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "ଫାଇଲ à¬ªà­à¬°à¬•à¬¾à¬°"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "ଫାଇଲ\n"
+-#~ "ପà­à¬°à¬•à¬¾à¬°"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "ଚାଳକ à¬ªà­à¬°à¬¤à¬¿à¬šà¬¿à¬¤à­à¬°à¬£"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "ଲଗଇନ\n"
+-#~ "ନାମ"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "ଚାଳକ"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS à¬ªà¬°à¬¿à¬¸à¬°"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "ଲଗଇନ '%s' à¬Ÿà¬¿ à¬†à¬¬à¬¶à­à­Ÿà¬•"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "ନୀତି à¬à¬•à¬•à¬¾à¬‚ଶ"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "ଲେଖା à¬ªà¬°à­€à¬•à­à¬·à¬£à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "ଲେଖା à¬ªà¬°à­€à¬•à­à¬·à¬£à¬•à­ à¬¸à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "ନୀତି à¬à¬•à¬•à¬¾à¬‚ଶ à¬§à¬¾à¬°à¬£ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "ପଲଜେନ"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "ମନୋଜ à¬•à­à¬®à¬¾à¬° à¬—ିରି"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux à¬¨à­€à¬¤à¬¿ à¬¸à­ƒà¬·à­à¬Ÿà¬¿ à¬‰à¬ªà¬•à¬°à¬£"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "ପà­à¬°à­Ÿà­‹à¬—ଗà­à¬¡à¬¿à¬•à­ à¬•à¬¿à¬®à­à¬¬à¬¾ SELinux à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° à¬•à¬°à­à¬¥à¬¿à¬¬à¬¾ à¬šà¬¾à¬³à¬•à¬—à­à¬¡à¬¿à¬•à­ à¬ªà¬°à¬¿à¬¸à­€à¬®à¬¿à¬¤ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬à¬¹à¬¿ à¬¸à¬¾à¬§à¬¨à¬Ÿà¬¿ à¬—ୋଟିଠନୀତି "
+-#~ "ଢାଞà­à¬šà¬¾ à¬¸à­ƒà¬·à­à¬Ÿà¬¿à¬•à¬°à¬¿à¬¬à¬¾à¬°à­‡ à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° à¬•à¬°à¬¿à¬¹à­‡à¬¬à¥¤   \n"
+-#~ "\n"
+-#~ "à¬à¬¹à¬¿ à¬¸à¬¾à¬§à¬¨à¬Ÿà¬¿ à¬¸à­ƒà¬·à­à¬Ÿà¬¿à¬•à¬°à­‡:\n"
+-#~ "ପà­à¬°à¬¬à¬°à­à¬¤à­à¬¤à¬¨ à¬«à¬¾à¬‡à¬² à¬Ÿà¬¾à¬‡à¬ª à¬•à¬°à¬¿à¬¬à¬¾à¬°à­‡ (te)\n"
+-#~ "\n"
+-#~ "ଅନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬  à¬«à¬¾à¬‡à¬² (if)\n"
+-#~ "ସେଲ à¬¸à­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ (sh) - à¬¨à­€à¬¤à¬¿ à¬¸à¬™à­à¬•à¬³à¬¨ à¬à¬¬à¬‚ à¬¸à­à¬¥à¬¾à¬ªà¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬°à­‡ à¬¬à­à­Ÿà¬¬à¬¹à­ƒà¬¤ à¬¹à­‹à¬‡à¬¥à¬¾à¬à¥¤"
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "ପରିସୀମିତ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬¥à¬¿à¬¬à¬¾ à¬ªà­à¬°à­Ÿà­‹à¬—/ଚାଳକ à¬­à­‚ମିକାର à¬ªà­à¬°à¬•à¬¾à¬° à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>ପà­à¬°à­Ÿà­‹à¬—ଗà­à¬¡à¬¿à¬•</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "ମାନକ Init à¬¡à­‡à¬®à¬¨ à¬—à­à¬¡à¬¿à¬• à¬¹à­‡à¬²à¬¾ init à¬¸à­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ à¬œà¬°à­€à¬†à¬°à­‡ à¬¬à­à¬Ÿà¬°à­‡ à¬†à¬°à¬®à­à¬­ à¬¹à­‡à¬‰à¬¥à¬¿à¬¬à¬¾ à¬¡à­‡à¬®à¬¨à¬—à­à¬¡à¬¿à¬•à¥¤  "
+-#~ "ସାଧାରଣତଃ /etc/rc.d/init.d à¬°à­‡ à¬—ୋଟିଠସà­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ à¬†à¬¬à¬¶à­à­Ÿà¬• à¬•à¬°à­‡à¥¤ "
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "ମାନକ Init à¬¡à­‡à¬®à¬¨"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "ଇଣà­à¬Ÿà¬°à¬¨à­‡à¬Ÿ à¬¸à­‡à¬¬à¬¾ à¬¡à­‡à¬®à¬¨ à¬—à­à¬¡à¬¿à¬• xinetd à¬¦à­à­±à¬¾à¬°à¬¾ à¬†à¬°à¬®à­à¬­ à¬•à¬°à¬¾à¬¯à¬¾à¬‡à¬¥à¬¿à¬¬à¬¾ à¬¡à­‡à¬®à¬¨"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "ଇଣà­à¬Ÿà¬°à¬¨à­‡à¬Ÿ à¬¸à­‡à¬¬à¬¾ à¬¡à­‡à¬®à¬¨ (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "ୱେବ à¬ªà­à¬°à­Ÿà­‹à¬—ଗà­à¬¡à¬¿à¬•/ସà­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ (CGI) à­±à­‡à¬¬ à¬¸à¬°à¬°à­à¬­à¬° (apache) à¬¦à­à­±à¬¾à¬°à¬¾ à¬†à¬°à¬®à­à¬­ à¬¹à­‹à¬‡à¬¥à¬¿à¬¬à¬¾ CGI à¬¸à­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "ୱେବ à¬ªà­à¬°à­Ÿà­‹à¬—/ସà­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "ଚାଳକ à¬ªà­à¬°à­Ÿà­‹à¬—ଗà­à¬¡à¬¿à¬• à¬¹à­‡à¬‰à¬›à¬¿ à¬•à­Œà¬£à¬¸à¬¿ à¬ªà­à¬°à­Ÿà­‹à¬— à¬¯à¬¾à¬¹à¬¾à¬•à­à¬•à¬¿ à¬†à¬ªà¬£ à¬ªà¬°à¬¿à¬¸à­€à¬®à¬¿à¬¤ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬šà¬¾à¬¹à¬¿à¬à¬¬à­‡ à¬¯à¬¾à¬¹à¬¾à¬•à¬¿ à¬šà¬¾à¬³à¬• "
+-#~ "ଦà­à­±à¬¾à¬°à¬¾ à¬†à¬°à¬®à­à¬­ à¬¹à­‹à¬‡à¬¥à¬¾à¬"
+-
+-#~ msgid "User Application"
+-#~ msgstr "ଚାଳକ à¬ªà­à¬°à­Ÿà­‹à¬—"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>ଲଗଇନ à¬šà¬¾à¬³à¬•à¬—à­à¬¡à¬¿à¬•</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "ଗୋଟିଠଅବସà­à¬¥à¬¿à¬¤ à¬²à¬—ଇନ à¬šà¬¾à¬³à¬• à¬…ନà­à¬²à¬¿à¬ªà¬¿à¬•à­ à¬°à­‚ପାନà­à¬¤à¬° à¬•à¬°à¬¨à­à¬¤à­à¥¤"
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "ଅବସà­à¬¥à¬¿à¬¤ à¬šà¬¾à¬³à¬• à¬­à­‚ମିକା"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "à¬à¬¹à¬¿ à¬šà¬¾à¬³à¬•à¬Ÿà¬¿ à¬•à­‡à¬¬à¬³ à¬—ୋଟିଠଟରà­à¬®à¬¿à¬¨à¬¾à¬² à¬®à¬¾à¬§à­à¬¯à¬®à¬°à­‡ à¬•à¬¿à¬®à­à¬¬à¬¾ à¬¸à­‚ଦà­à¬° à¬²à¬—ଇନ à¬®à¬¾à¬§à­à¬¯à¬®à¬°à­‡ à¬¯à¬¨à­à¬¤à­à¬°à¬°à­‡ à¬²à¬—ଇନ "
+-#~ "କରିପାରିବ।  à¬ªà­‚ରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ à¬­à¬¾à¬¬à¬°à­‡ à¬à¬¹à¬¿ à¬šà¬¾à¬³à¬•à¬° setuid à¬¨à¬¥à¬¿à¬¬, à¬¨à­‡à¬Ÿà­±à¬°à­à¬•à¬¿à¬™à­à¬— à¬¨à¬¥à¬¿à¬¬, su à¬¨à¬¥à¬¿à¬¬, sudo "
+-#~ "ନଥିବ।"
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "ନà­à­Ÿà­à¬¨à¬¤à¬® à¬Ÿà¬°à­à¬®à¬¿à¬¨à¬¾à¬² à¬šà¬¾à¬³à¬• à¬­à­‚ମିକା"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "à¬à¬¹à¬¿ à¬šà¬¾à¬³à¬•à¬Ÿà¬¿ X à¬•à¬¿à¬®à­à¬¬à¬¾ à¬Ÿà¬°à­à¬®à¬¿à¬¨à¬¾à¬² à¬®à¬¾à¬§à­à¬¯à¬®à¬°à­‡ à¬¯à¬¨à­à¬¤à­à¬°à¬°à­‡ à¬²à¬—ଇନ à¬•à¬°à¬¿à¬ªà¬¾à¬°à­‡à¥¤  à¬ªà­‚ରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ à¬­à¬¾à¬¬à¬°à­‡ à¬à¬¹à¬¿ "
+-#~ "ଚାଳକର setuid à¬¨à¬¥à¬¿à¬¬, à¬¨à­‡à¬Ÿà­±à¬°à­à¬•à¬¿à¬™à­à¬— à¬¨à¬¥à¬¿à¬¬, sudo à¬¨à¬¥à¬¿à¬¬, su à¬¨à¬¥à¬¿à¬¬ "
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "ନà­à­Ÿà­à¬¨à¬¤à¬® X à­±à¬¿à¬£à­à¬¡à­‹ à¬šà¬¾à¬³à¬• à¬­à­‚ମିକା"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "ସମà­à¬ªà­‚ରà­à¬£à­à¬£ à¬¨à­‡à¬Ÿà­±à¬°à­à¬•à¬¿à¬™à­à¬— à¬¬à¬¿à¬¶à¬¿à¬·à­à¬Ÿ à¬šà¬¾à¬³à¬•, à¬¸à¬•à¬°à­à¬® à¬¬à¬¿à¬¨à¬¾ à¬•à­Œà¬£à¬¸à¬¿ setuid à¬ªà­à¬°à­Ÿà­‹à¬— à¬¨à¬¾à¬¹à¬¿à¬, sudo à¬¨à¬¾à¬¹à¬¿à¬, su "
+-#~ "ନାହିà¬à¥¤"
+-
+-#~ msgid "User Role"
+-#~ msgstr "ଚାଳକ à¬­à­‚ମିକା"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "ସମà­à¬ªà­‚ରà­à¬£à­à¬£ à¬¨à­‡à¬Ÿà­±à¬°à­à¬•à¬¿à¬™à­à¬— à¬¬à¬¿à¬¶à¬¿à¬·à­à¬Ÿ à¬šà¬¾à¬³à¬•, à¬¸à¬•à¬°à­à¬® à¬¬à¬¿à¬¨à¬¾ à¬•à­Œà¬£à¬¸à¬¿ setuid à¬ªà­à¬°à­Ÿà­‹à¬— à¬¨à¬¾à¬¹à¬¿à¬, su à¬¨à¬¾à¬¹à¬¿à¬, sudo à¬°à­ "
+-#~ "ମୂଳ à¬ªà­à¬°à¬¶à¬¾à¬¸à¬¨ à¬­à­‚ମିକାଗà­à¬¡à¬¿à¬•à­"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "ପà­à¬°à¬¶à¬¾à¬¸à¬¨ à¬šà¬¾à¬³à¬• à¬¨à¬¿à¬¤à­€"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>ମୂଳ à¬šà¬¾à¬³à¬•à¬—à­à¬¡à¬¿à¬•</b>"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "ମୂଳ à¬ªà­à¬°à¬¶à¬¾à¬¸à¬• à¬šà¬¾à¬³à¬• à¬­à­‚ମିକାକୠଚୟନ à¬•à¬°à¬¨à­à¬¤à­, à¬¯à¬¦à¬¿ à¬à¬¹à¬¿ à¬šà¬¾à¬³à¬•à¬Ÿà¬¿ à¬®à­‚ଳ à¬†à¬•à¬¾à¬°à¬°à­‡ à¬šà¬¾à¬²à­à¬¥à¬¿à¬¬à¬¾ à¬¸à¬®à­Ÿà¬°à­‡ à¬¯à¬¨à­à¬¤à­à¬°à¬•à­ "
+-#~ "ପà­à¬°à¬¶à¬¾à¬¸à¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬°à­‡ à¬¬à­à­Ÿà¬¬à¬¹à­ƒà¬¤ à¬¹à­‡à¬¬à¥¤  à¬à¬¹à¬¿ à¬šà¬¾à¬³à¬•à¬Ÿà¬¿ à¬¸à¬¿à¬§à¬¾à¬¸à¬³à¬– à¬­à¬¾à¬¬à¬°à­‡ à¬¯à¬¨à­à¬¤à­à¬°à¬°à­‡ à¬²à¬—ଇନ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬¸à¬®à¬°à­à¬¥ "
+-#~ "ହେବ à¬¨à¬¾à¬¹à¬¿à¬à¥¤"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "ମୂଳ à¬ªà­à¬°à¬¶à¬¾à¬¸à¬¨ à¬šà¬¾à¬³à¬• à¬­à­‚ମିକା"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "ପରିସୀମିତ à¬¹à­‡à¬¬à¬¾à¬•à­à¬¥à¬¿à¬¬à¬¾ à¬ªà­à¬°à­Ÿà­‹à¬—ର à¬¨à¬¾à¬® à¬•à¬¿à¬®à­à­±à¬¾ à¬šà¬¾à¬³à¬• à¬­à­‚ମିକାକୠଭରଣ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "ନାମ"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "ନିଷà­à¬ªà¬¾à¬¦à­à­Ÿà¬•à­ à¬ªà¬°à¬¿à¬¸à­€à¬®à¬¿à¬¤ à¬•à¬°à¬¿à¬¬à¬¾à¬ªà¬¾à¬‡à¬ à¬¸à¬®à­à¬ªà­‚ରà­à¬£à­à¬£ à¬ªà¬¥ à¬­à¬°à¬£ à¬•à¬°à¬¨à­à¬¤à­à¥¤"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "ପରିସୀମିତ à¬ªà­à¬°à­Ÿà­‹à¬— à¬•à¬¿à¬®à­à­±à¬¾ à¬šà¬¾à¬³à¬• à¬­à­‚ମିକା à¬ªà¬¾à¬‡à¬ à¬à¬•à­ˆà¬• à¬¨à¬¾à¬® à¬­à¬°à¬£ à¬•à¬°à¬¨à­à¬¤à­à¥¤"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Executable"
+-#~ msgstr "ନିଷà­à¬ªà¬¾à¬¦à­à­Ÿ"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Init script"
+-#~ msgstr "Init à¬¸à­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "ପରିସୀମିତ à¬ªà­à¬°à­Ÿà­‹à¬—କୠଆରମà­à¬­ à¬•à¬°à¬¿à¬¬à¬¾à¬ªà¬¾à¬‡à¬ à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° à¬¹à­‡à¬‰à¬¥à¬¿à¬¬à¬¾ init à¬¸à­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿà¬•à­ à¬¸à¬®à­à¬ªà­‚ରà­à¬£à­à¬£ à¬ªà¬¥ à¬­à¬°à¬£ à¬•à¬°à¬¨à­à¬¤à­à¥¤"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "ଆପଣ à¬‡à¬šà­à¬›à¬¾à¬°à­‚ପଣ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬šà¬¾à¬¹à­à¬à¬¥à¬¿à¬¬à¬¾ à¬šà¬¾à¬³à¬• à¬­à­‚ମିକା à¬—à­à¬¡à¬¿à¬•à­ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr "ଚାଳକ à¬­à­‚ମିକା à¬—à­à¬¡à¬¿à¬•à­ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­ à¬¯à¬¿à¬ à¬à¬¹à¬¿ à¬ªà­à¬°à­Ÿà­‹à¬— à¬ªà¬°à¬¿à¬¸à¬°à¬—à­à¬¡à¬¿à¬•à­ à¬¸à¬•à¬°à­à¬® à¬•à¬°à¬¿à¬¬à¥¤"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "ଅତିରିକà­à¬¤ à¬ªà¬°à¬¿à¬¸à¬°à¬—à­à¬¡à¬¿à¬•à­ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­ à¬¯à¬¾à¬¹à¬¾à¬•à­à¬•à¬¿ à¬à¬¹à¬¿ à¬šà¬¾à¬³à¬• à¬­à­‚ମିକା à¬¸à¬•à¬°à­à¬® à¬•à¬°à¬¿à¬¬"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr "ପà­à¬°à­Ÿà­‹à¬— à¬ªà¬°à¬¿à¬¸à¬°à¬—à­à¬¡à¬¿à¬•à­ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­ à¬¯à¬¾à¬¹à¬¾à¬•à­ à¬†à¬ªà¬£ à¬šà¬¾à¬¹à­à¬à¬¥à¬¿à¬¬à¬¾ à¬šà¬¾à¬³à¬• à¬­à­à¬®à¬¿à¬•à¬¾à¬•à­ à¬¸à¬•à¬°à­à¬® à¬•à¬°à¬¿à¬¬à¥¤"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "ଚାଳକ à¬­à­‚ମିକାଗà­à¬¡à¬¿à¬•à­ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­ à¬¯à¬¿à¬ à¬à¬¹à¬¿ à¬ªà¬°à¬¿à¬¸à¬°à¬•à­ à¬¸à¬•à¬°à­à¬® à¬•à¬°à¬¿à¬¬"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "ଅତିରିକà­à¬¤ à¬ªà¬°à¬¿à¬¸à¬°à¬—à­à¬¡à¬¿à¬•à­ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­ à¬¯à¬¾à¬¹à¬¾à¬•à­à¬•à¬¿ à¬à¬¹à¬¿ à¬šà¬¾à¬³à¬• à¬­à­‚ମିକା à¬ªà­à¬°à¬¶à¬¾à¬¸à¬¨ à¬•à¬°à¬¿à¬¬"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "ପରିସରଗà­à¬¡à¬¿à¬•à­ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­ à¬¯à¬¾à¬¹à¬¾à¬•à­à¬•à¬¿ à¬à¬¹à¬¿ à¬šà¬¾à¬³à¬• à¬ªà­à¬°à¬¶à¬¾à¬¸à¬¨ à¬•à¬°à¬¿à¬¬à¥¤"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "à¬à¬¹à¬¿ à¬šà¬¾à¬³à¬• à¬ªà¬¾à¬‡à¬ à¬…ତିରିକà­à¬¤ à¬­à­à¬®à¬¿à¬•à¬¾à¬—à­à¬¡à¬¿à¬•à­ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "ପà­à¬°à­Ÿà­‹à¬—/ଚାଳକ à¬­à­‚ମିକାକୠମାନà­à¬¥à¬¿à¬¬à¬¾ à¬¨à­‡à¬Ÿà­±à¬°à­à¬• à¬¸à¬‚ଯୋଗିକୀଗà­à¬¡à¬¿à¬•à­ à¬­à¬°à¬£ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP à¬¸à¬‚ଯୋଗିକୀ</b>"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr "କୌଣସି udp à¬¸à¬‚ଯୋଗିକୀକୠବାନà­à¬§à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ à¬ªà¬°à¬¿à¬¸à­€à¬®à¬¿à¬¤ à¬ªà­à¬°à­Ÿà­‹à¬—/ଚାଳକ à¬­à­‚ମିକାକୠଅନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "ସମସà­à¬¤"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "bindresvport à¬•à­ 0 à¬¸à¬¹à¬¿à¬¤ à¬¡à¬¾à¬•à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ à¬ªà­à¬°à­Ÿà­‹à¬—/ଚାଳକ à¬­à­‚ମିକାକୠଅନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­à¥¤ à¬¸à¬‚ଯୋଗିକୀ "
+-#~ "600-1024 à¬•à­ à¬¬à¬¾à¬¨à­à¬§à¬¿à¬•à¬°à¬¿"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "udp à¬¸à¬‚ଯୋଗିକୀ à¬®à¬¾à¬¨à¬™à­à¬•à¬° à¬•à¬®à¬¾ à¬¬à¬¿à¬­à¬¾à¬œà¬¿à¬¤ à¬¤à¬¾à¬²à¬¿à¬•à¬¾ à¬•à¬¿à¬®à­à­±à¬¾ à¬¸à¬‚ଯୋଗିକୀ à¬®à¬¾à¬¨à¬™à­à¬•à¬° à¬ªà¬°à¬¿à¬¸à¬° à¬¯à¬¿à¬à¬•à¬¿ à¬ªà­à¬°à­Ÿà­‹à¬—/"
+-#~ "ଚାଳକ à¬­à­‚ମିକାକୠବାନà­à¬§à¬¿à¬¥à¬¾à¬à¥¤ à¬‰à¬¦à¬¾à¬¹à¬°à¬£: 612, 650-660"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "ଅସଂରକà­à¬·à¬¿à¬¤ à¬¸à¬‚ଯୋଗିକୀ  (> 1024)"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "ସଂଯୋଗିକୀ à¬šà­Ÿà¬¨à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr "କୌଣସି udp à¬¸à¬‚ଯୋଗିକୀ > 1024 à¬•à­ à¬¬à¬¾à¬¨à­à¬§à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ à¬ªà­à¬°à­Ÿà­‹à¬—/ଚାଳକ à¬­à­‚ମିକାକୠଅନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP à¬¸à¬‚ଯୋଗିକୀ</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr "ପà­à¬°à­Ÿà­‹à¬—/ଚାଳକ à¬­à­‚ମିକାକୠସଂଯà­à¬•à­à¬¤ à¬¨à­‡à¬Ÿà­±à¬°à­à¬• à¬¸à¬‚ଯୋଗିକୀଗà­à¬¡à¬¿à¬•à­ à¬­à¬°à¬£ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "tcp à¬¸à¬‚ଯୋଗିକୀ à¬®à¬¾à¬¨à¬™à­à¬•à¬° à¬•à¬®à¬¾ à¬¬à¬¿à¬­à¬¾à¬œà¬¿à¬¤ à¬¤à¬¾à¬²à¬¿à¬•à¬¾ à¬•à¬¿à¬®à­à­±à¬¾ à¬¸à¬‚ଯୋଗିକୀ à¬®à¬¾à¬¨à¬™à­à¬•à¬° à¬ªà¬°à¬¿à¬¸à¬° à¬¯à¬¿à¬à¬•à¬¿ à¬ªà­à¬°à­Ÿà­‹à¬—/"
+-#~ "ଚାଳକ à¬­à­‚ମିକାକୠସଂଯୋଗ à¬•à¬°à¬¿à¬¥à¬¾à¬à¥¤ à¬‰à¬¦à¬¾à¬¹à¬°à¬£: 612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "udp à¬¸à¬‚ଯୋଗିକୀ à¬®à¬¾à¬¨à¬™à­à¬•à¬° à¬•à¬®à¬¾ à¬¬à¬¿à¬­à¬¾à¬œà¬¿à¬¤ à¬¤à¬¾à¬²à¬¿à¬•à¬¾ à¬•à¬¿à¬®à­à­±à¬¾ à¬¸à¬‚ଯୋଗିକୀ à¬®à¬¾à¬¨à¬™à­à¬•à¬° à¬ªà¬°à¬¿à¬¸à¬° à¬¯à¬¿à¬à¬•à¬¿ à¬ªà­à¬°à­Ÿà­‹à¬—/"
+-#~ "ଚାଳକ à¬­à­‚ମିକାକୠସଂଯୋଗ à¬•à¬°à¬¿à¬¥à¬¾à¬à¥¤ à¬‰à¬¦à¬¾à¬¹à¬°à¬£: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "ସାଧାରଣ à¬ªà­à¬°à­Ÿà­‹à¬— à¬¬à¬¿à¬¶à¬¿à¬·à­à¬Ÿà¬¤à¬¾ à¬—à­à¬¡à¬¿à¬•à­ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "syslog à¬¸à¬¨à­à¬¦à­‡à¬¶à¬—à­à¬¡à¬¿à¬•à­ à¬²à­‡à¬–ିଥାà¬\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "/tmp à¬°à­‡ à¬…ସà­à¬¥à¬¾à­Ÿà­€ à¬«à¬¾à¬‡à¬²à¬—à­à¬¡à¬¿à¬•à­ à¬¸à­ƒà¬·à­à¬Ÿà¬¿/ପà­à¬°à¬•à¬³à¬¨ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "ବୈଧିକରଣ à¬ªà¬¾à¬‡à¬ Pam à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° à¬•à¬°à­‡"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "nsswitch à¬•à¬¿à¬®à­à­±à¬¾ getpw* à¬¡à¬¾à¬•à¬°à¬¾ à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° à¬•à¬°à­‡"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Uses dbus"
+-#~ msgstr "dbus à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° à¬•à¬°à­‡"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Sends audit messages"
+-#~ msgstr "ଲେଖା à¬ªà¬°à­€à¬•à­à¬·à¬£ à¬¸à¬¨à­à¬¦à­‡à¬¶ à¬ªà¬ à¬¾à¬"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "ଟରà­à¬®à¬¿à¬¨à¬¾à¬² à¬¸à¬¹à¬¿à¬¤ à¬ªà¬¾à¬°à¬¸à­à¬ªà¬° à¬‰à¬ªà¬°à­‡ à¬ªà­à¬°à¬­à¬¾à¬¬ à¬ªà¬•à¬¾à¬"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "ଇମେଲ à¬ªà¬ à¬¾à¬"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "ପà­à¬°à­Ÿà­‹à¬— à¬ªà¬°à¬¿à¬šà¬¾à¬³à¬¨ à¬•à¬°à­à¬¥à¬¿à¬¬à¬¾ à¬«à¬¾à¬‡à¬²/ଡିରେକà­à¬Ÿà­‹à¬°à­€ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "ଫାଇଲ/ଡିରେକà­à¬Ÿà­‹à¬°à¬¿ à¬—à­à¬¡à¬¿à¬•à­ à¬¸à¬‚ଯୋଗକରନà­à¬¤à­ à¬¯à¬¾à¬¹à¬¾à¬•à¬¿ à¬ªà­à¬°à­Ÿà­‹à¬—ରେ \"ଲେଖିବା\" à¬•à­ à¬†à¬¬à¬¶à­à­Ÿà¬• à¬•à¬°à­‡à¥¤ Pid "
+-#~ "ଫାଇଲଗà­à¬¡à¬¿à¬•, Log à¬«à¬¾à¬‡à¬²à¬—à­à¬¡à¬¿à¬•, /var/lib à¬«à¬¾à¬‡à¬²à¬—à­à¬¡à¬¿à¬• ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "ବà­à¬²à¬¿à¬†à¬¨à¬—à­à¬¡à¬¿à¬•à­ à¬šà­Ÿà¬¨à¬•à¬°à¬¨à­à¬¤à­ à¬¯à¬¾à¬¹à¬¾à¬•à­ à¬ªà­à¬°à­Ÿà­‹à¬— à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° à¬•à¬°à­‡"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr "à¬à¬¹à¬¿ à¬ªà¬°à¬¿à¬¸à­€à¬®à¬¿à¬¤ à¬ªà­à¬°à­Ÿà­‹à¬—/ଚାଳକ à¬ªà¬¾à¬‡à¬ à¬¬à­à¬²à¬¿à¬†à¬¨à¬—à­à¬¡à¬¿à¬•à­ à¬¯à­‹à¬—/ଅପସାରଣ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "ଭିତର à¬¨à­€à¬¤à¬¿ à¬¸à­ƒà¬·à­à¬Ÿà¬¿ à¬•à¬°à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "ନୀତି à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "ସୃଷà­à¬Ÿà¬¿à¬¹à­‡à¬‡à¬¥à¬¿à¬¬à¬¾ à¬¨à­€à¬¤à¬¿ à¬«à¬¾à¬‡à¬²à¬—à­à¬¡à¬¿à¬•"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "à¬à¬¹à¬¿ à¬¸à¬¾à¬§à¬¨à¬Ÿà¬¿ à¬¨à¬¿à¬®à­à¬¨à¬²à¬¿à¬–ିତ à¬®à¬¾à¬¨à¬™à­à¬•à­ à¬¸à­ƒà¬·à­à¬Ÿà¬¿ à¬•à¬°à¬¿à¬¬: \n"
+-#~ "ପà­à¬°à¬¬à¬°à­à¬¤à­à¬¤à¬¨ à¬Ÿà¬¾à¬‡à¬ªà¬•à¬°à¬¿à¬¬à¬¾(te), à¬«à¬¾à¬‡à¬² à¬ªà­à¬°à¬¸à¬™à­à¬—(fc), à¬…ନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬ (if), à¬¸à­‡à¬² à¬¸à­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ(sh)\n"
+-#~ "ସଙà­à¬•à¬³à¬¨/ସà­à¬¥à¬¾à¬ªà¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬¸à­‡à¬² à¬¸à­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à­‡ à¬à¬¬à¬‚ à¬«à¬¾à¬‡à¬²/ଡିରେକà­à¬Ÿà­‹à¬°à­€à¬•à­ à¬ªà­à¬¨à¬ƒà¬šà¬¿à¬¹à­à¬¨à¬Ÿ à¬•à¬°à­‡à¥¤  \n"
+-#~ "Linux à¬²à¬—ଇନ à¬šà¬¾à¬³à¬•à¬•à­ à¬šà¬¾à¬³à¬• à¬­à­‚ମିକା à¬¸à¬¹à¬¿à¬¤ à¬ªà¬°à¬¿à¬•à¬³à­à¬ªà¬¨à¬¾ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ semanage à¬•à¬¿à¬®à­à¬¬à¬¾ useradd à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° "
+-#~ "କରିଥାà¬à¥¤\n"
+-#~ "ଯନà­à¬¤à­à¬°à¬•à­ à¬…ନà­à¬®à­‹à¬¦à¬¨à¬•à¬¾à¬°à­€ à¬…ବସà­à¬¥à¬¾à¬°à­‡ à¬°à¬–à­‡ (setenforce 0)। \n"
+-#~ "ଚାଳକ à¬­à¬¾à¬¬à¬°à­‡ à¬²à¬—ଇନ à¬•à¬°à¬¿à¬¥à¬¾à¬ à¬à¬¬à¬‚ à¬à¬¹à¬¿ à¬šà¬¾à¬³à¬• à¬­à­‚ମିକାକୠପରୀକà­à¬·à¬¾ à¬•à¬°à¬¿à¬¥à¬¾à¬à¥¤\n"
+-#~ "te à¬«à¬¾à¬‡à¬² à¬ªà¬¾à¬‡à¬ à¬…ତିରିକà­à¬¤ à¬¨à¬¿à­Ÿà¬® à¬¸à­ƒà¬·à­à¬Ÿà¬¿à¬•à¬°à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ audit2allow -R à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° à¬•à¬°à­‡à¥¤\n"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "à¬à¬¹à¬¿ à¬¸à¬¾à¬§à¬¨à¬Ÿà¬¿ à¬¨à¬¿à¬®à­à¬¨à¬²à¬¿à¬–ିତ à¬®à¬¾à¬¨à¬™à­à¬•à­ à¬¸à­ƒà¬·à­à¬Ÿà¬¿ à¬•à¬°à¬¿à¬¬: \n"
+-#~ "ପà­à¬°à¬¬à¬°à­à¬¤à­à¬¤à¬¨ à¬Ÿà¬¾à¬‡à¬ªà¬•à¬°à¬¿à¬¬à¬¾(te), à¬«à¬¾à¬‡à¬² à¬ªà­à¬°à¬¸à¬™à­à¬—(fc), à¬…ନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬ (if), à¬¸à­‡à¬² à¬¸à­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ(sh)\n"
+-#~ "\n"
+-#~ "ସଙà­à¬•à¬³à¬¨/ସà­à¬¥à¬¾à¬ªà¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬¸à­‡à¬² à¬¸à­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à­‡ à¬à¬¬à¬‚ à¬«à¬¾à¬‡à¬²/ଡିରେକà­à¬Ÿà­‹à¬°à­€à¬•à­ à¬ªà­à¬¨à¬ƒà¬šà¬¿à¬¹à­à¬¨à¬Ÿ à¬•à¬°à­‡à¥¤  \n"
+-#~ "ଯନà­à¬¤à­à¬°à¬•à­ à¬…ନà­à¬®à­‹à¬¦à¬¨à¬•à¬¾à¬°à­€ à¬…ବସà­à¬¥à¬¾à¬°à­‡ à¬°à¬–à­‡ (setenforce 0)। \n"
+-#~ "avc à¬¸à¬¨à­à¬¦à­‡à¬¶à¬—à­à¬¡à¬¿à¬•à­ à¬¸à­ƒà¬·à­à¬Ÿà¬¿ à¬•à¬°à¬¬à¬¾à¬ªà¬¾à¬‡à¬ à¬ªà­à¬°à­Ÿà­‹à¬—କୠଚଲାଇଥାà¬/ପà­à¬¨à¬ƒà¬†à¬°à¬®à­à¬­ à¬•à¬°à¬¿à¬¥à¬¾à¬à¥¤\n"
+-#~ "te à¬«à¬¾à¬‡à¬² à¬ªà¬¾à¬‡à¬ à¬…ତିରିକà­à¬¤ à¬¨à¬¿à­Ÿà¬® à¬¸à­ƒà¬·à­à¬Ÿà¬¿à¬•à¬°à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ audit2allow -R à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° à¬•à¬°à­‡à¥¤\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "ବà­à¬²à¬¿à­Ÿà¬¾à¬¨ à¬¸à¬‚ଳାପ à¬¯à­‹à¬—କରନà­à¬¤à­"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "ବà­à¬²à¬¿à¬†à¬¨ à¬¨à¬¾à¬®"
+-
+-#~ msgid "Role"
+-#~ msgstr "ଭୂମିକା"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Existing_User"
+-#~ msgstr "ଅବସà­à¬¥à¬¿à¬¤ à¬šà¬¾à¬³à¬• (_U)"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Application"
+-#~ msgstr "ପà­à¬°à­Ÿà­‹à¬—"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s à¬¨à¬¿à¬¶à­à¬šà¬¿à¬¤ à¬°à­‚ପେ à¬—ୋଟିଠଡିରେକà­à¬Ÿà¬°à­€"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "You must select a user"
+-#~ msgstr "ଆପଣ à¬—ୋଟିଠଚାଳକ à¬šà­Ÿà¬¨ à¬•à¬°à¬¿à¬¬à¬¾ à¬‰à¬šà¬¿à¬¤"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "ପରିସୀମିତ à¬°à¬¹à¬¿à¬¬à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à­à­Ÿ à¬«à¬¾à¬‡à¬² à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­à¥¤"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "ପରିସୀମିତ à¬°à¬¹à¬¿à¬¬à¬¾à¬•à­ init à¬¸à­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ à¬«à¬¾à¬‡à¬² à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­à¥¤"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "ପରିସୀମିତ à¬ªà­à¬°à­Ÿà­‹à¬— à¬¸à­ƒà¬·à­à¬Ÿà¬¿ à¬•à¬°à¬¿à¬¬à¬¾ à¬•à¬¿à¬®à­à­±à¬¾ à¬²à­‡à¬–ିବାକୠଫାଇଲ(ଗà­à¬¡à¬¿à¬•à­) à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr "ପରିସୀମିତ à¬ªà­à¬°à­Ÿà­‹à¬— à¬¹à¬¾à¬¸à¬² à¬•à¬°à¬¿à¬¬à¬¾ à¬•à¬¿à¬®à­à­±à¬¾ à¬²à­‡à¬–ିବାକୠଡିରେକà­à¬Ÿà­‹à¬°à­€(ଗà­à¬¡à¬¿à¬•à­) à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "ଭିତର à¬¨à­€à¬¤à¬¿ à¬«à¬¾à¬‡à¬² à¬¸à­ƒà¬·à­à¬Ÿà¬¿ à¬•à¬°à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€ à¬šà­Ÿà¬¨ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "%s_t à¬ªà­à¬°à¬•à¬¾à¬°à¬•à­ à¬ªà­à¬°à¬šà¬³à¬¿à¬¤ à¬¨à­€à¬¤à¬¿à¬°à­‡ à¬ªà­‚ରà­à¬¬à¬°à­ à¬¬à­à­Ÿà¬–à­à­Ÿà¬¾ à¬•à¬°à¬¾à¬¯à¬¾à¬‡à¬›à¬¿à¥¤\n"
+-#~ "ଆପଣ à¬šà¬¾à¬²à­ à¬°à¬–ିବାକୠଚାହà­à¬à¬›à¬¨à­à¬¤à¬¿ à¬•à¬¿?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "ନାମ à¬¯à¬¾à¬žà­à¬š à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "%s.pp à¬à¬•à¬•à¬¾à¬‚ଶ à¬ªà­à¬°à¬šà¬³à¬¿à¬¤ à¬¨à­€à¬¤à¬¿à¬°à­‡ à¬ªà­‚ରà­à¬¬à¬°à­ à¬§à¬¾à¬°à¬£ à¬•à¬°à¬¾à¬¯à¬¾à¬‡à¬›à¬¿à¥¤\n"
+-#~ "ଆପଣ à¬šà¬¾à¬²à­ à¬°à¬–ିବାକୠଚାହà­à¬à¬›à¬¨à­à¬¤à¬¿ à¬•à¬¿?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "ଆପଣ à¬—ୋଟିଠନାମ à¬­à¬°à¬£ à¬•à¬°à¬¿à¬¬à¬¾ à¬‰à¬šà¬¿à¬¤"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "ଆପଣ à¬—ୋଟିଠନିଷà­à¬ªà¬¾à¬¦à­à­Ÿ à¬­à¬°à¬£ à¬•à¬°à¬¿à¬¬à¬¾ à¬‰à¬šà¬¿à¬¤"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux à¬¬à¬¿à¬¨à­à­Ÿà¬¾à¬¸ à¬•à¬°à¬¨à­à¬¤à­"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "ସଂଯୋଗିକୀଗà­à¬¡à¬¿à¬• à¬¨à¬¿à¬¶à­à¬šà¬¿à¬¤ à¬°à­‚ପେ à¬¸à¬‚ଖà­à­Ÿà¬¾ à¬•à¬¿à¬®à­à¬¬à¬¾ 1 à¬°à­ %d à¬ªà¬°à­à¬¯à­à­Ÿà¬¨à­à¬¤ à¬¸à¬‚ଖà­à­Ÿà¬¾à¬° à¬ªà¬°à¬¿à¬¸à¬° à¬¹à­‹à¬‡à¬¥à¬¿à¬¬à¬¾ à¬‰à¬šà¬¿à¬¤"
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "ଆପଣଙà­à¬•à¬° à¬ªà¬°à¬¿à¬¸à­€à¬®à¬¿à¬¤ à¬ªà­à¬°à¬£à¬¾à¬³à­€/ଚାଳକ à¬ªà¬¾à¬‡à¬ à¬†à¬ªà¬£ à¬—ୋଟିଠନାମ à¬­à¬°à¬£ à¬•à¬°à¬¿à¬¬à¬¾ à¬‰à¬šà¬¿à¬¤"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "ଚାଳକ à¬ªà­à¬°à¬•à¬¾à¬° à¬—à­à¬¡à¬¿à¬• à¬…ନà­à¬®à¬¤à¬¿à¬ªà­à¬°à¬¾à¬ªà­à¬¤ à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à­à­Ÿ à¬¨à­à¬¹à¬à¬¨à­à¬¤à¬¿"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "କେବଳ à¬¡à­‡à¬®à¬¨ apps init à¬¸à­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° à¬•à¬°à¬¿à¬ªà¬¾à¬°à¬¿à¬¬à­‡"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog à¬Ÿà¬¿ à¬—ୋଟିଠବà­à¬²à¬¿à¬†à¬¨ à¬®à­‚ଲà­à­Ÿ à¬¹à­‹à¬‡à¬¥à¬¿à¬¬à¬¾ à¬‰à¬šà¬¿à¬¤"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "USER à¬ªà­à¬°à¬•à¬¾à¬°à¬—à­à¬¡à¬¿à¬• à¬¸à­à­±à­Ÿà¬‚ଚାଳିତଭାବେ à¬—ୋଟିଠtmp à¬ªà­à¬°à¬•à¬¾à¬° à¬ªà¬¾à¬‡à¬¥à¬¾à¬"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "ଆପଣଙà­à¬•à¬° à¬ªà¬°à¬¿à¬¸à­€à¬®à¬¿à¬¤ à¬ªà­à¬°à¬£à¬¾à¬³à­€ à¬ªà¬¾à¬‡à¬ à¬—ୋଟିଠନିଷà­à¬ªà¬¾à¬¦à­à­Ÿ à¬ªà¬¥ à¬­à¬°à¬£ à¬•à¬°à¬¿à¬¬à¬¾ à¬‰à¬šà¬¿à¬¤"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "ପà­à¬°à¬¬à¬°à­à¬¤à­à¬¤à¬¨ à¬«à¬¾à¬‡à¬²à¬•à­ à¬Ÿà¬¾à¬‡à¬ª à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "ଅନà­à¬¤à¬°à¬¾à¬ªà­à¬°à­à¬·à­à¬  à¬«à¬¾à¬‡à¬²"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "ଫାଇଲ à¬ªà­à¬°à¬¸à¬™à­à¬— à¬«à¬¾à¬‡à¬²"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "ସà­à¬•à­à¬°à¬¿à¬ªà­à¬Ÿ à¬¬à­à­Ÿà¬¬à¬¸à­à¬¥à¬¾"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux à¬¸à¬‚ଯୋଗିକୀ\n"
+-#~ "ପà­à¬°à¬•à¬¾à¬°"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "ପà­à¬°à¬Ÿà­‹à¬•à¬²"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "ସà­à¬¤à¬°"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "ସଂଯୋଗିକୀ"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "ସଂଯୋଗିକୀ à¬¸à¬‚ଖà­à­Ÿà¬¾ \"%s\" à¬Ÿà¬¿ à¬¬à­ˆà¬§ à¬¨à­à¬¹à¬  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "ତାଲିକା à¬¦à­ƒà¬¶à­à­Ÿ"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "ସମà­à¬¹ à¬¦à­ƒà¬¶à­à­Ÿ"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux à¬šà¬¾à¬³à¬• à¬¸à­à¬°à¬•à­à¬·à¬¾"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "acct à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "ପà­à¬°à¬¶à¬¾à¬¸à¬¨"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "ସରà­à¬¬à¬ªà­à¬°à¬§à¬¾à¬¨ à¬«à¬¾à¬‡à¬²à¬—à­à¬¡à¬¿à¬•à­ à¬²à­‡à¬–ିବାକୠସମସà­à¬¤ à¬¡à­‡à¬®à¬¨à¬—à­à¬¡à¬¿à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­ /"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "ସମସà­à¬¤ à¬¡à­‡à¬®à¬¨à¬—à­à¬¡à¬¿à¬•à­ à¬…ବଣà­à¬Ÿà¬¿à¬¤ tty à¬—à­à¬¡à¬¿à¬•à­ à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬° à¬•à¬°à¬¿à¬¬à¬¾à¬° à¬•à­à¬·à¬®à¬¤à¬¾ à¬ªà­à¬°à¬¦à¬¾à¬¨ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "ଚାଳକ à¬—ୋପନୀୟତା"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "gadmin SELinux à¬šà¬¾à¬³à¬• à¬–ାତାକୠମୂଳ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€ à¬•à¬¿à¬®à­à¬¬à¬¾ /tmp à¬°à­‡ à¬«à¬¾à¬‡à¬² à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ "
+-#~ "ଦିଅନà­à¬¤à­"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ଅତିଥି SELinux à¬šà¬¾à¬³à¬• à¬–ାତାକୠମୂଳ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€ à¬•à¬¿à¬®à­à¬¬à¬¾ /tmp à¬°à­‡ à¬«à¬¾à¬‡à¬² à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ "
+-#~ "ଦିଅନà­à¬¤à­"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "ସà­à¬®à­ƒà¬¤à¬¿ à¬¸à­à¬°à¬•à­à¬·à¬¾"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "java à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à­à­Ÿ à¬¥à¬¾à¬•à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "ସà­à¬¥à¬¾à¬ªà¬¨"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "ଯେକୌଣସି à¬«à¬¾à¬‡à¬²à¬•à­ à¬¸à­à¬¥à¬¾à¬ªà¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬¸à­à¬¥à¬¾à¬ªà¬¨ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "ଯେକୌଣସି à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€à¬•à­ à¬¸à­à¬¥à¬¾à¬ªà¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬¸à­à¬¥à¬¾à¬ªà¬¨ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "mplayer à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à­à­Ÿ à¬¥à¬¾à¬• à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "ssh-keysign à¬•à­ à¬šà¬²à¬¾à¬‡à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ ssh à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "staff SELinux à¬šà¬¾à¬³à¬• à¬–ାତାକୠମୂଳ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€ à¬•à¬¿à¬®à­à¬¬à¬¾ /tmp à¬°à­‡ à¬«à¬¾à¬‡à¬² à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ "
+-#~ "ଦିଅନà­à¬¤à­"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "sysadm SELinux à¬šà¬¾à¬³à¬• à¬–ାତାକୠମୂଳ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€ à¬•à¬¿à¬®à­à¬¬à¬¾ /tmp à¬°à­‡ à¬«à¬¾à¬‡à¬² à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ "
+-#~ "ଦିଅନà­à¬¤à­"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "unconfined SELinux à¬šà¬¾à¬³à¬• à¬–ାତାକୠମୂଳ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€ à¬•à¬¿à¬®à­à¬¬à¬¾ /tmp à¬°à­‡ à¬«à¬¾à¬‡à¬² à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ "
+-#~ "ଅନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "ନେଟୱରà­à¬• à¬¬à¬¿à¬¨à­à­Ÿà¬¾à¬¸"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "ନାମପଟିକରଣ à¬¹à­‹à¬‡à¬¨à¬¥à¬¿à¬¬à¬¾ à¬ªà­à­Ÿà¬¾à¬•à­‡à¬Ÿà¬—à­à¬¡à¬¿à¬•à­ à¬¨à­‡à¬Ÿà­±à¬°à­à¬•à¬°à­‡ à¬ªà­à¬°à¬¬à¬¾à¬¹ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "ଚାଳକ SELinux à¬šà¬¾à¬³à¬• à¬–ାତାକୠମୂଳ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€ à¬•à¬¿à¬®à­à¬¬à¬¾ /tmp à¬°à­‡ à¬«à¬¾à¬‡à¬² à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ "
+-#~ "ଦିଅନà­à¬¤à­"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "ଅପରିସୀମିତ dyntrans à¬•à­ à¬…ପରିସୀମିତ_execmen à¬ªà¬¾à¬‡à¬ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "ତଥà­à­Ÿà¬¾à¬§à¬¾à¬°"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "mysql à¬¸à¬•à­‡à¬Ÿ à¬¸à¬¹à¬¿à¬¤ à¬¸à¬‚ଯୋଗ à¬¸à­à¬¥à¬¾à¬ªà¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬ªà¬¾à¬‡à¬ à¬šà¬¾à¬³à¬•à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "postgres à¬¸à¬•à­‡à¬Ÿ à¬¸à¬¹à¬¿à¬¤ à¬¸à¬‚ଯୋଗ à¬¸à­à¬¥à¬¾à¬ªà¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬ªà¬¾à¬‡à¬ à¬šà¬¾à¬³à¬•à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "Xସରà­à¬­à¬°"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "X à¬¸à¬¹à¬­à¬¾à¬—à­€ à¬¸à­à¬®à­ƒà¬¤à¬¿à¬°à­‡ à¬²à­‡à¬–ିବା à¬ªà¬¾à¬‡à¬ à¬—à­à¬°à¬¾à¬¹à¬•à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "x à¬šà¬¾à¬³à¬• SELinux à¬šà¬¾à¬³à¬• à¬–ାତାକୠମୂଳ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€ à¬•à¬¿à¬®à­à¬¬à¬¾ /tmp à¬°à­‡ à¬«à¬¾à¬‡à¬² à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ "
+-#~ "ଦିଅନà­à¬¤à­"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "NIS à¬¸à¬¹à¬¿à¬¤ à¬šà¬¾à¬²à¬¿à¬¬à¬¾à¬ªà¬¾à¬‡à¬ à¬¡à­‡à¬®à¬¨à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "ୱେବ à¬ªà­à¬°à­Ÿà­‹à¬—"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "ସକରà­à¬® staff SELinux à¬šà¬¾à¬³à¬• à¬•à­ à­±à­‡à¬¬ à¬¬à­à¬°à¬¾à¬‰à¬œà¬° à¬ªà¬°à¬¿à¬¸à¬°"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "ସକରà­à¬® sysadm SELinux à¬šà¬¾à¬³à¬• à¬•à­ à­±à­‡à¬¬ à¬¬à­à¬°à¬¾à¬‰à¬œà¬° à¬ªà¬°à¬¿à¬¸à¬°"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "ସକରà­à¬® user SELinux à¬šà¬¾à¬³à¬• à¬•à­ à­±à­‡à¬¬ à¬¬à­à¬°à¬¾à¬‰à¬œà¬° à¬ªà¬°à¬¿à¬¸à¬°"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "ସକରà­à¬® xguest SELinux à¬šà¬¾à¬³à¬• à¬•à­ à­±à­‡à¬¬ à¬¬à­à¬°à¬¾à¬‰à¬œà¬° à¬ªà¬°à¬¿à¬¸à¬°"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "ମୂଳ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€à¬°à­‡ à¬²à­‡à¬–ିବା à¬ªà¬¾à¬‡à¬ staff Web Browsers à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "amanda à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "amavis à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "apmd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "arpwatch à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "auditd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "automount à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "avahi à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "bluetooth à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "canna à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "cardmgr à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Cluster à¬¸à¬°à­à¬­à¬°  à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "ବିଭିନà­à¬¨ à¬ªà­à¬°à¬•à¬¾à¬° à¬ªà­à¬°à¬¸à¬™à­à¬—କୠପଢିବାପାଇଠcdrecordକୠଅନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­à¥¤ nfs, samba, à¬…ପସାରଣୀୟ "
+-#~ "ଯନà­à¬¤à­à¬°à¬—à­à¬¡à¬¿à¬•à­, à¬šà¬¾à¬³à¬• temp à¬à¬¬à¬‚ à¬…ବିସà­à¬µà¬¸à­à¬¤ à¬ªà­à¬°à¬¸à¬™à­à¬— à¬«à¬¾à¬‡à¬²à¬—à­à¬¡à¬¿à¬•"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ciped à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "clamd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "clamscan à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "clvmd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "comsat à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "courier à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "cpucontrol à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "cpuspeed à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "କà­à¬°à¬¨"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "ମà­à¬¦à­à¬°à¬£ à¬•à¬°à­à¬…ଛି"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "cupsd à¬ªà¬›à¬ªà¬¾à¬– à¬¸à¬°à­à¬­à¬° à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "cupsd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "cupsd_lpd à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "cvs à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "cyrus à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "dbskkd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "dbusd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "dccd à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "dccifdନ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "dccm à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ddt à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "devfsd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "dhcpc à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "dhcpd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "dictd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "start à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "ବିକାସ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "ଖେଳ"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "ଖେଳ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "ୱେବ à¬¬à­à¬°à¬¾à¬‰à¬œà¬° à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Thunderbird à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "fetchmail à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Hal à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "ସà­à¬¸à¬‚ଗତି"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "ଆମେ à¬œà¬¾à¬£à¬¿à¬¥à¬¿à¬¬à¬¾ à¬œà¬¿à¬¨à¬¿à¬· à¬¯à¬¾à¬¹à¬¾à¬•à¬¿ à¬­à¬¾à¬™à­à¬—ିବାକୠଯାଉଛି à¬•à¬¿à¬¨à­à¬¤à­ à¬¯à­‡à¬‰à¬à¬¥à¬¿à¬°à­‡ à¬¸à­à¬°à¬•à­à¬·à¬¾ à¬¬à¬¿à¬ªà¬¤à­à¬¤à¬¿ à¬¨à¬¾à¬¹à¬¿à¬ à¬¤à¬¾à¬•à­ à¬¸à¬®à­€à¬•à­à¬·à¬¾ "
+-#~ "କରନà­à¬¤à­ à¬¨à¬¾à¬¹à¬¿à¬"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "ଆଧାରନାମ à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "cups hplip à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "httpd rotatelogs à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD à¬¸à­‡à¬¬à¬¾"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexec à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "inet child à¬¡à­‡à¬®à¬¨à¬—à­à¬¡à¬¿à¬• à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ircd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "irqbalance à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "iscsi à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "jabberd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "କେରà­à¬¬à­‡à¬°à­‹à¬¶"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "kadmind à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "klogd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "krb5kdc à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ktalk à¬¡à­‡à¬®à¬¨à¬—à­à¬¡à¬¿à¬• à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "kudzu à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "locate à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "lpd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "lrrd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "lvm à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "mailman à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "ଚାଳକ à¬«à¬¾à¬‡à¬²à¬—à­à¬¡à¬¿à¬•à­ à¬ªà¬¢à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ à¬‡à¬­à¬²à­à­Ÿà­à¬¸à¬¨ à¬à¬¬à¬‚ à¬¥à¬£à­à¬¡à¬°à¬¬à¬°à­à¬¡à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "mdadm à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "monopd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "ଚାଳକ à¬«à¬¾à¬‡à¬²à¬—à­à¬¡à¬¿à¬•à­ à¬ªà¬¢à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ à¬®à¬œà¬¿à¬²à¬¾ à¬¬à­à¬°à¬¾à¬‰à¬œà¬°à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "mrtg à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "mysqld à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "nagios à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "ନାମ à¬¸à­‡à¬¬à¬¾"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "named à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "nessusd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "ନେଟୱରà­à¬• à¬ªà¬°à¬¿à¬šà¬¾à¬³à¬• à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "nfsd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "ଶାମà­à¬¬à¬¾"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "nmbd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "nrpe à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "nscd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "nsd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ntpd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "oddjob à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "oddjob_mkhomedir à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "openvpn à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "pam à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "pegasus à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "perdition à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "portmap à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "portslave à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "postfix à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "postgresql à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "ଗୋଟିଠସାଧାରଣ à¬šà¬¾à¬³à¬• à¬ªà¬¾à¬‡à¬ pppd à¬šà¬²à¬¾à¬‡à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "pptp à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "prelink à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "privoxy à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ptal à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "pxe à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "pyzord à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "quota à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "radiusd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "radvd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "rdisc à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "readahead à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr "ମାନକ à¬¬à¬¿à¬¹à¬¿à¬¨ à¬¸à­à¬¥à¬¾à¬¨à¬®à¬¾à¬¨à¬™à­à¬•à¬°à­‡ (default_t) à¬«à¬¾à¬‡à¬² à¬ªà¬¢à¬¿à¬¬à¬¾à¬ªà¬¾à¬‡à¬ à¬ªà­à¬°à¬—à­à¬°à¬¾à¬® à¬—à­à¬¡à¬¿à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "restorecond à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "rhgb à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ricci à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ricci_modclusterd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "rlogind à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "rpcd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "rshd à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "rsync à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "ssh à¬•à­ à¬¡à­‡à¬®à¬¨ à¬†à¬•à¬¾à¬°à¬°à­‡ à¬šà¬²à¬¾à¬‡à¬¬à¬¾ à¬¬à¬¦à¬³à¬°à­‡ inetd à¬°à­ à¬šà¬²à¬¾à¬‡à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "nfs à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€à¬—à­à¬¡à¬¿à¬•à¬°à­‡ à¬…ଂଶଧନ à¬•à¬°à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ Sambaକୠଅନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL à¬¬à­ˆà¬§à¬¿à¬•à¬°à¬£ à¬¸à¬°à­à¬­à¬°"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "/etc/shadow à¬•à­ à¬ªà¬¢à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ sasl à¬¬à­ˆà¬§à¬¿à¬•à¬°à¬£ à¬¸à¬°à­à¬­à¬°à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "ଗୋଟିଠସà­à¬®à­ƒà¬¤à¬¿ à¬¸à­à¬¥à¬¾à¬¨à¬•à­ à¬‰à¬­à­Ÿ à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à­à­Ÿ à¬à¬¬à¬‚ à¬²à¬¿à¬–ନୀୟ à¬†à¬•à¬¾à¬°à¬°à­‡ à¬ªà­à¬°à¬¤à¬¿à¬šà¬¿à¬¤à­à¬°à¬£ à¬•à¬°à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ X-ୱିଣà­à¬¡à­‹ à¬¸à¬°à­à¬­à¬°à¬•à­ "
+-#~ "ଅନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "saslauthd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "scannerdaemon à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "sysadm_t, sudo à¬à¬¬à¬‚ su à¬° à¬…ଭିପà­à¬°à¬¾à­Ÿà¬° à¬ªà¬°à¬¿à¬¬à¬°à­à¬¤à­à¬¤à¬¨à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­ à¬¨à¬¾à¬¹à¬¿à¬"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "କୌଣସି à¬ªà­à¬°à¬£à¬¾à¬³à­€à¬•à­ à¬•à¬°à­à¬£à­à¬£à¬² à¬à¬•à¬•à¬¾à¬‚ଶ à¬§à¬¾à¬°à¬£ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­ à¬¨à¬¾à¬¹à¬¿à¬"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "କୌଣସି à¬ªà­à¬°à¬£à¬¾à¬³à­€à¬•à­ à¬•à¬°à­à¬£à­à¬£à¬² SELinux à¬¨à­€à¬¤à¬¿ à¬ªà¬°à¬¿à¬¬à¬°à­à¬¤à­à¬¤à¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­ à¬¨à¬¾à¬¹à¬¿à¬"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "sendmail à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "setrans à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "setroubleshoot à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "slapd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "slrnpull à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "smbd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "snmpd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "snort à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "soundd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "sound à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "ଅବାଞà­à¬›à¬¿à¬¤ à¬¡à¬¾à¬• à¬¸à­à¬°à¬•à­à¬·à¬¾"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "spamd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "spamd à¬•à­ à¬®à­‚ଳ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€à¬°à­‡ à¬ªà­à¬°à¬¬à­‡à¬¶à¬¾à¬¨à­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "spamd Assassin à¬¡à­‡à¬®à¬¨à¬•à­ à¬¨à­‡à¬Ÿà­±à¬°à­à¬• à¬…ଭିଗମନର à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "speedmgmt à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "squid à¬¡à­‡à¬®à¬¨à¬•à­ à¬¨à­‡à¬Ÿà­±à¬°à­à¬• à¬¸à¬¹à¬¿à¬¤ à¬¸à¬‚ଯୋଗର à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "squid à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ssh à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "ssh à¬²à¬—ଇନକୠsysadm_r:sysadm_t à¬ªà¬°à¬¿ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "staff_r à¬šà¬¾à¬³à¬•à¬•à­ sysadm à¬®à­‚ଳ à¬¡à¬¿à¬°à­‡à¬•à­à¬Ÿà­‹à¬°à­€ à¬–ୋଜିବାପାଇଠà¬à¬¬à¬‚ à¬«à¬¾à¬‡à¬²à¬—à­à¬¡à¬¿à¬•à­ à¬ªà¬¢à¬¿à¬¬à¬¾ à¬ªà¬¾à¬‡à¬ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­ "
+-#~ "(ଯେପରି à¬•à¬¿ ~/.bashrc)"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "ସରà­à¬¬à¬¬à­à­Ÿà¬¾à¬ªà­€ SSL à¬¸à­à¬°à¬™à­à¬—"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "stunnel à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "stunnel à¬¡à­‡à¬®à¬¨à¬•à­ standalone à¬ªà¬°à¬¿ à¬šà¬¾à¬²à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­, xinetd à¬° à¬¬à¬¾à¬¹à¬¾à¬°à­‡"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "swat à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "sxid à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "syslogd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "system cron jobs  à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "tcp à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "telnet à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "tftpd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "transproxy à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "undev à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "uml à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "xinetd à¬•à­ à¬…ପରିସୀମିତ à¬¹à­‹à¬‡ à¬šà¬¾à¬²à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­, à¬à¬¹à¬¾ à¬¦à­à­±à¬¾à¬°à¬¾ à¬†à¬°à¬®à­à¬­ à¬¹à­‹à¬‡à¬¥à¬¿à¬¬à¬¾ à¬¯à­‡à¬•à­Œà¬£à¬¸à¬¿ à¬¸à­‡à¬¬à¬¾à¬•à­ "
+-#~ "ଅନà­à¬¤à¬°à­à¬­à­à¬•à­à¬¤ à¬•à¬°à¬¿ à¬¯à¬¾à¬¹à¬¾à¬°à¬•à¬¿ à¬ªà¬°à¬¿à¬¸à¬° à¬ªà¬°à¬¿à¬¬à¬°à­à¬¤à­à¬¤à¬¨ à¬¸à­à¬ªà¬·à­à¬Ÿ à¬­à¬¾à¬¬à¬°à­‡ à¬¬à­à­Ÿà¬¾à¬–à­à­Ÿà¬¾ à¬•à¬°à¬¾à¬¯à¬¾à¬‡à¬¨à¬¾à¬¹à¬¿à¬"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "rpm à¬•à­ à¬…ପରିସୀମିତ à¬­à¬¾à¬¬à¬°à­‡ à¬šà¬¾à¬²à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "updfstab à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "uptimed à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "ଚାଳକ à¬®à¬¾à¬¨à¬™à­à¬•à­ mount à¬¨à¬¿à¬°à­à¬¦à­à¬¦à­‡à¬¶ à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "ସାଧାରଣ à¬šà¬¾à¬³à¬• à¬®à¬¾à¬¨à¬™à­à¬•à­ à¬¸à¬¿à¬§à¬¾à¬¸à¬³à¬– à¬®à¬¾à¬‰à¬¸ à¬¬à­à­Ÿà¬¬à¬¹à¬¾à¬°à¬° à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­ (କେବଳ X à¬¸à¬°à­à¬­à¬°à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­)"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "ଚାଳକମାନଙà­à¬•à­ dmesg à¬¨à¬¿à¬°à­à¬¦à­à¬¦à­‡à¬¶ à¬šà¬²à¬¾à¬‡à¬¬à¬¾à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "ନେଟୱରà­à¬• à¬…ନà­à¬¤à¬°à¬¾à¬ªà­ƒà¬·à­à¬ à¬•à­ à¬¨à¬¿à­Ÿà¬¨à­à¬¤à­à¬°à¬£ à¬•à¬°à¬¿à¬¬à¬¾à¬ªà¬¾à¬‡à¬ à¬šà¬¾à¬³à¬•à¬®à¬¾à¬¨à¬™à­à¬•à­ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­ (à¬à¬¹à¬¾ à¬¬à­à­Ÿà¬¤à¬¿à¬¤ USERCTL=ସତ "
+-#~ "ହୋଇଥିବା à¬†à¬¬à¬¶à­à­Ÿà¬• )"
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "ସାଧାରଣ à¬šà¬¾à¬³à¬•à¬•à­ ping à¬¨à¬¿à¬·à­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à¬¿à¬¬à¬¾à¬° à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "ଚାଳକକୠnoextattrଫାଇଲ r/w à¬•à¬°à¬¿à¬¬à¬¾à¬° à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­ (FAT, CDROM, FLOPPY)"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "ଚାଳକକୠusb à¬‰à¬ªà¬•à¬°à¬£à¬—à­à¬¡à¬¿à¬•à­ rw à¬° à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "ଚାଳକକୠtty à¬«à¬¾à¬‡à¬²à¬—à­à¬¡à¬¿à¬•à­ à¬†à¬°à¬®à­à¬­à¬•à¬°à¬¿à¬¬à¬¾à¬° à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "uucpd à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "vmware à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "watchdog à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "winbind à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "xdm à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "xdm à¬²à¬—ଇନକୠsysadm_r:sysadm_t à¬ªà¬°à¬¿ à¬…ନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "xen à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "ଭୌତିକ à¬¡à¬¿à¬¸à­à¬• à¬‰à¬ªà¬•à¬°à¬£à¬—à­à¬¡à¬¿à¬•à­ à¬ªà¬¢à¬¿à¬¬à¬¾/ଲେଖିବା à¬ªà¬¾à¬‡à¬ xenକୠଅନà­à¬®à¬¤à¬¿ à¬¦à¬¿à¬…ନà­à¬¤à­"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "xfs à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "xen à¬¨à¬¿à­Ÿà¬¨à­à¬¤à­à¬°à¬£ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ypbind à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "NIS à¬ªà­à¬°à¬¬à­‡à¬¶ à¬¸à¬‚କେତ à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ypserv à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "NIS à¬¸à­à¬¥à¬¾à¬¨à¬¾à¬¨à­à¬¤à¬°à¬£ à¬¡à­‡à¬®à¬¨ à¬ªà¬¾à¬‡à¬ SELinux à¬¸à­à¬°à¬•à­à¬·à¬¾à¬•à­ à¬¨à¬¿à¬·à­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "ଆପଣ à¬¨à¬¿à¬¶à­à¬šà¬¿à¬¤à¬•à¬¿ à¬†à¬ªà¬£ %s à¬•à­ à¬…ପସାରଣ à¬•à¬°à¬¿à¬¬à¬¾à¬•à­ à¬šà¬¾à¬¹à­à¬à¬›à¬¨à­à¬¤à¬¿ '%s'?"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "Delete %s"
+-#~ msgstr "%s à¬•à­ à¬…ପସାରଣ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Add %s"
+-#~ msgstr "%s à¬•à­ à¬¯à­‹à¬—କରନà­à¬¤à­"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Modify %s"
+-#~ msgstr "%s à¬•à­ à¬°à­‚ପାନà­à¬¤à¬° à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid "Permissive"
+-#~ msgstr "ଅନà­à¬®à­‹à¬¦à¬¨à¬•à¬¾à¬°à­€"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Enforcing"
+-#~ msgstr "କାରà­à¬¯à­à­Ÿà¬•à¬¾à¬°à­€ à¬•à¬°à­à¬…ଛି"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux à¬²à¬—ଇନ à¬¢à¬¾à¬žà­à¬šà¬¾à¬•à­ à¬¯à­‹à¬—କରନà­à¬¤à­"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux à¬¨à­‡à¬Ÿà­±à¬°à­à¬• à¬¸à¬‚ଯୋଗିକୀକୠଯୋଗ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux à¬ªà­à¬°à¬•à¬¾à¬°"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "ସà­à¬¤à¬°"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "File Specification"
+-#~ msgstr "ଫାଇଲ à¬¨à¬¿à¬°à­à¬¦à­à¬¦à¬¿à¬·à­à¬Ÿà¬• à¬¸à­‚ଚନା"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "File Type"
+-#~ msgstr "ଫାଇଲ à¬ªà­à¬°à¬•à¬¾à¬°"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "ସମସà­à¬¤ à¬«à¬¾à¬‡à¬²à¬—à­à¬¡à¬¿à¬•\n"
+-#~ "ନିୟମିତ à¬«à¬¾à¬‡à¬²\n"
+-#~ "ଡିରେକà­à¬Ÿà­‹à¬°à­€\n"
+-#~ "ଅକà­à¬·à¬° à¬¯à¬¨à­à¬¤à­à¬°\n"
+-#~ "ଅସà­à¬¥à¬¾à­Ÿà­€ à¬¯à¬¨à­à¬¤à­à¬°\n"
+-#~ "ସକେଟ\n"
+-#~ "ପà­à¬°à¬¤à­€à¬•à¬¾à¬¤à­à¬®à¬• à¬¸à¬®à­à¬ªà¬°à­à¬•\n"
+-#~ "ନାମ à¬¬à¬¿à¬¶à¬¿à¬·à­à¬Ÿ à¬ªà¬¾à¬‡à¬ª\n"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux à¬šà¬¾à¬³à¬• à¬•à­ à¬¯à­‹à¬— à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux à¬ªà­à¬°à¬¶à¬¾à¬¸à¬¨"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid "Add"
+-#~ msgstr "ଯୋଗକରନà­à¬¤à­"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "_Properties"
+-#~ msgstr "ଗà­à¬£ (_P)"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "_Delete"
+-#~ msgstr "ଅପସାରଣ à¬•à¬°à¬¨à­à¬¤à­(_D)"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid "Select Management Object"
+-#~ msgstr "ପରିଚାଳନା à¬¬à¬¸à­à¬¤à­ à¬šà­Ÿà¬¨à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>ଚୟନକରନà­à¬¤à­:</b>"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "ତନà­à¬¤à­à¬° à¬ªà­‚ରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤à¬•à¬¾à¬°à­à¬¯à­à­Ÿà¬•à¬¾à¬°à­€ à¬…ବସà­à¬¥à¬¾"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid ""
+-#~ "Disabled\n"
+-#~ "Permissive\n"
+-#~ "Enforcing\n"
+-#~ msgstr ""
+-#~ "ନିଷà­à¬•à­à¬°à¬¿à­Ÿ\n"
+-#~ "ଅନà­à¬®à­‹à¬¦à¬¨à¬•à¬¾à¬°à­€e\n"
+-#~ "କାରà­à¬¯à­à­Ÿà¬•à¬¾à¬°à­€\n"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "ପà­à¬°à¬šà¬³à¬¿à¬¤ à¬•à¬¾à¬°à­à¬¯à­à­Ÿà¬•à¬¾à¬°à­€ à¬…ବସà­à¬¥à¬¾"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "ତନà­à¬¤à­à¬° à¬ªà­‚ରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ à¬¨à­€à¬¤à¬¿à¬° à¬ªà­à¬°à¬•à¬¾à¬°: "
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "ପରବରà­à¬¤à­à¬¤à­€ à¬ªà­à¬¨à¬°à­à¬šà¬¾à¬³à¬¨à¬°à­‡ à¬ªà­à¬¨à¬ƒà¬šà¬¿à¬¹à­à¬¨à¬Ÿ à¬•à¬°à¬¨à­à¬¤à­à¥¤"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "ବà­à¬²à¬¿à¬†à¬¨ à¬¬à¬¿à¬¨à­à­Ÿà¬¾à¬¸à¬•à­ à¬¤à¬¨à­à¬¤à­à¬°à¬ªà­‚ରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤à¬°à­‡ à¬ªà­à¬°à¬¤à­à­Ÿà¬¾à¬¬à­ƒà¬¤ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "ଇଚà­à¬›à¬¾à¬°à­‚ପୀ à¬à¬¬à¬‚ à¬¸à¬®à¬¸à­à¬¤ à¬¬à­à¬²à¬¿à¬†à¬¨à¬—à­à¬¡à¬¿à¬• à¬®à¬§à­à¬¯à¬°à­‡ à¬†à¬—ପଛ à¬¹à­‡à¬‰à¬›à¬¿"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "ଛାଣନà­à¬¤à­"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "ଫାଇଲ à¬ªà­à¬°à¬¸à¬™à­à¬—କà­à¬¯à­‹à¬—ିକୀକୠଯୋଗ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "ଫାଇଲ à¬ªà­à¬°à¬¸à¬™à­à¬—କୠରୂପାନà­à¬¤à¬° à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "ଫାଇଲ à¬ªà­à¬°à¬¸à¬™à­à¬—କୠଅପସାରଣ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "ସମସà­à¬¤ à¬‡à¬šà­à¬›à¬¾à¬°à­‚ପୀ à¬«à¬¾à¬‡à¬² à¬ªà­à¬°à¬¸à¬™à­à¬— à¬®à¬§à­à¬¯à¬°à­‡ à¬†à¬—ପଛ à¬¹à­‡à¬‰à¬›à¬¿"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux à¬šà¬¾à¬³à¬• à¬¢à¬¾à¬žà­à¬šà¬¾ à¬¯à­‹à¬—କରନà­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux à¬šà¬¾à¬³à¬• à¬ªà­à¬°à¬¤à¬¿à¬šà¬¿à¬¤à­à¬°à¬£à¬•à­ à¬°à­‚ପାନà­à¬¤à¬° à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux à¬šà¬¾à¬³à¬• à¬ªà­à¬°à¬¤à¬¿à¬šà¬¿à¬¤à­à¬°à¬£à¬•à­ à¬…ପସାରଣ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "ଅନà­à¬¬à¬¾à¬¦ à¬¯à­‹à¬—କରନà­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "ଅନà­à¬¬à¬¾à¬¦ à¬°à­‚ପାନà­à¬¤à¬° à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "ଅନà­à¬¬à¬¾à¬¦à¬•à­ à¬…ପସାରଣ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux à¬šà¬¾à¬³à¬•à¬•à­ à¬°à­‚ପାନà­à¬¤à¬° à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "ନେଟୱରà­à¬• à¬¸à¬‚ଯୋଗିକୀକୠଯୋଗ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "ନେଟୱରà­à¬• à¬¸à¬‚ଯୋଗିକୀକୠସମà­à¬ªà¬¾à¬¦à¬¨ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "ନେଟୱରà­à¬• à¬¸à¬‚ଯୋଗିକୀକୠଅପସାରଣ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "ଇଚà­à¬›à¬¾à¬°à­‚ପୀ à¬à¬¬à¬‚ à¬¸à¬®à¬¸à­à¬¤ à¬¸à¬‚ଯୋଗିକୀଗà­à¬¡à¬¿à¬• à¬®à¬§à­à¬¯à¬°à­‡ à¬†à¬—ପଛ à¬¹à­‡à¬‰à¬›à¬¿"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "ନୂତନ à¬¨à­€à¬¤à¬¿ à¬à¬•à¬•à¬¾à¬‚ଶ à¬¸à­ƒà¬·à­à¬Ÿà¬¿à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "ନୀତି à¬à¬•à¬•à¬¾à¬‚ଶକୠଧାରଣ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "ଧାରଣ à¬•à¬°à¬¿à¬ªà¬¾à¬°à­à¬¥à¬¿à¬¬à¬¾ à¬¨à­€à¬¤à¬¿ à¬à¬•à¬•à¬¾à¬‚ଶକୠଅପସାରଣ à¬•à¬°à¬¨à­à¬¤à­"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "ଅତିରିକà­à¬¤ à¬²à­‡à¬–ା à¬ªà¬°à­€à¬•à­à¬·à¬£ à¬¨à­€à¬¤à¬¿à¬•à­ à¬¸à¬•à­à¬°à¬¿à­Ÿ/ନିଷà­à¬•à­à¬°à¬¿à­Ÿ à¬•à¬°à¬¨à­à¬¤à­, à¬¯à¬¾à¬¹à¬¾à¬•à¬¿ à¬¸à¬¾à¬§à¬¾à¬°à¬£à¬¤à¬ƒ à¬²à¬— à¬«à¬¾à¬‡à¬²à¬°à­‡ à¬–ବର "
+-#~ "ହେଉନଥିବ। "
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "ସମà­à­±à­‡à¬¦à¬¨à¬¶à­€à¬³à¬¤à¬¾ à¬¸à­à¬¤à¬°"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux à¬šà¬¾à¬³à¬• '%s' à¬Ÿà¬¿ à¬†à¬¬à¬¶à­à¬¯à¬•"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "seà¬à¬•à¬•à¬¾à¬‚ଶ -i %s\n"
+-#~ "\n"
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "ମୂଲà­à¬¯ à¬†à¬¬à¬¶à­à¬¯à¬•"
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/pa.po b/policycoreutils/po/pa.po
+index d8c1a15..31d4091 100644
+--- a/policycoreutils/po/pa.po
++++ b/policycoreutils/po/pa.po
+@@ -1,24 +1,23 @@
+-# translation of pa.po to Punjabi
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+ #
++# Translators:
+ # A S Alam <apbrar@gmail.com>, 2006.
+-# Jaswinder Singh <jsingh@redhat.com>, 2006, 2007, 2008.
++# Jaswinder Singh <jsingh@redhat.com>, 2006, 2007, 2008, 2009, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: pa\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-03-26 16:08+0530\n"
+-"Last-Translator: Jaswinder Singh <jsingh@redhat.com>\n"
+-"Language-Team: Punjabi <fedora-trans-pa@redhat.com>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Panjabi (Punjabi) <punjabi-users@lists.sf.net>\n"
+ "Language: pa\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n"
+-"\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -113,9 +112,8 @@ msgid "Could not establish semanage connection"
+ msgstr "semanage à¨•à©à¨¨à©ˆà¨•à¨¶à¨¨ à¨¨à¨¹à©€à¨‚ à¨¬à¨£à¨¾ à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "%s à¨²à¨ˆ MLS à¨°à©‡à¨‚ਜ à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr "MLS à¨¯à©‹à¨— à¨¹à¨¾à¨²à¨¤ à¨¦à©€ à¨œà¨¾à¨‚ਚ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -123,36 +121,33 @@ msgstr "ਹਾਲੇ à¨²à¨¾à¨—à©‚ à¨¨à¨¹à©€à¨‚ à¨•à©€à¨¤à¨¾"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "semanage à¨¤à¨¬à¨¦à©€à¨²à©€ à¨ªà¨¹à¨¿à¨²à¨¾à¨‚ à¨¹à©€ à¨šà©±à¨² à¨°à¨¹à©€ à¨¹à©ˆ"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "semanage à¨¤à¨¬à¨¦à©€à¨²à©€ à¨šà¨¾à¨²à©‚ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage à¨¤à¨¬à¨¦à©€à¨²à©€ à¨šà¨¾à¨²à©‚ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr "semanage à¨¸à©°à¨šà¨¾à¨° à¨šà¨¾à¨²à©‚ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "semanage à¨¤à¨¬à¨¦à©€à¨²à©€ à¨šà¨¾à¨²à©‚ à¨¨à¨¹à©€à¨‚ à¨¹à©ˆ"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux à¨‰à¨ªà¨­à©‹à¨—ੀਆਂ à¨¨à©‚à©° à¨µà©‡à¨–ਾ à¨¨à¨¹à©€à¨‚ à¨¸à¨•à¨¦à¨¾"
++msgstr "SELinux à¨®à©ˆà¨¡à¨¿à¨Šà¨²à¨¾à¨‚ à¨¨à©‚à©° à¨µà©‡à¨–ਾ à¨¨à¨¹à©€à¨‚ à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "ਮੈਡਿਊਲ à¨¨à¨¾à¨‚"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "ਵਰਜਨ"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "ਅਯੋਗ"
+@@ -162,9 +157,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "ਰੋਲ %s à¨¨à©‚à©° %s à¨²à¨ˆ à¨¶à¨¾à¨®à¨¿à¨² à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -176,24 +171,22 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "ਚੇਤਾਵਨੀ"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "ਚੇਤਾਵਨੀ"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "ਚੇਤਾਵਨੀ à¨¡à©‹à¨®à©‡à¨¨ %s à¨¸à©ˆà©±à¨Ÿ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾ (ਮੈਡਿਊਲ à¨‡à©°à¨¸à¨Ÿà¨¾à¨²à©‡à¨¶à¨¨ à¨«à©‡à¨² à¨¹à©‹à¨ˆ)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "ਚੇਤਾਵਨੀ à¨®à©ˆà¨¡à¨¿à¨Šà¨² %s à¨¨à©‚à©° à¨¹à¨Ÿà¨¾ à¨¨à¨¹à©€à¨‚ à¨¸à¨•à¨¦à¨¾ (ਹਟਾਉਣ à¨µà¨¿à©±à¨š à¨«à©‡à¨² à¨¹à©‹à¨‡à¨†)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -213,9 +206,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "ਜਾਂਚ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾ à¨œà©‡ %s à¨²à¨ˆ à¨²à¨¾à¨—ਇਨ à¨®à©ˆà¨ª à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¤ à¨¨à¨¹à©€à¨‚"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "ਲੀਨਕਸ à¨‰à¨ªà¨­à©‹à¨—à©€ %s à¨®à©Œà¨œà©‚ਦ à¨¨à¨¹à©€à¨‚ à¨¹à©ˆ"
++msgstr "ਲੀਨਕਸ à¨—ਰà©à©±à¨ª %s à¨®à©Œà¨œà©‚ਦ à¨¨à¨¹à©€à¨‚ à¨¹à©ˆ"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -282,15 +275,20 @@ msgid "Could not list login mappings"
+ msgstr "ਲਾਗਇਨ à¨®à©ˆà¨ªà¨¿à©°à¨— à¨µà©‡à¨–ਾ à¨¨à¨¹à©€à¨‚ à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "ਲਾਗਇਨ à¨¨à¨¾à¨‚"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux à¨‰à¨ªà¨­à©‹à¨—à©€"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS à¨°à©‡à¨‚ਜ"
+@@ -308,9 +306,9 @@ msgid "Could not query user for %s"
+ msgstr "%s à¨²à¨ˆ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨•à¨¿à¨Šà¨°à©€ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%s à¨²à¨ˆ à¨«à¨¾à¨‡à¨² à¨ªà©à¨°à¨¸à©°à¨— à¨¶à¨¾à¨®à¨¿à¨² à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr "%s à¨²à¨ˆ à¨˜à©±à¨Ÿà©‹-ਘੱਟ à¨‡à©±à¨• à¨°à©‹à¨² à¨¶à¨¾à¨®à¨¿à¨² à¨•à¨°à¨¨à¨¾ à¨œà¨°à©‚ਰੀ à¨¹à©ˆ"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -400,6 +398,7 @@ msgid "MCS Range"
+ msgstr "MCS à¨°à©‡à¨‚ਜ"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux à¨°à©‹à¨²"
+@@ -412,9 +411,8 @@ msgid "Port is required"
+ msgstr "ਪੋਰਟ à¨¦à©€ à¨²à©‹à©œ à¨¹à©ˆ"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "ਗਲਤ à¨…ਗੇਤਰ %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -531,18 +529,17 @@ msgstr "SELinux à¨ªà©‹à¨°à¨Ÿ à¨•à¨¿à¨¸à¨®"
+ msgid "Proto"
+ msgstr "ਪਰੋਟੋ"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "ਪੋਰਟ à¨¨à©°à¨¬à¨°"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "ਪੋਰਟ à¨¦à©€ à¨²à©‹à©œ à¨¹à©ˆ"
++msgstr "ਕਿਸੇ à¨à¨¡à¨°à©ˆà©±à¨¸ à¨¦à©€ à¨²à©‹à©œ à¨¹à©ˆ"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "ਅਣਜਾਣਾ à¨œà¨¾à¨‚ à¨—ੈਰ-ਮੌਜੂਦ à¨ªà¨°à©‹à¨Ÿà©‹à¨•à¨¾à¨²"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -559,14 +556,14 @@ msgstr "%s à¨²à¨ˆ à¨•à©à©°à¨œà©€ à¨¬à¨£à¨¾à¨ˆ à¨¨à¨¹à©€à¨‚ à¨œà¨¾ à¨¸à¨•à©€"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "ਜਾਂਚ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾ à¨œà©‡ à¨ªà©‹à¨°à¨Ÿ %s/%s à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¿à¨¤ à¨¹à©ˆ"
++msgstr "ਜਾਂਚ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾ à¨œà©‡ à¨à¨¡à¨°à©ˆà©±à¨¸ %s à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¿à¨¤ à¨¹à©ˆ"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%s à¨²à¨ˆ à¨•à©à©°à¨œà©€ à¨¨à¨¹à©€à¨‚ à¨¬à¨£à¨¾ à¨¸à¨•à¨¦à¨¾"
++msgstr "%s à¨²à¨ˆ à¨à¨¡à¨°à©ˆà©±à¨¸ à¨¨à¨¹à©€à¨‚ à¨¬à¨£à¨¾ à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -575,74 +572,72 @@ msgid "Could not create context for %s"
+ msgstr "%s à¨²à¨ˆ à¨ªà©à¨°à¨¸à©°à¨— à¨¨à¨¹à©€à¨‚ à¨¬à¨£à¨¾ à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%s à¨²à¨ˆ à¨¨à¨¾à¨‚ à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr "%s à¨²à¨ˆ à¨®à¨¾à¨¸à¨• à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s à¨²à¨ˆ à¨«à¨¾à¨‡à¨² à¨ªà©à¨°à¨¸à©°à¨— à¨µà¨¿à©±à¨š à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr "%s à¨²à¨ˆ à¨à¨¡à¨°à©ˆà©±à¨¸ à¨ªà©à¨°à¨¸à©°à¨— à¨µà¨¿à©±à¨š à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s à¨²à¨ˆ à¨«à¨¾à¨‡à¨² à¨ªà©à¨°à¨¸à©°à¨— à¨µà¨¿à©±à¨š à¨°à©‹à¨² à¨¨à¨¹à©€à¨‚ à¨¦à©‡ à¨¸à¨•à¨¦à¨¾"
++msgstr "%s à¨²à¨ˆ à¨à¨¡à¨°à©ˆà©±à¨¸ à¨ªà©à¨°à¨¸à©°à¨— à¨µà¨¿à©±à¨š à¨°à©‹à¨² à¨¨à¨¹à©€à¨‚ à¨¦à©‡ à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s à¨²à¨ˆ à¨«à¨¾à¨‡à¨² à¨ªà©à¨°à¨¸à©°à¨— à¨µà¨¿à©±à¨š à¨•à¨¿à¨¸à¨® à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr "%s à¨²à¨ˆ à¨à¨¡à¨°à©ˆà©±à¨¸ à¨ªà©à¨°à¨¸à©°à¨— à¨µà¨¿à©±à¨š à¨•à¨¿à¨¸à¨® à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%s à¨²à¨ˆ à¨«à¨¾à¨‡à¨² à¨ªà©à¨°à¨¸à©°à¨— à¨µà¨¿à©±à¨š mlf à¨–ੇਤਰ à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr "%s à¨²à¨ˆ à¨à¨¡à¨°à©ˆà©±à¨¸ à¨ªà©à¨°à¨¸à©°à¨— à¨µà¨¿à©±à¨š mls à¨–ੇਤਰ à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s à¨²à¨ˆ à¨«à¨¾à¨‡à¨² à¨ªà©à¨°à¨¸à©°à¨— à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr "%s à¨²à¨ˆ à¨à¨¡à¨°à©ˆà©±à¨¸ à¨ªà©à¨°à¨¸à©°à¨— à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "ਪੋਰਟ %s/%s à¨¶à¨¾à¨®à¨¿à¨² à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr "à¨à¨¡à¨°à©ˆà©±à¨¸ %s à¨¶à¨¾à¨®à¨¿à¨² à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "ਪੋਰਟ %s/%s à¨¦à¨¿à©±à¨¤à©€ à¨¨à¨¹à©€à¨‚ à¨—ਈ"
++msgstr "à¨à¨¡à¨°à©ˆà©±à¨¸ %s à¨¦à¨¿à©±à¨¤à©€ à¨¨à¨¹à©€à¨‚ à¨—ਈ"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "ਪੋਰਟ %s/%s à¨•à¨¿à¨Šà¨°à©€ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr "à¨à¨¡à¨°à©ˆà©±à¨¸ %s à¨•à¨¿à¨Šà¨°à©€ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "ਪੋਰਟ %s/%s à¨¨à©‚à©° à¨¤à¨¬à¨¦à©€à¨² à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
++msgstr "à¨à¨¡à¨°à©ˆà©±à¨¸ %s à¨¨à©‚à©° à¨¤à¨¬à¨¦à©€à¨² à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "ਪੋਰਟ %s/%s à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨µà¨¿à©±à¨š à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¿à¨¤ à¨¹à©ˆ, à¨¹à¨Ÿà¨¾à¨ˆ à¨¨à¨¹à©€à¨‚ à¨œà¨¾ à¨¸à¨•à¨¦à©€"
++msgstr "à¨à¨¡à¨°à©ˆà©±à¨¸ %s à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨µà¨¿à©±à¨š à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¿à¨¤ à¨¹à©ˆ, à¨¹à¨Ÿà¨¾à¨ˆ à¨¨à¨¹à©€à¨‚ à¨œà¨¾ à¨¸à¨•à¨¦à©€"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "%s à¨¨à©‚à©° à¨¹à¨Ÿà¨¾à¨‡à¨† à¨¨à¨¹à©€à¨‚ à¨œà¨¾ à¨¸à¨•à¨¦à¨¾"
++msgstr "à¨à¨¡à¨°à©ˆà©±à¨¸ %s à¨¨à©‚à©° à¨¹à¨Ÿà¨¾à¨‡à¨† à¨¨à¨¹à©€à¨‚ à¨œà¨¾ à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%s à¨²à¨ˆ à¨²à¨¾à¨—ਇਨ à¨®à©ˆà¨ªà¨¿à©°à¨— à¨¹à¨Ÿà¨¾ à¨¨à¨¹à©€à¨‚ à¨¸à¨•à¨¦à¨¾"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "ਪੋਰਟਾਂ à¨¨à¨¹à©€à¨‚ à¨µà©‡à¨–ਾ à¨¸à¨•à¨¦à¨¾"
++msgstr "à¨à¨¡à¨°à©ˆà©±à¨¸ à¨¨à¨¹à©€à¨‚ à¨µà©‡à¨–ਾ à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -716,9 +711,8 @@ msgid "Could not delete interface %s"
+ msgstr "ਇੰਟਰਫੇਸ %s à¨¹à¨Ÿà¨¾à¨‡à¨† à¨¨à¨¹à©€à¨‚ à¨œà¨¾ à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "ਇੰਟਰਫੇਸ %s à¨¹à¨Ÿà¨¾à¨‡à¨† à¨¨à¨¹à©€à¨‚ à¨œà¨¾ à¨¸à¨•à¨¦à¨¾"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -733,9 +727,9 @@ msgid "Context"
+ msgstr "ਪà©à¨°à¨¸à©°à¨—"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s à¨²à¨ˆ à¨«à¨¾à¨‡à¨² à¨ªà©à¨°à¨¸à©°à¨— à¨ªà¨¹à¨¿à¨²à¨¾à¨‚ à¨¹à©€ à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¿à¨¤ à¨¹à©ˆ"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -743,9 +737,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "ਲੀਨਕਸ à¨‰à¨ªà¨­à©‹à¨—à©€ %s à¨®à©Œà¨œà©‚ਦ à¨¨à¨¹à©€à¨‚ à¨¹à©ˆ"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -865,11 +859,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -888,14 +881,14 @@ msgid "Could not query file context %s"
+ msgstr "ਫਾਇਲ à¨ªà©à¨°à¨¸à©°à¨— %s à¨•à¨¿à¨Šà¨°à©€ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° à¨‡à©±à¨• à¨®à©à©±à¨² à¨¦à©‡à¨£à¨¾ à¨šà¨¾à¨¹à©€à¨¦à¨¾ à¨¹à©ˆ"
++msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° à¨¹à©‡à¨ à¨²à¨¿à¨†à¨‚ à¨µà¨¿à©±à¨šà©‹à¨‚ à¨‡à©±à¨• à¨®à©à©±à¨² à¨¦à©‡à¨£à¨¾ à¨šà¨¾à¨¹à©€à¨¦à¨¾ à¨¹à©ˆ: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "ਬੂਲੀਅਨ %s à¨¨à©‚à©° à¨¹à¨Ÿà¨¾ à¨¨à¨¹à©€à¨‚ à¨¸à¨•à¨¦à¨¾"
++msgstr "ਬੂਲੀਅਨ %s à¨¦à¨¾ à¨¯à©‹à¨— à¨®à©à©±à¨² à¨¨à¨¹à©€à¨‚ à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¤ à¨•à¨° à¨¸à¨•à¨¦à¨¾"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -905,7 +898,7 @@ msgstr "ਬੂਲੀਅਨ %s à¨¨à©‚à©° à¨¤à¨¬à¨¦à©€à¨² à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "ਗਲਤ à¨«à¨¾à¨°à¨®à©ˆà¨Ÿ %s: à¨°à¨¿à¨•à¨¾à¨°à¨¡ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -938,15 +931,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux à¨¬à©‚ਲੀਅਨ"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "ਹਾਲਤ"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "ਵੇਰਵਾ"
+@@ -1283,1707 +1276,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "ਚੋਣ à¨—ਲਤੀ %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "%s à¨¨à©‚à©° à¨–ੋਲ à¨¨à¨¹à©€à¨‚ à¨¸à¨•à¨¦à¨¾: à¨…ਨà©à¨µà¨¾à¨¦ à¨¨à©‚à©° à¨¨à¨¾à¨¨-MLS à¨®à¨¶à©€à¨¨à¨¾à¨‚ à¨‰à©±à¨ªà¨° à¨¸à¨¹à¨¿à¨¯à©‹à¨— à¨¨à¨¹à©€à¨‚ à¨¹à©ˆ: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "ਲੈਵਲ"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "ਅਨà©à¨µà¨¾à¨¦"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "ਅਨà©à¨µà¨¾à¨¦ à¨µà¨¿à©±à¨š à¨¸à¨ªà©‡à¨¸ '%s' à¨¨à¨¹à©€à¨‚ à¨¹à©ˆ"
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "ਗਲਤ à¨²à©ˆà¨µà¨² '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s à¨ªà¨¹à¨¿à¨²à¨¾à¨‚ à¨¹à©€ à¨…ਨà©à¨µà¨¾à¨¦ à¨µà¨¿à©±à¨š à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¤ à¨¹à©ˆ"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s à¨…ਨà©à¨µà¨¾à¨¦ à¨µà¨¿à©±à¨š à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¤ à¨¨à¨¹à©€à¨‚ à¨¹à©ˆ"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s à¨²à¨ˆ à¨²à¨¾à¨—ਇਨ à¨®à©ˆà¨ª à¨ªà¨¹à¨¿à¨²à¨¾à¨‚ à¨¹à©€ à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¤ à¨¹à©ˆ"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨®à©‡à¨² à¨¶à¨¾à¨®à¨¿à¨² à¨•à¨°à©‹"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ %s à¨ªà¨¹à¨¿à¨²à¨¾à¨‚ à¨¹à©€ à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¿à¨¤ à¨¹à©ˆ"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "ਪੋਰਟ à¨¦à©€ à¨²à©‹à©œ à¨¹à©ˆ"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "ਪੋਰਟ %s/%s à¨ªà¨¹à¨¿à¨²à¨¾à¨‚ à¨¹à©€ à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¿à¨¤ à¨¹à©ˆ"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "ਇੰਟਰਫੇਸ %s à¨ªà¨¹à¨¿à¨²à¨¾à¨‚ à¨¹à©€ à¨®à©Œà¨œà©‚ਦ à¨¹à©ˆ"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "ਯੋਗਤਾਵਾਂ à¨šà¨¾à¨²à©‚ à¨•à¨°à¨¨ à¨µà¨¿à©±à¨š à¨—ਲਤੀ, à¨…ਧੂਰਾ à¨°à©±à¨¦ à¨•à¨° à¨°à¨¿à¨¹à¨¾ à¨¹à©ˆà¥¤\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "ਯੋਗਤਾਵਾਂ à¨¦à©€ à¨¸à¨¥à¨¾à¨ªà¨¨ à¨•à¨°à¨¨ à¨µà¨¿à©±à¨š à¨—ਲਤੀ, à¨…ਧੂਰਾ à¨›à©±à¨¡à¨¿à¨† à¨œà¨¾ à¨°à¨¿à¨¹à¨¾ à¨¹à©ˆ\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS à¨¸à¨¥à¨¾à¨ªà¨¨ à¨•à¨°à¨¨ à¨µà¨¿à©±à¨š à¨—ਲਤੀ, à¨…ਧੂਰਾ à¨›à©±à¨¡à¨¿à¨† à¨œà¨¾ à¨°à¨¿à¨¹à¨¾ à¨¹à©ˆ\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "ਯੋਗਤਾਵਾਂ à¨›à©±à¨¡à¨£ à¨µà¨¿à©±à¨š à¨—ਲਤੀ, à¨…ਧੂਰਾ à¨›à©±à¨¡à¨¿à¨† à¨œà¨¾ à¨°à¨¿à¨¹à¨¾ à¨¹à©ˆ\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "SETUID à¨¸à¨¹à©‚ਲਤ à¨›à©±à¨¡à¨£ à¨µà¨¿à©±à¨š à¨—ਲਤੀ, à¨…ਧੂਰਾ à¨›à©±à¨¡à¨¿à¨† à¨œà¨¾ à¨°à¨¿à¨¹à¨¾ à¨¹à©ˆ\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "caps à¨›à©±à¨¡à¨£ à¨µà¨¿à©±à¨š à¨—ਲਤੀ\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "ਅਨà©à¨µà¨¾à¨¦ à¨¨à©‚à©° à¨¨à¨¾à¨¨-MLS à¨®à¨¶à©€à¨¨à¨¾à¨‚ à¨‰à©±à¨ªà¨° à¨¸à¨¹à¨¿à¨¯à©‹à¨— à¨¨à¨¹à©€à¨‚ à¨¹à©ˆ"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "ਬੂਲੀਅਨ"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "ਸਭ"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "ਸੋਧਿਆ"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "ਫਾਇਲ à¨²à©‡à¨¬à¨²à¨¿à©°à¨—"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "ਫਾਇਲ\n"
+-#~ "ਨਿਰਧਾਰਨ"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "ਫਾਇਲ à¨•à¨¿à¨¸à¨®"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "ਫਾਇਲ\n"
+-#~ "ਕਿਸਮ"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "ਉਪਭੋਗੀ à¨®à©ˆà¨ªà¨¿à©°à¨—"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "ਲਾਗਇਨ\n"
+-#~ "ਨਾਂ"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "ਉਪਭੋਗੀ"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS à¨°à©‡à¨‚ਜ"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "ਲਾਗਇਨ '%s' à¨¦à©€ à¨²à©‹à©œ à¨¹à©ˆ"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "ਪਾਲਿਸੀ à¨®à©ˆà¨¡à¨¿à¨Šà¨²"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "ਆਡਿਟ à¨…ਯੋਗ à¨•à¨°à©‹"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "ਆਡਿਟ à¨¯à©‹à¨— à¨•à¨°à©‹"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "ਪਾਲਿਸੀ à¨®à©ˆà¨¡à¨¿à¨Šà¨² à¨²à©‹à¨¡ à¨•à¨°à©‹"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "ਜਸਵਿੰਦਰ à¨¸à¨¿à©°à¨˜ <j.phulewala@gmail.com>"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨¨à¨¿à¨°à¨®à¨¾à¨£ à¨œà©°à¨¤à¨°"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "ਇਹ à¨œà©°à¨¤à¨° à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨«à¨°à©‡à¨®à¨µà¨°à¨• à¨¬à¨£à¨¾à¨‰à¨£ à¨²à¨ˆ à¨•à¨¾à¨°à¨œà¨¾à¨‚ à¨…ਤੇ à¨‰à¨ªà¨­à©‹à¨—ੀਆਂ à¨œà©‹ SELinux à¨µà¨°à¨¤à¨¦à©‡ à¨¹à¨¨, à¨¬à©°à¨¦ à¨•à¨°à¨¨ "
+-#~ "ਲਈ à¨µà¨°à¨¤à¨¿à¨† à¨œà¨¾ à¨¸à¨•à¨¦à¨¾ à¨¹à©ˆà¥¤   \n"
+-#~ "\n"
+-#~ "ਜੰਤਰ à¨œà©‹ à¨¬à¨£à¨¾à¨‰à¨‚ਦਾ à¨¹à©ˆ à¨‡à¨¸ à¨¤à¨°à¨¾à¨‚ à¨¹à¨¨:\n"
+-#~ "ਕਿਸਮ à¨²à¨¾à¨—à©‚ à¨•à¨°à¨¨ à¨µà¨¾à¨²à©€ à¨«à¨¾à¨‡à¨² (te)\n"
+-#~ "ਇੰਟਰਫੇਸ à¨«à¨¾à¨‡à¨² (if)\n"
+-#~ "ਫਾਇਲ à¨ªà©à¨°à¨¸à©°à¨— à¨«à¨¾à¨‡à¨² (fc)\n"
+-#~ "ਸ਼ੈੱਲ à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ (sh) - à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨¨à©‚à©° à¨•à©°à¨ªà¨¾à¨ˆà¨² à¨…ਤੇ à¨‡à©°à¨¸à¨Ÿà¨¾à¨² à¨•à¨°à¨¨ à¨²à¨ˆ à¨µà¨°à¨¤à¨¿à¨† à¨œà¨¾à¨‚ਦਾ à¨¹à©ˆà¥¤ "
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "ਕਾਰਜ/ਉਪਭੋਗੀ à¨°à©‹à¨² à¨¦à©€ à¨•à¨¿à¨¸à¨® à¨šà©à¨£à©‹ à¨œà¨¿à¨¨à¨¾à¨‚ à¨¤à©‡ à¨ªà¨¾à¨¬à©°à¨¦à©€ à¨²à¨¾à¨‰à¨£à©€ à¨¹à©ˆ"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>ਕਾਰਜ</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "ਸਟੈਂਡਰਡ Init à¨¡à©ˆà¨®à¨¨ à¨‰à¨¹ à¨¡à©ˆà¨®à¨¨ à¨¹à¨¨ à¨œà©‹ à¨¬à©‚ਟ à¨¹à©‹à¨£ à¨¤à©‡ init à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿà¨¾à¨‚ à¨¦à©à¨†à¨°à¨¾ à¨šà©±à¨²à¨¦à©‡ à¨¹à¨¨à¥¤  à¨†à¨® à¨•à¨°à¨•à©‡ /etc/"
+-#~ "init.d à¨µà¨¿à©±à¨š à¨‡à©±à¨• à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ à¨¹à©‹à¨£à©€ à¨œà¨°à©‚ਰੀ à¨¹à©ˆ"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "ਸਟੈਂਡਰਡ Init à¨¡à©ˆà¨®à¨¨"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "ਇੰਟਰਨੈੱਟ à¨¸à¨°à¨µà¨¿à¨¸ à¨¡à©ˆà¨®à¨¨ à¨‰à¨¹ à¨¡à©ˆà¨®à¨¨ à¨¹à¨¨ à¨œà©‹ xinetd à¨¦à©à¨†à¨°à¨¾ à¨šà©±à¨²à¨¦à©‡ à¨¹à¨¨"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "ਇੰਟਰਨੈੱਟ à¨¸à¨°à¨µà¨¿à¨¸ à¨¡à©ˆà¨®à¨¨ (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr "ਵੈੱਬ à¨•à¨¾à¨°à¨œ/ਸਕਰਿਪਟ (CGI) CGI à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿà¨¾à¨‚ à¨µà©ˆà©±à¨¬ à¨¸à¨°à¨µà¨° (apache) à¨¦à©à¨†à¨°à¨¾ à¨šà©±à¨²à¨¦à©€à¨†à¨‚ à¨¹à¨¨"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "ਵੈੱਬ à¨•à¨¾à¨°à¨œ/ਸਕਰਿਪਟ (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "ਉਪਭੋਗੀ à¨•à¨¾à¨°à¨œ à¨‰à¨¹ à¨•à¨¾à¨°à¨œ à¨¹à¨¨ à¨œà¨¿à¨¨à¨¾à¨‚ à¨¤à©‡ à¨¤à©à¨¸à©€à¨‚ à¨ªà¨¾à¨¬à©°à¨¦à©€ à¨²à¨¾à¨‰à¨£à©€ à¨¹à©ˆ à¨¤à©‡ à¨œà©‹ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¦à©à¨†à¨°à¨¾ à¨šà©±à¨²à¨¦à©‡ à¨¹à¨¨"
+-
+-#~ msgid "User Application"
+-#~ msgstr "ਉਪਭੋਗੀ à¨•à¨¾à¨°à¨œ"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>ਲਾਗਇਨ à¨‰à¨ªà¨­à©‹à¨—à©€</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "ਇੱਕ à¨®à©Œà¨œà©‚ਦਾ à¨²à¨¾à¨—ਇਨ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨°à¨¿à¨•à¨¾à¨°à¨¡"
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "ਮੌਜੂਦਾ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨°à©‹à¨²"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "ਇਹ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨®à¨¶à©€à¨¨ à¨‰à©±à¨ªà¨° à¨¸à¨¿à¨°à¨« à¨Ÿà¨°à¨®à©€à¨¨à¨² à¨œà¨¾à¨‚ à¨°à¨¿à¨®à©‹à¨Ÿ à¨²à¨¾à¨—ਇਨ à¨°à¨¾à¨¹à©€à¨‚ à¨²à¨¾à¨—ਇਨ à¨•à¨° à¨¸à¨•à¨¦à¨¾ à¨¹à©ˆà¥¤  à¨®à©‚ਲ à¨°à©‚ਪ "
+-#~ "ਵਿੱਚ à¨‡à¨¸ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¦à¨¾ à¨•à©‹à¨ˆ setuid, à¨¨à©ˆà©±à¨Ÿà¨µà¨°à¨•à¨¿à©°à¨—, su, sudo à¨¨à¨¹à©€à¨‚ à¨¹à©ˆà¥¤"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "ਘੱਟੋ-ਘੱਟ à¨Ÿà¨°à¨®à©€à¨¨à¨² à¨‰à¨ªà¨­à©‹à¨—à©€ à¨°à©‹à¨²"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "ਇਹ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨®à¨¶à©€à¨¨ à¨‰à©±à¨ªà¨° X à¨œà¨¾à¨‚ à¨Ÿà¨°à¨®à©€à¨¨à¨² à¨°à¨¾à¨¹à©€à¨‚ à¨²à¨¾à¨—ਇਨ à¨•à¨° à¨¸à¨•à¨¦à¨¾ à¨¹à©ˆà¥¤  à¨®à©‚ਲ à¨°à©‚ਪ à¨µà¨¿à©±à¨š à¨‡à¨¸ à¨‰à¨ªà¨­à©‹à¨—à©€ "
+-#~ "ਦਾ à¨•à©‹à¨ˆ setuid, à¨¨à©ˆà©±à¨Ÿà¨µà¨°à¨•à¨¿à©°à¨—, sudo, su à¨¨à¨¹à©€à¨‚ à¨¹à©ˆà¥¤"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "ਘੱਟੋ-ਘੱਟ X à¨µà¨¿à©°à¨¡à©‹ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨°à©‹à¨²"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "ਪੂਰੀ à¨¨à©ˆà©±à¨Ÿà¨µà¨°à¨•à¨¿à©°à¨— à¨µà¨¾à¨²à©‡ à¨‰à¨ªà¨­à©‹à¨—à©€, à¨•à©‹à¨ˆ setuid à¨•à¨¾à¨°à¨œ à¨¬à¨¿à¨¨à¨¾à¨‚ à¨¤à¨¬à¨¦à©€à¨²à©€, à¨•à©‹à¨ˆ sudo, à¨•à©‹à¨ˆ su à¨¨à¨¹à©€à¨‚।"
+-
+-#~ msgid "User Role"
+-#~ msgstr "ਉਪਭੋਗੀ à¨°à©‹à¨²"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "ਪੂਰੀ à¨¨à©ˆà©±à¨Ÿà¨µà¨°à¨•à¨¿à©°à¨— à¨µà¨¾à¨²à©‡ à¨‰à¨ªà¨­à©‹à¨—à©€, à¨•à©‹à¨ˆ setuid à¨•à¨¾à¨°à¨œ à¨¤à¨¬à¨¦à©€à¨²à©€ à¨¬à¨¿à¨¨à¨¾à¨‚, à¨•à©‹à¨ˆ su, à¨°à©‚ਟ à¨ªà¨°à¨¬à©°à¨§à¨¿à¨• à¨°à©‹à¨² à¨²à¨ˆ "
+-#~ "sudo à¨•à¨° à¨¸à¨•à¨¦à¨¾ à¨¹à©ˆ"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "ਪਰਬੰਧਕ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨°à©‹à¨²"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>ਪਰਬੰਧਕ à¨‰à¨ªà¨­à©‹à¨—à©€</b>"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "ਰੂਟ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨šà©à¨£à©‹, à¨œà©‡ à¨‡à¨¹ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨®à¨¶à©€à¨¨ à¨¦à¨¾ à¨ªà¨°à¨¬à©°à¨§à¨¨ à¨•à¨°à©‡à¨—ਾ à¨œà¨¦à©‹à¨‚ à¨ªà¨°à¨¬à©°à¨§à¨• à¨¤à©Œà¨° à¨¤à©‡ à¨šà©±à¨²à¨¦à©€ à¨¹à©ˆà¥¤  à¨‡à¨¹ "
+-#~ "ਉਪਭੋਗੀ à¨¸à¨¿à¨¸à¨Ÿà¨® à¨‰à©±à¨ªà¨° à¨¸à¨¿à©±à¨§à©‡ à¨¤à©Œà¨° à¨¤à©‡ à¨²à¨¾à¨—ਇਨ à¨¨à¨¹à©€à¨‚ à¨•à¨° à¨¸à¨•à¨¦à¨¾ à¨¹à©ˆà¥¤"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "ਰੂਟ à¨ªà¨°à¨¬à©°à¨§à¨• à¨‰à¨ªà¨­à©‹à¨—à©€ à¨°à©‹à¨²"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "ਕਾਰਜ à¨œà¨¾à¨‚ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨°à©‹à¨² à¨¦à¨¾ à¨¨à¨¾à¨‚ à¨¦à¨¿à¨“ à¨œà¨¿à¨¨à¨¾à¨‚ à¨¤à©‡ à¨ªà¨¾à¨¬à©°à¨¦à©€ à¨²à¨¾à¨‰à¨£à©€ à¨¹à©ˆ"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "ਨਾਂ"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "ਪਾਬੰਦੀ à¨µà¨¾à¨²à©‡ à¨à¨—ਜ਼ੀਕਿਊਟੇਬਲ à¨²à¨ˆ à¨ªà©‚ਰਾ à¨®à¨¾à¨°à¨— à¨¦à¨¿à¨“।"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "ਪਾਬੰਦੀ à¨µà¨¾à¨²à©‡ à¨•à¨¾à¨°à¨œ à¨œà¨¾à¨‚ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨°à©‹à¨² à¨²à¨ˆ à¨µà©±à¨–ਰਾ à¨¨à¨¾à¨‚ à¨¦à¨¿à¨“।"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Executable"
+-#~ msgstr "à¨à¨—ਜ਼ੀਕਿਊਟੇਬਲ"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Init script"
+-#~ msgstr "Init à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr "ਪਾਬੰਦ à¨•à¨¾à¨°à¨œ à¨šà¨²à¨¾à¨‰à¨£ à¨µà¨¾à¨²à©€ init à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ à¨¦à¨¾ à¨ªà©‚ਰਾ à¨®à¨¾à¨°à¨— à¨¦à¨¿à¨“।"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "ਉਪਭੋਗੀ à¨°à©‹à¨² à¨šà©à¨£à©‹ à¨œà¨¿à¨¸ à¨¨à©‚à©° à¨¤à©à¨¸à©€à¨‚ à¨¸à©‹à¨§à¨£à¨¾ à¨šà¨¾à¨¹à©à©°à¨¦à©‡ à¨¹à©‹"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr "ਉਪਭੋਗੀ à¨°à©‹à¨² à¨šà©à¨£à©‹ à¨œà©‹ à¨‡à¨¸ à¨•à¨¾à¨°à¨œ à¨¡à©‹à¨®à©‡à¨¨à¨¾à¨‚ à¨µà¨¿à©±à¨š à¨¤à¨¬à¨¦à©€à¨² à¨¹à©‹à¨µà©‡à¨—ਾ।"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "ਵਾਧੂ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¡à©‹à¨®à©‡à¨¨ à¨šà©à¨£à©‹ à¨œà¨¿à¨¸ à¨¦à¨¾ à¨‡à¨¹ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨°à©‹à¨² à¨…ਨà©à¨µà¨¾à¨¦ à¨•à¨°à©‡à¨—ਾ"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr "ਕਾਰਜ à¨¡à©‹à¨®à©‡à¨¨ à¨šà©à¨£à©‹ à¨œà¨¿à¨¸ à¨µà¨¿à©±à¨š à¨¤à©à¨¸à©€à¨‚ à¨‡à¨¸ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¨à©‚à©° à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à¨¨à¨¾ à¨šà¨¾à¨¹à©à©°à¨¦à©‡ à¨¹à©‹à¥¤"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "ਉਪਭੋਗੀ à¨°à©‹à¨² à¨šà©à¨£à©‹ à¨œà©‹ à¨‡à¨¸ à¨¡à©‹à¨®à©‡à¨¨ à¨µà¨¿à©±à¨š à¨¤à¨¬à¨¦à©€à¨² à¨¹à©‹à¨µà©‡à¨—ਾ"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "ਵਾਧੂ à¨¡à©‹à¨®à©‡à¨¨ à¨šà©à¨£à©‹ à¨œà¨¿à¨¸à¨¦à¨¾ à¨‡à¨¹ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨°à©‹à¨² à¨ªà¨°à¨¬à©°à¨§à¨¨ à¨•à¨°à©‡à¨—ਾ"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "ਡੋਮੇਨ à¨šà©à¨£à©‹ à¨œà¨¿à¨¸ à¨¦à¨¾ à¨ªà¨°à¨¬à©°à¨§à¨¨ à¨‡à¨¸ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¤à©‹à¨‚ à¨•à¨°à¨¾à¨‰à¨£à¨¾ à¨¹à©ˆà¥¤"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "ਇਸ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨²à¨ˆ à¨µà¨¾à¨§à©‚ à¨°à©‹à¨² à¨šà©à¨£à©‹"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "ਨੈੱਟਵਰਕ à¨ªà©‹à¨°à¨Ÿà¨¾à¨‚ à¨¦à¨¿à¨“ à¨œà¨¿à¨¨à¨¾à¨‚ à¨¨à¨¾à¨² à¨•à¨¾à¨°à¨œ/ਉਪਭੋਗੀ à¨°à©‹à¨² à¨¸à©à¨£à¨¦à©‡ à¨¹à¨¨à¥¤"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP à¨ªà©‹à¨°à¨Ÿ</b>"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr "ਪਾਬੰਦ à¨•à¨¾à¨°à¨œ/ਉਪਭੋਗੀ à¨°à©‹à¨² à¨¨à©‚à©° à¨•à¨¿à¨¸à©‡ à¨µà©€ udp à¨ªà©‹à¨°à¨Ÿ à¨¨à¨¾à¨² à¨œà©à©œà¨¨ à¨¦à¨¿à©°à¨¦à¨¾ à¨¹à©ˆ"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "ਸਭ"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "ਕਾਰਜ/ਉਪਭੋਗੀ à¨°à©‹à¨² à¨¨à©‚à©° bindresvport à¨¨à©‚à©° 0 à¨¨à¨¾à¨² à¨•à¨¾à¨² à¨•à¨°à¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“। à¨ªà©‹à¨°à¨Ÿ 600-1024 "
+-#~ "ਨਾਲ à¨œà©à©œ à¨°à¨¿à¨¹à¨¾ à¨¹à©ˆ"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "ਕਾਮਿਆਂ à¨¨à¨¾à¨² à¨µà©±à¨– à¨•à©€à¨¤à©€ udp à¨ªà©‹à¨°à¨Ÿà¨¾à¨‚ à¨¦à©€ à¨¸à©‚ਚੀ à¨¦à¨¿à¨“ à¨œà¨¿à¨¨à¨¾à¨‚ à¨¨à¨¾à¨² à¨•à¨¾à¨°à¨œ/ਉਪਭੋਗੀ à¨œà©à©œà¨¦à©‡ à¨¹à¨¨à¥¤ à¨‰à¨¦à¨¾à¨¹à¨°à¨¨: "
+-#~ "612, 650-660"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "ਨਾ-ਰਾਖਵੇਂ à¨ªà©‹à¨°à¨Ÿ (>1024)"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "ਪੋਰਟ à¨šà©à¨£à©‹"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr "ਕਾਰਜ/ਉਪਭੋਗੀ à¨°à©‹à¨² à¨¨à©‚à©° à¨•à¨¿à¨¸à©‡ udp à¨ªà©‹à¨°à¨Ÿ à¨¨à¨¾à¨² à¨œà©à©œà¨¨ à¨¦à¨¿à©°à¨¦à¨¾ à¨¹à©ˆ > 1024"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP à¨ªà©‹à¨°à¨Ÿ</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr "ਨੈੱਟਵਰਕ à¨ªà©‹à¨°à¨Ÿà¨¾à¨‚ à¨¦à¨¿à¨“ à¨œà¨¿à¨¨à¨¾à¨‚ à¨¨à¨¾à¨² à¨•à¨¾à¨°à¨œ/ਉਪਭੋਗੀ à¨°à©‹à¨² à¨œà©à©œà¨¦à©‡ à¨¹à¨¨à¥¤"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "ਕਾਮਿਆਂ à¨¨à¨¾à¨² à¨µà©±à¨– à¨•à©€à¨¤à©€ udp à¨ªà©‹à¨°à¨Ÿà¨¾à¨‚ à¨¦à©€ à¨¸à©‚ਚੀ à¨¦à¨¿à¨“ à¨œà¨¿à¨¨à¨¾à¨‚ à¨¨à¨¾à¨² à¨•à¨¾à¨°à¨œ/ਉਪਭੋਗੀ à¨°à©‹à¨² à¨œà©à©œà¨¦à©‡ à¨¹à¨¨à¥¤ "
+-#~ "ਉਦਾਹਰਨ: 612, 650-660"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "ਕਾਮਿਆਂ à¨¨à¨¾à¨² à¨µà©±à¨– à¨•à©€à¨¤à©€ udp à¨ªà©‹à¨°à¨Ÿà¨¾à¨‚ à¨¦à©€ à¨¸à©‚ਚੀ à¨¦à¨¿à¨“ à¨œà¨¿à¨¨à¨¾à¨‚ à¨¨à¨¾à¨² à¨•à¨¾à¨°à¨œ/ਉਪਭੋਗੀ à¨œà©à©œà¨¦à©‡ à¨¹à¨¨à¥¤ à¨‰à¨¦à¨¾à¨¹à¨°à¨¨: "
+-#~ "612, 650-660"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Select common application traits"
+-#~ msgstr "ਆਮ à¨•à¨¾à¨°à¨œ à¨—à©à¨£ à¨šà©à¨£à©‹"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "syslog à¨¸à©à¨¨à©‡à¨¹à©‡ à¨²à¨¿à¨–ਦਾ à¨¹à©ˆ\t"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "/tmp à¨µà¨¿à¨šà¨²à©€à¨†à¨‚ à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨¬à¨£à¨¾à¨“/ਸੋਧੋ"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•à¨¤à¨¾ à¨²à¨ˆ Pam à¨¨à©‚à©° à¨µà¨°à¨¤à¨¦à©‡ à¨¹à¨¨"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "nsswitch à¨œà¨¾à¨‚ getpw* à¨•à¨¾à¨²à¨¾à¨‚ à¨µà¨°à¨¤à¨¦à¨¾ à¨¹à©ˆ"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Uses dbus"
+-#~ msgstr "dbus à¨µà¨°à¨¤à¨¦à¨¾ à¨¹à©ˆ"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Sends audit messages"
+-#~ msgstr "ਆਡਿਟ à¨¸à©à¨¨à©‡à¨¹à©‡ à¨­à©‡à¨œà¨¦à¨¾ à¨¹à©ˆ"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "ਟਰਮੀਨਲ à¨¨à¨¾à¨² à¨¸à©°à¨ªà¨°à¨• à¨•à¨°à¨¦à¨¾ à¨¹à©ˆ"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Sends email"
+-#~ msgstr "ਈ-ਮੇਲ à¨­à©‡à¨œà¨¦à¨¾ à¨¹à©ˆ"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "ਫਾਇਲਾਂ/ਡਾਇਰੈਕਟਰੀ à¨šà©à¨£à©‹ à¨œà¨¿à¨¨à¨¾ à¨¦à¨¾ à¨ªà¨°à¨¬à©°à¨§à¨¨ à¨•à¨¾à¨°à¨œ à¨•à¨°à¨¦à¨¾ à¨¹à©ˆ"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "ਫਾਇਲਾਂ/ਡਾਇਰੈਕਟਰੀਆਂ à¨¶à¨¾à¨®à¨¿à¨² à¨•à¨°à©‹ à¨œà¨¿à¨¨à¨¾à¨‚ à¨¨à©‚à©° à¨‡à¨¹ à¨•à¨¾à¨°à¨œ \"ਲਿਖੇਗਾ\"। Pid à¨«à¨¾à¨‡à¨²à¨¾à¨‚, à¨²à¨¾à¨— à¨«à¨¾à¨‡à¨²à¨¾à¨‚, /"
+-#~ "var/lib à¨«à¨¾à¨‡à¨²à¨¾à¨‚ ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "ਬੂਲੀਅਨ à¨šà©à¨£à©‹ à¨œà©‹ à¨‡à¨¹ à¨•à¨¾à¨°à¨œ à¨µà¨°à¨¤à¨¦à©‡ à¨¹à¨¨"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr "ਇਸ à¨ªà¨¾à¨¬à©°à¨¦ à¨•à¨¾à¨°à¨œ/ਉਪਭੋਗੀ à¨²à¨ˆ à¨µà¨°à¨¤à¨¿à¨† à¨œà¨¾à¨£ à¨µà¨¾à¨²à¨¾ à¨¬à©‚ਲੀਅਨ à¨œà©‹à©œà©‹/ਹਟਾਓ"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "ਡਾਇਰੈਕਟਰੀ à¨šà©à¨£à©‹ à¨œà¨¿à¨¸ à¨µà¨¿à©±à¨š à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨¬à¨£à¨¾à¨‰à¨£à©€ à¨¹à©ˆ"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "ਪਾਲਿਸੀ à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "ਬਣਾਈਆਂ à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨«à¨¾à¨‡à¨²à¨¾à¨‚"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "ਇਹ à¨œà©°à¨¤à¨° à¨¹à©‡à¨  à¨¦à¨¿à©±à¨¤à©‡ à¨¸à¨­ à¨¬à¨£à¨¾à¨‰à¨‚ਦਾ à¨¹à©ˆ: à¨•à¨¿à¨¸à¨® à¨²à¨¾à¨—à©‚ à¨•à¨°à¨¨ à¨µà¨¾à¨²à©€ à¨«à¨¾à¨‡à¨²(te), à¨«à¨¾à¨‡à¨² à¨ªà©à¨°à¨¸à©°à¨—(fc), "
+-#~ "ਇੰਟਰਫੇਸ(if), à¨¶à©ˆà©±à¨² à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ(sh)।\n"
+-#~ "ਫਾਇਲ/ਡਾਇਰੈਕਟਰੀਆਂ à¨¨à©‚à©° à¨•à©°à¨ªà¨¾à¨ˆà¨²/ਇੰਸਟਾਲ à¨•à¨°à¨¨à¨² à¨²à¨ˆ à¨…ਤੇ à¨®à©à©œ-ਲੇਬਲ à¨•à¨°à¨¨ à¨²à¨ˆ à¨¶à©ˆà©±à¨²à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ à¨šà¨²à¨¾à¨“।  à¨¹à©à¨£ "
+-#~ "ਤà©à¨¸à©€à¨‚ à¨®à¨¶à©€à¨¨ à¨¨à©‚à©° à¨®à¨œà¨¬à©‚ਰ à¨¢à©°à¨— (setenforce 0) à¨µà¨¿à©±à¨š à¨²à¨¿à¨œà¨¾ à¨¸à¨•à¨¦à©‡ à¨¹à©‹à¥¤ \n"
+-#~ "avc à¨¸à©à¨¨à©‡à¨¹à©‡ à¨¬à¨£à¨¾à¨‰à¨£ à¨²à¨ˆ à¨•à¨¾à¨°à¨œ à¨šà¨²à¨¾à¨“/ਮà©à©œ-ਚਲਾਓ।\n"
+-#~ "te à¨«à¨¾à¨‡à¨² à¨²à¨ˆ à¨µà¨¾à¨§à©‚ à¨¨à¨¿à¨¯à¨® à¨¬à¨£à¨¾à¨‰à¨£ à¨²à¨ˆ audit2allow -R à¨µà¨°à¨¤à©‹à¥¤\n"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "ਇਹ à¨œà©°à¨¤à¨° à¨¹à©‡à¨  à¨¦à¨¿à©±à¨¤à©‡ à¨¸à¨­ à¨¬à¨£à¨¾à¨‰à¨‚ਦਾ à¨¹à©ˆ: à¨•à¨¿à¨¸à¨® à¨²à¨¾à¨—à©‚ à¨•à¨°à¨¨ à¨µà¨¾à¨²à©€ à¨«à¨¾à¨‡à¨²(te), à¨«à¨¾à¨‡à¨² à¨ªà©à¨°à¨¸à©°à¨—(fc), "
+-#~ "ਇੰਟਰਫੇਸ(if), à¨¶à©ˆà©±à¨² à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ(sh)।\n"
+-#~ "ਫਾਇਲ/ਡਾਇਰੈਕਟਰੀਆਂ à¨¨à©‚à©° à¨•à©°à¨ªà¨¾à¨ˆà¨²/ਇੰਸਟਾਲ à¨•à¨°à¨¨à¨² à¨²à¨ˆ à¨…ਤੇ à¨®à©à©œ-ਲੇਬਲ à¨•à¨°à¨¨ à¨²à¨ˆ à¨¶à©ˆà©±à¨²à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ à¨šà¨²à¨¾à¨“।  à¨¹à©à¨£ "
+-#~ "ਤà©à¨¸à©€à¨‚ à¨®à¨¶à©€à¨¨ à¨¨à©‚à©° à¨®à¨œà¨¬à©‚ਰ à¨¢à©°à¨— (setenforce 0) à¨µà¨¿à©±à¨š à¨²à¨¿à¨œà¨¾ à¨¸à¨•à¨¦à©‡ à¨¹à©‹à¥¤ \n"
+-#~ "avc à¨¸à©à¨¨à©‡à¨¹à©‡ à¨¬à¨£à¨¾à¨‰à¨£ à¨²à¨ˆ à¨•à¨¾à¨°à¨œ à¨šà¨²à¨¾à¨“/ਮà©à©œ-ਚਲਾਓ।\n"
+-#~ "te à¨«à¨¾à¨‡à¨² à¨²à¨ˆ à¨µà¨¾à¨§à©‚ à¨¨à¨¿à¨¯à¨® à¨¬à¨£à¨¾à¨‰à¨£ à¨²à¨ˆ audit2allow -R à¨µà¨°à¨¤à©‹à¥¤\n"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "ਬੂਲੀਅਨ à¨µà¨¾à¨°à¨¤à¨¾à¨²à¨¾à¨ª à¨œà©‹à©œà©‹"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "ਬੂਲੀਅਨ à¨¨à¨¾à¨‚"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Role"
+-#~ msgstr "ਰੋਲ"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Existing_User"
+-#~ msgstr "ਮੌਜੂਦਾ à¨‰à¨ªà¨­à©‹à¨—à©€(_U)"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Application"
+-#~ msgstr "ਕਾਰਜ"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s à¨‡à©±à¨• à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€ à¨¹à©‹à¨£à©€ à¨œà¨°à©‚ਰੀ à¨¹à©ˆ"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "You must select a user"
+-#~ msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° à¨‡à©±à¨• à¨‰à¨ªà¨­à©‹à¨—à©€ à¨šà©à¨£à¨¨à¨¾ à¨œà¨°à©‚ਰੀ à¨¹à©ˆ"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "ਪਾਬੰਦ à¨•à¨°à¨¨ à¨²à¨ˆ à¨à¨—ਜ਼ੀਕਿਊਟੇਬਲ à¨«à¨¾à¨‡à¨² à¨šà©à¨£à©‹à¥¤"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "ਪਾਬੰਦੀ à¨µà¨¾à¨²à©€ init à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ à¨šà©à¨£à©‹à¥¤"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "ਫਾਇਲਾਂ à¨šà©à¨£à©‹ à¨œà©‹ à¨ªà¨¾à¨¬à©°à¨¦à©€ à¨µà¨¾à¨²à©‡ à¨•à¨¾à¨°à¨œ à¨¨à©‡ à¨¬à¨£à¨¾à¨ˆà¨†à¨‚ à¨œà¨¾à¨‚ à¨²à¨¿à¨–ੀਆਂ à¨¹à¨¨"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr "ਡਾਇਰੈਕਟਰੀ à¨šà©à¨£à©‹ à¨œà©‹ à¨ªà¨¾à¨¬à©°à¨¦à©€ à¨µà¨¾à¨²à©‡ à¨•à¨¾à¨°à¨œà¨¾à¨‚ à¨¦à©‡ à¨…ਧੀਨ à¨¹à¨¨ à¨…ਤੇ à¨²à¨¿à¨–ੀਆਂ à¨¹à¨¨"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "ਡਾਇਰੈਕਟਰੀ à¨šà©à¨£à©‹ à¨œà¨¿à¨¸ à¨µà¨¿à©±à¨š à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨¬à¨£à¨¾à¨‰à¨£à©€à¨†à¨‚ à¨¹à¨¨"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "ਕਿਸਮ %s_t à¨ªà¨¹à¨¿à¨²à¨¾à¨‚ à¨¹à©€ à¨®à©Œà¨œà©‚ਦਾ à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨µà¨¿à©±à¨š à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¿à¨¤ à¨•à©€à¨¤à©€ à¨¸à©€à¥¤\n"
+-#~ "ਕੀ à¨¤à©à¨¸à©€à¨‚ à¨œà¨¾à¨°à©€ à¨°à¨¹à¨¿à¨£à¨¾ à¨šà¨¾à¨¹à©à©°à¨¦à©‡ à¨¹à©ˆ?"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Verify Name"
+-#~ msgstr "ਨਾਂ à¨¦à©€ à¨œà¨¾à¨‚ਚ à¨•à¨°à©‹"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "ਮੈਡਿਊਲ %s.pp à¨ªà¨¹à¨¿à¨²à¨¾à¨‚ à¨¹à©€ à¨®à©Œà¨œà©‚ਦਾ à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨µà¨¿à©±à¨š à¨²à©‹à¨¡ à¨¹à©‹à¨ˆ à¨¹à©ˆà¥¤\n"
+-#~ "ਕੀ à¨¤à©à¨¸à©€à¨‚ à¨œà¨¾à¨°à©€ à¨°à¨¹à¨¿à¨£à¨¾ à¨šà¨¾à¨¹à©à©°à¨¦à©‡ à¨¹à©‹?"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° à¨‡à©±à¨• à¨¨à¨¾à¨‚ à¨¦à©‡à¨£à¨¾ à¨šà¨¾à¨¹à©€à¨¦à¨¾ à¨¹à©ˆ"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° à¨‡à©±à¨• à¨à¨—ਜ਼ੀਕਿਊਟੇਬਲ à¨¦à©‡à¨£à¨¾ à¨šà¨¾à¨¹à©€à¨¦à¨¾ à¨¹à©ˆ"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux à¨¸à©°à¨°à¨šà¨¨à¨¾"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "ਪੋਰਟਾਂ à¨¨à©°à¨¬à¨° à¨œà¨¾à¨‚ 1 à¨¤à©‹à¨‚ %d à¨¤à©±à¨• à¨¨à©°à¨¬à¨°à¨¾à¨‚ à¨¦à©€ à¨°à©‡à¨‚ਜ à¨¹à©‹à¨£à©‡ à¨œà¨°à©‚ਰੀ à¨¹à¨¨"
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° à¨†à¨ªà¨£à©‡ à¨ªà¨¾à¨¬à©°à¨¦à©€ à¨•à¨¾à¨°à¨œà¨¾à¨‚/ਉਪਭੋਗੀਆਂ à¨²à¨ˆ à¨¨à¨¾à¨‚ à¨¦à©‡à¨£à¨¾ à¨œà¨°à©‚ਰੀ à¨¹à©ˆ"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "USER à¨•à¨¿à¨¸à¨®à¨¾à¨‚ à¨¨à©‚à©° à¨à¨—ਜ਼ੀਕਿਊਟੇਬਲਾਂ à¨²à¨ˆ à¨®à¨¨à¨œà©‚ਰੀ à¨¨à¨¹à©€à¨‚ à¨¹à©ˆ"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "DAEMON à¨•à¨¾à¨°à¨œ init à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ à¨¨à©‚à©° à¨µà¨°à¨¤ à¨¸à¨•à¨¦à©‡ à¨¹à¨¨"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog à¨¦à¨¾ à¨®à©à©±à¨² à¨¬à©‚ਲੀਅਨ à¨¹à©‹à¨£à¨¾ à¨œà¨°à©‚ਰੀ à¨¹à©ˆ"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "USER à¨•à¨¿à¨¸à¨® à¨†à¨Ÿà©‹à¨®à©ˆà¨Ÿà¨¿à¨• à¨¹à©€ tmp à¨•à¨¿à¨¸à¨® à¨²à©ˆ à¨²à©ˆà¨‚ਦੀ à¨¹à©ˆ"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° à¨†à¨ªà¨£à©‡ à¨ªà¨¾à¨¬à©°à¨¦ à¨•à¨¾à¨°à¨œ à¨²à¨ˆ à¨†à¨—ਜ਼ੀਕਿਊਟੇਬਲ à¨®à¨¾à¨°à¨— à¨¦à©‡à¨£à¨¾ à¨œà¨°à©‚ਰੀ à¨¹à©ˆ"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "enforcment à¨«à¨¾à¨‡à¨² à¨Ÿà¨¾à¨ˆà¨ª à¨•à¨°à©‹"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "ਇੰਟਰਫੇਸ à¨«à¨¾à¨‡à¨²"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "ਫਾਇਲ à¨ªà©à¨°à¨¸à©°à¨— à¨«à¨¾à¨‡à¨²"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "ਸੈੱਟਅੱਪ à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux à¨ªà©‹à¨°à¨Ÿ\n"
+-#~ "ਕਿਸਮ"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "ਪਰੋਟੋਕਾਲ"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "ਲੈਵਲ"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "ਪੋਰਟ"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "ਪੋਰਟ à¨¨à©°à¨¬à¨° \"%s\" à¨ à©€à¨• à¨¨à¨¹à©€à¨‚ à¨¹à©ˆ  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "ਸੂਚੀ à¨¦à¨°à¨¿à¨¶"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "ਗਰà©à©±à¨ª à¨¦à¨°à¨¿à¨¶"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux à¨¸à¨°à¨µà¨¿à¨¸ à¨¸à©à¨°à©±à¨–ਿਆ"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "acct à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "ਪਰਬੰਧ"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "ਸਭ à¨¡à©ˆà¨®à¨¨à¨¾à¨‚ à¨°à¨¾à¨¹à©€à¨‚ à¨®à©à©±à¨–-ਫਾਇਲਾਂ à¨¨à©‚à©° / à¨¤à©‹ à¨²à¨¿à¨–ਣ à¨²à¨ˆ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "ਨਾ-ਨਿਰਧਾਰਤ ttys à¨µà¨°à¨¤à¨£ à¨²à¨ˆ à¨¸à¨­ à¨¡à©ˆà¨®à¨¨à¨¾à¨‚ à¨¨à©‚à©° à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "ਉਪਭੋਗੀ Privs"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "gadmin SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨–ਾਤਿਆਂ à¨¨à©‚à©° à¨†à¨ªà¨£à©€ home à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€ à¨œà¨¾à¨‚ /tmp à¨µà¨¿à¨šà¨²à©€à¨†à¨‚ à¨«à¨¾à¨‡à¨²à¨¾à¨‚ "
+-#~ "ਚਲਾਉਣ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ਗਿਸਟ SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨–ਾਤਿਆਂ à¨¨à©‚à©° à¨˜à¨°à©‡à¨²à©‚ à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€à¨†à¨‚ à¨œà¨¾à¨‚ /tmp à¨µà¨¿à©±à¨š à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ "
+-#~ "ਦਿਓ"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "ਮੈਮੋਰੀ à¨¸à©à¨°à©±à¨–ਿਆ"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "java à¨†à¨—ਜ਼ੀਕਿਊਟੇਬਲ à¨¸à¨Ÿà©ˆà¨• à¨¨à©‚à©° à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "ਮਾਊਂਟ"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "ਕਿਸੇ à¨«à¨¾à¨‡à¨² à¨¨à©‚à©° à¨®à¨¾à¨Šà¨‚ਟ à¨•à¨°à¨¨ à¨²à¨ˆ mount à¨®à¨¨à¨œà©‚ਰ à¨•à¨°à©‹"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "ਕਿਸੇ à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€ à¨¨à©‚à©° à¨®à¨¾à¨Šà¨‚ਟ à¨•à¨°à¨¨ à¨²à¨ˆ mount à¨®à¨¨à¨œà©‚ਰ à¨•à¨°à©‹"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "mplayer à¨à¨—ਜ਼ੀਕਿਊਟੇਬਲ à¨¸à¨Ÿà©ˆà¨• à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "ssh à¨¨à©‚à©° ssh-keysign à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ਸਟਾਫ SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨–ਾਤਿਆਂ à¨¨à©‚à©° à¨†à¨ªà¨£à©€ à¨˜à¨°à©‡à¨²à©‚ à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€ à¨œà¨¾à¨‚ /tmp à¨µà¨¿à©±à¨š à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ "
+-#~ "ਮਨਜੂਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "sysadm SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨–ਾਤਿਆਂ à¨¨à©‚à©° à¨†à¨ªà¨£à©€ à¨˜à¨°à©‡à¨²à©‚ à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€ à¨œà¨¾à¨‚ /tmp à¨µà¨¿à©±à¨š à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ "
+-#~ "ਮਨਜੂਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "ਨਾ-ਪਾਬੰਦ SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨–ਾਤਿਆਂ à¨¨à©‚à©° à¨†à¨ªà¨£à©€ à¨˜à¨°à©‡à¨²à©‚ à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€ à¨œà¨¾à¨‚ /tmp à¨µà¨¿à©±à¨š à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨šà¨²à¨¾à¨‰à¨£ "
+-#~ "ਦੀ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "ਨੈੱਟਵਰਕ à¨¸à©°à¨°à¨šà¨¨à¨¾"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "ਬਿਨਾਂ-ਲੇਬਲ à¨ªà©ˆà¨•à¨Ÿà¨¾à¨‚ à¨¨à©‚à©° à¨¨à©ˆà©±à¨Ÿà¨µà¨°à¨• à¨¤à©‡ à¨œà¨¾à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "ਉਪਭੋਗੀ SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨–ਾਤਿਆਂ à¨¨à©‚à©° à¨†à¨ªà¨£à©€ à¨˜à¨°à©‡à¨²à©‚ à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€ à¨œà¨¾à¨‚ /tmp à¨µà¨¿à©±à¨š à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ "
+-#~ "ਮਨਜੂਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "unconfined à¨¨à©‚à©° unconfined_execmem à¨µà©±à¨² à¨†à¨°à¨œà©€ à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "ਡਾਟਾਬੇਸ"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "ਉਪਭੋਗੀ à¨¨à©‚à©° mysql à¨¸à¨¾à¨•à¨Ÿ à¨¨à¨¾à¨² à¨œà©à©œà¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "ਉਪਭੋਗੀ à¨¨à©‚à©° postgres à¨¸à¨¾à¨•à¨Ÿ à¨¨à¨¾à¨² à¨œà©à©œà¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "ਕਲਾਂਈਟ à¨¨à©‚à©° X à¨¶à©‡à¨…ਰ à¨®à©ˆà¨®à©‹à¨°à©€ à¨¤à©‡ à¨²à¨¿à¨–ਣ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "xguest SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨–ਾਤਿਆਂ à¨¨à©‚à©° à¨†à¨ªà¨£à©€ à¨˜à¨°à©‡à¨²à©‚ à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€ à¨œà¨¾à¨‚ /tmp à¨µà¨¿à©±à¨š à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ "
+-#~ "ਮਨਜੂਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "ਡੈਮਨਾਂ à¨¨à©‚à©° NIS à¨¨à¨¾à¨² à¨šà©±à¨²à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "ਵੈੱਬ à¨•à¨¾à¨°à¨œ"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "ਸਟਾਫ SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¨à©‚à©° à¨µà©ˆà©±à¨¬ à¨¬à¨°à¨¾à¨Šà©›à¨° à¨¡à©‹à¨®à©‡à¨¨ à¨µà¨¿à©±à¨š à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à©‹"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "sysadm SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¨à©‚à©° à¨µà©ˆà©±à¨¬ à¨¬à¨°à¨¾à¨Šà©›à¨° à¨¡à©‹à¨®à©‡à¨¨ à¨µà¨¿à©±à¨š à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à©‹"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "ਉਪਭੋਗੀ SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¨à©‚à©° à¨µà©ˆà©±à¨¬ à¨¬à¨°à¨¾à¨Šà©›à¨° à¨¡à©‹à¨®à©‡à¨¨ à¨µà¨¿à©±à¨š à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à©‹"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "xguest SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¨à©‚à©° à¨µà©ˆà©±à¨¬ à¨¬à¨°à¨¾à¨Šà¨œà¨° à¨¡à©‹à¨®à©‡à¨¨ à¨µà¨¿à©±à¨š à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à©‹"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "ਸਟਾਫ à¨µà©ˆà©±à¨¬ à¨¬à¨°à¨¾à¨Šà©›à¨° à¨¨à©‚à©° home à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€à¨†à¨‚ à¨µà¨¿à©±à¨š à¨²à¨¿à¨–ਣ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "amanda à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "amavis à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "apmd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "arpwatch à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "auditd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "automount à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "avahi à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "bluetooth à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "canna à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "cardmgr à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "ਕਲੱਸਟਰ à¨¸à¨°à¨µà¨° à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "cdrecord à¨¨à©‚à©° à¨µà©±à¨–-ਵੱਖ à¨¹à¨¿à©±à¨¸à©‡ à¨ªà©œà¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“। nfs, samba, à¨¹à¨Ÿà¨¾à¨‰à¨£-ਯੋਗ à¨œà©°à¨¤à¨°, à¨‰à¨ªà¨­à©‹à¨—à©€ "
+-#~ "temp à¨…ਤੇ à¨¨à¨¾-ਭਰੇਸੋਯੋਗ à¨¸à©°à¨–ੇਪ à¨«à¨¾à¨‡à¨²à¨¾à¨‚"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ciped à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "clamd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "clamscan à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "clvmd à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "comsat à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "courier à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "cpucontrol à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "cpuspeed à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "ਪà©à¨°à¨¿à©°à¨Ÿà¨¿à©°à¨—"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "cupsd à¨¬à©ˆà¨•à¨à¨‚ਡ à¨¸à¨°à¨µà¨° à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "cupsd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "cupsd_lpd à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "cvs à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "cyrus à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "dbskkd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "dbusd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "dccd à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "dccifd à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "dccm à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ddt à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "devfsd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "dhcpc à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "dhcpd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "dictd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "sysadm_t à¨¨à©‚à©° à¨¸à¨¿à©±à¨§à¨¾ à¨¹à©€ à¨¡à©ˆà¨®à¨¨ à¨šà¨¾à¨²à©‚ à¨•à¨°à¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "à¨à¨µà©‹à¨²à©‚ਸ਼ਨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "ਖੇਡਾਂ"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "ਖੇਡਾਂ à¨²à¨ˆ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "ਵੈੱਬ à¨¬à¨°à¨¾à¨Šà©›à¨°à¨¾à¨‚ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "ਥੰਡਰਬਰਡ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "fetchmail à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Hal à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "ਅਨà©à¨•à©‚ਲਤਾ"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "ਉਹ à¨šà©€à¨œà¨¾à¨‚ à¨†à¨¡à¨¿à¨Ÿ à¨¨à¨¾ à¨•à¨°à©‹ à¨œà©‹ à¨¤à©à¨¹à¨¾à¨¨à©‚à©° à¨²à©±à¨—ਦਾ à¨¹à©ˆ à¨•à¨¿ à¨°à©à¨•à¨¾à¨µà¨Ÿ à¨ªà¨¾à¨‰à¨‚ਦੀਆਂ à¨¹à¨¨ à¨…ਤੇ à¨¸à©à¨°à©±à¨–ਿਆ à¨¨à©‚à©° à¨•à©‹à¨ˆ à¨–ਤਰਾ "
+-#~ "ਨਹੀਂ à¨¹à©ˆà¥¤"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "hostname à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "cups hplip à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "httpd rotatelogs à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD à¨¸à¨°à¨µà¨¿à¨¸"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexec à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "inetd à¨…ਧੀਨ à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ircd à¨¡à©ˆà¨®à¨¨ "
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "irqbalance à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "iscsi à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "jabberd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "ਕਰਬੀਰੋਸ"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "kadmind à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "klogd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "krb5kdc à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ktalk à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "kudzu à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "locate à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "lpd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "lrrd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "lvm à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "mailman à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "à¨à¨µà©‹à¨²à©‚ਸ਼ਨ à¨…ਤੇ à¨¥à©°à¨¡à¨°à¨¬à¨°à¨¡ à¨¨à©‚à©° à¨‰à¨ªà¨­à©‹à¨—à©€ à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨ªà©œà¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "mdadm à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "monopd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "ਮੋਜ਼ੀਲਾ à¨¬à¨°à¨¾à¨Šà©›à¨° à¨¨à©‚à©° à¨‰à¨ªà¨­à©‹à¨—à©€ à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨ªà©œà¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "mrtg à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "mysqld à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "nagios à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "ਨਾਂ à¨¸à¨°à¨µà¨¿à¨¸"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "named à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "nessusd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "NetworkManager à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "nfsd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "nmbd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "nrpe à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "nscd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "nsd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ntpd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "oddjob à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "oddjob_mkhomedir à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "openvpn à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "pam à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "pegasus à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "perdition à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "portmap à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "portslave à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "postfix à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "postgresql à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "pppd à¨¨à©‚à©° à¨°à©ˆà¨—ੂਲਰ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨²à¨ˆ à¨šà©±à¨²à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "pptp à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "prelink à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "privoxy à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ptal à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "pxe à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "pyzord à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "quota à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "radiusd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "radvd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "rdisc à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "readahead à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr "ਪਰੋਗਰਾਮਾਂ à¨¨à©‚à©° à¨¬à¨¿à¨¨à¨¾-ਮਿਆਰ (default_t) à¨¸à¨¥à¨¿à¨¤à©€à¨†à¨‚ à¨¤à©‹à¨‚ à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨ªà©œà¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "restorecond à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "rhgb à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ricci à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ricci_modclusterd à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "rlogind à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "rpcd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "rshd à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "rsync à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "ssh à¨¨à©‚à©° à¨¡à©ˆà¨®à¨¨ à¨¦à©€ à¨¬à¨œà¨¾à¨‡ inetd à¨¤à©‹à¨‚ à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Samba à¨¨à©‚à©° nfs à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€ à¨¶à©‡à¨…ਰ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL à¨ªà©à¨°à¨®à¨¾à¨£à¨¿à¨•à¨¤à¨¾ à¨¸à¨°à¨µà¨°"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "sasl à¨ªà©à¨°à¨®à¨¾à¨£à¨¿à¨•à¨¤à¨¾ à¨¸à¨°à¨µà¨° à¨¨à©‚à©° /etc/shadow à¨ªà©œà¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "X-ਵਿੰਡੋ à¨¸à¨°à¨µà¨° à¨¨à©‚à©° à¨®à©ˆà¨®à©‹à¨°à©€ à¨®à©ˆà¨ª à¨•à¨°à¨¨ à¨²à¨ˆ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“ à¨¤à¨¾à¨‚ à¨•à¨¿ à¨‡à¨¹ à¨à¨—ਜ਼ੀਕਿਊਟੇਬਲ à¨…ਤੇ à¨²à¨¿à¨–ਣਯੋਗ à¨¹à©‹ à¨¸à¨•à©‡"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "saslauthd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "scannerdaemon à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "sysadm_t, sudo à¨…ਤੇ su à¨ªà©à¨°à¨­à¨¾à¨µà©€ à¨¤à¨¬à¨¦à©€à¨²à©€ à¨®à¨¨à¨œà©‚ਰ à¨¨à¨¾ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "ਕਿਸੇ à¨µà©€ à¨•à¨¾à¨°à¨œ à¨¨à©‚à©° à¨•à¨°à¨¨à¨² à¨®à©ˆà¨¡à¨¿à¨Šà¨² à¨²à©‹à¨¡ à¨¨à¨¾ à¨•à¨°à¨¨ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "ਕਰਨਲ SELinux à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨¨à©‚à©° à¨•à¨¿à¨¸à©‡ à¨µà©€ à¨•à¨¾à¨°à¨œ à¨¦à©à¨†à¨°à¨¾ à¨¸à©‹à¨§à¨£ à¨¨à¨¾ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "sendmail à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "setrans à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "setroublesoot à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "slapd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "slrnpull à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "smbd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "snmpd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "snort à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "soundd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "sound à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "spam à¨¸à©à¨°à©±à¨–ਿਆ"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "spamd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "spamd à¨¨à©‚à©° à¨¨à©ˆà©±à¨Ÿà¨µà¨°à¨• à¨µà¨°à¨¤à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Spam Assasin à¨¡à©ˆà¨®à¨¨ à¨¨à©‚à©° à¨¨à©ˆà©±à¨Ÿà¨µà¨°à¨• à¨ªà¨¹à©à©°à¨š à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "speedmgmt à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "squid à¨¡à©ˆà¨®à¨¨ à¨¨à©‚à©° à¨¨à©ˆà©±à¨Ÿà¨µà¨°à¨• à¨¨à¨¾à¨² à¨œà©à©œà¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "squid à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ssh à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "ssh à¨²à¨¾à¨—ਇਨ à¨¨à©‚à©° sysadm_r:sysadm_t à¨¤à©Œà¨° à¨¤à©‡ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "staff_r à¨‰à¨ªà¨­à©‹à¨—ੀਆਂ à¨¨à©‚à©° à¨ªà¨°à¨¬à©°à¨§à¨• à¨˜à¨°à©‡à¨²à©‚ à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©ˆà¨•à¨Ÿà¨°à©€ à¨–ੋਜਣ à¨…ਤੇ à¨«à¨¾à¨‡à¨²à¨¾à¨‚ (ਜਿਵੇਂ ~/.bashrc) à¨ªà©œà¨¨ "
+-#~ "ਦੀ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "ਯੂਨੀਵਰਸਲ SSL tunnel"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "stunnel à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "stunnel à¨¡à©ˆà¨®à¨¨ à¨¨à©‚à©° xinetd à¨¦à©‡ à¨¬à¨¾à¨¹à¨°, à¨¸à¨Ÿà©ˆà¨‚ਡਅਲੋਨ à¨šà©±à¨²à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "swat à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "sxid à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "syslogd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "ਸਿਸਟਮ cron jobs à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "tcp à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "telnet à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "tftpd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "transproxy à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "udev à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "uml à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "xinetd à¨¨à©‚à©° à¨¨à¨¾-ਪਾਬੰਦ à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“, à¨œà¨¿à¨µà©‡à¨‚ à¨•à¨¿ à¨¸à¨°à¨µà¨¿à¨¸à¨¾à¨‚ à¨œà©‹ à¨‡à¨¹ à¨šà¨²à¨¾à¨‰à¨‚ਦਾ à¨¹à©ˆ à¨¤à©‡ à¨œà¨¿à¨¸ à¨œà©€ "
+-#~ "ਡੋਮੇਨ à¨¤à¨¬à¨¦à©€à¨²à©€ à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¿à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à©€à¨¤à©€ à¨¹à©ˆ"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "rc à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿà¨¾à¨‚ à¨¨à©‚à©° à¨¨à¨¾-ਪਾਬੰਦ à¨šà¨²à¨¾à¨‰à¨£ à¨²à¨ˆ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“, à¨œà¨¿à¨µà©‡à¨‚ à¨•à¨¿ à¨•à©‹à¨ˆ à¨µà©€ à¨¡à©ˆà¨®à¨¨ à¨œà©‹ rc à¨¸à¨•à¨°à¨¿à¨ªà¨Ÿ "
+-#~ "ਦà©à¨†à¨°à¨¾ à¨šà¨²à¨¾à¨‡à¨† à¨—ਿਆ à¨¹à©ˆ à¨¤à©‡ à¨œà¨¿à¨¸ à¨¦à©€ à¨¡à©‹à¨®à©‡à¨¨ à¨¤à¨¬à¨¦à©€à¨²à©€ à¨ªà¨°à¨¿à¨­à¨¾à¨¶à¨¿à¨¤ à¨¨à¨¹à©€à¨‚ à¨•à©€à¨¤à©€ à¨¹à©ˆ"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "rpm à¨¨à©‚à©° unconfined à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr "ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨¤ à¨¸à¨¹à©‚ਲਤਾਂ à¨œà¨¿à¨µà©‡à¨‚ hotplug à¨…ਤੇ insmod à¨¨à©‚à©° à¨¨à¨¾-ਪਾਬੰਦ à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "updfstab à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "uptimed à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "user_r à¨¨à©‚à©° sysadm_r à¨¤à©±à¨• su, sudo, à¨œà¨¾à¨‚ userhelper à¨°à¨¾à¨¹à©€à¨‚ à¨ªà¨¹à©à©°à¨šà¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“। à¨¨à¨¹à©€à¨‚ "
+-#~ "ਤਾਂ, à¨¸à¨¿à¨°à¨« staff_r à¨¹à©€ à¨…ਜਿਹਾ à¨•à¨° à¨¸à¨•à¨¦à¨¾ à¨¹à©ˆ"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "ਉਪਭੋਗੀ à¨¨à©‚à©° mount à¨•à¨®à¨¾à¨‚ਡ à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr "ਰੈਗੂਲਰ à¨‰à¨ªà¨­à©‹à¨—ੀਆਂ à¨¨à©‚à©° à¨¸à¨¿à©±à¨§à©€ à¨®à¨¾à¨Šà¨¸ à¨µà¨°à¨¤à©‹à¨‚ à¨²à¨ˆ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“ (ਸਿਰਫ X à¨¸à¨°à¨µà¨° à¨¨à©‚à©° à¨®à¨¨à¨œà©‚ਰ à¨•à¨°à©‹)"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "ਉਪਭੋਗੀ à¨¨à©‚à©° dmesg à¨•à¨®à¨¾à¨‚ਡ à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "ਉਪਭੋਗੀ à¨¨à©‚à©° à¨¨à©ˆà©±à¨Ÿà¨µà¨°à¨• à¨‡à©°à¨Ÿà¨°à¨«à©‡à¨¸ à¨•à©°à¨Ÿà¨°à©‹à¨² à¨•à¨°à¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à©°à¨¦à¨¾ à¨¹à©ˆ (USERCTL=true à¨¦à©€ à¨µà©€ à¨²à©‹à©œ à¨¹à©ˆ)"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "ਆਮ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¨à©‚à©° ping à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "ਉਪਭੋਗੀ à¨¨à©‚à©° r/w noextattrfile (FAT, CDROM, FLOPPY) à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "ਉਪਭੋਗੀ à¨¨à©‚à©° rw usb à¨œà©°à¨¤à¨° à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "ਉਪਭੋਗੀਆਂ à¨¨à©‚à©° TCP à¨¸à¨°à¨µà¨° à¨šà¨²à¨¾à¨‰à¨£ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“ (ਪੋਰਟਾਂ à¨¨à¨¾à¨² à¨œà©‹à©œà©‹ à¨…ਤੇ à¨‰à¨¸à©‡ à¨¡à©‹à¨®à©‡à¨¨ à¨œà¨¾à¨‚ à¨¬à¨¾à¨¹à¨°à¨²à©‡ "
+-#~ "ਉਪਭੋਗੀਆਂ à¨¤à©‹à¨‚ à¨•à©à¨¨à©ˆà¨•à¨¶à¨¨ à¨¸à¨µà©€à¨•à¨¾à¨° à¨•à¨°à©‹)  à¨‡à¨¸ à¨¨à©‚à©° à¨…ਯੋਗ à¨•à¨°à¨¨ à¨¨à¨¾à¨² FTP passive à¨®à©‹à¨¡ à¨¨à©‚à©° à¨®à¨œà¨¬à©‚ਰ à¨•à¨°à¨¦à¨¾ à¨¹à©ˆ "
+-#~ "ਅਤੇ à¨¹à©‹à¨° à¨ªà¨°à©‹à¨Ÿà©‹à¨•à¨¾à¨² à¨¤à¨¬à¨¦à©€à¨²à©€à¨†à¨‚ à¨•à¨°à¨¦à¨¾ à¨¹à©ˆ"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "ਉਪਭੋਗੀ à¨¨à©‚à©° stat ttyfiles à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "uucpd à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "vmware à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "watchdog à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "winbind à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "xdm à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "xdm à¨²à¨¾à¨—ਇਨ à¨¨à©‚à©° sysadm_r:sysadm_t à¨¤à©Œà¨° à¨¤à©‡ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "xen à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "xen à¨¨à©‚à©° à¨­à©Œà¨¤à¨¿à¨• à¨¡à¨¿à¨¸à¨• à¨œà©°à¨¤à¨° à¨ªà©œà¨¨/ਲਿਖਣ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "xfs à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "xen constrol à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ypbind à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "NIS à¨ªà¨¾à¨¸à¨µà¨°à¨¡ à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ypserv à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "NIS à¨Ÿà¨°à¨¾à¨‚ਸਫਰ à¨¡à©ˆà¨®à¨¨ à¨²à¨ˆ SELinux à¨¸à©à¨°à©±à¨–ਿਆ à¨…ਯੋਗ à¨•à¨°à©‹"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¨à©‚à©° à¨¨à¨¾-ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨¤ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨˜à¨°à©‡à¨²à©‚ à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€à¨†à¨‚ à¨¦à©‡ à¨ªà¨°à¨¬à©°à¨§à¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "SELinux webadm à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¨à©‚à©° à¨¨à¨¾-ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨¤ à¨‰à¨ªà¨­à©‹à¨—à©€ à¨˜à¨°à©‡à¨²à©‚ à¨¡à¨¾à¨‡à¨°à©ˆà¨•à¨Ÿà¨°à©€à¨†à¨‚ à¨¨à©‚à©° à¨ªà©œà¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "ਕੀ à¨¤à©à¨¸à©€à¨‚ à¨¯à¨•à©€à¨¨à¨¨ %s '%s' à¨¨à©‚à©° à¨¹à¨Ÿà¨¾à¨‰à¨£à¨¾ à¨šà©€à¨¹à©à©°à¨¦à©‡ à¨¹à©‹?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "%s à¨¹à¨Ÿà¨¾à¨“"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "%s à¨¶à¨¾à¨®à¨¿à¨²"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "%s à¨¸à©‹à¨§"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "ਚੇਤਾਵਨੀ"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "ਮਜਬੂਰ"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "ਪਾਲਿਸੀ à¨•à¨¿à¨¸à¨® à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à¨¨ à¨¨à¨¾à¨² à¨…ਗਲੀ à¨µà¨¾à¨° à¨¬à©‚ਟ à¨¹à©‹à¨£ à¨¤à©‡ à¨ªà©‚ਰਾ à¨«à¨¾à¨‡à¨² à¨¸à¨¿à¨¸à¨Ÿà¨® à¨®à©à©œ à¨²à©‡à¨¬à¨² à¨•à©€à¨¤à¨¾ "
+-#~ "ਜਾà¨à¨—ਾ। à¨®à©à©œ-ਲੇਬਲ à¨¹à©‹à¨£ à¨¤à©‡ à¨«à¨¾à¨‡à¨² à¨¸à¨¿à¨¸à¨Ÿà¨® à¨¦à©‡ à¨…ਕਾਰ à¨®à©à¨¤à¨¾à¨¬à¨¿à¨• à¨•à©à¨ à¨¸à¨®à¨¾à¨‚ à¨²à©±à¨—ਦਾ à¨¹à©ˆà¥¤  à¨•à©€ à¨¤à©à¨¸à©€à¨‚ à¨œà¨¾à¨°à©€ "
+-#~ "ਕਰਨਾ à¨¹à©ˆ?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux à¨…ਯੋਗ à¨•à¨°à¨¨ à¨²à¨ˆ à¨®à©à©œ-ਚਾਲੂ à¨•à¨°à¨¨à¨¾ à¨ªà¨µà©‡à¨—ਾ। à¨‡à¨¸ à¨¦à©€ à¨¸à¨¿à¨«à¨¾à¨°à¨¶ à¨¨à¨¹à©€à¨‚ à¨•à©€à¨¤à©€ à¨œà¨¾à¨‚ਦੀ।  à¨œà©‡ à¨¤à©à¨¸à©€à¨‚ "
+-#~ "ਬਾਅਦ à¨µà¨¿à©±à¨š SELinux à¨µà©±à¨² à¨ªà¨¿à©±à¨›à©‡ à¨œà¨¾à¨£à¨¾ à¨šà¨¾à¨¹à©à©°à¨¦à©‡ à¨¹à©‹, à¨¤à¨¾à¨‚ à¨¸à¨¿à¨¸à¨Ÿà¨® à¨®à©à©œ-ਲੇਬਲ à¨•à¨°à©‡à¨—ਾ।  à¨œà¨¿à¨¸ à¨¤à©à¨¸à©€à¨‚ à¨‡à¨¹ "
+-#~ "ਵੇਖਣਾ à¨šà¨¾à¨¹à©à©°à¨¦à©‡ à¨¹à©‹ à¨œà©‡ SELinux à¨¤à©à¨¹à¨¾à¨¡à©‡ à¨¸à¨¿à¨¸à¨Ÿà¨® à¨‰à©±à¨ªà¨° à¨¸à¨®à©±à¨¸à¨¿à¨† à¨ªà©ˆà¨¦à¨¾ à¨•à¨° à¨°à¨¿à¨¹à¨¾ à¨¹à©ˆ, à¨¤à©à¨¸à©€à¨‚ permissive "
+-#~ "ਮੋਡ à¨µà¨¿à©±à¨š à¨œà¨¾ à¨¸à¨•à¨¦à©‡ à¨¹à©‹ à¨œà©‹ à¨¸à¨¿à¨°à¨« à¨—ਲਤੀਆਂ à¨¦à¨¾ à¨²à¨¾à¨— à¨°à©±à¨–ਦਾ à¨¹à©ˆ à¨…ਤੇ enforce SELinux à¨ªà¨¾à¨²à¨¿à¨¸à©€ "
+-#~ "ਨਹੀਂ।  Permissive à¨®à©‹à¨¡ à¨²à¨ˆ à¨®à©à©œ-ਚਾਲੂ à¨•à¨°à¨¨ à¨¦à©€ à¨²à©‹à©œ à¨¨à¨¹à©€à¨‚ à¨¹à©ˆ    à¨•à©€ à¨¤à©à¨¸à©€à¨‚ à¨œà¨¾à¨°à©€ à¨•à¨°à¨¨à¨¾ à¨šà¨¾à¨¹à©à©°à¨¦à©‡ à¨¹à©‹?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux à¨¯à©‹à¨— à¨•à¨°à¨¨ à¨¨à¨¾à¨² à¨…ਗਲੀ à¨µà¨¾à¨° à¨¬à©‚ਟ à¨¹à©‹à¨£ à¨¤à©‡ à¨ªà©‚ਰਾ à¨«à¨¾à¨‡à¨² à¨¸à¨¿à¨¸à¨Ÿà¨® à¨®à©à©œ à¨²à©‡à¨¬à¨² à¨•à©€à¨¤à¨¾ à¨œà¨¾à¨à¨—ਾ। à¨®à©à©œ-"
+-#~ "ਲੇਬਲ à¨¹à©‹à¨£ à¨¤à©‡ à¨«à¨¾à¨‡à¨² à¨¸à¨¿à¨¸à¨Ÿà¨® à¨¦à©‡ à¨…ਕਾਰ à¨®à©à¨¤à¨¾à¨¬à¨¿à¨• à¨•à©à¨ à¨¸à¨®à¨¾à¨‚ à¨²à©±à¨—ਦਾ à¨¹à©ˆà¥¤  à¨•à©€ à¨¤à©à¨¸à©€à¨‚ à¨œà¨¾à¨°à©€ à¨•à¨°à¨¨à¨¾ à¨¹à©ˆ?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux à¨²à¨¾à¨—ਿੰਗ à¨®à©ˆà¨ªà¨¿à©°à¨— à¨œà©‹à©œà©‹"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux à¨¨à©ˆà©±à¨Ÿà¨µà¨°à¨• à¨ªà©‹à¨°à¨Ÿà¨¾à¨‚ à¨œà©‹à©œà©‹"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux à¨•à¨¿à¨¸à¨®"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "ਲੈਵਲ"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "ਫਾਇਲ à¨¨à¨¿à¨°à¨§à¨¾à¨°à¨¨"
+-
+-#~ msgid "File Type"
+-#~ msgstr "ਫਾਇਲ à¨•à¨¿à¨¸à¨®"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "ਸਭ à¨«à¨¾à¨‡à¨²à¨¾à¨‚\n"
+-#~ "ਰੈਗੂਲਰ à¨«à¨¾à¨‡à¨²\n"
+-#~ "ਡਾਇਰੈਕਟਰੀ\n"
+-#~ "ਅੱਖਰ à¨œà©°à¨¤à¨°\n"
+-#~ "ਬਲਾਕ à¨œà©°à¨¤à¨°\n"
+-#~ "ਸਾਕਟ\n"
+-#~ "ਚਿੰਨ à¨¸à©°à¨¬à©°à¨§\n"
+-#~ "named à¨ªà¨¾à¨ˆà¨ª\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¶à¨¾à¨®à¨¿à¨²"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux à¨ªà¨°à¨¬à©°à¨§à¨¨"
+-
+-#~ msgid "Add"
+-#~ msgstr "ਸ਼ਾਮਿਲ"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ(_P)"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "ਹਟਾਓ(_D)"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "ਮੈਨੇਜਮੈਂਟ à¨†à¨¬à¨œà©ˆà¨•à¨Ÿ à¨šà©à¨£à©‹"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>ਚà©à¨£à©‹:</b>"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "ਸਿਸਟਮ à¨®à©‚ਲ à¨®à¨œà¨¬à©‚ਰ à¨®à©‹à¨¡"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "ਵਰਤਮਾਨ à¨®à¨œà¨¬à©‚ਰ à¨®à©‹à¨¡"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "ਸਿਸਟਮ à¨®à©‚ਲ à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨•à¨¿à¨¸à¨®: "
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "ਚà©à¨£à©‹ à¨œà©‡ à¨¤à©à¨¸à©€à¨‚ à¨…ਗਲੀ à¨µà¨¾à¨° à¨®à©à©œ-ਚਾਲੂ à¨¹à©‹à¨£ à¨¤à©‡ à¨ªà©‚ਰਾ à¨«à¨¾à¨‡à¨² à¨¸à¨¿à¨¸à¨Ÿà¨® à¨®à©à©œ-ਲੇਬਲ à¨•à¨°à¨¨à¨¾ à¨¹à©ˆà¥¤  à¨®à©à©œ-ਲੇਬਲ à¨¹à©‹à¨£ à¨¤à©‡ "
+-#~ "ਸਿਸਟਮ à¨¦à©‡ à¨…ਕਾਰ à¨®à©à¨¤à¨¾à¨¬à¨¿à¨• à¨•à¨¾à¨«à©€ à¨¸à¨®à¨¾à¨‚ à¨²à©±à¨— à¨²à¨•à¨¦à¨¾ à¨¹à©ˆà¥¤ à¨œà©‡ à¨¤à©à¨¸à©€à¨‚ à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨•à¨¿à¨¸à¨® à¨¤à¨¬à¨¦à©€à¨² à¨•à¨° à¨¦à¨¿à©±à¨¤à©€ "
+-#~ "ਜਾਂ à¨…ਯੋਗ à¨¤à©‹à¨‚ à¨®à¨œà¨¬à©‚ਰ à¨¤à¨¬à¨¦à©€à¨² à¨•à¨° à¨°à¨¹à©‡ à¨¹à©‹, à¨¤à¨¾à¨‚ à¨®à©à©œ-ਲੇਬਲ à¨•à¨°à¨¨ à¨¦à©€ à¨²à©‹à©œ à¨¹à©ˆà¥¤"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "ਫਿਰ à¨šà¨¾à¨²à©‚ à¨¹à©‹à¨£ à¨¤à©‡ à¨®à©à©œ-ਲੇਬਲ à¨•à¨°à©‹à¥¤"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "ਬੂਲੀਅਨ à¨¸à©ˆà¨Ÿà¨¿à©°à¨— à¨¨à©‚à©° à¨¸à¨¿à¨¸à¨Ÿà¨® à¨®à©‚ਲ à¨µà¨¿à©±à¨š à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à©‹"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "ਸੋਧੇ à¨…ਤੇ à¨¸à¨­ à¨¬à©‚ਲੀਅਨਾਂ à¨µà¨¿à©±à¨š à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à©‹"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "ਫਿਲਟਰ"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "ਫਾਇਲ à¨ªà©à¨°à¨¸à©°à¨— à¨¶à¨¾à¨®à¨¿à¨² à¨•à¨°à©‹"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "ਫਾਇਲ à¨ªà©à¨°à¨¸à©°à¨— à¨¸à©‹à¨§à©‹"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "ਫਾਇਲ à¨ªà©à¨°à¨¸à©°à¨— à¨¹à¨Ÿà¨¾à¨“"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "ਸਭ à¨…ਤੇ à¨¸à©‹à¨§à©‡ à¨«à¨¾à¨‡à¨² à¨ªà©à¨°à¨¸à©°à¨— à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à©‹"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨®à©ˆà¨ªà¨¿à©°à¨— à¨œà©‹à©œà©‹"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨®à©‡à¨² à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à©‹"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨®à©‡à¨² à¨¹à¨Ÿà¨¾à¨“"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "ਅਨà©à¨µà¨¾à¨¦ à¨¶à¨¾à¨®à¨¿à¨² à¨•à¨°à©‹"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "ਅਨà©à¨µà¨¾à¨¦ à¨¸à©‹à¨§"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "ਅਨà©à¨µà¨¾à¨¦ à¨¹à¨Ÿà¨¾à¨“"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à©‹"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "ਨੈੱਟਵਰਕ à¨ªà©‹à¨°à¨Ÿ à¨¶à¨¾à¨®à¨¿à¨² à¨•à¨°à©‹"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "ਨੈੱਟਵਰਕ à¨ªà©‹à¨°à¨Ÿ à¨¸à©‹à¨§ à¨•à¨°à©‹"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "ਨੈੱਟਵਰਕ à¨ªà©‹à¨°à¨Ÿ à¨¹à¨Ÿà¨¾à¨“"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "ਸੋਧੇ à¨…ਤੇ à¨¸à¨­ à¨ªà©‹à¨°à¨Ÿà¨¾à¨‚ à¨µà¨¿à©±à¨š à¨¤à¨¬à¨¦à©€à¨² à¨•à¨°à©‹"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "ਨਵਾਂ à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨®à©ˆà¨¡à¨¿à¨Šà¨² à¨¬à¨£à¨¾à¨“"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "ਪਾਲਿਸੀ à¨®à©ˆà¨¡à¨¿à¨Šà¨² à¨²à©‹à¨¡ à¨•à¨°à©‹"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "ਲੋਡ à¨¹à©‹à¨£à¨¯à©‹à¨— à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨®à©ˆà¨¡à¨¿à¨Šà¨² à¨¹à¨Ÿà¨¾à¨“"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr "ਵਾਧੂ à¨†à¨¡à¨¿à¨Ÿ à¨¨à¨¿à¨¯à¨® à¨¯à©‹à¨—/ਅਯੋਗ à¨•à¨°à©‹, à¨œà©‹ à¨†à¨® à¨¤à©Œà¨° à¨¤à©‡ à¨²à¨¾à¨— à¨«à¨¾à¨‡à¨²à¨¾à¨‚ à¨µà¨¿à©±à¨š à¨¨à¨¹à©€à¨‚ à¨¦à¨¿à©±à¨¤à©‡ à¨—ਠਹਨ।"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "ਸੰਵੇਦਨਸ਼ੀਲਤਾ à¨²à©ˆà¨µà¨²"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux à¨‰à¨ªà¨­à©‹à¨—à©€ '%s' à¨¦à©€ à¨²à©‹à©œ à¨¹à©ˆ"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "ਮà©à©±à¨² à¨²à©‹à©œà©€à¨‚ਦਾ à¨¹à©ˆ"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr "ਕਾਰਜ/ਉਪਭੋਗੀ à¨¨à©‚à©° à¨•à¨¿à¨¸à©‡ à¨µà©€ tcp à¨ªà©‹à¨°à¨Ÿà¨¾à¨‚ à¨¨à¨¾à¨² à¨œà©à©œà¨¨ à¨¦à¨¿à©°à¨¦à¨¾ à¨¹à©ˆ > 1024"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr "ਪਾਬੰਦ à¨•à¨¾à¨°à¨œ/ਉਪਭੋਗੀ à¨°à©‹à¨² à¨¨à©‚à©° à¨•à¨¿à¨¸à©‡ à¨µà©€ tcp à¨ªà©‹à¨°à¨Ÿ à¨¨à¨¾à¨² à¨œà©à©œà¨¨ à¨¦à©€ à¨®à¨¨à¨œà©‚ਰੀ à¨¦à¨¿à¨“"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "ਕਾਮਿਆਂ à¨¨à¨¾à¨² à¨µà©±à¨– tcp à¨ªà©‹à¨°à¨Ÿà¨¾à¨‚ à¨œà¨¾à¨‚ à¨ªà©‹à¨°à¨šà¨¾à¨‚ à¨¦à©€ à¨°à©‡à¨‚ਜ à¨¦à©€ à¨¸à©‚ਚੀ à¨¦à¨¿à¨“ à¨œà¨¿à¨¨à¨¾à¨‚ à¨¨à¨¾à¨² à¨‡à¨¹ à¨•à¨¾à¨°à¨œ/ਉਪਭੋਗੀ à¨°à©‹à¨² "
+-#~ "ਜà©à©œà¨¿à¨† à¨¹à©ˆà¥¤ à¨‰à¨¦à¨¾à¨¹à¨°à¨¨: 612, 650-660"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "SELinux à¨ªà¨¾à¨²à¨¿à¨¸à©€ à¨¨à¨¿à¨°à¨®à¨¾à¨£ à¨¡à¨°à¨¾à¨Šà¨¡"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "ਨਾ-ਰਾਖਵੇਂ à¨ªà©‹à¨°à¨Ÿ  (> 1024)"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr "ਇਹ à¨šà©‹à¨£à¨¬à¨Ÿà¨¨ à¨µà¨°à¨¤à©‹ à¨œà©‡ à¨¤à©à¨¹à¨¾à¨¡à¨¾ à¨•à¨¾à¨°à¨œ bindresvport à¨¨à©‚à©° 0 à¨¨à¨¾à¨² à¨•à¨¾à¨² à¨•à¨°à¨¦à¨¾ à¨¹à©ˆà¥¤"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "ਮਜਬੂਰ\n"
+-#~ "ਚੇਤਾਵਨੀ\n"
+-#~ "ਅਯੋਗ\n"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/pl.po b/policycoreutils/po/pl.po
+index 322c7c3..3ffe59a 100644
+--- a/policycoreutils/po/pl.po
++++ b/policycoreutils/po/pl.po
+@@ -1,18 +1,24 @@
+-# translation of pl.po to Polish
+-# Piotr DrÄ…g <piotrdrag@gmail.com>, 2006.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
++# Translators:
++# Piotr DrÄ…g <piotrdrag@gmail.com>, 2006, 2012.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: pl\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-09-10 21:03+0200\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-11 18:29+0000\n"
+ "Last-Translator: Piotr DrÄ…g <piotrdrag@gmail.com>\n"
+-"Language-Team: Polish <pl@li.org>\n"
++"Language-Team: Polish (http://www.transifex.net/projects/p/fedora/language/"
++"pl/)\n"
+ "Language: pl\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
++"|| n%100>=20) ? 1 : 2)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -20,19 +26,19 @@ msgid ""
+ "  where: <script> is the name of the init script to run,\n"
+ "         <args ...> are the arguments to that script."
+ msgstr ""
+-"UÅ»YCIE: run_init <skrypt> <argumenty ...>\n"
+-"  gdzie: <skrypt> jest nazwÄ… skryptu init do wykonania,\n"
+-"         a <args ...> sÄ… argumentami dla tego skryptu."
++"UÅ»YCIE: run_init <skrypt> <parametry...>\n"
++"  gdzie: <skrypt> jest nazwÄ… skryptu inicjowania do wykonania,\n"
++"         a <parametry...> sÄ… parametrami dla tego skryptu."
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+ #, c-format
+ msgid "failed to initialize PAM\n"
+-msgstr "inicjowanie PAM nie powiodÅ‚o siÄ™\n"
++msgstr "zainicjowanie PAM siÄ™ nie powiodÅ‚o\n"
+ #: ../run_init/run_init.c:139
+ #, c-format
+ msgid "failed to get account information\n"
+-msgstr "uzyskanie informacji o koncie nie powiodÅ‚o siÄ™\n"
++msgstr "uzyskanie informacji o koncie siÄ™ nie powiodÅ‚o\n"
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+@@ -41,7 +47,7 @@ msgstr "HasÅ‚o:"
+ #: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+ #, c-format
+ msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr "Nie można znaleźć wpisu w pliku passwd shadow.\n"
++msgstr "Nie można odnaleźć wpisu w pliku shadow passwd.\n"
+ #: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+ #, c-format
+@@ -51,7 +57,7 @@ msgstr "getpass nie może otworzyć /dev/tty\n"
+ #: ../run_init/run_init.c:275
+ #, c-format
+ msgid "run_init: incorrect password for %s\n"
+-msgstr "run_init: nieprawidÅ‚owe hasÅ‚o dla %s\n"
++msgstr "run_init: niepoprawne hasÅ‚o dla %s\n"
+ #: ../run_init/run_init.c:309
+ #, c-format
+@@ -66,13 +72,12 @@ msgstr "Brak kontekstu w pliku %s\n"
+ #: ../run_init/run_init.c:361
+ #, c-format
+ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-"Przepraszamy, run_init może zostać uruchomione tylko na jÄ…drze SELinuksa.\n"
++msgstr "run_init może zostać uruchomione tylko na jÄ…drze SELinuksa.\n"
+ #: ../run_init/run_init.c:380
+ #, c-format
+ msgid "authentication failed.\n"
+-msgstr "uwierzytelnianie nie powiodÅ‚o siÄ™.\n"
++msgstr "uwierzytelnianie siÄ™ nie powiodÅ‚o.\n"
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+ #, c-format
+@@ -85,7 +90,7 @@ msgstr "******************** WAÅ»NE ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr "Aby uaktywnić ten pakiet polityki, wykonaj:"
++msgstr "Aby aktywować ten pakiet polityki należy wykonać:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+@@ -99,28 +104,27 @@ msgstr "Nie można utworzyć obsÅ‚ugi semanage"
+ msgid "SELinux policy is not managed or store cannot be accessed."
+ msgstr ""
+ "Polityka SELinuksa nie jest zarzÄ…dzana lub nie można uzyskać dostÄ™pu do "
+-"składu."
++"przechowalni."
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr "Nie można odczytać skÅ‚adu polityk."
++msgstr "Nie można odczytać przechowalni polityki."
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+ msgstr "Nie można nawiÄ…zać poÅ‚Ä…czenia semanage"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Nie można ustawić zasiÄ™gu MLS dla %s"
++msgstr "Nie można sprawdzić stanu wÅ‚Ä…czenia MLS"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr "Nie zaimplementowane"
++msgstr "Niezaimplementowane"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Transakcja semanage jest już wykonywana"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+@@ -132,64 +136,61 @@ msgstr "Nie można wykonać transakcji semanage"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Transakcja semanage nie jest wykonywana"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+ msgid "Could not list SELinux modules"
+ msgstr "Nie można wyÅ›wietlić listy modułów SELinuksa"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+ msgstr "Nazwa moduÅ‚u"
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Wersja"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "WyÅ‚Ä…czony"
+ #: ../semanage/seobject.py:322
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr "Nie można usunąć domeny zezwalania %s (usuniÄ™cie nie powiodÅ‚o siÄ™)"
++msgstr "Nie można wyÅ‚Ä…czyć moduÅ‚u %s (usuniÄ™cie siÄ™ nie powiodÅ‚o)"
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Nie można usunąć domeny zezwalania %s (usuniÄ™cie nie powiodÅ‚o siÄ™)"
++msgstr "Nie można wÅ‚Ä…czyć moduÅ‚u %s (usuniÄ™cie siÄ™ nie powiodÅ‚o)"
+ #: ../semanage/seobject.py:348
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr "Nie można usunąć domeny zezwalania %s (usuniÄ™cie nie powiodÅ‚o siÄ™)"
++msgstr "Nie można usunąć moduÅ‚u %s (usuniÄ™cie siÄ™ nie powiodÅ‚o)"
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
++msgstr "dontaudit wymaga \"on\" lub \"off\""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Typy zezwalania"
++msgstr "Wbudowane typy zezwalania"
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Typy zezwalania"
++msgstr "Dostosowane typy zezwalania"
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
+-"Nie można ustawić domeny zezwalania %s (instalacja moduÅ‚u nie powiodÅ‚a siÄ™)"
++"Nie można ustawić domeny zezwalania %s (instalacja moduÅ‚u siÄ™ nie powiodÅ‚a)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr "Nie można usunąć domeny zezwalania %s (usuniÄ™cie nie powiodÅ‚o siÄ™)"
++msgstr "Nie można usunąć domeny zezwalania %s (usuniÄ™cie siÄ™ nie powiodÅ‚o)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -231,7 +232,7 @@ msgstr "Nie można ustawić nazwy %s"
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+ #, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr "Nie można ustawić zasiÄ™gu MLS dla %s"
++msgstr "Nie można ustawić zakresu MLS dla %s"
+ #: ../semanage/seobject.py:514
+ #, python-format
+@@ -280,15 +281,20 @@ msgid "Could not list login mappings"
+ msgstr "Nie można wyÅ›wietlić listÄ™ mapowaÅ„ loginów"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "Login"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "Użytkownik SELinuksa"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "Zakres MLS/MCS"
+@@ -308,7 +314,7 @@ msgstr "Nie można odpytać użytkownika dla %s"
+ #: ../semanage/seobject.py:722
+ #, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Musisz dodać co najmniej jednÄ… rolÄ™ dla %s"
++msgstr "Należy dodać co najmniej jednÄ… rolÄ™ dla %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -342,7 +348,7 @@ msgstr "Nie można dodać użytkownika SELinuksa %s"
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+-msgstr "Wymagany jest przedrostek, role, poziom lub zasiÄ™g"
++msgstr "Wymagany jest przedrostek, role, poziom lub zakres"
+ #: ../semanage/seobject.py:789
+ msgid "Requires prefix or roles"
+@@ -400,6 +406,7 @@ msgid "MCS Range"
+ msgstr "Zakres MCS"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "Role SELinuksa"
+@@ -413,7 +420,7 @@ msgstr "Wymagany jest port"
+ #: ../semanage/seobject.py:975
+ msgid "Invalid Port"
+-msgstr ""
++msgstr "NieprawidÅ‚owy port"
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -530,7 +537,7 @@ msgstr "Typ portu SELinuksa"
+ msgid "Proto"
+ msgstr "Protokół"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "Numer portu"
+@@ -633,9 +640,8 @@ msgid "Could not delete addr %s"
+ msgstr "Nie można usunąć adresu %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Nie można usunąć mapowania loginu dla %s"
++msgstr "Nie można usunąć wszystkich mapowaÅ„ wÄ™złów"
+ #: ../semanage/seobject.py:1394
+ msgid "Could not list addrs"
+@@ -713,9 +719,8 @@ msgid "Could not delete interface %s"
+ msgstr "Nie można usunąć interfejsu %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Nie można usunąć interfejsu %s"
++msgstr "Nie można usunąć wszystkich mapowaÅ„ interfejsów"
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -730,19 +735,19 @@ msgid "Context"
+ msgstr "Kontekst"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Kontekst pliku dla %s nie zostaÅ‚ okreÅ›lony"
++msgstr "Klasa ekwiwalentu dla %s już istnieje"
+ #: ../semanage/seobject.py:1669
+ #, python-format
+ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
++msgstr "Plik spec %s jest w konflikcie z reguÅ‚Ä… ekwiwalentu \"%s %s\""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Użytkownik linuksowy %s nie istnieje"
++msgstr "Klasa ekwiwalentu dla %s nie istnieje"
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -765,13 +770,15 @@ msgstr "NieprawidÅ‚owe okreÅ›lenie pliku"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+-msgstr ""
++msgstr "OkreÅ›lenie pliku nie może zawierać spacji"
+ #: ../semanage/seobject.py:1714
+ #, python-format
+ msgid ""
+ "File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+ msgstr ""
++"Plik spec %s jest w konflikcie z reguÅ‚Ä… ekwiwalentu \"%s %s\"; należy "
++"spróbować dodać \"%s\" zamiast tego"
+ #: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+ #: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+@@ -861,13 +868,16 @@ msgid ""
+ "\n"
+ "SELinux Distribution fcontext Equivalence \n"
+ msgstr ""
++"\n"
++"Ekwiwalent fcontext dystrybucji SELinuksa \n"
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "fcontext SELinuksa"
++msgstr ""
++"\n"
++"Lokalny ekwiwalent fcontext SELinuksa \n"
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -888,7 +898,7 @@ msgstr "Nie można odpytać kontekstu pliku %s"
+ #: ../semanage/seobject.py:1999
+ #, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Musisz podać jednÄ… z poniższych wartoÅ›ci: %s"
++msgstr "Należy podać jednÄ… z poniższych wartoÅ›ci: %s"
+ #: ../semanage/seobject.py:2004
+ #, python-format
+@@ -937,22 +947,22 @@ msgid "SELinux boolean"
+ msgstr "Zmienna logiczna SELinuksa"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+ msgstr "Stan"
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+-msgstr ""
++msgstr "DomyÅ›lnie"
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "Opis"
+ #: ../newrole/newrole.c:201
+ #, c-format
+ msgid "failed to set PAM_TTY\n"
+-msgstr "ustawienie PAM_TTY nie powiodÅ‚o siÄ™\n"
++msgstr "ustawienie PAM_TTY siÄ™ nie powiodÅ‚o\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+@@ -967,17 +977,17 @@ msgstr "newrole: %s: bÅ‚Ä…d w wierszu %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+ msgid "cannot find valid entry in the passwd file.\n"
+-msgstr "nie można znaleźć prawidÅ‚owego wpisu w pliku passwd.\n"
++msgstr "nie można odnaleźć prawidÅ‚owego wpisu w pliku passwd.\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+ msgid "Out of memory!\n"
+-msgstr "Brak pamiÄ™ci!\n"
++msgstr "Brak pamiÄ™ci.\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr "BÅ‚Ä…d! PowÅ‚oka jest nieprawidÅ‚owa.\n"
++msgstr "BÅ‚Ä…d. PowÅ‚oka jest nieprawidÅ‚owa.\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+@@ -997,7 +1007,7 @@ msgstr "BÅ‚Ä…d podczas przywracania KEEPCAPS, przerywanie.\n"
+ #: ../newrole/newrole.c:635
+ #, c-format
+ msgid "Error connecting to audit system.\n"
+-msgstr "BÅ‚Ä…d podczas Å‚Ä…czenia siÄ™ z systemem audytu.\n"
++msgstr "BÅ‚Ä…d podczas Å‚Ä…czenia z systemem audytu.\n"
+ #: ../newrole/newrole.c:641
+ #, c-format
+@@ -1017,26 +1027,26 @@ msgstr "Nie można ustalić trybu wymuszania.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr "BÅ‚Ä…d! Nie można otworzyć %s.\n"
++msgstr "BÅ‚Ä…d. Nie można otworzyć %s.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s! Nie można uzyskać bieżącego kontekstu dla %s, ponowne nadanie etykiety "
+-"TTY nie odbÄ™dzie siÄ™.\n"
++"%s. Nie można uzyskać bieżącego kontekstu dla %s, ponowne nadanie etykiety "
++"TTY siÄ™ nie odbÄ™dzie.\n"
+ #: ../newrole/newrole.c:715
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s! Nie można uzyskać nowego kontekstu dla %s, ponowne nadanie etykiety TTY "
+-"nie odbÄ™dzie siÄ™.\n"
++"%s. Nie można uzyskać nowego kontekstu dla %s, ponowne nadanie etykiety TTY "
++"siÄ™ nie odbÄ™dzie.\n"
+ #: ../newrole/newrole.c:725
+ #, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr "%s! Nie można ustawić nowego kontekstu dla %s\n"
++msgstr "%s. Nie można ustawić nowego kontekstu dla %s\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+@@ -1046,7 +1056,7 @@ msgstr "%s zmieniÅ‚ etykiety.\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr "Ostrzeżenie! Nie można przywrócić kontekstu dla %s\n"
++msgstr "Ostrzeżenie. Nie można przywrócić kontekstu dla %s\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+@@ -1061,7 +1071,7 @@ msgstr "BÅ‚Ä…d: podano wiele typów\n"
+ #: ../newrole/newrole.c:850
+ #, c-format
+ msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr "Przepraszamy, -l może zostać użyte z obsÅ‚ugÄ… MLS SELinuksa.\n"
++msgstr "Opcja -l może zostać użyta z obsÅ‚ugÄ… MLS SELinuksa.\n"
+ #: ../newrole/newrole.c:855
+ #, c-format
+@@ -1071,7 +1081,7 @@ msgstr "BÅ‚Ä…d: podano wiele poziomów\n"
+ #: ../newrole/newrole.c:865
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr "BÅ‚Ä…d: nie możesz zmieniać poziomów na niezabezpieczonym terminalu \n"
++msgstr "BÅ‚Ä…d: nie można zmieniać poziomów na niezabezpieczonym terminalu \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+@@ -1081,33 +1091,32 @@ msgstr "Nie można uzyskać domyÅ›lnego typu.\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+ msgid "failed to get new context.\n"
+-msgstr "uzyskanie nowego kontekstu nie powiodÅ‚o siÄ™.\n"
++msgstr "uzyskanie nowego kontekstu siÄ™ nie powiodÅ‚o.\n"
+ #: ../newrole/newrole.c:908
+ #, c-format
+ msgid "failed to set new role %s\n"
+-msgstr "ustawienie nowej roli %s nie powiodÅ‚o siÄ™\n"
++msgstr "ustawienie nowej roli %s siÄ™ nie powiodÅ‚o\n"
+ #: ../newrole/newrole.c:915
+ #, c-format
+ msgid "failed to set new type %s\n"
+-msgstr "ustawienie nowego typu %s nie powiodÅ‚o siÄ™\n"
++msgstr "ustawienie nowego typu %s siÄ™ nie powiodÅ‚o\n"
+ #: ../newrole/newrole.c:925
+ #, c-format
+ msgid "failed to build new range with level %s\n"
+-msgstr "zbudowanie nowego zasiÄ™gu z poziomem %s nie powiodÅ‚o siÄ™\n"
++msgstr "zbudowanie nowego zakresu z poziomem %s siÄ™ nie powiodÅ‚o\n"
+ #: ../newrole/newrole.c:930
+ #, c-format
+ msgid "failed to set new range %s\n"
+-msgstr "ustawienie nowego zasiÄ™gu %s nie powiodÅ‚o siÄ™\n"
++msgstr "ustawienie nowego zakresu %s siÄ™ nie powiodÅ‚o\n"
+ #: ../newrole/newrole.c:938
+ #, c-format
+ msgid "failed to convert new context to string\n"
+-msgstr ""
+-"przekonwertowanie nowego kontekstu na Å‚aÅ„cuch tekstowy nie powiodÅ‚o siÄ™\n"
++msgstr "przekonwertowanie nowego kontekstu na ciÄ…g tekstowy siÄ™ nie powiodÅ‚o\n"
+ #: ../newrole/newrole.c:943
+ #, c-format
+@@ -1132,17 +1141,17 @@ msgstr "Nie można ustawić obsÅ‚ugi SIGHUP\n"
+ #: ../newrole/newrole.c:1053
+ #, c-format
+ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr "Przepraszamy, newrole może zostać użyte tylko na jÄ…drze SELinux.\n"
++msgstr "newrole może zostać użyte tylko na jÄ…drze SELinuksa.\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+ msgid "failed to get old_context.\n"
+-msgstr "uzyskanie old_context nie powiodÅ‚o siÄ™.\n"
++msgstr "uzyskanie old_context siÄ™ nie powiodÅ‚o.\n"
+ #: ../newrole/newrole.c:1077
+ #, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Ostrzeżenie! Nie można pobrać informacji o TTY.\n"
++msgstr "Ostrzeżenie. Nie można pobrać informacji o TTY.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+@@ -1157,7 +1166,7 @@ msgstr "newrole: niepoprawne hasÅ‚o dla %s\n"
+ #: ../newrole/newrole.c:1160
+ #, c-format
+ msgid "newrole: failure forking: %s"
+-msgstr "newrole: rozgaÅ‚Ä™zienie nie powiodÅ‚o siÄ™: %s"
++msgstr "newrole: rozgaÅ‚Ä™zienie siÄ™ nie powiodÅ‚o: %s"
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+@@ -1167,7 +1176,7 @@ msgstr "Nie można przywrócić etykiety TTY...\n"
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+ msgid "Failed to close tty properly\n"
+-msgstr "Poprawne zamkniÄ™cie TTY nie powiodÅ‚o siÄ™\n"
++msgstr "Poprawne zamkniÄ™cie TTY siÄ™ nie powiodÅ‚o\n"
+ #: ../newrole/newrole.c:1224
+ #, c-format
+@@ -1186,7 +1195,7 @@ msgstr "Nie można przywrócić Å›rodowiska, przerywanie\n"
+ #: ../newrole/newrole.c:1298
+ msgid "failed to exec shell\n"
+-msgstr "wykonanie powÅ‚oki nie powiodÅ‚o siÄ™\n"
++msgstr "wykonanie powÅ‚oki siÄ™ nie powiodÅ‚o\n"
+ #: ../load_policy/load_policy.c:22
+ #, c-format
+@@ -1277,7 +1286,7 @@ msgstr "Użycie %s -L -l użytkownik"
+ #: ../scripts/chcat:333
+ msgid "Use -- to end option list.  For example"
+-msgstr "Użyj --, aby zakoÅ„czyć listÄ™ opcji. Na przykÅ‚ad"
++msgstr "Należy użyć --, aby zakoÅ„czyć listÄ™ opcji. Na przykÅ‚ad"
+ #: ../scripts/chcat:334
+ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+@@ -1287,1745 +1296,2231 @@ msgstr "chcat -- -CompanyConfidential /dokumenty/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential jużytkownik"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "BÅ‚Ä…d opcji %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Nie można otworzyć %s: tÅ‚umaczenia nie sÄ… obsÅ‚ugiwane na komputerach bez "
+-#~ "MLS: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr "Zmienna logiczna"
+-#~ msgid "Level"
+-#~ msgstr "Poziom"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr "wszystko"
+-#~ msgid "Translation"
+-#~ msgstr "TÅ‚umaczenie"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr "Dostosowane"
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "TÅ‚umaczenia nie mogÄ… zawierać spacji \"%s\" "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr "Etykiety plików"
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "NieprawidÅ‚owy poziom \"%s\" "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++"Określenie\n"
++"pliku"
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s zostaÅ‚o już okreÅ›lone w tÅ‚umaczeniach"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++"Typ pliku\n"
++"SELinuksa"
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s nie zostaÅ‚ okreÅ›lony w tÅ‚umaczeniach"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++"Typ\n"
++"pliku"
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Mapowanie loginu dla %s zostaÅ‚o już okreÅ›lone"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr "Mapowanie użytkownika"
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "dodaj mapowanie użytkownika SELinuksa"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++"Login\n"
++" "
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "Użytkownik SELinuksa %s zostaÅ‚ już okreÅ›lony"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++"Użytkownik\n"
++"SELinuksa"
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Wymagana jest maska sieciowa wÄ™zÅ‚a"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++"Zakres MLS/\n"
++"MCS"
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Adres %s zostaÅ‚ już okreÅ›lony"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr "Login \"%s\" jest wymagany"
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Interfejs %s zostaÅ‚ już okreÅ›lony"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr "ModuÅ‚ polityki"
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "BÅ‚Ä…d podczas inicjowania możliwoÅ›ci, przerywanie.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr "Nazwa moduÅ‚u"
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "BÅ‚Ä…d podczas ustawiania możliwoÅ›ci, przerywanie\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr "WyÅ‚Ä…cz audytowanie"
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "BÅ‚Ä…d podczas ustawiania KEEPCAPS, przerywanie\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr "WÅ‚Ä…cz audytowanie"
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "BÅ‚Ä…d podczas opuszczania możliwoÅ›ci, przerywanie\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr "Wczytaj moduÅ‚ polityki"
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "BÅ‚Ä…d podczas opuszczania możliwoÅ›ci SETUID, przerywanie\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr "Polgen"
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "BÅ‚Ä…d podczas zwalniania caps\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr "Red Hat 2007"
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "tÅ‚umaczenia nie sÄ… obsÅ‚ugiwane na komputerach bez MLS"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr "GPL"
+-#~ msgid "Boolean"
+-#~ msgstr "Zmienna logiczna"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr "Piotr DrÄ…g <piotrdrag@gmail.com>, 2006"
+-#~ msgid "all"
+-#~ msgstr "wszystko"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr "NarzÄ™dzie tworzenia polityki SELinuksa"
+-#~ msgid "Customized"
+-#~ msgstr "Dostosowane"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr "<b>Wybór typu roli aplikacji lub użytkownika do ograniczenia:</b>"
+-#~ msgid "File Labeling"
+-#~ msgstr "Etykiety plików"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr "<b>Aplikacje</b>"
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "OkreÅ›lenie\n"
+-#~ "pliku"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++"Standardowe demony inicjowania to demony wÅ‚Ä…czane podczas uruchamiania przez "
++"skrypty inicjacyjne. Zwykle wymagajÄ… skryptu w /etc/rc.d/init.d"
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Typ pliku\n"
+-#~ "SELinuksa"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr "Standardowy demon inicjowania"
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Typ\n"
+-#~ "pliku"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr "Systemowy demon D-Bus"
+-#~ msgid "User Mapping"
+-#~ msgstr "Mapowanie użytkownika"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr "Demony usÅ‚ug internetowych to demony uruchamiane przez xinetd"
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "Login\n"
+-#~ " "
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "Użytkownik\n"
+-#~ "SELinuksa"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "Zakres MLS/\n"
+-#~ "MCS"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr "Demon usÅ‚ug internetowych (inetd)"
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Login \"%s\" jest wymagany"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "ModuÅ‚ polityki"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "WyÅ‚Ä…cz audytowanie"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "WÅ‚Ä…cz audytowanie"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "Wczytaj moduÅ‚ polityki"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "Piotr DrÄ…g <piotrdrag@gmail.com>, 2006"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "NarzÄ™dzie tworzenia polityki SELinuksa"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "To narzÄ™dzie może być używane do tworzenia struktury polityki, aby "
+-#~ "ograniczyć aplikacje lub użytkowników używajÄ…c SELinuksa.   \n"
+-#~ "\n"
+-#~ "NarzÄ™dzie tworzy:\n"
+-#~ "Pliki typu wymuszania (te)\n"
+-#~ "Pliki interfejsu (if)\n"
+-#~ "Pliki kontekstu pliku (fc)\n"
+-#~ "Skrypty powÅ‚oki (sh) - używane kompilowania i instalowania polityk. "
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "Wybierz typ roli aplikacji/użytkownika do ograniczenia"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Aplikacje</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "Standardowe demony init to demony startowane podczas uruchamiania przez "
+-#~ "skrypty init. Zwykle wymagajÄ… skryptu w /etc/rc.d/init.d"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "Standardowy demon init"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "Demony usÅ‚ug internetowych to demony uruchamiane przez xinetd"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Demon usÅ‚ug internetowych (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "Skrypty CGI aplikacji/skryptów WWW (CGI) uruchamiane przez serwer WWW "
+-#~ "(Apache)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Aplikacje/skrypty WWW (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "Aplikacje użytkownika to wszystkie aplikacje, które chciaÅ‚byÅ› ograniczyć "
+-#~ "uruchamiane przez użytkowników"
+-
+-#~ msgid "User Application"
+-#~ msgstr "Aplikacja użytkownika"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Logowani użytkownicy</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "Zmodyfikuj istniejÄ…cy wpis logowania użytkownika."
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "IstniejÄ…ce role użytkowników"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "Ten użytkownik bÄ™dzie logowaÅ‚ siÄ™ do komputera tylko przez terminal lub "
+-#~ "zdalne logowanie. DomyÅ›lnie ten użytkownik nie bÄ™dzie posiadaÅ‚ setuid, "
+-#~ "sieci, su ani sudo."
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "Minimalna rola użytkownika terminala"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "Ten użytkownik może logować siÄ™ do komputera przez X Window lub terminal. "
+-#~ "DomyÅ›lnie ten użytkownik nie bÄ™dzie posiadaÅ‚ setuid, sieci, sudo ani su"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "Minimalna rola użytkownika X Window"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "Użytkownik z peÅ‚nÄ… sieciÄ…, brakiem aplikacji setuid bez przemiany, sudo i "
+-#~ "su"
+-
+-#~ msgid "User Role"
+-#~ msgstr "Rola użytkownika"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "Użytkownik z peÅ‚nÄ… sieciÄ…, brakiem aplikacji setuid bez przemiany i su, "
+-#~ "może używać sudo dla ról administratorów root"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "Rola użytkownika administratora"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Użytkownicy root</b>"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "Wybierz rolÄ™ użytkownika administratora root, jeÅ›li ten użytkownik bÄ™dzie "
+-#~ "używany do administrowania komputerem podczas uruchamiania jako root. Ten "
+-#~ "użytkownik nie bÄ™dzie mógÅ‚ zalogować siÄ™ bezpoÅ›rednio do systemu."
+-
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Rola użytkownika administratora root"
+-
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "Podaj nazwÄ™ roli aplikacji lub użytkownika do ograniczenia"
+-
+-#~ msgid "Name"
+-#~ msgstr "Nazwa"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "Podaj peÅ‚nÄ… Å›cieżkÄ™ do ograniczanego pliku wykonywalnego."
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr ""
+-#~ "Podaj unikalnÄ… nazwÄ™ dla roli ograniczanego aplikacji lub użytkownika."
+-
+-#~ msgid "Executable"
+-#~ msgstr "Plik wykonywalny"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Skrypt init"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "Podaj peÅ‚nÄ… Å›cieżkÄ™ do skryptu init używanego do uruchamiania "
+-#~ "ograniczanej aplikacji."
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "Wybierz role użytkowników, które chcesz dostosować"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr "Wybierz role użytkownika, które przemienić do tych domen aplikacji."
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "Wybierz dodatkowe domeny, do których przemienić tÄ… rolÄ™ użytkownika"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "Wybierz domeny aplikacji, do których chcesz przemienić tÄ™ rolÄ™ "
+-#~ "użytkownika."
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "Wybierz role użytkownika, które przemienić do tej domeny"
+-
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr ""
+-#~ "Wybierz dodatkowe domeny, którymi ta rola użytkownika bÄ™dzie "
+-#~ "administrowaÅ‚a"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++"Skrypty CGI aplikacji/skryptów WWW (CGI) uruchamiane przez serwer WWW "
++"(Apache)"
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "Wybierz domeny, które chcesz, aby ten użytkownik administrowaÅ‚."
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "Wybierz dodatkowe role dla tego użytkownika"
+-
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr ""
+-#~ "Podaj porty sieciowe, które ta rola aplikacji/użytkownika ma nasÅ‚uchiwać."
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr "Aplikacje/skrypty WWW (CGI)"
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>Porty TCP</b>"
+-
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "Pozwól ograniczanej roli aplikacji/użytkownika dowiÄ…zywać do każdego "
+-#~ "portu UDP"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++"Aplikacje użytkownika to wszystkie ograniczane aplikacje, które sÄ… "
++"uruchamiane przez użytkowników"
+-#~ msgid "All"
+-#~ msgstr "Wszystko"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr "Aplikacja użytkownika"
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "Pozwól roli aplikacji/użytkownika wywoÅ‚ywać bindresvport z 0. "
+-#~ "DowiÄ…zywanie do portów 600-1024"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr "Piaskownica"
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr "<b>Logowani użytkownicy</b>"
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Podaj listÄ™ portów lub zakresów portów UDP oddzielanÄ… przecinkami, do "
+-#~ "których ta rola aplikacji/użytkownika dowiÄ…zuje, na przykÅ‚ad: 612, 650-660"
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "Niezarezerwowane porty (powyżej 1024)"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "Wybierz porty"
+-
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "Pozwól roli aplikacji/użytkownika dowiÄ…zywać do każdego portu UDP powyżej "
+-#~ "1024"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>Porty UDP</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "Podaj porty sieciowe, z którymi Å‚Ä…czy siÄ™ ta rola aplikacji/użytkownika"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Podaj listÄ™ portów lub zakresów portów TCP oddzielanÄ… przecinkami, z "
+-#~ "którymi Å‚Ä…czy siÄ™ ta rola aplikacji/użytkownika, na przykÅ‚ad: 612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Podaj listÄ™ portów lub zakresów portów UDP oddzielanÄ… przecinkami, z "
+-#~ "którymi Å‚Ä…czy siÄ™ ta rola aplikacji/użytkownika, na przykÅ‚ad: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "Wspólne wspólne cechy aplikacji"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "Zapisuje komunikaty syslog\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "Tworzy/manipuluje plikami tymczasowymi w /tmp"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "Używa PAM do uwierzytelniania"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "Używa wywoÅ‚aÅ„ nsswitch lub getpw*"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "Używa D-Bus"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "WysyÅ‚a komunikaty audytu"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "Współpracuje z terminalem"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "WysyÅ‚a e-maile"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "Wybierz pliki/foldery, którymi zarzÄ…dza ta aplikacja"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "Dodaj pliki/foldery, do których ta aplikacja bÄ™dzie musiaÅ‚a \"zapisywać"
+-#~ "\". Pliki PID, pliki dziennika, pliki /var/lib..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "Wybierz zmienne logiczne, których używa ta aplikacja"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "Dodaj/usuÅ„ zmienne logiczne używane dla tej ograniczanej aplikacji/"
+-#~ "użytkownika"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "Wybierz folder, w którym utworzyć politykÄ™"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "Folder polityki"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "Utworzone pliki polityki"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "To narzÄ™dzie utworzy: \n"
+-#~ "typy wymuszania(te), kontekstu plików(fc), interfejsy(if) i skryptu "
+-#~ "powÅ‚oki(sh).\n"
+-#~ "Wykonaj skrypt powÅ‚oki jako root, aby skompilować/zainstalować oraz nadać "
+-#~ "etykiety plikom/folderom.  \n"
+-#~ "Użyj semanage lub useradd, aby zmapować logowanych użytkowników Linuksa "
+-#~ "do ról użytkowników.\n"
+-#~ "Umieść komputer w trybie zezwalania (setenforce 0). \n"
+-#~ "Zaloguj siÄ™ jako użytkownik i przetestuj tÄ™ rolÄ™ użytkownika.\n"
+-#~ "Użyj audit2allow -R, aby utworzyć dodatkowe reguÅ‚y dla pliku te.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "To narzÄ™dzie utworzy: \n"
+-#~ "typy wymuszania(te), kontekstu plików(fc), interfejsy(if) i skryptu "
+-#~ "powÅ‚oki(sh).\n"
+-#~ "\n"
+-#~ "Wykonaj skrypt powÅ‚oki jako root, aby skompilować/zainstalować oraz nadać "
+-#~ "etykiety plikom/folderom.  \n"
+-#~ "Umieść komputer w trybie zezwalania (setenforce 0). \n"
+-#~ "Uruchom/uruchom ponownie aplikacjÄ™, aby utworzyć komunikaty AVC.\n"
+-#~ "Użyj audit2allow -R, aby utworzyć dodatkowe reguÅ‚y dla pliku te.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "Dodaj okno dialogowe zmiennej logicznej"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "Nazwa zmiennej logicznej"
+-
+-#~ msgid "Role"
+-#~ msgstr "Rola"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "IstniejÄ…cy_użytkownik"
+-
+-#~ msgid "Application"
+-#~ msgstr "Aplikacja"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s musi być folderem"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "Musisz wybrać użytkownika"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "Wybierz ograniczany plik wykonywalny."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "Wybierz ograniczany plik skryptu init."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "Wybierz pliki, które ograniczana aplikacja tworzy lub zapisuje"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "Wybierz foldery, które ograniczana aplikacja posiada lub do nich zapisuje"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "Wybierz folder, w którym utworzyć pliki polityki"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Typ %s_t zostaÅ‚ już okreÅ›lony w bieżącej polityce.\n"
+-#~ "Czy chcesz kontynuować?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "Sprawdź nazwÄ™"
+-
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "ModuÅ‚ %s.pp zostaÅ‚ już wczytany w bieżącej polityce.\n"
+-#~ "Czy chcesz kontynuować?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "Musisz podać nazwÄ™"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Musisz podać wykonywalny"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "Skonfiguruj SELinuksa"
+-
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "Porty muszÄ… być liczbÄ… lub zakresem liczb od 1 do %d "
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "Musisz podać nazwÄ™ dla ograniczanego procesu/użytkownika"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "Typy USER nie majÄ… dozwolonych plików wykonywalnych"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr "Zmodyfikuj istniejÄ…cy wpis logowania użytkownika."
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "Tylko aplikacje DAEMON mogÄ… używać skryptów init"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr "IstniejÄ…ce role użytkowników"
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog musi być zmiennÄ… logicznÄ… "
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++"Ten użytkownik bÄ™dzie logowaÅ‚ siÄ™ do komputera tylko przez terminal lub "
++"zdalne logowanie. DomyÅ›lnie ten użytkownik nie bÄ™dzie posiadaÅ‚ setuid, "
++"sieci, su ani sudo."
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "Typy USER automatycznie uzyskujÄ… typ tmp"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr "Minimalna rola użytkownika terminala"
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr ""
+-#~ "Musisz podać Å›cieżkÄ™ do pliku wykonywalnego dla ograniczanego procesu"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++"Ten użytkownik może logować siÄ™ do komputera przez X Window lub terminal. "
++"DomyÅ›lnie ten użytkownik nie bÄ™dzie posiadaÅ‚ setuid, sieci, sudo ani su"
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Plik typu wymuszania"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr "Minimalna rola użytkownika X Window"
+-#~ msgid "Interface file"
+-#~ msgstr "Plik interfejsu"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++"Użytkownik z peÅ‚nÄ… sieciÄ…, brakiem aplikacji setuid bez przemiany, sudo i su"
+-#~ msgid "File Contexts file"
+-#~ msgstr "Plik kontekstów pliku"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr "Rola użytkownika"
+-#~ msgid "Setup Script"
+-#~ msgstr "Ustaw skrypt"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++"Użytkownik z peÅ‚nÄ… sieciÄ…, brakiem aplikacji setuid bez przemiany i su, może "
++"używać sudo dla ról administratorów root"
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Typ portu\n"
+-#~ "SELinuksa"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr "Rola użytkownika administratora"
+-#~ msgid "Protocol"
+-#~ msgstr "Protokół"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr "<b>Użytkownicy root</b>"
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "Poziom\n"
+-#~ "MLS/MCS"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++"Należy wybrać rolÄ™ użytkownika administratora root, jeÅ›li ten użytkownik "
++"bÄ™dzie używany do administrowania komputerem podczas uruchamiania jako root. "
++"Ten użytkownik nie bÄ™dzie mógÅ‚ zalogować siÄ™ bezpoÅ›rednio do systemu."
+-#~ msgid "Port"
+-#~ msgstr "Port"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr "Rola użytkownika administratora root"
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "Numer portu \"%s\" jest nieprawidÅ‚owy. 0 < NUMER_PORTU < 65536 "
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr "label104"
+-#~ msgid "List View"
+-#~ msgstr "Widok listy"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr "<b>Nazwa roli aplikacji lub użytkownika do ograniczenia:</b>"
+-#~ msgid "Group View"
+-#~ msgstr "Widok grupy"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr "Nazwa"
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "Ochrona usÅ‚ugi SELinuksa"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr "PeÅ‚na Å›cieżka do ograniczanego pliku wykonywalnego."
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona acct"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr "..."
+-#~ msgid "Admin"
+-#~ msgstr "Administracja"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr "Unikalna nazwa dla roli ograniczanego aplikacji lub użytkownika."
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "Pozwól wszystkim demonom zapisywać pliki core do /"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr "Plik wykonywalny"
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "Pozwól wszystkim demonom używać nieprzydzielonych TTY"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr "Skrypt inicjowania"
+-#~ msgid "User Privs"
+-#~ msgstr "Przywileje użytkowników"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++"PeÅ‚na Å›cieżka do skryptu inicjowania używanego do uruchamiania ograniczanej "
++"aplikacji."
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Pozwól kontom użytkowników SELinuksa gadmin na wykonywanie plików w "
+-#~ "folderze domowym lub /tmp"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr "label105"
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Pozwól kontom użytkowników SELinuksa guest na wykonywanie plików w "
+-#~ "folderze domowym lub /tmp"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr "<b>Wybór istniejÄ…cej roli do zmodyfikowania:</b>"
+-#~ msgid "Memory Protection"
+-#~ msgstr "Ochrona pamiÄ™ci"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr "Wybór roli użytkownika, które przemienić do domeny %s."
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "Zezwól stos wykonywalny Javy"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr "label106"
+-#~ msgid "Mount"
+-#~ msgstr "Mount"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr "<b>Wybór ról, do których przemienić %s:</b>"
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "Pozwól mount na montowanie wszystkich plików"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr "Wybór domen aplikacji, do których przemienić %s."
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "Pozwól mount na montowanie wszystkich folderów"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr "label107"
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "Zezwól stos wykonywalny MPlayera"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr "<b>Wybór ról użytkownika, do których przemienić %s:</b>"
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr "Wybór ról użytkownika, które przemienić do tych domen aplikacji."
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "Pozwól SSH na uruchamianie ssh-keysign"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr "label108"
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Pozwól kontom użytkowników SELinuksa staff na wykonywanie plików w "
+-#~ "folderze domowym lub /tmp"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr "<b>Wybór domen, którymi %s bÄ™dzie administrowaÅ‚:</b>"
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Pozwól kontom użytkowników SELinuksa sysadm na wykonywanie plików w "
+-#~ "folderze domowym lub /tmp"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr "Wybór domen, które ten użytkownik ma administrować."
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "Pozwól nieograniczanym kontom użytkowników SELinuksa na wykonywanie "
+-#~ "plików folderze domowym lub /tmp"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr "label109"
+-#~ msgid "Network Configuration"
+-#~ msgstr "Konfiguracja sieci"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr "<b>Wybór dodatkowych ról dla %s:</b>"
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "Pozwól pakietom bez etykiet na przepÅ‚ywanie przez sieć"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr "label111"
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "Pozwól kontom użytkowników SELinuksa user na wykonywanie plików w "
+-#~ "folderze domowym lub /tmp"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr "<b>Porty sieciowe, do których %s dowiÄ…zuje:</b>"
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "Pozwól nieograniczanym dyntrans do unconfined_execmem"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr "<b>Porty TCP</b>"
+-#~ msgid "Databases"
+-#~ msgstr "Bazy danych"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr "Umożliwia %s dowiÄ…zywanie do dowolnego portu UDP"
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "Pozwól użytkownikowi na Å‚Ä…czenie z gniazdem MySQL"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr "Wszystko"
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "Pozwól użytkownikowi na Å‚Ä…czenie z gniazdem PostgreSQL"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++"Umożliwia %s wywoÅ‚ywanie bindresvport z wartoÅ›ciÄ… 0. DowiÄ…zywanie do portów "
++"600-1024"
+-#~ msgid "XServer"
+-#~ msgstr "Serwer X"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr "600-1024"
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "Pozwól klientom na zapisywanie do współdzielonej pamiÄ™ci X Window"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++"Lista portów lub zakresów portów UDP oddzielonych przecinkami, do których %s "
++"może dowiÄ…zywać. PrzykÅ‚ad: 612, 650-660"
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Pozwól kontom użytkowników SELinuksa xguest na wykonywanie plików w "
+-#~ "folderze domowym lub /tmp"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr "Niezastrzeżone porty (powyżej 1024)"
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr "Wybór portów"
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "Pozwól demonom na uruchamianie za pomocÄ… NIS"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr "Umożliwia %s dowiÄ…zywanie do dowolnego portu UDP > 1024"
+-#~ msgid "Web Applications"
+-#~ msgstr "Aplikacje WWW"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr "<b>Porty UDP</b>"
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "PrzemieÅ„ użytkownika SELinuksa staff na domenÄ™ przeglÄ…darki WWW"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr "label113"
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "PrzemieÅ„ użytkownika SELinuksa sysadm na domenÄ™ przeglÄ…darki WWW"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr "<b>Wybór portów sieciowych, do których %s może siÄ™ Å‚Ä…czyć:</b>"
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "PrzemieÅ„ użytkownika SELinuksa user na domenÄ™ przeglÄ…darki WWW"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr "Umożliwia %s Å‚Ä…czenie z dowolnym portem TCP"
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "PrzemieÅ„ użytkownika SELinuksa xguest na domenÄ™ przeglÄ…darki WWW"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++"Lista portów lub zakresów portów TCP oddzielonych przecinkami, z którymi %s "
++"może siÄ™ Å‚Ä…czyć. PrzykÅ‚ad: 612, 650-660"
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "Pozwól przeglÄ…darkom WWW staff na zapisywanie do folderów domowych"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr "Umożliwia %s Å‚Ä…czenie z dowolnym portem UDP"
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla amandy"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++"Lista portów lub zakresów portów UDP oddzielonych przecinkami, z którymi %s "
++"może siÄ™ Å‚Ä…czyć. PrzykÅ‚ad: 612, 650-660"
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla amavis"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr "label114"
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona apmd"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr "<b>Wybór wspólnych cech aplikacji dla %s:</b>"
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona arpwatch"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr "Zapisuje komunikaty syslog\t"
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona auditd"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr "Tworzy/manipuluje plikami tymczasowymi w /tmp"
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona automount"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr "Używa PAM do uwierzytelniania"
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla Avahi"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr "Używa wywoÅ‚aÅ„ nsswitch lub getpw*"
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona Bluetooth"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr "Używa D-Bus"
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona canna"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr "WysyÅ‚a komunikaty audytu"
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona cardmgr"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr "Używa terminala"
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla serwera klastra"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr "WysyÅ‚a e-maile"
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "Pozwól cdrecord na odczytywanie różnej zawartoÅ›ci. NFS, Samba, urzÄ…dzenia "
+-#~ "wymienne, pliki tymczasowe użytkownika i potencjalnie niebezpieczne pliki "
+-#~ "zawartoÅ›ci"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr "label115"
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona ciped"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr "<b>Dodanie plików/katalogów, którymi %s zarzÄ…dza</b>"
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona clamd"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++"Dodanie plików/katalogów, którymi %s \"zarzÄ…dza\". Pliki PID, pliki "
++"dziennika, pliki /var/lib..."
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla clamscan"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr "label116"
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla clvmd"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr "<b>Dodanie zmiennych logicznych z polityki %s:</b>"
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona comsat"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr "Dodanie/usuniÄ™cie zmiennych logicznych używanych przez domenÄ™ %s"
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona courier"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr "<b>Który katalog utworzyć dla polityki %s?</b>"
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona cpucontrol"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr "Katalog polityki"
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona cpuspeed"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr "Dodanie okna dialogowego zmiennej logicznej"
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr "Nazwa zmiennej logicznej"
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona crond"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr "Rola"
+-#~ msgid "Printing"
+-#~ msgstr "Drukowanie"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr "IstniejÄ…cy_użytkownik"
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla serwera zaplecza cupsd"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr "Aplikacja"
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona cupsd"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr "%s musi być katalogiem"
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla cupsd_lpd"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr "Należy wybrać użytkownika"
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr "Wybór ograniczanego pliku wykonywalnego."
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona CVS"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr "Wybór ograniczanego pliku skryptu inicjowania."
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona cyrus"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr "Wybór plików, które ograniczana aplikacja tworzy lub zapisuje"
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona dbskkd"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++"Wybór katalogów, które ograniczana aplikacja posiada lub do nich zapisuje"
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona dbusd"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr "Wybór katalogu, w którym utworzyć pliki polityki"
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla dccd"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++"Typ %s_t zostaÅ‚ już okreÅ›lony w bieżącej polityce.\n"
++"Kontynuować?"
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla dccifd"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr "Sprawdź nazwÄ™"
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla dccm"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++"ModuÅ‚ %s.pp zostaÅ‚ już wczytany w bieżącej polityce.\n"
++"Kontynuować?"
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona ddt"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr "Należy dodać nazwÄ™ skÅ‚adajÄ…cÄ… siÄ™ z liter i liczb, bez spacji."
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona devfsd"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr "Należy podać plik wykonywalny"
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona dhcpc"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr "Skonfiguruj SELinuksa"
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona dhcpd"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr "Demon usÅ‚ug internetowych"
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona dictd"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr "Porty muszÄ… być liczbÄ… lub zakresem liczb od 1 do %d "
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "Pozwól sysadm_t na bezpoÅ›rednie uruchamianie demonów"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr "Należy podać nazwÄ™ dla ograniczanego procesu/użytkownika"
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla Evolution"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++"Nazwa musi być alfanumeryczna bez spacji. ProszÄ™ rozważyć użycie opcji \"-n "
++"NAZWA_MODUÅU\""
+-#~ msgid "Games"
+-#~ msgstr "Gry"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr "Typy roli użytkownika nie mogÄ… być dowiÄ…zanymi plikami wykonywalnymi."
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla gier"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr "Tylko aplikacje demony mogÄ… używać skryptu inicjowania..."
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla przeglÄ…darek WWW"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr "use_resolve musi być wartoÅ›ciÄ… logicznÄ… "
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla Thunderbirda"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr "use_syslog musi być zmiennÄ… logicznÄ… "
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona distccd"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr "use_kerberos musi być wartoÅ›ciÄ… logicznÄ… "
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona dmesg"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr "manage_krb5_rcache musi być wartoÅ›ciÄ… logicznÄ… "
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona dnsmasq"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr "Typy USER automatycznie uzyskujÄ… typ tmp"
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona dovecot"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr "Należy podać Å›cieżkÄ™ do pliku wykonywalnego dla ograniczanego procesu"
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona entropyd"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr "Plik typu wymuszania"
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla fetchmail"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr "Plik interfejsu"
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona fingerd"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr "Plik kontekstów pliku"
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona freshclam"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr "Ustawienie skryptu"
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona fsdaemon"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n nazwaModuÅ‚u ] [ -m ] [ -t typ ] [ plikWykonywalny | Nazwa ]\n"
++"prawidÅ‚owe typy:\n"
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona gpm"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr "Wymagany jest plik wykonywalny lub nazwa"
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr "Port sieciowy"
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona gss"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++"Typ portu\n"
++"SELinuksa"
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona HAL"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr "Protokół"
+-#~ msgid "Compatibility"
+-#~ msgstr "Zgodność"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++"Poziom\n"
++"MLS/MCS"
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr "Port"
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr "Numer portu \"%s\" jest nieprawidÅ‚owy. 0 < NUMER_PORTU < 65536 "
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr "Widok listy"
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr "Widok grupy"
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr "Ochrona usÅ‚ugi SELinuksa"
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona acct"
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr "Administracja"
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr "Umożliwia wszystkim demonom zapisywać pliki core do /"
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr "Umożliwia wszystkim demonom używać nieprzydzielonych TTY"
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr "Przywileje użytkowników"
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Umożliwia kontom użytkowników SELinuksa gadmin wykonywanie plików w katalogu "
++"domowym lub /tmp"
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "Nie audytuj rzeczy, o których wiemy, Å¼e sÄ… zepsute, ale nie niosÄ… za sobÄ… "
+-#~ "ryzyka"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Umożliwia kontom użytkowników SELinuksa guest wykonywanie plików w katalogu "
++"domowym lub /tmp"
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona hostname"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr "Ochrona pamiÄ™ci"
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona hotplug"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr "Zezwala na stos wykonywalny Javy"
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona howl"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr "Mount"
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona hplip CUPS"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr "Umożliwia mount montowanie wszystkich plików"
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla rotatelogs httpd"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr "Umożliwia mount montowanie wszystkich katalogów"
+-#~ msgid "HTTPD Service"
+-#~ msgstr "UsÅ‚uga HTTPD"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr "Zezwala na stos wykonywalny MPlayera"
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla suexec HTTP"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr "SSH"
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona hwclock"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr "Umożliwia SSH uruchamianie ssh-keysign"
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona i18n"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Umożliwia kontom użytkowników SELinuksa staff wykonywanie plików w katalogu "
++"domowym lub /tmp"
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona imazesrv"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Umożliwia kontom użytkowników SELinuksa sysadm wykonywanie plików w katalogu "
++"domowym lub /tmp"
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demonów potomnych inetd"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++"Umożliwia nieograniczanym kontom użytkowników SELinuksa wykonywanie plików "
++"katalogu domowym lub /tmp"
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona inetd"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr "Konfiguracja sieci"
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona innd"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr "Umożliwia pakietom bez etykiet przepÅ‚ywanie przez sieć"
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona iptables"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Umożliwia kontom użytkowników SELinuksa user wykonywanie plików w katalogu "
++"domowym lub /tmp"
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona ircd"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr "Umożliwia nieograniczane dyntrans do unconfined_execmem"
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona irqbalance"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr "Bazy danych"
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona iSCSI"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr "Umożliwia użytkownikowi Å‚Ä…czenie z gniazdem MySQL"
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona jabberd"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr "Umożliwia użytkownikowi Å‚Ä…czenie z gniazdem PostgreSQL"
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr "Serwer X"
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona kadmind"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr "Umożliwia klientom zapisywanie do współdzielonej pamiÄ™ci X Window"
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona klogd"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Umożliwia kontom użytkowników SELinuksa xguest wykonywanie plików w katalogu "
++"domowym lub /tmp"
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr "NIS"
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr "Umożliwia demonom uruchamianie za pomocÄ… NIS"
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr "Aplikacje WWW"
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr "Przemienia użytkownika SELinuksa staff na domenÄ™ przeglÄ…darki WWW"
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr "Przemienia użytkownika SELinuksa sysadm na domenÄ™ przeglÄ…darki WWW"
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr "Przemienia użytkownika SELinuksa user na domenÄ™ przeglÄ…darki WWW"
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr "Przemienia użytkownika SELinuksa xguest na domenÄ™ przeglÄ…darki WWW"
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr "Umożliwia przeglÄ…darkom WWW staff zapisywanie do katalogów domowych"
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla amandy"
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla amavis"
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona apmd"
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona arpwatch"
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona auditd"
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona automount"
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla Avahi"
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona Bluetooth"
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona canna"
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona cardmgr"
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla serwera klastra"
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++"Umożliwia cdrecord odczytywanie różnej zawartoÅ›ci. NFS, Samba, urzÄ…dzenia "
++"wymienne, pliki tymczasowe użytkownika i potencjalnie niebezpieczne pliki "
++"zawartości"
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona ciped"
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona clamd"
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla clamscan"
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla clvmd"
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona comsat"
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona courier"
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona cpucontrol"
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona cpuspeed"
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr "Cron"
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona crond"
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr "Drukowanie"
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla serwera zaplecza cupsd"
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona cupsd"
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla cupsd_lpd"
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr "CVS"
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona CVS"
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona cyrus"
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona dbskkd"
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona dbusd"
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla dccd"
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla dccifd"
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla dccm"
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona ddt"
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona devfsd"
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona dhcpc"
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona dhcpd"
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona dictd"
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr "Umożliwia sysadm_t bezpoÅ›rednie uruchamianie demonów"
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla Evolution"
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr "Gry"
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla gier"
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla przeglÄ…darek WWW"
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla Thunderbirda"
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona distccd"
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona dmesg"
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona dnsmasq"
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona dovecot"
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona entropyd"
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla fetchmail"
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona fingerd"
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona freshclam"
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona fsdaemon"
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona gpm"
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr "NFS"
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona gss"
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona HAL"
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr "Zgodność"
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++"Bez audytowania rzeczy, o których wiadomo, Å¼e sÄ… zepsute, ale nie niosÄ… za "
++"sobÄ… ryzyka"
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona hostname"
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona hotplug"
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona howl"
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona hplip CUPS"
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla rotatelogs httpd"
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr "UsÅ‚uga HTTPD"
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla suexec HTTP"
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona hwclock"
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona i18n"
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona imazesrv"
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demonów potomnych inetd"
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona inetd"
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona innd"
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona krb5kdc"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona iptables"
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demonów ktalk"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona ircd"
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona kudzu"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona irqbalance"
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona locate"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona iSCSI"
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona LPD"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona jabberd"
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona lrrd"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr "Kerberos"
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona LVM"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona kadmind"
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona Mailman"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona klogd"
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr ""
+-#~ "Pozwól Evolution i Thunderbirdowi na odczytywanie plików użytkownika"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona krb5kdc"
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona mdadm"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demonów ktalk"
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona monopd"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona kudzu"
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "Pozwól przeglÄ…darce Mozilla na odczytywanie plików użytkownika"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona locate"
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona mrtg"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona LPD"
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona mysqld"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona lrrd"
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona nagios"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona LVM"
+-#~ msgid "Name Service"
+-#~ msgstr "UsÅ‚uga nazw"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona Mailman"
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona named"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr "Umożliwia Evolution i Thunderbirdowi odczytywanie plików użytkownika"
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona nessusd"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona mdadm"
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla Menedżera sieci"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona monopd"
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona nfsd"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr "Umożliwia przeglÄ…darce Mozilla odczytywanie plików użytkownika"
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona mrtg"
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona nmbd"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona mysqld"
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona nrpe"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona nagios"
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona nscd"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr "UsÅ‚uga nazw"
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona nsd"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona named"
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona ntpd"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona nessusd"
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla oddjob"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla Menedżera sieci"
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla oddjob_mkhomedir"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona nfsd"
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona OpenVPN"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr "Samba"
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona PAM"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona nmbd"
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla Pegasusa"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona nrpe"
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona perdition"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona nscd"
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona portmap"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona nsd"
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona portslave"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona ntpd"
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla Postfiksa"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla oddjob"
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona PostgreSQL"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla oddjob_mkhomedir"
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona OpenVPN"
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "Pozwól pppd na uruchamianie przez zwykÅ‚ych użytkowników"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona PAM"
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona pptp"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla Pegasusa"
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona prelink"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona perdition"
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona privoxy"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona portmap"
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona ptal"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona portslave"
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona PXE"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla Postfiksa"
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla pyzord"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona PostgreSQL"
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona Quoty"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr "pppd"
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona radiusd"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr "Umożliwia uruchamianie pppd przez zwykÅ‚ych użytkowników"
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona radvd"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona pptp"
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla rdisc"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona prelink"
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla readahead"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona privoxy"
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "Pozwól programom na odczytywanie plików w niestandardowych poÅ‚ożeniach "
+-#~ "(default_t)"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona ptal"
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona restorecond"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona PXE"
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona RHGB"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla pyzord"
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla ricci"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona Quoty"
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla ricci_modclusterd"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona radiusd"
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona rlogind"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona radvd"
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona rpcd"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla rdisc"
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla rshd"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla readahead"
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++"Umożliwia programom odczytywanie plików w niestandardowych poÅ‚ożeniach "
++"(default_t)"
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona rsync"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona restorecond"
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "Pozwól SSH na uruchamianie z inetd zamiast jako demon"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona RHGB"
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Pozwól Sambie na współdzielenie folderów NFS"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla ricci"
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Serwer uwierzytelniania SASL"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla ricci_modclusterd"
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "Pozwól serwerowi uwierzytelniania SASL na odczytywanie /etc/shadow"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona rlogind"
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "Pozwól serwerowi X Window na mapowanie regionów pamiÄ™ci zarówno jako "
+-#~ "wykonywalnÄ…, jak i zapisywalnÄ…"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona rpcd"
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona saslauthd"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla rshd"
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona scannerdaemon"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr "rsync"
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "Nie pozwól na przemienienie na sysadm_t, dotyczy sudo i su"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona rsync"
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "Nie pozwól Å¼adnemu procesowi na wczytywanie modułów jÄ…dra"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr "Umożliwia SSH uruchamianie z inetd zamiast jako demon"
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr ""
+-#~ "Nie pozwól Å¼adnemu procesowi na modyfikowanie polityki jÄ…dra SELinuksa"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr "Umożliwia Sambie współdzielenie katalogów NFS"
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona Sendmail"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr "Serwer uwierzytelniania SASL"
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla setrans"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr "Umożliwia serwerowi uwierzytelniania SASL odczytywanie /etc/shadow"
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona SETroubleshoot"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++"Umożliwia serwerowi X Window mapowanie regionów pamiÄ™ci zarówno jako "
++"wykonywalnÄ…, jak i zapisywalnÄ…"
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona slapd"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona saslauthd"
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona slrnpull"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona scannerdaemon"
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona smbd"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr "Zabrania przemienienia na sysadm_t, dotyczy sudo i su"
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona snmpd"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr "Zabrania wszystkim procesom wczytywania modułów jÄ…dra"
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona Snort"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr "Zabrania wszystkim procesom modyfikowania polityki jÄ…dra SELinuksa"
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona soundd"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona Sendmail"
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona sound"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla setrans"
+-#~ msgid "Spam Protection"
+-#~ msgstr "Ochrona przed niechcianymi wiadomoÅ›ciami"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona SETroubleshoot"
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona spamd"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona slapd"
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "Pozwól smapd na dostÄ™p do folderów domowych"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona slrnpull"
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Pozwól demonowi Spam Assassin na dostÄ™p do sieci"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona smbd"
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona speedmgmt"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona snmpd"
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona Snort"
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "Pozwól demonowi Squid na dostÄ™p do sieci"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona soundd"
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona Squid"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona sound"
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona SSH"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr "Ochrona przed niechcianymi wiadomoÅ›ciami"
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "Pozwól SSH na logowanie jako sysadm_r:sysadm_t"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona spamd"
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "Pozwól użytkownikom staff_r na wyszukiwanie w folderze domowym sysadm i "
+-#~ "odczytywanie plików (takich jak ~/.bashrc)"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr "Umożliwia smapd dostÄ™p do katalogów domowych"
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Uniwersalny tunel SSH"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr "Umożliwia demonowi Spam Assassin dostÄ™p do sieci"
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona stunnel"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona speedmgmt"
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "Pozwól demonowi stunnel na samodzielne uruchamianie, poza xinetd"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr "Squid"
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona swat"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr "Umożliwia demonowi Squid dostÄ™p do sieci"
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona sxid"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona Squid"
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona syslogd"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona SSH"
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla systemowych zadaÅ„ Crona"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr "Umożliwia SSH logowanie jako sysadm_r:sysadm_t"
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona TCP"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++"Umożliwia użytkownikom staff_r wyszukiwanie w katalogu domowym sysadm i "
++"odczytywanie plików (takich jak ~/.bashrc)"
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona Telnet"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr "Uniwersalny tunel SSH"
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona tftpd"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona stunnel"
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona transproxy"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr "Umożliwia demonowi stunnel samodzielne uruchamianie, poza xinetd"
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona udev"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona swat"
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona uml"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona sxid"
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Pozwól xinetd na uruchamianie nieograniczane, w tym wszystkich usÅ‚ug, "
+-#~ "jakie uruchamia, a które nie majÄ… okreÅ›lonych przemian domen"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona syslogd"
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Pozwól skryptom rc na uruchamianie nieograniczane, w tym wszystkie demony "
+-#~ "uruchamiane przez skrypty rc, a które nie majÄ… okreÅ›lonych przemian domen"
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla systemowych zadaÅ„ Crona"
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "Pozwól RPM na uruchamianie nieograniczane"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona TCP"
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "Pozwól uprzywilejowanym narzÄ™dziom, takim jak hotplug i insmod na "
+-#~ "uruchamianie nieograniczane"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona Telnet"
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona updfstab"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona tftpd"
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona uptimed"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona transproxy"
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "Pozwól user_r na osiÄ…ganie sysadm_r przez su, sudo lub userhelper. W "
+-#~ "innym wypadku tylko staff_r może to zrobić"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona udev"
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "Pozwól użytkownikom na uruchamianie polecenia mount"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona uml"
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "Pozwól zwykÅ‚ym użytkownikom na bezpoÅ›redni dostÄ™p do myszy (pozwól tylko "
+-#~ "serwerowi X Window)"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++"Umożliwia xinetd uruchamianie nieograniczane, w tym wszystkich usÅ‚ug, jakie "
++"uruchamia, a które nie majÄ… okreÅ›lonych przemian domen"
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "Pozwól użytkownikom na wykonywanie polecenia dmesg"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++"Umożliwia skryptom rc uruchamianie nieograniczane, w tym wszystkie demony "
++"uruchamiane przez skrypty rc, a które nie majÄ… okreÅ›lonych przemian domen"
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "Pozwól użytkownikom na kontrolowanie interfejsów sieciowych (wymaga także "
+-#~ "USERCTL=true)"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr "Umożliwia RPM nieograniczane uruchamianie"
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "Pozwól normalnym użytkownikom na wykonywanie ping"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++"Umożliwia uprzywilejowanym narzÄ™dziom, takim jak hotplug i insmod "
++"uruchamianie nieograniczane"
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr ""
+-#~ "Pozwól użytkownikom na odczyt/zapis noextattrfile (FAT, CD-ROM, DYSKIETKA)"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona updfstab"
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "Pozwól użytkownikom na odczyt/zapis urzÄ…dzeÅ„ USB"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona uptimed"
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "Pozwól użytkownikom na uruchamianie serwerów TCP (dowiąż do portów i "
+-#~ "akceptuj poÅ‚Ä…czenia z tych samych domen i zewnÄ™trznych użytkowników) "
+-#~ "wyÅ‚Ä…czenie tego wymusza tryb pasywny FTP i może zmienić inne protokoÅ‚y"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++"Umożliwia user_r osiÄ…ganie sysadm_r przez su, sudo lub userhelper. W innym "
++"wypadku tylko staff_r może to zrobić"
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "Pozwól użytkownikom na wykonywanie stat na plikach TTY"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr "Umożliwia użytkownikom uruchamianie polecenia mount"
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona uucpd"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++"Umożliwia zwykÅ‚ym użytkownikom bezpoÅ›redni dostÄ™p do myszy (umożliwia tylko "
++"serwerowi X Window)"
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona VMWare"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona watchdog"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona winbind"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona XDM"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "Pozwól XDM na logowanie jako sysadm_r:sysadm_t"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona Xen"
+-
+-#~ msgid "XEN"
+-#~ msgstr "Xen"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr ""
+-#~ "Pozwól Xenowi na odczytywanie/zapisywanie fizycznych urzÄ…dzeÅ„ dyskowych"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona xfs"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla kontroli Xena"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona ypbind"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona hasÅ‚a NIS"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona ypserv"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "WyÅ‚Ä…cz ochronÄ™ SELinuksa dla demona przesyÅ‚ania NIS"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Pozwól użytkownikowi SELinuksa webadm na zarzÄ…dzanie folderami domowymi "
+-#~ "nieuprzywilejowanych użytkowników"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Pozwól użytkownikowi SELinuksa webadm na odczytywanie folderami domowymi "
+-#~ "nieuprzywilejowanych użytkowników"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "Na pewno chcesz usunąć %s \"%s\"?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "UsuÅ„ %s"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "Dodaj %s"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "Zmodyfikuj %s"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "Zezwalanie"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "Wymuszanie"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Zmienianie typu polityki spowoduje ponowne nadanie etykiet caÅ‚emu "
+-#~ "systemowy plików podczas nastÄ™pnego uruchamiania. Ponowne nadawanie "
+-#~ "etykiet zajmuje dużo czasu, w zależnoÅ›ci od rozmiaru systemu plików. Czy "
+-#~ "chcesz kontynuować?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Zmienianie SELinuksa na wyÅ‚Ä…czony wymaga ponownego uruchomienia. Nie jest "
+-#~ "to zalecane. JeÅ›li później zdecydujesz siÄ™ ponownie wÅ‚Ä…czyć SELinuksa, "
+-#~ "system bÄ™dzie wymagaÅ‚ ponownego nadania etykiet. JeÅ›li chcesz tylko "
+-#~ "zobaczyć, czy SELinux powoduje problem z systemem, możesz przejść do "
+-#~ "trybu zezwalania, który bÄ™dzie tylko zapisywaÅ‚ bÅ‚Ä™dy do dziennika i nie "
+-#~ "wymuszaÅ‚ polityki SELinuksa. Tryb zezwalania nie wymaga ponownego "
+-#~ "uruchomienia. Czy chcesz kontynuować?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Zmienianie SELinuksa na wÅ‚Ä…czony spowoduje ponowne nadanie etykiet caÅ‚emu "
+-#~ "systemowy plików podczas nastÄ™pnego uruchamiania. Ponowne nadawanie "
+-#~ "etykiet zajmuje dużo czasu, w zależnoÅ›ci od rozmiaru systemu plików. Czy "
+-#~ "chcesz kontynuować?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c) 2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "Dodaj mapowanie loginu SELinuksa"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "Dodaj porty sieciowe SELinuksa"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "Typ SELinuksa"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "TCP\n"
+-#~ "UDP"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "Poziom MLS/MCS\n"
+-#~ "SELinuksa"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "OkreÅ›lenie pliku"
+-
+-#~ msgid "File Type"
+-#~ msgstr "Typ pliku"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "wszystkie pliki\n"
+-#~ "zwykÅ‚e pliki\n"
+-#~ "folder\n"
+-#~ "urzÄ…dzenie znakowe\n"
+-#~ "urzÄ…dzenie blokowe\n"
+-#~ "gniazdo\n"
+-#~ "dowiÄ…zanie symboliczne\n"
+-#~ "nazwany potok\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Dodaj użytkownika SELinuksa"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "Administracja SELinuksa"
+-
+-#~ msgid "Add"
+-#~ msgstr "Dodaj"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "_WÅ‚aÅ›ciwoÅ›ci"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "_UsuÅ„"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "Wybierz obiekt zarzÄ…dzania"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Wybierz:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "DomyÅ›lny systemowy tryb wymuszania"
+-
+-#~ msgid ""
+-#~ "Disabled\n"
+-#~ "Permissive\n"
+-#~ "Enforcing\n"
+-#~ msgstr ""
+-#~ "WyÅ‚Ä…czone\n"
+-#~ "Zezwalanie\n"
+-#~ "Wymuszanie\n"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr "Umożliwia użytkownikom wykonywanie polecenia dmesg"
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "Obecny tryb wymuszania"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++"Umożliwia użytkownikom kontrolowanie interfejsów sieciowych (wymaga także "
++"USERCTL=true)"
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "DomyÅ›lny systemowy typ polityki: "
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr "Umożliwia zwykÅ‚ym użytkownikom wykonywanie ping"
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "Wybierz, czy chcesz ponownie nadać etykiety caÅ‚emu systemowi plików "
+-#~ "podczas nastÄ™pnego ponownego uruchomienia. Ponowne nadanie etykiet może "
+-#~ "zająć dużo czasu, w zależnoÅ›ci od rozmiaru systemu. JeÅ›li zmieniasz typy "
+-#~ "polityki lub przechodzisz z wyÅ‚Ä…czonego do wymuszania, ponowne nadanie "
+-#~ "etykiet jest wymagane."
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++"Umożliwia użytkownikom odczyt/zapis noextattrfile (FAT, CD-ROM, DYSKIETKA)"
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Ponownie nadaj etykiety podczas nastÄ™pnego ponownego uruchomienia."
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr "Umożliwia użytkownikom odczyt/zapis urzÄ…dzeÅ„ USB"
+-#~ msgid "label37"
+-#~ msgstr "label37"
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++"Umożliwia użytkownikom uruchamianie serwerów TCP (dowiÄ…zanie do portów i "
++"akceptowanie poÅ‚Ä…czenia z tych samych domen i zewnÄ™trznych użytkowników) "
++"wyÅ‚Ä…czenie tego wymusza tryb pasywny FTP i może zmienić inne protokoÅ‚y"
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "Przywróć ustawienia zmiennych logicznych do domyÅ›lnych systemu"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr "Umożliwia użytkownikom wykonywanie stat na plikach TTY"
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "PrzeÅ‚Ä…cz miÄ™dzy dostosowanymi i wszystkimi zmiennymi logicznymi"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona uucpd"
+-#~ msgid "Run booleans lockdown wizard"
+-#~ msgstr "Uruchom kreatora blokowania zmiennych logicznych"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona VMWare"
+-#~ msgid "Lockdown..."
+-#~ msgstr "Zablokuj..."
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona watchdog"
+-#~ msgid "Filter"
+-#~ msgstr "Filtr"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona winbind"
+-#~ msgid "label50"
+-#~ msgstr "label50"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona XDM"
+-#~ msgid "Add File Context"
+-#~ msgstr "Dodaj kontekst pliku"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr "Umożliwia XDM logowanie jako sysadm_r:sysadm_t"
+-#~ msgid "Modify File Context"
+-#~ msgstr "Zmodyfikuj kontekst pliku"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona Xen"
+-#~ msgid "Delete File Context"
+-#~ msgstr "UsuÅ„ kontekst pliku"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr "Xen"
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "PrzeÅ‚Ä…cz miÄ™dzy wszystkimi i dostosowanymi kontekstami plików"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++"Umożliwia Xenowi odczytywanie/zapisywanie fizycznych urzÄ…dzeÅ„ dyskowych"
+-#~ msgid "label38"
+-#~ msgstr "label38"
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona xfs"
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "Dodaj mapowanie użytkownika SELinuksa"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla kontroli Xena"
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Zmodyfikuj mapowanie użytkownika SELinuksa"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona ypbind"
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "UsuÅ„ mapowanie użytkownika SELinuksa"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona hasÅ‚a NIS"
+-#~ msgid "label39"
+-#~ msgstr "label39"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona ypserv"
+-#~ msgid "Add Translation"
+-#~ msgstr "Dodaj tÅ‚umaczenie"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr "WyÅ‚Ä…cza ochronÄ™ SELinuksa dla demona przesyÅ‚ania NIS"
+-#~ msgid "Modify Translation"
+-#~ msgstr "Zmodyfikuj tÅ‚umaczenie"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++"Umożliwia użytkownikowi SELinuksa webadm zarzÄ…dzanie katalogami domowymi "
++"nieuprzywilejowanych użytkowników"
+-#~ msgid "Delete Translation"
+-#~ msgstr "UsuÅ„ tÅ‚umaczenie"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++"Umożliwia użytkownikowi SELinuksa webadm odczytywanie katalogów domowych "
++"nieuprzywilejowanych użytkowników"
+-#~ msgid "label41"
+-#~ msgstr "label41"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr "Na pewno usunąć %s \"%s\"?"
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Zmodyfikuj użytkownika SELinuksa"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr "UsuÅ„ %s"
+-#~ msgid "label40"
+-#~ msgstr "label40"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr "Dodaj %s"
+-#~ msgid "Add Network Port"
+-#~ msgstr "Dodaj port sieciowy"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr "Modyfikuj %s"
+-#~ msgid "Edit Network Port"
+-#~ msgstr "Edytuj port sieciowy"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr "Zezwalanie"
+-#~ msgid "Delete Network Port"
+-#~ msgstr "UsuÅ„ port sieciowy"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr "Wymuszanie"
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "PrzeÅ‚Ä…cz miÄ™dzy dostosowanymi i wszystkimi portami"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr "Stan"
+-#~ msgid "label42"
+-#~ msgstr "label42"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++"Zmienianie typu polityki spowoduje ponowne nadanie etykiet caÅ‚emu systemowy "
++"plików podczas nastÄ™pnego uruchamiania. Ponowne nadawanie etykiet zajmuje "
++"dużo czasu, w zależnoÅ›ci od rozmiaru systemu plików. Kontynuować?"
+-#~ msgid "Generate new policy module"
+-#~ msgstr "Utwórz nowy moduÅ‚ polityki"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++"Zmienianie SELinuksa na wyÅ‚Ä…czony wymaga ponownego uruchomienia. Nie jest to "
++"zalecane. JeÅ›li później SELinux zostanie ponownie wÅ‚Ä…czony, to system bÄ™dzie "
++"wymagaÅ‚ ponownego nadania etykiet. można przejść do trybu zezwalania, który "
++"bÄ™dzie tylko zapisywaÅ‚ bÅ‚Ä™dy do dziennika i nie wymuszaÅ‚ polityki SELinuksa, "
++"by zobaczyć, czy SELinux powoduje problem z systemem. Tryb zezwalania nie "
++"wymaga ponownego uruchomienia. Kontynuować?"
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++"Zmienianie SELinuksa na wÅ‚Ä…czony spowoduje ponowne nadanie etykiet caÅ‚emu "
++"systemowy plików podczas nastÄ™pnego uruchamiania. Ponowne nadawanie etykiet "
++"zajmuje dużo czasu, w zależnoÅ›ci od rozmiaru systemu plików. Kontynuować?"
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr "system-config-selinux"
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++"Copyright (c) 2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr "Dodanie mapowania loginu SELinuksa"
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr "Dodanie portów sieciowych SELinuksa"
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr "Typ SELinuksa"
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr "OkreÅ›lenie pliku"
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr "Typ pliku"
+-#~ msgid "Load policy module"
+-#~ msgstr "Wczytaj moduÅ‚ polityki"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++"wszystkie pliki\n"
++"zwykÅ‚e pliki\n"
++"katalog\n"
++"urzÄ…dzenie znakowe\n"
++"urzÄ…dzenie blokowe\n"
++"gniazdo\n"
++"dowiÄ…zanie symboliczne\n"
++"nazwany potok\n"
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr "MLS"
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr "Dodanie użytkownika SELinuksa"
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr "Administracja SELinuksem"
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr "Dodaj"
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr "_WÅ‚aÅ›ciwoÅ›ci"
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr "_UsuÅ„"
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr "Wybór obiektu zarzÄ…dzania"
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr "<b>Wybór:</b>"
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr "DomyÅ›lny systemowy tryb wymuszania"
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++"Wyłączone\n"
++"Zezwalanie\n"
++"Wymuszanie\n"
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "UsuÅ„ wczytywalny moduÅ‚ polityki"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr "Obecny tryb wymuszania"
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "WÅ‚Ä…cz/wyÅ‚Ä…cz dodatkowe reguÅ‚y audytu, które normalnie nie sÄ… raportowane "
+-#~ "do plików dziennika."
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr "DomyÅ›lny systemowy typ polityki: "
+-#~ msgid "label44"
+-#~ msgstr "label44"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++"ProszÄ™ wybrać, czy ponownie nadać etykiety caÅ‚emu systemowi plików podczas "
++"nastÄ™pnego ponownego uruchomienia. Ponowne nadanie etykiet może zająć dużo "
++"czasu, w zależnoÅ›ci od rozmiaru systemu. JeÅ›li zmieniany jest typ polityki "
++"lub przechodzi z trybu wyÅ‚Ä…czonego do wymuszania, ponowne nadanie etykiet "
++"jest wymagane."
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr "Ponownie nadanie etykiet podczas nastÄ™pnego ponownego uruchomienia."
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr "label37"
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr "Przywrócenie ustawienia zmiennych logicznych do domyÅ›lnych systemu"
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr "PrzeÅ‚Ä…czenie miÄ™dzy dostosowanymi i wszystkimi zmiennymi logicznymi"
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr "Uruchomienie kreatora blokowania zmiennych logicznych"
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr "Zablokuj..."
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr "Filtr"
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr "label50"
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr "Dodanie kontekstu pliku"
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr "Modyfikacja kontekstu pliku"
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr "UsuniÄ™cie kontekstu pliku"
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr "PrzeÅ‚Ä…czenie miÄ™dzy wszystkimi i dostosowanymi kontekstami plików"
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr "label38"
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr "Dodanie mapowania użytkownika SELinuksa"
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr "Modyfikacja mapowania użytkownika SELinuksa"
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr "UsuniÄ™cie mapowania użytkownika SELinuksa"
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr "label39"
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr "Dodanie użytkownika"
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr "Modyfikacja użytkownika"
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr "UsuniÄ™cie użytkownika"
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr "label41"
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr "Dodanie portu sieciowego"
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr "Modyfikacja portu sieciowego"
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr "UsuniÄ™cie portu sieciowego"
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr "PrzeÅ‚Ä…czenie miÄ™dzy dostosowanymi i wszystkimi portami"
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr "label42"
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr "Utworzenie nowego moduÅ‚u polityki"
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr "Wczytanie moduÅ‚u polityki"
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr "UsuniÄ™cie wczytywalnego moduÅ‚u polityki"
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++"WÅ‚Ä…czenie/wyÅ‚Ä…czenie dodatkowych reguÅ‚ audytu, które zwykle nie sÄ… "
++"raportowane do plików dziennika."
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr "label44"
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr "Zmiana trybu procesu na zezwalanie."
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "Poziom wrażliwoÅ›ci"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr "Zmiana trybu procesu na wymuszanie"
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "Użytkownik SELinuksa \"%s\" jest wymagany"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr "Domena procesu"
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr "label59"
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr "Użytkownik SELinuksa \"%s\" jest wymagany"
+diff --git a/policycoreutils/po/policycoreutils.pot b/policycoreutils/po/policycoreutils.pot
+index 86ed212..2501222 100644
+--- a/policycoreutils/po/policycoreutils.pot
++++ b/policycoreutils/po/policycoreutils.pot
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/pt.po b/policycoreutils/po/pt.po
+index fcb817e..c3cf65d 100644
+--- a/policycoreutils/po/pt.po
++++ b/policycoreutils/po/pt.po
+@@ -1,23 +1,23 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
++# Rui Gouveia <rui.gouveia@gmail.com>, 2010.
++# Sérgio Mesquita <smesquita@gmail.com>, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-10-02 12:37+0100\n"
+-"Last-Translator: José Nuno Coelho Pires <jncp@netcabo.pt>\n"
+-"Language-Team: pt <kde-i18n-pt@kde.org>\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Portuguese <trans-pt@lists.fedoraproject.org>\n"
++"Language: pt\n"
+ "MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=utf-8\n"
++"Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-POFile-SpellExtra: SETUID tty ze odt tcp ConfidencialEmpresa getpass PAM\n"
+-"X-POFile-SpellExtra: TTY serange PAMTTY SELinux semodule chcat init\n"
+-"X-POFile-SpellExtra: newrole setype udp runinit passwd pp semanage\n"
+-"X-POFile-SpellExtra: KEEPCAPS bq shadow UID MLS seuser dev SIGHUP\n"
+-"X-POFile-SpellExtra: novocontexto argv Polgen UIDs nsswitch Init Hat Red\n"
+-"X-POFile-SpellExtra: if tmp lib label lu var avc inetd fc xinetd usesyslog\n"
+-"X-POFile-SpellExtra: Fich audit syslog bindresvport XWindows setenforce sh\n"
+-"X-POFile-SpellExtra: allow MCS carregável\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -46,7 +46,7 @@ msgstr "Senha:"
+ #: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+ #, c-format
+ msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr "O seu item não foi encontrado no ficheiro de senhas 'shadow'.\n"
++msgstr "Os seus dados não foram encontrados no ficheiro de senhas 'shadow'.\n"
+ #: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+ #, c-format
+@@ -61,18 +61,18 @@ msgstr "run_init: a senha do %s Ã© incorrecta\n"
+ #: ../run_init/run_init.c:309
+ #, c-format
+ msgid "Could not open file %s\n"
+-msgstr "Não foi possível aceder ao ficheiro %s\n"
++msgstr "Não foi possível abrir o ficheiro %s\n"
+ #: ../run_init/run_init.c:336
+ #, c-format
+ msgid "No context in file %s\n"
+-msgstr "Não existe qualquer contexto no ficheiro %s\n"
++msgstr "Não existe contexto no ficheiro %s\n"
+ #: ../run_init/run_init.c:361
+ #, c-format
+ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+ msgstr ""
+-"Desculpe, mas o 'run_init' só poderá ser usado num 'kernel' com SELinux.\n"
++"Desculpe, o 'run_init' só poderá ser utilizado num kernel com SELinux.\n"
+ #: ../run_init/run_init.c:380
+ #, c-format
+@@ -82,7 +82,7 @@ msgstr "a autenticação falhou.\n"
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+ #, c-format
+ msgid "Could not set exec context to %s.\n"
+-msgstr "Não foi possível mudar o contexto de execução para %s.\n"
++msgstr "Não foi possível definir o contexto de execução para %s.\n"
+ #: ../audit2allow/audit2allow:230
+ msgid "******************** IMPORTANT ***********************\n"
+@@ -94,68 +94,65 @@ msgstr "Para tornar este pacote de políticas activo, execute:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "global"
+ #: ../semanage/seobject.py:222
+ msgid "Could not create semanage handle"
+-msgstr "Não foi possível iniciar o descritor do 'semanage'"
++msgstr "Não foi possível iniciar o descritor do SELinux (\"semanage\")"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-"A política do SELinux não Ã© gerida ou não Ã© possível aceder ao armazém."
++msgstr "A política do SELinux não Ã© gerida ou não Ã© possível aceder aos dados."
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr "Não Ã© possível ler o armazém de políticas."
++msgstr "Não Ã© possível ler os dados de políticas."
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+-msgstr "Não Ã© possível estabelecer uma ligação ao 'semanage'"
++msgstr ""
++"Não Ã© possível estabelecer uma ligação ao gestor do SELinux (\"semanage\")"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Não foi possível definir o intervalo do MLS do %s"
++msgstr "Não foi testar o estado de activação do MLS"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "Ainda não está implementado"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Transacção Semanage já está em curso"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+-msgstr "Não foi possível iniciar a transacção do 'semanage'"
++msgstr ""
++"Não foi possível iniciar uma transacção do gestor do SELinux (\"semanage\")"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Não foi possível iniciar a transacção do 'semanage'"
++msgstr "Não foi possível finalizar a transacção semanage"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Transacção Semanage não está em curso"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Não foi possível listar os utilizadores do SELinux"
++msgstr "Não foi possível listar os módulos SELinux"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Nome do Módulo"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Versão"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr "Inactivo"
++msgstr "Desactivado"
+ #: ../semanage/seobject.py:322
+ #, python-format
+@@ -163,9 +160,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Não foi possível adicionar o papel %s para o %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -177,24 +174,24 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Permissivo"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Permissivo"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
++"Não foi possível definir o domínio permissivo %s (instalação do módulo "
++"falhou)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "Não foi possível remover o domínio permissivo %s (remoção falhou)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -205,19 +202,20 @@ msgstr ""
+ #: ../semanage/seobject.py:2037
+ #, python-format
+ msgid "Could not create a key for %s"
+-msgstr "Não Ã© possível criar uma chave para o %s"
++msgstr "Não foi possível criar uma chave para o %s"
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+ #, python-format
+ msgid "Could not check if login mapping for %s is defined"
+ msgstr ""
+-"Não foi possível ver se o mapeamento de autenticação do %s está definido"
++"Não foi possível verificar se o mapeamento de autenticação para %s está "
++"definido"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "O utilizador de Linux %s não existe"
++msgstr "O Grupo Linux %s não existe"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -227,58 +225,59 @@ msgstr "O utilizador de Linux %s não existe"
+ #: ../semanage/seobject.py:501
+ #, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr "Não foi possível criar o mapeamento de autenticação do %s"
++msgstr "Não foi possível criar o mapeamento de autenticação para %s"
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+ msgid "Could not set name for %s"
+-msgstr "Não foi possível definir o nome do %s"
++msgstr "Não foi possível definir o nome para %s"
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+ #, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr "Não foi possível definir o intervalo do MLS do %s"
++msgstr "Não foi possível definir o intervalo MLS para %s"
+ #: ../semanage/seobject.py:514
+ #, python-format
+ msgid "Could not set SELinux user for %s"
+-msgstr "Não foi possível definir o utilizador do SELinux para o %s"
++msgstr "Não foi possível definir o utilizador SELinux para %s"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "Não foi possível adicionar o mapeamento de autenticação do %s"
++msgstr "Não foi possível adicionar o mapeamento de autenticação para %s"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+-msgstr "Necessita do 'seuser' ou do 'serange'"
++msgstr ""
++"Requer utilizador SELinux (\"seuser\") ou intervalo SELinux (\"serange\")"
+ #: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+ #, python-format
+ msgid "Login mapping for %s is not defined"
+-msgstr "O mapeamento de autenticação do %s não está definido"
++msgstr "O mapeamento de autenticação para %s não está definido"
+ #: ../semanage/seobject.py:563
+ #, python-format
+ msgid "Could not query seuser for %s"
+-msgstr "Não foi possível pesquisar o 'seuser' por %s"
++msgstr "Não foi possível encontrar o utilizador SELinux (\"seuser\") para %s"
+ #: ../semanage/seobject.py:577
+ #, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr "Não foi possível modificar o mapeamento de autenticação do %s"
++msgstr "Não foi possível modificar o mapeamento de autenticação para %s"
+ #: ../semanage/seobject.py:611
+ #, python-format
+ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"O mapeamento de autenticação do %s está definido na política e não pode ser "
++"O mapeamento de autenticação para %s está definido na política, não pode ser "
+ "removido"
+ #: ../semanage/seobject.py:615
+ #, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr "Não foi possível remover o mapeamento de autenticação do %s"
++msgstr "Não foi possível remover o mapeamento de autenticação para %s"
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+@@ -286,24 +285,29 @@ msgid "Could not list login mappings"
+ msgstr "Não foi possível listar os mapeamentos de autenticação"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "Nome da Conta"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "Utilizador do SELinux"
++msgstr "Utilizador SELinux"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+-msgstr "Intervalo do MLS/MCS"
++msgstr "Intervalo MLS/MCS"
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+ #: ../semanage/seobject.py:860
+ #, python-format
+ msgid "Could not check if SELinux user %s is defined"
+-msgstr "Não foi possível verificar se o utilizador %s do SELinux está definido"
++msgstr "Não foi possível verificar se o utilizador SELinux %s está definido"
+ #: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+ #: ../semanage/seobject.py:866
+@@ -312,81 +316,81 @@ msgid "Could not query user for %s"
+ msgstr "Não foi possível pesquisar o utilizador %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Não foi possível adicionar o contexto do ficheiro %s"
++msgstr "Precisa de adicionar pelo menos um perfil para %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+ msgid "Could not create SELinux user for %s"
+-msgstr "Não foi possível criar o utilizador do SELinux do %s"
++msgstr "Não foi possível criar o utilizador SELinux para %s"
+ #: ../semanage/seobject.py:746
+ #, python-format
+ msgid "Could not add role %s for %s"
+-msgstr "Não foi possível adicionar o papel %s para o %s"
++msgstr "Não foi possível adicionar o perfil %s para %s"
+ #: ../semanage/seobject.py:755
+ #, python-format
+ msgid "Could not set MLS level for %s"
+-msgstr "Não foi possível definir o nível do MLS do %s"
++msgstr "Não foi possível definir o nível MLS para %s"
+ #: ../semanage/seobject.py:758
+ #, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr "Não foi possível adicionar o prefixo %s do %s"
++msgstr "Não foi possível adicionar o prefixo %s para %s"
+ #: ../semanage/seobject.py:761
+ #, python-format
+ msgid "Could not extract key for %s"
+-msgstr "Não foi possível extrair a chave do %s"
++msgstr "Não foi possível extrair a chave para %s"
+ #: ../semanage/seobject.py:765
+ #, python-format
+ msgid "Could not add SELinux user %s"
+-msgstr "Não foi possível adicionar o utilizador do SELinux %s"
++msgstr "Não foi possível adicionar o utilizador SELinux %s"
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+-msgstr "É necessário um prefixo, papéis, um nível ou um intervalo"
++msgstr "Requer prefixo, perfil, nível ou intervalo"
+ #: ../semanage/seobject.py:789
+ msgid "Requires prefix or roles"
+-msgstr "É necessário um prefixo ou papéis"
++msgstr "Requer prefixo ou perfil"
+ #: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+ #, python-format
+ msgid "SELinux user %s is not defined"
+-msgstr "O utilizador do SELinux %s não está definido"
++msgstr "O utilizador SELinux %s não está definido"
+ #: ../semanage/seobject.py:828
+ #, python-format
+ msgid "Could not modify SELinux user %s"
+-msgstr "Não foi possível modificar o utilizador do SELinux %s"
++msgstr "Não foi possível modificar o utilizador SELinux %s"
+ #: ../semanage/seobject.py:862
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"O utilizador do SELinux %s está definido na política, não pode ser removido"
++"O utilizador SELinux %s está definido na política, não pode ser removido"
+ #: ../semanage/seobject.py:873
+ #, python-format
+ msgid "Could not delete SELinux user %s"
+-msgstr "Não foi possível remover o utilizador do SELinux %s"
++msgstr "Não foi possível remover o utilizador SELinux %s"
+ #: ../semanage/seobject.py:911
+ msgid "Could not list SELinux users"
+-msgstr "Não foi possível listar os utilizadores do SELinux"
++msgstr "Não foi possível listar os utilizadores SELinux"
+ #: ../semanage/seobject.py:917
+ #, python-format
+ msgid "Could not list roles for user %s"
+-msgstr "Não foi possível listar os papéis do utilizador %s"
++msgstr "Não foi possível listar os perfis para o utilizador %s"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr "Legendagem"
++msgstr "Etiquetas"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+@@ -398,28 +402,28 @@ msgstr "Prefixo"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Level"
+-msgstr "Nível do MCS"
++msgstr "Nível MCS"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Range"
+-msgstr "Intervalo do MCS"
++msgstr "Intervalo MCS"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+-msgstr "Papéis do SELinux"
++msgstr "Perfis SELinux"
+ #: ../semanage/seobject.py:963
+ msgid "Protocol udp or tcp is required"
+-msgstr "É obrigatório o protocolo 'udp' ou 'tcp'"
++msgstr "É obrigatório o protocolo udp ou tcp"
+ #: ../semanage/seobject.py:965
+ msgid "Port is required"
+ msgstr "O porto Ã© obrigatório"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "O prefixo %s Ã© inválido"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -444,37 +448,37 @@ msgstr "O porto %s/%s já está definido"
+ #: ../semanage/seobject.py:1002
+ #, python-format
+ msgid "Could not create port for %s/%s"
+-msgstr "Não foi possível criar o porto %s/%s"
++msgstr "Não foi possível criar o porto para %s/%s"
+ #: ../semanage/seobject.py:1008
+ #, python-format
+ msgid "Could not create context for %s/%s"
+-msgstr "Não foi possível criar o contexto do %s/%s"
++msgstr "Não foi possível criar o contexto para %s/%s"
+ #: ../semanage/seobject.py:1012
+ #, python-format
+ msgid "Could not set user in port context for %s/%s"
+-msgstr "Não foi possível definir o utilizador no contexto do porto %s/%s"
++msgstr "Não foi possível definir o utilizador no contexto do porto para %s/%s"
+ #: ../semanage/seobject.py:1016
+ #, python-format
+ msgid "Could not set role in port context for %s/%s"
+-msgstr "Não foi possível definir o papel no contexto do porto %s/%s"
++msgstr "Não foi possível definir o perfil no contexto do porto para %s/%s"
+ #: ../semanage/seobject.py:1020
+ #, python-format
+ msgid "Could not set type in port context for %s/%s"
+-msgstr "Não foi possível definir o tipo no contexto do porto %s/%s"
++msgstr "Não foi possível definir o tipo no contexto do porto para %s/%s"
+ #: ../semanage/seobject.py:1025
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr "Não foi possível definir os campos de MLS no contexto do porto %s/%s"
++msgstr "Não foi possível definir os campos mls no contexto do porto para %s/%s"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+ msgid "Could not set port context for %s/%s"
+-msgstr "Não foi possível definir o contexto do porto %s/%s"
++msgstr "Não foi possível definir o contexto do porto para %s/%s"
+ #: ../semanage/seobject.py:1033
+ #, python-format
+@@ -484,11 +488,11 @@ msgstr "Não foi possível adicionar o porto %s/%s"
+ #: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+ #: ../semanage/seobject.py:1508
+ msgid "Requires setype or serange"
+-msgstr "Necessita de um 'setype' ou 'serange'"
++msgstr "Requer tipo SELinux (\"setype\") ou intervalo SELinux (\"serange\")"
+ #: ../semanage/seobject.py:1049
+ msgid "Requires setype"
+-msgstr "Necessita de um 'setype'"
++msgstr "Requer tipo SELinux (\"setype\")"
+ #: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+ #, python-format
+@@ -506,14 +510,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "Não foi possível modificar o porto %s/%s"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+ msgstr "Não foi possível listar os portos"
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Não foi possível remover o porto %s/%s"
++msgstr "Não foi possível remover o porto %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -531,29 +534,28 @@ msgstr "Não foi possível listar os portos"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+-msgstr "Tipo de Porto do SELinux"
++msgstr "Tipo de Porto SELinux"
+ #: ../semanage/seobject.py:1199
+ msgid "Proto"
+ msgstr "Protocolo"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "Número de Porto"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "O porto Ã© obrigatório"
++msgstr "É obrigatório o Endereço do Nó"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Protocolo desconhecido ou em falta"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+ msgid "SELinux Type is required"
+-msgstr "O Tipo do SELinux Ã© obrigatório"
++msgstr "O Tipo SELinux Ã© obrigatório"
+ #: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+ #: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+@@ -561,94 +563,92 @@ msgstr "O Tipo do SELinux Ã© obrigatório"
+ #: ../semanage/seobject.py:1728
+ #, python-format
+ msgid "Could not create key for %s"
+-msgstr "Não foi possível criar a chave do %s"
++msgstr "Não foi possível criar a chave para %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Não foi possível verificar se o porto %s/%s está definido"
++msgstr "Não foi possível verificar se o endereço %s está definido"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Não Ã© possível criar uma chave para o %s"
++msgstr "Não foi possível criar um endereço para %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+ #, python-format
+ msgid "Could not create context for %s"
+-msgstr "Não foi possível criar o contexto de %s"
++msgstr "Não foi possível criar o contexto para %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Não foi possível definir o nome do %s"
++msgstr "Não foi possível definir uma máscara para %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Não foi possível definir o utilizador no contexto do ficheiro %s"
++msgstr "Não foi possível definir o utilizador no contexto do endereço para %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Não foi possível definir o papel no contexto do ficheiro %s"
++msgstr "Não foi possível definir o perfil no contexto do endereço para %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Não foi possível definir o tipo no contexto do ficheiro %s"
++msgstr "Não foi possível definir o tipo no contexto do endereço para %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Não foi possível definir os campos do MLS no contexto do ficheiro %s"
++msgstr "Não foi possível definir os campos mls no contexto do endereço para %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Não foi possível definir o contexto do ficheiro %s"
++msgstr "Não foi possível definir o contexto do endereço para %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Não foi possível adicionar o porto %s/%s"
++msgstr "Não foi possível adicionar o endereço %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "O porto %s/%s não está definido"
++msgstr "O endereço %s não está definido"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Não foi possível pesquisar o porto %s/%s"
++msgstr "Não foi possível pesquisar o endereço %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Não foi possível modificar o porto %s/%s"
++msgstr "Não foi possível modificar o endereço %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "O porto %s/%s está definido na política, não pode ser removido"
++msgstr "O endereço %s está definido na política, não pode ser removido"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Não foi possível remover a interface %s"
++msgstr "Não foi possível remover o endereço %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Não foi possível remover o mapeamento de autenticação do %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Não foi possível listar os portos"
++msgstr "Não foi possível listar os endereços"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -659,37 +659,38 @@ msgstr "Não foi possível verificar se a interface %s está definida"
+ #: ../semanage/seobject.py:1461
+ #, python-format
+ msgid "Could not create interface for %s"
+-msgstr "Não foi possível criar a interface %s"
++msgstr "Não foi possível criar a interface para %s"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "Não foi possível definir o utilizador no contexto da interface %s"
++msgstr "Não foi possível definir o utilizador no contexto da interface para %s"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "Não foi possível definir o papel no contexto da interface %s"
++msgstr "Não foi possível definir o perfil no contexto da interface para %s"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "Não foi possível definir o tipo no contexto da interface %s"
++msgstr "Não foi possível definir o tipo no contexto da interface para %s"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr "Não foi possível definir os campos de MLS no contexto da interface %s"
++msgstr ""
++"Não foi possível definir os campos mls no contexto da interface para %s"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr "Não foi possível definir o contexto da interface %s"
++msgstr "Não foi possível definir o contexto da interface para %s"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+ msgid "Could not set message context for %s"
+-msgstr "Não foi possível definir o contexto da mensagem %s"
++msgstr "Não foi possível definir o contexto da mensagem para %s"
+ #: ../semanage/seobject.py:1495
+ #, python-format
+@@ -722,9 +723,8 @@ msgid "Could not delete interface %s"
+ msgstr "Não foi possível remover a interface %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Não foi possível remover a interface %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -732,16 +732,16 @@ msgstr "Não foi possível listar as interfaces"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+-msgstr "Interface do SELinux"
++msgstr "Interface SELinux"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+ msgstr "Contexto"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "O contexto do ficheiro %s já está definido"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -749,29 +749,28 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "O utilizador de Linux %s não existe"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "Não foi possível definir o utilizador no contexto do ficheiro %s"
++msgstr "Não foi possível definir o utilizador no contexto do ficheiro para %s"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "Não foi possível definir o papel no contexto do ficheiro %s"
++msgstr "Não foi possível definir o perfil no contexto do ficheiro para %s"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "Não foi possível definir os campos do MLS no contexto do ficheiro %s"
++msgstr "Não foi possível definir os campos mls no contexto do ficheiro para %s"
+ #: ../semanage/seobject.py:1707
+-#, fuzzy
+ msgid "Invalid file specification"
+-msgstr "Especificação do Ficheiro"
++msgstr "Especificação de ficheiro inválida"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -788,80 +787,82 @@ msgstr ""
+ #: ../semanage/seobject.py:1876
+ #, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr "Não foi possível verificar se o contexto do ficheiro %s está definido"
++msgstr ""
++"Não foi possível verificar se o contexto de ficheiro para %s está definido"
+ #: ../semanage/seobject.py:1745
+ #, python-format
+ msgid "Could not create file context for %s"
+-msgstr "Não foi possível criar o contexto do ficheiro %s"
++msgstr "Não foi possível criar o contexto de ficheiro %s"
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "Não foi possível definir o tipo no contexto do ficheiro %s"
++msgstr "Não foi possível definir o tipo no contexto de ficheiro para %s"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr "Não foi possível definir o contexto do ficheiro %s"
++msgstr "Não foi possível definir o contexto de ficheiro para %s"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+ msgid "Could not add file context for %s"
+-msgstr "Não foi possível adicionar o contexto do ficheiro %s"
++msgstr "Não foi possível adicionar o contexto de ficheiro para %s"
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+-msgstr "Necessita de um 'setype', 'serange' ou 'seuser'"
++msgstr ""
++"Requer tipo SELinux (\"setype\"), intervalo SELinux (\"serange\") ou "
++"utilizador SELinux (\"seuser\")"
+ #: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+ #, python-format
+ msgid "File context for %s is not defined"
+-msgstr "O contexto do ficheiro %s não está definido"
++msgstr "O contexto de ficheiro para %s não está definido"
+ #: ../semanage/seobject.py:1800
+ #, python-format
+ msgid "Could not query file context for %s"
+-msgstr "Não foi possível pesquisar o contexto do ficheiro %s"
++msgstr "Não foi possível pesquisar o contexto de ficheiro para %s"
+ #: ../semanage/seobject.py:1826
+ #, python-format
+ msgid "Could not modify file context for %s"
+-msgstr "Não foi possível modificar o contexto do ficheiro %s"
++msgstr "Não foi possível modificar o contexto de ficheiro para %s"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Não foi possível listar os contextos do ficheiro"
++msgstr "Não foi possível listar os contextos de ficheiros"
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Não foi possível remover o contexto do ficheiro %s"
++msgstr "Não foi possível remover o contexto de ficheiro %s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+ msgid "File context for %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"O contexto do ficheiro %s está definido na política, não pode ser removido"
++"O contexto de ficheiro %s está definido na política, não pode ser removido"
+ #: ../semanage/seobject.py:1884
+ #, python-format
+ msgid "Could not delete file context for %s"
+-msgstr "Não foi possível remover o contexto do ficheiro %s"
++msgstr "Não foi possível remover o contexto de ficheiro para %s"
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+-msgstr "Não foi possível listar os contextos do ficheiro"
++msgstr "Não foi possível listar os contextos de ficheiro"
+ #: ../semanage/seobject.py:1903
+ msgid "Could not list local file contexts"
+-msgstr "Não foi possível listar os contextos do ficheiro local"
++msgstr "Não foi possível listar os contextos de ficheiro locais"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+-msgstr "Contexto Fich. do SELinux"
++msgstr "SELinux fcontext"
+ #: ../semanage/seobject.py:1936
+ msgid "type"
+@@ -874,102 +875,100 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "Contexto Fich. do SELinux"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+ #, python-format
+ msgid "Could not check if boolean %s is defined"
+-msgstr "Não foi possível verificar se o booleano %s está definido"
++msgstr "Não foi possível verificar se o tipo booleano %s está definido"
+ #: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+ #, python-format
+ msgid "Boolean %s is not defined"
+-msgstr "O booleano %s não está definido"
++msgstr "O tipo booleano %s não está definido"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+ msgid "Could not query file context %s"
+-msgstr "Não foi possível pesquisar o contexto do ficheiro %s"
++msgstr "Não foi possível pesquisar o contexto de ficheiro %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Precisa de indicar um prefixo"
++msgstr "Precisa de indicar um dos seguintes valores: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Não foi possível remover o booleano %s"
++msgstr "Não foi possível definir o valor activo do booleano %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+ msgid "Could not modify boolean %s"
+-msgstr "Não foi possível modificar o booleano %s"
++msgstr "Não foi possível modificar o tipo booleano %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Formato inválido %s: Registo %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr "O booleano %s está definido na política, não pode ser removido"
++msgstr "O tipo booleano %s está definido na política, não pode ser removido"
+ #: ../semanage/seobject.py:2052
+ #, python-format
+ msgid "Could not delete boolean %s"
+-msgstr "Não foi possível remover o booleano %s"
++msgstr "Não foi possível remover o tipo booleano %s"
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+ msgid "Could not list booleans"
+-msgstr "Não foi possível listar os booleanos"
++msgstr "Não foi possível listar os tipos booleanos"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "desconhecido"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "desligado"
+ #: ../semanage/seobject.py:2117
+-#, fuzzy
+ msgid "on"
+-msgstr "CRON"
++msgstr "ligado"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr "Booleano do SELinux"
++msgstr "SELinux boolean"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "Estado"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "Descrição"
+ #: ../newrole/newrole.c:201
+ #, c-format
+ msgid "failed to set PAM_TTY\n"
+-msgstr "não foi possível definir o PAM_TTY\n"
++msgstr "não foi possível definir PAM_TTY\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+ msgstr ""
+-"newrole: esgotamento da lista de configurações dos nomes dos serviços\n"
++"newrole: a tabela de hash da configuração dos nomes dos serviços esgotou-se\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+@@ -979,7 +978,7 @@ msgstr "newrole:  %s:  erro na linha %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+ msgid "cannot find valid entry in the passwd file.\n"
+-msgstr "não foi possível encontrar um item válido no ficheiro 'passwd'.\n"
++msgstr "não foi possível encontrar uma entrada válida no ficheiro de senhas.\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+@@ -989,7 +988,7 @@ msgstr "Sem memória!\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr "Erro! A linha de comandos não Ã© válida.\n"
++msgstr "Erro!  A consola não Ã© válida.\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+@@ -999,7 +998,7 @@ msgstr "Não foi possível limpar o ambiente\n"
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+ msgid "Error changing uid, aborting.\n"
+-msgstr "Erro ao mudar de UID, a interromper.\n"
++msgstr "Erro ao mudar o uid, a interromper.\n"
+ #: ../newrole/newrole.c:612
+ #, c-format
+@@ -1009,118 +1008,117 @@ msgstr "Erro ao reiniciar o KEEPCAPS, a interromper\n"
+ #: ../newrole/newrole.c:635
+ #, c-format
+ msgid "Error connecting to audit system.\n"
+-msgstr "Erro ao ligar-se ao sistema de auditoria.\n"
++msgstr "Erro ao conectar ao sistema de auditoria.\n"
+ #: ../newrole/newrole.c:641
+ #, c-format
+ msgid "Error allocating memory.\n"
+-msgstr "Erro ao reservar memória.\n"
++msgstr "Erro ao alocar memória.\n"
+ #: ../newrole/newrole.c:648
+ #, c-format
+ msgid "Error sending audit message.\n"
+-msgstr "Erro ao enviar a mensagem de auditoria.\n"
++msgstr "Erro ao enviar mensagem de auditoria.\n"
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr "Não Ã© possível determinar o modo de aplicação do SELinux.\n"
++msgstr "Não Ã© possível determinar o modo de actuação forçada do SELinux.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr "Erro! Não foi possível aceder ao %s.\n"
++msgstr "Erro! Não foi possível abrir %s.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s!  Não foi possível obter o contexto actual do %s; o TTY não mudará de "
+-"etiqueta.\n"
++"%s!  Não foi possível obter o contexto actual para %s, etiqueta do tty "
++"inalterada.\n"
+ #: ../newrole/newrole.c:715
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s!  Não foi possível obter o novo contexto do %s; o TTY não mudará de "
+-"etiqueta.\n"
++"%s!  Não foi possível obter um novo contexto para %s, etiqueta do tty "
++"inalterada.\n"
+ #: ../newrole/newrole.c:725
+ #, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr "%s!  Não foi possível definir o novo contexto do %s\n"
++msgstr "%s!  Não foi possível definir um novo contexto para %s\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+ msgid "%s changed labels.\n"
+-msgstr "O %s mudou de etiquetas.\n"
++msgstr "%s alterou etiquetas.\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr "Atenção!  Não foi possível repor o contexto do %s\n"
++msgstr "Atenção!  Não foi possível repor o contexto para %s\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+ msgid "Error: multiple roles specified\n"
+-msgstr "Erro: foram definidos vários papéis\n"
++msgstr "Erro: foram especificados vários perfis\n"
+ #: ../newrole/newrole.c:843
+ #, c-format
+ msgid "Error: multiple types specified\n"
+-msgstr "Erro : foram definidos vários tipos\n"
++msgstr "Erro : foram especificados vários tipos\n"
+ #: ../newrole/newrole.c:850
+ #, c-format
+ msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-"Desculpe, mas o -l só pode ser usado com o suporte para MLS do SELinux.\n"
++msgstr "Desculpe, o -l pode ser utilizado com o suporte MLS do SELinux.\n"
+ #: ../newrole/newrole.c:855
+ #, c-format
+ msgid "Error: multiple levels specified\n"
+-msgstr "Erro: foram definidos vários níveis\n"
++msgstr "Erro: foram especificados vários níveis\n"
+ #: ../newrole/newrole.c:865
+-#, fuzzy, c-format
++#, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+ msgstr ""
+-"Erro: não tem permissões para alterar os níveis num terminal não-seguro\n"
++"Erro: não tem permissões para alterar os níveis num terminal inseguro \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr "Não foi possível obter o tipo predefinido.\n"
++msgstr "Não foi possível obter o tipo por omissão.\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+ msgid "failed to get new context.\n"
+-msgstr "não foi possível obter o novo contexto.\n"
++msgstr "não foi possível obter um novo contexto.\n"
+ #: ../newrole/newrole.c:908
+ #, c-format
+ msgid "failed to set new role %s\n"
+-msgstr "não foi possível definir o novo papel %s\n"
++msgstr "não foi possível definir um novo perfil %s\n"
+ #: ../newrole/newrole.c:915
+ #, c-format
+ msgid "failed to set new type %s\n"
+-msgstr "não foi possível definir o novo tipo %s\n"
++msgstr "não foi possível definir um novo tipo %s\n"
+ #: ../newrole/newrole.c:925
+ #, c-format
+ msgid "failed to build new range with level %s\n"
+-msgstr "não foi possível criar um novo intervalo com o nível %s\n"
++msgstr "não foi possível construir um novo intervalo com o nível %s\n"
+ #: ../newrole/newrole.c:930
+ #, c-format
+ msgid "failed to set new range %s\n"
+-msgstr "não foi possível definir o novo intervalo %s\n"
++msgstr "não foi possível definir um novo intervalo %s\n"
+ #: ../newrole/newrole.c:938
+ #, c-format
+ msgid "failed to convert new context to string\n"
+-msgstr "não foi possível converter o novo contexto para texto\n"
++msgstr "não foi possível converter o novo contexto para string\n"
+ #: ../newrole/newrole.c:943
+ #, c-format
+@@ -1130,7 +1128,7 @@ msgstr "o %s não Ã© um contexto válido\n"
+ #: ../newrole/newrole.c:950
+ #, c-format
+ msgid "Unable to allocate memory for new_context"
+-msgstr "Não Ã© possível reservar memória para o novo_contexto"
++msgstr "Não Ã© possível alocar memória para \"new_context\""
+ #: ../newrole/newrole.c:976
+ #, c-format
+@@ -1140,48 +1138,47 @@ msgstr "Não Ã© possível obter o conjunto de sinais vazios\n"
+ #: ../newrole/newrole.c:984
+ #, c-format
+ msgid "Unable to set SIGHUP handler\n"
+-msgstr "Não Ã© possível atribuir a rotina do SIGHUP\n"
++msgstr "Não Ã© possível definir o descritor da rotina SIGHUP\n"
+ #: ../newrole/newrole.c:1053
+ #, c-format
+ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-"Desculpe, mas o 'newrole' só pode ser usado num 'kernel' com SELinux.\n"
++msgstr "Desculpe, mas o 'newrole' só pode ser utilizado num kernel SELinux.\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+ msgid "failed to get old_context.\n"
+-msgstr "não foi possível obter o contexto antigo.\n"
++msgstr "não foi possível obter o contexto antigo (\"old_context\").\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Erro! Não foi possível obter a informação do TTY.\n"
++msgstr "Erro! Não foi possível obter informação do tty.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr "erro ao ler a configuração de serviços do PAM.\n"
++msgstr "erro ao ler a configuração do serviço PAM.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+ msgid "newrole: incorrect password for %s\n"
+-msgstr "newrole: a senha do %s Ã© incorrecta\n"
++msgstr "newrole: senha incorrecta para %s\n"
+ #: ../newrole/newrole.c:1160
+ #, c-format
+ msgid "newrole: failure forking: %s"
+-msgstr "newrole: não foi possível criar um sub-processo: %s"
++msgstr "newrole: não foi possível criar um novo processo (\"fork\"): %s"
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+ msgid "Unable to restore tty label...\n"
+-msgstr "Não foi possível repor a legenda do TTY...\n"
++msgstr "Não foi possível repor a legenda do tty...\n"
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+ msgid "Failed to close tty properly\n"
+-msgstr "não foi possível fechar devidamente o TTY\n"
++msgstr "não foi possível fechar o tty adequadamente\n"
+ #: ../newrole/newrole.c:1224
+ #, c-format
+@@ -1191,31 +1188,35 @@ msgstr "Não foi possível fechar os descritores.\n"
+ #: ../newrole/newrole.c:1251
+ #, c-format
+ msgid "Error allocating shell's argv0.\n"
+-msgstr "Erro ao reservar o argv0 da linha de comandos.\n"
++msgstr "Erro ao alocar o argumento argv0 da consola.\n"
+ #: ../newrole/newrole.c:1287
+ #, c-format
+ msgid "Unable to restore the environment, aborting\n"
+-msgstr "Não foi possível repor o ambiente, a interromper\n"
++msgstr "Não foi possível restaurar o ambiente, a interromper\n"
+ #: ../newrole/newrole.c:1298
+ msgid "failed to exec shell\n"
+-msgstr "não foi possível executar a linha de comandos\n"
++msgstr "não foi possível executar a consola\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "utilização:  %s [-q]\n"
++msgstr "utilização:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+ msgstr ""
++"%s:  Esta política já foi carregada e o carregamento inicial já foi "
++"requisitado.\n"
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:  Não Ã© possível carregar a política:  %s\n"
++msgstr ""
++"%s:  Não Ã© possível carregar a política e foi requerido o modo de execução "
++"forçada:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1224,7 +1225,7 @@ msgstr "%s:  Não Ã© possível carregar a política:  %s\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+-msgstr "É necessária pelo menos uma categoria"
++msgstr "Requer pelo menos uma categoria"
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+@@ -1234,12 +1235,12 @@ msgstr "Não Ã© possível modificar os níveis de sensibilidade com o '+' no %s"
+ #: ../scripts/chcat:110
+ #, c-format
+ msgid "%s is already in %s"
+-msgstr "O %s já está em %s"
++msgstr "%s já está em %s"
+ #: ../scripts/chcat:188 ../scripts/chcat:198
+ #, c-format
+ msgid "%s is not in %s"
+-msgstr "O %s não está em %s"
++msgstr "%s não está em %s"
+ #: ../scripts/chcat:267 ../scripts/chcat:272
+ msgid "Can not combine +/- with other types of categories"
+@@ -1291,7 +1292,7 @@ msgstr "Utilização %s -L -l utilizador"
+ #: ../scripts/chcat:333
+ msgid "Use -- to end option list.  For example"
+-msgstr "Use o -- para terminar a lista de opções. Por exemplo"
++msgstr "Utilize -- para terminar a lista de opções. Por exemplo"
+ #: ../scripts/chcat:334
+ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+@@ -1299,2179 +1300,2098 @@ msgstr "chcat -- -ConfidencialEmpresa /documentos/plano-negócio.odt"
+ #: ../scripts/chcat:335
+ msgid "chcat -l +CompanyConfidential juser"
+-msgstr "chcat -l +ConfidencialEmpresa ze"
++msgstr "chcat -l +ConfidencialEmpresa jose"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Erro nas Opções %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Não Ã© possível aceder ao %s: as traduções não são suportadas nas máquinas "
+-#~ "não-MLS"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "Nível"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "Tradução"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "As traduções não poderão conter espaços '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Nível '%s' Inválido "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "O %s já está definido nas traduções"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "O %s não está definido nas traduções"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "O mapeamento de autenticação do %s já está definido"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "adicionar o mapeamento do utilizador do SELinux"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "O utilizador %s do SELinux já está definido"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "O porto Ã© obrigatório"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "O porto %s/%s já está definido"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "A interface %s já está definida"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Erro ao iniciar as capacidades, a interromper.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Erro ao atribuir as capacidades, a interromper\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Erro ao atribuir o KEEPCAPS, a interromper\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Erro ao remover as capacidades, a interromper\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Erro ao remover a capacidade de SETUID, a interromper\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Erro ao libertar as capacidades\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "as traduções não são suportadas em máquinas não-MLS"
+-
+-#~ msgid "Boolean"
+-#~ msgstr "Booleano"
+-
+-#, fuzzy
+-#~ msgid "all"
+-#~ msgstr "Tudo"
+-
+-#~ msgid "File Labeling"
+-#~ msgstr "Legendagem de Ficheiros"
+-
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "Especificação\n"
+-#~ "do Ficheiro"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Contexto\n"
+-#~ "do SELinux"
+-
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Tipo de\n"
+-#~ "Ficheiro"
+-
+-#~ msgid "User Mapping"
+-#~ msgstr "Mapeamento de Utilizadores"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "Nome da\n"
+-#~ "Conta"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "Utilizador\n"
+-#~ "do SELinux"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "Intervalo\n"
+-#~ "do MLS/MCS"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "A conta '%s' Ã© obrigatória"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "Módulo da Política"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "Desactivar a Auditoria"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "Activar a Auditoria"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "Carregar o Módulo da Política"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "José Nuno Pires <jncp@netcabo.pt>, 2006."
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "Ferramenta de Geração de Políticas do SELinux"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "Esta ferramenta pode ser usada para gerar uma plataforma de políticas, "
+-#~ "para confinar as aplicações ou os utilizadores no SELinux.   \n"
+-#~ "A ferramenta gera:\n"
+-#~ "Ficheiro de aplicação de tipos (te)\n"
+-#~ "Ficheiro da interface (if)\n"
+-#~ "Ficheiro de contextos dos ficheiros (fc)\n"
+-#~ "Programa (sh) - usado para compilar e instalar a política. "
+-
+-#, fuzzy
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "Seleccionar o perfil da aplicação ou utilizador a confinar."
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Aplicações</b>"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "Os Servidores-Padrão do Init são serviços que só iniciados no arranque "
+-#~ "através dos programas do 'init'. Normalmente Ã© necessário um programa no "
+-#~ "'/etc/init.d'"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "Servidor do Init Normal"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "Os Serviços de Internet são servidores iniciados pelo 'xinetd'"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Serviços de Internet (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "As Aplicações/Programas Web (CGI) são programas iniciados pelo servidor "
+-#~ "Web (Apache)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Aplicação/Programa Web (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "Uma Aplicação do Utilizador Ã© qualquer aplicação que deseje confinar e "
+-#~ "que seja iniciada por um utilizador"
+-
+-#~ msgid "User Application"
+-#~ msgstr "Aplicação do Utilizador"
+-
+-#, fuzzy
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Utilizadores</b>"
+-
+-#, fuzzy
+-#~ msgid "User Role"
+-#~ msgstr "Papel"
+-
+-#, fuzzy
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Utilizadores</b>"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "Seleccione Administrador, se este utilizador será usado para administrar "
+-#~ "a máquina enquanto estiver a correr como 'root'. Este utilizador não se "
+-#~ "poderá ligar directamente ao sistema."
+-
+-#, fuzzy
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Administrador"
+-
+-#, fuzzy
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "Seleccionar o perfil da aplicação ou utilizador a confinar."
+-
+-#~ msgid "Name"
+-#~ msgstr "Nome"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "Indique a localização completa do executável a confinar."
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#, fuzzy
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr ""
+-#~ "Indique um nome Ãºnico para o tipo do utilizador ou aplicação confinado."
+-
+-#~ msgid "Executable"
+-#~ msgstr "Executável"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Programa do Init"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "Indique a localização completa do programa do 'init' usada para iniciar a "
+-#~ "aplicação confinada."
+-
+-#, fuzzy
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr ""
+-#~ "Seleccione os papéis ou perfis para os quais este utilizador poderá mudar"
+-
+-#, fuzzy
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "Seleccione os domínios do utilizador adicionais para a transição"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "Seleccione os domínios de aplicações para onde deseja que este utilizador "
+-#~ "transite."
+-
+-#, fuzzy
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "Seleccione os domínios que este utilizador irá administrar"
+-
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr ""
+-#~ "Seleccione os domínios que gostaria que este utilizador administrasse."
+-
+-#, fuzzy
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "Seleccione os domínios do utilizador adicionais para a transição"
+-
+-#, fuzzy
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr ""
+-#~ "Indique uma lista separada por vírgulas de portos de UDP aonde esta "
+-#~ "aplicação se liga."
+-
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>Portos de TCP</b>"
+-
+-#, fuzzy
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "Permitir a um utilizador/aplicação confinado associar-se a qualquer porto "
+-#~ "de UDP"
+-
+-#~ msgid "All"
+-#~ msgstr "Tudo"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "Permitir a um utilizador/aplicação invocar o 'bindresvport' com 0, para "
+-#~ "se associar aos portos 600-1024"
+-
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Indique uma lista separada por vírgulas de portos de UDP aonde esta "
+-#~ "aplicação se liga."
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "Portos Não-Reservados (> 1024)"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "Seleccionar os Portos"
+-
+-#, fuzzy
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "Permitir a um utilizador/aplicação associar-se a qualquer porto de UDP > "
+-#~ "1024"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>Portos de UDP</b>"
+-
+-#, fuzzy
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "Indique uma lista separada por vírgulas de portos de UDP aonde esta "
+-#~ "aplicação se liga."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Indique uma lista separada por vírgulas de portos de UDP aonde esta "
+-#~ "aplicação se liga."
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Indique uma lista separada por vírgulas de portos de UDP aonde esta "
+-#~ "aplicação se liga."
+-
+-#, fuzzy
+-#~ msgid "Select common application traits"
+-#~ msgstr "Registos Comuns da Aplicação"
+-
+-#, fuzzy
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "A aplicação usa o 'syslog' para registar mensagens      "
+-
+-#, fuzzy
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "A aplicação usa o '/tmp' para criar/manipular ficheiros temporários"
+-
+-#, fuzzy
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "A aplicação usa o PAM para se autenticar"
+-
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Erro ao enviar a mensagem de auditoria.\n"
+-
+-#, fuzzy
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr ""
+-#~ "Seleccione as pastas que pertencem Ã  aplicação confinada ou onde esta "
+-#~ "grava"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "Adicione os Ficheiros/Pastas onde esta aplicação terá necessidade de "
+-#~ "\"Gravar\": ficheiros do PID, Ficheiros de Registo, Ficheiros do /var/"
+-#~ "lib..."
+-
+-#, fuzzy
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "Seleccione os ficheiros que a aplicação confinada cria ou grava"
+-
+-#, fuzzy
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "Indique a localização completa do programa do 'init' usada para iniciar a "
+-#~ "aplicação confinada."
+-
+-#, fuzzy
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "Seleccione a pasta onde gerar os ficheiros de políticas"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "Pasta da Política"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "Ficheiros da Política Gerados"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Esta ferramenta irá gerar o seguinte: Aplicação do Tipo (te), Contexto "
+-#~ "dos Ficheiros(fc), Interface(if), Programa(sh).\n"
+-#~ "Execute o programa para compilar/instalar e legendar de novo os ficheiros/"
+-#~ "pastas. Depois, poderá colocar a máquina no modo permissivo (setenforce "
+-#~ "0). \n"
+-#~ "Execute/reinicie a aplicação para gerar as mensagens do 'avc'.\n"
+-#~ "Use o 'audit2allow -R' para gerar regras adicionais para o ficheiro TE.\n"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Esta ferramenta irá gerar o seguinte: Aplicação do Tipo (te), Contexto "
+-#~ "dos Ficheiros(fc), Interface(if), Programa(sh).\n"
+-#~ "Execute o programa para compilar/instalar e legendar de novo os ficheiros/"
+-#~ "pastas. Depois, poderá colocar a máquina no modo permissivo (setenforce "
+-#~ "0). \n"
+-#~ "Execute/reinicie a aplicação para gerar as mensagens do 'avc'.\n"
+-#~ "Use o 'audit2allow -R' para gerar regras adicionais para o ficheiro TE.\n"
+-
+-#, fuzzy
+-#~ msgid "Boolean Name"
+-#~ msgstr "Booleano"
+-
+-#~ msgid "Role"
+-#~ msgstr "Papel"
+-
+-#~ msgid "Application"
+-#~ msgstr "Aplicação"
+-
+-#, fuzzy
+-#~ msgid "%s must be a directory"
+-#~ msgstr "Permitir ao 'mount' montar qualquer pasta"
+-
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Tem de indicar um nome"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "Seleccione o ficheiro executável a confinar."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "Seleccione o ficheiro do programa do 'init' a confinar."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "Seleccione os ficheiros que a aplicação confinada cria ou grava"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "Seleccione as pastas que pertencem Ã  aplicação confinada ou onde esta "
+-#~ "grava"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "Seleccione a pasta onde gerar os ficheiros de políticas"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "Tem de indicar um nome"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Tem de indicar um executável"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "Configurar o SELinux"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "Os portos deverão ser números de 1 a %d "
+-
+-#, fuzzy
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "Tem de indicar um nome para o seu processo confinado"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "Os tipos do UTILIZADOR não permitem executáveis"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "Só as aplicações de SERVIDORES poderão usar um programa do 'init'"
+-
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "O 'use_syslog' deverá ser um valor booleano "
+-
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "Os Tipos do UTILIZADOR obtém automaticamente um tipo 'tmp'"
+-
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr ""
+-#~ "Tem de indicar a localização do executável para o seu processo confinado"
+-
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Ficheiro de Aplicação do Tipo"
+-
+-#~ msgid "Interface file"
+-#~ msgstr "Ficheiro de interface"
+-
+-#~ msgid "File Contexts file"
+-#~ msgstr "Ficheiro de contexto dos ficheiros"
+-
+-#~ msgid "Setup Script"
+-#~ msgstr "Programa de Configuração"
+-
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Tipo do Porto\n"
+-#~ "de SELinux"
+-
+-#~ msgid "Protocol"
+-#~ msgstr "Protocolo"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "Nível do\n"
+-#~ "MLS/MCS"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "Porto"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "O número de porto \"%s\" não Ã© válido. 0 < NÚMERO PORTO < 65536 "
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "Vista de Grupo"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "Protecção de Serviços do SELinux"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o servidor 'acct'"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "Administração"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "Permitir a todos os servidores criarem ficheiros 'core' no /"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "Permitir a todos os servidores usarem TTYs não reservados"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "Privilégios do Utilizador"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir Ã s contas de utilizadores 'gadmin' do SELinux executarem "
+-#~ "ficheiros na sua pasta pessoal ou na /tmp"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir Ã s contas convidadas do SELinux executarem ficheiros nas suas "
+-#~ "pastas pessoais ou na /tmp"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "Protecção de Memória"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "Permitir a pilha executável do Java"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Montar"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "Permitir ao 'mount' montar qualquer ficheiro"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "Permitir ao 'mount' montar qualquer pasta"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "Permitir a pilha executável do MPlayer"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "Permitir ao SSH executar o 'ssh-keysign'"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir Ã s contas 'staff' do SELinux executarem ficheiros nas suas "
+-#~ "pastas pessoais ou na /tmp"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir Ã s contas 'sysadm' do SELinux executarem ficheiros nas suas "
+-#~ "pastas pessoais ou na /tmp"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "Permitir Ã s contas não-confinadas do SELinux executarem ficheiros nas "
+-#~ "suas pastas pessoais ou na /tmp"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Configuração da Rede"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "Permitir o fluxo de pacotes não-legendados pela rede"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "Permitir Ã s contas 'user' do SELinux executarem ficheiros nas suas pastas "
+-#~ "pessoais ou na /tmp"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "Permitir a não-confinação do 'dyntrans' para o 'unconfined_execmem'"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Bases de Dados"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "Permitir ao utilizador ligar-se ao porto do MySQL"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "Permitir ao utilizador ligar-se ao porto do PostgreSQL"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "Servidor X"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "Permitir aos clientes escreverem na memória partilhada do X"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir Ã s contas 'xguest' do SELinux executarem ficheiros nas suas "
+-#~ "pastas pessoais ou na /tmp"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "Permitir aos servidores executarem com o NIS"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "Aplicações Web"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "Transitar o utilizador 'staff' do SELinux para o Domínio de Navegação Web"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "Transitar o utilizador 'sysadm' do SELinux para o Domínio de Navegação Web"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "Transitar o utilizador 'user' do SELinux para o Domínio de Navegação Web"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr ""
+-#~ "Transitar o utilizador 'xguest' do SELinux para o Domínio de Navegação Web"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr ""
+-#~ "Permitir aos Navegadores Web do 'staff' escrever nas pastas pessoais"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "Desactivar a protecção do SELinux para o Amanda"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "Desactivar a protecção do SELinux para o Amavis"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'apmd'"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'arpwatch'"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'auditd'"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'automount'"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "Desactivar a protecção do SELinux para o Avahi"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'bluetooth'"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'canna'"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'cardmgr'"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Desactivar a protecção do SELinux para o Servidor de 'Clusters'"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "Permitir ao 'cdrecord' ler conteúdo diverso: ficheiros de conteúdo não-"
+-#~ "fiável e temporário, NFS, Samba, dispositivos removíveis, etc"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'ciped'"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'clamd'"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'clamscan'"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'clvmd'"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'comsat'"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'courier'"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'cpucontrol'"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'cpuspeed'"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "CRON"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'crond'"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "Impressão"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr ""
+-#~ "Desactivar a protecção do SELinux para o serviço de infra-estrutura do "
+-#~ "'cupsd'"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'cupsd'"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'cupsd_lpd'"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'cvs'"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'cyrus'"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'dbskkd'"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'dbusd'"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'dccd'"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'dccifd'"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'dccm'"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'ddt'"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'devfsd'"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'dhcpc'"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'dhcpd'"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'dictd'"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "Permitir ao 'sysadm_t' iniciar directamente os serviços"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Desactivar a protecção do SELinux para o Evolution"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "Jogos"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "Desactivar a protecção do SELinux para os jogos"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "Desactivar a protecção do SELinux para os navegadores Web"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Desactivar a protecção do SELinux para o Thunderbird"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'distccd'"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'dmesg'"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'dnsmasq'"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'dovecot'"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'entropyd'"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "Desactivar a protecção do SELinux para o 'fetchmail'"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'fingerd'"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'freshclam'"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'fsdaemon'"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'gpm'"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'gss'"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'hal'"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "Compatibilidade"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "Não auditar as coisas marcadas como problemáticas mas que não são "
+-#~ "problemas de segurança"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'hostname'"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'hotplug'"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'howl'"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'hplip' do CUPS"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr ""
+-#~ "Desactivar a protecção do SELinux para o serviço 'rotatelogs' do HTTPD"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "Serviço do HTTPD"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'suexec' do HTTPD"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'hwclock'"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'i18n'"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'imazesrv'"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr ""
+-#~ "Desactivar a protecção do SELinux para os serviços-filhos do 'inetd'"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'inetd'"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'innd'"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'iptables'"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'ircd'"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'irqbalance'"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'iscsi'"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'jabberd'"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'kadmin'"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'klog'"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'krb5kdc'"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "Desactivar a protecção do SELinux para os serviços do 'ktalk'"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'kudzu'"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'locate'"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'lpd'"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'lrrd'"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'lvm'"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "Desactivar a protecção do SELinux para o 'mailman'"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "Permitir ao Evolution e Thunderbird lerem ficheiros do utilizador"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'mdadm'"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'monopd'"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "Permitir ao navegador Mozilla ler os ficheiros do utilizador"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'mrtg'"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'mysqld'"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'nagios'"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "Serviço de Nomes"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'named'"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'nessusd'"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "Desactivar a protecção do SELinux para o NetworkManager"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'nfsd'"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'nmbd'"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'nrpe'"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'nscd'"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'nsd'"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'ntpd'"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "Desactivar a protecção do SELinux para o Oddjob"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "Desactivar a protecção do SELinux para o 'oddjob_mkhomedir'"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'openvpn'"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'pam'"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'pegasus'"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'perdition'"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'portmap'"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'portslave'"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "Desactivar a protecção do SELinux para o 'postfix'"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'postgresql'"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "Permitir ao 'pppd' ser executado por um utilizador normal"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "Desactivar a protecção do SELinux para o 'pptp'"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'prelink'"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'privoxy'"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'ptal'"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'pxe'"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "Desactivar a protecção do SELinux para o 'pyzord'"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'quota'"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'radiusd'"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'radvd'"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'rdisc'"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'readahead'"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "Permitir aos programas lerem ficheiros em pastas fora do normal "
+-#~ "(default_t)"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "Desactivar a protecção do SELinux para o 'restorecond'"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'rhgb'"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "Desactivar a protecção do SELinux para o 'ricci'"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "Desactivar a protecção do SELinux para o 'ricci_modclusterd'"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'rlogind'"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'rpcd'"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "Desactivar a protecção do SELinux para o 'rshd'"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'rsync'"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr ""
+-#~ "Permitir ao SSH correr a partir do 'inetd' em vez de ser um servidor"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Permitir ao Samba partilhar as pastas do NFS"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Servidor de autenticação do SASL"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "Permitir ao servidor de autenticação do SASL ler o '/etc/shadow'"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "Permitir ao servidor do X mapear uma região de memória como executável e "
+-#~ "para escrita"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'saslauthd'"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'scannerdaemon'"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr ""
+-#~ "Não permitir a transição para o 'sysadm_t'; o 'sudo' e o 'su' são "
+-#~ "afectados"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "Não permitir a nenhum processo carregar módulos do 'kernel'"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr ""
+-#~ "Não permitir a nenhum processo modificar a política do SELinux no 'kernel'"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'sendmail'"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'setrans'"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'setroubleshoot'"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'slapd'"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'slrnpull'"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'smbd'"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'snmpd'"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'snort'"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'soundd'"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'sound'"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Spam Protection"
+-#~ msgstr "Protecção contra Spam"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'spamd'"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "Permitir ao 'spamd' aceder Ã s pastas pessoais"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Permitir ao servidor do Spam Assassin aceder Ã  rede"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'speedmgmt'"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "Permitir ao servidor Squid aceder Ã  rede"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'squid'"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'ssh'"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "Permitir as autenticações de SSH como 'sysadm_r:sysadm_t'"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "Permitir aos utilizadores 'staff_r' pesquisarem a pasta pessoal do "
+-#~ "'sysadm' e ler os ficheiros (como o ~/.bashrc)"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Túnel de SSL universal"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'stunnel'"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr ""
+-#~ "Permitir ao serviço 'stunnel' executar-se autonomamente, fora do 'xinetd'"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'swat'"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'sxid'"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'syslogd'"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr ""
+-#~ "Desactivar a protecção do SELinux para as tarefas do CRON do sistema"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'tcp'"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'telnet'"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'tftpd'"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'transproxy'"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'udev'"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'uml'"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Permitir ao 'xinetd' correr como não-confinado, incluindo os serviços que "
+-#~ "inicia e que não têm uma transição de domínio definida explicitamente"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Permitir aos programas 'rc' correrem como não-confinados, incluindo os "
+-#~ "serviços iniciados por um programa 'rc' que não tenha uma transição de "
+-#~ "domínio definida explicitamente"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "Permitir ao RPM ser executado como não-confinado"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "Permitir a execução não-confinada dos utilitários privilegiados como o "
+-#~ "'hotplug' e o 'insmod'"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'updfstab'"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'uptimed'"
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "Permitir ao 'user_r' aceder ao 'sysadm_r' com o 'su', 'sudo' ou o "
+-#~ "'userhelper'. Caso contrário, só o 'staff_r' o poderá fazer"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "Permitir aos utilizadores executarem o comando 'mount'"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "Permitir aos utilizadores normais acederem ao rato (só permitir o "
+-#~ "servidor X)"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "Permitir aos utilizadores executarem o comando 'dmesg'"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "Permitir aos utilizadores controlarem as interfaces de rede (também "
+-#~ "precisa do USERCTL=true)"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "Permitir a um utilizador normal executar o 'ping'"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr ""
+-#~ "Permitir a um utilizador escrever num 'noextattrfile' (FAT, CDROM, FLOPPY)"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "Permitir aos utilizadores gravarem em dispositivos USB"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "Permitir aos utilizadores executarem servidores do TCP (associar a portos "
+-#~ "e aceitar ligações do mesmo domínio e de utilizadores exteriores); se "
+-#~ "desactivar isto irá forçar o modo passivo do FTP e poderá alterar outros "
+-#~ "protocolos"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "Permitir ao utilizador fazer um 'stat' em ficheiros de TTY"
+-
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'uucpd'"
+-
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'vmware'"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'watchdog'"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'winbind'"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'xdm'"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "Permitir as autenticações no 'xdm' como 'sysadm_r:sysadm_t'"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'xen'"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "Permitir ao Xen ler/escrever em dispositivos físicos do disco"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'xfs'"
+-
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "Desactivar a protecção do SELinux para o 'constrol' do Xen"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'ypbind'"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o Servidor de Senhas do NIS"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'ypserv'"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr ""
+-#~ "Desactivar a protecção do SELinux para o Servidor de Transferências do NIS"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Permitir ao utilizador 'webadm' do SELinux gerir as pastas pessoais dos "
+-#~ "utilizadores não-privilegiados"
+-
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Permitir ao utilizador 'webadm' do SELinux ler as pastas pessoais dos "
+-#~ "utilizadores não-privilegiados"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "Tem a certeza que deseja remover o %s '%s'?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "Apagar o %s"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "Adicionar o %s"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "Modificar o %s"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "Permissivo"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "Obrigatório"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "A mudança do tipo de política obriga a voltar a etiquetar todo o sistema "
+-#~ "de ficheiros no próximo arranque. Esta operação demora bastante tempo, "
+-#~ "dependendo do tamanho do sistema de ficheiros.  Deseja continuar?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "A mudança para a desactivação do SELinux necessita de um reinício do "
+-#~ "sistema. Isto não Ã© recomendado. Se optar por activar de novo o SELinux, "
+-#~ "o sistema terá de ser legendado de novo. Se apenas quiser ver se o "
+-#~ "SELinux está a provocar algum problema no seu sistema, poderá mudar para "
+-#~ "o modo permissivo, que só irá registar os erros e não irá aplicar a "
+-#~ "política do SELinux. O modo permissivo não necessita de reiniciar o "
+-#~ "sistema. Deseja continuar?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Activar o SELinux obriga a voltar a etiquetar todo o sistema de ficheiros "
+-#~ "no próximo arranque. Esta operação demora bastante tempo, dependendo do "
+-#~ "tamanho do sistema de ficheiros.  Deseja continuar?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "Adicionar um Mapeamento de Contas do SELinux"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "Adicionar Portos de Rede ao SELinux"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "Tipo do SELinux"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "TCP\n"
+-#~ "UDP"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "Nível MLS/MCS\n"
+-#~ "do SELinux"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "Especificação do Ficheiro"
+-
+-#~ msgid "File Type"
+-#~ msgstr "Tipo de Ficheiro"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "todos os ficheiros\n"
+-#~ "ficheiro normal\n"
+-#~ "pasta\n"
+-#~ "dispositivo de carácter\n"
+-#~ "dispositivo de bloco\n"
+-#~ "'socket'\n"
+-#~ "ligação simbólica\n"
+-#~ "'pipe' com nome\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Adicionar o Utilizador do SELinux"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "Administração do SELinux"
+-
+-#~ msgid "Add"
+-#~ msgstr "Adicionar"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "_Propriedades"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "Apa_gar"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "Seleccionar o Objecto da Gestão"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Seleccionar:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "Modo de Aplicação Predefinido do Sistema"
+-
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "Modo de Aplicação Actual"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "Tipo de Política Predefinida do Sistema: "
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "Seleccione se quiser legendar ou etiquetar de novo todo o sistema de "
+-#~ "ficheiros no próximo arranque. Esta nova legendagem poderá levar bastante "
+-#~ "tempo, dependendo do tamanho do sistema. Se estiver a alterar os tipos de "
+-#~ "políticas ou mudar do modo desactivado para o obrigatório, Ã© necessária "
+-#~ "uma nova legendagem."
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Legendar no próximo arranque."
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "label37"
+-#~ msgstr "label37"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "Filtro"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "label50"
+-#~ msgstr "label50"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "Adicionar um Contexto de Ficheiros"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "Modificar o Contexto de Ficheiros"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "Apagar o Contexto de Ficheiros"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid "label38"
+-#~ msgstr "label38"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "Adicionar um Mapeamento de Utilizadores do SELinux"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Modificar o Mapeamento de Utilizadores do SELinux"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Apagar o Mapeamento de Utilizadores do SELinux"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "label39"
+-#~ msgstr "label39"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "Adicionar uma Tradução"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "Modificar a Tradução"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "Apagar a Tradução"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "label41"
+-#~ msgstr "label41"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Modificar o Utilizador do SELinux"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "label40"
+-#~ msgstr "label40"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "Adicionar um Porto de Rede"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "Editar o Porto de Rede"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "Apagar o Porto de Rede"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "label42"
+-#~ msgstr "label42"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "Gerar um novo módulo de política"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "Carregar o módulo de políticas"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "Remover o módulo de política carregável"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "Desactivar as regras de auditoria adicionais, que não são normalmente "
+-#~ "comunicadas nos ficheiros de registo."
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "label44"
+-#~ msgstr "label44"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "Nível de Sensibilidade"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "O utilizador do SELinux '%s' Ã© obrigatório"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "É necessário um valor"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "Assistente de Geração de Políticas do SELinux"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "label25"
+-#~ msgstr "label25"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "label26"
+-#~ msgstr "label26"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "label28"
+-#~ msgstr "label28"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "label30"
+-#~ msgstr "label30"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "label31"
+-#~ msgstr "label31"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "label32"
+-#~ msgstr "label32"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid "label33"
+-#~ msgstr "label33"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "Permitir a um utilizador/aplicação confinado associar-se a qualquer porto "
+-#~ "de TCP"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr "Use esta opção se a sua aplicação invoca o 'bindresvport' com 0."
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "Permitir a um utilizador/aplicação associar-se a qualquer porto de TCP > "
+-#~ "1024"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "Portos Não-Reservados (> 1024)"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Indique uma lista separada por vírgulas de portos de TCP onde esta "
+-#~ "aplicação se associa."
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "label34"
+-#~ msgstr "label34"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "label35"
+-#~ msgstr "label35"
+-
+-#, fuzzy
+-#~ msgid "label51"
+-#~ msgstr "label25"
+-
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "Obrigatório\n"
+-#~ "Permissivo\n"
+-#~ "Desactivado\n"
+-
+-#~ msgid "value"
+-#~ msgstr "valor"
+-
+-#~ msgid "You must be root to run %s."
+-#~ msgstr "Deverá ser o 'root' para executar o %s."
+-
+-#~ msgid "Other"
+-#~ msgstr "Outro"
+-
+-#~ msgid ""
+-#~ "Select XWindows login user, if this is a user who will login to a machine "
+-#~ "via X"
+-#~ msgstr ""
+-#~ "Seleccione o Utilizador de Conta no XWindows, se este for um utilizador "
+-#~ "que se irá autenticar numa máquina através do X"
+-
+-#~ msgid "XWindows Login User"
+-#~ msgstr "Utilizador de Conta no XWindows"
+-
+-#~ msgid ""
+-#~ "Select Terminal Login User, if this user will login to a machine only via "
+-#~ "a terminal or remote login"
+-#~ msgstr ""
+-#~ "Seleccione o Utilizador de Conta no Terminal se este utilizador se irá "
+-#~ "autenticar apenas através de um terminal ou ligação remota"
+-
+-#~ msgid "Terminal Login User"
+-#~ msgstr "Utilizador de Conta no Terminal"
+-
+-#~ msgid "Name of application to be confined"
+-#~ msgstr "Nome da aplicação a confinar"
+-
+-#~ msgid "Incoming Network Port Connections"
+-#~ msgstr "Ligações de Portos de Rede Recebidas"
+-
+-#~ msgid "Outgoing Network Port Connections"
+-#~ msgstr "Ligações a Portos de Rede Ã  Saída"
+-
+-#~ msgid ""
+-#~ "Application uses nsswitch or translates UID's (daemons that run as non "
+-#~ "root)"
+-#~ msgstr ""
+-#~ "A aplicação usa o 'nsswitch' ou traduz os UIDs (servidores que se "
+-#~ "executam como não-root)"
+-
+-#~ msgid "Files and Directories"
+-#~ msgstr "Ficheiros e Pastas"
+-
+-#~ msgid "Generate policy in this directory"
+-#~ msgstr "Gerar uma política nesta pasta"
+-
+-#~ msgid "Login"
+-#~ msgstr "Autenticação"
+-
+-#~ msgid "Allow direct login to the console device. Requiered for System 390"
+-#~ msgstr ""
+-#~ "Permitir a autenticação directa no dispositivo de consola. Obrigatório no "
+-#~ "System 390"
+-
+-#~ msgid "Allow cvs daemon to read shadow"
+-#~ msgstr "Permitir ao servidor do CVS ler o 'shadow'"
+-
+-#~ msgid ""
+-#~ "Allow unconfined executables to make their heap memory executable.  Doing "
+-#~ "this is a really bad idea. Probably indicates a badly coded executable, "
+-#~ "but could indicate an attack. This executable should be reported in "
+-#~ "bugzilla"
+-#~ msgstr ""
+-#~ "Permitir aos executáveis não-confinados tornarem a sua memória de dados "
+-#~ "executável. Fazer isto Ã© realmente uma má ideia. Provavelmente poderá ser "
+-#~ "um executável mal-codificado, mas também poderá indicar um ataque. Este "
+-#~ "executável deverá ser notificado no Bugzilla"
+-
+-#~ msgid ""
+-#~ "Allow unconfined executables to map a memory region as both executable "
+-#~ "and writable, this is dangerous and the executable should be reported in "
+-#~ "bugzilla"
+-#~ msgstr ""
+-#~ "Permitir aos executáveis não-confinados reservarem uma região de memória "
+-#~ "como sendo executável e de escrita; isto Ã© perigoso e o executável deverá "
+-#~ "ser notificado no Bugzilla"
+-
+-#~ msgid ""
+-#~ "Allow all unconfined executables to use libraries requiring text "
+-#~ "relocation that are not labeled textrel_shlib_t"
+-#~ msgstr ""
+-#~ "Permitir a todos os executáveis não-confinados usarem bibliotecas que "
+-#~ "necessitem de recolocação do texto, não estando marcadas como "
+-#~ "'textrel_shlib_t'"
+-
+-#~ msgid ""
+-#~ "Allow unconfined executables to make their stack executable.  This should "
+-#~ "never, ever be neessary. Probably indicates a badly coded executable, but "
+-#~ "could indicate an attack. This executable should be reported in bugzilla"
+-#~ msgstr ""
+-#~ "Permitir aos executáveis não-confinados tornarem a sua pilha executável. "
+-#~ "Isto nunca, mas nunca deverá ser alguma vez necessário. Provavelmente "
+-#~ "poderá ser um executável mal-codificado, mas também poderá indicar um "
+-#~ "ataque. Este executável deverá ser notificado no Bugzilla"
+-
+-#~ msgid "FTP"
+-#~ msgstr "FTP"
+-
+-#~ msgid "Allow ftpd to full access to the system"
+-#~ msgstr "Permitir ao 'ftpd' ter acesso completo ao sistema"
+-
+-#~ msgid ""
+-#~ "Allow ftpd to upload files to directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Permitir ao 'ftpd' enviar ficheiros para pastas marcadas como "
+-#~ "'public_content_rw_t'"
+-
+-#~ msgid "Allow ftp servers to use cifs used for public file transfer services"
+-#~ msgstr ""
+-#~ "Permitir aos servidores de FTP usarem o CIFS usado nas transferências "
+-#~ "públicas de ficheiros"
+-
+-#~ msgid "Allow ftp servers to use nfs used for public file transfer services"
+-#~ msgstr ""
+-#~ "Permitir aos servidores de FTP usarem o NFS usado nas transferências "
+-#~ "públicas de ficheiros"
+-
+-#~ msgid "Allow gpg executable stack"
+-#~ msgstr "Permitir a pilha executável do 'gpg'"
+-
+-#~ msgid "Allow gssd to read temp directory"
+-#~ msgstr "Permitir ao 'gssd' ler a pasta de temporários"
+-
+-#~ msgid ""
+-#~ "Allow httpd daemon to write files in directories labeled "
+-#~ "public_content_rw_t"
+-#~ msgstr ""
+-#~ "Permitir ao servidor 'httpd' gravar ficheiros nas pastas chamadas "
+-#~ "'public_content_rw_t'"
+-
+-#~ msgid "Allow Apache to communicate with avahi service"
+-#~ msgstr "Permitir ao Apache comunicar com o serviço Avahi"
+-
+-#~ msgid "Allow Apache to use mod_auth_pam"
+-#~ msgstr "Permitir ao Apache usar o 'mod_auth_pam'"
+-
+-#~ msgid ""
+-#~ "Allow httpd scripts to write files in directories labeled "
+-#~ "public_content_rw_t"
+-#~ msgstr ""
+-#~ "Permitir aos programas do 'httpd' criarem ficheiros nas pastas chamadas "
+-#~ "'public_content_rw_t'"
+-
+-#~ msgid "Allow daemons to use kerberos files"
+-#~ msgstr "Permitir ao servidores usarem os ficheiros do Kerberos"
+-
+-#~ msgid ""
+-#~ "Allow nfs servers to modify public files used for public file transfer "
+-#~ "services"
+-#~ msgstr ""
+-#~ "Permitir aos servidores de NFS modificarem os ficheiros públicos usados "
+-#~ "nas transferências públicas de ficheiros"
+-
+-#~ msgid "Polyinstatiation"
+-#~ msgstr "Poli-instanciação"
+-
+-#~ msgid "Enable polyinstantiated directory support"
+-#~ msgstr "Activar o suporte de pastas poli-instanciadas"
+-
+-#~ msgid "Allow sysadm_t to debug or ptrace applications"
+-#~ msgstr ""
+-#~ "Permitir ao 'sysadm_t' depurar ou executar o 'ptrace' nas aplicações"
+-
+-#~ msgid ""
+-#~ "Allow rsync to write files in directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Permitir ao 'rsync' gravar ficheiros em pastas marcadas como "
+-#~ "'public_content_rw_t'"
+-
+-#~ msgid ""
+-#~ "Allow Samba to write files in directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Permitir ao Samba gravar ficheiros em pastas marcadas "
+-#~ "'public_content_rw_t'"
+-
+-#~ msgid "Zebra"
+-#~ msgstr "Zebra"
+-
+-#~ msgid "Allow zebra daemon to write it configuration files"
+-#~ msgstr ""
+-#~ "Permitir ao servidor do Zebra escrever nos seus ficheiros de configuração"
+-
+-#~ msgid ""
+-#~ "Allow system cron jobs to relabel filesystem for restoring file contexts"
+-#~ msgstr ""
+-#~ "Permitir Ã s tarefas de sistema do CRON mudarem a legenda do sistema de "
+-#~ "ficheiros para repor os contextos dos ficheiros"
+-
+-#~ msgid "Enable extra rules in the cron domain to support fcron"
+-#~ msgstr "Activar as regras-extra no domínio do CRON para suportar o 'fcron'"
+-
+-#~ msgid "Disable SELinux protection for ftpd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'ftpd'"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "Allow ftpd to run directly without inetd"
+-#~ msgstr "Permitir ao 'ftpd' executar directamente sem o 'inetd'"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Allow ftp to read/write files in the user home directories"
+-#~ msgstr ""
+-#~ "Permitir ao FTP ler/gravar ficheiros nas pastas pessoais dos utilizadores"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid ""
+-#~ "This should be enabled when all programs are compiled with ProPolice/SSP "
+-#~ "stack smashing protection.  All domains will be allowed to read from /dev/"
+-#~ "urandom"
+-#~ msgstr ""
+-#~ "Isto deverá ser activado quando todos os programas são compilados com a "
+-#~ "protecção de esgotamento da pilha ProPolice/SSP. Todos os domínios "
+-#~ "poderão ler do '/dev/urandom'"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "Allow HTTPD to support built-in scripting"
+-#~ msgstr "Permitir ao HTTPD suportar a programação incorporada"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "Allow HTTPD to send mail"
+-#~ msgstr "Permitir ao HTTPD enviar e-mails"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid "Allow HTTPD scripts and modules to network connect to databases"
+-#~ msgstr ""
+-#~ "Permitir aos programas e módulos do HTTPD ligarem-se Ã s bases de dados "
+-#~ "pela rede"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "Allow HTTPD scripts and modules to connect to the network"
+-#~ msgstr "Permitir aos programas e módulos do HTTPD ligarem-se Ã  rede"
+-
+-#~ msgid "Allow httpd to act as a relay"
+-#~ msgstr "Permitir ao HTTPD actuar como um encaminhador"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'httpd'"
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#~ msgid "Allow HTTPD cgi support"
+-#~ msgstr "Permitir o suporte de CGI's do HTTPD"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "Allow HTTPD to run as a ftp server"
+-#~ msgstr "Permitir ao HTTPD executar como um servidor de FTP"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "Allow HTTPD to read home directories"
+-#~ msgstr "Permitir ao HTTPD ler as pastas pessoais"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow HTTPD to run SSI executables in the same domain as system CGI "
+-#~ "scripts"
+-#~ msgstr ""
+-#~ "Permitir ao HTTP correr executáveis do SSI no mesmo domínio dos CGI's do "
+-#~ "sistema"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#~ msgid ""
+-#~ "Unify HTTPD to communicate with the terminal.  Needed for handling "
+-#~ "certificates"
+-#~ msgstr ""
+-#~ "Unificar o HTTPD na comunicação com o terminal. Ã‰ necessário para lidar "
+-#~ "com os certificados"
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid "Unify HTTPD handling of all content files"
+-#~ msgstr "Unificar o tratamento do HTTPD para todos os ficheiros de conteúdos"
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#~ msgid "Allow named to overwrite master zone files"
+-#~ msgstr "Permitir ao 'named' sobrepor os ficheiros da zona-mestra"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Allow NFS to share any file/directory read only"
+-#~ msgstr ""
+-#~ "Permitir ao NFS partilhar todas as pastas/ficheiros apenas para leitura"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid "Allow NFS to share any file/directory read/write"
+-#~ msgstr ""
+-#~ "Permitir ao NFS partilhar todas as pastas/ficheiros para leitura/escrita"
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "Allow openvpn service access to users home directories"
+-#~ msgstr ""
+-#~ "Permitir ao serviço 'openvpn' aceder Ã s pastas pessoais dos utilizadores"
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid "Allow pppd daemon to insert modules into the kernel"
+-#~ msgstr "Permitir ao serviço 'pppd' inserir módulos no 'kernel'"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pppd daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'pppd'"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the mozilla ppp daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'ppp' do Mozilla"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid "Allow programs to read untrusted content without relabel"
+-#~ msgstr ""
+-#~ "Permitir aos programas lerem conteúdo não-fiável sem mudança de legenda"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "Allow Samba to share users home directories"
+-#~ msgstr "Permitir ao Samba partilhar as pastas dos utilizadores"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid "Spam Assassin"
+-#~ msgstr "Spam Assassin"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid "Allow spammassasin to access the network"
+-#~ msgstr "Permitir ao 'spamassassin' aceder Ã  rede"
+-
+-#~ msgid "Use lpd server instead of cups"
+-#~ msgstr "Usar o servidor 'lpd' em vez do 'cups'"
+-
+-#~ msgid "Support NFS home directories"
+-#~ msgstr "Suportar as pastas pessoais por NFS"
+-
+-#~ msgid "Allow users to login with CIFS home directories"
+-#~ msgstr ""
+-#~ "Permitir aos utilizadores autenticarem-se em pastas pessoais de CIFS"
+-
+-#~ msgid ""
+-#~ "Allow web applications to write untrusted content to disk (implies read)"
+-#~ msgstr ""
+-#~ "Permitir Ã s aplicações Web gravarem conteúdo não-fiável no disco (implica "
+-#~ "leitura)"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for zebra daemon"
+-#~ msgstr "Desactivar a protecção do SELinux para o serviço 'zebra'"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid "Allow httpd to access samba/cifs file systems"
+-#~ msgstr "Permitir ao HTTPD aceder a sistemas de ficheiros Samba/CIFS"
+-
+-#~ msgid "Allow httpd to access nfs file systems"
+-#~ msgstr "Permitir ao HTTPD aceder a sistemas de ficheiros NFS"
+-
+-#~ msgid ""
+-#~ "Allow samba to act as the domain controller, add users, groups and change "
+-#~ "passwords"
+-#~ msgstr ""
+-#~ "Permitir ao Samba actuar como controlador do domínio, adicionar "
+-#~ "utilizadores, grupos e mudar as senhas"
+-
+-#~ msgid "Allow Samba to share any file/directory read only"
+-#~ msgstr "Permitir ao Samba partilhar qualquer pasta apenas para leitura"
+-
+-#~ msgid "Allow Samba to share any file/directory read/write"
+-#~ msgstr "Permitir ao Samba partilhar qualquer pasta para leitura/escrita"
+-
+-#~ msgid ""
+-#~ "Allow Samba to run unconfined scripts in /var/lib/samba/scripts directory"
+-#~ msgstr ""
+-#~ "Permitir ao Samba executar programas não-confinados na pasta '/var/lib/"
+-#~ "samba/scripts'"
+-
+-#~ msgid "Label Prefix"
+-#~ msgstr "Prefixo da Legenda"
+-
+-#~ msgid "MLS/MCS Level"
+-#~ msgstr "Nível do MLS/MCS"
+-
+-#~ msgid "Group/ungroup network ports by SELinux type."
+-#~ msgstr "Agrupar/desagrupar os portos de rede pelo tipo do SELinux."
+-
+-#~ msgid ""
+-#~ "Enable additional audit rules, that are normally not reported in the log "
+-#~ "files."
+-#~ msgstr ""
+-#~ "Activar as regras de auditoria adicionais, que não são normalmente "
+-#~ "comunicadas nos ficheiros de registo."
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#~ msgid ""
+-#~ "Labeling\n"
+-#~ "Prefix"
+-#~ msgstr ""
+-#~ "Prefixo de\n"
+-#~ "Legendagem"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Level"
+-#~ msgstr ""
+-#~ "Nível do\n"
+-#~ "MCS/MLS"
+-
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "São necessários 2 ou mais argumentos"
+-
+-#~ msgid "%s not defined"
+-#~ msgstr "O %s não está definido"
+-
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "O %s não Ã© válido para os objectos %s\n"
+-
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "o intervalo não Ã© suportado em máquinas não-MLS"
+-
+-#~ msgid "Invalid value %s"
+-#~ msgstr "O valor %s Ã© inválido"
+-
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Para poder carregar este pacote de políticas acabado de criar no "
+-#~ "'kernel',\n"
+-#~ "é preciso executar\n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Erro nas Opções: %s "
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/pt_BR.po b/policycoreutils/po/pt_BR.po
+index 91faec8..46f0d92 100644
+--- a/policycoreutils/po/pt_BR.po
++++ b/policycoreutils/po/pt_BR.po
+@@ -1,26 +1,29 @@
+-# Brazilian Portuguese translation of policycoreutils
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
+ # Diego Búrigo Zacarão <diegobz@gmail.com>, 2006.
+-# Valnir Ferreira Jr., 2006.
+-# Igor Pires Soares <igor@projetofedora.org>, 2006,2007,2008.
+ # Frederico Madeira <fred@madeira.eng.br>, 2008.
++# Glaucia Cintra <gcintra@redhat.com>, 2010.
++# Igor Pires Soares <igor@projetofedora.org>, 2006, 2007, 2008, 2009.
++# Og Maciel <ogmaciel@gnome.org>, 2008.
+ # Oliver Silva <oliverpsilva@gmail.com>, 2008.
+-#
++# Taylon Silmer <taylonsilva@gmail.com>, 2008.
++# Valnir Ferreira Jr., 2006.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-07-22 15:47-0300\n"
+-"Last-Translator: Igor Pires Soares <igor@projetofedora.org>\n"
+-"Language-Team: Brazilian Portuguese <fedora-trans-pt_br@redhat.com>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Portuguese (Brazil) <trans-pt_br@lists.fedoraproject.org>\n"
+ "Language: pt_BR\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.9.1\n"
+-"X-Poedit-Language: Portuguese\n"
+-"X-Poedit-Country: BRAZIL\n"
+-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
++"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -29,7 +32,7 @@ msgid ""
+ "         <args ...> are the arguments to that script."
+ msgstr ""
+ "USO: run_init <script> <args ...>\n"
+-"onde: <script> Ã© o nome do script de inicialização a ser executado,\n"
++" onde: <script> Ã© o nome do script de inicialização a ser executado,\n"
+ "         <args ...> são os argumentos para esse script."
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+@@ -40,7 +43,7 @@ msgstr "falhou ao inicializar o PAM\n"
+ #: ../run_init/run_init.c:139
+ #, c-format
+ msgid "failed to get account information\n"
+-msgstr "falhou ao obter informação da conta\n"
++msgstr "falha ao obter informação da conta\n"
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+@@ -49,7 +52,7 @@ msgstr "Senha:"
+ #: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+ #, c-format
+ msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr "Impossível achar a sua entrada no arquivo de senha shadow.\n"
++msgstr "Não foi possível localizar a sua entrada no arquivo de senha shadow.\n"
+ #: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+ #, c-format
+@@ -64,7 +67,7 @@ msgstr "run_init: senha incorreta para %s\n"
+ #: ../run_init/run_init.c:309
+ #, c-format
+ msgid "Could not open file %s\n"
+-msgstr "Impossível abrir arquivo %s\n"
++msgstr "Não foi possível abrir o arquivo %s\n"
+ #: ../run_init/run_init.c:336
+ #, c-format
+@@ -74,17 +77,17 @@ msgstr "Sem contexto no arquivo %s\n"
+ #: ../run_init/run_init.c:361
+ #, c-format
+ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr "Desculpe, run_init somente pode ser usado sobre um kernel SELinux.\n"
++msgstr "Desculpe, run_init pode ser usado somente em um kernel SELinux.\n"
+ #: ../run_init/run_init.c:380
+ #, c-format
+ msgid "authentication failed.\n"
+-msgstr "autenticação falhou.\n"
++msgstr "falha na autenticação.\n"
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+ #, c-format
+ msgid "Could not set exec context to %s.\n"
+-msgstr "Impossível definir contexto executável para %s.\n"
++msgstr "Não foi possível definir um contexto executável para %s.\n"
+ #: ../audit2allow/audit2allow:230
+ msgid "******************** IMPORTANT ***********************\n"
+@@ -104,57 +107,54 @@ msgstr "Não foi possível criar o controlador do semanage"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr "Política SELinux não Ã© controlada ou não Ã© possível acessar os dados."
++msgstr ""
++"A política SELinux não Ã© gerenciada ou não foi possível acessar os dados."
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr "Impossível ler dados da política"
++msgstr "Não foi possível ler os dados da política."
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+-msgstr "Impossível estabelecer uma conexão semanage"
++msgstr "Não foi possível estabelecer uma conexão semanage"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Impossível definir intervalo MLS para %s"
++msgstr "Não foi possível testar o status habilitado de MLS"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr "Não implementado ainda"
++msgstr "Ainda não está implementado"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "A transação do semanage já está em andamento"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+-msgstr "Impossível iniciar transação semanage"
++msgstr "Não foi possível iniciar a transação semanage"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Impossível iniciar transação semanage"
++msgstr "Não foi possível enviar a transação semanage"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "A transação do semanage não está em andamento"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Impossível listar usuários SELinux"
++msgstr "Não foi possível listar os módulos do SELinux"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Nome do Módulo"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Versão"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "Desabilitado"
+@@ -164,9 +164,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Impossível adicionar role %s para %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -178,24 +178,24 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Tipos permissivos"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Tipos permissivos"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
++"Não foi possível definir o domínio %s como permissivo (falha na instalação "
++"do módulo)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "Não foi possível remover o domínio permissivo %s (falha na remoção)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -206,48 +206,50 @@ msgstr ""
+ #: ../semanage/seobject.py:2037
+ #, python-format
+ msgid "Could not create a key for %s"
+-msgstr "Impossível criar uma chave para %s"
++msgstr "Não foi possível criar uma chave para %s"
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+ #, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr "Impossível verificar se o mapeamento de login para %s está definido"
++msgstr ""
++"Não foi possível verificar se o mapeamento de início de sessão para %s está "
++"definido"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Usuário Linux %s não existe"
++msgstr "O grupo linux %s não existe"
+ #: ../semanage/seobject.py:497
+ #, python-format
+ msgid "Linux User %s does not exist"
+-msgstr "Usuário Linux %s não existe"
++msgstr "O usuário linux %s não existe"
+ #: ../semanage/seobject.py:501
+ #, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr "Não foi possível criar mapeamento de login para %s"
++msgstr "Não foi possível criar um mapeamento de início de sessão para %s"
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+ msgid "Could not set name for %s"
+-msgstr "Impossível definir nome para %s"
++msgstr "Não foi possível definir o nome para %s"
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+ #, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr "Impossível definir intervalo MLS para %s"
++msgstr "Não foi possível definir o intervalo MLS para %s"
+ #: ../semanage/seobject.py:514
+ #, python-format
+ msgid "Could not set SELinux user for %s"
+-msgstr "Impossível definir usuário SELinux para %s"
++msgstr "Não foi possível definir o usuário SELinux para %s"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "Impossível adicionar mapeamento de login para %s"
++msgstr "Não foi possível adicionar o mapeamento de início de sessão para %s"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+@@ -256,44 +258,50 @@ msgstr "Requer seuser ou serange"
+ #: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+ #, python-format
+ msgid "Login mapping for %s is not defined"
+-msgstr "Mapeamento de login para %s não está definido"
++msgstr "O mapeamento de início de sessão para %s não está definido"
+ #: ../semanage/seobject.py:563
+ #, python-format
+ msgid "Could not query seuser for %s"
+-msgstr "Impossível consultar seuser para %s"
++msgstr "Não foi possível consultar o seuser para %s"
+ #: ../semanage/seobject.py:577
+ #, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr "Impossível modificar mapeamento de login para %s"
++msgstr "Não foi possível modificar o mapeamento de início de sessão para %s"
+ #: ../semanage/seobject.py:611
+ #, python-format
+ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"Mapeamento de login para %s está definido na política, não pode ser excluído"
++"O mapeamento de início de sessão para %s está definido na política, e não "
++"pode ser excluído"
+ #: ../semanage/seobject.py:615
+ #, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr "Impossível excluir mapeamento de login para %s"
++msgstr "Não foi possível excluir o mapeamento de início de sessão para %s"
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+ msgid "Could not list login mappings"
+-msgstr "Impossível listar mapeamentos de logins"
++msgstr "Não foi possível listar os mapeamentos de início de sessão"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+-msgstr "Nome de Login"
++msgstr "Nome de usuário"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "Usuário do SELinux"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "Intervalo MLS/MCS"
+@@ -302,89 +310,90 @@ msgstr "Intervalo MLS/MCS"
+ #: ../semanage/seobject.py:860
+ #, python-format
+ msgid "Could not check if SELinux user %s is defined"
+-msgstr "Impossível checar se usuário SELinux %s está definido"
++msgstr "Não foi possível verificar se o usuário SELinux %s está definido"
+ #: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+ #: ../semanage/seobject.py:866
+ #, python-format
+ msgid "Could not query user for %s"
+-msgstr "Impossível consultar usuário para %s"
++msgstr "Não foi possível consultar o usuário por %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Impossível adicionar contexto de arquivo para %s"
++msgstr "Você deve adicionar pelo menos uma função para %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+ msgid "Could not create SELinux user for %s"
+-msgstr "Impossível criar usuário SELinux for %s"
++msgstr "Não foi possível criar um usuário SELinux para %s"
+ #: ../semanage/seobject.py:746
+ #, python-format
+ msgid "Could not add role %s for %s"
+-msgstr "Impossível adicionar role %s para %s"
++msgstr "Não foi possível adicionar uma função %s para %s"
+ #: ../semanage/seobject.py:755
+ #, python-format
+ msgid "Could not set MLS level for %s"
+-msgstr "Impossível definir nível MLS para %s"
++msgstr "Não foi possível definir um nível MLS para %s"
+ #: ../semanage/seobject.py:758
+ #, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr "Impossível adicionar prefixo %s para %s"
++msgstr "Não foi possível adicionar um prefixo %s para %s"
+ #: ../semanage/seobject.py:761
+ #, python-format
+ msgid "Could not extract key for %s"
+-msgstr "Impossível extrair chave para %s"
++msgstr "Não foi possível extrair uma chave para %s"
+ #: ../semanage/seobject.py:765
+ #, python-format
+ msgid "Could not add SELinux user %s"
+-msgstr "Impossível adicionar usuário SELinux %s"
++msgstr "Não foi possível adicionar o usuário SELinux %s"
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+-msgstr "Requer prefixo, roles, nível ou intervalo"
++msgstr "Requer prefixo, função, nível ou intervalo"
+ #: ../semanage/seobject.py:789
+ msgid "Requires prefix or roles"
+-msgstr "Requer prefixo ou roles"
++msgstr "Requer prefixo ou função"
+ #: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+ #, python-format
+ msgid "SELinux user %s is not defined"
+-msgstr "Usuário SELinux %s não está definido"
++msgstr "O usuário SELinux %s não está definido"
+ #: ../semanage/seobject.py:828
+ #, python-format
+ msgid "Could not modify SELinux user %s"
+-msgstr "Impossível modificar usuário SELinux %s"
++msgstr "Não foi possível modificar o usuário SELinux %s"
+ #: ../semanage/seobject.py:862
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr "Usuário SELinux %s está definido na política, não pode ser excluído"
++msgstr ""
++"O usuário SELinux %s está definido na política, e não pode ser excluído"
+ #: ../semanage/seobject.py:873
+ #, python-format
+ msgid "Could not delete SELinux user %s"
+-msgstr "Impossível excluir usuário SELinux %s"
++msgstr "Não foi possível excluir o usuário SELinux %s"
+ #: ../semanage/seobject.py:911
+ msgid "Could not list SELinux users"
+-msgstr "Impossível listar usuários SELinux"
++msgstr "Não foi possível listar os usuários SELinux"
+ #: ../semanage/seobject.py:917
+ #, python-format
+ msgid "Could not list roles for user %s"
+-msgstr "Impossível listar roles para o usuário %s"
++msgstr "Não foi possível listar as funções do usuário %s"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr "Etiquetagem"
++msgstr "Rótulo"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+@@ -403,81 +412,81 @@ msgid "MCS Range"
+ msgstr "Intervalo MCS"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+-msgstr "Papéis do SELinux"
++msgstr "Funções do SELinux"
+ #: ../semanage/seobject.py:963
+ msgid "Protocol udp or tcp is required"
+-msgstr "Protocolo udp ou tcp Ã© requerido"
++msgstr "O protocolo udp ou tcp Ã© requerido"
+ #: ../semanage/seobject.py:965
+ msgid "Port is required"
+-msgstr "Porta Ã© requerida"
++msgstr "A porta Ã© requerida"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Prefixo inválido %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+ msgid "Could not create a key for %s/%s"
+-msgstr "Impossível criar uma chave para %s/%s"
++msgstr "Não foi possível criar uma chave para %s/%s"
+ #: ../semanage/seobject.py:990
+ msgid "Type is required"
+-msgstr "Tipo Ã© requerido"
++msgstr "O tipo Ã© requerido"
+ #: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+ #: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+ #, python-format
+ msgid "Could not check if port %s/%s is defined"
+-msgstr "Impossível checar se a porta %s/%s está definida"
++msgstr "Não foi possível verificar se a porta %s/%s está definida"
+ #: ../semanage/seobject.py:998
+ #, python-format
+ msgid "Port %s/%s already defined"
+-msgstr "Porta %s/%s já está definida"
++msgstr "A porta %s/%s já está definida"
+ #: ../semanage/seobject.py:1002
+ #, python-format
+ msgid "Could not create port for %s/%s"
+-msgstr "Impossível criar porta para %s/%s"
++msgstr "Não foi possível criar uma porta para %s/%s"
+ #: ../semanage/seobject.py:1008
+ #, python-format
+ msgid "Could not create context for %s/%s"
+-msgstr "Impossível criar contexto para %s/%s"
++msgstr "Não foi possível criar um contexto para %s/%s"
+ #: ../semanage/seobject.py:1012
+ #, python-format
+ msgid "Could not set user in port context for %s/%s"
+-msgstr "Impossível definir usuário no contexto da porta para %s/%s"
++msgstr "Não foi possível definir o usuário no contexto da porta para %s/%s"
+ #: ../semanage/seobject.py:1016
+ #, python-format
+ msgid "Could not set role in port context for %s/%s"
+-msgstr "Impossível definir role no contexto da porta para %s/%s"
++msgstr "Não foi possível definir a função no contexto da porta para %s/%s"
+ #: ../semanage/seobject.py:1020
+ #, python-format
+ msgid "Could not set type in port context for %s/%s"
+-msgstr "Impossível definir tipo no contexto da porta para %s/%s"
++msgstr "Não foi possível definir o tipo no contexto da porta para %s/%s"
+ #: ../semanage/seobject.py:1025
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr "Impossível definir campos mls no contexto da porta para %s/%s"
++msgstr "Não foi possível definir os campos mls no contexto da porta para %s/%s"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+ msgid "Could not set port context for %s/%s"
+-msgstr "Impossível definir contexto da porta para %s/%s"
++msgstr "Não foi possível definir o contexto da porta para %s/%s"
+ #: ../semanage/seobject.py:1033
+ #, python-format
+ msgid "Could not add port %s/%s"
+-msgstr "Impossível adicionar porta %s/%s"
++msgstr "Não foi possível adicionar a porta %s/%s"
+ #: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+ #: ../semanage/seobject.py:1508
+@@ -496,61 +505,60 @@ msgstr "A porta %s/%s não está definida"
+ #: ../semanage/seobject.py:1061
+ #, python-format
+ msgid "Could not query port %s/%s"
+-msgstr "Impossível consultar porta %s/%s"
++msgstr "Não foi possível consultar a porta %s/%s"
+ #: ../semanage/seobject.py:1072
+ #, python-format
+ msgid "Could not modify port %s/%s"
+-msgstr "Impossível modificar porta %s/%s"
++msgstr "Não foi possível modificar a porta %s/%s"
+ #: ../semanage/seobject.py:1085
+ msgid "Could not list the ports"
+-msgstr "Impossível listar as portas"
++msgstr "Não foi possível listar as portas"
+ #: ../semanage/seobject.py:1101
+ #, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Impossível excluir a porta %s"
++msgstr "Não foi possível excluir a porta %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+ msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr "A porta %s/%s está definida na política, não pode ser excluída"
++msgstr "A porta %s/%s está definida na política, e não pode ser excluída"
+ #: ../semanage/seobject.py:1122
+ #, python-format
+ msgid "Could not delete port %s/%s"
+-msgstr "Impossível excluir porta %s/%s"
++msgstr "Não foi possível excluir a porta %s/%s"
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+ msgid "Could not list ports"
+-msgstr "Impossível listar portas"
++msgstr "Não foi possível listar as portas"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+-msgstr "Tipo da Porta do SELinux"
++msgstr "Tipo da porta do SELinux"
+ #: ../semanage/seobject.py:1199
+ msgid "Proto"
+-msgstr "Protocolo"
++msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+-msgstr "Número da Porta"
++msgstr "Número da porta"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Porta Ã© requerida"
++msgstr "O endereço do nó Ã© requerid"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "O protocolo está faltando ou Ã© desconhecido"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+ msgid "SELinux Type is required"
+-msgstr "Tipo SELinux Ã© requerido"
++msgstr "O tipo SELinux Ã© requerido"
+ #: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+ #: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+@@ -558,140 +566,139 @@ msgstr "Tipo SELinux Ã© requerido"
+ #: ../semanage/seobject.py:1728
+ #, python-format
+ msgid "Could not create key for %s"
+-msgstr "Impossível criar chave para %s"
++msgstr "Não foi possível criar uma chave para %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Impossível checar se a porta %s/%s está definida"
++msgstr "Não foi possível verificar se o endereço %s está definido"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Impossível criar uma chave para %s"
++msgstr "Não foi possível criar um endereço para %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+ #, python-format
+ msgid "Could not create context for %s"
+-msgstr "Impossível criar contexto para %s"
++msgstr "Não foi possível criar um contexto para %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Impossível definir nome para %s"
++msgstr "Não foi possível definir uma máscara de rede para %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Impossível definir usuário no contexto de arquivo para %s"
++msgstr "Não foi possível definir o usuário no contexto de endereço para %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Impossível definir role no contexto de arquivo para %s"
++msgstr "Não foi possível definir uma função no contexto de endereço para %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Impossível definir tipo no contexto de arquivo para %s"
++msgstr "Não foi possível definir o tipo no contexto de endereço para %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Impossível definir campos mls no contexto de arquivo para %s"
++msgstr "Não foi possível definir os campos mls no contexto de endereço para %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Impossível definir contexto de arquivo para %s"
++msgstr "Não foi possível definir o contexto de endereço para %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Impossível adicionar porta %s/%s"
++msgstr "Não foi possível adicionar o endereço %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "A porta %s/%s não está definida"
++msgstr "O endereço %s não está definido"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Impossível consultar porta %s/%s"
++msgstr "Não foi possível consultar o endereço %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Impossível modificar porta %s/%s"
++msgstr "Não foi possível modificar o endereço %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "A porta %s/%s está definida na política, não pode ser excluída"
++msgstr "O endereço %s está definido na política, e não pode ser excluído"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Impossível excluir a %s"
++msgstr "Não foi possível excluir o endereço %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Impossível excluir mapeamento de login para %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Impossível listar portas"
++msgstr "Não foi possível listar os endereços"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+ #, python-format
+ msgid "Could not check if interface %s is defined"
+-msgstr "Impossível checar se a interface %s está definida"
++msgstr "Não foi possível verificar se a interface %s está definida"
+ #: ../semanage/seobject.py:1461
+ #, python-format
+ msgid "Could not create interface for %s"
+-msgstr "Impossível criar interface para %s"
++msgstr "Não foi possível criar uma interface para %s"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "Impossível definir usuário no contexto da interface para %s"
++msgstr "Não foi possível definir o usuário no contexto da interface para %s"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "Impossível definir role no contexto da interface para %s"
++msgstr "Não foi possível definir a função no contexto da interface para %s"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "Impossível definir tipo no contexto da interface para %s"
++msgstr "Não foi possível definir o tipo no contexto da interface para %s"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr "Impossível definir campos mls no contexto da interface para %s"
++msgstr ""
++"Não foi possível definir os campos mls no contexto da interface para %s"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr "Impossível definir contexto da interface para %s"
++msgstr "Não foi possível definir o contexto da interface para %s"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+ msgid "Could not set message context for %s"
+-msgstr "Impossível definir contexto da mensagem para %s"
++msgstr "Não foi possível definir o contexto da mensagem para %s"
+ #: ../semanage/seobject.py:1495
+ #, python-format
+ msgid "Could not add interface %s"
+-msgstr "Impossível adicionar interface %s"
++msgstr "Não foi possível adicionar a interface %s"
+ #: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+ #, python-format
+@@ -701,31 +708,30 @@ msgstr "A interface %s não está definida"
+ #: ../semanage/seobject.py:1522
+ #, python-format
+ msgid "Could not query interface %s"
+-msgstr "Impossível consultar interface %s"
++msgstr "Não foi possível consultar a interface %s"
+ #: ../semanage/seobject.py:1533
+ #, python-format
+ msgid "Could not modify interface %s"
+-msgstr "Impossível modificar interface %s"
++msgstr "Não foi possível modificar a interface %s"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+ msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr "A interface %s está definida na política, não pode ser excluída"
++msgstr "A interface %s está definida na política, e não pode ser excluída"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+ msgid "Could not delete interface %s"
+-msgstr "Impossível excluir interface %s"
++msgstr "Não foi possível excluir a interface %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Impossível excluir interface %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+-msgstr "Impossível listar interfaces"
++msgstr "Não foi possível listar as interfaces"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+@@ -736,9 +742,9 @@ msgid "Context"
+ msgstr "Contexto"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Contexto do arquivo para %s já definido"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -746,28 +752,28 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Usuário Linux %s não existe"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "Impossível definir usuário no contexto de arquivo para %s"
++msgstr "Não foi possível definir o usuário no contexto de arquivo para %s"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "Impossível definir role no contexto de arquivo para %s"
++msgstr "Não foi possível definir a função no contexto de arquivo para %s"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "Impossível definir campos mls no contexto de arquivo para %s"
++msgstr "Não foi possível definir os campos mls no contexto de arquivo para %s"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+-msgstr "Especificação do arquivo inválida"
++msgstr "Especificação inválida do arquivo"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -784,28 +790,29 @@ msgstr ""
+ #: ../semanage/seobject.py:1876
+ #, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr "Impossível checar se o contexto do arquivo para %s está definido"
++msgstr ""
++"Não foi possível verificar se o contexto do arquivo para %s está definido"
+ #: ../semanage/seobject.py:1745
+ #, python-format
+ msgid "Could not create file context for %s"
+-msgstr "Impossível criar contexto de arquivo para %s"
++msgstr "Não foi possível criar um contexto de arquivo para %s"
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "Impossível definir tipo no contexto de arquivo para %s"
++msgstr "Não foi possível definir o tipo no contexto de arquivo para %s"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr "Impossível definir contexto de arquivo para %s"
++msgstr "Não foi possível definir o contexto de arquivo para %s"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+ msgid "Could not add file context for %s"
+-msgstr "Impossível adicionar contexto de arquivo para %s"
++msgstr "Não foi possível adicionar o contexto de arquivo para %s"
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+@@ -814,45 +821,46 @@ msgstr "Requer setype, serange ou seuser"
+ #: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+ #, python-format
+ msgid "File context for %s is not defined"
+-msgstr "Contexto de arquivo para %s não está definido"
++msgstr "O contexto de arquivo para %s não está definido"
+ #: ../semanage/seobject.py:1800
+ #, python-format
+ msgid "Could not query file context for %s"
+-msgstr "Impossível consultar contexto de arquivo para %s"
++msgstr "Não foi possível consultar o contexto de arquivo para %s"
+ #: ../semanage/seobject.py:1826
+ #, python-format
+ msgid "Could not modify file context for %s"
+-msgstr "Impossível modificar contexto de arquivo para %s"
++msgstr "Não foi possível modificar o contexto de arquivo para %s"
+ #: ../semanage/seobject.py:1839
+ msgid "Could not list the file contexts"
+-msgstr "Impossível listar contextos de arquivos "
++msgstr "Não foi possível listar os contextos de arquivos "
+ #: ../semanage/seobject.py:1853
+ #, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Impossível excluir contexto de arquivo  %s"
++msgstr "Não foi possível excluir os contexto do arquivo  %s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+ msgid "File context for %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"Contexto de arquivo para %s está definido na política, não pode ser excluído"
++"O contexto de arquivo para %s está definido na política, e não pode ser "
++"excluído"
+ #: ../semanage/seobject.py:1884
+ #, python-format
+ msgid "Could not delete file context for %s"
+-msgstr "Impossível excluir contexto de arquivo para %s"
++msgstr "Não foi possível excluir o contexto de arquivo para %s"
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+-msgstr "Impossível listar contextos de arquivos"
++msgstr "Não foi possível listar os contextos de arquivos"
+ #: ../semanage/seobject.py:1903
+ msgid "Could not list local file contexts"
+-msgstr "Impossível listar contextos de arquivos locais"
++msgstr "Não foi possível listar os contextos de arquivos locais"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+@@ -869,17 +877,16 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "fcontext do SELinux"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+ #, python-format
+ msgid "Could not check if boolean %s is defined"
+-msgstr "Impossível checar se Booleano %s está definido"
++msgstr "Não foi possível verificar se o booleano %s está definido"
+ #: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+ #, python-format
+@@ -889,12 +896,12 @@ msgstr "Booleano %s não está definido"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+ msgid "Could not query file context %s"
+-msgstr "Impossível consultar contexto de arquivo %s"
++msgstr "Não foi possível consultar o contexto de arquivo %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Você deve especificar um valor"
++msgstr "Você deve especificar um dos seguintes valores: %s"
+ #: ../semanage/seobject.py:2004
+ #, python-format
+@@ -904,26 +911,26 @@ msgstr "Não foi possível definir o valor ativo do booleano %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+ msgid "Could not modify boolean %s"
+-msgstr "Impossível modificar booleano %s"
++msgstr "Não foi possível modificar o booleano %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "O formato %s Ã© inválido: Registro %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr "Booleano %s está definido na política, não pode ser excluído"
++msgstr "O booleano %s está definido na política, e não pode ser excluído"
+ #: ../semanage/seobject.py:2052
+ #, python-format
+ msgid "Could not delete boolean %s"
+-msgstr "Impossível excluir booleano %s"
++msgstr "Não foi possível excluir o booleano %s"
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+ msgid "Could not list booleans"
+-msgstr "Impossível listar portas booleanas"
++msgstr "Não foi possível listar os booleanos"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+@@ -931,26 +938,26 @@ msgstr "desconhecido"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr "desligado"
++msgstr "desativado"
+ #: ../semanage/seobject.py:2117
+ msgid "on"
+-msgstr "Ativo"
++msgstr "ativado"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+ msgstr "Booleano do SELinux"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "Status"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "Descrição"
+@@ -963,7 +970,7 @@ msgstr "falhou ao definir PAM_TTY\n"
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+ msgstr ""
+-"newrole: Estouro de capacidade da tabela hash da configuração do nome do "
++"newrole: estouro de capacidade da tabela hash de configuração do nome do "
+ "serviço\n"
+ #: ../newrole/newrole.c:300
+@@ -974,7 +981,7 @@ msgstr "newrole:  %s:  erro na linha %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+ msgid "cannot find valid entry in the passwd file.\n"
+-msgstr "impossível encontrar entrada válida no arquivo passwd.\n"
++msgstr "Não foi possível localizar a entrada válida no arquivo passwd.\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+@@ -984,27 +991,27 @@ msgstr "Memória insuficiente!\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr "Erro! Shell não Ã© valido.\n"
++msgstr "Erro!  Shell não Ã© valido.\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+ msgid "Unable to clear environment\n"
+-msgstr "Impossível limpar ambiente\n"
++msgstr "Não foi possível limpar o ambiente\n"
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+ msgid "Error changing uid, aborting.\n"
+-msgstr "Erro ao mudar uid, abortando.\n"
++msgstr "Erro ao mudar o uid, abortando.\n"
+ #: ../newrole/newrole.c:612
+ #, c-format
+ msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr "Erro ao restaurar KEEPCAPS, abortando\n"
++msgstr "Erro ao restaurar o KEEPCAPS, abortando\n"
+ #: ../newrole/newrole.c:635
+ #, c-format
+ msgid "Error connecting to audit system.\n"
+-msgstr "Erro ao conectar com sistema audit.\n"
++msgstr "Erro ao conectar com o sistema auditoria.\n"
+ #: ../newrole/newrole.c:641
+ #, c-format
+@@ -1014,47 +1021,51 @@ msgstr "Erro ao alocar memória.\n"
+ #: ../newrole/newrole.c:648
+ #, c-format
+ msgid "Error sending audit message.\n"
+-msgstr "Erro ao enviar mensagem audit.\n"
++msgstr "Erro ao enviar mensagem de auditoria.\n"
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr "Impossível determinar modo forçado.\n"
++msgstr "Não foi possível determinar modo forçado.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr "Erro!  Impossível abrir %s.\n"
++msgstr "Erro!  Não foi possível abrir %s.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr "%s! Impossível obter o atual contexto para %s, não reetiquetar tty.\n"
++msgstr ""
++"%s! Não foi possível obter o atual contexto para %s, o rótulo do tty não foi "
++"modificado.\n"
+ #: ../newrole/newrole.c:715
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr "%s! Impossível obter novo contexto para %s, não reetiquetar tty.\n"
++msgstr ""
++"%s! Não foi possível obter novo contexto para %s, o rótulo do tty não foi "
++"modificado.\n"
+ #: ../newrole/newrole.c:725
+ #, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr "%s!  Impossível definir novo contexto para %s\n"
++msgstr "%s!  Não foi possível definir novo contexto para %s\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+ msgid "%s changed labels.\n"
+-msgstr "%s etiquetas alteradas.\n"
++msgstr "%s rótulos alterados.\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr "Atenção! Impossível restaurar contexto para %s\n"
++msgstr "Atenção! Não foi possível restaurar contexto para %s\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+ msgid "Error: multiple roles specified\n"
+-msgstr "Erro: múltiplas roles especificadas\n"
++msgstr "Erro: múltiplas funções especificadas\n"
+ #: ../newrole/newrole.c:843
+ #, c-format
+@@ -1064,7 +1075,7 @@ msgstr "Erro: múltiplos tipos especificados\n"
+ #: ../newrole/newrole.c:850
+ #, c-format
+ msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr "Desculpe, -l pode ser usado com suporte SELinux MLS.\n"
++msgstr "Desculpe, -l pode ser usado com suporte ao SELinux MLS.\n"
+ #: ../newrole/newrole.c:855
+ #, c-format
+@@ -1075,43 +1086,43 @@ msgstr "Erro: múltiplos níveis especificados\n"
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+ msgstr ""
+-"Erro: você não está habilitado a alterar os níveis em um terminal não "
++"Erro: você não tem permissão para alterar os níveis em um terminal não "
+ "seguro \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr "Impossível obter o tipo padrão.\n"
++msgstr "Não foi possível obter o tipo padrão.\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+ msgid "failed to get new context.\n"
+-msgstr "falhou ao obter novo contexto.\n"
++msgstr "falha ao obter novo contexto.\n"
+ #: ../newrole/newrole.c:908
+ #, c-format
+ msgid "failed to set new role %s\n"
+-msgstr "falhou ao definir nova role %s\n"
++msgstr "falha ao definir nova função %s\n"
+ #: ../newrole/newrole.c:915
+ #, c-format
+ msgid "failed to set new type %s\n"
+-msgstr "falhou ao definir novo tipo %s\n"
++msgstr "falha ao definir novo tipo %s\n"
+ #: ../newrole/newrole.c:925
+ #, c-format
+ msgid "failed to build new range with level %s\n"
+-msgstr "falhou ao construir novo intervalo com níveis %s\n"
++msgstr "falha ao construir novo intervalo com nível %s\n"
+ #: ../newrole/newrole.c:930
+ #, c-format
+ msgid "failed to set new range %s\n"
+-msgstr "falhou ao definir novo intervalo %s\n"
++msgstr "falha ao definir o novo intervalo %s\n"
+ #: ../newrole/newrole.c:938
+ #, c-format
+ msgid "failed to convert new context to string\n"
+-msgstr "falhou ao converter novo contexto para uma seqüência de caracteres\n"
++msgstr "falha ao converter novo contexto para um string\n"
+ #: ../newrole/newrole.c:943
+ #, c-format
+@@ -1121,32 +1132,32 @@ msgstr "%s não Ã© um contexto válido\n"
+ #: ../newrole/newrole.c:950
+ #, c-format
+ msgid "Unable to allocate memory for new_context"
+-msgstr "Impossível alocar memória para new_context"
++msgstr "Não foi possível alocar memória para nobo_contexto"
+ #: ../newrole/newrole.c:976
+ #, c-format
+ msgid "Unable to obtain empty signal set\n"
+-msgstr "Impossível obter signal set vazio\n"
++msgstr "Não foi possível obter um conjunto de sinal vazio\n"
+ #: ../newrole/newrole.c:984
+ #, c-format
+ msgid "Unable to set SIGHUP handler\n"
+-msgstr "Impossível configurar tratador de SIGHUP\n"
++msgstr "Não foi possível configurar o manipulador de SIGHUP\n"
+ #: ../newrole/newrole.c:1053
+ #, c-format
+ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr "Desculpe, newrole pode ser usado somente sobre um kernel SELinux.\n"
++msgstr "Desculpe, nova função pode ser usado somente em um kernel SELinux.\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+ msgid "failed to get old_context.\n"
+-msgstr "falhou ao obter contexto antigo.\n"
++msgstr "falha ao obter o _contexto antigo.\n"
+ #: ../newrole/newrole.c:1077
+ #, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Erro!  Impossível recuperar informações do tty.\n"
++msgstr "Atenção!  Não foi possível recuperar informações do tty.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+@@ -1156,17 +1167,17 @@ msgstr "erro ao ler a configuração do serviço PAM.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+ msgid "newrole: incorrect password for %s\n"
+-msgstr "newrole: senha incorreta para %s\n"
++msgstr "nova função: senha incorreta para %s\n"
+ #: ../newrole/newrole.c:1160
+ #, c-format
+ msgid "newrole: failure forking: %s"
+-msgstr "newrole: falha de bifurcação: %s"
++msgstr "nova função: falha de bifurcação: %s"
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+ msgid "Unable to restore tty label...\n"
+-msgstr "Impossível restaurar etiqueta tty...\n"
++msgstr "Não foi possível restaurar o rótulo do tty...\n"
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+@@ -1176,7 +1187,7 @@ msgstr "Não foi possível fechar o tty adequadamente\n"
+ #: ../newrole/newrole.c:1224
+ #, c-format
+ msgid "Could not close descriptors.\n"
+-msgstr "Impossível fechar descritores.\n"
++msgstr "Não foi possível fechar os descritores.\n"
+ #: ../newrole/newrole.c:1251
+ #, c-format
+@@ -1186,7 +1197,7 @@ msgstr "Erro ao alocar argv0 do shell.\n"
+ #: ../newrole/newrole.c:1287
+ #, c-format
+ msgid "Unable to restore the environment, aborting\n"
+-msgstr "Impossível restaurar o ambiente, abortando\n"
++msgstr "Não foi possível restaurar o ambiente, abortando\n"
+ #: ../newrole/newrole.c:1298
+ msgid "failed to exec shell\n"
+@@ -1205,12 +1216,13 @@ msgstr "%s:  A política já está carregada e a carga inicial foi solicitada\n"
+ #: ../load_policy/load_policy.c:80
+ #, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:  Impossível carregar política e aplicar o modo requisitado:  %s\n"
++msgstr ""
++"%s:  Não foi possível carregar a política e o modo forçado solicitado:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr "%s:  Impossível carregar política:  %s\n"
++msgstr "%s:  Não foi possível carregar a política:  %s\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+@@ -1219,7 +1231,7 @@ msgstr "Requer pelo menos uma categoria"
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+ msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr "Não se pode modificar os níveis de sensibilidade usando '+' em %s"
++msgstr "Não se pode modificar os níveis de sensibilidade usando \"+\" em %s"
+ #: ../scripts/chcat:110
+ #, c-format
+@@ -1242,27 +1254,27 @@ msgstr "Não se pode ter sensibilidades múltiplas"
+ #: ../scripts/chcat:325
+ #, c-format
+ msgid "Usage %s CATEGORY File ..."
+-msgstr "Uso %s CATEGORY Arquivo ..."
++msgstr "Uso %s CATEGORIA arquivo ..."
+ #: ../scripts/chcat:326
+ #, c-format
+ msgid "Usage %s -l CATEGORY user ..."
+-msgstr "Uso %s -l CATEGORY usuário ..."
++msgstr "Uso %s -l CATEGORIA usuário ..."
+ #: ../scripts/chcat:327
+ #, c-format
+ msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr "Uso %s [[+|-]CATEGORY],...]q Arquivo ..."
++msgstr "Uso %s [[+|-]CATEGORIA],...]q arquivo ..."
+ #: ../scripts/chcat:328
+ #, c-format
+ msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr "Uso %s -l [[+|-]CATEGORY],...]q usuário ..."
++msgstr "Uso %s -l [[+|-]CATEGORIA],...]q usuário ..."
+ #: ../scripts/chcat:329
+ #, c-format
+ msgid "Usage %s -d File ..."
+-msgstr "Uso %s -d Arquivo ..."
++msgstr "Uso %s -d arquivo ..."
+ #: ../scripts/chcat:330
+ #, c-format
+@@ -1291,2244 +1303,2096 @@ msgstr "chcat -- -EmpresaConfidencial /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +EmpresaConfidencial juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+-msgstr "Erro de Opções %s "
++msgstr "Erro nas opções %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Impossível abrir %s: traduções não suportadas em máquinas não-MLS: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "Nível"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "Tradução"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Traduções não podem conter espaços '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Nível Inválido '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s já definido nas traduções"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s não definido nas traduções"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Mapeamento de login para %s já está definido"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "adicionar mapeamento de usuário do SELinux"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "Usuário SELinux %s já está definido"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Porta Ã© requerida"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Porta %s/%s já está definida"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Interface %s já definida"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Erro ao iniciar potencialidades, abortando.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Erro ao tentar definir potencialidades, abortando.\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Erro ao tentar definir KEEPCAPS, abortando\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Erro ao remover potencialidades, abortando.\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Erro ao remover a potencialidade SETUID, abortando.\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Erro ao liberar caps\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "traduções não suportadas em maquinas não-MLS"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "Booleano"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "Todas "
+-
+-#~ msgid "Customized"
+-#~ msgstr "Personalizado"
+-
+-#~ msgid "File Labeling"
+-#~ msgstr "Etiquetagem dos Arquivos"
+-
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "Especificação do\n"
+-#~ "Arquivo"
+-
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "Tipo do Arquivo"
+-
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Tipo do\n"
+-#~ "Arquivo"
+-
+-#~ msgid "User Mapping"
+-#~ msgstr "Mapeamento de Usuários"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "Nome de\n"
+-#~ "Usuário"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "Usuário do\n"
+-#~ "SELinux"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "Intervalo\n"
+-#~ "MLS/MCS"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "O login \"%s\" Ã© requerido"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "Módulo da Política"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "Desabilitar o Audit"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "Habilitar o Audit"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "Carregar Módulo de Política"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr ""
+-#~ "Diego Búrigo Zacarão <diegobz@projetofedora.org>\n"
+-#~ "Valnir Ferreira Jr <vferreir@redhat.com>\n"
+-#~ "Igor Pires Soares <igor@projetofedora.org>\n"
+-#~ "Oliver Silva <oliverpsilva@gmail.com>"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "Ferramenta de Criação de Políticas do SELinux"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "Esta ferramenta pode ser utilizada para gerar um framework de políticas, "
+-#~ "para restringir aplicações ou usuários usando o SELinux.\n"
+-#~ "\n"
+-#~ "Esta ferramenta gera:\n"
+-#~ "Arquivo do tipo de execução (te)\n"
+-#~ "Arquivo de Interface (if)\n"
+-#~ "Arquivo do arquivo de contexto (fc)\n"
+-#~ "Shell script (sh) - usado para compilar e instalar a política."
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "Selecione um papel do tipo aplicação/usuário para ser confinada"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Aplicações</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "Standard Init Daemon são daemons iniciados na inicialização através de "
+-#~ "scripts de inicialização. Normalmente necessitam de um script em /etc/"
+-#~ "init.d."
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "Daemons de Inicialização Padrão"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "Internet Services Daemon são daemons iniciados pelo xinetd"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Internet Services Daemon (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "Aplicações/Scripts (CGI) Web - Scripts CGI iniciados pelo servidor web "
+-#~ "(apache)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Aplicações/Scripts (CGI) Web"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "Aplicações do Usuário são quaisquer aplicações iniciadas por eles que "
+-#~ "você gostaria de restringir"
+-
+-#~ msgid "User Application"
+-#~ msgstr "Aplicações do Usuário"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Usuários de Login</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "Modifique um registro existente de login de usuário."
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "Regras para Usuários Existentes"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "Este usuário poderia fazer login nesta maquina via X ou Terminal. Por "
+-#~ "padrão este usuário não tem setuid, sem rede, sem sudo ou su"
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "Regra Mínima para Usuários de Terminal"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "Este usuário pode fazer login nesta maquina via X ou Terminal. Por padrão "
+-#~ "este usuário não tem setuid, sem rede, sem sudo ou su"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "Regra de usuário Mínima para X Windows"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "usuário com acesso total a rede, sem setuid se acesso a plicações, sem "
+-#~ "sudo ou su"
+-
+-#~ msgid "User Role"
+-#~ msgstr "Regra de Usuário"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "Usuário pode ter com acesso total a rede, sem setuid e sem acesso as "
+-#~ "aplicações, sem su, ou pode usar sudo para Administração das regras de "
+-#~ "Root"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "Regras de Usuários Admin"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Usuários Root</b>"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "Selecione o Usuário Root, se este usuário for utilizado para administrar "
+-#~ "a máquina ao executar como root. Este usuário estará habilitado a "
+-#~ "autenticar no sistema diretamente."
+-
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Regra de Usuário Admin Root"
+-
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "Selecione um regra de usuário ou aplicação a ser confinada."
+-
+-#~ msgid "Name"
+-#~ msgstr "Nome"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "Insira o caminho completo para o executável a ser restrito."
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "Insira um nome Ãºnico para o papel de aplicação ou usuário."
+-
+-#~ msgid "Executable"
+-#~ msgstr "Executável"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Script de inicialização"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "Insira o caminho completo para script de inicialização usado para iniciar "
+-#~ "a aplicação restrita."
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "Selecione os papéis de usuários que você deseja customizar"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr ""
+-#~ "Selecione os papéis do usuário que irá acessar os domínios de aplicações"
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "Selecione o(s) domínio(s) de usuário adicionais para a transição"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "Selecione os domínios de aplicações para os quais você gostaria que este "
+-#~ "papel de usuário transitasse."
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "Selecione os papéis de usuário de acesso ao domínio"
+-
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "Selecione o(s) domínio(s) que este papel de usuário administrará"
+-
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr ""
+-#~ "Selecione os domínios que você gostaria que este usuário administrasse."
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "Selecione papéis adicionais para esse usuário"
+-
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr ""
+-#~ "Insira portas de rede que o papel de usuário/aplicação está escutando"
+-
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>Portas TCP</b>"
+-
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "Permite que regras de aplicações/usuários restritas sejam vinculados a "
+-#~ "uma porta udp qualquer"
+-
+-#~ msgid "All"
+-#~ msgstr "Todas"
+-
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "Permite que aplicações/usuários chamem o bindresvport com 0. Vinculando "
+-#~ "às portas 600-1024 "
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Insira uma lista de portas udp, separadas por vírgulas, ou intervalos de "
+-#~ "portas Ã s quais esta aplicação/papel de usuário está vinculada. Exemplo: "
+-#~ "612, 650-660"
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "Portas não reservadas (>1024)"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "Selecione as Portas"
+-
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "Permite que aplicações/usuários sejam vinculados a qualquer porta udp > "
+-#~ "1024"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>Portas UDP</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "Insira portas de rede as quais este papel de usuário/aplicação está "
+-#~ "conectado"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Insira uma lista de portas tcp, separadas por vírgulas, ou intervalos de "
+-#~ "portas Ã s quais esta aplicação/papel de usuário está conectada. Exemplo: "
+-#~ "612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Insira uma lista de portas udp, separadas por vírgulas, ou intervalos de "
+-#~ "portas Ã s quais esta aplicação/papel de usuário está conectada. Exemplo: "
+-#~ "612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "Selecione as características comuns da aplicação"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "Escreve mensages no syslog\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr ""
+-#~ "A aplicação utiliza o /tmp para criar/manipular arquivos temporários "
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "Utiliza o PAM para autenticação"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "Ustilizar nsswitch ou chamadas getpw*"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "Utilize dbus"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Envia mensages de auditoria"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "Interaja com o terminal"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "Envia email"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "Selecione o(s) arquivo(s)/diretório(s) que a aplicação gerencia"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "Adicione arquivos/diretórios que a aplicação necessitará para gravação. "
+-#~ "Arquivos Pid, Arquivos de log, Arquivos em /var/lib..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "Selecione os booleanos que a aplicação usa"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "Adiciona/Remove booleanos usados para esta aplicação/usuário confinado"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "Selecione o diretório para a criação dos arquivos da política "
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "Diretório da Política"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "Arquivos de Política Gerados"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Esta ferramenta gerará o seguinte:\n"
+-#~ "Tipo de Execução (te), Arquivo de Contexto (fc), Interface (if) e Shell "
+-#~ "script (sh).\n"
+-#~ "Execute o shell script pra compilar/instalar e reetiquetar arquivos/"
+-#~ "diretórios.\n"
+-#~ "Use o semanage ou o useradd para mapear o login de usuários do Linux para "
+-#~ "os papéis de usuário.\n"
+-#~ "Agora você pode deixar a máquina no modo permissivo (setenforce 0). \n"
+-#~ "Autentique com o usuário e teste este papel de usuário.\n"
+-#~ "Use audit2allow -R para gerar regras adicionais para o arquivo te.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Esta ferramenta gerará o seguinte:\n"
+-#~ "Tipo de Execução (te), Arquivo de Contexto (fc), Interface (if) e Shell "
+-#~ "script (sh).\n"
+-#~ "Execute o shell script pra compilar/instalar e reetiquetar arquivos/"
+-#~ "diretórios.\n"
+-#~ "Agora você pode deixar a máquina no modo permissivo (setenforce 0). \n"
+-#~ "Execute/reinicie a aplicação para gerar mensagens avc.\n"
+-#~ "Use audit2allow -R para gerar regras adicionais para o arquivo te.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "Adiciona Diálogos Boleanos"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "Nome Booleano"
+-
+-#~ msgid "Role"
+-#~ msgstr "Regra"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "Usuário_Existente"
+-
+-#~ msgid "Application"
+-#~ msgstr "Aplicação"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s deve ser um diretório"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "Você deve selecionar um usuário"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "Selecione o arquivo executável a ser restrito."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "Selecione o arquivo do script de inicialização a ser restrito."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "Selecione o(s) arquivo(s) que a aplicação restrita cria ou escreve"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "Selecione o(s) diretório(s) que a aplicação restrita Ã© proprietária e que "
+-#~ "precisam de direito de escrita "
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "Selecione o diretório para a criação dos arquivos da política"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Use %s_t já definido para politica em uso. \n"
+-#~ "Você deseja continuar"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "Verifique o Nome"
+-
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Modulo %s.pp carregado na plitica atual.\n"
+-#~ "Você deseja continuar ?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "Você deve inserir um nome"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Você deve inserir um executável"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "Configure o SELinux"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "As portas devem ser números ou intervalos de números de 1 a %d"
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "Você deve inserir um nome para o seu processo restrito"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "Tipos USER não são executáveis permitidos"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr ""
+-#~ "Somente DAEMONS de aplicações podem utilizar um script de inicialização"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog deve ser um valor booleano"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "Tipos USER obtém um tipo tmp automaticamente"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr ""
+-#~ "Você deve inserir o caminho do executável para o seu processo restrito"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Arquivo do tipo de reforço"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "Arquivo de interface"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "Arquivo do Arquivo de Contextos"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "Configurar Script"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Tipo de Porta\n"
+-#~ "do SELinux"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "Protocolo"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "Nível\n"
+-#~ "MLS/MCS"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "Porta"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "O número da porta \"%s\" não Ã© válido. 0 < NÚMERO_DA_PORTA < 65536 "
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "Visualização em Lista"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "Visualização de Grupo"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "Proteção do Serviço do SELinux"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon acct"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "Admin"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "Permitir que todos os daemons gravem corefiles em /"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr ""
+-#~ "Permitir que todos os daemons tenham a habilidade de usar ttys não "
+-#~ "alocados"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "Privilégios do Usuário"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir que contas de usuários gadmin do SELinux executem arquivos no "
+-#~ "diretório pessoal ou no /tmp"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir que contas de usuários convidados do SELinux executem arquivos "
+-#~ "no diretório pessoal ou no /tmp"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "Proteção de Memória"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "Permitir pilha de execução do java"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Montagem"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "Permitir que o mount monte qualquer arquivo"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "Permitir que o mount monte qualquer diretório"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "Permitir pilha de execução do mplayer"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "Permitir que o ssh execute o ssh-keysign"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir que contas de usuários \"staff\" do SELinux executem arquivos no "
+-#~ "diretório pessoal ou no /tmp"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir que contas de usuários \"sysadm\" do SELinux executem arquivos "
+-#~ "no diretório pessoal ou no /tmp"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "Permitir que contas de usuários não restritas do SELinux executem "
+-#~ "arquivos no diretório pessoal ou no /tmp"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Configuração de Rede"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "Permitir que pacotes não etiquetados transitem pela rede"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "Permitir que contas de usuários \"user\" do SELinux executem arquivos no "
+-#~ "diretório pessoal ou no /tmp"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr ""
+-#~ "Permitir que não restritos executem dyntrans para unconfined_execmem"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Bancos de Dados"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "Permitir que usuários conectem ao soquete do mysql"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "Permitir que usuários conectem ao soquete do postgres"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "Permitir que clientes escrevam na memória compartilhada do X"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Permitir que contas de usuários \"xguest\" do SELinux executem arquivos "
+-#~ "no diretório pessoal ou no /tmp"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "Permitir que daemons executem com o NIS"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "Aplicações Web"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "Mover usuário \"staff\" do SELinux para o Domínio do Navegador Web"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "Mover usuário \"sysadm\" do SELinux para o Domínio do Navegador Web"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "Mover usuário \"user\" do SELinux para o Domínio do Navegador Web"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "Mover usuário \"xguest\" do SELinux para o Domínio do Navegador Web"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr ""
+-#~ "Permitir que Navegadores Web \"staff\" escrevam nos diretórios pessoais"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "Desabilitar proteção do SELinux para o amanda"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "Desabilitar proteção do SELinux para o amavis"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon apmd"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon arpwatch"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon auditd"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon automount"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "Desabilitar proteção do SELinux para o avahi"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon bluetooth"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon canna"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon cardmgr"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Desabilitar proteção do SELinux para o Cluster Server"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "Permitir que o cdrecord leia vários conteúdos: nfs, samba, dispositivos "
+-#~ "removíveis, arquivos temporários e não confiáveis dos usuários"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon ciped"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon clamd"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "Desabilitar proteção do SELinux para o clamscan"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "Desabilitar proteção do SELinux para o clvmd"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon comsat"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon courier"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon cpucontrol"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon cpuspeed"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon crond"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "Impressão"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "Desabilitar proteção do SELinux para o servidor cupsd"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon cupsd"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "Desabilitar proteção do SELinux para o cupsd_lpd"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon cvs"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon cyrus"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon dbskkd"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon dbusd"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "Desabilitar proteção do SELinux para o dccd"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "Desabilitar proteção do SELinux para o dccifd"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "Desabilitar proteção do SELinux para o dccm"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon ddt"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon devfsd"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon dhcpc"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon dhcpd"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon dictd"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "Permitir que o sysadm_t inicie daemons diretamente"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Desabilitar proteção do SELinux para o Evolution"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "Jogos"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "Desabilitar proteção do SELinux para jogos"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "Desabilitar proteção do SELinux para os navegadores web"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Desabilitar proteção do SELinux para o Thunderbird"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon distccd"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon dmesg"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon dnsmasq"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon dovecot"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon entropyd"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "Desabilitar proteção do SELinux para o fetchmail"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon fingerd"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon freshclam"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon fsdaemon"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon gpm"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon gss"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon hal"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "Compatibilidade"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "Não auditar coisas que nós sabemos que estão violadas mas que não são "
+-#~ "riscos de segurança"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon hostname"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon hotplug"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon howl"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon cups hplip"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "Desabilitar proteção do SELinux para o httpd rotatelogs"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "Serviço HTTPD"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "Desabilitar proteção do SELinux para o http suexec"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon hwclock"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon i18n"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon imazesrv"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "Desabilitar proteção do SELinux para os daemons filhos do inetd"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon inetd"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon innd"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon iptables"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon ircd"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon irqbalance"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon iscsi"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon jabberd"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon kadmind"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon klogd"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon krb5kdc"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "Desabilitar proteção do SELinux para os daemons ktalk"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon kudzu"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon locate"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon lpd"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon lrrd"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon lvm"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon mailman"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr ""
+-#~ "Permitir que o evolution e o thunderbird leiam os arquivos dos usuários"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon mdadm"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon monopd"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "Permitir que o navegador mozilla leia os arquivos dos usuários"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon mrtg"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon mysqld"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon nagios"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "Serviço de Nomes"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon named"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon nessusd"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "Desabilitar proteção do SELinux para o NetworkManager"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon nfsd "
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon nmbd"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon nrpe"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon nscd"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon nsd"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon ntpd"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "Desabilitar proteção do SELinux para o oddjob"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "Desabilitar proteção do SELinux para o oddjob_mkhomedir"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon openvpn"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon pam"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "Desabilitar proteção do SELinux para o pegasus"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon perdition"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon portmap"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon portslave"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "Desabilitar proteção do SELinux para o postfix"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon postgresql"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "Permitir que o pppd seja executado para um usuário regular"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "Desabilitar proteção do SELinux para o pptp"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon prelink"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon privoxy"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon ptal"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon pxe"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "Desabilitar proteção do SELinux para o pyzord"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon quota"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon radiusd"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon radvd"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "Desabilitar proteção do SELinux para o rdisc"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "Desabilitar proteção do SELinux para o readahead"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "Permitir que programas leiam arquivos em localizações não padrões "
+-#~ "(default_t)"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "Desabilitar proteção do SELinux para o restorecond"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon rhgb"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "Desabilitar proteção do SELinux para o ricci"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "Desabilitar proteção do SELinux para o ricci_modclusterd"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon rlogind"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon rpcd"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "Desabilitar proteção do SELinux para o rshd"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon rsync"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr ""
+-#~ "Permitir que o ssh seja executado a partir do inetd ao invés de ser "
+-#~ "executado como um daemon"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Permitir que o Samba compartilhe diretórios nfs"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Servidor de autenticação SASL"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "Permitir que o servidor de autenticação sasl leia o /etc/shadow"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "Permitir que o servidor X-Windows mapeie uma região de memória como "
+-#~ "executável e gravável"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon saslauthd"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon scannerdaemon"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "Não permitir que a transição para sysadm_t, sudo e su tenha efeito"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "Não permitir que qualquer processo carregue módulos do kernel"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr ""
+-#~ "Não permitir que qualquer processo modifique a política do SELinux para o "
+-#~ "kernel"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon sendmail"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "Desabilitar proteção do SELinux para o setrans"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon setroublesoot"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon slapd"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon slrnpull"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon smbd"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon snmpd"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon snort"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon soundd"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon sound"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "Proteção contra spam "
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon spamd"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "Permitir que o spamd acesse os diretórios pessoais"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Permitir que o daemon do Spam Assasin tenha acesso a  rede"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon speedmgmt"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "Permitir que o daemon do squid se conecte a rede"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon squid"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon ssh"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "Permitir logins do ssh como sysadm_r:sysadm_t"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "Permitir que usuários staff_r pesquisem o diretório pessoal do sysadm e "
+-#~ "leiam os arquivos (como o ~/.bashrc)"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Túnel SSL Universal"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon stunnel"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr ""
+-#~ "Permitir que o daemon stunnel seja executado como autônomo, fora do xinetd"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon swat"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon sxid"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon syslogd"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "Desabilitar proteção do SELinux para os trabalhos cron do sistema"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon tcp"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon telnet"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon tftpd"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon transproxy"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon udev"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon uml"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Permitir que o xinetd seja executado de forma não restrita, incluindo "
+-#~ "quaisquer serviços que ele inicie que não tenham uma transição de domínio "
+-#~ "explicitamente definida"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Permitir que scripts rc sejam executados de forma não restrita, incluindo "
+-#~ "quaisquer daemons iniciados por um script rc que não tenham uma transição "
+-#~ "de domínio explicitamente definida"
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "Permitir que o rpm seja executado de forma não restrita"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "Permitir que utilitários privilegiados como o hotplug e o insmod sejam "
+-#~ "executados de maneira não restrita"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon updfstab"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon uptimed"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "Permitir que o user_r alcance o sysadm_r via su, sudo ou userhelper. Caso "
+-#~ "contrário, somente o staff_r poderá fazer isso"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "Permitir que os usuários executem o comando mount"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "Permitir que usuários regulares tenham acesso direto ao mouse (somente "
+-#~ "permite o servidor X)"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "Permitir que usuários executem o comando dmesg"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "Permitir que os usuários controlem as interfaces de rede (também "
+-#~ "necessita do USERCTL=true)"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "Permitir que os usuários normais executem o ping"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr ""
+-#~ "Permitir que os usuários leiam/escrevam noextattrfile (FAT, CDROM, FLOPPY)"
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "Permitir que os usuários leiam e escrevam em dispositivos usb"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "Permitir que os usuários executem servidores TCP (vinculem portas e "
+-#~ "aceitem conexões do mesmo domínio e de usuários externos). Desabilitar "
+-#~ "esta opção força o modo passivo do FTP e pode modificar outros protocolos"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "Permitir que os usuários vejam as estatísticas de ttyfiles"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon uucpd"
+-
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon vmware"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon watchdog"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon winbind"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon xdm"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "Permitir que o xdm realize logins como sysadm_r:sysadm_t"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon xen"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "Permitir que o xen leia/escreva em dispositivos de discos físicos"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon xfs"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "Desabilitar proteção do SELinux para o xen control"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon ypbind"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o NIS Password Daemon"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon ypserv"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o NIS Transfer Daemon"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Permitir que o usuário webadm do SELinux gerencie diretórios pessoais de "
+-#~ "usuários sem privilégios"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Permitir que o usuário webadm do SELinux leia diretórios pessoais de "
+-#~ "usuários sem privilégios"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "Você está certo de que deseja remover %s \"%s\"?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "Remover %s"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "Adicionar %s"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "Modificar %s"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "Permissivo"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "Reforçado"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "A mudança de política fará com que todo o sistema de arquivos seja "
+-#~ "reetiquetado na próxima inicialização. Isto pode levar muito tempo "
+-#~ "dependendo do tamanho do sistema de arquivos. Você deseja continuar?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Desabilitar o SELinux requer a reinicialização do sistema. Isso não Ã© "
+-#~ "recomendado. Se depois você optar por habilitar o SELinux novamente, o "
+-#~ "sistema necessitará de ser reetiquetado. Se você somente deseja ver se o "
+-#~ "SELinux está causando algum problema para o seu sistema, altere-o para o "
+-#~ "modo permissivo, o qual somente irá registrar erros e não forçará a "
+-#~ "política do SELinux. O modo permissivo não requer a reinicialização do "
+-#~ "sistema. Você deseja continuar?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Habilitar o SELinux fará com que todo o sistema de arquivos seja "
+-#~ "reetiquetado na próxima inicialização. Isto pode levar muito tempo "
+-#~ "dependendo do tamanho do sistema de arquivos. Você deseja continuar?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c) 2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "Adicionar Mapeamento de Login do SELinux"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "Adicionar Portas de Rede do SELinux"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "Tipo SELinux"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "Nível MLS/MCS\n"
+-#~ "do SELinux"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "Especificação do Arquivo"
+-
+-#~ msgid "File Type"
+-#~ msgstr "Tipo do Arquivo"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "todos os arquivos\n"
+-#~ "arquivos regulares\n"
+-#~ "diretórios\n"
+-#~ "dispositivos de caractere\n"
+-#~ "dispositivos de bloco\n"
+-#~ "soquetes\n"
+-#~ "ligações simbólicas\n"
+-#~ "pipe do named\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Adicionar Usuário do SELinux"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "Administração do SELinux"
+-
+-#~ msgid "Add"
+-#~ msgstr "Adicionar"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "_Propriedades"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "_Remover"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "Selecionar Objeto de Gerenciamento"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Selecione:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "Modo Reforçado Padrão do Sistema"
+-
+-#~ msgid ""
+-#~ "Disabled\n"
+-#~ "Permissive\n"
+-#~ "Enforcing\n"
+-#~ msgstr ""
+-#~ "Desabilitado\n"
+-#~ "Permissivo\n"
+-#~ "Reforçado\n"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "Modo Reforçado Atual"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "Tipo de Política Padrão do Sistema:"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "Selecione se você quiser reetiquetar todo o sistema de arquivos na "
+-#~ "próxima inicialização. A reetiquetagem pode levar bastante tempo, "
+-#~ "dependendo do tamanho do seu sistema de arquivos. Se você estiver mudando "
+-#~ "os tipos das políticas ou alterando de desabilitado para reforçado, a "
+-#~ "reetiquetagem Ã© requerida."
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Reetiquetar na próxima inicialização."
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid "label37"
+-#~ msgstr "label37"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "Reverter as configurações boleanas para o valor padrão do sistema"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "Alternar entre as customizações e todas as Boleanas "
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "Filtro"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "label50"
+-#~ msgstr "label50"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "Adicionar Contexto do Arquivo"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "Modificar Contexto do Arquivo"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "Remover Contexto do Arquivo"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "Alternar entre todas as customizações do contexto do arquivo"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "label38"
+-#~ msgstr "label38"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "Adicionar Mapeamento de Usuário do SELinux"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Modificar Mapeamento do Usuário do SELinux"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Remover Mapeamento do Usuário do SELinux"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "label39"
+-#~ msgstr "label39"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "Adicionar Tradução"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "Modificar Tradução"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "Remover Tradução"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "label41"
+-#~ msgstr "label41"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Modificar Usuário do SELinux"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "label40"
+-#~ msgstr "label40"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "Adicionar Porta de Rede"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "Editar Porta de Rede"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "Remover Porta de Rede"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "Alternar entre as customizações de todas as Portas "
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "label42"
+-#~ msgstr "label42"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "Gerar novo módulo de política"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "Carregar módulo de política"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "Remover módulo carregável de política"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "Habilita/Desabilita regras adicionais do audit, que normalmente não são "
+-#~ "reportadas nos arquivos de log."
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "label44"
+-#~ msgstr "label44"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "Nível de Sensibilidade"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "O usuário \"%s\" do SELinux Ã© requerido"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Requer valor"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "Permite que aplicações/usuários sejam vinculados a qualquer porta tcp > "
+-#~ "1024 "
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "Permite que regras de aplicações/usuários restritas sejam vinculados a "
+-#~ "uma porta tcp qualquer"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Insira uma lista de portas tcp, separadas por vírgulas ou especifique um "
+-#~ "intervalo, nas quais a regra de aplicação/usuário está vinculada. "
+-#~ "Examplo: 612, 650-660"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "Assistente de Criação de Políticas do SELinux"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "Portas não reservadas (> 1024)"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr ""
+-#~ "Use este botão de seleção se a sua aplicação chama o bindresvport com 0."
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "Reforçado\n"
+-#~ "Permissivo\n"
+-#~ "Desabilitado\n"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "label25"
+-#~ msgstr "label25"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "label26"
+-#~ msgstr "label26"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid "label28"
+-#~ msgstr "label28"
+-
+-#~ msgid "label30"
+-#~ msgstr "label30"
+-
+-#~ msgid "label31"
+-#~ msgstr "label31"
+-
+-#~ msgid "label32"
+-#~ msgstr "label32"
+-
+-#~ msgid "label33"
+-#~ msgstr "label33"
+-
+-#~ msgid "label34"
+-#~ msgstr "label34"
+-
+-#~ msgid "label35"
+-#~ msgstr "label35"
+-
+-#, fuzzy
+-#~ msgid "label51"
+-#~ msgstr "label25"
+-
+-#~ msgid "value"
+-#~ msgstr "valor"
+-
+-#~ msgid "You must be root to run %s."
+-#~ msgstr "Você deve ser root para executar %s."
+-
+-#~ msgid "Other"
+-#~ msgstr "Outros"
+-
+-#~ msgid ""
+-#~ "Select XWindows login user, if this is a user who will login to a machine "
+-#~ "via X"
+-#~ msgstr ""
+-#~ "Selecione o usuário para login no XWindows, se este Ã© um usuário que irá "
+-#~ "autenticar em uma máquina via X"
+-
+-#~ msgid "XWindows Login User"
+-#~ msgstr "Usuário para Login do XWindows"
+-
+-#~ msgid ""
+-#~ "Select Terminal Login User, if this user will login to a machine only via "
+-#~ "a terminal or remote login"
+-#~ msgstr ""
+-#~ "Selecione o Usuário para Login no Terminal, se este usuário irá "
+-#~ "autenticar em um máquina apenas via terminal ou login remoto"
+-
+-#~ msgid "Terminal Login User"
+-#~ msgstr "Usuário para Login no Terminal"
+-
+-#~ msgid "Name of application to be confined"
+-#~ msgstr "Nome da aplicação a ser restrita"
+-
+-#~ msgid "Incoming Network Port Connections"
+-#~ msgstr "Conexões de Portas de Entrada da Rede"
+-
+-#~ msgid "Outgoing Network Port Connections"
+-#~ msgstr "Conexões de Portas de Saída da Rede"
+-
+-#~ msgid ""
+-#~ "Application uses nsswitch or translates UID's (daemons that run as non "
+-#~ "root)"
+-#~ msgstr ""
+-#~ "A aplicação utiliza o nsswitch ou traduz UID's (daemons que não são "
+-#~ "executados como root)"
+-
+-#~ msgid "Files and Directories"
+-#~ msgstr "Arquivos e Diretórios"
+-
+-#~ msgid "Generate policy in this directory"
+-#~ msgstr "Gerar política neste diretório"
+-
+-#~ msgid "Login"
+-#~ msgstr "Login"
+-
+-#~ msgid "Allow direct login to the console device. Requiered for System 390"
+-#~ msgstr ""
+-#~ "Permitir login direto ao dispositivo do console. Necessário para o System "
+-#~ "390"
+-
+-#~ msgid "Allow cvs daemon to read shadow"
+-#~ msgstr "Permitir que o daemon do cvs leia shadow"
+-
+-#~ msgid ""
+-#~ "Allow unconfined executables to make their heap memory executable.  Doing "
+-#~ "this is a really bad idea. Probably indicates a badly coded executable, "
+-#~ "but could indicate an attack. This executable should be reported in "
+-#~ "bugzilla"
+-#~ msgstr ""
+-#~ "Permitir que executáveis não restritos possam fazer com que a sua memória "
+-#~ "heap seja executável. Fazer isso Ã© uma má idéia. Provavelmente indica um "
+-#~ "código ruim executável, mas pode indicar um ataque. Este executável deve "
+-#~ "ser reportado ao bugzilla"
+-
+-#~ msgid ""
+-#~ "Allow unconfined executables to map a memory region as both executable "
+-#~ "and writable, this is dangerous and the executable should be reported in "
+-#~ "bugzilla"
+-#~ msgstr ""
+-#~ "Permitir que executáveis não restritos mapeiem uma região da memória como "
+-#~ "executável e gravável, isto Ã© perigoso e o executável deve ser reportado "
+-#~ "ao bugzilla"
+-
+-#~ msgid ""
+-#~ "Allow all unconfined executables to use libraries requiring text "
+-#~ "relocation that are not labeled textrel_shlib_t"
+-#~ msgstr ""
+-#~ "Permitir que executáveis não restritos possam utilizar bibliotecas que "
+-#~ "requerem realocação de texto que não estão etiquetadas como "
+-#~ "textrel_shlib_t"
+-
+-#~ msgid ""
+-#~ "Allow unconfined executables to make their stack executable.  This should "
+-#~ "never, ever be neessary. Probably indicates a badly coded executable, but "
+-#~ "could indicate an attack. This executable should be reported in bugzilla"
+-#~ msgstr ""
+-#~ "Permitir que executáveis não restritos tornem a sua pilha executável. "
+-#~ "Isso nunca deveria ser necessário. Provavelmente indica um código ruim "
+-#~ "executável, mas pode indicar um ataque. Este executável deve ser "
+-#~ "reportado ao bugzilla"
+-
+-#~ msgid "FTP"
+-#~ msgstr "FTP"
+-
+-#~ msgid "Allow ftpd to full access to the system"
+-#~ msgstr "Permitir que o ftpd tenha acesso completo ao sistema"
+-
+-#~ msgid ""
+-#~ "Allow ftpd to upload files to directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Permitir que ftpd faça o upload de arquivos para diretórios etiquetados "
+-#~ "como public_content_rw_t"
+-
+-#~ msgid "Allow ftp servers to use cifs used for public file transfer services"
+-#~ msgstr ""
+-#~ "Permitir que servidores ftp utilizem o cifs usado por serviços de "
+-#~ "transferência de arquivos públicos"
+-
+-#~ msgid "Allow ftp servers to use nfs used for public file transfer services"
+-#~ msgstr ""
+-#~ "Permitir que servidores ftp utilizem o nfs usado por serviços de "
+-#~ "transferência de arquivos públicos"
+-
+-#~ msgid "Allow gpg executable stack"
+-#~ msgstr "Permitir pilha de execução do gpg"
+-
+-#~ msgid "Allow gssd to read temp directory"
+-#~ msgstr "Permitir que o gssd leia o diretório temporário"
+-
+-#~ msgid ""
+-#~ "Allow httpd daemon to write files in directories labeled "
+-#~ "public_content_rw_t"
+-#~ msgstr ""
+-#~ "Permitir que o daemon httpd grave arquivos nos diretórios etiquetados "
+-#~ "como public_content_rw_t"
+-
+-#~ msgid "Allow Apache to communicate with avahi service"
+-#~ msgstr "Permitir que o Apache comunique com o serviço do avahi"
+-
+-#~ msgid "Allow Apache to use mod_auth_pam"
+-#~ msgstr "Permitir que o Apache use o mod_auth_pam"
+-
+-#~ msgid ""
+-#~ "Allow httpd scripts to write files in directories labeled "
+-#~ "public_content_rw_t"
+-#~ msgstr ""
+-#~ "Permitir que os scripts do httpd gravem arquivos nos diretórios "
+-#~ "etiquetados como public_content_rw_t"
+-
+-#~ msgid "Allow daemons to use kerberos files"
+-#~ msgstr "Permitir que os daemons utilizem arquivos do kerberos"
+-
+-#~ msgid ""
+-#~ "Allow nfs servers to modify public files used for public file transfer "
+-#~ "services"
+-#~ msgstr ""
+-#~ "Permitir que servidores nfs modifiquem arquivos públicos utilizados por "
+-#~ "serviços de transferência de arquivos públicos"
+-
+-#~ msgid "Polyinstatiation"
+-#~ msgstr "Poli-instanciação"
+-
+-#~ msgid "Enable polyinstantiated directory support"
+-#~ msgstr "Habilitar suporte a diretórios poli-instanciados"
+-
+-#~ msgid "Allow sysadm_t to debug or ptrace applications"
+-#~ msgstr "Permitir que o sysadm_t faça a depuração ou ptrace de aplicações"
+-
+-#~ msgid ""
+-#~ "Allow rsync to write files in directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Permitir que o rsync grave arquivos nos diretórios etiquetados como "
+-#~ "public_content_rw_t"
+-
+-#~ msgid ""
+-#~ "Allow Samba to write files in directories labeled public_content_rw_t"
+-#~ msgstr ""
+-#~ "Permitir que o Samba grave arquivos nos diretórios etiquetados como "
+-#~ "public_content_rw_t"
+-
+-#~ msgid "Zebra"
+-#~ msgstr "Zebra"
+-
+-#~ msgid "Allow zebra daemon to write it configuration files"
+-#~ msgstr "Permitir que o daemon zebra grave arquivos de configuração"
+-
+-#~ msgid ""
+-#~ "Allow system cron jobs to relabel filesystem for restoring file contexts"
+-#~ msgstr ""
+-#~ "Permitir que trabalhos de sistema do cron reetiquetem os sistemas de "
+-#~ "arquivos para restaurar contextos de arquivos"
+-
+-#~ msgid "Enable extra rules in the cron domain to support fcron"
+-#~ msgstr "Habilitar regras extras no domínio do cron para suportar o fcron"
+-
+-#~ msgid "Disable SELinux protection for ftpd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon ftpd"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "Allow ftpd to run directly without inetd"
+-#~ msgstr "Permitir que o ftpd seja executado diretamente sem o inetd"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#~ msgid "Allow ftp to read/write files in the user home directories"
+-#~ msgstr ""
+-#~ "Permitir que o ftp leia/grave arquivos no diretório pessoal dos usuários"
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#~ msgid ""
+-#~ "This should be enabled when all programs are compiled with ProPolice/SSP "
+-#~ "stack smashing protection.  All domains will be allowed to read from /dev/"
+-#~ "urandom"
+-#~ msgstr ""
+-#~ "Isto deve ser habilitado quando todos os programas são compilados com a "
+-#~ "proteção de quebra de pilha ProPolice/SSP. Todos os domínios estarão "
+-#~ "aptos a ler de /dev/urandom"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "Allow HTTPD to support built-in scripting"
+-#~ msgstr "Permitir que o HTTPD suporte scripts embutidos"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "Allow HTTPD to send mail"
+-#~ msgstr "Permitir que o HTTPD envie e-mail"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Allow HTTPD scripts and modules to network connect to databases"
+-#~ msgstr ""
+-#~ "Permitir que scripts e módulos do HTTPD conectem a bancos de dados "
+-#~ "através da rede"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#~ msgid "Allow HTTPD scripts and modules to connect to the network"
+-#~ msgstr "Permitir que scripts e módulos do HTTPD conectem a rede"
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid "Allow httpd to act as a relay"
+-#~ msgstr "Permitir que o HTTPD atue como relay"
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon httpd"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Allow HTTPD cgi support"
+-#~ msgstr "Permitir que o HTTPD suporte cgi"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid "Allow HTTPD to run as a ftp server"
+-#~ msgstr "Permitir que o HTTPD seja executado como um servidor ftp"
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "Allow HTTPD to read home directories"
+-#~ msgstr "Permitir que o HTTPD leia diretórios pessoais"
+-
+-#~ msgid ""
+-#~ "Allow HTTPD to run SSI executables in the same domain as system CGI "
+-#~ "scripts"
+-#~ msgstr ""
+-#~ "Permitir que o HTTPD execute executáveis SSI no mesmo domínio que os "
+-#~ "scripts CGI do sistema"
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid ""
+-#~ "Unify HTTPD to communicate with the terminal.  Needed for handling "
+-#~ "certificates"
+-#~ msgstr ""
+-#~ "Unificar o HTTPD para comunicar com o terminal. Necessário para lidar com "
+-#~ "certificados"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "Unify HTTPD handling of all content files"
+-#~ msgstr "Unificar o tratamento do HTTPD para todos os arquivos do conteúdo"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid "Allow named to overwrite master zone files"
+-#~ msgstr "Permitir que o named sobrescreva arquivos da zona mestre"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid "Allow NFS to share any file/directory read only"
+-#~ msgstr ""
+-#~ "Permitir que o NFS compartilhe qualquer arquivo/diretório somente leitura"
+-
+-#~ msgid "Allow NFS to share any file/directory read/write"
+-#~ msgstr ""
+-#~ "Permitir que o NFS compartilhe qualquer arquivo/diretório com direitos de "
+-#~ "leitura/escrita"
+-
+-#~ msgid "Allow openvpn service access to users home directories"
+-#~ msgstr ""
+-#~ "Permitir que o serviço openvpn acesse o diretório pessoal dos usuários"
+-
+-#~ msgid "Allow pppd daemon to insert modules into the kernel"
+-#~ msgstr "Permitir que o daemon pppd insira módulos no kernel"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "Disable SELinux protection for pppd daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon pppd"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the mozilla ppp daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon mozilla ppp"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid "Allow programs to read untrusted content without relabel"
+-#~ msgstr ""
+-#~ "Permitir que programas leiam conteúdos não confiáveis sem reetiquetar"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid "Allow Samba to share users home directories"
+-#~ msgstr "Permitir que o Samba compartilhe diretórios pessoais dos usuários"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid "Spam Assassin"
+-#~ msgstr "Spam Assassin"
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#~ msgid "Allow spammassasin to access the network"
+-#~ msgstr "Permitir que o spammassasin acesse a rede"
+-
+-#~ msgid "Use lpd server instead of cups"
+-#~ msgstr "Usar o servidor lpd ao invés do cups"
+-
+-#~ msgid "Support NFS home directories"
+-#~ msgstr "Suporte aos diretórios pessoais do NFS"
+-
+-#~ msgid "Allow users to login with CIFS home directories"
+-#~ msgstr "Permitir que os usuários façam o login com diretórios pessoais CIFS"
+-
+-#~ msgid ""
+-#~ "Allow web applications to write untrusted content to disk (implies read)"
+-#~ msgstr ""
+-#~ "Permitir que aplicações web gravem conteúdo não confiável no disco "
+-#~ "(implica em direito de leitura)"
+-
+-#~ msgid "Disable SELinux protection for zebra daemon"
+-#~ msgstr "Desabilitar proteção do SELinux para o daemon zebra"
+-
+-#~ msgid "Allow httpd to access samba/cifs file systems"
+-#~ msgstr "Permitir que o httpd acesse sistemas de arquivos samba/cifs"
+-
+-#~ msgid "Allow httpd to access nfs file systems"
+-#~ msgstr "Permitir que o httpd acesse sistemas de arquivos nfs"
+-
+-#~ msgid ""
+-#~ "Allow samba to act as the domain controller, add users, groups and change "
+-#~ "passwords"
+-#~ msgstr ""
+-#~ "Permitir que o samba atue como controlador de domínio, adicione usuários, "
+-#~ "grupos e altere senhas"
+-
+-#~ msgid "Allow Samba to share any file/directory read only"
+-#~ msgstr ""
+-#~ "Permitir que o Samba compartilhe qualquer arquivo/diretório somente "
+-#~ "leitura"
+-
+-#~ msgid "Allow Samba to share any file/directory read/write"
+-#~ msgstr ""
+-#~ "Permitir que o Samba compartilhe qualquer arquivo/diretório com direitos "
+-#~ "de leitura/escrita"
+-
+-#~ msgid ""
+-#~ "Allow Samba to run unconfined scripts in /var/lib/samba/scripts directory"
+-#~ msgstr ""
+-#~ "Permitir que o Samba execute scripts não restritos no diretório /var/lib/"
+-#~ "samba/scripts"
+-
+-#~ msgid "Label Prefix"
+-#~ msgstr "Prefixo da Etiqueta"
+-
+-#~ msgid "MLS/MCS Level"
+-#~ msgstr "Nível MLS/MCS"
+-
+-#~ msgid "Group/ungroup network ports by SELinux type."
+-#~ msgstr "Agrupar/desagrupar portas de rede pelo tipo do SELinux."
+-
+-#~ msgid ""
+-#~ "Enable additional audit rules, that are normally not reported in the log "
+-#~ "files."
+-#~ msgstr ""
+-#~ "Habilitar regras adicionais do audit, que normalmente não são reportadas "
+-#~ "nos arquivos de log."
+-
+-#~ msgid ""
+-#~ "Labeling\n"
+-#~ "Prefix"
+-#~ msgstr ""
+-#~ "Prefixo de\n"
+-#~ "Etiquetagem"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Level"
+-#~ msgstr ""
+-#~ "Nível\n"
+-#~ "MLS/MCS"
+-
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Requer 2 ou mais argumentos"
+-
+-#~ msgid "%s not defined"
+-#~ msgstr "%s não definido"
+-
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "%s não Ã© válido para objetos %s\n"
+-
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "intervalo não suportado em máquinas não-MLS"
+-
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Valor inválido %s"
+-
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Para carregar este pacote de políticas criado recentemente no kernel\n"
+-#~ "é necessário que você execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Erro de Opções: %s "
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/ro.po b/policycoreutils/po/ro.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/ro.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/ru.po b/policycoreutils/po/ru.po
+index bf98db7..b2ae081 100644
+--- a/policycoreutils/po/ru.po
++++ b/policycoreutils/po/ru.po
+@@ -1,22 +1,25 @@
+-# translation of policycoreutils.HEAD.ru.po to
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
+-# Andrew Martynov <andrewm@inventa.ru>, 2006, 2007.
+-# Yulia Poyarkova <ypoyarko@redhat.com>, 2006.
++# Translators:
+ # Anatoliy Guskov <anatoliy.guskov@gmail.com>, 2008.
+-# Yulia Poyarkova <yulia.poyarkova@redhat.com>, 2008.
++# Andrew Martynov <andrewm@inventa.ru>, 2006, 2007.
++# Yulia <ypoyarko@redhat.com>, 2006, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD.ru\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-09-10 17:53+1000\n"
+-"Last-Translator: Yulia Poyarkova <yulia.poyarkova@redhat.com>\n"
+-"Language-Team: \n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Russian <trans-ru@lists.fedoraproject.org>\n"
++"Language: ru\n"
+ "MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=KOI8-R\n"
++"Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
++"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -24,150 +27,147 @@ msgid ""
+ "  where: <script> is the name of the init script to run,\n"
+ "         <args ...> are the arguments to that script."
+ msgstr ""
+-"éÓÃÃÌØÚÃ×ÃÎÉÅ: run_init <ÓÃÅÎÃÒÉÊ> <ÃÒÇÕÃÅÎÔÙ ...>\n"
+-"  Ã‡Ã„Ã…: <ÓÃÅÎÃÒÉÊ> - ÃœÃ”àÉÃѠÚÃÃÕÓËÃÃ…ÃÃÇàÓÃÅÎÃÒÉѠÉÎÉÃÉÃÌÉÚÃÃÉÉ,\n"
+-"       <ÃÒÇÕÃÅÎÔÙ ...>  - ÃÅÒÅÄÃ×ÃÃ…ÃÙŠÓÃÅÎÃÒÉÀ ÃÒÇÕÃÅÎÔÙ."
++"ИÑпользование: run_init <Ñценарий> <аргументы ...>\n"
++"  Ð³Ð´Ðµ <Ñценарий> &mdash; Ð¸Ð¼Ñ Ð·Ð°Ð¿ÑƒÑкаемого ÑценариѠинициализации,\n"
++"       <аргументы ...>  &mdash; Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°ÐµÐ¼Ñ‹Ðµ Ñценарию Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ‹."
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+ #, c-format
+ msgid "failed to initialize PAM\n"
+-msgstr "ÓÂÃʠÉÎÉÃÉÃÌÉÚÃÃÉÉ PAM\n"
++msgstr "Ñбой Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ PAM\n"
+ #: ../run_init/run_init.c:139
+ #, c-format
+ msgid "failed to get account information\n"
+-msgstr "ÓÂÃÊ ÃÃÌÕÞÅÎÉѠÓ×ÅÄÅÎÉʠÕÞÅÔÎÃʠÚÃÃÉÓÉ\n"
++msgstr "не ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ ÑведениѠучётной Ð·Ð°Ð¿Ð¸Ñи\n"
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+-msgstr "ðÃÃ’ÃÌØ:"
++msgstr "Пароль:"
+ #: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+ #, c-format
+ msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr "îÅ×ÃÚÃÃÖÎàÎÃÊÔɠ×ÃÛՠÚÃÃÉÓؠנÔÅÎÅ×ÃàÆÃÊÌÅ ÃÃÃ’ÃÌÅÊ.\n"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð½Ð°Ð¹Ñ‚и Ð²Ð°ÑˆÑƒ Ð·Ð°Ð¿Ð¸ÑÑŒ Ð² Ñ‚еневом Ñ„айле Ð¿Ð°Ñ€Ð¾Ð»ÐµÐ¹.\n"
+ #: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+ #, c-format
+ msgid "getpass cannot open /dev/tty\n"
+-msgstr "getpass ÃŽÃ… ÃÃÖÅÔ ÃÔËÒÙÔØ /dev/tty\n"
++msgstr "getpass Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚ Ð¾Ñ‚крыть /dev/tty\n"
+ #: ../run_init/run_init.c:275
+ #, c-format
+ msgid "run_init: incorrect password for %s\n"
+-msgstr "run_init: ÃŽÃ…×ÅÒÎÙÊ ÃÃÃ’ÃÌؠÄÌÑ %s\n"
++msgstr "run_init: Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¹ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ Ð´Ð»Ñ %s\n"
+ #: ../run_init/run_init.c:309
+ #, c-format
+ msgid "Could not open file %s\n"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÔËÒÙÔؠÆÃÊÌ %s\n"
++msgstr "Ðевозможно Ð¾Ñ‚крыть Ñ„айл %s\n"
+ #: ../run_init/run_init.c:336
+ #, c-format
+ msgid "No context in file %s\n"
+-msgstr "îÅԠËÃÎÔÅËÓÔàנÆÃÊÌÅ %s\n"
++msgstr "Ðет ÐºÐ¾Ð½Ñ‚екÑта Ð² Ñ„айле %s\n"
+ #: ../run_init/run_init.c:361
+ #, c-format
+ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+ msgstr ""
+-"éÚ×ÉÎÉÔÅ, run_init ÃÃÖÅԠÂÙÔؠÉÓÃÃÌØÚÃ×ÃÎàÔÃÌØËàÄÌѠÑÄÒàÓ SELinux.\n"
++"Извините, run_init Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ Ð¸Ñпользовано Ñ‚олько Ð´Ð»Ñ Ñдра Ñ SELinux.\n"
+ #: ../run_init/run_init.c:380
+ #, c-format
+ msgid "authentication failed.\n"
+-msgstr "ÓÂÃÊ ÃÃ’Ã×ÅÒËÉ ÃÃÄÌÉÎÎÃÓÔÉ.\n"
++msgstr "Ñбой Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ð¿Ð¾Ð´Ð»Ð¸Ð½Ð½Ð¾Ñти.\n"
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+ #, c-format
+ msgid "Could not set exec context to %s.\n"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠËÃÎÔÅËÓԠÉÓÃÃÌÎÅÎÉѠÄÌÑ %s.\n"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð¸ÑполнениѠдлѠ%s.\n"
+ #: ../audit2allow/audit2allow:230
+ msgid "******************** IMPORTANT ***********************\n"
+-msgstr "********************* Ã·Ã¡Ã¶Ã®Ã¯ ************************\n"
++msgstr "********************* Ð’ÐЖÐО ************************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr "äÌÑ ÃËÔÉ×ÃÃÉÉ ÃÃËÅÔàÃÃÌÉÔÉËɠ×ÙÃÃÌÎÉÔÅ:"
++msgstr "ДлѠактивации Ð¿Ð°ÐºÐµÑ‚а Ð¿Ð¾Ð»Ð¸Ñ‚ики Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚е:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "глобальное"
+ #: ../semanage/seobject.py:222
+ msgid "Could not create semanage handle"
+-msgstr "îŠÕÄÃÃŒÃÓؠÓÃÚÄÃÔؠÕÃÃ’Ã×ÌÅÎÉÅ semanage"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ñоздать Ð´ÐµÑкриптор semanage"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr "ðÃÌÉÔÉËàSELinux ÃŽÃ… ÃÃÄÄÅÒÖÉ×ÃÅԠÕÃÃ’Ã×ÌÅÎÉŠÉÌɠÈÒÃÎÉÌÉÃÃ… ÃŽÃ…ÄÃÓÔÕÃÃŽÃ."
++msgstr "Политика SELinux Ð½Ðµ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÑ‚ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¸Ð»Ð¸ Ñ…ранилище Ð½ÐµÐ´Ð¾Ñтупно."
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÃ’ÃÞÉÔÃÔؠÈÒÃÎÉÌÉÃÃ… ÃÃÌÉÔÉËÉ."
++msgstr "Ðевозможно Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚ать Ñ…ранилище Ð¿Ð¾Ð»Ð¸Ñ‚ики."
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+-msgstr "îÅ×ÃÚÃÃÖÎàÕÓÔÃÃŽÃ×ÉÔØ semanage Ã“ÃÅÄÉÎÅÎÉÅ"
++msgstr "Ðевозможно ÑƒÑтановить Ñоединение semanage"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠÄÉÃÃÃÚÃÃŽ MLS Ã„ÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ Ð°ÐºÑ‚ивный ÑтатуѠMLS"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr "æÕÎËÃÉÃÃŽÃÌØÎÃÓÔØ Ã…ÃÃ… ÃŽÃ… Ã’Ã…ÃÌÉÚÃ×ÃÃŽÃ"
++msgstr "ФункциональноÑÑ‚ÑŒ ÐµÑ‰Ðµ Ð½Ðµ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð°"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "ТранзакциѠsemanage ÑƒÐ¶Ðµ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑетÑÑ"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+-msgstr "îÅ×ÃÚÃÃÖÎàÎÃÞÃÔØ semanage Ã”Ã’ÃÎÚÃËÃÉÀ"
++msgstr "Ðевозможно Ð½Ð°Ñ‡Ð°Ñ‚ÑŒ semanage Ñ‚ранзакцию"
+ #: ../semanage/seobject.py:274
+ msgid "Could not commit semanage transaction"
+-msgstr "îŠÕÄÃÅÔÓÑ ÃÔÃÃ’Ã×ÉÔؠÔÒÃÎÚÃËÃÉÀ semanage"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¾Ñ‚править Ñ‚ранзакцию semanage"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "ТранзакциѠsemanage Ð½Ðµ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑетÑÑ"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+ msgid "Could not list SELinux modules"
+-msgstr "îŠÕÄÃÅÔÓÑ ÃÃÌÕÞÉÔؠÓÃÉÓÃË ÃÃÄÕÌÅÊ SELinux"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ ÑпиÑок Ð¼Ð¾Ð´ÑƒÐ»ÐµÐ¹ SELinux"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "éÃÑ ÃÃÄÕÌÑ"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+-msgstr "÷ÅÒÓÉÑ"
++msgstr "ВерÑиÑ"
+-#: ../semanage/seobject.py:307
+-#, fuzzy
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr "÷ÙËÌÀÞÅÎÃ"
++msgstr "Выключено"
+ #: ../semanage/seobject.py:322
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr "îŠÕÄÃÃŒÃÓؠÕÄÃÌÉÔØ Ã’ÃÚÒÅÛÃÀÃÉʠÄÃÃÃ…ÃŽ %s (ÃÛÉÂËàÕÄÃÌÅÎÉÑ)"
++msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "îŠÕÄÃÃŒÃÓؠÕÄÃÌÉÔØ Ã’ÃÚÒÅÛÃÀÃÉʠÄÃÃÃ…ÃŽ %s (ÃÛÉÂËàÕÄÃÌÅÎÉÑ)"
++msgstr ""
+ #: ../semanage/seobject.py:348
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr "îŠÕÄÃÃŒÃÓؠÕÄÃÌÉÔØ Ã’ÃÚÒÅÛÃÀÃÉʠÄÃÃÃ…ÃŽ %s (ÃÛÉÂËàÕÄÃÌÅÎÉÑ)"
++msgstr ""
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+@@ -184,12 +184,12 @@ msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr "îŠÕÄÃÃŒÃÓؠÚÃÄÃÔØ Ã’ÃÚÒÅÛÃÀÃÉʠÄÃÃÃ…ÃŽ %s (ÃÛÉÂËàÕÓÔÃÃŽÃ×ËÉ ÃÃÄÕÌÑ)"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ñ€Ð°Ð·Ñ€ÐµÑˆÐ°ÑŽÑ‰Ð¸Ð¹ Ð´Ð¾Ð¼ÐµÐ½ %s (ошибка ÑƒÑтановки Ð¼Ð¾Ð´ÑƒÐ»Ñ)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr "îŠÕÄÃÃŒÃÓؠÕÄÃÌÉÔØ Ã’ÃÚÒÅÛÃÀÃÉʠÄÃÃÃ…ÃŽ %s (ÃÛÉÂËàÕÄÃÌÅÎÉÑ)"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ Ñ€Ð°Ð·Ñ€ÐµÑˆÐ°ÑŽÑ‰Ð¸Ð¹ Ð´Ð¾Ð¼ÐµÐ½ %s (ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -200,185 +200,190 @@ msgstr "
+ #: ../semanage/seobject.py:2037
+ #, python-format
+ msgid "Could not create a key for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÓÃÚÄÃÔؠËÌÀޠÄÌÑ %s"
++msgstr "Ðевозможно Ñоздать ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+ #, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÃ’Ã×ÅÒÉÔØ, ÃÃÒÅÄÅÌÅÎàÌɠÓÃÃÃÓÔÃ×ÌÅÎÉŠ×ÈÃÄàÄÌÑ %s"
++msgstr "Ðевозможно Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¾ Ð»Ð¸ ÑопоÑтавление Ð²Ñ…ода Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:492
+ #, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux-ÇÒÕÃÃà%s ÃŽÃ… Ã“ÕÃÅÓÔ×ÕÅÔ"
++msgstr "Linux-группа %s Ð½Ðµ ÑущеÑтвует"
+ #: ../semanage/seobject.py:497
+ #, python-format
+ msgid "Linux User %s does not exist"
+-msgstr "Linux-ÃÃÌØÚÃ×ÃÔÅÌØ %s ÃŽÃ… Ã“ÕÃÅÓÔ×ÕÅÔ"
++msgstr "Linux-пользователь %s Ð½Ðµ ÑущеÑтвует"
+ #: ../semanage/seobject.py:501
+ #, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÓÃÚÄÃÔؠÓÃÃÃÓÔÃ×ÌÅÎÉŠ×ÈÃÄàÄÌÑ %s"
++msgstr "Ðевозможно Ñоздать ÑопоÑтавление Ð²Ñ…ода Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+ msgid "Could not set name for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠÉÃѠÄÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð¸Ð¼Ñ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+ #, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠÄÉÃÃÃÚÃÃŽ MLS Ã„ÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ MLS Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:514
+ #, python-format
+ msgid "Could not set SELinux user for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔØ ÃÃÌØÚÃ×ÃÔÅÌÑ SELinux Ã„ÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елѠSELinux Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÄÃÂÃ×ÉÔؠÓÃÃÃÓÔÃ×ÌÅÎÉŠ×ÈÃÄàÄÌÑ %s"
++msgstr "Ðевозможно Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ ÑопоÑтавление Ð²Ñ…ода Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+-msgstr "îÅÃÂÈÃÄÉàseuser Ã‰ÃŒÃ‰ serange"
++msgstr "Ðеобходим seuser Ð¸Ð»Ð¸ serange"
+ #: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+ #, python-format
+ msgid "Login mapping for %s is not defined"
+-msgstr "óÃÃÃÓÔÃ×ÌÅÎÉŠ×ÈÃÄàÄÌÑ %s ÃŽÃ… ÃÃÒÅÄÅÌÅÎÃ"
++msgstr "СопоÑтавление Ð²Ñ…ода Ð´Ð»Ñ %s Ð½Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:563
+ #, python-format
+ msgid "Could not query seuser for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÃÃ’ÃÓÉÔØ seuser Ã„ÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð¿Ñ€Ð¾Ñить seuser Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:577
+ #, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÉÚÃÅÎÉÔؠÓÃÃÃÓÔÃ×ÌÅÎÉŠ×ÈÃÄàÄÌÑ %s"
++msgstr "Ðевозможно Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ ÑопоÑтавление Ð²Ñ…ода Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:611
+ #, python-format
+ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+ msgstr ""
+-"óÃÃÃÓÔÃ×ÌÅÎÉŠ×ÈÃÄàÄÌÑ %s ÃÃÒÅÄÅÌÅÎà× ÃÃÌÉÔÉËŠÉ ÃŽÃ… ÃÃÖÅԠÂÙÔؠÕÄÃÌÅÎÃ"
++"СопоÑтавление Ð²Ñ…ода Ð´Ð»Ñ %s Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¾ Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ике Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:615
+ #, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÕÄÃÌÉÔؠÓÃÃÃÓÔÃ×ÌÅÎÉŠ×ÈÃÄàÄÌÑ %s"
++msgstr "Ðевозможно ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ ÑопоÑтавление Ð²Ñ…ода Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+ msgid "Could not list login mappings"
+-msgstr "îÅ×ÃÚÃÃÖÎà×ÙÃÃÌÎÉÔØ ÃÅÒÅÞÉÓÌÅÎÉŠÓÃÃÃÓÔÃ×ÌÅÎÉʠ×ÈÃÄÃ"
++msgstr "Ðевозможно Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ‡Ð¸Ñление ÑопоÑтавлений Ð²Ñ…ода"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+-msgstr "éÃѠ×ÈÃÄÃ"
++msgstr "ИмѠвхода"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "ðÃÌØÚÃ×ÔÅÌØ SELinux"
++msgstr "Пользователь SELinux"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+-msgstr "äÉÃÃÃÚÃÃŽ MLS/MCS"
++msgstr "Диапазон MLS/MCS"
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+ #: ../semanage/seobject.py:860
+ #, python-format
+ msgid "Could not check if SELinux user %s is defined"
+-msgstr "îŠÕÄÃÃŒÃÓØ ÃÃ’Ã×ÅÒÉÔØ, ÃÃÒÅÄÅÌÅΠÌÉ ÃÃÌØÚÃ×ÃÔÅÌØ SELinux %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð»Ð¸ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ель SELinux %s"
+ #: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+ #: ../semanage/seobject.py:866
+ #, python-format
+ msgid "Could not query user for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÃÃ’ÃÓÉÔØ ÃÃÌØÚÃ×ÃÔÅÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð¿Ñ€Ð¾Ñить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елѠ%s"
+ #: ../semanage/seobject.py:722
+ #, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "îÅÃÂÈÃÄÉÃàÄÃÂÃ×ÉÔؠËÃË ÃÉÎÉÃÕàÃÄÎÕ Ã’ÃÌؠÄÌÑ %s"
++msgstr "Ðеобходимо Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ ÐºÐ°Ðº Ð¼Ð¸Ð½Ð¸Ð¼ÑƒÐ¼ Ð¾Ð´Ð½Ñƒ Ñ€Ð¾Ð»ÑŒ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+ msgid "Could not create SELinux user for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÓÃÚÄÃÔØ ÃÃÌØÚÃ×ÃÔÅÌÑ SELinux Ã„ÌÑ %s"
++msgstr "Ðевозможно Ñоздать Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елѠSELinux Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:746
+ #, python-format
+ msgid "Could not add role %s for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÄÃÂÃ×ÉÔØ Ã’ÃÌØ %s Ã„ÌÑ %s"
++msgstr "Ðевозможно Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ Ñ€Ð¾Ð»ÑŒ %s Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:755
+ #, python-format
+ msgid "Could not set MLS level for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠÕÒÃ×ÅÎØ MLS Ã„ÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ MLS Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:758
+ #, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÄÃÂÃ×ÉÔØ ÃÒÅÆÉËÓ %s Ã„ÌÑ %s"
++msgstr "Ðевозможно Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ Ð¿Ñ€ÐµÑ„икѠ%s Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:761
+ #, python-format
+ msgid "Could not extract key for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÉÚ×ÌÅÞؠËÌÀޠÄÌÑ %s"
++msgstr "Ðевозможно Ð¸Ð·Ð²Ð»ÐµÑ‡ÑŒ ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:765
+ #, python-format
+ msgid "Could not add SELinux user %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÄÃÂÃ×ÉÔØ ÃÃÌØÚÃ×ÃÔÅÌÑ SELinux %s"
++msgstr "Ðевозможно Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елѠSELinux %s"
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+-msgstr "îÅÃÂÈÃÄÉàÃÒÅÆÉËÓ, Ã’ÃÌØ, Ã•Ã’Ã×ÅÎؠÉÌɠÄÉÃÃÃÚÃÃŽ"
++msgstr "Ðеобходим Ð¿Ñ€ÐµÑ„икÑ, Ñ€Ð¾Ð»ÑŒ, ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ Ð¸Ð»Ð¸ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½"
+ #: ../semanage/seobject.py:789
+ msgid "Requires prefix or roles"
+-msgstr "îÅÃÂÈÃÄÉàÃÒÅÆÉËӠÉÌÉ Ã’ÃÌØ"
++msgstr "Ðеобходим Ð¿Ñ€ÐµÑ„икѠили Ñ€Ð¾Ð»ÑŒ"
+ #: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+ #, python-format
+ msgid "SELinux user %s is not defined"
+-msgstr "SELinux ÃÃÌØÚÃ×ÃÔÅÌØ %s ÃŽÃ… ÃÃÒÅÄÅÌÅÎ"
++msgstr "SELinux Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ель %s Ð½Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½"
+ #: ../semanage/seobject.py:828
+ #, python-format
+ msgid "Could not modify SELinux user %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÉÚÃÅÎÉÔØ SELinux ÃÃÌØÚÃ×ÃÔÅÌÑ %s"
++msgstr "Ðевозможно Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ SELinux Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елѠ%s"
+ #: ../semanage/seobject.py:862
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr "SELinux ÃÃÌØÚÃ×ÃÔÅÌØ %s ÃÃÒÅÄÅÌÅΠ× ÃÃÌÉÔÉËŠÉ ÃŽÃ… ÃÃÖÅԠÂÙÔؠÕÄÃÌÅÎ"
++msgstr "SELinux Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ель %s Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ике Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ ÑƒÐ´Ð°Ð»ÐµÐ½"
+ #: ../semanage/seobject.py:873
+ #, python-format
+ msgid "Could not delete SELinux user %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÕÄÃÌÉÔØ ÃÃÌØÚÃ×ÃÔÅÌÑ SELinux %s"
++msgstr "Ðевозможно ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елѠSELinux %s"
+ #: ../semanage/seobject.py:911
+ msgid "Could not list SELinux users"
+-msgstr "îÅ×ÃÚÃÃÖÎà×ÙÃÃÌÎÉÔØ ÃÅÒÅÞÉÓÌÅÎÉÅ ÃÃÌØÚÃ×ÃÔÅÌÅÊ SELinux"
++msgstr "Ðевозможно Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ‡Ð¸Ñление Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елей SELinux"
+ #: ../semanage/seobject.py:917
+ #, python-format
+ msgid "Could not list roles for user %s"
+-msgstr "îÅ×ÃÚÃÃÖÎà×ÙÃÃÌÎÉÔØ ÃÅÒÅÞÉÓÌÅÎÉÅ Ã’ÃÌÅÊ ÃÃÌØÚÃ×ÃÔÅÌÑ %s"
++msgstr "Ðевозможно Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ‡Ð¸Ñление Ñ€Ð¾Ð»ÐµÐ¹ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елѠ%s"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr ""
++msgstr "Разметка"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+@@ -386,27 +391,28 @@ msgstr "MLS/"
+ #: ../semanage/seobject.py:943
+ msgid "Prefix"
+-msgstr "ðÒÅÆÉËÓ"
++msgstr "ПрефикÑ"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Level"
+-msgstr "MCS ÃµÃ’Ã×ÅÎØ"
++msgstr "MCS Ð£Ñ€Ð¾Ð²ÐµÐ½ÑŒ"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Range"
+-msgstr "MCS Ã¤Ã‰ÃÃÃÚÃÃŽ"
++msgstr "MCS Ð”иапазон"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+-msgstr "òÃÌÉ SELinux"
++msgstr "Роли SELinux"
+ #: ../semanage/seobject.py:963
+ msgid "Protocol udp or tcp is required"
+-msgstr "îÅÃÂÈÃÄÉÃàÚÃÄÃÎÉÅ tcp Ã‰ÃŒÃ‰ udp ÃÃ’ÃÔÃËÃÃŒÃ"
++msgstr "Ðеобходимо Ð·Ð°Ð´Ð°Ð½Ð¸Ðµ tcp Ð¸Ð»Ð¸ udp Ð¿Ñ€Ð¾Ñ‚окола"
+ #: ../semanage/seobject.py:965
+ msgid "Port is required"
+-msgstr "îÅÃÂÈÃÄÉÃàÚÎÃÞÅÎÉÅ ÃÃÒÔÃ"
++msgstr "Ðеобходимо Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ Ð¿Ð¾Ñ€Ñ‚а"
+ #: ../semanage/seobject.py:975
+ msgid "Invalid Port"
+@@ -415,134 +421,134 @@ msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+ msgid "Could not create a key for %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÓÃÚÄÃÔؠËÌÀޠÄÌÑ %s/%s"
++msgstr "Ðевозможно Ñоздать ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:990
+ msgid "Type is required"
+-msgstr "ôÒÅÂÕÅÔÓѠÚÃÄÃÎÉŠÔÉÃÃ"
++msgstr "ТребуетÑѠзадание Ñ‚ипа"
+ #: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+ #: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+ #, python-format
+ msgid "Could not check if port %s/%s is defined"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÃ’Ã×ÅÒÉÔØ, ÃÃÒÅÄÅÌÅΠÌÉ ÃÃÒÔ %s/%s"
++msgstr "Ðевозможно Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð»Ð¸ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
+ #: ../semanage/seobject.py:998
+ #, python-format
+ msgid "Port %s/%s already defined"
+-msgstr "ðÃÒÔ %s/%s Ã•Ã–Ã… ÃÃÒÅÄÅÌÅÎ"
++msgstr "Порт %s/%s ÑƒÐ¶Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½"
+ #: ../semanage/seobject.py:1002
+ #, python-format
+ msgid "Could not create port for %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÓÃÚÄÃÔØ ÃÃÒԠÄÌÑ %s/%s"
++msgstr "Ðевозможно Ñоздать Ð¿Ð¾Ñ€Ñ‚ Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1008
+ #, python-format
+ msgid "Could not create context for %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÓÃÚÄÃÔؠËÃÎÔÅËÓÔ %s/%s"
++msgstr "Ðевозможно Ñоздать ÐºÐ¾Ð½Ñ‚екÑÑ‚ %s/%s"
+ #: ../semanage/seobject.py:1012
+ #, python-format
+ msgid "Could not set user in port context for %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔØ ÃÃÌØÚÃ×ÃÔÅÌѠנËÃÎÔÅËÓÔÅ ÃÃÒÔàÄÌÑ %s/%s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елѠв ÐºÐ¾Ð½Ñ‚екÑте Ð¿Ð¾Ñ€Ñ‚а Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1016
+ #, python-format
+ msgid "Could not set role in port context for %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔØ Ã’ÃÌؠנËÃÎÔÅËÓÔÅ ÃÃÒÔàÄÌÑ %s/%s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ñ€Ð¾Ð»ÑŒ Ð² ÐºÐ¾Ð½Ñ‚екÑте Ð¿Ð¾Ñ€Ñ‚а Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1020
+ #, python-format
+ msgid "Could not set type in port context for %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠÔÉàנËÃÎÔÅËÓÔÅ ÃÃÒÔàÄÌÑ %s/%s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ñ‚ип Ð² ÐºÐ¾Ð½Ñ‚екÑте Ð¿Ð¾Ñ€Ñ‚а Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1025
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔØ ÃÃÌÑ mls Ã— Ã‹ÃÎÔÅËÓÔÅ ÃÃÒÔàÄÌÑ %s/%s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð¿Ð¾Ð»Ñ mls Ð² ÐºÐ¾Ð½Ñ‚екÑте Ð¿Ð¾Ñ€Ñ‚а Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+ msgid "Could not set port context for %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠËÃÎÔÅËÓÔ ÃÃÒÔàÄÌÑ %s/%s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð¿Ð¾Ñ€Ñ‚а Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1033
+ #, python-format
+ msgid "Could not add port %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÄÃÂÃ×ÉÔØ ÃÃÒÔ %s/%s"
++msgstr "Ðевозможно Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
+ #: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+ #: ../semanage/seobject.py:1508
+ msgid "Requires setype or serange"
+-msgstr "îÅÃÂÈÃÄÉàsetype Ã‰ÃŒÃ‰ serange"
++msgstr "Ðеобходим setype Ð¸Ð»Ð¸ serange"
+ #: ../semanage/seobject.py:1049
+ msgid "Requires setype"
+-msgstr "îÅÃÂÈÃÄÉàsetype"
++msgstr "Ðеобходим setype"
+ #: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+ #, python-format
+ msgid "Port %s/%s is not defined"
+-msgstr "ðÃÒÔ %s/%s ÃŽÃ… ÃÃÒÅÄÅÌÅÎ"
++msgstr "Порт %s/%s Ð½Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½"
+ #: ../semanage/seobject.py:1061
+ #, python-format
+ msgid "Could not query port %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÃÃ’ÃÓÉÔØ ÃÃÒÔ %s/%s"
++msgstr "Ðевозможно Ð·Ð°Ð¿Ñ€Ð¾Ñить Ð¿Ð¾Ñ€Ñ‚ %s/%s"
+ #: ../semanage/seobject.py:1072
+ #, python-format
+ msgid "Could not modify port %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÉÚÃÅÎÉÔØ ÃÃÒÔ %s/%s"
++msgstr "Ðевозможно Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
+ #: ../semanage/seobject.py:1085
+ msgid "Could not list the ports"
+-msgstr "îŠÕÄÃÃŒÃÓØ ÃÃÌÕÞÉÔؠÓÃÉÓÃË ÃÃÒÔÃ×"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ ÑпиÑок Ð¿Ð¾Ñ€Ñ‚ов"
+ #: ../semanage/seobject.py:1101
+ #, python-format
+ msgid "Could not delete the port %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÕÄÃÌÉÔØ ÃÃÒÔ %s"
++msgstr "Ðевозможно ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ Ð¿Ð¾Ñ€Ñ‚ %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+ msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr "ðÃÒÔ %s/%s ÃÃÒÅÄÅÌÅΠ× ÃÃÌÉÔÉËŠÉ ÃŽÃ… ÃÃÖÅԠÂÙÔؠÕÄÃÌÅÎ"
++msgstr "Порт %s/%s Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ике Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ ÑƒÐ´Ð°Ð»ÐµÐ½"
+ #: ../semanage/seobject.py:1122
+ #, python-format
+ msgid "Could not delete port %s/%s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÕÄÃÌÉÔØ ÃÃÒÔ %s/%s"
++msgstr "Ðевозможно ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+ msgid "Could not list ports"
+-msgstr "îÅ×ÃÚÃÃÖÎà×ÙÃÃÌÎÉÔØ ÃÅÒÅÞÉÓÌÅÎÉÅ ÃÃÒÔÃ×"
++msgstr "Ðевозможно Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ‡Ð¸Ñление Ð¿Ð¾Ñ€Ñ‚ов"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+-msgstr "ôÉàÃÃÒÔàSELinux"
++msgstr "Тип Ð¿Ð¾Ñ€Ñ‚а SELinux"
+ #: ../semanage/seobject.py:1199
+ msgid "Proto"
+-msgstr ""
++msgstr "Протокол"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+-msgstr "îÃÃÃ…Ã’ Ã°ÃÒÔÃ"
++msgstr "Ðомер ÐŸÐ¾Ñ€Ñ‚а"
+ #: ../semanage/seobject.py:1218
+ msgid "Node Address is required"
+-msgstr "ôÒÅÂÕÅÔÓÑ ÃÄÒÅӠÕÚÌÃ"
++msgstr "ТребуетÑѠадреѠузла"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr "ðÒÃÔÃËÃÃŒ ÃÔÓÕÔÓÔ×ÕÅԠÉÌÉ ÃŽÃ…ÉÚ×ÅÓÔÅÎ"
++msgstr "Протокол Ð¾Ñ‚ÑутÑтвует Ð¸Ð»Ð¸ Ð½ÐµÐ¸Ð·Ð²ÐµÑтен"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+ msgid "SELinux Type is required"
+-msgstr "ôÒÅÂÕÅÔÓÑ SELinux Type"
++msgstr "ТребуетÑÑ SELinux Type"
+ #: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+ #: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+@@ -550,186 +556,184 @@ msgstr "
+ #: ../semanage/seobject.py:1728
+ #, python-format
+ msgid "Could not create key for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÓÃÚÄÃÔؠËÌÀޠÄÌÑ %s"
++msgstr "Ðевозможно Ñоздать ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+ #, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "îŠÕÄÃÃŒÃÓØ ÃÃ’Ã×ÅÒÉÔØ, ÃÃÒÅÄÅÌÅΠÌÉ ÃÄÒÅÓ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð»Ð¸ Ð°Ð´Ñ€ÐµÑ %s"
+ #: ../semanage/seobject.py:1262
+ #, python-format
+ msgid "Could not create addr for %s"
+-msgstr "îŠÕÄÃÃŒÃÓؠÓÃÚÄÃÔØ ÃÄÒÅӠÄÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ñоздать Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+ #, python-format
+ msgid "Could not create context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÓÃÚÄÃÔؠËÃÎÔÅËÓԠÄÌÑ %s"
++msgstr "Ðевозможно Ñоздать ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1272
+ #, python-format
+ msgid "Could not set mask for %s"
+-msgstr "îŠÕÄÃÅÔÓѠÚÃÄÃÔØ ÃÃÓËÕ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð¼Ð°Ñку %s"
+ #: ../semanage/seobject.py:1276
+ #, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "îŠÕÄÃÅÔÓѠÚÃÄÃÔØ ÃÃÌØÚÃ×ÃÔÅÌѠנËÃÎÔÅËÓÔÅ ÃÄÒÅÓàÄÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елѠв ÐºÐ¾Ð½Ñ‚екÑте Ð°Ð´Ñ€ÐµÑа Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1280
+ #, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "îŠÕÄÃÅÔÓѠÚÃÄÃÔØ Ã’ÃÌؠנËÃÎÔÅËÓÔÅ ÃÄÒÅÓàÄÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ñ€Ð¾Ð»ÑŒ Ð² ÐºÐ¾Ð½Ñ‚екÑте Ð°Ð´Ñ€ÐµÑа Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1284
+ #, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "îŠÕÄÃÅÔÓѠÚÃÄÃÔؠÔÉàנËÃÎÔÅËÓÔÅ ÃÄÒÅÓàÄÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ñ‚ип Ð² ÐºÐ¾Ð½Ñ‚екÑте Ð°Ð´Ñ€ÐµÑа Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1289
+ #, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "îŠÕÄÃÅÔÓѠÚÃÄÃÔØ ÃÃÌÑ mls Ã— Ã‹ÃÎÔÅËÓÔÅ ÃÄÒÅÓàÄÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð¿Ð¾Ð»Ñ mls Ð² ÐºÐ¾Ð½Ñ‚екÑте Ð°Ð´Ñ€ÐµÑа Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1293
+ #, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "îŠÕÄÃÅÔÓѠÚÃÄÃÔؠËÃÎÔÅËÓÔ addr Ã„ÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ ÐºÐ¾Ð½Ñ‚екÑÑ‚ addr Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1297
+ #, python-format
+ msgid "Could not add addr %s"
+-msgstr "îŠÕÄÃÅÔÓѠÄÃÂÃ×ÉÔØ addr %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ addr %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+ #, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Addr %s ÃŽÃ… ÃÃÒÅÄÅÌÅÎ"
++msgstr "Addr %s Ð½Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½"
+ #: ../semanage/seobject.py:1326
+ #, python-format
+ msgid "Could not query addr %s"
+-msgstr "îŠÕÄÃÅÔÓѠÚÃÃÃ’ÃÓÉÔØ addr %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð¿Ñ€Ð¾Ñить addr %s"
+ #: ../semanage/seobject.py:1336
+ #, python-format
+ msgid "Could not modify addr %s"
+-msgstr "îŠÕÄÃÅÔÓѠÉÚÃÅÎÉÔØ addr %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ addr %s"
+ #: ../semanage/seobject.py:1364
+ #, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Addr %s ÃÃÒÅÄÅÌÅΠ× ÃÃÌÉÔÉËŠÉ ÃŽÃ… ÃÃÖÅԠÂÙÔؠÕÄÃÌÅÎ"
++msgstr "Addr %s Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ике Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ ÑƒÐ´Ð°Ð»ÐµÐ½"
+ #: ../semanage/seobject.py:1368
+ #, python-format
+ msgid "Could not delete addr %s"
+-msgstr "îŠÕÄÃÅÔÓѠÕÄÃÌÉÔØ addr %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ addr %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "îÅ×ÃÚÃÃÖÎàÕÄÃÌÉÔؠÓÃÃÃÓÔÃ×ÌÅÎÉŠ×ÈÃÄàÄÌÑ %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+ msgid "Could not list addrs"
+-msgstr "îŠÕÄÃÅÔÓÑ ÃÃÌÕÞÉÔؠÓÃÉÓÃË addr"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ ÑпиÑок addr"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+ #, python-format
+ msgid "Could not check if interface %s is defined"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÃ’Ã×ÅÒÉÔØ, ÃÃÒÅÄÅÌÅΠÌɠÉÎÔÅÒÆÅÊÓ %s"
++msgstr "Ðевозможно Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð»Ð¸ Ð¸Ð½Ñ‚ерфейѠ%s"
+ #: ../semanage/seobject.py:1461
+ #, python-format
+ msgid "Could not create interface for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÓÃÚÄÃÔؠÉÎÔÅÒÆÅӠÄÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ñоздать Ð¸Ð½Ñ‚ерфейѠдлѠ%s"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔØ ÃÃÌØÚÃ×ÃÔÅÌѠנËÃÎÔÅËÓÔŠÉÎÔÅÒÆÅÊÓàÄÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елѠв ÐºÐ¾Ð½Ñ‚екÑте Ð¸Ð½Ñ‚ерфейÑа Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔØ Ã’ÃÌؠנËÃÎÔÅËÓÔŠÉÎÔÅÒÆÅÊÓàÄÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ñ€Ð¾Ð»ÑŒ Ð² ÐºÐ¾Ð½Ñ‚екÑте Ð¸Ð½Ñ‚ерфейÑа Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠÔÉàנËÃÎÔÅËÓÔŠÉÎÔÅÒÆÅÊÓàÄÌÑ %s."
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ñ‚ип Ð² ÐºÐ¾Ð½Ñ‚екÑте Ð¸Ð½Ñ‚ерфейÑа Ð´Ð»Ñ %s."
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔØ ÃÃÌÑ mls Ã— Ã‹ÃÎÔÅËÓÔŠÉÎÔÅÒÆÅÊÓàÄÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð¿Ð¾Ð»Ñ mls Ð² ÐºÐ¾Ð½Ñ‚екÑте Ð¸Ð½Ñ‚ерфейÑа Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠËÃÎÔÅËÓԠÉÎÔÅÒÆÅÊÓàÄÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð¸Ð½Ñ‚ерфейÑа Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+ msgid "Could not set message context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠËÃÎÔÅËÓԠÓÃÃÂÃÅÎÉѠÄÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ ÐºÐ¾Ð½Ñ‚екÑÑ‚ ÑообщениѠдлѠ%s"
+ #: ../semanage/seobject.py:1495
+ #, python-format
+ msgid "Could not add interface %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÄÃÂÃ×ÉÔؠÉÎÔÅÒÆÅÊÓ %s"
++msgstr "Ðевозможно Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ Ð¸Ð½Ñ‚ерфейѠ%s"
+ #: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+ #, python-format
+ msgid "Interface %s is not defined"
+-msgstr "éÎÔÅÒÆÅÊÓ %s yt ÃÃÒÅÄÅÌÅÎ"
++msgstr "ИнтерфейѠ%s yt Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½"
+ #: ../semanage/seobject.py:1522
+ #, python-format
+ msgid "Could not query interface %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÃÃ’ÃÓÉÔؠÉÎÔÅÒÆÅÊÓ %s"
++msgstr "Ðевозможно Ð·Ð°Ð¿Ñ€Ð¾Ñить Ð¸Ð½Ñ‚ерфейѠ%s"
+ #: ../semanage/seobject.py:1533
+ #, python-format
+ msgid "Could not modify interface %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÉÚÃÅÎÉÔؠÉÎÔÅÒÆÅÊÓ %s"
++msgstr "Ðевозможно Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ð¸Ð½Ñ‚ерфейѠ%s"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+ msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr "éÎÔÅÒÆÅÊÓ %s ÃÃÒÅÄÅÌÅΠ× ÃÃÌÉÔÉËŠÉ ÃŽÃ… ÃÃÖÅԠÂÙÔؠÕÄÃÌÅÎ"
++msgstr "ИнтерфейѠ%s Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ике Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ ÑƒÐ´Ð°Ð»ÐµÐ½"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+ msgid "Could not delete interface %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÕÄÃÌÉÔؠÉÎÔÅÒÆÅÊÓ %s"
++msgstr "Ðевозможно ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ Ð¸Ð½Ñ‚ерфейѠ%s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "îÅ×ÃÚÃÃÖÎàÕÄÃÌÉÔؠÉÎÔÅÒÆÅÊÓ %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+-msgstr "îÅ×ÃÚÃÃÖÎà×ÙÃÃÌÎÉÔØ ÃÅÒÅÞÉÓÌÅÎÉŠÉÎÔÅÒÆÅÊÓÃ×"
++msgstr "Ðевозможно Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ‡Ð¸Ñление Ð¸Ð½Ñ‚ерфейÑов"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+-msgstr "éÎÔÅÒÆÅÊÓ SELinux"
++msgstr "ИнтерфейѠSELinux"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+-msgstr "ëÃÎÔÅËÓÔ"
++msgstr "КонтекÑÑ‚"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "ëÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s Ã•Ã–Ã… ÃÃÒÅÄÅÌÅÎ"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -737,28 +741,28 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux-ÃÃÌØÚÃ×ÃÔÅÌØ %s ÃŽÃ… Ã“ÕÃÅÓÔ×ÕÅÔ"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔØ ÃÃÌØÚÃ×ÃÔÅÌѠנËÃÎÔÅËÓÔŠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚елѠв ÐºÐ¾Ð½Ñ‚екÑте Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔØ Ã’ÃÌؠנËÃÎÔÅËÓÔŠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ñ€Ð¾Ð»ÑŒ Ð² ÐºÐ¾Ð½Ñ‚екÑте Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔØ ÃÃÌÑ msl Ã— Ã‹ÃÎÔÅËÓÔŠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð¿Ð¾Ð»Ñ msl Ð² ÐºÐ¾Ð½Ñ‚екÑте Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+-msgstr "îÅ×ÅÒÎÃѠÓÃÅÃÉÆÉËÃÃÉѠÆÃÊÌÃ"
++msgstr "ÐевернаѠÑпецификациѠфайла"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -775,82 +779,82 @@ msgstr ""
+ #: ../semanage/seobject.py:1876
+ #, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÃ’Ã×ÅÒÉÔØ, ÃÃÒÅÄÅÌÅΠÌɠËÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðевозможно Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð»Ð¸ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1745
+ #, python-format
+ msgid "Could not create file context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÓÃÚÄÃÔؠËÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðевозможно Ñоздать ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠÔÉàנËÃÎÔÅËÓÔŠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ñ‚ип Ð² ÐºÐ¾Ð½Ñ‚екÑте Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÄÃÔؠËÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+ msgid "Could not add file context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÄÃÂÃ×ÉÔؠËÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðевозможно Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+-msgstr "îÅÃÂÈÃÄÉàsetyp, serange Ã‰ÃŒÃ‰ seuser"
++msgstr "Ðеобходим setyp, serange Ð¸Ð»Ð¸ seuser"
+ #: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+ #, python-format
+ msgid "File context for %s is not defined"
+-msgstr "ëÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s ÃŽÃ… ÃÃÒÅÄÅÌÅÎ"
++msgstr "КонтекÑÑ‚ Ñ„айла Ð´Ð»Ñ %s Ð½Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½"
+ #: ../semanage/seobject.py:1800
+ #, python-format
+ msgid "Could not query file context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÃÃ’ÃÓÉÔؠËÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðевозможно Ð·Ð°Ð¿Ñ€Ð¾Ñить ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1826
+ #, python-format
+ msgid "Could not modify file context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÉÚÃÅÎÉÔؠËÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðевозможно Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1839
+ msgid "Could not list the file contexts"
+-msgstr "îŠÕÄÃÅÔÓÑ ÃÃÌÕÞÉÔؠÓÃÉÓÃˠËÃÎÔÅËÓÔÃנÆÃÊÌÃ×"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ ÑпиÑок ÐºÐ¾Ð½Ñ‚екÑтов Ñ„айлов"
+ #: ../semanage/seobject.py:1853
+ #, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "îŠÕÄÃÌÅÔÓѠÕÄÃÌÉÔؠËÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ñ‘Ñ‚ÑѠудалить ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+ msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr "ëÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s ÃÃÒÅÄÅÌÅΠ× ÃÃÌÉÔÉËŠÉ ÃŽÃ… ÃÃÖÅԠÂÙÔؠÕÄÃÌÅÎ"
++msgstr "КонтекÑÑ‚ Ñ„айла Ð´Ð»Ñ %s Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ике Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ ÑƒÐ´Ð°Ð»ÐµÐ½"
+ #: ../semanage/seobject.py:1884
+ #, python-format
+ msgid "Could not delete file context for %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÕÄÃÌÉÔؠËÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s"
++msgstr "Ðевозможно ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+-msgstr "îÅ×ÃÚÃÃÖÎà×ÙÃÃÌÎÉÔØ ÃÅÒÅÞÉÓÌÅÎÉŠËÃÎÔÅËÓÔÃנÆÃÊÌÃ×"
++msgstr "Ðевозможно Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ‡Ð¸Ñление ÐºÐ¾Ð½Ñ‚екÑтов Ñ„айлов"
+ #: ../semanage/seobject.py:1903
+ msgid "Could not list local file contexts"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÔÃÂÒÃÚÉÔؠËÃÎÔÅËÓÔ ÃŒÃËÃÌØÎÙȠÆÃÊÌÃ×"
++msgstr "Ðевозможно Ð¾Ñ‚образить ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ñ… Ñ„айлов"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+-msgstr "ëÃÎÔÅËÓԠÆÃÊÌàSELinux"
++msgstr "КонтекÑÑ‚ Ñ„айла SELinux"
+ #: ../semanage/seobject.py:1936
+ msgid "type"
+-msgstr "ÔÉÃ"
++msgstr "тип"
+ #: ../semanage/seobject.py:1949
+ msgid ""
+@@ -859,418 +863,416 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "ëÃÎÔÅËÓԠÆÃÊÌàSELinux"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+ #, python-format
+ msgid "Could not check if boolean %s is defined"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÃ’Ã×ÅÒÉÔØ, ÃÃÒÅÄÅÌÅΠÌÉ ÃÅÒÅËÌÀÞÃÔÅÌØ %s"
++msgstr "Ðевозможно Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð»Ð¸ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡Ð°Ñ‚ель %s"
+ #: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+ #, python-format
+ msgid "Boolean %s is not defined"
+-msgstr "ðÅÒÅËÌÀÞÃÔÅÌØ %s ÃŽÃ… ÃÃÒÅÄÅÌÅÎ"
++msgstr "Переключатель %s Ð½Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+ msgid "Could not query file context %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃÃÃ’ÃÓÉÔؠËÃÎÔÅËÓԠÆÃÊÌà%s"
++msgstr "Ðевозможно Ð·Ð°Ð¿Ñ€Ð¾Ñить ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла %s"
+ #: ../semanage/seobject.py:1999
+ #, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "îÅÃÂÈÃÄÉÃàÕËÃÚÃÔؠÚÎÃÞÅÎÉÅ: %s"
++msgstr "Ðеобходимо ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ: %s"
+ #: ../semanage/seobject.py:2004
+ #, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "îŠÕÄÃÅÔÓѠÚÃÄÃÔØ ÃËÔÉ×ÎÃÃ… ÃšÃŽÃÞÅÎÉÅ ÃÅÒÅËÌÀÞÃÔÅÌÑ %s"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð°ÐºÑ‚ивное Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡Ð°Ñ‚елѠ%s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+ msgid "Could not modify boolean %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÉÚÃÅÎÉÔØ ÃÅÒÅËÌÀÞÃÔÅÌØ %s"
++msgstr "Ðевозможно Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡Ð°Ñ‚ель %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr "îÅ×ÅÒÎÙʠÆÃÃ’ÃÃÔ %s: ÃºÃÃÉÓØ %s"
++msgstr "Ðеверный Ñ„ормат %s: Ð—апиÑÑŒ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr "ðÅÒÅËÌÀÞÃÔÅÌØ %s ÃŽÃ… ÃÃÒÅÄÅÌÅΠ× ÃÃÌÉÔÉËŠÉ ÃŽÃ… ÃÃÖÅԠÂÙÔؠÕÄÃÌÅÎ"
++msgstr "Переключатель %s Ð½Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½ Ð² Ð¿Ð¾Ð»Ð¸Ñ‚ике Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ ÑƒÐ´Ð°Ð»ÐµÐ½"
+ #: ../semanage/seobject.py:2052
+ #, python-format
+ msgid "Could not delete boolean %s"
+-msgstr "îÅ×ÃÚÃÃÖÎàÕÄÃÌÉÔØ ÃÅÒÅËÌÀÞÃÔÅÌØ %s"
++msgstr "Ðевозможно ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡Ð°Ñ‚ель %s"
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+ msgid "Could not list booleans"
+-msgstr "îÅ×ÃÚÃÃÖÎà×ÙÃÃÌÎÉÔØ ÃÅÒÅÞÉÓÌÅÎÉÅ ÃÅÒÅËÌÀÞÃÔÅÌÅÊ"
++msgstr "Ðевозможно Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ‡Ð¸Ñление Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡Ð°Ñ‚елей"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ"
++msgstr "неизвеÑтный"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr "×ÙËÌ."
++msgstr "выкл."
+ #: ../semanage/seobject.py:2117
+ msgid "on"
+-msgstr "×ËÌ."
++msgstr "вкл."
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr "ðÅÒÅËÌÀÞÃÔÅÌØ SELinux"
++msgstr "Переключатель SELinux"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "óÔÃÔÕÓ"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr "ïÃÉÓÃÎÉÅ"
++msgstr "ОпиÑание"
+ #: ../newrole/newrole.c:201
+ #, c-format
+ msgid "failed to set PAM_TTY\n"
+-msgstr "ÓÂÃʠÕÓÔÃÃŽÃ×ËÉ PAM_TTY\n"
++msgstr "Ñбой ÑƒÑтановки PAM_TTY\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
++msgstr "newrole: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ðµ Ñ…еш-таблицы Ð½Ð°Ñтроек Ð¸Ð¼ÐµÐ½ Ñлужб\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr "newrole:  %s:  ÃÛÉÂËàנÓÔÒÃËÅ %lu.\n"
++msgstr "newrole:  %s:  Ð¾ÑˆÐ¸Ð±ÐºÐ° Ð² Ñтроке %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+ msgid "cannot find valid entry in the passwd file.\n"
+-msgstr "ÃŽÃ… Ã•Ã„ÃÅÔÓÑ ÃŽÃÊÔɠËÃÒÒÅËÔÎÕÀ ÃšÃÃÉÓؠנÆÃÊÌÅ passwd.\n"
++msgstr "не ÑƒÐ´Ð°ÐµÑ‚ÑѠнайти ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚ную Ð·Ð°Ð¿Ð¸ÑÑŒ Ð² Ñ„айле passwd.\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+ msgid "Out of memory!\n"
+-msgstr "îÅÄÃÓÔÃÔÃÞÎàÃÃÃÑÔÉ!\n"
++msgstr "ÐедоÑтаточно Ð¿Ð°Ð¼Ñти!\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr "ïÛÉÂËÃ!  Ã¯Ã‚ÃÃŒÃÞËàΊ×ÅÒÎÃ.\n"
++msgstr "Ошибка!  ÐžÐ±Ð¾Ð»Ð¾Ñ‡ÐºÐ° Ð½Ðµ Ð²ÐµÑ€Ð½Ð°.\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+ msgid "Unable to clear environment\n"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÞÉÓÔÉÔØ ÃËÒÕÖÅÎÉÅ\n"
++msgstr "Ðевозможно Ð¾Ñ‡Ð¸Ñтить Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ðµ\n"
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+ msgid "Error changing uid, aborting.\n"
+-msgstr "ïÛÉÂËàÓÃÅÎÙ uid, Ã×ÃÒÉÊÎÃÃ… ÃšÃ×ÅÒÛÅÎÉÅ.\n"
++msgstr "Ошибка Ñмены uid, Ð°Ð²Ð°Ñ€Ð¸Ð¹Ð½Ð¾Ðµ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ðµ.\n"
+ #: ../newrole/newrole.c:612
+ #, c-format
+ msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr "ïÛÉÂËàÓÂÒÃÓàKEEPCAPS, Ã×ÃÒÉÊÎÃÃ… ÃšÃ×ÅÒÛÅÎÉÅ.\n"
++msgstr "Ошибка ÑброÑа KEEPCAPS, Ð°Ð²Ð°Ñ€Ð¸Ð¹Ð½Ð¾Ðµ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ðµ.\n"
+ #: ../newrole/newrole.c:635
+ #, c-format
+ msgid "Error connecting to audit system.\n"
+-msgstr "ïÛÉÂËàÓÃÅÄÉÎÅÎÉѠӠÓÉÓÔÅÃÃÊ ÃÕÄÉÔÃ.\n"
++msgstr "Ошибка ÑоединениѠѠÑиÑтемой Ð°ÑƒÐ´Ð¸Ñ‚а.\n"
+ #: ../newrole/newrole.c:641
+ #, c-format
+ msgid "Error allocating memory.\n"
+-msgstr "ïÛÉÂËà×ÙÄÅÌÅÎÉÑ ÃÃÃÑÔÉ.\n"
++msgstr "Ошибка Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼Ñти.\n"
+ #: ../newrole/newrole.c:648
+ #, c-format
+ msgid "Error sending audit message.\n"
+-msgstr "ïÛÉÂËàÃÔÃÃ’Ã×ËɠÓÃÃÂÃÅÎÉÑ ÃÕÄÉÔÃ.\n"
++msgstr "Ошибка Ð¾Ñ‚правки ÑообщениѠаудита.\n"
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÃÒÅÄÅÌÉÔØ Ã’ÅÖÉàÂÌÃËÉÒÃ×ÃË (enforcing).\n"
++msgstr "Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸Ñ‚ÑŒ Ñтрогий Ñ€ÐµÐ¶Ð¸Ð¼.\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr "ïÛÉÂËÃ!  Ã®Ã…×ÃÚÃÃÖÎàÃÔËÒÙÔØ %s.\n"
++msgstr "Ошибка!  Ðевозможно Ð¾Ñ‚крыть %s.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s!  Ã®Ã…×ÃÚÃÃÖÎàÃÃÌÕÞÉÔؠÔÅËÕÃÉʠËÃÎÔÅËÓԠÄÌÑ %s, ÃÅÔËàtty ÃŽÃ… Ã‰ÃšÃÅÎÑÅÔÓÑ.\n"
++"%s!  Ðевозможно Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ñ‚екущий ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s, Ð¼ÐµÑ‚ка tty Ð½Ðµ Ð¸Ð·Ð¼ÐµÐ½ÑетÑÑ.\n"
+ #: ../newrole/newrole.c:715
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s!  Ã®Ã…×ÃÚÃÃÖÎàÃÃÌÕÞÉÔØ ÃŽÃ×ÙʠËÃÎÔÅËÓԠÄÌÑ %s, ÃÅÔËàtty ÃŽÃ… Ã‰ÃšÃÅÎÑÅÔÓÑ.\n"
++"%s!  Ðевозможно Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s, Ð¼ÐµÑ‚ка tty Ð½Ðµ Ð¸Ð·Ð¼ÐµÐ½ÑетÑÑ.\n"
+ #: ../newrole/newrole.c:725
+ #, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr "%s!  Ã®Ã…×ÃÚÃÃÖÎàÚÃÄÃÔØ ÃŽÃ×ÙʠËÃÎÔÅËÓԠÄÌÑ %s\n"
++msgstr "%s!  Ðевозможно Ð·Ð°Ð´Ð°Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+ msgid "%s changed labels.\n"
+-msgstr "%s Ã‰ÃšÃÅÎÉÌàÃÅÔËÉ.\n"
++msgstr "%s Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð»Ð¾ Ð¼ÐµÑ‚ки.\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr "÷ÎÉÃÃÎÉÅ! Ã®Ã…×ÃÚÃÃÖÎà×ÃÓÓÔÃÃŽÃ×ÉÔؠËÃÎÔÅËÓԠÄÌÑ %s\n"
++msgstr "Внимание! Ðевозможно Ð²Ð¾ÑÑтановить ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+ msgid "Error: multiple roles specified\n"
+-msgstr "ïÛÉÂËÃ: Ã•Ã‹ÃÚÃÎàÎÅÓËÃÌØËàÒÃÌÅÊ\n"
++msgstr "Ошибка: ÑƒÐºÐ°Ð·Ð°Ð½Ð¾ Ð½ÐµÑколько Ñ€Ð¾Ð»ÐµÐ¹\n"
+ #: ../newrole/newrole.c:843
+ #, c-format
+ msgid "Error: multiple types specified\n"
+-msgstr "ïÛÉÂËÃ: Ã•Ã‹ÃÚÃÎàÎÅÓËÃÌØËàÔÉÃÃ×\n"
++msgstr "Ошибка: ÑƒÐºÐ°Ð·Ð°Ð½Ð¾ Ð½ÐµÑколько Ñ‚ипов\n"
+ #: ../newrole/newrole.c:850
+ #, c-format
+ msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr "éÚ×ÉÎÉÔÅ, -l ÃÃÖÅԠÂÙÔؠÉÓÃÃÌØÚÃ×ÃÎàÓ ÃÃÄÄÅÒÖËÃÊ SELinux MLS.\n"
++msgstr "Извините, -l Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ Ð¸Ñпользована Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ SELinux MLS.\n"
+ #: ../newrole/newrole.c:855
+ #, c-format
+ msgid "Error: multiple levels specified\n"
+-msgstr "ïÛÉÂËÃ: Ã•Ã‹ÃÚÃÎàÎÅÓËÃÌØËàÕÒÃ×ÎÅÊ\n"
++msgstr "Ошибка: ÑƒÐºÐ°Ð·Ð°Ð½Ð¾ Ð½ÐµÑколько ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¹\n"
+ #: ../newrole/newrole.c:865
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr "ïÛÉÂËÃ: Ã·Ã™ ÃŽÃ… ÃÃÖÅÔŠÉÚÃÅÎÑÔؠÕÒÃ×ÅÎؠ× ÃŽÃ…ÂÅÚÃÃÃÓÎÃàÔÅÒÃÉÎÃÌÅ\n"
++msgstr "Ошибка: Ð’Ñ‹ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚е Ð¸Ð·Ð¼ÐµÐ½ÑÑ‚ÑŒ ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ Ð² Ð½ÐµÐ±ÐµÐ·Ð¾Ð¿Ð°Ñном Ñ‚ерминале\n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÃÌÕÞÉÔؠÔÉàÃàÕÃÃÌÞÃÎÉÀ.\n"
++msgstr "Ðевозможно Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ñ‚ип Ð¿Ð¾ ÑƒÐ¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸ÑŽ.\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+ msgid "failed to get new context.\n"
+-msgstr "ÓÂÃÊ ÃÃÌÕÞÅÎÉÑ ÃŽÃ×ÃÇàËÃÎÔÅËÓÔÃ.\n"
++msgstr "Ñбой Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ ÐºÐ¾Ð½Ñ‚екÑта.\n"
+ #: ../newrole/newrole.c:908
+ #, c-format
+ msgid "failed to set new role %s\n"
+-msgstr "ÓÂÃʠÚÃÄÃÎÉÑ ÃŽÃ×ÃÊ Ã’ÃÌÉ %s\n"
++msgstr "Ñбой Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ Ñ€Ð¾Ð»Ð¸ %s\n"
+ #: ../newrole/newrole.c:915
+ #, c-format
+ msgid "failed to set new type %s\n"
+-msgstr "ÓÂÃʠÚÃÄÃÎÉÑ ÃŽÃ×ÃÇàÔÉÃà%s\n"
++msgstr "Ñбой Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ñ‚ипа %s\n"
+ #: ../newrole/newrole.c:925
+ #, c-format
+ msgid "failed to build new range with level %s\n"
+-msgstr "ÓÂÃÊ ÃÃÓÔÒÃÅÎÉÑ ÃŽÃ×ÃÇàÄÉÃÃÃÚÃÎàӠÕÒÃ×ÎÅà%s\n"
++msgstr "Ñбой Ð¿Ð¾ÑтроениѠнового Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð° Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¼ %s\n"
+ #: ../newrole/newrole.c:930
+ #, c-format
+ msgid "failed to set new range %s\n"
+-msgstr "ÓÂÃʠÚÃÄÃÎÉÑ ÃŽÃ×ÃÇàÄÉÃÃÃÚÃÎà%s\n"
++msgstr "Ñбой Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð° %s\n"
+ #: ../newrole/newrole.c:938
+ #, c-format
+ msgid "failed to convert new context to string\n"
+-msgstr "ÓÂÃÊ ÃÃ’Ã…ÃÂÒÃÚÃ×ÃÎÉÑ ÃŽÃ×ÃÇàËÃÎÔÅËÓÔàנÓÔÒÃËÕ\n"
++msgstr "Ñбой Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ ÐºÐ¾Ð½Ñ‚екÑта Ð² Ñтроку\n"
+ #: ../newrole/newrole.c:943
+ #, c-format
+ msgid "%s is not a valid context\n"
+-msgstr "%s ÃŽÃ… Ã‘×ÌÑÅÔÓѠ×ÅÒÎÙàËÃÎÔÅËÓÔÃÃ\n"
++msgstr "%s Ð½Ðµ ÑвлÑетÑѠверным ÐºÐ¾Ð½Ñ‚екÑтом\n"
+ #: ../newrole/newrole.c:950
+ #, c-format
+ msgid "Unable to allocate memory for new_context"
+-msgstr "îÅ×ÃÚÃÃÖÎà×ÙÄÅÌÉÔØ ÃÃÃÑÔؠÄÌÑ new_context"
++msgstr "Ðевозможно Ð²Ñ‹Ð´ÐµÐ»Ð¸Ñ‚ÑŒ Ð¿Ð°Ð¼ÑÑ‚ÑŒ Ð´Ð»Ñ new_context"
+ #: ../newrole/newrole.c:976
+ #, c-format
+ msgid "Unable to obtain empty signal set\n"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÃÌÕÞÉÔØ ÃŽÃÂÃÃ’ ÃÕÓÔÙȠÓÉÇÎÃÃŒÃ×\n"
++msgstr "Ðевозможно Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð½Ð°Ð±Ð¾Ñ€ Ð¿ÑƒÑÑ‚Ñ‹Ñ… Ñигналов\n"
+ #: ../newrole/newrole.c:984
+ #, c-format
+ msgid "Unable to set SIGHUP handler\n"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÃÌÕÞÉÔØ ÃÂÒÃÂÃÔÞÉË SIGHUP\n"
++msgstr "Ðевозможно Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚чик SIGHUP\n"
+ #: ../newrole/newrole.c:1053
+ #, c-format
+ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr "éÚ×ÉÎÉÔÅ. newrole ÃÃÖÅԠÂÙÔؠÉÓÃÃÌØÚÃ×ÃÎàÔÃÌØËàÄÌѠÑÄÒàÓ SELinux.\n"
++msgstr "Извините. newrole Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ Ð¸Ñпользована Ñ‚олько Ð´Ð»Ñ Ñдра Ñ SELinux.\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+ msgid "failed to get old_context.\n"
+-msgstr "ÓÂÃÊ ÃÃÌÕÞÅÎÉѠÓÔÃÃ’ÃÇÃ_ËÃÎÔÅËÓÔÃ.\n"
++msgstr "Ñбой Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñтарого_контекÑта.\n"
+ #: ../newrole/newrole.c:1077
+ #, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "÷ÎÉÃÃÎÉÅ!  Ã®Ã… Ã•Ã„ÃÅÔÓÑ ÃÃÌÕÞÉÔؠÉÎÆÃÃ’ÃÃÃÉÀ Ã tty.\n"
++msgstr "Внимание!  Ðе ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð¸Ð½Ñ„ормацию Ð¾ tty.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr "ÃÛÉÂËàÞÔÅÎÉѠËÃÎÆÉÇÕÒÃÃÉɠÓÌÕÖÂÙ PAM.\n"
++msgstr "ошибка Ñ‡Ñ‚ениѠконфигурации Ñлужбы PAM.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+ msgid "newrole: incorrect password for %s\n"
+-msgstr "newrole: ÃŽÃ…×ÅÒÎÙÊ ÃÃÃ’ÃÌØ %s\n"
++msgstr "newrole: Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¹ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ %s\n"
+ #: ../newrole/newrole.c:1160
+ #, c-format
+ msgid "newrole: failure forking: %s"
+-msgstr "newrole: Ã“ÂÃʠ×ÙÃÃÌÎÅÎÉÑ fork: %s"
++msgstr "newrole: Ñбой Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ fork: %s"
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+ msgid "Unable to restore tty label...\n"
+-msgstr "îÅ×ÃÚÃÃÖÎà×ÃÓÓÔÃÃŽÃ×ÉÔØ ÃÅÔËÕ tty...\n"
++msgstr "Ðевозможно Ð²Ð¾ÑÑтановить Ð¼ÐµÑ‚ку tty...\n"
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+ msgid "Failed to close tty properly\n"
+-msgstr "ïÛÉÂËàËÃÒÒÅËÔÎÃÇàÚÃËÒÙÔÉÑ tty\n"
++msgstr "Ошибка ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚ного Ð·Ð°ÐºÑ€Ñ‹Ñ‚иѠtty\n"
+ #: ../newrole/newrole.c:1224
+ #, c-format
+ msgid "Could not close descriptors.\n"
+-msgstr "îÅ×ÃÚÃÃÖÎàÚÃËÒÙÔؠÄÅÓËÒÉÃÔÃÒÙ.\n"
++msgstr "Ðевозможно Ð·Ð°ÐºÑ€Ñ‹Ñ‚ÑŒ Ð´ÐµÑкрипторы.\n"
+ #: ../newrole/newrole.c:1251
+ #, c-format
+ msgid "Error allocating shell's argv0.\n"
+-msgstr "ïÛÉÂËà×ÙÄÅÌÅÎÉÑ argv0 ÃÂÃÃŒÃÞËÉ.\n"
++msgstr "Ошибка Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ argv0 Ð¾Ð±Ð¾Ð»Ð¾Ñ‡ÐºÐ¸.\n"
+ #: ../newrole/newrole.c:1287
+ #, c-format
+ msgid "Unable to restore the environment, aborting\n"
+-msgstr "îÅ×ÃÚÃÃÖÎà×ÃÓÓÔÃÃŽÃ×ÉÔØ ÃËÒÕÖÅÎÉÅ, Ã×ÃÒÉÊÎÃÃ… ÃšÃ×ÅÒÛÅÎÉÅ\n"
++msgstr "Ðевозможно Ð²Ð¾ÑÑтановить Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ðµ, Ð°Ð²Ð°Ñ€Ð¸Ð¹Ð½Ð¾Ðµ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ðµ\n"
+ #: ../newrole/newrole.c:1298
+ msgid "failed to exec shell\n"
+-msgstr "ÓÂÃʠÚÃÃÕÓËàÃÂÃÃŒÃÞËÉ\n"
++msgstr "Ñбой Ð·Ð°Ð¿ÑƒÑка Ð¾Ð±Ð¾Ð»Ð¾Ñ‡ÐºÐ¸\n"
+ #: ../load_policy/load_policy.c:22
+ #, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "ÉÓÃÃÌØÚÃ×ÃÎÉÅ:  %s [-qi]\n"
++msgstr "иÑпользование:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr "%s:  Ã°ÃÌÉÔÉËàÕÖŠÚÃÇÒÕÖÅÎÃ, Ã‰Ã“ÈÃÄÎÃѠÚÃÇÒÕÚËàÚÃÃÃ’ÃÛÅÎÃ\n"
++msgstr "%s:  ÐŸÐ¾Ð»Ð¸Ñ‚ика ÑƒÐ¶Ðµ Ð·Ð°Ð³Ñ€ÑƒÐ¶ÐµÐ½Ð°, Ð¸ÑходнаѠзагрузка Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð°\n"
+ #: ../load_policy/load_policy.c:80
+ #, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-"%s:  Ã®Ã… Ã•Ã„ÃÅÔÓѠÚÃÇÒÕÚÉÔؠÚÃÃÃ’ÃÛÅÎÎÕÀ ÃÃÌÉÔÉËՠÉ Ã’ÅÖÉàÃÒÉÎÕÖÄÅÎÉÑ:  %s\n"
++msgstr "%s:  Ð½Ðµ ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½ÑƒÑŽ Ð¿Ð¾Ð»Ð¸Ñ‚ику Ð¸ Ñтрогий Ñ€ÐµÐ¶Ð¸Ð¼:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr "%s:  Ã®Ã…×ÃÚÃÃÖÎàÚÃÇÒÕÚÉÔØ ÃÃÌÉÔÉËÕ:  %s\n"
++msgstr "%s:  Ðевозможно Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ Ð¿Ð¾Ð»Ð¸Ñ‚ику:  %s\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+-msgstr "ôÒÅÂÕÅÔÓѠËÃË ÃÉÎÉÃÕàÃÄÎàËÃÔÅÇÃÒÉÑ"
++msgstr "ТребуетÑѠкак Ð¼Ð¸Ð½Ð¸Ð¼ÑƒÐ¼ Ð¾Ð´Ð½Ð° ÐºÐ°Ñ‚егориÑ"
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+ msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr "îÅÌØÚѠÉÚÃÅÎÉÔؠÕÒÃ×ÅÎؠÞÕ×ÓÔ×ÉÔÅÌØÎÃÓÔɠÉÓÃÃÌØÚÕÑ  '+' ÃŽÃ %s"
++msgstr "ÐельзѠизменить ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ Ñ‡ÑƒÐ²ÑтвительноÑти Ð¸ÑпользуѠ '+' Ð½Ð° %s"
+ #: ../scripts/chcat:110
+ #, c-format
+ msgid "%s is already in %s"
+-msgstr "%s Ã•Ã–Ã… Ã— %s"
++msgstr "%s ÑƒÐ¶Ðµ Ð² %s"
+ #: ../scripts/chcat:188 ../scripts/chcat:198
+ #, c-format
+ msgid "%s is not in %s"
+-msgstr "%s ÃŽÃ… Ã— %s"
++msgstr "%s Ð½Ðµ Ð² %s"
+ #: ../scripts/chcat:267 ../scripts/chcat:272
+ msgid "Can not combine +/- with other types of categories"
+-msgstr "îÅ×ÃÚÃÃÖÎàÃÂßÅÄÉÎÉÔØ +/- Ã“ Ã„ÒÕÇÉÃɠÔÉÃÃÃɠËÃÔÅÇÃÒÉÊ"
++msgstr "Ðевозможно Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½Ð¸Ñ‚ÑŒ +/- Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ Ñ‚ипами ÐºÐ°Ñ‚егорий"
+ #: ../scripts/chcat:319
+ msgid "Can not have multiple sensitivities"
+-msgstr "îÅÌØÚѠÉÃÅÔØ ÃŽÃ…ÓËÃÌØËàÕÒÃ×ÎÅʠÞÕ×ÓÔ×ÉÔÅÌØÎÃÓÔÉ"
++msgstr "ÐельзѠиметь Ð½ÐµÑколько ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¹ Ñ‡ÑƒÐ²ÑтвительноÑти"
+ #: ../scripts/chcat:325
+ #, c-format
+ msgid "Usage %s CATEGORY File ..."
+-msgstr "éÓÃÃÌØÚÃ×ÃÎÉÅ %s Ã«Ã¡Ã´Ã¥Ã§Ã¯Ã²Ã©Ã± Ã¦ÃÊÌ ..."
++msgstr "ИÑпользование %s ÐšÐТЕГОРИЯ Ð¤Ð°Ð¹Ð» ..."
+ #: ../scripts/chcat:326
+ #, c-format
+ msgid "Usage %s -l CATEGORY user ..."
+-msgstr "éÓÃÃÌØÚÃ×ÃÎÉÅ %s -l Ã«Ã¡Ã´Ã¥Ã§Ã¯Ã²Ã©Ã± ÃÃÌØÚÃ×ÃÔÅÌØ ..."
++msgstr "ИÑпользование %s -l ÐšÐТЕГОРИЯ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ель ..."
+ #: ../scripts/chcat:327
+ #, c-format
+ msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr "éÓÃÃÌØÚÃ×ÃÎÉÅ %s [[+|-]ëáôåçïòéñ],...]q Ã¦ÃÊÌ ..."
++msgstr "ИÑпользование %s [[+|-]КÐТЕГОРИЯ],...]q Ð¤Ð°Ð¹Ð» ..."
+ #: ../scripts/chcat:328
+ #, c-format
+ msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr "éÓÃÃÌØÚÃ×ÃÎÉÅ %s -l [[+|-]ëáôåçïòéñ],...]q ÃÃÌØÚÃ×ÃÔÅÌØ ..."
++msgstr "ИÑпользование %s -l [[+|-]КÐТЕГОРИЯ],...]q Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ель ..."
+ #: ../scripts/chcat:329
+ #, c-format
+ msgid "Usage %s -d File ..."
+-msgstr "éÓÃÃÌØÚÃ×ÃÎÉÅ %s -d Ã¦ÃÊÌ ..."
++msgstr "ИÑпользование %s -d Ð¤Ð°Ð¹Ð» ..."
+ #: ../scripts/chcat:330
+ #, c-format
+ msgid "Usage %s -l -d user ..."
+-msgstr "éÓÃÃÌØÚÃ×ÃÎÉÅ %s -l -d ÃÃÌØÚÃ×ÃÔÅÌØ ..."
++msgstr "ИÑпользование %s -l -d Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ель ..."
+ #: ../scripts/chcat:331
+ #, c-format
+ msgid "Usage %s -L"
+-msgstr "éÓÃÃÌØÚÃ×ÃÎÉÅ %s -L"
++msgstr "ИÑпользование %s -L"
+ #: ../scripts/chcat:332
+ #, c-format
+ msgid "Usage %s -L -l user"
+-msgstr "éÓÃÃÌØÚÃ×ÃÎÉÅ %s -L -l ÃÃÌØÚÃ×ÃÔÅÌØ"
++msgstr "ИÑпользование %s -L -l Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ель"
+ #: ../scripts/chcat:333
+ msgid "Use -- to end option list.  For example"
+-msgstr "éÓÃÃÌØÚÕÊÔÅ -- ÃžÃ”ÃÂ٠ÕËÃÚÃÔؠÚÃ×ÅÒÛÅÎÉŠÓÃÉÓËàÃÃÃ’ÃÃÅÔÒÃ×. Ã®Ã ÃÒÉÃÃ…Ã’"
++msgstr "ИÑпользуйте -- Ñ‡Ñ‚обы ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ðµ ÑпиÑка Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚ров. Ðа Ð¿Ñ€Ð¸Ð¼ÐµÑ€"
+ #: ../scripts/chcat:334
+ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+@@ -1280,1146 +1282,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+-msgstr "ïÛÉÂËàÃÃÃ’ÃÃÅÔÒÃ× %s "
++msgstr "Ошибка Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚ров %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "îŠÕÄÃÅÔÓÑ ÃÔËÒÙÔØ %s: ÃÅÒÅ×ÃÄÙ ÃŽÃ… ÃÃÄÄÅÒÖÉ×ÃÀÔÓѠÎàÃÃÛÉÎÃȠÂÅÚ MLS: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "õÒÃ×ÅÎØ"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "ðÅÒÅ×ÃÄ"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "ðÅÒÅ×ÃÄÙ ÃŽÃ… ÃÃÇÕԠ×ËÌÀÞÃÔØ ÃÃ’ÃÂÅÌÙ '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "îÅÄÃÃÕÓÔÉÃÙʠÕÒÃ×ÅÎØ '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s Ã•Ã–Ã… ÃÃÒÅÄÅÌÅΠ× ÃÅÒÅ×ÃÄÅ"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s ÃŽÃ… ÃÃÒÅÄÅÌÅÎà× ÃÅÒÅ×ÃÄÅ"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "óÃÃÃÓÔÃ×ÌÅÎÉŠ×ÈÃÄàÄÌÑ %s Ã•Ã–Ã… ÃÃÒÅÄÅÌÅÎÃ"
+-
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "ÄÃÂÃ×ÉÔؠÓÃÃÃÓÔÃ×ÌÅÎÉÅ ÃÃÌØÚÃ×ÃÔÅÌÑ SELinux"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux ÃÃÌØÚÃ×ÃÔÅÌØ %s Ã•Ã–Ã… ÃÃÒÅÄÅÌÅÎ"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "îÅÃÂÈÃÄÉÃàÚÎÃÞÅÎÉÅ ÃÃÒÔÃ"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "áÄÒÅÓ %s Ã•Ã–Ã… ÃÃÒÅÄÅÌÅÎ"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "éÎÔÅÒÆÅÊÓ %s Ã•Ã–Ã… ÃÃÒÅÄÅÌÅÎ"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "ïÛÉÂËàÉÎÉÃÉÃÌÉÚÃÃÉÉ, Ã×ÃÒÉÊÎÃÃ… ÃšÃ×ÅÒÛÅÎÉÅ.\n"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "ïÛÉÂËàÎÃÓÔÒÃÊËɠ×ÃÚÃÃÖÎÃÓÔÅÊ, Ã×ÃÒÉÊÎÃÃ… ÃšÃ×ÅÒÛÅÎÉÅ\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "ïÛÉÂËàÕÓÔÃÃŽÃ×ËÉ KEEPCAPS, Ã×ÃÒÉÊÎÃÃ… ÃšÃ×ÅÒÛÅÎÉÅ.\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "ïÛÉÂËàÓÂÒÃÓà×ÃÚÃÃÖÎÃÓÔÅÊ, Ã×ÃÒÉÊÎÃÃ… ÃšÃ×ÅÒÛÅÎÉÅ.\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "ïÛÉÂËàÓÂÒÃÓà×ÃÚÃÃÖÎÃÓÔÉ SETUID, Ã×ÃÒÉÊÎÃÃ… ÃšÃ×ÅÒÛÅÎÉÅ.\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "ïÛÉÂËàÃÓ×ÃÂÃÖÄÅÎÉѠ×ÃÚÃÃÖÎÃÓÔÅÊ\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "ÃÅÒÅ×ÃÄÙ ÃŽÃ… ÃÃÄÄÅÒÖÉ×ÃÀÔÓѠÄÌÑ ÃÃÛÉΠÂÅÚ MLS"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "ðÅÒÅËÌÀÞÃÔÅÌØ"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "×ÓÅ"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "ðÒÃÉÚ×ÃÌØÎÙÊ"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "ïÃÒÅÄÅÌÅÎÉÅ\n"
+-#~ "ÆÃÊÌÃ×"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "ôÉàæÃÊÌÃ"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "æÃÉÌ\n"
+-#~ "ôÉÃ"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "óÃÃÃÓÔÃ×ÌÅÎÉÅ ÃÃÌØÚÃ×ÃÔÅÌÅÊ"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "ìÃÇÉÎ\n"
+-#~ "éÃÑ"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "ðÃÌØÚÃ×ÃÔÅÌØ"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "äÉÃÃÃÚÃÃŽ\n"
+-#~ "MLS/MCS"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "ôÒÅÂÕÅÔÓÑ Ã×ÔÃÒÉÚÃÃÉÑ '%s'"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "íÃÄÕÌØ ÃÃÌÉÔÉËÉ"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "÷ÙËÌÀÞÉÔØ ÃÕÄÉÔ"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "÷ËÌÀÞÉÔØ ÃÕÄÉÔ"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "úÃÇÒÕÚÉÔØ ÃÃÄÕÌØ ÃÃÌÉÔÉËÉ"
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>ðÒÉÌÃÖÅÎÉÑ</b>"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>ðÃÌØÚÃ×ÃÔÅÌÉ root</b>"
+-
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP Ã°ÃÒÔÙ</b>"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP Ã°ÃÒÔÙ</b>"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "äÃÂÃ×ÉÔؠÄÉÃÃŒÃǠÄÌÑ ÃÅÒÅËÌÀÞÃÔÅÌÅÊ"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "äÃÂÃ×ÉÔؠÆÃÊÌ٠ɠËÃÔÃÃŒÃÇÉ, Ã— Ã‹ÃÔÃÒÙÅ ÃÒÉÌÃÖÅÎÉŠÂÕÄÅÔ ÃÓÕÃÅÓÔ×ÌÑÔØ "
+-#~ "ÚÃÃÉÓØ. Ã¦ÃÊÌÙ PID, Ã–ÕÒÎÃÌÙ, /var/lib"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "äÃÂÃ×ÉÔØ/ Ã•Ã„ÃÌÉÔØ ÃÅÒÅËÌÀÞÃÔÅÌÉ, Ã‰Ã“ÃÃÌØÚÕÅÃÙŠÄÌѠÜÔÃÇàÃÒÉÌÃÖÅÎÉÑ/ "
+-#~ "ÃÃÌØÚÃ×ÃÔÅÌÑ"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "Admin User Role"
+-#~ msgstr "òÃÌØ ÃÄÃÉÎÉÓÔÒÃÔÃÃ’Ã"
+-
+-#~ msgid "All"
+-#~ msgstr "÷ÓÅ"
+-
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "òÃÚÒÅÛÉÔØ ÃÒÉÌÃÖÅÎÉÀ/ ÃÃÌØÚÃ×ÃÔÅÌÀ ÃÓÕÃÅÓÔ×ÌÑÔؠ×ÙÚÃ× bindresvport Ã“ 0. "
+-#~ "éÓÃÃÌØÚÕÅÔÓÑ ÃÃÒÔ 600-1024"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "éÃÑ ÃÅÒÅËÌÀÞÃÔÅÌÑ"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "óÃÚÄÃ×ÃÔؠÉ ÃÂÒÃÂÃÔÙ×ÃÔؠ×ÒÅÃÅÎÎÙŠÆÃÊÌ٠נËÃÔÃÃŒÃÇÅ /tmp"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "÷×ÅÄÉÔŠÓÃÉÓÃË TCP-ÃÃÒÔÃנÉÌɠÄÉÃÃÃÚÃÃŽÃ× ÃÃÒÔÃ×, Ã’ÃÚÄÅÌÅÎÎÙȠÚÃÃÑÔÃÊ, Ã‹ "
+-#~ "ËÃÔÃÒÙàÂÕÄÅÔ ÃÓÕÃÅÓÔ×ÌÑÔØÓÑ ÃÃÄËÌÀÞÅÎÉÅ. Ã°Ã’ÉÃÃ…Ã’: 612, 650-660"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "÷×ÅÄÉÔŠÓÃÉÓÃË UDP-ÃÃÒÔÃנÉÌɠÄÉÃÃÃÚÃÃŽÃ× ÃÃÒÔÃ×, Ã’ÃÚÄÅÌÅÎÎÙȠÚÃÃÑÔÃÊ, Ã„ÌÑ "
+-#~ "ËÃÔÃÒÙȠÂÕÄÅԠ×ÙÃÃÌÎÅÎàÓÃÃÃÓÔÃ×ÌÅÎÉÅ. Ã°Ã’ÉÃÃ…Ã’: 612, 650-660"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "÷×ÅÄÉÔŠÓÃÉÓÃË UDP-ÃÃÒÔÃנÉÌɠÄÉÃÃÃÚÃÃŽÃ× ÃÃÒÔÃ×, Ã’ÃÚÄÅÌÅÎÎÙȠÚÃÃÑÔÃÊ, Ã‹ "
+-#~ "ËÃÔÃÒÙàÂÕÄÅÔ ÃÓÕÃÅÓÔ×ÌÑÔØÓÑ ÃÃÄËÌÀÞÅÎÉÅ. Ã°Ã’ÉÃÃ…Ã’: 612, 650-660"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "õËÃÖÉÔŠÓÅÔÅ×ÙÅ ÃÃÒÔÙ, Ã‹ Ã‹ÃÔÃÒÙàÃÃÄËÌÀÞÃÅÔÓÑ Ã’ÃÌØ ÃÒÉÌÃÖÅÎÉÑ/ "
+-#~ "ÃÃÌØÚÃ×ÃÔÅÌÑ"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr ""
+-#~ "õËÃÖÉÔŠÓÅÔÅ×ÙÅ ÃÃÒÔÙ, Ã‹ÃÔÃÒÙÅ Ã’ÃÌØ ÃÒÉÌÃÖÅÎÉÑ/ ÃÃÌØÚÃ×ÃÔÅÌѠÂÕÄÅÔ "
+-#~ "ÃÃ’ÃÓÌÕÛÉ×ÃÔØ"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Executable"
+-#~ msgstr "éÓÃÃÌÎÑÅÃÙʠËÃÃÃÃÎÅÎÔ"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Existing User Roles"
+-#~ msgstr "óÕÃÅÓÔ×ÕÀÃÉÅ Ã’ÃÌÉ ÃÃÌØÚÃ×ÃÔÅÌÅÊ"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "óÇÅÎÅÒÉÒÃ×ÃÎÎÙŠÆÃÊÌÙ ÃÃÌÉÔÉËÉ"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Init script"
+-#~ msgstr "CÃÅÎÃÒÉÊ init"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "÷ÚÃÉÃÃÄÅÊÓÔ×ÕÅԠӠÔÅÒÃÉÎÃÃŒÃÃ"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "äÅÃÃÃŽ Ã©ÃŽÃ”ÅÒÎÅÔ-ÓÌÕÖ (inetd)"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "initd ÃšÃÃÕÓËÃÅÔÓѠÄÅÃÃÃŽÃàxinetd"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "éÚÃÅÎÉÔؠÓÕÃÅÓÔ×ÕÀÃÕÀ ÃšÃÃÉÓØ Ã×ÔÃÒÉÚÃÃÉÉ ÃÃÌØÚÃ×ÃÔÅÌÑ."
+-
+-#~ msgid "Name"
+-#~ msgstr "éÃÑ"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "ëÃÔÃÃŒÃÇ ÃÃÌÉÔÉËÉ"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "òÃÌØ ÃÄÃÉÎÉÓÔÒÃÔÃÒàroot"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "õÔÉÌÉÔàÇÅÎÅÒÃÃÉÉ ÃÃÌÉÔÉËÉ SELinux"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "÷ÙÂÅÒÉÔŠðÃÒÔÙ"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "÷ÙÂÅÒÉÔÅ Ã’ÃÌØ ÃÄÃÉÎÉÓÔÒÃÔÃÒàroot, Ã…ÓÌɠÜÔÃÔ ÃÃÌØÚÃ×ÃÔÅÌؠÔÃËÖÅ "
+-#~ "ÃÄÃÉÎÉÓÔÒÉÒÕÅԠÓÉÓÔÅÃՠ× Ã’ÅÖÉÃÃ… root. Ã°Ã’ɠÜÔÃàÃÃÌØÚÃ×ÃÔÅÌØ ÃŽÃ… Ã“ÃÃÖÅÔ "
+-#~ "Ã×ÔÃÒÉÚÃ×ÃÔØÓѠנÓÉÓÔÅÃÃ… ÃŽÃÃÒÑÃÕÀ."
+-
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr ""
+-#~ "÷ÙÂÅÒÉÔŠÄÃÃÃÌÎÉÔÅÌØÎÙŠÄÃÃÅÎÙ, Ã‹ÃÔÃÒÙÃɠÂÕÄÅԠÕÃÃ’Ã×ÌÑÔؠÜÔÃÔ ÃÃÌØÚÃ×ÃÔÅÌØ"
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr ""
+-#~ "÷ÙÂÅÒÉÔŠÄÃÃÃÌÎÉÔÅÌØÎÙŠÄÃÃÅÎÙ, Ã— Ã‹ÃÔÃÒÙȠÄÃÌÖÎàÃÒÉÓÕÔÓÔ×Ã×ÃÔؠÜÔàÒÃÌØ"
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "÷ÙÂÅÒÉÔŠÄÃÃÃÌÎÉÔÅÌØÎÙÅ Ã’ÃÌɠÄÌѠÜÔÃÇàÃÃÌØÚÃ×ÃÔÅÌÑ"
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "÷ÙÂÅÒÉÔÅ ÃÅÒÅËÌÀÞÃÔÅÌɠÄÌѠÉÓÃÃÌØÚÃ×ÃÎÉÑ ÃÒÉÌÃÖÅÎÉÅÃ"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "÷ÙÂÅÒÉÔŠËÃÔÃÃŒÃÇ, Ã— Ã‹ÃÔÃÃ’ÃàÂÕÄÅԠÇÅÎÅÒÉÒÃ×ÃÔØÓÑ ÃÃÌÉÔÉËÃ"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "÷ÙÂÅÒÉÔŠÆÃÊÌ٠ɠËÃÔÃÃŒÃÇÉ, Ã‹ÃÔÃÒÙÃɠÂÕÄÅԠÕÃÃ’Ã×ÌÑÔØ ÃÒÉÌÃÖÅÎÉÅ"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "÷ÙÂÅÒÉÔŠÄÃÃÅÎÙ ÃÒÉÌÃÖÅÎÉÊ, ÃŽÃ Ã‹ÃÔÃÒÙŠÓÌÅÄÕÅÔ ÃÅÒÅÎÅÓÔɠÜÔՠÒÃÌØ "
+-#~ "ÃÃÌØÚÃ×ÃÔÅÌÑ."
+-
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "÷ÙÂÅÒÉÔŠÄÃÃÅÎÙ, Ã‹ÃÔÃÒÙÃɠÄÃÌÖÅΠÕÃÃ’Ã×ÌÑÔؠÜÔÃÔ ÃÃÌØÚÃ×ÃÔÅÌØ."
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr ""
+-#~ "÷ÙÂÅÒÉÔÅ Ã’ÃÌÉ ÃÃÌØÚÃ×ÃÔÅÌÅÊ, Ã‹ÃÔÃÒÙŠÓÌÅÄÕÅÔ ÃÅÒÅÎÅÓÔɠנÄÃÃÅÎÙ "
+-#~ "ÃÒÉÌÃÖÅÎÉÊ."
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr ""
+-#~ "÷ÙÂÅÒÉÔÅ Ã’ÃÌÉ ÃÃÌØÚÃ×ÃÔÅÌÅÊ, Ã‹ÃÔÃÒÙŠÄÃÌÖÎ٠ÂÙÔØ ÃÅÒÅÎÅÓÅÎ٠נÜÔÃԠÄÃÃÃ…ÃŽ"
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "÷ÙÂÅÒÉÔÅ Ã’ÃÌÉ ÃÃÌØÚÃ×ÃÔÅÌÅÊ, Ã‹ÃÔÃÒÙŠ×٠ÈÃÔÉÔÅ ÃÃÄÉÆÉÃÉÒÃ×ÃÔØ"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "ïÔÃÃ’Ã×Ëàaudit Ã“ÃÃÂÃÅÎÉÊ "
+-
+-#~ msgid "Sends email"
+-#~ msgstr "ïÔÃÃ’Ã×ÌÑÅԠÓÃÃÂÃÅÎÉÅ ÃàÜÌ.ÃÃÞÔÅ"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "óÔÃÎÄÃÒÔÎÙÊ Init Ã¤Ã…ÃÃÃŽ"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "óÔÃÎÄÃÒÔÎÙŠÄÅÃÃÎ٠ÉÎÉÃÉÃÌÉÚÃÃÉɠÚÃÃÕÓËÃÀÔÓÑ ÃÒɠÚÃÇÒÕÚËŠÓ ÃÃÃÃÃØÀ "
+-#~ "ÓÃÅÎÃÒÉÅ× init, Ã‹ÃÔÃÒÙÅ ÃÂÙÞÎàÒÃÓÃÃÃŒÃÖÅÎ٠× /etc/rc.d/init.d"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "ó ÃÃÃÃÃØÀ ÃœÃ”ÃʠÕÔÉÌÉÔÙ ÃÃÖÎàÇÅÎÅÒÉÒÃ×ÃÔؠÉÎÆÒÃÓÔÒÕËÔÕÒÕ ÃÃÌÉÔÉËÉ, "
+-#~ "ÃÇÒÃÎÉÞÉÔØ Ã’ÃÂÃÔÕ ÃÒÉÌÃÖÅÎÉʠÉ ÃÃÌØÚÃ×ÃÔÅÌÅʠÓ ÃÃÃÃÃØÀ SELinux.\n"
+-#~ "\n"
+-#~ "õÔÉÌÉÔàÇÅÎÅÒÉÒÕÅÔ:\n"
+-#~ "æÃÊÌ ÃÒÉÎÕÖÄÅÎÉѠÔÉÃà(te)\n"
+-#~ "æÃÊ̠ÉÎÔÅÒÆÅÊÓà(if)\n"
+-#~ "æÃÊ̠ËÃÎÔÅËÓÔà(fc)\n"
+-#~ "óÃÅÎÃÒÉÊ ÃÂÃÃŒÃÞËÉ (sh) Ã„ÌѠËÃÃÃÉÌÑÃÉɠɠÕÓÔÃÃŽÃ×ËÉ ÃÃÌÉÔÉËÉ."
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "üÔàÕÔÉÌÉÔàÇÅÎÅÒÉÒÕÅÔ:\n"
+-#~ "æÃÊÌ ÃÒÉÎÕÖÄÅÎÉѠÔÉÃà(te), Ã†ÃÊ̠ÉÎÔÅÒÆÅÊÓà(if), Ã†ÃÊÌÃ×ÙʠËÃÎÔÅËÓÔ "
+-#~ "(fc),\n"
+-#~ "ÓÃÅÎÃÒÉÊ ÃÂÃÃŒÃÞËÉ (sh).\n"
+-#~ "\n"
+-#~ "÷ÙÃÃÌÎÉÔŠÓÃÅÎÃÒÉÊ ÃÂÃÃŒÃÞËÉ, ÃžÃ”ÃÂ٠ÓËÃÃÃÉÌÉÒÃ×ÃÔØ/ Ã•Ã“ÔÃÃŽÃ×ÉÔؠÉ ÃÒÉÓ×ÃÉÔØ "
+-#~ "ÃÅÔËɠÆÃÊÌÃÃ\n"
+-#~ "ɠËÃÔÃÃŒÃÇÃÃ.\n"
+-#~ "÷ËÌÀÞÉÔÅ Ã’ÃÚÒÅÛÃÀÃÉÊ Ã’ÅÖÉà(setenforce 0). \n"
+-#~ "úÃÃÕÓÔÉÔÅ ÃÒÉÌÃÖÅÎÉŠÄÌѠÇÅÎÅÒÃÃÉɠÓÃÃÂÃÅÎÉÊ avc.\n"
+-#~ "÷ÙÃÃÌÎÉÔŠËÃÃÃÎÄÕ audit2allow -R, ÃžÃ”ÃÂ٠ÓÃÚÄÃÔؠÄÃÃÃÌÎÉÔÅÌØÎÙÅ ÃÃ’Ã×ÉÌà"
+-#~ "ÄÌѠÆÃÊÌàte.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "üÔàÕÔÉÌÉÔàÇÅÎÅÒÉÒÕÅÔ:\n"
+-#~ "æÃÊÌ ÃÒÉÎÕÖÄÅÎÉѠÔÉÃà(te), Ã†ÃÊ̠ÉÎÔÅÒÆÅÊÓà(if), Ã†ÃÊÌÃ×ÙʠËÃÎÔÅËÓÔ "
+-#~ "(fc),\n"
+-#~ "ÓÃÅÎÃÒÉÊ ÃÂÃÃŒÃÞËÉ (sh).\n"
+-#~ "\n"
+-#~ "÷ÙÃÃÌÎÉÔŠÓÃÅÎÃÒÉÊ ÃÂÃÃŒÃÞËɠ× Ã’ÅÖÉÃÃ… root, ÃžÃ”ÃÂ٠ÓËÃÃÃÉÌÉÒÃ×ÃÔØ/ "
+-#~ "ÕÓÔÃÃŽÃ×ÉÔØ\n"
+-#~ "É ÃÒÉÓ×ÃÉÔØ ÃÅÔËɠÆÃÊÌÃàɠËÃÔÃÃŒÃÇÃÃ.\n"
+-#~ "þÔÃÂ٠ÓÃÃÃÓÔÃ×ÉÔØ Ã’ÃÌÉ ÃÃÌØÚÃ×ÃÔÅÌÑàLinux, Ã‰Ã“ÃÃÌØÚÕÊÔÅ semanage Ã‰ÃŒÃ‰ "
+-#~ "useradd.\n"
+-#~ "÷ËÌÀÞÉÔÅ Ã’ÃÚÒÅÛÃÀÃÉÊ Ã’ÅÖÉà(setenforce 0). \n"
+-#~ "á×ÔÃÒÉÚÕÊÔÅÓؠÉ ÃÃ’Ã×ÅÒØÔÅ Ã’ÃÌØ ÃÃÌØÚÃ×ÃÔÅÌÑ.\n"
+-#~ "÷ÙÃÃÌÎÉÔŠËÃÃÃÎÄÕ audit2allow -R, ÃžÃ”ÃÂ٠ÓÃÚÄÃÔؠÄÃÃÃÌÎÉÔÅÌØÎÙÅ ÃÃ’Ã×ÉÌà"
+-#~ "ÄÌѠÆÃÊÌàte.\n"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "üÔÃÔ ÃÃÌØÚÃ×ÃÔÅÌØ ÃÃÖÅÔ Ã×ÔÃÒÉÚÃ×ÃÔØÓѠÓ ÃÃÃÃÃØÀ X Ã‰ÃŒÃ‰ Ã”Ã…Ã’ÃÉÎÃÃŒÃ. "
+-#~ "éÚÎÃÞÃÌØÎàÄÌÑ ÃÃÌØÚÃ×ÃÔÅÌÑ ÃŽÃ… ÃŽÃÓÔÒÃÅÎÙ setuid, sudo, su Ã‰ Ã“ÅÔÅ×ÃÃ… "
+-#~ "ÃËÒÕÖÅÎÉÅ."
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "ðÃÌØÚÃ×ÃÔÅÌؠÓÃÃÖÅÔ Ã×ÔÃÒÉÚÃ×ÃÔØÓѠÔÃÌØËàÕÄÃÌÅÎÎàÉÌɠנÔÅÒÃÉÎÃÌÅ. "
+-#~ "éÚÎÃÞÃÌØÎàÄÌÑ ÃÃÌØÚÃ×ÃÔÅÌÑ ÃŽÃ… ÃŽÃÓÔÒÃÅÎÙ setuid, sudo, su Ã‰ Ã“ÅÔÅ×ÃÃ… "
+-#~ "ÃËÒÕÖÅÎÉÅ."
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "îÅÚÃÒÅÚÅÒ×ÉÒÃ×ÃÎÎÙŠðÃÒÔÙ (>1024)"
+-
+-#~ msgid "User Application"
+-#~ msgstr "ðÃÌØÚÃ×ÃÔÅÌØÓËÃÃ… Ã°Ã’ÉÌÃÖÅÎÉÅ"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "éÓÃÃÌØÚÕÅÔÓÑ Pam Ã„ÌÑ ÃÕÔÅÎÔÉÆÉËÃÃÉÉ"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "éÓÃÃÌØÚÕÅÔÓÑ dbus"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "éÓÃÃÌØÚÕÀÔÓÑ nsswitch Ã‰ÃŒÃ‰ getpw* Ã—ÙÚÃ×Ù"
+-
+-#~ msgid "Role"
+-#~ msgstr "òÃÌØ"
+-
+-#~ msgid "Application"
+-#~ msgstr "ðÒÉÌÃÖÅÎÉÑ"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s Ã„ÃÌÖÎàÂÙÔؠÄÉÒÅËÔÃÒÉÅÊ"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "îÅÃÂÈÃÄÉÃàÕËÃÚÃÔØ ÃÃÌØÚÃ×ÃÔÅÌÑ"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "ðÒÃ×ÅÒËàÉÃÅÎÉ"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "îÅÃÂÈÃÄÉÃà××ÅÓÔɠÉÃÑ"
+-
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "îÅÃÂÈÃÄÉÃàÕËÃÚÃÔØ Ã’ÃÌØ"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "îÃÓÔÒÃÊËàSELinux"
+-
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "æÃÊÌ ÃÒÉÎÕÖÄÅÎÉѠÔÉÃÃ"
+-
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "æÃÉ̠ÉÎÔÅÒÆÅÊÓÃ"
+-
+-#, fuzzy
+-#~ msgid "File Contexts file"
+-#~ msgstr "ëÃÎÔÅËÓԠÆÃÊÌàÄÌÑ %s ÃŽÃ… ÃÃÒÅÄÅÌÅÎ"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux Ã°ÃÒÔ\n"
+-#~ "ôÉÃ"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "ðÒÃÔÃËÃÃŒ"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "õÒÃ×ÅÎØ"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "ðÃÒÔ"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "óÌÕÖÂàúÃÃÉÔÙ SELinux"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "áÄÃÉÎ"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "úÃÃÉÔàðÃÃÑÔÉ"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Mount"
+-#~ msgstr "íÃÎÔÉÒÃ×ÃÔØ"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "Web Ã°Ã’ÉÌÃÖÅÎÉÑ"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ amanda ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ amavis ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàapmd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàarpwatch ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàauditd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàautomount ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ avahi ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàbluetooth ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàcanna ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàcardmgr ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ Cluster Server ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàciped ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàclamd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ clamscan ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ clvmd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàcomsat ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàcourier ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàcpucontrol ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàcpuspeed ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàcrond ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ cupsd back end server ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàcupsd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ cupsd_lpd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàcvs ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàcyrus ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàdbskkd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàdbusd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ dccd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ dccifd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "÷ÙËÌÀÞÅÎÃ\9eÚÃÃÉÔÃ\9eSELinux\9eÄÌÑ\9edccm"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "÷ÙËÌÀÞÅÎÃ\9eÚÃÃÉÔÃ\9eSELinux\9eÄÌÑ\9eÄÅÃÃÃŽÃ\9eddt"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "÷ÙËÌÀÞÅÎÃ\9eÚÃÃÉÔÃ\9eSELinux\9eÄÌÑ\9eÄÅÃÃÃŽÃ\9edevfsd"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ\9eÄÅÃÃÃŽÃ\9edhcpc ÃÔËÌÀÞÅÎÃ\9e"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàdhcpd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàdictd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ Evolution ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "éÇÒÙ"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ games ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ web Ã‚Ã’ÃÕÚÅÒÃ× ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌÑ Thunderbird ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàdistccd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàdmesg ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "úÃÃÉÔÃ\9eSELinux\9eÄÌѠÄÅÃÃÎàdnsmasq ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàdovecot ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàentropyd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ fetchmail ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàfingerd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàfreshclam ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàfsdaemon ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàgpm ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàgss ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàHal ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "óÃ×ÃÅÓÔÉÃÃÓÔØ"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ hostname ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàhotplug ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàhowl ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàcups hplip ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàhttpd rotatelogs ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "óÌÕÖÂàHTTPD"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ http suexec ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàhwclock ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎài18n ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàimazesrv ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàinetd child ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàinetd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàinnd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàiptables ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàircd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàirqbalance ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàiscsi ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàjabberd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàkadmind ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàklogd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàkrb5kdc ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàktalk ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàkudzu ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàlocate ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàlpd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàlrrd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàlvm ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ mailman ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàmdadm ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàmonopd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàmrtg ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàmysqld ÃÔËÌÀÞÅÎÃ"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎànagios ÃÔËÌÀÞÅÎÃ"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "óÌÕÖÂàéÃÃ…ÃŽ"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎànamed ÃÔËÌÀÞÅÎÃ"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎànessusd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ NetworkManager ÃÔËÌÀÞÅÎÃ"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎànfsd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎànmbd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎànrpe ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎànscd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎànsd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàntpd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ oddjob ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ oddjob_mkhomedir ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàopenvpn ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàpam ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ pegasus ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàperdition ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàportmap ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàportslave ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ postfix ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàpostgresql ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ pptp ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàprelink ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàprivoxy ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàptal ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàpxe ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ pyzord ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàquota ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàradiusd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàradvd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ rdisc ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ readahead ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ restorecond ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàrhgb ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ ricci ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ ricci_modclusterd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàrlogind ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàrpcd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ rshd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàrsync ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "ÓÅÒ×ÅÒ Ã×ÔÃÒÉÚÃÃÉÉ SASL"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàsaslauthd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàscannerdaemon ÃÔËÌÀÞÅÎÃ"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàsendmail ÃÔËÌÀÞÅÎÃ"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ setrans ÃÔËÌÀÞÅÎÃ"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàsetroubleshoot ÃÔËÌÀÞÅÎÃ"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàslapd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàslrnpull ÃÔËÌÀÞÅÎÃ"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàsmbd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàsnmpd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàsnort ÃÔËÌÀÞÅÎÃ"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàsoundd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàsound ÃÔËÌÀÞÅÎÃ"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "úÃÃÉÔàÃԠóÃÃÃÃ"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàspamd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàspeedmgmt ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàsquid ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàssh ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàstunnel ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàswat ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàsxid ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàsyslogd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÓÉÓÔÅÃ٠ÚÃÄÃÎÉÊ cron jobs ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàtcp ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàtelnet ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàtftpd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàtransproxy ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàudev ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàuml ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàupdfstab ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàuptimed ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàuucpd ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàvmware ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàwatchdog ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàwinbind ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàxdm ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàxen ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàxfs ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÕÃÃ’Ã×ÌÅÎÉÑ xen ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÃÃÃÎàypbind ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ NIS Password Daemon ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌѠÄÅÃÃÎàypserv ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "úÃÃÉÔàSELinux Ã„ÌÑ NIS Transfer Daemon ÃÔËÌÀÞÅÎÃ"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "Delete %s"
+-#~ msgstr "õÄÃÌÉÔØ %s"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "Add %s"
+-#~ msgstr "äÃÂÃÉÔØ %s"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid "Modify %s"
+-#~ msgstr "éÚÃÅÎÉÔØ %s"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>÷ÙÂÃÃ’:</b>"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#~ msgid "Add"
+-#~ msgstr "äÃÂÃ×ÉÔØ"
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "äÃÂÃ×ÉÔؠóÅÔÅ×ÃʠðÃÒÔ"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "äÃÂÃ×ÉÔؠóÅÔÅ×ÃʠðÃÒÔ SELinux"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "Add SELinux User"
+-#~ msgstr "äÃÂÃ×ÉÔؠðÃÌØÚÃ×ÃÔÅÌÑ SELinux"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "õÄÃÌÉÔؠóÅÔÅ×ÃʠðÃÒÔ"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "îÅ×ÃÚÃÃÖÎàÕÄÃÌÉÔØ ÃÃÌØÚÃ×ÃÔÅÌÑ SELinux %s"
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "òÅÄÃËÔÉÒÃ×ÃÔؠóÅÔÅ×ÃʠðÃÒÔ"
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#~ msgid "File Type"
+-#~ msgstr "ôÉàæÃÊÌÃ"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "æÉÌØÔÅÒ"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Load policy module"
+-#~ msgstr "îÅ×ÃÚÃÃÖÎàÃÃ’ÃÞÉÔÃÔؠÈÒÃÎÉÌÉÃÃ… ÃÃÌÉÔÉËÉ."
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "îÅ×ÃÚÃÃÖÎàÉÚÃÅÎÉÔØ SELinux ÃÃÌØÚÃ×ÃÔÅÌÑ %s"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "îÅ×ÃÚÃÃÖÎàÉÚÃÅÎÉÔØ SELinux ÃÃÌØÚÃ×ÃÔÅÌÑ %s"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid "SELinux Administration"
+-#~ msgstr "áÄÃÉÎÉÓÔÒÉÒÃ×ÃÎÉÅ SELinux"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "õÒÃ×ÅÎØ"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "SELinux Type"
+-#~ msgstr "ôÉàSELinux"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid "_Delete"
+-#~ msgstr "_õÄÃÌÉÔØ"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid "_Properties"
+-#~ msgstr "_ó×ÃÊÓÔ×Ã"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "õÒÃ×ÅÎؠþÕ×ÓÔ×ÉÔÅÌØÎÃÓÔÉ"
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "ÃŽÃ…ÃÂÈÃÄÉàSELinux ÃÃÌØÚÃ×ÃÔÅÌØ '%s' "
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/si.po b/policycoreutils/po/si.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/si.po
++++ b/policycoreutils/po/si.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/sk.po b/policycoreutils/po/sk.po
+index 9ab9c27..006b192 100644
+--- a/policycoreutils/po/sk.po
++++ b/policycoreutils/po/sk.po
+@@ -1,22 +1,22 @@
+ # SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
++# Translators:
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-01-25 03:00+0100\n"
+-"Last-Translator: Mike Karas <zoliqe@gmail.com>\n"
+-"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Slovak (http://www.transifex.net/projects/p/fedora/language/"
++"sk/)\n"
+ "Language: sk\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Poedit-Language: Slovak\n"
+-"X-Poedit-Country: SLOVAKIA\n"
++"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -83,11 +83,8 @@ msgid "Could not set exec context to %s.\n"
+ msgstr "Nemožno nastaviÅ¥ exec kontext pre %s.\n"
+ #: ../audit2allow/audit2allow:230
+-#, fuzzy
+ msgid "******************** IMPORTANT ***********************\n"
+ msgstr ""
+-"\n"
+-"******************** DÔLEŽITÉ ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+@@ -98,9 +95,8 @@ msgid "global"
+ msgstr ""
+ #: ../semanage/seobject.py:222
+-#, fuzzy
+ msgid "Could not create semanage handle"
+-msgstr "Nemožno zaÄaÅ¥ semanage prenos"
++msgstr ""
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+@@ -116,9 +112,8 @@ msgid "Could not establish semanage connection"
+ msgstr "Nemožno vytvoriÅ¥ spojenie na semanage"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Nemožno nastavit MLS rozsah pre %s"
++msgstr ""
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -133,28 +128,26 @@ msgid "Could not start semanage transaction"
+ msgstr "Nemožno zaÄaÅ¥ semanage prenos"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Nemožno zaÄaÅ¥ semanage prenos"
++msgstr ""
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+ msgstr ""
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Nemožno listovaÅ¥ SELinux užívateľmi"
++msgstr ""
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -164,9 +157,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Nemožno pridaÅ¥ rolu %s pre %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -213,9 +206,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "Nemožno skontrolovaÅ¥ Äi mapovanie loginu pre %s je definované"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linuxový užívateľ %s neexistuje"
++msgstr ""
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -282,16 +275,20 @@ msgid "Could not list login mappings"
+ msgstr "Nemožno listovaÅ¥ mapovaniami loginov"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-#, fuzzy
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "SELinux typ je požadovaný"
++msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -309,9 +306,9 @@ msgid "Could not query user for %s"
+ msgstr "Nemožno overiÅ¥ užívateľa pre %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Nemožno pridaÅ¥ kontext súboru pre %s"
++msgstr ""
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -401,6 +398,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -413,9 +411,8 @@ msgid "Port is required"
+ msgstr "Port je požadovaný"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Neplatný prefix %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -502,14 +499,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "Nemožno zmeniÅ¥ port %s/%s"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "Nemožno listovaÅ¥ portami"
++msgstr ""
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Nemožno zmazaÅ¥ port %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -533,14 +529,13 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Port je požadovaný"
++msgstr ""
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+@@ -561,14 +556,14 @@ msgstr "Nemožno vytvoriÅ¥ kľúĠpre %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Nemožno skontrolovaÅ¥ Äi port %s/%s je definovaný"
++msgstr ""
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Nemožno vytvoriÅ¥ kľúĠpre %s"
++msgstr ""
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -577,74 +572,72 @@ msgid "Could not create context for %s"
+ msgstr "Nemožno vytvoriÅ¥ kontext pre %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Nemožno nastaviÅ¥ meno pre %s"
++msgstr ""
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Nemožno nastaviÅ¥ užívateľa v kontexte súboru pre %s"
++msgstr ""
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Nemožno nastaviÅ¥ rolu v kontexte súboru pre %s"
++msgstr ""
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Nemožno nastaviÅ¥ typ v kontexte súboru pre %s"
++msgstr ""
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Nemožno nastaviÅ¥ mls pole v kontexte súboru pre %s"
++msgstr ""
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Nemožno nastavit kontext súboru pre %s"
++msgstr ""
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Nemožno pridaÅ¥ port %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Por %s/%s nie je definovaný"
++msgstr ""
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Nemožno overiÅ¥ port %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Nemožno zmeniÅ¥ port %s/%s"
++msgstr ""
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Port %s/%s je definovaný v pravidlách, nemôže byÅ¥ zmazaný"
++msgstr ""
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Nemožno zmazaÅ¥ rozhranie %s"
++msgstr ""
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Nemožno zmazaÅ¥ mapovanie loginu pre %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Nemožno listovaÅ¥ portami"
++msgstr ""
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -718,9 +711,8 @@ msgid "Could not delete interface %s"
+ msgstr "Nemožno zmazaÅ¥ rozhranie %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Nemožno zmazaÅ¥ rozhranie %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -735,9 +727,9 @@ msgid "Context"
+ msgstr ""
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Kontext súboru pre %s je už definovaný"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -745,9 +737,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linuxový užívateľ %s neexistuje"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -826,14 +818,13 @@ msgid "Could not modify file context for %s"
+ msgstr "Nemožno zmeniÅ¥ kontext súboru pre %s"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Nemožno listovaÅ¥ kontextami súboru"
++msgstr ""
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Nemožno zmazaÅ¥ kontext súboru pre %s"
++msgstr ""
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -890,14 +881,14 @@ msgid "Could not query file context %s"
+ msgstr "Nemožno overiÅ¥ kontext súboru %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Musíte zadaÅ¥ prefix"
++msgstr ""
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Nemožno zmazaÅ¥ logickú hodnotu %s"
++msgstr ""
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -947,7 +938,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1137,9 +1129,9 @@ msgid "failed to get old_context.\n"
+ msgstr "zlyhanie získania old_context.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Chyba: Nemožno získaÅ¥ informáciu o tty.\n"
++msgstr ""
+ #: ../newrole/newrole.c:1098
+ #, c-format
+@@ -1186,9 +1178,9 @@ msgid "failed to exec shell\n"
+ msgstr "zlyhanie spustenia shell-u\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "použitie:  %s [-bq]\n"
++msgstr ""
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+@@ -1196,9 +1188,9 @@ msgid "%s:  Policy is already loaded and initial load requested\n"
+ msgstr ""
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:  Nemožno naÄítaÅ¥ politiku:  %s\n"
++msgstr ""
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1284,180 +1276,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Chyba volieb %s"
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Nepodarilo sa otvoriÅ¥ %s: preklady nie sú podporované na nie-MLS strojoch"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Preklady nemôžu obsahovaÅ¥ medzery '%s'"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Neplatná Ãºroveň '%s'"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s je už definované v prekladoch"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s nie je definované v prekladoch"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Mapovanie loginu pre %s je už definované"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "Nemožno pridaÅ¥ SELinux užívateľa %s"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux užívateľ %s je už definovaný"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Port je požadovaný"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Port %s/%s je už definovaný"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Rozhranie %s je už definované"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Chyba pri inite možností, konÄím.\n"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Chyba nastavovaní možností, konÄím.\n"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Chyba nastavovania KEEPCAPS, konÄím\n"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Chyba pri zahadzovaní možností, konÄím.\n"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Chyba zahadzovania SETUID možnosti, konÄím\n"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Chyba pri uvoľňovaní caps\n"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "preklady nie sú podporované na nie-MLS strojoch"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr "SELinux typ je požadovaný"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "SELinux typ je požadovaný"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Chyba odosielania audit správy.\n"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Musíte zadaÅ¥ rolu"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a name"
+-#~ msgstr "Musíte zadaÅ¥ rolu"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Musíte zadaÅ¥ rolu"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Vytváranie súboru vynútenia typov: %s.te"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "Rozhranie %s nie je definované"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "File Contexts file"
+-#~ msgstr "Kontext súboru pre %s nie je definovaný"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux užívateľ %s nie je definovaný"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Compatibility"
+-#~ msgstr "Zostavujem pravidlá"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SASL authentication server"
+-#~ msgstr "Autentifikácia %s.\n"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux typ je požadovaný"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Nemožno pridaÅ¥ SELinux užívateľa %s"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Nemožno zmeniÅ¥ SELinux užívateľa %s"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Nemožno zmazaÅ¥ SELinux užívateľa %s"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Nemožno zmeniÅ¥ SELinux užívateľa %s"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Load policy module"
+-#~ msgstr "Nemožno naÄítaÅ¥ pravidlo z pamäte."
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#, fuzzy
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux typ je požadovaný"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Požaduje hodnotu"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Vyžaduje 2 alebo viac parametrov"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "%s not defined"
+-#~ msgstr "%s nie je definované"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "%s nie je platné pre %s objekty\n"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "rozsah nie je podporovaný na nie-MLS strojoch"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Neplatná hodnota %s"
+-
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "Pre naÄítanie novo vytvoreného balíka pravidiel do jadra,\n"
+-#~ "musíte spustiÅ¥ \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Chyba volieb: %s"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/sl.po b/policycoreutils/po/sl.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/sl.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/sq.po b/policycoreutils/po/sq.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/sq.po
++++ b/policycoreutils/po/sq.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/sr.po b/policycoreutils/po/sr.po
+index 7522cca..eb3aa31 100644
+--- a/policycoreutils/po/sr.po
++++ b/policycoreutils/po/sr.po
+@@ -1,27 +1,26 @@
+-# translation of policycoreutils.HEAD.sr.po to Serbian
+-# Serbian translations for policycoreutils
+-# Copyright (C) 2006 Red Hat, Inc.
+-# This file is distributed under the same license as the policycoreutils package.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
+-# MiloÅ¡ KomarÄević <kmilos@gmail.com>, 2006.
++# Translators:
++# Igor Miletic <grejigl-gnomeprevod@yahoo.ca>, 2008.
+ # Jovan Krunic <jovan.krunic@gmail.com>, 2008.
++# MiloÅ¡ KomarÄević <kmilos@gmail.com>, 2006.
+ # Nikola Pajtić <salgeras@gmail.com>, 2008.
+-# Igor Miletic <grejigl-gnomeprevod@yahoo.ca>, 2008.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD.sr\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-04-07 21:19-0400\n"
+-"Last-Translator: Igor Miletic <grejigl-gnomeprevod@yahoo.ca>\n"
+-"Language-Team: Serbian <fedora-trans-sr@redhat.com>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Serbian <trans-sr@lists.fedoraproject.org>\n"
+ "Language: sr\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+-"X-Generator: KBabel 1.11.4\n"
++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
++"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -116,9 +115,8 @@ msgid "Could not establish semanage connection"
+ msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° ÑƒÑпоÑтавим semanage Ð²ÐµÐ·Ñƒ"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим MLS Ð¾Ð¿Ñег Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¸Ñпитам ÑтатуѠMLS Ð¾Ð¼Ð¾Ð³ÑƒÑ›Ð°Ð²Ð°ÑšÐ°"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -126,36 +124,33 @@ msgstr "Још Ð½Ð¸Ñ˜Ðµ Ð¸Ð¼Ð¿Ð»ÐµÐ¼ÐµÐ½Ñ‚ирано"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage Ñ‚ранÑакција Ñ˜Ðµ Ð²ÐµÑ› Ñƒ Ñ‚оку"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾ÐºÑ€ÐµÐ½ÐµÐ¼ semanage Ñ‚ранÑакцију"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾ÐºÑ€ÐµÐ½ÐµÐ¼ semanage Ñ‚ранÑакцију"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ñ€ÐµÐ´Ð°Ð¼ semanage Ñ‚ранÑакцију"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage Ñ‚ранÑакција Ð½Ð¸Ñ˜Ðµ Ñƒ Ñ‚оку"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ð¿Ð¸ÑˆÐµÐ¼ SELinux ÐºÐ¾Ñ€Ð¸Ñнике"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ð¿Ð¸ÑˆÐµÐ¼ SELinux Ð¼Ð¾Ð´ÑƒÐ»Ðµ"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Име Ð¼Ð¾Ð´ÑƒÐ»Ð°"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Верзија"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "ИÑкључено"
+@@ -165,9 +160,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð´Ð¾Ð´Ð°Ð¼ ÑƒÐ»Ð¾Ð³Ñƒ %s Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -179,24 +174,23 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Допуштање"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Допуштање"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
++"ÐиÑам Ð¼Ð¾Ð³Ð°Ð¾ Ð´Ð° Ð¿Ð¾Ñтавим Ð´Ð¾Ð¿ÑƒÑтиви Ð´Ð¾Ð¼ÐµÐ½ %s (инÑталација Ð¼Ð¾Ð´ÑƒÐ»Ð° Ð½Ð¸Ñ˜Ðµ ÑƒÑпела)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "ÐиÑам Ð¼Ð¾Ð³Ð°Ð¾ Ð´Ð° ÑƒÐºÐ»Ð¾Ð½Ð¸Ð¼ Ð´Ð¾Ð¿ÑƒÑтиви Ð´Ð¾Ð¼ÐµÐ½ %s (уклањање Ð½Ð¸Ñ˜Ðµ ÑƒÑпело)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -216,9 +210,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ð¼ Ð´Ð° Ð»Ð¸ Ñ˜Ðµ Ð¾Ð´Ñ€ÐµÑ’ено Ð¿Ñ€ÐµÑликавање Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ðµ Ð·Ð° %s"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux ÐºÐ¾Ñ€Ð¸Ñник %s Ð½Ðµ Ð¿Ð¾Ñтоји"
++msgstr "Linux Ð³Ñ€ÑƒÐ¿Ð° %s Ð½Ðµ Ð¿Ð¾Ñтоји"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -285,15 +279,20 @@ msgid "Could not list login mappings"
+ msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ð¿Ð¸ÑˆÐµÐ¼ Ð¿Ñ€ÐµÑликавања Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ðµ"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "Пријавно Ð¸Ð¼Ðµ"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux ÐºÐ¾Ñ€Ð¸Ñник"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS Ð¾Ð¿Ñег"
+@@ -311,9 +310,9 @@ msgid "Could not query user for %s"
+ msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¸Ñпитам ÐºÐ¾Ñ€Ð¸Ñника Ð·Ð° %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð´Ð¾Ð´Ð°Ð¼ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð°Ñ‚отеке Ð·Ð° %s"
++msgstr "Морате Ð´Ð¾Ð´Ð°Ñ‚и Ð±Ð°Ñ€ÐµÐ¼ Ñ˜ÐµÐ´Ð½Ñƒ ÑƒÐ»Ð¾Ð³Ñƒ Ð·Ð° %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -403,6 +402,7 @@ msgid "MCS Range"
+ msgstr "MCS Ð¾Ð¿Ñег"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux ÑƒÐ»Ð¾Ð³Ðµ"
+@@ -415,9 +415,8 @@ msgid "Port is required"
+ msgstr "Ðеопходан Ñ˜Ðµ Ð¿Ð¾Ñ€Ñ‚"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "ÐеиÑправан Ð¿Ñ€ÐµÑ„икѠ%s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -534,18 +533,17 @@ msgstr "Ð’Ñ€Ñта SELinux Ð¿Ð¾Ñ€Ñ‚а"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "Број Ð¿Ð¾Ñ€Ñ‚ова"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Ðеопходан Ñ˜Ðµ Ð¿Ð¾Ñ€Ñ‚"
++msgstr "Ðеопходна Ñ˜Ðµ Ð°Ð´Ñ€ÐµÑа Ñ‡Ð²Ð¾Ñ€Ð°"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Ðепознат Ð¸Ð»Ð¸ Ð½ÐµÐ´Ð¾Ñтајући Ð¿Ñ€Ð¾Ñ‚окол"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -562,14 +560,14 @@ msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ð¸Ð¼ ÐºÑ™ÑƒÑ‡ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ð¼ Ð´Ð° Ð»Ð¸ Ñ˜Ðµ Ð¿Ð¾Ñ€Ñ‚ %s/%s Ð¾Ð´Ñ€ÐµÑ’ен"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ð¼ Ð´Ð° Ð»Ð¸ Ñ˜Ðµ Ð°Ð´Ñ€ÐµÑа %s Ð¾Ð´Ñ€ÐµÑ’ена"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ð¸Ð¼ ÐºÑ™ÑƒÑ‡ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ð¸Ð¼ Ð°Ð´Ñ€ÐµÑу Ð·Ð° %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -578,74 +576,72 @@ msgid "Could not create context for %s"
+ msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ð¸Ð¼ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð·Ð° %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим Ð¸Ð¼Ðµ Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим Ð¼Ð°Ñку Ð·Ð° %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим ÐºÐ¾Ñ€Ð¸Ñника Ñƒ ÐºÐ¾Ð½Ñ‚екÑту Ð´Ð°Ñ‚отеке Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим ÐºÐ¾Ñ€Ð¸Ñника Ñƒ ÐºÐ¾Ð½Ñ‚екÑту Ð°Ð´Ñ€ÐµÑе Ð·Ð° %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим ÑƒÐ»Ð¾Ð³Ñƒ Ñƒ ÐºÐ¾Ð½Ñ‚екÑту Ð´Ð°Ñ‚отеке Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим ÑƒÐ»Ð¾Ð³Ñƒ Ñƒ ÐºÐ¾Ð½Ñ‚екÑту Ð°Ð´Ñ€ÐµÑе Ð·Ð° %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим Ð²Ñ€Ñту Ñƒ ÐºÐ¾Ð½Ñ‚екÑту Ð´Ð°Ñ‚отеке Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим Ð²Ñ€Ñту Ñƒ ÐºÐ¾Ð½Ñ‚екÑту Ð°Ð´Ñ€ÐµÑе Ð·Ð° %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим mls Ð¿Ð¾Ñ™Ð° Ñƒ ÐºÐ¾Ð½Ñ‚екÑту Ð´Ð°Ñ‚отеке Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим mls Ð¿Ð¾Ñ™Ð° Ñƒ ÐºÐ¾Ð½Ñ‚екÑту Ð°Ð´Ñ€ÐµÑе Ð·Ð° %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð°Ñ‚отеке Ð·Ð° %s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð°Ð´Ñ€ÐµÑе Ð·Ð° %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð´Ð¾Ð´Ð°Ð¼ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð´Ð¾Ð´Ð°Ð¼ Ð°Ð´Ñ€ÐµÑу %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Порт %s/%s Ð½Ð¸Ñ˜Ðµ Ð¾Ð´Ñ€ÐµÑ’ен"
++msgstr "ÐдреÑа %s Ð½Ð¸Ñ˜Ðµ Ð¾Ð´Ñ€ÐµÑ’ена"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¸Ñпитам Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¸Ñпитам Ð°Ð´Ñ€ÐµÑу %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð¼ Ð°Ð´Ñ€ÐµÑу %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Порт %s/%s Ñ˜Ðµ Ð¾Ð´Ñ€ÐµÑ’ен Ñƒ Ð¿Ð¾Ð»Ð¸Ñи, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ñе Ð±Ñ€Ð¸Ñати"
++msgstr "ÐдреÑа %s Ñ˜Ðµ Ð¾Ð´Ñ€ÐµÑ’ена Ñƒ Ð¿Ð¾Ð»Ð¸Ñи, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ñе Ð±Ñ€Ð¸Ñати"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¾Ð±Ñ€Ð¸ÑˆÐµÐ¼ %s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¾Ð±Ñ€Ð¸ÑˆÐµÐ¼ Ð°Ð´Ñ€ÐµÑу %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¾Ð±Ñ€Ð¸ÑˆÐµÐ¼ Ð¿Ñ€ÐµÑликавање Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ðµ Ð·Ð° %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¸Ð·Ð»Ð¸Ñтам Ð¿Ð¾Ñ€Ñ‚ове"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¸Ð·Ð»Ð¸Ñтам Ð°Ð´Ñ€ÐµÑе"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -719,9 +715,8 @@ msgid "Could not delete interface %s"
+ msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¾Ð±Ñ€Ð¸ÑˆÐµÐ¼ Ñучеље %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¾Ð±Ñ€Ð¸ÑˆÐµÐ¼ Ñучеље %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -736,9 +731,9 @@ msgid "Context"
+ msgstr "КонтекÑÑ‚"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "КонтекÑÑ‚ Ð´Ð°Ñ‚отеке Ð·Ð° %s Ñ˜Ðµ Ð²ÐµÑ› Ð¾Ð´Ñ€ÐµÑ’ен"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -746,9 +741,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux ÐºÐ¾Ñ€Ð¸Ñник %s Ð½Ðµ Ð¿Ð¾Ñтоји"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -868,11 +863,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -891,14 +885,14 @@ msgid "Could not query file context %s"
+ msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¸Ñпитам ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð°Ñ‚отеке %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Морате ÑƒÐ½ÐµÑ‚и Ð²Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚"
++msgstr "Морате Ð½Ð°Ð²ÐµÑти Ñ˜ÐµÐ´Ð½Ñƒ Ð¾Ð´ Ñледећих Ð²Ñ€ÐµÐ´Ð½Ð¾Ñти: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¾Ð±Ñ€Ð¸ÑˆÐµÐ¼ Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐ¸ Ð¸Ð·Ñ€Ð°Ð· %s"
++msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¿Ð¾Ñтавим Ð°ÐºÑ‚ивну Ð²Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚ Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐµ %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -908,7 +902,7 @@ msgstr "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð¼ Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐ¸ Ð¸Ð·Ñ€Ð°Ð· %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Лош Ñ„ормат %s: Ð·Ð°Ð¿Ð¸Ñ %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -941,15 +935,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐ°"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "СтатуÑ"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "ОпиÑ"
+@@ -1289,1767 +1283,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Грешка Ð¾Ð¿Ñ†Ð¸Ñ˜Ð° %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Ðе Ð¼Ð¾Ð³Ñƒ Ð´Ð° Ð¾Ñ‚ворим %s: Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸ Ð½Ð¸Ñу Ð¿Ð¾Ð´Ñ€Ð¶Ð°Ð½Ð¸ Ð½Ð° Ð¼Ð°ÑˆÐ¸Ð½Ð°Ð¼Ð° ÐºÐ¾Ñ˜Ðµ Ð½Ð¸Ñу MLS: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "Ðиво"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "Превод"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Преводи Ð½Ðµ Ñмеју Ð´Ð° Ñадрже Ñ€Ð°Ð·Ð¼Ð°ÐºÐµ â€ž%s“ "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "ÐеиÑправан Ð½Ð¸Ð²Ð¾ â€ž%s“ "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s Ñ˜Ðµ Ð²ÐµÑ› Ð¾Ð´Ñ€ÐµÑ’ено Ñƒ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸Ð¼Ð°"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s Ð½Ð¸Ñ˜Ðµ Ð¾Ð´Ñ€ÐµÑ’ено Ñƒ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸Ð¼Ð°"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "ПреÑликавање Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ðµ Ð·Ð° %s Ñ˜Ðµ Ð²ÐµÑ› Ð¾Ð´Ñ€ÐµÑ’ено"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "Додај SELinux ÐºÐ¾Ñ€Ð¸Ñничко Ð¼Ð°Ð¿Ð¸Ñ€Ð°ÑšÐµ"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux ÐºÐ¾Ñ€Ð¸Ñник %s Ñ˜Ðµ Ð²ÐµÑ› Ð¾Ð´Ñ€ÐµÑ’ен"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Ðеопходан Ñ˜Ðµ Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Порт %s/%s Ñ˜Ðµ Ð²ÐµÑ› Ð¾Ð´Ñ€ÐµÑ’ен"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Сучеље %s Ñ˜Ðµ Ð²ÐµÑ› Ð¾Ð´Ñ€ÐµÑ’ено"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¸Ð½Ð¸Ñ†Ð¸Ñ˜Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ˜Ð¸ Ð¼Ð¾Ð³ÑƒÑ›Ð½Ð¾Ñти, Ð¾Ð´ÑƒÑтајем.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¿Ð¾Ñтављању Ð¼Ð¾Ð³ÑƒÑ›Ð½Ð¾Ñти, Ð¾Ð´ÑƒÑтајем\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¿Ð¾Ñтављању KEEPCAPS, Ð¾Ð´ÑƒÑтајем\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¾Ð´Ð±Ð°Ñ†Ð¸Ð²Ð°ÑšÑƒ Ð¼Ð¾Ð³ÑƒÑ›Ð½Ð¾Ñти, Ð¾Ð´ÑƒÑтајем.\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¾Ð´Ð±Ð°Ñ†Ð¸Ð²Ð°ÑšÑƒ SETUID Ð¼Ð¾Ð³ÑƒÑ›Ð½Ð¾Ñти, Ð¾Ð´ÑƒÑтајем\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Грешка Ð¿Ñ€Ð¸ Ð¾Ñлобађању Ð¼Ð¾Ð³ÑƒÑ›Ð½Ð¾Ñти\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "преводи Ð½Ð¸Ñу Ð¿Ð¾Ð´Ñ€Ð¶Ð°Ð½Ð¸ Ð½Ð° Ð¼Ð°ÑˆÐ¸Ð½Ð°Ð¼Ð° ÐºÐ¾Ñ˜Ðµ Ð½Ð¸Ñу MLS"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "Логичка Ð²Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "Ñве"
+-
+-#~ msgid "Customized"
+-#~ msgstr "Прилагођен"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "Означавање Ð´Ð°Ñ‚отека"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "Спецификације\n"
+-#~ "датотеке"
+-
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "Ð’Ñ€Ñта Ð´Ð°Ñ‚отеке"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Ð’Ñ€Ñта\n"
+-#~ "датотеке"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "Мапирање ÐºÐ¾Ñ€Ð¸Ñника"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "Пријавно\n"
+-#~ "име"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "кориÑник"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS Ð¾Ð¿Ñег"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Пријава â€ž%s“ Ñ˜Ðµ Ð½ÐµÐ¾Ð¿Ñ…одна"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "Модул Ð¿Ð¾Ð»Ð¸Ñе"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "ИÑкључи Audit"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "Укључи Audit"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "Учитај Ð¼Ð¾Ð´ÑƒÐ» Ð¿Ð¾Ð»Ð¸Ñе"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Ред Ð¥ÐµÑ‚ 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "MiloÅ¡ KomarÄević <kmilos@gmail.com>, 2007."
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "Ðлат Ð·Ð° Ð¿Ñ€Ð°Ð²Ñ™ÐµÑšÐµ SELinux Ð¿Ð¾Ð»Ð¸Ñа"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "Ова Ð°Ð»Ð°Ñ‚ка Ñе Ð¼Ð¾Ð¶Ðµ ÑƒÐ¿Ð¾Ñ‚ребити Ð·Ð° Ð¿Ñ€Ð°Ð²Ñ™ÐµÑšÐµ Ñ€Ð°Ð´Ð½Ð¾Ð³ Ð¾ÐºÐ²Ð¸Ñ€Ð° Ð¿Ð¾Ð»Ð¸Ñа, Ñ€Ð°Ð´Ð¸ "
+-#~ "ограничавања Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° Ð¸ ÐºÐ¾Ñ€Ð¸Ñника ÐºÐ¾Ñ€Ð¸Ñтећи SELinux.   \n"
+-#~ "\n"
+-#~ "Ðлатка Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸:\n"
+-#~ "датотеку Ð·Ð° Ð¿Ñ€Ð¸Ð¼Ð¾Ñ€Ð°Ð²Ð°ÑšÐµ Ð²Ñ€Ñте (te)\n"
+-#~ "датотеку Ñучеља (if)\n"
+-#~ "датотеку Ñа ÐºÐ¾Ð½Ñ‚екÑтима Ð´Ð°Ñ‚отека (fc)\n"
+-#~ "Ñкрипту ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³ Ð¾ÐºÑ€ÑƒÐ¶ÐµÑšÐ° (sh) - ÐºÐ¾Ñ€Ð¸Ñти Ñе Ð·Ð° ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ð¸Ñ€Ð°ÑšÐµ Ð¸ Ð¸Ð½Ñталацију "
+-#~ "полиÑе. "
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "Изаберите Ð²Ñ€Ñту Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑничке ÑƒÐ»Ð¾Ð³Ðµ ÐºÐ¾Ñ˜Ñƒ Ñ‚реба Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð¸Ñ‚и"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Програми</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "Стандардна Ð¸Ð½Ð¸Ñ‚ ÑиÑтемÑка ÑƒÑлуга Ñу ÑƒÑлуге ÐºÐ¾Ñ˜Ð¸ Ñе Ð¿Ð¾ÐºÑ€ÐµÑ›Ñƒ Ñа Ð¿Ð¾Ð´Ð¸Ð·Ð°ÑšÐµÐ¼ "
+-#~ "ÑиÑтема Ð¿Ñ€ÐµÐºÐ¾ Ð¸Ð½Ð¸Ñ‚ Ñкрипти.  ÐžÐ±Ð¸Ñ‡Ð½Ð¾ Ð·Ð°Ñ…тева Ñкрипту Ñƒ /etc/rc.d/init.d"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "Стандардна Ð¸Ð½Ð¸Ñ‚ ÑиÑтемÑка ÑƒÑлуга"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "СиÑтемÑка ÑƒÑлуга Ð·Ð° Ð¸Ð½Ñ‚ернет ÑервиÑе Ñу ÑƒÑлуге ÐºÐ¾Ñ˜Ðµ Ð¿Ð¾ÐºÑ€ÐµÑ›Ðµ xinetd"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "СиÑтемÑка ÑƒÑлуга Ð·Ð° Ð¸Ð½Ñ‚ернет ÑервиÑе (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "Веб Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸/Ñкрипте (CGI) CGI Ñкрипте ÐºÐ¾Ñ˜Ðµ Ð¿Ð¾ÐºÑ€ÐµÑ›Ðµ Ð²ÐµÐ± Ñервер (apache)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Веб Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸/Ñкрипте (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "КориÑнички Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ñ˜Ðµ Ð±Ð¸Ð»Ð¾ ÐºÐ¾Ñ˜Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ ÐºÐ¾Ñ˜Ð¸ Ð±Ð¸Ñте Ð¶ÐµÐ»ÐµÐ»Ð¸ Ð´Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð¸Ñ‚е "
+-#~ "да Ñ˜Ðµ Ñтартован Ð¾Ð´ Ñтране ÐºÐ¾Ñ€Ð¸Ñника"
+-
+-#~ msgid "User Application"
+-#~ msgstr "КориÑнички Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>КориÑници Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ñ™Ð¸Ð²Ð°ÑšÐ°</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "Измени Ð¿Ð¾Ñтојећи Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñника Ð·Ð° Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ñ™Ð¸Ð²Ð°ÑšÐµ."
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "ПоÑтојеће ÐºÐ¾Ñ€Ð¸Ñничке ÑƒÐ»Ð¾Ð³Ðµ"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "Овај ÐºÐ¾Ñ€Ð¸Ñник Ñ›Ðµ Ñе Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ð¸Ñ‚и Ð½Ð° Ð¼Ð°ÑˆÐ¸Ð½Ñƒ Ñамо Ð¿Ñ€ÐµÐºÐ¾ Ñ‚ерминала Ð¸Ð»Ð¸ ÑƒÐ´Ð°Ñ™ÐµÐ½Ð¾Ð¼ "
+-#~ "пријавом. ÐŸÐ¾Ð´Ñ€Ð°Ð·ÑƒÐ¼ÐµÐ²Ð°Ð½Ð¾ Ð¾Ð²Ð°Ñ˜ ÐºÐ¾Ñ€Ð¸Ñник Ð½ÐµÑ›Ðµ Ð¸Ð¼Ð°Ñ‚и setuid, Ð¼Ñ€ÐµÐ¶Ñƒ, sudo, "
+-#~ "нити su."
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "Минимална ÑƒÐ»Ð¾Ð³Ð° ÐºÐ¾Ñ€Ð¸Ñника Ñ‚ерминала"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "Овај ÐºÐ¾Ñ€Ð¸Ñник Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñе Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ð¸ Ð½Ð° Ð¼Ð°ÑˆÐ¸Ð½Ñƒ Ð¿Ñ€ÐµÐºÐ¾ Ð˜ÐºÑ ÑиÑтема Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ð° Ð¸Ð»Ð¸ "
+-#~ "терминала. ÐŸÐ¾Ð´Ñ€Ð°Ð·ÑƒÐ¼ÐµÐ²Ð°Ð½Ð¾ Ð¾Ð²Ð°Ñ˜ ÐºÐ¾Ñ€Ð¸Ñник Ð½ÐµÑ›Ðµ Ð¸Ð¼Ð°Ñ‚и setuid, Ð¼Ñ€ÐµÐ¶Ñƒ, sudo, "
+-#~ "нити su"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "Минимална ÑƒÐ»Ð¾Ð³Ð° ÐºÐ¾Ñ€Ð¸Ñника Ð˜ÐºÑ ÑиÑтема Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ð°"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "КориÑник Ñа Ð¿Ð¾Ñ‚пуном Ð¼Ñ€ÐµÐ¶Ð¾Ð¼, Ð±ÐµÐ· setuid Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° Ð±ÐµÐ· Ð¿Ñ€Ð¾Ð»Ð°Ð·Ð°, Ð±ÐµÐ· sudo, "
+-#~ "без su."
+-
+-#~ msgid "User Role"
+-#~ msgstr "КориÑничка ÑƒÐ»Ð¾Ð³Ð°"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "КориÑник Ñа Ð¿Ð¾Ñ‚пуном Ð¼Ñ€ÐµÐ¶Ð¾Ð¼, Ð±ÐµÐ· setuid Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° Ð±ÐµÐ· Ð¿Ñ€Ð¾Ð»Ð°Ð·Ð°, Ð±ÐµÐ· su, "
+-#~ "може Ð´Ð° ÐºÐ¾Ñ€Ð¸Ñти sudo Ð½Ð° ÐºÐ¾Ñ€Ð¸Ñничким ÑƒÐ»Ð¾Ð³Ð°Ð¼Ð° Root Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "Улога Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑтраторÑког ÐºÐ¾Ñ€Ð¸Ñника"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Root ÐºÐ¾Ñ€Ð¸Ñници</b>"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "Изаберите ÐºÐ¾Ñ€Ð¸Ñничку ÑƒÐ»Ð¾Ð³Ñƒ Root Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора, Ð°ÐºÐ¾ Ñ›Ðµ Ð¾Ð²Ð°Ñ˜ ÐºÐ¾Ñ€Ð¸Ñник "
+-#~ "вршити Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрацију Ð¼Ð°ÑˆÐ¸Ð½Ðµ Ð´Ð¾Ðº Ñ€Ð°Ð´Ð¸ ÐºÐ°Ð¾ root. ÐžÐ²Ð°Ñ˜ ÐºÐ¾Ñ€Ð¸Ñник Ð½ÐµÑ›Ðµ Ð¼Ð¾Ñ›Ð¸ "
+-#~ "да Ñе Ð´Ð¸Ñ€ÐµÐºÑ‚но Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ð¸ Ñƒ ÑиÑтем."
+-
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "КориÑничка ÑƒÐ»Ð¾Ð³Ð° Root Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора"
+-
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "УнеÑите Ð½Ð°Ð·Ð¸Ð² Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° Ð¸Ð»Ð¸ ÐºÐ¾Ñ€Ð¸Ñничку ÑƒÐ»Ð¾Ð³Ñƒ ÐºÐ¾Ñ˜Ñƒ Ñ‚реба Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð¸Ñ‚и."
+-
+-#~ msgid "Name"
+-#~ msgstr "Име"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "УнеÑите Ð¿ÑƒÐ½Ñƒ Ð¿ÑƒÑ‚ању Ð¸Ð·Ð²Ñ€ÑˆÐ½Ðµ Ð´Ð°Ñ‚отеке ÐºÐ¾Ñ˜Ñƒ Ñ‚реба Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð¸Ñ‚и."
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr ""
+-#~ "УнеÑите Ñ˜ÐµÐ´Ð¸Ð½Ñтвени Ð½Ð°Ð·Ð¸Ð² Ð·Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ð¸Ð»Ð¸ ÐºÐ¾Ñ€Ð¸Ñничку ÑƒÐ»Ð¾Ð³Ñƒ."
+-
+-#~ msgid "Executable"
+-#~ msgstr "Извршна Ð´Ð°Ñ‚отека"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Инит Ñкрипта"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "УнеÑите Ð¿Ð¾Ñ‚пуну Ð¿ÑƒÑ‚ању Ð´Ð¾ Ñкрипте Ð·Ð° Ð¸Ð½Ð¸Ñ†Ð¸Ñ˜Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ˜Ñƒ, ÐºÐ¾Ñ˜Ð° Ñтартује "
+-#~ "ограничени Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼."
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "Изаберите ÐºÐ¾Ñ€Ð¸Ñничке ÑƒÐ»Ð¾Ð³Ðµ ÐºÐ¾Ñ˜Ðµ Ð¶ÐµÐ»Ð¸Ñ‚е Ð´Ð° Ð¿Ñ€Ð¸Ð»Ð°Ð³Ð¾Ð´Ð¸Ñ‚е"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr ""
+-#~ "Изаберите ÐºÐ¾Ñ€Ð¸Ñничке ÑƒÐ»Ð¾Ð³Ðµ ÐºÐ¾Ñ˜Ðµ Ñ›Ðµ Ñе Ð¿Ñ€ÐµÐ±Ð°Ñ†Ð¸Ñ‚и Ð½Ð° Ð¾Ð²Ðµ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ñке Ð´Ð¾Ð¼ÐµÐ½Ðµ."
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr ""
+-#~ "Изаберите Ð´Ð¾Ð´Ð°Ñ‚не Ð´Ð¾Ð¼ÐµÐ½Ðµ ÐºÑ€Ð¾Ð· ÐºÐ¾Ñ˜Ðµ Ñ›Ðµ Ð¾Ð²Ð° ÐºÐ¾Ñ€Ð¸Ñничка ÑƒÐ»Ð¾Ð³Ð° Ð¿Ñ€Ð¾Ð»Ð°Ð·Ð¸Ñ‚и"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "Изаберите Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ñке Ð´Ð¾Ð¼ÐµÐ½Ðµ Ð½Ð° ÐºÐ¾Ñ˜Ðµ Ð±Ð¸Ñте Ð¶ÐµÐ»ÐµÐ»Ð¸ Ð´Ð° Ñе Ð¾Ð²Ð° ÐºÐ¾Ñ€Ð¸Ñничка "
+-#~ "улога Ð¿Ñ€ÐµÐ±Ð°Ñ†Ð¸."
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "Изаберите ÐºÐ¾Ñ€Ð¸Ñничке ÑƒÐ»Ð¾Ð³Ðµ ÐºÐ¾Ñ˜Ðµ Ñ›Ðµ Ñе Ð¿Ñ€ÐµÐ±Ð°Ñ†Ð¸Ñ‚и Ð½Ð° Ð¾Ð²Ð°Ñ˜ Ð´Ð¾Ð¼ÐµÐ½"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "Изаберите Ð´Ð¾Ð´Ð°Ñ‚не Ð´Ð¾Ð¼ÐµÐ½Ðµ ÐºÐ¾Ñ˜Ðµ Ñ›Ðµ Ð¾Ð²Ð°Ñ˜ ÐºÐ¾Ñ€Ð¸Ñник Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрирати"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr ""
+-#~ "Изаберите Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ñке Ð´Ð¾Ð¼ÐµÐ½Ðµ ÐºÐ¾Ñ˜Ðµ Ð±Ð¸Ñте Ð¶ÐµÐ»ÐµÐ»Ð¸ Ð¾Ð²Ð°Ñ˜ ÐºÐ¾Ñ€Ð¸Ñник Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрира"
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "Изаберите Ð´Ð¾Ð´Ð°Ñ‚не ÑƒÐ»Ð¾Ð³Ðµ Ð·Ð° Ð¾Ð²Ð¾Ð³ ÐºÐ¾Ñ€Ð¸Ñника"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "УнеÑите Ð¼Ñ€ÐµÐ¶Ð½Ðµ Ð¿Ð¾Ñ€Ñ‚ове ÐºÐ¾Ñ˜Ðµ Ð¾Ð²Ð° ÑƒÐ»Ð¾Ð³Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑника Ð¾Ñлушкује"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP Ð¿Ð¾Ñ€Ñ‚ови</b>"
+-
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "Дозвољава Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾Ñ˜ ÑƒÐ»Ð¾Ð·Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑника Ð´Ð° Ñе Ð²ÐµÐ¶Ðµ Ð½Ð° Ð±Ð¸Ð»Ð¾ ÐºÐ¾Ñ˜Ð¸ "
+-#~ "udp Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "Све"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "Дозволи ÑƒÐ»Ð¾Ð·Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑника Ð´Ð° Ð¿Ð¾Ð·Ð¾Ð²Ðµ bindresvport Ñа 0. Ð’езивање Ð½Ð° "
+-#~ "портове 600-1024"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "УнеÑите ÑпиÑак udp Ð¿Ð¾Ñ€Ñ‚ова Ð¸Ð»Ð¸ Ð¾Ð¿Ñег Ð¿Ð¾Ñ€Ñ‚ова Ñ€Ð°Ð·Ð´Ð²Ð¾Ñ˜ÐµÐ½Ðµ Ð·Ð°Ñ€ÐµÐ·Ð¸Ð¼Ð° Ð½Ð° ÐºÐ¾Ñ˜Ðµ "
+-#~ "Ñе Ð²ÐµÐ¶Ðµ ÑƒÐ»Ð¾Ð³Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑника. ÐŸÑ€Ð¸Ð¼ÐµÑ€: 612, 650-660"
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "ÐерезервиÑани Ð¿Ð¾Ñ€Ñ‚ови (>1024)"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "Изабери Ð¿Ð¾Ñ€Ñ‚ове"
+-
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "Дозвољава ÑƒÐ»Ð¾Ð·Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑника Ð´Ð° Ñе Ð²ÐµÐ¶Ðµ Ð½Ð° Ð±Ð¸Ð»Ð¾ ÐºÐ¾Ñ˜Ð¸ udp Ð¿Ð¾Ñ€Ñ‚ > 1024"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP Ð¿Ð¾Ñ€Ñ‚ови</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "УнеÑите Ð¼Ñ€ÐµÐ¶Ð½Ðµ Ð¿Ð¾Ñ€Ñ‚ове Ð½Ð° ÐºÐ¾Ñ˜Ðµ Ñе Ð¾Ð²Ð° ÑƒÐ»Ð¾Ð³Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑника Ð¿Ð¾Ð²ÐµÐ·ÑƒÑ˜Ðµ"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "УнеÑите ÑпиÑак tcp Ð¿Ð¾Ñ€Ñ‚ова Ð¸Ð»Ð¸ Ð¾Ð¿Ñег Ð¿Ð¾Ñ€Ñ‚ова Ñ€Ð°Ð·Ð´Ð²Ð¾Ñ˜ÐµÐ½Ðµ Ð·Ð°Ñ€ÐµÐ·Ð¸Ð¼Ð° Ð½Ð° ÐºÐ¾Ñ˜Ðµ "
+-#~ "Ñе Ð¿Ð¾Ð²ÐµÐ·ÑƒÑ˜Ðµ ÑƒÐ»Ð¾Ð³Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑника. ÐŸÑ€Ð¸Ð¼ÐµÑ€: 612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "УнеÑите ÑпиÑак udp Ð¿Ð¾Ñ€Ñ‚ова Ð¸Ð»Ð¸ Ð¾Ð¿Ñег Ð¿Ð¾Ñ€Ñ‚ова Ñ€Ð°Ð·Ð´Ð²Ð¾Ñ˜ÐµÐ½Ðµ Ð·Ð°Ñ€ÐµÐ·Ð¸Ð¼Ð° Ð½Ð° ÐºÐ¾Ñ˜Ðµ "
+-#~ "Ñе Ð¿Ð¾Ð²ÐµÐ·ÑƒÑ˜Ðµ ÑƒÐ»Ð¾Ð³Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑника. ÐŸÑ€Ð¸Ð¼ÐµÑ€: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "Изаберите ÑƒÐ¾Ð±Ð¸Ñ‡Ð°Ñ˜ÐµÐ½Ðµ ÐºÐ°Ñ€Ð°ÐºÑ‚ериÑтике Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "Пише syslog Ð¿Ð¾Ñ€ÑƒÐºÐµ\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "Ðаправи/руководи Ð¿Ñ€Ð¸Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸Ð¼ Ð¿Ð¾Ð´Ð°Ñ†Ð¸Ð¼Ð° Ñƒ /tmp"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "КориÑти Pam Ð·Ð° Ð°ÑƒÑ‚ентификацију"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "КориÑти nsswitch Ð¸Ð»Ð¸ getpw* Ð¿Ð¾Ð·Ð¸Ð²Ðµ"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "КориÑти dbus"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Шаље Ð¿Ð¾Ñ€ÑƒÐºÐµ ÐºÐ¾Ð½Ñ‚роле"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "У Ð²ÐµÐ·Ð¸ Ñа Ñ‚ерминалом"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "Шаље Ðµ-поруку"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "Изаберите Ð´Ð°Ñ‚отеке/директоријуме ÐºÐ¾Ñ˜Ðµ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ñ€ÑƒÐºÐ¾Ð²Ð¾Ð´Ð¸"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "Додајте Ð´Ð°Ñ‚отеке/директоријуме ÐºÐ¾Ñ˜Ð¸ Ñу Ð¿Ð¾Ñ‚ребни Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ñƒ Ð´Ð° Ñƒ ÑšÐ¸Ñ… \"Пише"
+-#~ "\". Pid Ð´Ð°Ñ‚отеке, Ð´Ð°Ñ‚отеке Ð´Ð½ÐµÐ²Ð½Ð¸ÐºÐ°, /var/lib Ð´Ð°Ñ‚отеке ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "Изаберите Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐµ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ™Ð¸Ð²Ðµ ÐºÐ¾Ñ˜Ðµ Ð¾Ð²Ð°Ñ˜ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ ÐºÐ¾Ñ€Ð¸Ñти"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "Додај/уклони Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐµ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ™Ð¸Ð²Ðµ ÐºÐ¾Ñ€Ð¸ÑˆÑ›ÐµÐ½Ðµ Ð·Ð° Ð¾Ð²Ð°Ñ˜ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼/"
+-#~ "кориÑник"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "Изаберите Ð´Ð¸Ñ€ÐµÐºÑ‚оријум Ñƒ ÐºÐ¾Ð¼Ðµ Ñ›Ðµ Ñе Ð³ÐµÐ½ÐµÑ€Ð¸Ñати Ð¿Ð¾Ð»Ð¸Ñе"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "Директоријум Ð¿Ð¾Ð»Ð¸Ñе"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "Датотеке Ð½Ð°Ð¿Ñ€Ð°Ð²Ñ™ÐµÐ½Ðµ Ð¿Ð¾Ð»Ð¸Ñе"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Ова Ð°Ð»Ð°Ñ‚ка Ñ›Ðµ Ð³ÐµÐ½ÐµÑ€Ð¸Ñати Ñледеће: \n"
+-#~ "врÑту Ð¿Ñ€Ð¸Ð¼Ð¾Ñ€Ð°Ð²Ð°ÑšÐ°(te), ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð°Ñ‚отеке(fc), Ð¸Ð½Ñ‚ерфејÑ(if), Ñкрипту \n"
+-#~ "командног Ð¾ÐºÑ€ÑƒÐ¶ÐµÑšÐ°(sh)\n"
+-#~ "Извршите Ñкрипту ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³ Ð¾ÐºÑ€ÑƒÐ¶ÐµÑšÐ° ÐºÐ°Ð¾ root ÐºÐ¾Ñ€Ð¸Ñник Ð´Ð° Ð±Ð¸Ñте \n"
+-#~ "компајлирали/инÑталирали Ð¸ Ð¿Ð¾Ð½Ð¾Ð²Ð¾ Ð¿Ð¾Ñтавили Ð¾Ð·Ð½Ð°ÐºÐµ Ð½Ð° \n"
+-#~ "датотекама/директоријумима. \n"
+-#~ "КориÑтите semanage Ð¸Ð»Ð¸ useradd Ð´Ð° Ð¼Ð°Ð¿Ð¸Ñ€Ð°Ñ‚е Linux ÐºÐ¾Ñ€Ð¸Ñнике Ð·Ð° "
+-#~ "пријављивање \n"
+-#~ "на ÐºÐ¾Ñ€Ð¸Ñничке ÑƒÐ»Ð¾Ð³Ðµ.\n"
+-#~ "ПоÑтавите Ð¼Ð°ÑˆÐ¸Ð½Ñƒ Ñƒ Ð´Ð¾Ð¿ÑƒÑˆÑ‚ајући Ñ€ÐµÐ¶Ð¸Ð¼ (setenforce 0). \n"
+-#~ "Пријавите Ñе ÐºÐ°Ð¾ ÐºÐ¾Ñ€Ð¸Ñник Ð¸ Ñ‚еÑтирајте Ð¾Ð²Ñƒ ÐºÐ¾Ñ€Ð¸Ñничку ÑƒÐ»Ð¾Ð³Ñƒ.\n"
+-#~ "КориÑтите audit2allow -R Ð´Ð° Ð±Ð¸Ñте Ð³ÐµÐ½ÐµÑ€Ð¸Ñали Ð´Ð¾Ð´Ð°Ñ‚на Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð·Ð° te "
+-#~ "датотеку.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Ова Ð°Ð»Ð°Ñ‚ка Ñ›Ðµ Ð³ÐµÐ½ÐµÑ€Ð¸Ñати Ñледеће: \n"
+-#~ "врÑту Ð¿Ñ€Ð¸Ð¼Ð¾Ñ€Ð°Ð²Ð°ÑšÐ°(te), ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð°Ñ‚отеке(fc), Ð¸Ð½Ñ‚ерфејÑ(if), Ñкрипту \n"
+-#~ "командног Ð¾ÐºÑ€ÑƒÐ¶ÐµÑšÐ°(sh)\n"
+-#~ "\n"
+-#~ "Извршите Ñкрипту ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³ Ð¾ÐºÑ€ÑƒÐ¶ÐµÑšÐ° Ð´Ð° Ð±Ð¸Ñте ÐºÐ¾Ð¼Ð¿Ð°Ñ˜Ð»Ð¸Ñ€Ð°Ð»Ð¸/инÑталирали Ð¸ \n"
+-#~ "поново Ð¿Ð¾Ñтавили Ð¾Ð·Ð½Ð°ÐºÐµ Ð½Ð° Ð´Ð°Ñ‚отекама/директоријумима. \n"
+-#~ "ПоÑтавите Ð¼Ð°ÑˆÐ¸Ð½Ñƒ Ñƒ Ð´Ð¾Ð¿ÑƒÑˆÑ‚ајући Ñ€ÐµÐ¶Ð¸Ð¼ (setenforce 0). \n"
+-#~ "Извршите/поново Ð¿Ð¾ÐºÑ€ÐµÐ½Ð¸Ñ‚е Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ð´Ð° Ð±Ð¸Ñте Ð³ÐµÐ½ÐµÑ€Ð¸Ñали avc Ð¿Ð¾Ñ€ÑƒÐºÐµ.\n"
+-#~ "КориÑтите audit2allow -R Ð´Ð° Ð±Ð¸Ñте Ð³ÐµÐ½ÐµÑ€Ð¸Ñали Ð´Ð¾Ð´Ð°Ñ‚на Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð·Ð° te "
+-#~ "датотеку.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "Додај Ð´Ð¸Ñ˜Ð°Ð»Ð¾Ð³ Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐ¸Ñ… Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ™Ð¸Ð²Ð¸Ñ…"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "Ðазив Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐµ Ð²Ñ€ÐµÐ´Ð½Ð¾Ñти"
+-
+-#~ msgid "Role"
+-#~ msgstr "Улога"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "ПоÑтојећи_кориÑник"
+-
+-#~ msgid "Application"
+-#~ msgstr "Програм"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s Ð¼Ð¾Ñ€Ð° Ð±Ð¸Ñ‚и Ð´Ð¸Ñ€ÐµÐºÑ‚оријум"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "Морате Ð¸Ð·Ð°Ð±Ñ€Ð°Ñ‚и ÐºÐ¾Ñ€Ð¸Ñника"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "Изаберите Ð¸Ð·Ð²Ñ€ÑˆÐ½Ñƒ Ð´Ð°Ñ‚отеку ÐºÐ¾Ñ˜Ñƒ Ð±Ð¸Ñте Ð¶ÐµÐ»ÐµÐ»Ð¸ Ð´Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð¸Ñ‚е."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "Изаберите Ð¸Ð½Ð¸Ñ‚ Ñкрипту ÐºÐ¾Ñ˜Ñƒ Ð±Ð¸Ñте Ð¶ÐµÐ»ÐµÐ»Ð¸ Ð´Ð° Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð¸Ñ‚е."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "Изаберите Ð´Ð°Ñ‚отеку(е) ÐºÐ¾Ñ˜Ñƒ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ð¿Ñ€Ð°Ð²Ð¸ Ð¸Ð»Ð¸ Ñƒ ÑšÑƒ Ð¿Ð¸ÑˆÐµ"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "Изаберите Ð´Ð¸Ñ€ÐµÐºÑ‚оријум(е) ÐºÐ¾Ñ˜Ð¸ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ð¿Ð¾Ñедује Ð¸Ð»Ð¸ Ñƒ ÑšÐµÐ³Ð° Ð¿Ð¸ÑˆÐµ"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "Изаберите Ð´Ð¸Ñ€ÐµÐºÑ‚оријум Ñƒ ÐºÐ¾Ð¼Ðµ Ñ›ÐµÑ‚е Ð¿Ñ€Ð°Ð²Ð¸Ñ‚и Ð´Ð°Ñ‚отеке Ð¿Ð¾Ð»Ð¸Ñе"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Ð’Ñ€Ñта %s_t Ñ˜Ðµ Ð²ÐµÑ› Ð¾Ð´Ñ€ÐµÑ’ена Ñƒ Ñ‚ренутној Ð¿Ð¾Ð»Ð¸Ñи.\n"
+-#~ "Да Ð»Ð¸ Ð¶ÐµÐ»Ð¸Ñ‚е Ð´Ð° Ð½Ð°Ñтавите?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "Потврди Ð¸Ð¼Ðµ"
+-
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Модул %s.pp Ñ˜Ðµ Ð²ÐµÑ› ÑƒÑ‡Ð¸Ñ‚ан Ñƒ Ñ‚ренутну Ð¿Ð¾Ð»Ð¸Ñу.\n"
+-#~ "Да Ð»Ð¸ Ð¶ÐµÐ»Ð¸Ñ‚е Ð´Ð° Ð½Ð°Ñтавите?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "Морате ÑƒÐ½ÐµÑ‚и Ð¸Ð¼Ðµ"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Морате ÑƒÐ½ÐµÑ‚и Ð¸Ð·Ð²Ñ€ÑˆÐ½Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "ПодеÑите SELinux"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "Портови Ð¼Ð¾Ñ€Ð°Ñ˜Ñƒ Ð±Ð¸Ñ‚и Ð±Ñ€Ð¾Ñ˜ÐµÐ²Ð¸ Ð¸Ð»Ð¸ Ð¾Ð¿Ñези Ð±Ñ€Ð¾Ñ˜ÐµÐ²Ð° Ð¾Ð´ 1 Ð´Ð¾ %d "
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "Морате ÑƒÐ½ÐµÑ‚и Ð¸Ð¼Ðµ Ð²Ð°ÑˆÐµÐ³ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾Ð³ Ð¿Ñ€Ð¾Ñ†ÐµÑа/кориÑника"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "Типови ÐºÐ¾Ñ€Ð¸Ñника Ð½Ð¸Ñу Ð´Ð¾Ð·Ð²Ð¾Ñ™ÐµÐ½Ðµ Ð¸Ð·Ð²Ñ€ÑˆÐ½Ðµ Ð´Ð°Ñ‚отеке"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "Само Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸-ÑиÑтемÑке ÑƒÑлуге Ð¼Ð¾Ð³Ñƒ ÐºÐ¾Ñ€Ð¸Ñтити Ð¸Ð½Ð¸Ñ‚ Ñкрипту"
+-
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog Ð¼Ð¾Ñ€Ð° Ð±Ð¸Ñ‚и Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐ° Ð²Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "Типови ÐºÐ¾Ñ€Ð¸Ñника Ð°ÑƒÑ‚оматÑки Ð´Ð¾Ð±Ð¸Ñ˜Ð°Ñ˜Ñƒ tmp Ð²Ñ€Ñту"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "Морате ÑƒÐ½ÐµÑ‚и Ð¿ÑƒÑ‚ању Ð¸Ð·Ð²Ñ€ÑˆÐ½Ðµ Ð´Ð°Ñ‚отеке Ð·Ð° Ð²Ð°Ñˆ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ Ð¿Ñ€Ð¾Ñ†ÐµÑ"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Датотека Ð·Ð° Ð²Ñ€Ñту Ð¿Ñ€Ð¸Ð¼Ð¾Ñ€Ð°Ð²Ð°ÑšÐ°"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "Датотека Ñпреге"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "Датотека Ð·Ð° ÐºÐ¾Ð½Ñ‚екÑте Ð´Ð°Ñ‚отека"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "Скрипта Ð·Ð° Ð¿Ð¾Ñтавке"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux Ð¿Ð¾Ñ€Ñ‚\n"
+-#~ "Ð’Ñ€Ñта"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "Протокол"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "Ðиво"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "Порт"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "Број Ð¿Ð¾Ñ€Ñ‚а â€ž%s“ Ð½Ð¸Ñ˜Ðµ Ð¸Ñправан.  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "Приказ Ð»Ð¸Ñте"
+-
+-#~ msgid "Group View"
+-#~ msgstr "Групни Ð¿Ñ€ÐµÐ³Ð»ÐµÐ´"
+-
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "Заштита SELinux ÑервиÑа"
+-
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "Онемогући SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° acct ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "ÐдминиÑтратор"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr ""
+-#~ "ДопуÑти Ñвим ÑиÑтемÑким ÑƒÑлугама Ð´Ð° ÑƒÐ¿Ð¸Ñују Ð´Ð°Ñ‚отеке Ñ˜ÐµÐ·Ð³Ñ€Ð° Ð½Ð° / "
+-#~ "директоријум"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr ""
+-#~ "ДопуÑти Ñвим ÑиÑтемÑким ÑƒÑлугама Ð¼Ð¾Ð³ÑƒÑ›Ð½Ð¾ÑÑ‚ Ð´Ð° ÐºÐ¾Ñ€Ð¸Ñте Ð½ÐµÐ°Ð»Ð¾Ñ†Ð¸Ñ€Ð°Ð½Ðµ tty "
+-#~ "терминале"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "Овлашћења ÐºÐ¾Ñ€Ð¸Ñника"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ДопуÑти gadmin SELinux ÐºÐ¾Ñ€Ð¸Ñничким Ð½Ð°Ð»Ð¾Ð·Ð¸Ð¼Ð° Ð´Ð° Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°Ñ˜Ñƒ Ð´Ð°Ñ‚отеке Ñƒ "
+-#~ "Ñвојим Ð»Ð¸Ñ‡Ð½Ð¸Ð¼ Ð´Ð¸Ñ€ÐµÐºÑ‚оријумима"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° Ð³Ð¾Ñтујући SELinux ÐºÐ¾Ñ€Ð¸Ñнички Ð½Ð°Ð»Ð¾Ð·Ð¸ Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°Ñ˜Ñƒ Ð´Ð°Ñ‚отеке Ñƒ "
+-#~ "Ñвојим Ð»Ð¸Ñ‡Ð½Ð¸Ð¼ Ð´Ð¸Ñ€ÐµÐºÑ‚оријумима Ð¸Ð»Ð¸ Ñƒ /tmp Ð´Ð¸Ñ€ÐµÐºÑ‚оријуму"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "Заштита Ð¼ÐµÐ¼Ð¾Ñ€Ð¸Ñ˜Ðµ"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "ДопуÑти java-и Ð¸Ð·Ð²Ñ€ÑˆÐ½Ð¸ Ñтек"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Mount"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "ДопуÑти Ð´Ð° mount Ð¼Ð¾Ð½Ñ‚ира Ð±Ð¸Ð»Ð¾ ÐºÐ¾Ñ˜Ñƒ Ð´Ð°Ñ‚отеку"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "ДопуÑти Ð´Ð° mount Ð¼Ð¾Ð½Ñ‚ира Ð±Ð¸Ð»Ð¾ ÐºÐ¾Ñ˜Ð¸ Ð´Ð¸Ñ€ÐµÐºÑ‚оријум"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "ДопуÑти mplayer-у Ð¸Ð·Ð²Ñ€ÑˆÐ½Ð¸ Ñтек"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "ДопуÑти Ð´Ð° ssh Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð° ssh-keysign"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° staff SELinux ÐºÐ¾Ñ€Ð¸Ñнички Ð½Ð°Ð»Ð¾Ð·Ð¸ Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°Ñ˜Ñƒ Ð´Ð°Ñ‚отеке Ñƒ Ñвојим "
+-#~ "личним Ð´Ð¸Ñ€ÐµÐºÑ‚оријумима Ð¸Ð»Ð¸ Ñƒ /tmp Ð´Ð¸Ñ€ÐµÐºÑ‚оријуму"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° sysadm SELinux ÐºÐ¾Ñ€Ð¸Ñнички Ð½Ð°Ð»Ð¾Ð·Ð¸ Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°Ñ˜Ñƒ Ð´Ð°Ñ‚отеке Ñƒ Ñвојим "
+-#~ "личним Ð´Ð¸Ñ€ÐµÐºÑ‚оријумима Ð¸Ð»Ð¸ Ñƒ /tmp Ð´Ð¸Ñ€ÐµÐºÑ‚оријуму"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ SELinux ÐºÐ¾Ñ€Ð¸Ñнички Ð½Ð°Ð»Ð¾Ð·Ð¸ Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°Ñ˜Ñƒ Ð´Ð°Ñ‚отеке Ñƒ "
+-#~ "Ñвојим Ð»Ð¸Ñ‡Ð½Ð¸Ð¼ Ð´Ð¸Ñ€ÐµÐºÑ‚оријумима Ð¸Ð»Ð¸ Ñƒ /tmp Ð´Ð¸Ñ€ÐµÐºÑ‚оријуму"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Мрежна Ð¿Ð¾Ð´ÐµÑˆÐ°Ð²Ð°ÑšÐ°"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "ДопуÑти Ð´Ð° Ð½ÐµÐ¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸ Ð¿Ð°ÐºÐµÑ‚и Ð¿ÑƒÑ‚ују Ð¼Ñ€ÐµÐ¶Ð¾Ð¼"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° user SELinux ÐºÐ¾Ñ€Ð¸Ñнички Ð½Ð°Ð»Ð¾Ð·Ð¸ Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°Ñ˜Ñƒ Ð´Ð°Ñ‚отеке Ñƒ Ñвојим "
+-#~ "личним Ð´Ð¸Ñ€ÐµÐºÑ‚оријумима Ð¸Ð»Ð¸ Ñƒ /tmp Ð´Ð¸Ñ€ÐµÐºÑ‚оријуму"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "ДопуÑти Ð´Ð° Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ð¼ Ð´Ð° Ñе Ð¿Ñ€ÐµÐ±Ð°Ñ†Ðµ Ñƒ unconfined_execmem"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Базе Ð¿Ð¾Ð´Ð°Ñ‚ака"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "ДопуÑти ÐºÐ¾Ñ€Ð¸Ñнику Ð´Ð° Ñе Ð¿Ð¾Ð²ÐµÐ¶Ðµ Ð½Ð° mysql Ñокет"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "ДопуÑти ÐºÐ¾Ñ€Ð¸Ñнику Ð´Ð° Ñе Ð¿Ð¾Ð²ÐµÐ¶Ðµ Ð½Ð° postgres Ñокет"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "ДопуÑти ÐºÐ»Ð¸Ñ˜ÐµÐ½Ñ‚има Ð´Ð° ÑƒÐ¿Ð¸Ñују Ñƒ Ð´ÐµÑ™ÐµÐ½Ñƒ Ð¼ÐµÐ¼Ð¾Ñ€Ð¸Ñ˜Ñƒ Ð˜ÐºÑ Ñервера"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° xguest SELinux ÐºÐ¾Ñ€Ð¸Ñнички Ð½Ð°Ð»Ð¾Ð·Ð¸ Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°Ñ˜Ñƒ Ð´Ð°Ñ‚отеке Ñƒ Ñвојим "
+-#~ "личним Ð´Ð¸Ñ€ÐµÐºÑ‚оријумима Ð¸Ð»Ð¸ Ñƒ /tmp Ð´Ð¸Ñ€ÐµÐºÑ‚оријуму"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "Дозволи ÑиÑтемÑким ÑƒÑлугама Ð´Ð° Ñе Ð¿Ð¾ÐºÑ€ÐµÑ›Ñƒ Ñа NIS ÑервиÑом"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "Веб Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "Пребацивање staff SELinux ÐºÐ¾Ñ€Ð¸Ñника Ð½Ð° Web Browser Ð´Ð¾Ð¼ÐµÐ½"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "Пребацивање sysadm SELinux ÐºÐ¾Ñ€Ð¸Ñника Ð½Ð° Web Browser Ð´Ð¾Ð¼ÐµÐ½"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "Пребацивање user SELinux ÐºÐ¾Ñ€Ð¸Ñника Ð½Ð° Web Browser Ð´Ð¾Ð¼ÐµÐ½"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "Пребацивање xguest SELinux ÐºÐ¾Ñ€Ð¸Ñника Ð½Ð° Web Browser Ð´Ð¾Ð¼ÐµÐ½"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "ДопуÑти Ð¾Ñобљу Web Browser-а Ð´Ð° ÑƒÐ¿Ð¸Ñује Ñƒ Ð»Ð¸Ñ‡Ð½Ðµ Ð´Ð¸Ñ€ÐµÐºÑ‚оријуме"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° amanda-у"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° amavis"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° apmd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° arpwatch ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° auditd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° automount ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° avahi"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° bluetooth ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° canna ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° cardmgr ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° Cluster Ñервер"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° cdrecord Ñ‡Ð¸Ñ‚а Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ‚ Ñадржај. nfs, samba, removable devices, "
+-#~ "user temp Ð¸ Ð´Ð°Ñ‚отеке Ñа Ð½ÐµÐ¿Ð¾ÑƒÐ·Ð´Ð°Ð½Ð¸Ð¼ Ñадржајем"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ciped ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° clamd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° clamscan"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° clvmd"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° comsat ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° courier ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° cpucontrol ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° cpuspeed ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° crond ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "Штампање"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° cupsd Ð¿Ð¾Ð·Ð°Ð´Ð¸Ð½Ñки Ñервер"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° cupsd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° cupsd_lpd"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° cvs ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° cyrus ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° dbskk ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° dbusd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° dccd"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° dccifd"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° dccm"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ddt ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° devfsd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° dhcpc ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° dhcpd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° dictd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "ДопуÑти Ð´Ð° sysadm_t Ð´Ð¸Ñ€ÐµÐºÑ‚но Ð¿Ð¾ÐºÑ€ÐµÑ›Ðµ ÑиÑтемÑке ÑƒÑлуге"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° Evolution"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "Игре"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° Ð¸Ð³Ñ€Ðµ"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° Ð²ÐµÐ± Ñ‡Ð¸Ñ‚аче"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° Thunderbird"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° distccd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° dmesg ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° dnsmasq ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° dovecot ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° entropyd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° fetchmail"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° fingerd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° freshclam ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° fsdaemon ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° gpm ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° gss ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° Hal ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "УÑаглашеноÑÑ‚"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "Ðе ÐºÐ¾Ñ€Ð¸Ñти audit Ð·Ð° Ñтвари ÐºÐ¾Ñ˜Ðµ Ð·Ð½Ð°Ð¼Ð¾ Ð´Ð° Ñу Ð¿Ð¾ÐºÐ²Ð°Ñ€ÐµÐ½Ðµ, Ð°Ð»Ð¸ ÐºÐ¾Ñ˜Ðµ Ð½Ð¸Ñу "
+-#~ "ризичне Ð¿Ð¾ ÑигурноÑÑ‚"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° hostname ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° hotplug ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° howl ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° cups hplip ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° httpd rotatelogs"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD ÑервиÑ"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° http suexec"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° hwclock ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° i18n ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° imazesrv ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° Ð¿Ð¾Ñ‚омке inetd ÑиÑтемÑке ÑƒÑлуге"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° inetd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° innd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° iptables ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ircd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° irqbalance ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° iscsi ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° jabberd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° kadmind ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° klogd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° krb5kdc ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ktalk ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° kudzu ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° locate ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° lpd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° lrrd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° lvm ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° mailman"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "ДопуÑти evolution-у Ð¸ thunderbird-у Ð´Ð° Ñ‡Ð¸Ñ‚ају Ð´Ð°Ñ‚отеке ÐºÐ¾Ñ€Ð¸Ñника"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° mdadm ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° monopd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "ДопуÑти Ð´Ð° mozilla Ñ‡Ð¸Ñ‚ач Ñ‡Ð¸Ñ‚а Ð´Ð°Ñ‚отеке ÐºÐ¾Ñ€Ð¸Ñника"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° mrtg ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° mysqld ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° nagios ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "СервиѠза Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°ÑšÐµ"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° named ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° nessusd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° NetworkManager"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° nfsd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° nmbd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° nrpe ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° nscd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° nsd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ntpd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° oddjob"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° oddjob_mkhomedir"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° openvpn ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° pam ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° pegasus"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° perdition ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° portmap ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° portslave ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° postfix"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° postgresql ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "ДопуÑти pppd Ð´Ð° Ð±ÑƒÐ´Ðµ Ð´Ð¾Ñтупан Ð·Ð° ÐºÐ¾Ñ€Ð¸ÑˆÑ›ÐµÑšÐµ Ð¾Ð±Ð¸Ñ‡Ð½Ð¸Ð¼ ÐºÐ¾Ñ€Ð¸Ñницима"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° pptp"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° prelink ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° privoxy ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ptal ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° pxe ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° pyzord"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° quota ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° radiusd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° radvd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° rdisc"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° readahead"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ñ‡Ð¸Ñ‚ају Ð´Ð°Ñ‚отеке ÐºÐ¾Ñ˜Ðµ Ñе Ð½Ð°Ð»Ð°Ð·Ðµ Ð½Ð° Ð½ÐµÑтандардним "
+-#~ "меÑтима (default_t)"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° restorecond"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° rhgb ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ricci"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ricci_modclusterd"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° rlogind ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° rpcd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° rshd"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° rsync ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "ДопуÑти Ð´Ð° Ñе ssh Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð° Ð¸Ð· inetd ÑƒÐ¼ÐµÑто ÐºÐ°Ð¾ ÑиÑтемÑка ÑƒÑлуга"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "ДопуÑти Ð´Ð° Samba Ð´ÐµÐ»Ð¸ nfs Ð´Ð¸Ñ€ÐµÐºÑ‚оријуме"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL Ñервер Ð°ÑƒÑ‚ентификације"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "ДопуÑти sasl Ñерверу Ð°ÑƒÑ‚ентификације Ð´Ð° Ñ‡Ð¸Ñ‚а /etc/shadow"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "ДопуÑти X-Windows Ñерверу Ð´Ð° Ð¿Ñ€ÐµÑликава Ð¼ÐµÐ¼Ð¾Ñ€Ð¸Ñ˜Ñки Ð¿Ñ€Ð¾Ñтор ÐºÐ°Ð¾ Ð¸Ð·Ð²Ñ€ÑˆÐ½Ñƒ "
+-#~ "датотеку Ñа Ð¼Ð¾Ð³ÑƒÑ›Ð½Ð¾ÑˆÑ›Ñƒ Ð¿Ð¸Ñања"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° saslauthd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° scannerdaemon ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "Ðе Ð´Ð¾Ð¿ÑƒÑˆÑ‚ај Ð¿Ñ€ÐµÐ»Ð°Ð· Ð½Ð° sysadm_t, Ð¸Ð·Ð°Ð·Ð²Ð°Ð½ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð° sudo Ð¸ su"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "Ðе Ð´Ð¾Ð¿ÑƒÑˆÑ‚ај Ð½Ð¸Ñ˜ÐµÐ´Ð½Ð¾Ð¼ Ð¿Ñ€Ð¾Ñ†ÐµÑу Ð´Ð° ÑƒÑ‡Ð¸Ñ‚а Ð¼Ð¾Ð´ÑƒÐ»Ðµ Ñ˜ÐµÐ·Ð³Ñ€Ð°"
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "Ðе Ð´Ð¾Ð¿ÑƒÑˆÑ‚ај Ð½Ð¸Ñ˜ÐµÐ´Ð½Ð¾Ð¼ Ð¿Ñ€Ð¾Ñ†ÐµÑу Ð´Ð° Ð¼ÐµÑšÐ° SELinux Ð¿Ð¾Ð»Ð¸Ñу Ñ˜ÐµÐ·Ð³Ñ€Ð°"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° sendmail ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° setrans"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° setroublesoot ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° slapd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° slrnpull ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° smbd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° snmpd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° snort ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° soundd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° sound ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "Заштита Ð¾Ð´ Ð½ÐµÐ¶ÐµÑ™ÐµÐ½Ðµ Ð¿Ð¾ÑˆÑ‚е"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° spamd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "ДопуÑти Ð´Ð° spamd Ð¿Ñ€Ð¸Ñтупа Ð»Ð¸Ñ‡Ð½Ð¸Ð¼ Ð´Ð¸Ñ€ÐµÐºÑ‚оријумима"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "ДопуÑти Ð¿Ñ€Ð¸Ñтуп Ð¼Ñ€ÐµÐ¶Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ñƒ Ð·Ð° ÑƒÐºÐ»Ð°ÑšÐ°ÑšÐµ Ð½ÐµÐ¶ÐµÑ™ÐµÐ½Ðµ Ð¿Ð¾ÑˆÑ‚е"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° speedmgmt ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "ДопуÑти squid ÑиÑтемÑкој ÑƒÑлузи Ð´Ð° Ñе Ñпоји Ð½Ð° Ð¼Ñ€ÐµÐ¶Ñƒ"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° squid ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ssh ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "ДопуÑти ssh Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ðµ ÐºÐ°Ð¾ sysadm_r:sysadm_t"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° staff_r ÐºÐ¾Ñ€Ð¸Ñници Ð¿Ñ€ÐµÑ‚ражују sysadm Ð»Ð¸Ñ‡Ð½Ð¸ Ð´Ð¸Ñ€ÐµÐºÑ‚оријум Ð¸ "
+-#~ "читају Ð´Ð°Ñ‚отеке (као ÑˆÑ‚о Ñ˜Ðµ ~/.bashrc)"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Универзални SSL Ñ‚унел"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° stunnel ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° Ñе stunnel ÑиÑтемÑка ÑƒÑлуга ÑамоÑтално Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°, Ð¸Ð·Ð²Ð°Ð½ xinetd"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° swat ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° sxid ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° syslogd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ÑиÑтемÑке cron Ð¿Ð¾Ñлове"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° tcp ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° telnet ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° tftpd ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° transproxy ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° udev ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° uml ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° Ñе xinetd Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð° ÐºÐ°Ð¾ Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½, ÑƒÐºÑ™ÑƒÑ‡ÑƒÑ˜ÑƒÑ›Ð¸ Ñ‚у Ñве ÑервиÑе "
+-#~ "које Ñтартује, Ð° ÐºÐ¾Ñ˜Ð¸ Ð½ÐµÐ¼Ð°Ñ˜Ñƒ Ð¸Ð·Ñ€Ð¸Ñ‡Ð¸Ñ‚о Ð¾Ð´Ñ€ÐµÑ’ен Ð¿Ñ€ÐµÐ»Ð°Ð· Ð´Ð¾Ð¼ÐµÐ½Ð°"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° Ñе rc Ñкрипта Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾ Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°, ÑƒÐºÑ™ÑƒÑ‡ÑƒÑ˜ÑƒÑ›Ð¸ Ñ‚у Ñве "
+-#~ "ÑиÑтемÑке ÑƒÑлуге ÐºÐ¾Ñ˜Ðµ rc Ñтартује, Ð° ÐºÐ¾Ñ˜Ð¸ Ð½ÐµÐ¼Ð°Ñ˜Ñƒ Ð¸Ð·Ñ€Ð¸Ñ‡Ð¸Ñ‚о Ð¾Ð´Ñ€ÐµÑ’ен Ð¿Ñ€ÐµÐ»Ð°Ð· "
+-#~ "домена"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "ДопуÑти Ð´Ð° Ñе rpm Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð° Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° Ñе Ð¿Ñ€Ð¸Ð²Ð¸Ð»ÐµÐ³Ð¾Ð²Ð°Ð½Ðµ Ð°Ð»Ð°Ñ‚ке, ÐºÐ°Ð¾ ÑˆÑ‚о Ñу hotplug Ð¸ insmod, "
+-#~ "извршавају Ð½ÐµÐ¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° updfstab ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° uptimed ÑиÑтемÑку ÑƒÑлугу"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° user_r ÐºÐ¾Ñ€Ð¸Ñти sysadm_r Ð¿Ñ€ÐµÐºÐ¾ su, sudo, Ð¸Ð»Ð¸ userhelper. Ð£ "
+-#~ "противном, Ñамо staff_r Ð¼Ð¾Ð¶Ðµ Ñ‚ако Ð´Ð° Ñ€Ð°Ð´Ð¸"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "Дозволи ÐºÐ¾Ñ€Ð¸Ñницима Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°ÑšÐµ mount Ð½Ð°Ñ€ÐµÐ´Ð±Ðµ"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð¾Ð±Ð¸Ñ‡Ð½Ð¸Ð¼ ÐºÐ¾Ñ€Ð¸Ñницима Ð´Ð¸Ñ€ÐµÐºÑ‚ан Ð¿Ñ€Ð¸Ñтуп Ð¼Ð¸ÑˆÑƒ (Ñамо Ð´Ð¾Ð¿ÑƒÑти Ð˜ÐºÑ "
+-#~ "Ñерверу)"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "ДопуÑти ÐºÐ¾Ñ€Ð¸Ñницима Ð´Ð° Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°Ñ˜Ñƒ dmesg ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "ДопуÑти ÐºÐ¾Ñ€Ð¸Ñницима Ð´Ð° ÑƒÐ¿Ñ€Ð°Ð²Ñ™Ð°Ñ˜Ñƒ Ð¼Ñ€ÐµÐ¶Ð½Ð¸Ð¼ Ñучељима (такође Ñ˜Ðµ Ð¿Ð¾Ñ‚ребно Ð´Ð° "
+-#~ "је USERCTL=true)"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "ДопуÑти Ð½Ð¾Ñ€Ð¼Ð°Ð»Ð½Ð¾Ð¼ ÐºÐ¾Ñ€Ð¸Ñнику Ð´Ð° Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð° ping"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "ДопуÑти ÐºÐ¾Ñ€Ð¸Ñнику Ð´Ð° Ñ‡Ð¸Ñ‚а/пише Ñƒ noextattrfile (FAT, CDROM, FLOPPY)"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "ДопуÑти Ð´Ð° ÐºÐ¾Ñ€Ð¸Ñници Ñ‡Ð¸Ñ‚ају/пишу Ð½Ð° usb ÑƒÑ€ÐµÑ’аје"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "ДопуÑти ÐºÐ¾Ñ€Ð¸Ñницима Ð´Ð° Ð¸Ð·Ð²Ñ€ÑˆÐ°Ð²Ð°Ñ˜Ñƒ TCP Ñервере (да Ñе Ð¿Ð¾Ð²ÐµÐ·ÑƒÑ˜Ñƒ Ð½Ð° Ð¿Ð¾Ñ€Ñ‚ове "
+-#~ "и Ð¿Ñ€Ð¸Ð¼Ð°Ñ˜Ñƒ Ð²ÐµÐ·Ðµ Ñа Ð¸Ñтих Ð´Ð¾Ð¼ÐµÐ½Ð° Ð¸Ð»Ð¸ Ñпољних ÐºÐ¾Ñ€Ð¸Ñника)  Ð¸Ñкључивање Ð¾Ð²Ðµ "
+-#~ "опције Ð´Ð¾Ð²Ð¾Ð´Ð¸ Ð´Ð¾ Ð¿Ð°Ñивног Ð½Ð°Ñ‡Ð¸Ð½Ð° Ð¿Ð°Ð´Ð° FTP-а Ð¸ Ð¼Ð¾Ð¶Ðµ ÑƒÐ·Ñ€Ð¾ÐºÐ¾Ð²Ð°Ñ‚и Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ðµ "
+-#~ "других Ð¿Ñ€Ð¾Ñ‚окола"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "ДопуÑти ÐºÐ¾Ñ€Ð¸Ñнику Ð´Ð° Ð¿Ñ€Ð°Ñ‚и tty Ð´Ð°Ñ‚отеке"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° uucpd ÑиÑтемÑку ÑƒÑлугу"
+-
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° vmware ÑиÑтемÑку ÑƒÑлугу"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° watchdog ÑиÑтемÑку ÑƒÑлугу"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° winbind ÑиÑтемÑку ÑƒÑлугу"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° xdm ÑиÑтемÑку ÑƒÑлугу"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "ДопуÑти Ð´Ð° Ñе xdm Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ñ™ÑƒÑ˜Ðµ ÐºÐ°Ð¾ sysadm_r:sysadm_t"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° xen ÑиÑтемÑку ÑƒÑлугу"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "ДопуÑти Ð´Ð° xen Ñ‡Ð¸Ñ‚а/пише Ð¿Ð¾ Ñ„изичким ÑƒÑ€ÐµÑ’ајима (диÑковима)"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° xfs ÑиÑтемÑку ÑƒÑлугу"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° xen ÐºÐ¾Ð½Ñ‚ролу"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ypbind ÑиÑтемÑку ÑƒÑлугу"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° NIS ÑиÑтемÑку ÑƒÑлугу Ð·Ð° Ð»Ð¾Ð·Ð¸Ð½ÐºÐµ"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° ypserv ÑиÑтемÑку ÑƒÑлугу"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "ИÑкључи SELinux Ð·Ð°ÑˆÑ‚иту Ð·Ð° NIS ÑиÑтемÑку ÑƒÑлугу Ð·Ð° Ð¿Ñ€ÐµÐ½Ð¾Ñ"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° SELinux webadm ÐºÐ¾Ñ€Ð¸Ñник ÑƒÐ¿Ñ€Ð°Ð²Ñ™Ð° Ð»Ð¸Ñ‡Ð½Ð¸Ð¼ Ð´Ð¸Ñ€ÐµÐºÑ‚оријумима "
+-#~ "кориÑника Ð±ÐµÐ· Ð¿Ñ€Ð¸Ð²Ð¸Ð»ÐµÐ³Ð¸Ñ˜Ð°"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "ДопуÑти Ð´Ð° SELinux webadm ÐºÐ¾Ñ€Ð¸Ñник Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ‡Ð¸Ñ‚а Ð¸Ð· Ð»Ð¸Ñ‡Ð½Ð¸Ñ… Ð´Ð¸Ñ€ÐµÐºÑ‚оријума "
+-#~ "кориÑника Ð±ÐµÐ· Ð¿Ñ€Ð¸Ð²Ð¸Ð»ÐµÐ³Ð¸Ñ˜Ð°"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "Да Ð»Ð¸ Ñте Ñигурни Ð´Ð° Ð¶ÐµÐ»Ð¸Ñ‚е Ð´Ð° Ð¾Ð±Ñ€Ð¸ÑˆÐµÑ‚е %s â€ž%s“?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "Обриши %s"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "Додај %s"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "Измени %s"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "Допуштање"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "Приморавање"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Мењање Ð²Ñ€Ñте Ð¿Ð¾Ð»Ð¸Ñе Ñ›Ðµ Ð¿Ñ€Ð¾ÑƒÐ·Ñ€Ð¾ÐºÐ¾Ð²Ð°Ñ‚и Ð¼ÐµÑšÐ°ÑšÐµ Ð¾Ð·Ð½Ð°ÐºÐ° Ð·Ð° Ñ†ÐµÐ¾ ÑиÑтем Ð´Ð°Ñ‚отека "
+-#~ "при Ñледећем Ð¿Ð¾Ð´Ð¸Ð·Ð°ÑšÑƒ ÑиÑтема. ÐœÐµÑšÐ°ÑšÐµ Ð¾Ð·Ð½Ð°ÐºÐ° Ð¿Ñ€Ð¸Ð»Ð¸Ñ‡Ð½Ð¾ Ð´ÑƒÐ³Ð¾ Ñ‚раје Ð¸ Ñ‚о "
+-#~ "време Ð·Ð°Ð²Ð¸Ñи Ð¾Ð´ Ð²ÐµÐ»Ð¸Ñ‡Ð¸Ð½Ðµ ÑиÑтема Ð´Ð°Ñ‚отека.  Ð–елите Ð»Ð¸ Ð´Ð° Ð½Ð°Ñтавите?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "ИÑкључивање SELinux-а Ð·Ð°Ñ…тева Ð¿Ð¾Ð½Ð¾Ð²Ð½Ð¾ Ð¿Ð¾Ð´Ð¸Ð·Ð°ÑšÐµ ÑиÑтема.  Ðије "
+-#~ "препоручљиво.  Ðко ÐºÐ°Ñније Ð¾Ð´Ð»ÑƒÑ‡Ð¸Ñ‚е Ð´Ð° ÑƒÐºÑ™ÑƒÑ‡Ð¸Ñ‚е SELinux, ÑиÑтем Ñ›Ðµ Ð¼Ð¾Ñ€Ð°Ñ‚и "
+-#~ "да Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ Ð¾Ð·Ð½Ð°ÐºÐµ.  Ðко Ñамо Ñ…оћете Ð´Ð° Ð²Ð¸Ð´Ð¸Ñ‚е Ð´Ð° Ð»Ð¸ SELinux Ð¸Ð·Ð°Ð·Ð¸Ð²Ð° "
+-#~ "проблеме Ð½Ð° Ð²Ð°ÑˆÐµÐ¼ ÑиÑтему, Ð¼Ð¾Ð¶ÐµÑ‚е Ð¿Ñ€ÐµÑ›Ð¸ Ñƒ Ð´Ð¾Ð¿ÑƒÑˆÑ‚ајући Ð½Ð°Ñ‡Ð¸Ð½ Ñ€Ð°Ð´Ð°, ÐºÐ¾Ñ˜Ð¸ Ñ›Ðµ "
+-#~ "Ñамо Ñамо Ð±ÐµÐ»ÐµÐ¶Ð¸Ñ‚и Ð¿Ð¾Ñ€ÑƒÐºÐµ Ñƒ Ð´Ð½ÐµÐ²Ð½Ð¸Ðº, Ð°Ð»Ð¸ Ð½Ðµ Ð¸ Ñпроводити SELinux "
+-#~ "полиÑу.    Ð–елите Ð»Ð¸ Ð´Ð° Ð½Ð°Ñтавите?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Укључивање SELinux-а Ñ›Ðµ Ð¿Ñ€Ð¾ÑƒÐ·Ñ€Ð¾ÐºÐ¾Ð²Ð°Ñ‚и Ð¼ÐµÑšÐ°ÑšÐµ Ð¾Ð·Ð½Ð°ÐºÐ° Ð·Ð° Ñ†ÐµÐ¾ ÑиÑтем "
+-#~ "датотека Ð¿Ñ€Ð¸ Ñледећем Ð¿Ð¾Ð´Ð¸Ð·Ð°ÑšÑƒ ÑиÑтема. ÐœÐµÑšÐ°ÑšÐµ Ð¾Ð·Ð½Ð°ÐºÐ° Ð¿Ñ€Ð¸Ð»Ð¸Ñ‡Ð½Ð¾ Ð´ÑƒÐ³Ð¾ Ñ‚раје "
+-#~ "и Ñ‚о Ð²Ñ€ÐµÐ¼Ðµ Ð·Ð°Ð²Ð¸Ñи Ð¾Ð´ Ð²ÐµÐ»Ð¸Ñ‡Ð¸Ð½Ðµ ÑиÑтема Ð´Ð°Ñ‚отека.  Ð–елите Ð»Ð¸ Ð´Ð° Ð½Ð°Ñтавите?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "ÐуторÑка Ð¿Ñ€Ð°Ð²Ð° 2006 Ð ÐµÐ´ Ð¥ÐµÑ‚, Ð˜Ð½Ñ†.\n"
+-#~ "ÐуторÑка Ð¿Ñ€Ð°Ð²Ð° 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "Додај SELinux Ð¼Ð°Ð¿Ð¸Ñ€Ð°ÑšÐµ Ð¿Ñ€Ð¸Ñ˜Ð°Ð²Ðµ"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "Додај SELinux Ð¼Ñ€ÐµÐ¶Ð½Ðµ Ð¿Ð¾Ñ€Ñ‚ове"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux Ð²Ñ€Ñта"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Ðиво"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "Спецификација Ð´Ð°Ñ‚отеке"
+-
+-#~ msgid "File Type"
+-#~ msgstr "Ð’Ñ€Ñта Ð´Ð°Ñ‚отеке"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "Ñве Ð´Ð°Ñ‚отеке\n"
+-#~ "обичан Ñ„ајл\n"
+-#~ "директоријум\n"
+-#~ "уређај Ð·Ð° ÐºÐ°Ñ€Ð°ÐºÑ‚ере\n"
+-#~ "уређај Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°\n"
+-#~ "Ñокет\n"
+-#~ "Ñимболичка Ð²ÐµÐ·Ð°\n"
+-#~ "именована Ñ†ÐµÐ²\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Додај SELinux ÐºÐ¾Ñ€Ð¸Ñника"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрација"
+-
+-#~ msgid "Add"
+-#~ msgstr "Додај"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "_СвојÑтва"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "_Обриши"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "Изаберите ÑƒÐ¿Ñ€Ð°Ð²Ñ™Ð°Ñ‡ÐºÐ¸ Ð¾Ð±Ñ˜ÐµÐºÐ°Ñ‚"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Изаберите:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "Подразумевани ÑиÑтемÑки Ñ€ÐµÐ¶Ð¸Ð¼ Ð¿Ñ€Ð¸Ð¼Ð¾Ñ€Ð°Ð²Ð°ÑšÐ°"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "Текући Ñ€ÐµÐ¶Ð¸Ð¼ Ð¿Ñ€Ð¸Ð¼Ð¾Ñ€Ð°Ð²Ð°ÑšÐ°"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "Подразумевана ÑиÑтемÑка Ð²Ñ€Ñта Ð¿Ð¾Ð»Ð¸Ñе:"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "Изаберите Ð´Ð° Ð»Ð¸ Ð¶ÐµÐ»Ð¸Ñ‚е Ð´Ð° Ð¿Ð¾Ð½Ð¾Ð²Ð¾ Ð¾Ð·Ð½Ð°Ñ‡Ð¸Ñ‚е Ñ†ÐµÐ»Ð¾ÐºÑƒÐ¿Ð°Ð½ ÑиÑтем Ð´Ð°Ñ‚отека Ð¿Ñ€Ð¸ "
+-#~ "Ñледећем Ð¿Ð¾Ð´Ð¸Ð·Ð°ÑšÑƒ ÑиÑтема.  ÐŸÐ¾Ð½Ð¾Ð²Ð½Ð¾ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ð²Ð°ÑšÐµ Ð¼Ð¾Ð¶Ðµ Ñ‚рајати Ñ˜Ð°ÐºÐ¾ Ð´ÑƒÐ³Ð¾, Ñƒ "
+-#~ "завиÑноÑти Ð¾Ð´ Ð²ÐµÐ»Ð¸Ñ‡Ð¸Ð½Ðµ ÑиÑтема.  Ðко Ð¼ÐµÑšÐ°Ñ‚е Ð²Ñ€Ñте Ð¿Ð¾Ð»Ð¸Ñа Ð¸Ð»Ð¸ Ð¸Ð´ÐµÑ‚е Ñа "
+-#~ "иÑкљученог Ð½Ð° Ð¿Ñ€Ð¸Ð¼Ð¾Ñ€Ð°Ð²Ð°ÑšÐµ, Ð¿Ð¾Ð½Ð¾Ð²Ð½Ð¾ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ð²Ð°ÑšÐµ Ñ˜Ðµ Ð½ÐµÐ¾Ð¿Ñ…одно."
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Поново Ð¾Ð·Ð½Ð°Ñ‡Ð¸ Ð¿Ñ€Ð¸ Ñледећем Ð¿Ð¾ÐºÑ€ÐµÑ‚ању."
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "Врати Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐµ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ™Ð¸Ð²Ðµ Ð½Ð° Ð¿Ð¾Ð´Ñ€Ð°Ð·ÑƒÐ¼ÐµÐ²Ð°Ð½Ðµ ÑиÑтемÑке Ð¿Ð¾Ñтавке"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "Пребаци Ð¸Ð·Ð¼ÐµÑ’у ÐŸÑ€Ð¸Ð»Ð°Ð³Ð¾Ñ’ених Ð¸ Ð¡Ð²Ð¸Ñ… Ð»Ð¾Ð³Ð¸Ñ‡ÐºÐ¸Ñ… Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ™Ð¸Ð²Ð¸Ñ…"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "Филтар"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "Додај ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð°Ñ‚отеке"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "Измени ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð°Ñ‚отеке"
+-
+-#~ msgid "Delete File Context"
+-#~ msgstr "Обриши ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð°Ñ‚отеке"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "Пребаци Ð¸Ð·Ð¼ÐµÑ’у Ñвих Ð¸ Ð¿Ñ€Ð¸Ð»Ð°Ð³Ð¾Ñ’ених ÐºÐ¾Ð½Ñ‚екÑта Ð´Ð°Ñ‚отека"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "Додај SELinux ÐºÐ¾Ñ€Ð¸Ñничко Ð¼Ð°Ð¿Ð¸Ñ€Ð°ÑšÐµ"
+-
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Измени SELinux ÐºÐ¾Ñ€Ð¸Ñничко Ð¼Ð°Ð¿Ð¸Ñ€Ð°ÑšÐµ"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Обриши SELinux ÐºÐ¾Ñ€Ð¸Ñничко Ð¼Ð°Ð¿Ð¸Ñ€Ð°ÑšÐµ"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "Додај Ð¿Ñ€ÐµÐ²Ð¾Ð´"
+-
+-#~ msgid "Modify Translation"
+-#~ msgstr "Измени Ð¿Ñ€ÐµÐ²Ð¾Ð´"
+-
+-#~ msgid "Delete Translation"
+-#~ msgstr "Обриши Ð¿Ñ€ÐµÐ²Ð¾Ð´"
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Изменим SELinux ÐºÐ¾Ñ€Ð¸Ñника"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "Додај Ð¼Ñ€ÐµÐ¶Ð½Ð¸ Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "Уреди Ð¼Ñ€ÐµÐ¶Ð½Ð¸ Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "Обриши Ð¼Ñ€ÐµÐ¶Ð½Ð¸ Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "Пребаци Ð¸Ð·Ð¼ÐµÑ’у Ð¿Ñ€Ð¸Ð»Ð°Ð³Ð¾Ñ’ених Ð¸ Ñвих Ð¿Ð¾Ñ€Ñ‚ова"
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "Ðаправи Ð½Ð¾Ð²Ð¸ Ð¼Ð¾Ð´ÑƒÐ» Ð¿Ð¾Ð»Ð¸Ñе"
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "Учитај Ð¼Ð¾Ð´ÑƒÐ» Ð¿Ð¾Ð»Ð¸Ñе"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "Уклони ÑƒÑ‡Ð¸Ñ‚авајуће Ð¼Ð¾Ð´ÑƒÐ»Ðµ Ð¿Ð¾Ð»Ð¸Ñе"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "Укључи/иÑкључи Ð´Ð¾Ð´Ð°Ñ‚на audit Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°, ÐºÐ¾Ñ˜Ð° Ñе Ð¾Ð±Ð¸Ñ‡Ð½Ð¾ Ð½Ðµ Ð±ÐµÐ»ÐµÐ¶Ðµ Ñƒ Ð´Ð°Ñ‚отеке "
+-#~ "дневника."
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "Ðиво Ð¾ÑетљивоÑти"
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux ÐºÐ¾Ñ€Ð¸Ñник â€ž%s“ Ñ˜Ðµ Ð½ÐµÐ¾Ð¿Ñ…одан"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Захтева Ð²Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "Дозволи ÑƒÐ»Ð¾Ð·Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑника Ð´Ð° Ñе Ð²ÐµÐ¶Ðµ Ð½Ð° Ð±Ð¸Ð»Ð¾ ÐºÐ¾Ñ˜Ð¸ tcp Ð¿Ð¾Ñ€Ñ‚ > 1024"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "Дозвољава Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¾Ñ˜ ÑƒÐ»Ð¾Ð·Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑника Ð´Ð° Ñе Ð²ÐµÐ¶Ðµ Ð½Ð° Ð±Ð¸Ð»Ð¾ ÐºÐ¾Ñ˜Ð¸ "
+-#~ "tcp Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "УнеÑите ÑпиÑак tcp Ð¿Ð¾Ñ€Ñ‚ова Ð¸Ð»Ð¸ Ð¾Ð¿Ñег Ð¿Ð¾Ñ€Ñ‚ова Ñ€Ð°Ð·Ð´Ð²Ð¾Ñ˜ÐµÐ½Ðµ Ð·Ð°Ñ€ÐµÐ·Ð¸Ð¼Ð° Ð½Ð° ÐºÐ¾Ñ˜Ðµ "
+-#~ "Ñе Ð²ÐµÐ¶Ðµ ÑƒÐ»Ð¾Ð³Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°/кориÑника. ÐŸÑ€Ð¸Ð¼ÐµÑ€: 612, 650-660"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "Друид Ð·Ð° Ð¿Ñ€Ð°Ð²Ñ™ÐµÑšÐµ SELinux Ð¿Ð¾Ð»Ð¸Ñа"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "ÐерезервиÑани Ð¿Ð¾Ñ€Ñ‚ови  (> 1024)"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr ""
+-#~ "КориÑтите Ð¾Ð²Ð¾ Ð´ÑƒÐ³Ð¼Ðµ Ð·Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñƒ Ð°ÐºÐ¾ Ð²Ð°Ñˆ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ð¿Ð¾Ð·Ð¸Ð²Ð° bindresvport Ñа 0."
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "Приморавање\n"
+-#~ "Допуштање\n"
+-#~ "ИÑкључено\n"
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/sr@latin.po b/policycoreutils/po/sr@latin.po
+index 5630a6d..f36f9d6 100644
+--- a/policycoreutils/po/sr@latin.po
++++ b/policycoreutils/po/sr@latin.po
+@@ -1,27 +1,26 @@
+-# translation of policycoreutils.HEAD.sr.po to Serbian
+-# Serbian(Latin) translations for policycoreutils
+-# Copyright (C) 2006 Red Hat, Inc.
+-# This file is distributed under the same license as the policycoreutils package.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
+-# MiloÅ¡ KomarÄević <kmilos@gmail.com>, 2006.
++# Translators:
++# Igor Miletic <grejigl-gnomeprevod@yahoo.ca>, 2008.
+ # Jovan Krunic <jovan.krunic@gmail.com>, 2008.
++# MiloÅ¡ KomarÄević <kmilos@gmail.com>, 2006.
+ # Nikola Pajtić <salgeras@gmail.com>, 2008.
+-# Igor Miletic <grejigl-gnomeprevod@yahoo.ca>, 2008.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD.sr\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-04-07 21:19-0400\n"
+-"Last-Translator: Igor Miletic <grejigl-gnomeprevod@yahoo.ca>\n"
+-"Language-Team: Serbian <fedora-trans-sr@redhat.com>\n"
+-"Language: sr\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: LANGUAGE <LL@li.org>\n"
++"Language: sr@latin\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+-"X-Generator: KBabel 1.11.4\n"
++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
++"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -116,9 +115,8 @@ msgid "Could not establish semanage connection"
+ msgstr "Ne mogu da uspostavim semanage vezu"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Ne mogu da postavim MLS opseg za %s"
++msgstr "Ne mogu da ispitam status MLS omogućavanja"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -126,36 +124,33 @@ msgstr "JoÅ¡ nije implementirano"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage transakcija je već u toku"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "Ne mogu da pokrenem semanage transakciju"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Ne mogu da pokrenem semanage transakciju"
++msgstr "Ne mogu da predam semanage transakciju"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage transakcija nije u toku"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Ne mogu da popiÅ¡em SELinux korisnike"
++msgstr "Ne mogu da popiÅ¡em SELinux module"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Ime modula"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Verzija"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "IskljuÄeno"
+@@ -165,9 +160,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Ne mogu da dodam ulogu %s za %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -179,24 +174,23 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "DopuÅ¡tanje"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "DopuÅ¡tanje"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
++"Nisam mogao da postavim dopustivi domen %s (instalacija modula nije uspela)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "Nisam mogao da uklonim dopustivi domen %s (uklanjanje nije uspelo)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -216,9 +210,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "Ne mogu da proverim da li je odreÄ‘eno preslikavanje prijave za %s"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linux korisnik %s ne postoji"
++msgstr "Linux grupa %s ne postoji"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -285,15 +279,20 @@ msgid "Could not list login mappings"
+ msgstr "Ne mogu da popiÅ¡em preslikavanja prijave"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "Prijavno ime"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux korisnik"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS opseg"
+@@ -311,9 +310,9 @@ msgid "Could not query user for %s"
+ msgstr "Ne mogu da ispitam korisnika za %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Ne mogu da dodam kontekst datoteke za %s"
++msgstr "Morate dodati barem jednu ulogu za %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -403,6 +402,7 @@ msgid "MCS Range"
+ msgstr "MCS opseg"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux uloge"
+@@ -415,9 +415,8 @@ msgid "Port is required"
+ msgstr "Neophodan je port"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Neispravan prefiks %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -534,18 +533,17 @@ msgstr "Vrsta SELinux porta"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "Broj portova"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Neophodan je port"
++msgstr "Neophodna je adresa Ävora"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Nepoznat ili nedostajući protokol"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -562,14 +560,14 @@ msgstr "Ne mogu da napravim kljuÄ za %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Ne mogu da proverim da li je port %s/%s odreÄ‘en"
++msgstr "Ne mogu da proverim da li je adresa %s odreÄ‘ena"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Ne mogu da napravim kljuÄ za %s"
++msgstr "Ne mogu da napravim adresu za %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -578,74 +576,72 @@ msgid "Could not create context for %s"
+ msgstr "Ne mogu da napravim kontekst za %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Ne mogu da postavim ime za %s"
++msgstr "Ne mogu da postavim masku za %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Ne mogu da postavim korisnika u kontekstu datoteke za %s"
++msgstr "Ne mogu da postavim korisnika u kontekstu adrese za %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Ne mogu da postavim ulogu u kontekstu datoteke za %s"
++msgstr "Ne mogu da postavim ulogu u kontekstu adrese za %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Ne mogu da postavim vrstu u kontekstu datoteke za %s"
++msgstr "Ne mogu da postavim vrstu u kontekstu adrese za %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Ne mogu da postavim mls polja u kontekstu datoteke za %s"
++msgstr "Ne mogu da postavim mls polja u kontekstu adrese za %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Ne mogu da postavim kontekst datoteke za %s"
++msgstr "Ne mogu da postavim kontekst adrese za %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Ne mogu da dodam port %s/%s"
++msgstr "Ne mogu da dodam adresu %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Port %s/%s nije odreÄ‘en"
++msgstr "Adresa %s nije odreÄ‘ena"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Ne mogu da ispitam port %s/%s"
++msgstr "Ne mogu da ispitam adresu %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Ne mogu da izmenim port %s/%s"
++msgstr "Ne mogu da izmenim adresu %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Port %s/%s je odreÄ‘en u polisi, ne može se brisati"
++msgstr "Adresa %s je odreÄ‘ena u polisi, ne može se brisati"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Ne mogu da obriÅ¡em %s"
++msgstr "Ne mogu da obriÅ¡em adresu %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Ne mogu da obriÅ¡em preslikavanje prijave za %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Ne mogu da izlistam portove"
++msgstr "Ne mogu da izlistam adrese"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -719,9 +715,8 @@ msgid "Could not delete interface %s"
+ msgstr "Ne mogu da obriÅ¡em suÄelje %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Ne mogu da obriÅ¡em suÄelje %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -736,9 +731,9 @@ msgid "Context"
+ msgstr "Kontekst"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Kontekst datoteke za %s je već odreÄ‘en"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -746,9 +741,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux korisnik %s ne postoji"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -868,11 +863,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -891,14 +885,14 @@ msgid "Could not query file context %s"
+ msgstr "Ne mogu da ispitam kontekst datoteke %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Morate uneti vrednost"
++msgstr "Morate navesti jednu od sledećih vrednosti: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Ne mogu da obriÅ¡em logiÄki izraz %s"
++msgstr "Ne mogu da postavim aktivnu vrednost logiÄke %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -908,7 +902,7 @@ msgstr "Ne mogu da izmenim logiÄki izraz %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "LoÅ¡ format %s: zapis %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -941,15 +935,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux logiÄka"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "Status"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "Opis"
+@@ -1289,1771 +1283,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "GreÅ¡ka opcija %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Ne mogu da otvorim %s: prevodi nisu podržani na maÅ¡inama koje nisu MLS: %s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "Nivo"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "Prevod"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Prevodi ne smeju da sadrže razmake â€ž%s“ "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Neispravan nivo â€ž%s“ "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s je već odreÄ‘eno u prevodima"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s nije odreÄ‘eno u prevodima"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Preslikavanje prijave za %s je već odreÄ‘eno"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "Dodaj SELinux korisniÄko mapiranje"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux korisnik %s je već odreÄ‘en"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Neophodan je port"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Port %s/%s je već odreÄ‘en"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "SuÄelje %s je već odreÄ‘eno"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "GreÅ¡ka pri inicijalizaciji mogućnosti, odustajem.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "GreÅ¡ka pri postavljanju mogućnosti, odustajem\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "GreÅ¡ka pri postavljanju KEEPCAPS, odustajem\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "GreÅ¡ka pri odbacivanju mogućnosti, odustajem.\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "GreÅ¡ka pri odbacivanju SETUID mogućnosti, odustajem\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "GreÅ¡ka pri oslobaÄ‘anju mogućnosti\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "prevodi nisu podržani na maÅ¡inama koje nisu MLS"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "LogiÄka vrednost"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "sve"
+-
+-#~ msgid "Customized"
+-#~ msgstr "PrilagoÄ‘en"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "OznaÄavanje datoteka"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "Specifikacije\n"
+-#~ "datoteke"
+-
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "Vrsta datoteke"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Vrsta\n"
+-#~ "datoteke"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "Mapiranje korisnika"
+-
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "Prijavno\n"
+-#~ "ime"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "korisnik"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS opseg"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Prijava â€ž%s“ je neophodna"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "Modul polise"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "IskljuÄi Audit"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "UkljuÄi Audit"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "UÄitaj modul polise"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Het 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "MiloÅ¡ KomarÄević <kmilos@gmail.com>, 2007."
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "Alat za pravljenje SELinux polisa"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "Ova alatka se može upotrebiti za pravljenje radnog okvira polisa, radi "
+-#~ "ograniÄavanja programa i korisnika koristeći SELinux.   \n"
+-#~ "\n"
+-#~ "Alatka proizvodi:\n"
+-#~ "datoteku za primoravanje vrste (te)\n"
+-#~ "datoteku suÄelja (if)\n"
+-#~ "datoteku sa kontekstima datoteka (fc)\n"
+-#~ "skriptu komandnog okruženja (sh) - koristi se za kompiliranje i "
+-#~ "instalaciju polise. "
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "Izaberite vrstu programa/korisniÄke uloge koju treba ograniÄiti"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Programi</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "Standardna init sistemska usluga su usluge koji se pokreću sa podizanjem "
+-#~ "sistema preko init skripti.  ObiÄno zahteva skriptu u /etc/rc.d/init.d"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "Standardna init sistemska usluga"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "Sistemska usluga za internet servise su usluge koje pokreće xinetd"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "Sistemska usluga za internet servise (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "Veb programi/skripte (CGI) CGI skripte koje pokreće veb server (apache)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "Veb programi/skripte (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "KorisniÄki program je bilo koji program koji biste Å¾eleli da ograniÄite "
+-#~ "da je startovan od strane korisnika"
+-
+-#~ msgid "User Application"
+-#~ msgstr "KorisniÄki program"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Korisnici prijavljivanja</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "Izmeni postojeći zapis korisnika za prijavljivanje."
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "Postojeće korisniÄke uloge"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "Ovaj korisnik Ä‡e se prijaviti na maÅ¡inu samo preko terminala ili "
+-#~ "udaljenom prijavom. Podrazumevano ovaj korisnik neće imati setuid, mrežu, "
+-#~ "sudo, niti su."
+-
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "Minimalna uloga korisnika terminala"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "Ovaj korisnik može da se prijavi na maÅ¡inu preko X sistema prozora ili "
+-#~ "terminala. Podrazumevano ovaj korisnik neće imati setuid, mrežu, sudo, "
+-#~ "niti su"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "Minimalna uloga korisnika X sistema prozora"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "Korisnik sa potpunom mrežom, bez setuid programa bez prolaza, bez sudo, "
+-#~ "bez su."
+-
+-#~ msgid "User Role"
+-#~ msgstr "KorisniÄka uloga"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "Korisnik sa potpunom mrežom, bez setuid programa bez prolaza, bez su, "
+-#~ "može da koristi sudo na korisniÄkim ulogama Root administratora"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "Uloga administratorskog korisnika"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Root korisnici</b>"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "Izaberite korisniÄku ulogu Root administratora, ako Ä‡e ovaj korisnik "
+-#~ "vrÅ¡iti administraciju maÅ¡ine dok radi kao root. Ovaj korisnik neće moći "
+-#~ "da se direktno prijavi u sistem."
+-
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "KorisniÄka uloga Root administratora"
+-
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "Unesite naziv programa ili korisniÄku ulogu koju treba ograniÄiti."
+-
+-#~ msgid "Name"
+-#~ msgstr "Ime"
+-
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "Unesite punu putanju izvrÅ¡ne datoteke koju treba ograniÄiti."
+-
+-#~ msgid "..."
+-#~ msgstr "..."
+-
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr ""
+-#~ "Unesite jedinstveni naziv za ograniÄeni program ili korisniÄku ulogu."
+-
+-#~ msgid "Executable"
+-#~ msgstr "IzvrÅ¡na datoteka"
+-
+-#~ msgid "Init script"
+-#~ msgstr "Init skripta"
+-
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "Unesite potpunu putanju do skripte za inicijalizaciju, koja startuje "
+-#~ "ograniÄeni program."
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "Izaberite korisniÄke uloge koje Å¾elite da prilagodite"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr ""
+-#~ "Izaberite korisniÄke uloge koje Ä‡e se prebaciti na ove programske domene."
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr ""
+-#~ "Izaberite dodatne domene kroz koje Ä‡e ova korisniÄka uloga prolaziti"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr ""
+-#~ "Izaberite programske domene na koje biste Å¾eleli da se ova korisniÄka "
+-#~ "uloga prebaci."
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "Izaberite korisniÄke uloge koje Ä‡e se prebaciti na ovaj domen"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "Izaberite dodatne domene koje Ä‡e ovaj korisnik administrirati"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr ""
+-#~ "Izaberite programske domene koje biste Å¾eleli ovaj korisnik administrira"
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "Izaberite dodatne uloge za ovog korisnika"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "Unesite mrežne portove koje ova uloga programa/korisnika osluÅ¡kuje"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP portovi</b>"
+-
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr ""
+-#~ "Dozvoljava ograniÄenoj ulozi programa/korisnika da se veže na bilo koji "
+-#~ "udp port"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "Sve"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "Dozvoli ulozi programa/korisnika da pozove bindresvport sa 0. Vezivanje "
+-#~ "na portove 600-1024"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Unesite spisak udp portova ili opseg portova razdvojene zarezima na koje "
+-#~ "se veže uloga programa/korisnika. Primer: 612, 650-660"
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "Nerezervisani portovi (>1024)"
+-
+-#~ msgid "Select Ports"
+-#~ msgstr "Izaberi portove"
+-
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "Dozvoljava ulozi programa/korisnika da se veže na bilo koji udp port > "
+-#~ "1024"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP portovi</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr ""
+-#~ "Unesite mrežne portove na koje se ova uloga programa/korisnika povezuje"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Unesite spisak tcp portova ili opseg portova razdvojene zarezima na koje "
+-#~ "se povezuje uloga programa/korisnika. Primer: 612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Unesite spisak udp portova ili opseg portova razdvojene zarezima na koje "
+-#~ "se povezuje uloga programa/korisnika. Primer: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "Izaberite uobiÄajene karakteristike programa"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "PiÅ¡e syslog poruke\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "Napravi/rukovodi privremenim podacima u /tmp"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "Koristi Pam za autentifikaciju"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "Koristi nsswitch ili getpw* pozive"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "Koristi dbus"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Å alje poruke kontrole"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "U vezi sa terminalom"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "Å alje e-poruku"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "Izaberite datoteke/direktorijume koje program rukovodi"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "Dodajte datoteke/direktorijume koji su potrebni programu da u njih \"PiÅ¡e"
+-#~ "\". Pid datoteke, datoteke dnevnika, /var/lib datoteke ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "Izaberite logiÄke promenljive koje ovaj program koristi"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr ""
+-#~ "Dodaj/ukloni logiÄke promenljive korišćene za ovaj ograniÄeni program/"
+-#~ "korisnik"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "Izaberite direktorijum u kome Ä‡e se generisati polise"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "Direktorijum polise"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "Datoteke napravljene polise"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Ova alatka Ä‡e generisati sledeće: \n"
+-#~ "vrstu primoravanja(te), kontekst datoteke(fc), interfejs(if), skriptu \n"
+-#~ "komandnog okruženja(sh)\n"
+-#~ "IzvrÅ¡ite skriptu komandnog okruženja kao root korisnik da biste \n"
+-#~ "kompajlirali/instalirali i ponovo postavili oznake na \n"
+-#~ "datotekama/direktorijumima. \n"
+-#~ "Koristite semanage ili useradd da mapirate Linux korisnike za "
+-#~ "prijavljivanje \n"
+-#~ "na korisniÄke uloge.\n"
+-#~ "Postavite maÅ¡inu u dopuÅ¡tajući režim (setenforce 0). \n"
+-#~ "Prijavite se kao korisnik i testirajte ovu korisniÄku ulogu.\n"
+-#~ "Koristite audit2allow -R da biste generisali dodatna pravila za te "
+-#~ "datoteku.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "Ova alatka Ä‡e generisati sledeće: \n"
+-#~ "vrstu primoravanja(te), kontekst datoteke(fc), interfejs(if), skriptu \n"
+-#~ "komandnog okruženja(sh)\n"
+-#~ "\n"
+-#~ "IzvrÅ¡ite skriptu komandnog okruženja da biste kompajlirali/instalirali "
+-#~ "i \n"
+-#~ "ponovo postavili oznake na datotekama/direktorijumima. \n"
+-#~ "Postavite maÅ¡inu u dopuÅ¡tajući režim (setenforce 0). \n"
+-#~ "IzvrÅ¡ite/ponovo pokrenite program da biste generisali avc poruke.\n"
+-#~ "Koristite audit2allow -R da biste generisali dodatna pravila za te "
+-#~ "datoteku.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "Dodaj dijalog logiÄkih promenljivih"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "Naziv logiÄke vrednosti"
+-
+-#~ msgid "Role"
+-#~ msgstr "Uloga"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "Postojeći_korisnik"
+-
+-#~ msgid "Application"
+-#~ msgstr "Program"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s mora biti direktorijum"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "Morate izabrati korisnika"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "Izaberite izvrÅ¡nu datoteku koju biste Å¾eleli da ograniÄite."
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "Izaberite init skriptu koju biste Å¾eleli da ograniÄite."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "Izaberite datoteku(e) koju ograniÄeni program pravi ili u nju piÅ¡e"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr ""
+-#~ "Izaberite direktorijum(e) koji ograniÄeni program poseduje ili u njega "
+-#~ "piÅ¡e"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "Izaberite direktorijum u kome Ä‡ete praviti datoteke polise"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Vrsta %s_t je već odreÄ‘ena u trenutnoj polisi.\n"
+-#~ "Da li Å¾elite da nastavite?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "Potvrdi ime"
+-
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "Modul %s.pp je već uÄitan u trenutnu polisu.\n"
+-#~ "Da li Å¾elite da nastavite?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "Morate uneti ime"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Morate uneti izvrÅ¡ni program"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "Podesite SELinux"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "Portovi moraju biti brojevi ili opsezi brojeva od 1 do %d "
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "Morate uneti ime vaÅ¡eg ograniÄenog procesa/korisnika"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "Tipovi korisnika nisu dozvoljene izvrÅ¡ne datoteke"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "Samo programi-sistemske usluge mogu koristiti init skriptu"
+-
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog mora biti logiÄka vrednost"
+-
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "Tipovi korisnika automatski dobijaju tmp vrstu"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "Morate uneti putanju izvrÅ¡ne datoteke za vaÅ¡ ograniÄeni proces"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Datoteka za vrstu primoravanja"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "Datoteka sprege"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "Datoteka za kontekste datoteka"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "Skripta za postavke"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux port\n"
+-#~ "Vrsta"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "Protokol"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "Nivo"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "Port"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "Broj porta â€ž%s“ nije ispravan.  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "Prikaz liste"
+-
+-#~ msgid "Group View"
+-#~ msgstr "Grupni pregled"
+-
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "ZaÅ¡tita SELinux servisa"
+-
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "Onemogući SELinux zaÅ¡titu za acct sistemsku uslugu"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "Administrator"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr ""
+-#~ "Dopusti svim sistemskim uslugama da upisuju datoteke jezgra na / "
+-#~ "direktorijum"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr ""
+-#~ "Dopusti svim sistemskim uslugama mogućnost da koriste nealocirane tty "
+-#~ "terminale"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "Ovlašćenja korisnika"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Dopusti gadmin SELinux korisniÄkim nalozima da izvrÅ¡avaju datoteke u "
+-#~ "svojim liÄnim direktorijumima"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Dopusti da gostujući SELinux korisniÄki nalozi izvrÅ¡avaju datoteke u "
+-#~ "svojim liÄnim direktorijumima ili u /tmp direktorijumu"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "ZaÅ¡tita memorije"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "Dopusti java-i izvrÅ¡ni stek"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Mount"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "Dopusti da mount montira bilo koju datoteku"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "Dopusti da mount montira bilo koji direktorijum"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "Dopusti mplayer-u izvrÅ¡ni stek"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "Dopusti da ssh izvrÅ¡ava ssh-keysign"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Dopusti da staff SELinux korisniÄki nalozi izvrÅ¡avaju datoteke u svojim "
+-#~ "liÄnim direktorijumima ili u /tmp direktorijumu"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Dopusti da sysadm SELinux korisniÄki nalozi izvrÅ¡avaju datoteke u svojim "
+-#~ "liÄnim direktorijumima ili u /tmp direktorijumu"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "Dopusti da neograniÄeni SELinux korisniÄki nalozi izvrÅ¡avaju datoteke u "
+-#~ "svojim liÄnim direktorijumima ili u /tmp direktorijumu"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Mrežna podeÅ¡avanja"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "Dopusti da neoznaÄeni paketi putuju mrežom"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "Dopusti da user SELinux korisniÄki nalozi izvrÅ¡avaju datoteke u svojim "
+-#~ "liÄnim direktorijumima ili u /tmp direktorijumu"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "Dopusti da neograniÄenim da se prebace u unconfined_execmem"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Baze podataka"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "Dopusti korisniku da se poveže na mysql soket"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "Dopusti korisniku da se poveže na postgres soket"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "Dopusti klijentima da upisuju u deljenu memoriju X servera"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "Dopusti da xguest SELinux korisniÄki nalozi izvrÅ¡avaju datoteke u svojim "
+-#~ "liÄnim direktorijumima ili u /tmp direktorijumu"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "Dozvoli sistemskim uslugama da se pokreću sa NIS servisom"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "Veb programi"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "Prebacivanje staff SELinux korisnika na Web Browser domen"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "Prebacivanje sysadm SELinux korisnika na Web Browser domen"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "Prebacivanje user SELinux korisnika na Web Browser domen"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "Prebacivanje xguest SELinux korisnika na Web Browser domen"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "Dopusti osoblju Web Browser-a da upisuje u liÄne direktorijume"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za amanda-u"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za amavis"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za apmd sistemsku uslugu"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za arpwatch sistemsku uslugu"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za auditd sistemsku uslugu"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za automount sistemsku uslugu"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za avahi"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za bluetooth sistemsku uslugu"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za canna sistemsku uslugu"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za cardmgr sistemsku uslugu"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za Cluster server"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "Dopusti da cdrecord Äita razliÄit sadržaj. nfs, samba, removable devices, "
+-#~ "user temp i datoteke sa nepouzdanim sadržajem"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za ciped sistemsku uslugu"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za clamd sistemsku uslugu"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za clamscan"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za clvmd"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za comsat sistemsku uslugu"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za courier sistemsku uslugu"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za cpucontrol sistemsku uslugu"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za cpuspeed sistemsku uslugu"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za crond sistemsku uslugu"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "Å tampanje"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za cupsd pozadinski server"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za cupsd sistemsku uslugu"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za cupsd_lpd"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za cvs sistemsku uslugu"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za cyrus sistemsku uslugu"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za dbskk sistemsku uslugu"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za dbusd sistemsku uslugu"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za dccd"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za dccifd"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za dccm"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za ddt sistemsku uslugu"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za devfsd sistemsku uslugu"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za dhcpc sistemsku uslugu"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za dhcpd sistemsku uslugu"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za dictd sistemsku uslugu"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "Dopusti da sysadm_t direktno pokreće sistemske usluge"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za Evolution"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "Igre"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za igre"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za veb ÄitaÄe"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za Thunderbird"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za distccd sistemsku uslugu"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za dmesg sistemsku uslugu"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za dnsmasq sistemsku uslugu"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za dovecot sistemsku uslugu"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za entropyd sistemsku uslugu"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za fetchmail"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za fingerd sistemsku uslugu"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za freshclam sistemsku uslugu"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za fsdaemon sistemsku uslugu"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za gpm sistemsku uslugu"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za gss sistemsku uslugu"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za Hal sistemsku uslugu"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "UsaglaÅ¡enost"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr ""
+-#~ "Ne koristi audit za stvari koje znamo da su pokvarene, ali koje nisu "
+-#~ "riziÄne po sigurnost"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za hostname sistemsku uslugu"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za hotplug sistemsku uslugu"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za howl sistemsku uslugu"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za cups hplip sistemsku uslugu"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za httpd rotatelogs"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD servis"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za http suexec"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za hwclock sistemsku uslugu"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za i18n sistemsku uslugu"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za imazesrv sistemsku uslugu"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za potomke inetd sistemske usluge"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za inetd sistemsku uslugu"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za innd sistemsku uslugu"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za iptables sistemsku uslugu"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za ircd sistemsku uslugu"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za irqbalance sistemsku uslugu"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za iscsi sistemsku uslugu"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za jabberd sistemsku uslugu"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za kadmind sistemsku uslugu"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za klogd sistemsku uslugu"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za krb5kdc sistemsku uslugu"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za ktalk sistemsku uslugu"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za kudzu sistemsku uslugu"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za locate sistemsku uslugu"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za lpd sistemsku uslugu"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za lrrd sistemsku uslugu"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za lvm sistemsku uslugu"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za mailman"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "Dopusti evolution-u i thunderbird-u da Äitaju datoteke korisnika"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za mdadm sistemsku uslugu"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za monopd sistemsku uslugu"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "Dopusti da mozilla ÄitaÄ Äita datoteke korisnika"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za mrtg sistemsku uslugu"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za mysqld sistemsku uslugu"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za nagios sistemsku uslugu"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "Servis za imenovanje"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za named sistemsku uslugu"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za nessusd sistemsku uslugu"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za NetworkManager"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za nfsd sistemsku uslugu"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za nmbd sistemsku uslugu"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za nrpe sistemsku uslugu"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za nscd sistemsku uslugu"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za nsd sistemsku uslugu"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za ntpd sistemsku uslugu"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za oddjob"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za oddjob_mkhomedir"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za openvpn sistemsku uslugu"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za pam sistemsku uslugu"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za pegasus"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za perdition sistemsku uslugu"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za portmap sistemsku uslugu"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za portslave sistemsku uslugu"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za postfix"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za postgresql sistemsku uslugu"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "Dopusti pppd da bude dostupan za korišćenje obiÄnim korisnicima"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za pptp"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za prelink sistemsku uslugu"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za privoxy sistemsku uslugu"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za ptal sistemsku uslugu"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za pxe sistemsku uslugu"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za pyzord"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za quota sistemsku uslugu"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za radiusd sistemsku uslugu"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za radvd sistemsku uslugu"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za rdisc"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za readahead"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "Dopusti da programi Äitaju datoteke koje se nalaze na nestandardnim "
+-#~ "mestima (default_t)"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za restorecond"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za rhgb sistemsku uslugu"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za ricci"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za ricci_modclusterd"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za rlogind sistemsku uslugu"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za rpcd sistemsku uslugu"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za rshd"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za rsync sistemsku uslugu"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "Dopusti da se ssh izvrÅ¡ava iz inetd umesto kao sistemska usluga"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "Dopusti da Samba deli nfs direktorijume"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL server autentifikacije"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "Dopusti sasl serveru autentifikacije da Äita /etc/shadow"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "Dopusti X-Windows serveru da preslikava memorijski prostor kao izvrÅ¡nu "
+-#~ "datoteku sa mogućnošću pisanja"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za saslauthd sistemsku uslugu"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za scannerdaemon sistemsku uslugu"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "Ne dopuÅ¡taj prelaz na sysadm_t, izazvan komandama sudo i su"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "Ne dopuÅ¡taj nijednom procesu da uÄita module jezgra"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "Ne dopuÅ¡taj nijednom procesu da menja SELinux polisu jezgra"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za sendmail sistemsku uslugu"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za setrans"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za setroublesoot sistemsku uslugu"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za slapd sistemsku uslugu"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za slrnpull sistemsku uslugu"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za smbd sistemsku uslugu"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za snmpd sistemsku uslugu"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za snort sistemsku uslugu"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za soundd sistemsku uslugu"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za sound sistemsku uslugu"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "ZaÅ¡tita od neželjene poÅ¡te"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za spamd sistemsku uslugu"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "Dopusti da spamd pristupa liÄnim direktorijumima"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "Dopusti pristup mreži programu za uklanjanje neželjene poÅ¡te"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za speedmgmt sistemsku uslugu"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "Dopusti squid sistemskoj usluzi da se spoji na mrežu"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za squid sistemsku uslugu"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za ssh sistemsku uslugu"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "Dopusti ssh prijave kao sysadm_r:sysadm_t"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "Dopusti da staff_r korisnici pretražuju sysadm liÄni direktorijum i "
+-#~ "Äitaju datoteke (kao Å¡to je ~/.bashrc)"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Univerzalni SSL tunel"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za stunnel sistemsku uslugu"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr ""
+-#~ "Dopusti da se stunnel sistemska usluga samostalno izvrÅ¡ava, izvan xinetd"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za swat sistemsku uslugu"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za sxid sistemsku uslugu"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za syslogd sistemsku uslugu"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za sistemske cron poslove"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za tcp sistemsku uslugu"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za telnet sistemsku uslugu"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za tftpd sistemsku uslugu"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za transproxy sistemsku uslugu"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za udev sistemsku uslugu"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za uml sistemsku uslugu"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Dopusti da se xinetd izvrÅ¡ava kao neograniÄen, ukljuÄujući tu sve servise "
+-#~ "koje startuje, a koji nemaju izriÄito odreÄ‘en prelaz domena"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "Dopusti da se rc skripta neograniÄeno izvrÅ¡ava, ukljuÄujući tu sve "
+-#~ "sistemske usluge koje rc startuje, a koji nemaju izriÄito odreÄ‘en prelaz "
+-#~ "domena"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "Dopusti da se rpm izvrÅ¡ava neograniÄeno"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr ""
+-#~ "Dopusti da se privilegovane alatke, kao Å¡to su hotplug i insmod, "
+-#~ "izvrÅ¡avaju neograniÄeno"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za updfstab sistemsku uslugu"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za uptimed sistemsku uslugu"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "Dopusti da user_r koristi sysadm_r preko su, sudo, ili userhelper. U "
+-#~ "protivnom, samo staff_r može tako da radi"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "Dozvoli korisnicima izvrÅ¡avanje mount naredbe"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr ""
+-#~ "Dopusti obiÄnim korisnicima direktan pristup miÅ¡u (samo dopusti X serveru)"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "Dopusti korisnicima da izvrÅ¡avaju dmesg komandu"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "Dopusti korisnicima da upravljaju mrežnim suÄeljima (takoÄ‘e je potrebno "
+-#~ "da je USERCTL=true)"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "Dopusti normalnom korisniku da izvrÅ¡ava ping"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "Dopusti korisniku da Äita/piÅ¡e u noextattrfile (FAT, CDROM, FLOPPY)"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "Dopusti da korisnici Äitaju/piÅ¡u na usb ureÄ‘aje"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "Dopusti korisnicima da izvrÅ¡avaju TCP servere (da se povezuju na portove "
+-#~ "i primaju veze sa istih domena ili spoljnih korisnika)  iskljuÄivanje ove "
+-#~ "opcije dovodi do pasivnog naÄina pada FTP-a i može uzrokovati promene "
+-#~ "drugih protokola"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "Dopusti korisniku da prati tty datoteke"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za uucpd sistemsku uslugu"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za vmware sistemsku uslugu"
+-
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za watchdog sistemsku uslugu"
+-
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za winbind sistemsku uslugu"
+-
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za xdm sistemsku uslugu"
+-
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "Dopusti da se xdm prijavljuje kao sysadm_r:sysadm_t"
+-
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za xen sistemsku uslugu"
+-
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
+-
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "Dopusti da xen Äita/piÅ¡e po fiziÄkim ureÄ‘ajima (diskovima)"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za xfs sistemsku uslugu"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za xen kontrolu"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za ypbind sistemsku uslugu"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za NIS sistemsku uslugu za lozinke"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za ypserv sistemsku uslugu"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "IskljuÄi SELinux zaÅ¡titu za NIS sistemsku uslugu za prenos"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Dopusti da SELinux webadm korisnik upravlja liÄnim direktorijumima "
+-#~ "korisnika bez privilegija"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "Dopusti da SELinux webadm korisnik može da Äita iz liÄnih direktorijuma "
+-#~ "korisnika bez privilegija"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "Da li ste sigurni da Å¾elite da obriÅ¡ete %s â€ž%s“?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "ObriÅ¡i %s"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "Dodaj %s"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "Izmeni %s"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "DopuÅ¡tanje"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "Primoravanje"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "Menjanje vrste polise Ä‡e prouzrokovati menjanje oznaka za ceo sistem "
+-#~ "datoteka pri sledećem podizanju sistema. Menjanje oznaka priliÄno dugo "
+-#~ "traje i to vreme zavisi od veliÄine sistema datoteka.  Å½elite li da "
+-#~ "nastavite?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "IskljuÄivanje SELinux-a zahteva ponovno podizanje sistema.  Nije "
+-#~ "preporuÄljivo.  Ako kasnije odluÄite da ukljuÄite SELinux, sistem Ä‡e "
+-#~ "morati da promeni oznake.  Ako samo hoćete da vidite da li SELinux "
+-#~ "izaziva probleme na vaÅ¡em sistemu, možete preći u dopuÅ¡tajući naÄin rada, "
+-#~ "koji Ä‡e samo samo beležiti poruke u dnevnik, ali ne i sprovoditi SELinux "
+-#~ "polisu.    Å½elite li da nastavite?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "UkljuÄivanje SELinux-a Ä‡e prouzrokovati menjanje oznaka za ceo sistem "
+-#~ "datoteka pri sledećem podizanju sistema. Menjanje oznaka priliÄno dugo "
+-#~ "traje i to vreme zavisi od veliÄine sistema datoteka.  Å½elite li da "
+-#~ "nastavite?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Autorska prava 2006 Red Het, Inc.\n"
+-#~ "Autorska prava 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "Dodaj SELinux mapiranje prijave"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "Dodaj SELinux mrežne portove"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux vrsta"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Nivo"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "Specifikacija datoteke"
+-
+-#~ msgid "File Type"
+-#~ msgstr "Vrsta datoteke"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "sve datoteke\n"
+-#~ "obiÄan fajl\n"
+-#~ "direktorijum\n"
+-#~ "ureÄ‘aj za karaktere\n"
+-#~ "ureÄ‘aj blokova\n"
+-#~ "soket\n"
+-#~ "simboliÄka veza\n"
+-#~ "imenovana cev\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Dodaj SELinux korisnika"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux administracija"
+-
+-#~ msgid "Add"
+-#~ msgstr "Dodaj"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "_Svojstva"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "_ObriÅ¡i"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "Izaberite upravljaÄki objekat"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Izaberite:</b>"
+-
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "Podrazumevani sistemski režim primoravanja"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "Tekući režim primoravanja"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "Podrazumevana sistemska vrsta polise:"
+-
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "Izaberite da li Å¾elite da ponovo oznaÄite celokupan sistem datoteka pri "
+-#~ "sledećem podizanju sistema.  Ponovno oznaÄavanje može trajati jako dugo, "
+-#~ "u zavisnosti od veliÄine sistema.  Ako menjate vrste polisa ili idete sa "
+-#~ "iskljuÄenog na primoravanje, ponovno oznaÄavanje je neophodno."
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Ponovo oznaÄi pri sledećem pokretanju."
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "Vrati logiÄke promenljive na podrazumevane sistemske postavke"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "Prebaci izmeÄ‘u PrilagoÄ‘enih i Svih logiÄkih promenljivih"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "Filtar"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "Dodaj kontekst datoteke"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "Izmeni kontekst datoteke"
+-
+-#~ msgid "Delete File Context"
+-#~ msgstr "ObriÅ¡i kontekst datoteke"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "Prebaci izmeÄ‘u svih i prilagoÄ‘enih konteksta datoteka"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "Dodaj SELinux korisniÄko mapiranje"
+-
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Izmeni SELinux korisniÄko mapiranje"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "ObriÅ¡i SELinux korisniÄko mapiranje"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "Dodaj prevod"
+-
+-#~ msgid "Modify Translation"
+-#~ msgstr "Izmeni prevod"
+-
+-#~ msgid "Delete Translation"
+-#~ msgstr "ObriÅ¡i prevod"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Izmenim SELinux korisnika"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "Dodaj mrežni port"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "Uredi mrežni port"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "ObriÅ¡i mrežni port"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "Prebaci izmeÄ‘u prilagoÄ‘enih i svih portova"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "Napravi novi modul polise"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "UÄitaj modul polise"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "Ukloni uÄitavajuće module polise"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr ""
+-#~ "UkljuÄi/iskljuÄi dodatna audit pravila, koja se obiÄno ne beleže u "
+-#~ "datoteke dnevnika."
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "Nivo osetljivosti"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux korisnik â€ž%s“ je neophodan"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Zahteva vrednost"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "Dozvoli ulozi programa/korisnika da se veže na bilo koji tcp port > 1024"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr ""
+-#~ "Dozvoljava ograniÄenoj ulozi programa/korisnika da se veže na bilo koji "
+-#~ "tcp port"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "Unesite spisak tcp portova ili opseg portova razdvojene zarezima na koje "
+-#~ "se veže uloga programa/korisnika. Primer: 612, 650-660"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "Druid za pravljenje SELinux polisa"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "Nerezervisani portovi  (> 1024)"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr ""
+-#~ "Koristite ovo dugme za proveru ako vaÅ¡ program poziva bindresvport sa 0."
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "Primoravanje\n"
+-#~ "DopuÅ¡tanje\n"
+-#~ "IskljuÄeno\n"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/sv.po b/policycoreutils/po/sv.po
+index f3e108c..40f3845 100644
+--- a/policycoreutils/po/sv.po
++++ b/policycoreutils/po/sv.po
+@@ -1,21 +1,24 @@
+-# Swedish messages for policycoreutils.
+-# Copyright Â© 2001-2008 Free Software Foundation, Inc.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Translators:
+ # Christian Rose <menthos@menthos.com>, 2006.
+ # Magnus Larsson <fedoratrans@gmail.com>, 2007, 2008.
+-#
+-#
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-01-27 19:18-0500\n"
+-"Last-Translator: Christian Rose <menthos@menthos.com>\n"
+-"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Swedish (http://www.transifex.net/projects/p/fedora/language/"
++"sv/)\n"
+ "Language: sv\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -87,11 +90,11 @@ msgstr "******************** VIKTIGT ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr ""
++msgstr "För att göra denna policy aktiv, kör:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "globalt"
+ #: ../semanage/seobject.py:222
+ msgid "Could not create semanage handle"
+@@ -110,46 +113,42 @@ msgid "Could not establish semanage connection"
+ msgstr "Kunde inte sätta upp en semanage-uppkoppling"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Kunde inte sätta MLS-intervall för %s"
++msgstr "Kunde inte testa status för aktivering av MLS"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "Inte implementerat Ã¤nnu"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "En semanagetransaktion pÃ¥gÃ¥r redan"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "Kunde inte starta semanage-transaktion"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Kunde inte starta semanage-transaktion"
++msgstr "Kunde inte verkställa semanage-transaktion"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Ingen semanagetransaktion pÃ¥gÃ¥r"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Kan inte lista SELinux användare"
++msgstr "Kan inte lista SELinux-moduler"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "Modulnamn"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "Version"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "Avaktiverad"
+@@ -159,9 +158,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Kunde inte lägga till roll %s för %s"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -173,24 +172,25 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "TillÃ¥tande"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "TillÃ¥tande"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+ msgstr ""
++"Det gick inte att sätta tillÃ¥tande domän %s (modulinstallationen "
++"misslyckades)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+ msgstr ""
++"Det gick inte att ta bort tillÃ¥tande domän %s (borttagning misslyckades)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -210,9 +210,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "Kunde inte kontrollera om inloggningskartläggning för %s Ã¤r definierad"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "Linuxanvändaren %s finns inte"
++msgstr "Linuxgruppen %s finns inte"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -280,15 +280,20 @@ msgid "Could not list login mappings"
+ msgstr "Kunde inte lista inloggningsmappningar"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "Inloggningsnamn"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "SELinux-användare"
++msgstr "SELinux-anv."
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS-intervall"
+@@ -306,9 +311,9 @@ msgid "Could not query user for %s"
+ msgstr "Kan inte frÃ¥ga användare för %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Kunde inte lägga till filkontext för %s"
++msgstr "Du mÃ¥ste lägga till Ã¥tminstone en roll för %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -398,6 +403,7 @@ msgid "MCS Range"
+ msgstr "MCS-intervall"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux-roller"
+@@ -410,9 +416,8 @@ msgid "Port is required"
+ msgstr "Port krävs"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Ogiltigt prefix %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -499,14 +504,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "Kunde inte modifiera port %s/%s"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "Kunde inte lista portar"
++msgstr "Kunde inte lista portarna"
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Kan inte ta bort port %s/%s"
++msgstr "Kan inte ta bort port %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -530,18 +534,17 @@ msgstr "SELinux-porttyp"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "Portnummer"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Port krävs"
++msgstr "Nodadress krävs"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Okänt eller saknat protokoll"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -558,14 +561,14 @@ msgstr "Kunde inte skapa nyckel för %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Kunde inte kontrollera om port %s/%s Ã¤r definierad"
++msgstr "Kunde inte kontrollera om adressen %s Ã¤r definierad"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Kunde inte skapa en nyckel för %s"
++msgstr "Kunde inte skapa en adress för %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -574,74 +577,72 @@ msgid "Could not create context for %s"
+ msgstr "Kunde inte skapa-kontext för %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Kunde inte sätta namn för %s"
++msgstr "Kunde inte sätta mask för %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Kunde inte sätta användare i filkontext för %s"
++msgstr "Kunde inte sätta användare i adresskontext för %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Kunde inte sätta roll i filkontext för %s"
++msgstr "Kunde inte sätta roll i adresskontext för %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Kunde inte sätta typ i filkontext för %s"
++msgstr "Kunde inte sätta typ i adresskontext för %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Kunde inte sätta mls-fält i filkontext för %s"
++msgstr "Kunde inte sätta mls-fält i adresskontext för %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Kunde inte sätta filkontext för %s"
++msgstr "Kunde inte sätta adresskontext för %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Kunde inte lägga till port %s/%s"
++msgstr "Kunde inte lägga till adress %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Port %s/%s Ã¤r inte definierad"
++msgstr "Adressen %s Ã¤r inte definierad"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Kunde inte frÃ¥ga port %s/%s"
++msgstr "Kunde inte frÃ¥ga adress %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Kunde inte modifiera port %s/%s"
++msgstr "Kunde inte modifiera adress %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Port %s/%s Ã¤r definierad i policy, kan inte tas bort"
++msgstr "Adress %s Ã¤r definierad i policy, kan inte tas bort"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Kunde inte ta bort gränssnittet %s"
++msgstr "Kunde inte ta bort adress %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Kunde inte ta bort inloggningkartläggning för %s"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Kunde inte lista portar"
++msgstr "Kunde inte lista adresser"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -715,9 +716,8 @@ msgid "Could not delete interface %s"
+ msgstr "Kunde inte ta bort gränssnittet %s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Kunde inte ta bort gränssnittet %s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -732,9 +732,9 @@ msgid "Context"
+ msgstr "Kontext"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "Filkontext för %s redan definierat"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -742,9 +742,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linuxanvändaren %s finns inte"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -762,11 +762,8 @@ msgid "Could not set mls fields in file context for %s"
+ msgstr "Kunde inte sätta mls-fält i filkontext för %s"
+ #: ../semanage/seobject.py:1707
+-#, fuzzy
+ msgid "Invalid file specification"
+-msgstr ""
+-"Fil\n"
+-"Specifikation"
++msgstr "Ogiltig filspecifikation"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -826,14 +823,13 @@ msgid "Could not modify file context for %s"
+ msgstr "Kunde inte modifiera filkontext för %s"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Kunde inte lista filkontext"
++msgstr "Kunde inte lista filkontexten"
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Kunde inte radera filkontext för %s"
++msgstr "Kunde inte radera filkontexten %s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+@@ -868,11 +864,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux-kontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -891,14 +886,14 @@ msgid "Could not query file context %s"
+ msgstr "Kunde inte frÃ¥ga filkontext %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Du mÃ¥ste ange ett prefix"
++msgstr "Du mÃ¥ste ange ett av följande värden: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Kunde inte ta bort flagga %s"
++msgstr "Kunde inte sätta aktivt värde pÃ¥ booleanen %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -908,7 +903,7 @@ msgstr "Kunde inte modifiera flagga %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Felaktigt format %s: Post %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -926,33 +921,32 @@ msgstr "Kunde inte lista flaggor"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "okänt"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "av"
+ #: ../semanage/seobject.py:2117
+-#, fuzzy
+ msgid "on"
+-msgstr "Cron"
++msgstr "pÃ¥"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+ msgstr "SELinux-boolean"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "Status"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "Beskrivning"
+ #: ../newrole/newrole.c:201
+ #, c-format
+@@ -962,12 +956,12 @@ msgstr "misslyckades med att sätta PAM_TTY\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
++msgstr "newrole: hashtabell för konfiguration av tjänstenamn spillde Ã¶ver\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
++msgstr "newrole:  %s:  fel pÃ¥ rad %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+@@ -1072,7 +1066,7 @@ msgstr "Fel: flera nivÃ¥er angivna\n"
+ #: ../newrole/newrole.c:865
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
++msgstr "Fel: du fÃ¥r inte lov att byta nivÃ¥er pÃ¥ en osäker terminal\n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+@@ -1140,14 +1134,14 @@ msgid "failed to get old_context.\n"
+ msgstr "kunde inte fÃ¥ tag i old_context.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Fel! Kunde inte fÃ¥ tag i tty-information.\n"
++msgstr "Varning!  Kunde inte fÃ¥ tag i tty-information.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr ""
++msgstr "fel vid inläsning av PAM-tjänstekonfiguration.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+@@ -1189,19 +1183,19 @@ msgid "failed to exec shell\n"
+ msgstr "kunde ej exek skal\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "användning:  %s [-q]\n"
++msgstr "användning:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s:  Policyn Ã¤r redan inläst och initial inläsning begärd\n"
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s: Kan inte läsa in policy: %s\n"
++msgstr "%s:  Kan inte läsa in policy och tvingande läge Ã¤r begärt:  %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1287,1055 +1281,2096 @@ msgstr "chcat -- -Hemligt /dok/affärsplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +Hemligt juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "Flaggfel %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Kan inte Ã¶ppna %s: Ã¶versättningar stöds inte pÃ¥ maskiner som inte har MLS"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "NivÃ¥"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "Översättning"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "Översättningar kan inte innehÃ¥lla blanksteg \"%s\" "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Ogiltig nivÃ¥ \"%s\" "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s Ã¤r redan definierad i Ã¶versättningar"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s Ã¤r inte definierad i Ã¶versättningar"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "Inloggningskartläggning för %s Ã¤r redan definierad"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "lägg till SELinux användarmappning"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux användare %s Ã¤r redan definierad"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Port krävs"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Port %s/%s redan definierad"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "Gränssnittet %s Ã¤r redan definierat"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Fel vid initiering av kapabiliteter, avbryter.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Fel vid sättning av kapabiliteter, avbryter\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Fel vid sättning av KEEPCAPS, avbryter\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Fel vid borttagning av kapabiliteter, avbryter\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Fel vi borttagning av SETUID kapabilitet, avbryter\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Fel vid frigöring av caps\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "översättningar stöds inte pÃ¥ maskiner som inte har MLS"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "Boolean"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#, fuzzy
+-#~ msgid "all"
+-#~ msgstr "Alla"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "Filmärkning"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "Fil\n"
+-#~ "Specifikation"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "Filkontext"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "Fil\n"
+-#~ "Typ"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "Användare"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS-intervall"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Inloggning '%s' krävs"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "Policy Module"
+-#~ msgstr "Policymodul"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Load Policy Module"
+-#~ msgstr "Läsa in policymodul"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "translator-credits"
+-#~ msgstr "Magnus Larsson"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>Program</b>"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>Användare</b>"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#, fuzzy
+-#~ msgid "User Role"
+-#~ msgstr "Roll"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Användare</b>"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#, fuzzy
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Root-användare"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "Namn"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "Executable"
+-#~ msgstr "Körbar"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Init script"
+-#~ msgstr "Init-skript"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP-portar</b>"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "Alla"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "Välj portar"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP-portar</b>"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Fel vid skickande av granskningsmeddelande.\n"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Boolean Name"
+-#~ msgstr "Boolean"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Role"
+-#~ msgstr "Roll"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Application"
+-#~ msgstr "Program"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Du mÃ¥ste ange ett namn"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "Du mÃ¥ste ange ett namn"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Du mÃ¥ste ange ett körbart program"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "Typ-upprätthÃ¥llande fil"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "Gränssnittsfil"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "Filkontextsfil"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "Protokoll"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "NivÃ¥"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "Port"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "Gruppvy"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux-tjänstskydd"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "Admin"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "Minesskydd"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "Montera"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "Nätverkinställningar"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "Databaser"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "Webbprogram"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "Avaktivera SELinux-skydd för amavis"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för apmd-demonen"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för arpwatch-demonen"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för auditd-demonen"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för automount-demonen"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "Avaktivera SELinux-skydd för avahi"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för bluetooth-demonen"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för canna-demonen"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för cardmgr-demonen"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Avaktivera SELinux-skydd för Cluster-servern"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för ciped-demonen"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för clamd-demonen"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "Avaktivera SELinux-skydd för clamscan"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "Avaktivera SELinux-skydd för clvmd"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för comsat-demonen"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för courier-demonen"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för cpucontrol-demonen"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för cpuspeed-demonen"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för crond-demonen"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "Utskrift"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "Avaktivera SELinux-skydd för cupsd-demonen"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för cupsd-demonen"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "Avaktivera SELinux-skydd för cupsd_lpd"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för cvs-demonen"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för cyrus-demonen"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för dbskkd-demonen"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för dbusd-demonen"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "Avaktivera SELinux-skydd för dccd"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "Avaktivera SELinux-skydd för dccifd"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "Avaktivera SELinux-skydd för dccm"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för ddt-demonen"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för devfsd-demonen"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för dhcpc-demonen"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för dhcpd-demonen"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för dictd-demonen"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "Avaktivera SELinux-skydd för spel"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "Avaktivera SELinux-skydd för webbläsare"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Avaktivera SELinux-skydd för Thunderbird"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för distccd-demonen"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för dmesg-demonen"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för dnsmasq-demonen"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för dovecot-demonen"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för entropyd-demonen"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "Avaktivera SELinux-skydd för fetchmail"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för fingerd-demonen"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för freshclam-demonen"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för fsdaemon-demonen"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för gpm-demonen"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för gss-demonen"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för hal-demonen"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "Kompatibilitet"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för hostname-demonen"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för hotplug-demonen"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för howl-demonen"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för cups hplip-demonen"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "Avaktivera SELinux-skydd för httpd rotatelogs"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD-tjänst"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "Avaktivera SELinux-skydd för http suexec"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för hwclock-demonen"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för i18n-demonen"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för imazesrv-demonen"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "Avaktivera SELinux-skydd för inetd child-demonerna"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för inetd-demonen"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för innd-demonen"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för iptables-demonen"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för ircd-demonen"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för irqbalance-demonen"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för iscsi-demonen"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för jabberd-demonen"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för kadmind-demonen"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för klogd-demonen"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för krb4kdc-demonen"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "Avaktivera SELinux-skydd för ktalk-demonen"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för kudzu-demonen"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för locate-demonen"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för lpd-demonen"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för lrrd-demonen"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för lvm-demonen"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "Avaktivera SELinux-skydd för mailman"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för madm-demonen"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för monopd-demonen"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för mrtg-demonen"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för mysqld-demonen"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för nagios-demonen"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "Namntjänst"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för named-demonen"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för nessusd-demonen"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "Avaktivera SELinux-skydd för NetworkManager"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för nfsd-demonen"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för nmbd-demonen"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för nrpe-demonen"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för nscd-demonen"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för nsd-demonen"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för ntpd-demonen"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "Avaktivera SELinux-skydd för oddjob"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "Avaktivera SELinux-skydd för oddjob_mkhomedir"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för openvpn-demonen"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för pam-demonen"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "Avaktivera SELinux-skydd för pegasus"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för perdition-demonen"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för portmap-demonen"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för portslave-demonen"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "Avaktivera SELinux-skydd för postfix"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för postgresql-demonen"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "Avaktivera SELinux-skydd för pptp"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för prelink-demonen"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för privoxy-demonen"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för ptal-demonen"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för pxe-demonen"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "Avaktivera SELinux-skydd för pyzord"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för quota-demonen"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för radiusd-demonen"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för radvd-demonen"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "Avaktivera SELinux-skydd för rdisc"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "Avaktivera SELinux-skydd för readahead"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "Avaktivera SELinux-skydd för restorecond"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för rhgb-demonen"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "Avaktivera SELinux-skydd för ricci"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "Avaktivera SELinux-skydd för ricci_modclusterd"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för rlogind-demonen"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för rpcd-demonen"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "Avaktivera SELinux-skydd för rshd"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för rsync-demonen"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL autentiseringsserver"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för saslauthd-demonen"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för scannerdaemon-demonen"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för sendmail-demonen"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "Avaktivera SELinux-skydd för setrans"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för setroublesoot-demonen"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för slapd-demonen"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för slrnpull-demonen"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för smbd-demonen"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för snmpd-demonen"
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för snort-demonen"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för soundd-demonen"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för sound-demonen"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Spam Protection"
+-#~ msgstr "skräppostskydd"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för spamd-demonen"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för speedmgmt-demonen"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för squid-demonen"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för ssh-demonen"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "Universiell SSL-tunnel"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för stunnel-demonen"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för swat-demonen"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för sxid-demonen"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för syslogd-demonen"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "Avaktivera SELinux-skydd för systemets cron-jobb"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för tcp-demonen"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för telnet-demonen"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för tftpd-demonen"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för transproxy-demonen"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för udev-demonen"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för uml-demonen"
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för updfstab-demonen"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för uptimed-demonen"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för vmware-demonen"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för watchdog-demonen"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för winbind-demonen"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för xdm-demonen"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för xen-demonen"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för xfs-demonen"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "Avaktivera SELinux-skydd för xen-constrol"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för ypbind-demonen"
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för NIS-lösenord-demonen"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för ypserv-demonen"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för NIS Transfer-demonen"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid "Delete %s"
+-#~ msgstr "Radera %s"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "Add %s"
+-#~ msgstr "Lägg till %s"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid "Modify %s"
+-#~ msgstr "Modifiera %s"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "Permissive"
+-#~ msgstr "TillÃ¥tande"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Enforcing"
+-#~ msgstr "UpprätthÃ¥llande"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux-typ"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "NivÃ¥"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "File Type"
+-#~ msgstr "Filtyp"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "alla filer\n"
+-#~ "vanliga filer\n"
+-#~ "kataloger\n"
+-#~ "teckenenhet\n"
+-#~ "blockenhet\n"
+-#~ "uttag\n"
+-#~ "symbolisk länk\n"
+-#~ "namngivet rör\n"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Lägga till SELinux-användare"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Add"
+-#~ msgstr "Lägg till"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "_Properties"
+-#~ msgstr "_Egenskaper"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "_Delete"
+-#~ msgstr "_Ta bort"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>Val:</b>"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "Nuvarande upprätthÃ¥llande-läge"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "Märk om vid nästa omstart."
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid "label37"
+-#~ msgstr "label37"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "Filter"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "label50"
+-#~ msgstr "label50"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "label38"
+-#~ msgstr "label38"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Modifiera SELinux användarmappning"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Ta bort SELinux-användarmappning"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "label39"
+-#~ msgstr "label39"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "Lägg till Ã¶versättning"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "Ta bort Ã¶versättning"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "label41"
+-#~ msgstr "label41"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Modifiera SELinux-användare"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "label40"
+-#~ msgstr "label40"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "Lägg till nätverkport"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "label42"
+-#~ msgstr "label42"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "Läs in policymodul"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid "label44"
+-#~ msgstr "label44"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux-användare \"%s\" krävs"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "Kräver värde"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid "label25"
+-#~ msgstr "label25"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "label26"
+-#~ msgstr "label26"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "label28"
+-#~ msgstr "label28"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "label30"
+-#~ msgstr "label30"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "label31"
+-#~ msgstr "label31"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "label32"
+-#~ msgstr "label32"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "label33"
+-#~ msgstr "label33"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid "label34"
+-#~ msgstr "label34"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "label35"
+-#~ msgstr "label35"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label51"
+-#~ msgstr "label25"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "UpprätthÃ¥llande\n"
+-#~ "TillÃ¥tande\n"
+-#~ "Avaktiverad\n"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "value"
+-#~ msgstr "värde"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#~ msgid "You must be root to run %s."
+-#~ msgstr "Du mÃ¥ste vara root för att köra %s."
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#~ msgid "Other"
+-#~ msgstr "Andra"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "Files and Directories"
+-#~ msgstr "Filer och katalog"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "FTP"
+-#~ msgstr "FTP"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Polyinstatiation"
+-#~ msgstr "Polyinstansiering"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#~ msgid "Zebra"
+-#~ msgstr "Zebra"
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ftpd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för ftpd-demonen"
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för httpd-demonen"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pppd daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för pppd-demonen"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the mozilla ppp daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för mozilla ppp-demonen"
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "Spam Assassin"
+-#~ msgstr "Spam Assassin"
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid "Disable SELinux protection for zebra daemon"
+-#~ msgstr "Avaktivera SELinux-skydd för zebra-demonen"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "MLS/MCS Level"
+-#~ msgstr "MLS/MCS-nivÃ¥"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Level"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS-nivÃ¥"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Kräver 2 eller fler argument"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "%s not defined"
+-#~ msgstr "%s Ã¤r inte definierad"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "%s inte giltig för %s objekt\n"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "intervall stöds inte av icke-MLS maskiner"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Ogiltigt värde %s"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "För att ladda detta nya policy-paket in i kärnan,\n"
+-#~ "mÃ¥ste du köra \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Flaggfel: %s "
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/ta.po b/policycoreutils/po/ta.po
+index f201663..f5c6fb0 100644
+--- a/policycoreutils/po/ta.po
++++ b/policycoreutils/po/ta.po
+@@ -1,30 +1,25 @@
+-# translation of ta.po to Tamil
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+ #
++# Translators:
+ # Felix <ifelix@redhat.com>, 2006.
+ # I felix <ifelix@redhat.com>, 2007.
++# I Felix <ifelix@redhat.com>, 2010.
++# I. Felix <ifelix@redhat.com>, 2009, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: ta\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-09-24 17:51+0530\n"
+-"Last-Translator: I felix <ifelix@redhat.com>\n"
+-"Language-Team: Tamil <fedora-trans-ta@redhat.com>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Tamil <tamil-users@lists.fedoraproject.org>\n"
+ "Language: ta\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -96,11 +91,11 @@ msgstr "******************** à®®à¯à®•à¯à®•à®¿à®¯à®®à®¾à®©à®¤à¯ **************
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr ""
++msgstr "இநà¯à®¤ à®ªà®¾à®²à®¿à®šà®¿ à®¤à¯Šà®•à¯à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®ªà®Ÿà¯à®¤à¯à®¤,செயலாறà¯à®±à¯à®•à®¿à®±à®¤à¯:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "கொலபலà¯"
+ #: ../semanage/seobject.py:222
+ msgid "Could not create semanage handle"
+@@ -119,87 +114,81 @@ msgid "Could not establish semanage connection"
+ msgstr "semanage à®‡à®£à¯ˆà®ªà¯à®ªà®¿à®©à¯ˆ à®à®±à¯à®ªà®Ÿà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+ msgstr "MLS à®µà®°à¯ˆà®¯à®±à¯ˆà®¯à¯ˆ %sகà¯à®•à¯ à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "à®…à®®à¯à®²à¯à®•à¯à®•à¯ à®•à¯Šà®£à¯à®Ÿà¯ à®µà®°à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage à®ªà®°à®¿à®®à®¾à®±à¯à®±à®®à¯ à®à®±à¯à®•à®©à®µà¯‡ à®šà¯†à®¯à®²à®¿à®²à¯ à®‰à®³à¯à®³à®¤à¯"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "semanage à®ªà®°à®¿à®®à®¾à®±à¯à®±à®¤à¯à®¤à¯ˆ à®†à®°à®®à¯à®ªà®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage à®ªà®°à®¿à®®à®¾à®±à¯à®±à®¤à¯à®¤à¯ˆ à®†à®°à®®à¯à®ªà®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "semanage à®ªà®°à®¿à®®à®¾à®±à¯à®±à®¤à¯à®¤à¯ˆ à®’தà¯à®¤à¯à®•à¯ à®•à¯Šà®³à¯à®³ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage à®ªà®°à®¿à®®à®¾à®±à¯à®±à®®à¯ à®‡à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux à®ªà®¯à®©à®°à¯à®•à®³à¯ˆ à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à®¿à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "SELinux à®¤à¯Šà®•à¯à®¤à®¿à®•à®³à¯ˆ à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à®¿à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "தொகà¯à®¤à®¿ à®ªà¯†à®¯à®°à¯"
++msgstr "தொகà¯à®¤à®¿à®•à®³à¯ à®ªà¯†à®¯à®°à¯"
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "பதிபà¯à®ªà¯"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "செயலà¯à®¨à¯€à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
+ #: ../semanage/seobject.py:322
+ #, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr ""
++msgstr "தொகà¯à®¤à®¿ %s஠செயலà¯à®¨à¯€à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ (நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ)"
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "%s à®•à¯à®•à¯ %s à®ªà®¾à®¤à¯à®¤à®¿à®°à®¤à¯à®¤à¯ˆ à®šà¯‡à®°à¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "தொகà¯à®¤à®¿ %s஠செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ (நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ)"
+ #: ../semanage/seobject.py:348
+ #, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr ""
++msgstr "தொகà¯à®¤à®¿ %s஠நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ (நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ)"
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
++msgstr "'on' à®…லà¯à®²à®¤à¯ 'off' à®•à¯à®•à¯ dontaudit à®¤à¯‡à®µà¯ˆà®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "à®à®±à¯à®•à®¤à¯à®¤à®•à¯à®•à®¤à¯"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "à®à®±à¯à®•à®¤à¯à®¤à®•à¯à®•à®¤à¯"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "தாராளமான à®šà¯†à®¯à®±à¯à®•à®³à®®à¯ %s à® à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ(à®®à¯à®±à¯ˆà®®à¯ˆà®¯à¯ˆ à®¨à®¿à®±à¯à®µ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "à®à®±à¯à®±à®¤à¯à®¤à®•à¯à®• à®šà¯†à®¯à®±à¯à®•à®³ %s஠நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ (நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -219,9 +208,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "%sகà¯à®•à¯ à®…னà¯à®®à®¤à®¿ à®’பà¯à®ªà¯€à®Ÿà¯ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, à®šà¯‹à®¤à®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "லினகà¯à®¸à¯ à®ªà®¯à®©à®°à¯ %s à®‡à®²à¯à®²à¯ˆ"
++msgstr "லினகà¯à®¸à¯ à®•à¯à®´à¯ %s à®à®±à¯à®•à®©à®µà¯‡ à®‡à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -288,15 +277,20 @@ msgid "Could not list login mappings"
+ msgstr "அனà¯à®®à®¤à®¿ à®’பà¯à®ªà¯€à®Ÿà¯à®•à®³à¯ˆ à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à®¿à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "பà¯à®•à¯à®ªà®¤à®¿à®µà¯ à®ªà¯†à®¯à®°à¯"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux à®ªà®¯à®©à®°à¯"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS à®µà®°à¯ˆà®¯à®±à¯ˆ"
+@@ -314,9 +308,9 @@ msgid "Could not query user for %s"
+ msgstr "%sகà¯à®•à¯ à®ªà®¯à®©à®°à¯ˆ à®µà®¿à®©à®¾ à®Žà®´à¯à®ªà¯à®ª à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%sகà¯à®•à¯ à®•à¯‹à®ªà¯à®ªà¯ à®šà¯‚ழலை à®šà¯‡à®°à¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "%sகà¯à®•à®¾à®• à®’ர௠சூழலையாவத௠சேரà¯à®•à¯à®•à®µà¯à®®à¯"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -406,6 +400,7 @@ msgid "MCS Range"
+ msgstr "MCS à®µà®°à¯ˆà®¯à®±à¯ˆ"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux à®ªà®™à¯à®•à¯à®•à®³à¯"
+@@ -418,9 +413,8 @@ msgid "Port is required"
+ msgstr "தà¯à®±à¯ˆ à®¤à¯‡à®µà¯ˆà®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "தவறான à®®à¯à®©à¯à®©à¯Šà®Ÿà¯à®Ÿà¯ %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -507,14 +501,13 @@ msgid "Could not modify port %s/%s"
+ msgstr "தà¯à®±à¯ˆ %s/%s஠மாறà¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+ msgstr "தà¯à®±à¯ˆà®•à®³à¯ˆ à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à®¿à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "தà¯à®±à¯ˆà®•à®³à¯ˆ à®…ழிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ %s/%s"
++msgstr "%s à®¤à¯à®±à¯ˆà®¯à¯ˆ à®…ழிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+@@ -538,18 +531,17 @@ msgstr "SELinux à®¤à¯à®±à¯ˆ à®µà®•à¯ˆ"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "தà¯à®±à¯ˆ à®Žà®£à¯"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "தà¯à®±à¯ˆ à®¤à¯‡à®µà¯ˆà®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
++msgstr "à®®à¯à®©à¯ˆ à®®à¯à®•à®µà®°à®¿ à®¤à¯‡à®µà¯ˆà®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "தெரியாத à®…லà¯à®²à®¤à¯ à®µà®¿à®Ÿà¯à®ªà®Ÿà¯à®Ÿ à®ªà®¿à®°à¯‹à®•à¯à®Ÿà®•à®¾à®²à¯"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -566,14 +558,14 @@ msgstr "%sகà¯à®•à¯ à®µà®¿à®šà¯ˆà®¯à¯ˆ à®‰à®°à¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "தà¯à®±à¯ˆ %s/%s à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯ à®šà¯‹à®¤à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®µà®¤à®¿à®²à¯à®²à¯ˆ"
++msgstr "addr %s à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯ à®šà¯‹à®¤à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®µà®¤à®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%sகà¯à®•à¯ à®µà®¿à®šà¯ˆà®¯à¯ˆ à®‰à®°à¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "%sகாக addr à®‰à®°à¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -582,74 +574,72 @@ msgid "Could not create context for %s"
+ msgstr "%s à®•à¯à®•à¯ à®šà¯‚ழலை à®‰à®°à¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%sகà¯à®•à¯ à®ªà¯†à®¯à®°à¯ à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "%sகாக à®®à®¾à®¸à¯à®•à¯à®•à¯ˆ à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s à®•à¯à®•à¯ à®•à¯‹à®ªà¯à®ªà¯ à®šà¯‚ழலில௠பயனரை à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "%s à®•à¯à®•à¯ addr à®šà¯‚ழலில௠பயனரை à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s à®•à¯à®•à¯ à®•à¯‹à®ªà¯à®ªà¯ à®šà¯‚ழலில௠பாதà¯à®¤à®¿à®°à®¤à¯à®¤à¯ˆ à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "%s à®•à¯à®•à¯ addr à®šà¯‚ழலில௠சà¯à®´à®²à¯ˆ à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s à®•à¯à®•à¯ à®•à¯‹à®ªà¯à®ªà¯ à®šà¯‚ழலில௠வகையை à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "%s à®•à¯à®•à¯ addr à®šà¯‚ழலில௠வகையை à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%sகà¯à®•à¯ à®•à¯‹à®ªà¯à®ªà¯ à®šà¯‚ழலில௠mls à®ªà¯à®²à®™à¯à®•à®³à¯ˆ à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "%sகà¯à®•à¯ addr à®šà¯‚ழலில௠mls à®ªà¯à®²à®™à¯à®•à®³à¯ˆ à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s à®•à¯à®•à¯ à®•à¯‹à®ªà¯à®ªà¯ à®šà¯‚ழலை à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "%s à®•à¯à®•à¯ addr à®šà¯‚ழலை à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "தà¯à®±à¯ˆ %s/%sயை à®šà¯‡à®°à¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "addr %sயை à®šà¯‡à®°à¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "தà¯à®±à¯ˆ %s/%s à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "addr %s à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "தà¯à®±à¯ˆ %s/%s஠வினா à®Žà®´à¯à®ªà¯à®ª à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
++msgstr "addr %s஠வினா à®Žà®´à¯à®ªà¯à®ª à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "தà¯à®±à¯ˆ %s/%s஠மாறà¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "addr %s஠மாறà¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "தà¯à®±à¯ˆ %s/%s à®ªà®¾à®²à®¿à®šà®¿à®¯à®¿à®²à¯ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯, à®…ழிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "addr %s à®ªà®¾à®²à®¿à®šà®¿à®¯à®¿à®²à¯ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯, à®…ழிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "இடைமà¯à®•à®®à¯ %s à® à®…ழிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "addr %s à® à®…ழிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%sகà¯à®•à¯ à®…னà¯à®®à®¤à®¿ à®’பà¯à®ªà¯€à®Ÿà¯à®•à®³à¯ˆ à®…ழிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "தà¯à®±à¯ˆà®•à®³à¯ˆ à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à®¿à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "addrs à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à®¿à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -723,9 +713,8 @@ msgid "Could not delete interface %s"
+ msgstr "இடைமà¯à®•à®®à¯ %s à® à®…ழிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "இடைமà¯à®•à®®à¯ %s à® à®…ழிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -740,9 +729,9 @@ msgid "Context"
+ msgstr "சூழலà¯"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%sலின௠கோபà¯à®ªà¯ à®šà¯‚ழல௠à®à®±à¯à®•à®©à®µà¯‡ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
++msgstr "%sலின௠சமநிலை à®µà®•à¯à®ªà¯à®ªà¯ à®à®±à¯à®•à®©à®µà¯‡ à®‰à®³à¯à®³à®¤à¯"
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -750,9 +739,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "லினகà¯à®¸à¯ à®ªà®¯à®©à®°à¯ %s à®‡à®²à¯à®²à¯ˆ"
++msgstr "%sகà¯à®•à¯ à®šà®®à®¨à®¿à®²à¯ˆ à®µà®•à¯à®ªà¯à®ªà¯ à®‡à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -770,9 +759,8 @@ msgid "Could not set mls fields in file context for %s"
+ msgstr "%sகà¯à®•à¯ à®•à¯‹à®ªà¯à®ªà¯ à®šà¯‚ழலில௠mls à®ªà¯à®²à®™à¯à®•à®³à¯ˆ à®…மைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+ #: ../semanage/seobject.py:1707
+-#, fuzzy
+ msgid "Invalid file specification"
+-msgstr "கோபà¯à®ªà¯ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®²à¯"
++msgstr "தவறான à®•à¯‹à®ªà¯à®ªà¯ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®²à¯"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+@@ -832,12 +820,11 @@ msgid "Could not modify file context for %s"
+ msgstr "%sகà¯à®•à¯ à®•à¯‹à®ªà¯à®ªà¯ à®šà¯‚ழலை à®®à®¾à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+ msgstr "கோபà¯à®ªà¯ à®šà¯‚ழல௠படà¯à®Ÿà®¿à®¯à®²à®¿à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ."
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+ msgstr "%sகà¯à®•à¯ à®•à¯‹à®ªà¯à®ªà¯ à®šà¯‚ழலை à®…ழிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
+@@ -874,11 +861,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -897,14 +883,14 @@ msgid "Could not query file context %s"
+ msgstr "கோபà¯à®ªà¯ à®šà¯‚ழல௠%s஠வினா à®Žà®´à¯à®ªà¯à®ª à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "நீஙà¯à®•à®³à¯ à®’ர௠பெயரை à®‰à®³à¯à®³à®¿à®Ÿ à®µà¯‡à®£à¯à®Ÿà¯à®®à¯"
++msgstr "பினà¯à®µà®°à¯à®®à¯ à®®à®¤à®¿à®ªà¯à®ªà¯à®•à®³à®¿à®²à¯ à®à®¤à¯‡à®©à¯à®®à¯ à®’னà¯à®±à¯ˆ à®¨à¯€à®™à¯à®•à®³à¯ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿà®¾à®• à®µà¯‡à®£à¯à®Ÿà¯à®®à¯: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "பூலியன௠%s஠அழிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
++msgstr "பூலியன௠%sனà¯à®Ÿà¯ˆà®¯ à®®à®¤à®¿à®ªà¯à®ªà®¿à®©à¯ˆ à®šà¯†à®¯à®²à®¿à®²à¯ à®…மைகà¯à®• à®‡à®¯à®²à®¾à®¤à¯"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -914,7 +900,7 @@ msgstr "பூலியன௠%s஠மாறà¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "%s à®¤à®µà®±à®¾à®© à®®à¯à®±à¯ˆ: %s஠பதிவ௠செயà¯à®¯à®µà¯à®®à¯"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -932,33 +918,32 @@ msgstr "பூலியனà¯à®•à®³à¯ˆ à®ªà®Ÿà¯à®Ÿà®¿à®¯à®²à®¿à®Ÿ à®®à¯à®Ÿà®¿
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "தெரியாத"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "ஆஃபà¯"
+ #: ../semanage/seobject.py:2117
+-#, fuzzy
+ msgid "on"
+-msgstr "Cron"
++msgstr "ஆனà¯"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+ msgstr "SELinux à®ªà¯‚லியனà¯"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "நிலை"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "விளகà¯à®•à®®à¯"
+ #: ../newrole/newrole.c:201
+ #, c-format
+@@ -968,12 +953,12 @@ msgstr "PAM_TTY஠அமைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
++msgstr "பà¯à®¤à®¿à®¯ à®ªà®™à¯à®•à¯: à®šà¯‡à®µà¯ˆ à®ªà¯†à®¯à®°à¯ à®•à®Ÿà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ à®µà®´à®¿à®•à®¿à®±à®¤à¯\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
++msgstr "பà¯à®¤à®¿à®¯ à®ªà®™à¯à®•à¯:  %s:  à®•à¯‹à®Ÿà¯à®Ÿà®¿à®²à¯ à®ªà®¿à®´à¯ˆ %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+@@ -1078,7 +1063,7 @@ msgstr "பிழை: à®ªà®² à®¨à®¿à®²à¯ˆà®•à®³à¯ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ
+ #: ../newrole/newrole.c:865
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
++msgstr "பிழை: à®’ர௠பாதà¯à®•à®¾à®ªà¯à®ªà®¿à®²à¯à®²à®¾à®¤ à®®à¯à®©à¯ˆà®¯ à®®à®Ÿà¯à®Ÿà®™à¯à®•à®³à¯ˆ à®®à®¾à®±à¯à®± à®‰à®™à¯à®•à®³à¯à®•à¯à®•à¯ à®…னà¯à®®à®¤à®¿ à®‡à®²à¯à®²à¯ˆ \n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+@@ -1146,14 +1131,14 @@ msgid "failed to get old_context.\n"
+ msgstr "பழைய à®šà¯‚ழலை à®Žà®Ÿà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "பிழை!  tty à®µà®¿à®µà®°à®¤à¯à®¤à®¿à®©à¯ˆ à®Žà®Ÿà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.\n"
++msgstr "எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆ!  tty à®¤à®•à®µà®²à¯ˆ à®šà®°à®¿à®¯à®¾à®•à¯à®• à®‡à®¯à®²à®µà®¿à®²à¯à®²à¯ˆ.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr ""
++msgstr "PAM à®šà¯‡à®µà¯ˆ à®•à®Ÿà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà®¿à®©à¯ˆ à®µà®¾à®šà®¿à®ªà¯à®ªà®¤à®¿à®²à¯ à®ªà®¿à®´à¯ˆ.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+@@ -1195,19 +1180,20 @@ msgid "failed to exec shell\n"
+ msgstr "ஷெலà¯à®²à¯ˆ à®šà¯†à®¯à®²à¯à®ªà®Ÿà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+ msgstr "பயனà¯à®ªà®¾à®Ÿà¯:  %s [-q]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s:  à®ªà®¾à®²à®¿à®šà®¿ à®à®±à¯à®•à®©à®µà¯‡ à®à®±à¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®µà®¿à®Ÿà¯à®Ÿà®¤à¯ à®®à®±à¯à®±à¯à®®à¯ à®®à¯à®¤à®²à¯ à®à®±à¯à®±à®®à¯ à®¤à¯‡à®µà¯ˆà®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯ \n"
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:  à®ªà®¾à®²à®¿à®šà®¿à®¯à¯ˆ à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ:  %s\n"
++msgstr ""
++"%s:  à®ªà®¾à®²à®¿à®šà®¿à®¯à¯ˆ à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ à®®à®±à¯à®±à¯à®®à¯ à®µà®²à®¿à®¯à¯à®±à¯à®¤à¯à®¤à¯à®•à®¿à®± à®®à¯à®±à¯ˆà®®à¯ˆà®¯à¯ˆ à®•à¯‹à®°à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯: %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+@@ -1293,1156 +1279,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯ à®ªà®¿à®´à¯ˆ %s "
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "%s஠திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: MLS à®‡à®²à¯à®²à®¾ à®•à®£à®¿à®©à®¿à®•à®³à®¿à®²à¯ à®®à¯Šà®´à®¿à®ªà¯†à®¯à®°à¯à®ªà¯à®ªà®¿à®±à¯à®•à¯ à®¤à¯à®£à¯ˆ à®ªà¯à®°à®¿à®µà®¤à®¿à®²à¯à®²à¯ˆ"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "நிலை"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "மொழிபெயரà¯à®ªà¯à®ªà¯"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "மொழிபெயரà¯à®ªà¯à®ªà¯à®•à®³à¯ à®‡à®Ÿà¯ˆà®µà¯†à®³à®¿à®¯à¯ˆ à®•à¯Šà®£à¯à®Ÿà®¿à®°à¯à®•à¯à®•à®•à¯à®•à¯‚டாத௠'%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "தவறான à®¨à®¿à®²à¯ˆ '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s à®à®±à¯à®•à®©à®µà¯‡ à®®à¯Šà®´à®¿à®ªà¯†à®¯à®°à¯à®ªà¯à®ªà¯à®•à®³à®¿à®²à¯ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s à®®à¯Šà®´à®¿à®ªà¯†à®¯à®°à¯à®ªà¯à®ªà®¿à®²à¯ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "அனà¯à®®à®¤à®¿ à®’பà¯à®ªà¯€à®Ÿà¯ %sகà¯à®•à¯ à®à®±à¯à®•à®©à®µà¯‡ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux à®ªà®¯à®©à®°à¯ à®’பà¯à®ªà¯€à®Ÿà¯à®Ÿà¯ˆ à®šà¯‡à®°à¯à®¤à¯à®¤à®²à¯"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux à®ªà®¯à®©à®°à¯ %s à®à®±à¯à®•à®©à®µà¯‡ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "தà¯à®±à¯ˆ à®¤à¯‡à®µà¯ˆà®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "தà¯à®±à¯ˆ %s/%s à®à®±à¯à®•à®©à®µà¯‡ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "இடைமà¯à®•à®®à¯ %s à®à®±à¯à®•à®©à®µà¯‡ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "capabilityகளை à®¤à¯à®µà®•à¯à®•à¯à®µà®¤à®¿à®²à¯ à®ªà®¿à®´à¯ˆ, à®µà¯†à®³à®¿à®¯à¯‡à®±à¯à®•à®¿à®±à®¤à¯.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "செயலà¯à®¤à®¿à®±à®©à¯à®•à®³à¯ˆ à®…மைபà¯à®ªà®¤à®¿à®²à¯ à®ªà®¿à®´à¯ˆ, à®µà¯†à®³à®¿à®¯à¯‡à®±à¯à®•à®¿à®±à®¤à¯.\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS à®…மைபà¯à®ªà®¤à®¿à®²à¯ à®ªà®¿à®´à¯ˆ, à®µà¯†à®³à®¿à®¯à¯‡à®±à¯à®•à®¿à®±à®¤à¯\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "capabilityகளை à®µà®¿à®Ÿà¯à®µà®¤à®¿à®²à¯ à®ªà®¿à®´à¯ˆ, à®µà¯†à®³à®¿à®¯à¯‡à®±à¯à®•à®¿à®±à®¤à¯.\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "SETUID  à®¤à®¿à®±à®©à¯ˆ à®µà®¿à®Ÿà¯à®µà®¤à®¿à®²à¯ à®ªà®¿à®´à¯ˆ, à®µà¯†à®³à®¿à®¯à¯‡à®±à¯à®•à®¿à®±à®¤à¯\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "caps஠விடà¯à®µà®¤à®¿à®²à¯ à®ªà®¿à®´à¯ˆ\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "non-MLS à®•à®£à®¿à®©à®¿à®•à®³à®¿à®²à¯ à®®à¯Šà®´à®¿à®ªà¯†à®¯à®°à¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "பூலியனà¯"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#, fuzzy
+-#~ msgid "all"
+-#~ msgstr "அனைதà¯à®¤à¯"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "கோபà¯à®ªà¯ à®ªà¯†à®¯à®°à®¿à®Ÿà®²à¯"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "கோபà¯à®ªà¯\n"
+-#~ "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®²à¯"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "கோபà¯à®ªà¯ à®šà¯‚ழலà¯"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "கோபà¯à®ªà¯\n"
+-#~ "வகை"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "பயனர௠ஒபà¯à®ªà®¿à®Ÿà®²à¯"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "பà¯à®•à¯à®ªà®¤à®¿à®µà¯\n"
+-#~ "பெயரà¯"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "பயனரà¯"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS à®µà®°à¯ˆà®¯à®±à¯ˆ"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "பà¯à®•à¯à®ªà®¤à®¿à®µà¯ '%s' à®¤à¯‡à®µà¯ˆà®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Policy Module"
+-#~ msgstr "கொளà¯à®•à¯ˆ à®¤à¯Šà®•à¯à®¤à®¿"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Disable Audit"
+-#~ msgstr "Audit à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Enable Audit"
+-#~ msgstr "Audit஠செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "Load Policy Module"
+-#~ msgstr "கொளà¯à®•à¯ˆ à®¤à¯Šà®•à¯à®¤à®¿à®¯à¯ˆ à®à®±à¯à®±à®µà¯à®®à¯"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "translator-credits"
+-#~ msgstr "I. Felix <ifelix25@gmail.com>"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>பயனà¯à®ªà®¾à®Ÿà¯à®•à®³à¯</b>"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "User Application"
+-#~ msgstr "பயனர௠பயனà¯à®ªà®¾à®Ÿà¯"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>பயனரà¯à®•à®³à¯</b>"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#, fuzzy
+-#~ msgid "User Role"
+-#~ msgstr "பஙà¯à®•à¯"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#, fuzzy
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>பயனரà¯à®•à®³à¯</b>"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "ரூட௠பயனரà¯"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "பெயரà¯"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Executable"
+-#~ msgstr "இயஙà¯à®•à®•à¯à®•à¯‚டியதà¯"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Init script"
+-#~ msgstr "Init script"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP à®¤à¯à®±à¯ˆà®•à®³à¯</b>"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "அனைதà¯à®¤à¯"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ à®¤à¯à®±à¯ˆà®•à®³à¯ (>1024)"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "தà¯à®±à¯ˆà®•à®³à¯ˆ à®¤à¯‡à®°à¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP à®¤à¯à®±à¯ˆà®•à®³à¯</b>"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "தணிகà¯à®•à¯ˆ à®šà¯†à®¯à¯à®¤à®¿à®¯à¯ˆ à®…னà¯à®ªà¯à®ªà¯à®µà®¤à®¿à®²à¯ à®ªà®¿à®´à¯ˆ.\n"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Policy Directory"
+-#~ msgstr "கொளà¯à®•à¯ˆ à®…டைவà¯"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ à®•à¯Šà®³à¯à®•à¯ˆ à®•à¯‹à®ªà¯à®ªà¯à®•à®³à¯"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Boolean Name"
+-#~ msgstr "பூலியனà¯"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Role"
+-#~ msgstr "பஙà¯à®•à¯"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Application"
+-#~ msgstr "பயனà¯à®ªà®¾à®Ÿà¯"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "நீஙà¯à®•à®³à¯ à®’ர௠பெயரை à®‰à®³à¯à®³à®¿à®Ÿ à®µà¯‡à®£à¯à®Ÿà¯à®®à¯"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "நீஙà¯à®•à®³à¯ à®’ர௠பெயரை à®‰à®³à¯à®³à®¿à®Ÿ à®µà¯‡à®£à¯à®Ÿà¯à®®à¯"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "You must enter a executable"
+-#~ msgstr "நீஙà¯à®•à®³à¯ à®’ர௠இயகà¯à®•à®¤à¯à®¤à®•à¯à®•à®¤à¯à®¤à¯ˆ à®‰à®³à¯à®³à®¿à®Ÿ à®µà¯‡à®£à¯à®Ÿà¯à®®à¯"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux஠கடà¯à®Ÿà®®à¯ˆà®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "வகை enforcment à®•à¯‹à®ªà¯à®ªà¯"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "à®®à¯à®•à®ªà¯à®ªà¯ à®•à¯‹à®ªà¯à®ªà¯"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "கோபà¯à®ªà¯ à®šà¯‚ழலà¯à®•à®³à¯ à®•à¯‹à®ªà¯à®ªà¯"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "அமைவ௠உரை"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux à®¤à¯à®±à¯ˆ\n"
+-#~ "வகை"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "நெறிமà¯à®±à¯ˆ"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "நிலை"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "தà¯à®±à¯ˆ"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "தà¯à®±à¯ˆ à®Žà®£à¯ \"%s\" à®¤à®µà®±à®¾à®©à®¤à¯.  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "கà¯à®´à¯ à®ªà®¾à®°à¯à®µà¯ˆ"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux à®šà¯‡à®µà¯ˆ à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "நிரà¯à®µà®¾à®•à®®à¯"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "பயனர௠Privs"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "நினைவக à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "à®à®±à¯à®±à®®à¯"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "பிணைய à®•à®Ÿà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "தரவà¯à®¤à¯à®¤à®³à®™à¯à®•à®³à¯"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "இணைய à®ªà®¯à®©à¯à®ªà®¾à®Ÿà¯à®•à®³à¯"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "amandaகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "amavisகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "apmd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "arpwatch daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "auditd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "automount daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "avahiகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "bluetooth daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "canna daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "cardmgr daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "Cluster à®šà¯‡à®µà¯ˆà®¯à®•à®¤à¯à®¤à®¿à®±à¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ciped daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "clamd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "clamscanகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "clvmdகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "comsat daemon SELinuxகà¯à®•à¯ à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "courier daemon SELinuxகà¯à®•à¯ à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "cpucontrol daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "cpuspeed daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "அசà¯à®šà®Ÿà®¿à®¤à¯à®¤à®²à¯"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "cupsd backend à®šà¯‡à®µà¯ˆà®¯à®•à®¤à¯à®¤à®¿à®±à¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "cupsd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "cupsd_lpdகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "cvs daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "cyrus daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "dbskkd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "dbusd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "dccdகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "dccifdகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "dccmகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ddt daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "devfsd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "dhcpc daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "dhcpd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "dictd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "Evolutionகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "விளையாடà¯à®Ÿà¯à®•à®³à¯"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "விளையாடà¯à®Ÿà¯à®•à®³à¯à®•à¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "இணைய à®‰à®²à®¾à®µà®¿à®•à®³à¯à®•à¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "Thunderbirdகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "fetchmailகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "hal daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "உகநà¯à®¤à®µà¯ˆ"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "hostname daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "cups hplip daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "httpd rotatelogsகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD à®šà¯‡à®µà¯ˆ"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexecகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "inetd child daemonsகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ircd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "irqbalance daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "iscsi daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "jabberd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "kadmind daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "klogd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "krb5kdc daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ktalk daemonsகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "kudzu daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "locate daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "lpd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "lrrd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "lvm daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "mailmanகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "mdadm daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "monopd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "mrtg daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "mysqld daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "nagios daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "பெயர௠சேவை"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "named daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "nessusd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "NetworkManagerகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "nfsd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "சமà¯à®ªà®¾"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "nmbd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "nrpe daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "nscd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "nsd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ntpd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "oddjobகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "oddjob_mkhomedirகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "openvpn daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "pam daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "pegasusகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "perdition daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "portmap daemon à®•à¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "postfixகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "postgresql daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "pptpகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "prelink daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "privoxy daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ptal daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "pxe daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "pyzordகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "quota daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "radiusd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "radvd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "rdiscகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "readaheadகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "restorecondகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "rhgb daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ricciகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ricci_modclusterdகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "rlogind daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "rpcd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "rshdகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "rsync daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL à®…à®™à¯à®•à¯€à®•à®¾à®° à®šà¯‡à®µà¯ˆà®¯à®•à®®à¯"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "saslauthd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "scannerdaemon daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "sendmail daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "setransகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "setroublesoot daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "slapd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "slrnpull daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "smbd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "snmpd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "snort daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "soundd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "sound daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Spam Protection"
+-#~ msgstr "ஸà¯à®ªà¯‡à®®à¯ à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "spamd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "speedmgmt daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "squid daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ssh daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "உலகளாவிய SSL à®•à¯à®•à¯ˆ"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "stunnel daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "swat daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "sxid daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "syslogd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "system cron à®ªà®£à®¿à®•à¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "tcp daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "telnet daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "tftpd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "transproxy daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "udev daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "uml daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "updfstab daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "uptimed daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "uucpd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "vmware daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "watchdog daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "winbind daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "xdm daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "xen daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "xfs daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "xen constrolகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ypbind daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "NIS Password Daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ypserv daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "NIS Transfer Daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "%s '%s'஠அழிகà¯à®• à®µà¯‡à®£à¯à®Ÿà¯à®®à®¾?"
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
+-#~ msgid "Delete %s"
+-#~ msgstr "%s஠அழிகà¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
+-#~ msgid "Add %s"
+-#~ msgstr "%s஠சேரà¯à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
+-#~ msgid "Modify %s"
+-#~ msgstr "%s஠மாறà¯à®±à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
+-#~ msgid "Permissive"
+-#~ msgstr "à®à®±à¯à®•à®¤à¯à®¤à®•à¯à®•à®¤à¯"
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
+-#~ msgid "Enforcing"
+-#~ msgstr "கடà¯à®Ÿà®¾à®¯à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à¯"
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "காபà¯à®ªà¯à®°à®¿à®®à¯ˆ (c)2006 Red Hat, Inc.\n"
+-#~ "காபà¯à®ªà¯à®°à®¿à®®à¯ˆ (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux à®ªà¯à®•à¯à®ªà®¤à®¿à®µà¯ à®’பà¯à®ªà¯€à®Ÿà¯à®Ÿà¯ˆ à®šà¯‡à®°à¯à®¤à¯à®¤à®²à¯"
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux à®ªà®¿à®£à¯ˆà®¯ à®¤à¯à®±à¯ˆà®•à®³à¯ˆ à®šà¯‡à®°à¯à®¤à¯à®¤à®²à¯"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux à®µà®•à¯ˆ"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "நிலை"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "File Specification"
+-#~ msgstr "கோபà¯à®ªà¯ à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®²à¯"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "File Type"
+-#~ msgstr "கோபà¯à®ªà¯ à®µà®•à¯ˆ"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "அனைதà¯à®¤à¯ à®•à¯‹à®ªà¯à®ªà¯à®•à®³à¯\n"
+-#~ "இயலà¯à®ªà®¾à®© à®•à¯‹à®ªà¯à®ªà¯\n"
+-#~ "அடைவà¯\n"
+-#~ "எழà¯à®¤à¯à®¤à¯ à®šà®¾à®¤à®©à®®à¯\n"
+-#~ "தடà¯à®ªà¯à®ªà¯ à®šà®¾à®¤à®©à®®à¯\n"
+-#~ "சாகà¯à®•à¯†à®Ÿà¯\n"
+-#~ "கà¯à®±à®¿à®¯à¯€à®Ÿà¯ à®‡à®£à¯ˆà®ªà¯à®ªà¯\n"
+-#~ "பெயரிடபà¯à®ªà®Ÿà¯à®Ÿ à®ªà¯ˆà®ªà¯\n"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux à®ªà®¯à®©à®°à¯ à®šà¯‡à®°à¯à®¤à¯à®¤à®²à¯"
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux à®¨à®¿à®°à¯à®µà®¾à®•à®®à¯"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid "Add"
+-#~ msgstr "சேரà¯à®¤à¯à®¤à®²à¯"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "_Properties"
+-#~ msgstr "பணà¯à®ªà¯à®•à®³à¯ (_P)"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid "_Delete"
+-#~ msgstr "அழிதà¯à®¤à®²à¯ (_D)"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "Select Management Object"
+-#~ msgstr "மேலாணà¯à®®à¯ˆ à®ªà¯Šà®°à¯à®³à¯ˆ à®¤à¯‡à®°à¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤à®²à¯:</b>"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "கணினி à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ à®•à®Ÿà¯à®Ÿà®¾à®¯à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à¯ à®®à¯à®±à¯ˆ"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "நடபà¯à®ªà¯ à®•à®Ÿà¯à®Ÿà®¾à®¯à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®®à¯ à®®à¯à®±à¯ˆ"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "கணினி à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ à®•à¯Šà®³à¯à®•à¯ˆ à®µà®•à¯ˆ:"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "அடà¯à®¤à¯à®¤ à®®à®±à¯à®¤à¯à®µà®•à¯à®•à®¤à¯à®¤à®¿à®²à¯ à®®à®±à¯ à®ªà¯†à®¯à®°à®¿à®Ÿà®µà¯à®®à¯."
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "label37"
+-#~ msgstr "label37"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "வடிபà¯à®ªà®¿"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "label50"
+-#~ msgstr "label50"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "கோபà¯à®ªà¯ à®šà¯‚ழலை à®šà¯‡à®°à¯à®¤à¯à®¤à®²à¯"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "கோபà¯à®ªà¯ à®šà¯‚ழலை à®®à®¾à®±à¯à®±à®µà¯à®®à¯"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "கோபà¯à®ªà¯ à®šà¯‚ழலை à®…ழிகà¯à®•à®µà¯à®®à¯"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "label38"
+-#~ msgstr "label38"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux à®ªà®¯à®©à®°à¯ à®’பà¯à®ªà¯€à®Ÿà¯à®Ÿà¯ˆ à®šà¯‡à®°à¯à®¤à¯à®¤à®²à¯"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux à®ªà®¯à®©à®°à¯ à®’பà¯à®ªà¯€à®Ÿà¯à®Ÿà¯ˆ à®®à®¾à®±à¯à®±à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux à®ªà®¯à®©à®°à¯ à®’பà¯à®ªà¯€à®Ÿà¯à®Ÿà¯ˆ à®…ழிகà¯à®•à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "label39"
+-#~ msgstr "label39"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "மொழிபெயரà¯à®ªà¯à®ªà¯ˆ à®šà¯‡à®°à¯à®¤à¯à®¤à®²à¯"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "மொழிபெயரà¯à®ªà¯à®ªà¯ˆ à®®à®¾à®±à¯à®±à¯à®¤à®²à¯"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "மொழிபெயரà¯à®ªà¯à®ªà¯ˆ à®…ழிதà¯à®¤à®²à¯"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "label41"
+-#~ msgstr "label41"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux à®ªà®¯à®©à®°à¯ˆ à®®à®¾à®±à¯à®±à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "label40"
+-#~ msgstr "label40"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "பிணைய à®¤à¯à®±à¯ˆà®¯à¯ˆ à®šà¯‡à®°à¯à®¤à¯à®¤à®²à¯"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "பிணைய à®¤à¯à®±à¯ˆà®¯à¯ˆ à®¤à®¿à®°à¯à®¤à¯à®¤à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "பிணைய à®¤à¯à®±à¯ˆà®¯à¯ˆ à®…ழிகà¯à®•à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "label42"
+-#~ msgstr "label42"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "பà¯à®¤à®¿à®¯ à®•à¯Šà®³à¯à®•à¯ˆ à®¤à¯Šà®•à¯à®¤à®¿à®¯à¯ˆ à®‰à®°à¯à®µà®¾à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "கொளà¯à®•à¯ˆ à®¤à¯Šà®•à¯à®¤à®¿à®¯à¯ˆ à®à®±à¯à®±à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "à®à®±à¯à®±à®•à¯à®•à¯‚டிய à®•à¯Šà®³à¯à®•à¯ˆ à®¤à¯Šà®•à¯à®¤à®¿à®¯à¯ˆ à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "label44"
+-#~ msgstr "label44"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "உணரà¯à®µà¯à®³à¯à®³ à®¨à®¿à®²à¯ˆ"
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux à®ªà®¯à®©à®°à¯ '%s' à®¤à¯‡à®µà¯ˆà®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "மதிபà¯à®ªà¯ à®¤à¯‡à®µà¯ˆà®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid "label25"
+-#~ msgstr "label25"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "label26"
+-#~ msgstr "label26"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "label28"
+-#~ msgstr "label28"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid "label30"
+-#~ msgstr "label30"
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "label31"
+-#~ msgstr "label31"
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "label32"
+-#~ msgstr "label32"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "label33"
+-#~ msgstr "label33"
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà®¾à®¤ à®¤à¯à®±à¯ˆà®•à®³à¯  (> 1024)"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "label34"
+-#~ msgstr "label34"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "label35"
+-#~ msgstr "label35"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#, fuzzy
+-#~ msgid "label51"
+-#~ msgstr "label25"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "கடà¯à®Ÿà®¾à®¯à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à¯\n"
+-#~ "à®à®±à¯à®•à®¤à¯à®¤à®•à¯à®•à®¤à¯\n"
+-#~ "செயலà¯à®¨à¯€à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯\n"
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "value"
+-#~ msgstr "மதிபà¯à®ªà¯"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid "Other"
+-#~ msgstr "வேறà¯"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "XWindows Login User"
+-#~ msgstr "XWindows à®ªà¯à®•à¯à®ªà®¤à®¿à®µà¯ à®ªà®¯à®©à®°à¯"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "Terminal Login User"
+-#~ msgstr "à®®à¯à®©à¯ˆà®¯ à®ªà¯à®•à¯à®ªà®¤à®¿à®µà¯ à®ªà®¯à®©à®°à¯"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Files and Directories"
+-#~ msgstr "கோபà¯à®ªà¯à®•à®³à¯ à®®à®±à¯à®±à¯à®®à¯ à®…டைவà¯à®•à®³à¯"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Login"
+-#~ msgstr "பà¯à®•à¯à®ªà®¤à®¿à®µà¯"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid "FTP"
+-#~ msgstr "FTP"
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "Zebra"
+-#~ msgstr "Zebra"
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ftpd daemon"
+-#~ msgstr "ftpd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd daemon"
+-#~ msgstr "httpd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pppd daemon"
+-#~ msgstr "pppd daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the mozilla ppp daemon"
+-#~ msgstr "mozilla ppp daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "Spam Assassin"
+-#~ msgstr "Spam Assassin"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid "Disable SELinux protection for zebra daemon"
+-#~ msgstr "zebra daemonகà¯à®•à¯ SELinux à®ªà®¾à®¤à¯à®•à®¾à®ªà¯à®ªà¯ˆ à®šà¯†à®¯à®²à¯à®¨à¯€à®•à¯à®•à®µà¯à®®à¯"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid "Label Prefix"
+-#~ msgstr "à®®à¯à®©à¯à®©à¯Šà®Ÿà¯à®Ÿà¯ à®ªà¯†à®¯à®°à¯"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid "MLS/MCS Level"
+-#~ msgstr "MLS/MCS à®¨à®¿à®²à¯ˆ"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid ""
+-#~ "Labeling\n"
+-#~ "Prefix"
+-#~ msgstr ""
+-#~ "பெயரிடலà¯\n"
+-#~ "à®®à¯à®©à¯à®©à¯Šà®Ÿà¯à®Ÿà¯"
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Level"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS à®¨à®¿à®²à¯ˆ"
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/te.po b/policycoreutils/po/te.po
+index 88bba49..4db86dc 100644
+--- a/policycoreutils/po/te.po
++++ b/policycoreutils/po/te.po
+@@ -1,28 +1,23 @@
+-# translation of new_policycoreutils.HEAD.te.po to Telugu
++# SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ #
+-# Krishna Babu K <kkrothap@redhat.com>, 2008.
++# Translators:
++# Krishna Babu K <kkrothap@redhat.com>, 2008, 2009, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: new_policycoreutils.HEAD.te\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-03-24 13:20+0530\n"
+-"Last-Translator: Krishna Babu K <kkrothap@redhat.com>\n"
+-"Language-Team: Telugu <en@li.org>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Telugu (http://www.transifex.net/projects/p/fedora/language/"
++"te/)\n"
+ "Language: te\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
+-"\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -117,9 +112,8 @@ msgid "Could not establish semanage connection"
+ msgstr "semanage à°…à°¨à±à°¸à°‚ధానంనౠఎరà±à°ªà°°à°šà°²à±‡à°• à°ªà±‹à°¯à°¿à°‚ది."
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "%s à°•à±Šà°°à°•à± MLS à°¸à±à°¥à°¾à°¯à°¿à°¨à°¿ à°…మరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "MLS à°šà±‡à°¤à°¨à°®à±ˆà°¨ à°¸à±à°¥à°¿à°¤à°¿à°¨à°¿ à°ªà°°à°¿à°¶à±€à°²à°¿à°‚చలేక à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -127,36 +121,33 @@ msgstr "ఇంకా à°®à±†à°°à±à°—à±à°ªà°°à°š à°²à±‡à°¦à±"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage à°µà±à°¯à°µà°¹à°¾à°°à°®à± à°¯à°¿à°ªà±à°ªà°Ÿà°¿à°•à±‡ à°ªà±à°°à±‹à°—తినందౠవà±à°¨à±à°¨à°¦à°¿"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+ msgstr "semanage à°µà±à°¯à°µà°¹à°¾à°°à°¾à°¨à±à°¨à°¿ à°ªà±à°°à°¾à°°à°‚à°­à°¿à°‚à°š à°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "semanage à°µà±à°¯à°µà°¹à°¾à°°à°¾à°¨à±à°¨à°¿ à°ªà±à°°à°¾à°°à°‚à°­à°¿à°‚à°š à°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "semanage à°µà±à°¯à°µà°¹à°¾à°°à°¾à°¨à±à°¨à°¿ à°…à°ªà±à°ªà°—à°¿à°‚à°š(commit)లేక à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage à°µà±à°¯à°µà°¹à°¾à°°à°®à± à°ªà±à°°à±‹à°—తినందౠలేదà±"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారà±à°²à°¨à± à°œà°¾à°¬à°¿à°¤à°¾ à°šà±‡à°¯à°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "SELinux à°®à°¾à°¡à±à°¯à±‚à°²à±à°¸à±à°¨à± à°œà°¾à°¬à°¿à°¤à°¾ à°šà±‡à°¯à°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "మాడà±à°¯à±‚లౠనామమà±"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "వరà±à°·à°¨à±"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "అచేతనమైన"
+@@ -166,9 +157,9 @@ msgid "Could not disable module %s (remove failed)"
+ msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "పాతà±à°° %s à°¨à± %s à°•à±Šà°°à°•à± à°œà°¤à°šà±‡à°¯ à°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr ""
+ #: ../semanage/seobject.py:348
+ #, python-format
+@@ -180,24 +171,22 @@ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "à°…à°¨à±à°®à°¤à°¿à°—à°²"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "à°…à°¨à±à°®à°¤à°¿à°—à°²"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "à°…à°¨à±à°®à°¤à°¿à°—à°² à°¡à±Šà°®à±ˆà°¨à± %sనౠఅమరà±à°šà°²à±‡à°• à°ªà±‹à°¯à°¿à°‚ది (మాడà±à°¯à±‚లౠసంసà±à°¥à°¾à°ªà°¨ à°µà°¿à°«à°²à°®à±ˆà°‚ది)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "à°…à°¨à±à°®à°¤à°¿à°—à°² à°¡à±Šà°®à±ˆà°¨à± %sనౠతొలగించలేక à°ªà±‹à°¯à°¿à°‚ది (తొలగింపౠవిఫలమైంది)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -217,9 +206,9 @@ msgid "Could not check if login mapping for %s is defined"
+ msgstr "%s à°•à±Šà°°à°•à± à°²à°¾à°—ినౠమాపింగౠనిరà±à°µà°šà°¿à°‚చబడివà±à°‚టే à°ªà°°à°¿à°¶à±€à°²à°¿à°‚à°šà°•à±à°‚à°¡à°¾ à°‰à°‚డేది"
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "లినకà±à°¸à±â€ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి %s à°²à±‡à°¡à±"
++msgstr "లినకà±à°¸à±â€ à°¸à°®à±‚హమౠ%s à°²à±‡à°¦à±"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -286,15 +275,20 @@ msgid "Could not list login mappings"
+ msgstr "లాగినౠమాపింగà±à°¸à±â€â€Œà°¨à± à°œà°¾à°¬à°¿à°¤à°¾ à°šà±‡à°¯à°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "లాగినౠనామమà±"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS à°µà±à°¯à°¾à°ªà±à°¤à°¿"
+@@ -312,9 +306,9 @@ msgid "Could not query user for %s"
+ msgstr "%s à°•à±Šà°°à°•à± à°µà°¿à°¨à°¿à°¯à±‹à°—దారిని à°•à±à°µà°°à±€ à°šà±‡à°¯à°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "%s à°•à±Šà°°à°•à± à°¦à°¸à±à°¤à±à°°à°®à± à°¸à°‚దరà±à°­à°‚నౠజతచేయలేకపోయింది"
++msgstr "%s à°•à±Šà°°à°•à± à°®à±€à°°à± à°•à°¨à±€à°¸à°®à± à°µà±Šà°• à°ªà°¾à°¤à±à°°à°¨à± à°œà°¤à°šà±‡à°¯à°µà°²à±†à°¨à±"
+ #: ../semanage/seobject.py:737
+ #, python-format
+@@ -404,6 +398,7 @@ msgid "MCS Range"
+ msgstr "MCS à°µà±à°¯à°¾à°ªà±à°¤à°¿"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux à°ªà°¾à°¤à±à°°à°²à±"
+@@ -416,9 +411,8 @@ msgid "Port is required"
+ msgstr "పోరà±à°Ÿà±â€ à°…వసరమà±"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "సరికాని à°ªà±à°°à°¿à°«à°¿à°•à±à°¸à±â€ %s"
++msgstr ""
+ #: ../semanage/seobject.py:979
+ #, python-format
+@@ -535,18 +529,17 @@ msgstr "SELinux à°ªà±‹à°°à±à°Ÿà±â€ à°°à°•à°®à±"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "పోరà±à°Ÿà±â€ à°¸à°‚à°–à±à°¯"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "పోరà±à°Ÿà±â€ à°…వసరమà±"
++msgstr "నోడౠచిరà±à°¨à°¾à°®à°¾ à°…వసరమైనది"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "తెలియని à°²à±‡à°¦à°¾ à°¤à°ªà±à°ªà°¿à°ªà±‹à°¯à°¿à°¨ à°¨à°¿à°­à°‚దన"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -563,14 +556,14 @@ msgstr "%s à°•à±Šà°°à°•à± à°•à±€à°¨à± à°¸à±ƒà°·à±à°Ÿà°¿à°‚చలేకపో
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "పోరà±à°Ÿà±â€ %s/%s à°¨à°¿à°°à±à°µà°šà°¿à°‚à°šà°¿à°µà±à°‚టే à°ªà°°à°¿à°¶à±€à°²à°¿à°‚à°šà°•à±à°‚à°¡à°¾ à°‰à°‚డేది"
++msgstr "%s à°šà°¿à°°à±à°¨à°¾à°®à°¾ à°¨à°¿à°°à±à°µà°šà°¿à°‚చబడివà±à°‚టే à°ªà°°à°¿à°¶à±€à°²à°¿à°‚చలేక à°ªà±‹à°¯à±‡à°¦à°¿"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "%s à°•à±Šà°°à°•à± à°•à±€à°¨à± à°¸à±ƒà°·à±à°Ÿà°¿à°‚చలేకపోయింది"
++msgstr "%s à°•à±Šà°°à°•à± à°šà°¿à°°à±à°¨à°¾à°®à°¾à°¨à± à°¸à±ƒà°·à±à°Ÿà°¿à°‚చలేకపోయింది"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+@@ -579,74 +572,72 @@ msgid "Could not create context for %s"
+ msgstr "%s à°•à±Šà°°à°•à± à°¸à°‚దరà±à°­à°‚నౠసృషà±à°Ÿà°¿à°‚చలేకపోయింది"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "%s à°•à±Šà°°à°•à± à°¨à°¾à°®à°®à±à°¨à± à°…మరà±à°šà°²à±‡à°• à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "%s à°•à±Šà°°à°•à± à°¤à±Šà°¡à±à°—à±(మాసà±à°•à±)నౠఅమరà±à°šà°²à±‡à°• à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "%s à°•à±Šà°°à°•à± à°¦à°¸à±à°¤à±à°° à°¸à°‚దరà±à°­à°‚నందౠవినియోగదారిని à°…మరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "%s à°•à±Šà°°à°•à± à°šà°¿à°°à±à°¨à°¾à°®à°¾ à°¸à°‚దరà±à°­à°‚నందౠవినియోగదారిని à°…మరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "%s à°•à±Šà°°à°•à± à°¦à°¸à±à°¤à±à°° à°¸à°‚దరà±à°­à°‚నందౠపాతà±à°°à°¨à± à°…మరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "%s à°•à±Šà°°à°•à± à°šà°¿à°°à±à°¨à°¾à°®à°¾ à°¸à°‚దరà±à°­à°‚నందౠపాతà±à°°à°¨à± à°…మరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "%s à°•à±Šà°°à°•à± à°¦à°¸à±à°¤à±à°° à°¸à°‚దరà±à°­à°‚నందౠరకమà±à°¨à± à°…మరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "%s à°•à±Šà°°à°•à± à°šà°¿à°°à±à°¨à°¾à°®à°¾ à°¸à°‚దరà±à°­à°‚నందౠరకమà±à°¨à± à°…మరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "%s à°•à±Šà°°à°•à± à°¦à°¸à±à°¤à±à°° à°¸à°‚దరà±à°­à°‚నందౠmls à°•à±à°·à±‡à°¤à±à°°à°¾à°²à°¨à± à°…మరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "%s à°•à±Šà°°à°•à± à°šà°¿à°°à±à°¨à°¾à°®à°¾ à°¸à°‚దరà±à°­à°‚నందౠmls à°•à±à°·à±‡à°¤à±à°°à°¾à°²à°¨à± à°…మరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "%s à°•à±Šà°°à°•à± à°¦à°¸à±à°¤à±à°°à°®à± à°¸à°‚దరà±à°­à°‚నౠఅమరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "%s à°•à±Šà°°à°•à± à°šà°¿à°°à±à°¨à°¾à°®à°¾ à°¸à°‚దరà±à°­à°‚నౠఅమరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "పోరà±à°Ÿà±â€ %s/%s à°¨à± à°œà°¤à°šà±‡à°¯à°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "à°šà°¿à°°à±à°¨à°¾à°®à°¾ %s à°œà°¤à°šà±‡à°¯à°²à±‡à°• à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "పోరà±à°Ÿà±â€ %s/%s à°¨à°¿à°°à±à°µà°šà°¿à°‚చబడిలేదà±"
++msgstr "à°šà°¿à°°à±à°¨à°¾à°®à°¾ %s à°¨à°¿à°°à±à°µà°šà°¿à°‚చబడిలేదà±"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "పోరà±à°Ÿà±â€ %s/%s à°¨à± à°•à±à°µà°°à±€ à°šà±‡à°¯à°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "à°šà°¿à°°à±à°¨à°¾à°®à°¾ %sనౠకà±à°µà°°à±€à°šà±‡à°¯à°²à±‡à°• à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "పోరà±à°Ÿà±â€ %s/%s à°¨à± à°¸à°µà°°à°¿à°‚చలేకపోయింది"
++msgstr "à°šà°¿à°°à±à°¨à°¾à°®à°¾ %sనౠసవరించలేక à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "పోరà±à°Ÿà±â€ %s/%s à°µà°¿à°§à°¾à°¨à°‚ à°¨à°‚దౠనిరà±à°µà°šà°¿à°‚చబడింది, à°¤à±Šà°²à°—ింపబడలేదà±"
++msgstr "విధానం à°¨à°‚దౠనిరà±à°µà°šà°¿à°‚చబడిన à°šà°¿à°°à±à°¨à°¾à°®à°¾ %s, à°¤à±Šà°²à°—ింపబడలేదà±"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "%s à°¨à± à°¤à±Šà°²à°—ించలేకపోయింది"
++msgstr "à°šà°¿à°°à±à°¨à°¾à°®à°¾ %sనౠతొలగించలేక à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "%s à°•à± à°²à°¾à°—ినౠమాపింగà±â€Œà°¨à± à°¤à±Šà°²à°—ించలేక à°ªà±‹à°¯à°¿à°‚ది"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "పోరà±à°Ÿà±à°¸à±â€ à°¨à± à°œà°¾à°¬à°¿à°¤à°¾à°šà±‡à°¯à°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
++msgstr "à°šà°¿à°°à±à°¨à°¾à°®à°¾à°²à°¨à± à°œà°¾à°¬à°¿à°¤à°¾ à°šà±‡à°¯à°²à±‡à°• à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -720,9 +711,8 @@ msgid "Could not delete interface %s"
+ msgstr "అంతరà±â€Œà°«à°²à°•à°‚ %s à°¨à± à°¤à±Šà°²à°—ించలేకపోయింది"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "అంతరà±â€Œà°«à°²à°•à°‚ %s à°¨à± à°¤à±Šà°²à°—ించలేకపోయింది"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -737,9 +727,9 @@ msgid "Context"
+ msgstr "సందరà±à°­à°®à±"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s à°•à±Šà°°à°•à± à°¦à°¸à±à°¤à±à°° à°¸à°‚దరà±à°­à°‚ à°‡à°ªà±à°ªà°Ÿà°¿à°•à±‡ à°¨à°¿à°°à±à°µà°šà°¿à°‚చబడివà±à°‚ది"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -747,9 +737,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "లినకà±à°¸à±â€ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి %s à°²à±‡à°¡à±"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -869,11 +859,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -892,14 +881,14 @@ msgid "Could not query file context %s"
+ msgstr "దసà±à°¤à±à°°à°®à± à°¸à°‚దరà±à°­à°‚ %s à°¨à± à°•à±à°µà°°à±€ à°šà±‡à°¯à°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "మీరౠతపà±à°ªà°• à°’à°• à°µà°¿à°²à±à°µà°¨à± à°¤à±†à°²à±à°ªà°µà°²à±†à°¨à±"
++msgstr "ఈకà±à°°à°¿à°‚ది à°µà°¿à°²à±à°µà°²à°²à±‹ à°µà±Šà°•à°¦à°¾à°¨à°¿à°¨à°¿ à°®à±€à°°à± à°¤à°ªà±à°ªà°• à°¤à±†à°²à±à°ªà°µà°²à±†à°¨à±: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "బూలియనౠ%s à°¤à±Šà°²à°—ింపలేకపోయింది"
++msgstr "బూలియనౠ%s à°¯à±Šà°•à±à°• à°•à±à°°à°¿à°¯à°¾à°¶à±€à°² à°µà°¿à°²à±à°µà°¨à± à°…మరà±à°šà°²à±‡à°• à°ªà±‹à°¯à°¿à°‚ది"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+@@ -909,7 +898,7 @@ msgstr "బూలియనౠ%s à°¨à± à°¸à°µà°°à°¿à°‚చలేకపోయి
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "చెడà±à°¡ à°°à±‚పీకరణం %s: à°°à°¿à°•à°¾à°°à±à°¡à± %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+@@ -942,15 +931,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux à°¬à±‚లియనà±"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "à°¸à±à°¥à°¿à°¤à°¿"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "వివరణ"
+@@ -1287,1718 +1276,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "à°à°šà±à°šà°¿à°•à°®à±à°² à°¦à±‹à°·à°®à± %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "%s à°¨à± à°¤à±†à°°à±à°µà°²à±‡à°• à°ªà±‹à°¯à°¿à°‚ది: à°…à°¨à±à°µà°¾à°¦à°®à±à°²à± non-MLS à°®à°¿à°·à°¨à±à°¸à±â€ à°ªà±ˆà°¨ à°®à°¦à±à°¦à°¤à±€à°¯à°¬à°¡à±à°µà±:%s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "à°¸à±à°¥à°¾à°¯à°¿"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "à°…à°¨à±à°µà°¾à°¦à°®à±"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "à°…à°¨à±à°µà°¾à°¦à°®à±à°²à± à°–ాళీలౠ'%s' à°¨à± à°•à°²à°¿à°—à°¿ à°‰à°‚డలేవà±"
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "సరికాని à°¸à±à°¥à°¾à°¯à°¿ '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s à°‡à°ªà±à°ªà°Ÿà°¿à°•à±‡ à°…à°¨à±à°µà°¾à°¦à°®à±à°²à°¨à°‚దౠనిరà±à°µà°šà°¿à°‚చబడినది"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "à°…à°¨à±à°µà°¾à°¦à°®à±à°²à°¨à°‚దౠ%s à°¨à°¿à°°à±à°µà°šà°¿à°‚చబడలేదà±"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s à°•à±Šà°°à°•à± à°²à°¾à°—ినౠమాపింగౠఇపà±à°ªà°Ÿà°¿à°•à±‡ à°¨à°¿à°°à±à°µà°šà°¿à°‚చబడివà±à°‚ది"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°®à°¾à°ªà°¿à°‚à°—à±â€Œà°¨à± à°œà°¤à°šà±‡à°¯à°¿"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి %s à°‡à°ªà±à°ªà°Ÿà°¿à°•à±‡ à°¨à°¿à°°à±à°µà°šà°¿à°‚చబడివà±à°‚ది"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "పోరà±à°Ÿà±â€ à°…వసరమà±"
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "పోరà±à°Ÿà±â€ %s/%s à°‡à°ªà±à°ªà°Ÿà°¿à°•à±‡ à°¨à°¿à°°à±à°µà°šà°¿à°‚చబడివà±à°‚ది"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "అంతరà±â€Œà°«à°²à°•à°‚ %s à°‡à°ªà±à°ªà°Ÿà°¿à°•à±‡ à°¨à°¿à°°à±à°µà°šà°¿à°‚చబడివà±à°‚ది"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "సామరà±à°§à±à°¯à°¾à°²à°¨à± à°¸à°¿à°¦à±à°¦à°®à±à°šà±‡à°¯à±à°Ÿà°²à±‹ à°¦à±‹à°·à°®à±, à°¬à°¹à°¿à°·à±à°•à°°à°¿à°¸à±à°¤à±‹à°‚ది.\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "సామరà±à°§à±à°¯à°¾à°²à°¨à± à°…మరà±à°šà±à°Ÿà°²à±‹ à°¦à±‹à°·à°®à±, à°¬à°¹à°¿à°·à±à°•à°°à°¿à°¸à±à°¤à±‹à°‚ది\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "KEEPCAPS à°¨à± à°…మరà±à°šà±à°Ÿà°²à±‹ à°¦à±‹à°·à°®à±, à°¬à°¹à°¿à°·à±à°•à°°à°¿à°¸à±à°¤à±‹à°‚ది\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "సామరà±à°§à±à°¯à°¾à°²à°¨à± à°µà°¦à±à°²à±à°Ÿà°²à±‹ à°¦à±‹à°·à°®à±, à°¬à°¹à°¿à°·à±à°•à°°à°¿à°¸à±à°¤à±‹à°‚ది\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "SETUID à°¸à°¾à°®à°°à±à°§à±à°¯à°‚ à°µà°¦à±à°²à±à°Ÿà°²à±‹ à°¦à±‹à°·à°®à±, à°¬à°¹à°¿à°·à±à°•à°°à°¿à°¸à±à°¤à±‹à°‚ది\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "కాపà±à°¸à±â€â€Œà°¨à± à°–ాళీ à°šà±‡à°¯à±à°Ÿà°²à±‹ à°¦à±‹à°·à°®à±\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "non-MLS à°®à°¿à°·à°¨à±à°¸à±â€ à°ªà±ˆà°¨ à°…à°¨à±à°µà°¾à°¦à°®à±à°²à± à°®à°¦à±à°¦à°¤à±€à°¯à°¬à°¡à°µà±"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "బూలియనà±"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "à°…à°¨à±à°¨à°¿"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "మలచà±à°•à±Šà°¨à°¿à°¨"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "దసà±à°¤à±à°°à°®à± à°²à±‡à°¬à±à°²à°¿à°‚à°—à±"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "దసà±à°¤à±à°°à°®à±\n"
+-#~ "విశదీకరణమà±"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "దసà±à°¤à±à°°à°®à± à°°à°•à°®à±"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "దసà±à°¤à±à°°à°®à±\n"
+-#~ "à°°à°•à°®à±"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "వినియోగదారి à°®à°¾à°ªà°¿à°‚à°—à±"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "లాగినà±\n"
+-#~ "నామమà±"
+-
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "వినియోగదారి"
+-
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS à°µà±à°¯à°¾à°ªà±à°¤à°¿"
+-
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "లాగినౠ'%s' à°…వసరమà±"
+-
+-#~ msgid "Policy Module"
+-#~ msgstr "విధానం à°®à°¾à°¡à±à°¯à±‚à°²à±"
+-
+-#~ msgid "Disable Audit"
+-#~ msgstr "ఆడిటౠఅచేతనంచేయà±à°®à±"
+-
+-#~ msgid "Enable Audit"
+-#~ msgstr "ఆడిటౠచేతనంచేయి"
+-
+-#~ msgid "Load Policy Module"
+-#~ msgstr "విధానం à°®à°¾à°¡à±à°¯à±‚à°²à±â€Œà°¨à± à°¨à°¿à°‚à°ªà±à°®à±"
+-
+-#~ msgid "Polgen"
+-#~ msgstr "పోలà±à°—ెనà±"
+-
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
+-
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr "కృషà±à°£à°¬à°¾à°¬à± <kkrothap@redhat.com> 2008"
+-
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux à°ªà°¾à°²à°¸à°¿ à°‰à°¦à±à°­à°µà°¨ à°¸à°¾à°§à°¨à°‚"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారà±à°²à°¨à± à°²à±‡à°¦à°¾ à°…à°¨à±à°µà°°à±à°¤à°¨à°¾à°²à°¨à± à°ªà°°à°¿à°®à°¿à°¤à°‚ à°šà±‡à°¯à±à°Ÿà°•à±, à°ˆ à°¸à°¾à°§à°¨à°‚ à°µà°¿à°§à°¾à°¨à°‚ à°«à±à°°à±‡à°®à±â€Œà°µà°°à±à°•à±â€ "
+-#~ "ఉదà±à°­à°µà°¿à°‚పచేయà±à°Ÿà°•à± à°‰à°ªà°¯à±‹à°—ించగలమà±.   \n"
+-#~ "\n"
+-#~ "à°† à°¸à°¾à°§à°¨à°‚ à°‰à°¦à±à°­à°µà°¿à°‚పచేసà±à°¤à±à°‚ది:\n"
+-#~ "టైపౠఎనà±à°«à±‹à°°à±à°¸à±â€â€Œà°®à±†à°‚టౠదసà±à°¤à±à°°à°®à± (te)\n"
+-#~ "ఇంటరà±à°«à±‡à°¸à± à°«à±ˆà°²à± (if)\n"
+-#~ "ఫైలౠకాంటెకà±à°¸à±à°Ÿà±â€ à°¦à°¸à±à°¤à±à°°à°®à± (fc)\n"
+-#~ "షెలౠసà±à°•à±à°°à°¿à°ªà±à°Ÿà±â€ (sh) - à°¨à°¿à°°à±à°µà°°à±à°¤à°¿à°‚à°šà±à°Ÿà°•à± à°®à°°à°¿à°¯à± à°¸à°‚à°¸à±à°¥à°¾à°ªà°¿à°‚à°šà±à°Ÿà°•à± à°‰à°ªà°¯à±‹à°—పడà±à°¤à±à°‚à°¦ ."
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "పరిమితం à°šà±‡à°¯à±à°Ÿà°•à± à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°ªà°¾à°¤à±à°° à°¯à±Šà°•à±à°• à°°à°•à°®à±à°¨à± à°Žà°‚పికచేయà±à°®à±"
+-
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>à°…à°¨à±à°µà°°à±à°¤à°¨à°®à±à°²à±</b>"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "à°ªà±à°°à°¾à°®à°¾à°£à°¿à°• Init à°¡à±†à°®à±‹à°¨à± à°¬à±‚టౠనందౠinit à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±à°¸à±â€ à°¦à±à°µà°¾à°°à°¾ à°ªà±à°°à°¾à°°à°‚భమగౠడెమోనà±à°¸à±â€.  à°¸à°¾à°¦à°¾à°°à°£à°‚à°—à°¾ /etc/rc.d/"
+-#~ "init.d à°¨à°‚దౠఒక à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà± à°•à°¾à°µà°¾à°²à°¿"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "à°ªà±à°°à°¾à°®à°¾à°£à°¿à°• Init à°¡à±†à°®à±‹à°¨à±â€Œ"
+-
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "ఇంటరà±à°¨à±†à°Ÿà± à°¸à±‡à°µà°² à°¡à±†à°®à±‹à°¨à± xinetd à°¦à±à°µà°¾à°°à°¾ à°ªà±à°°à°¾à°°à°‚à°­à°¿à°‚à°šà°¿à°¨ à°¡à±†à°®à±‹à°¨à±à°¸à±â€"
+-
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "ఇంటరà±à°¨à±†à°Ÿà± à°¸à±‡à°µà°² à°¡à±†à°®à±‹à°¨à± (inetd)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr ""
+-#~ "వెబౠఅనà±à°µà°°à±à°¤à°¨à°®à±à°²à±/à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±â€ (CGI) CGI à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±à°¸à±â€ à°µà±†à°¬à± à°¸à±‡à°µà°¿à°• à°¦à±à°µà°¾à°°à°¾ à°ªà±à°°à°¾à°°à°‚భించబడినవి (apache)"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "వెబౠఅనà±à°µà°°à±à°¤à°¨à°®à±/à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±â€ (CGI)"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr ""
+-#~ "వినియోగదారà±à°¨à°¿ à°šà±‡à°¤ à°ªà±à°°à°¾à°°à°‚భించబడి à°®à±€à°°à± à°ªà°°à°¿à°®à°¿à°¤à°‚ à°šà±‡à°¯à±à°Ÿà°•à± à°‡à°·à±à°Ÿà°ªà°¡à± à° à°…à°¨à±à°µà°°à±à°¤à°¨à°®à±ˆà°¨à°¾ à°µà°¿à°¨à°¿à°¯à±‹à°—దారà±à°¨à°¿ "
+-#~ "à°…à°¨à±à°µà°°à±à°¤à°¨à°®à±‡"
+-
+-#~ msgid "User Application"
+-#~ msgstr "వినియోగదారి à°…à°¨à±à°µà°°à±à°¤à°¨à°®à±"
+-
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>లాగినౠవినియోగదారà±à°²à±</b>"
+-
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "ఉనà±à°¨ à°²à°¾à°—ినౠవినియోగదారి à°°à°¿à°•à°¾à°°à±à°¡à±â€â€Œà°¨à± à°¸à°µà°°à°¿à°‚à°šà±à°®à±"
+-
+-#~ msgid "Existing User Roles"
+-#~ msgstr "ఉనà±à°¨ à°µà°¿à°¨à°¿à°¯à±‹à°—ాదారి à°ªà°¾à°¤à±à°°à°²à±"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—ాదారి à°®à°¿à°·à°¨à±â€Œà°•à± à°Ÿà±†à°°à±à°®à°¿à°¨à°²à± à°²à±‡à°¦à°¾ à°¦à±‚à°°à°¸à±à°¥ à°²à°¾à°—ినౠదà±à°µà°¾à°°à°¾ à°²à°¾à°—ినౠఅవà±à°¤à°¾à°¡à±.  à°…à°ªà±à°°à°®à±‡à°¯à°‚à°—à°¾ à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à° "
+-#~ "setuid, networking, sudo, su à°²à°¨à± à°•à°²à°¿à°—à°¿à°µà±à°‚à°¡à°¡à±."
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "కనీస à°Ÿà±†à°°à±à°®à°¿à°¨à°²à± à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°ªà°¾à°¤à±à°°"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—ాదారి à°®à°¿à°·à°¨à±â€Œà°•à± X à°²à±‡à°¦à°¾ à°Ÿà±†à°°à±à°®à°¿à°¨à°²à± à°¦à±à°µà°¾à°°à°¾ à°²à°¾à°—ినౠకాగలడà±.  à°…à°ªà±à°°à°®à±‡à°¯à°‚à°—à°¾ à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à° setuid, "
+-#~ "networking, sudo, su à°²à°¨à± à°•à°²à°¿à°—à°¿à°µà±à°‚à°¡à°¡à±"
+-
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "కనీస X à°µà°¿à°‚డోసౠవినియోగదారి à°ªà°¾à°¤à±à°°"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "పూరà±à°¤à°¿ à°¨à±†à°Ÿà±à°µà°°à±à°•à°¿à°‚గౠతో, à°¬à°¦à°¿à°²à±€à°•à°°à°£ à°²à±‡à°•à±à°‚à°¡à°¾ setuid à°²à±‡à°¨à°¿ à°…à°¨à±à°µà°°à±à°¤à°¨à°¾à°²à±, sudo à°•à°¾à°¨à°¿, su à°•à°¾à°¨à°¿ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి."
+-
+-#~ msgid "User Role"
+-#~ msgstr "వినియోగదారి à°ªà°¾à°¤à±à°°"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "పూరà±à°¤à°¿ à°¨à±†à°Ÿà±à°µà°°à±à°•à°¿à°‚గౠతో, à°¬à°¦à°¿à°²à±€à°•à°°à°£ à°²à±‡à°¨à°¿ à° setuid à°…à°¨à±à°µà°°à±à°¤à°¨à°¾à°²à± à°²à±‡à°¨à°¿, su à°•à°¾à°¨à°¿, à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°°à±‚టౠనిరà±à°µà°¹à°£à°¾ "
+-#~ "నియమాలనౠsudo à°šà±‡à°¯à°—లడà±"
+-
+-#~ msgid "Admin User Role"
+-#~ msgstr "నిరà±à°µà°¹à°£à°¾à°§à°¿à°•à°¾à°°à°¿ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°ªà°¾à°¤à±à°°"
+-
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>రూటౠవినియోగదారà±à°²à±</b>"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—దారిని à°®à°¿à°·à°¨à± à°°à±‚à°Ÿà±â€Œà°—à°¾ à°¨à°¡à±à°¸à±à°¤à±à°¨à±à°¨à°ªà±à°ªà±à°¡à± à°¨à°¿à°°à±à°µà°¹à°£à°¾à°§à°¿à°•à°¾à°°à°¿à°—à°¾ à°‰à°ªà°¯à±‹à°—ించాలంటే, à°°à±‚టౠవినియోగదారి à°ªà°¾à°¤à±à°°à°¨à± "
+-#~ "ఎంపికచేయి.  à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°¸à°¿à°¸à±à°Ÿà°®à°•à± à°¨à±‡à°°à±à°—à°¾ à°²à°¾à°—ినౠకాలేడà±."
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "రూటౠనిరà±à°µà°¹à°£à°¾à°¦à°¿à°•à°¾à°°à°¿ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°ªà°¾à°¤à±à°°"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "పరిమితం à°šà±‡à°¯à±à°Ÿà°•à± à°…à°¨à±à°µà°°à±à°¤à°¨à°‚ à°²à±‡à°¦à°¾ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°ªà°¾à°¤à±à°° à°¨à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "నామమà±"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "పరిమితంగా à°‰à°‚à°¡à±à°Ÿà°•à± à°¨à°¿à°°à±à°µà°°à±à°¤à°¨à°‚కౠపూరà±à°¤à°¿ à°ªà°¾à°¤à±â€Œà°¨à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±."
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "పరిమిత à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°²à±‡à°¦à°¾ à°…à°¨à±à°µà°°à±à°¤à°¨à°‚ à°ªà°¾à°¤à±à°°à°•à± à°à°•à±ˆà°• à°¨à°¾à°®à°®à±à°¨à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±."
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Executable"
+-#~ msgstr "నిరà±à°µà°°à±à°¤à°¿à°‚చతగిన"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "Init script"
+-#~ msgstr "Init à°²à°¿à°ªà°¿"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr ""
+-#~ "పరిమిత à°…à°¨à±à°µà°°à±à°¤à°¨à°‚నౠపà±à°°à°¾à°°à°‚à°­à°¿à°‚à°šà±à°Ÿà°•à± à°‰à°ªà°¯à±‹à°—à°¿à°‚à°šà± init à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±â€ à°•à± à°ªà±‚à°°à±à°¤à°¿ à°ªà°¾à°¤à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±."
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "మీరౠమలచాలని à°…à°¨à±à°•à±à°‚à°Ÿà±à°¨à±à°¨ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°ªà°¾à°¤à±à°°à°²à°¨à± à°Žà°‚పికచేయà±à°®à±"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr "à°ˆ à°…à°¨à±à°µà°°à±à°¤à°¨à°¾à°² à°¡à±Šà°®à±ˆà°¨à±à°¸à±â€â€Œà°•à± à°¬à°¦à°¿à°²à±€à°•à°°à°¿à°‚చబోవౠవినియోగదారి à°¦à°¸à±à°¤à±à°°à°¾à°²à°¨à± à°Žà°‚పికచేయà±à°®à±"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°ªà°¾à°¤à±à°° à°¬à°¦à°¿à°²à±€à°•à°°à°¿à°‚చబడౠఅదనపౠడోమైనà±à°¸à±â€ à°Žà°‚పికచేయà±à°®à±"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr "à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°ªà°¾à°¤à±à°°à°¨à± à°¬à°¦à°¿à°²à±€à°•à°°à°£à°•à± à°šà±‡à°¯à±à°Ÿà°•à± à°®à±€à°°à± à°‡à°·à±à°Ÿà°ªà°¡à±‡ à°…à°¨à±à°µà°°à±à°¤à°¨à°¾à°² à°¡à±‹à°®à±ˆà°¨à±à°¸à±â€â€Œà°¨à± à°Žà°‚పికచేయà±à°®à±."
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "à°ˆ à°¡à±Šà°®à±ˆà°¨à±â€Œà°•à± à°¬à°¦à°¿à°²à±€à°•à°°à°¿à°‚చబడౠవినియోగదారి à°ªà°¾à°¤à±à°°à°²à°¨à± à°Žà°‚పికచేయà±à°®à±"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°…ధికారికాబోవౠఅదనపౠడోమైనà±à°¸à±â€ à°Žà°‚పికచేయà±à°®à±"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°¨à°¿à°°à±à°µà°¹à°¿à°‚à°šà±à°Ÿà°•à± à°®à±€à°°à± à°‡à°·à±à°Ÿà°ªà°¡à± à°¡à±Šà°®à±ˆà°¨à±à°¸à±â€â€Œà°¨à± à°Žà°‚పికచేయà±à°®à±."
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—దారికి à°…దనపౠపాతà±à°°à°²à°¨à± à°Žà°‚పికచేయà±à°®à±"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "à°ˆ à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°ªà°¾à°¤à±à°° à°¸à°‚ధానంకౠనెటà±à°µà°°à±à°•à±â€ à°ªà±‹à°°à±à°Ÿà±à°¸à±â€ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP à°ªà±‹à°°à±à°Ÿà±à°¸à±â€</b>"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr "à° udp à°ªà±‹à°°à±à°Ÿà±â€â€Œà°•à±ˆà°¨à°¾ à°¬à°‚ధనం à°…à°—à±à°Ÿà°•à± à°ªà°°à°¿à°®à°¿à°¤ à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°ªà°¾à°¤à±à°°à°¨à± à°…à°¨à±à°®à°¤à°¿à°¸à±à°¤à±à°‚ది"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "à°…à°¨à±à°¨à°¿"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "bindresvport à°¨à± 0 à°¤à±‹ à°•à°¾à°²à± à°šà±‡à°¯à±à°Ÿà°•à± à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°ªà°¾à°¤à±à°°à°¨à°¿ à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±. à°ªà±‹à°°à±à°Ÿà±â€ "
+-#~ "600-1024 à°•à± à°¬à°‚ధనం à°…à°—à±à°šà±à°¨à±à°¨à°¦à°¿"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "à°† à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°ªà°¾à°¤à±à°° à°¬à°‚దనం à°…గౠకామావిభజిత udp à°ªà±‹à°°à±à°Ÿà±à°¸à±â€ à°²à±‡à°¦à°¾ à°ªà±‹à°°à±à°Ÿà±à°¸à±â€ à°¸à±à°¥à°¾à°¯à°¿à°²à°¨à± "
+-#~ "à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±. à°‰à°¦à°¾à°¹à°°à°£: 612, 650-660"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "నిలà±à°µà°‰à°‚చని à°ªà±‹à°°à±à°Ÿà±à°¸à±â€  (> 1024)"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "పోరà±à°Ÿà±à°¸à±â€ à°Žà°‚పికచేయి"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr ""
+-#~ "à° udp à°ªà±‹à°°à±à°Ÿà±à°¸à±â€â€Œà°•à± à°…యినా > 1024 à°•à± à°¬à°‚ధనం à°…à°—à±à°Ÿà°•à± à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°ªà°¾à°¤à±à°° à°¨à± à°…à°¨à±à°®à°¤à°¿à°¸à±à°¤à±à°‚ది"
+-
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP à°ªà±‹à°°à±à°Ÿà±à°¸à±â€</b>"
+-
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr "à°ˆ à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°ªà°¾à°¤à±à°° à°…à°¨à±à°¸à°‚ధానమగౠనెటà±à°µà°°à±à°•à± à°ªà±‹à°°à±à°Ÿà±à°¸à±â€ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "à°† à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°ªà°¾à°¤à±à°° à°…à°¨à±à°¸à°‚ధానం à°…à°—à±à°Ÿà°•à± à°•à°¾à°®à°¾à°µà°¿à°­à°œà°¿à°¤ tcp à°ªà±‹à°°à±à°Ÿà±à°¸à±â€ à°²à±‡à°¦à°¾ à°ªà±‹à°°à±à°Ÿà±à°¸à±â€ à°¸à±à°¥à°¾à°¯à°¿à°²à°¨à± "
+-#~ "à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±. à°‰à°¦à°¾à°¹à°°à°£: 612, 650-660"
+-
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "à°† à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°ªà°¾à°¤à±à°° à°…à°¨à±à°¸à°‚ధానం à°…à°—à±à°Ÿà°•à± à°•à°¾à°®à°¾à°µà°¿à°­à°œà°¿à°¤ udp à°ªà±‹à°°à±à°Ÿà±à°¸à±â€ à°²à±‡à°¦à°¾ à°ªà±‹à°°à±à°Ÿà±à°¸à±â€ à°¸à±à°¥à°¾à°¯à°¿à°²à°¨à± "
+-#~ "à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±. à°‰à°¦à°¾à°¹à°°à°£: 612, 650-660"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "ఉమà±à°®à°¡à°¿ à°…à°¨à±à°µà°°à±à°¤à°¨à°‚ à°¸à±à°µà°­à°¾à°µà°¾à°²à± à°Žà°‚పికచేయà±à°®à±"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "సిసà±â€Œà°²à°¾à°—ౠసందేశాలనౠవà±à°°à°¾à°¸à±à°¤à±à°‚ది\t"
+-
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "/tmp à°¨à°‚దౠతాతà±à°•à°¾à°²à°¿à°• à°¦à°¸à±à°¤à±à°°à°¾à°²à°¨à± à°¸à±ƒà°·à±à°Ÿà°¿à°‚à°šà±/మారà±à°šà±"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "దృవీకరణకౠPam à°¨à± à°‰à°ªà°¯à±‹à°—à°¿à°¸à±à°¤à±à°‚ది"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "nsswitch à°²à±‡à°¦à°¾ getpw* à°•à°¾à°²à±à°¸à±â€â€Œà°¨à± à°‰à°ªà°¯à±‹à°—à°¿à°¸à±à°¤à±à°‚ది"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "dbus à°¨à± à°‰à°ªà°¯à±‹à°—à°¿à°¸à±à°¤à±à°‚ది"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "ఆడిటౠసందేశాలనౠపంపà±à°¤à±à°‚ది"
+-
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "టెరà±à°®à°¿à°¨à°²à±â€Œà°¤à±‹ à°¸à°‚à°ªà±à°°à°¦à°¿à°¸à±à°¤à±à°‚ది"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "ఈమెయిలౠపంపà±à°¤à±à°‚ది"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "à°† à°…à°¨à±à°µà°°à±à°¤à°¨à°‚ à°¨à°¿à°°à±à°µà°¹à°¿à°‚చౠదసà±à°¤à±à°°à°¾à°²à°¨à±/సంచయాలనౠఎంపికచేయà±à°®à±"
+-
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "à°ˆ à°…à°¨à±à°°à±à°¤à°¨à°‚ \"à°µà±à°°à°¾à°¯à±\" à°…వసరం à°•à°²à°¿à°—à°¿à°¨ à°¦à°¸à±à°¤à±à°°à°®à±à°²à°¨à±/సంచయాలనౠజతచేయà±à°®à±. Pid à°¦à°¸à±à°¤à±à°°à°®à±à°²à±, "
+-#~ "Log à°¦à°¸à±à°¤à±à°°à°®à±à°²à±, /var/lib à°¦à°¸à±à°¤à±à°°à°®à±à°²à± ..."
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "à°† à°…à°¨à±à°µà°°à±à°¤à°¨à°‚ à°‰à°ªà°¯à±‹à°—ించే à°¬à±‚లియనà±à°¸à±â€â€Œà°¨à± à°Žà°‚పికచేయà±à°®à±"
+-
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr "పరిమిత à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°•à± à°‰à°ªà°¯à±‹à°—ించౠబూలియనà±à°¸à±â€ à°œà°¤à°šà±‡à°¯à°¿/తొలగించà±à°®à±"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "విధానం à°¦à°¾à°¨à°¿à°²à±‹ à°‰à°¦à±à°­à°µà°¿à°‚పచేయà±à°Ÿà°•à± à°¸à°‚చయానà±à°¨à°¿ à°Žà°‚పికచేయà±à°®à±"
+-
+-#~ msgid "Policy Directory"
+-#~ msgstr "విధానం à°¸à°šà°¯à°‚"
+-
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "ఉదà±à°­à°µà°¿à°‚పచేసిన à°µà°¿à°§à°¾à°¨à°‚ à°¦à°¸à±à°¤à±à°°à°¾à°²à±"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "à°ˆ à°¸à°¾à°§à°¨à°‚ à°ˆ à°•à±à°°à°¿à°‚ది à°µà°¾à°Ÿà°¿à°¨à°¿ à°¸à±ƒà°·à±à°Ÿà°¿à°¸à±à°¤à±à°‚ది: \n"
+-#~ "టైపౠఎనà±à°«à±‹à°°à±à°¸à±â€â€Œà°®à±†à°‚à°Ÿà±(te), à°«à±ˆà°²à± à°•à°¾à°‚టెకà±à°¸à±à°Ÿà±â€(fc), à°‡à°‚à°Ÿà°°à±â€Œà°«à±‡à°¸à±(if), à°·à±†à°²à± à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±â€(sh)\n"
+-#~ "నిరà±à°µà°°à±à°¤à°¿à°‚à°šà±à°Ÿà°•à±/సంసà±à°¥à°¾à°ªà°¿à°‚à°šà±à°Ÿà°•à± à°®à°°à°¿à°¯à± à°¦à°¸à±à°¤à±à°°à°®à±à°²à±/సంచయాలనౠచేరà±à°šà±à°Ÿà°•à± à°·à±†à°²à± à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±â€â€Œà°¨à± "
+-#~ "రూటà±â€Œà°²à°¾à°¨à°¿à°°à±à°µà°°à±à°¤à°¿à°‚à°šà±à°®à±.  \n"
+-#~ "లినకà±à°¸à±â€ à°²à°¾à°—ినౠవినియోగదారà±à°²à°¨à± à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°ªà°¾à°¤à±à°°à°²à°•à± à°®à°¾à°ªà± à°šà±‡à°¯à±à°Ÿà°•à± semanage à°²à±‡à°¦à°¾ useradd "
+-#~ "ఉపయోగించà±à°®à±.\n"
+-#~ "మిషనà±â€Œà°¨à± à°…నిషిదà±à°§à°°à±€à°¤à°¿(setenforce 0) à°¨à°‚దౠఉంచవచà±à°šà±. \n"
+-#~ "వినియోగదారిలా à°²à°¾à°—ినౠఅవà±à°µà±à°®à± à°®à°°à°¿à°¯à± à°ˆ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°ªà°¾à°¤à±à°°à°¨à± à°ªà°°à°¿à°¶à±€à°²à°¿à°‚à°šà±à°®à±.\n"
+-#~ "te à°¦à°¸à±à°¤à±à°°à°®à±à°¨à°•à± à°…దనపౠనియమాలనౠఉదà±à°­à°µà°¿à°‚పచేయà±à°Ÿà°•à± audit2allow -R à°¨à± à°‰à°ªà°¯à±‹à°—à°¿à°‚à°šà±à°®à±.\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "à°ˆ à°¸à°¾à°§à°¨à°‚ à°ˆ à°•à±à°°à°¿à°‚ది à°µà°¾à°Ÿà°¿à°¨à°¿ à°¸à±ƒà°·à±à°Ÿà°¿à°¸à±à°¤à±à°‚ది: \n"
+-#~ "టైపౠఎనà±à°«à±‹à°°à±à°¸à±â€â€Œà°®à±†à°‚à°Ÿà±(te), à°«à±ˆà°²à± à°•à°¾à°‚టెకà±à°¸à±à°Ÿà±â€(fc), à°‡à°‚à°Ÿà°°à±â€Œà°«à±‡à°¸à±(if), à°·à±†à°²à± à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±â€(sh)\n"
+-#~ "\n"
+-#~ "నిరà±à°µà°°à±à°¤à°¿à°‚à°šà±à°Ÿà°•à±/సంసà±à°¥à°¾à°ªà°¿à°‚à°šà±à°Ÿà°•à± à°®à°°à°¿à°¯à± à°¦à°¸à±à°¤à±à°°à°®à±à°²à±/సంచయాలనౠచేరà±à°šà±à°Ÿà°•à± à°·à±†à°²à± à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±â€â€Œà°¨à±\n"
+-#~ "నిరà±à°µà°°à±à°¤à°¿à°‚à°šà±à°®à±.  à°®à±€à°°à± à°‡à°ªà±à°ªà±à°¡à± à°®à°¿à°·à°¨à±â€Œà°¨à± à°…నిషిదà±à°§à°°à±€à°¤à°¿(setenforce 0) à°¨à°‚దౠఉంచవచà±à°šà±. \n"
+-#~ "avc à°¸à°‚దేశాలనౠఉదà±à°­à°µà°¿à°‚పచేయà±à°Ÿà°•à± à°…à°¨à±à°µà°°à±à°¤à°¨à°‚నౠనడà±à°ªà±à°®à±/à°ªà±à°¨à°ƒà°ªà±à°°à°¾à°°à°‚à°­à°¿à°‚à°šà±à°®à±.\n"
+-#~ "te à°¦à°¸à±à°¤à±à°°à°®à±à°¨à°•à± à°…దనపౠనియమాలనౠఉదà±à°­à°µà°¿à°‚పచేయà±à°Ÿà°•à± audit2allow -R à°¨à± à°‰à°ªà°¯à±‹à°—à°¿à°‚à°šà±à°®à±.\n"
+-
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "బూలియనà±à°¸à±â€ à°¡à±ˆà°²à°¾à°—à±â€Œà°¨à± à°œà°¤à°šà±‡à°¯à±à°®à±"
+-
+-#~ msgid "Boolean Name"
+-#~ msgstr "బూలియనౠనామమà±"
+-
+-#~ msgid "Role"
+-#~ msgstr "పాతà±à°°"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Existing_User"
+-#~ msgstr "ఉనà±à°¨ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి(_U)"
+-
+-#~ msgid "Application"
+-#~ msgstr "à°…à°¨à±à°µà°°à±à°¤à°¨à°®à±"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s à°¤à°ªà±à°ªà°• à°’à°• à°¸à°‚చయం à°…à°µà±à°µà°¾à°²à°¿"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "మీరౠతపà±à°ªà°• à°’à°• à°µà°¿à°¨à°¿à°¯à±‹à°—దారిని à°Žà°‚పికచేయాలి"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "పరిమితం à°šà±‡à°¯à±à°Ÿà°•à± à°¨à°¿à°°à±à°µà°°à±à°¤à°¿à°‚చదగౠదసà±à°¤à±à°°à°®à±à°¨à± à°Žà°‚పికచేయà±à°®à±"
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "పరిమితం à°šà±‡à°¯à±à°Ÿà°•à± init à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±â€ à°¦à°¸à±à°¤à±à°°à°®à±à°¨à± à°Žà°‚పికచేయà±à°®à±."
+-
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "పరిమిత à°…à°¨à±à°¨à°°à±à°¤à°¨à°®à±à°²à± à°¸à±ƒà°·à±à°Ÿà°¿à°‚à°šà°¿à°¨ à°²à±‡à°¦à°¾ à°µà±à°°à°¾à°¸à°¿à°¨ à°¦à°¸à±à°¤à±à°°à°®à±(à°²à±) à°Žà°‚పికచేయà±à°®à±"
+-
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr "పరిమిత à°…à°¨à±à°µà°°à±à°¤à°¨à°®à±à°²à± à°•à°²à°¿à°—à°¿à°µà±à°¨à±à°¨ à°®à°°à°¿à°¯à± à°µà°¾à°Ÿà°¿à°²à±‹à°•à°¿ à°µà±à°°à°¾à°¸à°¿à°¨ à°¸à°‚చయమà±(à°²à±) à°Žà°‚పికచేయà±à°®à±"
+-
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "విధానం à°¦à°¸à±à°¤à±à°°à°®à±à°²à°¨à± à°¦à°¾à°¨à°¿à°²à±‹à°•à°¿ à°‰à°¦à±à°¬à°µà°¿à°‚పచేయà±à°Ÿà°•à± à°¸à°‚చయమà±à°¨à± à°Žà°‚పికచేయà±à°®à±"
+-
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "à°ªà±à°°à°¸à±à°¤à±à°¤ à°µà°¿à°§à°¾à°¨à°‚నందౠఇపà±à°ªà°Ÿà°¿à°•à±‡ à°¨à°¿à°°à±à°µà°šà°¿à°‚చబడిన %s_t à°¨à± à°Ÿà±ˆà°ªà± à°šà±‡à°¯à±à°®à±.\n"
+-#~ "మీరౠకొనసాగించాలని à°…à°¨à±à°•à±à°‚à°Ÿà±à°¨à±à°¨à°¾à°°à°¾?"
+-
+-#~ msgid "Verify Name"
+-#~ msgstr "నామమà±à°¨à± à°¨à°¿à°°à±à°§à°¾à°°à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "మాడà±à°¯à±‚లౠ%s.pp à°‡à°ªà±à°ªà°Ÿà°¿à°•à±‡ à°ªà±à°°à°¸à±à°¤à±à°¤ à°µà°¿à°§à°¾à°¨à°‚నందౠనింపబడింది.\n"
+-#~ "మీరౠకొనసాగించాలని à°…à°¨à±à°•à±à°‚à°Ÿà±à°¨à±à°¨à°¾à°°à°¾?"
+-
+-#~ msgid "You must enter a name"
+-#~ msgstr "మీరౠతపà±à°ªà°• à°’à°• à°¨à°¾à°®à°®à±à°¨à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°µà°²à±†à°¨à±"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "మీరౠతపà±à°ªà°• à°’à°• à°¨à°¿à°°à±à°µà°°à±à°¤à°¿à°¨à°¿à°¨à°¿ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°µà°²à±†à°¨à±"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "SELinux à°¨à± à°†à°•à±ƒà°¤à±€à°•à°°à°¿à°‚à°šà±à°®à±"
+-
+-#, fuzzy
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "పోరà±à°Ÿà±à°¸à±â€ à°¤à°ªà±à°ªà°• à°¸à°‚à°–à±à°¯à°²à± à°²à±‡à°¦à°¾ 1 à°¨à±à°‚à°¡à°¿ %d à°µà°°à°•à± à°¸à°‚à°–à±à°¯à°¾ à°¸à±à°¥à°¾à°¯à°¿à°²à± à°…à°µà±à°µà°¾à°²à°¿ "
+-
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "మీ à°ªà°°à°¿à°®à°¿à°¤ à°•à°¾à°°à±à°¯à°®à±/వినియోగదారికి à°®à±€à°°à± à°¤à°ªà±à°ªà°• à°’à°• à°¨à°¾à°®à°®à±à°¨à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°µà°²à±†à°¨à±"
+-
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "వినియోగదారి à°°à°•à°®à±à°²à± à°Žà°•à±à°¸à°¿à°•à±à°¯à±‚à°Ÿà°¬à±à°²à±à°¸à±â€â€Œà°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà°µà±"
+-
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "డెమోనౠఅనà±à°µà°°à±à°¤à°¨à°®à±à°²à± à°®à°¾à°¤à±à°°à°®à±‡ init à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±â€â€Œà°¨à± à°‰à°ªà°¯à±‹à°—ించగలవà±"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog à°…à°¨à±à°¨à°¦à°¿ à°¤à°ªà±à°ªà°• à°¬à±‚లియనౠవిలà±à°µà±ˆà°µà±à°‚డాలి "
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#, fuzzy
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "వినియోగదారి à°°à°•à°®à±à°²à± à°¸à±à°µà°¯à°‚చాలకంగా tmp à°°à°•à°®à±à°¨à± à°ªà±Šà°‚à°¦à±à°¤à°¾à°¯à°¿"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "మీ à°ªà°°à°¿à°®à°¿à°¤ à°•à°¾à°°à±à°¯à°®à±à°•à± à°®à±€à°°à± à°¤à°ªà±à°ªà°• à°¨à°¿à°°à±à°µà°°à±à°¤à°¿à°‚చదగౠపాతà±â€Œà°¨à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°¾à°²à°¿"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "టైపౠఎనà±à°«à±‹à°°à±à°¸à±â€â€Œà°®à±†à°‚టౠదసà±à°¤à±à°°à°®à±"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "ఇంటరà±à°«à±‡à°¸à± à°¦à°¸à±à°¤à±à°°à°®à±"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "ఫైలౠకాంటెకà±à°¸à±à°Ÿà±â€ à°¦à°¸à±à°¤à±à°°à°®à±"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "అమరà±à°ªà± à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±â€"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux à°ªà±‹à°°à±à°Ÿà±â€\n"
+-#~ "à°°à°•à°®à±"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "నియమం"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "à°¸à±à°¥à°¾à°¯à°¿"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "పోరà±à°Ÿà±â€"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "పోరà±à°Ÿà±â€ à°¸à°‚à°–à±à°¯ \"%s\" à°šà±†à°²à±à°²à±à°¨à°¦à°¿ à°•à°¾à°¦à±.  0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "జాబితా à°¦à°°à±à°¶à°¨à°‚"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "సమూహం à°¦à°°à±à°¶à°¨à°‚"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux à°¸à±‡à°µà°¾ à°­à°¦à±à°°à°¤"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± acct à°¡à±†à°®à±‹à°¨à±â€Œ à°•à±Šà°°à°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "నిరà±à°µà°¹à°£à°¾à°§à°¿à°•à°¾à°°à°¿"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "à°ªà±à°°à°¾à°§à°®à°¿à°•à°¦à°¸à±à°¤à±à°°à°¾à°²à°¨à± / à°•à± à°µà±à°°à°¾à°¯à±à°Ÿà°•à± à°…à°¨à±à°¨à°¿ à°¡à±†à°®à±‹à°¨à±à°¸à±â€â€Œà°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "కేటాయించని ttys à°¨à± à°‰à°ªà°¯à±‹à°—à°¿à°‚à°šà±à°•à±Šà°¨à± à°¶à°•à±à°¤à°¿à°¨à°¿ à°…à°¨à±à°¨à°¿ à°¡à±†à°®à±‹à°¨à±à°¸à±â€â€Œà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "వినియోగదారి Privs"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "gadmin SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°–ాతాలనౠఅతని à°¨à°¿à°µà°¾à°¸ à°¸à°‚చయంనందౠలేదా /tmp à°¨à°‚దౠదసà±à°¤à±à°°à°¾à°²à°¨à± "
+-#~ "నిరà±à°µà°°à±à°¤à°¿à°‚à°šà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "అతిధి SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°–ాతాలనౠఅతని à°¨à°¿à°µà°¾à°¸ à°¸à°‚చయంనందౠలేదా /tmp à°¨à°‚దౠదసà±à°¤à±à°°à°¾à°²à°¨à± "
+-#~ "నిరà±à°µà°¹à°¿à°‚à°šà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "మెమొరి à°­à°¦à±à°°à°¤"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "జావా à°Žà°•à±à°¸à°¿à°•à±à°¯à±‚à°Ÿà°¬à±à°²à± à°¸à±à°Ÿà°¾à°•à±â€Œà°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "మౌంటà±"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "ఠదసà±à°¤à±à°°à°®à±à°¨à±ˆà°¨à°¾ à°®à±‹à°‚టౠచేయà±à°Ÿà°•à± à°®à±Œà°‚à°Ÿà±â€Œà°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "ఠసంచయంనైనా à°®à±Œà°‚à°Ÿà±â€Œà°šà±‡à°¯à±à°Ÿà°•à± à°®à±Œà°‚à°Ÿà±â€Œà°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "à°Žà°®à±â€Œà°ªà±à°²à±‡à°¯à°°à± à°Žà°•à±à°¸à°¿à°•à±à°¯à±‚à°Ÿà°¬à±à°²à± à°¸à±à°Ÿà°¾à°•à±â€Œà°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "ssh à°¨à± ssh-keysign à°¨à°¡à±à°ªà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "staff SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°–ాతాలనౠఅతని à°¨à°¿à°µà°¾à°¸ à°¸à°‚చయంనందౠలేదా /tmp à°¨à°‚దౠదసà±à°¤à±à°°à°¾à°²à°¨à± "
+-#~ "నిరà±à°µà°°à±à°¤à°¿à°‚à°šà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "sysadm SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°–ాతాలనౠఅతని à°¨à°¿à°µà°¾à°¸ à°¸à°‚చయంనందౠలేదా /tmp à°¨à°‚దౠదసà±à°¤à±à°°à°¾à°²à°¨à± "
+-#~ "నిరà±à°µà°°à±à°¤à°¿à°‚à°šà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "పరిమితంకాని SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°–ాతాలనౠఅతని à°¨à°¿à°µà°¾à°¸ à°¸à°‚చయంనందౠలేదా /tmp à°¨à°‚దౠదసà±à°¤à±à°°à°¾à°²à°¨à± "
+-#~ "నిరà±à°µà°°à±à°¤à°¿à°‚à°šà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "నెటà±à°µà°°à±à°•à±â€ à°†à°•à±ƒà°¤à±€à°•à°°à°£"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "నెటà±à°µà°°à±à°•à±â€ à°¨à°‚దౠపà±à°°à°¸à°¾à°°à°‚కావటానికి à°²à±‡à°¬à±à°²à±â€Œà°²à±‡à°¨à°¿ à°ªà°¾à°•à±†à°Ÿà±à°¸à±â€â€Œà°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr ""
+-#~ "వినియోగదారి SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°–ాతాలనౠఅతని à°¨à°¿à°µà°¾à°¸à°¸à°‚చయంనందౠలేదా /tmp à°¨à°‚దౠదసà±à°¤à±à°°à°¾à°²à°¨à± "
+-#~ "నిరà±à°µà°°à±à°¤à°¿à°‚à°šà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "పరిమితంకానిదానà±à°¨à°¿ dyntrans à°¨à±à°‚à°¡à°¿ unconfined_execmem à°²à±‹à°•à°¿ à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "డాటాబేసà±â€Œà°²à±"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "mysql à°¸à°¾à°•à±†à°Ÿà±â€Œà°•à± à°…à°¨à±à°¸à°‚ధానం à°…à°—à±à°Ÿà°•à± à°µà°¿à°¨à°¿à°¯à±‹à°—దారిని à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "postgres à°¸à°¾à°•à±†à°Ÿà±â€Œà°•à± à°…à°¨à±à°¸à°‚ధానం à°…à°—à±à°Ÿà°•à± à°µà°¿à°¨à°¿à°¯à±‹à°—దారిని à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "X à°­à°¾à°—à°¸à±à°µà°¾à°®à±à°¯ à°®à±†à°®à±Šà°°à±€à°•à°¿ à°µà±à°°à°¾à°¯à±à°Ÿà°•à± à°•à°•à±à°·à°¿à°¦à°¾à°°à±à°²à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#, fuzzy
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr ""
+-#~ "xguest SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°–ాతాలనౠఅతని à°¨à°¿à°µà°¾à°¸ à°¸à°‚చయంనందౠలేదా /tmp à°¨à°‚దౠదసà±à°¤à±à°°à°®à±à°²à°¨à± "
+-#~ "నిరà±à°µà°°à±à°¤à°¿à°‚à°šà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "డెమెనà±à°¸à±â€â€Œà°¨à± NIS à°¤à±‹ à°¨à°¡à±à°šà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "వెబౠఅనà±à°µà°°à±à°¤à°¨à°®à±à°²à±"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "బదిలీకరణ staff SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°¨à±à°‚à°¡à°¿ à°µà±†à°¬à± à°¬à±à°°à±Œà°œà°°à± à°¡à±‹à°®à±ˆà°¨à± à°•à±"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "బదిలీకరణ sysadm SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°¨à±à°‚à°¡à°¿ à°µà±†à°¬à± à°¬à±à°°à±Œà°œà°°à± à°¡à±‹à°®à±ˆà°¨à± à°•à±"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "బదిలీకరణ user SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°¨à±à°‚à°¡à°¿ à°µà±†à°¬à± à°¬à±à°°à±Œà°œà°°à± à°¡à±‹à°®à±ˆà°¨à± à°•à±"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "బదిలీకరణ xguest SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°¨à±à°‚à°¡à°¿ à°µà±†à°¬à± à°¬à±à°°à±Œà°œà°°à± à°¡à±‹à°®à±ˆà°¨à± à°•à±"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "staff à°µà±†à°¬à± à°¬à±à°°à±Œà°œà°°à±à°¸à±â€â€Œà°¨à± à°¨à°¿à°µà°¾à°¸à°¸à°‚చయాలకౠవà±à°°à°¾à°¯à±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°¨à°¿à°µà±à°µà±à°®à±"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± à°…మాండా à°•à±Šà°°à°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "అమావిసౠకొరకౠSELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "apmd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "arpwatch à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "auditd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "automount à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "ఆవాహి à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "à°¬à±à°²à±‚టూతౠడెమోనౠకొరకౠSELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "canna à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "cardmgr à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "à°•à±à°²à°¸à±à°Ÿà°°à± à°¸à±‡à°µà°¿à°• à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "cdrecord à°¨à± à°µà°¿à°­à°¿à°¨à±à°¨ à°¸à°¾à°°à°¾à°²à°¨à± à°šà°¦à±à°µà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±. nfs, samba, à°¤à°¿à°¸à°¿à°µà±‡à°¯à°—à°² à°ªà°°à°¿à°•à°°à°®à±à°²à±, "
+-#~ "user temp à°®à°°à°¿à°¯à± à°¨à°®à±à°®à°¦à°—ని à°¸à°¾à°°à°ªà± à°¦à°¸à±à°¤à±à°°à°®à±à°²à±"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ciped à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "clamd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "clamscan à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "clvmd à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "comsat à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "courier à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "cpucontrol à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "cpuspeed à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "à°•à±à°°à°¾à°¨à±"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "crond à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "à°®à±à°¦à±à°°à°£"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± cupsd à°¬à±à°¯à°¾à°•à±†à°‚డౠసేవికకౠఅచేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± cupsd à°¡à±†à°®à±‹à°¨à±â€Œà°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± cupsd_lpd à°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± cvs à°¡à±†à°®à±‹à°¨à±â€Œà°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± cyrus à°¡à±†à°®à±‹à°¨à±â€Œà°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± dbskkd à°¡à±†à°®à±‹à°¨à±â€Œà°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± dbusd à°¡à±†à°®à±‹à°¨à±â€Œà°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± dccd à°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± dccifd à°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± dccm à°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± ddt à°¡à±†à°®à±‹à°¨à±â€Œà°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± devfsd à°¡à±†à°®à±‹à°¨à±â€Œà°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± dhcp à°¡à±†à°®à±‹à°¨à±â€Œà°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± dhcpd à°¡à±†à°®à±‹à°¨à±â€Œà°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± dictd à°¡à±†à°®à±‹à°¨à±â€Œà°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "డెమోనà±à°¸à±â€â€Œà°¨à± à°¨à±‡à°°à±à°—à°¾ à°ªà±à°°à°¾à°°à°‚à°­à°¿à°‚à°šà±à°Ÿà°•à± sysadm_t à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "ఎవాలà±à°¯à±‚షనౠకొరకౠSELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "ఆటలà±"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "ఆటలౠకొరకౠSELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "వెబౠఅనà±à°µà±‡à°·à°£à°¿à°² à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "థండరà±â€Œà°¬à°°à±à°¡à±â€ à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "distccd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "dmesg à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "dnsmasq à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "dovecot à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "entropyd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "SELinux à°­à°¦à±à°°à°¤à°¨à± fetchmail à°•à±Šà°°à°•à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "fingerd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "freshclam à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "fsdaemon à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "gpm à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "gss à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "Hal à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "సారూపà±à°¯à°¤"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr "à°­à°¦à±à°°à°¤à°¾ à°‡à°¬à±à°¬à°‚à°¦à±à°²à± à°•à°¾à°¨à°¿à°µà°¿ à°µà°¿à°°à°¿à°—ిపోతాయి à°…ని à°®à°¨à°•à± à°¤à±†à°²à°¿à°¸à°¿à°¨à°¾ à°…à°Ÿà±à°µà°‚à°Ÿà°¿ à°µà°¾à°Ÿà°¿à°¨à°¿ à°†à°¡à°¿à°Ÿà± à°šà±‡à°¯à°µà°¦à±à°¦à±"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "అతిధేయనామమౠడెమోనౠకొరకౠSELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "hotplug à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "howl à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "cups hplip à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "httpd rotatelogs à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD à°¸à±‡à°µ"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "http suexec à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "hwclock à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "i18n à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "imazesrv à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "child à°¡à±†à°®à±‹à°¨à±à°¸à±â€ à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "inetd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "innd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "iptables à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ircd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "irqbalance à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "iscsi à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "jabberd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "కేరà±à°¬à°°à±‹à°¸à±"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "kadmind à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "klogd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "krb5kdc à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ktalk à°¡à±†à°®à±‹à°¨à±à°¸à±â€ à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "kudzu à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "locate à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "lpd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "lrrd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "lvm à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "mailman à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "వినియోగదారà±à°¨à°¿ à°¦à°¸à±à°¤à±à°°à°¾à°²à°¨à± à°šà°¦à±à°µà±à°Ÿà°•à± à°Žà°µà°¾à°²à±à°¯à°¾à°·à°¨à± à°®à°°à°¿à°¯à± à°¥à°‚à°¡à°°à±â€Œà°¬à°°à±à°¡à±â€â€Œà°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "mdadm à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "monopd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "వినియోగదారి à°¦à°¸à±à°¤à±à°°à°¾à°²à°¨à± à°šà°¦à±à°µà±à°Ÿà°•à± à°®à±Šà°œà°¿à°²à±à°²à°¾ à°…à°¨à±à°µà±‡à°·à°£à°¿à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "mrtg à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "mysqld à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "nagios à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "నామపౠసేవ"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "నామపౠడెమోనౠకొరకౠSELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "nessusd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "నెటà±à°µà°°à±à°•à±â€â€Œà°¨à°¿à°°à±à°µà°¾à°¹à°¿à°• à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనంచేయà±à°®à±"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "nfsd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "సాంబా"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "nmbd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "nrpe à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "nscd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "nsd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ntpd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "oddjob à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "oddjob_mkhomedir à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "openvpn à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "pam à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "pegasus à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "perdition à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "portmap à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "portslave à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "postfix à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "postgresql à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "సాదారణ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°•à±Šà°°à°•à± pppd à°¨à°¡à±à°šà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "pptp à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "prelink à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "privoxy à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ptal à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "pxe à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "pyzord à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "quota à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "radiusd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "radvd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "rdisc à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "readahead à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr ""
+-#~ "à°ªà±à°°à°¾à°®à°¾à°£à°¿à°•à°‚-కాని à°ªà±à°°à°¾à°‚తమà±à°² (default_t) à°¨à°‚దౠదసà±à°¤à±à°°à°®à±à°²à°¨à± à°šà°¦à±à°µà±à°Ÿà°•à± à°ªà±à°°à±‹à°—à±à°°à°¾à°®à±à°¸à±â€â€Œà°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "restorecond à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "rhgb à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ricci à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ricci_modclusterd à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "rlogind à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "rpcd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "rshd à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "rsync à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "à°’à°• à°¡à±†à°®à±‹à°¨à±â€Œà°²à°¾ à°¨à°¡à±à°šà±à°Ÿà°•à± à°¬à°¦à±à°²à±à°—à°¾ ssh à°¨à± inetd à°¨à±à°‚à°¡à°¿ à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "సాంబానౠnfs à°¸à°‚చయాలనౠపంచà±à°•à±Šà°¨à±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL à°¦à±ƒà°µà±€à°•à°°à°£ à°¸à±‡à°µà°¿à°•"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "sasl à°¦à±ƒà°µà±€à°•à°°à°£ à°¸à±‡à°µà°¿à°•à°¨à± /etc/shadow à°šà°¦à±à°µà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr ""
+-#~ "నిరà±à°µà°°à±à°¤à°¿à°‚చదగà±à°¨à°Ÿà±à°²à± à°®à°°à°¿à°¯à± à°µà±à°°à°¾à°¯à°¦à°—à±à°¨à°Ÿà±à°²à± X-విండోసౠసేవికనౠమెమోరీ à°ªà±à°°à°¾à°‚తమà±à°•à± à°®à°¾à°ªà± à°šà±‡à°¯à°Ÿà±à°•à± "
+-#~ "à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "saslauthd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "scannerdaemon à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "బదిలీకరణనౠsysadm_t à°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°š à°µà°¦à±à°¦à±, sudo à°®à°°à°¿à°¯à± su à°ªà±à°°à°­à°¾à°µà°¿à°¤à°®à°¯à±à°¯à°¾à°¯à°¿."
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "కెరà±à°¨à°²à± à°®à°¾à°¡à±à°¯à°¾à°²à±à°¸à±â€ à°¨à°¿à°‚à°ªà±à°Ÿà°•à± à° à°•à°¾à°°à±à°¯à°®à±à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚చవదà±à°¦à±"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "కెరà±à°¨à°²à± SELinux à°µà°¿à°§à°¾à°¨à°¾à°¨à±à°¨à°¿ à°¸à°µà°°à°¿à°‚à°šà±à°Ÿà°•à± à° à°•à°¾à°°à±à°¯à°®à±à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚చవదà±à°¦à±"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "sendmail à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "setrans à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "setroubleshoot à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "slapd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "slrnpull à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "smbd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "snmpd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "snort à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "soundd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "sound à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "à°¸à±à°ªà°¾à°®à± à°­à°¦à±à°°à°¤"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "spamd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "నివాస à°¸à°‚చయాలనౠవాడà±à°•à±Šà°¨à±à°Ÿà°•à± spamd à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "à°¸à±à°ªà°¾à°®à± à°Žà°¸à±à°¸à°¾à°¸à°¿à°¯à°¨à± à°¡à±†à°®à±‹à°¨à± à°¨à±†à°Ÿà±à°µà°°à±à°•à±â€ à°µà°¾à°¡à±à°•à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "speedmgmt à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "నెటà±à°µà°°à±à°•à±â€â€Œà°•à± à°…à°¨à±à°¸à°‚ధానమగà±à°Ÿà°•à± squid à°¡à±†à°®à±‹à°¨à±â€Œà°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "squid à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ssh à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "ssh à°²à°¾à°—à°¿à°¨à±à°¸à±â€â€Œà°¨à± sysadm_r:sysadm_t à°²à°¾ à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "sysadm à°¨à°¿à°µà°¾à°¸ à°¸à°‚చయంనౠశోధించà±à°Ÿà°•à± staff_r à°µà°¿à°¨à°¿à°¯à±‹à°—దారà±à°²à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à± à°®à°°à°¿à°¯à± à°¦à°¸à±à°¤à±à°°à°®à±à°²à°¨à± "
+-#~ "à°šà°¦à±à°µà±à°Ÿà°•à± (~/.bashrc à°µà°‚టిని)"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "సారà±à°µà°œà°¨à±€à°¯ SSL à°Ÿà°¨à±à°¨à±†à°²à±"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "stunnel à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "Xinetd à°¯à±Šà°•à±à°• à°¬à°¯à°Ÿ, stunnel à°¡à±†à°®à±‹à°¨à± à°¨à± à°¸à±à°Ÿà°¾à°‚à°¡à±à°Žà°²à±‹à°¨à± à°—à°¾ à°¨à°¡à±à°ªà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "swat à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "sxid à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "syslogd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "system cron jobs à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "tcp à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "telnet à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "tftpd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "transproxy à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "udev à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "uml à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "పరిమితం à°•à°¾à°¨à°¿à°¦à°¾à°¨à°¿à°¨à°¿ à°¨à°¡à±à°ªà±à°Ÿà°•à± xinetd à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±, à°‡à°¦à°¿ à°ªà±à°°à°¾à°°à°‚భించే à° à°¸à±‡à°µà°¨à°‚దైనా à°…ది à°¬à°¾à°¹à±à°¯à°‚à°—à°¾ "
+-#~ "నిరà±à°µà°šà°¿à°‚à°šà°¿à°¨ à°¡à±Šà°®à±ˆà°¨à± à°¬à°¦à°¿à°²à±€à°•à°°à°£ à°•à°²à°¿à°—à°¿à°µà±à°‚à°¡à°¦à±"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "పరిమితం à°•à°¾à°¨à°¿à°µà°¾à°Ÿà°¿à°¨à°¿ à°¨à°¡à±à°ªà±à°Ÿà°•à± rc à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±à°¸à±â€â€Œà°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±, rc à°¸à±à°•à±à°°à°¿à°ªà±à°Ÿà±â€â€Œà°¤à±‹ à°ªà±à°°à°¾à°°à°‚భమైన à° à°¡à±Šà°®à±ˆà°¨à°¯à°¿à°¨à°¾ à°…ది "
+-#~ "బాహà±à°¯à°‚à°—à°¾ à°¨à°¿à°°à±à°µà°šà°¿à°‚à°šà°¿à°¨ à°¡à±Šà°®à±ˆà°¨à± à°¬à°¦à°¿à°²à±€à°•à°°à°£à°¨à± à°•à°²à°¿à°—à°¿à°µà±à°‚à°¡à°¦à±"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "పరిమితంకాని à°¦à°¾à°¨à±à°¨à°¿ à°¨à°¡à±à°ªà±à°Ÿà°•à± rpm à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr "పరిమితంకాని à°µà°¾à°Ÿà°¿à°¨à°¿ à°¨à°¡à±à°ªà±à°Ÿà°•à± hotplug à°®à°°à°¿à°¯à± insmod à°µà°‚à°Ÿà°¿ à°¸à±Œà°²à°­à±à°¯à°¾à°²à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "updfstab à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "uptimed à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "user_r à°¨à± sysadm_r à°•à± su, sudo, à°²à±‡à°¦à°¾ à°µà°¿à°¨à°¿à°¯à±‹à°—దారిసహాయకి à°¦à±à°µà°¾à°°à°¾ à°šà±‡à°°à±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±. "
+-#~ "లేకపోతే, staff_r à°®à°¾à°¤à±à°°à°®à±‡ à°…లా à°šà±‡à°¯à°—లదౠ"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "మౌంటౠఆదేశానà±à°¨à°¿ à°¨à°¿à°°à±à°µà°°à±à°¤à°¿à°‚à°šà±à°Ÿà°•à± à°µà°¿à°¨à°¿à°¯à±‹à°—ాదారà±à°²à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr "సాదారణ à°µà°¿à°¨à°¿à°¯à±‹à°—దారà±à°² à°¸à±‚à°Ÿà°¿ à°®à±Œà°¸à± à°µà°¾à°¡à±à°•à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à± (X à°¸à±‡à°µà°¿à°•à°¨à± à°®à°¾à°¤à±à°°à°®à±‡ à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±)"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "dmesg à°†à°¦à±‡à°¶à°¾à°¨à±à°¨à°¿ à°¨à°¡à±à°ªà±à°Ÿà°•à± à°µà°¿à°¨à°¿à°¯à±‹à°—ాదారà±à°²à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr ""
+-#~ "నెటà±à°µà°°à±à°•à±â€ à°…ంతరà±â€Œà°«à°²à°•à°¾à°²à°¨à± à°¨à°¿à°¯à°‚à°¤à±à°°à°¿à°‚à°šà±à°Ÿà°•à± à°µà°¿à°¨à°¿à°¯à±‹à°—దారà±à°²à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à± (USERCTL=true à°•à±‚à°¡à°¾ "
+-#~ "అవసరమà±)"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "ping à°¨à± à°¸à°¾à°¦à°¾à°°à°£ à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°¨à°¿à°°à±à°µà°°à±à°¤à°¿à°‚à°šà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "వినియోగదారిని noextattrfile à°¨à± à°š/à°µà±à°°à°¾ à°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à± (FAT, CDROM, FLOPPY)"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "usb à°ªà°°à°¿à°•à°°à°¾à°²à°¨à± à°šà°µà±à°°à°¾ à°•à± à°µà°¿à°¨à°¿à°¯à±‹à°—దారà±à°²à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "వినియోగదారà±à°²à°¨à± TCP à°¸à±‡à°µà°¿à°•à°²à±(పోరà±à°Ÿà±à°¸à±â€â€Œà°•à± à°¬à°‚దనమై à°®à°°à°¿à°¯à± à°…దే à°¡à±Šà°®à°¾à°¨à± à°¨à±à°‚à°¡à°¿ à°…à°¨à±à°¸à°‚ధానంనౠఆమోదించౠమరియౠ"
+-#~ "బయట à°µà°¿à°¨à°¿à°¯à±‹à°—దారà±à°²à°¨à±à°‚à°¡à°¿) à°¨à± à°¨à°¡à±à°ªà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±  à°¦à±€à°¨à°¿à°¨à°¿ à°…చేతనం à°šà±‡à°¯à±à°Ÿ à°‡à°¤à°° à°¨à°¿à°¯à°®à°¾à°²à°¨à± "
+-#~ "మారà±à°šà±à°¤à±à°‚ది"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "వినియోగదారిని tty à°¦à°¸à±à°¤à±à°°à°¾à°²à°¨à± à°®à°¾à°°à±à°šà±à°Ÿà°•à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "uucpd à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "vmware à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "watchdog à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "winbind à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "xdm à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "xdm à°²à°¾à°—à°¿à°¨à±à°¸à±â€â€Œà°¨à± sysadm_r:sysadm_t à°²à°¾à°—à°¾ à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "xen à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "భౌతిక à°¡à°¿à°¸à±à°•à± à°ªà°°à°¿à°•à°°à°¾à°²à°¨à± à°šà°¦à±à°µà±à°Ÿ/à°µà±à°°à°¾à°¯à±à°Ÿ à°•à± xen à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
+-
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "xfs à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
+-
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "xen control à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
+-
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ypbind à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
+-
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "NIS à°¸à°‚కేతపదమౠడెమోనౠకొరకౠSELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
+-
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ypserv à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
+-
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "NIS à°¬à°¦à°¿à°²à±€à°•à°°à°£ à°¡à±†à°®à±‹à°¨à± à°•à±Šà°°à°•à± SELinux à°­à°¦à±à°°à°¤à°¨à± à°…చేతనం à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr ""
+-#~ "నిషిదà±à°¦à°‚కాని à°µà°¿à°¨à°¿à°¯à±‹à°—దారà±à°² à°¨à°¿à°µà°¾à°¸ à°¸à°‚చయాలనౠనిరà±à°µà°¹à°¿à°‚à°šà±à°Ÿà°•à± SELinux webadm à°µà°¿à°¨à°¿à°¯à±‹à°—దారిని à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
+-
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr ""
+-#~ "నిషిదà±à°¦à°‚కాని à°µà°¿à°¨à°¿à°¯à±‹à°—దారà±à°² à°¨à°¿à°µà°¾à°¸ à°¸à°‚చయాలనౠచదà±à°µà±à°Ÿà°•à± SELinux webadm à°µà°¿à°¨à°¿à°¯à±‹à°—దారిని à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
+-
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "మీరౠఖచà±à°šà°¿à°¤à°‚à°—à°¾ %s '%s' à°¨à± à°¤à±Šà°²à°—à°¿à°‚à°šà±à°¦à°¾à°®à°¨à°¿ à°…à°¨à±à°•à±à°‚à°Ÿà±à°¨à±à°¨à°¾à°°à°¾?"
+-
+-#~ msgid "Delete %s"
+-#~ msgstr "%s à°¤à±‹à°²à°—à°¿à°‚à°šà±à°®à±"
+-
+-#~ msgid "Add %s"
+-#~ msgstr "%s à°œà°¤à°šà±‡à°¯à±à°®à±"
+-
+-#~ msgid "Modify %s"
+-#~ msgstr "%s à°¸à°µà°°à°¿à°‚à°šà±à°®à±"
+-
+-#~ msgid "Permissive"
+-#~ msgstr "à°…à°¨à±à°®à°¤à°¿à°—à°²"
+-
+-#~ msgid "Enforcing"
+-#~ msgstr "బలవంతమà±"
+-
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "విధానం à°°à°•à°®à±à°¨à± à°®à°¾à°°à±à°šà±à°Ÿ à°…à°¨à±à°¨à°¦à°¿ à°¤à°°à±à°µà°¾à°¤à°¿ à°¬à±‚టౠనందౠమొతà±à°¤à°‚ à°¦à°¸à±à°¤à±à°° à°µà±à°¯à°µà°¸à±à°¥ à°¯à±Šà°•à±à°• à°šà±†à°°à°¿à°•à°•à± "
+-#~ "కారణమౌతà±à°‚ది. à°šà±‡à°°à±à°šà±à°Ÿ à°…à°¨à±à°¨à°¦à°¿ à°¦à°¸à±à°¤à±à°° à°µà±à°¯à°µà°¸à±à°¥ à°ªà°°à°¿à°®à°¾à°£à°‚ à°ªà±ˆ à°†à°§à°¾à°°à°ªà°¡à°¿ à°Žà°•à±à°•à±à°µ à°¸à°®à°¯à°‚ à°¤à±€à°¸à°•à±‹à°µà°šà±à°šà±.  à°®à±€à°°à± "
+-#~ "కొనసాగించాలని à°…à°¨à±à°•à±à°‚à°Ÿà±à°¨à±à°¨à°¾à°°à°¾?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux à°…చేతనంకౠమారà±à°Ÿà°•à± à°ªà±à°¨à°ƒà°ªà±à°°à°¾à°°à°‚à°­à°‚ à°…వసరమà±.  à°‡à°¦à°¿ à°¸à°¿à°«à°¾à°°à±à°¸à±â€ à°šà±‡à°¯à°¬à°¡à°¦à±.  à°®à±€à°°à± à°¤à°°à±à°µà°¾à°¤ "
+-#~ "SELinux à°µà±†à°¨à±à°•à°•à± à°‰à°‚చాలని à°…à°¨à±à°•à±à°‚టే, à°¸à°¿à°¸à±à°Ÿà°®à±â€Œà°•à± à°šà±‡à°°à±à°šà°µà°²à°¿à°¸à°¿ à°‰à°‚à°Ÿà±à°‚ది.  à°®à±€à°°à± SELinux à°¸à°¿à°¸à±à°Ÿà°®à± "
+-#~ "నందౠసమసà±à°¯à°•à± à°•à°¾à°°à°£à°®à±Œà°¤à±à°‚దేమో à°šà±‚డాలనà±à°•à±à°‚టే, à°®à±€à°°à± à°…à°¨à±à°®à°¤à°¿à°—à°² à°°à±€à°¤à°¿ à°µà±†à°³à±à°³à°µà°šà±à°šà± à°à°¦à±ˆà°¤à±‡ à°¦à±‹à°·à°¾à°²à°¨à± à°®à°°à°¿à°¯à± "
+-#~ "బలవంతంకాని SELinux à°µà°¿à°§à°¾à°¨à°‚నౠలాగౠచేసà±à°¤à±à°‚దో.  à°…à°¨à±à°®à°¤à°¿à°—à°² à°°à±€à°¤à°¿à°•à°¿ à°ªà±à°¨à°ƒà°ªà±à°°à°¾à°°à°‚à°­à°‚ à°…వసరంలేదౠ   "
+-#~ "మీరౠకొనసాగిదà±à°¦à°¾à°®à°¨à°¿ à°…à°¨à±à°•à±à°‚à°Ÿà±à°¨à±à°¨à°¾à°°à°¾?"
+-
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "SELinux à°šà±‡à°¤à°¨à°‚కౠమారà±à°šà±à°Ÿ à°…à°¨à±à°¨à°¦à°¿ à°¤à°°à±à°µà°¾à°¤à°¿ à°¬à±‚టౠనందౠమొతà±à°¤à°‚ à°¦à°¸à±à°¤à±à°° à°µà±à°¯à°µà°¸à±à°¥ à°¯à±Šà°•à±à°• à°šà±†à°°à°¿à°•à°•à± "
+-#~ "కారణమౌతà±à°‚ది. à°šà±‡à°°à±à°šà±à°Ÿ à°…à°¨à±à°¨à°¦à°¿ à°¦à°¸à±à°¤à±à°° à°µà±à°¯à°µà°¸à±à°¥ à°ªà°°à°¿à°®à°¾à°£à°‚ à°ªà±ˆ à°†à°§à°¾à°°à°ªà°¡à°¿ à°Žà°•à±à°•à±à°µ à°¸à°®à°¯à°‚ à°¤à±€à°¸à°•à±‹à°µà°šà±à°šà±.  à°®à±€à°°à± "
+-#~ "కొనసాగించాలని à°…à°¨à±à°•à±à°‚à°Ÿà±à°¨à±à°¨à°¾à°°à°¾?"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "కాపీరైటౠ(c)2006 Red Hat, Inc.\n"
+-#~ "కాపీరైటౠ(c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "SELinux à°²à°¾à°—ినౠమాపింగà±â€Œà°¨à± à°œà°¤à°šà±‡à°¯à±à°®à±"
+-
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "SELinux à°¨à±†à°Ÿà±à°µà°°à±à°•à± à°ªà±‹à°°à±à°Ÿà±à°¸à±â€â€Œà°¨à± à°œà°¤à°šà±‡à°¯à±à°®à±"
+-
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux à°°à°•à°®à±"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "à°¸à±à°¥à°¾à°¯à°¿"
+-
+-#~ msgid "File Specification"
+-#~ msgstr "దసà±à°¤à±à°°à°®à± à°µà°¿à°¶à°¦à±€à°•à°°à°£à°®à±"
+-
+-#~ msgid "File Type"
+-#~ msgstr "దసà±à°¤à±à°°à°®à± à°°à°•à°®à±"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "à°…à°¨à±à°¨à°¿ à°¦à°¸à±à°¤à±à°°à°®à±à°²à±\n"
+-#~ "సాదారణ à°¦à°¸à±à°¤à±à°°à°®à±\n"
+-#~ "సంచయమà±\n"
+-#~ "à°…à°•à±à°·à°° à°ªà°°à°¿à°•à°°à°®à±\n"
+-#~ "à°¬à±à°²à°¾à°•à± à°ªà°°à°¿à°•à°°à°®à±\n"
+-#~ "సాకెటà±\n"
+-#~ "సింబాలికౠలింకà±\n"
+-#~ "నేమà±à°¡à±â€ à°ªà±ˆà°ªà±\n"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
+-
+-#~ msgid "Add SELinux User"
+-#~ msgstr "SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారిని à°œà°¤à°šà±‡à°¯à±à°®à±"
+-
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux à°¨à°¿à°°à±à°µà°¹à°£"
+-
+-#~ msgid "Add"
+-#~ msgstr "జతచేయి"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "లకà±à°·à°£à°®à±à°²à±(_P)"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "తొలగించà±(_D)"
+-
+-#~ msgid "Select Management Object"
+-#~ msgstr "నిరà±à°µà°¹à°£ à°†à°¬à±à°œà°•à±à°Ÿà±â€â€Œà°¨à± à°Žà°‚పికచేయà±à°®à±"
+-
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>ఎంపికచేయి:</b>"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "సిసà±à°Ÿà°®à± à°…à°ªà±à°°à°®à±‡à°¯ à°¬à°²à°µà°‚తపౠరీతి"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "à°ªà±à°°à°¸à±à°¤à±à°¤ à°¬à°²à°µà°‚తపౠరీతి"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "సిసà±à°Ÿà°®à± à°…à°ªà±à°°à°®à±‡à°¯ à°µà°¿à°§à°¾à°¨ à°°à°•à°®à±: "
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "తరà±à°µà°¾à°¤à°¿ à°ªà±à°¨à°ƒà°ªà±à°°à°¾à°°à°‚భంనందౠమొతà±à°¤à°‚ à°¦à°¸à±à°¤à±à°° à°µà±à°¯à°µà°¸à±à°¥à°¨à± à°šà±‡à°°à±à°šà°¾à°²à°¨à±à°•à±à°‚టే à°Žà°‚పికచేయండి.  à°šà±‡à°°à±à°šà±à°Ÿ à°…à°¨à±à°¨à°¦à°¿ "
+-#~ "చాలా à°Žà°•à±à°•à±à°µ à°¸à°®à°¯à°‚ à°¤à±€à°¸à±à°•à±à°‚à°Ÿà±à°‚ది, à°¸à°¿à°¸à±à°Ÿà°®à± à°¯à±Šà°•à±à°• à°ªà°°à°¿à°®à°¾à°£à°‚ à°®à±€à°¦ à°†à°¦à°¾à°°à°ªà°¡à°¿.  à°®à±€à°°à± à°ˆ à°µà°¿à°§à°®à±ˆà°¨ à°µà°¿à°§à°¾à°¨à°¾à°²à°¨à± "
+-#~ "మారà±à°šà±à°¤à±à°‚టే à°²à±‡à°¦à°¾ à°…చేతనంనà±à°‚à°¡à°¿ à°¬à°²à°µà°‚తపà±à°•à± à°µà±†à°³à±à°¤à±à°‚టే, à°šà±‡à°°à°¿à°• à°…వసరమౌతà±à°‚ది."
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "తరà±à°µà°¾à°¤à°¿ à°ªà±à°¨à°ƒà°ªà±à°°à°¾à°°à°‚భంనందౠచేరà±à°šà±à°®à±."
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "బూలియనౠఅమరికనౠసిసà±à°Ÿà°®à± à°…à°ªà±à°°à°®à±‡à°¯à°‚కౠతిపà±à°ªà°¿à°µà±à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "à°…à°¨à±à°¨à°¿ à°¬à±‚లియనà±à°¸à±â€ à°®à°°à°¿à°¯à± à°®à°²à±à°šà±à°•à±Šà°¨à°¿à°¨ à°µà°¾à°Ÿà°¿à°®à°¾à°¦à±à°¯ à°®à°¾à°°à±à°®à±"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "వడపోత"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "దసà±à°¤à±à°° à°¸à°‚దరà±à°­à°‚నౠజతచేయà±à°®à±"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "దసà±à°¤à±à°°à°®à± à°¸à°‚దరà±à°­à°‚నౠసవరించà±à°®à±"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "దసà±à°¤à±à°° à°¸à°‚దరà±à°­à°‚నౠతొలగించà±à°®à±"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "à°…à°¨à±à°¨à°¿à°Ÿà°¿ à°®à°°à°¿à°¯à± à°®à°²à±à°šà±à°•à±Šà°¨à°¿à°¨ à°¦à°¸à±à°¤à±à°° à°¸à°‚దరà±à°¬à°‚ à°®à°¦à±à°¯ à°®à°¾à°°à±à°®à±"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°®à°¾à°ªà°¿à°‚à°—à±â€Œà°¨à± à°œà°¤à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°®à°¾à°ªà°¿à°‚గౠసవరించà±à°®à±"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి à°®à°¾à°ªà°¿à°‚గౠతొలగించà±à°®à±"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "à°…à°¨à±à°µà°¾à°¦à°®à±à°¨à± à°œà°¤à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "à°…à°¨à±à°µà°¾à°¦à°®à±à°¨à± à°¸à°µà°°à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "à°…à°¨à±à°µà°¾à°¦à°®à±à°¨à± à°¤à±Šà°²à°—à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారిని à°¸à°µà°°à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "నెటà±à°µà°°à±à°•à±â€ à°ªà±‹à°°à±à°Ÿà±â€â€Œà°¨à± à°œà°¤à°šà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "నెటà±à°µà°°à±à°•à±â€ à°ªà±‹à°°à±à°Ÿà±â€ à°¸à°°à°¿à°šà±‡à°¯à°¿"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "నెటà±à°µà°°à±à°•à±â€ à°ªà±‹à°°à±à°Ÿà±â€ à°¤à±Šà°²à°—à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "à°…à°¨à±à°¨à°¿ à°ªà±‹à°°à±à°Ÿà±à°¸à±â€ à°®à°°à°¿à°¯à± à°®à°²à±à°šà±à°•à±Šà°¨à°¿à°¨ à°µà°¾à°Ÿà°¿à°®à°¾à°¦à±à°¯ à°®à°¾à°°à±à°®à±"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "కొతà±à°¤ à°µà°¿à°§à°¾à°¨à°‚ à°®à°¾à°¡à±à°¯à±‚à°²à±â€Œà°¨à± à°‰à°¦à±à°­à°µà°¿à°‚పచేయà±à°®à±"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "విధానం à°®à°¾à°¡à±à°¯à±‚à°²à±â€Œà°¨à± à°¨à°¿à°‚à°ªà±à°®à±"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "నింపదగౠవిధానం à°®à°¾à°¡à±à°¯à±‚à°²à±â€Œà°¨à± à°¤à±€à°¸à°¿à°µà±‡à°¯à±à°®à±"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr "అదనపౠఆడిటౠనియమాలనౠఅచేతనం/చేతనం à°šà±‡à°¯à±à°®à±, à°¸à°¾à°¦à°¾à°°à°£à°‚à°—à°¾ à°²à°¾à°—ౠదసà±à°¤à±à°°à°®à±à°²à°¨à°‚దౠనివేదించబడని."
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "మృదà±à°¤à±à°µà°‚ à°¸à±à°¥à°¾à°¯à°¿"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux à°µà°¿à°¨à°¿à°¯à±‹à°—దారి '%s' à°…వసరమà±"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Requires value"
+-#~ msgstr "విలà±à°µ à°…వసరమà±"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
+-#~ msgstr ""
+-#~ "à° tcp à°ªà±‹à°°à±à°Ÿà±à°¸à±â€â€Œà°•à± à°…యినా > 1024 à°•à± à°¬à°‚ధనం à°…à°—à±à°Ÿà°•à± à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any tcp port"
+-#~ msgstr "à° tcp à°ªà±‹à°°à±à°Ÿà±â€â€Œà°•à±ˆà°¨à°¾ à°¬à°‚ధనం à°…à°—à±à°Ÿà°•à± à°ªà°°à°¿à°®à°¿à°¤ à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°ªà°¾à°¤à±à°° à°¨à± à°…à°¨à±à°®à°¤à°¿à°¸à±à°¤à±à°‚ది"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "à°† à°…à°¨à±à°µà°°à±à°¤à°¨à°‚/వినియోగదారి à°ªà°¾à°¤à±à°° à°¬à°‚దనం à°…గౠకామావిభజిత tcp à°ªà±‹à°°à±à°Ÿà±à°¸à±â€ à°²à±‡à°¦à°¾ à°ªà±‹à°°à±à°Ÿà±à°¸à±â€ à°¸à±à°¥à°¾à°¯à°¿à°²à°¨à± "
+-#~ "à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±à°®à±. à°‰à°¦à°¾à°¹à°°à°£: 612, 650-660"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Druid"
+-#~ msgstr "SELinux à°µà°¿à°§à°¾à°¨à°‚ à°‰à°¦à±à°­à°µà°¨ à°¡à±à°°à±à°¯à°¿à°¡à±"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Unreserved Ports  (> 1024)"
+-#~ msgstr "నిలà±à°µà°‰à°‚చని à°ªà±‹à°°à±à°Ÿà±à°¸à±â€  (> 1024)"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
+-#~ msgstr "మీ app à°•à°¾à°²à±à°¸à±â€ bindresvport 0 à°¤à±‹ à°‰à°‚టే à°ˆ à°šà±†à°•à±â€Œà°¬à°Ÿà°¨à±â€Œà°¨à± à°‰à°ªà°¯à±‹à°—à°¿à°‚à°šà°‚à°¡à°¿."
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Enforcing\n"
+-#~ "Permissive\n"
+-#~ "Disabled\n"
+-#~ msgstr ""
+-#~ "బలవంతపà±\n"
+-#~ "à°…à°¨à±à°®à°¤à°¿à°—à°²\n"
+-#~ "అచేతనమైన\n"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/th.po b/policycoreutils/po/th.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/th.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/tr.po b/policycoreutils/po/tr.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/tr.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/uk.po b/policycoreutils/po/uk.po
+index d20fae1..96b0c94 100644
+--- a/policycoreutils/po/uk.po
++++ b/policycoreutils/po/uk.po
+@@ -1,20 +1,23 @@
+-# Ukraqinian translation of policycoreutils.
+-# Copyright (C) 2006 Free software Foundation
+-# This file is distributed under the same license as the policycoreutils package.
+-# Maxim Dziumanenko <dziumanenko@gmail.com>, 2006-2007.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ #
++# Translators:
++# Yuri Chornoivan <yurchor@ukr.net>, 2010, 2012.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2007-01-23 17:22+0300\n"
+-"Last-Translator: Maxim Dziumanenko <dziumanenko@gmail.com>\n"
+-"Language-Team: Ukrainian <uk@li.org>\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-03 05:09+0000\n"
++"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
++"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
+ "Language: uk\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
++"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -23,8 +26,8 @@ msgid ""
+ "         <args ...> are the arguments to that script."
+ msgstr ""
+ "ВИКОРИСТÐÐÐЯ: run_init <Ñценарій> <аргументи ...>\n"
+-"  Ð´Ðµ: <Ñценарій> - Ð½Ð°Ð·Ð²Ð° Ñценарію Ñ–ніціалізації Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку,\n"
+-"         <аргументи ...> - Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚и Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ñценарію."
++"  Ð´Ðµ <Ñценарій> â€” Ð½Ð°Ð·Ð²Ð° Ñценарію Ñ–ніціалізації Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку,\n"
++"         <аргументи ...> â€” Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚и Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ñценарію."
+ #: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+ #, c-format
+@@ -34,7 +37,7 @@ msgstr "не Ð²Ð´Ð°Ð»Ð¾ÑѠініціалізувати PAM\n"
+ #: ../run_init/run_init.c:139
+ #, c-format
+ msgid "failed to get account information\n"
+-msgstr "не Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати Ñ–нформацію Ð¿Ñ€Ð¾ Ð¾Ð±Ð»Ñ–ковий Ñ€Ð°Ñ…унок\n"
++msgstr "не Ð²Ð´Ð°Ð»Ð¾ÑѠотримати Ñ–нформацію Ñ‰Ð¾Ð´Ð¾ Ð¾Ð±Ð»Ñ–кового Ð·Ð°Ð¿Ð¸Ñу\n"
+ #: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+ msgid "Password:"
+@@ -43,12 +46,12 @@ msgstr "Пароль:"
+ #: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+ #, c-format
+ msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзнайти ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚ Ñƒ Ñ‚іньовому Ñ„айлі Ð¿Ð°Ñ€Ð¾Ð»Ñ–в.\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзнайти Ð²Ð°Ñˆ Ð·Ð°Ð¿Ð¸Ñ Ñƒ Ñ‚іньовому Ñ„айлі Ð¿Ð°Ñ€Ð¾Ð»Ñ–в.\n"
+ #: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+ #, c-format
+ msgid "getpass cannot open /dev/tty\n"
+-msgstr "getpass Ð½Ðµ Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвідкрити /dev/tty\n"
++msgstr "getpass Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾ÑѠвідкрити /dev/tty\n"
+ #: ../run_init/run_init.c:275
+ #, c-format
+@@ -58,12 +61,12 @@ msgstr "run_init: Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¸Ð¹ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ Ð´Ð»Ñ %s\n"
+ #: ../run_init/run_init.c:309
+ #, c-format
+ msgid "Could not open file %s\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвідкрити Ñ„айл %s\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвідкрити Ñ„айл %s\n"
+ #: ../run_init/run_init.c:336
+ #, c-format
+ msgid "No context in file %s\n"
+-msgstr "У Ñ„айлі Ð²Ñ–дÑутній ÐºÐ¾Ð½Ñ‚екÑÑ‚ %s\n"
++msgstr "У Ñ„айлі %s Ð½ÐµÐ¼Ð°Ñ” ÐºÐ¾Ð½Ñ‚екÑтів\n"
+ #: ../run_init/run_init.c:361
+ #, c-format
+@@ -73,124 +76,117 @@ msgstr "run_init Ð¼Ð¾Ð¶Ðµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтовуватиÑÑŒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ñ
+ #: ../run_init/run_init.c:380
+ #, c-format
+ msgid "authentication failed.\n"
+-msgstr "помилка Ð°ÑƒÑ‚ентифікації.\n"
++msgstr "помилка Ñ€Ð¾Ð·Ð¿Ñ–знаваннÑ.\n"
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+ #, c-format
+ msgid "Could not set exec context to %s.\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвиконати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñƒ %s.\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñƒ %s.\n"
+ #: ../audit2allow/audit2allow:230
+-#, fuzzy
+ msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-"\n"
+-"******************** Ð’ÐЖЛИВО ***********************\n"
++msgstr "********************* Ð’ÐЖЛИВО ************************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr ""
++msgstr "ДлѠактивації Ð¿Ð°ÐºÐµÑ‚у Ð¿Ñ€Ð°Ð²Ð¸Ð» Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚е:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+-msgstr ""
++msgstr "глобально"
+ #: ../semanage/seobject.py:222
+-#, fuzzy
+ msgid "Could not create semanage handle"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзапуÑтити Ñ‚ранзакцію semanage"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити Ð´ÐµÑкриптор semanage"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr "Політика SELinux Ð½Ðµ Ñ” Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ÑŽ Ð°Ð±Ð¾ Ð½ÐµÐ¼Ð°Ñ” Ð´Ð¾Ñтупу Ð´Ð¾ Ñховища."
++msgstr "Правила SELinux Ð½Ðµ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð°Ð±Ð¾ Ð½ÐµÐ¼Ð°Ñ” Ð´Ð¾Ñтупу Ð´Ð¾ Ñховища."
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠпрочитати Ñховище Ð¿Ð¾Ð»Ñ–тики."
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠпрочитати Ð´Ð°Ð½Ñ– Ñховища Ð¿Ñ€Ð°Ð²Ð¸Ð»."
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ð·'єднаннѠз semanage"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвÑтановити Ð·'єднаннѠз semanage"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ð´Ñ–апазон MLS Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвÑтановити Ð°ÐºÑ‚ивний ÑтатуѠMLS"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+-msgstr ""
++msgstr "Функцію Ñ‰Ðµ Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–зовано"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "ТранзакціѠsemanage Ð²Ð¶Ðµ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзапуÑтити Ñ‚ранзакцію semanage"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзапуÑтити Ñ‚ранзакцію semanage"
+ #: ../semanage/seobject.py:274
+-#, fuzzy
+ msgid "Could not commit semanage transaction"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзапуÑтити Ñ‚ранзакцію semanage"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзавершити Ñ‚ранзакцію semanage"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "ТранзакціѠsemanage Ð½Ðµ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-#, fuzzy
+ msgid "Could not list SELinux modules"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати ÑпиÑок ÐºÐ¾Ñ€Ð¸Ñтувачів SELinux"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÑпиÑок Ð¼Ð¾Ð´ÑƒÐ»Ñ–в SELinux"
+ #: ../semanage/seobject.py:304
+ msgid "Modules Name"
+-msgstr ""
++msgstr "Ðазва Ð¼Ð¾Ð´ÑƒÐ»Ñ"
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+-msgstr ""
++msgstr "ВерÑÑ–Ñ"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+-msgstr ""
++msgstr "Вимкнено"
+ #: ../semanage/seobject.py:322
+ #, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr ""
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвимкнути Ð¼Ð¾Ð´ÑƒÐ»ÑŒ %s (помилка Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ)"
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати Ñ€Ð¾Ð»ÑŒ %s Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠувімкнути Ð¼Ð¾Ð´ÑƒÐ»ÑŒ %s (помилка Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ)"
+ #: ../semanage/seobject.py:348
+ #, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr ""
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити Ð¼Ð¾Ð´ÑƒÐ»ÑŒ %s (помилка Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ)"
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
++msgstr "длѠdontaudit Ñлід Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚и Â«on» Ð°Ð±Ð¾ Â«off»"
+ #: ../semanage/seobject.py:387
+ msgid "Builtin Permissive Types"
+-msgstr ""
++msgstr "Вбудовані Ñ‚ипи permissive"
+ #: ../semanage/seobject.py:397
+ msgid "Customized Permissive Types"
+-msgstr ""
++msgstr "Ðетипові Ñ‚ипи permissive"
+ #: ../semanage/seobject.py:438
+ #, python-format
+ msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати permissive Ð´Ð¾Ð¼ÐµÐ½ %s (помилка Ð²ÑтановленнѠмодулÑ)"
+ #: ../semanage/seobject.py:444
+ #, python-format
+ msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити permissive Ð´Ð¾Ð¼ÐµÐ½ %s (помилка Ð¿Ñ€Ð¸ Ð²Ñтановленні)"
+ #: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+ #: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+@@ -201,18 +197,18 @@ msgstr ""
+ #: ../semanage/seobject.py:2037
+ #, python-format
+ msgid "Could not create a key for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+ #, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠперевірити Ñ‡Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ mapping Ð²Ñ…оду Ð´Ð»Ñ %s "
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠперевірити Ñ‡Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ mapping Ð²Ñ…оду Ð´Ð»Ñ %s "
+ #: ../semanage/seobject.py:492
+-#, fuzzy, python-format
++#, python-format
+ msgid "Linux Group %s does not exist"
+-msgstr "КориÑтувач %s Ð½Ðµ Ñ–Ñнує Ñƒ Linux"
++msgstr "Linux-група %s Ð½Ðµ Ñ–Ñнує"
+ #: ../semanage/seobject.py:497
+ #, python-format
+@@ -222,27 +218,27 @@ msgstr "КориÑтувач %s Ð½Ðµ Ñ–Ñнує Ñƒ Linux"
+ #: ../semanage/seobject.py:501
+ #, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити mapping Ð²Ñ…оду Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити mapping Ð²Ñ…оду Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+ msgid "Could not set name for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ð½Ð°Ð·Ð²Ñƒ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ð½Ð°Ð·Ð²Ñƒ %s"
+ #: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+ #, python-format
+ msgid "Could not set MLS range for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ð´Ñ–апазон MLS Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ð´Ñ–апазон MLS Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:514
+ #, python-format
+ msgid "Could not set SELinux user for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити ÐºÐ¾Ñ€Ð¸Ñтувача SELinux Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвÑтановити ÐºÐ¾Ñ€Ð¸Ñтувача SELinux Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати mapping Ð²Ñ…оду Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠдодати mapping Ð²Ñ…оду Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+@@ -256,89 +252,93 @@ msgstr "mapping Ð²Ñ…оду Ð´Ð»Ñ %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:563
+ #, python-format
+ msgid "Could not query seuser for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзапитати seuser Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзапитати seuser Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:577
+ #, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзмінити mapping Ð²Ñ…оду Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзмінити mapping Ð²Ñ…оду Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:611
+ #, python-format
+ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr "mapping Ð²Ñ…оду Ð´Ð»Ñ %s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ð¾Ð»Ñ–тиці, Ð½Ðµ Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити"
++msgstr "mapping Ð²Ñ…оду Ð´Ð»Ñ %s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ñ…, Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити"
+ #: ../semanage/seobject.py:615
+ #, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити mapping Ð²Ñ…оду Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити mapping Ð²Ñ…оду Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+ msgid "Could not list login mappings"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвивеÑти mapping Ð²Ñ…оду"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвивеÑти Ð¿Ñ€Ð¸Ð²â€™Ñзки Ð²Ñ…оду"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+-msgstr ""
++msgstr "РеєÑтраційне Ñ–м'Ñ"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-#, fuzzy
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+-msgstr "Потрібно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ñ‚ип SELinux"
++msgstr "КориÑтувач SELinux"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+-msgstr ""
++msgstr "Діапазон MLS/MCS"
+ #: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+ #: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+ #: ../semanage/seobject.py:860
+ #, python-format
+ msgid "Could not check if SELinux user %s is defined"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠперевірити Ñ‡Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ ÐºÐ¾Ñ€Ð¸Ñтувач SELinux %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠперевірити Ñ‡Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ ÐºÐ¾Ñ€Ð¸Ñтувач SELinux %s"
+ #: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+ #: ../semanage/seobject.py:866
+ #, python-format
+ msgid "Could not query user for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзапитати ÐºÐ¾Ñ€Ð¸Ñтувача Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзапитати ÐºÐ¾Ñ€Ð¸Ñтувача Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:722
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must add at least one role for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Треба Ð´Ð¾Ð´Ð°Ñ‚и Ð¿Ñ€Ð¸Ð½Ð°Ð¹Ð¼Ð½Ñ– Ð¾Ð´Ð½Ñƒ Ñ€Ð¾Ð»ÑŒ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:737
+ #, python-format
+ msgid "Could not create SELinux user for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити ÐºÐ¾Ñ€Ð¸Ñтувача SELinux Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити ÐºÐ¾Ñ€Ð¸Ñтувача SELinux Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:746
+ #, python-format
+ msgid "Could not add role %s for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати Ñ€Ð¾Ð»ÑŒ %s Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠдодати Ñ€Ð¾Ð»ÑŒ %s Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:755
+ #, python-format
+ msgid "Could not set MLS level for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ñ€Ñ–вень MLS Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвÑтановити Ñ€Ñ–вень MLS Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:758
+ #, python-format
+ msgid "Could not add prefix %s for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати Ð¿Ñ€ÐµÑ„ікѠ%s Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠдодати Ð¿Ñ€ÐµÑ„ікѠ%s Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:761
+ #, python-format
+ msgid "Could not extract key for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвитÑгнути ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвитÑгнути ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:765
+ #, python-format
+ msgid "Could not add SELinux user %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати ÐºÐ¾Ñ€Ð¸Ñтувача SELinux %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠдодати ÐºÐ¾Ñ€Ð¸Ñтувача SELinux %s"
+ #: ../semanage/seobject.py:787
+ msgid "Requires prefix, roles, level or range"
+@@ -351,55 +351,56 @@ msgstr "Потрібен Ð¿Ñ€ÐµÑ„ікѠабо Ñ€Ð¾Ð»ÑŒ"
+ #: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+ #, python-format
+ msgid "SELinux user %s is not defined"
+-msgstr "КориÑтувач SELinux  %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹"
++msgstr "КориÑтувача SELinux %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:828
+ #, python-format
+ msgid "Could not modify SELinux user %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзмінити ÐºÐ¾Ñ€Ð¸Ñтувача SELinux %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзмінити ÐºÐ¾Ñ€Ð¸Ñтувача SELinux %s"
+ #: ../semanage/seobject.py:862
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr "КориÑтувач SELinux %s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ð¾Ð»Ñ–тиці, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚и Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¸Ð¹"
++msgstr "КориÑтувач SELinux %s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ñ…, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚и Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:873
+ #, python-format
+ msgid "Could not delete SELinux user %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити ÐºÐ¾Ñ€Ð¸Ñтувача SELinux %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити ÐºÐ¾Ñ€Ð¸Ñтувача SELinux %s"
+ #: ../semanage/seobject.py:911
+ msgid "Could not list SELinux users"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати ÑпиÑок ÐºÐ¾Ñ€Ð¸Ñтувачів SELinux"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÑпиÑок ÐºÐ¾Ñ€Ð¸Ñтувачів SELinux"
+ #: ../semanage/seobject.py:917
+ #, python-format
+ msgid "Could not list roles for user %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати ÑпиÑок Ñ€Ð¾Ð»ÐµÐ¹ ÐºÐ¾Ñ€Ð¸Ñтувача %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÑпиÑок Ñ€Ð¾Ð»ÐµÐ¹ ÐºÐ¾Ñ€Ð¸Ñтувача %s"
+ #: ../semanage/seobject.py:942
+ msgid "Labeling"
+-msgstr ""
++msgstr "Розмітка"
+ #: ../semanage/seobject.py:942
+ msgid "MLS/"
+-msgstr ""
++msgstr "MLS/"
+ #: ../semanage/seobject.py:943
+ msgid "Prefix"
+-msgstr ""
++msgstr "ПрефікÑ"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Level"
+-msgstr ""
++msgstr "Рівень MCS"
+ #: ../semanage/seobject.py:943
+ msgid "MCS Range"
+-msgstr ""
++msgstr "Діапазон MCS"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+-msgstr ""
++msgstr "Ролі SELinux"
+ #: ../semanage/seobject.py:963
+ msgid "Protocol udp or tcp is required"
+@@ -407,27 +408,26 @@ msgstr "Потрібен Ð¿Ñ€Ð¾Ñ‚окол udp Ñ‡Ð¸ tcp"
+ #: ../semanage/seobject.py:965
+ msgid "Port is required"
+-msgstr "Ðеобхідно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ð¿Ð¾Ñ€Ñ‚"
++msgstr "Слід Ð²ÐºÐ°Ð·Ð°Ñ‚и Ð¿Ð¾Ñ€Ñ‚"
+ #: ../semanage/seobject.py:975
+-#, fuzzy
+ msgid "Invalid Port"
+-msgstr "Ðеправильний Ð¿Ñ€ÐµÑ„ікѠ%s"
++msgstr "Ðекоректний Ð¿Ð¾Ñ€Ñ‚"
+ #: ../semanage/seobject.py:979
+ #, python-format
+ msgid "Could not create a key for %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:990
+ msgid "Type is required"
+-msgstr "Ðеобхідно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ñ‚ип"
++msgstr "Слід Ð²ÐºÐ°Ð·Ð°Ñ‚и Ñ‚ип"
+ #: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+ #: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+ #, python-format
+ msgid "Could not check if port %s/%s is defined"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠчи Ð¿Ð¾Ñ€Ñ‚ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠчи Ð¿Ð¾Ñ€Ñ‚ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ %s/%s"
+ #: ../semanage/seobject.py:998
+ #, python-format
+@@ -437,42 +437,42 @@ msgstr "Порт %s/%s Ð²Ð¶Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:1002
+ #, python-format
+ msgid "Could not create port for %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити Ð¿Ð¾Ñ€Ñ‚ Ð´Ð»Ñ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити Ð¿Ð¾Ñ€Ñ‚ Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1008
+ #, python-format
+ msgid "Could not create context for %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1012
+ #, python-format
+ msgid "Could not set user in port context for %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвказати ÐºÐ¾Ñ€Ð¸Ñтувача Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð¿Ð¾Ñ€Ñ‚у Ð´Ð»Ñ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати ÐºÐ¾Ñ€Ð¸Ñтувача Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð¿Ð¾Ñ€Ñ‚у Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1016
+ #, python-format
+ msgid "Could not set role in port context for %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ñ€Ð¾Ð»ÑŒ Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð¿Ð¾Ñ€Ñ‚у Ð´Ð»Ñ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвÑтановити Ñ€Ð¾Ð»ÑŒ Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð¿Ð¾Ñ€Ñ‚у Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1020
+ #, python-format
+ msgid "Could not set type in port context for %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ñ‚ип Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð¿Ð¾Ñ€Ñ‚у Ð´Ð»Ñ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвÑтановити Ñ‚ип Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð¿Ð¾Ñ€Ñ‚у Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1025
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ð¿Ð¾Ð»Ðµ mls Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð¿Ð¾Ñ€Ñ‚у Ð´Ð»Ñ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвÑтановити Ð¿Ð¾Ð»Ðµ mls Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð¿Ð¾Ñ€Ñ‚у Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+ msgid "Could not set port context for %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð¿Ð¾Ñ€Ñ‚у Ð´Ð»Ñ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð¿Ð¾Ñ€Ñ‚у Ð´Ð»Ñ %s/%s"
+ #: ../semanage/seobject.py:1033
+ #, python-format
+ msgid "Could not add port %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати Ð´Ð¾Ð´Ð°Ñ‚и Ð¿Ð¾Ñ€Ñ‚  %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠдодати Ð´Ð¾Ð´Ð°Ñ‚и Ð¿Ð¾Ñ€Ñ‚  %s/%s"
+ #: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+ #: ../semanage/seobject.py:1508
+@@ -491,57 +491,55 @@ msgstr "Порт %s/%s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:1061
+ #, python-format
+ msgid "Could not query port %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзапитати Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзапитати Ð¿Ð¾Ñ€Ñ‚ %s/%s"
+ #: ../semanage/seobject.py:1072
+ #, python-format
+ msgid "Could not modify port %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзмінити Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзмінити Ð¿Ð¾Ñ€Ñ‚ %s/%s"
+ #: ../semanage/seobject.py:1085
+-#, fuzzy
+ msgid "Could not list the ports"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати ÑпиÑок Ð¿Ð¾Ñ€Ñ‚ів"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÑпиÑок Ð¿Ð¾Ñ€Ñ‚ів"
+ #: ../semanage/seobject.py:1101
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the port %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðеможливо Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚и Ð¿Ð¾Ñ€Ñ‚ %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+ msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr "Порт %s/%s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ð¾Ð»Ñ–тиці, Ð½Ðµ Ð¼Ð¾Ð¶Ñƒ Ð±ÑƒÑ‚и Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¸Ð¹"
++msgstr "Порт %s/%s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ñ…, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚и Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:1122
+ #, python-format
+ msgid "Could not delete port %s/%s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити Ð¿Ð¾Ñ€Ñ‚ %s/%s"
+ #: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+ msgid "Could not list ports"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати ÑпиÑок Ð¿Ð¾Ñ€Ñ‚ів"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÑпиÑок Ð¿Ð¾Ñ€Ñ‚ів"
+ #: ../semanage/seobject.py:1199
+ msgid "SELinux Port Type"
+-msgstr ""
++msgstr "Тип Ð¿Ð¾Ñ€Ñ‚у SELinux"
+ #: ../semanage/seobject.py:1199
+ msgid "Proto"
+-msgstr ""
++msgstr "Протокол"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+-msgstr ""
++msgstr "Ðомер Ð¿Ð¾Ñ€Ñ‚у"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "Ðеобхідно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ð¿Ð¾Ñ€Ñ‚"
++msgstr "Потрібно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ð°Ð´Ñ€ÐµÑа Ð²ÑƒÐ·Ð»Ð°"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "Протокол Ð²Ñ–дÑутній Ñ‡Ð¸ Ð½ÐµÐ²Ñ–домий"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -554,254 +552,253 @@ msgstr "Потрібно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ñ‚ип SELinux"
+ #: ../semanage/seobject.py:1728
+ #, python-format
+ msgid "Could not create key for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠчи Ð¿Ð¾Ñ€Ñ‚ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠперевірити Ñ‡Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð°Ð´Ñ€ÐµÑу %s"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити ÐºÐ»ÑŽÑ‡ Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити Ð°Ð´Ñ€ÐµÑу %s"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+ #, python-format
+ msgid "Could not create context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ð½Ð°Ð·Ð²Ñƒ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ð¼Ð°Ñку %s"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити ÐºÐ¾Ñ€Ð¸Ñтувача Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати ÐºÐ¾Ñ€Ð¸Ñтувача Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð°Ð´Ñ€ÐµÑи Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ñ€Ð¾Ð»ÑŒ Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ñ€Ð¾Ð»ÑŒ Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð°Ð´Ñ€ÐµÑи Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ñ‚ип Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ñ‚ип Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð°Ð´Ñ€ÐµÑи Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ð¿Ð¾Ð»Ðµ mls Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ð¿Ð¾Ð»Ñ mls Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ð°Ð´Ñ€ÐµÑи Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати ÐºÐ¾Ð½Ñ‚екÑÑ‚ addr Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати Ð´Ð¾Ð´Ð°Ñ‚и Ð¿Ð¾Ñ€Ñ‚  %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠдодати addr %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "Порт %s/%s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
++msgstr "Addr %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзапитати Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзапитати addr %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзмінити Ð¿Ð¾Ñ€Ñ‚ %s/%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзмінити addr %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "Порт %s/%s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ð¾Ð»Ñ–тиці, Ð½Ðµ Ð¼Ð¾Ð¶Ñƒ Ð±ÑƒÑ‚и Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¸Ð¹"
++msgstr "ÐдреÑу %s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ñ…, Ñ—Ñ— Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸Ð»ÑƒÑ‡Ð°Ñ‚и"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити Ñ–нтерфейѠ%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити Ð°Ð´Ñ€ÐµÑу %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити mapping Ð²Ñ…оду Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити Ð²ÑÑ– Ð¿Ñ€Ð¸Ð²â€™Ñзки Ð²Ñ–дповідники Ð²ÑƒÐ·Ð»Ñ–в"
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати ÑпиÑок Ð¿Ð¾Ñ€Ñ‚ів"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÑпиÑок addr"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+ #, python-format
+ msgid "Could not check if interface %s is defined"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠперевірити Ñ‡Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñ–нтерфейѠ%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠперевірити Ñ‡Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñ–нтерфейѠ%s"
+ #: ../semanage/seobject.py:1461
+ #, python-format
+ msgid "Could not create interface for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити Ñ–нтерфейѠдлѠ%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити Ñ–нтерфейѠдлѠ%s"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити ÐºÐ¾Ñ€Ð¸Ñтувача Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ–нтерфейÑу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати ÐºÐ¾Ñ€Ð¸Ñтувача Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ–нтерфейÑу Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ñ€Ð¾Ð»ÑŒ Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ–нтерфейÑу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ñ€Ð¾Ð»ÑŒ Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ–нтерфейÑу Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ñ‚ип Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ–нтерфейÑу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ñ‚ип Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ–нтерфейÑу Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ð¿Ð¾Ð»Ðµ mls Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ–нтерфейÑу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ð¿Ð¾Ð»Ðµ mls Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ–нтерфейÑу Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ–нтерфейÑу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ–нтерфейÑу Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+ msgid "Could not set message context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð¿Ð¾Ð²Ñ–домленнѠінтерфейѠдлѠ%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð¿Ð¾Ð²Ñ–домленнѠдлѠ%s"
+ #: ../semanage/seobject.py:1495
+ #, python-format
+ msgid "Could not add interface %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати Ñ–нтерфейѠ%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠдодати Ñ–нтерфейѠ%s"
+ #: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+ #, python-format
+ msgid "Interface %s is not defined"
+-msgstr "ІнтерфейѠ %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
++msgstr "ІнтерфейѠ%s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:1522
+ #, python-format
+ msgid "Could not query interface %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзапитати Ñ–нтерфейѠ%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзапитати Ñ–нтерфейѠ%s"
+ #: ../semanage/seobject.py:1533
+ #, python-format
+ msgid "Could not modify interface %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзмінити Ñ–нтерфейѠ%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзмінити Ñ–нтерфейѠ%s"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+ msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr "ІнтерфейѠ%s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñƒ Ð¿Ð¾Ð»Ñ–тиці, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚и Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¸Ð¹"
++msgstr "ІнтерфейѠ%s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñƒ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ñ…, Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚и Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+ msgid "Could not delete interface %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити Ñ–нтерфейѠ%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити Ñ–нтерфейѠ%s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити Ñ–нтерфейѠ%s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити Ð²ÑÑ– Ð¿Ñ€Ð¸Ð²â€™Ñзки Ñ–нтерфейÑів"
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠперелічити Ñ–нтерфейÑи"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÑпиÑок Ñ–нтерфейÑів"
+ #: ../semanage/seobject.py:1613
+ msgid "SELinux Interface"
+-msgstr ""
++msgstr "ІнтерфейѠSELinux"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+-msgstr ""
++msgstr "КонтекÑÑ‚"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "КонтекÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s Ð²Ð¶Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
++msgstr "КлаѠеквівалентноÑÑ‚Ñ– Ð´Ð»Ñ %s Ð²Ð¶Ðµ Ñ–Ñнує"
+ #: ../semanage/seobject.py:1669
+ #, python-format
+ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
++msgstr "СпецифікаціѠфайлів, %s, Ñуперечить Ð¿Ñ€Ð°Ð²Ð¸Ð»Ñƒ ÐµÐºÐ²Ñ–валентноÑÑ‚Ñ– Â«%s %s»"
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "КориÑтувач %s Ð½Ðµ Ñ–Ñнує Ñƒ Linux"
++msgstr "КлаÑу ÐµÐºÐ²Ñ–валентноÑÑ‚Ñ– Ð´Ð»Ñ %s Ð½Ðµ Ñ–Ñнує"
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити ÐºÐ¾Ñ€Ð¸Ñтувача Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати ÐºÐ¾Ñ€Ð¸Ñтувача Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ñ€Ð¾Ð»ÑŒ Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ñ€Ð¾Ð»ÑŒ Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ð¿Ð¾Ð»Ðµ mls Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ð¿Ð¾Ð»Ðµ mls Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+-msgstr ""
++msgstr "Ðеправильна Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ„айла"
+ #: ../semanage/seobject.py:1709
+ msgid "File specification can not include spaces"
+-msgstr ""
++msgstr "У Ñпецифікації Ñ„айлів Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовувати Ð¿Ñ€Ð¾Ð±Ñ–ли"
+ #: ../semanage/seobject.py:1714
+ #, python-format
+ msgid ""
+ "File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+ msgstr ""
++"СпецифікаціѠфайлів, %s, Ñуперечить Ð¿Ñ€Ð°Ð²Ð¸Ð»Ñƒ ÐµÐºÐ²Ñ–валентноÑÑ‚Ñ– Â«%s %s». "
++"Спробуйте ÐºÑ€Ð°Ñ‰Ðµ Ð´Ð¾Ð´Ð°Ñ‚и Â«%s»."
+ #: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+ #: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+ #: ../semanage/seobject.py:1876
+ #, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠперевірити Ñ‡Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠперевірити Ñ‡Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1745
+ #, python-format
+ msgid "Could not create file context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ñтворити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñтворити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ñ‚ип Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ñ‚ип Ñƒ ÐºÐ¾Ð½Ñ‚екÑÑ‚Ñ– Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+ msgid "Could not add file context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠдодати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+@@ -810,71 +807,74 @@ msgstr "Потрібно Ð²ÐºÐ°Ð·Ð°Ñ‚и setype, serange Ñ‡Ð¸ seuser"
+ #: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+ #, python-format
+ msgid "File context for %s is not defined"
+-msgstr "КонтекÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
++msgstr "КонтекÑÑ‚ Ñ„айла Ð´Ð»Ñ %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
+ #: ../semanage/seobject.py:1800
+ #, python-format
+ msgid "Could not query file context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзапитати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзапитати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1826
+ #, python-format
+ msgid "Could not modify file context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзмінити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзмінити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1839
+-#, fuzzy
+ msgid "Could not list the file contexts"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати ÑпиÑок ÐºÐ¾Ð½Ñ‚екÑтів Ñ„айлів"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÑпиÑок ÐºÐ¾Ð½Ñ‚екÑтів Ñ„айлів"
+ #: ../semanage/seobject.py:1853
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+ msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr "КонтекÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ð¾Ð»Ñ–тиці, Ð¹Ð¾Ð³Ð¾ Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚и"
++msgstr "КонтекÑÑ‚ Ñ„айла Ð´Ð»Ñ %s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ñ…, Ð¹Ð¾Ð³Ð¾ Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚и"
+ #: ../semanage/seobject.py:1884
+ #, python-format
+ msgid "Could not delete file context for %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла Ð´Ð»Ñ %s"
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати ÑпиÑок ÐºÐ¾Ð½Ñ‚екÑтів Ñ„айлів"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÑпиÑок ÐºÐ¾Ð½Ñ‚екÑтів Ñ„айлів"
+ #: ../semanage/seobject.py:1903
+ msgid "Could not list local file contexts"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати ÑпиÑок Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… ÐºÐ¾Ð½Ñ‚екÑтів Ñ„айлів"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÑпиÑок Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… ÐºÐ¾Ð½Ñ‚екÑтів Ñ„айлів"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+-msgstr ""
++msgstr "КонтекÑÑ‚ Ñ„айла SELinux"
+ #: ../semanage/seobject.py:1936
+ msgid "type"
+-msgstr ""
++msgstr "тип"
+ #: ../semanage/seobject.py:1949
+ msgid ""
+ "\n"
+ "SELinux Distribution fcontext Equivalence \n"
+ msgstr ""
++"\n"
++"ЕквівалентніÑÑ‚ÑŒ Ñ„айлових ÐºÐ¾Ð½Ñ‚екÑтів Ð´Ð¸Ñтрибутива SELinux\n"
+ #: ../semanage/seobject.py:1954
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+ msgstr ""
++"\n"
++"ЕквівалентніÑÑ‚ÑŒ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… Ñ„айлових ÐºÐ¾Ð½Ñ‚екÑтів SELinux\n"
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+ #, python-format
+ msgid "Could not check if boolean %s is defined"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠперевірити Ñ‡Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð»Ð¾Ð³Ñ–чне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠперевірити Ñ‡Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð»Ð¾Ð³Ñ–чне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s"
+ #: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+ #, python-format
+@@ -884,69 +884,70 @@ msgstr "Логічне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+ msgid "Could not query file context %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзапитати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзапитати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айла %s"
+ #: ../semanage/seobject.py:1999
+-#, fuzzy, python-format
++#, python-format
+ msgid "You must specify one of the following values: %s"
+-msgstr "Ðеобхідно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ð¿Ñ€ÐµÑ„ікÑ"
++msgstr "Слід Ð²ÐºÐ°Ð·Ð°Ñ‚и Ð¾Ð´Ð½Ðµ Ð· Ñ‚аких Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ: %s"
+ #: ../semanage/seobject.py:2004
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set active value of boolean %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити Ð»Ð¾Ð³Ñ–чне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ð°ÐºÑ‚ивне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–нної %s"
+ #: ../semanage/seobject.py:2007
+ #, python-format
+ msgid "Could not modify boolean %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзмінити Ð»Ð¾Ð³Ñ–чне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзмінити Ð»Ð¾Ð³Ñ–чне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s"
+ #: ../semanage/seobject.py:2025
+ #, python-format
+ msgid "Bad format %s: Record %s"
+-msgstr ""
++msgstr "Ðеправильний Ñ„ормат %s: Ð—апиѠ%s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr "Логічне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ð¾Ð»Ñ–тиці, Ð¹Ð¾Ð³Ð¾ Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚и"
++msgstr "Логічне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ñ…, Ð¹Ð¾Ð³Ð¾ Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚и"
+ #: ../semanage/seobject.py:2052
+ #, python-format
+ msgid "Could not delete boolean %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити Ð»Ð¾Ð³Ñ–чне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвилучити Ð»Ð¾Ð³Ñ–чне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s"
+ #: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+ msgid "Could not list booleans"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати ÑпиÑок Ð»Ð¾Ð³Ñ–чних Ð·Ð¼Ñ–нних"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÑпиÑок Ð»Ð¾Ð³Ñ–чних Ð·Ð¼Ñ–нних"
+ #: ../semanage/seobject.py:2104
+ msgid "unknown"
+-msgstr ""
++msgstr "невідомо"
+ #: ../semanage/seobject.py:2117
+ msgid "off"
+-msgstr ""
++msgstr "вимкнено"
+ #: ../semanage/seobject.py:2117
+ msgid "on"
+-msgstr ""
++msgstr "увімкнено"
+ #: ../semanage/seobject.py:2131
+ msgid "SELinux boolean"
+-msgstr ""
++msgstr "Логічна Ð·Ð¼Ñ–нна SELinux"
+ #: ../semanage/seobject.py:2131
+ msgid "State"
+-msgstr ""
++msgstr "Стан"
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+-msgstr ""
++msgstr "Типовий"
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+-msgstr ""
++msgstr "ОпиÑ"
+ #: ../newrole/newrole.c:201
+ #, c-format
+@@ -956,17 +957,17 @@ msgstr "помилка Ð²ÑтановленнѠPAM_TTY\n"
+ #: ../newrole/newrole.c:290
+ #, c-format
+ msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
++msgstr "newrole: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ…еш-таблиці Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚рів Ð½Ð°Ð·Ð² Ñлужб\n"
+ #: ../newrole/newrole.c:300
+ #, c-format
+ msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
++msgstr "newrole:  %s:  Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ñ€Ñдку %lu.\n"
+ #: ../newrole/newrole.c:439
+ #, c-format
+ msgid "cannot find valid entry in the passwd file.\n"
+-msgstr "не Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзнайти Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ Ñƒ Ñ„айлі passwd.\n"
++msgstr "не Ð²Ð´Ð°Ð»Ð¾ÑѠзнайти Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ Ñƒ Ñ„айлі passwd.\n"
+ #: ../newrole/newrole.c:450
+ #, c-format
+@@ -976,12 +977,12 @@ msgstr "ÐедоÑтатньо Ð¿Ð°Ð¼'ÑÑ‚Ñ–!\n"
+ #: ../newrole/newrole.c:455
+ #, c-format
+ msgid "Error!  Shell is not valid.\n"
+-msgstr "Помилка!  Ðеправильна Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ°.\n"
++msgstr "Помилка! Ðеправильна Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ°.\n"
+ #: ../newrole/newrole.c:512
+ #, c-format
+ msgid "Unable to clear environment\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠочиÑтити Ð¾Ñ‚оченнÑ\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑÑ Ñпорожнити Ð·Ð¼Ñ–нні Ñередовища\n"
+ #: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+ #, c-format
+@@ -1011,31 +1012,31 @@ msgstr "Помилка Ð½Ð°Ð´ÑиланнѠповідомленнѠаудит
+ #: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+ #, c-format
+ msgid "Could not determine enforcing mode.\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвизначити Ñ€ÐµÐ¶Ð¸Ð¼ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ (enforcing).\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвизначити Ñ€ÐµÐ¶Ð¸Ð¼ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ (enforcing).\n"
+ #: ../newrole/newrole.c:699
+ #, c-format
+ msgid "Error!  Could not open %s.\n"
+-msgstr "Помилка! Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвідкрити %s.\n"
++msgstr "Помилка! Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвідкрити %s.\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s!  Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s, Ð¿ÐµÑ€ÐµÐ¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡Ð¾Ðº tty Ð½Ðµ "
++"%s! Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s, Ð¿ÐµÑ€ÐµÐ¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡Ð¾Ðº tty Ð½Ðµ "
+ "відбулоÑÑŒ.\n"
+ #: ../newrole/newrole.c:715
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+ msgstr ""
+-"%s!  Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати Ð½Ð¾Ð²Ð¸Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s, Ð¿ÐµÑ€ÐµÐ¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡Ð¾Ðº "
+-"tty Ð½Ðµ Ð²Ñ–дбулоÑÑŒ.\n"
++"%s!  Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати Ð½Ð¾Ð²Ð¸Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s, Ð¿ÐµÑ€ÐµÐ¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡Ð¾Ðº tty "
++"не Ð²Ñ–дбулоÑÑŒ.\n"
+ #: ../newrole/newrole.c:725
+ #, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr "%s!  Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ð½Ð¾Ð²Ð¸Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s\n"
++msgstr "%s! Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвказати Ð½Ð¾Ð²Ð¸Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+@@ -1045,7 +1046,7 @@ msgstr "змінено %s Ð¿Ð¾Ð·Ð½Ð°Ñ‡Ð¾Ðº.\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr "ПопередженнÑ!  Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвідновити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s\n"
++msgstr "ПопередженнÑ! Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвідновити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ð´Ð»Ñ %s\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+@@ -1070,17 +1071,17 @@ msgstr "Помилка: Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð´ÐµÐºÑ–лька Ñ€Ñ–внів\n"
+ #: ../newrole/newrole.c:865
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
++msgstr "Помилка: Ð²Ð¸ Ð½Ðµ Ð·Ð¼Ð¾Ð¶ÐµÑ‚е Ð·Ð¼Ñ–нювати Ñ€Ñ–вень Ñƒ Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¾Ð¼Ñƒ Ñ‚ерміналі\n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+ msgid "Couldn't get default type.\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати Ñ‚иповий Ñ‚ип.\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати Ñ‚иповий Ñ‚ип.\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+ msgid "failed to get new context.\n"
+-msgstr "не Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати Ð½Ð¾Ð²Ð¸Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚.\n"
++msgstr "не Ð²Ð´Ð°Ð»Ð¾ÑѠотримати Ð½Ð¾Ð²Ð¸Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚.\n"
+ #: ../newrole/newrole.c:908
+ #, c-format
+@@ -1095,7 +1096,7 @@ msgstr "помилка Ð²ÑтановленнѠнового Ñ‚ипу %s\n"
+ #: ../newrole/newrole.c:925
+ #, c-format
+ msgid "failed to build new range with level %s\n"
+-msgstr "не Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠпобудувати Ð½Ð¾Ð²Ð¸Ð¹ Ð´Ñ–апазон Ð· Ñ€Ñ–внем %s\n"
++msgstr "не Ð²Ð´Ð°Ð»Ð¾ÑѠпобудувати Ð½Ð¾Ð²Ð¸Ð¹ Ð´Ñ–апазон Ð· Ñ€Ñ–внем %s\n"
+ #: ../newrole/newrole.c:930
+ #, c-format
+@@ -1105,7 +1106,7 @@ msgstr "помилка Ð²ÑтановленнѠнової Ð´Ñ–апазону %s
+ #: ../newrole/newrole.c:938
+ #, c-format
+ msgid "failed to convert new context to string\n"
+-msgstr "не Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠперетворити Ð½Ð¾Ð²Ð¸Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñƒ Ñ€Ñдок\n"
++msgstr "не Ð²Ð´Ð°Ð»Ð¾ÑѠперетворити Ð½Ð¾Ð²Ð¸Ð¹ ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñƒ Ñ€Ñдок\n"
+ #: ../newrole/newrole.c:943
+ #, c-format
+@@ -1115,17 +1116,17 @@ msgstr "%s Ð½Ðµ Ñ” Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¸Ð¼ ÐºÐ¾Ð½Ñ‚екÑтом\n"
+ #: ../newrole/newrole.c:950
+ #, c-format
+ msgid "Unable to allocate memory for new_context"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвиділити Ð¿Ð°Ð¼'ÑÑ‚ÑŒ Ð´Ð»Ñ new_context"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвиділити Ð¿Ð°Ð¼'ÑÑ‚ÑŒ Ð´Ð»Ñ new_context"
+ #: ../newrole/newrole.c:976
+ #, c-format
+ msgid "Unable to obtain empty signal set\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ–й Ñигнал Ð²Ñ–д\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ–й Ñигнал Ð²Ñ–д\n"
+ #: ../newrole/newrole.c:984
+ #, c-format
+ msgid "Unable to set SIGHUP handler\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвÑтановити Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸Ðº SIGHUP\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвÑтановити Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸Ðº SIGHUP\n"
+ #: ../newrole/newrole.c:1053
+ #, c-format
+@@ -1135,17 +1136,17 @@ msgstr "newrole Ð¼Ð¾Ð¶Ðµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтовуватиÑÑŒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ñд
+ #: ../newrole/newrole.c:1070
+ #, c-format
+ msgid "failed to get old_context.\n"
+-msgstr "не Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати old_context.\n"
++msgstr "не Ð²Ð´Ð°Ð»Ð¾ÑѠотримати old_context.\n"
+ #: ../newrole/newrole.c:1077
+-#, fuzzy, c-format
++#, c-format
+ msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr "Помилка!  Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠотримати Ñ–нформацію Ð¿Ñ€Ð¾ tty.\n"
++msgstr "ПопередженнÑ!  Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠотримати Ñ–нформацію Ð¿Ñ€Ð¾ tty.\n"
+ #: ../newrole/newrole.c:1098
+ #, c-format
+ msgid "error on reading PAM service configuration.\n"
+-msgstr ""
++msgstr "помилка Ð¿Ñ€Ð¸ Ñ‡Ð¸Ñ‚анні ÐºÐ¾Ð½Ñ„ігурації Ñлужби PAM.\n"
+ #: ../newrole/newrole.c:1133
+ #, c-format
+@@ -1160,17 +1161,17 @@ msgstr "newrole: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° ÑтвореннѠдочірнього Ð¿Ñ€Ð¾Ñ†
+ #: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+ #, c-format
+ msgid "Unable to restore tty label...\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвідновити Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐºÑƒ tty...\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвідновити Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐºÑƒ tty...\n"
+ #: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+ #, c-format
+ msgid "Failed to close tty properly\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠправильно Ð·Ð°ÐºÑ€Ð¸Ñ‚и tty\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠправильно Ð·Ð°ÐºÑ€Ð¸Ñ‚и tty\n"
+ #: ../newrole/newrole.c:1224
+ #, c-format
+ msgid "Could not close descriptors.\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзакрити Ð´ÐµÑкриптор.\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзакрити Ð´ÐµÑкриптор.\n"
+ #: ../newrole/newrole.c:1251
+ #, c-format
+@@ -1180,31 +1181,31 @@ msgstr "Помилка Ð²Ð¸Ð´Ñ–леннѠargv0 Ñƒ Ð¾Ð±Ð¾Ð»Ð¾Ð½Ñ†Ñ–.\n"
+ #: ../newrole/newrole.c:1287
+ #, c-format
+ msgid "Unable to restore the environment, aborting\n"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвідновити Ð¾Ñ‚оченнÑ, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾\n"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠвідновити Ð¾Ñ‚оченнÑ, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾\n"
+ #: ../newrole/newrole.c:1298
+ msgid "failed to exec shell\n"
+-msgstr "не Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвиконати Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÑƒ\n"
++msgstr "не Ð²Ð´Ð°Ð»Ð¾ÑѠвиконати Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÑƒ\n"
+ #: ../load_policy/load_policy.c:22
+-#, fuzzy, c-format
++#, c-format
+ msgid "usage:  %s [-qi]\n"
+-msgstr "викориÑтаннÑ:  %s [-bq]\n"
++msgstr "викориÑтаннÑ:  %s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
++msgstr "%s: Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð²Ð¶Ðµ Ð·Ð°Ð²Ð°Ð½Ñ‚ажено, Ð·Ð°Ð¿Ð¸Ñ‚ано Ð¿Ð¾Ñ‡Ð°Ñ‚кове Ð·Ð°Ð²Ð°Ð½Ñ‚аженнÑ\n"
+ #: ../load_policy/load_policy.c:80
+-#, fuzzy, c-format
++#, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s: Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзавантажити Ð¿Ð¾Ð»Ñ–тику:  %s\n"
++msgstr "%s: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾ÑѠзавантажити Ð·Ð°Ð¿Ð¸Ñ‚ані Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ñƒ Ð¿Ñ€Ð¸Ð¼ÑƒÑовому Ñ€ÐµÐ¶Ð¸Ð¼Ñ–: %s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr "%s: Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзавантажити Ð¿Ð¾Ð»Ñ–тику:  %s\n"
++msgstr "%s: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾ÑѠзавантажити Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°:  %s\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+@@ -1213,7 +1214,7 @@ msgstr "Потрібна Ð¿Ñ€Ð¸Ð½Ð°Ð¹Ð¼Ð½Ñ– Ð¾Ð´Ð½Ð° ÐºÐ°Ñ‚егоріÑ"
+ #: ../scripts/chcat:106 ../scripts/chcat:183
+ #, c-format
+ msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзмінити Ñ‡ÑƒÑ‚ливіÑÑ‚ÑŒ Ñ€Ñ–внів Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовуючи '+' Ð½Ð° %s"
++msgstr "Ðе Ð²Ð´Ð°Ð»Ð¾ÑѠзмінити Ñ‡ÑƒÑ‚ливіÑÑ‚ÑŒ Ñ€Ñ–внів Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовуючи '+' Ð½Ð° %s"
+ #: ../scripts/chcat:110
+ #, c-format
+@@ -1227,55 +1228,55 @@ msgstr "%s Ð½Ðµ Ñƒ %s"
+ #: ../scripts/chcat:267 ../scripts/chcat:272
+ msgid "Can not combine +/- with other types of categories"
+-msgstr "Ðе Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð±Ñ–нувати +/- Ð· Ñ–ншими Ñ‚ипами ÐºÐ°Ñ‚егорій"
++msgstr "Ðе Ð¼Ð¾Ð¶Ð½Ð° Ð¿Ð¾Ñ”днувати +/- Ð· Ñ–ншими Ñ‚ипами ÐºÐ°Ñ‚егорій"
+ #: ../scripts/chcat:319
+ msgid "Can not have multiple sensitivities"
+-msgstr "Кілька sensitivities Ð½Ðµ Ð¿Ñ–дтримуютьÑÑ"
++msgstr "Кілька Ñ€Ñ–внів Ñ‡ÑƒÑ‚ливоÑÑ‚Ñ– Ð½Ðµ Ð¿Ñ–дтримуютьÑÑ"
+ #: ../scripts/chcat:325
+ #, c-format
+ msgid "Usage %s CATEGORY File ..."
+-msgstr "ВикориÑтаннѠ%s ÐšÐТЕГОРІЯ Ñ„айл ..."
++msgstr "ВикориÑтаннÑ: %s ÐšÐТЕГОРІЯ Ñ„айл ..."
+ #: ../scripts/chcat:326
+ #, c-format
+ msgid "Usage %s -l CATEGORY user ..."
+-msgstr "ВикориÑтаннѠ%s -l ÐšÐТЕГОРІЯ ÐºÐ¾Ñ€Ð¸Ñтувач ..."
++msgstr "ВикориÑтаннÑ: %s -l ÐšÐТЕГОРІЯ ÐºÐ¾Ñ€Ð¸Ñтувач ..."
+ #: ../scripts/chcat:327
+ #, c-format
+ msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr "ВикориÑтаннѠ%s [[+|-]КÐТЕГОРІЯ],...]q Ñ„айл ..."
++msgstr "ВикориÑтаннÑ: %s [[+|-]КÐТЕГОРІЯ],...]q Ñ„айл ..."
+ #: ../scripts/chcat:328
+ #, c-format
+ msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr "ВикориÑтаннѠ%s -l [[+|-]КÐТЕГОРІЯ],...]q ÐºÐ¾Ñ€Ð¸Ñтувач ..."
++msgstr "ВикориÑтаннÑ: %s -l [[+|-]КÐТЕГОРІЯ],...]q ÐºÐ¾Ñ€Ð¸Ñтувач ..."
+ #: ../scripts/chcat:329
+ #, c-format
+ msgid "Usage %s -d File ..."
+-msgstr "ВикориÑтаннѠ%s -d Ð¤Ð°Ð¹Ð» ..."
++msgstr "ВикориÑтаннÑ: %s -d Ð¤Ð°Ð¹Ð» ..."
+ #: ../scripts/chcat:330
+ #, c-format
+ msgid "Usage %s -l -d user ..."
+-msgstr "ВикориÑтаннѠ%s -l -d ÐºÐ¾Ñ€Ð¸Ñтувач ..."
++msgstr "ВикориÑтаннÑ: %s -l -d ÐºÐ¾Ñ€Ð¸Ñтувач ..."
+ #: ../scripts/chcat:331
+ #, c-format
+ msgid "Usage %s -L"
+-msgstr "ВикориÑтаннѠ%s -L"
++msgstr "ВикориÑтаннÑ: %s -L"
+ #: ../scripts/chcat:332
+ #, c-format
+ msgid "Usage %s -L -l user"
+-msgstr "ВикориÑтаннѠ%s -L -l ÐºÐ¾Ñ€Ð¸Ñтувач"
++msgstr "ВикориÑтаннÑ: %s -L -l ÐºÐ¾Ñ€Ð¸Ñтувач"
+ #: ../scripts/chcat:333
+ msgid "Use -- to end option list.  For example"
+-msgstr "ВикориÑтовуйте -- Ð´Ð»Ñ ÑпиÑку Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚рів.  Ðаприклад"
++msgstr "ВикориÑтовуйте -- Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ ÑпиÑку Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚рів. ÐŸÑ€Ð¸ÐºÐ»Ð°Ð´Ð¸:"
+ #: ../scripts/chcat:334
+ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+@@ -1285,180 +1286,2230 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+-msgstr "Помилка Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚ра %s"
++msgstr "Помилка Ñƒ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚рах %s"
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr "Логічні Ð·Ð¼Ñ–нні"
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr "УÑÑ–"
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr "Змінені"
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr "ПризначеннѠпозначок Ñ„айлам"
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++"СпецифікаціÑ\n"
++"файлів"
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++"Тип Ñ„айлу\n"
++"SELinux"
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++"Тип\n"
++"файлу"
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr "ВідповідніÑÑ‚ÑŒ ÐºÐ¾Ñ€Ð¸Ñтувачів"
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++"РеєÑтраційне\n"
++"ім'Ñ"
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++"КориÑтувач\n"
++"SELinux"
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++"Діапазон\n"
++"MLS/MCS"
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr "Потрібна Ð°Ð²Ñ‚оризаціѠ'%s'"
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr "Модуль Ð¿Ð¾Ð»Ñ–тики"
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr "Ðазва Ð¼Ð¾Ð´ÑƒÐ»Ñ"
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr "Вимкнути Ð°ÑƒÐ´Ð¸Ñ‚"
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr "Увімкнути Ð°ÑƒÐ´Ð¸Ñ‚"
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr "Завантажити Ð¼Ð¾Ð´ÑƒÐ»ÑŒ Ð¿Ð¾Ð»Ñ–тики"
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr "Polgen"
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr "Red Hat 2007"
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr "GPL"
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr "МакÑим Ð”зюманенко <dziumanenko@gmail.com>"
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr "Утиліта Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ–Ñ— Ð¿Ð¾Ð»Ñ–тики SELinux"
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++"<b>Виберіть Ñ‚ип Ð¿Ñ€Ð°Ð²Ð¸Ð» Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð°Ð±Ð¾ Ñ€Ð¾Ð»Ñ– ÐºÐ¾Ñ€Ð¸Ñтувача, Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñких "
++"ви Ñ…очете Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚и:</b>"
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr "<b>Програма</b>"
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++"Стандартні Ñлужби Ñ–ніціалізації Ð·Ð°Ð¿ÑƒÑкаютьÑѠпри Ð·Ð°Ð²Ð°Ð½Ñ‚аженні Ð·Ð° Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾ÑŽ "
++"Ñценаріїв init, Ñкі Ð·Ð°Ð·Ð²Ð¸Ñ‡Ð°Ð¹ Ñ€Ð¾Ð·Ñ‚ашовані Ñƒ /etc/rc.d/init.d"
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr "Стандартна Ñлужба Init"
+-#, fuzzy
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr ""
+-#~ "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвідкрити %s: Ñ‚ранÑлÑції Ð½Ðµ Ð¿Ñ–дтримуютьÑѠна Ð½Ðµ-MLS ÐºÐ¾Ð¼Ð¿'ютерах"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr "СиÑтемна Ñлужба DBUS"
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "ТранÑлÑції Ð½Ðµ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ Ð¼Ñ–Ñтити Ð¿Ñ€Ð¾Ð±Ñ–ли '%s' "
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr "initd Ð·Ð°Ð¿ÑƒÑкаєтьÑÑ Ñлужбою xinetd"
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "Ðеправильний Ñ€Ñ–вень '%s' "
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr "Фонова Ñлужба Ñ–нтернет-Ñлужб (inetd)"
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s Ð²Ð¶Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ñ‚ранÑлÑції"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr "Веб-програми/ Ñценарії CGI, Ñ‰Ð¾ Ð·Ð°Ð¿ÑƒÑкаютьÑѠвеб-Ñервером Apache"
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr "Веб-програма/ Ñценарій (CGI)"
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++"Програма ÐºÐ¾Ñ€Ð¸Ñтувача -- Ð±ÑƒÐ´ÑŒ-Ñка Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°, Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð° ÐºÐ¾Ñ€Ð¸Ñтувачем, Ð´Ð¾ Ñкого "
++"ви Ñ…очете Ð·Ð°ÑтоÑувати Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ."
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr "Програма ÐºÐ¾Ñ€Ð¸Ñтувача"
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr "ПіÑочницÑ"
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr "<b>ЗареєÑтровані ÐºÐ¾Ñ€Ð¸Ñтувачі</b>"
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr "Змінити Ð½Ð°Ñвний Ð·Ð°Ð¿Ð¸Ñ Ð°Ð²Ñ‚оризації ÐºÐ¾Ñ€Ð¸Ñтувача."
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr "ÐаÑвні Ñ€Ð¾Ð»Ñ– ÐºÐ¾Ñ€Ð¸Ñтувачів"
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++"КориÑтувач Ð¼Ð¾Ð¶Ðµ Ð°Ð²Ñ‚оризуватиÑѠлише Ð²Ñ–ддалено Ñ‡Ð¸ Ñƒ Ñ‚ерміналі. ÐŸÐ¾Ñ‡Ð°Ñ‚ково Ð´Ð»Ñ "
++"кориÑтувача Ð½Ðµ Ð½Ð°Ð»Ð°ÑˆÑ‚овані setuid, sudo, su Ñ‚а Ð¼ÐµÑ€ÐµÐ¶Ð½Ðµ Ð¾Ñ‚оченнÑ."
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr "Мінімальна Ñ€Ð¾Ð»ÑŒ ÐºÐ¾Ñ€Ð¸Ñтувача Ñ‚ерміналу"
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++"Цей ÐºÐ¾Ñ€Ð¸Ñтувач Ð¼Ð¾Ð¶Ðµ Ð°Ð²Ñ‚оризуватиÑѠза Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾ÑŽ X Ð°Ð±Ð¾ Ñ‚ерміналу. ÐŸÐ¾Ñ‡Ð°Ñ‚ково "
++"длѠкориÑтувача Ð½Ðµ Ð½Ð°Ð»Ð°ÑˆÑ‚овані setuid, sudo, su Ñ‚а Ð¼ÐµÑ€ÐµÐ¶Ð½Ðµ Ð¾Ñ‚оченнÑ."
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr "Мінімальна Ñ€Ð¾Ð»ÑŒ ÐºÐ¾Ñ€Ð¸Ñтувача X Window"
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++"КориÑтувач Ð· Ð¿Ð¾Ð²Ð½Ñ–ÑÑ‚ÑŽ Ð½Ð°Ð»Ð°ÑˆÑ‚ованим Ð¼ÐµÑ€ÐµÐ¶Ð½Ð¸Ð¼ Ð¾Ñ‚оченнÑм, Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð±ÐµÐ· setuid, "
++"без su, Ð±ÐµÐ· sudo."
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr "Роль ÐºÐ¾Ñ€Ð¸Ñтувача"
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++"КориÑтувач Ð· Ð¿Ð¾Ð²Ð½Ñ–ÑÑ‚ÑŽ Ð½Ð°Ð»Ð°ÑˆÑ‚ованим Ð¼ÐµÑ€ÐµÐ¶Ð½Ð¸Ð¼ Ð¾Ñ‚оченнÑм, Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð±ÐµÐ· setuid, "
++"без su, Ð¼Ð¾Ð¶Ðµ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и sudo Ð´Ð¾ Ñ€Ð¾Ð»ÐµÐ¹ Ð°Ð´Ð¼Ñ–ніÑтруваннѠroot."
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr "Роль Ð°Ð´Ð¼Ñ–ніÑтратора"
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr "<b>КориÑтувачі root</b>"
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++"Оберіть Ñ€Ð¾Ð»ÑŒ Ð°Ð´Ð¼Ñ–ніÑтратора root, Ñкщо Ñ†ÐµÐ¹ ÐºÐ¾Ñ€Ð¸Ñтувач Ñ‚акож Ð°Ð´Ð¼Ñ–ніÑтрує "
++"ÑиÑтему Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– root. ÐŸÑ€Ð¸ Ñ†ÑŒÐ¾Ð¼Ñƒ ÐºÐ¾Ñ€Ð¸Ñтувач Ð½Ðµ Ð·Ð¼Ð¾Ð¶Ðµ Ð°Ð²Ñ‚оризуватиÑѠу "
++"ÑиÑтемі Ð±ÐµÐ·Ð¿Ð¾Ñередньо."
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr "Роль Ð°Ð´Ð¼Ñ–ніÑтратора root"
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr "label104"
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr "<b>Вкажіть Ð½Ð°Ð·Ð²Ñƒ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð°Ð±Ð¾ Ñ€Ð¾Ð»ÑŒ ÐºÐ¾Ñ€Ð¸Ñтувача:</b>"
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr "Ðазва"
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++"Вкажіть Ð¿Ð¾Ð²Ð½Ð¸Ð¹ ÑˆÐ»ÑÑ… Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚у, Ñƒ Ñкому Ð±ÑƒÐ´ÑƒÑ‚ÑŒ Ð·Ð°ÑтоÑовані "
++"обмеженнÑ"
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr "…"
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr "Введіть ÑƒÐ½Ñ–кальну Ð½Ð°Ð·Ð²Ñƒ Ð´Ð»Ñ Ð¾Ð±Ð¼ÐµÐ¶ÑƒÐ²Ð°Ð½Ð¾Ñ— Ñ€Ð¾Ð»Ñ– Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð°Ð±Ð¾ ÐºÐ¾Ñ€Ð¸Ñтувача."
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr "Виконуваний Ñ„айл"
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr "Сценарій init"
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++"Вкажіть Ð¿Ð¾Ð²Ð½Ð¸Ð¹ ÑˆÐ»ÑÑ… Ð´Ð¾ Ñценарію init, Ñ‰Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтовуєтьÑѠдлѠзапуÑку "
++"обмежуваної Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸."
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr "label105"
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr "<b>Виберіть Ð²Ð¶Ðµ Ñтворену Ñ€Ð¾Ð»ÑŒ Ð´Ð»Ñ Ð²Ð½ÐµÑеннѠзмін:</b>"
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr "Виберіть Ñ€Ð¾Ð»Ñ– ÐºÐ¾Ñ€Ð¸Ñтувача, Ñкі Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð¸Ñ‚имуть Ð´Ð¾ Ð´Ð¾Ð¼ÐµÐ½Ñƒ %s."
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr "label106"
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr "<b>Виберіть Ñ€Ð¾Ð»Ñ–, Ñкі %s Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð¸Ñ‚име Ð´Ð¾:</b>"
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr "Виберіть Ð´Ð¾Ð¼ÐµÐ½Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸, Ñкі %s Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð¸Ñ‚име."
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr "label107"
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr "<b>Виберіть user_roles Ñкі Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð¸Ñ‚имуть Ð´Ð¾ %s:</b>"
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr "Виберіть Ñ€Ð¾Ð»Ñ– ÐºÐ¾Ñ€Ð¸Ñтувачів, Ñкі Ñлід Ð¿ÐµÑ€ÐµÐ½ÐµÑти Ñƒ Ð´Ð¾Ð¼ÐµÐ½Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼."
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr "label108"
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr "<b>Виберіть Ð´Ð¾Ð¼ÐµÐ½Ð¸, Ñкі Ð°Ð´Ð¼Ñ–ніÑтруватиме %s:</b>"
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr "Виберіть Ð´Ð¾Ð¼ÐµÐ½Ð¸, Ñкими Ð¼Ð°Ñ” ÐºÐµÑ€ÑƒÐ²Ð°Ñ‚и Ñ†ÐµÐ¹ ÐºÐ¾Ñ€Ð¸Ñтувач."
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr "label109"
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr "<b>Виберіть Ð´Ð¾Ð´Ð°Ñ‚кові Ñ€Ð¾Ð»Ñ– Ð´Ð»Ñ %s:</b>"
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr "label111"
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr "<b>Вкажіть Ð¼ÐµÑ€ÐµÐ¶ÐµÐ²Ñ– Ð¿Ð¾Ñ€Ñ‚и, Ð´Ð¾ Ñких Ð¿Ñ€Ð¸Ð²â€™ÑзуватиметьÑÑ %s:</b>"
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr "<b>Порти TCP</b>"
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr "ДозволÑÑ” %s Ð¿Ñ€Ð¸Ð²â€™ÑзуватиÑѠдо Ð±ÑƒÐ´ÑŒ-Ñкого Ð¿Ð¾Ñ€Ñ‚у UDP"
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr "УÑÑ–"
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++"Дозволити %s Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ñ‚и bindresvport Ð· 0. ÐŸÑ€Ð¸Ð²â€™ÑзуваннѠдо Ð¿Ð¾Ñ€Ñ‚у 600-1024."
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ñ‚ранÑлÑції"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr "600-1024"
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "mapping Ð²Ñ…оду Ð´Ð»Ñ %s Ð²Ð¶Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++"Вкажіть ÑпиÑок Ð¿Ð¾Ñ€Ñ‚ів Ñ‡Ð¸ Ð´Ñ–апазонів Ð¿Ð¾Ñ€Ñ‚ів UDP, Ñ€Ð¾Ð·Ð´Ñ–лених ÐºÐ¾Ð¼Ð¾ÑŽ, Ð· Ñкими "
++"буде Ð¿Ð¾Ð²â€™Ñзано %s. ÐŸÑ€Ð¸ÐºÐ»Ð°Ð´: 612, 650-660"
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr "Ðе Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¾Ð²Ð°Ð½Ñ– Ð¿Ð¾Ñ€Ñ‚и (>1024)"
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr "Виберіть Ð¿Ð¾Ñ€Ñ‚и"
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr "ДозволÑÑ” %s Ð·Ð²â€™ÑзуватиÑѠз Ð±ÑƒÐ´ÑŒ-Ñкими Ð¿Ð¾Ñ€Ñ‚ами UDP Ð· Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ > 1024"
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr "<b>Порти UDP</b>"
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr "label113"
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr "<b>Виберіть Ð¼ÐµÑ€ÐµÐ¶ÐµÐ²Ñ– Ð¿Ð¾Ñ€Ñ‚и, Ð· Ñкими Ð·â€™Ñ”днуватиметьÑÑ %s:</b>"
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr "ДозволÑÑ” %s Ð²Ñтановлювати Ð·â€™Ñ”днаннѠз Ð±ÑƒÐ´ÑŒ-Ñким Ð¿Ð¾Ñ€Ñ‚ом TCP"
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++"Вкажіть ÑпиÑок Ð¿Ð¾Ñ€Ñ‚ів Ñ‡Ð¸ Ð´Ñ–апазонів Ð¿Ð¾Ñ€Ñ‚ів TCP, Ñ€Ð¾Ð·Ð´Ñ–лених ÐºÐ¾Ð¼Ð¾ÑŽ, Ð· Ñкими "
++"буде Ð·â€™Ñ”днано %s. ÐŸÑ€Ð¸ÐºÐ»Ð°Ð´: 612, 650-660"
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr "ДозволÑÑ” %s Ð²Ñтановлювати Ð·â€™Ñ”днаннѠз Ð±ÑƒÐ´ÑŒ-Ñким Ð¿Ð¾Ñ€Ñ‚ом UDP"
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++"Вкажіть ÑпиÑок Ð¿Ð¾Ñ€Ñ‚ів Ñ‡Ð¸ Ð´Ñ–апазонів Ð¿Ð¾Ñ€Ñ‚ів UDP, Ñ€Ð¾Ð·Ð´Ñ–лених ÐºÐ¾Ð¼Ð¾ÑŽ, Ð· Ñкими "
++"буде Ð·â€™Ñ”днано %s. ÐŸÑ€Ð¸ÐºÐ»Ð°Ð´: 612, 650-660"
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr "label114"
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr "<b>Виберіть Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ñ– Ð²Ð»Ð°ÑтивоÑÑ‚Ñ– Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð´Ð»Ñ %s:</b>"
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr "ЗапиÑує Ð¿Ð¾Ð²Ñ–домленнѠsyslog\t"
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr "Створює Ñ‚а Ð¾Ð±Ñ€Ð¾Ð±Ð»ÑÑ” Ñ‚имчаÑові Ñ„айли Ñƒ ÐºÐ°Ñ‚алозі /tmp"
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr "ВикориÑтовує Pam Ð´Ð»Ñ Ð°Ð²Ñ‚ентифікації"
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr "ВикориÑтовує Ð²Ð¸ÐºÐ»Ð¸ÐºÐ¸ nsswitch Ñ‡Ð¸ getpw*"
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr "ВикориÑтовує dbus"
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr "ÐадÑилає Ð¿Ð¾Ð²Ñ–домленнѠaudit "
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr "Взаємодіє Ð· Ñ‚ерміналом"
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr "ÐадÑилає Ð¿Ð¾Ð²Ñ–домленнѠелектронною Ð¿Ð¾ÑˆÑ‚ою"
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr "label115"
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr "<b>Додайте Ñ„айли Ð°Ð±Ð¾ ÐºÐ°Ñ‚алоги, Ñкими ÐºÐµÑ€ÑƒÐ²Ð°Ñ‚име %s</b>"
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++"Файли Ð°Ð±Ð¾ ÐºÐ°Ñ‚алоги, Ñкими Â«ÐºÐµÑ€ÑƒÐ²Ð°Ñ‚име» %s. Ð¤Ð°Ð¹Ð»Ð¸ pid, Ñ„айли Ð¶ÑƒÑ€Ð½Ð°Ð»Ñ–в, Ñ„айли "
++"у /var/lib…"
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr "label116"
+-#, fuzzy
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати ÐºÐ¾Ñ€Ð¸Ñтувача SELinux %s"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr "<b>Додати Ð±ÑƒÐ»ÐµÐ²Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· Ð¿Ñ€Ð°Ð²Ð¸Ð» %s:</b>"
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "КориÑтувач SELinux %s Ð²Ð¶Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++"Додати Ð°Ð±Ð¾ Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚и Ð±ÑƒÐ»ÐµÐ²Ñ– Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°, Ñкі Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтовуватимутьÑѠдоменом %s"
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr "<b>До Ñкого ÐºÐ°Ñ‚алогу Ñлід Ñтворити Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° %s?</b>"
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr "Каталог Ð¿Ð¾Ð»Ñ–тики"
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr "Додати Ð´Ñ–алог Ð´Ð»Ñ Ð»Ð¾Ð³Ñ–чних Ð·Ð¼Ñ–нних"
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "Ðеобхідно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ð¿Ð¾Ñ€Ñ‚"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr "Ðазва Ð»Ð¾Ð³Ñ–чної Ð·Ð¼Ñ–нної"
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "Порт %s/%s Ð²Ð¶Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr "Роль"
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr "ÐаÑвний_кориÑтувач"
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr "Програма"
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr "%s Ð¼Ð°Ñ” Ð±ÑƒÑ‚и ÐºÐ°Ñ‚алогом"
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "ІнтерфейѠ%s Ð²Ð¶Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr "Потрібно Ð²ÐºÐ°Ð·Ð°Ñ‚и ÐºÐ¾Ñ€Ð¸Ñтувача"
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "Помилка Ñ–ніціалізації Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ñтей.\n"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr "Виберіть Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ„айл Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼Ñ–щеннѠобмежень."
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "Помилка Ñ–ніціалізації Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ñтей, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ñ”Ñ‚ÑŒÑÑ.\n"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr "Виберіть Ñценарій init Ð´Ð»Ñ Ð·Ð°ÑтоÑуваннѠобмежень."
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "Помилка ÑкиданнѠKEEPCAPS, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ñ”Ñ‚ÑŒÑÑ\n"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr "Виберіть Ñ„айли, Ñкі Ð¾Ð±Ð¼ÐµÐ¶ÑƒÐ²Ð°Ð½Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° Ð±ÑƒÐ´Ðµ Ñтворювати Ñ‡Ð¸ Ð·Ð°Ð¿Ð¸Ñувати"
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "Помилка ÑкиданнѠможливоÑтей, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ñ”Ñ‚ÑŒÑÑ\n"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr "Виберіть ÐºÐ°Ñ‚алоги, Ñкі Ð±ÑƒÐ´ÑƒÑ‚ÑŒ Ð½Ð°Ð»ÐµÐ¶Ð°Ñ‚и Ð¾Ð±Ð¼ÐµÐ¶ÑƒÐ²Ð°Ð½Ñ–й Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ñ–"
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "Помилка Ð²Ñ–дбираннѠможливоÑÑ‚Ñ– SETUID, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾\n"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr "Виберіть ÐºÐ°Ñ‚алог, Ñƒ Ñкому Ð±ÑƒÐ´ÑƒÑ‚ÑŒ ÑтворюватиÑÑŒ Ñ„айли Ð¿Ð¾Ð»Ñ–тики"
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "Помилка Ð·Ð²Ñ–льненнѠможливоÑтей\n"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++"Тип %s_t Ð²Ð¶Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ð¾Ñ‚очні Ð¿Ð¾Ð»Ñ–тиці.\n"
++"Продовжити?"
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "транÑлÑції Ð½Ðµ Ð¿Ñ–дтримуютьÑѠна Ð½Ðµ-MLS ÐºÐ¾Ð¼Ð¿'ютерах"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr "Перевірка Ð½Ð°Ð·Ð²Ð¸"
+-#, fuzzy
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr "Потрібно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ñ‚ип SELinux"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++"Модуль %s.pp Ð²Ð¶Ðµ Ð·Ð°Ð²Ð°Ð½Ñ‚ажено Ñƒ Ð¿Ð¾Ñ‚очну Ð¿Ð¾Ð»Ñ–тику .\n"
++"Продовжити?"
+-#, fuzzy
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "Потрібно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ñ‚ип SELinux"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++"Вам Ñлід Ð´Ð¾Ð´Ð°Ñ‚и Ð½Ð°Ð·Ð²Ñƒ, Ñкладену Ð· Ð»Ñ–тер Ñ– Ñ†Ð¸Ñ„Ñ€, Ñка Ð½Ðµ Ð¼Ñ–Ñтитиме Ð¿Ñ€Ð¾Ð±Ñ–лів."
+-#, fuzzy
+-#~ msgid "Sends audit messages"
+-#~ msgstr "Помилка Ð½Ð°Ð´ÑиланнѠповідомленнѠаудиту.\n"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr "Слід Ð²ÐºÐ°Ð·Ð°Ñ‚и Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ„айл"
+-#, fuzzy
+-#~ msgid "You must select a user"
+-#~ msgstr "Ðеобхідно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ñ€Ð¾Ð»ÑŒ"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr "ÐалаштовуваннѠSELinux"
+-#, fuzzy
+-#~ msgid "You must enter a name"
+-#~ msgstr "Ðеобхідно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ñ€Ð¾Ð»ÑŒ"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr "Фонова Ñлужба Ñ–нтернет-Ñлужб"
+-#, fuzzy
+-#~ msgid "You must enter a executable"
+-#~ msgstr "Ðеобхідно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ñ€Ð¾Ð»ÑŒ"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr "Ðомери Ð¿Ð¾Ñ€Ñ‚ів Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ– Ð±ÑƒÑ‚и Ñƒ Ð´Ñ–апазоні Ð²Ñ–д 1 Ð´Ð¾ %d "
+-#, fuzzy
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "СтвореннѠтипу Ñ„айлу Ñ€ÐµÐ¶Ð¸Ð¼Ñƒ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ: %s.te"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr "Треба Ð²Ð²ÐµÑти Ð½Ð°Ð·Ð²Ñƒ Ð¿Ñ€Ð¾Ñ†ÐµÑу/кориÑтувача Ð· Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñми"
+-#, fuzzy
+-#~ msgid "Interface file"
+-#~ msgstr "ІнтерфейѠ %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++"Ðазва Ð¼Ð°Ñ” ÑкладатиÑѠз Ð»Ñ–тер Ñ– Ñ†Ð¸Ñ„Ñ€, Ð±ÐµÐ· Ð¿Ñ€Ð¾Ð±Ñ–лів. Ð’ам Ð²Ð°Ñ€Ñ‚о ÑкориÑтатиÑÑ "
++"параметром Â«-n ÐÐЗВÐ_МОДУЛЯ»"
+-#, fuzzy
+-#~ msgid "File Contexts file"
+-#~ msgstr "КонтекÑÑ‚ Ñ„айлу Ð´Ð»Ñ %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr "З Ñ‚ипами Ñ€Ð¾Ð»ÐµÐ¹ ÐºÐ¾Ñ€Ð¸Ñтувачів Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð¿Ð¾Ð²â€™Ñзувати Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ñ– Ñ„айли."
+-#, fuzzy
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "КориÑтувач SELinux  %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr "Лише Ñлужби Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовувати Ñценарій init."
+-#, fuzzy
+-#~ msgid "Compatibility"
+-#~ msgstr "КомпілÑціѠполітики"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr "use_resolve Ð¼Ð°Ñ” Ð¼Ñ–Ñтити Ð»Ð¾Ð³Ñ–чне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ"
+-#, fuzzy
+-#~ msgid "SASL authentication server"
+-#~ msgstr "ÐвтентифікаціѠ%s.\n"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr "use_syslog Ð¼Ð°Ñ” Ð¼Ñ–Ñтити Ð»Ð¾Ð³Ñ–чне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ"
+-#, fuzzy
+-#~ msgid "SELinux Type"
+-#~ msgstr "Потрібно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ñ‚ип SELinux"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr "use_kerberos Ð¼Ð°Ñ” Ð±ÑƒÑ‚и Ð±ÑƒÐ»ÐµÐ²Ð¸Ð¼ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñм "
+-#, fuzzy
+-#~ msgid "Add SELinux User"
+-#~ msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠдодати ÐºÐ¾Ñ€Ð¸Ñтувача SELinux %s"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr "manage_krb5_rcache Ð¼Ð°Ñ” Ð±ÑƒÑ‚и Ð±ÑƒÐ»ÐµÐ²Ð¸Ð¼ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñм"
+-#, fuzzy
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзмінити ÐºÐ¾Ñ€Ð¸Ñтувача SELinux %s"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr "Типам ÐºÐ¾Ñ€Ð¸Ñтувачів Ð°Ð²Ñ‚оматично Ð²ÑтановлюєтьÑѠтип tmp"
+-#, fuzzy
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠвидалити ÐºÐ¾Ñ€Ð¸Ñтувача SELinux %s"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr "ДлѠобмеженнѠпроцеÑу Ñ‚реба Ð²ÐºÐ°Ð·Ð°Ñ‚и Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ ÑˆÐ»ÑÑ…"
+-#, fuzzy
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠзмінити ÐºÐ¾Ñ€Ð¸Ñтувача SELinux %s"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr "Файл Ð¿Ñ€Ð¸Ð¼ÑƒÑового Ñ‚ипу"
+-#, fuzzy
+-#~ msgid "Load policy module"
+-#~ msgstr "Ðе Ð²Ð´Ð°Ñ”Ñ‚ÑŒÑѠпрочитати Ñховище Ð¿Ð¾Ð»Ñ–тики."
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr "Файл Ñ–нтерфейÑу"
+-#, fuzzy
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "Потрібно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ñ‚ип SELinux"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr "Файл ÐºÐ¾Ð½Ñ‚екÑту"
+-#~ msgid "Requires value"
+-#~ msgstr "Потрібно Ð²ÐºÐ°Ð·Ð°Ñ‚и Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr "Сценарій Ð½Ð°Ð»Ð°ÑˆÑ‚овуваннÑ"
+-#~ msgid "Requires 2 or more arguments"
+-#~ msgstr "Потрібно 2 Ð°Ð±Ð¾ Ð±Ñ–льше Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ів"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n Ð½Ð°Ð·Ð²Ð°_модулѠ] [ -m ] [ -t Ñ‚ип ] [ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹_файл | Ð½Ð°Ð·Ð²Ð° ]\n"
++"можливі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚ипу:\n"
+-#~ msgid "%s not defined"
+-#~ msgstr "%s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr "Слід Ð²ÐºÐ°Ð·Ð°Ñ‚и Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ„айл Ð°Ð±Ð¾ Ð½Ð°Ð·Ð²Ñƒ"
+-#~ msgid "%s not valid for %s objects\n"
+-#~ msgstr "%s Ð½Ðµ Ñ” Ð´Ð¾Ð¿ÑƒÑтимим Ð´Ð»Ñ %s Ð¾Ð±'єктів\n"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr "Мережний Ð¿Ð¾Ñ€Ñ‚"
+-#~ msgid "range not supported on Non MLS machines"
+-#~ msgstr "range Ð½Ðµ Ð¿Ñ–дтримуєтьÑѠна Ð½Ðµ-MLS ÐºÐ¾Ð¼Ð¿'ютерах"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++"Тип Ð¿Ð¾Ñ€Ñ‚у\n"
++"SELinux"
+-#~ msgid "Invalid value %s"
+-#~ msgstr "Ðеправильне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s"
+-
+-#~ msgid ""
+-#~ "In order to load this newly created policy package into the kernel,\n"
+-#~ "you are required to execute \n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "При Ð·Ð°Ð²Ð°Ð½Ñ‚аженні Ñ†ÑŒÐ¾Ð³Ð¾ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ð°ÐºÐµÑ‚у Ð¿Ð¾Ð»Ñ–тики Ñƒ Ñдро,\n"
+-#~ "треба Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚и\n"
+-#~ "\n"
+-#~ "semodule -i %s.pp\n"
+-#~ "\n"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr "Протокол"
+-#~ msgid "Options Error: %s "
+-#~ msgstr "Помилка Ñƒ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ах: %s "
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++"Рівень\n"
++"MLS/MCS"
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr "Порт"
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr "Ðеправильний Ð½Ð¾Ð¼ÐµÑ€ Ð¿Ð¾Ñ€Ñ‚у Â«%s». 0 < Ð½Ð¾Ð¼ÐµÑ€_порту < 65536 "
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr "СпиÑок"
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr "Групи"
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr "ЗахиÑÑ‚ Ñлужб SELinux"
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr "Вимкнути Ð·Ð°Ñ…иÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби acct"
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr "ÐдмініÑтратор"
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr "Дозволити Ð²Ñім Ñлужбам Ð·Ð´Ñ–йÑнювати Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ /"
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr "Дозволити Ð²Ñім Ñлужбам Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовувати Ð½ÐµÐ·Ð°Ð¹Ð½ÑÑ‚Ñ– tty"
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr "Привілеї ÐºÐ¾Ñ€Ð¸Ñтувачів"
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Дозволити Ð¾Ð±Ð»Ñ–ковому Ð·Ð°Ð¿Ð¸Ñу gadmin Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и Ñ„айли Ñƒ Ð´Ð¾Ð¼Ð°ÑˆÐ½ÑŒÐ¾Ð¼Ñƒ ÐºÐ°Ñ‚алозі "
++"та /tmp"
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Дозволити Ð¾Ð±Ð»Ñ–ковому Ð·Ð°Ð¿Ð¸Ñу guest Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и Ñ„айли Ñƒ Ð´Ð¾Ð¼Ð°ÑˆÐ½ÑŒÐ¾Ð¼Ñƒ ÐºÐ°Ñ‚алозі Ñ‚а /"
++"tmp"
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr "ЗахиÑÑ‚ Ð¿Ð°Ð¼'ÑÑ‚Ñ–"
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr "Дозволити Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñтек java"
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr "ПідключеннѠФС"
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr "Дозволити Ð¼Ð¾Ð½Ñ‚уваннѠдо Ð±ÑƒÐ´ÑŒ-Ñких Ñ„айлів"
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr "Дозволити Ð¼Ð¾Ð½Ñ‚уваннѠдо Ð±ÑƒÐ´ÑŒ-Ñких ÐºÐ°Ñ‚алогів"
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr "Дозволити Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñтек mplayer"
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr "SSH"
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr "Дозволити ssh Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и ssh-keysign"
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачу staff Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и Ñ„айли Ñƒ Ð´Ð¾Ð¼Ð°ÑˆÐ½ÑŒÐ¾Ð¼Ñƒ ÐºÐ°Ñ‚алозі Ñ‚а /tmp"
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачу sysadm Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и Ñ„айли Ñƒ Ð´Ð¾Ð¼Ð°ÑˆÐ½ÑŒÐ¾Ð¼Ñƒ ÐºÐ°Ñ‚алозі Ñ‚а /tmp"
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++"Дозволити Ð½ÐµÐ¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð¾Ð¼Ñƒ Ð¾Ð±Ð»Ñ–ковому Ð·Ð°Ð¿Ð¸Ñу SELinux Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и Ñ„айли Ñƒ "
++"домашньому ÐºÐ°Ñ‚алозі Ñ‚а /tmp"
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr "КонфігураціѠмережі"
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr "Дозволити Ð¿Ñ€Ð¾Ñ…одженнѠпо Ð¼ÐµÑ€ÐµÐ¶Ñ– Ð½ÐµÐ¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ… Ð¿Ð°ÐºÐµÑ‚ів"
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачам user Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и Ñ„айли Ñƒ Ð´Ð¾Ð¼Ð°ÑˆÐ½ÑŒÐ¾Ð¼Ñƒ ÐºÐ°Ñ‚алозі Ñ‚а /tmp"
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++"Дозволити Ð½ÐµÐ¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð¸Ð¼ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚ам Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и dyntrans Ð´Ð»Ñ unconfined_execmem"
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr "Бази Ð´Ð°Ð½Ð¸Ñ…"
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr "Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачу Ð¿Ñ€Ð¸Ñ”днуватиÑѠдо Ñокета mysql"
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr "Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачу Ð¿Ñ€Ð¸Ñ”днуватиÑÑŒ Ð´Ð¾ Ñокета postgres"
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr "XServer"
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr "Дозволити ÐºÐ»Ñ–єнтам Ð·Ð´Ñ–йÑнювати Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ Ñпільної Ð¿Ð°Ð¼'ÑÑ‚Ñ– X"
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++"Дозволити Ð¾Ð±Ð»Ñ–ковому Ð·Ð°Ð¿Ð¸Ñу xguest Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и Ñ„айли Ñƒ Ð´Ð¾Ð¼Ð°ÑˆÐ½ÑŒÐ¾Ð¼Ñƒ ÐºÐ°Ñ‚алозі "
++"та /tmp"
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr "NIS"
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr "Дозволити Ñлужбам Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚иÑÑŒ Ð· NIS"
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr "Web-програми"
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr "ПеренеÑти ÐºÐ¾Ñ€Ð¸Ñтувача staff Ð´Ð¾ Ð´Ð¾Ð¼ÐµÐ½Ñƒ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду Ñ–нтернету"
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr "ПеренеÑти ÐºÐ¾Ñ€Ð¸Ñтувача sysadm Ð´Ð¾ Ð´Ð¾Ð¼ÐµÐ½Ñƒ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду Ñ–нтернету"
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr "ПеренеÑти ÐºÐ¾Ñ€Ð¸Ñтувача user Ð´Ð¾ Ð´Ð¾Ð¼ÐµÐ½Ñƒ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду Ñ–нтернету"
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr "ПеренеÑти ÐºÐ¾Ñ€Ð¸Ñтувача xguest Ð´Ð¾ Ð´Ð¾Ð¼ÐµÐ½Ñƒ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду Ñ–нтернету"
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++"Дозволити Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°Ð¼ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду Ñ–нтернету ÐºÐ¾Ñ€Ð¸Ñтувача staff Ð·Ð°Ð¿Ð¸Ñ Ñƒ "
++"домашні ÐºÐ°Ñ‚алоги"
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ amanda Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ amavis Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби apmd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr "ЗахиÑт·SELinux Ð´Ð»Ñ Ñлужби arpwatch Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби auditd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби automount Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ avahi Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби bluetooth Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби canna Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби cardmgr Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Cluster Server Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++"Дозволити cdrecord Ñ‡Ð¸Ñ‚аннѠрізної Ñ–нформації Ð· NFS, Samba, Ð· Ñ‚имчаÑових "
++"каталогів ÐºÐ¾Ñ€Ð¸Ñтувачів, Ð½Ðµ Ð´Ð¾Ð²Ñ–рених Ñ„айлів Ñ‚а Ð·Ð¼Ñ–нних Ð¿Ñ€Ð¸Ñтроїв"
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби ciped Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби clamd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ clamscan Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ clvmd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби comsat Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби courier Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби cpucontrol Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби cpuspeed Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr "Cron"
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби crond Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr "Друк"
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñервера cupsd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби cupsd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ cupsd_lpd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr "CVS"
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби cvs Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби cyrus Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби dbskkd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ dbusd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ dccd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ dccifd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ dccm Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби ddt Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби devfsd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби dhcpc Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби dhcpd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби dictd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr "Дозволити sysadm_t Ð±ÐµÐ·Ð¿Ð¾Ñередньо Ð·Ð°Ð¿ÑƒÑкати Ñлужби"
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr "Вимкнути Ð·Ð°Ñ…иÑÑ‚ SELinux Ð´Ð»Ñ Evolution"
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr "Ігри"
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñ–гор Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду Ñ–нтернету Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Thunderbird Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби distccd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби dmesg Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби dnsmasq Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби dovecot Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби entropyd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ fetchmail Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби fingerd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби freshclam Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби fsdaemon Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби gpm Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr "NFS"
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби gss Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби Hal Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr "СуміÑніÑÑ‚ÑŒ"
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++"Ðе Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и Ð°ÑƒÐ´Ð¸Ñ‚ Ð½ÐµÑправних ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚ів, Ñкі Ð½Ðµ ÑƒÑ‚ворюють Ð·Ð°Ð³Ñ€Ð¾Ð·Ñƒ Ð±ÐµÐ·Ð¿ÐµÑ†Ñ–"
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби hostname Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби hotplug Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби howl Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби cups hplip Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби httpd rotatelogs Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr "Служба HTTPD"
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби http suexec Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби hwclock Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби i18n Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби imazesrv Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ð´Ð¾Ñ‡Ñ–рніх Ñлужб inetd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби inetd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби innd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби iptables Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби ircd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби irqbalance Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби iscsi Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби jabberd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr "Kerberos"
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби kadmind Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби klogd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби krb5kdc Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби ktalk Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби kudzu Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби locate Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби lpd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби lrrd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби lvm Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ mailman Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr "Дозволити Evolution Ñ‚а Thunderbird Ñ‡Ð¸Ñ‚ати Ñ„айли ÐºÐ¾Ñ€Ð¸Ñтувачів"
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби mdadm Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби monopd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr "Дозволити Mozilla Ñ‡Ð¸Ñ‚ати Ñ„айли ÐºÐ¾Ñ€Ð¸Ñтувачів"
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби mrtg Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби mysqld Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби nagios Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr "Служба Ñ–мен"
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби named Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби nessusd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ NetworkManager Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби nfsd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr "Samba"
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби nmbd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби nrpe Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби nscd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби nsd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби ntpd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ oddjob Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ oddjob_mkhomedir Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби openvpn Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби pam Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ pegasus Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби perdition Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби portmap Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби portslave Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ postfix Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби postgresql Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr "pppd"
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr "Дозволити Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pppd Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ñ€Ð¸Ñтувача"
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ pptp Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби prelink Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби privoxy Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби ptal Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби pxe Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ pyzord Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби quota Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби radiusd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби radvd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби rdisc Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби readahead Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr "Дозволити Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð°Ð¼ Ñ‡Ð¸Ñ‚аннѠфайлів Ð· Ð½ÐµÑтандартних Ð´Ð¶ÐµÑ€ÐµÐ» (default_t)"
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби restorecond Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби rhgb Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ ricci Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ ricci_modclusterd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби rlogind Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби rpcd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби rshd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr "rsync"
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби rsync Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr "Дозволити Ð·Ð°Ð¿ÑƒÑк ssh Ð· inted, Ð° Ð½Ðµ Ñƒ ÑкоÑÑ‚Ñ– Ñлужби"
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr "Дозволити Samba Ñпільний Ð´Ð¾Ñтуп Ð´Ð¾ ÐºÐ°Ñ‚алогів NFS"
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr "Сервер Ð°Ð²Ñ‚оризації SASL"
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr "Дозволити Ñерверу Ð°Ð²Ñ‚оризації sasl Ñ‡Ð¸Ñ‚ати /etc/shadow"
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++"Дозволити Ñерверу X-Windows Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ‚и Ð¾Ð±Ð»Ð°ÑÑ‚ÑŒ Ð¿Ð°Ð¼'ÑÑ‚Ñ– Ñк Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ñƒ Ñ‚а "
++"доÑтупну Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу"
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби saslauthd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби scannerdaemon Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr "Ðе Ð´Ð¾Ð·Ð²Ð¾Ð»Ñти Ð·Ð¼Ñ–ну Ð½Ð° sysadm_t, sudo Ñ‚а su"
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr "Ðе Ð´Ð¾Ð·Ð²Ð¾Ð»Ñти Ð¿Ñ€Ð¾Ñ†ÐµÑам Ð·Ð°Ð²Ð°Ð½Ñ‚ажувати Ð¼Ð¾Ð´ÑƒÐ»Ñ– Ñдра"
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr "Ðе Ð´Ð¾Ð·Ð²Ð¾Ð»Ñти Ð¿Ñ€Ð¾Ñ†ÐµÑам Ð·Ð¼Ñ–нювати Ð¿Ð¾Ð»Ñ–тику SELinux Ñƒ Ñдрі"
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби sendmail Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ setrans Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби setroubleshoot Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби slapd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби slrnpull Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби smbd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби snmpd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби snort Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби soundd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби sound Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr "ЗахиÑÑ‚ Ð²Ñ–д Ñпаму"
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби spamd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr "Дозволити spamd Ð·Ð²ÐµÑ€Ñ‚атиÑѠдо Ð´Ð¾Ð¼Ð°ÑˆÐ½Ñ–Ñ… ÐºÐ°Ñ‚алогів"
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr "Дозволити Ð¼ÐµÑ€ÐµÐ¶Ð½Ð¸Ð¹ Ð´Ð¾Ñтуп Ñлужбі Spam Assassin"
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби speedmgmt Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr "Звук"
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr "Дозволити Ñлужбі squid Ð¿Ñ€Ð¸Ñ”днуватиÑÑŒ Ð´Ð¾ Ð¼ÐµÑ€ÐµÐ¶Ñ–"
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби squid Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби ssh Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr "Дозволити Ð°Ð²Ñ‚оризацію ssh Ð´Ð»Ñ sysadm_r:sysadm_t"
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++"Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачам staff_r Ð¿Ð¾ÑˆÑƒÐº Ñƒ Ð´Ð¾Ð¼Ð°ÑˆÐ½Ñ–Ñ… ÐºÐ°Ñ‚алогах Ñ‚а Ñ‡Ð¸Ñ‚аннѠфайлів "
++"(наприклад, ~/.bashrc)"
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr "УніверÑальний Ñ‚унель SSL"
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби stunnel Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr "Дозволити Ñлужбі stunnel Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚иÑÑŒ Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¾ Ð²Ñ–д xinetd"
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби swat Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби sxid Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби syslogd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ ÑиÑтеми Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ cron Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби tcp Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби telnet Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби tftpd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби transproxy Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби udev Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби uml Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++"Дозволити Ñлужбі xinetd Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚иÑÑŒ Ð±ÐµÐ· Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½ÑŒ, Ñ‰Ð¾ Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ” Ð²ÑÑ– ÐºÐµÑ€Ð¾Ð²Ð°Ð½Ñ– "
++"ним Ñлужби, Ð´Ð»Ñ Ñких Ñвно Ð½Ðµ Ð²ÐºÐ°Ð·Ð°Ð½Ñ– Ð¿ÐµÑ€ÐµÑ‚вореннѠдоменів"
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++"Дозволити Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñценаріїв rc Ð±ÐµÐ· Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½ÑŒ, Ð²ÐºÐ»ÑŽÑ‡Ð°ÑŽÑ‡Ð¸ Ñлужби, Ñ‰Ð¾ "
++"запуÑкаютьÑÑ Ñценарієм rc, Ð´Ð»Ñ Ñких Ñвно Ð½Ðµ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð´Ð¾Ð¼ÐµÐ½ Ð¿ÐµÑ€ÐµÑ…оду"
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr "Дозволити rpm Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚иÑÑŒ Ð±ÐµÐ· Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½ÑŒ"
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++"Дозволити Ð¿Ñ€Ð¸Ð²Ñ–лейованим ÑƒÑ‚илітам (наприклад, hotplug Ñ‚а insmod) "
++"виконуватиÑÑŒ Ð±ÐµÐ· Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½ÑŒ"
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби updfstab Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби uptimed Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++"Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачу user_r Ð·Ð²ÐµÑ€Ñ‚атиÑѠдо sysadm_r Ñ‡ÐµÑ€ÐµÐ· su, sudo Ñ‡Ð¸ "
++"userhelper. Ð£ Ñ–ншому Ñ€Ð°Ð·Ñ– Ð»Ð¸ÑˆÐµ staff_r Ð·Ð¼Ð¾Ð¶Ðµ Ð·Ð´Ñ–йÑнювати Ð´Ð¾Ñтуп"
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr "Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачам Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ mount"
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++"Дозволити Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¸Ð¼ ÐºÐ¾Ñ€Ð¸Ñтувачам Ð·Ð´Ñ–йÑнювати Ð¿Ñ€Ñмий Ð´Ð¾Ñтуп Ð·Ð° Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾ÑŽ Ð¼Ð¸ÑˆÑ– "
++"(лише Ð´Ð»Ñ Ñервера X)"
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr "Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачам Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ dmesg"
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++"Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачам ÐºÐµÑ€ÑƒÐ²Ð°Ñ‚и Ð¼ÐµÑ€ÐµÐ¶Ð½Ð¸Ð¼Ð¸ Ñ–нтерфейÑами (також Ð¿Ð¾Ñ‚рібно "
++"USERCTL=true)"
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr "Дозволити Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¸Ð¼ ÐºÐ¾Ñ€Ð¸Ñтувачам Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и ping"
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++"Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачам Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и Ñ‡Ð¸Ñ‚аннѠта Ð·Ð°Ð¿Ð¸Ñ noextattrfile (FAT, "
++"CDROM, FLOPPY)"
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr "Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачам Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и Ñ‡Ð¸Ñ‚аннѠта Ð·Ð°Ð¿Ð¸Ñ Ð¿Ñ€Ð¸Ñтроїв USB"
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++"Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачам Ð·Ð°Ð¿ÑƒÑкати Ñервери TCP (здійÑнювати Ð¿Ñ€Ð¸Ð²'Ñзку Ð¿Ð¾Ñ€Ñ‚ів "
++"та Ð¿Ñ€Ð¸Ð¹Ð¼Ð°Ñ‚и Ð·'єднаннѠз Ñ‚ого Ð¶ Ð´Ð¾Ð¼ÐµÐ½Ñƒ Ñ‚а Ð·Ð¾Ð²Ð½Ñ–шніх ÐºÐ¾Ñ€Ð¸Ñтувачів). Ð’имиканнѠ"
++"цієї Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑ‚Ñ– Ð²Ð¸ÐºÐ»Ð¸Ñ‡Ðµ Ð¿ÐµÑ€ÐµÑ…ід Ñƒ Ð¿Ð°Ñивний Ñ€ÐµÐ¶Ð¸Ð¼ FTP Ñ‚а Ð¼Ð¾Ð¶Ðµ Ð·Ð¼Ñ–нити Ñ–нші "
++"протоколи"
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr "Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачам Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚и stat Ð´Ð»Ñ Ñ„айлів tty"
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби uucpd Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби vmware Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби watchdog Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби winbind Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби xdm Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr "Дозволити Ð°Ð²Ñ‚оризацію xdm Ñк sysadm_r:sysadm_t"
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr "Вимкнути Ð·Ð°Ñ…иÑÑ‚ SELinux Ð´Ð»Ñ Ð´ÐµÐ¼Ð¾Ð½Ð° xen"
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr "XEN"
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr "Дозволити xen Ð·Ð°Ð¿Ð¸Ñ Ñ‚а Ñ‡Ð¸Ñ‚аннѠфізичних Ð´Ð¸Ñкових Ð¿Ñ€Ð¸Ñтроїв"
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби xfs Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби xen Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби ypbind Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби NIS Password Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби ypserv Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr "ЗахиÑÑ‚ SELinux Ð´Ð»Ñ Ñлужби NIS Transfer Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾"
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++"Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачу webadm ÐºÐµÑ€ÑƒÐ²Ð°Ñ‚и Ð´Ð¾Ð¼Ð°ÑˆÐ½Ñ–ми ÐºÐ°Ñ‚алогами Ð½ÐµÐ¿Ñ€Ð¸Ð²Ñ–лейованих "
++"кориÑтувачів"
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++"Дозволити ÐºÐ¾Ñ€Ð¸Ñтувачу webadm Ñ‡Ð¸Ñ‚аннѠдомашніх ÐºÐ°Ñ‚алогів Ð½ÐµÐ¿Ñ€Ð¸Ð²Ñ–лейованих "
++"кориÑтувачів"
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr "Ви Ñправді Ñ…очете Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚и %s Â«%s»?"
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr "Вилучити %s"
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr "Додати %s"
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr "Змінити %s"
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr "Дозволений"
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr "ПримуÑовий"
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr "СтатуÑ"
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++"Зміна Ñ‚ипу Ð¿Ð¾Ð»Ñ–тики Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” Ð¿Ð¾Ð²Ñ‚орної Ñ€Ð¾Ð·Ð¼Ñ–тки Ð²Ñієї Ñ„айлової ÑиÑтеми Ð¿Ñ€Ð¸ "
++"наÑтупному Ð·Ð°Ð²Ð°Ð½Ñ‚аженні. ÐŸÑ€Ð¾Ñ†ÐµÑ Ñ€Ð¾Ð·Ð¼Ñ–тки Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚и Ð´Ð¾Ñить Ñ‚ривалим Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ "
++"від Ñ€Ð¾Ð·Ð¼Ñ–ру Ñ„айлової ÑиÑтеми. ÐŸÑ€Ð¾Ð´Ð¾Ð²Ð¶Ð¸Ñ‚и?"
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++"ВимиканнѠполітики SELinux Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚аженнѠта Ð½Ðµ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑ”Ñ‚ÑŒÑÑ. "
++"Якщо Ñƒ Ð¿Ð¾Ð´Ð°Ð»ÑŒÑˆÐ¾Ð¼Ñƒ Ð²Ð¸ Ð·Ð°Ñ…очете ÑƒÐ²Ñ–мкнути SELinux, Ð·Ð½Ð°Ð´Ð¾Ð±Ð¸Ñ‚ÑŒÑѠвиконати "
++"повторну Ñ€Ð¾Ð·Ð¼Ñ–тку Ñ„айлової ÑиÑтеми. Ð¯ÐºÑ‰Ð¾ Ð¶ Ð²Ð¸ Ð¿Ñ€Ð¾Ñто Ñ…очете Ð¿ÐµÑ€ÐµÐ²Ñ–рити, Ñ‡Ð¸ "
++"не Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ñ” SELinux Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ Ñƒ ÑиÑтемі, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовуйте Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¸Ð¹ Ñ€ÐµÐ¶Ð¸Ð¼, Ñкий "
++"не Ñ€Ð¾Ð±Ð¸Ñ‚ÑŒ Ð¿Ð¾Ð»Ñ–тику Ð¿Ñ€Ð¸Ð¼ÑƒÑовою, Ð°Ð»Ðµ Ð¿Ñ€Ð¸ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€ÐµÑ”Ñтрує Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Ñƒ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñ–. "
++"Дозволений Ñ€ÐµÐ¶Ð¸Ð¼ Ð½Ðµ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚аженнÑ. ÐŸÑ€Ð¾Ð´Ð¾Ð²Ð¶Ð¸Ñ‚и?"
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++"ÐктиваціѠполітики SELinux Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” Ð¿Ð¾Ð²Ñ‚орної Ñ€Ð¾Ð·Ð¼Ñ–тки Ð²Ñієї Ñ„айлової ÑиÑтеми "
++"при Ð½Ð°Ñтупному Ð·Ð°Ð²Ð°Ð½Ñ‚аженні. ÐŸÑ€Ð¾Ñ†ÐµÑ Ñ€Ð¾Ð·Ð¼Ñ–тки Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚и Ð´Ð¾Ñить Ñ‚ривалим "
++"залежно Ð²Ñ–д Ñ€Ð¾Ð·Ð¼Ñ–ру Ñ„айлової ÑиÑтеми. ÐŸÑ€Ð¾Ð´Ð¾Ð²Ð¶Ð¸Ñ‚и?"
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr "system-config-selinux"
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++"(c) 2006 Red Hat, Inc.\n"
++"(c) 2006 Dan Walsh <dwalsh@redhat.com>"
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr "Додати Ð²Ñ–дповідні Ð°Ð²Ñ‚оризації SELinux"
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr "Додати Ð¼ÐµÑ€ÐµÐ¶Ð½Ñ– Ð¿Ð¾Ñ€Ñ‚и SELinux"
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr "Тип SELinux"
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr "СпецифікаціѠфайлу"
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr "Тип Ñ„айлу"
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++"уÑÑ– Ñ„айли\n"
++"звичайний Ñ„айл\n"
++"каталог\n"
++"Ñимвольний Ð¿Ñ€Ð¸Ñтрій\n"
++"блочний Ð¿Ñ€Ð¸Ñтрій\n"
++"Ñокет\n"
++"Ñимвольне Ð¿Ð¾ÑиланнÑ\n"
++"канал\n"
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr "MLS"
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr "Додати ÐºÐ¾Ñ€Ð¸Ñтувача SELinux"
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr "ÐдмініÑтруваннѠSELinux"
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr "Додати"
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr "_ВлаÑтивоÑÑ‚Ñ–"
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr "Ð’_илучити"
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr "Обрати Ð¾Ð±'єкт ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ"
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr "<b>Вибір:</b>"
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr "Типовий Ð¿Ñ€Ð¸Ð¼ÑƒÑовий Ñ€ÐµÐ¶Ð¸Ð¼"
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++"Вимкнено\n"
++"Дозволений\n"
++"ПримуÑовий\n"
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr "Поточний Ð¿Ñ€Ð¸Ð¼ÑƒÑовий Ñ€ÐµÐ¶Ð¸Ð¼"
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr "Тип Ñ‚ипової Ð¿Ð¾Ð»Ñ–тики:"
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++"Виберіть, Ñкщо Ñ…очете Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚и Ð¿Ð¾Ð²Ñ‚орну Ñ€Ð¾Ð·Ð¼Ñ–тку Ð²Ñієї Ñ„айлової ÑиÑтеми Ð¿Ñ€Ð¸ "
++"наÑтупному Ð·Ð°Ð²Ð°Ð½Ñ‚аженні. ÐŸÑ€Ð¾Ñ†ÐµÑ Ð¿Ð¾Ð²Ñ‚орної Ñ€Ð¾Ð·Ð¼Ñ–тки Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚и Ð´Ð¾Ñить Ñ‚ривалим "
++"залежно Ð²Ñ–д Ñ€Ð¾Ð·Ð¼Ñ–ру Ñ„айлової ÑиÑтеми. ÐŸÑ€Ð¸ Ð·Ð¼Ñ–ні Ñ‚ипу Ð¿Ð¾Ð»Ñ–тики Ñ‚акож "
++"знадобитьÑѠповторна Ñ€Ð¾Ð·Ð¼Ñ–тка."
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr "Повторна Ñ€Ð¾Ð·Ð¼Ñ–тка Ð¿Ñ€Ð¸ Ð½Ð°Ñтупному Ð·Ð°Ð²Ð°Ð½Ñ‚аженні."
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr "label37"
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr "Відновити Ð¿ÐµÑ€Ð²Ð¸Ð½Ð½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚ра"
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++"ПеремиканнѠміж Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñм Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ð¼ ÐºÐ¾Ñ€Ð¸Ñтувачем Ñ‚а ÑƒÑіма Ð»Ð¾Ð³Ñ–чними Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñми"
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr "ЗапуÑтити Ð¿Ð¾Ð¼Ñ–чник Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ð¾Ð³Ñ–чних Ð·Ð¼Ñ–нних"
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr "БлокуваннÑ..."
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr "Фільтр"
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr "label50"
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr "Додати ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу"
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr "Змінити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу"
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr "Вилучити ÐºÐ¾Ð½Ñ‚екÑÑ‚ Ñ„айлу"
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr "ПеремиканнѠміж ÑƒÑіма Ñ‚а Ð·Ð¼Ñ–неними ÐºÐ¾Ð½Ñ‚екÑтами Ñ„айлів"
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr "label38"
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr "Додати Ð²Ñ–дповідніÑÑ‚ÑŒ ÐºÐ¾Ñ€Ð¸Ñтувачів SELinux"
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr "Змінити Ð²Ñ–дповідніÑÑ‚ÑŒ ÐºÐ¾Ñ€Ð¸Ñтувача SELinux"
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr "Вилучити Ð²Ñ–дповідніÑÑ‚ÑŒ ÐºÐ¾Ñ€Ð¸Ñтувача SELinux"
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr "label39"
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr "Додати ÐºÐ¾Ñ€Ð¸Ñтувача"
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr "Змінити ÐºÐ¾Ñ€Ð¸Ñтувача"
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr "Вилучити ÐºÐ¾Ñ€Ð¸Ñтувача"
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr "label41"
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr "Додати Ð¼ÐµÑ€ÐµÐ¶Ð½Ð¸Ð¹ Ð¿Ð¾Ñ€Ñ‚"
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr "Змінити Ð¼ÐµÑ€ÐµÐ¶Ð½Ð¸Ð¹ Ð¿Ð¾Ñ€Ñ‚"
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr "Вилучити Ð¼ÐµÑ€ÐµÐ¶Ð½Ð¸Ð¹ Ð¿Ð¾Ñ€Ñ‚"
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr "ПеремиканнѠміж Ð¿Ð¾Ñ€Ñ‚ами Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ð¼Ð¸ ÐºÐ¾Ñ€Ð¸Ñтувачем Ñ‚а ÑƒÑіма Ð¿Ð¾Ñ€Ñ‚ами"
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr "label42"
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr "Генерувати Ð¼Ð¾Ð´ÑƒÐ»ÑŒ Ð½Ð¾Ð²Ð¾Ñ— Ð¿Ð¾Ð»Ñ–тики"
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr "Завантажити Ð¼Ð¾Ð´ÑƒÐ»ÑŒ Ð¿Ð¾Ð»Ñ–тики"
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr "Вилучити Ð·Ð°Ð²Ð°Ð½Ñ‚ажувальний Ð¼Ð¾Ð´ÑƒÐ»ÑŒ Ð¿Ð¾Ð»Ñ–тики"
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++"Увімкнути Ñ‡Ð¸ Ð²Ð¸Ð¼ÐºÐ½ÑƒÑ‚и Ð´Ð¾Ð´Ð°Ñ‚кові Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð°ÑƒÐ´Ð¸Ñ‚у, Ñке Ð·Ð°Ð·Ð²Ð¸Ñ‡Ð°Ð¹ Ð½Ðµ Ð¿Ð¾ÐºÐ°Ð·ÑƒÑ”Ñ‚ÑŒÑÑ "
++"у Ð¶ÑƒÑ€Ð½Ð°Ð»Ð°Ñ…."
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr "label44"
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr "Змінити Ñ€ÐµÐ¶Ð¸Ð¼ Ð¿Ñ€Ð¾Ñ†ÐµÑу Ð½Ð° Ð´Ð¾Ð·Ð²Ñ–льний."
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr "Змінити Ñ€ÐµÐ¶Ð¸Ð¼ Ð¿Ñ€Ð¾Ñ†ÐµÑу Ð½Ð° Ð¿Ñ€Ð¸Ð¼ÑƒÑовий."
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr "Домен Ð¿Ñ€Ð¾Ñ†ÐµÑу"
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr "label59"
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr "Потрібен SELinux ÐºÐ¾Ñ€Ð¸Ñтувач ?%s?"
+diff --git a/policycoreutils/po/ur.po b/policycoreutils/po/ur.po
+index afeaa9f..1676620 100644
+--- a/policycoreutils/po/ur.po
++++ b/policycoreutils/po/ur.po
+@@ -8,7 +8,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -138,11 +138,11 @@ msgstr ""
+ msgid "Modules Name"
+ msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr ""
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr ""
+@@ -270,15 +270,20 @@ msgid "Could not list login mappings"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr ""
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr ""
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr ""
+@@ -388,6 +393,7 @@ msgid "MCS Range"
+ msgstr ""
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr ""
+@@ -518,7 +524,7 @@ msgstr ""
+ msgid "Proto"
+ msgstr ""
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr ""
+@@ -927,7 +933,8 @@ msgstr ""
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr ""
+@@ -1264,7 +1271,2096 @@ msgstr ""
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr ""
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr ""
++
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
++
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
++
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
++
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
++
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
++
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
++
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
++
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
++
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
++
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
++
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
++
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
++
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
++
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
++
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
++
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
++
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
++
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
++
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
++
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
++
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
++
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
++
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
++
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
++
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
++
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
++
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
++
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
++
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
++
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
++
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
++
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
++
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
++
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
++
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
++
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
++
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
++
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
++
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
++
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
++
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
++
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
++
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
++
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
++
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
++
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
++
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
++
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
++
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
++
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
++
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
++
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
++
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
++
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
++
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
++
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
++
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
++
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
++
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
++
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
++
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
++
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
++
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
++
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
++
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
++
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
++
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
++
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
++
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
++
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
++
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
++
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
++
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
++
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
++
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
++
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
++
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
++
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
++
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
++
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
++
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
++
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
++
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
++
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
++
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
++
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
++
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
++
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
++
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
++
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
++
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
++
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
++
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
++
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
++
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
++
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
++
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
++
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
++
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
++
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
++
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
++
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
++
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
++
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
++
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
++
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
++
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
++
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
++
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
++
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
++
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
++
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
++
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
++
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
++
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
++
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
++
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
++
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
++
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
++
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
++
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
++
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
++
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
++
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
++
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
++
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
++
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
++
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
++
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
++
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
++
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
++
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
++
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
++
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
++
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
++
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
++
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
++
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
++
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
++
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
++
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
++
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
++
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
++
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
++
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
++
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
++
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
++
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
++
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
++
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
++
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
++
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
++
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
++
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
++
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
++
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
++
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
++
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
++
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
++
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
++
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
++
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
++
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
++
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
++
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
++
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
++
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
++
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
++
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
++
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
++
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
++
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
++
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
++
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
++
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
++
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
++
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
++
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
++
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
++
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
++
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
++
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
++
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
++
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
++
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
++
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
++
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
++
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
++
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
++
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
++
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
++
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
++
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
++
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
++
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
++
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
++
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
++
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
++
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
++
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
++
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/vi.po b/policycoreutils/po/vi.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/vi.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/po/zh_CN.po b/policycoreutils/po/zh_CN.po
+index 07108d2..687bef6 100644
+--- a/policycoreutils/po/zh_CN.po
++++ b/policycoreutils/po/zh_CN.po
+@@ -1,22 +1,24 @@
+-# translation of policycoreutils.HEAD.po to Simplified Chinese
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER, 2006.
+ #
++# Translators:
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER, 2006.
++# Leah Liu <lliu@redhat.com>, 2008, 2009, 2010.
+ # Tony Fu <tfu@redhat.com>, 2006.
+-# Leah Liu <lliu@redhat.com>, 2008.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-09-11 16:22+1000\n"
+-"Last-Translator: Leah Liu <lliu@redhat.com>\n"
+-"Language-Team: Simplified Chinese <zh@li.org>\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Chinese (China) <trans-zh_cn@lists.fedoraproject.org>\n"
++"Language: zh_CN\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
++"Plural-Forms: nplurals=1; plural=0\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -111,9 +113,8 @@ msgid "Could not establish semanage connection"
+ msgstr "无法创建 semanage è¿žæŽ¥"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "无法为 %s è®¾ç½® MLS çš„范围"
++msgstr "无法测试 MLS å¯ç”¨çš„状æ€"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -121,7 +122,7 @@ msgstr "还没有实施"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage äº¤æ˜“进行中"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+@@ -133,53 +134,50 @@ msgstr "无法æ交 semanage äº¤æ˜“"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage äº¤æ˜“未进行"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+ msgid "Could not list SELinux modules"
+ msgstr "无法列出 SELinux æ¨¡å—"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "模å—å称"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "版本"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "ç¦ç”¨"
+ #: ../semanage/seobject.py:322
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr "无法删除 permissive åŸŸ %s(删除æ“作失败)"
++msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "无法删除 permissive åŸŸ %s(删除æ“作失败)"
++msgstr ""
+ #: ../semanage/seobject.py:348
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr "无法删除 permissive åŸŸ %s(删除æ“作失败)"
++msgstr ""
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "Permissive ç±»åž‹"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "Permissive ç±»åž‹"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+@@ -278,15 +276,20 @@ msgid "Could not list login mappings"
+ msgstr "无法列出登录映射"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "登录å"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux ç”¨æˆ·"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS èŒƒå›´"
+@@ -396,6 +399,7 @@ msgid "MCS Range"
+ msgstr "MCS èŒƒå›´"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux è§’色"
+@@ -526,7 +530,7 @@ msgstr "SELinux ç«¯å£ç±»åž‹"
+ msgid "Proto"
+ msgstr "åè®®"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "端å£å·"
+@@ -629,9 +633,8 @@ msgid "Could not delete addr %s"
+ msgstr "无法删除 addr %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "无法为 %s åˆ é™¤ç™»å½•æ˜ å°„"
++msgstr ""
+ #: ../semanage/seobject.py:1394
+ msgid "Could not list addrs"
+@@ -709,9 +712,8 @@ msgid "Could not delete interface %s"
+ msgstr "无法删除接壠%s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "无法删除接壠%s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -726,9 +728,9 @@ msgid "Context"
+ msgstr "上下文"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s çš„文件 context å·²ç»è¢«å®šä¹‰"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -736,9 +738,9 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux用户 %s ä¸å­˜åœ¨"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+@@ -858,11 +860,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux æ–‡ä»¶ä¸Šä¸‹æ–‡"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -931,15 +932,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux å¸ƒå°”值"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "状æ€"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+ msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "æè¿°"
+@@ -1276,1649 +1277,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "选项错误 %s "
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "无法打开 %s:在鞠MLS æœºå™¨ä¸Šä¸æ”¯æŒçš„转æ¢ï¼š%s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "级别"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "转æ¢"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "转æ¢ä¸èƒ½åŒ…括空格 '%s' "
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "无效级别 '%s' "
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s å·²ç»åœ¨è½¬æ¢ä¸­å®šä¹‰"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s æ²¡æœ‰åœ¨è½¬æ¢ä¸­å®šä¹‰"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s çš„登录映射已被定义"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "添加 SELinux ç”¨æˆ·æ˜ å°„"
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux用户 %s å·²ç»å­˜åœ¨"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "需è¦èŠ‚点掩ç "
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "å·²ç»å®šä¹‰äº† addr %s"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "接壠%s å·²ç»è¢«å®šä¹‰"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "åˆå§‹åŒ–能力(capability)错误,中止。\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "åˆå§‹åŒ–能力(capability)错误,中止。\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "设置 KEEPCAPS é”™è¯¯ï¼Œä¸­æ­¢\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "删除能力(drop capability)错误,中止\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "删除 SETUID èƒ½åŠ›é”™è¯¯ï¼Œä¸­æ­¢\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "freeing caps é”™è¯¯\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "在鞠MLS æœºå™¨ä¸Šä¸æ”¯æŒçš„转æ¢"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "Boolean"
+-#~ msgstr "布尔值"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "所有"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "自定义的"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "文件标记"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "文件\n"
+-#~ "约æŸ"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "文件类型"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "文件\n"
+-#~ "类型"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "用户映射"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "登录\n"
+-#~ "å称"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "用户"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS èŒƒå›´"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "登录å '%s' æ˜¯å¿…需的"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Policy Module"
+-#~ msgstr "策略模å—"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid "Disable Audit"
+-#~ msgstr "ç¦ç”¨å®¡è®¡"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "Enable Audit"
+-#~ msgstr "å¯ç”¨å®¡è®¡"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Load Policy Module"
+-#~ msgstr "加载策略模å—"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>应用程åº</b>"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>登录用户</b>"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>根用户</b>"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP ç«¯å£</b>"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP ç«¯å£</b>"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "添加布尔对è¯"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "添加应用程åºéœ€è¦â€œå†™å…¥â€çš„文件ï¼ç›®å½•ã€‚Pid æ–‡ä»¶ã€æ—¥å¿—文件ã€/var/lib æ–‡ä»¶..."
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr "添加/删除用于有é™åº”用程åº/用户的布尔"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid "Admin User Role"
+-#~ msgstr "管ç†ç”¨æˆ·è§’色"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "所有"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr "å…许应用程åº/用户角色使用 0 è°ƒç”¨ bindresvport。绑定到端壠600-1024"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr "å…许应用程åº/用户角色绑定到高于 1024 çš„任何 udp ç«¯å£"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr "å…许有é™çš„应用程åº/用户角色绑定到任何 udp ç«¯å£"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "Boolean Name"
+-#~ msgstr "布尔å"
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "在 /tmp ç›®å½•ä¸­åˆ›å»º/æ“作临时文件的应用程åº"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "输入用逗å·åˆ†å¼€çš„应用程åº/用户角色è¦ç»‘定的 tcp ç«¯å£æˆ–者端å£èŒƒå›´åˆ—表。示例:"
+-#~ "612, 650-660"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "输入用逗å·åˆ†å¼€çš„应用程åº/用户角色è¦ç»‘定的 udp ç«¯å£æˆ–者端å£èŒƒå›´åˆ—表。示例:"
+-#~ "612, 650-660"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "输入用逗å·åˆ†å¼€çš„应用程åº/用户角色è¦ç»‘定的 udp ç«¯å£æˆ–者端å£èŒƒå›´åˆ—表。示例:"
+-#~ "612, 650-660"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "输入å—é™çš„å¯æ‰§è¡Œç¨‹åºçš„完整路径"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr "输入用于å¯åŠ¨å—é™çš„应用程åºçš„ init è„šæœ¬çš„完整路径。"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "输入è¦è¿›è¡Œé™åˆ¶çš„应用程åºæˆ–用户角色。"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr "输入应用程åºæˆ–用户角色è¦è¿žæŽ¥çš„网络"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "输入应用程åºæˆ–用户角色è¦ä¾¦å¬çš„网络"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "为å—é™åˆ¶çš„用户或应用程åºé€‰æ‹©å”¯ä¸€çš„å称。"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Executable"
+-#~ msgstr "å¯æ‰§è¡Œç¨‹åº"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Existing User Roles"
+-#~ msgstr "现有用户角色"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "生æˆçš„策略文件"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Init script"
+-#~ msgstr "Init è„šæœ¬"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "与终端互动"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "互è”网æœåŠ¡å®ˆæŠ¤è¿›ç¨‹ (inetd)"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "互è”网æœåŠ¡å®ˆæŠ¤è¿›ç¨‹ï¼Œæ˜¯é€šè¿‡ xinetd å¯åŠ¨çš„æœåŠ¡"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "最å°åŒ–终端用户角色"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "最å°åŒ– X çª—å£ç”¨æˆ·è§’色"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "修改现有登录用户记录。"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "å称"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Polgen"
+-#~ msgstr "模å—生æˆå·¥å…·"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Policy Directory"
+-#~ msgstr "策略目录"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "根管ç†ç”¨æˆ·è§’色"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux ç­–略生æˆå·¥å…·"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "选择端å£"
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "如果这个用户在以根用户身份è¿è¡Œæ—¶å°†ç”¨æ¥ç®¡ç†æœºå™¨ï¼Œé‚£ä¹ˆè¯·é€‰æ‹©æ ¹ç®¡ç†ç”¨æˆ·è§’色。"
+-#~ "这个用户将ä¸èƒ½ç›´æŽ¥ç™»å½•åˆ°ç³»ç»Ÿã€‚"
+-
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "选择用户å¯ä»¥ç®¡ç†çš„é¢å¤–域"
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "选择用户角色è¦è½¬æ¢åˆ°çš„其他域"
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "为这个用户选择其它角色"
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "选择应用程åºä½¿ç”¨çš„布尔"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "选择常è§çš„应用程åºç‰¹å¾"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "选择在其中创建策略文件的目录"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "选择å—é™åº”用程åºç®¡ç†çš„文件/目录"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr "选择您希望将这个用户角色转æ¢åˆ°çš„应用程åºåŸŸã€‚"
+-
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "选择您希望这个用户å¯ä»¥ç®¡ç†çš„域。"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr "选择将转æ¢åˆ°è¿™ä¸ªåº”用程åºåŸŸçš„用户角色。"
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "选择å—é™çš„应用程åºæˆ–用户类型。"
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "选择将转æ¢åˆ°è¿™ä¸ªåŸŸçš„用户角色"
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "选择您想è¦å®šåˆ¶çš„用户角色"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "å‘é€å®¡è®¡ä¿¡æ¯"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "å‘é€ç”µå­é‚®ä»¶"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "标准的 Init å®ˆæŠ¤è¿›ç¨‹"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "标准的 Init å®ˆæŠ¤è¿›ç¨‹æ˜¯åœ¨å¼•å¯¼æ—¶é€šè¿‡åˆå§‹åŒ–脚本å¯åŠ¨çš„守护进程。通常需è¦åœ¨ /"
+-#~ "etc/rc.d/init.d ç›®å½•åŒ…å«è„šæœ¬"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "这个工具å¯ä»¥ç”¨æ¥ç”Ÿæˆä¸€ä¸ªç­–略框架,以利用 SELinux é™åˆ¶åº”用程åºæˆ–用户。\n"
+-#~ "\n"
+-#~ "此工具生æˆï¼š\n"
+-#~ "类型强制文件 (te)\n"
+-#~ "接å£æ–‡ä»¶ (if)\n"
+-#~ "文件上下文 (fc)\n"
+-#~ "Shell è„šæœ¬ (sh) - ç”¨æ¥ç¼–译和安装策略。"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "这个工具将产生下列:\n"
+-#~ "类型强制(te),文件上下文(fc),接å£ï¼ˆif)和 Shell è„šæœ¬ï¼ˆsh)。\n"
+-#~ "\n"
+-#~ "执行 Shell è„šæœ¬æ¥ç¼–译/安装并é‡æ–°æ ‡è®°æ–‡ä»¶/目录。\n"
+-#~ "现在您å¯ä»¥å…ˆå°†æœºå™¨ç½®äºŽå…许模å¼ï¼ˆsetenforce 0)。\n"
+-#~ "è¿è¡Œ/é‡æ–°å¯åŠ¨åº”用程åºä»¥äº§ç”Ÿ avc æ¶ˆæ¯ã€‚\n"
+-#~ "然åŽä½¿ç”¨ audit2allow -R æ¥ä¸º te æ–‡ä»¶åˆ›å»ºé™„加规则。\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "这个工具将产生下列:\n"
+-#~ "类型强制(te),文件上下文(fc),接å£ï¼ˆif)和 Shell è„šæœ¬ï¼ˆsh)。\n"
+-#~ "以根用户身份执行 Shell è„šæœ¬æ¥ç¼–译/安装并é‡æ–°æ ‡è®°æ–‡ä»¶/目录。\n"
+-#~ "使用 semange æˆ–者 useradd å°† Linux ç”¨æˆ·ä¸Žç”¨æˆ·è§’色匹é…。\n"
+-#~ "现在您å¯ä»¥å…ˆå°†æœºå™¨ç½®äºŽå…许模å¼ï¼ˆsetenforce 0)。\n"
+-#~ "è¿è¡Œ/é‡æ–°å¯åŠ¨åº”用程åºä»¥äº§ç”Ÿ avc æ¶ˆæ¯ã€‚\n"
+-#~ "然åŽä½¿ç”¨ audit2allow -R æ¥ä¸º te æ–‡ä»¶åˆ›å»ºé™„加规则。\n"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "用户å¯é€šè¿‡ X æˆ–者终端登录到机器中。默认情况下,这个用户没有 setuidã€è”网ã€"
+-#~ "sudo å’Œ su åŠŸèƒ½ã€‚"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "这个用户将åªèƒ½é€šè¿‡ç»ˆç«¯ç™»å½•æˆ–者远程登录。默认情况下,这个用户没有 setuidã€"
+-#~ "è”网ã€sudo å’Œ su åŠŸèƒ½ã€‚"
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "éžä¿ç•™ç«¯å£(> 1024)"
+-
+-#~ msgid "User Application"
+-#~ msgstr "用户应用程åº"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr "用户应用程åºï¼Œæ˜¯ç”±ç”¨æˆ·å¯åŠ¨çš„任何希望é™åˆ¶çš„应用程åº"
+-
+-#~ msgid "User Role"
+-#~ msgstr "用户角色"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "有完全è”网功能的用户,没有 setuid åº”用程åºï¼Œæ— æ³•è½¬æ¢ï¼Œæ²¡æœ‰ su åŠŸèƒ½ï¼Œä½†å¯ä½¿"
+-#~ "用 sudo è½¬æ¢ä¸ºæ ¹ç®¡ç†è§’色。"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "有完全è”网功能的用户,没有 setuid åº”用程åºï¼Œæ— æ³•è½¬æ¢ï¼Œæ²¡æœ‰ sudoã€su åŠŸèƒ½ã€‚"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "使用 PAM è®¤è¯"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "使用 dbus"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "使用 nsswitch æˆ–者 getpw* è°ƒç”¨"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "网站应用程åº/脚本(CGI)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr "网站应用程åº/脚本(CGI),是由网站æœåŠ¡å™¨(Apache)å¯åŠ¨çš„ CGI è„šæœ¬"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "写入 syslog æ¶ˆæ¯\t"
+-
+-#~ msgid "translator-credits"
+-#~ msgstr ""
+-#~ "Yuan Yijun <bbbush@fedoraproject.org>, 2007 Leah Liu <lliu@redhat.com>,"
+-#~ "2007"
+-
+-#~ msgid "Role"
+-#~ msgstr "角色"
+-
+-#~ msgid "Existing_User"
+-#~ msgstr "现有用户(_U)"
+-
+-#~ msgid "Application"
+-#~ msgstr "应用程åº"
+-
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s å¿…须是一个目录"
+-
+-#~ msgid "You must select a user"
+-#~ msgstr "您必需选择一个用户"
+-
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "选择è¦é™åˆ¶çš„å¯æ‰§è¡Œç¨‹åº"
+-
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "选择è¦é™åˆ¶çš„ init è„šæœ¬"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "选择å—é™åº”用程åºåˆ›å»ºæˆ–写入的文件"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr "选择å—é™åº”用程åºæ‹¥æœ‰å¹¶å†™å…¥çš„目录"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "选择在其中创建策略文件的目录"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "在当å‰ç­–略中已ç»å®šä¹‰äº†ç±»åž‹ %s_t。\n"
+-#~ "您想è¦ç»§ç»­å—?"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Verify Name"
+-#~ msgstr "验è¯å称"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "在当å‰ç­–略中已ç»å®šä¹‰äº†æ¨¡å— %s.pp。\n"
+-#~ "您想è¦ç»§ç»­å—?"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "您必需输入å称"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid "You must enter a executable"
+-#~ msgstr "您必需指定一个å¯æ‰§è¡Œç¨‹åºä½ç½®"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "Configue SELinux"
+-#~ msgstr "é…ç½® SELinux"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Ports must be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "端å£å¿…需是介于 1 å’Œ %d ä¹‹é—´çš„数字或者范围"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "必需为å—é™çš„进程/用户输入å称"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "USER ç±»åž‹ä¸å…许使用å¯æ‰§è¡Œç¨‹åº"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "åªæœ‰å®ˆæŠ¤è¿›ç¨‹æ‰å¯ä»¥ä½¿ç”¨ init è„šæœ¬"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog å¿…需是布尔值"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "USER Types automatically get a tmp type"
+-#~ msgstr "USER ç±»åž‹è‡ªåŠ¨å¾—到一个 tmp ç±»åž‹"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "必须输入å—é™è¿›ç¨‹çš„å¯æ‰§è¡Œç¨‹åºè·¯å¾„"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "打å°å¼ºåˆ¶æ–‡ä»¶"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid "Interface file"
+-#~ msgstr "接å£æ–‡ä»¶"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid "File Contexts file"
+-#~ msgstr "文件上下文定义"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid "Setup Script"
+-#~ msgstr "建立脚本"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux ç«¯å£\n"
+-#~ "类型"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Protocol"
+-#~ msgstr "åè®®"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "级别"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "端å£"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "端å£å· \"%s\" æ˜¯æ— æ•ˆçš„。 0 < PORT_NUMBER < 65536 "
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "列出视图"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "分组视图"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux æœåŠ¡ä¿æŠ¤"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "ç¦ç”¨ acct å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "管ç†"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "å…许所有守护进程将内存转储文件写到 /"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "å…许所有守护进程使用未分é…çš„ tty"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "用户æƒé™"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "å…许 gadmin SELinux ç”¨æˆ·å¸æˆ·æ‰§è¡Œä¸»ç›®å½•æˆ– /tmp ä¸­çš„文件"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "å…许 guest SELinux ç”¨æˆ·æ‰§è¡Œä¸»ç›®å½•æˆ– /tmp ä¸­çš„文件"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "内存ä¿æŠ¤"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "å…许 java æ ˆå¯æ‰§è¡Œ"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "挂载"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "å…许 mount æŒ‚载任何文件"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "å…许 mount æŒ‚载任何目录"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "å…许 mplayer æ ˆå¯æ‰§è¡Œ"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "å…许 ssh è¿è¡Œ ssh-keysign"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "å…许 staff SELinux ç”¨æˆ·å¸æˆ·æ‰§è¡Œä¸»ç›®å½•æˆ– /tmp ä¸­çš„文件"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "å…许 sysadm SELinux ç”¨æˆ·å¸æˆ·æ‰§è¡Œä¸»ç›®å½•æˆ– /tmp ä¸­çš„文件"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr ""
+-#~ "å…许 unconfined(未作é™å®šçš„)SELinux ç”¨æˆ·å¸æˆ·æ‰§è¡Œä¸»ç›®å½•æˆ– /tmp ä¸­çš„文件"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "网络é…ç½®"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "å…许未标记的å°åŒ…在网络中传播"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr "å…许SELinux ä¸€èˆ¬ç”¨æˆ·å¸æˆ·æ‰§è¡Œä¸»ç›®å½•æˆ– /tmp ä¸­çš„文件"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "å…许未作é™å®šçš„类型动æ€è½¬æ¢åˆ° unconfined_execmem"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "æ•°æ®åº“"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "å…许用户连接到 mysql å¥—接字"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "å…许用户连接到 postgres å¥—接字"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "X æœåŠ¡å™¨"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "å…许用户写入 X å…±äº«å†…å­˜"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "å…许 xguest SELinux ç”¨æˆ·å¸æˆ·æ‰§è¡Œä¸»ç›®å½•æˆ– /tmp ä¸­çš„文件"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "å…许守护进程访问 NIS"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "网站应用程åº"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "转梠staff SELinux ç”¨æˆ·åˆ°æµè§ˆå™¨åŸŸ"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "转梠sysadm SELinux ç”¨æˆ·åˆ°æµè§ˆå™¨åŸŸ"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "转梠user(一般用户)SELinux ç”¨æˆ·åˆ°æµè§ˆå™¨åŸŸ"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "转梠xguest SELinux ç”¨æˆ·åˆ°æµè§ˆå™¨åŸŸ"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "å…许 staff æµè§ˆå™¨å†™å…¥ä¸ªäººç›®å½•"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "ç¦ç”¨ amanda çš„ SELinux ä¿æŠ¤"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "ç¦ç”¨ amavis çš„ SELinux ä¿æŠ¤"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "ç¦ç”¨ apmd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "ç¦ç”¨ arpwatch å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "ç¦ç”¨ auditd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "ç¦ç”¨ automount å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "ç¦ç”¨ avahi çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "ç¦ç”¨ bluetooth å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "ç¦ç”¨ canna å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "ç¦ç”¨ cardmgr å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "ç¦ç”¨é›†ç¾¤æœåŠ¡å™¨çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "å…许 cdrecord è¯»å–å„ç§å†…容。nfs, samba, å¯ç§»åŠ¨å­˜å‚¨ï¼Œç”¨æˆ·ä¸´æ—¶æ–‡ä»¶å’Œä¸å¯ä¿¡ä»»"
+-#~ "的内容"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "ç¦ç”¨ ciped å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "ç¦ç”¨ clamd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "ç¦ç”¨ clamscan çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "ç¦ç”¨ clvmd çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "ç¦ç”¨ comsat å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "ç¦ç”¨ courier å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "ç¦ç”¨ cpucontrol å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "ç¦ç”¨ cpuspeed å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron è®¡åˆ’任务"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "ç¦ç”¨ crond å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "打å°"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "ç¦æ­¢ cupsd åŽç«¯æœåŠ¡å™¨çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "ç¦æ­¢ cupsd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "ç¦æ­¢ cupsd_lpd çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "ç¦æ­¢ cvs å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "ç¦æ­¢ cyrus å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤<"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "ç¦æ­¢ dbskkd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤<"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "ç¦æ­¢ dbusd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "ç¦æ­¢ dccd çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "ç¦æ­¢ dccifd çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "ç¦æ­¢ dccm çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "ç¦æ­¢ ddt å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "ç¦æ­¢ devfsd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "ç¦æ­¢ dhcpc å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "ç¦æ­¢ dhcpd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "ç¦æ­¢ dictd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "å…许 sysadm_t ç›´æŽ¥å¯åŠ¨å®ˆæŠ¤è¿›ç¨‹"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "ç¦æ­¢ Evolution çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "游æˆ"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "ç¦æ­¢æ¸¸æˆçš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "ç¦æ­¢ç½‘页æµè§ˆå™¨çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "ç¦æ­¢ Thunderbird çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "ç¦æ­¢ distccd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "ç¦æ­¢ dmesg å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "ç¦æ­¢ dnsmasq å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "ç¦æ­¢ dovecot å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "ç¦æ­¢ entropyd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "ç¦æ­¢ fetchmail çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "ç¦æ­¢ fingerd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "ç¦æ­¢ freshclam å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "ç¦æ­¢ fsdaemon å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "ç¦æ­¢ gpm å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "ç¦æ­¢ gss å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "ç¦æ­¢ Hal å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "兼容性"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr "ä¸å®¡è®¡é‚£äº›ä¸Žå®‰å…¨æ— å…³çš„已知错误"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "ç¦æ­¢ hostname å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "ç¦æ­¢ hotplug å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "ç¦æ­¢ howl å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "ç¦æ­¢ cups hplip å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "ç¦æ­¢ httpd æ—¥å¿—循环的 SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD æœåŠ¡"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "ç¦æ­¢ http suexec çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "ç¦æ­¢ hwclock å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "ç¦æ­¢ i18n å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "ç¦æ­¢ imazesrv å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "ç¦æ­¢ inetd å­å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "ç¦æ­¢ inetd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "ç¦æ­¢ innd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "ç¦æ­¢ iptables å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "ç¦æ­¢ ircd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "ç¦æ­¢ irqbalance å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "ç¦æ­¢ iscsi å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "ç¦æ­¢ jabberd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "ç¦æ­¢ kadmind å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "ç¦æ­¢ klogd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "ç¦æ­¢ krb5kdc å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "ç¦æ­¢ ktalk å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "ç¦æ­¢ kudzu å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "ç¦æ­¢ locate å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "ç¦æ­¢ lpd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "ç¦æ­¢ lrrd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "ç¦æ­¢ lvm å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "ç¦æ­¢ mailman å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "å…许 evolution å’Œ thunderbird è¯»ç”¨æˆ·æ–‡ä»¶"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "ç¦æ­¢ mdadm å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "ç¦æ­¢ monopd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "å…许 mozilla æµè§ˆå™¨è¯»ç”¨æˆ·æ–‡ä»¶"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "ç¦æ­¢ mrtg å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "ç¦æ­¢ mysqld å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "ç¦æ­¢ nagios å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "åå­—æœåŠ¡"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "ç¦æ­¢ named å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "ç¦æ­¢ neesusd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "ç¦æ­¢ NetworkManager çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "ç¦æ­¢ nfsd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "ç¦æ­¢ nmbd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "ç¦æ­¢ nrpe å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "ç¦æ­¢ nscd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "ç¦æ­¢ nsd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "ç¦æ­¢ ntpd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "ç¦æ­¢ oddjob çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "ç¦æ­¢ oddjob_mkhomedir çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "ç¦æ­¢ openvpn å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "ç¦æ­¢ pam å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "ç¦æ­¢ pegasus çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "ç¦æ­¢ perdition å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "ç¦æ­¢ portmap å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "ç¦æ­¢ portslave å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "ç¦æ­¢ postfix çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "ç¦æ­¢ postgresql å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "å…许 pppd ä»¥æ™®é€šç”¨æˆ·è¿è¡Œ"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "ç¦æ­¢ pptp çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "ç¦æ­¢ prelink å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "ç¦æ­¢ privoxy å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "ç¦æ­¢ ptal å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "ç¦æ­¢ pxe å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "ç¦æ­¢ pyzord çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "ç¦æ­¢ quota å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "ç¦æ­¢ radiusd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "ç¦æ­¢ radvd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "ç¦æ­¢ rdisc çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "ç¦æ­¢ readahead çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr "å…许程åºè¯»éžæ ‡å‡†ä½ç½®(default_t)的文件"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "ç¦æ­¢ restorecond çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "ç¦æ­¢ rhgb å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "ç¦æ­¢ ricci çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "ç¦æ­¢ ricci_modclusterd çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "ç¦æ­¢ rlogind å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "ç¦æ­¢ rpcd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "ç¦æ­¢ rshd çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "ç¦æ­¢ rsync å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "å…许 ssh ä»Ž inetd è¿è¡Œè€Œéžä½œä¸ºå®ˆæŠ¤è¿›ç¨‹"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "å…许 Samba å…±äº« nfs ç›®å½•"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL è®¤è¯æœåŠ¡å™¨"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "å…许 sasl è®¤è¯æœåŠ¡è¯»å– /etc/shadow"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr "å…许 X çª—å£æœåŠ¡å™¨å°†å†…存映射为å¯å†™ä¸”å¯æ‰§è¡Œ"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "ç¦æ­¢ saslauthd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "ç¦æ­¢ scannerdaemon å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "ä¸å…许转æ¢åˆ° sysadm_t, sudo å’Œ su ä¼šå—å½±å“"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "ä¸å…许任何进程加载内核模å—"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "ä¸å…许任何进程修改内核 SELinux ç­–ç•¥"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "ç¦æ­¢ sendmail å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "ç¦æ­¢ setrans çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "ç¦æ­¢ setroubleshoot å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "ç¦æ­¢ slapd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "ç¦æ­¢ slrnpull å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "ç¦æ­¢ smbd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "ç¦æ­¢ snmpd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "ç¦æ­¢ snort å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "ç¦æ­¢ sounded å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "ç¦æ­¢ sound å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "垃圾邮件ä¿æŠ¤"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "ç¦æ­¢ spamd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "å…许 spamd è®¿é—®ç”¨æˆ·ä¸ªäººç›®å½•"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "å…许 Spam Assasin å®ˆæŠ¤è¿›ç¨‹è®¿é—®ç½‘络"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "ç¦æ­¢ speedmgmt å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "å…许 squid å®ˆæŠ¤è¿›ç¨‹è¿žæŽ¥åˆ°ç½‘络"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "ç¦æ­¢ squid å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "ç¦æ­¢ ssh å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "å…许通过 ssh ç™»å½•ä¸º sysadm_r:sysadm_t"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr "å…许 staff_r ç”¨æˆ·æœç´¢ sysadm ä¸ªäººç›®å½•å¹¶è¯»å–文件(如 ~/.bashrc)"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "全局的 SSL éš§é“"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "ç¦æ­¢ stunnel å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "å…许 stunnel å®ˆæŠ¤è¿›ç¨‹åœ¨ xinetd ä¹‹å¤–独立è¿è¡Œ"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "ç¦æ­¢ swat å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "ç¦æ­¢ sxid å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "ç¦æ­¢ syslogd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "ç¦æ­¢ç³»ç»Ÿè®¡åˆ’任务(cron)çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "ç¦æ­¢ tcp å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "ç¦æ­¢ telnet å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "ç¦æ­¢ tftpd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "ç¦æ­¢ transproxy å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "ç¦æ­¢ udev å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "ç¦æ­¢ uml å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "å…许 xinetd ä¸åŠ é™å®šåœ°è¿è¡Œï¼ŒåŒ…括它å¯åŠ¨çš„æœåŠ¡ï¼Œå¦‚果没有显å¼å®šä¹‰åŸŸè½¬æ¢çš„è¯"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "å…许 rc è„šæœ¬ä¸åŠ é™å®šåœ°è¿è¡Œï¼ŒåŒ…括 rc è„šæœ¬å¯åŠ¨çš„任何守护进程,如果没有显å¼å®š"
+-#~ "义域转æ¢çš„è¯"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "å…许 rpm ä¸å—é™åœ°è¿è¡Œ"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr "å…许高优先级程åºå¦‚ hotplug å’Œ insmod ä¸å—é™åœ°è¿è¡Œ"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "ç¦æ­¢ updfstab å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "ç¦æ­¢ uptimed å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "å…许 user_r é€šè¿‡ su, sudo æˆ– userhelper èŽ·å¾— sysadm_r。å¦åˆ™ï¼Œåªæœ‰ staff_r "
+-#~ "å¯ä»¥è¿™æ ·åš"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "å…许用户执行 mount å‘½ä»¤"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr "å…许普通用户直接访问鼠标(ä»…é™ X æœåŠ¡å™¨)"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "å…许用户è¿è¡Œ dmesg å‘½ä»¤"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr "å…许用户控制网络接å£(还需覠USERCTL=true)"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "å…许普通用户执行 ping"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "å…许用户读写无扩展属性的文件(FAT, CDROM, FLOPPY)"
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "å…许用户读写 usb è®¾å¤‡"
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "å…许用户è¿è¡Œ TCP æœåŠ¡(绑定到端å£ï¼ŒæŽ¥å—域内部和外部用户的连接)。ç¦æ­¢è¿™ä¸€é¡¹"
+-#~ "将强迫 FTP ä½¿ç”¨è¢«åŠ¨æ¨¡å¼ï¼Œè¿˜å¯èƒ½å½±å“其他åè®®"
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "å…许用户探测 tty æ–‡ä»¶"
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "ç¦æ­¢ uucpd å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "ç¦æ­¢ vmware å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "ç¦æ­¢ watchdog å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "ç¦æ­¢ winbind å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "ç¦æ­¢ xdm å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "å…许通过 xdm ç™»å½•ä¸º sysadm_r:sysadm_t"
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "ç¦æ­¢ xen å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "å…许 xen è¯»å†™ç‰©ç†ç£ç›˜è®¾å¤‡"
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "ç¦æ­¢ xfs å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "ç¦æ­¢ xen æŽ§åˆ¶ç¨‹åºçš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "ç¦æ­¢ ypbind å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "ç¦æ­¢ NIS Password å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "ç¦æ­¢ ypserv å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "ç¦æ­¢ NIS Transfer å®ˆæŠ¤è¿›ç¨‹çš„ SELinux ä¿æŠ¤"
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr "å…许 SELinux webadm ç”¨æˆ·ç®¡ç†éžç‰¹æƒç”¨æˆ·ä¸»ç›®å½•"
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr "å…许 SELinux webadm ç”¨æˆ·è¯»éžç‰¹æƒç”¨æˆ·ä¸»ç›®å½•"
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "您确定è¦åˆ é™¤ %s '%s'å—?"
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
+-#~ msgid "Delete %s"
+-#~ msgstr "删除 %s"
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
+-#~ msgid "Add %s"
+-#~ msgstr "添加 %s"
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Modify %s"
+-#~ msgstr "å˜æ›´ %s"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Permissive"
+-#~ msgstr "å…许"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#~ msgid "Enforcing"
+-#~ msgstr "强制"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "改å˜ç­–略类型将导致下次å¯åŠ¨æ—¶å¯¹æ•´ä¸ªæ–‡ä»¶ç³»ç»Ÿé‡æ–°æ ‡è®°ã€‚é‡æ–°æ ‡è®°éœ€è¦å¾ˆé•¿æ—¶é—´ï¼Œ"
+-#~ "å–决于文件系统规模。ä»è¦ç»§ç»­å—?"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "ç¦ç”¨ SELinux éœ€è¦é‡å¯ã€‚ä¸æŽ¨è这样åšã€‚如果您åªæƒ³å¼„清是ä¸æ˜¯ SELinux é€ æˆäº†ç³»"
+-#~ "统的问题,å¯ä»¥åˆ‡æ¢åˆ°å…许模å¼(permissive),这样åªä¼šè®°å½•é”™è¯¯ï¼Œè€Œä¸ä¼šå¼ºåˆ¶æ–½"
+-#~ "è¡Œ SELinux ç­–略。å…许模å¼ä¸éœ€è¦é‡å¯ã€‚ä»è¦ç»§ç»­å—?"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "å¯ç”¨ SELinux å°†å¯¼è‡´ä¸‹æ¬¡å¯åŠ¨æ—¶å¯¹æ•´ä¸ªæ–‡ä»¶ç³»ç»Ÿé‡æ–°æ ‡è®°ã€‚é‡æ–°æ ‡è®°éœ€è¦å¾ˆé•¿æ—¶"
+-#~ "间,å–决于文件系统规模。ä»è¦ç»§ç»­å—?"
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
++
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>选择:</b>"
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
+-#~ msgid "Add"
+-#~ msgstr "添加"
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "添加文件上下文"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "添加网络端å£"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "添加 SELinux ç™»å½•æ˜ å°„"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "添加 SELinux ç½‘络端å£"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid "Add SELinux User"
+-#~ msgstr "添加 SELinux ç”¨æˆ·"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "添加 SELinux ç”¨æˆ·æ˜ å°„"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "添加转æ¢"
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "当å‰åº”用模å¼"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "删除文件上下文"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "删除网络端å£"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "删除 SELinux ç”¨æˆ·æ˜ å°„"
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "删除转æ¢"
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid ""
+-#~ "Disabled\n"
+-#~ "Permissive\n"
+-#~ "Enforcing\n"
+-#~ msgstr ""
+-#~ "Disabled\n"
+-#~ "Permissive\n"
+-#~ "Enforcing\n"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "编辑网络端å£"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr "å¯ç”¨/ç¦ç”¨é™„加的审计规则。这些规则平时ä¸ä¼šå‡ºçŽ°åœ¨æ—¥å¿—文件中。"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid "File Specification"
+-#~ msgstr "文件约æŸ"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid "File Type"
+-#~ msgstr "文件类型"
+-
+-#~ msgid "Filter"
+-#~ msgstr "过滤器"
+-
+-#~ msgid "Generate new policy module"
+-#~ msgstr "生æˆæ–°çš„策略模å—"
+-
+-#~ msgid "Load policy module"
+-#~ msgstr "加载策略模å—"
+-
+-#~ msgid "Lockdown..."
+-#~ msgstr "é”定......"
+-
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "修改文件上下文"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "修改 SELinux ç”¨æˆ·"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "修改 SELinux ç”¨æˆ·æ˜ å°„"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "修改转æ¢"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "下次å¯åŠ¨æ—¶é‡æ–°æ ‡è®°ã€‚"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "移除活动的策略模å—"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "将布尔设置转æ¢ä¸ºç³»ç»Ÿé»˜è®¤"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Run booleans lockdown wizard"
+-#~ msgstr "è¿è¡Œå¸ƒå°”值é”定å‘导"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux ç»´æŠ¤"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "级别"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux ç±»åž‹"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Select Management Object"
+-#~ msgstr "选择管ç†å¯¹è±¡"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "如果您希望在下次é‡å¯è¿‡ç¨‹ä¸­å¯¹æ•´ä¸ªæ–‡ä»¶ç³»ç»Ÿé‡æ–°æ ‡è®°ï¼Œé€‰æ‹©æ­¤é¡¹ã€‚é‡æ–°æ ‡è®°å¯èƒ½èŠ±"
+-#~ "费很长时间,这与文件系统规模有关。如果您改å˜äº†ç­–略类型,或是从ç¦ç”¨åˆ‡æ¢åˆ°å…¶"
+-#~ "他模å¼ï¼Œå°±åº”当é‡æ–°æ ‡è®°ã€‚"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "系统默认的应用模å¼"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "系统默认的策略类型:"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "在自定义布尔和所有布尔间切æ¢"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "在自定义端å£å’Œæ‰€æœ‰ç«¯å£é—´åˆ‡æ¢"
+-
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "在自定义文件环境和所有文件环境间切æ¢"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "删除 (_D)"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "_Properties"
+-#~ msgstr "属性 (_P)"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "所有文件\n"
+-#~ "常规文件\n"
+-#~ "目录\n"
+-#~ "字符设备\n"
+-#~ "å—设备\n"
+-#~ "套接字\n"
+-#~ "符å·é“¾æŽ¥\n"
+-#~ "命å管é“\n"
+-
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
+-
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "æ•æ„Ÿåº¦çº§åˆ«"
+-
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "SELinux ç”¨æˆ· '%s' æ˜¯å¿…需的"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
++
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
++
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/zh_TW.po b/policycoreutils/po/zh_TW.po
+index 6f47fc3..4ffb390 100644
+--- a/policycoreutils/po/zh_TW.po
++++ b/policycoreutils/po/zh_TW.po
+@@ -1,24 +1,25 @@
+-# translation of policycoreutils.HEAD.po to Traditional Chinese
+-# translation of zh_TW.po to
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+ #
+-# Chester Cheng <ccheng@redhat.com>, 2006.
++# Translators:
+ # Chester Cheng <ccheng@brisbane.redhat.com>, 2006.
+-# Terry Chuang <tchuang@redhat.com>, 2008.
++# Chester Cheng <ccheng@redhat.com>, 2006.
++# Terry Chuang <tchuang at redhat>, 2010.
++# Terry Chuang <tchuang@redhat.com>, 2008, 2009, 2010.
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: policycoreutils.HEAD\n"
++"Project-Id-Version: Policycoreutils\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: 2008-09-09 11:34+1000\n"
+-"Last-Translator: Terry Chuang <tchuang@redhat.com>\n"
+-"Language-Team: Traditional Chinese <zh@li.org>\n"
+-"Language: \n"
++"POT-Creation-Date: 2012-04-18 11:44-0400\n"
++"PO-Revision-Date: 2012-04-02 20:30+0000\n"
++"Last-Translator: dwalsh <dwalsh@redhat.com>\n"
++"Language-Team: Chinese (Taiwan) <trans-zh_TW@lists.fedoraproject.org>\n"
++"Language: zh_TW\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
++"Plural-Forms: nplurals=1; plural=0\n"
+ #: ../run_init/run_init.c:67
+ msgid ""
+@@ -26,7 +27,7 @@ msgid ""
+ "  where: <script> is the name of the init script to run,\n"
+ "         <args ...> are the arguments to that script."
+ msgstr ""
+-"USAGE: run_init <script> <args ...>\n"
++"使用方法:run_init <script> <args ...>\n"
+ "  å…¶ä¸­ï¼š<script> æ˜¯è¦åŸ·è¡Œçš„ init ç¨‹åºæª”,\n"
+ "         <args ...> æ˜¯ç¨‹åºæª”çš„åƒæ•¸ã€‚"
+@@ -82,7 +83,7 @@ msgstr "èªè­‰å¤±æ•—。\n"
+ #: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+ #, c-format
+ msgid "Could not set exec context to %s.\n"
+-msgstr "無法將 exec å…§æ–‡è¨­å®šè‡³ %s。\n"
++msgstr "無法將 exec context è¨­å®šç‚º %s。\n"
+ #: ../audit2allow/audit2allow:230
+ msgid "******************** IMPORTANT ***********************\n"
+@@ -90,7 +91,7 @@ msgstr "******************** é‡è¦ ***********************\n"
+ #: ../audit2allow/audit2allow:231
+ msgid "To make this policy package active, execute:"
+-msgstr "è‹¥è¦å•Ÿç”¨æ­¤æ”¿ç­–套件,請執行:"
++msgstr "è‹¥è¦å•Ÿç”¨æ­¤æ–¹é‡å¥—件,請執行:"
+ #: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+ msgid "global"
+@@ -102,20 +103,19 @@ msgstr "無法建立 semanage è™•ç†å™¨"
+ #: ../semanage/seobject.py:230
+ msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr "SELinux æ”¿ç­–並ä¸å—管ç†ï¼Œæˆ–無法存喠store。"
++msgstr "SELinux æ–¹é‡ä¸¦ä¸å—管ç†ï¼Œæˆ–無法存喠store。"
+ #: ../semanage/seobject.py:235
+ msgid "Cannot read policy store."
+-msgstr "無法讀å–政策 store。"
++msgstr "無法讀å–方釠store。"
+ #: ../semanage/seobject.py:240
+ msgid "Could not establish semanage connection"
+ msgstr "無法建立 semanage é€£ç·š"
+ #: ../semanage/seobject.py:245
+-#, fuzzy
+ msgid "Could not test MLS enabled status"
+-msgstr "無法為 %s è¨­å®š MLS ç¯„åœ"
++msgstr "無法測試啟用了 MLS çš„狀態"
+ #: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+ msgid "Not yet implemented"
+@@ -123,7 +123,7 @@ msgstr "未實施"
+ #: ../semanage/seobject.py:255
+ msgid "Semanage transaction already in progress"
+-msgstr ""
++msgstr "Semanage å‚³è¼¸æ­£åœ¨é€²è¡Œä¸­"
+ #: ../semanage/seobject.py:264
+ msgid "Could not start semanage transaction"
+@@ -135,53 +135,50 @@ msgstr "無法æ交 semanage äº¤æ˜“"
+ #: ../semanage/seobject.py:279
+ msgid "Semanage transaction not in progress"
+-msgstr ""
++msgstr "Semanage å‚³è¼¸éžé€²è¡Œä¸­"
+ #: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+ msgid "Could not list SELinux modules"
+ msgstr "無法列出 SELinux æ¨¡çµ„"
+ #: ../semanage/seobject.py:304
+-#, fuzzy
+ msgid "Modules Name"
+-msgstr "模組å稱"
++msgstr ""
+-#: ../semanage/seobject.py:304
++#: ../semanage/seobject.py:304 ../gui/modulesPage.py:62
+ msgid "Version"
+ msgstr "版本"
+-#: ../semanage/seobject.py:307
++#: ../semanage/seobject.py:307 ../gui/statusPage.py:75
+ msgid "Disabled"
+ msgstr "åœç”¨"
+ #: ../semanage/seobject.py:322
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not disable module %s (remove failed)"
+-msgstr "無法移除寬鬆型網域 %s(移除失敗)"
++msgstr ""
+ #: ../semanage/seobject.py:333
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not enable module %s (remove failed)"
+-msgstr "無法移除寬鬆型網域 %s(移除失敗)"
++msgstr ""
+ #: ../semanage/seobject.py:348
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not remove module %s (remove failed)"
+-msgstr "無法移除寬鬆型網域 %s(移除失敗)"
++msgstr ""
+ #: ../semanage/seobject.py:358
+ msgid "dontaudit requires either 'on' or 'off'"
+ msgstr ""
+ #: ../semanage/seobject.py:387
+-#, fuzzy
+ msgid "Builtin Permissive Types"
+-msgstr "寬鬆型"
++msgstr ""
+ #: ../semanage/seobject.py:397
+-#, fuzzy
+ msgid "Customized Permissive Types"
+-msgstr "寬鬆型"
++msgstr ""
+ #: ../semanage/seobject.py:438
+ #, python-format
+@@ -208,7 +205,7 @@ msgstr "無法為 %s å»ºç«‹é‡‘é‘°"
+ #: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+ #, python-format
+ msgid "Could not check if login mapping for %s is defined"
+-msgstr "無法檢查 %s çš„登入å°æ˜ æ˜¯å¦å·²ç¶“定義"
++msgstr "無法檢查 %s çš„登入å°æ‡‰æ˜¯å¦å·²ç¶“定義"
+ #: ../semanage/seobject.py:492
+ #, python-format
+@@ -223,7 +220,7 @@ msgstr "Linux ä½¿ç”¨è€… %s ä¸å­˜åœ¨"
+ #: ../semanage/seobject.py:501
+ #, python-format
+ msgid "Could not create login mapping for %s"
+-msgstr "無法為 %s å»ºç«‹ç™»å…¥å°æ˜ "
++msgstr "無法為 %s å»ºç«‹ç™»å…¥å°æ‡‰"
+ #: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+ #, python-format
+@@ -243,7 +240,7 @@ msgstr "無法為 %s è¨­å®š SELinux ä½¿ç”¨è€…"
+ #: ../semanage/seobject.py:518
+ #, python-format
+ msgid "Could not add login mapping for %s"
+-msgstr "無法為 %s æ–°å¢žç™»å…¥å°æ˜ "
++msgstr "無法為 %s æ–°å¢žç™»å…¥å°æ‡‰"
+ #: ../semanage/seobject.py:536
+ msgid "Requires seuser or serange"
+@@ -252,7 +249,7 @@ msgstr "需覠seuser æˆ– serange"
+ #: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+ #, python-format
+ msgid "Login mapping for %s is not defined"
+-msgstr "%s çš„登入å°æ˜ ä¸¦æœªå®šç¾©"
++msgstr "%s çš„登入å°æ‡‰ä¸¦æœªå®šç¾©"
+ #: ../semanage/seobject.py:563
+ #, python-format
+@@ -262,33 +259,38 @@ msgstr "無法為 %s æŸ¥è©¢ seuser"
+ #: ../semanage/seobject.py:577
+ #, python-format
+ msgid "Could not modify login mapping for %s"
+-msgstr "無法為 %s ä¿®æ”¹ç™»å…¥å°æ˜ "
++msgstr "無法為 %s ä¿®æ”¹ç™»å…¥å°æ‡‰"
+ #: ../semanage/seobject.py:611
+ #, python-format
+ msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr "%s çš„登入å°æ˜ å®šç¾©åœ¨æ”¿ç­–中,無法刪除"
++msgstr "%s çš„登入å°æ‡‰å®šç¾©åœ¨æ–¹é‡ä¸­ï¼Œç„¡æ³•åˆªé™¤"
+ #: ../semanage/seobject.py:615
+ #, python-format
+ msgid "Could not delete login mapping for %s"
+-msgstr "無法為 %s åˆªé™¤ç™»å…¥å°æ˜ "
++msgstr "無法為 %s åˆªé™¤ç™»å…¥å°æ‡‰"
+ #: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+ #: ../semanage/seobject.py:893
+ msgid "Could not list login mappings"
+-msgstr "無法列出登入å°æ˜ "
++msgstr "無法列出登入å°æ‡‰"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
++#: ../gui/system-config-selinux.glade:100
+ msgid "Login Name"
+ msgstr "登錄å稱"
+ #: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:128
++#: ../gui/system-config-selinux.glade:915
++#: ../gui/system-config-selinux.glade:2304 ../gui/usersPage.py:44
+ msgid "SELinux User"
+ msgstr "SELinux ä½¿ç”¨è€…"
+-#: ../semanage/seobject.py:680
++#: ../semanage/seobject.py:680 ../gui/system-config-selinux.glade:156
++#: ../gui/system-config-selinux.glade:943
+ msgid "MLS/MCS Range"
+ msgstr "MLS/MCS ç¯„åœ"
+@@ -361,7 +363,7 @@ msgstr "無法修改 SELinux ä½¿ç”¨è€… %s"
+ #: ../semanage/seobject.py:862
+ #, python-format
+ msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr "SELinux ä½¿ç”¨è€… %s å®šç¾©åœ¨æ”¿ç­–中,無法刪除"
++msgstr "SELinux ä½¿ç”¨è€… %s å®šç¾©åœ¨æ–¹é‡ä¸­ï¼Œç„¡æ³•åˆªé™¤"
+ #: ../semanage/seobject.py:873
+ #, python-format
+@@ -398,6 +400,7 @@ msgid "MCS Range"
+ msgstr "MCS ç¯„åœ"
+ #: ../semanage/seobject.py:943 ../semanage/seobject.py:948
++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59
+ msgid "SELinux Roles"
+ msgstr "SELinux è§’色"
+@@ -441,32 +444,32 @@ msgstr "無法為 %s/%s å»ºç«‹é€£æŽ¥åŸ "
+ #: ../semanage/seobject.py:1008
+ #, python-format
+ msgid "Could not create context for %s/%s"
+-msgstr "無法為 %s/%s å»ºç«‹å…§æ–‡"
++msgstr "無法為 %s/%s å»ºç«‹ context"
+ #: ../semanage/seobject.py:1012
+ #, python-format
+ msgid "Could not set user in port context for %s/%s"
+-msgstr "無法為 %s/%s çš„連接埠內文中,設定使用者"
++msgstr "無法為 %s/%s çš„連接埠 context ä¸­ï¼Œè¨­å®šä½¿ç”¨è€…"
+ #: ../semanage/seobject.py:1016
+ #, python-format
+ msgid "Could not set role in port context for %s/%s"
+-msgstr "無法為 %s/%s çš„連接埠內文中,設定角色"
++msgstr "無法為 %s/%s çš„連接埠 context ä¸­ï¼Œè¨­å®šè§’色"
+ #: ../semanage/seobject.py:1020
+ #, python-format
+ msgid "Could not set type in port context for %s/%s"
+-msgstr "無法為 %s/%s çš„連接埠內文中,設定類型"
++msgstr "無法為 %s/%s çš„連接埠 context ä¸­ï¼Œè¨­å®šé¡žåž‹"
+ #: ../semanage/seobject.py:1025
+ #, python-format
+ msgid "Could not set mls fields in port context for %s/%s"
+-msgstr "無法為 %s/%s çš„連接埠內文中,設定 mls æ¬„ä½"
++msgstr "無法為 %s/%s çš„連接埠 context ä¸­ï¼Œè¨­å®š mls æ¬„ä½"
+ #: ../semanage/seobject.py:1029
+ #, python-format
+ msgid "Could not set port context for %s/%s"
+-msgstr "無法為 %s/%s è¨­å®šé€£æŽ¥åŸ å…§æ–‡"
++msgstr "無法為 %s/%s è¨­å®šé€£æŽ¥åŸ  context"
+ #: ../semanage/seobject.py:1033
+ #, python-format
+@@ -509,7 +512,7 @@ msgstr "無法刪除連接埠 %s"
+ #: ../semanage/seobject.py:1118
+ #, python-format
+ msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr "連接埠 %s/%s å·²ç¶“在政策中定義,無法刪除"
++msgstr "連接埠 %s/%s å·²ç¶“在方é‡ä¸­å®šç¾©ï¼Œç„¡æ³•åˆªé™¤"
+ #: ../semanage/seobject.py:1122
+ #, python-format
+@@ -528,18 +531,17 @@ msgstr "SELinux é€£æŽ¥åŸ é¡žåž‹"
+ msgid "Proto"
+ msgstr "Proto"
+-#: ../semanage/seobject.py:1199
++#: ../semanage/seobject.py:1199 ../gui/system-config-selinux.glade:335
+ msgid "Port Number"
+ msgstr "埠號"
+ #: ../semanage/seobject.py:1218
+-#, fuzzy
+ msgid "Node Address is required"
+-msgstr "需è¦é€£æŽ¥åŸ "
++msgstr "需è¦ç¯€é»žä½å€"
+ #: ../semanage/seobject.py:1233
+ msgid "Unknown or missing protocol"
+-msgstr ""
++msgstr "通訊å”定ä¸æ˜Žæˆ–éºå¤±"
+ #: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+ #: ../semanage/seobject.py:1724
+@@ -556,90 +558,88 @@ msgstr "無法為 %s å»ºç«‹é‡‘é‘°"
+ #: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+ #: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not check if addr %s is defined"
+-msgstr "無法檢查連接埠 %s/%s æ˜¯å¦å·²ç¶“定義"
++msgstr "無法檢查 addr %s æ˜¯å¦å·²å®šç¾©"
+ #: ../semanage/seobject.py:1262
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not create addr for %s"
+-msgstr "無法為 %s å»ºç«‹é‡‘é‘°"
++msgstr "無法為 %s å»ºç«‹ addr"
+ #: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+ #: ../semanage/seobject.py:1686
+ #, python-format
+ msgid "Could not create context for %s"
+-msgstr "無法為 %s å»ºç«‹å…§æ–‡"
++msgstr "無法為 %s å»ºç«‹ context"
+ #: ../semanage/seobject.py:1272
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mask for %s"
+-msgstr "無法為 %s è¨­å®šå稱"
++msgstr "無法為 %s è¨­å®šé®ç½©"
+ #: ../semanage/seobject.py:1276
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set user in addr context for %s"
+-msgstr "無法為 %s çš„檔案內文設定使用者"
++msgstr "無法為 %s çš„ addr context è¨­å®šä½¿ç”¨è€…"
+ #: ../semanage/seobject.py:1280
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set role in addr context for %s"
+-msgstr "無法為 %s çš„檔案內文設定角色"
++msgstr "無法為 %s çš„ addr context è¨­å®šè§’色"
+ #: ../semanage/seobject.py:1284
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set type in addr context for %s"
+-msgstr "無法為 %s çš„檔案內文設定類型"
++msgstr "無法為 %s çš„ addr context è¨­å®šé¡žåž‹"
+ #: ../semanage/seobject.py:1289
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set mls fields in addr context for %s"
+-msgstr "無法為 %s çš„檔案內文設定 mls æ¬„ä½"
++msgstr "無法為 %s çš„ addr context è¨­å®š mls æ¬„ä½"
+ #: ../semanage/seobject.py:1293
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not set addr context for %s"
+-msgstr "無法為 %s è¨­å®šæª”案內文"
++msgstr "無法為 %s è¨­å®š addr context"
+ #: ../semanage/seobject.py:1297
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not add addr %s"
+-msgstr "無法新增連接埠 %s/%s"
++msgstr "無法新增 addr %s"
+ #: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is not defined"
+-msgstr "連接埠 %s/%s æœªå®šç¾©"
++msgstr "Addr %s æœªå®šç¾©"
+ #: ../semanage/seobject.py:1326
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not query addr %s"
+-msgstr "無法查詢連接埠 %s/%s"
++msgstr "無法查詢 addr %s"
+ #: ../semanage/seobject.py:1336
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not modify addr %s"
+-msgstr "無法修改連接埠 %s/%s"
++msgstr "無法修改 addr %s"
+ #: ../semanage/seobject.py:1364
+-#, fuzzy, python-format
++#, python-format
+ msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr "連接埠 %s/%s å·²ç¶“在政策中定義,無法刪除"
++msgstr "Addr %s å·²ç¶“在方é‡ä¸­å®šç¾©ï¼Œç„¡æ³•åˆªé™¤"
+ #: ../semanage/seobject.py:1368
+-#, fuzzy, python-format
++#, python-format
+ msgid "Could not delete addr %s"
+-msgstr "無法刪除連接埠 %s/%s"
++msgstr "無法刪除 addr %s"
+ #: ../semanage/seobject.py:1380
+-#, fuzzy
+ msgid "Could not deleteall node mappings"
+-msgstr "無法為 %s åˆªé™¤ç™»å…¥å°æ˜ "
++msgstr ""
+ #: ../semanage/seobject.py:1394
+-#, fuzzy
+ msgid "Could not list addrs"
+-msgstr "無法列出連接埠"
++msgstr "無法列出 addr"
+ #: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+ #: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+@@ -655,32 +655,32 @@ msgstr "無法為 %s å»ºç«‹ä»‹é¢"
+ #: ../semanage/seobject.py:1470
+ #, python-format
+ msgid "Could not set user in interface context for %s"
+-msgstr "無法為 %s è¨­å®šä»‹é¢å…§æ–‡ä¸­çš„使用者"
++msgstr "無法為 %s è¨­å®šä»‹é¢ context ä¸­çš„使用者"
+ #: ../semanage/seobject.py:1474
+ #, python-format
+ msgid "Could not set role in interface context for %s"
+-msgstr "無法為 %s è¨­å®šä»‹é¢å…§æ–‡ä¸­çš„角色"
++msgstr "無法為 %s è¨­å®šä»‹é¢ context ä¸­çš„角色"
+ #: ../semanage/seobject.py:1478
+ #, python-format
+ msgid "Could not set type in interface context for %s"
+-msgstr "無法為 %s è¨­å®šä»‹é¢å…§æ–‡ä¸­çš„é¡žåž‹"
++msgstr "無法為 %s è¨­å®šä»‹é¢ context ä¸­çš„é¡žåž‹"
+ #: ../semanage/seobject.py:1483
+ #, python-format
+ msgid "Could not set mls fields in interface context for %s"
+-msgstr "無法為 %s è¨­å®šä»‹é¢å…§æ–‡ä¸­çš„ mls æ¬„ä½"
++msgstr "無法為 %s è¨­å®šä»‹é¢ context ä¸­çš„ mls æ¬„ä½"
+ #: ../semanage/seobject.py:1487
+ #, python-format
+ msgid "Could not set interface context for %s"
+-msgstr "無法為 %s è¨­å®šä»‹é¢å…§æ–‡"
++msgstr "無法為 %s è¨­å®šä»‹é¢ context"
+ #: ../semanage/seobject.py:1491
+ #, python-format
+ msgid "Could not set message context for %s"
+-msgstr "無法為 %s è¨­å®šè¨Šæ¯å…§æ–‡"
++msgstr "無法為 %s è¨­å®šè¨Šæ¯ context"
+ #: ../semanage/seobject.py:1495
+ #, python-format
+@@ -705,7 +705,7 @@ msgstr "無法修改介颠%s"
+ #: ../semanage/seobject.py:1558
+ #, python-format
+ msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr "介颠%s å®šç¾©åœ¨æ”¿ç­–中,無法刪除"
++msgstr "介颠%s å®šç¾©åœ¨æ–¹é‡ä¸­ï¼Œç„¡æ³•åˆªé™¤"
+ #: ../semanage/seobject.py:1562
+ #, python-format
+@@ -713,9 +713,8 @@ msgid "Could not delete interface %s"
+ msgstr "無法刪除介颠%s"
+ #: ../semanage/seobject.py:1574
+-#, fuzzy
+ msgid "Could not delete all interface  mappings"
+-msgstr "無法刪除介颠%s"
++msgstr ""
+ #: ../semanage/seobject.py:1588
+ msgid "Could not list interfaces"
+@@ -727,12 +726,12 @@ msgstr "SELinux ä»‹é¢"
+ #: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+ msgid "Context"
+-msgstr "內文"
++msgstr "Context"
+ #: ../semanage/seobject.py:1663
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s already exists"
+-msgstr "%s çš„檔案內文已經定義"
++msgstr ""
+ #: ../semanage/seobject.py:1669
+ #, python-format
+@@ -740,24 +739,24 @@ msgid "File spec %s conflicts with equivalency rule '%s %s'"
+ msgstr ""
+ #: ../semanage/seobject.py:1678
+-#, fuzzy, python-format
++#, python-format
+ msgid "Equivalence class for %s does not exists"
+-msgstr "Linux ä½¿ç”¨è€… %s ä¸å­˜åœ¨"
++msgstr ""
+ #: ../semanage/seobject.py:1692
+ #, python-format
+ msgid "Could not set user in file context for %s"
+-msgstr "無法為 %s çš„檔案內文設定使用者"
++msgstr "無法為 %s çš„檔案 context è¨­å®šä½¿ç”¨è€…"
+ #: ../semanage/seobject.py:1696
+ #, python-format
+ msgid "Could not set role in file context for %s"
+-msgstr "無法為 %s çš„檔案內文設定角色"
++msgstr "無法為 %s çš„檔案 context è¨­å®šè§’色"
+ #: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+ #, python-format
+ msgid "Could not set mls fields in file context for %s"
+-msgstr "無法為 %s çš„檔案內文設定 mls æ¬„ä½"
++msgstr "無法為 %s çš„檔案 context è¨­å®š mls æ¬„ä½"
+ #: ../semanage/seobject.py:1707
+ msgid "Invalid file specification"
+@@ -778,28 +777,28 @@ msgstr ""
+ #: ../semanage/seobject.py:1876
+ #, python-format
+ msgid "Could not check if file context for %s is defined"
+-msgstr "無法檢查 %s çš„檔案內文是å¦å·²ç¶“定義"
++msgstr "無法檢查 %s çš„檔案 context æ˜¯å¦å·²ç¶“定義"
+ #: ../semanage/seobject.py:1745
+ #, python-format
+ msgid "Could not create file context for %s"
+-msgstr "無法為 %s å»ºç«‹æª”案內文"
++msgstr "無法為 %s å»ºç«‹æª”案 context"
+ #: ../semanage/seobject.py:1753
+ #, python-format
+ msgid "Could not set type in file context for %s"
+-msgstr "無法為 %s çš„檔案內文設定類型"
++msgstr "無法為 %s çš„檔案 context è¨­å®šé¡žåž‹"
+ #: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+ #: ../semanage/seobject.py:1822
+ #, python-format
+ msgid "Could not set file context for %s"
+-msgstr "無法為 %s è¨­å®šæª”案內文"
++msgstr "無法為 %s è¨­å®šæª”案 context"
+ #: ../semanage/seobject.py:1767
+ #, python-format
+ msgid "Could not add file context for %s"
+-msgstr "無法為 %s æ–°å¢žæª”案內文"
++msgstr "無法為 %s æ–°å¢žæª”案 context"
+ #: ../semanage/seobject.py:1781
+ msgid "Requires setype, serange or seuser"
+@@ -808,44 +807,44 @@ msgstr "需覠setypeã€serange æˆ– seuser"
+ #: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+ #, python-format
+ msgid "File context for %s is not defined"
+-msgstr "%s çš„檔案內文未定義"
++msgstr "%s çš„檔案 context æœªå®šç¾©"
+ #: ../semanage/seobject.py:1800
+ #, python-format
+ msgid "Could not query file context for %s"
+-msgstr "無法為 %s æŸ¥è©¢æª”案內文"
++msgstr "無法為 %s æŸ¥è©¢æª”案 context"
+ #: ../semanage/seobject.py:1826
+ #, python-format
+ msgid "Could not modify file context for %s"
+-msgstr "無法為 %s ä¿®æ”¹æª”案內文"
++msgstr "無法為 %s ä¿®æ”¹æª”案 context"
+ #: ../semanage/seobject.py:1839
+ msgid "Could not list the file contexts"
+-msgstr "無法列出檔案內文"
++msgstr "無法列出檔案 context"
+ #: ../semanage/seobject.py:1853
+ #, python-format
+ msgid "Could not delete the file context %s"
+-msgstr "無法刪除檔案內文 %s"
++msgstr "無法刪除檔案 context %s"
+ #: ../semanage/seobject.py:1878
+ #, python-format
+ msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr "%s çš„檔案內文已經定義於政策中,無法刪除"
++msgstr "%s çš„檔案 context å·²ç¶“定義在方é‡ä¸­ï¼Œç„¡æ³•åˆªé™¤"
+ #: ../semanage/seobject.py:1884
+ #, python-format
+ msgid "Could not delete file context for %s"
+-msgstr "無法為 %s åˆªé™¤æª”案內文"
++msgstr "無法為 %s åˆªé™¤æª”案 context"
+ #: ../semanage/seobject.py:1899
+ msgid "Could not list file contexts"
+-msgstr "無法列出檔案內文"
++msgstr "無法列出檔案 context"
+ #: ../semanage/seobject.py:1903
+ msgid "Could not list local file contexts"
+-msgstr "無法列出本地的檔案內文"
++msgstr "無法列出本地的檔案 context"
+ #: ../semanage/seobject.py:1936
+ msgid "SELinux fcontext"
+@@ -862,11 +861,10 @@ msgid ""
+ msgstr ""
+ #: ../semanage/seobject.py:1954
+-#, fuzzy
+ msgid ""
+ "\n"
+ "SELinux Local fcontext Equivalence \n"
+-msgstr "SELinux fcontext"
++msgstr ""
+ #: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+ #: ../semanage/seobject.py:2046
+@@ -882,7 +880,7 @@ msgstr "布林值 %s æœªå®šç¾©"
+ #: ../semanage/seobject.py:1994
+ #, python-format
+ msgid "Could not query file context %s"
+-msgstr "無法查詢檔案內文 %s"
++msgstr "無法查詢檔案 context %s"
+ #: ../semanage/seobject.py:1999
+ #, python-format
+@@ -907,7 +905,7 @@ msgstr "錯誤的格张%s:紀錄 %s"
+ #: ../semanage/seobject.py:2048
+ #, python-format
+ msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr "布林值 %s å·²ç¶“定義在政策中,無法刪除"
++msgstr "布林值 %s å·²ç¶“定義在方é‡ä¸­ï¼Œç„¡æ³•åˆªé™¤"
+ #: ../semanage/seobject.py:2052
+ #, python-format
+@@ -935,15 +933,15 @@ msgid "SELinux boolean"
+ msgstr "SELinux å¸ƒæž—值"
+ #: ../semanage/seobject.py:2131
+-#, fuzzy
+ msgid "State"
+-msgstr "狀態"
++msgstr ""
+ #: ../semanage/seobject.py:2131
+ msgid "Default"
+-msgstr "é è¨­"
++msgstr ""
+-#: ../semanage/seobject.py:2131
++#: ../semanage/seobject.py:2131 ../gui/polgen.glade:3355
++#: ../gui/polgengui.py:253
+ msgid "Description"
+ msgstr "æè¿°"
+@@ -1020,17 +1018,17 @@ msgstr "錯誤ï¼ç„¡æ³•é–‹å•Ÿ %s。\n"
+ #: ../newrole/newrole.c:705
+ #, c-format
+ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr "%sï¼ç„¡æ³•å–å¾— %s ç›®å‰çš„內文,無法為 tty é‡æ–°æ¨™è¨˜ã€‚\n"
++msgstr "%sï¼ç„¡æ³•å–å¾— %s ç›®å‰çš„ context,無法為 tty é‡æ–°æ¨™è¨˜ã€‚\n"
+ #: ../newrole/newrole.c:715
+ #, c-format
+ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr "%sï¼ç„¡æ³•å–å¾— %s æ–°çš„內文,無法為 tty é‡æ–°æ¨™è¨˜ã€‚\n"
++msgstr "%sï¼ç„¡æ³•å–å¾— %s æ–°çš„ context,無法為 tty é‡æ–°æ¨™è¨˜ã€‚\n"
+ #: ../newrole/newrole.c:725
+ #, c-format
+ msgid "%s!  Could not set new context for %s\n"
+-msgstr "%sï¼ç„¡æ³•ç‚º %s è¨­å®šæ–°çš„內文\n"
++msgstr "%sï¼ç„¡æ³•ç‚º %s è¨­å®šæ–°çš„ context\n"
+ #: ../newrole/newrole.c:772
+ #, c-format
+@@ -1040,7 +1038,7 @@ msgstr "%s æ”¹è®Šäº†æ¨™ç±¤ã€‚\n"
+ #: ../newrole/newrole.c:778
+ #, c-format
+ msgid "Warning! Could not restore context for %s\n"
+-msgstr "無法為 %s å›žå¾©å…§æ–‡\n"
++msgstr "無法為 %s å›žå¾© context\n"
+ #: ../newrole/newrole.c:835
+ #, c-format
+@@ -1065,7 +1063,7 @@ msgstr "錯誤:指令的多個等級\n"
+ #: ../newrole/newrole.c:865
+ #, c-format
+ msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr "錯誤:您ä¸å¯åœ¨ä¸€å€‹éžå®‰å…¨çš„終端機上更改等級 \n"
++msgstr "錯誤:您ä¸å¯åœ¨ä¸€å€‹éžå®‰å…¨çš„終端機上更改等級\n"
+ #: ../newrole/newrole.c:891
+ #, c-format
+@@ -1075,7 +1073,7 @@ msgstr "無法å–å¾—é è¨­é¡žåž‹ã€‚\n"
+ #: ../newrole/newrole.c:901
+ #, c-format
+ msgid "failed to get new context.\n"
+-msgstr "無法å–得新的內文。\n"
++msgstr "無法å–å¾—æ–°çš„ context。\n"
+ #: ../newrole/newrole.c:908
+ #, c-format
+@@ -1100,17 +1098,17 @@ msgstr "設定新範圠%s å¤±æ•—\n"
+ #: ../newrole/newrole.c:938
+ #, c-format
+ msgid "failed to convert new context to string\n"
+-msgstr "無法將新的內文轉為字串\n"
++msgstr "無法將新的 context è½‰ç‚ºå­—串\n"
+ #: ../newrole/newrole.c:943
+ #, c-format
+ msgid "%s is not a valid context\n"
+-msgstr "%s ä¸æ˜¯æœ‰æ•ˆçš„內文\n"
++msgstr "%s ä¸æ˜¯æœ‰æ•ˆçš„ context\n"
+ #: ../newrole/newrole.c:950
+ #, c-format
+ msgid "Unable to allocate memory for new_context"
+-msgstr "無法為新的內文(new_context)分é…記憶體"
++msgstr "無法為新的 context(new_context)分é…記憶體"
+ #: ../newrole/newrole.c:976
+ #, c-format
+@@ -1130,7 +1128,7 @@ msgstr "很抱歉,newrole åªèƒ½åœ¨ SELinux æ ¸å¿ƒä¸­ä½¿ç”¨ã€‚\n"
+ #: ../newrole/newrole.c:1070
+ #, c-format
+ msgid "failed to get old_context.\n"
+-msgstr "無法å–得舊的內文(old_context)。\n"
++msgstr "無法å–得舊的 context(old_context)。\n"
+ #: ../newrole/newrole.c:1077
+ #, c-format
+@@ -1189,17 +1187,17 @@ msgstr "用法:%s [-qi]\n"
+ #: ../load_policy/load_policy.c:71
+ #, c-format
+ msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr "%s:政策已載入,已請求åˆå§‹è¼‰å…¥\n"
++msgstr "%s:方é‡å·²è¼‰å…¥ï¼Œå·²è«‹æ±‚åˆå§‹è¼‰å…¥\n"
+ #: ../load_policy/load_policy.c:80
+ #, c-format
+ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr "%s:無法載入政策,已請求強制模å¼ï¼š%s\n"
++msgstr "%s:無法載入方é‡ï¼Œå·²è«‹æ±‚強制模å¼ï¼š%s\n"
+ #: ../load_policy/load_policy.c:90
+ #, c-format
+ msgid "%s:  Can't load policy:  %s\n"
+-msgstr "%s:無法載入政策:%s\n"
++msgstr "%s:無法載入方é‡ï¼š%s\n"
+ #: ../scripts/chcat:92 ../scripts/chcat:169
+ msgid "Requires at least one category"
+@@ -1280,1725 +1278,2096 @@ msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt"
+ msgid "chcat -l +CompanyConfidential juser"
+ msgstr "chcat -l +CompanyConfidential juser"
+-#: ../scripts/chcat:399
+-#, c-format
++#: ../scripts/chcat:399 ../gui/polgen.py:1335
++#, c-format, python-format
+ msgid "Options Error %s "
+ msgstr "é¸é …錯誤 %s"
+-#~ msgid ""
+-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
+-#~ msgstr "無法開啟 %s:鞠MLS çš„機器上並ä¸æ”¯æ´è½‰è­¯ï¼š%s"
++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1725
++msgid "Boolean"
++msgstr ""
+-#~ msgid "Level"
+-#~ msgstr "等級"
++#: ../gui/booleansPage.py:241 ../gui/semanagePage.py:162
++msgid "all"
++msgstr ""
+-#~ msgid "Translation"
+-#~ msgstr "轉譯"
++#: ../gui/booleansPage.py:243 ../gui/semanagePage.py:164
++#: ../gui/system-config-selinux.glade:1616
++#: ../gui/system-config-selinux.glade:1839
++#: ../gui/system-config-selinux.glade:2456
++msgid "Customized"
++msgstr ""
+-#~ msgid "Translations can not contain spaces '%s' "
+-#~ msgstr "轉譯ä¸èƒ½åŒ…å«ç©ºæ ¼ã€Œ%sã€"
++#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1930
++msgid "File Labeling"
++msgstr ""
+-#~ msgid "Invalid Level '%s' "
+-#~ msgstr "無效的等級「%sã€"
++#: ../gui/fcontextPage.py:74
++msgid ""
++"File\n"
++"Specification"
++msgstr ""
+-#~ msgid "%s already defined in translations"
+-#~ msgstr "%s å·²ç¶“在轉譯中定義"
++#: ../gui/fcontextPage.py:81
++msgid ""
++"Selinux\n"
++"File Type"
++msgstr ""
+-#~ msgid "%s not defined in translations"
+-#~ msgstr "%s åœ¨è½‰è­¯ä¸­æœªå®šç¾©"
++#: ../gui/fcontextPage.py:88
++msgid ""
++"File\n"
++"Type"
++msgstr ""
+-#~ msgid "Login mapping for %s is already defined"
+-#~ msgstr "%s çš„登入å°æ˜ å·²ç¶“定義"
++#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2117
++msgid "User Mapping"
++msgstr ""
+-#~ msgid "add SELinux user mapping"
+-#~ msgstr "新增 SELinux ä½¿ç”¨è€…å°æ˜ "
++#: ../gui/loginsPage.py:52
++msgid ""
++"Login\n"
++"Name"
++msgstr ""
+-#~ msgid "SELinux user %s is already defined"
+-#~ msgstr "SELinux ä½¿ç”¨è€… %s å·²ç¶“定義"
++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50
++msgid ""
++"SELinux\n"
++"User"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Node Netmask is required"
+-#~ msgstr "需è¦é€£æŽ¥åŸ "
++#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55
++msgid ""
++"MLS/\n"
++"MCS Range"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Addr %s already defined"
+-#~ msgstr "連接埠 %s/%s å·²ç¶“定義"
++#: ../gui/loginsPage.py:133
++#, python-format
++msgid "Login '%s' is required"
++msgstr ""
+-#~ msgid "Interface %s already defined"
+-#~ msgstr "介颠%s å·²ç¶“定義"
++#: ../gui/modulesPage.py:48 ../gui/system-config-selinux.glade:2772
++msgid "Policy Module"
++msgstr ""
+-#, fuzzy
+-#~ msgid "Error initializing capabilities, aborting.\n"
+-#~ msgstr "起始功能時發生錯誤,放棄。\n"
++#: ../gui/modulesPage.py:57
++msgid "Module Name"
++msgstr ""
+-#~ msgid "Error setting capabilities, aborting\n"
+-#~ msgstr "設定功能時發生錯誤,放棄\n"
++#: ../gui/modulesPage.py:134
++msgid "Disable Audit"
++msgstr ""
+-#~ msgid "Error setting KEEPCAPS, aborting\n"
+-#~ msgstr "設定 KEEPCAPS éŒ¯èª¤ï¼Œæ”¾æ£„\n"
++#: ../gui/modulesPage.py:137 ../gui/system-config-selinux.glade:2681
++msgid "Enable Audit"
++msgstr ""
+-#~ msgid "Error dropping capabilities, aborting\n"
+-#~ msgstr "丟棄功能時發生錯誤,放棄。\n"
++#: ../gui/modulesPage.py:162
++msgid "Load Policy Module"
++msgstr ""
+-#~ msgid "Error dropping SETUID capability, aborting\n"
+-#~ msgstr "丟棄 SETUID åŠŸèƒ½éŒ¯èª¤ï¼Œæ”¾æ£„\n"
++#: ../gui/polgen.glade:79
++msgid "Polgen"
++msgstr ""
+-#~ msgid "Error freeing caps\n"
+-#~ msgstr "釋放功能時發生錯誤\n"
++#: ../gui/polgen.glade:80
++msgid "Red Hat 2007"
++msgstr ""
+-#~ msgid ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
+-#~ msgstr ""
+-#~ "\n"
+-#~ "\n"
+-#~ "semodule -i %s\n"
+-#~ "\n"
++#: ../gui/polgen.glade:81
++msgid "GPL"
++msgstr ""
+-#~ msgid "translations not supported on non-MLS machines"
+-#~ msgstr "éž MLS çš„機器上並ä¸æ”¯æ´è½‰è­¯"
++#. TRANSLATORS: Replace this string with your names, one name per line.
++#: ../gui/polgen.glade:85 ../gui/system-config-selinux.glade:17
++msgid "translator-credits"
++msgstr ""
+-#~ msgid "Name"
+-#~ msgstr "å稱"
++#: ../gui/polgen.glade:90
++msgid "SELinux Policy Generation Tool"
++msgstr ""
+-#~ msgid "Role"
+-#~ msgstr "角色"
++#: ../gui/polgen.glade:128
++msgid ""
++"<b>Select the policy type for the application or user role you want to "
++"confine:</b>"
++msgstr ""
+-#~ msgid "Existing_User"
+-#~ msgstr "Existing_User"
++#: ../gui/polgen.glade:177
++msgid "<b>Applications</b>"
++msgstr ""
+-#~ msgid "Application"
+-#~ msgstr "應用程å¼"
++#: ../gui/polgen.glade:239 ../gui/polgen.glade:259
++msgid ""
++"Standard Init Daemon are daemons started on boot via init scripts.  Usually "
++"requires a script in /etc/rc.d/init.d"
++msgstr ""
+-#~ msgid "%s must be a directory"
+-#~ msgstr "%s å¿…é ˆè¦æ˜¯å€‹ç›®éŒ„"
++#: ../gui/polgen.glade:241 ../gui/polgen.py:156
++msgid "Standard Init Daemon"
++msgstr ""
+-#~ msgid "You must select a user"
+-#~ msgstr "您必須é¸æ“‡ç”¨æˆ¶"
++#: ../gui/polgen.glade:261 ../gui/polgen.py:157
++msgid "DBUS System Daemon"
++msgstr ""
+-#~ msgid "Select executable file to be confined."
+-#~ msgstr "é¸æ“‡è¦é™åˆ¶çš„å¯åŸ·è¡Œæª”。"
++#: ../gui/polgen.glade:280
++msgid "Internet Services Daemon are daemons started by xinetd"
++msgstr ""
+-#~ msgid "Select init script file to be confined."
+-#~ msgstr "é¸æ“‡è¦é™åˆ¶çš„ init script æª”案。"
++#: ../gui/polgen.glade:282
++msgid "Internet Services Daemon (inetd)"
++msgstr ""
+-#~ msgid "Select file(s) that confined application creates or writes"
+-#~ msgstr "é¸æ“‡é™åˆ¶äº†æ‡‰ç”¨ç¨‹å¼å»ºç«‹æˆ–寫入的檔案"
++#: ../gui/polgen.glade:301
++msgid ""
++"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
++msgstr ""
+-#~ msgid ""
+-#~ "Select directory(s) that the confined application owns and writes into"
+-#~ msgstr "é¸æ“‡è¢«é™åˆ¶çš„應用程å¼æ‰€å±¬ä¸¦å¯«å…¥çš„目錄"
++#: ../gui/polgen.glade:303 ../gui/polgen.py:159
++msgid "Web Application/Script (CGI)"
++msgstr ""
+-#~ msgid "Select directory to generate policy files in"
+-#~ msgstr "é¸æ“‡ç”¢ç”Ÿæ”¿ç­–檔案的目錄"
++#: ../gui/polgen.glade:322 ../gui/polgen.glade:343
++msgid ""
++"User Application are any application that you would like to confine that is "
++"started by a user"
++msgstr ""
+-#~ msgid ""
+-#~ "Type %s_t already defined in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "é¡žåž‹ %s_t å·²å®šç¾©æ–¼ç›®å‰çš„政策中。\n"
+-#~ "è«‹å•æ‚¨æ˜¯å¦å¸Œæœ›ç¹¼çºŒé€²è¡Œï¼Ÿ"
++#: ../gui/polgen.glade:324 ../gui/polgen.py:160
++msgid "User Application"
++msgstr ""
+-#~ msgid "Verify Name"
+-#~ msgstr "é©—è­‰å稱"
++#: ../gui/polgen.glade:345 ../gui/polgen.py:166
++msgid "Sandbox"
++msgstr ""
+-#~ msgid ""
+-#~ "Module %s.pp already loaded in current policy.\n"
+-#~ "Do you want to continue?"
+-#~ msgstr ""
+-#~ "模組 %s.pp å·²è¼‰å…¥ç›®å‰çš„政策中。\n"
+-#~ "è«‹å•æ‚¨æ˜¯å¦å¸Œæœ›ç¹¼çºŒé€²è¡Œï¼Ÿ"
++#: ../gui/polgen.glade:391
++msgid "<b>Login Users</b>"
++msgstr ""
+-#~ msgid "You must enter a name"
+-#~ msgstr "您必須輸入å稱"
+-
+-#~ msgid "You must enter a executable"
+-#~ msgstr "您必須輸入å¯åŸ·è¡Œæª”"
+-
+-#~ msgid "Configue SELinux"
+-#~ msgstr "設定 SELinux"
++#: ../gui/polgen.glade:453
++msgid "Modify an existing login user record."
++msgstr ""
+-#~ msgid "Ports must be be numbers or ranges of numbers from 1 to %d "
+-#~ msgstr "通訊埠必須以介於 1 èˆ‡ %d ä¹‹é–“的數字來構æˆ"
++#: ../gui/polgen.glade:455
++msgid "Existing User Roles"
++msgstr ""
+-#~ msgid "You must enter a name for your confined process/user"
+-#~ msgstr "您必須為您é™åˆ¶çš„程庠/ ç”¨æˆ¶è¼¸å…¥å稱"
++#: ../gui/polgen.glade:474
++msgid ""
++"This user will login to a machine only via a terminal or remote login.  By "
++"default this user will have  no setuid, no networking, no su, no sudo."
++msgstr ""
+-#~ msgid "USER Types are not allowed executables"
+-#~ msgstr "USER é¡žåž‹ä¸æ˜¯è¢«å…許的å¯åŸ·è¡Œæª”"
++#: ../gui/polgen.glade:476 ../gui/polgen.py:161
++msgid "Minimal Terminal User Role"
++msgstr ""
+-#~ msgid "Only DAEMON apps can use an init script"
+-#~ msgstr "åªæœ‰ DAEMON apps å¯ä»¥ä½¿ç”¨ init script"
++#: ../gui/polgen.glade:495
++msgid ""
++"This user can login to a machine via X or terminal.  By default this user "
++"will have no setuid, no networking, no sudo, no su"
++msgstr ""
+-#~ msgid "use_syslog must be a boolean value "
+-#~ msgstr "use_syslog å¿…須是布林值"
++#: ../gui/polgen.glade:497 ../gui/polgen.py:162
++msgid "Minimal X Windows User Role"
++msgstr ""
+-#~ msgid "USER Types autoomatically get a tmp type"
+-#~ msgstr "USER é¡žåž‹æœƒè‡ªå‹•å–得一個 tmp é¡žåž‹"
++#: ../gui/polgen.glade:516
++msgid ""
++"User with full networking, no setuid applications without transition, no "
++"sudo, no su."
++msgstr ""
+-#~ msgid "You must enter the executable path for your confined process"
+-#~ msgstr "您必須輸入您é™åˆ¶çš„程åºçš„å¯åŸ·è¡Œæª”路徑"
++#: ../gui/polgen.glade:518 ../gui/polgen.py:163
++msgid "User Role"
++msgstr ""
+-#~ msgid "Type Enforcement file"
+-#~ msgstr "類型強制檔"
+-
+-#~ msgid "Interface file"
+-#~ msgstr "介é¢æª”案"
+-
+-#~ msgid "File Contexts file"
+-#~ msgstr "檔案內文檔"
+-
+-#~ msgid "Setup Script"
+-#~ msgstr "設定 Script"
++#: ../gui/polgen.glade:537
++msgid ""
++"User with full networking, no setuid applications without transition, no su, "
++"can sudo to Root Administration Roles"
++msgstr ""
+-#~ msgid "Permissive"
+-#~ msgstr "寬鬆型"
++#: ../gui/polgen.glade:539 ../gui/polgen.py:164
++msgid "Admin User Role"
++msgstr ""
+-#~ msgid "Enforcing"
+-#~ msgstr "強制"
++#: ../gui/polgen.glade:585
++msgid "<b>Root Users</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Changing the policy type will cause a relabel of the entire file system "
+-#~ "on the next boot. Relabeling takes a long time depending on the size of "
+-#~ "the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "更改政策類型會造æˆæ•´å€‹æª”案系統在下次é‡æ–°å•Ÿå‹•æ™‚被é‡æ–°æ¨™è¨˜ï¼ˆrelabeling)。根"
+-#~ "據檔案系統的大å°ï¼Œé‡æ–°æ¨™è¨˜å¯èƒ½æœƒèŠ±ä¸Šè¨±å¤šæ™‚間。您是å¦å¸Œæœ›ç¹¼çºŒé€²è¡Œï¼Ÿ"
++#: ../gui/polgen.glade:647
++msgid ""
++"Select Root Administrator User Role, if this user will be used to administer "
++"the machine while running as root.  This user will not be able to login to "
++"the system directly."
++msgstr ""
+-#~ msgid ""
+-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
+-#~ "If you later decide to turn SELinux back on, the system will be required "
+-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
+-#~ "your system, you can go to permissive mode which will only log errors and "
+-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
+-#~ "Do you wish to continue?"
+-#~ msgstr ""
+-#~ "è‹¥è¦å°‡ SELinux è®Šæ›´ç‚ºåœç”¨çš„話您需é‡æ–°å•Ÿå‹•ç³»çµ±ã€‚我們ä¸å»ºè­°é€™éº¼ä½œã€‚若您之後"
+-#~ "決定將 SELinux å†æ¬¡å•Ÿç”¨ï¼Œç³»çµ±å°‡æœƒéœ€è¦è¢«é‡æ–°æ¨™è¨˜ã€‚若您åªæ˜¯æƒ³æŸ¥çœ‹ SELinux æ˜¯"
+-#~ "å¦æœƒåœ¨æ‚¨çš„系統上造æˆå•é¡Œï¼Œæ‚¨å¯é€²å…¥å¯¬é¬†æ¨¡å¼ï¼Œé€™åªæœƒå°‡éŒ¯èª¤ç´€éŒ„下來並且ä¸æœƒå¼·"
+-#~ "制 SELinux æ”¿ç­–。寬鬆模å¼ç„¡é ˆé‡æ–°å•Ÿå‹•ç³»çµ±    è«‹å•æ‚¨å¸Œæœ›ç¹¼çºŒé€²è¡Œå—Žï¼Ÿ"
++#: ../gui/polgen.glade:649 ../gui/polgen.py:165
++msgid "Root Admin User Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
+-#~ "system on the next boot. Relabeling takes a long time depending on the "
+-#~ "size of the file system.  Do you wish to continue?"
+-#~ msgstr ""
+-#~ "若將 SELinux è®Šæ›´ç‚ºå•Ÿç”¨çš„話,下次系統啟動時,整個檔案系統都將會被é‡æ–°æ¨™"
+-#~ "記。根據檔案系統的大å°ï¼Œé‡æ–°æ¨™è¨˜å¯èƒ½æœƒèŠ±ä¸Šè¨±å¤šæ™‚間。您是å¦å¸Œæœ›ç¹¼çºŒé€²è¡Œï¼Ÿ"
++#: ../gui/polgen.glade:716
++msgid "label104"
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux\n"
+-#~ "User"
+-#~ msgstr ""
+-#~ "SELinux\n"
+-#~ "用戶"
++#: ../gui/polgen.glade:745
++msgid "<b>Enter name of application or user role:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "MLS/\n"
+-#~ "MCS Range"
+-#~ msgstr ""
+-#~ "MLS/\n"
+-#~ "MCS ç¯„åœ"
++#: ../gui/polgen.glade:779 ../gui/polgengui.py:251
++msgid "Name"
++msgstr ""
+-#~ msgid "SELinux user '%s' is required"
+-#~ msgstr "需覠SELinux ç”¨æˆ¶ã€Œ%sã€"
++#: ../gui/polgen.glade:807
++msgid "Enter complete path for executable to be confined."
++msgstr ""
+-#~ msgid "User Mapping"
+-#~ msgstr "用戶å°æ˜ "
++#: ../gui/polgen.glade:830 ../gui/polgen.glade:950 ../gui/polgen.glade:3142
++msgid "..."
++msgstr ""
+-#~ msgid ""
+-#~ "Login\n"
+-#~ "Name"
+-#~ msgstr ""
+-#~ "登錄\n"
+-#~ "å稱"
++#: ../gui/polgen.glade:849
++msgid "Enter unique name for the confined application or user role."
++msgstr ""
+-#~ msgid "Login '%s' is required"
+-#~ msgstr "需è¦ç™»éŒ„å稱「%sã€"
++#: ../gui/polgen.glade:871
++msgid "Executable"
++msgstr ""
+-#~ msgid "Disable"
+-#~ msgstr "åœç”¨"
++#: ../gui/polgen.glade:899
++msgid "Init script"
++msgstr ""
+-#~ msgid "Enable"
+-#~ msgstr "啟用"
++#: ../gui/polgen.glade:927
++msgid ""
++"Enter complete path to init script used to start the confined application."
++msgstr ""
+-#~ msgid "<b>Boolean</b>"
+-#~ msgstr "<b>布林值</b>"
++#: ../gui/polgen.glade:982
++msgid "label105"
++msgstr ""
+-#~ msgid "<b>Description</b>"
+-#~ msgstr "<b>æè¿°</b>"
++#: ../gui/polgen.glade:1011
++msgid "<b>Select existing role to modify:</b>"
++msgstr ""
+-#~ msgid "<b>Status</b>"
+-#~ msgstr "<b>狀態</b>"
++#: ../gui/polgen.glade:1045
++msgid "Select the user roles that will transiton to the %s domain."
++msgstr ""
+-#~ msgid "Category: %s <br>"
+-#~ msgstr "類別:%s <br>"
++#: ../gui/polgen.glade:1073
++msgid "label106"
++msgstr ""
+-#~ msgid "Begin"
+-#~ msgstr "起始"
++#: ../gui/polgen.glade:1102
++msgid "<b>Select roles that %s will transition to:</b>"
++msgstr ""
+-#~ msgid ""
+-#~ "Welcome to the SELinux Lockdown Tool.<br> <br>This tool can be used to "
+-#~ "lockdown SELinux booleans.The tool will generate a configuration file "
+-#~ "which can be used to lockdown this system or other SELinux systems.<br>"
+-#~ msgstr ""
+-#~ "歡迎使用 SELinux Lockdown å·¥å…·ã€‚<br> <br>此工具å¯è¢«ç”¨ä¾†å°‡ SELinux å¸ƒæž—值鎖"
+-#~ "ä½ã€‚此工具會產生一個å¯è¢«ç”¨ä¾†å°‡æ­¤ç³»çµ±æˆ–其它 SELinux ç³»çµ±éŽ–ä½çš„é…置檔案。"
+-#~ "<br>"
++#: ../gui/polgen.glade:1136
++msgid "Select applications domains that %s will transition to."
++msgstr ""
+-#~ msgid "Finish"
+-#~ msgstr "çµæŸ"
++#: ../gui/polgen.glade:1164
++msgid "label107"
++msgstr ""
+-#~ msgid "Category %s booleans completed <br><br>"
+-#~ msgstr "類別 %s çš„布林值已完戠<br><br>"
++#: ../gui/polgen.glade:1193
++msgid "<b>Select the user_roles that will transition to %s:</b>"
++msgstr ""
+-#~ msgid "Current settings:<br><br>"
+-#~ msgstr "ç›®å‰è¨­å®šï¼š<br><br>"
++#: ../gui/polgen.glade:1227
++msgid "Select the user roles that will transiton to this applications domains."
++msgstr ""
+-#~ msgid "Finish: <br><br>"
+-#~ msgstr "çµæŸï¼š<br><br>"
++#: ../gui/polgen.glade:1255
++msgid "label108"
++msgstr ""
+-#~ msgid "Category: %s<br><br>Current Settings<br><br>"
+-#~ msgstr "類別:%s<br><br>ç›®å‰è¨­å®š<br><br>"
++#: ../gui/polgen.glade:1284
++msgid "<b>Select domains that %s will administer:</b>"
++msgstr ""
+-#~ msgid "Boolean:   %s<br><br>"
+-#~ msgstr "布林值:%s<br><br>"
++#: ../gui/polgen.glade:1318 ../gui/polgen.glade:1409
++msgid "Select the domains that you would like this user administer."
++msgstr ""
+-#~ msgid "Lockdown SELinux Booleans"
+-#~ msgstr "鎖定 SELinux å¸ƒæž—值"
++#: ../gui/polgen.glade:1346
++msgid "label109"
++msgstr ""
+-#~ msgid "<b>Select:</b>"
+-#~ msgstr "<b>é¸æ“‡ï¼š</b>"
++#: ../gui/polgen.glade:1375
++msgid "<b>Select additional roles for %s:</b>"
++msgstr ""
+-#~ msgid "Apply"
+-#~ msgstr "套用"
++#: ../gui/polgen.glade:1437
++msgid "label111"
++msgstr ""
+-#~ msgid ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
+-#~ msgstr ""
+-#~ "Copyright (c)2006 Red Hat, Inc.\n"
+-#~ "Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++#: ../gui/polgen.glade:1466
++msgid "<b>Enter network ports that %s binds on:</b>"
++msgstr ""
+-#~ msgid "SELinux Boolean Lockdown"
+-#~ msgstr "SELinux å¸ƒæž—值鎖定"
++#: ../gui/polgen.glade:1497 ../gui/polgen.glade:1997
++msgid "<b>TCP Ports</b>"
++msgstr ""
+-#~ msgid "Save As"
+-#~ msgstr "儲存為"
++#: ../gui/polgen.glade:1565 ../gui/polgen.glade:1785
++msgid "Allows %s to bind to any udp port"
++msgstr ""
+-#~ msgid "Save Boolean Configuration File"
+-#~ msgstr "儲存布林值é…置檔案"
++#: ../gui/polgen.glade:1567 ../gui/polgen.glade:1787 ../gui/polgen.glade:2061
++#: ../gui/polgen.glade:2215
++msgid "All"
++msgstr ""
+-#~ msgid "Select Management Object"
+-#~ msgstr "é¸æ“‡ç®¡ç†ç‰©ä»¶"
++#: ../gui/polgen.glade:1585 ../gui/polgen.glade:1805
++msgid "Allow %s to call bindresvport with 0. Binding to port 600-1024"
++msgstr ""
+-#~ msgid "Select file name to save  boolean settings."
+-#~ msgstr "é¸æ“‡å„²å­˜å¸ƒæž—值設定的檔案å稱。"
++#: ../gui/polgen.glade:1587 ../gui/polgen.glade:1807
++msgid "600-1024"
++msgstr ""
+-#~ msgid "_Forward"
+-#~ msgstr "下一步(_F)"
++#: ../gui/polgen.glade:1605 ../gui/polgen.glade:1825
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s binds "
++"to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "_Previous"
+-#~ msgstr "上一步(_P)"
++#: ../gui/polgen.glade:1607 ../gui/polgen.glade:1827
++msgid "Unreserved Ports (>1024)"
++msgstr ""
+-#~ msgid "system-config-selinux"
+-#~ msgstr "system-config-selinux"
++#: ../gui/polgen.glade:1638 ../gui/polgen.glade:1858 ../gui/polgen.glade:2079
++#: ../gui/polgen.glade:2233
++msgid "Select Ports"
++msgstr ""
+-#~ msgid "translator-credits"
+-#~ msgstr "譯者姓å:莊佳儒(tchuang@redhat.com)"
++#: ../gui/polgen.glade:1663 ../gui/polgen.glade:1883
++msgid "Allows %s to bind to any udp ports > 1024"
++msgstr ""
+-#~ msgid "SELinux Service Protection"
+-#~ msgstr "SELinux æœå‹™ä¿è­·"
++#: ../gui/polgen.glade:1717 ../gui/polgen.glade:2151
++msgid "<b>UDP Ports</b>"
++msgstr ""
+-#~ msgid "Disable SELinux protection for acct daemon"
+-#~ msgstr "åœç”¨ acct daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgen.glade:1937
++msgid "label113"
++msgstr ""
+-#~ msgid "Admin"
+-#~ msgstr "管ç†å“¡"
++#: ../gui/polgen.glade:1966
++msgid "<b>Select network ports that %s connects to:</b>"
++msgstr ""
+-#~ msgid "Allow all daemons to write corefiles to /"
+-#~ msgstr "å…許所有 daemon å°‡ corefile å¯«è‡³ /"
++#: ../gui/polgen.glade:2058
++msgid "Allows %s to connect to any tcp port"
++msgstr ""
+-#~ msgid "Allow all daemons the ability to use unallocated ttys"
+-#~ msgstr "å…許所有 daemon ä½¿ç”¨æœªåˆ†é…çš„ ttys"
++#: ../gui/polgen.glade:2104
++msgid ""
++"Enter a comma separated list of tcp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid "User Privs"
+-#~ msgstr "用戶 Privs"
++#: ../gui/polgen.glade:2212
++msgid "Allows %s to connect to any udp port"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "å…許 gadmin SELinux ç”¨æˆ¶å¸³è™ŸåŸ·è¡Œå®¶ç›®éŒ„或 /tmp ä¸­çš„檔案"
++#: ../gui/polgen.glade:2258
++msgid ""
++"Enter a comma separated list of udp ports or ranges of ports that %s "
++"connects to. Example: 612, 650-660"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow guest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "å…許 guest SELinux ç”¨æˆ¶å¸³è™ŸåŸ·è¡Œå®¶ç›®éŒ„或 /tmp ä¸­çš„檔案"
++#: ../gui/polgen.glade:2305
++msgid "label114"
++msgstr ""
+-#~ msgid "Memory Protection"
+-#~ msgstr "記憶體ä¿è­·"
++#: ../gui/polgen.glade:2334
++msgid "<b>Select common application traits for %s:</b>"
++msgstr ""
+-#~ msgid "Allow java executable stack"
+-#~ msgstr "å…許 java åŸ·è¡Œå †ç–Š"
++#: ../gui/polgen.glade:2366
++msgid "Writes syslog messages\t"
++msgstr ""
+-#~ msgid "Mount"
+-#~ msgstr "掛載"
++#: ../gui/polgen.glade:2385
++msgid "Create/Manipulate temporary files in /tmp"
++msgstr ""
+-#~ msgid "Allow mount to mount any file"
+-#~ msgstr "å…許 mount æŽ›è¼‰ä»»ä½•æª”案"
++#: ../gui/polgen.glade:2404
++msgid "Uses Pam for authentication"
++msgstr ""
+-#~ msgid "Allow mount to mount any directory"
+-#~ msgstr "å…許 mount æŽ›è¼‰ä»»ä½•ç›®éŒ„"
++#: ../gui/polgen.glade:2423
++msgid "Uses nsswitch or getpw* calls"
++msgstr ""
+-#~ msgid "Allow mplayer executable stack"
+-#~ msgstr "å…許 mplayer å¯åŸ·è¡Œå †ç–Š"
++#: ../gui/polgen.glade:2442
++msgid "Uses dbus"
++msgstr ""
+-#~ msgid "SSH"
+-#~ msgstr "SSH"
++#: ../gui/polgen.glade:2461
++msgid "Sends audit messages"
++msgstr ""
+-#~ msgid "Allow ssh to run ssh-keysign"
+-#~ msgstr "å…許 ssh åŸ·è¡Œ ssh-keysign"
++#: ../gui/polgen.glade:2480
++msgid "Interacts with the terminal"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "å…許 staff SELinux ç”¨æˆ¶å¸³è™ŸåŸ·è¡Œå®¶ç›®éŒ„或是 /tmp ä¸­çš„檔案"
++#: ../gui/polgen.glade:2499
++msgid "Sends email"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "å…許 sysadm SELinux ç”¨æˆ¶å¸³è™ŸåŸ·è¡Œå®¶ç›®éŒ„或是 /tmp ä¸­çš„檔案"
++#: ../gui/polgen.glade:2530
++msgid "label115"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow unconfined SELinux user account to execute files in home directory "
+-#~ "or /tmp"
+-#~ msgstr "å…許 unconfined SELinux ç”¨æˆ¶å¸³è™ŸåŸ·è¡Œå®¶ç›®éŒ„或是 /tmp ä¸­çš„檔案"
++#: ../gui/polgen.glade:2559
++msgid "<b>Add files/directories that %s manages</b>"
++msgstr ""
+-#~ msgid "Network Configuration"
+-#~ msgstr "網路é…ç½®"
++#: ../gui/polgen.glade:2788
++msgid ""
++"Files/Directories which the %s \"manages\". Pid Files, Log Files, /var/lib "
++"Files ..."
++msgstr ""
+-#~ msgid "Allow unlabeled packets to flow on the network"
+-#~ msgstr "å…許未標記的å°åŒ…在網路上æµå‹•"
++#: ../gui/polgen.glade:2823
++msgid "label116"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
+-#~ msgstr "å…許 user SELinux ç”¨æˆ¶å¸³è™ŸåŸ·è¡Œå®¶ç›®éŒ„或是 /tmp ä¸­çš„檔案"
++#: ../gui/polgen.glade:2852
++msgid "<b>Add booleans from the %s policy:</b>"
++msgstr ""
+-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
+-#~ msgstr "å…許 unconfined dyntrans è‡³ unconfined_execmem"
++#: ../gui/polgen.glade:3002
++msgid "Add/Remove booleans used by the %s domain"
++msgstr ""
+-#~ msgid "Databases"
+-#~ msgstr "資料庫"
++#: ../gui/polgen.glade:3066
++msgid "<b>Which directory you will generate the %s policy?</b>"
++msgstr ""
+-#~ msgid "Allow user to connect to mysql socket"
+-#~ msgstr "å…許用戶連至 mysql socket"
++#: ../gui/polgen.glade:3097
++msgid "Policy Directory"
++msgstr ""
+-#~ msgid "Allow user to connect to postgres socket"
+-#~ msgstr "å…許用戶連至 postgres socket"
++#: ../gui/polgen.glade:3254
++msgid "Add Booleans Dialog"
++msgstr ""
+-#~ msgid "XServer"
+-#~ msgstr "XServer"
++#: ../gui/polgen.glade:3327
++msgid "Boolean Name"
++msgstr ""
+-#~ msgid "Allow clients to write to X shared memory"
+-#~ msgstr "å…許客戶端寫至 X å…±äº«è¨˜æ†¶é«”"
++#: ../gui/polgengui.py:261
++msgid "Role"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xguest SELinux user account to execute files in home directory or /"
+-#~ "tmp"
+-#~ msgstr "å…許 xguest SELinux ç”¨æˆ¶å¸³è™ŸåŸ·è¡Œå®¶ç›®éŒ„或是 /tmp ä¸­çš„檔案"
++#: ../gui/polgengui.py:268
++msgid "Existing_User"
++msgstr ""
+-#~ msgid "NIS"
+-#~ msgstr "NIS"
++#: ../gui/polgengui.py:282 ../gui/polgengui.py:290 ../gui/polgengui.py:304
++msgid "Application"
++msgstr ""
+-#~ msgid "Allow daemons to run with NIS"
+-#~ msgstr "å…許 daemon ä»¥ NIS åŸ·è¡Œ"
++#: ../gui/polgengui.py:352
++#, python-format
++msgid "%s must be a directory"
++msgstr ""
+-#~ msgid "Web Applications"
+-#~ msgstr "網站應用程å¼"
++#: ../gui/polgengui.py:412 ../gui/polgengui.py:693
++msgid "You must select a user"
++msgstr ""
+-#~ msgid "Transition staff SELinux user to Web Browser Domain"
+-#~ msgstr "å°‡ staff SELinux ç”¨æˆ¶è½‰ç§»è‡³ Web Browser Domain"
++#: ../gui/polgengui.py:542
++msgid "Select executable file to be confined."
++msgstr ""
+-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
+-#~ msgstr "å°‡ sysadm SELinux ç”¨æˆ¶è½‰ç§»è‡³ Web Browser Domain"
++#: ../gui/polgengui.py:553
++msgid "Select init script file to be confined."
++msgstr ""
+-#~ msgid "Transition user SELinux user to Web Browser Domain"
+-#~ msgstr "å°‡ user SELinux ç”¨æˆ¶è½‰ç§»è‡³ Web Browser Domain"
++#: ../gui/polgengui.py:563
++msgid "Select file(s) that confined application creates or writes"
++msgstr ""
+-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
+-#~ msgstr "å°‡ xguest SELinux ç”¨æˆ¶è½‰ç§»è‡³ Web Browser Domain"
++#: ../gui/polgengui.py:570
++msgid "Select directory(s) that the confined application owns and writes into"
++msgstr ""
+-#~ msgid "Allow staff Web Browsers to write to home directories"
+-#~ msgstr "å…許 staff Web Browsers å¯«è‡³å®¶ç›®éŒ„"
++#: ../gui/polgengui.py:632
++msgid "Select directory to generate policy files in"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amanda"
+-#~ msgstr "åœç”¨ amanda çš„ SELinux ä¿è­·"
++#: ../gui/polgengui.py:649
++#, python-format
++msgid ""
++"Type %s_t already defined in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for amavis"
+-#~ msgstr "åœç”¨ amavis çš„ SELinux ä¿è­·"
++#: ../gui/polgengui.py:649 ../gui/polgengui.py:653
++msgid "Verify Name"
++msgstr ""
+-#~ msgid "Disable SELinux protection for apmd daemon"
+-#~ msgstr "åœç”¨ apmd daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgengui.py:653
++#, python-format
++msgid ""
++"Module %s.pp already loaded in current policy.\n"
++"Do you want to continue?"
++msgstr ""
+-#~ msgid "Disable SELinux protection for arpwatch daemon"
+-#~ msgstr "åœç”¨ arpwatch daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgengui.py:699
++msgid ""
++"You must add a name made up of letters and numbers and containing no spaces."
++msgstr ""
+-#~ msgid "Disable SELinux protection for auditd daemon"
+-#~ msgstr "åœç”¨ auditd daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgengui.py:713
++msgid "You must enter a executable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for automount daemon"
+-#~ msgstr "åœç”¨ automount daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgengui.py:738 ../gui/system-config-selinux.py:174
++msgid "Configue SELinux"
++msgstr ""
+-#~ msgid "Disable SELinux protection for avahi"
+-#~ msgstr "åœç”¨ avahi çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:158
++msgid "Internet Services Daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for bluetooth daemon"
+-#~ msgstr "åœç”¨ bluetooth daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:197
++#, python-format
++msgid "Ports must be numbers or ranges of numbers from 1 to %d "
++msgstr ""
+-#~ msgid "Disable SELinux protection for canna daemon"
+-#~ msgstr "åœç”¨ canna daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:324
++msgid "You must enter a name for your confined process/user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cardmgr daemon"
+-#~ msgstr "åœç”¨ cardmgr daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:326
++msgid ""
++"Name must be alpha numberic with no spaces. Consider using option \"-n "
++"MODULENAME\""
++msgstr ""
+-#~ msgid "Disable SELinux protection for Cluster Server"
+-#~ msgstr "åœç”¨ Cluster Server çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:414
++msgid "User Role types can not be assigned executables."
++msgstr ""
+-#~ msgid ""
+-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
+-#~ "user temp and untrusted content files"
+-#~ msgstr ""
+-#~ "å…許 cdrecord è®€å–å„種內容。nfsã€sambaã€å¸é™¤å¼è£ç½®ã€ç”¨æˆ¶ temp å’Œä¸ä¿¡ä»»çš„å…§"
+-#~ "容檔案"
++#: ../gui/polgen.py:420
++msgid "Only Daemon apps can use an init script.."
++msgstr ""
+-#~ msgid "Disable SELinux protection for ciped daemon"
+-#~ msgstr "åœç”¨ ciped daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:438
++msgid "use_resolve must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamd daemon"
+-#~ msgstr "åœç”¨ clamd daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:444
++msgid "use_syslog must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for clamscan"
+-#~ msgstr "åœç”¨ clamscan çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:450
++msgid "use_kerberos must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for clvmd"
+-#~ msgstr "åœç”¨ clvmd çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:456
++msgid "manage_krb5_rcache must be a boolean value "
++msgstr ""
+-#~ msgid "Disable SELinux protection for comsat daemon"
+-#~ msgstr "åœç”¨ comsat daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:486
++msgid "USER Types automatically get a tmp type"
++msgstr ""
+-#~ msgid "Disable SELinux protection for courier daemon"
+-#~ msgstr "åœç”¨ courier daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:1004
++msgid "You must enter the executable path for your confined process"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpucontrol daemon"
+-#~ msgstr "åœç”¨ cpucontrol daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:1166
++msgid "Type Enforcement file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cpuspeed daemon"
+-#~ msgstr "åœç”¨ cpuspeed daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:1167
++msgid "Interface file"
++msgstr ""
+-#~ msgid "Cron"
+-#~ msgstr "Cron"
++#: ../gui/polgen.py:1168
++msgid "File Contexts file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for crond daemon"
+-#~ msgstr "åœç”¨ crond daemon çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:1169
++msgid "Setup Script"
++msgstr ""
+-#~ msgid "Printing"
+-#~ msgstr "列å°"
++#: ../gui/polgen.py:1290
++#, python-format
++msgid ""
++"\n"
++"%s\n"
++"\n"
++"sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]\n"
++"valid Types:\n"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd back end server"
+-#~ msgstr "åœç”¨ cupsd å¾Œç«¯ä¼ºæœå™¨çš„ SELinux ä¿è­·"
++#: ../gui/polgen.py:1338
++msgid "Executable or Name required"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd daemon"
+-#~ msgstr "åœç”¨ cupsd daemon çš„ SELinux ä¿è­·"
++#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2547
++msgid "Network Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cupsd_lpd"
+-#~ msgstr "åœç”¨ cupsd_lpd çš„ SELinux ä¿è­·"
++#: ../gui/portsPage.py:85
++msgid ""
++"SELinux Port\n"
++"Type"
++msgstr ""
+-#~ msgid "CVS"
+-#~ msgstr "CVS"
++#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
++msgid "Protocol"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cvs daemon"
+-#~ msgstr "åœç”¨ cvs daemon çš„ SELinux ä¿è­·"
++#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479
++msgid ""
++"MLS/MCS\n"
++"Level"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cyrus daemon"
+-#~ msgstr "åœç”¨ cyrus daemon çš„ SELinux ä¿è­·"
++#: ../gui/portsPage.py:101
++msgid "Port"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbskkd daemon"
+-#~ msgstr "åœç”¨ dbskkd daemon çš„ SELinux ä¿è­·"
++#: ../gui/portsPage.py:207
++#, python-format
++msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
++msgstr ""
+-#~ msgid "Disable SELinux protection for dbusd daemon"
+-#~ msgstr "åœç”¨ dbusd daemon çš„ SELinux ä¿è­·"
++#: ../gui/portsPage.py:252
++msgid "List View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccd"
+-#~ msgstr "åœç”¨ dccd çš„ SELinux ä¿è­·"
++#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2438
++msgid "Group View"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccifd"
+-#~ msgstr "åœç”¨ dccifd çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:1 ../gui/selinux.tbl:30 ../gui/selinux.tbl:31
++#: ../gui/selinux.tbl:32 ../gui/selinux.tbl:33 ../gui/selinux.tbl:34
++#: ../gui/selinux.tbl:36 ../gui/selinux.tbl:37 ../gui/selinux.tbl:38
++#: ../gui/selinux.tbl:39 ../gui/selinux.tbl:40 ../gui/selinux.tbl:42
++#: ../gui/selinux.tbl:43 ../gui/selinux.tbl:44 ../gui/selinux.tbl:45
++#: ../gui/selinux.tbl:46 ../gui/selinux.tbl:47 ../gui/selinux.tbl:48
++#: ../gui/selinux.tbl:49 ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++#: ../gui/selinux.tbl:52 ../gui/selinux.tbl:53 ../gui/selinux.tbl:59
++#: ../gui/selinux.tbl:60 ../gui/selinux.tbl:61 ../gui/selinux.tbl:62
++#: ../gui/selinux.tbl:63 ../gui/selinux.tbl:64 ../gui/selinux.tbl:65
++#: ../gui/selinux.tbl:66 ../gui/selinux.tbl:67 ../gui/selinux.tbl:68
++#: ../gui/selinux.tbl:69 ../gui/selinux.tbl:75 ../gui/selinux.tbl:76
++#: ../gui/selinux.tbl:77 ../gui/selinux.tbl:78 ../gui/selinux.tbl:79
++#: ../gui/selinux.tbl:80 ../gui/selinux.tbl:81 ../gui/selinux.tbl:82
++#: ../gui/selinux.tbl:83 ../gui/selinux.tbl:84 ../gui/selinux.tbl:86
++#: ../gui/selinux.tbl:88 ../gui/selinux.tbl:89 ../gui/selinux.tbl:90
++#: ../gui/selinux.tbl:92 ../gui/selinux.tbl:94 ../gui/selinux.tbl:95
++#: ../gui/selinux.tbl:96 ../gui/selinux.tbl:97 ../gui/selinux.tbl:98
++#: ../gui/selinux.tbl:99 ../gui/selinux.tbl:100 ../gui/selinux.tbl:101
++#: ../gui/selinux.tbl:102 ../gui/selinux.tbl:103 ../gui/selinux.tbl:104
++#: ../gui/selinux.tbl:106 ../gui/selinux.tbl:108 ../gui/selinux.tbl:109
++#: ../gui/selinux.tbl:110 ../gui/selinux.tbl:111 ../gui/selinux.tbl:112
++#: ../gui/selinux.tbl:113 ../gui/selinux.tbl:114 ../gui/selinux.tbl:116
++#: ../gui/selinux.tbl:117 ../gui/selinux.tbl:119 ../gui/selinux.tbl:121
++#: ../gui/selinux.tbl:123 ../gui/selinux.tbl:124 ../gui/selinux.tbl:127
++#: ../gui/selinux.tbl:129 ../gui/selinux.tbl:130 ../gui/selinux.tbl:131
++#: ../gui/selinux.tbl:132 ../gui/selinux.tbl:133 ../gui/selinux.tbl:134
++#: ../gui/selinux.tbl:135 ../gui/selinux.tbl:136 ../gui/selinux.tbl:137
++#: ../gui/selinux.tbl:138 ../gui/selinux.tbl:139 ../gui/selinux.tbl:142
++#: ../gui/selinux.tbl:143 ../gui/selinux.tbl:144 ../gui/selinux.tbl:145
++#: ../gui/selinux.tbl:146 ../gui/selinux.tbl:147 ../gui/selinux.tbl:148
++#: ../gui/selinux.tbl:149 ../gui/selinux.tbl:150 ../gui/selinux.tbl:151
++#: ../gui/selinux.tbl:152 ../gui/selinux.tbl:154 ../gui/selinux.tbl:155
++#: ../gui/selinux.tbl:156 ../gui/selinux.tbl:157 ../gui/selinux.tbl:158
++#: ../gui/selinux.tbl:159 ../gui/selinux.tbl:160 ../gui/selinux.tbl:167
++#: ../gui/selinux.tbl:171 ../gui/selinux.tbl:172 ../gui/selinux.tbl:173
++#: ../gui/selinux.tbl:174 ../gui/selinux.tbl:175 ../gui/selinux.tbl:177
++#: ../gui/selinux.tbl:178 ../gui/selinux.tbl:179 ../gui/selinux.tbl:180
++#: ../gui/selinux.tbl:184 ../gui/selinux.tbl:192 ../gui/selinux.tbl:193
++#: ../gui/selinux.tbl:194 ../gui/selinux.tbl:195 ../gui/selinux.tbl:196
++#: ../gui/selinux.tbl:197 ../gui/selinux.tbl:198 ../gui/selinux.tbl:199
++#: ../gui/selinux.tbl:200 ../gui/selinux.tbl:201 ../gui/selinux.tbl:206
++#: ../gui/selinux.tbl:207 ../gui/selinux.tbl:218 ../gui/selinux.tbl:219
++#: ../gui/selinux.tbl:220 ../gui/selinux.tbl:222 ../gui/selinux.tbl:224
++#: ../gui/selinux.tbl:226 ../gui/selinux.tbl:227 ../gui/selinux.tbl:230
++msgid "SELinux Service Protection"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dccm"
+-#~ msgstr "åœç”¨ dccm çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:1
++msgid "Disable SELinux protection for acct daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ddt daemon"
+-#~ msgstr "åœç”¨ ddt daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:2 ../gui/selinux.tbl:3 ../gui/selinux.tbl:70
++#: ../gui/selinux.tbl:153 ../gui/selinux.tbl:168 ../gui/selinux.tbl:169
++#: ../gui/selinux.tbl:170 ../gui/selinux.tbl:189 ../gui/selinux.tbl:202
++#: ../gui/selinux.tbl:203 ../gui/selinux.tbl:204 ../gui/selinux.tbl:205
++msgid "Admin"
++msgstr ""
+-#~ msgid "Disable SELinux protection for devfsd daemon"
+-#~ msgstr "åœç”¨ devfsd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:2
++msgid "Allow all daemons to write corefiles to /"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpc daemon"
+-#~ msgstr "åœç”¨ dhcpc daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:3
++msgid "Allow all daemons the ability to use unallocated ttys"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dhcpd daemon"
+-#~ msgstr "åœç”¨ dhcpd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:4 ../gui/selinux.tbl:5 ../gui/selinux.tbl:11
++#: ../gui/selinux.tbl:12 ../gui/selinux.tbl:13 ../gui/selinux.tbl:15
++#: ../gui/selinux.tbl:20 ../gui/selinux.tbl:41 ../gui/selinux.tbl:208
++#: ../gui/selinux.tbl:210 ../gui/selinux.tbl:211 ../gui/selinux.tbl:212
++#: ../gui/selinux.tbl:213 ../gui/selinux.tbl:214 ../gui/selinux.tbl:215
++#: ../gui/selinux.tbl:216 ../gui/selinux.tbl:217
++msgid "User Privs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dictd daemon"
+-#~ msgstr "åœç”¨ dictd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:4
++msgid ""
++"Allow gadmin SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Allow sysadm_t to directly start daemons"
+-#~ msgstr "å…許 sysadm_t ç›´æŽ¥å•Ÿç”¨ daemon"
++#: ../gui/selinux.tbl:5
++msgid ""
++"Allow guest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Evolution"
+-#~ msgstr "åœç”¨ Evolution çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:6 ../gui/selinux.tbl:9 ../gui/selinux.tbl:16
++msgid "Memory Protection"
++msgstr ""
+-#~ msgid "Games"
+-#~ msgstr "éŠæˆ²"
++#: ../gui/selinux.tbl:6
++msgid "Allow java executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for games"
+-#~ msgstr "åœç”¨ games çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:7 ../gui/selinux.tbl:8 ../gui/selinux.tbl:35
++#: ../gui/selinux.tbl:209
++msgid "Mount"
++msgstr ""
+-#~ msgid "Disable SELinux protection for the web browsers"
+-#~ msgstr "åœç”¨ web browsers çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:7
++msgid "Allow mount to mount any file"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Thunderbird"
+-#~ msgstr "åœç”¨ Thunderbird çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:8
++msgid "Allow mount to mount any directory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for distccd daemon"
+-#~ msgstr "åœç”¨ distccd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:9
++msgid "Allow mplayer executable stack"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dmesg daemon"
+-#~ msgstr "åœç”¨ dmesg daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:10 ../gui/selinux.tbl:162 ../gui/selinux.tbl:187
++#: ../gui/selinux.tbl:188
++msgid "SSH"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dnsmasq daemon"
+-#~ msgstr "åœç”¨ dnsmasq daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:10
++msgid "Allow ssh to run ssh-keysign"
++msgstr ""
+-#~ msgid "Disable SELinux protection for dovecot daemon"
+-#~ msgstr "åœç”¨ dovecot daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:11
++msgid ""
++"Allow staff SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for entropyd daemon"
+-#~ msgstr "åœç”¨ entropyd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:12
++msgid ""
++"Allow sysadm SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fetchmail"
+-#~ msgstr "åœç”¨ fetchmail çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:13
++msgid ""
++"Allow unconfined SELinux user account to execute files in home directory or /"
++"tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fingerd daemon"
+-#~ msgstr "åœç”¨ fingerd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:14
++msgid "Network Configuration"
++msgstr ""
+-#~ msgid "Disable SELinux protection for freshclam daemon"
+-#~ msgstr "åœç”¨ freshclam daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:14
++msgid "Allow unlabeled packets to flow on the network"
++msgstr ""
+-#~ msgid "Disable SELinux protection for fsdaemon daemon"
+-#~ msgstr "åœç”¨ fsdaemon daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:15
++msgid ""
++"Allow user SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gpm daemon"
+-#~ msgstr "åœç”¨ gpm daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:16
++msgid "Allow unconfined to dyntrans to unconfined_execmem"
++msgstr ""
+-#~ msgid "NFS"
+-#~ msgstr "NFS"
++#: ../gui/selinux.tbl:17 ../gui/selinux.tbl:18 ../gui/selinux.tbl:120
++#: ../gui/selinux.tbl:140
++msgid "Databases"
++msgstr ""
+-#~ msgid "Disable SELinux protection for gss daemon"
+-#~ msgstr "åœç”¨ gss daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:17
++msgid "Allow user to connect to mysql socket"
++msgstr ""
+-#~ msgid "Disable SELinux protection for Hal daemon"
+-#~ msgstr "åœç”¨ Hal daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:18
++msgid "Allow user to connect to postgres socket"
++msgstr ""
+-#~ msgid "Compatibility"
+-#~ msgstr "相容性"
++#: ../gui/selinux.tbl:19 ../gui/selinux.tbl:165 ../gui/selinux.tbl:223
++msgid "XServer"
++msgstr ""
+-#~ msgid ""
+-#~ "Do not audit things that we know to be broken but which are not security "
+-#~ "risks"
+-#~ msgstr "ä¸ç¨½æ ¸æˆ‘們已知æ壞,å»ä¸æœƒé€ æˆå®‰å…¨æ€§é¢¨éšªçš„物件"
++#: ../gui/selinux.tbl:19
++msgid "Allow clients to write to X shared memory"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hostname daemon"
+-#~ msgstr "åœç”¨ hostname daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:20
++msgid ""
++"Allow xguest SELinux user account to execute files in home directory or /tmp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hotplug daemon"
+-#~ msgstr "åœç”¨ hotplug daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:21 ../gui/selinux.tbl:228 ../gui/selinux.tbl:229
++#: ../gui/selinux.tbl:231
++msgid "NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for howl daemon"
+-#~ msgstr "åœç”¨ howl daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:21
++msgid "Allow daemons to run with NIS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for cups hplip daemon"
+-#~ msgstr "åœç”¨ cups hplip daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:22 ../gui/selinux.tbl:23 ../gui/selinux.tbl:24
++#: ../gui/selinux.tbl:25 ../gui/selinux.tbl:26 ../gui/selinux.tbl:27
++#: ../gui/selinux.tbl:28 ../gui/selinux.tbl:29 ../gui/selinux.tbl:71
++#: ../gui/selinux.tbl:73 ../gui/selinux.tbl:74 ../gui/selinux.tbl:115
++#: ../gui/selinux.tbl:118
++msgid "Web Applications"
++msgstr ""
+-#~ msgid "Disable SELinux protection for httpd rotatelogs"
+-#~ msgstr "åœç”¨ httpd rotatelogs çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:22
++msgid "Transition staff SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "HTTPD Service"
+-#~ msgstr "HTTPD æœå‹™"
++#: ../gui/selinux.tbl:23
++msgid "Transition sysadm SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for http suexec"
+-#~ msgstr "åœç”¨ http suexec çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:24
++msgid "Transition user SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for hwclock daemon"
+-#~ msgstr "åœç”¨ hwclock daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:25
++msgid "Transition xguest SELinux user to Web Browser Domain"
++msgstr ""
+-#~ msgid "Disable SELinux protection for i18n daemon"
+-#~ msgstr "åœç”¨ i18n daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:26 ../gui/selinux.tbl:27 ../gui/selinux.tbl:28
++#: ../gui/selinux.tbl:29
++msgid "Allow staff Web Browsers to write to home directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for imazesrv daemon"
+-#~ msgstr "åœç”¨ imazesrv daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:30
++msgid "Disable SELinux protection for amanda"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd child daemons"
+-#~ msgstr "åœç”¨ inetd child daemons çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:31
++msgid "Disable SELinux protection for amavis"
++msgstr ""
+-#~ msgid "Disable SELinux protection for inetd daemon"
+-#~ msgstr "åœç”¨ inetd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:32
++msgid "Disable SELinux protection for apmd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for innd daemon"
+-#~ msgstr "åœç”¨ innd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:33
++msgid "Disable SELinux protection for arpwatch daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iptables daemon"
+-#~ msgstr "åœç”¨ iptables daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:34
++msgid "Disable SELinux protection for auditd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ircd daemon"
+-#~ msgstr "åœç”¨ ircd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:35
++msgid "Disable SELinux protection for automount daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for irqbalance daemon"
+-#~ msgstr "åœç”¨ irqbalance daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:36
++msgid "Disable SELinux protection for avahi"
++msgstr ""
+-#~ msgid "Disable SELinux protection for iscsi daemon"
+-#~ msgstr "åœç”¨ iscsi daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:37
++msgid "Disable SELinux protection for bluetooth daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for jabberd daemon"
+-#~ msgstr "åœç”¨ jabberd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:38
++msgid "Disable SELinux protection for canna daemon"
++msgstr ""
+-#~ msgid "Kerberos"
+-#~ msgstr "Kerberos"
++#: ../gui/selinux.tbl:39
++msgid "Disable SELinux protection for cardmgr daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kadmind daemon"
+-#~ msgstr "åœç”¨ kadmind daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:40
++msgid "Disable SELinux protection for Cluster Server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for klogd daemon"
+-#~ msgstr "åœç”¨ klogd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:41
++msgid ""
++"Allow cdrecord to read various content. nfs, samba, removable devices, user "
++"temp and untrusted content files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for krb5kdc daemon"
+-#~ msgstr "åœç”¨ krb5kdc daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:42
++msgid "Disable SELinux protection for ciped daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ktalk daemons"
+-#~ msgstr "åœç”¨ ktalk daemons çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:43
++msgid "Disable SELinux protection for clamd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for kudzu daemon"
+-#~ msgstr "åœç”¨ kudzu daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:44
++msgid "Disable SELinux protection for clamscan"
++msgstr ""
+-#~ msgid "Disable SELinux protection for locate daemon"
+-#~ msgstr "åœç”¨ locate daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:45
++msgid "Disable SELinux protection for clvmd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lpd daemon"
+-#~ msgstr "åœç”¨ lpd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:46
++msgid "Disable SELinux protection for comsat daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lrrd daemon"
+-#~ msgstr "åœç”¨ lrrd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:47 ../gui/selinux.tbl:48 ../gui/selinux.tbl:49
++#: ../gui/selinux.tbl:50 ../gui/selinux.tbl:51
++msgid "Disable SELinux protection for courier daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for lvm daemon"
+-#~ msgstr "åœç”¨ lvm daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:52
++msgid "Disable SELinux protection for cpucontrol daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mailman"
+-#~ msgstr "åœç”¨ mailman çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:53
++msgid "Disable SELinux protection for cpuspeed daemon"
++msgstr ""
+-#~ msgid "Allow evolution and thunderbird to read user files"
+-#~ msgstr "å…許 evolution å’Œ thunderbird è®€å–用戶檔案"
++#: ../gui/selinux.tbl:54
++msgid "Cron"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mdadm daemon"
+-#~ msgstr "åœç”¨ mdadm daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:54
++msgid "Disable SELinux protection for crond daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for monopd daemon"
+-#~ msgstr "åœç”¨ monopd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:55 ../gui/selinux.tbl:56 ../gui/selinux.tbl:57
++#: ../gui/selinux.tbl:91
++msgid "Printing"
++msgstr ""
+-#~ msgid "Allow the mozilla browser to read user files"
+-#~ msgstr "å…許 mozilla ç€è¦½å™¨è®€å–用戶檔案"
++#: ../gui/selinux.tbl:55
++msgid "Disable SELinux protection for cupsd back end server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mrtg daemon"
+-#~ msgstr "åœç”¨ mrtg daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:56
++msgid "Disable SELinux protection for cupsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for mysqld daemon"
+-#~ msgstr "åœç”¨ mysqld daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:57
++msgid "Disable SELinux protection for cupsd_lpd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nagios daemon"
+-#~ msgstr "åœç”¨ nagios daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:58
++msgid "CVS"
++msgstr ""
+-#~ msgid "Name Service"
+-#~ msgstr "å稱æœå‹™"
++#: ../gui/selinux.tbl:58
++msgid "Disable SELinux protection for cvs daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for named daemon"
+-#~ msgstr "åœç”¨ named daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:59
++msgid "Disable SELinux protection for cyrus daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nessusd daemon"
+-#~ msgstr "åœç”¨ nessusd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:60
++msgid "Disable SELinux protection for dbskkd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NetworkManager"
+-#~ msgstr "åœç”¨ NetworkManager çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:61
++msgid "Disable SELinux protection for dbusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nfsd daemon"
+-#~ msgstr "åœç”¨ nfsd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:62
++msgid "Disable SELinux protection for dccd"
++msgstr ""
+-#~ msgid "Samba"
+-#~ msgstr "Samba"
++#: ../gui/selinux.tbl:63
++msgid "Disable SELinux protection for dccifd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nmbd daemon"
+-#~ msgstr "åœç”¨ nmbd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:64
++msgid "Disable SELinux protection for dccm"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nrpe daemon"
+-#~ msgstr "åœç”¨ nrpe daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:65
++msgid "Disable SELinux protection for ddt daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nscd daemon"
+-#~ msgstr "åœç”¨ nscd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:66
++msgid "Disable SELinux protection for devfsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for nsd daemon"
+-#~ msgstr "åœç”¨ nsd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:67
++msgid "Disable SELinux protection for dhcpc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ntpd daemon"
+-#~ msgstr "åœç”¨ ntpd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:68
++msgid "Disable SELinux protection for dhcpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob"
+-#~ msgstr "åœç”¨ oddjob çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:69
++msgid "Disable SELinux protection for dictd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
+-#~ msgstr "åœç”¨ oddjob_mkhomedir çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:70
++msgid "Allow sysadm_t to directly start daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for openvpn daemon"
+-#~ msgstr "åœç”¨ openvpn daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:71
++msgid "Disable SELinux protection for Evolution"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pam daemon"
+-#~ msgstr "åœç”¨ pam daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:72
++msgid "Games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pegasus"
+-#~ msgstr "åœç”¨ pegasus çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:72
++msgid "Disable SELinux protection for games"
++msgstr ""
+-#~ msgid "Disable SELinux protection for perdition daemon"
+-#~ msgstr "åœç”¨ perdition daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:73
++msgid "Disable SELinux protection for the web browsers"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portmap daemon"
+-#~ msgstr "åœç”¨ portmap daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:74
++msgid "Disable SELinux protection for Thunderbird"
++msgstr ""
+-#~ msgid "Disable SELinux protection for portslave daemon"
+-#~ msgstr "åœç”¨ portslave daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:75
++msgid "Disable SELinux protection for distccd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postfix"
+-#~ msgstr "åœç”¨ postfix çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:76
++msgid "Disable SELinux protection for dmesg daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for postgresql daemon"
+-#~ msgstr "åœç”¨ postgresql daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:77
++msgid "Disable SELinux protection for dnsmasq daemon"
++msgstr ""
+-#~ msgid "pppd"
+-#~ msgstr "pppd"
++#: ../gui/selinux.tbl:78
++msgid "Disable SELinux protection for dovecot daemon"
++msgstr ""
+-#~ msgid "Allow pppd to be run for a regular user"
+-#~ msgstr "å…許 pppd ç‚ºä¸€èˆ¬ç”¨æˆ¶åŸ·è¡Œ"
++#: ../gui/selinux.tbl:79
++msgid "Disable SELinux protection for entropyd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pptp"
+-#~ msgstr "åœç”¨ pptp çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:80
++msgid "Disable SELinux protection for fetchmail"
++msgstr ""
+-#~ msgid "Disable SELinux protection for prelink daemon"
+-#~ msgstr "åœç”¨ prelink daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:81
++msgid "Disable SELinux protection for fingerd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for privoxy daemon"
+-#~ msgstr "åœç”¨ privoxy daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:82
++msgid "Disable SELinux protection for freshclam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ptal daemon"
+-#~ msgstr "åœç”¨ ptal daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:83
++msgid "Disable SELinux protection for fsdaemon daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pxe daemon"
+-#~ msgstr "åœç”¨ pxe daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:84
++msgid "Disable SELinux protection for gpm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for pyzord"
+-#~ msgstr "åœç”¨ pyzord çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:85 ../gui/selinux.tbl:125
++msgid "NFS"
++msgstr ""
+-#~ msgid "Disable SELinux protection for quota daemon"
+-#~ msgstr "åœç”¨ quota daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:85
++msgid "Disable SELinux protection for gss daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radiusd daemon"
+-#~ msgstr "åœç”¨ radiusd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:86
++msgid "Disable SELinux protection for Hal daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for radvd daemon"
+-#~ msgstr "åœç”¨ radvd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:87
++msgid "Compatibility"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rdisc"
+-#~ msgstr "åœç”¨ rdisc çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:87
++msgid ""
++"Do not audit things that we know to be broken but which are not security "
++"risks"
++msgstr ""
+-#~ msgid "Disable SELinux protection for readahead"
+-#~ msgstr "åœç”¨ readahead çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:88
++msgid "Disable SELinux protection for hostname daemon"
++msgstr ""
+-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
+-#~ msgstr "å…許程å¼è®€å–ä½æ–¼éžæ¨™æº–ä½ç½®ä¸Šçš„檔案(default_t)"
++#: ../gui/selinux.tbl:89
++msgid "Disable SELinux protection for hotplug daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for restorecond"
+-#~ msgstr "åœç”¨ restorecond çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:90
++msgid "Disable SELinux protection for howl daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rhgb daemon"
+-#~ msgstr "åœç”¨ rhgb daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:91
++msgid "Disable SELinux protection for cups hplip daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci"
+-#~ msgstr "åœç”¨ ricci çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:92
++msgid "Disable SELinux protection for httpd rotatelogs"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ricci_modclusterd"
+-#~ msgstr "åœç”¨ ricci_modclusterd çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:93 ../gui/selinux.tbl:232 ../gui/selinux.tbl:233
++msgid "HTTPD Service"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rlogind daemon"
+-#~ msgstr "åœç”¨ rlogind daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:93
++msgid "Disable SELinux protection for http suexec"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rpcd daemon"
+-#~ msgstr "åœç”¨ rpcd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:94
++msgid "Disable SELinux protection for hwclock daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rshd"
+-#~ msgstr "åœç”¨ rshd çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:95
++msgid "Disable SELinux protection for i18n daemon"
++msgstr ""
+-#~ msgid "rsync"
+-#~ msgstr "rsync"
++#: ../gui/selinux.tbl:96
++msgid "Disable SELinux protection for imazesrv daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for rsync daemon"
+-#~ msgstr "åœç”¨ rsync daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:97
++msgid "Disable SELinux protection for inetd child daemons"
++msgstr ""
+-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
+-#~ msgstr "å…許 ssh ç”± inetd åŸ·è¡Œè€Œä¸æ˜¯ä»¥ä¸€å€‹ daemon ä¾†åŸ·è¡Œ"
++#: ../gui/selinux.tbl:98
++msgid "Disable SELinux protection for inetd daemon"
++msgstr ""
+-#~ msgid "Allow Samba to share nfs directories"
+-#~ msgstr "å…許 Samba å…±äº« nfs ç›®éŒ„"
++#: ../gui/selinux.tbl:99
++msgid "Disable SELinux protection for innd daemon"
++msgstr ""
+-#~ msgid "SASL authentication server"
+-#~ msgstr "SASL é©—證伺æœå™¨"
++#: ../gui/selinux.tbl:100
++msgid "Disable SELinux protection for iptables daemon"
++msgstr ""
+-#~ msgid "Allow sasl authentication server to read /etc/shadow"
+-#~ msgstr "å…許 sasl é©—證伺æœå™¨è®€å– /etc/shadow"
++#: ../gui/selinux.tbl:101
++msgid "Disable SELinux protection for ircd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow X-Windows server to map a memory region as both executable and "
+-#~ "writable"
+-#~ msgstr "å…許 X-Windows ä¼ºæœå™¨å°‡ä¸€å€‹ memory region åŒæ™‚å°æ˜ ç‚ºå¯åŸ·è¡Œèˆ‡å¯å¯«"
++#: ../gui/selinux.tbl:102
++msgid "Disable SELinux protection for irqbalance daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for saslauthd daemon"
+-#~ msgstr "åœç”¨ saslauthd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:103
++msgid "Disable SELinux protection for iscsi daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
+-#~ msgstr "åœç”¨ scannerdaemon daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:104
++msgid "Disable SELinux protection for jabberd daemon"
++msgstr ""
+-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
+-#~ msgstr "ä¸å…許轉移至å—影響的 sysadm_tã€sudo å’Œ su"
++#: ../gui/selinux.tbl:105 ../gui/selinux.tbl:107
++msgid "Kerberos"
++msgstr ""
+-#~ msgid "Do not allow any processes to load kernel modules"
+-#~ msgstr "ä¸å…許任何程åºè¼‰å…¥ kernel æ¨¡çµ„"
++#: ../gui/selinux.tbl:105
++msgid "Disable SELinux protection for kadmind daemon"
++msgstr ""
+-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
+-#~ msgstr "ä¸å…許任何程åºä¿®æ”¹ kernel SELinux æ”¿ç­–"
++#: ../gui/selinux.tbl:106
++msgid "Disable SELinux protection for klogd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sendmail daemon"
+-#~ msgstr "åœç”¨ sendmail daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:107
++msgid "Disable SELinux protection for krb5kdc daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setrans"
+-#~ msgstr "åœç”¨ setrans çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:108
++msgid "Disable SELinux protection for ktalk daemons"
++msgstr ""
+-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
+-#~ msgstr "åœç”¨ setroubleshoot daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:109
++msgid "Disable SELinux protection for kudzu daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slapd daemon"
+-#~ msgstr "åœç”¨ slapd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:110
++msgid "Disable SELinux protection for locate daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for slrnpull daemon"
+-#~ msgstr "åœç”¨ slrnpull daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:111
++msgid "Disable SELinux protection for lpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for smbd daemon"
+-#~ msgstr "åœç”¨ smbd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:112
++msgid "Disable SELinux protection for lrrd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snmpd daemon"
+-#~ msgstr "åœç”¨ snmpd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:113
++msgid "Disable SELinux protection for lvm daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for snort daemon"
+-#~ msgstr "åœç”¨ snort daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:114
++msgid "Disable SELinux protection for mailman"
++msgstr ""
+-#~ msgid "Disable SELinux protection for soundd daemon"
+-#~ msgstr "åœç”¨ soundd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:115
++msgid "Allow evolution and thunderbird to read user files"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sound daemon"
+-#~ msgstr "åœç”¨ sound daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:116
++msgid "Disable SELinux protection for mdadm daemon"
++msgstr ""
+-#~ msgid "Spam Protection"
+-#~ msgstr "垃圾郵件ä¿è­·"
++#: ../gui/selinux.tbl:117
++msgid "Disable SELinux protection for monopd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for spamd daemon"
+-#~ msgstr "åœç”¨ spamd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:118
++msgid "Allow the mozilla browser to read user files"
++msgstr ""
+-#~ msgid "Allow spamd to access home directories"
+-#~ msgstr "å…許 spamd å­˜å–家目錄"
++#: ../gui/selinux.tbl:119
++msgid "Disable SELinux protection for mrtg daemon"
++msgstr ""
+-#~ msgid "Allow Spam Assassin daemon network access"
+-#~ msgstr "å…許 Spam Assassin daemon ç¶²è·¯å­˜å–"
++#: ../gui/selinux.tbl:120
++msgid "Disable SELinux protection for mysqld daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for speedmgmt daemon"
+-#~ msgstr "åœç”¨ speedmgmt daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:121
++msgid "Disable SELinux protection for nagios daemon"
++msgstr ""
+-#~ msgid "Squid"
+-#~ msgstr "Squid"
++#: ../gui/selinux.tbl:122 ../gui/selinux.tbl:128
++msgid "Name Service"
++msgstr ""
+-#~ msgid "Allow squid daemon to connect to the network"
+-#~ msgstr "å…許 squid daemon é€£è‡³ç¶²è·¯"
++#: ../gui/selinux.tbl:122
++msgid "Disable SELinux protection for named daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for squid daemon"
+-#~ msgstr "åœç”¨ squid daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:123
++msgid "Disable SELinux protection for nessusd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ssh daemon"
+-#~ msgstr "åœç”¨ ssh daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:124
++msgid "Disable SELinux protection for NetworkManager"
++msgstr ""
+-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
+-#~ msgstr "å…許以 sysadm_r:sysadm_t é€²è¡Œ ssh ç™»éŒ„"
++#: ../gui/selinux.tbl:125
++msgid "Disable SELinux protection for nfsd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
+-#~ "~/.bashrc)"
+-#~ msgstr ""
+-#~ "å…許 staff_r users æœå°‹ sysadm home dir ä¸¦è®€å–檔案(例如 ~/.bashrc)"
++#: ../gui/selinux.tbl:126 ../gui/selinux.tbl:163 ../gui/selinux.tbl:176
++#: ../gui/selinux.tbl:221
++msgid "Samba"
++msgstr ""
+-#~ msgid "Universal SSL tunnel"
+-#~ msgstr "全域 SSL é€šé“"
++#: ../gui/selinux.tbl:126
++msgid "Disable SELinux protection for nmbd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for stunnel daemon"
+-#~ msgstr "åœç”¨ stunnel daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:127
++msgid "Disable SELinux protection for nrpe daemon"
++msgstr ""
+-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
+-#~ msgstr "å…許 stunnel daemon ç¨ç«‹åœ°åŸ·è¡Œæ–¼ xinetd ä¹‹å¤–"
++#: ../gui/selinux.tbl:128
++msgid "Disable SELinux protection for nscd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for swat daemon"
+-#~ msgstr "åœç”¨ swat daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:129
++msgid "Disable SELinux protection for nsd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for sxid daemon"
+-#~ msgstr "åœç”¨ sxid daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:130
++msgid "Disable SELinux protection for ntpd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for syslogd daemon"
+-#~ msgstr "åœç”¨ syslogd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:131
++msgid "Disable SELinux protection for oddjob"
++msgstr ""
+-#~ msgid "Disable SELinux protection for system cron jobs"
+-#~ msgstr "åœç”¨ system cron jobs çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:132
++msgid "Disable SELinux protection for oddjob_mkhomedir"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tcp daemon"
+-#~ msgstr "åœç”¨ tcp daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:133
++msgid "Disable SELinux protection for openvpn daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for telnet daemon"
+-#~ msgstr "åœç”¨ telnet daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:134
++msgid "Disable SELinux protection for pam daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for tftpd daemon"
+-#~ msgstr "åœç”¨ tftpd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:135
++msgid "Disable SELinux protection for pegasus"
++msgstr ""
+-#~ msgid "Disable SELinux protection for transproxy daemon"
+-#~ msgstr "åœç”¨ transproxy daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:136
++msgid "Disable SELinux protection for perdition daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for udev daemon"
+-#~ msgstr "åœç”¨ udev daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:137
++msgid "Disable SELinux protection for portmap daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uml daemon"
+-#~ msgstr "åœç”¨ uml daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:138
++msgid "Disable SELinux protection for portslave daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow xinetd to run unconfined, including any services it starts that do "
+-#~ "not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "å…許 xinetd ä»¥ä¸è¢«é™åˆ¶çš„æ–¹å¼åŸ·è¡Œï¼ŒåŒ…括任何它所啟用的ã€æœªæ¸…楚定義網域轉移的"
+-#~ "æœå‹™"
++#: ../gui/selinux.tbl:139
++msgid "Disable SELinux protection for postfix"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
+-#~ "script that does not have a domain transition explicitly defined"
+-#~ msgstr ""
+-#~ "å…許 rc script ä»¥ä¸å—é™åˆ¶çš„æ–¹å¼åŸ·è¡Œï¼ŒåŒ…括任何 rc script æ‰€å•Ÿç”¨çš„ã€æœªæ¸…楚定"
+-#~ "義網域轉移的 daemon"
++#: ../gui/selinux.tbl:140
++msgid "Disable SELinux protection for postgresql daemon"
++msgstr ""
+-#~ msgid "Allow rpm to run unconfined"
+-#~ msgstr "å…許 rpm ä»¥ä¸å—é™åˆ¶çš„æ–¹å¼åŸ·è¡Œ"
++#: ../gui/selinux.tbl:141
++msgid "pppd"
++msgstr ""
+-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
+-#~ msgstr "å…許有特權的工具程å¼ï¼ˆä¾‹å¦‚ hotplug å’Œ insmod)以ä¸å—é™åˆ¶çš„æ–¹å¼åŸ·è¡Œ"
++#: ../gui/selinux.tbl:141
++msgid "Allow pppd to be run for a regular user"
++msgstr ""
+-#~ msgid "Disable SELinux protection for updfstab daemon"
+-#~ msgstr "åœç”¨ updfstab daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:142
++msgid "Disable SELinux protection for pptp"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uptimed daemon"
+-#~ msgstr "åœç”¨ uptimed daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:143
++msgid "Disable SELinux protection for prelink daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
+-#~ "only staff_r can do so"
+-#~ msgstr ""
+-#~ "å…許 user_r é€éŽ suã€sudo æˆ– userhelper ä¾†é€£è‡³ sysadm_r。å¦å‰‡ï¼Œåªæœ‰ "
+-#~ "staff_r å¯ä»¥é€™éº¼ä½œ"
++#: ../gui/selinux.tbl:144
++msgid "Disable SELinux protection for privoxy daemon"
++msgstr ""
+-#~ msgid "Allow users to execute the mount command"
+-#~ msgstr "å…許用戶執行 mount æŒ‡ä»¤"
++#: ../gui/selinux.tbl:145
++msgid "Disable SELinux protection for ptal daemon"
++msgstr ""
+-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
+-#~ msgstr "å…許一般用戶的直接滑鼠存å–(åªå…許 X server)"
++#: ../gui/selinux.tbl:146
++msgid "Disable SELinux protection for pxe daemon"
++msgstr ""
+-#~ msgid "Allow users to run the dmesg command"
+-#~ msgstr "å…許用戶執行 dmesg æŒ‡ä»¤"
++#: ../gui/selinux.tbl:147
++msgid "Disable SELinux protection for pyzord"
++msgstr ""
+-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
+-#~ msgstr "å…許用戶控制網路介é¢ï¼ˆä¹Ÿéœ€è¦ USERCTL=true)"
++#: ../gui/selinux.tbl:148
++msgid "Disable SELinux protection for quota daemon"
++msgstr ""
+-#~ msgid "Allow normal user to execute ping"
+-#~ msgstr "å…許一般用戶執行 ping"
++#: ../gui/selinux.tbl:149
++msgid "Disable SELinux protection for radiusd daemon"
++msgstr ""
+-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
+-#~ msgstr "å…許用戶 r/w noextattrfile(FATã€CDROMã€FLOPPY)"
++#: ../gui/selinux.tbl:150
++msgid "Disable SELinux protection for radvd daemon"
++msgstr ""
+-#~ msgid "Allow users to rw usb devices"
+-#~ msgstr "å…許用戶 rw usb è£ç½®"
++#: ../gui/selinux.tbl:151
++msgid "Disable SELinux protection for rdisc"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
+-#~ "the same domain and outside users)  disabling this forces FTP passive "
+-#~ "mode and may change other protocols"
+-#~ msgstr ""
+-#~ "å…許用戶執行 TCP ä¼ºæœå™¨ï¼ˆç¶å®šè‡³é€šè¨ŠåŸ ä¸¦æŽ¥å—來自相åŒç¶²åŸŸå’Œå¤–部用戶的連線)"
+-#~ "åœç”¨æ­¤é¸é …會強制 FTP è¢«å‹•æ¨¡å¼ä¸¦ä¸”å¯èƒ½æœƒæ›´æ”¹å…¶å®ƒé€šè¨Šå”定"
++#: ../gui/selinux.tbl:152
++msgid "Disable SELinux protection for readahead"
++msgstr ""
+-#~ msgid "Allow user to stat ttyfiles"
+-#~ msgstr "å…許用戶 stat ttyfiles"
++#: ../gui/selinux.tbl:153
++msgid "Allow programs to read files in non-standard locations (default_t)"
++msgstr ""
+-#~ msgid "Disable SELinux protection for uucpd daemon"
+-#~ msgstr "åœç”¨ uucpd daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:154
++msgid "Disable SELinux protection for restorecond"
++msgstr ""
+-#~ msgid "Disable SELinux protection for vmware daemon"
+-#~ msgstr "åœç”¨ vmware daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:155
++msgid "Disable SELinux protection for rhgb daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for watchdog daemon"
+-#~ msgstr "åœç”¨ watchdog daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:156
++msgid "Disable SELinux protection for ricci"
++msgstr ""
+-#~ msgid "Disable SELinux protection for winbind daemon"
+-#~ msgstr "åœç”¨ winbind daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:157
++msgid "Disable SELinux protection for ricci_modclusterd"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xdm daemon"
+-#~ msgstr "åœç”¨ xdm daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:158
++msgid "Disable SELinux protection for rlogind daemon"
++msgstr ""
+-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
+-#~ msgstr "å…許 xdm ä»¥ sysadm_r:sysadm_t ä¾†é€²è¡Œç™»éŒ„"
++#: ../gui/selinux.tbl:159
++msgid "Disable SELinux protection for rpcd daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen daemon"
+-#~ msgstr "åœç”¨ xen daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:160
++msgid "Disable SELinux protection for rshd"
++msgstr ""
+-#~ msgid "XEN"
+-#~ msgstr "XEN"
++#: ../gui/selinux.tbl:161
++msgid "rsync"
++msgstr ""
+-#~ msgid "Allow xen to read/write physical disk devices"
+-#~ msgstr "å…許 xen è®€å–/寫入實體ç£ç¢Ÿè£ç½®"
++#: ../gui/selinux.tbl:161
++msgid "Disable SELinux protection for rsync daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xfs daemon"
+-#~ msgstr "åœç”¨ xfs daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:162
++msgid "Allow ssh to run from inetd instead of as a daemon"
++msgstr ""
+-#~ msgid "Disable SELinux protection for xen control"
+-#~ msgstr "åœç”¨ xen control çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:163
++msgid "Allow Samba to share nfs directories"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypbind daemon"
+-#~ msgstr "åœç”¨ ypbind daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:164 ../gui/selinux.tbl:166
++msgid "SASL authentication server"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Password Daemon"
+-#~ msgstr "åœç”¨ NIS Password Daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:164
++msgid "Allow sasl authentication server to read /etc/shadow"
++msgstr ""
+-#~ msgid "Disable SELinux protection for ypserv daemon"
+-#~ msgstr "åœç”¨ ypserv daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:165
++msgid ""
++"Allow X-Windows server to map a memory region as both executable and writable"
++msgstr ""
+-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
+-#~ msgstr "åœç”¨ NIS Transfer Daemon çš„ SELinux ä¿è­·"
++#: ../gui/selinux.tbl:166
++msgid "Disable SELinux protection for saslauthd daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
+-#~ msgstr "å…許 SELinux webadm ç”¨æˆ¶ç®¡ç†ç„¡ç‰¹æ¬Šç”¨æˆ¶çš„家目錄"
++#: ../gui/selinux.tbl:167
++msgid "Disable SELinux protection for scannerdaemon daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow SELinux webadm user to read unprivileged users home directories"
+-#~ msgstr "å…許 SELinux webadm ç”¨æˆ¶è®€å–無特權用戶的家目錄"
++#: ../gui/selinux.tbl:168
++msgid "Do not allow transition to sysadm_t, sudo and su effected"
++msgstr ""
+-#~ msgid "Sensitvity Level"
+-#~ msgstr "æ•æ„Ÿåº¦"
++#: ../gui/selinux.tbl:169
++msgid "Do not allow any processes to load kernel modules"
++msgstr ""
+-#~ msgid "Are you sure you want to delete %s '%s'?"
+-#~ msgstr "您是å¦å¸Œæœ›åˆªé™¤ %s「%sã€ï¼Ÿ"
++#: ../gui/selinux.tbl:170
++msgid "Do not allow any processes to modify kernel SELinux policy"
++msgstr ""
+-#~ msgid "Delete %s"
+-#~ msgstr "刪除 %s"
++#: ../gui/selinux.tbl:171
++msgid "Disable SELinux protection for sendmail daemon"
++msgstr ""
+-#~ msgid "Add %s"
+-#~ msgstr "新增 %s"
++#: ../gui/selinux.tbl:172
++msgid "Disable SELinux protection for setrans"
++msgstr ""
+-#~ msgid "Modify %s"
+-#~ msgstr "修改 %s"
++#: ../gui/selinux.tbl:173
++msgid "Disable SELinux protection for setroubleshoot daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:174
++msgid "Disable SELinux protection for slapd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:175
++msgid "Disable SELinux protection for slrnpull daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:176
++msgid "Disable SELinux protection for smbd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:177
++msgid "Disable SELinux protection for snmpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:178
++msgid "Disable SELinux protection for snort daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:179
++msgid "Disable SELinux protection for soundd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:180
++msgid "Disable SELinux protection for sound daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:181 ../gui/selinux.tbl:182 ../gui/selinux.tbl:183
++msgid "Spam Protection"
++msgstr ""
++
++#: ../gui/selinux.tbl:181
++msgid "Disable SELinux protection for spamd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:182
++msgid "Allow spamd to access home directories"
++msgstr ""
++
++#: ../gui/selinux.tbl:183
++msgid "Allow Spam Assassin daemon network access"
++msgstr ""
++
++#: ../gui/selinux.tbl:184
++msgid "Disable SELinux protection for speedmgmt daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:185 ../gui/selinux.tbl:186
++msgid "Squid"
++msgstr ""
++
++#: ../gui/selinux.tbl:185
++msgid "Allow squid daemon to connect to the network"
++msgstr ""
++
++#: ../gui/selinux.tbl:186
++msgid "Disable SELinux protection for squid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:187
++msgid "Disable SELinux protection for ssh daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:188
++msgid "Allow ssh logins as sysadm_r:sysadm_t"
++msgstr ""
++
++#: ../gui/selinux.tbl:189
++msgid ""
++"Allow staff_r users to search the sysadm home dir and read files (such as ~/."
++"bashrc)"
++msgstr ""
++
++#: ../gui/selinux.tbl:190 ../gui/selinux.tbl:191
++msgid "Universal SSL tunnel"
++msgstr ""
++
++#: ../gui/selinux.tbl:190
++msgid "Disable SELinux protection for stunnel daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:191
++msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
++msgstr ""
++
++#: ../gui/selinux.tbl:192
++msgid "Disable SELinux protection for swat daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:193
++msgid "Disable SELinux protection for sxid daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:194
++msgid "Disable SELinux protection for syslogd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:195
++msgid "Disable SELinux protection for system cron jobs"
++msgstr ""
++
++#: ../gui/selinux.tbl:196
++msgid "Disable SELinux protection for tcp daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:197
++msgid "Disable SELinux protection for telnet daemon"
++msgstr ""
+-#~ msgid "all"
+-#~ msgstr "全部"
++#: ../gui/selinux.tbl:198
++msgid "Disable SELinux protection for tftpd daemon"
++msgstr ""
+-#~ msgid "Customized"
+-#~ msgstr "自訂化"
++#: ../gui/selinux.tbl:199
++msgid "Disable SELinux protection for transproxy daemon"
++msgstr ""
+-#~ msgid "Policy Module"
+-#~ msgstr "政策模組"
++#: ../gui/selinux.tbl:200
++msgid "Disable SELinux protection for udev daemon"
++msgstr ""
+-#~ msgid "Disable Audit"
+-#~ msgstr "åœç”¨ç¨½æ ¸"
++#: ../gui/selinux.tbl:201
++msgid "Disable SELinux protection for uml daemon"
++msgstr ""
+-#~ msgid "Enable Audit"
+-#~ msgstr "啟用稽核"
++#: ../gui/selinux.tbl:202
++msgid ""
++"Allow xinetd to run unconfined, including any services it starts that do not "
++"have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "Load Policy Module"
+-#~ msgstr "載入政策模組"
++#: ../gui/selinux.tbl:203
++msgid ""
++"Allow rc scripts to run unconfined, including any daemon started by an rc "
++"script that does not have a domain transition explicitly defined"
++msgstr ""
+-#~ msgid "File Labeling"
+-#~ msgstr "檔案標記"
++#: ../gui/selinux.tbl:204
++msgid "Allow rpm to run unconfined"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Specification"
+-#~ msgstr ""
+-#~ "檔案\n"
+-#~ "è¦æ ¼"
++#: ../gui/selinux.tbl:205
++msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
++msgstr ""
+-#~ msgid ""
+-#~ "Selinux\n"
+-#~ "File Type"
+-#~ msgstr ""
+-#~ "Selinux\n"
+-#~ "檔案類型"
++#: ../gui/selinux.tbl:206
++msgid "Disable SELinux protection for updfstab daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "File\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "檔案\n"
+-#~ "é¡žåž‹"
++#: ../gui/selinux.tbl:207
++msgid "Disable SELinux protection for uptimed daemon"
++msgstr ""
+-#~ msgid "..."
+-#~ msgstr "..."
++#: ../gui/selinux.tbl:208
++msgid ""
++"Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only "
++"staff_r can do so"
++msgstr ""
+-#~ msgid "600-1024"
+-#~ msgstr "600-1024"
++#: ../gui/selinux.tbl:209
++msgid "Allow users to execute the mount command"
++msgstr ""
++
++#: ../gui/selinux.tbl:210
++msgid "Allow regular users direct mouse access (only allow the X server)"
++msgstr ""
++
++#: ../gui/selinux.tbl:211
++msgid "Allow users to run the dmesg command"
++msgstr ""
++
++#: ../gui/selinux.tbl:212
++msgid "Allow users to control network interfaces (also needs USERCTL=true)"
++msgstr ""
++
++#: ../gui/selinux.tbl:213
++msgid "Allow normal user to execute ping"
++msgstr ""
++
++#: ../gui/selinux.tbl:214
++msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
++msgstr ""
++
++#: ../gui/selinux.tbl:215
++msgid "Allow users to rw usb devices"
++msgstr ""
++
++#: ../gui/selinux.tbl:216
++msgid ""
++"Allow users to run TCP servers (bind to ports and accept connection from the "
++"same domain and outside users)  disabling this forces FTP passive mode and "
++"may change other protocols"
++msgstr ""
++
++#: ../gui/selinux.tbl:217
++msgid "Allow user to stat ttyfiles"
++msgstr ""
++
++#: ../gui/selinux.tbl:218
++msgid "Disable SELinux protection for uucpd daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:219
++msgid "Disable SELinux protection for vmware daemon"
++msgstr ""
++
++#: ../gui/selinux.tbl:220
++msgid "Disable SELinux protection for watchdog daemon"
++msgstr ""
+-#~ msgid "<b>Applications</b>"
+-#~ msgstr "<b>應用程å¼</b>"
++#: ../gui/selinux.tbl:221
++msgid "Disable SELinux protection for winbind daemon"
++msgstr ""
+-#~ msgid "<b>Login Users</b>"
+-#~ msgstr "<b>登錄用戶</b>"
++#: ../gui/selinux.tbl:222
++msgid "Disable SELinux protection for xdm daemon"
++msgstr ""
+-#~ msgid "<b>Root Users</b>"
+-#~ msgstr "<b>Root ç”¨æˆ¶</b>"
++#: ../gui/selinux.tbl:223
++msgid "Allow xdm logins as sysadm_r:sysadm_t"
++msgstr ""
+-#~ msgid "<b>TCP Ports</b>"
+-#~ msgstr "<b>TCP é€šè¨ŠåŸ </b>"
++#: ../gui/selinux.tbl:224
++msgid "Disable SELinux protection for xen daemon"
++msgstr ""
+-#~ msgid "<b>UDP Ports</b>"
+-#~ msgstr "<b>UDP é€šè¨ŠåŸ </b>"
++#: ../gui/selinux.tbl:225
++msgid "XEN"
++msgstr ""
+-#~ msgid "Add Booleans Dialog"
+-#~ msgstr "新增布林值å°è©±"
++#: ../gui/selinux.tbl:225
++msgid "Allow xen to read/write physical disk devices"
++msgstr ""
+-#~ msgid ""
+-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
+-#~ "Files, Log Files, /var/lib Files ..."
+-#~ msgstr ""
+-#~ "新增應用程å¼éœ€è¦ã€Œå¯«ã€è‡³æª”案/目錄。Pid æª”案ã€æ—¥èªŒæª”ã€/var/lib æª”案 ..."
++#: ../gui/selinux.tbl:226
++msgid "Disable SELinux protection for xfs daemon"
++msgstr ""
+-#~ msgid "Add/Remove booleans used for this confined application/user"
+-#~ msgstr "新增/移除這個å—é™åˆ¶çš„應用程å¼/用戶所使用的布林值"
++#: ../gui/selinux.tbl:227
++msgid "Disable SELinux protection for xen control"
++msgstr ""
+-#~ msgid "Admin User Role"
+-#~ msgstr "管ç†å“¡ç”¨æˆ¶è§’色"
++#: ../gui/selinux.tbl:228
++msgid "Disable SELinux protection for ypbind daemon"
++msgstr ""
+-#~ msgid "All"
+-#~ msgstr "全部"
++#: ../gui/selinux.tbl:229
++msgid "Disable SELinux protection for NIS Password Daemon"
++msgstr ""
+-#~ msgid ""
+-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
+-#~ "600-1024"
+-#~ msgstr ""
+-#~ "å…許應用程å¼/用戶角色以 0 ä¾†èª¿ç”¨ bindresvport。ç¶å®šè‡³é€šè¨ŠåŸ  600-1024"
++#: ../gui/selinux.tbl:230
++msgid "Disable SELinux protection for ypserv daemon"
++msgstr ""
+-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
+-#~ msgstr "å…許應用程å¼/用戶角色ç¶å®šè‡³ä»»ä½•å¤§æ–¼ 1024 çš„ udp é€šè¨ŠåŸ "
++#: ../gui/selinux.tbl:231
++msgid "Disable SELinux protection for NIS Transfer Daemon"
++msgstr ""
+-#~ msgid "Allows confined application/user role to bind to any udp port"
+-#~ msgstr "å…許å—é™åˆ¶çš„應用程å¼/用戶角色ç¶å®šè‡³ä»»ä½• udp é€šè¨ŠåŸ "
++#: ../gui/selinux.tbl:232
++msgid "Allow SELinux webadm user to manage unprivileged users home directories"
++msgstr ""
+-#~ msgid "Boolean Name"
+-#~ msgstr "布林值å稱"
++#: ../gui/selinux.tbl:233
++msgid "Allow SELinux webadm user to read unprivileged users home directories"
++msgstr ""
+-#~ msgid "Create/Manipulate temporary files in /tmp"
+-#~ msgstr "建立/æ“作ä½æ–¼ /tmp ä¸­çš„臨時檔案"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Are you sure you want to delete %s '%s'?"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "輸入一個應用程å¼/用戶角色連至ã€ä»¥é€—號å€éš”é–‹çš„ tcp é€šè¨ŠåŸ æ¸…單或是通訊埠範"
+-#~ "åœã€‚例如:612, 650-660"
++#: ../gui/semanagePage.py:126
++#, python-format
++msgid "Delete %s"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role binds to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "輸入一個應用程å¼/用戶角色ç¶å®šè‡³ã€ä»¥é€—號å€éš”é–‹çš„ udp é€šè¨ŠåŸ æ¸…單或是通訊埠範"
+-#~ "åœã€‚例如:612, 650-660"
++#: ../gui/semanagePage.py:134
++#, python-format
++msgid "Add %s"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter a comma separated list of udp ports or ranges of ports that "
+-#~ "application/user role connects to. Example: 612, 650-660"
+-#~ msgstr ""
+-#~ "輸入一個應用程å¼/用戶角色連至ã€ä»¥é€—號å€éš”é–‹çš„ udp é€šè¨ŠåŸ æ¸…單或是通訊埠範"
+-#~ "åœã€‚例如:612, 650-660"
++#: ../gui/semanagePage.py:148
++#, python-format
++msgid "Modify %s"
++msgstr ""
+-#~ msgid "Enter complete path for executable to be confined."
+-#~ msgstr "輸入è¦è¢«é™åˆ¶çš„å¯åŸ·è¡Œæª”的完整路徑。"
++#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2838
++msgid "Permissive"
++msgstr ""
+-#~ msgid ""
+-#~ "Enter complete path to init script used to start the confined application."
+-#~ msgstr "輸入用來啟用å—é™åˆ¶çš„應用程å¼çš„ init script çš„完整路徑。"
++#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2856
++msgid "Enforcing"
++msgstr ""
+-#~ msgid "Enter name of application or user role to be confined"
+-#~ msgstr "輸入å—é™åˆ¶çš„應用程å¼å稱或用戶角色"
++#: ../gui/statusPage.py:94
++msgid "Status"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role connects to"
+-#~ msgstr "輸入應用程å¼/用戶連至的網路通訊埠"
++#: ../gui/statusPage.py:133
++msgid ""
++"Changing the policy type will cause a relabel of the entire file system on "
++"the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Enter network ports that application/user role listens to"
+-#~ msgstr "輸入應用程å¼/用戶角色監è½çš„網路通訊埠"
++#: ../gui/statusPage.py:147
++msgid ""
++"Changing to SELinux disabled requires a reboot.  It is not recommended.  If "
++"you later decide to turn SELinux back on, the system will be required to "
++"relabel.  If you just want to see if SELinux is causing a problem on your "
++"system, you can go to permissive mode which will only log errors and not "
++"enforce SELinux policy.  Permissive mode does not require a reboot    Do you "
++"wish to continue?"
++msgstr ""
+-#~ msgid "Enter unique name for the confined application or user role."
+-#~ msgstr "輸入å—é™åˆ¶çš„應用程å¼æˆ–用戶角色的特殊å稱。"
++#: ../gui/statusPage.py:152
++msgid ""
++"Changing to SELinux enabled will cause a relabel of the entire file system "
++"on the next boot. Relabeling takes a long time depending on the size of the "
++"file system.  Do you wish to continue?"
++msgstr ""
+-#~ msgid "Executable"
+-#~ msgstr "å¯åŸ·è¡Œæª”"
++#: ../gui/system-config-selinux.glade:11
++msgid "system-config-selinux"
++msgstr ""
+-#~ msgid "Existing User Roles"
+-#~ msgstr "ç¾æœ‰çš„用戶角色"
++#: ../gui/system-config-selinux.glade:12
++msgid ""
++"Copyright (c)2006 Red Hat, Inc.\n"
++"Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com>"
++msgstr ""
+-#~ msgid "GPL"
+-#~ msgstr "GPL"
++#: ../gui/system-config-selinux.glade:22
++#: ../gui/system-config-selinux.glade:544
++msgid "Add SELinux Login Mapping"
++msgstr ""
+-#~ msgid "Generated Policy Files"
+-#~ msgstr "產生的政策檔案"
++#: ../gui/system-config-selinux.glade:257
++msgid "Add SELinux Network Ports"
++msgstr ""
+-#~ msgid "Init script"
+-#~ msgstr "init script"
++#: ../gui/system-config-selinux.glade:391
++#: ../gui/system-config-selinux.glade:678
++msgid "SELinux Type"
++msgstr ""
+-#~ msgid "Interacts with the terminal"
+-#~ msgstr "與終端機進行互動"
++#: ../gui/system-config-selinux.glade:622
++msgid "File Specification"
++msgstr ""
+-#~ msgid "Internet Services Daemon (inetd)"
+-#~ msgstr "網路æœå‹™ Daemon(inetd)"
++#: ../gui/system-config-selinux.glade:650
++msgid "File Type"
++msgstr ""
+-#~ msgid "Internet Services Daemon are daemons started by xinetd"
+-#~ msgstr "網路æœå‹™ Daemon ç‚º xinetd æ‰€å•Ÿç”¨çš„系統程å¼"
++#: ../gui/system-config-selinux.glade:727
++msgid ""
++"all files\n"
++"regular file\n"
++"directory\n"
++"character device\n"
++"block device\n"
++"socket\n"
++"symbolic link\n"
++"named pipe\n"
++msgstr ""
+-#~ msgid "Minimal Terminal User Role"
+-#~ msgstr "最少的終端機用戶角色"
++#: ../gui/system-config-selinux.glade:773
++msgid "MLS"
++msgstr ""
+-#~ msgid "Minimal X Windows User Role"
+-#~ msgstr "最少的 X Windows ç”¨æˆ¶è§’色"
++#: ../gui/system-config-selinux.glade:837
++msgid "Add SELinux User"
++msgstr ""
+-#~ msgid "Modify an existing login user record."
+-#~ msgstr "修改一個ç¾æœ‰çš„登錄用戶紀錄。"
++#: ../gui/system-config-selinux.glade:1079
++msgid "SELinux Administration"
++msgstr ""
+-#~ msgid "Polgen"
+-#~ msgstr "Polgen"
++#: ../gui/system-config-selinux.glade:1122
++msgid "Add"
++msgstr ""
+-#~ msgid "Policy Directory"
+-#~ msgstr "政策目錄"
++#: ../gui/system-config-selinux.glade:1144
++msgid "_Properties"
++msgstr ""
+-#~ msgid "Red Hat 2007"
+-#~ msgstr "Red Hat 2007"
++#: ../gui/system-config-selinux.glade:1166
++msgid "_Delete"
++msgstr ""
+-#~ msgid "Root Admin User Role"
+-#~ msgstr "Root ç®¡ç†å“¡ç”¨æˆ¶è§’色(Root Admin User Role)"
++#: ../gui/system-config-selinux.glade:1257
++msgid "Select Management Object"
++msgstr ""
+-#~ msgid "SELinux Policy Generation Tool"
+-#~ msgstr "SELinux æ”¿ç­–產生工具(SELinux Policy Generation Tool)"
++#: ../gui/system-config-selinux.glade:1274
++msgid "<b>Select:</b>"
++msgstr ""
+-#~ msgid "Select Ports"
+-#~ msgstr "é¸æ“‡é€šè¨ŠåŸ "
+-
+-#~ msgid ""
+-#~ "Select Root Administrator User Role, if this user will be used to "
+-#~ "administer the machine while running as root.  This user will not be able "
+-#~ "to login to the system directly."
+-#~ msgstr ""
+-#~ "若此用戶將會被用來以 root çš„身份管ç†æ©Ÿå™¨çš„話,é¸æ“‡ Root ç®¡ç†è€…用戶角色。此"
+-#~ "用戶將無法直接登入系統。"
+-
+-#~ msgid "Select additional domains that this user role will administer"
+-#~ msgstr "é¸æ“‡æ­¤ç”¨æˆ¶è§’色將會管ç†çš„é¡å¤–網域"
+-
+-#~ msgid "Select additional domains to which this user role will transition"
+-#~ msgstr "é¸æ“‡æ­¤ç”¨æˆ¶è§’色將會轉移的é¡å¤–網域"
+-
+-#~ msgid "Select additional roles for this user"
+-#~ msgstr "é¸æ“‡æ­¤ç”¨æˆ¶çš„é¡å¤–角色"
+-
+-#~ msgid "Select booleans that the application uses"
+-#~ msgstr "é¸æ“‡æ‡‰ç”¨ç¨‹å¼æ‰€ä½¿ç”¨çš„布林值"
+-
+-#~ msgid "Select common application traits"
+-#~ msgstr "é¸æ“‡ä¸€èˆ¬çš„應用程å¼ç‰¹æ€§"
+-
+-#~ msgid "Select directory to generate policy in"
+-#~ msgstr "é¸æ“‡ç”¢ç”Ÿæ”¿ç­–的目錄"
+-
+-#~ msgid "Select files/directories that the application manages"
+-#~ msgstr "é¸æ“‡æ‡‰ç”¨ç¨‹å¼æ‰€ç®¡ç†çš„檔案/目錄"
+-
+-#~ msgid ""
+-#~ "Select the applications domains that you would like this user role to "
+-#~ "transition to."
+-#~ msgstr "é¸æ“‡æ‚¨å¸Œæœ›æ­¤ç”¨æˆ¶è§’色轉移至的應用程å¼ç¶²åŸŸã€‚"
+-
+-#~ msgid "Select the domains that you would like this user administer."
+-#~ msgstr "é¸æ“‡æ‚¨å¸Œæœ›æ­¤ç”¨æˆ¶ç®¡ç†çš„網域。"
+-
+-#~ msgid ""
+-#~ "Select the user roles that will transiton to this applications domains."
+-#~ msgstr "é¸æ“‡å°‡æœƒè½‰ç§»è‡³æ­¤æ‡‰ç”¨ç¨‹å¼ç¶²åŸŸçš„用戶角色。"
+-
+-#~ msgid "Select type of the application/user role to be confined"
+-#~ msgstr "é¸æ“‡æ¬²é™åˆ¶çš„應用程å¼/用戶角色類型"
+-
+-#~ msgid "Select user roles that will transition to this domain"
+-#~ msgstr "é¸æ“‡å°‡æœƒè½‰ç§»è‡³æ­¤ç¶²åŸŸçš„用戶角色"
+-
+-#~ msgid "Select user roles that you want to customize"
+-#~ msgstr "é¸æ“‡æ‚¨å¸Œæœ›è‡ªè¨‚化的用戶角色"
+-
+-#~ msgid "Sends audit messages"
+-#~ msgstr "發é€ç¨½æ ¸è¨Šæ¯"
+-
+-#~ msgid "Sends email"
+-#~ msgstr "發é€é›»å­éƒµä»¶"
+-
+-#~ msgid "Standard Init Daemon"
+-#~ msgstr "標準 Init Daemon"
+-
+-#~ msgid ""
+-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
+-#~ "Usually requires a script in /etc/rc.d/init.d"
+-#~ msgstr ""
+-#~ "標準的 Init Daemon ä»£è¡¨é€éŽ init script åœ¨é–‹æ©Ÿæ™‚啟動的系統程å¼ã€‚通常在 /"
+-#~ "etc/rc.d/init.d ä¸­æœƒéœ€è¦ä¸€å€‹ script"
+-
+-#~ msgid ""
+-#~ "This tool can be used to generate a policy framework, to confine "
+-#~ "applications or users using SELinux.   \n"
+-#~ "\n"
+-#~ "The tool generates:\n"
+-#~ "Type enforcement file (te)\n"
+-#~ "Interface file (if)\n"
+-#~ "File context file (fc)\n"
+-#~ "Shell script (sh) - used to compile and install the policy. "
+-#~ msgstr ""
+-#~ "此工具å¯è¢«ç”¨ä¾†ç”¢ç”Ÿä¸€å€‹ç¹¼çºŒé€²è¡Œæ‡‰ç”¨ç¨‹å¼æˆ–是使用 SELinux çš„用戶的政策架"
+-#~ "構。   \n"
+-#~ "\n"
+-#~ "此工具會產生:\n"
+-#~ "類型強制檔案(te)\n"
+-#~ "介é¢æª”案(if)\n"
+-#~ "檔案 context æª”(fc)\n"
+-#~ "Shell script(sh)- ç”¨ä¾†ç·¨è­¯å’Œå®‰è£æ”¿ç­–。"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "\n"
+-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Run/restart the application to generate avc messages.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "此工具會產生下列:\n"
+-#~ "類型強制(te)ã€æª”案 Context(fc)ã€ä»‹é¢ï¼ˆif)ã€Shell Script(sh)\n"
+-#~ "\n"
+-#~ "執行 shell script ä¾†ç·¨è­¯/安è£å’Œé‡æ–°æ¨™è¨˜æª”案/目錄。\n"
+-#~ "將機器設置為寬鬆模å¼ï¼ˆsetenforce 0)。\n"
+-#~ "執行/é‡æ–°å•Ÿå‹•ç”¨ç¨‹å¼ä¾†ç”¢ç”Ÿ avc è¨Šæ¯ã€‚\n"
+-#~ "使用 audit2allow -R ä¾†ç‚º te æª”案產生é¡å¤–çš„è¦å‰‡ã€‚\n"
+-
+-#~ msgid ""
+-#~ "This tool will generate the following: \n"
+-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
+-#~ "Execute shell script as root to compile/install and relabel files/"
+-#~ "directories.  \n"
+-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
+-#~ "Put the machine in permissive mode (setenforce 0). \n"
+-#~ "Login as the user and test this user role.\n"
+-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
+-#~ msgstr ""
+-#~ "此工具會產生下列:\n"
+-#~ "類型強制(te)ã€æª”案 Context(fc)ã€ä»‹é¢ï¼ˆif)ã€Shell Script(sh)\n"
+-#~ "以 root ä¾†åŸ·è¡Œ shell script ä¸¦ç·¨è­¯/安è£å’Œé‡æ–°æ¨™è¨˜æª”案/目錄?\n"
+-#~ "使用 semanage æˆ–是 useradd ä¾†å°‡ Linux ç™»éŒ„用戶å°æ˜ è‡³ç”¨æˆ¶è§’色。\n"
+-#~ "將機器設置為寬鬆模å¼ï¼ˆsetenforce 0)。\n"
+-#~ "以該用戶登入並測試此用戶角色。\n"
+-#~ "使用 audit2allow -R ä¾†ç‚º te æª”案產生é¡å¤–çš„è¦å‰‡ã€‚\n"
+-
+-#~ msgid ""
+-#~ "This user can login to a machine via X or terminal.  By default this user "
+-#~ "will have no setuid, no networking, no sudo, no su"
+-#~ msgstr ""
+-#~ "此用戶å¯é€éŽ X æˆ–是終端機來登入一部機器。就é è¨­å€¼ä¾†è¬›ï¼Œæ­¤ç”¨æˆ¶å°‡ä¸æœƒæœ‰ "
+-#~ "setuidã€ç¶²è·¯ä½œæ¥­ã€sudo å’Œ su"
+-
+-#~ msgid ""
+-#~ "This user will login to a machine only via a terminal or remote login.  "
+-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
+-#~ msgstr ""
+-#~ "此用戶將åªå¯é€éŽçµ‚端機或是é ç«¯ç™»éŒ„來登入一部機器。就é è¨­å€¼ä¾†è¬›ï¼Œæ­¤ç”¨æˆ¶å°‡ä¸"
+-#~ "會有 setuidã€ç¶²è·¯ä½œæ¥­ã€su å’Œ sudo。"
+-
+-#~ msgid "Unreserved Ports (>1024)"
+-#~ msgstr "未ä¿ç•™çš„通訊埠(>1024)"
+-
+-#~ msgid "User Application"
+-#~ msgstr "用戶應用程å¼"
+-
+-#~ msgid ""
+-#~ "User Application are any application that you would like to confine that "
+-#~ "is started by a user"
+-#~ msgstr "用戶應用程å¼ç‚ºä»»ä½•æ‚¨æ‰€å¸Œæœ›é™åˆ¶ã€ç”±æŸå€‹ç”¨æˆ¶æ‰€å•Ÿç”¨çš„應用程å¼"
+-
+-#~ msgid "User Role"
+-#~ msgstr "用戶角色"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "su, can sudo to Root Administration Roles"
+-#~ msgstr ""
+-#~ "具有完整網路作業ã€æ²’有無轉移的 setuid æ‡‰ç”¨ç¨‹å¼ã€ç„¡ su,並且寠sudo è‡³ "
+-#~ "Root ç®¡ç†è§’色的用戶"
+-
+-#~ msgid ""
+-#~ "User with full networking, no setuid applications without transition, no "
+-#~ "sudo, no su."
+-#~ msgstr ""
+-#~ "具有完整網路作業ã€æ²’有無轉移的 setuid æ‡‰ç”¨ç¨‹å¼ã€ç„¡ sudo,並且無 su。"
+-
+-#~ msgid "Uses Pam for authentication"
+-#~ msgstr "使用 Pam ä¾†é€²è¡Œé©—è­‰"
+-
+-#~ msgid "Uses dbus"
+-#~ msgstr "使用 dbus"
+-
+-#~ msgid "Uses nsswitch or getpw* calls"
+-#~ msgstr "使用 nsswitch æˆ–是 getpw* èª¿ç”¨"
+-
+-#~ msgid "Web Application/Script (CGI)"
+-#~ msgstr "網站應用程å¼/Script(CGI)"
+-
+-#~ msgid ""
+-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
+-#~ "(apache)"
+-#~ msgstr "網站應用程å¼/Script(CGI)由網站伺æœå™¨ï¼ˆapache)所啟用的 CGI script"
+-
+-#~ msgid "Writes syslog messages\t"
+-#~ msgstr "寫入 syslog è¨Šæ¯\t"
+-
+-#~ msgid "Boolean"
+-#~ msgstr "布林值"
+-
+-#~ msgid ""
+-#~ "SELinux Port\n"
+-#~ "Type"
+-#~ msgstr ""
+-#~ "SELinux é€šè¨ŠåŸ \n"
+-#~ "é¡žåž‹"
+-
+-#~ msgid "Protocol"
+-#~ msgstr "通訊å”定"
+-
+-#~ msgid ""
+-#~ "MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "MLS/MCS\n"
+-#~ "等級"
++#: ../gui/system-config-selinux.glade:1327
++msgid "System Default Enforcing Mode"
++msgstr ""
+-#~ msgid "Port"
+-#~ msgstr "通訊埠"
++#: ../gui/system-config-selinux.glade:1355
++msgid ""
++"Disabled\n"
++"Permissive\n"
++"Enforcing\n"
++msgstr ""
+-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
+-#~ msgstr "通訊埠號「%sã€ç„¡æ•ˆã€‚0 < PORT_NUMBER < 65536 "
++#: ../gui/system-config-selinux.glade:1374
++msgid "Current Enforcing Mode"
++msgstr ""
+-#~ msgid "List View"
+-#~ msgstr "清單視點"
++#: ../gui/system-config-selinux.glade:1419
++msgid "System Default Policy Type: "
++msgstr ""
+-#~ msgid "Group View"
+-#~ msgstr "群組視點"
++#: ../gui/system-config-selinux.glade:1464
++msgid ""
++"Select if you wish to relabel then entire file system on next reboot.  "
++"Relabeling can take a very long time, depending on the size of the system.  "
++"If you are changing policy types or going from disabled to enforcing, a "
++"relabel is required."
++msgstr ""
+-#~ msgid "Add"
+-#~ msgstr "新增"
++#: ../gui/system-config-selinux.glade:1510
++msgid "Relabel on next reboot."
++msgstr ""
+-#~ msgid "Add File Context"
+-#~ msgstr "新增檔案 Context"
++#: ../gui/system-config-selinux.glade:1562
++msgid "label37"
++msgstr ""
+-#~ msgid "Add Network Port"
+-#~ msgstr "新增網路通訊埠"
++#: ../gui/system-config-selinux.glade:1599
++msgid "Revert boolean setting to system default"
++msgstr ""
+-#~ msgid "Add SELinux Login Mapping"
+-#~ msgstr "新增 SELinux ç™»éŒ„å°æ˜ "
++#: ../gui/system-config-selinux.glade:1615
++msgid "Toggle between Customized and All Booleans"
++msgstr ""
+-#~ msgid "Add SELinux Network Ports"
+-#~ msgstr "新增 SELinux ç¶²è·¯é€šè¨ŠåŸ "
++#: ../gui/system-config-selinux.glade:1633
++msgid "Run booleans lockdown wizard"
++msgstr ""
+-#~ msgid "Add SELinux User"
+-#~ msgstr "新增 SELinux ç”¨æˆ¶"
++#: ../gui/system-config-selinux.glade:1634
++msgid "Lockdown..."
++msgstr ""
+-#~ msgid "Add SELinux User Mapping"
+-#~ msgstr "新增 SELinux ç”¨æˆ¶å°æ˜ "
++#: ../gui/system-config-selinux.glade:1664
++#: ../gui/system-config-selinux.glade:1869
++#: ../gui/system-config-selinux.glade:2056
++#: ../gui/system-config-selinux.glade:2243
++#: ../gui/system-config-selinux.glade:2486
++#: ../gui/system-config-selinux.glade:2711
++#: ../gui/system-config-selinux.glade:2886
++msgid "Filter"
++msgstr ""
+-#~ msgid "Add Translation"
+-#~ msgstr "新增轉移s"
++#: ../gui/system-config-selinux.glade:1753
++msgid "label50"
++msgstr ""
+-#~ msgid "Current Enforcing Mode"
+-#~ msgstr "ç›®å‰çš„強制模å¼"
++#: ../gui/system-config-selinux.glade:1790
++msgid "Add File Context"
++msgstr ""
+-#~ msgid "Delete File Context"
+-#~ msgstr "刪除檔案 Context"
++#: ../gui/system-config-selinux.glade:1806
++msgid "Modify File Context"
++msgstr ""
+-#~ msgid "Delete Network Port"
+-#~ msgstr "刪除網路通訊埠"
++#: ../gui/system-config-selinux.glade:1822
++msgid "Delete File Context"
++msgstr ""
+-#~ msgid "Delete SELinux User Mapping"
+-#~ msgstr "刪除 SELinux ç”¨æˆ¶å°æ˜ "
++#: ../gui/system-config-selinux.glade:1838
++msgid "Toggle between all and customized file context"
++msgstr ""
+-#~ msgid "Delete Translation"
+-#~ msgstr "刪除轉移"
++#: ../gui/system-config-selinux.glade:1958
++msgid "label38"
++msgstr ""
+-#~ msgid ""
+-#~ "Disabled\n"
+-#~ "Permissive\n"
+-#~ "Enforcing\n"
+-#~ msgstr ""
+-#~ "åœç”¨\n"
+-#~ "寬鬆\n"
+-#~ "強制\n"
++#: ../gui/system-config-selinux.glade:1995
++msgid "Add SELinux User Mapping"
++msgstr ""
+-#~ msgid "Edit Network Port"
+-#~ msgstr "編輯網路通訊埠"
++#: ../gui/system-config-selinux.glade:2011
++msgid "Modify SELinux User Mapping"
++msgstr ""
+-#~ msgid ""
+-#~ "Enable/Disable additional audit rules, that are normally not reported in "
+-#~ "the log files."
+-#~ msgstr "啟用/åœç”¨é¡å¤–的稽核è¦å‰‡ï¼Œé€™äº›è¦å‰‡ä¸€èˆ¬ä¸æœƒå›žå ±æ–¼æ—¥èªŒæª”案中。"
++#: ../gui/system-config-selinux.glade:2027
++msgid "Delete SELinux User Mapping"
++msgstr ""
+-#~ msgid "File Specification"
+-#~ msgstr "檔案è¦æ ¼"
++#: ../gui/system-config-selinux.glade:2145
++msgid "label39"
++msgstr ""
+-#~ msgid "File Type"
+-#~ msgstr "檔案類型"
++#: ../gui/system-config-selinux.glade:2182
++msgid "Add User"
++msgstr ""
+-#~ msgid "Filter"
+-#~ msgstr "éŽæ¿¾å™¨"
++#: ../gui/system-config-selinux.glade:2198
++msgid "Modify User"
++msgstr ""
+-#~ msgid "Generate new policy module"
+-#~ msgstr "產生新的政策模組"
++#: ../gui/system-config-selinux.glade:2214
++msgid "Delete User"
++msgstr ""
+-#~ msgid "Load policy module"
+-#~ msgstr "載入政策模組"
++#: ../gui/system-config-selinux.glade:2332
++msgid "label41"
++msgstr ""
+-#~ msgid "Lockdown..."
+-#~ msgstr "鎖定..."
++#: ../gui/system-config-selinux.glade:2369
++msgid "Add Network Port"
++msgstr ""
+-#~ msgid "MLS"
+-#~ msgstr "MLS"
++#: ../gui/system-config-selinux.glade:2385
++msgid "Edit Network Port"
++msgstr ""
+-#~ msgid "Modify File Context"
+-#~ msgstr "修改檔案 Context"
++#: ../gui/system-config-selinux.glade:2401
++msgid "Delete Network Port"
++msgstr ""
+-#~ msgid "Modify SELinux User"
+-#~ msgstr "修改 SELinux ç”¨æˆ¶"
++#: ../gui/system-config-selinux.glade:2437
++#: ../gui/system-config-selinux.glade:2455
++msgid "Toggle between Customized and All Ports"
++msgstr ""
+-#~ msgid "Modify SELinux User Mapping"
+-#~ msgstr "修改 SELinux ç”¨æˆ¶å°æ˜ "
++#: ../gui/system-config-selinux.glade:2575
++msgid "label42"
++msgstr ""
+-#~ msgid "Modify Translation"
+-#~ msgstr "修改轉移"
++#: ../gui/system-config-selinux.glade:2612
++msgid "Generate new policy module"
++msgstr ""
+-#~ msgid "Relabel on next reboot."
+-#~ msgstr "下次開機時é‡æ–°æ¨™è¨˜ã€‚"
++#: ../gui/system-config-selinux.glade:2628
++msgid "Load policy module"
++msgstr ""
+-#~ msgid "Remove loadable policy module"
+-#~ msgstr "移除å¯è¼‰å…¥çš„政策模組"
++#: ../gui/system-config-selinux.glade:2644
++msgid "Remove loadable policy module"
++msgstr ""
+-#~ msgid "Revert boolean setting to system default"
+-#~ msgstr "將布林值設定æ¢å¾©æˆç³»çµ±é è¨­å€¼"
++#: ../gui/system-config-selinux.glade:2680
++msgid ""
++"Enable/Disable additional audit rules, that are normally not reported in the "
++"log files."
++msgstr ""
+-#~ msgid "Run booleans lockdown wizard"
+-#~ msgstr "執行布林值鎖定精éˆ"
++#: ../gui/system-config-selinux.glade:2800
++msgid "label44"
++msgstr ""
+-#~ msgid "SELinux Administration"
+-#~ msgstr "SELinux ç®¡ç†"
++#: ../gui/system-config-selinux.glade:2837
++msgid "Change process mode to permissive."
++msgstr ""
+-#~ msgid ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "Level"
+-#~ msgstr ""
+-#~ "SELinux MLS/MCS\n"
+-#~ "等級"
++#: ../gui/system-config-selinux.glade:2855
++msgid "Change process mode to enforcing"
++msgstr ""
+-#~ msgid "SELinux Type"
+-#~ msgstr "SELinux é¡žåž‹"
++#: ../gui/system-config-selinux.glade:2947
++msgid "Process Domain"
++msgstr ""
+-#~ msgid ""
+-#~ "Select if you wish to relabel then entire file system on next reboot.  "
+-#~ "Relabeling can take a very long time, depending on the size of the "
+-#~ "system.  If you are changing policy types or going from disabled to "
+-#~ "enforcing, a relabel is required."
+-#~ msgstr ""
+-#~ "é¸æ“‡æ‚¨æ˜¯å¦å¸Œæœ›åœ¨ä¸‹æ¬¡é–‹æ©Ÿæ™‚é‡æ–°æ¨™è¨˜æ•´å€‹æª”案系統。根據系統大å°ï¼Œé‡æ–°æ¨™è¨˜å¯èƒ½"
+-#~ "會花上一段很長時間。若您è¦æ›´æ”¹æ”¿ç­–類型或是è¦ç”±åœç”¨ç‹€æ…‹æ›´æ”¹ç‚ºå¼·åˆ¶æ¨¡å¼ï¼Œé‡æ–°"
+-#~ "標記將是必è¦çš„。"
++#: ../gui/system-config-selinux.glade:2975
++msgid "label59"
++msgstr ""
+-#~ msgid "System Default Enforcing Mode"
+-#~ msgstr "系統é è¨­å¼·åˆ¶æ¨¡å¼"
+-
+-#~ msgid "System Default Policy Type: "
+-#~ msgstr "系統é è¨­æ”¿ç­–類型:"
+-
+-#~ msgid "Toggle between Customized and All Booleans"
+-#~ msgstr "在自訂化以åŠæ‰€æœ‰å¸ƒæž—值之間進行啟用"
+-
+-#~ msgid "Toggle between Customized and All Ports"
+-#~ msgstr "在自訂化以åŠæ‰€æœ‰é€šè¨ŠåŸ ä¹‹é–“進行啟用"
+-
+-#~ msgid "Toggle between all and customized file context"
+-#~ msgstr "在自訂化以åŠæ‰€æœ‰æª”案 context ä¹‹é–“進行啟用"
+-
+-#~ msgid "_Delete"
+-#~ msgstr "刪除(_D)"
+-
+-#~ msgid "_Properties"
+-#~ msgstr "屬性(_P)"
+-
+-#~ msgid ""
+-#~ "all files\n"
+-#~ "regular file\n"
+-#~ "directory\n"
+-#~ "character device\n"
+-#~ "block device\n"
+-#~ "socket\n"
+-#~ "symbolic link\n"
+-#~ "named pipe\n"
+-#~ msgstr ""
+-#~ "所有檔案\n"
+-#~ "æ­£è¦æª”案\n"
+-#~ "目錄\n"
+-#~ "å­—å…ƒè£ç½®\n"
+-#~ "å€å¡Šè£ç½®\n"
+-#~ "socket\n"
+-#~ "符號連çµ\n"
+-#~ "named ç®¡ç·š\n"
+-
+-#~ msgid ""
+-#~ "tcp\n"
+-#~ "udp"
+-#~ msgstr ""
+-#~ "tcp\n"
+-#~ "udp"
++#: ../gui/usersPage.py:138
++#, python-format
++msgid "SELinux user '%s' is required"
++msgstr ""
+diff --git a/policycoreutils/po/zu.po b/policycoreutils/po/zu.po
+deleted file mode 100644
+index afeaa9f..0000000
+--- a/policycoreutils/po/zu.po
++++ /dev/null
+@@ -1,1270 +0,0 @@
+-# SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+-# This file is distributed under the same license as the PACKAGE package.
+-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+-#
+-#, fuzzy
+-msgid ""
+-msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-03-27 10:49-0400\n"
+-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+-"Language-Team: LANGUAGE <LL@li.org>\n"
+-"Language: \n"
+-"MIME-Version: 1.0\n"
+-"Content-Type: text/plain; charset=UTF-8\n"
+-"Content-Transfer-Encoding: 8bit\n"
+-
+-#: ../run_init/run_init.c:67
+-msgid ""
+-"USAGE: run_init <script> <args ...>\n"
+-"  where: <script> is the name of the init script to run,\n"
+-"         <args ...> are the arguments to that script."
+-msgstr ""
+-
+-#: ../run_init/run_init.c:126 ../newrole/newrole.c:1124
+-#, c-format
+-msgid "failed to initialize PAM\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:139
+-#, c-format
+-msgid "failed to get account information\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:162 ../newrole/newrole.c:341
+-msgid "Password:"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:197 ../newrole/newrole.c:366
+-#, c-format
+-msgid "Cannot find your entry in the shadow passwd file.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:203 ../newrole/newrole.c:373
+-#, c-format
+-msgid "getpass cannot open /dev/tty\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:275
+-#, c-format
+-msgid "run_init: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:309
+-#, c-format
+-msgid "Could not open file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:336
+-#, c-format
+-msgid "No context in file %s\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:361
+-#, c-format
+-msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:380
+-#, c-format
+-msgid "authentication failed.\n"
+-msgstr ""
+-
+-#: ../run_init/run_init.c:405 ../newrole/newrole.c:1258
+-#, c-format
+-msgid "Could not set exec context to %s.\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:230
+-msgid "******************** IMPORTANT ***********************\n"
+-msgstr ""
+-
+-#: ../audit2allow/audit2allow:231
+-msgid "To make this policy package active, execute:"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:143 ../semanage/seobject.py:147
+-msgid "global"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:222
+-msgid "Could not create semanage handle"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:230
+-msgid "SELinux policy is not managed or store cannot be accessed."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:235
+-msgid "Cannot read policy store."
+-msgstr ""
+-
+-#: ../semanage/seobject.py:240
+-msgid "Could not establish semanage connection"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:245
+-msgid "Could not test MLS enabled status"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:251 ../semanage/seobject.py:266
+-msgid "Not yet implemented"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:255
+-msgid "Semanage transaction already in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:264
+-msgid "Could not start semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:274
+-msgid "Could not commit semanage transaction"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:279
+-msgid "Semanage transaction not in progress"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:291 ../semanage/seobject.py:371
+-msgid "Could not list SELinux modules"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Modules Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:304
+-msgid "Version"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:307
+-msgid "Disabled"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:322
+-#, python-format
+-msgid "Could not disable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:333
+-#, python-format
+-msgid "Could not enable module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:348
+-#, python-format
+-msgid "Could not remove module %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:358
+-msgid "dontaudit requires either 'on' or 'off'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:387
+-msgid "Builtin Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:397
+-msgid "Customized Permissive Types"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:438
+-#, python-format
+-msgid "Could not set permissive domain %s (module installation failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:444
+-#, python-format
+-msgid "Could not remove permissive domain %s (remove failed)"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:479 ../semanage/seobject.py:553
+-#: ../semanage/seobject.py:599 ../semanage/seobject.py:696
+-#: ../semanage/seobject.py:726 ../semanage/seobject.py:793
+-#: ../semanage/seobject.py:850 ../semanage/seobject.py:1097
+-#: ../semanage/seobject.py:1786 ../semanage/seobject.py:1849
+-#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1985
+-#: ../semanage/seobject.py:2037
+-#, python-format
+-msgid "Could not create a key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:483 ../semanage/seobject.py:557
+-#: ../semanage/seobject.py:603 ../semanage/seobject.py:609
+-#, python-format
+-msgid "Could not check if login mapping for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:492
+-#, python-format
+-msgid "Linux Group %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:497
+-#, python-format
+-msgid "Linux User %s does not exist"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:501
+-#, python-format
+-msgid "Could not create login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:505 ../semanage/seobject.py:741
+-#, python-format
+-msgid "Could not set name for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:510 ../semanage/seobject.py:751
+-#, python-format
+-msgid "Could not set MLS range for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:514
+-#, python-format
+-msgid "Could not set SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:518
+-#, python-format
+-msgid "Could not add login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:536
+-msgid "Requires seuser or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:559 ../semanage/seobject.py:605
+-#, python-format
+-msgid "Login mapping for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:563
+-#, python-format
+-msgid "Could not query seuser for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:577
+-#, python-format
+-msgid "Could not modify login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:611
+-#, python-format
+-msgid "Login mapping for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:615
+-#, python-format
+-msgid "Could not delete login mapping for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:637 ../semanage/seobject.py:655
+-#: ../semanage/seobject.py:893
+-msgid "Could not list login mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-msgid "Login Name"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680 ../semanage/seobject.py:685
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux User"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:680
+-msgid "MLS/MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:699 ../semanage/seobject.py:730
+-#: ../semanage/seobject.py:797 ../semanage/seobject.py:854
+-#: ../semanage/seobject.py:860
+-#, python-format
+-msgid "Could not check if SELinux user %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:702 ../semanage/seobject.py:803
+-#: ../semanage/seobject.py:866
+-#, python-format
+-msgid "Could not query user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:722
+-#, python-format
+-msgid "You must add at least one role for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:737
+-#, python-format
+-msgid "Could not create SELinux user for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:746
+-#, python-format
+-msgid "Could not add role %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:755
+-#, python-format
+-msgid "Could not set MLS level for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:758
+-#, python-format
+-msgid "Could not add prefix %s for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:761
+-#, python-format
+-msgid "Could not extract key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:765
+-#, python-format
+-msgid "Could not add SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:787
+-msgid "Requires prefix, roles, level or range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:789
+-msgid "Requires prefix or roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:799 ../semanage/seobject.py:856
+-#, python-format
+-msgid "SELinux user %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:828
+-#, python-format
+-msgid "Could not modify SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:862
+-#, python-format
+-msgid "SELinux user %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:873
+-#, python-format
+-msgid "Could not delete SELinux user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:911
+-msgid "Could not list SELinux users"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:917
+-#, python-format
+-msgid "Could not list roles for user %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "Labeling"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:942
+-msgid "MLS/"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "Prefix"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Level"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943
+-msgid "MCS Range"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:943 ../semanage/seobject.py:948
+-msgid "SELinux Roles"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:963
+-msgid "Protocol udp or tcp is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:965
+-msgid "Port is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:975
+-msgid "Invalid Port"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:979
+-#, python-format
+-msgid "Could not create a key for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:990
+-msgid "Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:996 ../semanage/seobject.py:1055
+-#: ../semanage/seobject.py:1110 ../semanage/seobject.py:1116
+-#, python-format
+-msgid "Could not check if port %s/%s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:998
+-#, python-format
+-msgid "Port %s/%s already defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1002
+-#, python-format
+-msgid "Could not create port for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1008
+-#, python-format
+-msgid "Could not create context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1012
+-#, python-format
+-msgid "Could not set user in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1016
+-#, python-format
+-msgid "Could not set role in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1020
+-#, python-format
+-msgid "Could not set type in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1025
+-#, python-format
+-msgid "Could not set mls fields in port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1029
+-#, python-format
+-msgid "Could not set port context for %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1033
+-#, python-format
+-msgid "Could not add port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1047 ../semanage/seobject.py:1312
+-#: ../semanage/seobject.py:1508
+-msgid "Requires setype or serange"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1049
+-msgid "Requires setype"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1057 ../semanage/seobject.py:1112
+-#, python-format
+-msgid "Port %s/%s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1061
+-#, python-format
+-msgid "Could not query port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1072
+-#, python-format
+-msgid "Could not modify port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1085
+-msgid "Could not list the ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1101
+-#, python-format
+-msgid "Could not delete the port %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1118
+-#, python-format
+-msgid "Port %s/%s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1122
+-#, python-format
+-msgid "Could not delete port %s/%s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1138 ../semanage/seobject.py:1160
+-msgid "Could not list ports"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "SELinux Port Type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Proto"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1199
+-msgid "Port Number"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1218
+-msgid "Node Address is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1233
+-msgid "Unknown or missing protocol"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1247 ../semanage/seobject.py:1446
+-#: ../semanage/seobject.py:1724
+-msgid "SELinux Type is required"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1251 ../semanage/seobject.py:1316
+-#: ../semanage/seobject.py:1352 ../semanage/seobject.py:1450
+-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1546
+-#: ../semanage/seobject.py:1728
+-#, python-format
+-msgid "Could not create key for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1253 ../semanage/seobject.py:1320
+-#: ../semanage/seobject.py:1356 ../semanage/seobject.py:1362
+-#, python-format
+-msgid "Could not check if addr %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1262
+-#, python-format
+-msgid "Could not create addr for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1268 ../semanage/seobject.py:1466
+-#: ../semanage/seobject.py:1686
+-#, python-format
+-msgid "Could not create context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1272
+-#, python-format
+-msgid "Could not set mask for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1276
+-#, python-format
+-msgid "Could not set user in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1280
+-#, python-format
+-msgid "Could not set role in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1284
+-#, python-format
+-msgid "Could not set type in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1289
+-#, python-format
+-msgid "Could not set mls fields in addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1293
+-#, python-format
+-msgid "Could not set addr context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1297
+-#, python-format
+-msgid "Could not add addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1322 ../semanage/seobject.py:1358
+-#, python-format
+-msgid "Addr %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1326
+-#, python-format
+-msgid "Could not query addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1336
+-#, python-format
+-msgid "Could not modify addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1364
+-#, python-format
+-msgid "Addr %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1368
+-#, python-format
+-msgid "Could not delete addr %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1380
+-msgid "Could not deleteall node mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1394
+-msgid "Could not list addrs"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1454 ../semanage/seobject.py:1516
+-#: ../semanage/seobject.py:1550 ../semanage/seobject.py:1556
+-#, python-format
+-msgid "Could not check if interface %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1461
+-#, python-format
+-msgid "Could not create interface for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1470
+-#, python-format
+-msgid "Could not set user in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1474
+-#, python-format
+-msgid "Could not set role in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1478
+-#, python-format
+-msgid "Could not set type in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1483
+-#, python-format
+-msgid "Could not set mls fields in interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1487
+-#, python-format
+-msgid "Could not set interface context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1491
+-#, python-format
+-msgid "Could not set message context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1495
+-#, python-format
+-msgid "Could not add interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1518 ../semanage/seobject.py:1552
+-#, python-format
+-msgid "Interface %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1522
+-#, python-format
+-msgid "Could not query interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1533
+-#, python-format
+-msgid "Could not modify interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1558
+-#, python-format
+-msgid "Interface %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1562
+-#, python-format
+-msgid "Could not delete interface %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1574
+-msgid "Could not delete all interface  mappings"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1588
+-msgid "Could not list interfaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613
+-msgid "SELinux Interface"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1613 ../semanage/seobject.py:1936
+-msgid "Context"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1663
+-#, python-format
+-msgid "Equivalence class for %s already exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1669
+-#, python-format
+-msgid "File spec %s conflicts with equivalency rule '%s %s'"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1678
+-#, python-format
+-msgid "Equivalence class for %s does not exists"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1692
+-#, python-format
+-msgid "Could not set user in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1696
+-#, python-format
+-msgid "Could not set role in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1701 ../semanage/seobject.py:1758
+-#, python-format
+-msgid "Could not set mls fields in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1707
+-msgid "Invalid file specification"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1709
+-msgid "File specification can not include spaces"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1714
+-#, python-format
+-msgid ""
+-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1732 ../semanage/seobject.py:1737
+-#: ../semanage/seobject.py:1790 ../semanage/seobject.py:1872
+-#: ../semanage/seobject.py:1876
+-#, python-format
+-msgid "Could not check if file context for %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1745
+-#, python-format
+-msgid "Could not create file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1753
+-#, python-format
+-msgid "Could not set type in file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1761 ../semanage/seobject.py:1818
+-#: ../semanage/seobject.py:1822
+-#, python-format
+-msgid "Could not set file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1767
+-#, python-format
+-msgid "Could not add file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1781
+-msgid "Requires setype, serange or seuser"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1794 ../semanage/seobject.py:1880
+-#, python-format
+-msgid "File context for %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1800
+-#, python-format
+-msgid "Could not query file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1826
+-#, python-format
+-msgid "Could not modify file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1839
+-msgid "Could not list the file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1853
+-#, python-format
+-msgid "Could not delete the file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1878
+-#, python-format
+-msgid "File context for %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1884
+-#, python-format
+-msgid "Could not delete file context for %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1899
+-msgid "Could not list file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1903
+-msgid "Could not list local file contexts"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "SELinux fcontext"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1936
+-msgid "type"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1949
+-msgid ""
+-"\n"
+-"SELinux Distribution fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1954
+-msgid ""
+-"\n"
+-"SELinux Local fcontext Equivalence \n"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1988 ../semanage/seobject.py:2040
+-#: ../semanage/seobject.py:2046
+-#, python-format
+-msgid "Could not check if boolean %s is defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1990 ../semanage/seobject.py:2042
+-#, python-format
+-msgid "Boolean %s is not defined"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1994
+-#, python-format
+-msgid "Could not query file context %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:1999
+-#, python-format
+-msgid "You must specify one of the following values: %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2004
+-#, python-format
+-msgid "Could not set active value of boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2007
+-#, python-format
+-msgid "Could not modify boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2025
+-#, python-format
+-msgid "Bad format %s: Record %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2048
+-#, python-format
+-msgid "Boolean %s is defined in policy, cannot be deleted"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2052
+-#, python-format
+-msgid "Could not delete boolean %s"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2064 ../semanage/seobject.py:2081
+-msgid "Could not list booleans"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2104
+-msgid "unknown"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "off"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2117
+-msgid "on"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "SELinux boolean"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "State"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Default"
+-msgstr ""
+-
+-#: ../semanage/seobject.py:2131
+-msgid "Description"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:201
+-#, c-format
+-msgid "failed to set PAM_TTY\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:290
+-#, c-format
+-msgid "newrole: service name configuration hashtable overflow\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:300
+-#, c-format
+-msgid "newrole:  %s:  error on line %lu.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:439
+-#, c-format
+-msgid "cannot find valid entry in the passwd file.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:450
+-#, c-format
+-msgid "Out of memory!\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:455
+-#, c-format
+-msgid "Error!  Shell is not valid.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:512
+-#, c-format
+-msgid "Unable to clear environment\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:556 ../newrole/newrole.c:587 ../newrole/newrole.c:617
+-#, c-format
+-msgid "Error changing uid, aborting.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:612
+-#, c-format
+-msgid "Error resetting KEEPCAPS, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:635
+-#, c-format
+-msgid "Error connecting to audit system.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:641
+-#, c-format
+-msgid "Error allocating memory.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:648
+-#, c-format
+-msgid "Error sending audit message.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:692 ../newrole/newrole.c:1059
+-#, c-format
+-msgid "Could not determine enforcing mode.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:699
+-#, c-format
+-msgid "Error!  Could not open %s.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:705
+-#, c-format
+-msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:715
+-#, c-format
+-msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:725
+-#, c-format
+-msgid "%s!  Could not set new context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:772
+-#, c-format
+-msgid "%s changed labels.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:778
+-#, c-format
+-msgid "Warning! Could not restore context for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:835
+-#, c-format
+-msgid "Error: multiple roles specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:843
+-#, c-format
+-msgid "Error: multiple types specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:850
+-#, c-format
+-msgid "Sorry, -l may be used with SELinux MLS support.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:855
+-#, c-format
+-msgid "Error: multiple levels specified\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:865
+-#, c-format
+-msgid "Error: you are not allowed to change levels on a non secure terminal \n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:891
+-#, c-format
+-msgid "Couldn't get default type.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:901
+-#, c-format
+-msgid "failed to get new context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:908
+-#, c-format
+-msgid "failed to set new role %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:915
+-#, c-format
+-msgid "failed to set new type %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:925
+-#, c-format
+-msgid "failed to build new range with level %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:930
+-#, c-format
+-msgid "failed to set new range %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:938
+-#, c-format
+-msgid "failed to convert new context to string\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:943
+-#, c-format
+-msgid "%s is not a valid context\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:950
+-#, c-format
+-msgid "Unable to allocate memory for new_context"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:976
+-#, c-format
+-msgid "Unable to obtain empty signal set\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:984
+-#, c-format
+-msgid "Unable to set SIGHUP handler\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1053
+-#, c-format
+-msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1070
+-#, c-format
+-msgid "failed to get old_context.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1077
+-#, c-format
+-msgid "Warning!  Could not retrieve tty information.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1098
+-#, c-format
+-msgid "error on reading PAM service configuration.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1133
+-#, c-format
+-msgid "newrole: incorrect password for %s\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1160
+-#, c-format
+-msgid "newrole: failure forking: %s"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1163 ../newrole/newrole.c:1186
+-#, c-format
+-msgid "Unable to restore tty label...\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1165 ../newrole/newrole.c:1192
+-#, c-format
+-msgid "Failed to close tty properly\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1224
+-#, c-format
+-msgid "Could not close descriptors.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1251
+-#, c-format
+-msgid "Error allocating shell's argv0.\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1287
+-#, c-format
+-msgid "Unable to restore the environment, aborting\n"
+-msgstr ""
+-
+-#: ../newrole/newrole.c:1298
+-msgid "failed to exec shell\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:22
+-#, c-format
+-msgid "usage:  %s [-qi]\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:71
+-#, c-format
+-msgid "%s:  Policy is already loaded and initial load requested\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:80
+-#, c-format
+-msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
+-msgstr ""
+-
+-#: ../load_policy/load_policy.c:90
+-#, c-format
+-msgid "%s:  Can't load policy:  %s\n"
+-msgstr ""
+-
+-#: ../scripts/chcat:92 ../scripts/chcat:169
+-msgid "Requires at least one category"
+-msgstr ""
+-
+-#: ../scripts/chcat:106 ../scripts/chcat:183
+-#, c-format
+-msgid "Can not modify sensitivity levels using '+' on %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:110
+-#, c-format
+-msgid "%s is already in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:188 ../scripts/chcat:198
+-#, c-format
+-msgid "%s is not in %s"
+-msgstr ""
+-
+-#: ../scripts/chcat:267 ../scripts/chcat:272
+-msgid "Can not combine +/- with other types of categories"
+-msgstr ""
+-
+-#: ../scripts/chcat:319
+-msgid "Can not have multiple sensitivities"
+-msgstr ""
+-
+-#: ../scripts/chcat:325
+-#, c-format
+-msgid "Usage %s CATEGORY File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:326
+-#, c-format
+-msgid "Usage %s -l CATEGORY user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:327
+-#, c-format
+-msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:328
+-#, c-format
+-msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:329
+-#, c-format
+-msgid "Usage %s -d File ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:330
+-#, c-format
+-msgid "Usage %s -l -d user ..."
+-msgstr ""
+-
+-#: ../scripts/chcat:331
+-#, c-format
+-msgid "Usage %s -L"
+-msgstr ""
+-
+-#: ../scripts/chcat:332
+-#, c-format
+-msgid "Usage %s -L -l user"
+-msgstr ""
+-
+-#: ../scripts/chcat:333
+-msgid "Use -- to end option list.  For example"
+-msgstr ""
+-
+-#: ../scripts/chcat:334
+-msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
+-msgstr ""
+-
+-#: ../scripts/chcat:335
+-msgid "chcat -l +CompanyConfidential juser"
+-msgstr ""
+-
+-#: ../scripts/chcat:399
+-#, c-format
+-msgid "Options Error %s "
+-msgstr ""
+diff --git a/policycoreutils/restorecond/restorecond.8 b/policycoreutils/restorecond/restorecond.8
+index 4622d2b..bf8ec87 100644
+--- a/policycoreutils/restorecond/restorecond.8
++++ b/policycoreutils/restorecond/restorecond.8
+@@ -3,7 +3,7 @@
+ restorecond \- daemon that watches for file creation and then sets the default SELinux file context
+ .SH "SYNOPSIS"
+-.B restorecond  [\-d] [\-f restorecond_file ] [\-u] [\-v]
++.B restorecond  [\-d] [-h] [\-f restorecond_file ] [\-u] [\-v]
+ .P
+ .SH "DESCRIPTION"
+@@ -20,6 +20,9 @@ the correct file context associated with the policy.
+ Turns on debugging mode.   Application will stay in the foreground and lots of
+ debugs messages start printing.
+ .TP
++. B \-h
++Print usage statement.
++.TP
+ .B \-f restorecond_file
+ Use alternative restorecond.conf file.
+ .TP
+diff --git a/policycoreutils/restorecond/restorecond.c b/policycoreutils/restorecond/restorecond.c
+index 89f5d97..1762850 100644
+--- a/policycoreutils/restorecond/restorecond.c
++++ b/policycoreutils/restorecond/restorecond.c
+@@ -121,7 +121,6 @@ static void term_handler()
+ static void usage(char *program)
+ {
+       printf("%s [-d] [-f restorecond_file ] [-u] [-v] \n", program);
+-      exit(0);
+ }
+ void exitApp(const char *msg)
+@@ -140,6 +139,7 @@ int main(int argc, char **argv)
+ {
+       int opt;
+       struct sigaction sa;
++      const char *null_array[1] = { NULL };
+       memset(&r_opts, 0, sizeof(r_opts));
+@@ -160,6 +160,7 @@ int main(int argc, char **argv)
+       r_opts.fts_flags = FTS_PHYSICAL;
+       r_opts.selabel_opt_validate = NULL;
+       r_opts.selabel_opt_path = NULL;
++      r_opts.selabel_opt_prefixes = null_array;
+       r_opts.ignore_enoent = 1;
+       restore_init(&r_opts);
+@@ -176,7 +177,7 @@ int main(int argc, char **argv)
+       exclude_non_seclabel_mounts();
+       atexit( done );
+-      while ((opt = getopt(argc, argv, "df:uv")) > 0) {
++      while ((opt = getopt(argc, argv, "hdf:uv")) > 0) {
+               switch (opt) {
+               case 'd':
+                       debug_mode = 1;
+@@ -187,11 +188,16 @@ int main(int argc, char **argv)
+               case 'u':
+                       run_as_user = 1;
+                       break;
++              case 'h':
++                      usage(argv[0]);
++                      exit(0);
++                      break;
+               case 'v':
+                       r_opts.verbose++;
+                       break;
+               case '?':
+                       usage(argv[0]);
++                      exit(-1);
+               }
+       }
+diff --git a/policycoreutils/restorecond/restorecond.desktop b/policycoreutils/restorecond/restorecond.desktop
+index 23ff89d..89201e1 100644
+--- a/policycoreutils/restorecond/restorecond.desktop
++++ b/policycoreutils/restorecond/restorecond.desktop
+@@ -5,3 +5,4 @@ Comment=Fix file context in owned by the user
+ Encoding=UTF-8
+ Type=Application
+ StartupNotify=false
++X-GNOME-Autostart-enabled=false
+diff --git a/policycoreutils/restorecond/user.c b/policycoreutils/restorecond/user.c
+index f6efc85..8bae001 100644
+--- a/policycoreutils/restorecond/user.c
++++ b/policycoreutils/restorecond/user.c
+@@ -214,8 +214,11 @@ static int local_server() {
+       if (flock(fd, LOCK_EX | LOCK_NB) < 0) {
+               if (debug_mode)
+                       perror("flock");
++              close(fd);
+               return -1;
+       }
++      close(fd);
++
+       /* watch for stdin/terminal going away */
+       GIOChannel *in = g_io_channel_unix_new(0);
+       g_io_add_watch_full( in,
+diff --git a/policycoreutils/run_init/run_init.c b/policycoreutils/run_init/run_init.c
+index 9db766c..92034be 100644
+--- a/policycoreutils/run_init/run_init.c
++++ b/policycoreutils/run_init/run_init.c
+@@ -406,6 +406,13 @@ int main(int argc, char *argv[])
+                       new_context);
+               exit(-1);
+       }
++      if (! access("/usr/sbin/open_init_pty", X_OK)) {
++              if (execvp(argv[1], argv + 1)) {
++                      perror("execvp");
++                      exit(-1);
++              }
++              return 0;
++      }
+       /*
+        * Do not execvp the command directly from run_init; since it would run
+        * under with a pty under sysadm_devpts_t. Instead, we call open_init_tty,
+diff --git a/policycoreutils/sandbox/sandbox.8 b/policycoreutils/sandbox/sandbox.8
+index 3f05c79..00d9b37 100644
+--- a/policycoreutils/sandbox/sandbox.8
++++ b/policycoreutils/sandbox/sandbox.8
+@@ -41,6 +41,19 @@ Create a Sandbox with temporary files for $HOME and /tmp.
+ .TP
+ \fB\-t type\fR
+ Use alternate sandbox type, defaults to sandbox_t or sandbox_x_t for -X.
++
++\fBExamples:\fR
++.br
++sandbox_t     -       No X, No Network Access, No Open, read/write on passed in file descriptors.
++.br
++sandbox_min_t -       No Network Access
++.br
++sandbox_x_t   -       Printer Ports
++.br
++sandbox_web_t -       Ports required for web browsing
++.br
++sandbox_net_t -       All network ports
++
+ .TP
+ \fB\-T\ tmpdir
+ Use alternate tempory directory to mount on /tmp.  Defaults to tmpfs. Requires -X or -M.
+diff --git a/policycoreutils/scripts/fixfiles b/policycoreutils/scripts/fixfiles
+index 9f6a949..779a6a1 100755
+--- a/policycoreutils/scripts/fixfiles
++++ b/policycoreutils/scripts/fixfiles
+@@ -121,7 +121,6 @@ LOGFILE=`tty`
+ if [ $? != 0 ]; then
+     LOGFILE="/dev/null"
+ fi
+-SYSLOGFLAG="-l"
+ LOGGER=/usr/sbin/logger
+ SETFILES=/sbin/setfiles
+ RESTORECON=/sbin/restorecon
+@@ -236,7 +235,7 @@ FC=$TEMPFCFILE
+ fi
+ if [  -n "${FILESYSTEMSRW}" ]; then
+     echo "Relabeling `echo ${FILESYSTEMSRW}`"
+-    ${SETFILES} -q ${SYSLOGFLAG} ${FORCEFLAG} $* ${FC} ${FILESYSTEMSRW} 2>&1 | cat >> $LOGFILE
++    ${SETFILES} -q ${FORCEFLAG} $* ${FC} ${FILESYSTEMSRW} 2>&1 | cat >> $LOGFILE
+ else
+     echo >&2 "fixfiles: No suitable file systems found"
+ fi
+diff --git a/policycoreutils/scripts/genhomedircon b/policycoreutils/scripts/genhomedircon
+index ab696a7..58b19cd 100644
+--- a/policycoreutils/scripts/genhomedircon
++++ b/policycoreutils/scripts/genhomedircon
+@@ -1,2 +1,3 @@
+ #!/bin/sh
++
+ /usr/sbin/semodule -Bn
+diff --git a/policycoreutils/semanage/default_encoding/Makefile b/policycoreutils/semanage/default_encoding/Makefile
+new file mode 100644
+index 0000000..e15a877
+--- /dev/null
++++ b/policycoreutils/semanage/default_encoding/Makefile
+@@ -0,0 +1,8 @@
++all:
++      LDFLAGS="" python setup.py build
++
++install: all
++      LDFLAGS="" python setup.py install --root=$(DESTDIR)/
++
++clean:
++      rm -rf build *~
+diff --git a/policycoreutils/semanage/default_encoding/default_encoding.c b/policycoreutils/semanage/default_encoding/default_encoding.c
+new file mode 100644
+index 0000000..023b8f4
+--- /dev/null
++++ b/policycoreutils/semanage/default_encoding/default_encoding.c
+@@ -0,0 +1,57 @@
++/*
++ * Authors:
++ *   John Dennis <jdennis@redhat.com>
++ *
++ * Copyright (C) 2009  Red Hat
++ * see file 'COPYING' for use and warranty information
++ *
++ * 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.
++ *
++ * 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
++ */
++
++#include <Python.h>
++
++PyDoc_STRVAR(setdefaultencoding_doc,
++"setdefaultencoding(encoding='utf-8')\n\
++\n\
++Set the current default string encoding used by the Unicode implementation.\n\
++Defaults to utf-8."
++);
++
++static PyObject *
++setdefaultencoding(PyObject *self, PyObject *args, PyObject *kwds)
++{
++    static char *kwlist[] = {"utf-8", NULL};
++    char *encoding;
++
++    if (!PyArg_ParseTupleAndKeywords(args, kwds, "s:setdefaultencoding", kwlist, &encoding))
++        return NULL;
++
++    if (PyUnicode_SetDefaultEncoding(encoding))
++        return NULL;
++
++    Py_RETURN_NONE;
++}
++
++static PyMethodDef methods[] = {
++    {"setdefaultencoding", (PyCFunction)setdefaultencoding, METH_VARARGS|METH_KEYWORDS, setdefaultencoding_doc},
++      {NULL,          NULL}           /* sentinel */
++};
++
++
++PyMODINIT_FUNC
++initdefault_encoding_utf8(void)
++{
++    PyUnicode_SetDefaultEncoding("utf-8");
++    Py_InitModule3("default_encoding_utf8", methods, "Forces the default encoding to utf-8");
++}
+diff --git a/policycoreutils/semanage/default_encoding/policycoreutils/__init__.py b/policycoreutils/semanage/default_encoding/policycoreutils/__init__.py
+new file mode 100644
+index 0000000..ccb6b8b
+--- /dev/null
++++ b/policycoreutils/semanage/default_encoding/policycoreutils/__init__.py
+@@ -0,0 +1,17 @@
++#
++# Copyright (C) 2006,2007,2008, 2009 Red Hat, 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.
++#
+diff --git a/policycoreutils/semanage/default_encoding/setup.py b/policycoreutils/semanage/default_encoding/setup.py
+new file mode 100644
+index 0000000..e2befdb
+--- /dev/null
++++ b/policycoreutils/semanage/default_encoding/setup.py
+@@ -0,0 +1,38 @@
++# Authors:
++#   John Dennis <jdennis@redhat.com>
++#
++# Copyright (C) 2009  Red Hat
++# see file 'COPYING' for use and warranty information
++#
++# 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.
++#
++# 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
++
++from distutils.core import setup, Extension
++
++default_encoding_utf8 = Extension('policycoreutils.default_encoding_utf8', ['default_encoding.c'])
++
++setup(name             = 'policycoreutils-default-encoding',
++      version          = '0.1',
++      description      = 'Forces the default encoding in Python to be utf-8',
++      long_description = 'Forces the default encoding in Python to be utf-8',
++      author           = 'John Dennis',
++      author_email     = 'jdennis@redhat.com',
++      maintainer       = 'John Dennis',
++      maintainer_email = 'jdennis@redhat.com',
++      license          = 'GPLv3+',
++      platforms        = 'posix',
++      url              = '',
++      download_url     = '',
++      ext_modules      = [default_encoding_utf8],
++      packages=["policycoreutils"],
++)
+diff --git a/policycoreutils/semanage/semanage b/policycoreutils/semanage/semanage
+index 0c7c186..1986ab1 100644
+--- a/policycoreutils/semanage/semanage
++++ b/policycoreutils/semanage/semanage
+@@ -1,5 +1,5 @@
+ #! /usr/bin/python -Es
+-# Copyright (C) 2005, 2006, 2007 Red Hat 
++# Copyright (C) 2005-2012 Red Hat 
+ # see file 'COPYING' for use and warranty information
+ #
+ # semanage is a tool for managing SELinux configuration files
+@@ -20,6 +20,7 @@
+ #                                        02111-1307  USA
+ #
+ #  
++import policycoreutils.default_encoding_utf8
+ import sys, getopt, re
+ import seobject
+ import selinux
+@@ -32,7 +33,7 @@ gettext.textdomain(PROGNAME)
+ try:
+        gettext.install(PROGNAME,
+                        localedir="/usr/share/locale",
+-                       unicode=False,
++                       unicode=True,
+                        codeset = 'utf-8')
+ except IOError:
+        import __builtin__
+@@ -283,11 +284,9 @@ Object-specific Options (see above):
+                               equal = a
+                       if o == "--enable":
+-                              set_action(o)
+                               enable = True
+                       if o == "--disable":
+-                              set_action(o)
+                               disable = True
+                       if o == "-F"  or o == "--file":
+diff --git a/policycoreutils/semanage/semanage-bash-completion.sh b/policycoreutils/semanage/semanage-bash-completion.sh
+index ff1285a..edefd9a 100644
+--- a/policycoreutils/semanage/semanage-bash-completion.sh
++++ b/policycoreutils/semanage/semanage-bash-completion.sh
+@@ -61,7 +61,7 @@ __get_port_opts () { echo '$ALL_OPTS $MANAGED_OPTS -t -type -r --range -p --prot
+ __get_interface_opts () { echo '$ALL_OPTS $MANAGED_OPTS -t --type '; }
+ __get_node_opts () { echo '$ALL_OPTS $MANAGED_OPTS -t --type -M --mask -p --proto'; }
+ __get_fcontext_opts () { echo '$ALL_OPTS $MANAGED_OPTS -t --type -e --equal -f --ftype '; }
+-__get_module_opts () { echo '$ALL_OPTS --enable --disable '; }
++__get_module_opts () { echo '$ALL_OPTS $MANAGED_OPTS --enable --disable '; }
+ __get_dontaudit_opts () { echo '-S on off' ; }
+ __get_permissive_opts () { echo '$ALL_OPTS -a --add -d --delete' ; }
+diff --git a/policycoreutils/semanage/semanage.8 b/policycoreutils/semanage/semanage.8
+index c5e18d9..9e086d1 100644
+--- a/policycoreutils/semanage/semanage.8
++++ b/policycoreutils/semanage/semanage.8
+@@ -44,9 +44,13 @@ Manage network node type definitions
+ Manage file context mapping definitions
+ .br
+-.B semanage fcontext [\-S store] \-{a|d|m|l|D} [\-fnrst] file_spec
++.B semanage fcontext [\-S store] \-{l} [\-Cn]
+ .br
+-.B semanage fcontext [\-S store] \-{a|d|m|l|D} [\-n] \-e replacement target
++.B semanage fcontext [\-S store] \-D
++.br
++.B semanage fcontext [\-S store] \-{a|d|m} [\-frst] file_spec
++.br
++.B semanage fcontext [\-S store] \-{a|d|m} \-e replacement target
+ .br
+ Manage processes type enforcement mode
+@@ -128,7 +132,7 @@ List the OBJECTS
+ List only locally defined settings, not base policy settings.
+ .TP
+ .I                \-L, \-\-level
+-Default SELinux Level for SELinux use, s0 Default. (MLS/MCS Systems only)
++Default SELinux Level for SELinux user, s0 Default. (MLS/MCS Systems only)
+ .TP
+ .I                \-m, \-\-modify     
+ Modify a OBJECT record NAME
+@@ -144,6 +148,8 @@ Protocol for the specified port (tcp|udp) or internet protocol version for the s
+ .TP
+ .I                \-r, \-\-range      
+ MLS/MCS Security Range (MLS/MCS Systems only)
++SELinux Range for SELinux login mapping defaults to the SELinux user record range.
++SELinux Range for SELinux user defaults to s0.
+ .TP
+ .I                \-R, \-\-role
+ SELinux Roles.  You must enclose multiple roles within quotes, separate by spaces. Or specify \-R multiple times.
+diff --git a/policycoreutils/semanage/seobject.py b/policycoreutils/semanage/seobject.py
+index 9745102..28cf30e 100644
+--- a/policycoreutils/semanage/seobject.py
++++ b/policycoreutils/semanage/seobject.py
+@@ -30,11 +30,10 @@ from IPy import IP
+ import gettext
+ gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
+ gettext.textdomain(PROGNAME)
+-try:
+-       gettext.install(PROGNAME, localedir = "/usr/share/locale", unicode = 1)
+-except IOError:
+-       import __builtin__
+-       __builtin__.__dict__['_'] = unicode
++
++import gettext
++translation=gettext.translation(PROGNAME, localedir = "/usr/share/locale", fallback=True)
++_=translation.ugettext
+ import syslog
+@@ -483,7 +482,9 @@ class loginRecords(semanageRecords):
+               if rc < 0:
+                       raise ValueError(_("Could not check if login mapping for %s is defined") % name)
+               if exists:
+-                      raise ValueError(_("Login mapping for %s is already defined") % name)
++                       semanage_seuser_key_free(k)
++                       return self.__modify(name, sename, serange)
++
+                 if name[0] == '%':
+                        try:
+                               grp.getgrnam(name[1:])
+@@ -728,7 +729,8 @@ class seluserRecords(semanageRecords):
+                 if rc < 0:
+                        raise ValueError(_("Could not check if SELinux user %s is defined") % name)
+                 if exists:
+-                       raise ValueError(_("SELinux user %s is already defined") % name)
++                       semanage_user_key_free(k)
++                       return self.__modify(name, roles, selevel, serange, prefix)
+                 (rc, u) = semanage_user_create(self.sh)
+                 if rc < 0:
+@@ -1252,7 +1254,8 @@ class nodeRecords(semanageRecords):
+                (rc, exists) = semanage_node_exists(self.sh, k)
+                if exists:
+-                       raise ValueError(_("Addr %s already defined") % addr)
++                       semanage_node_key_free(k)
++                       return self.__modify(addr, mask, self.protocol[proto], serange, ctype)
+                (rc, node) = semanage_node_create(self.sh)
+                if rc < 0:
+@@ -1450,7 +1453,8 @@ class interfaceRecords(semanageRecords):
+               if rc < 0:
+                       raise ValueError(_("Could not check if interface %s is defined") % interface)
+               if exists:
+-                      raise ValueError(_("Interface %s already defined") % interface)
++                        semanage_iface_key_free(k)
++                        return self.__modify(interface, serange, ctype)
+               (rc, iface) = semanage_iface_create(self.sh)
+               if rc < 0:
+@@ -1733,7 +1737,8 @@ class fcontextRecords(semanageRecords):
+                               raise ValueError(_("Could not check if file context for %s is defined") % target)
+                 if exists:
+-                       raise ValueError(_("File context for %s already defined") % target)
++                       semanage_fcontext_key_free(k)
++                       return self.__modify(target, type, ftype, serange, seuser)
+               (rc, fcontext) = semanage_fcontext_create(self.sh)
+               if rc < 0:
+@@ -1920,6 +1925,10 @@ class fcontextRecords(semanageRecords):
+                for k in keys:
+                       if fcon_dict[k]:
+                              l.append("-a -f '%s' -t %s '%s'" % (k[1], fcon_dict[k][2], k[0]))
++
++             if len(self.equiv):
++                      for target in self.equiv.keys():
++                           l.append("-a -e %s %s" % (target, self.equiv[target]))
+                return l
+       def list(self, heading = 1, locallist = 0 ):
+diff --git a/policycoreutils/setfiles/restore.c b/policycoreutils/setfiles/restore.c
+index 9a7d315..1b59e2f 100644
+--- a/policycoreutils/setfiles/restore.c
++++ b/policycoreutils/setfiles/restore.c
+@@ -1,5 +1,6 @@
+ #include "restore.h"
+ #include <glob.h>
++#include <selinux/context.h>
+ #define SKIP -2
+ #define ERR -1
+@@ -33,7 +34,6 @@ struct edir {
+ static file_spec_t *fl_head;
+ static int filespec_add(ino_t ino, const security_context_t con, const char *file);
+-static int only_changed_user(const char *a, const char *b);
+ struct restore_opts *r_opts = NULL;
+ static void filespec_destroy(void);
+ static void filespec_eval(void);
+@@ -58,11 +58,16 @@ void remove_exclude(const char *directory)
+ void restore_init(struct restore_opts *opts)
+ {     
+       r_opts = opts;
+-      struct selinux_opt selinux_opts[] = {
+-              { SELABEL_OPT_VALIDATE, r_opts->selabel_opt_validate },
+-              { SELABEL_OPT_PATH, r_opts->selabel_opt_path }
+-      };
+-      r_opts->hnd = selabel_open(SELABEL_CTX_FILE, selinux_opts, 2);
++      struct selinux_opt selinux_opts[3];
++
++      selinux_opts[0].type = SELABEL_OPT_VALIDATE;
++      selinux_opts[0].value = r_opts->selabel_opt_validate;
++      selinux_opts[1].type = SELABEL_OPT_PATH;
++      selinux_opts[1].value = r_opts->selabel_opt_path;
++      selinux_opts[2].type = SELABEL_OPT_PREFIXES;
++      selinux_opts[2].values = r_opts->selabel_opt_prefixes;
++
++      r_opts->hnd = selabel_open(SELABEL_CTX_FILE, selinux_opts, 3);
+       if (!r_opts->hnd) {
+               perror(r_opts->selabel_opt_path);
+               exit(1);
+@@ -104,8 +109,7 @@ static int restore(FTSENT *ftsent)
+ {
+       char *my_file = strdupa(ftsent->fts_path);
+       int ret = -1;
+-      char *context, *newcon;
+-      int user_only_changed = 0;
++      security_context_t curcon = NULL, newcon = NULL;
+       if (match(my_file, ftsent->fts_statp, &newcon) < 0)
+               /* Check for no matching specification. */
+@@ -114,7 +118,12 @@ static int restore(FTSENT *ftsent)
+       if (r_opts->progress) {
+               r_opts->count++;
+               if (r_opts->count % STAR_COUNT == 0) {
+-                      fprintf(stdout, "*");
++                      if (r_opts->progress == 1) {
++                              fprintf(stdout, "*");
++                      } else {
++                              int progress = 100.0 * r_opts->count / r_opts->nfile;
++                              fprintf(stdout, "\r%d%%", progress);
++                      }
+                       fflush(stdout);
+               }
+       }
+@@ -139,74 +148,105 @@ static int restore(FTSENT *ftsent)
+               printf("%s:  %s matched by %s\n", r_opts->progname, my_file, newcon);
+       }
++      /*
++       * Do not relabel if their is no default specification for this file
++       */
++
++      if (strcmp(newcon, "<<none>>") == 0) {
++              goto out;
++      }
++
+       /* Get the current context of the file. */
+-      ret = lgetfilecon_raw(ftsent->fts_accpath, &context);
++      ret = lgetfilecon_raw(ftsent->fts_accpath, &curcon);
+       if (ret < 0) {
+               if (errno == ENODATA) {
+-                      context = NULL;
++                      curcon = NULL;
+               } else {
+                       fprintf(stderr, "%s get context on %s failed: '%s'\n",
+                               r_opts->progname, my_file, strerror(errno));
+                       goto err;
+               }
+-              user_only_changed = 0;
+-      } else
+-              user_only_changed = only_changed_user(context, newcon);
++      }
++
+       /* lgetfilecon returns number of characters and ret needs to be reset
+        * to 0.
+        */
+       ret = 0;
+       /*
+-       * Do not relabel the file if the matching specification is 
+-       * <<none>> or the file is already labeled according to the 
+-       * specification.
++       * Do not relabel the file if the file is already labeled according to
++       * the specification.
+        */
+-      if ((strcmp(newcon, "<<none>>") == 0) ||
+-          (context && (strcmp(context, newcon) == 0))) {
+-              freecon(context);
++      if (curcon && (strcmp(curcon, newcon) == 0)) {
+               goto out;
+       }
+-      if (!r_opts->force && context && (is_context_customizable(context) > 0)) {
++      if (!r_opts->force && curcon && (is_context_customizable(curcon) > 0)) {
+               if (r_opts->verbose > 1) {
+                       fprintf(stderr,
+                               "%s: %s not reset customized by admin to %s\n",
+-                              r_opts->progname, my_file, context);
++                              r_opts->progname, my_file, curcon);
+               }
+-              freecon(context);
+               goto out;
+       }
+-      if (r_opts->verbose) {
+-              /* If we're just doing "-v", trim out any relabels where
+-               * the user has r_opts->changed but the role and type are the
+-               * same.  For "-vv", emit everything. */
+-              if (r_opts->verbose > 1 || !user_only_changed) {
+-                      printf("%s reset %s context %s->%s\n",
+-                             r_opts->progname, my_file, context ?: "", newcon);
++      /*
++       *  Do not change label unless this is a force or the type is different
++       */
++      if (!r_opts->force && curcon) {
++              int types_differ = 0;
++              context_t cona;
++              context_t conb;
++              int err = 0;
++              cona = context_new(curcon);
++              if (! cona) {
++                      goto out;
++              }
++              conb = context_new(newcon);
++              if (! conb) {
++                      context_free(cona);
++                      goto out;
++              }
++
++              types_differ = strcmp(context_type_get(cona), context_type_get(conb));
++              if (types_differ) {
++                      err |= context_user_set(conb, context_user_get(cona));
++                      err |= context_role_set(conb, context_role_get(cona));
++                      err |= context_range_set(conb, context_range_get(cona));
++                      if (!err) {
++                              freecon(newcon);
++                              newcon = strdup(context_str(conb));
++                      }
++              }
++              context_free(cona);
++              context_free(conb);
++
++              if (!types_differ || err) {
++                      goto out;
+               }
+       }
+-      if (r_opts->logging && !user_only_changed) {
+-              if (context)
++      if (r_opts->verbose) {
++              printf("%s reset %s context %s->%s\n",
++                     r_opts->progname, my_file, curcon ?: "", newcon);
++      }
++
++      if (r_opts->logging && r_opts->change) {
++              if (curcon)
+                       syslog(LOG_INFO, "relabeling %s from %s to %s\n",
+-                             my_file, context, newcon);
++                             my_file, curcon, newcon);
+               else
+                       syslog(LOG_INFO, "labeling %s to %s\n",
+                              my_file, newcon);
+       }
+-      if (r_opts->outfile && !user_only_changed)
++      if (r_opts->outfile)
+               fprintf(r_opts->outfile, "%s\n", my_file);
+-      if (context)
+-              freecon(context);
+-
+       /*
+        * Do not relabel the file if -n was used.
+        */
+-      if (!r_opts->change || user_only_changed)
++      if (!r_opts->change)
+               goto out;
+       /*
+@@ -218,14 +258,17 @@ static int restore(FTSENT *ftsent)
+                       r_opts->progname, my_file, newcon, strerror(errno));
+               goto skip;
+       }
+-      ret = 1;
++      ret = 0;
+ out:
++      freecon(curcon);
+       freecon(newcon);
+       return ret;
+ skip:
++      freecon(curcon);
+       freecon(newcon);
+       return SKIP;
+ err:
++      freecon(curcon);
+       freecon(newcon);
+       return ERR;
+ }
+@@ -250,6 +293,44 @@ static int apply_spec(FTSENT *ftsent)
+       return rc;
+ }
++static unsigned round_up(unsigned x, unsigned m)
++{
++      return m * ((-1 + m + x) / m);
++}
++
++static unsigned int *bitmap_alloc(unsigned nbits)
++{
++      unsigned const w_bitmap = round_up(nbits, 8*sizeof(int)) /
++              (8*sizeof(int));
++      return calloc(w_bitmap, sizeof(int));
++}
++
++static void bitmap_free(unsigned int *bmap)
++{
++      free(bmap);
++}
++
++#define LG_BPW  ((4==sizeof(int)) \
++              ? 5 \
++              : ((8==sizeof(int)) \
++                ? 6 \
++                : 31 ))
++
++static unsigned int bitmap_test(unsigned int *const map, unsigned bit)
++{
++      return
++      map[bit>>LG_BPW] &  (1u<<((-1+ (8*sizeof(int))) & bit));
++}
++
++static unsigned int bitmap_set(unsigned int *const map, unsigned bit)
++{
++      unsigned int old = bitmap_test(map, bit);
++      map[bit>>LG_BPW] |= (1u<<((-1+ (8*sizeof(int))) & bit));
++      return old;
++}
++
++#include <sys/statvfs.h>
++
+ static int process_one(char *name, int recurse_this_path)
+ {
+       int rc = 0;
+@@ -284,6 +365,14 @@ static int process_one(char *name, int recurse_this_path)
+       /* Keep the inode of the first one. */
+       dev_num = ftsent->fts_statp->st_dev;
++      unsigned int *i_bitmap = 0;
++      struct statvfs statvfs_buf;
++      memset(&statvfs_buf, 0, sizeof(statvfs_buf));
++      if (!statvfs(name, &statvfs_buf)) {
++              r_opts->nfile = statvfs_buf.f_files - statvfs_buf.f_ffree;
++              i_bitmap = bitmap_alloc(statvfs_buf.f_files);
++      }
++
+       do {
+               rc = 0;
+               /* Skip the post order nodes. */
+@@ -299,6 +388,21 @@ static int process_one(char *name, int recurse_this_path)
+                               continue;
+                       }
+               }
++              /* FTS_SEEDOT is not set, so fts_read() ignores "." and "..".
++               * Thus the hardlinks for a directory should be ignored.
++               */
++              if (ftsent->fts_info != FTS_D
++              &&  1 < ftsent->fts_statp->st_nlink) {
++                      /* Adjust for hardlinks. */
++                      ino_t const inum = ftsent->fts_statp->st_ino;
++                      if (inum < statvfs_buf.f_files  /* paranoia? */
++                      &&  !bitmap_test(i_bitmap, inum)) {
++                              /* First time for this .st_ino */
++                              bitmap_set(i_bitmap, inum);
++                              r_opts->nfile += -1+
++                                      ftsent->fts_statp->st_nlink;
++                      }
++              }
+               rc = apply_spec(ftsent);
+               if (rc == SKIP)
+                       fts_set(fts_handle, ftsent, FTS_SKIP);
+@@ -314,6 +418,7 @@ out:
+                       filespec_eval();
+               filespec_destroy();
+       }
++      bitmap_free(i_bitmap);
+       if (fts_handle)
+               fts_close(fts_handle);
+       return rc;
+@@ -341,7 +446,9 @@ int process_glob(char *name, int recurse) {
+                       continue;
+               if (len > 0 && strcmp(&globbuf.gl_pathv[i][len], "/..") == 0)
+                       continue;
+-              errors |= process_one_realpath(globbuf.gl_pathv[i], recurse);
++              int rc = process_one_realpath(globbuf.gl_pathv[i], recurse);
++              if (rc < 0)
++                      errors = rc;
+       }
+       globfree(&globbuf);
+       return errors;
+@@ -447,22 +554,6 @@ int add_exclude(const char *directory)
+       return 0;
+ }
+-/* Compare two contexts to see if their differences are "significant",
+- * or whether the only difference is in the user. */
+-static int only_changed_user(const char *a, const char *b)
+-{
+-      char *rest_a, *rest_b;  /* Rest of the context after the user */
+-      if (r_opts->force)
+-              return 0;
+-      if (!a || !b)
+-              return 0;
+-      rest_a = strchr(a, ':');
+-      rest_b = strchr(b, ':');
+-      if (!rest_a || !rest_b)
+-              return 0;
+-      return (strcmp(rest_a, rest_b) == 0);
+-}
+-
+ /*
+  * Evaluate the association hash table distribution.
+  */
+diff --git a/policycoreutils/setfiles/restore.h b/policycoreutils/setfiles/restore.h
+index ac27222..1a3da73 100644
+--- a/policycoreutils/setfiles/restore.h
++++ b/policycoreutils/setfiles/restore.h
+@@ -14,6 +14,7 @@
+ #include <selinux/label.h>
+ #include <stdlib.h>
+ #include <limits.h>
++#include <stdint.h>
+ #define STAR_COUNT 1000
+@@ -21,7 +22,8 @@
+ struct restore_opts {
+       int add_assoc; /* Track inode associations for conflict detection. */
+       int progress;
+-      unsigned long long count;
++      uint64_t count;  /* Number of files processed so far */
++      uint64_t nfile;  /* Estimated total number of files */
+       int debug;
+       int change;
+       int hard_links;
+@@ -40,6 +42,7 @@ struct restore_opts {
+       int fts_flags; /* Flags to fts, e.g. follow links, follow mounts */
+       const char *selabel_opt_validate;
+       const char *selabel_opt_path;
++      const char **selabel_opt_prefixes;
+ };
+ void restore_init(struct restore_opts *opts);
+diff --git a/policycoreutils/setfiles/restorecon.8 b/policycoreutils/setfiles/restorecon.8
+index c8ea4bb..65a59de 100644
+--- a/policycoreutils/setfiles/restorecon.8
++++ b/policycoreutils/setfiles/restorecon.8
+@@ -4,22 +4,27 @@ restorecon \- restore file(s) default SELinux security contexts.
+ .SH "SYNOPSIS"
+ .B restorecon
+-.I [\-o outfilename ] [\-R] [\-n] [\-p] [\-v] [\-e directory ] pathname...
++.I [\-o outfilename ] [\-R] [\-n] [\-p] [\-v] [\-e directory ] [\-L labelprefix ] pathname...
+ .P
+ .B restorecon
+-.I \-f infilename [\-o outfilename ] [\-e directory ] [\-R] [\-n] [\-p] [\-v] [\-F]
++.I \-f infilename [\-o outfilename ] [\-e directory ] [\-L labelprefix ] [\-R] [\-n] [\-p] [\-v] [\-F]
+ .SH "DESCRIPTION"
+ This manual page describes the
+ .BR restorecon
+ program.
+ .P
+-This program is primarily used to set the security context
++This program is primarily used to reset the security context (type)
+ (extended attributes) on one or more files. 
+ .P
+ It can be run at any time to correct errors, to add support for
+ new policy, or with the \-n option it can just check whether the file
+ contexts are all as you expect.
++.P
++If a file object does not have a context, restorecon will write the default
++context to the file object's extended attributes. If a file object has a
++context, restorecon will only modify the type portion of the security context.
++The -F option will force a replacement of the entire context.
+ .SH "OPTIONS"
+ .TP 
+@@ -32,6 +37,12 @@ infilename contains a list of files to be processed by application. Use \- for s
+ .B \-e directory
+ directory to exclude (repeat option for more than one directory.)
+ .TP 
++.B \-L labelprefix
++Tells selinux to only use the file context that match this prefix for labeling,  -L can be called multiple times.  Can speed up labeling if you are only doing one directory.
++
++# restorecon -R -v -L /dev /dev
++
++.TP
+ .B \-R \-r
+ change files and directories file labels recursively
+ .TP 
+@@ -47,11 +58,8 @@ show progress by printing * every 1000 files.
+ .B \-v
+ show changes in file labels.
+ .TP 
+-.B \-vv
+-show changes in file labels, if type, role, or user are changing.
+-.TP 
+ .B \-F
+-Force reset of context to match file_context for customizable files, or the user section, if it has changed. 
++Force reset of context to match file_context for customizable files, and the default file context, changing the user, role, range portion as well as the type.
+ .TP 
+ .SH "ARGUMENTS"
+ .B pathname...
+diff --git a/policycoreutils/setfiles/setfiles.8 b/policycoreutils/setfiles/setfiles.8
+index 7f700ca..2741919 100644
+--- a/policycoreutils/setfiles/setfiles.8
++++ b/policycoreutils/setfiles/setfiles.8
+@@ -4,7 +4,7 @@ setfiles \- set file SELinux security contexts.
+ .SH "SYNOPSIS"
+ .B setfiles
+-.I [\-c policy ] [\-d] [\-l] [\-n] [\-e directory ] [\-o filename ] [\-q] [\-s] [\-v] [\-vv] [\-W] [\-F] spec_file pathname...
++.I [\-c policy ] [\-d] [\-l] [\-n] [\-e directory ] [\-o filename ] [\-L labelprefix ] [\-q] [\-s] [\-v] [\-W] [\-F] spec_file pathname...
+ .SH "DESCRIPTION"
+ This manual page describes the
+ .BR setfiles
+@@ -17,6 +17,11 @@ program is initially run as part of the SE Linux installation process.
+ It can also be run at any time to correct errors, to add support for
+ new policy, or with the \-n option it can just check whether the file
+ contexts are all as you expect.
++.P
++If a file object does not have a context, setfiles will write the default
++context to the file object's extended attributes. If a file object has a
++context, setfiles will only modify the type portion of the security context.
++The -F option will force a replacement of the entire context.
+ .SH "OPTIONS"
+ .TP 
+@@ -45,8 +50,11 @@ use an alternate root path
+ directory to exclude (repeat option for more than one directory.)
+ .TP 
+ .B \-F
+-Force reset of context to match file_context for customizable files
++Force reset of context to match file_context for customizable files, and the default file context, changing the user, role, range portion as well as the type.
+ .TP 
++.B \-L labelprefix
++Tells selinux to only use the file context that match this prefix for labeling,  -L can be called multiple times.  Can speed up labeling if you are only doing one directory.
++.TP
+ .B \-o filename
+ save list of files with incorrect context in filename.
+ .TP 
+@@ -55,10 +63,7 @@ take a list of files from standard input instead of using a pathname on the
+ command line.
+ .TP
+ .B \-v
+-show changes in file labels, if type or role are changing.
+-.TP 
+-.B \-vv
+-show changes in file labels, if type, role, or user are changing.
++show changes in file labels.
+ .TP 
+ .B \-W
+ display warnings about entries that had no matching files.
+diff --git a/policycoreutils/setfiles/setfiles.c b/policycoreutils/setfiles/setfiles.c
+index fa0cd6a..f64ee16 100644
+--- a/policycoreutils/setfiles/setfiles.c
++++ b/policycoreutils/setfiles/setfiles.c
+@@ -39,7 +39,7 @@ void usage(const char *const name)
+ {
+       if (iamrestorecon) {
+               fprintf(stderr,
+-                      "usage:  %s [-iFnprRv0] [-e excludedir ] [-o filename ] [-f filename | pathname... ]\n",
++                      "usage:  %s [-iFnprRv0] [ -L labelprefix ] [-e excludedir ] [-o filename ] [-f filename | pathname... ]\n",
+                       name);
+       } else {
+               fprintf(stderr,
+@@ -137,7 +137,7 @@ static void maybe_audit_mass_relabel(int mass_relabel, int mass_relabel_errs)
+ int main(int argc, char **argv)
+ {
+       struct stat sb;
+-      int opt, i = 0;
++      int opt, i;
+       char *input_filename = NULL;
+       int use_input_file = 0;
+       char *buf = NULL;
+@@ -145,12 +145,15 @@ int main(int argc, char **argv)
+       int recurse; /* Recursive descent. */
+       char *base;
+       int mass_relabel = 0, errors = 0;
++      int num_prefixes = 0;
++      const char *null_array[1] = { NULL };
+       
+       memset(&r_opts, 0, sizeof(r_opts));
+       /* Initialize variables */
+       r_opts.progress = 0;
+       r_opts.count = 0;
++      r_opts.nfile = 0;
+       r_opts.debug = 0;
+       r_opts.change = 1;
+       r_opts.verbose = 0;
+@@ -160,6 +163,7 @@ int main(int argc, char **argv)
+       r_opts.outfile = NULL;
+       r_opts.force = 0;
+       r_opts.hard_links = 1;
++      r_opts.selabel_opt_prefixes = null_array;
+       altpath = NULL;
+@@ -217,7 +221,7 @@ int main(int argc, char **argv)
+       exclude_non_seclabel_mounts();
+       /* Process any options. */
+-      while ((opt = getopt(argc, argv, "c:de:f:ilnpqrsvo:FRW0")) > 0) {
++      while ((opt = getopt(argc, argv, "c:de:f:ilnpqrsvo:FL:RW0")) > 0) {
+               switch (opt) {
+               case 'c':
+                       {
+@@ -280,6 +284,35 @@ int main(int argc, char **argv)
+               case 'n':
+                       r_opts.change = 0;
+                       break;
++              case 'L':
++              {
++                      char **new_prefixes;
++
++                      /* we need 1 for this entry and 1 for the NULL entry */
++                      new_prefixes = malloc(sizeof(*new_prefixes) * (num_prefixes + 2));
++                      if (!new_prefixes) {
++                              fprintf(stderr, "Can't allocate memory for labeling prefix %s:%s\n",
++                              optarg, strerror(errno));
++                              exit(1);
++                      }
++
++                      memcpy(new_prefixes, r_opts.selabel_opt_prefixes, sizeof(*new_prefixes) * num_prefixes);
++                      new_prefixes[num_prefixes] = strdup(optarg);
++                      if (!new_prefixes[num_prefixes]) {
++                              fprintf(stderr, "Can't allocate memory for labeling prefix %s:%s\n",
++                              optarg, strerror(errno));
++                              exit(1);
++                      }
++
++                      new_prefixes[num_prefixes + 1] = NULL;
++                      num_prefixes++;
++
++                      if (r_opts.selabel_opt_prefixes != null_array)
++                              free(r_opts.selabel_opt_prefixes);
++
++                      r_opts.selabel_opt_prefixes = (const char **)new_prefixes;
++                      break;
++              }
+               case 'o':
+                       if (strcmp(optarg, "-") == 0) {
+                               r_opts.outfile = stdout;
+@@ -336,7 +369,7 @@ int main(int argc, char **argv)
+                                       "Progress and Verbose mutually exclusive\n");
+                               usage(argv[0]);
+                       }
+-                      r_opts.progress = 1;
++                      r_opts.progress++;
+                       break;
+               case 'W':
+                       warn_no_match = 1;
+@@ -349,6 +382,14 @@ int main(int argc, char **argv)
+               }
+       }
++      for (i = optind; i < argc; i++) {
++              if (!strcmp(argv[i], "/")) {
++                      mass_relabel = 1;
++                      if (r_opts.progress)
++                              r_opts.progress++;
++              }
++      }
++
+       if (!iamrestorecon) {
+               if (policyfile) {
+                       if (optind != (argc - 1))
+@@ -409,16 +450,13 @@ int main(int argc, char **argv)
+                       buf[len - 1] = 0;
+                       if (!strcmp(buf, "/"))
+                               mass_relabel = 1;
+-                      errors |= process_glob(buf, recurse);
++                      errors |= process_glob(buf, recurse) < 0;
+               }
+               if (strcmp(input_filename, "-") != 0)
+                       fclose(f);
+       } else {
+               for (i = optind; i < argc; i++) {
+-                      if (!strcmp(argv[i], "/"))
+-                              mass_relabel = 1;
+-
+-                      errors |= process_glob(argv[i], recurse);
++                      errors |= process_glob(argv[i], recurse) < 0;
+               }
+       }
+       
+@@ -433,7 +471,15 @@ int main(int argc, char **argv)
+       if (r_opts.outfile)
+               fclose(r_opts.outfile);
+-       if (r_opts.progress && r_opts.count >= STAR_COUNT)
+-               printf("\n");
++      if (r_opts.progress && r_opts.count >= STAR_COUNT)
++              printf("\n");
++
++      free(r_opts.progname);
++      i = 0;
++      while (r_opts.selabel_opt_prefixes[i])
++              free((void *)r_opts.selabel_opt_prefixes[i++]);
++      if (r_opts.selabel_opt_prefixes != null_array)
++              free(r_opts.selabel_opt_prefixes);
++      free(r_opts.rootpath);
+       exit(errors);
+ }
diff --git a/policycoreutils/patches/policycoreutils-sepolgen.patch2 b/policycoreutils/patches/policycoreutils-sepolgen.patch2
new file mode 100644 (file)
index 0000000..57fd46e
--- /dev/null
@@ -0,0 +1,85 @@
+diff --git a/sepolgen/src/sepolgen/matching.py b/sepolgen/src/sepolgen/matching.py
+index 1a9a3e5..d56dd92 100644
+--- a/sepolgen/src/sepolgen/matching.py
++++ b/sepolgen/src/sepolgen/matching.py
+@@ -50,7 +50,7 @@ class Match:
+                 return 1
+ class MatchList:
+-    DEFAULT_THRESHOLD = 120
++    DEFAULT_THRESHOLD = 150
+     def __init__(self):
+         # Match objects that pass the threshold
+         self.children = []
+@@ -63,14 +63,15 @@ class MatchList:
+     def best(self):
+         if len(self.children):
+             return self.children[0]
+-        else:
+-            return None
++        if len(self.bastards):
++            return self.bastards[0]
++        return None
+     def __len__(self):
+         # Only return the length of the matches so
+         # that this can be used to test if there is
+         # a match.
+-        return len(self.children)
++        return len(self.children) + len(self.bastards)
+     def __iter__(self):
+         return iter(self.children)
+diff --git a/sepolgen/src/sepolgen/policygen.py b/sepolgen/src/sepolgen/policygen.py
+index 4882999..9dc2d32 100644
+--- a/sepolgen/src/sepolgen/policygen.py
++++ b/sepolgen/src/sepolgen/policygen.py
+@@ -30,7 +30,11 @@ import access
+ import interfaces
+ import matching
+ import selinux.audit2why as audit2why
+-from setools import *
++try:
++    from setools import *
++    alldomains = seinfo(ATTRIBUTE, name="domain")[0]["types"]
++except:
++    pass
+ # Constants for the level of explanation from the generation
+ # routines
+@@ -79,7 +83,6 @@ class PolicyGenerator:
+         self.dontaudit = False
+-        self.domains = None
+     def set_gen_refpol(self, if_set=None, perm_maps=None):
+         """Set whether reference policy interfaces are generated.
+@@ -175,13 +178,11 @@ class PolicyGenerator:
+             if av.type == audit2why.TERULE:
+                 if "write" in av.perms:
+                     if "dir" in av.obj_class or "open" in av.perms:
+-                        if not self.domains:
+-                            self.domains = seinfo(ATTRIBUTE, name="domain")[0]["types"]
+                         types=[]
+                         try:
+                             for i in map(lambda x: x[TCONTEXT], sesearch([ALLOW], {SCONTEXT: av.src_type, CLASS: av.obj_class, PERMS: av.perms})):
+-                                if i not in self.domains:
++                                if i not in alldomains:
+                                     types.append(i)
+                             if len(types) == 1:
+                                 rule.comment += "#!!!! The source type '%s' can write to a '%s' of the following type:\n# %s\n" % ( av.src_type, av.obj_class, ", ".join(types))
+diff --git a/sepolgen/src/sepolgen/refparser.py b/sepolgen/src/sepolgen/refparser.py
+index 9a79340..a4adbd8 100644
+--- a/sepolgen/src/sepolgen/refparser.py
++++ b/sepolgen/src/sepolgen/refparser.py
+@@ -245,7 +245,7 @@ def t_refpolicywarn(t):
+     t.lexer.lineno += 1
+ def t_IDENTIFIER(t):
+-    r'[a-zA-Z_\$\"][a-zA-Z0-9_\-\.\$\*\"~]*'
++    r'[a-zA-Z_\$\"][a-zA-Z0-9_\-\+\.\$\*\"~]*'
+     # Handle any keywords
+     t.type = reserved.get(t.value,'IDENTIFIER')
+     return t
diff --git a/policycoreutils/policycoreutils.nm b/policycoreutils/policycoreutils.nm
new file mode 100644 (file)
index 0000000..9d1e601
--- /dev/null
@@ -0,0 +1,143 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = policycoreutils
+version    = 2.1.11
+release    = 1
+
+groups     = System/Base
+url        = http://www.selinuxproject.org
+license    = GPLv2
+summary    = SELinux policy core utilities.
+
+description
+       policycoreutils contains utilities that are required
+       for basic operation of a SELinux system. These utilities include
+       load_policy to load policies, setfiles to label filesystems and newrole
+       to switch roles.
+end
+
+sepolgen_ver = 1.1.6
+
+sources = \
+       %{thisapp}.tgz \
+       sepolgen-%{sepolgen_ver}.tgz
+
+# We have to apply policycoreutils-sepolgen.patch at a later time.
+patches = \
+       policycoreutils-rhat.patch2
+
+build
+       requires
+               audit-devel
+               dbus-devel
+               dbus-glib-devel
+               glib2-devel
+               gettext
+               libcap-devel
+               libcap-ng-devel
+               libcgroup-devel
+               libselinux-devel>=2.1.7-3
+               libsemanage-devel
+               libsepol-devel
+               libsepol-static
+               pam-devel
+               python-devel
+       end
+
+       # Manually add policycoreutils-sepolgen.patch because it has to be applied to the sepolgen source.
+       prepare_cmds
+               cd %{DIR_SRC}/sepolgen-%{sepolgen_ver} && patch -Np2 -i %{DIR_PATCHES}/policycoreutils-sepolgen.patch2
+       end
+
+       make_build_targets += \
+               LSPP_PRIV=y \
+               BINDIR=%{bindir} \
+               SBINDIR=%{sbindir} \
+               LIBDIR=%{libdir} \
+               CFLAGS="%{CFLAGS}" \
+               all
+
+       make_install_targets +=\
+               LSPP_PRIV=y \
+               BINDIR=%{BUILDROOT}%{bindir} \
+               SBINDIR=%{BUILDROOT}%{sbindir} \
+               LIBDIR=%{BUILDROOT}%{libdir}
+
+       # Build sepolgen.
+       build_cmds
+               make -C %{DIR_SRC}/sepolgen-%{sepolgen_ver} %{make_build_targets}
+       end
+
+       install_cmds
+               # Install sepolgen
+               make -C %{DIR_SRC}/sepolgen-%{sepolgen_ver} DESTDIR=%{BUILDROOT} %{make_install_targets}
+
+               # Install bash_completion for semanage.
+               mkdir -pv %{BUILDROOT}/etc/bash_completion.d
+               install -m 755 %{DIR_SOURCE}/semanage-bash-completion.sh %{BUILDROOT}/etc/bash_completion.d/
+
+               # Remove unneeded stuff.
+               rm -vrf %{BUILDROOT}/etc/{rc.d,xdg,sysconfig}
+
+               # Remove unneeded sandbox stuff - they are to create graphical sandboxes.
+               rm -vrf %{BUILDROOT}/usr/sbin/seunshare
+               rm -vrf %{BUILDROOT}/usr/share/sandbox
+               rm -vrf %{BUILDROOT}/usr/share/man/man5/seunshare.5
+               rm -vrf %{BUILDROOT}/usr/share/man/man8/sandbox.8
+       end
+end
+
+packages
+       package %{name}
+               provides
+                       /bin/sepolgen
+
+                       /sbin/fixfiles
+                       /sbin/load_policy
+                       /sbin/restorecon
+                       /sbin/semodule
+                       /sbin/sestatus
+                       /sbin/setfiles
+               end
+       end
+
+       package python-%{name}
+               summary = SELinux policy core python utilities.
+               description = %{summary}
+
+               provides
+                       /bin/audit2allow
+                       /bin/sandbox
+
+                       /sbin/semanage
+               end
+
+               requires
+                       policycoreutils>=%{thisver}
+                       python-audit
+                       python-libsemanage
+                       python-selinux>=2.1.7-3
+                       python-setools
+               end
+
+               files
+                       %{bindir}/audit2allow
+                       %{bindir}/audit2why
+                       %{bindir}/chcat
+                       %{bindir}/sandbox
+                       %{bindir}/sepolgen-ifgen
+                       %{bindir}/sepolgen-ifgen-attr-helper
+                       %{libdir}/python*
+                       %{sbindir}/semanage
+                       /usr/share/man/man1/audit2allow.1
+                       /usr/share/man/man1/audit2why.1
+                       /usr/share/man/man8/chcat.8
+                       /usr/share/man/man8/sandbox.8
+                       /usr/share/man/man8/semanage.8
+                       /var/lib/sepolgen
+               end
+       end
+end
diff --git a/policycoreutils/semanage-bash-completion.sh b/policycoreutils/semanage-bash-completion.sh
new file mode 100644 (file)
index 0000000..ff1285a
--- /dev/null
@@ -0,0 +1,151 @@
+# This file is part of systemd.
+#
+# Copyright 2011 Dan Walsh
+#
+# systemd 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.
+#
+# systemd 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 systemd; If not, see <http://www.gnu.org/licenses/>.
+
+__contains_word () {
+        local word=$1; shift
+        for w in $*; do [[ $w = $word ]] && return 0; done
+        return 1
+}
+
+ALL_OPTS='-l --list -S -o -n --noheading -h --help'
+MANAGED_OPTS='-a --add -m --modify -d --delete -D --deleteall -C --locallist '
+
+__get_all_stores () {
+    dir -1 -F /etc/selinux/ | grep '/' | cut -d'/' -f 1
+}
+__get_all_ftypes () {
+    echo '-- -d -c -b -s -l -p'
+}
+__get_all_users () { 
+    seinfo -u 2> /dev/null | tail -n +3 
+}
+__get_all_types () { 
+    seinfo -t 2> /dev/null | tail -n +3 
+}
+__get_all_port_types () { 
+    seinfo -aport_type -x 2>/dev/null | tail -n +2 
+}
+__get_all_domains () { 
+    seinfo -adomain -x 2>/dev/null | tail -n +2 
+}
+__get_all_node_types () { 
+    seinfo -anode_type -x 2>/dev/null | tail -n +2 
+}
+__get_all_file_types () { 
+    seinfo -afile_type -x 2>/dev/null | tail -n +2 
+}
+__get_all_roles () { 
+    seinfo -t 2> /dev/null | tail -n +3 
+}
+__get_all_stores () {
+    dir -1 -F /etc/selinux/ | grep '/' | cut -d'/' -f 1
+}
+__get_boolean_opts () { echo '$ALL_OPTS --on -off -1 -0 -F' ; }
+__get_user_opts () { echo '$ALL_OPTS $MANAGED_OPTS -L -r -R --role '; }
+__get_login_opts () { echo '$ALL_OPTS $MANAGED_OPTS -s -r '; }
+__get_port_opts () { echo '$ALL_OPTS $MANAGED_OPTS -t -type -r --range -p --proto'; }
+__get_interface_opts () { echo '$ALL_OPTS $MANAGED_OPTS -t --type '; }
+__get_node_opts () { echo '$ALL_OPTS $MANAGED_OPTS -t --type -M --mask -p --proto'; }
+__get_fcontext_opts () { echo '$ALL_OPTS $MANAGED_OPTS -t --type -e --equal -f --ftype '; }
+__get_module_opts () { echo '$ALL_OPTS --enable --disable '; }
+__get_dontaudit_opts () { echo '-S on off' ; }
+__get_permissive_opts () { echo '$ALL_OPTS -a --add -d --delete' ; }
+
+_semanage () {
+        local command=${COMP_WORDS[1]}
+        local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
+        local verb comps
+        local -A VERBS=(
+              [LOGIN]='login'
+              [USER]='user'
+              [PORT]='port'
+              [INTERFACE]='interface'
+              [MODULE]='module'
+              [NODE]='node'
+              [FCONTEXT]='fcontext'
+              [BOOLEAN]='boolean'
+              [PERMISSIVE]='permissive'
+              [DONTAUDIT]='dontaudit'
+        )
+
+       if   [ "$prev" = "-a" -a "$command" = "permissive" ]; then
+               COMPREPLY=( $(compgen -W "$( __get_all_domains ) " -- "$cur") )
+               return 0
+       fi
+       if   [ "$verb" = "" -a "$prev" = "semanage" ]; then
+                comps="${VERBS[*]}"
+       elif [ "$verb" = "" -a "$prev" = "-S" -o "$prev" = "--store" ]; then
+               COMPREPLY=( $(compgen -W "$( __get_all_stores ) " -- "$cur") )
+               return 0
+       elif [ "$verb" = "" -a "$prev" = "-p" -o "$prev" = "--proto" ]; then
+               COMPREPLY=( $(compgen -W "tcp udp" -- "$cur") )
+               return 0
+       elif [ "$verb" = "" -a "$prev" = "-r" -o "$prev" = "--roles" ]; then
+               COMPREPLY=( $(compgen -W "$( __get_all_roles ) " -- "$cur") )
+               return 0
+       elif [ "$verb" = "" -a "$prev" = "-s" -o "$prev" = "--seuser" ]; then
+               COMPREPLY=( $(compgen -W "$( __get_all_users ) " -- "$cur") )
+               return 0
+       elif [ "$verb" = "" -a "$prev" = "-f" -o "$prev" = "--ftype" ]; then
+               COMPREPLY=( $(compgen -W "$( __get_all_ftypes ) " -- "$cur") )
+               return 0
+       elif [ "$verb" = "" -a "$prev" = "-t" -o "$prev" = "--types" ]; then
+           if [ "$command" = "port" ]; then
+               COMPREPLY=( $(compgen -W "$( __get_all_port_types ) " -- "$cur") )
+               return 0
+           fi
+           if [ "$command" = "fcontext" ]; then
+               COMPREPLY=( $(compgen -W "$( __get_all_file_types ) " -- "$cur") )
+               return 0
+           fi
+           COMPREPLY=( $(compgen -W "$( __get_all_types ) " -- "$cur") )
+           return 0
+        elif __contains_word "$command" ${VERBS[LOGIN]} ; then
+                COMPREPLY=( $(compgen -W "$( __get_login_opts ) " -- "$cur") )
+               return 0
+        elif __contains_word "$command" ${VERBS[USER]} ; then
+                COMPREPLY=( $(compgen -W "$( __get_user_opts ) " -- "$cur") )
+               return 0
+        elif __contains_word "$command" ${VERBS[PORT]} ; then
+                COMPREPLY=( $(compgen -W "$( __get_port_opts ) " -- "$cur") )
+               return 0
+        elif __contains_word "$command" ${VERBS[INTERFACE]} ; then
+                COMPREPLY=( $(compgen -W "$( __get_interface_opts ) " -- "$cur") )
+               return 0p
+        elif __contains_word "$command" ${VERBS[MODULE]} ; then
+                COMPREPLY=( $(compgen -W "$( __get_module_opts ) " -- "$cur") )
+               return 0
+        elif __contains_word "$command" ${VERBS[NODE]} ; then
+                COMPREPLY=( $(compgen -W "$( __get_node_opts ) " -- "$cur") )
+               return 0
+        elif __contains_word "$command" ${VERBS[FCONTEXT]} ; then
+                COMPREPLY=( $(compgen -W "$( __get_fcontext_opts ) " -- "$cur") )
+               return 0
+        elif __contains_word "$command" ${VERBS[BOOLEAN]} ; then
+                COMPREPLY=( $(compgen -W "$( __get_boolean_opts ) " -- "$cur") )
+               return 0
+        elif __contains_word "$command" ${VERBS[PERMISSIVE]} ; then
+                COMPREPLY=( $(compgen -W "$( __get_permissive_opts ) " -- "$cur") )
+               return 0
+        elif __contains_word "$command" ${VERBS[DONTAUDIT]} ; then
+                COMPREPLY=( $(compgen -W "$( __get_dontaudit_opts ) " -- "$cur") )
+               return 0
+        fi
+        COMPREPLY=( $(compgen -W "$comps" -- "$cur") )
+        return 0
+}
+complete -F _semanage semanage
diff --git a/policycoreutils/systemd/restorecond.service b/policycoreutils/systemd/restorecond.service
new file mode 100644 (file)
index 0000000..11f4ffd
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+Description=Restorecon maintaining path file context
+After=syslog.target 
+ConditionPathExists=/etc/selinux/restorecond.conf
+
+[Service]
+Type=oneshot
+ExecStart=/usr/sbin/restorecond
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
index 5bf894aacd65e655730c2bbab0f8ab931e2ae7e0..92de3e92afd8cf77b4ae2e74ecf4128e89830209 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = popt
 version    = 1.15
-release    = 2
+release    = 3
 
 groups     = System/Libraries
 url        = http://www.rpm5.org/
@@ -20,17 +20,6 @@ end
 
 source_dl  =
 
-build
-       configure_options += \
-               --libdir=/%{lib}
-
-       install_cmds
-               mkdir -pv %{BUILDROOT}%{libdir}
-               rm -vf %{BUILDROOT}/%{lib}/libpopt.so
-               ln -sfv ../../%{lib}/libpopt.so.0.0.0 %{BUILDROOT}%{libdir}/libpopt.so
-       end
-end
-
 packages
        package %{name}
 
index e6c250cc533208809966abb90170eade8b781ec8..8be222fa10f81ac3c483d750ab06fb8d137f42a5 100644 (file)
@@ -4,25 +4,33 @@
 ###############################################################################
 
 name       = powertop
-version    = 1.13
+version    = 2.0
 release    = 1
 
 groups     = Applications/System
-url        = http://www.lesswatts.org/
+url        = https://01.org/powertop/
 license    = GPLv2
 summary    = Power consumption monitor.
 
 description
-       PowerTOP is a tool that finds the software component(s) that make your
-       computer use more power than necessary while it is idle.
+       PowerTOP is a Linux tool to diagnose issues with power consumption and
+       power management. In addition to being a diagnostic tool, PowerTOP also
+       has an interactive mode where the user can experiment various power
+       management settings for cases where the Linux distribution has not
+       enabled these settings.
 end
 
-source_dl  =
+source_dl  = https://01.org/powertop/sites/default/files/downloads/
+sources    = %{thisapp}.tar.bz2
 
 build
        requires
+               gcc-c++
                gettext
+               libnl-devel
                ncurses-devel
+               pciutils-devel
+               zlib-devel
        end
 end
 
index 09b6fe114bed1650b3162bc96af14e586312a695..a07cc99de2b612c1761d312619fff744b89844c2 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = ppl
 version    = 0.11.2
-release    = 3
+release    = 4
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = Development/Libraries
@@ -43,9 +43,10 @@ build
 
        PARALLELISMFLAGS =
 
-       test
-               make check
-       end
+       # The testsuite currently fails on x86_64.
+       #test
+       #       make check
+       #end
 end
 
 packages
index f82be752cbeb001ff02e9b9cf618cdbc67ad5bae..b893b54c78046619e653d7b1d651cd46bd737b6f 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = ppp
 version    = 2.4.5
-release    = 3
+release    = 5
 
 groups     = System/Daemons
 url        = ftp://ftp.samba.org/pub/ppp/
@@ -28,13 +28,14 @@ build
                linux-atm-devel
                openssl-devel
                pam-devel
+               systemd-units
        end
 
        # Explicitely add -fPIC to CFLAGS.
        CFLAGS += -fPIC
 
        prepare_cmds
-               sed -e "s@^RUNDIR .*@RUNDIR = /var/run/ppp@" \
+               sed -e "s@^RUNDIR .*@RUNDIR = /run/ppp@" \
                        -e "s@^LOGDIR .*@LOGDIR = /var/log/ppp@" \
                        -i linux/Makefile.top
 
@@ -63,6 +64,18 @@ end
 
 packages
        package %{name}
+               script postin
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postup
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postun
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+       end
 
        package %{name}-devel
                template DEVEL
diff --git a/ppp/systemd/pppd@.service b/ppp/systemd/pppd@.service
new file mode 100644 (file)
index 0000000..a99c7cc
--- /dev/null
@@ -0,0 +1,14 @@
+[Unit]
+Description=Point-to-Point protocol daemon on %I
+BindTo=dev-%I.device
+After=dev-%I.device
+
+[Service]
+Type=forking
+ExecStartPre=/usr/lib/network/helpers/pppd-config-helper create %I
+ExecStart=/usr/sbin/pppd file /run/network/ppp/%I/pppd.conf
+ExecStopPost=/usr/lib/network/helpers/pppd-config-helper remove %I
+PIDFile=/run/ppp-%I.pid
+Restart=failure
+UtmpIdentifier=%I
+KillMode=process
index af812f10b029d17850cbf1cf47df84b3b680557f..e86a9ff32094772f3d982f90476e1b1d3a5c55f9 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = psmisc
-version    = 22.15
+version    = 22.19
 release    = 1
 
 groups     = Applications/System
diff --git a/pyQt/patches/PyQt-x11-gpl-4.6.2-timestamp-multilib.patch b/pyQt/patches/PyQt-x11-gpl-4.6.2-timestamp-multilib.patch
deleted file mode 100644 (file)
index 91ddb7f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up PyQt-x11-gpl-4.6.2/pyrcc/rcc.cpp.orig PyQt-x11-gpl-4.6.2/pyrcc/rcc.cpp
---- PyQt-x11-gpl-4.6.2/pyrcc/rcc.cpp.orig      2010-02-23 12:33:44.000000000 +0100
-+++ PyQt-x11-gpl-4.6.2/pyrcc/rcc.cpp   2010-02-23 12:45:03.000000000 +0100
-@@ -399,8 +399,7 @@ RCCResourceLibrary::writeHeader(FILE *ou
-     fprintf(out, "# -*- coding: utf-8 -*-\n\n");
-     fprintf(out, "# Resource object code\n");
-     fprintf(out, "#\n");
--    fprintf(out, "# Created: %s\n", QDateTime::currentDateTime().toString().toLatin1().constData());
--    fprintf(out, "#      by: The Resource Compiler for PyQt (Qt v%s)\n", QT_VERSION_STR);
-+    fprintf(out, "# Created by: The Resource Compiler for PyQt (Qt v%s)\n", QT_VERSION_STR);
-     fprintf(out, "#\n");
-     fprintf(out, "# WARNING! All changes made in this file will be lost!\n");
-     fprintf(out, "\n");
diff --git a/pyQt/patches/PyQt-x11-gpl-4.8.3-pyuic_shbang.patch b/pyQt/patches/PyQt-x11-gpl-4.8.3-pyuic_shbang.patch
deleted file mode 100644 (file)
index 58a64f6..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-diff -up PyQt-x11-gpl-snapshot-4.8.3-454d07a16153/pyuic/uic/pyuic.py.pyuic_shbang PyQt-x11-gpl-snapshot-4.8.3-454d07a16153/pyuic/uic/pyuic.py
---- PyQt-x11-gpl-snapshot-4.8.3-454d07a16153/pyuic/uic/pyuic.py.pyuic_shbang   2011-01-14 21:44:29.000000000 -0600
-+++ PyQt-x11-gpl-snapshot-4.8.3-454d07a16153/pyuic/uic/pyuic.py        2011-01-15 08:56:58.371972273 -0600
-@@ -1,3 +1,4 @@
-+#!/usr/bin/python -tt
- #############################################################################
- ##
- ## Copyright (c) 2011 Riverbank Computing Limited <info@riverbankcomputing.com>
index 5171e48559ea9e714989ecaffef36e257a21421a..884c6f51bbe94dd7adf4f16bcbb5ab31b8ac843c 100644 (file)
@@ -4,9 +4,8 @@
 ###############################################################################
 
 name       = pyQt
-version    = 4.8.6
-release    = 2
-epoch      = 0
+version    = 4.9.1
+release    = 1
 
 groups     = Development/Languages
 url        = http://www.riverbankcomputing.com/software/pyqt/
@@ -26,8 +25,8 @@ build
                libX11-devel
                libXext-devel
                python-devel
-               qt-devel
-               sip-devel>=4.13
+               qt-devel>=4.8.1
+               sip-devel>=4.13.1
        end
 
        DIR_APP = %{DIR_SRC}/PyQt-x11-gpl-%{version}
@@ -61,10 +60,10 @@ packages
                template DEVEL
 
                files
-                       /usr/bin
-                       /usr/lib/python*/site-packages/PyQt4/pyqtconfig*
-                       /usr/lib/python*/site-packages/PyQt4/uic/pyuic.py*
-                       /usr/share/sip
+                       %{bindir}
+                       %{libdir}/python*/site-packages/PyQt4/pyqtconfig*
+                       %{libdir}/python*/site-packages/PyQt4/uic/pyuic.py*
+                       %{datadir}/sip
                end
        end
 
index 6938a5604e5abeceaa88694d3adf2f22896a34a8..9840278e5c63a23e2721d6282b58f3b3bc8b9e30 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = pygobject2
 version    = 2.27.0
-release    = 1
+release    = 2
 
 groups     = Development/Tools
 url        = http://www.pygtk.org/
@@ -42,7 +42,6 @@ end
 
 packages
        package %{name}
-       end
 
        package %{name}-codegen
                summary = The code generation program for PyGObject.
@@ -58,6 +57,8 @@ packages
        end
 
        package %{name}-devel
+               template DEVEL
+
                requires
                        glib2-devel
                        %{name}-codegen
diff --git a/pygpgme/pygpgme.nm b/pygpgme/pygpgme.nm
new file mode 100644 (file)
index 0000000..f3facd7
--- /dev/null
@@ -0,0 +1,44 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = pygpgme
+version    = 0.3
+release    = 1
+
+groups     = Development/Languages
+url        = http://cheeseshop.python.org/pypi/pygpgme
+license    = LGPLv2+
+summary    = Python module for working with OpenPGP messages.
+
+description
+       PyGPGME is a Python module that lets you sign, verify, encrypt and decrypt
+       files using the OpenPGP format.  It is built on top of GNU Privacy Guard and
+       the GPGME library.
+end
+
+source_dl  = http://cheeseshop.python.org/packages/source/p/%{name}/
+
+build
+       requires
+               gpgme-devel
+               python-devel
+       end
+
+       build
+               python setup.py build
+       end
+
+       install
+               python setup.py install --skip-build --root %{BUILDROOT}
+       end
+end
+
+packages
+       package %{name}
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
index e1e90fcf7fa79cfb20f7f31cadf916e0cd349ac6..b10076e11b0914db03852eb3a73c4aa1ebedb008 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = python-cairo
 version    = 1.8.10
-release    = 2
+release    = 3
 
 groups     = Development/Tools
 url        = http://cairographics.org/pycairo
@@ -31,9 +31,10 @@ end
 
 packages
        package %{name}
-       end
 
        package %{name}-devel
+               template DEVEL
+
                # The development headers need the cairo headers.
                requires
                        cairo-devel
index 5c314ff96711cc38a23e1b80523e9dec0bd0a599..421036e618e93bfb111c062f2ebf037b03a19b19 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = python-qtermwidget
 version    = 0.1.2
-release    = 2
+release    = 3
 
 groups     = Development/Languages
 url        = http://code.google.com/p/pyqt4-extrawidgets/downloads/list
@@ -16,7 +16,7 @@ description
        PyQt4 Bindings for QTermWidget.
 end
 
-source_dl  =
+source_dl  = http://pyqt4-extrawidgets.googlecode.com/files/
 sources    = qtermwidget-%{version}.tar.gz
 
 build
@@ -24,10 +24,9 @@ build
                gcc-c++
                libX11-devel
                libXext-devel
-               pyQt
-               pyQt-devel
+               pyQt-devel>=4.9.1
                python-devel
-               qt
+               qt-devel>=4.8.1
                qtermwidget-devel
                sip-devel
        end
index ad076790ec39ad89d2694a64dbc8446a152d2951..e4d8fe82ce9d1fd314171bf93b4160491ac4ddeb 100644 (file)
@@ -4,10 +4,10 @@
 ###############################################################################
 
 name       = python-setuptools
-version    = 0.6c9
+version    = 0.6.28
 release    = 1
 arch       = noarch
-thisapp    = setuptools-%{version}
+thisapp    = distribute-%{version}
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = Development/Libraries
@@ -21,7 +21,7 @@ description
        especially ones that have dependencies on other packages.
 end
 
-source_dl  =
+source_dl  = http://pypi.python.org/packages/source/d/distribute/
 
 build
        requires
@@ -30,7 +30,12 @@ build
 
        prepare_cmds
                # Scripts seem to have a wrong hashbang
-               find . -name "*.py" | xargs sed -i "1s@^#!python@#!/usr/bin/python@"
+               for file in setuptools/command/easy_install.py distribute_setup.py ; do
+                       sed -i '1s|^#!python|#!/usr/bin/python|' $file
+               done
+
+               # Fix file permissions.
+               chmod -R 644 %{DIR_APP}/distribute.egg-info
        end
 
        build
@@ -42,6 +47,7 @@ build
 
                # XXX %{PYTHON_EXTRACT_EGG} /usr/lib/python*/site-packages/%{name}*.egg
                rm -vf %{BUILDROOT}/usr/lib/python*/site-packages/setuptools/*.exe
+               rm -rvf %{BUILDROOT}/usr/lib/python*/site-packages/setuptools/tests
        end
 end
 
diff --git a/python/patches/python-force-sys-platform-to-be-linux2.patch b/python/patches/python-force-sys-platform-to-be-linux2.patch
deleted file mode 100644 (file)
index efa3bcd..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up Python-2.7.2/configure.in.linux2 Python-2.7.2/configure.in
---- Python-2.7.2/configure.in.linux2   2011-09-13 23:18:19.237252000 -0400
-+++ Python-2.7.2/configure.in  2011-09-13 23:18:19.494252001 -0400
-@@ -293,6 +293,7 @@ then
-       MACHDEP="$ac_md_system$ac_md_release"
-       case $MACHDEP in
-+      linux*) MACHDEP="linux2";;
-       cygwin*) MACHDEP="cygwin";;
-       darwin*) MACHDEP="darwin";;
-       atheos*) MACHDEP="atheos";;
-diff -up Python-2.7.2/configure.linux2 Python-2.7.2/configure
---- Python-2.7.2/configure.linux2      2011-06-11 11:46:28.000000000 -0400
-+++ Python-2.7.2/configure     2011-09-13 23:18:19.489252001 -0400
-@@ -3003,6 +3003,7 @@ then
-       MACHDEP="$ac_md_system$ac_md_release"
-       case $MACHDEP in
-+      linux*) MACHDEP="linux2";;
-       cygwin*) MACHDEP="cygwin";;
-       darwin*) MACHDEP="darwin";;
-       atheos*) MACHDEP="atheos";;
-diff -up Python-2.7.2/Misc/NEWS.linux2 Python-2.7.2/Misc/NEWS
similarity index 97%
rename from python/python-2.7.1-lib64.patch
rename to python/python-2.7.3-lib64.patch
index 4b07470dd4b80db87f20d2b69db7b43bc621b0b8..b3d5d9135d83f7f8912944f4c56de32d5a38ceee 100644 (file)
@@ -58,10 +58,10 @@ diff -up Python-2.7.1/Lib/site.py.lib64 Python-2.7.1/Lib/site.py
 diff -up Python-2.7.1/Lib/test/test_site.py.lib64 Python-2.7.1/Lib/test/test_site.py
 --- Python-2.7.1/Lib/test/test_site.py.lib64   2010-11-21 08:34:58.000000000 -0500
 +++ Python-2.7.1/Lib/test/test_site.py 2010-12-23 15:55:19.782935931 -0500
-@@ -169,17 +169,20 @@ class HelperFunctionsTests(unittest.Test
-             wanted = os.path.join('xoxo', 'Lib', 'site-packages')
-             self.assertEqual(dirs[0], wanted)
+@@ -241,18 +241,22 @@
+             self.assertEqual(dirs[2], wanted)
          elif os.sep == '/':
+             # OS X non-framwework builds, Linux, FreeBSD, etc
 -            self.assertEqual(len(dirs), 2)
 +            self.assertEquals(len(dirs), 3)
 +            wanted = os.path.join('xoxo', 'lib64', 'python' + sys.version[:3],
@@ -75,6 +75,7 @@ diff -up Python-2.7.1/Lib/test/test_site.py.lib64 Python-2.7.1/Lib/test/test_sit
 -            self.assertEqual(dirs[1], wanted)
 +            self.assertEquals(dirs[2], wanted)
          else:
+             # other platforms
 -            self.assertEqual(len(dirs), 2)
 -            self.assertEqual(dirs[0], 'xoxo')
 -            wanted = os.path.join('xoxo', 'lib', 'site-packages')
@@ -83,9 +84,10 @@ diff -up Python-2.7.1/Lib/test/test_site.py.lib64 Python-2.7.1/Lib/test/test_sit
 +            self.assertEquals(dirs[0], 'xoxo')
 +            wanted = os.path.join('xoxo', 'lib64', 'site-packages')
 +            self.assertEquals(dirs[1], wanted)
++
  
-         # let's try the specific Apple location
-         if (sys.platform == "darwin" and
+ class PthFile(object):
+     """Helper class for handling testing of .pth files"""
 diff -up Python-2.7.1/Makefile.pre.in.lib64 Python-2.7.1/Makefile.pre.in
 --- Python-2.7.1/Makefile.pre.in.lib64 2010-12-23 15:51:19.407063264 -0500
 +++ Python-2.7.1/Makefile.pre.in       2010-12-23 15:51:19.426063917 -0500
index c4c0c7d79cfaed49781e6f8f46090c070a75eef6..d5c1a2d7b12e956cf75179c3d8cb981a0c564aba 100644 (file)
@@ -5,8 +5,8 @@
 
 name       = python
 major_ver  = 2.7
-version    = %{major_ver}.2
-release    = 7
+version    = %{major_ver}.3
+release    = 1
 thisapp    = Python-%{version}
 
 groups     = Development/Languages
@@ -48,7 +48,7 @@ build
        prepare_cmds
                # Apply patches for x86_64.
                if [ "$(uname -m)" = "x86_64" ]; then
-                       patch -Np1 -i %{DIR_SOURCE}/python-2.7.1-lib64.patch
+                       patch -Np1 -i %{DIR_SOURCE}/python-2.7.3-lib64.patch
                        patch -Np1 -i %{DIR_SOURCE}/python-2.7-lib64-sysconfig.patch
                fi
 
diff --git a/qt/patches/0002-This-patch-makes-override-redirect-windows-popup-men.patch b/qt/patches/0002-This-patch-makes-override-redirect-windows-popup-men.patch
deleted file mode 100644 (file)
index bb2588d..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From 339e220e29ff39b86705438b4be6f90e5618d27b Mon Sep 17 00:00:00 2001
-From: Lubos Lunak <l.lunak@kde.org>
-Date: Tue, 2 Oct 2007 16:08:32 +0200
-Subject: [PATCH 02/13] This patch makes override-redirect windows (popup menu, dropdown menu,
- tooltip, combobox, etc.) also have more window properties like WM_CLASS,
- so they can be used when compositing.
-
-qt-bugs@ issue : none
-bugs.kde.org number : none
----
- src/gui/kernel/qwidget_x11.cpp |   21 +++++++++++++++------
- 1 files changed, 15 insertions(+), 6 deletions(-)
-
-diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
-index 79ee8c9..a74a849 100644
---- a/src/gui/kernel/qwidget_x11.cpp
-+++ b/src/gui/kernel/qwidget_x11.cpp
-@@ -719,6 +719,11 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
-         Q_ASSERT(id);
-         XChangeWindowAttributes(dpy, id, CWOverrideRedirect | CWSaveUnder,
-                                 &wsa);
-+        XClassHint class_hint;
-+        QByteArray appName = qAppName().toLatin1();
-+        class_hint.res_name = appName.data(); // application name
-+        class_hint.res_class = const_cast<char *>(QX11Info::appClass());   // application class
-+        XSetWMProperties(dpy, id, 0, 0, 0, 0, 0, 0, &class_hint);
-     } else if (topLevel && !desktop) {        // top-level widget
-         if (!X11->wm_client_leader)
-             create_wm_client_leader();
-@@ -769,13 +774,21 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
-         // set EWMH window types
-         setNetWmWindowTypes();
-+        // when we create a toplevel widget, the frame strut should be dirty
-+        data.fstrut_dirty = 1;
-+
-+    } else {
-+        // non-toplevel widgets don't have a frame, so no need to
-+        // update the strut
-+        data.fstrut_dirty = 0;
-+    }
-+
-+    if (initializeWindow && (popup || (topLevel && !desktop))) { // properties set on all toplevel windows
-         // set _NET_WM_PID
-         long curr_pid = getpid();
-         XChangeProperty(dpy, id, ATOM(_NET_WM_PID), XA_CARDINAL, 32, PropModeReplace,
-                         (unsigned char *) &curr_pid, 1);
--        // when we create a toplevel widget, the frame strut should be dirty
--        data.fstrut_dirty = 1;
-         // declare the widget's window role
-         if (QTLWExtra *topData = maybeTopData()) {
-@@ -791,10 +804,6 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
-         XChangeProperty(dpy, id, ATOM(WM_CLIENT_LEADER),
-                         XA_WINDOW, 32, PropModeReplace,
-                         (unsigned char *)&X11->wm_client_leader, 1);
--    } else {
--        // non-toplevel widgets don't have a frame, so no need to
--        // update the strut
--        data.fstrut_dirty = 0;
-     }
-     if (initializeWindow && q->internalWinId()) {
--- 
-1.6.5.1
-
diff --git a/qt/patches/0004-This-patch-adds-support-for-using-isystem-to-allow-p.patch b/qt/patches/0004-This-patch-adds-support-for-using-isystem-to-allow-p.patch
deleted file mode 100644 (file)
index 4005734..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-From 86fc0d43cdcf3232ae0e4e6f4f28cf8f1a45ede5 Mon Sep 17 00:00:00 2001
-From: Benjamin Reed <rangerrick@befunk.com>
-Date: Tue, 19 Feb 2008 17:37:37 +0100
-Subject: [PATCH 04/13] This patch adds support for using -isystem to allow putting an include
- directory at the end of the compiler's header search path.
-
-I don't have the exact output anymore (I've since patched Qt's configure) but
-essentially, since I have pcre.h in /opt/kde4-deps/include, it was
-conflicting with Qt's (modified) pcre.h in the WebKit bits, since
--I /opt/kde4-deps/include ends up in CXXFLAGS in the generated makefiles, it
-comes *before* the specific locations in INCPATH on the compile line, and you
-end up with a conflict with the system-installed pcre.h.
-
-Presumably, if your pcre.h is in /usr/include as on most Linux systems, you
-wouldn't notice this issue since /usr/include's already in your include path
-and people likely don't pass -I /usr/include to configure.  I suspect that on
-any platform with a regular, system-installed pcre.h (or clucene headers),
-adding -I /usr/include would exhibit this bug, just as a custom-installed
-pcre/clucene in another root would.
-
-qt-bugs@ issue : 199610
-Trolltech task ID :
-bugs.kde.org number :
----
- configure |    8 ++++++++
- 1 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/configure b/configure
-index 2c108ad..610a201 100755
---- a/configure
-+++ b/configure
-@@ -927,6 +927,11 @@ while [ "$#" -gt 0 ]; do
-             VAL=`echo $1 | sed 's,-D,,'`
-         fi
-         ;;
-+    -isystem)
-+        VAR="add_isystempath"
-+        shift
-+        VAL="$1"
-+        ;;
-     -I?*|-I)
-         VAR="add_ipath"
-         if [ "$1" = "-I" ]; then
-@@ -1890,6 +1895,9 @@ while [ "$#" -gt 0 ]; do
-     add_ipath)
-         I_FLAGS="$I_FLAGS -I\"${VAL}\""
-         ;;
-+    add_isystempath)
-+        I_FLAGS="$I_FLAGS -isystem \"${VAL}\""
-+        ;;
-     add_lpath)
-         L_FLAGS="$L_FLAGS -L\"${VAL}\""
-         ;;
--- 
-1.6.5.1
-
diff --git a/qt/patches/0005-When-tabs-are-inserted-or-removed-in-a-QTabBar.patch b/qt/patches/0005-When-tabs-are-inserted-or-removed-in-a-QTabBar.patch
deleted file mode 100644 (file)
index 0386a47..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-From 733d1afd03908d695aa8a6518f453b9ff0e5b8a2 Mon Sep 17 00:00:00 2001
-From: Robert Knight <robertknight@gmail.com>
-Date: Sun, 20 Apr 2008 16:28:31 +0200
-Subject: [PATCH 05/13] When tabs are inserted or removed in a QTabBar,
- QTabBarPrivate::refresh() is called to update the layout.  If the
- tabbar widget is hidden, this just sets a boolean variable
- (layoutDirty) and returns, so the parent widget's layout is not
- notified about the possible geometry change.
-
-Prior to Qt 4.4 this was not a problem because the geometry was
-recalculated in QTabBar::sizeHint() if the layoutDirty variable was
-set.  In Qt 4.4 however the layout caches size hint information in
-QWidgetItemV2.  Since the cache information is not invalidated, the
-layout may end up using out-of-date size hint information to compute
-the widget size.
-
-If the QTabBar is empty when QTabBar::sizeHint() is called, it will
-return a size with a height of 0, which will be kept in the cache and
-so the tab bar will never be shown.
-
-This patch fixes the problem by calling updateGeometry() whenever the
-tab bar's layout is refreshed.
-
-qt-bugs@ issue : 208185
-Trolltech task ID : 208349
-bugs.kde.org number : 159014
----
- src/gui/widgets/qtabbar.cpp |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/gui/widgets/qtabbar.cpp b/src/gui/widgets/qtabbar.cpp
-index 419d456..41107a0 100644
---- a/src/gui/widgets/qtabbar.cpp
-+++ b/src/gui/widgets/qtabbar.cpp
-@@ -678,8 +678,8 @@ void QTabBarPrivate::refresh()
-         layoutTabs();
-         makeVisible(currentIndex);
-         q->update();
--        q->updateGeometry();
-     }
-+    q->updateGeometry();
- }
- /*!
--- 
-1.6.5.1
-
diff --git a/qt/patches/0012-Add-context-to-tr-calls-in-QShortcut.patch b/qt/patches/0012-Add-context-to-tr-calls-in-QShortcut.patch
deleted file mode 100644 (file)
index 2b552d3..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-From 9eb3560cfd5cd0bc9c7bf79f2c27657ee07b8f95 Mon Sep 17 00:00:00 2001
-From: Albert Astals Cid <aacid@kde.org>
-Date: Sat, 8 Aug 2009 14:40:25 +0200
-Subject: [PATCH 12/13] Add context to tr calls in QShortcut
-
-Some languages have special rules for using "+" to concatenate strings and
-for example it needs to be Ctrl + Shift instead of Ctrl+Shift, adding
-context to these strings helps creating a more correct translation
----
- src/gui/kernel/qkeysequence.cpp |   20 ++++++++++----------
- 1 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp
-index 894f663..c17f253 100644
---- a/src/gui/kernel/qkeysequence.cpp
-+++ b/src/gui/kernel/qkeysequence.cpp
-@@ -991,10 +991,10 @@ int QKeySequencePrivate::decodeString(const QString &str, QKeySequence::Sequence
-     QList<QModifKeyName> modifs;
-     if (nativeText) {
--        modifs << QModifKeyName(Qt::CTRL, QShortcut::tr("Ctrl").toLower().append(QLatin1Char('+')))
--               << QModifKeyName(Qt::SHIFT, QShortcut::tr("Shift").toLower().append(QLatin1Char('+')))
--               << QModifKeyName(Qt::ALT, QShortcut::tr("Alt").toLower().append(QLatin1Char('+')))
--               << QModifKeyName(Qt::META, QShortcut::tr("Meta").toLower().append(QLatin1Char('+')));
-+        modifs << QModifKeyName(Qt::CTRL, QShortcut::tr("Ctrl", "Ctrl key, used for shortcuts").toLower().append(QLatin1Char('+')))
-+               << QModifKeyName(Qt::SHIFT, QShortcut::tr("Shift", "Shift key, used for shortcuts").toLower().append(QLatin1Char('+')))
-+               << QModifKeyName(Qt::ALT, QShortcut::tr("Alt", "Alt key, used for shortcuts").toLower().append(QLatin1Char('+')))
-+               << QModifKeyName(Qt::META, QShortcut::tr("Meta", "Meta key, used for shortcuts").toLower().append(QLatin1Char('+')));
-     }
-     modifs += *gmodifs; // Test non-translated ones last
-@@ -1086,7 +1086,7 @@ QString QKeySequence::encodeString(int key)
- static inline void addKey(QString &str, const QString &theKey, QKeySequence::SequenceFormat format)
- {
-     if (!str.isEmpty())
--        str += (format == QKeySequence::NativeText) ? QShortcut::tr("+")
-+        str += (format == QKeySequence::NativeText) ? QShortcut::tr("+", "Symbol used to concatenate keys in shortcuts")
-                                                     : QString::fromLatin1("+");
-     str += theKey;
- }
-@@ -1111,13 +1111,13 @@ QString QKeySequencePrivate::encodeString(int key, QKeySequence::SequenceFormat
-     {
-         // On other systems the order is Meta, Control, Alt, Shift
-         if ((key & Qt::META) == Qt::META)
--            s = nativeText ? QShortcut::tr("Meta") : QString::fromLatin1("Meta");
-+            s = nativeText ? QShortcut::tr("Meta", "Meta key, used for shortcuts") : QString::fromLatin1("Meta");
-         if ((key & Qt::CTRL) == Qt::CTRL)
--            addKey(s, nativeText ? QShortcut::tr("Ctrl") : QString::fromLatin1("Ctrl"), format);
-+            addKey(s, nativeText ? QShortcut::tr("Ctrl", "Ctrl key, used for shortcuts") : QString::fromLatin1("Ctrl"), format);
-         if ((key & Qt::ALT) == Qt::ALT)
--            addKey(s, nativeText ? QShortcut::tr("Alt") : QString::fromLatin1("Alt"), format);
-+            addKey(s, nativeText ? QShortcut::tr("Alt", "Alt key, used for shortcuts") : QString::fromLatin1("Alt"), format);
-         if ((key & Qt::SHIFT) == Qt::SHIFT)
--            addKey(s, nativeText ? QShortcut::tr("Shift") : QString::fromLatin1("Shift"), format);
-+            addKey(s, nativeText ? QShortcut::tr("Shift", "Shift key, used for shortcuts") : QString::fromLatin1("Shift"), format);
-     }
-@@ -1132,7 +1132,7 @@ QString QKeySequencePrivate::encodeString(int key, QKeySequence::SequenceFormat
-             p += QChar((key-0x10000)%400+0xdc00);
-         }
-     } else if (key >= Qt::Key_F1 && key <= Qt::Key_F35) {
--            p = nativeText ? QShortcut::tr("F%1").arg(key - Qt::Key_F1 + 1)
-+            p = nativeText ? QShortcut::tr("F%1", "Fx key, used for shortcuts").arg(key - Qt::Key_F1 + 1)
-                            : QString::fromLatin1("F%1").arg(key - Qt::Key_F1 + 1);
-     } else if (key) {
-         int i=0;
--- 
-1.6.5.1
-
diff --git a/qt/patches/qt-4.6.3-bn-rendering-bz562049.patch b/qt/patches/qt-4.6.3-bn-rendering-bz562049.patch
deleted file mode 100644 (file)
index 0e562e4..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -rup qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
---- qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp    2010-06-02 07:33:13.000000000 +0530
-+++ qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp        2010-09-04 13:27:33.000000000 +0530
-@@ -1741,6 +1741,11 @@ static int indic_nextSyllableBoundary(HB
-           if (state == Halant && uc[pos] == 0x200d /* ZWJ */)
-               break;
-             // the control character should be the last char in the item
-+          if (state == Consonant && script == HB_Script_Bengali && uc[pos-1] == 0x09B0 && uc[pos] == 0x200d /* ZWJ */)
-+              break;
-+          if (state == Consonant && script == HB_Script_Kannada && uc[pos-1] == 0x0CB0 && uc[pos] == 0x200d /* ZWJ */)
-+              break;
-+            // Bengali and Kannada has a special exception for rendering yaphala with ra (to avoid reph) see http://www.unicode.org/faq/indic.html#15
-             ++pos;
-             goto finish;
-         case Consonant:
diff --git a/qt/patches/qt-4.6.3-bn-rendering-bz562058.patch b/qt/patches/qt-4.6.3-bn-rendering-bz562058.patch
deleted file mode 100644 (file)
index ee76927..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -rup qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
---- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp      2010-06-30 07:23:12.000000000 +0530
-+++ qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp  2010-09-22 14:33:33.000000000 +0530
-@@ -37,7 +37,7 @@ static HB_Bool isLetter(HB_UChar16 ucs)
-                      FLAG(HB_Letter_Titlecase) |
-                      FLAG(HB_Letter_Modifier) |
-                      FLAG(HB_Letter_Other);
--    return FLAG(HB_GetUnicodeCharCategory(ucs)) & test;
-+    return (FLAG(HB_GetUnicodeCharCategory(ucs)) &  test) != 0;
- }
- static HB_Bool isMark(HB_UChar16 ucs)
diff --git a/qt/patches/qt-4.6.3-indic-rendering-bz631732.patch b/qt/patches/qt-4.6.3-indic-rendering-bz631732.patch
deleted file mode 100644 (file)
index 507f876..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -rup qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
---- qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp    2010-06-02 07:33:13.000000000 +0530
-+++ qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp        2010-09-10 18:37:23.000000000 +0530
-@@ -1779,10 +1779,6 @@ static int indic_nextSyllableBoundary(HB
-         case Matra:
-             if (state == Consonant || state == Nukta)
-                 break;
--            if (state == Matra) {
--                // ### needs proper testing for correct two/three part matras
--                break;
--            }
-             // ### not sure if this is correct. If it is, does it apply only to Bengali or should
-             // it work for all Indic languages?
-             // the combination Independent_A + Vowel Sign AA is allowed.
diff --git a/qt/patches/qt-4.6.3-indic-rendering-bz636399.patch b/qt/patches/qt-4.6.3-indic-rendering-bz636399.patch
deleted file mode 100644 (file)
index bf49f30..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -rup qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
---- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp      2010-06-30 07:23:12.000000000 +0530
-+++ qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp  2010-09-20 11:40:58.000000000 +0530
-@@ -660,18 +660,18 @@ static const unsigned char indicPosition
-     None, None, None, None,
-     None, None, None, None,
--    None, None, None, None,
--    None, None, None, None,
--    None, None, None, None,
-+    None, Below, Below, Below,
-+    Below, Below, Below, Below,
-+    Below, Below, None, Below,
--    None, None, None, None,
--    Below, None, None, None,
--    Below, None, None, None,
-+    Below, Below, Below, Below,
-+    Below, Below, Below, Below,
-+    Below, None, Below, Below,
-     Below, Below, Below, Post,
-     Below, None, Below, Below,
--    None, None, None, None,
--    None, None, None, None,
-+    None, Below, Below, Below,
-+    Below, Below, None, None,
-     None, None, Post, Above,
-     Post, Below, Below, Below,
diff --git a/qt/patches/qt-4.8.0-CVE-2011-3922-bz#772125.patch b/qt/patches/qt-4.8.0-CVE-2011-3922-bz#772125.patch
new file mode 100644 (file)
index 0000000..31f3b9f
--- /dev/null
@@ -0,0 +1,12 @@
+--- qt-4/src/3rdparty/harfbuzz/src/harfbuzz-myanmar.c.bz#772125        2012-01-09 10:16:08.000000000 +0100
++++ qt-4/src/3rdparty/harfbuzz/src/harfbuzz-myanmar.c  2012-01-09 10:16:47.000000000 +0100
+@@ -359,7 +359,8 @@
+         if (kinzi >= 0 && i > base && (cc & Mymr_CF_AFTER_KINZI)) {
+             reordered[len] = Mymr_C_NGA;
+             reordered[len+1] = Mymr_C_VIRAMA;
+-            properties[len-1] = AboveForm;
++            if (len > 0)
++                properties[len-1] = AboveForm;
+             properties[len] = AboveForm;
+             len += 2;
+             kinzi = -1;
diff --git a/qt/patches/qt-4.8.1-fix-no-xshape-broken-build.patch b/qt/patches/qt-4.8.1-fix-no-xshape-broken-build.patch
new file mode 100644 (file)
index 0000000..c4a4453
--- /dev/null
@@ -0,0 +1,51 @@
+diff -Nur a/src/gui/kernel/qdnd_x11.cpp b/src/gui/kernel/qdnd_x11.cpp
+--- a/src/gui/kernel/qdnd_x11.cpp      2012-03-14 15:01:16.000000000 +0100
++++ b/src/gui/kernel/qdnd_x11.cpp      2012-05-20 17:19:38.992247206 +0200
+@@ -1422,6 +1422,7 @@
+     global_accepted_action = Qt::IgnoreAction;
+ }
++#ifndef QT_NO_SHAPE
+ static
+ bool windowInteractsWithPosition(const QPoint & pos, Window w, int shapeType)
+ {
+@@ -1436,6 +1437,7 @@
+     }
+     return interacts;
+ }
++#endif
+ static
+ Window findRealWindow(const QPoint & pos, Window w, int md)
+@@ -1462,6 +1464,8 @@
+                 XGetWindowProperty(X11->display, w, ATOM(XdndAware), 0, 0, False,
+                                    AnyPropertyType, &type, &f,&n,&a,&data);
+                 if (data) XFree(data);
++
++#ifndef QT_NO_SHAPE
+                 if (type) {
+                     // When ShapeInput and ShapeBounding are not set they return a single rectangle with the geometry of the window, this is why we
+                     // need an && here so that in the case one is set and the other is not we still get the correct result.
+@@ -1469,6 +1473,9 @@
+                     if (windowContainsMouse)
+                         return w;
+                 }
++#else
++              return w;
++#endif
+             }
+             Window r, p;
+@@ -1488,10 +1495,12 @@
+                 // innermost window.
+             }
++#ifndef QT_NO_SHAPE
+             // No children!
+             if (!windowContainsMouse)
+                 return 0;
+             else
++#endif
+                 return w;
+         }
+     }
diff --git a/qt/patches/qt-4.8.1-webkit-no_Werror.patch b/qt/patches/qt-4.8.1-webkit-no_Werror.patch
new file mode 100644 (file)
index 0000000..ef5d55d
--- /dev/null
@@ -0,0 +1,12 @@
+diff -up qt-everywhere-opensource-src-4.8.1/src/3rdparty/webkit/Source/WebKit.pri.no_Werror qt-everywhere-opensource-src-4.8.1/src/3rdparty/webkit/Source/WebKit.pri
+--- qt-everywhere-opensource-src-4.8.1/src/3rdparty/webkit/Source/WebKit.pri.no_Werror 2012-03-14 15:01:29.000000000 +0100
++++ qt-everywhere-opensource-src-4.8.1/src/3rdparty/webkit/Source/WebKit.pri   2012-03-28 17:12:33.391294004 +0200
+@@ -102,8 +102,6 @@ CONFIG -= warn_on
+ # Treat warnings as errors on x86/Linux/GCC
+ linux-g++* {
+-    !CONFIG(standalone_package):isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386): QMAKE_CXXFLAGS += -Werror
+-
+     greaterThan(QT_GCC_MAJOR_VERSION, 3):greaterThan(QT_GCC_MINOR_VERSION, 5) {
+         if (!contains(QMAKE_CXXFLAGS, -std=c++0x) && !contains(QMAKE_CXXFLAGS, -std=gnu++0x)) {
+             # We need to deactivate those warnings because some names conflicts with upcoming c++0x types (e.g.nullptr).
index f0c9eaa944bf3d0fffc414e007688f31fa4c5fd0..d4e5924dffbe1cf0911c561cc47f02cc4c5e08b2 100644 (file)
@@ -1,7 +1,7 @@
-diff -up qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp.glib_eventloop_nullcheck qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp
---- qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp.glib_eventloop_nullcheck    2010-06-01 21:03:15.000000000 -0500
-+++ qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp     2010-06-29 14:58:12.299073784 -0500
-@@ -76,7 +76,7 @@ static gboolean x11EventSourcePrepare(GS
+diff -ur qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck/src/gui/kernel/qguieventdispatcher_glib.cpp
+--- qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp     2010-06-02 04:03:15.000000000 +0200
++++ qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck/src/gui/kernel/qguieventdispatcher_glib.cpp    2010-12-08 22:22:38.000000000 +0100
+@@ -76,7 +76,7 @@
      GX11EventSource *source = reinterpret_cast<GX11EventSource *>(s);
      return (XEventsQueued(X11->display, QueuedAfterFlush)
              || (!(source->flags & QEventLoop::ExcludeUserInputEvents)
@@ -10,7 +10,7 @@ diff -up qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_g
  }
  
  static gboolean x11EventSourceCheck(GSource *s)
-@@ -84,7 +84,7 @@ static gboolean x11EventSourceCheck(GSou
+@@ -84,7 +84,7 @@
      GX11EventSource *source = reinterpret_cast<GX11EventSource *>(s);
      return (XEventsQueued(X11->display, QueuedAfterFlush)
              || (!(source->flags & QEventLoop::ExcludeUserInputEvents)
@@ -19,3 +19,51 @@ diff -up qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_g
  }
  
  static gboolean x11EventSourceDispatch(GSource *s, GSourceFunc callback, gpointer user_data)
+@@ -95,7 +95,7 @@
+     do {
+         XEvent event;
+         if (!(source->flags & QEventLoop::ExcludeUserInputEvents)
+-            && !source->d->queuedUserInputEvents.isEmpty()) {
++            && source->d && !source->d->queuedUserInputEvents.isEmpty()) {
+             // process a pending user input event
+             event = source->d->queuedUserInputEvents.takeFirst();
+         } else if (XEventsQueued(X11->display, QueuedAlready)) {
+@@ -112,7 +112,8 @@
+                 case XKeyRelease:
+                 case EnterNotify:
+                 case LeaveNotify:
+-                    source->d->queuedUserInputEvents.append(event);
++                    if (source->d)
++                        source->d->queuedUserInputEvents.append(event);
+                     continue;
+                 case ClientMessage:
+@@ -127,7 +128,8 @@
+                             break;
+                         }
+                     }
+-                    source->d->queuedUserInputEvents.append(event);
++                    if (source->d)
++                        source->d->queuedUserInputEvents.append(event);
+                     continue;
+                 default:
+@@ -140,7 +142,7 @@
+         }
+         // send through event filter
+-        if (source->q->filterEvent(&event))
++        if (source->q && source->q->filterEvent(&event))
+             continue;
+         if (qApp->x11ProcessEvent(&event) == 1)
+@@ -152,7 +154,8 @@
+  out:
+-    source->d->runTimersOnceWithNormalPriority();
++    if (source->d)
++        source->d->runTimersOnceWithNormalPriority();
+     if (callback)
+         callback(user_data);
diff --git a/qt/patches/qt-everywhere-opensource-src-4.7.0-CVE-2010-1822-crash-svg-image.patch b/qt/patches/qt-everywhere-opensource-src-4.7.0-CVE-2010-1822-crash-svg-image.patch
deleted file mode 100644 (file)
index 32b9713..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -up qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp.CVE-2010-1822-crash-svg-image qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp
---- qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp.CVE-2010-1822-crash-svg-image   2010-09-10 11:05:20.000000000 +0200
-+++ qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp 2010-10-25 14:22:06.542771102 +0200
-@@ -86,6 +86,11 @@ RenderObject* SVGGElement::createRendere
-     return new (arena) RenderSVGTransformableContainer(this);
- }
-+bool SVGGElement::rendererIsNeeded(RenderStyle*)
-+{
-+    return parentNode() && parentNode()->isSVGElement(); 
-+}
-+
- }
- #endif // ENABLE(SVG)
-diff -up qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h.CVE-2010-1822-crash-svg-image qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h
---- qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h.CVE-2010-1822-crash-svg-image     2010-09-10 11:05:21.000000000 +0200
-+++ qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h   2010-10-25 14:28:37.467854695 +0200
-@@ -43,6 +43,7 @@ namespace WebCore {
-         virtual void parseMappedAttribute(MappedAttribute*);
-         virtual void svgAttributeChanged(const QualifiedName&);
-         virtual void synchronizeProperty(const QualifiedName&);
-+        virtual bool rendererIsNeeded(RenderStyle*);
-         virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
-         virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
diff --git a/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-13567-QTreeView.patch b/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-13567-QTreeView.patch
deleted file mode 100644 (file)
index d517de5..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-From 6da6b7099d4e0b49329793e4b90703ec3d868048 Mon Sep 17 00:00:00 2001
-From: Frank Reininghaus <frank78ac@googlemail.com>
-Date: Wed, 22 Sep 2010 10:19:59 +0200
-Subject: [PATCH] QTreeView: do not scroll to top if last item is removed
-
-When the last item is the current item and is removed,
-QTreeViewPrivate::updateScrollBars() is called after QTreeViewPrivate's
-viewItems member is cleared. This commit makes sure that viewItems is
-restored by calling QTreeView::doItemsLayout() in this case, preventing
-that the scroll bar range is set to zero temporarily and the view is
-scrolled to the top unexpectedly (this was a regression in 4.7.0:
-QTBUG-13567).
-
-Merge-request: 2481
-Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
-
-diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
-index b797776..40b51fe 100644
---- a/src/gui/itemviews/qtreeview.cpp
-+++ b/src/gui/itemviews/qtreeview.cpp
-@@ -3435,6 +3435,10 @@ void QTreeViewPrivate::updateScrollBars()
-     if (!viewportSize.isValid())
-         viewportSize = QSize(0, 0);
-+    if (viewItems.isEmpty()) {
-+        q->doItemsLayout();
-+    }
-+
-     int itemsInViewport = 0;
-     if (uniformRowHeights) {
-         if (defaultItemHeight <= 0)
diff --git a/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-6185.patch b/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-6185.patch
deleted file mode 100644 (file)
index 0b99d08..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-From 9e9a7bc29319d52c3e563bc2c5282cb7e6890eba Mon Sep 17 00:00:00 2001
-From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
-Date: Wed, 29 Sep 2010 14:02:10 +0200
-Subject: [PATCH] Fixes cursor shape when widget becomes native on X11.
-
-When a native window handle is created for a widget that has override
-cursor set, we should reset the cursor on the parent and set the cursor
-on the new window handle.
-
-Task-number: QTBUG-6185
-Reviewed-by: Olivier Goffart
----
- src/gui/kernel/qwidget_x11.cpp |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
-index e01489f..8d80e10 100644
---- a/src/gui/kernel/qwidget_x11.cpp
-+++ b/src/gui/kernel/qwidget_x11.cpp
-@@ -889,8 +889,10 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
-                 q->setWindowOpacity(maybeTopData()->opacity/255.);
-         }
--    } else if (q->testAttribute(Qt::WA_SetCursor) && q->internalWinId()) {
-+    } else if (q->internalWinId()) {
-         qt_x11_enforce_cursor(q);
-+        if (QWidget *p = q->parentWidget()) // reset the cursor on the native parent
-+            qt_x11_enforce_cursor(p);
-     }
-     if (extra && !extra->mask.isEmpty() && q->internalWinId())
--- 
-1.6.1
-
diff --git a/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-qtwebkit_pluginpath.patch b/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-qtwebkit_pluginpath.patch
deleted file mode 100644 (file)
index 016b3b4..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp.pluginpath qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp
---- qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp.pluginpath 2010-05-03 19:43:20.000000000 -0500
-+++ qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp    2010-06-18 10:02:37.004788646 -0500
-@@ -345,6 +345,7 @@ Vector<String> PluginDatabase::defaultPl
-     paths.append("/usr/lib/firefox/plugins");
-     paths.append("/usr/lib64/browser-plugins");
-     paths.append("/usr/lib/browser-plugins");
-+    paths.append("/usr/lib/mozilla/plugins-wrapped");
-     paths.append("/usr/lib/mozilla/plugins");
-     paths.append("/usr/local/netscape/plugins");
-     paths.append("/opt/mozilla/plugins");
-@@ -355,6 +356,7 @@ Vector<String> PluginDatabase::defaultPl
-     paths.append("/usr/lib/netscape/plugins-libc5");
-     paths.append("/usr/lib/netscape/plugins-libc6");
-     paths.append("/usr/lib64/netscape/plugins");
-+    paths.append("/usr/lib64/mozilla/plugins-wrapped");
-     paths.append("/usr/lib64/mozilla/plugins");
-     paths.append("/usr/lib/nsbrowser/plugins");
-     paths.append("/usr/lib64/nsbrowser/plugins");
diff --git a/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-s390x.patch b/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-s390x.patch
deleted file mode 100644 (file)
index 1eedf83..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390x qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
---- qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390x   2010-06-16 13:54:50.000000000 +0200
-+++ qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2010-06-16 13:53:43.000000000 +0200
-@@ -179,6 +179,18 @@
- #define WTF_CPU_SPARC 1
- #endif
-+/* CPU(S390X) - S390 64-bit */                                                                                  
-+#if defined(__s390x__)                                                                                          
-+#define WTF_CPU_S390X 1                                                                                         
-+#define WTF_CPU_BIG_ENDIAN 1                                                                                    
-+#endif                                                                                                          
-+                                                                                                                
-+/* CPU(S390) - S390 32-bit */                                                                                   
-+#if defined(__s390__)                                                                                           
-+#define WTF_CPU_S390 1                                                                                          
-+#define WTF_CPU_BIG_ENDIAN 1                                                                                    
-+#endif                                                                                                          
-+   
- /* CPU(X86) - i386 / x86 32-bit */
- #if   defined(__i386__) \
-     || defined(i386)     \
-@@ -860,7 +872,7 @@
- #endif
- #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64)
--#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64)
-+#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(S390X)
- #define WTF_USE_JSVALUE64 1
- #elif CPU(ARM) || CPU(PPC64)
- #define WTF_USE_JSVALUE32 1
-diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h.s390x qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
---- qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h.s390x   2010-06-16 13:49:00.000000000 +0200
-+++ qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h 2010-06-16 13:50:01.000000000 +0200
-@@ -169,6 +169,18 @@
- #define WTF_CPU_SPARC 1
- #endif
-+/* CPU(S390X) - S390 64-bit */                                                                                  
-+#if defined(__s390x__)                                                                                          
-+#define WTF_CPU_S390X 1                                                                                         
-+#define WTF_CPU_BIG_ENDIAN 1                                                                                    
-+#endif                                                                                                          
-+                                                                                                                
-+/* CPU(S390) - S390 32-bit */                                                                                   
-+#if defined(__s390__)                                                                                           
-+#define WTF_CPU_S390 1                                                                                          
-+#define WTF_CPU_BIG_ENDIAN 1                                                                                    
-+#endif                                                                                                          
-+
- /* CPU(X86) - i386 / x86 32-bit */
- #if   defined(__i386__) \
-     || defined(i386)     \
-@@ -874,6 +886,7 @@
- #if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) \
-     || (CPU(IA64) && !CPU(IA64_32)) \
-     || CPU(ALPHA) \
-+    || CPU(S390X) \
-     || CPU(SPARC64)
- #define WTF_USE_JSVALUE64 1
- #elif CPU(ARM) || CPU(PPC64) || CPU(MIPS)
diff --git a/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-uic_multilib.patch b/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-uic_multilib.patch
deleted file mode 100644 (file)
index 09670c1..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp.uic_multilib qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp
---- qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp.uic_multilib     2010-05-03 19:43:25.000000000 -0500
-+++ qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp  2010-06-25 14:11:21.815474310 -0500
-@@ -152,7 +152,7 @@ void Ui3Reader::embed(const char *projec
-     for ( it = images.begin(); it != images.end(); ++it )
-         out << "**      " << *it << "\n";
-     out << "**\n";
--    out << "** Created: " << QDateTime::currentDateTime().toString() << "\n";
-+    out << "** Created: " << "\n";
-     out << "**      by: The User Interface Compiler for Qt version " << QT_VERSION_STR << "\n";
-     out << "**\n";
-     out << "** WARNING! All changes made in this file will be lost!\n";
-diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp
---- qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp.uic_multilib       2010-05-03 19:43:25.000000000 -0500
-+++ qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp    2010-06-25 14:11:32.910460623 -0500
-@@ -146,7 +146,7 @@ void Uic::writeCopyrightHeader(DomUI *ui
-         out << "/********************************************************************************\n";
-         out << "** Form generated from reading UI file '" << QFileInfo(opt.inputFile).fileName() << "'\n";
-         out << "**\n";
--        out << "** Created: " << QDateTime::currentDateTime().toString() << "\n";
-+        out << "** Created: " << "\n";
-         out << "**      " << QString::fromLatin1("by: Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR));
-         out << "**\n";
-         out << "** WARNING! All changes made in this file will be lost when recompiling UI file!\n";
-diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp
---- qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp.uic_multilib        2010-05-03 19:43:25.000000000 -0500
-+++ qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp     2010-06-25 14:10:45.360711498 -0500
-@@ -139,7 +139,7 @@ void Uic::writeCopyrightHeader(DomUI *ui
-         out << "/********************************************************************************\n";
-         out << "** Form generated from reading UI file '" << QFileInfo(opt.inputFile).fileName() << "'\n";
-         out << "**\n";
--        out << "** Created: " << QDateTime::currentDateTime().toString() << "\n";
-+        out << "** Created: " << "\n";
-         out << "**      " << QString::fromLatin1("by: Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR));
-         out << "**\n";
-         out << "** WARNING! All changes made in this file will be lost when recompiling UI file!\n";
diff --git a/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-kde4_plugins.patch b/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-kde4_plugins.patch
deleted file mode 100644 (file)
index 822ace8..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp.kde4_plugins qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp
---- qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp.kde4_plugins      2010-06-29 20:53:15.000000000 -0500
-+++ qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp   2010-07-08 08:24:12.714604479 -0500
-@@ -2262,6 +2262,15 @@ QStringList QCoreApplication::libraryPat
-             if (!app_libpaths->contains(installPathPlugins))
-                 app_libpaths->append(installPathPlugins);
-         }
-+
-+        // hack in support for kde4 plugin paths -- Rex
-+        QString kde4PathPlugins = QLibraryInfo::location(QLibraryInfo::LibrariesPath) + QLatin1String("/kde4/plugins");
-+        if (QFile::exists(kde4PathPlugins)) {
-+            // Make sure we convert from backslashes to slashes.
-+            // kde4PathPlugins = QDir(kde4PathPlugins).canonicalPath();
-+            if (!app_libpaths->contains(kde4PathPlugins))
-+                app_libpaths->append(kde4PathPlugins);
-+        }
- #endif
-         // If QCoreApplication is not yet instantiated,
diff --git a/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-phonon_servicesfile.patch b/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-phonon_servicesfile.patch
deleted file mode 100644 (file)
index e5ef6a0..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop.servicesfile qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop
---- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop.servicesfile      2010-06-29 20:53:12.000000000 -0500
-+++ qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop   2010-07-08 08:25:50.419855085 -0500
-@@ -2,7 +2,7 @@
- Type=Service
- X-KDE-ServiceTypes=PhononBackend
- MimeType=application/x-annodex;video/quicktime;video/x-quicktime;audio/x-m4a;application/x-quicktimeplayer;video/mkv;video/msvideo;video/x-msvideo;video/x-flic;audio/x-aiff;audio/aiff;audio/x-pn-aiff;audio/x-realaudio;audio/basic;audio/x-basic;audio/x-pn-au;audio/x-8svx;audio/8svx;audio/x-16sv;audio/168sv;image/x-ilbm;image/ilbm;video/x-anim;video/anim;image/png;image/x-png;video/mng;video/x-mng;audio/x-ogg;audio/x-speex+ogg;application/ogg;application/ogg;audio/vnd.rn-realaudio;audio/x-pn-realaudio-plugin;audio/x-real-audio;application/vnd.rn-realmedia;video/mpeg;video/x-mpeg;audio/x-wav;audio/wav;audio/x-pn-wav;audio/x-pn-windows-acm;audio/mpeg2;audio/x-mpeg2;audio/mpeg3;audio/x-mpeg3;audio/mpeg;audio/x-mpeg;x-mpegurl;audio/x-mpegurl;audio/mp3;audio/mpeg;
--X-KDE-Library=phonon_gstreamer
-+X-KDE-Library=libphonon_gstreamer
- X-KDE-PhononBackendInfo-InterfaceVersion=1
- X-KDE-PhononBackendInfo-Version=0.1
- X-KDE-PhononBackendInfo-Website=http://gstreamer.freedesktop.org/
-diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro.servicesfile qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro
---- qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro.servicesfile        2010-06-29 20:53:13.000000000 -0500
-+++ qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro     2010-07-08 08:26:58.307612257 -0500
-@@ -122,6 +122,11 @@ contains(QT_CONFIG, dbus) {
-        DEFINES += QT_NO_DBUS
- }
-+# install dbus service file
-+sources.files = $$PHONON_DIR/org.kde.Phonon.AudioOutput.xml
-+sources.path = /usr/share/dbus-1/interfaces
-+INSTALLS += sources
-+
- contains(QT_CONFIG, reduce_exports): CONFIG += hide_symbols
- unix:!isEmpty(QT_CFLAGS_PULSEAUDIO) {
-diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro.servicesfile qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro
---- qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro.servicesfile   2010-06-29 20:53:14.000000000 -0500
-+++ qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro        2010-07-08 08:25:50.387854526 -0500
-@@ -64,6 +64,8 @@ SOURCES += $$PHONON_GSTREAMER_DIR/abstra
- }
- target.path = $$[QT_INSTALL_PLUGINS]/phonon_backend
--INSTALLS += target
-+services.files = $$PHONON_GSTREAMER_DIR/gstreamer.desktop
-+services.path = /usr/share/kde4/services/phononbackends
-+INSTALLS += target services
- include(../../qpluginbase.pri)
diff --git a/qt/patches/qt-everywhere-opensource-src-4.7.0-bpp24.patch b/qt/patches/qt-everywhere-opensource-src-4.7.0-bpp24.patch
deleted file mode 100644 (file)
index 910e15f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp.me qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp
---- qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp.me        2010-10-15 22:04:09.000000000 +0200
-+++ qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp   2010-10-15 22:04:18.000000000 +0200
-@@ -900,9 +900,9 @@ void QX11PixmapData::fromImage(const QIm
-             case BPP24_888:                        // 24 bit MSB
-                 CYCLE(
-                     for (int x=0; x<w; x++) {
--                        *dst++ = qRed  (*p);
-+                        *dst++ = qBlue  (*p);
-                         *dst++ = qGreen(*p);
--                        *dst++ = qBlue (*p++);
-+                        *dst++ = qRed (*p++);
-                     }
-                     )
-                     break;
diff --git a/qt/patches/qt-everywhere-opensource-src-4.7.1-QTBUG-14467.patch b/qt/patches/qt-everywhere-opensource-src-4.7.1-QTBUG-14467.patch
new file mode 100644 (file)
index 0000000..1283f50
--- /dev/null
@@ -0,0 +1,27 @@
+Fails to create debug build of Qt projects on mingw
+http://bugzilla.redhat.com/653674
+http://bugreports.qt.nokia.com/browse/QTBUG-14467
+
+--- qt-everywhere-opensource-src-4.7.1/mkspecs/features/qt_functions.prf.orig  2010-11-16 03:12:17.000000000 +0500
++++ qt-everywhere-opensource-src-4.7.1/mkspecs/features/qt_functions.prf       2010-11-16 03:12:50.000000000 +0500
+@@ -62,7 +62,7 @@ defineTest(qtAddLibrary) {
+     }
+     isEmpty(LINKAGE) {
+        if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
+-           win32:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}d
++           win32:LINKAGE = -l$${LIB_NAME}d$${QT_LIBINFIX}
+            mac:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}_debug
+        }
+        isEmpty(LINKAGE):LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}
+--- qt-everywhere-opensource-src-4.7.1/mkspecs/features/win32/windows.prf.orig 2010-11-16 03:11:34.000000000 +0500
++++ qt-everywhere-opensource-src-4.7.1/mkspecs/features/win32/windows.prf      2010-11-16 03:11:51.000000000 +0500
+@@ -6,7 +6,7 @@ contains(TEMPLATE, ".*app"){
+     qt:for(entryLib, $$list($$unique(QMAKE_LIBS_QT_ENTRY))) {
+         isEqual(entryLib, -lqtmain): {
+-            CONFIG(debug, debug|release): QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX}d
++            CONFIG(debug, debug|release): QMAKE_LIBS += $${entryLib}d$${QT_LIBINFIX}
+             else: QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX}
+         } else {
+             QMAKE_LIBS += $${entryLib}
diff --git a/qt/patches/qt-everywhere-opensource-src-4.7.4-tds_no_strict_aliasing.patch b/qt/patches/qt-everywhere-opensource-src-4.7.4-tds_no_strict_aliasing.patch
new file mode 100644 (file)
index 0000000..b675929
--- /dev/null
@@ -0,0 +1,12 @@
+diff -up qt-everywhere-opensource-src-4.7.4/src/sql/drivers/tds/qsql_tds.pri.tds_no_strict_aliasing qt-everywhere-opensource-src-4.7.4/src/sql/drivers/tds/qsql_tds.pri
+--- qt-everywhere-opensource-src-4.7.4/src/sql/drivers/tds/qsql_tds.pri.tds_no_strict_aliasing 2011-09-12 01:49:28.000000000 -0500
++++ qt-everywhere-opensource-src-4.7.4/src/sql/drivers/tds/qsql_tds.pri        2011-11-03 13:04:34.271086323 -0500
+@@ -1,6 +1,8 @@
+ HEADERS += $$PWD/qsql_tds.h
+ SOURCES += $$PWD/qsql_tds.cpp
++*-g++*: QMAKE_CXXFLAGS += -fno-strict-aliasing
++
+ unix|win32-g++*: {
+     LIBS *= $$QT_LFLAGS_TDS
+     !contains(LIBS, .*sybdb.*):LIBS += -lsybdb
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-QTBUG-14724.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-QTBUG-14724.patch
new file mode 100644 (file)
index 0000000..3672ca7
--- /dev/null
@@ -0,0 +1,11 @@
+diff -up qt-everywhere-opensource-src-4.8.0/src/gui/painting/qpdf.cpp.QTBUG-14724 qt-everywhere-opensource-src-4.8.0/src/gui/painting/qpdf.cpp
+--- qt-everywhere-opensource-src-4.8.0/src/gui/painting/qpdf.cpp.QTBUG-14724   2011-10-03 22:44:31.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.0/src/gui/painting/qpdf.cpp       2011-10-17 10:55:49.713265396 -0500
+@@ -1686,6 +1686,7 @@ bool QPdfBaseEnginePrivate::openPrintDev
+         cupsTempFile = ret.second;
+         outDevice = new QFile();
+         static_cast<QFile *>(outDevice)->open(ret.first, QIODevice::WriteOnly);
++        fd = ret.first;
+ #endif
+ #ifndef QT_NO_LPR
+     } else {
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-QTBUG-21900.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-QTBUG-21900.patch
new file mode 100644 (file)
index 0000000..29fc82e
--- /dev/null
@@ -0,0 +1,101 @@
+From a91e9dd202640598d8dec091c67ec94536390e7f Mon Sep 17 00:00:00 2001
+From: "Owen W. Taylor" <otaylor@fishsoup.net>
+Date: Mon, 17 Oct 2011 17:27:43 -0400
+Subject: [PATCH] Fix logic for figuring out what ConfigureNotify positions
+ can be trusted
+
+When reading ahead in the queue for ConfigureNotify events, it's necessary
+to look for intermediate ReparentNotify events as well, since they will
+determine whether the position in the event can be trusted or not.
+---
+ src/gui/kernel/qapplication_x11.cpp |   47 ++++++++++++++++++++++++++++++----
+ 1 files changed, 41 insertions(+), 6 deletions(-)
+
+diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp
+index 408e9ac..3a1d3eb 100644
+--- a/src/gui/kernel/qapplication_x11.cpp
++++ b/src/gui/kernel/qapplication_x11.cpp
+@@ -816,6 +816,27 @@ static Bool qt_sync_request_scanner(Display*, XEvent *event, XPointer arg)
+ #endif
+ #endif // QT_NO_XSYNC
++struct qt_configure_event_data
++{
++    WId window;
++    WId parent;
++};
++
++static Bool qt_configure_event_scanner(Display*, XEvent *event, XPointer arg)
++{
++    qt_configure_event_data *data =
++        reinterpret_cast<qt_configure_event_data*>(arg);
++    if (event->type == ConfigureNotify &&
++        event->xconfigure.window == data->window) {
++        return true;
++    } else if (event->type == ReparentNotify &&
++               event->xreparent.window == data->window) {
++        data->parent = event->xreparent.parent;
++    }
++
++    return false;
++}
++
+ static void qt_x11_create_intern_atoms()
+ {
+     const char *names[QX11Data::NAtoms];
+@@ -5273,8 +5294,11 @@ bool QETWidget::translateConfigEvent(const XEvent *event)
+         if (d->extra->compress_events) {
+             // ConfigureNotify compression for faster opaque resizing
+             XEvent otherEvent;
+-            while (XCheckTypedWindowEvent(X11->display, internalWinId(), ConfigureNotify,
+-                                          &otherEvent)) {
++            qt_configure_event_data configureData;
++            configureData.window = internalWinId();
++            configureData.parent = d->topData()->parentWinId;
++            while (XCheckIfEvent(X11->display, &otherEvent,
++                                 &qt_configure_event_scanner, (XPointer)&configureData)) {
+                 if (qt_x11EventFilter(&otherEvent))
+                     continue;
+@@ -5287,13 +5311,19 @@ bool QETWidget::translateConfigEvent(const XEvent *event)
+                 newSize.setWidth(otherEvent.xconfigure.width);
+                 newSize.setHeight(otherEvent.xconfigure.height);
++                trust = isVisible()
++                        && (configureData.parent == XNone ||
++                            configureData.parent == QX11Info::appRootWindow());
++
+                 if (otherEvent.xconfigure.send_event || trust) {
+                     newCPos.rx() = otherEvent.xconfigure.x +
+                                    otherEvent.xconfigure.border_width;
+                     newCPos.ry() = otherEvent.xconfigure.y +
+                                    otherEvent.xconfigure.border_width;
+                     isCPos = true;
+-                }
++                } else {
++                    isCPos = false;
++               }
+             }
+ #ifndef QT_NO_XSYNC
+             qt_sync_request_event_data sync_event;
+@@ -5306,9 +5336,14 @@ bool QETWidget::translateConfigEvent(const XEvent *event)
+         }
+         if (!isCPos) {
+-            // we didn't get an updated position of the toplevel.
+-            // either we haven't moved or there is a bug in the window manager.
+-            // anyway, let's query the position to be certain.
++            // If the last configure event didn't have a trustable position,
++            // it's necessary to query, see ICCCM 4.24:
++            //
++            //  Any real ConfigureNotify event on a top-level window implies
++            //  that the window’s position on the root may have changed, even
++            //  though the event reports that the window’s position in its
++            //  parent is unchanged because the window may have been reparented.
++
+             int x, y;
+             Window child;
+             XTranslateCoordinates(X11->display, internalWinId(),
+-- 
+1.7.6.4
+
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch
new file mode 100644 (file)
index 0000000..4279ce2
--- /dev/null
@@ -0,0 +1,41 @@
+diff -up qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h.QTBUG-22037 qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h
+--- qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h.QTBUG-22037   2011-10-03 22:44:32.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h       2011-10-15 14:25:52.238694974 -0500
+@@ -769,26 +769,18 @@ Q_OUTOFLINE_TEMPLATE void QList<T>::clea
+ template <typename T>
+ Q_OUTOFLINE_TEMPLATE int QList<T>::removeAll(const T &_t)
+ {
+-    int index = indexOf(_t);
+-    if (index == -1)
+-        return 0;
+-
++    detachShared();
+     const T t = _t;
+-    detach();
+-
+-    Node *i = reinterpret_cast<Node *>(p.at(index));
+-    Node *e = reinterpret_cast<Node *>(p.end());
+-    Node *n = i;
+-    node_destruct(i);
+-    while (++i != e) {
+-        if (i->t() == t)
+-            node_destruct(i);
+-        else
+-            *n++ = *i;
+-    }
+-
+-    int removedCount = e - n;
+-    d->end -= removedCount;
++    int removedCount=0, i=0;
++    Node *n;
++    while (i < p.size())
++        if ((n = reinterpret_cast<Node *>(p.at(i)))->t() == t) {
++            node_destruct(n);
++            p.remove(i);
++            ++removedCount;
++        } else {
++            ++i;
++        }
+     return removedCount;
+ }
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-beta1-s390.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-beta1-s390.patch
new file mode 100644 (file)
index 0000000..5f0bbf8
--- /dev/null
@@ -0,0 +1,31 @@
+diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390 qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
+--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390  2011-07-28 11:12:48.000000000 +0200
++++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h       2011-07-28 11:13:56.000000000 +0200
+@@ -189,6 +189,18 @@
+ #define WTF_CPU_SPARC 1
+ #endif
++/* CPU(S390X) - S390 64-bit */
++#if defined(__s390x__)
++#define WTF_CPU_S390X 1
++#define WTF_CPU_BIG_ENDIAN 1
++#endif
++
++/* CPU(S390) - S390 32-bit */
++#if defined(__s390__)
++#define WTF_CPU_S390 1
++#define WTF_CPU_BIG_ENDIAN 1
++#endif
++
+ /* CPU(X86) - i386 / x86 32-bit */
+ #if   defined(__i386__) \
+     || defined(i386)     \
+@@ -873,7 +885,7 @@
+ #endif
+ #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64)
+-#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64)
++#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(S390X)
+ #define WTF_USE_JSVALUE64 1
+ #elif CPU(ARM) || CPU(PPC64)
+ #define WTF_USE_JSVALUE32 1
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-gcc-4.7.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-gcc-4.7.patch
new file mode 100644 (file)
index 0000000..62c436e
--- /dev/null
@@ -0,0 +1,27 @@
+diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h
+--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h.me  2012-01-24 11:24:14.729942043 +0100
++++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h     2012-01-24 14:28:39.848109534 +0100
+@@ -57,9 +57,7 @@ namespace JSC {
+     
+     class JSGlobalObject : public JSVariableObject {
+     protected:
+-        using JSVariableObject::JSVariableObjectData;
+-
+-        struct JSGlobalObjectData : public JSVariableObjectData {
++        struct JSGlobalObjectData : public JSVariableObject::JSVariableObjectData {
+             // We use an explicit destructor function pointer instead of a
+             // virtual destructor because we want to avoid adding a vtable
+             // pointer to this struct. Adding a vtable pointer would force the
+diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h
+--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h.me     2012-01-24 11:40:07.167856677 +0100
++++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h        2012-01-24 14:28:34.640306629 +0100
+@@ -32,8 +32,7 @@ namespace JSC{
+     
+     class JSStaticScopeObject : public JSVariableObject {
+     protected:
+-        using JSVariableObject::JSVariableObjectData;
+-        struct JSStaticScopeObjectData : public JSVariableObjectData {
++        struct JSStaticScopeObjectData : public JSVariableObject::JSVariableObjectData {
+             JSStaticScopeObjectData()
+                 : JSVariableObjectData(&symbolTable, &registerStore + 1)
+             {
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-ld-gold.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-ld-gold.patch
new file mode 100644 (file)
index 0000000..0e3897e
--- /dev/null
@@ -0,0 +1,22 @@
+diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri
+--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri.me        2012-01-24 13:05:50.460890750 +0100
++++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri   2012-01-24 13:19:08.836799974 +0100
+@@ -3,12 +3,12 @@
+ contains(JAVASCRIPTCORE_JIT,yes): DEFINES+=ENABLE_JIT=1
+ contains(JAVASCRIPTCORE_JIT,no): DEFINES+=ENABLE_JIT=0
+-linux-g++ {
+-isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) {
+-    message(Using gold linker)
+-    QMAKE_LFLAGS+=-fuse-ld=gold
+-}
+-}
++#linux-g++ {
++#isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) {
++#    message(Using gold linker)
++#    QMAKE_LFLAGS+=-fuse-ld=gold
++#}
++#}
+ # We use this flag on production branches
+ # See https://bugs.webkit.org/show_bug.cgi?id=60824
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-qvfb.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-qvfb.patch
new file mode 100644 (file)
index 0000000..2fffb8a
--- /dev/null
@@ -0,0 +1,12 @@
+diff -up qt-everywhere-opensource-src-4.8.0/tools/qvfb/qvfb.pro.qvfb qt-everywhere-opensource-src-4.8.0/tools/qvfb/qvfb.pro
+--- qt-everywhere-opensource-src-4.8.0/tools/qvfb/qvfb.pro.qvfb        2011-12-27 21:02:19.765512041 -0600
++++ qt-everywhere-opensource-src-4.8.0/tools/qvfb/qvfb.pro     2011-12-27 21:02:39.271268187 -0600
+@@ -38,8 +38,6 @@ SOURCES         = qvfb.cpp \
+ !embedded {
+     DEFINES         += QT_NO_QWS_SIGNALHANDLER
+-    HEADERS         += ../../src/gui/embedded/qlock_p.h
+-    SOURCES         += ../../src/gui/embedded/qlock.cpp
+ }
+ include(../shared/deviceskin/deviceskin.pri)
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-rc1-moc-boost148.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-rc1-moc-boost148.patch
new file mode 100644 (file)
index 0000000..f0ce656
--- /dev/null
@@ -0,0 +1,11 @@
+diff -ur qt-everywhere-opensource-src-4.8.0/src/tools/moc/main.cpp qt-everywhere-opensource-src-4.8.0-moc-boost148/src/tools/moc/main.cpp
+--- qt-everywhere-opensource-src-4.8.0/src/tools/moc/main.cpp  2011-10-04 05:44:32.000000000 +0200
++++ qt-everywhere-opensource-src-4.8.0-moc-boost148/src/tools/moc/main.cpp     2011-12-04 00:11:25.000000000 +0100
+@@ -187,6 +187,7 @@
+     Moc moc;
+     pp.macros["Q_MOC_RUN"];
+     pp.macros["__cplusplus"];
++    pp.macros["BOOST_TT_HAS_OPERATOR_HPP_INCLUDED"]; // rh#756395
+     QByteArray filename;
+     QByteArray output;
+     FILE *in = 0;
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-s390-atomic.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-s390-atomic.patch
new file mode 100644 (file)
index 0000000..6fedcc8
--- /dev/null
@@ -0,0 +1,20 @@
+diff -up qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h.s390-atomic qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h
+--- qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h.s390-atomic     2011-12-18 16:15:20.000000000 +0100
++++ qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h 2011-12-18 16:17:34.000000000 +0100
+@@ -400,6 +400,16 @@ Q_INLINE_TEMPLATE T* QBasicAtomicPointer
+ template <typename T>
++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd)
++{
++#ifndef __s390x__
++    return (T *)__CS_OLD_LOOP(&_q_value, valueToAdd * sizeof(T), "ar", "", "bcr 15,0\n");
++#else
++    return (T *)__CSG_OLD_LOOP(&_q_value, valueToAdd * sizeof(T), "agr", "", "bcr 15,0\n");
++#endif
++}
++
++template <typename T>
+ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
+ {
+     return fetchAndAddOrdered(valueToAdd);
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-timestamp.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-timestamp.patch
new file mode 100644 (file)
index 0000000..2307353
--- /dev/null
@@ -0,0 +1,75 @@
+diff -up qt-everywhere-opensource-src-4.8.0/src/tools/uic3/embed.cpp.uic_multilib qt-everywhere-opensource-src-4.8.0/src/tools/uic3/embed.cpp
+--- qt-everywhere-opensource-src-4.8.0/src/tools/uic3/embed.cpp.uic_multilib   2011-12-08 06:06:03.000000000 +0100
++++ qt-everywhere-opensource-src-4.8.0/src/tools/uic3/embed.cpp        2012-02-20 15:17:27.343005746 +0100
+@@ -152,8 +152,12 @@ void Ui3Reader::embed(const char *projec
+     for ( it = images.begin(); it != images.end(); ++it )
+         out << "**      " << *it << "\n";
+     out << "**\n";
++#ifdef TIMESTAMP
+     out << "** Created: " << QDateTime::currentDateTime().toString() << "\n";
+     out << "**      by: The User Interface Compiler for Qt version " << QT_VERSION_STR << "\n";
++#else
++    out << "** Created by: " << QT_VERSION_STR << "\n";
++#endif
+     out << "**\n";
+     out << "** WARNING! All changes made in this file will be lost!\n";
+     out << "****************************************************************************/\n";
+diff -up qt-everywhere-opensource-src-4.8.0/src/tools/uic3/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.8.0/src/tools/uic3/uic.cpp
+--- qt-everywhere-opensource-src-4.8.0/src/tools/uic3/uic.cpp.uic_multilib     2011-12-08 06:06:03.000000000 +0100
++++ qt-everywhere-opensource-src-4.8.0/src/tools/uic3/uic.cpp  2012-02-20 15:20:13.584706037 +0100
+@@ -146,8 +146,12 @@ void Uic::writeCopyrightHeader(DomUI *ui
+         out << "/********************************************************************************\n";
+         out << "** Form generated from reading UI file '" << QFileInfo(opt.inputFile).fileName() << "'\n";
+         out << "**\n";
++#ifdef TIMESTAMP
+         out << "** Created: " << QDateTime::currentDateTime().toString() << "\n";
+         out << "**      " << QString::fromLatin1("by: Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR));
++#else
++        out << "** Created by: " << QString::fromLatin1("Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR));
++#endif
+         out << "**\n";
+         out << "** WARNING! All changes made in this file will be lost when recompiling UI file!\n";
+         out << "********************************************************************************/\n\n";
+diff -up qt-everywhere-opensource-src-4.8.0/src/tools/uic/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.8.0/src/tools/uic/uic.cpp
+--- qt-everywhere-opensource-src-4.8.0/src/tools/uic/uic.cpp.uic_multilib      2011-12-08 06:06:03.000000000 +0100
++++ qt-everywhere-opensource-src-4.8.0/src/tools/uic/uic.cpp   2012-02-20 15:13:44.175462520 +0100
+@@ -139,8 +139,12 @@ void Uic::writeCopyrightHeader(DomUI *ui
+         out << "/********************************************************************************\n";
+         out << "** Form generated from reading UI file '" << QFileInfo(opt.inputFile).fileName() << "'\n";
+         out << "**\n";
++#ifdef TIMESTAMP
+         out << "** Created: " << QDateTime::currentDateTime().toString() << "\n";
+         out << "**      " << QString::fromLatin1("by: Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR));
++#else
++        out << "** Created by: " << QString::fromLatin1("Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR));
++#endif
+         out << "**\n";
+         out << "** WARNING! All changes made in this file will be lost when recompiling UI file!\n";
+         out << "********************************************************************************/\n\n";
+diff -up qt-everywhere-opensource-src-4.8.0/src/tools/moc/moc.cpp.me qt-everywhere-opensource-src-4.8.0/src/tools/moc/moc.cpp
+--- qt-everywhere-opensource-src-4.8.0/src/tools/moc/moc.cpp.me        2012-02-20 13:22:38.572628193 +0100
++++ qt-everywhere-opensource-src-4.8.0/src/tools/moc/moc.cpp   2012-02-20 14:46:09.981860726 +0100
+@@ -767,8 +767,10 @@ void Moc::parse()
+ void Moc::generate(FILE *out)
+ {
++#ifdef TIMESTAMP
+     QDateTime dt = QDateTime::currentDateTime();
+     QByteArray dstr = dt.toString().toLatin1();
++#endif
+     QByteArray fn = filename;
+     int i = filename.length()-1;
+     while (i>0 && filename[i-1] != '/' && filename[i-1] != '\\')
+@@ -777,8 +779,12 @@ void Moc::generate(FILE *out)
+         fn = filename.mid(i);
+     fprintf(out, "/****************************************************************************\n"
+             "** Meta object code from reading C++ file '%s'\n**\n" , (const char*)fn);
++#ifdef TIMESTAMP
+     fprintf(out, "** Created: %s\n"
+             "**      by: The Qt Meta Object Compiler version %d (Qt %s)\n**\n" , dstr.data(), mocOutputRevision, QT_VERSION_STR);
++#else
++    fprintf(out, "** Created by: The Qt Meta Object Compiler version %d (Qt %s)\n**\n" , mocOutputRevision, QT_VERSION_STR);
++#endif
+     fprintf(out, "** WARNING! All changes made in this file will be lost!\n"
+             "*****************************************************************************/\n\n");
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch
new file mode 100644 (file)
index 0000000..5c8b5a1
--- /dev/null
@@ -0,0 +1,36 @@
+diff -up qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf.multilib qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf
+--- qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf.multilib     2011-05-23 12:26:21.000000000 +0200
++++ qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf      2011-05-25 13:39:38.789054074 +0200
+@@ -12,6 +12,8 @@ QMAKE_INCREMENTAL_STYLE = sublib
+ QMAKE_CFLAGS          = -m32
+ QMAKE_LFLAGS          = -m32
++QMAKE_CFLAGS_RELEASE   += -O2
++
+ include(../common/linux.conf)
+ include(../common/gcc-base-unix.conf)
+ include(../common/g++-unix.conf)
+diff -up qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf.multilib qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf
+--- qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf.multilib     2011-05-23 12:26:21.000000000 +0200
++++ qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf      2011-05-25 13:39:47.460747770 +0200
+@@ -15,6 +15,8 @@ QMAKE_INCREMENTAL_STYLE = sublib
+ QMAKE_CFLAGS          = -m64
+ QMAKE_LFLAGS          = -m64
++QMAKE_CFLAGS_RELEASE   += -O2
++
+ include(../common/linux.conf)
+ include(../common/gcc-base-unix.conf)
+ include(../common/g++-unix.conf)
+diff -up qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf.multilib qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf
+--- qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf.multilib        2011-05-23 12:26:21.000000000 +0200
++++ qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf 2011-05-25 13:39:26.630088814 +0200
+@@ -9,6 +9,8 @@ CONFIG                 += qt warn_on release increment
+ QT                    += core gui
+ QMAKE_INCREMENTAL_STYLE = sublib
++QMAKE_CFLAGS_RELEASE   += -O2
++
+ include(../common/linux.conf)
+ include(../common/gcc-base-unix.conf)
+ include(../common/g++-unix.conf)
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.0-tp-qtreeview-kpackagekit-crash.patch b/qt/patches/qt-everywhere-opensource-src-4.8.0-tp-qtreeview-kpackagekit-crash.patch
new file mode 100644 (file)
index 0000000..947f758
--- /dev/null
@@ -0,0 +1,12 @@
+diff -up qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp.qtreeview-kpackagekit-crash qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp
+--- qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp.qtreeview-kpackagekit-crash  2011-05-23 12:26:21.000000000 +0200
++++ qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp      2011-05-25 13:24:33.137315194 +0200
+@@ -3215,7 +3215,7 @@ int QTreeViewPrivate::itemHeight(int ite
+         return defaultItemHeight;
+     if (viewItems.isEmpty())
+         return 0;
+-    const QModelIndex &index = viewItems.at(item).index;
++    QModelIndex index = viewItems.at(item).index;
+     if (!index.isValid())
+         return 0;
+     int height = viewItems.at(item).height;
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.1-QTBUG-24718.patch b/qt/patches/qt-everywhere-opensource-src-4.8.1-QTBUG-24718.patch
new file mode 100644 (file)
index 0000000..003a0a6
--- /dev/null
@@ -0,0 +1,14 @@
+diff -up qt-everywhere-opensource-src-4.8.1/src/gui/text/qtextlayout.cpp.QTBUG-24718 qt-everywhere-opensource-src-4.8.1/src/gui/text/qtextlayout.cpp
+--- qt-everywhere-opensource-src-4.8.1/src/gui/text/qtextlayout.cpp.QTBUG-24718        2012-03-14 15:01:14.000000000 +0100
++++ qt-everywhere-opensource-src-4.8.1/src/gui/text/qtextlayout.cpp    2012-04-03 10:53:12.973058622 +0200
+@@ -2508,6 +2508,10 @@ qreal QTextLine::cursorToX(int *cursorPo
+     int pos = *cursorPos;
+     int itm;
+     const HB_CharAttributes *attributes = eng->attributes();
++    if (!attributes) {
++        *cursorPos = 0;
++        return x.toReal();
++    }
+     while (pos < line.from + line.length && !attributes[pos].charStop)
+         pos++;
+     if (pos == line.from + (int)line.length) {
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.1-icu_no_debug.patch b/qt/patches/qt-everywhere-opensource-src-4.8.1-icu_no_debug.patch
new file mode 100644 (file)
index 0000000..ddf3184
--- /dev/null
@@ -0,0 +1,23 @@
+diff -up qt-everywhere-opensource-src-4.8.1/src/corelib/tools/qlocale_icu.cpp.icu_no_spam qt-everywhere-opensource-src-4.8.1/src/corelib/tools/qlocale_icu.cpp
+--- qt-everywhere-opensource-src-4.8.1/src/corelib/tools/qlocale_icu.cpp.icu_no_spam   2012-03-14 09:01:17.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.1/src/corelib/tools/qlocale_icu.cpp       2012-04-17 07:30:01.652251482 -0500
+@@ -83,7 +83,9 @@ bool qt_initIcu(const QString &localeStr
+         // resolve libicui18n
+         QLibrary lib(QLatin1String("icui18n"), QLatin1String(U_ICU_VERSION_SHORT));
+         if (!lib.load()) {
++#ifndef QT_NO_DEBUG
+             qWarning() << "Unable to load library icui18n" << lib.errorString();
++#endif
+             status = ErrorLoading;
+             return false;
+         }
+@@ -112,7 +114,9 @@ bool qt_initIcu(const QString &localeStr
+         // resolve libicuuc
+         QLibrary ucLib(QLatin1String("icuuc"), QLatin1String(U_ICU_VERSION_SHORT));
+         if (!ucLib.load()) {
++#ifndef QT_NO_DEBUG
+             qWarning() << "Unable to load library icuuc" << ucLib.errorString();
++#endif
+             status = ErrorLoading;
+             return false;
+         }
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.1-linguist_qmake-qt4.patch b/qt/patches/qt-everywhere-opensource-src-4.8.1-linguist_qmake-qt4.patch
new file mode 100644 (file)
index 0000000..91faeda
--- /dev/null
@@ -0,0 +1,24 @@
+diff -up qt-everywhere-opensource-src-4.8.1/tools/linguist/lrelease/main.cpp.qmake-qt4 qt-everywhere-opensource-src-4.8.1/tools/linguist/lrelease/main.cpp
+--- qt-everywhere-opensource-src-4.8.1/tools/linguist/lrelease/main.cpp.qmake-qt4      2012-03-14 09:01:12.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.1/tools/linguist/lrelease/main.cpp        2012-05-11 08:58:12.902149676 -0500
+@@ -316,7 +316,7 @@ int main(int argc, char **argv)
+ #ifdef QT_BOOTSTRAPPED
+             option.initProperties(binDir + QLatin1String("/qmake"));
+ #else
+-            option.initProperties(app.applicationDirPath() + QLatin1String("/qmake"));
++            option.initProperties(app.applicationDirPath() + QLatin1String("/qmake-qt4"));
+ #endif
+             ProFileParser parser(0, &parseHandler);
+             ProFileEvaluator visitor(&option, &parser, &evalHandler);
+diff -up qt-everywhere-opensource-src-4.8.1/tools/linguist/lupdate/main.cpp.qmake-qt4 qt-everywhere-opensource-src-4.8.1/tools/linguist/lupdate/main.cpp
+--- qt-everywhere-opensource-src-4.8.1/tools/linguist/lupdate/main.cpp.qmake-qt4       2012-03-14 09:01:12.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.1/tools/linguist/lupdate/main.cpp 2012-05-11 09:02:47.393718054 -0500
+@@ -765,7 +765,7 @@ int main(int argc, char **argv)
+         parseHandler.verbose = evalHandler.verbose = !!(options & Verbose);
+         ProFileOption option;
+-        option.initProperties(app.applicationDirPath() + QLatin1String("/qmake"));
++        option.initProperties(app.applicationDirPath() + QLatin1String("/qmake-qt4"));
+         option.setCommandLineArguments(QStringList() << QLatin1String("CONFIG+=lupdate_run"));
+         ProFileParser parser(0, &parseHandler);
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.1-qdbusconnection_no_debug.patch b/qt/patches/qt-everywhere-opensource-src-4.8.1-qdbusconnection_no_debug.patch
new file mode 100644 (file)
index 0000000..8d60dab
--- /dev/null
@@ -0,0 +1,14 @@
+diff -up qt-everywhere-opensource-src-4.8.1/src/dbus/qdbusconnection.cpp.qdbusconnection_nodebug qt-everywhere-opensource-src-4.8.1/src/dbus/qdbusconnection.cpp
+--- qt-everywhere-opensource-src-4.8.1/src/dbus/qdbusconnection.cpp.qdbusconnection_nodebug    2012-04-17 07:18:51.536629078 -0500
++++ qt-everywhere-opensource-src-4.8.1/src/dbus/qdbusconnection.cpp    2012-04-17 07:18:56.910561895 -0500
+@@ -1109,8 +1109,10 @@ public:
+         // make sure this connection is running on the main thread
+         QCoreApplication *instance = QCoreApplication::instance();
+         if (!instance) {
++#ifndef QT_NO_DEBUG
+             qWarning("QDBusConnection: %s D-Bus connection created before QCoreApplication. Application may misbehave.",
+                      type == SessionBus ? "session" : type == SystemBus ? "system" : "generic");
++#endif
+         } else {
+             QDBusConnectionPrivate::d(*this)->moveToThread(instance->thread());
+         }
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch b/qt/patches/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch
new file mode 100644 (file)
index 0000000..7458314
--- /dev/null
@@ -0,0 +1,10 @@
+diff -up qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro.debuginfo qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro
+--- qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro.debuginfo 2012-03-14 09:01:17.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro   2012-05-11 11:55:37.780070386 -0500
+@@ -34,6 +34,3 @@ MOCDIR = .moc
+ *-g++*: QMAKE_CXXFLAGS += -fno-strict-aliasing
+-CONFIG -= separate_debug_info
+-CONFIG += no_debug_info
+-
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.1-qtgahandle.patch b/qt/patches/qt-everywhere-opensource-src-4.8.1-qtgahandle.patch
new file mode 100644 (file)
index 0000000..64ffef3
--- /dev/null
@@ -0,0 +1,53 @@
+diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp
+--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp.me    2012-03-30 21:54:59.921331145 +0200
++++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp       2012-03-30 21:58:14.516042067 +0200
+@@ -41,6 +41,7 @@
+ #include "qtgafile.h"
++#include <QtCore/QBuffer>
+ #include <QtCore/QIODevice>
+ #include <QtCore/QDebug>
+ #include <QtCore/QDateTime>
+@@ -264,3 +265,16 @@ QImage QTgaFile::readImage()
+     // TODO: add processing of TGA extension information - ie TGA 2.0 files
+     return im;
+ }
++/**
++ * Checks if device contains a valid tga image, *without* changing device
++ * position.
++ */
++bool QTgaFile::canRead(QIODevice *device)
++{
++      QByteArray header = device->peek(HeaderSize);
++      if (header.size() < HeaderSize)
++              return false;
++      QBuffer buffer(&header);
++      QTgaFile tga(&buffer);
++      return tga.isValid();
++}
+diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h
+--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h.me      2012-03-30 21:58:39.670023189 +0200
++++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h 2012-03-30 21:59:06.202317384 +0200
+@@ -93,6 +93,8 @@ public:
+     inline QSize size() const;
+     inline Compression compression() const;
++    static bool canRead(QIODevice *device);
++
+ private:
+     static inline quint16 littleEndianInt(const unsigned char *d);
+diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp
+--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp.me 2012-03-30 21:59:17.373303356 +0200
++++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp    2012-03-30 22:00:13.817226439 +0200
+@@ -77,8 +77,7 @@ bool QTgaHandler::canRead(QIODevice *dev
+         qWarning("QTgaHandler::canRead() called with no device");
+         return false;
+     }
+-    QTgaFile tga(device);
+-    return tga.isValid();
++    return QTgaFile::canRead(device);
+ }
+ bool QTgaHandler::read(QImage *image)
diff --git a/qt/patches/qt-everywhere-opensource-src-4.8.1-type.patch b/qt/patches/qt-everywhere-opensource-src-4.8.1-type.patch
new file mode 100644 (file)
index 0000000..99aafbe
--- /dev/null
@@ -0,0 +1,26 @@
+diff -up qt-everywhere-opensource-src-4.8.1/src/corelib/plugin/qelfparser_p.cpp.me qt-everywhere-opensource-src-4.8.1/src/corelib/plugin/qelfparser_p.cpp
+--- qt-everywhere-opensource-src-4.8.1/src/corelib/plugin/qelfparser_p.cpp.me  2012-05-16 14:45:30.542709580 +0200
++++ qt-everywhere-opensource-src-4.8.1/src/corelib/plugin/qelfparser_p.cpp     2012-05-16 14:49:02.266017265 +0200
+@@ -61,8 +61,8 @@ const char *QElfParser::parseSectionHead
+          + sizeof(qelfaddr_t);  // sh_addr
+     sh->offset = read<qelfoff_t>(data);
+     data += sizeof(qelfoff_t);  // sh_offset
+-    sh->size = read<qelfword_t>(data);
+-    data += sizeof(qelfword_t); // sh_size
++    sh->size = read<qelfoff_t>(data);
++    data += sizeof(qelfoff_t); // sh_size
+     return data;
+ }
+diff -up qt-everywhere-opensource-src-4.8.1/src/corelib/plugin/qelfparser_p.h.me qt-everywhere-opensource-src-4.8.1/src/corelib/plugin/qelfparser_p.h
+--- qt-everywhere-opensource-src-4.8.1/src/corelib/plugin/qelfparser_p.h.me    2012-05-16 14:45:41.006724793 +0200
++++ qt-everywhere-opensource-src-4.8.1/src/corelib/plugin/qelfparser_p.h       2012-05-16 14:47:49.017910811 +0200
+@@ -80,7 +80,7 @@ public:
+         qelfword_t name;
+         qelfword_t type;
+         qelfoff_t  offset;
+-        qelfword_t size;
++        qelfoff_t  size;
+     };
+     int m_endian;
diff --git a/qt/patches/qt-x11-opensource-src-4.2.2-multilib-optflags.patch b/qt/patches/qt-x11-opensource-src-4.2.2-multilib-optflags.patch
deleted file mode 100644 (file)
index 099a8a2..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
---- qt-x11-opensource-src-4.2.2/mkspecs/linux-g++-64/qmake.conf.multilib       2006-11-27 11:26:42.000000000 -0600
-+++ qt-x11-opensource-src-4.2.2/mkspecs/linux-g++-64/qmake.conf        2007-02-26 15:01:02.000000000 -0600
-@@ -14,6 +14,8 @@
- QMAKE_CFLAGS          = -m64
- QMAKE_LFLAGS          = -m64
-+QMAKE_CFLAGS_RELEASE  += -O2
-+
- include(../common/g++.conf)
- include(../common/linux.conf)
---- qt-x11-opensource-src-4.2.2/mkspecs/linux-g++-32/qmake.conf.multilib       2006-11-27 11:26:42.000000000 -0600
-+++ qt-x11-opensource-src-4.2.2/mkspecs/linux-g++-32/qmake.conf        2007-02-26 15:01:34.000000000 -0600
-@@ -11,6 +11,8 @@
- QMAKE_CFLAGS          = -m32
- QMAKE_LFLAGS          = -m32
-+QMAKE_CFLAGS_RELEASE  += -O2
-+
- include(../common/g++.conf)
- include(../common/linux.conf)
- load(qt_config)
---- qt-x11-opensource-src-4.2.2/mkspecs/linux-g++/qmake.conf.multilib  2006-11-27 11:26:42.000000000 -0600
-+++ qt-x11-opensource-src-4.2.2/mkspecs/linux-g++/qmake.conf   2007-02-26 15:01:26.000000000 -0600
-@@ -8,6 +8,8 @@
- QT                    += core gui
- QMAKE_INCREMENTAL_STYLE = sublib
-+QMAKE_CFLAGS_RELEASE  += -O2
-+
- include(../common/g++.conf)
- include(../common/linux.conf)
- load(qt_config)
index 7df524b61f1eff842f186a7d05c17d72264e7691..8d3f2413eda759d0a0cef7ead9ffacd9f1e1b1ef 100644 (file)
--- a/qt/qt.nm
+++ b/qt/qt.nm
@@ -4,11 +4,11 @@
 ###############################################################################
 
 name       = qt
-version    = 4.7.0
-release    = 4
+version    = 4.8.1
+release    = 1
 
 groups     = System/Libraries
-url        = http://www.qtsoftware.com/
+url        = http://qt-project.org/
 license    = LGPLv2 with exceptions or GPLv3 with exceptions
 summary    = Qt toolkit.
 
@@ -16,11 +16,12 @@ description
        Qt is a software toolkit for developing applications.
 end
 
-source_dl  =
+source_dl  = http://releases.qt-project.org/qt4/source/
 sources    = %{name}-everywhere-opensource-src-%{version}.tar.gz
 
 build
        requires
+               /usr/bin/perl
                fontconfig-devel
                freetype-devel
                gcc-c++
@@ -34,6 +35,7 @@ build
                libXrandr-devel
                libXrender-devel
                libXi-devel
+               openssl-devel
                pcre-devel
                pkg-config
                xorg-x11-proto-devel
@@ -64,7 +66,6 @@ build
                -no-multimedia \
                -no-nas-sound \
                -no-nis \
-               -no-openssl \
                -no-opengl \
                -no-openvg \
                -no-qt3support \
@@ -96,12 +97,17 @@ build
                -no-mmx \
                -no-sse \
                -no-sse2 \
+               -no-sse3 \
+               -no-ssse3 \
+               -no-sse4.1 \
+               -no-sse4.2 \
                -no-3dnow \
                -system-libjpeg \
                -system-libmng \
                -system-libpng \
                -system-libtiff \
                -system-zlib \
+               -openssl-linked \
                -nomake demos \
                -nomake docs \
                -nomake examples
index 7c170ed45530e4eeade7b1dbf250ca3e50230a4e..2278de2cd13d8b1a55187c2ff46c7db7d37a7d0d 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = radvd
-version    = 1.8.3
-release    = 4
+version    = 1.9
+release    = 2
 
 groups     = System/Daemons
 url        = http://www.litech.org/radvd/
@@ -25,14 +25,14 @@ source_dl  = http://www.litech.org/radvd/dist/
 
 build
        requires
+               bison
                flex
                flex-devel
-               bison
+               libdaemon-devel
                shadow-utils
        end
 
        configure_options += \
-               --mandir=/usr/share/man \
                --with-pidfile=/run/radvd/radvd.pid
 
        prepare_cmds
@@ -59,9 +59,9 @@ end
 
 packages
        package %{name}
-               requires = /lib/network/network-radvd-config
-
-               prerequires += shadow-utils
+               requires
+                       network
+               end
 
                script prein
                        %{create_user}
index 48a6cecd18608031c06feb53891a7267b8b0180b..effdc6b040cf12fc66873fd2b8e06204419875de 100644 (file)
@@ -4,11 +4,10 @@ Requires=network.target
 After=network.target
 
 [Service]
-ExecStartPre=/lib/network/network-radvd-config start
-ExecStart=/usr/sbin/radvd -C /etc/radvd.conf -u radvd
+ExecStartPre=/usr/lib/network/network-radvd-config start
+ExecStart=/usr/sbin/radvd -C /etc/radvd.conf -u radvd -n
 ExecReload=/bin/kill -HUP $MAINPID
-ExecStopPost=/lib/network/network-radvd-config stop
-Type=forking
+ExecStopPost=/usr/lib/network/network-radvd-config stop
 PIDFile=/run/radvd/radvd.pid
 Restart=on-failure
 
index d1ade64d09dba2f915b9a94a0cc00f4ecc3fe4fe..4b8c226bd36b1976a69746c489f4fd8229fc78bc 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = readline
 version    = 6.2
-release    = 5
+release    = 6
 
 groups     = System/Libraries
 url        = ftp://ftp.gnu.org/gnu/readline/
@@ -29,9 +29,6 @@ build
                ncurses-devel
        end
 
-       configure_options += \
-               --libdir=/%{lib} \
-
        make_build_targets += \
                SHLIB_LIBS=-lncurses
 
@@ -39,11 +36,6 @@ build
                # Remove a bunch of *.c files
                rm -rfv %{BUILDROOT}/usr/share/readline
 
-               mkdir -pv %{BUILDROOT}%{libdir}
-               rm -fv %{BUILDROOT}/%{lib}/lib{readline,history}.so
-               ln -sfv ../../%{lib}/libreadline.so.6 %{BUILDROOT}%{libdir}/libreadline.so
-               ln -sfv ../../%{lib}/libhistory.so.6 %{BUILDROOT}%{libdir}/libhistory.so
-
                mkdir -pv %{BUILDROOT}/etc/profile.d
                cp -vf %{DIR_SOURCE}/readline.sh %{BUILDROOT}/etc/profile.d/
        end
diff --git a/rp-pppoe/rp-pppoe.nm b/rp-pppoe/rp-pppoe.nm
new file mode 100644 (file)
index 0000000..af16c6c
--- /dev/null
@@ -0,0 +1,88 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = rp-pppoe
+version    = 3.10
+release    = 3
+
+groups     = Networking/Dialin
+url        = http://www.roaringpenguin.com/pppoe/
+license    = GPLv2+
+summary    = Administration tools for PPPoE connections.
+
+description
+       PPPoE (Point-to-Point Protocol over Ethernet) is a protocol used by
+       many ADSL Internet Service Providers.
+       This package contains a set of tools to build your own PPPoE server.
+end
+
+source_dl  = http://www.roaringpenguin.com/files/download/
+
+build
+       requires
+               autoconf
+               automake
+               iproute2
+               libtool
+               ppp-devel
+               systemd-units
+       end
+
+       DIR_APP := %{DIR_APP}/src
+       CFLAGS += -D_GNU_SOURCE -fno-strict-aliasing
+
+       prepare_cmds
+               # PLUGIN_DIR defaults to /etc/ppp/plugins, which is not what we want.
+               sed -i Makefile.in \
+                       -e "s@^PLUGIN_DIR=.*@PLUGIN_DIR=%{libdir}/pppd/$(pppd --version 2>&1 | awk '{ print $NF }')@"
+
+               # Always enable kernel mode PPPoE for the server, because we
+               # don't ship the userspace component.
+               sed -i pppoe-server.c \
+                       -e "s/UseLinuxKernelModePPPoE = 0/UseLinuxKernelModePPPoE = 1/"
+
+               autoconf
+       end
+
+       # Force support for kernel-mode PPPoE.
+       #configure_options += \
+       #       ac_cv_header_linux_if_pppox_h=yes
+
+       install_cmds
+               # Remove all the client components because we only support the
+               # rp-pppoe plugin that comes with pppd.
+               rm -rvf %{BUILDROOT}%{sysconfdir}
+               rm -vf %{BUILDROOT}%{sbindir}/pppoe
+               rm -vf %{BUILDROOT}%{sbindir}/pppoe-{connect,start,stop,status,setup}
+               rm -vf %{BUILDROOT}%{mandir}/man*/pppoe-{connect,start,stop,status,setup}*
+               rm -vf %{BUILDROOT}%{mandir}/man*/pppoe.{,conf}*
+               rm -rvf %{BUILDROOT}%{libdir}
+       end
+end
+
+packages
+       package %{name}
+               requires
+                       iproute2
+                       ppp
+               end
+
+               script postin
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postup
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postun
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
diff --git a/rp-pppoe/systemd/pppoe-server@.service b/rp-pppoe/systemd/pppoe-server@.service
new file mode 100644 (file)
index 0000000..141bc8a
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+Description=PPPoE server daemon on %I
+BindTo=dev-%I.device
+After=dev-%I.device
+
+[Service]
+ExecStart=/usr/lib/network/pppoe-server %I
+ExecStopPost=/usr/lib/network/pppoe-server %I cleanup
+Restart=failure
+UtmpIdentifier=%I
+KillMode=process
index 70ceb9499b79fbd6108aa8439ef87236c34c7471..1956a38d224aa7748c3b368196cc642d5a2db027 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = rsyslog
 version    = 5.8.6
-release    = 3
+release    = 4
 
 groups     = System/Daemons
 url        = http://www.rsyslog.com/
@@ -74,8 +74,6 @@ packages
                                [ -f "${n}" ] && continue
                                umask 066 && touch ${n}
                        done
-
-                       /bin/systemctl enable rsyslog.service >/dev/null 2>&1 || :
                end
 
                script preun
@@ -87,9 +85,12 @@ packages
                        /bin/systemctl daemon-reload >/dev/null 2>&1 || :
                end
 
+               # Disable and stop rsyslog after update, because we use the
+               # journal daemon from systemd from now.
                script postup
                        /bin/systemctl daemon-reload >/dev/null 2>&1 || :
-                       /bin/systemctl try-restart rsyslog.service >/dev/null 2>&1 || :
+                       /bin/systemctl disable rsyslog.service >/dev/null 2>&1 || :
+                       /bin/systemctl stop rsyslog.service >/dev/null 2>&1 || :
                end
        end
 
index 5902b9b1bc417b3e3bde8ca175098178f1924183..75274f2337ae1f6bb46c10c88f0785cf7f20e39d 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = samba
-version    = 3.6.3
+version    = 3.6.5
 release    = 2
 
 maintainer = Christian Schmidt <christian.schmidt@ipfire.org>
@@ -83,11 +83,16 @@ build
        install_cmds
                mkdir -pv %{BUILDROOT}%{sysconfdir}/samba
                echo "127.0.0.1 localhost" > %{BUILDROOT}%{sysconfdir}/samba/lmhosts
+               cp -vf %{DIR_SOURCE}/smb.conf %{BUILDROOT}/%{sysconfdir}/%{name}
        end
 end
 
 packages
        package %{name}
+               prerequires = systemd-units
+               configfiles = /etc/smb.conf
+               requires += %{name}-libs = %{thisver}
+       end
 
        package %{name}-libs
                template LIBS
diff --git a/samba/samba.pamd b/samba/samba.pamd
new file mode 100644 (file)
index 0000000..66cd2a9
--- /dev/null
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth       required    pam_nologin.so
+auth       include     password-auth
+account    include     password-auth
+session    include     password-auth
+password   include     password-auth
diff --git a/samba/smb.conf b/samba/smb.conf
new file mode 100644 (file)
index 0000000..fe0d921
--- /dev/null
@@ -0,0 +1,320 @@
+# This is the main Samba configuration file. For detailed information about the
+# options listed here, refer to the smb.conf(5) manual page. Samba has a huge
+# number of configurable options, most of which are not shown in this example.
+#
+# The Official Samba 3.2.x HOWTO and Reference Guide contains step-by-step
+# guides for installing, configuring, and using Samba:
+# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf
+#
+# The Samba-3 by Example guide has working examples for smb.conf. This guide is
+# generated daily: http://www.samba.org/samba/docs/Samba-Guide.pdf
+#
+# In this file, lines starting with a semicolon (;) or a hash (#) are
+# comments and are ignored. This file uses hashes to denote commentary and
+# semicolons for parts of the file you may wish to configure.
+#
+# Note: Run the "testparm" command after modifying this file to check for basic
+# syntax errors.
+#
+#---------------
+# Security-Enhanced Linux (SELinux) Notes:
+#
+# Turn the samba_domain_controller Boolean on to allow Samba to use the useradd
+# and groupadd family of binaries. Run the following command as the root user to
+# turn this Boolean on:
+# setsebool -P samba_domain_controller on
+#
+# Turn the samba_enable_home_dirs Boolean on if you want to share home
+# directories via Samba. Run the following command as the root user to turn this
+# Boolean on:
+# setsebool -P samba_enable_home_dirs on
+#
+# If you create a new directory, such as a new top-level directory, label it
+# with samba_share_t so that SELinux allows Samba to read and write to it. Do
+# not label system directories, such as /etc/ and /home/, with samba_share_t, as
+# such directories should already have an SELinux label.
+#
+# Run the "ls -ldZ /path/to/directory" command to view the current SELinux
+# label for a given directory.
+#
+# Set SELinux labels only on files and directories you have created. Use the
+# chcon command to temporarily change a label:
+# chcon -t samba_share_t /path/to/directory
+#
+# Changes made via chcon are lost when the file system is relabeled or commands
+# such as restorecon are run.
+#
+# Use the samba_export_all_ro or samba_export_all_rw Boolean to share system
+# directories. To share such directories and only allow read-only permissions:
+# setsebool -P samba_export_all_ro on
+# To share such directories and allow read and write permissions:
+# setsebool -P samba_export_all_rw on
+#
+# To run scripts (preexec/root prexec/print command/...), copy them to the
+# /var/lib/samba/scripts/ directory so that SELinux will allow smbd to run them.
+# Note that if you move the scripts to /var/lib/samba/scripts/, they retain
+# their existing SELinux labels, which may be labels that SELinux does not allow
+# smbd to run. Copying the scripts will result in the correct SELinux labels.
+# Run the "restorecon -R -v /var/lib/samba/scripts" command as the root user to
+# apply the correct SELinux labels to these files.
+#
+#--------------
+#
+#======================= Global Settings =====================================
+
+[global]
+
+# ----------------------- Network-Related Options -------------------------
+#
+# workgroup = the Windows NT domain name or workgroup name, for example, MYGROUP.
+#
+# server string = the equivalent of the Windows NT Description field.
+#
+# netbios name = used to specify a server name that is not tied to the hostname.
+#
+# interfaces = used to configure Samba to listen on multiple network interfaces.
+# If you have multiple interfaces, you can use the "interfaces =" option to
+# configure which of those interfaces Samba listens on. Never omit the localhost
+# interface (lo).
+#
+# hosts allow = the hosts allowed to connect. This option can also be used on a
+# per-share basis.
+#
+# hosts deny = the hosts not allowed to connect. This option can also be used on
+# a per-share basis.
+#
+# max protocol = used to define the supported protocol. The default is NT1. You
+# can set it to SMB2 if you want experimental SMB2 support.
+#
+       workgroup = MYGROUP
+       server string = Samba Server Version %v
+
+;      netbios name = MYSERVER
+
+;      interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
+;      hosts allow = 127. 192.168.12. 192.168.13.
+
+;      max protocol = SMB2
+
+# --------------------------- Logging Options -----------------------------
+#
+# log file = specify where log files are written to and how they are split.
+#
+# max log size = specify the maximum size log files are allowed to reach. Log
+# files are rotated when they reach the size specified with "max log size".
+#
+
+       # log files split per-machine:
+       log file = /var/log/samba/log.%m
+       # maximum size of 50KB per log file, then rotate:
+       max log size = 50
+
+# ----------------------- Standalone Server Options ------------------------
+#
+# security = the mode Samba runs in. This can be set to user, share
+# (deprecated), or server (deprecated).
+#
+# passdb backend = the backend used to store user information in. New
+# installations should use either tdbsam or ldapsam. No additional configuration
+# is required for tdbsam. The "smbpasswd" utility is available for backwards
+# compatibility.
+#
+
+       security = user
+       passdb backend = tdbsam
+
+
+# ----------------------- Domain Members Options ------------------------
+#
+# security = must be set to domain or ads.
+#
+# passdb backend = the backend used to store user information in. New
+# installations should use either tdbsam or ldapsam. No additional configuration
+# is required for tdbsam. The "smbpasswd" utility is available for backwards
+# compatibility.
+#
+# realm = only use the realm option when the "security = ads" option is set.
+# The realm option specifies the Active Directory realm the host is a part of.
+#
+# password server = only use this option when the "security = server"
+# option is set, or if you cannot use DNS to locate a Domain Controller. The
+# argument list can include My_PDC_Name, [My_BDC_Name], and [My_Next_BDC_Name]:
+#
+# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]
+#
+# Use "password server = *" to automatically locate Domain Controllers.
+
+;      security = domain
+;      passdb backend = tdbsam
+;      realm = MY_REALM
+
+;      password server = <NT-Server-Name>
+
+# ----------------------- Domain Controller Options ------------------------
+#
+# security = must be set to user for domain controllers.
+#
+# passdb backend = the backend used to store user information in. New
+# installations should use either tdbsam or ldapsam. No additional configuration
+# is required for tdbsam. The "smbpasswd" utility is available for backwards
+# compatibility.
+#
+# domain master = specifies Samba to be the Domain Master Browser, allowing
+# Samba to collate browse lists between subnets. Do not use the "domain master"
+# option if you already have a Windows NT domain controller performing this task.
+#
+# domain logons = allows Samba to provide a network logon service for Windows
+# workstations.
+#
+# logon script = specifies a script to run at login time on the client. These
+# scripts must be provided in a share named NETLOGON.
+#
+# logon path = specifies (with a UNC path) where user profiles are stored.
+#
+#
+;      security = user
+;      passdb backend = tdbsam
+
+;      domain master = yes
+;      domain logons = yes
+
+       # the following login script name is determined by the machine name
+       # (%m):
+;      logon script = %m.bat
+       # the following login script name is determined by the UNIX user used:
+;      logon script = %u.bat
+;      logon path = \\%L\Profiles\%u
+       # use an empty path to disable profile support:
+;      logon path =
+
+       # various scripts can be used on a domain controller or a stand-alone
+       # machine to add or delete corresponding UNIX accounts:
+
+;      add user script = /usr/sbin/useradd "%u" -n -g users
+;      add group script = /usr/sbin/groupadd "%g"
+;      add machine script = /usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome -s /bin/false "%u"
+;      delete user script = /usr/sbin/userdel "%u"
+;      delete user from group script = /usr/sbin/userdel "%u" "%g"
+;      delete group script = /usr/sbin/groupdel "%g"
+
+
+# ----------------------- Browser Control Options ----------------------------
+#
+# local master = when set to no, Samba does not become the master browser on
+# your network. When set to yes, normal election rules apply.
+#
+# os level = determines the precedence the server has in master browser
+# elections. The default value should be reasonable.
+#
+# preferred master = when set to yes, Samba forces a local browser election at
+# start up (and gives itself a slightly higher chance of winning the election).
+#
+;      local master = no
+;      os level = 33
+;      preferred master = yes
+
+#----------------------------- Name Resolution -------------------------------
+#
+# This section details the support for the Windows Internet Name Service (WINS).
+#
+# Note: Samba can be either a WINS server or a WINS client, but not both.
+#
+# wins support = when set to yes, the NMBD component of Samba enables its WINS
+# server.
+#
+# wins server = tells the NMBD component of Samba to be a WINS client.
+#
+# wins proxy = when set to yes, Samba answers name resolution queries on behalf
+# of a non WINS capable client. For this to work, there must be at least one
+# WINS server on the network. The default is no.
+#
+# dns proxy = when set to yes, Samba attempts to resolve NetBIOS names via DNS
+# nslookups.
+
+;      wins support = yes
+;      wins server = w.x.y.z
+;      wins proxy = yes
+
+;      dns proxy = yes
+
+# --------------------------- Printing Options -----------------------------
+#
+# The options in this section allow you to configure a non-default printing
+# system.
+#
+# load printers = when set you yes, the list of printers is automatically
+# loaded, rather than setting them up individually.
+#
+# cups options = allows you to pass options to the CUPS library. Setting this
+# option to raw, for example, allows you to use drivers on your Windows clients.
+#
+# printcap name = used to specify an alternative printcap file.
+#
+
+       load printers = yes
+       cups options = raw
+
+;      printcap name = /etc/printcap
+       # obtain a list of printers automatically on UNIX System V systems:
+;      printcap name = lpstat
+;      printing = cups
+
+# --------------------------- File System Options ---------------------------
+#
+# The options in this section can be un-commented if the file system supports
+# extended attributes, and those attributes are enabled (usually via the
+# "user_xattr" mount option). These options allow the administrator to specify
+# that DOS attributes are stored in extended attributes and also make sure that
+# Samba does not change the permission bits.
+#
+# Note: These options can be used on a per-share basis. Setting them globally
+# (in the [global] section) makes them the default for all shares.
+
+;      map archive = no
+;      map hidden = no
+;      map read only = no
+;      map system = no
+;      store dos attributes = yes
+
+
+#============================ Share Definitions ==============================
+
+[homes]
+       comment = Home Directories
+       browseable = no
+       writable = yes
+;      valid users = %S
+;      valid users = MYDOMAIN\%S
+
+[printers]
+       comment = All Printers
+       path = /var/spool/samba
+       browseable = no
+       guest ok = no
+       writable = no
+       printable = yes
+
+# Un-comment the following and create the netlogon directory for Domain Logons:
+;      [netlogon]
+;      comment = Network Logon Service
+;      path = /var/lib/samba/netlogon
+;      guest ok = yes
+;      writable = no
+;      share modes = no
+
+# Un-comment the following to provide a specific roving profile share.
+# The default is to use the user's home directory:
+;      [Profiles]
+;      path = /var/lib/samba/profiles
+;      browseable = no
+;      guest ok = yes
+
+# A publicly accessible directory that is read only, except for users in the
+# "staff" group (which have write permissions):
+;      [public]
+;      comment = Public Stuff
+;      path = /home/samba
+;      public = yes
+;      writable = yes
+;      printable = no
+;      write list = +staff
diff --git a/samba/systemd/nmb.service b/samba/systemd/nmb.service
new file mode 100644 (file)
index 0000000..b0b447e
--- /dev/null
@@ -0,0 +1,10 @@
+[Unit]
+Description=Samba NMB Daemon
+After=syslog.target network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/nmbd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/samba/systemd/smb.service b/samba/systemd/smb.service
new file mode 100644 (file)
index 0000000..b62df5c
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+Description=Samba SMB Daemon
+After=syslog.target network.target nmb.service winbind.service
+
+[Service]
+Type=forking
+LimitNOFILE=16384
+ExecStart=/usr/sbin/smbd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/samba/systemd/winbind.service b/samba/systemd/winbind.service
new file mode 100644 (file)
index 0000000..5ae1c2f
--- /dev/null
@@ -0,0 +1,10 @@
+[Unit]
+Description=Samba Winbind Daemon
+After=syslog.target network.target nmb.service
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/winbindd
+
+[Install]
+WantedBy=multi-user.target
index 0c43fbb5bb1c75a813ef3060ac2e8fb144f3a949..556ef7c8165bcd07c00d1eaf12bef5d8fb360da6 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = sed
 version    = 4.2.1
-release    = 2
+release    = 3
 
 groups     = Applications/Text
 url        = http://sed.sourceforge.net/
@@ -28,9 +28,7 @@ build
        end
 
        configure_options += \
-               --bindir=/bin \
-               --without-included-regex \
-               --mandir=/usr/share/man
+               --without-included-regex
 
        test
                make check
@@ -40,6 +38,14 @@ end
 packages
        package %{name}
                groups += Base Build
+
+               provides
+                       /bin/sed
+               end
+
+               conflicts
+                       filesystem < 002
+               end
        end
 
        package %{name}-debuginfo
diff --git a/setools/patches/0001-add-setools-seinfo-and-sesearch-python-bindings.patch b/setools/patches/0001-add-setools-seinfo-and-sesearch-python-bindings.patch
new file mode 100644 (file)
index 0000000..58ac0ba
--- /dev/null
@@ -0,0 +1,2773 @@
+From 32e8d1d3619dcdb40431c7eae3fe00efaae089c6 Mon Sep 17 00:00:00 2001
+From: Dan Walsh <dwalsh@redhat.com>
+Date: Tue, 20 Sep 2011 15:38:50 -0400
+Subject: [PATCH 1/6] add-setools-seinfo-and-sesearch-python-bindings
+
+---
+ Makefile.am                |    2 +-
+ configure.ac               |   14 +-
+ python/Makefile.am         |    1 +
+ python/Makefile.in         |  716 +++++++++++++++++++++++++++++++++++++++++
+ python/setools/Makefile.am |   36 ++
+ python/setools/Makefile.in |  550 +++++++++++++++++++++++++++++++
+ python/setools/__init__.py |   50 +++
+ python/setools/seinfo.c    |  769 ++++++++++++++++++++++++++++++++++++++++++++
+ python/setools/sesearch.c  |  478 +++++++++++++++++++++++++++
+ python/setools/setup.py    |   25 ++
+ 11 files changed, 2635 insertions(+), 8 deletions(-)
+ create mode 100644 python/Makefile.am
+ create mode 100644 python/Makefile.in
+ create mode 100644 python/setools/Makefile.am
+ create mode 100644 python/setools/Makefile.in
+ create mode 100644 python/setools/__init__.py
+ create mode 100644 python/setools/seinfo.c
+ create mode 100644 python/setools/sesearch.c
+ create mode 100644 python/setools/setup.py
+
+diff --git a/Makefile.am b/Makefile.am
+index 5dc1b5d..176c8ea 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -10,7 +10,7 @@ if BUILD_GUI
+ endif
+ # sediffx is also built conditionally, from sediffx/Makefile.am
+-SUBDIRS = libqpol libapol libsefs libpoldiff libseaudit secmds sechecker sediff man packages debian $(MAYBE_APOL) $(MAYBE_GUI)
++SUBDIRS = libqpol libapol libsefs libpoldiff libseaudit secmds sechecker sediff man packages debian $(MAYBE_APOL) $(MAYBE_GUI) python
+ #old indent opts
+ #INDENT_OPTS = -npro -nbad -bap -sob -ss -l132 -di1 -nbc -br -nbbb -c40 -cd40 -ncdb -ce -cli0 -cp40 -ncs -d0 -nfc1 -nfca -i8 -ts8 -ci8 -lp -ip0 -npcs -npsl -sc
+diff --git a/configure.ac b/configure.ac
+index b885981..e837e03 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -194,7 +194,7 @@ AC_ARG_ENABLE(swig-java,
+               enable_jswig="$enableval")
+ if test "x${enable_jswig}" = xyes; then
+    if test ${do_swigify} = no; then
+-      AC_PROG_SWIG(1.3.28)
++      AC_PROG_SWIG(2.0.0)
+    fi
+    AC_JAVA_OPTIONS
+    if test "x$JAVAPREFIX" = x; then
+@@ -216,21 +216,23 @@ if test "x${enable_jswig}" = xyes; then
+    do_swigify_java=yes
+    do_swigify=yes
+ fi
++
++AM_PATH_PYTHON(2.7)
++
+ AC_ARG_ENABLE(swig-python,
+               AC_HELP_STRING([--enable-swig-python],
+                              [build SWIG interfaces for Python]),
+               enable_pyswig="$enableval")
+ if test "x${enable_pyswig}" = xyes; then
+    if test ${do_swigify} = no; then
+-      AC_PROG_SWIG(1.3.28)
++      AC_PROG_SWIG(2.0.0)
+    fi
+-   AM_PATH_PYTHON(2.3)
+    SWIG_PYTHON
+    do_swigify_python=yes
+    do_swigify=yes
+ fi
+ if test ${do_swigify} = "yes"; then
+-   AC_PROG_SWIG(1.3.28)
++   AC_PROG_SWIG(2.0.0)
+ fi
+ build_apol=yes
+ AC_ARG_ENABLE(swig-tcl,
+@@ -239,7 +241,7 @@ AC_ARG_ENABLE(swig-tcl,
+               enable_tclswig="$enableval", enable_tclswig="yes")
+ if test "x${enable_tclswig}" = xyes; then
+    if test ${do_swigify} = no; then
+-      AC_PROG_SWIG(1.3.28)
++      AC_PROG_SWIG(2.0.0)
+    fi
+    TEA_INIT(3.5)
+    TEA_PATH_TCLCONFIG
+@@ -888,6 +890,8 @@ AC_CONFIG_FILES([Makefile VERSION \
+                  sediff/Makefile \
+                  man/Makefile \
+                  debian/Makefile \
++               python/Makefile \
++               python/setools/Makefile \
+                  packages/Makefile packages/rpm/Makefile \
+                  packages/libqpol.pc packages/libapol.pc packages/libpoldiff.pc packages/libseaudit.pc packages/libsefs.pc])
+diff --git a/python/Makefile.am b/python/Makefile.am
+new file mode 100644
+index 0000000..a1510c8
+--- /dev/null
++++ b/python/Makefile.am
+@@ -0,0 +1 @@
++SUBDIRS = setools
+diff --git a/python/Makefile.in b/python/Makefile.in
+new file mode 100644
+index 0000000..48c87ab
+--- /dev/null
++++ b/python/Makefile.in
+@@ -0,0 +1,716 @@
++# Makefile.in generated by automake 1.11.1 from Makefile.am.
++# @configure_input@
++
++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
++# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
++# Inc.
++# This Makefile.in is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
++# PARTICULAR PURPOSE.
++
++@SET_MAKE@
++VPATH = @srcdir@
++pkgdatadir = $(datadir)/@PACKAGE@
++pkgincludedir = $(includedir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
++pkglibexecdir = $(libexecdir)/@PACKAGE@
++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
++install_sh_DATA = $(install_sh) -c -m 644
++install_sh_PROGRAM = $(install_sh) -c
++install_sh_SCRIPT = $(install_sh) -c
++INSTALL_HEADER = $(INSTALL_DATA)
++transform = $(program_transform_name)
++NORMAL_INSTALL = :
++PRE_INSTALL = :
++POST_INSTALL = :
++NORMAL_UNINSTALL = :
++PRE_UNINSTALL = :
++POST_UNINSTALL = :
++build_triplet = @build@
++host_triplet = @host@
++subdir = python
++DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
++am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_classpath.m4 \
++      $(top_srcdir)/m4/ac_java_options.m4 \
++      $(top_srcdir)/m4/ac_pkg_swig.m4 \
++      $(top_srcdir)/m4/ac_prog_jar.m4 \
++      $(top_srcdir)/m4/ac_prog_java.m4 \
++      $(top_srcdir)/m4/ac_prog_java_works.m4 \
++      $(top_srcdir)/m4/ac_prog_javac.m4 \
++      $(top_srcdir)/m4/ac_prog_javac_works.m4 \
++      $(top_srcdir)/m4/ac_python_devel.m4 $(top_srcdir)/m4/c.m4 \
++      $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
++      $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
++      $(top_srcdir)/m4/lt~obsolete.m4 \
++      $(top_srcdir)/m4/swig_python.m4 $(top_srcdir)/m4/tcl.m4 \
++      $(top_srcdir)/configure.ac
++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
++      $(ACLOCAL_M4)
++mkinstalldirs = $(install_sh) -d
++CONFIG_HEADER = $(top_builddir)/config.h
++CONFIG_CLEAN_FILES =
++CONFIG_CLEAN_VPATH_FILES =
++SOURCES =
++DIST_SOURCES =
++RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
++      html-recursive info-recursive install-data-recursive \
++      install-dvi-recursive install-exec-recursive \
++      install-html-recursive install-info-recursive \
++      install-pdf-recursive install-ps-recursive install-recursive \
++      installcheck-recursive installdirs-recursive pdf-recursive \
++      ps-recursive uninstall-recursive
++RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive       \
++  distclean-recursive maintainer-clean-recursive
++AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
++      $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
++      distdir
++ETAGS = etags
++CTAGS = ctags
++DIST_SUBDIRS = $(SUBDIRS)
++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
++am__relativize = \
++  dir0=`pwd`; \
++  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
++  sed_rest='s,^[^/]*/*,,'; \
++  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
++  sed_butlast='s,/*[^/]*$$,,'; \
++  while test -n "$$dir1"; do \
++    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
++    if test "$$first" != "."; then \
++      if test "$$first" = ".."; then \
++        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
++        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
++      else \
++        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
++        if test "$$first2" = "$$first"; then \
++          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
++        else \
++          dir2="../$$dir2"; \
++        fi; \
++        dir0="$$dir0"/"$$first"; \
++      fi; \
++    fi; \
++    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
++  done; \
++  reldir="$$dir2"
++ACLOCAL = @ACLOCAL@
++AMTAR = @AMTAR@
++APOL_CFLAGS = @APOL_CFLAGS@
++APOL_LIB_FLAG = @APOL_LIB_FLAG@
++AR = @AR@
++AUTOCONF = @AUTOCONF@
++AUTOHEADER = @AUTOHEADER@
++AUTOMAKE = @AUTOMAKE@
++AWK = @AWK@
++BWIDGET_DESTDIR = @BWIDGET_DESTDIR@
++CC = @CC@
++CCDEPMODE = @CCDEPMODE@
++CFLAGS = @CFLAGS@
++CPP = @CPP@
++CPPFLAGS = @CPPFLAGS@
++CUNIT_LIB_FLAG = @CUNIT_LIB_FLAG@
++CXX = @CXX@
++CXXCPP = @CXXCPP@
++CXXDEPMODE = @CXXDEPMODE@
++CXXFLAGS = @CXXFLAGS@
++CYGPATH = @CYGPATH@
++CYGPATH_W = @CYGPATH_W@
++DEBUGCFLAGS = @DEBUGCFLAGS@
++DEBUGCXXFLAGS = @DEBUGCXXFLAGS@
++DEBUGJFLAGS = @DEBUGJFLAGS@
++DEBUGLDFLAGS = @DEBUGLDFLAGS@
++DEFS = @DEFS@
++DEPDIR = @DEPDIR@
++DSYMUTIL = @DSYMUTIL@
++DUMPBIN = @DUMPBIN@
++ECHO_C = @ECHO_C@
++ECHO_N = @ECHO_N@
++ECHO_T = @ECHO_T@
++EGREP = @EGREP@
++EXEEXT = @EXEEXT@
++FGREP = @FGREP@
++GLADE_CFLAGS = @GLADE_CFLAGS@
++GLADE_LIBS = @GLADE_LIBS@
++GREP = @GREP@
++GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
++GTHREAD_LIBS = @GTHREAD_LIBS@
++GTK_CFLAGS = @GTK_CFLAGS@
++GTK_LIBS = @GTK_LIBS@
++INSTALL = @INSTALL@
++INSTALL_DATA = @INSTALL_DATA@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_SCRIPT = @INSTALL_SCRIPT@
++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
++JAR = @JAR@
++JAVA = @JAVA@
++JAVAC = @JAVAC@
++JAVACFLAGS = @JAVACFLAGS@
++JAVAFLAGS = @JAVAFLAGS@
++JAVAPREFIX = @JAVAPREFIX@
++LD = @LD@
++LDFLAGS = @LDFLAGS@
++LEX = @LEX@
++LEXLIB = @LEXLIB@
++LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
++LIBOBJS = @LIBOBJS@
++LIBS = @LIBS@
++LIBTOOL = @LIBTOOL@
++LIPO = @LIPO@
++LN_S = @LN_S@
++LTLIBOBJS = @LTLIBOBJS@
++MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
++NM = @NM@
++NMEDIT = @NMEDIT@
++OBJDUMP = @OBJDUMP@
++OBJEXT = @OBJEXT@
++OTOOL = @OTOOL@
++OTOOL64 = @OTOOL64@
++PACKAGE = @PACKAGE@
++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
++PACKAGE_NAME = @PACKAGE_NAME@
++PACKAGE_STRING = @PACKAGE_STRING@
++PACKAGE_TARNAME = @PACKAGE_TARNAME@
++PACKAGE_URL = @PACKAGE_URL@
++PACKAGE_VERSION = @PACKAGE_VERSION@
++PATH_SEPARATOR = @PATH_SEPARATOR@
++PIXBUF_CFLAGS = @PIXBUF_CFLAGS@
++PIXBUF_LIBS = @PIXBUF_LIBS@
++PKG_CFLAGS = @PKG_CFLAGS@
++PKG_HEADERS = @PKG_HEADERS@
++PKG_INCLUDES = @PKG_INCLUDES@
++PKG_LIBS = @PKG_LIBS@
++PKG_LIB_FILE = @PKG_LIB_FILE@
++PKG_STUB_LIB_FILE = @PKG_STUB_LIB_FILE@
++PKG_STUB_OBJECTS = @PKG_STUB_OBJECTS@
++PKG_STUB_SOURCES = @PKG_STUB_SOURCES@
++PKG_TCL_SOURCES = @PKG_TCL_SOURCES@
++POLDIFF_CFLAGS = @POLDIFF_CFLAGS@
++POLDIFF_LIB_FLAG = @POLDIFF_LIB_FLAG@
++PROFILECFLAGS = @PROFILECFLAGS@
++PROFILELDFLAGS = @PROFILELDFLAGS@
++PYTHON = @PYTHON@
++PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
++PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
++PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@
++PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@
++PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
++PYTHON_PLATFORM = @PYTHON_PLATFORM@
++PYTHON_PREFIX = @PYTHON_PREFIX@
++PYTHON_SITE_PKG = @PYTHON_SITE_PKG@
++PYTHON_VERSION = @PYTHON_VERSION@
++QPOL_CFLAGS = @QPOL_CFLAGS@
++QPOL_LIB_FLAG = @QPOL_LIB_FLAG@
++RANLIB = @RANLIB@
++SEAUDIT_CFLAGS = @SEAUDIT_CFLAGS@
++SEAUDIT_LIB_FLAG = @SEAUDIT_LIB_FLAG@
++SED = @SED@
++SEFS_CFLAGS = @SEFS_CFLAGS@
++SEFS_LIB_FLAG = @SEFS_LIB_FLAG@
++SELINUX_CFLAGS = @SELINUX_CFLAGS@
++SELINUX_LIB_FLAG = @SELINUX_LIB_FLAG@
++SET_MAKE = @SET_MAKE@
++SHELL = @SHELL@
++SQLITE3_CFLAGS = @SQLITE3_CFLAGS@
++SQLITE3_LIBS = @SQLITE3_LIBS@
++STRIP = @STRIP@
++SWIG = @SWIG@
++SWIG_JAVA_CFLAGS = @SWIG_JAVA_CFLAGS@
++SWIG_JAVA_OPT = @SWIG_JAVA_OPT@
++SWIG_LIB = @SWIG_LIB@
++SWIG_PYTHON_CPPFLAGS = @SWIG_PYTHON_CPPFLAGS@
++SWIG_PYTHON_OPT = @SWIG_PYTHON_OPT@
++SWIG_TCL_CFLAGS = @SWIG_TCL_CFLAGS@
++SWIG_TCL_OPT = @SWIG_TCL_OPT@
++TCLSH_PROG = @TCLSH_PROG@
++TCL_AUTOPATH = @TCL_AUTOPATH@
++TCL_BIN_DIR = @TCL_BIN_DIR@
++TCL_DEFS = @TCL_DEFS@
++TCL_EXTRA_CFLAGS = @TCL_EXTRA_CFLAGS@
++TCL_INCLUDES = @TCL_INCLUDES@
++TCL_LD_FLAGS = @TCL_LD_FLAGS@
++TCL_LIBS = @TCL_LIBS@
++TCL_LIB_FILE = @TCL_LIB_FILE@
++TCL_LIB_FLAG = @TCL_LIB_FLAG@
++TCL_LIB_SPEC = @TCL_LIB_SPEC@
++TCL_SHLIB_LD_LIBS = @TCL_SHLIB_LD_LIBS@
++TCL_SRC_DIR = @TCL_SRC_DIR@
++TCL_STUB_LIB_FILE = @TCL_STUB_LIB_FILE@
++TCL_STUB_LIB_FLAG = @TCL_STUB_LIB_FLAG@
++TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@
++TCL_VERSION = @TCL_VERSION@
++TK_BIN_DIR = @TK_BIN_DIR@
++TK_INCLUDES = @TK_INCLUDES@
++TK_LIBS = @TK_LIBS@
++TK_LIB_FILE = @TK_LIB_FILE@
++TK_LIB_FLAG = @TK_LIB_FLAG@
++TK_LIB_SPEC = @TK_LIB_SPEC@
++TK_SRC_DIR = @TK_SRC_DIR@
++TK_STUB_LIB_FILE = @TK_STUB_LIB_FILE@
++TK_STUB_LIB_FLAG = @TK_STUB_LIB_FLAG@
++TK_STUB_LIB_SPEC = @TK_STUB_LIB_SPEC@
++TK_VERSION = @TK_VERSION@
++TK_XINCLUDES = @TK_XINCLUDES@
++VERSION = @VERSION@
++WARNCFLAGS = @WARNCFLAGS@
++WARNCXXFLAGS = @WARNCXXFLAGS@
++WARNJFLAGS = @WARNJFLAGS@
++WARNLDFLAGS = @WARNLDFLAGS@
++WISH_PROG = @WISH_PROG@
++XMKMF = @XMKMF@
++XML_CFLAGS = @XML_CFLAGS@
++XML_LIBS = @XML_LIBS@
++YACC = @YACC@
++YFLAGS = @YFLAGS@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
++ac_ct_CC = @ac_ct_CC@
++ac_ct_CXX = @ac_ct_CXX@
++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
++am__include = @am__include@
++am__leading_dot = @am__leading_dot@
++am__quote = @am__quote@
++am__tar = @am__tar@
++am__untar = @am__untar@
++bindir = @bindir@
++build = @build@
++build_alias = @build_alias@
++build_cpu = @build_cpu@
++build_os = @build_os@
++build_vendor = @build_vendor@
++builddir = @builddir@
++datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
++exec_prefix = @exec_prefix@
++has_pkg_config = @has_pkg_config@
++host = @host@
++host_alias = @host_alias@
++host_cpu = @host_cpu@
++host_os = @host_os@
++host_vendor = @host_vendor@
++htmldir = @htmldir@
++includedir = @includedir@
++infodir = @infodir@
++install_sh = @install_sh@
++javadir = @javadir@
++libapol_jswig_soname = @libapol_jswig_soname@
++libapol_pyswig_soname = @libapol_pyswig_soname@
++libapol_soname = @libapol_soname@
++libapol_soversion = @libapol_soversion@
++libapol_tswig_soname = @libapol_tswig_soname@
++libapol_version = @libapol_version@
++libdir = @libdir@
++libexecdir = @libexecdir@
++libpoldiff_jswig_soname = @libpoldiff_jswig_soname@
++libpoldiff_pyswig_soname = @libpoldiff_pyswig_soname@
++libpoldiff_soname = @libpoldiff_soname@
++libpoldiff_soversion = @libpoldiff_soversion@
++libpoldiff_tswig_soname = @libpoldiff_tswig_soname@
++libpoldiff_version = @libpoldiff_version@
++libqpol_jswig_soname = @libqpol_jswig_soname@
++libqpol_pyswig_soname = @libqpol_pyswig_soname@
++libqpol_soname = @libqpol_soname@
++libqpol_soversion = @libqpol_soversion@
++libqpol_tswig_soname = @libqpol_tswig_soname@
++libqpol_version = @libqpol_version@
++libseaudit_jswig_soname = @libseaudit_jswig_soname@
++libseaudit_pyswig_soname = @libseaudit_pyswig_soname@
++libseaudit_soname = @libseaudit_soname@
++libseaudit_soversion = @libseaudit_soversion@
++libseaudit_tswig_soname = @libseaudit_tswig_soname@
++libseaudit_version = @libseaudit_version@
++libsefs_jswig_soname = @libsefs_jswig_soname@
++libsefs_pyswig_soname = @libsefs_pyswig_soname@
++libsefs_soname = @libsefs_soname@
++libsefs_soversion = @libsefs_soversion@
++libsefs_tswig_soname = @libsefs_tswig_soname@
++libsefs_version = @libsefs_version@
++localedir = @localedir@
++localstatedir = @localstatedir@
++lt_ECHO = @lt_ECHO@
++mandir = @mandir@
++mkdir_p = @mkdir_p@
++oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
++pkgpyexecdir = @pkgpyexecdir@
++pkgpythondir = @pkgpythondir@
++prefix = @prefix@
++profile_install_dir = @profile_install_dir@
++program_transform_name = @program_transform_name@
++psdir = @psdir@
++pyexecdir = @pyexecdir@
++pythondir = @pythondir@
++sbindir = @sbindir@
++selinux_default_policy = @selinux_default_policy@
++selinux_policy_dir = @selinux_policy_dir@
++sepol_srcdir = @sepol_srcdir@
++setoolsdir = @setoolsdir@
++sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
++sysconfdir = @sysconfdir@
++target_alias = @target_alias@
++top_build_prefix = @top_build_prefix@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
++uudecode = @uudecode@
++SUBDIRS = setools
++all: all-recursive
++
++.SUFFIXES:
++$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
++      @for dep in $?; do \
++        case '$(am__configure_deps)' in \
++          *$$dep*) \
++            ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
++              && { if test -f $@; then exit 0; else break; fi; }; \
++            exit 1;; \
++        esac; \
++      done; \
++      echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu python/Makefile'; \
++      $(am__cd) $(top_srcdir) && \
++        $(AUTOMAKE) --gnu python/Makefile
++.PRECIOUS: Makefile
++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
++      @case '$?' in \
++        *config.status*) \
++          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
++        *) \
++          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
++          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
++      esac;
++
++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
++      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++
++$(top_srcdir)/configure:  $(am__configure_deps)
++      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
++      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(am__aclocal_m4_deps):
++
++mostlyclean-libtool:
++      -rm -f *.lo
++
++clean-libtool:
++      -rm -rf .libs _libs
++
++# This directory's subdirectories are mostly independent; you can cd
++# into them and run `make' without going through this Makefile.
++# To change the values of `make' variables: instead of editing Makefiles,
++# (1) if the variable is set in `config.status', edit `config.status'
++#     (which will cause the Makefiles to be regenerated when you run `make');
++# (2) otherwise, pass the desired values on the `make' command line.
++$(RECURSIVE_TARGETS):
++      @fail= failcom='exit 1'; \
++      for f in x $$MAKEFLAGS; do \
++        case $$f in \
++          *=* | --[!k]*);; \
++          *k*) failcom='fail=yes';; \
++        esac; \
++      done; \
++      dot_seen=no; \
++      target=`echo $@ | sed s/-recursive//`; \
++      list='$(SUBDIRS)'; for subdir in $$list; do \
++        echo "Making $$target in $$subdir"; \
++        if test "$$subdir" = "."; then \
++          dot_seen=yes; \
++          local_target="$$target-am"; \
++        else \
++          local_target="$$target"; \
++        fi; \
++        ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
++        || eval $$failcom; \
++      done; \
++      if test "$$dot_seen" = "no"; then \
++        $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
++      fi; test -z "$$fail"
++
++$(RECURSIVE_CLEAN_TARGETS):
++      @fail= failcom='exit 1'; \
++      for f in x $$MAKEFLAGS; do \
++        case $$f in \
++          *=* | --[!k]*);; \
++          *k*) failcom='fail=yes';; \
++        esac; \
++      done; \
++      dot_seen=no; \
++      case "$@" in \
++        distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
++        *) list='$(SUBDIRS)' ;; \
++      esac; \
++      rev=''; for subdir in $$list; do \
++        if test "$$subdir" = "."; then :; else \
++          rev="$$subdir $$rev"; \
++        fi; \
++      done; \
++      rev="$$rev ."; \
++      target=`echo $@ | sed s/-recursive//`; \
++      for subdir in $$rev; do \
++        echo "Making $$target in $$subdir"; \
++        if test "$$subdir" = "."; then \
++          local_target="$$target-am"; \
++        else \
++          local_target="$$target"; \
++        fi; \
++        ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
++        || eval $$failcom; \
++      done && test -z "$$fail"
++tags-recursive:
++      list='$(SUBDIRS)'; for subdir in $$list; do \
++        test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
++      done
++ctags-recursive:
++      list='$(SUBDIRS)'; for subdir in $$list; do \
++        test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
++      done
++
++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
++      list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++      unique=`for i in $$list; do \
++          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++        done | \
++        $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++            END { if (nonempty) { for (i in files) print i; }; }'`; \
++      mkid -fID $$unique
++tags: TAGS
++
++TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
++              $(TAGS_FILES) $(LISP)
++      set x; \
++      here=`pwd`; \
++      if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
++        include_option=--etags-include; \
++        empty_fix=.; \
++      else \
++        include_option=--include; \
++        empty_fix=; \
++      fi; \
++      list='$(SUBDIRS)'; for subdir in $$list; do \
++        if test "$$subdir" = .; then :; else \
++          test ! -f $$subdir/TAGS || \
++            set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
++        fi; \
++      done; \
++      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
++      unique=`for i in $$list; do \
++          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++        done | \
++        $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++            END { if (nonempty) { for (i in files) print i; }; }'`; \
++      shift; \
++      if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
++        test -n "$$unique" || unique=$$empty_fix; \
++        if test $$# -gt 0; then \
++          $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
++            "$$@" $$unique; \
++        else \
++          $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
++            $$unique; \
++        fi; \
++      fi
++ctags: CTAGS
++CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
++              $(TAGS_FILES) $(LISP)
++      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
++      unique=`for i in $$list; do \
++          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++        done | \
++        $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++            END { if (nonempty) { for (i in files) print i; }; }'`; \
++      test -z "$(CTAGS_ARGS)$$unique" \
++        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
++           $$unique
++
++GTAGS:
++      here=`$(am__cd) $(top_builddir) && pwd` \
++        && $(am__cd) $(top_srcdir) \
++        && gtags -i $(GTAGS_ARGS) "$$here"
++
++distclean-tags:
++      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
++
++distdir: $(DISTFILES)
++      @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++      list='$(DISTFILES)'; \
++        dist_files=`for file in $$list; do echo $$file; done | \
++        sed -e "s|^$$srcdirstrip/||;t" \
++            -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++      case $$dist_files in \
++        */*) $(MKDIR_P) `echo "$$dist_files" | \
++                         sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++                         sort -u` ;; \
++      esac; \
++      for file in $$dist_files; do \
++        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
++        if test -d $$d/$$file; then \
++          dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
++          if test -d "$(distdir)/$$file"; then \
++            find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
++          fi; \
++          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
++            cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
++            find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
++          fi; \
++          cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
++        else \
++          test -f "$(distdir)/$$file" \
++          || cp -p $$d/$$file "$(distdir)/$$file" \
++          || exit 1; \
++        fi; \
++      done
++      @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
++        if test "$$subdir" = .; then :; else \
++          test -d "$(distdir)/$$subdir" \
++          || $(MKDIR_P) "$(distdir)/$$subdir" \
++          || exit 1; \
++        fi; \
++      done
++      @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
++        if test "$$subdir" = .; then :; else \
++          dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
++          $(am__relativize); \
++          new_distdir=$$reldir; \
++          dir1=$$subdir; dir2="$(top_distdir)"; \
++          $(am__relativize); \
++          new_top_distdir=$$reldir; \
++          echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
++          echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
++          ($(am__cd) $$subdir && \
++            $(MAKE) $(AM_MAKEFLAGS) \
++              top_distdir="$$new_top_distdir" \
++              distdir="$$new_distdir" \
++              am__remove_distdir=: \
++              am__skip_length_check=: \
++              am__skip_mode_fix=: \
++              distdir) \
++            || exit 1; \
++        fi; \
++      done
++check-am: all-am
++check: check-recursive
++all-am: Makefile
++installdirs: installdirs-recursive
++installdirs-am:
++install: install-recursive
++install-exec: install-exec-recursive
++install-data: install-data-recursive
++uninstall: uninstall-recursive
++
++install-am: all-am
++      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
++
++installcheck: installcheck-recursive
++install-strip:
++      $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
++        install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
++        `test -z '$(STRIP)' || \
++          echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
++mostlyclean-generic:
++
++clean-generic:
++
++distclean-generic:
++      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
++      -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
++
++maintainer-clean-generic:
++      @echo "This command is intended for maintainers to use"
++      @echo "it deletes files that may require special tools to rebuild."
++clean: clean-recursive
++
++clean-am: clean-generic clean-libtool mostlyclean-am
++
++distclean: distclean-recursive
++      -rm -f Makefile
++distclean-am: clean-am distclean-generic distclean-tags
++
++dvi: dvi-recursive
++
++dvi-am:
++
++html: html-recursive
++
++html-am:
++
++info: info-recursive
++
++info-am:
++
++install-data-am:
++
++install-dvi: install-dvi-recursive
++
++install-dvi-am:
++
++install-exec-am:
++
++install-html: install-html-recursive
++
++install-html-am:
++
++install-info: install-info-recursive
++
++install-info-am:
++
++install-man:
++
++install-pdf: install-pdf-recursive
++
++install-pdf-am:
++
++install-ps: install-ps-recursive
++
++install-ps-am:
++
++installcheck-am:
++
++maintainer-clean: maintainer-clean-recursive
++      -rm -f Makefile
++maintainer-clean-am: distclean-am maintainer-clean-generic
++
++mostlyclean: mostlyclean-recursive
++
++mostlyclean-am: mostlyclean-generic mostlyclean-libtool
++
++pdf: pdf-recursive
++
++pdf-am:
++
++ps: ps-recursive
++
++ps-am:
++
++uninstall-am:
++
++.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
++      install-am install-strip tags-recursive
++
++.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
++      all all-am check check-am clean clean-generic clean-libtool \
++      ctags ctags-recursive distclean distclean-generic \
++      distclean-libtool distclean-tags distdir dvi dvi-am html \
++      html-am info info-am install install-am install-data \
++      install-data-am install-dvi install-dvi-am install-exec \
++      install-exec-am install-html install-html-am install-info \
++      install-info-am install-man install-pdf install-pdf-am \
++      install-ps install-ps-am install-strip installcheck \
++      installcheck-am installdirs installdirs-am maintainer-clean \
++      maintainer-clean-generic mostlyclean mostlyclean-generic \
++      mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
++      uninstall uninstall-am
++
++
++# Tell versions [3.59,3.63) of GNU make to not export all variables.
++# Otherwise a system limit (for SysV at least) may be exceeded.
++.NOEXPORT:
+diff --git a/python/setools/Makefile.am b/python/setools/Makefile.am
+new file mode 100644
+index 0000000..c4635fb
+--- /dev/null
++++ b/python/setools/Makefile.am
+@@ -0,0 +1,36 @@
++EXTRA_DIST =                          \
++      sesearch.c                      \
++      seinfo.c                        \
++      __init__.py                     \
++      setup.py                        \
++      $(NULL)
++
++AM_CFLAGS = @DEBUGCFLAGS@ @WARNCFLAGS@ @PROFILECFLAGS@ @SELINUX_CFLAGS@ \
++      @QPOL_CFLAGS@ @APOL_CFLAGS@
++AM_CXXFLAGS = @DEBUGCXXFLAGS@ @WARNCXXFLAGS@ @PROFILECFLAGS@ @SELINUX_CFLAGS@ \
++      @QPOL_CFLAGS@ @APOL_CFLAGS@ @SEFS_CFLAGS@
++AM_LDFLAGS = @DEBUGLDFLAGS@ @WARNLDFLAGS@ @PROFILELDFLAGS@
++
++LDADD = @SELINUX_LIB_FLAG@ @APOL_LIB_FLAG@ @QPOL_LIB_FLAG@
++DEPENDENCIES = $(top_builddir)/libapol/src/libapol.so $(top_builddir)/libqpol/src/libqpol.so
++all-am: python-build
++
++seinfo_SOURCES = seinfo.c
++
++sesearch_SOURCES = sesearch.c
++
++python-build: sesearch.c seinfo.c
++      @mkdir -p setools
++      @cp __init__.py setools
++      LIBS="$(QPOL_LIB_FLAG) $(APOL_LIB_FLAG)" INCLUDES="$(QPOL_CFLAGS) $(APOL_CFLAGS)" $(PYTHON) setup.py build
++
++install-exec-hook:
++      $(PYTHON) setup.py install `test -n "$(DESTDIR)" && echo --root $(DESTDIR)`
++
++uninstall-hook: 
++      $(PYTHON) setup.py uninstall `test -n "$(DESTDIR)" && echo --root $(DESTDIR)`
++
++clean-local:
++      $(PYTHON) setup.py clean -a 
++      rm -f *~
++
+diff --git a/python/setools/Makefile.in b/python/setools/Makefile.in
+new file mode 100644
+index 0000000..704ffc7
+--- /dev/null
++++ b/python/setools/Makefile.in
+@@ -0,0 +1,550 @@
++# Makefile.in generated by automake 1.11.1 from Makefile.am.
++# @configure_input@
++
++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
++# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
++# Inc.
++# This Makefile.in is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
++# PARTICULAR PURPOSE.
++
++@SET_MAKE@
++VPATH = @srcdir@
++pkgdatadir = $(datadir)/@PACKAGE@
++pkgincludedir = $(includedir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
++pkglibexecdir = $(libexecdir)/@PACKAGE@
++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
++install_sh_DATA = $(install_sh) -c -m 644
++install_sh_PROGRAM = $(install_sh) -c
++install_sh_SCRIPT = $(install_sh) -c
++INSTALL_HEADER = $(INSTALL_DATA)
++transform = $(program_transform_name)
++NORMAL_INSTALL = :
++PRE_INSTALL = :
++POST_INSTALL = :
++NORMAL_UNINSTALL = :
++PRE_UNINSTALL = :
++POST_UNINSTALL = :
++build_triplet = @build@
++host_triplet = @host@
++subdir = python/setools
++DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
++am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_classpath.m4 \
++      $(top_srcdir)/m4/ac_java_options.m4 \
++      $(top_srcdir)/m4/ac_pkg_swig.m4 \
++      $(top_srcdir)/m4/ac_prog_jar.m4 \
++      $(top_srcdir)/m4/ac_prog_java.m4 \
++      $(top_srcdir)/m4/ac_prog_java_works.m4 \
++      $(top_srcdir)/m4/ac_prog_javac.m4 \
++      $(top_srcdir)/m4/ac_prog_javac_works.m4 \
++      $(top_srcdir)/m4/ac_python_devel.m4 $(top_srcdir)/m4/c.m4 \
++      $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
++      $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
++      $(top_srcdir)/m4/lt~obsolete.m4 \
++      $(top_srcdir)/m4/swig_python.m4 $(top_srcdir)/m4/tcl.m4 \
++      $(top_srcdir)/configure.ac
++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
++      $(ACLOCAL_M4)
++mkinstalldirs = $(install_sh) -d
++CONFIG_HEADER = $(top_builddir)/config.h
++CONFIG_CLEAN_FILES =
++CONFIG_CLEAN_VPATH_FILES =
++SOURCES =
++DIST_SOURCES =
++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
++ACLOCAL = @ACLOCAL@
++AMTAR = @AMTAR@
++APOL_CFLAGS = @APOL_CFLAGS@
++APOL_LIB_FLAG = @APOL_LIB_FLAG@
++AR = @AR@
++AUTOCONF = @AUTOCONF@
++AUTOHEADER = @AUTOHEADER@
++AUTOMAKE = @AUTOMAKE@
++AWK = @AWK@
++BWIDGET_DESTDIR = @BWIDGET_DESTDIR@
++CC = @CC@
++CCDEPMODE = @CCDEPMODE@
++CFLAGS = @CFLAGS@
++CPP = @CPP@
++CPPFLAGS = @CPPFLAGS@
++CUNIT_LIB_FLAG = @CUNIT_LIB_FLAG@
++CXX = @CXX@
++CXXCPP = @CXXCPP@
++CXXDEPMODE = @CXXDEPMODE@
++CXXFLAGS = @CXXFLAGS@
++CYGPATH = @CYGPATH@
++CYGPATH_W = @CYGPATH_W@
++DEBUGCFLAGS = @DEBUGCFLAGS@
++DEBUGCXXFLAGS = @DEBUGCXXFLAGS@
++DEBUGJFLAGS = @DEBUGJFLAGS@
++DEBUGLDFLAGS = @DEBUGLDFLAGS@
++DEFS = @DEFS@
++DEPDIR = @DEPDIR@
++DSYMUTIL = @DSYMUTIL@
++DUMPBIN = @DUMPBIN@
++ECHO_C = @ECHO_C@
++ECHO_N = @ECHO_N@
++ECHO_T = @ECHO_T@
++EGREP = @EGREP@
++EXEEXT = @EXEEXT@
++FGREP = @FGREP@
++GLADE_CFLAGS = @GLADE_CFLAGS@
++GLADE_LIBS = @GLADE_LIBS@
++GREP = @GREP@
++GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
++GTHREAD_LIBS = @GTHREAD_LIBS@
++GTK_CFLAGS = @GTK_CFLAGS@
++GTK_LIBS = @GTK_LIBS@
++INSTALL = @INSTALL@
++INSTALL_DATA = @INSTALL_DATA@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_SCRIPT = @INSTALL_SCRIPT@
++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
++JAR = @JAR@
++JAVA = @JAVA@
++JAVAC = @JAVAC@
++JAVACFLAGS = @JAVACFLAGS@
++JAVAFLAGS = @JAVAFLAGS@
++JAVAPREFIX = @JAVAPREFIX@
++LD = @LD@
++LDFLAGS = @LDFLAGS@
++LEX = @LEX@
++LEXLIB = @LEXLIB@
++LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
++LIBOBJS = @LIBOBJS@
++LIBS = @LIBS@
++LIBTOOL = @LIBTOOL@
++LIPO = @LIPO@
++LN_S = @LN_S@
++LTLIBOBJS = @LTLIBOBJS@
++MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
++NM = @NM@
++NMEDIT = @NMEDIT@
++OBJDUMP = @OBJDUMP@
++OBJEXT = @OBJEXT@
++OTOOL = @OTOOL@
++OTOOL64 = @OTOOL64@
++PACKAGE = @PACKAGE@
++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
++PACKAGE_NAME = @PACKAGE_NAME@
++PACKAGE_STRING = @PACKAGE_STRING@
++PACKAGE_TARNAME = @PACKAGE_TARNAME@
++PACKAGE_URL = @PACKAGE_URL@
++PACKAGE_VERSION = @PACKAGE_VERSION@
++PATH_SEPARATOR = @PATH_SEPARATOR@
++PIXBUF_CFLAGS = @PIXBUF_CFLAGS@
++PIXBUF_LIBS = @PIXBUF_LIBS@
++PKG_CFLAGS = @PKG_CFLAGS@
++PKG_HEADERS = @PKG_HEADERS@
++PKG_INCLUDES = @PKG_INCLUDES@
++PKG_LIBS = @PKG_LIBS@
++PKG_LIB_FILE = @PKG_LIB_FILE@
++PKG_STUB_LIB_FILE = @PKG_STUB_LIB_FILE@
++PKG_STUB_OBJECTS = @PKG_STUB_OBJECTS@
++PKG_STUB_SOURCES = @PKG_STUB_SOURCES@
++PKG_TCL_SOURCES = @PKG_TCL_SOURCES@
++POLDIFF_CFLAGS = @POLDIFF_CFLAGS@
++POLDIFF_LIB_FLAG = @POLDIFF_LIB_FLAG@
++PROFILECFLAGS = @PROFILECFLAGS@
++PROFILELDFLAGS = @PROFILELDFLAGS@
++PYTHON = @PYTHON@
++PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
++PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
++PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@
++PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@
++PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
++PYTHON_PLATFORM = @PYTHON_PLATFORM@
++PYTHON_PREFIX = @PYTHON_PREFIX@
++PYTHON_SITE_PKG = @PYTHON_SITE_PKG@
++PYTHON_VERSION = @PYTHON_VERSION@
++QPOL_CFLAGS = @QPOL_CFLAGS@
++QPOL_LIB_FLAG = @QPOL_LIB_FLAG@
++RANLIB = @RANLIB@
++SEAUDIT_CFLAGS = @SEAUDIT_CFLAGS@
++SEAUDIT_LIB_FLAG = @SEAUDIT_LIB_FLAG@
++SED = @SED@
++SEFS_CFLAGS = @SEFS_CFLAGS@
++SEFS_LIB_FLAG = @SEFS_LIB_FLAG@
++SELINUX_CFLAGS = @SELINUX_CFLAGS@
++SELINUX_LIB_FLAG = @SELINUX_LIB_FLAG@
++SET_MAKE = @SET_MAKE@
++SHELL = @SHELL@
++SQLITE3_CFLAGS = @SQLITE3_CFLAGS@
++SQLITE3_LIBS = @SQLITE3_LIBS@
++STRIP = @STRIP@
++SWIG = @SWIG@
++SWIG_JAVA_CFLAGS = @SWIG_JAVA_CFLAGS@
++SWIG_JAVA_OPT = @SWIG_JAVA_OPT@
++SWIG_LIB = @SWIG_LIB@
++SWIG_PYTHON_CPPFLAGS = @SWIG_PYTHON_CPPFLAGS@
++SWIG_PYTHON_OPT = @SWIG_PYTHON_OPT@
++SWIG_TCL_CFLAGS = @SWIG_TCL_CFLAGS@
++SWIG_TCL_OPT = @SWIG_TCL_OPT@
++TCLSH_PROG = @TCLSH_PROG@
++TCL_AUTOPATH = @TCL_AUTOPATH@
++TCL_BIN_DIR = @TCL_BIN_DIR@
++TCL_DEFS = @TCL_DEFS@
++TCL_EXTRA_CFLAGS = @TCL_EXTRA_CFLAGS@
++TCL_INCLUDES = @TCL_INCLUDES@
++TCL_LD_FLAGS = @TCL_LD_FLAGS@
++TCL_LIBS = @TCL_LIBS@
++TCL_LIB_FILE = @TCL_LIB_FILE@
++TCL_LIB_FLAG = @TCL_LIB_FLAG@
++TCL_LIB_SPEC = @TCL_LIB_SPEC@
++TCL_SHLIB_LD_LIBS = @TCL_SHLIB_LD_LIBS@
++TCL_SRC_DIR = @TCL_SRC_DIR@
++TCL_STUB_LIB_FILE = @TCL_STUB_LIB_FILE@
++TCL_STUB_LIB_FLAG = @TCL_STUB_LIB_FLAG@
++TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@
++TCL_VERSION = @TCL_VERSION@
++TK_BIN_DIR = @TK_BIN_DIR@
++TK_INCLUDES = @TK_INCLUDES@
++TK_LIBS = @TK_LIBS@
++TK_LIB_FILE = @TK_LIB_FILE@
++TK_LIB_FLAG = @TK_LIB_FLAG@
++TK_LIB_SPEC = @TK_LIB_SPEC@
++TK_SRC_DIR = @TK_SRC_DIR@
++TK_STUB_LIB_FILE = @TK_STUB_LIB_FILE@
++TK_STUB_LIB_FLAG = @TK_STUB_LIB_FLAG@
++TK_STUB_LIB_SPEC = @TK_STUB_LIB_SPEC@
++TK_VERSION = @TK_VERSION@
++TK_XINCLUDES = @TK_XINCLUDES@
++VERSION = @VERSION@
++WARNCFLAGS = @WARNCFLAGS@
++WARNCXXFLAGS = @WARNCXXFLAGS@
++WARNJFLAGS = @WARNJFLAGS@
++WARNLDFLAGS = @WARNLDFLAGS@
++WISH_PROG = @WISH_PROG@
++XMKMF = @XMKMF@
++XML_CFLAGS = @XML_CFLAGS@
++XML_LIBS = @XML_LIBS@
++YACC = @YACC@
++YFLAGS = @YFLAGS@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
++ac_ct_CC = @ac_ct_CC@
++ac_ct_CXX = @ac_ct_CXX@
++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
++am__include = @am__include@
++am__leading_dot = @am__leading_dot@
++am__quote = @am__quote@
++am__tar = @am__tar@
++am__untar = @am__untar@
++bindir = @bindir@
++build = @build@
++build_alias = @build_alias@
++build_cpu = @build_cpu@
++build_os = @build_os@
++build_vendor = @build_vendor@
++builddir = @builddir@
++datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
++exec_prefix = @exec_prefix@
++has_pkg_config = @has_pkg_config@
++host = @host@
++host_alias = @host_alias@
++host_cpu = @host_cpu@
++host_os = @host_os@
++host_vendor = @host_vendor@
++htmldir = @htmldir@
++includedir = @includedir@
++infodir = @infodir@
++install_sh = @install_sh@
++javadir = @javadir@
++libapol_jswig_soname = @libapol_jswig_soname@
++libapol_pyswig_soname = @libapol_pyswig_soname@
++libapol_soname = @libapol_soname@
++libapol_soversion = @libapol_soversion@
++libapol_tswig_soname = @libapol_tswig_soname@
++libapol_version = @libapol_version@
++libdir = @libdir@
++libexecdir = @libexecdir@
++libpoldiff_jswig_soname = @libpoldiff_jswig_soname@
++libpoldiff_pyswig_soname = @libpoldiff_pyswig_soname@
++libpoldiff_soname = @libpoldiff_soname@
++libpoldiff_soversion = @libpoldiff_soversion@
++libpoldiff_tswig_soname = @libpoldiff_tswig_soname@
++libpoldiff_version = @libpoldiff_version@
++libqpol_jswig_soname = @libqpol_jswig_soname@
++libqpol_pyswig_soname = @libqpol_pyswig_soname@
++libqpol_soname = @libqpol_soname@
++libqpol_soversion = @libqpol_soversion@
++libqpol_tswig_soname = @libqpol_tswig_soname@
++libqpol_version = @libqpol_version@
++libseaudit_jswig_soname = @libseaudit_jswig_soname@
++libseaudit_pyswig_soname = @libseaudit_pyswig_soname@
++libseaudit_soname = @libseaudit_soname@
++libseaudit_soversion = @libseaudit_soversion@
++libseaudit_tswig_soname = @libseaudit_tswig_soname@
++libseaudit_version = @libseaudit_version@
++libsefs_jswig_soname = @libsefs_jswig_soname@
++libsefs_pyswig_soname = @libsefs_pyswig_soname@
++libsefs_soname = @libsefs_soname@
++libsefs_soversion = @libsefs_soversion@
++libsefs_tswig_soname = @libsefs_tswig_soname@
++libsefs_version = @libsefs_version@
++localedir = @localedir@
++localstatedir = @localstatedir@
++lt_ECHO = @lt_ECHO@
++mandir = @mandir@
++mkdir_p = @mkdir_p@
++oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
++pkgpyexecdir = @pkgpyexecdir@
++pkgpythondir = @pkgpythondir@
++prefix = @prefix@
++profile_install_dir = @profile_install_dir@
++program_transform_name = @program_transform_name@
++psdir = @psdir@
++pyexecdir = @pyexecdir@
++pythondir = @pythondir@
++sbindir = @sbindir@
++selinux_default_policy = @selinux_default_policy@
++selinux_policy_dir = @selinux_policy_dir@
++sepol_srcdir = @sepol_srcdir@
++setoolsdir = @setoolsdir@
++sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
++sysconfdir = @sysconfdir@
++target_alias = @target_alias@
++top_build_prefix = @top_build_prefix@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
++uudecode = @uudecode@
++EXTRA_DIST = \
++      sesearch.c                      \
++      seinfo.c                        \
++      __init__.py                     \
++      setup.py                        \
++      $(NULL)
++
++AM_CFLAGS = @DEBUGCFLAGS@ @WARNCFLAGS@ @PROFILECFLAGS@ @SELINUX_CFLAGS@ \
++      @QPOL_CFLAGS@ @APOL_CFLAGS@
++
++AM_CXXFLAGS = @DEBUGCXXFLAGS@ @WARNCXXFLAGS@ @PROFILECFLAGS@ @SELINUX_CFLAGS@ \
++      @QPOL_CFLAGS@ @APOL_CFLAGS@ @SEFS_CFLAGS@
++
++AM_LDFLAGS = @DEBUGLDFLAGS@ @WARNLDFLAGS@ @PROFILELDFLAGS@
++LDADD = @SELINUX_LIB_FLAG@ @APOL_LIB_FLAG@ @QPOL_LIB_FLAG@
++DEPENDENCIES = $(top_builddir)/libapol/src/libapol.so $(top_builddir)/libqpol/src/libqpol.so
++seinfo_SOURCES = seinfo.c
++sesearch_SOURCES = sesearch.c
++all: all-am
++
++.SUFFIXES:
++$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
++      @for dep in $?; do \
++        case '$(am__configure_deps)' in \
++          *$$dep*) \
++            ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
++              && { if test -f $@; then exit 0; else break; fi; }; \
++            exit 1;; \
++        esac; \
++      done; \
++      echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu python/setools/Makefile'; \
++      $(am__cd) $(top_srcdir) && \
++        $(AUTOMAKE) --gnu python/setools/Makefile
++.PRECIOUS: Makefile
++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
++      @case '$?' in \
++        *config.status*) \
++          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
++        *) \
++          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
++          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
++      esac;
++
++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
++      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++
++$(top_srcdir)/configure:  $(am__configure_deps)
++      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
++      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(am__aclocal_m4_deps):
++
++mostlyclean-libtool:
++      -rm -f *.lo
++
++clean-libtool:
++      -rm -rf .libs _libs
++tags: TAGS
++TAGS:
++
++ctags: CTAGS
++CTAGS:
++
++
++distdir: $(DISTFILES)
++      @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++      list='$(DISTFILES)'; \
++        dist_files=`for file in $$list; do echo $$file; done | \
++        sed -e "s|^$$srcdirstrip/||;t" \
++            -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++      case $$dist_files in \
++        */*) $(MKDIR_P) `echo "$$dist_files" | \
++                         sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++                         sort -u` ;; \
++      esac; \
++      for file in $$dist_files; do \
++        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
++        if test -d $$d/$$file; then \
++          dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
++          if test -d "$(distdir)/$$file"; then \
++            find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
++          fi; \
++          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
++            cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
++            find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
++          fi; \
++          cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
++        else \
++          test -f "$(distdir)/$$file" \
++          || cp -p $$d/$$file "$(distdir)/$$file" \
++          || exit 1; \
++        fi; \
++      done
++check-am: all-am
++check: check-am
++all-am: Makefile
++installdirs:
++install: install-am
++install-exec: install-exec-am
++install-data: install-data-am
++uninstall: uninstall-am
++
++install-am: all-am
++      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
++
++installcheck: installcheck-am
++install-strip:
++      $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
++        install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
++        `test -z '$(STRIP)' || \
++          echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
++mostlyclean-generic:
++
++clean-generic:
++
++distclean-generic:
++      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
++      -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
++
++maintainer-clean-generic:
++      @echo "This command is intended for maintainers to use"
++      @echo "it deletes files that may require special tools to rebuild."
++clean: clean-am
++
++clean-am: clean-generic clean-libtool clean-local mostlyclean-am
++
++distclean: distclean-am
++      -rm -f Makefile
++distclean-am: clean-am distclean-generic
++
++dvi: dvi-am
++
++dvi-am:
++
++html: html-am
++
++html-am:
++
++info: info-am
++
++info-am:
++
++install-data-am:
++
++install-dvi: install-dvi-am
++
++install-dvi-am:
++
++install-exec-am:
++      @$(NORMAL_INSTALL)
++      $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
++install-html: install-html-am
++
++install-html-am:
++
++install-info: install-info-am
++
++install-info-am:
++
++install-man:
++
++install-pdf: install-pdf-am
++
++install-pdf-am:
++
++install-ps: install-ps-am
++
++install-ps-am:
++
++installcheck-am:
++
++maintainer-clean: maintainer-clean-am
++      -rm -f Makefile
++maintainer-clean-am: distclean-am maintainer-clean-generic
++
++mostlyclean: mostlyclean-am
++
++mostlyclean-am: mostlyclean-generic mostlyclean-libtool
++
++pdf: pdf-am
++
++pdf-am:
++
++ps: ps-am
++
++ps-am:
++
++uninstall-am:
++      @$(NORMAL_INSTALL)
++      $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
++.MAKE: install-am install-exec-am install-strip uninstall-am
++
++.PHONY: all all-am check check-am clean clean-generic clean-libtool \
++      clean-local distclean distclean-generic distclean-libtool \
++      distdir dvi dvi-am html html-am info info-am install \
++      install-am install-data install-data-am install-dvi \
++      install-dvi-am install-exec install-exec-am install-exec-hook \
++      install-html install-html-am install-info install-info-am \
++      install-man install-pdf install-pdf-am install-ps \
++      install-ps-am install-strip installcheck installcheck-am \
++      installdirs maintainer-clean maintainer-clean-generic \
++      mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
++      ps ps-am uninstall uninstall-am uninstall-hook
++
++all-am: python-build
++
++python-build: sesearch.c seinfo.c
++      @mkdir -p setools
++      @cp __init__.py setools
++      LIBS="$(QPOL_LIB_FLAG) $(APOL_LIB_FLAG)" INCLUDES="$(QPOL_CFLAGS) $(APOL_CFLAGS)" $(PYTHON) setup.py build
++
++install-exec-hook:
++      $(PYTHON) setup.py install `test -n "$(DESTDIR)" && echo --root $(DESTDIR)`
++
++uninstall-hook: 
++      $(PYTHON) setup.py uninstall `test -n "$(DESTDIR)" && echo --root $(DESTDIR)`
++
++clean-local:
++      $(PYTHON) setup.py clean -a 
++      rm -f *~
++
++# Tell versions [3.59,3.63) of GNU make to not export all variables.
++# Otherwise a system limit (for SysV at least) may be exceeded.
++.NOEXPORT:
+diff --git a/python/setools/__init__.py b/python/setools/__init__.py
+new file mode 100644
+index 0000000..6f075c4
+--- /dev/null
++++ b/python/setools/__init__.py
+@@ -0,0 +1,50 @@
++#!/usr/bin/env python
++
++# Author: Thomas Liu <tliu@redhat.com>
++
++import _sesearch
++import _seinfo
++import types
++
++TYPE = _seinfo.TYPE
++ROLE = _seinfo.ROLE
++ATTRIBUTE = _seinfo.ATTRIBUTE
++PORT = _seinfo.PORT
++USER = _seinfo.USER
++
++ALLOW = 'allow'
++AUDITALLOW = 'auditallow'
++NEVERALLOW = 'neverallow'
++DONTAUDIT = 'dontaudit'
++SCONTEXT = 'scontext'
++TCONTEXT = 'tcontext'
++PERMS = 'permlist'
++CLASS = 'class'
++
++def sesearch(types, info):
++    valid_types = [ALLOW, AUDITALLOW, NEVERALLOW, DONTAUDIT]
++    for type in types:
++        if type not in valid_types:
++            raise ValueError("Type has to be in %s" % valid_types)
++        info[type] = True
++
++    perms = []
++    if PERMS in info:
++        perms = info[PERMS]
++        info[PERMS] = ",".join(info[PERMS])
++     
++    
++    dict_list = _sesearch.sesearch(info)
++    if dict_list and len(perms) != 0:
++        dict_list = filter(lambda x: dict_has_perms(x, perms), dict_list)
++    return dict_list
++
++def dict_has_perms(dict, perms):
++    for perm in perms:
++        if perm not in dict[PERMS]:
++            return False
++    return True
++
++def seinfo(setype, name=None):
++    dict_list = _seinfo.seinfo(setype, name)
++    return dict_list
+diff --git a/python/setools/seinfo.c b/python/setools/seinfo.c
+new file mode 100644
+index 0000000..211930a
+--- /dev/null
++++ b/python/setools/seinfo.c
+@@ -0,0 +1,769 @@
++/**
++ *  @file
++ *  Command line tool to search TE rules.
++ *
++ *  @author Frank Mayer  mayerf@tresys.com
++ *  @author Jeremy A. Mowery jmowery@tresys.com
++ *  @author Paul Rosenfeld  prosenfeld@tresys.com
++ *  @author Thomas Liu  <tliu@redhat.com>
++ *  @author Dan Walsh  <dwalsh@redhat.com>
++ *
++ *  Copyright (C) 2003-2008 Tresys Technology, LLC
++ *
++ *  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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
++ */
++
++/**
++ * This is a modified version of seinfo to be used as part of a library for
++ * Python bindings.
++ */
++
++#include "Python.h"
++
++/* libapol */
++#include <apol/policy.h>
++#include <apol/policy-query.h>
++#include <apol/render.h>
++#include <apol/util.h>
++#include <apol/vector.h>
++
++/* libqpol */
++#include <qpol/policy.h>
++#include <qpol/util.h>
++
++/* other */
++#include <errno.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
++#include <assert.h>
++
++#define COPYRIGHT_INFO "Copyright (C) 2003-2007 Tresys Technology, LLC"
++static char *policy_file = NULL;
++
++enum input
++{
++      TYPE, ATTRIBUTE, ROLE, USER, PORT,
++};
++
++/**
++ * Gets a textual representation of an attribute, and 
++ * all of that attribute's types.
++ *
++ * @param type_datum Reference to sepol type_datum
++ * @param policydb Reference to a policy
++ */
++static PyObject* get_attr(const qpol_type_t * type_datum, const apol_policy_t * policydb)
++{
++      int retval = -1;
++      PyObject *dict = PyDict_New(); 
++      const qpol_type_t *attr_datum = NULL;
++      qpol_iterator_t *iter = NULL;
++      const char *attr_name = NULL, *type_name = NULL;
++      qpol_policy_t *q = apol_policy_get_qpol(policydb);
++      unsigned char isattr;
++
++      if (qpol_type_get_name(q, type_datum, &attr_name))
++              goto cleanup;
++      PyObject *obj = PyString_FromString(attr_name);
++      PyDict_SetItemString(dict, "name", obj);
++      Py_DECREF(obj);
++
++      /* get an iterator over all types this attribute has */
++      if (qpol_type_get_isattr(q, type_datum, &isattr))
++              goto cleanup;
++      if (isattr) {          /* sanity check */
++              if (qpol_type_get_type_iter(q, type_datum, &iter))
++                      goto cleanup;
++              PyObject *list = PyList_New(0);
++              for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
++                      if (qpol_iterator_get_item(iter, (void **)&attr_datum))
++                              goto cleanup;
++                      if (qpol_type_get_name(q, attr_datum, &type_name))
++                              goto cleanup;
++                      PyObject *obj = PyString_FromString(type_name);
++                      PyList_Append(list, obj);
++                      Py_DECREF(obj);
++              }
++              qpol_iterator_destroy(&iter);
++              PyDict_SetItemString(dict, "types", list);
++              Py_DECREF(list);
++      } else                 /* this should never happen */
++              goto cleanup;
++      
++      retval = 0;
++cleanup:
++      qpol_iterator_destroy(&iter);
++      if (retval) {
++              Py_DECREF(dict);
++              return NULL;
++      }
++      return dict;
++}
++
++/**
++ * Gets statistics regarding a policy's attributes.
++ * If this function is given a name, it will attempt to
++ * get statistics about a particular attribute; otherwise
++ * the function gets statistics about all of the policy's
++ * attributes.
++ *
++ * @param name Reference to an attribute's name; if NULL,
++ * all object classes will be considered
++ * @param policydb Reference to a policy
++ *
++ * @return 0 on success, < 0 on error.
++ */
++static PyObject* get_attribs(const char *name, const apol_policy_t * policydb)
++{
++      int retval = -1;
++      PyObject *list = PyList_New(0);
++      apol_attr_query_t *attr_query = NULL;
++      apol_vector_t *v = NULL;
++      const qpol_type_t *type_datum = NULL;
++      size_t n_attrs, i;
++
++      /* we are only getting information about 1 attribute */
++      if (name != NULL) {
++              attr_query = apol_attr_query_create();
++              if (!attr_query)
++                      goto cleanup;
++              if (apol_attr_query_set_attr(policydb, attr_query, name))
++                      goto cleanup;
++              if (apol_attr_get_by_query(policydb, attr_query, &v))
++                      goto cleanup;
++              apol_attr_query_destroy(&attr_query);
++              if (apol_vector_get_size(v) == 0) {
++                      apol_vector_destroy(&v);
++                      errno = EINVAL;
++                      goto cleanup;
++              }
++
++              type_datum = apol_vector_get_element(v, (size_t) 0);
++              PyObject *obj = get_attr(type_datum, policydb);
++              PyList_Append(list, obj);
++              Py_DECREF(obj);
++      } else {
++              attr_query = apol_attr_query_create();
++              if (!attr_query)
++                      goto cleanup;
++              if (apol_attr_get_by_query(policydb, attr_query, &v))
++                      goto cleanup;
++              apol_attr_query_destroy(&attr_query);
++              n_attrs = apol_vector_get_size(v);
++
++              for (i = 0; i < n_attrs; i++) {
++                      /* get qpol_type_t* item from vector */
++                      type_datum = (qpol_type_t *) apol_vector_get_element(v, (size_t) i);
++                      if (!type_datum)
++                              goto cleanup;
++                      PyObject *obj = get_attr(type_datum, policydb);
++                      PyList_Append(list, obj);
++                      Py_DECREF(obj);
++              }
++      }
++      apol_vector_destroy(&v);
++
++      retval = 0;
++      cleanup:
++      apol_attr_query_destroy(&attr_query);
++      apol_vector_destroy(&v);
++      if (retval) {
++              Py_DECREF(list);
++              PyErr_SetString(PyExc_RuntimeError,strerror(errno));
++              return NULL;
++      }
++      return list;
++}
++
++/**
++ * Get a textual representation of a type, and
++ * all of that type's attributes.
++ *
++ * @param type_datum Reference to sepol type_datum
++ * @param policydb Reference to a policy
++ */
++static PyObject* get_type_attrs(const qpol_type_t * type_datum, const apol_policy_t * policydb)
++{
++      qpol_iterator_t *iter = NULL;
++      const char *attr_name = NULL;
++      const qpol_type_t *attr_datum = NULL;
++      qpol_policy_t *q = apol_policy_get_qpol(policydb);
++
++      if (qpol_type_get_attr_iter(q, type_datum, &iter))
++              goto cleanup;
++      PyObject *list = PyList_New(0);
++      for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
++              if (qpol_iterator_get_item(iter, (void **)&attr_datum))
++                      goto cleanup;
++              if (qpol_type_get_name(q, attr_datum, &attr_name))
++                      goto cleanup;
++              PyObject *obj = PyString_FromString(attr_name);
++              PyList_Append(list, obj);
++              Py_DECREF(obj);
++      }
++
++      cleanup:
++      qpol_iterator_destroy(&iter);
++      return list;
++}
++
++static PyObject* get_type( const qpol_type_t * type_datum, const apol_policy_t * policydb) {
++
++      PyObject *dict = PyDict_New(); 
++      qpol_policy_t *q = apol_policy_get_qpol(policydb);
++      const char *type_name = NULL;
++
++      unsigned char isalias, ispermissive, isattr;
++
++      if (qpol_type_get_name(q, type_datum, &type_name))
++              goto cleanup;
++      if (qpol_type_get_isalias(q, type_datum, &isalias))
++              goto cleanup;
++      if (qpol_type_get_isattr(q, type_datum, &isattr))
++              goto cleanup;
++      if (qpol_type_get_ispermissive(q, type_datum, &ispermissive))
++              goto cleanup;
++
++      PyObject *obj = PyString_FromString(type_name);
++      PyDict_SetItemString(dict, "name", obj);
++      Py_DECREF(obj);
++      obj = PyBool_FromLong(ispermissive);
++      PyDict_SetItemString(dict, "permissive", obj);
++      Py_DECREF(obj);
++      if (!isattr && !isalias) {
++              obj = get_type_attrs(type_datum, policydb);
++              PyDict_SetItemString(dict, "attributes", obj);
++              Py_DECREF(obj);
++      }
++      return dict;
++cleanup:
++      Py_DECREF(dict);
++      return NULL;
++}
++
++/**
++ * Gets a textual representation of a user, and
++ * all of that user's roles.
++ *
++ * @param type_datum Reference to sepol type_datum
++ * @param policydb Reference to a policy
++ * roles
++ */
++static PyObject* get_user(const qpol_user_t * user_datum, const apol_policy_t * policydb)
++{
++      PyObject *dict = NULL;
++      const qpol_role_t *role_datum = NULL;
++      qpol_iterator_t *iter = NULL;
++      const qpol_mls_range_t *range = NULL;
++      const qpol_mls_level_t *dflt_level = NULL;
++      apol_mls_level_t *ap_lvl = NULL;
++      apol_mls_range_t *ap_range = NULL;
++      qpol_policy_t *q = apol_policy_get_qpol(policydb);
++      char *tmp;
++      const char *user_name, *role_name;
++
++      if (qpol_user_get_name(q, user_datum, &user_name))
++              goto cleanup;
++
++      dict = PyDict_New(); 
++      PyObject *obj = PyString_FromString(user_name);
++      PyDict_SetItemString(dict, "name", obj);
++      Py_DECREF(obj);
++
++      if (qpol_policy_has_capability(q, QPOL_CAP_MLS)) {
++              if (qpol_user_get_dfltlevel(q, user_datum, &dflt_level))
++                      goto cleanup;
++              ap_lvl = apol_mls_level_create_from_qpol_mls_level(policydb, dflt_level);
++              tmp = apol_mls_level_render(policydb, ap_lvl);
++              if (!tmp)
++                      goto cleanup;
++              obj = PyString_FromString(tmp);
++              PyDict_SetItemString(dict, "level", obj);
++              Py_DECREF(obj);
++              free(tmp);
++              /* print default range */
++              if (qpol_user_get_range(q, user_datum, &range))
++                      goto cleanup;
++              ap_range = apol_mls_range_create_from_qpol_mls_range(policydb, range);
++              tmp = apol_mls_range_render(policydb, ap_range);
++              if (!tmp)
++                      goto cleanup;
++              obj = PyString_FromString(tmp);
++              PyDict_SetItemString(dict, "range", obj);
++              Py_DECREF(obj);
++              free(tmp);
++      }
++      
++      if (qpol_user_get_role_iter(q, user_datum, &iter))
++              goto cleanup;
++      PyObject *list = PyList_New(0);
++      for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
++              if (qpol_iterator_get_item(iter, (void **)&role_datum)) {
++                      Py_DECREF(list);
++                      goto cleanup;
++              }
++              if (qpol_role_get_name(q, role_datum, &role_name)) {
++                      Py_DECREF(list);
++                      goto cleanup;
++              }
++              PyObject *obj = PyString_FromString(role_name);
++              PyList_Append(list, obj);
++              Py_DECREF(obj);
++      }
++      PyDict_SetItemString(dict, "roles", list);
++      Py_DECREF(list);
++
++cleanup:
++      qpol_iterator_destroy(&iter);
++      apol_mls_level_destroy(&ap_lvl);
++      apol_mls_range_destroy(&ap_range);
++      return dict;
++}
++
++/**
++ * Gets statistics regarding a policy's users.
++ * If this function is given a name, it will attempt to
++ * get statistics about a particular user; otherwise
++ * the function gets statistics about all of the policy's
++ * users.
++ *
++ * @param name Reference to a user's name; if NULL,
++ * all users will be considered
++ * @param policydb Reference to a policy
++ *
++ * @return 0 on success, < 0 on error.
++ */
++static PyObject*  get_users(const char *name, const apol_policy_t * policydb)
++{
++      int retval = -1;
++      PyObject *list = PyList_New(0);
++      qpol_iterator_t *iter = NULL;
++      const qpol_user_t *user_datum = NULL;
++      qpol_policy_t *q = apol_policy_get_qpol(policydb);
++
++      if (name != NULL) {
++              if (qpol_policy_get_user_by_name(q, name, &user_datum)) {
++                      errno = EINVAL;
++                      goto cleanup;
++              }
++              PyObject *obj = get_user(user_datum, policydb);
++              PyList_Append(list, obj);
++              Py_DECREF(obj);
++      } else {
++              if (qpol_policy_get_user_iter(q, &iter))
++                      goto cleanup;
++
++              for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
++                      if (qpol_iterator_get_item(iter, (void **)&user_datum))
++                              goto cleanup;
++                      PyObject *obj = get_user(user_datum, policydb);
++                      PyList_Append(list, obj);
++                      Py_DECREF(obj);
++              }
++              qpol_iterator_destroy(&iter);
++      }
++
++      retval = 0;
++      cleanup:
++      qpol_iterator_destroy(&iter);
++      if (retval) {
++              Py_DECREF(list);
++              PyErr_SetString(PyExc_RuntimeError,strerror(errno));
++              return NULL;
++      }
++      return list;
++}
++
++/**
++ * get a textual representation of a role, and 
++ * all of that role's types.
++ *
++ * @param type_datum Reference to sepol type_datum
++ * @param policydb Reference to a policy
++ * types
++ */
++static PyObject* get_role(const qpol_role_t * role_datum, const apol_policy_t * policydb)
++{
++      int retval = -1;
++      PyObject *dict = PyDict_New();
++      const char *role_name = NULL, *type_name = NULL;
++      const qpol_role_t *dom_datum = NULL;
++      const qpol_type_t *type_datum = NULL;
++      qpol_iterator_t *iter = NULL;
++      qpol_policy_t *q = apol_policy_get_qpol(policydb);
++      size_t n_dom = 0, n_types = 0;
++
++      if (qpol_role_get_name(q, role_datum, &role_name))
++              goto cleanup;
++
++      PyObject *obj = PyString_FromString(role_name);
++      PyDict_SetItemString(dict, "name", obj);
++      Py_DECREF(obj);
++
++      if (qpol_role_get_dominate_iter(q, role_datum, &iter))
++              goto cleanup;
++      if (qpol_iterator_get_size(iter, &n_dom))
++              goto cleanup;
++      if ((int)n_dom > 0) {
++              PyObject *list = PyList_New(0);
++              for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
++                      if (qpol_iterator_get_item(iter, (void **)&dom_datum))
++                              goto cleanup;
++                      if (qpol_role_get_name(q, dom_datum, &role_name))
++                              goto cleanup;
++                      PyObject *obj = PyString_FromString(role_name);
++                      PyList_Append(list, obj);
++                      Py_DECREF(obj);
++              }
++              PyDict_SetItemString(dict, "dominate", list);
++              Py_DECREF(list);
++      }
++      qpol_iterator_destroy(&iter);
++      
++      if (qpol_role_get_type_iter(q, role_datum, &iter))
++              goto cleanup;
++      if (qpol_iterator_get_size(iter, &n_types))
++              goto cleanup;
++      if ((int)n_types > 0) {
++              PyObject *list = PyList_New(0);
++              /* print types */
++              for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
++                      if (qpol_iterator_get_item(iter, (void **)&type_datum))
++                              goto cleanup;
++                      if (qpol_type_get_name(q, type_datum, &type_name))
++                              goto cleanup;
++                      PyObject *obj = PyString_FromString(type_name);
++                      PyList_Append(list, obj);
++                      Py_DECREF(obj);
++              }
++              PyDict_SetItemString(dict, "types", list);
++              Py_DECREF(list);
++      }
++
++      retval = 0;
++cleanup:
++      qpol_iterator_destroy(&iter);
++      if (retval) {
++              Py_DECREF(dict);
++              PyErr_SetString(PyExc_RuntimeError,strerror(errno));
++              return NULL;
++      }
++      return dict;
++}
++
++/**
++ * Get statistics regarding a policy's ports.
++ * If this function is given a name, it will attempt to
++ * get statistics about a particular port; otherwise
++ * the function get statistics about all of the policy's ports.
++ *
++ * @param name Reference to an port's name; if NULL,
++ * all ports will be considered
++ * @param policydb Reference to a policy
++ *
++ * @return 0 on success, < 0 on error.
++ */
++static PyObject*  get_ports(const char *num, const apol_policy_t * policydb)
++{
++      PyObject *list = PyList_New(0);
++      int retval = -1;
++      const qpol_portcon_t *portcon = NULL;
++      qpol_iterator_t *iter = NULL;
++      uint16_t low_port, high_port;
++      uint8_t ocon_proto;
++      qpol_policy_t *q = apol_policy_get_qpol(policydb);
++      const qpol_context_t *ctxt = NULL;
++      const char *proto_str;
++      PyObject *dict;
++      const char *type = NULL;
++      const apol_mls_range_t *range = NULL;
++      char *range_str = NULL;
++      PyObject *obj = NULL;
++      apol_context_t *c = NULL;
++
++      if (qpol_policy_get_portcon_iter(q, &iter))
++              goto cleanup;
++
++      for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
++              if (qpol_iterator_get_item(iter, (void **)&portcon))
++                      goto cleanup;
++              if (qpol_portcon_get_low_port(q, portcon, &low_port))
++                      goto cleanup;
++              if (qpol_portcon_get_high_port(q, portcon, &high_port))
++                      goto cleanup;
++              if (qpol_portcon_get_protocol(q, portcon, &ocon_proto))
++                      goto cleanup;
++              if (num) {
++                      if (atoi(num) < low_port || atoi(num) > high_port)
++                              continue;
++              }
++
++              if ((ocon_proto != IPPROTO_TCP) &&
++                  (ocon_proto != IPPROTO_UDP)) 
++                      goto cleanup;
++
++              if (qpol_portcon_get_context(q, portcon, &ctxt)) {
++                      PyErr_SetString(PyExc_RuntimeError, "Could not get for port context.");
++                      goto cleanup;
++              }
++
++              if ((proto_str = apol_protocol_to_str(ocon_proto)) == NULL) {
++                      PyErr_SetString(PyExc_RuntimeError, "Invalid protocol for port");
++                      goto cleanup;
++              }
++
++              if ((c = apol_context_create_from_qpol_context(policydb, ctxt)) == NULL) {
++                      goto cleanup;
++              }
++              
++              if((type = apol_context_get_type(c)) == NULL) {
++                      apol_context_destroy(&c);
++                      goto cleanup;
++              }
++                      
++              dict = PyDict_New(); 
++              obj = PyString_FromString(type);
++              PyDict_SetItemString(dict, "type", obj);
++              Py_DECREF(obj);
++
++              if((range = apol_context_get_range(c)) == NULL) {
++                      goto cleanup;
++              }
++                      
++              range_str = apol_mls_range_render(policydb, range);
++              if (range_str == NULL) {
++                      goto cleanup;
++              }
++              obj = PyString_FromString(range_str);
++              PyDict_SetItemString(dict, "range", obj);
++              Py_DECREF(obj);
++
++              obj = PyString_FromString(proto_str);
++              PyDict_SetItemString(dict, "protocol", obj);
++              Py_DECREF(obj);
++
++              obj = PyInt_FromLong(high_port);
++              PyDict_SetItemString(dict, "high", obj);
++              Py_DECREF(obj);
++
++              obj = PyInt_FromLong(low_port);
++              PyDict_SetItemString(dict, "low", obj);
++              Py_DECREF(obj);
++
++              PyList_Append(list, dict);
++              Py_DECREF(dict);
++      }
++      retval = 0;
++      cleanup:
++      free(range_str);
++      apol_context_destroy(&c);
++      qpol_iterator_destroy(&iter);
++
++      if (retval) {
++              Py_DECREF(list);
++              PyErr_SetString(PyExc_RuntimeError,strerror(errno));
++              return NULL;
++      }
++      return list;
++}
++
++/**
++ * Get statistics regarding a policy's roles.
++ * If this function is given a name, it will attempt to
++ * get statistics about a particular role; otherwise
++ * the function get statistics about all of the policy's roles.
++ *
++ * @param name Reference to an role's name; if NULL,
++ * all roles will be considered
++ * @param policydb Reference to a policy
++ *
++ * @return 0 on success, < 0 on error.
++ */
++static PyObject*  get_roles(const char *name, const apol_policy_t * policydb)
++{
++      int retval = -1;
++      PyObject *list = PyList_New(0);
++      const qpol_role_t *role_datum = NULL;
++      qpol_iterator_t *iter = NULL;
++      qpol_policy_t *q = apol_policy_get_qpol(policydb);
++
++      if (name != NULL) {
++              if (qpol_policy_get_role_by_name(q, name, &role_datum)) {
++                      errno = EINVAL;
++                      goto cleanup;
++              }
++              PyObject *obj = get_role(role_datum, policydb);
++              PyList_Append(list, obj);
++              Py_DECREF(obj);
++      } else {
++              if (qpol_policy_get_role_iter(q, &iter))
++                      goto cleanup;
++
++              for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
++                      if (qpol_iterator_get_item(iter, (void **)&role_datum))
++                              goto cleanup;
++                      PyObject *obj = get_role(role_datum, policydb);
++                      PyList_Append(list, obj);
++                      Py_DECREF(obj);
++              }
++              qpol_iterator_destroy(&iter);
++      }
++
++      retval = 0;
++      cleanup:
++      qpol_iterator_destroy(&iter);
++      if (retval) {
++              Py_DECREF(list);
++              PyErr_SetString(PyExc_RuntimeError,strerror(errno));
++              return NULL;
++      }
++      return list;
++}
++
++/**
++ * Get statistics regarding a policy's types.
++ * If this function is given a name, it will attempt to
++ * print statistics about a particular type; otherwise
++ * the function prints statistics about all of the policy's types.
++ *
++ * @param name Reference to a type's name; if NULL,
++ * all object classes will be considered
++ * @param policydb Reference to a policy
++ *
++ * @return 0 on success, < 0 on error.
++ */
++static PyObject* get_types(const char *name, const apol_policy_t * policydb)
++{
++      int retval = -1;
++      PyObject *list = PyList_New(0);
++      const qpol_type_t *type_datum = NULL;
++      qpol_iterator_t *iter = NULL;
++      qpol_policy_t *q = apol_policy_get_qpol(policydb);
++
++      /* if name was provided, only print that name */
++      if (name != NULL) {
++              if (qpol_policy_get_type_by_name(q, name, &type_datum)) {
++                      errno = EINVAL;
++                      goto cleanup;
++              }
++              PyObject *obj = get_type(type_datum, policydb);
++              PyList_Append(list, obj);
++              Py_DECREF(obj);
++      } else {
++              if (qpol_policy_get_type_iter(q, &iter))
++                      goto cleanup;
++              /* Print all type names */
++              for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
++                      if (qpol_iterator_get_item(iter, (void **)&type_datum))
++                              goto cleanup;
++                      PyObject *obj = get_type(type_datum, policydb);
++                      PyList_Append(list, obj);
++                      Py_DECREF(obj);
++              }
++      }
++      retval = 0;
++cleanup:
++      qpol_iterator_destroy(&iter);
++      if (retval) {
++              Py_DECREF(list);
++              PyErr_SetString(PyExc_RuntimeError,strerror(errno));
++              return NULL;
++      }
++      return list;
++}
++
++PyObject* seinfo(int type, const char *name)
++{
++      int rt = -1;
++
++      apol_policy_t *policydb = NULL;
++      apol_policy_path_t *pol_path = NULL;
++      apol_vector_t *mod_paths = NULL;
++      apol_policy_path_type_e path_type = APOL_POLICY_PATH_TYPE_MONOLITHIC;
++      PyObject* output = NULL;
++
++      rt = qpol_default_policy_find(&policy_file);
++      if (rt != 0) {
++              PyErr_SetString(PyExc_RuntimeError,"No default policy found.");
++              return NULL;
++      }
++
++      pol_path = apol_policy_path_create(path_type, policy_file, mod_paths);
++      if (!pol_path) {
++              free(policy_file);
++              apol_vector_destroy(&mod_paths);
++              PyErr_SetString(PyExc_RuntimeError,strerror(ENOMEM));
++              return NULL;
++      }
++      apol_vector_destroy(&mod_paths);
++
++      int policy_load_options = 0;
++      policy_load_options |= QPOL_POLICY_OPTION_MATCH_SYSTEM;
++      policydb = apol_policy_create_from_policy_path(pol_path, policy_load_options, NULL, NULL);
++      if (!policydb) {
++              free(policy_file);
++              apol_policy_path_destroy(&pol_path);
++              PyErr_SetString(PyExc_RuntimeError,strerror(errno));
++              return NULL;
++      }
++      free(policy_file);
++
++      /* display requested info */
++      if (type == TYPE)
++              output = get_types(name, policydb);
++
++      if (type == ATTRIBUTE)
++              output = get_attribs(name, policydb);
++
++      if (type == ROLE)
++              output = get_roles(name, policydb);
++
++      if (type == USER)
++              output = get_users(name, policydb);
++
++      if (type == PORT)
++              output = get_ports(name, policydb);
++
++      apol_policy_destroy(&policydb);
++      apol_policy_path_destroy(&pol_path);
++      return output;
++}
++
++PyObject *wrap_seinfo(PyObject *self, PyObject *args){
++    unsigned int type;
++    char *name;
++    
++    if (!PyArg_ParseTuple(args, "iz", &type, &name))
++        return NULL;
++
++    return Py_BuildValue("O",seinfo(type, name));
++
++}
++
++static PyMethodDef methods[] = {
++    {"seinfo", (PyCFunction) wrap_seinfo, METH_VARARGS},
++    {NULL, NULL, 0, NULL}
++};
++
++void init_seinfo(){
++    PyObject *m;
++    m = Py_InitModule("_seinfo", methods);
++    PyModule_AddIntConstant(m, "ATTRIBUTE", ATTRIBUTE);
++    PyModule_AddIntConstant(m, "PORT", PORT);
++    PyModule_AddIntConstant(m, "ROLE", ROLE);
++    PyModule_AddIntConstant(m, "TYPE", TYPE);
++    PyModule_AddIntConstant(m, "USER", USER);
++}
+diff --git a/python/setools/sesearch.c b/python/setools/sesearch.c
+new file mode 100644
+index 0000000..faaf8b7
+--- /dev/null
++++ b/python/setools/sesearch.c
+@@ -0,0 +1,478 @@
++// Author: Thomas Liu <tliu@redhat.com>
++
++/**
++ *  @file
++ *  Command line tool to search TE rules.
++ *
++ *  @author Frank Mayer  mayerf@tresys.com
++ *  @author Jeremy A. Mowery jmowery@tresys.com
++ *  @author Paul Rosenfeld  prosenfeld@tresys.com
++ *  @author Thomas Liu  <tliu@redhat.com>
++ *
++ *  Copyright (C) 2003-2008 Tresys Technology, LLC
++ *
++ *  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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
++ */
++
++/**
++ * This is a modified version of sesearch to be used as part of a library for
++ * Python bindings.
++ */
++
++#include "Python.h"
++
++/* libapol */
++#include <apol/policy.h>
++#include <apol/policy-query.h>
++#include <apol/render.h>
++#include <apol/util.h>
++#include <apol/vector.h>
++
++/* libqpol*/
++#include <qpol/policy.h>
++#include <qpol/policy_extend.h>
++#include <qpol/syn_rule_query.h>
++#include <qpol/util.h>
++
++/* other */
++#include <errno.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <assert.h>
++#include <getopt.h>
++#include <string.h>
++#include <stdbool.h>
++
++#define COPYRIGHT_INFO "Copyright (C) 2003-2007 Tresys Technology, LLC"
++static char *policy_file = NULL;
++
++enum opt_values
++{
++      RULE_NEVERALLOW = 256, RULE_AUDIT, RULE_AUDITALLOW, RULE_DONTAUDIT,
++      RULE_ROLE_ALLOW, RULE_ROLE_TRANS, RULE_RANGE_TRANS, RULE_ALL,
++      EXPR_ROLE_SOURCE, EXPR_ROLE_TARGET
++};
++
++;
++
++typedef struct options
++{
++      char *src_name;
++      char *tgt_name;
++      char *src_role_name;
++      char *tgt_role_name;
++      char *class_name;
++      char *permlist;
++      char *bool_name;
++      apol_vector_t *class_vector;
++      bool all;
++      bool lineno;
++      bool semantic;
++      bool indirect;
++      bool allow;
++      bool nallow;
++      bool auditallow;
++      bool dontaudit;
++      bool type;
++      bool rtrans;
++      bool role_allow;
++      bool role_trans;
++      bool useregex;
++      bool show_cond;
++      apol_vector_t *perm_vector;
++} options_t;
++
++static int perform_av_query(const apol_policy_t * policy, const options_t * opt, apol_vector_t ** v)
++{
++      apol_avrule_query_t *avq = NULL;
++      unsigned int rules = 0;
++      int error = 0;
++      char *tmp = NULL, *tok = NULL, *s = NULL;
++
++      if (!policy || !opt || !v) {
++              PyErr_SetString(PyExc_RuntimeError,strerror(EINVAL));
++              errno = EINVAL;
++              return -1;
++      }
++
++      if (!opt->all && !opt->allow && !opt->nallow && !opt->auditallow && !opt->dontaudit) {
++              *v = NULL;
++              return 0;              /* no search to do */
++      }
++
++      avq = apol_avrule_query_create();
++      if (!avq) {
++              PyErr_SetString(PyExc_RuntimeError,strerror(ENOMEM));
++              errno = ENOMEM;
++              return -1;
++      }
++
++      if (opt->allow || opt->all)
++              rules |= QPOL_RULE_ALLOW;
++      if ((opt->nallow || opt->all) && qpol_policy_has_capability(apol_policy_get_qpol(policy), QPOL_CAP_NEVERALLOW))
++              rules |= QPOL_RULE_NEVERALLOW;
++      if (opt->auditallow || opt->all)
++              rules |= QPOL_RULE_AUDITALLOW;
++      if (opt->dontaudit || opt->all)
++              rules |= QPOL_RULE_DONTAUDIT;
++      apol_avrule_query_set_rules(policy, avq, rules);
++      apol_avrule_query_set_regex(policy, avq, opt->useregex);
++      if (opt->src_name)
++              apol_avrule_query_set_source(policy, avq, opt->src_name, opt->indirect);
++      if (opt->tgt_name)
++              apol_avrule_query_set_target(policy, avq, opt->tgt_name, opt->indirect);
++      if (opt->bool_name)
++              apol_avrule_query_set_bool(policy, avq, opt->bool_name);
++      if (opt->class_name) {
++              if (opt->class_vector == NULL) {
++                      if (apol_avrule_query_append_class(policy, avq, opt->class_name)) {
++                              error = errno;
++                              goto err;
++                      }
++              } else {
++                      size_t i;
++            for (i = 0; i < apol_vector_get_size(opt->class_vector); ++i) {
++                              char *class_name;
++                              class_name = apol_vector_get_element(opt->class_vector, i);
++                              if (!class_name)
++                                      continue;
++                              if (apol_avrule_query_append_class(policy, avq, class_name)) {
++                                      error = errno;
++                                      goto err;
++                              }
++                      }
++              }
++      }
++
++      if (opt->permlist) {
++              tmp = strdup(opt->permlist);
++              for (tok = strtok(tmp, ","); tok; tok = strtok(NULL, ",")) {
++                      if (apol_avrule_query_append_perm(policy, avq, tok)) {
++                              error = errno;
++                              goto err;
++                      }
++                      if ((s = strdup(tok)) == NULL || apol_vector_append(opt->perm_vector, s) < 0) {
++                              error = errno;
++                              goto err;
++                      }
++                      s = NULL;
++              }
++              free(tmp);
++      }
++
++      if (!(opt->semantic) && qpol_policy_has_capability(apol_policy_get_qpol(policy), QPOL_CAP_SYN_RULES)) {
++              if (apol_syn_avrule_get_by_query(policy, avq, v)) {
++                      error = errno;
++                      goto err;
++              }
++      } else {
++              if (apol_avrule_get_by_query(policy, avq, v)) {
++                      error = errno;
++                      goto err;
++              }
++      }
++
++      apol_avrule_query_destroy(&avq);
++      return 0;
++
++      err:
++      apol_vector_destroy(v);
++      apol_avrule_query_destroy(&avq);
++      free(tmp);
++      free(s);
++      PyErr_SetString(PyExc_RuntimeError,strerror(error));
++      errno = error;
++      return -1;
++}
++
++
++
++static PyObject* get_av_results(const apol_policy_t * policy, const options_t * opt, const apol_vector_t * v)
++{
++      int retval = -1;
++      PyObject *list = PyList_New(0);
++      qpol_policy_t *q = apol_policy_get_qpol(policy);
++      size_t i, num_rules = 0;
++      const qpol_avrule_t *rule = NULL;
++      char *tmp = NULL, *rule_str = NULL, *expr = NULL;
++      char enable_char = ' ', branch_char = ' ';
++      qpol_iterator_t *iter = NULL;
++      uint32_t enabled = 0;
++
++      if (!policy || !v)
++              return NULL;
++
++      if (!(num_rules = apol_vector_get_size(v)))
++              return NULL;
++
++      for (i = 0; i < num_rules; i++) {
++              enable_char = branch_char = ' ';
++              if (!(rule = apol_vector_get_element(v, i)))
++                      goto cleanup;
++              
++              if (qpol_avrule_get_is_enabled(q, rule, &enabled))
++                      goto cleanup;
++              if (!enabled)
++                      continue;
++        
++              const qpol_type_t *type;
++              const char *tmp_name;
++              uint32_t rule_type = 0;
++              
++              const qpol_class_t *obj_class = NULL;
++              
++              PyObject *dict = PyDict_New(); 
++              
++              qpol_avrule_get_rule_type(q, rule, &rule_type);
++              tmp_name = apol_rule_type_to_str(rule_type);
++              PyObject *obj = PyString_FromString(tmp_name);
++              PyDict_SetItemString(dict, "type", obj);
++              Py_DECREF(obj);
++              // source
++              qpol_avrule_get_source_type(q, rule, &type);
++              qpol_type_get_name(q, type, &tmp_name);
++              obj = PyString_FromString(tmp_name);
++              PyDict_SetItemString(dict, "scontext", obj);
++              Py_DECREF(obj);
++              
++              qpol_avrule_get_target_type(q, rule, &type);
++              qpol_type_get_name(q, type, &tmp_name);
++              obj = PyString_FromString(tmp_name);
++              PyDict_SetItemString(dict, "tcontext", obj);
++              Py_DECREF(obj);
++              
++              qpol_avrule_get_object_class(q, rule, &obj_class);
++              qpol_type_get_name(q, type, &tmp_name);
++              obj = PyString_FromString(tmp_name);
++              PyDict_SetItemString(dict, "class", obj);
++              Py_DECREF(obj);
++              qpol_avrule_get_perm_iter(q, rule, &iter);
++              PyObject *permlist = PyList_New(0);
++              for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
++                      const char *perm_name = NULL;
++                      qpol_iterator_get_item(iter, (void **)&perm_name);
++                      obj = PyString_FromString(perm_name);
++                      PyList_Append(permlist, obj);
++                      Py_DECREF(obj);
++              }
++              PyDict_SetItemString(dict, "permlist", permlist);
++              Py_DECREF(permlist);
++              PyList_Append(list, dict); 
++              Py_DECREF(dict);
++              
++              free(rule_str);
++              rule_str = NULL;
++              free(expr);
++              expr = NULL;
++      }
++      retval = 0;
++      cleanup:
++      free(tmp);
++      free(rule_str);
++      free(expr);
++      if (retval) {
++              Py_DECREF(list);
++              return NULL;
++      }
++      return list;
++}
++
++
++PyObject* sesearch(bool allow,
++             bool neverallow, 
++             bool auditallow,
++             bool dontaudit,
++             const char *src_name,
++             const char *tgt_name,
++             const char *class_name,
++             const char *permlist
++             )
++{
++      options_t cmd_opts;
++      int rt = -1;
++      PyObject *output = NULL;
++      
++      apol_policy_t *policy = NULL;
++      apol_vector_t *v = NULL;
++      apol_policy_path_t *pol_path = NULL;
++      apol_vector_t *mod_paths = NULL;
++      apol_policy_path_type_e path_type = APOL_POLICY_PATH_TYPE_MONOLITHIC;
++      
++      memset(&cmd_opts, 0, sizeof(cmd_opts));
++      cmd_opts.indirect = true;
++      cmd_opts.allow = allow;
++      cmd_opts.nallow = neverallow;
++      cmd_opts.auditallow = auditallow;
++      cmd_opts.dontaudit = dontaudit;
++      if (src_name)
++              cmd_opts.src_name = strdup(src_name);
++      if (tgt_name)
++              cmd_opts.tgt_name = strdup(tgt_name);
++      if (class_name)
++              cmd_opts.class_name = strdup(class_name);
++      if (permlist){
++              cmd_opts.perm_vector = apol_vector_create(free);
++              cmd_opts.permlist = strdup(permlist);
++      }
++      int pol_opt = 0;
++      if (!(cmd_opts.nallow || cmd_opts.all))
++              pol_opt |= QPOL_POLICY_OPTION_NO_NEVERALLOWS;
++      
++    
++      rt = qpol_default_policy_find(&policy_file);
++      if (rt) {
++              PyErr_SetString(PyExc_RuntimeError,"No default policy found.");
++              return NULL;
++      }
++      pol_opt |= QPOL_POLICY_OPTION_MATCH_SYSTEM;
++      
++      if (apol_file_is_policy_path_list(policy_file) > 0) {
++              pol_path = apol_policy_path_create_from_file(policy_file);
++              if (!pol_path) {
++                      free(policy_file);
++                      PyErr_SetString(PyExc_RuntimeError,"invalid policy list");
++                      return NULL;
++              }
++      }
++
++      if (!pol_path)
++              pol_path = apol_policy_path_create(path_type, policy_file, mod_paths);
++      if (!pol_path) {
++              free(policy_file);
++              PyErr_SetString(PyExc_RuntimeError,strerror(ENOMEM));
++              return NULL;
++      }
++      free(policy_file);
++      apol_vector_destroy(&mod_paths);
++      
++      policy = apol_policy_create_from_policy_path(pol_path, pol_opt, NULL, NULL);
++      if (!policy) {
++              apol_policy_path_destroy(&pol_path);
++              PyErr_SetString(PyExc_RuntimeError,strerror(errno));
++              return NULL;
++      }
++      /* handle regex for class name */
++      if (cmd_opts.useregex && cmd_opts.class_name != NULL) {
++              cmd_opts.class_vector = apol_vector_create(NULL);
++              apol_vector_t *qpol_matching_classes = NULL;
++              apol_class_query_t *regex_match_query = apol_class_query_create();
++              apol_class_query_set_regex(policy, regex_match_query, 1);
++              apol_class_query_set_class(policy, regex_match_query, cmd_opts.class_name);
++              if (apol_class_get_by_query(policy, regex_match_query, &qpol_matching_classes)) {
++                      apol_class_query_destroy(&regex_match_query);
++                      PyErr_SetString(PyExc_RuntimeError,"Query failed");
++                      goto cleanup;
++              }
++              const qpol_class_t *class = NULL;
++              size_t i;
++              for (i = 0; i < apol_vector_get_size(qpol_matching_classes); ++i) {
++                      const char *class_name;
++                      class = apol_vector_get_element(qpol_matching_classes, i);
++                      if (!class)
++                              break;
++                      qpol_class_get_name(apol_policy_get_qpol(policy), class, &class_name);
++                      apol_vector_append(cmd_opts.class_vector, (void *)class_name);
++              }
++              if (!apol_vector_get_size(qpol_matching_classes)) {
++                      apol_vector_destroy(&qpol_matching_classes);
++                      apol_class_query_destroy(&regex_match_query);
++                      PyErr_SetString(PyExc_RuntimeError,"No classes match expression");
++                      goto cleanup;
++              }
++              apol_vector_destroy(&qpol_matching_classes);
++              apol_class_query_destroy(&regex_match_query);
++      }
++
++      if (!cmd_opts.semantic && qpol_policy_has_capability(apol_policy_get_qpol(policy), QPOL_CAP_SYN_RULES)) {
++              if (qpol_policy_build_syn_rule_table(apol_policy_get_qpol(policy))) {
++                      apol_policy_destroy(&policy);
++                      PyErr_SetString(PyExc_RuntimeError,"Query failed");
++                      goto cleanup;
++              }
++      }
++
++      /* if syntactic rules are not available always do semantic search */
++      if (!qpol_policy_has_capability(apol_policy_get_qpol(policy), QPOL_CAP_SYN_RULES)) {
++              cmd_opts.semantic = 1;
++      }
++
++      /* supress line numbers if doing semantic search or not available */
++      if (cmd_opts.semantic || !qpol_policy_has_capability(apol_policy_get_qpol(policy), QPOL_CAP_LINE_NUMBERS)) {
++              cmd_opts.lineno = 0;
++      }
++      if (perform_av_query(policy, &cmd_opts, &v)) {
++              goto cleanup;
++      }
++      if (v) {
++              output =  get_av_results(policy, &cmd_opts, v);
++      }
++      apol_vector_destroy(&v);
++      cleanup:
++      apol_policy_destroy(&policy);
++      apol_policy_path_destroy(&pol_path);
++      free(cmd_opts.src_name);
++      free(cmd_opts.tgt_name);
++      free(cmd_opts.class_name);
++      free(cmd_opts.permlist);
++      free(cmd_opts.bool_name);
++      free(cmd_opts.src_role_name);
++      free(cmd_opts.tgt_role_name);
++      apol_vector_destroy(&cmd_opts.perm_vector);
++      apol_vector_destroy(&cmd_opts.class_vector);
++
++      if (output) return output;
++      return Py_None;
++}
++static int Dict_ContainsInt(PyObject *dict, const char *key){
++    PyObject *item = PyDict_GetItemString(dict, key);
++    if (item)
++        return PyInt_AsLong(item);
++    return false;
++}
++
++static const char *Dict_ContainsString(PyObject *dict, const char *key){
++    PyObject *item = PyDict_GetItemString(dict, key);
++    if (item)
++        return PyString_AsString(item);
++    return NULL;
++}
++
++PyObject *wrap_sesearch(PyObject *self, PyObject *args){
++    PyObject *dict;
++    if (!PyArg_ParseTuple(args, "O", &dict))
++        return NULL;
++    int allow = Dict_ContainsInt(dict, "allow");
++    int neverallow = Dict_ContainsInt(dict, "neverallow");
++    int auditallow = Dict_ContainsInt(dict, "auditallow");
++    int dontaudit = Dict_ContainsInt(dict, "dontaudit"); 
++   
++    const char *src_name = Dict_ContainsString(dict, "scontext");
++    const char *tgt_name = Dict_ContainsString(dict, "tcontext");
++    const char *class_name = Dict_ContainsString(dict, "class");
++    const char *permlist = Dict_ContainsString(dict, "permlist");
++    
++    return Py_BuildValue("O",sesearch(allow, neverallow, auditallow, dontaudit, src_name, tgt_name, class_name, permlist));
++
++}
++
++static PyMethodDef methods[] = {
++    {"sesearch", (PyCFunction) wrap_sesearch, METH_VARARGS},
++    {NULL, NULL, 0, NULL}
++};
++
++void init_sesearch(){
++    PyObject *m;
++    m = Py_InitModule("_sesearch", methods);
++}
+diff --git a/python/setools/setup.py b/python/setools/setup.py
+new file mode 100644
+index 0000000..053b885
+--- /dev/null
++++ b/python/setools/setup.py
+@@ -0,0 +1,25 @@
++#!/usr/bin/env python
++
++# Author: Thomas Liu <tliu@redhat.com>
++import os
++from distutils.core import setup, Extension
++LIBS=["apol", "qpol"]
++
++try:
++    inc=os.getenv("INCLUDES").split(" ")    
++    INCLUDES=map(lambda x: x[2:], inc)
++    LIBDIRS=map(lambda x: "/".join(x.split("/")[:-1]), os.getenv("LIBS").split())
++except:
++    INCLUDES=""
++    LIBDIRS=""
++
++extension_sesearch = Extension("setools._sesearch", [ "sesearch.c"])
++extension_sesearch.include_dirs=INCLUDES
++extension_sesearch.libraries=LIBS
++extension_sesearch.library_dirs=LIBDIRS
++extension_seinfo = Extension("setools._seinfo", [ "seinfo.c"])
++extension_seinfo.include_dirs=INCLUDES
++extension_seinfo.libraries=LIBS
++extension_seinfo.library_dirs=LIBDIRS
++
++setup(name = "setools", version="1.0", description="Python setools bindings", author="Thomas Liu", author_email="tliu@redhat.com", ext_modules=[extension_sesearch, extension_seinfo], packages=["setools"])
+-- 
+1.7.6.2
+
diff --git a/setools/patches/0002-setools-should-exit-with-an-error-status-if-it-gets-.patch b/setools/patches/0002-setools-should-exit-with-an-error-status-if-it-gets-.patch
new file mode 100644 (file)
index 0000000..62a8050
--- /dev/null
@@ -0,0 +1,133 @@
+From 667fe9187c203ffcba855e821dff11c8f71ef000 Mon Sep 17 00:00:00 2001
+From: Dan Walsh <dwalsh@redhat.com>
+Date: Tue, 20 Sep 2011 15:39:51 -0400
+Subject: [PATCH 2/6] setools-should-exit-with-an-error-status-if-it-gets-an
+ error
+
+---
+ secmds/seinfo.c |   51 +++++++++++++++++++++++++++------------------------
+ 1 files changed, 27 insertions(+), 24 deletions(-)
+
+diff --git a/secmds/seinfo.c b/secmds/seinfo.c
+index fdf23e9..3088f88 100644
+--- a/secmds/seinfo.c
++++ b/secmds/seinfo.c
+@@ -827,7 +827,7 @@ static int print_sens(FILE * fp, const char *name, int expand, const apol_policy
+  */
+ static int print_cats(FILE * fp, const char *name, int expand, const apol_policy_t * policydb)
+ {
+-      int retval = 0;
++      int retval = -1;
+       apol_cat_query_t *query = NULL;
+       apol_vector_t *v = NULL;
+       const qpol_cat_t *cat_datum = NULL;
+@@ -911,9 +911,10 @@ static int print_fsuse(FILE * fp, const char *type, const apol_policy_t * policy
+               fprintf(fp, "   %s\n", tmp);
+               free(tmp);
+       }
+-      if (type && !apol_vector_get_size(v))
++      if (type && !apol_vector_get_size(v)) {
+               ERR(policydb, "No fs_use statement for filesystem of type %s.", type);
+-
++              goto cleanup;
++      }
+       retval = 0;
+       cleanup:
+       apol_fs_use_query_destroy(&query);
+@@ -949,7 +950,6 @@ static int print_genfscon(FILE * fp, const char *type, const apol_policy_t * pol
+               ERR(policydb, "%s", strerror(ENOMEM));
+               goto cleanup;
+       }
+-
+       if (apol_genfscon_query_set_filesystem(policydb, query, type))
+               goto cleanup;
+       if (apol_genfscon_get_by_query(policydb, query, &v))
+@@ -967,8 +967,10 @@ static int print_genfscon(FILE * fp, const char *type, const apol_policy_t * pol
+               free(tmp);
+       }
+-      if (type && !apol_vector_get_size(v))
++      if (type && !apol_vector_get_size(v)) {
+               ERR(policydb, "No genfscon statement for filesystem of type %s.", type);
++              goto cleanup;
++      }
+       retval = 0;
+       cleanup:
+@@ -1646,6 +1648,7 @@ cleanup: // close and destroy iterators etc.
+ int main(int argc, char **argv)
+ {
++      int rc = 0;
+       int classes, types, attribs, roles, users, all, expand, stats, rt, optc, isids, bools, sens, cats, fsuse, genfs, netif,
+               node, port, permissives, polcaps, constrain, linebreaks;
+       apol_policy_t *policydb = NULL;
+@@ -1851,46 +1854,46 @@ int main(int argc, char **argv)
+       /* display requested info */
+       if (stats || all)
+-              print_stats(stdout, policydb);
++              rc = print_stats(stdout, policydb);
+       if (classes || all)
+-              print_classes(stdout, class_name, expand, policydb);
++              rc = print_classes(stdout, class_name, expand, policydb);
+       if (types || all)
+-              print_types(stdout, type_name, expand, policydb);
++              rc = print_types(stdout, type_name, expand, policydb);
+       if (attribs || all)
+-              print_attribs(stdout, attrib_name, expand, policydb);
++              rc = print_attribs(stdout, attrib_name, expand, policydb);
+       if (roles || all)
+-              print_roles(stdout, role_name, expand, policydb);
++              rc = print_roles(stdout, role_name, expand, policydb);
+       if (users || all)
+-              print_users(stdout, user_name, expand, policydb);
++              rc = print_users(stdout, user_name, expand, policydb);
+       if (bools || all)
+-              print_booleans(stdout, bool_name, expand, policydb);
++              rc = print_booleans(stdout, bool_name, expand, policydb);
+       if (sens || all)
+-              print_sens(stdout, sens_name, expand, policydb);
++              rc = print_sens(stdout, sens_name, expand, policydb);
+       if (cats || all)
+-              print_cats(stdout, cat_name, expand, policydb);
++              rc = print_cats(stdout, cat_name, expand, policydb);
+       if (fsuse || all)
+-              print_fsuse(stdout, fsuse_type, policydb);
++              rc = print_fsuse(stdout, fsuse_type, policydb);
+       if (genfs || all)
+-              print_genfscon(stdout, genfs_type, policydb);
++              rc = print_genfscon(stdout, genfs_type, policydb);
+       if (netif || all)
+-              print_netifcon(stdout, netif_name, policydb);
++              rc = print_netifcon(stdout, netif_name, policydb);
+       if (node || all)
+-              print_nodecon(stdout, node_addr, policydb);
++              rc = print_nodecon(stdout, node_addr, policydb);
+       if (port || all)
+-              print_portcon(stdout, port_num, protocol, policydb);
++              rc = print_portcon(stdout, port_num, protocol, policydb);
+       if (isids || all)
+-              print_isids(stdout, isid_name, expand, policydb);
++              rc = print_isids(stdout, isid_name, expand, policydb);
+       if (permissives || all)
+-              print_permissives(stdout, permissive_name, expand, policydb);
++              rc = print_permissives(stdout, permissive_name, expand, policydb);
+       if (polcaps || all)
+-              print_polcaps(stdout, polcap_name, expand, policydb);
++              rc = print_polcaps(stdout, polcap_name, expand, policydb);
+       if (constrain || all)
+-              print_constraints(stdout, expand, policydb, linebreaks);
++              rc = print_constraints(stdout, expand, policydb, linebreaks);
+       apol_policy_destroy(&policydb);
+       apol_policy_path_destroy(&pol_path);
+       free(policy_file);
+-      exit(0);
++      exit(rc);
+ }
+ /**
+-- 
+1.7.6.2
+
diff --git a/setools/patches/0003-Since-we-do-not-ship-neverallow-rules-all-always-fai.patch b/setools/patches/0003-Since-we-do-not-ship-neverallow-rules-all-always-fai.patch
new file mode 100644 (file)
index 0000000..ae30696
--- /dev/null
@@ -0,0 +1,28 @@
+From 252b7c8bf311d615164a20f4f402767e5859d972 Mon Sep 17 00:00:00 2001
+From: Dan Walsh <dwalsh@redhat.com>
+Date: Tue, 20 Sep 2011 15:40:28 -0400
+Subject: [PATCH 3/6] Since-we-do-not-ship-neverallow-rules-all-always-fail
+
+---
+ libqpol/src/avrule_query.c |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/libqpol/src/avrule_query.c b/libqpol/src/avrule_query.c
+index 749565b..76dcaa3 100644
+--- a/libqpol/src/avrule_query.c
++++ b/libqpol/src/avrule_query.c
+@@ -57,8 +57,9 @@ int qpol_policy_get_avrule_iter(const qpol_policy_t * policy, uint32_t rule_type
+       if ((rule_type_mask & QPOL_RULE_NEVERALLOW) && !qpol_policy_has_capability(policy, QPOL_CAP_NEVERALLOW)) {
+               ERR(policy, "%s", "Cannot get avrules: Neverallow rules requested but not available");
+-              errno = ENOTSUP;
+-              return STATUS_ERR;
++/*            errno = ENOTSUP;
++              return STATUS_ERR; */
++              return STATUS_SUCCESS;
+       }
+       db = &policy->p->p;
+-- 
+1.7.6.2
+
diff --git a/setools/patches/0004-Fix-man-pages-and-getoptions.patch b/setools/patches/0004-Fix-man-pages-and-getoptions.patch
new file mode 100644 (file)
index 0000000..c06270e
--- /dev/null
@@ -0,0 +1,78 @@
+From b3c8ef5822dbf3e3272fc29627ddac7e20e936d5 Mon Sep 17 00:00:00 2001
+From: Dan Walsh <dwalsh@redhat.com>
+Date: Tue, 20 Sep 2011 15:41:12 -0400
+Subject: [PATCH 4/6] Fix-man-pages-and-getoptions
+
+---
+ man/replcon.1            |    2 ++
+ man/seinfo.1             |    6 +++++-
+ seaudit/seaudit-report.c |    2 +-
+ sediff/sediff.c          |    2 +-
+ 4 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/man/replcon.1 b/man/replcon.1
+index 8aca08a..478dc51 100644
+--- a/man/replcon.1
++++ b/man/replcon.1
+@@ -44,6 +44,8 @@ Search for files which include PATH.
+ .IP "-c CLASS, --class=CLASS"
+ Search only files of object class CLASS.
+ .SH OPTIONS
++.IP "-R, --regex"
++Enable regular expressions
+ .IP "-v, --verbose"
+ Display context info during replacement.
+ .IP "-h, --help"
+diff --git a/man/seinfo.1 b/man/seinfo.1
+index 8612119..6bc17db 100644
+--- a/man/seinfo.1
++++ b/man/seinfo.1
+@@ -76,6 +76,10 @@ There is no expanded information for this component.
+ .IP "--nodecon[=ADDR]"
+ Print a list of node contexts or, if ADDR is provided, print the statement for the node with address ADDR.
+ There is no expanded information for this component.
++.IP "--polcap"
++Print policy capabilities.
++.IP "--permissive"
++Print permissive types.
+ .IP "--portcon[=PORT]"
+ Print a list of port contexts or, if PORT is provided, print the statement for port PORT.
+ There is no expanded information for this component.
+@@ -93,7 +97,7 @@ These details include the types assigned to an attribute or role and the permiss
+ This option is not available for all component types; see the description of each component for the details this option will provide.
+ .IP "--stats"
+ Print policy statistics including policy type and version information and counts of all components and rules.
+-.IP "-l"
++.IP "-l, --line-breaks"
+ Print line breaks when displaying constraint statements.
+ .IP "-h, --help"
+ Print help information and exit.
+diff --git a/seaudit/seaudit-report.c b/seaudit/seaudit-report.c
+index af3c6fb..d436c18 100644
+--- a/seaudit/seaudit-report.c
++++ b/seaudit/seaudit-report.c
+@@ -100,7 +100,7 @@ static void seaudit_report_info_usage(const char *program_name, int brief)
+       printf("  -s, --stdin              read log data from standard input\n");
+       printf("  -m, --malformed          include malformed log messages\n");
+       printf("  -o FILE, --output=FILE   output to FILE\n");
+-      printf("  --config=FILE            read configuration from FILE\n");
++      printf("  -c FILE, --config=FILE   read configuration from FILE\n");
+       printf("  --html                   set output format to HTML\n");
+       printf("  --stylesheet=FILE        HTML style sheet for formatting HTML report\n");
+       printf("                           (ignored if --html is not given)\n");
+diff --git a/sediff/sediff.c b/sediff/sediff.c
+index 6022775..341c650 100644
+--- a/sediff/sediff.c
++++ b/sediff/sediff.c
+@@ -420,7 +420,7 @@ int main(int argc, char **argv)
+       poldiff_t *diff = NULL;
+       size_t total = 0;
+-      while ((optc = getopt_long(argc, argv, "ctarubANDLMCRqhV", longopts, NULL)) != -1) {
++      while ((optc = getopt_long(argc, argv, "ctarubAqhV", longopts, NULL)) != -1) {
+               switch (optc) {
+               case 0:
+                       break;
+-- 
+1.7.6.2
+
diff --git a/setools/patches/0005-Fix-sepol-calls-to-work-with-latest-libsepol.patch b/setools/patches/0005-Fix-sepol-calls-to-work-with-latest-libsepol.patch
new file mode 100644 (file)
index 0000000..01f545d
--- /dev/null
@@ -0,0 +1,34 @@
+From 2b58d92add64b53b16cbb438e7b69e85d046afd1 Mon Sep 17 00:00:00 2001
+From: Dan Walsh <dwalsh@redhat.com>
+Date: Tue, 20 Sep 2011 15:46:38 -0400
+Subject: [PATCH 5/6] Fix sepol calls to work with latest libsepol
+
+---
+ configure.ac |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index e837e03..3c11e23 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -505,7 +505,7 @@ AC_COMPILE_IFELSE(
+                   [AC_LANG_SOURCE([
+ #include <sepol/policydb/expand.h>
+ int main () {
+-  return role_set_expand(NULL, NULL, NULL, NULL);
++  return role_set_expand(NULL, NULL, NULL, NULL, NULL);
+ }])],
+                   sepol_new_user_role_mapping="yes",
+                   sepol_new_user_role_mapping="no")
+@@ -541,7 +541,7 @@ if test ${sepol_check_boolmap} = "yes"; then
+                          [AC_LANG_SOURCE([
+ #include <sepol/policydb/expand.h>
+ int main () {
+-  return expand_module_avrules(NULL, NULL, NULL, NULL, NULL, 0, 0);
++  return expand_module_avrules(NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0);
+ }])],
+                          AC_MSG_RESULT([yes]),
+                          AC_MSG_ERROR([this version of libsepol is incompatible with SETools]))
+-- 
+1.7.6.2
+
diff --git a/setools/patches/0006-Changes-to-support-named-file_trans-rules.patch b/setools/patches/0006-Changes-to-support-named-file_trans-rules.patch
new file mode 100644 (file)
index 0000000..f70eab4
--- /dev/null
@@ -0,0 +1,1506 @@
+From 287f507657e162bc09b5c186bbd580901fbc942a Mon Sep 17 00:00:00 2001
+From: Dan Walsh <dwalsh@redhat.com>
+Date: Tue, 20 Sep 2011 15:47:28 -0400
+Subject: [PATCH 6/6] Changes to support named file_trans rules
+
+---
+ libapol/include/apol/ftrule-query.h |  198 +++++++++++++++++++
+ libapol/include/apol/policy-query.h |    1 +
+ libapol/src/Makefile.am             |    1 +
+ libapol/src/ftrule-query.c          |  363 +++++++++++++++++++++++++++++++++++
+ libapol/src/libapol.map             |    1 +
+ libqpol/include/qpol/ftrule_query.h |  116 +++++++++++
+ libqpol/include/qpol/policy.h       |    1 +
+ libqpol/src/Makefile.am             |    1 +
+ libqpol/src/ftrule_query.c          |  277 ++++++++++++++++++++++++++
+ libqpol/src/libqpol.map             |    1 +
+ libqpol/src/module_compiler.c       |   12 ++
+ libqpol/src/policy_define.c         |  186 ++++++++++++++++++-
+ libqpol/src/policy_parse.y          |   13 +-
+ libqpol/src/policy_scan.l           |    1 +
+ secmds/sesearch.c                   |  101 ++++++++++
+ 15 files changed, 1270 insertions(+), 3 deletions(-)
+ create mode 100644 libapol/include/apol/ftrule-query.h
+ create mode 100644 libapol/src/ftrule-query.c
+ create mode 100644 libqpol/include/qpol/ftrule_query.h
+ create mode 100644 libqpol/src/ftrule_query.c
+
+diff --git a/libapol/include/apol/ftrule-query.h b/libapol/include/apol/ftrule-query.h
+new file mode 100644
+index 0000000..119c52f
+--- /dev/null
++++ b/libapol/include/apol/ftrule-query.h
+@@ -0,0 +1,198 @@
++/**
++ * @file
++ *
++ * Routines to query filename_transition rules of a
++ * policy.  
++ *
++ * @author Jeremy A. Mowery jmowery@tresys.com
++ * @author Jason Tang  jtang@tresys.com
++ *
++ * Copyright (C) 2006-2007 Tresys Technology, LLC
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License as published by the Free Software Foundation; either
++ *  version 2.1 of the License, or (at your option) any later version.
++ *
++ *  This library 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
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
++ */
++
++#ifndef APOL_FILENAMERULE_QUERY_H
++#define APOL_FILENAMERULE_QUERY_H
++
++#ifdef        __cplusplus
++extern "C"
++{
++#endif
++
++#include "policy.h"
++#include "vector.h"
++#include <qpol/policy.h>
++
++      typedef struct apol_filename_trans_query apol_filename_trans_query_t;
++
++
++/******************** filename_transition queries ********************/
++
++/**
++ * Execute a query against all filename_transition rules within the
++ * policy.
++ *
++ * @param p Policy within which to look up filename_transition rules.
++ * @param r Structure containing parameters for query.        If this is
++ * NULL then return all filename_transition rules.
++ * @param v Reference to a vector of qpol_filename_trans_t.  The vector
++ * will be allocated by this function.  The caller must call
++ * apol_vector_destroy() afterwards.  This will be set to NULL upon no
++ * results or upon error.
++ *
++ * @return 0 on success (including none found), negative on error.
++ */
++      extern int apol_filename_trans_get_by_query(const apol_policy_t * p, const apol_filename_trans_query_t * r, apol_vector_t ** v);
++
++/**
++ * Allocate and return a new filename trans query structure.  All fields
++ * are initialized, such that running this blank query results in
++ * returning all filename_transitions within the policy.  The caller must
++ * call apol_filename_trans_query_destroy() upon the return value
++ * afterwards.
++ *
++ * @return An initialized filename trans query structure, or NULL upon
++ * error.
++ */
++      extern apol_filename_trans_query_t *apol_filename_trans_query_create(void);
++
++/**
++ * Deallocate all memory associated with the referenced filename trans
++ * query, and then set it to NULL.  This function does nothing if the
++ * query is already NULL.
++ *
++ * @param r Reference to a filename trans query structure to destroy.
++ */
++      extern void apol_filename_trans_query_destroy(apol_filename_trans_query_t ** r);
++
++/**
++ * Set a filename_trans query to return rules whose source symbol matches
++ * symbol.  Symbol may be a type or attribute; if it is an alias then
++ * the query will convert it to its primary prior to searching.  If
++ * is_indirect is non-zero then the search will be done indirectly.
++ * If the symbol is a type, then the query matches rules with one of
++ * the type's attributes.  If the symbol is an attribute, then it
++ * matches rule with any of the attribute's types.
++ *
++ * @param p Policy handler, to report errors.
++ * @param t TE rule query to set.
++ * @param symbol Limit query to rules with this symbol as their
++ * source, or NULL to unset this field.
++ * @param is_indirect If non-zero, perform indirect matching.
++ *
++ * @return 0 on success, negative on error.
++ */
++      extern int apol_filename_trans_query_set_source(const apol_policy_t * p, apol_filename_trans_query_t * t, const char *symbol,
++                                              int is_indirect);
++
++/**
++ * Set a filename trans query to return rules with a particular target
++ * symbol.  Symbol may be a type or attribute; if it is an alias then
++ * the query will convert it to its primary prior to searching.  If
++ * is_indirect is non-zero then the search will be done indirectly.
++ * If the symbol is a type, then the query matches rules with one of
++ * the type's attributes.  If the symbol is an attribute, then it
++ * matches rule with any of the attribute's types.
++ *
++ * @param p Policy handler, to report errors.
++ * @param r Role trans query to set.
++ * @param symbol Limit query to rules with this type or attribute as
++ * their target, or NULL to unset this field.
++ * @param is_indirect If non-zero, perform indirect matching.
++ *
++ * @return 0 on success, negative on error.
++ */
++      extern int apol_filename_trans_query_set_target(const apol_policy_t * p, apol_filename_trans_query_t * r, const char *symbol,
++                                                  int is_indirect);
++
++/**
++ * Set a filename trans query to return rules with a particular default
++ * filename.  This field is ignored if
++ * apol_filename_trans_query_set_source_any() is set to non-zero.
++ *
++ * @param p Policy handler, to report errors.
++ * @param r Role trans query to set.
++ * @param filename Limit query to rules with this filename as their default, or
++ * NULL to unset this field.
++ *
++ * @return 0 on success, negative on error.
++ */
++      extern int apol_filename_trans_query_set_default(const apol_policy_t * p, apol_filename_trans_query_t * r, const char *filename);
++
++/**
++ * Set at filename_trans query to return rules with this object (non-common)
++ * class.  If more than one class are appended to the query, the
++ * rule's class must be one of those appended.  (I.e., the rule's
++ * class must be a member of the query's classes.)  Pass a NULL to
++ * clear all classes.  Note that this performs straight string
++ * comparison, ignoring the regex flag.
++
++ *
++ * @param p Policy handler, to report errors.
++ * @param t TE rule query to set.
++ * @param obj_class Name of object class to add to search set.
++ *
++ * @return 0 on success, negative on error.
++ */
++      extern int apol_filename_trans_query_append_class(const apol_policy_t * p, apol_filename_trans_query_t * t, const char *obj_class);
++
++/**
++ * Set a filename trans query to treat the source filename as any.  That is,
++ * use the same symbol for either source or default of a
++ * filename_transition rule.  This flag does nothing if the source filename is
++ * not set.  Note that a filename_transition's target is a type, so thus
++ * this flag does not affect its searching.
++ *
++ * @param p Policy handler, to report errors.
++ * @param r Role trans query to set.
++ * @param is_any Non-zero to use source symbol for source or default
++ * field, 0 to keep source as only source.
++ *
++ * @return Always 0.
++ */
++      extern int apol_filename_trans_query_set_source_any(const apol_policy_t * p, apol_filename_trans_query_t * r, int is_any);
++
++/**
++ * Set a filename trans query to use regular expression searching for
++ * source, target, and default fields.  Strings will be treated as
++ * regexes instead of literals.  For the target type, matching will
++ * occur against the type name or any of its aliases.
++ *
++ * @param p Policy handler, to report errors.
++ * @param r Role trans query to set.
++ * @param is_regex Non-zero to enable regex searching, 0 to disable.
++ *
++ * @return Always 0.
++ */
++      extern int apol_filename_trans_query_set_regex(const apol_policy_t * p, apol_filename_trans_query_t * r, int is_regex);
++
++/**
++ *  Render a filename_transition rule to a string.
++ *
++ *  @param policy Policy handler, to report errors.
++ *  @param rule The rule to render.
++ *
++ *  @return A newly malloc()'d string representation of the rule, or NULL on
++ *  failure; if the call fails, errno will be set. The caller is responsible
++ *  for calling free() on the returned string.
++ */
++      extern char *apol_filename_trans_render(const apol_policy_t * policy, const qpol_filename_trans_t * rule);
++
++#ifdef        __cplusplus
++}
++#endif
++
++#endif
+diff --git a/libapol/include/apol/policy-query.h b/libapol/include/apol/policy-query.h
+index 315f70e..665e4cb 100644
+--- a/libapol/include/apol/policy-query.h
++++ b/libapol/include/apol/policy-query.h
+@@ -71,6 +71,7 @@ extern "C"
+ #include "terule-query.h"
+ #include "condrule-query.h"
+ #include "rbacrule-query.h"
++#include "ftrule-query.h"
+ #include "range_trans-query.h"
+ #include "constraint-query.h"
+diff --git a/libapol/src/Makefile.am b/libapol/src/Makefile.am
+index 3fa4f06..baaa4f6 100644
+--- a/libapol/src/Makefile.am
++++ b/libapol/src/Makefile.am
+@@ -40,6 +40,7 @@ libapol_a_SOURCES = \
+       render.c \
+       role-query.c \
+       terule-query.c \
++      ftrule-query.c \
+       type-query.c \
+       types-relation-analysis.c \
+       user-query.c \
+diff --git a/libapol/src/ftrule-query.c b/libapol/src/ftrule-query.c
+new file mode 100644
+index 0000000..dc248de
+--- /dev/null
++++ b/libapol/src/ftrule-query.c
+@@ -0,0 +1,363 @@
++/**
++ * @file
++ *
++ * Provides a way for setools to make queries about type enforcement
++ * filename_transs within a policy.  The caller obtains a query object, fills in
++ * its parameters, and then runs the query; it obtains a vector of
++ * results.  Searches are conjunctive -- all fields of the search
++ * query must match for a datum to be added to the results query.
++ *
++ * @author Jeremy A. Mowery jmowery@tresys.com
++ * @author Jason Tang  jtang@tresys.com
++ *
++ * Copyright (C) 2006-2007 Tresys Technology, LLC
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License as published by the Free Software Foundation; either
++ *  version 2.1 of the License, or (at your option) any later version.
++ *
++ *  This library 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
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
++ */
++
++#include "policy-query-internal.h"
++
++#include <errno.h>
++#include <string.h>
++
++struct apol_filename_trans_query
++{
++      char *source, *target, *default_type, *name;
++      apol_vector_t *classes;
++      unsigned int flags;
++};
++
++
++/******************** filename_transition queries ********************/
++
++int apol_filename_trans_get_by_query(const apol_policy_t * p, const apol_filename_trans_query_t * t, apol_vector_t ** v)
++{
++      apol_vector_t *source_list = NULL, *target_list = NULL, *class_list = NULL, *default_list = NULL;
++      int retval = -1, source_as_any = 0, is_regex = 0, append_filename_trans;
++      char *bool_name = NULL;
++      *v = NULL;
++      unsigned int flags = 0;
++      qpol_iterator_t *iter = NULL, *type_iter = NULL;
++
++      if (t != NULL) {
++              flags = t->flags;
++              is_regex = t->flags & APOL_QUERY_REGEX;
++              if (t->source != NULL &&
++                  (source_list =
++                   apol_query_create_candidate_type_list(p, t->source, is_regex,
++                                                         t->flags & APOL_QUERY_SOURCE_INDIRECT,
++                                                         ((t->flags & (APOL_QUERY_SOURCE_TYPE | APOL_QUERY_SOURCE_ATTRIBUTE)) /
++                                                          APOL_QUERY_SOURCE_TYPE))) == NULL) {
++                      goto cleanup;
++              }
++
++              if ((t->flags & APOL_QUERY_SOURCE_AS_ANY) && t->source != NULL) {
++                      default_list = target_list = source_list;
++                      source_as_any = 1;
++              } else {
++                      if (t->target != NULL &&
++                          (target_list =
++                           apol_query_create_candidate_type_list(p, t->target, is_regex,
++                                                                 t->flags & APOL_QUERY_TARGET_INDIRECT,
++                                                                 ((t->
++                                                                   flags & (APOL_QUERY_TARGET_TYPE | APOL_QUERY_TARGET_ATTRIBUTE))
++                                                                  / APOL_QUERY_TARGET_TYPE))) == NULL) {
++                              goto cleanup;
++                      }
++                      if (t->default_type != NULL &&
++                          (default_list =
++                           apol_query_create_candidate_type_list(p, t->default_type, is_regex, 0,
++                                                                 APOL_QUERY_SYMBOL_IS_TYPE)) == NULL) {
++                              goto cleanup;
++                      }
++              }
++              if (t->classes != NULL &&
++                  apol_vector_get_size(t->classes) > 0 &&
++                  (class_list = apol_query_create_candidate_class_list(p, t->classes)) == NULL) {
++                      goto cleanup;
++              }
++      }
++
++      if (qpol_policy_get_filename_trans_iter(p->p, &iter) < 0) {
++              return -1;
++      }
++
++      if ((*v = apol_vector_create(NULL)) == NULL) {
++              ERR(p, "%s", strerror(errno));
++              goto cleanup;
++      }
++
++      for (; !qpol_iterator_end(iter); qpol_iterator_next(iter)) {
++              qpol_filename_trans_t *filename_trans;
++              if (qpol_iterator_get_item(iter, (void **)&filename_trans) < 0) {
++                      goto cleanup;
++              }
++              int match_source = 0, match_target = 0, match_default = 0, match_bool = 0;
++              size_t i;
++
++              if (source_list == NULL) {
++                      match_source = 1;
++              } else {
++                      const qpol_type_t *source_type;
++                      if (qpol_filename_trans_get_source_type(p->p, filename_trans, &source_type) < 0) {
++                              goto cleanup;
++                      }
++                      if (apol_vector_get_index(source_list, source_type, NULL, NULL, &i) == 0) {
++                              match_source = 1;
++                      }
++              }
++
++              /* if source did not match, but treating source symbol
++               * as any field, then delay rejecting this filename_trans until
++               * the target and default have been checked */
++              if (!source_as_any && !match_source) {
++                      continue;
++              }
++
++              if (target_list == NULL || (source_as_any && match_source)) {
++                      match_target = 1;
++              } else {
++                      const qpol_type_t *target_type;
++                      if (qpol_filename_trans_get_target_type(p->p, filename_trans, &target_type) < 0) {
++                              goto cleanup;
++                      }
++                      if (apol_vector_get_index(target_list, target_type, NULL, NULL, &i) == 0) {
++                              match_target = 1;
++                      }
++              }
++
++              if (!source_as_any && !match_target) {
++                      continue;
++              }
++
++              if (default_list == NULL || (source_as_any && match_source) || (source_as_any && match_target)) {
++                      match_default = 1;
++              } else {
++                      const qpol_type_t *default_type;
++                      if (qpol_filename_trans_get_default_type(p->p, filename_trans, &default_type) < 0) {
++                              goto cleanup;
++                      }
++                      if (apol_vector_get_index(default_list, default_type, NULL, NULL, &i) == 0) {
++                              match_default = 1;
++                      }
++              }
++
++              if (!source_as_any && !match_default) {
++                      continue;
++              }
++              /* at least one thing must match if source_as_any was given */
++              if (source_as_any && (!match_source && !match_target && !match_default)) {
++                      continue;
++              }
++
++              if (class_list != NULL) {
++                      const qpol_class_t *obj_class;
++                      if (qpol_filename_trans_get_object_class(p->p, filename_trans, &obj_class) < 0) {
++                              goto cleanup;
++                      }
++                      if (apol_vector_get_index(class_list, obj_class, NULL, NULL, &i) < 0) {
++                              continue;
++                      }
++              }
++
++              if (apol_vector_append(*v, filename_trans)) {
++                      ERR(p, "%s", strerror(ENOMEM));
++                      goto cleanup;
++              }
++      }
++
++      retval = 0;
++      cleanup:
++      if (retval != 0) {
++              apol_vector_destroy(v);
++      }
++      apol_vector_destroy(&source_list);
++      if (!source_as_any) {
++              apol_vector_destroy(&target_list);
++              apol_vector_destroy(&default_list);
++      }
++      apol_vector_destroy(&class_list);
++      return retval;
++}
++
++apol_filename_trans_query_t *apol_filename_trans_query_create(void)
++{
++      apol_filename_trans_query_t *t = calloc(1, sizeof(apol_filename_trans_query_t));
++      if (t != NULL) {
++              t->flags =
++                      (APOL_QUERY_SOURCE_TYPE | APOL_QUERY_SOURCE_ATTRIBUTE | APOL_QUERY_TARGET_TYPE |
++                       APOL_QUERY_TARGET_ATTRIBUTE);
++      }
++      return t;
++}
++
++void apol_filename_trans_query_destroy(apol_filename_trans_query_t ** r)
++{
++      if (r != NULL && *r != NULL) {
++              free((*r)->source);
++              free((*r)->target);
++              free((*r)->default_type);
++              free((*r)->name);
++              free(*r);
++              *r = NULL;
++      }
++}
++
++int apol_filename_trans_query_set_source(const apol_policy_t * p, apol_filename_trans_query_t * t, const char *filename, int is_indirect)
++{
++      apol_query_set_flag(p, &t->flags, is_indirect, APOL_QUERY_TARGET_INDIRECT);
++      return apol_query_set(p, &t->source, NULL, filename);
++}
++
++int apol_filename_trans_query_set_target(const apol_policy_t * p, apol_filename_trans_query_t * t, const char *type, int is_indirect)
++{
++      apol_query_set_flag(p, &t->flags, is_indirect, APOL_QUERY_TARGET_INDIRECT);
++      return apol_query_set(p, &t->target, NULL, type);
++}
++
++int apol_filename_trans_query_set_default(const apol_policy_t * p, apol_filename_trans_query_t * t, const char *symbol)
++{
++      return apol_query_set(p, &t->default_type, NULL, symbol);
++}
++
++int apol_filename_trans_query_append_class(const apol_policy_t * p, apol_filename_trans_query_t * t, const char *obj_class)
++{
++      char *s = NULL;
++      if (obj_class == NULL) {
++              apol_vector_destroy(&t->classes);
++      } else if ((s = strdup(obj_class)) == NULL || (t->classes == NULL && (t->classes = apol_vector_create(free)) == NULL)
++                 || apol_vector_append(t->classes, s) < 0) {
++              ERR(p, "%s", strerror(errno));
++              free(s);
++              return -1;
++      }
++      return 0;
++}
++
++int apol_filename_trans_query_set_name(const apol_policy_t * p, apol_filename_trans_query_t * t, const char *filename)
++{
++      return apol_query_set(p, &t->name, NULL, filename);
++}
++
++int apol_filename_trans_query_set_source_any(const apol_policy_t * p, apol_filename_trans_query_t * t, int is_any)
++{
++      return apol_query_set_flag(p, &t->flags, is_any, APOL_QUERY_SOURCE_AS_ANY);
++}
++
++int apol_filename_trans_query_set_regex(const apol_policy_t * p, apol_filename_trans_query_t * t, int is_regex)
++{
++      return apol_query_set_regex(p, &t->flags, is_regex);
++}
++
++char *apol_filename_trans_render(const apol_policy_t * policy, const qpol_filename_trans_t * filename_trans)
++{
++      char *tmp = NULL;
++      const char *tmp_name = NULL;
++      const char *filename_trans_type_str;
++      int error = 0;
++      size_t tmp_sz = 0;
++      uint32_t filename_trans_type = 0;
++      const qpol_type_t *type = NULL;
++      const qpol_class_t *obj_class = NULL;
++
++      if (!policy || !filename_trans) {
++              ERR(policy, "%s", strerror(EINVAL));
++              errno = EINVAL;
++              return NULL;
++      }
++
++      /* source type */
++      if (qpol_filename_trans_get_source_type(policy->p, filename_trans, &type)) {
++              error = errno;
++              goto err;
++      }
++      if (qpol_type_get_name(policy->p, type, &tmp_name)) {
++              error = errno;
++              goto err;
++      }
++      if (apol_str_appendf(&tmp, &tmp_sz, "transition_type %s ", tmp_name)) {
++              error = errno;
++              ERR(policy, "%s", strerror(error));
++              goto err;
++      }
++
++      /* target type */
++      if (qpol_filename_trans_get_target_type(policy->p, filename_trans, &type)) {
++              error = errno;
++              goto err;
++      }
++      if (qpol_type_get_name(policy->p, type, &tmp_name)) {
++              error = errno;
++              goto err;
++      }
++      if (apol_str_appendf(&tmp, &tmp_sz, "%s : ", tmp_name)) {
++              error = errno;
++              ERR(policy, "%s", strerror(error));
++              goto err;
++      }
++
++      /* object class */
++      if (qpol_filename_trans_get_object_class(policy->p, filename_trans, &obj_class)) {
++              error = errno;
++              goto err;
++      }
++      if (qpol_class_get_name(policy->p, obj_class, &tmp_name)) {
++              error = errno;
++              goto err;
++      }
++      if (apol_str_appendf(&tmp, &tmp_sz, "%s ", tmp_name)) {
++              error = errno;
++              ERR(policy, "%s", strerror(error));
++              goto err;
++      }
++
++      /* default type */
++      if (qpol_filename_trans_get_default_type(policy->p, filename_trans, &type)) {
++              error = errno;
++              goto err;
++      }
++      if (qpol_type_get_name(policy->p, type, &tmp_name)) {
++              error = errno;
++              goto err;
++      }
++      if (apol_str_appendf(&tmp, &tmp_sz, "%s", tmp_name)) {
++              error = errno;
++              ERR(policy, "%s", strerror(error));
++              goto err;
++      }
++
++      if (qpol_filename_trans_get_filename(policy->p, filename_trans, &tmp_name)) {
++              error = errno;
++              goto err;
++      }
++
++      if (apol_str_appendf(&tmp, &tmp_sz, " %s", tmp_name)) {
++              error = errno;
++              ERR(policy, "%s", strerror(error));
++              goto err;
++      }
++
++      if (apol_str_appendf(&tmp, &tmp_sz, ";")) {
++              error = errno;
++              ERR(policy, "%s", strerror(error));
++              goto err;
++      }
++      return tmp;
++
++      err:
++      free(tmp);
++      errno = error;
++      return NULL;
++}
+diff --git a/libapol/src/libapol.map b/libapol/src/libapol.map
+index 4894374..7657a2d 100644
+--- a/libapol/src/libapol.map
++++ b/libapol/src/libapol.map
+@@ -34,6 +34,7 @@ VERS_4.0{
+               apol_protocol_to_str;
+               apol_qpol_context_render;
+               apol_range_trans_*;
++              apol_filename_trans_*;
+               apol_relabel_*;
+               apol_role_*;
+               apol_role_allow_*;
+diff --git a/libqpol/include/qpol/ftrule_query.h b/libqpol/include/qpol/ftrule_query.h
+new file mode 100644
+index 0000000..1f533a4
+--- /dev/null
++++ b/libqpol/include/qpol/ftrule_query.h
+@@ -0,0 +1,116 @@
++/**
++ *  @file
++ *  Defines public interface for iterating over FTRULE rules.
++ *
++ *  @author Kevin Carr kcarr@tresys.com
++ *  @author Jeremy A. Mowery jmowery@tresys.com
++ *  @author Jason Tang jtang@tresys.com
++ *
++ *  Copyright (C) 2006-2007 Tresys Technology, LLC
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License as published by the Free Software Foundation; either
++ *  version 2.1 of the License, or (at your option) any later version.
++ *
++ *  This library 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
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
++ */
++
++#ifndef QPOL_FTRULERULE_QUERY
++#define QPOL_FTRULERULE_QUERY
++
++#ifdef        __cplusplus
++extern "C"
++{
++#endif
++
++#include <qpol/policy.h>
++#include <qpol/iterator.h>
++
++      typedef struct qpol_filename_trans qpol_filename_trans_t;
++
++/**
++ *  Get an iterator over all filename transition rules in the policy.
++ *  @param policy Policy from which to create the iterator.
++ *  @param iter Iterator over items of type qpol_filename_trans_t returned.
++ *  The caller is responsible for calling qpol_iterator_destroy()
++ *  to free memory used by this iterator.
++ *  It is important to note that this iterator is only valid as long as
++ *  the policy is unmodifed.
++ *  @returm 0 on success and < 0 on failure; if the call fails,
++ *  errno will be set and *iter will be NULL.
++ */
++      extern int qpol_policy_get_filename_trans_iter(const qpol_policy_t * policy, qpol_iterator_t ** iter);
++
++/**
++ *  Get the source type from a filename transition rule.
++ *  @param policy The policy from which the rule comes.
++ *  @param rule The rule from which to get the source type.
++ *  @param source Pointer in which to store the source type.
++ *  The caller should not free this pointer.
++ *  @return 0 on success and < 0 on failure; if the call fails,
++ *  errno will be set and *source will be NULL.
++ */
++      extern int qpol_filename_trans_get_source_type(const qpol_policy_t * policy, const qpol_filename_trans_t * rule,
++                                                 const qpol_type_t ** source);
++
++/**
++ *  Get the target type from a filename transition rule.
++ *  @param policy The policy from which the rule comes.
++ *  @param rule The rule from which to get the target type.
++ *  @param target Pointer in which to store the target type.
++ *  The caller should not free this pointer.
++ *  @return 0 on success and < 0 on failure; if the call fails,
++ *  errno will be set and *target will be NULL.
++ */
++      extern int qpol_filename_trans_get_target_type(const qpol_policy_t * policy, const qpol_filename_trans_t * rule,
++                                                 const qpol_type_t ** target);
++
++/**
++ *  Get the default type from a type rule.
++ *  @param policy Policy from which the rule comes.
++ *  @param rule The rule from which to get the default type.
++ *  @param dflt Pointer in which to store the default type.
++ *  The caller should not free this pointer.
++ *  @returm 0 on success and < 0 on failure; if the call fails,
++ *  errno will be set and *dflt will be NULL.
++ */
++      extern int qpol_filename_trans_get_default_type(const qpol_policy_t * policy, const qpol_filename_trans_t * rule,
++                                              const qpol_type_t ** dflt);
++
++/**
++ *  Get the object class from a type rule.
++ *  @param policy Policy from which the rule comes.
++ *  @param rule The rule from which to get the object class.
++ *  @param obj_class Pointer in which to store the object class.
++ *  The caller should not free this pointer.
++ *  @returm 0 on success and < 0 on failure; if the call fails,
++ *  errno will be set and *obj_class will be NULL.
++ */
++      extern int qpol_filename_trans_get_object_class(const qpol_policy_t * policy, const qpol_filename_trans_t * rule,
++                                              const qpol_class_t ** obj_class);
++
++/**
++ *  Get the transition filename type from a type rule.
++ *  @param policy Policy from which the rule comes.
++ *  @param rule The rule from which to get the transition filename.
++ *  @param target Pointer in which to store the transition filename.
++ *  The caller should not free this pointer.
++ *  @returm 0 on success and < 0 on failure; if the call fails,
++ *  errno will be set and *target will be NULL.
++ */
++      extern int qpol_filename_trans_get_filename(const qpol_policy_t * policy, const qpol_filename_trans_t * rule,
++                                                     const char ** name);
++
++#ifdef        __cplusplus
++}
++#endif
++
++#endif                                       /* QPOL_FTRULERULE_QUERY */
+diff --git a/libqpol/include/qpol/policy.h b/libqpol/include/qpol/policy.h
+index ae4ea08..bf85718 100644
+--- a/libqpol/include/qpol/policy.h
++++ b/libqpol/include/qpol/policy.h
+@@ -55,6 +55,7 @@ extern "C"
+ #include <qpol/polcap_query.h>
+ #include <qpol/portcon_query.h>
+ #include <qpol/rbacrule_query.h>
++#include <qpol/ftrule_query.h>
+ #include <qpol/role_query.h>
+ #include <qpol/syn_rule_query.h>
+ #include <qpol/terule_query.h>
+diff --git a/libqpol/src/Makefile.am b/libqpol/src/Makefile.am
+index 34d87a6..0889a61 100644
+--- a/libqpol/src/Makefile.am
++++ b/libqpol/src/Makefile.am
+@@ -48,6 +48,7 @@ libqpol_a_SOURCES = \
+       syn_rule_internal.h \
+       syn_rule_query.c \
+       terule_query.c \
++      ftrule_query.c \
+       type_query.c \
+       user_query.c \
+       util.c \
+diff --git a/libqpol/src/ftrule_query.c b/libqpol/src/ftrule_query.c
+new file mode 100644
+index 0000000..d6db848
+--- /dev/null
++++ b/libqpol/src/ftrule_query.c
+@@ -0,0 +1,277 @@
++/**
++ *  @file
++ *  Defines public interface for iterating over RBAC rules.
++ *
++ *  @author Jeremy A. Mowery jmowery@tresys.com
++ *  @author Jason Tang jtang@tresys.com
++ *
++ *  Copyright (C) 2006-2007 Tresys Technology, LLC
++ *
++ *  This library is free software; you can redistribute it and/or
++ *  modify it under the terms of the GNU Lesser General Public
++ *  License as published by the Free Software Foundation; either
++ *  version 2.1 of the License, or (at your option) any later version.
++ *
++ *  This library 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
++ *  Lesser General Public License for more details.
++ *
++ *  You should have received a copy of the GNU Lesser General Public
++ *  License along with this library; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
++ */
++
++#include <qpol/iterator.h>
++#include <qpol/policy.h>
++#include <qpol/ftrule_query.h>
++#include <stdlib.h>
++#include "iterator_internal.h"
++#include "qpol_internal.h"
++#include <sepol/policydb/policydb.h>
++
++typedef struct filename_trans_state
++{
++      filename_trans_t *head;
++      filename_trans_t *cur;
++} filename_trans_state_t;
++
++static int filename_trans_state_end(const qpol_iterator_t * iter)
++{
++      filename_trans_state_t *fts = NULL;
++
++      if (!iter || !(fts = qpol_iterator_state(iter))) {
++              errno = EINVAL;
++              return STATUS_ERR;
++      }
++
++      return fts->cur ? 0 : 1;
++}
++
++static void *filename_trans_state_get_cur(const qpol_iterator_t * iter)
++{
++      filename_trans_state_t *fts = NULL;
++      const policydb_t *db = NULL;
++
++      if (!iter || !(fts = qpol_iterator_state(iter)) || !(db = qpol_iterator_policy(iter)) || filename_trans_state_end(iter)) {
++              errno = EINVAL;
++              return NULL;
++      }
++
++      return fts->cur;
++}
++
++static int filename_trans_state_next(qpol_iterator_t * iter)
++{
++      filename_trans_state_t *fts = NULL;
++      const policydb_t *db = NULL;
++
++      if (!iter || !(fts = qpol_iterator_state(iter)) || !(db = qpol_iterator_policy(iter))) {
++              errno = EINVAL;
++              return STATUS_ERR;
++      }
++
++      if (filename_trans_state_end(iter)) {
++              errno = ERANGE;
++              return STATUS_ERR;
++      }
++
++      fts->cur = fts->cur->next;
++
++      return STATUS_SUCCESS;
++}
++
++static size_t filename_trans_state_size(const qpol_iterator_t * iter)
++{
++      filename_trans_state_t *fts = NULL;
++      const policydb_t *db = NULL;
++      filename_trans_t *tmp = NULL;
++      size_t count = 0;
++
++      if (!iter || !(fts = qpol_iterator_state(iter)) || !(db = qpol_iterator_policy(iter))) {
++              errno = EINVAL;
++              return STATUS_ERR;
++      }
++
++      for (tmp = fts->head; tmp; tmp = tmp->next)
++              count++;
++
++      return count;
++}
++
++int qpol_policy_get_filename_trans_iter(const qpol_policy_t * policy, qpol_iterator_t ** iter)
++{
++      policydb_t *db = NULL;
++      filename_trans_state_t *fts = NULL;
++      int error = 0;
++
++      if (iter)
++              *iter = NULL;
++
++      if (!policy || !iter) {
++              ERR(policy, "%s", strerror(EINVAL));
++              errno = EINVAL;
++              return STATUS_ERR;
++      }
++
++      db = &policy->p->p;
++
++      fts = calloc(1, sizeof(filename_trans_state_t));
++      if (!fts) {
++              /* errno set by calloc */
++              ERR(policy, "%s", strerror(errno));
++              return STATUS_ERR;
++      }
++      fts->head = fts->cur = db->filename_trans;
++
++      if (qpol_iterator_create
++          (policy, (void *)fts, filename_trans_state_get_cur, filename_trans_state_next, filename_trans_state_end, filename_trans_state_size,
++           free, iter)) {
++              error = errno;
++              free(fts);
++              errno = error;
++              return STATUS_ERR;
++      }
++
++      return STATUS_SUCCESS;
++}
++
++int qpol_filename_trans_get_source_type(const qpol_policy_t * policy, const qpol_filename_trans_t * rule, const qpol_type_t ** source)
++{
++      policydb_t *db = NULL;
++      filename_trans_t *ft = NULL;
++
++      if (source) {
++              *source = NULL;
++      }
++
++      if (!policy || !rule || !source) {
++              ERR(policy, "%s", strerror(EINVAL));
++              errno = EINVAL;
++              return STATUS_ERR;
++      }
++
++      db = &policy->p->p;
++      ft = (filename_trans_t *) rule;
++
++      *source = (qpol_type_t *) db->type_val_to_struct[ft->stype - 1];
++
++      return STATUS_SUCCESS;
++}
++
++int qpol_filename_trans_get_target_type(const qpol_policy_t * policy, const qpol_filename_trans_t * rule, const qpol_type_t ** target)
++{
++      policydb_t *db = NULL;
++      filename_trans_t *ft = NULL;
++
++      if (target) {
++              *target = NULL;
++      }
++
++      if (!policy || !rule || !target) {
++              ERR(policy, "%s", strerror(EINVAL));
++              errno = EINVAL;
++              return STATUS_ERR;
++      }
++
++      db = &policy->p->p;
++      ft = (filename_trans_t *) rule;
++
++      *target = (qpol_type_t *) db->type_val_to_struct[ft->ttype - 1];
++
++      return STATUS_SUCCESS;
++}
++
++int qpol_filename_trans_get_object_class(const qpol_policy_t * policy, const qpol_filename_trans_t * rule,
++                                              const qpol_class_t ** obj_class)
++{
++      policydb_t *db = NULL;
++      filename_trans_t *ft = NULL;
++
++      if (obj_class) {
++              *obj_class = NULL;
++      }
++
++      if (!policy || !rule || !obj_class) {
++              ERR(policy, "%s", strerror(EINVAL));
++              errno = EINVAL;
++              return STATUS_ERR;
++      }
++
++      db = &policy->p->p;
++      ft = (filename_trans_t *) rule;
++
++      *obj_class = (qpol_class_t *) db->class_val_to_struct[ft->tclass - 1];
++
++      return STATUS_SUCCESS;
++}
++
++int qpol_filename_trans_get_trans_type(const qpol_policy_t * policy, const qpol_filename_trans_t * rule, const qpol_type_t ** output_type)
++{
++      policydb_t *db = NULL;
++      filename_trans_t *ft = NULL;
++
++      if (output_type) {
++              *output_type = NULL;
++      }
++
++      if (!policy || !rule || !output_type) {
++              ERR(policy, "%s", strerror(EINVAL));
++              errno = EINVAL;
++              return STATUS_ERR;
++      }
++
++      db = &policy->p->p;
++      ft = (filename_trans_t *) rule;
++
++      *output_type = (qpol_type_t *) db->type_val_to_struct[ft->otype - 1];
++
++      return STATUS_SUCCESS;
++}
++
++int qpol_filename_trans_get_default_type(const qpol_policy_t * policy, const qpol_filename_trans_t * rule, const qpol_type_t ** dflt)
++{
++      policydb_t *db = NULL;
++      filename_trans_t *ft = NULL;
++
++      if (dflt) {
++              *dflt = NULL;
++      }
++
++      if (!policy || !rule || !dflt) {
++              ERR(policy, "%s", strerror(EINVAL));
++              errno = EINVAL;
++              return STATUS_ERR;
++      }
++
++      db = &policy->p->p;
++      ft = (filename_trans_t *) rule;
++
++      *dflt = (qpol_type_t *) db->type_val_to_struct[ft->otype - 1];
++
++      return STATUS_SUCCESS;
++}
++
++int qpol_filename_trans_get_filename(const qpol_policy_t * policy, const qpol_filename_trans_t * rule, const char ** name)
++{
++      policydb_t *db = NULL;
++      filename_trans_t *ft = NULL;
++
++      if (name) {
++              *name = NULL;
++      }
++
++      if (!policy || !rule || !name) {
++              ERR(policy, "%s", strerror(EINVAL));
++              errno = EINVAL;
++              return STATUS_ERR;
++      }
++
++      db = &policy->p->p;
++      ft = (filename_trans_t *) rule;
++
++      *name = ft->name;
++
++      return STATUS_SUCCESS;
++}
++
+diff --git a/libqpol/src/libqpol.map b/libqpol/src/libqpol.map
+index dd293bc..6973cca 100644
+--- a/libqpol/src/libqpol.map
++++ b/libqpol/src/libqpol.map
+@@ -34,6 +34,7 @@ VERS_1.2 {
+               qpol_policy_reevaluate_conds;
+               qpol_portcon_*;
+               qpol_range_trans_*;
++              qpol_filename_trans_*;
+               qpol_role_*;
+               qpol_syn_avrule_*;
+               qpol_syn_terule_*;
+diff --git a/libqpol/src/module_compiler.c b/libqpol/src/module_compiler.c
+index dc19798..b06e285 100644
+--- a/libqpol/src/module_compiler.c
++++ b/libqpol/src/module_compiler.c
+@@ -1247,6 +1247,18 @@ void append_role_allow(role_allow_rule_t * role_allow_rules)
+ }
+ /* this doesn't actually append, but really prepends it */
++void append_filename_trans(filename_trans_rule_t * filename_trans_rules)
++{
++      avrule_decl_t *decl = stack_top->decl;
++
++      /* filename transitions are not allowed within conditionals */
++      assert(stack_top->type == 1);
++
++      filename_trans_rules->next = decl->filename_trans_rules;
++      decl->filename_trans_rules = filename_trans_rules;
++}
++
++/* this doesn't actually append, but really prepends it */
+ void append_range_trans(range_trans_rule_t * range_tr_rules)
+ {
+       avrule_decl_t *decl = stack_top->decl;
+diff --git a/libqpol/src/policy_define.c b/libqpol/src/policy_define.c
+index c94f7aa..0f3a45a 100644
+--- a/libqpol/src/policy_define.c
++++ b/libqpol/src/policy_define.c
+@@ -2133,7 +2133,7 @@ int define_role_trans(void)
+       /* This ebitmap business is just to ensure that there are not conflicting role_trans rules */
+ #ifdef HAVE_SEPOL_USER_ROLE_MAPPING
+-      if (role_set_expand(&roles, &e_roles, policydbp, NULL))
++      if (role_set_expand(&roles, &e_roles, policydbp, NULL, NULL))
+ #else
+       if (role_set_expand(&roles, &e_roles, policydbp))
+ #endif
+@@ -2226,6 +2226,190 @@ int define_role_allow(void)
+       return 0;
+ }
++avrule_t *define_cond_filename_trans(void)
++{
++      yyerror("type transitions with a filename not allowed inside "
++              "conditionals\n");
++      return COND_ERR;
++}
++
++int define_filename_trans(void)
++{
++      char *id, *name = NULL;
++      type_set_t stypes, ttypes;
++      ebitmap_t e_stypes, e_ttypes;
++      ebitmap_t e_tclasses;
++      ebitmap_node_t *snode, *tnode, *cnode;
++      filename_trans_t *ft;
++      filename_trans_rule_t *ftr;
++      class_datum_t *cladatum;
++      type_datum_t *typdatum;
++      uint32_t otype;
++      unsigned int c, s, t;
++      int add;
++
++      if (pass == 1) {
++              /* stype */
++              while ((id = queue_remove(id_queue)))
++                      free(id);
++              /* ttype */
++              while ((id = queue_remove(id_queue)))
++                      free(id);
++              /* tclass */
++              while ((id = queue_remove(id_queue)))
++                      free(id);
++              /* otype */
++              id = queue_remove(id_queue);
++              free(id);
++              /* name */
++              id = queue_remove(id_queue);
++              free(id);
++              return 0;
++      }
++
++
++      add = 1;
++      type_set_init(&stypes);
++      while ((id = queue_remove(id_queue))) {
++              if (set_types(&stypes, id, &add, 0))
++                      goto bad;
++      }
++
++      add =1;
++      type_set_init(&ttypes);
++      while ((id = queue_remove(id_queue))) {
++              if (set_types(&ttypes, id, &add, 0))
++                      goto bad;
++      }
++
++      ebitmap_init(&e_tclasses);
++      while ((id = queue_remove(id_queue))) {
++              if (!is_id_in_scope(SYM_CLASSES, id)) {
++                      yyerror2("class %s is not within scope", id);
++                      free(id);
++                      goto bad;
++              }
++              cladatum = hashtab_search(policydbp->p_classes.table, id);
++              if (!cladatum) {
++                      yyerror2("unknown class %s", id);
++                      goto bad;
++              }
++              if (ebitmap_set_bit(&e_tclasses, cladatum->s.value - 1, TRUE)) {
++                      yyerror("Out of memory");
++                      goto bad;
++              }
++              free(id);
++      }
++
++      id = (char *)queue_remove(id_queue);
++      if (!id) {
++              yyerror("no otype in transition definition?");
++              goto bad;
++      }
++      if (!is_id_in_scope(SYM_TYPES, id)) {
++              yyerror2("type %s is not within scope", id);
++              free(id);
++              goto bad;
++      }
++      typdatum = hashtab_search(policydbp->p_types.table, id);
++      if (!typdatum) {
++              yyerror2("unknown type %s used in transition definition", id);
++              goto bad;
++      }
++      free(id);
++      otype = typdatum->s.value;
++
++      name = queue_remove(id_queue);
++      if (!name) {
++              yyerror("no pathname specified in filename_trans definition?");
++              goto bad;
++      }
++
++      /* We expand the class set into seperate rules.  We expand the types
++       * just to make sure there are not duplicates.  They will get turned
++       * into seperate rules later */
++      ebitmap_init(&e_stypes);
++      if (type_set_expand(&stypes, &e_stypes, policydbp, 1))
++              goto bad;
++
++      ebitmap_init(&e_ttypes);
++      if (type_set_expand(&ttypes, &e_ttypes, policydbp, 1))
++              goto bad;
++
++      ebitmap_for_each_bit(&e_tclasses, cnode, c) {
++              if (!ebitmap_node_get_bit(cnode, c))
++                      continue;
++              ebitmap_for_each_bit(&e_stypes, snode, s) {
++                      if (!ebitmap_node_get_bit(snode, s))
++                              continue;
++                      ebitmap_for_each_bit(&e_ttypes, tnode, t) {
++                              if (!ebitmap_node_get_bit(tnode, t))
++                                      continue;
++      
++                              for (ft = policydbp->filename_trans; ft; ft = ft->next) {
++                                      if (ft->stype == (s + 1) &&
++                                          ft->ttype == (t + 1) &&
++                                          ft->tclass == (c + 1) &&
++                                          !strcmp(ft->name, name)) {
++                                              yyerror2("duplicate filename transition for: filename_trans %s %s %s:%s",
++                                                       name, 
++                                                       policydbp->p_type_val_to_name[s],
++                                                       policydbp->p_type_val_to_name[t],
++                                                       policydbp->p_class_val_to_name[c]);
++                                              goto bad;
++                                      }
++                              }
++      
++                              ft = malloc(sizeof(*ft));
++                              if (!ft) {
++                                      yyerror("out of memory");
++                                      goto bad;
++                              }
++                              memset(ft, 0, sizeof(*ft));
++      
++                              ft->next = policydbp->filename_trans;
++                              policydbp->filename_trans = ft;
++      
++                              ft->name = strdup(name);
++                              if (!ft->name) {
++                                      yyerror("out of memory");
++                                      goto bad;
++                              }
++                              ft->stype = s + 1;
++                              ft->ttype = t + 1;
++                              ft->tclass = c + 1;
++                              ft->otype = otype;
++                      }
++              }
++      
++              /* Now add the real rule since we didn't find any duplicates */
++              ftr = malloc(sizeof(*ftr));
++              if (!ftr) {
++                      yyerror("out of memory");
++                      goto bad;
++              }
++              filename_trans_rule_init(ftr);
++              append_filename_trans(ftr);
++
++              ftr->name = strdup(name);
++              ftr->stypes = stypes;
++              ftr->ttypes = ttypes;
++              ftr->tclass = c + 1;
++              ftr->otype = otype;
++      }
++
++      free(name);
++      ebitmap_destroy(&e_stypes);
++      ebitmap_destroy(&e_ttypes);
++      ebitmap_destroy(&e_tclasses);
++
++      return 0;
++
++bad:
++      free(name);
++      return -1;
++}
++
+ static constraint_expr_t *constraint_expr_clone(constraint_expr_t * expr)
+ {
+       constraint_expr_t *h = NULL, *l = NULL, *e, *newe;
+diff --git a/libqpol/src/policy_parse.y b/libqpol/src/policy_parse.y
+index 84f4114..dc16c6f 100644
+--- a/libqpol/src/policy_parse.y
++++ b/libqpol/src/policy_parse.y
+@@ -98,6 +98,7 @@ extern char *qpol_src_inputlim;/* end of data */
+ %type <require_func> require_decl_def
+ %token PATH
++%token FILENAME
+ %token CLONE
+ %token COMMON
+ %token CLASS
+@@ -360,7 +361,10 @@ cond_rule_def           : cond_transition_def
+                       | require_block
+                       { $$ = NULL; }
+                         ;
+-cond_transition_def   : TYPE_TRANSITION names names ':' names identifier ';'
++cond_transition_def   : TYPE_TRANSITION names names ':' names identifier filename ';'
++                        { $$ = define_cond_filename_trans() ;
++                          if ($$ == COND_ERR) return -1;}
++                        | TYPE_TRANSITION names names ':' names identifier ';'
+                         { $$ = define_cond_compute_type(AVRULE_TRANSITION) ;
+                           if ($$ == COND_ERR) return -1;}
+                         | TYPE_MEMBER names names ':' names identifier ';'
+@@ -395,7 +399,9 @@ cond_dontaudit_def : DONTAUDIT names names ':' names names ';'
+                       { $$ = define_cond_te_avtab(AVRULE_DONTAUDIT);
+                           if ($$ == COND_ERR) return -1; }
+                       ;
+-transition_def                : TYPE_TRANSITION names names ':' names identifier ';'
++transition_def                : TYPE_TRANSITION  names names ':' names identifier filename ';'
++                      {if (define_filename_trans()) return -1; }
++                      | TYPE_TRANSITION names names ':' names identifier ';'
+                         {if (define_compute_type(AVRULE_TRANSITION)) return -1;}
+                         | TYPE_MEMBER names names ':' names identifier ';'
+                         {if (define_compute_type(AVRULE_MEMBER)) return -1;}
+@@ -752,6 +758,9 @@ identifier         : IDENTIFIER
+ path                  : PATH
+                       { if (insert_id(yytext,0)) return -1; }
+                       ;
++filename              : FILENAME
++                      { yytext[strlen(yytext) - 1] = '\0'; if (insert_id(yytext + 1,0)) return -1; }
++                      ;
+ number                        : NUMBER 
+                       { $$ = strtoul(yytext,NULL,0); }
+                       ;
+diff --git a/libqpol/src/policy_scan.l b/libqpol/src/policy_scan.l
+index 75485f3..30203cd 100644
+--- a/libqpol/src/policy_scan.l
++++ b/libqpol/src/policy_scan.l
+@@ -235,6 +235,7 @@ POLICYCAP                  { return(POLICYCAP); }
+ permissive |
+ PERMISSIVE                    { return(PERMISSIVE); }
+ "/"({alnum}|[_\.\-/])*                { return(PATH); }
++\"({alnum}|[_\.\-])+\"                        { return(FILENAME); }
+ {letter}({alnum}|[_\-])*([\.]?({alnum}|[_\-]))*       { return(IDENTIFIER); }
+ {digit}+|0x{hexval}+            { return(NUMBER); }
+ {digit}{1,3}(\.{digit}{1,3}){3}    { return(IPV4_ADDR); }
+diff --git a/secmds/sesearch.c b/secmds/sesearch.c
+index ec0315f..e44b3bc 100644
+--- a/secmds/sesearch.c
++++ b/secmds/sesearch.c
+@@ -575,6 +575,95 @@ static void print_te_results(const apol_policy_t * policy, const options_t * opt
+       free(expr);
+ }
++static int perform_ft_query(const apol_policy_t * policy, const options_t * opt, apol_vector_t ** v)
++{
++      apol_filename_trans_query_t *ftq = NULL;
++      int error = 0;
++
++      if (!policy || !opt || !v) {
++              ERR(policy, "%s", strerror(EINVAL));
++              errno = EINVAL;
++              return -1;
++      }
++
++      if (!opt->type == QPOL_RULE_TYPE_TRANS && !opt->all) {
++              *v = NULL;
++              return 0;              /* no search to do */
++      }
++
++      ftq = apol_filename_trans_query_create();
++      if (!ftq) {
++              ERR(policy, "%s", strerror(ENOMEM));
++              errno = ENOMEM;
++              return -1;
++      }
++
++      apol_filename_trans_query_set_regex(policy, ftq, opt->useregex);
++      if (opt->src_name) {
++              if (apol_filename_trans_query_set_source(policy, ftq, opt->src_name)) {
++                      error = errno;
++                      goto err;
++              }
++      }
++      if (opt->tgt_name) {
++              if (apol_filename_trans_query_set_target(policy, ftq, opt->tgt_name, opt->indirect)) {
++                      error = errno;
++                      goto err;
++              }
++      }
++
++      if (apol_filename_trans_get_by_query(policy, ftq, v)) {
++              error = errno;
++              goto err;
++      }
++
++      apol_filename_trans_query_destroy(&ftq);
++      return 0;
++
++      err:
++      apol_vector_destroy(v);
++      apol_filename_trans_query_destroy(&ftq);
++      ERR(policy, "%s", strerror(error));
++      errno = error;
++      return -1;
++}
++
++static void print_ft_results(const apol_policy_t * policy, const options_t * opt, const apol_vector_t * v)
++{
++      qpol_policy_t *q = apol_policy_get_qpol(policy);
++      size_t i, num_rules = 0;
++      const qpol_filename_trans_t *rule = NULL;
++      char *tmp = NULL, *rule_str = NULL, *expr = NULL;
++      char enable_char = ' ', branch_char = ' ';
++      qpol_iterator_t *iter = NULL;
++      const qpol_cond_t *cond = NULL;
++      uint32_t enabled = 0, list = 0;
++
++      if (!(num_rules = apol_vector_get_size(v)))
++              goto cleanup;
++
++      fprintf(stdout, "Found %zd named file transition rules:\n", num_rules);
++
++      for (i = 0; i < num_rules; i++) {
++              enable_char = branch_char = ' ';
++              if (!(rule = apol_vector_get_element(v, i)))
++                      goto cleanup;
++
++              if (!(rule_str = apol_filename_trans_render(policy, rule)))
++                      goto cleanup;
++              fprintf(stdout, "%s %s\n", rule_str, expr ? expr : "");
++              free(rule_str);
++              rule_str = NULL;
++              free(expr);
++              expr = NULL;
++      }
++
++      cleanup:
++      free(tmp);
++      free(rule_str);
++      free(expr);
++}
++
+ static int perform_ra_query(const apol_policy_t * policy, const options_t * opt, apol_vector_t ** v)
+ {
+       apol_role_allow_query_t *raq = NULL;
+@@ -1128,6 +1217,18 @@ int main(int argc, char **argv)
+                       print_te_results(policy, &cmd_opts, v);
+               fprintf(stdout, "\n");
+       }
++
++      if (cmd_opts.all || cmd_opts.type == QPOL_RULE_TYPE_TRANS) {
++              apol_vector_destroy(&v);
++              if (perform_ft_query(policy, &cmd_opts, &v)) {
++                      rt = 1;
++                      goto cleanup;
++              }
++
++              print_ft_results(policy, &cmd_opts, v);
++              fprintf(stdout, "\n");
++      }
++
+       apol_vector_destroy(&v);
+       if (perform_ra_query(policy, &cmd_opts, &v)) {
+               rt = 1;
+-- 
+1.7.6.2
+
+diff -up setools-3.3.7/libapol/include/apol/Makefile.am.filenametrans setools-3.3.7/libapol/include/apol/Makefile.am
+--- setools-3.3.7/libapol/include/apol/Makefile.am.filenametrans       2009-07-14 14:03:27.000000000 -0400
++++ setools-3.3.7/libapol/include/apol/Makefile.am     2011-10-26 16:24:59.948130442 -0400
+@@ -27,6 +27,7 @@ apol_HEADERS = \
+       relabel-analysis.h \
+       render.h \
+       role-query.h \
++      ftrule-query.h \
+       terule-query.h \
+       type-query.h \
+       types-relation-analysis.h \
+
+diff -up setools-3.3.7/libqpol/include/qpol/Makefile.am.filenametrans setools-3.3.7/libqpol/include/qpol/Makefile.am
+--- setools-3.3.7/libqpol/include/qpol/Makefile.am.filenametrans       2011-10-26 16:22:28.723523155 -0400
++++ setools-3.3.7/libqpol/include/qpol/Makefile.am     2011-10-26 16:22:41.283493767 -0400
+@@ -25,6 +25,7 @@ qpol_HEADERS = \
+       role_query.h \
+       syn_rule_query.h \
+       terule_query.h \
++      ftrule_query.h \
+       type_query.h \
+       user_query.h \
+       util.h
diff --git a/setools/patches/0007-Remove-unused-variables.patch b/setools/patches/0007-Remove-unused-variables.patch
new file mode 100644 (file)
index 0000000..dfa532c
--- /dev/null
@@ -0,0 +1,277 @@
+From e30036e358b8f1c3f56048b467e8646fa3bfffb6 Mon Sep 17 00:00:00 2001
+From: Dan Walsh <dwalsh@redhat.com>
+Date: Tue, 20 Sep 2011 16:40:26 -0400
+Subject: [PATCH 7/7] Remove unused variables
+
+---
+ libapol/src/ftrule-query.c |   11 ++----
+ libqpol/src/ftrule_query.c |    2 -
+ secmds/sesearch.c          |   86 +++++++++++++++++++++++++++++++++-----------
+ 3 files changed, 68 insertions(+), 31 deletions(-)
+
+diff --git a/libapol/src/ftrule-query.c b/libapol/src/ftrule-query.c
+index dc248de..9c7a23b 100644
+--- a/libapol/src/ftrule-query.c
++++ b/libapol/src/ftrule-query.c
+@@ -45,14 +45,11 @@ struct apol_filename_trans_query
+ int apol_filename_trans_get_by_query(const apol_policy_t * p, const apol_filename_trans_query_t * t, apol_vector_t ** v)
+ {
+       apol_vector_t *source_list = NULL, *target_list = NULL, *class_list = NULL, *default_list = NULL;
+-      int retval = -1, source_as_any = 0, is_regex = 0, append_filename_trans;
+-      char *bool_name = NULL;
++      int retval = -1, source_as_any = 0, is_regex = 0;
+       *v = NULL;
+-      unsigned int flags = 0;
+-      qpol_iterator_t *iter = NULL, *type_iter = NULL;
++      qpol_iterator_t *iter = NULL;
+       if (t != NULL) {
+-              flags = t->flags;
+               is_regex = t->flags & APOL_QUERY_REGEX;
+               if (t->source != NULL &&
+                   (source_list =
+@@ -104,7 +101,7 @@ int apol_filename_trans_get_by_query(const apol_policy_t * p, const apol_filenam
+               if (qpol_iterator_get_item(iter, (void **)&filename_trans) < 0) {
+                       goto cleanup;
+               }
+-              int match_source = 0, match_target = 0, match_default = 0, match_bool = 0;
++              int match_source = 0, match_target = 0, match_default = 0;
+               size_t i;
+               if (source_list == NULL) {
+@@ -265,10 +262,8 @@ char *apol_filename_trans_render(const apol_policy_t * policy, const qpol_filena
+ {
+       char *tmp = NULL;
+       const char *tmp_name = NULL;
+-      const char *filename_trans_type_str;
+       int error = 0;
+       size_t tmp_sz = 0;
+-      uint32_t filename_trans_type = 0;
+       const qpol_type_t *type = NULL;
+       const qpol_class_t *obj_class = NULL;
+diff --git a/libqpol/src/ftrule_query.c b/libqpol/src/ftrule_query.c
+index d6db848..3148d30 100644
+--- a/libqpol/src/ftrule_query.c
++++ b/libqpol/src/ftrule_query.c
+@@ -254,7 +254,6 @@ int qpol_filename_trans_get_default_type(const qpol_policy_t * policy, const qpo
+ int qpol_filename_trans_get_filename(const qpol_policy_t * policy, const qpol_filename_trans_t * rule, const char ** name)
+ {
+-      policydb_t *db = NULL;
+       filename_trans_t *ft = NULL;
+       if (name) {
+@@ -267,7 +266,6 @@ int qpol_filename_trans_get_filename(const qpol_policy_t * policy, const qpol_fi
+               return STATUS_ERR;
+       }
+-      db = &policy->p->p;
+       ft = (filename_trans_t *) rule;
+       *name = ft->name;
+diff --git a/secmds/sesearch.c b/secmds/sesearch.c
+index e44b3bc..319ffe7 100644
+--- a/secmds/sesearch.c
++++ b/secmds/sesearch.c
+@@ -72,6 +72,7 @@ static struct option const longopts[] = {
+       {"source", required_argument, NULL, 's'},
+       {"target", required_argument, NULL, 't'},
++      {"default", required_argument, NULL, 'D'},
+       {"role_source", required_argument, NULL, EXPR_ROLE_SOURCE},
+       {"role_target", required_argument, NULL, EXPR_ROLE_TARGET},
+       {"class", required_argument, NULL, 'c'},
+@@ -92,6 +93,7 @@ typedef struct options
+ {
+       char *src_name;
+       char *tgt_name;
++      char *default_name;
+       char *src_role_name;
+       char *tgt_role_name;
+       char *class_name;
+@@ -293,7 +295,8 @@ static void print_syn_av_results(const apol_policy_t * policy, const options_t *
+                               tmp = apol_cond_expr_render(policy, cond);
+                               enable_char = (enabled ? 'E' : 'D');
+                               branch_char = ((is_true && enabled) || (!is_true && !enabled) ? 'T' : 'F');
+-                              asprintf(&expr, "[ %s ]", tmp);
++                              if (asprintf(&expr, "[ %s ]", tmp) < 0)
++                                      goto cleanup;
+                               free(tmp);
+                               tmp = NULL;
+                               if (!expr)
+@@ -356,7 +359,8 @@ static void print_av_results(const apol_policy_t * policy, const options_t * opt
+                               qpol_iterator_destroy(&iter);
+                               enable_char = (enabled ? 'E' : 'D');
+                               branch_char = (list ? 'T' : 'F');
+-                              asprintf(&expr, "[ %s ]", tmp);
++                              if (asprintf(&expr, "[ %s ]", tmp) < 0)
++                                      goto cleanup;
+                               free(tmp);
+                               tmp = NULL;
+                               if (!expr)
+@@ -488,7 +492,8 @@ static void print_syn_te_results(const apol_policy_t * policy, const options_t *
+                               tmp = apol_cond_expr_render(policy, cond);
+                               enable_char = (enabled ? 'E' : 'D');
+                               branch_char = ((is_true && enabled) || (!is_true && !enabled) ? 'T' : 'F');
+-                              asprintf(&expr, "[ %s ]", tmp);
++                              if (asprintf(&expr, "[ %s ]", tmp) < 0)
++                                      goto cleanup;
+                               free(tmp);
+                               tmp = NULL;
+                               if (!expr)
+@@ -553,7 +558,8 @@ static void print_te_results(const apol_policy_t * policy, const options_t * opt
+                               qpol_iterator_destroy(&iter);
+                               enable_char = (enabled ? 'E' : 'D');
+                               branch_char = (list ? 'T' : 'F');
+-                              asprintf(&expr, "[ %s ]", tmp);
++                              if (asprintf(&expr, "[ %s ]", tmp) < 0)
++                                      goto cleanup;
+                               free(tmp);
+                               tmp = NULL;
+                               if (!expr)
+@@ -586,7 +592,7 @@ static int perform_ft_query(const apol_policy_t * policy, const options_t * opt,
+               return -1;
+       }
+-      if (!opt->type == QPOL_RULE_TYPE_TRANS && !opt->all) {
++      if (!opt->type && !opt->all) {
+               *v = NULL;
+               return 0;              /* no search to do */
+       }
+@@ -600,17 +606,44 @@ static int perform_ft_query(const apol_policy_t * policy, const options_t * opt,
+       apol_filename_trans_query_set_regex(policy, ftq, opt->useregex);
+       if (opt->src_name) {
+-              if (apol_filename_trans_query_set_source(policy, ftq, opt->src_name)) {
++              if (apol_filename_trans_query_set_source(policy, ftq, opt->src_name, opt->indirect)) {
+                       error = errno;
+                       goto err;
+               }
+       }
++
+       if (opt->tgt_name) {
+               if (apol_filename_trans_query_set_target(policy, ftq, opt->tgt_name, opt->indirect)) {
+                       error = errno;
+                       goto err;
+               }
+       }
++      if (opt->default_name) {
++              if (apol_filename_trans_query_set_default(policy, ftq, opt->default_name)) {
++                      error = errno;
++                      goto err;
++              }
++      }
++
++      if (opt->class_name) {
++              if (opt->class_vector == NULL) {
++                      if (apol_filename_trans_query_append_class(policy, ftq, opt->class_name)) {
++                              error = errno;
++                              goto err;
++                      }
++              } else {
++                      for (size_t i = 0; i < apol_vector_get_size(opt->class_vector); ++i) {
++                              char *class_name;
++                              class_name = apol_vector_get_element(opt->class_vector, i);
++                              if (!class_name)
++                                      continue;
++                              if (apol_filename_trans_query_append_class(policy, ftq, class_name)) {
++                                      error = errno;
++                                      goto err;
++                              }
++                      }
++              }
++      }
+       if (apol_filename_trans_get_by_query(policy, ftq, v)) {
+               error = errno;
+@@ -630,37 +663,36 @@ static int perform_ft_query(const apol_policy_t * policy, const options_t * opt,
+ static void print_ft_results(const apol_policy_t * policy, const options_t * opt, const apol_vector_t * v)
+ {
+-      qpol_policy_t *q = apol_policy_get_qpol(policy);
+-      size_t i, num_rules = 0;
+-      const qpol_filename_trans_t *rule = NULL;
+-      char *tmp = NULL, *rule_str = NULL, *expr = NULL;
++      size_t i, num_filename_trans = 0;
++      const qpol_filename_trans_t *filename_trans = NULL;
++      char *tmp = NULL, *filename_trans_str = NULL, *expr = NULL;
+       char enable_char = ' ', branch_char = ' ';
+       qpol_iterator_t *iter = NULL;
+       const qpol_cond_t *cond = NULL;
+       uint32_t enabled = 0, list = 0;
+-      if (!(num_rules = apol_vector_get_size(v)))
++      if (!(num_filename_trans = apol_vector_get_size(v)))
+               goto cleanup;
+-      fprintf(stdout, "Found %zd named file transition rules:\n", num_rules);
++      fprintf(stdout, "Found %zd named file transition filename_trans:\n", num_filename_trans);
+-      for (i = 0; i < num_rules; i++) {
++      for (i = 0; i < num_filename_trans; i++) {
+               enable_char = branch_char = ' ';
+-              if (!(rule = apol_vector_get_element(v, i)))
++              if (!(filename_trans = apol_vector_get_element(v, i)))
+                       goto cleanup;
+-              if (!(rule_str = apol_filename_trans_render(policy, rule)))
++              if (!(filename_trans_str = apol_filename_trans_render(policy, filename_trans)))
+                       goto cleanup;
+-              fprintf(stdout, "%s %s\n", rule_str, expr ? expr : "");
+-              free(rule_str);
+-              rule_str = NULL;
++              fprintf(stdout, "%s %s\n", filename_trans_str, expr ? expr : "");
++              free(filename_trans_str);
++              filename_trans_str = NULL;
+               free(expr);
+               expr = NULL;
+       }
+       cleanup:
+       free(tmp);
+-      free(rule_str);
++      free(filename_trans_str);
+       free(expr);
+ }
+@@ -930,7 +962,7 @@ int main(int argc, char **argv)
+       memset(&cmd_opts, 0, sizeof(cmd_opts));
+       cmd_opts.indirect = true;
+-      while ((optc = getopt_long(argc, argv, "ATs:t:c:p:b:dRnSChV", longopts, NULL)) != -1) {
++      while ((optc = getopt_long(argc, argv, "ATs:t:c:p:b:dD:RnSChV", longopts, NULL)) != -1) {
+               switch (optc) {
+               case 0:
+                       break;
+@@ -946,6 +978,18 @@ int main(int argc, char **argv)
+                               exit(1);
+                       }
+                       break;
++              case 'D':              /* source */
++                      if (optarg == 0) {
++                              usage(argv[0], 1);
++                              printf("Missing source default type for -D (--default)\n");
++                              exit(1);
++                      }
++                      cmd_opts.default_name = strdup(optarg);
++                      if (!cmd_opts.default_name) {
++              
++                              exit(1);
++                      }
++                      break;
+               case 't':              /* target */
+                       if (optarg == 0) {
+                               usage(argv[0], 1);
+@@ -1218,7 +1262,7 @@ int main(int argc, char **argv)
+               fprintf(stdout, "\n");
+       }
+-      if (cmd_opts.all || cmd_opts.type == QPOL_RULE_TYPE_TRANS) {
++      if (cmd_opts.all || cmd_opts.type) {
+               apol_vector_destroy(&v);
+               if (perform_ft_query(policy, &cmd_opts, &v)) {
+                       rt = 1;
+-- 
+1.7.6.2
+
diff --git a/setools/patches/0008-Fix-output-to-match-policy-lines.patch b/setools/patches/0008-Fix-output-to-match-policy-lines.patch
new file mode 100644 (file)
index 0000000..47c258e
--- /dev/null
@@ -0,0 +1,34 @@
+From 2f89d9acc12c0a7b50a94e4247b015242ce712c9 Mon Sep 17 00:00:00 2001
+From: Dan Walsh <dwalsh@redhat.com>
+Date: Wed, 21 Sep 2011 15:15:02 -0400
+Subject: [PATCH 8/8] Fix output to match policy lines
+
+---
+ libapol/src/ftrule-query.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libapol/src/ftrule-query.c b/libapol/src/ftrule-query.c
+index 9c7a23b..1d5f5c8 100644
+--- a/libapol/src/ftrule-query.c
++++ b/libapol/src/ftrule-query.c
+@@ -282,7 +282,7 @@ char *apol_filename_trans_render(const apol_policy_t * policy, const qpol_filena
+               error = errno;
+               goto err;
+       }
+-      if (apol_str_appendf(&tmp, &tmp_sz, "transition_type %s ", tmp_name)) {
++      if (apol_str_appendf(&tmp, &tmp_sz, "type_transition %s ", tmp_name)) {
+               error = errno;
+               ERR(policy, "%s", strerror(error));
+               goto err;
+@@ -338,7 +338,7 @@ char *apol_filename_trans_render(const apol_policy_t * policy, const qpol_filena
+               goto err;
+       }
+-      if (apol_str_appendf(&tmp, &tmp_sz, " %s", tmp_name)) {
++      if (apol_str_appendf(&tmp, &tmp_sz, " \"%s\"", tmp_name)) {
+               error = errno;
+               ERR(policy, "%s", strerror(error));
+               goto err;
+-- 
+1.7.6.2
+
diff --git a/setools/setools.nm b/setools/setools.nm
new file mode 100644 (file)
index 0000000..bec628c
--- /dev/null
@@ -0,0 +1,88 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = setools
+version    = 3.3.7
+release    = 2
+
+groups     = System/Base
+url        = http://oss.tresys.com/projects/setools
+license    = GPv2
+summary    = Policy analysis tools for SELinux.
+
+description
+       SETools is a collection of graphical tools, command-line tools, and
+       libraries designed to facilitate SELinux policy analysis.
+end
+
+source_dl  = http://oss.tresys.com/projects/setools/chrome/site/dists/%{thisapp}/
+sources    = %{thisapp}.tar.bz2
+
+build
+       requires
+               autoconf
+               automake
+               bison
+               bzip2-devel
+               flex
+               gcc-c++
+               libselinux-devel
+               libsepol-devel
+               libsepol-static
+               libxml2-devel
+               python-devel
+               sqlite-devel
+               swig
+       end
+
+       configure_options += \
+               --libdir=%{libdir} \
+               --disable-static \
+               --disable-gui \
+               --disable-bwidget-check \
+               --disable-selinux-check \
+               --enable-swig-python \
+               --disable-swig-java \
+               --disable-swig-tcl
+
+       prepare_cmds
+               # Fixup expected version of SWIG:
+               sed -i -e "s|AC_PROG_SWIG(1.3.28)|AC_PROG_SWIG(2.0.0)|g" configure.ac
+
+               autoreconf -v -f -i
+       end
+
+end
+
+packages
+       package %{name}
+       
+       package %{name}-devel
+               template DEVEL
+       end
+
+       package %{name}-libs
+               template LIBS
+       end
+
+       package python-%{name}
+               summary = Python bindings for setools-libs.
+               description
+                       This package includes Python bindings for libapol, libpoldiff, libqpol, libseaudit and libsefs.
+               end
+
+               requires
+                       setools-libs=%{thisver}
+               end
+
+               files
+                       %{libdir}/python*
+               end
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
index 2d66685588f07b8aeacf77624beb1909532c159a..cc638788aff995adf665048780637e7db35e1ead 100644 (file)
@@ -35,16 +35,14 @@ fi
 
 # Path manipulation
 if [ "$EUID" = "0" ]; then
-    pathmunge /sbin
     pathmunge /usr/sbin
     pathmunge /usr/local/sbin
 else
     pathmunge /usr/local/sbin after
     pathmunge /usr/sbin after
-    pathmunge /sbin after
 fi
 
-HOSTNAME=`/bin/hostname 2>/dev/null`
+HOSTNAME=`/usr/bin/hostname 2>/dev/null`
 HISTSIZE=1000
 if [ "$HISTCONTROL" = "ignorespace" ] ; then
     export HISTCONTROL=ignoreboth
index 891af408f8d373bd406b18f3017585500c831bab..0eb5c9911d0a6c646b15430d6d4342e656770fca 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = setup
 version    = 3.0
-release    = 4
+release    = 5
 arch       = noarch
 
 groups     = Base Build System/Base
@@ -50,6 +50,10 @@ packages
        package %{name}
                requires = iana-etc
 
+               conflicts
+                       filesystem < 002
+               end
+
                configfiles
                        /etc/aliases
                        /etc/exports
index e6a30dcae4693e44c39c6665e823221181b9ee0f..acd28a47e39e346b1f700afbaa03579770d8c817 100644 (file)
@@ -4,11 +4,14 @@
 ###############################################################################
 
 name       = sip
-version    = %{major_ver}.13
-major_ver  = 4
+version    = %{major_ver}.%{minor_ver}.%{rev_ver}
 release    = 1
 epoch      = 1
 
+major_ver  = 4
+minor_ver  = 13
+rev_ver    = 2
+
 groups     = Development/Tools
 url        = http://www.riverbankcomputing.com/software/sip/intro
 license    = GPLv2 or GPLv3
index e2d74d59c009f82b1c88aade4f1754949dc5277d..7a8fa129aaaf819eb82158dbb2816ee3239ceb77 100644 (file)
@@ -5,8 +5,8 @@
 
 name       = squid
 major_ver  = 3.1
-version    = %{major_ver}.16
-release    = 5
+version    = %{major_ver}.19
+release    = 1
 
 maintainer = Christian Schmidt <christian.schmidt@ipfire.org>
 groups     = Networking/Daemons
@@ -152,7 +152,7 @@ packages
 
                requires = /usr/bin/smbclient
 
-               filter_requires = perl\(Authen::Smb\)
+               filter_requires = perl.Auth.*
        end
 
        package %{name}-debuginfo
diff --git a/strace/patches/strace-4.5.19-fix-kernel-headers.patch b/strace/patches/strace-4.5.19-fix-kernel-headers.patch
deleted file mode 100644 (file)
index 98cfb95..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-
-From: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560516
-
-This bug is due to linux header changes. The following patch, from
-upstream, fixes the problem:
-
-diff -Nru strace-4.5.19/configure strace-4.5.19/configure
---- strace-4.5.19/configure    2009-10-21 19:41:11.000000000 +0200
-+++ strace-4.5.19/configure    2010-01-26 08:47:33.000000000 +0100
-@@ -5880,7 +5880,7 @@
- do :
-   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include <stddef.h>
--#include <linux/socket.h>
-+#include <sys/socket.h>
- "
- eval as_val=\$$as_ac_Header
-    if test "x$as_val" = x""yes; then :
-diff -Nru strace-4.5.19/configure.ac strace-4.5.19/configure.ac
---- strace-4.5.19/configure.ac 2009-10-12 21:54:43.000000000 +0200
-+++ strace-4.5.19/configure.ac 2010-01-26 08:47:18.000000000 +0100
-@@ -258,7 +258,7 @@
- ], [], [])
- AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h],
-                  [], [], [#include <stddef.h>
--#include <linux/socket.h>])
-+#include <sys/socket.h>])
- AC_CHECK_HEADERS([asm/sigcontext.h], [], [], [#include <signal.h>])
- AC_CHECK_TYPES([struct sigcontext_struct,
-               struct sigcontext],,, [#include <signal.h>])
index 7aec6d76744cc7db203987b4828db0aed5487531..c6127ccc323719916b8cc6d0e5c28fb311f94649 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = strace
-version    = 4.5.19
+version    = 4.7
 release    = 1
 
 groups     = Development/Debuggers
@@ -20,8 +20,8 @@ description
        purposes.
 end
 
-source_dl  = http://downloads.sourceforge.net/project/%{name}/%{name}/%{thisapp}
-sources    = %{thisapp}.tar.bz2
+source_dl  = http://downloads.sourceforge.net/project/%{name}/%{name}/%{version}/
+sources    = %{thisapp}.tar.xz
 
 build
        configure_options += \
index ef43905afb5e8cf399d90ad0da6094cc86d6fa9c..d734b776d7b43ee258c19875f9d554fdc181d359 100644 (file)
@@ -4,13 +4,13 @@
 ###############################################################################
 
 name       = strongswan
-version    = 4.6.2
-release    = 2
+version    = 5.0.0
+release    = 1
 
 groups     = Networking/VPN
 url        = http://www.strongswan.org/
 license    = GPL
-summary    = IPsec and IKEv1 implementation for Linux 2.4 and 2.6 kernels.
+summary    = IPsec (IKEv1 + IKEv2) implementation for Linux.
 
 description
        StrongSwan is a complete IPsec and IKEv1 implementation for
@@ -20,6 +20,7 @@ description
 end
 
 source_dl  = http://download.strongswan.org/
+sources    = %{thisapp}.tar.bz2
 
 build
        requires
@@ -30,21 +31,21 @@ build
                libcap-devel
                libcurl-devel
                libgcrypt-devel
+               libtool
                openldap-devel
+               openssl-devel
                perl
                sqlite-devel
+               systemd-devel
+               systemd-units
        end
 
        configure_options += \
-               --sysconfdir=/etc \
-               --libexecdir=/usr/lib \
-               --with-user=nobody \
-               --with-group=nobody \
                --enable-curl \
                --enable-ldap \
+               --enable-openssl \
                --enable-sqlite \
                --enable-gcrypt \
-               --enable-cisco-quirks \
                --with-capabilities=libcap
 
        if "%{DISTRO_ARCH}" == "i686"
@@ -54,18 +55,37 @@ build
        test
                make check
        end
-end
 
-# Plugins and many other files are installed in /usr/lib/ipsec
-# and loaded by using a RPATH.
-quality-agent
-       whitelist_rpath
-               /usr/lib/ipsec
+       install_cmds
+               # Make the shared libraries available to the runtime linker.
+               # (RPATH issues, whatever...)
+               cd %{BUILDROOT}%{libdir}
+               for lib in libcharon.so.0 libhydra.so.0 libstrongswan.so.0; do
+                       ln -svf ipsec/${lib} .
+               done
        end
 end
 
 packages
        package %{name}
+               script postin
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postup
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+                       systemctl reload-or-try-restart strongswan.service >/dev/null 2>&1 || :
+               end
+
+               script preun
+                       systemctl disable --no-reload strongswan.service >/dev/null 2>&1 || :
+                       systemctl stop strongswan.service >/dev/null 2>&1 || :
+               end
+
+               script postun
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+       end
 
        package %{name}-debuginfo
                template DEBUGINFO
index 6564e41ff0566436cb2c740fd68b8f999ceb964e..e64071f710c94ebe7950047aac336a616d8e7504 100644 (file)
@@ -4,11 +4,11 @@
 ###############################################################################
 
 name       = sudo
-version    = 1.8.3p2
+version    = 1.8.5
 release    = 1
 
 groups     = Applications/System
-url        = http://www.sudo.ws/sudo/download.html
+url        = http://www.sudo.ws/
 license    = BSD
 summary    = Allows restricted root access for specified users.
 
@@ -59,6 +59,10 @@ end
 packages
        package %{name}
                groups += Base
+
+               configfiles
+                       /etc/sudoers
+               end
        end
 
        package %{name}-debuginfo
index 69c863287d1b96fa9f9fb05cc0999dc34a3e4df5..4a92cb795c4d1e84e35e2dae6f5e641af4bc9d9c 100644 (file)
@@ -4,8 +4,10 @@
 ###############################################################################
 
 name       = suricata
-version    = 1.2.1
-release    = 2
+version    = 1.3
+devel_ver  = beta1
+release    = 0.1-%{devel_ver}
+thisapp    = %{name}-%{version}%{devel_ver}
 
 groups     = Networking/IDS
 url        = http://www.openinfosecfoundation.org/
diff --git a/systemd/patches/systemd-187-ipfire.patch b/systemd/patches/systemd-187-ipfire.patch
new file mode 100644 (file)
index 0000000..fbd8ea6
--- /dev/null
@@ -0,0 +1,33 @@
+diff -Nur a/configure.ac b/configure.ac
+--- a/configure.ac     2012-07-20 00:40:32.000000000 +0200
++++ b/configure.ac     2012-07-26 21:01:58.319135633 +0200
+@@ -504,7 +504,7 @@
+ AC_PATH_PROG([XSLTPROC], [xsltproc])
+ AM_CONDITIONAL(HAVE_XSLTPROC, test x"$XSLTPROC" != x)
+-AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, ubuntu, arch, gentoo, slackware, altlinux, mandriva, mageia, angstrom or other]))
++AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, ubuntu, arch, gentoo, slackware, altlinux, mandriva, mageia, angstrom, ipfire or other]))
+ if test "z$with_distro" = "z"; then
+         if test "$cross_compiling" = yes; then
+                 AC_MSG_WARN([Target distribution cannot be reliably detected when cross-compiling. You should specify it with --with-distro (see $0 --help for recognized distros)])
+@@ -587,6 +587,12 @@
+                 AC_DEFINE(TARGET_MAGEIA, [], [Target is Mageia])
+                 M4_DEFINES=-DTARGET_MAGEIA=1
+                 ;;
++      ipfire)
++              SYSTEM_SYSVINIT_PATH=
++              SYSTEM_SYSVRCND_PATH=
++              AC_DEFINE(TARGET_IPFIRE, [], [Target is IPFire])
++                M4_DEFINES=-DTARGET_IPFIRE=1
++              ;;
+         other)
+                 ;;
+         *)
+@@ -639,6 +645,7 @@
+ AM_CONDITIONAL(TARGET_MANDRIVA, test x"$with_distro" = xmandriva)
+ AM_CONDITIONAL(TARGET_ANGSTROM, test x"$with_distro" = xangstrom)
+ AM_CONDITIONAL(TARGET_MAGEIA, test x"$with_distro" = xmageia)
++AM_CONDITIONAL(TARGET_IPFIRE, test x"$with_distro" = xipfire)
+ AM_CONDITIONAL(HAVE_SYSV_COMPAT, test "$SYSTEM_SYSV_COMPAT" = "yes")
diff --git a/systemd/patches/systemd-ipfire.patch b/systemd/patches/systemd-ipfire.patch
deleted file mode 100644 (file)
index 4cf071a..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -Nur systemd-37_orig/configure.ac systemd-37/configure.ac
---- systemd-37_orig/configure.ac       2011-10-11 20:46:56.000000000 +0200
-+++ systemd-37/configure.ac    2011-12-17 21:57:31.748682566 +0100
-@@ -355,7 +355,7 @@
- AC_PATH_PROG([M4], [m4])
--AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, ubuntu, arch, gentoo, slackware, altlinux or other]))
-+AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, ubuntu, arch, gentoo, slackware, altlinux, ipfire or other]))
- if test "z$with_distro" = "z"; then
-         if test "$cross_compiling" = yes; then
-                 AC_MSG_WARN([Target distribution cannot be reliably detected when cross-compiling. You should specify it with --with-distro (see $0 --help for recognized distros)])
-@@ -374,6 +374,7 @@
-                 if test "x`lsb_release -is 2>/dev/null`" = "xUbuntu"; then
-                         with_distro="ubuntu"
-                 fi
-+              test -f "/etc/ipfire-release" && with_distro="ipfire"
-         fi
-         if test "z$with_distro" = "z"; then
-                 with_distro=`uname -s`
-@@ -458,6 +459,13 @@
-                 AC_DEFINE(TARGET_ANGSTROM, [], [Target is Ã…ngström])
-                 M4_DEFINES=-DTARGET_ANGSTROM=1
-                 ;;
-+      ipfire)
-+              SYSTEM_SYSVINIT_PATH=
-+              SYSTEM_SYSVRCND_PATH=
-+              AC_DEFINE(TARGET_IPFIRE, [], [Target is IPFire])
-+              M4_DEFINES=-DTARGET_IPFIRE=1
-+              have_plymouth=yes
-+              ;;
-         other)
-                 ;;
-         *)
-@@ -515,6 +523,7 @@
- AM_CONDITIONAL(TARGET_MANDRIVA, test x"$with_distro" = xmandriva)
- AM_CONDITIONAL(TARGET_MEEGO, test x"$with_distro" = xmeego)
- AM_CONDITIONAL(TARGET_ANGSTROM, test x"$with_distro" = xangstrom)
-+AM_CONDITIONAL(TARGET_IPFIRE, test x"$with_distro" = xipfire)
- AM_CONDITIONAL(HAVE_PLYMOUTH, test "$have_plymouth" = "yes")
- AM_CONDITIONAL(HAVE_SYSV_COMPAT, test "$SYSTEM_SYSV_COMPAT" = "yes")
index 352bf45b9bc8014cd147f52136ec6996a1c6d083..b3575f6f8ae6cce964b79fd54458646cc8e28c79 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = systemd
-version    = 37
-release    = 3
+version    = 187
+release    = 2
 
 maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
 groups     = System/Base
@@ -18,126 +18,206 @@ description
        SysV and LSB init scripts.
 end
 
-source_dl  = http://cgit.freedesktop.org/systemd/snapshot/
+source_dl  = http://cgit.freedesktop.org/systemd/systemd/snapshot/
 
 build
+       unitdir = %{prefix}/lib/systemd/system
+
        requires
                audit-devel
                automake
                autoconf
-               cryptsetup-luks-devel
+               cryptsetup-luks-devel >= 1.4.2
                dbus-devel
                docbook-utils
                docbook-xsl
-               gperf
                gettext-devel
+               glib2-devel
+               gobject-introspection-devel >= 1.31
+               gperf
+               hwdata
                intltool
+               kmod-devel >= 5
                libacl-devel
+               libblkid-devel
                libcap-devel
                libselinux-devel
                libtool
-               libudev-devel>=172
                pam-devel
+               pciutils-devel
+               usbutils
                vala
+               xz-devel
        end
 
        configure_options += \
-               --sysconfdir=/etc \
-               --libexecdir=%{libdir} \
-               --with-rootdir= \
                --with-distro=ipfire \
-               --with-udevrulesdir=/lib/udev/rules.d/ \
-               --with-pamlibdir=/%{lib}/security
+               --disable-static
 
        prepare_cmds
                ./autogen.sh ac
        end
 
-       test
-               make check
-       end
-
        install_cmds
+               # Create folder in log to store the journal.
+               mkdir -pv %{BUILDROOT}/var/log/journal
+
                # Create sysv compatible symlinks.
-               mkdir -pv %{BUILDROOT}/sbin
-               ln -svf ../bin/systemd   %{BUILDROOT}/sbin/init
-               ln -svf ../bin/systemctl %{BUILDROOT}/sbin/reboot
-               ln -svf ../bin/systemctl %{BUILDROOT}/sbin/halt
-               ln -svf ../bin/systemctl %{BUILDROOT}/sbin/poweroff
-               ln -svf ../bin/systemctl %{BUILDROOT}/sbin/shutdown
+               mkdir -pv %{BUILDROOT}%{sbindir}
+               ln -svf ../lib/systemd/systemd  %{BUILDROOT}/%{sbindir}/init
+               ln -svf ../lib/systemd/systemd  %{BUILDROOT}/%{bindir}/systemd
+               ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/reboot
+               ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/halt
+               ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/poweroff
+               ln -svf ../bin/systemctl %{BUILDROOT}/%{sbindir}/shutdown
 
                # Create empty machine-id file.
                touch %{BUILDROOT}/etc/machine-id
 
                # Copy locale and console settings
-               mkdir -pv %{BUILDROOT}/etc
-               cp -vf %{DIR_SOURCE}/locale.conf %{BUILDROOT}/etc/
-               cp -vf %{DIR_SOURCE}/vconsole.conf %{BUILDROOT}/etc/
+               mkdir -pv %{BUILDROOT}%{sysconfdir}
+               cp -vf %{DIR_SOURCE}/{locale,vconsole}.conf %{BUILDROOT}%{sysconfdir}
 
                # Recreate all targets
-               rm -rfv %{BUILDROOT}/etc/systemd/system/*.target.wants
-               mkdir -pv %{BUILDROOT}/lib/systemd/system/basic.target.wants
-               mkdir -pv %{BUILDROOT}/lib/systemd/system/default.target.wants
-               mkdir -pv %{BUILDROOT}/lib/systemd/system/dbus.target.wants
-               mkdir -pv %{BUILDROOT}/lib/systemd/system/syslog.target.wants
+               rm -rfv %{BUILDROOT}/%{sysconfdir}/systemd/system/*.target.wants
+               for i in basic.target.wants default.target.wants dbus.target.wants getty.target.wants \
+                       multi-user.target.wants syslog.target.wants; do
+                               mkdir -pv %{BUILDROOT}/%{sysconfdir}/systemd/system/${i} || exit 1
+               done
 
                # Remove runlevel targets and graphical.target
-               rm -rfv %{BUILDROOT}/lib/systemd/system/runlevel*
-               rm -rfv %{BUILDROOT}/lib/systemd/system/graphical.target
+               rm -rfv %{BUILDROOT}%{unitdir}/runlevel*
+               rm -rfv %{BUILDROOT}%{unitdir}/graphical.target
+
+               # Remove service files for utmp update.
+               rm -rvf %{BUILDROOT}%{unitdir}/systemd-update-utmp-*.service
+               rm -rvf %{BUILDROOT}%{unitdir}/shutdown.target.wants/systemd-update-utmp-*.service
 
                # Set default target to multi-user
-               cd %{BUILDROOT}/lib/systemd/system && ln -svf multi-user.target default.target
+               ln -svf multi-user.target %{BUILDROOT}%{unitdir}/default.target
 
                # Replace absolute symlinks by relative ones.
-               cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/bluetooth.target bluetooth.target
-               cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/local-fs.target local-fs.target
-               cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/printer.target printer.target
-               cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/shutdown.target shutdown.target
-               cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/sockets.target sockets.target
-               cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/sound.target sound.target
-               cd %{BUILDROOT}/usr/lib/systemd/user/ && ln -svf ../../../../lib/systemd/system/swap.target swap.target
+               cd %{BUILDROOT}%{unitdir}/../user
+               for i in bluetooth local-fs printer remote-fs shutdown sockets sound swap; do
+                       ln -svf ../system/${i}.target ${i}.target || exit 1
+               done
 
                # Remove tmpfile for X11
                rm -rfv %{BUILDROOT}/usr/lib/tmpfiles.d/x11.conf
 
                # Remove unneeded symlink for xdg
                rm -rfv %{BUILDROOT}/etc/xdg/systemd
+
+               # Use journald. Enable the import of kernel messages.
+               # Stop forwarding to a syslog daemon.
+               sed \
+                       -e "s/^#ForwardToSyslog=.*$/ForwardToSyslog=no/" \
+                       -e "s/^#ImportKernel=.*$/ImportKernel=yes/" \
+                       -i %{BUILDROOT}/etc/systemd/journald.conf
        end
 end
 
 packages
        package %{name}
+               groups += Base
+
+               prerequires += authconfig
+
                requires
                        dbus
+                       hwdata
                        python-cairo
                        python-dbus
                        %{name}-units=%{thisver}
-                       udev>=172
                        util-linux>=2.19
                end
 
-               prerequires += authconfig
-               conflicts += upstart
+               provides
+                       /bin/systemd
+                       /sbin/halt
+                       /sbin/init
+                       /sbin/poweroff
+                       /sbin/reboot
+                       /sbin/shutdown
+
+                       syslog
+                       udev = %{thisver}
+               end
+
+               conflicts
+                       dracut < 019
+                       filesystem < 002
+                       rsyslog < 5.8.6-4
+                       upstart
+               end
+
+               obsoletes
+                       udev < 183
+               end
+
+               configfiles
+                       /etc/locale.conf
+                       /etc/machine-id
+                       /etc/systemd/journald.conf
+                       /etc/systemd/logind.conf
+                       /etc/systemd/system.conf
+                       /etc/systemd/user.conf
+                       /etc/udev/udev.conf
+                       /etc/vconsole.conf
+               end
+
+               script prein
+                       # Create groups for udev.
+                       getent group cdrom >/dev/null || groupadd -g 11 cdrom || :
+                       getent group tape >/dev/null || groupadd -g 33 tape || :
+                       getent group dialout >/dev/null || groupadd -g 18 dialout || :
+                       getent group floppy >/dev/null || groupadd -g 19 floppy || :
+               end
 
                script postin
                        # Generate Machine ID.
-                       /bin/systemd-machine-id-setup > /dev/null 2>&1 || :
+                       /usr/bin/systemd-machine-id-setup > /dev/null 2>&1 || :
 
                        # Reexec systemd daemon.
-                       /bin/systemctl daemon-reexec > /dev/null 2>&1 || :
+                       /usr/bin/systemctl daemon-reexec > /dev/null 2>&1 || :
 
                        # Make sure pam_systemd is enabled
-                       if ! /bin/grep -q pam_systemd /etc/pam.d/system-auth-ac ; then
-                               /usr/sbin/authconfig --update --nostart >/dev/null 2>&1 || :
+                       if ! grep -q pam_systemd /etc/pam.d/system-auth-ac ; then
+                               authconfig --update --nostart >/dev/null 2>&1 || :
 
                                # Try harder
-                               /bin/grep -q pam_systemd /etc/pam.d/system-auth-ac || /usr/sbin/authconfig --updateall --nostart >/dev/null 2>&1 || :
+                               grep -q pam_systemd /etc/pam.d/system-auth-ac || authconfig --updateall --nostart >/dev/null 2>&1 || :
                        fi
+
+                       /usr/bin/systemctl enable \
+                               getty@.service \
+                               remote-fs.target \
+                               systemd-readahead-replay.service \
+                               systemd-readahead-collect.service \
+                               >/dev/null 2>&1 || :
+               end
+
+               script preup
+                       # Be sure to stop the old udev before updating.
+                       /usr/bin/systemctl stop udev.service udev-trigger.service \
+                               udev-control.socket udev-kernel.socket >/dev/null 2>&1 || :
                end
 
                script postup
                        # Restart login service after update
-                       /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
+                       /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+                       /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
+
+                       # Use the new journald configuration file and restart the service.
+                       if ! grep -xq ImportKernel=yes /etc/systemd/journald.conf ; then
+                               mv /etc/systemd/journald.conf.paknew /etc/systemd/journald.conf
+                               /usr/bin/systemctl restart systemd-journald.service >/dev/null 2>&1 || :
+                       fi
+               end
+
+               # Be sure to start the new udev after everything is done.
+               script posttransup
+                       /usr/bin/systemctl start systemd-udev.service  >/dev/null 2>&1 || :
                end
        end
 
@@ -149,38 +229,80 @@ packages
                        and installation / configuration tool for systemd.
                end
 
-               files
-                       /etc/systemd/system
-                       /etc/tmpfiles.d
-                       /etc/bash_completion.d/systemctl-bash-completion.sh
-                       /lib/systemd/system
+               prerequires
+                       /bin/sh
+                       coreutils
+               end
+
+               provides
                        /bin/systemctl
-                       /bin/systemd-tmpfiles
-                       /usr/share/man/man1/systemctl.*
                end
 
-               script postin
-                       # Enable default services.
-                       /bin/systemctl enable \
-                               getty@.service \
-                               remote-fs.target > /dev/null 2>&1 || :
+               conflicts
+                       filesystem < 002
                end
 
-               script preun
-                       # Disable default services.
-                       /bin/systemctl disable \
-                               getty@.service \
-                               remote-fs.target > /dev/null 2>&1 || :
+               files
+                       %{sysconfdir}/etc/systemd/system
+                       %{sysconfdir}/tmpfiles.d
+                       %{sysconfdir}/bash_completion.d/systemctl-bash-completion.sh
+                       %{unitdir}
+                       %{bindir}/systemctl
+                       %{bindir}/systemd-tmpfiles
+                       %{mandir}/man1/systemctl.*
                end
 
                script postup
                        # Reload service files
-                       /bin/systemctl daemon-reload > /dev/null 2>&1 || :
+                       /usr/bin/systemctl daemon-reload > /dev/null 2>&1 || :
                end
        end
 
        package %{name}-devel
                template DEVEL
+
+               files += %{prefix}/lib/pakfire/macros/
+       end
+
+       package libudev
+               summary = Libraries for adding libudev support to applications.
+               description
+                       This package contains the libraries that make it easier to use libudev
+                       functionality from applications.
+               end
+               license = LGPLv2+
+
+               conflicts
+                       filesystem < 002
+               end
+
+               files
+                       %{libdir}/libgudev*.so.*
+                       %{libidr}/girepository*/
+               end
+       end
+
+       package libudev-devel
+               summary = Header files for adding libudev support to applications.
+               description
+                       This package contains the header and pkg-config files for developing
+                       applications using libudev functionality.
+               end
+               license = LGPLv2+
+
+               conflicts
+                       filesystem < 002
+               end
+
+               files
+                       %{libdir}/lib*udev*.so
+                       %{libdir}/pkgconfig/lib*udev.pc
+                       %{libdir}/pkgconfig/gudev*
+                       %{includedir}/lib*udev.h
+                       %{includedir}/gudev*
+                       %{datadir}/gir-*
+                       %{datadir}/gtk-doc/html/gudev
+               end
        end
 
        package %{name}-debuginfo
index 3cce8df68da7a00da38402f3b7a47fa6886c13c7..b582477684a4f354abaaaea1eec9af0e1cab78e2 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = tar
 version    = 1.26
-release    = 3
+release    = 4
 
 groups     = System/Packaging
 url        = http://www.gnu.org/software/tar/
@@ -39,7 +39,6 @@ build
        end
 
        configure_options += \
-               --bindir=/bin \
                --libexecdir=/usr/sbin \
                --enable-selinux \
                FORCE_UNSAFE_CONFIGURE=1
index 11a9287727f7eb06fcb1663092075e9d0861993f..86eda72b8dd073a3a4e654fb1c0b58e994198550 100644 (file)
@@ -6,7 +6,7 @@
 name       = tcl
 major_ver  = 8.5
 version    = %{major_ver}.11
-release    = 1
+release    = 2
 thisapp    = tcl%{version}
 
 groups     = Development/Languages
@@ -77,6 +77,9 @@ build
                # remove buildroot traces
                sed -i -e "s|$PWD/unix|%{libdir}|; s|$PWD|%{includedir}/%{name}-private|" %{BUILDROOT}%{libdir}/%{name}Config.sh
                rm -rf %{BUILDROOT}%{datadir}/%{name}%{major_ver}/ldAix
+
+               # Fix library permissions.
+               chmod 755 %{BUILDROOT}%{libdir}/libtcl*.so*
        end
 
        # Keep libtclstub*.a.
diff --git a/transifex-client/transifex-client.nm b/transifex-client/transifex-client.nm
new file mode 100644 (file)
index 0000000..b3f0e74
--- /dev/null
@@ -0,0 +1,41 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = transifex-client
+version    = 0.7.3
+release    = 2
+arch       = noarch
+
+groups     = Development/Tools
+url        = http://transifex.org
+license    = GPLv2
+summary    = Command line tool for Transifex translation management.
+
+description
+       The Transifex Command-line Client is a command line tool that enables
+       you to easily manage your translations within a project without the
+       need of an elaborate UI system.
+end
+
+source_dl  = http://pypi.python.org/packages/source/t/transifex-client
+
+build
+       requires
+               python-devel
+               python-setuptools >= 0.6.28
+       end
+
+       build
+               python setup.py build
+       end
+
+       install
+               python setup.py install -O1 --skip-build --root %{BUILDROOT}
+       end
+end
+
+packages
+       package %{name}
+end
diff --git a/udev/udev.nm b/udev/udev.nm
deleted file mode 100644 (file)
index 8552dfe..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-###############################################################################
-# IPFire.org    - An Open Source Firewall Solution                            #
-# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
-###############################################################################
-
-name       = udev
-version    = 181
-release    = 2
-
-groups     = System/Base
-url        = ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/
-license    = GPLv2+
-summary    = A userspace implementation of devfs.
-
-description
-       The udev package contains an implementation of devfs in userspace using \
-       sysfs and netlink.
-end
-
-source_dl  = ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/
-
-build
-       requires
-               glib2-devel
-               gobject-introspection-devel
-               gperf
-               kbd
-               kmod-devel >= 5
-               libacl-devel
-               libblkid-devel >= 2.20
-               libselinux-devel
-               libsepol-devel
-               libuuid-devel
-               libusb-compat-devel
-               libxslt
-               pciutils
-               pkg-config
-               usbutils
-       end
-
-       configure_options += \
-               --exec-prefix="" \
-               --sbindir=/sbin \
-               --sysconfdir=/etc \
-               --libexecdir=/%{lib} \
-               --with-rootprefix="" \
-               --with-rootlibdir=/%{lib} \
-               --with-selinux \
-               --with-systemdsystemunitdir=/lib/systemd/system
-end
-
-packages
-       package %{name}
-               groups += Base
-
-               prerequires
-                       shadow-utils
-                       systemd-units
-               end
-
-               script prein
-                       getent group cdrom >/dev/null || groupadd -g 11 cdrom || :
-                       getent group tape >/dev/null || groupadd -g 33 tape || :
-                       getent group dialout >/dev/null || groupadd -g 18 dialout || :
-                       getent group floppy >/dev/null || groupadd -g 19 floppy || :
-                       systemctl stop udev.service udev-control.socket udev-kernel.socket >/dev/null 2>&1 || :
-               end
-
-               script postin
-                       systemctl daemon-reload >/dev/null 2>&1 || :
-                       systemctl start udev.service >/dev/null 2>&1 || :
-               end
-
-               script postun
-                       systemctl daemon-reload >/dev/null 2>&1 || :
-               end
-       end
-
-       package lib%{name}
-               template LIBS
-       end
-
-       package lib%{name}-devel
-               template DEVEL
-       end
-
-       package %{name}-debuginfo
-               template DEBUGINFO
-       end
-end
diff --git a/ulogd2/patches/0001-sqlite3-Add-more-logging-if-database-initialization-fails.patch b/ulogd2/patches/0001-sqlite3-Add-more-logging-if-database-initialization-fails.patch
new file mode 100644 (file)
index 0000000..c2c4e88
--- /dev/null
@@ -0,0 +1,40 @@
+From c3dbb53b6c206a0fdfacad9915a2df0c3613089a Mon Sep 17 00:00:00 2001
+From: Michael Tremer <michael.tremer@ipfire.org>
+Date: Sun, 22 Jul 2012 11:36:11 +0000
+Subject: [PATCH] sqlite3: Add more logging if database initialization fails.
+
+---
+ output/sqlite3/ulogd_output_SQLITE3.c |    8 ++++++--
+ 1 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/output/sqlite3/ulogd_output_SQLITE3.c b/output/sqlite3/ulogd_output_SQLITE3.c
+index dffdda3..6f371c3 100644
+--- a/output/sqlite3/ulogd_output_SQLITE3.c
++++ b/output/sqlite3/ulogd_output_SQLITE3.c
+@@ -322,8 +322,10 @@ sqlite3_init_db(struct ulogd_pluginstance *pi)
+       sqlite3_stmt *schema_stmt;
+       int col, num_cols;
+-      if (priv->dbh == NULL)
++      if (priv->dbh == NULL) {
++              ulogd_log(ULOGD_ERROR, "SQLITE3: No database handle.\n");
+               return -1;
++      }
+       num_cols = db_count_cols(pi, &schema_stmt);
+       if (num_cols <= 0) {
+@@ -397,8 +399,10 @@ sqlite3_start(struct ulogd_pluginstance *pi)
+       sqlite3_busy_timeout(priv->dbh, SQLITE3_BUSY_TIMEOUT);
+       /* read the fieldnames to know which values to insert */
+-      if (sqlite3_init_db(pi) < 0)
++      if (sqlite3_init_db(pi) < 0) {
++              ulogd_log(ULOGD_ERROR, "SQLITE3: Could not read database fieldnames.\n");
+               return -1;
++      }
+       /* initialize our buffer size and counter */
+       priv->buffer_size = buffer_ce(pi);
+-- 
+1.7.8.2
+
index f583b3fd729ddc46715f74cf8bf20215b7777a70..bb896d747c531714c4d041484d795f54d2f7413b 100644 (file)
@@ -4,8 +4,9 @@
 ###############################################################################
 
 name       = ulogd2
-version    = 2.0.0beta3
-release    = 3
+version    = 2.0.0
+release    = 1.1
+epoch      = 1
 thisapp    = ulogd-%{version}
 
 groups     = Networking/Statistics
@@ -26,15 +27,20 @@ sources    = %{thisapp}.tar.bz2
 
 build
        requires
+               libmnl-devel
                libnfnetlink-devel
+               libnetfilter_acct-devel
                libnetfilter_conntrack-devel
                libnetfilter_log-devel
                libpcap-devel
                sqlite-devel
        end
 
+       # Set libdir to "/usr/lib" for every architecture to install the ulogd2 plugins
+       # to this folder.
        configure_options+= \
-               --sysconfdir=/etc
+               --sysconfdir=/etc \
+               --libdir=%{prefix}/lib
 
        install_cmds
                mkdir -pv %{BUILDROOT}/etc
@@ -47,6 +53,29 @@ end
 
 packages
        package %{name}
+               configfiles
+                       /etc/ulogd.conf
+               end
+
+               script postin
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+                       systemctl enable ulogd.service >/dev/null 2>&1 || :
+               end
+               
+               script preun
+                       systemctl --no-reload disable ulogd.service >/dev/null 2>&1 || :
+                       systemctl stop ulogd.service >/dev/null 2>&1 || :
+               end
+               
+               script postun
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+               end
+
+               script postup
+                       systemctl daemon-reload >/dev/null 2>&1 || :
+                       systemctl try-restart ulogd.service >/dev/null 2>&1 || :
+               end
+       end
 
        package %{name}-debuginfo
                template DEBUGINFO
diff --git a/unicode-ucd/unicode-ucd.nm b/unicode-ucd/unicode-ucd.nm
new file mode 100644 (file)
index 0000000..520edec
--- /dev/null
@@ -0,0 +1,50 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = unicode-ucd
+version    = 6.1.0
+release    = 1
+arch       = noarch
+
+groups     = Development/System 
+url        = http://www.unicode.org/ucd/
+license    = MIT
+summary    = Unicode Character Database.
+
+description
+       The Unicode Character Database (UCD) consists of a number of data files listing
+       Unicode character properties and related data. It also includes data files
+       containing test data for conformance to several important Unicode algorithms.
+end
+
+source_dl  = http://www.unicode.org/Public/zipped/%{version}/
+sources    = UCD.zip
+
+build
+       requires
+               unzip>=6.0-3
+       end
+
+       prepare
+               # Manually create DIR_APP because the 
+               # soucre archive doesn't contain any folder.
+               mkdir -pv %{DIR_APP}
+
+               # Manually extract zip compressed source archive.
+               cd %{DIR_APP} && unzip %{DIR_DL}/%{sources}
+       end
+
+       build = # Nothing to do
+
+       install
+               # Create install folder and copy files.
+               mkdir -pv %{BUILDROOT}%{datadir}/unicode/ucd/
+               cp -arvf . %{BUILDROOT}%{datadir}/unicode/ucd/
+       end
+end
+
+packages
+       package %{name}
+end
diff --git a/usbutils/patches/usbutils-003-hwdata.patch b/usbutils/patches/usbutils-003-hwdata.patch
new file mode 100644 (file)
index 0000000..4a08c48
--- /dev/null
@@ -0,0 +1,79 @@
+--- usbutils-003/Makefile.am   2011-03-22 00:23:33.000000000 +0100
++++ usbutils-003_/Makefile.am  2011-06-16 15:41:20.927882420 +0200
+@@ -4,15 +4,9 @@
+ AM_LDFLAGS = \
+       -Wl,--as-needed
+-data_DATA = \
+-      usb.ids
+-
+ bin_PROGRAMS = \
+       lsusb
+-sbin_SCRIPTS = \
+-      update-usbids.sh
+-
+ bin_SCRIPTS = \
+       usb-devices \
+       lsusb.py
+@@ -27,37 +21,22 @@
+ lsusb_CPPFLAGS = \
+       $(AM_CPPFLAGS) $(LIBUSB_CFLAGS) \
+-      -DDATADIR=\"$(datadir)\"
++      -DDATADIR=\"$(datadir)/hwdata\"
+ lsusb_LDADD = \
+       $(LIBUSB_LIBS)
+-if HAVE_ZLIB
+-data_DATA += usb.ids.gz
+-lsusb_CPPFLAGS += -DHAVE_LIBZ
+-lsusb_LDADD += -lz
+-endif
+-
+ man_MANS = \
+       lsusb.8 \
+       usb-devices.1
+ EXTRA_DIST = \
+-      usb.ids \
+-      update-usbids.sh.in \
+       lsusb.8.in \
+       usb-devices.1.in \
+       usb-devices \
+       lsusb.py \
+       usbutils.pc.in
+-usb.ids.gz: $(srcdir)/usb.ids
+-      gzip -c -9 $< > $@
+-
+-update-usbids.sh: $(srcdir)/update-usbids.sh.in
+-      sed 's|@usbids@|$(datadir)/usb.ids|g' $< >$@
+-      chmod 755 $@
+-
+ lsusb.8: $(srcdir)/lsusb.8.in
+       sed 's|VERSION|$(VERSION)|g;s|@usbids@|$(datadir)/usb.ids|g' $< >$@
+@@ -71,10 +50,8 @@
+       sed 's|@usbids@|$(datadir)/usb.ids|g;s|@VERSION[@]|$(VERSION)|g' $< >$@
+ DISTCLEANFILES = \
+-      usb.ids.gz \
+       lsusb.8 \
+       usb-devices.1 \
+-      update-usbids.sh \
+       usbutils.pc
+ distclean-local:
+--- usbutils-003/lsusb.py      2010-12-16 01:07:09.000000000 +0100
++++ usbutils-003_/lsusb.py     2011-08-11 09:57:57.079327430 +0200
+@@ -16,7 +16,7 @@
+ warnsort = False
+ prefix = "/sys/bus/usb/devices/"
+-usbids = "/usr/share/usb.ids"
++usbids = "/usr/share/hwdata/usb.ids"
+ esc = chr(27)
+ norm = esc + "[0;0m"
diff --git a/usbutils/patches/usbutils-make-hwdata.patch b/usbutils/patches/usbutils-make-hwdata.patch
new file mode 100644 (file)
index 0000000..862c7fc
--- /dev/null
@@ -0,0 +1,21 @@
+diff -up usbutils-004/Makefile.am.orig usbutils-004/Makefile.am
+--- usbutils-004/Makefile.am.orig      2011-09-20 09:42:04.282566870 +0200
++++ usbutils-004/Makefile.am   2011-09-20 09:42:41.399102845 +0200
+@@ -38,7 +38,7 @@ EXTRA_DIST = \
+       usbutils.pc.in
+ lsusb.8: $(srcdir)/lsusb.8.in
+-      sed 's|VERSION|$(VERSION)|g;s|@usbids@|$(datadir)/usb.ids|g' $< >$@
++      sed 's|VERSION|$(VERSION)|g;s|@usbids@|$(datadir)/hwdata/usb.ids|g' $< >$@
+ usb-devices.1: $(srcdir)/usb-devices.1.in
+       sed 's|VERSION|$(VERSION)|g' $< >$@
+@@ -47,7 +47,7 @@ pkgconfigdir = $(datarootdir)/pkgconfig
+ pkgconfig_DATA = usbutils.pc
+ usbutils.pc: $(srcdir)/usbutils.pc.in
+-      sed 's|@usbids@|$(datadir)/usb.ids|g;s|@VERSION[@]|$(VERSION)|g' $< >$@
++      sed 's|@usbids@|$(datadir)/hwdata/usb.ids|g;s|@VERSION[@]|$(VERSION)|g' $< >$@
+ DISTCLEANFILES = \
+       lsusb.8 \
index e803744f4838ff9add45030250130537c8b53b70..6c3b98d1e482604a6b941cacc87003bd768c754a 100644 (file)
@@ -5,8 +5,8 @@
 
 name       = usbutils
 epoch      = 1
-version    = 003
-release    = 2
+version    = 005
+release    = 3
 
 groups     = System/Tools
 url        = http://www.linux-usb.org/
@@ -21,14 +21,18 @@ source_dl  = http://www.kernel.org/pub/linux/utils/usb/usbutils/
 
 build
        requires
-               libusb-devel
-               pkg-config
+               autoconf
+               automake
+               hwdata
+               libusbx-devel
                zlib-devel
        end
 
-       install_cmds
-               rm -fv %{BUILDROOT}/usr/share/usb.ids.gz
+       prepare_cmds
+               ./autogen.sh
+       end
 
+       install_cmds
                # Removing lsusb.py.
                rm -rfv %{BUILDROOT}/usr/bin/lsusb.py
        end
@@ -36,6 +40,8 @@ end
 
 packages
        package %{name}
+               group += Base
+
                requires
                        /usr/share/hwdata/usb.ids
                end
index dd825c995168bd03a75396e9a4173e1a3ca578c6..2b1e441e629e262b57092735e5b6d8e343a6d886 100644 (file)
@@ -6,7 +6,7 @@
 name       = util-linux
 major_ver  = 2.21
 version    = %{major_ver}
-release    = 1
+release    = 3
 
 groups     = System/Base
 url        = http://kernel.org/~kzak/util-linux/
@@ -40,8 +40,6 @@ build
                -D_FILE_OFFSET_BITS=64
 
        configure_options += \
-               --bindir=/bin \
-               --sbindir=/sbin \
                --disable-wall \
                --enable-kill \
                --enable-login-utils \
@@ -64,29 +62,29 @@ build
        end
 
        install_cmds
-               mkdir -pv %{BUILDROOT}/sbin \
+               mkdir -pv \
                        %{BUILDROOT}/var/lib/hwclock \
                        %{BUILDROOT}/usr/share/man/man8 \
                        %{BUILDROOT}/var/log
 
-               install -m 755 %{DIR_APP}/nologin %{BUILDROOT}/sbin
+               install -m 755 %{DIR_APP}/nologin %{BUILDROOT}%{sbindir}
                install -m 644 %{DIR_SOURCE}/nologin.8 %{BUILDROOT}/usr/share/man/man8/
 
                touch %{BUILDROOT}/var/log/lastlog
 
                # Remove deprecated commands
-               rm -fv %{BUILDROOT}/{sbin,usr/share/man/man*}/{fsck,mkfs}.{bfs,minix}* \
-                       %{BUILDROOT}/usr/{,s}bin/{chkdupexe,newgrp,vi{gr,pw}} \
-                       %{BUILDROOT}/sbin/{sln,shutdown} %{BUILDROOT}/bin/{line,pg}
+               rm -fv %{BUILDROOT}/{%{sbindir},usr/share/man/man*}/{fsck,mkfs}.{bfs,minix}* \
+                       %{BUILDROOT}{%{bindir},%{sbindir}}/{chkdupexe,newgrp,vi{gr,pw}} \
+                       %{BUILDROOT}%{sbindir}/{sln,shutdown} %{BUILDROOT}%{bindir}/{line,pg}
                rm -fv %{BUILDROOT}/usr/share/man/man1/{chkdupexe,line,pg,newgrp}.* \
                        %{BUILDROOT}/usr/share/man/man8/{vipw,vigr}.*
                rm -fv %{BUILDROOT}/usr/share/getopt/*.tcsh
 
                # Set capabilities
-               chmod -v -s %{BUILDROOT}/bin/mount
-               setcap CAP_DAC_OVERRIDE,CAP_SYS_ADMIN=ep %{BUILDROOT}/bin/mount
-               chmod -v -s %{BUILDROOT}/bin/umount
-               setcap CAP_DAC_OVERRIDE,CAP_SYS_ADMIN=ep %{BUILDROOT}/bin/umount
+               chmod -v -s %{BUILDROOT}%{bindir}/mount
+               setcap CAP_DAC_OVERRIDE,CAP_SYS_ADMIN=ep %{BUILDROOT}%{bindir}/mount
+               chmod -v -s %{BUILDROOT}%{bindir}/umount
+               setcap CAP_DAC_OVERRIDE,CAP_SYS_ADMIN=ep %{BUILDROOT}%{bindir}/umount
        end
 end
 
@@ -98,9 +96,23 @@ packages
                        /etc/pam.d/system-auth
                end
 
+               provides
+                       /bin/dmesg
+                       /bin/kill
+                       /bin/more
+                       /bin/mount
+                       /bin/umount
+                       /sbin/blkid
+                       /sbin/blockdev
+                       /sbin/findfs
+                       /sbin/fsck
+                       /sbin/nologin
+               end
+
                obsoletes = util-linux-ng
 
                conflicts
+                       filesystem < 002
                        setup < 3.0-2
                        util-linux-ng
                        sysvinit <= 2.86-2
@@ -125,6 +137,8 @@ packages
                        part of util-linux.
                end
 
+               conflicts = filesystem < 002
+
                files
                        %{libdir}/libblkid.*
                end
@@ -151,6 +165,8 @@ packages
                        part of util-linux.
                end
 
+               conflicts = filesystem < 002
+
                files
                        %{libdir}/libuuid.*
                end
@@ -177,6 +193,8 @@ packages
                        part of util-linux.
                end
 
+               conflicts = filesystem < 002
+
                files
                        %{libdir}/libmount.*
                end
@@ -188,7 +206,7 @@ packages
                description = %{summary}
 
                files
-                       %{includedir}/mount/
+                       %{includedir}/libmount/
                        %{libdir}/libmount.so
                        %{libdir}/pkgconfig/mount.pc
                        %{mandir}/man3/*mount*
diff --git a/vim/patches/download.sh b/vim/patches/download.sh
new file mode 100644 (file)
index 0000000..c40da4b
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+last=${1}
+
+vim_version="7.3"
+vim_url="ftp://ftp.vim.org/pub/vim/patches/${vim_version}"
+
+filenames="${vim_version}.%s.patch0"
+
+for patch in $(seq 1 ${last}); do
+       patch=$(printf "${vim_version}.%03d" "${patch}")
+
+       wget -O "vim-${patch}.patch0" "${vim_url}/${patch}"
+done
diff --git a/vim/patches/vim-7.3.082.patch0 b/vim/patches/vim-7.3.082.patch0
new file mode 100644 (file)
index 0000000..5753c05
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.082
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.082
+Problem:    Leaking file descriptor when hostname doesn't exist.
+Solution:   Remove old debugging lines.
+Files:     src/netbeans.c
+
+
+*** ../vim-7.3.081/src/netbeans.c      2010-12-08 13:11:15.000000000 +0100
+--- src/netbeans.c     2010-12-17 12:13:32.000000000 +0100
+***************
+*** 323,334 ****
+      server.sin_port = htons(port);
+      if ((host = gethostbyname(hostname)) == NULL)
+      {
+-      if (mch_access(hostname, R_OK) >= 0)
+-      {
+-          /* DEBUG: input file */
+-          sd = mch_open(hostname, O_RDONLY, 0);
+-          goto theend;
+-      }
+       nbdebug(("error in gethostbyname() in netbeans_connect()\n"));
+       PERROR("gethostbyname() in netbeans_connect()");
+       goto theend;
+--- 323,328 ----
+*** ../vim-7.3.081/src/version.c       2010-12-08 19:56:52.000000000 +0100
+--- src/version.c      2010-12-17 12:17:11.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     82,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+1. At lunch time, sit in your parked car with sunglasses on and point
+   a hair dryer at passing cars. See if they slow down.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.083.patch0 b/vim/patches/vim-7.3.083.patch0
new file mode 100644 (file)
index 0000000..f337d21
--- /dev/null
@@ -0,0 +1,362 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.083
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.083
+Problem:    When a read() or write() is interrupted by a signal it fails.
+Solution:   Add read_eintr() and write_eintr().
+Files:     src/fileio.c, src/proto/fileio.pro, src/memfile.c, src/memline.c,
+           src/os_unix.c, src/undo.c, src/vim.h
+
+
+*** ../vim-7.3.082/src/fileio.c        2010-08-15 21:57:26.000000000 +0200
+--- src/fileio.c       2010-12-17 16:04:30.000000000 +0100
+***************
+*** 918,924 ****
+           {
+               /* Read the first line (and a bit more).  Immediately rewind to
+                * the start of the file.  If the read() fails "len" is -1. */
+!              len = vim_read(fd, firstline, 80);
+               lseek(fd, (off_t)0L, SEEK_SET);
+               for (p = firstline; p < firstline + len; ++p)
+                   if (*p >= 0x80)
+--- 918,924 ----
+           {
+               /* Read the first line (and a bit more).  Immediately rewind to
+                * the start of the file.  If the read() fails "len" is -1. */
+!              len = read_eintr(fd, firstline, 80);
+               lseek(fd, (off_t)0L, SEEK_SET);
+               for (p = firstline; p < firstline + len; ++p)
+                   if (*p >= 0x80)
+***************
+*** 1373,1379 ****
+                   /*
+                    * Read bytes from the file.
+                    */
+!                  size = vim_read(fd, ptr, size);
+               }
+  
+               if (size <= 0)
+--- 1373,1379 ----
+                   /*
+                    * Read bytes from the file.
+                    */
+!                  size = read_eintr(fd, ptr, size);
+               }
+  
+               if (size <= 0)
+***************
+*** 4000,4006 ****
+  #ifdef HAS_BW_FLAGS
+                       write_info.bw_flags = FIO_NOCONVERT;
+  #endif
+!                      while ((write_info.bw_len = vim_read(fd, copybuf,
+                                                               BUFSIZE)) > 0)
+                       {
+                           if (buf_write_bytes(&write_info) == FAIL)
+--- 4000,4006 ----
+  #ifdef HAS_BW_FLAGS
+                       write_info.bw_flags = FIO_NOCONVERT;
+  #endif
+!                      while ((write_info.bw_len = read_eintr(fd, copybuf,
+                                                               BUFSIZE)) > 0)
+                       {
+                           if (buf_write_bytes(&write_info) == FAIL)
+***************
+*** 4813,4819 ****
+  #ifdef HAS_BW_FLAGS
+                       write_info.bw_flags = FIO_NOCONVERT;
+  #endif
+!                      while ((write_info.bw_len = vim_read(fd, smallbuf,
+                                                     SMBUFSIZE)) > 0)
+                           if (buf_write_bytes(&write_info) == FAIL)
+                               break;
+--- 4813,4819 ----
+  #ifdef HAS_BW_FLAGS
+                       write_info.bw_flags = FIO_NOCONVERT;
+  #endif
+!                      while ((write_info.bw_len = read_eintr(fd, smallbuf,
+                                                     SMBUFSIZE)) > 0)
+                           if (buf_write_bytes(&write_info) == FAIL)
+                               break;
+***************
+*** 5330,5336 ****
+  
+  /*
+   * Call write() to write a number of bytes to the file.
+!  * Also handles encryption and 'encoding' conversion.
+   *
+   * Return FAIL for failure, OK otherwise.
+   */
+--- 5330,5336 ----
+  
+  /*
+   * Call write() to write a number of bytes to the file.
+!  * Handles encryption and 'encoding' conversion.
+   *
+   * Return FAIL for failure, OK otherwise.
+   */
+***************
+*** 5702,5717 ****
+       crypt_encode(buf, len, buf);
+  #endif
+  
+!     /* Repeat the write(), it may be interrupted by a signal. */
+!     while (len > 0)
+!     {
+!      wlen = vim_write(ip->bw_fd, buf, len);
+!      if (wlen <= 0)              /* error! */
+!          return FAIL;
+!      len -= wlen;
+!      buf += wlen;
+!     }
+!     return OK;
+  }
+  
+  #ifdef FEAT_MBYTE
+--- 5702,5709 ----
+       crypt_encode(buf, len, buf);
+  #endif
+  
+!     wlen = write_eintr(ip->bw_fd, buf, len);
+!     return (wlen < len) ? FAIL : OK;
+  }
+  
+  #ifdef FEAT_MBYTE
+***************
+*** 6662,6669 ****
+       return -1;
+      }
+  
+!     while ((n = vim_read(fd_in, buffer, BUFSIZE)) > 0)
+!      if (vim_write(fd_out, buffer, n) != n)
+       {
+           errmsg = _("E208: Error writing to \"%s\"");
+           break;
+--- 6654,6661 ----
+       return -1;
+      }
+  
+!     while ((n = read_eintr(fd_in, buffer, BUFSIZE)) > 0)
+!      if (write_eintr(fd_out, buffer, n) != n)
+       {
+           errmsg = _("E208: Error writing to \"%s\"");
+           break;
+***************
+*** 10304,10306 ****
+--- 10296,10350 ----
+      }
+      return reg_pat;
+  }
++ 
++ #if defined(EINTR) || defined(PROTO)
++ /*
++  * Version of read() that retries when interrupted by EINTR (possibly
++  * by a SIGWINCH).
++  */
++     long
++ read_eintr(fd, buf, bufsize)
++     int          fd;
++     void    *buf;
++     size_t  bufsize;
++ {
++     long ret;
++ 
++     for (;;)
++     {
++      ret = vim_read(fd, buf, bufsize);
++      if (ret >= 0 || errno != EINTR)
++          break;
++     }
++     return ret;
++ }
++ 
++ /*
++  * Version of write() that retries when interrupted by EINTR (possibly
++  * by a SIGWINCH).
++  */
++     long
++ write_eintr(fd, buf, bufsize)
++     int          fd;
++     void    *buf;
++     size_t  bufsize;
++ {
++     long    ret = 0;
++     long    wlen;
++ 
++     /* Repeat the write() so long it didn't fail, other than being interrupted
++      * by a signal. */
++     while (ret < (long)bufsize)
++     {
++      wlen = vim_write(fd, buf + ret, bufsize - ret);
++      if (wlen < 0)
++      {
++          if (errno != EINTR)
++              break;
++      }
++      else
++          ret += wlen;
++     }
++     return ret;
++ }
++ #endif
+*** ../vim-7.3.082/src/proto/fileio.pro        2010-08-15 21:57:28.000000000 +0200
+--- src/proto/fileio.pro       2010-12-17 15:01:26.000000000 +0100
+***************
+*** 54,57 ****
+--- 54,59 ----
+  int match_file_pat __ARGS((char_u *pattern, regprog_T *prog, char_u *fname, char_u *sfname, char_u *tail, int allow_dirs));
+  int match_file_list __ARGS((char_u *list, char_u *sfname, char_u *ffname));
+  char_u *file_pat_to_reg_pat __ARGS((char_u *pat, char_u *pat_end, char *allow_dirs, int no_bslash));
++ long read_eintr __ARGS((int fd, void *buf, size_t bufsize));
++ long write_eintr __ARGS((int fd, void *buf, size_t bufsize));
+  /* vim: set ft=c : */
+*** ../vim-7.3.082/src/memfile.c       2010-08-15 21:57:25.000000000 +0200
+--- src/memfile.c      2010-12-17 16:02:54.000000000 +0100
+***************
+*** 1049,1055 ****
+       PERROR(_("E294: Seek error in swap file read"));
+       return FAIL;
+      }
+!     if ((unsigned)vim_read(mfp->mf_fd, hp->bh_data, size) != size)
+      {
+       PERROR(_("E295: Read error in swap file"));
+       return FAIL;
+--- 1049,1055 ----
+       PERROR(_("E294: Seek error in swap file read"));
+       return FAIL;
+      }
+!     if ((unsigned)read_eintr(mfp->mf_fd, hp->bh_data, size) != size)
+      {
+       PERROR(_("E295: Read error in swap file"));
+       return FAIL;
+***************
+*** 1168,1174 ****
+      }
+  #endif
+  
+!     if ((unsigned)vim_write(mfp->mf_fd, data, size) != size)
+       result = FAIL;
+  
+  #ifdef FEAT_CRYPT
+--- 1168,1174 ----
+      }
+  #endif
+  
+!     if ((unsigned)write_eintr(mfp->mf_fd, data, size) != size)
+       result = FAIL;
+  
+  #ifdef FEAT_CRYPT
+*** ../vim-7.3.082/src/memline.c       2010-12-08 13:16:58.000000000 +0100
+--- src/memline.c      2010-12-17 15:46:49.000000000 +0100
+***************
+*** 2062,2068 ****
+      fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
+      if (fd >= 0)
+      {
+!      if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
+       {
+           if (STRNCMP(b0.b0_version, "VIM 3.0", 7) == 0)
+           {
+--- 2062,2068 ----
+      fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
+      if (fd >= 0)
+      {
+!      if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
+       {
+           if (STRNCMP(b0.b0_version, "VIM 3.0", 7) == 0)
+           {
+***************
+*** 4392,4398 ****
+               fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
+               if (fd >= 0)
+               {
+!                  if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
+                   {
+                       /*
+                        * If the swapfile has the same directory as the
+--- 4392,4398 ----
+               fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
+               if (fd >= 0)
+               {
+!                  if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
+                   {
+                       /*
+                        * If the swapfile has the same directory as the
+*** ../vim-7.3.082/src/os_unix.c       2010-10-20 19:17:43.000000000 +0200
+--- src/os_unix.c      2010-12-17 16:17:43.000000000 +0100
+***************
+*** 4454,4460 ****
+                   ++noread_cnt;
+                   while (RealWaitForChar(fromshell_fd, 10L, NULL))
+                   {
+!                      len = read(fromshell_fd, (char *)buffer
+  # ifdef FEAT_MBYTE
+                               + buffer_off, (size_t)(BUFLEN - buffer_off)
+  # else
+--- 4454,4460 ----
+                   ++noread_cnt;
+                   while (RealWaitForChar(fromshell_fd, 10L, NULL))
+                   {
+!                      len = read_eintr(fromshell_fd, buffer
+  # ifdef FEAT_MBYTE
+                               + buffer_off, (size_t)(BUFLEN - buffer_off)
+  # else
+*** ../vim-7.3.082/src/undo.c  2010-11-03 19:32:36.000000000 +0100
+--- src/undo.c 2010-12-17 15:39:24.000000000 +0100
+***************
+*** 1386,1392 ****
+               char_u  mbuf[UF_START_MAGIC_LEN];
+               int     len;
+  
+!              len = vim_read(fd, mbuf, UF_START_MAGIC_LEN);
+               close(fd);
+               if (len < UF_START_MAGIC_LEN
+                     || memcmp(mbuf, UF_START_MAGIC, UF_START_MAGIC_LEN) != 0)
+--- 1386,1392 ----
+               char_u  mbuf[UF_START_MAGIC_LEN];
+               int     len;
+  
+!              len = read_eintr(fd, mbuf, UF_START_MAGIC_LEN);
+               close(fd);
+               if (len < UF_START_MAGIC_LEN
+                     || memcmp(mbuf, UF_START_MAGIC, UF_START_MAGIC_LEN) != 0)
+*** ../vim-7.3.082/src/vim.h   2010-12-02 16:01:23.000000000 +0100
+--- src/vim.h  2010-12-17 14:55:04.000000000 +0100
+***************
+*** 1642,1647 ****
+--- 1642,1652 ----
+  # define USE_INPUT_BUF
+  #endif
+  
++ #ifndef EINTR
++ # define read_eintr(fd, buf, count) vim_read((fd), (buf), (count))
++ # define write_eintr(fd, buf, count) vim_write((fd), (buf), (count))
++ #endif
++ 
+  #ifdef MSWIN
+  /* On MS-Windows the third argument isn't size_t.  This matters for Win64,
+   * where sizeof(size_t)==8, not 4 */
+*** ../vim-7.3.082/src/version.c       2010-12-17 12:19:14.000000000 +0100
+--- src/version.c      2010-12-17 16:10:58.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     83,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+9. As often as possible, skip rather than walk.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.084.patch0 b/vim/patches/vim-7.3.084.patch0
new file mode 100644 (file)
index 0000000..a46892e
--- /dev/null
@@ -0,0 +1,123 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.084
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.084
+Problem:    When splitting the window, the new one scrolls with the cursor at
+           the top.
+Solution:   Compute w_fraction before setting the new height.
+Files:     src/window.c
+
+
+*** ../vim-7.3.083/src/window.c        2010-09-21 16:56:29.000000000 +0200
+--- src/window.c       2010-12-17 17:09:51.000000000 +0100
+***************
+*** 70,76 ****
+  #endif /* FEAT_WINDOWS */
+  
+  static win_T *win_alloc __ARGS((win_T *after, int hidden));
+! static void win_new_height __ARGS((win_T *, int));
+  
+  #define URL_SLASH    1               /* path_is_url() has found "://" */
+  #define URL_BACKSLASH        2               /* path_is_url() has found ":\\" */
+--- 70,77 ----
+  #endif /* FEAT_WINDOWS */
+  
+  static win_T *win_alloc __ARGS((win_T *after, int hidden));
+! static void set_fraction __ARGS((win_T *wp));
+! static void win_new_height __ARGS((win_T *wp, int height));
+  
+  #define URL_SLASH    1               /* path_is_url() has found "://" */
+  #define URL_BACKSLASH        2               /* path_is_url() has found ":\\" */
+***************
+*** 983,992 ****
+--- 984,999 ----
+      else
+       frame_append(curfrp, frp);
+  
++     /* Set w_fraction now so that the cursor keeps the same relative
++      * vertical position. */
++     set_fraction(oldwin);
++     wp->w_fraction = oldwin->w_fraction;
++ 
+  #ifdef FEAT_VERTSPLIT
+      if (flags & WSP_VERT)
+      {
+       wp->w_p_scr = curwin->w_p_scr;
++ 
+       if (need_status)
+       {
+           win_new_height(oldwin, oldwin->w_height - 1);
+***************
+*** 5453,5458 ****
+--- 5460,5478 ----
+  
+  #endif /* FEAT_WINDOWS */
+  
++ #define FRACTION_MULT        16384L
++ 
++ /*
++  * Set wp->w_fraction for the current w_wrow and w_height.
++  */
++     static void
++ set_fraction(wp)
++     win_T    *wp;
++ {
++     wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
++                                  + FRACTION_MULT / 2) / (long)wp->w_height;
++ }
++ 
+  /*
+   * Set the height of a window.
+   * This takes care of the things inside the window, not what happens to the
+***************
+*** 5465,5471 ****
+  {
+      linenr_T lnum;
+      int              sline, line_size;
+- #define FRACTION_MULT        16384L
+  
+      /* Don't want a negative height.  Happens when splitting a tiny window.
+       * Will equalize heights soon to fix it. */
+--- 5485,5490 ----
+***************
+*** 5475,5482 ****
+       return;     /* nothing to do */
+  
+      if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0)
+!      wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
+!                                  + FRACTION_MULT / 2) / (long)wp->w_height;
+  
+      wp->w_height = height;
+      wp->w_skipcol = 0;
+--- 5494,5500 ----
+       return;     /* nothing to do */
+  
+      if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0)
+!      set_fraction(wp);
+  
+      wp->w_height = height;
+      wp->w_skipcol = 0;
+*** ../vim-7.3.083/src/version.c       2010-12-17 16:27:10.000000000 +0100
+--- src/version.c      2010-12-17 17:14:19.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     84,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+12. Sing along at the opera.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.085.patch0 b/vim/patches/vim-7.3.085.patch0
new file mode 100644 (file)
index 0000000..15fb87f
--- /dev/null
@@ -0,0 +1,313 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.085
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.085 (after 7.3.083)
+Problem:    Inconsistency with preproc symbols.  void * computation.
+Solution:   Include vimio.h from vim.h.  Add type cast.
+Files:      src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/fileio.c,
+            src/if_cscope.c, src/if_sniff.c, src/main.c, src/memfile.c,
+            src/memline.c, src/netbeans.c, src/os_msdos.c, src/os_mswin.c,
+            src/os_win16.c, src/os_win32.c, src/spell.c, src/tag.c,
+            src/undo.c, src/vim.h
+
+
+*** ../vim-7.3.084/src/eval.c  2010-12-02 21:44:35.000000000 +0100
+--- src/eval.c 2010-12-17 17:45:37.000000000 +0100
+***************
+*** 10,18 ****
+  /*
+   * eval.c: Expression evaluation.
+   */
+- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+- # include "vimio.h"  /* for mch_open(), must be before vim.h */
+- #endif
+  
+  #include "vim.h"
+  
+--- 10,15 ----
+*** ../vim-7.3.084/src/ex_cmds.c       2010-11-24 17:59:27.000000000 +0100
+--- src/ex_cmds.c      2010-12-17 17:46:09.000000000 +0100
+***************
+*** 11,20 ****
+   * ex_cmds.c: some functions for command line commands
+   */
+  
+- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+- # include "vimio.h"  /* for mch_open(), must be before vim.h */
+- #endif
+- 
+  #include "vim.h"
+  #include "version.h"
+  
+--- 11,16 ----
+*** ../vim-7.3.084/src/ex_cmds2.c      2010-09-21 16:56:29.000000000 +0200
+--- src/ex_cmds2.c     2010-12-17 17:46:26.000000000 +0100
+***************
+*** 11,20 ****
+   * ex_cmds2.c: some more functions for command line commands
+   */
+  
+- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+- # include "vimio.h"  /* for mch_open(), must be before vim.h */
+- #endif
+- 
+  #include "vim.h"
+  #include "version.h"
+  
+--- 11,16 ----
+*** ../vim-7.3.084/src/fileio.c        2010-12-17 16:27:09.000000000 +0100
+--- src/fileio.c       2010-12-17 17:52:42.000000000 +0100
+***************
+*** 11,24 ****
+   * fileio.c: read from and write to a file
+   */
+  
+- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+- # include "vimio.h"  /* for lseek(), must be before vim.h */
+- #endif
+- 
+- #if defined __EMX__
+- # include "vimio.h"  /* for mktemp(), CJW 1997-12-03 */
+- #endif
+- 
+  #include "vim.h"
+  
+  #if defined(__TANDEM) || defined(__MINT__)
+--- 11,16 ----
+***************
+*** 10336,10342 ****
+       * by a signal. */
+      while (ret < (long)bufsize)
+      {
+!      wlen = vim_write(fd, buf + ret, bufsize - ret);
+       if (wlen < 0)
+       {
+           if (errno != EINTR)
+--- 10328,10334 ----
+       * by a signal. */
+      while (ret < (long)bufsize)
+      {
+!      wlen = vim_write(fd, (char *)buf + ret, bufsize - ret);
+       if (wlen < 0)
+       {
+           if (errno != EINTR)
+*** ../vim-7.3.084/src/if_cscope.c     2010-09-21 16:56:29.000000000 +0200
+--- src/if_cscope.c    2010-12-17 17:47:02.000000000 +0100
+***************
+*** 20,28 ****
+  #include <sys/stat.h>
+  #if defined(UNIX)
+  # include <sys/wait.h>
+- #else
+-     /* not UNIX, must be WIN32 */
+- # include "vimio.h"
+  #endif
+  #include "if_cscope.h"
+  
+--- 20,25 ----
+*** ../vim-7.3.084/src/if_sniff.c      2010-08-15 21:57:25.000000000 +0200
+--- src/if_sniff.c     2010-12-17 17:47:20.000000000 +0100
+***************
+*** 9,15 ****
+  
+  #ifdef WIN32
+  # include <stdio.h>
+- # include "vimio.h"
+  # include <process.h>
+  # include <string.h>
+  # include <assert.h>
+--- 9,14 ----
+*** ../vim-7.3.084/src/main.c  2010-11-16 16:25:46.000000000 +0100
+--- src/main.c 2010-12-17 17:47:41.000000000 +0100
+***************
+*** 7,16 ****
+   * See README.txt for an overview of the Vim source code.
+   */
+  
+- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+- # include "vimio.h"          /* for close() and dup() */
+- #endif
+- 
+  #define EXTERN
+  #include "vim.h"
+  
+--- 7,12 ----
+*** ../vim-7.3.084/src/memfile.c       2010-12-17 16:27:10.000000000 +0100
+--- src/memfile.c      2010-12-17 17:47:54.000000000 +0100
+***************
+*** 32,41 ****
+   * file is opened.
+   */
+  
+- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+- # include "vimio.h"  /* for lseek(), must be before vim.h */
+- #endif
+- 
+  #include "vim.h"
+  
+  /*
+--- 32,37 ----
+*** ../vim-7.3.084/src/memline.c       2010-12-17 16:27:10.000000000 +0100
+--- src/memline.c      2010-12-17 17:48:06.000000000 +0100
+***************
+*** 42,51 ****
+   *  mf_get().
+   */
+  
+- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+- # include "vimio.h"  /* for mch_open(), must be before vim.h */
+- #endif
+- 
+  #include "vim.h"
+  
+  #ifndef UNIX         /* it's in os_unix.h for Unix */
+--- 42,47 ----
+*** ../vim-7.3.084/src/netbeans.c      2010-12-17 12:19:14.000000000 +0100
+--- src/netbeans.c     2010-12-17 17:48:19.000000000 +0100
+***************
+*** 16,25 ****
+   * See ":help netbeans-protocol" for explanation.
+   */
+  
+- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+- # include "vimio.h"  /* for mch_open(), must be before vim.h */
+- #endif
+- 
+  #include "vim.h"
+  
+  #if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
+--- 16,21 ----
+*** ../vim-7.3.084/src/os_msdos.c      2010-08-15 21:57:25.000000000 +0200
+--- src/os_msdos.c     2010-12-17 17:48:40.000000000 +0100
+***************
+*** 21,27 ****
+   * Some functions are also used for Win16 (MS-Windows 3.1).
+   */
+  
+- #include "vimio.h"
+  #include "vim.h"
+  
+  #include <conio.h>
+--- 21,26 ----
+*** ../vim-7.3.084/src/os_mswin.c      2010-10-23 14:02:48.000000000 +0200
+--- src/os_mswin.c     2010-12-17 17:48:51.000000000 +0100
+***************
+*** 22,28 ****
+  # endif
+  #endif
+  
+- #include "vimio.h"
+  #include "vim.h"
+  
+  #ifdef WIN16
+--- 22,27 ----
+*** ../vim-7.3.084/src/os_win16.c      2010-08-15 21:57:32.000000000 +0200
+--- src/os_win16.c     2010-12-17 17:49:02.000000000 +0100
+***************
+*** 20,26 ****
+  # pragma warn -obs
+  #endif
+  
+- #include "vimio.h"
+  #include "vim.h"
+  
+  #include <dos.h>
+--- 20,25 ----
+*** ../vim-7.3.084/src/os_win32.c      2010-11-24 12:35:14.000000000 +0100
+--- src/os_win32.c     2010-12-17 17:49:11.000000000 +0100
+***************
+*** 20,26 ****
+   * Roger Knobbe <rogerk@wonderware.com> did the initial port of Vim 3.0.
+   */
+  
+- #include "vimio.h"
+  #include "vim.h"
+  
+  #ifdef FEAT_MZSCHEME
+--- 20,25 ----
+*** ../vim-7.3.084/src/spell.c 2010-12-08 17:09:27.000000000 +0100
+--- src/spell.c        2010-12-17 17:49:24.000000000 +0100
+***************
+*** 303,312 ****
+   *                       few bytes as possible, see offset2bytes())
+   */
+  
+- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+- # include "vimio.h"  /* for lseek(), must be before vim.h */
+- #endif
+- 
+  #include "vim.h"
+  
+  #if defined(FEAT_SPELL) || defined(PROTO)
+--- 303,308 ----
+*** ../vim-7.3.084/src/tag.c   2010-09-21 16:56:29.000000000 +0200
+--- src/tag.c  2010-12-17 17:49:35.000000000 +0100
+***************
+*** 11,20 ****
+   * Code to handle tags and the tag stack
+   */
+  
+- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+- # include "vimio.h"  /* for lseek(), must be before vim.h */
+- #endif
+- 
+  #include "vim.h"
+  
+  /*
+--- 11,16 ----
+*** ../vim-7.3.084/src/undo.c  2010-12-17 16:27:10.000000000 +0100
+--- src/undo.c 2010-12-17 17:49:59.000000000 +0100
+***************
+*** 81,90 ****
+  #define UH_MAGIC 0x18dade    /* value for uh_magic when in use */
+  #define UE_MAGIC 0xabc123    /* value for ue_magic when in use */
+  
+- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+- # include "vimio.h"  /* for vim_read(), must be before vim.h */
+- #endif
+- 
+  #include "vim.h"
+  
+  static void u_unch_branch __ARGS((u_header_T *uhp));
+--- 81,86 ----
+*** ../vim-7.3.084/src/vim.h   2010-12-17 16:27:10.000000000 +0100
+--- src/vim.h  2010-12-17 17:51:43.000000000 +0100
+***************
+*** 27,32 ****
+--- 27,37 ----
+  # endif
+  #endif
+  
++ #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64) \
++      || defined(__EMX__)
++ # include "vimio.h"
++ #endif
++ 
+  /* ============ the header file puzzle (ca. 50-100 pieces) ========= */
+  
+  #ifdef HAVE_CONFIG_H /* GNU autoconf (or something else) was here */
+*** ../vim-7.3.084/src/version.c       2010-12-17 17:35:05.000000000 +0100
+--- src/version.c      2010-12-17 17:55:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     85,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+14. Put mosquito netting around your work area. Play a tape of jungle
+    sounds all day.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.086.patch0 b/vim/patches/vim-7.3.086.patch0
new file mode 100644 (file)
index 0000000..cf494e0
--- /dev/null
@@ -0,0 +1,138 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.086
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.086
+Problem:    When using a mapping with an expression and there was no count,
+           v:count has the value of the previous command. (ZyX)
+Solution:   Also set v:count and v:count1 before getting the character that
+           could be a command or a count.
+Files:     src/normal.c
+
+
+*** ../vim-7.3.085/src/normal.c        2010-10-13 18:06:42.000000000 +0200
+--- src/normal.c       2010-12-17 18:46:56.000000000 +0100
+***************
+*** 25,30 ****
+--- 25,33 ----
+  static int   restart_VIsual_select = 0;
+  #endif
+  
++ #ifdef FEAT_EVAL
++ static void  set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
++ #endif
+  static int
+  # ifdef __BORLANDC__
+  _RTLENTRYF
+***************
+*** 648,653 ****
+--- 651,664 ----
+      dont_scroll = FALSE;     /* allow scrolling here */
+  #endif
+  
++ #ifdef FEAT_EVAL
++     /* Set v:count here, when called from main() and not a stuffed
++      * command, so that v:count can be used in an expression mapping
++      * when there is no count. */
++     if (toplevel && stuff_empty())
++      set_vcount_ca(&ca, &set_prevcount);
++ #endif
++ 
+      /*
+       * Get the command character from the user.
+       */
+***************
+*** 725,739 ****
+            * command, so that v:count can be used in an expression mapping
+            * right after the count. */
+           if (toplevel && stuff_empty())
+!          {
+!              long count = ca.count0;
+! 
+!              /* multiply with ca.opcount the same way as below */
+!              if (ca.opcount != 0)
+!                  count = ca.opcount * (count == 0 ? 1 : count);
+!              set_vcount(count, count == 0 ? 1 : count, set_prevcount);
+!              set_prevcount = FALSE;  /* only set v:prevcount once */
+!          }
+  #endif
+           if (ctrl_w)
+           {
+--- 736,742 ----
+            * command, so that v:count can be used in an expression mapping
+            * right after the count. */
+           if (toplevel && stuff_empty())
+!              set_vcount_ca(&ca, &set_prevcount);
+  #endif
+           if (ctrl_w)
+           {
+***************
+*** 1386,1391 ****
+--- 1389,1414 ----
+      opcount = ca.opcount;
+  }
+  
++ #ifdef FEAT_EVAL
++ /*
++  * Set v:count and v:count1 according to "cap".
++  * Set v:prevcount only when "set_prevcount" is TRUE.
++  */
++     static void
++ set_vcount_ca(cap, set_prevcount)
++     cmdarg_T *cap;
++     int              *set_prevcount;
++ {
++     long count = cap->count0;
++ 
++     /* multiply with cap->opcount the same way as above */
++     if (cap->opcount != 0)
++      count = cap->opcount * (count == 0 ? 1 : count);
++     set_vcount(count, count == 0 ? 1 : count, *set_prevcount);
++     *set_prevcount = FALSE;  /* only set v:prevcount once */
++ }
++ #endif
++ 
+  /*
+   * Handle an operator after visual mode or when the movement is finished
+   */
+***************
+*** 8529,8535 ****
+      else
+       curwin->w_curswant = 0;
+      /* keep curswant at the column where we wanted to go, not where
+!        we ended; differs if line is too short */
+      curwin->w_set_curswant = FALSE;
+  }
+  
+--- 8552,8558 ----
+      else
+       curwin->w_curswant = 0;
+      /* keep curswant at the column where we wanted to go, not where
+!      * we ended; differs if line is too short */
+      curwin->w_set_curswant = FALSE;
+  }
+  
+*** ../vim-7.3.085/src/version.c       2010-12-17 18:06:00.000000000 +0100
+--- src/version.c      2010-12-17 18:51:20.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     86,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+15. Five days in advance, tell your friends you can't attend their
+    party because you're not in the mood.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.087.patch0 b/vim/patches/vim-7.3.087.patch0
new file mode 100644 (file)
index 0000000..e0497db
--- /dev/null
@@ -0,0 +1,152 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.087
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.087
+Problem:    EINTR is not always defined.
+Solution:   Include errno.h in vim.h.
+Files:     src/if_cscope.c, src/if_tcl.c, src/integration.c, src/memline.c,
+           src/os_mswin.c, src/os_win16.c, src/os_win32.c, src/vim.h,
+           src/workshop.c
+
+
+*** ../vim-7.3.086/src/if_cscope.c     2010-12-17 18:06:00.000000000 +0100
+--- src/if_cscope.c    2010-12-17 20:06:01.000000000 +0100
+***************
+*** 13,20 ****
+  
+  #if defined(FEAT_CSCOPE) || defined(PROTO)
+  
+- #include <string.h>
+- #include <errno.h>
+  #include <assert.h>
+  #include <sys/types.h>
+  #include <sys/stat.h>
+--- 13,18 ----
+*** ../vim-7.3.086/src/if_tcl.c        2010-08-15 21:57:27.000000000 +0200
+--- src/if_tcl.c       2010-12-17 20:06:56.000000000 +0100
+***************
+*** 74,80 ****
+  #endif
+  
+  #include <tcl.h>
+- #include <errno.h>
+  #include <string.h>
+  
+  typedef struct
+--- 74,79 ----
+*** ../vim-7.3.086/src/integration.c   2010-08-15 21:57:29.000000000 +0200
+--- src/integration.c  2010-12-17 20:07:12.000000000 +0100
+***************
+*** 33,39 ****
+  #include <sys/un.h>
+  #endif
+  
+- #include <errno.h>
+  #include <sys/types.h>
+  #include <sys/socket.h>
+  #include <sys/param.h>
+--- 33,38 ----
+*** ../vim-7.3.086/src/memline.c       2010-12-17 18:06:00.000000000 +0100
+--- src/memline.c      2010-12-17 20:07:31.000000000 +0100
+***************
+*** 52,61 ****
+  # include <proto/dos.h>          /* for Open() and Close() */
+  #endif
+  
+- #ifdef HAVE_ERRNO_H
+- # include <errno.h>
+- #endif
+- 
+  typedef struct block0                ZERO_BL;    /* contents of the first block */
+  typedef struct pointer_block PTR_BL;     /* contents of a pointer block */
+  typedef struct data_block    DATA_BL;    /* contents of a data block */
+--- 52,57 ----
+*** ../vim-7.3.086/src/os_mswin.c      2010-12-17 18:06:00.000000000 +0100
+--- src/os_mswin.c     2010-12-17 20:08:14.000000000 +0100
+***************
+*** 30,36 ****
+  # include <string.h>
+  #endif
+  #include <sys/types.h>
+- #include <errno.h>
+  #include <signal.h>
+  #include <limits.h>
+  #include <process.h>
+--- 30,35 ----
+*** ../vim-7.3.086/src/os_win16.c      2010-12-17 18:06:00.000000000 +0100
+--- src/os_win16.c     2010-12-17 20:08:53.000000000 +0100
+***************
+*** 25,31 ****
+  #include <dos.h>
+  #include <string.h>
+  #include <sys/types.h>
+- #include <errno.h>
+  #include <signal.h>
+  #include <limits.h>
+  #include <process.h>
+--- 25,30 ----
+*** ../vim-7.3.086/src/os_win32.c      2010-12-17 18:06:00.000000000 +0100
+--- src/os_win32.c     2010-12-17 20:09:18.000000000 +0100
+***************
+*** 27,33 ****
+  #endif
+  
+  #include <sys/types.h>
+- #include <errno.h>
+  #include <signal.h>
+  #include <limits.h>
+  #include <process.h>
+--- 27,32 ----
+*** ../vim-7.3.086/src/vim.h   2010-12-17 18:06:00.000000000 +0100
+--- src/vim.h  2010-12-17 20:09:56.000000000 +0100
+***************
+*** 480,485 ****
+--- 480,490 ----
+  # include <sys/stat.h>
+  #endif
+  
++ #if defined(HAVE_ERRNO_H) || defined(DJGPP) || defined(WIN16) \
++      || defined(WIN32) || defined(_WIN64) || defined(__EMX__)
++ # include <errno.h>
++ #endif
++ 
+  /*
+   * Allow other (non-unix) systems to configure themselves now
+   * These are also in os_unix.h, because osdef.sh needs them there.
+*** ../vim-7.3.086/src/workshop.c      2010-08-15 21:57:26.000000000 +0200
+--- src/workshop.c     2010-12-17 20:09:31.000000000 +0100
+***************
+*** 16,22 ****
+  #include <sys/types.h>
+  #include <netdb.h>
+  #include <netinet/in.h>
+- #include <errno.h>
+  #include <sys/socket.h>
+  #ifdef HAVE_LIBGEN_H
+  # include <libgen.h>
+--- 16,21 ----
+*** ../vim-7.3.086/src/version.c       2010-12-17 18:52:56.000000000 +0100
+--- src/version.c      2010-12-17 20:14:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     87,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+17. When the money comes out the ATM, scream "I won!, I won! 3rd
+    time this week!!!!!"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.088.patch0 b/vim/patches/vim-7.3.088.patch0
new file mode 100644 (file)
index 0000000..98acc7c
--- /dev/null
@@ -0,0 +1,152 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.088
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.088
+Problem:    Ruby can't load Gems sometimes, may cause a crash.
+Solution:   Undefine off_t.  Use ruby_process_options(). (Yasuhiro Matsumoto)
+Files:     src/if_ruby.c
+
+
+*** ../vim-7.3.087/src/if_ruby.c       2010-12-08 13:11:15.000000000 +0100
+--- src/if_ruby.c      2010-12-24 12:18:31.000000000 +0100
+***************
+*** 90,95 ****
+--- 90,96 ----
+  # include <ruby/encoding.h>
+  #endif
+  
++ #undef off_t /* ruby defines off_t as _int64, Mingw uses long */
+  #undef EXTERN
+  #undef _
+  
+***************
+*** 229,238 ****
+  # define rb_enc_find_index           dll_rb_enc_find_index
+  # define rb_enc_find                 dll_rb_enc_find
+  # define rb_enc_str_new                      dll_rb_enc_str_new
+- # define rb_intern2                  dll_rb_intern2
+- # define rb_const_remove             dll_rb_const_remove
+  # define rb_sprintf                  dll_rb_sprintf
+  # define ruby_init_stack             dll_ruby_init_stack
+  #endif
+  
+  /*
+--- 230,239 ----
+  # define rb_enc_find_index           dll_rb_enc_find_index
+  # define rb_enc_find                 dll_rb_enc_find
+  # define rb_enc_str_new                      dll_rb_enc_str_new
+  # define rb_sprintf                  dll_rb_sprintf
++ # define rb_require                  dll_rb_require
+  # define ruby_init_stack             dll_ruby_init_stack
++ # define ruby_process_options                dll_ruby_process_options
+  #endif
+  
+  /*
+***************
+*** 319,329 ****
+  static int (*dll_rb_enc_find_index) (const char*);
+  static rb_encoding* (*dll_rb_enc_find) (const char*);
+  static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
+- static ID (*dll_rb_intern2) (const char*, long);
+- static void (*dll_Init_prelude) (void);
+- static VALUE (*dll_rb_const_remove) (VALUE, ID);
+  static VALUE (*dll_rb_sprintf) (const char*, ...);
+  static void (*ruby_init_stack)(VALUE*);
+  #endif
+  
+  #ifdef RUBY19_OR_LATER
+--- 320,329 ----
+  static int (*dll_rb_enc_find_index) (const char*);
+  static rb_encoding* (*dll_rb_enc_find) (const char*);
+  static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
+  static VALUE (*dll_rb_sprintf) (const char*, ...);
++ static VALUE (*dll_rb_require) (const char*);
+  static void (*ruby_init_stack)(VALUE*);
++ static void* (*ruby_process_options)(int, char**);
+  #endif
+  
+  #ifdef RUBY19_OR_LATER
+***************
+*** 430,439 ****
+      {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
+      {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
+      {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
+-     {"rb_intern2", (RUBY_PROC*)&dll_rb_intern2},
+-     {"rb_const_remove", (RUBY_PROC*)&dll_rb_const_remove},
+      {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
+      {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
+  #endif
+      {"", NULL},
+  };
+--- 430,439 ----
+      {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
+      {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
+      {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
+      {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
++     {"rb_require", (RUBY_PROC*)&dll_rb_require},
+      {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
++     {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options},
+  #endif
+      {"", NULL},
+  };
+***************
+*** 663,680 ****
+               ruby_init();
+           }
+  #ifdef RUBY19_OR_LATER
+           ruby_script("vim-ruby");
+! #endif
+           ruby_init_loadpath();
+-          ruby_io_init();
+- #ifdef RUBY19_OR_LATER
+-          rb_enc_find_index("encdb");
+- 
+-          /* This avoids the error "Encoding::ConverterNotFoundError: code
+-           * converter not found (UTF-16LE to ASCII-8BIT)". */
+-          rb_define_module("Gem");
+-          rb_const_remove(rb_cObject, rb_intern2("TMP_RUBY_PREFIX", 15));
+  #endif
+           ruby_vim_init();
+           ruby_initialized = 1;
+  #ifdef DYNAMIC_RUBY
+--- 663,678 ----
+               ruby_init();
+           }
+  #ifdef RUBY19_OR_LATER
++          {
++              int dummy_argc = 2;
++              char *dummy_argv[] = {"vim-ruby", "-e0"};
++              ruby_process_options(dummy_argc, dummy_argv);
++          }
+           ruby_script("vim-ruby");
+! #else
+           ruby_init_loadpath();
+  #endif
++          ruby_io_init();
+           ruby_vim_init();
+           ruby_initialized = 1;
+  #ifdef DYNAMIC_RUBY
+*** ../vim-7.3.087/src/version.c       2010-12-17 20:23:56.000000000 +0100
+--- src/version.c      2010-12-24 13:38:51.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     88,
+  /**/
+
+-- 
+It is hard to understand how a cemetery raised its burial
+cost and blamed it on the cost of living.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.089.patch0 b/vim/patches/vim-7.3.089.patch0
new file mode 100644 (file)
index 0000000..47b894a
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.089
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.089
+Problem:    Compiler warning on 64 bit MS-Windows.
+Solution:   Add type cast. (Mike Williams)
+Files:     src/netbeans.c
+
+
+*** ../vim-7.3.088/src/netbeans.c      2010-12-17 18:06:00.000000000 +0100
+--- src/netbeans.c     2010-12-17 20:21:05.000000000 +0100
+***************
+*** 800,806 ****
+        *                  -> gui event loop or select loop
+        *                      -> netbeans_read()
+        */
+!      save((char_u *)DETACH_MSG, strlen(DETACH_MSG));
+       nb_close_socket();
+  
+       if (len < 0)
+--- 800,806 ----
+        *                  -> gui event loop or select loop
+        *                      -> netbeans_read()
+        */
+!      save((char_u *)DETACH_MSG, (int)strlen(DETACH_MSG));
+       nb_close_socket();
+  
+       if (len < 0)
+*** ../vim-7.3.088/src/version.c       2010-12-24 13:39:29.000000000 +0100
+--- src/version.c      2010-12-24 13:59:03.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     89,
+  /**/
+
+-- 
+The 50-50-90 rule: Anytime you have a 50-50 chance of getting
+something right, there's a 90% probability you'll get it wrong.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.090.patch0 b/vim/patches/vim-7.3.090.patch0
new file mode 100644 (file)
index 0000000..cf68d62
--- /dev/null
@@ -0,0 +1,68 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.090
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.090
+Problem:    Wrong help text for Cscope.
+Solution:   Adjust the help text for "t". (Dominique Pelle)
+Files:     src/if_cscope.c
+
+
+*** ../vim-7.3.089/src/if_cscope.c     2010-12-17 20:23:56.000000000 +0100
+--- src/if_cscope.c    2010-12-30 11:35:37.000000000 +0100
+***************
+*** 1346,1352 ****
+                      "       g: Find this definition\n"
+                      "       i: Find files #including this file\n"
+                      "       s: Find this C symbol\n"
+!                     "       t: Find assignments to\n"));
+  
+       cmdp++;
+      }
+--- 1346,1352 ----
+                      "       g: Find this definition\n"
+                      "       i: Find files #including this file\n"
+                      "       s: Find this C symbol\n"
+!                     "       t: Find this text string\n"));
+  
+       cmdp++;
+      }
+***************
+*** 1657,1663 ****
+  /*
+   * PRIVATE: cs_make_vim_style_matches
+   *
+!  * convert the cscope output into into a ctags style entry (as might be found
+   * in a ctags tags file).  there's one catch though: cscope doesn't tell you
+   * the type of the tag you are looking for.  for example, in Darren Hiebert's
+   * ctags (the one that comes with vim), #define's use a line number to find the
+--- 1657,1663 ----
+  /*
+   * PRIVATE: cs_make_vim_style_matches
+   *
+!  * convert the cscope output into a ctags style entry (as might be found
+   * in a ctags tags file).  there's one catch though: cscope doesn't tell you
+   * the type of the tag you are looking for.  for example, in Darren Hiebert's
+   * ctags (the one that comes with vim), #define's use a line number to find the
+*** ../vim-7.3.089/src/version.c       2010-12-24 14:00:09.000000000 +0100
+--- src/version.c      2010-12-30 11:36:33.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     90,
+  /**/
+
+-- 
+ERROR 047: Keyboard not found.  Press RETURN to continue.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.091.patch0 b/vim/patches/vim-7.3.091.patch0
new file mode 100644 (file)
index 0000000..f0aac0d
--- /dev/null
@@ -0,0 +1,321 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.091
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.091
+Problem:    "vim -w foo" writes special key codes for removed escape
+           sequences. (Josh Triplett)
+Solution:   Don't write K_IGNORE codes.
+Files:     src/getchar.c, src/misc1.c, src/term.c, src/vim.h
+
+
+*** ../vim-7.3.090/src/getchar.c       2010-10-27 17:39:00.000000000 +0200
+--- src/getchar.c      2010-12-30 12:16:36.000000000 +0100
+***************
+*** 1506,1514 ****
+      }
+  }
+  
+- #define KL_PART_KEY -1               /* keylen value for incomplete key-code */
+- #define KL_PART_MAP -2               /* keylen value for incomplete mapping */
+- 
+  /*
+   * Get the next input character.
+   * Can return a special key or a multi-byte character.
+--- 1506,1511 ----
+***************
+*** 2171,2177 ****
+                                       if (!timedout)
+                                       {
+                                           /* break at a partly match */
+!                                          keylen = KL_PART_MAP;
+                                           break;
+                                       }
+                                   }
+--- 2168,2174 ----
+                                       if (!timedout)
+                                       {
+                                           /* break at a partly match */
+!                                          keylen = KEYLEN_PART_MAP;
+                                           break;
+                                       }
+                                   }
+***************
+*** 2192,2198 ****
+  
+                       /* If no partly match found, use the longest full
+                        * match. */
+!                      if (keylen != KL_PART_MAP)
+                       {
+                           mp = mp_match;
+                           keylen = mp_match_len;
+--- 2189,2195 ----
+  
+                       /* If no partly match found, use the longest full
+                        * match. */
+!                      if (keylen != KEYLEN_PART_MAP)
+                       {
+                           mp = mp_match;
+                           keylen = mp_match_len;
+***************
+*** 2230,2236 ****
+                       }
+                       /* Need more chars for partly match. */
+                       if (mlen == typebuf.tb_len)
+!                          keylen = KL_PART_KEY;
+                       else if (max_mlen < mlen)
+                           /* no match, may have to check for termcode at
+                            * next character */
+--- 2227,2233 ----
+                       }
+                       /* Need more chars for partly match. */
+                       if (mlen == typebuf.tb_len)
+!                          keylen = KEYLEN_PART_KEY;
+                       else if (max_mlen < mlen)
+                           /* no match, may have to check for termcode at
+                            * next character */
+***************
+*** 2238,2244 ****
+                   }
+  
+                   if ((mp == NULL || max_mlen >= mp_match_len)
+!                                                   && keylen != KL_PART_MAP)
+                   {
+                       int     save_keylen = keylen;
+  
+--- 2235,2241 ----
+                   }
+  
+                   if ((mp == NULL || max_mlen >= mp_match_len)
+!                                               && keylen != KEYLEN_PART_MAP)
+                   {
+                       int     save_keylen = keylen;
+  
+***************
+*** 2264,2271 ****
+                           /* If no termcode matched but 'pastetoggle'
+                            * matched partially it's like an incomplete key
+                            * sequence. */
+!                          if (keylen == 0 && save_keylen == KL_PART_KEY)
+!                              keylen = KL_PART_KEY;
+  
+                           /*
+                            * When getting a partial match, but the last
+--- 2261,2268 ----
+                           /* If no termcode matched but 'pastetoggle'
+                            * matched partially it's like an incomplete key
+                            * sequence. */
+!                          if (keylen == 0 && save_keylen == KEYLEN_PART_KEY)
+!                              keylen = KEYLEN_PART_KEY;
+  
+                           /*
+                            * When getting a partial match, but the last
+***************
+*** 2302,2308 ****
+                                   continue;
+                               }
+                               if (*s == NUL)      /* need more characters */
+!                                  keylen = KL_PART_KEY;
+                           }
+                           if (keylen >= 0)
+  #endif
+--- 2299,2305 ----
+                                   continue;
+                               }
+                               if (*s == NUL)      /* need more characters */
+!                                  keylen = KEYLEN_PART_KEY;
+                           }
+                           if (keylen >= 0)
+  #endif
+***************
+*** 2339,2345 ****
+                       if (keylen > 0)     /* full matching terminal code */
+                       {
+  #if defined(FEAT_GUI) && defined(FEAT_MENU)
+!                          if (typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
+                                        && typebuf.tb_buf[typebuf.tb_off + 1]
+                                                                  == KS_MENU)
+                           {
+--- 2336,2343 ----
+                       if (keylen > 0)     /* full matching terminal code */
+                       {
+  #if defined(FEAT_GUI) && defined(FEAT_MENU)
+!                          if (typebuf.tb_len >= 2
+!                              && typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
+                                        && typebuf.tb_buf[typebuf.tb_off + 1]
+                                                                  == KS_MENU)
+                           {
+***************
+*** 2381,2387 ****
+                       /* Partial match: get some more characters.  When a
+                        * matching mapping was found use that one. */
+                       if (mp == NULL || keylen < 0)
+!                          keylen = KL_PART_KEY;
+                       else
+                           keylen = mp_match_len;
+                   }
+--- 2379,2385 ----
+                       /* Partial match: get some more characters.  When a
+                        * matching mapping was found use that one. */
+                       if (mp == NULL || keylen < 0)
+!                          keylen = KEYLEN_PART_KEY;
+                       else
+                           keylen = mp_match_len;
+                   }
+***************
+*** 2553,2559 ****
+  #endif
+                       && typebuf.tb_maplen == 0
+                       && (State & INSERT)
+!                      && (p_timeout || (keylen == KL_PART_KEY && p_ttimeout))
+                       && (c = inchar(typebuf.tb_buf + typebuf.tb_off
+                                                    + typebuf.tb_len, 3, 25L,
+                                                typebuf.tb_change_cnt)) == 0)
+--- 2551,2558 ----
+  #endif
+                       && typebuf.tb_maplen == 0
+                       && (State & INSERT)
+!                      && (p_timeout
+!                          || (keylen == KEYLEN_PART_KEY && p_ttimeout))
+                       && (c = inchar(typebuf.tb_buf + typebuf.tb_off
+                                                    + typebuf.tb_len, 3, 25L,
+                                                typebuf.tb_change_cnt)) == 0)
+***************
+*** 2783,2791 ****
+                           ? 0
+                           : ((typebuf.tb_len == 0
+                                   || !(p_timeout || (p_ttimeout
+!                                                 && keylen == KL_PART_KEY)))
+                                   ? -1L
+!                                  : ((keylen == KL_PART_KEY && p_ttm >= 0)
+                                           ? p_ttm
+                                           : p_tm)), typebuf.tb_change_cnt);
+  
+--- 2782,2790 ----
+                           ? 0
+                           : ((typebuf.tb_len == 0
+                                   || !(p_timeout || (p_ttimeout
+!                                             && keylen == KEYLEN_PART_KEY)))
+                                   ? -1L
+!                                  : ((keylen == KEYLEN_PART_KEY && p_ttm >= 0)
+                                           ? p_ttm
+                                           : p_tm)), typebuf.tb_change_cnt);
+  
+*** ../vim-7.3.090/src/misc1.c 2010-12-02 16:01:23.000000000 +0100
+--- src/misc1.c        2010-12-30 12:28:59.000000000 +0100
+***************
+*** 3114,3123 ****
+              && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
+           continue;
+  
+!      /* found a termcode: adjust length */
+!      if (n > 0)
+           len = n;
+!      if (len == 0)       /* nothing typed yet */
+           continue;
+  
+       /* Handle modifier and/or special key code. */
+--- 3114,3124 ----
+              && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
+           continue;
+  
+!      if (n == KEYLEN_REMOVED)  /* key code removed */
+!          continue;
+!      if (n > 0)              /* found a termcode: adjust length */
+           len = n;
+!      if (len == 0)           /* nothing typed yet */
+           continue;
+  
+       /* Handle modifier and/or special key code. */
+*** ../vim-7.3.090/src/term.c  2010-08-15 21:57:32.000000000 +0200
+--- src/term.c 2010-12-30 12:14:48.000000000 +0100
+***************
+*** 3828,3833 ****
+--- 3831,3837 ----
+   * Check from typebuf.tb_buf[typebuf.tb_off] to typebuf.tb_buf[typebuf.tb_off
+   * + max_offset].
+   * Return 0 for no match, -1 for partial match, > 0 for full match.
++  * Return KEYLEN_REMOVED when a key code was deleted.
+   * With a match, the match is removed, the replacement code is inserted in
+   * typebuf.tb_buf[] and the number of characters in typebuf.tb_buf[] is
+   * returned.
+***************
+*** 3845,3850 ****
+--- 3849,3855 ----
+      int              slen = 0;       /* init for GCC */
+      int              modslen;
+      int              len;
++     int              retval = 0;
+      int              offset;
+      char_u   key_name[2];
+      int              modifiers;
+***************
+*** 4940,4945 ****
+--- 4945,4957 ----
+  #endif
+               string[new_slen++] = key_name[1];
+       }
++      else if (new_slen == 0 && key_name[0] == KS_EXTRA
++                                                && key_name[1] == KE_IGNORE)
++      {
++          /* Do not put K_IGNORE into the buffer, do return KEYLEN_REMOVED
++           * to indicate what happened. */
++          retval = KEYLEN_REMOVED;
++      }
+       else
+       {
+           string[new_slen++] = K_SPECIAL;
+***************
+*** 4976,4982 ****
+                                                  (size_t)(buflen - offset));
+           mch_memmove(buf + offset, string, (size_t)new_slen);
+       }
+!      return (len + extra + offset);
+      }
+  
+      return 0;                            /* no match found */
+--- 4988,4994 ----
+                                                  (size_t)(buflen - offset));
+           mch_memmove(buf + offset, string, (size_t)new_slen);
+       }
+!      return retval == 0 ? (len + extra + offset) : retval;
+      }
+  
+      return 0;                            /* no match found */
+*** ../vim-7.3.090/src/vim.h   2010-12-17 20:23:56.000000000 +0100
+--- src/vim.h  2010-12-30 12:06:45.000000000 +0100
+***************
+*** 2211,2214 ****
+--- 2211,2218 ----
+  #define MSCR_LEFT    -1
+  #define MSCR_RIGHT   -2
+  
++ #define KEYLEN_PART_KEY -1   /* keylen value for incomplete key-code */
++ #define KEYLEN_PART_MAP -2   /* keylen value for incomplete mapping */
++ #define KEYLEN_REMOVED  9999 /* keylen value for removed sequence */
++ 
+  #endif /* VIM__H */
+*** ../vim-7.3.090/src/version.c       2010-12-30 11:41:05.000000000 +0100
+--- src/version.c      2010-12-30 12:24:56.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     91,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+56. You leave the modem speaker on after connecting because you think it
+    sounds like the ocean wind...the perfect soundtrack for "surfing the net".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.092.patch0 b/vim/patches/vim-7.3.092.patch0
new file mode 100644 (file)
index 0000000..d100b00
--- /dev/null
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.092
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.092
+Problem:    Resizing the window when exiting.
+Solution:   Don't resize when exiting.
+Files:     src/term.c
+
+
+*** ../vim-7.3.091/src/term.c  2010-12-30 12:30:26.000000000 +0100
+--- src/term.c 2010-12-30 12:14:48.000000000 +0100
+***************
+*** 3053,3062 ****
+      int              old_Rows = Rows;
+      int              old_Columns = Columns;
+  
+!     (void)ui_get_shellsize();
+!     check_shellsize();
+!     if (old_Rows != Rows || old_Columns != Columns)
+!      shell_resized();
+  }
+  
+  /*
+--- 3053,3065 ----
+      int              old_Rows = Rows;
+      int              old_Columns = Columns;
+  
+!     if (!exiting)
+!     {
+!      (void)ui_get_shellsize();
+!      check_shellsize();
+!      if (old_Rows != Rows || old_Columns != Columns)
+!          shell_resized();
+!     }
+  }
+  
+  /*
+*** ../vim-7.3.091/src/version.c       2010-12-30 12:30:26.000000000 +0100
+--- src/version.c      2010-12-30 14:47:04.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     92,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+57. You begin to wonder how on earth your service provider is allowed to call
+    200 hours per month "unlimited."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.093.patch0 b/vim/patches/vim-7.3.093.patch0
new file mode 100644 (file)
index 0000000..9bf0fe8
--- /dev/null
@@ -0,0 +1,201 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.093
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.093
+Problem:    New DLL dependencies in MingW with gcc 4.5.0.
+Solution:   Add STATIC_STDCPLUS, LDFLAGS and split up WINDRES. (Guopeng Wen)
+Files:      src/GvimExt/Make_ming.mak, src/Make_ming.mak
+
+
+*** ../vim-7.3.092/src/GvimExt/Make_ming.mak   2010-09-29 18:42:25.000000000 +0200
+--- src/GvimExt/Make_ming.mak  2010-12-30 14:42:51.000000000 +0100
+***************
+*** 17,22 ****
+--- 17,33 ----
+  # check also the executables
+  MINGWOLD = no
+  
++ # Link against the shared versions of libgcc/libstdc++ by default.  Set
++ # STATIC_STDCPLUS to "yes" to link against static versions instead.
++ STATIC_STDCPLUS=no
++ #STATIC_STDCPLUS=yes
++ 
++ # Note: -static-libstdc++ is not available until gcc 4.5.x.
++ LDFLAGS += -shared
++ ifeq (yes, $(STATIC_STDCPLUS))
++ LDFLAGS += -static-libgcc -static-libstdc++
++ endif
++ 
+  ifeq ($(CROSS),yes)
+  DEL = rm
+  ifeq ($(MINGWOLD),yes)
+***************
+*** 33,39 ****
+  endif
+  endif
+  CXX := $(CROSS_COMPILE)g++
+! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CXX) -E -xc" -DRC_INVOKED
+  LIBS :=  -luuid
+  RES  := gvimext.res
+  DEFFILE = gvimext_ming.def
+--- 44,52 ----
+  endif
+  endif
+  CXX := $(CROSS_COMPILE)g++
+! WINDRES := $(CROSS_COMPILE)windres
+! WINDRES_CXX = $(CXX)
+! WINDRES_FLAGS = --preprocessor="$(WINDRES_CXX) -E -xc" -DRC_INVOKED
+  LIBS :=  -luuid
+  RES  := gvimext.res
+  DEFFILE = gvimext_ming.def
+***************
+*** 46,52 ****
+  all: all-before $(DLL) all-after
+  
+  $(DLL): $(OBJ) $(RES) $(DEFFILE)
+!      $(CXX) -shared $(CXXFLAGS) -s -o $@ \
+               -Wl,--enable-auto-image-base \
+               -Wl,--enable-auto-import \
+               -Wl,--whole-archive \
+--- 59,65 ----
+  all: all-before $(DLL) all-after
+  
+  $(DLL): $(OBJ) $(RES) $(DEFFILE)
+!      $(CXX) $(LDFLAGS) $(CXXFLAGS) -s -o $@ \
+               -Wl,--enable-auto-image-base \
+               -Wl,--enable-auto-import \
+               -Wl,--whole-archive \
+***************
+*** 58,64 ****
+       $(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
+  
+  $(RES): gvimext_ming.rc
+!      $(WINDRES) --input-format=rc --output-format=coff -DMING $? -o $@
+  
+  clean: clean-custom
+       -$(DEL)  $(OBJ) $(RES) $(DLL)
+--- 71,77 ----
+       $(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
+  
+  $(RES): gvimext_ming.rc
+!      $(WINDRES) $(WINDRES_FLAGS) --input-format=rc --output-format=coff -DMING $? -o $@
+  
+  clean: clean-custom
+       -$(DEL)  $(OBJ) $(RES) $(DLL)
+*** ../vim-7.3.092/src/Make_ming.mak   2010-11-03 21:59:23.000000000 +0100
+--- src/Make_ming.mak  2010-12-30 14:42:51.000000000 +0100
+***************
+*** 56,61 ****
+--- 56,67 ----
+  NETBEANS=$(GUI)
+  
+  
++ # Link against the shared version of libstdc++ by default.  Set
++ # STATIC_STDCPLUS to "yes" to link against static version instead.
++ ifndef STATIC_STDCPLUS
++ STATIC_STDCPLUS=no
++ endif
++ 
+  # If the user doesn't want gettext, undefine it.
+  ifeq (no, $(GETTEXT))
+  GETTEXT=
+***************
+*** 309,320 ****
+  endif
+  endif
+  CC := $(CROSS_COMPILE)gcc
+! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CC) -E -xc" -DRC_INVOKED
+  
+  #>>>>> end of choices
+  ###########################################################################
+  
+  CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
+  
+  ifdef GETTEXT
+  DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
+--- 315,328 ----
+  endif
+  endif
+  CC := $(CROSS_COMPILE)gcc
+! WINDRES := $(CROSS_COMPILE)windres
+! WINDRES_CC = $(CC)
+  
+  #>>>>> end of choices
+  ###########################################################################
+  
+  CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
++ WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
+  
+  ifdef GETTEXT
+  DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
+***************
+*** 577,584 ****
+  endif
+  
+  ifeq (yes, $(OLE))
+! LIB += -loleaut32 -lstdc++
+  OBJ += $(OUTDIR)/if_ole.o
+  endif
+  
+  ifeq (yes, $(MBYTE))
+--- 585,597 ----
+  endif
+  
+  ifeq (yes, $(OLE))
+! LIB += -loleaut32
+  OBJ += $(OUTDIR)/if_ole.o
++ ifeq (yes, $(STATIC_STDCPLUS))
++ LIB += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
++ else
++ LIB += -lstdc++
++ endif
+  endif
+  
+  ifeq (yes, $(MBYTE))
+***************
+*** 656,665 ****
+       $(CC) -c $(CFLAGS) $< -o $@
+  
+  $(OUTDIR)/vimres.res: vim.rc version.h gui_w32_rc.h
+!      $(WINDRES) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
+  
+  $(OUTDIR)/vimrc.o: $(OUTDIR)/vimres.res
+!      $(WINDRES) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
+  
+  $(OUTDIR):
+       $(MKDIR) $(OUTDIR)
+--- 669,678 ----
+       $(CC) -c $(CFLAGS) $< -o $@
+  
+  $(OUTDIR)/vimres.res: vim.rc version.h gui_w32_rc.h
+!      $(WINDRES) $(WINDRES_FLAGS) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
+  
+  $(OUTDIR)/vimrc.o: $(OUTDIR)/vimres.res
+!      $(WINDRES) $(WINDRES_FLAGS) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
+  
+  $(OUTDIR):
+       $(MKDIR) $(OUTDIR)
+*** ../vim-7.3.092/src/version.c       2010-12-30 14:47:32.000000000 +0100
+--- src/version.c      2010-12-30 14:48:34.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     93,
+  /**/
+
+-- 
+Creating the world with Emacs:   M-x let-there-be-light
+Creating the world with Vim:     :make world
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.094.patch0 b/vim/patches/vim-7.3.094.patch0
new file mode 100644 (file)
index 0000000..e95122b
--- /dev/null
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.094
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.094
+Problem:    Using abs() requires type cast to int.
+Solution:   Use labs() so that the value remains long. (Hong Xu)
+Files:     src/screen.c
+
+
+*** ../vim-7.3.093/src/screen.c        2010-12-08 19:56:52.000000000 +0100
+--- src/screen.c       2010-12-30 14:54:08.000000000 +0100
+***************
+*** 2317,2323 ****
+               num = (long)lnum;
+           else
+               /* 'relativenumber', don't use negative numbers */
+!              num = (long)abs((int)get_cursor_rel_lnum(wp, lnum));
+  
+           sprintf((char *)buf, "%*ld ", w, num);
+  #ifdef FEAT_RIGHTLEFT
+--- 2317,2323 ----
+               num = (long)lnum;
+           else
+               /* 'relativenumber', don't use negative numbers */
+!              num = labs((long)get_cursor_rel_lnum(wp, lnum));
+  
+           sprintf((char *)buf, "%*ld ", w, num);
+  #ifdef FEAT_RIGHTLEFT
+***************
+*** 3475,3482 ****
+                           num = (long)lnum;
+                       else
+                           /* 'relativenumber', don't use negative numbers */
+!                          num = (long)abs((int)get_cursor_rel_lnum(wp,
+!                                                                  lnum));
+  
+                       sprintf((char *)extra, "%*ld ",
+                                               number_width(wp), num);
+--- 3475,3481 ----
+                           num = (long)lnum;
+                       else
+                           /* 'relativenumber', don't use negative numbers */
+!                          num = labs((long)get_cursor_rel_lnum(wp, lnum));
+  
+                       sprintf((char *)extra, "%*ld ",
+                                               number_width(wp), num);
+*** ../vim-7.3.093/src/version.c       2010-12-30 14:50:46.000000000 +0100
+--- src/version.c      2010-12-30 14:56:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     94,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+58. You turn on your computer and turn off your wife.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.095.patch0 b/vim/patches/vim-7.3.095.patch0
new file mode 100644 (file)
index 0000000..2ea3492
--- /dev/null
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.095
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.095
+Problem:    Win32: In Chinese tear-off menu doesn't work. (Weasley)
+Solution:   Use menu_name_equal().  (Alex Jakushev)
+Files:     src/menu.c
+
+
+*** ../vim-7.3.094/src/menu.c  2010-08-15 21:57:25.000000000 +0200
+--- src/menu.c 2011-01-04 17:41:38.000000000 +0100
+***************
+*** 1512,1519 ****
+  {
+  #ifdef FEAT_MULTI_LANG
+      if (menu->en_name != NULL
+!          && (menu_namecmp(name,menu->en_name)
+!              || menu_namecmp(name,menu->en_dname)))
+       return TRUE;
+  #endif
+      return menu_namecmp(name, menu->name) || menu_namecmp(name, menu->dname);
+--- 1512,1519 ----
+  {
+  #ifdef FEAT_MULTI_LANG
+      if (menu->en_name != NULL
+!          && (menu_namecmp(name, menu->en_name)
+!              || menu_namecmp(name, menu->en_dname)))
+       return TRUE;
+  #endif
+      return menu_namecmp(name, menu->name) || menu_namecmp(name, menu->dname);
+***************
+*** 2342,2348 ****
+  
+       while (menu != NULL)
+       {
+!          if (STRCMP(name, menu->name) == 0 || STRCMP(name, menu->dname) == 0)
+           {
+               if (menu->children == NULL)
+               {
+--- 2342,2348 ----
+  
+       while (menu != NULL)
+       {
+!          if (menu_name_equal(name, menu))
+           {
+               if (menu->children == NULL)
+               {
+*** ../vim-7.3.094/src/version.c       2010-12-30 14:57:03.000000000 +0100
+--- src/version.c      2011-01-04 17:43:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     95,
+  /**/
+
+-- 
+If your nose runs, and your feet smell, you might be upside down.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.096.patch0 b/vim/patches/vim-7.3.096.patch0
new file mode 100644 (file)
index 0000000..b8b541b
--- /dev/null
@@ -0,0 +1,97 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.096
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.096
+Problem:    "gvim -nb" is not interruptable.  Leaking file descriptor on
+           netbeans connection error.
+Solution:   Check for CTRL-C typed.  Free file descriptor.  (Xavier de Gaye)
+Files:     src/netbeans.c
+
+
+*** ../vim-7.3.095/src/netbeans.c      2010-12-24 14:00:09.000000000 +0100
+--- src/netbeans.c     2011-01-04 18:00:35.000000000 +0100
+***************
+*** 321,326 ****
+--- 321,327 ----
+      {
+       nbdebug(("error in gethostbyname() in netbeans_connect()\n"));
+       PERROR("gethostbyname() in netbeans_connect()");
++      sock_close(sd);
+       goto theend;
+      }
+      memcpy((char *)&server.sin_addr, host->h_addr, host->h_length);
+***************
+*** 370,384 ****
+                                                        || (errno == EINTR)))
+               {
+                   nbdebug(("retrying...\n"));
+!                  sleep(5);
+!                  if (!doabort)
+                   {
+!                      ui_breakcheck();
+!                      if (got_int)
+!                      {
+!                          errno = EINTR;
+!                          break;
+!                      }
+                   }
+                   if (connect(sd, (struct sockaddr *)&server,
+                                                        sizeof(server)) == 0)
+--- 371,382 ----
+                                                        || (errno == EINTR)))
+               {
+                   nbdebug(("retrying...\n"));
+!                  mch_delay(3000L, TRUE);
+!                  ui_breakcheck();
+!                  if (got_int)
+                   {
+!                      errno = EINTR;
+!                      break;
+                   }
+                   if (connect(sd, (struct sockaddr *)&server,
+                                                        sizeof(server)) == 0)
+***************
+*** 393,398 ****
+--- 391,397 ----
+                   /* Get here when the server can't be found. */
+                   nbdebug(("Cannot connect to Netbeans #2\n"));
+                   PERROR(_("Cannot connect to Netbeans #2"));
++                  sock_close(sd);
+                   if (doabort)
+                       getout(1);
+                   goto theend;
+***************
+*** 403,408 ****
+--- 402,408 ----
+       {
+           nbdebug(("Cannot connect to Netbeans\n"));
+           PERROR(_("Cannot connect to Netbeans"));
++          sock_close(sd);
+           if (doabort)
+               getout(1);
+           goto theend;
+*** ../vim-7.3.095/src/version.c       2011-01-04 17:49:25.000000000 +0100
+--- src/version.c      2011-01-04 18:09:46.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     96,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+85. Choice between paying Compuserve bill and paying for kids education
+    is a no brainer -- although a bit painful for your kids.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.097.patch0 b/vim/patches/vim-7.3.097.patch0
new file mode 100644 (file)
index 0000000..2ee20a3
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.097
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.097
+Problem:    Using ":call" inside "if 0" does not see that a function returns a
+           Dict and gives error for "." as string concatenation.
+Solution:   Use eval0() to skip over the expression.  (Yasuhiro Matsumoto)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.096/src/eval.c  2010-12-17 18:06:00.000000000 +0100
+--- src/eval.c 2011-01-04 18:54:27.000000000 +0100
+***************
+*** 3335,3340 ****
+--- 3335,3349 ----
+      int              failed = FALSE;
+      funcdict_T       fudi;
+  
++     if (eap->skip)
++     {
++      /* trans_function_name() doesn't work well when skipping, use eval0()
++       * instead to skip to any following command, e.g. for:
++       *   :if 0 | call dict.foo().bar() | endif  */
++      eval0(eap->arg, &rettv, &eap->nextcmd, FALSE);
++      return;
++     }
++ 
+      tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi);
+      if (fudi.fd_newkey != NULL)
+      {
+*** ../vim-7.3.096/src/version.c       2011-01-04 18:11:39.000000000 +0100
+--- src/version.c      2011-01-04 19:00:21.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     97,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+86. E-mail Deficiency Depression (EDD) forces you to e-mail yourself.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.098.patch0 b/vim/patches/vim-7.3.098.patch0
new file mode 100644 (file)
index 0000000..9e6435e
--- /dev/null
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.098
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.098
+Problem:    Function that ignores error still causes called_emsg to be set.
+           E.g. when expand() fails the status line is disabled.
+Solution:   Move check for emsg_not_now() up. (James Vega)
+Files:     src/message.c
+
+
+*** ../vim-7.3.097/src/message.c       2010-10-20 21:22:17.000000000 +0200
+--- src/message.c      2011-01-04 19:19:04.000000000 +0100
+***************
+*** 569,574 ****
+--- 569,578 ----
+      int              severe;
+  #endif
+  
++     /* Skip this if not giving error messages at the moment. */
++     if (emsg_not_now())
++      return TRUE;
++ 
+      called_emsg = TRUE;
+      ex_exitval = 1;
+  
+***************
+*** 581,590 ****
+      emsg_severe = FALSE;
+  #endif
+  
+-     /* Skip this if not giving error messages at the moment. */
+-     if (emsg_not_now())
+-      return TRUE;
+- 
+      if (!emsg_off || vim_strchr(p_debug, 't') != NULL)
+      {
+  #ifdef FEAT_EVAL
+--- 585,590 ----
+*** ../vim-7.3.097/src/version.c       2011-01-04 19:03:22.000000000 +0100
+--- src/version.c      2011-01-04 19:24:30.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     98,
+  /**/
+
+-- 
+Ed's Radiator Shop: The Best Place in Town to Take a Leak.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.099.patch0 b/vim/patches/vim-7.3.099.patch0
new file mode 100644 (file)
index 0000000..84aa2a3
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.099
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.099
+Problem:    Crash when splitting a window with zero height. (Yukihiro
+           Nakadaira)
+Solution:   Don't set the fraction in a window with zero height.
+Files:     src/window.c
+
+
+*** ../vim-7.3.098/src/window.c        2010-12-17 17:35:05.000000000 +0100
+--- src/window.c       2011-01-08 14:41:32.000000000 +0100
+***************
+*** 986,992 ****
+  
+      /* Set w_fraction now so that the cursor keeps the same relative
+       * vertical position. */
+!     set_fraction(oldwin);
+      wp->w_fraction = oldwin->w_fraction;
+  
+  #ifdef FEAT_VERTSPLIT
+--- 986,993 ----
+  
+      /* Set w_fraction now so that the cursor keeps the same relative
+       * vertical position. */
+!     if (oldwin->w_height > 0)
+!      set_fraction(oldwin);
+      wp->w_fraction = oldwin->w_fraction;
+  
+  #ifdef FEAT_VERTSPLIT
+*** ../vim-7.3.098/src/version.c       2011-01-04 19:25:46.000000000 +0100
+--- src/version.c      2011-01-08 14:44:02.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     99,
+  /**/
+
+-- 
+From "know your smileys":
+ 8-O   "Omigod!!" (done "rm -rf *" ?)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.100.patch0 b/vim/patches/vim-7.3.100.patch0
new file mode 100644 (file)
index 0000000..2b6e8b0
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.100
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.100 
+Problem:    When using :normal v:count isn't set. 
+Solution:   Call normal_cmd() with toplevel set to TRUE. 
+Files:      src/ex_docmd.c 
+    
+
+*** ../vim-7.3.099/src/ex_docmd.c      2010-12-02 16:01:23.000000000 +0100
+--- src/ex_docmd.c     2011-01-06 17:23:43.000000000 +0100
+***************
+*** 9310,9316 ****
+                                                                 && !got_int)
+      {
+       update_topline_cursor();
+!      normal_cmd(&oa, FALSE); /* execute a Normal mode cmd */
+      }
+  }
+  #endif
+--- 9310,9316 ----
+                                                                 && !got_int)
+      {
+       update_topline_cursor();
+!      normal_cmd(&oa, TRUE);  /* execute a Normal mode cmd */
+      }
+  }
+  #endif
+*** ../vim-7.3.099/src/version.c       2011-01-08 14:45:57.000000000 +0100
+--- src/version.c      2011-01-17 19:49:07.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     100,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+109. You actually read -- and enjoy -- lists like this.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.101.patch0 b/vim/patches/vim-7.3.101.patch0
new file mode 100644 (file)
index 0000000..8869baf
--- /dev/null
@@ -0,0 +1,92 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.1
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.101
+Problem:    ino_t defined with wrong size.
+Solution:   Move including auto/config.h before other includes. (Marius
+            Geminas)
+Files:      src/if_ruby.c, src/if_lua.c
+               
+
+*** ../vim-7.3.100/src/if_ruby.c       2010-12-24 13:39:29.000000000 +0100
+--- src/if_ruby.c      2011-01-09 14:43:14.000000000 +0100
+***************
+*** 11,23 ****
+   * See README.txt for an overview of the Vim source code.
+   */
+  
+- #include <stdio.h>
+- #include <string.h>
+- 
+  #ifdef HAVE_CONFIG_H
+  # include "auto/config.h"
+  #endif
+  
+  #ifdef _WIN32
+  # if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
+  #   define NT
+--- 11,23 ----
+   * See README.txt for an overview of the Vim source code.
+   */
+  
+  #ifdef HAVE_CONFIG_H
+  # include "auto/config.h"
+  #endif
+  
++ #include <stdio.h>
++ #include <string.h>
++ 
+  #ifdef _WIN32
+  # if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
+  #   define NT
+*** ../vim-7.3.100/src/if_lua.c        2010-10-23 14:02:48.000000000 +0200
+--- src/if_lua.c       2011-01-09 14:46:46.000000000 +0100
+***************
+*** 9,20 ****
+   * See README.txt for an overview of the Vim source code.
+   */
+  
+! #include <stdio.h>
+! #include <string.h>
+  #include <lua.h>
+  #include <lualib.h>
+  #include <lauxlib.h>
+- #include "vim.h"
+  
+  /* Only do the following when the feature is enabled.  Needed for "make
+   * depend". */
+--- 9,19 ----
+   * See README.txt for an overview of the Vim source code.
+   */
+  
+! #include "vim.h"
+! 
+  #include <lua.h>
+  #include <lualib.h>
+  #include <lauxlib.h>
+  
+  /* Only do the following when the feature is enabled.  Needed for "make
+   * depend". */
+*** ../vim-7.3.100/src/version.c       2011-01-17 19:50:01.000000000 +0100
+--- src/version.c      2011-01-17 19:51:40.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     101,
+  /**/
+
+-- 
+In a world without walls and borders, who needs windows and gates?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.102.patch0 b/vim/patches/vim-7.3.102.patch0
new file mode 100644 (file)
index 0000000..785e597
--- /dev/null
@@ -0,0 +1,615 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.102
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.102
+Problem:    When using ":make", typing the next command and then getting the
+            "reload" prompt the next command is (partly) eaten by the reload
+            prompt.
+Solution:   Accept ':' as a special character at the reload prompt to accept
+            the default choice and execute the command.
+Files:      src/eval.c, src/fileio.c, src/gui.c, src/gui_xmdlg.c,
+            src/memline.c, src/message.c, src/proto/message.pro,
+            src/gui_athena.c, src/gui_gtk.c, src/gui_mac.c, src/gui_motif.c,
+            src/gui_photon.c, src/gui_w16.c, src/gui_w32.c, src/os_mswin.c
+            src/proto/gui_athena.pro, src/proto/gui_gtk.pro,
+            src/proto/gui_mac.pro, src/proto/gui_motif.pro,
+            src/proto/gui_photon.pro, src/proto/gui_w16.pro,
+            src/proto/gui_w32.pro
+
+
+*** ../vim-7.3.101/src/eval.c  2011-01-04 19:03:22.000000000 +0100
+--- src/eval.c 2011-01-16 00:14:21.000000000 +0100
+***************
+*** 9323,9329 ****
+  
+      if (!error)
+       rettv->vval.v_number = do_dialog(type, NULL, message, buttons,
+!                                                                 def, NULL);
+  #endif
+  }
+  
+--- 9323,9329 ----
+  
+      if (!error)
+       rettv->vval.v_number = do_dialog(type, NULL, message, buttons,
+!                                                          def, NULL, FALSE);
+  #endif
+  }
+  
+***************
+*** 12744,12750 ****
+           IObuff[0] = NUL;
+       if (message != NULL && defstr != NULL
+               && do_dialog(VIM_QUESTION, NULL, message,
+!                              (char_u *)_("&OK\n&Cancel"), 1, IObuff) == 1)
+           rettv->vval.v_string = vim_strsave(IObuff);
+       else
+       {
+--- 12744,12750 ----
+           IObuff[0] = NUL;
+       if (message != NULL && defstr != NULL
+               && do_dialog(VIM_QUESTION, NULL, message,
+!                        (char_u *)_("&OK\n&Cancel"), 1, IObuff, FALSE) == 1)
+           rettv->vval.v_string = vim_strsave(IObuff);
+       else
+       {
+*** ../vim-7.3.101/src/fileio.c        2010-12-17 18:06:00.000000000 +0100
+--- src/fileio.c       2011-01-16 00:14:37.000000000 +0100
+***************
+*** 7008,7014 ****
+                   STRCAT(tbuf, mesg2);
+               }
+               if (do_dialog(VIM_WARNING, (char_u *)_("Warning"), tbuf,
+!                              (char_u *)_("&OK\n&Load File"), 1, NULL) == 2)
+                   reload = TRUE;
+           }
+           else
+--- 7008,7014 ----
+                   STRCAT(tbuf, mesg2);
+               }
+               if (do_dialog(VIM_WARNING, (char_u *)_("Warning"), tbuf,
+!                        (char_u *)_("&OK\n&Load File"), 1, NULL, TRUE) == 2)
+                   reload = TRUE;
+           }
+           else
+*** ../vim-7.3.101/src/gui.c   2010-10-20 19:17:43.000000000 +0200
+--- src/gui.c  2011-01-16 00:14:56.000000000 +0100
+***************
+*** 4903,4909 ****
+               if (STRLEN(p) > 2000)
+                   STRCPY(p + 2000 - 14, "...(truncated)");
+               (void)do_dialog(VIM_ERROR, (char_u *)_("Error"),
+!                                            p, (char_u *)_("&Ok"), 1, NULL);
+               break;
+           }
+       ga_clear(&error_ga);
+--- 4903,4909 ----
+               if (STRLEN(p) > 2000)
+                   STRCPY(p + 2000 - 14, "...(truncated)");
+               (void)do_dialog(VIM_ERROR, (char_u *)_("Error"),
+!                                     p, (char_u *)_("&Ok"), 1, NULL, FALSE);
+               break;
+           }
+       ga_clear(&error_ga);
+*** ../vim-7.3.101/src/gui_xmdlg.c     2010-08-15 21:57:32.000000000 +0200
+--- src/gui_xmdlg.c    2011-01-16 00:15:33.000000000 +0100
+***************
+*** 688,694 ****
+           do_dialog(VIM_ERROR,
+                   (char_u *)_("Error"),
+                   (char_u *)_("Invalid font specification"),
+!                  (char_u *)_("&Dismiss"), 1, NULL);
+  
+       return True;
+      }
+--- 688,694 ----
+           do_dialog(VIM_ERROR,
+                   (char_u *)_("Error"),
+                   (char_u *)_("Invalid font specification"),
+!                  (char_u *)_("&Dismiss"), 1, NULL, FALSE);
+  
+       return True;
+      }
+***************
+*** 807,813 ****
+       do_dialog(VIM_ERROR,
+               (char_u *)_("Error"),
+               (char_u *)_("Invalid font specification"),
+!              (char_u *)_("&Dismiss"), 1, NULL);
+       XFreeFontNames(name);
+      }
+      else
+--- 807,813 ----
+       do_dialog(VIM_ERROR,
+               (char_u *)_("Error"),
+               (char_u *)_("Invalid font specification"),
+!              (char_u *)_("&Dismiss"), 1, NULL, FALSE);
+       XFreeFontNames(name);
+      }
+      else
+*** ../vim-7.3.101/src/memline.c       2010-12-17 20:23:56.000000000 +0100
+--- src/memline.c      2011-01-16 00:15:47.000000000 +0100
+***************
+*** 4516,4522 ****
+                                   process_still_running
+                                       ? (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Quit\n&Abort") :
+  # endif
+!                                      (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Delete it\n&Quit\n&Abort"), 1, NULL);
+  
+  # if defined(UNIX) || defined(__EMX__) || defined(VMS)
+                       if (process_still_running && choice >= 4)
+--- 4516,4522 ----
+                                   process_still_running
+                                       ? (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Quit\n&Abort") :
+  # endif
+!                                      (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Delete it\n&Quit\n&Abort"), 1, NULL, FALSE);
+  
+  # if defined(UNIX) || defined(__EMX__) || defined(VMS)
+                       if (process_still_running && choice >= 4)
+*** ../vim-7.3.101/src/message.c       2011-01-04 19:25:46.000000000 +0100
+--- src/message.c      2011-01-17 19:57:30.000000000 +0100
+***************
+*** 3315,3321 ****
+   * different letter.
+   */
+      int
+! do_dialog(type, title, message, buttons, dfltbutton, textfield)
+      int              type UNUSED;
+      char_u   *title UNUSED;
+      char_u   *message;
+--- 3315,3321 ----
+   * different letter.
+   */
+      int
+! do_dialog(type, title, message, buttons, dfltbutton, textfield, ex_cmd)
+      int              type UNUSED;
+      char_u   *title UNUSED;
+      char_u   *message;
+***************
+*** 3323,3328 ****
+--- 3323,3330 ----
+      int              dfltbutton;
+      char_u   *textfield UNUSED;      /* IObuff for inputdialog(), NULL
+                                          otherwise */
++     int              ex_cmd;     /* when TRUE pressing : accepts default and starts
++                             Ex command */
+  {
+      int              oldState;
+      int              retval = 0;
+***************
+*** 3341,3347 ****
+      if (gui.in_use && vim_strchr(p_go, GO_CONDIALOG) == NULL)
+      {
+       c = gui_mch_dialog(type, title, message, buttons, dfltbutton,
+!                                                                 textfield);
+       /* avoid a hit-enter prompt without clearing the cmdline */
+       need_wait_return = FALSE;
+       emsg_on_display = FALSE;
+--- 3343,3349 ----
+      if (gui.in_use && vim_strchr(p_go, GO_CONDIALOG) == NULL)
+      {
+       c = gui_mch_dialog(type, title, message, buttons, dfltbutton,
+!                                                         textfield, ex_cmd);
+       /* avoid a hit-enter prompt without clearing the cmdline */
+       need_wait_return = FALSE;
+       emsg_on_display = FALSE;
+***************
+*** 3388,3393 ****
+--- 3390,3402 ----
+           default:            /* Could be a hotkey? */
+               if (c < 0)      /* special keys are ignored here */
+                   continue;
++              if (c == ':' && ex_cmd)
++              {
++                  retval = dfltbutton;
++                  ins_char_typebuf(':');
++                  break;
++              }
++ 
+               /* Make the character lowercase, as chars in "hotkeys" are. */
+               c = MB_TOLOWER(c);
+               retval = 1;
+***************
+*** 3661,3667 ****
+      if (do_dialog(type,
+               title == NULL ? (char_u *)_("Question") : title,
+               message,
+!              (char_u *)_("&Yes\n&No"), dflt, NULL) == 1)
+       return VIM_YES;
+      return VIM_NO;
+  }
+--- 3670,3676 ----
+      if (do_dialog(type,
+               title == NULL ? (char_u *)_("Question") : title,
+               message,
+!              (char_u *)_("&Yes\n&No"), dflt, NULL, FALSE) == 1)
+       return VIM_YES;
+      return VIM_NO;
+  }
+***************
+*** 3676,3682 ****
+      switch (do_dialog(type,
+               title == NULL ? (char_u *)_("Question") : title,
+               message,
+!              (char_u *)_("&Yes\n&No\n&Cancel"), dflt, NULL))
+      {
+       case 1: return VIM_YES;
+       case 2: return VIM_NO;
+--- 3685,3691 ----
+      switch (do_dialog(type,
+               title == NULL ? (char_u *)_("Question") : title,
+               message,
+!              (char_u *)_("&Yes\n&No\n&Cancel"), dflt, NULL, FALSE))
+      {
+       case 1: return VIM_YES;
+       case 2: return VIM_NO;
+***************
+*** 3695,3701 ****
+               title == NULL ? (char_u *)"Question" : title,
+               message,
+               (char_u *)_("&Yes\n&No\nSave &All\n&Discard All\n&Cancel"),
+!                                                                dflt, NULL))
+      {
+       case 1: return VIM_YES;
+       case 2: return VIM_NO;
+--- 3704,3710 ----
+               title == NULL ? (char_u *)"Question" : title,
+               message,
+               (char_u *)_("&Yes\n&No\nSave &All\n&Discard All\n&Cancel"),
+!                                                         dflt, NULL, FALSE))
+      {
+       case 1: return VIM_YES;
+       case 2: return VIM_NO;
+*** ../vim-7.3.101/src/proto/message.pro       2010-10-20 21:22:17.000000000 +0200
+--- src/proto/message.pro      2011-01-16 00:22:36.000000000 +0100
+***************
+*** 64,70 ****
+  int verbose_open __ARGS((void));
+  void give_warning __ARGS((char_u *message, int hl));
+  void msg_advance __ARGS((int col));
+! int do_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
+  void display_confirm_msg __ARGS((void));
+  int vim_dialog_yesno __ARGS((int type, char_u *title, char_u *message, int dflt));
+  int vim_dialog_yesnocancel __ARGS((int type, char_u *title, char_u *message, int dflt));
+--- 64,70 ----
+  int verbose_open __ARGS((void));
+  void give_warning __ARGS((char_u *message, int hl));
+  void msg_advance __ARGS((int col));
+! int do_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
+  void display_confirm_msg __ARGS((void));
+  int vim_dialog_yesno __ARGS((int type, char_u *title, char_u *message, int dflt));
+  int vim_dialog_yesnocancel __ARGS((int type, char_u *title, char_u *message, int dflt));
+*** ../vim-7.3.101/src/gui_athena.c    2010-08-15 21:57:25.000000000 +0200
+--- src/gui_athena.c   2011-01-16 00:18:47.000000000 +0100
+***************
+*** 2117,2129 ****
+  }
+  
+      int
+! gui_mch_dialog(type, title, message, buttons, dfltbutton, textfield)
+      int              type UNUSED;
+      char_u   *title;
+      char_u   *message;
+      char_u   *buttons;
+      int              dfltbutton UNUSED;
+      char_u   *textfield;
+  {
+      char_u           *buts;
+      char_u           *p, *next;
+--- 2117,2130 ----
+  }
+  
+      int
+! gui_mch_dialog(type, title, message, buttons, dfltbutton, textfield, ex_cmd)
+      int              type UNUSED;
+      char_u   *title;
+      char_u   *message;
+      char_u   *buttons;
+      int              dfltbutton UNUSED;
+      char_u   *textfield;
++     int              ex_cmd UNUSED;
+  {
+      char_u           *buts;
+      char_u           *p, *next;
+*** ../vim-7.3.101/src/gui_gtk.c       2010-12-08 13:11:15.000000000 +0100
+--- src/gui_gtk.c      2011-01-16 00:24:44.000000000 +0100
+***************
+*** 1268,1274 ****
+              char_u   *message,   /* message text */
+              char_u   *buttons,   /* names of buttons */
+              int      def_but,    /* default button */
+!             char_u   *textfield) /* text for textfield or NULL */
+  {
+      GtkWidget        *dialog;
+      GtkWidget        *entry = NULL;
+--- 1268,1275 ----
+              char_u   *message,   /* message text */
+              char_u   *buttons,   /* names of buttons */
+              int      def_but,    /* default button */
+!             char_u   *textfield, /* text for textfield or NULL */
+!             int      ex_cmd UNUSED)
+  {
+      GtkWidget        *dialog;
+      GtkWidget        *entry = NULL;
+*** ../vim-7.3.101/src/gui_mac.c       2010-09-21 17:34:26.000000000 +0200
+--- src/gui_mac.c      2011-01-16 00:19:52.000000000 +0100
+***************
+*** 5583,5589 ****
+      char_u   *message,
+      char_u   *buttons,
+      int              dfltbutton,
+!     char_u   *textfield)
+  {
+      Handle   buttonDITL;
+      Handle   iconDITL;
+--- 5583,5590 ----
+      char_u   *message,
+      char_u   *buttons,
+      int              dfltbutton,
+!     char_u   *textfield,
+!     int              ex_cmd)
+  {
+      Handle   buttonDITL;
+      Handle   iconDITL;
+*** ../vim-7.3.101/src/gui_motif.c     2010-08-15 21:57:28.000000000 +0200
+--- src/gui_motif.c    2011-01-16 00:20:14.000000000 +0100
+***************
+*** 2549,2561 ****
+  #endif
+  
+      int
+! gui_mch_dialog(type, title, message, button_names, dfltbutton, textfield)
+      int              type UNUSED;
+      char_u   *title;
+      char_u   *message;
+      char_u   *button_names;
+      int              dfltbutton;
+      char_u   *textfield;             /* buffer of size IOSIZE */
+  {
+      char_u           *buts;
+      char_u           *p, *next;
+--- 2549,2562 ----
+  #endif
+  
+      int
+! gui_mch_dialog(type, title, message, button_names, dfltbutton, textfield, ex_cmd)
+      int              type UNUSED;
+      char_u   *title;
+      char_u   *message;
+      char_u   *button_names;
+      int              dfltbutton;
+      char_u   *textfield;             /* buffer of size IOSIZE */
++     int              ex_cmd UNUSED;
+  {
+      char_u           *buts;
+      char_u           *p, *next;
+*** ../vim-7.3.101/src/gui_photon.c    2010-08-15 21:57:27.000000000 +0200
+--- src/gui_photon.c   2011-01-16 00:20:28.000000000 +0100
+***************
+*** 1502,1508 ****
+       char_u  *message,
+       char_u  *buttons,
+       int     default_button,
+!      char_u  *textfield)
+  {
+      char_u   *str;
+      char_u   **button_array;
+--- 1502,1509 ----
+       char_u  *message,
+       char_u  *buttons,
+       int     default_button,
+!      char_u  *textfield,
+!      int     ex_cmd)
+  {
+      char_u   *str;
+      char_u   **button_array;
+*** ../vim-7.3.101/src/gui_w16.c       2010-08-15 21:57:28.000000000 +0200
+--- src/gui_w16.c      2011-01-16 00:20:48.000000000 +0100
+***************
+*** 1098,1104 ****
+      char_u   *message,
+      char_u   *buttons,
+      int               dfltbutton,
+!     char_u   *textfield)
+  {
+      FARPROC  dp;
+      LPWORD   p, pnumitems;
+--- 1098,1105 ----
+      char_u   *message,
+      char_u   *buttons,
+      int               dfltbutton,
+!     char_u   *textfield,
+!     int              ex_cmd)
+  {
+      FARPROC  dp;
+      LPWORD   p, pnumitems;
+*** ../vim-7.3.101/src/gui_w32.c       2010-10-27 12:33:12.000000000 +0200
+--- src/gui_w32.c      2011-01-16 00:21:08.000000000 +0100
+***************
+*** 3005,3011 ****
+      char_u   *message,
+      char_u   *buttons,
+      int               dfltbutton,
+!     char_u   *textfield)
+  {
+      WORD     *p, *pdlgtemplate, *pnumitems;
+      DWORD    *dwp;
+--- 3005,3012 ----
+      char_u   *message,
+      char_u   *buttons,
+      int               dfltbutton,
+!     char_u   *textfield,
+!     int              ex_cmd)
+  {
+      WORD     *p, *pdlgtemplate, *pnumitems;
+      DWORD    *dwp;
+*** ../vim-7.3.101/src/os_mswin.c      2010-12-17 20:23:56.000000000 +0100
+--- src/os_mswin.c     2011-01-16 00:21:41.000000000 +0100
+***************
+*** 593,599 ****
+                                    gui.starting ? (char_u *)_("Message") :
+  #endif
+                                            (char_u *)_("Error"),
+!                                   p, (char_u *)_("&Ok"), 1, NULL);
+               break;
+           }
+       ga_clear(&error_ga);
+--- 593,599 ----
+                                    gui.starting ? (char_u *)_("Message") :
+  #endif
+                                            (char_u *)_("Error"),
+!                                   p, (char_u *)_("&Ok"), 1, NULL, FALSE);
+               break;
+           }
+       ga_clear(&error_ga);
+*** ../vim-7.3.101/src/proto/gui_athena.pro    2010-08-15 21:57:28.000000000 +0200
+--- src/proto/gui_athena.pro   2011-01-16 00:23:00.000000000 +0100
+***************
+*** 27,31 ****
+  void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
+  Window gui_x11_get_wid __ARGS((void));
+  char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
+  /* vim: set ft=c : */
+--- 27,31 ----
+  void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
+  Window gui_x11_get_wid __ARGS((void));
+  char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
+  /* vim: set ft=c : */
+*** ../vim-7.3.101/src/proto/gui_gtk.pro       2010-08-15 21:57:28.000000000 +0200
+--- src/proto/gui_gtk.pro      2011-01-16 00:22:57.000000000 +0100
+***************
+*** 13,19 ****
+  void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
+  char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+  char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield));
+  void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+  void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
+  void gui_mch_find_dialog __ARGS((exarg_T *eap));
+--- 13,19 ----
+  void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
+  char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+  char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield, int ex_cmd));
+  void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+  void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
+  void gui_mch_find_dialog __ARGS((exarg_T *eap));
+*** ../vim-7.3.101/src/proto/gui_mac.pro       2010-08-15 21:57:28.000000000 +0200
+--- src/proto/gui_mac.pro      2011-01-16 00:31:46.000000000 +0100
+***************
+*** 81,87 ****
+  int gui_mch_get_mouse_y __ARGS((void));
+  void gui_mch_setmouse __ARGS((int x, int y));
+  void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
+  char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+  void gui_mch_set_foreground __ARGS((void));
+  void gui_mch_show_tabline __ARGS((int showit));
+--- 81,87 ----
+  int gui_mch_get_mouse_y __ARGS((void));
+  void gui_mch_setmouse __ARGS((int x, int y));
+  void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
+  char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+  void gui_mch_set_foreground __ARGS((void));
+  void gui_mch_show_tabline __ARGS((int showit));
+*** ../vim-7.3.101/src/proto/gui_motif.pro     2010-08-15 21:57:28.000000000 +0200
+--- src/proto/gui_motif.pro    2011-01-16 00:22:58.000000000 +0100
+***************
+*** 29,35 ****
+  void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
+  Window gui_x11_get_wid __ARGS((void));
+  char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield));
+  void gui_mch_enable_footer __ARGS((int showit));
+  void gui_mch_set_footer __ARGS((char_u *s));
+  void gui_mch_show_toolbar __ARGS((int showit));
+--- 29,35 ----
+  void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
+  Window gui_x11_get_wid __ARGS((void));
+  char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield, int ex_cmd));
+  void gui_mch_enable_footer __ARGS((int showit));
+  void gui_mch_set_footer __ARGS((char_u *s));
+  void gui_mch_show_toolbar __ARGS((int showit));
+*** ../vim-7.3.101/src/proto/gui_photon.pro    2010-08-15 21:57:28.000000000 +0200
+--- src/proto/gui_photon.pro   2011-01-16 00:32:33.000000000 +0100
+***************
+*** 8,14 ****
+  void gui_mch_update __ARGS((void));
+  int gui_mch_wait_for_chars __ARGS((int wtime));
+  char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *default_name, char_u *ext, char_u *initdir, char_u *filter));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int default_button, char_u *textfield));
+  int gui_mch_get_winpos __ARGS((int *x, int *y));
+  void gui_mch_set_winpos __ARGS((int x, int y));
+  void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
+--- 8,14 ----
+  void gui_mch_update __ARGS((void));
+  int gui_mch_wait_for_chars __ARGS((int wtime));
+  char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *default_name, char_u *ext, char_u *initdir, char_u *filter));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int default_button, char_u *textfield, int ex_cmd));
+  int gui_mch_get_winpos __ARGS((int *x, int *y));
+  void gui_mch_set_winpos __ARGS((int x, int y));
+  void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
+*** ../vim-7.3.101/src/proto/gui_w16.pro       2010-08-15 21:57:28.000000000 +0200
+--- src/proto/gui_w16.pro      2011-01-16 00:34:36.000000000 +0100
+***************
+*** 74,79 ****
+  void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+  void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+  void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
+  void gui_mch_set_foreground __ARGS((void));
+  /* vim: set ft=c : */
+--- 74,79 ----
+  void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+  void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+  void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
+  void gui_mch_set_foreground __ARGS((void));
+  /* vim: set ft=c : */
+*** ../vim-7.3.101/src/proto/gui_w32.pro       2010-08-15 21:57:28.000000000 +0200
+--- src/proto/gui_w32.pro      2011-01-16 00:33:12.000000000 +0100
+***************
+*** 81,87 ****
+  void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+  void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+  void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
+  void gui_mch_set_foreground __ARGS((void));
+  void gui_mch_drawsign __ARGS((int row, int col, int typenr));
+  void *gui_mch_register_sign __ARGS((char_u *signfile));
+--- 81,87 ----
+  void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+  void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+  void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
+  void gui_mch_set_foreground __ARGS((void));
+  void gui_mch_drawsign __ARGS((int row, int col, int typenr));
+  void *gui_mch_register_sign __ARGS((char_u *signfile));
+*** ../vim-7.3.101/src/version.c       2011-01-17 19:53:20.000000000 +0100
+--- src/version.c      2011-01-17 20:05:02.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     102,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+110. You actually volunteer to become your employer's webmaster.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.103.patch0 b/vim/patches/vim-7.3.103.patch0
new file mode 100644 (file)
index 0000000..f9e086f
--- /dev/null
@@ -0,0 +1,145 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.103
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.103
+Problem:    Changing 'fileformat' and then using ":w" in an empty file sets
+            the 'modified' option.
+Solution:   In unchanged() don't ignore 'ff' for an empty file.
+Files:      src/misc1.c, src/option.c, src/proto/option.pro, src/undo.c
+
+
+*** ../vim-7.3.102/src/misc1.c 2010-12-30 12:30:26.000000000 +0100
+--- src/misc1.c        2011-01-22 00:00:24.000000000 +0100
+***************
+*** 2919,2925 ****
+      buf_T    *buf;
+      int              ff;     /* also reset 'fileformat' */
+  {
+!     if (buf->b_changed || (ff && file_ff_differs(buf)))
+      {
+       buf->b_changed = 0;
+       ml_setflags(buf);
+--- 2919,2925 ----
+      buf_T    *buf;
+      int              ff;     /* also reset 'fileformat' */
+  {
+!     if (buf->b_changed || (ff && file_ff_differs(buf, FALSE)))
+      {
+       buf->b_changed = 0;
+       ml_setflags(buf);
+*** ../vim-7.3.102/src/option.c        2010-12-02 21:43:10.000000000 +0100
+--- src/option.c       2011-01-22 00:03:40.000000000 +0100
+***************
+*** 11296,11311 ****
+   * from when editing started (save_file_ff() called).
+   * Also when 'endofline' was changed and 'binary' is set, or when 'bomb' was
+   * changed and 'binary' is not set.
+!  * Don't consider a new, empty buffer to be changed.
+   */
+      int
+! file_ff_differs(buf)
+      buf_T    *buf;
+  {
+      /* In a buffer that was never loaded the options are not valid. */
+      if (buf->b_flags & BF_NEVERLOADED)
+       return FALSE;
+!     if ((buf->b_flags & BF_NEW)
+           && buf->b_ml.ml_line_count == 1
+           && *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL)
+       return FALSE;
+--- 11296,11314 ----
+   * from when editing started (save_file_ff() called).
+   * Also when 'endofline' was changed and 'binary' is set, or when 'bomb' was
+   * changed and 'binary' is not set.
+!  * When "ignore_empty" is true don't consider a new, empty buffer to be
+!  * changed.
+   */
+      int
+! file_ff_differs(buf, ignore_empty)
+      buf_T    *buf;
++     int              ignore_empty;
+  {
+      /* In a buffer that was never loaded the options are not valid. */
+      if (buf->b_flags & BF_NEVERLOADED)
+       return FALSE;
+!     if (ignore_empty
+!          && (buf->b_flags & BF_NEW)
+           && buf->b_ml.ml_line_count == 1
+           && *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL)
+       return FALSE;
+*** ../vim-7.3.102/src/proto/option.pro        2010-08-15 21:57:28.000000000 +0200
+--- src/proto/option.pro       2011-01-22 00:04:35.000000000 +0100
+***************
+*** 54,59 ****
+  int option_was_set __ARGS((char_u *name));
+  int can_bs __ARGS((int what));
+  void save_file_ff __ARGS((buf_T *buf));
+! int file_ff_differs __ARGS((buf_T *buf));
+  int check_ff_value __ARGS((char_u *p));
+  /* vim: set ft=c : */
+--- 54,59 ----
+  int option_was_set __ARGS((char_u *name));
+  int can_bs __ARGS((int what));
+  void save_file_ff __ARGS((buf_T *buf));
+! int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
+  int check_ff_value __ARGS((char_u *p));
+  /* vim: set ft=c : */
+*** ../vim-7.3.102/src/undo.c  2010-12-17 18:06:00.000000000 +0100
+--- src/undo.c 2011-01-22 00:03:58.000000000 +0100
+***************
+*** 3304,3310 ****
+  #ifdef FEAT_QUICKFIX
+           !bt_dontwrite(buf) &&
+  #endif
+!          (buf->b_changed || file_ff_differs(buf));
+  }
+  
+      int
+--- 3304,3310 ----
+  #ifdef FEAT_QUICKFIX
+           !bt_dontwrite(buf) &&
+  #endif
+!          (buf->b_changed || file_ff_differs(buf, TRUE));
+  }
+  
+      int
+***************
+*** 3314,3320 ****
+  #ifdef FEAT_QUICKFIX
+       !bt_dontwrite(curbuf) &&
+  #endif
+!      (curbuf->b_changed || file_ff_differs(curbuf));
+  }
+  
+  #if defined(FEAT_EVAL) || defined(PROTO)
+--- 3314,3320 ----
+  #ifdef FEAT_QUICKFIX
+       !bt_dontwrite(curbuf) &&
+  #endif
+!      (curbuf->b_changed || file_ff_differs(curbuf, TRUE));
+  }
+  
+  #if defined(FEAT_EVAL) || defined(PROTO)
+*** ../vim-7.3.102/src/version.c       2011-01-17 20:08:03.000000000 +0100
+--- src/version.c      2011-01-22 00:07:56.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     103,
+  /**/
+
+-- 
+In a world without fences, who needs Gates and Windows?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.104.patch0 b/vim/patches/vim-7.3.104.patch0
new file mode 100644 (file)
index 0000000..1e719bd
--- /dev/null
@@ -0,0 +1,50 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.104
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Problem:    Conceal: using Tab for cchar causes problems. (ZyX)
+Solution:   Do not accept a control character for cchar.
+Files:      src/syntax.c
+
+
+*** ../vim-7.3.103/src/syntax.c        2010-09-29 18:32:47.000000000 +0200
+--- src/syntax.c       2011-01-22 00:50:20.000000000 +0100
+***************
+*** 4537,4542 ****
+--- 4537,4549 ----
+               ;
+  #endif
+           }
++ #ifdef FEAT_CONCEAL
++          if (!vim_isprintc_strict(*conceal_char))
++          {
++              EMSG(_("E844: invalid cchar value"));
++              return NULL;
++          }
++ #endif
+           arg = skipwhite(arg + 7);
+       }
+       else
+*** ../vim-7.3.103/src/version.c       2011-01-22 00:11:42.000000000 +0100
+--- src/version.c      2011-01-22 00:54:56.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     104,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+132. You come back and check this list every half-hour.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.105.patch0 b/vim/patches/vim-7.3.105.patch0
new file mode 100644 (file)
index 0000000..abf69ac
--- /dev/null
@@ -0,0 +1,50 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.105
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.105
+Problem:    Can't get the value of "b:changedtick" with getbufvar().
+Solution:   Make it work. (Christian Brabandt)
+Files:      src/eval.c
+
+
+*** ../vim-7.3.104/src/eval.c  2011-01-17 20:08:03.000000000 +0100
+--- src/eval.c 2011-01-22 01:10:42.000000000 +0100
+***************
+*** 10866,10871 ****
+--- 10866,10876 ----
+  
+       if (*varname == '&')    /* buffer-local-option */
+           get_option_tv(&varname, rettv, TRUE);
++      else if (STRCMP(varname, "changedtick") == 0)
++      {
++          rettv->v_type = VAR_NUMBER;
++          rettv->vval.v_number = curbuf->b_changedtick;
++      }
+       else
+       {
+           if (*varname == NUL)
+*** ../vim-7.3.104/src/version.c       2011-01-22 00:58:15.000000000 +0100
+--- src/version.c      2011-01-22 01:13:19.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     105,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+133. You communicate with people on other continents more than you
+     do with your own neighbors.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.106.patch0 b/vim/patches/vim-7.3.106.patch0
new file mode 100644 (file)
index 0000000..f98df30
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.106
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.106
+Problem:    When 'cursorbind' is set another window may scroll unexpectedly
+            when 'scrollbind' is also set. (Xavier Wang)
+Solution:   Don't call update_topline() if 'scrollbind' is set.
+Files:      src/move.c
+
+
+*** ../vim-7.3.105/src/move.c  2010-08-15 21:57:29.000000000 +0200
+--- src/move.c 2011-01-22 20:58:50.000000000 +0100
+***************
+*** 2882,2890 ****
+           if (has_mbyte)
+               mb_adjust_cursor();
+  # endif
+- 
+           redraw_later(VALID);
+!          update_topline();
+  # ifdef FEAT_WINDOWS
+           curwin->w_redr_status = TRUE;
+  # endif
+--- 2882,2892 ----
+           if (has_mbyte)
+               mb_adjust_cursor();
+  # endif
+           redraw_later(VALID);
+! 
+!          /* Only scroll when 'scrollbind' hasn't done this. */
+!          if (!curwin->w_p_scb)
+!              update_topline();
+  # ifdef FEAT_WINDOWS
+           curwin->w_redr_status = TRUE;
+  # endif
+*** ../vim-7.3.105/src/version.c       2011-01-22 01:13:33.000000000 +0100
+--- src/version.c      2011-01-22 21:03:21.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     106,
+  /**/
+
+-- 
+Never eat yellow snow.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.107.patch0 b/vim/patches/vim-7.3.107.patch0
new file mode 100644 (file)
index 0000000..1256b81
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.107
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.107
+Problem:    Year number for :undolist can be confused with month or day.
+Solution:   Change "%y" to "%Y".
+Files:      src/undo.c
+
+
+*** ../vim-7.3.106/src/undo.c  2011-01-22 00:11:42.000000000 +0100
+--- src/undo.c 2011-01-22 00:03:58.000000000 +0100
+***************
+*** 2884,2890 ****
+           (void)strftime((char *)buf, buflen, "%m/%d %H:%M:%S", curtime);
+       else
+           /* long ago */
+!          (void)strftime((char *)buf, buflen, "%y/%m/%d %H:%M:%S", curtime);
+      }
+      else
+  #endif
+--- 2884,2890 ----
+           (void)strftime((char *)buf, buflen, "%m/%d %H:%M:%S", curtime);
+       else
+           /* long ago */
+!          (void)strftime((char *)buf, buflen, "%Y/%m/%d %H:%M:%S", curtime);
+      }
+      else
+  #endif
+*** ../vim-7.3.106/src/version.c       2011-01-22 21:05:02.000000000 +0100
+--- src/version.c      2011-01-22 21:24:07.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     107,
+  /**/
+
+-- 
+"The sun oozed over the horizon, shoved aside darkness, crept along the
+greensward, and, with sickly fingers, pushed through the castle window,
+revealing the pillaged princess, hand at throat, crown asunder, gaping
+in frenzied horror at the sated, sodden amphibian lying beside her,
+disbelieving the magnitude of the frog's deception, screaming madly,
+"You lied!"
+    - Winner of the Bulwer-Lytton contest (San Jose State University),
+      wherein one writes only the first line of a bad novel
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.108.patch0 b/vim/patches/vim-7.3.108.patch0
new file mode 100644 (file)
index 0000000..91f3ceb
--- /dev/null
@@ -0,0 +1,111 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.108
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.108
+Problem:    Useless check for NULL when calling vim_free().
+Solution:   Remove the check. (Dominique Pelle)
+Files:     src/eval.c, src/ex_cmds.c, src/os_win32.c
+
+
+*** ../vim-7.3.107/src/eval.c  2011-01-22 01:13:33.000000000 +0100
+--- src/eval.c 2011-01-30 21:37:53.000000000 +0100
+***************
+*** 5106,5114 ****
+           else
+               ret = OK;
+       }
+! 
+!      if (alias != NULL)
+!          vim_free(alias);
+      }
+  
+      *arg = skipwhite(*arg);
+--- 5106,5112 ----
+           else
+               ret = OK;
+       }
+!      vim_free(alias);
+      }
+  
+      *arg = skipwhite(*arg);
+***************
+*** 19807,19813 ****
+           EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
+           return;
+       }
+!      /* Don't allow hiding a function.  When "v" is not NULL we migth be
+        * assigning another function to the same var, the type is checked
+        * below. */
+       if (v == NULL && function_exists(name))
+--- 19805,19811 ----
+           EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
+           return;
+       }
+!      /* Don't allow hiding a function.  When "v" is not NULL we might be
+        * assigning another function to the same var, the type is checked
+        * below. */
+       if (v == NULL && function_exists(name))
+*** ../vim-7.3.107/src/ex_cmds.c       2010-12-17 18:06:00.000000000 +0100
+--- src/ex_cmds.c      2011-01-30 21:37:53.000000000 +0100
+***************
+*** 5412,5418 ****
+      vir_T    *virp;
+      int              force;
+  {
+!     if (old_sub != NULL && force)
+       vim_free(old_sub);
+      if (force || old_sub == NULL)
+       old_sub = viminfo_readstring(virp, 1, TRUE);
+--- 5412,5418 ----
+      vir_T    *virp;
+      int              force;
+  {
+!     if (force)
+       vim_free(old_sub);
+      if (force || old_sub == NULL)
+       old_sub = viminfo_readstring(virp, 1, TRUE);
+*** ../vim-7.3.107/src/os_win32.c      2010-12-17 20:23:56.000000000 +0100
+--- src/os_win32.c     2011-01-30 21:37:53.000000000 +0100
+***************
+*** 1886,1893 ****
+       cb->BufferSize.X = cb->Info.dwSize.X;
+       cb->BufferSize.Y = cb->Info.dwSize.Y;
+       NumCells = cb->BufferSize.X * cb->BufferSize.Y;
+!      if (cb->Buffer != NULL)
+!          vim_free(cb->Buffer);
+       cb->Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO));
+       if (cb->Buffer == NULL)
+           return FALSE;
+--- 1886,1892 ----
+       cb->BufferSize.X = cb->Info.dwSize.X;
+       cb->BufferSize.Y = cb->Info.dwSize.Y;
+       NumCells = cb->BufferSize.X * cb->BufferSize.Y;
+!      vim_free(cb->Buffer);
+       cb->Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO));
+       if (cb->Buffer == NULL)
+           return FALSE;
+*** ../vim-7.3.107/src/version.c       2011-01-22 21:25:07.000000000 +0100
+--- src/version.c      2011-02-01 13:47:07.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     108,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+173. You keep tracking down the email addresses of all your friends
+     (even childhood friends).
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.109.patch0 b/vim/patches/vim-7.3.109.patch0
new file mode 100644 (file)
index 0000000..ce35fb0
--- /dev/null
@@ -0,0 +1,266 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.109
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.109
+Problem:    Processing new Esperanto spell file fails and crashes Vim.
+           (Dominique Pelle)
+Solution:   When running out of memory give an error.  Handle '?' in
+           COMPOUNDRULE properly.
+Files:     src/spell.c
+
+
+*** ../vim-7.3.108/src/spell.c 2010-12-17 18:06:00.000000000 +0100
+--- src/spell.c        2011-02-01 13:43:52.000000000 +0100
+***************
+*** 3634,3640 ****
+       }
+  
+       /* Add all flags to "sl_compallflags". */
+!      if (vim_strchr((char_u *)"+*[]/", c) == NULL
+               && !byte_in_str(slang->sl_compallflags, c))
+       {
+           *ap++ = c;
+--- 3634,3640 ----
+       }
+  
+       /* Add all flags to "sl_compallflags". */
+!      if (vim_strchr((char_u *)"?*+[]/", c) == NULL
+               && !byte_in_str(slang->sl_compallflags, c))
+       {
+           *ap++ = c;
+***************
+*** 3664,3670 ****
+       /* Copy flag to "sl_comprules", unless we run into a wildcard. */
+       if (crp != NULL)
+       {
+!          if (c == '+' || c == '*')
+           {
+               vim_free(slang->sl_comprules);
+               slang->sl_comprules = NULL;
+--- 3664,3670 ----
+       /* Copy flag to "sl_comprules", unless we run into a wildcard. */
+       if (crp != NULL)
+       {
+!          if (c == '?' || c == '+' || c == '*')
+           {
+               vim_free(slang->sl_comprules);
+               slang->sl_comprules = NULL;
+***************
+*** 3682,3689 ****
+       }
+       else                /* normal char, "[abc]" and '*' are copied as-is */
+       {
+!          if (c == '+' || c == '~')
+!              *pp++ = '\\';       /* "a+" becomes "a\+" */
+  #ifdef FEAT_MBYTE
+           if (enc_utf8)
+               pp += mb_char2bytes(c, pp);
+--- 3682,3689 ----
+       }
+       else                /* normal char, "[abc]" and '*' are copied as-is */
+       {
+!          if (c == '?' || c == '+' || c == '~')
+!              *pp++ = '\\';       /* "a?" becomes "a\?", "a+" becomes "a\+" */
+  #ifdef FEAT_MBYTE
+           if (enc_utf8)
+               pp += mb_char2bytes(c, pp);
+***************
+*** 4951,4956 ****
+--- 4951,4958 ----
+  
+      sblock_T *si_blocks;     /* memory blocks used */
+      long     si_blocks_cnt;  /* memory blocks allocated */
++     int              si_did_emsg;    /* TRUE when ran out of memory */
++ 
+      long     si_compress_cnt;    /* words to add before lowering
+                                      compression limit */
+      wordnode_T       *si_first_free; /* List of nodes that have been freed during
+***************
+*** 5477,5497 ****
+           }
+           else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2))
+           {
+!              /* Concatenate this string to previously defined ones, using a
+!               * slash to separate them. */
+!              l = (int)STRLEN(items[1]) + 1;
+!              if (compflags != NULL)
+!                  l += (int)STRLEN(compflags) + 1;
+!              p = getroom(spin, l, FALSE);
+!              if (p != NULL)
+               {
+                   if (compflags != NULL)
+                   {
+!                      STRCPY(p, compflags);
+!                      STRCAT(p, "/");
+                   }
+-                  STRCAT(p, items[1]);
+-                  compflags = p;
+               }
+           }
+           else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2)
+--- 5479,5503 ----
+           }
+           else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2))
+           {
+!              /* Don't use the first rule if it is a number. */
+!              if (compflags != NULL || *skipdigits(items[1]) != NUL)
+               {
++                  /* Concatenate this string to previously defined ones,
++                   * using a slash to separate them. */
++                  l = (int)STRLEN(items[1]) + 1;
+                   if (compflags != NULL)
++                      l += (int)STRLEN(compflags) + 1;
++                  p = getroom(spin, l, FALSE);
++                  if (p != NULL)
+                   {
+!                      if (compflags != NULL)
+!                      {
+!                          STRCPY(p, compflags);
+!                          STRCAT(p, "/");
+!                      }
+!                      STRCAT(p, items[1]);
+!                      compflags = p;
+                   }
+               }
+           }
+           else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2)
+***************
+*** 6291,6297 ****
+  
+      for (p = compflags; *p != NUL; )
+      {
+!      if (vim_strchr((char_u *)"/*+[]", *p) != NULL)
+           /* Copy non-flag characters directly. */
+           *tp++ = *p++;
+       else
+--- 6297,6303 ----
+  
+      for (p = compflags; *p != NUL; )
+      {
+!      if (vim_strchr((char_u *)"/?*+[]", *p) != NULL)
+           /* Copy non-flag characters directly. */
+           *tp++ = *p++;
+       else
+***************
+*** 6320,6326 ****
+                   {
+                       check_renumber(spin);
+                       id = spin->si_newcompID--;
+!                  } while (vim_strchr((char_u *)"/+*[]\\-^", id) != NULL);
+                   ci->ci_newID = id;
+                   hash_add(&aff->af_comp, ci->ci_key);
+               }
+--- 6326,6332 ----
+                   {
+                       check_renumber(spin);
+                       id = spin->si_newcompID--;
+!                  } while (vim_strchr((char_u *)"/?*+[]\\-^", id) != NULL);
+                   ci->ci_newID = id;
+                   hash_add(&aff->af_comp, ci->ci_key);
+               }
+***************
+*** 7364,7373 ****
+  
+      if (bl == NULL || bl->sb_used + len > SBLOCKSIZE)
+      {
+!      /* Allocate a block of memory. This is not freed until much later. */
+!      bl = (sblock_T *)alloc_clear((unsigned)(sizeof(sblock_T) + SBLOCKSIZE));
+       if (bl == NULL)
+           return NULL;
+       bl->sb_next = spin->si_blocks;
+       spin->si_blocks = bl;
+       bl->sb_used = 0;
+--- 7370,7390 ----
+  
+      if (bl == NULL || bl->sb_used + len > SBLOCKSIZE)
+      {
+!      if (len >= SBLOCKSIZE)
+!          bl = NULL;
+!      else
+!          /* Allocate a block of memory. It is not freed until much later. */
+!          bl = (sblock_T *)alloc_clear(
+!                                 (unsigned)(sizeof(sblock_T) + SBLOCKSIZE));
+       if (bl == NULL)
++      {
++          if (!spin->si_did_emsg)
++          {
++              EMSG(_("E845: Insufficient memory, word list will be incomplete"));
++              spin->si_did_emsg = TRUE;
++          }
+           return NULL;
++      }
+       bl->sb_next = spin->si_blocks;
+       spin->si_blocks = bl;
+       bl->sb_used = 0;
+***************
+*** 7382,7387 ****
+--- 7399,7405 ----
+  
+  /*
+   * Make a copy of a string into memory allocated with getroom().
++  * Returns NULL when out of memory.
+   */
+      static char_u *
+  getroom_save(spin, s)
+***************
+*** 7416,7421 ****
+--- 7434,7440 ----
+  
+  /*
+   * Allocate the root of a word tree.
++  * Returns NULL when out of memory.
+   */
+      static wordnode_T *
+  wordtree_alloc(spin)
+***************
+*** 7700,7705 ****
+--- 7719,7725 ----
+  /*
+   * Get a wordnode_T, either from the list of previously freed nodes or
+   * allocate a new one.
++  * Returns NULL when out of memory.
+   */
+      static wordnode_T *
+  get_wordnode(spin)
+***************
+*** 7717,7723 ****
+       --spin->si_free_count;
+      }
+  #ifdef SPELL_PRINTTREE
+!     n->wn_nr = ++spin->si_wordnode_nr;
+  #endif
+      return n;
+  }
+--- 7737,7744 ----
+       --spin->si_free_count;
+      }
+  #ifdef SPELL_PRINTTREE
+!     if (n != NULL)
+!      n->wn_nr = ++spin->si_wordnode_nr;
+  #endif
+      return n;
+  }
+*** ../vim-7.3.108/src/version.c       2011-02-01 13:48:47.000000000 +0100
+--- src/version.c      2011-02-01 13:56:38.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     109,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+174. You know what a listserv is.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.110.patch0 b/vim/patches/vim-7.3.110.patch0
new file mode 100644 (file)
index 0000000..3ffc7f2
--- /dev/null
@@ -0,0 +1,76 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.110
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.110
+Problem:    The "nbsp" item in 'listchars' isn't used for ":list".
+Solution:   Make it work. (Christian Brabandt)
+Files:     src/message.c
+
+
+*** ../vim-7.3.109/src/message.c       2011-01-17 20:08:03.000000000 +0100
+--- src/message.c      2011-02-01 17:06:21.000000000 +0100
+***************
+*** 1637,1644 ****
+       else if (has_mbyte && (l = (*mb_ptr2len)(s)) > 1)
+       {
+           col += (*mb_ptr2cells)(s);
+!          mch_memmove(buf, s, (size_t)l);
+!          buf[l] = NUL;
+           msg_puts(buf);
+           s += l;
+           continue;
+--- 1637,1652 ----
+       else if (has_mbyte && (l = (*mb_ptr2len)(s)) > 1)
+       {
+           col += (*mb_ptr2cells)(s);
+!          if (lcs_nbsp != NUL && list && mb_ptr2char(s) == 160)
+!          {
+!              mb_char2bytes(lcs_nbsp, buf);
+!              buf[(*mb_ptr2len)(buf)] = NUL;
+!          }
+!          else
+!          {
+!              mch_memmove(buf, s, (size_t)l);
+!              buf[l] = NUL;
+!          }
+           msg_puts(buf);
+           s += l;
+           continue;
+***************
+*** 1664,1669 ****
+--- 1672,1682 ----
+                   attr = hl_attr(HLF_8);
+               }
+           }
++          else if (c == 160 && list && lcs_nbsp != NUL)
++          {
++              c = lcs_nbsp;
++              attr = hl_attr(HLF_8);
++          }
+           else if (c == NUL && list && lcs_eol != NUL)
+           {
+               p_extra = (char_u *)"";
+*** ../vim-7.3.109/src/version.c       2011-02-01 13:59:44.000000000 +0100
+--- src/version.c      2011-02-01 17:08:31.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     110,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+176. You lie, even to user-friends, about how long you were online yesterday.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.111.patch0 b/vim/patches/vim-7.3.111.patch0
new file mode 100644 (file)
index 0000000..e3cf717
--- /dev/null
@@ -0,0 +1,121 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.111
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.111 (after 7.3.100)
+Problem:    Executing a :normal command in 'statusline' evaluation causes the
+           cursor to move. (Dominique Pelle)
+Solution:   When updating the cursor for 'cursorbind' allow the cursor beyond
+           the end of the line.  When evaluating 'statusline' temporarily
+           reset 'cursorbind'.
+Files:     src/move.c, src/screen.c
+
+
+*** ../vim-7.3.110/src/move.c  2011-01-22 21:05:02.000000000 +0100
+--- src/move.c 2011-02-01 17:36:10.000000000 +0100
+***************
+*** 2846,2851 ****
+--- 2846,2852 ----
+      colnr_T  col =  curwin->w_cursor.col;
+      win_T    *old_curwin = curwin;
+      buf_T    *old_curbuf = curbuf;
++     int              restart_edit_save;
+  # ifdef FEAT_VISUAL
+      int              old_VIsual_select = VIsual_select;
+      int              old_VIsual_active = VIsual_active;
+***************
+*** 2875,2882 ****
+               curwin->w_cursor.lnum = line;
+           curwin->w_cursor.col = col;
+  
+!          /* Make sure the cursor is in a valid position. */
+           check_cursor();
+  # ifdef FEAT_MBYTE
+           /* Correct cursor for multi-byte character. */
+           if (has_mbyte)
+--- 2876,2887 ----
+               curwin->w_cursor.lnum = line;
+           curwin->w_cursor.col = col;
+  
+!          /* Make sure the cursor is in a valid position.  Temporarily set
+!           * "restart_edit" to allow the cursor to be beyond the EOL. */
+!          restart_edit_save = restart_edit;
+!          restart_edit = TRUE;
+           check_cursor();
++          restart_edit = restart_edit_save;
+  # ifdef FEAT_MBYTE
+           /* Correct cursor for multi-byte character. */
+           if (has_mbyte)
+*** ../vim-7.3.110/src/screen.c        2010-12-30 14:57:03.000000000 +0100
+--- src/screen.c       2011-02-01 17:45:45.000000000 +0100
+***************
+*** 6435,6440 ****
+--- 6435,6442 ----
+      struct   stl_hlrec hltab[STL_MAX_ITEM];
+      struct   stl_hlrec tabtab[STL_MAX_ITEM];
+      int              use_sandbox = FALSE;
++     win_T    *ewp;
++     int              p_crb_save;
+  
+      /* setup environment for the task at hand */
+      if (wp == NULL)
+***************
+*** 6513,6526 ****
+      if (maxwidth <= 0)
+       return;
+  
+      /* Make a copy, because the statusline may include a function call that
+       * might change the option value and free the memory. */
+      stl = vim_strsave(stl);
+!     width = build_stl_str_hl(wp == NULL ? curwin : wp,
+!                              buf, sizeof(buf),
+                               stl, use_sandbox,
+                               fillchar, maxwidth, hltab, tabtab);
+      vim_free(stl);
+  
+      /* Make all characters printable. */
+      p = transstr(buf);
+--- 6515,6534 ----
+      if (maxwidth <= 0)
+       return;
+  
++     /* Temporarily reset 'cursorbind', we don't want a side effect from moving
++      * the cursor away and back. */
++     ewp = wp == NULL ? curwin : wp;
++     p_crb_save = ewp->w_p_crb;
++     ewp->w_p_crb = FALSE;
++ 
+      /* Make a copy, because the statusline may include a function call that
+       * might change the option value and free the memory. */
+      stl = vim_strsave(stl);
+!     width = build_stl_str_hl(ewp, buf, sizeof(buf),
+                               stl, use_sandbox,
+                               fillchar, maxwidth, hltab, tabtab);
+      vim_free(stl);
++     ewp->w_p_crb = p_crb_save;
+  
+      /* Make all characters printable. */
+      p = transstr(buf);
+*** ../vim-7.3.110/src/version.c       2011-02-01 17:12:20.000000000 +0100
+--- src/version.c      2011-02-01 18:00:14.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     111,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+177. You log off of your system because it's time to go to work.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.112.patch0 b/vim/patches/vim-7.3.112.patch0
new file mode 100644 (file)
index 0000000..af9b881
--- /dev/null
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.112
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.112
+Problem:    Setting 'statusline' to "%!'asdf%' reads uninitialized memory.
+Solution:   Check for NUL after %.
+Files:     src/buffer.c
+
+
+*** ../vim-7.3.111/src/buffer.c        2010-10-27 16:17:56.000000000 +0200
+--- src/buffer.c       2011-02-01 21:40:17.000000000 +0100
+***************
+*** 3364,3370 ****
+   * or truncated if too long, fillchar is used for all whitespace.
+   */
+      int
+! build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar, maxwidth, hltab, tabtab)
+      win_T    *wp;
+      char_u   *out;           /* buffer to write into != NameBuff */
+      size_t   outlen;         /* length of out[] */
+--- 3364,3371 ----
+   * or truncated if too long, fillchar is used for all whitespace.
+   */
+      int
+! build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar,
+!                                                    maxwidth, hltab, tabtab)
+      win_T    *wp;
+      char_u   *out;           /* buffer to write into != NameBuff */
+      size_t   outlen;         /* length of out[] */
+***************
+*** 3474,3479 ****
+--- 3475,3482 ----
+        * Handle one '%' item.
+        */
+       s++;
++      if (*s == NUL)  /* ignore trailing % */
++          break;
+       if (*s == '%')
+       {
+           if (p + 1 >= out + outlen)
+*** ../vim-7.3.111/src/version.c       2011-02-01 18:01:06.000000000 +0100
+--- src/version.c      2011-02-01 21:54:01.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     112,
+  /**/
+
+-- 
+Rule #1: Don't give somebody a tool that he's going to hurt himself with.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.113.patch0 b/vim/patches/vim-7.3.113.patch0
new file mode 100644 (file)
index 0000000..a4383ad
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.113
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.113
+Problem:    Windows: Fall back directory for creating temp file is wrong.
+Solution:   Use "." instead of empty string. (Hong Xu)
+Files:     src/fileio.c
+
+
+*** ../vim-7.3.112/src/fileio.c        2011-01-17 20:08:03.000000000 +0100
+--- src/fileio.c       2011-02-06 13:14:25.000000000 +0100
+***************
+*** 7459,7465 ****
+  
+      STRCPY(itmp, "");
+      if (GetTempPath(_MAX_PATH, szTempFile) == 0)
+!      szTempFile[0] = NUL;    /* GetTempPath() failed, use current dir */
+      strcpy(buf4, "VIM");
+      buf4[2] = extra_char;   /* make it "VIa", "VIb", etc. */
+      if (GetTempFileName(szTempFile, buf4, 0, itmp) == 0)
+--- 7459,7468 ----
+  
+      STRCPY(itmp, "");
+      if (GetTempPath(_MAX_PATH, szTempFile) == 0)
+!     {
+!      szTempFile[0] = '.';    /* GetTempPath() failed, use current dir */
+!      szTempFile[1] = NUL;
+!     }
+      strcpy(buf4, "VIM");
+      buf4[2] = extra_char;   /* make it "VIa", "VIb", etc. */
+      if (GetTempFileName(szTempFile, buf4, 0, itmp) == 0)
+*** ../vim-7.3.112/src/version.c       2011-02-01 21:54:56.000000000 +0100
+--- src/version.c      2011-02-09 14:46:12.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     113,
+  /**/
+
+-- 
+'Psychologist' -- Someone who looks at everyone else when
+an attractive woman enters the room.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.114.patch0 b/vim/patches/vim-7.3.114.patch0
new file mode 100644 (file)
index 0000000..34bdd36
--- /dev/null
@@ -0,0 +1,50 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.114
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.114
+Problem:    Potential problem in initialization when giving an error message
+           early.
+Solution:   Initialize 'verbosefile' empty. (Ben Schmidt)
+Files:     src/option.h
+
+
+*** ../vim-7.3.113/src/option.h        2010-12-02 16:01:23.000000000 +0100
+--- src/option.h       2011-02-09 15:37:36.000000000 +0100
+***************
+*** 854,860 ****
+--- 854,864 ----
+  # define VE_ONEMORE  8
+  #endif
+  EXTERN long  p_verbose;      /* 'verbose' */
++ #ifdef IN_OPTION_C
++ char_u       *p_vfile = (char_u *)""; /* used before options are initialized */
++ #else
+  EXTERN char_u        *p_vfile;       /* 'verbosefile' */
++ #endif
+  EXTERN int   p_warn;         /* 'warn' */
+  #ifdef FEAT_CMDL_COMPL
+  EXTERN char_u        *p_wop;         /* 'wildoptions' */
+*** ../vim-7.3.113/src/version.c       2011-02-09 14:46:58.000000000 +0100
+--- src/version.c      2011-02-09 15:46:17.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     114,
+  /**/
+
+-- 
+From the classified section of a city newspaper:
+Dog for sale: eats anything and is fond of children.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.115.patch0 b/vim/patches/vim-7.3.115.patch0
new file mode 100644 (file)
index 0000000..dd36df3
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.115
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.115
+Problem:    Vim can crash when tmpnam() returns NULL.
+Solution:   Check for NULL. (Hong Xu)
+Files:     src/fileio.c
+
+
+*** ../vim-7.3.114/src/fileio.c        2011-02-09 14:46:58.000000000 +0100
+--- src/fileio.c       2011-02-09 16:14:35.000000000 +0100
+***************
+*** 7483,7490 ****
+  # else /* WIN3264 */
+  
+  #  ifdef USE_TMPNAM
+      /* tmpnam() will make its own name */
+!     if (*tmpnam((char *)itmp) == NUL)
+       return NULL;
+  #  else
+      char_u   *p;
+--- 7483,7493 ----
+  # else /* WIN3264 */
+  
+  #  ifdef USE_TMPNAM
++     char_u   *p;
++ 
+      /* tmpnam() will make its own name */
+!     p = tmpnam((char *)itmp);
+!     if (p == NULL || *p == NUL)
+       return NULL;
+  #  else
+      char_u   *p;
+*** ../vim-7.3.114/src/version.c       2011-02-09 15:59:32.000000000 +0100
+--- src/version.c      2011-02-09 16:44:11.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     115,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+218. Your spouse hands you a gift wrapped magnet with your PC's name
+     on it and you accuse him or her of genocide.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.116.patch0 b/vim/patches/vim-7.3.116.patch0
new file mode 100644 (file)
index 0000000..ee9543a
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.116
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.116
+Problem:    'cursorline' is displayed too short when there are concealed
+           characters and 'list' is set.  (Dennis Preiser)
+Solution:   Check for 'cursorline' when 'list' is set. (Christian Brabandt)
+Files:     src/screen.c
+
+
+*** ../vim-7.3.115/src/screen.c        2011-02-01 18:01:06.000000000 +0100
+--- src/screen.c       2011-02-09 16:59:28.000000000 +0100
+***************
+*** 5099,5105 ****
+  #ifdef FEAT_DIFF
+                   || filler_todo > 0
+  #endif
+!                  || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str)
+                   || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
+               )
+       {
+--- 5099,5109 ----
+  #ifdef FEAT_DIFF
+                   || filler_todo > 0
+  #endif
+!                  || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str
+! #ifdef FEAT_SYN_HL
+!                         && !wp->w_p_cul
+! #endif
+!                      )
+                   || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
+               )
+       {
+*** ../vim-7.3.115/src/version.c       2011-02-09 16:44:45.000000000 +0100
+--- src/version.c      2011-02-09 17:08:58.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     116,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+219. Your spouse has his or her lawyer deliver the divorce papers...
+     via e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.117.patch0 b/vim/patches/vim-7.3.117.patch0
new file mode 100644 (file)
index 0000000..19fcf73
--- /dev/null
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.117
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.117
+Problem:    On some systems --as-needed does not work, because the "tinfo"
+           library is included indirectly from "ncurses". (Charles Campbell)
+Solution:   In configure prefer using "tinfo" instead of "ncurses".
+Files:     src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.116/src/configure.in    2010-11-16 19:25:56.000000000 +0100
+--- src/configure.in   2011-02-09 17:28:16.000000000 +0100
+***************
+*** 2618,2630 ****
+    AC_MSG_RESULT([empty: automatic terminal library selection])
+    dnl  On HP-UX 10.10 termcap or termlib should be used instead of
+    dnl  curses, because curses is much slower.
+!   dnl  Newer versions of ncurses are preferred over anything.
+    dnl  Older versions of ncurses have bugs, get a new one!
+    dnl  Digital Unix (OSF1) should use curses (Ronald Schild).
+    dnl  On SCO Openserver should prefer termlib (Roger Cornelius).
+    case "`uname -s 2>/dev/null`" in
+!      OSF1|SCO_SV)    tlibs="ncurses curses termlib termcap";;
+!      *)      tlibs="ncurses termlib termcap curses";;
+    esac
+    for libname in $tlibs; do
+      AC_CHECK_LIB(${libname}, tgetent,,)
+--- 2618,2631 ----
+    AC_MSG_RESULT([empty: automatic terminal library selection])
+    dnl  On HP-UX 10.10 termcap or termlib should be used instead of
+    dnl  curses, because curses is much slower.
+!   dnl  Newer versions of ncurses are preferred over anything, except
+!   dnl  when tinfo has been split off, it conains all we need.
+    dnl  Older versions of ncurses have bugs, get a new one!
+    dnl  Digital Unix (OSF1) should use curses (Ronald Schild).
+    dnl  On SCO Openserver should prefer termlib (Roger Cornelius).
+    case "`uname -s 2>/dev/null`" in
+!      OSF1|SCO_SV)    tlibs="tinfo ncurses curses termlib termcap";;
+!      *)      tlibs="tinfo ncurses termlib termcap curses";;
+    esac
+    for libname in $tlibs; do
+      AC_CHECK_LIB(${libname}, tgetent,,)
+*** ../vim-7.3.116/src/auto/configure  2010-11-16 19:25:56.000000000 +0100
+--- src/auto/configure 2011-02-09 17:29:13.000000000 +0100
+***************
+*** 9886,9894 ****
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: empty: automatic terminal library selection" >&5
+  $as_echo "empty: automatic terminal library selection" >&6; }
+!               case "`uname -s 2>/dev/null`" in
+!      OSF1|SCO_SV)    tlibs="ncurses curses termlib termcap";;
+!      *)      tlibs="ncurses termlib termcap curses";;
+    esac
+    for libname in $tlibs; do
+      as_ac_Lib=`$as_echo "ac_cv_lib_${libname}''_tgetent" | $as_tr_sh`
+--- 9886,9894 ----
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: empty: automatic terminal library selection" >&5
+  $as_echo "empty: automatic terminal library selection" >&6; }
+!                 case "`uname -s 2>/dev/null`" in
+!      OSF1|SCO_SV)    tlibs="tinfo ncurses curses termlib termcap";;
+!      *)      tlibs="tinfo ncurses termlib termcap curses";;
+    esac
+    for libname in $tlibs; do
+      as_ac_Lib=`$as_echo "ac_cv_lib_${libname}''_tgetent" | $as_tr_sh`
+*** ../vim-7.3.116/src/version.c       2011-02-09 17:09:26.000000000 +0100
+--- src/version.c      2011-02-09 17:41:37.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     117,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+220. Your wife asks for sex and you tell her where to find you on IRC.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.118.patch0 b/vim/patches/vim-7.3.118.patch0
new file mode 100644 (file)
index 0000000..fecb948
--- /dev/null
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.118
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.118
+Problem:    Ruby uses SIGVTALARM which makes Vim exit. (Alec Tica)
+Solution:   Ignore SIGVTALARM. (Dominique Pelle)
+Files:     src/os_unix.c
+
+
+*** ../vim-7.3.117/src/os_unix.c       2010-12-17 16:27:10.000000000 +0100
+--- src/os_unix.c      2011-02-09 18:19:57.000000000 +0100
+***************
+*** 283,289 ****
+  #ifdef SIGTERM
+      {SIGTERM,            "TERM",     TRUE},
+  #endif
+! #ifdef SIGVTALRM
+      {SIGVTALRM,          "VTALRM",   TRUE},
+  #endif
+  #if defined(SIGPROF) && !defined(FEAT_MZSCHEME) && !defined(WE_ARE_PROFILING)
+--- 283,289 ----
+  #ifdef SIGTERM
+      {SIGTERM,            "TERM",     TRUE},
+  #endif
+! #if defined(SIGVTALRM) && !defined(FEAT_RUBY)
+      {SIGVTALRM,          "VTALRM",   TRUE},
+  #endif
+  #if defined(SIGPROF) && !defined(FEAT_MZSCHEME) && !defined(WE_ARE_PROFILING)
+***************
+*** 1107,1113 ****
+   * On Linux, signal is not always handled immediately either.
+   * See https://bugs.launchpad.net/bugs/291373
+   *
+!  * volatile because it is used in in signal handler sigcont_handler().
+   */
+  static volatile int sigcont_received;
+  static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
+--- 1107,1113 ----
+   * On Linux, signal is not always handled immediately either.
+   * See https://bugs.launchpad.net/bugs/291373
+   *
+!  * volatile because it is used in signal handler sigcont_handler().
+   */
+  static volatile int sigcont_received;
+  static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
+*** ../vim-7.3.117/src/version.c       2011-02-09 17:42:53.000000000 +0100
+--- src/version.c      2011-02-09 18:46:53.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     118,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+221. Your wife melts your keyboard in the oven.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.119.patch0 b/vim/patches/vim-7.3.119.patch0
new file mode 100644 (file)
index 0000000..1547625
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.1
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.119
+Problem:    Build problem on Mac. (Nicholas Stallard)
+Solution:   Use "extern" instead of "EXTERN" for p_vfile.
+Files:     src/option.h
+
+
+*** ../vim-7.3.118/src/option.h        2011-02-09 15:59:32.000000000 +0100
+--- src/option.h       2011-02-12 13:56:50.000000000 +0100
+***************
+*** 857,863 ****
+  #ifdef IN_OPTION_C
+  char_u       *p_vfile = (char_u *)""; /* used before options are initialized */
+  #else
+! EXTERN char_u        *p_vfile;       /* 'verbosefile' */
+  #endif
+  EXTERN int   p_warn;         /* 'warn' */
+  #ifdef FEAT_CMDL_COMPL
+--- 857,863 ----
+  #ifdef IN_OPTION_C
+  char_u       *p_vfile = (char_u *)""; /* used before options are initialized */
+  #else
+! extern char_u        *p_vfile;       /* 'verbosefile' */
+  #endif
+  EXTERN int   p_warn;         /* 'warn' */
+  #ifdef FEAT_CMDL_COMPL
+*** ../vim-7.3.118/src/version.c       2011-02-09 18:47:36.000000000 +0100
+--- src/version.c      2011-02-12 13:59:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     119,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+237. You tattoo your email address on your forehead.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.120.patch0 b/vim/patches/vim-7.3.120.patch0
new file mode 100644 (file)
index 0000000..04e2f63
--- /dev/null
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.120
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.120
+Problem:    The message for an existing swap file is too long to fit in a 25
+           line terminal.
+Solution:   Make the message shorter. (Chad Miller)
+Files:     src/memline.c
+
+
+*** ../vim-7.3.119/src/memline.c       2011-01-17 20:08:03.000000000 +0100
+--- src/memline.c      2011-02-13 14:18:08.000000000 +0100
+***************
+*** 4071,4079 ****
+      }
+      /* Some of these messages are long to allow translation to
+       * other languages. */
+!     MSG_PUTS(_("\n(1) Another program may be editing the same file.\n    If this is the case, be careful not to end up with two\n    different instances of the same file when making changes.\n"));
+!     MSG_PUTS(_("    Quit, or continue with caution.\n"));
+!     MSG_PUTS(_("\n(2) An edit session for this file crashed.\n"));
+      MSG_PUTS(_("    If this is the case, use \":recover\" or \"vim -r "));
+      msg_outtrans(buf->b_fname);
+      MSG_PUTS(_("\"\n    to recover the changes (see \":help recovery\").\n"));
+--- 4071,4079 ----
+      }
+      /* Some of these messages are long to allow translation to
+       * other languages. */
+!     MSG_PUTS(_("\n(1) Another program may be editing the same file.  If this is the case,\n    be careful not to end up with two different instances of the same\n    file when making changes."));
+!     MSG_PUTS(_("  Quit, or continue with caution.\n"));
+!     MSG_PUTS(_("(2) An edit session for this file crashed.\n"));
+      MSG_PUTS(_("    If this is the case, use \":recover\" or \"vim -r "));
+      msg_outtrans(buf->b_fname);
+      MSG_PUTS(_("\"\n    to recover the changes (see \":help recovery\").\n"));
+*** ../vim-7.3.119/src/version.c       2011-02-12 13:59:55.000000000 +0100
+--- src/version.c      2011-02-15 11:56:14.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     120,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+257. Your "hundred-and-one" lists include well over 101 items, since you
+     automatically interpret all numbers in hexadecimal notation.
+     (hex 101 = decimal 257)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.121.patch0 b/vim/patches/vim-7.3.121.patch0
new file mode 100644 (file)
index 0000000..f51a774
--- /dev/null
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.121
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.121
+Problem:    Complicated 'statusline' causes a crash. (Christian Brabandt)
+Solution:   Check that the number of items is not too big.
+Files:     src/buffer.c
+
+
+*** ../vim-7.3.120/src/buffer.c        2011-02-01 21:54:56.000000000 +0100
+--- src/buffer.c       2011-02-15 14:00:51.000000000 +0100
+***************
+*** 3460,3465 ****
+--- 3461,3478 ----
+      prevchar_isitem = FALSE;
+      for (s = usefmt; *s; )
+      {
++      if (curitem == STL_MAX_ITEM)
++      {
++          /* There are too many items.  Add the error code to the statusline
++           * to give the user a hint about what went wrong. */
++          if (p + 6 < out + outlen)
++          {
++              mch_memmove(p, " E541", (size_t)5);
++              p += 5;
++          }
++          break;
++      }
++ 
+       if (*s != NUL && *s != '%')
+           prevchar_isflag = prevchar_isitem = FALSE;
+  
+*** ../vim-7.3.120/src/version.c       2011-02-15 11:56:56.000000000 +0100
+--- src/version.c      2011-02-15 14:23:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     121,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+265. Your reason for not staying in touch with family is that
+     they do not have e-mail addresses.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.122.patch0 b/vim/patches/vim-7.3.122.patch0
new file mode 100644 (file)
index 0000000..02e9759
--- /dev/null
@@ -0,0 +1,100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.122
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.122
+Problem:    Having auto/config.mk in the repository causes problems.
+Solution:   Remove auto/config.mk from the distribution.  In the toplevel
+           Makefile copy it from the "dist" file.
+Files:     Makefile, src/Makefile, src/auto/config.mk
+
+
+*** ../vim-7.3.121/Makefile    2010-08-15 21:57:20.000000000 +0200
+--- Makefile   2011-02-12 14:28:09.000000000 +0100
+***************
+*** 23,28 ****
+--- 23,31 ----
+  # has run can result in compiling with $(CC) empty.
+  
+  first:
++      @if test ! -f src/auto/config.mk; then \
++              cp src/config.mk.dist src/auto/config.mk; \
++      fi
+       @echo "Starting make in the src directory."
+       @echo "If there are problems, cd to the src directory and run make there"
+       cd src && $(MAKE) $@
+***************
+*** 30,35 ****
+--- 33,41 ----
+  # Some make programs use the last target for the $@ default; put the other
+  # targets separately to always let $@ expand to "first" by default.
+  all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
++      @if test ! -f src/auto/config.mk; then \
++              cp src/config.mk.dist src/auto/config.mk; \
++      fi
+       @echo "Starting make in the src directory."
+       @echo "If there are problems, cd to the src directory and run make there"
+       cd src && $(MAKE) $@
+*** ../vim-7.3.121/src/Makefile        2010-11-03 22:32:18.000000000 +0100
+--- src/Makefile       2011-02-15 15:21:37.000000000 +0100
+***************
+*** 283,294 ****
+  
+  ######################## auto/config.mk ######################## {{{1
+  # At this position auto/config.mk is included. When starting from the
+! # distribution it is almost empty. After running auto/configure it contains
+! # settings that have been discovered for your system. Settings below this
+! # include override settings in auto/config.mk!
+! 
+! # Note: if auto/config.mk is lost somehow (e.g., because configure was
+! # interrupted), create an empty auto/config.mk file and do "make config".
+  
+  # (X) How to include auto/config.mk depends on the version of "make" you have,
+  #     if the current choice doesn't work, try the other one.
+--- 283,295 ----
+  
+  ######################## auto/config.mk ######################## {{{1
+  # At this position auto/config.mk is included. When starting from the
+! # toplevel Makefile it is almost empty. After running auto/configure it
+! # contains settings that have been discovered for your system. Settings below
+! # this include override settings in auto/config.mk!
+! 
+! # Note: If make fails because auto/config.mk does not exist (it is not
+! # included in the repository), do:
+! #    cp config.mk.dist auto/config.mk
+  
+  # (X) How to include auto/config.mk depends on the version of "make" you have,
+  #     if the current choice doesn't work, try the other one.
+*** ../vim-7.3.121/src/auto/config.mk  2010-08-16 21:59:00.000000000 +0200
+--- src/auto/config.mk 1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,5 ****
+- the first targets to make vim are: scratch config myself
+- srcdir = .
+- VIMNAME = vim
+- EXNAME = ex
+- VIEWNAME = view
+--- 0 ----
+*** ../vim-7.3.121/src/version.c       2011-02-15 14:24:42.000000000 +0100
+--- src/version.c      2011-02-15 15:25:07.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     122,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+267. You get an extra phone line so you can get phone calls.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.123.patch0 b/vim/patches/vim-7.3.123.patch0
new file mode 100644 (file)
index 0000000..0bca41b
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.123
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.123
+Problem:    ml_get error when executing register being recorded into, deleting
+           lines and 'conceallevel' is set. (ZyX)
+Solution:   Don't redraw a line for concealing when it doesn't exist.
+Files:     src/main.c
+
+
+*** ../vim-7.3.122/src/main.c  2010-12-17 18:06:00.000000000 +0100
+--- src/main.c 2011-02-15 16:09:41.000000000 +0100
+***************
+*** 1198,1204 ****
+                       || conceal_cursor_line(curwin)
+                       || need_cursor_line_redraw))
+           {
+!              if (conceal_old_cursor_line != conceal_new_cursor_line)
+                   update_single_line(curwin, conceal_old_cursor_line);
+               update_single_line(curwin, conceal_new_cursor_line);
+               curwin->w_valid &= ~VALID_CROW;
+--- 1198,1206 ----
+                       || conceal_cursor_line(curwin)
+                       || need_cursor_line_redraw))
+           {
+!              if (conceal_old_cursor_line != conceal_new_cursor_line
+!                      && conceal_old_cursor_line
+!                                              <= curbuf->b_ml.ml_line_count)
+                   update_single_line(curwin, conceal_old_cursor_line);
+               update_single_line(curwin, conceal_new_cursor_line);
+               curwin->w_valid &= ~VALID_CROW;
+*** ../vim-7.3.122/src/version.c       2011-02-15 15:27:00.000000000 +0100
+--- src/version.c      2011-02-15 16:15:28.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     123,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+268. You get up in the morning and go online before getting your coffee.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.124.patch0 b/vim/patches/vim-7.3.124.patch0
new file mode 100644 (file)
index 0000000..738c2a1
--- /dev/null
@@ -0,0 +1,229 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.124
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.124
+Problem:    When writing a file in binary mode it may be missing the final EOL
+           if a file previously read was missing the EOL. (Kevin Goodsell)
+Solution:   Move the write_no_eol_lnum into the buffer struct.
+Files:     src/structs.h, src/fileio.c, src/globals.h, src/os_unix.c
+
+
+*** ../vim-7.3.123/src/structs.h       2010-10-20 21:22:17.000000000 +0200
+--- src/structs.h      2011-02-15 17:06:34.000000000 +0100
+***************
+*** 1564,1569 ****
+--- 1564,1572 ----
+  
+      /* end of buffer options */
+  
++     linenr_T b_no_eol_lnum;  /* non-zero lnum when last line of next binary
++                               * write should not have an end-of-line */
++ 
+      int              b_start_eol;    /* last line had eol when it was read */
+      int              b_start_ffc;    /* first char of 'ff' when edit started */
+  #ifdef FEAT_MBYTE
+*** ../vim-7.3.123/src/fileio.c        2011-02-09 16:44:45.000000000 +0100
+--- src/fileio.c       2011-02-15 17:30:54.000000000 +0100
+***************
+*** 317,323 ****
+      int              using_b_fname;
+  #endif
+  
+!     write_no_eol_lnum = 0;   /* in case it was set by the previous read */
+  
+      /*
+       * If there is no file name yet, use the one for the read file.
+--- 317,323 ----
+      int              using_b_fname;
+  #endif
+  
+!     curbuf->b_no_eol_lnum = 0;       /* in case it was set by the previous read */
+  
+      /*
+       * If there is no file name yet, use the one for the read file.
+***************
+*** 2599,2608 ****
+  
+      /*
+       * Trick: We remember if the last line of the read didn't have
+!      * an eol for when writing it again.  This is required for
+       * ":autocmd FileReadPost *.gz set bin|'[,']!gunzip" to work.
+       */
+!     write_no_eol_lnum = read_no_eol_lnum;
+  
+      /* When reloading a buffer put the cursor at the first line that is
+       * different. */
+--- 2599,2609 ----
+  
+      /*
+       * Trick: We remember if the last line of the read didn't have
+!      * an eol even when 'binary' is off, for when writing it again with
+!      * 'binary' on.  This is required for
+       * ":autocmd FileReadPost *.gz set bin|'[,']!gunzip" to work.
+       */
+!     curbuf->b_no_eol_lnum = read_no_eol_lnum;
+  
+      /* When reloading a buffer put the cursor at the first line that is
+       * different. */
+***************
+*** 2650,2662 ****
+                                                           FALSE, NULL, eap);
+       if (msg_scrolled == n)
+           msg_scroll = m;
+! #ifdef FEAT_EVAL
+       if (aborting())     /* autocmds may abort script processing */
+           return FAIL;
+! #endif
+      }
+  #endif
+  
+      if (recoverymode && error)
+       return FAIL;
+      return OK;
+--- 2651,2667 ----
+                                                           FALSE, NULL, eap);
+       if (msg_scrolled == n)
+           msg_scroll = m;
+! # ifdef FEAT_EVAL
+       if (aborting())     /* autocmds may abort script processing */
+           return FAIL;
+! # endif
+      }
+  #endif
+  
++     /* Reset now, following writes should not omit the EOL.  Also, the line
++      * number will become invalid because of edits. */
++     curbuf->b_no_eol_lnum = 0;
++ 
+      if (recoverymode && error)
+       return FAIL;
+      return OK;
+***************
+*** 4560,4566 ****
+       if (end == 0
+               || (lnum == end
+                   && write_bin
+!                  && (lnum == write_no_eol_lnum
+                       || (lnum == buf->b_ml.ml_line_count && !buf->b_p_eol))))
+       {
+           ++lnum;                     /* written the line, count it */
+--- 4565,4571 ----
+       if (end == 0
+               || (lnum == end
+                   && write_bin
+!                  && (lnum == buf->b_no_eol_lnum
+                       || (lnum == buf->b_ml.ml_line_count && !buf->b_p_eol))))
+       {
+           ++lnum;                     /* written the line, count it */
+***************
+*** 5086,5093 ****
+      {
+       aco_save_T      aco;
+  
+-      write_no_eol_lnum = 0;  /* in case it was set by the previous read */
+- 
+       /*
+        * Apply POST autocommands.
+        * Careful: The autocommands may call buf_write() recursively!
+--- 5091,5096 ----
+***************
+*** 7256,7263 ****
+  write_lnum_adjust(offset)
+      linenr_T offset;
+  {
+!     if (write_no_eol_lnum != 0)              /* only if there is a missing eol */
+!      write_no_eol_lnum += offset;
+  }
+  
+  #if defined(TEMPDIRNAMES) || defined(PROTO)
+--- 7259,7266 ----
+  write_lnum_adjust(offset)
+      linenr_T offset;
+  {
+!     if (curbuf->b_no_eol_lnum != 0)  /* only if there is a missing eol */
+!      curbuf->b_no_eol_lnum += offset;
+  }
+  
+  #if defined(TEMPDIRNAMES) || defined(PROTO)
+*** ../vim-7.3.123/src/globals.h       2010-12-02 21:43:10.000000000 +0100
+--- src/globals.h      2011-02-15 17:06:06.000000000 +0100
+***************
+*** 1057,1066 ****
+                       ;
+  #endif
+  
+- EXTERN linenr_T      write_no_eol_lnum INIT(= 0); /* non-zero lnum when last line
+-                                              of next binary write should
+-                                              not have an end-of-line */
+- 
+  #ifdef FEAT_WINDOWS
+  EXTERN int   postponed_split INIT(= 0);  /* for CTRL-W CTRL-] command */
+  EXTERN int   postponed_split_flags INIT(= 0);  /* args for win_split() */
+--- 1057,1062 ----
+*** ../vim-7.3.123/src/os_unix.c       2011-02-09 18:47:36.000000000 +0100
+--- src/os_unix.c      2011-02-15 17:07:22.000000000 +0100
+***************
+*** 4245,4251 ****
+                                * should not have one. */
+                               if (lnum != curbuf->b_op_end.lnum
+                                       || !curbuf->b_p_bin
+!                                      || (lnum != write_no_eol_lnum
+                                           && (lnum !=
+                                                   curbuf->b_ml.ml_line_count
+                                                   || curbuf->b_p_eol)))
+--- 4245,4251 ----
+                                * should not have one. */
+                               if (lnum != curbuf->b_op_end.lnum
+                                       || !curbuf->b_p_bin
+!                                      || (lnum != curbuf->b_no_eol_lnum
+                                           && (lnum !=
+                                                   curbuf->b_ml.ml_line_count
+                                                   || curbuf->b_p_eol)))
+***************
+*** 4588,4597 ****
+                   {
+                       append_ga_line(&ga);
+                       /* remember that the NL was missing */
+!                      write_no_eol_lnum = curwin->w_cursor.lnum;
+                   }
+                   else
+!                      write_no_eol_lnum = 0;
+                   ga_clear(&ga);
+               }
+  
+--- 4588,4597 ----
+                   {
+                       append_ga_line(&ga);
+                       /* remember that the NL was missing */
+!                      curbuf->b_no_eol_lnum = curwin->w_cursor.lnum;
+                   }
+                   else
+!                      curbuf->b_no_eol_lnum = 0;
+                   ga_clear(&ga);
+               }
+  
+*** ../vim-7.3.123/src/version.c       2011-02-15 16:29:54.000000000 +0100
+--- src/version.c      2011-02-15 17:37:38.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     124,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+270. You are subscribed to a mailing list for every piece of software
+     you use.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.125.patch0 b/vim/patches/vim-7.3.125.patch0
new file mode 100644 (file)
index 0000000..719fc95
--- /dev/null
@@ -0,0 +1,66 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.125
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.125
+Problem:    MSVC: Problem with quotes in link argument.
+Solution:   Escape backslashes and quotes. (Weasley)
+Files:     src/Make_mvc.mak
+
+
+*** ../vim-7.3.124/src/Make_mvc.mak    2010-12-08 14:54:58.000000000 +0100
+--- src/Make_mvc.mak   2011-02-15 17:55:24.000000000 +0100
+***************
+*** 1159,1164 ****
+--- 1159,1168 ----
+  E0_CFLAGS = $(CFLAGS:\=\\)
+  E_CFLAGS = $(E0_CFLAGS:"=\")
+  # ") stop the string
++ # $LINKARGS2 may contain backslashes and double quotes, escape them both.
++ E0_LINKARGS2 = $(LINKARGS2:\=\\)
++ E_LINKARGS2 = $(E0_LINKARGS2:"=\")
++ # ") stop the string
+  
+  $(PATHDEF_SRC): auto
+       @echo creating $(PATHDEF_SRC)
+***************
+*** 1167,1173 ****
+       @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; >> $(PATHDEF_SRC)
+       @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> $(PATHDEF_SRC)
+       @echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(E_CFLAGS)"; >> $(PATHDEF_SRC)
+!      @echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(LINKARGS2:\=\\)"; >> $(PATHDEF_SRC)
+       @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
+       @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
+  
+--- 1171,1177 ----
+       @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; >> $(PATHDEF_SRC)
+       @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> $(PATHDEF_SRC)
+       @echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(E_CFLAGS)"; >> $(PATHDEF_SRC)
+!      @echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(E_LINKARGS2)"; >> $(PATHDEF_SRC)
+       @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
+       @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
+  
+*** ../vim-7.3.124/src/version.c       2011-02-15 17:39:14.000000000 +0100
+--- src/version.c      2011-02-15 17:55:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     125,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+271. You collect hilarious signatures from all 250 mailing lists you
+     are subscribed to.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.126.patch0 b/vim/patches/vim-7.3.126.patch0
new file mode 100644 (file)
index 0000000..89d9684
--- /dev/null
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.126
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.126
+Problem:    Compiler warning for signed pointer.
+Solution:   Use unsigned int argument for sscanf().
+Files:     src/blowfish.c
+
+
+*** ../vim-7.3.125/src/blowfish.c      2010-08-15 21:57:28.000000000 +0200
+--- src/blowfish.c     2010-12-17 19:58:18.000000000 +0100
+***************
+*** 413,418 ****
+--- 413,419 ----
+      int    salt_len;
+  {
+      int      i, j, keypos = 0;
++     unsigned u;
+      UINT32_T val, data_l, data_r;
+      char_u   *key;
+      int      keylen;
+***************
+*** 432,439 ****
+      }
+      for (i = 0; i < keylen; i++)
+      {
+!      sscanf((char *)&key[i * 2], "%2x", &j);
+!      key[i] = j;
+      }
+  
+      mch_memmove(sbx, sbi, 4 * 4 * 256);
+--- 433,440 ----
+      }
+      for (i = 0; i < keylen; i++)
+      {
+!      sscanf((char *)&key[i * 2], "%2x", &u);
+!      key[i] = u;
+      }
+  
+      mch_memmove(sbx, sbi, 4 * 4 * 256);
+*** ../vim-7.3.125/src/version.c       2011-02-15 18:06:11.000000000 +0100
+--- src/version.c      2011-02-25 14:40:22.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     126,
+  /**/
+
+-- 
+Why doesn't Tarzan have a beard?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.127.patch0 b/vim/patches/vim-7.3.127.patch0
new file mode 100644 (file)
index 0000000..518d2f7
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.127
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.127
+Problem:    Compiler complains about comma.
+Solution:   Remove comma after last enum element.
+Files:     src/ex_cmds2.c
+
+
+*** ../vim-7.3.126/src/ex_cmds2.c      2010-12-17 18:06:00.000000000 +0100
+--- src/ex_cmds2.c     2010-12-17 19:58:37.000000000 +0100
+***************
+*** 1115,1121 ****
+  static enum
+  {
+      PEXP_SUBCMD,     /* expand :profile sub-commands */
+!     PEXP_FUNC,               /* expand :profile func {funcname} */
+  } pexpand_what;
+  
+  static char *pexpand_cmds[] = {
+--- 1115,1121 ----
+  static enum
+  {
+      PEXP_SUBCMD,     /* expand :profile sub-commands */
+!     PEXP_FUNC                /* expand :profile func {funcname} */
+  } pexpand_what;
+  
+  static char *pexpand_cmds[] = {
+*** ../vim-7.3.126/src/version.c       2011-02-25 14:40:51.000000000 +0100
+--- src/version.c      2011-02-25 14:45:19.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     127,
+  /**/
+
+-- 
+   LAUNCELOT leaps into SHOT with a mighty cry and runs the GUARD through and
+   hacks him to the floor.  Blood.  Swashbuckling music (perhaps).
+   LAUNCELOT races through into the castle screaming.
+SECOND SENTRY: Hey!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.128.patch0 b/vim/patches/vim-7.3.128.patch0
new file mode 100644 (file)
index 0000000..d443868
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.128
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.128
+Problem:    Another compiler warning for signed pointer.
+Solution:   Use unsigned int argument for sscanf().
+Files:     src/mark.c
+
+
+*** ../vim-7.3.127/src/mark.c  2010-08-15 21:57:25.000000000 +0200
+--- src/mark.c 2010-12-17 20:00:05.000000000 +0100
+***************
+*** 1750,1756 ****
+           {
+               if (line[1] != NUL)
+               {
+!                  sscanf((char *)line + 2, "%ld %u", &pos.lnum, &pos.col);
+                   switch (line[1])
+                   {
+                       case '"': curbuf->b_last_cursor = pos; break;
+--- 1750,1759 ----
+           {
+               if (line[1] != NUL)
+               {
+!                  unsigned u;
+! 
+!                  sscanf((char *)line + 2, "%ld %u", &pos.lnum, &u);
+!                  pos.col = u;
+                   switch (line[1])
+                   {
+                       case '"': curbuf->b_last_cursor = pos; break;
+*** ../vim-7.3.127/src/version.c       2011-02-25 14:46:06.000000000 +0100
+--- src/version.c      2011-02-25 15:10:34.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     128,
+  /**/
+
+-- 
+FATHER:    Who are you?
+PRINCE:    I'm ... your son ...
+FATHER:    Not you.
+LAUNCELOT: I'm ... er ... Sir Launcelot, sir.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.129.patch0 b/vim/patches/vim-7.3.129.patch0
new file mode 100644 (file)
index 0000000..10f11d6
--- /dev/null
@@ -0,0 +1,241 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.129
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.129
+Problem:    Using integer like a boolean.
+Solution:   Nicer check for integer being non-zero.
+Files:     src/tag.c
+
+
+*** ../vim-7.3.128/src/tag.c   2010-12-17 18:06:00.000000000 +0100
+--- src/tag.c  2010-12-17 17:49:35.000000000 +0100
+***************
+*** 204,210 ****
+      else
+      {
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!      if (g_do_tagpreview)
+           use_tagstack = FALSE;
+       else
+  #endif
+--- 204,210 ----
+      else
+      {
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!      if (g_do_tagpreview != 0)
+           use_tagstack = FALSE;
+       else
+  #endif
+***************
+*** 222,228 ****
+                   ))
+       {
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!          if (g_do_tagpreview)
+           {
+               if (ptag_entry.tagname != NULL
+                       && STRCMP(ptag_entry.tagname, tag) == 0)
+--- 222,228 ----
+                   ))
+       {
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!          if (g_do_tagpreview != 0)
+           {
+               if (ptag_entry.tagname != NULL
+                       && STRCMP(ptag_entry.tagname, tag) == 0)
+***************
+*** 278,284 ****
+       {
+           if (
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!                  g_do_tagpreview ? ptag_entry.tagname == NULL :
+  #endif
+                   tagstacklen == 0)
+           {
+--- 278,284 ----
+       {
+           if (
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!                  g_do_tagpreview != 0 ? ptag_entry.tagname == NULL :
+  #endif
+                   tagstacklen == 0)
+           {
+***************
+*** 361,367 ****
+              )
+           {
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!              if (g_do_tagpreview)
+               {
+                   cur_match = ptag_entry.cur_match;
+                   cur_fnum = ptag_entry.cur_fnum;
+--- 361,367 ----
+              )
+           {
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!              if (g_do_tagpreview != 0)
+               {
+                   cur_match = ptag_entry.cur_match;
+                   cur_fnum = ptag_entry.cur_fnum;
+***************
+*** 399,405 ****
+               prevtagstackidx = tagstackidx;
+  
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!              if (g_do_tagpreview)
+               {
+                   cur_match = ptag_entry.cur_match;
+                   cur_fnum = ptag_entry.cur_fnum;
+--- 399,405 ----
+               prevtagstackidx = tagstackidx;
+  
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!              if (g_do_tagpreview != 0)
+               {
+                   cur_match = ptag_entry.cur_match;
+                   cur_fnum = ptag_entry.cur_fnum;
+***************
+*** 437,443 ****
+       }
+  
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!      if (g_do_tagpreview)
+       {
+           if (type != DT_SELECT && type != DT_JUMP)
+           {
+--- 437,443 ----
+       }
+  
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!      if (g_do_tagpreview != 0)
+       {
+           if (type != DT_SELECT && type != DT_JUMP)
+           {
+***************
+*** 492,498 ****
+       if (use_tagstack)
+           name = tagstack[tagstackidx].tagname;
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!      else if (g_do_tagpreview)
+           name = ptag_entry.tagname;
+  #endif
+       else
+--- 492,498 ----
+       if (use_tagstack)
+           name = tagstack[tagstackidx].tagname;
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!      else if (g_do_tagpreview != 0)
+           name = ptag_entry.tagname;
+  #endif
+       else
+***************
+*** 620,626 ****
+                   parse_match(matches[i], &tagp);
+                   if (!new_tag && (
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!                              (g_do_tagpreview
+                                && i == ptag_entry.cur_match) ||
+  #endif
+                               (use_tagstack
+--- 620,626 ----
+                   parse_match(matches[i], &tagp);
+                   if (!new_tag && (
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!                              (g_do_tagpreview != 0
+                                && i == ptag_entry.cur_match) ||
+  #endif
+                               (use_tagstack
+***************
+*** 962,968 ****
+               ++tagstackidx;
+           }
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!          else if (g_do_tagpreview)
+           {
+               ptag_entry.cur_match = cur_match;
+               ptag_entry.cur_fnum = cur_fnum;
+--- 962,968 ----
+               ++tagstackidx;
+           }
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!          else if (g_do_tagpreview != 0)
+           {
+               ptag_entry.cur_match = cur_match;
+               ptag_entry.cur_fnum = cur_fnum;
+***************
+*** 3110,3116 ****
+  #endif
+  
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!     if (g_do_tagpreview)
+      {
+       postponed_split = 0;    /* don't split again below */
+       curwin_save = curwin;   /* Save current window */
+--- 3110,3116 ----
+  #endif
+  
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!     if (g_do_tagpreview != 0)
+      {
+       postponed_split = 0;    /* don't split again below */
+       curwin_save = curwin;   /* Save current window */
+***************
+*** 3148,3154 ****
+       /* A :ta from a help file will keep the b_help flag set.  For ":ptag"
+        * we need to use the flag from the window where we came from. */
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!      if (g_do_tagpreview)
+           keep_help_flag = curwin_save->w_buffer->b_help;
+       else
+  #endif
+--- 3148,3154 ----
+       /* A :ta from a help file will keep the b_help flag set.  For ":ptag"
+        * we need to use the flag from the window where we came from. */
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!      if (g_do_tagpreview != 0)
+           keep_help_flag = curwin_save->w_buffer->b_help;
+       else
+  #endif
+***************
+*** 3322,3328 ****
+       }
+  
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!      if (g_do_tagpreview && curwin != curwin_save && win_valid(curwin_save))
+       {
+           /* Return cursor to where we were */
+           validate_cursor();
+--- 3322,3329 ----
+       }
+  
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+!      if (g_do_tagpreview != 0
+!                         && curwin != curwin_save && win_valid(curwin_save))
+       {
+           /* Return cursor to where we were */
+           validate_cursor();
+*** ../vim-7.3.128/src/version.c       2011-02-25 15:11:17.000000000 +0100
+--- src/version.c      2011-02-25 15:12:25.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     129,
+  /**/
+
+-- 
+PRINCE:    He's come to rescue me, father.
+LAUNCELOT: (embarrassed) Well, let's not jump to conclusions ...
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.130.patch0 b/vim/patches/vim-7.3.130.patch0
new file mode 100644 (file)
index 0000000..3f7db76
--- /dev/null
@@ -0,0 +1,74 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.130
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.130
+Problem:    Variable misplaced in #ifdef.
+Solution:   Move clipboard_event_time outside of #ifdef.
+Files:     src/gui_gtk_x11.c
+
+
+*** ../vim-7.3.129/src/gui_gtk_x11.c   2010-08-15 21:57:31.000000000 +0200
+--- src/gui_gtk_x11.c  2010-12-04 15:26:41.000000000 +0100
+***************
+*** 86,94 ****
+  
+  #ifdef HAVE_X11_SUNKEYSYM_H
+  # include <X11/Sunkeysym.h>
+- static guint32 clipboard_event_time = CurrentTime;
+  #endif
+  
+  /*
+   * Easy-to-use macro for multihead support.
+   */
+--- 86,95 ----
+  
+  #ifdef HAVE_X11_SUNKEYSYM_H
+  # include <X11/Sunkeysym.h>
+  #endif
+  
++ static guint32 clipboard_event_time = CurrentTime;
++ 
+  /*
+   * Easy-to-use macro for multihead support.
+   */
+***************
+*** 5419,5425 ****
+       }
+  
+  #if defined(FEAT_NETBEANS_INTG)
+!      /* Process the queued netbeans messages. */
+       netbeans_parse_messages();
+  #endif
+  
+--- 5420,5426 ----
+       }
+  
+  #if defined(FEAT_NETBEANS_INTG)
+!      /* Process any queued netbeans messages. */
+       netbeans_parse_messages();
+  #endif
+  
+*** ../vim-7.3.129/src/version.c       2011-02-25 15:13:43.000000000 +0100
+--- src/version.c      2011-02-25 15:15:02.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     130,
+  /**/
+
+-- 
+A vacation is a period of travel during which you find that you
+took twice as many clothes and half as much money as you needed.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.131.patch0 b/vim/patches/vim-7.3.131.patch0
new file mode 100644 (file)
index 0000000..e142059
--- /dev/null
@@ -0,0 +1,47 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.131
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.131
+Problem:    Including errno.h too often.
+Solution:   Don't include errno.h in Unix header file.
+Files:     src/os_unix.h
+
+
+*** ../vim-7.3.130/src/os_unix.h       2010-08-15 21:57:28.000000000 +0200
+--- src/os_unix.h      2010-12-17 20:05:34.000000000 +0100
+***************
+*** 184,193 ****
+  
+  #define BASENAMELEN  (MAXNAMLEN - 5)
+  
+- #ifdef HAVE_ERRNO_H
+- # include <errno.h>
+- #endif
+- 
+  #ifdef HAVE_PWD_H
+  # include <pwd.h>
+  #endif
+--- 184,189 ----
+*** ../vim-7.3.130/src/version.c       2011-02-25 15:15:43.000000000 +0100
+--- src/version.c      2011-02-25 15:16:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     131,
+  /**/
+
+-- 
+Overflow on /dev/null, please empty the bit bucket.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.132.patch0 b/vim/patches/vim-7.3.132.patch0
new file mode 100644 (file)
index 0000000..2f0753d
--- /dev/null
@@ -0,0 +1,82 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.132
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.132
+Problem:    C++ style comments.
+Solution:   Change to C comments.
+Files:     src/if_python3.c
+
+
+*** ../vim-7.3.131/src/if_python3.c    2010-11-16 19:25:56.000000000 +0100
+--- src/if_python3.c   2011-01-16 01:28:35.000000000 +0100
+***************
+*** 22,29 ****
+   * Adaptations to support both python3.x and python2.x
+   */
+  
+! // uncomment this if used with the debug version of python
+! // #define Py_DEBUG
+  
+  #include "vim.h"
+  
+--- 22,29 ----
+   * Adaptations to support both python3.x and python2.x
+   */
+  
+! /* uncomment this if used with the debug version of python */
+! /* #define Py_DEBUG */
+  
+  #include "vim.h"
+  
+***************
+*** 74,80 ****
+  #define PyString_Size(obj) PyUnicode_GET_SIZE(obj)
+  #define PyString_FromString(repr) PyUnicode_FromString(repr)
+  
+! #if defined(DYNAMIC_PYTHON3)
+  
+  # ifndef WIN3264
+  #  include <dlfcn.h>
+--- 74,80 ----
+  #define PyString_Size(obj) PyUnicode_GET_SIZE(obj)
+  #define PyString_FromString(repr) PyUnicode_FromString(repr)
+  
+! #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
+  
+  # ifndef WIN3264
+  #  include <dlfcn.h>
+*** ../vim-7.3.131/src/version.c       2011-02-25 15:17:14.000000000 +0100
+--- src/version.c      2011-02-25 15:18:18.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     132,
+  /**/
+
+-- 
+        **  Hello and Welcome to the Psychiatric Hotline **
+If you are obsessive-compulsive, please press 1 repeatedly.
+If you are co-dependent, please ask someone to press 2.
+If you have multiple personalities, please press 3, 4, 5 and 6.
+If you are paranoid-delusional, we know who you are and what you want
+       - just stay on the line so we can trace the call.
+If you are schizophrenic, listen carefully and a little voice will
+       tell you which number to press next.
+If you are manic-depressive, it doesn't matter which number you press
+       - no one will answer.
+If you suffer from panic attacks, push every button you can find.
+If you are sane, please hold on - we have the rest of humanity on the
+        other line and they desparately want to ask you a few questions.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.133.patch0 b/vim/patches/vim-7.3.133.patch0
new file mode 100644 (file)
index 0000000..d7d9951
--- /dev/null
@@ -0,0 +1,122 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.133
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.133
+Problem:    When using encryption it's not clear what method was used.
+Solution:   In the file message show "blowfish" when using blowfish.
+Files:     src/fileio.c
+
+
+*** ../vim-7.3.132/src/fileio.c        2011-02-15 17:39:14.000000000 +0100
+--- src/fileio.c       2011-02-25 16:30:19.000000000 +0100
+***************
+*** 250,255 ****
+--- 250,256 ----
+  #ifdef FEAT_CRYPT
+      char_u   *cryptkey = NULL;
+      int              did_ask_for_key = FALSE;
++     int              crypt_method_used;
+  #endif
+  #ifdef FEAT_PERSISTENT_UNDO
+      context_sha256_T sha_ctx;
+***************
+*** 2289,2294 ****
+--- 2290,2296 ----
+       save_file_ff(curbuf);           /* remember the current file format */
+  
+  #ifdef FEAT_CRYPT
++     crypt_method_used = use_crypt_method;
+      if (cryptkey != NULL)
+      {
+       crypt_pop_state();
+***************
+*** 2483,2489 ****
+  #ifdef FEAT_CRYPT
+           if (cryptkey != NULL)
+           {
+!              STRCAT(IObuff, _("[crypted]"));
+               c = TRUE;
+           }
+  #endif
+--- 2485,2494 ----
+  #ifdef FEAT_CRYPT
+           if (cryptkey != NULL)
+           {
+!              if (crypt_method_used == 1)
+!                  STRCAT(IObuff, _("[blowfish]"));
+!              else
+!                  STRCAT(IObuff, _("[crypted]"));
+               c = TRUE;
+           }
+  #endif
+***************
+*** 3199,3204 ****
+--- 3204,3212 ----
+      int                  write_undo_file = FALSE;
+      context_sha256_T sha_ctx;
+  #endif
++ #ifdef FEAT_CRYPT
++     int                  crypt_method_used;
++ #endif
+  
+      if (fname == NULL || *fname == NUL)      /* safety check */
+       return FAIL;
+***************
+*** 4728,4733 ****
+--- 4736,4742 ----
+       mch_set_acl(wfname, acl);
+  #endif
+  #ifdef FEAT_CRYPT
++     crypt_method_used = use_crypt_method;
+      if (wb_flags & FIO_ENCRYPTED)
+       crypt_pop_state();
+  #endif
+***************
+*** 4882,4888 ****
+  #ifdef FEAT_CRYPT
+       if (wb_flags & FIO_ENCRYPTED)
+       {
+!          STRCAT(IObuff, _("[crypted]"));
+           c = TRUE;
+       }
+  #endif
+--- 4891,4900 ----
+  #ifdef FEAT_CRYPT
+       if (wb_flags & FIO_ENCRYPTED)
+       {
+!          if (crypt_method_used == 1)
+!              STRCAT(IObuff, _("[blowfish]"));
+!          else
+!              STRCAT(IObuff, _("[crypted]"));
+           c = TRUE;
+       }
+  #endif
+*** ../vim-7.3.132/src/version.c       2011-02-25 15:18:46.000000000 +0100
+--- src/version.c      2011-02-25 16:42:58.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     133,
+  /**/
+
+-- 
+    [clop clop]
+GUARD #1:  Halt!  Who goes there?
+ARTHUR:    It is I, Arthur, son of Uther Pendragon, from the castle of
+           Camelot.  King of the Britons, defeator of the Saxons, sovereign of
+           all England!
+GUARD #1:  Pull the other one!
+                                  The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.134.patch0 b/vim/patches/vim-7.3.134.patch0
new file mode 100644 (file)
index 0000000..cb20ce4
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.134
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.134
+Problem:    Drag-n-drop doesn't work in KDE Dolphin.
+Solution:   Add GDK_ACTION_MOVE flag. (Florian Degner)
+Files:     src/gui_gtk_x11.c
+
+
+*** ../vim-7.3.133/src/gui_gtk_x11.c   2011-02-25 15:15:43.000000000 +0100
+--- src/gui_gtk_x11.c  2011-02-25 17:07:36.000000000 +0100
+***************
+*** 3094,3100 ****
+      gtk_drag_dest_set(gui.drawarea,
+                     GTK_DEST_DEFAULT_ALL,
+                     targets, n_targets,
+!                    GDK_ACTION_COPY);
+  }
+  
+  /*
+--- 3094,3100 ----
+      gtk_drag_dest_set(gui.drawarea,
+                     GTK_DEST_DEFAULT_ALL,
+                     targets, n_targets,
+!                    GDK_ACTION_COPY | GDK_ACTION_MOVE);
+  }
+  
+  /*
+*** ../vim-7.3.133/src/version.c       2011-02-25 16:52:13.000000000 +0100
+--- src/version.c      2011-02-25 17:08:35.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     134,
+  /**/
+
+-- 
+Proverb: A nightingale that forgets the lyrics is a hummingbird.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.135.patch0 b/vim/patches/vim-7.3.135.patch0
new file mode 100644 (file)
index 0000000..ca1ebd6
--- /dev/null
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.135
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.135
+Problem:    When there is no previous substitute pattern, the previous search
+           pattern is used.  The other way around doesn't work.
+Solution:   When there is no previous search pattern, use the previous
+           substitute pattern if possible. (Christian Brabandt)
+Files:     src/search.c
+
+
+*** ../vim-7.3.134/src/search.c        2010-09-21 16:56:29.000000000 +0200
+--- src/search.c       2011-02-25 18:36:56.000000000 +0100
+***************
+*** 1161,1172 ****
+       {
+           if (spats[RE_SEARCH].pat == NULL)       /* no previous pattern */
+           {
+!              EMSG(_(e_noprevre));
+!              retval = 0;
+!              goto end_do_search;
+           }
+-          /* make search_regcomp() use spats[RE_SEARCH].pat */
+-          searchstr = (char_u *)"";
+       }
+  
+       if (pat != NULL && *pat != NUL) /* look for (new) offset */
+--- 1161,1180 ----
+       {
+           if (spats[RE_SEARCH].pat == NULL)       /* no previous pattern */
+           {
+!              pat = spats[RE_SUBST].pat;
+!              if (pat == NULL)
+!              {
+!                  EMSG(_(e_noprevre));
+!                  retval = 0;
+!                  goto end_do_search;
+!              }
+!              searchstr = pat;
+!          }
+!          else
+!          {
+!              /* make search_regcomp() use spats[RE_SEARCH].pat */
+!              searchstr = (char_u *)"";
+           }
+       }
+  
+       if (pat != NULL && *pat != NUL) /* look for (new) offset */
+***************
+*** 4527,4533 ****
+  #if defined(FEAT_FIND_ID) || defined(PROTO)
+  /*
+   * Find identifiers or defines in included files.
+!  * if p_ic && (compl_cont_status & CONT_SOL) then ptr must be in lowercase.
+   */
+      void
+  find_pattern_in_path(ptr, dir, len, whole, skip_comments,
+--- 4535,4541 ----
+  #if defined(FEAT_FIND_ID) || defined(PROTO)
+  /*
+   * Find identifiers or defines in included files.
+!  * If p_ic && (compl_cont_status & CONT_SOL) then ptr must be in lowercase.
+   */
+      void
+  find_pattern_in_path(ptr, dir, len, whole, skip_comments,
+*** ../vim-7.3.134/src/version.c       2011-02-25 17:10:22.000000000 +0100
+--- src/version.c      2011-02-25 18:35:30.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     135,
+  /**/
+
+-- 
+A real patriot is the fellow who gets a parking ticket and rejoices
+that the system works.
+
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.136.patch0 b/vim/patches/vim-7.3.136.patch0
new file mode 100644 (file)
index 0000000..87acecb
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.136
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.136
+Problem:    Duplicate include of assert.h.
+Solution:   Remove it.
+Files:     src/if_cscope.c
+
+
+*** ../vim-7.3.135/src/if_cscope.c     2010-12-30 11:41:05.000000000 +0100
+--- src/if_cscope.c    2011-03-03 15:01:15.000000000 +0100
+***************
+*** 13,19 ****
+  
+  #if defined(FEAT_CSCOPE) || defined(PROTO)
+  
+- #include <assert.h>
+  #include <sys/types.h>
+  #include <sys/stat.h>
+  #if defined(UNIX)
+--- 13,18 ----
+*** ../vim-7.3.135/src/version.c       2011-02-25 18:38:29.000000000 +0100
+--- src/version.c      2011-03-03 14:59:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     136,
+  /**/
+
+-- 
+ARTHUR:  You fight with the strength of many men, Sir knight.
+         I am Arthur, King of the Britons.  [pause]
+         I seek the finest and the bravest knights in the land to join me
+         in my Court of Camelot.  [pause]
+         You have proved yourself worthy; will you join me?  [pause]
+         You make me sad.  So be it.  Come, Patsy.
+BLACK KNIGHT:  None shall pass.
+                                  The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.137.patch0 b/vim/patches/vim-7.3.137.patch0
new file mode 100644 (file)
index 0000000..91f68ed
--- /dev/null
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.137
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.137 (after 7.3.091)
+Problem:    When 'lazyredraw' is set the screen may not be updated. (Ivan
+           Krasilnikov)
+Solution:   Call update_screen() before waiting for input.
+Files:     src/misc1.c, src/getchar.c
+
+
+*** ../vim-7.3.136/src/misc1.c 2011-01-22 00:11:42.000000000 +0100
+--- src/misc1.c        2011-03-03 14:02:02.000000000 +0100
+***************
+*** 3115,3121 ****
+--- 3115,3129 ----
+           continue;
+  
+       if (n == KEYLEN_REMOVED)  /* key code removed */
++      {
++          if (must_redraw)
++          {
++              /* Redrawing was postponed, do it now. */
++              update_screen(0);
++              setcursor(); /* put cursor back where it belongs */
++          }
+           continue;
++      }
+       if (n > 0)              /* found a termcode: adjust length */
+           len = n;
+       if (len == 0)           /* nothing typed yet */
+*** ../vim-7.3.136/src/getchar.c       2010-12-30 12:30:26.000000000 +0100
+--- src/getchar.c      2011-03-03 14:01:26.000000000 +0100
+***************
+*** 2710,2717 ****
+                * are still available.  But when those available characters
+                * are part of a mapping, and we are going to do a blocking
+                * wait here.  Need to update the screen to display the
+!               * changed text so far. */
+!              if ((State & INSERT) && advance && must_redraw != 0)
+               {
+                   update_screen(0);
+                   setcursor(); /* put cursor back where it belongs */
+--- 2710,2719 ----
+                * are still available.  But when those available characters
+                * are part of a mapping, and we are going to do a blocking
+                * wait here.  Need to update the screen to display the
+!               * changed text so far. Also for when 'lazyredraw' is set and
+!               * redrawing was postponed because there was something in the
+!               * input buffer (e.g., termresponse). */
+!              if (((State & INSERT) || p_lz) && advance && must_redraw != 0)
+               {
+                   update_screen(0);
+                   setcursor(); /* put cursor back where it belongs */
+*** ../vim-7.3.136/src/version.c       2011-03-03 15:01:25.000000000 +0100
+--- src/version.c      2011-03-03 15:02:45.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     137,
+  /**/
+
+-- 
+ARTHUR:        What?
+BLACK KNIGHT:  None shall pass.
+ARTHUR:        I have no quarrel with you, good Sir knight, but I must cross
+               this bridge.
+BLACK KNIGHT:  Then you shall die.
+                                  The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.138.patch0 b/vim/patches/vim-7.3.138.patch0
new file mode 100644 (file)
index 0000000..e045e79
--- /dev/null
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.138
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.138
+Problem:    ":com" changes the multi-byte text of :echo. (Dimitar Dimitrov)
+Solution:   Search for K_SPECIAL as a byte, not a character. (Ben Schmidt)
+Files:     src/ex_docmd.c
+
+
+*** ../vim-7.3.137/src/ex_docmd.c      2011-01-17 19:50:01.000000000 +0100
+--- src/ex_docmd.c     2011-03-03 15:47:00.000000000 +0100
+***************
+*** 6054,6068 ****
+               end = vim_strchr(start + 1, '>');
+           if (buf != NULL)
+           {
+!              ksp = vim_strchr(p, K_SPECIAL);
+!              if (ksp != NULL && (start == NULL || ksp < start || end == NULL)
+                       && ((ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER)
+  # ifdef FEAT_GUI
+                           || (ksp[1] == KS_EXTRA && ksp[2] == (int)KE_CSI)
+  # endif
+                           ))
+               {
+!                  /* K_SPECIAL han been put in the buffer as K_SPECIAL
+                    * KS_SPECIAL KE_FILLER, like for mappings, but
+                    * do_cmdline() doesn't handle that, so convert it back.
+                    * Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */
+--- 6054,6070 ----
+               end = vim_strchr(start + 1, '>');
+           if (buf != NULL)
+           {
+!              for (ksp = p; *ksp != NUL && *ksp != K_SPECIAL; ++ksp)
+!                  ;
+!              if (*ksp == K_SPECIAL
+!                      && (start == NULL || ksp < start || end == NULL)
+                       && ((ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER)
+  # ifdef FEAT_GUI
+                           || (ksp[1] == KS_EXTRA && ksp[2] == (int)KE_CSI)
+  # endif
+                           ))
+               {
+!                  /* K_SPECIAL has been put in the buffer as K_SPECIAL
+                    * KS_SPECIAL KE_FILLER, like for mappings, but
+                    * do_cmdline() doesn't handle that, so convert it back.
+                    * Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */
+*** ../vim-7.3.137/src/version.c       2011-03-03 15:04:01.000000000 +0100
+--- src/version.c      2011-03-03 15:53:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     138,
+  /**/
+
+-- 
+    f y cn rd ths thn y cn hv grt jb n cmptr prgrmmng
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.139.patch0 b/vim/patches/vim-7.3.139.patch0
new file mode 100644 (file)
index 0000000..057bf65
--- /dev/null
@@ -0,0 +1,111 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.139
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.139 (after 7.3.137)
+Problem:    When 'lazyredraw' is set ":ver" output can't be read.
+Solution:   Don't redraw the screen when at a prompt or command line.
+Files:      src/getchar.c, src/message.c, src/misc1.c
+
+
+*** ../vim-7.3.138/src/getchar.c       2011-03-03 15:04:01.000000000 +0100
+--- src/getchar.c      2011-03-22 12:16:23.000000000 +0100
+***************
+*** 2713,2719 ****
+                * changed text so far. Also for when 'lazyredraw' is set and
+                * redrawing was postponed because there was something in the
+                * input buffer (e.g., termresponse). */
+!              if (((State & INSERT) || p_lz) && advance && must_redraw != 0)
+               {
+                   update_screen(0);
+                   setcursor(); /* put cursor back where it belongs */
+--- 2713,2720 ----
+                * changed text so far. Also for when 'lazyredraw' is set and
+                * redrawing was postponed because there was something in the
+                * input buffer (e.g., termresponse). */
+!              if (((State & INSERT) != 0 || p_lz) && (State & CMDLINE) == 0
+!                        && advance && must_redraw != 0 && !need_wait_return)
+               {
+                   update_screen(0);
+                   setcursor(); /* put cursor back where it belongs */
+*** ../vim-7.3.138/src/message.c       2011-02-01 17:12:20.000000000 +0100
+--- src/message.c      2011-03-22 13:06:24.000000000 +0100
+***************
+*** 879,894 ****
+      if (msg_silent != 0)
+       return;
+  
+! /*
+!  * With the global command (and some others) we only need one return at the
+!  * end. Adjust cmdline_row to avoid the next message overwriting the last one.
+!  * When inside vgetc(), we can't wait for a typed character at all.
+!  */
+      if (vgetc_busy > 0)
+       return;
+      if (no_wait_return)
+      {
+-      need_wait_return = TRUE;
+       if (!exmode_active)
+           cmdline_row = msg_row;
+       return;
+--- 879,895 ----
+      if (msg_silent != 0)
+       return;
+  
+!     /*
+!      * When inside vgetc(), we can't wait for a typed character at all.
+!      * With the global command (and some others) we only need one return at
+!      * the end. Adjust cmdline_row to avoid the next message overwriting the
+!      * last one.
+!      */
+      if (vgetc_busy > 0)
+       return;
++     need_wait_return = TRUE;
+      if (no_wait_return)
+      {
+       if (!exmode_active)
+           cmdline_row = msg_row;
+       return;
+*** ../vim-7.3.138/src/misc1.c 2011-03-03 15:04:01.000000000 +0100
+--- src/misc1.c        2011-03-22 12:15:26.000000000 +0100
+***************
+*** 3116,3122 ****
+  
+       if (n == KEYLEN_REMOVED)  /* key code removed */
+       {
+!          if (must_redraw)
+           {
+               /* Redrawing was postponed, do it now. */
+               update_screen(0);
+--- 3116,3122 ----
+  
+       if (n == KEYLEN_REMOVED)  /* key code removed */
+       {
+!          if (must_redraw != 0 && !need_wait_return && (State & CMDLINE) == 0)
+           {
+               /* Redrawing was postponed, do it now. */
+               update_screen(0);
+*** ../vim-7.3.138/src/version.c       2011-03-03 15:54:45.000000000 +0100
+--- src/version.c      2011-03-22 13:06:33.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     139,
+  /**/
+
+-- 
+"Software is like sex... it's better when it's free."
+               -- Linus Torvalds, initiator of the free Linux OS
+Makes me wonder what FSF stands for...?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.140.patch0 b/vim/patches/vim-7.3.140.patch0
new file mode 100644 (file)
index 0000000..53c3aaf
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.140
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.140
+Problem:    Crash when drawing the "$" at end-of-line for list mode just after
+           the window border and 'cursorline' is set.
+Solution:   Don't check for 'cursorline'. (Quentin Carbonneaux)
+Files:     src/screen.c
+
+
+*** ../vim-7.3.139/src/screen.c        2011-02-09 17:09:26.000000000 +0100
+--- src/screen.c       2011-03-22 13:29:04.000000000 +0100
+***************
+*** 5099,5109 ****
+  #ifdef FEAT_DIFF
+                   || filler_todo > 0
+  #endif
+!                  || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str
+! #ifdef FEAT_SYN_HL
+!                         && !wp->w_p_cul
+! #endif
+!                      )
+                   || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
+               )
+       {
+--- 5099,5105 ----
+  #ifdef FEAT_DIFF
+                   || filler_todo > 0
+  #endif
+!                  || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str)
+                   || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
+               )
+       {
+*** ../vim-7.3.139/src/version.c       2011-03-22 13:07:19.000000000 +0100
+--- src/version.c      2011-03-22 13:27:26.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     140,
+  /**/
+
+-- 
+Lawmakers made it obligatory for everybody to take at least one bath
+each week -- on Saturday night.
+               [real standing law in Vermont, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.141.patch0 b/vim/patches/vim-7.3.141.patch0
new file mode 100644 (file)
index 0000000..deb001b
--- /dev/null
@@ -0,0 +1,94 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.141
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.141
+Problem:    When a key code is not set get a confusing error message.
+Solution:   Change the error message to say the key code is not set.
+Files:     src/option.c, runtime/doc/options.txt
+
+
+*** ../vim-7.3.140/src/option.c        2011-01-22 00:11:42.000000000 +0100
+--- src/option.c       2011-03-22 14:25:52.000000000 +0100
+***************
+*** 4352,4358 ****
+                   p = find_termcode(key_name);
+                   if (p == NULL)
+                   {
+!                      errmsg = (char_u *)N_("E518: Unknown option");
+                       goto skip;
+                   }
+                   else
+--- 4352,4358 ----
+                   p = find_termcode(key_name);
+                   if (p == NULL)
+                   {
+!                      errmsg = (char_u *)N_("E846: Key code not set");
+                       goto skip;
+                   }
+                   else
+***************
+*** 4700,4707 ****
+                                               || s[i] == ','
+                                               || s[i] == NUL))
+                                       break;
+!                                  /* Count backspaces.  Only a comma with an
+!                                   * even number of backspaces before it is
+                                    * recognized as a separator */
+                                   if (s > origval && s[-1] == '\\')
+                                       ++bs;
+--- 4700,4707 ----
+                                               || s[i] == ','
+                                               || s[i] == NUL))
+                                       break;
+!                                  /* Count backslashes.  Only a comma with an
+!                                   * even number of backslashes before it is
+                                    * recognized as a separator */
+                                   if (s > origval && s[-1] == '\\')
+                                       ++bs;
+*** ../vim-7.3.140/runtime/doc/options.txt     2010-12-02 21:43:10.000000000 +0100
+--- runtime/doc/options.txt    2011-03-22 14:32:14.000000000 +0100
+***************
+*** 150,155 ****
+--- 150,167 ----
+  (the ^[ is a real <Esc> here, use CTRL-V <Esc> to enter it)
+  The advantage over a mapping is that it works in all situations.
+  
++ You can define any key codes, e.g.: >
++      :set t_xy=^[foo;
++ There is no warning for using a name that isn't recognized.  You can map these
++ codes as you like: >
++      :map <t_xy> something
++ <                                                            *E846*
++ When a key code is not set, it's like it does not exist.  Trying to get its
++ value will result in an error: >
++      :set t_kb=
++      :set t_kb
++      E846: Key code not set: t_kb
++ 
+  The t_xx options cannot be set from a |modeline| or in the |sandbox|, for
+  security reasons.
+  
+*** ../vim-7.3.140/src/version.c       2011-03-22 13:29:20.000000000 +0100
+--- src/version.c      2011-03-22 14:32:59.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     141,
+  /**/
+
+-- 
+"I know that there are people who don't love their fellow man,
+and I hate those people!" - Tom Lehrer
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.142.patch0 b/vim/patches/vim-7.3.142.patch0
new file mode 100644 (file)
index 0000000..6574f71
--- /dev/null
@@ -0,0 +1,85 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.142
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.142
+Problem:    Python stdout doesn't have a flush() method, causing an import to
+           fail.
+Solution:   Add a dummy flush() method. (Tobias Columbus)
+Files:     src/if_py_both.h
+
+
+*** ../vim-7.3.141/src/if_py_both.h    2010-10-27 12:17:54.000000000 +0200
+--- src/if_py_both.h   2011-03-22 15:37:43.000000000 +0100
+***************
+*** 33,38 ****
+--- 33,39 ----
+  
+  static PyObject *OutputWrite(PyObject *, PyObject *);
+  static PyObject *OutputWritelines(PyObject *, PyObject *);
++ static PyObject *OutputFlush(PyObject *, PyObject *);
+  
+  /* Function to write a line, points to either msg() or emsg(). */
+  typedef void (*writefn)(char_u *);
+***************
+*** 47,55 ****
+  
+  static struct PyMethodDef OutputMethods[] = {
+      /* name,     function,           calling,    documentation */
+!     {"write",            OutputWrite,        1,          "" },
+!     {"writelines",  OutputWritelines,        1,          "" },
+!     { NULL,      NULL,               0,          NULL }
+  };
+  
+  #define PyErr_SetVim(str) PyErr_SetString(VimError, str)
+--- 48,57 ----
+  
+  static struct PyMethodDef OutputMethods[] = {
+      /* name,     function,           calling,    documentation */
+!     {"write",            OutputWrite,        1,          ""},
+!     {"writelines",  OutputWritelines,        1,          ""},
+!     {"flush",       OutputFlush,        1,          ""},
+!     { NULL,      NULL,               0,          NULL}
+  };
+  
+  #define PyErr_SetVim(str) PyErr_SetString(VimError, str)
+***************
+*** 123,128 ****
+--- 125,139 ----
+      return Py_None;
+  }
+  
++     static PyObject *
++ OutputFlush(PyObject *self UNUSED, PyObject *args UNUSED)
++ {
++     /* do nothing */
++     Py_INCREF(Py_None);
++     return Py_None;
++ }
++ 
++ 
+  /* Buffer IO, we write one whole line at a time. */
+  static garray_T io_ga = {0, 0, 1, 80, NULL};
+  static writefn old_fn = NULL;
+*** ../vim-7.3.141/src/version.c       2011-03-22 14:35:01.000000000 +0100
+--- src/version.c      2011-03-22 15:45:38.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     142,
+  /**/
+
+-- 
+Living on Earth includes an annual free trip around the Sun.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.143.patch0 b/vim/patches/vim-7.3.143.patch0
new file mode 100644 (file)
index 0000000..82585b0
--- /dev/null
@@ -0,0 +1,1520 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.143
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.143
+Problem:    Memfile is not tested sufficiently.  Looking up blocks in a
+           memfile is slow when there are many blocks.
+Solution:   Add high level test and unittest.  Adjust the number of hash
+           buckets to the number of blocks.  (Ivan Krasilnikov)
+Files:     Filelist, src/Makefile, src/main.c, src/memfile.c,
+           src/memfile_test.c src/structs.h src/testdir/Make_amiga.mak,
+           src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
+           src/testdir/Make_os2.mak, src/testdir/Make_vms.mak,
+           src/testdir/Makefile, src/testdir/test77.in, src/testdir/test77.ok
+
+
+*** ../vim-7.3.142/Filelist    2010-08-15 21:57:20.000000000 +0200
+--- Filelist   2011-03-22 17:39:22.000000000 +0100
+***************
+*** 39,44 ****
+--- 39,45 ----
+               src/mark.c \
+               src/mbyte.c \
+               src/memfile.c \
++              src/memfile_test.c \
+               src/memline.c \
+               src/menu.c \
+               src/message.c \
+***************
+*** 686,691 ****
+--- 687,694 ----
+               runtime/tutor/tutor.utf-8 \
+               runtime/tutor/tutor.?? \
+               runtime/tutor/tutor.??.* \
++              runtime/tutor/tutor.bar \
++              runtime/tutor/tutor.bar.* \
+               runtime/spell/README.txt \
+               runtime/spell/??/*.diff \
+               runtime/spell/??/main.aap \
+*** ../vim-7.3.142/src/Makefile        2011-02-15 15:27:00.000000000 +0100
+--- src/Makefile       2011-03-22 18:07:25.000000000 +0100
+***************
+*** 561,567 ****
+  #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
+  
+  # Use this with GCC to check for mistakes, unused arguments, etc.
+! #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -D_FORTIFY_SOURCE=1 -DU_DEBUG
+  #CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -D_FORTIFY_SOURCE=1 -DU_DEBUG
+  #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
+  #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
+--- 561,567 ----
+  #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
+  
+  # Use this with GCC to check for mistakes, unused arguments, etc.
+! #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -D_FORTIFY_SOURCE=1
+  #CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -D_FORTIFY_SOURCE=1 -DU_DEBUG
+  #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
+  #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
+***************
+*** 594,601 ****
+  
+  # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof.
+  # Might not work with GUI or Perl.
+! # For unknown reasons adding "-lc" fixes a linking problem with GCC.  That's
+! # probably a bug in the "-pg" implementation.
+  # Need to recompile everything after changing this: "make clean" "make".
+  #PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
+  #PROFILE_LIBS = -pg
+--- 594,602 ----
+  
+  # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof.
+  # Might not work with GUI or Perl.
+! # For unknown reasons adding "-lc" fixes a linking problem with some versions
+! # of GCC.  That's probably a bug in the "-pg" implementation.
+! # After running Vim see the profile result with: gmon vim gmon.out | vim -
+  # Need to recompile everything after changing this: "make clean" "make".
+  #PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
+  #PROFILE_LIBS = -pg
+***************
+*** 606,613 ****
+  # Configuration is in the .ccmalloc or ~/.ccmalloc file.
+  # Doesn't work very well, since memory linked to from global variables
+  # (in libraries) is also marked as leaked memory.
+! #PROFILE_CFLAGS = -DEXITFREE
+! #PROFILE_LIBS = -lccmalloc
+  
+  #####################################################
+  ###  Specific systems, check if yours is listed!  ### {{{
+--- 607,614 ----
+  # Configuration is in the .ccmalloc or ~/.ccmalloc file.
+  # Doesn't work very well, since memory linked to from global variables
+  # (in libraries) is also marked as leaked memory.
+! #LEAK_CFLAGS = -DEXITFREE
+! #LEAK_LIBS = -lccmalloc
+  
+  #####################################################
+  ###  Specific systems, check if yours is listed!  ### {{{
+***************
+*** 1329,1335 ****
+  PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
+  POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(EXTRA_DEFS)
+  
+! ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(POST_DEFS)
+  
+  # Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
+  # with "-E".
+--- 1330,1336 ----
+  PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
+  POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(EXTRA_DEFS)
+  
+! ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(LEAK_CFLAGS) $(POST_DEFS)
+  
+  # Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
+  # with "-E".
+***************
+*** 1358,1364 ****
+          $(PYTHON3_LIBS) \
+          $(TCL_LIBS) \
+          $(RUBY_LIBS) \
+!         $(PROFILE_LIBS)
+  
+  # abbreviations
+  DEST_BIN = $(DESTDIR)$(BINDIR)
+--- 1359,1366 ----
+          $(PYTHON3_LIBS) \
+          $(TCL_LIBS) \
+          $(RUBY_LIBS) \
+!         $(PROFILE_LIBS) \
+!         $(LEAK_LIBS)
+  
+  # abbreviations
+  DEST_BIN = $(DESTDIR)$(BINDIR)
+***************
+*** 1480,1487 ****
+           if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \
+           gui_beval.c workshop.c wsdebug.c integration.c netbeans.c
+  
+  # All sources, also the ones that are not configured
+! ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(EXTRA_SRC)
+  
+  # Which files to check with lint.  Select one of these three lines.  ALL_SRC
+  # checks more, but may not work well for checking a GUI that wasn't configured.
+--- 1482,1496 ----
+           if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \
+           gui_beval.c workshop.c wsdebug.c integration.c netbeans.c
+  
++ # Unittest files
++ MEMFILE_TEST_SRC = memfile_test.c
++ MEMFILE_TEST_TARGET = memfile_test$(EXEEXT)
++ 
++ UNITTEST_SRC = $(MEMFILE_TEST_SRC)
++ UNITTEST_TARGETS = $(MEMFILE_TEST_TARGET)
++ 
+  # All sources, also the ones that are not configured
+! ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(UNITTEST_SRC) $(EXTRA_SRC)
+  
+  # Which files to check with lint.  Select one of these three lines.  ALL_SRC
+  # checks more, but may not work well for checking a GUI that wasn't configured.
+***************
+*** 1492,1498 ****
+  #LINT_SRC = $(ALL_SRC)
+  #LINT_SRC = $(BASIC_SRC)
+  
+! OBJ = \
+       objects/buffer.o \
+       objects/blowfish.o \
+       objects/charset.o \
+--- 1501,1507 ----
+  #LINT_SRC = $(ALL_SRC)
+  #LINT_SRC = $(BASIC_SRC)
+  
+! OBJ_COMMON = \
+       objects/buffer.o \
+       objects/blowfish.o \
+       objects/charset.o \
+***************
+*** 1513,1522 ****
+       $(HANGULIN_OBJ) \
+       objects/if_cscope.o \
+       objects/if_xcmdsrv.o \
+-      objects/main.o \
+       objects/mark.o \
+!      objects/memfile.o \
+!      objects/memline.o \
+       objects/menu.o \
+       objects/message.o \
+       objects/misc1.o \
+--- 1522,1529 ----
+       $(HANGULIN_OBJ) \
+       objects/if_cscope.o \
+       objects/if_xcmdsrv.o \
+       objects/mark.o \
+!         objects/memline.o \
+       objects/menu.o \
+       objects/message.o \
+       objects/misc1.o \
+***************
+*** 1541,1546 ****
+--- 1548,1554 ----
+       objects/term.o \
+       objects/ui.o \
+       objects/undo.o \
++      objects/version.o \
+       objects/window.o \
+       $(GUI_OBJ) \
+       $(LUA_OBJ) \
+***************
+*** 1555,1560 ****
+--- 1563,1575 ----
+       $(NETBEANS_OBJ) \
+       $(WSDEBUG_OBJ)
+  
++ OBJ = $(OBJ_COMMON) \
++      objects/main.o \
++      objects/memfile.o \
++ 
++ MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
++         objects/memfile_test.o
++ 
+  PRO_AUTO = \
+       blowfish.pro \
+       buffer.pro \
+***************
+*** 1700,1706 ****
+  $(VIMTARGET): auto/config.mk objects $(OBJ) version.c version.h
+       $(CCC) version.c -o objects/version.o
+       @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
+!              -o $(VIMTARGET) $(OBJ) objects/version.o $(ALL_LIBS)" \
+               MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
+               sh $(srcdir)/link.sh
+  
+--- 1715,1721 ----
+  $(VIMTARGET): auto/config.mk objects $(OBJ) version.c version.h
+       $(CCC) version.c -o objects/version.o
+       @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
+!              -o $(VIMTARGET) $(OBJ) $(ALL_LIBS)" \
+               MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
+               sh $(srcdir)/link.sh
+  
+***************
+*** 1825,1830 ****
+--- 1840,1854 ----
+               ln -s $(VIMTARGET) vim; \
+       fi
+       cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) VIMPROG=../$(VIMTARGET) $(GUI_TESTARG)
++      $(MAKE) -f Makefile unittest
++ 
++ unittesttargets:
++      $(MAKE) -f Makefile $(UNITTEST_TARGETS)
++ 
++ unittest unittests: $(UNITTEST_TARGETS)
++      @for t in $(UNITTEST_TARGETS); do \
++              ./$$t || exit 1; echo $$t passed; \
++      done
+  
+  testclean:
+       cd testdir; $(MAKE) -f Makefile clean
+***************
+*** 1832,1837 ****
+--- 1856,1872 ----
+               cd $(PODIR); $(MAKE) checkclean; \
+       fi
+  
++ # Unittests
++ # It's build just like Vim to satisfy all dependencies.
++ $(MEMFILE_TEST_TARGET): auto/config.mk objects $(MEMFILE_TEST_OBJ)
++      $(CCC) version.c -o objects/version.o
++      @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
++              -o $(MEMFILE_TEST_TARGET) $(MEMFILE_TEST_OBJ) $(ALL_LIBS)" \
++              MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
++              sh $(srcdir)/link.sh
++ 
++ # install targets
++ 
+  install: $(GUI_INSTALL)
+  
+  install_normal: installvim installtools $(INSTALL_LANGS) install-icons
+***************
+*** 2265,2270 ****
+--- 2300,2306 ----
+       -rm -f *.o objects/* core $(VIMTARGET).core $(VIMTARGET) vim xxd/*.o
+       -rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c
+       -rm -f conftest* *~ auto/link.sed
++      -rm -f $(UNITTEST_TARGETS)
+       -rm -f runtime pixmaps
+       -rm -rf $(APPDIR)
+       -rm -rf mzscheme_base.c
+***************
+*** 2559,2564 ****
+--- 2595,2603 ----
+  objects/memfile.o: memfile.c
+       $(CCC) -o $@ memfile.c
+  
++ objects/memfile_test.o: memfile_test.c
++      $(CCC) -o $@ memfile_test.c
++ 
+  objects/memline.o: memline.c
+       $(CCC) -o $@ memline.c
+  
+***************
+*** 2877,2883 ****
+  objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
+   ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+   gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+!  arabic.h if_mzsch.h os_unixx.h
+  objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
+   auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
+   regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
+--- 2916,2922 ----
+  objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
+   ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+   gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+!  arabic.h os_unixx.h
+  objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
+   auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
+   regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
+***************
+*** 3016,3021 ****
+--- 3055,3064 ----
+  objects/pty.o: pty.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
+   keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
+   proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
++ objects/memfile_test.o: memfile_test.c main.c vim.h auto/config.h feature.h \
++  os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
++  structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h \
++  proto.h globals.h farsi.h arabic.h farsi.c arabic.c memfile.c
+  objects/hangulin.o: hangulin.c vim.h auto/config.h feature.h os_unix.h \
+   auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
+   regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
+***************
+*** 3027,3033 ****
+  objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
+   auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
+   regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
+!  globals.h farsi.h arabic.h if_mzsch.h mzscheme_base.c
+  objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
+   auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
+   regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
+--- 3070,3076 ----
+  objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
+   auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
+   regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
+!  globals.h farsi.h arabic.h if_mzsch.h
+  objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
+   auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
+   regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
+***************
+*** 3048,3054 ****
+   ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+   gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+   arabic.h
+! objects/if_ruby.o: if_ruby.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
+   ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+   gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+   arabic.h version.h
+--- 3091,3097 ----
+   ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+   gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+   arabic.h
+! objects/if_ruby.o: if_ruby.c auto/config.h vim.h feature.h os_unix.h auto/osdef.h \
+   ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+   gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+   arabic.h version.h
+*** ../vim-7.3.142/src/main.c  2011-02-15 16:29:54.000000000 +0100
+--- src/main.c 2011-03-18 13:19:48.000000000 +0100
+***************
+*** 92,128 ****
+  #define EDIT_TAG    3            /* tag name argument given, use tagname */
+  #define EDIT_QF          4       /* start in quickfix mode */
+  
+! #if defined(UNIX) || defined(VMS)
+  static int file_owned __ARGS((char *fname));
+  #endif
+  static void mainerr __ARGS((int, char_u *));
+  static void main_msg __ARGS((char *s));
+  static void usage __ARGS((void));
+  static int get_number_arg __ARGS((char_u *p, int *idx, int def));
+! #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
+  static void init_locale __ARGS((void));
+! #endif
+  static void parse_command_name __ARGS((mparm_T *parmp));
+  static void early_arg_scan __ARGS((mparm_T *parmp));
+  static void command_line_scan __ARGS((mparm_T *parmp));
+  static void check_tty __ARGS((mparm_T *parmp));
+  static void read_stdin __ARGS((void));
+  static void create_windows __ARGS((mparm_T *parmp));
+! #ifdef FEAT_WINDOWS
+  static void edit_buffers __ARGS((mparm_T *parmp));
+! #endif
+  static void exe_pre_commands __ARGS((mparm_T *parmp));
+  static void exe_commands __ARGS((mparm_T *parmp));
+  static void source_startup_scripts __ARGS((mparm_T *parmp));
+  static void main_start_gui __ARGS((void));
+! #if defined(HAS_SWAP_EXISTS_ACTION)
+  static void check_swap_exists_action __ARGS((void));
+! #endif
+! #ifdef FEAT_CLIENTSERVER
+  static void exec_on_server __ARGS((mparm_T *parmp));
+  static void prepare_server __ARGS((mparm_T *parmp));
+  static void cmdsrv_main __ARGS((int *argc, char **argv, char_u *serverName_arg, char_u **serverStr));
+  static char_u *serverMakeName __ARGS((char_u *arg, char *cmd));
+  #endif
+  
+  
+--- 92,130 ----
+  #define EDIT_TAG    3            /* tag name argument given, use tagname */
+  #define EDIT_QF          4       /* start in quickfix mode */
+  
+! #if (defined(UNIX) || defined(VMS)) && !defined(NO_VIM_MAIN)
+  static int file_owned __ARGS((char *fname));
+  #endif
+  static void mainerr __ARGS((int, char_u *));
++ #ifndef NO_VIM_MAIN
+  static void main_msg __ARGS((char *s));
+  static void usage __ARGS((void));
+  static int get_number_arg __ARGS((char_u *p, int *idx, int def));
+! # if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
+  static void init_locale __ARGS((void));
+! # endif
+  static void parse_command_name __ARGS((mparm_T *parmp));
+  static void early_arg_scan __ARGS((mparm_T *parmp));
+  static void command_line_scan __ARGS((mparm_T *parmp));
+  static void check_tty __ARGS((mparm_T *parmp));
+  static void read_stdin __ARGS((void));
+  static void create_windows __ARGS((mparm_T *parmp));
+! # ifdef FEAT_WINDOWS
+  static void edit_buffers __ARGS((mparm_T *parmp));
+! # endif
+  static void exe_pre_commands __ARGS((mparm_T *parmp));
+  static void exe_commands __ARGS((mparm_T *parmp));
+  static void source_startup_scripts __ARGS((mparm_T *parmp));
+  static void main_start_gui __ARGS((void));
+! # if defined(HAS_SWAP_EXISTS_ACTION)
+  static void check_swap_exists_action __ARGS((void));
+! # endif
+! # if defined(FEAT_CLIENTSERVER) || defined(PROTO)
+  static void exec_on_server __ARGS((mparm_T *parmp));
+  static void prepare_server __ARGS((mparm_T *parmp));
+  static void cmdsrv_main __ARGS((int *argc, char **argv, char_u *serverName_arg, char_u **serverStr));
+  static char_u *serverMakeName __ARGS((char_u *arg, char *cmd));
++ # endif
+  #endif
+  
+  
+***************
+*** 145,151 ****
+  #define ME_INVALID_ARG               5
+  };
+  
+! #ifndef PROTO            /* don't want a prototype for main() */
+      int
+  # ifdef VIMDLL
+  _export
+--- 147,154 ----
+  #define ME_INVALID_ARG               5
+  };
+  
+! #ifndef NO_VIM_MAIN  /* skip this for unittests */
+! #ifndef PROTO                /* don't want a prototype for main() */
+      int
+  # ifdef VIMDLL
+  _export
+***************
+*** 966,971 ****
+--- 969,975 ----
+      return 0;
+  }
+  #endif /* PROTO */
++ #endif /* NO_VIM_MAIN */
+  
+  /*
+   * Main loop: Execute Normal mode commands until exiting Vim.
+***************
+*** 1430,1435 ****
+--- 1434,1440 ----
+      mch_exit(exitval);
+  }
+  
++ #ifndef NO_VIM_MAIN
+  /*
+   * Get a (optional) count for a Vim argument.
+   */
+***************
+*** 2994,2999 ****
+--- 2999,3006 ----
+  #endif
+  }
+  
++ #endif  /* NO_VIM_MAIN */
++ 
+  /*
+   * Get an environment variable, and execute it as Ex commands.
+   * Returns FAIL if the environment variable was not executed, OK otherwise.
+***************
+*** 3033,3039 ****
+      return FAIL;
+  }
+  
+! #if defined(UNIX) || defined(VMS)
+  /*
+   * Return TRUE if we are certain the user owns the file "fname".
+   * Used for ".vimrc" and ".exrc".
+--- 3040,3046 ----
+      return FAIL;
+  }
+  
+! #if (defined(UNIX) || defined(VMS)) && !defined(NO_VIM_MAIN)
+  /*
+   * Return TRUE if we are certain the user owns the file "fname".
+   * Used for ".vimrc" and ".exrc".
+***************
+*** 3091,3096 ****
+--- 3098,3104 ----
+      mainerr(ME_ARG_MISSING, str);
+  }
+  
++ #ifndef NO_VIM_MAIN
+  /*
+   * print a message with three spaces prepended and '\n' appended.
+   */
+***************
+*** 3311,3316 ****
+--- 3319,3326 ----
+  }
+  #endif
+  
++ #endif
++ 
+  #if defined(STARTUPTIME) || defined(PROTO)
+  static void time_diff __ARGS((struct timeval *then, struct timeval *now));
+  
+***************
+*** 3420,3426 ****
+  
+  #endif
+  
+! #if defined(FEAT_CLIENTSERVER) || defined(PROTO)
+  
+  /*
+   * Common code for the X command server and the Win32 command server.
+--- 3430,3436 ----
+  
+  #endif
+  
+! #if (defined(FEAT_CLIENTSERVER) && !defined(NO_VIM_MAIN)) || defined(PROTO)
+  
+  /*
+   * Common code for the X command server and the Win32 command server.
+***************
+*** 3888,3893 ****
+--- 3898,3929 ----
+  }
+  
+  /*
++  * Make our basic server name: use the specified "arg" if given, otherwise use
++  * the tail of the command "cmd" we were started with.
++  * Return the name in allocated memory.  This doesn't include a serial number.
++  */
++     static char_u *
++ serverMakeName(arg, cmd)
++     char_u   *arg;
++     char     *cmd;
++ {
++     char_u *p;
++ 
++     if (arg != NULL && *arg != NUL)
++      p = vim_strsave_up(arg);
++     else
++     {
++      p = vim_strsave_up(gettail((char_u *)cmd));
++      /* Remove .exe or .bat from the name. */
++      if (p != NULL && vim_strchr(p, '.') != NULL)
++          *vim_strchr(p, '.') = NUL;
++     }
++     return p;
++ }
++ #endif /* FEAT_CLIENTSERVER */
++ 
++ #if defined(FEAT_CLIENTSERVER) || defined(PROTO)
++ /*
+   * Replace termcodes such as <CR> and insert as key presses if there is room.
+   */
+      void
+***************
+*** 3998,4029 ****
+  # endif
+      return res;
+  }
+! 
+! 
+! /*
+!  * Make our basic server name: use the specified "arg" if given, otherwise use
+!  * the tail of the command "cmd" we were started with.
+!  * Return the name in allocated memory.  This doesn't include a serial number.
+!  */
+!     static char_u *
+! serverMakeName(arg, cmd)
+!     char_u   *arg;
+!     char     *cmd;
+! {
+!     char_u *p;
+! 
+!     if (arg != NULL && *arg != NUL)
+!      p = vim_strsave_up(arg);
+!     else
+!     {
+!      p = vim_strsave_up(gettail((char_u *)cmd));
+!      /* Remove .exe or .bat from the name. */
+!      if (p != NULL && vim_strchr(p, '.') != NULL)
+!          *vim_strchr(p, '.') = NUL;
+!     }
+!     return p;
+! }
+! #endif /* FEAT_CLIENTSERVER */
+  
+  /*
+   * When FEAT_FKMAP is defined, also compile the Farsi source code.
+--- 4034,4040 ----
+  # endif
+      return res;
+  }
+! #endif
+  
+  /*
+   * When FEAT_FKMAP is defined, also compile the Farsi source code.
+*** ../vim-7.3.142/src/memfile.c       2010-12-17 18:06:00.000000000 +0100
+--- src/memfile.c      2011-03-03 18:47:39.000000000 +0100
+***************
+*** 84,89 ****
+--- 84,96 ----
+  static int  mf_write_block __ARGS((memfile_T *mfp, bhdr_T *hp, off_t offset, unsigned size));
+  static int  mf_trans_add __ARGS((memfile_T *, bhdr_T *));
+  static void mf_do_open __ARGS((memfile_T *, char_u *, int));
++ static void mf_hash_init __ARGS((mf_hashtab_T *));
++ static void mf_hash_free __ARGS((mf_hashtab_T *));
++ static void mf_hash_free_all __ARGS((mf_hashtab_T *));
++ static mf_hashitem_T *mf_hash_find __ARGS((mf_hashtab_T *, blocknr_T));
++ static void mf_hash_add_item __ARGS((mf_hashtab_T *, mf_hashitem_T *));
++ static void mf_hash_rem_item __ARGS((mf_hashtab_T *, mf_hashitem_T *));
++ static int mf_hash_grow __ARGS((mf_hashtab_T *));
+  
+  /*
+   * The functions for using a memfile:
+***************
+*** 119,125 ****
+      int              flags;
+  {
+      memfile_T                *mfp;
+-     int                      i;
+      off_t            size;
+  #if defined(STATFS) && defined(UNIX) && !defined(__QNX__)
+  # define USE_FSTATFS
+--- 126,131 ----
+***************
+*** 152,162 ****
+      mfp->mf_used_last = NULL;
+      mfp->mf_dirty = FALSE;
+      mfp->mf_used_count = 0;
+!     for (i = 0; i < MEMHASHSIZE; ++i)
+!     {
+!      mfp->mf_hash[i] = NULL;         /* hash lists are empty */
+!      mfp->mf_trans[i] = NULL;        /* trans lists are empty */
+!     }
+      mfp->mf_page_size = MEMFILE_PAGE_SIZE;
+  #ifdef FEAT_CRYPT
+      mfp->mf_old_key = NULL;
+--- 158,165 ----
+      mfp->mf_used_last = NULL;
+      mfp->mf_dirty = FALSE;
+      mfp->mf_used_count = 0;
+!     mf_hash_init(&mfp->mf_hash);
+!     mf_hash_init(&mfp->mf_trans);
+      mfp->mf_page_size = MEMFILE_PAGE_SIZE;
+  #ifdef FEAT_CRYPT
+      mfp->mf_old_key = NULL;
+***************
+*** 242,249 ****
+      int              del_file;
+  {
+      bhdr_T   *hp, *nextp;
+-     NR_TRANS *tp, *tpnext;
+-     int              i;
+  
+      if (mfp == NULL)             /* safety check */
+       return;
+--- 245,250 ----
+***************
+*** 263,274 ****
+      }
+      while (mfp->mf_free_first != NULL)           /* free entries in free list */
+       vim_free(mf_rem_free(mfp));
+!     for (i = 0; i < MEMHASHSIZE; ++i)            /* free entries in trans lists */
+!      for (tp = mfp->mf_trans[i]; tp != NULL; tp = tpnext)
+!      {
+!          tpnext = tp->nt_next;
+!          vim_free(tp);
+!      }
+      vim_free(mfp->mf_fname);
+      vim_free(mfp->mf_ffname);
+      vim_free(mfp);
+--- 264,271 ----
+      }
+      while (mfp->mf_free_first != NULL)           /* free entries in free list */
+       vim_free(mf_rem_free(mfp));
+!     mf_hash_free(&mfp->mf_hash);
+!     mf_hash_free_all(&mfp->mf_trans);            /* free hashtable and its items */
+      vim_free(mfp->mf_fname);
+      vim_free(mfp->mf_ffname);
+      vim_free(mfp);
+***************
+*** 743,758 ****
+      memfile_T        *mfp;
+      bhdr_T   *hp;
+  {
+!     bhdr_T   *hhp;
+!     int              hash;
+! 
+!     hash = MEMHASH(hp->bh_bnum);
+!     hhp = mfp->mf_hash[hash];
+!     hp->bh_hash_next = hhp;
+!     hp->bh_hash_prev = NULL;
+!     if (hhp != NULL)
+!      hhp->bh_hash_prev = hp;
+!     mfp->mf_hash[hash] = hp;
+  }
+  
+  /*
+--- 740,746 ----
+      memfile_T        *mfp;
+      bhdr_T   *hp;
+  {
+!     mf_hash_add_item(&mfp->mf_hash, (mf_hashitem_T *)hp);
+  }
+  
+  /*
+***************
+*** 763,775 ****
+      memfile_T        *mfp;
+      bhdr_T   *hp;
+  {
+!     if (hp->bh_hash_prev == NULL)
+!      mfp->mf_hash[MEMHASH(hp->bh_bnum)] = hp->bh_hash_next;
+!     else
+!      hp->bh_hash_prev->bh_hash_next = hp->bh_hash_next;
+! 
+!     if (hp->bh_hash_next)
+!      hp->bh_hash_next->bh_hash_prev = hp->bh_hash_prev;
+  }
+  
+  /*
+--- 751,757 ----
+      memfile_T        *mfp;
+      bhdr_T   *hp;
+  {
+!     mf_hash_rem_item(&mfp->mf_hash, (mf_hashitem_T *)hp);
+  }
+  
+  /*
+***************
+*** 780,791 ****
+      memfile_T        *mfp;
+      blocknr_T        nr;
+  {
+!     bhdr_T   *hp;
+! 
+!     for (hp = mfp->mf_hash[MEMHASH(nr)]; hp != NULL; hp = hp->bh_hash_next)
+!      if (hp->bh_bnum == nr)
+!          break;
+!     return hp;
+  }
+  
+  /*
+--- 762,768 ----
+      memfile_T        *mfp;
+      blocknr_T        nr;
+  {
+!     return (bhdr_T *)mf_hash_find(&mfp->mf_hash, nr);
+  }
+  
+  /*
+***************
+*** 1187,1193 ****
+  {
+      bhdr_T   *freep;
+      blocknr_T        new_bnum;
+-     int              hash;
+      NR_TRANS *np;
+      int              page_count;
+  
+--- 1164,1169 ----
+***************
+*** 1235,1246 ****
+      hp->bh_bnum = new_bnum;
+      mf_ins_hash(mfp, hp);                /* insert in new hash list */
+  
+!     hash = MEMHASH(np->nt_old_bnum);     /* insert in trans list */
+!     np->nt_next = mfp->mf_trans[hash];
+!     mfp->mf_trans[hash] = np;
+!     if (np->nt_next != NULL)
+!      np->nt_next->nt_prev = np;
+!     np->nt_prev = NULL;
+  
+      return OK;
+  }
+--- 1211,1218 ----
+      hp->bh_bnum = new_bnum;
+      mf_ins_hash(mfp, hp);                /* insert in new hash list */
+  
+!     /* Insert "np" into "mf_trans" hashtable with key "np->nt_old_bnum" */
+!     mf_hash_add_item(&mfp->mf_trans, (mf_hashitem_T *)np);
+  
+      return OK;
+  }
+***************
+*** 1255,1279 ****
+      memfile_T        *mfp;
+      blocknr_T        old_nr;
+  {
+-     int              hash;
+      NR_TRANS *np;
+      blocknr_T        new_bnum;
+  
+!     hash = MEMHASH(old_nr);
+!     for (np = mfp->mf_trans[hash]; np != NULL; np = np->nt_next)
+!      if (np->nt_old_bnum == old_nr)
+!          break;
+      if (np == NULL)          /* not found */
+       return old_nr;
+  
+      mfp->mf_neg_count--;
+      new_bnum = np->nt_new_bnum;
+!     if (np->nt_prev != NULL)         /* remove entry from the trans list */
+!      np->nt_prev->nt_next = np->nt_next;
+!     else
+!      mfp->mf_trans[hash] = np->nt_next;
+!     if (np->nt_next != NULL)
+!      np->nt_next->nt_prev = np->nt_prev;
+      vim_free(np);
+  
+      return new_bnum;
+--- 1227,1246 ----
+      memfile_T        *mfp;
+      blocknr_T        old_nr;
+  {
+      NR_TRANS *np;
+      blocknr_T        new_bnum;
+  
+!     np = (NR_TRANS *)mf_hash_find(&mfp->mf_trans, old_nr);
+! 
+      if (np == NULL)          /* not found */
+       return old_nr;
+  
+      mfp->mf_neg_count--;
+      new_bnum = np->nt_new_bnum;
+! 
+!     /* remove entry from the trans list */
+!     mf_hash_rem_item(&mfp->mf_trans, (mf_hashitem_T *)np);
+! 
+      vim_free(np);
+  
+      return new_bnum;
+***************
+*** 1397,1399 ****
+--- 1364,1570 ----
+       mch_hide(mfp->mf_fname);    /* try setting the 'hidden' flag */
+      }
+  }
++ 
++ /*
++  * Implementation of mf_hashtab_T follows.
++  */
++ 
++ /*
++  * The number of buckets in the hashtable is increased by a factor of
++  * MHT_GROWTH_FACTOR when the average number of items per bucket
++  * exceeds 2 ^ MHT_LOG_LOAD_FACTOR.
++  */
++ #define MHT_LOG_LOAD_FACTOR 6
++ #define MHT_GROWTH_FACTOR   2   /* must be a power of two */
++ 
++ /*
++  * Initialize an empty hash table.
++  */
++     static void
++ mf_hash_init(mht)
++     mf_hashtab_T *mht;
++ {
++     vim_memset(mht, 0, sizeof(mf_hashtab_T));
++     mht->mht_buckets = mht->mht_small_buckets;
++     mht->mht_mask = MHT_INIT_SIZE - 1;
++ }
++ 
++ /*
++  * Free the array of a hash table.  Does not free the items it contains!
++  * The hash table must not be used again without another mf_hash_init() call.
++  */
++     static void
++ mf_hash_free(mht)
++     mf_hashtab_T *mht;
++ {
++     if (mht->mht_buckets != mht->mht_small_buckets)
++      vim_free(mht->mht_buckets);
++ }
++ 
++ /*
++  * Free the array of a hash table and all the items it contains.
++  */
++     static void
++ mf_hash_free_all(mht)
++     mf_hashtab_T    *mht;
++ {
++     long_u       idx;
++     mf_hashitem_T   *mhi;
++     mf_hashitem_T   *next;
++ 
++     for (idx = 0; idx <= mht->mht_mask; idx++)
++      for (mhi = mht->mht_buckets[idx]; mhi != NULL; mhi = next)
++      {
++          next = mhi->mhi_next;
++          vim_free(mhi);
++      }
++ 
++     mf_hash_free(mht);
++ }
++ 
++ /*
++  * Find "key" in hashtable "mht".
++  * Returns a pointer to a mf_hashitem_T or NULL if the item was not found.
++  */
++     static mf_hashitem_T *
++ mf_hash_find(mht, key)
++     mf_hashtab_T    *mht;
++     blocknr_T            key;
++ {
++     mf_hashitem_T   *mhi;
++ 
++     mhi = mht->mht_buckets[key & mht->mht_mask];
++     while (mhi != NULL && mhi->mhi_key != key)
++      mhi = mhi->mhi_next;
++ 
++     return mhi;
++ }
++ 
++ /*
++  * Add item "mhi" to hashtable "mht".
++  * "mhi" must not be NULL.
++  */
++     static void
++ mf_hash_add_item(mht, mhi)
++     mf_hashtab_T    *mht;
++     mf_hashitem_T   *mhi;
++ {
++     long_u       idx;
++ 
++     idx = mhi->mhi_key & mht->mht_mask;
++     mhi->mhi_next = mht->mht_buckets[idx];
++     mhi->mhi_prev = NULL;
++     if (mhi->mhi_next != NULL)
++      mhi->mhi_next->mhi_prev = mhi;
++     mht->mht_buckets[idx] = mhi;
++ 
++     mht->mht_count++;
++ 
++     /*
++      * Grow hashtable when we have more thank 2^MHT_LOG_LOAD_FACTOR
++      * items per bucket on average
++      */
++     if (mht->mht_fixed == 0
++      && (mht->mht_count >> MHT_LOG_LOAD_FACTOR) > mht->mht_mask)
++     {
++      if (mf_hash_grow(mht) == FAIL)
++      {
++          /* stop trying to grow after first failure to allocate memory */
++          mht->mht_fixed = 1;
++      }
++     }
++ }
++ 
++ /*
++  * Remove item "mhi" from hashtable "mht".
++  * "mhi" must not be NULL and must have been inserted into "mht".
++  */
++     static void
++ mf_hash_rem_item(mht, mhi)
++     mf_hashtab_T    *mht;
++     mf_hashitem_T   *mhi;
++ {
++     if (mhi->mhi_prev == NULL)
++      mht->mht_buckets[mhi->mhi_key & mht->mht_mask] = mhi->mhi_next;
++     else
++      mhi->mhi_prev->mhi_next = mhi->mhi_next;
++ 
++     if (mhi->mhi_next != NULL)
++      mhi->mhi_next->mhi_prev = mhi->mhi_prev;
++ 
++     mht->mht_count--;
++ 
++     /* We could shrink the table here, but it typically takes little memory,
++      * so why bother?  */
++ }
++ 
++ /*
++  * Increase number of buckets in the hashtable by MHT_GROWTH_FACTOR and
++  * rehash items.
++  * Returns FAIL when out of memory.
++  */
++     static int
++ mf_hash_grow(mht)
++     mf_hashtab_T    *mht;
++ {
++     long_u       i, j;
++     int                  shift;
++     mf_hashitem_T   *mhi;
++     mf_hashitem_T   *tails[MHT_GROWTH_FACTOR];
++     mf_hashitem_T   **buckets;
++     size_t       size;
++ 
++     size = (mht->mht_mask + 1) * MHT_GROWTH_FACTOR * sizeof(void *);
++     buckets = (mf_hashitem_T **)lalloc_clear(size, FALSE);
++     if (buckets == NULL)
++      return FAIL;
++ 
++     shift = 0;
++     while ((mht->mht_mask >> shift) != 0)
++      shift++;
++ 
++     for (i = 0; i <= mht->mht_mask; i++)
++     {
++      /*
++       * Traverse the items in the i-th original bucket and move them into
++       * MHT_GROWTH_FACTOR new buckets, preserving their relative order
++       * within each new bucket.  Preserving the order is important because
++       * mf_get() tries to keep most recently used items at the front of
++       * each bucket.
++       *
++       * Here we strongly rely on the fact the hashes are computed modulo
++       * a power of two.
++       */
++ 
++      vim_memset(tails, 0, sizeof(tails));
++ 
++      for (mhi = mht->mht_buckets[i]; mhi != NULL; mhi = mhi->mhi_next)
++      {
++          j = (mhi->mhi_key >> shift) & (MHT_GROWTH_FACTOR - 1);
++          if (tails[j] == NULL)
++          {
++              buckets[i + (j << shift)] = mhi;
++              tails[j] = mhi;
++              mhi->mhi_prev = NULL;
++          }
++          else
++          {
++              tails[j]->mhi_next = mhi;
++              mhi->mhi_prev = tails[j];
++              tails[j] = mhi;
++          }
++      }
++ 
++      for (j = 0; j < MHT_GROWTH_FACTOR; j++)
++          if (tails[j] != NULL)
++              tails[j]->mhi_next = NULL;
++     }
++ 
++     if (mht->mht_buckets != mht->mht_small_buckets)
++      vim_free(mht->mht_buckets);
++ 
++     mht->mht_buckets = buckets;
++     mht->mht_mask = (mht->mht_mask + 1) * MHT_GROWTH_FACTOR - 1;
++ 
++     return OK;
++ }
+*** ../vim-7.3.142/src/memfile_test.c  2011-03-03 21:58:14.000000000 +0100
+--- src/memfile_test.c 2011-03-03 20:40:29.000000000 +0100
+***************
+*** 0 ****
+--- 1,145 ----
++ /* vi:set ts=8 sts=4 sw=4:
++  *
++  * VIM - Vi IMproved by Bram Moolenaar
++  *
++  * Do ":help uganda"  in Vim to read copying and usage conditions.
++  * Do ":help credits" in Vim to see a list of people who contributed.
++  * See README.txt for an overview of the Vim source code.
++  */
++ 
++ /*
++  * memfile_test.c: Unittests for memfile.c
++  * Mostly by Ivan Krasilnikov.
++  */
++ 
++ #undef NDEBUG
++ #include <assert.h>
++ 
++ /* Must include main.c because it contains much more than just main() */
++ #define NO_VIM_MAIN
++ #include "main.c"
++ 
++ /* This file has to be included because the tested functions are static */
++ #include "memfile.c"
++ 
++ #define index_to_key(i) ((i) ^ 15167)
++ #define TEST_COUNT 50000
++ 
++ static void test_mf_hash __ARGS((void));
++ 
++ /*
++  * Test mf_hash_*() functions.
++  */
++     static void
++ test_mf_hash()
++ {
++     mf_hashtab_T   ht;
++     mf_hashitem_T  *item;
++     blocknr_T      key;
++     long_u      i;
++     long_u      num_buckets;
++ 
++     mf_hash_init(&ht);
++ 
++     /* insert some items and check invariants */
++     for (i = 0; i < TEST_COUNT; i++)
++     {
++      assert(ht.mht_count == i);
++ 
++      /* check that number of buckets is a power of 2 */
++      num_buckets = ht.mht_mask + 1;
++      assert(num_buckets > 0 && (num_buckets & (num_buckets - 1)) == 0);
++ 
++      /* check load factor */
++      assert(ht.mht_count <= (num_buckets << MHT_LOG_LOAD_FACTOR));
++ 
++      if (i < (MHT_INIT_SIZE << MHT_LOG_LOAD_FACTOR))
++      {
++          /* first expansion shouldn't have occurred yet */
++          assert(num_buckets == MHT_INIT_SIZE);
++          assert(ht.mht_buckets == ht.mht_small_buckets);
++      }
++      else
++      {
++          assert(num_buckets > MHT_INIT_SIZE);
++          assert(ht.mht_buckets != ht.mht_small_buckets);
++      }
++ 
++      key = index_to_key(i);
++      assert(mf_hash_find(&ht, key) == NULL);
++ 
++      /* allocate and add new item */
++      item = (mf_hashitem_T *)lalloc_clear(sizeof(mf_hashtab_T), FALSE);
++      assert(item != NULL);
++      item->mhi_key = key;
++      mf_hash_add_item(&ht, item);
++ 
++      assert(mf_hash_find(&ht, key) == item);
++ 
++      if (ht.mht_mask + 1 != num_buckets)
++      {
++          /* hash table was expanded */
++          assert(ht.mht_mask + 1 == num_buckets * MHT_GROWTH_FACTOR);
++          assert(i + 1 == (num_buckets << MHT_LOG_LOAD_FACTOR));
++      }
++     }
++ 
++     /* check presence of inserted items */
++     for (i = 0; i < TEST_COUNT; i++)
++     {
++      key = index_to_key(i);
++      item = mf_hash_find(&ht, key);
++      assert(item != NULL);
++      assert(item->mhi_key == key);
++     }
++ 
++     /* delete some items */
++     for (i = 0; i < TEST_COUNT; i++)
++     {
++      if (i % 100 < 70)
++      {
++          key = index_to_key(i);
++          item = mf_hash_find(&ht, key);
++          assert(item != NULL);
++          assert(item->mhi_key == key);
++ 
++          mf_hash_rem_item(&ht, item);
++          assert(mf_hash_find(&ht, key) == NULL);
++ 
++          mf_hash_add_item(&ht, item);
++          assert(mf_hash_find(&ht, key) == item);
++ 
++          mf_hash_rem_item(&ht, item);
++          assert(mf_hash_find(&ht, key) == NULL);
++ 
++          vim_free(item);
++      }
++     }
++ 
++     /* check again */
++     for (i = 0; i < TEST_COUNT; i++)
++     {
++      key = index_to_key(i);
++      item = mf_hash_find(&ht, key);
++ 
++      if (i % 100 < 70)
++      {
++          assert(item == NULL);
++      }
++      else
++      {
++          assert(item != NULL);
++          assert(item->mhi_key == key);
++      }
++     }
++ 
++     /* free hash table and all remaining items */
++     mf_hash_free_all(&ht);
++ }
++ 
++     int
++ main()
++ {
++     test_mf_hash();
++     return 0;
++ }
+*** ../vim-7.3.142/src/structs.h       2011-02-15 17:39:14.000000000 +0100
+--- src/structs.h      2011-03-03 18:49:01.000000000 +0100
+***************
+*** 378,383 ****
+--- 378,412 ----
+  typedef long             blocknr_T;
+  
+  /*
++  * mf_hashtab_T is a chained hashtable with blocknr_T key and arbitrary
++  * structures as items.  This is an intrusive data structure: we require
++  * that items begin with mf_hashitem_T which contains the key and linked
++  * list pointers.  List of items in each bucket is doubly-linked.
++  */
++ 
++ typedef struct mf_hashitem_S mf_hashitem_T;
++ 
++ struct mf_hashitem_S
++ {
++     mf_hashitem_T   *mhi_next;
++     mf_hashitem_T   *mhi_prev;
++     blocknr_T            mhi_key;
++ };
++ 
++ #define MHT_INIT_SIZE   64
++ 
++ typedef struct mf_hashtab_S
++ {
++     long_u       mht_mask;       /* mask used for hash value (nr of items
++                                   * in array is "mht_mask" + 1) */
++     long_u       mht_count;      /* nr of items inserted into hashtable */
++     mf_hashitem_T   **mht_buckets;  /* points to mht_small_buckets or
++                                   *dynamically allocated array */
++     mf_hashitem_T   *mht_small_buckets[MHT_INIT_SIZE];   /* initial buckets */
++     char         mht_fixed;      /* non-zero value forbids growth */
++ } mf_hashtab_T;
++ 
++ /*
+   * for each (previously) used block in the memfile there is one block header.
+   *
+   * The block may be linked in the used list OR in the free list.
+***************
+*** 394,404 ****
+  
+  struct block_hdr
+  {
+      bhdr_T   *bh_next;           /* next block_hdr in free or used list */
+      bhdr_T   *bh_prev;           /* previous block_hdr in used list */
+-     bhdr_T   *bh_hash_next;      /* next block_hdr in hash list */
+-     bhdr_T   *bh_hash_prev;      /* previous block_hdr in hash list */
+-     blocknr_T        bh_bnum;            /* block number */
+      char_u   *bh_data;           /* pointer to memory (for used block) */
+      int              bh_page_count;      /* number of pages in this block */
+  
+--- 423,433 ----
+  
+  struct block_hdr
+  {
++     mf_hashitem_T bh_hashitem;      /* header for hash table and key */
++ #define bh_bnum bh_hashitem.mhi_key /* block number, part of bh_hashitem */
++ 
+      bhdr_T   *bh_next;           /* next block_hdr in free or used list */
+      bhdr_T   *bh_prev;           /* previous block_hdr in used list */
+      char_u   *bh_data;           /* pointer to memory (for used block) */
+      int              bh_page_count;      /* number of pages in this block */
+  
+***************
+*** 417,425 ****
+  
+  struct nr_trans
+  {
+!     NR_TRANS *nt_next;               /* next nr_trans in hash list */
+!     NR_TRANS *nt_prev;               /* previous nr_trans in hash list */
+!     blocknr_T        nt_old_bnum;            /* old, negative, number */
+      blocknr_T        nt_new_bnum;            /* new, positive, number */
+  };
+  
+--- 446,454 ----
+  
+  struct nr_trans
+  {
+!     mf_hashitem_T nt_hashitem;               /* header for hash table and key */
+! #define nt_old_bnum nt_hashitem.mhi_key      /* old, negative, number */
+! 
+      blocknr_T        nt_new_bnum;            /* new, positive, number */
+  };
+  
+***************
+*** 499,510 ****
+  
+  typedef struct file_buffer buf_T;  /* forward declaration */
+  
+- /*
+-  * Simplistic hashing scheme to quickly locate the blocks in the used list.
+-  * 64 blocks are found directly (64 * 4K = 256K, most files are smaller).
+-  */
+- #define MEMHASHSIZE  64
+- #define MEMHASH(nr)  ((nr) & (MEMHASHSIZE - 1))
+  #define MF_SEED_LEN  8
+  
+  struct memfile
+--- 528,533 ----
+***************
+*** 517,524 ****
+      bhdr_T   *mf_used_last;          /* lru block_hdr in used list */
+      unsigned mf_used_count;          /* number of pages in used list */
+      unsigned mf_used_count_max;      /* maximum number of pages in memory */
+!     bhdr_T   *mf_hash[MEMHASHSIZE];  /* array of hash lists */
+!     NR_TRANS *mf_trans[MEMHASHSIZE]; /* array of trans lists */
+      blocknr_T        mf_blocknr_max;         /* highest positive block number + 1*/
+      blocknr_T        mf_blocknr_min;         /* lowest negative block number - 1 */
+      blocknr_T        mf_neg_count;           /* number of negative blocks numbers */
+--- 540,547 ----
+      bhdr_T   *mf_used_last;          /* lru block_hdr in used list */
+      unsigned mf_used_count;          /* number of pages in used list */
+      unsigned mf_used_count_max;      /* maximum number of pages in memory */
+!     mf_hashtab_T mf_hash;            /* hash lists */
+!     mf_hashtab_T mf_trans;           /* trans lists */
+      blocknr_T        mf_blocknr_max;         /* highest positive block number + 1*/
+      blocknr_T        mf_blocknr_min;         /* lowest negative block number - 1 */
+      blocknr_T        mf_neg_count;           /* number of negative blocks numbers */
+*** ../vim-7.3.142/src/testdir/Make_amiga.mak  2010-11-10 16:54:16.000000000 +0100
+--- src/testdir/Make_amiga.mak 2011-03-03 17:04:14.000000000 +0100
+***************
+*** 28,34 ****
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out
+  
+  .SUFFIXES: .in .out
+  
+--- 28,34 ----
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out test77.out
+  
+  .SUFFIXES: .in .out
+  
+***************
+*** 124,126 ****
+--- 124,127 ----
+  test74.out: test74.in
+  test75.out: test75.in
+  test76.out: test76.in
++ test77.out: test77.in
+*** ../vim-7.3.142/src/testdir/Make_dos.mak    2010-11-10 16:54:16.000000000 +0100
+--- src/testdir/Make_dos.mak   2011-03-03 17:04:20.000000000 +0100
+***************
+*** 28,34 ****
+               test37.out test38.out test39.out test40.out test41.out \
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 28,34 ----
+               test37.out test38.out test39.out test40.out test41.out \
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out test77.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.142/src/testdir/Make_ming.mak   2010-11-10 16:54:16.000000000 +0100
+--- src/testdir/Make_ming.mak  2011-03-03 17:04:32.000000000 +0100
+***************
+*** 48,54 ****
+               test37.out test38.out test39.out test40.out test41.out \
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 48,54 ----
+               test37.out test38.out test39.out test40.out test41.out \
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out test77.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.142/src/testdir/Make_os2.mak    2010-11-10 16:54:16.000000000 +0100
+--- src/testdir/Make_os2.mak   2011-03-03 17:04:48.000000000 +0100
+***************
+*** 28,34 ****
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out
+  
+  .SUFFIXES: .in .out
+  
+--- 28,34 ----
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out test77.out
+  
+  .SUFFIXES: .in .out
+  
+*** ../vim-7.3.142/src/testdir/Makefile        2010-11-10 16:54:16.000000000 +0100
+--- src/testdir/Makefile       2011-03-22 17:03:25.000000000 +0100
+***************
+*** 25,31 ****
+               test59.out test60.out test61.out test62.out test63.out \
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out
+  
+  SCRIPTS_GUI = test16.out
+  
+--- 25,31 ----
+               test59.out test60.out test61.out test62.out test63.out \
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out test77.out
+  
+  SCRIPTS_GUI = test16.out
+  
+***************
+*** 71,77 ****
+                 fi \
+               else echo $* NO OUTPUT >>test.log; \
+               fi"
+!      -rm -rf X* test.ok viminfo
+  
+  test49.out: test49.vim
+  
+--- 71,77 ----
+                 fi \
+               else echo $* NO OUTPUT >>test.log; \
+               fi"
+! #    -rm -rf X* test.ok viminfo
+  
+  test49.out: test49.vim
+  
+*** ../vim-7.3.142/src/testdir/test77.in       2011-03-03 21:59:10.000000000 +0100
+--- src/testdir/test77.in      2011-03-22 17:12:38.000000000 +0100
+***************
+*** 0 ****
+--- 1,27 ----
++ Inserts 2 million lines with consecutive integers starting from 1
++ (essentially, the output of GNU's seq 1 2000000), writes them to Xtest
++ and writes its cksum to test.out.
++ 
++ We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
++ up the lines the checksum would differ.
++ 
++ cksum is part of POSIX and so should be available on most Unixes.
++ If it isn't available then the test will be skipped.
++ 
++ STARTTEST
++ :so small.vim
++ :if !executable("cksum")
++ : e! test.ok
++ : w! test.out
++ : qa!
++ :endif
++ :set fileformat=unix undolevels=-1
++ ggdG
++ :let i = 1
++ :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
++ ggdd
++ :w! Xtest
++ :!cksum Xtest > test.out
++ :qa!
++ ENDTEST
++ 
+*** ../vim-7.3.142/src/testdir/test77.ok       2011-03-03 21:59:10.000000000 +0100
+--- src/testdir/test77.ok      2011-03-22 17:10:14.000000000 +0100
+***************
+*** 0 ****
+--- 1 ----
++ 3678979763 14888896 Xtest
+*** ../vim-7.3.142/src/version.c       2011-03-22 15:47:18.000000000 +0100
+--- src/version.c      2011-03-22 18:01:48.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     143,
+  /**/
+
+-- 
+SIGIRO -- irony detected (iron core dumped)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.144.patch0 b/vim/patches/vim-7.3.144.patch0
new file mode 100644 (file)
index 0000000..3bdea8d
--- /dev/null
@@ -0,0 +1,80 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.144
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.144
+Problem:    Crash with ":python help(dir)". (Kearn Holliday)
+Solution:   Fix the way the type is set on objects. (Tobias Columbus)
+Files:     src/if_python.c
+
+
+*** ../vim-7.3.143/src/if_python.c     2010-11-16 19:25:56.000000000 +0100
+--- src/if_python.c    2011-03-26 13:54:22.000000000 +0100
+***************
+*** 780,786 ****
+  PythonIO_Init(void)
+  {
+      /* Fixups... */
+!     OutputType.ob_type = &PyType_Type;
+  
+      return PythonIO_Init_io();
+  }
+--- 780,786 ----
+  PythonIO_Init(void)
+  {
+      /* Fixups... */
+!     PyType_Ready(&OutputType);
+  
+      return PythonIO_Init_io();
+  }
+***************
+*** 1402,1413 ****
+      static char *(argv[2]) = {"/must>not&exist/foo", NULL};
+  
+      /* Fixups... */
+!     BufferType.ob_type = &PyType_Type;
+!     RangeType.ob_type = &PyType_Type;
+!     WindowType.ob_type = &PyType_Type;
+!     BufListType.ob_type = &PyType_Type;
+!     WinListType.ob_type = &PyType_Type;
+!     CurrentType.ob_type = &PyType_Type;
+  
+      /* Set sys.argv[] to avoid a crash in warn(). */
+      PySys_SetArgv(1, argv);
+--- 1402,1413 ----
+      static char *(argv[2]) = {"/must>not&exist/foo", NULL};
+  
+      /* Fixups... */
+!     PyType_Ready(&BufferType);
+!     PyType_Ready(&RangeType);
+!     PyType_Ready(&WindowType);
+!     PyType_Ready(&BufListType);
+!     PyType_Ready(&WinListType);
+!     PyType_Ready(&CurrentType);
+  
+      /* Set sys.argv[] to avoid a crash in warn(). */
+      PySys_SetArgv(1, argv);
+*** ../vim-7.3.143/src/version.c       2011-03-22 18:10:34.000000000 +0100
+--- src/version.c      2011-03-26 13:56:15.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     144,
+  /**/
+
+-- 
+The chat program is in public domain.  This is not the GNU public license.
+If it breaks then you get to keep both pieces.
+               -- Copyright notice for the chat program
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.145.patch0 b/vim/patches/vim-7.3.145.patch0
new file mode 100644 (file)
index 0000000..a435fc2
--- /dev/null
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.145
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.145 (after 7.3.144)
+Problem:    Can't build with Python dynamically loading.
+Solution:   Add dll_PyType_Ready.
+Files:     src/if_python.c
+
+
+*** ../vim-7.3.144/src/if_python.c     2011-03-26 13:56:41.000000000 +0100
+--- src/if_python.c    2011-03-26 18:10:00.000000000 +0100
+***************
+*** 165,170 ****
+--- 165,171 ----
+  # define PySys_SetObject dll_PySys_SetObject
+  # define PySys_SetArgv dll_PySys_SetArgv
+  # define PyType_Type (*dll_PyType_Type)
++ # define PyType_Ready (*dll_PyType_Ready)
+  # define Py_BuildValue dll_Py_BuildValue
+  # define Py_FindMethod dll_Py_FindMethod
+  # define Py_InitModule4 dll_Py_InitModule4
+***************
+*** 224,229 ****
+--- 225,231 ----
+  static int(*dll_PySys_SetObject)(char *, PyObject *);
+  static int(*dll_PySys_SetArgv)(int, char **);
+  static PyTypeObject* dll_PyType_Type;
++ static int (*dll_PyType_Ready)(PyTypeObject *type);
+  static PyObject*(*dll_Py_BuildValue)(char *, ...);
+  static PyObject*(*dll_Py_FindMethod)(struct PyMethodDef[], PyObject *, char *);
+  static PyObject*(*dll_Py_InitModule4)(char *, struct PyMethodDef *, char *, PyObject *, int);
+***************
+*** 305,310 ****
+--- 307,313 ----
+      {"PySys_SetObject", (PYTHON_PROC*)&dll_PySys_SetObject},
+      {"PySys_SetArgv", (PYTHON_PROC*)&dll_PySys_SetArgv},
+      {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type},
++     {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
+      {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
+      {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
+  # if (PY_VERSION_HEX >= 0x02050000) && SIZEOF_SIZE_T != SIZEOF_INT
+*** ../vim-7.3.144/src/version.c       2011-03-26 13:56:41.000000000 +0100
+--- src/version.c      2011-03-26 18:11:19.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     145,
+  /**/
+
+-- 
+This message contains 78% recycled characters.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.146.patch0 b/vim/patches/vim-7.3.146.patch0
new file mode 100644 (file)
index 0000000..0a7390c
--- /dev/null
@@ -0,0 +1,224 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.146
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.146
+Problem:    It's possible to assign to a read-only member of a dict.
+           It's possible to create a global variable "0". (ZyX)
+            It's possible to add a v: variable with ":let v:.name = 1".
+Solution:   Add check for dict item being read-only.
+           Check the name of g: variables.
+           Disallow adding v: variables.
+Files:     src/eval.c
+
+
+*** ../vim-7.3.145/src/eval.c  2011-02-01 13:48:47.000000000 +0100
+--- src/eval.c 2011-03-27 15:56:44.000000000 +0200
+***************
+*** 789,794 ****
+--- 789,796 ----
+  static void set_var __ARGS((char_u *name, typval_T *varp, int copy));
+  static int var_check_ro __ARGS((int flags, char_u *name));
+  static int var_check_fixed __ARGS((int flags, char_u *name));
++ static int var_check_func_name __ARGS((char_u *name, int new_var));
++ static int valid_varname __ARGS((char_u *varname));
+  static int tv_check_lock __ARGS((int lock, char_u *name));
+  static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID));
+  static char_u *find_option_end __ARGS((char_u **arg, int *opt_flags));
+***************
+*** 2716,2723 ****
+--- 2718,2744 ----
+           lp->ll_list = NULL;
+           lp->ll_dict = lp->ll_tv->vval.v_dict;
+           lp->ll_di = dict_find(lp->ll_dict, key, len);
++ 
++          /* When assigning to g: check that a function and variable name is
++           * valid. */
++          if (rettv != NULL && lp->ll_dict == &globvardict)
++          {
++              if (rettv->v_type == VAR_FUNC
++                             && var_check_func_name(key, lp->ll_di == NULL))
++                  return NULL;
++              if (!valid_varname(key))
++                  return NULL;
++          }
++ 
+           if (lp->ll_di == NULL)
+           {
++              /* Can't add "v:" variable. */
++              if (lp->ll_dict == &vimvardict)
++              {
++                  EMSG2(_(e_illvar), name);
++                  return NULL;
++              }
++ 
+               /* Key does not exist in dict: may need to add it. */
+               if (*p == '[' || *p == '.' || unlet)
+               {
+***************
+*** 2737,2742 ****
+--- 2758,2767 ----
+                   p = NULL;
+               break;
+           }
++          /* existing variable, need to check if it can be changed */
++          else if (var_check_ro(lp->ll_di->di_flags, name))
++              return NULL;
++ 
+           if (len == -1)
+               clear_tv(&var1);
+           lp->ll_tv = &lp->ll_di->di_tv;
+***************
+*** 19786,19792 ****
+      dictitem_T       *v;
+      char_u   *varname;
+      hashtab_T        *ht;
+-     char_u   *p;
+  
+      ht = find_var_ht(name, &varname);
+      if (ht == NULL || *varname == NUL)
+--- 19811,19816 ----
+***************
+*** 19796,19820 ****
+      }
+      v = find_var_in_ht(ht, varname, TRUE);
+  
+!     if (tv->v_type == VAR_FUNC)
+!     {
+!      if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
+!              && !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
+!                                                       ? name[2] : name[0]))
+!      {
+!          EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
+!          return;
+!      }
+!      /* Don't allow hiding a function.  When "v" is not NULL we might be
+!       * assigning another function to the same var, the type is checked
+!       * below. */
+!      if (v == NULL && function_exists(name))
+!      {
+!          EMSG2(_("E705: Variable name conflicts with existing function: %s"),
+!                                                                      name);
+!          return;
+!      }
+!     }
+  
+      if (v != NULL)
+      {
+--- 19820,19827 ----
+      }
+      v = find_var_in_ht(ht, varname, TRUE);
+  
+!     if (tv->v_type == VAR_FUNC && var_check_func_name(name, v == NULL))
+!      return;
+  
+      if (v != NULL)
+      {
+***************
+*** 19880,19892 ****
+       }
+  
+       /* Make sure the variable name is valid. */
+!      for (p = varname; *p != NUL; ++p)
+!          if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
+!                                                     && *p != AUTOLOAD_CHAR)
+!          {
+!              EMSG2(_(e_illvar), varname);
+!              return;
+!          }
+  
+       v = (dictitem_T *)alloc((unsigned)(sizeof(dictitem_T)
+                                                         + STRLEN(varname)));
+--- 19887,19894 ----
+       }
+  
+       /* Make sure the variable name is valid. */
+!      if (!valid_varname(varname))
+!          return;
+  
+       v = (dictitem_T *)alloc((unsigned)(sizeof(dictitem_T)
+                                                         + STRLEN(varname)));
+***************
+*** 19951,19956 ****
+--- 19953,20007 ----
+  }
+  
+  /*
++  * Check if a funcref is assigned to a valid variable name.
++  * Return TRUE and give an error if not.
++  */
++     static int
++ var_check_func_name(name, new_var)
++     char_u *name;    /* points to start of variable name */
++     int    new_var;  /* TRUE when creating the variable */
++ {
++     if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
++          && !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
++                                                   ? name[2] : name[0]))
++     {
++      EMSG2(_("E704: Funcref variable name must start with a capital: %s"),
++                                                                      name);
++      return TRUE;
++     }
++     /* Don't allow hiding a function.  When "v" is not NULL we might be
++      * assigning another function to the same var, the type is checked
++      * below. */
++     if (new_var && function_exists(name))
++     {
++      EMSG2(_("E705: Variable name conflicts with existing function: %s"),
++                                                                  name);
++      return TRUE;
++     }
++     return FALSE;
++ }
++ 
++ /*
++  * Check if a variable name is valid.
++  * Return FALSE and give an error if not.
++  */
++     static int
++ valid_varname(varname)
++     char_u *varname;
++ {
++     char_u *p;
++ 
++     for (p = varname; *p != NUL; ++p)
++      if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
++                                                 && *p != AUTOLOAD_CHAR)
++      {
++          EMSG2(_(e_illvar), varname);
++          return FALSE;
++      }
++     return TRUE;
++ }
++ 
++ /*
+   * Return TRUE if typeval "tv" is set to be locked (immutable).
+   * Also give an error message, using "name".
+   */
+*** ../vim-7.3.145/src/version.c       2011-03-26 18:32:00.000000000 +0100
+--- src/version.c      2011-03-27 16:01:03.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     146,
+  /**/
+
+-- 
+ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot.
+        King of all Britons, defeator of the Saxons, sovereign of all England!
+   [Pause]
+SOLDIER: Get away!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.147.patch0 b/vim/patches/vim-7.3.147.patch0
new file mode 100644 (file)
index 0000000..b6fd756
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.147
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.147 (after 7.3.143)
+Problem:    Can't build on HP-UX.
+Solution:   Remove an unnecessary backslash. (John Marriott)
+Files:     src/Makefile
+
+
+*** ../vim-7.3.146/src/Makefile        2011-03-22 18:10:34.000000000 +0100
+--- src/Makefile       2011-04-01 13:00:58.000000000 +0200
+***************
+*** 1565,1571 ****
+  
+  OBJ = $(OBJ_COMMON) \
+       objects/main.o \
+!      objects/memfile.o \
+  
+  MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
+          objects/memfile_test.o
+--- 1565,1571 ----
+  
+  OBJ = $(OBJ_COMMON) \
+       objects/main.o \
+!      objects/memfile.o
+  
+  MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
+          objects/memfile_test.o
+*** ../vim-7.3.146/src/version.c       2011-03-27 16:03:09.000000000 +0200
+--- src/version.c      2011-04-01 13:05:18.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     147,
+  /**/
+
+-- 
+DENNIS: You can't expect to wield supreme executive power just 'cause some
+        watery tart threw a sword at you!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.148.patch0 b/vim/patches/vim-7.3.148.patch0
new file mode 100644 (file)
index 0000000..30492c0
--- /dev/null
@@ -0,0 +1,252 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.148
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.148
+Problem:    A syntax file with a huge number of items or clusters causes weird
+           behavior, a hang or a crash. (Yukihiro Nakadaira)
+Solution:   Check running out of IDs. (partly by Ben Schmidt)
+Files:     src/syntax.c
+
+
+*** ../vim-7.3.147/src/syntax.c        2011-01-22 00:58:15.000000000 +0100
+--- src/syntax.c       2011-04-01 14:25:39.000000000 +0200
+***************
+*** 219,234 ****
+  
+  /*
+   * Syntax group IDs have different types:
+!  *     0 -  9999  normal syntax groups
+!  * 10000 - 14999  ALLBUT indicator (current_syn_inc_tag added)
+!  * 15000 - 19999  TOP indicator (current_syn_inc_tag added)
+!  * 20000 - 24999  CONTAINED indicator (current_syn_inc_tag added)
+!  * >= 25000    cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
+!  */
+! #define SYNID_ALLBUT 10000       /* syntax group ID for contains=ALLBUT */
+! #define SYNID_TOP    15000       /* syntax group ID for contains=TOP */
+! #define SYNID_CONTAINED      20000       /* syntax group ID for contains=CONTAINED */
+! #define SYNID_CLUSTER        25000       /* first syntax group ID for clusters */
+  
+  /*
+   * Annoying Hack(TM):  ":syn include" needs this pointer to pass to
+--- 219,238 ----
+  
+  /*
+   * Syntax group IDs have different types:
+!  *     0 - 19999  normal syntax groups
+!  * 20000 - 20999  ALLBUT indicator (current_syn_inc_tag added)
+!  * 21000 - 21999  TOP indicator (current_syn_inc_tag added)
+!  * 22000 - 22999  CONTAINED indicator (current_syn_inc_tag added)
+!  * 23000 - 32767  cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
+!  */
+! #define SYNID_ALLBUT 20000       /* syntax group ID for contains=ALLBUT */
+! #define SYNID_TOP    21000       /* syntax group ID for contains=TOP */
+! #define SYNID_CONTAINED      22000       /* syntax group ID for contains=CONTAINED */
+! #define SYNID_CLUSTER        23000       /* first syntax group ID for clusters */
+! 
+! #define MAX_SYNID       SYNID_ALLBUT
+! #define MAX_SYN_INC_TAG      999         /* maximum before the above overflow */
+! #define MAX_CLUSTER_ID  (32767 - SYNID_CLUSTER)
+  
+  /*
+   * Annoying Hack(TM):  ":syn include" needs this pointer to pass to
+***************
+*** 3442,3447 ****
+--- 3446,3454 ----
+      /* free the stored states */
+      syn_stack_free_all(block);
+      invalidate_current_state();
++ 
++     /* Reset the counter for ":syn include" */
++     running_syn_inc_tag = 0;
+  }
+  
+  /*
+***************
+*** 4661,4666 ****
+--- 4668,4675 ----
+           return;
+       }
+       sgl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
++      if (sgl_id == 0)
++          return;
+       /* separate_nextcmd() and expand_filename() depend on this */
+       eap->arg = rest;
+      }
+***************
+*** 4689,4694 ****
+--- 4698,4708 ----
+       * Save and restore the existing top-level grouplist id and ":syn
+       * include" tag around the actual inclusion.
+       */
++     if (running_syn_inc_tag >= MAX_SYN_INC_TAG)
++     {
++      EMSG((char_u *)_("E847: Too many syntax includes"));
++      return;
++     }
+      prev_syn_inc_tag = current_syn_inc_tag;
+      current_syn_inc_tag = ++running_syn_inc_tag;
+      prev_toplvl_grp = curwin->w_s->b_syn_topgrp;
+***************
+*** 4712,4718 ****
+      char_u   *group_name_end;
+      int              syn_id;
+      char_u   *rest;
+!     char_u   *keyword_copy;
+      char_u   *p;
+      char_u   *kw;
+      syn_opt_arg_T syn_opt_arg;
+--- 4726,4732 ----
+      char_u   *group_name_end;
+      int              syn_id;
+      char_u   *rest;
+!     char_u   *keyword_copy = NULL;
+      char_u   *p;
+      char_u   *kw;
+      syn_opt_arg_T syn_opt_arg;
+***************
+*** 4724,4732 ****
+      if (rest != NULL)
+      {
+       syn_id = syn_check_group(arg, (int)(group_name_end - arg));
+! 
+!      /* allocate a buffer, for removing the backslashes in the keyword */
+!      keyword_copy = alloc((unsigned)STRLEN(rest) + 1);
+       if (keyword_copy != NULL)
+       {
+           syn_opt_arg.flags = 0;
+--- 4738,4746 ----
+      if (rest != NULL)
+      {
+       syn_id = syn_check_group(arg, (int)(group_name_end - arg));
+!      if (syn_id != 0)
+!          /* allocate a buffer, for removing backslashes in the keyword */
+!          keyword_copy = alloc((unsigned)STRLEN(rest) + 1);
+       if (keyword_copy != NULL)
+       {
+           syn_opt_arg.flags = 0;
+***************
+*** 5133,5139 ****
+                           (item == ITEM_SKIP) ? SPTYPE_SKIP : SPTYPE_END;
+                   SYN_ITEMS(curwin->w_s)[idx].sp_flags |= syn_opt_arg.flags;
+                   SYN_ITEMS(curwin->w_s)[idx].sp_syn.id = syn_id;
+!                  SYN_ITEMS(curwin->w_s)[idx].sp_syn.inc_tag = current_syn_inc_tag;
+                   SYN_ITEMS(curwin->w_s)[idx].sp_syn_match_id =
+                                                       ppp->pp_matchgroup_id;
+  #ifdef FEAT_CONCEAL
+--- 5147,5154 ----
+                           (item == ITEM_SKIP) ? SPTYPE_SKIP : SPTYPE_END;
+                   SYN_ITEMS(curwin->w_s)[idx].sp_flags |= syn_opt_arg.flags;
+                   SYN_ITEMS(curwin->w_s)[idx].sp_syn.id = syn_id;
+!                  SYN_ITEMS(curwin->w_s)[idx].sp_syn.inc_tag =
+!                                                        current_syn_inc_tag;
+                   SYN_ITEMS(curwin->w_s)[idx].sp_syn_match_id =
+                                                       ppp->pp_matchgroup_id;
+  #ifdef FEAT_CONCEAL
+***************
+*** 5426,5431 ****
+--- 5441,5454 ----
+       curwin->w_s->b_syn_clusters.ga_growsize = 10;
+      }
+  
++     len = curwin->w_s->b_syn_clusters.ga_len;
++     if (len >= MAX_CLUSTER_ID)
++     {
++      EMSG((char_u *)_("E848: Too many syntax clusters"));
++      vim_free(name);
++      return 0;
++     }
++ 
+      /*
+       * Make room for at least one other cluster entry.
+       */
+***************
+*** 5434,5440 ****
+       vim_free(name);
+       return 0;
+      }
+-     len = curwin->w_s->b_syn_clusters.ga_len;
+  
+      vim_memset(&(SYN_CLSTR(curwin->w_s)[len]), 0, sizeof(syn_cluster_T));
+      SYN_CLSTR(curwin->w_s)[len].scl_name = name;
+--- 5457,5462 ----
+***************
+*** 5476,5483 ****
+  
+      if (rest != NULL)
+      {
+!      scl_id = syn_check_cluster(arg, (int)(group_name_end - arg))
+!                                                            - SYNID_CLUSTER;
+  
+       for (;;)
+       {
+--- 5498,5507 ----
+  
+      if (rest != NULL)
+      {
+!      scl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
+!      if (scl_id == 0)
+!          return;
+!      scl_id -= SYNID_CLUSTER;
+  
+       for (;;)
+       {
+***************
+*** 5516,5522 ****
+       if (got_clstr)
+       {
+           redraw_curbuf_later(SOME_VALID);
+!          syn_stack_free_all(curwin->w_s);    /* Need to recompute all syntax. */
+       }
+      }
+  
+--- 5540,5546 ----
+       if (got_clstr)
+       {
+           redraw_curbuf_later(SOME_VALID);
+!          syn_stack_free_all(curwin->w_s);    /* Need to recompute all. */
+       }
+      }
+  
+***************
+*** 8972,8977 ****
+--- 8996,9008 ----
+       highlight_ga.ga_growsize = 10;
+      }
+  
++     if (highlight_ga.ga_len >= MAX_SYNID)
++     {
++      EMSG(_("E849: Too many syntax groups"));
++      vim_free(name);
++      return 0;
++     }
++ 
+      /*
+       * Make room for at least one other syntax_highlight entry.
+       */
+*** ../vim-7.3.147/src/version.c       2011-04-01 13:05:37.000000000 +0200
+--- src/version.c      2011-04-01 14:26:44.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     148,
+  /**/
+
+-- 
+BLACK KNIGHT: None shall pass.
+ARTHUR:       I have no quarrel with you, brave Sir knight, but I must cross
+              this bridge.
+BLACK KNIGHT: Then you shall die.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.149.patch0 b/vim/patches/vim-7.3.149.patch0
new file mode 100644 (file)
index 0000000..1901a74
--- /dev/null
@@ -0,0 +1,78 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.149
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.149
+Problem:    The cursor disappears after the processing of the 'setDot'
+           netbeans command when vim runs in a terminal.
+Solution:   Show the cursor after a screen update. (Xavier de Gaye, 2011
+Files:     src/netbeans.c
+
+
+*** ../vim-7.3.148/src/netbeans.c      2011-01-04 18:11:39.000000000 +0100
+--- src/netbeans.c     2011-04-01 15:33:49.000000000 +0200
+***************
+*** 191,196 ****
+--- 191,197 ----
+      changed_window_setting();
+      update_screen(CLEAR);
+      setcursor();
++     cursor_on();
+      out_flush();
+  #ifdef FEAT_GUI
+      if (gui.in_use)
+***************
+*** 2248,2253 ****
+--- 2249,2255 ----
+           update_topline();           /* scroll to show the line */
+           update_screen(VALID);
+           setcursor();
++          cursor_on();
+           out_flush();
+  #ifdef FEAT_GUI
+           if (gui.in_use)
+***************
+*** 2642,2647 ****
+--- 2644,2650 ----
+      {
+       update_screen(NOT_VALID);
+       setcursor();
++      cursor_on();
+       out_flush();
+  #ifdef FEAT_GUI
+       if (gui.in_use)
+***************
+*** 3008,3013 ****
+--- 3011,3017 ----
+      changed_window_setting();
+      update_screen(CLEAR);
+      setcursor();
++     cursor_on();
+      out_flush();
+  #ifdef FEAT_GUI
+      if (gui.in_use)
+*** ../vim-7.3.148/src/version.c       2011-04-01 14:44:54.000000000 +0200
+--- src/version.c      2011-04-01 15:33:21.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     149,
+  /**/
+
+-- 
+ARTHUR:       You are indeed brave Sir knight, but the fight is mine.
+BLACK KNIGHT: Had enough?
+ARTHUR:       You stupid bastard.  You havn't got any arms left.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.150.patch0 b/vim/patches/vim-7.3.150.patch0
new file mode 100644 (file)
index 0000000..83a8bf2
--- /dev/null
@@ -0,0 +1,113 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.150
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.150
+Problem:    readline() does not return the last line when the NL is missing.
+           (Hong Xu)
+Solution:   When at the end of the file Also check for a previous line.
+Files:     src/eval.c
+
+
+*** ../vim-7.3.149/src/eval.c  2011-03-27 16:03:09.000000000 +0200
+--- src/eval.c 2011-04-01 16:06:04.000000000 +0200
+***************
+*** 14305,14313 ****
+       {
+           if (buf[filtd] == '\n' || readlen <= 0)
+           {
+!              /* Only when in binary mode add an empty list item when the
+!               * last line ends in a '\n'. */
+!              if (!binary && readlen == 0 && filtd == 0)
+                   break;
+  
+               /* Found end-of-line or end-of-file: add a text line to the
+--- 14305,14313 ----
+       {
+           if (buf[filtd] == '\n' || readlen <= 0)
+           {
+!              /* In binary mode add an empty list item when the last
+!               * non-empty line ends in a '\n'. */
+!              if (!binary && readlen == 0 && filtd == 0 && prev == NULL)
+                   break;
+  
+               /* Found end-of-line or end-of-file: add a text line to the
+***************
+*** 14372,14396 ****
+  
+       if (tolist == 0)
+       {
+!          /* "buf" is full, need to move text to an allocated buffer */
+!          if (prev == NULL)
+           {
+!              prev = vim_strnsave(buf, buflen);
+!              prevlen = buflen;
+!          }
+!          else
+!          {
+!              s = alloc((unsigned)(prevlen + buflen));
+!              if (s != NULL)
+               {
+!                  mch_memmove(s, prev, prevlen);
+!                  mch_memmove(s + prevlen, buf, buflen);
+!                  vim_free(prev);
+!                  prev = s;
+!                  prevlen += buflen;
+               }
+           }
+-          filtd = 0;
+       }
+       else
+       {
+--- 14372,14399 ----
+  
+       if (tolist == 0)
+       {
+!          if (buflen >= FREAD_SIZE / 2)
+           {
+!              /* "buf" is full, need to move text to an allocated buffer */
+!              if (prev == NULL)
+!              {
+!                  prev = vim_strnsave(buf, buflen);
+!                  prevlen = buflen;
+!              }
+!              else
+               {
+!                  s = alloc((unsigned)(prevlen + buflen));
+!                  if (s != NULL)
+!                  {
+!                      mch_memmove(s, prev, prevlen);
+!                      mch_memmove(s + prevlen, buf, buflen);
+!                      vim_free(prev);
+!                      prev = s;
+!                      prevlen += buflen;
+!                  }
+               }
++              filtd = 0;
+           }
+       }
+       else
+       {
+*** ../vim-7.3.149/src/version.c       2011-04-01 15:33:54.000000000 +0200
+--- src/version.c      2011-04-01 16:04:42.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     150,
+  /**/
+
+-- 
+ARTHUR: What are you going to do. bleed on me?
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.151.patch0 b/vim/patches/vim-7.3.151.patch0
new file mode 100644 (file)
index 0000000..20f5105
--- /dev/null
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.151
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.151 (after 7.3.074)
+Problem:    When "unnamedplus" is in 'clipboard' the selection is sometimes
+           also copied to the star register.
+Solution:   Avoid copy to the star register when undesired. (James Vega)
+Files:     src/ops.c
+
+
+*** ../vim-7.3.150/src/ops.c   2010-12-08 14:23:08.000000000 +0100
+--- src/ops.c  2011-04-01 16:23:10.000000000 +0200
+***************
+*** 3148,3157 ****
+           /* Copy the text from register 0 to the clipboard register. */
+           copy_yank_reg(&(y_regs[PLUS_REGISTER]));
+  
+-      /* No need to copy to * register upon 'unnamed' now - see below */
+       clip_own_selection(&clip_plus);
+       clip_gen_set_selection(&clip_plus);
+!      if (!clip_isautosel() && !did_star)
+       {
+           copy_yank_reg(&(y_regs[STAR_REGISTER]));
+           clip_own_selection(&clip_star);
+--- 3148,3156 ----
+           /* Copy the text from register 0 to the clipboard register. */
+           copy_yank_reg(&(y_regs[PLUS_REGISTER]));
+  
+       clip_own_selection(&clip_plus);
+       clip_gen_set_selection(&clip_plus);
+!      if (!clip_isautosel() && !did_star && curr == &(y_regs[PLUS_REGISTER]))
+       {
+           copy_yank_reg(&(y_regs[STAR_REGISTER]));
+           clip_own_selection(&clip_star);
+*** ../vim-7.3.150/src/version.c       2011-04-01 16:07:41.000000000 +0200
+--- src/version.c      2011-04-01 16:25:40.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     151,
+  /**/
+
+-- 
+BLACK KNIGHT: I'm invincible!
+ARTHUR:       You're a looney.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.152.patch0 b/vim/patches/vim-7.3.152.patch0
new file mode 100644 (file)
index 0000000..fdc58a0
--- /dev/null
@@ -0,0 +1,643 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.152
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.152
+Problem:    Xxd does not check for errors from library functions.
+Solution:   Add error checks. (Florian Zumbiehl)
+Files:     src/xxd/xxd.c
+
+
+*** ../vim-7.3.151/src/xxd/xxd.c       2010-08-15 21:57:25.000000000 +0200
+--- src/xxd/xxd.c      2011-04-01 18:56:11.000000000 +0200
+***************
+*** 49,54 ****
+--- 49,56 ----
+   *       option -b added: 01000101 binary output in normal format.
+   * 16.05.00 Added VAXC changes by Stephen P. Wall
+   * 16.05.00 Improved MMS file and merge for VMS by Zoltan Arpadffy
++  * 2011 March  Better error handling by Florian Zumbiehl.
++  * 2011 April  Formatting by Bram Moolenaar
+   *
+   * (c) 1990-1998 by Juergen Weigert (jnweiger@informatik.uni-erlangen.de)
+   *
+***************
+*** 207,214 ****
+  
+  /* Let's collect some prototypes */
+  /* CodeWarrior is really picky about missing prototypes */
+! static void exit_with_usage __P((char *));
+! static int huntype __P((FILE *, FILE *, FILE *, char *, int, int, long));
+  static void xxdline __P((FILE *, char *, int));
+  
+  #define TRY_SEEK     /* attempt to use lseek, or skip forward by reading */
+--- 209,216 ----
+  
+  /* Let's collect some prototypes */
+  /* CodeWarrior is really picky about missing prototypes */
+! static void exit_with_usage __P((void));
+! static int huntype __P((FILE *, FILE *, FILE *, int, int, long));
+  static void xxdline __P((FILE *, char *, int));
+  
+  #define TRY_SEEK     /* attempt to use lseek, or skip forward by reading */
+***************
+*** 223,231 ****
+  #define HEX_CINCLUDE 2
+  #define HEX_BITS 3           /* not hex a dump, but bits: 01111001 */
+  
+! static void
+! exit_with_usage(pname)
+! char *pname;
+  {
+    fprintf(stderr, "Usage:\n       %s [options] [infile [outfile]]\n", pname);
+    fprintf(stderr, "    or\n       %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
+--- 225,234 ----
+  #define HEX_CINCLUDE 2
+  #define HEX_BITS 3           /* not hex a dump, but bits: 01111001 */
+  
+! static char *pname;
+! 
+!   static void
+! exit_with_usage()
+  {
+    fprintf(stderr, "Usage:\n       %s [options] [infile [outfile]]\n", pname);
+    fprintf(stderr, "    or\n       %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
+***************
+*** 252,257 ****
+--- 255,269 ----
+    exit(1);
+  }
+  
++   static void
++ die(ret)
++   int ret;
++ {
++   fprintf(stderr, "%s: ", pname);
++   perror(NULL);
++   exit(ret);
++ }
++ 
+  /*
+   * Max. cols binary characters are decoded from the input stream per line.
+   * Two adjacent garbage characters after evaluated data delimit valid data.
+***************
+*** 259,270 ****
+   *
+   * The name is historic and came from 'undo type opt h'.
+   */
+! static int
+! huntype(fpi, fpo, fperr, pname, cols, hextype, base_off)
+! FILE *fpi, *fpo, *fperr;
+! char *pname;
+! int cols, hextype;
+! long base_off;
+  {
+    int c, ign_garb = 1, n1 = -1, n2 = 0, n3, p = cols;
+    long have_off = 0, want_off = 0;
+--- 271,281 ----
+   *
+   * The name is historic and came from 'undo type opt h'.
+   */
+!   static int
+! huntype(fpi, fpo, fperr, cols, hextype, base_off)
+!   FILE *fpi, *fpo, *fperr;
+!   int cols, hextype;
+!   long base_off;
+  {
+    int c, ign_garb = 1, n1 = -1, n2 = 0, n3, p = cols;
+    long have_off = 0, want_off = 0;
+***************
+*** 318,324 ****
+  
+        if (base_off + want_off != have_off)
+       {
+!        fflush(fpo);
+  #ifdef TRY_SEEK
+         c = fseek(fpo, base_off + want_off - have_off, 1);
+         if (c >= 0)
+--- 329,336 ----
+  
+        if (base_off + want_off != have_off)
+       {
+!        if (fflush(fpo) != 0)
+!          die(3);
+  #ifdef TRY_SEEK
+         c = fseek(fpo, base_off + want_off - have_off, 1);
+         if (c >= 0)
+***************
+*** 330,341 ****
+             return 5;
+           }
+         for (; have_off < base_off + want_off; have_off++)
+!          putc(0, fpo);
+       }
+  
+        if (n2 >= 0 && n1 >= 0)
+       {
+!        putc((n2 << 4) | n1, fpo);
+         have_off++;
+         want_off++;
+         n1 = -1;
+--- 342,355 ----
+             return 5;
+           }
+         for (; have_off < base_off + want_off; have_off++)
+!          if (putc(0, fpo) == EOF)
+!            die(3);
+       }
+  
+        if (n2 >= 0 && n1 >= 0)
+       {
+!        if (putc((n2 << 4) | n1, fpo) == EOF)
+!          die(3);
+         have_off++;
+         want_off++;
+         n1 = -1;
+***************
+*** 345,350 ****
+--- 359,366 ----
+             want_off = 0;
+             while ((c = getc(fpi)) != '\n' && c != EOF)
+               ;
++            if (c == EOF && ferror(fpi))
++              die(2);
+             ign_garb = 1;
+           }
+       }
+***************
+*** 355,369 ****
+           want_off = 0;
+         while ((c = getc(fpi)) != '\n' && c != EOF)
+           ;
+         ign_garb = 1;
+       }
+      }
+!   fflush(fpo);
+  #ifdef TRY_SEEK
+    fseek(fpo, 0L, 2);
+  #endif
+!   fclose(fpo);
+!   fclose(fpi);
+    return 0;
+  }
+  
+--- 371,390 ----
+           want_off = 0;
+         while ((c = getc(fpi)) != '\n' && c != EOF)
+           ;
++        if (c == EOF && ferror(fpi))
++          die(2);
+         ign_garb = 1;
+       }
+      }
+!   if (fflush(fpo) != 0)
+!     die(3);
+  #ifdef TRY_SEEK
+    fseek(fpo, 0L, 2);
+  #endif
+!   if (fclose(fpo) != 0)
+!     die(3);
+!   if (fclose(fpi) != 0)
+!     die(2);
+    return 0;
+  }
+  
+***************
+*** 379,389 ****
+   *
+   * If nz is always positive, lines are never suppressed.
+   */
+! static void
+  xxdline(fp, l, nz)
+! FILE *fp;
+! char *l;
+! int nz;
+  {
+    static char z[LLEN+1];
+    static int zero_seen = 0;
+--- 400,410 ----
+   *
+   * If nz is always positive, lines are never suppressed.
+   */
+!   static void
+  xxdline(fp, l, nz)
+!   FILE *fp;
+!   char *l;
+!   int nz;
+  {
+    static char z[LLEN+1];
+    static int zero_seen = 0;
+***************
+*** 398,409 ****
+         if (nz < 0)
+           zero_seen--;
+         if (zero_seen == 2)
+!          fputs(z, fp);
+         if (zero_seen > 2)
+!          fputs("*\n", fp);
+       }
+        if (nz >= 0 || zero_seen > 0)
+!      fputs(l, fp);
+        if (nz)
+       zero_seen = 0;
+      }
+--- 419,433 ----
+         if (nz < 0)
+           zero_seen--;
+         if (zero_seen == 2)
+!          if (fputs(z, fp) == EOF)
+!            die(3);
+         if (zero_seen > 2)
+!          if (fputs("*\n", fp) == EOF)
+!            die(3);
+       }
+        if (nz >= 0 || zero_seen > 0)
+!      if (fputs(l, fp) == EOF)
+!        die(3);
+        if (nz)
+       zero_seen = 0;
+      }
+***************
+*** 439,448 ****
+      0070,0071,0372,0373,0374,0375,0376,0377
+  };
+  
+! int
+  main(argc, argv)
+! int argc;
+! char *argv[];
+  {
+    FILE *fp, *fpo;
+    int c, e, p = 0, relseek = 1, negseek = 0, revert = 0;
+--- 463,472 ----
+      0070,0071,0372,0373,0374,0375,0376,0377
+  };
+  
+!   int
+  main(argc, argv)
+!   int argc;
+!   char *argv[];
+  {
+    FILE *fp, *fpo;
+    int c, e, p = 0, relseek = 1, negseek = 0, revert = 0;
+***************
+*** 452,458 ****
+    int grplen;                /* total chars per octet group */
+    long length = -1, n = 0, seekoff = 0;
+    char l[LLEN+1];
+!   char *pname, *pp;
+  
+  #ifdef AMIGA
+    /* This program doesn't work when started from the Workbench */
+--- 476,482 ----
+    int grplen;                /* total chars per octet group */
+    long length = -1, n = 0, seekoff = 0;
+    char l[LLEN+1];
+!   char *pp;
+  
+  #ifdef AMIGA
+    /* This program doesn't work when started from the Workbench */
+***************
+*** 495,501 ****
+         else
+           {
+             if (!argv[2])
+!              exit_with_usage(pname);
+             cols = (int)strtol(argv[2], NULL, 0);
+             argv++;
+             argc--;
+--- 519,525 ----
+         else
+           {
+             if (!argv[2])
+!              exit_with_usage();
+             cols = (int)strtol(argv[2], NULL, 0);
+             argv++;
+             argc--;
+***************
+*** 508,514 ****
+         else
+           {
+             if (!argv[2])
+!              exit_with_usage(pname);
+             octspergrp = (int)strtol(argv[2], NULL, 0);
+             argv++;
+             argc--;
+--- 532,538 ----
+         else
+           {
+             if (!argv[2])
+!              exit_with_usage();
+             octspergrp = (int)strtol(argv[2], NULL, 0);
+             argv++;
+             argc--;
+***************
+*** 531,537 ****
+         else
+           {
+             if (!argv[2])
+!              exit_with_usage(pname);
+  #ifdef TRY_SEEK
+             if (argv[2][0] == '+')
+               relseek++;
+--- 555,561 ----
+         else
+           {
+             if (!argv[2])
+!              exit_with_usage();
+  #ifdef TRY_SEEK
+             if (argv[2][0] == '+')
+               relseek++;
+***************
+*** 550,556 ****
+         else
+           {
+             if (!argv[2])
+!              exit_with_usage(pname);
+             length = strtol(argv[2], (char **)NULL, 0);
+             argv++;
+             argc--;
+--- 574,580 ----
+         else
+           {
+             if (!argv[2])
+!              exit_with_usage();
+             length = strtol(argv[2], (char **)NULL, 0);
+             argv++;
+             argc--;
+***************
+*** 563,569 ****
+         break;
+       }
+        else if (pp[0] == '-' && pp[1])        /* unknown option */
+!      exit_with_usage(pname);
+        else
+       break;                          /* not an option */
+  
+--- 587,593 ----
+         break;
+       }
+        else if (pp[0] == '-' && pp[1])        /* unknown option */
+!      exit_with_usage();
+        else
+       break;                          /* not an option */
+  
+***************
+*** 602,608 ****
+      octspergrp = cols;
+  
+    if (argc > 3)
+!     exit_with_usage(pname);
+  
+    if (argc == 1 || (argv[1][0] == '-' && !argv[1][1]))
+      BIN_ASSIGN(fp = stdin, !revert);
+--- 626,632 ----
+      octspergrp = cols;
+  
+    if (argc > 3)
+!     exit_with_usage();
+  
+    if (argc == 1 || (argv[1][0] == '-' && !argv[1][1]))
+      BIN_ASSIGN(fp = stdin, !revert);
+***************
+*** 640,646 ****
+         fprintf(stderr, "%s: sorry, cannot revert this type of hexdump\n", pname);
+         return -1;
+       }
+!       return huntype(fp, fpo, stderr, pname, cols, hextype,
+               negseek ? -seekoff : seekoff);
+      }
+  
+--- 664,670 ----
+         fprintf(stderr, "%s: sorry, cannot revert this type of hexdump\n", pname);
+         return -1;
+       }
+!       return huntype(fp, fpo, stderr, cols, hextype,
+               negseek ? -seekoff : seekoff);
+      }
+  
+***************
+*** 664,670 ****
+         long s = seekoff;
+  
+         while (s--)
+!          (void)getc(fp);
+       }
+      }
+  
+--- 688,703 ----
+         long s = seekoff;
+  
+         while (s--)
+!          if (getc(fp) == EOF)
+!            if (ferror(fp))
+!              {
+!                die(2);
+!              }
+!            else
+!              {
+!                fprintf(stderr, "%s: sorry cannot seek.\n", pname);
+!                return 4;
+!              }
+       }
+      }
+  
+***************
+*** 672,725 ****
+      {
+        if (fp != stdin)
+       {
+!        fprintf(fpo, "unsigned char %s", isdigit((int)argv[1][0]) ? "__" : "");
+         for (e = 0; (c = argv[1][e]) != 0; e++)
+!          putc(isalnum(c) ? c : '_', fpo);
+!        fputs("[] = {\n", fpo);
+       }
+  
+        p = 0;
+        while ((length < 0 || p < length) && (c = getc(fp)) != EOF)
+       {
+!        fprintf(fpo, (hexx == hexxa) ? "%s0x%02x" : "%s0X%02X",
+!          (p % cols) ? ", " : ",\n  "+2*!p,  c);
+         p++;
+       }
+  
+        if (p)
+!      fputs("\n};\n"+3*(fp == stdin), fpo);
+  
+        if (fp != stdin)
+       {
+!        fprintf(fpo, "unsigned int %s", isdigit((int)argv[1][0]) ? "__" : "");
+         for (e = 0; (c = argv[1][e]) != 0; e++)
+!          putc(isalnum(c) ? c : '_', fpo);
+!        fprintf(fpo, "_len = %d;\n", p);
+       }
+  
+!       fclose(fp);
+!       fclose(fpo);
+        return 0;
+      }
+  
+    if (hextype == HEX_POSTSCRIPT)
+      {
+        p = cols;
+        while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
+       {
+!        putchar(hexx[(e >> 4) & 0xf]);
+!        putchar(hexx[(e     ) & 0xf]);
+         n++;
+         if (!--p)
+           {
+!            putchar('\n');
+             p = cols;
+           }
+       }
+        if (p < cols)
+!      putchar('\n');
+!       fclose(fp);
+!       fclose(fpo);
+        return 0;
+      }
+  
+--- 705,779 ----
+      {
+        if (fp != stdin)
+       {
+!        if (fprintf(fpo, "unsigned char %s", isdigit((int)argv[1][0]) ? "__" : "") < 0)
+!          die(3);
+         for (e = 0; (c = argv[1][e]) != 0; e++)
+!          if (putc(isalnum(c) ? c : '_', fpo) == EOF)
+!            die(3);
+!        if (fputs("[] = {\n", fpo) == EOF)
+!          die(3);
+       }
+  
+        p = 0;
++       c = 0;
+        while ((length < 0 || p < length) && (c = getc(fp)) != EOF)
+       {
+!        if (fprintf(fpo, (hexx == hexxa) ? "%s0x%02x" : "%s0X%02X",
+!              (p % cols) ? ", " : ",\n  "+2*!p,  c) < 0)
+!          die(3);
+         p++;
+       }
++       if (c == EOF && ferror(fp))
++      die(2);
+  
+        if (p)
+!      if (fputs("\n};\n" + 3 * (fp == stdin), fpo) == EOF)
+!        die(3);
+  
+        if (fp != stdin)
+       {
+!        if (fprintf(fpo, "unsigned int %s", isdigit((int)argv[1][0]) ? "__" : "") < 0)
+!          die(3);
+         for (e = 0; (c = argv[1][e]) != 0; e++)
+!          if (putc(isalnum(c) ? c : '_', fpo) == EOF)
+!            die(3);
+!        if (fprintf(fpo, "_len = %d;\n", p) < 0)
+!          die(3);
+       }
+  
+!       if (fclose(fp))
+!      die(2);
+!       if (fclose(fpo))
+!      die(3);
+        return 0;
+      }
+  
+    if (hextype == HEX_POSTSCRIPT)
+      {
+        p = cols;
++       e = 0;
+        while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
+       {
+!        if (putc(hexx[(e >> 4) & 0xf], fpo) == EOF
+!                || putc(hexx[e & 0xf], fpo) == EOF)
+!          die(3);
+         n++;
+         if (!--p)
+           {
+!            if (putc('\n', fpo) == EOF)
+!              die(3);
+             p = cols;
+           }
+       }
++       if (e == EOF && ferror(fp))
++      die(2);
+        if (p < cols)
+!      if (putc('\n', fpo) == EOF)
+!        die(3);
+!       if (fclose(fp))
+!      die(2);
+!       if (fclose(fpo))
+!      die(3);
+        return 0;
+      }
+  
+***************
+*** 730,735 ****
+--- 784,790 ----
+    else       /* hextype == HEX_BITS */
+      grplen = 8 * octspergrp + 1;
+  
++   e = 0;
+    while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
+      {
+        if (p == 0)
+***************
+*** 771,776 ****
+--- 826,833 ----
+         p = 0;
+       }
+      }
++   if (e == EOF && ferror(fp))
++     die(2);
+    if (p)
+      {
+        l[c = (11 + (grplen * cols - 1)/octspergrp + p)] = '\n'; l[++c] = '\0';
+***************
+*** 779,785 ****
+    else if (autoskip)
+      xxdline(fpo, l, -1);     /* last chance to flush out suppressed lines */
+  
+!   fclose(fp);
+!   fclose(fpo);
+    return 0;
+  }
+--- 836,846 ----
+    else if (autoskip)
+      xxdline(fpo, l, -1);     /* last chance to flush out suppressed lines */
+  
+!   if (fclose(fp))
+!     die(2);
+!   if (fclose(fpo))
+!     die(3);
+    return 0;
+  }
++ 
++ /* vi:set ts=8 sw=4 sts=2 cino+={2 cino+=n-2 : */
+*** ../vim-7.3.151/src/version.c       2011-04-01 16:28:33.000000000 +0200
+--- src/version.c      2011-04-01 19:00:26.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     152,
+  /**/
+
+-- 
+Eye have a spelling checker, it came with my PC;
+It plainly marks four my revue mistakes I cannot sea.
+I've run this poem threw it, I'm sure your please to no,
+It's letter perfect in it's weigh, my checker tolled me sew!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.153.patch0 b/vim/patches/vim-7.3.153.patch0
new file mode 100644 (file)
index 0000000..9f76b51
--- /dev/null
@@ -0,0 +1,66 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.153
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.153 (after 7.3.152)
+Problem:    Compiler warning for ambiguous else, missing prototype.
+Solution:   Add braces. (Dominique Pelle)  Add prototype for die().
+Files:     src/xxd/xxd.c
+
+
+*** ../vim-7.3.152/src/xxd/xxd.c       2011-04-01 19:14:35.000000000 +0200
+--- src/xxd/xxd.c      2011-04-02 14:42:54.000000000 +0200
+***************
+*** 210,215 ****
+--- 210,216 ----
+  /* Let's collect some prototypes */
+  /* CodeWarrior is really picky about missing prototypes */
+  static void exit_with_usage __P((void));
++ static void die __P((int));
+  static int huntype __P((FILE *, FILE *, FILE *, int, int, long));
+  static void xxdline __P((FILE *, char *, int));
+  
+***************
+*** 689,694 ****
+--- 690,696 ----
+  
+         while (s--)
+           if (getc(fp) == EOF)
++          {
+             if (ferror(fp))
+               {
+                 die(2);
+***************
+*** 698,703 ****
+--- 700,706 ----
+                 fprintf(stderr, "%s: sorry cannot seek.\n", pname);
+                 return 4;
+               }
++          }
+       }
+      }
+  
+*** ../vim-7.3.152/src/version.c       2011-04-01 19:14:35.000000000 +0200
+--- src/version.c      2011-04-02 14:41:12.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     153,
+  /**/
+
+-- 
+            |
+
+Ceci n'est pas une pipe.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.154.patch0 b/vim/patches/vim-7.3.154.patch0
new file mode 100644 (file)
index 0000000..e7c8862
--- /dev/null
@@ -0,0 +1,106 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.154
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.154 (after 7.3.148)
+Problem:    Can't compile with tiny features. (Tony Mechelynck)
+Solution:   Move #define outside of #ifdef.
+Files:     src/syntax.c
+
+
+*** ../vim-7.3.153/src/syntax.c        2011-04-01 14:44:54.000000000 +0200
+--- src/syntax.c       2011-04-02 15:11:47.000000000 +0200
+***************
+*** 68,73 ****
+--- 68,75 ----
+  
+  #define HL_TABLE() ((struct hl_group *)((highlight_ga.ga_data)))
+  
++ #define MAX_HL_ID       20000        /* maximum value for a highlight ID. */
++ 
+  #ifdef FEAT_CMDL_COMPL
+  /* Flags to indicate an additional string for highlight name completion. */
+  static int include_none = 0; /* when 1 include "None" */
+***************
+*** 225,236 ****
+   * 22000 - 22999  CONTAINED indicator (current_syn_inc_tag added)
+   * 23000 - 32767  cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
+   */
+! #define SYNID_ALLBUT 20000       /* syntax group ID for contains=ALLBUT */
+  #define SYNID_TOP    21000       /* syntax group ID for contains=TOP */
+  #define SYNID_CONTAINED      22000       /* syntax group ID for contains=CONTAINED */
+  #define SYNID_CLUSTER        23000       /* first syntax group ID for clusters */
+  
+- #define MAX_SYNID       SYNID_ALLBUT
+  #define MAX_SYN_INC_TAG      999         /* maximum before the above overflow */
+  #define MAX_CLUSTER_ID  (32767 - SYNID_CLUSTER)
+  
+--- 227,237 ----
+   * 22000 - 22999  CONTAINED indicator (current_syn_inc_tag added)
+   * 23000 - 32767  cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
+   */
+! #define SYNID_ALLBUT MAX_HL_ID   /* syntax group ID for contains=ALLBUT */
+  #define SYNID_TOP    21000       /* syntax group ID for contains=TOP */
+  #define SYNID_CONTAINED      22000       /* syntax group ID for contains=CONTAINED */
+  #define SYNID_CLUSTER        23000       /* first syntax group ID for clusters */
+  
+  #define MAX_SYN_INC_TAG      999         /* maximum before the above overflow */
+  #define MAX_CLUSTER_ID  (32767 - SYNID_CLUSTER)
+  
+***************
+*** 6462,6468 ****
+  
+  #endif /* FEAT_SYN_HL */
+  
+- 
+  /**************************************
+   *  Highlighting stuff                     *
+   **************************************/
+--- 6463,6468 ----
+***************
+*** 8996,9004 ****
+       highlight_ga.ga_growsize = 10;
+      }
+  
+!     if (highlight_ga.ga_len >= MAX_SYNID)
+      {
+!      EMSG(_("E849: Too many syntax groups"));
+       vim_free(name);
+       return 0;
+      }
+--- 8996,9004 ----
+       highlight_ga.ga_growsize = 10;
+      }
+  
+!     if (highlight_ga.ga_len >= MAX_HL_ID)
+      {
+!      EMSG(_("E849: Too many highlight and syntax groups"));
+       vim_free(name);
+       return 0;
+      }
+*** ../vim-7.3.153/src/version.c       2011-04-02 14:44:50.000000000 +0200
+--- src/version.c      2011-04-02 14:52:33.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     154,
+  /**/
+
+-- 
+BEDEVERE:        Why do you think she is a witch?
+SECOND VILLAGER: She turned me into a newt.
+BEDEVERE:        A newt?
+SECOND VILLAGER: (After looking at himself for some time) I got better.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.155.patch0 b/vim/patches/vim-7.3.155.patch0
new file mode 100644 (file)
index 0000000..806efca
--- /dev/null
@@ -0,0 +1,286 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.155
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.155
+Problem:    Crash when using map(), filter() and remove() on v:. (ZyX)
+            Also for extend(). (Yukihiro Nakadaira)
+Solution:   Mark v: as locked.  Also correct locking error messages.
+Files:     src/eval.c
+
+
+*** ../vim-7.3.154/src/eval.c  2011-04-01 16:07:41.000000000 +0200
+--- src/eval.c 2011-04-11 13:28:34.000000000 +0200
+***************
+*** 853,858 ****
+--- 853,859 ----
+  
+      init_var_dict(&globvardict, &globvars_var);
+      init_var_dict(&vimvardict, &vimvars_var);
++     vimvardict.dv_lock = VAR_FIXED;
+      hash_init(&compat_hashtab);
+      hash_init(&func_hashtab);
+  
+***************
+*** 8545,8551 ****
+      if (argvars[0].v_type == VAR_LIST)
+      {
+       if ((l = argvars[0].vval.v_list) != NULL
+!              && !tv_check_lock(l->lv_lock, (char_u *)"add()")
+               && list_append_tv(l, &argvars[1]) == OK)
+           copy_tv(&argvars[0], rettv);
+      }
+--- 8546,8552 ----
+      if (argvars[0].v_type == VAR_LIST)
+      {
+       if ((l = argvars[0].vval.v_list) != NULL
+!              && !tv_check_lock(l->lv_lock, (char_u *)_("add() argument"))
+               && list_append_tv(l, &argvars[1]) == OK)
+           copy_tv(&argvars[0], rettv);
+      }
+***************
+*** 9946,9951 ****
+--- 9947,9954 ----
+      typval_T *argvars;
+      typval_T *rettv;
+  {
++     char      *arg_errmsg = N_("extend() argument");
++ 
+      if (argvars[0].v_type == VAR_LIST && argvars[1].v_type == VAR_LIST)
+      {
+       list_T          *l1, *l2;
+***************
+*** 9955,9961 ****
+  
+       l1 = argvars[0].vval.v_list;
+       l2 = argvars[1].vval.v_list;
+!      if (l1 != NULL && !tv_check_lock(l1->lv_lock, (char_u *)"extend()")
+               && l2 != NULL)
+       {
+           if (argvars[2].v_type != VAR_UNKNOWN)
+--- 9958,9964 ----
+  
+       l1 = argvars[0].vval.v_list;
+       l2 = argvars[1].vval.v_list;
+!      if (l1 != NULL && !tv_check_lock(l1->lv_lock, (char_u *)_(arg_errmsg))
+               && l2 != NULL)
+       {
+           if (argvars[2].v_type != VAR_UNKNOWN)
+***************
+*** 9994,10000 ****
+  
+       d1 = argvars[0].vval.v_dict;
+       d2 = argvars[1].vval.v_dict;
+!      if (d1 != NULL && !tv_check_lock(d1->dv_lock, (char_u *)"extend()")
+               && d2 != NULL)
+       {
+           /* Check the third argument. */
+--- 9997,10003 ----
+  
+       d1 = argvars[0].vval.v_dict;
+       d2 = argvars[1].vval.v_dict;
+!      if (d1 != NULL && !tv_check_lock(d1->dv_lock, (char_u *)_(arg_errmsg))
+               && d2 != NULL)
+       {
+           /* Check the third argument. */
+***************
+*** 10236,10255 ****
+      typval_T save_key;
+      int              rem;
+      int              todo;
+!     char_u   *ermsg = map ? (char_u *)"map()" : (char_u *)"filter()";
+      int              save_did_emsg;
+      int              idx = 0;
+  
+      if (argvars[0].v_type == VAR_LIST)
+      {
+       if ((l = argvars[0].vval.v_list) == NULL
+!              || (map && tv_check_lock(l->lv_lock, ermsg)))
+           return;
+      }
+      else if (argvars[0].v_type == VAR_DICT)
+      {
+       if ((d = argvars[0].vval.v_dict) == NULL
+!              || (map && tv_check_lock(d->dv_lock, ermsg)))
+           return;
+      }
+      else
+--- 10239,10260 ----
+      typval_T save_key;
+      int              rem;
+      int              todo;
+!     char_u   *ermsg = (char_u *)(map ? "map()" : "filter()");
+!     char     *arg_errmsg = (map ? N_("map() argument")
+!                                 : N_("filter() argument"));
+      int              save_did_emsg;
+      int              idx = 0;
+  
+      if (argvars[0].v_type == VAR_LIST)
+      {
+       if ((l = argvars[0].vval.v_list) == NULL
+!              || tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg)))
+           return;
+      }
+      else if (argvars[0].v_type == VAR_DICT)
+      {
+       if ((d = argvars[0].vval.v_dict) == NULL
+!              || tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg)))
+           return;
+      }
+      else
+***************
+*** 10286,10292 ****
+               {
+                   --todo;
+                   di = HI2DI(hi);
+!                  if (tv_check_lock(di->di_tv.v_lock, ermsg))
+                       break;
+                   vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
+                   if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL
+--- 10291,10298 ----
+               {
+                   --todo;
+                   di = HI2DI(hi);
+!                  if (tv_check_lock(di->di_tv.v_lock,
+!                                                   (char_u *)_(arg_errmsg)))
+                       break;
+                   vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
+                   if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL
+***************
+*** 10305,10311 ****
+  
+           for (li = l->lv_first; li != NULL; li = nli)
+           {
+!              if (tv_check_lock(li->li_tv.v_lock, ermsg))
+                   break;
+               nli = li->li_next;
+               vimvars[VV_KEY].vv_nr = idx;
+--- 10311,10317 ----
+  
+           for (li = l->lv_first; li != NULL; li = nli)
+           {
+!              if (tv_check_lock(li->li_tv.v_lock, (char_u *)_(arg_errmsg)))
+                   break;
+               nli = li->li_next;
+               vimvars[VV_KEY].vv_nr = idx;
+***************
+*** 12910,12916 ****
+      if (argvars[0].v_type != VAR_LIST)
+       EMSG2(_(e_listarg), "insert()");
+      else if ((l = argvars[0].vval.v_list) != NULL
+!          && !tv_check_lock(l->lv_lock, (char_u *)"insert()"))
+      {
+       if (argvars[2].v_type != VAR_UNKNOWN)
+           before = get_tv_number_chk(&argvars[2], &error);
+--- 12916,12922 ----
+      if (argvars[0].v_type != VAR_LIST)
+       EMSG2(_(e_listarg), "insert()");
+      else if ((l = argvars[0].vval.v_list) != NULL
+!          && !tv_check_lock(l->lv_lock, (char_u *)_("insert() argument")))
+      {
+       if (argvars[2].v_type != VAR_UNKNOWN)
+           before = get_tv_number_chk(&argvars[2], &error);
+***************
+*** 14775,14787 ****
+      char_u   *key;
+      dict_T   *d;
+      dictitem_T       *di;
+  
+      if (argvars[0].v_type == VAR_DICT)
+      {
+       if (argvars[2].v_type != VAR_UNKNOWN)
+           EMSG2(_(e_toomanyarg), "remove()");
+       else if ((d = argvars[0].vval.v_dict) != NULL
+!              && !tv_check_lock(d->dv_lock, (char_u *)"remove() argument"))
+       {
+           key = get_tv_string_chk(&argvars[1]);
+           if (key != NULL)
+--- 14781,14794 ----
+      char_u   *key;
+      dict_T   *d;
+      dictitem_T       *di;
++     char     *arg_errmsg = N_("remove() argument");
+  
+      if (argvars[0].v_type == VAR_DICT)
+      {
+       if (argvars[2].v_type != VAR_UNKNOWN)
+           EMSG2(_(e_toomanyarg), "remove()");
+       else if ((d = argvars[0].vval.v_dict) != NULL
+!              && !tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg)))
+       {
+           key = get_tv_string_chk(&argvars[1]);
+           if (key != NULL)
+***************
+*** 14801,14807 ****
+      else if (argvars[0].v_type != VAR_LIST)
+       EMSG2(_(e_listdictarg), "remove()");
+      else if ((l = argvars[0].vval.v_list) != NULL
+!          && !tv_check_lock(l->lv_lock, (char_u *)"remove() argument"))
+      {
+       int         error = FALSE;
+  
+--- 14808,14814 ----
+      else if (argvars[0].v_type != VAR_LIST)
+       EMSG2(_(e_listdictarg), "remove()");
+      else if ((l = argvars[0].vval.v_list) != NULL
+!          && !tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg)))
+      {
+       int         error = FALSE;
+  
+***************
+*** 15135,15141 ****
+      if (argvars[0].v_type != VAR_LIST)
+       EMSG2(_(e_listarg), "reverse()");
+      else if ((l = argvars[0].vval.v_list) != NULL
+!          && !tv_check_lock(l->lv_lock, (char_u *)"reverse()"))
+      {
+       li = l->lv_last;
+       l->lv_first = l->lv_last = NULL;
+--- 15142,15148 ----
+      if (argvars[0].v_type != VAR_LIST)
+       EMSG2(_(e_listarg), "reverse()");
+      else if ((l = argvars[0].vval.v_list) != NULL
+!          && !tv_check_lock(l->lv_lock, (char_u *)_("reverse() argument")))
+      {
+       li = l->lv_last;
+       l->lv_first = l->lv_last = NULL;
+***************
+*** 16432,16438 ****
+      else
+      {
+       l = argvars[0].vval.v_list;
+!      if (l == NULL || tv_check_lock(l->lv_lock, (char_u *)"sort()"))
+           return;
+       rettv->vval.v_list = l;
+       rettv->v_type = VAR_LIST;
+--- 16439,16446 ----
+      else
+      {
+       l = argvars[0].vval.v_list;
+!      if (l == NULL || tv_check_lock(l->lv_lock,
+!                                           (char_u *)_("sort() argument")))
+           return;
+       rettv->vval.v_list = l;
+       rettv->v_type = VAR_LIST;
+*** ../vim-7.3.154/src/version.c       2011-04-02 15:12:45.000000000 +0200
+--- src/version.c      2011-04-11 13:13:38.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     155,
+  /**/
+
+-- 
+I used to be indecisive, now I'm not sure.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.156.patch0 b/vim/patches/vim-7.3.156.patch0
new file mode 100644 (file)
index 0000000..ec87324
--- /dev/null
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.156
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.156
+Problem:    Tty names possibly left unterminated.
+Solution:   Use vim_strncpy() instead of strncpy().
+Files:     src/pty.c
+
+
+*** ../vim-7.3.155/src/pty.c   2010-08-15 21:57:28.000000000 +0200
+--- src/pty.c  2011-04-11 14:02:49.000000000 +0200
+***************
+*** 209,216 ****
+  #ifdef _SEQUENT_
+      fvhangup(s);
+  #endif
+!     strncpy(PtyName, m, sizeof(PtyName));
+!     strncpy(TtyName, s, sizeof(TtyName));
+      initmaster(f);
+      *ttyn = TtyName;
+      return f;
+--- 209,216 ----
+  #ifdef _SEQUENT_
+      fvhangup(s);
+  #endif
+!     vim_strncpy((char_u *)PtyName, (char_u *)m, sizeof(PtyName) - 1);
+!     vim_strncpy((char_u *)TtyName, (char_u *)s, sizeof(TtyName) - 1);
+      initmaster(f);
+      *ttyn = TtyName;
+      return f;
+***************
+*** 301,307 ****
+       return -1;
+      }
+      signal(SIGCHLD, sigcld);
+!     strncpy(TtyName, m, sizeof(TtyName));
+      initmaster(f);
+      *ttyn = TtyName;
+      return f;
+--- 301,307 ----
+       return -1;
+      }
+      signal(SIGCHLD, sigcld);
+!     vim_strncpy((char_u *)TtyName, (char_u *)m, sizeof(TtyName) - 1);
+      initmaster(f);
+      *ttyn = TtyName;
+      return f;
+***************
+*** 326,332 ****
+      /* a dumb looking loop replaced by mycrofts code: */
+      if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0)
+       return -1;
+!     strncpy(TtyName, ttyname(f), sizeof(TtyName));
+      if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK))
+      {
+       close(f);
+--- 326,332 ----
+      /* a dumb looking loop replaced by mycrofts code: */
+      if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0)
+       return -1;
+!     vim_strncpy((char_u *)TtyName, (char_u *)ttyname(f), sizeof(TtyName) - 1);
+      if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK))
+      {
+       close(f);
+*** ../vim-7.3.155/src/version.c       2011-04-11 13:46:07.000000000 +0200
+--- src/version.c      2011-04-11 14:23:38.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     156,
+  /**/
+
+-- 
+I think that you'll agree that engineers are very effective in their social
+interactions.  It's the "normal" people who are nuts.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.157.patch0 b/vim/patches/vim-7.3.157.patch0
new file mode 100644 (file)
index 0000000..403c948
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.157
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.157
+Problem:    Superfluous assignment.
+Solution:   Remove assignment.
+Files:     src/misc1.c
+
+
+*** ../vim-7.3.156/src/misc1.c 2011-03-22 13:07:19.000000000 +0100
+--- src/misc1.c        2011-04-11 14:11:17.000000000 +0200
+***************
+*** 6773,6780 ****
+               {
+                   curwin->w_cursor.lnum = our_paren_pos.lnum;
+                   curwin->w_cursor.col = col;
+!                  if ((trypos = find_match_paren(ind_maxparen,
+!                                                   ind_maxcomment)) != NULL)
+                       amount += ind_unclosed2;
+                   else
+                       amount += ind_unclosed;
+--- 6775,6781 ----
+               {
+                   curwin->w_cursor.lnum = our_paren_pos.lnum;
+                   curwin->w_cursor.col = col;
+!                  if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
+                       amount += ind_unclosed2;
+                   else
+                       amount += ind_unclosed;
+*** ../vim-7.3.156/src/version.c       2011-04-11 14:24:33.000000000 +0200
+--- src/version.c      2011-04-11 14:25:36.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     157,
+  /**/
+
+-- 
+A radioactive cat has eighteen half-lives.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.158.patch0 b/vim/patches/vim-7.3.158.patch0
new file mode 100644 (file)
index 0000000..8fba350
--- /dev/null
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.158
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.158
+Problem:    Might use uninitialized memory in C indenting.
+Solution:   Init arrays to empty.
+Files:     src/misc1.c
+
+
+*** ../vim-7.3.157/src/misc1.c 2011-04-11 14:26:15.000000000 +0200
+--- src/misc1.c        2011-04-11 14:11:17.000000000 +0200
+***************
+*** 6433,6438 ****
+--- 6433,6440 ----
+       /* find how indented the line beginning the comment is */
+       getvcol(curwin, trypos, &col, NULL, NULL);
+       amount = col;
++      *lead_start = NUL;
++      *lead_middle = NUL;
+  
+       p = curbuf->b_p_com;
+       while (*p != NUL)
+*** ../vim-7.3.157/src/version.c       2011-04-11 14:26:15.000000000 +0200
+--- src/version.c      2011-04-11 14:27:05.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     158,
+  /**/
+
+-- 
+It's totally unfair to suggest - as many have - that engineers are socially
+inept.  Engineers simply have different objectives when it comes to social
+interaction.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.159.patch0 b/vim/patches/vim-7.3.159.patch0
new file mode 100644 (file)
index 0000000..7029ac8
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.159
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.159
+Problem:    Using uninitialized pointer when out of memory.
+Solution:   Check for NULL return value.
+Files:     src/mbyte.c
+
+
+*** ../vim-7.3.158/src/mbyte.c 2010-10-27 13:37:39.000000000 +0200
+--- src/mbyte.c        2011-04-11 14:17:39.000000000 +0200
+***************
+*** 4129,4135 ****
+       done = to - (char *)result;
+      }
+  
+!     if (resultlenp != NULL)
+       *resultlenp = (int)(to - (char *)result);
+      return result;
+  }
+--- 4129,4135 ----
+       done = to - (char *)result;
+      }
+  
+!     if (resultlenp != NULL && result != NULL)
+       *resultlenp = (int)(to - (char *)result);
+      return result;
+  }
+*** ../vim-7.3.158/src/version.c       2011-04-11 14:27:34.000000000 +0200
+--- src/version.c      2011-04-11 14:28:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     159,
+  /**/
+
+-- 
+I learned the customs and mannerisms of engineers by observing them, much the
+way Jane Goodall learned about the great apes, but without the hassle of
+grooming.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.160.patch0 b/vim/patches/vim-7.3.160.patch0
new file mode 100644 (file)
index 0000000..bf3a069
--- /dev/null
@@ -0,0 +1,482 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.160
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.160
+Problem:    Unsafe string copying.
+Solution:   Use vim_strncpy() instead of strcpy().  Use vim_strcat() instead
+           of strcat().
+Files:     src/buffer.c, src/ex_docmd.c, src/hardcopy.c, src/menu.c,
+           src/misc1.c, src/misc2.c, src/proto/misc2.pro, src/netbeans.c,
+           src/os_unix.c, src/spell.c, src/syntax.c, src/tag.c
+
+*** ../vim-7.3.159/src/buffer.c        2011-02-15 14:24:42.000000000 +0100
+--- src/buffer.c       2011-04-11 16:08:38.000000000 +0200
+***************
+*** 3176,3182 ****
+           /* format: "fname + (path) (1 of 2) - VIM" */
+  
+           if (curbuf->b_fname == NULL)
+!              STRCPY(buf, _("[No Name]"));
+           else
+           {
+               p = transstr(gettail(curbuf->b_fname));
+--- 3176,3182 ----
+           /* format: "fname + (path) (1 of 2) - VIM" */
+  
+           if (curbuf->b_fname == NULL)
+!              vim_strncpy(buf, (char_u *)_("[No Name]"), IOSIZE - 100);
+           else
+           {
+               p = transstr(gettail(curbuf->b_fname));
+***************
+*** 3232,3238 ****
+           if (serverName != NULL)
+           {
+               STRCAT(buf, " - ");
+!              STRCAT(buf, serverName);
+           }
+           else
+  #endif
+--- 3232,3238 ----
+           if (serverName != NULL)
+           {
+               STRCAT(buf, " - ");
+!              vim_strcat(buf, serverName, IOSIZE);
+           }
+           else
+  #endif
+*** ../vim-7.3.159/src/ex_docmd.c      2011-03-03 15:54:45.000000000 +0100
+--- src/ex_docmd.c     2011-04-11 15:43:48.000000000 +0200
+***************
+*** 5096,5102 ****
+               char_u  buff[IOSIZE];
+  
+               if (n == 1)
+!                  STRCPY(buff, _("1 more file to edit.  Quit anyway?"));
+               else
+                   vim_snprintf((char *)buff, IOSIZE,
+                             _("%d more files to edit.  Quit anyway?"), n);
+--- 5096,5104 ----
+               char_u  buff[IOSIZE];
+  
+               if (n == 1)
+!                  vim_strncpy(buff,
+!                          (char_u *)_("1 more file to edit.  Quit anyway?"),
+!                                                                IOSIZE - 1);
+               else
+                   vim_snprintf((char *)buff, IOSIZE,
+                             _("%d more files to edit.  Quit anyway?"), n);
+*** ../vim-7.3.159/src/hardcopy.c      2010-08-15 21:57:25.000000000 +0200
+--- src/hardcopy.c     2011-04-11 15:30:09.000000000 +0200
+***************
+*** 1761,1772 ****
+  {
+      char_u   buffer[MAXPATHL + 1];
+  
+!     STRCPY(resource->name, name);
+      /* Look for named resource file in runtimepath */
+      STRCPY(buffer, "print");
+      add_pathsep(buffer);
+!     STRCAT(buffer, name);
+!     STRCAT(buffer, ".ps");
+      resource->filename[0] = NUL;
+      return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
+                                                          resource->filename)
+--- 1761,1772 ----
+  {
+      char_u   buffer[MAXPATHL + 1];
+  
+!     vim_strncpy(resource->name, (char_u *)name, 63);
+      /* Look for named resource file in runtimepath */
+      STRCPY(buffer, "print");
+      add_pathsep(buffer);
+!     vim_strcat(buffer, (char_u *)name, MAXPATHL);
+!     vim_strcat(buffer, (char_u *)".ps", MAXPATHL);
+      resource->filename[0] = NUL;
+      return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
+                                                          resource->filename)
+*** ../vim-7.3.159/src/menu.c  2011-01-04 17:49:25.000000000 +0100
+--- src/menu.c 2011-04-11 15:17:21.000000000 +0200
+***************
+*** 1394,1400 ****
+      int              idx;
+  {
+      static vimmenu_T *menu = NULL;
+!     static char_u    tbuffer[256]; /*hack*/
+      char_u           *str;
+  #ifdef FEAT_MULTI_LANG
+      static  int              should_advance = FALSE;
+--- 1394,1401 ----
+      int              idx;
+  {
+      static vimmenu_T *menu = NULL;
+! #define TBUFFER_LEN 256
+!     static char_u    tbuffer[TBUFFER_LEN]; /*hack*/
+      char_u           *str;
+  #ifdef FEAT_MULTI_LANG
+      static  int              should_advance = FALSE;
+***************
+*** 1428,1438 ****
+       {
+  #ifdef FEAT_MULTI_LANG
+           if (should_advance)
+!              STRCPY(tbuffer, menu->en_dname);
+           else
+           {
+  #endif
+!              STRCPY(tbuffer, menu->dname);
+  #ifdef FEAT_MULTI_LANG
+               if (menu->en_dname == NULL)
+                   should_advance = TRUE;
+--- 1429,1439 ----
+       {
+  #ifdef FEAT_MULTI_LANG
+           if (should_advance)
+!              vim_strncpy(tbuffer, menu->en_dname, TBUFFER_LEN - 2);
+           else
+           {
+  #endif
+!              vim_strncpy(tbuffer, menu->dname,  TBUFFER_LEN - 2);
+  #ifdef FEAT_MULTI_LANG
+               if (menu->en_dname == NULL)
+                   should_advance = TRUE;
+*** ../vim-7.3.159/src/misc1.c 2011-04-11 14:27:34.000000000 +0200
+--- src/misc1.c        2011-04-11 16:03:22.000000000 +0200
+***************
+*** 3332,3350 ****
+       if (pn == 1)
+       {
+           if (n > 0)
+!              STRCPY(msg_buf, _("1 more line"));
+           else
+!              STRCPY(msg_buf, _("1 line less"));
+       }
+       else
+       {
+           if (n > 0)
+!              sprintf((char *)msg_buf, _("%ld more lines"), pn);
+           else
+!              sprintf((char *)msg_buf, _("%ld fewer lines"), pn);
+       }
+       if (got_int)
+!          STRCAT(msg_buf, _(" (Interrupted)"));
+       if (msg(msg_buf))
+       {
+           set_keep_msg(msg_buf, 0);
+--- 3332,3354 ----
+       if (pn == 1)
+       {
+           if (n > 0)
+!              vim_strncpy(msg_buf, (char_u *)_("1 more line"),
+!                                                           MSG_BUF_LEN - 1);
+           else
+!              vim_strncpy(msg_buf, (char_u *)_("1 line less"),
+!                                                           MSG_BUF_LEN - 1);
+       }
+       else
+       {
+           if (n > 0)
+!              vim_snprintf((char *)msg_buf, MSG_BUF_LEN,
+!                                                   _("%ld more lines"), pn);
+           else
+!              vim_snprintf((char *)msg_buf, MSG_BUF_LEN,
+!                                                  _("%ld fewer lines"), pn);
+       }
+       if (got_int)
+!          vim_strcat(msg_buf, (char_u *)_(" (Interrupted)"), MSG_BUF_LEN);
+       if (msg(msg_buf))
+       {
+           set_keep_msg(msg_buf, 0);
+*** ../vim-7.3.159/src/misc2.c 2010-12-08 13:11:15.000000000 +0100
+--- src/misc2.c        2011-04-11 15:30:20.000000000 +0200
+***************
+*** 1647,1652 ****
+--- 1647,1674 ----
+  }
+  
+  /*
++  * Like strcat(), but make sure the result fits in "tosize" bytes and is
++  * always NUL terminated.
++  */
++     void
++ vim_strcat(to, from, tosize)
++     char_u   *to;
++     char_u   *from;
++     size_t   tosize;
++ {
++     size_t tolen = STRLEN(to);
++     size_t fromlen = STRLEN(from);
++ 
++     if (tolen + fromlen + 1 > tosize)
++     {
++      mch_memmove(to + tolen, from, tosize - tolen - 1);
++      to[tosize - 1] = NUL;
++     }
++     else
++      STRCPY(to + tolen, from);
++ }
++ 
++ /*
+   * Isolate one part of a string option where parts are separated with
+   * "sep_chars".
+   * The part is copied into "buf[maxlen]".
+*** ../vim-7.3.159/src/proto/misc2.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/misc2.pro        2011-04-11 15:29:55.000000000 +0200
+***************
+*** 40,45 ****
+--- 40,46 ----
+  void copy_chars __ARGS((char_u *ptr, size_t count, int c));
+  void del_trailing_spaces __ARGS((char_u *ptr));
+  void vim_strncpy __ARGS((char_u *to, char_u *from, size_t len));
++ void vim_strcat __ARGS((char_u *to, char_u *from, size_t tosize));
+  int copy_option_part __ARGS((char_u **option, char_u *buf, int maxlen, char *sep_chars));
+  void vim_free __ARGS((void *x));
+  int vim_stricmp __ARGS((char *s1, char *s2));
+*** ../vim-7.3.159/src/netbeans.c      2011-04-01 15:33:54.000000000 +0200
+--- src/netbeans.c     2011-04-11 16:02:51.000000000 +0200
+***************
+*** 3914,3927 ****
+      }
+      else
+      {
+!      char_u ebuf[BUFSIZ];
+  
+!      STRCPY(ebuf, (char_u *)_("E505: "));
+!      STRCAT(ebuf, IObuff);
+!      STRCAT(ebuf, (char_u *)_("is read-only (add ! to override)"));
+!      STRCPY(IObuff, ebuf);
+!      nbdebug(("    %s\n", ebuf ));
+!      emsg(IObuff);
+      }
+  }
+  
+--- 3914,3925 ----
+      }
+      else
+      {
+!      char_u msgbuf[IOSIZE];
+  
+!      vim_snprintf((char *)msgbuf, IOSIZE,
+!              _("E505: %s is read-only (add ! to override)"), IObuff);
+!      nbdebug(("    %s\n", msgbuf));
+!      emsg(msgbuf);
+      }
+  }
+  
+*** ../vim-7.3.159/src/os_unix.c       2011-02-15 17:39:14.000000000 +0100
+--- src/os_unix.c      2011-04-11 16:39:11.000000000 +0200
+***************
+*** 5725,5730 ****
+--- 5725,5731 ----
+       if (shell_style == STYLE_PRINT && !did_find_nul)
+       {
+           /* If there is a NUL, set did_find_nul, else set check_spaces */
++          buffer[len] = NUL;
+           if (len && (int)STRLEN(buffer) < (int)len - 1)
+               did_find_nul = TRUE;
+           else
+***************
+*** 6594,6600 ****
+           xterm_hints.x = 2;
+       return TRUE;
+      }
+!     if (mouse_code == NULL)
+      {
+       xterm_trace = 0;
+       return FALSE;
+--- 6595,6601 ----
+           xterm_hints.x = 2;
+       return TRUE;
+      }
+!     if (mouse_code == NULL || STRLEN(mouse_code) > 45)
+      {
+       xterm_trace = 0;
+       return FALSE;
+*** ../vim-7.3.159/src/spell.c 2011-02-01 13:59:44.000000000 +0100
+--- src/spell.c        2011-04-11 15:50:40.000000000 +0200
+***************
+*** 6957,6963 ****
+                           if (ae->ae_add == NULL)
+                               *newword = NUL;
+                           else
+!                              STRCPY(newword, ae->ae_add);
+                           p = word;
+                           if (ae->ae_chop != NULL)
+                           {
+--- 6957,6963 ----
+                           if (ae->ae_add == NULL)
+                               *newword = NUL;
+                           else
+!                              vim_strncpy(newword, ae->ae_add, MAXWLEN - 1);
+                           p = word;
+                           if (ae->ae_chop != NULL)
+                           {
+***************
+*** 6978,6984 ****
+                       else
+                       {
+                           /* suffix: chop/add at the end of the word */
+!                          STRCPY(newword, word);
+                           if (ae->ae_chop != NULL)
+                           {
+                               /* Remove chop string. */
+--- 6978,6984 ----
+                       else
+                       {
+                           /* suffix: chop/add at the end of the word */
+!                          vim_strncpy(newword, word, MAXWLEN - 1);
+                           if (ae->ae_chop != NULL)
+                           {
+                               /* Remove chop string. */
+***************
+*** 8654,8660 ****
+       * Write the .sug file.
+       * Make the file name by changing ".spl" to ".sug".
+       */
+!     STRCPY(fname, wfname);
+      len = (int)STRLEN(fname);
+      fname[len - 2] = 'u';
+      fname[len - 1] = 'g';
+--- 8654,8660 ----
+       * Write the .sug file.
+       * Make the file name by changing ".spl" to ".sug".
+       */
+!     vim_strncpy(fname, wfname, MAXPATHL - 1);
+      len = (int)STRLEN(fname);
+      fname[len - 2] = 'u';
+      fname[len - 1] = 'g';
+***************
+*** 10261,10267 ****
+  
+           /* The suggested word may replace only part of the bad word, add
+            * the not replaced part. */
+!          STRCPY(wcopy, stp->st_word);
+           if (sug.su_badlen > stp->st_orglen)
+               vim_strncpy(wcopy + stp->st_wordlen,
+                                              sug.su_badptr + stp->st_orglen,
+--- 10261,10267 ----
+  
+           /* The suggested word may replace only part of the bad word, add
+            * the not replaced part. */
+!          vim_strncpy(wcopy, stp->st_word, MAXWLEN);
+           if (sug.su_badlen > stp->st_orglen)
+               vim_strncpy(wcopy + stp->st_wordlen,
+                                              sug.su_badptr + stp->st_orglen,
+***************
+*** 13162,13168 ****
+       pbad = badsound2;
+      }
+  
+!     if (lendiff > 0)
+      {
+       /* Add part of the bad word to the good word, so that we soundfold
+        * what replaces the bad word. */
+--- 13162,13168 ----
+       pbad = badsound2;
+      }
+  
+!     if (lendiff > 0 && stp->st_wordlen + lendiff < MAXWLEN)
+      {
+       /* Add part of the bad word to the good word, so that we soundfold
+        * what replaces the bad word. */
+***************
+*** 13875,13881 ****
+      for (i = gap->ga_len - 1; i >= 0; --i)
+      {
+       /* Need to append what follows to check for "the the". */
+!      STRCPY(longword, stp[i].st_word);
+       len = stp[i].st_wordlen;
+       vim_strncpy(longword + len, su->su_badptr + stp[i].st_orglen,
+                                                              MAXWLEN - len);
+--- 13875,13881 ----
+      for (i = gap->ga_len - 1; i >= 0; --i)
+      {
+       /* Need to append what follows to check for "the the". */
+!      vim_strncpy(longword, stp[i].st_word, MAXWLEN);
+       len = stp[i].st_wordlen;
+       vim_strncpy(longword + len, su->su_badptr + stp[i].st_orglen,
+                                                              MAXWLEN - len);
+***************
+*** 14221,14227 ****
+       *t = NUL;
+      }
+      else
+!      STRCPY(word, s);
+  
+      smp = (salitem_T *)slang->sl_sal.ga_data;
+  
+--- 14221,14227 ----
+       *t = NUL;
+      }
+      else
+!      vim_strncpy(word, s, MAXWLEN - 1);
+  
+      smp = (salitem_T *)slang->sl_sal.ga_data;
+  
+*** ../vim-7.3.159/src/syntax.c        2011-04-02 15:12:45.000000000 +0200
+--- src/syntax.c       2011-04-11 15:44:30.000000000 +0200
+***************
+*** 8576,8583 ****
+               if (iarg & hl_attr_table[i])
+               {
+                   if (buf[0] != NUL)
+!                      STRCAT(buf, ",");
+!                  STRCAT(buf, hl_name_table[i]);
+                   iarg &= ~hl_attr_table[i];      /* don't want "inverse" */
+               }
+           }
+--- 8576,8583 ----
+               if (iarg & hl_attr_table[i])
+               {
+                   if (buf[0] != NUL)
+!                      vim_strcat(buf, (char_u *)",", 100);
+!                  vim_strcat(buf, (char_u *)hl_name_table[i], 100);
+                   iarg &= ~hl_attr_table[i];      /* don't want "inverse" */
+               }
+           }
+*** ../vim-7.3.159/src/tag.c   2011-02-25 15:13:43.000000000 +0100
+--- src/tag.c  2011-04-11 15:34:59.000000000 +0200
+***************
+*** 806,812 ****
+                   p = tag_full_fname(&tagp);
+                   if (p == NULL)
+                       continue;
+!                  STRCPY(fname, p);
+                   vim_free(p);
+  
+                   /*
+--- 806,812 ----
+                   p = tag_full_fname(&tagp);
+                   if (p == NULL)
+                       continue;
+!                  vim_strncpy(fname, p, MAXPATHL);
+                   vim_free(p);
+  
+                   /*
+*** ../vim-7.3.159/src/version.c       2011-04-11 14:29:13.000000000 +0200
+--- src/version.c      2011-04-11 16:50:53.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     160,
+  /**/
+
+-- 
+If someone questions your market projections, simply point out that your
+target market is "People who are nuts" and "People who will buy any damn
+thing".  Nobody is going to tell you there aren't enough of those people
+to go around.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.161.patch0 b/vim/patches/vim-7.3.161.patch0
new file mode 100644 (file)
index 0000000..61223ec
--- /dev/null
@@ -0,0 +1,1645 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.161
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.161
+Problem:    Items on the stack may be too big.
+Solution:   Make items static or allocate them.
+Files:     src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
+           src/fileio.c, src/hardcopy.c, src/quickfix.c, src/main.c,
+           src/netbeans.c, src/spell.c, src/tag.c, src/vim.h, src/xxd/xxd.c
+
+
+*** ../vim-7.3.160/src/eval.c  2011-04-11 13:46:07.000000000 +0200
+--- src/eval.c 2011-04-11 21:05:50.000000000 +0200
+***************
+*** 11100,11117 ****
+      typval_T *argvars UNUSED;
+      typval_T *rettv;
+  {
+!     char_u   cwd[MAXPATHL];
+  
+      rettv->v_type = VAR_STRING;
+!     if (mch_dirname(cwd, MAXPATHL) == FAIL)
+!      rettv->vval.v_string = NULL;
+!     else
+      {
+!      rettv->vval.v_string = vim_strsave(cwd);
+  #ifdef BACKSLASH_IN_FILENAME
+!      if (rettv->vval.v_string != NULL)
+!          slash_adjust(rettv->vval.v_string);
+  #endif
+      }
+  }
+  
+--- 11100,11121 ----
+      typval_T *argvars UNUSED;
+      typval_T *rettv;
+  {
+!     char_u   *cwd;
+  
+      rettv->v_type = VAR_STRING;
+!     rettv->vval.v_string = NULL;
+!     cwd = alloc(MAXPATHL);
+!     if (cwd != NULL)
+      {
+!      if (mch_dirname(cwd, MAXPATHL) != FAIL)
+!      {
+!          rettv->vval.v_string = vim_strsave(cwd);
+  #ifdef BACKSLASH_IN_FILENAME
+!          if (rettv->vval.v_string != NULL)
+!              slash_adjust(rettv->vval.v_string);
+  #endif
++      }
++      vim_free(cwd);
+      }
+  }
+  
+***************
+*** 14938,14943 ****
+--- 14942,14950 ----
+      typval_T *rettv;
+  {
+      char_u   *p;
++ #ifdef HAVE_READLINK
++     char_u   *buf = NULL;
++ #endif
+  
+      p = get_tv_string(&argvars[0]);
+  #ifdef FEAT_SHORTCUT
+***************
+*** 14953,14959 ****
+  #else
+  # ifdef HAVE_READLINK
+      {
+-      char_u  buf[MAXPATHL + 1];
+       char_u  *cpy;
+       int     len;
+       char_u  *remain = NULL;
+--- 14960,14965 ----
+***************
+*** 14981,14986 ****
+--- 14987,14996 ----
+           q[-1] = NUL;
+       }
+  
++      buf = alloc(MAXPATHL + 1);
++      if (buf == NULL)
++          goto fail;
++ 
+       for (;;)
+       {
+           for (;;)
+***************
+*** 15124,15129 ****
+--- 15134,15140 ----
+  
+  #ifdef HAVE_READLINK
+  fail:
++     vim_free(buf);
+  #endif
+      rettv->v_type = VAR_STRING;
+  }
+***************
+*** 17604,17621 ****
+      typval_T *argvars UNUSED;
+      typval_T *rettv;
+  {
+!     char_u   fname[MAXPATHL + 1];
+      tagname_T        tn;
+      int              first;
+  
+      if (rettv_list_alloc(rettv) == FAIL)
+       return;
+  
+      for (first = TRUE; ; first = FALSE)
+       if (get_tagfname(&tn, first, fname) == FAIL
+               || list_append_string(rettv->vval.v_list, fname, -1) == FAIL)
+           break;
+      tagname_free(&tn);
+  }
+  
+  /*
+--- 17615,17636 ----
+      typval_T *argvars UNUSED;
+      typval_T *rettv;
+  {
+!     char_u   *fname;
+      tagname_T        tn;
+      int              first;
+  
+      if (rettv_list_alloc(rettv) == FAIL)
+       return;
++     fname = alloc(MAXPATHL);
++     if (fname == NULL)
++      return;
+  
+      for (first = TRUE; ; first = FALSE)
+       if (get_tagfname(&tn, first, fname) == FAIL
+               || list_append_string(rettv->vval.v_list, fname, -1) == FAIL)
+           break;
+      tagname_free(&tn);
++     vim_free(fname);
+  }
+  
+  /*
+*** ../vim-7.3.160/src/ex_cmds.c       2011-02-01 13:48:47.000000000 +0100
+--- src/ex_cmds.c      2011-04-11 20:51:34.000000000 +0200
+***************
+*** 2777,2783 ****
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+           if (p_confirm || cmdmod.confirm)
+           {
+!              char_u  buff[IOSIZE];
+  
+               dialog_msg(buff, _("Overwrite existing file \"%s\"?"), fname);
+               if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2) != VIM_YES)
+--- 2777,2783 ----
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+           if (p_confirm || cmdmod.confirm)
+           {
+!              char_u  buff[DIALOG_MSG_SIZE];
+  
+               dialog_msg(buff, _("Overwrite existing file \"%s\"?"), fname);
+               if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2) != VIM_YES)
+***************
+*** 2795,2801 ****
+       /* For ":w! filename" check that no swap file exists for "filename". */
+       if (other && !emsg_silent)
+       {
+!          char_u      dir[MAXPATHL];
+           char_u      *p;
+           int         r;
+           char_u      *swapname;
+--- 2795,2801 ----
+       /* For ":w! filename" check that no swap file exists for "filename". */
+       if (other && !emsg_silent)
+       {
+!          char_u      *dir;
+           char_u      *p;
+           int         r;
+           char_u      *swapname;
+***************
+*** 2806,2825 ****
+            * Use 'shortname' of the current buffer, since there is no buffer
+            * for the written file. */
+           if (*p_dir == NUL)
+               STRCPY(dir, ".");
+           else
+           {
+               p = p_dir;
+               copy_option_part(&p, dir, MAXPATHL, ",");
+           }
+           swapname = makeswapname(fname, ffname, curbuf, dir);
+           r = vim_fexists(swapname);
+           if (r)
+           {
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+               if (p_confirm || cmdmod.confirm)
+               {
+!                  char_u      buff[IOSIZE];
+  
+                   dialog_msg(buff,
+                           _("Swap file \"%s\" exists, overwrite anyway?"),
+--- 2806,2834 ----
+            * Use 'shortname' of the current buffer, since there is no buffer
+            * for the written file. */
+           if (*p_dir == NUL)
++          {
++              dir = alloc(5);
++              if (dir == NULL)
++                  return FAIL;
+               STRCPY(dir, ".");
++          }
+           else
+           {
++              dir = alloc(MAXPATHL);
++              if (dir == NULL)
++                  return FAIL;
+               p = p_dir;
+               copy_option_part(&p, dir, MAXPATHL, ",");
+           }
+           swapname = makeswapname(fname, ffname, curbuf, dir);
++          vim_free(dir);
+           r = vim_fexists(swapname);
+           if (r)
+           {
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+               if (p_confirm || cmdmod.confirm)
+               {
+!                  char_u      buff[DIALOG_MSG_SIZE];
+  
+                   dialog_msg(buff,
+                           _("Swap file \"%s\" exists, overwrite anyway?"),
+***************
+*** 2969,2975 ****
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+       if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL)
+       {
+!          char_u      buff[IOSIZE];
+  
+           if (buf->b_p_ro)
+               dialog_msg(buff, _("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"),
+--- 2978,2984 ----
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+       if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL)
+       {
+!          char_u      buff[DIALOG_MSG_SIZE];
+  
+           if (buf->b_p_ro)
+               dialog_msg(buff, _("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"),
+*** ../vim-7.3.160/src/ex_cmds2.c      2011-02-25 14:46:06.000000000 +0100
+--- src/ex_cmds2.c     2011-04-11 20:51:40.000000000 +0200
+***************
+*** 1492,1498 ****
+      buf_T    *buf;
+      int              checkall;       /* may abandon all changed buffers */
+  {
+!     char_u   buff[IOSIZE];
+      int              ret;
+      buf_T    *buf2;
+  
+--- 1492,1498 ----
+      buf_T    *buf;
+      int              checkall;       /* may abandon all changed buffers */
+  {
+!     char_u   buff[DIALOG_MSG_SIZE];
+      int              ret;
+      buf_T    *buf2;
+  
+*** ../vim-7.3.160/src/ex_docmd.c      2011-04-11 16:56:29.000000000 +0200
+--- src/ex_docmd.c     2011-04-11 21:20:35.000000000 +0200
+***************
+*** 5093,5106 ****
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+           if ((p_confirm || cmdmod.confirm) && curbuf->b_fname != NULL)
+           {
+!              char_u  buff[IOSIZE];
+  
+               if (n == 1)
+                   vim_strncpy(buff,
+                           (char_u *)_("1 more file to edit.  Quit anyway?"),
+!                                                                IOSIZE - 1);
+               else
+!                  vim_snprintf((char *)buff, IOSIZE,
+                             _("%d more files to edit.  Quit anyway?"), n);
+               if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 1) == VIM_YES)
+                   return OK;
+--- 5093,5106 ----
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+           if ((p_confirm || cmdmod.confirm) && curbuf->b_fname != NULL)
+           {
+!              char_u  buff[DIALOG_MSG_SIZE];
+  
+               if (n == 1)
+                   vim_strncpy(buff,
+                           (char_u *)_("1 more file to edit.  Quit anyway?"),
+!                                                       DIALOG_MSG_SIZE - 1);
+               else
+!                  vim_snprintf((char *)buff, DIALOG_MSG_SIZE,
+                             _("%d more files to edit.  Quit anyway?"), n);
+               if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 1) == VIM_YES)
+                   return OK;
+***************
+*** 8926,8960 ****
+               failed = TRUE;
+           if (eap->cmdidx == CMD_mksession)
+           {
+!              char_u dirnow[MAXPATHL];        /* current directory */
+  
+!              /*
+!               * Change to session file's dir.
+!               */
+!              if (mch_dirname(dirnow, MAXPATHL) == FAIL
+!                                          || mch_chdir((char *)dirnow) != 0)
+!                  *dirnow = NUL;
+!              if (*dirnow != NUL && (ssop_flags & SSOP_SESDIR))
+!              {
+!                  if (vim_chdirfile(fname) == OK)
+!                      shorten_fnames(TRUE);
+!              }
+!              else if (*dirnow != NUL
+!                      && (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
+               {
+!                  if (mch_chdir((char *)globaldir) == 0)
+!                      shorten_fnames(TRUE);
+!              }
+  
+!              failed |= (makeopens(fd, dirnow) == FAIL);
+  
+!              /* restore original dir */
+!              if (*dirnow != NUL && ((ssop_flags & SSOP_SESDIR)
+                       || ((ssop_flags & SSOP_CURDIR) && globaldir != NULL)))
+!              {
+!                  if (mch_chdir((char *)dirnow) != 0)
+!                      EMSG(_(e_prev_dir));
+!                  shorten_fnames(TRUE);
+               }
+           }
+           else
+--- 8926,8967 ----
+               failed = TRUE;
+           if (eap->cmdidx == CMD_mksession)
+           {
+!              char_u *dirnow;  /* current directory */
+  
+!              dirnow = alloc(MAXPATHL);
+!              if (dirnow == NULL)
+!                  failed = TRUE;
+!              else
+               {
+!                  /*
+!                   * Change to session file's dir.
+!                   */
+!                  if (mch_dirname(dirnow, MAXPATHL) == FAIL
+!                                          || mch_chdir((char *)dirnow) != 0)
+!                      *dirnow = NUL;
+!                  if (*dirnow != NUL && (ssop_flags & SSOP_SESDIR))
+!                  {
+!                      if (vim_chdirfile(fname) == OK)
+!                          shorten_fnames(TRUE);
+!                  }
+!                  else if (*dirnow != NUL
+!                         && (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
+!                  {
+!                      if (mch_chdir((char *)globaldir) == 0)
+!                          shorten_fnames(TRUE);
+!                  }
+  
+!                  failed |= (makeopens(fd, dirnow) == FAIL);
+  
+!                  /* restore original dir */
+!                  if (*dirnow != NUL && ((ssop_flags & SSOP_SESDIR)
+                       || ((ssop_flags & SSOP_CURDIR) && globaldir != NULL)))
+!                  {
+!                      if (mch_chdir((char *)dirnow) != 0)
+!                          EMSG(_(e_prev_dir));
+!                      shorten_fnames(TRUE);
+!                  }
+!                  vim_free(dirnow);
+               }
+           }
+           else
+***************
+*** 8985,8994 ****
+       else if (eap->cmdidx == CMD_mksession)
+       {
+           /* successful session write - set this_session var */
+!          char_u      tbuf[MAXPATHL];
+  
+!          if (vim_FullName(fname, tbuf, MAXPATHL, FALSE) == OK)
+!              set_vim_var_string(VV_THIS_SESSION, tbuf, -1);
+       }
+  #endif
+  #ifdef MKSESSION_NL
+--- 8992,9006 ----
+       else if (eap->cmdidx == CMD_mksession)
+       {
+           /* successful session write - set this_session var */
+!          char_u      *tbuf;
+  
+!          tbuf = alloc(MAXPATHL);
+!          if (tbuf != NULL)
+!          {
+!              if (vim_FullName(fname, tbuf, MAXPATHL, FALSE) == OK)
+!                  set_vim_var_string(VV_THIS_SESSION, tbuf, -1);
+!              vim_free(tbuf);
+!          }
+       }
+  #endif
+  #ifdef MKSESSION_NL
+***************
+*** 10677,10683 ****
+      unsigned *flagp;
+  {
+      int              i;
+!     char_u   buf[MAXPATHL];
+      char_u   *s;
+  
+      if (gap->ga_len == 0)
+--- 10689,10695 ----
+      unsigned *flagp;
+  {
+      int              i;
+!     char_u   *buf = NULL;
+      char_u   *s;
+  
+      if (gap->ga_len == 0)
+***************
+*** 10692,10702 ****
+       {
+           if (fullname)
+           {
+!              (void)vim_FullName(s, buf, MAXPATHL, FALSE);
+!              s = buf;
+           }
+           if (fputs(" ", fd) < 0 || ses_put_fname(fd, s, flagp) == FAIL)
+               return FAIL;
+       }
+      }
+      return put_eol(fd);
+--- 10704,10722 ----
+       {
+           if (fullname)
+           {
+!              buf = alloc(MAXPATHL);
+!              if (buf != NULL)
+!              {
+!                  (void)vim_FullName(s, buf, MAXPATHL, FALSE);
+!                  s = buf;
+!              }
+           }
+           if (fputs(" ", fd) < 0 || ses_put_fname(fd, s, flagp) == FAIL)
++          {
++              vim_free(buf);
+               return FAIL;
++          }
++          vim_free(buf);
+       }
+      }
+      return put_eol(fd);
+***************
+*** 10925,10931 ****
+  
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) || defined(PROTO)
+  /*
+!  * Make a dialog message in "buff[IOSIZE]".
+   * "format" must contain "%s".
+   */
+      void
+--- 10945,10951 ----
+  
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) || defined(PROTO)
+  /*
+!  * Make a dialog message in "buff[DIALOG_MSG_SIZE]".
+   * "format" must contain "%s".
+   */
+      void
+***************
+*** 10936,10942 ****
+  {
+      if (fname == NULL)
+       fname = (char_u *)_("Untitled");
+!     vim_snprintf((char *)buff, IOSIZE, format, fname);
+  }
+  #endif
+  
+--- 10956,10962 ----
+  {
+      if (fname == NULL)
+       fname = (char_u *)_("Untitled");
+!     vim_snprintf((char *)buff, DIALOG_MSG_SIZE, format, fname);
+  }
+  #endif
+  
+*** ../vim-7.3.160/src/fileio.c        2011-02-25 16:52:13.000000000 +0100
+--- src/fileio.c       2011-04-11 18:35:10.000000000 +0200
+***************
+*** 6023,6037 ****
+  shorten_fname1(full_path)
+      char_u   *full_path;
+  {
+!     char_u   dirname[MAXPATHL];
+      char_u   *p = full_path;
+  
+      if (mch_dirname(dirname, MAXPATHL) == OK)
+      {
+       p = shorten_fname(full_path, dirname);
+       if (p == NULL || *p == NUL)
+           p = full_path;
+      }
+      return p;
+  }
+  #endif
+--- 6023,6041 ----
+  shorten_fname1(full_path)
+      char_u   *full_path;
+  {
+!     char_u   *dirname;
+      char_u   *p = full_path;
+  
++     dirname = alloc(MAXPATHL);
++     if (dirname == NULL)
++      return full_path;
+      if (mch_dirname(dirname, MAXPATHL) == OK)
+      {
+       p = shorten_fname(full_path, dirname);
+       if (p == NULL || *p == NUL)
+           p = full_path;
+      }
++     vim_free(dirname);
+      return p;
+  }
+  #endif
+*** ../vim-7.3.160/src/hardcopy.c      2011-04-11 16:56:29.000000000 +0200
+--- src/hardcopy.c     2011-04-11 18:23:38.000000000 +0200
+***************
+*** 1759,1765 ****
+      char     *name;
+      struct prt_ps_resource_S *resource;
+  {
+!     char_u   buffer[MAXPATHL + 1];
+  
+      vim_strncpy(resource->name, (char_u *)name, 63);
+      /* Look for named resource file in runtimepath */
+--- 1759,1770 ----
+      char     *name;
+      struct prt_ps_resource_S *resource;
+  {
+!     char_u   *buffer;
+!     int              retval;
+! 
+!     buffer = alloc(MAXPATHL + 1);
+!     if (buffer == NULL)
+!      return FALSE;
+  
+      vim_strncpy(resource->name, (char_u *)name, 63);
+      /* Look for named resource file in runtimepath */
+***************
+*** 1768,1776 ****
+      vim_strcat(buffer, (char_u *)name, MAXPATHL);
+      vim_strcat(buffer, (char_u *)".ps", MAXPATHL);
+      resource->filename[0] = NUL;
+!     return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
+                                                          resource->filename)
+           && resource->filename[0] != NUL);
+  }
+  
+  /* PS CR and LF characters have platform independent values */
+--- 1773,1783 ----
+      vim_strcat(buffer, (char_u *)name, MAXPATHL);
+      vim_strcat(buffer, (char_u *)".ps", MAXPATHL);
+      resource->filename[0] = NUL;
+!     retval = (do_in_runtimepath(buffer, FALSE, prt_resource_name,
+                                                          resource->filename)
+           && resource->filename[0] != NUL);
++     vim_free(buffer);
++     return retval;
+  }
+  
+  /* PS CR and LF characters have platform independent values */
+***************
+*** 2848,2862 ****
+      double      right;
+      double      top;
+      double      bottom;
+!     struct prt_ps_resource_S res_prolog;
+!     struct prt_ps_resource_S res_encoding;
+      char     buffer[256];
+      char_u      *p_encoding;
+      char_u   *p;
+  #ifdef FEAT_MBYTE
+!     struct prt_ps_resource_S res_cidfont;
+!     struct prt_ps_resource_S res_cmap;
+  #endif
+  
+      /*
+       * PS DSC Header comments - no PS code!
+--- 2855,2887 ----
+      double      right;
+      double      top;
+      double      bottom;
+!     struct prt_ps_resource_S *res_prolog;
+!     struct prt_ps_resource_S *res_encoding;
+      char     buffer[256];
+      char_u      *p_encoding;
+      char_u   *p;
+  #ifdef FEAT_MBYTE
+!     struct prt_ps_resource_S *res_cidfont;
+!     struct prt_ps_resource_S *res_cmap;
+  #endif
++     int              retval = FALSE;
++ 
++     res_prolog = (struct prt_ps_resource_S *)
++                                    alloc(sizeof(struct prt_ps_resource_S));
++     res_encoding = (struct prt_ps_resource_S *)
++                                    alloc(sizeof(struct prt_ps_resource_S));
++ #ifdef FEAT_MBYTE
++     res_cidfont = (struct prt_ps_resource_S *)
++                                    alloc(sizeof(struct prt_ps_resource_S));
++     res_cmap = (struct prt_ps_resource_S *)
++                                    alloc(sizeof(struct prt_ps_resource_S));
++ #endif
++     if (res_prolog == NULL || res_encoding == NULL
++ #ifdef FEAT_MBYTE
++          || res_cidfont == NULL || res_cmap == NULL
++ #endif
++        )
++      goto theend;
+  
+      /*
+       * PS DSC Header comments - no PS code!
+***************
+*** 2932,2958 ****
+  #endif
+  
+      /* Search for external resources VIM supplies */
+!     if (!prt_find_resource("prolog", &res_prolog))
+      {
+       EMSG(_("E456: Can't find PostScript resource file \"prolog.ps\""));
+       return FALSE;
+      }
+!     if (!prt_open_resource(&res_prolog))
+       return FALSE;
+!     if (!prt_check_resource(&res_prolog, PRT_PROLOG_VERSION))
+       return FALSE;
+  #ifdef FEAT_MBYTE
+      if (prt_out_mbyte)
+      {
+       /* Look for required version of multi-byte printing procset */
+!      if (!prt_find_resource("cidfont", &res_cidfont))
+       {
+           EMSG(_("E456: Can't find PostScript resource file \"cidfont.ps\""));
+           return FALSE;
+       }
+!      if (!prt_open_resource(&res_cidfont))
+           return FALSE;
+!      if (!prt_check_resource(&res_cidfont, PRT_CID_PROLOG_VERSION))
+           return FALSE;
+      }
+  #endif
+--- 2957,2983 ----
+  #endif
+  
+      /* Search for external resources VIM supplies */
+!     if (!prt_find_resource("prolog", res_prolog))
+      {
+       EMSG(_("E456: Can't find PostScript resource file \"prolog.ps\""));
+       return FALSE;
+      }
+!     if (!prt_open_resource(res_prolog))
+       return FALSE;
+!     if (!prt_check_resource(res_prolog, PRT_PROLOG_VERSION))
+       return FALSE;
+  #ifdef FEAT_MBYTE
+      if (prt_out_mbyte)
+      {
+       /* Look for required version of multi-byte printing procset */
+!      if (!prt_find_resource("cidfont", res_cidfont))
+       {
+           EMSG(_("E456: Can't find PostScript resource file \"cidfont.ps\""));
+           return FALSE;
+       }
+!      if (!prt_open_resource(res_cidfont))
+           return FALSE;
+!      if (!prt_check_resource(res_cidfont, PRT_CID_PROLOG_VERSION))
+           return FALSE;
+      }
+  #endif
+***************
+*** 2968,2974 ****
+  #endif
+       p_encoding = enc_skip(p_penc);
+       if (*p_encoding == NUL
+!              || !prt_find_resource((char *)p_encoding, &res_encoding))
+       {
+           /* 'printencoding' not set or not supported - find alternate */
+  #ifdef FEAT_MBYTE
+--- 2993,2999 ----
+  #endif
+       p_encoding = enc_skip(p_penc);
+       if (*p_encoding == NUL
+!              || !prt_find_resource((char *)p_encoding, res_encoding))
+       {
+           /* 'printencoding' not set or not supported - find alternate */
+  #ifdef FEAT_MBYTE
+***************
+*** 2977,2989 ****
+           p_encoding = enc_skip(p_enc);
+           props = enc_canon_props(p_encoding);
+           if (!(props & ENC_8BIT)
+!                  || !prt_find_resource((char *)p_encoding, &res_encoding))
+               /* 8-bit 'encoding' is not supported */
+  #endif
+               {
+               /* Use latin1 as default printing encoding */
+               p_encoding = (char_u *)"latin1";
+!              if (!prt_find_resource((char *)p_encoding, &res_encoding))
+               {
+                   EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+                           p_encoding);
+--- 3002,3014 ----
+           p_encoding = enc_skip(p_enc);
+           props = enc_canon_props(p_encoding);
+           if (!(props & ENC_8BIT)
+!                  || !prt_find_resource((char *)p_encoding, res_encoding))
+               /* 8-bit 'encoding' is not supported */
+  #endif
+               {
+               /* Use latin1 as default printing encoding */
+               p_encoding = (char_u *)"latin1";
+!              if (!prt_find_resource((char *)p_encoding, res_encoding))
+               {
+                   EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+                           p_encoding);
+***************
+*** 2991,2997 ****
+               }
+           }
+       }
+!      if (!prt_open_resource(&res_encoding))
+           return FALSE;
+       /* For the moment there are no checks on encoding resource files to
+        * perform */
+--- 3016,3022 ----
+               }
+           }
+       }
+!      if (!prt_open_resource(res_encoding))
+           return FALSE;
+       /* For the moment there are no checks on encoding resource files to
+        * perform */
+***************
+*** 3005,3017 ****
+       if (prt_use_courier)
+       {
+           /* Include ASCII range encoding vector */
+!          if (!prt_find_resource(prt_ascii_encoding, &res_encoding))
+           {
+               EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+                                                         prt_ascii_encoding);
+               return FALSE;
+           }
+!          if (!prt_open_resource(&res_encoding))
+               return FALSE;
+           /* For the moment there are no checks on encoding resource files to
+            * perform */
+--- 3030,3042 ----
+       if (prt_use_courier)
+       {
+           /* Include ASCII range encoding vector */
+!          if (!prt_find_resource(prt_ascii_encoding, res_encoding))
+           {
+               EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+                                                         prt_ascii_encoding);
+               return FALSE;
+           }
+!          if (!prt_open_resource(res_encoding))
+               return FALSE;
+           /* For the moment there are no checks on encoding resource files to
+            * perform */
+***************
+*** 3034,3077 ****
+      if (prt_out_mbyte && prt_custom_cmap)
+      {
+       /* Find user supplied CMap */
+!      if (!prt_find_resource(prt_cmap, &res_cmap))
+       {
+           EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+                                                                   prt_cmap);
+           return FALSE;
+       }
+!      if (!prt_open_resource(&res_cmap))
+           return FALSE;
+      }
+  #endif
+  
+      /* List resources supplied */
+!     STRCPY(buffer, res_prolog.title);
+      STRCAT(buffer, " ");
+!     STRCAT(buffer, res_prolog.version);
+      prt_dsc_resources("DocumentSuppliedResources", "procset", buffer);
+  #ifdef FEAT_MBYTE
+      if (prt_out_mbyte)
+      {
+!      STRCPY(buffer, res_cidfont.title);
+       STRCAT(buffer, " ");
+!      STRCAT(buffer, res_cidfont.version);
+       prt_dsc_resources(NULL, "procset", buffer);
+  
+       if (prt_custom_cmap)
+       {
+!          STRCPY(buffer, res_cmap.title);
+           STRCAT(buffer, " ");
+!          STRCAT(buffer, res_cmap.version);
+           prt_dsc_resources(NULL, "cmap", buffer);
+       }
+      }
+      if (!prt_out_mbyte || prt_use_courier)
+  #endif
+      {
+!      STRCPY(buffer, res_encoding.title);
+       STRCAT(buffer, " ");
+!      STRCAT(buffer, res_encoding.version);
+       prt_dsc_resources(NULL, "encoding", buffer);
+      }
+      prt_dsc_requirements(prt_duplex, prt_tumble, prt_collate,
+--- 3059,3102 ----
+      if (prt_out_mbyte && prt_custom_cmap)
+      {
+       /* Find user supplied CMap */
+!      if (!prt_find_resource(prt_cmap, res_cmap))
+       {
+           EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+                                                                   prt_cmap);
+           return FALSE;
+       }
+!      if (!prt_open_resource(res_cmap))
+           return FALSE;
+      }
+  #endif
+  
+      /* List resources supplied */
+!     STRCPY(buffer, res_prolog->title);
+      STRCAT(buffer, " ");
+!     STRCAT(buffer, res_prolog->version);
+      prt_dsc_resources("DocumentSuppliedResources", "procset", buffer);
+  #ifdef FEAT_MBYTE
+      if (prt_out_mbyte)
+      {
+!      STRCPY(buffer, res_cidfont->title);
+       STRCAT(buffer, " ");
+!      STRCAT(buffer, res_cidfont->version);
+       prt_dsc_resources(NULL, "procset", buffer);
+  
+       if (prt_custom_cmap)
+       {
+!          STRCPY(buffer, res_cmap->title);
+           STRCAT(buffer, " ");
+!          STRCAT(buffer, res_cmap->version);
+           prt_dsc_resources(NULL, "cmap", buffer);
+       }
+      }
+      if (!prt_out_mbyte || prt_use_courier)
+  #endif
+      {
+!      STRCPY(buffer, res_encoding->title);
+       STRCAT(buffer, " ");
+!      STRCAT(buffer, res_encoding->version);
+       prt_dsc_resources(NULL, "encoding", buffer);
+      }
+      prt_dsc_requirements(prt_duplex, prt_tumble, prt_collate,
+***************
+*** 3114,3128 ****
+      prt_dsc_noarg("BeginProlog");
+  
+      /* Add required procsets - NOTE: order is important! */
+!     if (!prt_add_resource(&res_prolog))
+       return FALSE;
+  #ifdef FEAT_MBYTE
+      if (prt_out_mbyte)
+      {
+       /* Add CID font procset, and any user supplied CMap */
+!      if (!prt_add_resource(&res_cidfont))
+           return FALSE;
+!      if (prt_custom_cmap && !prt_add_resource(&res_cmap))
+           return FALSE;
+      }
+  #endif
+--- 3139,3153 ----
+      prt_dsc_noarg("BeginProlog");
+  
+      /* Add required procsets - NOTE: order is important! */
+!     if (!prt_add_resource(res_prolog))
+       return FALSE;
+  #ifdef FEAT_MBYTE
+      if (prt_out_mbyte)
+      {
+       /* Add CID font procset, and any user supplied CMap */
+!      if (!prt_add_resource(res_cidfont))
+           return FALSE;
+!      if (prt_custom_cmap && !prt_add_resource(res_cmap))
+           return FALSE;
+      }
+  #endif
+***************
+*** 3132,3138 ****
+  #endif
+       /* There will be only one Roman font encoding to be included in the PS
+        * file. */
+!      if (!prt_add_resource(&res_encoding))
+           return FALSE;
+  
+      prt_dsc_noarg("EndProlog");
+--- 3157,3163 ----
+  #endif
+       /* There will be only one Roman font encoding to be included in the PS
+        * file. */
+!      if (!prt_add_resource(res_encoding))
+           return FALSE;
+  
+      prt_dsc_noarg("EndProlog");
+***************
+*** 3248,3254 ****
+      prt_dsc_noarg("EndSetup");
+  
+      /* Fail if any problems writing out to the PS file */
+!     return !prt_file_error;
+  }
+  
+      void
+--- 3273,3289 ----
+      prt_dsc_noarg("EndSetup");
+  
+      /* Fail if any problems writing out to the PS file */
+!     retval = !prt_file_error;
+! 
+! theend:
+!     vim_free(res_prolog);
+!     vim_free(res_encoding);
+! #ifdef FEAT_MBYTE
+!     vim_free(res_cidfont);
+!     vim_free(res_cmap);
+! #endif
+! 
+!     return retval;
+  }
+  
+      void
+*** ../vim-7.3.160/src/quickfix.c      2010-12-02 15:33:10.000000000 +0100
+--- src/quickfix.c     2011-04-11 17:54:07.000000000 +0200
+***************
+*** 3049,3056 ****
+      int              flags = 0;
+      colnr_T  col;
+      long     tomatch;
+!     char_u   dirname_start[MAXPATHL];
+!     char_u   dirname_now[MAXPATHL];
+      char_u   *target_dir = NULL;
+  #ifdef FEAT_AUTOCMD
+      char_u   *au_name =  NULL;
+--- 3049,3056 ----
+      int              flags = 0;
+      colnr_T  col;
+      long     tomatch;
+!     char_u   *dirname_start = NULL;
+!     char_u   *dirname_now = NULL;
+      char_u   *target_dir = NULL;
+  #ifdef FEAT_AUTOCMD
+      char_u   *au_name =  NULL;
+***************
+*** 3128,3133 ****
+--- 3128,3138 ----
+       goto theend;
+      }
+  
++     dirname_start = alloc(MAXPATHL);
++     dirname_now = alloc(MAXPATHL);
++     if (dirname_start == NULL || dirname_now == NULL)
++      goto theend;
++ 
+      /* Remember the current directory, because a BufRead autocommand that does
+       * ":lcd %:p:h" changes the meaning of short path names. */
+      mch_dirname(dirname_start, MAXPATHL);
+***************
+*** 3364,3369 ****
+--- 3369,3376 ----
+      }
+  
+  theend:
++     vim_free(dirname_now);
++     vim_free(dirname_start);
+      vim_free(target_dir);
+      vim_free(regmatch.regprog);
+  }
+*** ../vim-7.3.160/src/main.c  2011-03-22 18:10:34.000000000 +0100
+--- src/main.c 2011-04-11 18:06:06.000000000 +0200
+***************
+*** 3814,3820 ****
+      int              i;
+      char_u   *inicmd = NULL;
+      char_u   *p;
+!     char_u   cwd[MAXPATHL];
+  
+      if (filec > 0 && filev[0][0] == '+')
+      {
+--- 3814,3820 ----
+      int              i;
+      char_u   *inicmd = NULL;
+      char_u   *p;
+!     char_u   *cwd;
+  
+      if (filec > 0 && filev[0][0] == '+')
+      {
+***************
+*** 3827,3841 ****
+       mainerr_arg_missing((char_u *)filev[-1]);
+  
+      /* Temporarily cd to the current directory to handle relative file names. */
+      if (mch_dirname(cwd, MAXPATHL) != OK)
+       return NULL;
+!     if ((p = vim_strsave_escaped_ext(cwd,
+  #ifdef BACKSLASH_IN_FILENAME
+                   "",  /* rem_backslash() will tell what chars to escape */
+  #else
+                   PATH_ESC_CHARS,
+  #endif
+!                  '\\', TRUE)) == NULL)
+       return NULL;
+      ga_init2(&ga, 1, 100);
+      ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd ");
+--- 3827,3849 ----
+       mainerr_arg_missing((char_u *)filev[-1]);
+  
+      /* Temporarily cd to the current directory to handle relative file names. */
++     cwd = alloc(MAXPATHL);
++     if (cwd == NULL)
++      return NULL;
+      if (mch_dirname(cwd, MAXPATHL) != OK)
++     {
++      vim_free(cwd);
+       return NULL;
+!     }
+!     p = vim_strsave_escaped_ext(cwd,
+  #ifdef BACKSLASH_IN_FILENAME
+                   "",  /* rem_backslash() will tell what chars to escape */
+  #else
+                   PATH_ESC_CHARS,
+  #endif
+!                  '\\', TRUE);
+!     vim_free(cwd);
+!     if (p == NULL)
+       return NULL;
+      ga_init2(&ga, 1, 100);
+      ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd ");
+*** ../vim-7.3.160/src/netbeans.c      2011-04-11 16:56:29.000000000 +0200
+--- src/netbeans.c     2011-04-11 18:27:08.000000000 +0200
+***************
+*** 2891,2897 ****
+      char_u   *text;
+      linenr_T lnum;
+      int              col;
+!     char     buf[MAXPATHL * 2 + 25];
+      char_u   *p;
+  
+      /* Don't do anything when 'ballooneval' is off, messages scrolled the
+--- 2891,2897 ----
+      char_u   *text;
+      linenr_T lnum;
+      int              col;
+!     char     *buf;
+      char_u   *p;
+  
+      /* Don't do anything when 'ballooneval' is off, messages scrolled the
+***************
+*** 2905,2919 ****
+        * length. */
+       if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHL)
+       {
+!          p = nb_quote(text);
+!          if (p != NULL)
+           {
+!              vim_snprintf(buf, sizeof(buf),
+!                                     "0:balloonText=%d \"%s\"\n", r_cmdno, p);
+!              vim_free(p);
+           }
+-          nbdebug(("EVT: %s", buf));
+-          nb_send(buf, "netbeans_beval_cb");
+       }
+       vim_free(text);
+      }
+--- 2905,2924 ----
+        * length. */
+       if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHL)
+       {
+!          buf = (char *)alloc(MAXPATHL * 2 + 25);
+!          if (buf != NULL)
+           {
+!              p = nb_quote(text);
+!              if (p != NULL)
+!              {
+!                  vim_snprintf(buf, MAXPATHL * 2 + 25,
+!                                   "0:balloonText=%d \"%s\"\n", r_cmdno, p);
+!                  vim_free(p);
+!              }
+!              nbdebug(("EVT: %s", buf));
+!              nb_send(buf, "netbeans_beval_cb");
+!              vim_free(buf);
+           }
+       }
+       vim_free(text);
+      }
+*** ../vim-7.3.160/src/spell.c 2011-04-11 16:56:29.000000000 +0200
+--- src/spell.c        2011-04-11 18:00:49.000000000 +0200
+***************
+*** 8590,8596 ****
+      spellinfo_T      *spin;
+      char_u   *wfname;
+  {
+!     char_u   fname[MAXPATHL];
+      int              len;
+      slang_T  *slang;
+      int              free_slang = FALSE;
+--- 8590,8596 ----
+      spellinfo_T      *spin;
+      char_u   *wfname;
+  {
+!     char_u   *fname = NULL;
+      int              len;
+      slang_T  *slang;
+      int              free_slang = FALSE;
+***************
+*** 8654,8659 ****
+--- 8654,8662 ----
+       * Write the .sug file.
+       * Make the file name by changing ".spl" to ".sug".
+       */
++     fname = alloc(MAXPATHL);
++     if (fname == NULL)
++      goto theend;
+      vim_strncpy(fname, wfname, MAXPATHL - 1);
+      len = (int)STRLEN(fname);
+      fname[len - 2] = 'u';
+***************
+*** 8661,8666 ****
+--- 8664,8670 ----
+      sug_write(spin, fname);
+  
+  theend:
++     vim_free(fname);
+      if (free_slang)
+       slang_free(slang);
+      free_blocks(spin->si_blocks);
+***************
+*** 9106,9113 ****
+      int              overwrite;          /* overwrite existing output file */
+      int              added_word;         /* invoked through "zg" */
+  {
+!     char_u   fname[MAXPATHL];
+!     char_u   wfname[MAXPATHL];
+      char_u   **innames;
+      int              incount;
+      afffile_T        *(afile[8]);
+--- 9110,9117 ----
+      int              overwrite;          /* overwrite existing output file */
+      int              added_word;         /* invoked through "zg" */
+  {
+!     char_u   *fname = NULL;
+!     char_u   *wfname;
+      char_u   **innames;
+      int              incount;
+      afffile_T        *(afile[8]);
+***************
+*** 9135,9140 ****
+--- 9139,9148 ----
+      innames = &fnames[1];
+      incount = fcount - 1;
+  
++     wfname = alloc(MAXPATHL);
++     if (wfname == NULL)
++      return;
++ 
+      if (fcount >= 1)
+      {
+       len = (int)STRLEN(fnames[0]);
+***************
+*** 9144,9167 ****
+            * "path/en.latin1.add.spl". */
+           innames = &fnames[0];
+           incount = 1;
+!          vim_snprintf((char *)wfname, sizeof(wfname), "%s.spl", fnames[0]);
+       }
+       else if (fcount == 1)
+       {
+           /* For ":mkspell path/vim" output file is "path/vim.latin1.spl". */
+           innames = &fnames[0];
+           incount = 1;
+!          vim_snprintf((char *)wfname, sizeof(wfname), SPL_FNAME_TMPL,
+                 fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
+       }
+       else if (len > 4 && STRCMP(fnames[0] + len - 4, ".spl") == 0)
+       {
+           /* Name ends in ".spl", use as the file name. */
+!          vim_strncpy(wfname, fnames[0], sizeof(wfname) - 1);
+       }
+       else
+           /* Name should be language, make the file name from it. */
+!          vim_snprintf((char *)wfname, sizeof(wfname), SPL_FNAME_TMPL,
+                 fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
+  
+       /* Check for .ascii.spl. */
+--- 9152,9175 ----
+            * "path/en.latin1.add.spl". */
+           innames = &fnames[0];
+           incount = 1;
+!          vim_snprintf((char *)wfname, MAXPATHL, "%s.spl", fnames[0]);
+       }
+       else if (fcount == 1)
+       {
+           /* For ":mkspell path/vim" output file is "path/vim.latin1.spl". */
+           innames = &fnames[0];
+           incount = 1;
+!          vim_snprintf((char *)wfname, MAXPATHL, SPL_FNAME_TMPL,
+                 fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
+       }
+       else if (len > 4 && STRCMP(fnames[0] + len - 4, ".spl") == 0)
+       {
+           /* Name ends in ".spl", use as the file name. */
+!          vim_strncpy(wfname, fnames[0], MAXPATHL - 1);
+       }
+       else
+           /* Name should be language, make the file name from it. */
+!          vim_snprintf((char *)wfname, MAXPATHL, SPL_FNAME_TMPL,
+                 fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
+  
+       /* Check for .ascii.spl. */
+***************
+*** 9186,9199 ****
+       if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
+       {
+           EMSG(_(e_exists));
+!          return;
+       }
+       if (mch_isdir(wfname))
+       {
+           EMSG2(_(e_isadir2), wfname);
+!          return;
+       }
+  
+       /*
+        * Init the aff and dic pointers.
+        * Get the region names if there are more than 2 arguments.
+--- 9194,9211 ----
+       if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
+       {
+           EMSG(_(e_exists));
+!          goto theend;
+       }
+       if (mch_isdir(wfname))
+       {
+           EMSG2(_(e_isadir2), wfname);
+!          goto theend;
+       }
+  
++      fname = alloc(MAXPATHL);
++      if (fname == NULL)
++          goto theend;
++ 
+       /*
+        * Init the aff and dic pointers.
+        * Get the region names if there are more than 2 arguments.
+***************
+*** 9209,9215 ****
+                                               || innames[i][len - 3] != '_')
+               {
+                   EMSG2(_("E755: Invalid region in %s"), innames[i]);
+!                  return;
+               }
+               spin.si_region_name[i * 2] = TOLOWER_ASC(innames[i][len - 2]);
+               spin.si_region_name[i * 2 + 1] =
+--- 9221,9227 ----
+                                               || innames[i][len - 3] != '_')
+               {
+                   EMSG2(_("E755: Invalid region in %s"), innames[i]);
+!                  goto theend;
+               }
+               spin.si_region_name[i * 2] = TOLOWER_ASC(innames[i][len - 2]);
+               spin.si_region_name[i * 2 + 1] =
+***************
+*** 9226,9232 ****
+               || spin.si_prefroot == NULL)
+       {
+           free_blocks(spin.si_blocks);
+!          return;
+       }
+  
+       /* When not producing a .add.spl file clear the character table when
+--- 9238,9244 ----
+               || spin.si_prefroot == NULL)
+       {
+           free_blocks(spin.si_blocks);
+!          goto theend;
+       }
+  
+       /* When not producing a .add.spl file clear the character table when
+***************
+*** 9247,9253 ****
+           spin.si_conv.vc_type = CONV_NONE;
+           spin.si_region = 1 << i;
+  
+!          vim_snprintf((char *)fname, sizeof(fname), "%s.aff", innames[i]);
+           if (mch_stat((char *)fname, &st) >= 0)
+           {
+               /* Read the .aff file.  Will init "spin->si_conv" based on the
+--- 9259,9265 ----
+           spin.si_conv.vc_type = CONV_NONE;
+           spin.si_region = 1 << i;
+  
+!          vim_snprintf((char *)fname, MAXPATHL, "%s.aff", innames[i]);
+           if (mch_stat((char *)fname, &st) >= 0)
+           {
+               /* Read the .aff file.  Will init "spin->si_conv" based on the
+***************
+*** 9258,9264 ****
+               else
+               {
+                   /* Read the .dic file and store the words in the trees. */
+!                  vim_snprintf((char *)fname, sizeof(fname), "%s.dic",
+                                                                 innames[i]);
+                   if (spell_read_dic(&spin, fname, afile[i]) == FAIL)
+                       error = TRUE;
+--- 9270,9276 ----
+               else
+               {
+                   /* Read the .dic file and store the words in the trees. */
+!                  vim_snprintf((char *)fname, MAXPATHL, "%s.dic",
+                                                                 innames[i]);
+                   if (spell_read_dic(&spin, fname, afile[i]) == FAIL)
+                       error = TRUE;
+***************
+*** 9340,9345 ****
+--- 9352,9361 ----
+           spell_make_sugfile(&spin, wfname);
+  
+      }
++ 
++ theend:
++     vim_free(fname);
++     vim_free(wfname);
+  }
+  
+  /*
+***************
+*** 9392,9398 ****
+      buf_T    *buf = NULL;
+      int              new_spf = FALSE;
+      char_u   *fname;
+!     char_u   fnamebuf[MAXPATHL];
+      char_u   line[MAXWLEN * 2];
+      long     fpos, fpos_next = 0;
+      int              i;
+--- 9408,9414 ----
+      buf_T    *buf = NULL;
+      int              new_spf = FALSE;
+      char_u   *fname;
+!     char_u   *fnamebuf = NULL;
+      char_u   line[MAXWLEN * 2];
+      long     fpos, fpos_next = 0;
+      int              i;
+***************
+*** 9422,9427 ****
+--- 9438,9446 ----
+           EMSG2(_(e_notset), "spellfile");
+           return;
+       }
++      fnamebuf = alloc(MAXPATHL);
++      if (fnamebuf == NULL)
++          return;
+  
+       for (spf = curwin->w_s->b_p_spf, i = 1; *spf != NUL; ++i)
+       {
+***************
+*** 9431,9436 ****
+--- 9450,9456 ----
+           if (*spf == NUL)
+           {
+               EMSGN(_("E765: 'spellfile' does not have %ld entries"), idx);
++              vim_free(fnamebuf);
+               return;
+           }
+       }
+***************
+*** 9442,9447 ****
+--- 9462,9468 ----
+       if (buf != NULL && bufIsChanged(buf))
+       {
+           EMSG(_(e_bufloaded));
++          vim_free(fnamebuf);
+           return;
+       }
+  
+***************
+*** 9536,9541 ****
+--- 9557,9563 ----
+  
+       redraw_all_later(SOME_VALID);
+      }
++     vim_free(fnamebuf);
+  }
+  
+  /*
+***************
+*** 9544,9550 ****
+      static void
+  init_spellfile()
+  {
+!     char_u   buf[MAXPATHL];
+      int              l;
+      char_u   *fname;
+      char_u   *rtp;
+--- 9566,9572 ----
+      static void
+  init_spellfile()
+  {
+!     char_u   *buf;
+      int              l;
+      char_u   *fname;
+      char_u   *rtp;
+***************
+*** 9554,9559 ****
+--- 9576,9585 ----
+  
+      if (*curwin->w_s->b_p_spl != NUL && curwin->w_s->b_langp.ga_len > 0)
+      {
++      buf = alloc(MAXPATHL);
++      if (buf == NULL)
++          return;
++ 
+       /* Find the end of the language name.  Exclude the region.  If there
+        * is a path separator remember the start of the tail. */
+       for (lend = curwin->w_s->b_p_spl; *lend != NUL
+***************
+*** 9597,9603 ****
+                                "/%.*s", (int)(lend - lstart), lstart);
+               }
+               l = (int)STRLEN(buf);
+!              fname = LANGP_ENTRY(curwin->w_s->b_langp, 0)->lp_slang->sl_fname;
+               vim_snprintf((char *)buf + l, MAXPATHL - l, ".%s.add",
+                       fname != NULL
+                         && strstr((char *)gettail(fname), ".ascii.") != NULL
+--- 9623,9630 ----
+                                "/%.*s", (int)(lend - lstart), lstart);
+               }
+               l = (int)STRLEN(buf);
+!              fname = LANGP_ENTRY(curwin->w_s->b_langp, 0)
+!                                                       ->lp_slang->sl_fname;
+               vim_snprintf((char *)buf + l, MAXPATHL - l, ".%s.add",
+                       fname != NULL
+                         && strstr((char *)gettail(fname), ".ascii.") != NULL
+***************
+*** 9607,9612 ****
+--- 9634,9641 ----
+           }
+           aspath = FALSE;
+       }
++ 
++      vim_free(buf);
+      }
+  }
+  
+*** ../vim-7.3.160/src/tag.c   2011-04-11 16:56:29.000000000 +0200
+--- src/tag.c  2011-04-11 20:54:36.000000000 +0200
+***************
+*** 775,791 ****
+           {
+               list_T  *list;
+               char_u  tag_name[128 + 1];
+!              char_u  fname[MAXPATHL + 1];
+!              char_u  cmd[CMDBUFFSIZE + 1];
+  
+               /*
+                * Add the matching tags to the location list for the current
+                * window.
+                */
+  
+               list = list_alloc();
+!              if (list == NULL)
+                   goto end_do_tag;
+  
+               for (i = 0; i < num_matches; ++i)
+               {
+--- 775,799 ----
+           {
+               list_T  *list;
+               char_u  tag_name[128 + 1];
+!              char_u  *fname;
+!              char_u  *cmd;
+  
+               /*
+                * Add the matching tags to the location list for the current
+                * window.
+                */
+  
++              fname = alloc(MAXPATHL + 1);
++              cmd = alloc(CMDBUFFSIZE + 1);
+               list = list_alloc();
+!              if (list == NULL || fname == NULL || cmd == NULL)
+!              {
+!                  vim_free(cmd);
+!                  vim_free(fname);
+!                  if (list != NULL)
+!                      list_free(list, TRUE);
+                   goto end_do_tag;
++              }
+  
+               for (i = 0; i < num_matches; ++i)
+               {
+***************
+*** 911,916 ****
+--- 919,926 ----
+               set_errorlist(curwin, list, ' ', IObuff);
+  
+               list_free(list, TRUE);
++              vim_free(fname);
++              vim_free(cmd);
+  
+               cur_match = 0;          /* Jump to the first tag */
+           }
+***************
+*** 3777,3784 ****
+      char_u  *start;          /* start of the value */
+      char_u  *end;            /* after the value; can be NULL */
+  {
+!     char_u   buf[MAXPATHL];
+      int              len = 0;
+  
+      /* check that the field name doesn't exist yet */
+      if (dict_find(dict, (char_u *)field_name, -1) != NULL)
+--- 3787,3795 ----
+      char_u  *start;          /* start of the value */
+      char_u  *end;            /* after the value; can be NULL */
+  {
+!     char_u   *buf;
+      int              len = 0;
++     int              retval;
+  
+      /* check that the field name doesn't exist yet */
+      if (dict_find(dict, (char_u *)field_name, -1) != NULL)
+***************
+*** 3791,3796 ****
+--- 3802,3810 ----
+       }
+       return FAIL;
+      }
++     buf = alloc(MAXPATHL);
++     if (buf == NULL)
++      return FAIL;
+      if (start != NULL)
+      {
+       if (end == NULL)
+***************
+*** 3800,3811 ****
+               --end;
+       }
+       len = (int)(end - start);
+!      if (len > (int)sizeof(buf) - 1)
+!          len = sizeof(buf) - 1;
+       vim_strncpy(buf, start, len);
+      }
+      buf[len] = NUL;
+!     return dict_add_nr_str(dict, field_name, 0L, buf);
+  }
+  
+  /*
+--- 3814,3827 ----
+               --end;
+       }
+       len = (int)(end - start);
+!      if (len > MAXPATHL - 1)
+!          len = MAXPATHL - 1;
+       vim_strncpy(buf, start, len);
+      }
+      buf[len] = NUL;
+!     retval = dict_add_nr_str(dict, field_name, 0L, buf);
+!     vim_free(buf);
+!     return retval;
+  }
+  
+  /*
+*** ../vim-7.3.160/src/vim.h   2010-12-30 12:30:26.000000000 +0100
+--- src/vim.h  2011-04-11 20:50:54.000000000 +0200
+***************
+*** 1435,1440 ****
+--- 1435,1442 ----
+  
+  #define IOSIZE          (1024+1)     /* file i/o and sprintf buffer size */
+  
++ #define DIALOG_MSG_SIZE 1000 /* buffer size for dialog_msg() */
++ 
+  #ifdef FEAT_MBYTE
+  # define MSG_BUF_LEN 480     /* length of buffer for small messages */
+  # define MSG_BUF_CLEN  (MSG_BUF_LEN / 6)    /* cell length (worst case: utf-8
+*** ../vim-7.3.160/src/xxd/xxd.c       2011-04-02 14:44:50.000000000 +0200
+--- src/xxd/xxd.c      2011-04-11 16:40:48.000000000 +0200
+***************
+*** 476,482 ****
+    int octspergrp = -1;       /* number of octets grouped in output */
+    int grplen;                /* total chars per octet group */
+    long length = -1, n = 0, seekoff = 0;
+!   char l[LLEN+1];
+    char *pp;
+  
+  #ifdef AMIGA
+--- 476,482 ----
+    int octspergrp = -1;       /* number of octets grouped in output */
+    int grplen;                /* total chars per octet group */
+    long length = -1, n = 0, seekoff = 0;
+!   static char l[LLEN+1];  /* static because it may be too big for stack */
+    char *pp;
+  
+  #ifdef AMIGA
+*** ../vim-7.3.160/src/version.c       2011-04-11 16:56:29.000000000 +0200
+--- src/version.c      2011-04-11 21:15:33.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     161,
+  /**/
+
+-- 
+The process for understanding customers primarily involves sitting around with
+other marketing people and talking about what you would to if you were dumb
+enough to be a customer.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.162.patch0 b/vim/patches/vim-7.3.162.patch0
new file mode 100644 (file)
index 0000000..3f0173a
--- /dev/null
@@ -0,0 +1,83 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.162
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.162
+Problem:    No error message when assigning to a list with an index out of
+           range. (Yukihiro Nakadaira)
+Solution:   Add the error message.
+Files:     src/eval.c
+
+
+*** ../vim-7.3.161/src/eval.c  2011-04-11 21:35:03.000000000 +0200
+--- src/eval.c 2011-04-21 13:40:38.000000000 +0200
+***************
+*** 2794,2799 ****
+--- 2794,2801 ----
+           {
+               if (lp->ll_range && !lp->ll_empty2)
+                   clear_tv(&var2);
++              if (!quiet)
++                  EMSGN(_(e_listidx), lp->ll_n1);
+               return NULL;
+           }
+  
+***************
+*** 2811,2817 ****
+--- 2813,2823 ----
+               {
+                   ni = list_find(lp->ll_list, lp->ll_n2);
+                   if (ni == NULL)
++                  {
++                      if (!quiet)
++                          EMSGN(_(e_listidx), lp->ll_n2);
+                       return NULL;
++                  }
+                   lp->ll_n2 = list_idx_of_item(lp->ll_list, ni);
+               }
+  
+***************
+*** 2819,2825 ****
+--- 2825,2835 ----
+               if (lp->ll_n1 < 0)
+                   lp->ll_n1 = list_idx_of_item(lp->ll_list, lp->ll_li);
+               if (lp->ll_n2 < lp->ll_n1)
++              {
++                  if (!quiet)
++                      EMSGN(_(e_listidx), lp->ll_n2);
+                   return NULL;
++              }
+           }
+  
+           lp->ll_tv = &lp->ll_li->li_tv;
+*** ../vim-7.3.161/src/version.c       2011-04-11 21:35:03.000000000 +0200
+--- src/version.c      2011-04-21 13:44:46.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     162,
+  /**/
+
+-- 
+Far back in the mists of ancient time, in the great and glorious days of the
+former Galactic Empire, life was wild, rich and largely tax free.
+Mighty starships plied their way between exotic suns, seeking adventure and
+reward among the furthest reaches of Galactic space.  In those days, spirits
+were brave, the stakes were high, men were real men, women were real women
+and small furry creatures from Alpha Centauri were real small furry creatures
+from Alpha Centauri.  And all dared to brave unknown terrors, to do mighty
+deeds, to boldly split infinitives that no man had split before -- and thus
+was the Empire forged.
+               -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.163.patch0 b/vim/patches/vim-7.3.163.patch0
new file mode 100644 (file)
index 0000000..b5f1cb4
--- /dev/null
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.163
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.163
+Problem:    For the default of 'shellpipe' "mksh" and "pdksh" are not
+           recognized.
+Solution:   Recognize these shell names.
+Files:     src/option.c
+
+
+*** ../vim-7.3.162/src/option.c        2011-03-22 14:35:01.000000000 +0100
+--- src/option.c       2011-04-15 20:49:54.000000000 +0200
+***************
+*** 3846,3851 ****
+--- 3846,3853 ----
+  # ifndef OS2 /* Always use bourne shell style redirection if we reach this */
+           if (       fnamecmp(p, "sh") == 0
+                   || fnamecmp(p, "ksh") == 0
++                  || fnamecmp(p, "mksh") == 0
++                  || fnamecmp(p, "pdksh") == 0
+                   || fnamecmp(p, "zsh") == 0
+                   || fnamecmp(p, "zsh-beta") == 0
+                   || fnamecmp(p, "bash") == 0
+***************
+*** 3853,3858 ****
+--- 3855,3862 ----
+                   || fnamecmp(p, "cmd") == 0
+                   || fnamecmp(p, "sh.exe") == 0
+                   || fnamecmp(p, "ksh.exe") == 0
++                  || fnamecmp(p, "mksh.exe") == 0
++                  || fnamecmp(p, "pdksh.exe") == 0
+                   || fnamecmp(p, "zsh.exe") == 0
+                   || fnamecmp(p, "zsh-beta.exe") == 0
+                   || fnamecmp(p, "bash.exe") == 0
+*** ../vim-7.3.162/src/version.c       2011-04-21 14:27:21.000000000 +0200
+--- src/version.c      2011-04-28 12:56:03.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     163,
+  /**/
+
+-- 
+If you put 7 of the most talented OSS developers in a room for a week
+and asked them to fix a bug in a spreadsheet program, in 1 week
+you'd have 2 new mail readers and a text-based web browser.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.164.patch0 b/vim/patches/vim-7.3.164.patch0
new file mode 100644 (file)
index 0000000..9049f1b
--- /dev/null
@@ -0,0 +1,181 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.164
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.164
+Problem:    C-indenting: a preprocessor statement confuses detection of a
+           function delcaration.
+Solution:   Ignore preprocessor lines. (Lech Lorens)  Also recognize the style
+           to put a comma before the argument name.
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.163/src/misc1.c 2011-04-11 16:56:29.000000000 +0200
+--- src/misc1.c        2011-04-28 12:49:55.000000000 +0200
+***************
+*** 5396,5403 ****
+  cin_ispreproc(s)
+      char_u *s;
+  {
+!     s = skipwhite(s);
+!     if (*s == '#')
+       return TRUE;
+      return FALSE;
+  }
+--- 5396,5402 ----
+  cin_ispreproc(s)
+      char_u *s;
+  {
+!     if (*skipwhite(s) == '#')
+       return TRUE;
+      return FALSE;
+  }
+***************
+*** 5513,5518 ****
+--- 5512,5521 ----
+      else
+       s = *sp;
+  
++     /* Ignore line starting with #. */
++     if (cin_ispreproc(s))
++      return FALSE;
++ 
+      while (*s && *s != '(' && *s != ';' && *s != '\'' && *s != '"')
+      {
+       if (cin_iscomment(s))   /* ignore comments */
+***************
+*** 5538,5550 ****
+               retval = TRUE;
+           goto done;
+       }
+!      if (*s == ',' && cin_nocode(s + 1))
+       {
+!          /* ',' at the end: continue looking in the next line */
+           if (lnum >= curbuf->b_ml.ml_line_count)
+               break;
+! 
+!          s = ml_get(++lnum);
+       }
+       else if (cin_iscomment(s))      /* ignore comments */
+           s = cin_skipcomment(s);
+--- 5541,5569 ----
+               retval = TRUE;
+           goto done;
+       }
+!      if ((*s == ',' && cin_nocode(s + 1)) || s[1] == NUL || cin_nocode(s))
+       {
+!          int comma = (*s == ',');
+! 
+!          /* ',' at the end: continue looking in the next line.
+!           * At the end: check for ',' in the next line, for this style:
+!           * func(arg1
+!           *       , arg2) */
+!          for (;;)
+!          {
+!              if (lnum >= curbuf->b_ml.ml_line_count)
+!                  break;
+!              s = ml_get(++lnum);
+!              if (!cin_ispreproc(s))
+!                  break;
+!          }
+           if (lnum >= curbuf->b_ml.ml_line_count)
+               break;
+!          /* Require a comma at end of the line or a comma or ')' at the
+!           * start of next line. */
+!          s = skipwhite(s);
+!          if (!comma && *s != ',' && *s != ')')
+!              break;
+       }
+       else if (cin_iscomment(s))      /* ignore comments */
+           s = cin_skipcomment(s);
+*** ../vim-7.3.163/src/testdir/test3.in        2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test3.in       2011-04-28 12:15:12.000000000 +0200
+***************
+*** 1315,1320 ****
+--- 1315,1349 ----
+  }
+  
+  STARTTEST
++ :set cino=(0,ts
++ 2kdd=][
++ ENDTEST
++ 
++ void func(int a
++ #if defined(FOO)
++                , int b
++                , int c
++ #endif
++               )
++ {
++ }
++ 
++ STARTTEST
++ :set cino=(0
++ 2kdd=][
++ ENDTEST
++ 
++ void
++ func(int a
++ #if defined(FOO)
++                , int b
++                , int c
++ #endif
++               )
++ {
++ }
++ 
++ STARTTEST
+  :g/^STARTTEST/.,/^ENDTEST/d
+  :1;/start of AUTO/,$wq! test.out
+  ENDTEST
+*** ../vim-7.3.163/src/testdir/test3.ok        2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test3.ok       2011-04-28 12:54:04.000000000 +0200
+***************
+*** 1183,1185 ****
+--- 1183,1206 ----
+               foo;
+  }
+  
++ 
++ void func(int a
++ #if defined(FOO)
++                , int b
++                , int c
++ #endif
++               )
++ {
++ }
++ 
++ 
++      void
++ func(int a
++ #if defined(FOO)
++       , int b
++       , int c
++ #endif
++      )
++ {
++ }
++ 
+*** ../vim-7.3.163/src/version.c       2011-04-28 12:56:57.000000000 +0200
+--- src/version.c      2011-04-28 12:59:55.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     164,
+  /**/
+
+-- 
+Due knot trussed yore spell chequer two fined awl miss steaks.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.165.patch0 b/vim/patches/vim-7.3.165.patch0
new file mode 100644 (file)
index 0000000..2725259
--- /dev/null
@@ -0,0 +1,47 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.165
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.165
+Problem:    ":find" completion does not escape spaces in a directory name.
+           (Isz)
+Solution:   Add backslashes for EXPAND_FILES_IN_PATH. (Carlo Teubner)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.3.164/src/ex_getln.c      2010-12-02 16:01:23.000000000 +0100
+--- src/ex_getln.c     2011-04-28 12:52:12.000000000 +0200
+***************
+*** 3702,3707 ****
+--- 3702,3708 ----
+      if (options & WILD_ESCAPE)
+      {
+       if (xp->xp_context == EXPAND_FILES
++              || xp->xp_context == EXPAND_FILES_IN_PATH
+               || xp->xp_context == EXPAND_SHELLCMD
+               || xp->xp_context == EXPAND_BUFFERS
+               || xp->xp_context == EXPAND_DIRECTORIES)
+*** ../vim-7.3.164/src/version.c       2011-04-28 13:01:59.000000000 +0200
+--- src/version.c      2011-04-28 17:17:53.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     165,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+38. You wake up at 3 a.m. to go to the bathroom and stop and check your e-mail
+    on the way back to bed.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.166.patch0 b/vim/patches/vim-7.3.166.patch0
new file mode 100644 (file)
index 0000000..93c6ed3
--- /dev/null
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.166
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.166
+Problem:    Buffer on the stack may be too big
+Solution:   Allocate the space.
+Files:     src/option.c
+
+
+*** ../vim-7.3.165/src/option.c        2011-04-28 12:56:57.000000000 +0200
+--- src/option.c       2011-04-15 20:49:54.000000000 +0200
+***************
+*** 9185,9191 ****
+      int              expand;
+  {
+      char_u   *s;
+!     char_u   buf[MAXPATHL];
+  
+      if (fprintf(fd, "%s %s=", cmd, name) < 0)
+       return FAIL;
+--- 9185,9191 ----
+      int              expand;
+  {
+      char_u   *s;
+!     char_u   *buf;
+  
+      if (fprintf(fd, "%s %s=", cmd, name) < 0)
+       return FAIL;
+***************
+*** 9203,9211 ****
+--- 9203,9218 ----
+       }
+       else if (expand)
+       {
++          buf = alloc(MAXPATHL);
++          if (buf == NULL)
++              return FAIL;
+           home_replace(NULL, *valuep, buf, MAXPATHL, FALSE);
+           if (put_escstr(fd, buf, 2) == FAIL)
++          {
++              vim_free(buf);
+               return FAIL;
++          }
++          vim_free(buf);
+       }
+       else if (put_escstr(fd, *valuep, 2) == FAIL)
+           return FAIL;
+*** ../vim-7.3.165/src/version.c       2011-04-28 17:21:49.000000000 +0200
+--- src/version.c      2011-04-28 17:23:24.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     166,
+  /**/
+
+-- 
+He who laughs last, thinks slowest.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.167.patch0 b/vim/patches/vim-7.3.167.patch0
new file mode 100644 (file)
index 0000000..4a6de89
--- /dev/null
@@ -0,0 +1,96 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.167
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.167
+Problem:    When using the internal grep QuickFixCmdPost is not triggered.
+           (Yukihiro Nakadaira)
+Solution:   Change the place where autocommands are triggered.
+Files:     src/quickfix.c
+
+
+*** ../vim-7.3.166/src/quickfix.c      2011-04-11 21:35:03.000000000 +0200
+--- src/quickfix.c     2011-04-28 13:28:03.000000000 +0200
+***************
+*** 2742,2747 ****
+--- 2742,2754 ----
+  #ifdef FEAT_AUTOCMD
+      char_u   *au_name = NULL;
+  
++     /* Redirect ":grep" to ":vimgrep" if 'grepprg' is "internal". */
++     if (grep_internal(eap->cmdidx))
++     {
++      ex_vimgrep(eap);
++      return;
++     }
++ 
+      switch (eap->cmdidx)
+      {
+       case CMD_make:      au_name = (char_u *)"make"; break;
+***************
+*** 2763,2775 ****
+      }
+  #endif
+  
+-     /* Redirect ":grep" to ":vimgrep" if 'grepprg' is "internal". */
+-     if (grep_internal(eap->cmdidx))
+-     {
+-      ex_vimgrep(eap);
+-      return;
+-     }
+- 
+      if (eap->cmdidx == CMD_lmake || eap->cmdidx == CMD_lgrep
+       || eap->cmdidx == CMD_lgrepadd)
+       wp = curwin;
+--- 2770,2775 ----
+***************
+*** 3057,3066 ****
+  
+      switch (eap->cmdidx)
+      {
+!      case CMD_vimgrep: au_name = (char_u *)"vimgrep"; break;
+!      case CMD_lvimgrep: au_name = (char_u *)"lvimgrep"; break;
+!      case CMD_vimgrepadd: au_name = (char_u *)"vimgrepadd"; break;
+       case CMD_lvimgrepadd: au_name = (char_u *)"lvimgrepadd"; break;
+       default: break;
+      }
+      if (au_name != NULL)
+--- 3057,3070 ----
+  
+      switch (eap->cmdidx)
+      {
+!      case CMD_vimgrep:     au_name = (char_u *)"vimgrep"; break;
+!      case CMD_lvimgrep:    au_name = (char_u *)"lvimgrep"; break;
+!      case CMD_vimgrepadd:  au_name = (char_u *)"vimgrepadd"; break;
+       case CMD_lvimgrepadd: au_name = (char_u *)"lvimgrepadd"; break;
++      case CMD_grep:        au_name = (char_u *)"grep"; break;
++      case CMD_lgrep:       au_name = (char_u *)"lgrep"; break;
++      case CMD_grepadd:     au_name = (char_u *)"grepadd"; break;
++      case CMD_lgrepadd:    au_name = (char_u *)"lgrepadd"; break;
+       default: break;
+      }
+      if (au_name != NULL)
+*** ../vim-7.3.166/src/version.c       2011-04-28 17:24:54.000000000 +0200
+--- src/version.c      2011-04-28 17:26:17.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     167,
+  /**/
+
+-- 
+Micro$oft: where do you want to go today?
+    Linux: where do you want to go tomorrow?
+  FreeBSD: are you guys coming, or what?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.168.patch0 b/vim/patches/vim-7.3.168.patch0
new file mode 100644 (file)
index 0000000..3d6fe94
--- /dev/null
@@ -0,0 +1,82 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.168
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.168
+Problem:    When the second argument of input() contains a CR the text up to
+           that is used without asking the user. (Yasuhiro Matsumoto)
+Solution:   Change CR, NL and ESC in the text to a space.
+Files:     src/getchar.c
+
+
+*** ../vim-7.3.167/src/getchar.c       2011-03-22 13:07:19.000000000 +0100
+--- src/getchar.c      2011-04-28 14:50:26.000000000 +0200
+***************
+*** 635,645 ****
+--- 635,648 ----
+  /*
+   * Stuff "s" into the stuff buffer, leaving special key codes unmodified and
+   * escaping other K_SPECIAL and CSI bytes.
++  * Change CR, LF and ESC into a space.
+   */
+      void
+  stuffReadbuffSpec(s)
+      char_u   *s;
+  {
++     int c;
++ 
+      while (*s != NUL)
+      {
+       if (*s == K_SPECIAL && s[1] != NUL && s[2] != NUL)
+***************
+*** 649,659 ****
+           s += 3;
+       }
+       else
+  #ifdef FEAT_MBYTE
+!          stuffcharReadbuff(mb_ptr2char_adv(&s));
+  #else
+!          stuffcharReadbuff(*s++);
+  #endif
+      }
+  }
+  #endif
+--- 652,667 ----
+           s += 3;
+       }
+       else
++      {
+  #ifdef FEAT_MBYTE
+!          c = mb_ptr2char_adv(&s);
+  #else
+!          c = *s++;
+  #endif
++          if (c == CAR || c == NL || c == ESC)
++              c = ' ';
++          stuffcharReadbuff(c);
++      }
+      }
+  }
+  #endif
+*** ../vim-7.3.167/src/version.c       2011-04-28 17:27:05.000000000 +0200
+--- src/version.c      2011-04-28 17:28:36.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     168,
+  /**/
+
+-- 
+Everyone has a photographic memory. Some don't have film.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.169.patch0 b/vim/patches/vim-7.3.169.patch0
new file mode 100644 (file)
index 0000000..056ca99
--- /dev/null
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.169
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.169
+Problem:    Freeing memory already freed, warning from static code analyzer.
+Solution:   Initialize pointers to NULL, correct use of "mustfree". (partly by
+           Dominique Pelle)
+Files:     src/mis1.c
+
+
+*** ../vim-7.3.168/src/misc1.c 2011-04-28 13:01:59.000000000 +0200
+--- src/misc1.c        2011-04-28 17:42:00.000000000 +0200
+***************
+*** 3505,3511 ****
+      if (enc_utf8 && var != NULL)
+      {
+       int     len;
+!      char_u  *pp;
+  
+       /* Convert from active codepage to UTF-8.  Other conversions are
+        * not done, because they would fail for non-ASCII characters. */
+--- 3505,3511 ----
+      if (enc_utf8 && var != NULL)
+      {
+       int     len;
+!      char_u  *pp = NULL;
+  
+       /* Convert from active codepage to UTF-8.  Other conversions are
+        * not done, because they would fail for non-ASCII characters. */
+***************
+*** 3872,3882 ****
+   * Vim's version of getenv().
+   * Special handling of $HOME, $VIM and $VIMRUNTIME.
+   * Also does ACP to 'enc' conversion for Win32.
+   */
+      char_u *
+  vim_getenv(name, mustfree)
+      char_u   *name;
+!     int              *mustfree;      /* set to TRUE when returned is allocated */
+  {
+      char_u   *p;
+      char_u   *pend;
+--- 3872,3884 ----
+   * Vim's version of getenv().
+   * Special handling of $HOME, $VIM and $VIMRUNTIME.
+   * Also does ACP to 'enc' conversion for Win32.
++  * "mustfree" is set to TRUE when returned is allocated, it must be
++  * initialized to FALSE by the caller.
+   */
+      char_u *
+  vim_getenv(name, mustfree)
+      char_u   *name;
+!     int              *mustfree;
+  {
+      char_u   *p;
+      char_u   *pend;
+***************
+*** 3898,3904 ****
+       if (enc_utf8)
+       {
+           int     len;
+!          char_u  *pp;
+  
+           /* Convert from active codepage to UTF-8.  Other conversions are
+            * not done, because they would fail for non-ASCII characters. */
+--- 3900,3906 ----
+       if (enc_utf8)
+       {
+           int     len;
+!          char_u  *pp = NULL;
+  
+           /* Convert from active codepage to UTF-8.  Other conversions are
+            * not done, because they would fail for non-ASCII characters. */
+***************
+*** 3942,3948 ****
+           if (enc_utf8)
+           {
+               int     len;
+!              char_u  *pp;
+  
+               /* Convert from active codepage to UTF-8.  Other conversions
+                * are not done, because they would fail for non-ASCII
+--- 3944,3950 ----
+           if (enc_utf8)
+           {
+               int     len;
+!              char_u  *pp = NULL;
+  
+               /* Convert from active codepage to UTF-8.  Other conversions
+                * are not done, because they would fail for non-ASCII
+***************
+*** 3950,3956 ****
+               acp_to_enc(p, (int)STRLEN(p), &pp, &len);
+               if (pp != NULL)
+               {
+!                  if (mustfree)
+                       vim_free(p);
+                   p = pp;
+                   *mustfree = TRUE;
+--- 3952,3958 ----
+               acp_to_enc(p, (int)STRLEN(p), &pp, &len);
+               if (pp != NULL)
+               {
+!                  if (*mustfree)
+                       vim_free(p);
+                   p = pp;
+                   *mustfree = TRUE;
+*** ../vim-7.3.168/src/version.c       2011-04-28 17:30:05.000000000 +0200
+--- src/version.c      2011-04-28 17:48:04.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     169,
+  /**/
+
+-- 
+A day without sunshine is like, well, night.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.170.patch0 b/vim/patches/vim-7.3.170.patch0
new file mode 100644 (file)
index 0000000..933173e
--- /dev/null
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.170
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.170
+Problem:    VMS Makefile for testing was not updated for test77.
+Solution:   Add test77 to the Makefile.
+Files:     src/testdir/Make_vms.mms
+
+
+*** ../vim-7.3.169/src/testdir/Make_vms.mms    2010-11-10 16:54:16.000000000 +0100
+--- src/testdir/Make_vms.mms   2011-03-03 17:04:56.000000000 +0100
+***************
+*** 4,10 ****
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2010 Nov 10
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2011 Mar 03
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+***************
+*** 74,80 ****
+        test56.out test57.out test60.out \
+        test61.out test62.out test63.out test64.out test65.out \
+        test66.out test67.out test68.out test69.out \
+!       test71.out test72.out test74.out test75.out test76.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+--- 74,81 ----
+        test56.out test57.out test60.out \
+        test61.out test62.out test63.out test64.out test65.out \
+        test66.out test67.out test68.out test69.out \
+!       test71.out test72.out test74.out test75.out test76.out \
+!       test77.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.169/src/version.c       2011-04-28 17:48:39.000000000 +0200
+--- src/version.c      2011-04-28 19:04:33.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     170,
+  /**/
+
+-- 
+The users that I support would double-click on a landmine to find out
+what happens.                          -- A system administrator
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.171.patch0 b/vim/patches/vim-7.3.171.patch0
new file mode 100644 (file)
index 0000000..f965e0a
--- /dev/null
@@ -0,0 +1,142 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.171
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.171
+Problem:    When the clipboard isn't supported: ":yank*" gives a confusing
+           error message.
+Solution:   Specifically mention that the register name is invalid.
+           (Jean-Rene David)
+Files:     runtime/doc/change.txt, src/ex_docmd.c, src/globals.h
+
+
+*** ../vim-7.3.170/runtime/doc/change.txt      2010-08-15 21:57:18.000000000 +0200
+--- runtime/doc/change.txt     2011-05-05 13:48:00.000000000 +0200
+***************
+*** 916,923 ****
+  {Visual}["x]Y                Yank the highlighted lines [into register x] (for
+                       {Visual} see |Visual-mode|).  {not in Vi}
+  
+!                                                      *:y* *:yank*
+! :[range]y[ank] [x]   Yank [range] lines [into register x].
+  
+  :[range]y[ank] [x] {count}
+                       Yank {count} lines, starting with last line number
+--- 917,926 ----
+  {Visual}["x]Y                Yank the highlighted lines [into register x] (for
+                       {Visual} see |Visual-mode|).  {not in Vi}
+  
+!                                                      *:y* *:yank* *E850*
+! :[range]y[ank] [x]   Yank [range] lines [into register x]. Yanking to the
+!                      "* or "+ registers is possible only in GUI versions or
+!                      when the |+xterm_clipboard| feature is included.
+  
+  :[range]y[ank] [x] {count}
+                       Yank {count} lines, starting with last line number
+*** ../vim-7.3.170/src/ex_docmd.c      2011-04-11 21:35:03.000000000 +0200
+--- src/ex_docmd.c     2011-05-05 13:48:57.000000000 +0200
+***************
+*** 2424,2448 ****
+      if (       (ea.argt & REGSTR)
+           && *ea.arg != NUL
+  #ifdef FEAT_USR_CMDS
+-          && valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put
+-                                                 && USER_CMDIDX(ea.cmdidx)))
+           /* Do not allow register = for user commands */
+           && (!USER_CMDIDX(ea.cmdidx) || *ea.arg != '=')
+- #else
+-          && valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put)
+  #endif
+           && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)))
+      {
+!      ea.regname = *ea.arg++;
+! #ifdef FEAT_EVAL
+!      /* for '=' register: accept the rest of the line as an expression */
+!      if (ea.arg[-1] == '=' && ea.arg[0] != NUL)
+       {
+!          set_expr_line(vim_strsave(ea.arg));
+!          ea.arg += STRLEN(ea.arg);
+       }
+  #endif
+!      ea.arg = skipwhite(ea.arg);
+      }
+  
+      /*
+--- 2424,2462 ----
+      if (       (ea.argt & REGSTR)
+           && *ea.arg != NUL
+  #ifdef FEAT_USR_CMDS
+           /* Do not allow register = for user commands */
+           && (!USER_CMDIDX(ea.cmdidx) || *ea.arg != '=')
+  #endif
+           && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)))
+      {
+! #ifndef FEAT_CLIPBOARD
+!      /* check these explicitly for a more specific error message */
+!      if (*ea.arg == '*' || *ea.arg == '+')
+       {
+!          errormsg = (char_u *)_(e_invalidreg);
+!          goto doend;
+       }
+  #endif
+!      if (
+! #ifdef FEAT_USR_CMDS
+!          valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put
+!                                                 && USER_CMDIDX(ea.cmdidx)))
+! #else
+!          valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put)
+! #endif
+!         )
+!      {
+!          ea.regname = *ea.arg++;
+! #ifdef FEAT_EVAL
+!          /* for '=' register: accept the rest of the line as an expression */
+!          if (ea.arg[-1] == '=' && ea.arg[0] != NUL)
+!          {
+!              set_expr_line(vim_strsave(ea.arg));
+!              ea.arg += STRLEN(ea.arg);
+!          }
+! #endif
+!          ea.arg = skipwhite(ea.arg);
+!      }
+      }
+  
+      /*
+*** ../vim-7.3.170/src/globals.h       2011-02-15 17:39:14.000000000 +0100
+--- src/globals.h      2011-05-05 13:47:44.000000000 +0200
+***************
+*** 1561,1566 ****
+--- 1561,1569 ----
+       (defined(FEAT_INS_EXPAND) && defined(FEAT_COMPL_FUNC))
+  EXTERN char_u e_notset[]     INIT(= N_("E764: Option '%s' is not set"));
+  #endif
++ #ifndef FEAT_CLIPBOARD
++ EXTERN char_u e_invalidreg[]    INIT(= N_("E850: Invalid register name"));
++ #endif
+  
+  #ifdef MACOS_X_UNIX
+  EXTERN short disallow_gui    INIT(= FALSE);
+*** ../vim-7.3.170/src/version.c       2011-04-28 19:05:01.000000000 +0200
+--- src/version.c      2011-05-05 14:24:39.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     171,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+53. To find out what time it is, you send yourself an e-mail and check the
+    "Date:" field.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.172.patch0 b/vim/patches/vim-7.3.172.patch0
new file mode 100644 (file)
index 0000000..66a7852
--- /dev/null
@@ -0,0 +1,268 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.172
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.172
+Problem:    MS-Windows: rename() might delete the file if the name differs but
+           it's actually the same file.
+Solution:   Use the file handle to check if it's the same file. (Yukihiro
+           Nakadaira)
+Files:     src/if_cscope.c, src/fileio.c, src/os_win32.c,
+           src/proto/os_win32.pro, src/vim.h
+
+
+*** ../vim-7.3.171/src/if_cscope.c     2011-03-03 15:01:25.000000000 +0100
+--- src/if_cscope.c    2011-05-05 16:16:38.000000000 +0200
+***************
+*** 1412,1428 ****
+  {
+      short    i, j;
+  #ifndef UNIX
+-     HANDLE   hFile;
+      BY_HANDLE_FILE_INFORMATION bhfi;
+  
+-     vim_memset(&bhfi, 0, sizeof(bhfi));
+      /* On windows 9x GetFileInformationByHandle doesn't work, so skip it */
+      if (!mch_windows95())
+      {
+!      hFile = CreateFile(fname, FILE_READ_ATTRIBUTES, 0, NULL, OPEN_EXISTING,
+!                                               FILE_ATTRIBUTE_NORMAL, NULL);
+!      if (hFile == INVALID_HANDLE_VALUE)
+       {
+           if (p_csverbose)
+           {
+               char *cant_msg = _("E625: cannot open cscope database: %s");
+--- 1412,1426 ----
+  {
+      short    i, j;
+  #ifndef UNIX
+      BY_HANDLE_FILE_INFORMATION bhfi;
+  
+      /* On windows 9x GetFileInformationByHandle doesn't work, so skip it */
+      if (!mch_windows95())
+      {
+!      switch (win32_fileinfo(fname, &bhfi))
+       {
++      case FILEINFO_ENC_FAIL:         /* enc_to_utf16() failed */
++      case FILEINFO_READ_FAIL:        /* CreateFile() failed */
+           if (p_csverbose)
+           {
+               char *cant_msg = _("E625: cannot open cscope database: %s");
+***************
+*** 1438,1452 ****
+                   (void)EMSG2(cant_msg, fname);
+           }
+           return -1;
+!      }
+!      if (!GetFileInformationByHandle(hFile, &bhfi))
+!      {
+!          CloseHandle(hFile);
+           if (p_csverbose)
+               (void)EMSG(_("E626: cannot get cscope database information"));
+           return -1;
+       }
+-      CloseHandle(hFile);
+      }
+  #endif
+  
+--- 1436,1447 ----
+                   (void)EMSG2(cant_msg, fname);
+           }
+           return -1;
+! 
+!      case FILEINFO_INFO_FAIL:    /* GetFileInformationByHandle() failed */
+           if (p_csverbose)
+               (void)EMSG(_("E626: cannot get cscope database information"));
+           return -1;
+       }
+      }
+  #endif
+  
+*** ../vim-7.3.171/src/fileio.c        2011-04-11 21:35:03.000000000 +0200
+--- src/fileio.c       2011-05-05 16:22:22.000000000 +0200
+***************
+*** 6555,6560 ****
+--- 6555,6575 ----
+           use_tmp_file = TRUE;
+      }
+  #endif
++ #ifdef WIN3264
++     {
++      BY_HANDLE_FILE_INFORMATION info1, info2;
++ 
++      /* It's possible for the source and destination to be the same file.
++       * In that case go through a temp file name.  This makes rename("foo",
++       * "./foo") a no-op (in a complicated way). */
++      if (win32_fileinfo(from, &info1) == FILEINFO_OK
++              && win32_fileinfo(to, &info2) == FILEINFO_OK
++              && info1.dwVolumeSerialNumber == info2.dwVolumeSerialNumber
++              && info1.nFileIndexHigh == info2.nFileIndexHigh
++              && info1.nFileIndexLow == info2.nFileIndexLow)
++          use_tmp_file = TRUE;
++     }
++ #endif
+  
+  #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME)
+      if (use_tmp_file)
+*** ../vim-7.3.171/src/os_win32.c      2011-02-01 13:48:47.000000000 +0100
+--- src/os_win32.c     2011-05-05 16:24:17.000000000 +0200
+***************
+*** 2645,2669 ****
+      int
+  mch_is_linked(char_u *fname)
+  {
+      HANDLE   hFile;
+!     int              res = 0;
+!     BY_HANDLE_FILE_INFORMATION inf;
+  #ifdef FEAT_MBYTE
+      WCHAR    *wn = NULL;
+  
+      if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+       wn = enc_to_utf16(fname, NULL);
+      if (wn != NULL)
+      {
+       hFile = CreateFileW(wn,         /* file name */
+                   GENERIC_READ,       /* access mode */
+!                  0,                  /* share mode */
+                   NULL,               /* security descriptor */
+                   OPEN_EXISTING,      /* creation disposition */
+!                  0,                  /* file attributes */
+                   NULL);              /* handle to template file */
+       if (hFile == INVALID_HANDLE_VALUE
+!              && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
+       {
+           /* Retry with non-wide function (for Windows 98). */
+           vim_free(wn);
+--- 2645,2688 ----
+      int
+  mch_is_linked(char_u *fname)
+  {
++     BY_HANDLE_FILE_INFORMATION info;
++ 
++     return win32_fileinfo(fname, &info) == FILEINFO_OK
++                                                 && info.nNumberOfLinks > 1;
++ }
++ 
++ /*
++  * Get the by-handle-file-information for "fname".
++  * Returns FILEINFO_OK when OK.
++  * returns FILEINFO_ENC_FAIL when enc_to_utf16() failed.
++  * Returns FILEINFO_READ_FAIL when CreateFile() failed.
++  * Returns FILEINFO_INFO_FAIL when GetFileInformationByHandle() failed.
++  */
++     int
++ win32_fileinfo(char_u *fname, BY_HANDLE_FILE_INFORMATION *info)
++ {
+      HANDLE   hFile;
+!     int              res = FILEINFO_READ_FAIL;
+  #ifdef FEAT_MBYTE
+      WCHAR    *wn = NULL;
+  
+      if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
++     {
+       wn = enc_to_utf16(fname, NULL);
++      if (wn == NULL)
++          res = FILEINFO_ENC_FAIL;
++     }
+      if (wn != NULL)
+      {
+       hFile = CreateFileW(wn,         /* file name */
+                   GENERIC_READ,       /* access mode */
+!                  FILE_SHARE_READ | FILE_SHARE_WRITE, /* share mode */
+                   NULL,               /* security descriptor */
+                   OPEN_EXISTING,      /* creation disposition */
+!                  FILE_FLAG_BACKUP_SEMANTICS, /* file attributes */
+                   NULL);              /* handle to template file */
+       if (hFile == INVALID_HANDLE_VALUE
+!                            && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
+       {
+           /* Retry with non-wide function (for Windows 98). */
+           vim_free(wn);
+***************
+*** 2674,2690 ****
+  #endif
+       hFile = CreateFile(fname,       /* file name */
+                   GENERIC_READ,       /* access mode */
+!                  0,                  /* share mode */
+                   NULL,               /* security descriptor */
+                   OPEN_EXISTING,      /* creation disposition */
+!                  0,                  /* file attributes */
+                   NULL);              /* handle to template file */
+  
+      if (hFile != INVALID_HANDLE_VALUE)
+      {
+!      if (GetFileInformationByHandle(hFile, &inf) != 0
+!              && inf.nNumberOfLinks > 1)
+!          res = 1;
+       CloseHandle(hFile);
+      }
+  
+--- 2693,2710 ----
+  #endif
+       hFile = CreateFile(fname,       /* file name */
+                   GENERIC_READ,       /* access mode */
+!                  FILE_SHARE_READ | FILE_SHARE_WRITE, /* share mode */
+                   NULL,               /* security descriptor */
+                   OPEN_EXISTING,      /* creation disposition */
+!                  FILE_FLAG_BACKUP_SEMANTICS, /* file attributes */
+                   NULL);              /* handle to template file */
+  
+      if (hFile != INVALID_HANDLE_VALUE)
+      {
+!      if (GetFileInformationByHandle(hFile, info) != 0)
+!          res = FILEINFO_OK;
+!      else
+!          res = FILEINFO_INFO_FAIL;
+       CloseHandle(hFile);
+      }
+  
+*** ../vim-7.3.171/src/proto/os_win32.pro      2010-10-23 14:02:48.000000000 +0200
+--- src/proto/os_win32.pro     2011-05-05 16:17:42.000000000 +0200
+***************
+*** 21,26 ****
+--- 21,27 ----
+  void mch_hide __ARGS((char_u *name));
+  int mch_isdir __ARGS((char_u *name));
+  int mch_is_linked __ARGS((char_u *fname));
++ int win32_fileinfo __ARGS((char_u *name, BY_HANDLE_FILE_INFORMATION *lpFileInfo));
+  int mch_writable __ARGS((char_u *name));
+  int mch_can_exe __ARGS((char_u *name));
+  int mch_nodetype __ARGS((char_u *name));
+*** ../vim-7.3.171/src/vim.h   2011-04-11 21:35:03.000000000 +0200
+--- src/vim.h  2011-05-05 16:16:57.000000000 +0200
+***************
+*** 2217,2220 ****
+--- 2217,2226 ----
+  #define KEYLEN_PART_MAP -2   /* keylen value for incomplete mapping */
+  #define KEYLEN_REMOVED  9999 /* keylen value for removed sequence */
+  
++ /* Return values from win32_fileinfo(). */
++ #define FILEINFO_OK       0
++ #define FILEINFO_ENC_FAIL    1       /* enc_to_utf16() failed */
++ #define FILEINFO_READ_FAIL   2       /* CreateFile() failed */
++ #define FILEINFO_INFO_FAIL   3       /* GetFileInformationByHandle() failed */
++ 
+  #endif /* VIM__H */
+*** ../vim-7.3.171/src/version.c       2011-05-05 14:26:37.000000000 +0200
+--- src/version.c      2011-05-05 16:39:35.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     172,
+  /**/
+
+-- 
+Q: What is a patch 22?
+A: A patch you need to include to make it possible to include patches.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.173.patch0 b/vim/patches/vim-7.3.173.patch0
new file mode 100644 (file)
index 0000000..ac8cffb
--- /dev/null
@@ -0,0 +1,79 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.173
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.173
+Problem:    After using setqflist() to make the quickfix list empty ":cwindow"
+           may open the window anyway.  Also after ":vimgrep".
+Solution:   Correctly check whether the list is empty. (Ingo Karkat)
+Files:     src/quickfix.c
+
+
+*** ../vim-7.3.172/src/quickfix.c      2011-04-28 17:27:05.000000000 +0200
+--- src/quickfix.c     2011-05-05 16:55:47.000000000 +0200
+***************
+*** 1164,1170 ****
+  
+       /* When no valid entries are present in the list, qf_ptr points to
+        * the first item in the list */
+!      if (to_qfl->qf_nonevalid == TRUE)
+           to_qfl->qf_ptr = to_qfl->qf_start;
+      }
+  
+--- 1164,1170 ----
+  
+       /* When no valid entries are present in the list, qf_ptr points to
+        * the first item in the list */
+!      if (to_qfl->qf_nonevalid)
+           to_qfl->qf_ptr = to_qfl->qf_start;
+      }
+  
+***************
+*** 2243,2248 ****
+--- 2243,2249 ----
+       * it if we have errors; otherwise, leave it closed.
+       */
+      if (qi->qf_lists[qi->qf_curlist].qf_nonevalid
++          || qi->qf_lists[qi->qf_curlist].qf_count == 0
+           || qi->qf_curlist >= qi->qf_listcount)
+      {
+       if (win != NULL)
+***************
+*** 3711,3717 ****
+      }
+  
+      if (qi->qf_lists[qi->qf_curlist].qf_index == 0)
+!      /* empty list or no valid entry */
+       qi->qf_lists[qi->qf_curlist].qf_nonevalid = TRUE;
+      else
+       qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
+--- 3712,3718 ----
+      }
+  
+      if (qi->qf_lists[qi->qf_curlist].qf_index == 0)
+!      /* no valid entry */
+       qi->qf_lists[qi->qf_curlist].qf_nonevalid = TRUE;
+      else
+       qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
+*** ../vim-7.3.172/src/version.c       2011-05-05 16:41:19.000000000 +0200
+--- src/version.c      2011-05-05 17:11:57.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     173,
+  /**/
+
+-- 
+"I can't complain, but sometimes I still do."   (Joe Walsh)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.174.patch0 b/vim/patches/vim-7.3.174.patch0
new file mode 100644 (file)
index 0000000..33d6003
--- /dev/null
@@ -0,0 +1,109 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.174
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.174
+Problem:    When Exuberant ctags binary is exctags it's not found.
+Solution:   Add configure check for exctags. (Hong Xu)
+Files:     src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.173/src/configure.in    2011-02-09 17:42:53.000000000 +0100
+--- src/configure.in   2011-05-05 17:18:21.000000000 +0200
+***************
+*** 2619,2625 ****
+    dnl  On HP-UX 10.10 termcap or termlib should be used instead of
+    dnl  curses, because curses is much slower.
+    dnl  Newer versions of ncurses are preferred over anything, except
+!   dnl  when tinfo has been split off, it conains all we need.
+    dnl  Older versions of ncurses have bugs, get a new one!
+    dnl  Digital Unix (OSF1) should use curses (Ronald Schild).
+    dnl  On SCO Openserver should prefer termlib (Roger Cornelius).
+--- 2619,2625 ----
+    dnl  On HP-UX 10.10 termcap or termlib should be used instead of
+    dnl  curses, because curses is much slower.
+    dnl  Newer versions of ncurses are preferred over anything, except
+!   dnl  when tinfo has been split off, it contains all we need.
+    dnl  Older versions of ncurses have bugs, get a new one!
+    dnl  Digital Unix (OSF1) should use curses (Ronald Schild).
+    dnl  On SCO Openserver should prefer termlib (Roger Cornelius).
+***************
+*** 3370,3376 ****
+  AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
+  
+  dnl Check how we can run ctags.  Default to "ctags" when nothing works.
+! dnl --version for Exuberant ctags (preferred)
+  dnl       Add --fields=+S to get function signatures for omni completion.
+  dnl -t for typedefs (many ctags have this)
+  dnl -s for static functions (Elvis ctags only?)
+--- 3370,3376 ----
+  AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
+  
+  dnl Check how we can run ctags.  Default to "ctags" when nothing works.
+! dnl Use --version to detect Exuberant ctags (preferred)
+  dnl       Add --fields=+S to get function signatures for omni completion.
+  dnl -t for typedefs (many ctags have this)
+  dnl -s for static functions (Elvis ctags only?)
+***************
+*** 3378,3384 ****
+  dnl -i+m to test for older Exuberant ctags
+  AC_MSG_CHECKING(how to create tags)
+  test -f tags && mv tags tags.save
+! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+    TAGPRG="ctags -I INIT+ --fields=+S"
+  else
+    TAGPRG="ctags"
+--- 3378,3386 ----
+  dnl -i+m to test for older Exuberant ctags
+  AC_MSG_CHECKING(how to create tags)
+  test -f tags && mv tags tags.save
+! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+!   TAGPRG="exctags -I INIT+ --fields=+S"
+! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+    TAGPRG="ctags -I INIT+ --fields=+S"
+  else
+    TAGPRG="ctags"
+*** ../vim-7.3.173/src/auto/configure  2011-02-09 17:42:53.000000000 +0100
+--- src/auto/configure 2011-05-05 17:19:26.000000000 +0200
+***************
+*** 12031,12037 ****
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
+  $as_echo_n "checking how to create tags... " >&6; }
+  test -f tags && mv tags tags.save
+! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+    TAGPRG="ctags -I INIT+ --fields=+S"
+  else
+    TAGPRG="ctags"
+--- 12031,12039 ----
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
+  $as_echo_n "checking how to create tags... " >&6; }
+  test -f tags && mv tags tags.save
+! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+!   TAGPRG="exctags -I INIT+ --fields=+S"
+! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+    TAGPRG="ctags -I INIT+ --fields=+S"
+  else
+    TAGPRG="ctags"
+*** ../vim-7.3.173/src/version.c       2011-05-05 17:14:07.000000000 +0200
+--- src/version.c      2011-05-05 17:19:37.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     174,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+54. You start tilting your head sideways to smile. :-)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.175.patch0 b/vim/patches/vim-7.3.175.patch0
new file mode 100644 (file)
index 0000000..57fbc4a
--- /dev/null
@@ -0,0 +1,50 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.175
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.175
+Problem:    When 'colorcolumn' is set locally to a window, ":new" opens a
+           window with the same highlighting but 'colorcolumn' is empty.
+           (Tyru)
+Solution:   Call check_colorcolumn() after clearing and copying options.
+           (Christian Brabandt)
+Files:     src/buffer.c
+
+
+*** ../vim-7.3.174/src/buffer.c        2011-04-11 16:56:29.000000000 +0200
+--- src/buffer.c       2011-05-05 17:28:24.000000000 +0200
+***************
+*** 2527,2532 ****
+--- 2527,2535 ----
+      if (p_fdls >= 0)
+       curwin->w_p_fdl = p_fdls;
+  #endif
++ #ifdef FEAT_SYN_HL
++     check_colorcolumn(curwin);
++ #endif
+  }
+  
+  /*
+*** ../vim-7.3.174/src/version.c       2011-05-05 17:23:58.000000000 +0200
+--- src/version.c      2011-05-05 17:30:32.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     175,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+55. You ask your doctor to implant a gig in your brain.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.176.patch0 b/vim/patches/vim-7.3.176.patch0
new file mode 100644 (file)
index 0000000..fcf4880
--- /dev/null
@@ -0,0 +1,165 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.176
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.176
+Problem:    Ruby linking doesn't work properly on Mac OS X.
+Solution:   Fix the configure check for Ruby. (Bjorn Winckler)
+Files:     src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.175/src/configure.in    2011-05-05 17:23:58.000000000 +0200
+--- src/configure.in   2011-05-05 18:03:38.000000000 +0200
+***************
+*** 1387,1396 ****
+  AC_MSG_RESULT($enable_rubyinterp)
+  if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
+    AC_MSG_CHECKING(--with-ruby-command argument)
+    AC_ARG_WITH(ruby-command, [  --with-ruby-command=RUBY  name of the Ruby command (default: ruby)],
+!      RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
+       RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
+-   AC_SUBST(vi_cv_path_ruby)
+    AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
+    if test "X$vi_cv_path_ruby" != "X"; then
+      AC_MSG_CHECKING(Ruby version)
+--- 1387,1396 ----
+  AC_MSG_RESULT($enable_rubyinterp)
+  if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
+    AC_MSG_CHECKING(--with-ruby-command argument)
++   AC_SUBST(vi_cv_path_ruby)
+    AC_ARG_WITH(ruby-command, [  --with-ruby-command=RUBY  name of the Ruby command (default: ruby)],
+!      RUBY_CMD="$withval"; vi_cv_path_ruby="$withval"; AC_MSG_RESULT($RUBY_CMD),
+       RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
+    AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
+    if test "X$vi_cv_path_ruby" != "X"; then
+      AC_MSG_CHECKING(Ruby version)
+***************
+*** 1412,1429 ****
+         RUBY_LIBS="$rubylibs"
+       fi
+       librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
+!      if test -f "$rubyhdrdir/$librubyarg"; then
+!        librubyarg="$rubyhdrdir/$librubyarg"
+!      else
+!        rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
+!        if test -f "$rubylibdir/$librubyarg"; then
+!          librubyarg="$rubylibdir/$librubyarg"
+!        elif test "$librubyarg" = "libruby.a"; then
+!          dnl required on Mac OS 10.3 where libruby.a doesn't exist
+!          librubyarg="-lruby"
+!        else
+!          librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
+!        fi
+       fi
+  
+       if test "X$librubyarg" != "X"; then
+--- 1412,1426 ----
+         RUBY_LIBS="$rubylibs"
+       fi
+       librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
+!      librubya=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBY_A"]])'`
+!   rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
+!      if test -f "$rubylibdir/$librubya"; then
+!        librubyarg="$librubyarg"
+!     RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+!   elif test "$librubyarg" = "libruby.a"; then
+!     dnl required on Mac OS 10.3 where libruby.a doesn't exist
+!     librubyarg="-lruby"
+!     RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+       fi
+  
+       if test "X$librubyarg" != "X"; then
+*** ../vim-7.3.175/src/auto/configure  2011-05-05 17:23:58.000000000 +0200
+--- src/auto/configure 2011-05-05 18:06:47.000000000 +0200
+***************
+*** 6218,6233 ****
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
+  $as_echo_n "checking --with-ruby-command argument... " >&6; }
+  
+  # Check whether --with-ruby-command was given.
+  if test "${with_ruby_command+set}" = set; then :
+!   withval=$with_ruby_command; RUBY_CMD="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY_CMD" >&5
+  $as_echo "$RUBY_CMD" >&6; }
+  else
+    RUBY_CMD="ruby"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: defaulting to $RUBY_CMD" >&5
+  $as_echo "defaulting to $RUBY_CMD" >&6; }
+  fi
+  
+- 
+    # Extract the first word of "$RUBY_CMD", so it can be a program name with args.
+  set dummy $RUBY_CMD; ac_word=$2
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+--- 6218,6233 ----
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
+  $as_echo_n "checking --with-ruby-command argument... " >&6; }
+  
++ 
+  # Check whether --with-ruby-command was given.
+  if test "${with_ruby_command+set}" = set; then :
+!   withval=$with_ruby_command; RUBY_CMD="$withval"; vi_cv_path_ruby="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY_CMD" >&5
+  $as_echo "$RUBY_CMD" >&6; }
+  else
+    RUBY_CMD="ruby"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: defaulting to $RUBY_CMD" >&5
+  $as_echo "defaulting to $RUBY_CMD" >&6; }
+  fi
+  
+    # Extract the first word of "$RUBY_CMD", so it can be a program name with args.
+  set dummy $RUBY_CMD; ac_word=$2
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+***************
+*** 6292,6308 ****
+         RUBY_LIBS="$rubylibs"
+       fi
+       librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBYARG"])'`
+!      if test -f "$rubyhdrdir/$librubyarg"; then
+!        librubyarg="$rubyhdrdir/$librubyarg"
+!      else
+!        rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["libdir"])'`
+!        if test -f "$rubylibdir/$librubyarg"; then
+!          librubyarg="$rubylibdir/$librubyarg"
+!        elif test "$librubyarg" = "libruby.a"; then
+!                  librubyarg="-lruby"
+!        else
+!          librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
+!        fi
+       fi
+  
+       if test "X$librubyarg" != "X"; then
+--- 6292,6305 ----
+         RUBY_LIBS="$rubylibs"
+       fi
+       librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBYARG"])'`
+!      librubya=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBY_A"])'`
+!   rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["libdir"])'`
+!      if test -f "$rubylibdir/$librubya"; then
+!        librubyarg="$librubyarg"
+!     RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+!   elif test "$librubyarg" = "libruby.a"; then
+!         librubyarg="-lruby"
+!     RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+       fi
+  
+       if test "X$librubyarg" != "X"; then
+*** ../vim-7.3.175/src/version.c       2011-05-05 17:32:40.000000000 +0200
+--- src/version.c      2011-05-05 18:08:52.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     176,
+  /**/
+
+-- 
+"I simultaneously try to keep my head in the clouds and my feet on the
+ground.  Sometimes it's a stretch, though."              -- Larry Wall
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.177.patch0 b/vim/patches/vim-7.3.177.patch0
new file mode 100644 (file)
index 0000000..895b3b1
--- /dev/null
@@ -0,0 +1,97 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.177
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.177
+Problem:    MS-Windows: mkdir() doesn't work properly when 'encoding' is
+           "utf-8".
+Solution:   Convert to utf-16. (Yukihiro Nakadaira)
+Files:     src/os_win32.c, src/os_win32.h, src/proto/os_win32.pro
+
+
+*** ../vim-7.3.176/src/os_win32.c      2011-05-05 16:41:19.000000000 +0200
+--- src/os_win32.c     2011-05-05 18:24:36.000000000 +0200
+***************
+*** 2640,2645 ****
+--- 2640,2669 ----
+  }
+  
+  /*
++  * Create directory "name".
++  * Return 0 on success, -1 on error.
++  */
++     int
++ mch_mkdir(char_u *name)
++ {
++ #ifdef FEAT_MBYTE
++     if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
++     {
++      WCHAR   *p;
++      int     retval;
++ 
++      p = enc_to_utf16(name, NULL);
++      if (p == NULL)
++          return -1;
++      retval = _wmkdir(p);
++      vim_free(p);
++      return retval;
++     }
++ #endif
++     return _mkdir(name);
++ }
++ 
++ /*
+   * Return TRUE if file "fname" has more than one link.
+   */
+      int
+*** ../vim-7.3.176/src/os_win32.h      2010-08-15 21:57:30.000000000 +0200
+--- src/os_win32.h     2011-05-05 18:25:44.000000000 +0200
+***************
+*** 191,195 ****
+  #ifdef __BORLANDC__
+  # define vim_mkdir(x, y) mkdir(x)
+  #else
+! # define vim_mkdir(x, y) _mkdir(x)
+  #endif
+--- 191,195 ----
+  #ifdef __BORLANDC__
+  # define vim_mkdir(x, y) mkdir(x)
+  #else
+! # define vim_mkdir(x, y) mch_mkdir(x)
+  #endif
+*** ../vim-7.3.176/src/proto/os_win32.pro      2011-05-05 16:41:19.000000000 +0200
+--- src/proto/os_win32.pro     2011-05-05 18:26:20.000000000 +0200
+***************
+*** 20,25 ****
+--- 20,26 ----
+  int mch_setperm __ARGS((char_u *name, long perm));
+  void mch_hide __ARGS((char_u *name));
+  int mch_isdir __ARGS((char_u *name));
++ int mch_mkdir __ARGS((char_u *name));
+  int mch_is_linked __ARGS((char_u *fname));
+  int win32_fileinfo __ARGS((char_u *name, BY_HANDLE_FILE_INFORMATION *lpFileInfo));
+  int mch_writable __ARGS((char_u *name));
+*** ../vim-7.3.176/src/version.c       2011-05-05 18:10:11.000000000 +0200
+--- src/version.c      2011-05-05 18:27:56.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     177,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+56. You leave the modem speaker on after connecting because you think it
+    sounds like the ocean wind...the perfect soundtrack for "surfing the net".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.178.patch0 b/vim/patches/vim-7.3.178.patch0
new file mode 100644 (file)
index 0000000..9b6ca7c
--- /dev/null
@@ -0,0 +1,163 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.178
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.178
+Problem:    C-indent doesn't handle code right after { correctly.
+Solution:   Fix detecting unterminated line. (Lech Lorens)
+Files:      src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+    
+
+*** ../vim-7.3.177/src/misc1.c 2011-04-28 17:48:39.000000000 +0200
+--- src/misc1.c        2011-05-10 11:35:09.000000000 +0200
+***************
+*** 4983,4989 ****
+  }
+  
+  /*
+!  * Return TRUE if there there is no code at *s.  White space and comments are
+   * not considered code.
+   */
+      static int
+--- 4983,4989 ----
+  }
+  
+  /*
+!  * Return TRUE if there is no code at *s.  White space and comments are
+   * not considered code.
+   */
+      static int
+***************
+*** 5458,5465 ****
+  }
+  
+  /*
+!  * Recognize a line that starts with '{' or '}', or ends with ';', '{' or '}'.
+   * Don't consider "} else" a terminated line.
+   * Return the character terminating the line (ending char's have precedence if
+   * both apply in order to determine initializations).
+   */
+--- 5458,5468 ----
+  }
+  
+  /*
+!  * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
+!  * '}'.
+   * Don't consider "} else" a terminated line.
++  * Don't consider a line where there are unmatched opening braces before '}',
++  * ';' or ',' a terminated line.
+   * Return the character terminating the line (ending char's have precedence if
+   * both apply in order to determine initializations).
+   */
+***************
+*** 5470,5475 ****
+--- 5473,5479 ----
+      int              incl_comma;     /* recognize a trailing comma */
+  {
+      char_u found_start = 0;
++     unsigned n_open = 0;
+  
+      s = cin_skipcomment(s);
+  
+***************
+*** 5480,5489 ****
+      {
+       /* skip over comments, "" strings and 'c'haracters */
+       s = skip_string(cin_skipcomment(s));
+!      if ((*s == ';' || (incl_open && *s == '{') || *s == '}'
+!                                               || (incl_comma && *s == ','))
+               && cin_nocode(s + 1))
+           return *s;
+  
+       if (*s)
+           s++;
+--- 5484,5502 ----
+      {
+       /* skip over comments, "" strings and 'c'haracters */
+       s = skip_string(cin_skipcomment(s));
+!      if (*s == '}' && n_open > 0)
+!          --n_open;
+!      if (n_open == 0
+!              && (*s == ';' || *s == '}' || (incl_comma && *s == ','))
+               && cin_nocode(s + 1))
+           return *s;
++      else if (*s == '{')
++      {
++          if (incl_open && cin_nocode(s + 1))
++              return *s;
++          else
++              ++n_open;
++      }
+  
+       if (*s)
+           s++;
+*** ../vim-7.3.177/src/testdir/test3.in        2011-04-28 13:01:59.000000000 +0200
+--- src/testdir/test3.in       2011-05-10 11:34:13.000000000 +0200
+***************
+*** 1344,1349 ****
+--- 1344,1365 ----
+  }
+  
+  STARTTEST
++ :set cino&
++ 2kdd=][
++ ENDTEST
++ 
++ void func(void)
++ {
++      if(x==y)
++              if(y==z)
++                      foo=1;
++              else { bar=1;
++                      baz=2;
++              }
++      printf("Foo!\n");
++ }
++ 
++ STARTTEST
+  :g/^STARTTEST/.,/^ENDTEST/d
+  :1;/start of AUTO/,$wq! test.out
+  ENDTEST
+*** ../vim-7.3.177/src/testdir/test3.ok        2011-04-28 13:01:59.000000000 +0200
+--- src/testdir/test3.ok       2011-05-10 11:34:13.000000000 +0200
+***************
+*** 1204,1206 ****
+--- 1204,1218 ----
+  {
+  }
+  
++ 
++ void func(void)
++ {
++      if(x==y)
++              if(y==z)
++                      foo=1;
++              else { bar=1;
++                      baz=2;
++              }
++      printf("Foo!\n");
++ }
++ 
+*** ../vim-7.3.177/src/version.c       2011-05-05 18:31:54.000000000 +0200
+--- src/version.c      2011-05-10 11:37:43.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     178,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+69. Yahoo welcomes you with your own start page
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.179.patch0 b/vim/patches/vim-7.3.179.patch0
new file mode 100644 (file)
index 0000000..f175b26
--- /dev/null
@@ -0,0 +1,95 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.179
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.179
+Problem:    C-indent doesn't handle colon in string correctly.
+Solution:   Skip the string. (Lech Lorens)
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.178/src/misc1.c 2011-05-10 11:39:13.000000000 +0200
+--- src/misc1.c        2011-05-10 11:50:14.000000000 +0200
+***************
+*** 5801,5807 ****
+               continue;
+       }
+  
+!      if (s[0] == ':')
+       {
+           if (s[1] == ':')
+           {
+--- 5801,5809 ----
+               continue;
+       }
+  
+!      if (s[0] == '"')
+!          s = skip_string(s) + 1;
+!      else if (s[0] == ':')
+       {
+           if (s[1] == ':')
+           {
+*** ../vim-7.3.178/src/testdir/test3.in        2011-05-10 11:39:13.000000000 +0200
+--- src/testdir/test3.in       2011-05-10 11:53:02.000000000 +0200
+***************
+*** 1360,1365 ****
+--- 1360,1378 ----
+  }
+  
+  STARTTEST
++ :set cino&
++ 2kdd=][
++ ENDTEST
++ 
++ void func(void)
++ {
++      cout << "a"
++      << "b"
++      << ") :"
++      << "c";
++ }
++ 
++ STARTTEST
+  :g/^STARTTEST/.,/^ENDTEST/d
+  :1;/start of AUTO/,$wq! test.out
+  ENDTEST
+*** ../vim-7.3.178/src/testdir/test3.ok        2011-05-10 11:39:13.000000000 +0200
+--- src/testdir/test3.ok       2011-05-10 11:50:14.000000000 +0200
+***************
+*** 1216,1218 ****
+--- 1216,1227 ----
+       printf("Foo!\n");
+  }
+  
++ 
++ void func(void)
++ {
++      cout << "a"
++              << "b"
++              << ") :"
++              << "c";
++ }
++ 
+*** ../vim-7.3.178/src/version.c       2011-05-10 11:39:13.000000000 +0200
+--- src/version.c      2011-05-10 11:53:36.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     179,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+71. You wonder how people walk
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.180.patch0 b/vim/patches/vim-7.3.180.patch0
new file mode 100644 (file)
index 0000000..5997bfb
--- /dev/null
@@ -0,0 +1,295 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.180
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.180
+Problem:    When both a middle part of 'comments' matches and an end part, the
+           middle part was used errornously.
+Solution:   After finding the middle part match continue looking for a better
+           end part match. (partly by Lech Lorens)
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.179/src/misc1.c 2011-05-10 11:56:26.000000000 +0200
+--- src/misc1.c        2011-05-10 13:24:38.000000000 +0200
+***************
+*** 1561,1566 ****
+--- 1561,1569 ----
+      char_u   part_buf[COM_MAX_LEN];  /* buffer for one option part */
+      char_u   *string;                /* pointer to comment string */
+      char_u   *list;
++     int              middle_match_len = 0;
++     char_u   *prev_list;
++     char_u   *saved_flags;
+  
+      i = 0;
+      while (vim_iswhite(line[i]))    /* leading white space is ignored */
+***************
+*** 1569,1575 ****
+      /*
+       * Repeat to match several nested comment strings.
+       */
+!     while (line[i])
+      {
+       /*
+        * scan through the 'comments' option for a match
+--- 1572,1578 ----
+      /*
+       * Repeat to match several nested comment strings.
+       */
+!     while (line[i] != NUL)
+      {
+       /*
+        * scan through the 'comments' option for a match
+***************
+*** 1577,1658 ****
+       found_one = FALSE;
+       for (list = curbuf->b_p_com; *list; )
+       {
+!          /*
+!           * Get one option part into part_buf[].  Advance list to next one.
+!           * put string at start of string.
+!           */
+!          if (!got_com && flags != NULL)  /* remember where flags started */
+!              *flags = list;
+           (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
+           string = vim_strchr(part_buf, ':');
+           if (string == NULL)     /* missing ':', ignore this part */
+               continue;
+           *string++ = NUL;        /* isolate flags from string */
+  
+!          /*
+!           * When already found a nested comment, only accept further
+!           * nested comments.
+!           */
+           if (got_com && vim_strchr(part_buf, COM_NEST) == NULL)
+               continue;
+  
+!          /* When 'O' flag used don't use for "O" command */
+           if (backward && vim_strchr(part_buf, COM_NOBACK) != NULL)
+               continue;
+  
+!          /*
+!           * Line contents and string must match.
+            * When string starts with white space, must have some white space
+            * (but the amount does not need to match, there might be a mix of
+!           * TABs and spaces).
+!           */
+           if (vim_iswhite(string[0]))
+           {
+               if (i == 0 || !vim_iswhite(line[i - 1]))
+!                  continue;
+               while (vim_iswhite(string[0]))
+                   ++string;
+           }
+           for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
+               ;
+           if (string[j] != NUL)
+!              continue;
+  
+!          /*
+!           * When 'b' flag used, there must be white space or an
+!           * end-of-line after the string in the line.
+!           */
+           if (vim_strchr(part_buf, COM_BLANK) != NULL
+                          && !vim_iswhite(line[i + j]) && line[i + j] != NUL)
+               continue;
+  
+!          /*
+!           * We have found a match, stop searching.
+!           */
+!          i += j;
+!          got_com = TRUE;
+           found_one = TRUE;
+           break;
+       }
+  
+!      /*
+!       * No match found, stop scanning.
+!       */
+       if (!found_one)
+           break;
+  
+!      /*
+!       * Include any trailing white space.
+!       */
+       while (vim_iswhite(line[i]))
+           ++i;
+  
+!      /*
+!       * If this comment doesn't nest, stop here.
+!       */
+       if (vim_strchr(part_buf, COM_NEST) == NULL)
+           break;
+      }
+      return (got_com ? i : 0);
+  }
+  #endif
+--- 1580,1683 ----
+       found_one = FALSE;
+       for (list = curbuf->b_p_com; *list; )
+       {
+!          /* Get one option part into part_buf[].  Advance "list" to next
+!           * one.  Put "string" at start of string.  */
+!          if (!got_com && flags != NULL)
+!              *flags = list;      /* remember where flags started */
+!          prev_list = list;
+           (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
+           string = vim_strchr(part_buf, ':');
+           if (string == NULL)     /* missing ':', ignore this part */
+               continue;
+           *string++ = NUL;        /* isolate flags from string */
+  
+!          /* If we found a middle match previously, use that match when this
+!           * is not a middle or end. */
+!          if (middle_match_len != 0
+!                  && vim_strchr(part_buf, COM_MIDDLE) == NULL
+!                  && vim_strchr(part_buf, COM_END) == NULL)
+!              break;
+! 
+!          /* When we already found a nested comment, only accept further
+!           * nested comments. */
+           if (got_com && vim_strchr(part_buf, COM_NEST) == NULL)
+               continue;
+  
+!          /* When 'O' flag present and using "O" command skip this one. */
+           if (backward && vim_strchr(part_buf, COM_NOBACK) != NULL)
+               continue;
+  
+!          /* Line contents and string must match.
+            * When string starts with white space, must have some white space
+            * (but the amount does not need to match, there might be a mix of
+!           * TABs and spaces). */
+           if (vim_iswhite(string[0]))
+           {
+               if (i == 0 || !vim_iswhite(line[i - 1]))
+!                  continue;  /* missing shite space */
+               while (vim_iswhite(string[0]))
+                   ++string;
+           }
+           for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
+               ;
+           if (string[j] != NUL)
+!              continue;  /* string doesn't match */
+  
+!          /* When 'b' flag used, there must be white space or an
+!           * end-of-line after the string in the line. */
+           if (vim_strchr(part_buf, COM_BLANK) != NULL
+                          && !vim_iswhite(line[i + j]) && line[i + j] != NUL)
+               continue;
+  
+!          /* We have found a match, stop searching unless this is a middle
+!           * comment. The middle comment can be a substring of the end
+!           * comment in which case it's better to return the length of the
+!           * end comment and its flags.  Thus we keep searching with middle
+!           * and end matches and use an end match if it matches better. */
+!          if (vim_strchr(part_buf, COM_MIDDLE) != NULL)
+!          {
+!              if (middle_match_len == 0)
+!              {
+!                  middle_match_len = j;
+!                  saved_flags = prev_list;
+!              }
+!              continue;
+!          }
+!          if (middle_match_len != 0 && j > middle_match_len)
+!              /* Use this match instead of the middle match, since it's a
+!               * longer thus better match. */
+!              middle_match_len = 0;
+! 
+!          if (middle_match_len == 0)
+!              i += j;
+           found_one = TRUE;
+           break;
+       }
+  
+!      if (middle_match_len != 0)
+!      {
+!          /* Use the previously found middle match after failing to find a
+!           * match with an end. */
+!          if (!got_com && flags != NULL)
+!              *flags = saved_flags;
+!          i += middle_match_len;
+!          found_one = TRUE;
+!      }
+! 
+!      /* No match found, stop scanning. */
+       if (!found_one)
+           break;
+  
+!      /* Include any trailing white space. */
+       while (vim_iswhite(line[i]))
+           ++i;
+  
+!      /* If this comment doesn't nest, stop here. */
+!      got_com = TRUE;
+       if (vim_strchr(part_buf, COM_NEST) == NULL)
+           break;
+      }
++ 
+      return (got_com ? i : 0);
+  }
+  #endif
+*** ../vim-7.3.179/src/testdir/test3.in        2011-05-10 11:56:26.000000000 +0200
+--- src/testdir/test3.in       2011-05-10 12:05:50.000000000 +0200
+***************
+*** 1373,1378 ****
+--- 1373,1390 ----
+  }
+  
+  STARTTEST
++ :set com=s1:/*,m:*,ex:*/
++ ]]3jofoo();\e
++ ENDTEST
++ 
++ void func(void)
++ {
++      /*
++       * This is a comment.
++       */
++ }
++ 
++ STARTTEST
+  :g/^STARTTEST/.,/^ENDTEST/d
+  :1;/start of AUTO/,$wq! test.out
+  ENDTEST
+*** ../vim-7.3.179/src/testdir/test3.ok        2011-05-10 11:56:26.000000000 +0200
+--- src/testdir/test3.ok       2011-05-10 12:05:50.000000000 +0200
+***************
+*** 1225,1227 ****
+--- 1225,1236 ----
+               << "c";
+  }
+  
++ 
++ void func(void)
++ {
++      /*
++       * This is a comment.
++       */
++      foo();
++ }
++ 
+*** ../vim-7.3.179/src/version.c       2011-05-10 11:56:26.000000000 +0200
+--- src/version.c      2011-05-10 13:37:28.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     180,
+  /**/
+
+-- 
+"Thou shalt not follow the Null Pointer, for at its end Chaos and
+Madness lie."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.181.patch0 b/vim/patches/vim-7.3.181.patch0
new file mode 100644 (file)
index 0000000..3151d44
--- /dev/null
@@ -0,0 +1,171 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.181
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.181
+Problem:    When repeating the insert of CTRL-V or a digraph the display may
+           not be updated correctly.
+Solution:   Only call edit_unputchar() after edit_putchar(). (Lech Lorens)
+Files:     src/edit.c
+
+
+*** ../vim-7.3.180/src/edit.c  2010-11-10 17:11:29.000000000 +0100
+--- src/edit.c 2011-05-10 14:16:41.000000000 +0200
+***************
+*** 1553,1564 ****
+--- 1553,1568 ----
+  ins_ctrl_v()
+  {
+      int              c;
++     int              did_putchar = FALSE;
+  
+      /* may need to redraw when no more chars available now */
+      ins_redraw(FALSE);
+  
+      if (redrawing() && !char_avail())
++     {
+       edit_putchar('^', TRUE);
++      did_putchar = TRUE;
++     }
+      AppendToRedobuff((char_u *)CTRL_V_STR);  /* CTRL-V */
+  
+  #ifdef FEAT_CMDL_INFO
+***************
+*** 1566,1573 ****
+  #endif
+  
+      c = get_literal();
+!     edit_unputchar();  /* when line fits in 'columns' the '^' is at the start
+!                        of the next line and will not be redrawn */
+  #ifdef FEAT_CMDL_INFO
+      clear_showcmd();
+  #endif
+--- 1570,1579 ----
+  #endif
+  
+      c = get_literal();
+!     if (did_putchar)
+!      /* when the line fits in 'columns' the '^' is at the start of the next
+!       * line and will not removed by the redraw */
+!      edit_unputchar();
+  #ifdef FEAT_CMDL_INFO
+      clear_showcmd();
+  #endif
+***************
+*** 9637,9642 ****
+--- 9643,9649 ----
+  {
+      int          c;
+      int          cc;
++     int          did_putchar = FALSE;
+  
+      pc_status = PC_STATUS_UNSET;
+      if (redrawing() && !char_avail())
+***************
+*** 9645,9650 ****
+--- 9652,9658 ----
+       ins_redraw(FALSE);
+  
+       edit_putchar('?', TRUE);
++      did_putchar = TRUE;
+  #ifdef FEAT_CMDL_INFO
+       add_to_showcmd_c(Ctrl_K);
+  #endif
+***************
+*** 9661,9668 ****
+      c = plain_vgetc();
+      --no_mapping;
+      --allow_keys;
+!     edit_unputchar();  /* when line fits in 'columns' the '?' is at the start
+!                        of the next line and will not be redrawn */
+  
+      if (IS_SPECIAL(c) || mod_mask)       /* special key */
+      {
+--- 9669,9678 ----
+      c = plain_vgetc();
+      --no_mapping;
+      --allow_keys;
+!     if (did_putchar)
+!      /* when the line fits in 'columns' the '?' is at the start of the next
+!       * line and will not be removed by the redraw */
+!      edit_unputchar();
+  
+      if (IS_SPECIAL(c) || mod_mask)       /* special key */
+      {
+***************
+*** 9674,9679 ****
+--- 9684,9690 ----
+      }
+      if (c != ESC)
+      {
++      did_putchar = FALSE;
+       if (redrawing() && !char_avail())
+       {
+           /* may need to redraw when no more chars available now */
+***************
+*** 9681,9691 ****
+  
+           if (char2cells(c) == 1)
+           {
+-              /* first remove the '?', otherwise it's restored when typing
+-               * an ESC next */
+-              edit_unputchar();
+               ins_redraw(FALSE);
+               edit_putchar(c, TRUE);
+           }
+  #ifdef FEAT_CMDL_INFO
+           add_to_showcmd_c(c);
+--- 9692,9700 ----
+  
+           if (char2cells(c) == 1)
+           {
+               ins_redraw(FALSE);
+               edit_putchar(c, TRUE);
++              did_putchar = TRUE;
+           }
+  #ifdef FEAT_CMDL_INFO
+           add_to_showcmd_c(c);
+***************
+*** 9696,9703 ****
+       cc = plain_vgetc();
+       --no_mapping;
+       --allow_keys;
+!      edit_unputchar();  /* when line fits in 'columns' the '?' is at the
+!                            start of the next line and will not be redrawn */
+       if (cc != ESC)
+       {
+           AppendToRedobuff((char_u *)CTRL_V_STR);
+--- 9705,9714 ----
+       cc = plain_vgetc();
+       --no_mapping;
+       --allow_keys;
+!      if (did_putchar)
+!          /* when the line fits in 'columns' the '?' is at the start of the
+!           * next line and will not be removed by a redraw */
+!          edit_unputchar();
+       if (cc != ESC)
+       {
+           AppendToRedobuff((char_u *)CTRL_V_STR);
+*** ../vim-7.3.180/src/version.c       2011-05-10 13:38:23.000000000 +0200
+--- src/version.c      2011-05-10 14:20:40.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     181,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+74. Your most erotic dreams are about cybersex
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.182.patch0 b/vim/patches/vim-7.3.182.patch0
new file mode 100644 (file)
index 0000000..509b68b
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.182
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.182 (after 7.3.180)
+Problem:    Compiler warning for uninitialized variable.
+Solution:   Add dummy initializer.
+Files:     src/misc1.c
+
+
+*** ../vim-7.3.181/src/misc1.c 2011-05-10 13:38:23.000000000 +0200
+--- src/misc1.c        2011-05-10 14:37:39.000000000 +0200
+***************
+*** 1563,1569 ****
+      char_u   *list;
+      int              middle_match_len = 0;
+      char_u   *prev_list;
+!     char_u   *saved_flags;
+  
+      i = 0;
+      while (vim_iswhite(line[i]))    /* leading white space is ignored */
+--- 1563,1569 ----
+      char_u   *list;
+      int              middle_match_len = 0;
+      char_u   *prev_list;
+!     char_u   *saved_flags = NULL;
+  
+      i = 0;
+      while (vim_iswhite(line[i]))    /* leading white space is ignored */
+*** ../vim-7.3.181/src/version.c       2011-05-10 14:22:10.000000000 +0200
+--- src/version.c      2011-05-10 14:38:39.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     182,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+75. You start wondering whether you could actually upgrade your brain
+    with a Pentium Pro microprocessor 80.  The upgrade works just fine.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.183.patch0 b/vim/patches/vim-7.3.183.patch0
new file mode 100644 (file)
index 0000000..23178c0
--- /dev/null
@@ -0,0 +1,87 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.183
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.183 (after 7.3.174)
+Problem:    When Exuberant ctags binary is exuberant-ctags it's not found.
+Solution:   Add configure check for exuberant-ctags.
+Files:     src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.182/src/configure.in    2011-05-05 18:10:11.000000000 +0200
+--- src/configure.in   2011-05-10 15:39:38.000000000 +0200
+***************
+*** 3375,3384 ****
+  dnl -i+m to test for older Exuberant ctags
+  AC_MSG_CHECKING(how to create tags)
+  test -f tags && mv tags tags.save
+! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+!   TAGPRG="exctags -I INIT+ --fields=+S"
+! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+    TAGPRG="ctags -I INIT+ --fields=+S"
+  else
+    TAGPRG="ctags"
+    (eval etags           /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
+--- 3375,3386 ----
+  dnl -i+m to test for older Exuberant ctags
+  AC_MSG_CHECKING(how to create tags)
+  test -f tags && mv tags tags.save
+! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+    TAGPRG="ctags -I INIT+ --fields=+S"
++ elif (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
++   TAGPRG="exctags -I INIT+ --fields=+S"
++ elif (eval exuberant-ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
++   TAGPRG="exuberant-ctags -I INIT+ --fields=+S"
+  else
+    TAGPRG="ctags"
+    (eval etags           /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
+*** ../vim-7.3.182/src/auto/configure  2011-05-05 18:10:11.000000000 +0200
+--- src/auto/configure 2011-05-10 15:39:41.000000000 +0200
+***************
+*** 12028,12037 ****
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
+  $as_echo_n "checking how to create tags... " >&6; }
+  test -f tags && mv tags tags.save
+! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+!   TAGPRG="exctags -I INIT+ --fields=+S"
+! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+    TAGPRG="ctags -I INIT+ --fields=+S"
+  else
+    TAGPRG="ctags"
+    (eval etags           /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags"
+--- 12028,12039 ----
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
+  $as_echo_n "checking how to create tags... " >&6; }
+  test -f tags && mv tags tags.save
+! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+    TAGPRG="ctags -I INIT+ --fields=+S"
++ elif (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
++   TAGPRG="exctags -I INIT+ --fields=+S"
++ elif (eval exuberant-ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
++   TAGPRG="exuberant-ctags -I INIT+ --fields=+S"
+  else
+    TAGPRG="ctags"
+    (eval etags           /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags"
+*** ../vim-7.3.182/src/version.c       2011-05-10 14:44:07.000000000 +0200
+--- src/version.c      2011-05-10 15:40:48.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     183,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+78. You find yourself dialing IP numbers on the phone.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.184.patch0 b/vim/patches/vim-7.3.184.patch0
new file mode 100644 (file)
index 0000000..3b0cfc6
--- /dev/null
@@ -0,0 +1,86 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.184
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.184
+Problem:    Static code analysis errors in riscOS.
+Solution:   Make buffer size bigger. (Dominique Pelle)
+Files:     src/gui_riscos.c
+
+
+*** ../vim-7.3.183/src/gui_riscos.c    2010-08-15 21:57:28.000000000 +0200
+--- src/gui_riscos.c   2011-05-10 15:49:56.000000000 +0200
+***************
+*** 1756,1762 ****
+  
+       if (button & 0x444)
+       {
+!          int     front_block[10];
+           /* Dragging with Select - bring window to front first */
+           front_block[0] = gui.window_handle;
+           swi(Wimp_GetWindowState, 0, front_block);
+--- 1756,1762 ----
+  
+       if (button & 0x444)
+       {
+!          int     front_block[64];
+           /* Dragging with Select - bring window to front first */
+           front_block[0] = gui.window_handle;
+           swi(Wimp_GetWindowState, 0, front_block);
+***************
+*** 1874,1880 ****
+  
+      if (ro_dragging == DRAG_RESIZE_WINDOW)
+      {
+!      /* Resizeing the main window. */
+       block[2] = y;
+       block[3] = x;
+       ro_open_main(block);
+--- 1874,1880 ----
+  
+      if (ro_dragging == DRAG_RESIZE_WINDOW)
+      {
+!      /* Resizing the main window. */
+       block[2] = y;
+       block[3] = x;
+       ro_open_main(block);
+***************
+*** 2651,2657 ****
+      long_u   length;
+  
+      block[0] = 48;                   /* Size of block. */
+!     block[3] = 0;                    /* Orinial message. */
+      block[4] = 0x10;                 /* Data request. */
+      block[5] = gui.window_handle;
+      block[6] = RO_LOAD_CLIPBOARD;    /* Internal handle. */
+--- 2651,2657 ----
+      long_u   length;
+  
+      block[0] = 48;                   /* Size of block. */
+!     block[3] = 0;                    /* Original message. */
+      block[4] = 0x10;                 /* Data request. */
+      block[5] = gui.window_handle;
+      block[6] = RO_LOAD_CLIPBOARD;    /* Internal handle. */
+*** ../vim-7.3.183/src/version.c       2011-05-10 15:41:59.000000000 +0200
+--- src/version.c      2011-05-10 15:51:29.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     184,
+  /**/
+
+-- 
+If bankers can count, how come they have eight windows and
+only four tellers?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.185.patch0 b/vim/patches/vim-7.3.185.patch0
new file mode 100644 (file)
index 0000000..7b3ed18
--- /dev/null
@@ -0,0 +1,77 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.185
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.185
+Problem:    ":windo g/pattern/q" closes windows and reports "N more lines".
+           (Tim Chase)
+Solution:   Remember what buffer ":global" started in. (Jean-Rene David)
+Files:     src/ex_cmds.c
+
+
+*** ../vim-7.3.184/src/ex_cmds.c       2011-04-11 21:35:03.000000000 +0200
+--- src/ex_cmds.c      2011-05-10 15:58:48.000000000 +0200
+***************
+*** 5365,5372 ****
+  global_exe(cmd)
+      char_u   *cmd;
+  {
+!     linenr_T old_lcount;     /* b_ml.ml_line_count before the command */
+!     linenr_T lnum;           /* line number according to old situation */
+  
+      /*
+       * Set current position only once for a global command.
+--- 5365,5373 ----
+  global_exe(cmd)
+      char_u   *cmd;
+  {
+!     linenr_T old_lcount;     /* b_ml.ml_line_count before the command */
+!     buf_T    *old_buf = curbuf;      /* remember what buffer we started in */
+!     linenr_T lnum;           /* line number according to old situation */
+  
+      /*
+       * Set current position only once for a global command.
+***************
+*** 5410,5417 ****
+       msg_didout = FALSE;
+  
+      /* If substitutes done, report number of substitutes, otherwise report
+!      * number of extra or deleted lines. */
+!     if (!do_sub_msg(FALSE))
+       msgmore(curbuf->b_ml.ml_line_count - old_lcount);
+  }
+  
+--- 5411,5420 ----
+       msg_didout = FALSE;
+  
+      /* If substitutes done, report number of substitutes, otherwise report
+!      * number of extra or deleted lines.
+!      * Don't report extra or deleted lines in the edge case where the buffer
+!      * we are in after execution is different from the buffer we started in. */
+!     if (!do_sub_msg(FALSE) && curbuf == old_buf)
+       msgmore(curbuf->b_ml.ml_line_count - old_lcount);
+  }
+  
+*** ../vim-7.3.184/src/version.c       2011-05-10 15:52:10.000000000 +0200
+--- src/version.c      2011-05-10 15:57:40.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     185,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+79. All of your most erotic dreams have a scrollbar at the right side.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.186.patch0 b/vim/patches/vim-7.3.186.patch0
new file mode 100644 (file)
index 0000000..d834c37
--- /dev/null
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.186
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.186
+Problem:    When 'clipboard' contains "unnamed" or "unnamedplus" the value of
+           v:register is wrong for operators without a specific register.
+Solution:   Adjust the register according to 'clipboard'. (Ingo Karkat)
+Files:     src/normal.c
+
+
+*** ../vim-7.3.185/src/normal.c        2010-12-17 18:52:56.000000000 +0100
+--- src/normal.c       2011-05-10 16:07:49.000000000 +0200
+***************
+*** 1202,1208 ****
+      {
+       clearop(oap);
+  #ifdef FEAT_EVAL
+!      set_reg_var('"');
+  #endif
+      }
+  
+--- 1202,1214 ----
+      {
+       clearop(oap);
+  #ifdef FEAT_EVAL
+!      {
+!          int regname = 0;
+!          /* Adjust the register according to 'clipboard', so that when
+!           * "unnamed" is present it becomes '*' or '+' instead of '"'. */
+!          adjust_clip_reg(&regname);
+!          set_reg_var(regname);
+!      }
+  #endif
+      }
+  
+*** ../vim-7.3.185/src/version.c       2011-05-10 16:00:43.000000000 +0200
+--- src/version.c      2011-05-10 16:10:10.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     186,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+80. At parties, you introduce your spouse as your "service provider."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.187.patch0 b/vim/patches/vim-7.3.187.patch0
new file mode 100644 (file)
index 0000000..7bf82ce
--- /dev/null
@@ -0,0 +1,6621 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.187
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.187
+Problem:    The RISC OS port has obvious errors and is not being maintained.
+Solution:   Remove the RISC OS files and code.
+Files:     src/ascii.h, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
+           src/ex_docmd.c, src/fileio.c, src/globals.h, src/gui.c, src/gui.h,
+           src/main.c, src/memfile.c, src/memline.c, src/misc1.c,
+           src/proto.h, src/quickfix.c, src/search.c, src/structs.h,
+           src/term.c, src/termlib.c, src/version.c, src/vim.h,
+           src/gui_riscos.h, src/os_riscos.h, src/gui_riscos.c,
+           src/os_riscos.c, runtime/doc/os_risc.txt
+
+
+*** ../vim-7.3.186/src/ascii.h 2010-08-15 21:57:25.000000000 +0200
+--- src/ascii.h        2011-05-10 16:22:08.000000000 +0200
+***************
+*** 183,193 ****
+  # define PATHSEP     psepc
+  # define PATHSEPSTR  pseps
+  #else
+! # ifdef RISCOS
+! #  define PATHSEP    '.'
+! #  define PATHSEPSTR "."
+! # else
+! #  define PATHSEP    '/'
+! #  define PATHSEPSTR "/"
+! # endif
+  #endif
+--- 183,188 ----
+  # define PATHSEP     psepc
+  # define PATHSEPSTR  pseps
+  #else
+! # define PATHSEP     '/'
+! # define PATHSEPSTR  "/"
+  #endif
+*** ../vim-7.3.186/src/eval.c  2011-04-21 14:27:21.000000000 +0200
+--- src/eval.c 2011-05-10 16:22:21.000000000 +0200
+***************
+*** 11818,11826 ****
+  #ifdef __QNX__
+       "qnx",
+  #endif
+- #ifdef RISCOS
+-      "riscos",
+- #endif
+  #ifdef UNIX
+       "unix",
+  #endif
+--- 11818,11823 ----
+*** ../vim-7.3.186/src/ex_cmds.c       2011-05-10 16:00:43.000000000 +0200
+--- src/ex_cmds.c      2011-05-10 16:23:22.000000000 +0200
+***************
+*** 899,907 ****
+   * Handle the ":!cmd" command.       Also for ":r !cmd" and ":w !cmd"
+   * Bangs in the argument are replaced with the previously entered command.
+   * Remember the argument.
+-  *
+-  * RISCOS: Bangs only replaced when followed by a space, since many
+-  * pathnames contain one.
+   */
+      void
+  do_bang(addr_count, eap, forceit, do_in, do_out)
+--- 899,904 ----
+***************
+*** 980,990 ****
+       trailarg = NULL;
+       while (*p)
+       {
+!          if (*p == '!'
+! #ifdef RISCOS
+!                      && (p[1] == ' ' || p[1] == NUL)
+! #endif
+!                                      )
+           {
+               if (p > newcmd && p[-1] == '\\')
+                   STRMOVE(p - 1, p);
+--- 977,983 ----
+       trailarg = NULL;
+       while (*p)
+       {
+!          if (*p == '!')
+           {
+               if (p > newcmd && p[-1] == '\\')
+                   STRMOVE(p - 1, p);
+***************
+*** 1578,1591 ****
+           if (p != NULL)
+               *p = NUL;
+       }
+- # ifdef RISCOS
+-      STRCAT(buf, " { < ");   /* Use RISC OS notation for input. */
+-      STRCAT(buf, itmp);
+-      STRCAT(buf, " } ");
+- # else
+       STRCAT(buf, " <");      /* " < " causes problems on Amiga */
+       STRCAT(buf, itmp);
+- # endif
+       if (*p_shq == NUL)
+       {
+           p = vim_strchr(cmd, '|');
+--- 1571,1578 ----
+***************
+*** 1634,1649 ****
+      else
+       vim_snprintf((char *)end, (size_t)(buflen - (end - buf)),
+  #ifdef FEAT_QUICKFIX
+- # ifndef RISCOS
+-              opt != p_sp ? " %s%s" :
+- # endif
+               " %s %s",
+  #else
+- # ifndef RISCOS
+               " %s%s",        /* " > %s" causes problems on Amiga */
+- # else
+-              " %s %s",       /* But is needed for 'shellpipe' and RISC OS */
+- # endif
+  #endif
+               (char *)opt, (char *)fname);
+  }
+--- 1621,1629 ----
+***************
+*** 1844,1854 ****
+  #ifdef VMS
+                                   (char_u *)"-tmp",
+  #else
+- # ifdef RISCOS
+-                                  (char_u *)"/tmp",
+- # else
+                                   (char_u *)".tmp",
+- # endif
+  #endif
+                                   FALSE);
+           if (tempname == NULL)               /* out of memory */
+--- 1824,1830 ----
+*** ../vim-7.3.186/src/ex_cmds2.c      2011-04-11 21:35:03.000000000 +0200
+--- src/ex_cmds2.c     2011-05-10 16:23:47.000000000 +0200
+***************
+*** 500,517 ****
+       /* Expand the file name in the same way as do_source().  This means
+        * doing it twice, so that $DIR/file gets expanded when $DIR is
+        * "~/dir". */
+- #ifdef RISCOS
+-      q = mch_munge_fname(p);
+- #else
+       q = expand_env_save(p);
+- #endif
+       if (q == NULL)
+           return FAIL;
+- #ifdef RISCOS
+-      p = mch_munge_fname(q);
+- #else
+       p = expand_env_save(q);
+- #endif
+       vim_free(q);
+       if (p == NULL)
+           return FAIL;
+--- 500,509 ----
+***************
+*** 2940,2950 ****
+      proftime_T                   wait_start;
+  #endif
+  
+- #ifdef RISCOS
+-     p = mch_munge_fname(fname);
+- #else
+      p = expand_env_save(fname);
+- #endif
+      if (p == NULL)
+       return retval;
+      fname_exp = fix_fname(p);
+--- 2932,2938 ----
+*** ../vim-7.3.186/src/ex_docmd.c      2011-05-05 14:26:37.000000000 +0200
+--- src/ex_docmd.c     2011-05-10 16:24:18.000000000 +0200
+***************
+*** 9702,9715 ****
+                   valid = 0;      /* Must have ":p:h" to be valid */
+               }
+               else
+- #ifdef RISCOS
+-                  /* Always use the full path for RISC OS if possible. */
+-                  result = curbuf->b_ffname;
+-                  if (result == NULL)
+-                      result = curbuf->b_fname;
+- #else
+                   result = curbuf->b_fname;
+- #endif
+               break;
+  
+       case SPEC_HASH:         /* '#' or "#99": alternate file */
+--- 9702,9708 ----
+***************
+*** 9854,9864 ****
+       if (src[*usedlen] == '<')       /* remove the file name extension */
+       {
+           ++*usedlen;
+- #ifdef RISCOS
+-          if ((s = vim_strrchr(result, '/')) != NULL && s >= gettail(result))
+- #else
+           if ((s = vim_strrchr(result, '.')) != NULL && s >= gettail(result))
+- #endif
+               resultlen = (int)(s - result);
+       }
+  #ifdef FEAT_MODIFY_FNAME
+--- 9847,9853 ----
+***************
+*** 10875,10882 ****
+           else if (vim_ispathsep(*p))
+           {
+               *s++ = '=';
+! #if defined(BACKSLASH_IN_FILENAME) || defined(AMIGA) || defined(RISCOS) \
+!      || defined(VMS)
+               if (*p == ':')
+                   *s++ = '-';
+               else
+--- 10864,10870 ----
+           else if (vim_ispathsep(*p))
+           {
+               *s++ = '=';
+! #if defined(BACKSLASH_IN_FILENAME) || defined(AMIGA) || defined(VMS)
+               if (*p == ':')
+                   *s++ = '-';
+               else
+*** ../vim-7.3.186/src/fileio.c        2011-05-05 16:41:19.000000000 +0200
+--- src/fileio.c       2011-05-10 16:26:06.000000000 +0200
+***************
+*** 504,521 ****
+  
+      if (newfile && !read_stdin && !read_buffer)
+      {
+!      /* Remember time of file.
+!       * For RISCOS, also remember the filetype.
+!       */
+       if (mch_stat((char *)fname, &st) >= 0)
+       {
+           buf_store_time(curbuf, &st, fname);
+           curbuf->b_mtime_read = curbuf->b_mtime;
+- 
+- #if defined(RISCOS) && defined(FEAT_OSFILETYPE)
+-          /* Read the filetype into the buffer local filetype option. */
+-          mch_read_filetype(fname);
+- #endif
+  #ifdef UNIX
+           /*
+            * Use the protection bits of the original file for the swap file.
+--- 504,514 ----
+  
+      if (newfile && !read_stdin && !read_buffer)
+      {
+!      /* Remember time of file. */
+       if (mch_stat((char *)fname, &st) >= 0)
+       {
+           buf_store_time(curbuf, &st, fname);
+           curbuf->b_mtime_read = curbuf->b_mtime;
+  #ifdef UNIX
+           /*
+            * Use the protection bits of the original file for the swap file.
+***************
+*** 557,563 ****
+  
+  /*
+   * for UNIX: check readonly with perm and mch_access()
+-  * for RISCOS: same as Unix, otherwise file gets re-datestamped!
+   * for MSDOS and Amiga: check readonly by trying to open the file for writing
+   */
+      file_readonly = FALSE;
+--- 550,555 ----
+***************
+*** 3804,3816 ****
+  
+       /* make sure we have a valid backup extension to use */
+       if (*p_bex == NUL)
+-      {
+- #ifdef RISCOS
+-          backup_ext = (char_u *)"/bak";
+- #else
+           backup_ext = (char_u *)".bak";
+- #endif
+-      }
+       else
+           backup_ext = p_bex;
+  
+--- 3796,3802 ----
+***************
+*** 4724,4734 ****
+  #endif
+      if (perm >= 0)           /* set perm. of new file same as old file */
+       (void)mch_setperm(wfname, perm);
+- #ifdef RISCOS
+-     if (!append && !filtering)
+-      /* Set the filetype after writing the file. */
+-      mch_set_filetype(wfname, buf->b_p_oft);
+- #endif
+  #ifdef HAVE_ACL
+      /* Probably need to set the ACL before changing the user (can't set the
+       * ACL on a file the user doesn't own). */
+--- 4710,4715 ----
+***************
+*** 6262,6280 ****
+       */
+      for (ptr = retval + fnamelen; ptr > retval; mb_ptr_back(retval, ptr))
+      {
+- #ifndef RISCOS
+       if (*ext == '.'
+! # ifdef USE_LONG_FNAME
+                   && (!USE_LONG_FNAME || shortname)
+! # else
+! #  ifndef SHORT_FNAME
+                   && shortname
+- #  endif
+  # endif
+                                                               )
+           if (*ptr == '.')    /* replace '.' by '_' */
+               *ptr = '_';
+- #endif
+       if (vim_ispathsep(*ptr))
+       {
+           ++ptr;
+--- 6243,6259 ----
+       */
+      for (ptr = retval + fnamelen; ptr > retval; mb_ptr_back(retval, ptr))
+      {
+       if (*ext == '.'
+! #ifdef USE_LONG_FNAME
+                   && (!USE_LONG_FNAME || shortname)
+! #else
+! # ifndef SHORT_FNAME
+                   && shortname
+  # endif
++ #endif
+                                                               )
+           if (*ptr == '.')    /* replace '.' by '_' */
+               *ptr = '_';
+       if (vim_ispathsep(*ptr))
+       {
+           ++ptr;
+***************
+*** 6309,6331 ****
+       if (fname == NULL || *fname == NUL
+                                  || vim_ispathsep(fname[STRLEN(fname) - 1]))
+       {
+- #ifdef RISCOS
+-          if (*ext == '/')
+- #else
+           if (*ext == '.')
+- #endif
+               *s++ = '_';
+       }
+       /*
+        * If the extension starts with '.', truncate the base name at 8
+        * characters
+        */
+- #ifdef RISCOS
+-      /* We normally use '/', but swap files are '_' */
+-      else if (*ext == '/' || *ext == '_')
+- #else
+       else if (*ext == '.')
+- #endif
+       {
+           if ((size_t)(s - ptr) > (size_t)8)
+           {
+--- 6288,6301 ----
+***************
+*** 6337,6349 ****
+        * If the extension doesn't start with '.', and the file name
+        * doesn't have an extension yet, append a '.'
+        */
+- #ifdef RISCOS
+-      else if ((e = vim_strchr(ptr, '/')) == NULL)
+-          *s++ = '/';
+- #else
+       else if ((e = vim_strchr(ptr, '.')) == NULL)
+           *s++ = '.';
+- #endif
+       /*
+        * If the extension doesn't start with '.', and there already is an
+        * extension, it may need to be truncated
+--- 6307,6314 ----
+***************
+*** 6371,6393 ****
+      /*
+       * Prepend the dot.
+       */
+!     if (prepend_dot && !shortname && *(e = gettail(retval)) !=
+! #ifdef RISCOS
+!          '/'
+! #else
+!          '.'
+! #endif
+  #ifdef USE_LONG_FNAME
+           && USE_LONG_FNAME
+  #endif
+                               )
+      {
+       STRMOVE(e + 1, e);
+- #ifdef RISCOS
+-      *e = '/';
+- #else
+       *e = '.';
+- #endif
+      }
+  #endif
+  
+--- 6336,6349 ----
+      /*
+       * Prepend the dot.
+       */
+!     if (prepend_dot && !shortname && *(e = gettail(retval)) != '.'
+  #ifdef USE_LONG_FNAME
+           && USE_LONG_FNAME
+  #endif
+                               )
+      {
+       STRMOVE(e + 1, e);
+       *e = '.';
+      }
+  #endif
+  
+***************
+*** 10205,10223 ****
+                   ++p;
+               break;
+           case '.':
+- #ifdef RISCOS
+-              if (allow_dirs != NULL)
+-                   *allow_dirs = TRUE;
+-              /* FALLTHROUGH */
+- #endif
+           case '~':
+               reg_pat[i++] = '\\';
+               reg_pat[i++] = *p;
+               break;
+           case '?':
+- #ifdef RISCOS
+-          case '#':
+- #endif
+               reg_pat[i++] = '.';
+               break;
+           case '\\':
+--- 10161,10171 ----
+*** ../vim-7.3.186/src/globals.h       2011-05-05 14:26:37.000000000 +0200
+--- src/globals.h      2011-05-10 16:26:13.000000000 +0200
+***************
+*** 1513,1519 ****
+  EXTERN char_u e_sandbox[]    INIT(= N_("E48: Not allowed in sandbox"));
+  #endif
+  EXTERN char_u e_secure[]     INIT(= N_("E523: Not allowed here"));
+! #if defined(AMIGA) || defined(MACOS) || defined(MSWIN) || defined(RISCOS) \
+       || defined(UNIX) || defined(VMS) || defined(OS2)
+  EXTERN char_u e_screenmode[] INIT(= N_("E359: Screen mode setting not supported"));
+  #endif
+--- 1513,1519 ----
+  EXTERN char_u e_sandbox[]    INIT(= N_("E48: Not allowed in sandbox"));
+  #endif
+  EXTERN char_u e_secure[]     INIT(= N_("E523: Not allowed here"));
+! #if defined(AMIGA) || defined(MACOS) || defined(MSWIN)  \
+       || defined(UNIX) || defined(VMS) || defined(OS2)
+  EXTERN char_u e_screenmode[] INIT(= N_("E359: Screen mode setting not supported"));
+  #endif
+*** ../vim-7.3.186/src/gui.c   2011-01-17 20:08:03.000000000 +0100
+--- src/gui.c  2011-05-10 16:26:53.000000000 +0200
+***************
+*** 2156,2162 ****
+  
+      if (highlight_mask & (HL_INVERSE | HL_STANDOUT))
+      {
+! #if defined(AMIGA) || defined(RISCOS)
+       gui_mch_set_colors(bg_color, fg_color);
+  #else
+       gui_mch_set_fg_color(bg_color);
+--- 2156,2162 ----
+  
+      if (highlight_mask & (HL_INVERSE | HL_STANDOUT))
+      {
+! #if defined(AMIGA)
+       gui_mch_set_colors(bg_color, fg_color);
+  #else
+       gui_mch_set_fg_color(bg_color);
+***************
+*** 2165,2171 ****
+      }
+      else
+      {
+! #if defined(AMIGA) || defined(RISCOS)
+       gui_mch_set_colors(fg_color, bg_color);
+  #else
+       gui_mch_set_fg_color(fg_color);
+--- 2165,2171 ----
+      }
+      else
+      {
+! #if defined(AMIGA)
+       gui_mch_set_colors(fg_color, bg_color);
+  #else
+       gui_mch_set_fg_color(fg_color);
+***************
+*** 2193,2199 ****
+      if (back != 0 && ((draw_flags & DRAW_BOLD) || (highlight_mask & HL_ITALIC)))
+       return FAIL;
+  
+! #if defined(RISCOS) || defined(FEAT_GUI_GTK)
+      /* If there's no italic font, then fake it.
+       * For GTK2, we don't need a different font for italic style. */
+      if (hl_mask_todo & HL_ITALIC)
+--- 2193,2199 ----
+      if (back != 0 && ((draw_flags & DRAW_BOLD) || (highlight_mask & HL_ITALIC)))
+       return FAIL;
+  
+! #if defined(FEAT_GUI_GTK)
+      /* If there's no italic font, then fake it.
+       * For GTK2, we don't need a different font for italic style. */
+      if (hl_mask_todo & HL_ITALIC)
+***************
+*** 2985,3010 ****
+           did_clip = TRUE;
+       }
+       /* Allow the left button to start the selection */
+-      else if (button ==
+- # ifdef RISCOS
+-              /* Only start a drag on a drag event. Otherwise
+-               * we don't get a release event. */
+-                  MOUSE_DRAG
+- # else
+-                  MOUSE_LEFT
+- # endif
+-                              )
+-      {
+-          clip_start_selection(X_2_COL(x), Y_2_ROW(y), repeated_click);
+-          did_clip = TRUE;
+-      }
+- # ifdef RISCOS
+       else if (button == MOUSE_LEFT)
+       {
+!          clip_clear_selection();
+           did_clip = TRUE;
+       }
+- # endif
+  
+       /* Always allow pasting */
+       if (button != MOUSE_MIDDLE)
+--- 2985,2995 ----
+           did_clip = TRUE;
+       }
+       /* Allow the left button to start the selection */
+       else if (button == MOUSE_LEFT)
+       {
+!          clip_start_selection(X_2_COL(x), Y_2_ROW(y), repeated_click);
+           did_clip = TRUE;
+       }
+  
+       /* Always allow pasting */
+       if (button != MOUSE_MIDDLE)
+*** ../vim-7.3.186/src/gui.h   2010-08-15 21:57:25.000000000 +0200
+--- src/gui.h  2011-05-10 16:27:19.000000000 +0200
+***************
+*** 52,61 ****
+  # include <SegLoad.h>*/
+  #endif
+  
+- #ifdef RISCOS
+- # include "gui_riscos.h"
+- #endif
+- 
+  #ifdef FEAT_GUI_PHOTON
+  # include <Ph.h>
+  # include <Pt.h>
+--- 52,57 ----
+***************
+*** 151,157 ****
+  #define DRAW_BOLD            0x02    /* draw bold text */
+  #define DRAW_UNDERL          0x04    /* draw underline text */
+  #define DRAW_UNDERC          0x08    /* draw undercurl text */
+! #if defined(RISCOS) || defined(FEAT_GUI_GTK)
+  # define DRAW_ITALIC         0x10    /* draw italic text */
+  #endif
+  #define DRAW_CURSOR          0x20    /* drawing block cursor (win32) */
+--- 147,153 ----
+  #define DRAW_BOLD            0x02    /* draw bold text */
+  #define DRAW_UNDERL          0x04    /* draw underline text */
+  #define DRAW_UNDERC          0x08    /* draw undercurl text */
+! #if defined(FEAT_GUI_GTK)
+  # define DRAW_ITALIC         0x10    /* draw italic text */
+  #endif
+  #define DRAW_CURSOR          0x20    /* drawing block cursor (win32) */
+***************
+*** 219,227 ****
+  #ifdef FEAT_GUI_MAC
+      ControlHandle id;                /* A handle to the scrollbar */
+  #endif
+- #ifdef RISCOS
+-     int              id;             /* Window handle of scrollbar window */
+- #endif
+  #ifdef FEAT_GUI_PHOTON
+      PtWidget_t       *id;
+  #endif
+--- 215,220 ----
+***************
+*** 450,463 ****
+      int              visibility;         /* Is window partially/fully obscured? */
+  #endif
+  
+- #ifdef RISCOS
+-     int              window_handle;
+-     char_u   *window_title;
+-     int              window_title_size;
+-     int              fg_colour;              /* in 0xBBGGRR format */
+-     int              bg_colour;
+- #endif
+- 
+  #ifdef FEAT_GUI_PHOTON
+      PtWidget_t       *vimWindow;             /* PtWindow */
+      PtWidget_t       *vimTextArea;           /* PtRaw */
+--- 443,448 ----
+*** ../vim-7.3.186/src/main.c  2011-04-11 21:35:03.000000000 +0200
+--- src/main.c 2011-05-10 16:27:33.000000000 +0200
+***************
+*** 3276,3286 ****
+      main_msg(_("+reverse\t\tDon't use reverse video (also: +rv)"));
+      main_msg(_("-xrm <resource>\tSet the specified resource"));
+  #endif /* FEAT_GUI_X11 */
+- #if defined(FEAT_GUI) && defined(RISCOS)
+-     mch_msg(_("\nArguments recognised by gvim (RISC OS version):\n"));
+-     main_msg(_("--columns <number>\tInitial width of window in columns"));
+-     main_msg(_("--rows <number>\tInitial height of window in rows"));
+- #endif
+  #ifdef FEAT_GUI_GTK
+      mch_msg(_("\nArguments recognised by gvim (GTK+ version):\n"));
+      main_msg(_("-font <font>\t\tUse <font> for normal text (also: -fn)"));
+--- 3276,3281 ----
+*** ../vim-7.3.186/src/memfile.c       2011-03-22 18:10:34.000000000 +0100
+--- src/memfile.c      2011-05-10 16:27:38.000000000 +0200
+***************
+*** 1307,1313 ****
+       * fname cannot be NameBuff, because it must have been allocated.
+       */
+      mf_set_ffname(mfp);
+! #if defined(MSDOS) || defined(MSWIN) || defined(RISCOS)
+      /*
+       * A ":!cd e:xxx" may change the directory without us knowning, use the
+       * full pathname always.  Careful: This frees fname!
+--- 1307,1313 ----
+       * fname cannot be NameBuff, because it must have been allocated.
+       */
+      mf_set_ffname(mfp);
+! #if defined(MSDOS) || defined(MSWIN)
+      /*
+       * A ":!cd e:xxx" may change the directory without us knowning, use the
+       * full pathname always.  Careful: This frees fname!
+*** ../vim-7.3.186/src/memline.c       2011-02-15 11:56:56.000000000 +0100
+--- src/memline.c      2011-05-10 16:28:40.000000000 +0200
+***************
+*** 748,754 ****
+           continue;
+       if (mf_open_file(mfp, fname) == OK)     /* consumes fname! */
+       {
+! #if defined(MSDOS) || defined(MSWIN) || defined(RISCOS)
+           /*
+            * set full pathname for swap file now, because a ":!cd dir" may
+            * change directory without us knowing it.
+--- 748,754 ----
+           continue;
+       if (mf_open_file(mfp, fname) == OK)     /* consumes fname! */
+       {
+! #if defined(MSDOS) || defined(MSWIN)
+           /*
+            * set full pathname for swap file now, because a ":!cd dir" may
+            * change directory without us knowing it.
+***************
+*** 933,939 ****
+       b0p->b0_fname[0] = NUL;
+      else
+      {
+! #if defined(MSDOS) || defined(MSWIN) || defined(AMIGA) || defined(RISCOS)
+       /* Systems that cannot translate "~user" back into a path: copy the
+        * file name unmodified.  Do use slashes instead of backslashes for
+        * portability. */
+--- 933,939 ----
+       b0p->b0_fname[0] = NUL;
+      else
+      {
+! #if defined(MSDOS) || defined(MSWIN) || defined(AMIGA)
+       /* Systems that cannot translate "~user" back into a path: copy the
+        * file name unmodified.  Do use slashes instead of backslashes for
+        * portability. */
+***************
+*** 1103,1109 ****
+       fname = (char_u *)"";
+      len = (int)STRLEN(fname);
+      if (len >= 4 &&
+! #if defined(VMS) || defined(RISCOS)
+           STRNICMP(fname + len - 4, "_s" , 2)
+  #else
+           STRNICMP(fname + len - 4, ".s" , 2)
+--- 1103,1109 ----
+       fname = (char_u *)"";
+      len = (int)STRLEN(fname);
+      if (len >= 4 &&
+! #if defined(VMS)
+           STRNICMP(fname + len - 4, "_s" , 2)
+  #else
+           STRNICMP(fname + len - 4, ".s" , 2)
+***************
+*** 1773,1783 ****
+  #ifdef VMS
+               names[0] = vim_strsave((char_u *)"*_sw%");
+  #else
+- # ifdef RISCOS
+-              names[0] = vim_strsave((char_u *)"*_sw#");
+- # else
+               names[0] = vim_strsave((char_u *)"*.sw?");
+- # endif
+  #endif
+  #if defined(UNIX) || defined(WIN3264)
+               /* For Unix names starting with a dot are special.  MS-Windows
+--- 1773,1779 ----
+***************
+*** 1804,1814 ****
+  #ifdef VMS
+               names[0] = concat_fnames(dir_name, (char_u *)"*_sw%", TRUE);
+  #else
+- # ifdef RISCOS
+-              names[0] = concat_fnames(dir_name, (char_u *)"*_sw#", TRUE);
+- # else
+               names[0] = concat_fnames(dir_name, (char_u *)"*.sw?", TRUE);
+- # endif
+  #endif
+  #if defined(UNIX) || defined(WIN3264)
+               /* For Unix names starting with a dot are special.  MS-Windows
+--- 1800,1806 ----
+***************
+*** 1877,1883 ****
+           char_u          *swapname;
+  
+           swapname = modname(fname_res,
+! #if defined(VMS) || defined(RISCOS)
+                              (char_u *)"_swp", FALSE
+  #else
+                              (char_u *)".swp", TRUE
+--- 1869,1875 ----
+           char_u          *swapname;
+  
+           swapname = modname(fname_res,
+! #if defined(VMS)
+                              (char_u *)"_swp", FALSE
+  #else
+                              (char_u *)".swp", TRUE
+***************
+*** 2176,2186 ****
+  #ifdef VMS
+      names[num_names] = concat_fnames(path, (char_u *)"_sw%", FALSE);
+  #else
+- # ifdef RISCOS
+-     names[num_names] = concat_fnames(path, (char_u *)"_sw#", FALSE);
+- # else
+      names[num_names] = concat_fnames(path, (char_u *)".sw?", FALSE);
+- # endif
+  #endif
+      if (names[num_names] == NULL)
+       goto end;
+--- 2168,2174 ----
+***************
+*** 2207,2217 ****
+  #ifdef VMS
+      names[num_names] = modname(path, (char_u *)"_sw%", FALSE);
+  #else
+- # ifdef RISCOS
+-     names[num_names] = modname(path, (char_u *)"_sw#", FALSE);
+- # else
+      names[num_names] = modname(path, (char_u *)".sw?", FALSE);
+- # endif
+  #endif
+      if (names[num_names] == NULL)
+       goto end;
+--- 2195,2201 ----
+***************
+*** 3205,3211 ****
+       mf_free(mfp, hp);       /* free the data block */
+       buf->b_ml.ml_locked = NULL;
+  
+!      for (stack_idx = buf->b_ml.ml_stack_top - 1; stack_idx >= 0; --stack_idx)
+       {
+           buf->b_ml.ml_stack_top = 0;     /* stack is invalid when failing */
+           ip = &(buf->b_ml.ml_stack[stack_idx]);
+--- 3189,3196 ----
+       mf_free(mfp, hp);       /* free the data block */
+       buf->b_ml.ml_locked = NULL;
+  
+!      for (stack_idx = buf->b_ml.ml_stack_top - 1; stack_idx >= 0;
+!                                                                --stack_idx)
+       {
+           buf->b_ml.ml_stack_top = 0;     /* stack is invalid when failing */
+           ip = &(buf->b_ml.ml_stack[stack_idx]);
+***************
+*** 3956,3969 ****
+  #else
+           (buf->b_p_sn || buf->b_shortname),
+  #endif
+- #ifdef RISCOS
+-          /* Avoid problems if fname has special chars, eg <Wimp$Scrap> */
+-          ffname,
+- #else
+           fname_res,
+- #endif
+           (char_u *)
+! #if defined(VMS) || defined(RISCOS)
+           "_swp",
+  #else
+           ".swp",
+--- 3941,3949 ----
+  #else
+           (buf->b_p_sn || buf->b_shortname),
+  #endif
+           fname_res,
+           (char_u *)
+! #if defined(VMS)
+           "_swp",
+  #else
+           ".swp",
+***************
+*** 4427,4440 ****
+                   }
+                   close(fd);
+               }
+- #ifdef RISCOS
+-              else
+-                  /* Can't open swap file, though it does exist.
+-                   * Assume that the user is editing two files with
+-                   * the same name in different directories. No error.
+-                   */
+-                  differ = TRUE;
+- #endif
+  
+               /* give the ATTENTION message when there is an old swap file
+                * for the current file, and the buffer was not recovered. */
+--- 4407,4412 ----
+*** ../vim-7.3.186/src/misc1.c 2011-05-10 14:44:07.000000000 +0200
+--- src/misc1.c        2011-05-10 16:29:29.000000000 +0200
+***************
+*** 4589,4613 ****
+  vim_ispathsep(c)
+      int c;
+  {
+! #ifdef RISCOS
+!     return (c == '.' || c == ':');
+! #else
+! # ifdef UNIX
+      return (c == '/');           /* UNIX has ':' inside file names */
+! # else
+! #  ifdef BACKSLASH_IN_FILENAME
+      return (c == ':' || c == '/' || c == '\\');
+! #  else
+! #   ifdef VMS
+      /* server"user passwd"::device:[full.path.name]fname.extension;version" */
+      return (c == ':' || c == '[' || c == ']' || c == '/'
+           || c == '<' || c == '>' || c == '"' );
+! #   else             /* Amiga */
+      return (c == ':' || c == '/');
+! #   endif /* VMS */
+! #  endif
+  # endif
+! #endif /* RISC OS */
+  }
+  
+  #if defined(FEAT_SEARCHPATH) || defined(PROTO)
+--- 4589,4609 ----
+  vim_ispathsep(c)
+      int c;
+  {
+! #ifdef UNIX
+      return (c == '/');           /* UNIX has ':' inside file names */
+! #else
+! # ifdef BACKSLASH_IN_FILENAME
+      return (c == ':' || c == '/' || c == '\\');
+! # else
+! #  ifdef VMS
+      /* server"user passwd"::device:[full.path.name]fname.extension;version" */
+      return (c == ':' || c == '[' || c == ']' || c == '/'
+           || c == '<' || c == '>' || c == '"' );
+! #  else
+      return (c == ':' || c == '/');
+! #  endif /* VMS */
+  # endif
+! #endif
+  }
+  
+  #if defined(FEAT_SEARCHPATH) || defined(PROTO)
+*** ../vim-7.3.186/src/proto.h 2010-08-15 21:57:29.000000000 +0200
+--- src/proto.h        2011-05-10 16:29:45.000000000 +0200
+***************
+*** 62,70 ****
+  # ifdef __BEOS__
+  #  include "os_beos.pro"
+  # endif
+- # ifdef RISCOS
+- #  include "os_riscos.pro"
+- # endif
+  # ifdef __QNX__
+  #  include "os_qnx.pro"
+  # endif
+--- 62,67 ----
+***************
+*** 245,253 ****
+  #  ifdef FEAT_GUI_X11
+  #   include "gui_x11.pro"
+  #  endif
+- #  ifdef RISCOS
+- #   include "gui_riscos.pro"
+- #  endif
+  #  ifdef FEAT_GUI_PHOTON
+  #   include "gui_photon.pro"
+  #  endif
+--- 242,247 ----
+*** ../vim-7.3.186/src/quickfix.c      2011-05-05 17:14:07.000000000 +0200
+--- src/quickfix.c     2011-05-10 16:30:18.000000000 +0200
+***************
+*** 1182,1202 ****
+      if (fname == NULL || *fname == NUL)              /* no file name */
+       return 0;
+      {
+- #ifdef RISCOS
+-      /* Name is reported as `main.c', but file is `c.main' */
+-      return ro_buflist_add(fname);
+- #else
+       char_u      *ptr;
+       int         fnum;
+  
+! # ifdef VMS
+       vms_remove_version(fname);
+! # endif
+! # ifdef BACKSLASH_IN_FILENAME
+       if (directory != NULL)
+           slash_adjust(directory);
+       slash_adjust(fname);
+! # endif
+       if (directory != NULL && !vim_isAbsName(fname)
+               && (ptr = concat_fnames(directory, fname, TRUE)) != NULL)
+       {
+--- 1182,1198 ----
+      if (fname == NULL || *fname == NUL)              /* no file name */
+       return 0;
+      {
+       char_u      *ptr;
+       int         fnum;
+  
+! #ifdef VMS
+       vms_remove_version(fname);
+! #endif
+! #ifdef BACKSLASH_IN_FILENAME
+       if (directory != NULL)
+           slash_adjust(directory);
+       slash_adjust(fname);
+! #endif
+       if (directory != NULL && !vim_isAbsName(fname)
+               && (ptr = concat_fnames(directory, fname, TRUE)) != NULL)
+       {
+***************
+*** 1221,1227 ****
+           return fnum;
+       }
+       return buflist_add(fname, 0);
+- #endif
+      }
+  }
+  
+--- 1217,1222 ----
+*** ../vim-7.3.186/src/search.c        2011-02-25 18:38:29.000000000 +0100
+--- src/search.c       2011-05-10 16:30:38.000000000 +0200
+***************
+*** 4581,4589 ****
+      char_u   *already = NULL;
+      char_u   *startp = NULL;
+      char_u   *inc_opt = NULL;
+- #ifdef RISCOS
+-     int              previous_munging = __riscosify_control;
+- #endif
+  #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+      win_T    *curwin_save = NULL;
+  #endif
+--- 4581,4586 ----
+***************
+*** 4596,4606 ****
+      if (file_line == NULL)
+       return;
+  
+- #ifdef RISCOS
+-     /* UnixLib knows best how to munge c file names - turn munging back on. */
+-     int __riscosify_control = 0;
+- #endif
+- 
+      if (type != CHECK_PATH && type != FIND_DEFINE
+  #ifdef FEAT_INS_EXPAND
+       /* when CONT_SOL is set compare "ptr" with the beginning of the line
+--- 4593,4598 ----
+***************
+*** 5228,5238 ****
+      vim_free(regmatch.regprog);
+      vim_free(incl_regmatch.regprog);
+      vim_free(def_regmatch.regprog);
+- 
+- #ifdef RISCOS
+-    /* Restore previous file munging state. */
+-     __riscosify_control = previous_munging;
+- #endif
+  }
+  
+      static void
+--- 5220,5225 ----
+*** ../vim-7.3.186/src/structs.h       2011-03-22 18:10:34.000000000 +0100
+--- src/structs.h      2011-05-10 16:30:49.000000000 +0200
+***************
+*** 2366,2376 ****
+      MenuHandle       menu_handle;
+      MenuHandle       submenu_handle;
+  #endif
+- #ifdef RISCOS
+-     int              *id;                /* Not used, but gui.c needs it */
+-     int              greyed_out;         /* Flag */
+-     int              hidden;
+- #endif
+  #ifdef FEAT_GUI_PHOTON
+      PtWidget_t       *id;
+      PtWidget_t       *submenu_id;
+--- 2366,2371 ----
+*** ../vim-7.3.186/src/term.c  2010-12-30 14:47:32.000000000 +0100
+--- src/term.c 2011-05-10 16:31:41.000000000 +0200
+***************
+*** 52,58 ****
+  
+  /*
+   * Here are the builtin termcap entries.  They are not stored as complete
+!  * Tcarr structures, as such a structure is too big.
+   *
+   * The entries are compact, therefore they normally are included even when
+   * HAVE_TGETENT is defined. When HAVE_TGETENT is defined, the builtin entries
+--- 52,58 ----
+  
+  /*
+   * Here are the builtin termcap entries.  They are not stored as complete
+!  * structures with all entries, as such a structure is too big.
+   *
+   * The entries are compact, therefore they normally are included even when
+   * HAVE_TGETENT is defined. When HAVE_TGETENT is defined, the builtin entries
+***************
+*** 199,269 ****
+  #endif
+  
+  #ifndef NO_BUILTIN_TCAPS
+- # if defined(RISCOS) || defined(ALL_BUILTIN_TCAPS)
+- /*
+-  * Default for the Acorn.
+-  */
+-     {(int)KS_NAME,   "riscos"},
+-     {(int)KS_CL,     "\014"},                /* Cls and Home Cursor */
+-     {(int)KS_CM,     "\001%d\001%d\002"},    /* Position cursor */
+- 
+-     {(int)KS_CCO,    "16"},                  /* Allow 16 colors */
+- 
+-     {(int)KS_CAF,    "\001%d\021"},          /* Set foreground colour */
+-     {(int)KS_CAB,    "\001%d\022"},          /* Set background colour */
+- 
+- 
+-     {(int)KS_ME,     "\004"},                /* Normal mode */
+-     {(int)KS_MR,     "\005"},                /* Reverse */
+- 
+-     {(int)KS_VI,     "\016"},                /* Cursor invisible */
+-     {(int)KS_VE,     "\017"},                /* Cursor visible */
+-     {(int)KS_VS,     "\020"},                /* Cursor very visible */
+- 
+-     {(int)KS_CS,     "\001%d\001%d\003"},    /* Set scroll region */
+-     {(int)KS_SR,     "\023"},                /* Scroll text down */
+-     {K_UP,           "\217"},
+-     {K_DOWN,         "\216"},
+-     {K_LEFT,         "\214"},
+-     {K_RIGHT,                "\215"},
+-     {K_S_UP,         "\237"},
+-     {K_S_DOWN,               "\236"},
+-     {K_S_LEFT,               "\234"},
+-     {K_S_RIGHT,              "\235"},
+- 
+-     {K_F1,           "\201"},
+-     {K_F2,           "\202"},
+-     {K_F3,           "\203"},
+-     {K_F4,           "\204"},
+-     {K_F5,           "\205"},
+-     {K_F6,           "\206"},
+-     {K_F7,           "\207"},
+-     {K_F8,           "\210"},
+-     {K_F9,           "\211"},
+-     {K_F10,          "\312"},
+-     {K_F11,          "\313"},
+-     {K_F12,          "\314"},
+-     {K_S_F1,         "\221"},
+-     {K_S_F2,         "\222"},
+-     {K_S_F3,         "\223"},
+-     {K_S_F4,         "\224"},
+-     {K_S_F5,         "\225"},
+-     {K_S_F6,         "\226"},
+-     {K_S_F7,         "\227"},
+-     {K_S_F8,         "\230"},
+-     {K_S_F9,         "\231"},
+-     {K_S_F10,                "\332"},
+-     {K_S_F11,                "\333"},
+-     {K_S_F12,                "\334"},
+-     {K_BS,           "\010"},
+-     {K_INS,          "\315"},
+-     {K_DEL,          "\177"},
+-     {K_HOME,         "\036"},
+-     {K_END,          "\213"},
+-     {K_PAGEUP,               "\237"},
+-     {K_PAGEDOWN,     "\236"},
+- # endif      /* Acorn terminal */
+- 
+  
+  # if defined(AMIGA) || defined(ALL_BUILTIN_TCAPS)
+  /*
+--- 199,204 ----
+***************
+*** 1399,1408 ****
+  /*
+   * DEFAULT_TERM is used, when no terminal is specified with -T option or $TERM.
+   */
+- #ifdef RISCOS
+- # define DEFAULT_TERM        (char_u *)"riscos"
+- #endif
+- 
+  #ifdef AMIGA
+  # define DEFAULT_TERM        (char_u *)"amiga"
+  #endif
+--- 1334,1339 ----
+*** ../vim-7.3.186/src/termlib.c       2010-08-15 21:57:30.000000000 +0200
+--- src/termlib.c      2011-05-10 16:31:58.000000000 +0200
+***************
+*** 13,19 ****
+  #include "vim.h"
+  #include "termlib.pro"
+  
+! #if !defined(AMIGA) && !defined(VMS) && !defined(MACOS) && !defined(RISCOS)
+  # include <sgtty.h>
+  #endif
+  
+--- 13,19 ----
+  #include "vim.h"
+  #include "termlib.pro"
+  
+! #if !defined(AMIGA) && !defined(VMS) && !defined(MACOS)
+  # include <sgtty.h>
+  #endif
+  
+*** ../vim-7.3.186/src/version.c       2011-05-10 16:12:40.000000000 +0200
+--- src/version.c      2011-05-10 16:37:20.000000000 +0200
+***************
+*** 1205,1213 ****
+  # endif
+  #endif
+  
+- #ifdef RISCOS
+-     MSG_PUTS(_("\nRISC OS version"));
+- #endif
+  #ifdef VMS
+      MSG_PUTS(_("\nOpenVMS version"));
+  # ifdef HAVE_PATHDEF
+--- 1207,1212 ----
+*** ../vim-7.3.186/src/vim.h   2011-05-05 16:41:19.000000000 +0200
+--- src/vim.h  2011-05-10 16:32:40.000000000 +0200
+***************
+*** 184,192 ****
+  #  define SIZEOF_INT 2
+  # endif
+  #endif
+- #ifdef RISCOS
+- # define SIZEOF_INT 4
+- #endif
+  
+  
+  #include "feature.h" /* #defines for optionals and features */
+--- 184,189 ----
+***************
+*** 340,349 ****
+  # include "os_mac.h"
+  #endif
+  
+- #ifdef RISCOS
+- # include "os_riscos.h"
+- #endif
+- 
+  #ifdef __QNX__
+  # include "os_qnx.h"
+  #endif
+--- 337,342 ----
+*** ../vim-7.3.186/src/gui_riscos.h    2010-08-15 21:57:28.000000000 +0200
+--- src/gui_riscos.h   1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,32 ****
+- /* vi:set ts=8 sts=4 sw=4:
+-  *
+-  * VIM - Vi IMproved by Bram Moolenaar
+-  *
+-  * Do ":help uganda"  in Vim to read copying and usage conditions.
+-  * Do ":help credits" in Vim to see a list of people who contributed.
+-  */
+- 
+- #define FEAT_BROWSE
+- 
+- #define TASK 0x4b534154
+- 
+- /* Nested wimp flags: */
+- #define CHILD_FIX_TO_WORKAREA        0
+- #define CHILD_FIX_TO_LEFT    1
+- #define CHILD_FIX_TO_BOTTOM  1
+- #define CHILD_FIX_TO_RIGHT   2
+- #define CHILD_FIX_TO_TOP     2
+- 
+- #define CHILD_SELF_SCROLL    0
+- #define CHILD_PARENT_SCROLL  1
+- 
+- #define CHILD_LEFT           16
+- #define CHILD_BOTTOM         18
+- #define CHILD_RIGHT          20
+- #define CHILD_TOP            22
+- #define CHILD_SCROLL_X               24
+- #define CHILD_SCROLL_Y               26
+- 
+- int wimp_poll(int mask, int *block);
+- int wimp_poll_idle(int mask, int *block, int end_time);
+- void ro_open_main(int *block);
+--- 0 ----
+*** ../vim-7.3.186/src/os_riscos.h     2010-08-15 21:57:30.000000000 +0200
+--- src/os_riscos.h    1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,166 ****
+- /* vi:set ts=8 sts=4 sw=4:
+-  *
+-  * VIM - Vi IMproved by Bram Moolenaar
+-  *
+-  * Do ":help uganda"  in Vim to read copying and usage conditions.
+-  * Do ":help credits" in Vim to see a list of people who contributed.
+-  */
+- 
+- #include <sys/types.h>
+- #include <sys/stat.h>
+- #include <sys/ioctl.h>
+- #include <termios.h>
+- #include <stdlib.h>
+- #include <unixlib/local.h>
+- #include <errno.h>
+- #include <fcntl.h>
+- 
+- #define CASE_INSENSITIVE_FILENAME
+- #define FEAT_MODIFY_FNAME
+- #define FEAT_OSFILETYPE
+- #define DFLT_OFT     "Text"
+- #define USE_TERM_CONSOLE
+- #define HAVE_AVAIL_MEM
+- 
+- /* Longer filenames now accessible to all */
+- #ifndef BASENAMELEN
+- # define BASENAMELEN 64 /* Same length as unzip */
+- #endif
+- 
+- #ifndef TEMNAME
+- # define TEMPNAME    "<Wimp$ScrapDir>.v?XXXXXX"
+- # define TEMPNAMELEN 25
+- #endif
+- 
+- #ifndef DFLT_HELPFILE
+- # define DFLT_HELPFILE "Vim:doc.help"
+- #endif
+- 
+- #ifndef DFLT_BDIR
+- # define DFLT_BDIR   ".,<Wimp$ScrapDir>."    /* default for 'backupdir' */
+- #endif
+- 
+- /* Paths to try putting swap file in. */
+- #ifndef DFLT_DIR
+- # define DFLT_DIR    "<Wimp$ScrapDir>.,."    /* default for 'directory' */
+- #endif
+- 
+- #ifndef DFLT_VDIR
+- # define DFLT_VDIR   "Choices:Vim.view"      /* default for 'viewdir' */
+- #endif
+- 
+- #ifndef TERMCAPFILE
+- # define TERMCAPFILE "Vim:TermCap"
+- #endif
+- #define HAVE_TGETENT
+- 
+- #ifndef SYNTAX_FNAME
+- # define SYNTAX_FNAME        "Vim:Syntax.%s"
+- #endif
+- 
+- #ifndef EVIM_FILE
+- # define EVIM_FILE   "Vim:Evim"
+- #endif
+- 
+- #define FEAT_VIMINFO
+- 
+- #ifndef VIMINFO_FILE
+- # define VIMINFO_FILE        "<Choices$Write>.Vim.VimInfo"
+- #endif
+- #ifndef VIMINFO_FILE2
+- # define VIMINFO_FILE2       "Choices:Vim.VimInfo"
+- #endif
+- 
+- #ifndef VIMRC_FILE
+- # define VIMRC_FILE  "/vimrc"
+- #endif
+- #ifndef EXRC_FILE
+- # define EXRC_FILE   "/exrc"
+- #endif
+- #ifndef GVIMRC_FILE
+- # define GVIMRC_FILE "/gvimrc"
+- #endif
+- #ifndef USR_VIMRC_FILE
+- # define USR_VIMRC_FILE      "Vim:Evim"
+- #endif
+- #ifndef SESSION_FILE
+- # define SESSION_FILE        "/Session.vim"
+- #endif
+- #ifndef USR_VIMRC_FILE
+- # define USR_VIMRC_FILE      "Choices:Vim.VimRC"
+- #endif
+- #ifndef USR_GVIMRC_FILE
+- # define USR_GVIMRC_FILE    "Choices:Vim.GVimRC"
+- #endif
+- #ifndef USR_EXRC_FILE
+- # define USR_EXRC_FILE    "Choices:Vim.ExRC"
+- #endif
+- #ifndef SYS_VIMRC_FILE
+- # define SYS_VIMRC_FILE          "Vim:VimRC"
+- #endif
+- #ifndef SYS_GVIMRC_FILE
+- # define SYS_GVIMRC_FILE    "Vim:GVimRC"
+- #endif
+- #ifndef SYS_MENU_FILE
+- # define SYS_MENU_FILE           "Vim:Menu"
+- #endif
+- #ifndef SYS_OPTWIN_FILE
+- # define SYS_OPTWIN_FILE    "Vim:Optwin"
+- #endif
+- #ifndef FILETYPE_FILE
+- # define FILETYPE_FILE           "Vim:Filetype"
+- #endif
+- #ifndef FTPLUGIN_FILE
+- # define FTPLUGIN_FILE           "Vim:Ftplugin/vim"
+- #endif
+- #ifndef INDENT_FILE
+- # define INDENT_FILE     "Vim:Indent/vim"
+- #endif
+- #ifndef FTOFF_FILE
+- # define FTOFF_FILE      "Vim:Ftoff"
+- #endif
+- #ifndef FTPLUGOF_FILE
+- # define FTPLUGOF_FILE           "Vim:Ftplugof"
+- #endif
+- #ifndef INDOFF_FILE
+- # define INDOFF_FILE     "Vim:Indoff"
+- #endif
+- 
+- #define DFLT_ERRORFILE               "errors/vim"
+- #define DFLT_RUNTIMEPATH     "Choices:Vim,Vim:,Choices:Vim.after"
+- 
+- /*
+-  * RISC PCs have plenty of memory, use large buffers
+-  */
+- #define CMDBUFFSIZE 1024     /* size of the command processing buffer */
+- #define MAXPATHL    256              /* paths are always quite short though */
+- 
+- #ifndef DFLT_MAXMEM
+- # define DFLT_MAXMEM (5*1024)    /* use up to 5 Mbyte for a buffer */
+- #endif
+- 
+- #ifndef DFLT_MAXMEMTOT
+- # define DFLT_MAXMEMTOT      (10*1024)    /* use up to 10 Mbyte for Vim */
+- #endif
+- 
+- #ifdef HAVE_SIGSET
+- # define signal sigset
+- #endif
+- 
+- #define n_flag (1<<31)
+- #define z_flag (1<<30)
+- #define c_flag (1<<29)
+- #define v_flag (1<<28)
+- 
+- /* These take r0-r7 as inputs, returns r0-r7 in global variables. */
+- void swi(int swinum, ...);      /* Handles errors itself */
+- int xswi(int swinum, ...);      /* Returns errors using v flag */
+- extern int r0, r1, r2, r3, r4, r5, r6, r7;  /* For return values */
+- 
+- #include <kernel.h>
+- #include <swis.h>
+- 
+- #define mch_memmove(to, from, len) memmove((char *)(to), (char *)(from), len)
+- #define mch_rename(src, dst) rename(src, dst)
+- #define mch_getenv(x) (char_u *)getenv((char *)x)
+- #define mch_setenv(name, val, x) setenv(name, val, x)
+--- 0 ----
+*** ../vim-7.3.186/src/gui_riscos.c    2011-05-10 15:52:10.000000000 +0200
+--- src/gui_riscos.c   1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,3558 ****
+- /* vi:set ts=8 sts=4 sw=4:
+-  *
+-  * VIM - Vi IMproved by Bram Moolenaar
+-  *
+-  * Do ":help uganda"  in Vim to read copying and usage conditions.
+-  * Do ":help credits" in Vim to see a list of people who contributed.
+-  * See README.txt for an overview of the Vim source code.
+-  */
+- 
+- #include "vim.h"
+- #include <string.h>
+- 
+- /*
+-  * gui_riscos.c
+-  *
+-  * Thomas Leonard <tal197@ecs.soton.ac.uk>
+-  * Updated by Andy Wingate <andy@sparse.net>
+-  */
+- 
+- extern int time_of_last_poll;
+- 
+- int task_handle = 0;         /* Zero means we are not yet a Wimp task */
+- int child_handle = 0;                /* Task handle of our child process (zero if none). */
+- int *wimp_menu = (int *) -1; /* Pointer to a Wimp menu structure (or -1) */
+- int save_window = -1;                /* Save As window handle */
+- 
+- int *redraw_block = NULL;    /* NULL means not in a redraw loop. */
+- int ro_return_early = FALSE; /* Break out of gui_mch_wait_for_chars() */
+- 
+- int leaf_ref = 0;            /* Wimp message number - send via Wimp$Scrap */
+- char_u *leaf_name = NULL;    /* Leaf name from DataSave */
+- 
+- int default_columns = 120;   /* These values are used if the --rows and --columns */
+- int default_rows = 32;               /* options aren't used on startup. */
+- 
+- #define DRAG_FALSE       0
+- #define DRAG_SELECTION           1
+- #define DRAG_RESIZE_WINDOW  2
+- int ro_dragging = DRAG_FALSE;
+- int drag_button;
+- int drag_modifiers;
+- int drag_x_offset;
+- int drag_y_offset;
+- 
+- int nested_wimp = FALSE;     /* Bool - can we use the new wimp? */
+- 
+- int changed_mode = FALSE;
+- int x_eigen_factor;
+- int y_eigen_factor;
+- 
+- /* If ro_current_font is non-zero then use the outline font with that handle,
+-  * otherwise, if zap_redraw is TRUE then use ZapRedraw, otherwise use the
+-  * system font.
+-  *
+-  * If zap_redraw is TRUE then zap_file[] contains valid Zap font file
+-  * pointers (or NULLs).
+-  */
+- int ro_current_font = 0;     /* 0 is system font, or ZapRedraw */
+- int font_x_offset   = 0;     /* Where to position each char in its box */
+- int font_y_offset   = 0;
+- 
+- int zap_redraw           = FALSE;
+- int double_height   = FALSE; /* Plot each line twice? */
+- 
+- #define grgb(r,g,b) ((b<<16) + (g<<8) + (r))
+- #define UNUSED_COLOUR (gui.back_pixel)
+- 
+- #define RO_LOAD_CLIPBOARD -2 /* Internal handle for DataSave message. */
+- 
+- /* Changes by John Kortink, 22-23 July 1998
+-  *
+-  * Stuff to make redraw a lot faster. Almost all of it is right here below,
+-  * elsewhere changes are marked with 'JK230798'. Apart from a small change in
+-  * 'gui.c' all changes are limited to this file, 'gui_riscos.c'. The change in
+-  * 'gui.c' is to make Vim stop being 'smart' not redrawing characters that are
+-  * 'already there' (i.e. from the previous line, by coincidence). This caused a
+-  * lot more calls to the redraw code, which we want to avoid because a few nice
+-  * big strings at a time is a lot faster than a truckload of small ones. ('Dear
+-  * Bram ...').
+-  */
+- 
+- /* The ZapRedraw structure */
+- 
+- static struct
+- {
+-     int              r_flags;
+-     int              r_minx;
+-     int              r_miny;
+-     int              r_maxx;
+-     int              r_maxy;
+-     int              r_screen;
+-     int              r_bpl;
+-     int              r_bpp;
+-     int              r_charw;
+-     int              r_charh;
+-     char     *r_caddr;
+-     int              r_cbpl;
+-     int              r_cbpc;
+-     int              r_linesp;
+-     int              r_data;
+-     int              r_scrollx;
+-     int              r_scrolly;
+-     int              *r_palette;
+-     int              r_for;
+-     int              r_bac;
+-     char     *r_workarea;
+-     int              r_magx;
+-     int              r_magy;
+-     int              r_xsize;
+-     int              r_ysize;
+-     int              r_mode;
+- }
+- zap_redraw_block;
+- 
+- /* Other globals */
+- 
+- static int   zap_redraw_initialised = FALSE;
+- static int   zap_redraw_update_colours;
+- static int   zap_redraw_colours[2];
+- static int   zap_redraw_palette[16];
+- 
+- /* Holds the current Zap font file(s).
+-  * The font is recreated from this block on a mode change.
+-  * When using zap, element ZAP_NORMAL is always valid, but
+-  * the others can be NULL.
+-  */
+- 
+- #define ZAP_NORMAL  0
+- #define ZAP_BOLD    1
+- #define ZAP_ITALIC  2
+- #define ZAP_BITALIC 3
+- #define ZAP_STYLES  4
+- 
+- /* Zap font file format data */
+- static char  *zap_file[ZAP_STYLES] = {NULL, NULL, NULL, NULL};
+- 
+- /* r_caddr format for current mode */
+- static char  *zap_caddr[ZAP_STYLES] = {NULL, NULL, NULL, NULL};
+- 
+- static void ro_remove_menu(int *menu);
+- 
+- /*
+-  * Initialise all the ZapRedraw stuff.
+-  * Call this when changing font and after each mode change.
+-  * zap_redraw_bitmap must contain a valid Zap font file (possibly
+-  * created from the system font).
+-  *
+-  * Return FAIL to revert to system font (if we can't use ZapRedraw).
+-  */
+-     int
+- ro_zap_redraw_initialise()
+- {
+-     int          bytes_per_bitmap_char;
+-     int          first, last;
+-     int          i;
+- 
+-     /* Can't have initialisers for struct members :-(, ok, this way then ... */
+-     if (!zap_redraw_initialised)
+-     {
+-      zap_redraw_block.r_workarea = NULL;
+-      zap_redraw_initialised = TRUE;
+-     }
+- 
+-     /* We redraw in DSA mode */
+-     zap_redraw_block.r_flags = 0x0;
+- 
+-     /* Let ZapRedraw get the screen address for us */
+-     zap_redraw_block.r_screen = 0;
+- 
+-     /* Read the font width and height from the font file header.
+-      * Assume that all styles are the same size.
+-      * ZAP_NORMAL is always present.
+-      */
+-     zap_redraw_block.r_charw = ((int *) zap_file[ZAP_NORMAL])[2];
+-     zap_redraw_block.r_charh = ((int *) zap_file[ZAP_NORMAL])[3];
+- 
+-     /* We have no linespacing */
+-     zap_redraw_block.r_linesp = 0;
+- 
+-     /* Fix foreground = colour 1 */
+-     zap_redraw_block.r_for = 1;
+- 
+-     /* Fix background = colour 0 */
+-     zap_redraw_block.r_bac = 0;
+- 
+-     /* Colour mask buffer */
+-     zap_redraw_block.r_palette = zap_redraw_palette;
+- 
+-     /* Allocate local workspace (for the few calls following here) */
+-     if (zap_redraw_block.r_workarea != NULL)
+-      free(zap_redraw_block.r_workarea);
+-     zap_redraw_block.r_workarea = (char*) malloc(128);
+-     if (!zap_redraw_block.r_workarea)
+-      return FAIL;    /* Out of memory */
+- 
+-     /* Fill in VDU variables */
+-     if (xswi(ZapRedraw_ReadVduVars, 0, &zap_redraw_block) & v_flag)
+-      return FAIL;        /* Can't find ZapRedraw module - use VDU instead */
+- 
+-     /* Determine cbpl and cbpc */
+-     swi(ZapRedraw_CachedCharSize, zap_redraw_block.r_bpp, 0,
+-      zap_redraw_block.r_charw, zap_redraw_block.r_charh);
+-     zap_redraw_block.r_cbpl = r2;
+-     zap_redraw_block.r_cbpc = r3;
+- 
+-     /* Allocate general workspace (for the calls outside) */
+-     if (zap_redraw_block.r_workarea != NULL)
+-      free(zap_redraw_block.r_workarea);
+-     zap_redraw_block.r_workarea = (char*) malloc(128 + zap_redraw_block.r_cbpl);
+-     if (!zap_redraw_block.r_workarea)
+-      return FAIL;    /* Out of memory */
+- 
+-     /* Now convert the 1 bpp character data ready for the current mode */
+- 
+-     bytes_per_bitmap_char = (zap_redraw_block.r_charw * zap_redraw_block.r_charh + 7) / 8;
+- 
+-     /* Convert the fonts from 1bpp to a format suitable for the
+-      * current mode.
+-      */
+-     for (i = 0; i < ZAP_STYLES; i++)
+-     {
+-      first = ((int *) zap_file[i])[4];
+-      last  = ((int *) zap_file[i])[5];
+- 
+-      if (last > 255)
+-          last = 255; /* Don't convert cursors (overwrites memory!) */
+- 
+-      /* Allocate the font cache */
+-      vim_free(zap_caddr[i]);
+-      if (zap_file[i])
+-          zap_caddr[i] = (char*) malloc(zap_redraw_block.r_cbpc * 256);
+-      else
+-          zap_caddr[i] = NULL;    /* No file for this style */
+- 
+-      if (zap_caddr[i])
+-      {
+-          zap_redraw_block.r_caddr = zap_caddr[i];
+- 
+-          swi(ZapRedraw_ConvertBitmap, 0, &zap_redraw_block,
+-                  first, last,                /* Range of characters to convert */
+-                  zap_file[i] + 0x20  /* Addr of first char provided by font */
+-                  - first * bytes_per_bitmap_char);
+-      }
+-     }
+- 
+-     if (!zap_caddr[ZAP_NORMAL])
+-     {
+-      zap_redraw = FALSE;     /* Out of memory */
+-      return FAIL;
+-     }
+- 
+-     /* Next time we need them, we have to update the colour masks */
+-     zap_redraw_update_colours = TRUE;
+- 
+-     return OK;
+- }
+- 
+- /*
+-  * Redraw a string at OS coordinates <x,y> (top-left, x inclusive, y exclusive).
+-  * Graphics clip window is window[0..3] as in R1+28..40 of Wimp_RedrawWindow.
+-  * Returns (possibly modified) flags.
+-  */
+-     int
+- ro_zap_redraw_draw_string(x, y, string, length, flags, clip)
+-     int          x;
+-     int          y;
+-     char    *string;
+-     int          length;
+-     int          flags;      /* DRAW_TRANSP, DRAW_BOLD, DRAW_UNDERL, DRAW_ITALIC */
+-     int          *clip;
+- {
+-     char redraw_data[1024];
+-     int clip_minx;
+-     int clip_miny;
+-     int clip_maxx;
+-     int clip_maxy;
+-     int os_xshift = zap_redraw_block.r_magx;
+-     int os_yshift = zap_redraw_block.r_magy;
+- 
+-     if (flags & DRAW_TRANSP)
+-      return flags;   /* We don't do transparent plotting yet. */
+- 
+-     if (flags & DRAW_BOLD)
+-     {
+-      if (flags & DRAW_ITALIC && zap_caddr[ZAP_BITALIC])
+-          zap_redraw_block.r_caddr = zap_caddr[ZAP_BITALIC];
+-      else
+-          zap_redraw_block.r_caddr = zap_caddr[ZAP_BOLD];
+-     }
+-     else
+-     {
+-      if (flags & DRAW_ITALIC)
+-          zap_redraw_block.r_caddr = zap_caddr[ZAP_ITALIC];
+-      else
+-          zap_redraw_block.r_caddr = zap_caddr[ZAP_NORMAL];
+-     }
+-     if (!zap_redraw_block.r_caddr)
+-     {
+-      zap_redraw_block.r_caddr = zap_caddr[ZAP_NORMAL];
+-      flags |= DRAW_UNDERL;       /* Style missing - we can always underline */
+-     }
+- 
+-     /* Set the vertical scaling flag */
+-     if (double_height)
+-      zap_redraw_block.r_flags = 1 << 1;
+-     else
+-      zap_redraw_block.r_flags = 0;
+- 
+-     /* Update the colour masks (if needed) */
+-     if (zap_redraw_update_colours)
+-     {
+-      swi(ZapRedraw_CreatePalette, 2,
+-              &zap_redraw_block,
+-              zap_redraw_colours,
+-              zap_redraw_block.r_palette, 2);
+-      zap_redraw_update_colours = FALSE;
+-     }
+- 
+-     /* Target rectangle in ZapRedraw rectangle coordinates (pixels, Y-min/max reversed !!!) */
+-     zap_redraw_block.r_minx = x >> os_xshift;                                        /* inclusive */
+-     zap_redraw_block.r_miny = zap_redraw_block.r_ysize - (y >> os_yshift);   /* inclusive */
+-     zap_redraw_block.r_maxx = (x + length * gui.char_width) >> os_xshift;    /* exclusive */
+-     zap_redraw_block.r_maxy = zap_redraw_block.r_ysize - ((y - gui.char_height) >> os_yshift);
+-                                                                              /* exclusive */
+- 
+-     /* Clip rectangle in ZapRedraw rectangle coordinates (pixels, Y-min/max reversed !!!) */
+-     clip_minx = clip[0] >> os_xshift;                                        /* inclusive */
+-     clip_miny = zap_redraw_block.r_ysize - (clip[3] >> os_yshift);   /* inclusive */
+-     clip_maxx = clip[2] >> os_xshift;                                        /* exclusive */
+-     clip_maxy = zap_redraw_block.r_ysize - (clip[1] >> os_yshift);   /* exclusive */
+- 
+-     /* Clip target rectangle against the current graphics window */
+-     if (zap_redraw_block.r_minx < clip_minx)
+-     {
+-      zap_redraw_block.r_scrollx = clip_minx - zap_redraw_block.r_minx;
+-      zap_redraw_block.r_minx = clip_minx;
+-     }
+-     else
+-      zap_redraw_block.r_scrollx = 0;
+-     if (zap_redraw_block.r_miny < clip_miny)
+-     {
+-      zap_redraw_block.r_scrolly = clip_miny - zap_redraw_block.r_miny;
+-      zap_redraw_block.r_miny = clip_miny;
+-     }
+-     else
+-      zap_redraw_block.r_scrolly = 0;
+-     if (zap_redraw_block.r_maxx > clip_maxx)
+-      zap_redraw_block.r_maxx = clip_maxx;
+-     if (zap_redraw_block.r_maxy > clip_maxy)
+-      zap_redraw_block.r_maxy = clip_maxy;
+- 
+-     /* Fill in the character data structure */
+-     if (length > (sizeof(redraw_data) - 2 * 4 - 2))
+-      length = sizeof(redraw_data) - 2 * 4 - 2;
+-     ((int*) redraw_data)[0] = 2 * 4;
+-     ((int*) redraw_data)[1] = 0;
+-     strncpy(redraw_data + 2 * 4, string, length);
+-     redraw_data[2 * 4 + length + 0] = '\0';
+-     redraw_data[2 * 4 + length + 1] = '\x2';
+-     zap_redraw_block.r_data = (int) redraw_data;
+- 
+-     /* Perform the draw */
+-     swi(ZapRedraw_RedrawArea, 0, &zap_redraw_block);
+- 
+-     return flags;
+- }
+- 
+- /*
+-  * Okay that was it from me, back to Thomas ...
+-  */
+- 
+- /*
+-  * Parse the GUI related command-line arguments.  Any arguments used are
+-  * deleted from argv, and *argc is decremented accordingly.  This is called
+-  * when vim is started, whether or not the GUI has been started.
+-  */
+-     void
+- gui_mch_prepare(int *argc, char **argv)
+- {
+-     int          arg = 1;
+- 
+-     while (arg < *argc - 1)
+-     {
+-      if (strcmp(argv[arg], "--rows") == 0 || strcmp(argv[arg], "--columns") == 0)
+-      {
+-          int     value;
+- 
+-          value = atoi(argv[arg + 1]);
+- 
+-          if (argv[arg][2] == 'r')
+-              default_rows = value;
+-          else
+-              default_columns = value;
+- 
+-          /* Delete argument from argv[]. (hope this is read/write!) */
+- 
+-          *argc -= 2;
+-          if (*argc > arg)
+-          mch_memmove(&argv[arg], &argv[arg + 2], (*argc - arg)
+-                  * sizeof(char *));
+-      }
+-      else
+-          arg++;
+-     }
+- }
+- 
+- /* Fatal error on initialisation - report it and die. */
+-     void
+- ro_die(error)
+-     char_u *error;   /* RISC OS error block */
+- {
+-     swi(Wimp_ReportError, error, 5, "GVim");
+-     exit(EXIT_FAILURE);
+- }
+- 
+- /* Find the sizes of the window tools:
+-  *
+-  * Create a test window.
+-  * Find inner and outer sizes.
+-  * Find the difference.
+-  * Delete window.
+-  *
+-  * While we're here, find the eigen values too.
+-  */
+-     void
+- ro_measure_tools()
+- {
+-     int block[10];
+-     int vdu[] = { 4, 5, -1};
+-     int test_window[] =
+-      {
+-          -100, -100,         /* Visible area : min X,Y */
+-          -50, -50,           /*                max X,Y */
+-          0,   0,             /* Scroll offsets */
+-          -1,                 /* Window in front */
+-          0xd0800150,         /* Window flags */
+-          0xff070207,         /* Colours */
+-          0x000c0103,         /* More colours */
+-          0, -0x4000,         /* Workarea extent */
+-          0x4000, 0,          /* max X,Y */
+-          0x00000000,         /* No title */
+-          0 << 12,            /* No workarea button type */
+-          1,                  /* Wimp sprite area */
+-          0x00010001,         /* Minimum width, height */
+-          0, 0, 0,            /* Title data (none) */
+-          0                   /* No icons */
+-      };
+-     int inner_max_x, inner_min_y;
+- 
+-     swi(Wimp_CreateWindow, 0, test_window);
+- 
+-     block[0] = r0;
+-     /* Open the window (and read state).
+-      * GetWindowOutline needs it too if the wimp isn't nested.
+-      */
+-     swi(Wimp_OpenWindow, 0, block);
+-     inner_max_x = block[3];
+-     inner_min_y = block[2];
+- 
+-     swi(Wimp_GetWindowOutline, 0, block);
+- 
+-     gui.scrollbar_width = block[3] - inner_max_x;
+-     gui.scrollbar_height = inner_min_y - block[2];
+- 
+-     swi(Wimp_DeleteWindow, 0, block);
+- 
+-     /* Read the size of one pixel. */
+-     swi(OS_ReadVduVariables, vdu, vdu);
+-     x_eigen_factor = vdu[0];
+-     y_eigen_factor = vdu[1];
+- }
+- 
+- /* Load a template from the current templates file.
+-  * Create the window and return its handle.
+-  */
+-     int
+- ro_load_template(str_name, title, title_size)
+-     char_u  *str_name;      /* Identifier of window in file (max 12 chars)   */
+-     char_u  **title;     /* If not NULL then return pointer to title here */
+-     int     *title_size;    /* If not NULL then return the title length here */
+- {
+-     int     *window;
+-     char    *data;
+-     int     name[4];
+- 
+-     strcpy( (char *) name, str_name);
+- 
+-     /* Find how big we must make the buffers */
+- 
+-     if (xswi(Wimp_LoadTemplate, 0, 0, 0, 0, -1, name, 0) & v_flag)
+-      ro_die( (char *) r0);
+- 
+-     window = malloc(r1);     /* Don't print text messages from alloc() */
+-     data = malloc(r2);
+-     if (window == NULL || data == NULL)
+-      ro_die("\0\0\0\0Out of memory - Can't load templates");
+- 
+-     /* Load the template into the buffers */
+- 
+-     swi(Wimp_LoadTemplate, 0,
+-                              window,         /* Temp block */
+-                              data,           /* Icon data */
+-                              data + r2 + 1,  /* End of icon data */
+-                              -1,             /* No fonts */
+-                              name, 0);       /* First match */
+-     if (r6 == 0)
+-      ro_die("\0\0\0\0Can't find window in Templates file");
+- 
+-     /* Create the window */
+- 
+-     if (xswi(Wimp_CreateWindow, 0, window) & v_flag)
+-      ro_die( (char *) r0);
+- 
+-     if (title)
+-      *title = (char_u *) window[18];
+-     if (title_size)
+-      *title_size = window[20];
+- 
+-     free(window);    /* Free temp block */
+-     return r0;               /* Return the window handle */
+- }
+- 
+- /*
+-  * Check if the GUI can be started.  Called before gvimrc is sourced.
+-  * Return OK or FAIL.
+-  */
+-     int
+- gui_mch_init_check()
+- {
+-     return OK;               /* TODO: GUI can always be started? */
+- }
+- 
+- /*
+-  * Initialise the RISC OS GUI.
+-  * Create all the windows.
+-  * Returns OK for success, FAIL when the GUI can't be started.
+-  */
+-     int
+- gui_mch_init()
+- {
+-     int     messages[] = {
+-          1, 2, 3, 4, /* DataSave, DataSaveAck, DataLoad, DataLoadAck */
+-          8,          /* PreQuit */
+-          0xf,        /* ClaimEntity (for clipboard) */
+-          0x10,       /* DataRequest (for clipboard) */
+-          0x400c1,    /* Mode change */
+-          0x400c3,    /* TaskCloseDown */
+-          0x400c9,    /* MenusDeleted */
+-          0x808c1,    /* TW_Output */
+-          0x808c2,    /* TW_Ego */
+-          0x808c3,    /* TW_Morio */
+-          0x808c4,    /* TW_Morite */
+-          0};         /* End-of-list. */
+- 
+- 
+-     /* There may have been some errors reported in the
+-      * command window before we get here. Wait if so.
+-      */
+-     swi(Wimp_ReadSysInfo, 3);
+-     if (r0 == 0)
+-      swi(Wimp_CommandWindow, 0);     /* Window opened - close with prompt */
+- 
+-     if (xswi(Wimp_Initialise, 310, 0x4b534154, "GVim", messages) & v_flag)
+-      return FAIL;
+-     nested_wimp = r0 >= 397;
+-     task_handle = r1;
+- 
+-     /* Load the templates. */
+- 
+-     if (xswi(Wimp_OpenTemplate, 0, "Vim:Templates") & v_flag)
+-      ro_die( (char *) r0);
+- 
+-     gui.window_handle = ro_load_template("editor",
+-          &gui.window_title,
+-          &gui.window_title_size);
+- 
+-     save_window = ro_load_template("save", NULL, NULL);
+- 
+-     swi(Wimp_CloseTemplate);
+- 
+-     /* Set default foreground and background colours. */
+- 
+-     gui.norm_pixel = gui.def_norm_pixel;
+-     gui.back_pixel = gui.def_back_pixel;
+- 
+-     /* Get the colours from the "Normal" and "Menu" group (set in syntax.c or
+-      * in a vimrc file) */
+- 
+-     set_normal_colors();
+- 
+-     /*
+-      * Check that none of the colors are the same as the background color
+-      */
+- 
+-     gui_check_colors();
+- 
+-     /* Get the colours for the highlight groups (gui_check_colors() might have
+-      * changed them) */
+- 
+-     highlight_gui_started();         /* re-init colours and fonts */
+- 
+-     /* Set geometry based on values read on initialisation. */
+- 
+-     gui.num_cols = Columns = default_columns;
+-     gui.num_rows = Rows    = default_rows;
+- 
+-     /* Get some information about our environment. */
+- 
+-     ro_measure_tools();
+- 
+-     return OK;
+- }
+- 
+- /*
+-  * Called when the foreground or background colour has been changed.
+-  */
+-     void
+- gui_mch_new_colors()
+- {
+- }
+- 
+- /*
+-  * Open the GUI window which was created by a call to gui_mch_init().
+-  */
+-     int
+- gui_mch_open(void)
+- {
+-     int block[10];
+- 
+-     block[0] = gui.window_handle;
+-     swi(Wimp_GetWindowState, 0, block);
+-     block[7] = -1;               /* Open at the top of the stack */
+-     swi(Wimp_OpenWindow, 0, block);
+- 
+-     /* Give the new window the input focus */
+-     swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
+- 
+-     if (gui_win_x != -1 && gui_win_y != -1)
+-      gui_mch_set_winpos(gui_win_x, gui_win_y);
+- 
+-     return OK;
+- }
+- 
+-     void
+- gui_mch_exit(int rc)
+- {
+-     int          block[64];
+- 
+-     /* Close window. Stops us from getting troublesome events
+-      * if we take a while to die.
+-      */
+-     block[0] = gui.window_handle;
+-     swi(Wimp_CloseWindow, 0, block);
+- 
+-     if (child_handle)
+-     {
+-      /* We still have a sub-task running - kill it */
+-      block[0] = 20;
+-      block[3] = 0;
+-      block[4] = 0;       /* Quit */
+-      if ((xswi(Wimp_SendMessage, 17, block, child_handle) & v_flag) == 0)
+-      {
+-          /* Idle until child dies. */
+-          while (child_handle)
+-          {
+-              process_event(wimp_poll(1, block), block);
+-          }
+-      }
+-     }
+- 
+-     exit(rc);
+- }
+- 
+- /*
+-  * Get the position of the top left corner of the window.
+-  */
+-     int
+- gui_mch_get_winpos(int *x, int *y)
+- {
+-     /* TODO */
+-     return FAIL;
+- }
+- 
+- /*
+-  * Set the position of the top left corner of the window to the given
+-  * coordinates.
+-  */
+-     void
+- gui_mch_set_winpos(int x, int y)
+- {
+-     /* TODO */
+- }
+- 
+-     void
+- gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction)
+-     int width;               /* In OS units */
+-     int height;
+-     int min_width;   /* Smallest permissible window size (ignored) */
+-     int min_height;
+-     int base_width;  /* Space for scroll bars, etc */
+-     int base_height;
+-     int direction;
+- {
+-     int s_width, s_height;
+-     int block[] = {
+-      gui.window_handle,
+-      0,
+-      -height + 1,
+-      width,
+-      1};
+- 
+-     gui_mch_get_screen_dimensions(&s_width, &s_height);
+-     s_width -= base_width;
+-     s_height -= base_height;             /* Underestimate - ignores titlebar */
+- 
+-     swi(Wimp_GetWindowState, 0, block);
+-     block[3]  = block[1] + width;
+-     block[2]  = block[4] - height;
+-     if (block[3] > s_width)
+-     {
+-      block[3] = s_width;
+-      block[1] = block[3] - width;
+-     }
+-     if (block[2] < gui.scrollbar_height)
+-     {
+-      block[2] = gui.scrollbar_height;
+-      block[4] = block[2] + height;
+-     }
+-     swi(Wimp_OpenWindow, 0, block);
+-     swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
+- }
+- 
+-     void
+- gui_mch_get_screen_dimensions(int *screen_w, int *screen_h)
+- {
+-     int block[] = {4, 5, 11, 12, -1};
+- 
+-     swi(OS_ReadVduVariables, block, block);
+-     *screen_w = (block[2] + 1) << block[0];
+-     *screen_h = (block[3] + 1) << block[1];
+- }
+- 
+- /* Take a font name with options and return a font handle, or
+-  * zero for failure.
+-  * Replace extension with 'Bold' or 'Italic' depending on modifiers.
+-  */
+-     int
+- ro_get_font(fullname, weight)
+-     char_u   *fullname;
+-     int              weight;         /* Initial weights:
+-                               * BIT      MEANING
+-                               * 0        bold
+-                               * 1        italic
+-                               */
+- {
+-     char_u   *arg;
+-     char_u   font[41];
+-     int              width = -1;
+-     int              height = -1;
+-     int              name_len;
+-     int              i;
+-     char_u   c;
+- 
+-     for (i = 0; i < 39;)
+-     {
+-      c = fullname[i];
+-      if (c == ':' || c == NUL || c == '.')
+-          break;
+-      font[i++] = c;
+-     }
+- 
+-     /* find the first modifier, NULL if none */
+-     arg = strchr(fullname + i, ':');
+- 
+-     while (arg)
+-     {
+-      switch (*++arg)
+-      {
+-          case 'h':
+-              height = strtol(arg + 1, (char **) &arg, 10);
+-              break;
+-          case 'w':
+-              width = strtol(arg + 1, (char **) &arg, 10);
+-              break;
+-          case 'b':
+-              weight |= 1;
+-              break;
+-          case 'i':
+-              weight |= 2;
+-              break;
+-          default:
+-              return 0;
+-      }
+-      arg = strchr(arg, ':');
+-     }
+- 
+-     if ((weight & 1) && i < 35)
+-     {
+-      /* Bold goes instead of given suffix */
+-      strncpy(font + i, ".Bold", 5);
+-      i += 5;
+-     }
+-     else
+-     {
+-      /* Copy rest of name unless we are using Bold */
+-      while (i < 39)
+-      {
+-          c = fullname[i];
+-          if (c == ':' || c == NUL)
+-              break;
+-          font[i++] = c;
+-      }
+-     }
+-     if ((weight & 2) && i < 32)
+-     {
+-      strncpy(font + i, ".Oblique", 8);
+-      i += 8;
+-     }
+- 
+-     font[i] = 0;
+- 
+-     if (height < 1 && width < 1)
+-      height = width = 10;    /* Default to 10pt */
+-     else if (height < 1)
+-      height = width;
+-     else if (width < 1)
+-      width = height;
+- 
+-     if (xswi(Font_FindFont, 0, font, width << 4, height << 4, 0, 0) & v_flag)
+-      return NOFONT;          /* Can't find font */
+- 
+-     return r0;
+- }
+- 
+- /* Load a file into allocated memory and check it is valid.
+-  * Return a pointer to the allocated block on success.
+-  */
+-     char    *
+- zap_load_file(name, style)
+-     char_u  *name;       /* Name of directory containing styles */
+-     char_u  *style;      /* Name of style within directory */
+- {
+-     char_u  fname[256];
+-     char_u  *file;
+- 
+-     if (strlen(name) + strlen(style) > 254)
+-      return NULL;        /* Names too long */
+- 
+-     sprintf(fname, "%s.%s", name, style);
+- 
+-     /* Load the named font in 1bpp format. */
+-     if (xswi(OS_File, 13, fname, 0, 0, "VimFonts:") & v_flag || r0 != 1)
+-      return NULL;        /* Error reading file info, or not a file */
+- 
+-     /* Allocate enough memory to load the whole file */
+-     file = (char *) alloc(r4);
+-     if (!file)
+-      return NULL;    /* Out of memory */
+- 
+-     if (xswi(OS_File, 12, fname, file, 0, "VimFonts:") & v_flag)
+-      return NULL;    /* Unable to load file */
+- 
+-     if (strncmp(file, "ZapFont\015", 8) == 0)
+-      return file;    /* Loaded OK! */
+- 
+-     vim_free(file);
+-     return NULL;     /* Not a valid font file */
+- }
+- 
+- /* Load and convert the named font.
+-  * If name is NULL or a null string then convert the system font.
+-  * Return OK on success; FAIL and we revert to using the VDU drivers.
+-  *
+-  * 'name' is the name of a directory.
+-  * Tries to load 'name.0', 'name.B', 'name.I' and 'name.IB'.
+-  */
+-     int
+- zap_load_font(name)
+-     char_u  *name;
+- {
+-     int          i;
+- 
+-     /* Free the existing font files, if any */
+-     for (i = 0; i < ZAP_STYLES; i++)
+-     {
+-      vim_free(zap_file[i]);
+-      zap_file[i] = NULL;
+-     }
+- 
+-     if (name && *name == '!')
+-     {
+-      name++;
+-      double_height = TRUE;
+-     }
+-     else
+-      double_height = FALSE;
+- 
+-     if (name && *name)
+-     {
+-      zap_file[ZAP_NORMAL]    = zap_load_file(name, "0");
+-      if (!zap_file[ZAP_NORMAL])
+-          return FAIL;        /* Can't load the 'normal' style - error */
+- 
+-      zap_file[ZAP_BOLD]      = zap_load_file(name, "B");
+-      zap_file[ZAP_ITALIC]    = zap_load_file(name, "I");
+-      zap_file[ZAP_BITALIC]   = zap_load_file(name, "IB");
+-     }
+-     else
+-     {
+-      int     *header;
+-      char    workarea[16];
+-      char    *old_wa;
+- 
+-      /* Allocate memory for system font (8 x 8 x 256 bits, plus header) */
+-      header = (int *) alloc(0x20 + 8 * 256);
+-      if (header == NULL)
+-          return FAIL;
+-      zap_file[ZAP_NORMAL] = (char *) header;
+- 
+-      /* Store details about the system font */
+-      header[2] = 8;      /* Width */
+-      header[3] = 8;      /* Height */
+-      header[4] = 0;      /* First char */
+-      header[5] = 255;    /* Last char */
+-      header[6] = header[7] = 0;  /* Reserved */
+- 
+-      /* Get system font bitmap */
+-      old_wa = zap_redraw_block.r_workarea;
+-      zap_redraw_block.r_workarea = workarea;
+-      swi(ZapRedraw_ReadSystemChars, zap_file[ZAP_NORMAL] + 0x20, &zap_redraw_block);
+-      zap_redraw_block.r_workarea = old_wa;
+-     }
+- 
+-     return ro_zap_redraw_initialise();
+- }
+- 
+- /*
+-  * Initialise vim to use the font with the given name.
+-  * Return FAIL if the font could not be loaded, OK otherwise.
+-  */
+-     int
+- gui_mch_init_font(char_u *font_name, int fontset)
+- {
+-     int          new_handle  = 0;        /* Use the system font by default */
+- 
+-     if (font_name[0] == '!')
+-     {
+-      /* Select a ZapRedraw font */
+-      if (zap_load_font(font_name + 1))
+-          zap_redraw = TRUE;
+-      else
+-      {
+-          EMSG2(_("E610: Can't load Zap font '%s'"), font_name);
+-          font_name = "System";   /* Error - use system font */
+-          zap_redraw = FALSE;
+-      }
+-     }
+-     else
+-     {
+-      zap_redraw = FALSE;
+- 
+-      if (font_name)
+-      {
+-          /* Extract any extra details about the font */
+-          new_handle = ro_get_font(font_name, 0);
+-          if (!new_handle)
+-              return FAIL;
+-      }
+-      else
+-          font_name = "System";
+-     }
+- 
+-     /* Free the previous font, if any */
+-     gui_mch_free_font(gui.norm_font);
+-     gui.norm_font = new_handle;
+-     gui.char_ascent = 0;
+- 
+-     if (new_handle)
+-     {
+-      /* Read details about the chosen font */
+-      swi(Font_ReadInfo, new_handle);
+- 
+-      gui.char_width  = r3 - r1;
+-      gui.char_height = r4 - r2;
+- 
+-      font_x_offset = -r1;    /* Where to position each char in its box */
+-      font_y_offset = -r4;
+- 
+-      /* Try to load other fonts for bold, italic, and bold-italic */
+-      gui_mch_free_font(gui.bold_font);
+-      gui.bold_font = ro_get_font(font_name, 1);
+-      gui_mch_free_font(gui.ital_font);
+-      gui.ital_font = ro_get_font(font_name, 2);
+-      gui_mch_free_font(gui.boldital_font);
+-      gui.boldital_font = ro_get_font(font_name, 3);
+-     }
+-     else
+-     {
+-      /* Use the system font or ZapRedraw. */
+-      if (zap_redraw)
+-      {
+-          gui.char_width      = zap_redraw_block.r_charw << zap_redraw_block.r_magx;
+-          gui.char_height     = zap_redraw_block.r_charh << zap_redraw_block.r_magy;
+-          if (double_height)
+-              gui.char_height <<= 1;
+-      }
+-      else
+-      {
+-          gui.char_width      = 16;
+-          gui.char_height     = 32;
+-      }
+- 
+-      gui_mch_free_font(gui.bold_font);
+-      gui.bold_font = 0;
+-      gui_mch_free_font(gui.ital_font);
+-      gui.ital_font = 0;
+-      gui_mch_free_font(gui.boldital_font);
+-      gui.boldital_font = 0;
+-     }
+-     hl_set_font_name(font_name);
+- 
+-     must_redraw = CLEAR;
+-     return OK;
+- }
+- 
+- /*
+-  * Adjust gui.char_height (after 'linespace' was changed).
+-  */
+-     int
+- gui_mch_adjust_charheight()
+- {
+-     return FAIL;
+- }
+- 
+- /*
+-  * Get a font structure for highlighting.
+-  */
+-     GuiFont
+- gui_mch_get_font(name, giveErrorIfMissing)
+-     char_u   *name;
+-     int              giveErrorIfMissing;
+- {
+-     int              handle;
+- 
+-     if (!name)
+-      return NOFONT;          /* System font if no name */
+- 
+-     handle = ro_get_font(name, 0);
+-     if (!handle)
+-     {
+-      if (giveErrorIfMissing)
+-          EMSG2(_("E611: Can't use font %s"), name);
+-      return NOFONT;
+-     }
+- 
+-     return handle;
+- }
+- 
+- #if defined(FEAT_EVAL) || defined(PROTO)
+- /*
+-  * Return the name of font "font" in allocated memory.
+-  * Don't know how to get the actual name, thus use the provided name.
+-  */
+-     char_u *
+- gui_mch_get_fontname(font, name)
+-     GuiFont font;
+-     char_u  *name;
+- {
+-     if (name == NULL)
+-      return NULL;
+-     return vim_strsave(name);
+- }
+- #endif
+- 
+- /*
+-  * Set the current text font.
+-  */
+-     void
+- gui_mch_set_font(GuiFont font)
+- {
+-     ro_current_font = font;
+- 
+-     if (font)
+-     {
+-      /* Not the system font or ZapRedraw font - select it */
+-      swi(Font_SetFont, font);
+-     }
+- }
+- 
+- /*
+-  * If a font is not going to be used, free its structure.
+-  */
+-     void
+- gui_mch_free_font(GuiFont font)
+- {
+-     if (font)
+-      swi(Font_LoseFont, font);
+- }
+- 
+- /*
+-  * Return the Pixel value (colour) for the given colour name.
+-  * Return INVALCOLOR for error.
+-  * NB: I've changed Green for now, since it looked really sick
+-  */
+-     guicolor_T
+- gui_mch_get_color(char_u *name)
+- {
+-     int              i;
+-     struct colour
+-     {
+-      char_u          *name;
+-      guicolor_T      value;
+-     } colours[] =
+-     {
+-      { "Red",                grgb(255,       0,      0)      },
+-      { "LightRed",           grgb(255,       0,      0)      },
+-      { "DarkRed",            grgb(139,       0,      0)      },
+- 
+-      { "Green",              grgb(50,        200,    50)     },
+-      { "LightGreen",         grgb(144,       238,    144)    },
+-      { "DarkGreen",          grgb(0,         100,    0)      },
+-      { "SeaGreen",           grgb(46,        139,    87)     },
+- 
+-      { "Blue",               grgb(0,         0,      255)    },
+-      { "LightBlue",          grgb(173,       216,    230)    },
+-      { "DarkBlue",           grgb(0,         0,      139)    },
+-      { "SlateBlue",          grgb(160,       90,     205)    },
+- 
+-      { "Cyan",               grgb(0,         255,    255)    },
+-      { "LightCyan",          grgb(224,       255,    255)    },
+-      { "DarkCyan",           grgb(0,         139,    139)    },
+- 
+-      { "Magenta",            grgb(255,       0,      255)    },
+-      { "LightMagenta",       grgb(255,       224,    255)    },
+-      { "DarkMagenta",        grgb(139,       0,      139)    },
+- 
+-      { "Yellow",             grgb(255,       255,    0)      },
+-      { "LightYellow",        grgb(255,       255,    224)    },
+-      { "DarkYellow",         grgb(139,       139,    0)      },
+-      { "Brown",              grgb(165,       42,     42)     },
+- 
+-      { "Gray",               grgb(190,       190,    190)    },
+-      { "Grey",               grgb(190,       190,    190)    },
+-      { "LightGray",          grgb(211,       211,    211)    },
+-      { "LightGrey",          grgb(211,       211,    211)    },
+-      { "DarkGray",           grgb(169,       169,    169)    },
+-      { "DarkGrey",           grgb(169,       169,    169)    },
+-      { "Gray10",             grgb(26,        26,     26)     },
+-      { "Grey10",             grgb(26,        26,     26)     },
+-      { "Gray20",             grgb(51,        51,     51)     },
+-      { "Grey20",             grgb(51,        51,     51)     },
+-      { "Gray30",             grgb(77,        77,     77)     },
+-      { "Grey30",             grgb(77,        77,     77)     },
+-      { "Gray40",             grgb(102,       102,    102)    },
+-      { "Grey40",             grgb(102,       102,    102)    },
+-      { "Gray50",             grgb(127,       127,    127)    },
+-      { "Grey50",             grgb(127,       127,    127)    },
+-      { "Gray60",             grgb(153,       153,    153)    },
+-      { "Grey60",             grgb(153,       153,    153)    },
+-      { "Gray70",             grgb(179,       179,    179)    },
+-      { "Grey70",             grgb(179,       179,    179)    },
+-      { "Gray80",             grgb(204,       204,    204)    },
+-      { "Grey80",             grgb(204,       204,    204)    },
+-      { "Gray90",             grgb(229,       229,    229)    },
+-      { "Grey90",             grgb(229,       229,    229)    },
+- 
+-      { "Black",              grgb(0,         0,      0)      },
+-      { "White",              grgb(255,       255,    255)    },
+- 
+-      { "Orange",             grgb(255,       165,    0)      },
+-      { "Purple",             grgb(160,       32,     240)    },
+-      { "Violet",             grgb(238,       130,    238)    },
+-      {NULL, 0}
+-     };
+- 
+-     if (name[0] == '#')
+-     {
+-      char        *end;
+-      int         c;
+- 
+-      c = strtol(name + 1, &end, 16);
+-      return (guicolor_T) ((c >> 16) & 0xff) | (c & 0xff00) | ((c & 0xff) << 16);
+-     }
+- 
+-     for (i = 0; colours[i].name != NULL; i++)
+-     {
+-      if (STRICMP(name, colours[i].name) == 0)
+-          return colours[i].value;
+-     }
+-     if (strnicmp(name, "grey", 4) == 0 || strnicmp(name, "gray", 4) == 0)
+-     {
+-      int level = (255 * atoi(name + 4)) / 100;
+-      return (guicolor_T) grgb(level, level, level);
+-     }
+-     return INVALCOLOR;
+- }
+- 
+- /*
+-  * Set the current text colours.
+-  * If we are using fonts then set the antialiasing colours too.
+-  */
+-     void
+- gui_mch_set_colors(guicolor_T fg, guicolor_T bg)
+- {
+-     zap_redraw_colours[0] = bg << 8; /* JK230798, register new background colour */
+-     zap_redraw_colours[1] = fg << 8; /* JK230798, register new foreground colour */
+-     zap_redraw_update_colours = TRUE;        /* JK230798, need update of colour masks */
+- 
+-     swi(ColourTrans_ReturnGCOL, fg << 8);
+-     gui.fg_colour = r0;
+-     swi(ColourTrans_ReturnGCOL, bg << 8);
+-     gui.bg_colour = r0;
+- 
+-     if (ro_current_font)
+-      swi(ColourTrans_SetFontColours, 0, bg << 8, fg << 8, 14);
+- }
+- 
+-     void
+- ro_draw_string(x, y, s, len, flags, clip)
+-     int          x;          /* Top-left coord to plot at (x incl, y excl) */
+-     int          y;          /* (screen coords) */
+-     char_u  *s;              /* String to plot */
+-     int          len;        /* Length of string */
+-     int          flags;      /* DRAW_TRANSP, DRAW_BOLD, DRAW_UNDERL */
+-     int*    clip;    /* JK230798, added clip window */
+- {
+-     if (ro_current_font)
+-     {
+-      int     fx;
+-      int     flen = len;     /* Preserve for underline */
+- 
+-      /* Use the Font manager to paint the string.
+-       * Must do one char at a time to get monospacing.
+-       */
+- 
+-      if (flags & DRAW_ITALIC && !gui.ital_font)
+-          flags |= DRAW_UNDERL;       /* No italic - underline instead */
+- 
+-      if ((flags & DRAW_TRANSP) == 0)
+-      {
+-          swi(ColourTrans_SetColour, gui.bg_colour, 0, 0, 0, 0);
+-          swi(OS_Plot, 4, x, y - gui.char_height);
+-          swi(OS_Plot, 96 + 5, x + len * gui.char_width - 1, y - 1);
+-      }
+- 
+-      fx = x + font_x_offset;
+-      while (flen--)
+-      {
+-          swi(Font_Paint, 0, s++, 0x90, fx, y + font_y_offset, 0, 0, 1);
+-          fx += gui.char_width;
+-      }
+-     }
+-     else
+-     {
+-      if (zap_redraw)
+-      {
+-          /* Using fast Zap redraw. */
+-          flags = ro_zap_redraw_draw_string(x, y, s, len, flags, clip);
+-      }
+-      else
+-      {
+-          /* Using the system font */
+-          if (flags & DRAW_ITALIC)
+-              flags |= DRAW_UNDERL;
+- 
+-          if ((flags & DRAW_TRANSP) == 0)
+-          {
+-              swi(ColourTrans_SetColour, gui.bg_colour, 0, 0, 0, 0);
+-              swi(OS_Plot, 4, x, y - gui.char_height);
+-              swi(OS_Plot, 96 + 5, x + len * gui.char_width - 1, y - 1);
+-          }
+-          swi(OS_Plot, 4,                     /* Move the drawing cursor */
+-                  x,
+-                  y - 1);
+-          swi(ColourTrans_SetColour, gui.fg_colour, 0, 0, 0, 0);
+-          swi(OS_WriteN, s, len);
+- 
+-          if (flags & DRAW_BOLD)
+-          {
+-              swi(OS_Plot, 4, x + (1 << x_eigen_factor), y - 1);
+-              swi(OS_WriteN, s, len);
+-          }
+-      }
+-     }
+- 
+-     if (flags & DRAW_UNDERL)
+-     {
+-      if (ro_current_font || zap_redraw)
+-          swi(ColourTrans_SetColour, gui.fg_colour, 0, 0, 0, 0);
+-      /* Underlined is the same with all plotting methods */
+-      swi(OS_Plot, 4, x, y - gui.char_height);
+-      swi(OS_Plot, 1, gui.char_width * len, 0);
+-     }
+- }
+- 
+-     void
+- gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
+- {
+-     int x, y;                /* Workarea x,y */
+-     x = col * gui.char_width;
+-     y = -row * gui.char_height;
+- 
+-     if (redraw_block)
+-     {
+-      ro_draw_string(x + redraw_block[1], y + redraw_block[4],
+-                      s, len, flags, &redraw_block[7]);       /* JK230798, added clip window */
+-     }
+-     else
+-     {
+-      int block[44];
+-      block[0] = gui.window_handle;
+-      block[1] = x;
+-      block[2] = y - gui.char_height;
+-      block[3] = (col + len) * gui.char_width;
+-      block[4] = y;
+-      swi(Wimp_UpdateWindow, 0, block);
+-      while (r0)
+-      {
+-          ro_draw_string(x + block[1], y + block[4],
+-                      s, len, flags, &block[7]);      /* JK230798, added clip window */
+-          swi(Wimp_GetRectangle, 0, block);
+-      }
+-     }
+- }
+- 
+- /*
+-  * Return OK if the key with the termcap name "name" is supported.
+-  */
+-     int
+- gui_mch_haskey(char_u *name)
+- {
+-     return FAIL;
+- }
+- 
+-     void
+- gui_mch_beep(void)
+- {
+-     swi(OS_WriteI + 7);
+- }
+- 
+- /*
+-  * Visual bell.
+-  */
+-     void
+- gui_mch_flash(int msec)
+- {
+-     /* TODO */
+- }
+- 
+- 
+- /*
+-  * Plot a solid rectangle using the given plot action and colour.
+-  * Coordinates are inclusive and window-relative.
+-  */
+-     void
+- plot_rectangle(plot, colour, minx, miny, maxx, maxy)
+-     int plot;                /* OS_Plot action */
+-     int colour;
+-     int minx;
+-     int miny;
+-     int maxx;
+-     int maxy;
+- {
+-     if (redraw_block)
+-     {
+-      swi(ColourTrans_SetColour, colour, 0, 0, 0, 0);
+-      swi(OS_Plot, 4, minx + redraw_block[1], miny + redraw_block[4]);
+-      swi(OS_Plot, plot, maxx + redraw_block[1], maxy + redraw_block[4]);
+-     }
+-     else
+-     {
+-      int block[44];
+-      block[0] = gui.window_handle;
+-      block[1] = minx;
+-      block[2] = miny;
+-      block[3] = maxx + 1;
+-      block[4] = maxy + 1;
+-      swi(Wimp_UpdateWindow, 0, block);
+-      while (r0)
+-      {
+-          swi(ColourTrans_SetColour, colour, 0, 0, 0, 0);
+-          swi(OS_Plot, 4, minx + block[1], miny + block[4]);
+-          swi(OS_Plot, plot, maxx + block[1], maxy + block[4]);
+-          swi(Wimp_GetRectangle, 0, block);
+-      }
+-     }
+- }
+- 
+- /*
+-  * Invert a rectangle from row r, column c, for nr rows and nc columns.
+-  */
+-     void
+- gui_mch_invert_rectangle(int r, int c, int nr, int nc)
+- {
+-     plot_rectangle(96 + 6, 0, FILL_X(c), -FILL_Y(r + nr), FILL_X(c + nc), -FILL_Y(r));
+- }
+- 
+- /*
+-  * Iconify the GUI window.
+-  */
+-     void
+- gui_mch_iconify(void)
+- {
+- }
+- 
+- #if defined(FEAT_EVAL) || defined(PROTO)
+- /*
+-  * Bring the Vim window to the foreground.
+-  */
+-     void
+- gui_mch_set_foreground()
+- {
+-     /* TODO */
+- }
+- #endif
+- 
+- /* Draw a hollow rectangle relative to the current
+-  * graphics cursor position, with the given width
+-  * and height. Start position is top-left.
+-  */
+-     void
+- draw_hollow(w, h)
+-     int      w;
+-     int      h;
+- {
+-     swi(OS_Plot, 1, w - 1, 0);
+-     swi(OS_Plot, 1, 0, 1 - h);
+-     swi(OS_Plot, 1, 1 - w, 0);
+-     swi(OS_Plot, 1, 0, h - 1);
+- }
+- 
+- /*
+-  * Draw a cursor without focus.
+-  */
+-     void
+- gui_mch_draw_hollow_cursor(guicolor_T colour)
+- {
+-     int x = FILL_X(gui.cursor_col);  /* Window relative, top-left */
+-     int y = -FILL_Y(gui.cursor_row);
+-     if (redraw_block == NULL)
+-     {
+-      int block[11];
+- 
+-      block[0] = gui.window_handle;
+-      block[1] = x;
+-      block[2] = y - gui.char_height;
+-      block[3] = x + gui.char_width;
+-      block[4] = y;
+-      swi(Wimp_UpdateWindow, 0, block);
+-      while (r0)
+-      {
+-          swi(ColourTrans_SetGCOL, colour << 8, 0, 0, 0, 0);
+- 
+-          swi(OS_Plot, 4, x + block[1], y + block[4] - 1);
+-          draw_hollow(gui.char_width, gui.char_height);
+- 
+-          swi(Wimp_GetRectangle, 0, block);
+-      }
+-     }
+-     else
+-     {
+-      swi(ColourTrans_SetGCOL, colour << 8, 0, 0, 0, 0);
+- 
+-      swi(OS_Plot, 4, x + redraw_block[1], y + redraw_block[4] - 1);
+-      draw_hollow(gui.char_width, gui.char_height);
+-     }
+- }
+- 
+- /*
+-  * Draw part of a cursor, "w" pixels wide, and "h" pixels high, using
+-  * color "color".
+-  */
+-     void
+- gui_mch_draw_part_cursor(w, h, colour)
+-     int w;
+-     int h;
+-     guicolor_T colour;
+- {
+-     int x = FILL_X(gui.cursor_col);
+-     int y = -FILL_Y(gui.cursor_row);
+-     swi(ColourTrans_ReturnGCOL, colour << 8);
+-     plot_rectangle(96 + 5, r0, x, y - h, x + w - 1, y - 1);
+- }
+- 
+- /*
+-  * Catch up with any queued events.  This may put keyboard input into the
+-  * input buffer, call resize call-backs, trigger timers etc.
+-  * If there is nothing in the event queue(& no timers pending), then we return
+-  * immediately (well, after a Wimp_Poll).
+-  */
+-     void
+- gui_mch_update(void)
+- {
+-     int block[64];
+-     int reason;
+- 
+-     swi(OS_ReadMonotonicTime);
+-     if ((r0 - time_of_last_poll) < 50)
+-      return;                     /* Don't return too often */
+- 
+-     reason = wimp_poll(0, block);
+-     if (reason)
+-      process_event(reason, block);
+-     ro_return_early = FALSE;         /* We're returning anyway. */
+- }
+- 
+-     void
+- redraw_window(block)
+-     int *block;
+- {
+-     int x, y;                        /* Vim workarea coords */
+-     int width, height;
+-     int blank_col;
+- 
+-     swi(ColourTrans_ReturnGCOL, UNUSED_COLOUR << 8, 0, 0, 1<<7, 0);
+-     blank_col = r0;
+- 
+-     swi(Wimp_RedrawWindow, 0, block);
+-     redraw_block = block;
+-     while (r0)
+-     {
+-      x = block[7] - block[1];
+-      y = block[4] - block[10];
+-      width  = block[9]  - block[7];
+-      height = block[10] - block[8];
+- 
+-      if (height + y > Rows * gui.char_height)
+-      {
+-          /* Blank everything off the bottom. */
+-          plot_rectangle(96 + 5, blank_col,
+-                              0, block[8] - block[4],
+-                              block[9] - block[1], -FILL_Y(Rows) - 1);
+-          height = Rows * gui.char_height;
+-      }
+-      if (width + x> Columns * gui.char_width)
+-      {
+-          /* Blank everything off to the right. */
+-          plot_rectangle(96 + 5, blank_col,
+-                              FILL_X(Columns), block[8] - block[4],
+-                              block[9] - block[1], 0);
+-          width = Columns * gui.char_width;
+-      }
+-      gui_redraw(x , y, width, height);
+-      swi(Wimp_GetRectangle, 0, block);
+-     }
+-     redraw_block = NULL;
+- }
+- 
+- /* Check if we have modified data.
+-  * If we do then ack the message to stop the shutdown.
+-  * Otherwise, ignore the message.
+-  */
+-     void
+- ro_prequit(block)
+-     int          *block;
+- {
+-     if (!ro_ok_to_quit())
+-     {
+-      /* Not OK to quit - stop shutdown */
+-      block[3] = block[2];
+-      swi(Wimp_SendMessage, 19, block, block[1]);
+-     }
+-     /* Do nothing. We may get a Message_Quit later. */
+- }
+- 
+- /* If there is unsaved data then ask the user if they mind losing it.
+-  * Return TRUE if we can quit without saving, FALSE to halt the
+-  * shutdown.
+-  */
+-     int
+- ro_ok_to_quit()
+- {
+-     int          old_confirm = cmdmod.confirm;
+- 
+-     cmdmod.confirm = FALSE;      /* Use our own, single tasking, box */
+- 
+-     if (check_changed_any(FALSE))
+-     {
+-      swi(Wimp_ReportError,
+-              "\0\0\0\0Vim contains unsaved data - quit anyway?",
+-              0x17,
+-              "Vim");
+-      cmdmod.confirm = old_confirm;
+-      if (r1 != 1)
+-          return FALSE;
+-     }
+-     cmdmod.confirm = old_confirm;
+-     return TRUE;
+- }
+- 
+- /* Quit without checking for unsaved data. */
+-     void
+- ro_quit()
+- {
+-     exiting = TRUE;
+-     getout(0);
+- 
+-     exiting = FALSE;             /* probably can't get here */
+-     setcursor();                 /* position cursor */
+-     out_flush();
+- }
+- 
+- /* Insent the given vim special code into the input buffer */
+-     void
+- ro_press(a, b, modifier)
+-     char a;
+-     char b;
+-     int modifier;    /* %<Ctrl><Shift> 0000 0000 */
+- {
+-     char_u buf[6];
+-     int          vim_mod;
+-     int          key;
+- 
+- 
+-     /* Convert RISC OS modifier to Vim modifier. */
+-     vim_mod = ((modifier & 0x10) ? MOD_MASK_SHIFT : 0)
+-             | ((modifier & 0x20) ? MOD_MASK_CTRL : 0);
+-     key = simplify_key(TERMCAP2KEY(a, b), &vim_mod);
+- 
+-     buf[3] = CSI;
+-     buf[4] = KEY2TERMCAP0(key);
+-     buf[5] = KEY2TERMCAP1(key);
+-     if (vim_mod)
+-     {
+-      buf[0] = CSI;
+-      buf[1] = KS_MODIFIER;
+-      buf[2] = vim_mod;
+-      add_to_input_buf(buf, 6);
+-     }
+-     else
+-      add_to_input_buf(buf + 3, 3);
+- }
+- 
+- /* Take a wimp key code and insert the vim equivalent
+-  * into vim's input buffer.
+-  * CTRL-C also sets got_int.
+-  */
+-     void
+- ro_insert_key(code)
+-     char_u *code;            /* Wimp_ProcessKey code (4 bytes) */
+- {
+-     char a = code[0];
+-     char b = code[1];
+-     int base, modifier;
+- 
+-     if (a == 3 && ctrl_c_interrupts)
+-      got_int = TRUE;
+- 
+-     /* Is it a normal key? */
+-     if (a > 31 && a < 127)
+-     {
+-      add_to_input_buf(code, 1);
+-      return;
+-     }
+- 
+-     /* We should pass any unrecognised keys on, but
+-      * for now just pass on F12 combinations.
+-      */
+-     switch (b)
+-     {
+-      case 0:
+-          /* Home and Delete are the only special cases */
+-          switch (a)
+-          {
+-              case 0x1e:
+-                  ro_press('k','h', 0);       /* Home */
+-                  return;
+-              case 0x7f:
+-                  ro_press('k','D', 0);       /* Delete */
+-                  return;
+-              case CSI:
+-                  {
+-                      /* Turn CSI into K_CSI.  Untested! */
+-                      char_u string[3] = {CSI, KS_EXTRA, KE_CSI};
+- 
+-                      add_to_input_buf(string, 3);
+-                      return;
+-                  }
+-              default:
+-                  add_to_input_buf(code, 1);
+-                  return;
+-          }
+-      case 1:
+-          if ((a & 0xcf) == 0xcc)
+-          {
+-              /* F12 pressed - pass it on (quick hack) */
+-              swi(Wimp_ProcessKey, a | 0x100);
+-              return;
+-          }
+-          base = a & 0xcf;
+-          modifier = a & 0x30;
+-          switch (base)
+-          {
+-              case 0x8a:      /* Tab */
+-                  add_to_input_buf("\011", 1);
+-                  return;
+-              case 0x8b:      /* Copy (End) */
+-                  return ro_press('@', '7', modifier);
+-              case 0x8c:      /* Left */
+-                  return ro_press('k', 'l', modifier);
+-              case 0x8d:      /* Right */
+-                  return ro_press('k', 'r', modifier);
+-              case 0x8e:      /* Down */
+-                  if (modifier & 0x10)
+-                      return ro_press('k', 'N', modifier ^ 0x10);
+-                  else
+-                      return ro_press('k', 'd', modifier);
+-              case 0x8f:      /* Up */
+-                  if (modifier & 0x10)
+-                      return ro_press('k', 'P', modifier ^ 0x10);
+-                  else
+-                      return ro_press('k', 'u', modifier);
+-              case 0xca:      /* F10 */
+-                  return ro_press('k', ';', modifier);
+-              case 0xcb:      /* F11 */
+-                  return ro_press('F', '1', modifier);
+-              case 0xcd:      /* Insert */
+-                  return ro_press('k', 'I', modifier);
+-              default:
+-                  if (base > 0x80 && base < 0x18a)
+-                  {
+-                      /* One of the other function keys */
+-                      return ro_press('k', '0' + (base & 15), modifier);
+-                  }
+-          }
+-     }
+- }
+- 
+- /* Process a mouse event. */
+-     void
+- ro_mouse(block)
+-     int *block;
+- {
+-     int x, y, button, vim_button;
+-     int modifiers = 0;
+-     int min_x, min_y;                /* Visible area of editor window */
+-     int max_x, max_y;
+- 
+-     if (block[3] != gui.window_handle || ro_dragging)
+-      return;                 /* Not our window or ignoring clicks*/
+- 
+-     x = block[0];            /* Click position - screen coords */
+-     y = block[1];
+-     button = block[2];
+- 
+-     block[0] = gui.window_handle;
+-     swi(Wimp_GetWindowState, 0, block);
+-     min_x = block[1];
+-     min_y = block[2];
+-     max_x = block[3];
+-     max_y = block[4];
+- 
+-     if (block[3] - x < gui.scrollbar_width)
+-     {
+-      /* Click in that blank area under the scrollbars */
+- 
+-      if (button & 0x444)
+-      {
+-          int     front_block[64];
+-          /* Dragging with Select - bring window to front first */
+-          front_block[0] = gui.window_handle;
+-          swi(Wimp_GetWindowState, 0, front_block);
+-          front_block[7] = -1;
+-          ro_open_main(front_block);
+-      }
+- 
+-      block[0] = gui.window_handle;
+-      block[1] = 7;                   /* Drag point */
+-      block[2] = block[4] = 0;        /* Coords of point. */
+-      block[3] = block[5] = 0;
+-      drag_x_offset = max_x - x;
+-      drag_y_offset = min_y - y;
+- 
+-      /* Parent box. */
+-      block[6] = min_x +
+-                      gui.scrollbar_width * 2 +
+-                      MIN_COLUMNS * gui.char_width;
+-      block[7] = 0;
+-      gui_mch_get_screen_dimensions(&block[8], &block[9]);
+-      block[9] = max_y -
+-                      4 * gui.char_height -
+-                      gui.scrollbar_height;
+- 
+-      swi(Wimp_DragBox, 0, block);
+-      ro_dragging = DRAG_RESIZE_WINDOW;
+-      drag_button = vim_button;
+-      drag_modifiers = modifiers;
+-      return;
+-     }
+- 
+-     if (button & 0x111)
+-      vim_button = MOUSE_RIGHT;
+-     else if (button & 0x222)
+-      vim_button = MOUSE_MIDDLE;
+-     else
+-      vim_button = MOUSE_LEFT;
+- 
+-     swi(OS_Byte, 121, 0x80);
+-     if (r1 == 0xff)
+-      modifiers |= MOUSE_SHIFT;
+-     swi(OS_Byte, 121, 0x81);
+-     if (r1 == 0xff)
+-      modifiers |= MOUSE_CTRL;
+-     swi(OS_Byte, 121, 0x82);
+-     if (r1 == 0xff)
+-      modifiers |= MOUSE_ALT;
+- 
+-     if (button == 2)
+-     {
+-      /* Menu click:
+-       * If shift was pressed then do the paste action.
+-       * If not, then open the pop-up menu.
+-       */
+-      modifiers ^= MOUSE_SHIFT;
+-      if (modifiers && MOUSE_SHIFT)
+-      {
+-          vimmenu_T   main;
+-          /* Shift was NOT pressed - show menu */
+-          main.dname = (char_u *) "Vim";
+-          main.children = root_menu;
+-          gui_mch_show_popupmenu(&main);
+-          return;
+-      }
+-     }
+- 
+-     /* Gain the input focus */
+-     swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
+- 
+-     if (button & 0xf0)
+-     {
+-      /* Drag operation:
+-       *
+-       * Tell the Wimp to start a drag.
+-       * Monitor null events.
+-       */
+-      block[1] = 7;                   /* Drag a point. */
+-      block[2] = block[4] = x;        /* Coords of point. */
+-      block[3] = block[5] = y;
+-      block[6] = 0;                   /* Coords of bounding box. */
+-      block[7] = 0;
+-      gui_mch_get_screen_dimensions(&block[8], &block[9]);
+- 
+-      drag_x_offset = drag_y_offset = 0;
+- 
+-      swi(Wimp_DragBox, 0, block);
+-      ro_dragging = DRAG_SELECTION;
+-      drag_button = vim_button;
+-      drag_modifiers = modifiers;
+- 
+-      vim_button |= MOUSE_DRAG;
+-     }
+- 
+-     gui_send_mouse_event(
+-              vim_button,
+-              x - min_x,
+-              max_y - y,
+-              button & 0xf ? TRUE : FALSE,    /* dclick */
+-              modifiers);
+- }
+- 
+-     void
+- ro_continue_drag(block)
+-     int *block;                      /* Just used as scrap. */
+- {
+-     int x, y;
+- 
+-     /* Get screen coords of pointer. */
+-     swi(Wimp_GetPointerInfo, 0, block);
+-     x = block[0] + drag_x_offset;
+-     y = block[1] + drag_y_offset;
+- 
+-     block[0] = gui.window_handle;
+-     swi(Wimp_GetWindowState, 0, block);
+- 
+-     if (ro_dragging == DRAG_RESIZE_WINDOW)
+-     {
+-      /* Resizing the main window. */
+-      block[2] = y;
+-      block[3] = x;
+-      ro_open_main(block);
+-     }
+-     else
+-     {
+-      /* Selecting some text. */
+-      gui_send_mouse_event(
+-          drag_button | MOUSE_DRAG,   /* Always report the same button */
+-          x - block[1],
+-          block[4] - y,
+-          FALSE,                      /* Not a double click. */
+-          drag_modifiers);
+-     }
+- }
+- 
+- /* User has released all mouse buttons, marking the end of a drag. */
+-     void
+- ro_drag_finished(block)
+-     int *block;
+- {
+-     int x;
+-     int y;
+-     int width, height;
+- 
+-     /* I don't trust the box returned by Wimp_Poll; look at the pointer
+-      * ourselves.
+-      */
+-     swi(Wimp_GetPointerInfo, 0, block);
+-     x = block[0] + drag_x_offset;
+-     y = block[1] + drag_y_offset;
+- 
+-     if (ro_dragging == DRAG_RESIZE_WINDOW)
+-     {
+-      block[0] = gui.window_handle;
+-      swi(Wimp_GetWindowState, 0, block);
+-      block[2] = y;
+-      block[3] = x;
+-      ro_open_main(block);
+- 
+-      width = (block[3] - block[1]);
+-      height = (block[4] - block[2]);
+- 
+-      swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
+-      gui_resize_shell(width, height);
+-     }
+-     else
+-     {
+-      block[0] = gui.window_handle;
+-      swi(Wimp_GetWindowState, 0, block);
+-      gui_send_mouse_event(
+-              MOUSE_RELEASE,
+-              x - block[1],
+-              block[4] - y,
+-              FALSE,                  /* not a double click */
+-              drag_modifiers);
+-     }
+-     ro_dragging = DRAG_FALSE;
+- }
+- 
+- /* Load the file/pathname given in block into a [new] buffer.
+-  *
+-  * Modifier  Action
+-  *
+-  * None              :confirm e <file>
+-  * Ctrl              :sp <file>
+-  * Shift     <file>
+-  *
+-  * Insert into typebuf, at the start.
+-  * If loading from !Scrap then use saved leafname instead, and
+-  * delete the scrap file. Also, ignore shift key.
+-  *
+-  * NB: Doesn't send DataLoadAck (other app might delete temp file?).
+-  */
+-     void
+- ro_dataload(block)
+-     int          *block;
+- {
+-     char_u  new_path[MAXPATHL];
+-     char_u  *path = ((char_u *) block) + 44;
+-     int          scrap = FALSE;
+- 
+-     if (block[3] == leaf_ref && leaf_name)
+-      scrap = TRUE;
+- 
+-     switch (get_real_state() & 0xff)
+-     {
+-      case INSERT:
+-      case CMDLINE:
+-      case CMDLINE+LANGMAP:
+-          /* For insert mode we can only insert the pathname (currently)
+-           * Make sure Shift is pressed.
+-           */
+-          swi(OS_Byte, 121, 0x80);        /* Is Shift pressed? */
+-          if (r1 == 0xff)
+-          {
+-              ins_typebuf(" ", REMAP_NONE, 0, TRUE, FALSE);
+-              ins_typebuf(path, REMAP_NONE, 0, TRUE, FALSE);
+-              ro_return_early = TRUE;             /* Return even though nothing was typed. */
+-          }
+-          else
+-              swi(Wimp_ReportError,
+-                      "\0\0\0\0Sorry, you can only load text in normal mode", 5, "Vim");
+-          break;
+- 
+-      case NORMAL:
+-          ro_return_early = TRUE;         /* Return even though nothing was typed. */
+- 
+-          if (scrap)                      /* Remove <Wimp$Scrap>. Later. */
+-              ins_typebuf(":!~remove <Wimp$Scrap>\r", REMAP_NONE, 0, TRUE, FALSE);
+- 
+-          /* Insert {:sp ,:confirm e }[+f\ <leaf> ]<file><CR> */
+-          ins_typebuf("\r", REMAP_NONE, 0, TRUE, FALSE);
+-          ins_typebuf(path, REMAP_NONE, 0, TRUE, FALSE);
+-          ins_typebuf(" ", REMAP_NONE, 0, TRUE, FALSE);
+- 
+-          if (scrap)
+-          {
+-              /* Loading via !Scrap - change pathname to stored leafname */
+-              ins_typebuf(leaf_name, REMAP_NONE, 0, TRUE, FALSE);
+-              ins_typebuf(" +f\\ ", REMAP_NONE, 0, TRUE, FALSE);
+-              leaf_ref = 0;
+-              vim_free(leaf_name);
+-              leaf_name = NULL;
+-          }
+- 
+-          swi(OS_Byte, 121, 0x81);        /* Is Ctrl pressed? */
+-          if (r1 == 0xff)
+-              /* Yes, split window */
+-              ins_typebuf(":sp", REMAP_NONE, 0, TRUE, FALSE);
+-          else
+-              ins_typebuf(":confirm e", REMAP_NONE, 0, TRUE, FALSE);
+-          break;
+- 
+-      default:
+-          swi(Wimp_ReportError, "\0\0\0\0You can only load text in normal mode.", 5, "Vim");
+-     }
+-     /* Send DataSaveAck so other program doesn't think we died
+-      * and delete <Wimp$Scrap>.
+-      */
+-     block[3] = block[2];
+-     block[4] = 4;
+-     swi(Wimp_SendMessage, 17, block, block[1]);
+- }
+- 
+-     void
+- ro_datasave(block)
+-     int          *block;
+- {
+-     char_u *path = ((char_u *) block) + 44;
+- 
+-     /* Preserve the name given so we can use it, not <Wimp$Scrap> */
+-     if (leaf_name)
+-      vim_free(leaf_name);
+-     leaf_name = vim_strsave(path);
+- 
+-     block[9] = -1;       /* File is unsafe. */
+-     strcpy(path, "<Wimp$Scrap>");
+-     block[0] = 60;
+-     block[3] = block[2];
+-     block[4] = 2;
+-     swi(Wimp_SendMessage, 17, block, block[1]);
+- 
+-     leaf_ref = block[2];
+- }
+- 
+-     void
+- ro_message(block)
+-     int *block;
+- {
+-     char_u   *buffer;
+-     long_u   len;
+- 
+-     if (block[1] == task_handle)
+-      return;                     /* Don't talk to ourself! */
+-     switch (block[4])
+-     {
+-      case 0:         /* Quit. */
+-          if (block[4] == 0)
+-              ro_quit();
+-          break;
+-      case 1: /* DataSave */
+-          ro_datasave(block);
+-          break;
+-      case 2:         /* DataSaveAck. */
+-          if (clip_convert_selection(&buffer, &len, &clip_star) == -1)
+-              return;
+- 
+-          /* Save the clipboard contents to a file. */
+-          swi(OS_File, 10, ((char_u *) block) + 44, 0xfff, 0, buffer, buffer + len);
+- 
+-          /* Ack with DataLoad message. */
+-          block[3] = block[2];
+-          block[4] = 3;
+-          block[9] = len;
+-          swi(Wimp_SendMessage, 17, block, block[1]);
+- 
+-          vim_free(buffer);
+-          break;
+-      case 3:         /* DataLoad */
+-          ro_dataload(block);
+-          break;
+-      case 8:         /* PreQuit */
+-          ro_prequit(block);
+-          break;
+-      case 0xf:       /* Lose clipboard. */
+-          if (block[5] & 4)
+-          {
+-              clip_free_selection(&clip_star);
+-              clip_star.owned = FALSE;
+-          }
+-          break;
+-      case 0x10:      /* DataRequest (clip_star) */
+-          if (clip_star.owned)
+-          {
+-              int rows;
+- 
+-              /* Tell other program that we have the clipboard. */
+-              block[0] = 52;
+-              block[3] = block[2];        /* Copy myref to yourref. */
+-              block[4] = 1;               /* DataSave message. */
+-              /* Create an estimate for the size (larger or same as true
+-               * value) */
+-              rows = clip_star.end.lnum - clip_star.start.lnum;
+-              if (rows < 0)
+-                  rows = -rows;
+-              block[9] = (rows + 1) * Columns + 1; /* Add one for possible
+-                                                      final newline. */
+-              block[10] = 0xfff;          /* Clipboard is text. */
+-              strcpy( ((char_u *) block) + 44, "VimClip");
+-              swi(Wimp_SendMessage, 17, block, block[1]);
+-          }
+-          break;
+-      case 0x400c1:   /* Mode change */
+-          changed_mode = TRUE;                /* Flag - update on next OpenWindow */
+-          if (zap_redraw)
+-          {
+-              /* JK230798, re-initialise ZapRedraw stuff */
+-              if (ro_zap_redraw_initialise() == FAIL)
+-                  zap_redraw = FALSE;
+-          }
+-          break;
+-      case 0x400c3:   /* TaskCloseDown */
+-          if (block[1] == child_handle)
+-              child_handle = 0;
+-          break;
+-     }
+- }
+- 
+- /*
+-  * Converts a scrollbar's window handle into a scrollbar pointer.
+-  * NULL on failure.
+-  */
+-     scrollbar_T *
+- ro_find_sbar(id)
+-     int              id;
+- {
+-     win_T    *wp;
+- 
+-     if (gui.bottom_sbar.id == id)
+-      return &gui.bottom_sbar;
+-     FOR_ALL_WINDOWS(wp)
+-     {
+-      if (wp->w_scrollbars[SBAR_LEFT].id == id)
+-          return &wp->w_scrollbars[SBAR_LEFT];
+-      if (wp->w_scrollbars[SBAR_RIGHT].id == id)
+-          return &wp->w_scrollbars[SBAR_RIGHT];
+-     }
+-     return NULL;
+- }
+- 
+-     void
+- scroll_to(line, sb)
+-     int sb;  /* Scrollbar number */
+-     int line;
+- {
+-     char_u code[8];
+- 
+-     /* Don't put events in the input queue now. */
+-     if (hold_gui_events)
+-      return;
+- 
+-     /* Send a scroll event:
+-      *
+-      * A scrollbar event is CSI (NOT K_SPECIAL), KS_VER_SCROLLBAR,
+-      * KE_FILLER followed by:
+-      * one byte representing the scrollbar number, and then four bytes
+-      * representing a long_u which is the new value of the scrollbar.
+-      */
+-     code[0] = CSI;
+-     code[1] = KS_VER_SCROLLBAR;
+-     code[2] = KE_FILLER;
+-     code[3] = sb;
+-     code[4] = line >> 24;
+-     code[5] = line >> 16;
+-     code[6] = line >> 8;
+-     code[7] = line;
+-     add_to_input_buf(code, 8);
+- }
+- 
+-     void
+- h_scroll_to(col)
+-     int col;
+- {
+-     char_u code[8];
+- 
+-     /* Don't put events in the input queue now. */
+-     if (hold_gui_events)
+-      return;
+- 
+-     /* Send a scroll event:
+-      *
+-      * A scrollbar event is CSI (NOT K_SPECIAL)
+-      *
+-      * A horizontal scrollbar event is K_SPECIAL, KS_HOR_SCROLLBAR,
+-      * KE_FILLER followed by four bytes representing a long_u which is the
+-      * new value of the scrollbar.
+-      */
+-     code[0] = CSI;
+-     code[1] = KS_HOR_SCROLLBAR;
+-     code[2] = KE_FILLER;
+-     code[4] = col >> 24;
+-     code[5] = col >> 16;
+-     code[6] = col >> 8;
+-     code[7] = col;
+-     add_to_input_buf(code, 8);
+- }
+- 
+-     void
+- ro_scroll(block)
+-     int              *block;
+- {
+-     scrollbar_T      *sb;
+-     int              offset;
+-     win_T    *wp;
+- 
+-     /* Block is ready for Wimp_OpenWindow, and also contains:
+-      *
+-      * +32 = scroll X direction (-2 .. +2)
+-      * +36 = scroll Y direction (-2 .. +2)
+-      */
+- 
+-     sb = ro_find_sbar(block[0]);
+-     if (!sb)
+-      return;         /* Window not found (error). */
+- 
+-     wp = sb-> wp;
+- 
+-     if (wp == NULL)
+-     {
+-      /* Horizontal bar. */
+-      offset = block[8];
+-      if (offset == -2)
+-          offset = (block[1] - block[3]) / gui.char_width;
+-      else if (offset == 2)
+-          offset = (block[3] - block[1]) / gui.char_width;
+- 
+-      block[5] += offset * gui.char_width;
+- 
+-      gui_drag_scrollbar(sb, block[5] / gui.char_width, FALSE);
+- 
+-      swi(Wimp_OpenWindow, 0, block);
+-     }
+-     else
+-     {
+-      offset = -block[9];
+-      if (offset == -2)
+-          offset = -(wp -> w_height - 1);
+-      else if (offset == 2)
+-          offset = wp -> w_height - 1;
+- 
+-      /* Possibly we should reposition the scrollbar?
+-       * Vim seems to update the bar anyway...
+-       */
+-      gui_drag_scrollbar(sb, offset - (block[6] / gui.char_height), FALSE);
+-     }
+- }
+- 
+- /* Move a window by a given offset. Used to simulate the function of the
+-  * nested wimp.
+-  */
+-     void
+- ro_move_child(window, x, y, pos_wanted, pos_got)
+-     int      window;
+-     int x,y;         /* offset to move by */
+-     int      pos_wanted, pos_got;
+- {
+-     int      block[10];
+- 
+-     block[0] = window;
+-     swi(Wimp_GetWindowState, 0, block);
+-     block[1] += x;
+-     block[2] += y;
+-     block[3] += x;
+-     block[4] += y;
+-     if (pos_wanted == -1)
+-      block[7] = -1;
+-     else if (pos_wanted == -2)
+-      block[7] = pos_got;
+-     swi(Wimp_OpenWindow, 0, block);
+- }
+- 
+- /* Open the main window. Also updates scrollbars if we are not
+-  * using the nested Wimp.
+-  * If we have just changed mode then re-read all values.
+-  */
+-     void
+- ro_open_main(block)
+-     int          *block;
+- {
+-     int          toggle_size;
+- 
+-     /* Find out if the user clicked on the toggle size icon. */
+-     block[20] = block[0];
+-     swi(Wimp_GetWindowState, 0, block + 20);
+-     toggle_size = block[28] & (1 << 19);
+- 
+-     if (nested_wimp)
+-     {
+-      swi(Wimp_OpenWindow, 0, block);
+-     }
+-     else
+-     {
+-      int     old[10];
+-      int     x_offset, y_offset;         /* Move children same as parent. */
+-      int     pos_wanted, pos_got;
+-      int     left_bar  = gui.which_scrollbars[SBAR_LEFT];
+-      int     right_bar = gui.which_scrollbars[SBAR_RIGHT];
+-      win_T   *wp;
+- 
+-      /* Three cases to think about:
+-       * 1) Move to top. Open each window at the top.
+-       * 2) Same stack position. Open each with same position.
+-       * 3) Open at bottom. Open children with parent's new position.
+-       */
+- 
+-      old[0] = block[0];
+-      swi(Wimp_GetWindowState, 0, old);
+-      pos_wanted = block[7];
+-      swi(Wimp_OpenWindow, 0, block);
+-      /* Block updated by OpenWindow? I don't think so! */
+-      swi(Wimp_GetWindowState, 0, block);
+-      pos_got = block[7];
+- 
+-      x_offset = block[1] - old[1];
+-      y_offset = block[4] - old[4];
+-      if (x_offset || y_offset || pos_wanted == -1 || pos_wanted == -2)
+-      {
+-          /* If parent has moved, re-open all the child windows. */
+-          FOR_ALL_WINDOWS(wp)
+-          {
+-              /* Reopen scrollbars for this window. */
+-              if (left_bar)
+-                  ro_move_child(wp -> w_scrollbars[SBAR_LEFT].id,
+-                              x_offset, y_offset,
+-                              pos_wanted, pos_got);
+-              if (right_bar)
+-                  ro_move_child(wp -> w_scrollbars[SBAR_RIGHT].id,
+-                              x_offset, y_offset,
+-                              pos_wanted, pos_got);
+-          }
+-      }
+-     }
+-     if (changed_mode || toggle_size)
+-     {
+-      int     width, height;
+- 
+-      if (changed_mode)
+-          ro_measure_tools();
+-      block[0] = gui.window_handle;
+-      swi(Wimp_GetWindowState, 0, block);
+- 
+-      width = block[3] - block[1];
+-      height = block[4] - block[2];
+-      swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
+-      gui_resize_shell(width, height);
+-      changed_mode = FALSE;
+-     }
+- }
+- 
+-     void
+- ro_open_window(block)
+-     int              *block;
+- {
+-     int              pos;
+-     scrollbar_T *sb;
+- 
+-     if (block[0] == gui.window_handle)
+-      ro_open_main(block);
+-     else
+-     {
+-      swi(Wimp_OpenWindow, 0, block);
+-      if (block[0] != gui.window_handle)
+-      {
+-          sb = ro_find_sbar(block[0]);
+-          if (sb)
+-          {
+-              if (sb-> wp != NULL)
+-                  gui_drag_scrollbar(sb, -block[6] / gui.char_height, FALSE);
+-              else
+-                  gui_drag_scrollbar(sb, block[5] / gui.char_width, FALSE);
+-          }
+-      }
+-     }
+- }
+- 
+-     void
+- ro_menu_selection(block)
+-     int              *block;
+- {
+-     int              *item = wimp_menu + 7;
+-     vimmenu_T        *menu;
+-     /* wimp_menu points to a wimp menu structure */
+- 
+-     for (;;)
+-     {
+-      while (block[0]--)
+-          item += 6;
+-      if (block[1] == -1)
+-          break;
+-      item = ((int *) item[1]) + 7;
+-      block++;
+-     }
+-     /* item points to the wimp menu item structure chosen */
+-     menu = (vimmenu_T *) item[5];
+- 
+-     swi(Wimp_GetPointerInfo, 0, block);
+-     if (block[2] == 1)
+-      /* Adjust used - keep menu open */
+-      swi(Wimp_CreateMenu, 0, wimp_menu);
+- 
+-     if (menu-> cb)
+-      menu-> cb(menu);
+- }
+- 
+-     void
+- ro_open_parent()
+- {
+-     int head;
+-     char_u *i = curbuf-> b_ffname;
+-     char_u  buffer[256];
+- 
+-     head = 0;
+-     for (; *i; i++)
+-     {
+-      if (*i == '.')
+-          head = i - curbuf-> b_ffname;
+-     }
+- 
+-     /* Append head chars to buffer */
+-     if (head < 240 && curbuf-> b_ffname && head)
+-     {
+-      strcpy(buffer, "%filer_opendir ");
+-      strncpy(buffer + 15, curbuf-> b_ffname, head);
+-      buffer[15 + head] = '\0';
+-      swi(OS_CLI, buffer);
+-     }
+- }
+- 
+-     void
+- process_event(event, block)
+-     int event;
+-     int *block;
+- {
+-     switch (event)
+-     {
+-      case 0:         /* Nothing - update drag state. */
+-          if (ro_dragging)
+-              ro_continue_drag(block);
+-          break;
+-      case 1:         /* Redraw window. */
+-          redraw_window(block);
+-          break;
+-      case 2:         /* Open window. */
+-          ro_open_window(block);
+-          break;
+-      case 3:         /* Close window. */
+-          swi(Wimp_GetPointerInfo, 0, block + 1);
+-          if (block[3] == 1)
+-              ro_open_parent();
+-          else
+-              if (ro_ok_to_quit())
+-                  ro_quit();
+-          break;
+-      case 6:         /* Mouse click. */
+-          ro_mouse(block);
+-          break;
+-      case 7:         /* Finished drag. */
+-          ro_drag_finished(block);
+-          break;
+-      case 8:         /* Key pressed. */
+-          ro_insert_key((char_u *) &block[6]);
+-          break;
+-      case 9:
+-          ro_menu_selection(block);
+-          break;
+-      case 10:        /* Scroll request. */
+-          ro_scroll(block);
+-          break;
+-      case 11:        /* Lose caret. */
+-          if (block[0] == gui.window_handle)
+-              gui_focus_change(FALSE);
+-          break;
+-      case 12:        /* Gain caret. */
+-          if (block[0] == gui.window_handle)
+-              gui_focus_change(TRUE);
+-          break;
+-      case 17:        /* User message. */
+-      case 18:        /* User message recorded. */
+-          ro_message(block);
+-          break;
+-     }
+- }
+- 
+- /*
+-  * GUI input routine called by gui_wait_for_chars().  Waits for a character
+-  * from the keyboard.
+-  *  wtime == -1          Wait forever.
+-  *  wtime == 0           This should never happen.
+-  *  wtime > 0            Wait wtime milliseconds for a character.
+-  * Returns OK if a character was found to be available within the given time,
+-  * or FAIL otherwise.
+-  */
+-     int
+- gui_mch_wait_for_chars(long wtime)
+- {
+-     int block[64];
+-     int      reason;
+-     int start_time = -1;
+-     int ctime = wtime / 10;  /* delay in cs */
+- 
+-     if (wtime != -1)
+-     {
+-      swi(OS_ReadMonotonicTime);
+-      start_time = r0;
+-     }
+- 
+-     for (;;)
+-     {
+-      if (ro_dragging)
+-          reason = wimp_poll(0, block);       /* Always return immediately */
+-      else if (wtime == -1)
+-          reason = wimp_poll(1, block);
+-      else
+-          reason = wimp_pollidle(0, block, start_time + ctime);
+- 
+-      process_event(reason, block);
+- 
+-      if (input_available() || ro_return_early)
+-      {
+-          ro_return_early = FALSE;
+-          return OK;      /* There is something to process (key / menu event) */
+-      }
+- 
+-      if (wtime != -1)
+-      {
+-          swi(OS_ReadMonotonicTime);
+-          if (r0 - start_time > ctime)
+-              return FAIL;    /* We've been waiting too long - return failure */
+-      }
+-     }
+- }
+- 
+- /* Flush any output to the screen */
+-     void
+- gui_mch_flush(void)
+- {
+- }
+- 
+- /*
+-  * Clear a rectangular region of the screen from text pos(row1, col1) to
+-  * (row2, col2) inclusive.
+-  */
+-     void
+- gui_mch_clear_block(int row1, int col1, int row2, int col2)
+- {
+-     swi(ColourTrans_ReturnGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
+-     plot_rectangle(96 + 5, r0,
+-                      FILL_X(col1), -FILL_Y(row2 + 1),
+-                      FILL_X(col2 + 1), -FILL_Y(row1));
+- }
+- 
+-     void
+- gui_mch_clear_all(void)
+- {
+-     if (redraw_block)
+-     {
+-      swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
+-      swi(OS_WriteI + 16);
+-     }
+-     else
+-     {
+-      int block[44];
+-      block[0] = gui.window_handle;
+-      block[1] = 0;
+-      block[2] = -gui.num_rows * gui.char_height;
+-      block[3] = gui.num_cols * gui.char_width;
+-      block[4] = 0;
+-      swi(Wimp_UpdateWindow, 0, block);
+-      while (r0)
+-      {
+-          swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
+-          swi(OS_WriteI + 16);
+-          swi(Wimp_GetRectangle, 0, block);
+-      }
+-     }
+- }
+- 
+- /*
+-  * Delete the given number of lines from the given row, scrolling up any
+-  * text further down within the scroll region.
+-  */
+-     void
+- gui_mch_delete_lines(int row, int num_lines)
+- {
+-     int top_from = -row - num_lines;
+-     int bot_from = -gui.scroll_region_bot - 1;
+-     int bot_to   = bot_from + num_lines;
+- 
+-     swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 0x80, 0);
+- 
+-     /* Changed without checking! */
+-     swi(Wimp_BlockCopy, gui.window_handle,
+-                          gui.scroll_region_left * gui.char_width,
+-                          bot_from * gui.char_height,
+-                          (gui.scroll_region_right - gui.scroll_region_left
+-                                                      + 1) * gui.char_width,
+-                          top_from * gui.char_height,
+- 
+-                          gui.scroll_region_left * gui.char_width,
+-                          bot_to * gui.char_height);
+- 
+-     gui_clear_block(gui.scroll_region_bot - num_lines + 1,
+-                                                     gui.scroll_region_left,
+-      gui.scroll_region_bot, gui.scroll_region_right);
+- }
+- 
+- /*
+-  * Insert the given number of lines before the given row, scrolling down any
+-  * following text within the scroll region.
+-  */
+-     void
+- gui_mch_insert_lines(int row, int num_lines)
+- {
+-     int top_from = -row;
+-     int bot_to   = -gui.scroll_region_bot - 1;
+-     int bot_from = bot_to + num_lines;
+- 
+-     swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 0x80, 0);
+- 
+-     swi(Wimp_BlockCopy, gui.window_handle,
+-                          gui.scroll_region_left * gui.char_width,
+-                          bot_from * gui.char_height,
+-                          (gui.scroll_region_right - gui.scroll_region_left
+-                                                      + 1) * gui.char_width,
+-                          top_from * gui.char_height,
+- 
+-                          gui.scroll_region_left * gui.char_width,
+-                          bot_to * gui.char_height);
+- 
+-     gui_clear_block(row, gui.scroll_region_left,
+-                              row + num_lines - 1, gui.scroll_region_right);
+- }
+- 
+- /* Put selection in clipboard buffer.
+-  * Should we become the new owner?
+-  */
+-     void
+- clip_mch_request_selection(VimClipboard *cbd)
+- {
+-     int              block[64];      /* Will be used in Wimp_Poll. */
+-     int              reason;
+-     char_u   *buffer;
+-     long_u   length;
+- 
+-     block[0] = 48;                   /* Size of block. */
+-     block[3] = 0;                    /* Original message. */
+-     block[4] = 0x10;                 /* Data request. */
+-     block[5] = gui.window_handle;
+-     block[6] = RO_LOAD_CLIPBOARD;    /* Internal handle. */
+-     block[7] = block[8] = 0;         /* (x,y) not used. */
+-     block[9] = 4;
+-     block[10] = 0xfff;           /* We want text files if possible, I think. */
+-     block[11] = -1;      /* End of list. */
+-     swi(Wimp_SendMessage, 17, block, 0);    /* Broadcast request. */
+- 
+-     /* OK, we've sent the request. Poll until we get a null poll (failure) or
+-      * we load the clipboard.
+-      * If we receive a DataSave event with icon handle = -2 then put it on the
+-      * clipboard. RISC OS should ensure that key events will not be delivered
+-      * until the clipboard operation completes (unless the owner starts idling
+-      * - we can't wait forever!).
+-      */
+-     for (;;)
+-     {
+-      reason = wimp_poll(0, block);
+-      if (reason == 0)
+-          return;         /* Failed to get clipboard. */
+-      if ((reason == 17 || reason == 18) &&
+-              block[4] == 1 && block[6] == RO_LOAD_CLIPBOARD)
+-          break;          /* Got it - stop waiting. */
+-      process_event(reason, block);
+-      if (ro_return_early)
+-          return;
+-     }
+-     /* Tell owner to save data in <Wimp$Scrap>. */
+-     block[0] = 60;
+-     block[3] = block[2];   /* Copy myref -> yourref */
+-     block[4] = 2;        /* DataSaveAck. */
+-     block[9] = -1;       /* Data is unsafe. */
+-     strcpy( ((char_u *) block) + 44, "<Wimp$Scrap>");
+-     swi(Wimp_SendMessage, 17, block, block[1]);
+- 
+-     /* Wait again for reply. */
+-     for (;;)
+-     {
+-      reason = wimp_poll(0, block);
+-      if (reason == 0)
+-          return;     /* Other program has given up! */
+-      if ((reason == 17 || reason == 18) && block[4] == 3 && block[6] == RO_LOAD_CLIPBOARD)
+-          break;      /* Clipboard data saved to <Wimp$Scrap> */
+-      process_event(reason, block);
+-      if (ro_return_early)
+-          return;
+-     }
+- 
+-     /* <Wimp$Scrap> contains clipboard - load it. */
+-     if (xswi(OS_File, 17, "<Wimp$Scrap>") & v_flag)
+-      return;         /* Error! */
+-     if (r0 != 1 && r0 != 3)
+-      return;
+-     length = r4;
+- 
+-     buffer = lalloc(length, TRUE);  /* Claim memory (and report errors). */
+-     if (buffer == NULL)
+-      return;
+- 
+-     if (xswi(OS_File, 16, "<Wimp$Scrap>", buffer, 0) & v_flag)
+-      return;
+- 
+-     clip_yank_selection(MCHAR, buffer, length, cbd);
+- 
+-     vim_free(buffer);
+- 
+-     swi(OS_FSControl, 27, "<Wimp$Scrap>", 0, 0);    /* Delete temp file. */
+- 
+-     block[4] = 4;                /* Send DataLoadAck. */
+-     block[3] = block[2];         /* Copy myref -> yourref. */
+-     swi(Wimp_SendMessage, 17, block, block[1]);
+- }
+- 
+- /* Not sure what this means under RISC OS. */
+-     void
+- clip_mch_lose_selection(VimClipboard *cbd)
+- {
+- }
+- 
+- /* Tell everyone that we now own the clipboard.
+-  * Return OK if our claim is accepted (always, under RISC OS)
+-  */
+-     int
+- clip_mch_own_selection(VimClipboard *cbd)
+- {
+-     int block[6];
+-     block[0] = 24;   /* Length of block.  */
+-     block[3] = 0;    /* Original message. */
+-     block[4] = 0xf;  /* ClaimEntity. */
+-     block[5] = 0x4;  /* Claim clipboard only. */
+-     swi(Wimp_SendMessage, 17, block, 0);
+-     return OK;
+- }
+- 
+- /*
+-  * Send the current selection to the clipboard.  Do nothing for X because we
+-  * will fill in the selection only when requested by another app. Sounds good
+-  * for RISC OS too.
+-  */
+-     void
+- clip_mch_set_selection(VimClipboard *cbd)
+- {
+-     clip_get_selection(cbd);
+- }
+- 
+- /*
+-  * Make a menu either grey or not grey.
+-  */
+-     void
+- gui_mch_menu_grey(vimmenu_T *menu, int grey)
+- {
+-     menu-> greyed_out = grey;
+- }
+- 
+- /*
+-  * Make menu item hidden or not hidden
+-  */
+-     void
+- gui_mch_menu_hidden(vimmenu_T *menu, int hidden)
+- {
+-     menu-> hidden = hidden;
+- }
+- 
+- /*
+-  * This is called after setting all the menus to grey/hidden or not.
+-  */
+-     void
+- gui_mch_draw_menubar(void)
+- {
+-     swi(Wimp_CreateMenu, 0, -1);
+-     if (wimp_menu != (int *) -1)
+-     {
+-      ro_remove_menu(wimp_menu);
+-      wimp_menu = (int *) -1;
+-     }
+- }
+- 
+- /* Add or remove a scrollbar. Note that this is only called when
+-  * the scrollbar state is changing.
+-  * The scroll bar window has already been created.
+-  * We can't do anything except remove the scroll bar
+-  * until we know what size to use.
+-  */
+-     void
+- gui_mch_enable_scrollbar(sb, flag)
+-     scrollbar_T      *sb;
+-     int              flag;
+- {
+-     if (!flag)
+-      swi(Wimp_CloseWindow, 0, & (sb->id) );
+-     return;
+- }
+- 
+-     void
+- gui_mch_set_blinking(long waittime, long on, long off)
+- {
+- }
+- 
+- /*
+-  * Stop the cursor blinking.  Show the cursor if it wasn't shown.
+-  */
+-     void
+- gui_mch_stop_blink(void)
+- {
+- }
+- 
+- /*
+-  * Start the cursor blinking.  If it was already blinking, this restarts the
+-  * waiting time and shows the cursor.
+-  */
+-     void
+- gui_mch_start_blink(void)
+- {
+- }
+- 
+- /*
+-  * Return the RGB value of a pixel as a long.
+-  */
+-     long_u
+- gui_mch_get_rgb(guicolor_T pixel)
+- {
+-     return (long_u)pixel;
+- }
+- 
+-     void
+- gui_mch_set_text_area_pos(int x, int y, int w, int h)
+- {
+- }
+- 
+-     void
+- gui_mch_enable_menu(int flag)
+- {
+- }
+- 
+-     void
+- gui_mch_set_menu_pos(int x, int y, int w, int h)
+- {
+- }
+- 
+-     void
+- gui_mch_add_menu(vimmenu_T *menu, int idx)
+- {
+- }
+- 
+-     void
+- gui_mch_add_menu_item(vimmenu_T *menu, int idx)
+- {
+- }
+- 
+-     void
+- gui_mch_new_menu_colors(void)
+- {
+- }
+- 
+-     void
+- gui_mch_destroy_menu(vimmenu_T *menu)
+- {
+- }
+- 
+- /* Size of buffer has changed.
+-  * Add one to max since gui.c subtracts one more than it should!
+-  */
+-     void
+- gui_mch_set_scrollbar_thumb(sb, val, size, max)
+-     scrollbar_T      *sb;
+-     long     val;
+-     long     size;
+-     long     max;
+- {
+-     int              block[10], width, height;
+- 
+-     width = (max + 1) * gui.char_width;
+-     height = (max + 1 + W_STATUS_HEIGHT(sb->wp)) * gui.char_height;
+- 
+-     block[0] = block[3] = 0;
+-     block[1] = -height + (1 << y_eigen_factor);
+-     block[2] = width;
+- 
+-     swi(Wimp_SetExtent, sb -> id, block);
+- 
+-     block[0] = sb -> id;
+-     swi(Wimp_GetWindowState, 0, block);
+-     block[5] = val * gui.char_width;
+-     block[6] = -val * gui.char_height;
+-     swi(Wimp_OpenWindow, 0, block, 0x4b534154,
+-                      gui.window_handle,      /* Parent window handle. */
+-                      (CHILD_FIX_TO_RIGHT  << CHILD_LEFT  )   |
+-                      (CHILD_FIX_TO_RIGHT  << CHILD_RIGHT )   |
+-                      (CHILD_FIX_TO_BOTTOM << CHILD_TOP   )   |
+-                      (CHILD_FIX_TO_BOTTOM << CHILD_BOTTOM)   |
+-                      (CHILD_SELF_SCROLL   << CHILD_SCROLL_X) |
+-                      (CHILD_SELF_SCROLL   << CHILD_SCROLL_Y)
+-                      );
+- }
+- 
+- /* Set the position of the scrollbar within the editor
+-  * window. Note that, for vertical scrollbars, x and w
+-  * are ignored. For horizontal bars y and h are ignored.
+-  */
+-     void
+- gui_mch_set_scrollbar_pos(sb, x, y, w, h)
+-     scrollbar_T *sb;
+-     int              x;              /* Horizontal sb position */
+-     int              y;              /* Top of scroll bar */
+-     int              w;              /* Width */
+-     int              h;              /* Height */
+- {
+-     int              block[24];
+-     int              px1, py1;       /* Parent window min coords */
+-     int              px2, py2;       /* Parent window max coords */
+- 
+-     /* Find where the parent window is. */
+-     block[0] = gui.window_handle;
+-     swi(Wimp_GetWindowState, 0, block);
+-     px1 = block[1];
+-     py1 = block[2];
+-     px2 = block[3];
+-     py2 = block[4];
+- 
+-     block[0] = sb -> id;
+- 
+-     /* Find out how big the scroll window is at the moment. */
+-     swi(Wimp_GetWindowInfo, 0, ((char_u *)block) + 1);
+- 
+-     if (block[13] < w || block[12] > -h)
+-     {
+-      /* Current window is too small! */
+-      if (block[12] > -h)
+-          block[12] = -h;
+-      if (block[13] < w)
+-          block[13] = w;
+-      swi(Wimp_SetExtent, block[0], block + 11);
+-     }
+- 
+-     /* This works better on the nested_wimp. */
+-     if (sb-> wp)
+-     {
+-      /* This is a vertical scrollbar. */
+-      block[1] = block[3] = px2 - gui.scrollbar_width + (1 << x_eigen_factor);
+-      block[2] = 1 + py2 - (y + h) + (1 << y_eigen_factor);
+-      block[4] = 1 + py2 - y;
+-     }
+-     else
+-     {
+-      /* This is a horizontal scrollbar. */
+-      block[2] = block[4] = py1 + gui.scrollbar_height;
+-      block[1] = px1;
+-      block[3] = px2 - gui.scrollbar_width;
+-     }
+- 
+-     block[5] = 0;
+-     block[6] = 0;
+-     block[7] = -1;
+- 
+-     swi(Wimp_OpenWindow, 0, block, 0x4b534154,
+-          gui.window_handle,  /* Parent window handle. */
+-          (CHILD_FIX_TO_RIGHT  << CHILD_LEFT  )   |
+-          (CHILD_FIX_TO_RIGHT  << CHILD_RIGHT )   |
+-          (CHILD_FIX_TO_BOTTOM << CHILD_TOP   )   |
+-          (CHILD_FIX_TO_BOTTOM << CHILD_BOTTOM)   |
+-          (CHILD_SELF_SCROLL   << CHILD_SCROLL_X) |
+-          (CHILD_SELF_SCROLL   << CHILD_SCROLL_Y)
+-        );
+- }
+- 
+- /* Create a window with no workarea to place inside editor window.
+-  * (what happens without the nested wimp?)
+-  * Data for scrollbar is invalid.
+-  */
+-     void
+- gui_mch_create_scrollbar(sb, orient)
+-     scrollbar_T *sb;
+-     int              orient; /* orient is SBAR_HORIZ or SBAR_VERT */
+- {
+-     int bar[] =
+-      {
+-          0,   0,             /* Visible area : min X,Y */
+-          100, 100,           /*                max X,Y */
+-          0,   0,             /* Scroll offsets */
+-          -1,                 /* Window in front */
+-          0x80800150 | (orient == SBAR_HORIZ ? (1 << 30) : (1 << 28)),
+-          0xff070207,         /* Colours */
+-          0x000c0103,         /* More colours */
+-          0, -0x4000,         /* Workarea extent */
+-          0x4000, 0,          /* max X,Y */
+-          0x00000000,         /* No title */
+-          0 << 12,            /* No workarea button type */
+-          1,                  /* Wimp sprite area */
+-          0x00010001,         /* Minimum width, height */
+-          0, 0, 0,            /* Title data (none) */
+-          0                   /* No icons */
+-      };
+-     swi(Wimp_CreateWindow, 0, bar);
+-     sb -> id = r0;
+- }
+- 
+- #if defined(FEAT_WINDOWS) || defined(PROTO)
+-     void
+- gui_mch_destroy_scrollbar(scrollbar_T *sb)
+- {
+-     swi(Wimp_DeleteWindow, 0, & (sb->id));
+-     sb -> id = -1;
+- }
+- #endif
+- 
+-     void
+- gui_mch_set_scrollbar_colors(scrollbar_T *sb)
+- {
+-     /* Always use default RO colour scheme. */
+- }
+- 
+- /*
+-  * Get current mouse coordinates in text window.
+-  * Note: (0,0) is the bottom left corner, positive y is UP.
+-  */
+-     void
+- gui_mch_getmouse(x, y)
+-     int *x;
+-     int *y;
+- {
+-     int left;
+-     int top;
+-     int block[10];
+- 
+-     block[0] = gui.window_handle;
+-     swi(Wimp_GetWindowState, 0, block);
+-     left = block[1];
+-     top = block[4];
+- 
+-     swi(Wimp_GetPointerInfo, 0, block);
+-     *x = block[0] - left;
+-     *y = top - block[1];
+- }
+- 
+- /* MouseTo(x, y) */
+-     void
+- gui_mch_setmouse(x, y)
+-     int              x;
+-     int              y;
+- {
+- }
+- 
+-     void
+- gui_mch_toggle_tearoffs(enable)
+-     int              enable;
+- {
+-     /* no tearoff menus */
+- }
+- 
+- /* Redraw a window's title.
+-  * For the nested wimp we use the new 'redraw-title-bar' reason code.
+-  * For older wimps we mark the area of the screen where the title bar
+-  * is as invalid.
+-  */
+-     void
+- ro_redraw_title(window)
+-     int window;
+- {
+-     if (nested_wimp)
+-     {
+-      swi(Wimp_ForceRedraw, window, 0x4b534154, 3);
+-     }
+-     else
+-     {
+-      int block[10];
+-      int miny;
+- 
+-      block[0] = window;
+-      swi(Wimp_GetWindowState, 0, block);
+-      miny = block[4];
+-      swi(Wimp_GetWindowOutline, 0, block);
+-      swi(Wimp_ForceRedraw, -1,
+-                      block[1], miny,
+-                      block[3], block[4]);
+-     }
+- }
+- 
+- /* Turn a vimmenu_T structure into a wimp menu structure.
+-  * -1 if resulting menu is empty.
+-  * Only the children and dname items in the root menu are used.
+-  */
+-     int *
+- ro_build_menu(menu)
+-     vimmenu_T        *menu;
+- {
+-     int              *wimp_menu;
+-     int              width = 4;
+-     int              w;
+-     int              size = 28;
+-     vimmenu_T        *item;
+-     int              *wimp_item;
+- 
+-     /* Find out how big the menu is so we can allocate memory for it */
+-     for (item = menu-> children; item; item = item-> next)
+-     {
+-      if (item-> hidden == FALSE && !menu_is_separator(item->name))
+-          size += 24;
+-     }
+- 
+-     if (size <= 28)
+-      return (int *) -1;              /* No children - shouldn't happen */
+- 
+-     wimp_menu = (int *) alloc(size);
+- 
+-     wimp_menu[0] = (int) menu-> dname;
+-     wimp_menu[1] = -1;
+-     wimp_menu[2] = 0;
+-     wimp_menu[3] = 0x00070207;
+-     wimp_menu[5] = 44;
+-     wimp_menu[6] = 0;
+- 
+-     wimp_item = wimp_menu + 7;
+- 
+-     for (item = menu-> children; item; item = item-> next)
+-     {
+-      if (menu_is_separator(item-> name))
+-      {
+-          /* This menu entry is actually a separator. If it is not the first
+-           * menu entry then mark the previous menu item as needing a dotted
+-           * line after it.
+-           */
+-          if (wimp_item > wimp_menu + 7)
+-              wimp_item[-6] |= 0x2;
+-      }
+-      else if (item-> hidden == FALSE)
+-      {
+-          wimp_item[0] = 0;
+-          wimp_item[1] = item-> children ? (int) ro_build_menu(item) : -1;
+-          wimp_item[2] = 0x07009131 | (item-> greyed_out << 22);
+-          wimp_item[3] = (int) item-> dname;
+-          wimp_item[4] = -1;
+-          wimp_item[5] = (int) item;  /* Stuff the menu address in this unused space */
+- 
+-          w = strlen(item-> dname) + 1;
+-          if (w > width)
+-              width = w;
+-          wimp_item += 6;
+-      }
+-     }
+- 
+-     wimp_menu[4] = (width + 2) * 16;
+-     wimp_menu[7]  |= 0x100;      /* Menu title is indirected */
+-     wimp_item[-6] |= 0x080;      /* Last entry in menu */
+-     return wimp_menu;
+- }
+- 
+-     static void
+- ro_remove_menu(menu)
+-     int          *menu;
+- {
+-     int          *item = menu + 7;
+- 
+-     if (menu == NULL || menu == (int *) -1)
+-      return;
+- 
+-     for (;;)
+-     {
+-      if (item[1] != -1)
+-          ro_remove_menu((int *) item[1]);    /* Remove sub-menu */
+-      if (item[0] & 0x80)
+-          break;                      /* This was the last entry */
+-      item += 6;
+-     }
+-     vim_free(menu);
+- }
+- 
+-     void
+- gui_mch_show_popupmenu(menu)
+-     vimmenu_T        *menu;
+- {
+-     int              block[10];
+- 
+-     /* Remove the existing menu, if any */
+-     if (wimp_menu != (int *) -1)
+-     {
+-      swi(Wimp_CreateMenu, 0, -1);
+-      ro_remove_menu(wimp_menu);
+-      wimp_menu = (int *) -1;
+-     }
+- 
+-     wimp_menu = ro_build_menu(menu);
+-     if (wimp_menu != (int *) -1)
+-     {
+-      swi(Wimp_GetPointerInfo, 0, block);
+-      swi(Wimp_CreateMenu, 0, wimp_menu, block[0] - 64, block[1] + 64);
+-     }
+- }
+- 
+- /* Run a command using the TaskWindow module.
+-  * If SHELL_FILTER is set then output is not echoed to the screen,
+-  * If it is not set, then \r is not sent to the output file.
+-  */
+-     int
+- gui_mch_call_shell(cmd, options)
+-     char_u  *cmd;
+-     int          options;    /* SHELL_FILTER if called by do_filter() */
+-                      /* SHELL_COOKED if term needs cooked mode */
+- {
+-     char_u  task_cmd[256];   /* Contains *TaskWindow command. */
+-     int          block[64];
+-     int          reason;
+-     char_u  *out;
+-     char_u  c;
+-     int          old_msg_col;
+-     char_u  *out_redir;
+-     int          length;
+-     FILE    *out_file = NULL;
+- 
+-     out_redir = strstr(cmd, " > ");
+-     if (out_redir == NULL)
+-      length = strlen(cmd);   /* No redirection. */
+-     else
+-     {
+-      length = out_redir - cmd;
+-      out_file = fopen(out_redir + 3, "wb");
+-      if (out_file == NULL)
+-          smsg("WARNING : Can't open file %s for writing\n", out_redir + 3);
+-     }
+- 
+-     if (length > 180)
+-     {
+-      if (out_file)
+-          fclose(out_file);
+-      return FAIL;            /* Command too long. */
+-     }
+- 
+-     strcpy(task_cmd, "TaskWindow \"");
+-     strncpy(task_cmd + 12, cmd, length);
+-     sprintf(task_cmd + 12 + length,
+-          "\" -task &%08x -ctrl -quit -name \"Vim command\"",
+-          task_handle);
+- 
+-     if (options & SHELL_COOKED)
+-      settmode(TMODE_COOK);
+- 
+-     if (xswi(Wimp_StartTask, task_cmd) & v_flag)
+-     {
+-      /* Failed to even start a new task (out of memory?) */
+-      settmode(TMODE_RAW);
+-      if (out_file)
+-          fclose(out_file);
+-      return FAIL;
+-     }
+- 
+-     /* Wait for the child process to initialise. */
+-     child_handle = 0;
+-     while (!child_handle)
+-     {
+-      reason = wimp_poll(0, block);
+-      if ((reason == 17 || reason == 18) && block[4] == 0x808c2)
+-          child_handle = block[1];
+-      else
+-          process_event(reason, block);
+-     }
+- 
+-     /* Block until finished */
+-     while (child_handle)
+-     {
+-      reason = wimp_poll(1, block);
+-      if (reason == 3 || (reason == 8 && block[6] == 3))
+-      {
+-          /* Close window request or CTRL-C - kill child task. */
+-          block[0] = 20;
+-          block[3] = 0;
+-          block[4] = 0x808c4;     /* Morite */
+-          swi(Wimp_SendMessage, 17, block, child_handle);
+-          MSG_PUTS(_("\nSending message to terminate child process.\n"));
+-          continue;
+-      }
+-      else if (reason == 8)
+-      {
+-          block[0] = 28;
+-          block[3] = 0;
+-          block[4] = 0x808c0;     /* Input */
+-          block[5] = 1;
+-          /* Block[6] is OK as it is! */
+-          swi(Wimp_SendMessage, 17, block, child_handle);
+-          continue;
+-      }
+-      else if (reason == 17 || reason == 18)
+-      {
+-          if (block[4] == 0x808c1)
+-          {
+-              /* Ack message. */
+-              block[3] = block[2];
+-              swi(Wimp_SendMessage, 19, block, block[1]);
+-              out = (char_u *)block + 24;
+-              old_msg_col = msg_col;
+-              while (block[5]--)
+-              {
+-                  c = *out++;
+-                  if (out_file && (c != '\r' || (options & SHELL_FILTER)))
+-                      fputc(c, out_file);
+-                  if ((options & SHELL_FILTER) == 0)
+-                  {
+-                      if (c == 127)
+-                          msg_puts("\b \b");
+-                      else if (c > 31)
+-                          msg_putchar(c);
+-                      else if (c == 10)
+-                      {
+-                          lines_left = 8;     /* Don't do More prompt! */
+-                          msg_putchar(10);
+-                      }
+-                  }
+-              }
+-              /* Flush output to the screen. */
+-              windgoto(msg_row, msg_col);
+-              out_flush();
+-              continue;
+-          }
+-      }
+-      process_event(reason, block);
+-     }
+-     msg_putchar('\n');
+-     settmode(TMODE_RAW);
+-     if (out_file)
+-      fclose(out_file);
+-     return OK;
+- }
+- 
+- /* Like strsave(), but stops at any control char */
+-     char_u *
+- wimp_strsave(str)
+-     char    *str;
+- {
+-     int          strlen = 0;
+-     char_u  *retval;
+-     while (str[strlen] > 31)
+-      strlen++;
+-     retval = alloc(strlen + 1);
+-     if (retval)
+-     {
+-      memcpy(retval, str, strlen);
+-      retval[strlen] = '\0';
+-     }
+-     return retval;
+- }
+- 
+- /* If we are saving then pop up a standard RISC OS save box.
+-  * Otherwise, open a directory viewer on the given directory (and return NULL)
+-  * The string we return will be freed later.
+-  */
+-     char_u *
+- gui_mch_browse(saving, title, dflt, ext, initdir, filter)
+-     int              saving;         /* write action */
+-     char_u   *title;         /* title for the window */
+-     char_u   *dflt;          /* default file name */
+-     char_u   *ext;           /* extension added */
+-     char_u   *initdir;       /* initial directory, NULL for current dir */
+-     char_u   *filter;        /* file name filter */
+- {
+-     char command[256];
+-     int length;
+- 
+-     if (saving)
+-     {
+-      int     block[64];
+-      int     reason;
+-      int     done_save = FALSE;
+-      char_u  *retval = NULL;
+-      char_u  *sprname;
+-      char_u  *fname;
+-      int     dragging_icon = FALSE;
+-      int     filetype;
+- 
+-      if (!dflt)
+-          dflt = "TextFile";
+- 
+-      block[0] = save_window;
+-      block[1] = 0;
+-      swi(Wimp_GetIconState, 0, block);
+-      sprname = ((char_u *) block[7]);
+-      block[1] = 1;
+-      swi(Wimp_GetIconState, 0, block);
+-      fname = ((char *) block[7]);
+-      strncpy(fname, dflt, 255);
+- 
+-      if (xswi(OS_FSControl, 31, curbuf->b_p_oft) & v_flag)
+-      {
+-          filetype = 0xfff;
+-          strcpy(sprname + 5, "xxx");
+-      }
+-      else
+-      {
+-          filetype = r2;
+-          sprintf(sprname + 5, "%03x", filetype);
+-      }
+- 
+-      /* Open the save box */
+- 
+-      swi(Wimp_GetPointerInfo, 0, block);
+-      swi(Wimp_CreateMenu, 0, save_window, block[0] - 64, block[1] + 64);
+-      swi(Wimp_SetCaretPosition, save_window, 1, 0, 0, -1, -1);
+- 
+-      while (!done_save)
+-      {
+-          reason = wimp_poll(1, block);
+-          switch (reason)
+-          {
+-              case 1:
+-                  redraw_window(block);
+-                  break;
+-              case 2:
+-                  if (block[0] == save_window)
+-                      swi(Wimp_OpenWindow, 0, block);
+-                  else
+-                      ro_open_window(block);
+-                  break;
+-              case 3:
+-                  done_save = TRUE;
+-                  break;
+-              case 6:
+-                  if (block[3] != save_window)
+-                      done_save = TRUE;
+-                  else
+-                  {
+-                      int drag_box[4];
+-                      int min_x, max_y;
+- 
+-                      switch (block[4])
+-                      {
+-                          case    0: /* Start drag */
+-                              block[0] = save_window;
+-                              swi(Wimp_GetWindowState, 0, block);
+-                              min_x = block[1];
+-                              max_y = block[4];
+-                              block[1] = 0;
+-                              swi(Wimp_GetIconState, 0, block);
+-                              drag_box[0] = block[2] + min_x;
+-                              drag_box[1] = block[3] + max_y;
+-                              drag_box[2] = block[4] + min_x;
+-                              drag_box[3] = block[5] + max_y;
+- 
+-                              swi(DragASprite_Start,
+-                                      0x45,
+-                                      1,
+-                                      sprname,
+-                                      drag_box);
+-                              dragging_icon = TRUE;
+-                              break;
+-                          case    2: /* OK */
+-                              retval = wimp_strsave(fname);
+-                              done_save = TRUE;
+-                              break;
+-                          case    3: /* Cancel */
+-                              done_save = TRUE;
+-                              break;
+-                      }
+-                  }
+-                  break;
+-              case 7:
+-                  if (dragging_icon)
+-                  {
+-                      int len = 0;
+- 
+-                      dragging_icon = FALSE;
+-                      swi(Wimp_GetPointerInfo, 0, block);
+-                      block[5] = block[3];
+-                      block[6] = block[4];
+-                      block[7] = block[0];
+-                      block[8] = block[1];
+-                      block[9] = 0;           /* Don't know the size */
+-                      block[10] = filetype;
+- 
+-                      while (fname[len] > 31)
+-                      {
+-                          if (fname[len] == '.')
+-                          {
+-                              fname += len + 1;
+-                              len = 0;
+-                          }
+-                          else
+-                              len++;
+-                      }
+-                      if (len > 211)
+-                          len = 211;
+- 
+-                      memcpy(((char_u *) block) + 44, fname, len);
+-                      ((char_u *)block)[44 + len] = '\0';
+- 
+-                      block[0] = (len + 48) & 0xfc;
+-                      block[3] = 0;
+-                      block[4] = 1;       /* DataSave */
+- 
+-                      swi(Wimp_SendMessage, 17, block, block[5], block[6]);
+-                  }
+-                  else
+-                      ro_drag_finished(block);
+-                  break;
+-              case 8:
+-                  if (block[6] == 13)
+-                  {
+-                      retval = wimp_strsave(fname);
+-                      done_save = TRUE;
+-                  }
+-                  else if (block[6] == 0x1b)
+-                      done_save = TRUE;
+-                  else
+-                      swi(Wimp_ProcessKey, block[6]);
+-                  break;
+-              case 17:
+-              case 18:
+-                  if (block[4] == 2 && block[9] != -1)
+-                  {
+-                      /* DataSaveAck from dragging icon. */
+-                      retval = wimp_strsave(((char_u *) block) + 44);
+-                      done_save = TRUE;
+-                  }
+-                  else if (block[4] == 0x400c9)
+-                  {
+-                      /* MenusDeleted */
+-                      done_save = TRUE;
+-                  }
+-                  else
+-                      ro_message(block);
+-                  break;
+-          }
+-      }
+-      block[0] = save_window;
+-      swi(Wimp_CloseWindow, 0, block);
+-      swi(Wimp_GetCaretPosition, 0, block);
+-      if (block[0] == -1)
+-          swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
+- 
+-      return retval;
+-     }
+-     else if (initdir)
+-     {
+-      /* Open a directory viewer */
+-      length = strlen(initdir);
+- 
+-      if (length > 240)
+-          return NULL;        /* Path too long! */
+- 
+-      length = sprintf(command, "Filer_OpenDir %s", initdir);
+-      while (command[length - 1] == '.')
+-          length--;
+-      command[length] = '\0';
+-      swi(OS_CLI, command);
+-     }
+-     return NULL;
+- }
+--- 0 ----
+*** ../vim-7.3.186/src/os_riscos.c     2010-08-15 21:57:27.000000000 +0200
+--- src/os_riscos.c    1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,1292 ****
+- /* vi:set ts=8 sts=4 sw=4:
+-  *
+-  * VIM - Vi IMproved by Bram Moolenaar
+-  *
+-  * Do ":help uganda"  in Vim to read copying and usage conditions.
+-  * Do ":help credits" in Vim to see a list of people who contributed.
+-  * See README.txt for an overview of the Vim source code.
+-  */
+- 
+- #include "vim.h"
+- 
+- /*
+-  * os_riscos.c
+-  *
+-  * Thomas Leonard <tal197@ecs.soton.ac.uk>
+-  */
+- 
+- const char *__dynamic_da_name = "Vim heap"; /* Enable and name our dynamic area */
+- int ro_line_mode = TRUE;  /* For Ex mode we much echo chars to the screen ourselves */
+- int windowed;                /* Flag - are we running inside a text window? */
+- int WinLeft, WinTop; /* We might be started inside a text window */
+- int ScrollTop;               /* Make cursor movements relative to ScrollTop. */
+- 
+- int old_escape_state = -1;
+- int old_cursor_state = -1;
+- 
+- #define rgb(r,g,b) ((b<<24) + (g<<16) + (r<<8))
+- #define NORMAL_FG 0x00000000
+- #define NORMAL_BG 0xffffffff
+- 
+- /* Convert a DOS colour number to an RGB palette entry.
+-  * Mappings from X11 rgb/txt file.
+-  */
+-     static int
+- map_colour(dos)
+-     int dos;         /* Standard DOS colour number. */
+- {
+-     switch (dos)
+-     {
+-      case 0: return 0;                       /* Black */
+-      case 1: return rgb(0,0,139);            /* DarkBlue */
+-      case 2: return rgb(0,100,0);            /* DarkGreen */
+-      case 3: return rgb(0,139,139);          /* DarkCyan */
+-      case 4: return rgb(139,0,0);            /* DarkRed */
+-      case 5: return rgb(139,0,139);          /* DarkMagenta */
+-      case 6: return rgb(165,42,42);          /* Brown, DarkYellow */
+-      case 7: return rgb(211,211,211);        /* LightGray, LightGrey, Gray, Grey */
+-      case 8: return rgb(169,169,169);        /* DarkGray, DarkGrey */
+-      case 9: return rgb(173,216,230);        /* Blue, LightBlue */
+-      case 10: return rgb(144,238,144);       /* Green, LightGreen */
+-      case 11: return rgb(224,255,255);       /* Cyan, LightCyan */
+-      case 12: return rgb(255,0,0);           /* Red, LightRed */
+-      case 13: return rgb(255,0,255);         /* Magenta, LightMagenta */
+-      case 14: return rgb(255,255,0);         /* Yellow, LightYellow */
+-      case 15: return rgb(255,255,255);       /* White */
+-     }
+-     return rgb(100,100,100);
+- }
+- 
+-     static void
+- text_fg(fg)
+-     int fg;          /* Foregound colour in the form &BBGGRR00 */
+- {
+-     xswi(ColourTrans_SetTextColour, fg, 0, 0, 0);
+- }
+- 
+-     static void
+- text_bg(bg)
+-     int              bg;     /* Backgound colour in the form &BBGGRR00 */
+- {
+-     xswi(ColourTrans_SetTextColour, bg, 0, 0, 1 << 7);
+- }
+- 
+- #define OUT_NORMAL 0
+- #define OUT_NUMBER 1         /* Reading in a number */
+- 
+-     void
+- mch_write(s, len)
+-     char_u  *s;
+-     int          len;
+- {
+-     static int mode = OUT_NORMAL;
+-     static int x, y;                 /* For reading numbers in. */
+- 
+-     if (!term_console)
+-     {
+-      /* Maybe we are running Vim remotely - don't interpret chars */
+-      while (len--)
+-      {
+-          char_u c = *s++;
+-          swi(OS_WriteC, c);
+-          /* We might need to send a CR too. This shouldn't
+-           * hurt if we don't need it, should it?
+-           */
+-          if (c == 10)
+-              swi(OS_WriteI + 13);
+-      }
+-      return;
+-     }
+- 
+-     while (len--)
+-     {
+-      char_u c = *s++;
+-      switch (mode)
+-      {
+-          case OUT_NUMBER:
+-              if (c < '0' || c > '9')
+-              {
+-                  mode = OUT_NORMAL;
+-              }
+-              else
+-              {
+-                  x = (x * 10) + c - '0';
+-                  continue;
+-              }
+-          /* note: no break here! */
+- 
+-          case OUT_NORMAL:
+-              switch (c)
+-              {
+-                  case 1:
+-                      /* Number (in decimal) follows. */
+-                      mode = OUT_NUMBER;
+-                      y = x;
+-                      x = 0;
+-                      break;
+-                  case 2:
+-                      /* Position cursor. */
+-                      swi(OS_WriteI + 31);
+-                      swi(OS_WriteC, x);
+-                      swi(OS_WriteC, y - ScrollTop);
+-                      break;
+-                  case 3:
+-                      /* Set scroll region. */
+-                      if (x == Rows -1 && y == 0 && !windowed)
+-                      {
+-                          /* Whole screen - remove text window.
+-                           * This is MUCH faster.
+-                           */
+-                          swi(OS_WriteI + 26);
+-                      }
+-                      else
+-                      {
+-                          /* Create a text window. */
+-                          swi(OS_WriteI + 28);
+-                          swi(OS_WriteC, WinLeft);
+-                          swi(OS_WriteC, WinTop + x);
+-                          swi(OS_WriteC, WinLeft + Columns - 1);
+-                          swi(OS_WriteC, WinTop + y);
+-                      }
+-                      ScrollTop = y;
+-                      break;
+-                  case 4:
+-                      /* Normal mode. */
+-                      text_fg(NORMAL_FG);
+-                      text_bg(NORMAL_BG);
+-                      break;
+-                  case 5:
+-                      /* Reverse mode. */
+-                      text_fg(NORMAL_BG);
+-                      text_bg(NORMAL_FG);
+-                      break;
+-                  case 10:
+-                      swi(OS_NewLine);
+-                      break;
+-                  case 14:
+-                      /* Cursor invisible. */
+-                      swi(OS_WriteN,
+-                           "\027\001\000\000\000\000\000\000\000\000",
+-                           10);
+-                      break;
+-                  case 15:
+-                      /* Cursor visible. */
+-                      swi(OS_WriteN,
+-                           "\027\001\002\000\000\000\000\000\000\000",
+-                           10);
+-                      break;
+-                  case 16:
+-                      /* Cursor very visible (flash) */
+-                      swi(OS_WriteN,
+-                           "\027\001\003\000\000\000\000\000\000\000",
+-                           10);
+-                  case 17:
+-                      /* Set foreground colour. */
+-                      text_fg(map_colour(x));
+-                      break;
+-                  case 18:
+-                      /* Set background colour. */
+-                      text_bg(map_colour(x));
+-                      break;
+-                  case 19:
+-                      /* Scroll text down. */
+-                      swi(OS_WriteN,
+-                           "\027\007\000\002\000\000\000\000\000\000",
+-                           10);
+-                      break;
+-                  default:
+-                      swi(OS_WriteC, c);
+-              }
+-              continue;
+- 
+-          default:
+-              printf("[output error]");
+-              mode = OUT_NORMAL;
+-      }
+-     }
+- }
+- 
+- /*
+-  * mch_inchar(): low level input funcion.
+-  * Get a characters from the keyboard.
+-  * Return the number of characters that are available.
+-  * If wtime == 0 do not wait for characters.
+-  * If wtime == n wait n msecs for characters.
+-  * If wtime == -1 wait forever for characters.
+-  *
+-  * TODO: call convert_input() for 'fileencoding' to 'encoding' conversion.
+-  */
+-     int
+- mch_inchar(buf, maxlen, wtime, tb_change_cnt)
+-     char_u  *buf;
+-     int          maxlen;
+-     long    wtime;
+-     int          tb_change_cnt;
+- {
+-     int got=0;
+-     unsigned int start_time = clock();
+- 
+-     if (ro_line_mode)
+-     {
+-      /* We're probably in Ex mode - get whole lines at a time. */
+- 
+-      static char_u   line_buffer[256];
+-      static int      remaining_chars = 0;
+-      static int      buf_pos = 0;
+- 
+-      /* Do we need to fetch another line? */
+-      if (remaining_chars == 0)
+-      {
+-          int         old_esc_state;
+-          swi(OS_Byte, 200, 1, 0xfe);
+-          old_esc_state = r1;
+- 
+-          buf_pos = 0;
+-          if (xswi(OS_ReadLine, line_buffer, 255, 0, 255) & (c_flag | v_flag))
+-          {
+-              got_int = TRUE;     /* ESC pressed */
+-              r1 = 0;
+-          }
+-          line_buffer[r1] = 13;
+-          remaining_chars = r1 + 1;   /* Count CR as part of input */
+- 
+-          swi(OS_Byte, 200, old_esc_state, 0);
+-      }
+- 
+-      /* Can we send the rest of the buffer back in one go? */
+-      if (remaining_chars <= maxlen)
+-      {
+-          int     got = remaining_chars;
+- 
+-          memcpy(buf, line_buffer + buf_pos, got);
+-          remaining_chars = 0;
+-          return  got;
+-      }
+- 
+-      /* Send as much as we can */
+-      memcpy(buf, line_buffer + buf_pos, maxlen);
+-      buf_pos += maxlen;
+-      remaining_chars -= maxlen;
+- 
+-      return maxlen;
+-     }
+- 
+-     if (!term_console)
+-     {
+-      /* Use OS_ReadC for all input.
+-       * Avoids problems with remote access getting interference from
+-       * the keyboard.
+-       */
+-      if (wtime == 0)
+-          return 0;       /* Ignore quick key checks */
+- 
+-      if (xswi(OS_ReadC) & c_flag)
+-      {
+-          got_int = TRUE;     /* ESC pressed - can this happen? */
+-          swi(OS_Byte, 124);  /* Clear Escape state */
+-          r0 = 0x1b;          /* It *might* not have been Escape! */
+-      }
+-      buf[0] = r0;
+-      return 1;
+-     }
+- 
+-     /*
+-      * OK, here's the plan:
+-      *
+-      * 1) Wait until wtime expires or we get a key
+-      * 2) Get keys until the keyboard buffer is empty or buf is full
+-      */
+- 
+-     while (xswi(OS_Byte,145,0) & c_flag)
+-     {
+-      /* Nothing at all in the keyboard buffer.
+-       * Has our time expired yet?
+-       */
+-      if ( (wtime != -1) && (clock() - start_time) >= wtime )
+-          return 0;           /* Nothing read - giving up */
+-     }
+- 
+-     /* We've got one char (in r2) - are there any more? */
+- 
+-     while (got < maxlen)
+-     {
+-      buf[got++] = r2;
+- 
+-      if (xswi(OS_Byte,145,0) & c_flag)
+-          return got;         /* Keyboard buffer empty */
+-     }
+-     return got;                      /* buf is full */
+- }
+- 
+- /*
+-  * return non-zero if a character is available
+-  */
+-     int
+- mch_char_avail()
+- {
+-     if (!term_console)
+-      return 0;           /* Can't tell */
+-     if (xswi(OS_Byte, 152, 0) & c_flag)
+-      return 0;
+-     return 1;
+- }
+- 
+- /* Find out how much free memory we have.
+-  * I don't know how to work this out exactly but, since we can claim
+-  * more memory from the OS, let's just report the free pool size.
+-  * Dynamic area 6 doesn't exist pre 3.6 according to StrongHelp, so
+-  * we'll use Wimp_SlotSize. If that fails (outside the desktop?)
+-  * then just return a big number and hope.
+-  */
+-     long_u
+- mch_avail_mem(special)
+-     int special;
+- {
+-     if (xswi(Wimp_SlotSize, -1, -1) & v_flag)
+-      return 0x7fffffff;
+-     return r2;
+- }
+- 
+-     void
+- mch_delay(msec, ignoreinput)
+-     long     msec;
+-     int              ignoreinput;
+- {
+-     int              start_time, time_now;
+-     int              csec = msec / 10;
+- 
+-     swi(OS_ReadMonotonicTime);
+-     start_time = r0;
+- 
+-     for (;;)
+-     {
+-      swi(OS_ReadMonotonicTime);
+-      time_now = r0;
+-      if (time_now - start_time > csec)
+-          return;
+- #ifdef FEAT_GUI
+-      /* In the GUI, allow other programs to run while waiting. */
+-      if (gui.in_use)
+-          gui_mch_wait_for_chars(start_time + csec);
+- #endif
+-     }
+- }
+- 
+- /*
+-  * If the machine has job control, use it to suspend the program,
+-  * otherwise fake it by starting a new shell.
+-  */
+-     void
+- mch_suspend()
+- {
+-     suspend_shell();
+- }
+- 
+-     void
+- mch_init()
+- {
+-     /*
+-      * Read window size first. Calls to mch_get_shellsize() will
+-      * simply return these values in future so that setting the
+-      * text window (used for scrolling) won't give strange results.
+-      */
+- 
+-     int buf[7] = {132, 135, 256, 257, 1, 2, -1};
+- 
+-     /* Command windows are no longer forced open, since if we are
+-      * in the desktop then we'll use the GUI version.
+-      * Opening a command window here messes up the GUI version startup
+-      */
+- #ifndef FEAT_GUI
+-     swi(OS_WriteI);
+- #endif
+-     swi(OS_ReadVduVariables, buf, buf);
+-     WinLeft = buf[0];
+-     WinTop  = buf[1];
+-     Columns = buf[2];
+-     Rows    = buf[3] + 1;    /* Seems to be one off (VduVars wrong?) */
+-     ScrollTop = 0;
+- 
+-     /* Are we running in a textwindow? */
+-     if (Rows == buf[5] + 1 && Columns == buf[4] + 1)
+-      windowed = 0;
+-     else
+-      windowed = 1;
+- 
+-     /* Choose a nice colour scheme. */
+-     text_fg(NORMAL_FG);
+-     text_bg(NORMAL_BG);
+- }
+- 
+- /*
+-  * Check_win checks whether we have an interactive stdout.
+-  */
+- /* ARGSUSED */
+-     int
+- mch_check_win(argc, argv)
+-     int          argc;
+-     char    **argv;
+- {
+-     return OK;
+- }
+- 
+- /*
+-  * Return TRUE if the input comes from a terminal, FALSE otherwise.
+-  */
+-     int
+- mch_input_isatty()
+- {
+-     if (xswi(OS_ChangeRedirection, -1, -1) & v_flag)
+-      return TRUE;            /* Error - TRUE is probably correct though */
+-     if (r0 == 0)
+-      return TRUE;
+-     return FALSE;
+- }
+- 
+- #ifdef FEAT_TITLE
+-     int
+- mch_can_restore_title()
+- {
+-     return FALSE;
+- }
+- 
+-     int
+- mch_can_restore_icon()
+- {
+-     return FALSE;
+- }
+- 
+- 
+- /*
+-  * Set the window title and icon.
+-  */
+-     void
+- mch_settitle(title, icon)
+-     char_u *title;
+-     char_u *icon;
+- {
+-     if (title == NULL)
+-      title = (char_u *) "<untitled>";
+- #ifdef FEAT_GUI
+-     if (gui.in_use && strcmp(title, gui.window_title))
+-     {
+-      int length;
+-      length = strlen(title);
+-      if (length >= gui.window_title_size)
+-          length = gui.window_title_size - 1;
+-      strncpy(gui.window_title, title, length);
+-      gui.window_title[length] = 0;
+-      ro_redraw_title(gui.window_handle);
+-     }
+- #endif
+-     return;
+- }
+- 
+- /*
+-  * Restore the window/icon title.
+-  * "which" is one of:
+-  *  1  only restore title
+-  *  2  only restore icon
+-  *  3  restore title and icon
+-  */
+-     void
+- mch_restore_title(which)
+-     int which;
+- {
+-     return;
+- }
+- #endif
+- 
+- /*
+-  * Insert user name in s[len].
+-  * Return OK if a name found.
+-  */
+-     int
+- mch_get_user_name(s, len)
+-     char_u  *s;
+-     int          len;
+- {
+-     /* RISC OS doesn't support user names. */
+-     *s = NUL;
+-     return FAIL;
+- }
+- 
+- /*
+-  * Insert host name in s[len].
+-  */
+- 
+-     void
+- mch_get_host_name(s, len)
+-     char_u  *s;
+-     int          len;
+- {
+-     if (xswi(OS_ReadVarVal, "Machine$Name", s, len, 0, 3) & v_flag)
+-     {
+-      /* Variable does not exist (normal operation) */
+-      vim_strncpy(s, "(unknown)", len - 1);
+-     }
+- }
+- 
+- /*
+-  * return process ID
+-  */
+-     long
+- mch_get_pid()
+- {
+-     if (xswi(Wimp_ReadSysInfo, 5) & v_flag)
+-      return 0;
+-     return r0;
+- }
+- 
+- /*
+-  * Get name of current directory into buffer 'buf' of length 'len' bytes.
+-  * Return OK for success, FAIL for failure.
+-  */
+-     int
+- mch_dirname(buf, len)
+-     char_u  *buf;
+-     int          len;
+- {
+-     if (xswi(OS_FSControl, 37, "@", buf, 0, 0, len) & v_flag)
+-      return FAIL;
+-     return OK;
+- }
+- 
+- /*
+-  * Get absolute file name into buffer 'buf' of length 'len' bytes.
+-  *
+-  * return FAIL for failure, OK for success
+-  */
+-     int
+- mch_FullName(fname, buf, len, force)
+-     char_u *fname, *buf;
+-     int len;
+-     int      force;          /* Also expand when already absolute path name.
+-                       * Not used under RISC OS.
+-                       */
+- {
+-     if (xswi(OS_FSControl, 37, fname, buf, 0, 0, len) & v_flag)
+-      return FAIL;
+-     return OK;
+- }
+- 
+- /*
+-  * Return TRUE if "fname" does not depend on the current directory.
+-  */
+-     int
+- mch_isFullName(fname)
+-     char_u   *fname;
+- {
+-     if (strstr(fname, "::") && strstr(fname,".$."))
+-      return TRUE;
+-     return FALSE;
+- }
+- 
+- /*
+-  * Get file permissions for 'name'.
+-  * Returns -1 when it doesn't exist.
+-  */
+-     long
+- mch_getperm(name)
+-     char_u *name;
+- {
+-     struct stat statb;
+- 
+-     if (stat((char *)name, &statb))
+-      return -1;
+-     return statb.st_mode;
+- }
+- 
+- /*
+-  * set file permission for 'name' to 'perm'
+-  *
+-  * return FAIL for failure, OK otherwise
+-  */
+-     int
+- mch_setperm(name, perm)
+-     char_u  *name;
+-     long    perm;
+- {
+-     return (chmod((char *)name, (mode_t)perm) == 0 ? OK : FAIL);
+- }
+- 
+- /*
+-  * Set hidden flag for "name".
+-  */
+- /* ARGSUSED */
+-     void
+- mch_hide(name)
+-     char_u   *name;
+- {
+-     /* can't hide a file */
+- }
+- 
+- /*
+-  * return TRUE if "name" is a directory
+-  * return FALSE if "name" is not a directory
+-  * return FALSE for error
+-  */
+-     int
+- mch_isdir(name)
+-     char_u *name;
+- {
+-     if (xswi(OS_File, 17, name) & v_flag)
+-      return FALSE;
+-     if (r0 == 2 || r0 == 3)
+-      return TRUE;            /* Count image files as directories. */
+-     return FALSE;
+- }
+- 
+- /*
+-  * Return 1 if "name" can be executed, 0 if not.
+-  * Return -1 if unknown. Requires which to work.
+-  */
+-     int
+- mch_can_exe(name)
+-     char_u   *name;
+- {
+-     char_u   *buf;
+-     char_u   *p;
+-     int              retval;
+- 
+-     buf = alloc((unsigned)STRLEN(name) + 7);
+-     if (buf == NULL)
+-      return -1;
+-     sprintf((char *)buf, "which %s", name);
+-     p = get_cmd_output(buf, NULL, SHELL_SILENT);
+-     vim_free(buf);
+-     if (p == NULL)
+-      return -1;
+-     /* result can be: "name: Command not found" */
+-     retval = (*p != NUL && strstr((char *)p, "not found") == NULL);
+-     vim_free(p);
+-     return retval;
+- }
+- 
+- /*
+-  * Check what "name" is:
+-  * NODE_NORMAL: file or directory (or doesn't exist)
+-  * NODE_WRITABLE: writable device, socket, fifo, etc.
+-  * NODE_OTHER: non-writable things
+-  */
+-     int
+- mch_nodetype(name)
+-     char_u   *name;
+- {
+-     /* TODO */
+-     return NODE_NORMAL;
+- }
+- 
+-     void
+- mch_early_init()
+- {
+-     /* Turn off all the horrible filename munging in UnixLib. */
+-     int __riscosify_control = __RISCOSIFY_NO_PROCESS;
+- }
+- 
+-     void
+- mch_exit(r)
+-     int r;
+- {
+-     settmode(TMODE_COOK);
+-     exiting = TRUE;
+-     out_flush();
+-     ml_close_all(TRUE);              /* remove all memfiles */
+- 
+- #ifdef FEAT_GUI
+-     if (gui.in_use)
+-      gui_exit(r);
+- #endif
+-     swi(OS_NewLine);
+-     if (old_escape_state != -1)
+-      swi(OS_Byte, 229, old_escape_state, 0);
+-     if (old_cursor_state != -1)
+-      swi(OS_Byte, 4, old_cursor_state);
+-     exit(r);
+- }
+- 
+-     void
+- mch_settmode(tmode)
+-     int              tmode;      /* TMODE_RAW or TMODE_COOK */
+- {
+-     if (tmode == TMODE_COOK)
+-     {
+-      ro_line_mode = TRUE;
+-      return;
+-     }
+- 
+-     ro_line_mode = FALSE;
+- 
+-     if (term_console)
+-     {
+-      /* Block cursor. */
+-      swi(OS_WriteN,
+-              "\027\000\012\000\000\000\000\000\000\000",
+-              10);
+- 
+-      /* Disable the standard cursor key actions. */
+-      swi(OS_Byte, 4, 1);
+-      if (old_cursor_state == -1)
+-          old_cursor_state = r1;
+-     }
+- 
+-     /* Stop Escape from quitting Vim! */
+-     swi(OS_Byte, 229, 1, 0);
+-     if (old_escape_state == -1)
+-      old_escape_state = r1;
+- }
+- 
+- /*
+-  * set mouse clicks on or off (only works for xterms)
+-  */
+-     void
+- mch_setmouse(on)
+-     int          on;
+- {
+- }
+- 
+- /*
+-  * set screen mode, always fails.
+-  */
+- /* ARGSUSED */
+-     int
+- mch_screenmode(arg)
+-     char_u   *arg;
+- {
+-     EMSG(_(e_screenmode));
+-     return FAIL;
+- }
+- 
+- /*
+-  * Try to get the current window size.
+-  * Return OK when size could be determined, FAIL otherwise.
+-  * Simply return results stored by mch_init() if we are the
+-  * machine's console. If not, we don't know how big the screen is.
+-  */
+-     int
+- mch_get_shellsize()
+- {
+-     /* if size changed: screenalloc will allocate new screen buffers */
+-     return term_console ? OK : FAIL;
+- }
+- 
+- /*
+-  * Can't change the size.
+-  * Assume the user knows what he's doing and use the new values.
+-  */
+-     void
+- mch_set_shellsize()
+- {
+-     /* Assume the user knows what he's doing and use the new values. */
+- }
+- 
+- /*
+-  * Rows and/or Columns has changed.
+-  */
+-     void
+- mch_new_shellsize()
+- {
+-     /* Nothing to do. */
+- }
+- 
+-     int
+- mch_call_shell(cmd, options)
+-     char_u   *cmd;
+-     int              options;        /* SHELL_*, see vim.h */
+- {
+-     int              retval;
+-     int              tmode = cur_tmode;
+- 
+-     if (cmd == NULL)
+-      cmd = (char_u *) "GOS";
+- 
+- #ifdef FEAT_GUI
+-     if (gui.in_use)
+-      return gui_mch_call_shell(cmd, options);
+- #endif
+-     if (options & SHELL_COOKED)
+-      settmode(TMODE_COOK);           /* set to normal mode */
+-     MSG_PUTS("\n");
+- 
+-    /* I don't even want to think about what UnixLib must
+-     * be doing to allow this to work...
+-     */
+-     retval = system(cmd);
+-     if (retval && !(options & SHELL_SILENT))
+-      EMSG(strerror(EOPSYS));         /* Doesn't seem to set errno? */
+- 
+-     swi(OS_Byte, 229, 1, 0);         /* Re-disable escape */
+-     if (tmode == TMODE_RAW)
+-      settmode(TMODE_RAW);            /* set to raw mode */
+-     return retval ? FAIL : OK;
+- }
+- 
+- /*
+-  * Check for Escape being pressed right now.
+-  * [ different if !term_console? ]
+-  */
+-     void
+- mch_breakcheck()
+- {
+-     if (xswi(OS_Byte, 121, 0xf0) & v_flag)
+-      return;
+-     if (r1 == 0xff)
+-     {
+-      got_int = TRUE;
+-      swi(OS_Byte, 15, 1);    /* Flush input buffer */
+-     }
+- }
+- 
+- /*
+-  * Recursively expand one path component into all matching files and/or
+-  * directories.
+-  * "path" has backslashes before chars that are not to be expanded.
+-  * Return the number of matches found.
+-  */
+-     int
+- mch_expandpath(gap, path, flags)
+-     garray_T *gap;   /* Grow array for results. */
+-     char_u   *path;
+-     int              flags;  /* EW_* flags */
+- {
+-     int              got;    /* Number of matches. */
+-     char_u   *pattern;
+- 
+-    /* Plan:
+-     *
+-     * 1) Get first part of path - no wildcards
+-     * 2) Get next path element (wildcarded)
+-     * 3) Get rest of path
+-     *
+-     * If (3) is nothing then only the leaf is wildcarded - add to gap
+-     * Otherwise call recursively for each path in (2), passing (3)
+-     *
+-     * This is just the header function.
+-     */
+- 
+-     /* We must be able to modifiy path, so make a copy */
+-     pattern = vim_strsave(path);
+-     if (pattern == NULL)
+-      return 0;
+-     got = expand_section(gap, (char_u *)"", pattern, flags);
+-     vim_free(pattern);
+-     return got;
+- }
+- 
+- /*
+-  * expand_section(gap, "$.Dir1.Dir2", "ABBA*.myleaf##")
+-  *
+-  * calls expand_section(gap, "$.Dir1.Dir2.ABBA_Gold", "myleaf##")
+-  *   and expand_section(gap, "$.Dir1.Dir2.ABBA_Live", "myleaf##")
+-  *
+-  * If rest is just a leaf then all matches are added to gap.
+-  *
+-  * Returns number of items added to gap.
+-  */
+-     int
+- expand_section(gap, root, rest, flags)
+-     garray_T *gap;
+-     char_u   *root;  /* Non-wildcarded path to search */
+-     char_u   *rest;  /* Wildcarded remainder of path */
+-     int              flags;  /* Add dirs/files/missing objects. */
+- {
+-     static char_u buf[MAXPATHL];     /* Temporary buffer. */
+-     char_u dir[MAXPATHL];
+-     int start_element = -1;          /* Start of wildcarded element */
+-     char_u c;
+-     int i;
+-     int got, dir_pos;
+-     int buflen;                      /* Chars used in buf[] */
+-     int colon = 0;           /* Dir ends in ':' */
+- 
+-     buflen = strlen(root);
+-     STRNCPY(buf, root, buflen);      /* Copy root into buffer. */
+- 
+-    /*
+-     * Find end of nonwildcarded section.
+-     * Count ':' as a path sep since Vim:Bug* is a valid pathname.
+-     */
+- 
+-     for (i = 0; c = rest[i]; i++)
+-     {
+-      if (c == PATHSEP)
+-      {
+-          start_element = i;
+-          colon = 0;
+-      }
+-      if (c == ':')
+-      {
+-          start_element = i + 1;
+-          colon = 1;
+-      }
+-      if (c == '#' || c == '*')
+-          break;
+-     }
+-     if (c == 0)
+-      start_element = i;
+- 
+-    /*
+-     * start_element +> terminator for non-wildcarded section.
+-     * Transfer this bit into buf.
+-     */
+-     if (buflen + start_element + 4 >= MAXPATHL)
+-        return 0;                     /* Buffer full */
+-     if (start_element >= 0)
+-     {
+-      if (*root && !colon)
+-          buf[buflen++] = PATHSEP;
+-      strncpy(buf + buflen, rest, start_element);
+-      buflen += start_element;
+-     }
+-     buf[buflen] = 0;
+- 
+-    /*
+-     * Did we reach the end of the string without hitting any wildcards?
+-     */
+-     if (c == 0)
+-     {
+-      /* Yes - add combined path to grow array and return. */
+-      addfile(gap, buf, flags);
+-      return 1;
+-     }
+- 
+-     if (start_element < 0 || !colon)
+-      start_element++;
+-     rest += start_element;
+- 
+-    /*
+-     * rest does contain wildcards if we get here.
+-     *
+-     * Now : have we reached the leaf names part yet?
+-     * If so, add all matches (files and dirs) to gap.
+-     * If not, get next path element and scan all matching directories.
+-     */
+- 
+-     start_element = -1;
+-     for (i = 0; rest[i]; i++)
+-     {
+-      if (rest[i] == '.')
+-      {
+-          start_element = i;
+-          rest[i] = 0;                /* Break string here. */
+-          break;
+-      }
+-     }
+- 
+-     /* If start_element is -1 then we are matching leaf names */
+- 
+-     r3 = 0;                  /* Number of objs read. */
+-     dir_pos = 0;             /* Position through directory. */
+-     got = 0;                 /* Files added so far. */
+-     while (dir_pos != -1)
+-     {
+-      buf[buflen] = 0;
+-      if (xswi(OS_GBPB, 9,
+-              buf,                            /* Directory to scan. */
+-              buf + buflen + (1 - colon),     /* Buffer for result. */
+-              1,                      /* Number of objects to read. */
+-              dir_pos,                /* Search position. */
+-              MAXPATHL - 2 - buflen,  /* Size of result buffer. */
+-              rest)                   /* Wildcarded leafname. */
+-                      & v_flag)
+-      {
+-          EMSG(r0 + 4);
+-          r4 = -1;
+-      }
+-      dir_pos = r4;           /* r4 corrupted by addfile() */
+-      if (r3 > 0)
+-      {
+-          char_u *path = buf;
+-          if (buflen == 0)
+-              path++;                 /* Don't do '.File' */
+-          else if (!colon)
+-              buf[buflen] = '.';              /* Join path and leaf */
+- 
+-         /* Path -> full path of object found */
+-          if (start_element == -1)
+-          {
+-              addfile(gap, path, flags);
+-              got++;
+-          }
+-          else
+-          {
+-             /* Scan into subdirectories and images; ignore files */
+-              swi(OS_File, 17, path);
+-              if (r0 == 2 || r0 == 3)
+-                  got += expand_section(gap,
+-                                              path,
+-                                              rest + start_element + 1,
+-                                              flags);
+-          }
+-      }
+-     }
+- 
+-     /* Restore the dot if we removed it. */
+-     if (start_element >= 0)
+-      rest[start_element] = '.';
+-     return got;
+- }
+- 
+- /*
+-  * mch_expand_wildcards() - this code does wild-card pattern matching using
+-  * the shell. It isn't used under RISC OS.
+-  *
+-  * return OK for success, FAIL for error (you may lose some memory) and put
+-  * an error message in *file.
+-  *
+-  * num_pat is number of input patterns
+-  * pat is array of pointers to input patterns
+-  * num_file is pointer to number of matched file names
+-  * file is pointer to array of pointers to matched file names
+-  */
+-     int
+- mch_expand_wildcards(num_pat, pat, num_file, file, flags)
+-     int                  num_pat;
+-     char_u     **pat;
+-     int                 *num_file;
+-     char_u    ***file;
+-     int                  flags;              /* EW_* flags */
+- {
+-     /* This doesn't get called unless SPECIAL_WILDCHAR is defined. */
+-     return FAIL;
+- }
+- 
+- /*
+-  * Return TRUE if "p" contains wildcards which can be expanded by
+-  * mch_expandpath().
+-  */
+-     int
+- mch_has_exp_wildcard(p)
+-     char_u   *p;
+- {
+-     if (vim_strpbrk((char_u *)"*#", p))
+-      return TRUE;
+-     return FALSE;
+- }
+- 
+- /* Return TRUE if "p" contains wildcards. */
+-     int
+- mch_has_wildcard(p)
+-     char_u   *p;
+- {
+-     if (vim_strpbrk((char_u *)"*#`", p))
+-      return TRUE;
+-     return FALSE;
+- }
+- 
+-     int                      /* see Unix unlink(2) */
+- mch_remove(file)
+-     char_u *file;    /* Name of file to delete. */
+- {
+-     if (xswi(OS_FSControl, 27, file, 0, 0) & v_flag)
+-      return EXIT_FAILURE;
+-     return EXIT_SUCCESS;
+- }
+- 
+- /* Try to make existing scripts work without modification.
+-  * Return a pointer to the new string (freed by caller), or NULL
+-  *
+-  * Two main cases:
+-  * - Absolute : $VIM/syntax/help.vim
+-  * - Relative : Adfs::4.$.!Vim.Resources.Syntax/help.vim
+-  */
+-     char_u *
+- mch_munge_fname(fname)
+-     char_u *fname;
+- {
+-     char_u c;
+-     int len;
+-     char_u *retval;
+- 
+-     retval = fname = vim_strsave(fname);
+-     if (fname == NULL)
+-      return NULL;
+- 
+-     if (strncmp(fname, "$VIM/", 5) == 0)
+-     {
+-      strncpy(fname, "Vim:", 4);
+-      for (fname += 5; c = *fname; fname++)
+-      {
+-          if (c == '.')
+-              break;
+-          if (c == '/')
+-              fname[-1] = '.';
+-          else
+-              fname[-1] = c;
+-      }
+-      fname[-1] = '\0';
+-     }
+-     else
+-     {
+-      /* Check to see if the file exists without modification. */
+-      if (xswi(OS_File, 17, fname) & v_flag)
+-          r0 == 0;            /* Invalid filename? */
+-      if (r0)
+-          return retval;
+- 
+-      len = strlen(fname);
+-      if (strcmp(fname + len - 4, ".vim") == 0)
+-      {
+-          fname[len - 4] = '\0';
+-          for (; c = *fname; fname++)
+-          {
+-              if (c == '/')
+-                  *fname = '.';
+-          }
+-      }
+-     }
+-     return retval;
+- }
+- 
+- /* QuickFix reads munged names from the error file.
+-  * Correct them.
+-  */
+-     int
+- ro_buflist_add(old_name)
+-     char_u  *old_name;       /* Name of file found by quickfix */
+- {
+-     char_u  *fname;
+-     char_u  *leaf;   /* Pointer to start of leaf in old_name */
+-     char_u  *ptr;
+-     char_u  c;
+-     int          retval;
+- 
+-     if (old_name == NULL)
+-      return buflist_add(NULL, 0);
+- 
+-     /* Copy the name so we can mess around with it. */
+-     fname = vim_strsave(old_name);
+-     if (fname == NULL)
+-      /* Out of memory - can't modify name */
+-      return buflist_add(old_name, 0);
+- 
+-     /* Change `dir/main.c' into `dir.c.main' */
+-     leaf = fname;
+-     for (ptr = fname; c = *ptr; ptr++)
+-     {
+-      if (c == '/')
+-      {
+-          leaf = ptr + 1;
+-          *ptr = '.';
+-      }
+-      else if (c == '.')
+-          break;
+-     }
+-     if (c == '.')
+-     {
+-      /* Change `main.c' into `c.main'
+-       *        |    |
+-       *      leaf  ptr
+-       */
+-      ptr += old_name - fname;
+-      *ptr = '\0';
+-      sprintf(leaf,
+-              "%s.%s",
+-              ptr + 1,
+-              leaf - fname + old_name);
+-     }
+- 
+-     retval = buflist_add(fname, 0);
+-     free(fname);
+-     return retval;
+- }
+- 
+- /* Change the current directory.
+-  * Strip trailing dots to make it easier to use with filename completion.
+-  * Return 0 for success, -1 for failure.
+-  */
+-     int
+- mch_chdir(dir)
+-     char_u  *dir;
+- {
+-     int          length;
+-     int          retval;
+-     char_u  *new_dir;
+- 
+-     if (p_verbose >= 5)
+-     {
+-      verbose_enter();
+-      smsg((char_u *)"chdir(%s)", dir);
+-      verbose_leave();
+-     }
+-     length = strlen(dir);
+-     if (dir[length - 1] != '.')
+-      return chdir(dir);          /* No trailing dots - nothing to do. */
+-     new_dir = vim_strsave(dir);
+-     if (new_dir == NULL)
+-      return chdir(dir);          /* Can't allocate memory. */
+- 
+-     while (new_dir[--length] == '.')
+-      new_dir[length] = '\0';
+- 
+-     retval = chdir(new_dir);
+-     vim_free(new_dir);
+-     return retval;
+- }
+- 
+- /* Examine the named file, and set the 'osfiletype' option
+-  * (in curbuf) to the file's type.
+-  */
+-     void
+- mch_read_filetype(file)
+-     char_u  *file;
+- {
+-     int          type;
+-     char_u  type_string[9];
+-     int          i;
+- 
+-     if (xswi(OS_File, 23, file) & v_flag)
+-      type = 0xfff;           /* Default to Text */
+-     else
+-      type = r6;
+- 
+-     /* Type is the numerical value - see if we have a textual equivalent */
+-     swi(OS_FSControl, 18, 0, type);
+-     ((int *) type_string)[0] = r2;
+-     ((int *) type_string)[1] = r3;
+-     type_string[8] = 0;
+-     for (i = 0; type_string[i] > ' '; i++)
+-      ;
+-     type_string[i] = 0;
+- 
+-     set_string_option_direct("osfiletype", -1, type_string, OPT_FREE, 0);
+-     return;
+- }
+- 
+-     void
+- mch_set_filetype(file, type)
+-     char_u  *file;
+-     char_u  *type;
+- {
+-     if (xswi(OS_FSControl, 31, type) & v_flag)
+-     {
+-      EMSG(_("E366: Invalid 'osfiletype' option - using Text"));
+-      r2 = 0xfff;
+-     }
+- 
+-     swi(OS_File, 18, file, r2);
+- }
+- 
+- /* Return TRUE if the file's type matches 'type'
+-  * RISC OS types always start with '&'
+-  */
+-     int
+- mch_check_filetype(fname, type)
+-     char_u  *fname;
+-     char_u  *type;
+- {
+-     int          value;
+-     char    *end;
+- 
+-     if (*type != '&')
+-      return FALSE;
+- 
+-     value = strtol(type + 1, &end, 16);
+-     if (*end)
+-      return FALSE;           /* Invalid type (report error?) */
+- 
+-     if (xswi(OS_File, 23, fname) & v_flag)
+-      return FALSE;           /* Invalid filename? */
+- 
+-     return (r0 && r6 == value);
+- }
+--- 0 ----
+*** ../vim-7.3.186/runtime/doc/os_risc.txt     2010-08-15 21:57:16.000000000 +0200
+--- runtime/doc/os_risc.txt    2011-05-10 16:19:25.000000000 +0200
+***************
+*** 1,322 ****
+! *os_risc.txt*   For Vim version 7.3.  Last change: 2010 Aug 07
+  
+  
+                 VIM REFERENCE MANUAL    by Thomas Leonard
+  
+  
+                                               *riscos* *RISCOS* *RISC-OS*
+! This file contains the particularities for the RISC OS version of Vim.
+  
+- The RISC OS port is a completely new port and is not based on the old "archi"
+- port.
+  
+- 1.  File locations           |riscos-locations|
+- 2.  Filename munging         |riscos-munging|
+- 3.  Command-line use         |riscos-commandline|
+- 4.  Desktop (GUI) use                |riscos-gui|
+- 5.  Remote use (telnet)              |riscos-remote|
+- 6.  Temporary files          |riscos-temp-files|
+- 7.  Interrupting             |riscos-interrupt|
+- 8.  Memory usage             |riscos-memory|
+- 9.  Filetypes                        |riscos-filetypes|
+- 10. The shell                        |riscos-shell|
+- 11. Porting new releases     |riscos-porting|
+- 
+- If I've missed anything, email me and I'll try to fix it.  In fact, even if I
+- haven't missed anything then email me anyway to give me some confidence that it
+- actually works!
+- 
+- Thomas Leonard <tal197@ecs.soton.ac.uk>
+- 
+-      [these URLs no longer work...]
+-  Port homepage:      http://www.ecs.soton.ac.uk/~tal197/
+-      or try: http://www.soton.ac.uk/~tal197/
+- 
+- ==============================================================================
+-                                                      *riscos-locations*
+- 1. File locations
+- 
+- The Vim executable and shared resource files are all stored inside the !Vim
+- application directory.
+- 
+- When !Vim is first seen by the filer, it aliases the *vi and *ex commands to
+- run the command-line versions of Vim (see |riscos-commandline|).
+- 
+- !Vim.Resources and !Vim.Resources2 contain the files from the standard Vim
+- distribution, but modified slightly to work within the limits of ADFS, plus
+- some extra files such as the window templates.
+- 
+- User choices are read from "Choices:*" and are saved to "<Choices$Write>.*".
+- If you have the new !Boot structure then these should be set up already.  If
+- not, set Choices$Path to a list of directories to search when looking for
+- user configuration files.  Set Choices$Write to the directory you want files
+- to be saved into (so your search patterns and marks can be remembered between
+- sessions).
+- 
+- ==============================================================================
+-                                                      *riscos-munging*
+- 2. Filename munging
+- 
+- All pathname munging is disabled by default, so Vim should behave like a
+- normal RISC OS application now.  So, if you want to edit "doc/html" then you
+- actually type "*vi doc/html".
+- 
+- The only times munging is done is when:
+- 
+- - Searching included files from C programs, since these are always munged.
+-   See |[I|.
+-   Note: make sure you are in the right directory when you use this
+-      command (i.e. the one with subdirectories "c" and "h").
+- 
+- - Sourcing files using |:so|.
+-   Paths starting "$VIM/" are munged like this:
+- 
+-   $VIM/syntax/help.vim  ->  Vim:syntax.help
+- 
+-   Also, files ending in ".vim" have their extensions removed, and slashes
+-   replaced with dots.
+- 
+- Some tag files and script files may have to be edited to work under this port.
+- 
+- ==============================================================================
+-                                                      *riscos-commandline*
+- 3. Command-line use
+- 
+- To use Vim from the command-line use the "*vi" command (or "*ex" for
+- |Ex-mode|).
+- 
+- Type "*vi -h" for a list of options.
+- 
+- Running the command-line version of Vim in a large high-color mode may cause
+- the scrolling to be very slow.  Either change to a mode with fewer colors or
+- use the GUI version.
+- 
+- Also, holding down Ctrl will slow it down even more, and Ctrl-Shift will
+- freeze it, as usual for text programs.
+- 
+- ==============================================================================
+-                                                      *riscos-gui*
+- 4. Desktop use
+- 
+- Limitations:
+- 
+- - Left scrollbars don't work properly (right and bottom are fine).
+- - Doesn't increase scroll speed if it gets behind.
+- 
+- You can resize the window by dragging the lower-right corner, even though
+- there is no icon shown there.
+- 
+- You can use the --rows and --columns arguments to specify the initial size of
+- the Vim window, like this: >
+- 
+-   *Vi -g --rows 20 --columns 80
+- 
+- The global clipboard is supported, so you can select some text and then
+- paste it directly into another application (provided it supports the
+- clipboard too).
+- 
+- Clicking Menu now opens a menu like a normal RISC OS program.  Hold down Shift
+- when clicking Menu to paste (from the global clipboard).
+- 
+- Dragging a file to the window replaces the CURRENT buffer (the one with the
+- cursor, NOT the one you dragged to) with the file.
+- 
+- Dragging with Ctrl held down causes a new Vim window to be opened for the
+- file (see |:sp|).
+- 
+- Dragging a file in with Shift held down in insert mode inserts the pathname of
+- the file.
+- 
+- :browse :w opens a standard RISC OS save box.
+- :browse :e opens a directory viewer.
+- 
+- For fonts, you have the choice of the system font, an outline font, the system
+- font via ZapRedraw and any of the Zap fonts via ZapRedraw: >
+- 
+-   :set guifont=
+- <                    To use the system font via the VDU drivers.  Supports
+-                      bold and underline.
+- >
+-   :set guifont=Corpus.Medium
+- <                    Use the named outline font.  You can use any font, but
+-                      only monospaced ones like Corpus look right.
+- >
+-   :set guifont=Corpus.Medium:w8:h12:b:i
+- <                    As before, but with size of 8 point by 12 point, and
+-                      in bold italic.
+-                      If only one of width and height is given then that
+-                      value is used for both.  If neither is given then 10
+-                      point is used.
+- 
+- Thanks to John Kortink, Vim can use the ZapRedraw module.  Start the font name
+- with "!" (or "!!" for double height), like this: >
+- 
+-   :set guifont=!!
+- <                    Use the system font, but via ZapRedraw.  This gives a
+-                      faster redraw on StrongARM processors, but you can't
+-                      get bold or italic text.  Double height.
+- >
+-   :set guifont=!script
+- <                    Uses the named Zap font (a directory in VimFont$Path).
+-                      The redraw is the same speed as for "!!", but you get
+-                      a nicer looking font.
+-                      Only the "man+" and "script" fonts are supplied
+-                      currently, but you can use any of the Zap fonts if
+-                      they are in VimFont$Path.
+-                      Vim will try to load font files "0", "B", "I" and "IB"
+-                      from the named directory.  Only "0" (normal style) MUST
+-                      be present.  Link files are not currently supported.
+- 
+- Note that when using ZapRedraw the edit bar is drawn in front of the character
+- you are on rather than behind it.  Also redraw is incorrect for screen modes
+- with eigen values of 0.  If the font includes control characters then you can
+- get Vim to display them by changing the 'isprint' option.
+- 
+- If you find the scrolling is too slow on your machine, try experimenting
+- with the 'scrolljump' and 'ttyscroll' options.
+- 
+- In particular, StrongARM users may find that: >
+- 
+-   :set ttyscroll=0
+- 
+- makes scrolling faster in high-color modes.
+- 
+- =============================================================================
+-                                                      *riscos-remote*
+- 5. Remote use (telnet)
+- 
+- I have included a built-in termcap entry, but you can edit the termcap file to
+- allow other codes to be used if you want to use Vim from a remote terminal.
+- 
+- Although I do not have an internet connection to my Acorn, I have managed to
+- run Vim in a FreeTerm window using the loopback connection.
+- 
+- It seems to work pretty well now, using "*vi -T ansi".
+- 
+- ==============================================================================
+-                                                      *riscos-temp-files*
+- 6. Temporary files
+- 
+- If Vim crashes then the swap and backup files (if any) will be in the
+- directories set with the 'directory' and 'bdir' options.  By default the swap
+- files are in <Wimp$ScrapDir> (i.e. inside !Scrap) and backups are in the
+- directory you were saving to.  Vim will allow you to try and recover the file
+- when you next try to edit it.
+- 
+- To see a list of swap files, press <F12> and type "*vi -r".
+- 
+- Vim no longer brings up ATTENTION warnings if you try to edit two files with
+- the same name in different directories.
+- 
+- However, it also no longer warns if you try to edit the same file twice (with
+- two copies of Vim), though you will still be warned when you save that the
+- datestamp has changed.
+- 
+- ==============================================================================
+-                                                      *riscos-interrupt*
+- 7. Interrupting
+- 
+- To break out of a looping macro, or similar, hold down Escape in the
+- command-line version, or press CTRL-C in the GUI version.
+- 
+- ==============================================================================
+-                                                      *riscos-memory*
+- 8. Memory usage
+- 
+- Vim will use dynamic areas on RISC OS 3.5 or later.  If you can use them on
+- older machines then edit the !RunTxt and GVim files.  I don't know what UnixLib
+- does by default on these machines so I'm playing safe.
+- 
+- It doesn't work at all well without dynamic areas, since it can't change its
+- memory allocation once running.  Hence you should edit "!Vim.GVim" and
+- "!Vim.!RunTxt" to choose the best size for you.  You probably need at least
+- about 1400K.
+- 
+- ==============================================================================
+-                                                      *riscos-filetypes*
+- 9. Filetypes
+- 
+- You can now specify that autocommands are only executed for files of certain
+- types.  The filetype is given in the form &xxx, when xxx is the filetype.
+- 
+- Filetypes must be specified by number (e.g. &fff for Text).
+- 
+- The system has changed from version 5.3.  The new sequence of events is:
+- 
+- - A file is loaded. |'osfiletype'| is set to the RISC OS filetype.
+- - Based on the filetype and pathname, Vim will try to set |'filetype'| to the
+-   Vim-type of the file.
+- - Setting this option may load syntax files and perform other actions.
+- - Saving the file will give it a filetype of |'osfiletype'|.
+- 
+- Some examples may make this clearer:
+- 
+-   Kind of file loaded        osfiletype      filetype ~
+-   C code "c.hellow"  Text (&fff)     C
+-   LaTeX document     LaTeX (&2a8)    TeX
+-   Draw document              DrawFile (&aff) (not changed)
+- 
+- ==============================================================================
+-                                                      *riscos-shell*
+- 10. The shell
+- 
+- - Bangs (!s) are only replaced if they are followed by a space or end-of-line,
+-   since many pathnames contain them.
+- 
+- - You can prefix the command with "~", which stops any output from being
+-   displayed.  This also means that you don't have to press <Enter> afterwards,
+-   and stops the screen from being redrawn. {only in the GUI version}
+- 
+- ==============================================================================
+-                                                      *riscos-porting*
+- 11. Porting new releases to RISC OS
+- 
+- Downloading everything you need:
+- 
+- - Get the latest source distribution (see www.vim.org)
+- - Get the runtime environment files (e.g. these help files)
+- - Get the RISC OS binary distribution (if possible)
+- 
+- 
+- Unarchiving:
+- 
+- - Create a raFS disk and put the archives on it
+- - Un-gzip them
+- - Un-tar them   (*tar xELf 50 archive/tar)
+- 
+- 
+- Recompiling the sources:
+- 
+- - Create c, s, and h directories.
+- - Put all the header files in "h".        \
+- - Put all the C files in "c".                     | And lose the extensions
+- - Put the assembler file ("swis/s") in "s".  /
+- - Rename all the files in "proto" to "h", like this:
+-     raFS::VimSrc.source.proto.file/pro
+-        becomes
+-     raFS::VimSrc.source.h.file_pro
+- - In the files "h.proto" and "c.termlib", search and replace
+-     .pro"
+-        with
+-     _pro.h"
+- - Create a simple Makefile if desired and do "*make -k".
+-   Use "CC = gcc -DRISCOS -DUSE_GUI -O2 -x c" in the Makefile.
+- - Save the binary as !Vim.Vim in the binary distribution.
+- 
+- 
+- Updating the run-time environment:
+- 
+- - Replace old or missing files inside !Vim.Resources with the
+-   new files.
+- - Remove files in "doc" not ending in "/txt", except for "tags".
+- - Lose the extensions from the files in "doc".
+- - Edit the "doc.tags" file.  Remove extensions from the second column: >
+-      :%s/^\(.[^\t]*\t.*\)\.txt\t/\1\t/
+- - Remove extensions from the syntax files.  Split them into two directories
+-   to avoid the 77 entry limit on old ADFS filesystems.
+- - Edit "Vim:FileType" to match "*.c.*" as well as "*/c" and so on.
+-   Add filetype checking too.
+- - Edit "Vim:Menu" and remove all the keys from the menus: >
+-      :%s/<Tab>[^ \t]*//
+- <
+   vim:tw=78:ts=8:ft=help:norl:
+--- 1,12 ----
+! *os_risc.txt*   For Vim version 7.3.  Last change: 2011 May 10
+  
+  
+                 VIM REFERENCE MANUAL    by Thomas Leonard
+  
+  
+                                               *riscos* *RISCOS* *RISC-OS*
+! The RISC OS support has been removed from Vim with patch 7.3.187.
+! If you would like to use Vim on RISC OS get the files from before that patch.
+  
+  
+   vim:tw=78:ts=8:ft=help:norl:
+*** ../vim-7.3.186/src/version.c       2011-05-10 16:12:40.000000000 +0200
+--- src/version.c      2011-05-10 16:37:20.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     187,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+81. At social functions you introduce your husband as "my domain server."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.188.patch0 b/vim/patches/vim-7.3.188.patch0
new file mode 100644 (file)
index 0000000..f584543
--- /dev/null
@@ -0,0 +1,184 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.188
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.188
+Problem:    More RISC OS files to remove.
+Solution:   Remove them.  Update the file list.
+Files:     src/proto/gui_riscos.pro, src/proto/os_riscos.pro, Filelist
+
+
+*** ../vim-7.3.187/src/proto/gui_riscos.pro    2010-08-15 21:57:28.000000000 +0200
+--- src/proto/gui_riscos.pro   1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,66 ****
+- /* Prototypes for gui_riscos.c
+-  * Based on gui_x11_pro.h (10 March 2002 version)
+-  */
+- void gui_mch_prepare __ARGS((int *argc, char **argv));
+- int gui_mch_init_check __ARGS((void));
+- int gui_mch_init __ARGS((void));
+- void gui_mch_uninit __ARGS((void));
+- void gui_mch_new_colors __ARGS((void));
+- int gui_mch_open __ARGS((void));
+- void gui_init_tooltip_font __ARGS((void));
+- void gui_init_menu_font __ARGS((void));void gui_mch_exit __ARGS((int rc));
+- int gui_mch_get_winpos __ARGS((int *x, int *y));
+- void gui_mch_set_winpos __ARGS((int x, int y));
+- void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
+- void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
+- int gui_mch_init_font __ARGS((char_u *font_name, int do_fontset));
+- GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
+- int gui_mch_adjust_charheight __ARGS((void));
+- void gui_mch_set_font __ARGS((GuiFont font));
+- void gui_mch_set_fontset __ARGS((GuiFontset fontset));
+- void gui_mch_free_font __ARGS((GuiFont font));
+- void gui_mch_free_fontset __ARGS((GuiFontset fontset));
+- GuiFontset gui_mch_get_fontset __ARGS((char_u *name, int giveErrorIfMissing, int fixed_width));
+- guicolor_T gui_mch_get_color __ARGS((char_u *reqname));
+- void gui_mch_set_fg_color __ARGS((guicolor_T color));
+- void gui_mch_set_bg_color __ARGS((guicolor_T color));
+- void gui_mch_draw_string __ARGS((int row, int col, char_u *s, int len, int flags));
+- int gui_mch_haskey __ARGS((char_u *name));
+- void gui_mch_beep __ARGS((void));
+- void gui_mch_flash __ARGS((int msec));
+- void gui_mch_invert_rectangle __ARGS((int r, int c, int nr, int nc));
+- void gui_mch_iconify __ARGS((void));
+- void gui_mch_set_foreground __ARGS((void));
+- void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
+- void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
+- void gui_mch_update __ARGS((void));
+- int gui_mch_wait_for_chars __ARGS((long wtime));
+- void gui_mch_flush __ARGS((void));
+- void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
+- void gui_mch_clear_all __ARGS((void));
+- void gui_mch_delete_lines __ARGS((int row, int num_lines));
+- void gui_mch_insert_lines __ARGS((int row, int num_lines));
+- void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
+- int clip_mch_own_selection __ARGS((VimClipboard *cbd));
+- void clip_mch_request_selection __ARGS((VimClipboard *cbd));
+- void clip_mch_set_selection __ARGS((VimClipboard *cbd));
+- void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+- void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
+- void gui_mch_draw_menubar __ARGS((void));
+- void gui_mch_set_blinking __ARGS((long waittime, long on, long off));
+- void gui_mch_stop_blink __ARGS((void));
+- void gui_mch_start_blink __ARGS((void));
+- void process_event __ARGS((int event, int *block));
+- void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+- long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
+- void gui_mch_getmouse __ARGS((int *x, int *y));
+- void gui_mch_setmouse __ARGS((int x, int y));
+- void gui_mch_drawsign __ARGS((int row, int col, int typenr));
+- void gui_mch_destroy_sign __ARGS((XImage *sign));
+- void gui_mch_mousehide __ARGS((int hide));
+- void mch_set_mouse_shape __ARGS((int shape));
+- void gui_mch_menu_set_tip __ARGS((vimmenu_T *menu));
+- 
+- void ro_redraw_title __ARGS((int window));
+- int ro_ok_to_quit __ARGS((void));
+- /* vim: set ft=c : */
+--- 0 ----
+*** ../vim-7.3.187/src/proto/os_riscos.pro     2010-08-15 21:57:28.000000000 +0200
+--- src/proto/os_riscos.pro    1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,49 ****
+- /* os_riscos.c */
+- void mch_write __ARGS((char_u *s, int len));
+- int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
+- int mch_char_avail __ARGS((void));
+- long_u mch_avail_mem __ARGS((int special));
+- void mch_delay __ARGS((long msec, int ignoreinput));
+- void mch_suspend __ARGS((void));
+- void mch_init __ARGS((void));
+- int mch_check_win __ARGS((int argc, char **argv));
+- int mch_input_isatty __ARGS((void));
+- int mch_can_restore_title __ARGS((void));
+- int mch_can_restore_icon __ARGS((void));
+- void mch_settitle __ARGS((char_u *title, char_u *icon));
+- void mch_restore_title __ARGS((int which));
+- int mch_get_user_name __ARGS((char_u *s, int len));
+- void mch_get_host_name __ARGS((char_u *s, int len));
+- long mch_get_pid __ARGS((void));
+- int mch_dirname __ARGS((char_u *buf, int len));
+- int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
+- int mch_isFullName __ARGS((char_u *fname));
+- long mch_getperm __ARGS((char_u *name));
+- int mch_setperm __ARGS((char_u *name, long perm));
+- void mch_hide __ARGS((char_u *name));
+- int mch_isdir __ARGS((char_u *name));
+- int mch_can_exe __ARGS((char_u *name));
+- int mch_nodetype __ARGS((char_u *name));
+- void mch_early_init __ARGS((void));
+- void mch_exit __ARGS((int r));
+- void mch_settmode __ARGS((int tmode));
+- void mch_setmouse __ARGS((int on));
+- int mch_screenmode __ARGS((char_u *arg));
+- int mch_get_shellsize __ARGS((void));
+- void mch_set_shellsize __ARGS((void));
+- void mch_new_shellsize __ARGS((void));
+- int mch_call_shell __ARGS((char_u *cmd, int options));
+- void mch_breakcheck __ARGS((void));
+- int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
+- int expand_section __ARGS((garray_T *gap, char_u *root, char_u *rest, int flags));
+- int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
+- int mch_has_exp_wildcard __ARGS((char_u *p));
+- int mch_has_wildcard __ARGS((char_u *p));
+- int mch_remove __ARGS((char_u *file));
+- char_u *mch_munge_fname __ARGS((char_u *fname));
+- int ro_buflist_add __ARGS((char_u *old_name));
+- int mch_chdir __ARGS((char_u *dir));
+- void mch_read_filetype __ARGS((char_u *file));
+- void mch_set_filetype __ARGS((char_u *file, char_u *type));
+- int mch_check_filetype __ARGS((char_u *fname, char_u *type));
+- /* vim: set ft=c : */
+--- 0 ----
+*** ../vim-7.3.187/Filelist    2011-03-22 18:10:34.000000000 +0100
+--- Filelist   2011-05-10 17:19:21.000000000 +0200
+***************
+*** 428,435 ****
+               README_os390.txt \
+               src/Make_mint.mak \
+               src/Make_ro.mak \
+-              src/gui_riscos.c \
+-              src/gui_riscos.h \
+               src/if_sniff.c \
+               src/infplist.xml \
+               src/link.390 \
+--- 428,433 ----
+***************
+*** 437,446 ****
+               src/os_beos.h \
+               src/os_beos.rsrc \
+               src/os_mint.h \
+-              src/os_riscos.c \
+-              src/os_riscos.h \
+-              src/proto/gui_riscos.pro \
+-              src/proto/os_riscos.pro \
+               src/os_vms_fix.com \
+               src/toolbar.phi \
+  
+--- 435,440 ----
+*** ../vim-7.3.187/src/version.c       2011-05-10 16:41:13.000000000 +0200
+--- src/version.c      2011-05-10 17:20:50.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     188,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+83. Batteries in the TV remote now last for months.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.189.patch0 b/vim/patches/vim-7.3.189.patch0
new file mode 100644 (file)
index 0000000..f7a9667
--- /dev/null
@@ -0,0 +1,49 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.189
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.189 (after 7.3.186)
+Problem:    Can't build without +clipboard feature. (Christian Ebert)
+Solution:   Add the missing #ifdef.
+Files:     src/normal.c
+
+
+*** ../vim-7.3.188/src/normal.c        2011-05-10 16:12:40.000000000 +0200
+--- src/normal.c       2011-05-10 17:25:26.000000000 +0200
+***************
+*** 1204,1212 ****
+--- 1204,1215 ----
+  #ifdef FEAT_EVAL
+       {
+           int regname = 0;
++ 
+           /* Adjust the register according to 'clipboard', so that when
+            * "unnamed" is present it becomes '*' or '+' instead of '"'. */
++ # ifdef FEAT_CLIPBOARD
+           adjust_clip_reg(&regname);
++ # endif
+           set_reg_var(regname);
+       }
+  #endif
+*** ../vim-7.3.188/src/version.c       2011-05-10 17:21:34.000000000 +0200
+--- src/version.c      2011-05-10 17:29:21.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     189,
+  /**/
+
+-- 
+If your nose runs, and your feet smell, you might be upside down.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.190.patch0 b/vim/patches/vim-7.3.190.patch0
new file mode 100644 (file)
index 0000000..4adef8a
--- /dev/null
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.190
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.190
+Problem:    When there is a "containedin" syntax argument highlighting may be
+           wrong. (Radek)
+Solution:   Reset current_next_list. (Ben Schmidt)
+Files:     src/syntax.c
+
+
+*** ../vim-7.3.189/src/syntax.c        2011-04-11 16:56:29.000000000 +0200
+--- src/syntax.c       2011-05-19 12:02:43.000000000 +0200
+***************
+*** 2566,2571 ****
+--- 2566,2574 ----
+  #endif
+               update_si_attr(current_state.ga_len - 1);
+  
++              /* nextgroup= should not match in the end pattern */
++              current_next_list = NULL;
++ 
+               /* what matches next may be different now, clear it */
+               next_match_idx = 0;
+               next_match_col = MAXCOL;
+*** ../vim-7.3.189/src/version.c       2011-05-10 17:29:28.000000000 +0200
+--- src/version.c      2011-05-19 12:13:28.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     190,
+  /**/
+
+-- 
+From "know your smileys":
+ :'-D  Laughing so much that they're crying
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.191.patch0 b/vim/patches/vim-7.3.191.patch0
new file mode 100644 (file)
index 0000000..14b63ce
--- /dev/null
@@ -0,0 +1,526 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.191
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.191
+Problem:    Still some RISC OS stuff to remove.
+Solution:   Remove files and lines. (Hong Xu)
+           Remove the 'osfiletype' option code.
+Files:     README_extra.txt, src/Make_ro.mak, src/INSTALL, src/Makefile,
+           src/buffer.c, src/eval.c, src/feature.h, src/option.c,
+           src/option.h, src/structs.h, src/version.c, src/pty.c, Filelist
+
+
+*** ../vim-7.3.190/README_extra.txt    2010-08-15 21:57:32.000000000 +0200
+--- README_extra.txt   2011-05-19 12:35:16.000000000 +0200
+***************
+*** 13,21 ****
+  
+  src/os_amiga.*               Files for the Amiga port.
+  
+- src/gui_riscos.*
+- src/os_riscos.*              Files for the RISC OS port.
+- 
+  src/gui_beos.*
+  src/os_beos.*                Files for the BeOS port.
+  
+--- 13,18 ----
+*** ../vim-7.3.190/src/Make_ro.mak     2010-08-15 21:57:27.000000000 +0200
+--- src/Make_ro.mak    1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,135 ****
+- #
+- # Makefile for Vim on RISC OS - Andy Wingate
+- #
+- 
+- GCC         = gcc -mthrowback
+- CFLAGS     = -DRISCOS -DFEAT_GUI
+- CC         = $(GCC) $(CFLAGS) -O2
+- # -DUP_BC_PC_EXTERN for term.c needed as BC defined in termlib.c and term.c
+- 
+- TERMFLAG   = -DUP_BC_PC_EXTERN
+- 
+- ASMFLAGS   = -throwback -objasm -gcc
+- 
+- OBJS =  o.buffer o.charset o.diff o.digraph o.edit o.eval o.ex_cmds o.ex_cmds2  \
+-      o.ex_docmd o.ex_eval o.ex_getln o.fileio o.fold o.getchar \
+-      o.hardcopy o.hashtab o.main o.mark o.mbyte  \
+-      o.memfile o.memline o.menu o.message o.misc1 o.misc2 o.move     \
+-      o.normal o.ops o.option o.popupmnu o.quickfix o.regexp o.screen \
+-      o.search   \
+-      o.spell o.syntax o.tag o.term o.termlib o.ui o.undo o.version   \
+-      o.window o.os_riscos o.swis o.gui o.gui_riscos
+- 
+- Vim: $(OBJS)
+-      $(GCC) -o Vim $(OBJS)
+- 
+- install: Vim
+-      squeeze -v Vim @.!Vim.Vim
+- 
+- clean:       
+-      create o.!fake! 0
+-      wipe o.* ~cf
+-      remove Vim
+- 
+- o.swis: s.swis
+-      as $(ASMFLAGS) -o o.swis s.swis
+- 
+- # Rules for object files
+- 
+- o.%: c.%
+-      $(CC) -c $< -o $@
+- 
+- o.buffer:    c.buffer
+- 
+- o.charset:   c.charset
+- 
+- o.digraph:   c.digraph
+- 
+- o.diff:              c.diff
+- 
+- o.edit:              c.edit
+- 
+- o.eval:              c.eval
+- 
+- o.ex_cmds:   c.ex_cmds
+- 
+- o.ex_cmds2:  c.ex_cmds2
+- 
+- o.ex_docmd:  c.ex_docmd
+- 
+- o.ex_eval:   c.ex_eval
+- 
+- o.ex_getln:  c.ex_getln
+- 
+- o.fileio:    c.fileio
+- 
+- o.fold:              c.fold
+- 
+- o.getchar:   c.getchar
+- 
+- o.hardcopy:  c.hardcopy
+- 
+- o.hashtab:   c.hashtab
+- 
+- o.gui:               c.gui
+- 
+- o.gui_riscos:        c.gui_riscos
+- 
+- o.main:              c.main
+- 
+- o.mark:              c.mark
+- 
+- o.mbyte:     c.mbyte
+- 
+- o.memfile:   c.memfile
+- 
+- o.memline:   c.memline
+- 
+- o.menu:              c.menu
+- 
+- o.message:   c.message
+- 
+- o.misc1:     c.misc1
+- 
+- o.misc2:     c.misc2
+- 
+- o.move:              c.move
+- 
+- o.normal:    c.normal
+- 
+- o.ops:               c.ops
+- 
+- o.option:    c.option
+- 
+- o.os_riscos: c.os_riscos
+- 
+- o.pty:               c.pty
+- 
+- o.popupmnu:  c.popupmnu
+- 
+- o.quickfix:  c.quickfix
+- 
+- o.regexp:    c.regexp
+- 
+- o.screen:    c.screen
+- 
+- o.search:    c.search
+- 
+- o.spell:     c.spell
+- 
+- o.syntax:    c.syntax
+- 
+- o.tag:               c.tag
+- 
+- o.term:              c.term
+-      $(CC) $(TERMFLAG) -c c.term -o o.term
+- 
+- o.termlib:   c.termlib
+- 
+- o.ui:                c.ui
+- 
+- o.undo:              c.undo
+- 
+- o.version:   c.version
+- 
+- o.window:    c.window
+--- 0 ----
+*** ../vim-7.3.190/src/INSTALL 2010-08-15 21:57:28.000000000 +0200
+--- src/INSTALL        2011-05-19 12:36:17.000000000 +0200
+***************
+*** 6,14 ****
+  Contents:
+  1. Generic
+  2. Unix
+! 3. RISC OS
+! 4. OS/2 (with EMX 0.9b)
+! 5. Atari MiNT
+  
+  See INSTALLami.txt              for Amiga
+  See INSTALLmac.txt              for Macintosh
+--- 6,13 ----
+  Contents:
+  1. Generic
+  2. Unix
+! 3. OS/2 (with EMX 0.9b)
+! 4. Atari MiNT
+  
+  See INSTALLami.txt              for Amiga
+  See INSTALLmac.txt              for Macintosh
+***************
+*** 174,198 ****
+       ./configure --without-local-dir
+  
+  
+! 3. RISC OS
+! =============
+! 
+! Much file renaming is needed before you can compile anything.
+! You'll need UnixLib to link against, GCC and GNU make.
+! 
+! I suggest you get the RISC OS binary distribution, which includes the
+! Templates file and the loader.
+! 
+! Try here: http://www.ecs.soton.ac.uk/~tal197
+! 
+! Do
+!     :help riscos
+! 
+! within the editor for more information, or read the
+! ../runtime/doc/os_risc.txt help file.
+! 
+! 
+! 4. OS/2
+  =======
+  
+  Summary:
+--- 173,179 ----
+       ./configure --without-local-dir
+  
+  
+! 3. OS/2
+  =======
+  
+  Summary:
+***************
+*** 237,243 ****
+  Check ../runtime/doc/os_os2.txt for additional info on running Vim.
+  
+  
+! 5. Atari MiNT
+  =============
+  
+  [NOTE: this is quite old, it might not work anymore]
+--- 218,224 ----
+  Check ../runtime/doc/os_os2.txt for additional info on running Vim.
+  
+  
+! 4. Atari MiNT
+  =============
+  
+  [NOTE: this is quite old, it might not work anymore]
+*** ../vim-7.3.190/src/Makefile        2011-04-01 13:05:37.000000000 +0200
+--- src/Makefile       2011-05-19 12:37:52.000000000 +0200
+***************
+*** 29,35 ****
+  #    - Uncomment the line "CONF_OPT_X = --without-x" if you have X11 but
+  #      want to disable using X11 libraries.  This speeds up starting Vim,
+  #      but the window title will not be set and the X11 selection can not
+! #      used.
+  #    - Uncomment the line "CONF_OPT_XSMP = --disable-xsmp" if you have the
+  #      X11 Session Management Protocol (XSMP) library (libSM) but do not
+  #      want to use it.
+--- 29,35 ----
+  #    - Uncomment the line "CONF_OPT_X = --without-x" if you have X11 but
+  #      want to disable using X11 libraries.  This speeds up starting Vim,
+  #      but the window title will not be set and the X11 selection can not
+! #      be used.
+  #    - Uncomment the line "CONF_OPT_XSMP = --disable-xsmp" if you have the
+  #      X11 Session Management Protocol (XSMP) library (libSM) but do not
+  #      want to use it.
+***************
+*** 730,741 ****
+  ### USL for Unix Systems Laboratories (SYSV 4.2)
+  #EXTRA_DEFS = -DUSL
+  
+- ### RISCos on MIPS without X11
+- #EXTRA_DEFS = -DMIPS
+- 
+- ### RISCos on MIPS with X11
+- #EXTRA_LIBS = -lsun
+- 
+  ### (6)  A/UX 3.1.1 with gcc (Jim Jagielski)
+  #CC= gcc -D_POSIX_SOURCE
+  #CFLAGS= -O2
+--- 730,735 ----
+***************
+*** 1633,1639 ****
+  RSRC_DIR = os_mac_rsrc
+  
+  PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \
+!      os_mswin.pro os_beos.pro os_vms.pro os_riscos.pro $(PERL_PRO)
+  
+  # Default target is making the executable and tools
+  all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
+--- 1627,1633 ----
+  RSRC_DIR = os_mac_rsrc
+  
+  PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \
+!      os_mswin.pro os_beos.pro os_vms.pro $(PERL_PRO)
+  
+  # Default target is making the executable and tools
+  all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
+*** ../vim-7.3.190/src/buffer.c        2011-05-05 17:32:40.000000000 +0200
+--- src/buffer.c       2011-05-19 13:09:25.000000000 +0200
+***************
+*** 1808,1816 ****
+  #ifdef FEAT_AUTOCMD
+      clear_string_option(&buf->b_p_ft);
+  #endif
+- #ifdef FEAT_OSFILETYPE
+-     clear_string_option(&buf->b_p_oft);
+- #endif
+  #ifdef FEAT_CINDENT
+      clear_string_option(&buf->b_p_cink);
+      clear_string_option(&buf->b_p_cino);
+--- 1808,1813 ----
+*** ../vim-7.3.190/src/eval.c  2011-05-10 16:41:13.000000000 +0200
+--- src/eval.c 2011-05-19 13:09:43.000000000 +0200
+***************
+*** 12076,12084 ****
+  #ifdef FEAT_OLE
+       "ole",
+  #endif
+- #ifdef FEAT_OSFILETYPE
+-      "osfiletype",
+- #endif
+  #ifdef FEAT_PATH_EXTRA
+       "path_extra",
+  #endif
+--- 12076,12081 ----
+*** ../vim-7.3.190/src/feature.h       2010-08-15 21:57:31.000000000 +0200
+--- src/feature.h      2011-05-19 13:09:56.000000000 +0200
+***************
+*** 506,520 ****
+  #endif
+  
+  /*
+-  * +osfiletype               filetype checking in autocommand patterns.
+-  *                   Only on systems that support filetypes (RISC OS).
+-  */
+- #if 0
+- # define FEAT_OSFILETYPE
+- # define DFLT_OFT "Text"
+- #endif
+- 
+- /*
+   * +viminfo          reading/writing the viminfo file. Takes about 8Kbyte
+   *                   of code.
+   * VIMINFO_FILE              Location of user .viminfo file (should start with $).
+--- 506,511 ----
+*** ../vim-7.3.190/src/option.c        2011-04-28 17:24:54.000000000 +0200
+--- src/option.c       2011-05-19 13:11:42.000000000 +0200
+***************
+*** 140,148 ****
+  #define PV_MOD               OPT_BUF(BV_MOD)
+  #define PV_MPS               OPT_BUF(BV_MPS)
+  #define PV_NF                OPT_BUF(BV_NF)
+- #ifdef FEAT_OSFILETYPE
+- # define PV_OFT              OPT_BUF(BV_OFT)
+- #endif
+  #ifdef FEAT_COMPL_FUNC
+  # define PV_OFU              OPT_BUF(BV_OFU)
+  #endif
+--- 140,145 ----
+***************
+*** 337,345 ****
+  static int   p_mod;
+  static char_u        *p_mps;
+  static char_u        *p_nf;
+- #ifdef FEAT_OSFILETYPE
+- static char_u        *p_oft;
+- #endif
+  static int   p_pi;
+  #ifdef FEAT_TEXTOBJ
+  static char_u        *p_qe;
+--- 334,339 ----
+***************
+*** 1901,1914 ****
+                           (char_u *)NULL, PV_NONE,
+                           {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+      {"osfiletype",  "oft",  P_STRING|P_ALLOCED|P_VI_DEF,
+- #ifdef FEAT_OSFILETYPE
+-                          (char_u *)&p_oft, PV_OFT,
+-                          {(char_u *)DFLT_OFT, (char_u *)0L}
+- #else
+                           (char_u *)NULL, PV_NONE,
+!                          {(char_u *)0L, (char_u *)0L}
+! #endif
+!                          SCRIPTID_INIT},
+      {"paragraphs",  "para", P_STRING|P_VI_DEF,
+                           (char_u *)&p_para, PV_NONE,
+                           {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp",
+--- 1895,1902 ----
+                           (char_u *)NULL, PV_NONE,
+                           {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+      {"osfiletype",  "oft",  P_STRING|P_ALLOCED|P_VI_DEF,
+                           (char_u *)NULL, PV_NONE,
+!                          {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+      {"paragraphs",  "para", P_STRING|P_VI_DEF,
+                           (char_u *)&p_para, PV_NONE,
+                           {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp",
+***************
+*** 5282,5290 ****
+  #ifdef FEAT_AUTOCMD
+      check_string_option(&buf->b_p_ft);
+  #endif
+- #ifdef FEAT_OSFILETYPE
+-     check_string_option(&buf->b_p_oft);
+- #endif
+  #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
+      check_string_option(&buf->b_p_cinw);
+  #endif
+--- 5270,5275 ----
+***************
+*** 9665,9673 ****
+       case PV_MA:     return (char_u *)&(curbuf->b_p_ma);
+       case PV_MOD:    return (char_u *)&(curbuf->b_changed);
+       case PV_NF:     return (char_u *)&(curbuf->b_p_nf);
+- #ifdef FEAT_OSFILETYPE
+-      case PV_OFT:    return (char_u *)&(curbuf->b_p_oft);
+- #endif
+       case PV_PI:     return (char_u *)&(curbuf->b_p_pi);
+  #ifdef FEAT_TEXTOBJ
+       case PV_QE:     return (char_u *)&(curbuf->b_p_qe);
+--- 9650,9655 ----
+***************
+*** 10018,10026 ****
+           /* Don't copy 'filetype', it must be detected */
+           buf->b_p_ft = empty_option;
+  #endif
+- #ifdef FEAT_OSFILETYPE
+-          buf->b_p_oft = vim_strsave(p_oft);
+- #endif
+           buf->b_p_pi = p_pi;
+  #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
+           buf->b_p_cinw = vim_strsave(p_cinw);
+--- 10000,10005 ----
+*** ../vim-7.3.190/src/option.h        2011-02-12 13:59:55.000000000 +0100
+--- src/option.h       2011-05-19 13:11:46.000000000 +0200
+***************
+*** 984,992 ****
+      , BV_MOD
+      , BV_MPS
+      , BV_NF
+- #ifdef FEAT_OSFILETYPE
+-     , BV_OFT
+- #endif
+  #ifdef FEAT_COMPL_FUNC
+      , BV_OFU
+  #endif
+--- 984,989 ----
+*** ../vim-7.3.190/src/structs.h       2011-05-10 16:41:13.000000000 +0200
+--- src/structs.h      2011-05-19 13:11:58.000000000 +0200
+***************
+*** 1530,1538 ****
+      int              b_p_ml_nobin;   /* b_p_ml saved for binary mode */
+      int              b_p_ma;         /* 'modifiable' */
+      char_u   *b_p_nf;        /* 'nrformats' */
+- #ifdef FEAT_OSFILETYPE
+-     char_u   *b_p_oft;       /* 'osfiletype' */
+- #endif
+      int              b_p_pi;         /* 'preserveindent' */
+  #ifdef FEAT_TEXTOBJ
+      char_u   *b_p_qe;        /* 'quoteescape' */
+--- 1530,1535 ----
+*** ../vim-7.3.190/src/version.c       2011-05-19 12:14:03.000000000 +0200
+--- src/version.c      2011-05-19 13:26:42.000000000 +0200
+***************
+*** 426,436 ****
+       "-ole",
+  # endif
+  #endif
+- #ifdef FEAT_OSFILETYPE
+-      "+osfiletype",
+- #else
+-      "-osfiletype",
+- #endif
+  #ifdef FEAT_PATH_EXTRA
+       "+path_extra",
+  #else
+--- 426,431 ----
+*** ../vim-7.3.190/src/pty.c   2011-04-11 14:24:33.000000000 +0200
+--- src/pty.c  2011-05-19 12:43:26.000000000 +0200
+***************
+*** 123,130 ****
+  static void initmaster __ARGS((int));
+  
+  /*
+!  *  Open all ptys with O_NOCTTY, just to be on the safe side
+!  *  (RISCos mips breaks otherwise)
+   */
+  #ifndef O_NOCTTY
+  # define O_NOCTTY 0
+--- 123,129 ----
+  static void initmaster __ARGS((int));
+  
+  /*
+!  *  Open all ptys with O_NOCTTY, just to be on the safe side.
+   */
+  #ifndef O_NOCTTY
+  # define O_NOCTTY 0
+*** ../vim-7.3.190/Filelist    2011-05-10 17:21:34.000000000 +0200
+--- Filelist   2011-05-19 13:37:25.000000000 +0200
+***************
+*** 427,433 ****
+               $(SRC_VMS) \
+               README_os390.txt \
+               src/Make_mint.mak \
+-              src/Make_ro.mak \
+               src/if_sniff.c \
+               src/infplist.xml \
+               src/link.390 \
+--- 427,432 ----
+*** ../vim-7.3.190/src/version.c       2011-05-19 12:14:03.000000000 +0200
+--- src/version.c      2011-05-19 13:26:42.000000000 +0200
+***************
+*** 716,717 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     191,
+  /**/
+
+-- 
+From "know your smileys":
+ :-&   Eating spaghetti
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.192.patch0 b/vim/patches/vim-7.3.192.patch0
new file mode 100644 (file)
index 0000000..5dab19b
--- /dev/null
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.192
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.192
+Problem:    Ex command ":s/ \?/ /g" splits multi-byte characters into bytes.
+           (Dominique Pelle)
+Solution:   Advance over whole character instead of one byte.
+Files:     src/ex_cmds.c
+
+
+*** ../vim-7.3.191/src/ex_cmds.c       2011-05-10 16:41:13.000000000 +0200
+--- src/ex_cmds.c      2011-05-19 14:23:33.000000000 +0200
+***************
+*** 4625,4631 ****
+                        * for a match in this line again. */
+                       skip_match = TRUE;
+                   else
+!                      ++matchcol; /* search for a match at next column */
+                   goto skip;
+               }
+  
+--- 4625,4639 ----
+                        * for a match in this line again. */
+                       skip_match = TRUE;
+                   else
+!                  {
+!                       /* search for a match at next column */
+! #ifdef FEAT_MBYTE
+!                      if (has_mbyte)
+!                          matchcol += mb_ptr2len(sub_firstline + matchcol);
+!                      else
+! #endif
+!                          ++matchcol;
+!                  }
+                   goto skip;
+               }
+  
+*** ../vim-7.3.191/src/version.c       2011-05-19 13:40:47.000000000 +0200
+--- src/version.c      2011-05-19 14:28:44.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     192,
+  /**/
+
+-- 
+From "know your smileys":
+ :-F   Bucktoothed vampire with one tooth missing
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.193.patch0 b/vim/patches/vim-7.3.193.patch0
new file mode 100644 (file)
index 0000000..acee9ec
--- /dev/null
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.193
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.193
+Problem:    In the command line window ":close" doesn't work properly. (Tony
+           Mechelynck)
+Solution:   Use Ctrl_C instead of K_IGNORE for cmdwin_result. (Jean-Rene
+           David)
+Files:     src/ex_docmd.c, src/ex_getln.c
+
+
+*** ../vim-7.3.192/src/ex_docmd.c      2011-05-10 16:41:13.000000000 +0200
+--- src/ex_docmd.c     2011-05-19 14:42:56.000000000 +0200
+***************
+*** 6472,6478 ****
+  {
+  # ifdef FEAT_CMDWIN
+      if (cmdwin_type != 0)
+!      cmdwin_result = K_IGNORE;
+      else
+  # endif
+       if (!text_locked()
+--- 6472,6478 ----
+  {
+  # ifdef FEAT_CMDWIN
+      if (cmdwin_type != 0)
+!      cmdwin_result = Ctrl_C;
+      else
+  # endif
+       if (!text_locked()
+*** ../vim-7.3.192/src/ex_getln.c      2011-04-28 17:21:49.000000000 +0200
+--- src/ex_getln.c     2011-05-19 14:42:56.000000000 +0200
+***************
+*** 6324,6329 ****
+--- 6324,6335 ----
+           ccline.cmdbuff = vim_strsave((char_u *)"qa");
+           cmdwin_result = CAR;
+       }
++      else if (cmdwin_result == Ctrl_C)
++      {
++          /* :q or :close, don't execute any command
++           * and don't modify the cmd window. */
++          ccline.cmdbuff = NULL;
++      }
+       else
+           ccline.cmdbuff = vim_strsave(ml_get_curline());
+       if (ccline.cmdbuff == NULL)
+*** ../vim-7.3.192/src/version.c       2011-05-19 14:30:07.000000000 +0200
+--- src/version.c      2011-05-19 14:48:12.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     193,
+  /**/
+
+-- 
+There's no place like $(HOME)!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.194.patch0 b/vim/patches/vim-7.3.194.patch0
new file mode 100644 (file)
index 0000000..5a73c00
--- /dev/null
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.194
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.194
+Problem:    When "b" is a symlink to directory "a", resolve("b/") doesn't
+           result in "a/".  (ZyX)
+Solution:   Remove the trailing slash. (Jean-Rene David)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.193/src/eval.c  2011-05-19 13:40:47.000000000 +0200
+--- src/eval.c 2011-05-19 14:55:27.000000000 +0200
+***************
+*** 14980,14986 ****
+--- 14980,14989 ----
+  
+       len = STRLEN(p);
+       if (len > 0 && after_pathsep(p, p + len))
++      {
+           has_trailing_pathsep = TRUE;
++          p[len - 1] = NUL; /* the trailing slash breaks readlink() */
++      }
+  
+       q = getnextcomp(p);
+       if (*q != NUL)
+*** ../vim-7.3.193/src/version.c       2011-05-19 14:50:49.000000000 +0200
+--- src/version.c      2011-05-19 14:54:40.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     194,
+  /**/
+
+-- 
+Momento mori, ergo carpe diem
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.195.patch0 b/vim/patches/vim-7.3.195.patch0
new file mode 100644 (file)
index 0000000..ba1fc21
--- /dev/null
@@ -0,0 +1,199 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.195
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.195
+Problem:    "} else" causes following lines to be indented too much. (Rouben
+           Rostamian)
+Solution:   Better detection for the "else". (Lech Lorens)
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.194/src/misc1.c 2011-05-10 16:41:13.000000000 +0200
+--- src/misc1.c        2011-05-19 16:30:28.000000000 +0200
+***************
+*** 5482,5489 ****
+   * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
+   * '}'.
+   * Don't consider "} else" a terminated line.
+!  * Don't consider a line where there are unmatched opening braces before '}',
+!  * ';' or ',' a terminated line.
+   * Return the character terminating the line (ending char's have precedence if
+   * both apply in order to determine initializations).
+   */
+--- 5482,5489 ----
+   * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
+   * '}'.
+   * Don't consider "} else" a terminated line.
+!  * If a line begins with an "else", only consider it terminated if no unmatched
+!  * opening braces follow (handle "else { foo();" correctly).
+   * Return the character terminating the line (ending char's have precedence if
+   * both apply in order to determine initializations).
+   */
+***************
+*** 5493,5513 ****
+      int              incl_open;      /* include '{' at the end as terminator */
+      int              incl_comma;     /* recognize a trailing comma */
+  {
+!     char_u found_start = 0;
+!     unsigned n_open = 0;
+  
+      s = cin_skipcomment(s);
+  
+      if (*s == '{' || (*s == '}' && !cin_iselse(s)))
+       found_start = *s;
+  
+      while (*s)
+      {
+       /* skip over comments, "" strings and 'c'haracters */
+       s = skip_string(cin_skipcomment(s));
+       if (*s == '}' && n_open > 0)
+           --n_open;
+!      if (n_open == 0
+               && (*s == ';' || *s == '}' || (incl_comma && *s == ','))
+               && cin_nocode(s + 1))
+           return *s;
+--- 5493,5517 ----
+      int              incl_open;      /* include '{' at the end as terminator */
+      int              incl_comma;     /* recognize a trailing comma */
+  {
+!     char_u   found_start = 0;
+!     unsigned n_open = 0;
+!     int              is_else = FALSE;
+  
+      s = cin_skipcomment(s);
+  
+      if (*s == '{' || (*s == '}' && !cin_iselse(s)))
+       found_start = *s;
+  
++     if (!found_start)
++      is_else = cin_iselse(s);
++ 
+      while (*s)
+      {
+       /* skip over comments, "" strings and 'c'haracters */
+       s = skip_string(cin_skipcomment(s));
+       if (*s == '}' && n_open > 0)
+           --n_open;
+!      if ((!is_else || n_open == 0)
+               && (*s == ';' || *s == '}' || (incl_comma && *s == ','))
+               && cin_nocode(s + 1))
+           return *s;
+*** ../vim-7.3.194/src/testdir/test3.in        2011-05-10 13:38:23.000000000 +0200
+--- src/testdir/test3.in       2011-05-19 16:29:01.000000000 +0200
+***************
+*** 1345,1351 ****
+  
+  STARTTEST
+  :set cino&
+! 2kdd=][
+  ENDTEST
+  
+  void func(void)
+--- 1345,1351 ----
+  
+  STARTTEST
+  :set cino&
+! 2kdd=4][
+  ENDTEST
+  
+  void func(void)
+***************
+*** 1359,1364 ****
+--- 1359,1392 ----
+       printf("Foo!\n");
+  }
+  
++ void func1(void)
++ {
++      char* tab[] = {"foo", "bar",
++              "baz", "quux",
++                      "this line used", "to be indented incorrectly"};
++      foo();
++ }
++ 
++ void func2(void)
++ {
++      int tab[] =
++      {1, 2,
++              3, 4,
++              5, 6};
++ 
++              printf("This line used to be indented incorrectly.\n");
++ }
++ 
++ void func3(void)
++ {
++      int tab[] = {
++      1, 2,
++      3, 4,
++      5, 6};
++ 
++ printf("Don't you dare indent this line incorrectly!\n);
++ }
++ 
+  STARTTEST
+  :set cino&
+  2kdd=][
+*** ../vim-7.3.194/src/testdir/test3.ok        2011-05-10 13:38:23.000000000 +0200
+--- src/testdir/test3.ok       2011-05-19 16:29:01.000000000 +0200
+***************
+*** 1216,1221 ****
+--- 1216,1249 ----
+       printf("Foo!\n");
+  }
+  
++ void func1(void)
++ {
++      char* tab[] = {"foo", "bar",
++              "baz", "quux",
++              "this line used", "to be indented incorrectly"};
++      foo();
++ }
++ 
++ void func2(void)
++ {
++      int tab[] =
++      {1, 2,
++              3, 4,
++              5, 6};
++ 
++      printf("This line used to be indented incorrectly.\n");
++ }
++ 
++ void func3(void)
++ {
++      int tab[] = {
++              1, 2,
++              3, 4,
++              5, 6};
++ 
++      printf("Don't you dare indent this line incorrectly!\n);
++ }
++ 
+  
+  void func(void)
+  {
+*** ../vim-7.3.194/src/version.c       2011-05-19 14:59:07.000000000 +0200
+--- src/version.c      2011-05-19 16:34:16.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     195,
+  /**/
+
+-- 
+I AM THANKFUL...
+...for the taxes that I pay because it means that I am employed.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.196.patch0 b/vim/patches/vim-7.3.196.patch0
new file mode 100644 (file)
index 0000000..0d6be8c
--- /dev/null
@@ -0,0 +1,224 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.196
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.196
+Problem:    Can't intercept a character that is going to be inserted.
+Solution:   Add the InsertCharPre autocommand event. (Jakson A. Aquino)
+Files:     runtime/doc/autocmd.txt, runtime/doc/eval.txt,
+           runtime/doc/map.txt, src/edit.c, src/eval.c, src/fileio.c,
+           src/vim.h
+
+
+*** ../mercurial/vim73/runtime/doc/autocmd.txt 2011-04-28 19:01:26.000000000 +0200
+--- runtime/doc/autocmd.txt    2011-05-19 17:12:17.000000000 +0200
+***************
+*** 299,304 ****
+--- 299,306 ----
+  |InsertEnter|                starting Insert mode
+  |InsertChange|               when typing <Insert> while in Insert or Replace mode
+  |InsertLeave|                when leaving Insert mode
++ |InsertCharPre|              when a character was typed in Insert mode, before
++                      inserting it
+  
+  |ColorScheme|                after loading a color scheme
+  
+***************
+*** 657,662 ****
+--- 659,675 ----
+                               indicates the new mode.
+                               Be careful not to move the cursor or do
+                               anything else that the user does not expect.
++                                                      *InsertCharPre*
++ InsertCharPre                        When a character is typed in Insert mode,
++                              before inserting the char.
++                              The |v:char| variable indicates the char typed
++                              and can be changed during the event to insert
++                              a different character.  When |v:char| is set
++                              to more than one character this text is
++                              inserted literally.
++                              It is not allowed to change the text |textlock|.
++                              The event is not triggered when 'paste' is
++                              set.
+                                                       *InsertEnter*
+  InsertEnter                  Just before starting Insert mode.  Also for
+                               Replace mode and Virtual Replace mode.  The
+*** ../mercurial/vim73/runtime/doc/eval.txt    2011-05-19 12:22:41.000000000 +0200
+--- runtime/doc/eval.txt       2011-05-19 16:55:58.000000000 +0200
+***************
+*** 1293,1298 ****
+--- 1293,1299 ----
+                                       *v:char* *char-variable*
+  v:char               Argument for evaluating 'formatexpr' and used for the typed
+               character when using <expr> in an abbreviation |:map-<expr>|.
++              It is also used by the |InsertPreChar| event.
+  
+                       *v:charconvert_from* *charconvert_from-variable*
+  v:charconvert_from
+*** ../mercurial/vim73/runtime/doc/map.txt     2011-05-10 17:17:38.000000000 +0200
+--- runtime/doc/map.txt        2011-05-19 16:40:34.000000000 +0200
+***************
+*** 226,232 ****
+  
+  For abbreviations |v:char| is set to the character that was typed to trigger
+  the abbreviation.  You can use this to decide how to expand the {lhs}.  You
+! can't change v:char and you should not insert it.
+  
+  Be very careful about side effects!  The expression is evaluated while
+  obtaining characters, you may very well make the command dysfunctional.
+--- 226,232 ----
+  
+  For abbreviations |v:char| is set to the character that was typed to trigger
+  the abbreviation.  You can use this to decide how to expand the {lhs}.  You
+! you should not either insert or change the v:char.
+  
+  Be very careful about side effects!  The expression is evaluated while
+  obtaining characters, you may very well make the command dysfunctional.
+*** ../mercurial/vim73/src/edit.c      2011-05-10 14:22:10.000000000 +0200
+--- src/edit.c 2011-05-19 17:20:53.000000000 +0200
+***************
+*** 1381,1390 ****
+               goto do_intr;
+  #endif
+  
+           /*
+            * Insert a nomal character.
+            */
+! normalchar:
+  #ifdef FEAT_SMARTINDENT
+           /* Try to perform smart-indenting. */
+           ins_try_si(c);
+--- 1381,1425 ----
+               goto do_intr;
+  #endif
+  
++ normalchar:
+           /*
+            * Insert a nomal character.
+            */
+! #ifdef FEAT_AUTOCMD
+!          if (!p_paste)
+!          {
+!              /* Trigger the InsertCharPre event.  Lock the text to avoid
+!               * weird things from happening. */
+!              set_vim_var_char(c);
+!              ++textlock;
+!              if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL,
+!                                                             FALSE, curbuf))
+!              {
+!                  /* Get the new value of v:char.  If it is more than one
+!                   * character insert it literally. */
+!                  char_u *s = get_vim_var_str(VV_CHAR);
+!                  if (MB_CHARLEN(s) > 1)
+!                  {
+!                      if (stop_arrow() != FAIL)
+!                      {
+!                          ins_str(s);
+!                          AppendToRedobuffLit(s, -1);
+!                      }
+!                      c = NUL;
+!                  }
+!                  else
+!                      c = PTR2CHAR(s);
+!              }
+! 
+!              set_vim_var_string(VV_CHAR, NULL, -1);
+!              --textlock;
+! 
+!              /* If the new value is an empty string then don't insert a
+!               * char. */
+!              if (c == NUL)
+!                  break;
+!          }
+! #endif
+  #ifdef FEAT_SMARTINDENT
+           /* Try to perform smart-indenting. */
+           ins_try_si(c);
+***************
+*** 3491,3501 ****
+           return;
+      }
+      p += len;
+! #ifdef FEAT_MBYTE
+!     c = mb_ptr2char(p);
+! #else
+!     c = *p;
+! #endif
+      ins_compl_addleader(c);
+  }
+  
+--- 3526,3532 ----
+           return;
+      }
+      p += len;
+!     c = PTR2CHAR(p);
+      ins_compl_addleader(c);
+  }
+  
+*** ../mercurial/vim73/src/eval.c      2011-05-19 14:59:07.000000000 +0200
+--- src/eval.c 2011-05-19 16:40:39.000000000 +0200
+***************
+*** 352,358 ****
+      {VV_NAME("swapname",      VAR_STRING), VV_RO},
+      {VV_NAME("swapchoice",    VAR_STRING), 0},
+      {VV_NAME("swapcommand",   VAR_STRING), VV_RO},
+!     {VV_NAME("char",          VAR_STRING), VV_RO},
+      {VV_NAME("mouse_win",     VAR_NUMBER), 0},
+      {VV_NAME("mouse_lnum",    VAR_NUMBER), 0},
+      {VV_NAME("mouse_col",     VAR_NUMBER), 0},
+--- 352,358 ----
+      {VV_NAME("swapname",      VAR_STRING), VV_RO},
+      {VV_NAME("swapchoice",    VAR_STRING), 0},
+      {VV_NAME("swapcommand",   VAR_STRING), VV_RO},
+!     {VV_NAME("char",          VAR_STRING), 0},
+      {VV_NAME("mouse_win",     VAR_NUMBER), 0},
+      {VV_NAME("mouse_lnum",    VAR_NUMBER), 0},
+      {VV_NAME("mouse_col",     VAR_NUMBER), 0},
+*** ../mercurial/vim73/src/fileio.c    2011-05-10 16:41:13.000000000 +0200
+--- src/fileio.c       2011-05-19 16:40:39.000000000 +0200
+***************
+*** 7662,7667 ****
+--- 7662,7668 ----
+      {"InsertChange", EVENT_INSERTCHANGE},
+      {"InsertEnter",  EVENT_INSERTENTER},
+      {"InsertLeave",  EVENT_INSERTLEAVE},
++     {"InsertCharPre",        EVENT_INSERTCHARPRE},
+      {"MenuPopup",    EVENT_MENUPOPUP},
+      {"QuickFixCmdPost",      EVENT_QUICKFIXCMDPOST},
+      {"QuickFixCmdPre",       EVENT_QUICKFIXCMDPRE},
+*** ../mercurial/vim73/src/vim.h       2011-05-10 16:41:13.000000000 +0200
+--- src/vim.h  2011-05-19 16:40:39.000000000 +0200
+***************
+*** 1274,1279 ****
+--- 1274,1280 ----
+      EVENT_WINENTER,          /* after entering a window */
+      EVENT_WINLEAVE,          /* before leaving a window */
+      EVENT_ENCODINGCHANGED,   /* after changing the 'encoding' option */
++     EVENT_INSERTCHARPRE,     /* before inserting a char */
+      EVENT_CURSORHOLD,                /* cursor in same position for a while */
+      EVENT_CURSORHOLDI,               /* idem, in Insert mode */
+      EVENT_FUNCUNDEFINED,     /* if calling a function which doesn't exist */
+*** ../vim-7.3.195/src/version.c       2011-05-19 16:35:05.000000000 +0200
+--- src/version.c      2011-05-19 17:15:41.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     196,
+  /**/
+
+-- 
+I AM THANKFUL...
+...for the mess to clean after a party because it means I have
+been surrounded by friends.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.197.patch0 b/vim/patches/vim-7.3.197.patch0
new file mode 100644 (file)
index 0000000..c33a2cb
--- /dev/null
@@ -0,0 +1,78 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.197
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.197
+Problem:    When a QuickfixCmdPost event removes all errors, Vim still tries
+           to jump to the first error, resulting in E42.
+Solution:   Get the number of error after the autocmd event. (Mike Lundy)
+Files:     src/quickfix.c
+
+
+*** ../mercurial/vim73/src/quickfix.c  2011-05-10 16:41:13.000000000 +0200
+--- src/quickfix.c     2011-05-19 17:34:11.000000000 +0200
+***************
+*** 2813,2829 ****
+                                          (eap->cmdidx != CMD_grepadd
+                                           && eap->cmdidx != CMD_lgrepadd),
+                                          *eap->cmdlinep);
+  #ifdef FEAT_AUTOCMD
+      if (au_name != NULL)
+       apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
+                                              curbuf->b_fname, TRUE, curbuf);
+  #endif
+      if (res > 0 && !eap->forceit)
+-     {
+-      if (wp != NULL)
+-          qi = GET_LOC_LIST(wp);
+       qf_jump(qi, 0, 0, FALSE);               /* display first error */
+-     }
+  
+      mch_remove(fname);
+      vim_free(fname);
+--- 2813,2833 ----
+                                          (eap->cmdidx != CMD_grepadd
+                                           && eap->cmdidx != CMD_lgrepadd),
+                                          *eap->cmdlinep);
++     if (wp != NULL)
++      qi = GET_LOC_LIST(wp);
+  #ifdef FEAT_AUTOCMD
+      if (au_name != NULL)
++     {
+       apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
+                                              curbuf->b_fname, TRUE, curbuf);
++      if (qi->qf_curlist < qi->qf_listcount)
++          res = qi->qf_lists[qi->qf_curlist].qf_count;
++      else
++          res = 0;
++     }
+  #endif
+      if (res > 0 && !eap->forceit)
+       qf_jump(qi, 0, 0, FALSE);               /* display first error */
+  
+      mch_remove(fname);
+      vim_free(fname);
+*** ../vim-7.3.196/src/version.c       2011-05-19 17:25:36.000000000 +0200
+--- src/version.c      2011-05-19 17:41:50.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     197,
+  /**/
+
+-- 
+I AM THANKFUL...
+...for the clothes that fit a little too snug because it
+means I have more than enough to eat.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.198.patch0 b/vim/patches/vim-7.3.198.patch0
new file mode 100644 (file)
index 0000000..5ef4a8a
--- /dev/null
@@ -0,0 +1,403 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.198
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.198
+Problem:    No completion for ":lang".
+Solution:   Get locales to complete from. (Dominique Pelle)
+Files:     src/eval.c, src/ex_cmds2.c, src/ex_getln.c,
+           src/proto/ex_cmds2.pro, src/proto/ex_getln.pro, src/vim.h
+
+
+*** ../mercurial/vim73/src/eval.c      2011-05-19 17:25:36.000000000 +0200
+--- src/eval.c 2011-05-19 17:52:02.000000000 +0200
+***************
+*** 911,916 ****
+--- 911,917 ----
+      hash_clear(&compat_hashtab);
+  
+      free_scriptnames();
++     free_locales();
+  
+      /* global variables */
+      vars_clear(&globvarht);
+*** ../mercurial/vim73/src/ex_cmds2.c  2011-05-10 16:41:13.000000000 +0200
+--- src/ex_cmds2.c     2011-05-19 18:16:54.000000000 +0200
+***************
+*** 1476,1482 ****
+  #endif
+  
+  /*
+!  * Ask the user what to do when abondoning a changed buffer.
+   * Must check 'write' option first!
+   */
+      void
+--- 1476,1482 ----
+  #endif
+  
+  /*
+!  * Ask the user what to do when abandoning a changed buffer.
+   * Must check 'write' option first!
+   */
+      void
+***************
+*** 4153,4158 ****
+--- 4153,4234 ----
+  }
+  
+  # if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ 
++ static char_u        **locales = NULL;       /* Array of all available locales */
++ static int   did_init_locales = FALSE;
++ 
++ static void init_locales __ARGS((void));
++ static char_u **find_locales __ARGS((void));
++ 
++ /*
++  * Lazy initialization of all available locales.
++  */
++     static void
++ init_locales()
++ {
++     if (!did_init_locales)
++     {
++      did_init_locales = TRUE;
++      locales = find_locales();
++     }
++ }
++ 
++ /* Return an array of strings for all available locales + NULL for the
++  * last element.  Return NULL in case of error. */
++     static char_u **
++ find_locales()
++ {
++     garray_T locales_ga;
++     char_u   *loc;
++ 
++     /* Find all available locales by running command "locale -a".  If this
++      * doesn't work we won't have completion. */
++     char_u *locale_a = get_cmd_output((char_u *)"locale -a",
++                                                      NULL, SHELL_SILENT);
++     if (locale_a == NULL)
++      return NULL;
++     ga_init2(&locales_ga, sizeof(char_u *), 20);
++ 
++     /* Transform locale_a string where each locale is separated by "\n"
++      * into an array of locale strings. */
++     loc = (char_u *)strtok((char *)locale_a, "\n");
++ 
++     while (loc != NULL)
++     {
++      if (ga_grow(&locales_ga, 1) == FAIL)
++          break;
++      loc = vim_strsave(loc);
++      if (loc == NULL)
++          break;
++ 
++      ((char_u **)locales_ga.ga_data)[locales_ga.ga_len++] = loc;
++      loc = (char_u *)strtok(NULL, "\n");
++     }
++     vim_free(locale_a);
++     if (ga_grow(&locales_ga, 1) == FAIL)
++     {
++      ga_clear(&locales_ga);
++      return NULL;
++     }
++     ((char_u **)locales_ga.ga_data)[locales_ga.ga_len] = NULL;
++     return (char_u **)locales_ga.ga_data;
++ }
++ 
++ #  if defined(EXITFREE) || defined(PROTO)
++     void
++ free_locales()
++ {
++     int                      i;
++     if (locales != NULL)
++     {
++      for (i = 0; locales[i] != NULL; i++)
++          vim_free(locales[i]);
++      vim_free(locales);
++      locales = NULL;
++     }
++ }
++ #  endif
++ 
+  /*
+   * Function given to ExpandGeneric() to obtain the possible arguments of the
+   * ":language" command.
+***************
+*** 4168,4174 ****
+       return (char_u *)"ctype";
+      if (idx == 2)
+       return (char_u *)"time";
+!     return NULL;
+  }
+  # endif
+  
+--- 4244,4268 ----
+       return (char_u *)"ctype";
+      if (idx == 2)
+       return (char_u *)"time";
+! 
+!     init_locales();
+!     if (locales == NULL)
+!      return NULL;
+!     return locales[idx - 3];
+! }
+! 
+! /*
+!  * Function given to ExpandGeneric() to obtain the available locales.
+!  */
+!     char_u *
+! get_locales(xp, idx)
+!     expand_T *xp UNUSED;
+!     int              idx;
+! {
+!     init_locales();
+!     if (locales == NULL)
+!      return NULL;
+!     return locales[idx];
+  }
+  # endif
+  
+*** ../mercurial/vim73/src/ex_getln.c  2011-05-19 14:50:49.000000000 +0200
+--- src/ex_getln.c     2011-05-19 18:18:49.000000000 +0200
+***************
+*** 4571,4618 ****
+           int         context;
+           char_u      *((*func)__ARGS((expand_T *, int)));
+           int         ic;
+       } tab[] =
+       {
+!          {EXPAND_COMMANDS, get_command_name, FALSE},
+!          {EXPAND_BEHAVE, get_behave_arg, TRUE},
+  #ifdef FEAT_USR_CMDS
+!          {EXPAND_USER_COMMANDS, get_user_commands, FALSE},
+!          {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE},
+!          {EXPAND_USER_NARGS, get_user_cmd_nargs, FALSE},
+!          {EXPAND_USER_COMPLETE, get_user_cmd_complete, FALSE},
+  #endif
+  #ifdef FEAT_EVAL
+!          {EXPAND_USER_VARS, get_user_var_name, FALSE},
+!          {EXPAND_FUNCTIONS, get_function_name, FALSE},
+!          {EXPAND_USER_FUNC, get_user_func_name, FALSE},
+!          {EXPAND_EXPRESSION, get_expr_name, FALSE},
+  #endif
+  #ifdef FEAT_MENU
+!          {EXPAND_MENUS, get_menu_name, FALSE},
+!          {EXPAND_MENUNAMES, get_menu_names, FALSE},
+  #endif
+  #ifdef FEAT_SYN_HL
+!          {EXPAND_SYNTAX, get_syntax_name, TRUE},
+  #endif
+!          {EXPAND_HIGHLIGHT, get_highlight_name, TRUE},
+  #ifdef FEAT_AUTOCMD
+!          {EXPAND_EVENTS, get_event_name, TRUE},
+!          {EXPAND_AUGROUP, get_augroup_name, TRUE},
+  #endif
+  #ifdef FEAT_CSCOPE
+!          {EXPAND_CSCOPE, get_cscope_name, TRUE},
+  #endif
+  #ifdef FEAT_SIGNS
+!          {EXPAND_SIGN, get_sign_name, TRUE},
+  #endif
+  #ifdef FEAT_PROFILE
+!          {EXPAND_PROFILE, get_profile_name, TRUE},
+  #endif
+  #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+       && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+!          {EXPAND_LANGUAGE, get_lang_arg, TRUE},
+  #endif
+!          {EXPAND_ENV_VARS, get_env_name, TRUE},
+       };
+       int     i;
+  
+--- 4571,4620 ----
+           int         context;
+           char_u      *((*func)__ARGS((expand_T *, int)));
+           int         ic;
++          int         escaped;
+       } tab[] =
+       {
+!          {EXPAND_COMMANDS, get_command_name, FALSE, TRUE},
+!          {EXPAND_BEHAVE, get_behave_arg, TRUE, TRUE},
+  #ifdef FEAT_USR_CMDS
+!          {EXPAND_USER_COMMANDS, get_user_commands, FALSE, TRUE},
+!          {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE, TRUE},
+!          {EXPAND_USER_NARGS, get_user_cmd_nargs, FALSE, TRUE},
+!          {EXPAND_USER_COMPLETE, get_user_cmd_complete, FALSE, TRUE},
+  #endif
+  #ifdef FEAT_EVAL
+!          {EXPAND_USER_VARS, get_user_var_name, FALSE, TRUE},
+!          {EXPAND_FUNCTIONS, get_function_name, FALSE, TRUE},
+!          {EXPAND_USER_FUNC, get_user_func_name, FALSE, TRUE},
+!          {EXPAND_EXPRESSION, get_expr_name, FALSE, TRUE},
+  #endif
+  #ifdef FEAT_MENU
+!          {EXPAND_MENUS, get_menu_name, FALSE, TRUE},
+!          {EXPAND_MENUNAMES, get_menu_names, FALSE, TRUE},
+  #endif
+  #ifdef FEAT_SYN_HL
+!          {EXPAND_SYNTAX, get_syntax_name, TRUE, TRUE},
+  #endif
+!          {EXPAND_HIGHLIGHT, get_highlight_name, TRUE, TRUE},
+  #ifdef FEAT_AUTOCMD
+!          {EXPAND_EVENTS, get_event_name, TRUE, TRUE},
+!          {EXPAND_AUGROUP, get_augroup_name, TRUE, TRUE},
+  #endif
+  #ifdef FEAT_CSCOPE
+!          {EXPAND_CSCOPE, get_cscope_name, TRUE, TRUE},
+  #endif
+  #ifdef FEAT_SIGNS
+!          {EXPAND_SIGN, get_sign_name, TRUE, TRUE},
+  #endif
+  #ifdef FEAT_PROFILE
+!          {EXPAND_PROFILE, get_profile_name, TRUE, TRUE},
+  #endif
+  #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+       && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+!          {EXPAND_LANGUAGE, get_lang_arg, TRUE, FALSE},
+!          {EXPAND_LOCALES, get_locales, TRUE, FALSE},
+  #endif
+!          {EXPAND_ENV_VARS, get_env_name, TRUE, TRUE},
+       };
+       int     i;
+  
+***************
+*** 4626,4632 ****
+           {
+               if (tab[i].ic)
+                   regmatch.rm_ic = TRUE;
+!              ret = ExpandGeneric(xp, &regmatch, num_file, file, tab[i].func);
+               break;
+           }
+      }
+--- 4628,4635 ----
+           {
+               if (tab[i].ic)
+                   regmatch.rm_ic = TRUE;
+!              ret = ExpandGeneric(xp, &regmatch, num_file, file,
+!                                                 tab[i].func, tab[i].escaped);
+               break;
+           }
+      }
+***************
+*** 4648,4660 ****
+   * Returns OK when no problems encountered, FAIL for error (out of memory).
+   */
+      int
+! ExpandGeneric(xp, regmatch, num_file, file, func)
+      expand_T *xp;
+      regmatch_T       *regmatch;
+      int              *num_file;
+      char_u   ***file;
+      char_u   *((*func)__ARGS((expand_T *, int)));
+                                         /* returns a string from the list */
+  {
+      int              i;
+      int              count = 0;
+--- 4651,4664 ----
+   * Returns OK when no problems encountered, FAIL for error (out of memory).
+   */
+      int
+! ExpandGeneric(xp, regmatch, num_file, file, func, escaped)
+      expand_T *xp;
+      regmatch_T       *regmatch;
+      int              *num_file;
+      char_u   ***file;
+      char_u   *((*func)__ARGS((expand_T *, int)));
+                                         /* returns a string from the list */
++     int              escaped;
+  {
+      int              i;
+      int              count = 0;
+***************
+*** 4679,4685 ****
+           {
+               if (round)
+               {
+!                  str = vim_strsave_escaped(str, (char_u *)" \t\\.");
+                   (*file)[count] = str;
+  #ifdef FEAT_MENU
+                   if (func == get_menu_names && str != NULL)
+--- 4683,4692 ----
+           {
+               if (round)
+               {
+!                  if (escaped)
+!                      str = vim_strsave_escaped(str, (char_u *)" \t\\.");
+!                  else
+!                      str = vim_strsave(str);
+                   (*file)[count] = str;
+  #ifdef FEAT_MENU
+                   if (func == get_menu_names && str != NULL)
+*** ../mercurial/vim73/src/proto/ex_cmds2.pro  2010-05-15 21:22:11.000000000 +0200
+--- src/proto/ex_cmds2.pro     2011-05-19 17:53:52.000000000 +0200
+***************
+*** 83,87 ****
+--- 83,89 ----
+  char_u *get_mess_lang __ARGS((void));
+  void set_lang_var __ARGS((void));
+  void ex_language __ARGS((exarg_T *eap));
++ void free_locales __ARGS((void));
+  char_u *get_lang_arg __ARGS((expand_T *xp, int idx));
++ char_u *get_locales __ARGS((expand_T *xp, int idx));
+  /* vim: set ft=c : */
+*** ../mercurial/vim73/src/proto/ex_getln.pro  2010-08-16 21:23:30.000000000 +0200
+--- src/proto/ex_getln.pro     2011-05-19 17:54:00.000000000 +0200
+***************
+*** 31,37 ****
+  char_u *addstar __ARGS((char_u *fname, int len, int context));
+  void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
+  int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
+! int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
+  char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options));
+  void init_history __ARGS((void));
+  int get_histtype __ARGS((char_u *name));
+--- 31,37 ----
+  char_u *addstar __ARGS((char_u *fname, int len, int context));
+  void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
+  int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
+! int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int)), int escaped));
+  char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options));
+  void init_history __ARGS((void));
+  int get_histtype __ARGS((char_u *name));
+*** ../mercurial/vim73/src/vim.h       2011-05-19 17:25:36.000000000 +0200
+--- src/vim.h  2011-05-19 17:52:02.000000000 +0200
+***************
+*** 779,784 ****
+--- 779,785 ----
+  #define EXPAND_FILETYPE              37
+  #define EXPAND_FILES_IN_PATH 38
+  #define EXPAND_OWNSYNTAX     39
++ #define EXPAND_LOCALES               40
+  
+  /* Values for exmode_active (0 is no exmode) */
+  #define EXMODE_NORMAL                1
+*** ../vim-7.3.197/src/version.c       2011-05-19 17:42:54.000000000 +0200
+--- src/version.c      2011-05-19 18:24:58.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     198,
+  /**/
+
+-- 
+The primary purpose of the DATA statement is to give names to constants;
+instead of referring to pi as 3.141592653589793 at every appearance, the
+variable PI can be given that value with a DATA statement and used instead
+of the longer form of the constant.  This also simplifies modifying the
+program, should the value of pi change.
+       -- FORTRAN manual for Xerox Computers
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.199.patch0 b/vim/patches/vim-7.3.199.patch0
new file mode 100644 (file)
index 0000000..8bdd97a
--- /dev/null
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.199
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.199
+Problem:    MS-Windows: Compilation problem of OLE with MingW compiler.
+Solution:   Put #ifdef around declarations. (Guopeng Wen)
+Files:     src/if_ole.h
+
+
+*** ../mercurial/vim73/src/if_ole.h    2010-05-15 21:22:11.000000000 +0200
+--- src/if_ole.h       2011-05-25 12:05:50.000000000 +0200
+***************
+*** 46,53 ****
+  /* header files for imported files */
+  #include "oaidl.h"
+  
+! void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
+! void __RPC_USER MIDL_user_free( void __RPC_FAR * );
+  
+  #ifndef __IVim_INTERFACE_DEFINED__
+  #define __IVim_INTERFACE_DEFINED__
+--- 46,56 ----
+  /* header files for imported files */
+  #include "oaidl.h"
+  
+! #ifndef __MIDL_user_allocate_free_DEFINED__
+! #define __MIDL_user_allocate_free_DEFINED__
+!     void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
+!     void __RPC_USER MIDL_user_free( void __RPC_FAR * );
+! #endif
+  
+  #ifndef __IVim_INTERFACE_DEFINED__
+  #define __IVim_INTERFACE_DEFINED__
+*** ../vim-7.3.198/src/version.c       2011-05-19 18:26:34.000000000 +0200
+--- src/version.c      2011-05-25 12:08:54.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     199,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+104. When people ask about the Presidential Election you ask "Which country?"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.200.patch0 b/vim/patches/vim-7.3.200.patch0
new file mode 100644 (file)
index 0000000..6019471
--- /dev/null
@@ -0,0 +1,75 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.200
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.200 (after 7.3.198)
+Problem:    CTRL-D doesn't complete :lang.
+Solution:   Add the missing part of the change. (Dominique Pelle)
+Files:     src/ex_docmd.c
+
+
+*** ../mercurial/vim73/src/ex_docmd.c  2011-05-19 14:50:49.000000000 +0200
+--- src/ex_docmd.c     2011-05-25 12:45:02.000000000 +0200
+***************
+*** 3861,3873 ****
+  #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+       && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+       case CMD_language:
+!          if (*skiptowhite(arg) == NUL)
+           {
+               xp->xp_context = EXPAND_LANGUAGE;
+               xp->xp_pattern = arg;
+           }
+           else
+!              xp->xp_context = EXPAND_NOTHING;
+           break;
+  #endif
+  #if defined(FEAT_PROFILE)
+--- 3861,3884 ----
+  #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+       && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+       case CMD_language:
+!          p = skiptowhite(arg);
+!          if (*p == NUL)
+           {
+               xp->xp_context = EXPAND_LANGUAGE;
+               xp->xp_pattern = arg;
+           }
+           else
+!          {
+!              if ( STRNCMP(arg, "messages", p - arg) == 0
+!                || STRNCMP(arg, "ctype", p - arg) == 0
+!                || STRNCMP(arg, "time", p - arg) == 0)
+!              {
+!                  xp->xp_context = EXPAND_LOCALES;
+!                  xp->xp_pattern = skipwhite(p);
+!              }
+!              else
+!                  xp->xp_context = EXPAND_NOTHING;
+!          }
+           break;
+  #endif
+  #if defined(FEAT_PROFILE)
+*** ../vim-7.3.199/src/version.c       2011-05-25 12:09:46.000000000 +0200
+--- src/version.c      2011-05-25 12:49:49.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     200,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+105. When someone asks you for your address, you tell them your URL.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.201.patch0 b/vim/patches/vim-7.3.201.patch0
new file mode 100644 (file)
index 0000000..0481afd
--- /dev/null
@@ -0,0 +1,124 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.201
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.201 (after 7.3.195)
+Problem:    "} else" still causes following lines to be indented too much.
+Solution:   Better detection for the "else" block. (Lech Lorens)
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../mercurial/vim73/src/misc1.c     2011-05-19 16:35:05.000000000 +0200
+--- src/misc1.c        2011-05-25 13:29:45.000000000 +0200
+***************
+*** 7541,7557 ****
+  
+                       /*
+                        * When searching for a terminated line, don't use the
+!                       * one between the "if" and the "else".
+                        * Need to use the scope of this "else".  XXX
+                        * If whilelevel != 0 continue looking for a "do {".
+                        */
+!                      if (cin_iselse(l)
+!                              && whilelevel == 0
+!                              && ((trypos = find_start_brace(ind_maxcomment))
+!                                                                  == NULL
+                                   || find_match(LOOKFOR_IF, trypos->lnum,
+!                                      ind_maxparen, ind_maxcomment) == FAIL))
+!                          break;
+                   }
+  
+                   /*
+--- 7541,7565 ----
+  
+                       /*
+                        * When searching for a terminated line, don't use the
+!                       * one between the "if" and the matching "else".
+                        * Need to use the scope of this "else".  XXX
+                        * If whilelevel != 0 continue looking for a "do {".
+                        */
+!                      if (cin_iselse(l) && whilelevel == 0)
+!                      {
+!                          /* If we're looking at "} else", let's make sure we
+!                           * find the opening brace of the enclosing scope,
+!                           * not the one from "if () {". */
+!                          if (*l == '}')
+!                              curwin->w_cursor.col =
+!                                                 (l - ml_get_curline()) + 1;
+! 
+!                          if ((trypos = find_start_brace(ind_maxcomment))
+!                                                                     == NULL
+                                   || find_match(LOOKFOR_IF, trypos->lnum,
+!                                      ind_maxparen, ind_maxcomment) == FAIL)
+!                              break;
+!                      }
+                   }
+  
+                   /*
+*** ../mercurial/vim73/src/testdir/test3.in    2011-05-19 16:35:05.000000000 +0200
+--- src/testdir/test3.in       2011-05-25 13:23:51.000000000 +0200
+***************
+*** 1413,1418 ****
+--- 1413,1433 ----
+  }
+  
+  STARTTEST
++ :set cino&
++ 2kdd=][
++ ENDTEST
++ 
++ void func(void)
++ {
++      for (int i = 0; i < 10; ++i)
++              if (i & 1) {
++                      foo(1);
++              } else
++                      foo(0);
++ baz();
++ }
++ 
++ STARTTEST
+  :g/^STARTTEST/.,/^ENDTEST/d
+  :1;/start of AUTO/,$wq! test.out
+  ENDTEST
+*** ../mercurial/vim73/src/testdir/test3.ok    2011-05-19 16:35:05.000000000 +0200
+--- src/testdir/test3.ok       2011-05-25 13:23:51.000000000 +0200
+***************
+*** 1262,1264 ****
+--- 1262,1275 ----
+       foo();
+  }
+  
++ 
++ void func(void)
++ {
++      for (int i = 0; i < 10; ++i)
++              if (i & 1) {
++                      foo(1);
++              } else
++                      foo(0);
++      baz();
++ }
++ 
+*** ../vim-7.3.200/src/version.c       2011-05-25 12:51:17.000000000 +0200
+--- src/version.c      2011-05-25 13:33:16.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     201,
+  /**/
+
+-- 
+Laughing helps. It's like jogging on the inside.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.202.patch0 b/vim/patches/vim-7.3.202.patch0
new file mode 100644 (file)
index 0000000..1289e08
--- /dev/null
@@ -0,0 +1,868 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.202
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.202
+Problem:    Cannot influence the indent inside a namespace.
+Solution:   Add the "N" 'cino' parameter. (Konstantin Lepa)
+Files:      runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
+            src/testdir/test3.ok
+
+
+*** ../mercurial/vim73/runtime/doc/indent.txt  2011-04-28 19:01:26.000000000 +0200
+--- runtime/doc/indent.txt     2011-05-25 14:35:37.000000000 +0200
+***************
+*** 128,140 ****
+  used CTRL-T or CTRL-D.
+  
+                                               *cinoptions-values*
+! The 'cinoptions' option sets how Vim performs indentation.  In the list below,
+  "N" represents a number of your choice (the number can be negative).  When
+  there is an 's' after the number, Vim multiplies the number by 'shiftwidth':
+  "1s" is 'shiftwidth', "2s" is two times 'shiftwidth', etc.  You can use a
+! decimal point, too: "-0.5s" is minus half a 'shiftwidth'.  The examples below
+! assume a 'shiftwidth' of 4.
+! 
+       >N    Amount added for "normal" indent.  Used after a line that should
+             increase the indent (lines starting with "if", an opening brace,
+             etc.).  (default 'shiftwidth').
+--- 128,147 ----
+  used CTRL-T or CTRL-D.
+  
+                                               *cinoptions-values*
+! The 'cinoptions' option sets how Vim performs indentation.  The value after
+! the option character can be one of these (N is any number):
+!      N       indent N spaces
+!      -N      indent N spaces to the left
+!      Ns      N times 'shiftwidth spaces
+!      -Ns     N times 'shiftwidth spaces to the left
+! 
+! In the list below,
+  "N" represents a number of your choice (the number can be negative).  When
+  there is an 's' after the number, Vim multiplies the number by 'shiftwidth':
+  "1s" is 'shiftwidth', "2s" is two times 'shiftwidth', etc.  You can use a
+! decimal point, too: "-0.5s" is minus half a 'shiftwidth'.
+! The examples below assume a 'shiftwidth' of 4.
+!                                                      *cino->*
+       >N    Amount added for "normal" indent.  Used after a line that should
+             increase the indent (lines starting with "if", an opening brace,
+             etc.).  (default 'shiftwidth').
+***************
+*** 145,150 ****
+--- 152,158 ----
+                     foo;              foo;                      foo;
+                 }                   }                   }
+  <
++                                                      *cino-e*
+       eN    Add N to the prevailing indent inside a set of braces if the
+             opening brace at the End of the line (more precise: is not the
+             first character in a line).  This is useful if you want a
+***************
+*** 160,165 ****
+--- 168,174 ----
+                     bar;                bar;                bar;
+                 }                   }                   }
+  <
++                                                      *cino-n*
+       nN    Add N to the prevailing indent for a statement after an "if",
+             "while", etc., if it is NOT inside a set of braces.  This is
+             useful if you want a different indent when there is no '{'
+***************
+*** 174,179 ****
+--- 183,189 ----
+                     bar;                bar;                bar;
+                 }                   }                   }
+  <
++                                                      *cino-f*
+       fN    Place the first opening brace of a function or other block in
+             column N.  This applies only for an opening brace that is not
+             inside other braces and is at the start of the line.  What comes
+***************
+*** 184,189 ****
+--- 194,200 ----
+                 {                     {                     {
+                     int foo;              int foo;              int foo;
+  <
++                                                      *cino-{*
+       {N    Place opening braces N characters from the prevailing indent.
+             This applies only for opening braces that are inside other
+             braces.  (default 0).
+***************
+*** 193,198 ****
+--- 204,210 ----
+                 {                     {                     {
+                     foo;                foo;                foo;
+  <
++                                                      *cino-}*
+       }N    Place closing braces N characters from the matching opening
+             brace.  (default 0).
+  
+***************
+*** 202,207 ****
+--- 214,220 ----
+                     foo;                foo;                foo;
+                 }                   }                     }
+  <
++                                                      *cino-^*
+       ^N    Add N to the prevailing indent inside a set of braces if the
+             opening brace is in column 0.  This can specify a different
+             indent for whole of a function (some may like to set it to a
+***************
+*** 216,221 ****
+--- 229,235 ----
+                     }                 }                 }
+                 }                   }                   }
+  <
++                                                      *cino-L*
+       LN    Controls placement of jump labels. If N is negative, the label
+             will be placed at column 1. If N is non-negative, the indent of
+             the label will be the prevailing indent minus N.  (default -1).
+***************
+*** 229,234 ****
+--- 243,249 ----
+                     }                   }                   }
+                 }                   }                   }
+  <
++                                                      *cino-:*
+       :N    Place case labels N characters from the indent of the switch().
+             (default 'shiftwidth').
+  
+***************
+*** 240,245 ****
+--- 255,261 ----
+                     default:        default:
+                 }                   }
+  <
++                                                      *cino-=*
+       =N    Place statements occurring after a case label N characters from
+             the indent of the label.  (default 'shiftwidth').
+  
+***************
+*** 247,252 ****
+--- 263,269 ----
+                  case 11:             case 11:  a = a + 1;
+                      a = a + 1;                 b = b + 1;
+  <
++                                                      *cino-l*
+       lN    If N != 0 Vim will align with a case label instead of the
+             statement after it in the same line.
+  
+***************
+*** 256,261 ****
+--- 273,279 ----
+                                   break;            break;
+                               }                 }
+  <
++                                                      *cino-b*
+       bN    If N != 0 Vim will align a final "break" with the case label,
+             so that case..break looks like a sort of block.  (default: 0).
+             When using 1, consider adding "0=break" to 'cinkeys'.
+***************
+*** 272,277 ****
+--- 290,296 ----
+                         break;          break;
+                 }                   }
+  <
++                                                      *cino-g*
+       gN    Place C++ scope declarations N characters from the indent of the
+             block they are in.  (default 'shiftwidth').  A scope declaration
+             can be "public:", "protected:" or "private:".
+***************
+*** 283,288 ****
+--- 302,308 ----
+                     private:        private:
+                 }                   }
+  <
++                                                      *cino-h*
+       hN    Place statements occurring after a C++ scope declaration N
+             characters from the indent of the label.  (default
+             'shiftwidth').
+***************
+*** 291,296 ****
+--- 311,331 ----
+                  public:              public:   a = a + 1;
+                      a = a + 1;                 b = b + 1;
+  <
++                                                      *cino-N*
++      NN    Indent inside C++ namespace N characters extra compared to a
++            normal block.  (default 0).
++ 
++              cino=                      cino=N-s >
++                namespace {                namespace {
++                    void function();       void function();
++                }                          }
++ 
++                namespace my               namespace my
++                {                          {
++                    void function();       void function();
++                }                          }
++ <
++                                                      *cino-p*
+       pN    Parameter declarations for K&R-style function declarations will
+             be indented N characters from the margin.  (default
+             'shiftwidth').
+***************
+*** 300,305 ****
+--- 335,341 ----
+                     int a;          int a;                      int a;
+                     char b;         char b;                     char b;
+  <
++                                                      *cino-t*
+       tN    Indent a function return type declaration N characters from the
+             margin.  (default 'shiftwidth').
+  
+***************
+*** 307,312 ****
+--- 343,349 ----
+                     int             int                        int
+                 func()              func()              func()
+  <
++                                                      *cino-i*
+       iN    Indent C++ base class declarations and constructor
+             initializations, if they start in a new line (otherwise they
+             are aligned at the right side of the ':').
+***************
+*** 330,335 ****
+--- 368,374 ----
+                 a = b + 9 *               a = b + 9 *
+                     c;                              c;
+  <
++                                                      *cino-c*
+       cN    Indent comment lines after the comment opener, when there is no
+             other text with which to align, N characters from the comment
+             opener.  (default 3).  See also |format-comments|.
+***************
+*** 339,344 ****
+--- 378,384 ----
+                    text.                       text.
+                  */                        */
+  <
++                                                      *cino-C*
+       CN    When N is non-zero, indent comment lines by the amount specified
+             with the c flag above even if there is other text behind the
+             comment opener.  (default 0).
+***************
+*** 349,360 ****
+--- 389,402 ----
+                 ********/                 ********/
+  <          (Example uses ":set comments& comments-=s1:/* comments^=s0:/*")
+  
++                                                      *cino-/*
+       /N    Indent comment lines N characters extra.  (default 0).
+               cino=                     cino=/4 >
+                 a = b;                    a = b;
+                 /* comment */                 /* comment */
+                 c = d;                    c = d;
+  <
++                                                      *cino-(*
+       (N    When in unclosed parentheses, indent N characters from the line
+             with the unclosed parentheses.  Add a 'shiftwidth' for every
+             unclosed parentheses.  When N is 0 or the unclosed parentheses
+***************
+*** 370,375 ****
+--- 412,418 ----
+                         (c2 || c3))           (c2 || c3))
+                    {                         {
+  <
++                                                      *cino-u*
+       uN    Same as (N, but for one level deeper.  (default 'shiftwidth').
+  
+               cino=                     cino=u2 >
+***************
+*** 377,382 ****
+--- 420,426 ----
+                         && (c22345                && (c22345
+                             || c3))                 || c3))
+  <
++                                                      *cino-U*
+       UN    When N is non-zero, do not ignore the indenting specified by
+             ( or u in case that the unclosed parentheses is the first
+             non-white character in its line.  (default 0).
+***************
+*** 388,393 ****
+--- 432,438 ----
+                      c3                           c3
+                     ) && c4;                  ) && c4;
+  <
++                                                      *cino-2*
+       wN    When in unclosed parentheses and N is non-zero and either
+             using "(0" or "u0", respectively, or using "U0" and the unclosed
+             parentheses is the first non-white character in its line, line
+***************
+*** 400,405 ****
+--- 445,451 ----
+                               || c3))             || c3))
+                     foo;                      foo;
+  <
++                                                      *cino-W*
+       WN    When in unclosed parentheses and N is non-zero and either
+             using "(0" or "u0", respectively and the unclosed parentheses is
+             the last non-white character in its line and it is not the
+***************
+*** 414,419 ****
+--- 460,466 ----
+                 a_short_line(argument,    a_short_line(argument,
+                              argument);                argument);
+  <
++                                                      *cino-m*
+       mN    When N is non-zero, line up a line starting with a closing
+             parentheses with the first character of the line with the
+             matching opening parentheses.  (default 0).
+***************
+*** 428,433 ****
+--- 475,481 ----
+                    )                      )
+                     foo;                      foo;
+  <
++                                                      *cino-M*
+       MN    When N is non-zero, line up a line starting with a closing
+             parentheses with the first character of the previous line.
+             (default 0).
+***************
+*** 437,443 ****
+                        cond2                     cond2
+                    )                             )
+  <
+!                                      *java-cinoptions* *java-indenting*
+       jN    Indent java anonymous classes correctly.  The value 'N' is
+             currently unused but must be non-zero (e.g. 'j1').  'j1' will
+             indent for example the following code snippet correctly: >
+--- 485,491 ----
+                        cond2                     cond2
+                    )                             )
+  <
+!                              *java-cinoptions* *java-indenting* *cino-j*
+       jN    Indent java anonymous classes correctly.  The value 'N' is
+             currently unused but must be non-zero (e.g. 'j1').  'j1' will
+             indent for example the following code snippet correctly: >
+***************
+*** 448,454 ****
+                   }
+               });
+  <
+!                              *javascript-cinoptions* *javascript-indenting*
+       JN    Indent JavaScript object declarations correctly by not confusing
+             them with labels.  The value 'N' is currently unused but must be 
+             non-zero (e.g. 'J1'). >
+--- 496,502 ----
+                   }
+               });
+  <
+!                      *javascript-cinoptions* *javascript-indenting* *cino-J*
+       JN    Indent JavaScript object declarations correctly by not confusing
+             them with labels.  The value 'N' is currently unused but must be 
+             non-zero (e.g. 'J1'). >
+***************
+*** 483,489 ****
+  
+  
+  The defaults, spelled out in full, are:
+!      cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,
+                       c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
+  
+  Vim puts a line in column 1 if:
+--- 534,540 ----
+  
+  
+  The defaults, spelled out in full, are:
+!      cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
+                       c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
+  
+  Vim puts a line in column 1 if:
+*** ../mercurial/vim73/src/misc1.c     2011-05-25 13:33:59.000000000 +0200
+--- src/misc1.c        2011-05-25 14:57:31.000000000 +0200
+***************
+*** 4959,4964 ****
+--- 4959,4965 ----
+  static int   corr_ind_maxparen __ARGS((int ind_maxparen, pos_T *startpos));
+  static int   find_last_paren __ARGS((char_u *l, int start, int end));
+  static int   find_match __ARGS((int lookfor, linenr_T ourscope, int ind_maxparen, int ind_maxcomment));
++ static int   cin_is_cpp_namespace __ARGS((char_u *));
+  
+  static int   ind_hash_comment = 0;   /* # starts a comment */
+  
+***************
+*** 5221,5226 ****
+--- 5222,5271 ----
+      return (*(s = cin_skipcomment(s + i)) == ':' && s[1] != ':');
+  }
+  
++ /* Maximum number of lines to search back for a "namespace" line. */
++ #define FIND_NAMESPACE_LIM 20
++ 
++ /*
++  * Recognize a "namespace" scope declaration.
++  */
++     static int
++ cin_is_cpp_namespace(s)
++     char_u   *s;
++ {
++     char_u   *p;
++     int              has_name = FALSE;
++ 
++     s = cin_skipcomment(s);
++     if (STRNCMP(s, "namespace", 9) == 0 && (s[9] == NUL || !vim_iswordc(s[9])))
++     {
++      p = cin_skipcomment(skipwhite(s + 9));
++      while (*p != NUL)
++      {
++          if (vim_iswhite(*p))
++          {
++              has_name = TRUE; /* found end of a name */
++              p = cin_skipcomment(skipwhite(p));
++          }
++          else if (*p == '{')
++          {
++              break;
++          }
++          else if (vim_iswordc(*p))
++          {
++              if (has_name)
++                  return FALSE; /* word character after skipping past name */
++              ++p;
++          }
++          else
++          {
++              return FALSE;
++          }
++      }
++      return TRUE;
++     }
++     return FALSE;
++ }
++ 
+  /*
+   * Return a pointer to the first non-empty non-comment character after a ':'.
+   * Return NULL if not found.
+***************
+*** 6296,6301 ****
+--- 6341,6351 ----
+       */
+      int ind_keep_case_label = 0;
+  
++     /*
++      * handle C++ namespace
++      */
++     int ind_cpp_namespace = 0;
++ 
+      pos_T    cur_curpos;
+      int              amount;
+      int              scope_amount;
+***************
+*** 6336,6341 ****
+--- 6386,6392 ----
+      int              n;
+      int              iscase;
+      int              lookfor_break;
++     int              lookfor_cpp_namespace = FALSE;
+      int              cont_amount = 0;    /* amount for continuation line */
+      int              original_line_islabel;
+  
+***************
+*** 6409,6414 ****
+--- 6460,6466 ----
+           case 'J': ind_js = n; break;
+           case 'l': ind_keep_case_label = n; break;
+           case '#': ind_hash_comment = n; break;
++          case 'N': ind_cpp_namespace = n; break;
+       }
+       if (*options == ',')
+           ++options;
+***************
+*** 6976,6986 ****
+--- 7028,7051 ----
+           if (start_brace == BRACE_IN_COL0)       /* '{' is in column 0 */
+           {
+               amount = ind_open_left_imag;
++              lookfor_cpp_namespace = TRUE;
++          }
++          else if (start_brace == BRACE_AT_START &&
++                  lookfor_cpp_namespace)        /* '{' is at start */
++          {
++ 
++              lookfor_cpp_namespace = TRUE;
+           }
+           else
+           {
+               if (start_brace == BRACE_AT_END)    /* '{' is at end of line */
++              {
+                   amount += ind_open_imag;
++ 
++                  l = skipwhite(ml_get_curline());
++                  if (cin_is_cpp_namespace(l))
++                      amount += ind_cpp_namespace;
++              }
+               else
+               {
+                   /* Compensate for adding ind_open_extra later. */
+***************
+*** 7151,7156 ****
+--- 7216,7261 ----
+                       else
+                           amount += ind_continuation;
+                   }
++                  else if (lookfor_cpp_namespace)
++                  {
++                      if (curwin->w_cursor.lnum == ourscope)
++                          continue;
++ 
++                      if (curwin->w_cursor.lnum == 0
++                              || curwin->w_cursor.lnum
++                                            < ourscope - FIND_NAMESPACE_LIM)
++                          break;
++ 
++                      l = ml_get_curline();
++ 
++                      /*
++                       * If we're in a comment now, skip to the start of the
++                       * comment.
++                       */
++                      trypos = find_start_comment(ind_maxcomment);
++                      if (trypos != NULL)
++                      {
++                          curwin->w_cursor.lnum = trypos->lnum + 1;
++                          curwin->w_cursor.col = 0;
++                          continue;
++                      }
++ 
++                      /*
++                       * Skip preprocessor directives and blank lines.
++                       */
++                      if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
++                          continue;
++ 
++                      if (cin_is_cpp_namespace(l))
++                      {
++                          amount += ind_cpp_namespace;
++                          break;
++                      }
++ 
++                      if (cin_nocode(l))
++                          continue;
++ 
++                  }
+                   else if (lookfor != LOOKFOR_TERM
+                                         && lookfor != LOOKFOR_CPP_BASECLASS)
+                   {
+*** ../mercurial/vim73/src/testdir/test3.in    2011-05-25 13:33:59.000000000 +0200
+--- src/testdir/test3.in       2011-05-25 14:47:31.000000000 +0200
+***************
+*** 799,804 ****
+--- 799,867 ----
+       df */
+               hello
+  }
++ 
++ /* valid namespaces with normal indent */
++ namespace
++ {
++ {
++   111111111111;
++ }
++ }
++ namespace /* test */
++ {
++   11111111111111111;
++ }
++ namespace // test
++ {
++   111111111111111111;
++ }
++ namespace
++ {
++   111111111111111111;
++ }
++ namespace test
++ {
++   111111111111111111;
++ }
++ namespace{
++   111111111111111111;
++ }
++ namespace test{
++   111111111111111111;
++ }
++ namespace {
++   111111111111111111;
++ }
++ namespace test {
++   111111111111111111;
++ namespace test2 {
++   22222222222222222;
++ }
++ }
++ 
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++   111111111111111111111;
++ }
++ namespace11111111111 {
++   111111111111;
++ }
++ namespace() {
++   1111111111111;
++ }
++ namespace()
++ {
++   111111111111111111;
++ }
++ namespace test test2
++ {
++   1111111111111111111;
++ }
++ namespace111111111
++ {
++   111111111111111111;
++ }
++ 
+  /* end of AUTO */
+  
+  STARTTEST
+***************
+*** 1428,1433 ****
+--- 1491,1566 ----
+  }
+  
+  STARTTEST
++ :set cino=N-s
++ /namespaces
++ =/^NAMESPACEEND
++ ENDTEST
++ 
++ /* valid namespaces with normal indent */
++ namespace
++ {
++    {
++      111111111111;
++ }
++ }
++ namespace /* test */
++ {
++   11111111111111111;
++ }
++ namespace // test
++ {
++   111111111111111111;
++ }
++ namespace
++ {
++   111111111111111111;
++ }
++ namespace test
++ {
++   111111111111111111;
++ }
++ namespace{
++   111111111111111111;
++ }
++ namespace test{
++   111111111111111111;
++ }
++ namespace {
++   111111111111111111;
++ }
++ namespace test {
++   111111111111111111;
++ namespace test2 {
++   22222222222222222;
++ }
++ }
++ 
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++   111111111111111111111;
++ }
++ namespace11111111111 {
++   111111111111;
++ }
++ namespace() {
++   1111111111111;
++ }
++ namespace()
++ {
++   111111111111111111;
++ }
++ namespace test test2
++ {
++   1111111111111111111;
++ }
++ namespace111111111
++ {
++   111111111111111111;
++ }
++ NAMESPACEEND
++ 
++ 
++ STARTTEST
+  :g/^STARTTEST/.,/^ENDTEST/d
+  :1;/start of AUTO/,$wq! test.out
+  ENDTEST
+*** ../mercurial/vim73/src/testdir/test3.ok    2011-05-25 13:33:59.000000000 +0200
+--- src/testdir/test3.ok       2011-05-25 14:48:02.000000000 +0200
+***************
+*** 787,792 ****
+--- 787,855 ----
+          df */
+       hello
+  }
++ 
++ /* valid namespaces with normal indent */
++ namespace
++ {
++      {
++              111111111111;
++      }
++ }
++ namespace /* test */
++ {
++      11111111111111111;
++ }
++ namespace // test
++ {
++      111111111111111111;
++ }
++ namespace
++ {
++      111111111111111111;
++ }
++ namespace test
++ {
++      111111111111111111;
++ }
++ namespace{
++      111111111111111111;
++ }
++ namespace test{
++      111111111111111111;
++ }
++ namespace {
++      111111111111111111;
++ }
++ namespace test {
++      111111111111111111;
++      namespace test2 {
++              22222222222222222;
++      }
++ }
++ 
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++      111111111111111111111;
++ }
++ namespace11111111111 {
++      111111111111;
++ }
++ namespace() {
++      1111111111111;
++ }
++ namespace()
++ {
++      111111111111111111;
++ }
++ namespace test test2
++ {
++      1111111111111111111;
++ }
++ namespace111111111
++ {
++      111111111111111111;
++ }
++ 
+  /* end of AUTO */
+  
+  
+***************
+*** 1273,1275 ****
+--- 1336,1403 ----
+       baz();
+  }
+  
++ 
++ /* valid namespaces with normal indent */
++ namespace
++ {
++ {
++      111111111111;
++ }
++ }
++ namespace /* test */
++ {
++ 11111111111111111;
++ }
++ namespace // test
++ {
++ 111111111111111111;
++ }
++ namespace
++ {
++ 111111111111111111;
++ }
++ namespace test
++ {
++ 111111111111111111;
++ }
++ namespace{
++ 111111111111111111;
++ }
++ namespace test{
++ 111111111111111111;
++ }
++ namespace {
++ 111111111111111111;
++ }
++ namespace test {
++ 111111111111111111;
++ namespace test2 {
++ 22222222222222222;
++ }
++ }
++ 
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++      111111111111111111111;
++ }
++ namespace11111111111 {
++      111111111111;
++ }
++ namespace() {
++      1111111111111;
++ }
++ namespace()
++ {
++      111111111111111111;
++ }
++ namespace test test2
++ {
++      1111111111111111111;
++ }
++ namespace111111111
++ {
++      111111111111111111;
++ }
++ NAMESPACEEND
++ 
++ 
+*** ../vim-7.3.201/src/version.c       2011-05-25 13:33:59.000000000 +0200
+--- src/version.c      2011-05-25 15:14:20.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     202,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+107. When using your phone you forget that you don't have to use your
+     keyboard.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.203.patch0 b/vim/patches/vim-7.3.203.patch0
new file mode 100644 (file)
index 0000000..62c2989
--- /dev/null
@@ -0,0 +1,102 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.203
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.203
+Problem:    MS-Windows: Can't run an external command without a console window.
+Solution:   Support ":!start /b cmd". (Xaizek)
+Files:     runtime/doc/os_win32.txt, src/os_win32.c
+
+
+*** ../mercurial/vim73/src/os_win32.c  2011-05-05 18:31:54.000000000 +0200
+--- src/os_win32.c     2011-05-25 16:45:31.000000000 +0200
+***************
+*** 3401,3406 ****
+--- 3401,3407 ----
+           {
+               STARTUPINFO             si;
+               PROCESS_INFORMATION     pi;
++              DWORD                   flags = CREATE_NEW_CONSOLE;
+  
+               si.cb = sizeof(si);
+               si.lpReserved = NULL;
+***************
+*** 3418,3423 ****
+--- 3419,3440 ----
+                   si.dwFlags = STARTF_USESHOWWINDOW;
+                   si.wShowWindow = SW_SHOWMINNOACTIVE;
+               }
++              else if ((STRNICMP(cmdbase, "/b", 2) == 0)
++                      && vim_iswhite(cmdbase[2]))
++              {
++                  cmdbase = skipwhite(cmdbase + 2);
++                  flags = CREATE_NO_WINDOW;
++                  si.dwFlags = STARTF_USESTDHANDLES;
++                  si.hStdInput = CreateFile("\\\\.\\NUL",     // File name
++                      GENERIC_READ,                           // Access flags
++                      0,                                      // Share flags
++                      NULL,                                   // Security att.
++                      OPEN_EXISTING,                          // Open flags
++                      FILE_ATTRIBUTE_NORMAL,                  // File att.
++                      NULL);                                  // Temp file
++                  si.hStdOutput = si.hStdInput;
++                  si.hStdError = si.hStdInput;
++              }
+  
+               /* When the command is in double quotes, but 'shellxquote' is
+                * empty, keep the double quotes around the command.
+***************
+*** 3445,3451 ****
+                       NULL,                   // Process security attributes
+                       NULL,                   // Thread security attributes
+                       FALSE,                  // Inherit handles
+!                      CREATE_NEW_CONSOLE,     // Creation flags
+                       NULL,                   // Environment
+                       NULL,                   // Current directory
+                       &si,                    // Startup information
+--- 3462,3468 ----
+                       NULL,                   // Process security attributes
+                       NULL,                   // Thread security attributes
+                       FALSE,                  // Inherit handles
+!                      flags,                  // Creation flags
+                       NULL,                   // Environment
+                       NULL,                   // Current directory
+                       &si,                    // Startup information
+***************
+*** 3458,3463 ****
+--- 3475,3485 ----
+                   EMSG(_("E371: Command not found"));
+  #endif
+               }
++              if (si.hStdInput != NULL)
++              {
++                  /* Close the handle to \\.\NUL */
++                  CloseHandle(si.hStdInput);
++              }
+               /* Close the handles to the subprocess, so that it goes away */
+               CloseHandle(pi.hThread);
+               CloseHandle(pi.hProcess);
+*** ../vim-7.3.202/src/version.c       2011-05-25 15:16:06.000000000 +0200
+--- src/version.c      2011-05-25 17:05:59.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     203,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+108. While reading a magazine, you look for the Zoom icon for a better
+     look at a photograph.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.204.patch0 b/vim/patches/vim-7.3.204.patch0
new file mode 100644 (file)
index 0000000..b2b6360
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.204
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.204 (after 7.3.201)
+Problem:    Compiler warning.
+Solution:   Add type cast. (Mike Williams)
+Files:     src/misc1.c
+
+
+*** ../mercurial/vim73/src/misc1.c     2011-05-25 15:16:06.000000000 +0200
+--- src/misc1.c        2011-05-25 17:25:10.000000000 +0200
+***************
+*** 7657,7663 ****
+                            * not the one from "if () {". */
+                           if (*l == '}')
+                               curwin->w_cursor.col =
+!                                                 (l - ml_get_curline()) + 1;
+  
+                           if ((trypos = find_start_brace(ind_maxcomment))
+                                                                      == NULL
+--- 7657,7663 ----
+                            * not the one from "if () {". */
+                           if (*l == '}')
+                               curwin->w_cursor.col =
+!                                        (colnr_T)(l - ml_get_curline()) + 1;
+  
+                           if ((trypos = find_start_brace(ind_maxcomment))
+                                                                      == NULL
+*** ../vim-7.3.203/src/version.c       2011-05-25 17:06:16.000000000 +0200
+--- src/version.c      2011-05-25 17:29:32.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     204,
+  /**/
+
+-- 
+In a world without walls and borders, who needs windows and gates?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.205.patch0 b/vim/patches/vim-7.3.205.patch0
new file mode 100644 (file)
index 0000000..b49a040
--- /dev/null
@@ -0,0 +1,93 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.205
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.205
+Problem:    Syntax "extend" doesn't work correctly.
+Solution:   Avoid calling check_state_ends() recursively (Ben Schmidt)
+Files:     src/syntax.c
+
+
+*** ../mercurial/vim73/src/syntax.c    2011-05-19 12:14:03.000000000 +0200
+--- src/syntax.c       2011-05-25 17:47:46.000000000 +0200
+***************
+*** 990,996 ****
+--- 990,999 ----
+       * previous line and regions that have "keepend".
+       */
+      if (current_state.ga_len > 0)
++     {
+       syn_update_ends(TRUE);
++      check_state_ends();
++     }
+  
+      next_match_idx = -1;
+      ++current_line_id;
+***************
+*** 1064,1070 ****
+       }
+      }
+      check_keepend();
+-     check_state_ends();
+  }
+  
+  /****************************************
+--- 1067,1072 ----
+***************
+*** 2533,2539 ****
+  check_state_ends()
+  {
+      stateitem_T      *cur_si;
+!     int              had_extend = FALSE;
+  
+      cur_si = &CUR_STATE(current_state.ga_len - 1);
+      for (;;)
+--- 2535,2541 ----
+  check_state_ends()
+  {
+      stateitem_T      *cur_si;
+!     int              had_extend;
+  
+      cur_si = &CUR_STATE(current_state.ga_len - 1);
+      for (;;)
+***************
+*** 2586,2593 ****
+  
+               /* When the ended item has "extend", another item with
+                * "keepend" now needs to check for its end. */
+!               if (cur_si->si_flags & HL_EXTEND)
+!                   had_extend = TRUE;
+  
+               pop_current_state();
+  
+--- 2588,2594 ----
+  
+               /* When the ended item has "extend", another item with
+                * "keepend" now needs to check for its end. */
+!               had_extend = (cur_si->si_flags & HL_EXTEND);
+  
+               pop_current_state();
+  
+*** ../vim-7.3.204/src/version.c       2011-05-25 17:29:40.000000000 +0200
+--- src/version.c      2011-05-25 17:52:57.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     205,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+110. You actually volunteer to become your employer's webmaster.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.206.patch0 b/vim/patches/vim-7.3.206.patch0
new file mode 100644 (file)
index 0000000..8a91f0a
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.206
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.206
+Problem:    64bit MS-Windows compiler warning.
+Solution:   Use HandleToLong() instead of type cast. (Mike Williams)
+Files:     src/gui_w32.c
+
+
+*** ../mercurial/vim73/src/gui_w32.c   2011-01-17 20:08:04.000000000 +0100
+--- src/gui_w32.c      2011-05-25 21:14:10.000000000 +0200
+***************
+*** 1575,1581 ****
+  
+  #ifdef FEAT_EVAL
+      /* set the v:windowid variable */
+!     set_vim_var_nr(VV_WINDOWID, (long)s_hwnd);
+  #endif
+  
+  theend:
+--- 1575,1581 ----
+  
+  #ifdef FEAT_EVAL
+      /* set the v:windowid variable */
+!     set_vim_var_nr(VV_WINDOWID, HandleToLong(s_hwnd));
+  #endif
+  
+  theend:
+*** ../vim-7.3.205/src/version.c       2011-05-25 17:56:23.000000000 +0200
+--- src/version.c      2011-05-25 21:16:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     206,
+  /**/
+
+-- 
+FIXME and XXX are two common keywords used to mark broken or incomplete code
+not only since XXX as a sex reference would grab everybody's attention but
+simply due to the fact that Vim would highlight these words.
+                                       -- Hendrik Scholz
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.207.patch0 b/vim/patches/vim-7.3.207.patch0
new file mode 100644 (file)
index 0000000..95b335e
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.207
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.207
+Problem:    Can't compile with MSVC with pentium4 and 64 bit.
+Solution:   Only use SSE2 for 32 bit. (Mike Williams)
+Files:      src/Make_mvc.mak
+
+
+*** ../mercurial/vim73/src/Make_mvc.mak        2011-02-15 18:06:11.000000000 +0100
+--- src/Make_mvc.mak   2011-06-04 11:59:38.000000000 +0200
+***************
+*** 409,416 ****
+  CPUARG =
+  !endif
+  !else
+! # VC8/9 only allows specifying SSE architecture
+! !if "$(CPUNR)" == "pentium4"
+  CPUARG = /arch:SSE2
+  !endif
+  !endif
+--- 409,416 ----
+  CPUARG =
+  !endif
+  !else
+! # VC8/9/10 only allows specifying SSE architecture but only for 32bit
+! !if "$(ASSEMBLY_ARCHITECTURE)" == "x86" && "$(CPUNR)" == "pentium4"
+  CPUARG = /arch:SSE2
+  !endif
+  !endif
+*** ../vim-7.3.206/src/version.c       2011-05-25 21:18:02.000000000 +0200
+--- src/version.c      2011-06-12 20:30:30.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     207,
+  /**/
+
+-- 
+"The question of whether computers can think is just like the question
+of whether submarines can swim."      -- Edsger W. Dijkstra
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.208.patch0 b/vim/patches/vim-7.3.208.patch0
new file mode 100644 (file)
index 0000000..c5a7929
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.208
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.208
+Problem:    Early terminated if statement.
+Solution:   Remove the semicolon. (Lech Lorens)
+Files:      src/gui_mac.c
+
+
+*** ../mercurial/vim73/src/gui_mac.c   2011-01-17 20:08:04.000000000 +0100
+--- src/gui_mac.c      2011-06-06 05:35:46.000000000 +0200
+***************
+*** 1840,1846 ****
+       p.v -= gui.scrollbar_height;
+      p.v -= p.v % gui.char_height;
+      p.v += 2 * gui.border_width;
+!     if (gui.which_scrollbars[SBAR_BOTTOM]);
+       p.v += gui.scrollbar_height;
+  
+      ZoomWindowIdeal(whichWindow, thePart, &p);
+--- 1840,1846 ----
+       p.v -= gui.scrollbar_height;
+      p.v -= p.v % gui.char_height;
+      p.v += 2 * gui.border_width;
+!     if (gui.which_scrollbars[SBAR_BOTTOM])
+       p.v += gui.scrollbar_height;
+  
+      ZoomWindowIdeal(whichWindow, thePart, &p);
+*** ../vim-7.3.207/src/version.c       2011-06-12 20:31:25.000000000 +0200
+--- src/version.c      2011-06-12 20:33:00.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     208,
+  /**/
+
+-- 
+Keep America beautiful.  Swallow your beer cans.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.209.patch0 b/vim/patches/vim-7.3.209.patch0
new file mode 100644 (file)
index 0000000..afd4ab8
--- /dev/null
@@ -0,0 +1,95 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.209
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.209
+Problem:    MSVC Install instructions point to wrong batch file.
+Solution:   Add a batch file for use with MSVC 10.
+Files:      src/msvc2010.bat, src/INSTALLpc.txt, Filelist
+
+
+*** ../mercurial/vim73/src/msvc2010.bat        2011-06-12 20:35:31.000000000 +0200
+--- src/msvc2010.bat   2011-06-09 05:08:35.000000000 +0200
+***************
+*** 0 ****
+--- 1,7 ----
++ @echo off
++ rem To be used on MS-Windows for Visual C++ 2010 Express Edition
++ rem   aka Microsoft Visual Studio 10.0.
++ rem See INSTALLpc.txt for information.
++ @echo on
++ 
++ call "%VS100COMNTOOLS%%vsvars32.bat"
+*** ../mercurial/vim73/src/INSTALLpc.txt       2010-08-16 21:23:30.000000000 +0200
+--- src/INSTALLpc.txt  2011-06-08 06:47:46.000000000 +0200
+***************
+*** 28,35 ****
+  9. MS-DOS
+  
+  The currently preferred method is using the free Visual C++ Toolkit 2008
+! |msvc-2008-express|.  If you need the executable to run on Windows 98 or ME,
+! use the 2003 one |msvc-2003-toolkit|.
+  
+  
+  1. Microsoft Visual C++
+--- 28,36 ----
+  9. MS-DOS
+  
+  The currently preferred method is using the free Visual C++ Toolkit 2008
+! |msvc-2008-express|, the produced binary runs on most MS-Windows systems.  If
+! you need the executable to run on Windows 98 or ME, use the 2003 one
+! |msvc-2003-toolkit|.
+  
+  
+  1. Microsoft Visual C++
+***************
+*** 176,182 ****
+      http://www.microsoft.com/express/vc/Default.aspx
+  This includes the IDE and the debugger.
+  
+! To set the environment execute the msvc2008.bat script.  You can then build
+  Vim with Make_mvc.mak.
+  
+  
+--- 177,183 ----
+      http://www.microsoft.com/express/vc/Default.aspx
+  This includes the IDE and the debugger.
+  
+! To set the environment execute the msvc2010.bat script.  You can then build
+  Vim with Make_mvc.mak.
+  
+  
+*** ../mercurial/vim73/Filelist        2011-05-19 13:40:47.000000000 +0200
+--- Filelist   2011-06-09 05:17:25.000000000 +0200
+***************
+*** 262,267 ****
+--- 262,268 ----
+               src/bigvim.bat \
+               src/msvcsetup.bat \
+               src/msvc2008.bat \
++              src/msvc2010.bat \
+               src/dimm.idl \
+               src/dlldata.c \
+               src/dosinst.c \
+*** ../vim-7.3.208/src/version.c       2011-06-12 20:33:30.000000000 +0200
+--- src/version.c      2011-06-12 20:34:44.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     209,
+  /**/
+
+-- 
+"Hit any key to continue" is a lie.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.210.patch0 b/vim/patches/vim-7.3.210.patch0
new file mode 100644 (file)
index 0000000..f02fe6f
--- /dev/null
@@ -0,0 +1,182 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.210
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.210
+Problem:    Can't always find the file when using cscope.
+Solution:   Add the 'cscoperelative' option. (Raghavendra D Prabhu)
+Files:      runtime/doc/if_cscop.txt, runtime/doc/options.txt,
+            src/if_cscope.c, src/options.c, src/options.h
+
+
+*** ../mercurial/vim73/runtime/doc/if_cscop.txt        2010-09-30 21:38:08.000000000 +0200
+--- runtime/doc/if_cscop.txt   2011-06-12 19:54:26.000000000 +0200
+***************
+*** 271,276 ****
+--- 271,285 ----
+       :set cst
+       :set nocst
+  <
++                                                      *cscoperelative* *csre*
++ If 'cscoperelative' set, then in absence of a prefix given to cscope (prefx
++ is the argument to -P option of cscope), basename of cscope.out location
++ (usually the project root directory) will be used as the prefix to construt
++ absolute path.The default is off. Note: This option is only effective when
++ cscope (cscopeprg) is initialized without a prefix path (-P). Examples: >
++      :set csre
++      :set nocsre
++ <
+                                                       *cscopetagorder* *csto*
+  The value of 'csto' determines the order in which |:cstag| performs a search.
+  If 'csto' is set to zero, cscope database(s) are searched first, followed
+*** ../mercurial/vim73/runtime/doc/options.txt 2011-05-19 12:22:41.000000000 +0200
+--- runtime/doc/options.txt    2011-06-12 20:00:10.000000000 +0200
+***************
+*** 2209,2214 ****
+--- 2209,2224 ----
+       Specifies whether to use quickfix window to show cscope results.
+       See |cscopequickfix|.
+  
++                                              *'cscoperelative'* *'csre'*
++ 'cscoperelative' 'csre' boolean (default off)
++                      global
++                      {not available when compiled without the |+cscope|
++                      feature}
++                      {not in Vi}
++      In the absence of a prefix (-P) for cscope. setting this option enables
++      to use the basename of cscope.out path as the prefix.
++      See |cscoperelative|.
++ 
+                               *'cscopetag'* *'cst'* *'nocscopetag'* *'nocst'*
+  'cscopetag' 'cst'    boolean (default off)
+                       global
+*** ../mercurial/vim73/src/if_cscope.c 2011-05-05 16:41:19.000000000 +0200
+--- src/if_cscope.c    2011-06-12 20:25:17.000000000 +0200
+***************
+*** 2471,2512 ****
+   */
+      static char *
+  cs_resolve_file(i, name)
+!     int i;
+      char *name;
+  {
+!     char *fullname;
+!     int len;
+  
+      /*
+!      * ppath is freed when we destroy the cscope connection.
+!      * fullname is freed after cs_make_vim_style_matches, after it's been
+!      * copied into the tag buffer used by vim
+       */
+      len = (int)(strlen(name) + 2);
+      if (csinfo[i].ppath != NULL)
+       len += (int)strlen(csinfo[i].ppath);
+  
+      if ((fullname = (char *)alloc(len)) == NULL)
+       return NULL;
+  
+!     /*
+!      * note/example: this won't work if the cscope output already starts
+       * "../.." and the prefix path is also "../..".  if something like this
+!      * happens, you are screwed up and need to fix how you're using cscope.
+!      */
+!     if (csinfo[i].ppath != NULL &&
+!      (strncmp(name, csinfo[i].ppath, strlen(csinfo[i].ppath)) != 0) &&
+!      (name[0] != '/')
+  #ifdef WIN32
+!      && name[0] != '\\' && name[1] != ':'
+  #endif
+!      )
+       (void)sprintf(fullname, "%s/%s", csinfo[i].ppath, name);
+      else
+       (void)sprintf(fullname, "%s", name);
+  
+      return fullname;
+! } /* cs_resolve_file */
+  
+  
+  /*
+--- 2471,2531 ----
+   */
+      static char *
+  cs_resolve_file(i, name)
+!     int  i;
+      char *name;
+  {
+!     char     *fullname;
+!     int              len;
+!     char_u   *csdir = NULL;
+  
+      /*
+!      * Ppath is freed when we destroy the cscope connection.
+!      * Fullname is freed after cs_make_vim_style_matches, after it's been
+!      * copied into the tag buffer used by Vim.
+       */
+      len = (int)(strlen(name) + 2);
+      if (csinfo[i].ppath != NULL)
+       len += (int)strlen(csinfo[i].ppath);
++     else if (p_csre && csinfo[i].fname != NULL)
++     {
++      /* If 'cscoperelative' is set and ppath is not set, use cscope.out
++       * path in path resolution. */
++      csdir = alloc(MAXPATHL);
++      if (csdir != NULL)
++      {
++          vim_strncpy(csdir, (char_u *)csinfo[i].fname,
++                  gettail((char_u *)csinfo[i].fname) - 1 - (char_u *)csinfo[i].fname);
++          len += (int)STRLEN(csdir);
++      }
++     }
+  
+      if ((fullname = (char *)alloc(len)) == NULL)
+       return NULL;
+  
+!     /* Note/example: this won't work if the cscope output already starts
+       * "../.." and the prefix path is also "../..".  if something like this
+!      * happens, you are screwed up and need to fix how you're using cscope. */
+!     if (csinfo[i].ppath != NULL
+!          && (strncmp(name, csinfo[i].ppath, strlen(csinfo[i].ppath)) != 0)
+!          && (name[0] != '/')
+  #ifdef WIN32
+!          && name[0] != '\\' && name[1] != ':'
+  #endif
+!        )
+       (void)sprintf(fullname, "%s/%s", csinfo[i].ppath, name);
++     else if (csdir != NULL && csinfo[i].fname != NULL && STRLEN(csdir) > 0)
++     {
++      /* Check for csdir to be non empty to avoid empty path concatenated to
++       * cscope output. TODO: avoid the unnecessary alloc/free of fullname. */
++      vim_free(fullname);
++      fullname = concat_fnames(csdir, (char_u *)name, TRUE);
++     }
+      else
+       (void)sprintf(fullname, "%s", name);
+  
++     vim_free(csdir);
+      return fullname;
+! }
+  
+  
+  /*
+*** ../vim-7.3.209/src/version.c       2011-06-12 20:36:00.000000000 +0200
+--- src/version.c      2011-06-12 20:37:48.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     210,
+  /**/
+
+-- 
+Apathy Error: Don't bother striking any key.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.211.patch0 b/vim/patches/vim-7.3.211.patch0
new file mode 100644 (file)
index 0000000..4760c10
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.211
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.211 (after 7.3.210)
+Problem:    Compiler warning.
+Solution:   Add type cast.
+Files:      src/if_cscope.c
+
+
+*** ../mercurial/vim73/src/if_cscope.c 2011-06-12 20:42:17.000000000 +0200
+--- src/if_cscope.c    2011-06-12 21:22:53.000000000 +0200
+***************
+*** 2518,2524 ****
+       /* Check for csdir to be non empty to avoid empty path concatenated to
+        * cscope output. TODO: avoid the unnecessary alloc/free of fullname. */
+       vim_free(fullname);
+!      fullname = concat_fnames(csdir, (char_u *)name, TRUE);
+      }
+      else
+       (void)sprintf(fullname, "%s", name);
+--- 2518,2524 ----
+       /* Check for csdir to be non empty to avoid empty path concatenated to
+        * cscope output. TODO: avoid the unnecessary alloc/free of fullname. */
+       vim_free(fullname);
+!      fullname = (char *)concat_fnames(csdir, (char_u *)name, TRUE);
+      }
+      else
+       (void)sprintf(fullname, "%s", name);
+*** ../vim-7.3.210/src/version.c       2011-06-12 20:42:17.000000000 +0200
+--- src/version.c      2011-06-12 21:24:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     211,
+  /**/
+
+-- 
+Did you ever see a "Hit any key to continue" message in a music piece?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.212.patch0 b/vim/patches/vim-7.3.212.patch0
new file mode 100644 (file)
index 0000000..d5086db
--- /dev/null
@@ -0,0 +1,243 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.212
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.212
+Problem:    With Python 3.2 ":py3" fails.
+Solution:   Move PyEval_InitThreads() to after Py_Initialize(). (Roland
+            Puntaier)  Check abiflags in configure. (Andreas Behr)
+Files:      src/if_python3.c, src/auto/configure, src/configure.in
+
+
+*** ../mercurial/vim73/src/if_python3.c        2011-02-25 15:18:46.000000000 +0100
+--- src/if_python3.c   2011-06-11 04:24:49.000000000 +0200
+***************
+*** 547,560 ****
+       Py_SetPythonHome(PYTHON3_HOME);
+  #endif
+  
+-      /* initialise threads */
+-      PyEval_InitThreads();
+- 
+  #if !defined(MACOS) || defined(MACOS_X_UNIX)
+       Py_Initialize();
+  #else
+       PyMac_Initialize();
+  #endif
+  
+  #ifdef DYNAMIC_PYTHON3
+       get_py3_exceptions();
+--- 547,559 ----
+       Py_SetPythonHome(PYTHON3_HOME);
+  #endif
+  
+  #if !defined(MACOS) || defined(MACOS_X_UNIX)
+       Py_Initialize();
+  #else
+       PyMac_Initialize();
+  #endif
++      /* initialise threads, must be after Py_Initialize() */
++      PyEval_InitThreads();
+  
+  #ifdef DYNAMIC_PYTHON3
+       get_py3_exceptions();
+*** ../mercurial/vim73/src/auto/configure      2011-05-10 15:41:59.000000000 +0200
+--- src/auto/configure 2011-06-12 21:33:16.000000000 +0200
+***************
+*** 5505,5510 ****
+--- 5505,5527 ----
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_var_python3_version" >&5
+  $as_echo "$vi_cv_var_python3_version" >&6; }
+  
++         { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python's abiflags" >&5
++ $as_echo_n "checking Python's abiflags... " >&6; }
++ if test "${vi_cv_var_python3_abiflags+set}" = set; then :
++   $as_echo_n "(cached) " >&6
++ else
++ 
++      vi_cv_var_python3_abiflags=
++      if ${vi_cv_path_python3} -c \
++          "import sys; sys.exit(${vi_cv_var_python3_version} < 3.2)"
++      then
++        vi_cv_var_python3_abiflags=`${vi_cv_path_python3} -c \
++          "import sys; print(sys.abiflags)"`
++      fi
++ fi
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_var_python3_abiflags" >&5
++ $as_echo "$vi_cv_var_python3_abiflags" >&6; }
++ 
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python's install prefix" >&5
+  $as_echo_n "checking Python's install prefix... " >&6; }
+  if test "${vi_cv_path_python3_pfx+set}" = set; then :
+***************
+*** 5555,5563 ****
+  else
+  
+       vi_cv_path_python3_conf=
+       for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
+         for subdir in lib64 lib share; do
+!          d="${path}/${subdir}/python${vi_cv_var_python3_version}/config"
+           if test -d "$d" && test -f "$d/config.c"; then
+             vi_cv_path_python3_conf="$d"
+           fi
+--- 5572,5584 ----
+  else
+  
+       vi_cv_path_python3_conf=
++      config_dir="config"
++      if test "${vi_cv_var_python3_abiflags}" != ""; then
++        config_dir="${config_dir}-${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
++      fi
+       for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
+         for subdir in lib64 lib share; do
+!          d="${path}/${subdir}/python${vi_cv_var_python3_version}/${config_dir}"
+           if test -d "$d" && test -f "$d/config.c"; then
+             vi_cv_path_python3_conf="$d"
+           fi
+***************
+*** 5592,5598 ****
+                      eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+            rm -f -- "${tmp_mkf}"
+            vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+!           vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS} ${python3_LINKFORSHARED}"
+                      vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+            vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+  
+--- 5613,5619 ----
+                      eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+            rm -f -- "${tmp_mkf}"
+            vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+!           vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+                      vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+            vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+  
+***************
+*** 5601,5609 ****
+  
+        PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
+        if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        else
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        fi
+        PYTHON3_SRC="if_python3.c"
+              if test "x$MACOSX" = "xyes"; then
+--- 5622,5630 ----
+  
+        PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
+        if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        else
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        fi
+        PYTHON3_SRC="if_python3.c"
+              if test "x$MACOSX" = "xyes"; then
+*** ../mercurial/vim73/src/configure.in        2011-05-10 15:41:59.000000000 +0200
+--- src/configure.in   2011-06-12 21:31:18.000000000 +0200
+***************
+*** 992,997 ****
+--- 992,1008 ----
+            ${vi_cv_path_python3} -c 'import sys; print(sys.version[:3])'`
+      ]])
+  
++     dnl -- get abiflags for python 3.2 or higher (PEP 3149)
++     AC_CACHE_CHECK(Python's abiflags,vi_cv_var_python3_abiflags,
++     [
++      vi_cv_var_python3_abiflags=
++      if ${vi_cv_path_python3} -c \
++          "import sys; sys.exit(${vi_cv_var_python3_version} < 3.2)"
++      then
++        vi_cv_var_python3_abiflags=`${vi_cv_path_python3} -c \    
++          "import sys; print(sys.abiflags)"`
++      fi ])
++ 
+      dnl -- find where python3 thinks it was installed
+      AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python3_pfx,
+      [ vi_cv_path_python3_pfx=`
+***************
+*** 1021,1029 ****
+      AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python3_conf,
+      [
+       vi_cv_path_python3_conf=
+       for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
+         for subdir in lib64 lib share; do
+!          d="${path}/${subdir}/python${vi_cv_var_python3_version}/config"
+           if test -d "$d" && test -f "$d/config.c"; then
+             vi_cv_path_python3_conf="$d"
+           fi
+--- 1032,1044 ----
+      AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python3_conf,
+      [
+       vi_cv_path_python3_conf=
++      config_dir="config"
++      if test "${vi_cv_var_python3_abiflags}" != ""; then
++        config_dir="${config_dir}-${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
++      fi
+       for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
+         for subdir in lib64 lib share; do
+!          d="${path}/${subdir}/python${vi_cv_var_python3_version}/${config_dir}"
+           if test -d "$d" && test -f "$d/config.c"; then
+             vi_cv_path_python3_conf="$d"
+           fi
+***************
+*** 1055,1061 ****
+            eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+            rm -f -- "${tmp_mkf}"
+            vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+!           vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS} ${python3_LINKFORSHARED}"
+            dnl remove -ltermcap, it can conflict with an earlier -lncurses
+            vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+            vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+--- 1070,1076 ----
+            eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+            rm -f -- "${tmp_mkf}"
+            vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+!           vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+            dnl remove -ltermcap, it can conflict with an earlier -lncurses
+            vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+            vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+***************
+*** 1063,1071 ****
+  
+        PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
+        if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        else
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        fi
+        PYTHON3_SRC="if_python3.c"
+        dnl For Mac OSX 10.2 config.o is included in the Python library.
+--- 1078,1086 ----
+  
+        PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
+        if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        else
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        fi
+        PYTHON3_SRC="if_python3.c"
+        dnl For Mac OSX 10.2 config.o is included in the Python library.
+*** ../vim-7.3.211/src/version.c       2011-06-12 21:24:56.000000000 +0200
+--- src/version.c      2011-06-12 21:35:31.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     212,
+  /**/
+
+-- 
+In Joseph Heller's novel "Catch-22", the main character tries to get out of a
+war by proving he is crazy.  But the mere fact he wants to get out of the war
+only shows he isn't crazy -- creating the original "Catch-22".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.213.patch0 b/vim/patches/vim-7.3.213.patch0
new file mode 100644 (file)
index 0000000..d3ef325
--- /dev/null
@@ -0,0 +1,142 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.213
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.213
+Problem:    Javascript object literal is not indented correctly.
+Solution:   Make a special case for when "J1" is in 'cino'. (Luc Deschenaux)
+Files:      src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../mercurial/vim73/src/misc1.c     2011-05-25 17:29:40.000000000 +0200
+--- src/misc1.c        2011-06-10 04:58:10.000000000 +0200
+***************
+*** 6965,6971 ****
+            *                  ldfd) {
+            *              }
+            */
+!          if ((ind_keep_case_label
+                          && cin_iscase(skipwhite(ml_get_curline()), FALSE)))
+               amount = get_indent();
+           else
+--- 6965,6971 ----
+            *                  ldfd) {
+            *              }
+            */
+!          if (ind_js || (ind_keep_case_label
+                          && cin_iscase(skipwhite(ml_get_curline()), FALSE)))
+               amount = get_indent();
+           else
+*** ../mercurial/vim73/src/testdir/test3.in    2011-05-25 15:16:06.000000000 +0200
+--- src/testdir/test3.in       2011-06-12 21:44:12.000000000 +0200
+***************
+*** 1492,1501 ****
+  
+  STARTTEST
+  :set cino=N-s
+! /namespaces
+  =/^NAMESPACEEND
+  ENDTEST
+  
+  /* valid namespaces with normal indent */
+  namespace
+  {
+--- 1492,1502 ----
+  
+  STARTTEST
+  :set cino=N-s
+! /^NAMESPACESTART
+  =/^NAMESPACEEND
+  ENDTEST
+  
++ NAMESPACESTART
+  /* valid namespaces with normal indent */
+  namespace
+  {
+***************
+*** 1561,1566 ****
+--- 1562,1588 ----
+  
+  
+  STARTTEST
++ :set cino=J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++ 
++ JSSTART
++ var bar = {
++ foo: {
++ that: this,
++ some: ok,
++ },
++ "bar":{
++ a : 2,
++ b: "123abc",
++ x: 4,
++ "y": 5
++ }
++ }
++ JSEND
++ 
++ STARTTEST
+  :g/^STARTTEST/.,/^ENDTEST/d
+  :1;/start of AUTO/,$wq! test.out
+  ENDTEST
+*** ../mercurial/vim73/src/testdir/test3.ok    2011-05-25 15:16:06.000000000 +0200
+--- src/testdir/test3.ok       2011-06-12 21:44:26.000000000 +0200
+***************
+*** 1337,1342 ****
+--- 1337,1343 ----
+  }
+  
+  
++ NAMESPACESTART
+  /* valid namespaces with normal indent */
+  namespace
+  {
+***************
+*** 1401,1403 ****
+--- 1402,1420 ----
+  NAMESPACEEND
+  
+  
++ 
++ JSSTART
++ var bar = {
++      foo: {
++              that: this,
++              some: ok,
++      },
++      "bar":{
++              a : 2,
++              b: "123abc",
++              x: 4,
++              "y": 5
++      }
++ }
++ JSEND
++ 
+*** ../vim-7.3.212/src/version.c       2011-06-12 21:37:06.000000000 +0200
+--- src/version.c      2011-06-12 21:48:34.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     213,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+169. You hire a housekeeper for your home page.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.214.patch0 b/vim/patches/vim-7.3.214.patch0
new file mode 100644 (file)
index 0000000..a095bbc
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.214
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.214
+Problem:    The text displayed by ":z-" isn't exactly like old Vi.
+Solution:   Add one to the start line number. (ChangZhuo Chen)
+Files:      src/ex_cmds.c
+
+
+*** ../mercurial/vim73/src/ex_cmds.c   2011-05-19 14:30:07.000000000 +0200
+--- src/ex_cmds.c      2011-05-19 14:23:33.000000000 +0200
+***************
+*** 4097,4104 ****
+      switch (*kind)
+      {
+       case '-':
+!          start = lnum - bigness * (linenr_T)(x - kind);
+!          end = start + bigness;
+           curs = end;
+           break;
+  
+--- 4097,4104 ----
+      switch (*kind)
+      {
+       case '-':
+!          start = lnum - bigness * (linenr_T)(x - kind) + 1;
+!          end = start + bigness - 1;
+           curs = end;
+           break;
+  
+*** ../vim-7.3.213/src/version.c       2011-06-12 21:51:01.000000000 +0200
+--- src/version.c      2011-06-12 22:02:20.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     214,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+170. You introduce your wife as "my_lady@home.wife" and refer to your
+     children as "forked processes."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.215.patch0 b/vim/patches/vim-7.3.215.patch0
new file mode 100644 (file)
index 0000000..24d37fb
--- /dev/null
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.215
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.215 (after 7.3.210)
+Problem:    Wrong file names in previous patch. (Toothpik)
+Solution:   Include the option changes.
+Files:      src/option.c, src/option.h
+
+
+*** ../mercurial/vim73/src/option.c    2011-05-19 13:40:47.000000000 +0200
+--- src/option.c       2011-06-12 19:58:17.000000000 +0200
+***************
+*** 901,906 ****
+--- 901,913 ----
+                           {(char_u *)0L, (char_u *)0L}
+  #endif
+                           SCRIPTID_INIT},
++     {"cscoperelative", "csre", P_BOOL|P_VI_DEF|P_VIM,
++ #ifdef FEAT_CSCOPE
++                          (char_u *)&p_csre, PV_NONE,
++ #else
++                          (char_u *)NULL, PV_NONE,
++ #endif
++                          {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+      {"cscopetag",   "cst",  P_BOOL|P_VI_DEF|P_VIM,
+  #ifdef FEAT_CSCOPE
+                           (char_u *)&p_cst, PV_NONE,
+*** ../mercurial/vim73/src/option.h    2011-05-19 13:40:47.000000000 +0200
+--- src/option.h       2011-06-12 19:58:49.000000000 +0200
+***************
+*** 391,396 ****
+--- 391,397 ----
+  EXTERN char_u        *p_cpo;         /* 'cpoptions' */
+  #ifdef FEAT_CSCOPE
+  EXTERN char_u        *p_csprg;       /* 'cscopeprg' */
++ EXTERN int   p_csre;         /* 'cscoperelative' */
+  # ifdef FEAT_QUICKFIX
+  EXTERN char_u        *p_csqf;        /* 'cscopequickfix' */
+  #  define    CSQF_CMDS   "sgdctefi"
+*** ../vim-7.3.214/src/version.c       2011-06-12 22:03:15.000000000 +0200
+--- src/version.c      2011-06-12 22:12:34.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     215,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+171. You invent another person and chat with yourself in empty chat rooms.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.216.patch0 b/vim/patches/vim-7.3.216.patch0
new file mode 100644 (file)
index 0000000..a52bc93
--- /dev/null
@@ -0,0 +1,263 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.216
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.216
+Problem:    When recovering a file a range of lines is missing. (Charles Jie)
+Solution:   Reset the index when advancing to the next pointer block.  Add a
+            test to verify recovery works.
+Files:      src/memline.c, src/testdir/test78.in, src/testdir/test78.ok,
+            src/testdir/Makefile, src/testdir/Make_amiga.mak,
+            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
+            src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
+
+
+*** ../mercurial/vim73/src/memline.c   2011-05-10 16:41:13.000000000 +0200
+--- src/memline.c      2011-06-13 00:56:09.000000000 +0200
+***************
+*** 1507,1512 ****
+--- 1507,1513 ----
+                   bnum = pp->pb_pointer[idx].pe_bnum;
+                   line_count = pp->pb_pointer[idx].pe_line_count;
+                   page_count = pp->pb_pointer[idx].pe_page_count;
++                  idx = 0;
+                   continue;
+               }
+           }
+*** ../mercurial/vim73/src/testdir/test78.in   2011-06-13 01:05:54.000000000 +0200
+--- src/testdir/test78.in      2011-06-13 00:54:48.000000000 +0200
+***************
+*** 0 ****
+--- 1,46 ----
++ Inserts 10000 lines with text to fill the swap file with two levels of pointer
++ blocks.  Then recovers from the swap file and checks all text is restored.
++ 
++ We need about 10000 lines of 100 characters to get two levels of pointer
++ blocks.
++ 
++ STARTTEST
++ :so small.vim
++ :set nocp fileformat=unix undolevels=-1
++ :e! Xtest
++ ggdG
++ :let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
++ :let i = 1
++ :let linecount = 10000
++ :while i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
++ :preserve
++ :" get the name of the swap file
++ :redir => swapname
++ :swapname
++ :redir END
++ :let swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')
++ :" make a copy of the swap file in Xswap
++ :set bin
++ :exe 'sp ' . swapname
++ :w! Xswap
++ :echo swapname
++ :set nobin
++ :new
++ :only!
++ :bwipe! Xtest
++ :call rename('Xswap', swapname)
++ :recover Xtest
++ :call delete(swapname)
++ :new
++ :call append(0, 'recovery start')
++ :wincmd w
++ :let linedollar = line('$')
++ :if linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected " . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = linedollar | endif
++ :let i = 1
++ :while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
++ :q!
++ :call append(line('$'), 'recovery end')
++ :w! test.out
++ :qa!
++ ENDTEST
++ 
+*** ../mercurial/vim73/src/testdir/test78.ok   2011-06-13 01:05:54.000000000 +0200
+--- src/testdir/test78.ok      2011-06-13 00:25:05.000000000 +0200
+***************
+*** 0 ****
+--- 1,3 ----
++ recovery start
++ 
++ recovery end
+*** ../mercurial/vim73/src/testdir/Makefile    2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/Makefile       2011-06-13 00:35:46.000000000 +0200
+***************
+*** 25,31 ****
+               test59.out test60.out test61.out test62.out test63.out \
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out test77.out
+  
+  SCRIPTS_GUI = test16.out
+  
+--- 25,31 ----
+               test59.out test60.out test61.out test62.out test63.out \
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out test77.out test78.out
+  
+  SCRIPTS_GUI = test16.out
+  
+***************
+*** 71,77 ****
+                 fi \
+               else echo $* NO OUTPUT >>test.log; \
+               fi"
+! #    -rm -rf X* test.ok viminfo
+  
+  test49.out: test49.vim
+  
+--- 71,77 ----
+                 fi \
+               else echo $* NO OUTPUT >>test.log; \
+               fi"
+!      -rm -rf X* test.ok viminfo
+  
+  test49.out: test49.vim
+  
+*** ../mercurial/vim73/src/testdir/Make_amiga.mak      2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/Make_amiga.mak 2011-06-13 01:00:42.000000000 +0200
+***************
+*** 28,34 ****
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out test77.out
+  
+  .SUFFIXES: .in .out
+  
+--- 28,34 ----
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out test77.out test78.out
+  
+  .SUFFIXES: .in .out
+  
+***************
+*** 125,127 ****
+--- 125,128 ----
+  test75.out: test75.in
+  test76.out: test76.in
+  test77.out: test77.in
++ test78.out: test78.in
+*** ../mercurial/vim73/src/testdir/Make_dos.mak        2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/Make_dos.mak   2011-06-13 01:00:55.000000000 +0200
+***************
+*** 28,34 ****
+               test37.out test38.out test39.out test40.out test41.out \
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out test77.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 28,34 ----
+               test37.out test38.out test39.out test40.out test41.out \
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out test77.out test78.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../mercurial/vim73/src/testdir/Make_ming.mak       2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/Make_ming.mak  2011-06-13 01:01:02.000000000 +0200
+***************
+*** 48,54 ****
+               test37.out test38.out test39.out test40.out test41.out \
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out test77.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 48,54 ----
+               test37.out test38.out test39.out test40.out test41.out \
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+!              test74.out test75.out test76.out test77.out test78.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../mercurial/vim73/src/testdir/Make_os2.mak        2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/Make_os2.mak   2011-06-13 01:01:08.000000000 +0200
+***************
+*** 28,34 ****
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out test77.out
+  
+  .SUFFIXES: .in .out
+  
+--- 28,34 ----
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out test77.out test78.out
+  
+  .SUFFIXES: .in .out
+  
+*** ../mercurial/vim73/src/testdir/Make_vms.mms        2011-04-28 19:05:01.000000000 +0200
+--- src/testdir/Make_vms.mms   2011-06-13 01:01:29.000000000 +0200
+***************
+*** 4,10 ****
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2011 Mar 03
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2011 Jun 13
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+***************
+*** 75,81 ****
+        test61.out test62.out test63.out test64.out test65.out \
+        test66.out test67.out test68.out test69.out \
+        test71.out test72.out test74.out test75.out test76.out \
+!       test77.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+--- 75,81 ----
+        test61.out test62.out test63.out test64.out test65.out \
+        test66.out test67.out test68.out test69.out \
+        test71.out test72.out test74.out test75.out test76.out \
+!       test77.out test78.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.215/src/version.c       2011-06-12 22:13:37.000000000 +0200
+--- src/version.c      2011-06-13 00:59:02.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     216,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+172. You join listservers just for the extra e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.217.patch0 b/vim/patches/vim-7.3.217.patch0
new file mode 100644 (file)
index 0000000..be04b86
--- /dev/null
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.217
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.217
+Problem:    Inside an "if" a ":wincmd" causes problems.
+Solution:   When skipping commands let ":wincmd" skip over its argument.
+Files:      src/ex_docmd.c
+
+
+*** ../mercurial/vim73/src/ex_docmd.c  2011-05-25 12:51:17.000000000 +0200
+--- src/ex_docmd.c     2011-06-13 01:15:17.000000000 +0200
+***************
+*** 2595,2600 ****
+--- 2595,2601 ----
+           case CMD_unlet:
+           case CMD_verbose:
+           case CMD_vertical:
++          case CMD_wincmd:
+                               break;
+  
+           default:            goto doend;
+***************
+*** 8237,8243 ****
+      p = skipwhite(p);
+      if (*p != NUL && *p != '"' && eap->nextcmd == NULL)
+       EMSG(_(e_invarg));
+!     else
+      {
+       /* Pass flags on for ":vertical wincmd ]". */
+       postponed_split_flags = cmdmod.split;
+--- 8238,8244 ----
+      p = skipwhite(p);
+      if (*p != NUL && *p != '"' && eap->nextcmd == NULL)
+       EMSG(_(e_invarg));
+!     else if (!eap->skip)
+      {
+       /* Pass flags on for ":vertical wincmd ]". */
+       postponed_split_flags = cmdmod.split;
+*** ../vim-7.3.216/src/version.c       2011-06-13 01:07:22.000000000 +0200
+--- src/version.c      2011-06-13 01:18:48.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     217,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+173. You keep tracking down the email addresses of all your friends
+     (even childhood friends).
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.218.patch0 b/vim/patches/vim-7.3.218.patch0
new file mode 100644 (file)
index 0000000..1da18d8
--- /dev/null
@@ -0,0 +1,91 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.218
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.218 (after 7.3.212)
+Problem:    Tiny configuration problem with Python 3.
+Solution:   Add abiflags in one more place. (Andreas Behr)
+Files:      src/auto/configure, src/configure.in
+
+
+*** ../mercurial/vim73/src/auto/configure      2011-06-12 21:37:06.000000000 +0200
+--- src/auto/configure 2011-06-13 01:26:50.000000000 +0200
+***************
+*** 5607,5613 ****
+       @echo "python3_BASEMODLIBS='$(BASEMODLIBS)'"
+       @echo "python3_LIBS='$(LIBS)'"
+       @echo "python3_SYSLIBS='$(SYSLIBS)'"
+-      @echo "python3_LINKFORSHARED='$(LINKFORSHARED)'"
+       @echo "python3_INSTSONAME='$(INSTSONAME)'"
+  eof
+                      eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+--- 5607,5612 ----
+***************
+*** 5624,5630 ****
+        if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+          PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        else
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        fi
+        PYTHON3_SRC="if_python3.c"
+              if test "x$MACOSX" = "xyes"; then
+--- 5623,5629 ----
+        if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+          PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        else
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        fi
+        PYTHON3_SRC="if_python3.c"
+              if test "x$MACOSX" = "xyes"; then
+*** ../mercurial/vim73/src/configure.in        2011-06-12 21:37:06.000000000 +0200
+--- src/configure.in   2011-06-13 01:26:35.000000000 +0200
+***************
+*** 1063,1069 ****
+       @echo "python3_BASEMODLIBS='$(BASEMODLIBS)'"
+       @echo "python3_LIBS='$(LIBS)'"
+       @echo "python3_SYSLIBS='$(SYSLIBS)'"
+-      @echo "python3_LINKFORSHARED='$(LINKFORSHARED)'"
+       @echo "python3_INSTSONAME='$(INSTSONAME)'"
+  eof
+            dnl -- delete the lines from make about Entering/Leaving directory
+--- 1063,1068 ----
+***************
+*** 1080,1086 ****
+        if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+          PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        else
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        fi
+        PYTHON3_SRC="if_python3.c"
+        dnl For Mac OSX 10.2 config.o is included in the Python library.
+--- 1079,1085 ----
+        if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+          PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        else
+!         PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+        fi
+        PYTHON3_SRC="if_python3.c"
+        dnl For Mac OSX 10.2 config.o is included in the Python library.
+*** ../vim-7.3.217/src/version.c       2011-06-13 01:19:48.000000000 +0200
+--- src/version.c      2011-06-13 01:29:42.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     218,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+174. You know what a listserv is.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.219.patch0 b/vim/patches/vim-7.3.219.patch0
new file mode 100644 (file)
index 0000000..2ec1117
--- /dev/null
@@ -0,0 +1,92 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.219
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.219
+Problem:    Can't compile with GTK on Mac.
+Solution:   Add some #ifdef trickery. (Ben Schmidt)
+Files:      src/os_mac_conv.c, src/os_macosx.m, src/vim.h
+
+*** ../mercurial/vim73/src/os_mac_conv.c       2010-08-16 21:23:30.000000000 +0200
+--- src/os_mac_conv.c  2011-06-13 01:55:17.000000000 +0200
+***************
+*** 14,19 ****
+--- 14,21 ----
+   */
+  
+  #define NO_X11_INCLUDES
++ #define BalloonEval int   /* used in header files */
++ 
+  #include "vim.h"
+  #ifndef FEAT_GUI_MAC
+  # include <CoreServices/CoreServices.h>
+*** ../mercurial/vim73/src/os_macosx.m 2010-10-10 17:08:28.000000000 +0200
+--- src/os_macosx.m    2011-06-13 01:58:47.000000000 +0200
+***************
+*** 18,23 ****
+--- 18,24 ----
+  /* Avoid a conflict for the definition of Boolean between Mac header files and
+   * X11 header files. */
+  #define NO_X11_INCLUDES
++ #define BalloonEval int   /* used in header files */
+  
+  #include "vim.h"
+  #import <Cocoa/Cocoa.h>
+***************
+*** 27,35 ****
+   * Clipboard support for the console.
+   * Don't include this when building the GUI version, the functions in
+   * gui_mac.c are used then.  TODO: remove those instead?
+!  * But for MacVim we need these ones.
+   */
+! #if defined(FEAT_CLIPBOARD) && (!defined(FEAT_GUI) || defined(FEAT_GUI_MACVIM))
+  
+  /* Used to identify clipboard data copied from Vim. */
+  
+--- 28,36 ----
+   * Clipboard support for the console.
+   * Don't include this when building the GUI version, the functions in
+   * gui_mac.c are used then.  TODO: remove those instead?
+!  * But for MacVim we do need these ones.
+   */
+! #if defined(FEAT_CLIPBOARD) && (!defined(FEAT_GUI_ENABLED) || defined(FEAT_GUI_MACVIM))
+  
+  /* Used to identify clipboard data copied from Vim. */
+  
+*** ../mercurial/vim73/src/vim.h       2011-05-19 18:26:34.000000000 +0200
+--- src/vim.h  2011-06-13 01:57:17.000000000 +0200
+***************
+*** 121,126 ****
+--- 121,127 ----
+      || defined(FEAT_GUI_W32) \
+      || defined(FEAT_GUI_W16) \
+      || defined(FEAT_GUI_PHOTON)
++ # define FEAT_GUI_ENABLED  /* also defined with NO_X11_INCLUDES */
+  # if !defined(FEAT_GUI) && !defined(NO_X11_INCLUDES)
+  #  define FEAT_GUI
+  # endif
+*** ../vim-7.3.218/src/version.c       2011-06-13 01:32:42.000000000 +0200
+--- src/version.c      2011-06-13 02:03:02.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     219,
+  /**/
+
+-- 
+If Microsoft would build a car...
+... the oil, water temperature, and alternator warning lights would
+all be replaced by a single "General Protection Fault" warning light.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.220.patch0 b/vim/patches/vim-7.3.220.patch0
new file mode 100644 (file)
index 0000000..0122e7f
--- /dev/null
@@ -0,0 +1,1230 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.220
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.220
+Problem:    Python 3: vim.error is a 'str' instead of an 'Exception' object,
+            so 'except' or 'raise' it causes a 'SystemError' exception.
+            Buffer objects do not support slice assignment.
+            When exchanging text between Vim and Python, multibyte texts become
+            gabage or cause Unicode Expceptions, etc.
+            'py3file' tries to read in the file as Unicode, sometimes causes
+            UnicodeDecodeException
+Solution:   Fix the problems. (lilydjwg)
+Files:      src/if_py_both.h, src/if_python.c, src/if_python3.c
+    
+
+*** ../mercurial/vim73/src/if_py_both.h        2011-03-22 15:47:18.000000000 +0100
+--- src/if_py_both.h   2011-06-18 23:54:25.000000000 +0200
+***************
+*** 65,74 ****
+  OutputWrite(PyObject *self, PyObject *args)
+  {
+      int len;
+!     char *str;
+      int error = ((OutputObject *)(self))->error;
+  
+!     if (!PyArg_ParseTuple(args, "s#", &str, &len))
+       return NULL;
+  
+      Py_BEGIN_ALLOW_THREADS
+--- 65,74 ----
+  OutputWrite(PyObject *self, PyObject *args)
+  {
+      int len;
+!     char *str = NULL;
+      int error = ((OutputObject *)(self))->error;
+  
+!     if (!PyArg_ParseTuple(args, "es#", p_enc, &str, &len))
+       return NULL;
+  
+      Py_BEGIN_ALLOW_THREADS
+***************
+*** 76,81 ****
+--- 76,82 ----
+      writer((writefn)(error ? emsg : msg), (char_u *)str, len);
+      Python_Release_Vim();
+      Py_END_ALLOW_THREADS
++     PyMem_Free(str);
+  
+      Py_INCREF(Py_None);
+      return Py_None;
+***************
+*** 104,113 ****
+      for (i = 0; i < n; ++i)
+      {
+       PyObject *line = PyList_GetItem(list, i);
+!      char *str;
+       PyInt len;
+  
+!      if (!PyArg_Parse(line, "s#", &str, &len)) {
+           PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+           Py_DECREF(list);
+           return NULL;
+--- 105,114 ----
+      for (i = 0; i < n; ++i)
+      {
+       PyObject *line = PyList_GetItem(list, i);
+!      char *str = NULL;
+       PyInt len;
+  
+!      if (!PyArg_Parse(line, "es#", p_enc, &str, &len)) {
+           PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+           Py_DECREF(list);
+           return NULL;
+***************
+*** 118,123 ****
+--- 119,125 ----
+       writer((writefn)(error ? emsg : msg), (char_u *)str, len);
+       Python_Release_Vim();
+       Py_END_ALLOW_THREADS
++      PyMem_Free(str);
+      }
+  
+      Py_DECREF(list);
+***************
+*** 681,686 ****
+--- 683,689 ----
+  {
+      const char *str;
+      char *save;
++     PyObject *bytes;
+      PyInt len;
+      PyInt i;
+      char *p;
+***************
+*** 691,698 ****
+       return NULL;
+      }
+  
+!     str = PyString_AsString(obj);
+!     len = PyString_Size(obj);
+  
+      /*
+       * Error checking: String must not contain newlines, as we
+--- 694,702 ----
+       return NULL;
+      }
+  
+!     bytes = PyString_AsBytes(obj);  /* for Python 2 this does nothing */
+!     str = PyString_AsString(bytes);
+!     len = PyString_Size(bytes);
+  
+      /*
+       * Error checking: String must not contain newlines, as we
+***************
+*** 731,736 ****
+--- 735,741 ----
+      }
+  
+      save[i] = '\0';
++     PyString_FreeBytes(bytes);  /* Python 2 does nothing here */
+  
+      return save;
+  }
+***************
+*** 817,823 ****
+      invalidate_botline();
+  }
+  
+! /* Replace a line in the specified buffer. The line number is
+   * in Vim format (1-based). The replacement line is given as
+   * a Python string object. The object is checked for validity
+   * and correct format. Errors are returned as a value of FAIL.
+--- 822,829 ----
+      invalidate_botline();
+  }
+  
+! /*
+!  * Replace a line in the specified buffer. The line number is
+   * in Vim format (1-based). The replacement line is given as
+   * a Python string object. The object is checked for validity
+   * and correct format. Errors are returned as a value of FAIL.
+***************
+*** 908,913 ****
+--- 914,1106 ----
+      }
+  }
+  
++ /* Replace a range of lines in the specified buffer. The line numbers are in
++  * Vim format (1-based). The range is from lo up to, but not including, hi.
++  * The replacement lines are given as a Python list of string objects. The
++  * list is checked for validity and correct format. Errors are returned as a
++  * value of FAIL.  The return value is OK on success.
++  * If OK is returned and len_change is not NULL, *len_change
++  * is set to the change in the buffer length.
++  */
++     static int
++ SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_change)
++ {
++     /* First of all, we check the thpe of the supplied Python object.
++      * There are three cases:
++      *         1. NULL, or None - this is a deletion.
++      *         2. A list        - this is a replacement.
++      *         3. Anything else - this is an error.
++      */
++     if (list == Py_None || list == NULL)
++     {
++      PyInt   i;
++      PyInt   n = (int)(hi - lo);
++      buf_T   *savebuf = curbuf;
++ 
++      PyErr_Clear();
++      curbuf = buf;
++ 
++      if (u_savedel((linenr_T)lo, (long)n) == FAIL)
++          PyErr_SetVim(_("cannot save undo information"));
++      else
++      {
++          for (i = 0; i < n; ++i)
++          {
++              if (ml_delete((linenr_T)lo, FALSE) == FAIL)
++              {
++                  PyErr_SetVim(_("cannot delete line"));
++                  break;
++              }
++          }
++          if (buf == curwin->w_buffer)
++              py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n);
++          deleted_lines_mark((linenr_T)lo, (long)i);
++      }
++ 
++      curbuf = savebuf;
++ 
++      if (PyErr_Occurred() || VimErrorCheck())
++          return FAIL;
++ 
++      if (len_change)
++          *len_change = -n;
++ 
++      return OK;
++     }
++     else if (PyList_Check(list))
++     {
++      PyInt   i;
++      PyInt   new_len = PyList_Size(list);
++      PyInt   old_len = hi - lo;
++      PyInt   extra = 0;      /* lines added to text, can be negative */
++      char    **array;
++      buf_T   *savebuf;
++ 
++      if (new_len == 0)       /* avoid allocating zero bytes */
++          array = NULL;
++      else
++      {
++          array = (char **)alloc((unsigned)(new_len * sizeof(char *)));
++          if (array == NULL)
++          {
++              PyErr_NoMemory();
++              return FAIL;
++          }
++      }
++ 
++      for (i = 0; i < new_len; ++i)
++      {
++          PyObject *line = PyList_GetItem(list, i);
++ 
++          array[i] = StringToLine(line);
++          if (array[i] == NULL)
++          {
++              while (i)
++                  vim_free(array[--i]);
++              vim_free(array);
++              return FAIL;
++          }
++      }
++ 
++      savebuf = curbuf;
++ 
++      PyErr_Clear();
++      curbuf = buf;
++ 
++      if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL)
++          PyErr_SetVim(_("cannot save undo information"));
++ 
++      /* If the size of the range is reducing (ie, new_len < old_len) we
++       * need to delete some old_len. We do this at the start, by
++       * repeatedly deleting line "lo".
++       */
++      if (!PyErr_Occurred())
++      {
++          for (i = 0; i < old_len - new_len; ++i)
++              if (ml_delete((linenr_T)lo, FALSE) == FAIL)
++              {
++                  PyErr_SetVim(_("cannot delete line"));
++                  break;
++              }
++          extra -= i;
++      }
++ 
++      /* For as long as possible, replace the existing old_len with the
++       * new old_len. This is a more efficient operation, as it requires
++       * less memory allocation and freeing.
++       */
++      if (!PyErr_Occurred())
++      {
++          for (i = 0; i < old_len && i < new_len; ++i)
++              if (ml_replace((linenr_T)(lo+i), (char_u *)array[i], FALSE)
++                                                                    == FAIL)
++              {
++                  PyErr_SetVim(_("cannot replace line"));
++                  break;
++              }
++      }
++      else
++          i = 0;
++ 
++      /* Now we may need to insert the remaining new old_len. If we do, we
++       * must free the strings as we finish with them (we can't pass the
++       * responsibility to vim in this case).
++       */
++      if (!PyErr_Occurred())
++      {
++          while (i < new_len)
++          {
++              if (ml_append((linenr_T)(lo + i - 1),
++                                      (char_u *)array[i], 0, FALSE) == FAIL)
++              {
++                  PyErr_SetVim(_("cannot insert line"));
++                  break;
++              }
++              vim_free(array[i]);
++              ++i;
++              ++extra;
++          }
++      }
++ 
++      /* Free any left-over old_len, as a result of an error */
++      while (i < new_len)
++      {
++          vim_free(array[i]);
++          ++i;
++      }
++ 
++      /* Free the array of old_len. All of its contents have now
++       * been dealt with (either freed, or the responsibility passed
++       * to vim.
++       */
++      vim_free(array);
++ 
++      /* Adjust marks. Invalidate any which lie in the
++       * changed range, and move any in the remainder of the buffer.
++       */
++      mark_adjust((linenr_T)lo, (linenr_T)(hi - 1),
++                                                (long)MAXLNUM, (long)extra);
++      changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra);
++ 
++      if (buf == curwin->w_buffer)
++          py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
++ 
++      curbuf = savebuf;
++ 
++      if (PyErr_Occurred() || VimErrorCheck())
++          return FAIL;
++ 
++      if (len_change)
++          *len_change = new_len - old_len;
++ 
++      return OK;
++     }
++     else
++     {
++      PyErr_BadArgument();
++      return FAIL;
++     }
++ }
+  
+  /* Insert a number of lines into the specified buffer after the specifed line.
+   * The line number is in Vim format (1-based). The lines to be inserted are
+***************
+*** 1108,1113 ****
+--- 1301,1340 ----
+       return -1;
+  
+      if (new_end)
++      *new_end = end + len_change;
++ 
++     return 0;
++ }
++ 
++     static PyInt
++ RBAsSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, PyInt start, PyInt end, PyInt *new_end)
++ {
++     PyInt size;
++     PyInt len_change;
++ 
++     /* Self must be a valid buffer */
++     if (CheckBuffer(self))
++      return -1;
++ 
++     /* Sort out the slice range */
++     size = end - start + 1;
++ 
++     if (lo < 0)
++      lo = 0;
++     else if (lo > size)
++      lo = size;
++     if (hi < 0)
++      hi = 0;
++     if (hi < lo)
++      hi = lo;
++     else if (hi > size)
++      hi = size;
++ 
++     if (SetBufferLineList(self->buf, lo + start, hi + start,
++                                                  val, &len_change) == FAIL)
++      return -1;
++ 
++     if (new_end)
+       *new_end = end + len_change;
+  
+      return 0;
+*** ../mercurial/vim73/src/if_python.c 2011-03-26 18:32:00.000000000 +0100
+--- src/if_python.c    2011-06-19 00:02:15.000000000 +0200
+***************
+*** 56,61 ****
+--- 56,65 ----
+  
+  static void init_structs(void);
+  
++ /* No-op conversion functions, use with care! */
++ #define PyString_AsBytes(obj) (obj)
++ #define PyString_FreeBytes(obj)
++ 
+  #if !defined(FEAT_PYTHON) && defined(PROTO)
+  /* Use this to be able to generate prototypes without python being used. */
+  # define PyObject Py_ssize_t
+***************
+*** 129,134 ****
+--- 133,139 ----
+   */
+  # define PyArg_Parse dll_PyArg_Parse
+  # define PyArg_ParseTuple dll_PyArg_ParseTuple
++ # define PyMem_Free dll_PyMem_Free
+  # define PyDict_SetItemString dll_PyDict_SetItemString
+  # define PyErr_BadArgument dll_PyErr_BadArgument
+  # define PyErr_Clear dll_PyErr_Clear
+***************
+*** 189,194 ****
+--- 194,200 ----
+   */
+  static int(*dll_PyArg_Parse)(PyObject *, char *, ...);
+  static int(*dll_PyArg_ParseTuple)(PyObject *, char *, ...);
++ static int(*dll_PyMem_Free)(void *);
+  static int(*dll_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
+  static int(*dll_PyErr_BadArgument)(void);
+  static void(*dll_PyErr_Clear)(void);
+***************
+*** 271,276 ****
+--- 277,283 ----
+  {
+      {"PyArg_Parse", (PYTHON_PROC*)&dll_PyArg_Parse},
+      {"PyArg_ParseTuple", (PYTHON_PROC*)&dll_PyArg_ParseTuple},
++     {"PyMem_Free", (PYTHON_PROC*)&dll_PyMem_Free},
+      {"PyDict_SetItemString", (PYTHON_PROC*)&dll_PyDict_SetItemString},
+      {"PyErr_BadArgument", (PYTHON_PROC*)&dll_PyErr_BadArgument},
+      {"PyErr_Clear", (PYTHON_PROC*)&dll_PyErr_Clear},
+***************
+*** 833,876 ****
+  static PyObject *CurrentGetattr(PyObject *, char *);
+  static int CurrentSetattr(PyObject *, char *, PyObject *);
+  
+- /* Common routines for buffers and line ranges
+-  * -------------------------------------------
+-  */
+- 
+-     static PyInt
+- RBAssSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, PyInt start, PyInt end, PyInt *new_end)
+- {
+-     PyInt size;
+-     PyInt len_change;
+- 
+-     /* Self must be a valid buffer */
+-     if (CheckBuffer(self))
+-      return -1;
+- 
+-     /* Sort out the slice range */
+-     size = end - start + 1;
+- 
+-     if (lo < 0)
+-      lo = 0;
+-     else if (lo > size)
+-      lo = size;
+-     if (hi < 0)
+-      hi = 0;
+-     if (hi < lo)
+-      hi = lo;
+-     else if (hi > size)
+-      hi = size;
+- 
+-     if (SetBufferLineList(self->buf, lo + start, hi + start,
+-                                                  val, &len_change) == FAIL)
+-      return -1;
+- 
+-     if (new_end)
+-      *new_end = end + len_change;
+- 
+-     return 0;
+- }
+- 
+  static PySequenceMethods BufferAsSeq = {
+      (PyInquiry)              BufferLength,       /* sq_length,    len(x)   */
+      (binaryfunc)     0, /* BufferConcat, */       /* sq_concat,    x+y      */
+--- 840,845 ----
+***************
+*** 1038,1044 ****
+      static PyInt
+  BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
+  {
+!     return RBAssSlice((BufferObject *)(self), lo, hi, val, 1,
+                     (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+                     NULL);
+  }
+--- 1007,1013 ----
+      static PyInt
+  BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
+  {
+!     return RBAsSlice((BufferObject *)(self), lo, hi, val, 1,
+                     (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+                     NULL);
+  }
+***************
+*** 1088,1094 ****
+      static PyInt
+  RangeAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
+  {
+!     return RBAssSlice(((RangeObject *)(self))->buf, lo, hi, val,
+                     ((RangeObject *)(self))->start,
+                     ((RangeObject *)(self))->end,
+                     &((RangeObject *)(self))->end);
+--- 1057,1063 ----
+      static PyInt
+  RangeAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
+  {
+!     return RBAsSlice(((RangeObject *)(self))->buf, lo, hi, val,
+                     ((RangeObject *)(self))->start,
+                     ((RangeObject *)(self))->end,
+                     &((RangeObject *)(self))->end);
+***************
+*** 1435,1628 ****
+   * 4. Utility functions for handling the interface between Vim and Python.
+   */
+  
+- /* Replace a range of lines in the specified buffer. The line numbers are in
+-  * Vim format (1-based). The range is from lo up to, but not including, hi.
+-  * The replacement lines are given as a Python list of string objects. The
+-  * list is checked for validity and correct format. Errors are returned as a
+-  * value of FAIL.  The return value is OK on success.
+-  * If OK is returned and len_change is not NULL, *len_change
+-  * is set to the change in the buffer length.
+-  */
+-     static int
+- SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_change)
+- {
+-     /* First of all, we check the thpe of the supplied Python object.
+-      * There are three cases:
+-      *         1. NULL, or None - this is a deletion.
+-      *         2. A list        - this is a replacement.
+-      *         3. Anything else - this is an error.
+-      */
+-     if (list == Py_None || list == NULL)
+-     {
+-      PyInt   i;
+-      PyInt   n = (int)(hi - lo);
+-      buf_T   *savebuf = curbuf;
+- 
+-      PyErr_Clear();
+-      curbuf = buf;
+- 
+-      if (u_savedel((linenr_T)lo, (long)n) == FAIL)
+-          PyErr_SetVim(_("cannot save undo information"));
+-      else
+-      {
+-          for (i = 0; i < n; ++i)
+-          {
+-              if (ml_delete((linenr_T)lo, FALSE) == FAIL)
+-              {
+-                  PyErr_SetVim(_("cannot delete line"));
+-                  break;
+-              }
+-          }
+-          if (buf == curwin->w_buffer)
+-              py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n);
+-          deleted_lines_mark((linenr_T)lo, (long)i);
+-      }
+- 
+-      curbuf = savebuf;
+- 
+-      if (PyErr_Occurred() || VimErrorCheck())
+-          return FAIL;
+- 
+-      if (len_change)
+-          *len_change = -n;
+- 
+-      return OK;
+-     }
+-     else if (PyList_Check(list))
+-     {
+-      PyInt   i;
+-      PyInt   new_len = PyList_Size(list);
+-      PyInt   old_len = hi - lo;
+-      PyInt   extra = 0;      /* lines added to text, can be negative */
+-      char    **array;
+-      buf_T   *savebuf;
+- 
+-      if (new_len == 0)       /* avoid allocating zero bytes */
+-          array = NULL;
+-      else
+-      {
+-          array = (char **)alloc((unsigned)(new_len * sizeof(char *)));
+-          if (array == NULL)
+-          {
+-              PyErr_NoMemory();
+-              return FAIL;
+-          }
+-      }
+- 
+-      for (i = 0; i < new_len; ++i)
+-      {
+-          PyObject *line = PyList_GetItem(list, i);
+- 
+-          array[i] = StringToLine(line);
+-          if (array[i] == NULL)
+-          {
+-              while (i)
+-                  vim_free(array[--i]);
+-              vim_free(array);
+-              return FAIL;
+-          }
+-      }
+- 
+-      savebuf = curbuf;
+- 
+-      PyErr_Clear();
+-      curbuf = buf;
+- 
+-      if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL)
+-          PyErr_SetVim(_("cannot save undo information"));
+- 
+-      /* If the size of the range is reducing (ie, new_len < old_len) we
+-       * need to delete some old_len. We do this at the start, by
+-       * repeatedly deleting line "lo".
+-       */
+-      if (!PyErr_Occurred())
+-      {
+-          for (i = 0; i < old_len - new_len; ++i)
+-              if (ml_delete((linenr_T)lo, FALSE) == FAIL)
+-              {
+-                  PyErr_SetVim(_("cannot delete line"));
+-                  break;
+-              }
+-          extra -= i;
+-      }
+- 
+-      /* For as long as possible, replace the existing old_len with the
+-       * new old_len. This is a more efficient operation, as it requires
+-       * less memory allocation and freeing.
+-       */
+-      if (!PyErr_Occurred())
+-      {
+-          for (i = 0; i < old_len && i < new_len; ++i)
+-              if (ml_replace((linenr_T)(lo+i), (char_u *)array[i], FALSE)
+-                                                                    == FAIL)
+-              {
+-                  PyErr_SetVim(_("cannot replace line"));
+-                  break;
+-              }
+-      }
+-      else
+-          i = 0;
+- 
+-      /* Now we may need to insert the remaining new old_len. If we do, we
+-       * must free the strings as we finish with them (we can't pass the
+-       * responsibility to vim in this case).
+-       */
+-      if (!PyErr_Occurred())
+-      {
+-          while (i < new_len)
+-          {
+-              if (ml_append((linenr_T)(lo + i - 1),
+-                                      (char_u *)array[i], 0, FALSE) == FAIL)
+-              {
+-                  PyErr_SetVim(_("cannot insert line"));
+-                  break;
+-              }
+-              vim_free(array[i]);
+-              ++i;
+-              ++extra;
+-          }
+-      }
+- 
+-      /* Free any left-over old_len, as a result of an error */
+-      while (i < new_len)
+-      {
+-          vim_free(array[i]);
+-          ++i;
+-      }
+- 
+-      /* Free the array of old_len. All of its contents have now
+-       * been dealt with (either freed, or the responsibility passed
+-       * to vim.
+-       */
+-      vim_free(array);
+- 
+-      /* Adjust marks. Invalidate any which lie in the
+-       * changed range, and move any in the remainder of the buffer.
+-       */
+-      mark_adjust((linenr_T)lo, (linenr_T)(hi - 1),
+-                                                (long)MAXLNUM, (long)extra);
+-      changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra);
+- 
+-      if (buf == curwin->w_buffer)
+-          py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
+- 
+-      curbuf = savebuf;
+- 
+-      if (PyErr_Occurred() || VimErrorCheck())
+-          return FAIL;
+- 
+-      if (len_change)
+-          *len_change = new_len - old_len;
+- 
+-      return OK;
+-     }
+-     else
+-     {
+-      PyErr_BadArgument();
+-      return FAIL;
+-     }
+- }
+- 
+  /* Convert a Vim line into a Python string.
+   * All internal newlines are replaced by null characters.
+   *
+--- 1404,1409 ----
+*** ../mercurial/vim73/src/if_python3.c        2011-06-12 21:37:06.000000000 +0200
+--- src/if_python3.c   2011-06-19 00:10:42.000000000 +0200
+***************
+*** 70,77 ****
+  
+  #define PyInt Py_ssize_t
+  #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsString(obj) _PyUnicode_AsString(obj)
+! #define PyString_Size(obj) PyUnicode_GET_SIZE(obj)
+  #define PyString_FromString(repr) PyUnicode_FromString(repr)
+  
+  #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
+--- 70,79 ----
+  
+  #define PyInt Py_ssize_t
+  #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)p_enc, NULL);
+! #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+! #define PyString_AsString(obj) PyBytes_AsString(obj)
+! #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+  #define PyString_FromString(repr) PyUnicode_FromString(repr)
+  
+  #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
+***************
+*** 99,104 ****
+--- 101,107 ----
+  # define PyArg_Parse py3_PyArg_Parse
+  # undef PyArg_ParseTuple
+  # define PyArg_ParseTuple py3_PyArg_ParseTuple
++ # define PyMem_Free py3_PyMem_Free
+  # define PyDict_SetItemString py3_PyDict_SetItemString
+  # define PyErr_BadArgument py3_PyErr_BadArgument
+  # define PyErr_Clear py3_PyErr_Clear
+***************
+*** 140,147 ****
+--- 143,155 ----
+  # define PyModule_AddObject py3_PyModule_AddObject
+  # define PyImport_AppendInittab py3_PyImport_AppendInittab
+  # define _PyUnicode_AsString py3__PyUnicode_AsString
++ # undef PyUnicode_AsEncodedString
++ # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString
++ # undef PyBytes_AsString
++ # define PyBytes_AsString py3_PyBytes_AsString
+  # define PyObject_GenericGetAttr py3_PyObject_GenericGetAttr
+  # define PySlice_Type (*py3_PySlice_Type)
++ # define PyErr_NewException py3_PyErr_NewException
+  # ifdef Py_DEBUG
+  #  define _Py_NegativeRefcount py3__Py_NegativeRefcount
+  #  define _Py_RefTotal (*py3__Py_RefTotal)
+***************
+*** 157,164 ****
+  # define PyModule_Create2 py3_PyModule_Create2
+  # undef PyUnicode_FromString
+  # define PyUnicode_FromString py3_PyUnicode_FromString
+! # undef PyUnicode_FromStringAndSize
+! # define PyUnicode_FromStringAndSize py3_PyUnicode_FromStringAndSize
+  
+  # ifdef Py_DEBUG
+  #  undef PyObject_NEW
+--- 165,172 ----
+  # define PyModule_Create2 py3_PyModule_Create2
+  # undef PyUnicode_FromString
+  # define PyUnicode_FromString py3_PyUnicode_FromString
+! # undef PyUnicode_Decode
+! # define PyUnicode_Decode py3_PyUnicode_Decode
+  
+  # ifdef Py_DEBUG
+  #  undef PyObject_NEW
+***************
+*** 199,205 ****
+  static int (*py3_PyType_Ready)(PyTypeObject *type);
+  static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
+  static PyObject* (*py3_PyUnicode_FromString)(const char *u);
+! static PyObject* (*py3_PyUnicode_FromStringAndSize)(const char *u, Py_ssize_t size);
+  static long (*py3_PyLong_AsLong)(PyObject *);
+  static void (*py3_PyErr_SetNone)(PyObject *);
+  static void (*py3_PyEval_InitThreads)(void);
+--- 207,214 ----
+  static int (*py3_PyType_Ready)(PyTypeObject *type);
+  static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
+  static PyObject* (*py3_PyUnicode_FromString)(const char *u);
+! static PyObject* (*py3_PyUnicode_Decode)(const char *u, Py_ssize_t size,
+!      const char *encoding, const char *errors);
+  static long (*py3_PyLong_AsLong)(PyObject *);
+  static void (*py3_PyErr_SetNone)(PyObject *);
+  static void (*py3_PyEval_InitThreads)(void);
+***************
+*** 207,212 ****
+--- 216,222 ----
+  static PyThreadState*(*py3_PyEval_SaveThread)(void);
+  static int (*py3_PyArg_Parse)(PyObject *, char *, ...);
+  static int (*py3_PyArg_ParseTuple)(PyObject *, char *, ...);
++ static int (*py3_PyMem_Free)(void *);
+  static int (*py3_Py_IsInitialized)(void);
+  static void (*py3_PyErr_Clear)(void);
+  static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *);
+***************
+*** 214,224 ****
+--- 224,237 ----
+  static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
+  static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
+  static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
++ static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
++ static char* (*py3_PyBytes_AsString)(PyObject *bytes);
+  static PyObject* (*py3_PyObject_GenericGetAttr)(PyObject *obj, PyObject *name);
+  static PyObject* (*py3_PyModule_Create2)(struct PyModuleDef* module, int module_api_version);
+  static PyObject* (*py3_PyType_GenericAlloc)(PyTypeObject *type, Py_ssize_t nitems);
+  static PyObject* (*py3_PyType_GenericNew)(PyTypeObject *type, PyObject *args, PyObject *kwds);
+  static PyTypeObject* py3_PySlice_Type;
++ static PyObject* (*py3_PyErr_NewException)(char *name, PyObject *base, PyObject *dict);
+  # ifdef Py_DEBUG
+      static void (*py3__Py_NegativeRefcount)(const char *fname, int lineno, PyObject *op);
+      static Py_ssize_t* py3__Py_RefTotal;
+***************
+*** 259,264 ****
+--- 272,278 ----
+      {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
+      {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
+      {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
++     {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free},
+      {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
+      {"PyGILState_Ensure", (PYTHON_PROC*)&py3_PyGILState_Ensure},
+      {"PyGILState_Release", (PYTHON_PROC*)&py3_PyGILState_Release},
+***************
+*** 289,295 ****
+      {"PyEval_RestoreThread", (PYTHON_PROC*)&py3_PyEval_RestoreThread},
+      {"PyEval_SaveThread", (PYTHON_PROC*)&py3_PyEval_SaveThread},
+      {"PyArg_Parse", (PYTHON_PROC*)&py3_PyArg_Parse},
+-     {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
+      {"Py_IsInitialized", (PYTHON_PROC*)&py3_Py_IsInitialized},
+      {"_Py_NoneStruct", (PYTHON_PROC*)&py3__Py_NoneStruct},
+      {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear},
+--- 303,308 ----
+***************
+*** 297,307 ****
+--- 310,322 ----
+      {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject},
+      {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
+      {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
++     {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
+      {"PyObject_GenericGetAttr", (PYTHON_PROC*)&py3_PyObject_GenericGetAttr},
+      {"PyModule_Create2", (PYTHON_PROC*)&py3_PyModule_Create2},
+      {"PyType_GenericAlloc", (PYTHON_PROC*)&py3_PyType_GenericAlloc},
+      {"PyType_GenericNew", (PYTHON_PROC*)&py3_PyType_GenericNew},
+      {"PySlice_Type", (PYTHON_PROC*)&py3_PySlice_Type},
++     {"PyErr_NewException", (PYTHON_PROC*)&py3_PyErr_NewException},
+  # ifdef Py_DEBUG
+      {"_Py_NegativeRefcount", (PYTHON_PROC*)&py3__Py_NegativeRefcount},
+      {"_Py_RefTotal", (PYTHON_PROC*)&py3__Py_RefTotal},
+***************
+*** 337,343 ****
+  py3_runtime_link_init(char *libname, int verbose)
+  {
+      int i;
+!     void *ucs_from_string, *ucs_from_string_and_size;
+  
+  # if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON)
+      /* Can't have Python and Python3 loaded at the same time.
+--- 352,358 ----
+  py3_runtime_link_init(char *libname, int verbose)
+  {
+      int i;
+!     void *ucs_from_string, *ucs_decode, *ucs_as_encoded_string;
+  
+  # if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON)
+      /* Can't have Python and Python3 loaded at the same time.
+***************
+*** 377,395 ****
+      /* Load unicode functions separately as only the ucs2 or the ucs4 functions
+       * will be present in the library. */
+      ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
+!     ucs_from_string_and_size = symbol_from_dll(hinstPy3,
+!          "PyUnicodeUCS2_FromStringAndSize");
+!     if (!ucs_from_string || !ucs_from_string_and_size)
+      {
+       ucs_from_string = symbol_from_dll(hinstPy3,
+               "PyUnicodeUCS4_FromString");
+!      ucs_from_string_and_size = symbol_from_dll(hinstPy3,
+!              "PyUnicodeUCS4_FromStringAndSize");
+      }
+!     if (ucs_from_string && ucs_from_string_and_size)
+      {
+       py3_PyUnicode_FromString = ucs_from_string;
+!      py3_PyUnicode_FromStringAndSize = ucs_from_string_and_size;
+      }
+      else
+      {
+--- 392,415 ----
+      /* Load unicode functions separately as only the ucs2 or the ucs4 functions
+       * will be present in the library. */
+      ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
+!     ucs_decode = symbol_from_dll(hinstPy3,
+!          "PyUnicodeUCS2_Decode");
+!     ucs_as_encoded_string = symbol_from_dll(hinstPy3,
+!          "PyUnicodeUCS2_AsEncodedString");
+!     if (!ucs_from_string || !ucs_decode || !ucs_as_encoded_string)
+      {
+       ucs_from_string = symbol_from_dll(hinstPy3,
+               "PyUnicodeUCS4_FromString");
+!      ucs_decode = symbol_from_dll(hinstPy3,
+!              "PyUnicodeUCS4_Decode");
+!      ucs_as_encoded_string = symbol_from_dll(hinstPy3,
+!              "PyUnicodeUCS4_AsEncodedString");
+      }
+!     if (ucs_from_string && ucs_decode && ucs_as_encoded_string)
+      {
+       py3_PyUnicode_FromString = ucs_from_string;
+!      py3_PyUnicode_Decode = ucs_decode;
+!      py3_PyUnicode_AsEncodedString = ucs_as_encoded_string;
+      }
+      else
+      {
+***************
+*** 567,574 ****
+       /* Remove the element from sys.path that was added because of our
+        * argv[0] value in Py3Init_vim().  Previously we used an empty
+        * string, but dependinding on the OS we then get an empty entry or
+!       * the current directory in sys.path. */
+!      PyRun_SimpleString("import sys; sys.path = list(filter(lambda x: x != '/must>not&exist', sys.path))");
+  
+       // lock is created and acquired in PyEval_InitThreads() and thread
+       // state is created in Py_Initialize()
+--- 587,597 ----
+       /* Remove the element from sys.path that was added because of our
+        * argv[0] value in Py3Init_vim().  Previously we used an empty
+        * string, but dependinding on the OS we then get an empty entry or
+!       * the current directory in sys.path.
+!       * Only after vim has been imported, the element does exist in
+!       * sys.path.
+!       */
+!      PyRun_SimpleString("import vim; import sys; sys.path = list(filter(lambda x: not x.endswith('must>not&exist'), sys.path))");
+  
+       // lock is created and acquired in PyEval_InitThreads() and thread
+       // state is created in Py_Initialize()
+***************
+*** 605,610 ****
+--- 628,635 ----
+  #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
+      char             *saved_locale;
+  #endif
++     PyObject         *cmdstr;
++     PyObject         *cmdbytes;
+  
+  #if defined(MACOS) && !defined(MACOS_X_UNIX)
+      GetPort(&oldPort);
+***************
+*** 634,640 ****
+  
+      pygilstate = PyGILState_Ensure();
+  
+!     PyRun_SimpleString((char *)(cmd));
+  
+      PyGILState_Release(pygilstate);
+  
+--- 659,671 ----
+  
+      pygilstate = PyGILState_Ensure();
+  
+!     /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
+!      * SyntaxError (unicode error). */
+!     cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)p_enc, NULL);
+!     cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
+!     Py_XDECREF(cmdstr);
+!     PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+!     Py_XDECREF(cmdbytes);
+  
+      PyGILState_Release(pygilstate);
+  
+***************
+*** 693,699 ****
+       * different options under Windows, meaning that stdio pointers aren't
+       * compatible between the two. Yuk.
+       *
+!      * construct: exec(compile(open('a_filename').read(), 'a_filename', 'exec'))
+       *
+       * We need to escape any backslashes or single quotes in the file name, so that
+       * Python won't mangle the file name.
+--- 724,733 ----
+       * different options under Windows, meaning that stdio pointers aren't
+       * compatible between the two. Yuk.
+       *
+!      * construct: exec(compile(open('a_filename', 'rb').read(), 'a_filename', 'exec'))
+!      *
+!      * Using bytes so that Python can detect the source encoding as it normally
+!      * does. The doc does not say "compile" accept bytes, though.
+       *
+       * We need to escape any backslashes or single quotes in the file name, so that
+       * Python won't mangle the file name.
+***************
+*** 716,723 ****
+           return;
+       if (i==0)
+       {
+!          strcpy(p,"').read(),'");
+!          p += 11;
+       }
+       else
+       {
+--- 750,757 ----
+           return;
+       if (i==0)
+       {
+!          strcpy(p,"','rb').read(),'");
+!          p += 16;
+       }
+       else
+       {
+***************
+*** 812,819 ****
+  
+  static Py_ssize_t BufferLength(PyObject *);
+  static PyObject *BufferItem(PyObject *, Py_ssize_t);
+- static Py_ssize_t BufferAsItem(PyObject *, Py_ssize_t, PyObject *);
+  static PyObject* BufferSubscript(PyObject *self, PyObject* idx);
+  
+  
+  /* Line range type - Implementation functions
+--- 846,853 ----
+  
+  static Py_ssize_t BufferLength(PyObject *);
+  static PyObject *BufferItem(PyObject *, Py_ssize_t);
+  static PyObject* BufferSubscript(PyObject *self, PyObject* idx);
++ static Py_ssize_t BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val);
+  
+  
+  /* Line range type - Implementation functions
+***************
+*** 835,841 ****
+      (ssizeargfunc)   0,                  /* sq_repeat,    x*n      */
+      (ssizeargfunc)   BufferItem,         /* sq_item,      x[i]     */
+      0,                                           /* was_sq_slice,     x[i:j]   */
+!     (ssizeobjargproc)        BufferAsItem,       /* sq_ass_item,  x[i]=v   */
+      0,                                           /* sq_ass_slice, x[i:j]=v */
+      0,                                           /* sq_contains */
+      0,                                           /* sq_inplace_concat */
+--- 869,875 ----
+      (ssizeargfunc)   0,                  /* sq_repeat,    x*n      */
+      (ssizeargfunc)   BufferItem,         /* sq_item,      x[i]     */
+      0,                                           /* was_sq_slice,     x[i:j]   */
+!     0,                                           /* sq_ass_item,  x[i]=v   */
+      0,                                           /* sq_ass_slice, x[i:j]=v */
+      0,                                           /* sq_contains */
+      0,                                           /* sq_inplace_concat */
+***************
+*** 845,851 ****
+  PyMappingMethods BufferAsMapping = {
+      /* mp_length     */ (lenfunc)BufferLength,
+      /* mp_subscript     */ (binaryfunc)BufferSubscript,
+!     /* mp_ass_subscript */ (objobjargproc)0,
+  };
+  
+  
+--- 879,885 ----
+  PyMappingMethods BufferAsMapping = {
+      /* mp_length     */ (lenfunc)BufferLength,
+      /* mp_subscript     */ (binaryfunc)BufferSubscript,
+!     /* mp_ass_subscript */ (objobjargproc)BufferAsSubscript,
+  };
+  
+  
+***************
+*** 897,902 ****
+--- 931,938 ----
+  
+      if (this->buf && this->buf != INVALID_BUFFER_VALUE)
+       this->buf->b_python3_ref = NULL;
++ 
++     Py_TYPE(self)->tp_free((PyObject*)self);
+  }
+  
+      static PyObject *
+***************
+*** 975,989 ****
+              (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count);
+  }
+  
+-     static Py_ssize_t
+- BufferAsItem(PyObject *self, Py_ssize_t n, PyObject *val)
+- {
+-     return RBAsItem((BufferObject *)(self), n, val, 1,
+-              (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+-              NULL);
+- }
+- 
+- 
+      static PyObject *
+  BufferSubscript(PyObject *self, PyObject* idx)
+  {
+--- 1011,1016 ----
+***************
+*** 999,1011 ****
+             &step, &slicelen) < 0) {
+           return NULL;
+       }
+!      return BufferSlice(self,start,stop+1);
+      } else {
+       PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+       return NULL;
+      }
+  }
+  
+  static PySequenceMethods RangeAsSeq = {
+      (lenfunc)                RangeLength,     /* sq_length,    len(x)   */
+      (binaryfunc)     0,               /* RangeConcat, sq_concat,  x+y   */
+--- 1026,1064 ----
+             &step, &slicelen) < 0) {
+           return NULL;
+       }
+!      return BufferSlice(self,start,stop);
+      } else {
+       PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+       return NULL;
+      }
+  }
+  
++     static Py_ssize_t
++ BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val)
++ {
++     if (PyLong_Check(idx)) {
++      long n = PyLong_AsLong(idx);
++      return RBAsItem((BufferObject *)(self), n, val, 1,
++                  (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
++                  NULL);
++     } else if (PySlice_Check(idx)) {
++      Py_ssize_t start, stop, step, slicelen;
++ 
++      if (PySlice_GetIndicesEx((PySliceObject *)idx,
++            (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
++            &start, &stop,
++            &step, &slicelen) < 0) {
++          return -1;
++      }
++      return RBAsSlice((BufferObject *)(self), start, stop, val, 1,
++                        (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
++                        NULL);
++     } else {
++      PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
++      return -1;
++     }
++ }
++ 
+  static PySequenceMethods RangeAsSeq = {
+      (lenfunc)                RangeLength,     /* sq_length,    len(x)   */
+      (binaryfunc)     0,               /* RangeConcat, sq_concat,  x+y   */
+***************
+*** 1032,1037 ****
+--- 1085,1091 ----
+  RangeDestructor(PyObject *self)
+  {
+      Py_DECREF(((RangeObject *)(self))->buf);
++     Py_TYPE(self)->tp_free((PyObject*)self);
+  }
+  
+      static PyObject *
+***************
+*** 1159,1164 ****
+--- 1213,1220 ----
+  
+      if (this->win && this->win != INVALID_WINDOW_VALUE)
+       this->win->w_python3_ref = NULL;
++ 
++     Py_TYPE(self)->tp_free((PyObject*)self);
+  }
+  
+      static PyObject *
+***************
+*** 1350,1357 ****
+      PySys_SetArgv(1, argv);
+  
+      mod = PyModule_Create(&vimmodule);
+  
+!     VimError = Py_BuildValue("s", "vim.error");
+  
+      PyModule_AddObject(mod, "error", VimError);
+      Py_INCREF((PyObject *)(void *)&TheBufferList);
+--- 1406,1416 ----
+      PySys_SetArgv(1, argv);
+  
+      mod = PyModule_Create(&vimmodule);
++     if (mod == NULL)
++      return NULL;
+  
+!     VimError = PyErr_NewException("vim.error", NULL, NULL);
+!     Py_INCREF(VimError);
+  
+      PyModule_AddObject(mod, "error", VimError);
+      Py_INCREF((PyObject *)(void *)&TheBufferList);
+***************
+*** 1404,1410 ****
+      }
+      *p = '\0';
+  
+!     result = PyUnicode_FromStringAndSize(tmp, len);
+  
+      vim_free(tmp);
+      return result;
+--- 1463,1469 ----
+      }
+      *p = '\0';
+  
+!     result = PyUnicode_Decode(tmp, len, (char *)p_enc, NULL);
+  
+      vim_free(tmp);
+      return result;
+*** ../vim-7.3.219/src/version.c       2011-06-13 02:03:55.000000000 +0200
+--- src/version.c      2011-06-19 00:25:38.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     220,
+  /**/
+
+-- 
+I'm in shape.  Round IS a shape.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.221.patch0 b/vim/patches/vim-7.3.221.patch0
new file mode 100644 (file)
index 0000000..7211a4a
--- /dev/null
@@ -0,0 +1,287 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.221
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.221
+Problem:    Text from the clipboard is sometimes handled as linewise, but not
+            consistently.
+Solution:   Assume the text is linewise when it ends in a CR or NL.
+Files:      src/gui_gtk_x11.c, src/gui_mac.c, src/ops.c, src/os_msdos.c,
+            src/os_mswin.c, src/os_qnx.c, src/ui.c
+
+
+*** ../mercurial/vim73/src/gui_gtk_x11.c       2011-02-25 17:10:22.000000000 +0100
+--- src/gui_gtk_x11.c  2011-06-19 00:58:31.000000000 +0200
+***************
+*** 1173,1179 ****
+      char_u       *tmpbuf = NULL;
+      guchar       *tmpbuf_utf8 = NULL;
+      int                  len;
+!     int                  motion_type;
+  
+      if (data->selection == clip_plus.gtk_sel_atom)
+       cbd = &clip_plus;
+--- 1173,1179 ----
+      char_u       *tmpbuf = NULL;
+      guchar       *tmpbuf_utf8 = NULL;
+      int                  len;
+!     int                  motion_type = MAUTO;
+  
+      if (data->selection == clip_plus.gtk_sel_atom)
+       cbd = &clip_plus;
+***************
+*** 1182,1188 ****
+  
+      text = (char_u *)data->data;
+      len  = data->length;
+-     motion_type = MCHAR;
+  
+      if (text == NULL || len <= 0)
+      {
+--- 1182,1187 ----
+*** ../mercurial/vim73/src/gui_mac.c   2011-06-12 20:33:30.000000000 +0200
+--- src/gui_mac.c      2011-06-19 00:59:07.000000000 +0200
+***************
+*** 4671,4677 ****
+      if (flavor)
+       type = **textOfClip;
+      else
+!      type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;
+  
+      tempclip = lalloc(scrapSize + 1, TRUE);
+      mch_memmove(tempclip, *textOfClip + flavor, scrapSize);
+--- 4671,4677 ----
+      if (flavor)
+       type = **textOfClip;
+      else
+!      type = MAUTO;
+  
+      tempclip = lalloc(scrapSize + 1, TRUE);
+      mch_memmove(tempclip, *textOfClip + flavor, scrapSize);
+*** ../mercurial/vim73/src/ops.c       2011-04-01 16:28:33.000000000 +0200
+--- src/ops.c  2011-06-19 00:59:39.000000000 +0200
+***************
+*** 5733,5739 ****
+      }
+  }
+  
+! /* Convert from the GUI selection string into the '*'/'+' register */
+      void
+  clip_yank_selection(type, str, len, cbd)
+      int              type;
+--- 5733,5741 ----
+      }
+  }
+  
+! /*
+!  * Convert from the GUI selection string into the '*'/'+' register.
+!  */
+      void
+  clip_yank_selection(type, str, len, cbd)
+      int              type;
+***************
+*** 6090,6098 ****
+      if (yank_type == MBLOCK)
+       yank_type = MAUTO;
+  #endif
+-     if (yank_type == MAUTO)
+-      yank_type = ((len > 0 && (str[len - 1] == '\n' || str[len - 1] == '\r'))
+-                                                           ? MLINE : MCHAR);
+      str_to_reg(y_current, yank_type, str, len, block_len);
+  
+  # ifdef FEAT_CLIPBOARD
+--- 6092,6097 ----
+***************
+*** 6113,6125 ****
+   * is appended.
+   */
+      static void
+! str_to_reg(y_ptr, type, str, len, blocklen)
+      struct yankreg   *y_ptr;         /* pointer to yank register */
+!     int                      type;           /* MCHAR, MLINE or MBLOCK */
+      char_u           *str;           /* string to put in register */
+      long             len;            /* length of string */
+      long             blocklen;       /* width of Visual block */
+  {
+      int              lnum;
+      long     start;
+      long     i;
+--- 6112,6125 ----
+   * is appended.
+   */
+      static void
+! str_to_reg(y_ptr, yank_type, str, len, blocklen)
+      struct yankreg   *y_ptr;         /* pointer to yank register */
+!     int                      yank_type;      /* MCHAR, MLINE, MBLOCK, MAUTO */
+      char_u           *str;           /* string to put in register */
+      long             len;            /* length of string */
+      long             blocklen;       /* width of Visual block */
+  {
++     int              type;                   /* MCHAR, MLINE or MBLOCK */
+      int              lnum;
+      long     start;
+      long     i;
+***************
+*** 6136,6141 ****
+--- 6136,6147 ----
+      if (y_ptr->y_array == NULL)              /* NULL means empty register */
+       y_ptr->y_size = 0;
+  
++     if (yank_type == MAUTO)
++      type = ((len > 0 && (str[len - 1] == NL || str[len - 1] == CAR))
++                                                           ? MLINE : MCHAR);
++     else
++      type = yank_type;
++ 
+      /*
+       * Count the number of lines within the string
+       */
+*** ../mercurial/vim73/src/os_msdos.c  2010-12-17 18:06:00.000000000 +0100
+--- src/os_msdos.c     2011-06-19 01:00:56.000000000 +0200
+***************
+*** 2232,2238 ****
+      void
+  clip_mch_request_selection(VimClipboard *cbd)
+  {
+!     int              type = MCHAR;
+      char_u   *pAllocated = NULL;
+      char_u   *pClipText = NULL;
+      int              clip_data_format = 0;
+--- 2232,2238 ----
+      void
+  clip_mch_request_selection(VimClipboard *cbd)
+  {
+!     int              type = MAUTO;
+      char_u   *pAllocated = NULL;
+      char_u   *pClipText = NULL;
+      int              clip_data_format = 0;
+***************
+*** 2280,2293 ****
+       {
+           clip_data_format = CF_TEXT;
+           pClipText = pAllocated;
+-          type = (vim_strchr((char*)pClipText, '\r') != NULL) ? MLINE : MCHAR;
+       }
+  
+       else if ((pAllocated = Win16GetClipboardData(CF_OEMTEXT)) != NULL)
+       {
+           clip_data_format = CF_OEMTEXT;
+           pClipText = pAllocated;
+-          type = (vim_strchr((char*)pClipText, '\r') != NULL) ? MLINE : MCHAR;
+       }
+  
+       /* Did we get anything? */
+--- 2280,2291 ----
+*** ../mercurial/vim73/src/os_mswin.c  2011-01-17 20:08:04.000000000 +0100
+--- src/os_mswin.c     2011-06-19 01:01:51.000000000 +0200
+***************
+*** 1410,1418 ****
+      {
+       char_u *temp_clipboard;
+  
+!      /* If the type is not known guess it. */
+       if (metadata.type == -1)
+!          metadata.type = (vim_strchr(str, '\n') == NULL) ? MCHAR : MLINE;
+  
+       /* Translate <CR><NL> into <NL>. */
+       temp_clipboard = crnl_to_nl(str, &str_size);
+--- 1410,1418 ----
+      {
+       char_u *temp_clipboard;
+  
+!      /* If the type is not known detect it. */
+       if (metadata.type == -1)
+!          metadata.type = MAUTO;
+  
+       /* Translate <CR><NL> into <NL>. */
+       temp_clipboard = crnl_to_nl(str, &str_size);
+*** ../mercurial/vim73/src/os_qnx.c    2010-05-15 21:22:11.000000000 +0200
+--- src/os_qnx.c       2011-06-19 01:02:26.000000000 +0200
+***************
+*** 93,99 ****
+           clip_length  = clip_header->length - 1;
+  
+           if( clip_text != NULL && is_type_set == FALSE )
+!              type = (strchr( clip_text, '\r' ) != NULL) ? MLINE : MCHAR;
+       }
+  
+       if( (clip_text != NULL) && (clip_length > 0) )
+--- 93,99 ----
+           clip_length  = clip_header->length - 1;
+  
+           if( clip_text != NULL && is_type_set == FALSE )
+!              type = MAUTO;
+       }
+  
+       if( (clip_text != NULL) && (clip_length > 0) )
+*** ../mercurial/vim73/src/ui.c        2010-09-21 22:09:28.000000000 +0200
+--- src/ui.c   2011-06-19 01:03:31.000000000 +0200
+***************
+*** 1609,1615 ****
+  
+  #if defined(FEAT_HANGULIN) || defined(PROTO)
+      void
+! push_raw_key (s, len)
+      char_u  *s;
+      int          len;
+  {
+--- 1609,1615 ----
+  
+  #if defined(FEAT_HANGULIN) || defined(PROTO)
+      void
+! push_raw_key(s, len)
+      char_u  *s;
+      int          len;
+  {
+***************
+*** 2016,2022 ****
+      long_u   *length;
+      int              *format;
+  {
+!     int              motion_type;
+      long_u   len;
+      char_u   *p;
+      char     **text_list = NULL;
+--- 2016,2022 ----
+      long_u   *length;
+      int              *format;
+  {
+!     int              motion_type = MAUTO;
+      long_u   len;
+      char_u   *p;
+      char     **text_list = NULL;
+***************
+*** 2036,2042 ****
+       *(int *)success = FALSE;
+       return;
+      }
+-     motion_type = MCHAR;
+      p = (char_u *)value;
+      len = *length;
+      if (*type == vim_atom)
+--- 2036,2041 ----
+*** ../vim-7.3.220/src/version.c       2011-06-19 00:27:46.000000000 +0200
+--- src/version.c      2011-06-19 01:03:59.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     221,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+190. You quickly hand over your wallet, leather jacket, and car keys
+     during a mugging, then proceed to beat the crap out of your
+     assailant when he asks for your laptop.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.222.patch0 b/vim/patches/vim-7.3.222.patch0
new file mode 100644 (file)
index 0000000..87151b5
--- /dev/null
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.22
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.222
+Problem:    Warning for building GvimExt.
+Solution:   Comment-out the DESCRIPTION line. (Mike Williams)
+Files:      src/GvimExt/gvimext.def, src/GvimExt/gvimext_ming.def
+
+
+*** ../mercurial/vim73/src/GvimExt/gvimext.def 2010-05-15 21:22:11.000000000 +0200
+--- src/GvimExt/gvimext.def    2011-06-15 03:50:55.000000000 +0200
+***************
+*** 1,7 ****
+  ;gvimdef.def : Declares the module parameters for the DLL.
+  
+  LIBRARY      gvimext
+! DESCRIPTION  'Vim Shell Extension'
+  
+  EXPORTS
+      DllCanUnloadNow private
+--- 1,7 ----
+  ;gvimdef.def : Declares the module parameters for the DLL.
+  
+  LIBRARY      gvimext
+! ; DESCRIPTION  'Vim Shell Extension'
+  
+  EXPORTS
+      DllCanUnloadNow private
+*** ../mercurial/vim73/src/GvimExt/gvimext_ming.def    2010-05-15 21:22:11.000000000 +0200
+--- src/GvimExt/gvimext_ming.def       2011-06-15 03:51:05.000000000 +0200
+***************
+*** 3,9 ****
+  ;Hence this is the same file as gvimext.def with private removed
+  
+  LIBRARY      gvimext
+! DESCRIPTION  'Vim Shell Extension build with MinGW'
+  
+  EXPORTS
+      DllCanUnloadNow = DllCanUnloadNow@0
+--- 3,9 ----
+  ;Hence this is the same file as gvimext.def with private removed
+  
+  LIBRARY      gvimext
+! ; DESCRIPTION  'Vim Shell Extension build with MinGW'
+  
+  EXPORTS
+      DllCanUnloadNow = DllCanUnloadNow@0
+*** ../vim-7.3.221/src/version.c       2011-06-19 01:14:23.000000000 +0200
+--- src/version.c      2011-06-19 01:26:57.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     222,
+  /**/
+
+-- 
+What is the difference between a professional and an amateur?
+The ark was built by an amateur; professionals gave us the Titanic.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.223.patch0 b/vim/patches/vim-7.3.223.patch0
new file mode 100644 (file)
index 0000000..e151c5b
--- /dev/null
@@ -0,0 +1,387 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.223
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.223
+Problem:    MingW cross compilation doesn't work with tiny features.
+Solution:   Move acp_to_enc(), enc_to_utf16() and utf16_to_enc() outside of
+            "#ifdef CLIPBOARD".  Fix typo in makefile.
+Files:      src/Make_ming.mak, src/os_mswin.c
+
+
+*** ../mercurial/vim73/src/Make_ming.mak       2010-12-30 14:50:46.000000000 +0100
+--- src/Make_ming.mak  2011-06-19 01:20:16.000000000 +0200
+***************
+*** 87,93 ****
+  
+  # If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext
+  # or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/
+! # uncomment the following, but I can't build a static versión with them, ?-(|
+  #GETTEXT=c:/gettext-0.10.37-20010430
+  #STATIC_GETTEXT=USE_STATIC_GETTEXT
+  #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT
+--- 87,93 ----
+  
+  # If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext
+  # or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/
+! # uncomment the following, but I can't build a static version with them, ?-(|
+  #GETTEXT=c:/gettext-0.10.37-20010430
+  #STATIC_GETTEXT=USE_STATIC_GETTEXT
+  #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT
+*** ../mercurial/vim73/src/os_mswin.c  2011-06-19 01:14:23.000000000 +0200
+--- src/os_mswin.c     2011-06-19 01:25:23.000000000 +0200
+***************
+*** 1105,1236 ****
+      return ret;
+  }
+  
+- #if defined(FEAT_MBYTE) || defined(PROTO)
+- /*
+-  * Note: the following two functions are only guaranteed to work when using
+-  * valid MS-Windows codepages or when iconv() is available.
+-  */
+- 
+- /*
+-  * Convert "str" from 'encoding' to UTF-16.
+-  * Input in "str" with length "*lenp".  When "lenp" is NULL, use strlen().
+-  * Output is returned as an allocated string.  "*lenp" is set to the length of
+-  * the result.  A trailing NUL is always added.
+-  * Returns NULL when out of memory.
+-  */
+-     short_u *
+- enc_to_utf16(char_u *str, int *lenp)
+- {
+-     vimconv_T        conv;
+-     WCHAR    *ret;
+-     char_u   *allocbuf = NULL;
+-     int              len_loc;
+-     int              length;
+- 
+-     if (lenp == NULL)
+-     {
+-      len_loc = (int)STRLEN(str) + 1;
+-      lenp = &len_loc;
+-     }
+- 
+-     if (enc_codepage > 0)
+-     {
+-      /* We can do any CP### -> UTF-16 in one pass, and we can do it
+-       * without iconv() (convert_* may need iconv). */
+-      MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length);
+-     }
+-     else
+-     {
+-      /* Use "latin1" by default, we might be called before we have p_enc
+-       * set up.  Convert to utf-8 first, works better with iconv().  Does
+-       * nothing if 'encoding' is "utf-8". */
+-      conv.vc_type = CONV_NONE;
+-      if (convert_setup(&conv, p_enc ? p_enc : (char_u *)"latin1",
+-                                                 (char_u *)"utf-8") == FAIL)
+-          return NULL;
+-      if (conv.vc_type != CONV_NONE)
+-      {
+-          str = allocbuf = string_convert(&conv, str, lenp);
+-          if (str == NULL)
+-              return NULL;
+-      }
+-      convert_setup(&conv, NULL, NULL);
+- 
+-      length = utf8_to_utf16(str, *lenp, NULL, NULL);
+-      ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR)));
+-      if (ret != NULL)
+-      {
+-          utf8_to_utf16(str, *lenp, (short_u *)ret, NULL);
+-          ret[length] = 0;
+-      }
+- 
+-      vim_free(allocbuf);
+-     }
+- 
+-     *lenp = length;
+-     return (short_u *)ret;
+- }
+- 
+- /*
+-  * Convert an UTF-16 string to 'encoding'.
+-  * Input in "str" with length (counted in wide characters) "*lenp".  When
+-  * "lenp" is NULL, use wcslen().
+-  * Output is returned as an allocated string.  If "*lenp" is not NULL it is
+-  * set to the length of the result.
+-  * Returns NULL when out of memory.
+-  */
+-     char_u *
+- utf16_to_enc(short_u *str, int *lenp)
+- {
+-     vimconv_T        conv;
+-     char_u   *utf8_str = NULL, *enc_str = NULL;
+-     int              len_loc;
+- 
+-     if (lenp == NULL)
+-     {
+-      len_loc = (int)wcslen(str) + 1;
+-      lenp = &len_loc;
+-     }
+- 
+-     if (enc_codepage > 0)
+-     {
+-      /* We can do any UTF-16 -> CP### in one pass. */
+-      int length;
+- 
+-      WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp,
+-                                          (LPSTR *)&enc_str, &length, 0, 0);
+-      *lenp = length;
+-      return enc_str;
+-     }
+- 
+-     /* Avoid allocating zero bytes, it generates an error message. */
+-     utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL));
+-     if (utf8_str != NULL)
+-     {
+-      *lenp = utf16_to_utf8(str, *lenp, utf8_str);
+- 
+-      /* We might be called before we have p_enc set up. */
+-      conv.vc_type = CONV_NONE;
+-      convert_setup(&conv, (char_u *)"utf-8",
+-                                          p_enc? p_enc: (char_u *)"latin1");
+-      if (conv.vc_type == CONV_NONE)
+-      {
+-          /* p_enc is utf-8, so we're done. */
+-          enc_str = utf8_str;
+-      }
+-      else
+-      {
+-          enc_str = string_convert(&conv, utf8_str, lenp);
+-          vim_free(utf8_str);
+-      }
+- 
+-      convert_setup(&conv, NULL, NULL);
+-     }
+- 
+-     return enc_str;
+- }
+- #endif /* FEAT_MBYTE */
+- 
+  /*
+   * Wait for another process to Close the Clipboard.
+   * Returns TRUE for success.
+--- 1105,1110 ----
+***************
+*** 1436,1467 ****
+  #endif
+  }
+  
+- #if (defined(FEAT_MBYTE) && defined(WIN3264)) || defined(PROTO)
+- /*
+-  * Convert from the active codepage to 'encoding'.
+-  * Input is "str[str_size]".
+-  * The result is in allocated memory: "out[outlen]".  With terminating NUL.
+-  */
+-     void
+- acp_to_enc(str, str_size, out, outlen)
+-     char_u   *str;
+-     int              str_size;
+-     char_u   **out;
+-     int              *outlen;
+- 
+- {
+-     LPWSTR   widestr;
+- 
+-     MultiByteToWideChar_alloc(GetACP(), 0, str, str_size, &widestr, outlen);
+-     if (widestr != NULL)
+-     {
+-      ++*outlen;      /* Include the 0 after the string */
+-      *out = utf16_to_enc((short_u *)widestr, outlen);
+-      vim_free(widestr);
+-     }
+- }
+- #endif
+- 
+  /*
+   * Send the current selection to the clipboard.
+   */
+--- 1310,1315 ----
+***************
+*** 1626,1631 ****
+--- 1474,1631 ----
+  
+  #endif /* FEAT_CLIPBOARD */
+  
++ #if defined(FEAT_MBYTE) || defined(PROTO)
++ /*
++  * Note: the following two functions are only guaranteed to work when using
++  * valid MS-Windows codepages or when iconv() is available.
++  */
++ 
++ /*
++  * Convert "str" from 'encoding' to UTF-16.
++  * Input in "str" with length "*lenp".  When "lenp" is NULL, use strlen().
++  * Output is returned as an allocated string.  "*lenp" is set to the length of
++  * the result.  A trailing NUL is always added.
++  * Returns NULL when out of memory.
++  */
++     short_u *
++ enc_to_utf16(char_u *str, int *lenp)
++ {
++     vimconv_T        conv;
++     WCHAR    *ret;
++     char_u   *allocbuf = NULL;
++     int              len_loc;
++     int              length;
++ 
++     if (lenp == NULL)
++     {
++      len_loc = (int)STRLEN(str) + 1;
++      lenp = &len_loc;
++     }
++ 
++     if (enc_codepage > 0)
++     {
++      /* We can do any CP### -> UTF-16 in one pass, and we can do it
++       * without iconv() (convert_* may need iconv). */
++      MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length);
++     }
++     else
++     {
++      /* Use "latin1" by default, we might be called before we have p_enc
++       * set up.  Convert to utf-8 first, works better with iconv().  Does
++       * nothing if 'encoding' is "utf-8". */
++      conv.vc_type = CONV_NONE;
++      if (convert_setup(&conv, p_enc ? p_enc : (char_u *)"latin1",
++                                                 (char_u *)"utf-8") == FAIL)
++          return NULL;
++      if (conv.vc_type != CONV_NONE)
++      {
++          str = allocbuf = string_convert(&conv, str, lenp);
++          if (str == NULL)
++              return NULL;
++      }
++      convert_setup(&conv, NULL, NULL);
++ 
++      length = utf8_to_utf16(str, *lenp, NULL, NULL);
++      ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR)));
++      if (ret != NULL)
++      {
++          utf8_to_utf16(str, *lenp, (short_u *)ret, NULL);
++          ret[length] = 0;
++      }
++ 
++      vim_free(allocbuf);
++     }
++ 
++     *lenp = length;
++     return (short_u *)ret;
++ }
++ 
++ /*
++  * Convert an UTF-16 string to 'encoding'.
++  * Input in "str" with length (counted in wide characters) "*lenp".  When
++  * "lenp" is NULL, use wcslen().
++  * Output is returned as an allocated string.  If "*lenp" is not NULL it is
++  * set to the length of the result.
++  * Returns NULL when out of memory.
++  */
++     char_u *
++ utf16_to_enc(short_u *str, int *lenp)
++ {
++     vimconv_T        conv;
++     char_u   *utf8_str = NULL, *enc_str = NULL;
++     int              len_loc;
++ 
++     if (lenp == NULL)
++     {
++      len_loc = (int)wcslen(str) + 1;
++      lenp = &len_loc;
++     }
++ 
++     if (enc_codepage > 0)
++     {
++      /* We can do any UTF-16 -> CP### in one pass. */
++      int length;
++ 
++      WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp,
++                                          (LPSTR *)&enc_str, &length, 0, 0);
++      *lenp = length;
++      return enc_str;
++     }
++ 
++     /* Avoid allocating zero bytes, it generates an error message. */
++     utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL));
++     if (utf8_str != NULL)
++     {
++      *lenp = utf16_to_utf8(str, *lenp, utf8_str);
++ 
++      /* We might be called before we have p_enc set up. */
++      conv.vc_type = CONV_NONE;
++      convert_setup(&conv, (char_u *)"utf-8",
++                                          p_enc? p_enc: (char_u *)"latin1");
++      if (conv.vc_type == CONV_NONE)
++      {
++          /* p_enc is utf-8, so we're done. */
++          enc_str = utf8_str;
++      }
++      else
++      {
++          enc_str = string_convert(&conv, utf8_str, lenp);
++          vim_free(utf8_str);
++      }
++ 
++      convert_setup(&conv, NULL, NULL);
++     }
++ 
++     return enc_str;
++ }
++ #endif /* FEAT_MBYTE */
++ 
++ #if (defined(FEAT_MBYTE) && defined(WIN3264)) || defined(PROTO)
++ /*
++  * Convert from the active codepage to 'encoding'.
++  * Input is "str[str_size]".
++  * The result is in allocated memory: "out[outlen]".  With terminating NUL.
++  */
++     void
++ acp_to_enc(str, str_size, out, outlen)
++     char_u   *str;
++     int              str_size;
++     char_u   **out;
++     int              *outlen;
++ 
++ {
++     LPWSTR   widestr;
++ 
++     MultiByteToWideChar_alloc(GetACP(), 0, str, str_size, &widestr, outlen);
++     if (widestr != NULL)
++     {
++      ++*outlen;      /* Include the 0 after the string */
++      *out = utf16_to_enc((short_u *)widestr, outlen);
++      vim_free(widestr);
++     }
++ }
++ #endif
++ 
+  
+  /*
+   * Debugging helper: expose the MCH_WRITE_DUMP stuff to other modules
+*** ../vim-7.3.222/src/version.c       2011-06-19 01:27:29.000000000 +0200
+--- src/version.c      2011-06-19 01:28:41.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     223,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+191. You rate eating establishments not by the quality of the food,
+     but by the availability of electrical outlets for your PowerBook.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.224.patch0 b/vim/patches/vim-7.3.224.patch0
new file mode 100644 (file)
index 0000000..1673f47
--- /dev/null
@@ -0,0 +1,162 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.224
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.224
+Problem:    Can't pass dict to sort function.
+Solution:   Add the optional {dict} argument to sort(). (ZyX)
+Files:      runtime/doc/eval.txt, src/eval.c
+
+
+*** ../mercurial/vim73/runtime/doc/eval.txt    2011-05-19 17:25:36.000000000 +0200
+--- runtime/doc/eval.txt       2011-06-19 02:42:52.000000000 +0200
+***************
+*** 1919,1925 ****
+  simplify( {filename})                String  simplify filename as much as possible
+  sin( {expr})                 Float   sine of {expr}
+  sinh( {expr})                        Float   hyperbolic sine of {expr}
+! sort( {list} [, {func}])     List    sort {list}, using {func} to compare
+  soundfold( {word})           String  sound-fold {word}
+  spellbadword()                       String  badly spelled word at cursor
+  spellsuggest( {word} [, {max} [, {capital}]])
+--- 1922,1929 ----
+  simplify( {filename})                String  simplify filename as much as possible
+  sin( {expr})                 Float   sine of {expr}
+  sinh( {expr})                        Float   hyperbolic sine of {expr}
+! sort( {list} [, {func} [, {dict}]])
+!                              List    sort {list}, using {func} to compare
+  soundfold( {word})           String  sound-fold {word}
+  spellbadword()                       String  badly spelled word at cursor
+  spellsuggest( {word} [, {max} [, {capital}]])
+***************
+*** 5275,5281 ****
+               {only available when compiled with the |+float| feature}
+  
+  
+! sort({list} [, {func}])                                      *sort()* *E702*
+               Sort the items in {list} in-place.  Returns {list}.  If you
+               want a list to remain unmodified make a copy first: >
+                       :let sortedlist = sort(copy(mylist))
+--- 5279,5285 ----
+               {only available when compiled with the |+float| feature}
+  
+  
+! sort({list} [, {func} [, {dict}]])                   *sort()* *E702*
+               Sort the items in {list} in-place.  Returns {list}.  If you
+               want a list to remain unmodified make a copy first: >
+                       :let sortedlist = sort(copy(mylist))
+***************
+*** 5283,5288 ****
+--- 5287,5294 ----
+               Numbers sort after Strings, |Lists| after Numbers.
+               For sorting text in the current buffer use |:sort|.
+               When {func} is given and it is one then case is ignored.
++              {dict} is for functions with the "dict" attribute.  It will be
++              used to set the local variable "self". |Dictionary-function|
+               When {func} is a |Funcref| or a function name, this function
+               is called to compare items.  The function is invoked with two
+               items as argument and must return zero if they are equal, 1 or
+*** ../mercurial/vim73/src/eval.c      2011-05-19 18:26:34.000000000 +0200
+--- src/eval.c 2011-06-19 02:51:13.000000000 +0200
+***************
+*** 7930,7936 ****
+      {"sin",          1, 1, f_sin},
+      {"sinh",         1, 1, f_sinh},
+  #endif
+!     {"sort",         1, 2, f_sort},
+      {"soundfold",    1, 1, f_soundfold},
+      {"spellbadword", 0, 1, f_spellbadword},
+      {"spellsuggest", 1, 3, f_spellsuggest},
+--- 7930,7936 ----
+      {"sin",          1, 1, f_sin},
+      {"sinh",         1, 1, f_sinh},
+  #endif
+!     {"sort",         1, 3, f_sort},
+      {"soundfold",    1, 1, f_soundfold},
+      {"spellbadword", 0, 1, f_spellbadword},
+      {"spellsuggest", 1, 3, f_spellsuggest},
+***************
+*** 16366,16371 ****
+--- 16366,16372 ----
+  
+  static int   item_compare_ic;
+  static char_u        *item_compare_func;
++ static dict_T        *item_compare_selfdict;
+  static int   item_compare_func_err;
+  #define ITEM_COMPARE_FAIL 999
+  
+***************
+*** 16425,16431 ****
+  
+      rettv.v_type = VAR_UNKNOWN;              /* clear_tv() uses this */
+      res = call_func(item_compare_func, (int)STRLEN(item_compare_func),
+!                               &rettv, 2, argv, 0L, 0L, &dummy, TRUE, NULL);
+      clear_tv(&argv[0]);
+      clear_tv(&argv[1]);
+  
+--- 16426,16433 ----
+  
+      rettv.v_type = VAR_UNKNOWN;              /* clear_tv() uses this */
+      res = call_func(item_compare_func, (int)STRLEN(item_compare_func),
+!                               &rettv, 2, argv, 0L, 0L, &dummy, TRUE,
+!                               item_compare_selfdict);
+      clear_tv(&argv[0]);
+      clear_tv(&argv[1]);
+  
+***************
+*** 16471,16478 ****
+--- 16473,16482 ----
+  
+       item_compare_ic = FALSE;
+       item_compare_func = NULL;
++      item_compare_selfdict = NULL;
+       if (argvars[1].v_type != VAR_UNKNOWN)
+       {
++          /* optional second argument: {func} */
+           if (argvars[1].v_type == VAR_FUNC)
+               item_compare_func = argvars[1].vval.v_string;
+           else
+***************
+*** 16487,16492 ****
+--- 16491,16507 ----
+               else
+                   item_compare_func = get_tv_string(&argvars[1]);
+           }
++ 
++          if (argvars[2].v_type != VAR_UNKNOWN)
++          {
++              /* optional third argument: {dict} */
++              if (argvars[2].v_type != VAR_DICT)
++              {
++                  EMSG(_(e_dictreq));
++                  return;
++              }
++              item_compare_selfdict = argvars[2].vval.v_dict;
++          }
+       }
+  
+       /* Make an array with each entry pointing to an item in the List. */
+*** ../vim-7.3.223/src/version.c       2011-06-19 01:30:01.000000000 +0200
+--- src/version.c      2011-06-19 02:52:46.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     224,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+193. You ask your girlfriend to drive home so you can sit back with
+     your PDA and download the information to your laptop
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.225.patch0 b/vim/patches/vim-7.3.225.patch0
new file mode 100644 (file)
index 0000000..5a32b9a
Binary files /dev/null and b/vim/patches/vim-7.3.225.patch0 differ
diff --git a/vim/patches/vim-7.3.226.patch0 b/vim/patches/vim-7.3.226.patch0
new file mode 100644 (file)
index 0000000..0002aa7
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.226
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.226
+Problem:    On a 64 bit system "syn sync fromstart" is very slow.  (Bjorn
+            Steinbrink)
+Solution:   Store the state when starting to parse from the first line.
+Files:      src/syntax.c
+
+
+*** ../mercurial/vim73/src/syntax.c    2011-05-25 17:56:23.000000000 +0200
+--- src/syntax.c       2011-06-19 04:47:08.000000000 +0200
+***************
+*** 559,565 ****
+      if (INVALID_STATE(&current_state))
+      {
+       syn_sync(wp, lnum, last_valid);
+!      first_stored = current_lnum + syn_block->b_syn_sync_minlines;
+      }
+      else
+       first_stored = current_lnum;
+--- 559,571 ----
+      if (INVALID_STATE(&current_state))
+      {
+       syn_sync(wp, lnum, last_valid);
+!      if (current_lnum == 1)
+!          /* First line is always valid, no matter "minlines". */
+!          first_stored = 1;
+!      else
+!          /* Need to parse "minlines" lines before state can be considered
+!           * valid to store. */
+!          first_stored = current_lnum + syn_block->b_syn_sync_minlines;
+      }
+      else
+       first_stored = current_lnum;
+*** ../vim-7.3.225/src/version.c       2011-06-19 04:31:54.000000000 +0200
+--- src/version.c      2011-06-19 04:49:53.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     226,
+  /**/
+
+-- 
+Press any key to continue, press any other key to quit.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.227.patch0 b/vim/patches/vim-7.3.227.patch0
new file mode 100644 (file)
index 0000000..55d5a9c
--- /dev/null
@@ -0,0 +1,109 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.227
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.227 (after 7.3.221)
+Problem:    Mac OS doesn't have the linewise clipboard fix.
+Solution:   Also change the Mac OS file. (Bjorn Winckler)
+Files:      src/os_macosx.m
+
+
+*** ../mercurial/vim73/src/os_macosx.m 2011-06-13 02:03:55.000000000 +0200
+--- src/os_macosx.m    2011-06-20 00:23:57.000000000 +0200
+***************
+*** 65,71 ****
+      NSString *bestType = [pb availableTypeFromArray:supportedTypes];
+      if (!bestType) goto releasepool;
+  
+!     int motion_type = MCHAR;
+      NSString *string = nil;
+  
+      if ([bestType isEqual:VimPboardType])
+--- 65,71 ----
+      NSString *bestType = [pb availableTypeFromArray:supportedTypes];
+      if (!bestType) goto releasepool;
+  
+!     int motion_type = MAUTO;
+      NSString *string = nil;
+  
+      if ([bestType isEqual:VimPboardType])
+***************
+*** 89,97 ****
+  
+      if (!string)
+      {
+!      /* Use NSStringPboardType.  The motion type is set to line-wise if the
+!       * string contains at least one EOL character, otherwise it is set to
+!       * character-wise (block-wise is never used).
+        */
+       NSMutableString *mstring =
+               [[pb stringForType:NSStringPboardType] mutableCopy];
+--- 89,95 ----
+  
+      if (!string)
+      {
+!      /* Use NSStringPboardType.  The motion type is detected automatically.
+        */
+       NSMutableString *mstring =
+               [[pb stringForType:NSStringPboardType] mutableCopy];
+***************
+*** 108,126 ****
+                                          options:0 range:range];
+       }
+  
+-      /* Scan for newline character to decide whether the string should be
+-       * pasted line-wise or character-wise.
+-       */
+-      motion_type = MCHAR;
+-      if (0 < n || NSNotFound != [mstring rangeOfString:@"\n"].location)
+-          motion_type = MLINE;
+- 
+       string = mstring;
+      }
+  
+      if (!(MCHAR == motion_type || MLINE == motion_type || MBLOCK == motion_type
+           || MAUTO == motion_type))
+!      motion_type = MCHAR;
+  
+      char_u *str = (char_u*)[string UTF8String];
+      int len = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
+--- 106,118 ----
+                                          options:0 range:range];
+       }
+  
+       string = mstring;
+      }
+  
++     /* Default to MAUTO, uses MCHAR or MLINE depending on trailing NL. */
+      if (!(MCHAR == motion_type || MLINE == motion_type || MBLOCK == motion_type
+           || MAUTO == motion_type))
+!      motion_type = MAUTO;
+  
+      char_u *str = (char_u*)[string UTF8String];
+      int len = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
+*** ../vim-7.3.226/src/version.c       2011-06-19 04:54:17.000000000 +0200
+--- src/version.c      2011-06-20 00:21:53.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     227,
+  /**/
+
+-- 
+Some of the well know MS-Windows errors:
+       EMULTI          Multitasking attempted, system confused
+       EKEYBOARD       Keyboard locked, try getting out of this one!
+       EXPLAIN         Unexplained error, please tell us what happened
+       EFUTURE         Reserved for our future mistakes
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.228.patch0 b/vim/patches/vim-7.3.228.patch0
new file mode 100644 (file)
index 0000000..3edede5
--- /dev/null
@@ -0,0 +1,45 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.228
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.228
+Problem:    "2gj" does not always move to the correct position.
+Solution:   Get length of line after moving to a next line. (James Vega)
+Files:      src/normal.c
+
+
+*** ../mercurial/vim73/src/normal.c    2011-05-10 17:29:28.000000000 +0200
+--- src/normal.c       2011-06-20 00:41:43.000000000 +0200
+***************
+*** 4533,4538 ****
+--- 4533,4539 ----
+               }
+               curwin->w_cursor.lnum++;
+               curwin->w_curswant %= width2;
++              linelen = linetabsize(ml_get_curline());
+           }
+       }
+        }
+*** ../vim-7.3.227/src/version.c       2011-06-20 00:25:37.000000000 +0200
+--- src/version.c      2011-06-20 00:45:15.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     228,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+197. Your desk collapses under the weight of your computer peripherals.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.229.patch0 b/vim/patches/vim-7.3.229.patch0
new file mode 100644 (file)
index 0000000..b133f7a
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.229
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.229
+Problem:    Using fork() makes gvim crash on Mac when build with
+            CoreFoundation.
+Solution:   Disallow fork() when __APPLE__ is defined. (Hisashi T Fujinaka)
+Files:      src/gui.c
+
+
+*** ../mercurial/vim73/src/gui.c       2011-05-10 16:41:13.000000000 +0200
+--- src/gui.c  2011-06-20 00:51:21.000000000 +0200
+***************
+*** 59,65 ****
+  gui_start()
+  {
+      char_u   *old_term;
+! #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X)
+  # define MAY_FORK
+      int              dofork = TRUE;
+  #endif
+--- 59,66 ----
+  gui_start()
+  {
+      char_u   *old_term;
+! #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
+!      && !defined(__APPLE__)
+  # define MAY_FORK
+      int              dofork = TRUE;
+  #endif
+*** ../vim-7.3.228/src/version.c       2011-06-20 00:45:55.000000000 +0200
+--- src/version.c      2011-06-20 00:50:42.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     229,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+198. You read all the quotes at Netaholics Anonymous and keep thinking
+     "What's wrong with that?"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.230.patch0 b/vim/patches/vim-7.3.230.patch0
new file mode 100644 (file)
index 0000000..80fcdf1
--- /dev/null
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.230
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.230
+Problem:    ":wundo" and ":rundo" don't unescape their argument.  (Aaron
+            Thoma)
+Solution:   Use FILE1 instead of XFILE.
+Files:      src/ex_cmds.h
+
+
+*** ../mercurial/vim73/src/ex_cmds.h   2010-08-20 11:09:02.000000000 +0200
+--- src/ex_cmds.h      2011-06-20 04:44:13.000000000 +0200
+***************
+*** 788,794 ****
+  EX(CMD_rubyfile,     "rubyfile",     ex_rubyfile,
+                       RANGE|FILE1|NEEDARG|CMDWIN),
+  EX(CMD_rundo,                "rundo",        ex_rundo,
+!                      NEEDARG|EXTRA|XFILE),
+  EX(CMD_rviminfo,     "rviminfo",     ex_viminfo,
+                       BANG|FILE1|TRLBAR|CMDWIN),
+  EX(CMD_substitute,   "substitute",   do_sub,
+--- 788,794 ----
+  EX(CMD_rubyfile,     "rubyfile",     ex_rubyfile,
+                       RANGE|FILE1|NEEDARG|CMDWIN),
+  EX(CMD_rundo,                "rundo",        ex_rundo,
+!                      NEEDARG|FILE1),
+  EX(CMD_rviminfo,     "rviminfo",     ex_viminfo,
+                       BANG|FILE1|TRLBAR|CMDWIN),
+  EX(CMD_substitute,   "substitute",   do_sub,
+***************
+*** 1078,1084 ****
+  EX(CMD_wsverb,               "wsverb",       ex_wsverb,
+                       EXTRA|NOTADR|NEEDARG),
+  EX(CMD_wundo,                "wundo",        ex_wundo,
+!                      BANG|NEEDARG|EXTRA|XFILE),
+  EX(CMD_wviminfo,     "wviminfo",     ex_viminfo,
+                       BANG|FILE1|TRLBAR|CMDWIN),
+  EX(CMD_xit,          "xit",          ex_exit,
+--- 1078,1084 ----
+  EX(CMD_wsverb,               "wsverb",       ex_wsverb,
+                       EXTRA|NOTADR|NEEDARG),
+  EX(CMD_wundo,                "wundo",        ex_wundo,
+!                      BANG|NEEDARG|FILE1),
+  EX(CMD_wviminfo,     "wviminfo",     ex_viminfo,
+                       BANG|FILE1|TRLBAR|CMDWIN),
+  EX(CMD_xit,          "xit",          ex_exit,
+*** ../vim-7.3.229/src/version.c       2011-06-20 00:53:10.000000000 +0200
+--- src/version.c      2011-06-20 05:02:40.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     230,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+201. When somebody asks you where you are, you tell them in which chat room.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.231.patch0 b/vim/patches/vim-7.3.231.patch0
new file mode 100644 (file)
index 0000000..266d0a2
--- /dev/null
@@ -0,0 +1,128 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.231
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Note: this is a weird patch, it redoes patches from 7.3.202 and 7.3.203
+that failed when applied as a patch, but the mercurial repository
+already had this, thus won't change anything there.
+
+
+Patch 7.3.231
+Problem:    Runtime file patches failed.
+Solution:   Redo the patches made against the patched files instead of the
+            files in the mercurial repository.
+Files:      runtime/doc/indent.txt, runtime/doc/os_win32.txt
+
+
+*** ../vim-7.3.230/runtime/doc/indent.txt      2011-05-25 15:16:06.000000000 +0200
+--- runtime/doc/indent.txt     2011-05-31 22:23:39.000000000 +0200
+***************
+*** 356,363 ****
+                     BaseClass(3)          BaseClass(3)
+                 {}                        {}
+  <
+!      +N    Indent a continuation line (a line that spills onto the next) N
+!            additional characters.  (default 'shiftwidth').
+  
+               cino=                     cino=+10 >
+                 a = b + 9 *               a = b + 9 *
+--- 357,368 ----
+                     BaseClass(3)          BaseClass(3)
+                 {}                        {}
+  <
+!                                                      *cino-+*
+!      +N    Indent a continuation line (a line that spills onto the next)
+!               inside a function N additional characters.  (default
+!               'shiftwidth').
+!               Outside of a function, when the previous line ended in a
+!               backslash, the 2 * N is used.
+  
+               cino=                     cino=+10 >
+                 a = b + 9 *               a = b + 9 *
+***************
+*** 509,522 ****
+--- 514,532 ----
+                   }
+               }
+  <
++                                                              *cino-)*
+       )N    Vim searches for unclosed parentheses at most N lines away.
+             This limits the time needed to search for parentheses.  (default
+             20 lines).
+  
++                                                              *cino-star*
+       *N    Vim searches for unclosed comments at most N lines away.  This
+             limits the time needed to search for the start of a comment.
++            If your /* */ comments stop indenting afer N lines this is the
++            value you will want to change.
+             (default 70 lines).
+  
++                                                              *cino-#*
+       #N    When N is non-zero recognize shell/Perl comments, starting with
+             '#'.  Default N is zero: don't recognizes '#' comments.  Note
+             that lines starting with # will still be seen as preprocessor
+*** ../vim-7.3.230/runtime/doc/os_win32.txt    2010-08-15 21:57:16.000000000 +0200
+--- runtime/doc/os_win32.txt   2011-05-28 18:17:58.000000000 +0200
+***************
+*** 313,318 ****
+--- 313,349 ----
+     with :!start do not get passed Vim's open file handles, which means they do
+     not have to be closed before Vim.
+     To avoid this special treatment, use ":! start".
++    There are two optional arguments (see the next Q):
++        /min  the window will be minimized.
++        /b"   no console window will be opened
++    You can only one of these flags at a time.  A second second one will be
++    treated as the start of the command.
++ 
++ Q. How do I avoid getting a window for programs that I run asynchronously?
++ A. You have two possible solutions depending on what exactly do you want:
++    1) You may use the /min flag in order to run program in a minimized state
++       with no other changes. It will work equally for console and GUI
++       applications.
++    2) You can use the /b flag to run console applications without creating a
++       console window for them (GUI applications are not affected). But you
++       should use this flag only if the application you run doesn't require any
++       input.  Otherwise it will get an EOF error because its input stream
++       (stdin) would be redirected to \\.\NUL (stdoud and stderr too).
++ 
++    Example for a console application, run Exuberant ctags: >
++         :!start /min ctags -R .
++ <  When it has finished you should see file named "tags" in your current
++    directory.  You should notice the window title blinking on your taskbar.
++    This is more noticable for commands that take longer.
++    Now delete the "tags" file and run this command: >
++         :!start /b ctags -R .
++ <  You should have the same "tags" file, but this time there will be no
++    blinking on the taskbar.
++    Example for a GUI application: >
++         :!start /min notepad
++         :!start /b notepad
++ <  The first command runs notepad minimized and the second one runs it
++    normally.
+  
+  Q. I'm using Win32s, and when I try to run an external command like "make",
+     Vim doesn't wait for it to finish!  Help!
+*** ../vim-7.3.230/src/version.c       2011-06-20 05:02:53.000000000 +0200
+--- src/version.c      2011-06-26 03:14:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     231,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+222. You send more than 20 personal e-mails a day.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.232.patch0 b/vim/patches/vim-7.3.232.patch0
new file mode 100644 (file)
index 0000000..982d747
--- /dev/null
@@ -0,0 +1,84 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.232
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.232
+Problem:    Python doesn't compile without +multi_byte
+Solution:   Use "latin1" when MULTI_BYTE is not defined.
+Files:      src/if_py_both.h
+
+
+*** ../vim-7.3.231/src/if_py_both.h    2011-06-19 00:27:46.000000000 +0200
+--- src/if_py_both.h   2011-06-26 03:58:07.000000000 +0200
+***************
+*** 12,17 ****
+--- 12,23 ----
+   * Common code for if_python.c and if_python3.c.
+   */
+  
++ #ifdef FEAT_MBYTE
++ # define ENC_OPT p_enc
++ #else
++ # define ENC_OPT "latin1"
++ #endif
++ 
+  /*
+   * obtain a lock on the Vim data structures
+   */
+***************
+*** 68,74 ****
+      char *str = NULL;
+      int error = ((OutputObject *)(self))->error;
+  
+!     if (!PyArg_ParseTuple(args, "es#", p_enc, &str, &len))
+       return NULL;
+  
+      Py_BEGIN_ALLOW_THREADS
+--- 74,80 ----
+      char *str = NULL;
+      int error = ((OutputObject *)(self))->error;
+  
+!     if (!PyArg_ParseTuple(args, "es#", ENC_OPT, &str, &len))
+       return NULL;
+  
+      Py_BEGIN_ALLOW_THREADS
+***************
+*** 108,114 ****
+       char *str = NULL;
+       PyInt len;
+  
+!      if (!PyArg_Parse(line, "es#", p_enc, &str, &len)) {
+           PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+           Py_DECREF(list);
+           return NULL;
+--- 114,120 ----
+       char *str = NULL;
+       PyInt len;
+  
+!      if (!PyArg_Parse(line, "es#", ENC_OPT, &str, &len)) {
+           PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+           Py_DECREF(list);
+           return NULL;
+*** ../vim-7.3.231/src/version.c       2011-06-26 03:16:58.000000000 +0200
+--- src/version.c      2011-06-26 04:00:40.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     232,
+  /**/
+
+-- 
+If evolution theories are correct, humans will soon grow a third
+hand for operating the mouse.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.233.patch0 b/vim/patches/vim-7.3.233.patch0
new file mode 100644 (file)
index 0000000..2dcbf89
--- /dev/null
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.233
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.233
+Problem:    ":scriptnames" and ":breaklist" show long file names.
+Solution:   Shorten to use "~/" when possible. (Jean-Rene David)
+Files:      src/ex_cmds2.c 
+
+
+*** ../vim-7.3.232/src/ex_cmds2.c      2011-05-19 18:26:34.000000000 +0200
+--- src/ex_cmds2.c     2011-06-26 04:20:24.000000000 +0200
+***************
+*** 682,691 ****
+       for (i = 0; i < dbg_breakp.ga_len; ++i)
+       {
+           bp = &BREAKP(i);
+           smsg((char_u *)_("%3d  %s %s  line %ld"),
+                   bp->dbg_nr,
+                   bp->dbg_type == DBG_FUNC ? "func" : "file",
+!                  bp->dbg_name,
+                   (long)bp->dbg_lnum);
+       }
+  }
+--- 682,693 ----
+       for (i = 0; i < dbg_breakp.ga_len; ++i)
+       {
+           bp = &BREAKP(i);
++          if (bp->dbg_type == DBG_FILE)
++              home_replace(NULL, bp->dbg_name, NameBuff, MAXPATHL, TRUE);
+           smsg((char_u *)_("%3d  %s %s  line %ld"),
+                   bp->dbg_nr,
+                   bp->dbg_type == DBG_FUNC ? "func" : "file",
+!                  bp->dbg_type == DBG_FUNC ? bp->dbg_name : NameBuff,
+                   (long)bp->dbg_lnum);
+       }
+  }
+***************
+*** 3268,3274 ****
+  
+      for (i = 1; i <= script_items.ga_len && !got_int; ++i)
+       if (SCRIPT_ITEM(i).sn_name != NULL)
+!          smsg((char_u *)"%3d: %s", i, SCRIPT_ITEM(i).sn_name);
+  }
+  
+  # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
+--- 3270,3280 ----
+  
+      for (i = 1; i <= script_items.ga_len && !got_int; ++i)
+       if (SCRIPT_ITEM(i).sn_name != NULL)
+!      {
+!          home_replace(NULL, SCRIPT_ITEM(i).sn_name,
+!                                                  NameBuff, MAXPATHL, TRUE);
+!          smsg((char_u *)"%3d: %s", i, NameBuff);
+!         }
+  }
+  
+  # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
+*** ../vim-7.3.232/src/version.c       2011-06-26 04:01:37.000000000 +0200
+--- src/version.c      2011-06-26 04:23:48.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     233,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+223. You set up a web-cam as your home's security system.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.234.patch0 b/vim/patches/vim-7.3.234.patch0
new file mode 100644 (file)
index 0000000..a60df3d
--- /dev/null
@@ -0,0 +1,178 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.234
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.234
+Problem:    With GTK menu may be popping down.
+Solution:   Use event time instead of GDK_CURRENT_TIME. (Hong Xu)
+Files:      src/gui.c, src/gui.h, src/gui_gtk.c, src/gui_gtk_x11.c
+
+
+*** ../vim-7.3.233/src/gui.c   2011-06-20 00:53:10.000000000 +0200
+--- src/gui.c  2011-06-26 04:38:09.000000000 +0200
+***************
+*** 84,89 ****
+--- 84,93 ----
+      gui.starting = TRUE;
+      full_screen = FALSE;
+  
++ #ifdef FEAT_GUI_GTK
++     gui.event_time = GDK_CURRENT_TIME;
++ #endif
++ 
+  #ifdef MAY_FORK
+      if (!gui.dofork || vim_strchr(p_go, GO_FORG) || recursive)
+       dofork = FALSE;
+*** ../vim-7.3.233/src/gui.h   2011-05-10 16:41:13.000000000 +0200
+--- src/gui.h  2011-06-26 04:41:21.000000000 +0200
+***************
+*** 401,406 ****
+--- 401,408 ----
+      GtkAccelGroup *accel_group;
+      GtkWidget        *filedlg;           /* file selection dialog */
+      char_u   *browse_fname;      /* file name from filedlg */
++ 
++     guint32  event_time;
+  #endif       /* FEAT_GUI_GTK */
+  
+  #if defined(FEAT_GUI_TABLINE) \
+*** ../vim-7.3.233/src/gui_gtk.c       2011-01-17 20:08:03.000000000 +0100
+--- src/gui_gtk.c      2011-06-26 04:38:09.000000000 +0200
+***************
+*** 1391,1397 ****
+      gtk_menu_popup(GTK_MENU(menu->submenu_id),
+                  NULL, NULL,
+                  (GtkMenuPositionFunc)NULL, NULL,
+!                 3U, (guint32)GDK_CURRENT_TIME);
+  }
+  
+  /* Ugly global variable to pass "mouse_pos" flag from gui_make_popup() to
+--- 1391,1397 ----
+      gtk_menu_popup(GTK_MENU(menu->submenu_id),
+                  NULL, NULL,
+                  (GtkMenuPositionFunc)NULL, NULL,
+!                 3U, gui.event_time);
+  }
+  
+  /* Ugly global variable to pass "mouse_pos" flag from gui_make_popup() to
+*** ../vim-7.3.233/src/gui_gtk_x11.c   2011-06-19 01:14:22.000000000 +0200
+--- src/gui_gtk_x11.c  2011-06-26 04:39:57.000000000 +0200
+***************
+*** 88,95 ****
+  # include <X11/Sunkeysym.h>
+  #endif
+  
+- static guint32 clipboard_event_time = CurrentTime;
+- 
+  /*
+   * Easy-to-use macro for multihead support.
+   */
+--- 88,93 ----
+***************
+*** 934,940 ****
+      guint    state;
+      char_u   *s, *d;
+  
+!     clipboard_event_time = event->time;
+      key_sym = event->keyval;
+      state = event->state;
+  
+--- 932,938 ----
+      guint    state;
+      char_u   *s, *d;
+  
+!     gui.event_time = event->time;
+      key_sym = event->keyval;
+      state = event->state;
+  
+***************
+*** 1129,1135 ****
+                 GdkEventKey *event,
+                 gpointer data UNUSED)
+  {
+!     clipboard_event_time = event->time;
+      /*
+       * GTK+ 2 input methods may do fancy stuff on key release events too.
+       * With the default IM for instance, you can enter any UCS code point
+--- 1127,1133 ----
+                 GdkEventKey *event,
+                 gpointer data UNUSED)
+  {
+!     gui.event_time = event->time;
+      /*
+       * GTK+ 2 input methods may do fancy stuff on key release events too.
+       * With the default IM for instance, you can enter any UCS code point
+***************
+*** 1622,1628 ****
+      int x, y;
+      int_u vim_modifiers;
+  
+!     clipboard_event_time = event->time;
+  
+      /* Make sure we have focus now we've been selected */
+      if (gtk_socket_id != 0 && !GTK_WIDGET_HAS_FOCUS(widget))
+--- 1620,1626 ----
+      int x, y;
+      int_u vim_modifiers;
+  
+!     gui.event_time = event->time;
+  
+      /* Make sure we have focus now we've been selected */
+      if (gtk_socket_id != 0 && !GTK_WIDGET_HAS_FOCUS(widget))
+***************
+*** 1733,1739 ****
+      int x, y;
+      int_u vim_modifiers;
+  
+!     clipboard_event_time = event->time;
+  
+      /* Remove any motion "machine gun" timers used for automatic further
+         extension of allocation areas if outside of the applications window
+--- 1731,1737 ----
+      int x, y;
+      int_u vim_modifiers;
+  
+!     gui.event_time = event->time;
+  
+      /* Remove any motion "machine gun" timers used for automatic further
+         extension of allocation areas if outside of the applications window
+***************
+*** 5654,5660 ****
+      int success;
+  
+      success = gtk_selection_owner_set(gui.drawarea, cbd->gtk_sel_atom,
+!                                    clipboard_event_time);
+      gui_mch_update();
+      return (success) ? OK : FAIL;
+  }
+--- 5652,5658 ----
+      int success;
+  
+      success = gtk_selection_owner_set(gui.drawarea, cbd->gtk_sel_atom,
+!                                    gui.event_time);
+      gui_mch_update();
+      return (success) ? OK : FAIL;
+  }
+*** ../vim-7.3.233/src/version.c       2011-06-26 04:25:24.000000000 +0200
+--- src/version.c      2011-06-26 04:47:02.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     234,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+225. You sign up for free subscriptions for all the computer magazines
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.235.patch0 b/vim/patches/vim-7.3.235.patch0
new file mode 100644 (file)
index 0000000..a852c85
--- /dev/null
@@ -0,0 +1,360 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.235
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.235
+Problem:    ";" gets stuck on a "t" command, it's not useful.
+Solution:   Add the ';' flag in 'cpo'. (Christian Brabandt)
+Files:      runtime/doc/motion.txt, runtime/doc/options.txt, src/option.h,
+            src/search.c src/testdir/test81.in, src/testdir/test81.ok,
+            src/testdir/Makefile, src/testdir/Make_amiga.mak,
+            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
+            src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
+
+
+*** ../vim-7.3.234/runtime/doc/motion.txt      2010-08-15 21:57:17.000000000 +0200
+--- runtime/doc/motion.txt     2011-06-26 05:15:58.000000000 +0200
+***************
+*** 269,279 ****
+                       {char} can be entered like with the |f| command.
+  
+                                                       *;*
+! ;                    Repeat latest f, t, F or T [count] times.
+  
+                                                       *,*
+  ,                    Repeat latest f, t, F or T in opposite direction
+!                      [count] times.
+  
+  ==============================================================================
+  3. Up-down motions                                   *up-down-motions*
+--- 269,279 ----
+                       {char} can be entered like with the |f| command.
+  
+                                                       *;*
+! ;                    Repeat latest f, t, F or T [count] times. See |cpo-;|
+  
+                                                       *,*
+  ,                    Repeat latest f, t, F or T in opposite direction
+!                      [count] times. See also |cpo-;|
+  
+  ==============================================================================
+  3. Up-down motions                                   *up-down-motions*
+*** ../vim-7.3.234/runtime/doc/options.txt     2011-06-12 20:42:17.000000000 +0200
+--- runtime/doc/options.txt    2011-06-26 05:15:58.000000000 +0200
+***************
+*** 2090,2095 ****
+--- 2117,2128 ----
+                                                               *cpo->*
+               >       When appending to a register, put a line break before
+                       the appended text.
++                                                              *cpo-;*
++              ;       When using |,| or |;| to repeat the last |t| search
++                      and the cursor is right in front of the searched
++                      character, the cursor won't move. When not included,
++                      the cursor would skip over it and jump to the
++                      following occurence.
+  
+       POSIX flags.  These are not included in the Vi default value, except
+       when $VIM_POSIX was set on startup. |posix|
+*** ../vim-7.3.234/src/option.h        2011-06-12 22:13:37.000000000 +0200
+--- src/option.h       2011-06-26 05:17:58.000000000 +0200
+***************
+*** 169,178 ****
+  #define CPO_SUBPERCENT       '/'     /* % in :s string uses previous one */
+  #define CPO_BACKSL   '\\'    /* \ is not special in [] */
+  #define CPO_CHDIR    '.'     /* don't chdir if buffer is modified */
+  /* default values for Vim, Vi and POSIX */
+  #define CPO_VIM              "aABceFs"
+! #define CPO_VI               "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>"
+! #define CPO_ALL              "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\\."
+  
+  /* characters for p_ww option: */
+  #define WW_ALL               "bshl<>[],~"
+--- 169,180 ----
+  #define CPO_SUBPERCENT       '/'     /* % in :s string uses previous one */
+  #define CPO_BACKSL   '\\'    /* \ is not special in [] */
+  #define CPO_CHDIR    '.'     /* don't chdir if buffer is modified */
++ #define CPO_SCOLON   ';'     /* using "," and ";" will skip over char if
++                               * cursor would not move */
+  /* default values for Vim, Vi and POSIX */
+  #define CPO_VIM              "aABceFs"
+! #define CPO_VI               "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>;"
+! #define CPO_ALL              "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\\.;"
+  
+  /* characters for p_ww option: */
+  #define WW_ALL               "bshl<>[],~"
+*** ../vim-7.3.234/src/search.c        2011-05-10 16:41:13.000000000 +0200
+--- src/search.c       2011-06-26 05:20:45.000000000 +0200
+***************
+*** 1546,1551 ****
+--- 1546,1552 ----
+      int                      col;
+      char_u           *p;
+      int                      len;
++     int                      stop = TRUE;
+  #ifdef FEAT_MBYTE
+      static char_u    bytes[MB_MAXBYTES];
+      static int               bytelen = 1;    /* >1 for multi-byte char */
+***************
+*** 1580,1585 ****
+--- 1581,1592 ----
+       t_cmd = last_t_cmd;
+       c = lastc;
+       /* For multi-byte re-use last bytes[] and bytelen. */
++ 
++      /* Force a move of at least one char, so ";" and "," will move the
++       * cursor, even if the cursor is right in front of char we are looking
++       * at. */
++      if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1)
++          stop = FALSE;
+      }
+  
+      if (dir == BACKWARD)
+***************
+*** 1612,1625 ****
+               }
+               if (bytelen == 1)
+               {
+!                  if (p[col] == c)
+                       break;
+               }
+               else
+               {
+!                  if (vim_memcmp(p + col, bytes, bytelen) == 0)
+                       break;
+               }
+           }
+       }
+       else
+--- 1619,1633 ----
+               }
+               if (bytelen == 1)
+               {
+!                  if (p[col] == c && stop)
+                       break;
+               }
+               else
+               {
+!                  if (vim_memcmp(p + col, bytes, bytelen) == 0 && stop)
+                       break;
+               }
++              stop = TRUE;
+           }
+       }
+       else
+***************
+*** 1629,1636 ****
+           {
+               if ((col += dir) < 0 || col >= len)
+                   return FAIL;
+!              if (p[col] == c)
+                   break;
+           }
+       }
+      }
+--- 1637,1645 ----
+           {
+               if ((col += dir) < 0 || col >= len)
+                   return FAIL;
+!              if (p[col] == c && stop)
+                   break;
++              stop = TRUE;
+           }
+       }
+      }
+*** ../vim-7.3.234/src/testdir/test81.in       2011-06-26 05:34:33.000000000 +0200
+--- src/testdir/test81.in      2011-06-26 05:30:31.000000000 +0200
+***************
+*** 0 ****
+--- 1,18 ----
++ Test for t movement command and 'cpo-;' setting
++ 
++ STARTTEST
++ :set nocompatible
++ :set cpo-=;
++ /firstline/
++ j0tt;D
++ $Ty;D:set cpo+=;
++ j0tt;;D
++ $Ty;;D:?firstline?+1,$w! test.out
++ :qa!
++ ENDTEST
++ 
++ firstline
++ aaa two three four
++ bbb yee yoo four
++ ccc two three four
++ ddd yee yoo four
+*** ../vim-7.3.234/src/testdir/test81.ok       2011-06-26 05:34:33.000000000 +0200
+--- src/testdir/test81.ok      2011-06-26 05:31:33.000000000 +0200
+***************
+*** 0 ****
+--- 1,4 ----
++ aaa two
++ bbb y
++ ccc
++ ddd yee y
+*** ../vim-7.3.234/src/testdir/Makefile        2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Makefile       2011-06-26 05:09:56.000000000 +0200
+***************
+*** 26,32 ****
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out
+  
+  SCRIPTS_GUI = test16.out
+  
+--- 26,32 ----
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out
+  
+  SCRIPTS_GUI = test16.out
+  
+*** ../vim-7.3.234/src/testdir/Make_amiga.mak  2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Make_amiga.mak 2011-06-26 05:09:07.000000000 +0200
+***************
+*** 28,34 ****
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out test77.out test78.out test79.out test80.out
+  
+  .SUFFIXES: .in .out
+  
+--- 28,35 ----
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out test77.out test78.out test79.out test80.out \
+!              test81.out
+  
+  .SUFFIXES: .in .out
+  
+***************
+*** 128,130 ****
+--- 129,132 ----
+  test78.out: test78.in
+  test79.out: test79.in
+  test80.out: test80.in
++ test81.out: test81.in
+*** ../vim-7.3.234/src/testdir/Make_dos.mak    2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Make_dos.mak   2011-06-26 05:09:16.000000000 +0200
+***************
+*** 29,35 ****
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 29,35 ----
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.234/src/testdir/Make_ming.mak   2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Make_ming.mak  2011-06-26 05:09:24.000000000 +0200
+***************
+*** 49,55 ****
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 49,55 ----
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.234/src/testdir/Make_os2.mak    2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Make_os2.mak   2011-06-26 05:09:33.000000000 +0200
+***************
+*** 28,34 ****
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out test77.out test78.out test79.out test80.out
+  
+  .SUFFIXES: .in .out
+  
+--- 28,35 ----
+               test61.out test62.out test63.out test64.out test65.out \
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+!              test76.out test77.out test78.out test79.out test80.out \
+!              test81.out
+  
+  .SUFFIXES: .in .out
+  
+*** ../vim-7.3.234/src/testdir/Make_vms.mms    2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Make_vms.mms   2011-06-26 05:09:42.000000000 +0200
+***************
+*** 4,10 ****
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2011 Jun 19
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2011 Jun 26
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+***************
+*** 75,81 ****
+        test61.out test62.out test63.out test64.out test65.out \
+        test66.out test67.out test68.out test69.out \
+        test71.out test72.out test74.out test75.out test76.out \
+!       test77.out test78.out test79.out test80.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+--- 75,81 ----
+        test61.out test62.out test63.out test64.out test65.out \
+        test66.out test67.out test68.out test69.out \
+        test71.out test72.out test74.out test75.out test76.out \
+!       test77.out test78.out test79.out test80.out test81.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.234/src/version.c       2011-06-26 04:48:56.000000000 +0200
+--- src/version.c      2011-06-26 05:33:53.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     235,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+226. You sit down at the computer right after dinner and your spouse
+     says "See you in the morning."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.236.patch0 b/vim/patches/vim-7.3.236.patch0
new file mode 100644 (file)
index 0000000..3be69e3
--- /dev/null
@@ -0,0 +1,87 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.236
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.236 (after 7.3.232)
+Problem:    Python 3 doesn't compile without +multi_byte 
+Solution:   Use "latin1" when MULTI_BYTE is not defined. (lilydjwg)
+Files:      src/if_python3.c
+
+
+*** ../vim-7.3.235/src/if_python3.c    2011-06-19 00:27:46.000000000 +0200
+--- src/if_python3.c   2011-06-26 19:10:57.000000000 +0200
+***************
+*** 70,76 ****
+  
+  #define PyInt Py_ssize_t
+  #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)p_enc, NULL);
+  #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+  #define PyString_AsString(obj) PyBytes_AsString(obj)
+  #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+--- 70,76 ----
+  
+  #define PyInt Py_ssize_t
+  #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, NULL);
+  #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+  #define PyString_AsString(obj) PyBytes_AsString(obj)
+  #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+***************
+*** 661,667 ****
+  
+      /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
+       * SyntaxError (unicode error). */
+!     cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)p_enc, NULL);
+      cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
+      Py_XDECREF(cmdstr);
+      PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+--- 661,667 ----
+  
+      /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
+       * SyntaxError (unicode error). */
+!     cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)ENC_OPT, NULL);
+      cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
+      Py_XDECREF(cmdstr);
+      PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+***************
+*** 1463,1469 ****
+      }
+      *p = '\0';
+  
+!     result = PyUnicode_Decode(tmp, len, (char *)p_enc, NULL);
+  
+      vim_free(tmp);
+      return result;
+--- 1463,1469 ----
+      }
+      *p = '\0';
+  
+!     result = PyUnicode_Decode(tmp, len, (char *)ENC_OPT, NULL);
+  
+      vim_free(tmp);
+      return result;
+*** ../vim-7.3.235/src/version.c       2011-06-26 05:36:07.000000000 +0200
+--- src/version.c      2011-06-26 19:12:12.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     236,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+228. You spend Saturday night making the counter on your home page
+     pass that 2000 mark.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.237.patch0 b/vim/patches/vim-7.3.237.patch0
new file mode 100644 (file)
index 0000000..ead50ca
--- /dev/null
@@ -0,0 +1,222 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.237
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.237
+Problem:    "filetype" completion doesn't work on Windows. (Yue Wu)
+Solution:   Don't use a glob pattern for the directories, use a list of
+            directories. (Dominique Pelle)
+Files:      src/ex_getln.c
+     
+
+*** ../vim-7.3.236/src/ex_getln.c      2011-05-19 18:26:34.000000000 +0200
+--- src/ex_getln.c     2011-06-26 19:36:36.000000000 +0200
+***************
+*** 110,116 ****
+  static int   expand_showtail __ARGS((expand_T *xp));
+  #ifdef FEAT_CMDL_COMPL
+  static int   expand_shellcmd __ARGS((char_u *filepat, int *num_file, char_u ***file, int flagsarg));
+! static int   ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname));
+  # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
+  static int   ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
+  static int   ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
+--- 110,116 ----
+  static int   expand_showtail __ARGS((expand_T *xp));
+  #ifdef FEAT_CMDL_COMPL
+  static int   expand_shellcmd __ARGS((char_u *filepat, int *num_file, char_u ***file, int flagsarg));
+! static int   ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname[]));
+  # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
+  static int   ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
+  static int   ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
+***************
+*** 4536,4548 ****
+           || xp->xp_context == EXPAND_TAGS_LISTFILES)
+       return expand_tags(xp->xp_context == EXPAND_TAGS, pat, num_file, file);
+      if (xp->xp_context == EXPAND_COLORS)
+!      return ExpandRTDir(pat, num_file, file, "colors");
+      if (xp->xp_context == EXPAND_COMPILER)
+!      return ExpandRTDir(pat, num_file, file, "compiler");
+      if (xp->xp_context == EXPAND_OWNSYNTAX)
+!      return ExpandRTDir(pat, num_file, file, "syntax");
+      if (xp->xp_context == EXPAND_FILETYPE)
+!      return ExpandRTDir(pat, num_file, file, "{syntax,indent,ftplugin}");
+  # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
+      if (xp->xp_context == EXPAND_USER_LIST)
+       return ExpandUserList(xp, num_file, file);
+--- 4536,4560 ----
+           || xp->xp_context == EXPAND_TAGS_LISTFILES)
+       return expand_tags(xp->xp_context == EXPAND_TAGS, pat, num_file, file);
+      if (xp->xp_context == EXPAND_COLORS)
+!     {
+!      char *directories[] = {"colors", NULL};
+!      return ExpandRTDir(pat, num_file, file, directories);
+!     }
+      if (xp->xp_context == EXPAND_COMPILER)
+!     {
+!      char *directories[] = {"colors", NULL};
+!      return ExpandRTDir(pat, num_file, file, directories);
+!     }
+      if (xp->xp_context == EXPAND_OWNSYNTAX)
+!     {
+!      char *directories[] = {"syntax", NULL};
+!      return ExpandRTDir(pat, num_file, file, directories);
+!     }
+      if (xp->xp_context == EXPAND_FILETYPE)
+!     {
+!      char *directories[] = {"syntax", "indent", "ftplugin", NULL};
+!      return ExpandRTDir(pat, num_file, file, directories);
+!     }
+  # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
+      if (xp->xp_context == EXPAND_USER_LIST)
+       return ExpandUserList(xp, num_file, file);
+***************
+*** 4995,5051 ****
+  /*
+   * Expand color scheme, compiler or filetype names:
+   * 'runtimepath'/{dirnames}/{pat}.vim
+!  * dirnames may contain one directory (ex: "colorscheme") or can be a glob
+!  * expression matching multiple directories (ex: "{syntax,ftplugin,indent}").
+   */
+      static int
+  ExpandRTDir(pat, num_file, file, dirnames)
+      char_u   *pat;
+      int              *num_file;
+      char_u   ***file;
+!     char     *dirnames;
+  {
+!     char_u   *all;
+      char_u   *s;
+      char_u   *e;
+      garray_T ga;
+  
+      *num_file = 0;
+      *file = NULL;
+!     s = alloc((unsigned)(STRLEN(pat) + STRLEN(dirnames) + 7));
+!     if (s == NULL)
+!      return FAIL;
+!     sprintf((char *)s, "%s/%s*.vim", dirnames, pat);
+!     all = globpath(p_rtp, s, 0);
+!     vim_free(s);
+!     if (all == NULL)
+!      return FAIL;
+  
+!     ga_init2(&ga, (int)sizeof(char *), 3);
+!     for (s = all; *s != NUL; s = e)
+      {
+!      e = vim_strchr(s, '\n');
+!      if (e == NULL)
+!          e = s + STRLEN(s);
+!      if (ga_grow(&ga, 1) == FAIL)
+!          break;
+!      if (e - 4 > s && STRNICMP(e - 4, ".vim", 4) == 0)
+       {
+!          for (s = e - 4; s > all; mb_ptr_back(all, s))
+!              if (*s == '\n' || vim_ispathsep(*s))
+!                  break;
+!          ++s;
+!          ((char_u **)ga.ga_data)[ga.ga_len] =
+                                           vim_strnsave(s, (int)(e - s - 4));
+!          ++ga.ga_len;
+       }
+!      if (*e != NUL)
+!          ++e;
+      }
+!     vim_free(all);
+  
+      /* Sort and remove duplicates which can happen when specifying multiple
+!      * directories in dirnames such as "{syntax,ftplugin,indent}". */
+      remove_duplicates(&ga);
+  
+      *file = ga.ga_data;
+--- 5007,5074 ----
+  /*
+   * Expand color scheme, compiler or filetype names:
+   * 'runtimepath'/{dirnames}/{pat}.vim
+!  * "dirnames" is an array with one or more directory names.
+   */
+      static int
+  ExpandRTDir(pat, num_file, file, dirnames)
+      char_u   *pat;
+      int              *num_file;
+      char_u   ***file;
+!     char     *dirnames[];
+  {
+!     char_u   *matches;
+      char_u   *s;
+      char_u   *e;
+      garray_T ga;
++     int              i;
++     int              pat_len;
+  
+      *num_file = 0;
+      *file = NULL;
+!     pat_len = STRLEN(pat);
+!     ga_init2(&ga, (int)sizeof(char *), 10);
+  
+!     for (i = 0; dirnames[i] != NULL; ++i)
+      {
+!      s = alloc((unsigned)(STRLEN(dirnames[i]) + pat_len + 7));
+!      if (s == NULL)
+       {
+!          ga_clear_strings(&ga);
+!          return FAIL;
+!      }
+!      sprintf((char *)s, "%s/%s*.vim", dirnames[i], pat);
+!      matches = globpath(p_rtp, s, 0);
+!      vim_free(s);
+!      if (matches == NULL)
+!          continue;
+! 
+!      for (s = matches; *s != NUL; s = e)
+!      {
+!          e = vim_strchr(s, '\n');
+!          if (e == NULL)
+!              e = s + STRLEN(s);
+!          if (ga_grow(&ga, 1) == FAIL)
+!              break;
+!          if (e - 4 > s && STRNICMP(e - 4, ".vim", 4) == 0)
+!          {
+!              for (s = e - 4; s > matches; mb_ptr_back(matches, s))
+!                  if (*s == '\n' || vim_ispathsep(*s))
+!                      break;
+!              ++s;
+!              ((char_u **)ga.ga_data)[ga.ga_len] =
+                                           vim_strnsave(s, (int)(e - s - 4));
+!              ++ga.ga_len;
+!          }
+!          if (*e != NUL)
+!              ++e;
+       }
+!      vim_free(matches);
+      }
+!     if (ga.ga_len == 0)
+!         return FAIL;
+  
+      /* Sort and remove duplicates which can happen when specifying multiple
+!      * directories in dirnames. */
+      remove_duplicates(&ga);
+  
+      *file = ga.ga_data;
+*** ../vim-7.3.236/src/version.c       2011-06-26 19:13:33.000000000 +0200
+--- src/version.c      2011-06-26 19:39:39.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     237,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+230. You spend your Friday nights typing away at your keyboard
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.238.patch0 b/vim/patches/vim-7.3.238.patch0
new file mode 100644 (file)
index 0000000..289b1a4
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.238
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.238
+Problem:    Compiler warning for conversion.
+Solution:   Add type cast. (Mike Williams)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.3.237/src/ex_getln.c      2011-06-26 19:40:14.000000000 +0200
+--- src/ex_getln.c     2011-07-04 14:23:27.000000000 +0200
+***************
+*** 5025,5031 ****
+  
+      *num_file = 0;
+      *file = NULL;
+!     pat_len = STRLEN(pat);
+      ga_init2(&ga, (int)sizeof(char *), 10);
+  
+      for (i = 0; dirnames[i] != NULL; ++i)
+--- 5025,5031 ----
+  
+      *num_file = 0;
+      *file = NULL;
+!     pat_len = (int)STRLEN(pat);
+      ga_init2(&ga, (int)sizeof(char *), 10);
+  
+      for (i = 0; dirnames[i] != NULL; ++i)
+*** ../vim-7.3.237/src/version.c       2011-06-26 19:40:14.000000000 +0200
+--- src/version.c      2011-07-07 15:04:00.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     238,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+255. You work for a newspaper and your editor asks you to write an
+     article about Internet addiction...in the "first person."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.239.patch0 b/vim/patches/vim-7.3.239.patch0
new file mode 100644 (file)
index 0000000..1c03da3
--- /dev/null
@@ -0,0 +1,321 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.239
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.239
+Problem:    Python corrects the cursor column without taking 'virtualedit'
+           into account. (lilydjwg)
+Solution:   Call check_cursor_col_win().
+Files:     src/if_py_both.h, src/mbyte.c, src/misc2.c, src/normal.c,
+           src/proto/mbyte.pro, src/proto/misc2.pro
+
+
+*** ../vim-7.3.238/src/if_py_both.h    2011-06-26 04:01:37.000000000 +0200
+--- src/if_py_both.h   2011-07-07 14:28:19.000000000 +0200
+***************
+*** 534,540 ****
+      {
+       long lnum;
+       long col;
+-      long len;
+  
+       if (!PyArg_Parse(val, "(ll)", &lnum, &col))
+           return -1;
+--- 534,539 ----
+***************
+*** 549,566 ****
+       if (VimErrorCheck())
+           return -1;
+  
+-      /* When column is out of range silently correct it. */
+-      len = (long)STRLEN(ml_get_buf(this->win->w_buffer, lnum, FALSE));
+-      if (col > len)
+-          col = len;
+- 
+       this->win->w_cursor.lnum = lnum;
+       this->win->w_cursor.col = col;
+  #ifdef FEAT_VIRTUALEDIT
+       this->win->w_cursor.coladd = 0;
+  #endif
+!      update_screen(VALID);
+  
+       return 0;
+      }
+      else if (strcmp(name, "height") == 0)
+--- 548,562 ----
+       if (VimErrorCheck())
+           return -1;
+  
+       this->win->w_cursor.lnum = lnum;
+       this->win->w_cursor.col = col;
+  #ifdef FEAT_VIRTUALEDIT
+       this->win->w_cursor.coladd = 0;
+  #endif
+!      /* When column is out of range silently correct it. */
+!      check_cursor_col_win(this->win);
+  
++      update_screen(VALID);
+       return 0;
+      }
+      else if (strcmp(name, "height") == 0)
+*** ../vim-7.3.238/src/mbyte.c 2011-04-11 14:29:13.000000000 +0200
+--- src/mbyte.c        2011-07-07 14:27:07.000000000 +0200
+***************
+*** 3563,3569 ****
+      void
+  mb_adjust_cursor()
+  {
+!     mb_adjustpos(&curwin->w_cursor);
+  }
+  
+  /*
+--- 3563,3569 ----
+      void
+  mb_adjust_cursor()
+  {
+!     mb_adjustpos(curbuf, &curwin->w_cursor);
+  }
+  
+  /*
+***************
+*** 3571,3577 ****
+   * If it points to a tail byte it's moved backwards to the head byte.
+   */
+      void
+! mb_adjustpos(lp)
+      pos_T    *lp;
+  {
+      char_u   *p;
+--- 3571,3578 ----
+   * If it points to a tail byte it's moved backwards to the head byte.
+   */
+      void
+! mb_adjustpos(buf, lp)
+!     buf_T    *buf;
+      pos_T    *lp;
+  {
+      char_u   *p;
+***************
+*** 3582,3588 ****
+  #endif
+           )
+      {
+!      p = ml_get(lp->lnum);
+       lp->col -= (*mb_head_off)(p, p + lp->col);
+  #ifdef FEAT_VIRTUALEDIT
+       /* Reset "coladd" when the cursor would be on the right half of a
+--- 3583,3589 ----
+  #endif
+           )
+      {
+!      p = ml_get_buf(buf, lp->lnum, FALSE);
+       lp->col -= (*mb_head_off)(p, p + lp->col);
+  #ifdef FEAT_VIRTUALEDIT
+       /* Reset "coladd" when the cursor would be on the right half of a
+*** ../vim-7.3.238/src/misc2.c 2011-04-11 16:56:29.000000000 +0200
+--- src/misc2.c        2011-07-07 14:27:50.000000000 +0200
+***************
+*** 333,339 ****
+  #ifdef FEAT_MBYTE
+      /* prevent from moving onto a trail byte */
+      if (has_mbyte)
+!      mb_adjustpos(pos);
+  #endif
+  
+      if (col < wcol)
+--- 333,339 ----
+  #ifdef FEAT_MBYTE
+      /* prevent from moving onto a trail byte */
+      if (has_mbyte)
+!      mb_adjustpos(curbuf, pos);
+  #endif
+  
+      if (col < wcol)
+***************
+*** 544,559 ****
+      void
+  check_cursor_col()
+  {
+      colnr_T len;
+  #ifdef FEAT_VIRTUALEDIT
+!     colnr_T oldcol = curwin->w_cursor.col;
+!     colnr_T oldcoladd = curwin->w_cursor.col + curwin->w_cursor.coladd;
+  #endif
+  
+!     len = (colnr_T)STRLEN(ml_get_curline());
+      if (len == 0)
+!      curwin->w_cursor.col = 0;
+!     else if (curwin->w_cursor.col >= len)
+      {
+       /* Allow cursor past end-of-line when:
+        * - in Insert mode or restarting Insert mode
+--- 544,569 ----
+      void
+  check_cursor_col()
+  {
++     check_cursor_col_win(curwin);
++ }
++ 
++ /*
++  * Make sure win->w_cursor.col is valid.
++  */
++     void
++ check_cursor_col_win(win)
++     win_T *win;
++ {
+      colnr_T len;
+  #ifdef FEAT_VIRTUALEDIT
+!     colnr_T oldcol = win->w_cursor.col;
+!     colnr_T oldcoladd = win->w_cursor.col + win->w_cursor.coladd;
+  #endif
+  
+!     len = (colnr_T)STRLEN(ml_get_buf(win->w_buffer, win->w_cursor.lnum, FALSE));
+      if (len == 0)
+!      win->w_cursor.col = 0;
+!     else if (win->w_cursor.col >= len)
+      {
+       /* Allow cursor past end-of-line when:
+        * - in Insert mode or restarting Insert mode
+***************
+*** 567,599 ****
+               || (ve_flags & VE_ONEMORE)
+  #endif
+               || virtual_active())
+!          curwin->w_cursor.col = len;
+       else
+       {
+!          curwin->w_cursor.col = len - 1;
+  #ifdef FEAT_MBYTE
+!          /* prevent cursor from moving on the trail byte */
+           if (has_mbyte)
+!              mb_adjust_cursor();
+  #endif
+       }
+      }
+!     else if (curwin->w_cursor.col < 0)
+!      curwin->w_cursor.col = 0;
+  
+  #ifdef FEAT_VIRTUALEDIT
+      /* If virtual editing is on, we can leave the cursor on the old position,
+       * only we must set it to virtual.  But don't do it when at the end of the
+       * line. */
+      if (oldcol == MAXCOL)
+!      curwin->w_cursor.coladd = 0;
+      else if (ve_flags == VE_ALL)
+      {
+!      if (oldcoladd > curwin->w_cursor.col)
+!          curwin->w_cursor.coladd = oldcoladd - curwin->w_cursor.col;
+       else
+           /* avoid weird number when there is a miscalculation or overflow */
+!          curwin->w_cursor.coladd = 0;
+      }
+  #endif
+  }
+--- 577,609 ----
+               || (ve_flags & VE_ONEMORE)
+  #endif
+               || virtual_active())
+!          win->w_cursor.col = len;
+       else
+       {
+!          win->w_cursor.col = len - 1;
+  #ifdef FEAT_MBYTE
+!          /* Move the cursor to the head byte. */
+           if (has_mbyte)
+!              mb_adjustpos(win->w_buffer, &win->w_cursor);
+  #endif
+       }
+      }
+!     else if (win->w_cursor.col < 0)
+!      win->w_cursor.col = 0;
+  
+  #ifdef FEAT_VIRTUALEDIT
+      /* If virtual editing is on, we can leave the cursor on the old position,
+       * only we must set it to virtual.  But don't do it when at the end of the
+       * line. */
+      if (oldcol == MAXCOL)
+!      win->w_cursor.coladd = 0;
+      else if (ve_flags == VE_ALL)
+      {
+!      if (oldcoladd > win->w_cursor.col)
+!          win->w_cursor.coladd = oldcoladd - win->w_cursor.col;
+       else
+           /* avoid weird number when there is a miscalculation or overflow */
+!          win->w_cursor.coladd = 0;
+      }
+  #endif
+  }
+*** ../vim-7.3.238/src/normal.c        2011-06-20 00:45:55.000000000 +0200
+--- src/normal.c       2011-07-07 14:27:57.000000000 +0200
+***************
+*** 8774,8780 ****
+       {
+           --pp->col;
+  #ifdef FEAT_MBYTE
+!          mb_adjustpos(pp);
+  #endif
+       }
+       else if (pp->lnum > 1)
+--- 8774,8780 ----
+       {
+           --pp->col;
+  #ifdef FEAT_MBYTE
+!          mb_adjustpos(curbuf, pp);
+  #endif
+       }
+       else if (pp->lnum > 1)
+*** ../vim-7.3.238/src/proto/mbyte.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/mbyte.pro        2011-07-07 14:27:09.000000000 +0200
+***************
+*** 56,62 ****
+  int utf_valid_string __ARGS((char_u *s, char_u *end));
+  int dbcs_screen_tail_off __ARGS((char_u *base, char_u *p));
+  void mb_adjust_cursor __ARGS((void));
+! void mb_adjustpos __ARGS((pos_T *lp));
+  char_u *mb_prevptr __ARGS((char_u *line, char_u *p));
+  int mb_charlen __ARGS((char_u *str));
+  int mb_charlen_len __ARGS((char_u *str, int len));
+--- 56,62 ----
+  int utf_valid_string __ARGS((char_u *s, char_u *end));
+  int dbcs_screen_tail_off __ARGS((char_u *base, char_u *p));
+  void mb_adjust_cursor __ARGS((void));
+! void mb_adjustpos __ARGS((buf_T *buf, pos_T *lp));
+  char_u *mb_prevptr __ARGS((char_u *line, char_u *p));
+  int mb_charlen __ARGS((char_u *str));
+  int mb_charlen_len __ARGS((char_u *str, int len));
+*** ../vim-7.3.238/src/proto/misc2.pro 2011-04-11 16:56:29.000000000 +0200
+--- src/proto/misc2.pro        2011-07-07 14:26:57.000000000 +0200
+***************
+*** 14,19 ****
+--- 14,20 ----
+  linenr_T get_cursor_rel_lnum __ARGS((win_T *wp, linenr_T lnum));
+  void check_cursor_lnum __ARGS((void));
+  void check_cursor_col __ARGS((void));
++ void check_cursor_col_win __ARGS((win_T *win));
+  void check_cursor __ARGS((void));
+  void adjust_cursor_col __ARGS((void));
+  int leftcol_changed __ARGS((void));
+*** ../vim-7.3.238/src/version.c       2011-07-07 15:04:38.000000000 +0200
+--- src/version.c      2011-07-07 15:05:49.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     239,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+256. You are able to write down over 250 symptoms of being an internet
+     addict, even though they only asked for 101.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.240.patch0 b/vim/patches/vim-7.3.240.patch0
new file mode 100644 (file)
index 0000000..7048ac1
--- /dev/null
@@ -0,0 +1,795 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.240
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Note: I haven't verified this works or even compiles.  Please send me a
+patch if you see a problem and can fix it.
+
+Patch 7.3.240
+Problem:    External commands can't use pipes on MS-Windows.
+Solution:   Implement pipes and use them when 'shelltemp' isn't set. (Vincent
+           Berthoux)
+Files:     src/eval.c, src/ex_cmds.c, src/misc2.c, src/os_unix.c,
+           src/os_win32.c, src/proto/misc2.pro, src/ui.c
+
+
+*** ../vim-7.3.239/src/eval.c  2011-06-19 02:55:32.000000000 +0200
+--- src/eval.c 2011-07-07 15:44:56.000000000 +0200
+***************
+*** 11931,11937 ****
+  #ifdef FEAT_SEARCHPATH
+       "file_in_path",
+  #endif
+! #if defined(UNIX) && !defined(USE_SYSTEM)
+       "filterpipe",
+  #endif
+  #ifdef FEAT_FIND_ID
+--- 11931,11937 ----
+  #ifdef FEAT_SEARCHPATH
+       "file_in_path",
+  #endif
+! #if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(WIN3264)
+       "filterpipe",
+  #endif
+  #ifdef FEAT_FIND_ID
+*** ../vim-7.3.239/src/ex_cmds.c       2011-06-12 22:03:15.000000000 +0200
+--- src/ex_cmds.c      2011-07-07 15:44:56.000000000 +0200
+***************
+*** 1107,1113 ****
+      if (do_out)
+       shell_flags |= SHELL_DOOUT;
+  
+! #if !defined(USE_SYSTEM) && defined(UNIX)
+      if (!do_in && do_out && !p_stmp)
+      {
+       /* Use a pipe to fetch stdout of the command, do not use a temp file. */
+--- 1107,1113 ----
+      if (do_out)
+       shell_flags |= SHELL_DOOUT;
+  
+! #if (!defined(USE_SYSTEM) && defined(UNIX)) || defined(WIN3264)
+      if (!do_in && do_out && !p_stmp)
+      {
+       /* Use a pipe to fetch stdout of the command, do not use a temp file. */
+*** ../vim-7.3.239/src/misc2.c 2011-07-07 15:08:53.000000000 +0200
+--- src/misc2.c        2011-07-07 15:55:42.000000000 +0200
+***************
+*** 2146,2151 ****
+--- 2146,2170 ----
+      }
+  }
+  
++ #if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(WIN3264)
++ /*
++  * Append the text in "gap" below the cursor line and clear "gap".
++  */
++     void
++ append_ga_line(gap)
++     garray_T *gap;
++ {
++     /* Remove trailing CR. */
++     if (gap->ga_len > 0
++          && !curbuf->b_p_bin
++          && ((char_u *)gap->ga_data)[gap->ga_len - 1] == CAR)
++      --gap->ga_len;
++     ga_append(gap, NUL);
++     ml_append(curwin->w_cursor.lnum++, gap->ga_data, 0, FALSE);
++     gap->ga_len = 0;
++ }
++ #endif
++ 
+  /************************************************************************
+   * functions that use lookup tables for various things, generally to do with
+   * special key codes.
+*** ../vim-7.3.239/src/os_unix.c       2011-04-11 16:56:29.000000000 +0200
+--- src/os_unix.c      2011-07-07 15:54:58.000000000 +0200
+***************
+*** 3660,3686 ****
+      /* Nothing to do. */
+  }
+  
+- #ifndef USE_SYSTEM
+- static void append_ga_line __ARGS((garray_T *gap));
+- 
+- /*
+-  * Append the text in "gap" below the cursor line and clear "gap".
+-  */
+-     static void
+- append_ga_line(gap)
+-     garray_T *gap;
+- {
+-     /* Remove trailing CR. */
+-     if (gap->ga_len > 0
+-          && !curbuf->b_p_bin
+-          && ((char_u *)gap->ga_data)[gap->ga_len - 1] == CAR)
+-      --gap->ga_len;
+-     ga_append(gap, NUL);
+-     ml_append(curwin->w_cursor.lnum++, gap->ga_data, 0, FALSE);
+-     gap->ga_len = 0;
+- }
+- #endif
+- 
+      int
+  mch_call_shell(cmd, options)
+      char_u   *cmd;
+--- 3660,3665 ----
+*** ../vim-7.3.239/src/os_win32.c      2011-05-25 17:06:16.000000000 +0200
+--- src/os_win32.c     2011-07-07 16:08:30.000000000 +0200
+***************
+*** 417,422 ****
+--- 417,427 ----
+  static PGNSECINFO pGetNamedSecurityInfo;
+  #endif
+  
++ typedef BOOL (WINAPI *PSETHANDLEINFORMATION)(HANDLE, DWORD, DWORD);
++ 
++ static BOOL allowPiping = FALSE;
++ static PSETHANDLEINFORMATION pSetHandleInformation;
++ 
+  /*
+   * Set g_PlatformId to VER_PLATFORM_WIN32_NT (NT) or
+   * VER_PLATFORM_WIN32_WINDOWS (Win95).
+***************
+*** 467,472 ****
+--- 472,489 ----
+           }
+       }
+  #endif
++      /*
++       * If we are on windows NT, try to load the pipe functions, only
++       * available from Win2K.
++       */
++      if (g_PlatformId == VER_PLATFORM_WIN32_NT)
++      {
++          HANDLE kernel32 = GetModuleHandle("kernel32");
++          pSetHandleInformation = (PSETHANDLEINFORMATION)GetProcAddress(
++                                          kernel32, "SetHandleInformation");
++ 
++          allowPiping = pSetHandleInformation != NULL;
++      }
+       done = TRUE;
+      }
+  }
+***************
+*** 1635,1641 ****
+  }
+  
+  #if ((defined(__MINGW32__) || defined (__CYGWIN32__)) && \
+!         __MSVCRT_VERSION__ >= 0x800) || (defined(_MSC_VER) && _MSC_VER >= 1400)
+  /*
+   * Bad parameter handler.
+   *
+--- 1652,1658 ----
+  }
+  
+  #if ((defined(__MINGW32__) || defined (__CYGWIN32__)) && \
+!        __MSVCRT_VERSION__ >= 0x800) || (defined(_MSC_VER) && _MSC_VER >= 1400)
+  /*
+   * Bad parameter handler.
+   *
+***************
+*** 3210,3216 ****
+   *    4. Prompt the user to press a key to close the console window
+   */
+      static int
+! mch_system(char *cmd, int options)
+  {
+      STARTUPINFO              si;
+      PROCESS_INFORMATION pi;
+--- 3227,3233 ----
+   *    4. Prompt the user to press a key to close the console window
+   */
+      static int
+! mch_system_classic(char *cmd, int options)
+  {
+      STARTUPINFO              si;
+      PROCESS_INFORMATION pi;
+***************
+*** 3315,3320 ****
+--- 3332,3829 ----
+  
+      return ret;
+  }
++ 
++ /*
++  * Thread launched by the gui to send the current buffer data to the
++  * process. This way avoid to hang up vim totally if the children
++  * process take a long time to process the lines.
++  */
++     static DWORD WINAPI
++ sub_process_writer(LPVOID param)
++ {
++     HANDLE       g_hChildStd_IN_Wr = param;
++     linenr_T     lnum = curbuf->b_op_start.lnum;
++     DWORD        len = 0;
++     DWORD        l;
++     char_u       *lp = ml_get(lnum);
++     char_u       *s;
++     int                  written = 0;
++ 
++     for (;;)
++     {
++      l = (DWORD)STRLEN(lp + written);
++      if (l == 0)
++          len = 0;
++      else if (lp[written] == NL)
++      {
++          /* NL -> NUL translation */
++          WriteFile(g_hChildStd_IN_Wr, "", 1, &len, NULL);
++      }
++      else
++      {
++          s = vim_strchr(lp + written, NL);
++          WriteFile(g_hChildStd_IN_Wr, (char *)lp + written,
++                    s == NULL ? l : (DWORD)(s - (lp + written)),
++                    &len, NULL);
++      }
++      if (len == (int)l)
++      {
++          /* Finished a line, add a NL, unless this line should not have
++           * one. */
++          if (lnum != curbuf->b_op_end.lnum
++              || !curbuf->b_p_bin
++              || (lnum != curbuf->b_no_eol_lnum
++                  && (lnum != curbuf->b_ml.ml_line_count
++                      || curbuf->b_p_eol)))
++          {
++              WriteFile(g_hChildStd_IN_Wr, "\n", 1, &ignored, NULL);
++          }
++ 
++          ++lnum;
++          if (lnum > curbuf->b_op_end.lnum)
++              break;
++ 
++          lp = ml_get(lnum);
++          written = 0;
++      }
++      else if (len > 0)
++          written += len;
++     }
++ 
++     /* finished all the lines, close pipe */
++     CloseHandle(g_hChildStd_IN_Wr);
++     ExitThread(0);
++ }
++ 
++ 
++ # define BUFLEN 100  /* length for buffer, stolen from unix version */
++ 
++ /*
++  * This function read from the children's stdout and write the
++  * data on screen or in the buffer accordingly.
++  */
++     static void
++ dump_pipe(int            options,
++        HANDLE    g_hChildStd_OUT_Rd,
++        garray_T  *ga,
++        char_u    buffer[],
++        DWORD     *buffer_off)
++ {
++     DWORD    availableBytes = 0;
++     DWORD    i;
++     int              c;
++     char_u   *p;
++     int              ret;
++     DWORD    len;
++     DWORD    toRead;
++     int              repeatCount;
++ 
++     /* we query the pipe to see if there is any data to read
++      * to avoid to perform a blocking read */
++     ret = PeekNamedPipe(g_hChildStd_OUT_Rd, /* pipe to query */
++                      NULL,               /* optional buffer */
++                      0,                  /* buffe size */
++                      NULL,               /* number of read bytes */
++                      &availableBytes,    /* available bytes total */
++                      NULL);              /* byteLeft */
++ 
++     repeatCount = 0;
++     /* We got real data in the pipe, read it */
++     while (ret != 0 && availableBytes > 0 && availableBytes > 0)
++     {
++      repeatCount++;
++      toRead =
++ # ifdef FEAT_MBYTE
++               (DWORD)(BUFLEN - *buffer_off);
++ # else
++               (DWORD)BUFLEN;
++ # endif
++      toRead = availableBytes < toRead ? availableBytes : toRead;
++      ReadFile(g_hChildStd_OUT_Rd, buffer
++ # ifdef FEAT_MBYTE
++               + *buffer_off, toRead
++ # else
++               , toRead
++ # endif
++               , &len, NULL);
++ 
++      /* If we haven't read anything, there is a problem */
++      if (len == 0)
++          break;
++ 
++      availableBytes -= len;
++ 
++      if (options & SHELL_READ)
++      {
++          /* Do NUL -> NL translation, append NL separated
++           * lines to the current buffer. */
++          for (i = 0; i < len; ++i)
++          {
++              if (buffer[i] == NL)
++                  append_ga_line(ga);
++              else if (buffer[i] == NUL)
++                  ga_append(ga, NL);
++              else
++                  ga_append(ga, buffer[i]);
++          }
++      }
++ # ifdef FEAT_MBYTE
++      else if (has_mbyte)
++      {
++          int         l;
++ 
++          len += *buffer_off;
++          buffer[len] = NUL;
++ 
++          /* Check if the last character in buffer[] is
++           * incomplete, keep these bytes for the next
++           * round. */
++          for (p = buffer; p < buffer + len; p += l)
++          {
++              l = mb_cptr2len(p);
++              if (l == 0)
++                  l = 1;  /* NUL byte? */
++              else if (MB_BYTE2LEN(*p) != l)
++                  break;
++          }
++          if (p == buffer)    /* no complete character */
++          {
++              /* avoid getting stuck at an illegal byte */
++              if (len >= 12)
++                  ++p;
++              else
++              {
++                  *buffer_off = len;
++                  return;
++              }
++          }
++          c = *p;
++          *p = NUL;
++          msg_puts(buffer);
++          if (p < buffer + len)
++          {
++              *p = c;
++              *buffer_off = (DWORD)((buffer + len) - p);
++              mch_memmove(buffer, p, *buffer_off);
++              return;
++          }
++          *buffer_off = 0;
++      }
++ # endif /* FEAT_MBYTE */
++      else
++      {
++          buffer[len] = NUL;
++          msg_puts(buffer);
++      }
++ 
++      windgoto(msg_row, msg_col);
++      cursor_on();
++      out_flush();
++     }
++ }
++ 
++ /*
++  * Version of system to use for windows NT > 5.0 (Win2K), use pipe
++  * for communication and doesn't open any new window.
++  */
++     static int
++ mch_system_piped(char *cmd, int options)
++ {
++     STARTUPINFO              si;
++     PROCESS_INFORMATION pi;
++     DWORD            ret = 0;
++ 
++     HANDLE g_hChildStd_IN_Rd = NULL;
++     HANDLE g_hChildStd_IN_Wr = NULL;
++     HANDLE g_hChildStd_OUT_Rd = NULL;
++     HANDLE g_hChildStd_OUT_Wr = NULL;
++ 
++     char_u   buffer[BUFLEN + 1]; /* reading buffer + size */
++     DWORD    len;
++ 
++     /* buffer used to receive keys */
++     char_u   ta_buf[BUFLEN + 1];     /* TypeAHead */
++     int              ta_len = 0;             /* valid bytes in ta_buf[] */
++ 
++     DWORD    i;
++     int              c;
++     int              noread_cnt = 0;
++     garray_T ga;
++     int          delay = 1;
++ # ifdef FEAT_MBYTE
++     DWORD    buffer_off = 0; /* valid bytes in buffer[] */
++ # endif
++ 
++     SECURITY_ATTRIBUTES saAttr;
++ 
++     /* Set the bInheritHandle flag so pipe handles are inherited. */
++     saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
++     saAttr.bInheritHandle = TRUE;
++     saAttr.lpSecurityDescriptor = NULL;
++ 
++     if ( ! CreatePipe(&g_hChildStd_OUT_Rd, &g_hChildStd_OUT_Wr, &saAttr, 0)
++      /* Ensure the read handle to the pipe for STDOUT is not inherited. */
++        || ! pSetHandleInformation(g_hChildStd_OUT_Rd, HANDLE_FLAG_INHERIT, 0)
++      /* Create a pipe for the child process's STDIN. */
++        || ! CreatePipe(&g_hChildStd_IN_Rd, &g_hChildStd_IN_Wr, &saAttr, 0)
++      /* Ensure the write handle to the pipe for STDIN is not inherited. */
++        || ! pSetHandleInformation(g_hChildStd_IN_Wr, HANDLE_FLAG_INHERIT, 0) )
++     {
++      CloseHandle(g_hChildStd_IN_Rd);
++      CloseHandle(g_hChildStd_IN_Wr);
++      CloseHandle(g_hChildStd_OUT_Rd);
++      CloseHandle(g_hChildStd_OUT_Wr);
++      MSG_PUTS(_("\nCannot create pipes\n"));
++     }
++ 
++     si.cb = sizeof(si);
++     si.lpReserved = NULL;
++     si.lpDesktop = NULL;
++     si.lpTitle = NULL;
++     si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
++ 
++     /* set-up our file redirection */
++     si.hStdError = g_hChildStd_OUT_Wr;
++     si.hStdOutput = g_hChildStd_OUT_Wr;
++     si.hStdInput = g_hChildStd_IN_Rd;
++     si.wShowWindow = SW_HIDE;
++     si.cbReserved2 = 0;
++     si.lpReserved2 = NULL;
++ 
++     if (options & SHELL_READ)
++      ga_init2(&ga, 1, BUFLEN);
++ 
++     /* Now, run the command */
++     CreateProcess(NULL,                      /* Executable name */
++                cmd,                  /* Command to execute */
++                NULL,                 /* Process security attributes */
++                NULL,                 /* Thread security attributes */
++ 
++                // this command can be litigeous, handle inheritence was
++                // deactivated for pending temp file, but, if we deactivate
++                // it, the pipes don't work for some reason.
++                TRUE,                 /* Inherit handles, first deactivated,
++                                       * but needed */
++                CREATE_DEFAULT_ERROR_MODE, /* Creation flags */
++                NULL,                 /* Environment */
++                NULL,                 /* Current directory */
++                &si,                  /* Startup information */
++                &pi);                 /* Process information */
++ 
++ 
++     /* Close our unused side of the pipes */
++     CloseHandle(g_hChildStd_IN_Rd);
++     CloseHandle(g_hChildStd_OUT_Wr);
++ 
++     if (options & SHELL_WRITE)
++     {
++      HANDLE thread =
++         CreateThread(NULL,  /* security attributes */
++                      0,     /* default stack size */
++                      sub_process_writer, /* function to be executed */
++                      g_hChildStd_IN_Wr,  /* parameter */
++                      0,               /* creation flag, start immediately */
++                      NULL);              /* we don't care about thread id */
++      CloseHandle(thread);
++      g_hChildStd_IN_Wr = NULL;
++     }
++ 
++     /* Keep updating the window while waiting for the shell to finish. */
++     for (;;)
++     {
++      MSG     msg;
++ 
++      if (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
++      {
++          TranslateMessage(&msg);
++          DispatchMessage(&msg);
++      }
++ 
++      /* write pipe information in the window */
++      if ((options & (SHELL_READ|SHELL_WRITE))
++ # ifdef FEAT_GUI
++              || gui.in_use
++ # endif
++          )
++      {
++          len = 0;
++          if (!(options & SHELL_EXPAND)
++              && ((options &
++                      (SHELL_READ|SHELL_WRITE|SHELL_COOKED))
++                  != (SHELL_READ|SHELL_WRITE|SHELL_COOKED)
++ # ifdef FEAT_GUI
++                  || gui.in_use
++ # endif
++                  )
++              && (ta_len > 0 || noread_cnt > 4))
++          {
++              if (ta_len == 0)
++              {
++                  /* Get extra characters when we don't have any.  Reset the
++                   * counter and timer. */
++                  noread_cnt = 0;
++ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)
++                  gettimeofday(&start_tv, NULL);
++ # endif
++                  len = ui_inchar(ta_buf, BUFLEN, 10L, 0);
++              }
++              if (ta_len > 0 || len > 0)
++              {
++                  /*
++                   * For pipes: Check for CTRL-C: send interrupt signal to
++                   * child.  Check for CTRL-D: EOF, close pipe to child.
++                   */
++                  if (len == 1 && cmd != NULL)
++                  {
++                      if (ta_buf[ta_len] == Ctrl_C)
++                      {
++                          /* Learn what exit code is expected, for
++                              * now put 9 as SIGKILL */
++                          TerminateProcess(pi.hProcess, 9);
++                      }
++                      if (ta_buf[ta_len] == Ctrl_D)
++                      {
++                          CloseHandle(g_hChildStd_IN_Wr);
++                          g_hChildStd_IN_Wr = NULL;
++                      }
++                  }
++ 
++                  /* replace K_BS by <BS> and K_DEL by <DEL> */
++                  for (i = ta_len; i < ta_len + len; ++i)
++                  {
++                      if (ta_buf[i] == CSI && len - i > 2)
++                      {
++                          c = TERMCAP2KEY(ta_buf[i + 1], ta_buf[i + 2]);
++                          if (c == K_DEL || c == K_KDEL || c == K_BS)
++                          {
++                              mch_memmove(ta_buf + i + 1, ta_buf + i + 3,
++                                          (size_t)(len - i - 2));
++                              if (c == K_DEL || c == K_KDEL)
++                                  ta_buf[i] = DEL;
++                              else
++                                  ta_buf[i] = Ctrl_H;
++                              len -= 2;
++                          }
++                      }
++                      else if (ta_buf[i] == '\r')
++                          ta_buf[i] = '\n';
++ # ifdef FEAT_MBYTE
++                      if (has_mbyte)
++                          i += (*mb_ptr2len_len)(ta_buf + i,
++                                                  ta_len + len - i) - 1;
++ # endif
++                  }
++ 
++                  /*
++                   * For pipes: echo the typed characters.  For a pty this
++                   * does not seem to work.
++                   */
++                  for (i = ta_len; i < ta_len + len; ++i)
++                  {
++                      if (ta_buf[i] == '\n' || ta_buf[i] == '\b')
++                          msg_putchar(ta_buf[i]);
++ # ifdef FEAT_MBYTE
++                      else if (has_mbyte)
++                      {
++                          int l = (*mb_ptr2len)(ta_buf + i);
++ 
++                          msg_outtrans_len(ta_buf + i, l);
++                          i += l - 1;
++                      }
++ # endif
++                      else
++                          msg_outtrans_len(ta_buf + i, 1);
++                  }
++                  windgoto(msg_row, msg_col);
++                  out_flush();
++ 
++                  ta_len += len;
++ 
++                  /*
++                   * Write the characters to the child, unless EOF has been
++                   * typed for pipes.  Write one character at a time, to
++                   * avoid losing too much typeahead.  When writing buffer
++                   * lines, drop the typed characters (only check for
++                   * CTRL-C).
++                   */
++                  if (options & SHELL_WRITE)
++                      ta_len = 0;
++                  else if (g_hChildStd_IN_Wr != NULL)
++                  {
++                      WriteFile(g_hChildStd_IN_Wr, (char*)ta_buf,
++                                  1, &len, NULL);
++                      // if we are typing in, we want to keep things reactive
++                      delay = 1;
++                      if (len > 0)
++                      {
++                          ta_len -= len;
++                          mch_memmove(ta_buf, ta_buf + len, ta_len);
++                      }
++                  }
++              }
++          }
++      }
++ 
++      if (ta_len)
++          ui_inchar_undo(ta_buf, ta_len);
++ 
++      if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
++      {
++          dump_pipe(options, g_hChildStd_OUT_Rd,
++                      &ga, buffer, &buffer_off);
++          break;
++      }
++ 
++      ++noread_cnt;
++      dump_pipe(options, g_hChildStd_OUT_Rd,
++                  &ga, buffer, &buffer_off);
++ 
++      /* We start waiting for a very short time and then increase it, so
++       * that we respond quickly when the process is quick, and don't
++       * consume too much overhead when it's slow. */
++      if (delay < 50)
++          delay += 10;
++     }
++ 
++     /* Close the pipe */
++     CloseHandle(g_hChildStd_OUT_Rd);
++     if (g_hChildStd_IN_Wr != NULL)
++      CloseHandle(g_hChildStd_IN_Wr);
++ 
++     WaitForSingleObject(pi.hProcess, INFINITE);
++ 
++     /* Get the command exit code */
++     GetExitCodeProcess(pi.hProcess, &ret);
++ 
++     if (options & SHELL_READ)
++     {
++      if (ga.ga_len > 0)
++      {
++          append_ga_line(&ga);
++          /* remember that the NL was missing */
++          curbuf->b_no_eol_lnum = curwin->w_cursor.lnum;
++      }
++      else
++          curbuf->b_no_eol_lnum = 0;
++      ga_clear(&ga);
++     }
++ 
++     /* Close the handles to the subprocess, so that it goes away */
++     CloseHandle(pi.hThread);
++     CloseHandle(pi.hProcess);
++ 
++     return ret;
++ }
++ 
++     static int
++ mch_system(char *cmd, int options)
++ {
++     /* if we can pipe and the shelltemp option is off */
++     if (allowPiping && !p_stmp)
++      return mch_system_piped(cmd, options);
++     else
++      return mch_system_classic(cmd, options);
++ }
+  #else
+  
+  # define mch_system(c, o) system(c)
+***************
+*** 3388,3394 ****
+       char_u *newcmd;
+       long_u cmdlen =  (
+  #ifdef FEAT_GUI_W32
+!              STRLEN(vimrun_path) +
+  #endif
+               STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
+  
+--- 3897,3903 ----
+       char_u *newcmd;
+       long_u cmdlen =  (
+  #ifdef FEAT_GUI_W32
+!              (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
+  #endif
+               STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
+  
+***************
+*** 3497,3503 ****
+                           MB_ICONWARNING);
+                   need_vimrun_warning = FALSE;
+               }
+!              if (!s_dont_use_vimrun)
+                   /* Use vimrun to execute the command.  It opens a console
+                    * window, which can be closed without killing Vim. */
+                   vim_snprintf((char *)newcmd, cmdlen, "%s%s%s %s %s",
+--- 4006,4012 ----
+                           MB_ICONWARNING);
+                   need_vimrun_warning = FALSE;
+               }
+!              if (!s_dont_use_vimrun && (!allowPiping || p_stmp))
+                   /* Use vimrun to execute the command.  It opens a console
+                    * window, which can be closed without killing Vim. */
+                   vim_snprintf((char *)newcmd, cmdlen, "%s%s%s %s %s",
+***************
+*** 3521,3527 ****
+      /* Print the return value, unless "vimrun" was used. */
+      if (x != 0 && !(options & SHELL_SILENT) && !emsg_silent
+  #if defined(FEAT_GUI_W32)
+!              && ((options & SHELL_DOOUT) || s_dont_use_vimrun)
+  #endif
+           )
+      {
+--- 4030,4037 ----
+      /* Print the return value, unless "vimrun" was used. */
+      if (x != 0 && !(options & SHELL_SILENT) && !emsg_silent
+  #if defined(FEAT_GUI_W32)
+!              && ((options & SHELL_DOOUT) || s_dont_use_vimrun
+!                                                || (allowPiping && !p_stmp))
+  #endif
+           )
+      {
+*** ../vim-7.3.239/src/proto/misc2.pro 2011-07-07 15:08:53.000000000 +0200
+--- src/proto/misc2.pro        2011-07-07 15:56:16.000000000 +0200
+***************
+*** 58,63 ****
+--- 58,64 ----
+  char_u *ga_concat_strings __ARGS((garray_T *gap));
+  void ga_concat __ARGS((garray_T *gap, char_u *s));
+  void ga_append __ARGS((garray_T *gap, int c));
++ void append_ga_line __ARGS((garray_T *gap));
+  int name_to_mod_mask __ARGS((int c));
+  int simplify_key __ARGS((int key, int *modifiers));
+  int handle_x_keys __ARGS((int key));
+*** ../vim-7.3.239/src/ui.c    2011-06-19 01:14:23.000000000 +0200
+--- src/ui.c   2011-07-07 15:44:56.000000000 +0200
+***************
+*** 58,64 ****
+  #endif
+  }
+  
+! #if defined(UNIX) || defined(VMS) || defined(PROTO)
+  /*
+   * When executing an external program, there may be some typed characters that
+   * are not consumed by it.  Give them back to ui_inchar() and they are stored
+--- 58,64 ----
+  #endif
+  }
+  
+! #if defined(UNIX) || defined(VMS) || defined(PROTO) || defined(WIN3264)
+  /*
+   * When executing an external program, there may be some typed characters that
+   * are not consumed by it.  Give them back to ui_inchar() and they are stored
+*** ../vim-7.3.239/src/version.c       2011-07-07 15:08:53.000000000 +0200
+--- src/version.c      2011-07-07 16:14:20.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     240,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+257. Your "hundred-and-one" lists include well over 101 items, since you
+     automatically interpret all numbers in hexadecimal notation.
+     (hex 101 = decimal 257)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.241.patch0 b/vim/patches/vim-7.3.241.patch0
new file mode 100644 (file)
index 0000000..3b73c4d
--- /dev/null
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.241
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.241
+Problem:    Using CTRL-R CTRL-W on the command line may insert only part of
+           the word.
+Solution:   Use the cursor position instead of assuming it is at the end of
+           the command. (Tyru)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.3.240/src/ex_getln.c      2011-07-07 15:04:38.000000000 +0200
+--- src/ex_getln.c     2011-07-07 16:38:50.000000000 +0200
+***************
+*** 3046,3052 ****
+           int     len;
+  
+           /* Locate start of last word in the cmd buffer. */
+!          for (w = ccline.cmdbuff + ccline.cmdlen; w > ccline.cmdbuff; )
+           {
+  #ifdef FEAT_MBYTE
+               if (has_mbyte)
+--- 3046,3052 ----
+           int     len;
+  
+           /* Locate start of last word in the cmd buffer. */
+!          for (w = ccline.cmdbuff + ccline.cmdpos; w > ccline.cmdbuff; )
+           {
+  #ifdef FEAT_MBYTE
+               if (has_mbyte)
+***************
+*** 3064,3070 ****
+                   --w;
+               }
+           }
+!          len = (int)((ccline.cmdbuff + ccline.cmdlen) - w);
+           if (p_ic ? STRNICMP(w, arg, len) == 0 : STRNCMP(w, arg, len) == 0)
+               p += len;
+       }
+--- 3064,3070 ----
+                   --w;
+               }
+           }
+!          len = (int)((ccline.cmdbuff + ccline.cmdpos) - w);
+           if (p_ic ? STRNICMP(w, arg, len) == 0 : STRNCMP(w, arg, len) == 0)
+               p += len;
+       }
+*** ../vim-7.3.240/src/version.c       2011-07-07 16:20:45.000000000 +0200
+--- src/version.c      2011-07-07 16:41:29.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     241,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+258. When you want to see your girlfriend, you surf to her homepage.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.242.patch0 b/vim/patches/vim-7.3.242.patch0
new file mode 100644 (file)
index 0000000..0cf4db9
--- /dev/null
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.242
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.242
+Problem:    Illegal memory access in after_pathsep().
+Solution:   Check that the pointer is not at the start of the file name.
+           (Dominique Pelle)
+Files:     src/misc2.c
+
+
+*** ../vim-7.3.241/src/misc2.c 2011-07-07 16:20:45.000000000 +0200
+--- src/misc2.c        2011-07-07 17:05:41.000000000 +0200
+***************
+*** 3247,3253 ****
+  #if defined(FEAT_MBYTE) || defined(PROTO)
+  /*
+   * Return TRUE if "p" points to just after a path separator.
+!  * Take care of multi-byte characters.
+   * "b" must point to the start of the file name
+   */
+      int
+--- 3247,3253 ----
+  #if defined(FEAT_MBYTE) || defined(PROTO)
+  /*
+   * Return TRUE if "p" points to just after a path separator.
+!  * Takes care of multi-byte characters.
+   * "b" must point to the start of the file name
+   */
+      int
+***************
+*** 3255,3261 ****
+      char_u   *b;
+      char_u   *p;
+  {
+!     return vim_ispathsep(p[-1])
+                            && (!has_mbyte || (*mb_head_off)(b, p - 1) == 0);
+  }
+  #endif
+--- 3255,3261 ----
+      char_u   *b;
+      char_u   *p;
+  {
+!     return p > b && vim_ispathsep(p[-1])
+                            && (!has_mbyte || (*mb_head_off)(b, p - 1) == 0);
+  }
+  #endif
+*** ../vim-7.3.241/src/version.c       2011-07-07 16:44:33.000000000 +0200
+--- src/version.c      2011-07-07 17:05:49.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     242,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+260. Co-workers have to E-mail you about the fire alarm to get
+     you out of the building.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.243.patch0 b/vim/patches/vim-7.3.243.patch0
new file mode 100644 (file)
index 0000000..f1f913d
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.243
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.243
+Problem:    Illegal memory access in readline().
+Solution:   Swap the conditions. (Dominique Pelle)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.242/src/eval.c  2011-07-07 16:20:45.000000000 +0200
+--- src/eval.c 2011-07-07 17:32:16.000000000 +0200
+***************
+*** 14318,14324 ****
+       tolist = 0;
+       for ( ; filtd < buflen || readlen <= 0; ++filtd)
+       {
+!          if (buf[filtd] == '\n' || readlen <= 0)
+           {
+               /* In binary mode add an empty list item when the last
+                * non-empty line ends in a '\n'. */
+--- 14318,14324 ----
+       tolist = 0;
+       for ( ; filtd < buflen || readlen <= 0; ++filtd)
+       {
+!          if (readlen <= 0 || buf[filtd] == '\n')
+           {
+               /* In binary mode add an empty list item when the last
+                * non-empty line ends in a '\n'. */
+*** ../vim-7.3.242/src/version.c       2011-07-07 17:15:29.000000000 +0200
+--- src/version.c      2011-07-07 17:32:30.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     243,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+261. You find diskettes in your pockets when doing laundry.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.244.patch0 b/vim/patches/vim-7.3.244.patch0
new file mode 100644 (file)
index 0000000..4cff94f
--- /dev/null
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.244
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.244
+Problem:    MS-Windows: Build problem with old compiler. (John Beckett)
+Solution:   Only use HandleToLong() when available. (Mike Williams)
+Files:     src/gui_w32.c
+
+
+*** ../vim-7.3.243/src/gui_w32.c       2011-05-25 21:18:02.000000000 +0200
+--- src/gui_w32.c      2011-07-07 17:42:36.000000000 +0200
+***************
+*** 1574,1579 ****
+--- 1574,1583 ----
+  #endif
+  
+  #ifdef FEAT_EVAL
++ # if _MSC_VER < 1400
++ /* HandleToLong() only exists in compilers that can do 64 bit builds */
++ #  define HandleToLong(h) ((long)(h))
++ # endif
+      /* set the v:windowid variable */
+      set_vim_var_nr(VV_WINDOWID, HandleToLong(s_hwnd));
+  #endif
+*** ../vim-7.3.243/src/version.c       2011-07-07 17:36:52.000000000 +0200
+--- src/version.c      2011-07-07 17:43:21.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     244,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+262. Your computer has it's own phone line - but your daughter doesn't.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.245.patch0 b/vim/patches/vim-7.3.245.patch0
new file mode 100644 (file)
index 0000000..b05fe43
--- /dev/null
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.245
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.245
+Problem:    Python 3.2 libraries not correctly detected.
+Solution:   Add the suffix to the library name. (Niclas Zeising)
+Files:     src/auto/configure, src/configure.in
+
+
+*** ../vim-7.3.244/src/auto/configure  2011-06-13 01:32:42.000000000 +0200
+--- src/auto/configure 2011-07-13 17:57:05.000000000 +0200
+***************
+*** 5611,5617 ****
+  eof
+                      eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+            rm -f -- "${tmp_mkf}"
+!           vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+            vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+                      vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+            vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+--- 5611,5617 ----
+  eof
+                      eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+            rm -f -- "${tmp_mkf}"
+!        vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
+            vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+                      vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+            vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+*** ../vim-7.3.244/src/configure.in    2011-06-13 01:32:42.000000000 +0200
+--- src/configure.in   2011-07-13 17:57:01.000000000 +0200
+***************
+*** 1068,1074 ****
+            dnl -- delete the lines from make about Entering/Leaving directory
+            eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+            rm -f -- "${tmp_mkf}"
+!           vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+            vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+            dnl remove -ltermcap, it can conflict with an earlier -lncurses
+            vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+--- 1068,1074 ----
+            dnl -- delete the lines from make about Entering/Leaving directory
+            eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+            rm -f -- "${tmp_mkf}"
+!        vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
+            vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+            dnl remove -ltermcap, it can conflict with an earlier -lncurses
+            vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+*** ../vim-7.3.244/src/version.c       2011-07-07 17:43:37.000000000 +0200
+--- src/version.c      2011-07-15 13:09:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     245,
+  /**/
+
+
+-- 
+       When danger reared its ugly head,
+       He bravely turned his tail and fled
+       Yes, Brave Sir Robin turned about
+       And gallantly he chickened out
+       Bravely taking to his feet
+       He beat a very brave retreat
+       Bravest of the brave Sir Robin
+       Petrified of being dead
+       Soiled his pants then brave Sir Robin
+       Turned away and fled.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.246.patch0 b/vim/patches/vim-7.3.246.patch0
new file mode 100644 (file)
index 0000000..d9982ea
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.246
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.246 (after 7.3.235)
+Problem:    Repeating "f4" in "4444" skips one 4.
+Solution:   Check the t_cmd flag. (Christian Brabandt)
+Files:     src/search.c
+
+
+*** ../vim-7.3.245/src/search.c        2011-06-26 05:36:07.000000000 +0200
+--- src/search.c       2011-07-15 13:16:49.000000000 +0200
+***************
+*** 1585,1591 ****
+       /* Force a move of at least one char, so ";" and "," will move the
+        * cursor, even if the cursor is right in front of char we are looking
+        * at. */
+!      if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1)
+           stop = FALSE;
+      }
+  
+--- 1585,1591 ----
+       /* Force a move of at least one char, so ";" and "," will move the
+        * cursor, even if the cursor is right in front of char we are looking
+        * at. */
+!      if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1 && t_cmd)
+           stop = FALSE;
+      }
+  
+*** ../vim-7.3.245/src/version.c       2011-07-15 13:09:46.000000000 +0200
+--- src/version.c      2011-07-15 13:20:40.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     246,
+  /**/
+
+-- 
+   GALAHAD turns back.  We see from his POV the lovely ZOOT standing by him
+   smiling enchantingly and a number of equally delectable GIRLIES draped
+   around in the seductively poulticed room.  They look at him smilingly and
+   wave.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.247.patch0 b/vim/patches/vim-7.3.247.patch0
new file mode 100644 (file)
index 0000000..a0cb566
--- /dev/null
@@ -0,0 +1,95 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.247
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.247
+Problem:    Running tests changes the users viminfo file.  Test for patch 
+            7.3.246 missing.
+Solution:   Add "nviminfo" to the 'viminfo' option.  Include the test.
+Files:      src/testdir/test78.in, src/testdir/test81.in
+
+
+*** ../vim-7.3.246/src/testdir/test78.in       2011-06-13 01:07:22.000000000 +0200
+--- src/testdir/test78.in      2011-07-15 13:26:22.000000000 +0200
+***************
+*** 6,12 ****
+  
+  STARTTEST
+  :so small.vim
+! :set nocp fileformat=unix undolevels=-1
+  :e! Xtest
+  ggdG
+  :let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
+--- 6,12 ----
+  
+  STARTTEST
+  :so small.vim
+! :set nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
+  :e! Xtest
+  ggdG
+  :let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
+*** ../vim-7.3.246/src/testdir/test81.in       2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/test81.in      2011-07-15 13:25:00.000000000 +0200
+***************
+*** 1,10 ****
+  Test for t movement command and 'cpo-;' setting
+  
+  STARTTEST
+! :set nocompatible
+  :set cpo-=;
+  /firstline/
+  j0tt;D
+  $Ty;D:set cpo+=;
+  j0tt;;D
+  $Ty;;D:?firstline?+1,$w! test.out
+--- 1,12 ----
+  Test for t movement command and 'cpo-;' setting
+  
+  STARTTEST
+! :set nocompatible viminfo+=nviminfo
+  :set cpo-=;
+  /firstline/
+  j0tt;D
++ 0fz;D
++ $Fy;D
+  $Ty;D:set cpo+=;
+  j0tt;;D
+  $Ty;;D:?firstline?+1,$w! test.out
+***************
+*** 13,18 ****
+--- 15,22 ----
+  
+  firstline
+  aaa two three four
++     zzz
++ yyy   
+  bbb yee yoo four
+  ccc two three four
+  ddd yee yoo four
+*** ../vim-7.3.246/src/version.c       2011-07-15 13:21:24.000000000 +0200
+--- src/version.c      2011-07-15 13:31:14.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     247,
+  /**/
+
+-- 
+ZOOT:  I'm afraid our life must seem very dull and quiet compared to yours.
+       We are but eightscore young blondes, all between sixteen and
+       nineteen-and-a-half, cut off in this castle, with no one to protect us.
+       Oooh.  It is a lonely life ... bathing ...  dressing ... undressing ...
+       making exciting underwear....
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.248.patch0 b/vim/patches/vim-7.3.248.patch0
new file mode 100644 (file)
index 0000000..6fbf3f6
--- /dev/null
@@ -0,0 +1,129 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.248
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.248
+Problem:    PC Install instructions missing install instructions.
+Solution:   Step-by-step explanation. (Michael Soyka)
+Files:     src/INSTALLpc.txt
+
+
+*** ../vim-7.3.247/src/INSTALLpc.txt   2011-06-12 20:36:00.000000000 +0200
+--- src/INSTALLpc.txt  2011-07-15 13:49:46.000000000 +0200
+***************
+*** 11,19 ****
+  this, then you will get the default behavior as is documented, which should
+  be fine for most people.
+  
+! With the exception of the last two sections (Windows 3.1 and MS-DOS),
+! this document assumes that you are building Vim for Win32
+! (Windows NT/2000/XP/2003/Vista and Windows 95/98/Me)
+  
+  
+  Contents:
+--- 11,19 ----
+  this, then you will get the default behavior as is documented, which should
+  be fine for most people.
+  
+! With the exception of two sections (Windows 3.1 and MS-DOS), this document
+! assumes that you are building Vim for Win32 or later.
+! (Windows 95/98/Me/NT/2000/XP/2003/Vista/7)
+  
+  
+  Contents:
+***************
+*** 27,32 ****
+--- 27,35 ----
+  8. Windows 3.1
+  9. MS-DOS
+  
++ 10. Installing after building from sources
++ 
++ 
+  The currently preferred method is using the free Visual C++ Toolkit 2008
+  |msvc-2008-express|, the produced binary runs on most MS-Windows systems.  If
+  you need the executable to run on Windows 98 or ME, use the 2003 one
+***************
+*** 409,411 ****
+--- 412,470 ----
+  
+  If you get all kinds of strange error messages when compiling, try adding
+  changing the file format from "unix" to "dos".
++ 
++ 
++ 10. Installing after building from sources
++ ==========================================
++ 
++ [provided by Michael Soyka]
++ 
++ After you've built the Vim binaries as described above, you're ready to
++ install Vim on your system.  However, if you've obtained the Vim sources
++ using Mercurial or by downloading them as a unix tar file, you must first 
++ create a "vim73" directory.  If you instead downloaded the sources as
++ zip files, you can skip this setup as the zip archives already have the
++ correct directory structure.  
++ 
++   A.  Create a Vim "runtime" subdirectory named "vim73"
++   -----------------------------------------------------
++   If you obtained your Vim sources as zip files, you can skip this step.  
++   Otherwise, continue reading.
++ 
++   Go to the directory that contains the Vim "src" and "runtime"
++   directories and create a new subdirectory named "vim73".  
++   
++   Copy the "runtime" files into "vim73":
++      copy runtime\* vim73
++ 
++   B.  Copy the new binaries into the "vim73" directory
++   ----------------------------------------------------
++   Regardless of how you installed the Vim sources, you need to copy the
++   new binaries you created above into "vim73":
++ 
++      copy src\*.exe vim73
++      copy src\GvimExt\gvimext.dll vim73
++      copy src\xxd\xxd.exe vim73
++ 
++   C.  Move the "vim73" directory into the Vim installation subdirectory
++   ---------------------------------------------------------------------
++   Move the "vim73" subdirectory into the subdirectory where you want Vim
++   to be installed.  Typically, this subdirectory will be named "vim".  
++   If you already have a "vim73" subdirectory in "vim", delete it first
++   by running its unstal.exe program.  
++ 
++   D.  Install Vim
++   ---------------
++   "cd" to your Vim installation subdirectory "vim\vim73" and run the
++   "install.exe" program.  It will ask you a number of questions about
++   how you would like to have your Vim setup.  Among these are:
++   - You can tell it to write a "_vimrc" file with your preferences in the
++     parent directory.
++   - It can also install an "Edit with Vim" entry in the Windows Explorer
++     popup menu.
++   - You can have it create batch files, so that you can run Vim from the
++     console or in a shell.  You can select one of the directories in your
++     PATH or add the directory to PATH using the Windows Control Panel.  
++   - Create entries for Vim on the desktop and in the Start menu.
++ 
++ Happy Vimming!
+*** ../vim-7.3.247/src/version.c       2011-07-15 13:33:17.000000000 +0200
+--- src/version.c      2011-07-15 13:51:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     248,
+  /**/
+
+-- 
+Linux is just like a wigwam: no Windows, no Gates and an Apache inside.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.249.patch0 b/vim/patches/vim-7.3.249.patch0
new file mode 100644 (file)
index 0000000..661f979
--- /dev/null
@@ -0,0 +1,134 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.249
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.249
+Problem:    Wrong indenting for array initializer.
+Solution:   Detect '}' in a better way. (Lech Lorens)
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.248/src/misc1.c 2011-06-12 21:51:01.000000000 +0200
+--- src/misc1.c        2011-07-15 14:06:44.000000000 +0200
+***************
+*** 7945,7952 ****
+                        * If we're at the end of a block, skip to the start of
+                        * that block.
+                        */
+!                      curwin->w_cursor.col = 0;
+!                      if (*cin_skipcomment(l) == '}'
+                               && (trypos = find_start_brace(ind_maxcomment))
+                                                           != NULL) /* XXX */
+                       {
+--- 7945,7951 ----
+                        * If we're at the end of a block, skip to the start of
+                        * that block.
+                        */
+!                      if (find_last_paren(l, '{', '}')
+                               && (trypos = find_start_brace(ind_maxcomment))
+                                                           != NULL) /* XXX */
+                       {
+*** ../vim-7.3.248/src/testdir/test3.in        2011-06-12 21:51:01.000000000 +0200
+--- src/testdir/test3.in       2011-07-15 14:03:41.000000000 +0200
+***************
+*** 1452,1457 ****
+--- 1452,1487 ----
+  
+  STARTTEST
+  :set cino&
++ :set cino+=l1
++ 2kdd=][
++ ENDTEST
++ 
++ void func(void)
++ {
++      int tab[] =
++      {
++              1, 2, 3,
++              4, 5, 6};
++ 
++      printf("Indent this line correctly!\n");
++ 
++      switch (foo)
++      {
++              case bar:
++                      printf("bar");
++                      break;
++              case baz: {
++                      printf("baz");
++                      break;
++              }
++              case quux:
++ printf("But don't break the indentation of this instruction\n");
++ break;
++      }
++ }
++ 
++ STARTTEST
++ :set cino&
+  2kdd=][
+  ENDTEST
+  
+*** ../vim-7.3.248/src/testdir/test3.ok        2011-06-12 21:51:01.000000000 +0200
+--- src/testdir/test3.ok       2011-07-15 14:03:41.000000000 +0200
+***************
+*** 1310,1315 ****
+--- 1310,1340 ----
+  
+  void func(void)
+  {
++      int tab[] =
++      {
++              1, 2, 3,
++              4, 5, 6};
++ 
++      printf("Indent this line correctly!\n");
++ 
++      switch (foo)
++      {
++              case bar:
++                      printf("bar");
++                      break;
++              case baz: {
++                      printf("baz");
++                      break;
++              }
++              case quux:
++                      printf("But don't break the indentation of this instruction\n");
++                      break;
++      }
++ }
++ 
++ 
++ void func(void)
++ {
+       cout << "a"
+               << "b"
+               << ") :"
+*** ../vim-7.3.248/src/version.c       2011-07-15 13:51:57.000000000 +0200
+--- src/version.c      2011-07-15 14:12:05.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     249,
+  /**/
+
+-- 
+   GALAHAD hurries to the door and pushes through it.  As he leaves the room
+   we CUT TO the reverse to show that he is now in a room full of bathing
+   and romping GIRLIES, all innocent, wide-eyed and beautiful.  They smile
+   enchantingly at him as he tries to keep walking without being diverted by
+   the lovely sights assaulting his eyeballs.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.250.patch0 b/vim/patches/vim-7.3.250.patch0
new file mode 100644 (file)
index 0000000..fc33328
--- /dev/null
@@ -0,0 +1,104 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.250
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.250
+Problem:    Python: Errors in Unicode characters not handled nicely.
+Solution:   Add the surrogateescape error handler. (lilydjwg)
+Files:     src/if_python3.c
+
+
+*** ../vim-7.3.249/src/if_python3.c    2011-06-26 19:13:33.000000000 +0200
+--- src/if_python3.c   2011-07-15 15:50:01.000000000 +0200
+***************
+*** 68,76 ****
+  
+  static void init_structs(void);
+  
+  #define PyInt Py_ssize_t
+  #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, NULL);
+  #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+  #define PyString_AsString(obj) PyBytes_AsString(obj)
+  #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+--- 68,83 ----
+  
+  static void init_structs(void);
+  
++ /* The "surrogateescape" error handler is new in Python 3.1 */
++ #if PY_VERSION_HEX >= 0x030100f0
++ # define CODEC_ERROR_HANDLER "surrogateescape"
++ #else
++ # define CODEC_ERROR_HANDLER NULL
++ #endif
++ 
+  #define PyInt Py_ssize_t
+  #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, CODEC_ERROR_HANDLER);
+  #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+  #define PyString_AsString(obj) PyBytes_AsString(obj)
+  #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+***************
+*** 661,668 ****
+  
+      /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
+       * SyntaxError (unicode error). */
+!     cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)ENC_OPT, NULL);
+!     cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
+      Py_XDECREF(cmdstr);
+      PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+      Py_XDECREF(cmdbytes);
+--- 668,676 ----
+  
+      /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
+       * SyntaxError (unicode error). */
+!     cmdstr = PyUnicode_Decode(cmd, strlen(cmd),
+!                                      (char *)ENC_OPT, CODEC_ERROR_HANDLER);
+!     cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", CODEC_ERROR_HANDLER);
+      Py_XDECREF(cmdstr);
+      PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+      Py_XDECREF(cmdbytes);
+***************
+*** 1463,1469 ****
+      }
+      *p = '\0';
+  
+!     result = PyUnicode_Decode(tmp, len, (char *)ENC_OPT, NULL);
+  
+      vim_free(tmp);
+      return result;
+--- 1471,1477 ----
+      }
+      *p = '\0';
+  
+!     result = PyUnicode_Decode(tmp, len, (char *)ENC_OPT, CODEC_ERROR_HANDLER);
+  
+      vim_free(tmp);
+      return result;
+*** ../vim-7.3.249/src/version.c       2011-07-15 14:12:25.000000000 +0200
+--- src/version.c      2011-07-15 15:46:19.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     250,
+  /**/
+
+-- 
+DINGO:   You must spank her well and after you have spanked her you
+         may deal with her as you like and then ... spank me.
+AMAZING: And spank me!
+STUNNER: And me.
+LOVELY:  And me.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.251.patch0 b/vim/patches/vim-7.3.251.patch0
new file mode 100644 (file)
index 0000000..43aa414
--- /dev/null
@@ -0,0 +1,184 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.251
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.251
+Problem:    "gH<Del>" deletes the current line, except when it's the last
+           line.
+Solution:   Set the "include" flag to indicate the last line is to be deleted.
+Files:     src/normal.c, src/ops.c
+
+
+*** ../vim-7.3.250/src/normal.c        2011-07-07 15:08:53.000000000 +0200
+--- src/normal.c       2011-07-15 16:53:12.000000000 +0200
+***************
+*** 1795,1811 ****
+               {
+                   oap->inclusive = FALSE;
+                   /* Try to include the newline, unless it's an operator
+!                   * that works on lines only */
+!                  if (*p_sel != 'o'
+!                          && !op_on_lines(oap->op_type)
+!                          && oap->end.lnum < curbuf->b_ml.ml_line_count)
+                   {
+!                      ++oap->end.lnum;
+!                      oap->end.col = 0;
+  # ifdef FEAT_VIRTUALEDIT
+!                      oap->end.coladd = 0;
+  # endif
+!                      ++oap->line_count;
+                   }
+               }
+           }
+--- 1795,1819 ----
+               {
+                   oap->inclusive = FALSE;
+                   /* Try to include the newline, unless it's an operator
+!                   * that works on lines only. */
+!                  if (*p_sel != 'o' && !op_on_lines(oap->op_type))
+                   {
+!                      if (oap->end.lnum < curbuf->b_ml.ml_line_count)
+!                      {
+!                          ++oap->end.lnum;
+!                          oap->end.col = 0;
+  # ifdef FEAT_VIRTUALEDIT
+!                          oap->end.coladd = 0;
+  # endif
+!                          ++oap->line_count;
+!                      }
+!                      else
+!                      {
+!                          /* Cannot move below the last line, make the op
+!                           * inclusive to tell the operation to include the
+!                           * line break. */
+!                          oap->inclusive = TRUE;
+!                      }
+                   }
+               }
+           }
+*** ../vim-7.3.250/src/ops.c   2011-06-19 01:14:22.000000000 +0200
+--- src/ops.c  2011-07-15 17:28:28.000000000 +0200
+***************
+*** 1650,1656 ****
+           && oap->line_count > 1
+           && oap->op_type == OP_DELETE)
+      {
+!      ptr = ml_get(oap->end.lnum) + oap->end.col + oap->inclusive;
+       ptr = skipwhite(ptr);
+       if (*ptr == NUL && inindent(0))
+           oap->motion_type = MLINE;
+--- 1650,1658 ----
+           && oap->line_count > 1
+           && oap->op_type == OP_DELETE)
+      {
+!      ptr = ml_get(oap->end.lnum) + oap->end.col;
+!      if (*ptr != NUL)
+!          ptr += oap->inclusive;
+       ptr = skipwhite(ptr);
+       if (*ptr == NUL && inindent(0))
+           oap->motion_type = MLINE;
+***************
+*** 1920,1930 ****
+                   curwin->w_cursor.coladd = 0;
+           }
+  #endif
+!          (void)del_bytes((long)n, !virtual_op, oap->op_type == OP_DELETE
+  #ifdef FEAT_VISUAL
+                                   && !oap->is_VIsual
+  #endif
+                                                       );
+       }
+       else                            /* delete characters between lines */
+       {
+--- 1922,1941 ----
+                   curwin->w_cursor.coladd = 0;
+           }
+  #endif
+!          if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
+!                  && n > (int)STRLEN(ml_get(oap->end.lnum)))
+!          {
+!              /* Special case: gH<Del> deletes the last line. */
+!              del_lines(1L, FALSE);
+!          }
+!          else
+!          {
+!              (void)del_bytes((long)n, !virtual_op, oap->op_type == OP_DELETE
+  #ifdef FEAT_VISUAL
+                                   && !oap->is_VIsual
+  #endif
+                                                       );
++          }
+       }
+       else                            /* delete characters between lines */
+       {
+***************
+*** 1941,1957 ****
+           ++curwin->w_cursor.lnum;
+           del_lines((long)(oap->line_count - 2), FALSE);
+  
+!          /* delete from start of line until op_end */
+!          curwin->w_cursor.col = 0;
+!          (void)del_bytes((long)(oap->end.col + 1 - !oap->inclusive),
+!                                      !virtual_op, oap->op_type == OP_DELETE
+  #ifdef FEAT_VISUAL
+                                       && !oap->is_VIsual
+  #endif
+                                                           );
+!          curwin->w_cursor = curpos;          /* restore curwin->w_cursor */
+! 
+!          (void)do_join(2, FALSE, FALSE);
+       }
+      }
+  
+--- 1952,1980 ----
+           ++curwin->w_cursor.lnum;
+           del_lines((long)(oap->line_count - 2), FALSE);
+  
+!          n = (oap->end.col + 1 - !oap->inclusive);
+!          if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
+!                  && n > (int)STRLEN(ml_get(oap->end.lnum)))
+!          {
+!              /* Special case: gH<Del> deletes the last line. */
+!              del_lines(1L, FALSE);
+!              curwin->w_cursor = curpos;      /* restore curwin->w_cursor */
+!              if (curwin->w_cursor.lnum > 1)
+!                  --curwin->w_cursor.lnum;
+!          }
+!          else
+!          {
+!              /* delete from start of line until op_end */
+!              curwin->w_cursor.col = 0;
+!              (void)del_bytes((long)n, !virtual_op, oap->op_type == OP_DELETE
+  #ifdef FEAT_VISUAL
+                                       && !oap->is_VIsual
+  #endif
+                                                           );
+!              curwin->w_cursor = curpos;      /* restore curwin->w_cursor */
+!          }
+!          if (curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
+!              (void)do_join(2, FALSE, FALSE);
+       }
+      }
+  
+*** ../vim-7.3.250/src/version.c       2011-07-15 15:54:39.000000000 +0200
+--- src/version.c      2011-07-15 17:35:18.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     251,
+  /**/
+
+-- 
+            ### Hiroshima 45, Chernobyl 86, Windows 95 ###
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.252.patch0 b/vim/patches/vim-7.3.252.patch0
new file mode 100644 (file)
index 0000000..e24b73b
--- /dev/null
@@ -0,0 +1,43 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.252
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.252 (after 7.3.247)
+Problem:    Tests fail. (David Northfield)
+Solution:   Add missing update for .ok file.
+Files:      src/testdir/test81.ok
+
+
+*** ../vim-7.3.251/src/testdir/test81.ok       2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/test81.ok      2011-07-15 13:14:27.000000000 +0200
+***************
+*** 1,4 ****
+--- 1,6 ----
+  aaa two
++     z
++ y
+  bbb y
+  ccc
+  ddd yee y
+*** ../vim-7.3.251/src/version.c       2011-07-15 17:51:30.000000000 +0200
+--- src/version.c      2011-07-15 17:55:25.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     252,
+  /**/
+
+-- 
+You cannot propel yourself forward by patting yourself on the back.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.253.patch0 b/vim/patches/vim-7.3.253.patch0
new file mode 100644 (file)
index 0000000..70e415b
--- /dev/null
@@ -0,0 +1,539 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.253
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.253
+Problem:    "echo 'abc' > ''" returns 0 or 1, depending on 'ignorecase'.
+           Checks in mb_strnicmp() for illegal and truncated bytes are
+           wrong.  Should not assume that byte length is equal before case
+           folding.
+Solution:   Add utf_safe_read_char_adv() and utf_strnicmp(). Add a test for
+           this. (Ivan Krasilnikov)
+Files:     src/mbyte.c src/testdir/test82.in, src/testdir/test82.ok,
+           src/testdir/Makefile, src/testdir/Make_amiga.mak,
+           src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
+           src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
+
+
+*** ../vim-7.3.252/src/mbyte.c 2011-07-07 15:08:53.000000000 +0200
+--- src/mbyte.c        2011-07-15 20:13:52.000000000 +0200
+***************
+*** 132,137 ****
+--- 132,138 ----
+  static int dbcs_char2cells __ARGS((int c));
+  static int dbcs_ptr2cells_len __ARGS((char_u *p, int size));
+  static int dbcs_ptr2char __ARGS((char_u *p));
++ static int utf_safe_read_char_adv __ARGS((char_u **s, size_t *n));
+  
+  /*
+   * Lookup table to quickly get the length in bytes of a UTF-8 character from
+***************
+*** 1701,1706 ****
+--- 1702,1767 ----
+  }
+  
+  /*
++  * Convert a UTF-8 byte sequence to a wide character.
++  * String is assumed to be terminated by NUL or after "n" bytes, whichever
++  * comes first.
++  * The function is safe in the sense that it never accesses memory beyond the
++  * first "n" bytes of "s".
++  *
++  * On success, returns decoded codepoint, advances "s" to the beginning of
++  * next character and decreases "n" accordingly.
++  *
++  * If end of string was reached, returns 0 and, if "n" > 0, advances "s" past
++  * NUL byte.
++  *
++  * If byte sequence is illegal or incomplete, returns -1 and does not advance
++  * "s".
++  */
++     static int
++ utf_safe_read_char_adv(s, n)
++     char_u      **s;
++     size_t      *n;
++ {
++     int              c, k;
++ 
++     if (*n == 0) /* end of buffer */
++      return 0;
++ 
++     k = utf8len_tab_zero[**s];
++ 
++     if (k == 1)
++     {
++      /* ASCII character or NUL */
++      (*n)--;
++      return *(*s)++;
++     }
++ 
++     if ((size_t)k <= *n)
++     {
++      /* We have a multibyte sequence and it isn't truncated by buffer
++       * limits so utf_ptr2char() is safe to use. Or the first byte is
++       * illegal (k=0), and it's also safe to use utf_ptr2char(). */
++      c = utf_ptr2char(*s);
++ 
++      /* On failure, utf_ptr2char() returns the first byte, so here we
++       * check equality with the first byte. The only non-ASCII character
++       * which equals the first byte of its own UTF-8 representation is
++       * U+00C3 (UTF-8: 0xC3 0x83), so need to check that special case too.
++       * It's safe even if n=1, else we would have k=2 > n. */
++      if (c != (int)(**s) || (c == 0xC3 && (*s)[1] == 0x83))
++      {
++          /* byte sequence was successfully decoded */
++          *s += k;
++          *n -= k;
++          return c;
++      }
++     }
++ 
++     /* byte sequence is incomplete or illegal */
++     return -1;
++ }
++ 
++ /*
+   * Get character at **pp and advance *pp to the next character.
+   * Note: composing characters are skipped!
+   */
+***************
+*** 2667,2673 ****
+       {0x10400,0x10427,1,40}
+  };
+  
+! static int utf_convert(int a, convertStruct table[], int tableSize);
+  
+  /*
+   * Generic conversion function for case operations.
+--- 2728,2735 ----
+       {0x10400,0x10427,1,40}
+  };
+  
+! static int utf_convert __ARGS((int a, convertStruct table[], int tableSize));
+! static int utf_strnicmp __ARGS((char_u *s1, char_u *s2, size_t n1, size_t n2));
+  
+  /*
+   * Generic conversion function for case operations.
+***************
+*** 3079,3084 ****
+--- 3141,3220 ----
+      return (utf_tolower(a) != a);
+  }
+  
++     static int
++ utf_strnicmp(s1, s2, n1, n2)
++     char_u      *s1, *s2;
++     size_t      n1, n2;
++ {
++     int              c1, c2, cdiff;
++     char_u   buffer[6];
++ 
++     for (;;)
++     {
++      c1 = utf_safe_read_char_adv(&s1, &n1);
++      c2 = utf_safe_read_char_adv(&s2, &n2);
++ 
++      if (c1 <= 0 || c2 <= 0)
++          break;
++ 
++      if (c1 == c2)
++          continue;
++ 
++      cdiff = utf_fold(c1) - utf_fold(c2);
++      if (cdiff != 0)
++          return cdiff;
++     }
++ 
++     /* some string ended or has an incomplete/illegal character sequence */
++ 
++     if (c1 == 0 || c2 == 0)
++     {
++      /* some string ended. shorter string is smaller */
++      if (c1 == 0 && c2 == 0)
++          return 0;
++      return c1 == 0 ? -1 : 1;
++     }
++ 
++     /* Continue with bytewise comparison to produce some result that
++      * would make comparison operations involving this function transitive.
++      *
++      * If only one string had an error, comparison should be made with
++      * folded version of the other string. In this case it is enough
++      * to fold just one character to determine the result of comparison. */
++ 
++     if (c1 != -1 && c2 == -1)
++     {
++      n1 = utf_char2bytes(utf_fold(c1), buffer);
++      s1 = buffer;
++     }
++     else if (c2 != -1 && c1 == -1)
++     {
++      n2 = utf_char2bytes(utf_fold(c2), buffer);
++      s2 = buffer;
++     }
++ 
++     while (n1 > 0 && n2 > 0 && *s1 != NUL && *s2 != NUL)
++     {
++      cdiff = (int)(*s1) - (int)(*s2);
++      if (cdiff != 0)
++          return cdiff;
++ 
++      s1++;
++      s2++;
++      n1--;
++      n2--;
++     }
++ 
++     if (n1 > 0 && *s1 == NUL)
++      n1 = 0;
++     if (n2 > 0 && *s2 == NUL)
++      n2 = 0;
++ 
++     if (n1 == 0 && n2 == 0)
++      return 0;
++     return n1 == 0 ? -1 : 1;
++ }
++ 
+  /*
+   * Version of strnicmp() that handles multi-byte characters.
+   * Needed for Big5, Sjift-JIS and UTF-8 encoding.  Other DBCS encodings can
+***************
+*** 3092,3140 ****
+      char_u   *s1, *s2;
+      size_t   nn;
+  {
+!     int              i, j, l;
+      int              cdiff;
+-     int              incomplete = FALSE;
+      int              n = (int)nn;
+  
+!     for (i = 0; i < n; i += l)
+      {
+!      if (s1[i] == NUL && s2[i] == NUL)   /* both strings end */
+!          return 0;
+!      if (enc_utf8)
+!      {
+!          l = utf_byte2len(s1[i]);
+!          if (l > n - i)
+!          {
+!              l = n - i;                  /* incomplete character */
+!              incomplete = TRUE;
+!          }
+!          /* Check directly first, it's faster. */
+!          for (j = 0; j < l; ++j)
+!          {
+!              if (s1[i + j] != s2[i + j])
+!                  break;
+!              if (s1[i + j] == 0)
+!                  /* Both stings have the same bytes but are incomplete or
+!                   * have illegal bytes, accept them as equal. */
+!                  l = j;
+!          }
+!          if (j < l)
+!          {
+!              /* If one of the two characters is incomplete return -1. */
+!              if (incomplete || i + utf_byte2len(s2[i]) > n)
+!                  return -1;
+!              /* Don't case-fold illegal bytes or truncated characters. */
+!              if (utf_ptr2len(s1 + i) < l || utf_ptr2len(s2 + i) < l)
+!                  return -1;
+!              cdiff = utf_fold(utf_ptr2char(s1 + i))
+!                                           - utf_fold(utf_ptr2char(s2 + i));
+!              if (cdiff != 0)
+!                  return cdiff;
+!          }
+!      }
+!      else
+       {
+           l = (*mb_ptr2len)(s1 + i);
+           if (l <= 1)
+           {
+--- 3228,3248 ----
+      char_u   *s1, *s2;
+      size_t   nn;
+  {
+!     int              i, l;
+      int              cdiff;
+      int              n = (int)nn;
+  
+!     if (enc_utf8)
+      {
+!      return utf_strnicmp(s1, s2, nn, nn);
+!     }
+!     else
+!     {
+!      for (i = 0; i < n; i += l)
+       {
++          if (s1[i] == NUL && s2[i] == NUL)   /* both strings end */
++              return 0;
++ 
+           l = (*mb_ptr2len)(s1 + i);
+           if (l <= 1)
+           {
+*** ../vim-7.3.252/src/testdir/test82.in       2011-07-15 21:16:03.000000000 +0200
+--- src/testdir/test82.in      2011-07-15 18:22:46.000000000 +0200
+***************
+*** 0 ****
+--- 1,93 ----
++ Tests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
++ 
++ STARTTEST
++ :so small.vim
++ :if !has("multi_byte")
++ : e! test.ok
++ : w! test.out
++ : qa!
++ :endif
++ :set enc=utf8
++ ggdG
++ :
++ :function! Ch(a, op, b, expected)
++ :  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
++ :    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
++ :  else
++ :    let b:passed += 1
++ :  endif
++ :endfunction
++ :
++ :function! Chk(a, b, result)
++ :  if a:result == 0
++ :    call Ch(a:a, '==?', a:b, 1)
++ :    call Ch(a:a, '!=?', a:b, 0)
++ :    call Ch(a:a, '<=?', a:b, 1)
++ :    call Ch(a:a, '>=?', a:b, 1)
++ :    call Ch(a:a, '<?', a:b, 0)
++ :    call Ch(a:a, '>?', a:b, 0)
++ :  elseif a:result > 0
++ :    call Ch(a:a, '==?', a:b, 0)
++ :    call Ch(a:a, '!=?', a:b, 1)
++ :    call Ch(a:a, '<=?', a:b, 0)
++ :    call Ch(a:a, '>=?', a:b, 1)
++ :    call Ch(a:a, '<?', a:b, 0)
++ :    call Ch(a:a, '>?', a:b, 1)
++ :  else
++ :    call Ch(a:a, '==?', a:b, 0)
++ :    call Ch(a:a, '!=?', a:b, 1)
++ :    call Ch(a:a, '<=?', a:b, 1)
++ :    call Ch(a:a, '>=?', a:b, 0)
++ :    call Ch(a:a, '<?', a:b, 1)
++ :    call Ch(a:a, '>?', a:b, 0)
++ :  endif
++ :endfunction
++ :
++ :function! Check(a, b, result)
++ :  call Chk(a:a, a:b, a:result)
++ :  call Chk(a:b, a:a, -a:result)
++ :endfunction
++ :
++ :function! LT(a, b)
++ :  call Check(a:a, a:b, -1)
++ :endfunction
++ :
++ :function! GT(a, b)
++ :  call Check(a:a, a:b, 1)
++ :endfunction
++ :
++ :function! EQ(a, b)
++ :  call Check(a:a, a:b, 0)
++ :endfunction
++ :
++ :let b:passed=0
++ :call EQ('', '')
++ :call LT('', 'a')
++ :call EQ('abc', 'abc')
++ :call EQ('Abc', 'abC')
++ :call LT('ab', 'abc')
++ :call LT('AB', 'abc')
++ :call LT('ab', 'aBc')
++ :call EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')
++ :call LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')
++ :call EQ('\xe2\x84\xaa', 'k')
++ :call LT('\xe2\x84\xaa', 'kkkkkk')
++ :call EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
++ :call LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
++ :call EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\xaakk\xe2\x84\xa6')
++ :call EQ('Abc\x80', 'AbC\x80')
++ :call LT('Abc\x80', 'AbC\x81')
++ :call LT('Abc', 'AbC\x80')
++ :call LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad character
++ :call LT('\xc3XYZ', '\xc3xyz')
++ :call EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
++ :call GT('\xef\xbc\xba', '\xef\xbc\xff')  " first string is ok and equals \xef\xbd\x9a after folding, second string is illegal and was left unchanged, then the strings were bytewise compared
++ :call LT('\xc3', '\xc3\x83')
++ :call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
++ :for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
++ :for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
++ :for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
++ :call append(0, printf('%d checks passed', b:passed))
++ :wq! test.out
++ ENDTEST
++ 
+*** ../vim-7.3.252/src/testdir/test82.ok       2011-07-15 21:16:03.000000000 +0200
+--- src/testdir/test82.ok      2011-07-15 18:37:33.000000000 +0200
+***************
+*** 0 ****
+--- 1,2 ----
++ 3732 checks passed
++ 
+*** ../vim-7.3.252/src/testdir/Makefile        2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Makefile       2011-07-15 18:30:08.000000000 +0200
+***************
+*** 26,32 ****
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out
+  
+  SCRIPTS_GUI = test16.out
+  
+--- 26,32 ----
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out
+  
+  SCRIPTS_GUI = test16.out
+  
+*** ../vim-7.3.252/src/testdir/Make_amiga.mak  2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Make_amiga.mak 2011-07-15 18:29:50.000000000 +0200
+***************
+*** 29,35 ****
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out
+  
+  .SUFFIXES: .in .out
+  
+--- 29,35 ----
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out test82.out
+  
+  .SUFFIXES: .in .out
+  
+***************
+*** 130,132 ****
+--- 130,133 ----
+  test79.out: test79.in
+  test80.out: test80.in
+  test81.out: test81.in
++ test82.out: test82.in
+*** ../vim-7.3.252/src/testdir/Make_dos.mak    2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Make_dos.mak   2011-07-15 18:30:02.000000000 +0200
+***************
+*** 29,35 ****
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 29,35 ----
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.252/src/testdir/Make_ming.mak   2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Make_ming.mak  2011-07-15 18:30:15.000000000 +0200
+***************
+*** 49,55 ****
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 49,55 ----
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.252/src/testdir/Make_os2.mak    2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Make_os2.mak   2011-07-15 18:30:25.000000000 +0200
+***************
+*** 29,35 ****
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out
+  
+  .SUFFIXES: .in .out
+  
+--- 29,35 ----
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out test82.out
+  
+  .SUFFIXES: .in .out
+  
+*** ../vim-7.3.252/src/testdir/Make_vms.mms    2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Make_vms.mms   2011-07-15 18:30:33.000000000 +0200
+***************
+*** 4,10 ****
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2011 Jun 26
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2011 Jul 15
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+***************
+*** 75,81 ****
+        test61.out test62.out test63.out test64.out test65.out \
+        test66.out test67.out test68.out test69.out \
+        test71.out test72.out test74.out test75.out test76.out \
+!       test77.out test78.out test79.out test80.out test81.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+--- 75,82 ----
+        test61.out test62.out test63.out test64.out test65.out \
+        test66.out test67.out test68.out test69.out \
+        test71.out test72.out test74.out test75.out test76.out \
+!       test77.out test78.out test79.out test80.out test81.out \
+!       test82.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.252/src/version.c       2011-07-15 17:56:11.000000000 +0200
+--- src/version.c      2011-07-15 21:12:26.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     253,
+  /**/
+
+-- 
+"Intelligence has much less practical application than you'd think."
+                 -- Scott Adams, Dilbert.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.254.patch0 b/vim/patches/vim-7.3.254.patch0
new file mode 100644 (file)
index 0000000..85176a7
--- /dev/null
@@ -0,0 +1,47 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.254
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.254
+Problem:    The coladd field is not reset when setting the line number for a
+           ":call" command.
+Solution:   Reset it.
+Files:     src/eval.c
+
+
+*** ../vim-7.3.253/src/eval.c  2011-07-07 17:36:52.000000000 +0200
+--- src/eval.c 2011-07-07 17:51:42.000000000 +0200
+***************
+*** 3430,3435 ****
+--- 3430,3438 ----
+       {
+           curwin->w_cursor.lnum = lnum;
+           curwin->w_cursor.col = 0;
++ #ifdef FEAT_VIRTUALEDIT
++          curwin->w_cursor.coladd = 0;
++ #endif
+       }
+       arg = startarg;
+       if (get_func_tv(name, (int)STRLEN(name), &rettv, &arg,
+*** ../vim-7.3.253/src/version.c       2011-07-15 21:16:54.000000000 +0200
+--- src/version.c      2011-07-15 21:23:16.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     254,
+  /**/
+
+-- 
+Eight Megabytes And Continually Swapping.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.255.patch0 b/vim/patches/vim-7.3.255.patch0
new file mode 100644 (file)
index 0000000..c01a585
--- /dev/null
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.255
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.255
+Problem:    When editing a file such as "File[2010-08-15].vim" an E16 error is
+           given. (Manuel Stol)
+Solution:   Don't give an error for failing to compile the regexp.
+Files:     src/ex_docmd.c, src/misc1.c, src/vim.h
+
+
+*** ../vim-7.3.254/src/ex_docmd.c      2011-06-13 01:19:48.000000000 +0200
+--- src/ex_docmd.c     2011-07-20 14:48:01.000000000 +0200
+***************
+*** 7069,7075 ****
+       old_arg_count = GARGCOUNT;
+       if (expand_wildcards(old_arg_count, old_arg_files,
+                   &new_arg_file_count, &new_arg_files,
+!                  EW_FILE|EW_NOTFOUND|EW_ADDSLASH) == OK
+               && new_arg_file_count > 0)
+       {
+           alist_set(&global_alist, new_arg_file_count, new_arg_files,
+--- 7069,7075 ----
+       old_arg_count = GARGCOUNT;
+       if (expand_wildcards(old_arg_count, old_arg_files,
+                   &new_arg_file_count, &new_arg_files,
+!                  EW_FILE|EW_NOTFOUND|EW_ADDSLASH|EW_NOERROR) == OK
+               && new_arg_file_count > 0)
+       {
+           alist_set(&global_alist, new_arg_file_count, new_arg_files,
+*** ../vim-7.3.254/src/misc1.c 2011-07-15 14:12:25.000000000 +0200
+--- src/misc1.c        2011-07-20 14:55:09.000000000 +0200
+***************
+*** 9043,9050 ****
+--- 9043,9054 ----
+      }
+  
+      /* compile the regexp into a program */
++     if (flags & EW_NOERROR)
++      ++emsg_silent;
+      regmatch.rm_ic = TRUE;           /* Always ignore case */
+      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
++     if (flags & EW_NOERROR)
++      --emsg_silent;
+      vim_free(pat);
+  
+      if (regmatch.regprog == NULL)
+*** ../vim-7.3.254/src/vim.h   2011-06-13 02:03:55.000000000 +0200
+--- src/vim.h  2011-07-20 14:50:13.000000000 +0200
+***************
+*** 815,820 ****
+--- 815,821 ----
+  #define EW_EXEC              0x40    /* executable files */
+  #define EW_PATH              0x80    /* search in 'path' too */
+  #define EW_ICASE     0x100   /* ignore case */
++ #define EW_NOERROR   0x200   /* no error for bad regexp */
+  /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
+   * is used when executing commands and EW_SILENT for interactive expanding. */
+  
+*** ../vim-7.3.254/src/version.c       2011-07-15 21:24:06.000000000 +0200
+--- src/version.c      2011-07-20 15:03:52.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     255,
+  /**/
+
+-- 
+Not too long ago, a program was something you watched on TV...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.256.patch0 b/vim/patches/vim-7.3.256.patch0
new file mode 100644 (file)
index 0000000..b8c9f00
--- /dev/null
@@ -0,0 +1,322 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.256
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.256
+Problem:    Javascript indenting not sufficiently tested.
+Solution:   Add more tests. (Luc Deschenaux)  Mark the lines that are indented
+           wrong.
+Files:     src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.255/src/testdir/test3.in        2011-07-15 14:12:25.000000000 +0200
+--- src/testdir/test3.in       2011-07-15 21:05:49.000000000 +0200
+***************
+*** 1592,1598 ****
+  
+  
+  STARTTEST
+! :set cino=J1
+  /^JSSTART
+  =/^JSEND
+  ENDTEST
+--- 1592,1598 ----
+  
+  
+  STARTTEST
+! :set cino=j1,J1
+  /^JSSTART
+  =/^JSEND
+  ENDTEST
+***************
+*** 1613,1618 ****
+--- 1613,1757 ----
+  JSEND
+  
+  STARTTEST
++ :set cino=j1,J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++ 
++ JSSTART
++ var foo = [
++ 1,  // indent 8 more
++ 2,
++ 3
++ ];  // indent 8 less
++ JSEND
++ 
++ STARTTEST
++ :set cino=j1,J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++ 
++ JSSTART
++ function bar() {
++ var foo = [
++ 1,
++ 2,
++ 3
++ ];  // indent 16 less
++ }
++ JSEND
++ 
++ STARTTEST
++ :set cino=j1,J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++ 
++ JSSTART
++ (function($){
++ 
++ var class_name='myclass';
++ 
++ function private_method() {
++ }
++ 
++ var public_method={
++ method: function(options,args){
++ private_method();
++ }
++ }
++ 
++ function init(options) {
++ 
++ $(this).data(class_name+'_public',$.extend({},{
++ foo: 'bar',
++ bar: 2,  // indent 8 more
++ foobar: [  // indent 8 more
++ 1,  // indent 8 more
++ 2,  // indent 16 more
++ 3   // indent 16 more
++ ],
++ callback: function(){  // indent 8 more
++ return true;  // indent 8 more
++ }  // indent 8 more
++ }, options||{}));
++ }
++ 
++ $.fn[class_name]=function() {
++ 
++ var _arguments=arguments;
++ return this.each(function(){
++ 
++ var options=$(this).data(class_name+'_public');
++ if (!options) {
++ init.apply(this,_arguments);
++ 
++ } else {
++ var method=public_method[_arguments[0]];
++ 
++ if (typeof(method)!='function') {
++ console.log(class_name+' has no method "'+_arguments[0]+'"');
++ return false;
++ }
++ _arguments[0]=options;
++ method.apply(this,_arguments);
++ }
++ });
++ }
++ 
++ })(jQuery);
++ JSEND
++ 
++ STARTTEST
++ :set cino=j1,J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++ 
++ JSSTART
++ function init(options) {
++ $(this).data(class_name+'_public',$.extend({},{
++ foo: 'bar',
++ bar: 2,
++ foobar: [
++ 1,  // indent 8 more
++ 2,  // indent 8 more
++ 3   // indent 8 more
++ ],
++ callback: function(){
++ return true;
++ }
++ }, options||{}));
++ }
++ JSEND
++ 
++ STARTTEST
++ :set cino=j1,J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++ 
++ JSSTART
++ (function($){
++ function init(options) {
++ $(this).data(class_name+'_public',$.extend({},{
++ foo: 'bar',
++ bar: 2,  // indent 8 more
++ foobar: [  // indent 8 more
++ 1,  // indent 8 more
++ 2,  // indent 16 more
++ 3  // indent 16 more
++ ],
++ callback: function(){  // indent 8 more
++ return true;  // indent 8 more
++ }  // indent 8 more
++ }, options||{}));
++ }
++ })(jQuery);
++ JSEND
++ 
++ STARTTEST
+  :g/^STARTTEST/.,/^ENDTEST/d
+  :1;/start of AUTO/,$wq! test.out
+  ENDTEST
+*** ../vim-7.3.255/src/testdir/test3.ok        2011-07-15 14:12:25.000000000 +0200
+--- src/testdir/test3.ok       2011-07-15 21:06:38.000000000 +0200
+***************
+*** 1443,1445 ****
+--- 1443,1559 ----
+  }
+  JSEND
+  
++ 
++ JSSTART
++ var foo = [
++ 1,  // indent 8 more
++      2,
++      3
++      ];  // indent 8 less
++ JSEND
++ 
++ 
++ JSSTART
++ function bar() {
++      var foo = [
++              1,
++              2,
++              3
++                      ];  // indent 16 less
++ }
++ JSEND
++ 
++ 
++ JSSTART
++ (function($){
++ 
++      var class_name='myclass';
++ 
++      function private_method() {
++      }
++ 
++      var public_method={
++              method: function(options,args){
++                      private_method();
++              }
++      }
++ 
++      function init(options) {
++ 
++              $(this).data(class_name+'_public',$.extend({},{
++                      foo: 'bar',
++              bar: 2,  // indent 8 more
++              foobar: [  // indent 8 more
++                      1,  // indent 8 more
++              2,  // indent 16 more
++              3   // indent 16 more
++                      ],
++              callback: function(){  // indent 8 more
++                      return true;  // indent 8 more
++              }  // indent 8 more
++              }, options||{}));
++      }
++ 
++      $.fn[class_name]=function() {
++ 
++              var _arguments=arguments;
++              return this.each(function(){
++ 
++                      var options=$(this).data(class_name+'_public');
++                      if (!options) {
++                              init.apply(this,_arguments);
++ 
++                      } else {
++                              var method=public_method[_arguments[0]];
++ 
++                              if (typeof(method)!='function') {
++                                      console.log(class_name+' has no method "'+_arguments[0]+'"');
++                                      return false;
++                              }
++                              _arguments[0]=options;
++                              method.apply(this,_arguments);
++                      }
++              });
++      }
++ 
++ })(jQuery);
++ JSEND
++ 
++ 
++ JSSTART
++ function init(options) {
++      $(this).data(class_name+'_public',$.extend({},{
++              foo: 'bar',
++              bar: 2,
++              foobar: [
++              1,  // indent 8 more
++              2,  // indent 8 more
++              3   // indent 8 more
++              ],
++              callback: function(){
++                      return true;
++              }
++      }, options||{}));
++ }
++ JSEND
++ 
++ 
++ JSSTART
++ (function($){
++      function init(options) {
++              $(this).data(class_name+'_public',$.extend({},{
++                      foo: 'bar',
++              bar: 2,  // indent 8 more
++              foobar: [  // indent 8 more
++                      1,  // indent 8 more
++              2,  // indent 16 more
++              3  // indent 16 more
++                      ],
++              callback: function(){  // indent 8 more
++                      return true;  // indent 8 more
++              }  // indent 8 more
++              }, options||{}));
++      }
++ })(jQuery);
++ JSEND
++ 
+*** ../vim-7.3.255/src/version.c       2011-07-20 15:04:52.000000000 +0200
+--- src/version.c      2011-07-20 15:08:13.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     256,
+  /**/
+
+-- 
+Not too long ago, a keyboard was something to make music with...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.257.patch0 b/vim/patches/vim-7.3.257.patch0
new file mode 100644 (file)
index 0000000..f6292bf
--- /dev/null
@@ -0,0 +1,97 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.257
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.257
+Problem:    Not all completions are available to user commands.
+Solution:   Add "color", "compiler", "file_in_path" and "locale". (Dominique
+           Pelle)
+Files:     src/ex_docmd.c, runtime/doc/map.txt
+
+
+*** ../vim-7.3.256/src/ex_docmd.c      2011-07-20 15:04:52.000000000 +0200
+--- src/ex_docmd.c     2011-07-20 16:10:28.000000000 +0200
+***************
+*** 5297,5303 ****
+--- 5297,5305 ----
+  {
+      {EXPAND_AUGROUP, "augroup"},
+      {EXPAND_BUFFERS, "buffer"},
++     {EXPAND_COLORS, "color"},
+      {EXPAND_COMMANDS, "command"},
++     {EXPAND_COMPILER, "compiler"},
+  #if defined(FEAT_CSCOPE)
+      {EXPAND_CSCOPE, "cscope"},
+  #endif
+***************
+*** 5310,5319 ****
+--- 5312,5326 ----
+      {EXPAND_EVENTS, "event"},
+      {EXPAND_EXPRESSION, "expression"},
+      {EXPAND_FILES, "file"},
++     {EXPAND_FILES_IN_PATH, "file_in_path"},
+      {EXPAND_FILETYPE, "filetype"},
+      {EXPAND_FUNCTIONS, "function"},
+      {EXPAND_HELP, "help"},
+      {EXPAND_HIGHLIGHT, "highlight"},
++ #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
++         && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
++     {EXPAND_LOCALES, "locale"},
++ #endif
+      {EXPAND_MAPPINGS, "mapping"},
+      {EXPAND_MENUS, "menu"},
+      {EXPAND_OWNSYNTAX, "syntax"},
+*** ../vim-7.3.256/runtime/doc/map.txt 2011-05-19 17:25:36.000000000 +0200
+--- runtime/doc/map.txt        2011-07-20 16:10:28.000000000 +0200
+***************
+*** 1202,1221 ****
+--- 1211,1236 ----
+  
+       -complete=augroup       autocmd groups
+       -complete=buffer        buffer names
++      -complete=color         color schemes
+       -complete=command       Ex command (and arguments)
++      -complete=compiler      compilers
++      -complete=cscope        |:cscope| suboptions
+       -complete=dir           directory names
+       -complete=environment   environment variable names
+       -complete=event         autocommand events
+       -complete=expression    Vim expression
+       -complete=file          file and directory names
++      -complete=file_in_path  file and directory names in |'path'|
+       -complete=filetype      filetype names |'filetype'|
+       -complete=function      function name
+       -complete=help          help subjects
+       -complete=highlight     highlight groups
++      -complete=locale        locale names (as output of locale -a)
+       -complete=mapping       mapping name
+       -complete=menu          menus
+       -complete=option        options
+       -complete=shellcmd      Shell command
++      -complete=sign          |:sign| suboptions
+       -complete=syntax        syntax file names |'syntax'|
+       -complete=tag           tags
+       -complete=tag_listfiles tags, file names are shown when CTRL-D is hit
+*** ../vim-7.3.256/src/version.c       2011-07-20 15:09:38.000000000 +0200
+--- src/version.c      2011-07-20 16:30:31.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     257,
+  /**/
+
+-- 
+I have to exercise early in the morning before my brain
+figures out what I'm doing.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.258.patch0 b/vim/patches/vim-7.3.258.patch0
new file mode 100644 (file)
index 0000000..277cbe7
--- /dev/null
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.258
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.258
+Problem:    MS-Windows: The edit with existing vim context menu entries can be
+           unwanted.
+Solution:   Let a registry entry disable them. (Jerome Vuarand)
+Files:     src/GvimExt/gvimext.cpp
+
+
+*** ../vim-7.3.257/src/GvimExt/gvimext.cpp     2010-08-15 21:57:29.000000000 +0200
+--- src/GvimExt/gvimext.cpp    2011-07-20 16:48:09.000000000 +0200
+***************
+*** 586,593 ****
+  
+      // Initialize m_cntOfHWnd to 0
+      m_cntOfHWnd = 0;
+!     // Retrieve all the vim instances
+!     EnumWindows(EnumWindowsProc, (LPARAM)this);
+  
+      if (cbFiles > 1)
+      {
+--- 586,608 ----
+  
+      // Initialize m_cntOfHWnd to 0
+      m_cntOfHWnd = 0;
+! 
+!     HKEY keyhandle;
+!     bool showExisting = true;
+! 
+!     // Check whether "Edit with existing Vim" entries are disabled.
+!     if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Vim\\Gvim", 0,
+!                                     KEY_READ, &keyhandle) == ERROR_SUCCESS)
+!     {
+!      if (RegQueryValueEx(keyhandle, "DisableEditWithExisting", 0, NULL,
+!                                               NULL, NULL) == ERROR_SUCCESS)
+!          showExisting = false;
+!      RegCloseKey(keyhandle);
+!     }
+! 
+!     // Retrieve all the vim instances, unless disabled.
+!     if (showExisting)
+!      EnumWindows(EnumWindowsProc, (LPARAM)this);
+  
+      if (cbFiles > 1)
+      {
+*** ../vim-7.3.257/src/version.c       2011-07-20 16:36:35.000000000 +0200
+--- src/version.c      2011-07-20 16:54:34.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     258,
+  /**/
+
+-- 
+What the word 'politics' means: 'Poli' in Latin meaning 'many' and 'tics'
+meaning 'bloodsucking creatures'.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.259.patch0 b/vim/patches/vim-7.3.259.patch0
new file mode 100644 (file)
index 0000000..91f9dfa
--- /dev/null
@@ -0,0 +1,503 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.259
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.259
+Problem:    Equivalence classes only work for latin characters.
+Solution:   Add the Unicode equivalence characters. (Dominique Pelle)
+Files:     runtime/doc/pattern.txt, src/regexp.c, src/testdir/test44.in,
+           src/testdir/test44.ok
+
+
+*** ../vim-7.3.258/runtime/doc/pattern.txt     2010-08-15 21:57:14.000000000 +0200
+--- runtime/doc/pattern.txt    2011-07-20 17:44:03.000000000 +0200
+***************
+*** 1027,1037 ****
+         These items only work for 8-bit characters.
+                                                       */[[=* *[==]*
+       - An equivalence class.  This means that characters are matched that
+!        have almost the same meaning, e.g., when ignoring accents.  The form
+!        is:
+               [=a=]
+-        Currently this is only implemented for latin1.  Also works for the
+-        latin1 characters in utf-8 and latin9.
+                                                       */[[.* *[..]*
+       - A collation element.  This currently simply accepts a single
+         character in the form:
+--- 1036,1044 ----
+         These items only work for 8-bit characters.
+                                                       */[[=* *[==]*
+       - An equivalence class.  This means that characters are matched that
+!        have almost the same meaning, e.g., when ignoring accents.  This
+!        only works for Unicode, latin1 and latin9.  The form is:
+               [=a=]
+                                                       */[[.* *[..]*
+       - A collation element.  This currently simply accepts a single
+         character in the form:
+*** ../vim-7.3.258/src/regexp.c        2011-06-19 04:31:54.000000000 +0200
+--- src/regexp.c       2011-07-20 17:56:52.000000000 +0200
+***************
+*** 666,673 ****
+--- 666,677 ----
+  static void  regc __ARGS((int b));
+  #ifdef FEAT_MBYTE
+  static void  regmbc __ARGS((int c));
++ # define REGMBC(x) regmbc(x);
++ # define CASEMBC(x) case x:
+  #else
+  # define regmbc(c) regc(c)
++ # define REGMBC(x)
++ # define CASEMBC(x)
+  #endif
+  static void  reginsert __ARGS((int, char_u *));
+  static void  reginsert_limits __ARGS((int, long, long, char_u *));
+***************
+*** 787,854 ****
+       switch (c)
+       {
+           case 'A': case '\300': case '\301': case '\302':
+           case '\303': case '\304': case '\305':
+                     regmbc('A'); regmbc('\300'); regmbc('\301');
+                     regmbc('\302'); regmbc('\303'); regmbc('\304');
+                     regmbc('\305');
+                     return;
+           case 'C': case '\307':
+                     regmbc('C'); regmbc('\307');
+                     return;
+           case 'E': case '\310': case '\311': case '\312': case '\313':
+                     regmbc('E'); regmbc('\310'); regmbc('\311');
+                     regmbc('\312'); regmbc('\313');
+                     return;
+           case 'I': case '\314': case '\315': case '\316': case '\317':
+                     regmbc('I'); regmbc('\314'); regmbc('\315');
+                     regmbc('\316'); regmbc('\317');
+                     return;
+           case 'N': case '\321':
+                     regmbc('N'); regmbc('\321');
+                     return;
+           case 'O': case '\322': case '\323': case '\324': case '\325':
+!          case '\326':
+                     regmbc('O'); regmbc('\322'); regmbc('\323');
+                     regmbc('\324'); regmbc('\325'); regmbc('\326');
+                     return;
+           case 'U': case '\331': case '\332': case '\333': case '\334':
+                     regmbc('U'); regmbc('\331'); regmbc('\332');
+                     regmbc('\333'); regmbc('\334');
+                     return;
+           case 'Y': case '\335':
+                     regmbc('Y'); regmbc('\335');
+                     return;
+           case 'a': case '\340': case '\341': case '\342':
+           case '\343': case '\344': case '\345':
+                     regmbc('a'); regmbc('\340'); regmbc('\341');
+                     regmbc('\342'); regmbc('\343'); regmbc('\344');
+                     regmbc('\345');
+                     return;
+           case 'c': case '\347':
+                     regmbc('c'); regmbc('\347');
+                     return;
+           case 'e': case '\350': case '\351': case '\352': case '\353':
+                     regmbc('e'); regmbc('\350'); regmbc('\351');
+                     regmbc('\352'); regmbc('\353');
+                     return;
+           case 'i': case '\354': case '\355': case '\356': case '\357':
+                     regmbc('i'); regmbc('\354'); regmbc('\355');
+                     regmbc('\356'); regmbc('\357');
+                     return;
+           case 'n': case '\361':
+                     regmbc('n'); regmbc('\361');
+                     return;
+           case 'o': case '\362': case '\363': case '\364': case '\365':
+!          case '\366':
+                     regmbc('o'); regmbc('\362'); regmbc('\363');
+                     regmbc('\364'); regmbc('\365'); regmbc('\366');
+                     return;
+           case 'u': case '\371': case '\372': case '\373': case '\374':
+                     regmbc('u'); regmbc('\371'); regmbc('\372');
+                     regmbc('\373'); regmbc('\374');
+                     return;
+           case 'y': case '\375': case '\377':
+                     regmbc('y'); regmbc('\375'); regmbc('\377');
+                     return;
+       }
+  #endif
+--- 791,1085 ----
+       switch (c)
+       {
+           case 'A': case '\300': case '\301': case '\302':
++          CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd)
++          CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2)
+           case '\303': case '\304': case '\305':
+                     regmbc('A'); regmbc('\300'); regmbc('\301');
+                     regmbc('\302'); regmbc('\303'); regmbc('\304');
+                     regmbc('\305');
++                    REGMBC(0x100) REGMBC(0x102) REGMBC(0x104)
++                    REGMBC(0x1cd) REGMBC(0x1de) REGMBC(0x1e0)
++                    REGMBC(0x1ea2)
++                    return;
++          case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06)
++                    regmbc('B'); REGMBC(0x1e02) REGMBC(0x1e06)
+                     return;
+           case 'C': case '\307':
++          CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c)
+                     regmbc('C'); regmbc('\307');
++                    REGMBC(0x106) REGMBC(0x108) REGMBC(0x10a)
++                    REGMBC(0x10c)
++                    return;
++          case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a)
++          CASEMBC(0x1e0e) CASEMBC(0x1e10)
++                    regmbc('D'); REGMBC(0x10e) REGMBC(0x110)
++                    REGMBC(0x1e0a) REGMBC(0x1e0e) REGMBC(0x1e10)
+                     return;
+           case 'E': case '\310': case '\311': case '\312': case '\313':
++          CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118)
++          CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc)
+                     regmbc('E'); regmbc('\310'); regmbc('\311');
+                     regmbc('\312'); regmbc('\313');
++                    REGMBC(0x112) REGMBC(0x114) REGMBC(0x116)
++                    REGMBC(0x118) REGMBC(0x11a) REGMBC(0x1eba)
++                    REGMBC(0x1ebc)
++                    return;
++          case 'F': CASEMBC(0x1e1e)
++                    regmbc('F'); REGMBC(0x1e1e)
++                    return;
++          case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120)
++          CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4)
++          CASEMBC(0x1e20)
++                    regmbc('G'); REGMBC(0x11c) REGMBC(0x11e)
++                    REGMBC(0x120) REGMBC(0x122) REGMBC(0x1e4)
++                    REGMBC(0x1e6) REGMBC(0x1f4) REGMBC(0x1e20)
++                    return;
++          case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22)
++          CASEMBC(0x1e26) CASEMBC(0x1e28)
++                    regmbc('H'); REGMBC(0x124) REGMBC(0x126)
++                    REGMBC(0x1e22) REGMBC(0x1e26) REGMBC(0x1e28)
+                     return;
+           case 'I': case '\314': case '\315': case '\316': case '\317':
++          CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e)
++          CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8)
+                     regmbc('I'); regmbc('\314'); regmbc('\315');
+                     regmbc('\316'); regmbc('\317');
++                    REGMBC(0x128) REGMBC(0x12a) REGMBC(0x12c)
++                    REGMBC(0x12e) REGMBC(0x130) REGMBC(0x1cf)
++                    REGMBC(0x1ec8)
++                    return;
++          case 'J': CASEMBC(0x134)
++                    regmbc('J'); REGMBC(0x134)
++                    return;
++          case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30)
++          CASEMBC(0x1e34)
++                    regmbc('K'); REGMBC(0x136) REGMBC(0x1e8)
++                    REGMBC(0x1e30) REGMBC(0x1e34)
++                    return;
++          case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d)
++          CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a)
++                    regmbc('L'); REGMBC(0x139) REGMBC(0x13b)
++                    REGMBC(0x13d) REGMBC(0x13f) REGMBC(0x141)
++                    REGMBC(0x1e3a)
++                    return;
++          case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40)
++                    regmbc('M'); REGMBC(0x1e3e) REGMBC(0x1e40)
+                     return;
+           case 'N': case '\321':
++          CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44)
++          CASEMBC(0x1e48)
+                     regmbc('N'); regmbc('\321');
++                    REGMBC(0x143) REGMBC(0x145) REGMBC(0x147)
++                    REGMBC(0x1e44) REGMBC(0x1e48)
+                     return;
+           case 'O': case '\322': case '\323': case '\324': case '\325':
+!          case '\326': case '\330':
+!          CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0)
+!          CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece)
+                     regmbc('O'); regmbc('\322'); regmbc('\323');
+                     regmbc('\324'); regmbc('\325'); regmbc('\326');
++                    regmbc('\330');
++                    REGMBC(0x14c) REGMBC(0x14e) REGMBC(0x150)
++                    REGMBC(0x1a0) REGMBC(0x1d1) REGMBC(0x1ea)
++                    REGMBC(0x1ec) REGMBC(0x1ece)
++                    return;
++          case 'P': case 0x1e54: case 0x1e56:
++                    regmbc('P'); REGMBC(0x1e54) REGMBC(0x1e56)
++                    return;
++          case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158)
++          CASEMBC(0x1e58) CASEMBC(0x1e5e)
++                    regmbc('R'); REGMBC(0x154) REGMBC(0x156) REGMBC(0x158)
++                    REGMBC(0x1e58) REGMBC(0x1e5e)
++                    return;
++          case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e)
++          CASEMBC(0x160) CASEMBC(0x1e60)
++                    regmbc('S'); REGMBC(0x15a) REGMBC(0x15c)
++                    REGMBC(0x15e) REGMBC(0x160) REGMBC(0x1e60)
++                    return;
++          case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166)
++          CASEMBC(0x1e6a) CASEMBC(0x1e6e)
++                    regmbc('T'); REGMBC(0x162) REGMBC(0x164)
++                    REGMBC(0x166) REGMBC(0x1e6a) REGMBC(0x1e6e)
+                     return;
+           case 'U': case '\331': case '\332': case '\333': case '\334':
++          CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e)
++          CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3)
++          CASEMBC(0x1ee6)
+                     regmbc('U'); regmbc('\331'); regmbc('\332');
+                     regmbc('\333'); regmbc('\334');
++                    REGMBC(0x168) REGMBC(0x16a) REGMBC(0x16c)
++                    REGMBC(0x16e) REGMBC(0x170) REGMBC(0x172)
++                    REGMBC(0x1af) REGMBC(0x1d3) REGMBC(0x1ee6)
++                    return;
++          case 'V': CASEMBC(0x1e7c)
++                    regmbc('V'); REGMBC(0x1e7c)
++                    return;
++          case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82)
++          CASEMBC(0x1e84) CASEMBC(0x1e86)
++                    regmbc('W'); REGMBC(0x174) REGMBC(0x1e80)
++                    REGMBC(0x1e82) REGMBC(0x1e84) REGMBC(0x1e86)
++                    return;
++          case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c)
++                    regmbc('X'); REGMBC(0x1e8a) REGMBC(0x1e8c)
+                     return;
+           case 'Y': case '\335':
++          CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2)
++          CASEMBC(0x1ef6) CASEMBC(0x1ef8)
+                     regmbc('Y'); regmbc('\335');
++                    REGMBC(0x176) REGMBC(0x178) REGMBC(0x1e8e)
++                    REGMBC(0x1ef2) REGMBC(0x1ef6) REGMBC(0x1ef8)
++                    return;
++          case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d)
++          CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94)
++                    regmbc('Z'); REGMBC(0x179) REGMBC(0x17b)
++                    REGMBC(0x17d) REGMBC(0x1b5) REGMBC(0x1e90)
++                    REGMBC(0x1e94)
+                     return;
+           case 'a': case '\340': case '\341': case '\342':
+           case '\343': case '\344': case '\345':
++          CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce)
++          CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3)
+                     regmbc('a'); regmbc('\340'); regmbc('\341');
+                     regmbc('\342'); regmbc('\343'); regmbc('\344');
+                     regmbc('\345');
++                    REGMBC(0x101) REGMBC(0x103) REGMBC(0x105)
++                    REGMBC(0x1ce) REGMBC(0x1df) REGMBC(0x1e1)
++                    REGMBC(0x1ea3)
++                    return;
++          case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07)
++                    regmbc('b'); REGMBC(0x1e03) REGMBC(0x1e07)
+                     return;
+           case 'c': case '\347':
++          CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d)
+                     regmbc('c'); regmbc('\347');
++                    REGMBC(0x107) REGMBC(0x109) REGMBC(0x10b)
++                    REGMBC(0x10d)
++                    return;
++          case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b)
++          CASEMBC(0x1e11)
++                    regmbc('d'); REGMBC(0x10f) REGMBC(0x111)
++                    REGMBC(0x1e0b) REGMBC(0x01e0f) REGMBC(0x1e11)
+                     return;
+           case 'e': case '\350': case '\351': case '\352': case '\353':
++          CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119)
++          CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd)
+                     regmbc('e'); regmbc('\350'); regmbc('\351');
+                     regmbc('\352'); regmbc('\353');
++                    REGMBC(0x113) REGMBC(0x115) REGMBC(0x117)
++                    REGMBC(0x119) REGMBC(0x11b) REGMBC(0x1ebb)
++                    REGMBC(0x1ebd)
++                    return;
++          case 'f': CASEMBC(0x1e1f)
++                    regmbc('f'); REGMBC(0x1e1f)
++                    return;
++          case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121)
++          CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5)
++          CASEMBC(0x1e21)
++                    regmbc('g'); REGMBC(0x11d) REGMBC(0x11f)
++                    REGMBC(0x121) REGMBC(0x123) REGMBC(0x1e5)
++                    REGMBC(0x1e7) REGMBC(0x1f5) REGMBC(0x1e21)
++                    return;
++          case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23)
++          CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96)
++                    regmbc('h'); REGMBC(0x125) REGMBC(0x127)
++                    REGMBC(0x1e23) REGMBC(0x1e27) REGMBC(0x1e29)
++                    REGMBC(0x1e96)
+                     return;
+           case 'i': case '\354': case '\355': case '\356': case '\357':
++          CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f)
++          CASEMBC(0x1d0) CASEMBC(0x1ec9)
+                     regmbc('i'); regmbc('\354'); regmbc('\355');
+                     regmbc('\356'); regmbc('\357');
++                    REGMBC(0x129) REGMBC(0x12b) REGMBC(0x12d)
++                    REGMBC(0x12f) REGMBC(0x1d0) REGMBC(0x1ec9)
++                    return;
++          case 'j': CASEMBC(0x135) CASEMBC(0x1f0)
++                    regmbc('j'); REGMBC(0x135) REGMBC(0x1f0)
++                    return;
++          case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31)
++          CASEMBC(0x1e35)
++                    regmbc('k'); REGMBC(0x137) REGMBC(0x1e9)
++                    REGMBC(0x1e31) REGMBC(0x1e35)
++                    return;
++          case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e)
++          CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b)
++                    regmbc('l'); REGMBC(0x13a) REGMBC(0x13c)
++                    REGMBC(0x13e) REGMBC(0x140) REGMBC(0x142)
++                    REGMBC(0x1e3b)
++                    return;
++          case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41)
++                    regmbc('m'); REGMBC(0x1e3f) REGMBC(0x1e41)
+                     return;
+           case 'n': case '\361':
++          CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149)
++          CASEMBC(0x1e45) CASEMBC(0x1e49)
+                     regmbc('n'); regmbc('\361');
++                    REGMBC(0x144) REGMBC(0x146) REGMBC(0x148)
++                    REGMBC(0x149) REGMBC(0x1e45) REGMBC(0x1e49)
+                     return;
+           case 'o': case '\362': case '\363': case '\364': case '\365':
+!          case '\366': case '\370':
+!          CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1)
+!          CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf)
+                     regmbc('o'); regmbc('\362'); regmbc('\363');
+                     regmbc('\364'); regmbc('\365'); regmbc('\366');
++                    regmbc('\370');
++                    REGMBC(0x14d) REGMBC(0x14f) REGMBC(0x151)
++                    REGMBC(0x1a1) REGMBC(0x1d2) REGMBC(0x1eb)
++                    REGMBC(0x1ed) REGMBC(0x1ecf)
++                    return;
++          case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57)
++                    regmbc('p'); REGMBC(0x1e55) REGMBC(0x1e57)
++                    return;
++          case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159)
++          CASEMBC(0x1e59) CASEMBC(0x1e5f)
++                    regmbc('r'); REGMBC(0x155) REGMBC(0x157) REGMBC(0x159)
++                    REGMBC(0x1e59) REGMBC(0x1e5f)
++                    return;
++          case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f)
++          CASEMBC(0x161) CASEMBC(0x1e61)
++                    regmbc('s'); REGMBC(0x15b) REGMBC(0x15d)
++                    REGMBC(0x15f) REGMBC(0x161) REGMBC(0x1e61)
++                    return;
++          case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167)
++          CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97)
++                    regmbc('t'); REGMBC(0x163) REGMBC(0x165) REGMBC(0x167)
++                    REGMBC(0x1e6b) REGMBC(0x1e6f) REGMBC(0x1e97)
+                     return;
+           case 'u': case '\371': case '\372': case '\373': case '\374':
++          CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f)
++          CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4)
++          CASEMBC(0x1ee7)
+                     regmbc('u'); regmbc('\371'); regmbc('\372');
+                     regmbc('\373'); regmbc('\374');
++                    REGMBC(0x169) REGMBC(0x16b) REGMBC(0x16d)
++                    REGMBC(0x16f) REGMBC(0x171) REGMBC(0x173)
++                    REGMBC(0x1b0) REGMBC(0x1d4) REGMBC(0x1ee7)
++                    return;
++          case 'v': CASEMBC(0x1e7d)
++                    regmbc('v'); REGMBC(0x1e7d)
++                    return;
++          case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83)
++          CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98)
++                    regmbc('w'); REGMBC(0x175) REGMBC(0x1e81)
++                    REGMBC(0x1e83) REGMBC(0x1e85) REGMBC(0x1e87)
++                    REGMBC(0x1e98)
++                    return;
++          case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d)
++                    regmbc('x'); REGMBC(0x1e8b) REGMBC(0x1e8d)
+                     return;
+           case 'y': case '\375': case '\377':
++          CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99)
++          CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9)
+                     regmbc('y'); regmbc('\375'); regmbc('\377');
++                    REGMBC(0x177) REGMBC(0x1e8f) REGMBC(0x1e99)
++                    REGMBC(0x1ef3) REGMBC(0x1ef7) REGMBC(0x1ef9)
++                    return;
++          case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e)
++          CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95)
++                    regmbc('z'); REGMBC(0x17a) REGMBC(0x17c)
++                    REGMBC(0x17e) REGMBC(0x1b6) REGMBC(0x1e91)
++                    REGMBC(0x1e95)
+                     return;
+       }
+  #endif
+***************
+*** 2468,2473 ****
+--- 2699,2706 ----
+  regmbc(c)
+      int              c;
+  {
++     if (!has_mbyte && c > 0xff)
++      return;
+      if (regcode == JUST_CALC_SIZE)
+       regsize += (*mb_char2len)(c);
+      else
+***************
+*** 2588,2594 ****
+      else
+       offset = (int)(val - scan);
+      /* When the offset uses more than 16 bits it can no longer fit in the two
+!      * bytes avaliable.  Use a global flag to avoid having to check return
+       * values in too many places. */
+      if (offset > 0xffff)
+       reg_toolong = TRUE;
+--- 2821,2827 ----
+      else
+       offset = (int)(val - scan);
+      /* When the offset uses more than 16 bits it can no longer fit in the two
+!      * bytes available.  Use a global flag to avoid having to check return
+       * values in too many places. */
+      if (offset > 0xffff)
+       reg_toolong = TRUE;
+*** ../vim-7.3.258/src/testdir/test44.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test44.in      2011-07-20 17:36:49.000000000 +0200
+***************
+*** 27,32 ****
+--- 27,34 ----
+  x/\%U12345678
+  x/[\U1234abcd\u1234\uabcd]
+  x/\%d21879b
++ x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e
++ x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e
+  x:?^1?,$w! test.out
+  :e! test.out
+  G:put =matchstr(\"×בגד\", \".\", 0, 2) " ×‘
+***************
+*** 53,55 ****
+--- 55,59 ----
+  e ü’…™¸y
+  f ü’Š¯z
+  g aå•·bb
++ h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎÅƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵáºáº”
++ i aàáâãäåÄăąǎǟǡả bḃḇ cçćĉċĠdÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅÅ‘Æ¡Ç’Ç«Ç­á» pṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑẕ
+*** ../vim-7.3.258/src/testdir/test44.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test44.ok      2011-07-20 17:36:49.000000000 +0200
+***************
+*** 14,19 ****
+--- 14,21 ----
+  e y
+  f z
+  g abb
++ h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎÅƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵáº
++ i aàáâãäåÄăąǎǟǡả bḃḇ cçćĉċĠdÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅÅ‘Æ¡Ç’Ç«Ç­á» pṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑ
+  ×‘
+  ×‘×’
+  ×
+*** ../vim-7.3.258/src/version.c       2011-07-20 17:27:17.000000000 +0200
+--- src/version.c      2011-07-20 17:38:32.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     259,
+  /**/
+
+-- 
+Not too long ago, compress was something you did to garbage...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.260.patch0 b/vim/patches/vim-7.3.260.patch0
new file mode 100644 (file)
index 0000000..ba9af57
--- /dev/null
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.260
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.260
+Problem:    CursorHold triggers on an incomplete mapping. (Will Gray)
+Solution:   Don't trigger CursorHold when there is typeahead.
+Files:     src/fileio.c
+
+
+*** ../vim-7.3.259/src/fileio.c        2011-05-19 17:25:36.000000000 +0200
+--- src/fileio.c       2011-07-20 18:22:16.000000000 +0200
+***************
+*** 9044,9050 ****
+  {
+      int              state;
+  
+!     if (!did_cursorhold && has_cursorhold() && !Recording
+  #ifdef FEAT_INS_EXPAND
+           && !ins_compl_active()
+  #endif
+--- 9044,9053 ----
+  {
+      int              state;
+  
+!     if (!did_cursorhold
+!          && has_cursorhold()
+!          && !Recording
+!          && typebuf.tb_len == 0
+  #ifdef FEAT_INS_EXPAND
+           && !ins_compl_active()
+  #endif
+***************
+*** 9935,9940 ****
+--- 9938,9945 ----
+           if ((c == ';' || c == '>') && match == FALSE)
+           {
+               *pattern = NUL;     /* Terminate the string */
++              /* TODO: match with 'filetype' of buffer that "fname" comes
++               * from. */
+               match = mch_check_filetype(fname, type_start);
+               *pattern = c;       /* Restore the terminator */
+               type_start = pattern + 1;
+*** ../vim-7.3.259/src/version.c       2011-07-20 17:58:14.000000000 +0200
+--- src/version.c      2011-07-20 18:25:15.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     260,
+  /**/
+
+-- 
+LAUNCELOT: At last!   A call!  A cry of distress ...
+           (he draws his sword, and turns to CONCORDE)
+           Concorde!  Brave, Concorde ... you shall not have died in vain!
+CONCORDE:  I'm not quite dead, sir ...
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.261.patch0 b/vim/patches/vim-7.3.261.patch0
new file mode 100644 (file)
index 0000000..4c03f6b
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.261
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.261
+Problem:    G++ error message errornously recognized as error.
+Solution:   Ignore "In file included from" line also when it ends in a colon.
+           (Fernando Castillo)
+Files:     src/option.h
+
+
+*** ../vim-7.3.260/src/option.h        2011-06-26 05:36:07.000000000 +0200
+--- src/option.h       2011-07-27 13:44:08.000000000 +0200
+***************
+*** 33,39 ****
+  #     ifdef EBCDIC
+  #define DFLT_EFM     "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     else
+! #define DFLT_EFM     "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-Gfrom %f:%l:%c,%-Gfrom %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     endif
+  #    endif
+  #   endif
+--- 33,39 ----
+  #     ifdef EBCDIC
+  #define DFLT_EFM     "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     else
+! #define DFLT_EFM     "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-Gfrom %f:%l:%c,%-Gfrom %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     endif
+  #    endif
+  #   endif
+*** ../vim-7.3.260/src/version.c       2011-07-20 18:29:33.000000000 +0200
+--- src/version.c      2011-07-27 13:46:23.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     261,
+  /**/
+
+-- 
+Have you heard about the new Barbie doll?  It's called Divorce
+Barbie.  It comes with all of Ken's stuff.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.262.patch0 b/vim/patches/vim-7.3.262.patch0
new file mode 100644 (file)
index 0000000..b3bd5cd
--- /dev/null
@@ -0,0 +1,1356 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.262
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.262
+Problem:    Photon code style doesn't match Vim style.
+Solution:   Clean up some of it.  (Elias Diem)
+Files:     src/gui_photon.c
+
+
+*** ../vim-7.3.261/src/gui_photon.c    2011-01-17 20:08:03.000000000 +0100
+--- src/gui_photon.c   2011-07-27 14:07:02.000000000 +0200
+***************
+*** 32,40 ****
+  #endif
+  
+  #define ARRAY_LENGTH(a) (sizeof(a) / sizeof(a[0]))
+! #define RGB(r,g,b) PgRGB(r,g,b)
+  
+! #define EVENT_BUFFER_SIZE sizeof( PhEvent_t ) + 1000
+  
+  /* Some defines for gui_mch_mousehide() */
+  #define MOUSE_HIDE           TRUE
+--- 32,40 ----
+  #endif
+  
+  #define ARRAY_LENGTH(a) (sizeof(a) / sizeof(a[0]))
+! #define RGB(r, g, b) PgRGB(r, g, b)
+  
+! #define EVENT_BUFFER_SIZE sizeof(PhEvent_t) + 1000
+  
+  /* Some defines for gui_mch_mousehide() */
+  #define MOUSE_HIDE           TRUE
+***************
+*** 206,258 ****
+  static PtCallbackF_t gui_ph_handle_menu_unrealized;
+  
+  #ifdef USE_PANEL_GROUP
+! static void gui_ph_get_panelgroup_margins( short*, short*, short*, short* );
+  #endif
+  
+  #ifdef FEAT_TOOLBAR
+! static PhImage_t *gui_ph_toolbar_find_icon( vimmenu_T *menu );
+  #endif
+  
+! static void gui_ph_draw_start( void );
+! static void gui_ph_draw_end( void );
+  
+  /* Set the text for the balloon */
+! static PtWidget_t * gui_ph_show_tooltip( PtWidget_t *window,
+                            PtWidget_t *widget,
+                            int position,
+                            char *text,
+                            char *font,
+                            PgColor_t fill_color,
+!                           PgColor_t text_color );
+  
+  /****************************************************************************/
+  
+! static PtWidget_t * gui_ph_show_tooltip( PtWidget_t *window,
+                            PtWidget_t *widget,
+                            int position,
+                            char *text,
+                            char *font,
+                            PgColor_t fill_color,
+!                           PgColor_t text_color )
+  {
+      PtArg_t arg;
+      vimmenu_T *menu;
+      char_u  *tooltip;
+  
+!     PtSetArg( &arg, Pt_ARG_POINTER, &menu, 0 );
+!     PtGetResources( widget, 1, &arg );
+  
+      /* Override the text and position */
+  
+      tooltip = text;
+!     if( menu != NULL )
+      {
+       int index = MENU_INDEX_TIP;
+!      if( menu->strings[ index ] != NULL )
+           tooltip = menu->strings[ index ];
+      }
+  
+!     return( PtInflateBalloon(
+           window,
+           widget,
+           /* Don't put the balloon at the bottom,
+--- 206,258 ----
+  static PtCallbackF_t gui_ph_handle_menu_unrealized;
+  
+  #ifdef USE_PANEL_GROUP
+! static void gui_ph_get_panelgroup_margins(short*, short*, short*, short*);
+  #endif
+  
+  #ifdef FEAT_TOOLBAR
+! static PhImage_t *gui_ph_toolbar_find_icon(vimmenu_T *menu);
+  #endif
+  
+! static void gui_ph_draw_start(void);
+! static void gui_ph_draw_end(void);
+  
+  /* Set the text for the balloon */
+! static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
+                            PtWidget_t *widget,
+                            int position,
+                            char *text,
+                            char *font,
+                            PgColor_t fill_color,
+!                           PgColor_t text_color);
+  
+  /****************************************************************************/
+  
+! static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
+                            PtWidget_t *widget,
+                            int position,
+                            char *text,
+                            char *font,
+                            PgColor_t fill_color,
+!                           PgColor_t text_color)
+  {
+      PtArg_t arg;
+      vimmenu_T *menu;
+      char_u  *tooltip;
+  
+!     PtSetArg(&arg, Pt_ARG_POINTER, &menu, 0);
+!     PtGetResources(widget, 1, &arg);
+  
+      /* Override the text and position */
+  
+      tooltip = text;
+!     if (menu != NULL)
+      {
+       int index = MENU_INDEX_TIP;
+!      if (menu->strings[ index ] != NULL)
+           tooltip = menu->strings[ index ];
+      }
+  
+!     return PtInflateBalloon(
+           window,
+           widget,
+           /* Don't put the balloon at the bottom,
+***************
+*** 261,285 ****
+           tooltip,
+           font,
+           fill_color,
+!          text_color ) );
+  }
+  
+      static void
+! gui_ph_resize_container( void )
+  {
+      PhArea_t area;
+  
+!     PtWidgetArea( gui.vimWindow, &area );
+!     PtWidgetPos ( gui.vimContainer, &area.pos );
+  
+!     PtSetResource( gui.vimContainer, Pt_ARG_AREA, &area, 0 );
+  }
+  
+      static int
+  gui_ph_handle_menu_resize(
+       PtWidget_t *widget,
+       void *other,
+!      PtCallbackInfo_t *info )
+  {
+      PtContainerCallback_t *sizes = info->cbdata;
+      PtWidget_t               *container;
+--- 261,285 ----
+           tooltip,
+           font,
+           fill_color,
+!          text_color);
+  }
+  
+      static void
+! gui_ph_resize_container(void)
+  {
+      PhArea_t area;
+  
+!     PtWidgetArea(gui.vimWindow, &area);
+!     PtWidgetPos (gui.vimContainer, &area.pos);
+  
+!     PtSetResource(gui.vimContainer, Pt_ARG_AREA, &area, 0);
+  }
+  
+      static int
+  gui_ph_handle_menu_resize(
+       PtWidget_t *widget,
+       void *other,
+!      PtCallbackInfo_t *info)
+  {
+      PtContainerCallback_t *sizes = info->cbdata;
+      PtWidget_t               *container;
+***************
+*** 291,297 ****
+      /* Because vim treats the toolbar and menubar separately,
+       * and here they're lumped together into a PtToolbarGroup,
+       * we only need either menu_height or toolbar_height set at once */
+!     if( gui.menu_is_active )
+      {
+       gui.menu_height = height;
+       gui.toolbar_height = 0;
+--- 291,297 ----
+      /* Because vim treats the toolbar and menubar separately,
+       * and here they're lumped together into a PtToolbarGroup,
+       * we only need either menu_height or toolbar_height set at once */
+!     if (gui.menu_is_active)
+      {
+       gui.menu_height = height;
+       gui.toolbar_height = 0;
+***************
+*** 310,325 ****
+      container = gui.vimContainer;
+  #endif
+  
+!     PtSetResource( container, Pt_ARG_POS, &below_menu, 0 );
+  
+      gui_ph_resize_container();
+  
+  #ifdef USE_PANEL_GROUP
+      gui_ph_get_panelgroup_margins(
+           &pg_margin_top, &pg_margin_bottom,
+!          &pg_margin_left, &pg_margin_right );
+  #endif
+!     return( Pt_CONTINUE );
+  }
+  
+  /*
+--- 310,325 ----
+      container = gui.vimContainer;
+  #endif
+  
+!     PtSetResource(container, Pt_ARG_POS, &below_menu, 0);
+  
+      gui_ph_resize_container();
+  
+  #ifdef USE_PANEL_GROUP
+      gui_ph_get_panelgroup_margins(
+           &pg_margin_top, &pg_margin_bottom,
+!          &pg_margin_left, &pg_margin_right);
+  #endif
+!     return Pt_CONTINUE;
+  }
+  
+  /*
+***************
+*** 330,352 ****
+  gui_ph_handle_timer_cursor(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info )
+  {
+!     if( blink_state == BLINK_ON )
+      {
+       gui_undraw_cursor();
+       blink_state = BLINK_OFF;
+!      PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+!              blink_offtime, 0 );
+      }
+      else
+      {
+       gui_update_cursor(TRUE, FALSE);
+       blink_state = BLINK_ON;
+!      PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+!              blink_ontime, 0 );
+      }
+!     return( Pt_CONTINUE );
+  }
+  
+      static int
+--- 330,352 ----
+  gui_ph_handle_timer_cursor(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info)
+  {
+!     if (blink_state == BLINK_ON)
+      {
+       gui_undraw_cursor();
+       blink_state = BLINK_OFF;
+!      PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+!              blink_offtime, 0);
+      }
+      else
+      {
+       gui_update_cursor(TRUE, FALSE);
+       blink_state = BLINK_ON;
+!      PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+!              blink_ontime, 0);
+      }
+!     return Pt_CONTINUE;
+  }
+  
+      static int
+***************
+*** 354,360 ****
+  {
+      is_timeout = TRUE;
+  
+!     return( Pt_CONTINUE );
+  }
+  
+      static int
+--- 354,360 ----
+  {
+      is_timeout = TRUE;
+  
+!     return Pt_CONTINUE;
+  }
+  
+      static int
+***************
+*** 402,408 ****
+           break;
+      }
+  
+!     return( Pt_CONTINUE );
+  }
+  
+      static int
+--- 402,408 ----
+           break;
+      }
+  
+!     return Pt_CONTINUE;
+  }
+  
+      static int
+***************
+*** 426,438 ****
+  
+           case Pt_SCROLL_SET:
+               /* FIXME: return straight away here? */
+!              return( Pt_CONTINUE );
+               break;
+       }
+  
+       gui_drag_scrollbar(sb, value, dragging);
+      }
+!     return( Pt_CONTINUE );
+  }
+  
+      static int
+--- 426,438 ----
+  
+           case Pt_SCROLL_SET:
+               /* FIXME: return straight away here? */
+!              return Pt_CONTINUE;
+               break;
+       }
+  
+       gui_drag_scrollbar(sb, value, dragging);
+      }
+!     return Pt_CONTINUE;
+  }
+  
+      static int
+***************
+*** 453,459 ****
+      /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
+      if( key->key_flags & Pk_KF_Compose )
+      {
+!      return( Pt_CONTINUE );
+      }
+  
+      if( (key->key_flags & Pk_KF_Cap_Valid) &&
+--- 453,459 ----
+      /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
+      if( key->key_flags & Pk_KF_Compose )
+      {
+!      return Pt_CONTINUE;
+      }
+  
+      if( (key->key_flags & Pk_KF_Cap_Valid) &&
+***************
+*** 473,479 ****
+               gui_is_menu_shortcut( key->key_cap ) ) ) )
+       {
+           /* Fallthrough and let photon look for the hotkey */
+!          return( Pt_CONTINUE );
+       }
+  #endif
+  
+--- 473,479 ----
+               gui_is_menu_shortcut( key->key_cap ) ) ) )
+       {
+           /* Fallthrough and let photon look for the hotkey */
+!          return Pt_CONTINUE;
+       }
+  #endif
+  
+***************
+*** 544,550 ****
+                       add_to_input_buf( string, len );
+                   }
+  
+!                  return( Pt_CONSUME );
+               }
+               len = 0;
+  #endif
+--- 544,550 ----
+                       add_to_input_buf( string, len );
+                   }
+  
+!                  return Pt_CONSUME;
+               }
+               len = 0;
+  #endif
+***************
+*** 579,585 ****
+               }
+               else
+               {
+!                  return( Pt_CONTINUE );
+               }
+           }
+           else
+--- 579,585 ----
+               }
+               else
+               {
+!                  return Pt_CONTINUE;
+               }
+           }
+           else
+***************
+*** 622,632 ****
+       if( len > 0 )
+       {
+           add_to_input_buf( string, len );
+!          return( Pt_CONSUME );
+       }
+      }
+  
+!     return( Pt_CONTINUE );
+  }
+  
+      static int
+--- 622,632 ----
+       if( len > 0 )
+       {
+           add_to_input_buf( string, len );
+!          return Pt_CONSUME;
+       }
+      }
+  
+!     return Pt_CONTINUE;
+  }
+  
+      static int
+***************
+*** 652,658 ****
+      if( info->event->type == Ph_EV_PTR_MOTION_NOBUTTON )
+      {
+       gui_mouse_moved( mouse_x, mouse_y );
+!      return( Pt_CONTINUE );
+      }
+  
+      if( pointer->key_mods & Pk_KM_Shift )
+--- 652,658 ----
+      if( info->event->type == Ph_EV_PTR_MOTION_NOBUTTON )
+      {
+       gui_mouse_moved( mouse_x, mouse_y );
+!      return Pt_CONTINUE;
+      }
+  
+      if( pointer->key_mods & Pk_KM_Shift )
+***************
+*** 702,708 ****
+       gui_send_mouse_event( button , mouse_x, mouse_y, repeated_click, modifiers );
+      }
+  
+!     return( Pt_CONTINUE );
+  }
+  
+  /* Handle a focus change of the PtRaw widget */
+--- 702,708 ----
+       gui_send_mouse_event( button , mouse_x, mouse_y, repeated_click, modifiers );
+      }
+  
+!     return Pt_CONTINUE;
+  }
+  
+  /* Handle a focus change of the PtRaw widget */
+***************
+*** 721,727 ****
+       PtAddEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+               gui_ph_handle_mouse, NULL );
+      }
+!     return( Pt_CONTINUE );
+  }
+  
+      static void
+--- 721,727 ----
+       PtAddEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+               gui_ph_handle_mouse, NULL );
+      }
+!     return Pt_CONTINUE;
+  }
+  
+      static void
+***************
+*** 793,799 ****
+       PtRealizeWidget( menu->submenu_id );
+      }
+  
+!     return( Pt_CONTINUE );
+  }
+  
+  /* This is used for pulldown/popup menus and also toolbar buttons */
+--- 793,799 ----
+       PtRealizeWidget( menu->submenu_id );
+      }
+  
+!     return Pt_CONTINUE;
+  }
+  
+  /* This is used for pulldown/popup menus and also toolbar buttons */
+***************
+*** 805,811 ****
+       vimmenu_T *menu = (vimmenu_T *) data;
+       gui_menu_cb( menu );
+      }
+!     return( Pt_CONTINUE );
+  }
+  
+  /* Stop focus from disappearing into the menubar... */
+--- 805,811 ----
+       vimmenu_T *menu = (vimmenu_T *) data;
+       gui_menu_cb( menu );
+      }
+!     return Pt_CONTINUE;
+  }
+  
+  /* Stop focus from disappearing into the menubar... */
+***************
+*** 816,822 ****
+       PtCallbackInfo_t *info )
+  {
+      PtGiveFocus( gui.vimTextArea, NULL );
+!     return( Pt_CONTINUE );
+  }
+  
+      static int
+--- 816,822 ----
+       PtCallbackInfo_t *info )
+  {
+      PtGiveFocus( gui.vimTextArea, NULL );
+!     return Pt_CONTINUE;
+  }
+  
+      static int
+***************
+*** 826,832 ****
+       PtCallbackInfo_t *info )
+  {
+      gui_set_shellsize( FALSE, TRUE, RESIZE_BOTH );
+!     return( Pt_CONTINUE );
+  }
+  
+  /****************************************************************************/
+--- 826,832 ----
+       PtCallbackInfo_t *info )
+  {
+      gui_set_shellsize( FALSE, TRUE, RESIZE_BOTH );
+!     return Pt_CONTINUE;
+  }
+  
+  /****************************************************************************/
+***************
+*** 878,884 ****
+               ( STRCMP( items->dname, name ) != 0 ) )
+           items = items->next;
+      }
+!     return( items );
+  }
+  
+      static void
+--- 878,884 ----
+               ( STRCMP( items->dname, name ) != 0 ) )
+           items = items->next;
+      }
+!     return items;
+  }
+  
+      static void
+***************
+*** 927,933 ****
+               gui_menu_cb( menu );
+       }
+      }
+!     return( Pt_CONTINUE );
+  }
+  
+      static void
+--- 927,933 ----
+               gui_menu_cb( menu );
+       }
+      }
+!     return Pt_CONTINUE;
+  }
+  
+      static void
+***************
+*** 974,983 ****
+               mark++;
+  
+           if( *mark == ')' )
+!              return( TRUE);
+       }
+      }
+!     return( FALSE );
+  }
+  
+      static void
+--- 974,983 ----
+               mark++;
+  
+           if( *mark == ')' )
+!              return TRUE;
+       }
+      }
+!     return FALSE;
+  }
+  
+      static void
+***************
+*** 1057,1063 ****
+       gui_ph_pg_remove_buffer( menu->dname );
+      }
+  
+!     return( Pt_CONTINUE );
+  }
+  #endif
+  
+--- 1057,1063 ----
+       gui_ph_pg_remove_buffer( menu->dname );
+      }
+  
+!     return Pt_CONTINUE;
+  }
+  #endif
+  
+***************
+*** 1071,1077 ****
+       PtContainerHold( gui.vimContainer );
+      }
+  
+!     return( Pt_CONTINUE );
+  }
+  
+  /****************************************************************************/
+--- 1071,1077 ----
+       PtContainerHold( gui.vimContainer );
+      }
+  
+!     return Pt_CONTINUE;
+  }
+  
+  /****************************************************************************/
+***************
+*** 1126,1132 ****
+  
+      gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
+      if( gui.event_buffer == NULL )
+!      return( FAIL );
+  
+      /* Get a translation so we can convert from ISO Latin-1 to UTF */
+      charset_translate = PxTranslateSet( NULL, "latin1" );
+--- 1126,1132 ----
+  
+      gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
+      if( gui.event_buffer == NULL )
+!      return FAIL;
+  
+      /* Get a translation so we can convert from ISO Latin-1 to UTF */
+      charset_translate = PxTranslateSet( NULL, "latin1" );
+***************
+*** 1141,1147 ****
+      PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
+      gui.vimWindow = PtCreateWidget( PtWindow, NULL, n, args );
+      if( gui.vimWindow == NULL )
+!      return( FAIL );
+  
+      PtAddCallback( gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL );
+      PtAddCallback( gui.vimWindow, Pt_CB_WINDOW_OPENING,
+--- 1141,1147 ----
+      PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
+      gui.vimWindow = PtCreateWidget( PtWindow, NULL, n, args );
+      if( gui.vimWindow == NULL )
+!      return FAIL;
+  
+      PtAddCallback( gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL );
+      PtAddCallback( gui.vimWindow, Pt_CB_WINDOW_OPENING,
+***************
+*** 1158,1164 ****
+  
+      gui.vimPanelGroup = PtCreateWidget( PtPanelGroup, gui.vimWindow, n, args );
+      if( gui.vimPanelGroup == NULL )
+!      return( FAIL );
+  
+      PtAddCallback( gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
+           gui_ph_handle_pg_change, NULL );
+--- 1158,1164 ----
+  
+      gui.vimPanelGroup = PtCreateWidget( PtPanelGroup, gui.vimWindow, n, args );
+      if( gui.vimPanelGroup == NULL )
+!      return FAIL;
+  
+      PtAddCallback( gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
+           gui_ph_handle_pg_change, NULL );
+***************
+*** 1172,1178 ****
+  
+      gui.vimContainer = PtCreateWidget( PtPane, gui.vimWindow, n, args );
+      if( gui.vimContainer == NULL )
+!      return( FAIL );
+  
+      PtAddCallback( gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL );
+  #endif
+--- 1172,1178 ----
+  
+      gui.vimContainer = PtCreateWidget( PtPane, gui.vimWindow, n, args );
+      if( gui.vimContainer == NULL )
+!      return FAIL;
+  
+      PtAddCallback( gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL );
+  #endif
+***************
+*** 1195,1201 ****
+  
+      gui.vimTextArea = PtCreateWidget( PtRaw, Pt_DFLT_PARENT, n, args );
+      if( gui.vimTextArea == NULL)
+!      return( FAIL );
+  
+      /* TODO: use PtAddEventHandlers instead? */
+      /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
+--- 1195,1201 ----
+  
+      gui.vimTextArea = PtCreateWidget( PtRaw, Pt_DFLT_PARENT, n, args );
+      if( gui.vimTextArea == NULL)
+!      return FAIL;
+  
+      /* TODO: use PtAddEventHandlers instead? */
+      /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
+***************
+*** 1220,1230 ****
+       */
+      gui_ph_timer_cursor  = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+      if( gui_ph_timer_cursor == NULL )
+!      return( FAIL );
+  
+      gui_ph_timer_timeout = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+      if( gui_ph_timer_timeout == NULL )
+!      return( FAIL );
+  
+      PtAddCallback( gui_ph_timer_cursor,  Pt_CB_TIMER_ACTIVATE,
+           gui_ph_handle_timer_cursor, NULL);
+--- 1220,1230 ----
+       */
+      gui_ph_timer_cursor  = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+      if( gui_ph_timer_cursor == NULL )
+!      return FAIL;
+  
+      gui_ph_timer_timeout = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+      if( gui_ph_timer_timeout == NULL )
+!      return FAIL;
+  
+      PtAddCallback( gui_ph_timer_cursor,  Pt_CB_TIMER_ACTIVATE,
+           gui_ph_handle_timer_cursor, NULL);
+***************
+*** 1239,1245 ****
+      gui.vimToolBarGroup = PtCreateWidget( PtToolbarGroup, gui.vimWindow,
+           n, args );
+      if( gui.vimToolBarGroup == NULL )
+!      return( FAIL );
+  
+      PtAddCallback( gui.vimToolBarGroup, Pt_CB_RESIZE,
+           gui_ph_handle_menu_resize, NULL );
+--- 1239,1245 ----
+      gui.vimToolBarGroup = PtCreateWidget( PtToolbarGroup, gui.vimWindow,
+           n, args );
+      if( gui.vimToolBarGroup == NULL )
+!      return FAIL;
+  
+      PtAddCallback( gui.vimToolBarGroup, Pt_CB_RESIZE,
+           gui_ph_handle_menu_resize, NULL );
+***************
+*** 1254,1260 ****
+      }
+      gui.vimMenuBar = PtCreateWidget( PtMenuBar, gui.vimToolBarGroup, n, args );
+      if( gui.vimMenuBar == NULL )
+!      return( FAIL );
+  
+  # ifdef FEAT_TOOLBAR
+      n = 0;
+--- 1254,1260 ----
+      }
+      gui.vimMenuBar = PtCreateWidget( PtMenuBar, gui.vimToolBarGroup, n, args );
+      if( gui.vimMenuBar == NULL )
+!      return FAIL;
+  
+  # ifdef FEAT_TOOLBAR
+      n = 0;
+***************
+*** 1273,1279 ****
+  
+      gui.vimToolBar = PtCreateWidget( PtToolbar, gui.vimToolBarGroup, n, args );
+      if( gui.vimToolBar == NULL )
+!      return( FAIL );
+  
+      /*
+       * Size for the toolbar is fetched in gui_mch_show_toolbar, after
+--- 1273,1279 ----
+  
+      gui.vimToolBar = PtCreateWidget( PtToolbar, gui.vimToolBarGroup, n, args );
+      if( gui.vimToolBar == NULL )
+!      return FAIL;
+  
+      /*
+       * Size for the toolbar is fetched in gui_mch_show_toolbar, after
+***************
+*** 1284,1296 ****
+  
+  #endif
+  
+!     return( OK );
+  }
+  
+      int
+  gui_mch_init_check(void)
+  {
+!     return( (is_photon_available == TRUE) ? OK : FAIL );
+  }
+  
+      int
+--- 1284,1296 ----
+  
+  #endif
+  
+!     return OK;
+  }
+  
+      int
+  gui_mch_init_check(void)
+  {
+!     return (is_photon_available == TRUE) ? OK : FAIL;
+  }
+  
+      int
+***************
+*** 1310,1316 ****
+      if (gui_win_x != -1 && gui_win_y != -1)
+       gui_mch_set_winpos(gui_win_x, gui_win_y);
+  
+!     return( (PtRealizeWidget( gui.vimWindow ) == 0) ? OK : FAIL );
+  }
+  
+      void
+--- 1310,1316 ----
+      if (gui_win_x != -1 && gui_win_y != -1)
+       gui_mch_set_winpos(gui_win_x, gui_win_y);
+  
+!     return (PtRealizeWidget( gui.vimWindow ) == 0) ? OK : FAIL;
+  }
+  
+      void
+***************
+*** 1336,1342 ****
+  exit_gui_mch_update( void *data )
+  {
+      *(int *)data = FALSE;
+!     return( Pt_END );
+  }
+  
+      void
+--- 1336,1342 ----
+  exit_gui_mch_update( void *data )
+  {
+      *(int *)data = FALSE;
+!     return Pt_END;
+  }
+  
+      void
+***************
+*** 1365,1374 ****
+       if( input_available() )
+       {
+           PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0 );
+!          return( OK );
+       }
+       else if( is_timeout == TRUE )
+!          return( FAIL );
+      }
+  }
+  
+--- 1365,1374 ----
+       if( input_available() )
+       {
+           PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0 );
+!          return OK;
+       }
+       else if( is_timeout == TRUE )
+!          return FAIL;
+      }
+  }
+  
+***************
+*** 1446,1454 ****
+       vim_free( default_path );
+  
+       if( file.ret == Pt_FSDIALOG_BTN1 )
+!          return( vim_strsave( file.path ) );
+      }
+!     return( NULL );
+  }
+  #endif
+  
+--- 1446,1454 ----
+       vim_free( default_path );
+  
+       if( file.ret == Pt_FSDIALOG_BTN1 )
+!          return vim_strsave(file.path);
+      }
+!     return NULL;
+  }
+  #endif
+  
+***************
+*** 1470,1476 ****
+  
+      PtModalUnblock( modal_ctrl, (void *) button );
+  
+!     return( Pt_TRUE );
+  }
+  
+      static int
+--- 1470,1476 ----
+  
+      PtModalUnblock( modal_ctrl, (void *) button );
+  
+!     return Pt_TRUE;
+  }
+  
+      static int
+***************
+*** 1478,1484 ****
+  {
+      if( info->reason_subtype == Pt_EDIT_ACTIVATE )
+       gui_ph_dialog_close( 1, data );
+!     return( Pt_CONTINUE );
+  }
+  
+      static int
+--- 1478,1484 ----
+  {
+      if( info->reason_subtype == Pt_EDIT_ACTIVATE )
+       gui_ph_dialog_close( 1, data );
+!     return Pt_CONTINUE;
+  }
+  
+      static int
+***************
+*** 1490,1498 ****
+      if( ( key->key_flags & Pk_KF_Cap_Valid ) && ( key->key_cap == Pk_Escape ) )
+      {
+       gui_ph_dialog_close( 0, data );
+!      return( Pt_CONSUME );
+      }
+!     return( Pt_PROCESS );
+  }
+  
+      int
+--- 1490,1498 ----
+      if( ( key->key_flags & Pk_KF_Cap_Valid ) && ( key->key_cap == Pk_Escape ) )
+      {
+       gui_ph_dialog_close( 0, data );
+!      return Pt_CONSUME;
+      }
+!     return Pt_PROCESS;
+  }
+  
+      int
+***************
+*** 1519,1525 ****
+      button_count = len = i = 0;
+  
+      if( buttons == NULL || *buttons == NUL )
+!      return( -1 );
+  
+      /* There is one less separator than buttons, so bump up the button count */
+      button_count = 1;
+--- 1519,1525 ----
+      button_count = len = i = 0;
+  
+      if( buttons == NULL || *buttons == NUL )
+!      return -1;
+  
+      /* There is one less separator than buttons, so bump up the button count */
+      button_count = 1;
+***************
+*** 1637,1643 ****
+      vim_free( button_array );
+      vim_free( buttons_copy );
+  
+!     return( dialog_result );
+  }
+  #endif
+  /****************************************************************************/
+--- 1637,1643 ----
+      vim_free( button_array );
+      vim_free( buttons_copy );
+  
+!     return dialog_result;
+  }
+  #endif
+  /****************************************************************************/
+***************
+*** 1653,1659 ****
+      *x = pos->x;
+      *y = pos->y;
+  
+!     return( OK );
+  }
+  
+      void
+--- 1653,1659 ----
+      *x = pos->x;
+      *y = pos->y;
+  
+!     return OK;
+  }
+  
+      void
+***************
+*** 1975,1985 ****
+  hex_digit(int c)
+  {
+      if (VIM_ISDIGIT(c))
+!      return( c - '0' );
+      c = TOLOWER_ASC(c);
+      if (c >= 'a' && c <= 'f')
+!      return( c - 'a' + 10 );
+!     return( -1000 );
+  }
+  
+  
+--- 1975,1985 ----
+  hex_digit(int c)
+  {
+      if (VIM_ISDIGIT(c))
+!      return c - '0';
+      c = TOLOWER_ASC(c);
+      if (c >= 'a' && c <= 'f')
+!      return c - 'a' + 10;
+!     return -1000;
+  }
+  
+  
+***************
+*** 2065,2077 ****
+       b = hex_digit( name[5] ) * 16 + hex_digit( name[6] );
+       if( r < 0 || g < 0 || b < 0 )
+           return INVALCOLOR;
+!      return( RGB( r, g, b ) );
+      }
+  
+      for( i = 0; i < ARRAY_LENGTH( table ); i++ )
+      {
+       if( STRICMP( name, table[i].name ) == 0 )
+!          return( table[i].colour );
+      }
+  
+      /*
+--- 2065,2077 ----
+       b = hex_digit( name[5] ) * 16 + hex_digit( name[6] );
+       if( r < 0 || g < 0 || b < 0 )
+           return INVALCOLOR;
+!      return RGB(r, g, b);
+      }
+  
+      for( i = 0; i < ARRAY_LENGTH( table ); i++ )
+      {
+       if( STRICMP( name, table[i].name ) == 0 )
+!          return table[i].colour;
+      }
+  
+      /*
+***************
+*** 2115,2121 ****
+           if (STRICMP(color, name) == 0)
+           {
+               fclose(fd);
+!              return( (guicolor_T) RGB(r,g,b) );
+           }
+       }
+  
+--- 2115,2121 ----
+           if (STRICMP(color, name) == 0)
+           {
+               fclose(fd);
+!              return (guicolor_T)RGB(r, g, b);
+           }
+       }
+  
+***************
+*** 2451,2458 ****
+      for (i = 0; special_keys[i].key_sym != 0; i++)
+       if (name[0] == special_keys[i].vim_code0 &&
+                name[1] == special_keys[i].vim_code1)
+!          return( OK );
+!     return( FAIL );
+  }
+  
+  /****************************************************************************/
+--- 2451,2458 ----
+      for (i = 0; special_keys[i].key_sym != 0; i++)
+       if (name[0] == special_keys[i].vim_code0 &&
+                name[1] == special_keys[i].vim_code1)
+!          return OK;
+!     return FAIL;
+  }
+  
+  /****************************************************************************/
+***************
+*** 2512,2518 ****
+  
+       temp_phi = &external_icon;
+      }
+!     return( temp_phi );
+  }
+  
+  /*
+--- 2512,2518 ----
+  
+       temp_phi = &external_icon;
+      }
+!     return temp_phi;
+  }
+  
+  /*
+***************
+*** 2541,2556 ****
+           icon = gui_ph_toolbar_load_icon( full_pathname );
+  
+       if( icon != NULL )
+!          return( icon );
+      }
+  
+      if( menu->iconidx >= 0 &&
+           ( menu->iconidx < ARRAY_LENGTH( gui_ph_toolbar_images ) ) )
+      {
+!      return( gui_ph_toolbar_images[ menu->iconidx ] );
+      }
+  
+!     return( NULL );
+  }
+  #endif
+  
+--- 2541,2556 ----
+           icon = gui_ph_toolbar_load_icon( full_pathname );
+  
+       if( icon != NULL )
+!          return icon;
+      }
+  
+      if( menu->iconidx >= 0 &&
+           ( menu->iconidx < ARRAY_LENGTH( gui_ph_toolbar_images ) ) )
+      {
+!      return gui_ph_toolbar_images[menu->iconidx];
+      }
+  
+!     return NULL;
+  }
+  #endif
+  
+***************
+*** 2895,2905 ****
+            * at least has the bits we're checking for */
+           if( font_size == info.size &&
+                   style == (info.style & style) )
+!              return( (GuiFont) font_tag );
+       }
+       vim_free( font_tag );
+      }
+!     return( NULL );
+  }
+  
+  /*
+--- 2895,2905 ----
+            * at least has the bits we're checking for */
+           if( font_size == info.size &&
+                   style == (info.style & style) )
+!              return (GuiFont)font_tag;
+       }
+       vim_free( font_tag );
+      }
+!     return NULL;
+  }
+  
+  /*
+***************
+*** 2957,2965 ****
+               }
+           }
+       }
+!      return( TRUE );
+      }
+!     return( FALSE );
+  }
+  
+      int
+--- 2957,2965 ----
+               }
+           }
+       }
+!      return TRUE;
+      }
+!     return FALSE;
+  }
+  
+      int
+***************
+*** 2985,2991 ****
+               "pcterm12", -1, PHFONT_FIXED, NULL );
+  
+       if( font_tag == NULL )
+!          return( FAIL );
+  
+       gui_mch_free_font( gui.norm_font );
+       gui.norm_font = font_tag;
+--- 2985,2991 ----
+               "pcterm12", -1, PHFONT_FIXED, NULL );
+  
+       if( font_tag == NULL )
+!          return FAIL;
+  
+       gui_mch_free_font( gui.norm_font );
+       gui.norm_font = font_tag;
+***************
+*** 2997,3009 ****
+      {
+       if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+                   &font_size ) == FALSE )
+!          return( FAIL );
+  
+       font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
+       if( font_tag == NULL )
+       {
+           vim_free( font_name );
+!          return( FAIL );
+       }
+  
+       gui_mch_free_font( gui.norm_font );
+--- 2997,3009 ----
+      {
+       if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+                   &font_size ) == FALSE )
+!          return FAIL;
+  
+       font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
+       if( font_tag == NULL )
+       {
+           vim_free( font_name );
+!          return FAIL;
+       }
+  
+       gui_mch_free_font( gui.norm_font );
+***************
+*** 3026,3032 ****
+      gui.char_ascent = - extent.ul.y;
+  
+      vim_free( font_name );
+!     return( OK );
+  }
+  
+  /*
+--- 3026,3032 ----
+      gui.char_ascent = - extent.ul.y;
+  
+      vim_free( font_name );
+!     return OK;
+  }
+  
+  /*
+***************
+*** 3042,3048 ****
+      gui.char_height = - info.ascender + info.descender + p_linespace;
+      gui.char_ascent = - info.ascender + p_linespace / 2;
+  
+!     return( OK );
+  }
+  
+      GuiFont
+--- 3042,3048 ----
+      gui.char_height = - info.ascender + info.descender + p_linespace;
+      gui.char_ascent = - info.ascender + p_linespace / 2;
+  
+!     return OK;
+  }
+  
+      GuiFont
+***************
+*** 3060,3072 ****
+       vim_free( font_name );
+  
+       if( font_tag != NULL )
+!          return( (GuiFont) font_tag );
+      }
+  
+      if( report_error )
+       EMSG2(e_font, vim_font_name );
+  
+!     return( FAIL );
+  }
+  
+  #if defined(FEAT_EVAL) || defined(PROTO)
+--- 3060,3072 ----
+       vim_free( font_name );
+  
+       if( font_tag != NULL )
+!          return (GuiFont)font_tag;
+      }
+  
+      if( report_error )
+       EMSG2(e_font, vim_font_name );
+  
+!     return FAIL;
+  }
+  
+  #if defined(FEAT_EVAL) || defined(PROTO)
+*** ../vim-7.3.261/src/version.c       2011-07-27 13:59:12.000000000 +0200
+--- src/version.c      2011-07-27 14:08:08.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     262,
+  /**/
+
+-- 
+You know you use Vim too much when you have this alias in your
+~/.bashrc file: alias :e=/bin/vim             (Eljay Love-Jensen)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.263.patch0 b/vim/patches/vim-7.3.263.patch0
new file mode 100644 (file)
index 0000000..9885098
--- /dev/null
@@ -0,0 +1,162 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.263
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.263
+Problem:    Perl and Tcl have a few code style problems.
+Solution:   Clean it up.  (Elias Diem)
+Files:     src/if_perl.xs, src/if_tcl.c
+
+
+*** ../vim-7.3.262/src/if_perl.xs      2010-10-23 14:02:48.000000000 +0200
+--- src/if_perl.xs     2011-07-27 14:11:03.000000000 +0200
+***************
+*** 755,761 ****
+  #ifdef HAVE_SANDBOX
+      if (sandbox)
+      {
+!      safe = perl_get_sv( "VIM::safe", FALSE );
+  # ifndef MAKE_TEST  /* avoid a warning for unreachable code */
+       if (safe == NULL || !SvTRUE(safe))
+           EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
+--- 755,761 ----
+  #ifdef HAVE_SANDBOX
+      if (sandbox)
+      {
+!      safe = perl_get_sv("VIM::safe", FALSE);
+  # ifndef MAKE_TEST  /* avoid a warning for unreachable code */
+       if (safe == NULL || !SvTRUE(safe))
+           EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
+***************
+*** 1108,1114 ****
+      VIWIN win
+  
+      PPCODE:
+!     if(items == 1)
+      {
+        EXTEND(sp, 2);
+        if (!win_valid(win))
+--- 1108,1114 ----
+      VIWIN win
+  
+      PPCODE:
+!     if (items == 1)
+      {
+        EXTEND(sp, 2);
+        if (!win_valid(win))
+***************
+*** 1116,1122 ****
+        PUSHs(sv_2mortal(newSViv(win->w_cursor.lnum)));
+        PUSHs(sv_2mortal(newSViv(win->w_cursor.col)));
+      }
+!     else if(items == 3)
+      {
+        int lnum, col;
+  
+--- 1116,1122 ----
+        PUSHs(sv_2mortal(newSViv(win->w_cursor.lnum)));
+        PUSHs(sv_2mortal(newSViv(win->w_cursor.col)));
+      }
+!     else if (items == 3)
+      {
+        int lnum, col;
+  
+***************
+*** 1249,1257 ****
+       {
+           lnum = SvIV(ST(1));
+           count = 1 + SvIV(ST(2)) - lnum;
+!          if(count == 0)
+               count = 1;
+!          if(count < 0)
+           {
+               lnum -= count;
+               count = -count;
+--- 1249,1257 ----
+       {
+           lnum = SvIV(ST(1));
+           count = 1 + SvIV(ST(2)) - lnum;
+!          if (count == 0)
+               count = 1;
+!          if (count < 0)
+           {
+               lnum -= count;
+               count = -count;
+*** ../vim-7.3.262/src/if_tcl.c        2010-12-17 20:23:56.000000000 +0100
+--- src/if_tcl.c       2011-07-27 14:11:03.000000000 +0200
+***************
+*** 1884,1897 ****
+  {
+      int newerr = OK;
+  
+!     if (error == TCL_EXIT )
+      {
+       int retval;
+       char buf[50];
+       Tcl_Obj *robj;
+  
+       robj = Tcl_GetObjResult(tclinfo.interp);
+!      if( Tcl_GetIntFromObj(tclinfo.interp, robj, &retval) != TCL_OK )
+       {
+           EMSG(_("E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"));
+           newerr = FAIL;
+--- 1884,1897 ----
+  {
+      int newerr = OK;
+  
+!     if (error == TCL_EXIT)
+      {
+       int retval;
+       char buf[50];
+       Tcl_Obj *robj;
+  
+       robj = Tcl_GetObjResult(tclinfo.interp);
+!      if (Tcl_GetIntFromObj(tclinfo.interp, robj, &retval) != TCL_OK)
+       {
+           EMSG(_("E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"));
+           newerr = FAIL;
+***************
+*** 1900,1906 ****
+       {
+           sprintf(buf, _("E572: exit code %d"), retval);
+           tclerrmsg(buf);
+!          if (retval == 0 )
+           {
+               did_emsg = 0;
+               newerr = OK;
+--- 1900,1906 ----
+       {
+           sprintf(buf, _("E572: exit code %d"), retval);
+           tclerrmsg(buf);
+!          if (retval == 0)
+           {
+               did_emsg = 0;
+               newerr = OK;
+*** ../vim-7.3.262/src/version.c       2011-07-27 14:09:05.000000000 +0200
+--- src/version.c      2011-07-27 14:12:05.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     263,
+  /**/
+
+-- 
+DEAD PERSON:  I don't want to go in the cart!
+CUSTOMER:     Oh, don't be such a baby.
+MORTICIAN:    I can't take him...
+DEAD PERSON:  I feel fine!
+CUSTOMER:     Oh, do us a favor...
+MORTICIAN:    I can't.
+                                  The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.264.patch0 b/vim/patches/vim-7.3.264.patch0
new file mode 100644 (file)
index 0000000..71ec851
--- /dev/null
@@ -0,0 +1,159 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.264
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.264
+Problem:    When the current directory name contains wildcard characters, such
+           as "foo[with]bar", the tags file can't be found.  (Jeremy
+           Erickson)
+Solution:   When searching for matching files also match without expanding
+           wildcards.  This is a bit of a hack.
+Files:     src/vim.h, src/misc1.c, src/misc2.c
+
+
+*** ../vim-7.3.263/src/vim.h   2011-07-20 15:04:52.000000000 +0200
+--- src/vim.h  2011-07-27 16:21:38.000000000 +0200
+***************
+*** 816,821 ****
+--- 816,822 ----
+  #define EW_PATH              0x80    /* search in 'path' too */
+  #define EW_ICASE     0x100   /* ignore case */
+  #define EW_NOERROR   0x200   /* no error for bad regexp */
++ #define EW_NOTWILD   0x400   /* add match with literal name if exists */
+  /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
+   * is used when executing commands and EW_SILENT for interactive expanding. */
+  
+*** ../vim-7.3.263/src/misc1.c 2011-07-20 15:04:52.000000000 +0200
+--- src/misc1.c        2011-07-27 17:24:39.000000000 +0200
+***************
+*** 9119,9125 ****
+        * all entries found with "matchname". */
+       if ((p[0] != '.' || starts_with_dot)
+               && (matchname == NULL
+!                  || vim_regexec(&regmatch, p, (colnr_T)0)))
+       {
+  #ifdef WIN3264
+           STRCPY(s, p);
+--- 9119,9127 ----
+        * all entries found with "matchname". */
+       if ((p[0] != '.' || starts_with_dot)
+               && (matchname == NULL
+!                || vim_regexec(&regmatch, p, (colnr_T)0)
+!                || ((flags & EW_NOTWILD)
+!                   && fnamencmp(path + (s - buf), p, e - s) == 0)))
+       {
+  #ifdef WIN3264
+           STRCPY(s, p);
+***************
+*** 9323,9329 ****
+      e = p;
+      *e = NUL;
+  
+!     /* now we have one wildcard component between "s" and "e" */
+      /* Remove backslashes between "wildoff" and the start of the wildcard
+       * component. */
+      for (p = buf + wildoff; p < s; ++p)
+--- 9325,9331 ----
+      e = p;
+      *e = NUL;
+  
+!     /* Now we have one wildcard component between "s" and "e". */
+      /* Remove backslashes between "wildoff" and the start of the wildcard
+       * component. */
+      for (p = buf + wildoff; p < s; ++p)
+***************
+*** 9390,9396 ****
+           if (dp == NULL)
+               break;
+           if ((dp->d_name[0] != '.' || starts_with_dot)
+!                  && vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0))
+           {
+               STRCPY(s, dp->d_name);
+               len = STRLEN(buf);
+--- 9392,9400 ----
+           if (dp == NULL)
+               break;
+           if ((dp->d_name[0] != '.' || starts_with_dot)
+!               && (vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0)
+!                 || ((flags & EW_NOTWILD)
+!                   && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
+           {
+               STRCPY(s, dp->d_name);
+               len = STRLEN(buf);
+*** ../vim-7.3.263/src/misc2.c 2011-07-07 17:15:29.000000000 +0200
+--- src/misc2.c        2011-07-27 17:21:10.000000000 +0200
+***************
+*** 4653,4661 ****
+      {
+       if (r_ptr[0] == '\\' && r_ptr[1] == ';')
+       {
+!          /* overwrite the escape char,
+!           * use STRLEN(r_ptr) to move the trailing '\0'
+!           */
+           STRMOVE(r_ptr, r_ptr + 1);
+           r_ptr++;
+       }
+--- 4653,4660 ----
+      {
+       if (r_ptr[0] == '\\' && r_ptr[1] == ';')
+       {
+!          /* Overwrite the escape char,
+!           * use STRLEN(r_ptr) to move the trailing '\0'. */
+           STRMOVE(r_ptr, r_ptr + 1);
+           r_ptr++;
+       }
+***************
+*** 4914,4923 ****
+                       stackp->ffs_filearray_size = 0;
+               }
+               else
+                   expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
+                           &stackp->ffs_filearray_size,
+                           &stackp->ffs_filearray,
+!                          EW_DIR|EW_ADDSLASH|EW_SILENT);
+  
+               stackp->ffs_filearray_cur = 0;
+               stackp->ffs_stage = 0;
+--- 4913,4925 ----
+                       stackp->ffs_filearray_size = 0;
+               }
+               else
++                  /* Add EW_NOTWILD because the expanded path may contain
++                   * wildcard characters that are to be taken literally.
++                   * This is a bit of a hack. */
+                   expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
+                           &stackp->ffs_filearray_size,
+                           &stackp->ffs_filearray,
+!                          EW_DIR|EW_ADDSLASH|EW_SILENT|EW_NOTWILD);
+  
+               stackp->ffs_filearray_cur = 0;
+               stackp->ffs_stage = 0;
+*** ../vim-7.3.263/src/version.c       2011-07-27 14:15:41.000000000 +0200
+--- src/version.c      2011-07-27 17:25:44.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     264,
+  /**/
+
+-- 
+CUSTOMER:     You're not fooling anyone y'know.  Look, isn't there something
+              you can do?
+DEAD PERSON:  I feel happy... I feel happy.
+    [whop]
+CUSTOMER:     Ah, thanks very much.
+MORTICIAN:    Not at all.  See you on Thursday.
+CUSTOMER:     Right.
+                                  The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.265.patch0 b/vim/patches/vim-7.3.265.patch0
new file mode 100644 (file)
index 0000000..98cb1b4
--- /dev/null
@@ -0,0 +1,145 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.265
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.265
+Problem:    When storing a pattern in search history there is no proper check
+           for the separator character.
+Solution:   Pass the separator character to in_history(). (Muraoka Taro)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.3.264/src/ex_getln.c      2011-07-07 16:44:33.000000000 +0200
+--- src/ex_getln.c     2011-07-27 17:50:35.000000000 +0200
+***************
+*** 67,73 ****
+  
+  static int   hist_char2type __ARGS((int c));
+  
+! static int   in_history __ARGS((int, char_u *, int));
+  # ifdef FEAT_EVAL
+  static int   calc_hist_idx __ARGS((int histype, int num));
+  # endif
+--- 67,73 ----
+  
+  static int   hist_char2type __ARGS((int c));
+  
+! static int   in_history __ARGS((int, char_u *, int, int));
+  # ifdef FEAT_EVAL
+  static int   calc_hist_idx __ARGS((int histype, int num));
+  # endif
+***************
+*** 5289,5301 ****
+   * If 'move_to_front' is TRUE, matching entry is moved to end of history.
+   */
+      static int
+! in_history(type, str, move_to_front)
+      int          type;
+      char_u  *str;
+      int          move_to_front;      /* Move the entry to the front if it exists */
+  {
+      int          i;
+      int          last_i = -1;
+  
+      if (hisidx[type] < 0)
+       return FALSE;
+--- 5289,5303 ----
+   * If 'move_to_front' is TRUE, matching entry is moved to end of history.
+   */
+      static int
+! in_history(type, str, move_to_front, sep)
+      int          type;
+      char_u  *str;
+      int          move_to_front;      /* Move the entry to the front if it exists */
++     int          sep;
+  {
+      int          i;
+      int          last_i = -1;
++     char_u  *p;
+  
+      if (hisidx[type] < 0)
+       return FALSE;
+***************
+*** 5304,5310 ****
+      {
+       if (history[type][i].hisstr == NULL)
+           return FALSE;
+!      if (STRCMP(str, history[type][i].hisstr) == 0)
+       {
+           if (!move_to_front)
+               return TRUE;
+--- 5306,5317 ----
+      {
+       if (history[type][i].hisstr == NULL)
+           return FALSE;
+! 
+!      /* For search history, check that the separator character matches as
+!       * well. */
+!      p = history[type][i].hisstr;
+!      if (STRCMP(str, p) == 0
+!              && (type != HIST_SEARCH || sep == p[STRLEN(p) + 1]))
+       {
+           if (!move_to_front)
+               return TRUE;
+***************
+*** 5398,5404 ****
+       }
+       last_maptick = -1;
+      }
+!     if (!in_history(histype, new_entry, TRUE))
+      {
+       if (++hisidx[histype] == hislen)
+           hisidx[histype] = 0;
+--- 5405,5411 ----
+       }
+       last_maptick = -1;
+      }
+!     if (!in_history(histype, new_entry, TRUE, sep))
+      {
+       if (++hisidx[histype] == hislen)
+           hisidx[histype] = 0;
+***************
+*** 5977,5983 ****
+       if (val != NULL && *val != NUL)
+       {
+           if (!in_history(type, val + (type == HIST_SEARCH),
+!                                                      viminfo_add_at_front))
+           {
+               /* Need to re-allocate to append the separator byte. */
+               len = STRLEN(val);
+--- 5984,5990 ----
+       if (val != NULL && *val != NUL)
+       {
+           if (!in_history(type, val + (type == HIST_SEARCH),
+!                                                viminfo_add_at_front, *val))
+           {
+               /* Need to re-allocate to append the separator byte. */
+               len = STRLEN(val);
+*** ../vim-7.3.264/src/version.c       2011-07-27 17:31:42.000000000 +0200
+--- src/version.c      2011-07-27 17:58:22.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     265,
+  /**/
+
+-- 
+    [clop clop]
+MORTICIAN:  Who's that then?
+CUSTOMER:   I don't know.
+MORTICIAN:  Must be a king.
+CUSTOMER:   Why?
+MORTICIAN:  He hasn't got shit all over him.
+                                  The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.266.patch0 b/vim/patches/vim-7.3.266.patch0
new file mode 100644 (file)
index 0000000..373280e
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.266
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.266
+Problem:    In Gvim with iBus typing space in Insert mode doesn't work.
+Solution:   Clear xim_expected_char after checking it.
+Files:     src/mbyte.c
+
+
+*** ../vim-7.3.265/src/mbyte.c 2011-07-15 21:16:54.000000000 +0200
+--- src/mbyte.c        2011-07-27 18:21:13.000000000 +0200
+***************
+*** 5170,5175 ****
+--- 5170,5179 ----
+               /* We had a keypad key, and XIM tried to thieve it */
+               return FALSE;
+  
++          /* This is supposed to fix a problem with iBus, that space
++           * characters don't work in input mode. */
++          xim_expected_char = NUL;
++ 
+           /* Normal processing */
+           return imresult;
+       }
+*** ../vim-7.3.265/src/version.c       2011-07-27 17:58:42.000000000 +0200
+--- src/version.c      2011-07-27 18:23:00.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     266,
+  /**/
+
+-- 
+    [clop clop]
+ARTHUR:  Old woman!
+DENNIS:  Man!
+ARTHUR:  Man, sorry.  What knight lives in that castle over there?
+DENNIS:  I'm thirty seven.
+ARTHUR:  What?
+DENNIS:  I'm thirty seven -- I'm not old!
+                                  The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.267.patch0 b/vim/patches/vim-7.3.267.patch0
new file mode 100644 (file)
index 0000000..d986e50
--- /dev/null
@@ -0,0 +1,67 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.267
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.267
+Problem:    Ruby on Mac OS X 10.7 may crash.
+Solution:   Avoid alloc(0). (Bjorn Winckler)
+Files:     src/if_ruby.c
+
+
+*** ../vim-7.3.266/src/if_ruby.c       2011-01-17 19:53:20.000000000 +0100
+--- src/if_ruby.c      2011-08-04 18:57:43.000000000 +0200
+***************
+*** 761,771 ****
+      char *buff, *p;
+  
+      str = rb_obj_as_string(str);
+!     buff = ALLOCA_N(char, RSTRING_LEN(str));
+!     strcpy(buff, RSTRING_PTR(str));
+!     p = strchr(buff, '\n');
+!     if (p) *p = '\0';
+!     MSG(buff);
+      return Qnil;
+  }
+  
+--- 761,779 ----
+      char *buff, *p;
+  
+      str = rb_obj_as_string(str);
+!     if (RSTRING_LEN(str) > 0)
+!     {
+!      /* Only do this when the string isn't empty, alloc(0) causes trouble. */
+!      buff = ALLOCA_N(char, RSTRING_LEN(str));
+!      strcpy(buff, RSTRING_PTR(str));
+!      p = strchr(buff, '\n');
+!      if (p) *p = '\0';
+!      MSG(buff);
+!     }
+!     else
+!     {
+!      MSG("");
+!     }
+      return Qnil;
+  }
+  
+*** ../vim-7.3.266/src/version.c       2011-07-27 18:25:40.000000000 +0200
+--- src/version.c      2011-08-04 19:07:45.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     267,
+  /**/
+
+-- 
+There are 10 kinds of people: Those who understand binary and those who don't.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.268.patch0 b/vim/patches/vim-7.3.268.patch0
new file mode 100644 (file)
index 0000000..aa84877
--- /dev/null
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.268
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.268
+Problem:    Vim freezes when executing an external command with zsh.
+Solution:   Use O_NOCTTY both in the master and slave. (Bjorn Winckler)
+Files:     src/os_unix.c
+
+
+*** ../vim-7.3.267/src/os_unix.c       2011-07-07 16:20:45.000000000 +0200
+--- src/os_unix.c      2011-08-04 19:06:14.000000000 +0200
+***************
+*** 3889,3899 ****
+       if (p_guipty && !(options & (SHELL_READ|SHELL_WRITE)))
+       {
+           pty_master_fd = OpenPTY(&tty_name);     /* open pty */
+!          if (pty_master_fd >= 0 && ((pty_slave_fd =
+!                                  open(tty_name, O_RDWR | O_EXTRA, 0)) < 0))
+           {
+!              close(pty_master_fd);
+!              pty_master_fd = -1;
+           }
+       }
+       /*
+--- 3889,3909 ----
+       if (p_guipty && !(options & (SHELL_READ|SHELL_WRITE)))
+       {
+           pty_master_fd = OpenPTY(&tty_name);     /* open pty */
+!          if (pty_master_fd >= 0)
+           {
+!              /* Leaving out O_NOCTTY may lead to waitpid() always returning
+!               * 0 on Mac OS X 10.7 thereby causing freezes. Let's assume
+!               * adding O_NOCTTY always works when defined. */
+! #ifdef O_NOCTTY
+!              pty_slave_fd = open(tty_name, O_RDWR | O_NOCTTY | O_EXTRA, 0);
+! #else
+!              pty_slave_fd = open(tty_name, O_RDWR | O_EXTRA, 0);
+! #endif
+!              if (pty_slave_fd < 0)
+!              {
+!                  close(pty_master_fd);
+!                  pty_master_fd = -1;
+!              }
+           }
+       }
+       /*
+*** ../vim-7.3.267/src/version.c       2011-08-04 19:34:55.000000000 +0200
+--- src/version.c      2011-08-04 19:36:00.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     268,
+  /**/
+
+-- 
+Mental Floss prevents moral decay!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.269.patch0 b/vim/patches/vim-7.3.269.patch0
new file mode 100644 (file)
index 0000000..a0bfc47
--- /dev/null
@@ -0,0 +1,112 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.269
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.269
+Problem:    'shellcmdflag' only works with one flag. 
+Solution:   Split into multiple arguments. (Gary Johnson)
+Files:     src/os_unix.c
+
+
+*** ../vim-7.3.268/src/os_unix.c       2011-08-04 19:36:47.000000000 +0200
+--- src/os_unix.c      2011-08-04 20:27:13.000000000 +0200
+***************
+*** 3795,3802 ****
+--- 3795,3804 ----
+      int              retval = -1;
+      char     **argv = NULL;
+      int              argc;
++     char_u   *p_shcf_copy = NULL;
+      int              i;
+      char_u   *p;
++     char_u   *s;
+      int              inquote;
+      int              pty_master_fd = -1;         /* for pty's */
+  # ifdef FEAT_GUI
+***************
+*** 3855,3860 ****
+--- 3857,3875 ----
+       }
+       if (argv == NULL)
+       {
++          /*
++           * Account for possible multiple args in p_shcf.
++           */
++          p = p_shcf;
++          for (;;)
++          {
++              p = skiptowhite(p);
++              if (*p == NUL)
++                  break;
++              ++argc;
++              p = skipwhite(p);
++          }
++ 
+           argv = (char **)alloc((unsigned)((argc + 4) * sizeof(char *)));
+           if (argv == NULL)       /* out of memory */
+               goto error;
+***************
+*** 3864,3870 ****
+      {
+       if (extra_shell_arg != NULL)
+           argv[argc++] = (char *)extra_shell_arg;
+!      argv[argc++] = (char *)p_shcf;
+       argv[argc++] = (char *)cmd;
+      }
+      argv[argc] = NULL;
+--- 3879,3901 ----
+      {
+       if (extra_shell_arg != NULL)
+           argv[argc++] = (char *)extra_shell_arg;
+! 
+!      /* Break 'shellcmdflag' into white separated parts.  This doesn't
+!       * handle quoted strings, they are very unlikely to appear. */
+!      p_shcf_copy = alloc((unsigned)STRLEN(p_shcf) + 1);
+!      if (p_shcf_copy == NULL)    /* out of memory */
+!          goto error;
+!      s = p_shcf_copy;
+!      p = p_shcf;
+!      while (*p != NUL)
+!      {
+!          argv[argc++] = (char *)s;
+!          while (*p && *p != ' ' && *p != TAB)
+!              *s++ = *p++;
+!          *s++ = NUL;
+!          p = skipwhite(p);
+!      }
+! 
+       argv[argc++] = (char *)cmd;
+      }
+      argv[argc] = NULL;
+***************
+*** 4677,4682 ****
+--- 4708,4714 ----
+       }
+      }
+      vim_free(argv);
++     vim_free(p_shcf_copy);
+  
+  error:
+      if (!did_settmode)
+*** ../vim-7.3.268/src/version.c       2011-08-04 19:36:47.000000000 +0200
+--- src/version.c      2011-08-04 20:30:44.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     269,
+  /**/
+
+-- 
+Be nice to your kids...  they'll be the ones choosing your nursing home.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.270.patch0 b/vim/patches/vim-7.3.270.patch0
new file mode 100644 (file)
index 0000000..3eaf6bf
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.270
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.270
+Problem:    Illegal memory access.
+Solution:   Swap conditions. (Dominique Pelle)
+Files:     src/ops.c
+
+
+*** ../vim-7.3.269/src/ops.c   2011-07-15 17:51:30.000000000 +0200
+--- src/ops.c  2011-08-10 12:07:22.000000000 +0200
+***************
+*** 6311,6317 ****
+      *wc += words;
+  
+      /* Add eol_size if the end of line was reached before hitting limit. */
+!     if (line[i] == NUL && i < limit)
+      {
+       i += eol_size;
+       chars += eol_size;
+--- 6311,6317 ----
+      *wc += words;
+  
+      /* Add eol_size if the end of line was reached before hitting limit. */
+!     if (i < limit && line[i] == NUL)
+      {
+       i += eol_size;
+       chars += eol_size;
+*** ../vim-7.3.269/src/version.c       2011-08-04 20:31:50.000000000 +0200
+--- src/version.c      2011-08-10 12:09:30.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     270,
+  /**/
+
+-- 
+An indication you must be a manager:
+You give constructive feedback to your dog.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.271.patch0 b/vim/patches/vim-7.3.271.patch0
new file mode 100644 (file)
index 0000000..c42d19a
--- /dev/null
@@ -0,0 +1,504 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.271
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.271
+Problem:    Code not following Vim coding style.
+Solution:   Fix the style. (Elias Diem)
+Files:     src/gui_photon.c
+
+
+*** ../vim-7.3.270/src/gui_photon.c    2011-07-27 14:09:05.000000000 +0200
+--- src/gui_photon.c   2011-08-10 12:18:35.000000000 +0200
+***************
+*** 358,378 ****
+  }
+  
+      static int
+! gui_ph_handle_window_cb( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+  {
+      PhWindowEvent_t *we = info->cbdata;
+      ushort_t *width, *height;
+  
+!     switch( we->event_f ) {
+       case Ph_WM_CLOSE:
+           gui_shell_closed();
+           break;
+  
+       case Ph_WM_FOCUS:
+           /* Just in case it's hidden and needs to be shown */
+!          gui_mch_mousehide( MOUSE_SHOW );
+  
+!          if( we->event_state == Ph_WM_EVSTATE_FOCUS )
+           {
+               gui_focus_change(TRUE);
+               gui_mch_start_blink();
+--- 358,378 ----
+  }
+  
+      static int
+! gui_ph_handle_window_cb(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+  {
+      PhWindowEvent_t *we = info->cbdata;
+      ushort_t *width, *height;
+  
+!     switch (we->event_f) {
+       case Ph_WM_CLOSE:
+           gui_shell_closed();
+           break;
+  
+       case Ph_WM_FOCUS:
+           /* Just in case it's hidden and needs to be shown */
+!          gui_mch_mousehide(MOUSE_SHOW);
+  
+!          if (we->event_state == Ph_WM_EVSTATE_FOCUS)
+           {
+               gui_focus_change(TRUE);
+               gui_mch_start_blink();
+***************
+*** 385,401 ****
+           break;
+  
+       case Ph_WM_RESIZE:
+!          PtGetResource( gui.vimWindow, Pt_ARG_WIDTH, &width, 0 );
+!          PtGetResource( gui.vimWindow, Pt_ARG_HEIGHT, &height, 0 );
+  #ifdef USE_PANEL_GROUP
+           width  -= (pg_margin_left + pg_margin_right);
+           height -= (pg_margin_top + pg_margin_bottom);
+  #endif
+!          gui_resize_shell( *width, *height );
+!          gui_set_shellsize( FALSE, FALSE, RESIZE_BOTH );
+           is_ignore_draw = FALSE;
+!          PtEndFlux( gui.vimContainer );
+!          PtContainerRelease( gui.vimContainer );
+           break;
+  
+       default:
+--- 385,401 ----
+           break;
+  
+       case Ph_WM_RESIZE:
+!          PtGetResource(gui.vimWindow, Pt_ARG_WIDTH, &width, 0);
+!          PtGetResource(gui.vimWindow, Pt_ARG_HEIGHT, &height, 0);
+  #ifdef USE_PANEL_GROUP
+           width  -= (pg_margin_left + pg_margin_right);
+           height -= (pg_margin_top + pg_margin_bottom);
+  #endif
+!          gui_resize_shell(*width, *height);
+!          gui_set_shellsize(FALSE, FALSE, RESIZE_BOTH);
+           is_ignore_draw = FALSE;
+!          PtEndFlux(gui.vimContainer);
+!          PtContainerRelease(gui.vimContainer);
+           break;
+  
+       default:
+***************
+*** 406,412 ****
+  }
+  
+      static int
+! gui_ph_handle_scrollbar( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+  {
+      PtScrollbarCallback_t *scroll;
+      scrollbar_T *sb;
+--- 406,412 ----
+  }
+  
+      static int
+! gui_ph_handle_scrollbar(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+  {
+      PtScrollbarCallback_t *scroll;
+      scrollbar_T *sb;
+***************
+*** 415,424 ****
+      scroll = info->cbdata;
+  
+      sb = (scrollbar_T *) data;
+!     if( sb != NULL )
+      {
+       value = scroll->position;
+!      switch( scroll->action )
+       {
+           case Pt_SCROLL_DRAGGED:
+               dragging = TRUE;
+--- 415,424 ----
+      scroll = info->cbdata;
+  
+      sb = (scrollbar_T *) data;
+!     if (sb != NULL)
+      {
+       value = scroll->position;
+!      switch (scroll->action)
+       {
+           case Pt_SCROLL_DRAGGED:
+               dragging = TRUE;
+***************
+*** 436,532 ****
+  }
+  
+      static int
+! gui_ph_handle_keyboard( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+  {
+      PhKeyEvent_t    *key;
+      unsigned char   string[6];
+      int                  len, i;
+      int                  ch, modifiers;
+  
+!     key = PhGetData( info->event );
+  
+      ch = modifiers = len = 0;
+  
+!     if( p_mh )
+!      gui_mch_mousehide( MOUSE_HIDE );
+  
+      /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
+!     if( key->key_flags & Pk_KF_Compose )
+      {
+       return Pt_CONTINUE;
+      }
+  
+!     if( (key->key_flags & Pk_KF_Cap_Valid) &&
+!          PkIsKeyDown( key->key_flags ) )
+      {
+  #ifdef FEAT_MENU
+       /*
+        * Only show the menu if the Alt key is down, and the Shift & Ctrl
+        * keys aren't down, as well as the other conditions
+        */
+!      if( ( ( key->key_mods & Pk_KM_Alt ) &&
+!                  !( key->key_mods & Pk_KM_Shift ) &&
+!                  !( key->key_mods & Pk_KM_Ctrl ) ) &&
+           gui.menu_is_active &&
+!          ( *p_wak == 'y' ||
+!            ( *p_wak == 'm' &&
+!              gui_is_menu_shortcut( key->key_cap ) ) ) )
+       {
+           /* Fallthrough and let photon look for the hotkey */
+           return Pt_CONTINUE;
+       }
+  #endif
+  
+!      for( i = 0; special_keys[i].key_sym != 0; i++ )
+       {
+!          if( special_keys[i].key_sym == key->key_cap )
+           {
+               len = 0;
+!              if( special_keys[i].vim_code1 == NUL )
+                   ch = special_keys[i].vim_code0;
+               else
+               {
+                   /* Detect if a keypad number key has been pressed
+                    * and change the key if Num Lock is on */
+!                  if( key->key_cap >= Pk_KP_Enter && key->key_cap <= Pk_KP_9
+!                          && ( key->key_mods & Pk_KM_Num_Lock ) )
+                   {
+                       /* FIXME: For now, just map the key to a ascii value
+                        * (see <photon/PkKeyDef.h>) */
+                       ch = key->key_cap - 0xf080;
+                   }
+                   else
+!                      ch = TO_SPECIAL( special_keys[i].vim_code0,
+!                              special_keys[i].vim_code1 );
+               }
+               break;
+           }
+       }
+  
+!      if( key->key_mods & Pk_KM_Ctrl )
+           modifiers |= MOD_MASK_CTRL;
+!      if( key->key_mods & Pk_KM_Alt )
+           modifiers |= MOD_MASK_ALT;
+!      if( key->key_mods & Pk_KM_Shift )
+           modifiers |= MOD_MASK_SHIFT;
+  
+       /* Is this not a special key? */
+!      if( special_keys[i].key_sym == 0 )
+       {
+!          ch = PhTo8859_1( key );
+!          if( ch == -1
+  #ifdef FEAT_MBYTE
+!              || ( enc_utf8 && ch > 127 )
+  #endif
+               )
+           {
+  #ifdef FEAT_MBYTE
+!              len = PhKeyToMb( string, key );
+!              if( len > 0 )
+               {
+                   static char buf[6];
+                   int src_taken, dst_made;
+!                  if( enc_utf8 != TRUE )
+                   {
+                       PxTranslateFromUTF(
+                               charset_translate,
+--- 436,532 ----
+  }
+  
+      static int
+! gui_ph_handle_keyboard(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+  {
+      PhKeyEvent_t    *key;
+      unsigned char   string[6];
+      int                  len, i;
+      int                  ch, modifiers;
+  
+!     key = PhGetData(info->event);
+  
+      ch = modifiers = len = 0;
+  
+!     if (p_mh)
+!      gui_mch_mousehide(MOUSE_HIDE);
+  
+      /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
+!     if (key->key_flags & Pk_KF_Compose)
+      {
+       return Pt_CONTINUE;
+      }
+  
+!     if ((key->key_flags & Pk_KF_Cap_Valid) &&
+!          PkIsKeyDown(key->key_flags))
+      {
+  #ifdef FEAT_MENU
+       /*
+        * Only show the menu if the Alt key is down, and the Shift & Ctrl
+        * keys aren't down, as well as the other conditions
+        */
+!      if (((key->key_mods & Pk_KM_Alt) &&
+!                  !(key->key_mods & Pk_KM_Shift) &&
+!                  !(key->key_mods & Pk_KM_Ctrl)) &&
+           gui.menu_is_active &&
+!          (*p_wak == 'y' ||
+!            (*p_wak == 'm' &&
+!              gui_is_menu_shortcut(key->key_cap))))
+       {
+           /* Fallthrough and let photon look for the hotkey */
+           return Pt_CONTINUE;
+       }
+  #endif
+  
+!      for(i = 0; special_keys[i].key_sym != 0; i++)
+       {
+!          if (special_keys[i].key_sym == key->key_cap)
+           {
+               len = 0;
+!              if (special_keys[i].vim_code1 == NUL)
+                   ch = special_keys[i].vim_code0;
+               else
+               {
+                   /* Detect if a keypad number key has been pressed
+                    * and change the key if Num Lock is on */
+!                  if (key->key_cap >= Pk_KP_Enter && key->key_cap <= Pk_KP_9
+!                          && (key->key_mods & Pk_KM_Num_Lock))
+                   {
+                       /* FIXME: For now, just map the key to a ascii value
+                        * (see <photon/PkKeyDef.h>) */
+                       ch = key->key_cap - 0xf080;
+                   }
+                   else
+!                      ch = TO_SPECIAL(special_keys[i].vim_code0,
+!                              special_keys[i].vim_code1);
+               }
+               break;
+           }
+       }
+  
+!      if (key->key_mods & Pk_KM_Ctrl)
+           modifiers |= MOD_MASK_CTRL;
+!      if (key->key_mods & Pk_KM_Alt)
+           modifiers |= MOD_MASK_ALT;
+!      if (key->key_mods & Pk_KM_Shift)
+           modifiers |= MOD_MASK_SHIFT;
+  
+       /* Is this not a special key? */
+!      if (special_keys[i].key_sym == 0)
+       {
+!          ch = PhTo8859_1(key);
+!          if (ch == -1
+  #ifdef FEAT_MBYTE
+!              || (enc_utf8 && ch > 127)
+  #endif
+               )
+           {
+  #ifdef FEAT_MBYTE
+!              len = PhKeyToMb(string, key);
+!              if (len > 0)
+               {
+                   static char buf[6];
+                   int src_taken, dst_made;
+!                  if (enc_utf8 != TRUE)
+                   {
+                       PxTranslateFromUTF(
+                               charset_translate,
+***************
+*** 2931,2943 ****
+       name_len = (int_u) ( mark - vim_font );
+  
+      *font_name = vim_strnsave( vim_font, name_len );
+!     if( *font_name != NULL )
+      {
+!      if( mark != NULL )
+       {
+!          while( *mark != NUL && *mark++ == ':')
+           {
+!              switch( tolower( *mark++ ) )
+               {
+                   case 'a': *font_flags |= PF_STYLE_ANTIALIAS; break;
+                   case 'b': *font_flags |= PF_STYLE_BOLD; break;
+--- 2931,2943 ----
+       name_len = (int_u) ( mark - vim_font );
+  
+      *font_name = vim_strnsave( vim_font, name_len );
+!     if (*font_name != NULL)
+      {
+!      if (mark != NULL)
+       {
+!          while (*mark != NUL && *mark++ == ':')
+           {
+!              switch (tolower(*mark++))
+               {
+                   case 'a': *font_flags |= PF_STYLE_ANTIALIAS; break;
+                   case 'b': *font_flags |= PF_STYLE_BOLD; break;
+***************
+*** 2946,2952 ****
+                   case 's':
+                       size = getdigits( &mark );
+                       /* Restrict the size to some vague limits */
+!                      if( size < 1 || size > 100 )
+                           size = 8;
+  
+                       *font_size = size;
+--- 2946,2952 ----
+                   case 's':
+                       size = getdigits( &mark );
+                       /* Restrict the size to some vague limits */
+!                      if (size < 1 || size > 100)
+                           size = 8;
+  
+                       *font_size = size;
+***************
+*** 2973,2990 ****
+      FontQueryInfo info;
+      PhRect_t extent;
+  
+!     if( vim_font_name == NULL )
+      {
+       /* Default font */
+       vim_font_name = "PC Terminal";
+      }
+  
+!     if( STRCMP( vim_font_name, "*" ) == 0 )
+      {
+       font_tag = PtFontSelection( gui.vimWindow, NULL, NULL,
+               "pcterm12", -1, PHFONT_FIXED, NULL );
+  
+!      if( font_tag == NULL )
+           return FAIL;
+  
+       gui_mch_free_font( gui.norm_font );
+--- 2973,2990 ----
+      FontQueryInfo info;
+      PhRect_t extent;
+  
+!     if (vim_font_name == NULL)
+      {
+       /* Default font */
+       vim_font_name = "PC Terminal";
+      }
+  
+!     if (STRCMP( vim_font_name, "*" ) == 0)
+      {
+       font_tag = PtFontSelection( gui.vimWindow, NULL, NULL,
+               "pcterm12", -1, PHFONT_FIXED, NULL );
+  
+!      if (font_tag == NULL)
+           return FAIL;
+  
+       gui_mch_free_font( gui.norm_font );
+***************
+*** 2995,3006 ****
+      }
+      else
+      {
+!      if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+!                  &font_size ) == FALSE )
+           return FAIL;
+  
+       font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
+!      if( font_tag == NULL )
+       {
+           vim_free( font_name );
+           return FAIL;
+--- 2995,3006 ----
+      }
+      else
+      {
+!      if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+!                  &font_size ) == FALSE)
+           return FAIL;
+  
+       font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
+!      if (font_tag == NULL)
+       {
+           vim_free( font_name );
+           return FAIL;
+***************
+*** 3053,3069 ****
+      int_u   font_size = 12;
+      int_u   font_flags = 0;
+  
+!     if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+!              &font_size ) != FALSE )
+      {
+       font_tag = gui_ph_get_font( font_name, font_flags, font_size, -1 );
+       vim_free( font_name );
+  
+!      if( font_tag != NULL )
+           return (GuiFont)font_tag;
+      }
+  
+!     if( report_error )
+       EMSG2(e_font, vim_font_name );
+  
+      return FAIL;
+--- 3053,3069 ----
+      int_u   font_size = 12;
+      int_u   font_flags = 0;
+  
+!     if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+!              &font_size ) != FALSE)
+      {
+       font_tag = gui_ph_get_font( font_name, font_flags, font_size, -1 );
+       vim_free( font_name );
+  
+!      if (font_tag != NULL)
+           return (GuiFont)font_tag;
+      }
+  
+!     if (report_error)
+       EMSG2(e_font, vim_font_name );
+  
+      return FAIL;
+*** ../vim-7.3.270/src/version.c       2011-08-10 12:10:55.000000000 +0200
+--- src/version.c      2011-08-10 12:17:06.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     271,
+  /**/
+
+-- 
+An indication you must be a manager:
+You believe you never have any problems in your life, just
+"issues" and "improvement opportunities".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.272.patch0 b/vim/patches/vim-7.3.272.patch0
new file mode 100644 (file)
index 0000000..b512a1f
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.272
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.272
+Problem:    ":put =list" does not add an empty line for a trailing empty
+            item.
+Solution:   Add a trailing NL when turning a list into a string.
+Files:      src/eval.c
+    
+
+*** ../vim-7.3.271/src/eval.c  2011-07-15 21:24:06.000000000 +0200
+--- src/eval.c 2011-08-10 12:31:51.000000000 +0200
+***************
+*** 1357,1363 ****
+--- 1357,1367 ----
+       {
+           ga_init2(&ga, (int)sizeof(char), 80);
+           if (tv.vval.v_list != NULL)
++          {
+               list_join(&ga, tv.vval.v_list, (char_u *)"\n", TRUE, 0);
++              if (tv.vval.v_list->lv_len > 0)
++                  ga_append(&ga, NL);
++          }
+           ga_append(&ga, NUL);
+           retval = (char_u *)ga.ga_data;
+       }
+*** ../vim-7.3.271/src/version.c       2011-08-10 12:19:00.000000000 +0200
+--- src/version.c      2011-08-10 12:36:41.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     272,
+  /**/
+
+-- 
+Lose weight, NEVER Diet again with
+                  The "Invisible Weight Loss Patch"
+                                               (spam e-mail)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.273.patch0 b/vim/patches/vim-7.3.273.patch0
new file mode 100644 (file)
index 0000000..e74eb5a
--- /dev/null
@@ -0,0 +1,124 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.273
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.273
+Problem:    A BOM in an error file is seen as text. (Aleksey Baibarin)
+Solution:   Remove the BOM from the text before evaluating. (idea by Christian
+            Brabandt)
+Files:      src/quickfix.c, src/mbyte.c, src/proto/mbyte.pro,
+            src/testdir/test10.in
+    
+
+*** ../vim-7.3.272/src/quickfix.c      2011-05-19 17:42:54.000000000 +0200
+--- src/quickfix.c     2011-08-10 12:56:15.000000000 +0200
+***************
+*** 561,566 ****
+--- 561,570 ----
+           break;
+  
+       IObuff[CMDBUFFSIZE - 2] = NUL;  /* for very long lines */
++ #ifdef FEAT_MBYTE
++      remove_bom(IObuff);
++ #endif
++ 
+       if ((efmp = vim_strrchr(IObuff, '\n')) != NULL)
+           *efmp = NUL;
+  #ifdef USE_CRNL
+*** ../vim-7.3.272/src/mbyte.c 2011-07-27 18:25:40.000000000 +0200
+--- src/mbyte.c        2011-08-10 13:11:56.000000000 +0200
+***************
+*** 838,843 ****
+--- 838,864 ----
+  }
+  
+  /*
++  * Remove all BOM from "s" by moving remaining text.
++  */
++     void
++ remove_bom(s)
++     char_u *s;
++ {
++     if (enc_utf8)
++     {
++      char_u *p = s;
++ 
++      while ((p = vim_strbyte(p, 0xef)) != NULL)
++      {
++          if (p[1] == 0xbb && p[2] == 0xbf)
++              STRMOVE(p, p + 3);
++          else
++              ++p;
++      }
++     }
++ }
++ 
++ /*
+   * Get class of pointer:
+   * 0 for blank or NUL
+   * 1 for punctuation
+*** ../vim-7.3.272/src/proto/mbyte.pro 2011-07-07 15:08:53.000000000 +0200
+--- src/proto/mbyte.pro        2011-08-10 12:50:44.000000000 +0200
+***************
+*** 2,7 ****
+--- 2,8 ----
+  int enc_canon_props __ARGS((char_u *name));
+  char_u *mb_init __ARGS((void));
+  int bomb_size __ARGS((void));
++ void remove_bom __ARGS((char_u *s));
+  int mb_get_class __ARGS((char_u *p));
+  int dbcs_class __ARGS((unsigned lead, unsigned trail));
+  int latin_char2len __ARGS((int c));
+*** ../vim-7.3.272/src/testdir/test10.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test10.in      2011-08-10 13:01:46.000000000 +0200
+***************
+*** 2,7 ****
+--- 2,10 ----
+  
+  STARTTEST
+  :so small.vim
++ :" Also test a BOM is ignored.
++ :so mbyte.vim
++ :set encoding=utf-8
+  :/start of errorfile/,/end of errorfile/w! Xerrorfile
+  :/start of testfile/,/end of testfile/w! Xtestfile
+  :cf Xerrorfile
+***************
+*** 20,26 ****
+  
+  start of errorfile
+  "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
+! "Xtestfile", line 7 col 19; this is an error
+  gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include  version.c
+  Xtestfile:13: parse error before `asd'
+  make: *** [vim] Error 1
+--- 23,29 ----
+  
+  start of errorfile
+  "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
+! ï»¿"Xtestfile", line 7 col 19; this is an error
+  gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include  version.c
+  Xtestfile:13: parse error before `asd'
+  make: *** [vim] Error 1
+*** ../vim-7.3.272/src/version.c       2011-08-10 12:38:02.000000000 +0200
+--- src/version.c      2011-08-10 13:14:35.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     273,
+  /**/
+
+-- 
+Compilation process failed successfully.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.274.patch0 b/vim/patches/vim-7.3.274.patch0
new file mode 100644 (file)
index 0000000..48faf3c
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.274
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.274
+Problem:    With concealed characters tabs do not have the right size.
+Solution:   Use VCOL_HLC instead of vcol. (Eiichi Sato)
+Files:     src/screen.c
+
+
+*** ../vim-7.3.273/src/screen.c        2011-03-22 13:29:20.000000000 +0100
+--- src/screen.c       2011-08-10 14:22:47.000000000 +0200
+***************
+*** 4252,4258 ****
+               {
+                   /* tab amount depends on current column */
+                   n_extra = (int)wp->w_buffer->b_p_ts
+!                                 - vcol % (int)wp->w_buffer->b_p_ts - 1;
+  #ifdef FEAT_MBYTE
+                   mb_utf8 = FALSE;    /* don't draw as UTF-8 */
+  #endif
+--- 4252,4258 ----
+               {
+                   /* tab amount depends on current column */
+                   n_extra = (int)wp->w_buffer->b_p_ts
+!                                 - VCOL_HLC % (int)wp->w_buffer->b_p_ts - 1;
+  #ifdef FEAT_MBYTE
+                   mb_utf8 = FALSE;    /* don't draw as UTF-8 */
+  #endif
+*** ../vim-7.3.273/src/version.c       2011-08-10 13:21:30.000000000 +0200
+--- src/version.c      2011-08-10 14:23:38.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     274,
+  /**/
+
+-- 
+   Arthur pulls Pin out.  The MONK blesses the grenade as ...
+ARTHUR:  (quietly) One, two, five ...
+GALAHAD: Three, sir!
+ARTHUR:  Three.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.275.patch0 b/vim/patches/vim-7.3.275.patch0
new file mode 100644 (file)
index 0000000..2bdd145
--- /dev/null
@@ -0,0 +1,77 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.275
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.275
+Problem:    MS-Windows: When using a black background some screen updates
+           cause the window to flicker.
+Solution:   Add WS_CLIPCHILDREN to CreateWindow().  (René Aguirre)
+Files:     src/gui_w32.c
+
+
+*** ../vim-7.3.274/src/gui_w32.c       2011-07-07 17:43:37.000000000 +0200
+--- src/gui_w32.c      2011-08-10 14:40:58.000000000 +0200
+***************
+*** 1379,1385 ****
+           s_hwnd = CreateWindowEx(
+               WS_EX_MDICHILD,
+               szVimWndClass, "Vim MSWindows GUI",
+!              WS_OVERLAPPEDWINDOW | WS_CHILD | WS_CLIPSIBLINGS | 0xC000,
+               gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
+               gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
+               100,                            /* Any value will do */
+--- 1379,1386 ----
+           s_hwnd = CreateWindowEx(
+               WS_EX_MDICHILD,
+               szVimWndClass, "Vim MSWindows GUI",
+!              WS_OVERLAPPEDWINDOW | WS_CHILD
+!                               | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | 0xC000,
+               gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
+               gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
+               100,                            /* Any value will do */
+***************
+*** 1410,1416 ****
+        * titlebar, it will be reparented below. */
+       s_hwnd = CreateWindow(
+               szVimWndClass, "Vim MSWindows GUI",
+!              win_socket_id == 0 ? WS_OVERLAPPEDWINDOW : WS_POPUP,
+               gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
+               gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
+               100,                            /* Any value will do */
+--- 1411,1418 ----
+        * titlebar, it will be reparented below. */
+       s_hwnd = CreateWindow(
+               szVimWndClass, "Vim MSWindows GUI",
+!              (win_socket_id == 0 ? WS_OVERLAPPEDWINDOW : WS_POPUP)
+!                                        | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
+               gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
+               gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
+               100,                            /* Any value will do */
+*** ../vim-7.3.274/src/version.c       2011-08-10 14:32:33.000000000 +0200
+--- src/version.c      2011-08-10 14:39:14.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     275,
+  /**/
+
+-- 
+ARTHUR:          What does it say?
+BROTHER MAYNARD: It reads ... "Here may be found the last words of Joseph of
+                 Aramathea." "He who is valorous and pure of heart may find
+                 the Holy Grail in the aaaaarrrrrrggghhh..."
+ARTHUR:          What?
+BROTHER MAYNARD: "The Aaaaarrrrrrggghhh..."
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.276.patch0 b/vim/patches/vim-7.3.276.patch0
new file mode 100644 (file)
index 0000000..3af0245
--- /dev/null
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.276
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.276
+Problem:    GvimExt sets $LANG in the wrong way.
+Solution:   Save the environment and use it for gvim. (Yasuhiro Matsumoto)
+Files:     src/GvimExt/gvimext.cpp
+
+
+*** ../vim-7.3.275/src/GvimExt/gvimext.cpp     2011-07-20 17:27:17.000000000 +0200
+--- src/GvimExt/gvimext.cpp    2011-08-10 16:25:32.000000000 +0200
+***************
+*** 142,147 ****
+--- 142,148 ----
+  static int dyn_libintl_init(char *dir);
+  static void dyn_libintl_end(void);
+  
++ static wchar_t *oldenv = NULL;
+  static HINSTANCE hLibintlDLL = 0;
+  static char *(*dyn_libintl_gettext)(const char *) = null_libintl_gettext;
+  static char *(*dyn_libintl_textdomain)(const char *) = null_libintl_textdomain;
+***************
+*** 339,346 ****
+  inc_cRefThisDLL()
+  {
+  #ifdef FEAT_GETTEXT
+!     if (g_cRefThisDll == 0)
+       dyn_gettext_load();
+  #endif
+      InterlockedIncrement((LPLONG)&g_cRefThisDll);
+  }
+--- 340,349 ----
+  inc_cRefThisDLL()
+  {
+  #ifdef FEAT_GETTEXT
+!     if (g_cRefThisDll == 0) {
+       dyn_gettext_load();
++      oldenv = GetEnvironmentStringsW();
++     }
+  #endif
+      InterlockedIncrement((LPLONG)&g_cRefThisDll);
+  }
+***************
+*** 349,356 ****
+  dec_cRefThisDLL()
+  {
+  #ifdef FEAT_GETTEXT
+!     if (InterlockedDecrement((LPLONG)&g_cRefThisDll) == 0)
+       dyn_gettext_free();
+  #else
+      InterlockedDecrement((LPLONG)&g_cRefThisDll);
+  #endif
+--- 352,364 ----
+  dec_cRefThisDLL()
+  {
+  #ifdef FEAT_GETTEXT
+!     if (InterlockedDecrement((LPLONG)&g_cRefThisDll) == 0) {
+       dyn_gettext_free();
++      if (oldenv != NULL) {
++          FreeEnvironmentStringsW(oldenv);
++          oldenv = NULL;
++      }
++     }
+  #else
+      InterlockedDecrement((LPLONG)&g_cRefThisDll);
+  #endif
+***************
+*** 905,912 ****
+                       NULL,           // Process handle not inheritable.
+                       NULL,           // Thread handle not inheritable.
+                       FALSE,          // Set handle inheritance to FALSE.
+!                      0,              // No creation flags.
+!                      NULL,           // Use parent's environment block.
+                       NULL,           // Use parent's starting directory.
+                       &si,            // Pointer to STARTUPINFO structure.
+                       &pi)            // Pointer to PROCESS_INFORMATION structure.
+--- 913,920 ----
+                       NULL,           // Process handle not inheritable.
+                       NULL,           // Thread handle not inheritable.
+                       FALSE,          // Set handle inheritance to FALSE.
+!                      oldenv == NULL ? 0 : CREATE_UNICODE_ENVIRONMENT,
+!                      oldenv,         // Use unmodified environment block.
+                       NULL,           // Use parent's starting directory.
+                       &si,            // Pointer to STARTUPINFO structure.
+                       &pi)            // Pointer to PROCESS_INFORMATION structure.
+***************
+*** 987,994 ****
+               NULL,           // Process handle not inheritable.
+               NULL,           // Thread handle not inheritable.
+               FALSE,          // Set handle inheritance to FALSE.
+!              0,              // No creation flags.
+!              NULL,           // Use parent's environment block.
+               NULL,           // Use parent's starting directory.
+               &si,            // Pointer to STARTUPINFO structure.
+               &pi)            // Pointer to PROCESS_INFORMATION structure.
+--- 995,1002 ----
+               NULL,           // Process handle not inheritable.
+               NULL,           // Thread handle not inheritable.
+               FALSE,          // Set handle inheritance to FALSE.
+!              oldenv == NULL ? 0 : CREATE_UNICODE_ENVIRONMENT,
+!              oldenv,         // Use unmodified environment block.
+               NULL,           // Use parent's starting directory.
+               &si,            // Pointer to STARTUPINFO structure.
+               &pi)            // Pointer to PROCESS_INFORMATION structure.
+*** ../vim-7.3.275/src/version.c       2011-08-10 15:56:24.000000000 +0200
+--- src/version.c      2011-08-10 16:28:42.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     276,
+  /**/
+
+-- 
+User:       I'm having problems with my text editor.
+Help desk:  Which editor are you using?
+User:       I don't know, but it's version VI (pronounced: 6).
+Help desk:  Oh, then you should upgrade to version VIM (pronounced: 994).
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.277.patch0 b/vim/patches/vim-7.3.277.patch0
new file mode 100644 (file)
index 0000000..3509a1a
--- /dev/null
@@ -0,0 +1,348 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.277
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.277
+Problem:    MS-Windows: some characters do not show in dialogs.
+Solution:   Use the wide methods when available. (Yanwei Jia)
+Files:      src/gui_w32.c, src/gui_w48.c, src/os_mswin.c, src/os_win32.c,
+            src/os_win32.h
+    
+
+*** ../vim-7.3.276/src/gui_w32.c       2011-08-10 15:56:24.000000000 +0200
+--- src/gui_w32.c      2011-08-10 16:52:55.000000000 +0200
+***************
+*** 1270,1275 ****
+--- 1270,1294 ----
+       pGetMonitorInfo = (TGetMonitorInfo)GetProcAddress(user32_lib,
+                                                         "GetMonitorInfoA");
+      }
++ 
++ #ifdef FEAT_MBYTE
++     /* If the OS is Windows NT, use wide functions;
++      * this enables common dialogs input unicode from IME. */
++     if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT)
++     {
++      pDispatchMessage = DispatchMessageW;
++      pGetMessage = GetMessageW;
++      pIsDialogMessage = IsDialogMessageW;
++      pPeekMessage = PeekMessageW;
++     }
++     else
++     {
++      pDispatchMessage = DispatchMessageA;
++      pGetMessage = GetMessageA;
++      pIsDialogMessage = IsDialogMessageA;
++      pPeekMessage = PeekMessageA;
++     }
++ #endif
+  }
+  
+  /*
+*** ../vim-7.3.276/src/gui_w48.c       2010-10-20 21:22:17.000000000 +0200
+--- src/gui_w48.c      2011-08-10 16:49:39.000000000 +0200
+***************
+*** 390,396 ****
+      KillTimer(NULL, idEvent);
+  
+      /* Eat spurious WM_TIMER messages */
+!     while (PeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+       ;
+  
+      if (blink_state == BLINK_ON)
+--- 390,396 ----
+      KillTimer(NULL, idEvent);
+  
+      /* Eat spurious WM_TIMER messages */
+!     while (pPeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+       ;
+  
+      if (blink_state == BLINK_ON)
+***************
+*** 418,424 ****
+      {
+       KillTimer(NULL, blink_timer);
+       /* Eat spurious WM_TIMER messages */
+!      while (PeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+           ;
+       blink_timer = 0;
+      }
+--- 418,424 ----
+      {
+       KillTimer(NULL, blink_timer);
+       /* Eat spurious WM_TIMER messages */
+!      while (pPeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+           ;
+       blink_timer = 0;
+      }
+***************
+*** 476,482 ****
+      s_timed_out = TRUE;
+  
+      /* Eat spurious WM_TIMER messages */
+!     while (PeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+       ;
+      if (idEvent == s_wait_timer)
+       s_wait_timer = 0;
+--- 476,482 ----
+      s_timed_out = TRUE;
+  
+      /* Eat spurious WM_TIMER messages */
+!     while (pPeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+       ;
+      if (idEvent == s_wait_timer)
+       s_wait_timer = 0;
+***************
+*** 1707,1713 ****
+      static char_u k10[] = {K_SPECIAL, 'k', ';', 0};
+  #endif
+  
+!     GetMessage(&msg, NULL, 0, 0);
+  
+  #ifdef FEAT_OLE
+      /* Look after OLE Automation commands */
+--- 1707,1713 ----
+      static char_u k10[] = {K_SPECIAL, 'k', ';', 0};
+  #endif
+  
+!     pGetMessage(&msg, NULL, 0, 0);
+  
+  #ifdef FEAT_OLE
+      /* Look after OLE Automation commands */
+***************
+*** 1718,1724 ****
+       {
+           /* Message can't be ours, forward it.  Fixes problem with Ultramon
+            * 3.0.4 */
+!          DispatchMessage(&msg);
+       }
+       else
+       {
+--- 1718,1724 ----
+       {
+           /* Message can't be ours, forward it.  Fixes problem with Ultramon
+            * 3.0.4 */
+!          pDispatchMessage(&msg);
+       }
+       else
+       {
+***************
+*** 1749,1762 ****
+      if (msg.message == WM_USER)
+      {
+       MyTranslateMessage(&msg);
+!      DispatchMessage(&msg);
+       return;
+      }
+  #endif
+  
+  #ifdef MSWIN_FIND_REPLACE
+      /* Don't process messages used by the dialog */
+!     if (s_findrep_hwnd != NULL && IsDialogMessage(s_findrep_hwnd, &msg))
+      {
+       HandleMouseHide(msg.message, msg.lParam);
+       return;
+--- 1749,1762 ----
+      if (msg.message == WM_USER)
+      {
+       MyTranslateMessage(&msg);
+!      pDispatchMessage(&msg);
+       return;
+      }
+  #endif
+  
+  #ifdef MSWIN_FIND_REPLACE
+      /* Don't process messages used by the dialog */
+!     if (s_findrep_hwnd != NULL && pIsDialogMessage(s_findrep_hwnd, &msg))
+      {
+       HandleMouseHide(msg.message, msg.lParam);
+       return;
+***************
+*** 1928,1934 ****
+      if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE,
+                                                         NULL, NULL) == NULL)
+  #endif
+!      DispatchMessage(&msg);
+  }
+  
+  /*
+--- 1928,1934 ----
+      if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE,
+                                                         NULL, NULL) == NULL)
+  #endif
+!      pDispatchMessage(&msg);
+  }
+  
+  /*
+***************
+*** 1943,1949 ****
+      MSG          msg;
+  
+      if (!s_busy_processing)
+!      while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)
+                                                 && !vim_is_input_buf_full())
+           process_message();
+  }
+--- 1943,1949 ----
+      MSG          msg;
+  
+      if (!s_busy_processing)
+!      while (pPeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)
+                                                 && !vim_is_input_buf_full())
+           process_message();
+  }
+***************
+*** 2019,2025 ****
+               KillTimer(NULL, s_wait_timer);
+  
+               /* Eat spurious WM_TIMER messages */
+!              while (PeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+                   ;
+               s_wait_timer = 0;
+           }
+--- 2019,2025 ----
+               KillTimer(NULL, s_wait_timer);
+  
+               /* Eat spurious WM_TIMER messages */
+!              while (pPeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+                   ;
+               s_wait_timer = 0;
+           }
+*** ../vim-7.3.276/src/os_mswin.c      2011-06-19 01:30:01.000000000 +0200
+--- src/os_mswin.c     2011-08-10 16:45:24.000000000 +0200
+***************
+*** 1856,1867 ****
+  {
+      MSG msg;
+  
+!     while (!*bUserAbort && PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
+      {
+!      if (!hDlgPrint || !IsDialogMessage(hDlgPrint, &msg))
+       {
+           TranslateMessage(&msg);
+!          DispatchMessage(&msg);
+       }
+      }
+      return !*bUserAbort;
+--- 1856,1867 ----
+  {
+      MSG msg;
+  
+!     while (!*bUserAbort && pPeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
+      {
+!      if (!hDlgPrint || !pIsDialogMessage(hDlgPrint, &msg))
+       {
+           TranslateMessage(&msg);
+!          pDispatchMessage(&msg);
+       }
+      }
+      return !*bUserAbort;
+***************
+*** 3132,3141 ****
+  {
+      MSG msg;
+  
+!     while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
+      {
+       TranslateMessage(&msg);
+!      DispatchMessage(&msg);
+      }
+  }
+  
+--- 3132,3141 ----
+  {
+      MSG msg;
+  
+!     while (pPeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
+      {
+       TranslateMessage(&msg);
+!      pDispatchMessage(&msg);
+      }
+  }
+  
+*** ../vim-7.3.276/src/os_win32.c      2011-07-07 16:20:45.000000000 +0200
+--- src/os_win32.c     2011-08-10 16:54:50.000000000 +0200
+***************
+*** 152,157 ****
+--- 152,165 ----
+  # define wcsicmp(a, b) wcscmpi((a), (b))
+  #endif
+  
++ /* Enable common dialogs input unicode from IME if posible. */
++ #ifdef FEAT_MBYTE
++ LRESULT (WINAPI *pDispatchMessage)(LPMSG) = DispatchMessage;
++ BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT) = GetMessage;
++ BOOL (WINAPI *pIsDialogMessage)(HWND, LPMSG) = IsDialogMessage;
++ BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT) = PeekMessage;
++ #endif
++ 
+  #ifndef FEAT_GUI_W32
+  /* Win32 Console handles for input and output */
+  static HANDLE g_hConIn  = INVALID_HANDLE_VALUE;
+***************
+*** 3284,3293 ****
+       {
+           MSG msg;
+  
+!          if (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
+           {
+               TranslateMessage(&msg);
+!              DispatchMessage(&msg);
+           }
+           if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
+               break;
+--- 3292,3301 ----
+       {
+           MSG msg;
+  
+!          if (pPeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
+           {
+               TranslateMessage(&msg);
+!              pDispatchMessage(&msg);
+           }
+           if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
+               break;
+*** ../vim-7.3.276/src/os_win32.h      2011-05-05 18:31:54.000000000 +0200
+--- src/os_win32.h     2011-08-10 16:51:58.000000000 +0200
+***************
+*** 193,195 ****
+--- 193,209 ----
+  #else
+  # define vim_mkdir(x, y) mch_mkdir(x)
+  #endif
++ 
++ /* Enable common dialogs input unicode from IME if posible. */
++ #ifdef FEAT_MBYTE
++     /* The variables are defined in os_win32.c. */
++ extern LRESULT (WINAPI *pDispatchMessage)(LPMSG);
++ extern BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT);
++ extern BOOL (WINAPI *pIsDialogMessage)(HWND, LPMSG);
++ extern BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT);
++ #else
++ # define pDispatchMessage DispatchMessage
++ # define pGetMessage GetMessage
++ # define pIsDialogMessage IsDialogMessage
++ # define pPeekMessage PeekMessage
++ #endif
+*** ../vim-7.3.276/src/version.c       2011-08-10 16:31:18.000000000 +0200
+--- src/version.c      2011-08-10 17:06:55.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     277,
+  /**/
+
+-- 
+Veni, Vidi, VW -- I came, I saw, I drove around in a little car.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.278.patch0 b/vim/patches/vim-7.3.278.patch0
new file mode 100644 (file)
index 0000000..60bc0ac
--- /dev/null
@@ -0,0 +1,73 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.278
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.278
+Problem:    Passing the file name to open in VisVim doesn't work.
+Solution:   Adjust the index and check for end of buffer. (Jiri Sedlak)
+Files:     src/VisVim/Commands.cpp
+
+
+*** ../vim-7.3.277/src/VisVim/Commands.cpp     2010-08-15 21:57:27.000000000 +0200
+--- src/VisVim/Commands.cpp    2011-08-10 17:21:27.000000000 +0200
+***************
+*** 549,555 ****
+       if (g_bNewTabs)
+       {
+               sprintf(VimCmd, ":tab drop ");
+!              s = VimCmd + 11;
+       }
+       else
+       {
+--- 549,555 ----
+       if (g_bNewTabs)
+       {
+               sprintf(VimCmd, ":tab drop ");
+!              s = VimCmd + 10;
+       }
+       else
+       {
+***************
+*** 557,564 ****
+               s = VimCmd + 6;
+       }
+       sprintf(FileNameTmp, "%S", (char *)FileName);
+!      for (p = FileNameTmp; *p != '\0' && s < FileNameTmp + MAX_OLE_STR - 4;
+!                                                                        ++p)
+               if (*p == '\\')
+                       *s++ = '/';
+               else
+--- 557,563 ----
+               s = VimCmd + 6;
+       }
+       sprintf(FileNameTmp, "%S", (char *)FileName);
+!      for (p = FileNameTmp; *p != '\0' && s < VimCmd + MAX_OLE_STR - 4; ++p)
+               if (*p == '\\')
+                       *s++ = '/';
+               else
+*** ../vim-7.3.277/src/version.c       2011-08-10 17:07:56.000000000 +0200
+--- src/version.c      2011-08-10 17:25:20.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     278,
+  /**/
+
+-- 
+ARTHUR:          But if he was dying, he wouldn't bother to carve
+                 "Aaaaarrrrrrggghhh".  He'd just say it.
+BROTHER MAYNARD: It's down there carved in stone.
+GALAHAD:         Perhaps he was dictating.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.279.patch0 b/vim/patches/vim-7.3.279.patch0
new file mode 100644 (file)
index 0000000..6a8814b
--- /dev/null
@@ -0,0 +1,118 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.279
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.279
+Problem:    With GTK, when gvim is full-screen and a tab is opened and using a
+           specific monitor configuration the window is too big.
+Solution:   Adjust the window size like on MS-Windows. (Yukihiro Nakadaira)
+Files:     src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
+
+
+*** ../vim-7.3.278/src/gui.c   2011-06-26 04:48:56.000000000 +0200
+--- src/gui.c  2011-08-10 17:40:31.000000000 +0200
+***************
+*** 1407,1413 ****
+      if (!gui.shell_created)
+       return;
+  
+! #ifdef MSWIN
+      /* If not setting to a user specified size and maximized, calculate the
+       * number of characters that fit in the maximized window. */
+      if (!mustset && gui_mch_maximized())
+--- 1407,1413 ----
+      if (!gui.shell_created)
+       return;
+  
+! #if defined(MSWIN) || defined(FEAT_GUI_GTK)
+      /* If not setting to a user specified size and maximized, calculate the
+       * number of characters that fit in the maximized window. */
+      if (!mustset && gui_mch_maximized())
+*** ../vim-7.3.278/src/gui_gtk_x11.c   2011-06-26 04:48:56.000000000 +0200
+--- src/gui_gtk_x11.c  2011-08-10 17:42:19.000000000 +0200
+***************
+*** 3900,3905 ****
+--- 3900,3920 ----
+  }
+  
+  /*
++  * Called when the font changed while the window is maximized.  Compute the
++  * new Rows and Columns.  This is like resizing the window.
++  */
++     void
++ gui_mch_newfont()
++ {
++     int w, h;
++ 
++     gtk_window_get_size(GTK_WINDOW(gui.mainwin), &w, &h);
++     w -= get_menu_tool_width();
++     h -= get_menu_tool_height();
++     gui_resize_shell(w, h);
++ }
++ 
++ /*
+   * Set the windows size.
+   */
+      void
+***************
+*** 4409,4422 ****
+  
+      if (gui_mch_maximized())
+      {
+-      int w, h;
+- 
+       /* Update lines and columns in accordance with the new font, keep the
+        * window maximized. */
+!      gtk_window_get_size(GTK_WINDOW(gui.mainwin), &w, &h);
+!      w -= get_menu_tool_width();
+!      h -= get_menu_tool_height();
+!      gui_resize_shell(w, h);
+      }
+      else
+      {
+--- 4424,4432 ----
+  
+      if (gui_mch_maximized())
+      {
+       /* Update lines and columns in accordance with the new font, keep the
+        * window maximized. */
+!      gui_mch_newfont();
+      }
+      else
+      {
+*** ../vim-7.3.278/src/proto/gui_gtk_x11.pro   2010-08-15 21:57:28.000000000 +0200
+--- src/proto/gui_gtk_x11.pro  2011-08-10 17:42:29.000000000 +0200
+***************
+*** 20,25 ****
+--- 20,26 ----
+  void gui_mch_set_winpos __ARGS((int x, int y));
+  int gui_mch_maximized __ARGS((void));
+  void gui_mch_unmaximize __ARGS((void));
++ void gui_mch_newfont __ARGS((void));
+  void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
+  void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
+  void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
+*** ../vim-7.3.278/src/version.c       2011-08-10 17:25:48.000000000 +0200
+--- src/version.c      2011-08-10 17:43:22.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     279,
+  /**/
+
+-- 
+LAUNCELOT: Isn't there a St. Aaaaarrrrrrggghhh's in Cornwall?
+ARTHUR:    No, that's Saint Ives.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.280.patch0 b/vim/patches/vim-7.3.280.patch0
new file mode 100644 (file)
index 0000000..1c1387a
--- /dev/null
@@ -0,0 +1,181 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.280
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.280
+Problem:    ":lmake" does not update the quickfix window title.
+Solution:   Update the title. (Lech Lorens)
+Files:     src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok
+
+
+*** ../vim-7.3.279/src/quickfix.c      2011-08-10 13:21:30.000000000 +0200
+--- src/quickfix.c     2011-08-10 18:09:19.000000000 +0200
+***************
+*** 126,131 ****
+--- 126,132 ----
+  static win_T *qf_find_win __ARGS((qf_info_T *qi));
+  static buf_T *qf_find_buf __ARGS((qf_info_T *qi));
+  static void  qf_update_buffer __ARGS((qf_info_T *qi));
++ static void  qf_set_title __ARGS((qf_info_T *qi));
+  static void  qf_fill_buffer __ARGS((qf_info_T *qi));
+  #endif
+  static char_u        *get_mef_name __ARGS((void));
+***************
+*** 2388,2395 ****
+      qf_fill_buffer(qi);
+  
+      if (qi->qf_lists[qi->qf_curlist].qf_title != NULL)
+!      set_internal_string_var((char_u *)"w:quickfix_title",
+!                                     qi->qf_lists[qi->qf_curlist].qf_title);
+  
+      curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
+      curwin->w_cursor.col = 0;
+--- 2389,2395 ----
+      qf_fill_buffer(qi);
+  
+      if (qi->qf_lists[qi->qf_curlist].qf_title != NULL)
+!      qf_set_title(qi);
+  
+      curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
+      curwin->w_cursor.col = 0;
+***************
+*** 2526,2531 ****
+--- 2526,2533 ----
+      qf_info_T        *qi;
+  {
+      buf_T    *buf;
++     win_T    *win;
++     win_T    *curwin_save;
+      aco_save_T       aco;
+  
+      /* Check if a buffer for the quickfix list exists.  Update it. */
+***************
+*** 2537,2542 ****
+--- 2539,2554 ----
+  
+       qf_fill_buffer(qi);
+  
++      if (qi->qf_lists[qi->qf_curlist].qf_title != NULL
++          && (win = qf_find_win(qi)) != NULL)
++      {
++          curwin_save = curwin;
++          curwin = win;
++          qf_set_title(qi);
++          curwin = curwin_save;
++ 
++      }
++ 
+       /* restore curwin/curbuf and a few other things */
+       aucmd_restbuf(&aco);
+  
+***************
+*** 2544,2549 ****
+--- 2556,2569 ----
+      }
+  }
+  
++     static void
++ qf_set_title(qi)
++     qf_info_T        *qi;
++ {
++     set_internal_string_var((char_u *)"w:quickfix_title",
++                                  qi->qf_lists[qi->qf_curlist].qf_title);
++ }
++ 
+  /*
+   * Fill current buffer with quickfix errors, replacing any previous contents.
+   * curbuf must be the quickfix buffer!
+*** ../vim-7.3.279/src/testdir/test10.in       2011-08-10 13:21:30.000000000 +0200
+--- src/testdir/test10.in      2011-08-10 18:28:31.000000000 +0200
+***************
+*** 5,13 ****
+  :" Also test a BOM is ignored.
+  :so mbyte.vim
+  :set encoding=utf-8
+! :/start of errorfile/,/end of errorfile/w! Xerrorfile
+  :/start of testfile/,/end of testfile/w! Xtestfile
+! :cf Xerrorfile
+  rA
+  :cn
+  rB
+--- 5,20 ----
+  :" Also test a BOM is ignored.
+  :so mbyte.vim
+  :set encoding=utf-8
+! :7/start of errorfile/,/end of errorfile/w! Xerrorfile1
+! :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
+  :/start of testfile/,/end of testfile/w! Xtestfile
+! :cf Xerrorfile2
+! :clast
+! :copen
+! :let a=w:quickfix_title
+! :wincmd p
+! gR\12=a\r\e
+! :cf Xerrorfile1
+  rA
+  :cn
+  rB
+***************
+*** 17,22 ****
+--- 24,34 ----
+  rD
+  :cn
+  rE
++ :cn
++ :wincmd w
++ :let a=w:quickfix_title
++ :wincmd p
++ gR\12=a\r\e
+  :w! test.out             " Write contents of this file
+  :qa!
+  ENDTEST
+***************
+*** 33,38 ****
+--- 45,52 ----
+  "Xtestfile", linenr 19: yet another problem
+  
+  Does anyone know what is the problem and how to correction it?
++ "Xtestfile", line 21 col 9: What is the title of the quickfix window?
++ "Xtestfile", line 22 col 9: What is the title of the quickfix window?
+  end of errorfile
+  
+  start of testfile
+*** ../vim-7.3.279/src/testdir/test10.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test10.ok      2011-08-10 18:03:53.000000000 +0200
+***************
+*** 18,23 ****
+  line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+  Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+  line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 21 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+  end of testfile
+--- 18,23 ----
+  line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+  Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+  line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 21 :cf Xerrorfile1xxxxxxxxxxxxxxx
+! line 22 :cf Xerrorfile2xxxxxxxxxxxxxxx
+  end of testfile
+*** ../vim-7.3.279/src/version.c       2011-08-10 17:44:41.000000000 +0200
+--- src/version.c      2011-08-10 18:35:52.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     280,
+  /**/
+
+-- 
+"When I die, I want a tombstone that says "GAME OVER" - Ton Richters
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.281.patch0 b/vim/patches/vim-7.3.281.patch0
new file mode 100644 (file)
index 0000000..f90e95e
--- /dev/null
@@ -0,0 +1,134 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.281
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.281
+Problem:    After using "expand('%:8')" the buffer name is changed.
+Solution:   Make a copy of the file name before shortening it.
+Files:     src/eval.c
+
+
+*** ../vim-7.3.280/src/eval.c  2011-08-10 12:38:02.000000000 +0200
+--- src/eval.c 2011-08-17 15:12:39.000000000 +0200
+***************
+*** 23205,23210 ****
+--- 23205,23211 ----
+      int              c;
+      int              has_fullname = 0;
+  #ifdef WIN3264
++     char_u   *fname_start = *fnamep;
+      int              has_shortname = 0;
+  #endif
+  
+***************
+*** 23379,23402 ****
+      }
+  
+  #ifdef WIN3264
+!     /* Check shortname after we have done 'heads' and before we do 'tails'
+       */
+      if (has_shortname)
+      {
+!      pbuf = NULL;
+!      /* Copy the string if it is shortened by :h */
+!      if (*fnamelen < (int)STRLEN(*fnamep))
+       {
+           p = vim_strnsave(*fnamep, *fnamelen);
+!          if (p == 0)
+               return -1;
+           vim_free(*bufp);
+           *bufp = *fnamep = p;
+       }
+  
+       /* Split into two implementations - makes it easier.  First is where
+!       * there isn't a full name already, second is where there is.
+!       */
+       if (!has_fullname && !vim_isAbsName(*fnamep))
+       {
+           if (shortpath_for_partial(fnamep, bufp, fnamelen) == FAIL)
+--- 23380,23404 ----
+      }
+  
+  #ifdef WIN3264
+!     /*
+!      * Handle ":8" after we have done 'heads' and before we do 'tails'.
+       */
+      if (has_shortname)
+      {
+!      /* Copy the string if it is shortened by :h and when it wasn't copied
+!       * yet, because we are going to change it in place.  Avoids changing
+!       * the buffer name for "%:8". */
+!      if (*fnamelen < (int)STRLEN(*fnamep) || *fnamep == fname_start)
+       {
+           p = vim_strnsave(*fnamep, *fnamelen);
+!          if (p == NULL)
+               return -1;
+           vim_free(*bufp);
+           *bufp = *fnamep = p;
+       }
+  
+       /* Split into two implementations - makes it easier.  First is where
+!       * there isn't a full name already, second is where there is. */
+       if (!has_fullname && !vim_isAbsName(*fnamep))
+       {
+           if (shortpath_for_partial(fnamep, bufp, fnamelen) == FAIL)
+***************
+*** 23404,23421 ****
+       }
+       else
+       {
+!          int         l;
+  
+!          /* Simple case, already have the full-name
+            * Nearly always shorter, so try first time. */
+-          l = *fnamelen;
+           if (get_short_pathname(fnamep, bufp, &l) == FAIL)
+               return -1;
+  
+           if (l == 0)
+           {
+!              /* Couldn't find the filename.. search the paths.
+!               */
+               l = *fnamelen;
+               if (shortpath_for_invalid_fname(fnamep, bufp, &l) == FAIL)
+                   return -1;
+--- 23406,23421 ----
+       }
+       else
+       {
+!          int         l = *fnamelen;
+  
+!          /* Simple case, already have the full-name.
+            * Nearly always shorter, so try first time. */
+           if (get_short_pathname(fnamep, bufp, &l) == FAIL)
+               return -1;
+  
+           if (l == 0)
+           {
+!              /* Couldn't find the filename, search the paths. */
+               l = *fnamelen;
+               if (shortpath_for_invalid_fname(fnamep, bufp, &l) == FAIL)
+                   return -1;
+*** ../vim-7.3.280/src/version.c       2011-08-10 18:36:49.000000000 +0200
+--- src/version.c      2011-08-17 15:21:41.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     281,
+  /**/
+
+-- 
+Kisses may last for as much as, but no more than, five minutes.
+               [real standing law in Iowa, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.282.patch0 b/vim/patches/vim-7.3.282.patch0
new file mode 100644 (file)
index 0000000..dcd1680
--- /dev/null
@@ -0,0 +1,60 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.282
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.282
+Problem:    When using input() and :echo in a loop the displayed text is
+           incorrect. (Benjamin Fritz)
+Solution:   Only restore the cursor position when there is a command line.
+           (Ben Schmidt)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.3.281/src/ex_getln.c      2011-07-27 17:58:42.000000000 +0200
+--- src/ex_getln.c     2011-08-17 15:57:39.000000000 +0200
+***************
+*** 1969,1976 ****
+  # endif
+      s = getcmdline(firstc, 1L, 0);
+      restore_cmdline(&save_ccline);
+!     /* Restore msg_col, the prompt from input() may have changed it. */
+!     msg_col = msg_col_save;
+  
+      return s;
+  }
+--- 1969,1980 ----
+  # endif
+      s = getcmdline(firstc, 1L, 0);
+      restore_cmdline(&save_ccline);
+!     /* Restore msg_col, the prompt from input() may have changed it.
+!      * But only if called recursively and the commandline is therefore being
+!      * restored to an old one; if not, the input() prompt stays on the screen,
+!      * so we need its modified msg_col left intact. */
+!     if (ccline.cmdbuff != NULL)
+!      msg_col = msg_col_save;
+  
+      return s;
+  }
+*** ../vim-7.3.281/src/version.c       2011-08-17 15:23:16.000000000 +0200
+--- src/version.c      2011-08-17 16:24:04.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     282,
+  /**/
+
+-- 
+Why don't cannibals eat clowns?
+Because they taste funny.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.283.patch0 b/vim/patches/vim-7.3.283.patch0
new file mode 100644 (file)
index 0000000..1a3a635
--- /dev/null
@@ -0,0 +1,114 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.283
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.283
+Problem:    An expression mapping with a multi-byte character containing a
+           0x80 byte gets messed up. (ZyX)
+Solution:   Unescape the expression before evaluating it (Yukihiro Nakadaira)
+Files:     src/getchar.c
+
+
+*** ../vim-7.3.282/src/getchar.c       2011-04-28 17:30:05.000000000 +0200
+--- src/getchar.c      2011-08-17 17:04:38.000000000 +0200
+***************
+*** 3262,3270 ****
+      validate_maphash();
+  
+      /*
+!      * find end of keys and skip CTRL-Vs (and backslashes) in it
+       * Accept backslash like CTRL-V when 'cpoptions' does not contain 'B'.
+!      * with :unmap white space is included in the keys, no argument possible
+       */
+      p = keys;
+      do_backslash = (vim_strchr(p_cpo, CPO_BSLASH) == NULL);
+--- 3262,3270 ----
+      validate_maphash();
+  
+      /*
+!      * Find end of keys and skip CTRL-Vs (and backslashes) in it.
+       * Accept backslash like CTRL-V when 'cpoptions' does not contain 'B'.
+!      * with :unmap white space is included in the keys, no argument possible.
+       */
+      p = keys;
+      do_backslash = (vim_strchr(p_cpo, CPO_BSLASH) == NULL);
+***************
+*** 4506,4517 ****
+--- 4506,4528 ----
+  {
+      char_u   *res;
+      char_u   *p;
++     char_u   *expr;
+      char_u   *save_cmd;
+      pos_T    save_cursor;
+  
++     /* Remove escaping of CSI, because "str" is in a format to be used as
++      * typeahead. */
++     expr = vim_strsave(str);
++     if (expr == NULL)
++      return NULL;
++     vim_unescape_csi(expr);
++ 
+      save_cmd = save_cmdline_alloc();
+      if (save_cmd == NULL)
++     {
++      vim_free(expr);
+       return NULL;
++     }
+  
+      /* Forbid changing text or using ":normal" to avoid most of the bad side
+       * effects.  Also restore the cursor position. */
+***************
+*** 4521,4527 ****
+  #endif
+      set_vim_var_char(c);  /* set v:char to the typed character */
+      save_cursor = curwin->w_cursor;
+!     p = eval_to_string(str, NULL, FALSE);
+      --textlock;
+  #ifdef FEAT_EX_EXTRA
+      --ex_normal_lock;
+--- 4532,4538 ----
+  #endif
+      set_vim_var_char(c);  /* set v:char to the typed character */
+      save_cursor = curwin->w_cursor;
+!     p = eval_to_string(expr, NULL, FALSE);
+      --textlock;
+  #ifdef FEAT_EX_EXTRA
+      --ex_normal_lock;
+***************
+*** 4529,4536 ****
+--- 4540,4550 ----
+      curwin->w_cursor = save_cursor;
+  
+      restore_cmdline_alloc(save_cmd);
++     vim_free(expr);
++ 
+      if (p == NULL)
+       return NULL;
++     /* Escape CSI in the result to be able to use the string as typeahead. */
+      res = vim_strsave_escape_csi(p);
+      vim_free(p);
+  
+*** ../vim-7.3.282/src/version.c       2011-08-17 16:25:43.000000000 +0200
+--- src/version.c      2011-08-17 17:17:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     283,
+  /**/
+
+-- 
+bashian roulette:
+$ ((RANDOM%6)) || rm -rf ~
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.284.patch0 b/vim/patches/vim-7.3.284.patch0
new file mode 100644 (file)
index 0000000..c621ced
--- /dev/null
@@ -0,0 +1,211 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.284
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.284
+Problem:    The str2special() function doesn't handle multi-byte characters
+           properly.
+Solution:   Recognize multi-byte characters. (partly by Vladimir Vichniakov)
+Files:     src/getchar.c, src/message.c, src/misc2.c
+
+
+*** ../vim-7.3.283/src/getchar.c       2011-08-17 17:18:14.000000000 +0200
+--- src/getchar.c      2011-08-17 20:11:58.000000000 +0200
+***************
+*** 3964,3970 ****
+      if (*mp->m_str == NUL)
+       msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
+      else
+!      msg_outtrans_special(mp->m_str, FALSE);
+  #ifdef FEAT_EVAL
+      if (p_verbose > 0)
+       last_set_msg(mp->m_script_ID);
+--- 3964,3980 ----
+      if (*mp->m_str == NUL)
+       msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
+      else
+!     {
+!      /* Remove escaping of CSI, because "m_str" is in a format to be used
+!       * as typeahead. */
+!      char_u *s = vim_strsave(mp->m_str);
+!      if (s != NULL)
+!      {
+!          vim_unescape_csi(s);
+!          msg_outtrans_special(s, FALSE);
+!          vim_free(s);
+!      }
+!     }
+  #ifdef FEAT_EVAL
+      if (p_verbose > 0)
+       last_set_msg(mp->m_script_ID);
+*** ../vim-7.3.283/src/message.c       2011-03-22 13:07:19.000000000 +0100
+--- src/message.c      2011-08-17 18:40:10.000000000 +0200
+***************
+*** 1547,1562 ****
+       if (IS_SPECIAL(c) || modifiers) /* special key */
+           special = TRUE;
+      }
+-     *sp = str + 1;
+  
+  #ifdef FEAT_MBYTE
+!     /* For multi-byte characters check for an illegal byte. */
+!     if (has_mbyte && MB_BYTE2LEN(*str) > (*mb_ptr2len)(str))
+      {
+!      transchar_nonprint(buf, c);
+!      return buf;
+      }
+  #endif
+  
+      /* Make unprintable characters in <> form, also <M-Space> and <Tab>.
+       * Use <Space> only for lhs of a mapping. */
+--- 1547,1573 ----
+       if (IS_SPECIAL(c) || modifiers) /* special key */
+           special = TRUE;
+      }
+  
+  #ifdef FEAT_MBYTE
+!     if (has_mbyte && !IS_SPECIAL(c))
+      {
+!         int len = (*mb_ptr2len)(str);
+! 
+!      /* For multi-byte characters check for an illegal byte. */
+!      if (has_mbyte && MB_BYTE2LEN(*str) > len)
+!      {
+!          transchar_nonprint(buf, c);
+!          *sp = str + 1;
+!          return buf;
+!      }
+!         /* Since 'special' is TRUE the multi-byte character 'c' will be
+!          * processed by get_special_key_name() */
+!         c = (*mb_ptr2char)(str);
+!         *sp = str + len;
+      }
++     else
+  #endif
++      *sp = str + 1;
+  
+      /* Make unprintable characters in <> form, also <M-Space> and <Tab>.
+       * Use <Space> only for lhs of a mapping. */
+*** ../vim-7.3.283/src/misc2.c 2011-07-27 17:31:42.000000000 +0200
+--- src/misc2.c        2011-08-17 20:27:30.000000000 +0200
+***************
+*** 2754,2759 ****
+--- 2754,2760 ----
+      int              bit;
+      int              key;
+      unsigned long n;
++     int              l;
+  
+      src = *srcp;
+      if (src[0] != '<')
+***************
+*** 2766,2773 ****
+       if (*bp == '-')
+       {
+           last_dash = bp;
+!          if (bp[1] != NUL && bp[2] == '>')
+!              ++bp;   /* anything accepted, like <C-?> */
+       }
+       if (bp[0] == 't' && bp[1] == '_' && bp[2] && bp[3])
+           bp += 3;    /* skip t_xx, xx may be '-' or '>' */
+--- 2767,2783 ----
+       if (*bp == '-')
+       {
+           last_dash = bp;
+!          if (bp[1] != NUL)
+!          {
+! #ifdef FEAT_MBYTE
+!              if (has_mbyte)
+!                  l = mb_ptr2len(bp + 1);
+!              else
+! #endif
+!                  l = 1;
+!              if (bp[l + 1] == '>')
+!                  bp += l;    /* anything accepted, like <C-?> */
+!          }
+       }
+       if (bp[0] == 't' && bp[1] == '_' && bp[2] && bp[3])
+           bp += 3;    /* skip t_xx, xx may be '-' or '>' */
+***************
+*** 2777,2791 ****
+      {
+       end_of_name = bp + 1;
+  
+-      if (STRNICMP(src + 1, "char-", 5) == 0 && VIM_ISDIGIT(src[6]))
+-      {
+-          /* <Char-123> or <Char-033> or <Char-0x33> */
+-          vim_str2nr(src + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
+-          *modp = 0;
+-          *srcp = end_of_name;
+-          return (int)n;
+-      }
+- 
+       /* Which modifiers are given? */
+       modifiers = 0x0;
+       for (bp = src + 1; bp < last_dash; bp++)
+--- 2787,2792 ----
+***************
+*** 2804,2814 ****
+        */
+       if (bp >= last_dash)
+       {
+           /*
+            * Modifier with single letter, or special key name.
+            */
+!          if (modifiers != 0 && last_dash[2] == '>')
+!              key = last_dash[1];
+           else
+           {
+               key = get_special_key_code(last_dash + 1);
+--- 2805,2831 ----
+        */
+       if (bp >= last_dash)
+       {
++          if (STRNICMP(last_dash + 1, "char-", 5) == 0
++                                               && VIM_ISDIGIT(last_dash[6]))
++          {
++              /* <Char-123> or <Char-033> or <Char-0x33> */
++              vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
++              *modp = modifiers;
++              *srcp = end_of_name;
++              return (int)n;
++          }
++ 
+           /*
+            * Modifier with single letter, or special key name.
+            */
+! #ifdef FEAT_MBYTE
+!          if (has_mbyte)
+!              l = mb_ptr2len(last_dash + 1);
+!          else
+! #endif
+!              l = 1;
+!          if (modifiers != 0 && last_dash[l + 1] == '>')
+!              key = PTR2CHAR(last_dash + 1);
+           else
+           {
+               key = get_special_key_code(last_dash + 1);
+*** ../vim-7.3.283/src/version.c       2011-08-17 17:18:14.000000000 +0200
+--- src/version.c      2011-08-17 20:27:47.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     284,
+  /**/
+
+-- 
+Snoring is prohibited unless all bedroom windows are closed and securely
+locked.
+               [real standing law in Massachusetts, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.285.patch0 b/vim/patches/vim-7.3.285.patch0
new file mode 100644 (file)
index 0000000..24be28b
--- /dev/null
@@ -0,0 +1,144 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.285
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.285 (after 7.3.284)
+Problem:    Mapping <Char-123> no longer works.
+Solution:   Properly check for "char-".  Add a test for it.
+Files:     src/misc2.c, src/testdir/test75.in, src/testdir/test75.ok
+
+
+*** ../vim-7.3.284/src/misc2.c 2011-08-17 20:33:18.000000000 +0200
+--- src/misc2.c        2011-08-19 22:08:37.000000000 +0200
+***************
+*** 2781,2786 ****
+--- 2781,2792 ----
+       }
+       if (bp[0] == 't' && bp[1] == '_' && bp[2] && bp[3])
+           bp += 3;    /* skip t_xx, xx may be '-' or '>' */
++      else if (STRNICMP(bp, "char-", 5) == 0)
++      {
++          vim_str2nr(bp + 5, NULL, &l, TRUE, TRUE, NULL, NULL);
++          bp += l + 5;
++          break;
++      }
+      }
+  
+      if (*bp == '>')  /* found matching '>' */
+***************
+*** 2810,2836 ****
+           {
+               /* <Char-123> or <Char-033> or <Char-0x33> */
+               vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
+!              *modp = modifiers;
+!              *srcp = end_of_name;
+!              return (int)n;
+           }
+- 
+-          /*
+-           * Modifier with single letter, or special key name.
+-           */
+- #ifdef FEAT_MBYTE
+-          if (has_mbyte)
+-              l = mb_ptr2len(last_dash + 1);
+-          else
+- #endif
+-              l = 1;
+-          if (modifiers != 0 && last_dash[l + 1] == '>')
+-              key = PTR2CHAR(last_dash + 1);
+           else
+           {
+!              key = get_special_key_code(last_dash + 1);
+!              if (!keep_x_key)
+!                  key = handle_x_keys(key);
+           }
+  
+           /*
+--- 2816,2842 ----
+           {
+               /* <Char-123> or <Char-033> or <Char-0x33> */
+               vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
+!              key = (int)n;
+           }
+           else
+           {
+!              /*
+!               * Modifier with single letter, or special key name.
+!               */
+! #ifdef FEAT_MBYTE
+!              if (has_mbyte)
+!                  l = mb_ptr2len(last_dash + 1);
+!              else
+! #endif
+!                  l = 1;
+!              if (modifiers != 0 && last_dash[l + 1] == '>')
+!                  key = PTR2CHAR(last_dash + 1);
+!              else
+!              {
+!                  key = get_special_key_code(last_dash + 1);
+!                  if (!keep_x_key)
+!                      key = handle_x_keys(key);
+!              }
+           }
+  
+           /*
+*** ../vim-7.3.284/src/testdir/test75.in       2010-10-20 21:22:17.000000000 +0200
+--- src/testdir/test75.in      2011-08-19 22:05:13.000000000 +0200
+***************
+*** 2,7 ****
+--- 2,8 ----
+  
+  STARTTEST
+  :so small.vim
++ :set cpo-=<
+  :" Test maparg() with a string result
+  :map foo<C-V> is<F4>foo
+  :vnoremap <script> <buffer> <expr> <silent> bar isbar
+***************
+*** 9,14 ****
+--- 10,20 ----
+  :call append('$', string(maparg('foo<C-V>', '', 0, 1)))
+  :call append('$', string(maparg('bar', '', 0, 1)))
+  :"
++ :map abc x<char-114>x
++ :call append('$', maparg('abc'))
++ :map abc y<S-char-114>y
++ :call append('$', maparg('abc'))
++ :"
+  :/^eof/+1,$w! test.out
+  :qa!
+  ENDTEST
+*** ../vim-7.3.284/src/testdir/test75.ok       2010-10-20 21:22:17.000000000 +0200
+--- src/testdir/test75.ok      2011-08-19 21:53:26.000000000 +0200
+***************
+*** 1,3 ****
+--- 1,5 ----
+  is<F4>foo
+  {'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
+  {'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
++ xrx
++ yRy
+*** ../vim-7.3.284/src/version.c       2011-08-17 20:33:18.000000000 +0200
+--- src/version.c      2011-08-19 22:15:22.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     285,
+  /**/
+
+
+-- 
+No man may purchase alcohol without written consent from his wife.
+               [real standing law in Pennsylvania, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.286.patch0 b/vim/patches/vim-7.3.286.patch0
new file mode 100644 (file)
index 0000000..308d510
--- /dev/null
@@ -0,0 +1,84 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.286
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.286
+Problem:    Crash when using "zd" on a large number of folds. (Sam King)
+Solution:   Recompute pointer after reallocating array.  Move fewer entries
+           when making room.
+Files:     src/fold.c
+
+
+*** ../vim-7.3.285/src/fold.c  2010-08-15 21:57:27.000000000 +0200
+--- src/fold.c 2011-08-26 16:03:56.000000000 +0200
+***************
+*** 1469,1479 ****
+      }
+      else
+      {
+!      /* move nested folds one level up, to overwrite the fold that is
+        * deleted. */
+       moved = fp->fd_nested.ga_len;
+       if (ga_grow(gap, (int)(moved - 1)) == OK)
+       {
+           /* adjust fd_top and fd_flags for the moved folds */
+           nfp = (fold_T *)fp->fd_nested.ga_data;
+           for (i = 0; i < moved; ++i)
+--- 1469,1482 ----
+      }
+      else
+      {
+!      /* Move nested folds one level up, to overwrite the fold that is
+        * deleted. */
+       moved = fp->fd_nested.ga_len;
+       if (ga_grow(gap, (int)(moved - 1)) == OK)
+       {
++          /* Get "fp" again, the array may have been reallocated. */
++          fp = (fold_T *)gap->ga_data + idx;
++ 
+           /* adjust fd_top and fd_flags for the moved folds */
+           nfp = (fold_T *)fp->fd_nested.ga_data;
+           for (i = 0; i < moved; ++i)
+***************
+*** 1486,1494 ****
+           }
+  
+           /* move the existing folds down to make room */
+!          if (idx < gap->ga_len)
+               mch_memmove(fp + moved, fp + 1,
+!                                      sizeof(fold_T) * (gap->ga_len - idx));
+           /* move the contained folds one level up */
+           mch_memmove(fp, nfp, (size_t)(sizeof(fold_T) * moved));
+           vim_free(nfp);
+--- 1489,1497 ----
+           }
+  
+           /* move the existing folds down to make room */
+!          if (idx + 1 < gap->ga_len)
+               mch_memmove(fp + moved, fp + 1,
+!                                sizeof(fold_T) * (gap->ga_len - (idx + 1)));
+           /* move the contained folds one level up */
+           mch_memmove(fp, nfp, (size_t)(sizeof(fold_T) * moved));
+           vim_free(nfp);
+*** ../vim-7.3.285/src/version.c       2011-08-19 22:28:58.000000000 +0200
+--- src/version.c      2011-08-26 16:07:59.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     286,
+  /**/
+
+-- 
+To keep milk from turning sour: Keep it in the cow.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.287.patch0 b/vim/patches/vim-7.3.287.patch0
new file mode 100644 (file)
index 0000000..5c6da03
--- /dev/null
@@ -0,0 +1,100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.287
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.287
+Problem:    Can't compile with MSVC and tiny options.
+Solution:   Move variables and #ifdefs. (Sergey Khorev)
+Files:     src/os_win32.c
+
+
+*** ../vim-7.3.286/src/os_win32.c      2011-08-10 17:07:56.000000000 +0200
+--- src/os_win32.c     2011-08-27 15:07:28.000000000 +0200
+***************
+*** 3419,3426 ****
+  {
+      DWORD    availableBytes = 0;
+      DWORD    i;
+-     int              c;
+-     char_u   *p;
+      int              ret;
+      DWORD    len;
+      DWORD    toRead;
+--- 3419,3424 ----
+***************
+*** 3479,3484 ****
+--- 3477,3484 ----
+       else if (has_mbyte)
+       {
+           int         l;
++          int         c;
++          char_u      *p;
+  
+           len += *buffer_off;
+           buffer[len] = NUL;
+***************
+*** 3558,3566 ****
+      int              noread_cnt = 0;
+      garray_T ga;
+      int          delay = 1;
+- # ifdef FEAT_MBYTE
+      DWORD    buffer_off = 0; /* valid bytes in buffer[] */
+- # endif
+  
+      SECURITY_ATTRIBUTES saAttr;
+  
+--- 3558,3564 ----
+***************
+*** 3777,3790 ****
+  
+       if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
+       {
+!          dump_pipe(options, g_hChildStd_OUT_Rd,
+!                      &ga, buffer, &buffer_off);
+           break;
+       }
+  
+       ++noread_cnt;
+!      dump_pipe(options, g_hChildStd_OUT_Rd,
+!                  &ga, buffer, &buffer_off);
+  
+       /* We start waiting for a very short time and then increase it, so
+        * that we respond quickly when the process is quick, and don't
+--- 3775,3786 ----
+  
+       if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
+       {
+!          dump_pipe(options, g_hChildStd_OUT_Rd, &ga, buffer, &buffer_off);
+           break;
+       }
+  
+       ++noread_cnt;
+!      dump_pipe(options, g_hChildStd_OUT_Rd, &ga, buffer, &buffer_off);
+  
+       /* We start waiting for a very short time and then increase it, so
+        * that we respond quickly when the process is quick, and don't
+*** ../vim-7.3.286/src/version.c       2011-08-26 16:12:55.000000000 +0200
+--- src/version.c      2011-08-27 15:08:27.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     287,
+  /**/
+
+-- 
+SUPERIMPOSE "England AD 787".  After a few more seconds we hear hoofbeats in
+the distance.  They come slowly closer.  Then out of the mist comes KING
+ARTHUR followed by a SERVANT who is banging two half coconuts together.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.288.patch0 b/vim/patches/vim-7.3.288.patch0
new file mode 100644 (file)
index 0000000..d1f6626
--- /dev/null
@@ -0,0 +1,76 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.288
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.288
+Problem:    has('python') may give an error message for not being able to load
+           the library after using python3.
+Solution:   Only give the error when the verbose argument is true.
+Files:     src/if_python.c, src/if_python3.c
+
+
+*** ../vim-7.3.287/src/if_python.c     2011-06-19 00:27:46.000000000 +0200
+--- src/if_python.c    2011-08-21 17:03:52.000000000 +0200
+***************
+*** 368,374 ****
+       * standard C extension libraries of one or both python versions. */
+      if (python3_loaded())
+      {
+!      EMSG(_("E836: This Vim cannot execute :python after using :py3"));
+       return FAIL;
+      }
+  #endif
+--- 368,375 ----
+       * standard C extension libraries of one or both python versions. */
+      if (python3_loaded())
+      {
+!      if (verbose)
+!          EMSG(_("E836: This Vim cannot execute :python after using :py3"));
+       return FAIL;
+      }
+  #endif
+*** ../vim-7.3.287/src/if_python3.c    2011-07-15 15:54:39.000000000 +0200
+--- src/if_python3.c   2011-08-21 17:05:19.000000000 +0200
+***************
+*** 367,373 ****
+       * standard C extension libraries of one or both python versions. */
+      if (python_loaded())
+      {
+!      EMSG(_("E837: This Vim cannot execute :py3 after using :python"));
+       return FAIL;
+      }
+  # endif
+--- 367,374 ----
+       * standard C extension libraries of one or both python versions. */
+      if (python_loaded())
+      {
+!      if (verbose)
+!          EMSG(_("E837: This Vim cannot execute :py3 after using :python"));
+       return FAIL;
+      }
+  # endif
+*** ../vim-7.3.287/src/version.c       2011-08-27 15:10:00.000000000 +0200
+--- src/version.c      2011-08-28 15:59:11.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     288,
+  /**/
+
+-- 
+FIRST SOLDIER:  So they wouldn't be able to bring a coconut back anyway.
+SECOND SOLDIER: Wait a minute! Suppose two swallows carried it together?
+FIRST SOLDIER:  No, they'd have to have it on a line.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.289.patch0 b/vim/patches/vim-7.3.289.patch0
new file mode 100644 (file)
index 0000000..30258e4
--- /dev/null
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.289
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.289
+Problem:    Complete function isn't called when the leader changed.
+Solution:   Call ins_compl_restart() when the leader changed.  (Taro Muraoka)
+Files:     src/edit.c
+
+
+*** ../vim-7.3.288/src/edit.c  2011-05-19 17:25:36.000000000 +0200
+--- src/edit.c 2011-08-28 15:53:47.000000000 +0200
+***************
+*** 3367,3372 ****
+--- 3367,3381 ----
+      ins_bytes(compl_leader + ins_compl_len());
+      compl_used_match = FALSE;
+  
++ #ifdef FEAT_COMPL_FUNC
++     /*
++      * To call eval 'completefunc' when leader is changed, restart completion
++      * every time.
++      */
++     if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI)
++         ins_compl_restart();
++ #endif
++ 
+      if (compl_started)
+       ins_compl_set_original_text(compl_leader);
+      else
+*** ../vim-7.3.288/src/version.c       2011-08-28 16:00:14.000000000 +0200
+--- src/version.c      2011-08-28 16:01:22.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     289,
+  /**/
+
+-- 
+THEOREM: VI is perfect.
+PROOF: VI in roman numerals is 6.  The natural numbers < 6 which divide 6 are
+1, 2, and 3. 1+2+3 = 6.  So 6 is a perfect number.  Therefore, VI is perfect.
+QED
+                                                   -- Arthur Tateishi
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.290.patch0 b/vim/patches/vim-7.3.290.patch0
new file mode 100644 (file)
index 0000000..b50cacf
--- /dev/null
@@ -0,0 +1,75 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.290
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.290
+Problem:    When a BufWriteCmd autocommand resets 'modified' this doesn't
+           change older buffer states to be marked as 'modified' like
+           ":write" does.  (Yukihiro Nakadaira)
+Solution:   When the BufWriteCmd resets 'modified' then adjust the undo
+           information like ":write" does.
+Files:     src/fileio.c
+
+
+*** ../vim-7.3.289/src/fileio.c        2011-07-20 18:29:33.000000000 +0200
+--- src/fileio.c       2011-08-29 21:49:27.000000000 +0200
+***************
+*** 3342,3349 ****
+       }
+       else if (reset_changed && whole)
+       {
+!          if (!(did_cmd = apply_autocmds_exarg(EVENT_BUFWRITECMD,
+!                                       sfname, sfname, FALSE, curbuf, eap)))
+           {
+  #ifdef FEAT_QUICKFIX
+               if (overwriting && bt_nofile(curbuf))
+--- 3342,3363 ----
+       }
+       else if (reset_changed && whole)
+       {
+!          int was_changed = curbufIsChanged();
+! 
+!          did_cmd = apply_autocmds_exarg(EVENT_BUFWRITECMD,
+!                                        sfname, sfname, FALSE, curbuf, eap);
+!          if (did_cmd)
+!          {
+!              if (was_changed && !curbufIsChanged())
+!              {
+!                  /* Written everything correctly and BufWriteCmd has reset
+!                   * 'modified': Correct the undo information so that an
+!                   * undo now sets 'modified'. */
+!                  u_unchanged(curbuf);
+!                  u_update_save_nr(curbuf);
+!              }
+!          }
+!          else
+           {
+  #ifdef FEAT_QUICKFIX
+               if (overwriting && bt_nofile(curbuf))
+*** ../vim-7.3.289/src/version.c       2011-08-28 16:02:23.000000000 +0200
+--- src/version.c      2011-09-02 11:37:25.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     290,
+  /**/
+
+-- 
+OLD WOMAN: Well, how did you become king, then?
+ARTHUR: The Lady of the Lake, her arm clad in the purest shimmering samite,
+        held Excalibur aloft from the bosom of the water to signify by Divine
+        Providence ...  that I, Arthur, was to carry Excalibur ...  That is
+        why I am your king!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.291.patch0 b/vim/patches/vim-7.3.291.patch0
new file mode 100644 (file)
index 0000000..1d394e4
--- /dev/null
@@ -0,0 +1,125 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.291
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.291
+Problem:    Configure doesn't work properly with Python3.
+Solution:   Put -ldl before $LDFLAGS. Add PY3_NO_RTLD_GLOBAL. (Roland
+           Puntaier)
+Files:     src/config.h.in, src/auto/configure, src/configure.in
+
+
+*** ../vim-7.3.290/src/config.h.in     2010-10-27 16:49:41.000000000 +0200
+--- src/config.h.in    2011-09-02 11:22:21.000000000 +0200
+***************
+*** 346,351 ****
+--- 346,354 ----
+  /* Define if dynamic python does not require RTLD_GLOBAL */
+  #undef PY_NO_RTLD_GLOBAL
+  
++ /* Define if dynamic python3 does not require RTLD_GLOBAL */
++ #undef PY3_NO_RTLD_GLOBAL
++ 
+  /* Define if you want to include the Ruby interpreter. */
+  #undef FEAT_RUBY
+  
+*** ../vim-7.3.290/src/auto/configure  2011-07-15 13:09:46.000000000 +0200
+--- src/auto/configure 2011-09-02 11:23:15.000000000 +0200
+***************
+*** 5733,5739 ****
+    cflags_save=$CFLAGS
+    CFLAGS="$CFLAGS $PYTHON_CFLAGS"
+    ldflags_save=$LDFLAGS
+!   LDFLAGS="$LDFLAGS -ldl"
+    if test "$cross_compiling" = yes; then :
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+--- 5733,5739 ----
+    cflags_save=$CFLAGS
+    CFLAGS="$CFLAGS $PYTHON_CFLAGS"
+    ldflags_save=$LDFLAGS
+!     LDFLAGS="-ldl $LDFLAGS"
+    if test "$cross_compiling" = yes; then :
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+***************
+*** 5798,5804 ****
+    cflags_save=$CFLAGS
+    CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
+    ldflags_save=$LDFLAGS
+!   LDFLAGS="$LDFLAGS -ldl"
+    if test "$cross_compiling" = yes; then :
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+--- 5798,5804 ----
+    cflags_save=$CFLAGS
+    CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
+    ldflags_save=$LDFLAGS
+!     LDFLAGS="-ldl $LDFLAGS"
+    if test "$cross_compiling" = yes; then :
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+*** ../vim-7.3.290/src/configure.in    2011-07-15 13:09:46.000000000 +0200
+--- src/configure.in   2011-09-02 11:19:51.000000000 +0200
+***************
+*** 1161,1167 ****
+    cflags_save=$CFLAGS
+    CFLAGS="$CFLAGS $PYTHON_CFLAGS"
+    ldflags_save=$LDFLAGS
+!   LDFLAGS="$LDFLAGS -ldl"
+    AC_RUN_IFELSE([
+      #include <dlfcn.h>
+      /* If this program fails, then RTLD_GLOBAL is needed.
+--- 1161,1168 ----
+    cflags_save=$CFLAGS
+    CFLAGS="$CFLAGS $PYTHON_CFLAGS"
+    ldflags_save=$LDFLAGS
+!   dnl -ldl must go first to make this work on Archlinux (Roland Puntaier)
+!   LDFLAGS="-ldl $LDFLAGS"
+    AC_RUN_IFELSE([
+      #include <dlfcn.h>
+      /* If this program fails, then RTLD_GLOBAL is needed.
+***************
+*** 1205,1211 ****
+    cflags_save=$CFLAGS
+    CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
+    ldflags_save=$LDFLAGS
+!   LDFLAGS="$LDFLAGS -ldl"
+    AC_RUN_IFELSE([
+      #include <dlfcn.h>
+      #include <wchar.h>
+--- 1206,1213 ----
+    cflags_save=$CFLAGS
+    CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
+    ldflags_save=$LDFLAGS
+!   dnl -ldl must go first to make this work on Archlinux (Roland Puntaier)
+!   LDFLAGS="-ldl $LDFLAGS"
+    AC_RUN_IFELSE([
+      #include <dlfcn.h>
+      #include <wchar.h>
+*** ../vim-7.3.290/src/version.c       2011-09-02 11:56:15.000000000 +0200
+--- src/version.c      2011-09-02 12:25:13.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     291,
+  /**/
+
+-- 
+DENNIS: Look,  strange women lying on their backs in ponds handing out
+        swords ... that's no basis for a system of government.  Supreme
+        executive power derives from a mandate from the masses, not from some
+        farcical aquatic ceremony.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.292.patch0 b/vim/patches/vim-7.3.292.patch0
new file mode 100644 (file)
index 0000000..fc9480f
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.292
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.292
+Problem:    Crash when using fold markers and selecting a visual block that
+           includes a folded line and goes to end of line. (Sam Lidder)
+Solution:   Check for the column to be MAXCOL. (James Vega)
+Files:     src/screen.c
+
+
+*** ../vim-7.3.291/src/screen.c        2011-08-10 14:32:33.000000000 +0200
+--- src/screen.c       2011-09-02 13:58:18.000000000 +0200
+***************
+*** 2531,2537 ****
+               /* Visual block mode: highlight the chars part of the block */
+               if (wp->w_old_cursor_fcol + txtcol < (colnr_T)W_WIDTH(wp))
+               {
+!                  if (wp->w_old_cursor_lcol + txtcol < (colnr_T)W_WIDTH(wp))
+                       len = wp->w_old_cursor_lcol;
+                   else
+                       len = W_WIDTH(wp) - txtcol;
+--- 2531,2539 ----
+               /* Visual block mode: highlight the chars part of the block */
+               if (wp->w_old_cursor_fcol + txtcol < (colnr_T)W_WIDTH(wp))
+               {
+!                  if (wp->w_old_cursor_lcol != MAXCOL
+!                           && wp->w_old_cursor_lcol + txtcol
+!                                                     < (colnr_T)W_WIDTH(wp))
+                       len = wp->w_old_cursor_lcol;
+                   else
+                       len = W_WIDTH(wp) - txtcol;
+*** ../vim-7.3.291/src/version.c       2011-09-02 12:27:20.000000000 +0200
+--- src/version.c      2011-09-02 14:00:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     292,
+  /**/
+
+-- 
+Hacker: Someone skilled in computer programming (good guy).
+Cracker: A hacker that uses his skills to crack software (bad guy).
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.293.patch0 b/vim/patches/vim-7.3.293.patch0
new file mode 100644 (file)
index 0000000..4072e32
--- /dev/null
@@ -0,0 +1,74 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.293
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.293
+Problem:    MSVC compiler has a problem with non-ASCII characters.
+Solution:   Avoid non-ASCII characters. (Hong Xu)
+Files:     src/ascii.h, src/spell.c
+
+
+*** ../vim-7.3.292/src/ascii.h 2011-05-10 16:41:13.000000000 +0200
+--- src/ascii.h        2011-09-02 14:12:48.000000000 +0200
+***************
+*** 123,129 ****
+  #define DCS          0x90    /* Device Control String */
+  #define STERM                0x9c    /* String Terminator */
+  
+! #define POUND                '£'
+  
+  #define CTRL_F_STR   "\056"
+  #define CTRL_H_STR   "\026"
+--- 123,129 ----
+  #define DCS          0x90    /* Device Control String */
+  #define STERM                0x9c    /* String Terminator */
+  
+! #define POUND                '\xA3'
+  
+  #define CTRL_F_STR   "\056"
+  #define CTRL_H_STR   "\026"
+*** ../vim-7.3.292/src/spell.c 2011-04-11 21:35:03.000000000 +0200
+--- src/spell.c        2011-09-02 14:13:30.000000000 +0200
+***************
+*** 11197,11203 ****
+           c = *s++;
+  
+  #ifdef FEAT_MBYTE
+!      /* We only change ÃŸ to SS when we are certain latin1 is used.  It
+        * would cause weird errors in other 8-bit encodings. */
+       if (enc_latin1like && c == 0xdf)
+       {
+--- 11197,11203 ----
+           c = *s++;
+  
+  #ifdef FEAT_MBYTE
+!      /* We only change 0xdf to SS when we are certain latin1 is used.  It
+        * would cause weird errors in other 8-bit encodings. */
+       if (enc_latin1like && c == 0xdf)
+       {
+*** ../vim-7.3.292/src/version.c       2011-09-02 14:07:31.000000000 +0200
+--- src/version.c      2011-09-02 14:13:57.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     293,
+  /**/
+
+-- 
+   A village.  Sound of chanting of Latin canon, punctuated by short, sharp
+   cracks.  It comes nearer.  We see it is a line of MONKS ala SEVENTH SEAL
+   flagellation scene, chanting and banging themselves on the foreheads with
+   wooden boards.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.294.patch0 b/vim/patches/vim-7.3.294.patch0
new file mode 100644 (file)
index 0000000..84252ba
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.294
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.294 (after 7.3.289)
+Problem:    Patch 289 causes more problems than it solves.
+Solution:   Rever the patch untill a better solution is found.
+Files:     src/edit.c
+
+
+*** ../vim-7.3.293/src/edit.c  2011-08-28 16:02:23.000000000 +0200
+--- src/edit.c 2011-09-05 20:07:49.000000000 +0200
+***************
+*** 3367,3381 ****
+      ins_bytes(compl_leader + ins_compl_len());
+      compl_used_match = FALSE;
+  
+- #ifdef FEAT_COMPL_FUNC
+-     /*
+-      * To call eval 'completefunc' when leader is changed, restart completion
+-      * every time.
+-      */
+-     if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI)
+-         ins_compl_restart();
+- #endif
+- 
+      if (compl_started)
+       ins_compl_set_original_text(compl_leader);
+      else
+--- 3367,3372 ----
+*** ../vim-7.3.293/src/version.c       2011-09-02 14:18:14.000000000 +0200
+--- src/version.c      2011-09-05 20:08:27.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     294,
+  /**/
+
+-- 
+Scientists decoded the first message from an alien civilization:
+        SIMPLY SEND 6 TIMES 10 TO THE 50 ATOMS OF HYDROGEN TO THE STAR
+SYSTEM AT THE TOP OF THE LIST, CROSS OFF THAT STAR SYSTEM, THEN PUT
+YOUR STAR SYSTEM AT THE BOTTOM OF THE LIST AND SEND IT TO 100 OTHER
+STAR SYSTEMS.  WITHIN ONE TENTH GALACTIC ROTATION YOU WILL RECEIVE
+ENOUGH HYDROGREN TO POWER YOUR CIVILIZATION UNTIL ENTROPY REACHES ITS
+MAXIMUM!  IT REALLY WORKS!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.295.patch0 b/vim/patches/vim-7.3.295.patch0
new file mode 100644 (file)
index 0000000..fad7ea3
--- /dev/null
@@ -0,0 +1,109 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.295
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.295
+Problem:    When filtering text with an external command Vim may not read all
+           the output.
+Solution:   When select() is interrupted loop and try again. (James Vega)
+Files:     src/os_unix.c
+
+
+*** ../vim-7.3.294/src/os_unix.c       2011-08-04 20:31:50.000000000 +0200
+--- src/os_unix.c      2011-09-07 13:34:09.000000000 +0200
+***************
+*** 4819,4825 ****
+  
+  /*
+   * Wait "msec" msec until a character is available from file descriptor "fd".
+!  * Time == -1 will block forever.
+   * When a GUI is being used, this will not be used for input -- webb
+   * Returns also, when a request from Sniff is waiting -- toni.
+   * Or when a Linux GPM mouse event is waiting.
+--- 4819,4826 ----
+  
+  /*
+   * Wait "msec" msec until a character is available from file descriptor "fd".
+!  * "msec" == 0 will check for characters once.
+!  * "msec" == -1 will block until a character is available.
+   * When a GUI is being used, this will not be used for input -- webb
+   * Returns also, when a request from Sniff is waiting -- toni.
+   * Or when a Linux GPM mouse event is waiting.
+***************
+*** 5057,5063 ****
+       /*
+        * Select on ready for reading and exceptional condition (end of file).
+        */
+!      FD_ZERO(&rfds); /* calls bzero() on a sun */
+       FD_ZERO(&efds);
+       FD_SET(fd, &rfds);
+  # if !defined(__QNX__) && !defined(__CYGWIN32__)
+--- 5058,5065 ----
+       /*
+        * Select on ready for reading and exceptional condition (end of file).
+        */
+! select_eintr:
+!      FD_ZERO(&rfds);
+       FD_ZERO(&efds);
+       FD_SET(fd, &rfds);
+  # if !defined(__QNX__) && !defined(__CYGWIN32__)
+***************
+*** 5117,5122 ****
+--- 5119,5132 ----
+  # else
+       ret = select(maxfd + 1, &rfds, NULL, &efds, tvp);
+  # endif
++ # ifdef EINTR
++      if (ret == -1 && errno == EINTR)
++          /* Interrupted by a signal, need to try again.  We ignore msec
++           * here, because we do want to check even after a timeout if
++           * characters are available.  Needed for reading output of an
++           * external command after the process has finished. */
++          goto select_eintr;
++ # endif
+  # ifdef __TANDEM
+       if (ret == -1 && errno == ENOTSUP)
+       {
+***************
+*** 5124,5130 ****
+           FD_ZERO(&efds);
+           ret = 0;
+       }
+! #endif
+  # ifdef FEAT_MZSCHEME
+       if (ret == 0 && mzquantum_used)
+           /* loop if MzThreads must be scheduled and timeout occurred */
+--- 5134,5140 ----
+           FD_ZERO(&efds);
+           ret = 0;
+       }
+! # endif
+  # ifdef FEAT_MZSCHEME
+       if (ret == 0 && mzquantum_used)
+           /* loop if MzThreads must be scheduled and timeout occurred */
+*** ../vim-7.3.294/src/version.c       2011-09-05 20:13:37.000000000 +0200
+--- src/version.c      2011-09-07 14:05:05.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     295,
+  /**/
+
+-- 
+"You're fired." (1980)
+"You're laid off." (1985)
+"You're downsized." (1990)
+"You're rightsized." (1992)
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.296.patch0 b/vim/patches/vim-7.3.296.patch0
new file mode 100644 (file)
index 0000000..80369d1
--- /dev/null
@@ -0,0 +1,222 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.296
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.296
+Problem:    When writing to an external command a zombie process may be left
+           behind.
+Solution:   Wait on the process. (James Vega)
+Files:     src/os_unix.c
+
+
+*** ../vim-7.3.295/src/os_unix.c       2011-09-07 14:06:38.000000000 +0200
+--- src/os_unix.c      2011-09-07 14:54:11.000000000 +0200
+***************
+*** 154,159 ****
+--- 154,166 ----
+  
+  static void may_core_dump __ARGS((void));
+  
++ #ifdef HAVE_UNION_WAIT
++ typedef union wait waitstatus;
++ #else
++ typedef int waitstatus;
++ #endif
++ static int  wait4pid __ARGS((pid_t, waitstatus *));
++ 
+  static int  WaitForChar __ARGS((long));
+  #if defined(__BEOS__)
+  int  RealWaitForChar __ARGS((int, long, int *));
+***************
+*** 3660,3665 ****
+--- 3667,3713 ----
+      /* Nothing to do. */
+  }
+  
++ /*
++  * Wait for process "child" to end.
++  * Return "child" if it exited properly, <= 0 on error.
++  */
++     static pid_t
++ wait4pid(child, status)
++     pid_t    child;
++     waitstatus       *status;
++ {
++     pid_t wait_pid = 0;
++ 
++     while (wait_pid != child)
++     {
++ # ifdef _THREAD_SAFE
++      /* Ugly hack: when compiled with Python threads are probably
++       * used, in which case wait() sometimes hangs for no obvious
++       * reason.  Use waitpid() instead and loop (like the GUI). */
++ #  ifdef __NeXT__
++      wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
++ #  else
++      wait_pid = waitpid(child, status, WNOHANG);
++ #  endif
++      if (wait_pid == 0)
++      {
++          /* Wait for 1/100 sec before trying again. */
++          mch_delay(10L, TRUE);
++          continue;
++      }
++ # else
++      wait_pid = wait(status);
++ # endif
++      if (wait_pid <= 0
++ # ifdef ECHILD
++              && errno == ECHILD
++ # endif
++         )
++          break;
++     }
++     return wait_pid;
++ }
++ 
+      int
+  mch_call_shell(cmd, options)
+      char_u   *cmd;
+***************
+*** 4234,4240 ****
+                   {
+                       MSG_PUTS(_("\nCannot fork\n"));
+                   }
+!                  else if (wpid == 0)
+                   {
+                       linenr_T    lnum = curbuf->b_op_start.lnum;
+                       int         written = 0;
+--- 4282,4288 ----
+                   {
+                       MSG_PUTS(_("\nCannot fork\n"));
+                   }
+!                  else if (wpid == 0) /* child */
+                   {
+                       linenr_T    lnum = curbuf->b_op_start.lnum;
+                       int         written = 0;
+***************
+*** 4242,4248 ****
+                       char_u      *s;
+                       size_t      l;
+  
+-                      /* child */
+                       close(fromshell_fd);
+                       for (;;)
+                       {
+--- 4290,4295 ----
+***************
+*** 4287,4293 ****
+                       }
+                       _exit(0);
+                   }
+!                  else
+                   {
+                       close(toshell_fd);
+                       toshell_fd = -1;
+--- 4334,4340 ----
+                       }
+                       _exit(0);
+                   }
+!                  else /* parent */
+                   {
+                       close(toshell_fd);
+                       toshell_fd = -1;
+***************
+*** 4584,4590 ****
+                    * typed characters (otherwise we would lose typeahead).
+                    */
+  # ifdef __NeXT__
+!                  wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *) 0);
+  # else
+                   wait_pid = waitpid(pid, &status, WNOHANG);
+  # endif
+--- 4631,4637 ----
+                    * typed characters (otherwise we would lose typeahead).
+                    */
+  # ifdef __NeXT__
+!                  wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *)0);
+  # else
+                   wait_pid = waitpid(pid, &status, WNOHANG);
+  # endif
+***************
+*** 4633,4665 ****
+            * Don't wait if wait_pid was already set above, indicating the
+            * child already exited.
+            */
+!          while (wait_pid != pid)
+!          {
+! # ifdef _THREAD_SAFE
+!              /* Ugly hack: when compiled with Python threads are probably
+!               * used, in which case wait() sometimes hangs for no obvious
+!               * reason.  Use waitpid() instead and loop (like the GUI). */
+! #  ifdef __NeXT__
+!              wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *)0);
+! #  else
+!              wait_pid = waitpid(pid, &status, WNOHANG);
+! #  endif
+!              if (wait_pid == 0)
+!              {
+!                  /* Wait for 1/100 sec before trying again. */
+!                  mch_delay(10L, TRUE);
+!                  continue;
+!              }
+! # else
+!              wait_pid = wait(&status);
+! # endif
+!              if (wait_pid <= 0
+! # ifdef ECHILD
+!                      && errno == ECHILD
+! # endif
+!                 )
+!                  break;
+!          }
+  
+  # ifdef FEAT_GUI
+           /* Close slave side of pty.  Only do this after the child has
+--- 4680,4687 ----
+            * Don't wait if wait_pid was already set above, indicating the
+            * child already exited.
+            */
+!          if (wait_pid != pid)
+!              wait_pid = wait4pid(pid, &status);
+  
+  # ifdef FEAT_GUI
+           /* Close slave side of pty.  Only do this after the child has
+***************
+*** 4672,4678 ****
+--- 4694,4703 ----
+           /* Make sure the child that writes to the external program is
+            * dead. */
+           if (wpid > 0)
++          {
+               kill(wpid, SIGKILL);
++              wait4pid(wpid, NULL);
++          }
+  
+           /*
+            * Set to raw mode right now, otherwise a CTRL-C after
+*** ../vim-7.3.295/src/version.c       2011-09-07 14:06:39.000000000 +0200
+--- src/version.c      2011-09-07 15:03:24.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     296,
+  /**/
+
+-- 
+If your company is not involved in something called "ISO 9000" you probably
+have no idea what it is.  If your company _is_ involved in ISO 9000 then you
+definitely have no idea what it is.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.297.patch0 b/vim/patches/vim-7.3.297.patch0
new file mode 100644 (file)
index 0000000..09be768
--- /dev/null
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.297
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.297
+Problem:    Can't load Perl 5.14 dynamically.
+Solution:   Add code in #ifdefs. (Charles Cooper)
+Files:     if_perl.xs
+
+
+*** ../vim-7.3.296/src/if_perl.xs      2011-07-27 14:15:41.000000000 +0200
+--- src/if_perl.xs     2011-09-07 18:47:07.000000000 +0200
+***************
+*** 147,153 ****
+--- 147,158 ----
+  # define Perl_save_int dll_Perl_save_int
+  # define Perl_stack_grow dll_Perl_stack_grow
+  # define Perl_set_context dll_Perl_set_context
++ # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
++ # define Perl_sv_2bool_flags dll_Perl_sv_2bool_flags
++ # define Perl_xs_apiversion_bootcheck dll_Perl_xs_apiversion_bootcheck 
++ # else
+  # define Perl_sv_2bool dll_Perl_sv_2bool
++ # endif
+  # define Perl_sv_2iv dll_Perl_sv_2iv
+  # define Perl_sv_2mortal dll_Perl_sv_2mortal
+  # if (PERL_REVISION == 5) && (PERL_VERSION >= 8)
+***************
+*** 252,258 ****
+--- 257,268 ----
+  static void (*Perl_save_int)(pTHX_ int*);
+  static SV** (*Perl_stack_grow)(pTHX_ SV**, SV**p, int);
+  static SV** (*Perl_set_context)(void*);
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
++ static bool (*Perl_sv_2bool_flags)(pTHX_ SV*, I32);
++ static void (*Perl_xs_apiversion_bootcheck)(pTHX_ SV *module, const char *api_p, STRLEN api_len);
++ #else
+  static bool (*Perl_sv_2bool)(pTHX_ SV*);
++ #endif
+  static IV (*Perl_sv_2iv)(pTHX_ SV*);
+  static SV* (*Perl_sv_2mortal)(pTHX_ SV*);
+  #if (PERL_REVISION == 5) && (PERL_VERSION >= 8)
+***************
+*** 360,366 ****
+--- 370,381 ----
+      {"Perl_save_int", (PERL_PROC*)&Perl_save_int},
+      {"Perl_stack_grow", (PERL_PROC*)&Perl_stack_grow},
+      {"Perl_set_context", (PERL_PROC*)&Perl_set_context},
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
++     {"Perl_sv_2bool_flags", (PERL_PROC*)&Perl_sv_2bool_flags},
++     {"Perl_xs_apiversion_bootcheck",(PERL_PROC*)&Perl_xs_apiversion_bootcheck},
++ #else
+      {"Perl_sv_2bool", (PERL_PROC*)&Perl_sv_2bool},
++ #endif
+      {"Perl_sv_2iv", (PERL_PROC*)&Perl_sv_2iv},
+      {"Perl_sv_2mortal", (PERL_PROC*)&Perl_sv_2mortal},
+  #if (PERL_REVISION == 5) && (PERL_VERSION >= 8)
+***************
+*** 407,412 ****
+--- 422,430 ----
+      {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2},
+      {"Perl_sys_init", (PERL_PROC*)&Perl_sys_init},
+      {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term},
++     {"Perl_call_list", (PERL_PROC*)&Perl_call_list},
++ # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
++ # else
+      {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr},
+      {"Perl_Istack_max_ptr", (PERL_PROC*)&Perl_Istack_max_ptr},
+      {"Perl_Istack_base_ptr", (PERL_PROC*)&Perl_Istack_base_ptr},
+***************
+*** 418,432 ****
+      {"Perl_Imarkstack_max_ptr", (PERL_PROC*)&Perl_Imarkstack_max_ptr},
+      {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr},
+      {"Perl_Iop_ptr", (PERL_PROC*)&Perl_Iop_ptr},
+-     {"Perl_call_list", (PERL_PROC*)&Perl_call_list},
+      {"Perl_Iscopestack_ix_ptr", (PERL_PROC*)&Perl_Iscopestack_ix_ptr},
+      {"Perl_Iunitcheckav_ptr", (PERL_PROC*)&Perl_Iunitcheckav_ptr},
+  #endif
+      {"Perl_Idefgv_ptr", (PERL_PROC*)&Perl_Idefgv_ptr},
+      {"Perl_Ierrgv_ptr", (PERL_PROC*)&Perl_Ierrgv_ptr},
+      {"Perl_Isv_yes_ptr", (PERL_PROC*)&Perl_Isv_yes_ptr},
+-     {"boot_DynaLoader", (PERL_PROC*)&boot_DynaLoader},
+      {"Perl_Gthr_key_ptr", (PERL_PROC*)&Perl_Gthr_key_ptr},
+      {"", NULL},
+  };
+  
+--- 436,453 ----
+      {"Perl_Imarkstack_max_ptr", (PERL_PROC*)&Perl_Imarkstack_max_ptr},
+      {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr},
+      {"Perl_Iop_ptr", (PERL_PROC*)&Perl_Iop_ptr},
+      {"Perl_Iscopestack_ix_ptr", (PERL_PROC*)&Perl_Iscopestack_ix_ptr},
+      {"Perl_Iunitcheckav_ptr", (PERL_PROC*)&Perl_Iunitcheckav_ptr},
++ # endif
+  #endif
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
++ #else
+      {"Perl_Idefgv_ptr", (PERL_PROC*)&Perl_Idefgv_ptr},
+      {"Perl_Ierrgv_ptr", (PERL_PROC*)&Perl_Ierrgv_ptr},
+      {"Perl_Isv_yes_ptr", (PERL_PROC*)&Perl_Isv_yes_ptr},
+      {"Perl_Gthr_key_ptr", (PERL_PROC*)&Perl_Gthr_key_ptr},
++ #endif
++     {"boot_DynaLoader", (PERL_PROC*)&boot_DynaLoader},
+      {"", NULL},
+  };
+  
+*** ../vim-7.3.296/src/version.c       2011-09-07 15:04:26.000000000 +0200
+--- src/version.c      2011-09-07 18:45:28.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     297,
+  /**/
+
+-- 
+At some point in the project somebody will start whining about the need to
+determine the project "requirements".  This involves interviewing people who
+don't know what they want but, curiously, know exactly when they need it.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.298.patch0 b/vim/patches/vim-7.3.298.patch0
new file mode 100644 (file)
index 0000000..65a51aa
--- /dev/null
@@ -0,0 +1,167 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.298
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.298
+Problem:    Built-in colors are different from rgb.txt.
+Solution:   Adjust the color values. (Benjamin Haskell)
+Files:     src/gui_photon.c, src/gui_w48.c
+
+
+*** ../vim-7.3.297/src/gui_photon.c    2011-08-10 12:19:00.000000000 +0200
+--- src/gui_photon.c   2011-09-07 18:55:09.000000000 +0200
+***************
+*** 2007,2014 ****
+      static GuiColourTable table[] =
+      {
+       {"Black",           RGB(0x00, 0x00, 0x00)},
+!      {"DarkGray",        RGB(0x80, 0x80, 0x80)},
+!      {"DarkGrey",        RGB(0x80, 0x80, 0x80)},
+       {"Gray",            RGB(0xC0, 0xC0, 0xC0)},
+       {"Grey",            RGB(0xC0, 0xC0, 0xC0)},
+       {"LightGray",       RGB(0xD3, 0xD3, 0xD3)},
+--- 2007,2014 ----
+      static GuiColourTable table[] =
+      {
+       {"Black",           RGB(0x00, 0x00, 0x00)},
+!      {"DarkGray",        RGB(0xA9, 0xA9, 0xA9)},
+!      {"DarkGrey",        RGB(0xA9, 0xA9, 0xA9)},
+       {"Gray",            RGB(0xC0, 0xC0, 0xC0)},
+       {"Grey",            RGB(0xC0, 0xC0, 0xC0)},
+       {"LightGray",       RGB(0xD3, 0xD3, 0xD3)},
+***************
+*** 2037,2055 ****
+       {"LightRed",        RGB(0xFF, 0xA0, 0xA0)},
+       {"DarkBlue",        RGB(0x00, 0x00, 0x80)},
+       {"Blue",            RGB(0x00, 0x00, 0xFF)},
+!      {"LightBlue",       RGB(0xA0, 0xA0, 0xFF)},
+       {"DarkGreen",       RGB(0x00, 0x80, 0x00)},
+       {"Green",           RGB(0x00, 0xFF, 0x00)},
+!      {"LightGreen",      RGB(0xA0, 0xFF, 0xA0)},
+       {"DarkCyan",        RGB(0x00, 0x80, 0x80)},
+       {"Cyan",            RGB(0x00, 0xFF, 0xFF)},
+!      {"LightCyan",       RGB(0xA0, 0xFF, 0xFF)},
+       {"DarkMagenta",     RGB(0x80, 0x00, 0x80)},
+       {"Magenta",         RGB(0xFF, 0x00, 0xFF)},
+       {"LightMagenta",    RGB(0xFF, 0xA0, 0xFF)},
+       {"Brown",           RGB(0x80, 0x40, 0x40)},
+       {"Yellow",          RGB(0xFF, 0xFF, 0x00)},
+!      {"LightYellow",     RGB(0xFF, 0xFF, 0xA0)},
+       {"SeaGreen",        RGB(0x2E, 0x8B, 0x57)},
+       {"Orange",          RGB(0xFF, 0xA5, 0x00)},
+       {"Purple",          RGB(0xA0, 0x20, 0xF0)},
+--- 2037,2055 ----
+       {"LightRed",        RGB(0xFF, 0xA0, 0xA0)},
+       {"DarkBlue",        RGB(0x00, 0x00, 0x80)},
+       {"Blue",            RGB(0x00, 0x00, 0xFF)},
+!      {"LightBlue",       RGB(0xAD, 0xD8, 0xE6)},
+       {"DarkGreen",       RGB(0x00, 0x80, 0x00)},
+       {"Green",           RGB(0x00, 0xFF, 0x00)},
+!      {"LightGreen",      RGB(0x90, 0xEE, 0x90)},
+       {"DarkCyan",        RGB(0x00, 0x80, 0x80)},
+       {"Cyan",            RGB(0x00, 0xFF, 0xFF)},
+!      {"LightCyan",       RGB(0xE0, 0xFF, 0xFF)},
+       {"DarkMagenta",     RGB(0x80, 0x00, 0x80)},
+       {"Magenta",         RGB(0xFF, 0x00, 0xFF)},
+       {"LightMagenta",    RGB(0xFF, 0xA0, 0xFF)},
+       {"Brown",           RGB(0x80, 0x40, 0x40)},
+       {"Yellow",          RGB(0xFF, 0xFF, 0x00)},
+!      {"LightYellow",     RGB(0xFF, 0xFF, 0xE0)},
+       {"SeaGreen",        RGB(0x2E, 0x8B, 0x57)},
+       {"Orange",          RGB(0xFF, 0xA5, 0x00)},
+       {"Purple",          RGB(0xA0, 0x20, 0xF0)},
+*** ../vim-7.3.297/src/gui_w48.c       2011-08-10 17:07:56.000000000 +0200
+--- src/gui_w48.c      2011-09-07 18:55:09.000000000 +0200
+***************
+*** 1411,1422 ****
+      static guicolor_tTable table[] =
+      {
+       {"Black",               RGB(0x00, 0x00, 0x00)},
+!      {"DarkGray",            RGB(0x80, 0x80, 0x80)},
+!      {"DarkGrey",            RGB(0x80, 0x80, 0x80)},
+       {"Gray",                RGB(0xC0, 0xC0, 0xC0)},
+       {"Grey",                RGB(0xC0, 0xC0, 0xC0)},
+!      {"LightGray",           RGB(0xE0, 0xE0, 0xE0)},
+!      {"LightGrey",           RGB(0xE0, 0xE0, 0xE0)},
+       {"Gray10",              RGB(0x1A, 0x1A, 0x1A)},
+       {"Grey10",              RGB(0x1A, 0x1A, 0x1A)},
+       {"Gray20",              RGB(0x33, 0x33, 0x33)},
+--- 1411,1422 ----
+      static guicolor_tTable table[] =
+      {
+       {"Black",               RGB(0x00, 0x00, 0x00)},
+!      {"DarkGray",            RGB(0xA9, 0xA9, 0xA9)},
+!      {"DarkGrey",            RGB(0xA9, 0xA9, 0xA9)},
+       {"Gray",                RGB(0xC0, 0xC0, 0xC0)},
+       {"Grey",                RGB(0xC0, 0xC0, 0xC0)},
+!      {"LightGray",           RGB(0xD3, 0xD3, 0xD3)},
+!      {"LightGrey",           RGB(0xD3, 0xD3, 0xD3)},
+       {"Gray10",              RGB(0x1A, 0x1A, 0x1A)},
+       {"Grey10",              RGB(0x1A, 0x1A, 0x1A)},
+       {"Gray20",              RGB(0x33, 0x33, 0x33)},
+***************
+*** 1441,1459 ****
+       {"LightRed",            RGB(0xFF, 0xA0, 0xA0)},
+       {"DarkBlue",            RGB(0x00, 0x00, 0x80)},
+       {"Blue",                RGB(0x00, 0x00, 0xFF)},
+!      {"LightBlue",           RGB(0xA0, 0xA0, 0xFF)},
+       {"DarkGreen",           RGB(0x00, 0x80, 0x00)},
+       {"Green",               RGB(0x00, 0xFF, 0x00)},
+!      {"LightGreen",          RGB(0xA0, 0xFF, 0xA0)},
+       {"DarkCyan",            RGB(0x00, 0x80, 0x80)},
+       {"Cyan",                RGB(0x00, 0xFF, 0xFF)},
+!      {"LightCyan",           RGB(0xA0, 0xFF, 0xFF)},
+       {"DarkMagenta",         RGB(0x80, 0x00, 0x80)},
+       {"Magenta",             RGB(0xFF, 0x00, 0xFF)},
+       {"LightMagenta",        RGB(0xFF, 0xA0, 0xFF)},
+       {"Brown",               RGB(0x80, 0x40, 0x40)},
+       {"Yellow",              RGB(0xFF, 0xFF, 0x00)},
+!      {"LightYellow",         RGB(0xFF, 0xFF, 0xA0)},
+       {"DarkYellow",          RGB(0xBB, 0xBB, 0x00)},
+       {"SeaGreen",            RGB(0x2E, 0x8B, 0x57)},
+       {"Orange",              RGB(0xFF, 0xA5, 0x00)},
+--- 1441,1459 ----
+       {"LightRed",            RGB(0xFF, 0xA0, 0xA0)},
+       {"DarkBlue",            RGB(0x00, 0x00, 0x80)},
+       {"Blue",                RGB(0x00, 0x00, 0xFF)},
+!      {"LightBlue",           RGB(0xAD, 0xD8, 0xE6)},
+       {"DarkGreen",           RGB(0x00, 0x80, 0x00)},
+       {"Green",               RGB(0x00, 0xFF, 0x00)},
+!      {"LightGreen",          RGB(0x90, 0xEE, 0x90)},
+       {"DarkCyan",            RGB(0x00, 0x80, 0x80)},
+       {"Cyan",                RGB(0x00, 0xFF, 0xFF)},
+!      {"LightCyan",           RGB(0xE0, 0xFF, 0xFF)},
+       {"DarkMagenta",         RGB(0x80, 0x00, 0x80)},
+       {"Magenta",             RGB(0xFF, 0x00, 0xFF)},
+       {"LightMagenta",        RGB(0xFF, 0xA0, 0xFF)},
+       {"Brown",               RGB(0x80, 0x40, 0x40)},
+       {"Yellow",              RGB(0xFF, 0xFF, 0x00)},
+!      {"LightYellow",         RGB(0xFF, 0xFF, 0xE0)},
+       {"DarkYellow",          RGB(0xBB, 0xBB, 0x00)},
+       {"SeaGreen",            RGB(0x2E, 0x8B, 0x57)},
+       {"Orange",              RGB(0xFF, 0xA5, 0x00)},
+*** ../vim-7.3.297/src/version.c       2011-09-07 18:47:19.000000000 +0200
+--- src/version.c      2011-09-07 18:55:27.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     298,
+  /**/
+
+-- 
+You can test a person's importance in the organization by asking how much RAM
+his computer has.  Anybody who knows the answer to that question is not a
+decision-maker.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.299.patch0 b/vim/patches/vim-7.3.299.patch0
new file mode 100644 (file)
index 0000000..4f755d9
--- /dev/null
@@ -0,0 +1,516 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.299
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.299
+Problem:    Source code not in Vim style.
+Solution:   Adjust the style. (Elias Diem)
+Files:     src/gui_photon.c
+
+
+*** ../vim-7.3.298/src/gui_photon.c    2011-09-07 18:58:24.000000000 +0200
+--- src/gui_photon.c   2011-09-07 19:02:59.000000000 +0200
+***************
+*** 535,547 ****
+                               &src_taken,
+                               buf,
+                               6,
+!                              &dst_made );
+  
+!                      add_to_input_buf( buf, dst_made );
+                   }
+                   else
+                   {
+!                      add_to_input_buf( string, len );
+                   }
+  
+                   return Pt_CONSUME;
+--- 535,547 ----
+                               &src_taken,
+                               buf,
+                               6,
+!                              &dst_made);
+  
+!                      add_to_input_buf(buf, dst_made);
+                   }
+                   else
+                   {
+!                      add_to_input_buf(string, len);
+                   }
+  
+                   return Pt_CONSUME;
+***************
+*** 549,579 ****
+               len = 0;
+  #endif
+               ch = key->key_cap;
+!              if( ch < 0xff )
+               {
+                   /* FIXME: is this the right thing to do? */
+!                  if( modifiers & MOD_MASK_CTRL )
+                   {
+                       modifiers &= ~MOD_MASK_CTRL;
+  
+!                      if( ( ch >= 'a'  &&  ch <= 'z' ) ||
+                               ch == '[' ||
+                               ch == ']' ||
+!                              ch == '\\' )
+!                          ch = Ctrl_chr( ch );
+!                      else if( ch == '2' )
+                           ch = NUL;
+!                      else if( ch == '6' )
+                           ch = 0x1e;
+!                      else if( ch == '-' )
+                           ch = 0x1f;
+                       else
+                           modifiers |= MOD_MASK_CTRL;
+                   }
+  
+!                  if( modifiers & MOD_MASK_ALT )
+                   {
+!                      ch = Meta( ch );
+                       modifiers &= ~MOD_MASK_ALT;
+                   }
+               }
+--- 549,579 ----
+               len = 0;
+  #endif
+               ch = key->key_cap;
+!              if (ch < 0xff)
+               {
+                   /* FIXME: is this the right thing to do? */
+!                  if (modifiers & MOD_MASK_CTRL)
+                   {
+                       modifiers &= ~MOD_MASK_CTRL;
+  
+!                      if ((ch >= 'a' && ch <= 'z') ||
+                               ch == '[' ||
+                               ch == ']' ||
+!                              ch == '\\')
+!                          ch = Ctrl_chr(ch);
+!                      else if (ch == '2')
+                           ch = NUL;
+!                      else if (ch == '6')
+                           ch = 0x1e;
+!                      else if (ch == '-')
+                           ch = 0x1f;
+                       else
+                           modifiers |= MOD_MASK_CTRL;
+                   }
+  
+!                  if (modifiers & MOD_MASK_ALT)
+                   {
+!                      ch = Meta(ch);
+                       modifiers &= ~MOD_MASK_ALT;
+                   }
+               }
+***************
+*** 586,604 ****
+               modifiers &= ~MOD_MASK_SHIFT;
+       }
+  
+!      ch = simplify_key( ch, &modifiers );
+!      if( modifiers )
+       {
+           string[ len++ ] = CSI;
+           string[ len++ ] = KS_MODIFIER;
+           string[ len++ ] = modifiers;
+       }
+  
+!      if( IS_SPECIAL( ch ) )
+       {
+           string[ len++ ] = CSI;
+!          string[ len++ ] = K_SECOND( ch );
+!          string[ len++ ] = K_THIRD( ch );
+       }
+       else
+       {
+--- 586,604 ----
+               modifiers &= ~MOD_MASK_SHIFT;
+       }
+  
+!      ch = simplify_key(ch, &modifiers);
+!      if (modifiers)
+       {
+           string[ len++ ] = CSI;
+           string[ len++ ] = KS_MODIFIER;
+           string[ len++ ] = modifiers;
+       }
+  
+!      if (IS_SPECIAL(ch))
+       {
+           string[ len++ ] = CSI;
+!          string[ len++ ] = K_SECOND(ch);
+!          string[ len++ ] = K_THIRD(ch);
+       }
+       else
+       {
+***************
+*** 619,627 ****
+           string[ len++ ] = KE_CSI;
+       }
+  
+!      if( len > 0 )
+       {
+!          add_to_input_buf( string, len );
+           return Pt_CONSUME;
+       }
+      }
+--- 619,627 ----
+           string[ len++ ] = KE_CSI;
+       }
+  
+!      if (len > 0)
+       {
+!          add_to_input_buf(string, len);
+           return Pt_CONSUME;
+       }
+      }
+***************
+*** 630,646 ****
+  }
+  
+      static int
+! gui_ph_handle_mouse( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+  {
+      PhPointerEvent_t *pointer;
+      PhRect_t      *pos;
+      int                   button = 0, repeated_click, modifiers = 0x0;
+      short         mouse_x, mouse_y;
+  
+!     pointer = PhGetData( info->event );
+!     pos = PhGetRects( info->event );
+  
+!     gui_mch_mousehide( MOUSE_SHOW );
+  
+      /*
+       * Coordinates need to be relative to the base window,
+--- 630,646 ----
+  }
+  
+      static int
+! gui_ph_handle_mouse(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+  {
+      PhPointerEvent_t *pointer;
+      PhRect_t      *pos;
+      int                   button = 0, repeated_click, modifiers = 0x0;
+      short         mouse_x, mouse_y;
+  
+!     pointer = PhGetData(info->event);
+!     pos = PhGetRects(info->event);
+  
+!     gui_mch_mousehide(MOUSE_SHOW);
+  
+      /*
+       * Coordinates need to be relative to the base window,
+***************
+*** 649,675 ****
+      mouse_x = pos->ul.x + gui.border_width;
+      mouse_y = pos->ul.y + gui.border_width;
+  
+!     if( info->event->type == Ph_EV_PTR_MOTION_NOBUTTON )
+      {
+!      gui_mouse_moved( mouse_x, mouse_y );
+       return Pt_CONTINUE;
+      }
+  
+!     if( pointer->key_mods & Pk_KM_Shift )
+       modifiers |= MOUSE_SHIFT;
+!     if( pointer->key_mods & Pk_KM_Ctrl )
+       modifiers |= MOUSE_CTRL;
+!     if( pointer->key_mods & Pk_KM_Alt )
+       modifiers |= MOUSE_ALT;
+  
+      /*
+       * FIXME More than one button may be involved, but for
+       * now just deal with one
+       */
+!     if( pointer->buttons & Ph_BUTTON_SELECT )
+       button = MOUSE_LEFT;
+  
+!     if( pointer->buttons & Ph_BUTTON_MENU )
+      {
+       button = MOUSE_RIGHT;
+       /* Need the absolute coordinates for the popup menu */
+--- 649,675 ----
+      mouse_x = pos->ul.x + gui.border_width;
+      mouse_y = pos->ul.y + gui.border_width;
+  
+!     if (info->event->type == Ph_EV_PTR_MOTION_NOBUTTON)
+      {
+!      gui_mouse_moved(mouse_x, mouse_y);
+       return Pt_CONTINUE;
+      }
+  
+!     if (pointer->key_mods & Pk_KM_Shift)
+       modifiers |= MOUSE_SHIFT;
+!     if (pointer->key_mods & Pk_KM_Ctrl)
+       modifiers |= MOUSE_CTRL;
+!     if (pointer->key_mods & Pk_KM_Alt)
+       modifiers |= MOUSE_ALT;
+  
+      /*
+       * FIXME More than one button may be involved, but for
+       * now just deal with one
+       */
+!     if (pointer->buttons & Ph_BUTTON_SELECT)
+       button = MOUSE_LEFT;
+  
+!     if (pointer->buttons & Ph_BUTTON_MENU)
+      {
+       button = MOUSE_RIGHT;
+       /* Need the absolute coordinates for the popup menu */
+***************
+*** 677,705 ****
+       abs_mouse.y = pointer->pos.y;
+      }
+  
+!     if( pointer->buttons & Ph_BUTTON_ADJUST )
+       button = MOUSE_MIDDLE;
+  
+      /* Catch a real release (not phantom or other releases */
+!     if( info->event->type == Ph_EV_BUT_RELEASE )
+       button = MOUSE_RELEASE;
+  
+!     if( info->event->type & Ph_EV_PTR_MOTION_BUTTON )
+       button = MOUSE_DRAG;
+  
+  #if 0
+      /* Vim doesn't use button repeats */
+!     if( info->event->type & Ph_EV_BUT_REPEAT )
+       button = MOUSE_DRAG;
+  #endif
+  
+      /* Don't do anything if it is one of the phantom mouse release events */
+!     if( ( button != MOUSE_RELEASE ) ||
+!          ( info->event->subtype == Ph_EV_RELEASE_REAL ) )
+      {
+       repeated_click = (pointer->click_count >= 2) ? TRUE : FALSE;
+  
+!      gui_send_mouse_event( button , mouse_x, mouse_y, repeated_click, modifiers );
+      }
+  
+      return Pt_CONTINUE;
+--- 677,705 ----
+       abs_mouse.y = pointer->pos.y;
+      }
+  
+!     if (pointer->buttons & Ph_BUTTON_ADJUST)
+       button = MOUSE_MIDDLE;
+  
+      /* Catch a real release (not phantom or other releases */
+!     if (info->event->type == Ph_EV_BUT_RELEASE)
+       button = MOUSE_RELEASE;
+  
+!     if (info->event->type & Ph_EV_PTR_MOTION_BUTTON)
+       button = MOUSE_DRAG;
+  
+  #if 0
+      /* Vim doesn't use button repeats */
+!     if (info->event->type & Ph_EV_BUT_REPEAT)
+       button = MOUSE_DRAG;
+  #endif
+  
+      /* Don't do anything if it is one of the phantom mouse release events */
+!     if ((button != MOUSE_RELEASE) ||
+!          (info->event->subtype == Ph_EV_RELEASE_REAL))
+      {
+       repeated_click = (pointer->click_count >= 2) ? TRUE : FALSE;
+  
+!      gui_send_mouse_event(button , mouse_x, mouse_y, repeated_click, modifiers);
+      }
+  
+      return Pt_CONTINUE;
+***************
+*** 707,741 ****
+  
+  /* Handle a focus change of the PtRaw widget */
+      static int
+! gui_ph_handle_focus( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+  {
+!     if( info->reason == Pt_CB_LOST_FOCUS )
+      {
+!      PtRemoveEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+!              gui_ph_handle_mouse, NULL );
+  
+!      gui_mch_mousehide( MOUSE_SHOW );
+      }
+      else
+      {
+!      PtAddEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+!              gui_ph_handle_mouse, NULL );
+      }
+      return Pt_CONTINUE;
+  }
+  
+      static void
+! gui_ph_handle_raw_draw( PtWidget_t *widget, PhTile_t *damage )
+  {
+      PhRect_t *r;
+      PhPoint_t        offset;
+      PhPoint_t        translation;
+  
+!     if( is_ignore_draw == TRUE )
+       return;
+  
+!     PtSuperClassDraw( PtBasic, widget, damage );
+!     PgGetTranslation( &translation );
+      PgClearTranslation();
+  
+  #if 0
+--- 707,741 ----
+  
+  /* Handle a focus change of the PtRaw widget */
+      static int
+! gui_ph_handle_focus(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+  {
+!     if (info->reason == Pt_CB_LOST_FOCUS)
+      {
+!      PtRemoveEventHandler(gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+!              gui_ph_handle_mouse, NULL);
+  
+!      gui_mch_mousehide(MOUSE_SHOW);
+      }
+      else
+      {
+!      PtAddEventHandler(gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+!              gui_ph_handle_mouse, NULL);
+      }
+      return Pt_CONTINUE;
+  }
+  
+      static void
+! gui_ph_handle_raw_draw(PtWidget_t *widget, PhTile_t *damage)
+  {
+      PhRect_t *r;
+      PhPoint_t        offset;
+      PhPoint_t        translation;
+  
+!     if (is_ignore_draw == TRUE)
+       return;
+  
+!     PtSuperClassDraw(PtBasic, widget, damage);
+!     PgGetTranslation(&translation);
+      PgClearTranslation();
+  
+  #if 0
+***************
+*** 750,770 ****
+      out_flush();
+  #endif
+  
+!     PtWidgetOffset( widget, &offset );
+!     PhTranslatePoint( &offset, PtWidgetPos( gui.vimTextArea, NULL ) );
+  
+  #if 1
+      /* Redraw individual damage regions */
+!     if( damage->next != NULL )
+       damage = damage->next;
+  
+!     while( damage != NULL )
+      {
+       r = &damage->rect;
+       gui_redraw(
+               r->ul.x - offset.x, r->ul.y - offset.y,
+               r->lr.x - r->ul.x + 1,
+!              r->lr.y - r->ul.y + 1 );
+       damage = damage->next;
+      }
+  #else
+--- 750,770 ----
+      out_flush();
+  #endif
+  
+!     PtWidgetOffset(widget, &offset);
+!     PhTranslatePoint(&offset, PtWidgetPos(gui.vimTextArea, NULL));
+  
+  #if 1
+      /* Redraw individual damage regions */
+!     if (damage->next != NULL)
+       damage = damage->next;
+  
+!     while(damage != NULL)
+      {
+       r = &damage->rect;
+       gui_redraw(
+               r->ul.x - offset.x, r->ul.y - offset.y,
+               r->lr.x - r->ul.x + 1,
+!              r->lr.y - r->ul.y + 1);
+       damage = damage->next;
+      }
+  #else
+***************
+*** 773,796 ****
+      gui_redraw(
+           r->ul.x - offset.x, r->ul.y - offset.y,
+           r->lr.x - r->ul.x + 1,
+!          r->lr.y - r->ul.y + 1 );
+  #endif
+  
+!     PgSetTranslation( &translation, 0 );
+  }
+  
+      static int
+  gui_ph_handle_pulldown_menu(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info )
+  {
+!     if( data != NULL )
+      {
+       vimmenu_T *menu = (vimmenu_T *) data;
+  
+!      PtPositionMenu( menu->submenu_id, NULL );
+!      PtRealizeWidget( menu->submenu_id );
+      }
+  
+      return Pt_CONTINUE;
+--- 773,796 ----
+      gui_redraw(
+           r->ul.x - offset.x, r->ul.y - offset.y,
+           r->lr.x - r->ul.x + 1,
+!          r->lr.y - r->ul.y + 1);
+  #endif
+  
+!     PgSetTranslation(&translation, 0);
+  }
+  
+      static int
+  gui_ph_handle_pulldown_menu(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info)
+  {
+!     if (data != NULL)
+      {
+       vimmenu_T *menu = (vimmenu_T *) data;
+  
+!      PtPositionMenu(menu->submenu_id, NULL);
+!      PtRealizeWidget(menu->submenu_id);
+      }
+  
+      return Pt_CONTINUE;
+*** ../vim-7.3.298/src/version.c       2011-09-07 18:58:24.000000000 +0200
+--- src/version.c      2011-09-07 19:01:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     299,
+  /**/
+
+-- 
+The only way the average employee can speak to an executive is by taking a
+second job as a golf caddie.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.300.patch0 b/vim/patches/vim-7.3.300.patch0
new file mode 100644 (file)
index 0000000..132b14a
--- /dev/null
@@ -0,0 +1,74 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.300
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.300
+Problem:    Python doesn't parse multi-byte argument correctly.
+Solution:   Use "t" instead of "s". (lilydjwg)
+Files:     src/if_py_both.h
+
+
+*** ../vim-7.3.299/src/if_py_both.h    2011-07-07 15:08:53.000000000 +0200
+--- src/if_py_both.h   2011-09-07 19:25:12.000000000 +0200
+***************
+*** 74,80 ****
+      char *str = NULL;
+      int error = ((OutputObject *)(self))->error;
+  
+!     if (!PyArg_ParseTuple(args, "es#", ENC_OPT, &str, &len))
+       return NULL;
+  
+      Py_BEGIN_ALLOW_THREADS
+--- 74,80 ----
+      char *str = NULL;
+      int error = ((OutputObject *)(self))->error;
+  
+!     if (!PyArg_ParseTuple(args, "et#", ENC_OPT, &str, &len))
+       return NULL;
+  
+      Py_BEGIN_ALLOW_THREADS
+***************
+*** 114,120 ****
+       char *str = NULL;
+       PyInt len;
+  
+!      if (!PyArg_Parse(line, "es#", ENC_OPT, &str, &len)) {
+           PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+           Py_DECREF(list);
+           return NULL;
+--- 114,120 ----
+       char *str = NULL;
+       PyInt len;
+  
+!      if (!PyArg_Parse(line, "et#", ENC_OPT, &str, &len)) {
+           PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+           Py_DECREF(list);
+           return NULL;
+*** ../vim-7.3.299/src/version.c       2011-09-07 19:08:57.000000000 +0200
+--- src/version.c      2011-09-07 19:26:05.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     300,
+  /**/
+
+-- 
+A salesperson says:            Translation:
+"backward compatible"          Old technology
+"Premium"                      Overpriced
+"Can't keep it on the shelf"   Unavailable
+"Stands alone"                 Piece of shit
+"Proprietary"                  Incompatible
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.301.patch0 b/vim/patches/vim-7.3.301.patch0
new file mode 100644 (file)
index 0000000..bb52974
--- /dev/null
@@ -0,0 +1,97 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.301
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.301
+Problem:    When 'smartindent' and 'copyindent' are set a Tab is used even
+           though 'expandtab' is set.
+Solution:   Do not insert Tabs. Add a test. (Christian Brabandt)
+Files:     src/misc1.c, src/testdir/test19.in, src/testdir/test19.ok
+
+
+*** ../vim-7.3.300/src/misc1.c 2011-07-27 17:31:42.000000000 +0200
+--- src/misc1.c        2011-09-07 19:37:04.000000000 +0200
+***************
+*** 363,369 ****
+  
+       /* Fill to next tabstop with a tab, if possible */
+       tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
+!      if (todo >= tab_pad)
+       {
+           todo -= tab_pad;
+           ++ind_len;
+--- 363,369 ----
+  
+       /* Fill to next tabstop with a tab, if possible */
+       tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
+!      if (todo >= tab_pad && !curbuf->b_p_et)
+       {
+           todo -= tab_pad;
+           ++ind_len;
+***************
+*** 372,378 ****
+       }
+  
+       /* Add tabs required for indent */
+!      while (todo >= (int)curbuf->b_p_ts)
+       {
+           todo -= (int)curbuf->b_p_ts;
+           ++ind_len;
+--- 372,378 ----
+       }
+  
+       /* Add tabs required for indent */
+!      while (todo >= (int)curbuf->b_p_ts && !curbuf->b_p_et)
+       {
+           todo -= (int)curbuf->b_p_ts;
+           ++ind_len;
+*** ../vim-7.3.300/src/testdir/test19.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test19.in      2011-09-07 19:46:17.000000000 +0200
+***************
+*** 12,17 ****
+--- 12,20 ----
+  0wR                  \b\b\b\e
+  :" Test replacing with Tabs
+  0wR                  \e
++ :" Test that copyindent works with expandtab set
++ :set expandtab smartindent copyindent ts=8 sw=8 sts=8
++ :exe "norm! o{\<cr>x"
+  :?^start?,$w! test.out
+  :qa!
+  ENDTEST
+*** ../vim-7.3.300/src/testdir/test19.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test19.ok      2011-09-07 19:37:04.000000000 +0200
+***************
+*** 5,7 ****
+--- 5,9 ----
+      a cde
+               hi
+  test text
++ {
++         x
+*** ../vim-7.3.300/src/version.c       2011-09-07 19:30:17.000000000 +0200
+--- src/version.c      2011-09-07 19:38:48.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     301,
+  /**/
+
+-- 
+I recommend ordering large cargo containers of paper towels to make up
+whatever budget underruns you have.  Paper products are always useful and they
+have the advantage of being completely flushable if you need to make room in
+the storage area later.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.302.patch0 b/vim/patches/vim-7.3.302.patch0
new file mode 100644 (file)
index 0000000..f8d2c24
--- /dev/null
@@ -0,0 +1,68 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.302
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.302 (after 7.3.301)
+Problem:    Test 19 fails without 'smartindent' and +eval.
+Solution:   Don't use ":exe". Source small.vim.
+Files:     src/testdir/test19.in
+
+
+*** ../vim-7.3.301/src/testdir/test19.in       2011-09-07 19:58:04.000000000 +0200
+--- src/testdir/test19.in      2011-09-08 20:32:33.000000000 +0200
+***************
+*** 1,6 ****
+--- 1,7 ----
+  Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
+  
+  STARTTEST
++ :so small.vim
+  :set smarttab expandtab ts=8 sw=4
+  :" make sure that backspace works, no matter what termcap is used
+  :set t_kD=\16x7f t_kb=\16x08
+***************
+*** 14,21 ****
+  0wR                  \e
+  :" Test that copyindent works with expandtab set
+  :set expandtab smartindent copyindent ts=8 sw=8 sts=8
+! :exe "norm! o{\<cr>x"
+! :?^start?,$w! test.out
+  :qa!
+  ENDTEST
+  
+--- 15,22 ----
+  0wR                  \e
+  :" Test that copyindent works with expandtab set
+  :set expandtab smartindent copyindent ts=8 sw=8 sts=8
+! o{
+! x\e:?^start?,$w! test.out
+  :qa!
+  ENDTEST
+  
+*** ../vim-7.3.301/src/version.c       2011-09-07 19:58:04.000000000 +0200
+--- src/version.c      2011-09-08 23:22:01.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     302,
+  /**/
+
+-- 
+Engineers are always delighted to share wisdom, even in areas in which they
+have no experience whatsoever.  Their logic provides them with inherent
+insight into any field of expertise.  This can be a problem when dealing with
+the illogical people who believe that knowledge can only be derived through
+experience.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.303.patch0 b/vim/patches/vim-7.3.303.patch0
new file mode 100644 (file)
index 0000000..f85bf68
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.303
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.303 (after 7.3.296)
+Problem:    Compilation error.
+Solution:   Correct return type from int to pid_t. (Danek Duvall)
+Files:     src/os_unix.c
+
+
+*** ../vim-7.3.302/src/os_unix.c       2011-09-07 15:04:26.000000000 +0200
+--- src/os_unix.c      2011-09-08 20:47:47.000000000 +0200
+***************
+*** 159,165 ****
+  #else
+  typedef int waitstatus;
+  #endif
+! static int  wait4pid __ARGS((pid_t, waitstatus *));
+  
+  static int  WaitForChar __ARGS((long));
+  #if defined(__BEOS__)
+--- 159,165 ----
+  #else
+  typedef int waitstatus;
+  #endif
+! static pid_t wait4pid __ARGS((pid_t, waitstatus *));
+  
+  static int  WaitForChar __ARGS((long));
+  #if defined(__BEOS__)
+*** ../vim-7.3.302/src/version.c       2011-09-08 23:22:35.000000000 +0200
+--- src/version.c      2011-09-08 23:23:43.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     303,
+  /**/
+
+-- 
+For humans, honesty is a matter of degree.  Engineers are always honest in
+matters of technology and human relationships.  That's why it's a good idea
+to keep engineers away from customers, romantic interests, and other people
+who can't handle the truth.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.304.patch0 b/vim/patches/vim-7.3.304.patch0
new file mode 100644 (file)
index 0000000..6abfe9c
--- /dev/null
@@ -0,0 +1,103 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.304
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.304
+Problem:    Strawberry Perl doesn't work on MS-Windows.
+Solution:   Use xsubpp if needed. (Yasuhiro Matsumoto)
+Files:     src/Make_ming.mak, src/Make_mvc.mak
+
+
+*** ../vim-7.3.303/src/Make_ming.mak   2011-06-19 01:30:01.000000000 +0200
+--- src/Make_ming.mak  2011-09-14 10:44:55.000000000 +0200
+***************
+*** 108,113 ****
+--- 108,120 ----
+  # on NT, it's here:
+  PERLLIB=$(PERL)/lib
+  PERLLIBS=$(PERLLIB)/Core
++ XSUBPP=$(PERLLIB)/ExtUtils/xsubpp
++ XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPP)'")
++ ifeq "$(XSUBPP_EXISTS)" ""
++ XSUBPP=perl $(XSUBPP)
++ else
++ XSUBPP=xsubpp
++ endif
+  endif
+  
+  # uncomment 'LUA' if you want a Lua-enabled version
+***************
+*** 696,702 ****
+  endif
+  
+  if_perl.c: if_perl.xs typemap
+!      perl $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
+            $(PERLLIB)/ExtUtils/typemap if_perl.xs > $@
+  
+  $(OUTDIR)/netbeans.o:        netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
+--- 703,709 ----
+  endif
+  
+  if_perl.c: if_perl.xs typemap
+!      $(XSUBPP) -prototypes -typemap \
+            $(PERLLIB)/ExtUtils/typemap if_perl.xs > $@
+  
+  $(OUTDIR)/netbeans.o:        netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
+*** ../vim-7.3.303/src/Make_mvc.mak    2011-06-12 20:31:25.000000000 +0200
+--- src/Make_mvc.mak   2011-09-14 10:46:08.000000000 +0200
+***************
+*** 785,790 ****
+--- 785,795 ----
+  PERL_INC = /I $(PERL_INCDIR)
+  PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
+  XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
++ !if exist($(XSUBPP)
++ XSUBPP = $(PERL_EXE) $(XSUBPP)
++ !else
++ XSUBPP = xsubpp
++ !endif
+  XSUBPP_TYPEMAP = $(PERL)\lib\ExtUtils\typemap
+  
+  !endif
+***************
+*** 1041,1047 ****
+       $(CC) $(CFLAGS) $(LUA_INC) if_lua.c
+  
+  if_perl.c : if_perl.xs typemap
+!      $(PERL_EXE) $(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) \
+               -typemap typemap if_perl.xs > if_perl.c
+  
+  $(OUTDIR)/if_perl.obj: $(OUTDIR) if_perl.c  $(INCL)
+--- 1046,1052 ----
+       $(CC) $(CFLAGS) $(LUA_INC) if_lua.c
+  
+  if_perl.c : if_perl.xs typemap
+!      $(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) \
+               -typemap typemap if_perl.xs > if_perl.c
+  
+  $(OUTDIR)/if_perl.obj: $(OUTDIR) if_perl.c  $(INCL)
+*** ../vim-7.3.303/src/version.c       2011-09-08 23:24:09.000000000 +0200
+--- src/version.c      2011-09-14 10:47:41.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     304,
+  /**/
+
+-- 
+It's totally unfair to suggest - as many have - that engineers are socially
+inept.  Engineers simply have different objectives when it comes to social
+interaction.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.305.patch0 b/vim/patches/vim-7.3.305.patch0
new file mode 100644 (file)
index 0000000..e70fd59
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.305
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.305
+Problem:    Auto-loading a function while editing the command line causes
+           scrolling up the display.
+Solution:   Don't set msg_scroll when defining a function and the user is not
+           typing. (Yasuhiro Matsumoto)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.304/src/eval.c  2011-08-17 15:23:16.000000000 +0200
+--- src/eval.c 2011-09-14 14:28:21.000000000 +0200
+***************
+*** 20786,20792 ****
+      nesting = 0;
+      for (;;)
+      {
+!      msg_scroll = TRUE;
+       need_wait_return = FALSE;
+       sourcing_lnum_off = sourcing_lnum;
+  
+--- 20786,20793 ----
+      nesting = 0;
+      for (;;)
+      {
+!      if (KeyTyped)
+!          msg_scroll = TRUE;
+       need_wait_return = FALSE;
+       sourcing_lnum_off = sourcing_lnum;
+  
+*** ../vim-7.3.304/src/version.c       2011-09-14 10:49:44.000000000 +0200
+--- src/version.c      2011-09-14 14:30:49.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     305,
+  /**/
+
+-- 
+If someone questions your market projections, simply point out that your
+target market is "People who are nuts" and "People who will buy any damn
+thing".  Nobody is going to tell you there aren't enough of those people
+to go around.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.306.patch0 b/vim/patches/vim-7.3.306.patch0
new file mode 100644 (file)
index 0000000..62bd4cf
--- /dev/null
@@ -0,0 +1,244 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.306
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.306
+Problem:    When closing a window there is a chance that deleting a scrollbar
+           triggers a GUI resize, which uses the window while it is not in a
+           valid state.
+Solution:   Set the buffer pointer to NULL to be able to detect the invalid
+           situation.  Fix a few places that used the buffer pointer
+           incorrectly.
+Files:     src/buffer.c, src/ex_cmds.c, src/term.c, src/window.c
+
+
+*** ../vim-7.3.305/src/buffer.c        2011-05-19 13:40:47.000000000 +0200
+--- src/buffer.c       2011-09-10 13:46:59.000000000 +0200
+***************
+*** 416,421 ****
+--- 416,423 ----
+  #endif
+  
+      buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
++     if (win_valid(win) && win->w_buffer == buf)
++      win->w_buffer = NULL;  /* make sure we don't use the buffer now */
+  
+  #ifdef FEAT_AUTOCMD
+      /* Autocommands may have deleted the buffer. */
+***************
+*** 560,565 ****
+--- 562,571 ----
+  #ifdef FEAT_DIFF
+      diff_buf_delete(buf);        /* Can't use 'diff' for unloaded buffer. */
+  #endif
++ #ifdef FEAT_SYN_HL
++     if (curwin->w_buffer == buf)
++      reset_synblock(curwin);     /* remove any ownsyntax */
++ #endif
+  
+  #ifdef FEAT_FOLDING
+      /* No folds in an empty buffer. */
+***************
+*** 1346,1351 ****
+--- 1352,1361 ----
+  # endif
+  #endif
+      {
++ #ifdef FEAT_SYN_HL
++      if (prevbuf == curwin->w_buffer)
++          reset_synblock(curwin);
++ #endif
+  #ifdef FEAT_WINDOWS
+       if (unload)
+           close_windows(prevbuf, FALSE);
+***************
+*** 1395,1404 ****
+      foldUpdateAll(curwin);   /* update folds (later). */
+  #endif
+  
+- #ifdef FEAT_SYN_HL
+-     reset_synblock(curwin);
+-     curwin->w_s = &(buf->b_s);
+- #endif
+      /* Get the buffer in the current window. */
+      curwin->w_buffer = buf;
+      curbuf = buf;
+--- 1405,1410 ----
+***************
+*** 1409,1414 ****
+--- 1415,1424 ----
+       diff_buf_add(curbuf);
+  #endif
+  
++ #ifdef FEAT_SYN_HL
++     curwin->w_s = &(buf->b_s);
++ #endif
++ 
+      /* Cursor on first line by default. */
+      curwin->w_cursor.lnum = 1;
+      curwin->w_cursor.col = 0;
+*** ../vim-7.3.305/src/ex_cmds.c       2011-07-07 16:20:45.000000000 +0200
+--- src/ex_cmds.c      2011-09-10 13:39:13.000000000 +0200
+***************
+*** 3619,3628 ****
+       */
+      check_arg_idx(curwin);
+  
+- #ifdef FEAT_SYN_HL
+-     reset_synblock(curwin);      /* remove any ownsyntax */
+- #endif
+- 
+  #ifdef FEAT_AUTOCMD
+      if (!auto_buf)
+  #endif
+--- 3619,3624 ----
+*** ../vim-7.3.305/src/term.c  2011-05-10 16:41:13.000000000 +0200
+--- src/term.c 2011-09-14 14:39:39.000000000 +0200
+***************
+*** 3017,3028 ****
+      if (width < 0 || height < 0)    /* just checking... */
+       return;
+  
+!     if (State == HITRETURN || State == SETWSIZE) /* postpone the resizing */
+      {
+       State = SETWSIZE;
+       return;
+      }
+  
+      ++busy;
+  
+  #ifdef AMIGA
+--- 3017,3036 ----
+      if (width < 0 || height < 0)    /* just checking... */
+       return;
+  
+!     if (State == HITRETURN || State == SETWSIZE)
+      {
++      /* postpone the resizing */
+       State = SETWSIZE;
+       return;
+      }
+  
++     /* curwin->w_buffer can be NULL when we are closing a window and the
++      * buffer has already been closed and removing a scrollbar causes a resize
++      * event. Don't resize then, it will happen after entering another buffer.
++      */
++     if (curwin->w_buffer == NULL)
++      return;
++ 
+      ++busy;
+  
+  #ifdef AMIGA
+*** ../vim-7.3.305/src/window.c        2011-01-08 14:45:57.000000000 +0100
+--- src/window.c       2011-09-10 14:04:56.000000000 +0200
+***************
+*** 1226,1240 ****
+      }
+      newp->w_tagstackidx = oldp->w_tagstackidx;
+      newp->w_tagstacklen = oldp->w_tagstacklen;
+! # ifdef FEAT_FOLDING
+      copyFoldingState(oldp, newp);
+! # endif
+  
+      win_init_some(newp, oldp);
+  
+! # ifdef FEAT_SYN_HL
+      check_colorcolumn(newp);
+! # endif
+  }
+  
+  /*
+--- 1226,1240 ----
+      }
+      newp->w_tagstackidx = oldp->w_tagstackidx;
+      newp->w_tagstacklen = oldp->w_tagstacklen;
+! #ifdef FEAT_FOLDING
+      copyFoldingState(oldp, newp);
+! #endif
+  
+      win_init_some(newp, oldp);
+  
+! #ifdef FEAT_SYN_HL
+      check_colorcolumn(newp);
+! #endif
+  }
+  
+  /*
+***************
+*** 2212,2217 ****
+--- 2212,2222 ----
+       out_flush();
+  #endif
+  
++ #ifdef FEAT_SYN_HL
++     /* Free independent synblock before the buffer is freed. */
++     reset_synblock(win);
++ #endif
++ 
+      /*
+       * Close the link to the buffer.
+       */
+***************
+*** 2222,2228 ****
+      if (!win_valid(win) || last_window() || curtab != prev_curtab)
+       return;
+  
+!     /* Free the memory used for the window. */
+      wp = win_free_mem(win, &dir, NULL);
+  
+      /* Make sure curwin isn't invalid.  It can cause severe trouble when
+--- 2227,2234 ----
+      if (!win_valid(win) || last_window() || curtab != prev_curtab)
+       return;
+  
+!     /* Free the memory used for the window and get the window that received
+!      * the screen space. */
+      wp = win_free_mem(win, &dir, NULL);
+  
+      /* Make sure curwin isn't invalid.  It can cause severe trouble when
+***************
+*** 3247,3252 ****
+--- 3253,3261 ----
+      else
+       wp->w_farsi = W_CONV;
+  #endif
++ #ifdef FEAT_SYN_HL
++     wp->w_s = &wp->w_buffer->b_s;
++ #endif
+  }
+  
+  /*
+***************
+*** 4437,4443 ****
+  #endif /* FEAT_GUI */
+  
+  #ifdef FEAT_SYN_HL
+-     reset_synblock(wp);  /* free independent synblock */
+      vim_free(wp->w_p_cc_cols);
+  #endif
+  
+--- 4446,4451 ----
+*** ../vim-7.3.305/src/version.c       2011-09-14 14:33:47.000000000 +0200
+--- src/version.c      2011-09-14 14:35:30.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     306,
+  /**/
+
+-- 
+A consultant is a person who takes your money and annoys your employees while
+tirelessly searching for the best way to extend the consulting contract.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.307.patch0 b/vim/patches/vim-7.3.307.patch0
new file mode 100644 (file)
index 0000000..3fd95e1
--- /dev/null
@@ -0,0 +1,180 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.307
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.307
+Problem:    Python 3 doesn't support slice assignment.
+Solution:   Implement slices. (Brett Overesch, Roland Puntaier)
+Files:     src/if_python3.c
+
+
+*** ../vim-7.3.306/src/if_python3.c    2011-08-28 16:00:14.000000000 +0200
+--- src/if_python3.c   2011-09-14 15:01:26.000000000 +0200
+***************
+*** 855,862 ****
+  
+  static Py_ssize_t BufferLength(PyObject *);
+  static PyObject *BufferItem(PyObject *, Py_ssize_t);
+! static PyObject* BufferSubscript(PyObject *self, PyObject* idx);
+! static Py_ssize_t BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val);
+  
+  
+  /* Line range type - Implementation functions
+--- 855,862 ----
+  
+  static Py_ssize_t BufferLength(PyObject *);
+  static PyObject *BufferItem(PyObject *, Py_ssize_t);
+! static PyObject* BufferSubscript(PyObject *self, PyObject *idx);
+! static Py_ssize_t BufferAsSubscript(PyObject *self, PyObject *idx, PyObject *val);
+  
+  
+  /* Line range type - Implementation functions
+***************
+*** 865,872 ****
+  
+  #define RangeType_Check(obj) ((obj)->ob_base.ob_type == &RangeType)
+  
+! static PyObject* RangeSubscript(PyObject *self, PyObject* idx);
+  static Py_ssize_t RangeAsItem(PyObject *, Py_ssize_t, PyObject *);
+  
+  /* Current objects type - Implementation functions
+   * -----------------------------------------------
+--- 865,873 ----
+  
+  #define RangeType_Check(obj) ((obj)->ob_base.ob_type == &RangeType)
+  
+! static PyObject* RangeSubscript(PyObject *self, PyObject *idx);
+  static Py_ssize_t RangeAsItem(PyObject *, Py_ssize_t, PyObject *);
++ static Py_ssize_t RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val);
+  
+  /* Current objects type - Implementation functions
+   * -----------------------------------------------
+***************
+*** 1035,1041 ****
+             &step, &slicelen) < 0) {
+           return NULL;
+       }
+!      return BufferSlice(self,start,stop);
+      } else {
+       PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+       return NULL;
+--- 1036,1042 ----
+             &step, &slicelen) < 0) {
+           return NULL;
+       }
+!      return BufferSlice(self, start, stop);
+      } else {
+       PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+       return NULL;
+***************
+*** 1084,1090 ****
+  PyMappingMethods RangeAsMapping = {
+      /* mp_length     */ (lenfunc)RangeLength,
+      /* mp_subscript     */ (binaryfunc)RangeSubscript,
+!     /* mp_ass_subscript */ (objobjargproc)0,
+  };
+  
+  /* Line range object - Implementation
+--- 1085,1091 ----
+  PyMappingMethods RangeAsMapping = {
+      /* mp_length     */ (lenfunc)RangeLength,
+      /* mp_subscript     */ (binaryfunc)RangeSubscript,
+!     /* mp_ass_subscript */ (objobjargproc)RangeAsSubscript,
+  };
+  
+  /* Line range object - Implementation
+***************
+*** 1123,1128 ****
+--- 1124,1138 ----
+                   &((RangeObject *)(self))->end);
+  }
+  
++     static Py_ssize_t
++ RangeAsSlice(PyObject *self, Py_ssize_t lo, Py_ssize_t hi, PyObject *val)
++ {
++     return RBAsSlice(((RangeObject *)(self))->buf, lo, hi, val,
++                  ((RangeObject *)(self))->start,
++                  ((RangeObject *)(self))->end,
++                  &((RangeObject *)(self))->end);
++ }
++ 
+      static PyObject *
+  RangeSubscript(PyObject *self, PyObject* idx)
+  {
+***************
+*** 1138,1150 ****
+               &step, &slicelen) < 0) {
+           return NULL;
+       }
+!      return RangeSlice(self,start,stop+1);
+      } else {
+       PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+       return NULL;
+      }
+  }
+  
+  /* Buffer list object - Definitions
+   */
+  
+--- 1148,1183 ----
+               &step, &slicelen) < 0) {
+           return NULL;
+       }
+!      return RangeSlice(self, start, stop);
+      } else {
+       PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+       return NULL;
+      }
+  }
+  
++     static Py_ssize_t
++ RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val)
++ {
++     if (PyLong_Check(idx)) {
++      long n = PyLong_AsLong(idx);
++      return RangeAsItem(self, n, val);
++     } else if (PySlice_Check(idx)) {
++      Py_ssize_t start, stop, step, slicelen;
++ 
++      if (PySlice_GetIndicesEx((PySliceObject *)idx,
++              ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
++              &start, &stop,
++              &step, &slicelen) < 0) {
++          return -1;
++      }
++      return RangeAsSlice(self, start, stop, val);
++     } else {
++      PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
++      return -1;
++     }
++ }
++ 
++ 
+  /* Buffer list object - Definitions
+   */
+  
+*** ../vim-7.3.306/src/version.c       2011-09-14 14:43:21.000000000 +0200
+--- src/version.c      2011-09-14 14:58:16.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     307,
+  /**/
+
+-- 
+The process for understanding customers primarily involves sitting around with
+other marketing people and talking about what you would to if you were dumb
+enough to be a customer.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.308.patch0 b/vim/patches/vim-7.3.308.patch0
new file mode 100644 (file)
index 0000000..36e5de5
--- /dev/null
@@ -0,0 +1,260 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.308
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.308
+Problem:    Writing to 'verbosefile' has problems, e.g. for :highlight.
+Solution:   Do not use a separate verbose_write() function but write with the
+           same code that does redirecting. (Yasuhiro Matsumoto)
+Files:     src/message.c
+
+
+*** ../vim-7.3.307/src/message.c       2011-08-17 20:33:18.000000000 +0200
+--- src/message.c      2011-09-14 15:32:57.000000000 +0200
+***************
+*** 39,45 ****
+  static void msg_screen_putchar __ARGS((int c, int attr));
+  static int  msg_check_screen __ARGS((void));
+  static void redir_write __ARGS((char_u *s, int maxlen));
+- static void verbose_write __ARGS((char_u *s, int maxlen));
+  #ifdef FEAT_CON_DIALOG
+  static char_u *msg_show_console_dialog __ARGS((char_u *message, char_u *buttons, int dfltbutton));
+  static int   confirm_msg_used = FALSE;       /* displaying confirm_msg */
+--- 39,44 ----
+***************
+*** 58,63 ****
+--- 57,65 ----
+  static struct msg_hist *last_msg_hist = NULL;
+  static int msg_hist_len = 0;
+  
++ static FILE *verbose_fd = NULL;
++ static int  verbose_did_open = FALSE;
++ 
+  /*
+   * When writing messages to the screen, there are many different situations.
+   * A number of variables is used to remember the current state:
+***************
+*** 1551,1557 ****
+  #ifdef FEAT_MBYTE
+      if (has_mbyte && !IS_SPECIAL(c))
+      {
+!         int len = (*mb_ptr2len)(str);
+  
+       /* For multi-byte characters check for an illegal byte. */
+       if (has_mbyte && MB_BYTE2LEN(*str) > len)
+--- 1553,1559 ----
+  #ifdef FEAT_MBYTE
+      if (has_mbyte && !IS_SPECIAL(c))
+      {
+!      int len = (*mb_ptr2len)(str);
+  
+       /* For multi-byte characters check for an illegal byte. */
+       if (has_mbyte && MB_BYTE2LEN(*str) > len)
+***************
+*** 1560,1569 ****
+           *sp = str + 1;
+           return buf;
+       }
+!         /* Since 'special' is TRUE the multi-byte character 'c' will be
+!          * processed by get_special_key_name() */
+!         c = (*mb_ptr2char)(str);
+!         *sp = str + len;
+      }
+      else
+  #endif
+--- 1562,1571 ----
+           *sp = str + 1;
+           return buf;
+       }
+!      /* Since 'special' is TRUE the multi-byte character 'c' will be
+!       * processed by get_special_key_name() */
+!      c = (*mb_ptr2char)(str);
+!      *sp = str + len;
+      }
+      else
+  #endif
+***************
+*** 3065,3076 ****
+      if (redir_off)
+       return;
+  
+!     /*
+!      * If 'verbosefile' is set write message in that file.
+!      * Must come before the rest because of updating "msg_col".
+!      */
+!     if (*p_vfile != NUL)
+!      verbose_write(s, maxlen);
+  
+      if (redirecting())
+      {
+--- 3067,3075 ----
+      if (redir_off)
+       return;
+  
+!     /* If 'verbosefile' is set prepare for writing in that file. */
+!     if (*p_vfile != NUL && verbose_fd == NULL)
+!      verbose_open();
+  
+      if (redirecting())
+      {
+***************
+*** 3084,3092 ****
+                   write_reg_contents(redir_reg, (char_u *)" ", -1, TRUE);
+               else if (redir_vname)
+                   var_redir_str((char_u *)" ", -1);
+!              else if (redir_fd)
+  #endif
+                   fputs(" ", redir_fd);
+               ++cur_col;
+           }
+       }
+--- 3083,3094 ----
+                   write_reg_contents(redir_reg, (char_u *)" ", -1, TRUE);
+               else if (redir_vname)
+                   var_redir_str((char_u *)" ", -1);
+!              else
+  #endif
++                  if (redir_fd != NULL)
+                   fputs(" ", redir_fd);
++              if (verbose_fd != NULL)
++                  fputs(" ", verbose_fd);
+               ++cur_col;
+           }
+       }
+***************
+*** 3098,3110 ****
+           var_redir_str(s, maxlen);
+  #endif
+  
+!      /* Adjust the current column */
+       while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen))
+       {
+  #ifdef FEAT_EVAL
+!          if (!redir_reg && !redir_vname && redir_fd != NULL)
+  #endif
+!              putc(*s, redir_fd);
+           if (*s == '\r' || *s == '\n')
+               cur_col = 0;
+           else if (*s == '\t')
+--- 3100,3115 ----
+           var_redir_str(s, maxlen);
+  #endif
+  
+!      /* Write and adjust the current column. */
+       while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen))
+       {
+  #ifdef FEAT_EVAL
+!          if (!redir_reg && !redir_vname)
+  #endif
+!              if (redir_fd != NULL)
+!                  putc(*s, redir_fd);
+!          if (verbose_fd != NULL)
+!              putc(*s, verbose_fd);
+           if (*s == '\r' || *s == '\n')
+               cur_col = 0;
+           else if (*s == '\t')
+***************
+*** 3122,3128 ****
+      int
+  redirecting()
+  {
+!     return redir_fd != NULL
+  #ifdef FEAT_EVAL
+                         || redir_reg || redir_vname
+  #endif
+--- 3127,3133 ----
+      int
+  redirecting()
+  {
+!     return redir_fd != NULL || *p_vfile != NUL
+  #ifdef FEAT_EVAL
+                         || redir_reg || redir_vname
+  #endif
+***************
+*** 3180,3188 ****
+       cmdline_row = msg_row;
+  }
+  
+- static FILE *verbose_fd = NULL;
+- static int  verbose_did_open = FALSE;
+- 
+  /*
+   * Called when 'verbosefile' is set: stop writing to the file.
+   */
+--- 3185,3190 ----
+***************
+*** 3220,3268 ****
+  }
+  
+  /*
+-  * Write a string to 'verbosefile'.
+-  * When "maxlen" is -1 write the whole string, otherwise up to "maxlen" bytes.
+-  */
+-     static void
+- verbose_write(str, maxlen)
+-     char_u   *str;
+-     int              maxlen;
+- {
+-     char_u   *s = str;
+-     static int       cur_col = 0;
+- 
+-     /* Open the file when called the first time. */
+-     if (verbose_fd == NULL)
+-      verbose_open();
+- 
+-     if (verbose_fd != NULL)
+-     {
+-      /* If the string doesn't start with CR or NL, go to msg_col */
+-      if (*s != '\n' && *s != '\r')
+-      {
+-          while (cur_col < msg_col)
+-          {
+-              fputs(" ", verbose_fd);
+-              ++cur_col;
+-          }
+-      }
+- 
+-      /* Adjust the current column */
+-      while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen))
+-      {
+-          putc(*s, verbose_fd);
+-          if (*s == '\r' || *s == '\n')
+-              cur_col = 0;
+-          else if (*s == '\t')
+-              cur_col += (8 - cur_col % 8);
+-          else
+-              ++cur_col;
+-          ++s;
+-      }
+-     }
+- }
+- 
+- /*
+   * Give a warning message (for searching).
+   * Use 'w' highlighting and may repeat the message after redrawing
+   */
+--- 3222,3227 ----
+*** ../vim-7.3.307/src/version.c       2011-09-14 15:01:54.000000000 +0200
+--- src/version.c      2011-09-14 15:38:31.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     308,
+  /**/
+
+-- 
+The average life of an organization chart is six months.  You can safely
+ignore any order from your boss that would take six months to complete.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.309.patch0 b/vim/patches/vim-7.3.309.patch0
new file mode 100644 (file)
index 0000000..f274284
--- /dev/null
@@ -0,0 +1,105 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.309
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.309 (after 7.3.307)
+Problem:    Warnings for pointer types.
+Solution:   Change PySliceObject to PyObject.
+Files:     src/if_python3.c
+
+
+*** ../vim-7.3.308/src/if_python3.c    2011-09-14 15:01:54.000000000 +0200
+--- src/if_python3.c   2011-09-14 15:30:45.000000000 +0200
+***************
+*** 1030,1036 ****
+      } else if (PySlice_Check(idx)) {
+       Py_ssize_t start, stop, step, slicelen;
+  
+!      if (PySlice_GetIndicesEx((PySliceObject *)idx,
+             (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+             &start, &stop,
+             &step, &slicelen) < 0) {
+--- 1030,1036 ----
+      } else if (PySlice_Check(idx)) {
+       Py_ssize_t start, stop, step, slicelen;
+  
+!      if (PySlice_GetIndicesEx((PyObject *)idx,
+             (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+             &start, &stop,
+             &step, &slicelen) < 0) {
+***************
+*** 1054,1060 ****
+      } else if (PySlice_Check(idx)) {
+       Py_ssize_t start, stop, step, slicelen;
+  
+!      if (PySlice_GetIndicesEx((PySliceObject *)idx,
+             (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+             &start, &stop,
+             &step, &slicelen) < 0) {
+--- 1054,1060 ----
+      } else if (PySlice_Check(idx)) {
+       Py_ssize_t start, stop, step, slicelen;
+  
+!      if (PySlice_GetIndicesEx((PyObject *)idx,
+             (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+             &start, &stop,
+             &step, &slicelen) < 0) {
+***************
+*** 1142,1148 ****
+      } else if (PySlice_Check(idx)) {
+       Py_ssize_t start, stop, step, slicelen;
+  
+!      if (PySlice_GetIndicesEx((PySliceObject *)idx,
+               ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+               &start, &stop,
+               &step, &slicelen) < 0) {
+--- 1142,1148 ----
+      } else if (PySlice_Check(idx)) {
+       Py_ssize_t start, stop, step, slicelen;
+  
+!      if (PySlice_GetIndicesEx((PyObject *)idx,
+               ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+               &start, &stop,
+               &step, &slicelen) < 0) {
+***************
+*** 1164,1170 ****
+      } else if (PySlice_Check(idx)) {
+       Py_ssize_t start, stop, step, slicelen;
+  
+!      if (PySlice_GetIndicesEx((PySliceObject *)idx,
+               ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+               &start, &stop,
+               &step, &slicelen) < 0) {
+--- 1164,1170 ----
+      } else if (PySlice_Check(idx)) {
+       Py_ssize_t start, stop, step, slicelen;
+  
+!      if (PySlice_GetIndicesEx((PyObject *)idx,
+               ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+               &start, &stop,
+               &step, &slicelen) < 0) {
+*** ../vim-7.3.308/src/version.c       2011-09-14 15:39:26.000000000 +0200
+--- src/version.c      2011-09-14 15:40:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     309,
+  /**/
+
+-- 
+Never enter the boss's office unless it's absolutely necessary.  Every boss
+saves one corner of the desk for useless assignments that are doled out like
+Halloween candy to each visitor.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.310.patch0 b/vim/patches/vim-7.3.310.patch0
new file mode 100644 (file)
index 0000000..e3ffa5a
--- /dev/null
@@ -0,0 +1,3524 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.310
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.310
+Problem:    Code not following Vim style.
+Solution:   Fix the style. (Elias Diem)
+Files:     src/gui_photon.c
+
+
+*** ../vim-7.3.309/src/gui_photon.c    2011-09-07 19:08:57.000000000 +0200
+--- src/gui_photon.c   2011-09-14 16:01:55.000000000 +0200
+***************
+*** 477,483 ****
+       }
+  #endif
+  
+!      for(i = 0; special_keys[i].key_sym != 0; i++)
+       {
+           if (special_keys[i].key_sym == key->key_cap)
+           {
+--- 477,483 ----
+       }
+  #endif
+  
+!      for (i = 0; special_keys[i].key_sym != 0; i++)
+       {
+           if (special_keys[i].key_sym == key->key_cap)
+           {
+***************
+*** 758,764 ****
+      if (damage->next != NULL)
+       damage = damage->next;
+  
+!     while(damage != NULL)
+      {
+       r = &damage->rect;
+       gui_redraw(
+--- 758,764 ----
+      if (damage->next != NULL)
+       damage = damage->next;
+  
+!     while (damage != NULL)
+      {
+       r = &damage->rect;
+       gui_redraw(
+***************
+*** 798,809 ****
+  
+  /* This is used for pulldown/popup menus and also toolbar buttons */
+      static int
+! gui_ph_handle_menu( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+  {
+!     if( data != NULL )
+      {
+       vimmenu_T *menu = (vimmenu_T *) data;
+!      gui_menu_cb( menu );
+      }
+      return Pt_CONTINUE;
+  }
+--- 798,809 ----
+  
+  /* This is used for pulldown/popup menus and also toolbar buttons */
+      static int
+! gui_ph_handle_menu(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+  {
+!     if (data != NULL)
+      {
+       vimmenu_T *menu = (vimmenu_T *) data;
+!      gui_menu_cb(menu);
+      }
+      return Pt_CONTINUE;
+  }
+***************
+*** 813,821 ****
+  gui_ph_handle_menu_unrealized(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info )
+  {
+!     PtGiveFocus( gui.vimTextArea, NULL );
+      return Pt_CONTINUE;
+  }
+  
+--- 813,821 ----
+  gui_ph_handle_menu_unrealized(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info)
+  {
+!     PtGiveFocus(gui.vimTextArea, NULL);
+      return Pt_CONTINUE;
+  }
+  
+***************
+*** 823,831 ****
+  gui_ph_handle_window_open(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info )
+  {
+!     gui_set_shellsize( FALSE, TRUE, RESIZE_BOTH );
+      return Pt_CONTINUE;
+  }
+  
+--- 823,831 ----
+  gui_ph_handle_window_open(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info)
+  {
+!     gui_set_shellsize(FALSE, TRUE, RESIZE_BOTH);
+      return Pt_CONTINUE;
+  }
+  
+***************
+*** 836,909 ****
+  
+  /* TODO: Set a clipping rect? */
+      static void
+! gui_ph_draw_start( void )
+  {
+      PhGC_t *gc;
+  
+      gc = PgGetGC();
+!     PgSetRegion( PtWidgetRid( PtFindDisjoint( gui.vimTextArea ) ) );
+!     PgClearClippingsCx( gc );
+!     PgClearTranslationCx( gc );
+  
+!     PtWidgetOffset( gui.vimTextArea, &gui_ph_raw_offset );
+!     PhTranslatePoint( &gui_ph_raw_offset, PtWidgetPos( gui.vimTextArea, NULL ) );
+  
+!     PgSetTranslation( &gui_ph_raw_offset, Pg_RELATIVE );
+  }
+  
+      static void
+! gui_ph_draw_end( void )
+  {
+      gui_ph_raw_offset.x = -gui_ph_raw_offset.x;
+      gui_ph_raw_offset.y = -gui_ph_raw_offset.y;
+!     PgSetTranslation( &gui_ph_raw_offset, Pg_RELATIVE );
+  }
+  
+  #ifdef USE_PANEL_GROUP
+      static vimmenu_T *
+! gui_ph_find_buffer_item( char_u *name )
+  {
+      vimmenu_T *top_level = root_menu;
+      vimmenu_T *items = NULL;
+  
+!     while( top_level != NULL &&
+!          ( STRCMP( top_level->dname, "Buffers" ) != 0 ) )
+       top_level = top_level->next;
+  
+!     if( top_level != NULL )
+      {
+       items = top_level->children;
+  
+!      while( items != NULL &&
+!              ( STRCMP( items->dname, name ) != 0 ) )
+           items = items->next;
+      }
+      return items;
+  }
+  
+      static void
+! gui_ph_pg_set_buffer_num( int_u buf_num )
+  {
+      int i;
+      char search[16];
+      char *mark;
+  
+!     if( gui.vimTextArea == NULL || buf_num == 0 )
+       return;
+  
+      search[0] = '(';
+!     ultoa( buf_num, &search[1], 10 );
+!     STRCAT( search, ")" );
+  
+!     for( i = 0; i < num_panels; i++ )
+      {
+       /* find the last "(" in the panel title and see if the buffer
+        * number in the title matches the one we're looking for */
+!      mark = STRRCHR( panel_titles[ i ], '(' );
+!      if( mark != NULL && STRCMP( mark, search ) == 0 )
+       {
+!          PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_CURRENT_INDEX,
+!                  i, 0 );
+       }
+      }
+  }
+--- 836,909 ----
+  
+  /* TODO: Set a clipping rect? */
+      static void
+! gui_ph_draw_start(void)
+  {
+      PhGC_t *gc;
+  
+      gc = PgGetGC();
+!     PgSetRegion(PtWidgetRid(PtFindDisjoint(gui.vimTextArea)));
+!     PgClearClippingsCx(gc);
+!     PgClearTranslationCx(gc);
+  
+!     PtWidgetOffset(gui.vimTextArea, &gui_ph_raw_offset);
+!     PhTranslatePoint(&gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
+  
+!     PgSetTranslation(&gui_ph_raw_offset, Pg_RELATIVE);
+  }
+  
+      static void
+! gui_ph_draw_end(void)
+  {
+      gui_ph_raw_offset.x = -gui_ph_raw_offset.x;
+      gui_ph_raw_offset.y = -gui_ph_raw_offset.y;
+!     PgSetTranslation(&gui_ph_raw_offset, Pg_RELATIVE);
+  }
+  
+  #ifdef USE_PANEL_GROUP
+      static vimmenu_T *
+! gui_ph_find_buffer_item(char_u *name)
+  {
+      vimmenu_T *top_level = root_menu;
+      vimmenu_T *items = NULL;
+  
+!     while (top_level != NULL &&
+!          (STRCMP(top_level->dname, "Buffers") != 0))
+       top_level = top_level->next;
+  
+!     if (top_level != NULL)
+      {
+       items = top_level->children;
+  
+!      while (items != NULL &&
+!              (STRCMP(items->dname, name) != 0))
+           items = items->next;
+      }
+      return items;
+  }
+  
+      static void
+! gui_ph_pg_set_buffer_num(int_u buf_num)
+  {
+      int i;
+      char search[16];
+      char *mark;
+  
+!     if (gui.vimTextArea == NULL || buf_num == 0)
+       return;
+  
+      search[0] = '(';
+!     ultoa(buf_num, &search[1], 10);
+!     STRCAT(search, ")");
+  
+!     for (i = 0; i < num_panels; i++)
+      {
+       /* find the last "(" in the panel title and see if the buffer
+        * number in the title matches the one we're looking for */
+!      mark = STRRCHR(panel_titles[ i ], '(');
+!      if (mark != NULL && STRCMP(mark, search) == 0)
+       {
+!          PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_CURRENT_INDEX,
+!                  i, 0);
+       }
+      }
+  }
+***************
+*** 912,930 ****
+  gui_ph_handle_pg_change(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info )
+  {
+      vimmenu_T *menu;
+      PtPanelGroupCallback_t *panel;
+  
+!     if( info->event != NULL )
+      {
+       panel = info->cbdata;
+!      if( panel->new_panel != NULL )
+       {
+!          menu = gui_ph_find_buffer_item( panel->new_panel );
+!          if( menu )
+!              gui_menu_cb( menu );
+       }
+      }
+      return Pt_CONTINUE;
+--- 912,930 ----
+  gui_ph_handle_pg_change(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info)
+  {
+      vimmenu_T *menu;
+      PtPanelGroupCallback_t *panel;
+  
+!     if (info->event != NULL)
+      {
+       panel = info->cbdata;
+!      if (panel->new_panel != NULL)
+       {
+!          menu = gui_ph_find_buffer_item(panel->new_panel);
+!          if (menu)
+!              gui_menu_cb(menu);
+       }
+      }
+      return Pt_CONTINUE;
+***************
+*** 935,951 ****
+       short *top,
+       short *bottom,
+       short *left,
+!      short *right )
+  {
+      unsigned short abs_raw_x, abs_raw_y, abs_panel_x, abs_panel_y;
+      const unsigned short *margin_top, *margin_bottom;
+      const unsigned short *margin_left, *margin_right;
+  
+!     PtGetAbsPosition( gui.vimTextArea, &abs_raw_x, &abs_raw_y );
+!     PtGetAbsPosition( gui.vimPanelGroup, &abs_panel_x, &abs_panel_y );
+  
+!     PtGetResource( gui.vimPanelGroup, Pt_ARG_MARGIN_RIGHT, &margin_right, 0 );
+!     PtGetResource( gui.vimPanelGroup, Pt_ARG_MARGIN_BOTTOM, &margin_bottom, 0 );
+  
+      abs_raw_x -= abs_panel_x;
+      abs_raw_y -= abs_panel_y;
+--- 935,951 ----
+       short *top,
+       short *bottom,
+       short *left,
+!      short *right)
+  {
+      unsigned short abs_raw_x, abs_raw_y, abs_panel_x, abs_panel_y;
+      const unsigned short *margin_top, *margin_bottom;
+      const unsigned short *margin_left, *margin_right;
+  
+!     PtGetAbsPosition(gui.vimTextArea, &abs_raw_x, &abs_raw_y);
+!     PtGetAbsPosition(gui.vimPanelGroup, &abs_panel_x, &abs_panel_y);
+  
+!     PtGetResource(gui.vimPanelGroup, Pt_ARG_MARGIN_RIGHT, &margin_right, 0);
+!     PtGetResource(gui.vimPanelGroup, Pt_ARG_MARGIN_BOTTOM, &margin_bottom, 0);
+  
+      abs_raw_x -= abs_panel_x;
+      abs_raw_y -= abs_panel_y;
+***************
+*** 959,979 ****
+  
+  /* Used for the tabs for PtPanelGroup */
+      static int
+! gui_ph_is_buffer_item( vimmenu_T *menu, vimmenu_T *parent )
+  {
+      char *mark;
+  
+!     if( STRCMP( parent->dname, "Buffers" ) == 0 )
+      {
+       /* Look for '(' digits ')' */
+!      mark = vim_strchr( menu->dname, '(' );
+!      if( mark != NULL )
+       {
+           mark++;
+!          while( isdigit( *mark ) )
+               mark++;
+  
+!          if( *mark == ')' )
+               return TRUE;
+       }
+      }
+--- 959,979 ----
+  
+  /* Used for the tabs for PtPanelGroup */
+      static int
+! gui_ph_is_buffer_item(vimmenu_T *menu, vimmenu_T *parent)
+  {
+      char *mark;
+  
+!     if (STRCMP(parent->dname, "Buffers") == 0)
+      {
+       /* Look for '(' digits ')' */
+!      mark = vim_strchr(menu->dname, '(');
+!      if (mark != NULL)
+       {
+           mark++;
+!          while (isdigit(*mark))
+               mark++;
+  
+!          if (*mark == ')')
+               return TRUE;
+       }
+      }
+***************
+*** 981,1043 ****
+  }
+  
+      static void
+! gui_ph_pg_add_buffer(char *name )
+  {
+      char **new_titles = NULL;
+  
+!     new_titles = (char **) alloc( ( num_panels + 1 ) * sizeof( char ** ) );
+!     if( new_titles != NULL )
+      {
+!      if( num_panels > 0 )
+!          memcpy( new_titles, panel_titles, num_panels * sizeof( char ** ) );
+  
+       new_titles[ num_panels++ ] = name;
+  
+!      PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
+!              num_panels );
+  
+!      vim_free( panel_titles );
+       panel_titles = new_titles;
+      }
+  }
+  
+      static void
+! gui_ph_pg_remove_buffer( char *name )
+  {
+      int i;
+      char **new_titles = NULL;
+  
+      /* If there is only 1 panel, we just use the temporary place holder */
+!     if( num_panels > 1 )
+      {
+!      new_titles = (char **) alloc( ( num_panels - 1 ) * sizeof( char ** ) );
+!      if( new_titles != NULL )
+       {
+           char **s = new_titles;
+           /* Copy all the titles except the one we're removing */
+!          for( i = 0; i < num_panels; i++ )
+           {
+!              if( STRCMP( panel_titles[ i ], name ) != 0 )
+               {
+                   *s++ = panel_titles[ i ];
+               }
+           }
+           num_panels--;
+  
+!          PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
+!                  num_panels );
+  
+!          vim_free( panel_titles );
+           panel_titles = new_titles;
+       }
+      }
+      else
+      {
+       num_panels--;
+!      PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, &empty_title,
+!              1 );
+  
+!      vim_free( panel_titles );
+       panel_titles = NULL;
+      }
+  }
+--- 981,1043 ----
+  }
+  
+      static void
+! gui_ph_pg_add_buffer(char *name)
+  {
+      char **new_titles = NULL;
+  
+!     new_titles = (char **) alloc((num_panels + 1) * sizeof(char **));
+!     if (new_titles != NULL)
+      {
+!      if (num_panels > 0)
+!          memcpy(new_titles, panel_titles, num_panels * sizeof(char **));
+  
+       new_titles[ num_panels++ ] = name;
+  
+!      PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
+!              num_panels);
+  
+!      vim_free(panel_titles);
+       panel_titles = new_titles;
+      }
+  }
+  
+      static void
+! gui_ph_pg_remove_buffer(char *name)
+  {
+      int i;
+      char **new_titles = NULL;
+  
+      /* If there is only 1 panel, we just use the temporary place holder */
+!     if (num_panels > 1)
+      {
+!      new_titles = (char **) alloc((num_panels - 1) * sizeof(char **));
+!      if (new_titles != NULL)
+       {
+           char **s = new_titles;
+           /* Copy all the titles except the one we're removing */
+!          for (i = 0; i < num_panels; i++)
+           {
+!              if (STRCMP(panel_titles[ i ], name) != 0)
+               {
+                   *s++ = panel_titles[ i ];
+               }
+           }
+           num_panels--;
+  
+!          PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
+!                  num_panels);
+  
+!          vim_free(panel_titles);
+           panel_titles = new_titles;
+       }
+      }
+      else
+      {
+       num_panels--;
+!      PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, &empty_title,
+!              1);
+  
+!      vim_free(panel_titles);
+       panel_titles = NULL;
+      }
+  }
+***************
+*** 1047,1060 ****
+  gui_ph_handle_buffer_remove(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info )
+  {
+      vimmenu_T *menu;
+  
+!     if( data != NULL )
+      {
+       menu = (vimmenu_T *) data;
+!      gui_ph_pg_remove_buffer( menu->dname );
+      }
+  
+      return Pt_CONTINUE;
+--- 1047,1060 ----
+  gui_ph_handle_buffer_remove(
+       PtWidget_t *widget,
+       void *data,
+!      PtCallbackInfo_t *info)
+  {
+      vimmenu_T *menu;
+  
+!     if (data != NULL)
+      {
+       menu = (vimmenu_T *) data;
+!      gui_ph_pg_remove_buffer(menu->dname);
+      }
+  
+      return Pt_CONTINUE;
+***************
+*** 1062,1074 ****
+  #endif
+  
+      static int
+! gui_ph_pane_resize( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+  {
+!     if( PtWidgetIsRealized( widget ) )
+      {
+       is_ignore_draw = TRUE;
+!      PtStartFlux( gui.vimContainer );
+!      PtContainerHold( gui.vimContainer );
+      }
+  
+      return Pt_CONTINUE;
+--- 1062,1074 ----
+  #endif
+  
+      static int
+! gui_ph_pane_resize(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+  {
+!     if (PtWidgetIsRealized(widget))
+      {
+       is_ignore_draw = TRUE;
+!      PtStartFlux(gui.vimContainer);
+!      PtContainerHold(gui.vimContainer);
+      }
+  
+      return Pt_CONTINUE;
+***************
+*** 1078,1084 ****
+  
+  #ifdef FEAT_MBYTE
+      void
+! gui_ph_encoding_changed( int new_encoding )
+  {
+      /* Default encoding is latin1 */
+      char *charset = "latin1";
+--- 1078,1084 ----
+  
+  #ifdef FEAT_MBYTE
+      void
+! gui_ph_encoding_changed(int new_encoding)
+  {
+      /* Default encoding is latin1 */
+      char *charset = "latin1";
+***************
+*** 1094,1106 ****
+       { DBCS_CHS, "gb" }
+      };
+  
+!     for( i = 0; i < ARRAY_LENGTH( charsets ); i++ )
+      {
+!      if( new_encoding == charsets[ i ].encoding )
+           charset = charsets[ i ].name;
+      }
+  
+!     charset_translate = PxTranslateSet( charset_translate, charset );
+  }
+  #endif
+  
+--- 1094,1106 ----
+       { DBCS_CHS, "gb" }
+      };
+  
+!     for (i = 0; i < ARRAY_LENGTH(charsets); i++)
+      {
+!      if (new_encoding == charsets[ i ].encoding)
+           charset = charsets[ i ].name;
+      }
+  
+!     charset_translate = PxTranslateSet(charset_translate, charset);
+  }
+  #endif
+  
+***************
+*** 1112,1118 ****
+      int          *argc;
+      char    **argv;
+  {
+!     PtInit( NULL );
+  }
+  
+      int
+--- 1112,1118 ----
+      int          *argc;
+      char    **argv;
+  {
+!     PtInit(NULL);
+  }
+  
+      int
+***************
+*** 1124,1213 ****
+      PhDim_t  window_size = {100, 100}; /* Arbitrary values */
+      PhPoint_t        pos = {0, 0};
+  
+!     gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
+!     if( gui.event_buffer == NULL )
+       return FAIL;
+  
+      /* Get a translation so we can convert from ISO Latin-1 to UTF */
+!     charset_translate = PxTranslateSet( NULL, "latin1" );
+  
+      /* The +2 is for the 1 pixel dark line on each side */
+      gui.border_offset = gui.border_width = GUI_PH_MARGIN + 2;
+  
+      /* Handle close events ourselves */
+!     PtSetArg( &args[ n++ ], Pt_ARG_WINDOW_MANAGED_FLAGS, Pt_FALSE, Ph_WM_CLOSE );
+!     PtSetArg( &args[ n++ ], Pt_ARG_WINDOW_NOTIFY_FLAGS, Pt_TRUE,
+!          Ph_WM_CLOSE | Ph_WM_RESIZE | Ph_WM_FOCUS );
+!     PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
+!     gui.vimWindow = PtCreateWidget( PtWindow, NULL, n, args );
+!     if( gui.vimWindow == NULL )
+       return FAIL;
+  
+!     PtAddCallback( gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL );
+!     PtAddCallback( gui.vimWindow, Pt_CB_WINDOW_OPENING,
+!          gui_ph_handle_window_open, NULL );
+  
+      n = 0;
+!     PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_ALL, Pt_IS_ANCHORED );
+!     PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
+!     PtSetArg( &args[ n++ ], Pt_ARG_POS, &pos, 0 );
+  
+  #ifdef USE_PANEL_GROUP
+      /* Put in a temprary place holder title */
+!     PtSetArg( &args[ n++ ], Pt_ARG_PG_PANEL_TITLES, &empty_title, 1 );
+  
+!     gui.vimPanelGroup = PtCreateWidget( PtPanelGroup, gui.vimWindow, n, args );
+!     if( gui.vimPanelGroup == NULL )
+       return FAIL;
+  
+!     PtAddCallback( gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
+!          gui_ph_handle_pg_change, NULL );
+  #else
+      /* Turn off all edge decorations */
+!     PtSetArg( &args[ n++ ], Pt_ARG_BASIC_FLAGS, Pt_FALSE, Pt_ALL );
+!     PtSetArg( &args[ n++ ], Pt_ARG_BEVEL_WIDTH, 0, 0 );
+!     PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_WIDTH, 0, 0 );
+!     PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 0, 0 );
+!     PtSetArg( &args[ n++ ], Pt_ARG_CONTAINER_FLAGS, Pt_TRUE, Pt_AUTO_EXTENT );
+  
+!     gui.vimContainer = PtCreateWidget( PtPane, gui.vimWindow, n, args );
+!     if( gui.vimContainer == NULL )
+       return FAIL;
+  
+!     PtAddCallback( gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL );
+  #endif
+  
+      /* Size for the text area is set in gui_mch_set_text_area_pos */
+      n = 0;
+  
+!     PtSetArg( &args[ n++ ], Pt_ARG_RAW_DRAW_F, gui_ph_handle_raw_draw, 1 );
+!     PtSetArg( &args[ n++ ], Pt_ARG_BEVEL_WIDTH, GUI_PH_MARGIN, 0 );
+      /*
+       * Using focus render also causes the whole widget to be redrawn
+       * whenever it changes focus, which is very annoying :p
+       */
+!     PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE,
+!          Pt_GETS_FOCUS | Pt_HIGHLIGHTED );
+  #ifndef FEAT_MOUSESHAPE
+!     PtSetArg( &args[ n++ ], Pt_ARG_CURSOR_TYPE, GUI_PH_MOUSE_TYPE, 0 );
+!     PtSetArg( &args[ n++ ], Pt_ARG_CURSOR_COLOR, gui_ph_mouse_color, 0 );
+  #endif
+  
+!     gui.vimTextArea = PtCreateWidget( PtRaw, Pt_DFLT_PARENT, n, args );
+!     if( gui.vimTextArea == NULL)
+       return FAIL;
+  
+      /* TODO: use PtAddEventHandlers instead? */
+      /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
+!     PtAddEventHandler( gui.vimTextArea,
+           Ph_EV_BUT_PRESS | Ph_EV_BUT_RELEASE | Ph_EV_PTR_MOTION_BUTTON,
+!          gui_ph_handle_mouse, NULL );
+!     PtAddEventHandler( gui.vimTextArea, Ph_EV_KEY,
+!          gui_ph_handle_keyboard, NULL );
+!     PtAddCallback( gui.vimTextArea, Pt_CB_GOT_FOCUS,
+!          gui_ph_handle_focus, NULL );
+!     PtAddCallback( gui.vimTextArea, Pt_CB_LOST_FOCUS,
+!          gui_ph_handle_focus, NULL );
+  
+      /*
+       * Now that the text area widget has been created, set up the colours,
+--- 1124,1213 ----
+      PhDim_t  window_size = {100, 100}; /* Arbitrary values */
+      PhPoint_t        pos = {0, 0};
+  
+!     gui.event_buffer = (PhEvent_t *) alloc(EVENT_BUFFER_SIZE);
+!     if (gui.event_buffer == NULL)
+       return FAIL;
+  
+      /* Get a translation so we can convert from ISO Latin-1 to UTF */
+!     charset_translate = PxTranslateSet(NULL, "latin1");
+  
+      /* The +2 is for the 1 pixel dark line on each side */
+      gui.border_offset = gui.border_width = GUI_PH_MARGIN + 2;
+  
+      /* Handle close events ourselves */
+!     PtSetArg(&args[ n++ ], Pt_ARG_WINDOW_MANAGED_FLAGS, Pt_FALSE, Ph_WM_CLOSE);
+!     PtSetArg(&args[ n++ ], Pt_ARG_WINDOW_NOTIFY_FLAGS, Pt_TRUE,
+!          Ph_WM_CLOSE | Ph_WM_RESIZE | Ph_WM_FOCUS);
+!     PtSetArg(&args[ n++ ], Pt_ARG_DIM, &window_size, 0);
+!     gui.vimWindow = PtCreateWidget(PtWindow, NULL, n, args);
+!     if (gui.vimWindow == NULL)
+       return FAIL;
+  
+!     PtAddCallback(gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL);
+!     PtAddCallback(gui.vimWindow, Pt_CB_WINDOW_OPENING,
+!          gui_ph_handle_window_open, NULL);
+  
+      n = 0;
+!     PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_ALL, Pt_IS_ANCHORED);
+!     PtSetArg(&args[ n++ ], Pt_ARG_DIM, &window_size, 0);
+!     PtSetArg(&args[ n++ ], Pt_ARG_POS, &pos, 0);
+  
+  #ifdef USE_PANEL_GROUP
+      /* Put in a temprary place holder title */
+!     PtSetArg(&args[ n++ ], Pt_ARG_PG_PANEL_TITLES, &empty_title, 1);
+  
+!     gui.vimPanelGroup = PtCreateWidget(PtPanelGroup, gui.vimWindow, n, args);
+!     if (gui.vimPanelGroup == NULL)
+       return FAIL;
+  
+!     PtAddCallback(gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
+!          gui_ph_handle_pg_change, NULL);
+  #else
+      /* Turn off all edge decorations */
+!     PtSetArg(&args[ n++ ], Pt_ARG_BASIC_FLAGS, Pt_FALSE, Pt_ALL);
+!     PtSetArg(&args[ n++ ], Pt_ARG_BEVEL_WIDTH, 0, 0);
+!     PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_WIDTH, 0, 0);
+!     PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 0, 0);
+!     PtSetArg(&args[ n++ ], Pt_ARG_CONTAINER_FLAGS, Pt_TRUE, Pt_AUTO_EXTENT);
+  
+!     gui.vimContainer = PtCreateWidget(PtPane, gui.vimWindow, n, args);
+!     if (gui.vimContainer == NULL)
+       return FAIL;
+  
+!     PtAddCallback(gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL);
+  #endif
+  
+      /* Size for the text area is set in gui_mch_set_text_area_pos */
+      n = 0;
+  
+!     PtSetArg(&args[ n++ ], Pt_ARG_RAW_DRAW_F, gui_ph_handle_raw_draw, 1);
+!     PtSetArg(&args[ n++ ], Pt_ARG_BEVEL_WIDTH, GUI_PH_MARGIN, 0);
+      /*
+       * Using focus render also causes the whole widget to be redrawn
+       * whenever it changes focus, which is very annoying :p
+       */
+!     PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE,
+!          Pt_GETS_FOCUS | Pt_HIGHLIGHTED);
+  #ifndef FEAT_MOUSESHAPE
+!     PtSetArg(&args[ n++ ], Pt_ARG_CURSOR_TYPE, GUI_PH_MOUSE_TYPE, 0);
+!     PtSetArg(&args[ n++ ], Pt_ARG_CURSOR_COLOR, gui_ph_mouse_color, 0);
+  #endif
+  
+!     gui.vimTextArea = PtCreateWidget(PtRaw, Pt_DFLT_PARENT, n, args);
+!     if (gui.vimTextArea == NULL)
+       return FAIL;
+  
+      /* TODO: use PtAddEventHandlers instead? */
+      /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
+!     PtAddEventHandler(gui.vimTextArea,
+           Ph_EV_BUT_PRESS | Ph_EV_BUT_RELEASE | Ph_EV_PTR_MOTION_BUTTON,
+!          gui_ph_handle_mouse, NULL);
+!     PtAddEventHandler(gui.vimTextArea, Ph_EV_KEY,
+!          gui_ph_handle_keyboard, NULL);
+!     PtAddCallback(gui.vimTextArea, Pt_CB_GOT_FOCUS,
+!          gui_ph_handle_focus, NULL);
+!     PtAddCallback(gui.vimTextArea, Pt_CB_LOST_FOCUS,
+!          gui_ph_handle_focus, NULL);
+  
+      /*
+       * Now that the text area widget has been created, set up the colours,
+***************
+*** 1218,1278 ****
+       * Create the two timers, not as accurate as using the kernel timer
+       * functions, but good enough
+       */
+!     gui_ph_timer_cursor  = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+!     if( gui_ph_timer_cursor == NULL )
+       return FAIL;
+  
+!     gui_ph_timer_timeout = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+!     if( gui_ph_timer_timeout == NULL )
+       return FAIL;
+  
+!     PtAddCallback( gui_ph_timer_cursor,  Pt_CB_TIMER_ACTIVATE,
+           gui_ph_handle_timer_cursor, NULL);
+!     PtAddCallback( gui_ph_timer_timeout, Pt_CB_TIMER_ACTIVATE,
+           gui_ph_handle_timer_timeout, NULL);
+  
+  #ifdef FEAT_MENU
+      n = 0;
+!     PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0 );
+!     PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_LEFT_RIGHT,
+!          Pt_IS_ANCHORED );
+!     gui.vimToolBarGroup = PtCreateWidget( PtToolbarGroup, gui.vimWindow,
+!          n, args );
+!     if( gui.vimToolBarGroup == NULL )
+       return FAIL;
+  
+!     PtAddCallback( gui.vimToolBarGroup, Pt_CB_RESIZE,
+!          gui_ph_handle_menu_resize, NULL );
+  
+      n = 0;
+      flags = 0;
+!     PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0 );
+!     if( ! vim_strchr( p_go, GO_MENUS ) )
+      {
+       flags |= Pt_DELAY_REALIZE;
+!      PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE, flags );
+      }
+!     gui.vimMenuBar = PtCreateWidget( PtMenuBar, gui.vimToolBarGroup, n, args );
+!     if( gui.vimMenuBar == NULL )
+       return FAIL;
+  
+  # ifdef FEAT_TOOLBAR
+      n = 0;
+  
+!     PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
+!          Pt_ANCHOR_LEFT_RIGHT |Pt_TOP_ANCHORED_TOP, Pt_IS_ANCHORED );
+!     PtSetArg( &args[ n++ ], Pt_ARG_RESIZE_FLAGS, Pt_TRUE,
+!          Pt_RESIZE_Y_AS_REQUIRED );
+!     PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0 );
+  
+      flags = Pt_GETS_FOCUS;
+!     if( ! vim_strchr( p_go, GO_TOOLBAR ) )
+       flags |= Pt_DELAY_REALIZE;
+  
+!     PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE, flags );
+  
+!     gui.vimToolBar = PtCreateWidget( PtToolbar, gui.vimToolBarGroup, n, args );
+!     if( gui.vimToolBar == NULL )
+       return FAIL;
+  
+      /*
+--- 1218,1278 ----
+       * Create the two timers, not as accurate as using the kernel timer
+       * functions, but good enough
+       */
+!     gui_ph_timer_cursor  = PtCreateWidget(PtTimer, gui.vimWindow, 0, NULL);
+!     if (gui_ph_timer_cursor == NULL)
+       return FAIL;
+  
+!     gui_ph_timer_timeout = PtCreateWidget(PtTimer, gui.vimWindow, 0, NULL);
+!     if (gui_ph_timer_timeout == NULL)
+       return FAIL;
+  
+!     PtAddCallback(gui_ph_timer_cursor,  Pt_CB_TIMER_ACTIVATE,
+           gui_ph_handle_timer_cursor, NULL);
+!     PtAddCallback(gui_ph_timer_timeout, Pt_CB_TIMER_ACTIVATE,
+           gui_ph_handle_timer_timeout, NULL);
+  
+  #ifdef FEAT_MENU
+      n = 0;
+!     PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0);
+!     PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_LEFT_RIGHT,
+!          Pt_IS_ANCHORED);
+!     gui.vimToolBarGroup = PtCreateWidget(PtToolbarGroup, gui.vimWindow,
+!          n, args);
+!     if (gui.vimToolBarGroup == NULL)
+       return FAIL;
+  
+!     PtAddCallback(gui.vimToolBarGroup, Pt_CB_RESIZE,
+!          gui_ph_handle_menu_resize, NULL);
+  
+      n = 0;
+      flags = 0;
+!     PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0);
+!     if (! vim_strchr(p_go, GO_MENUS))
+      {
+       flags |= Pt_DELAY_REALIZE;
+!      PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE, flags);
+      }
+!     gui.vimMenuBar = PtCreateWidget(PtMenuBar, gui.vimToolBarGroup, n, args);
+!     if (gui.vimMenuBar == NULL)
+       return FAIL;
+  
+  # ifdef FEAT_TOOLBAR
+      n = 0;
+  
+!     PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
+!          Pt_ANCHOR_LEFT_RIGHT |Pt_TOP_ANCHORED_TOP, Pt_IS_ANCHORED);
+!     PtSetArg(&args[ n++ ], Pt_ARG_RESIZE_FLAGS, Pt_TRUE,
+!          Pt_RESIZE_Y_AS_REQUIRED);
+!     PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0);
+  
+      flags = Pt_GETS_FOCUS;
+!     if (! vim_strchr(p_go, GO_TOOLBAR))
+       flags |= Pt_DELAY_REALIZE;
+  
+!     PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE, flags);
+  
+!     gui.vimToolBar = PtCreateWidget(PtToolbar, gui.vimToolBarGroup, n, args);
+!     if (gui.vimToolBar == NULL)
+       return FAIL;
+  
+      /*
+***************
+*** 1310,1329 ****
+      if (gui_win_x != -1 && gui_win_y != -1)
+       gui_mch_set_winpos(gui_win_x, gui_win_y);
+  
+!     return (PtRealizeWidget( gui.vimWindow ) == 0) ? OK : FAIL;
+  }
+  
+      void
+  gui_mch_exit(int rc)
+  {
+!     PtDestroyWidget( gui.vimWindow );
+  
+!     PxTranslateSet( charset_translate, NULL );
+  
+!     vim_free( gui.event_buffer );
+  
+  #ifdef USE_PANEL_GROUPS
+!     vim_free( panel_titles );
+  #endif
+  }
+  
+--- 1310,1329 ----
+      if (gui_win_x != -1 && gui_win_y != -1)
+       gui_mch_set_winpos(gui_win_x, gui_win_y);
+  
+!     return (PtRealizeWidget(gui.vimWindow) == 0) ? OK : FAIL;
+  }
+  
+      void
+  gui_mch_exit(int rc)
+  {
+!     PtDestroyWidget(gui.vimWindow);
+  
+!     PxTranslateSet(charset_translate, NULL);
+  
+!     vim_free(gui.event_buffer);
+  
+  #ifdef USE_PANEL_GROUPS
+!     vim_free(panel_titles);
+  #endif
+  }
+  
+***************
+*** 1333,1339 ****
+  /* When no events are available, photon will call this function, working is
+   * set to FALSE, and the gui_mch_update loop will exit. */
+      static int
+! exit_gui_mch_update( void *data )
+  {
+      *(int *)data = FALSE;
+      return Pt_END;
+--- 1333,1339 ----
+  /* When no events are available, photon will call this function, working is
+   * set to FALSE, and the gui_mch_update loop will exit. */
+      static int
+! exit_gui_mch_update(void *data)
+  {
+      *(int *)data = FALSE;
+      return Pt_END;
+***************
+*** 1344,1351 ****
+  {
+      int working = TRUE;
+  
+!     PtAppAddWorkProc( NULL, exit_gui_mch_update, &working );
+!     while( ( working == TRUE ) && !vim_is_input_buf_full())
+      {
+       PtProcessEvent();
+      }
+--- 1344,1351 ----
+  {
+      int working = TRUE;
+  
+!     PtAppAddWorkProc(NULL, exit_gui_mch_update, &working);
+!     while ((working == TRUE) && !vim_is_input_buf_full())
+      {
+       PtProcessEvent();
+      }
+***************
+*** 1356,1378 ****
+  {
+      is_timeout = FALSE;
+  
+!     if( wtime > 0 )
+!      PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, wtime, 0 );
+  
+!     while( 1 )
+      {
+       PtProcessEvent();
+!      if( input_available() )
+       {
+!          PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0 );
+           return OK;
+       }
+!      else if( is_timeout == TRUE )
+           return FAIL;
+      }
+  }
+  
+! #if defined( FEAT_BROWSE ) || defined( PROTO )
+  /*
+   * Put up a file requester.
+   * Returns the selected name in allocated memory, or NULL for Cancel.
+--- 1356,1378 ----
+  {
+      is_timeout = FALSE;
+  
+!     if (wtime > 0)
+!      PtSetResource(gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, wtime, 0);
+  
+!     while (1)
+      {
+       PtProcessEvent();
+!      if (input_available())
+       {
+!          PtSetResource(gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0);
+           return OK;
+       }
+!      else if (is_timeout == TRUE)
+           return FAIL;
+      }
+  }
+  
+! #if defined(FEAT_BROWSE) || defined(PROTO)
+  /*
+   * Put up a file requester.
+   * Returns the selected name in allocated memory, or NULL for Cancel.
+***************
+*** 1398,1409 ****
+      char_u  *open_text = NULL;
+  
+      flags = 0;
+!     memset( &file, 0, sizeof( file ) );
+  
+!     default_path = alloc( MAXPATHL + 1 + NAME_MAX + 1 );
+!     if( default_path != NULL )
+      {
+!      if( saving == TRUE )
+       {
+           /* Don't need Pt_FSR_CONFIRM_EXISTING, vim will ask anyway */
+           flags |= Pt_FSR_NO_FCHECK;
+--- 1398,1409 ----
+      char_u  *open_text = NULL;
+  
+      flags = 0;
+!     memset(&file, 0, sizeof(file));
+  
+!     default_path = alloc(MAXPATHL + 1 + NAME_MAX + 1);
+!     if (default_path != NULL)
+      {
+!      if (saving == TRUE)
+       {
+           /* Don't need Pt_FSR_CONFIRM_EXISTING, vim will ask anyway */
+           flags |= Pt_FSR_NO_FCHECK;
+***************
+*** 1411,1433 ****
+       }
+  
+       /* combine the directory and filename into a single path */
+!      if( initdir == NULL || *initdir == NUL )
+       {
+!          mch_dirname( default_path, MAXPATHL );
+           initdir = default_path;
+       }
+       else
+       {
+!          STRCPY( default_path, initdir );
+           initdir = default_path;
+       }
+  
+!      if( default_name != NULL )
+       {
+!          if( default_path[ STRLEN( default_path ) - 1 ] != '/' )
+!              STRCAT( default_path, "/" );
+  
+!          STRCAT( default_path, default_name );
+       }
+  
+       /* TODO: add a filter? */
+--- 1411,1433 ----
+       }
+  
+       /* combine the directory and filename into a single path */
+!      if (initdir == NULL || *initdir == NUL)
+       {
+!          mch_dirname(default_path, MAXPATHL);
+           initdir = default_path;
+       }
+       else
+       {
+!          STRCPY(default_path, initdir);
+           initdir = default_path;
+       }
+  
+!      if (default_name != NULL)
+       {
+!          if (default_path[ STRLEN(default_path) - 1 ] != '/')
+!              STRCAT(default_path, "/");
+  
+!          STRCAT(default_path, default_name);
+       }
+  
+       /* TODO: add a filter? */
+***************
+*** 1441,1495 ****
+               NULL,
+               NULL,
+               &file,
+!              flags );
+  
+!      vim_free( default_path );
+  
+!      if( file.ret == Pt_FSDIALOG_BTN1 )
+           return vim_strsave(file.path);
+      }
+      return NULL;
+  }
+  #endif
+  
+! #if defined( FEAT_GUI_DIALOG ) || defined( PROTO )
+  static PtWidget_t *gui_ph_dialog_text = NULL;
+  
+      static int
+! gui_ph_dialog_close( int button, void *data )
+  {
+      PtModalCtrl_t *modal_ctrl = data;
+      char_u *dialog_text, *vim_text;
+  
+!     if( gui_ph_dialog_text != NULL )
+      {
+!      PtGetResource( gui_ph_dialog_text, Pt_ARG_TEXT_STRING, &dialog_text, 0 );
+!      PtGetResource( gui_ph_dialog_text, Pt_ARG_POINTER, &vim_text, 0 );
+!      STRNCPY( vim_text, dialog_text, IOSIZE - 1 );
+      }
+  
+!     PtModalUnblock( modal_ctrl, (void *) button );
+  
+      return Pt_TRUE;
+  }
+  
+      static int
+! gui_ph_dialog_text_enter( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+  {
+!     if( info->reason_subtype == Pt_EDIT_ACTIVATE )
+!      gui_ph_dialog_close( 1, data );
+      return Pt_CONTINUE;
+  }
+  
+      static int
+! gui_ph_dialog_esc( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+  {
+      PhKeyEvent_t *key;
+  
+!     key = PhGetData( info->event );
+!     if( ( key->key_flags & Pk_KF_Cap_Valid ) && ( key->key_cap == Pk_Escape ) )
+      {
+!      gui_ph_dialog_close( 0, data );
+       return Pt_CONSUME;
+      }
+      return Pt_PROCESS;
+--- 1441,1495 ----
+               NULL,
+               NULL,
+               &file,
+!              flags);
+  
+!      vim_free(default_path);
+  
+!      if (file.ret == Pt_FSDIALOG_BTN1)
+           return vim_strsave(file.path);
+      }
+      return NULL;
+  }
+  #endif
+  
+! #if defined(FEAT_GUI_DIALOG) || defined(PROTO)
+  static PtWidget_t *gui_ph_dialog_text = NULL;
+  
+      static int
+! gui_ph_dialog_close(int button, void *data)
+  {
+      PtModalCtrl_t *modal_ctrl = data;
+      char_u *dialog_text, *vim_text;
+  
+!     if (gui_ph_dialog_text != NULL)
+      {
+!      PtGetResource(gui_ph_dialog_text, Pt_ARG_TEXT_STRING, &dialog_text, 0);
+!      PtGetResource(gui_ph_dialog_text, Pt_ARG_POINTER, &vim_text, 0);
+!      STRNCPY(vim_text, dialog_text, IOSIZE - 1);
+      }
+  
+!     PtModalUnblock(modal_ctrl, (void *) button);
+  
+      return Pt_TRUE;
+  }
+  
+      static int
+! gui_ph_dialog_text_enter(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+  {
+!     if (info->reason_subtype == Pt_EDIT_ACTIVATE)
+!      gui_ph_dialog_close(1, data);
+      return Pt_CONTINUE;
+  }
+  
+      static int
+! gui_ph_dialog_esc(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+  {
+      PhKeyEvent_t *key;
+  
+!     key = PhGetData(info->event);
+!     if ((key->key_flags & Pk_KF_Cap_Valid) && (key->key_cap == Pk_Escape))
+      {
+!      gui_ph_dialog_close(0, data);
+       return Pt_CONSUME;
+      }
+      return Pt_PROCESS;
+***************
+*** 1518,1557 ****
+  
+      button_count = len = i = 0;
+  
+!     if( buttons == NULL || *buttons == NUL )
+       return -1;
+  
+      /* There is one less separator than buttons, so bump up the button count */
+      button_count = 1;
+  
+      /* Count string length and number of seperators */
+!     for( str = buttons; *str; str++ )
+      {
+       len++;
+!      if( *str == DLG_BUTTON_SEP )
+           button_count++;
+      }
+  
+!     if ( title == NULL )
+       title = "Vim";
+  
+!     buttons_copy = alloc( len + 1 );
+!     button_array = (char_u **) alloc( button_count * sizeof( char_u * ) );
+!     if( buttons_copy != NULL && button_array != NULL )
+      {
+!      STRCPY( buttons_copy, buttons );
+  
+       /*
+        * Convert DLG_BUTTON_SEP into NUL's and fill in
+        * button_array with the pointer to each NUL terminated string
+        */
+       str = buttons_copy;
+!      for( i = 0; i < button_count; i++ )
+       {
+           button_array[ i ] = str;
+!          for( ; *str; str++ )
+           {
+!              if( *str == DLG_BUTTON_SEP )
+               {
+                   *str++ = NUL;
+                   break;
+--- 1518,1557 ----
+  
+      button_count = len = i = 0;
+  
+!     if (buttons == NULL || *buttons == NUL)
+       return -1;
+  
+      /* There is one less separator than buttons, so bump up the button count */
+      button_count = 1;
+  
+      /* Count string length and number of seperators */
+!     for (str = buttons; *str; str++)
+      {
+       len++;
+!      if (*str == DLG_BUTTON_SEP)
+           button_count++;
+      }
+  
+!     if (title == NULL)
+       title = "Vim";
+  
+!     buttons_copy = alloc(len + 1);
+!     button_array = (char_u **) alloc(button_count * sizeof(char_u *));
+!     if (buttons_copy != NULL && button_array != NULL)
+      {
+!      STRCPY(buttons_copy, buttons);
+  
+       /*
+        * Convert DLG_BUTTON_SEP into NUL's and fill in
+        * button_array with the pointer to each NUL terminated string
+        */
+       str = buttons_copy;
+!      for (i = 0; i < button_count; i++)
+       {
+           button_array[ i ] = str;
+!          for (; *str; str++)
+           {
+!              if (*str == DLG_BUTTON_SEP)
+               {
+                   *str++ = NUL;
+                   break;
+***************
+*** 1565,1571 ****
+               NULL,
+               message, NULL,
+               button_count, (const char **) button_array, NULL,
+!              default_button, 0, Pt_MODAL );
+  #else
+       /* Writing the dialog ourselves lets us add extra features, like
+        * trapping the escape key and returning 0 to vim */
+--- 1565,1571 ----
+               NULL,
+               message, NULL,
+               button_count, (const char **) button_array, NULL,
+!              default_button, 0, Pt_MODAL);
+  #else
+       /* Writing the dialog ourselves lets us add extra features, like
+        * trapping the escape key and returning 0 to vim */
+***************
+*** 1576,1607 ****
+           PtModalCtrl_t modal_ctrl;
+           PtDialogInfo_t di;
+  
+!          memset( &di, 0, sizeof( di ) );
+!          memset( &modal_ctrl, 0, sizeof( modal_ctrl ) );
+  
+           n = 0;
+!          PtSetArg( &args[n++], Pt_ARG_GROUP_ROWS_COLS, 0, 0 );
+!          PtSetArg( &args[n++], Pt_ARG_WIDTH, 350, 0 );
+!          PtSetArg( &args[n++], Pt_ARG_GROUP_ORIENTATION,
+!                  Pt_GROUP_VERTICAL, 0 );
+!          PtSetArg( &args[n++], Pt_ARG_GROUP_FLAGS,
+!                  Pt_TRUE, Pt_GROUP_NO_KEYS | Pt_GROUP_STRETCH_HORIZONTAL );
+!          PtSetArg( &args[n++], Pt_ARG_CONTAINER_FLAGS, Pt_FALSE, Pt_TRUE );
+!          pane = PtCreateWidget( PtGroup, NULL, n, args );
+  
+           n = 0;
+!          PtSetArg( &args[n++], Pt_ARG_TEXT_STRING, message, 0 );
+!          PtCreateWidget( PtLabel, pane, n, args );
+  
+!          if( textfield != NULL )
+           {
+               n = 0;
+!              PtSetArg( &args[n++], Pt_ARG_MAX_LENGTH, IOSIZE - 1, 0 );
+!              PtSetArg( &args[n++], Pt_ARG_TEXT_STRING, textfield, 0 );
+!              PtSetArg( &args[n++], Pt_ARG_POINTER, textfield, 0 );
+!              gui_ph_dialog_text = PtCreateWidget( PtText, pane, n, args );
+!              PtAddCallback( gui_ph_dialog_text, Pt_CB_ACTIVATE,
+!                      gui_ph_dialog_text_enter, &modal_ctrl );
+           }
+  
+           di.parent = gui.vimWindow;
+--- 1576,1607 ----
+           PtModalCtrl_t modal_ctrl;
+           PtDialogInfo_t di;
+  
+!          memset(&di, 0, sizeof(di));
+!          memset(&modal_ctrl, 0, sizeof(modal_ctrl));
+  
+           n = 0;
+!          PtSetArg(&args[n++], Pt_ARG_GROUP_ROWS_COLS, 0, 0);
+!          PtSetArg(&args[n++], Pt_ARG_WIDTH, 350, 0);
+!          PtSetArg(&args[n++], Pt_ARG_GROUP_ORIENTATION,
+!                  Pt_GROUP_VERTICAL, 0);
+!          PtSetArg(&args[n++], Pt_ARG_GROUP_FLAGS,
+!                  Pt_TRUE, Pt_GROUP_NO_KEYS | Pt_GROUP_STRETCH_HORIZONTAL);
+!          PtSetArg(&args[n++], Pt_ARG_CONTAINER_FLAGS, Pt_FALSE, Pt_TRUE);
+!          pane = PtCreateWidget(PtGroup, NULL, n, args);
+  
+           n = 0;
+!          PtSetArg(&args[n++], Pt_ARG_TEXT_STRING, message, 0);
+!          PtCreateWidget(PtLabel, pane, n, args);
+  
+!          if (textfield != NULL)
+           {
+               n = 0;
+!              PtSetArg(&args[n++], Pt_ARG_MAX_LENGTH, IOSIZE - 1, 0);
+!              PtSetArg(&args[n++], Pt_ARG_TEXT_STRING, textfield, 0);
+!              PtSetArg(&args[n++], Pt_ARG_POINTER, textfield, 0);
+!              gui_ph_dialog_text = PtCreateWidget(PtText, pane, n, args);
+!              PtAddCallback(gui_ph_dialog_text, Pt_CB_ACTIVATE,
+!                      gui_ph_dialog_text_enter, &modal_ctrl);
+           }
+  
+           di.parent = gui.vimWindow;
+***************
+*** 1616,1641 ****
+           di.callback = gui_ph_dialog_close;
+           di.data = &modal_ctrl;
+  
+!          dialog = PtCreateDialog( &di );
+!          PtAddFilterCallback( dialog, Ph_EV_KEY,
+!                  gui_ph_dialog_esc, &modal_ctrl );
+  
+!          if( gui_ph_dialog_text != NULL )
+!              PtGiveFocus( gui_ph_dialog_text, NULL );
+  
+           /* Open dialog, block the vim window and wait for the dialog to close */
+!          PtRealizeWidget( dialog );
+!          PtMakeModal( dialog, Ph_CURSOR_NOINPUT, Ph_CURSOR_DEFAULT_COLOR );
+!          dialog_result = (int) PtModalBlock( &modal_ctrl, 0 );
+  
+!          PtDestroyWidget( dialog );
+           gui_ph_dialog_text = NULL;
+       }
+  #endif
+      }
+  
+!     vim_free( button_array );
+!     vim_free( buttons_copy );
+  
+      return dialog_result;
+  }
+--- 1616,1641 ----
+           di.callback = gui_ph_dialog_close;
+           di.data = &modal_ctrl;
+  
+!          dialog = PtCreateDialog(&di);
+!          PtAddFilterCallback(dialog, Ph_EV_KEY,
+!                  gui_ph_dialog_esc, &modal_ctrl);
+  
+!          if (gui_ph_dialog_text != NULL)
+!              PtGiveFocus(gui_ph_dialog_text, NULL);
+  
+           /* Open dialog, block the vim window and wait for the dialog to close */
+!          PtRealizeWidget(dialog);
+!          PtMakeModal(dialog, Ph_CURSOR_NOINPUT, Ph_CURSOR_DEFAULT_COLOR);
+!          dialog_result = (int) PtModalBlock(&modal_ctrl, 0);
+  
+!          PtDestroyWidget(dialog);
+           gui_ph_dialog_text = NULL;
+       }
+  #endif
+      }
+  
+!     vim_free(button_array);
+!     vim_free(buttons_copy);
+  
+      return dialog_result;
+  }
+***************
+*** 1648,1654 ****
+  {
+      PhPoint_t *pos;
+  
+!     pos = PtWidgetPos( gui.vimWindow, NULL );
+  
+      *x = pos->x;
+      *y = pos->y;
+--- 1648,1654 ----
+  {
+      PhPoint_t *pos;
+  
+!     pos = PtWidgetPos(gui.vimWindow, NULL);
+  
+      *x = pos->x;
+      *y = pos->y;
+***************
+*** 1661,1667 ****
+  {
+      PhPoint_t pos = { x, y };
+  
+!     PtSetResource( gui.vimWindow, Pt_ARG_POS, &pos, 0 );
+  }
+  
+      void
+--- 1661,1667 ----
+  {
+      PhPoint_t pos = { x, y };
+  
+!     PtSetResource(gui.vimWindow, Pt_ARG_POS, &pos, 0);
+  }
+  
+      void
+***************
+*** 1677,1686 ****
+      window_size.h += pg_margin_top + pg_margin_bottom;
+  #endif
+  
+!     PtSetResource( gui.vimWindow, Pt_ARG_MINIMUM_DIM, &min_size, 0 );
+!     PtSetResource( gui.vimWindow, Pt_ARG_DIM, &window_size, 0 );
+  
+!     if( ! PtWidgetIsRealized( gui.vimWindow ) )
+       gui_ph_resize_container();
+  }
+  
+--- 1677,1686 ----
+      window_size.h += pg_margin_top + pg_margin_bottom;
+  #endif
+  
+!     PtSetResource(gui.vimWindow, Pt_ARG_MINIMUM_DIM, &min_size, 0);
+!     PtSetResource(gui.vimWindow, Pt_ARG_DIM, &window_size, 0);
+  
+!     if (! PtWidgetIsRealized(gui.vimWindow))
+       gui_ph_resize_container();
+  }
+  
+***************
+*** 1693,1700 ****
+  {
+      PhRect_t console;
+  
+!     PhWindowQueryVisible( Ph_QUERY_WORKSPACE, 0,
+!          PhInputGroup( NULL ), &console );
+  
+      *screen_w = console.lr.x - console.ul.x + 1;
+      *screen_h = console.lr.y - console.ul.y + 1;
+--- 1693,1700 ----
+  {
+      PhRect_t console;
+  
+!     PhWindowQueryVisible(Ph_QUERY_WORKSPACE, 0,
+!          PhInputGroup(NULL), &console);
+  
+      *screen_w = console.lr.x - console.ul.x + 1;
+      *screen_h = console.lr.y - console.ul.y + 1;
+***************
+*** 1705,1715 ****
+  {
+      PhWindowEvent_t event;
+  
+!     memset( &event, 0, sizeof (event) );
+      event.event_f = Ph_WM_HIDE;
+      event.event_state = Ph_WM_EVSTATE_HIDE;
+!     event.rid = PtWidgetRid( gui.vimWindow );
+!     PtForwardWindowEvent( &event );
+  }
+  
+  #if defined(FEAT_EVAL) || defined(PROTO)
+--- 1705,1715 ----
+  {
+      PhWindowEvent_t event;
+  
+!     memset(&event, 0, sizeof (event));
+      event.event_f = Ph_WM_HIDE;
+      event.event_state = Ph_WM_EVSTATE_HIDE;
+!     event.rid = PtWidgetRid(gui.vimWindow);
+!     PtForwardWindowEvent(&event);
+  }
+  
+  #if defined(FEAT_EVAL) || defined(PROTO)
+***************
+*** 1721,1731 ****
+  {
+      PhWindowEvent_t event;
+  
+!     memset( &event, 0, sizeof (event) );
+      event.event_f = Ph_WM_TOFRONT;
+      event.event_state = Ph_WM_EVSTATE_FFRONT;
+!     event.rid = PtWidgetRid( gui.vimWindow );
+!     PtForwardWindowEvent( &event );
+  }
+  #endif
+  
+--- 1721,1731 ----
+  {
+      PhWindowEvent_t event;
+  
+!     memset(&event, 0, sizeof (event));
+      event.event_f = Ph_WM_TOFRONT;
+      event.event_state = Ph_WM_EVSTATE_FFRONT;
+!     event.rid = PtWidgetRid(gui.vimWindow);
+!     PtForwardWindowEvent(&event);
+  }
+  #endif
+  
+***************
+*** 1733,1741 ****
+  gui_mch_settitle(char_u *title,      char_u *icon)
+  {
+  #ifdef USE_PANEL_GROUP
+!     gui_ph_pg_set_buffer_num( curwin->w_buffer->b_fnum );
+  #endif
+!     PtSetResource( gui.vimWindow, Pt_ARG_WINDOW_TITLE, title, 0 );
+      /* Not sure what to do with the icon text, set balloon text somehow? */
+  }
+  
+--- 1733,1741 ----
+  gui_mch_settitle(char_u *title,      char_u *icon)
+  {
+  #ifdef USE_PANEL_GROUP
+!     gui_ph_pg_set_buffer_num(curwin->w_buffer->b_fnum);
+  #endif
+!     PtSetResource(gui.vimWindow, Pt_ARG_WINDOW_TITLE, title, 0);
+      /* Not sure what to do with the icon text, set balloon text somehow? */
+  }
+  
+***************
+*** 1748,1757 ****
+      int          n = 0;
+      PtArg_t args[3];
+  
+!     PtSetArg( &args[ n++ ], Pt_ARG_MAXIMUM, max, 0 );
+!     PtSetArg( &args[ n++ ], Pt_ARG_SLIDER_SIZE, size, 0 );
+!     PtSetArg( &args[ n++ ], Pt_ARG_GAUGE_VALUE, val, 0 );
+!     PtSetResources( sb->id, n, args );
+  }
+  
+      void
+--- 1748,1757 ----
+      int          n = 0;
+      PtArg_t args[3];
+  
+!     PtSetArg(&args[ n++ ], Pt_ARG_MAXIMUM, max, 0);
+!     PtSetArg(&args[ n++ ], Pt_ARG_SLIDER_SIZE, size, 0);
+!     PtSetArg(&args[ n++ ], Pt_ARG_GAUGE_VALUE, val, 0);
+!     PtSetResources(sb->id, n, args);
+  }
+  
+      void
+***************
+*** 1759,1765 ****
+  {
+      PhArea_t area = {{ x, y }, { w, h }};
+  
+!     PtSetResource( sb->id, Pt_ARG_AREA, &area, 0 );
+  }
+  
+      void
+--- 1759,1765 ----
+  {
+      PhArea_t area = {{ x, y }, { w, h }};
+  
+!     PtSetResource(sb->id, Pt_ARG_AREA, &area, 0);
+  }
+  
+      void
+***************
+*** 1775,1786 ****
+       *
+       * Also, don't let the scrollbar get focus
+       */
+!     PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE,
+!          Pt_DELAY_REALIZE | Pt_GETS_FOCUS );
+!     PtSetArg( &args[ n++ ], Pt_ARG_SCROLLBAR_FLAGS, Pt_SCROLLBAR_SHOW_ARROWS, 0);
+  #if 0
+      /* Don't need this anchoring for the scrollbars */
+!     if( orient == SBAR_HORIZ )
+      {
+       anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM |
+           Pt_LEFT_ANCHORED_LEFT | Pt_RIGHT_ANCHORED_RIGHT;
+--- 1775,1786 ----
+       *
+       * Also, don't let the scrollbar get focus
+       */
+!     PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE,
+!          Pt_DELAY_REALIZE | Pt_GETS_FOCUS);
+!     PtSetArg(&args[ n++ ], Pt_ARG_SCROLLBAR_FLAGS, Pt_SCROLLBAR_SHOW_ARROWS, 0);
+  #if 0
+      /* Don't need this anchoring for the scrollbars */
+!     if (orient == SBAR_HORIZ)
+      {
+       anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM |
+           Pt_LEFT_ANCHORED_LEFT | Pt_RIGHT_ANCHORED_RIGHT;
+***************
+*** 1788,1827 ****
+      else
+      {
+       anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM | Pt_TOP_ANCHORED_TOP;
+!      if( sb->wp != NULL )
+       {
+!          if( sb == &sb->wp->w_scrollbars[ SBAR_LEFT ] )
+               anchor_flags |= Pt_LEFT_ANCHORED_LEFT;
+           else
+               anchor_flags |= Pt_RIGHT_ANCHORED_RIGHT;
+       }
+      }
+!     PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS, anchor_flags, Pt_IS_ANCHORED );
+  #endif
+!     PtSetArg( &args[ n++ ], Pt_ARG_ORIENTATION,
+!          (orient == SBAR_HORIZ) ? Pt_HORIZONTAL : Pt_VERTICAL, 0 );
+  #ifdef USE_PANEL_GROUP
+!     sb->id = PtCreateWidget( PtScrollbar, gui.vimPanelGroup, n, args );
+  #else
+!     sb->id = PtCreateWidget( PtScrollbar, gui.vimContainer, n, args );
+  #endif
+  
+!     PtAddCallback( sb->id, Pt_CB_SCROLLBAR_MOVE, gui_ph_handle_scrollbar, sb );
+  }
+  
+      void
+  gui_mch_enable_scrollbar(scrollbar_T *sb, int flag)
+  {
+!     if( flag != 0 )
+!      PtRealizeWidget( sb->id );
+      else
+!      PtUnrealizeWidget( sb->id );
+  }
+  
+      void
+  gui_mch_destroy_scrollbar(scrollbar_T *sb)
+  {
+!     PtDestroyWidget( sb->id );
+      sb->id = NULL;
+  }
+  
+--- 1788,1827 ----
+      else
+      {
+       anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM | Pt_TOP_ANCHORED_TOP;
+!      if (sb->wp != NULL)
+       {
+!          if (sb == &sb->wp->w_scrollbars[ SBAR_LEFT ])
+               anchor_flags |= Pt_LEFT_ANCHORED_LEFT;
+           else
+               anchor_flags |= Pt_RIGHT_ANCHORED_RIGHT;
+       }
+      }
+!     PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS, anchor_flags, Pt_IS_ANCHORED);
+  #endif
+!     PtSetArg(&args[ n++ ], Pt_ARG_ORIENTATION,
+!          (orient == SBAR_HORIZ) ? Pt_HORIZONTAL : Pt_VERTICAL, 0);
+  #ifdef USE_PANEL_GROUP
+!     sb->id = PtCreateWidget(PtScrollbar, gui.vimPanelGroup, n, args);
+  #else
+!     sb->id = PtCreateWidget(PtScrollbar, gui.vimContainer, n, args);
+  #endif
+  
+!     PtAddCallback(sb->id, Pt_CB_SCROLLBAR_MOVE, gui_ph_handle_scrollbar, sb);
+  }
+  
+      void
+  gui_mch_enable_scrollbar(scrollbar_T *sb, int flag)
+  {
+!     if (flag != 0)
+!      PtRealizeWidget(sb->id);
+      else
+!      PtUnrealizeWidget(sb->id);
+  }
+  
+      void
+  gui_mch_destroy_scrollbar(scrollbar_T *sb)
+  {
+!     PtDestroyWidget(sb->id);
+      sb->id = NULL;
+  }
+  
+***************
+*** 1866,1873 ****
+       return;
+  
+      if (shape == MSHAPE_HIDE || gui.pointer_hidden)
+!      PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE, Ph_CURSOR_NONE,
+!              0 );
+      else
+      {
+       if (shape >= MSHAPE_NUMBERED)
+--- 1866,1873 ----
+       return;
+  
+      if (shape == MSHAPE_HIDE || gui.pointer_hidden)
+!      PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE, Ph_CURSOR_NONE,
+!              0);
+      else
+      {
+       if (shape >= MSHAPE_NUMBERED)
+***************
+*** 1875,1881 ****
+       else
+           id = mshape_ids[shape];
+  
+!      PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE, id, 0 );
+      }
+      if (shape != MSHAPE_HIDE)
+       last_shape = shape;
+--- 1875,1881 ----
+       else
+           id = mshape_ids[shape];
+  
+!      PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE, id,  0);
+      }
+      if (shape != MSHAPE_HIDE)
+       last_shape = shape;
+***************
+*** 1885,1903 ****
+      void
+  gui_mch_mousehide(int hide)
+  {
+!     if( gui.pointer_hidden != hide )
+      {
+       gui.pointer_hidden = hide;
+  #ifdef FEAT_MOUSESHAPE
+!      if( hide )
+!          PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
+!                  Ph_CURSOR_NONE, 0 );
+       else
+!          mch_set_mouse_shape( last_shape );
+  #else
+!      PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
+!              ( hide == MOUSE_SHOW ) ? GUI_PH_MOUSE_TYPE : Ph_CURSOR_NONE,
+!              0 );
+  #endif
+      }
+  }
+--- 1885,1903 ----
+      void
+  gui_mch_mousehide(int hide)
+  {
+!     if (gui.pointer_hidden != hide)
+      {
+       gui.pointer_hidden = hide;
+  #ifdef FEAT_MOUSESHAPE
+!      if (hide)
+!          PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
+!                  Ph_CURSOR_NONE, 0);
+       else
+!          mch_set_mouse_shape(last_shape);
+  #else
+!      PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
+!              (hide == MOUSE_SHOW) ? GUI_PH_MOUSE_TYPE : Ph_CURSOR_NONE,
+!              0);
+  #endif
+      }
+  }
+***************
+*** 1910,1917 ****
+  
+      /* FIXME: does this return the correct position,
+       * with respect to the border? */
+!     PhQueryCursor( PhInputGroup( NULL ), &info );
+!     PtGetAbsPosition( gui.vimTextArea , &ix, &iy );
+  
+      *x = info.pos.x - ix;
+      *y = info.pos.y - iy;
+--- 1910,1917 ----
+  
+      /* FIXME: does this return the correct position,
+       * with respect to the border? */
+!     PhQueryCursor(PhInputGroup(NULL), &info);
+!     PtGetAbsPosition(gui.vimTextArea , &ix, &iy);
+  
+      *x = info.pos.x - ix;
+      *y = info.pos.y - iy;
+***************
+*** 1922,1930 ****
+  {
+      short abs_x, abs_y;
+  
+!     PtGetAbsPosition( gui.vimTextArea, &abs_x, &abs_y );
+      /* Add the border offset? */
+!     PhMoveCursorAbs( PhInputGroup( NULL ), abs_x + x, abs_y + y );
+  }
+  
+  /****************************************************************************/
+--- 1922,1930 ----
+  {
+      short abs_x, abs_y;
+  
+!     PtGetAbsPosition(gui.vimTextArea, &abs_x, &abs_y);
+      /* Add the border offset? */
+!     PhMoveCursorAbs(PhInputGroup(NULL), abs_x + x, abs_y + y);
+  }
+  
+  /****************************************************************************/
+***************
+*** 1952,1974 ****
+      color_diff = gui_get_lightness(gui_ph_mouse_color)
+                                         - gui_get_lightness(gui.back_pixel);
+  
+!     if( abs( color_diff ) < 64 )
+      {
+       short r, g, b;
+       /* not a great algorithm... */
+!      r = PgRedValue( gui_ph_mouse_color ) ^ 255;
+!      g = PgGreenValue( gui_ph_mouse_color ) ^ 255;
+!      b = PgBlueValue( gui_ph_mouse_color ) ^ 255;
+  
+  #ifndef FEAT_MOUSESHAPE
+!      gui_ph_mouse_color = PgRGB( r, g, b );
+!      PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_COLOR,
+!              gui_ph_mouse_color, 0 );
+  #endif
+      }
+  #endif
+  
+!     PtSetResource( gui.vimTextArea, Pt_ARG_FILL_COLOR, gui.back_pixel, 0 );
+  }
+  
+      static int
+--- 1952,1974 ----
+      color_diff = gui_get_lightness(gui_ph_mouse_color)
+                                         - gui_get_lightness(gui.back_pixel);
+  
+!     if (abs(color_diff) < 64)
+      {
+       short r, g, b;
+       /* not a great algorithm... */
+!      r = PgRedValue(gui_ph_mouse_color) ^ 255;
+!      g = PgGreenValue(gui_ph_mouse_color) ^ 255;
+!      b = PgBlueValue(gui_ph_mouse_color) ^ 255;
+  
+  #ifndef FEAT_MOUSESHAPE
+!      gui_ph_mouse_color = PgRGB(r, g, b);
+!      PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_COLOR,
+!              gui_ph_mouse_color, 0);
+  #endif
+      }
+  #endif
+  
+!     PtSetResource(gui.vimTextArea, Pt_ARG_FILL_COLOR, gui.back_pixel, 0);
+  }
+  
+      static int
+***************
+*** 2058,2076 ****
+      };
+  
+      /* is name #rrggbb format? */
+!     if( name[0] == '#' && STRLEN( name ) == 7 )
+      {
+!      r = hex_digit( name[1] ) * 16 + hex_digit( name[2] );
+!      g = hex_digit( name[3] ) * 16 + hex_digit( name[4] );
+!      b = hex_digit( name[5] ) * 16 + hex_digit( name[6] );
+!      if( r < 0 || g < 0 || b < 0 )
+           return INVALCOLOR;
+       return RGB(r, g, b);
+      }
+  
+!     for( i = 0; i < ARRAY_LENGTH( table ); i++ )
+      {
+!      if( STRICMP( name, table[i].name ) == 0 )
+           return table[i].colour;
+      }
+  
+--- 2058,2076 ----
+      };
+  
+      /* is name #rrggbb format? */
+!     if (name[0] == '#' && STRLEN(name) == 7)
+      {
+!      r = hex_digit(name[1]) * 16 + hex_digit(name[2]);
+!      g = hex_digit(name[3]) * 16 + hex_digit(name[4]);
+!      b = hex_digit(name[5]) * 16 + hex_digit(name[6]);
+!      if (r < 0 || g < 0 || b < 0)
+           return INVALCOLOR;
+       return RGB(r, g, b);
+      }
+  
+!     for (i = 0; i < ARRAY_LENGTH(table); i++)
+      {
+!      if (STRICMP(name, table[i].name) == 0)
+           return table[i].colour;
+      }
+  
+***************
+*** 2129,2141 ****
+      void
+  gui_mch_set_fg_color(guicolor_T color)
+  {
+!     PgSetTextColor( color );
+  }
+  
+      void
+  gui_mch_set_bg_color(guicolor_T color)
+  {
+!     PgSetFillColor( color );
+  }
+  
+      void
+--- 2129,2141 ----
+      void
+  gui_mch_set_fg_color(guicolor_T color)
+  {
+!     PgSetTextColor(color);
+  }
+  
+      void
+  gui_mch_set_bg_color(guicolor_T color)
+  {
+!     PgSetFillColor(color);
+  }
+  
+      void
+***************
+*** 2148,2168 ****
+  {
+      PhRect_t rect;
+  
+!     rect.ul.x = FILL_X( col );
+!     rect.ul.y = FILL_Y( row );
+  
+      /* FIXME: This has an off by one pixel problem */
+      rect.lr.x = rect.ul.x + nc * gui.char_width;
+      rect.lr.y = rect.ul.y + nr * gui.char_height;
+!     if( nc > 0 )
+       rect.lr.x -= 1;
+!     if( nr > 0 )
+       rect.lr.y -= 1;
+  
+      DRAW_START;
+!     PgSetDrawMode( Pg_DrawModeDSTINVERT );
+!     PgDrawRect( &rect, Pg_DRAW_FILL );
+!     PgSetDrawMode( Pg_DrawModeSRCCOPY );
+      DRAW_END;
+  }
+  
+--- 2148,2168 ----
+  {
+      PhRect_t rect;
+  
+!     rect.ul.x = FILL_X(col);
+!     rect.ul.y = FILL_Y(row);
+  
+      /* FIXME: This has an off by one pixel problem */
+      rect.lr.x = rect.ul.x + nc * gui.char_width;
+      rect.lr.y = rect.ul.y + nr * gui.char_height;
+!     if (nc > 0)
+       rect.lr.x -= 1;
+!     if (nr > 0)
+       rect.lr.y -= 1;
+  
+      DRAW_START;
+!     PgSetDrawMode(Pg_DrawModeDSTINVERT);
+!     PgDrawRect(&rect, Pg_DRAW_FILL);
+!     PgSetDrawMode(Pg_DrawModeSRCCOPY);
+      DRAW_END;
+  }
+  
+***************
+*** 2170,2182 ****
+  gui_mch_clear_block(int row1, int col1, int row2, int col2)
+  {
+      PhRect_t block = {
+!      { FILL_X( col1 ), FILL_Y( row1 ) },
+!      { FILL_X( col2 + 1 ) - 1, FILL_Y( row2 + 1 ) - 1}
+      };
+  
+      DRAW_START;
+!     gui_mch_set_bg_color( gui.back_pixel );
+!     PgDrawRect( &block, Pg_DRAW_FILL );
+      DRAW_END;
+  }
+  
+--- 2170,2182 ----
+  gui_mch_clear_block(int row1, int col1, int row2, int col2)
+  {
+      PhRect_t block = {
+!      { FILL_X(col1), FILL_Y(row1) },
+!      { FILL_X(col2 + 1) - 1, FILL_Y(row2 + 1) - 1}
+      };
+  
+      DRAW_START;
+!     gui_mch_set_bg_color(gui.back_pixel);
+!     PgDrawRect(&block, Pg_DRAW_FILL);
+      DRAW_END;
+  }
+  
+***************
+*** 2189,2200 ****
+           Rows * gui.char_height + gui.border_width - 1 }
+      };
+  
+!     if( is_ignore_draw == TRUE )
+       return;
+  
+      DRAW_START;
+!     gui_mch_set_bg_color( gui.back_pixel );
+!     PgDrawRect( &text_rect, Pg_DRAW_FILL );
+      DRAW_END;
+  }
+  
+--- 2189,2200 ----
+           Rows * gui.char_height + gui.border_width - 1 }
+      };
+  
+!     if (is_ignore_draw == TRUE)
+       return;
+  
+      DRAW_START;
+!     gui_mch_set_bg_color(gui.back_pixel);
+!     PgDrawRect(&text_rect, Pg_DRAW_FILL);
+      DRAW_END;
+  }
+  
+***************
+*** 2204,2231 ****
+      PhRect_t    rect;
+      PhPoint_t   delta;
+  
+!     rect.ul.x = FILL_X( gui.scroll_region_left );
+!     rect.ul.y = FILL_Y( row + num_lines );
+  
+!     rect.lr.x = FILL_X( gui.scroll_region_right + 1 ) - 1;
+!     rect.lr.y = FILL_Y( gui.scroll_region_bot + 1) - 1;
+  
+!     PtWidgetOffset( gui.vimTextArea, &gui_ph_raw_offset );
+!     PhTranslatePoint( &gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
+!     PhTranslateRect( &rect, &gui_ph_raw_offset );
+  
+      delta.x = 0;
+      delta.y = -num_lines * gui.char_height;
+  
+      PgFlush();
+  
+!     PhBlit( PtWidgetRid( PtFindDisjoint( gui.vimTextArea ) ), &rect, &delta );
+  
+      gui_clear_block(
+       gui.scroll_region_bot - num_lines + 1,
+       gui.scroll_region_left,
+       gui.scroll_region_bot,
+!      gui.scroll_region_right );
+  }
+  
+      void
+--- 2204,2231 ----
+      PhRect_t    rect;
+      PhPoint_t   delta;
+  
+!     rect.ul.x = FILL_X(gui.scroll_region_left);
+!     rect.ul.y = FILL_Y(row + num_lines);
+  
+!     rect.lr.x = FILL_X(gui.scroll_region_right + 1) - 1;
+!     rect.lr.y = FILL_Y(gui.scroll_region_bot + 1) - 1;
+  
+!     PtWidgetOffset(gui.vimTextArea, &gui_ph_raw_offset);
+!     PhTranslatePoint(&gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
+!     PhTranslateRect(&rect, &gui_ph_raw_offset);
+  
+      delta.x = 0;
+      delta.y = -num_lines * gui.char_height;
+  
+      PgFlush();
+  
+!     PhBlit(PtWidgetRid(PtFindDisjoint(gui.vimTextArea)), &rect, &delta);
+  
+      gui_clear_block(
+       gui.scroll_region_bot - num_lines + 1,
+       gui.scroll_region_left,
+       gui.scroll_region_bot,
+!      gui.scroll_region_right);
+  }
+  
+      void
+***************
+*** 2234,2258 ****
+      PhRect_t    rect;
+      PhPoint_t   delta;
+  
+!     rect.ul.x = FILL_X( gui.scroll_region_left );
+!     rect.ul.y = FILL_Y( row );
+  
+!     rect.lr.x = FILL_X( gui.scroll_region_right + 1 ) - 1;
+!     rect.lr.y = FILL_Y( gui.scroll_region_bot - num_lines + 1 ) - 1;
+  
+!     PtWidgetOffset( gui.vimTextArea, &gui_ph_raw_offset );
+!     PhTranslatePoint( &gui_ph_raw_offset, PtWidgetPos( gui.vimTextArea, NULL ) );
+!     PhTranslateRect( &rect, &gui_ph_raw_offset );
+  
+      delta.x = 0;
+      delta.y = num_lines * gui.char_height;
+  
+      PgFlush();
+  
+!     PhBlit( PtWidgetRid( PtFindDisjoint( gui.vimTextArea ) ) , &rect, &delta );
+  
+!     gui_clear_block( row, gui.scroll_region_left,
+!          row + num_lines - 1, gui.scroll_region_right );
+  }
+  
+      void
+--- 2234,2258 ----
+      PhRect_t    rect;
+      PhPoint_t   delta;
+  
+!     rect.ul.x = FILL_X(gui.scroll_region_left);
+!     rect.ul.y = FILL_Y(row);
+  
+!     rect.lr.x = FILL_X(gui.scroll_region_right + 1) - 1;
+!     rect.lr.y = FILL_Y(gui.scroll_region_bot - num_lines + 1) - 1;
+  
+!     PtWidgetOffset(gui.vimTextArea, &gui_ph_raw_offset);
+!     PhTranslatePoint(&gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
+!     PhTranslateRect(&rect, &gui_ph_raw_offset);
+  
+      delta.x = 0;
+      delta.y = num_lines * gui.char_height;
+  
+      PgFlush();
+  
+!     PhBlit(PtWidgetRid(PtFindDisjoint(gui.vimTextArea)) , &rect, &delta);
+  
+!     gui_clear_block(row, gui.scroll_region_left,
+!          row + num_lines - 1, gui.scroll_region_right);
+  }
+  
+      void
+***************
+*** 2261,2297 ****
+      static char *utf8_buffer = NULL;
+      static int       utf8_len = 0;
+  
+!     PhPoint_t        pos = { TEXT_X( col ), TEXT_Y( row ) };
+      PhRect_t rect;
+  
+!     if( is_ignore_draw == TRUE )
+       return;
+  
+      DRAW_START;
+  
+!     if( !( flags & DRAW_TRANSP ) )
+      {
+       PgDrawIRect(
+!              FILL_X( col ), FILL_Y( row ),
+!              FILL_X( col + len ) - 1, FILL_Y( row + 1 ) - 1,
+!              Pg_DRAW_FILL );
+      }
+  
+!     if( flags & DRAW_UNDERL )
+!      PgSetUnderline( gui.norm_pixel, Pg_TRANSPARENT, 0 );
+  
+!     if( charset_translate != NULL
+  #ifdef FEAT_MBYTE
+           && enc_utf8 == 0
+  #endif
+!          )
+      {
+       int src_taken, dst_made;
+  
+       /* Use a static buffer to avoid large amounts of de/allocations */
+!      if( utf8_len < len )
+       {
+!          utf8_buffer = realloc( utf8_buffer, len * MB_LEN_MAX );
+           utf8_len = len;
+       }
+  
+--- 2261,2297 ----
+      static char *utf8_buffer = NULL;
+      static int       utf8_len = 0;
+  
+!     PhPoint_t        pos = { TEXT_X(col), TEXT_Y(row) };
+      PhRect_t rect;
+  
+!     if (is_ignore_draw == TRUE)
+       return;
+  
+      DRAW_START;
+  
+!     if (!(flags & DRAW_TRANSP))
+      {
+       PgDrawIRect(
+!              FILL_X(col), FILL_Y(row),
+!              FILL_X(col + len) - 1, FILL_Y(row + 1) - 1,
+!              Pg_DRAW_FILL);
+      }
+  
+!     if (flags & DRAW_UNDERL)
+!      PgSetUnderline(gui.norm_pixel, Pg_TRANSPARENT, 0);
+  
+!     if (charset_translate != NULL
+  #ifdef FEAT_MBYTE
+           && enc_utf8 == 0
+  #endif
+!         )
+      {
+       int src_taken, dst_made;
+  
+       /* Use a static buffer to avoid large amounts of de/allocations */
+!      if (utf8_len < len)
+       {
+!          utf8_buffer = realloc(utf8_buffer, len * MB_LEN_MAX);
+           utf8_len = len;
+       }
+  
+***************
+*** 2302,2337 ****
+               &src_taken,
+               utf8_buffer,
+               utf8_len,
+!              &dst_made );
+       s = utf8_buffer;
+       len = dst_made;
+      }
+  
+!     PgDrawText( s, len, &pos, 0 );
+  
+!     if( flags & DRAW_BOLD )
+      {
+       /* FIXME: try and only calculate these values once... */
+!      rect.ul.x = FILL_X( col ) + 1;
+!      rect.ul.y = FILL_Y( row );
+!      rect.lr.x = FILL_X( col + len ) - 1;
+!      rect.lr.y = FILL_Y( row + 1) - 1;
+!      /* PgSetUserClip( NULL ) causes the scrollbar to not redraw... */
+  #if 0
+       pos.x++;
+  
+!      PgSetUserClip( &rect );
+!      PgDrawText( s, len, &pos, 0 );
+!      PgSetUserClip( NULL );
+  #else
+!      rect.lr.y -= ( p_linespace + 1 ) / 2;
+       /* XXX: DrawTextArea doesn't work with phditto */
+!      PgDrawTextArea( s, len, &rect, Pg_TEXT_BOTTOM );
+  #endif
+      }
+  
+!     if( flags & DRAW_UNDERL )
+!      PgSetUnderline( Pg_TRANSPARENT, Pg_TRANSPARENT, 0 );
+  
+      DRAW_END;
+  }
+--- 2302,2337 ----
+               &src_taken,
+               utf8_buffer,
+               utf8_len,
+!              &dst_made);
+       s = utf8_buffer;
+       len = dst_made;
+      }
+  
+!     PgDrawText(s, len, &pos, 0);
+  
+!     if (flags & DRAW_BOLD)
+      {
+       /* FIXME: try and only calculate these values once... */
+!      rect.ul.x = FILL_X(col) + 1;
+!      rect.ul.y = FILL_Y(row);
+!      rect.lr.x = FILL_X(col + len) - 1;
+!      rect.lr.y = FILL_Y(row + 1) - 1;
+!      /* PgSetUserClip(NULL) causes the scrollbar to not redraw... */
+  #if 0
+       pos.x++;
+  
+!      PgSetUserClip(&rect);
+!      PgDrawText(s, len, &pos, 0);
+!      PgSetUserClip(NULL);
+  #else
+!      rect.lr.y -= (p_linespace + 1) / 2;
+       /* XXX: DrawTextArea doesn't work with phditto */
+!      PgDrawTextArea(s, len, &rect, Pg_TEXT_BOTTOM);
+  #endif
+      }
+  
+!     if (flags & DRAW_UNDERL)
+!      PgSetUnderline(Pg_TRANSPARENT, Pg_TRANSPARENT, 0);
+  
+      DRAW_END;
+  }
+***************
+*** 2346,2359 ****
+  
+      /* FIXME: Double width characters */
+  
+!     r.ul.x = FILL_X( gui.col );
+!     r.ul.y = FILL_Y( gui.row );
+      r.lr.x = r.ul.x + gui.char_width - 1;
+      r.lr.y = r.ul.y + gui.char_height - 1;
+  
+      DRAW_START;
+!     PgSetStrokeColor( color );
+!     PgDrawRect( &r, Pg_DRAW_STROKE );
+      DRAW_END;
+  }
+  
+--- 2346,2359 ----
+  
+      /* FIXME: Double width characters */
+  
+!     r.ul.x = FILL_X(gui.col);
+!     r.ul.y = FILL_Y(gui.row);
+      r.lr.x = r.ul.x + gui.char_width - 1;
+      r.lr.y = r.ul.y + gui.char_height - 1;
+  
+      DRAW_START;
+!     PgSetStrokeColor(color);
+!     PgDrawRect(&r, Pg_DRAW_STROKE);
+      DRAW_END;
+  }
+  
+***************
+*** 2362,2375 ****
+  {
+      PhRect_t r;
+  
+!     r.ul.x = FILL_X( gui.col );
+!     r.ul.y = FILL_Y( gui.row ) + gui.char_height - h;
+      r.lr.x = r.ul.x + w - 1;
+      r.lr.y = r.ul.y + h - 1;
+  
+      DRAW_START;
+!     gui_mch_set_bg_color( color );
+!     PgDrawRect( &r, Pg_DRAW_FILL );
+      DRAW_END;
+  }
+  
+--- 2362,2375 ----
+  {
+      PhRect_t r;
+  
+!     r.ul.x = FILL_X(gui.col);
+!     r.ul.y = FILL_Y(gui.row) + gui.char_height - h;
+      r.lr.x = r.ul.x + w - 1;
+      r.lr.y = r.ul.y + h - 1;
+  
+      DRAW_START;
+!     gui_mch_set_bg_color(color);
+!     PgDrawRect(&r, Pg_DRAW_FILL);
+      DRAW_END;
+  }
+  
+***************
+*** 2385,2394 ****
+  gui_mch_start_blink(void)
+  {
+      /* Only turn on the timer on if none of the times are zero */
+!     if( blink_waittime && blink_ontime && blink_offtime && gui.in_focus)
+      {
+!      PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+!              blink_waittime, 0 );
+       blink_state = BLINK_ON;
+       gui_update_cursor(TRUE, FALSE);
+      }
+--- 2385,2394 ----
+  gui_mch_start_blink(void)
+  {
+      /* Only turn on the timer on if none of the times are zero */
+!     if (blink_waittime && blink_ontime && blink_offtime && gui.in_focus)
+      {
+!      PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+!              blink_waittime, 0);
+       blink_state = BLINK_ON;
+       gui_update_cursor(TRUE, FALSE);
+      }
+***************
+*** 2397,2405 ****
+      void
+  gui_mch_stop_blink(void)
+  {
+!     PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL, 0, 0 );
+  
+!     if( blink_state == BLINK_OFF )
+       gui_update_cursor(TRUE, FALSE);
+  
+      blink_state = BLINK_NONE;
+--- 2397,2405 ----
+      void
+  gui_mch_stop_blink(void)
+  {
+!     PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL, 0, 0);
+  
+!     if (blink_state == BLINK_OFF)
+       gui_update_cursor(TRUE, FALSE);
+  
+      blink_state = BLINK_NONE;
+***************
+*** 2417,2431 ****
+      void
+  gui_mch_flash(int msec)
+  {
+!     PgSetFillXORColor( Pg_BLACK, Pg_WHITE );
+!     PgSetDrawMode( Pg_DRAWMODE_XOR );
+      gui_mch_clear_all();
+      gui_mch_flush();
+  
+!     ui_delay( (long) msec, TRUE );
+  
+      gui_mch_clear_all();
+!     PgSetDrawMode( Pg_DRAWMODE_OPAQUE );
+      gui_mch_flush();
+  }
+  
+--- 2417,2431 ----
+      void
+  gui_mch_flash(int msec)
+  {
+!     PgSetFillXORColor(Pg_BLACK, Pg_WHITE);
+!     PgSetDrawMode(Pg_DRAWMODE_XOR);
+      gui_mch_clear_all();
+      gui_mch_flush();
+  
+!     ui_delay((long) msec, TRUE);
+  
+      gui_mch_clear_all();
+!     PgSetDrawMode(Pg_DRAWMODE_OPAQUE);
+      gui_mch_flush();
+  }
+  
+***************
+*** 2440,2446 ****
+  {
+      PhArea_t area = {{x, y}, {w, h}};
+  
+!     PtSetResource( gui.vimTextArea, Pt_ARG_AREA, &area, 0 );
+  }
+  
+      int
+--- 2440,2446 ----
+  {
+      PhArea_t area = {{x, y}, {w, h}};
+  
+!     PtSetResource(gui.vimTextArea, Pt_ARG_AREA, &area, 0);
+  }
+  
+      int
+***************
+*** 2496,2514 ****
+  };
+  
+  static PhImage_t *
+! gui_ph_toolbar_load_icon( char_u *iconfile )
+  {
+      static PhImage_t external_icon;
+      PhImage_t *temp_phi = NULL;
+  
+!     temp_phi = PxLoadImage( iconfile, NULL );
+!     if( temp_phi != NULL )
+      {
+       /* The label widget will free the image/palette/etc. for us when
+        * it's destroyed */
+       temp_phi->flags |= Ph_RELEASE_IMAGE_ALL;
+!      memcpy( &external_icon, temp_phi, sizeof( external_icon ) );
+!      free( temp_phi );
+  
+       temp_phi = &external_icon;
+      }
+--- 2496,2514 ----
+  };
+  
+  static PhImage_t *
+! gui_ph_toolbar_load_icon(char_u *iconfile)
+  {
+      static PhImage_t external_icon;
+      PhImage_t *temp_phi = NULL;
+  
+!     temp_phi = PxLoadImage(iconfile, NULL);
+!     if (temp_phi != NULL)
+      {
+       /* The label widget will free the image/palette/etc. for us when
+        * it's destroyed */
+       temp_phi->flags |= Ph_RELEASE_IMAGE_ALL;
+!      memcpy(&external_icon, temp_phi, sizeof(external_icon));
+!      free(temp_phi);
+  
+       temp_phi = &external_icon;
+      }
+***************
+*** 2523,2551 ****
+   * PhImage_t are copied, and the original PhImage_t aren't needed anymore).
+   */
+  static PhImage_t *
+! gui_ph_toolbar_find_icon( vimmenu_T *menu )
+  {
+      char_u full_pathname[ MAXPATHL + 1 ];
+      PhImage_t *icon = NULL;
+  
+!     if( menu->icon_builtin == FALSE )
+      {
+!      if( menu->iconfile != NULL )
+           /* TODO: use gui_find_iconfile() */
+!          icon = gui_ph_toolbar_load_icon( menu->iconfile );
+  
+       /* TODO: Restrict loading to just .png? Search for any format? */
+!      if( ( icon == NULL ) &&
+!          ( ( gui_find_bitmap( menu->name, full_pathname, "gif" ) == OK ) ||
+!            ( gui_find_bitmap( menu->name, full_pathname, "png" ) == OK ) ) )
+!          icon = gui_ph_toolbar_load_icon( full_pathname );
+  
+!      if( icon != NULL )
+           return icon;
+      }
+  
+!     if( menu->iconidx >= 0 &&
+!          ( menu->iconidx < ARRAY_LENGTH( gui_ph_toolbar_images ) ) )
+      {
+       return gui_ph_toolbar_images[menu->iconidx];
+      }
+--- 2523,2551 ----
+   * PhImage_t are copied, and the original PhImage_t aren't needed anymore).
+   */
+  static PhImage_t *
+! gui_ph_toolbar_find_icon(vimmenu_T *menu)
+  {
+      char_u full_pathname[ MAXPATHL + 1 ];
+      PhImage_t *icon = NULL;
+  
+!     if (menu->icon_builtin == FALSE)
+      {
+!      if (menu->iconfile != NULL)
+           /* TODO: use gui_find_iconfile() */
+!          icon = gui_ph_toolbar_load_icon(menu->iconfile);
+  
+       /* TODO: Restrict loading to just .png? Search for any format? */
+!      if ((icon == NULL) &&
+!          ((gui_find_bitmap(menu->name, full_pathname, "gif") == OK) ||
+!            (gui_find_bitmap(menu->name, full_pathname, "png") == OK)))
+!          icon = gui_ph_toolbar_load_icon(full_pathname);
+  
+!      if (icon != NULL)
+           return icon;
+      }
+  
+!     if (menu->iconidx >= 0 &&
+!          (menu->iconidx < ARRAY_LENGTH(gui_ph_toolbar_images)))
+      {
+       return gui_ph_toolbar_images[menu->iconidx];
+      }
+***************
+*** 2554,2567 ****
+  }
+  #endif
+  
+! #if defined( FEAT_MENU ) || defined( PROTO )
+      void
+  gui_mch_enable_menu(int flag)
+  {
+!     if( flag != 0 )
+!      PtRealizeWidget( gui.vimMenuBar );
+      else
+!      PtUnrealizeWidget( gui.vimMenuBar );
+  }
+  
+      void
+--- 2554,2567 ----
+  }
+  #endif
+  
+! #if defined(FEAT_MENU) || defined(PROTO)
+      void
+  gui_mch_enable_menu(int flag)
+  {
+!     if (flag != 0)
+!      PtRealizeWidget(gui.vimMenuBar);
+      else
+!      PtUnrealizeWidget(gui.vimMenuBar);
+  }
+  
+      void
+***************
+*** 2572,2601 ****
+  
+  /* Change the position of a menu button in the parent */
+      static void
+! gui_ph_position_menu( PtWidget_t *widget, int priority )
+  {
+      PtWidget_t       *traverse;
+      vimmenu_T        *menu;
+  
+!     traverse = PtWidgetChildBack( PtWidgetParent( widget ) );
+  
+      /* Iterate through the list of widgets in traverse, until
+       * we find the position we want to insert our widget into */
+      /* TODO: traverse from front to back, possible speedup? */
+!     while( traverse != NULL )
+      {
+!      PtGetResource( traverse, Pt_ARG_POINTER, &menu, 0 );
+  
+!      if( menu != NULL &&
+               priority < menu->priority &&
+!              widget != traverse )
+       {
+           /* Insert the widget before the current traverse widget */
+!          PtWidgetInsert( widget, traverse, 1 );
+           return;
+       }
+  
+!      traverse = PtWidgetBrotherInFront( traverse );
+      }
+  }
+  
+--- 2572,2601 ----
+  
+  /* Change the position of a menu button in the parent */
+      static void
+! gui_ph_position_menu(PtWidget_t *widget, int priority)
+  {
+      PtWidget_t       *traverse;
+      vimmenu_T        *menu;
+  
+!     traverse = PtWidgetChildBack(PtWidgetParent(widget));
+  
+      /* Iterate through the list of widgets in traverse, until
+       * we find the position we want to insert our widget into */
+      /* TODO: traverse from front to back, possible speedup? */
+!     while (traverse != NULL)
+      {
+!      PtGetResource(traverse, Pt_ARG_POINTER, &menu, 0);
+  
+!      if (menu != NULL &&
+               priority < menu->priority &&
+!              widget != traverse)
+       {
+           /* Insert the widget before the current traverse widget */
+!          PtWidgetInsert(widget, traverse, 1);
+           return;
+       }
+  
+!      traverse = PtWidgetBrotherInFront(traverse);
+      }
+  }
+  
+***************
+*** 2611,2621 ****
+  
+      menu->submenu_id = menu->id = NULL;
+  
+!     if( menu_is_menubar( menu->name ) )
+      {
+  
+!      accel_key = vim_strchr( menu->name, '&' );
+!      if( accel_key != NULL )
+       {
+           mnemonic_str[0] = accel_key[1];
+           mnemonic_str[1] = NUL;
+--- 2611,2621 ----
+  
+      menu->submenu_id = menu->id = NULL;
+  
+!     if (menu_is_menubar(menu->name))
+      {
+  
+!      accel_key = vim_strchr(menu->name, '&');
+!      if (accel_key != NULL)
+       {
+           mnemonic_str[0] = accel_key[1];
+           mnemonic_str[1] = NUL;
+***************
+*** 2623,2673 ****
+  
+       /* Create the menu button */
+       n = 0;
+!      PtSetArg( &args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0 );
+!      PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0 );
+!      if( accel_key != NULL )
+!          PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str, 0 );
+!      PtSetArg( &args[ n++ ], Pt_ARG_POINTER, menu, 0 );
+  
+!      if( parent != NULL )
+!          PtSetArg( &args[ n++ ], Pt_ARG_BUTTON_TYPE, Pt_MENU_RIGHT, 0 );
+  
+!      menu->id = PtCreateWidget( PtMenuButton,
+               (parent == NULL) ? gui.vimMenuBar : parent->submenu_id,
+!              n, args );
+  
+!      PtAddCallback( menu->id, Pt_CB_ARM, gui_ph_handle_pulldown_menu, menu );
+  
+       /* Create the actual menu */
+       n = 0;
+!      if( parent != NULL )
+!          PtSetArg( &args[ n++ ], Pt_ARG_MENU_FLAGS, Pt_TRUE, Pt_MENU_CHILD );
+  
+!      menu->submenu_id = PtCreateWidget( PtMenu, menu->id, n, args );
+  
+!      if( parent == NULL )
+       {
+!          PtAddCallback( menu->submenu_id, Pt_CB_UNREALIZED,
+!                  gui_ph_handle_menu_unrealized, menu );
+  
+!          if( menu->mnemonic != 0 )
+           {
+!              PtAddHotkeyHandler( gui.vimWindow, tolower( menu->mnemonic ),
+!                      Pk_KM_Alt, 0, menu, gui_ph_handle_pulldown_menu );
+           }
+       }
+  
+!      gui_ph_position_menu( menu->id, menu->priority );
+  
+       /* Redraw menubar here instead of gui_mch_draw_menubar */
+!      if( gui.menu_is_active )
+!          PtRealizeWidget( menu->id );
+      }
+!     else if( menu_is_popup( menu->name ) )
+      {
+!      menu->submenu_id = PtCreateWidget( PtMenu, gui.vimWindow, 0, NULL );
+!      PtAddCallback( menu->submenu_id, Pt_CB_UNREALIZED,
+!              gui_ph_handle_menu_unrealized, menu );
+      }
+  }
+  
+--- 2623,2673 ----
+  
+       /* Create the menu button */
+       n = 0;
+!      PtSetArg(&args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0);
+!      PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0);
+!      if (accel_key != NULL)
+!          PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str, 0);
+!      PtSetArg(&args[ n++ ], Pt_ARG_POINTER, menu, 0);
+  
+!      if (parent != NULL)
+!          PtSetArg(&args[ n++ ], Pt_ARG_BUTTON_TYPE, Pt_MENU_RIGHT, 0);
+  
+!      menu->id = PtCreateWidget(PtMenuButton,
+               (parent == NULL) ? gui.vimMenuBar : parent->submenu_id,
+!              n, args);
+  
+!      PtAddCallback(menu->id, Pt_CB_ARM, gui_ph_handle_pulldown_menu, menu);
+  
+       /* Create the actual menu */
+       n = 0;
+!      if (parent != NULL)
+!          PtSetArg(&args[ n++ ], Pt_ARG_MENU_FLAGS, Pt_TRUE, Pt_MENU_CHILD);
+  
+!      menu->submenu_id = PtCreateWidget(PtMenu, menu->id, n, args);
+  
+!      if (parent == NULL)
+       {
+!          PtAddCallback(menu->submenu_id, Pt_CB_UNREALIZED,
+!                  gui_ph_handle_menu_unrealized, menu);
+  
+!          if (menu->mnemonic != 0)
+           {
+!              PtAddHotkeyHandler(gui.vimWindow, tolower(menu->mnemonic),
+!                      Pk_KM_Alt, 0, menu, gui_ph_handle_pulldown_menu);
+           }
+       }
+  
+!      gui_ph_position_menu(menu->id, menu->priority);
+  
+       /* Redraw menubar here instead of gui_mch_draw_menubar */
+!      if (gui.menu_is_active)
+!          PtRealizeWidget(menu->id);
+      }
+!     else if (menu_is_popup(menu->name))
+      {
+!      menu->submenu_id = PtCreateWidget(PtMenu, gui.vimWindow, 0, NULL);
+!      PtAddCallback(menu->submenu_id, Pt_CB_UNREALIZED,
+!              gui_ph_handle_menu_unrealized, menu);
+      }
+  }
+  
+***************
+*** 2681,2784 ****
+      PtArg_t args[13];
+  
+      n = 0;
+!     PtSetArg( &args[ n++ ], Pt_ARG_POINTER, menu, 0 );
+  
+  #ifdef FEAT_TOOLBAR
+!     if( menu_is_toolbar( parent->name ) )
+      {
+!      if( menu_is_separator( menu->name ) )
+       {
+!          PtSetArg( &args[ n++ ], Pt_ARG_SEP_FLAGS,
+!                  Pt_SEP_VERTICAL, Pt_SEP_ORIENTATION );
+!          PtSetArg( &args[ n++ ], Pt_ARG_SEP_TYPE, Pt_ETCHED_IN, 0 );
+!          PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
+!                  Pt_TRUE, Pt_ANCHOR_TOP_BOTTOM );
+!          PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, 2, 0 );
+!          menu->id = PtCreateWidget( PtSeparator, gui.vimToolBar, n, args );
+       }
+       else
+       {
+!          if( strstr( (const char *) p_toolbar, "text" ) != NULL )
+           {
+!              PtSetArg( &args[ n++ ], Pt_ARG_BALLOON_POSITION,
+!                      Pt_BALLOON_BOTTOM, 0 );
+!              PtSetArg( &args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0 );
+!              PtSetArg( &args[ n++ ], Pt_ARG_TEXT_FONT, "TextFont08", 0 );
+           }
+!          if( ( strstr( (const char *) p_toolbar, "icons" ) != NULL ) &&
+!                  ( gui_ph_toolbar_images != NULL ) )
+           {
+!              PtSetArg( &args[ n++ ], Pt_ARG_LABEL_IMAGE,
+!                      gui_ph_toolbar_find_icon( menu ), 0 );
+!              PtSetArg( &args[ n++ ], Pt_ARG_LABEL_TYPE, Pt_TEXT_IMAGE, 0 );
+!              PtSetArg( &args[ n++ ], Pt_ARG_TEXT_IMAGE_SPACING, 0, 0 );
+           }
+!          if( strstr( (const char *) p_toolbar, "tooltips" ) != NULL )
+           {
+!              PtSetArg( &args[ n++ ], Pt_ARG_LABEL_BALLOON,
+!                      gui_ph_show_tooltip, 0 );
+!              PtSetArg( &args[ n++ ], Pt_ARG_LABEL_FLAGS,
+!                      Pt_TRUE, Pt_SHOW_BALLOON );
+           }
+!          PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 1, 0 );
+!          PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_WIDTH, 1, 0 );
+!          PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_FALSE,
+!                  Pt_HIGHLIGHTED | Pt_GETS_FOCUS );
+!          PtSetArg( &args[ n++ ], Pt_ARG_FILL_COLOR, Pg_TRANSPARENT, 0 );
+!          menu->id = PtCreateWidget( PtButton, gui.vimToolBar, n, args );
+  
+!          PtAddCallback( menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu );
+       }
+       /* Update toolbar if it's open */
+!      if( PtWidgetIsRealized( gui.vimToolBar ) )
+!          PtRealizeWidget( menu->id );
+      }
+      else
+  #endif
+!      if( menu_is_separator( menu->name ) )
+      {
+!      menu->id = PtCreateWidget( PtSeparator, parent->submenu_id, n, args );
+      }
+      else
+      {
+!      accel_key = vim_strchr( menu->name, '&' );
+!      if( accel_key != NULL )
+       {
+           mnemonic_str[0] = accel_key[1];
+           mnemonic_str[1] = NUL;
+       }
+  
+!      PtSetArg( &args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0 );
+!      if( accel_key != NULL )
+!          PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str,
+!                  0 );
+  
+!      PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0 );
+  
+!      menu->id = PtCreateWidget( PtMenuButton, parent->submenu_id, n, args );
+  
+!      PtAddCallback( menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu );
+  
+  #ifdef USE_PANEL_GROUP
+!      if( gui_ph_is_buffer_item( menu, parent ) == TRUE )
+       {
+!          PtAddCallback( menu->id, Pt_CB_DESTROYED,
+!                  gui_ph_handle_buffer_remove, menu );
+!          gui_ph_pg_add_buffer( menu->dname );
+       }
+  #endif
+      }
+  
+!     gui_ph_position_menu( menu->id, menu->priority );
+  }
+  
+      void
+  gui_mch_destroy_menu(vimmenu_T *menu)
+  {
+!     if( menu->submenu_id != NULL )
+!      PtDestroyWidget( menu->submenu_id );
+!     if( menu->id != NULL )
+!      PtDestroyWidget( menu->id );
+  
+      menu->submenu_id = NULL;
+      menu->id = NULL;
+--- 2681,2784 ----
+      PtArg_t args[13];
+  
+      n = 0;
+!     PtSetArg(&args[ n++ ], Pt_ARG_POINTER, menu, 0);
+  
+  #ifdef FEAT_TOOLBAR
+!     if (menu_is_toolbar(parent->name))
+      {
+!      if (menu_is_separator(menu->name))
+       {
+!          PtSetArg(&args[ n++ ], Pt_ARG_SEP_FLAGS,
+!                  Pt_SEP_VERTICAL, Pt_SEP_ORIENTATION);
+!          PtSetArg(&args[ n++ ], Pt_ARG_SEP_TYPE, Pt_ETCHED_IN, 0);
+!          PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
+!                  Pt_TRUE, Pt_ANCHOR_TOP_BOTTOM);
+!          PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, 2, 0);
+!          menu->id = PtCreateWidget(PtSeparator, gui.vimToolBar, n, args);
+       }
+       else
+       {
+!          if (strstr((const char *) p_toolbar, "text") != NULL)
+           {
+!              PtSetArg(&args[ n++ ], Pt_ARG_BALLOON_POSITION,
+!                      Pt_BALLOON_BOTTOM, 0);
+!              PtSetArg(&args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0);
+!              PtSetArg(&args[ n++ ], Pt_ARG_TEXT_FONT, "TextFont08", 0);
+           }
+!          if ((strstr((const char *) p_toolbar, "icons") != NULL) &&
+!                  (gui_ph_toolbar_images != NULL))
+           {
+!              PtSetArg(&args[ n++ ], Pt_ARG_LABEL_IMAGE,
+!                      gui_ph_toolbar_find_icon(menu), 0);
+!              PtSetArg(&args[ n++ ], Pt_ARG_LABEL_TYPE, Pt_TEXT_IMAGE, 0);
+!              PtSetArg(&args[ n++ ], Pt_ARG_TEXT_IMAGE_SPACING, 0, 0);
+           }
+!          if (strstr((const char *) p_toolbar, "tooltips") != NULL)
+           {
+!              PtSetArg(&args[ n++ ], Pt_ARG_LABEL_BALLOON,
+!                      gui_ph_show_tooltip, 0);
+!              PtSetArg(&args[ n++ ], Pt_ARG_LABEL_FLAGS,
+!                      Pt_TRUE, Pt_SHOW_BALLOON);
+           }
+!          PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 1, 0);
+!          PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_WIDTH, 1, 0);
+!          PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_FALSE,
+!                  Pt_HIGHLIGHTED | Pt_GETS_FOCUS);
+!          PtSetArg(&args[ n++ ], Pt_ARG_FILL_COLOR, Pg_TRANSPARENT, 0);
+!          menu->id = PtCreateWidget(PtButton, gui.vimToolBar, n, args);
+  
+!          PtAddCallback(menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu);
+       }
+       /* Update toolbar if it's open */
+!      if (PtWidgetIsRealized(gui.vimToolBar))
+!          PtRealizeWidget(menu->id);
+      }
+      else
+  #endif
+!      if (menu_is_separator(menu->name))
+      {
+!      menu->id = PtCreateWidget(PtSeparator, parent->submenu_id, n, args);
+      }
+      else
+      {
+!      accel_key = vim_strchr(menu->name, '&');
+!      if (accel_key != NULL)
+       {
+           mnemonic_str[0] = accel_key[1];
+           mnemonic_str[1] = NUL;
+       }
+  
+!      PtSetArg(&args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0);
+!      if (accel_key != NULL)
+!          PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str,
+!                  0);
+  
+!      PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0);
+  
+!      menu->id = PtCreateWidget(PtMenuButton, parent->submenu_id, n, args);
+  
+!      PtAddCallback(menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu);
+  
+  #ifdef USE_PANEL_GROUP
+!      if (gui_ph_is_buffer_item(menu, parent) == TRUE)
+       {
+!          PtAddCallback(menu->id, Pt_CB_DESTROYED,
+!                  gui_ph_handle_buffer_remove, menu);
+!          gui_ph_pg_add_buffer(menu->dname);
+       }
+  #endif
+      }
+  
+!     gui_ph_position_menu(menu->id, menu->priority);
+  }
+  
+      void
+  gui_mch_destroy_menu(vimmenu_T *menu)
+  {
+!     if (menu->submenu_id != NULL)
+!      PtDestroyWidget(menu->submenu_id);
+!     if (menu->id != NULL)
+!      PtDestroyWidget(menu->id);
+  
+      menu->submenu_id = NULL;
+      menu->id = NULL;
+***************
+*** 2789,2800 ****
+  {
+      long    flags, mask, fields;
+  
+!     if( menu->id == NULL )
+       return;
+  
+!     flags = PtWidgetFlags( menu->id );
+!     if( PtWidgetIsClass( menu->id, PtMenuButton ) &&
+!          PtWidgetIsClass( PtWidgetParent( menu->id ), PtMenu ) )
+      {
+       fields = Pt_FALSE;
+       mask = Pt_SELECTABLE | Pt_HIGHLIGHTED;
+--- 2789,2800 ----
+  {
+      long    flags, mask, fields;
+  
+!     if (menu->id == NULL)
+       return;
+  
+!     flags = PtWidgetFlags(menu->id);
+!     if (PtWidgetIsClass(menu->id, PtMenuButton) &&
+!          PtWidgetIsClass(PtWidgetParent(menu->id), PtMenu))
+      {
+       fields = Pt_FALSE;
+       mask = Pt_SELECTABLE | Pt_HIGHLIGHTED;
+***************
+*** 2805,2815 ****
+       mask = Pt_BLOCKED | Pt_GHOST;
+      }
+  
+!     if( ! grey )
+       fields = ~fields;
+  
+!     PtSetResource( menu->id, Pt_ARG_FLAGS, fields,
+!          mask );
+  }
+  
+      void
+--- 2805,2815 ----
+       mask = Pt_BLOCKED | Pt_GHOST;
+      }
+  
+!     if (! grey)
+       fields = ~fields;
+  
+!     PtSetResource(menu->id, Pt_ARG_FLAGS, fields,
+!          mask);
+  }
+  
+      void
+***************
+*** 2830,2837 ****
+      void
+  gui_mch_show_popupmenu(vimmenu_T *menu)
+  {
+!     PtSetResource( menu->submenu_id, Pt_ARG_POS, &abs_mouse, 0 );
+!     PtRealizeWidget( menu->submenu_id );
+  }
+  
+      void
+--- 2830,2837 ----
+      void
+  gui_mch_show_popupmenu(vimmenu_T *menu)
+  {
+!     PtSetResource(menu->submenu_id, Pt_ARG_POS, &abs_mouse, 0);
+!     PtRealizeWidget(menu->submenu_id);
+  }
+  
+      void
+***************
+*** 2842,2855 ****
+  
+  #endif
+  
+! #if defined( FEAT_TOOLBAR ) || defined( PROTO )
+      void
+  gui_mch_show_toolbar(int showit)
+  {
+!     if( showit )
+!      PtRealizeWidget( gui.vimToolBar );
+      else
+!      PtUnrealizeWidget( gui.vimToolBar );
+  }
+  #endif
+  
+--- 2842,2855 ----
+  
+  #endif
+  
+! #if defined(FEAT_TOOLBAR) || defined(PROTO)
+      void
+  gui_mch_show_toolbar(int showit)
+  {
+!     if (showit)
+!      PtRealizeWidget(gui.vimToolBar);
+      else
+!      PtUnrealizeWidget(gui.vimToolBar);
+  }
+  #endif
+  
+***************
+*** 2870,2903 ****
+      FontQueryInfo   info;
+      int_u        style;
+  
+!     font_tag = alloc( MAX_FONT_TAG );
+!     if( font_tag != NULL )
+      {
+!      if( PfGenerateFontName( font_name, font_flags, font_size,
+!                  font_tag ) != NULL )
+       {
+           /* Enforce some limits on the font used */
+           style = PHFONT_INFO_FIXED;
+  
+!          if( enforce & PF_STYLE_BOLD )
+               style |= PHFONT_INFO_BOLD;
+!          if( enforce & PF_STYLE_ANTIALIAS )
+               style |= PHFONT_INFO_ALIAS;
+!          if( enforce & PF_STYLE_ITALIC )
+               style |= PHFONT_INFO_ITALIC;
+  
+!          PfQueryFontInfo( font_tag, &info );
+  
+!          if( info.size == 0 )
+               font_size = 0;
+  
+           /* Make sure font size matches, and that the font style
+            * at least has the bits we're checking for */
+!          if( font_size == info.size &&
+!                  style == (info.style & style) )
+               return (GuiFont)font_tag;
+       }
+!      vim_free( font_tag );
+      }
+      return NULL;
+  }
+--- 2870,2903 ----
+      FontQueryInfo   info;
+      int_u        style;
+  
+!     font_tag = alloc(MAX_FONT_TAG);
+!     if (font_tag != NULL)
+      {
+!      if (PfGenerateFontName(font_name, font_flags, font_size,
+!                  font_tag) != NULL)
+       {
+           /* Enforce some limits on the font used */
+           style = PHFONT_INFO_FIXED;
+  
+!          if (enforce & PF_STYLE_BOLD)
+               style |= PHFONT_INFO_BOLD;
+!          if (enforce & PF_STYLE_ANTIALIAS)
+               style |= PHFONT_INFO_ALIAS;
+!          if (enforce & PF_STYLE_ITALIC)
+               style |= PHFONT_INFO_ITALIC;
+  
+!          PfQueryFontInfo(font_tag, &info);
+  
+!          if (info.size == 0)
+               font_size = 0;
+  
+           /* Make sure font size matches, and that the font style
+            * at least has the bits we're checking for */
+!          if (font_size == info.size &&
+!                  style == (info.style & style))
+               return (GuiFont)font_tag;
+       }
+!      vim_free(font_tag);
+      }
+      return NULL;
+  }
+***************
+*** 2919,2936 ****
+       char_u *vim_font,
+       char_u **font_name,
+       int_u *font_flags,
+!      int_u *font_size )
+  {
+      char_u  *mark;
+      int_u   name_len, size;
+  
+!     mark = vim_strchr( vim_font, ':' );
+!     if( mark == NULL )
+!      name_len = STRLEN( vim_font );
+      else
+!      name_len = (int_u) ( mark - vim_font );
+  
+!     *font_name = vim_strnsave( vim_font, name_len );
+      if (*font_name != NULL)
+      {
+       if (mark != NULL)
+--- 2919,2936 ----
+       char_u *vim_font,
+       char_u **font_name,
+       int_u *font_flags,
+!      int_u *font_size)
+  {
+      char_u  *mark;
+      int_u   name_len, size;
+  
+!     mark = vim_strchr(vim_font, ':');
+!     if (mark == NULL)
+!      name_len = STRLEN(vim_font);
+      else
+!      name_len = (int_u) (mark - vim_font);
+  
+!     *font_name = vim_strnsave(vim_font, name_len);
+      if (*font_name != NULL)
+      {
+       if (mark != NULL)
+***************
+*** 2944,2950 ****
+                   case 'i': *font_flags |= PF_STYLE_ITALIC; break;
+  
+                   case 's':
+!                      size = getdigits( &mark );
+                       /* Restrict the size to some vague limits */
+                       if (size < 1 || size > 100)
+                           size = 8;
+--- 2944,2950 ----
+                   case 'i': *font_flags |= PF_STYLE_ITALIC; break;
+  
+                   case 's':
+!                      size = getdigits(&mark);
+                       /* Restrict the size to some vague limits */
+                       if (size < 1 || size > 100)
+                           size = 8;
+***************
+*** 2979,3031 ****
+       vim_font_name = "PC Terminal";
+      }
+  
+!     if (STRCMP( vim_font_name, "*" ) == 0)
+      {
+!      font_tag = PtFontSelection( gui.vimWindow, NULL, NULL,
+!              "pcterm12", -1, PHFONT_FIXED, NULL );
+  
+       if (font_tag == NULL)
+           return FAIL;
+  
+!      gui_mch_free_font( gui.norm_font );
+       gui.norm_font = font_tag;
+  
+!      PfQueryFontInfo( font_tag, &info );
+!      font_name = vim_strsave( info.font );
+      }
+      else
+      {
+!      if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+!                  &font_size ) == FALSE)
+           return FAIL;
+  
+!      font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
+       if (font_tag == NULL)
+       {
+!          vim_free( font_name );
+           return FAIL;
+       }
+  
+!      gui_mch_free_font( gui.norm_font );
+       gui.norm_font = font_tag;
+      }
+  
+!     gui_mch_free_font( gui.bold_font );
+!     gui.bold_font = gui_ph_get_font( font_name, font_flags | PF_STYLE_BOLD,
+!          font_size, PF_STYLE_BOLD );
+! 
+!     gui_mch_free_font( gui.ital_font );
+!     gui.ital_font = gui_ph_get_font( font_name, font_flags | PF_STYLE_ITALIC,
+!          font_size, PF_STYLE_ITALIC );
+  
+      /* This extent was brought to you by the letter 'g' */
+!     PfExtentText( &extent, NULL, font_tag, "g", 1 );
+  
+      gui.char_width = extent.lr.x - extent.ul.x + 1;
+      gui.char_height = (- extent.ul.y) + extent.lr.y + 1;
+      gui.char_ascent = - extent.ul.y;
+  
+!     vim_free( font_name );
+      return OK;
+  }
+  
+--- 2979,3031 ----
+       vim_font_name = "PC Terminal";
+      }
+  
+!     if (STRCMP(vim_font_name, "*") == 0)
+      {
+!      font_tag = PtFontSelection(gui.vimWindow, NULL, NULL,
+!              "pcterm12", -1, PHFONT_FIXED, NULL);
+  
+       if (font_tag == NULL)
+           return FAIL;
+  
+!      gui_mch_free_font(gui.norm_font);
+       gui.norm_font = font_tag;
+  
+!      PfQueryFontInfo(font_tag, &info);
+!      font_name = vim_strsave(info.font);
+      }
+      else
+      {
+!      if (gui_ph_parse_font_name(vim_font_name, &font_name, &font_flags,
+!                  &font_size) == FALSE)
+           return FAIL;
+  
+!      font_tag = gui_ph_get_font(font_name, font_flags, font_size, 0);
+       if (font_tag == NULL)
+       {
+!          vim_free(font_name);
+           return FAIL;
+       }
+  
+!      gui_mch_free_font(gui.norm_font);
+       gui.norm_font = font_tag;
+      }
+  
+!     gui_mch_free_font(gui.bold_font);
+!     gui.bold_font = gui_ph_get_font(font_name, font_flags | PF_STYLE_BOLD,
+!          font_size, PF_STYLE_BOLD);
+! 
+!     gui_mch_free_font(gui.ital_font);
+!     gui.ital_font = gui_ph_get_font(font_name, font_flags | PF_STYLE_ITALIC,
+!          font_size, PF_STYLE_ITALIC);
+  
+      /* This extent was brought to you by the letter 'g' */
+!     PfExtentText(&extent, NULL, font_tag, "g", 1);
+  
+      gui.char_width = extent.lr.x - extent.ul.x + 1;
+      gui.char_height = (- extent.ul.y) + extent.lr.y + 1;
+      gui.char_ascent = - extent.ul.y;
+  
+!     vim_free(font_name);
+      return OK;
+  }
+  
+***************
+*** 3037,3043 ****
+  {
+      FontQueryInfo info;
+  
+!     PfQueryFontInfo( gui.norm_font, &info );
+  
+      gui.char_height = - info.ascender + info.descender + p_linespace;
+      gui.char_ascent = - info.ascender + p_linespace / 2;
+--- 3037,3043 ----
+  {
+      FontQueryInfo info;
+  
+!     PfQueryFontInfo(gui.norm_font, &info);
+  
+      gui.char_height = - info.ascender + info.descender + p_linespace;
+      gui.char_ascent = - info.ascender + p_linespace / 2;
+***************
+*** 3053,3070 ****
+      int_u   font_size = 12;
+      int_u   font_flags = 0;
+  
+!     if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+!              &font_size ) != FALSE)
+      {
+!      font_tag = gui_ph_get_font( font_name, font_flags, font_size, -1 );
+!      vim_free( font_name );
+  
+       if (font_tag != NULL)
+           return (GuiFont)font_tag;
+      }
+  
+      if (report_error)
+!      EMSG2(e_font, vim_font_name );
+  
+      return FAIL;
+  }
+--- 3053,3070 ----
+      int_u   font_size = 12;
+      int_u   font_flags = 0;
+  
+!     if (gui_ph_parse_font_name(vim_font_name, &font_name, &font_flags,
+!              &font_size) != FALSE)
+      {
+!      font_tag = gui_ph_get_font(font_name, font_flags, font_size, -1);
+!      vim_free(font_name);
+  
+       if (font_tag != NULL)
+           return (GuiFont)font_tag;
+      }
+  
+      if (report_error)
+!      EMSG2(e_font, vim_font_name);
+  
+      return FAIL;
+  }
+***************
+*** 3088,3099 ****
+      void
+  gui_mch_set_font(GuiFont font)
+  {
+!     PgSetFont( font );
+  }
+  
+      void
+  gui_mch_free_font(GuiFont font)
+  {
+!     vim_free( font );
+  }
+  
+--- 3088,3099 ----
+      void
+  gui_mch_set_font(GuiFont font)
+  {
+!     PgSetFont(font);
+  }
+  
+      void
+  gui_mch_free_font(GuiFont font)
+  {
+!     vim_free(font);
+  }
+  
+*** ../vim-7.3.309/src/version.c       2011-09-14 15:41:54.000000000 +0200
+--- src/version.c      2011-09-14 16:01:50.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     310,
+  /**/
+
+-- 
+An operatingsystem is just a name you give to the rest of bloating
+idiosyncratic machine-based-features you left out of your editor.
+                       (author unknown)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.311.patch0 b/vim/patches/vim-7.3.311.patch0
new file mode 100644 (file)
index 0000000..13aec74
--- /dev/null
@@ -0,0 +1,351 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.311
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.311 (replaces 7.3.289)
+Problem:    Complete function isn't called when the leader changed.
+Solution:   Allow the complete function to return a dictionary with a flag
+           that indicates ins_compl_restart() is to be called when the leader
+           changes. (Taro Muraoka)
+Files:     runtime/insert.txt, src/edit.c, src/eval.c, src/proto/eval.pro
+
+
+*** ../vim-7.3.310/src/edit.c  2011-09-05 20:13:37.000000000 +0200
+--- src/edit.c 2011-09-14 16:43:14.000000000 +0200
+***************
+*** 135,140 ****
+--- 135,142 ----
+  static int     compl_cont_mode = 0;
+  static expand_T        compl_xp;
+  
++ static int     compl_opt_refresh_always = FALSE;
++ 
+  static void ins_ctrl_x __ARGS((void));
+  static int  has_compl_option __ARGS((int dict_opt));
+  static int  ins_compl_accept_char __ARGS((int c));
+***************
+*** 153,161 ****
+  static void ins_compl_free __ARGS((void));
+  static void ins_compl_clear __ARGS((void));
+  static int  ins_compl_bs __ARGS((void));
+  static void ins_compl_new_leader __ARGS((void));
+  static void ins_compl_addleader __ARGS((int c));
+! static int ins_compl_len __ARGS((void));
+  static void ins_compl_restart __ARGS((void));
+  static void ins_compl_set_original_text __ARGS((char_u *str));
+  static void ins_compl_addfrommatch __ARGS((void));
+--- 155,164 ----
+  static void ins_compl_free __ARGS((void));
+  static void ins_compl_clear __ARGS((void));
+  static int  ins_compl_bs __ARGS((void));
++ static int  ins_compl_need_restart __ARGS((void));
+  static void ins_compl_new_leader __ARGS((void));
+  static void ins_compl_addleader __ARGS((int c));
+! static int  ins_compl_len __ARGS((void));
+  static void ins_compl_restart __ARGS((void));
+  static void ins_compl_set_original_text __ARGS((char_u *str));
+  static void ins_compl_addfrommatch __ARGS((void));
+***************
+*** 163,168 ****
+--- 166,172 ----
+  static buf_T *ins_compl_next_buf __ARGS((buf_T *buf, int flag));
+  #if defined(FEAT_COMPL_FUNC) || defined(FEAT_EVAL)
+  static void ins_compl_add_list __ARGS((list_T *list));
++ static void ins_compl_add_dict __ARGS((dict_T *dict));
+  #endif
+  static int  ins_compl_get_exp __ARGS((pos_T *ini));
+  static void ins_compl_delete __ARGS((void));
+***************
+*** 3341,3347 ****
+      /* Deleted more than what was used to find matches or didn't finish
+       * finding all matches: need to look for matches all over again. */
+      if (curwin->w_cursor.col <= compl_col + compl_length
+!                                                   || compl_was_interrupted)
+       ins_compl_restart();
+  
+      vim_free(compl_leader);
+--- 3345,3351 ----
+      /* Deleted more than what was used to find matches or didn't finish
+       * finding all matches: need to look for matches all over again. */
+      if (curwin->w_cursor.col <= compl_col + compl_length
+!                                                || ins_compl_need_restart())
+       ins_compl_restart();
+  
+      vim_free(compl_leader);
+***************
+*** 3355,3360 ****
+--- 3359,3378 ----
+  }
+  
+  /*
++  * Return TRUE when we need to find matches again, ins_compl_restart() is to
++  * be called.
++  */
++     static int
++ ins_compl_need_restart()
++ {
++     /* Return TRUE if we didn't complete finding matches or when the
++      * 'completefunc' returned "always" in the "refresh" dictionary item. */
++     return compl_was_interrupted
++      || ((ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI)
++                                                && compl_opt_refresh_always);
++ }
++ 
++ /*
+   * Called after changing "compl_leader".
+   * Show the popup menu with a different set of matches.
+   * May also search for matches again if the previous search was interrupted.
+***************
+*** 3443,3449 ****
+       ins_char(c);
+  
+      /* If we didn't complete finding matches we must search again. */
+!     if (compl_was_interrupted)
+       ins_compl_restart();
+  
+      vim_free(compl_leader);
+--- 3461,3467 ----
+       ins_char(c);
+  
+      /* If we didn't complete finding matches we must search again. */
+!     if (ins_compl_need_restart())
+       ins_compl_restart();
+  
+      vim_free(compl_leader);
+***************
+*** 3871,3882 ****
+      int              type;       /* CTRL_X_OMNI or CTRL_X_FUNCTION */
+      char_u   *base;
+  {
+!     list_T      *matchlist;
+      char_u   *args[2];
+      char_u   *funcname;
+      pos_T    pos;
+      win_T    *curwin_save;
+      buf_T    *curbuf_save;
+  
+      funcname = (type == CTRL_X_FUNCTION) ? curbuf->b_p_cfu : curbuf->b_p_ofu;
+      if (*funcname == NUL)
+--- 3889,3902 ----
+      int              type;       /* CTRL_X_OMNI or CTRL_X_FUNCTION */
+      char_u   *base;
+  {
+!     list_T      *matchlist = NULL;
+!     dict_T   *matchdict = NULL;
+      char_u   *args[2];
+      char_u   *funcname;
+      pos_T    pos;
+      win_T    *curwin_save;
+      buf_T    *curbuf_save;
++     typval_T rettv;
+  
+      funcname = (type == CTRL_X_FUNCTION) ? curbuf->b_p_cfu : curbuf->b_p_ofu;
+      if (*funcname == NUL)
+***************
+*** 3889,3895 ****
+      pos = curwin->w_cursor;
+      curwin_save = curwin;
+      curbuf_save = curbuf;
+!     matchlist = call_func_retlist(funcname, 2, args, FALSE);
+      if (curwin_save != curwin || curbuf_save != curbuf)
+      {
+       EMSG(_(e_complwin));
+--- 3909,3933 ----
+      pos = curwin->w_cursor;
+      curwin_save = curwin;
+      curbuf_save = curbuf;
+! 
+!     /* Call a function, which returns a list or dict. */
+!     if (call_vim_function(funcname, 2, args, FALSE, &rettv) == OK)
+!     {
+!      switch (rettv.v_type)
+!      {
+!          case VAR_LIST:
+!              matchlist = rettv.vval.v_list;
+!              break;
+!          case VAR_DICT:
+!              matchdict = rettv.vval.v_dict;
+!              break;
+!          default:
+!              /* TODO: Give error message? */
+!              clear_tv(&rettv);
+!              break;
+!      }
+!     }
+! 
+      if (curwin_save != curwin || curbuf_save != curbuf)
+      {
+       EMSG(_(e_complwin));
+***************
+*** 3902,3911 ****
+--- 3940,3954 ----
+       EMSG(_(e_compldel));
+       goto theend;
+      }
++ 
+      if (matchlist != NULL)
+       ins_compl_add_list(matchlist);
++     else if (matchdict != NULL)
++      ins_compl_add_dict(matchdict);
+  
+  theend:
++     if (matchdict != NULL)
++      dict_unref(matchdict);
+      if (matchlist != NULL)
+       list_unref(matchlist);
+  }
+***************
+*** 3934,3939 ****
+--- 3977,4009 ----
+  }
+  
+  /*
++  * Add completions from a dict.
++  */
++     static void
++ ins_compl_add_dict(dict)
++     dict_T   *dict;
++ {
++     dictitem_T       *refresh;
++     dictitem_T       *words;
++ 
++     /* Check for optional "refresh" item. */
++     compl_opt_refresh_always = FALSE;
++     refresh = dict_find(dict, (char_u *)"refresh", 7);
++     if (refresh != NULL && refresh->di_tv.v_type == VAR_STRING)
++     {
++      char_u  *v = refresh->di_tv.vval.v_string;
++ 
++      if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
++          compl_opt_refresh_always = TRUE;
++     }
++ 
++     /* Add completions from a "words" list. */
++     words = dict_find(dict, (char_u *)"words", 5);
++     if (words != NULL && words->di_tv.v_type == VAR_LIST)
++      ins_compl_add_list(words->di_tv.vval.v_list);
++ }
++ 
++ /*
+   * Add a match to the list of matches from a typeval_T.
+   * If the given string is already in the list of completions, then return
+   * NOTDONE, otherwise add it to the list and return OK.  If there is an error,
+***************
+*** 5088,5093 ****
+--- 5158,5169 ----
+               return FAIL;
+           }
+  
++          /*
++           * Reset extended parameters of completion, when start new
++           * completion.
++           */
++          compl_opt_refresh_always = FALSE;
++ 
+           if (col < 0)
+               col = curs_col;
+           compl_col = col;
+*** ../vim-7.3.310/src/eval.c  2011-09-14 14:33:47.000000000 +0200
+--- src/eval.c 2011-09-14 16:16:47.000000000 +0200
+***************
+*** 380,388 ****
+  
+  static void prepare_vimvar __ARGS((int idx, typval_T *save_tv));
+  static void restore_vimvar __ARGS((int idx, typval_T *save_tv));
+- #if defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)
+- static int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, typval_T *rettv));
+- #endif
+  static int ex_let_vars __ARGS((char_u *arg, typval_T *tv, int copy, int semicolon, int var_count, char_u *nextchars));
+  static char_u *skip_var_list __ARGS((char_u *arg, int *var_count, int *semicolon));
+  static char_u *skip_var_one __ARGS((char_u *arg));
+--- 380,385 ----
+***************
+*** 451,457 ****
+  static void set_ref_in_list __ARGS((list_T *l, int copyID));
+  static void set_ref_in_item __ARGS((typval_T *tv, int copyID));
+  static int rettv_dict_alloc __ARGS((typval_T *rettv));
+- static void dict_unref __ARGS((dict_T *d));
+  static void dict_free __ARGS((dict_T *d, int recurse));
+  static dictitem_T *dictitem_copy __ARGS((dictitem_T *org));
+  static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item));
+--- 448,453 ----
+***************
+*** 1563,1569 ****
+   * arguments are currently supported.
+   * Returns OK or FAIL.
+   */
+!     static int
+  call_vim_function(func, argc, argv, safe, rettv)
+      char_u      *func;
+      int              argc;
+--- 1559,1565 ----
+   * arguments are currently supported.
+   * Returns OK or FAIL.
+   */
+!     int
+  call_vim_function(func, argc, argv, safe, rettv)
+      char_u      *func;
+      int              argc;
+***************
+*** 6903,6909 ****
+   * Unreference a Dictionary: decrement the reference count and free it when it
+   * becomes zero.
+   */
+!     static void
+  dict_unref(d)
+      dict_T *d;
+  {
+--- 6899,6905 ----
+   * Unreference a Dictionary: decrement the reference count and free it when it
+   * becomes zero.
+   */
+!     void
+  dict_unref(d)
+      dict_T *d;
+  {
+*** ../vim-7.3.310/src/proto/eval.pro  2010-08-15 21:57:28.000000000 +0200
+--- src/proto/eval.pro 2011-09-14 16:16:47.000000000 +0200
+***************
+*** 23,28 ****
+--- 23,29 ----
+  list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
+  int get_spellword __ARGS((list_T *list, char_u **pp));
+  typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
++ int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, typval_T *rettv));
+  void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
+  long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
+  void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
+***************
+*** 52,57 ****
+--- 53,59 ----
+  int list_append_string __ARGS((list_T *l, char_u *str, int len));
+  int garbage_collect __ARGS((void));
+  dict_T *dict_alloc __ARGS((void));
++ void dict_unref __ARGS((dict_T *d));
+  dictitem_T *dictitem_alloc __ARGS((char_u *key));
+  void dictitem_free __ARGS((dictitem_T *item));
+  int dict_add __ARGS((dict_T *d, dictitem_T *item));
+*** ../vim-7.3.310/src/version.c       2011-09-14 16:04:52.000000000 +0200
+--- src/version.c      2011-09-14 16:25:08.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     311,
+  /**/
+
+-- 
+Contrary to popular belief, it's often your clothing that gets promoted, not
+you.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.312.patch0 b/vim/patches/vim-7.3.312.patch0
new file mode 100644 (file)
index 0000000..d2480e0
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.312
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.312 (after 7.3.306)
+Problem:    Can't compile with tiny features.
+Solution:   Add #ifdef around win_valid().
+Files:     src/buffer.c
+
+
+*** ../vim-7.3.311/src/buffer.c        2011-09-14 14:43:21.000000000 +0200
+--- src/buffer.c       2011-09-14 17:46:24.000000000 +0200
+***************
+*** 416,422 ****
+  #endif
+  
+      buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
+!     if (win_valid(win) && win->w_buffer == buf)
+       win->w_buffer = NULL;  /* make sure we don't use the buffer now */
+  
+  #ifdef FEAT_AUTOCMD
+--- 416,426 ----
+  #endif
+  
+      buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
+!     if (
+! #ifdef FEAT_WINDOWS
+!      win_valid(win) &&
+! #endif
+!                        win->w_buffer == buf)
+       win->w_buffer = NULL;  /* make sure we don't use the buffer now */
+  
+  #ifdef FEAT_AUTOCMD
+*** ../vim-7.3.311/src/version.c       2011-09-14 16:52:02.000000000 +0200
+--- src/version.c      2011-09-14 17:27:24.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     312,
+  /**/
+
+-- 
+You have heard the saying that if you put a thousand monkeys in a room with a
+thousand typewriters and waited long enough, eventually you would have a room
+full of dead monkeys.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.313.patch0 b/vim/patches/vim-7.3.313.patch0
new file mode 100644 (file)
index 0000000..ca818b8
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.313
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.313 (after 7.3.307)
+Problem:    One more warning when compiling with dynamic Python 3.
+Solution:   Change PySliceObject to PyObject.
+Files:      src/if_python3.c
+
+
+*** ../vim-7.3.312/src/if_python3.c    2011-09-14 15:41:54.000000000 +0200
+--- src/if_python3.c   2011-09-14 18:54:49.000000000 +0200
+***************
+*** 194,200 ****
+  static int (*py3_PySys_SetObject)(char *, PyObject *);
+  static PyObject* (*py3_PyList_Append)(PyObject *, PyObject *);
+  static Py_ssize_t (*py3_PyList_Size)(PyObject *);
+! static int (*py3_PySlice_GetIndicesEx)(PySliceObject *r, Py_ssize_t length,
+                    Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength);
+  static PyObject* (*py3_PyErr_NoMemory)(void);
+  static void (*py3_Py_Finalize)(void);
+--- 194,200 ----
+  static int (*py3_PySys_SetObject)(char *, PyObject *);
+  static PyObject* (*py3_PyList_Append)(PyObject *, PyObject *);
+  static Py_ssize_t (*py3_PyList_Size)(PyObject *);
+! static int (*py3_PySlice_GetIndicesEx)(PyObject *r, Py_ssize_t length,
+                    Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength);
+  static PyObject* (*py3_PyErr_NoMemory)(void);
+  static void (*py3_Py_Finalize)(void);
+*** ../vim-7.3.312/src/version.c       2011-09-14 17:50:05.000000000 +0200
+--- src/version.c      2011-09-14 18:56:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     313,
+  /**/
+
+-- 
+All good vision statements are created by groups of people with bloated
+bladders who would rather be doing anything else.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.314.patch0 b/vim/patches/vim-7.3.314.patch0
new file mode 100644 (file)
index 0000000..76415d6
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.314
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.314 (after 7.3.304)
+Problem:    Missing parenthesis.
+Solution:   Add it. (Benjamin R. Haskell)
+Files:     src/Make_mvc.mak
+
+
+*** ../vim-7.3.313/src/Make_mvc.mak    2011-09-14 10:49:44.000000000 +0200
+--- src/Make_mvc.mak   2011-09-14 18:56:24.000000000 +0200
+***************
+*** 785,791 ****
+  PERL_INC = /I $(PERL_INCDIR)
+  PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
+  XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
+! !if exist($(XSUBPP)
+  XSUBPP = $(PERL_EXE) $(XSUBPP)
+  !else
+  XSUBPP = xsubpp
+--- 785,791 ----
+  PERL_INC = /I $(PERL_INCDIR)
+  PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
+  XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
+! !if exist($(XSUBPP))
+  XSUBPP = $(PERL_EXE) $(XSUBPP)
+  !else
+  XSUBPP = xsubpp
+*** ../vim-7.3.313/src/version.c       2011-09-14 18:59:35.000000000 +0200
+--- src/version.c      2011-09-14 19:01:12.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     314,
+  /**/
+
+-- 
+Often you're less important than your furniture.  If you think about it, you
+can get fired but your furniture stays behind, gainfully employed at the
+company that didn't need _you_ anymore.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.315.patch0 b/vim/patches/vim-7.3.315.patch0
new file mode 100644 (file)
index 0000000..2240f7b
--- /dev/null
@@ -0,0 +1,475 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.315
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.315
+Problem:    Opening a window before forking causes problems for GTK.
+Solution:   Fork first, create the window in the child and report back to the
+           parent process whether it worked.  If successful the parent exits,
+           if unsuccessful the child exits and the parent continues in the
+           terminal. (Tim Starling)
+Files:     src/gui.c
+
+
+*** ../vim-7.3.314/src/gui.c   2011-08-10 17:44:41.000000000 +0200
+--- src/gui.c  2011-09-14 17:34:30.000000000 +0200
+***************
+*** 37,42 ****
+--- 37,60 ----
+  static void gui_set_bg_color __ARGS((char_u *name));
+  static win_T *xy2win __ARGS((int x, int y));
+  
++ #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
++      && !defined(__APPLE__)
++ # define MAY_FORK
++ static void gui_do_fork __ARGS((void));
++ 
++ static int gui_read_child_pipe __ARGS((int fd));
++ 
++ /* Return values for gui_read_child_pipe */
++ enum {
++     GUI_CHILD_IO_ERROR,
++     GUI_CHILD_OK,
++     GUI_CHILD_FAILED
++ };
++ 
++ #endif /* MAY_FORK */
++ 
++ static void gui_attempt_start __ARGS((void));
++ 
+  static int can_update_cursor = TRUE; /* can display the cursor */
+  
+  /*
+***************
+*** 59,105 ****
+  gui_start()
+  {
+      char_u   *old_term;
+- #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
+-      && !defined(__APPLE__)
+- # define MAY_FORK
+-     int              dofork = TRUE;
+- #endif
+      static int       recursive = 0;
+  
+      old_term = vim_strsave(T_NAME);
+  
+-     /*
+-      * Set_termname() will call gui_init() to start the GUI.
+-      * Set the "starting" flag, to indicate that the GUI will start.
+-      *
+-      * We don't want to open the GUI shell until after we've read .gvimrc,
+-      * otherwise we don't know what font we will use, and hence we don't know
+-      * what size the shell should be.  So if there are errors in the .gvimrc
+-      * file, they will have to go to the terminal: Set full_screen to FALSE.
+-      * full_screen will be set to TRUE again by a successful termcapinit().
+-      */
+      settmode(TMODE_COOK);            /* stop RAW mode */
+      if (full_screen)
+       cursor_on();                    /* needed for ":gui" in .vimrc */
+-     gui.starting = TRUE;
+      full_screen = FALSE;
+  
+! #ifdef FEAT_GUI_GTK
+!     gui.event_time = GDK_CURRENT_TIME;
+! #endif
+  
+  #ifdef MAY_FORK
+!     if (!gui.dofork || vim_strchr(p_go, GO_FORG) || recursive)
+!      dofork = FALSE;
+  #endif
+!     ++recursive;
+! 
+!     termcapinit((char_u *)"builtin_gui");
+!     gui.starting = recursive - 1;
+  
+      if (!gui.in_use)                 /* failed to start GUI */
+      {
+!      termcapinit(old_term);          /* back to old term settings */
+       settmode(TMODE_RAW);            /* restart RAW mode */
+  #ifdef FEAT_TITLE
+       set_title_defaults();           /* set 'title' and 'icon' again */
+--- 77,123 ----
+  gui_start()
+  {
+      char_u   *old_term;
+      static int       recursive = 0;
+  
+      old_term = vim_strsave(T_NAME);
+  
+      settmode(TMODE_COOK);            /* stop RAW mode */
+      if (full_screen)
+       cursor_on();                    /* needed for ":gui" in .vimrc */
+      full_screen = FALSE;
+  
+!     ++recursive;
+  
+  #ifdef MAY_FORK
+!     /*
+!      * Quit the current process and continue in the child.
+!      * Makes "gvim file" disconnect from the shell it was started in.
+!      * Don't do this when Vim was started with "-f" or the 'f' flag is present
+!      * in 'guioptions'.
+!      */
+!     if (gui.dofork && !vim_strchr(p_go, GO_FORG) && recursive <= 1)
+!     {
+!      gui_do_fork();
+!     }
+!     else
+  #endif
+!     {
+!      gui_attempt_start();
+!     }
+  
+      if (!gui.in_use)                 /* failed to start GUI */
+      {
+!      /* Back to old term settings
+!       *
+!       * FIXME: If we got here because a child process failed and flagged to
+!       * the parent to resume, and X11 is enabled with FEAT_TITLE, this will
+!       * hit an X11 I/O error and do a longjmp(), leaving recursive
+!       * permanently set to 1. This is probably not as big a problem as it
+!       * sounds, because gui_mch_init() in both gui_x11.c and gui_gtk_x11.c
+!       * return "OK" unconditionally, so it would be very difficult to
+!       * actually hit this case.
+!       */
+!      termcapinit(old_term);
+       settmode(TMODE_RAW);            /* restart RAW mode */
+  #ifdef FEAT_TITLE
+       set_title_defaults();           /* set 'title' and 'icon' again */
+***************
+*** 108,113 ****
+--- 126,166 ----
+  
+      vim_free(old_term);
+  
++ #ifdef FEAT_AUTOCMD
++     /* If the GUI started successfully, trigger the GUIEnter event, otherwise
++      * the GUIFailed event. */
++     gui_mch_update();
++     apply_autocmds(gui.in_use ? EVENT_GUIENTER : EVENT_GUIFAILED,
++                                                 NULL, NULL, FALSE, curbuf);
++ #endif
++     --recursive;
++ }
++ 
++ /*
++  * Set_termname() will call gui_init() to start the GUI.
++  * Set the "starting" flag, to indicate that the GUI will start.
++  *
++  * We don't want to open the GUI shell until after we've read .gvimrc,
++  * otherwise we don't know what font we will use, and hence we don't know
++  * what size the shell should be.  So if there are errors in the .gvimrc
++  * file, they will have to go to the terminal: Set full_screen to FALSE.
++  * full_screen will be set to TRUE again by a successful termcapinit().
++  */
++     static void
++ gui_attempt_start()
++ {
++     static int recursive = 0;
++ 
++     ++recursive;
++     gui.starting = TRUE;
++ 
++ #ifdef FEAT_GUI_GTK
++     gui.event_time = GDK_CURRENT_TIME;
++ #endif
++ 
++     termcapinit((char_u *)"builtin_gui");
++     gui.starting = recursive - 1;
++ 
+  #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
+      if (gui.in_use)
+      {
+***************
+*** 123,218 ****
+       display_errors();
+      }
+  #endif
+  
+! #if defined(MAY_FORK) && !defined(__QNXNTO__)
+!     /*
+!      * Quit the current process and continue in the child.
+!      * Makes "gvim file" disconnect from the shell it was started in.
+!      * Don't do this when Vim was started with "-f" or the 'f' flag is present
+!      * in 'guioptions'.
+!      */
+!     if (gui.in_use && dofork)
+      {
+!      int     pipefd[2];      /* pipe between parent and child */
+!      int     pipe_error;
+!      char    dummy;
+!      pid_t   pid = -1;
+! 
+!      /* Setup a pipe between the child and the parent, so that the parent
+!       * knows when the child has done the setsid() call and is allowed to
+!       * exit. */
+!      pipe_error = (pipe(pipefd) < 0);
+!      pid = fork();
+!      if (pid > 0)        /* Parent */
+       {
+!          /* Give the child some time to do the setsid(), otherwise the
+!           * exit() may kill the child too (when starting gvim from inside a
+!           * gvim). */
+!          if (pipe_error)
+!              ui_delay(300L, TRUE);
+!          else
+           {
+!              /* The read returns when the child closes the pipe (or when
+!               * the child dies for some reason). */
+!              close(pipefd[1]);
+!              ignored = (int)read(pipefd[0], &dummy, (size_t)1);
+!              close(pipefd[0]);
+           }
+! 
+!          /* When swapping screens we may need to go to the next line, e.g.,
+!           * after a hit-enter prompt and using ":gui". */
+!          if (newline_on_exit)
+!              mch_errmsg("\r\n");
+! 
+!          /*
+!           * The parent must skip the normal exit() processing, the child
+!           * will do it.  For example, GTK messes up signals when exiting.
+!           */
+!          _exit(0);
+       }
+  
+! # if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
+       /*
+!       * Change our process group.  On some systems/shells a CTRL-C in the
+!       * shell where Vim was started would otherwise kill gvim!
+        */
+!      if (pid == 0)       /* child */
+  #  if defined(HAVE_SETSID)
+!          (void)setsid();
+  #  else
+!          (void)setpgid(0, 0);
+  #  endif
+  # endif
+!      if (!pipe_error)
+!      {
+!          close(pipefd[0]);
+!          close(pipefd[1]);
+!      }
+  
+  # if defined(FEAT_GUI_GNOME) && defined(FEAT_SESSION)
+!      /* Tell the session manager our new PID */
+!      gui_mch_forked();
+  # endif
+      }
+- #else
+- # if defined(__QNXNTO__)
+-     if (gui.in_use && dofork)
+-      procmgr_daemon(0, PROCMGR_DAEMON_KEEPUMASK | PROCMGR_DAEMON_NOCHDIR |
+-              PROCMGR_DAEMON_NOCLOSE | PROCMGR_DAEMON_NODEVNULL);
+- # endif
+- #endif
+  
+! #ifdef FEAT_AUTOCMD
+!     /* If the GUI started successfully, trigger the GUIEnter event, otherwise
+!      * the GUIFailed event. */
+!     gui_mch_update();
+!     apply_autocmds(gui.in_use ? EVENT_GUIENTER : EVENT_GUIFAILED,
+!                                                 NULL, NULL, FALSE, curbuf);
+  #endif
+  
+!     --recursive;
+  }
+  
+  /*
+   * Call this when vim starts up, whether or not the GUI is started
+   */
+--- 176,346 ----
+       display_errors();
+      }
+  #endif
++     --recursive;
++ }
+  
+! #ifdef MAY_FORK
+! 
+! /* for waitpid() */
+! # if defined(HAVE_SYS_WAIT_H) || defined(HAVE_UNION_WAIT)
+! #  include <sys/wait.h>
+! # endif
+! 
+! /*
+!  * Create a new process, by forking. In the child, start the GUI, and in
+!  * the parent, exit.
+!  *
+!  * If something goes wrong, this will return with gui.in_use still set
+!  * to FALSE, in which case the caller should continue execution without
+!  * the GUI.
+!  *
+!  * If the child fails to start the GUI, then the child will exit and the
+!  * parent will return. If the child succeeds, then the parent will exit
+!  * and the child will return.
+!  */
+!     static void
+! gui_do_fork()
+! {
+! #ifdef __QNXNTO__
+!     procmgr_daemon(0, PROCMGR_DAEMON_KEEPUMASK | PROCMGR_DAEMON_NOCHDIR |
+!          PROCMGR_DAEMON_NOCLOSE | PROCMGR_DAEMON_NODEVNULL);
+!     gui_attempt_start();
+!     return;
+! #else
+!     int              pipefd[2];      /* pipe between parent and child */
+!     int              pipe_error;
+!     int              status;
+!     int              exit_status;
+!     pid_t    pid = -1;
+!     FILE     *parent_file;
+! 
+!     /* Setup a pipe between the child and the parent, so that the parent
+!      * knows when the child has done the setsid() call and is allowed to
+!      * exit. */
+!     pipe_error = (pipe(pipefd) < 0);
+!     pid = fork();
+!     if (pid < 0)         /* Fork error */
+      {
+!      EMSG(_("E851: Failed to create a new process for the GUI"));
+!      return;
+!     }
+!     else if (pid > 0)            /* Parent */
+!     {
+!      /* Give the child some time to do the setsid(), otherwise the
+!       * exit() may kill the child too (when starting gvim from inside a
+!       * gvim). */
+!      if (!pipe_error)
+       {
+!          /* The read returns when the child closes the pipe (or when
+!           * the child dies for some reason). */
+!          close(pipefd[1]);
+!          status = gui_read_child_pipe(pipefd[0]);
+!          if (status == GUI_CHILD_FAILED)
+           {
+!              /* The child failed to start the GUI, so the caller must
+!               * continue. There may be more error information written
+!               * to stderr by the child. */
+! # ifdef __NeXT__
+!              wait4(pid, &exit_status, 0, (struct rusage *)0);
+! # else
+!              waitpid(pid, &exit_status, 0);
+! # endif
+!              EMSG(_("E852: The child process failed to start the GUI"));
+!              return;
+           }
+!          else if (status == GUI_CHILD_IO_ERROR)
+!          {
+!              pipe_error = TRUE;
+!          }
+!          /* else GUI_CHILD_OK: parent exit */
+       }
+  
+!      if (pipe_error)
+!          ui_delay(300L, TRUE);
+! 
+!      /* When swapping screens we may need to go to the next line, e.g.,
+!       * after a hit-enter prompt and using ":gui". */
+!      if (newline_on_exit)
+!          mch_errmsg("\r\n");
+! 
+       /*
+!       * The parent must skip the normal exit() processing, the child
+!       * will do it.  For example, GTK messes up signals when exiting.
+        */
+!      _exit(0);
+!     }
+!     /* Child */
+! 
+! # if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
+!     /*
+!      * Change our process group.  On some systems/shells a CTRL-C in the
+!      * shell where Vim was started would otherwise kill gvim!
+!      */
+  #  if defined(HAVE_SETSID)
+!     (void)setsid();
+  #  else
+!     (void)setpgid(0, 0);
+  #  endif
+  # endif
+!     if (!pipe_error)
+!      close(pipefd[0]);
+  
+  # if defined(FEAT_GUI_GNOME) && defined(FEAT_SESSION)
+!     /* Tell the session manager our new PID */
+!     gui_mch_forked();
+  # endif
++ 
++     if (!pipe_error)
++      parent_file = fdopen(pipefd[1], "w");
++     else
++      parent_file = NULL;
++ 
++     /* Try to start the GUI */
++     gui_attempt_start();
++ 
++     /* Notify the parent */
++     if (parent_file != NULL)
++     {
++      fputs(gui.in_use ? "ok" : "fail", parent_file);
++      fclose(parent_file);
+      }
+  
+!     /* If we failed to start the GUI, exit now. */
+!     if (!gui.in_use)
+!      exit(1);
+  #endif
++ }
+  
+! /*
+!  * Read from a pipe assumed to be connected to the child process (this
+!  * function is called from the parent).
+!  * Return GUI_CHILD_OK if the child successfully started the GUI,
+!  * GUY_CHILD_FAILED if the child failed, or GUI_CHILD_IO_ERROR if there was
+!  * some other error.
+!  *
+!  * The file descriptor will be closed before the function returns.
+!  */
+!     static int
+! gui_read_child_pipe(int fd)
+! {
+!     size_t   bytes_read;
+!     FILE     *file;
+!     char     buffer[10];
+! 
+!     file = fdopen(fd, "r");
+!     if (!file)
+!      return GUI_CHILD_IO_ERROR;
+! 
+!     bytes_read = fread(buffer, sizeof(char), sizeof(buffer)-1, file);
+!     buffer[bytes_read] = '\0';
+!     fclose(file);
+!     if (strcmp(buffer, "ok") == 0)
+!      return GUI_CHILD_OK;
+!     return GUI_CHILD_FAILED;
+  }
+  
++ #endif /* MAY_FORK */
++ 
+  /*
+   * Call this when vim starts up, whether or not the GUI is started
+   */
+*** ../vim-7.3.314/src/version.c       2011-09-14 19:01:38.000000000 +0200
+--- src/version.c      2011-09-14 19:02:45.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     315,
+  /**/
+
+-- 
+A)bort, R)etry, B)ang it with a large hammer
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.316.patch0 b/vim/patches/vim-7.3.316.patch0
new file mode 100644 (file)
index 0000000..96a7d42
--- /dev/null
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.316
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.316 (after 7.3.306)
+Problem:    Crash when 'colorcolumn' is set and closing buffer.
+Solution:   Check for w_buffer to be NULL. (Yasuhiro Matsumoto)
+Files:     src/option.c
+
+
+*** ../vim-7.3.315/src/option.c        2011-06-12 22:13:37.000000000 +0200
+--- src/option.c       2011-09-21 13:26:31.000000000 +0200
+***************
+*** 7036,7041 ****
+--- 7036,7044 ----
+      int              i;
+      int              j = 0;
+  
++     if (wp->w_buffer == NULL)
++      return NULL;  /* buffer was closed */
++ 
+      for (s = wp->w_p_cc; *s != NUL && count < 255;)
+      {
+       if (*s == '-' || *s == '+')
+*** ../vim-7.3.315/src/version.c       2011-09-14 19:04:35.000000000 +0200
+--- src/version.c      2011-09-21 13:40:05.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     316,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+25. You believe nothing looks sexier than a man in boxer shorts illuminated
+    only by a 17" inch svga monitor.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.317.patch0 b/vim/patches/vim-7.3.317.patch0
new file mode 100644 (file)
index 0000000..220cae2
--- /dev/null
@@ -0,0 +1,116 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.317
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.317
+Problem:    Calling debug.debug() in Lua may cause Vim to hang.
+Solution:   Add a better debug method. (Rob Hoelz, Luis Carvalho)
+Files:     src/if_lua.c
+
+
+*** ../vim-7.3.316/src/if_lua.c        2011-01-17 19:53:20.000000000 +0100
+--- src/if_lua.c       2011-09-21 17:15:21.000000000 +0200
+***************
+*** 100,105 ****
+--- 100,106 ----
+  #define lua_setfield dll_lua_setfield
+  #define lua_rawset dll_lua_rawset
+  #define lua_rawseti dll_lua_rawseti
++ #define lua_remove dll_lua_remove
+  #define lua_setmetatable dll_lua_setmetatable
+  #define lua_call dll_lua_call
+  #define lua_pcall dll_lua_pcall
+***************
+*** 161,166 ****
+--- 162,168 ----
+  void (*dll_lua_setfield) (lua_State *L, int idx, const char *k);
+  void (*dll_lua_rawset) (lua_State *L, int idx);
+  void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
++ void (*dll_lua_remove) (lua_State *L, int idx);
+  int (*dll_lua_setmetatable) (lua_State *L, int objindex);
+  void (*dll_lua_call) (lua_State *L, int nargs, int nresults);
+  int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc);
+***************
+*** 229,234 ****
+--- 231,237 ----
+      {"lua_setfield", (luaV_function) &dll_lua_setfield},
+      {"lua_rawset", (luaV_function) &dll_lua_rawset},
+      {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
++     {"lua_remove", (luaV_function) &dll_lua_remove},
+      {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
+      {"lua_call", (luaV_function) &dll_lua_call},
+      {"lua_pcall", (luaV_function) &dll_lua_pcall},
+***************
+*** 924,929 ****
+--- 927,957 ----
+  }
+  
+      static int
++ luaV_debug(lua_State *L)
++ {
++     lua_settop(L, 0);
++     lua_getglobal(L, "vim");
++     lua_getfield(L, -1, "eval");
++     lua_remove(L, -2); /* vim.eval at position 1 */
++     for (;;)
++     {
++      const char *input;
++      size_t l;
++      lua_pushvalue(L, 1); /* vim.eval */
++      lua_pushliteral(L, "input('lua_debug> ')");
++      lua_call(L, 1, 1); /* return string */
++      input = lua_tolstring(L, -1, &l);
++      if (l == 0 || strcmp(input, "cont") == 0)
++          return 0;
++      msg_putchar('\n'); /* avoid outputting on input line */
++      if (luaL_loadbuffer(L, input, l, "=(debug command)")
++              || lua_pcall(L, 0, 0, 0))
++          luaV_emsg(L);
++      lua_settop(L, 1); /* remove eventual returns, but keep vim.eval */
++     }
++ }
++ 
++     static int
+  luaV_command(lua_State *L)
+  {
+      do_cmdline_cmd((char_u *) luaL_checkstring(L, 1));
+***************
+*** 1082,1087 ****
+--- 1110,1120 ----
+      /* print */
+      lua_pushcfunction(L, luaV_print);
+      lua_setglobal(L, "print");
++     /* debug.debug */
++     lua_getglobal(L, "debug");
++     lua_pushcfunction(L, luaV_debug);
++     lua_setfield(L, -2, "debug");
++     lua_pop(L, 1);
+      /* free */
+      lua_pushlightuserdata(L, (void *) LUAVIM_FREE);
+      lua_pushcfunction(L, luaV_free);
+*** ../vim-7.3.316/src/version.c       2011-09-21 13:40:13.000000000 +0200
+--- src/version.c      2011-09-21 17:14:01.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     317,
+  /**/
+
+-- 
+Q: What is the difference betwee open-source and commercial software?
+A: If you have a problem with commercial software you can call a phone
+   number and they will tell you it might be solved in a future version.
+   For open-source software there isn't a phone number to call, but you
+   get the solution within a day.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.318.patch0 b/vim/patches/vim-7.3.318.patch0
new file mode 100644 (file)
index 0000000..3694480
--- /dev/null
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.318
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.318
+Problem:    "C" on the last line deletes that line if it's blank.
+Solution:   Only delete the last line for a delete operation. (James Vega)
+Files:     src/ops.c
+
+
+*** ../vim-7.3.317/src/ops.c   2011-08-10 12:10:55.000000000 +0200
+--- src/ops.c  2011-09-21 17:32:36.000000000 +0200
+***************
+*** 1922,1928 ****
+                   curwin->w_cursor.coladd = 0;
+           }
+  #endif
+!          if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
+                   && n > (int)STRLEN(ml_get(oap->end.lnum)))
+           {
+               /* Special case: gH<Del> deletes the last line. */
+--- 1922,1930 ----
+                   curwin->w_cursor.coladd = 0;
+           }
+  #endif
+!          if (oap->op_type == OP_DELETE
+!                  && oap->inclusive
+!                  && oap->end.lnum == curbuf->b_ml.ml_line_count
+                   && n > (int)STRLEN(ml_get(oap->end.lnum)))
+           {
+               /* Special case: gH<Del> deletes the last line. */
+***************
+*** 3331,3338 ****
+       if (regname == '=')
+       {
+           /* For the = register we need to split the string at NL
+!           * characters. */
+!          /* Loop twice: count the number of lines and save them. */
+           for (;;)
+           {
+               y_size = 0;
+--- 3333,3340 ----
+       if (regname == '=')
+       {
+           /* For the = register we need to split the string at NL
+!           * characters.
+!           * Loop twice: count the number of lines and save them. */
+           for (;;)
+           {
+               y_size = 0;
+***************
+*** 3348,3354 ****
+                       if (y_array != NULL)
+                           *ptr = NUL;
+                       ++ptr;
+!                      /* A trailing '\n' makes the string linewise */
+                       if (*ptr == NUL)
+                       {
+                           y_type = MLINE;
+--- 3350,3356 ----
+                       if (y_array != NULL)
+                           *ptr = NUL;
+                       ++ptr;
+!                      /* A trailing '\n' makes the register linewise. */
+                       if (*ptr == NUL)
+                       {
+                           y_type = MLINE;
+*** ../vim-7.3.317/src/version.c       2011-09-21 17:15:34.000000000 +0200
+--- src/version.c      2011-09-21 17:31:48.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     318,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+26. You check your mail. It says "no new messages." So you check it again.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.319.patch0 b/vim/patches/vim-7.3.319.patch0
new file mode 100644 (file)
index 0000000..68448ab
--- /dev/null
@@ -0,0 +1,154 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.319
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.319 (after 7.3.311)
+Problem:    Redobuff doesn't always include changes of the completion leader.
+Solution:   Insert backspaces as needed. (idea by Taro Muraoka)
+Files:     src/edit.c
+
+
+*** ../vim-7.3.318/src/edit.c  2011-09-14 16:52:02.000000000 +0200
+--- src/edit.c 2011-09-21 17:59:10.000000000 +0200
+***************
+*** 163,168 ****
+--- 163,169 ----
+  static void ins_compl_set_original_text __ARGS((char_u *str));
+  static void ins_compl_addfrommatch __ARGS((void));
+  static int  ins_compl_prep __ARGS((int c));
++ static void ins_compl_fixRedoBufForLeader __ARGS((char_u *ptr_arg));
+  static buf_T *ins_compl_next_buf __ARGS((buf_T *buf, int flag));
+  #if defined(FEAT_COMPL_FUNC) || defined(FEAT_EVAL)
+  static void ins_compl_add_list __ARGS((list_T *list));
+***************
+*** 3713,3721 ****
+            * memory that was used, and make sure we can redo the insert. */
+           if (compl_curr_match != NULL || compl_leader != NULL || c == Ctrl_E)
+           {
+-              char_u  *p;
+-              int     temp = 0;
+- 
+               /*
+                * If any of the original typed text has been changed, eg when
+                * ignorecase is set, we must add back-spaces to the redo
+--- 3714,3719 ----
+***************
+*** 3726,3750 ****
+                */
+               if (compl_curr_match != NULL && compl_used_match && c != Ctrl_E)
+                   ptr = compl_curr_match->cp_str;
+-              else if (compl_leader != NULL)
+-                  ptr = compl_leader;
+               else
+!                  ptr = compl_orig_text;
+!              if (compl_orig_text != NULL)
+!              {
+!                  p = compl_orig_text;
+!                  for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp];
+!                                                                     ++temp)
+!                      ;
+! #ifdef FEAT_MBYTE
+!                  if (temp > 0)
+!                      temp -= (*mb_head_off)(compl_orig_text, p + temp);
+! #endif
+!                  for (p += temp; *p != NUL; mb_ptr_adv(p))
+!                      AppendCharToRedobuff(K_BS);
+!              }
+!              if (ptr != NULL)
+!                  AppendToRedobuffLit(ptr + temp, -1);
+           }
+  
+  #ifdef FEAT_CINDENT
+--- 3724,3732 ----
+                */
+               if (compl_curr_match != NULL && compl_used_match && c != Ctrl_E)
+                   ptr = compl_curr_match->cp_str;
+               else
+!                  ptr = NULL;
+!              ins_compl_fixRedoBufForLeader(ptr);
+           }
+  
+  #ifdef FEAT_CINDENT
+***************
+*** 3834,3839 ****
+--- 3816,3859 ----
+  }
+  
+  /*
++  * Fix the redo buffer for the completion leader replacing some of the typed
++  * text.  This inserts backspaces and appends the changed text.
++  * "ptr" is the known leader text or NUL.
++  */
++     static void
++ ins_compl_fixRedoBufForLeader(ptr_arg)
++     char_u *ptr_arg;
++ {
++     int          len;
++     char_u  *p;
++     char_u  *ptr = ptr_arg;
++ 
++     if (ptr == NULL)
++     {
++      if (compl_leader != NULL)
++          ptr = compl_leader;
++      else
++          return;  /* nothing to do */
++     }
++     if (compl_orig_text != NULL)
++     {
++      p = compl_orig_text;
++      for (len = 0; p[len] != NUL && p[len] == ptr[len]; ++len)
++          ;
++ #ifdef FEAT_MBYTE
++      if (len > 0)
++          len -= (*mb_head_off)(p, p + len);
++ #endif
++      for (p += len; *p != NUL; mb_ptr_adv(p))
++          AppendCharToRedobuff(K_BS);
++     }
++     else
++      len = 0;
++     if (ptr != NULL)
++      AppendToRedobuffLit(ptr + len, -1);
++ }
++ 
++ /*
+   * Loops through the list of windows, loaded-buffers or non-loaded-buffers
+   * (depending on flag) starting from buf and looking for a non-scanned
+   * buffer (other than curbuf).       curbuf is special, if it is called with
+***************
+*** 5241,5246 ****
+--- 5261,5270 ----
+       else
+           edit_submode = (char_u *)_(CTRL_X_MSG(ctrl_x_mode));
+  
++      /* If any of the original typed text has been changed we need to fix
++       * the redo buffer. */
++      ins_compl_fixRedoBufForLeader(NULL);
++ 
+       /* Always add completion for the original text. */
+       vim_free(compl_orig_text);
+       compl_orig_text = vim_strnsave(line + compl_col, compl_length);
+*** ../vim-7.3.318/src/version.c       2011-09-21 17:33:49.000000000 +0200
+--- src/version.c      2011-09-21 18:21:07.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     319,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+27. You refer to your age as 3.x.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.320.patch0 b/vim/patches/vim-7.3.320.patch0
new file mode 100644 (file)
index 0000000..3b957c2
--- /dev/null
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.320
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.320
+Problem:    When a 0xa0 character is in a sourced file the error message for
+           unrecognized command does not show the problem.
+Solution:   Display 0xa0 as <a0>.
+Files:     src/ex_docmd.c
+
+
+*** ../vim-7.3.319/src/ex_docmd.c      2011-07-20 16:36:35.000000000 +0200
+--- src/ex_docmd.c     2011-09-21 19:02:15.000000000 +0200
+***************
+*** 61,66 ****
+--- 61,67 ----
+  static char_u        *do_one_cmd __ARGS((char_u **, int, char_u *(*fgetline)(int, void *, int), void *cookie));
+  static int   if_level = 0;           /* depth in :if */
+  #endif
++ static void  append_command __ARGS((char_u *cmd));
+  static char_u        *find_command __ARGS((exarg_T *eap, int *full));
+  
+  static void  ex_abbreviate __ARGS((exarg_T *eap));
+***************
+*** 2136,2145 ****
+       {
+           STRCPY(IObuff, _("E492: Not an editor command"));
+           if (!sourcing)
+!          {
+!              STRCAT(IObuff, ": ");
+!              STRNCAT(IObuff, *cmdlinep, 40);
+!          }
+           errormsg = IObuff;
+       }
+       goto doend;
+--- 2137,2143 ----
+       {
+           STRCPY(IObuff, _("E492: Not an editor command"));
+           if (!sourcing)
+!              append_command(*cmdlinep);
+           errormsg = IObuff;
+       }
+       goto doend;
+***************
+*** 2708,2715 ****
+               STRCPY(IObuff, errormsg);
+               errormsg = IObuff;
+           }
+!          STRCAT(errormsg, ": ");
+!          STRNCAT(errormsg, *cmdlinep, IOSIZE - STRLEN(IObuff) - 1);
+       }
+       emsg(errormsg);
+      }
+--- 2706,2712 ----
+               STRCPY(IObuff, errormsg);
+               errormsg = IObuff;
+           }
+!          append_command(*cmdlinep);
+       }
+       emsg(errormsg);
+      }
+***************
+*** 2797,2802 ****
+--- 2794,2835 ----
+  }
+  
+  /*
++  * Append "cmd" to the error message in IObuff.
++  * Takes care of limiting the length and handling 0xa0, which would be
++  * invisible otherwise.
++  */
++     static void
++ append_command(cmd)
++     char_u *cmd;
++ {
++     char_u *s = cmd;
++     char_u *d;
++ 
++     STRCAT(IObuff, ": ");
++     d = IObuff + STRLEN(IObuff);
++     while (*s != NUL && d - IObuff < IOSIZE - 7)
++     {
++      if (
++ #ifdef FEAT_MBYTE
++              enc_utf8 ? (s[0] == 0xc2 && s[1] == 0xa0) :
++ #endif
++              *s == 0xa0)
++      {
++          s +=
++ #ifdef FEAT_MBYTE
++              enc_utf8 ? 2 :
++ #endif
++              1;
++          STRCPY(d, "<a0>");
++          d += 4;
++      }
++      else
++          MB_COPY_CHAR(s, d);
++     }
++     *d = NUL;
++ }
++ 
++ /*
+   * Find an Ex command by its name, either built-in or user.
+   * Start of the name can be found at eap->cmd.
+   * Returns pointer to char after the command name.
+*** ../vim-7.3.319/src/version.c       2011-09-21 18:23:02.000000000 +0200
+--- src/version.c      2011-09-21 19:04:35.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     320,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+28. You have comandeered your teenager's phone line for the net and even his
+    friends know not to call on his line anymore.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.321.patch0 b/vim/patches/vim-7.3.321.patch0
new file mode 100644 (file)
index 0000000..6303b01
--- /dev/null
@@ -0,0 +1,304 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.321
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.321
+Problem:    Code not following Vim style.
+Solution:   Fix the style. (Elias Diem)
+Files:     src/os_qnx.c
+
+
+*** ../vim-7.3.320/src/os_qnx.c        2011-06-19 01:14:22.000000000 +0200
+--- src/os_qnx.c       2011-09-21 19:48:08.000000000 +0200
+***************
+*** 24,33 ****
+  #if defined(FEAT_GUI_PHOTON)
+      PhChannelParms_t parms;
+  
+!     memset( &parms, 0, sizeof( parms ) );
+      parms.flags = Ph_DYNAMIC_BUFFER;
+  
+!     is_photon_available = (PhAttach( NULL, &parms ) != NULL) ? TRUE : FALSE;
+  #endif
+  }
+  
+--- 24,33 ----
+  #if defined(FEAT_GUI_PHOTON)
+      PhChannelParms_t parms;
+  
+!     memset(&parms, 0, sizeof(parms));
+      parms.flags = Ph_DYNAMIC_BUFFER;
+  
+!     is_photon_available = (PhAttach(NULL, &parms) != NULL) ? TRUE : FALSE;
+  #endif
+  }
+  
+***************
+*** 39,46 ****
+  /* Turn on the clipboard for a console vim when photon is running */
+  void qnx_clip_init()
+  {
+!     if( is_photon_available == TRUE && !gui.in_use)
+!      clip_init( TRUE );
+  }
+  
+  /*****************************************************************************/
+--- 39,46 ----
+  /* Turn on the clipboard for a console vim when photon is running */
+  void qnx_clip_init()
+  {
+!     if (is_photon_available == TRUE && !gui.in_use)
+!      clip_init(TRUE);
+  }
+  
+  /*****************************************************************************/
+***************
+*** 48,79 ****
+  
+  /* No support for owning the clipboard */
+  int
+! clip_mch_own_selection( VimClipboard *cbd )
+  {
+      return FALSE;
+  }
+  
+  void
+! clip_mch_lose_selection( VimClipboard *cbd )
+  {
+  }
+  
+  void
+! clip_mch_request_selection( VimClipboard *cbd )
+  {
+      int                  type = MLINE, clip_length = 0, is_type_set = FALSE;
+      void         *cbdata;
+      PhClipHeader    *clip_header;
+      char_u       *clip_text = NULL;
+  
+!     cbdata = PhClipboardPasteStart( PhInputGroup( NULL ));
+!     if( cbdata != NULL )
+      {
+       /* Look for the vim specific clip first */
+!      clip_header = PhClipboardPasteType( cbdata, CLIP_TYPE_VIM );
+!      if( clip_header != NULL && clip_header->data != NULL )
+       {
+!          switch( *(char *) clip_header->data )
+           {
+               default: /* fallthrough to line type */
+               case 'L': type = MLINE; break;
+--- 48,79 ----
+  
+  /* No support for owning the clipboard */
+  int
+! clip_mch_own_selection(VimClipboard *cbd)
+  {
+      return FALSE;
+  }
+  
+  void
+! clip_mch_lose_selection(VimClipboard *cbd)
+  {
+  }
+  
+  void
+! clip_mch_request_selection(VimClipboard *cbd)
+  {
+      int                  type = MLINE, clip_length = 0, is_type_set = FALSE;
+      void         *cbdata;
+      PhClipHeader    *clip_header;
+      char_u       *clip_text = NULL;
+  
+!     cbdata = PhClipboardPasteStart(PhInputGroup(NULL));
+!     if (cbdata != NULL)
+      {
+       /* Look for the vim specific clip first */
+!      clip_header = PhClipboardPasteType(cbdata, CLIP_TYPE_VIM);
+!      if (clip_header != NULL && clip_header->data != NULL)
+       {
+!          switch(*(char *) clip_header->data)
+           {
+               default: /* fallthrough to line type */
+               case 'L': type = MLINE; break;
+***************
+*** 86,112 ****
+       }
+  
+       /* Try for just normal text */
+!      clip_header = PhClipboardPasteType( cbdata, CLIP_TYPE_TEXT );
+!      if( clip_header != NULL )
+       {
+           clip_text = clip_header->data;
+           clip_length  = clip_header->length - 1;
+  
+!          if( clip_text != NULL && is_type_set == FALSE )
+               type = MAUTO;
+       }
+  
+!      if( (clip_text != NULL) && (clip_length > 0) )
+       {
+!          clip_yank_selection( type, clip_text, clip_length, cbd );
+       }
+  
+!      PhClipboardPasteFinish( cbdata );
+      }
+  }
+  
+  void
+! clip_mch_set_selection( VimClipboard *cbd )
+  {
+      int type;
+      long_u  len;
+--- 86,112 ----
+       }
+  
+       /* Try for just normal text */
+!      clip_header = PhClipboardPasteType(cbdata, CLIP_TYPE_TEXT);
+!      if (clip_header != NULL)
+       {
+           clip_text = clip_header->data;
+           clip_length  = clip_header->length - 1;
+  
+!          if (clip_text != NULL && is_type_set == FALSE)
+               type = MAUTO;
+       }
+  
+!      if ((clip_text != NULL) && (clip_length > 0))
+       {
+!          clip_yank_selection(type, clip_text, clip_length, cbd);
+       }
+  
+!      PhClipboardPasteFinish(cbdata);
+      }
+  }
+  
+  void
+! clip_mch_set_selection(VimClipboard *cbd)
+  {
+      int type;
+      long_u  len;
+***************
+*** 114,144 ****
+      PhClipHeader clip_header[2];
+  
+      /* Prevent recursion from clip_get_selection() */
+!     if( cbd->owned == TRUE )
+       return;
+  
+      cbd->owned = TRUE;
+!     clip_get_selection( cbd );
+      cbd->owned = FALSE;
+  
+!     type = clip_convert_selection( &str, &len, cbd );
+!     if( type >= 0 )
+      {
+!      text_clip = lalloc( len + 1, TRUE ); /* Normal text */
+  
+!      if( text_clip && vim_clip )
+       {
+!          memset( clip_header, 0, sizeof( clip_header ) );
+  
+!          STRNCPY( clip_header[0].type, CLIP_TYPE_VIM, 8 );
+!          clip_header[0].length = sizeof( vim_clip );
+           clip_header[0].data   = vim_clip;
+  
+!          STRNCPY( clip_header[1].type, CLIP_TYPE_TEXT, 8 );
+           clip_header[1].length = len + 1;
+           clip_header[1].data   = text_clip;
+  
+!          switch( type )
+           {
+               default: /* fallthrough to MLINE */
+               case MLINE:     *vim_clip = 'L'; break;
+--- 114,144 ----
+      PhClipHeader clip_header[2];
+  
+      /* Prevent recursion from clip_get_selection() */
+!     if (cbd->owned == TRUE)
+       return;
+  
+      cbd->owned = TRUE;
+!     clip_get_selection(cbd);
+      cbd->owned = FALSE;
+  
+!     type = clip_convert_selection(&str, &len, cbd);
+!     if (type >= 0)
+      {
+!      text_clip = lalloc(len + 1, TRUE); /* Normal text */
+  
+!      if (text_clip && vim_clip)
+       {
+!          memset(clip_header, 0, sizeof(clip_header));
+  
+!          STRNCPY(clip_header[0].type, CLIP_TYPE_VIM, 8);
+!          clip_header[0].length = sizeof(vim_clip);
+           clip_header[0].data   = vim_clip;
+  
+!          STRNCPY(clip_header[1].type, CLIP_TYPE_TEXT, 8);
+           clip_header[1].length = len + 1;
+           clip_header[1].data   = text_clip;
+  
+!          switch(type)
+           {
+               default: /* fallthrough to MLINE */
+               case MLINE:     *vim_clip = 'L'; break;
+***************
+*** 148,161 ****
+  #endif
+           }
+  
+!          vim_strncpy( text_clip, str, len );
+  
+           vim_clip[ 1 ] = NUL;
+  
+!          PhClipboardCopy( PhInputGroup( NULL ), 2, clip_header);
+       }
+!      vim_free( text_clip );
+      }
+!     vim_free( str );
+  }
+  #endif
+--- 148,161 ----
+  #endif
+           }
+  
+!          vim_strncpy(text_clip, str, len);
+  
+           vim_clip[ 1 ] = NUL;
+  
+!          PhClipboardCopy(PhInputGroup(NULL), 2, clip_header);
+       }
+!      vim_free(text_clip);
+      }
+!     vim_free(str);
+  }
+  #endif
+*** ../vim-7.3.320/src/version.c       2011-09-21 19:10:42.000000000 +0200
+--- src/version.c      2011-09-21 19:47:50.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     321,
+  /**/
+
+-- 
+Bypasses are devices that allow some people to dash from point A to
+point B very fast while other people dash from point B to point A very
+fast.  People living at point C, being a point directly in between, are
+often given to wonder what's so great about point A that so many people
+from point B are so keen to get there and what's so great about point B
+that so many people from point A are so keen to get there.  They often
+wish that people would just once and for all work out where the hell
+they wanted to be.
+               -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.322.patch0 b/vim/patches/vim-7.3.322.patch0
new file mode 100644 (file)
index 0000000..d81b9ec
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.322
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.322
+Problem:    #ifdef for PDP_RETVAL doesn't work, INT_PTR can be a typedef.
+Solution:   Check the MSC version and 64 bit flags. (Sergiu Dotenco)
+Files:     src/os_mswin.c
+
+
+*** ../vim-7.3.321/src/os_mswin.c      2011-08-10 17:07:56.000000000 +0200
+--- src/os_mswin.c     2011-09-21 20:09:05.000000000 +0200
+***************
+*** 1781,1787 ****
+  }
+  
+  /* Attempt to make this work for old and new compilers */
+! #if !defined(_MSC_VER) || (_MSC_VER < 1300) || !defined(INT_PTR)
+  # define PDP_RETVAL BOOL
+  #else
+  # define PDP_RETVAL INT_PTR
+--- 1781,1787 ----
+  }
+  
+  /* Attempt to make this work for old and new compilers */
+! #if !defined(_WIN64) && (!defined(_MSC_VER) || _MSC_VER < 1300)
+  # define PDP_RETVAL BOOL
+  #else
+  # define PDP_RETVAL INT_PTR
+*** ../vim-7.3.321/src/version.c       2011-09-21 19:50:00.000000000 +0200
+--- src/version.c      2011-09-21 20:08:29.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     322,
+  /**/
+
+-- 
+Don't Panic!
+               -- The Hitchhiker's Guide to the Galaxy
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.323.patch0 b/vim/patches/vim-7.3.323.patch0
new file mode 100644 (file)
index 0000000..10f6d19
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.323
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.323
+Problem:    The default 'errorformat' does not ignore some "included from"
+           lines.
+Solution:   Add a few more patterns. (Ben Boeckel)
+Files:     src/option.h
+
+
+*** ../vim-7.3.322/src/option.h        2011-07-27 13:59:12.000000000 +0200
+--- src/option.h       2011-09-30 14:32:13.000000000 +0200
+***************
+*** 33,39 ****
+  #     ifdef EBCDIC
+  #define DFLT_EFM     "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     else
+! #define DFLT_EFM     "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-Gfrom %f:%l:%c,%-Gfrom %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     endif
+  #    endif
+  #   endif
+--- 33,39 ----
+  #     ifdef EBCDIC
+  #define DFLT_EFM     "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     else
+! #define DFLT_EFM     "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+  #     endif
+  #    endif
+  #   endif
+*** ../vim-7.3.322/src/version.c       2011-09-21 20:09:38.000000000 +0200
+--- src/version.c      2011-09-30 14:38:59.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     323,
+  /**/
+
+-- 
+Due knot trussed yore spell chequer two fined awl miss steaks.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.324.patch0 b/vim/patches/vim-7.3.324.patch0
new file mode 100644 (file)
index 0000000..59b5c6c
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.324
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.324 (after 7.3.237)
+Problem:    Completion for ":compiler" shows color scheme names.
+Solution:   Fix the directory name. (James Vega)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.3.323/src/ex_getln.c      2011-08-17 16:25:43.000000000 +0200
+--- src/ex_getln.c     2011-09-30 16:22:14.000000000 +0200
+***************
+*** 4546,4552 ****
+      }
+      if (xp->xp_context == EXPAND_COMPILER)
+      {
+!      char *directories[] = {"colors", NULL};
+       return ExpandRTDir(pat, num_file, file, directories);
+      }
+      if (xp->xp_context == EXPAND_OWNSYNTAX)
+--- 4546,4552 ----
+      }
+      if (xp->xp_context == EXPAND_COMPILER)
+      {
+!      char *directories[] = {"compiler", NULL};
+       return ExpandRTDir(pat, num_file, file, directories);
+      }
+      if (xp->xp_context == EXPAND_OWNSYNTAX)
+*** ../vim-7.3.323/src/version.c       2011-09-30 14:44:49.000000000 +0200
+--- src/version.c      2011-09-30 16:23:15.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     324,
+  /**/
+
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+31. You code your homework in HTML and give your instructor the URL.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.325.patch0 b/vim/patches/vim-7.3.325.patch0
new file mode 100644 (file)
index 0000000..80ebc6d
--- /dev/null
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.325
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.325
+Problem:    A duplicated function argument gives an internal error.
+Solution:   Give a proper error message. (based on patch by Tyru)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.324/src/eval.c  2011-09-14 16:52:02.000000000 +0200
+--- src/eval.c 2011-09-30 16:32:20.000000000 +0200
+***************
+*** 20461,20466 ****
+--- 20461,20467 ----
+      exarg_T  *eap;
+  {
+      char_u   *theline;
++     int              i;
+      int              j;
+      int              c;
+      int              saved_did_emsg;
+***************
+*** 20707,20712 ****
+--- 20708,20722 ----
+           arg = vim_strsave(arg);
+           if (arg == NULL)
+               goto erret;
++ 
++          /* Check for duplicate argument name. */
++          for (i = 0; i < newargs.ga_len; ++i)
++              if (STRCMP(((char_u **)(newargs.ga_data))[i], arg) == 0)
++              {
++                  EMSG2(_("E853: Duplicate argument name: %s"), arg);
++                  goto erret;
++              }
++ 
+           ((char_u **)(newargs.ga_data))[newargs.ga_len] = arg;
+           *p = c;
+           newargs.ga_len++;
+*** ../vim-7.3.324/src/version.c       2011-09-30 16:23:21.000000000 +0200
+--- src/version.c      2011-09-30 16:39:16.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     325,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+32. You don't know what sex three of your closest friends are, because they
+    have neutral nicknames and you never bothered to ask.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.326.patch0 b/vim/patches/vim-7.3.326.patch0
new file mode 100644 (file)
index 0000000..4ad52e9
--- /dev/null
@@ -0,0 +1,285 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.326
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.326
+Problem:    MingW 4.6 no longer supports the -mno-cygwin option.
+Solution:   Split the Cygwin and MingW makefiles. (Matsushita Shougo)
+Files:     src/GvimExt/Make_cyg.mak, src/GvimExt/Make_ming.mak,
+           src/Make_cyg.mak, src/Make_ming.mak, src/xxd/Make_ming.mak,
+           Filelist
+
+
+*** ../vim-7.3.325/src/GvimExt/Make_cyg.mak    2011-09-30 16:55:18.000000000 +0200
+--- src/GvimExt/Make_cyg.mak   2011-09-30 16:45:49.000000000 +0200
+***************
+*** 0 ****
+--- 1,77 ----
++ # Project: gvimext
++ # Generates gvimext.dll with gcc.
++ # To be used with Cygwin.
++ #
++ # Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
++ # Now it is allocated dymanically by the linker by evaluating all DLLs
++ # already loaded in memory. The binary image contains as well information
++ # for automatic pseudo-rebasing, if needed by the system. ALV 2004-02-29
++ 
++ # If cross-compiling set this to yes, else set it to no
++ CROSS = no
++ #CROSS = yes
++ # For the old MinGW 2.95 (the one you get e.g. with debian woody)
++ # set the following variable to yes and check if the executables are
++ # really named that way.
++ # If you have a newer MinGW or you are using cygwin set it to no and
++ # check also the executables
++ MINGWOLD = no
++ 
++ # Link against the shared versions of libgcc/libstdc++ by default.  Set
++ # STATIC_STDCPLUS to "yes" to link against static versions instead.
++ STATIC_STDCPLUS=no
++ #STATIC_STDCPLUS=yes
++ 
++ # Note: -static-libstdc++ is not available until gcc 4.5.x.
++ LDFLAGS += -shared
++ ifeq (yes, $(STATIC_STDCPLUS))
++ LDFLAGS += -static-libgcc -static-libstdc++
++ endif
++ 
++ ifeq ($(CROSS),yes)
++ DEL = rm
++ ifeq ($(MINGWOLD),yes)
++ CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
++ else
++ CXXFLAGS := -O2 -mno-cygwin
++ endif
++ else
++ CXXFLAGS := -O2 -mno-cygwin
++ ifneq (sh.exe, $(SHELL))
++ DEL = rm
++ else
++ DEL = del
++ endif
++ endif
++ CXX := $(CROSS_COMPILE)g++
++ WINDRES := $(CROSS_COMPILE)windres
++ WINDRES_CXX = $(CXX)
++ WINDRES_FLAGS = --preprocessor="$(WINDRES_CXX) -E -xc" -DRC_INVOKED
++ LIBS :=  -luuid
++ RES  := gvimext.res
++ DEFFILE = gvimext_ming.def
++ OBJ  := gvimext.o
++ 
++ DLL  := gvimext.dll
++ 
++ .PHONY: all all-before all-after clean clean-custom
++ 
++ all: all-before $(DLL) all-after
++ 
++ $(DLL): $(OBJ) $(RES) $(DEFFILE)
++      $(CXX) $(LDFLAGS) $(CXXFLAGS) -s -o $@ \
++              -Wl,--enable-auto-image-base \
++              -Wl,--enable-auto-import \
++              -Wl,--whole-archive \
++                      $^ \
++              -Wl,--no-whole-archive \
++                      $(LIBS)
++ 
++ gvimext.o: gvimext.cpp
++      $(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
++ 
++ $(RES): gvimext_ming.rc
++      $(WINDRES) $(WINDRES_FLAGS) --input-format=rc --output-format=coff -DMING $? -o $@
++ 
++ clean: clean-custom
++      -$(DEL)  $(OBJ) $(RES) $(DLL)
+*** ../vim-7.3.325/src/GvimExt/Make_ming.mak   2010-12-30 14:50:46.000000000 +0100
+--- src/GvimExt/Make_ming.mak  2011-09-30 16:47:09.000000000 +0200
+***************
+*** 1,6 ****
+  # Project: gvimext
+  # Generates gvimext.dll with gcc.
+! # Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)
+  #
+  # Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
+  # Now it is allocated dymanically by the linker by evaluating all DLLs
+--- 1,6 ----
+  # Project: gvimext
+  # Generates gvimext.dll with gcc.
+! # To be used with MingW.
+  #
+  # Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
+  # Now it is allocated dymanically by the linker by evaluating all DLLs
+***************
+*** 31,42 ****
+  ifeq ($(CROSS),yes)
+  DEL = rm
+  ifeq ($(MINGWOLD),yes)
+! CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
+  else
+! CXXFLAGS := -O2 -mno-cygwin
+  endif
+  else
+! CXXFLAGS := -O2 -mno-cygwin
+  ifneq (sh.exe, $(SHELL))
+  DEL = rm
+  else
+--- 31,42 ----
+  ifeq ($(CROSS),yes)
+  DEL = rm
+  ifeq ($(MINGWOLD),yes)
+! CXXFLAGS := -O2 -fvtable-thunks
+  else
+! CXXFLAGS := -O2
+  endif
+  else
+! CXXFLAGS := -O2
+  ifneq (sh.exe, $(SHELL))
+  DEL = rm
+  else
+***************
+*** 75,78 ****
+  
+  clean: clean-custom
+       -$(DEL)  $(OBJ) $(RES) $(DLL)
+- 
+--- 75,77 ----
+*** ../vim-7.3.325/src/Make_cyg.mak    2010-11-03 21:59:23.000000000 +0100
+--- src/Make_cyg.mak   2011-09-30 16:48:11.000000000 +0200
+***************
+*** 536,542 ****
+       $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
+  
+  GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+!      $(MAKE) -C GvimExt -f Make_ming.mak CROSS_COMPILE=$(CROSS_COMPILE)
+  
+  vimrun.exe: vimrun.c
+       $(CC) $(CFLAGS) -o vimrun.exe vimrun.c  $(LIBS)
+--- 536,542 ----
+       $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
+  
+  GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+!      $(MAKE) -C GvimExt -f Make_cyg.mak CROSS_COMPILE=$(CROSS_COMPILE)
+  
+  vimrun.exe: vimrun.c
+       $(CC) $(CFLAGS) -o vimrun.exe vimrun.c  $(LIBS)
+***************
+*** 565,571 ****
+  endif
+       -$(DEL) pathdef.c
+       $(MAKE) -C xxd -f Make_cyg.mak clean
+!      $(MAKE) -C GvimExt -f Make_ming.mak clean
+  
+  distclean: clean
+       -$(DEL) obj$(DIRSLASH)*.o
+--- 565,571 ----
+  endif
+       -$(DEL) pathdef.c
+       $(MAKE) -C xxd -f Make_cyg.mak clean
+!      $(MAKE) -C GvimExt -f Make_cyg.mak clean
+  
+  distclean: clean
+       -$(DEL) obj$(DIRSLASH)*.o
+*** ../vim-7.3.325/src/Make_ming.mak   2011-09-14 10:49:44.000000000 +0200
+--- src/Make_ming.mak  2011-09-30 16:48:11.000000000 +0200
+***************
+*** 641,647 ****
+       upx vim.exe
+  
+  xxd/xxd.exe: xxd/xxd.c
+!      $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC)
+  
+  GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+       $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
+--- 641,647 ----
+       upx vim.exe
+  
+  xxd/xxd.exe: xxd/xxd.c
+!      $(MAKE) -C xxd -f Make_ming.mak CC=$(CC)
+  
+  GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+       $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
+***************
+*** 659,665 ****
+       -$(DEL) mzscheme_base.c
+  endif
+       $(MAKE) -C GvimExt -f Make_ming.mak clean
+!      $(MAKE) -C xxd -f Make_cyg.mak clean
+  
+  ###########################################################################
+  INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \
+--- 659,665 ----
+       -$(DEL) mzscheme_base.c
+  endif
+       $(MAKE) -C GvimExt -f Make_ming.mak clean
+!      $(MAKE) -C xxd -f Make_ming.mak clean
+  
+  ###########################################################################
+  INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \
+*** ../vim-7.3.325/src/xxd/Make_ming.mak       2011-09-30 16:55:18.000000000 +0200
+--- src/xxd/Make_ming.mak      2011-09-30 16:48:34.000000000 +0200
+***************
+*** 0 ****
+--- 1,28 ----
++ # The most simplistic Makefile, for MinGW gcc on MS-DOS
++ 
++ ifndef USEDLL
++ USEDLL = no
++ endif
++ 
++ ifeq (yes, $(USEDLL))
++ DEFINES =
++ LIBS    = -lc
++ else
++ DEFINES =
++ LIBS    =
++ endif
++ 
++ CC = gcc
++ CFLAGS = -O2 -Wall -DWIN32 $(DEFINES)
++ 
++ ifneq (sh.exe, $(SHELL))
++ DEL = rm
++ else
++ DEL = del
++ endif
++ 
++ xxd.exe: xxd.c
++      $(CC) $(CFLAGS) -s -o xxd.exe xxd.c $(LIBS)
++ 
++ clean:
++      -$(DEL) xxd.exe
+*** ../vim-7.3.325/Filelist    2011-06-12 20:36:00.000000000 +0200
+--- Filelist   2011-09-30 16:49:29.000000000 +0200
+***************
+*** 313,318 ****
+--- 313,319 ----
+               src/xxd/Make_bc5.mak \
+               src/xxd/Make_cyg.mak \
+               src/xxd/Make_djg.mak \
++              src/xxd/Make_ming.mak \
+               src/xxd/Make_mvc.mak \
+               nsis/gvim.nsi \
+               nsis/README.txt \
+*** ../vim-7.3.325/src/version.c       2011-09-30 16:39:41.000000000 +0200
+--- src/version.c      2011-09-30 16:49:57.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     326,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+33. You name your children Eudora, Mozilla and Dotcom.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.327.patch0 b/vim/patches/vim-7.3.327.patch0
new file mode 100644 (file)
index 0000000..1de5a99
--- /dev/null
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.327
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.327
+Problem:    When jumping to a help tag a closed fold doesn't open.
+Solution:   Save and restore KeyTyped. (Yasuhiro Matsumoto)
+Files:     src/ex_cmds.c
+
+
+*** ../vim-7.3.326/src/ex_cmds.c       2011-09-14 14:43:21.000000000 +0200
+--- src/ex_cmds.c      2011-09-30 17:24:03.000000000 +0200
+***************
+*** 5508,5513 ****
+--- 5508,5516 ----
+      int              len;
+      char_u   *lang;
+  #endif
++ #ifdef FEAT_FOLDING
++     int              old_KeyTyped = KeyTyped;
++ #endif
+  
+      if (eap != NULL)
+      {
+***************
+*** 5671,5676 ****
+--- 5674,5685 ----
+      if (!p_im)
+       restart_edit = 0;           /* don't want insert mode in help file */
+  
++ #ifdef FEAT_FOLDING
++     /* Restore KeyTyped, setting 'filetype=help' may reset it.
++      * It is needed for do_tag top open folds under the cursor. */
++     KeyTyped = old_KeyTyped;
++ #endif
++ 
+      if (tag != NULL)
+       do_tag(tag, DT_HELP, 1, FALSE, TRUE);
+  
+*** ../vim-7.3.326/src/version.c       2011-09-30 16:56:00.000000000 +0200
+--- src/version.c      2011-09-30 17:24:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     327,
+  /**/
+
+-- 
+Q. What happens to programmers when they die?
+A: MS-Windows programmers are reinstalled.  C++ programmers become undefined,
+   anyone who refers to them will die as well.  Java programmers reincarnate
+   after being garbage collected.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.328.patch0 b/vim/patches/vim-7.3.328.patch0
new file mode 100644 (file)
index 0000000..24dad70
--- /dev/null
@@ -0,0 +1,45 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.328
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.328
+Problem:    When command line wraps the cursor may be displayed wrong when
+           there are multi-byte characters.
+Solution:   Position the cursor before drawing the text. (Yasuhiro Matsumoto)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.3.327/src/ex_getln.c      2011-09-30 16:23:21.000000000 +0200
+--- src/ex_getln.c     2011-09-30 17:39:27.000000000 +0200
+***************
+*** 2870,2875 ****
+--- 2870,2876 ----
+       {
+           msg_no_more = TRUE;
+           i = cmdline_row;
++          cursorcmd();
+           draw_cmdline(ccline.cmdpos, ccline.cmdlen - ccline.cmdpos);
+           /* Avoid clearing the rest of the line too often. */
+           if (cmdline_row != i || ccline.overstrike)
+*** ../vim-7.3.327/src/version.c       2011-09-30 17:30:27.000000000 +0200
+--- src/version.c      2011-09-30 17:45:28.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     328,
+  /**/
+
+-- 
+To define recursion, we must first define recursion.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.329.patch0 b/vim/patches/vim-7.3.329.patch0
new file mode 100644 (file)
index 0000000..fe48eb5
--- /dev/null
@@ -0,0 +1,72 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.329
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.329
+Problem:    When skipping over code from ":for" to ":endfor" get an error for
+           calling a dict function. (Yasuhiro Matsumoto)
+Solution:   Ignore errors when skipping over :call command.
+Files:     src/ex_docmd.c, src/eval.c
+
+
+*** ../vim-7.3.328/src/ex_docmd.c      2011-09-21 19:10:42.000000000 +0200
+--- src/ex_docmd.c     2011-09-30 17:59:51.000000000 +0200
+***************
+*** 371,381 ****
+  # define ex_endif            ex_ni
+  # define ex_else             ex_ni
+  # define ex_while            ex_ni
+- # define ex_for                      ex_ni
+  # define ex_continue         ex_ni
+  # define ex_break            ex_ni
+  # define ex_endwhile         ex_ni
+- # define ex_endfor           ex_ni
+  # define ex_throw            ex_ni
+  # define ex_try                      ex_ni
+  # define ex_catch            ex_ni
+--- 371,379 ----
+*** ../vim-7.3.328/src/eval.c  2011-09-30 16:39:41.000000000 +0200
+--- src/eval.c 2011-09-30 18:29:58.000000000 +0200
+***************
+*** 3377,3383 ****
+       /* trans_function_name() doesn't work well when skipping, use eval0()
+        * instead to skip to any following command, e.g. for:
+        *   :if 0 | call dict.foo().bar() | endif  */
+!      eval0(eap->arg, &rettv, &eap->nextcmd, FALSE);
+       return;
+      }
+  
+--- 3377,3386 ----
+       /* trans_function_name() doesn't work well when skipping, use eval0()
+        * instead to skip to any following command, e.g. for:
+        *   :if 0 | call dict.foo().bar() | endif  */
+!      ++emsg_skip;
+!      if (eval0(eap->arg, &rettv, &eap->nextcmd, FALSE) != FAIL)
+!          clear_tv(&rettv);
+!      --emsg_skip;
+       return;
+      }
+  
+*** ../vim-7.3.328/src/version.c       2011-09-30 17:46:14.000000000 +0200
+--- src/version.c      2011-09-30 18:32:27.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     329,
+  /**/
+
+-- 
+Have you heard about the new Beowulf cluster? It's so fast, it executes
+an infinite loop in 6 seconds.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.330.patch0 b/vim/patches/vim-7.3.330.patch0
new file mode 100644 (file)
index 0000000..ab828b9
--- /dev/null
@@ -0,0 +1,45 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.330
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.330
+Problem:    When longjmp() is invoked if the X server gives an error the state
+           is not properly restored.
+Solution:   Reset vgetc_busy. (Yukihiro Nakadaira)
+Files:     src/main.c
+
+
+*** ../vim-7.3.329/src/main.c  2011-05-10 16:41:13.000000000 +0200
+--- src/main.c 2011-10-04 16:41:03.000000000 +0200
+***************
+*** 1009,1014 ****
+--- 1009,1015 ----
+       skip_redraw = FALSE;
+       RedrawingDisabled = 0;
+       no_wait_return = 0;
++      vgetc_busy = 0;
+  # ifdef FEAT_EVAL
+       emsg_skip = 0;
+  # endif
+*** ../vim-7.3.329/src/version.c       2011-09-30 18:35:49.000000000 +0200
+--- src/version.c      2011-10-04 16:42:23.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     330,
+  /**/
+
+-- 
+Just remember...if the world didn't suck, we'd all fall off.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.331.patch0 b/vim/patches/vim-7.3.331.patch0
new file mode 100644 (file)
index 0000000..ba63c17
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.331
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.331
+Problem:    "vit" selects wrong text when a tag name starts with the same text
+           as an outer tag name. (Ben Fritz)
+Solution:   Add "\>" to the pattern to check for word boundary.
+Files:     src/search.c
+
+
+*** ../vim-7.3.330/src/search.c        2011-07-15 13:21:24.000000000 +0200
+--- src/search.c       2011-10-04 16:54:08.000000000 +0200
+***************
+*** 3927,3933 ****
+       curwin->w_cursor = old_pos;
+       goto theend;
+      }
+!     sprintf((char *)spat, "<%.*s\\%%(\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
+      sprintf((char *)epat, "</%.*s>\\c", len, p);
+  
+      r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
+--- 3927,3933 ----
+       curwin->w_cursor = old_pos;
+       goto theend;
+      }
+!     sprintf((char *)spat, "<%.*s\\>\\%%(\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
+      sprintf((char *)epat, "</%.*s>\\c", len, p);
+  
+      r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
+*** ../vim-7.3.330/src/version.c       2011-10-04 16:43:49.000000000 +0200
+--- src/version.c      2011-10-04 16:59:47.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     331,
+  /**/
+
+-- 
+The 50-50-90 rule: Anytime you have a 50-50 chance of getting
+something right, there's a 90% probability you'll get it wrong.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.332.patch0 b/vim/patches/vim-7.3.332.patch0
new file mode 100644 (file)
index 0000000..ff0ab7c
--- /dev/null
@@ -0,0 +1,206 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.332
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.332 (after 7.3.202)
+Problem:    Indent after "public:" is not increased in C++ code. (Lech Lorens)
+Solution:   Check for namespace after the regular checks. (partly by Martin
+           Gieseking)
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.331/src/misc1.c 2011-09-07 19:58:04.000000000 +0200
+--- src/misc1.c        2011-10-04 17:59:52.000000000 +0200
+***************
+*** 6389,6394 ****
+--- 6389,6395 ----
+      int              lookfor_cpp_namespace = FALSE;
+      int              cont_amount = 0;    /* amount for continuation line */
+      int              original_line_islabel;
++     int              added_to_amount = 0;
+  
+      for (options = curbuf->b_p_cino; *options; )
+      {
+***************
+*** 7216,7267 ****
+                       else
+                           amount += ind_continuation;
+                   }
+!                  else if (lookfor_cpp_namespace)
+                   {
+!                      if (curwin->w_cursor.lnum == ourscope)
+!                          continue;
+  
+!                      if (curwin->w_cursor.lnum == 0
+!                              || curwin->w_cursor.lnum
+                                             < ourscope - FIND_NAMESPACE_LIM)
+!                          break;
+  
+!                      l = ml_get_curline();
+  
+!                      /*
+!                       * If we're in a comment now, skip to the start of the
+!                       * comment.
+!                       */
+!                      trypos = find_start_comment(ind_maxcomment);
+!                      if (trypos != NULL)
+!                      {
+!                          curwin->w_cursor.lnum = trypos->lnum + 1;
+!                          curwin->w_cursor.col = 0;
+!                          continue;
+!                      }
+! 
+!                      /*
+!                       * Skip preprocessor directives and blank lines.
+!                       */
+!                      if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
+!                          continue;
+  
+!                      if (cin_is_cpp_namespace(l))
+!                      {
+!                          amount += ind_cpp_namespace;
+!                          break;
+!                      }
+  
+!                      if (cin_nocode(l))
+!                          continue;
+  
+!                  }
+!                  else if (lookfor != LOOKFOR_TERM
+!                                        && lookfor != LOOKFOR_CPP_BASECLASS)
+!                  {
+!                      amount = scope_amount;
+!                      if (theline[0] == '{')
+!                          amount += ind_open_extra;
+                   }
+                   break;
+               }
+--- 7217,7275 ----
+                       else
+                           amount += ind_continuation;
+                   }
+!                  else
+                   {
+!                      if (lookfor != LOOKFOR_TERM
+!                                        && lookfor != LOOKFOR_CPP_BASECLASS)
+!                      {
+!                          amount = scope_amount;
+!                          if (theline[0] == '{')
+!                          {
+!                              amount += ind_open_extra;
+!                              added_to_amount = ind_open_extra;
+!                          }
+!                      }
+  
+!                      if (lookfor_cpp_namespace)
+!                      {
+!                          /*
+!                           * Looking for C++ namespace, need to look further
+!                           * back.
+!                           */
+!                          if (curwin->w_cursor.lnum == ourscope)
+!                              continue;
+! 
+!                          if (curwin->w_cursor.lnum == 0
+!                                  || curwin->w_cursor.lnum
+                                             < ourscope - FIND_NAMESPACE_LIM)
+!                              break;
+  
+!                          l = ml_get_curline();
+  
+!                          /* If we're in a comment now, skip to the start of
+!                           * the comment. */
+!                          trypos = find_start_comment(ind_maxcomment);
+!                          if (trypos != NULL)
+!                          {
+!                              curwin->w_cursor.lnum = trypos->lnum + 1;
+!                              curwin->w_cursor.col = 0;
+!                              continue;
+!                          }
+  
+!                          /* Skip preprocessor directives and blank lines. */
+!                          if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
+!                              continue;
+  
+!                          /* Finally the actual check for "namespace". */
+!                          if (cin_is_cpp_namespace(l))
+!                          {
+!                              amount += ind_cpp_namespace - added_to_amount;
+!                              break;
+!                          }
+  
+!                          if (cin_nocode(l))
+!                              continue;
+!                      }
+                   }
+                   break;
+               }
+*** ../vim-7.3.331/src/testdir/test3.in        2011-07-20 15:09:38.000000000 +0200
+--- src/testdir/test3.in       2011-10-04 17:45:20.000000000 +0200
+***************
+*** 1309,1314 ****
+--- 1309,1328 ----
+  };
+  
+  STARTTEST
++ :set cino=(0,gs,hs
++ 2kdd]]=][
++ ENDTEST
++ 
++ class Foo : public Bar
++ {
++ public:
++ virtual void method1(void) = 0;
++ virtual void method2(int arg1,
++ int arg2,
++ int arg3) = 0;
++ };
++ 
++ STARTTEST
+  :set cino=+20
+  2kdd]]=][
+  ENDTEST
+*** ../vim-7.3.331/src/testdir/test3.ok        2011-07-20 15:09:38.000000000 +0200
+--- src/testdir/test3.ok       2011-10-04 17:47:25.000000000 +0200
+***************
+*** 1190,1195 ****
+--- 1190,1205 ----
+  };
+  
+  
++ class Foo : public Bar
++ {
++      public:
++              virtual void method1(void) = 0;
++              virtual void method2(int arg1,
++                                                       int arg2,
++                                                       int arg3) = 0;
++ };
++ 
++ 
+       void
+  foo()
+  {
+*** ../vim-7.3.331/src/version.c       2011-10-04 17:00:13.000000000 +0200
+--- src/version.c      2011-10-04 18:02:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     332,
+  /**/
+
+-- 
+Latest survey shows that 3 out of 4 people make up 75% of the
+world's population.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.333.patch0 b/vim/patches/vim-7.3.333.patch0
new file mode 100644 (file)
index 0000000..974b0cd
--- /dev/null
@@ -0,0 +1,245 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.333
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.333
+Problem:    Using "." to repeat a Visual delete counts the size in bytes, not
+           characters.  (Connor Lane Smith)
+Solution:   Store the virtual column numbers instead of byte positions.
+Files:     src/normal.c
+
+
+*** ../vim-7.3.332/src/normal.c        2011-07-15 17:51:30.000000000 +0200
+--- src/normal.c       2011-10-04 19:47:14.000000000 +0200
+***************
+*** 20,26 ****
+   */
+  static int   resel_VIsual_mode = NUL;        /* 'v', 'V', or Ctrl-V */
+  static linenr_T      resel_VIsual_line_count;        /* number of lines */
+! static colnr_T       resel_VIsual_col;               /* nr of cols or end col */
+  
+  static int   restart_VIsual_select = 0;
+  #endif
+--- 20,26 ----
+   */
+  static int   resel_VIsual_mode = NUL;        /* 'v', 'V', or Ctrl-V */
+  static linenr_T      resel_VIsual_line_count;        /* number of lines */
+! static colnr_T       resel_VIsual_vcol;              /* nr of cols or end col */
+  
+  static int   restart_VIsual_select = 0;
+  #endif
+***************
+*** 1436,1442 ****
+      /* The visual area is remembered for redo */
+      static int           redo_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
+      static linenr_T redo_VIsual_line_count; /* number of lines */
+!     static colnr_T  redo_VIsual_col;     /* number of cols or end column */
+      static long          redo_VIsual_count;      /* count for Visual operator */
+  # ifdef FEAT_VIRTUALEDIT
+      int                  include_line_break = FALSE;
+--- 1436,1442 ----
+      /* The visual area is remembered for redo */
+      static int           redo_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
+      static linenr_T redo_VIsual_line_count; /* number of lines */
+!     static colnr_T  redo_VIsual_vcol;            /* number of cols or end column */
+      static long          redo_VIsual_count;      /* count for Visual operator */
+  # ifdef FEAT_VIRTUALEDIT
+      int                  include_line_break = FALSE;
+***************
+*** 1549,1570 ****
+  #ifdef FEAT_VISUAL
+       if (redo_VIsual_busy)
+       {
+           oap->start = curwin->w_cursor;
+           curwin->w_cursor.lnum += redo_VIsual_line_count - 1;
+           if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
+               curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
+           VIsual_mode = redo_VIsual_mode;
+!          if (VIsual_mode == 'v')
+           {
+!              if (redo_VIsual_line_count <= 1)
+!                  curwin->w_cursor.col += redo_VIsual_col - 1;
+               else
+!                  curwin->w_cursor.col = redo_VIsual_col;
+!          }
+!          if (redo_VIsual_col == MAXCOL)
+!          {
+!              curwin->w_curswant = MAXCOL;
+!              coladvance((colnr_T)MAXCOL);
+           }
+           cap->count0 = redo_VIsual_count;
+           if (redo_VIsual_count != 0)
+--- 1549,1579 ----
+  #ifdef FEAT_VISUAL
+       if (redo_VIsual_busy)
+       {
++          /* Redo of an operation on a Visual area. Use the same size from
++           * redo_VIsual_line_count and redo_VIsual_vcol. */
+           oap->start = curwin->w_cursor;
+           curwin->w_cursor.lnum += redo_VIsual_line_count - 1;
+           if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
+               curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
+           VIsual_mode = redo_VIsual_mode;
+!          if (redo_VIsual_vcol == MAXCOL || VIsual_mode == 'v')
+           {
+!              if (VIsual_mode == 'v')
+!              {
+!                  if (redo_VIsual_line_count <= 1)
+!                  {
+!                      validate_virtcol();
+!                      curwin->w_curswant =
+!                                   curwin->w_virtcol + redo_VIsual_vcol - 1;
+!                  }
+!                  else
+!                      curwin->w_curswant = redo_VIsual_vcol;
+!              }
+               else
+!              {
+!                  curwin->w_curswant = MAXCOL;
+!              }
+!              coladvance(curwin->w_curswant);
+           }
+           cap->count0 = redo_VIsual_count;
+           if (redo_VIsual_count != 0)
+***************
+*** 1710,1716 ****
+                   }
+               }
+               else if (redo_VIsual_busy)
+!                  oap->end_vcol = oap->start_vcol + redo_VIsual_col - 1;
+               /*
+                * Correct oap->end.col and oap->start.col to be the
+                * upper-left and lower-right corner of the block area.
+--- 1719,1725 ----
+                   }
+               }
+               else if (redo_VIsual_busy)
+!                  oap->end_vcol = oap->start_vcol + redo_VIsual_vcol - 1;
+               /*
+                * Correct oap->end.col and oap->start.col to be the
+                * upper-left and lower-right corner of the block area.
+***************
+*** 1735,1747 ****
+                */
+               resel_VIsual_mode = VIsual_mode;
+               if (curwin->w_curswant == MAXCOL)
+!                  resel_VIsual_col = MAXCOL;
+!              else if (VIsual_mode == Ctrl_V)
+!                  resel_VIsual_col = oap->end_vcol - oap->start_vcol + 1;
+!              else if (oap->line_count > 1)
+!                  resel_VIsual_col = oap->end.col;
+               else
+!                  resel_VIsual_col = oap->end.col - oap->start.col + 1;
+               resel_VIsual_line_count = oap->line_count;
+           }
+  
+--- 1744,1765 ----
+                */
+               resel_VIsual_mode = VIsual_mode;
+               if (curwin->w_curswant == MAXCOL)
+!                  resel_VIsual_vcol = MAXCOL;
+               else
+!              {
+!                  if (VIsual_mode != Ctrl_V)
+!                      getvvcol(curwin, &(oap->end),
+!                                                NULL, NULL, &oap->end_vcol);
+!                  if (VIsual_mode == Ctrl_V || oap->line_count <= 1)
+!                  {
+!                      if (VIsual_mode != Ctrl_V)
+!                          getvvcol(curwin, &(oap->start),
+!                                              &oap->start_vcol, NULL, NULL);
+!                      resel_VIsual_vcol = oap->end_vcol - oap->start_vcol + 1;
+!                  }
+!                  else
+!                      resel_VIsual_vcol = oap->end_vcol;
+!              }
+               resel_VIsual_line_count = oap->line_count;
+           }
+  
+***************
+*** 1769,1775 ****
+               if (!redo_VIsual_busy)
+               {
+                   redo_VIsual_mode = resel_VIsual_mode;
+!                  redo_VIsual_col = resel_VIsual_col;
+                   redo_VIsual_line_count = resel_VIsual_line_count;
+                   redo_VIsual_count = cap->count0;
+               }
+--- 1787,1793 ----
+               if (!redo_VIsual_busy)
+               {
+                   redo_VIsual_mode = resel_VIsual_mode;
+!                  redo_VIsual_vcol = resel_VIsual_vcol;
+                   redo_VIsual_line_count = resel_VIsual_line_count;
+                   redo_VIsual_count = cap->count0;
+               }
+***************
+*** 7631,7642 ****
+           if (VIsual_mode == 'v')
+           {
+               if (resel_VIsual_line_count <= 1)
+!                  curwin->w_cursor.col += resel_VIsual_col * cap->count0 - 1;
+               else
+!                  curwin->w_cursor.col = resel_VIsual_col;
+!              check_cursor_col();
+           }
+!          if (resel_VIsual_col == MAXCOL)
+           {
+               curwin->w_curswant = MAXCOL;
+               coladvance((colnr_T)MAXCOL);
+--- 7649,7664 ----
+           if (VIsual_mode == 'v')
+           {
+               if (resel_VIsual_line_count <= 1)
+!              {
+!                  validate_virtcol();
+!                  curwin->w_curswant = curwin->w_virtcol
+!                                      + resel_VIsual_vcol * cap->count0 - 1;
+!              }
+               else
+!                  curwin->w_curswant = resel_VIsual_vcol;
+!              coladvance(curwin->w_curswant);
+           }
+!          if (resel_VIsual_vcol == MAXCOL)
+           {
+               curwin->w_curswant = MAXCOL;
+               coladvance((colnr_T)MAXCOL);
+***************
+*** 7645,7651 ****
+           {
+               validate_virtcol();
+               curwin->w_curswant = curwin->w_virtcol
+!                                       + resel_VIsual_col * cap->count0 - 1;
+               coladvance(curwin->w_curswant);
+           }
+           else
+--- 7667,7673 ----
+           {
+               validate_virtcol();
+               curwin->w_curswant = curwin->w_virtcol
+!                                      + resel_VIsual_vcol * cap->count0 - 1;
+               coladvance(curwin->w_curswant);
+           }
+           else
+*** ../vim-7.3.332/src/version.c       2011-10-04 18:03:43.000000000 +0200
+--- src/version.c      2011-10-04 21:05:44.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     333,
+  /**/
+
+-- 
+It was recently discovered that research causes cancer in rats.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.334.patch0 b/vim/patches/vim-7.3.334.patch0
new file mode 100644 (file)
index 0000000..85d5b16
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.334
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.334
+Problem:    Latest MingW about XSUBPP referencing itself. (Gongqian Li)
+Solution:   Rename the first use to XSUBPPTRY.
+Files:     src/Make_ming.mak
+
+
+*** ../vim-7.3.333/src/Make_ming.mak   2011-09-30 16:56:00.000000000 +0200
+--- src/Make_ming.mak  2011-10-09 14:23:06.000000000 +0200
+***************
+*** 108,117 ****
+  # on NT, it's here:
+  PERLLIB=$(PERL)/lib
+  PERLLIBS=$(PERLLIB)/Core
+! XSUBPP=$(PERLLIB)/ExtUtils/xsubpp
+! XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPP)'")
+  ifeq "$(XSUBPP_EXISTS)" ""
+! XSUBPP=perl $(XSUBPP)
+  else
+  XSUBPP=xsubpp
+  endif
+--- 108,117 ----
+  # on NT, it's here:
+  PERLLIB=$(PERL)/lib
+  PERLLIBS=$(PERLLIB)/Core
+! XSUBPPTRY=$(PERLLIB)/ExtUtils/xsubpp
+! XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPPTRY)'")
+  ifeq "$(XSUBPP_EXISTS)" ""
+! XSUBPP=perl $(XSUBPPTRY)
+  else
+  XSUBPP=xsubpp
+  endif
+*** ../vim-7.3.333/src/version.c       2011-10-04 21:22:40.000000000 +0200
+--- src/version.c      2011-10-12 14:10:20.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     334,
+  /**/
+
+-- 
+Q: Should I clean my house or work on Vim?
+A: Whatever contains more bugs.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.335.patch0 b/vim/patches/vim-7.3.335.patch0
new file mode 100644 (file)
index 0000000..dc1cc56
--- /dev/null
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.335
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.335
+Problem:    When 'imdisable' is reset from an autocommand in Insert mode it
+           doesn't take effect.
+Solution:   Call im_set_active() in Insert mode. (Taro Muraoka)
+Files:     src/option.c
+
+
+*** ../vim-7.3.334/src/option.c        2011-09-21 13:40:13.000000000 +0200
+--- src/option.c       2011-10-12 14:09:46.000000000 +0200
+***************
+*** 7806,7811 ****
+--- 7806,7815 ----
+       /* Only de-activate it here, it will be enabled when changing mode. */
+       if (p_imdisable)
+           im_set_active(FALSE);
++      else if (State & INSERT)
++          /* When the option is set from an autocommand, it may need to take
++           * effect right away. */
++          im_set_active(curbuf->b_p_iminsert == B_IMODE_IM);
+      }
+  #endif
+  
+*** ../vim-7.3.334/src/version.c       2011-10-12 14:11:43.000000000 +0200
+--- src/version.c      2011-10-12 16:56:30.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     335,
+  /**/
+
+-- 
+Time is money.  Especially if you make clocks.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.336.patch0 b/vim/patches/vim-7.3.336.patch0
new file mode 100644 (file)
index 0000000..902f578
--- /dev/null
@@ -0,0 +1,1100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.336
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.336
+Problem:    When a tags file specifies an encoding different from 'enc' it
+           may hang and using a pattern doesn't work.
+Solution:   Convert the whole line.  Continue reading the header after the
+           SORT tag.  Add test83. (Yukihiro Nakadaira)
+Files:     src/tag.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
+           src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
+           src/testdir/Make_vms.mms, src/testdir/Makefile,
+           src/testdir/test83-tags2, src/testdir/test83-tags3,
+           src/testdir/test83.in, src/testdir/test83.ok
+
+
+*** ../vim-7.3.335/src/tag.c   2011-04-11 21:35:03.000000000 +0200
+--- src/tag.c  2011-10-12 19:51:04.000000000 +0200
+***************
+*** 1277,1282 ****
+--- 1277,1283 ----
+  {
+      FILE       *fp;
+      char_u     *lbuf;                        /* line buffer */
++     int              lbuf_size = LSIZE;      /* length of lbuf */
+      char_u     *tag_fname;           /* name of tag file */
+      tagname_T        tn;                     /* info for get_tagfname() */
+      int              first_file;             /* trying first tag file */
+***************
+*** 1291,1296 ****
+--- 1292,1298 ----
+      char_u   *s;
+      int              i;
+  #ifdef FEAT_TAG_BINS
++     int              tag_file_sorted = NUL;  /* !_TAG_FILE_SORTED value */
+      struct tag_search_info   /* Binary search file offsets */
+      {
+       off_t   low_offset;     /* offset for first char of first line that
+***************
+*** 1360,1372 ****
+      char_u   *saved_pat = NULL;              /* copy of pat[] */
+  #endif
+  
+-     /* Use two sets of variables for the pattern: "orgpat" holds the values
+-      * for the original pattern and "convpat" converted from 'encoding' to
+-      * encoding of the tags file.  "pats" point to either one of these. */
+-     pat_T    *pats;
+      pat_T    orgpat;                 /* holds unconverted pattern info */
+  #ifdef FEAT_MBYTE
+-     pat_T    convpat;                /* holds converted pattern info */
+      vimconv_T        vimconv;
+  #endif
+  
+--- 1362,1369 ----
+***************
+*** 1390,1396 ****
+  
+      help_save = curbuf->b_help;
+      orgpat.pat = pat;
+-     pats = &orgpat;
+  #ifdef FEAT_MBYTE
+      vimconv.vc_type = CONV_NONE;
+  #endif
+--- 1387,1392 ----
+***************
+*** 1398,1404 ****
+  /*
+   * Allocate memory for the buffers that are used
+   */
+!     lbuf = alloc(LSIZE);
+      tag_fname = alloc(MAXPATHL + 1);
+  #ifdef FEAT_EMACS_TAGS
+      ebuf = alloc(LSIZE);
+--- 1394,1400 ----
+  /*
+   * Allocate memory for the buffers that are used
+   */
+!     lbuf = alloc(lbuf_size);
+      tag_fname = alloc(MAXPATHL + 1);
+  #ifdef FEAT_EMACS_TAGS
+      ebuf = alloc(LSIZE);
+***************
+*** 1424,1453 ****
+      if (help_only)                           /* want tags from help file */
+       curbuf->b_help = TRUE;                  /* will be restored later */
+  
+!     pats->len = (int)STRLEN(pat);
+  #ifdef FEAT_MULTI_LANG
+      if (curbuf->b_help)
+      {
+       /* When "@ab" is specified use only the "ab" language, otherwise
+        * search all languages. */
+!      if (pats->len > 3 && pat[pats->len - 3] == '@'
+!                                        && ASCII_ISALPHA(pat[pats->len - 2])
+!                                       && ASCII_ISALPHA(pat[pats->len - 1]))
+       {
+!          saved_pat = vim_strnsave(pat, pats->len - 3);
+           if (saved_pat != NULL)
+           {
+!              help_lang_find = &pat[pats->len - 2];
+!              pats->pat = saved_pat;
+!              pats->len -= 3;
+           }
+       }
+      }
+  #endif
+!     if (p_tl != 0 && pats->len > p_tl)               /* adjust for 'taglength' */
+!      pats->len = p_tl;
+  
+!     prepare_pats(pats, has_re);
+  
+  #ifdef FEAT_TAG_BINS
+      /* This is only to avoid a compiler warning for using search_info
+--- 1420,1449 ----
+      if (help_only)                           /* want tags from help file */
+       curbuf->b_help = TRUE;                  /* will be restored later */
+  
+!     orgpat.len = (int)STRLEN(pat);
+  #ifdef FEAT_MULTI_LANG
+      if (curbuf->b_help)
+      {
+       /* When "@ab" is specified use only the "ab" language, otherwise
+        * search all languages. */
+!      if (orgpat.len > 3 && pat[orgpat.len - 3] == '@'
+!                                        && ASCII_ISALPHA(pat[orgpat.len - 2])
+!                                       && ASCII_ISALPHA(pat[orgpat.len - 1]))
+       {
+!          saved_pat = vim_strnsave(pat, orgpat.len - 3);
+           if (saved_pat != NULL)
+           {
+!              help_lang_find = &pat[orgpat.len - 2];
+!              orgpat.pat = saved_pat;
+!              orgpat.len -= 3;
+           }
+       }
+      }
+  #endif
+!     if (p_tl != 0 && orgpat.len > p_tl)              /* adjust for 'taglength' */
+!      orgpat.len = p_tl;
+  
+!     prepare_pats(&orgpat, has_re);
+  
+  #ifdef FEAT_TAG_BINS
+      /* This is only to avoid a compiler warning for using search_info
+***************
+*** 1466,1478 ****
+       * Only ignore case when TAG_NOIC not used or 'ignorecase' set.
+       */
+  #ifdef FEAT_TAG_BINS
+!     pats->regmatch.rm_ic = ((p_ic || !noic)
+!                              && (findall || pats->headlen == 0 || !p_tbs));
+      for (round = 1; round <= 2; ++round)
+      {
+!       linear = (pats->headlen == 0 || !p_tbs || round == 2);
+  #else
+!       pats->regmatch.rm_ic = (p_ic || !noic);
+  #endif
+  
+        /*
+--- 1462,1474 ----
+       * Only ignore case when TAG_NOIC not used or 'ignorecase' set.
+       */
+  #ifdef FEAT_TAG_BINS
+!     orgpat.regmatch.rm_ic = ((p_ic || !noic)
+!                              && (findall || orgpat.headlen == 0 || !p_tbs));
+      for (round = 1; round <= 2; ++round)
+      {
+!       linear = (orgpat.headlen == 0 || !p_tbs || round == 2);
+  #else
+!       orgpat.regmatch.rm_ic = (p_ic || !noic);
+  #endif
+  
+        /*
+***************
+*** 1701,1706 ****
+--- 1697,1732 ----
+           }
+  line_read_in:
+  
++ #ifdef FEAT_MBYTE
++          if (vimconv.vc_type != CONV_NONE)
++          {
++              char_u  *conv_line;
++              int     len;
++ 
++              /* Convert every line.  Converting the pattern from 'enc' to
++               * the tags file encoding doesn't work, because characters are
++               * not recognized. */
++              conv_line = string_convert(&vimconv, lbuf, NULL);
++              if (conv_line != NULL)
++              {
++                  /* Copy or swap lbuf and conv_line. */
++                  len = (int)STRLEN(conv_line) + 1;
++                  if (len > lbuf_size)
++                  {
++                      vim_free(lbuf);
++                      lbuf = conv_line;
++                      lbuf_size = len;
++                  }
++                  else
++                  {
++                      STRCPY(lbuf, conv_line);
++                      vim_free(conv_line);
++                  }
++              }
++          }
++ #endif
++ 
++ 
+  #ifdef FEAT_EMACS_TAGS
+           /*
+            * Emacs tags line with CTRL-L: New file name on next line.
+***************
+*** 1770,1775 ****
+--- 1796,1828 ----
+            */
+           if (state == TS_START)
+           {
++              if (STRNCMP(lbuf, "!_TAG_", 6) <= 0)
++              {
++                  /*
++                   * Read header line.
++                   */
++ #ifdef FEAT_TAG_BINS
++                  if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
++                      tag_file_sorted = lbuf[18];
++ #endif
++ #ifdef FEAT_MBYTE
++                  if (STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
++                  {
++                      /* Prepare to convert every line from the specified
++                       * encoding to 'encoding'. */
++                      for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
++                          ;
++                      *p = NUL;
++                      convert_setup(&vimconv, lbuf + 20, p_enc);
++                  }
++ #endif
++ 
++                  /* Read the next line.  Unrecognized flags are ignored. */
++                  continue;
++              }
++ 
++              /* Headers ends. */
++ 
+  #ifdef FEAT_TAG_BINS
+               /*
+                * When there is no tag head, or ignoring case, need to do a
+***************
+*** 1786,1809 ****
+               if (linear)
+  # endif
+                   state = TS_LINEAR;
+!              else if (STRNCMP(lbuf, "!_TAG_", 6) > 0)
+                   state = TS_BINARY;
+!              else if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
+!              {
+!                  /* Check sorted flag */
+!                  if (lbuf[18] == '1')
+                       state = TS_BINARY;
+!                  else if (lbuf[18] == '2')
+!                  {
+!                      state = TS_BINARY;
+!                      sortic = TRUE;
+!                      pats->regmatch.rm_ic = (p_ic || !noic);
+!                  }
+!                  else
+!                      state = TS_LINEAR;
+               }
+  
+!              if (state == TS_BINARY && pats->regmatch.rm_ic && !sortic)
+               {
+                   /* binary search won't work for ignoring case, use linear
+                    * search. */
+--- 1839,1858 ----
+               if (linear)
+  # endif
+                   state = TS_LINEAR;
+!              else if (tag_file_sorted == NUL)
+                   state = TS_BINARY;
+!              else if (tag_file_sorted == '1')
+                       state = TS_BINARY;
+!              else if (tag_file_sorted == '2')
+!              {
+!                  state = TS_BINARY;
+!                  sortic = TRUE;
+!                  orgpat.regmatch.rm_ic = (p_ic || !noic);
+               }
++              else
++                  state = TS_LINEAR;
+  
+!              if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
+               {
+                   /* binary search won't work for ignoring case, use linear
+                    * search. */
+***************
+*** 1843,1882 ****
+  #endif
+           }
+  
+- #ifdef FEAT_MBYTE
+-          if (lbuf[0] == '!' && pats == &orgpat
+-                         && STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
+-          {
+-              /* Convert the search pattern from 'encoding' to the
+-               * specified encoding. */
+-              for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
+-                  ;
+-              *p = NUL;
+-              convert_setup(&vimconv, p_enc, lbuf + 20);
+-              if (vimconv.vc_type != CONV_NONE)
+-              {
+-                  convpat.pat = string_convert(&vimconv, pats->pat, NULL);
+-                  if (convpat.pat != NULL)
+-                  {
+-                      pats = &convpat;
+-                      pats->len = (int)STRLEN(pats->pat);
+-                      prepare_pats(pats, has_re);
+-                      pats->regmatch.rm_ic = orgpat.regmatch.rm_ic;
+-                  }
+-              }
+- 
+-              /* Prepare for converting a match the other way around. */
+-              convert_setup(&vimconv, lbuf + 20, p_enc);
+-              continue;
+-          }
+- #endif
+- 
+           /*
+            * Figure out where the different strings are in this line.
+            * For "normal" tags: Do a quick check if the tag matches.
+            * This speeds up tag searching a lot!
+            */
+!          if (pats->headlen
+  #ifdef FEAT_EMACS_TAGS
+                           && !is_etag
+  #endif
+--- 1892,1903 ----
+  #endif
+           }
+  
+           /*
+            * Figure out where the different strings are in this line.
+            * For "normal" tags: Do a quick check if the tag matches.
+            * This speeds up tag searching a lot!
+            */
+!          if (orgpat.headlen
+  #ifdef FEAT_EMACS_TAGS
+                           && !is_etag
+  #endif
+***************
+*** 1933,1941 ****
+               cmplen = (int)(tagp.tagname_end - tagp.tagname);
+               if (p_tl != 0 && cmplen > p_tl)     /* adjust for 'taglength' */
+                   cmplen = p_tl;
+!              if (has_re && pats->headlen < cmplen)
+!                  cmplen = pats->headlen;
+!              else if (state == TS_LINEAR && pats->headlen != cmplen)
+                   continue;
+  
+  #ifdef FEAT_TAG_BINS
+--- 1954,1962 ----
+               cmplen = (int)(tagp.tagname_end - tagp.tagname);
+               if (p_tl != 0 && cmplen > p_tl)     /* adjust for 'taglength' */
+                   cmplen = p_tl;
+!              if (has_re && orgpat.headlen < cmplen)
+!                  cmplen = orgpat.headlen;
+!              else if (state == TS_LINEAR && orgpat.headlen != cmplen)
+                   continue;
+  
+  #ifdef FEAT_TAG_BINS
+***************
+*** 1954,1963 ****
+                    * Compare the current tag with the searched tag.
+                    */
+                   if (sortic)
+!                      tagcmp = tag_strnicmp(tagp.tagname, pats->head,
+                                                             (size_t)cmplen);
+                   else
+!                      tagcmp = STRNCMP(tagp.tagname, pats->head, cmplen);
+  
+                   /*
+                    * A match with a shorter tag means to search forward.
+--- 1975,1984 ----
+                    * Compare the current tag with the searched tag.
+                    */
+                   if (sortic)
+!                      tagcmp = tag_strnicmp(tagp.tagname, orgpat.head,
+                                                             (size_t)cmplen);
+                   else
+!                      tagcmp = STRNCMP(tagp.tagname, orgpat.head, cmplen);
+  
+                   /*
+                    * A match with a shorter tag means to search forward.
+***************
+*** 1965,1973 ****
+                    */
+                   if (tagcmp == 0)
+                   {
+!                      if (cmplen < pats->headlen)
+                           tagcmp = -1;
+!                      else if (cmplen > pats->headlen)
+                           tagcmp = 1;
+                   }
+  
+--- 1986,1994 ----
+                    */
+                   if (tagcmp == 0)
+                   {
+!                      if (cmplen < orgpat.headlen)
+                           tagcmp = -1;
+!                      else if (cmplen > orgpat.headlen)
+                           tagcmp = 1;
+                   }
+  
+***************
+*** 2011,2017 ****
+               }
+               else if (state == TS_SKIP_BACK)
+               {
+!                  if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
+                       state = TS_STEP_FORWARD;
+                   else
+                       /* Have to skip back more.  Restore the curr_offset
+--- 2032,2038 ----
+               }
+               else if (state == TS_SKIP_BACK)
+               {
+!                  if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
+                       state = TS_STEP_FORWARD;
+                   else
+                       /* Have to skip back more.  Restore the curr_offset
+***************
+*** 2021,2027 ****
+               }
+               else if (state == TS_STEP_FORWARD)
+               {
+!                  if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
+                   {
+                       if ((off_t)ftell(fp) > search_info.match_offset)
+                           break;      /* past last match */
+--- 2042,2048 ----
+               }
+               else if (state == TS_STEP_FORWARD)
+               {
+!                  if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
+                   {
+                       if ((off_t)ftell(fp) > search_info.match_offset)
+                           break;      /* past last match */
+***************
+*** 2032,2038 ****
+               else
+  #endif
+                   /* skip this match if it can't match */
+!                  if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
+                   continue;
+  
+               /*
+--- 2053,2059 ----
+               else
+  #endif
+                   /* skip this match if it can't match */
+!                  if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
+                   continue;
+  
+               /*
+***************
+*** 2083,2123 ****
+           if (p_tl != 0 && cmplen > p_tl)         /* adjust for 'taglength' */
+               cmplen = p_tl;
+           /* if tag length does not match, don't try comparing */
+!          if (pats->len != cmplen)
+               match = FALSE;
+           else
+           {
+!              if (pats->regmatch.rm_ic)
+               {
+!                  match = (MB_STRNICMP(tagp.tagname, pats->pat, cmplen) == 0);
+                   if (match)
+!                      match_no_ic = (STRNCMP(tagp.tagname, pats->pat,
+                                                               cmplen) == 0);
+               }
+               else
+!                  match = (STRNCMP(tagp.tagname, pats->pat, cmplen) == 0);
+           }
+  
+           /*
+            * Has a regexp: Also find tags matching regexp.
+            */
+           match_re = FALSE;
+!          if (!match && pats->regmatch.regprog != NULL)
+           {
+               int     cc;
+  
+               cc = *tagp.tagname_end;
+               *tagp.tagname_end = NUL;
+!              match = vim_regexec(&pats->regmatch, tagp.tagname, (colnr_T)0);
+               if (match)
+               {
+!                  matchoff = (int)(pats->regmatch.startp[0] - tagp.tagname);
+!                  if (pats->regmatch.rm_ic)
+                   {
+!                      pats->regmatch.rm_ic = FALSE;
+!                      match_no_ic = vim_regexec(&pats->regmatch, tagp.tagname,
+                                                                 (colnr_T)0);
+!                      pats->regmatch.rm_ic = TRUE;
+                   }
+               }
+               *tagp.tagname_end = cc;
+--- 2104,2144 ----
+           if (p_tl != 0 && cmplen > p_tl)         /* adjust for 'taglength' */
+               cmplen = p_tl;
+           /* if tag length does not match, don't try comparing */
+!          if (orgpat.len != cmplen)
+               match = FALSE;
+           else
+           {
+!              if (orgpat.regmatch.rm_ic)
+               {
+!                  match = (MB_STRNICMP(tagp.tagname, orgpat.pat, cmplen) == 0);
+                   if (match)
+!                      match_no_ic = (STRNCMP(tagp.tagname, orgpat.pat,
+                                                               cmplen) == 0);
+               }
+               else
+!                  match = (STRNCMP(tagp.tagname, orgpat.pat, cmplen) == 0);
+           }
+  
+           /*
+            * Has a regexp: Also find tags matching regexp.
+            */
+           match_re = FALSE;
+!          if (!match && orgpat.regmatch.regprog != NULL)
+           {
+               int     cc;
+  
+               cc = *tagp.tagname_end;
+               *tagp.tagname_end = NUL;
+!              match = vim_regexec(&orgpat.regmatch, tagp.tagname, (colnr_T)0);
+               if (match)
+               {
+!                  matchoff = (int)(orgpat.regmatch.startp[0] - tagp.tagname);
+!                  if (orgpat.regmatch.rm_ic)
+                   {
+!                      orgpat.regmatch.rm_ic = FALSE;
+!                      match_no_ic = vim_regexec(&orgpat.regmatch, tagp.tagname,
+                                                                 (colnr_T)0);
+!                      orgpat.regmatch.rm_ic = TRUE;
+                   }
+               }
+               *tagp.tagname_end = cc;
+***************
+*** 2174,2180 ****
+                       else
+                           mtt = MT_GL_OTH;
+                   }
+!                  if (pats->regmatch.rm_ic && !match_no_ic)
+                       mtt += MT_IC_OFF;
+                   if (match_re)
+                       mtt += MT_RE_OFF;
+--- 2195,2201 ----
+                       else
+                           mtt = MT_GL_OTH;
+                   }
+!                  if (orgpat.regmatch.rm_ic && !match_no_ic)
+                       mtt += MT_IC_OFF;
+                   if (match_re)
+                       mtt += MT_RE_OFF;
+***************
+*** 2187,2221 ****
+                */
+               if (ga_grow(&ga_match[mtt], 1) == OK)
+               {
+- #ifdef FEAT_MBYTE
+-                  char_u      *conv_line = NULL;
+-                  char_u      *lbuf_line = lbuf;
+- 
+-                  if (vimconv.vc_type != CONV_NONE)
+-                  {
+-                      /* Convert the tag line from the encoding of the tags
+-                       * file to 'encoding'.  Then parse the line again. */
+-                      conv_line = string_convert(&vimconv, lbuf, NULL);
+-                      if (conv_line != NULL)
+-                      {
+-                          if (parse_tag_line(conv_line,
+- #ifdef FEAT_EMACS_TAGS
+-                                      is_etag,
+- #endif
+-                                      &tagp) == OK)
+-                              lbuf_line = conv_line;
+-                          else
+-                              /* doesn't work, go back to unconverted line. */
+-                              (void)parse_tag_line(lbuf,
+- #ifdef FEAT_EMACS_TAGS
+-                                                   is_etag,
+- #endif
+-                                                   &tagp);
+-                      }
+-                  }
+- #else
+- # define lbuf_line lbuf
+- #endif
+                   if (help_only)
+                   {
+  #ifdef FEAT_MULTI_LANG
+--- 2208,2213 ----
+***************
+*** 2307,2313 ****
+                        * without Emacs tags: <mtt><tag_fname><NUL><lbuf>
+                        */
+                       len = (int)STRLEN(tag_fname)
+!                                               + (int)STRLEN(lbuf_line) + 3;
+  #ifdef FEAT_EMACS_TAGS
+                       if (is_etag)
+                           len += (int)STRLEN(ebuf) + 1;
+--- 2299,2305 ----
+                        * without Emacs tags: <mtt><tag_fname><NUL><lbuf>
+                        */
+                       len = (int)STRLEN(tag_fname)
+!                                               + (int)STRLEN(lbuf) + 3;
+  #ifdef FEAT_EMACS_TAGS
+                       if (is_etag)
+                           len += (int)STRLEN(ebuf) + 1;
+***************
+*** 2337,2343 ****
+                           else
+                               *s++ = NUL;
+  #endif
+!                          STRCPY(s, lbuf_line);
+                       }
+                   }
+  
+--- 2329,2335 ----
+                           else
+                               *s++ = NUL;
+  #endif
+!                          STRCPY(s, lbuf);
+                       }
+                   }
+  
+***************
+*** 2373,2382 ****
+                       else
+                           vim_free(mfp);
+                   }
+- #ifdef FEAT_MBYTE
+-                  /* Note: this makes the values in "tagp" invalid! */
+-                  vim_free(conv_line);
+- #endif
+               }
+               else    /* Out of memory! Just forget about the rest. */
+               {
+--- 2365,2370 ----
+***************
+*** 2415,2433 ****
+       }
+  #endif
+  #ifdef FEAT_MBYTE
+-      if (pats == &convpat)
+-      {
+-          /* Go back from converted pattern to original pattern. */
+-          vim_free(pats->pat);
+-          vim_free(pats->regmatch.regprog);
+-          orgpat.regmatch.rm_ic = pats->regmatch.rm_ic;
+-          pats = &orgpat;
+-      }
+       if (vimconv.vc_type != CONV_NONE)
+           convert_setup(&vimconv, NULL, NULL);
+  #endif
+  
+  #ifdef FEAT_TAG_BINS
+       if (sort_error)
+       {
+           EMSG2(_("E432: Tags file not sorted: %s"), tag_fname);
+--- 2403,2414 ----
+       }
+  #endif
+  #ifdef FEAT_MBYTE
+       if (vimconv.vc_type != CONV_NONE)
+           convert_setup(&vimconv, NULL, NULL);
+  #endif
+  
+  #ifdef FEAT_TAG_BINS
++      tag_file_sorted = NUL;
+       if (sort_error)
+       {
+           EMSG2(_("E432: Tags file not sorted: %s"), tag_fname);
+***************
+*** 2461,2473 ****
+  #ifdef FEAT_TAG_BINS
+        /* stop searching when already did a linear search, or when TAG_NOIC
+         * used, and 'ignorecase' not set or already did case-ignore search */
+!       if (stop_searching || linear || (!p_ic && noic) || pats->regmatch.rm_ic)
+         break;
+  # ifdef FEAT_CSCOPE
+        if (use_cscope)
+         break;
+  # endif
+!       pats->regmatch.rm_ic = TRUE;   /* try another time while ignoring case */
+      }
+  #endif
+  
+--- 2442,2454 ----
+  #ifdef FEAT_TAG_BINS
+        /* stop searching when already did a linear search, or when TAG_NOIC
+         * used, and 'ignorecase' not set or already did case-ignore search */
+!       if (stop_searching || linear || (!p_ic && noic) || orgpat.regmatch.rm_ic)
+         break;
+  # ifdef FEAT_CSCOPE
+        if (use_cscope)
+         break;
+  # endif
+!       orgpat.regmatch.rm_ic = TRUE;  /* try another time while ignoring case */
+      }
+  #endif
+  
+***************
+*** 2480,2486 ****
+  
+  findtag_end:
+      vim_free(lbuf);
+!     vim_free(pats->regmatch.regprog);
+      vim_free(tag_fname);
+  #ifdef FEAT_EMACS_TAGS
+      vim_free(ebuf);
+--- 2461,2467 ----
+  
+  findtag_end:
+      vim_free(lbuf);
+!     vim_free(orgpat.regmatch.regprog);
+      vim_free(tag_fname);
+  #ifdef FEAT_EMACS_TAGS
+      vim_free(ebuf);
+*** ../vim-7.3.335/src/testdir/Make_amiga.mak  2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Make_amiga.mak 2011-10-12 19:21:00.000000000 +0200
+***************
+*** 29,35 ****
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out test82.out
+  
+  .SUFFIXES: .in .out
+  
+--- 29,35 ----
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out test82.out test83.out
+  
+  .SUFFIXES: .in .out
+  
+***************
+*** 131,133 ****
+--- 131,134 ----
+  test80.out: test80.in
+  test81.out: test81.in
+  test82.out: test82.in
++ test83.out: test83.in
+*** ../vim-7.3.335/src/testdir/Make_dos.mak    2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Make_dos.mak   2011-10-12 17:39:03.000000000 +0200
+***************
+*** 29,35 ****
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 29,35 ----
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out test83.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.335/src/testdir/Make_ming.mak   2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Make_ming.mak  2011-10-12 17:39:03.000000000 +0200
+***************
+*** 49,55 ****
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 49,55 ----
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out test83.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.335/src/testdir/Make_os2.mak    2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Make_os2.mak   2011-10-12 17:39:03.000000000 +0200
+***************
+*** 29,35 ****
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out test82.out
+  
+  .SUFFIXES: .in .out
+  
+--- 29,35 ----
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out test82.out test83.out
+  
+  .SUFFIXES: .in .out
+  
+*** ../vim-7.3.335/src/testdir/Make_vms.mms    2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Make_vms.mms   2011-10-12 17:39:03.000000000 +0200
+***************
+*** 76,82 ****
+        test66.out test67.out test68.out test69.out \
+        test71.out test72.out test74.out test75.out test76.out \
+        test77.out test78.out test79.out test80.out test81.out \
+!       test82.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+--- 76,82 ----
+        test66.out test67.out test68.out test69.out \
+        test71.out test72.out test74.out test75.out test76.out \
+        test77.out test78.out test79.out test80.out test81.out \
+!       test82.out test83.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.335/src/testdir/Makefile        2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Makefile       2011-10-12 17:39:03.000000000 +0200
+***************
+*** 26,32 ****
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out
+  
+  SCRIPTS_GUI = test16.out
+  
+--- 26,32 ----
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out test83.out
+  
+  SCRIPTS_GUI = test16.out
+  
+***************
+*** 72,78 ****
+                 fi \
+               else echo $* NO OUTPUT >>test.log; \
+               fi"
+!      -rm -rf X* test.ok viminfo
+  
+  test49.out: test49.vim
+  
+--- 72,78 ----
+                 fi \
+               else echo $* NO OUTPUT >>test.log; \
+               fi"
+! #    -rm -rf X* test.ok viminfo
+  
+  test49.out: test49.vim
+  
+*** ../vim-7.3.335/src/testdir/test83-tags2    2011-10-12 19:49:38.000000000 +0200
+--- src/testdir/test83-tags2   2011-10-12 19:34:15.000000000 +0200
+***************
+*** 0 ****
+--- 1,2 ----
++ !_TAG_FILE_ENCODING  cp932   //
++ \82`\82a\82b       Xtags2.txt      /\82`\82a\82b
+*** ../vim-7.3.335/src/testdir/test83-tags3    2011-10-12 19:49:38.000000000 +0200
+--- src/testdir/test83-tags3   2011-10-12 19:35:42.000000000 +0200
+***************
+*** 0 ****
+--- 1,102 ----
++ !_TAG_FILE_SORTED    1       //
++ !_TAG_FILE_ENCODING  cp932   //
++ abc1 Xtags3.txt      /\82`\82a\82b
++ abc2 Xtags3.txt      /\82`\82a\82b
++ abc3 Xtags3.txt      /\82`\82a\82b
++ abc4 Xtags3.txt      /\82`\82a\82b
++ abc5 Xtags3.txt      /\82`\82a\82b
++ abc6 Xtags3.txt      /\82`\82a\82b
++ abc7 Xtags3.txt      /\82`\82a\82b
++ abc8 Xtags3.txt      /\82`\82a\82b
++ abc9 Xtags3.txt      /\82`\82a\82b
++ abc10        Xtags3.txt      /\82`\82a\82b
++ abc11        Xtags3.txt      /\82`\82a\82b
++ abc12        Xtags3.txt      /\82`\82a\82b
++ abc13        Xtags3.txt      /\82`\82a\82b
++ abc14        Xtags3.txt      /\82`\82a\82b
++ abc15        Xtags3.txt      /\82`\82a\82b
++ abc16        Xtags3.txt      /\82`\82a\82b
++ abc17        Xtags3.txt      /\82`\82a\82b
++ abc18        Xtags3.txt      /\82`\82a\82b
++ abc19        Xtags3.txt      /\82`\82a\82b
++ abc20        Xtags3.txt      /\82`\82a\82b
++ abc21        Xtags3.txt      /\82`\82a\82b
++ abc22        Xtags3.txt      /\82`\82a\82b
++ abc23        Xtags3.txt      /\82`\82a\82b
++ abc24        Xtags3.txt      /\82`\82a\82b
++ abc25        Xtags3.txt      /\82`\82a\82b
++ abc26        Xtags3.txt      /\82`\82a\82b
++ abc27        Xtags3.txt      /\82`\82a\82b
++ abc28        Xtags3.txt      /\82`\82a\82b
++ abc29        Xtags3.txt      /\82`\82a\82b
++ abc30        Xtags3.txt      /\82`\82a\82b
++ abc31        Xtags3.txt      /\82`\82a\82b
++ abc32        Xtags3.txt      /\82`\82a\82b
++ abc33        Xtags3.txt      /\82`\82a\82b
++ abc34        Xtags3.txt      /\82`\82a\82b
++ abc35        Xtags3.txt      /\82`\82a\82b
++ abc36        Xtags3.txt      /\82`\82a\82b
++ abc37        Xtags3.txt      /\82`\82a\82b
++ abc38        Xtags3.txt      /\82`\82a\82b
++ abc39        Xtags3.txt      /\82`\82a\82b
++ abc40        Xtags3.txt      /\82`\82a\82b
++ abc41        Xtags3.txt      /\82`\82a\82b
++ abc42        Xtags3.txt      /\82`\82a\82b
++ abc43        Xtags3.txt      /\82`\82a\82b
++ abc44        Xtags3.txt      /\82`\82a\82b
++ abc45        Xtags3.txt      /\82`\82a\82b
++ abc46        Xtags3.txt      /\82`\82a\82b
++ abc47        Xtags3.txt      /\82`\82a\82b
++ abc48        Xtags3.txt      /\82`\82a\82b
++ abc49        Xtags3.txt      /\82`\82a\82b
++ abc50        Xtags3.txt      /\82`\82a\82b
++ abc51        Xtags3.txt      /\82`\82a\82b
++ abc52        Xtags3.txt      /\82`\82a\82b
++ abc53        Xtags3.txt      /\82`\82a\82b
++ abc54        Xtags3.txt      /\82`\82a\82b
++ abc55        Xtags3.txt      /\82`\82a\82b
++ abc56        Xtags3.txt      /\82`\82a\82b
++ abc57        Xtags3.txt      /\82`\82a\82b
++ abc58        Xtags3.txt      /\82`\82a\82b
++ abc59        Xtags3.txt      /\82`\82a\82b
++ abc60        Xtags3.txt      /\82`\82a\82b
++ abc61        Xtags3.txt      /\82`\82a\82b
++ abc62        Xtags3.txt      /\82`\82a\82b
++ abc63        Xtags3.txt      /\82`\82a\82b
++ abc64        Xtags3.txt      /\82`\82a\82b
++ abc65        Xtags3.txt      /\82`\82a\82b
++ abc66        Xtags3.txt      /\82`\82a\82b
++ abc67        Xtags3.txt      /\82`\82a\82b
++ abc68        Xtags3.txt      /\82`\82a\82b
++ abc69        Xtags3.txt      /\82`\82a\82b
++ abc70        Xtags3.txt      /\82`\82a\82b
++ abc71        Xtags3.txt      /\82`\82a\82b
++ abc72        Xtags3.txt      /\82`\82a\82b
++ abc73        Xtags3.txt      /\82`\82a\82b
++ abc74        Xtags3.txt      /\82`\82a\82b
++ abc75        Xtags3.txt      /\82`\82a\82b
++ abc76        Xtags3.txt      /\82`\82a\82b
++ abc77        Xtags3.txt      /\82`\82a\82b
++ abc78        Xtags3.txt      /\82`\82a\82b
++ abc79        Xtags3.txt      /\82`\82a\82b
++ abc80        Xtags3.txt      /\82`\82a\82b
++ abc81        Xtags3.txt      /\82`\82a\82b
++ abc82        Xtags3.txt      /\82`\82a\82b
++ abc83        Xtags3.txt      /\82`\82a\82b
++ abc84        Xtags3.txt      /\82`\82a\82b
++ abc85        Xtags3.txt      /\82`\82a\82b
++ abc86        Xtags3.txt      /\82`\82a\82b
++ abc87        Xtags3.txt      /\82`\82a\82b
++ abc88        Xtags3.txt      /\82`\82a\82b
++ abc89        Xtags3.txt      /\82`\82a\82b
++ abc90        Xtags3.txt      /\82`\82a\82b
++ abc91        Xtags3.txt      /\82`\82a\82b
++ abc92        Xtags3.txt      /\82`\82a\82b
++ abc93        Xtags3.txt      /\82`\82a\82b
++ abc94        Xtags3.txt      /\82`\82a\82b
++ abc95        Xtags3.txt      /\82`\82a\82b
++ abc96        Xtags3.txt      /\82`\82a\82b
++ abc97        Xtags3.txt      /\82`\82a\82b
++ abc98        Xtags3.txt      /\82`\82a\82b
++ abc99        Xtags3.txt      /\82`\82a\82b
++ abc100       Xtags3.txt      /\82`\82a\82b
+*** ../vim-7.3.335/src/testdir/test83.in       2011-10-12 19:49:38.000000000 +0200
+--- src/testdir/test83.in      2011-10-12 19:40:47.000000000 +0200
+***************
+*** 0 ****
+--- 1,76 ----
++ Tests for tag search with !_TAG_FILE_ENCODING.
++ 
++ STARTTEST
++ :so mbyte.vim
++ :if !has('iconv')
++ : e! test.ok
++ : w! test.out
++ : qa!
++ :endif
++ :set enc=utf8
++ 
++ :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
++ :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
++ :/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
++ :/^tags1$/+1,/^tags1-end$/-1w! Xtags1
++ 
++ ggdG
++ 
++ :call setline('.', 'Results of test83')
++ 
++ :" case1:
++ :new
++ :set tags=Xtags1
++ :let v:errmsg = ''
++ :tag abcdefghijklmnopqrs
++ :if v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
++ : close
++ : put ='case1: failed'
++ :else
++ : close
++ : put ='case1: ok'
++ :endif
++ 
++ :" case2:
++ :new
++ :set tags=test83-tags2
++ :let v:errmsg = ''
++ :tag /.BC
++ :if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
++ : close
++ : put ='case2: failed'
++ :else
++ : close
++ : put ='case2: ok'
++ :endif
++ 
++ :" case3:
++ :new
++ :set tags=test83-tags3
++ :let v:errmsg = ''
++ :tag abc50
++ :if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
++ : close
++ : put ='case3: failed'
++ :else
++ : close
++ : put ='case3: ok'
++ :endif
++ :close
++ 
++ :wq! test.out
++ ENDTEST
++ 
++ text for tags1
++ abcdefghijklmnopqrs
++ 
++ text for tags2
++ ï¼¡ï¼¢ï¼£
++ 
++ text for tags3
++ ï¼¡ï¼¢ï¼£
++ 
++ tags1
++ !_TAG_FILE_ENCODING  utf-8   //
++ abcdefghijklmnopqrs  Xtags1.txt      /abcdefghijklmnopqrs
++ tags1-end
+*** ../vim-7.3.335/src/testdir/test83.ok       2011-10-12 19:49:38.000000000 +0200
+--- src/testdir/test83.ok      2011-10-12 17:39:03.000000000 +0200
+***************
+*** 0 ****
+--- 1,4 ----
++ Results of test83
++ case1: ok
++ case2: ok
++ case3: ok
+*** ../vim-7.3.335/src/version.c       2011-10-12 16:57:07.000000000 +0200
+--- src/version.c      2011-10-12 19:45:46.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     336,
+  /**/
+
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+62. If your doorbell rings, you think that new mail has arrived.  And then
+    you're disappointed that it's only someone at the door.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.337.patch0 b/vim/patches/vim-7.3.337.patch0
new file mode 100644 (file)
index 0000000..a2aeb04
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.337
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.337 (after 7.3.295)
+Problem:    Screen doesn't update after resizing the xterm until a character
+           is typed.
+Solution:   When the select call is interrupted check do_resize. (Taylor
+           Hedberg)
+Files:     src/os_unix.c
+
+
+*** ../vim-7.3.336/src/os_unix.c       2011-09-08 23:24:09.000000000 +0200
+--- src/os_unix.c      2011-10-12 20:57:15.000000000 +0200
+***************
+*** 5146,5156 ****
+--- 5146,5163 ----
+  # endif
+  # ifdef EINTR
+       if (ret == -1 && errno == EINTR)
++      {
++          /* Check whether window has been resized, EINTR may be caused by
++           * SIGWINCH. */
++          if (do_resize)
++              handle_resize();
++ 
+           /* Interrupted by a signal, need to try again.  We ignore msec
+            * here, because we do want to check even after a timeout if
+            * characters are available.  Needed for reading output of an
+            * external command after the process has finished. */
+           goto select_eintr;
++      }
+  # endif
+  # ifdef __TANDEM
+       if (ret == -1 && errno == ENOTSUP)
+*** ../vim-7.3.336/src/version.c       2011-10-12 19:53:31.000000000 +0200
+--- src/version.c      2011-10-12 21:03:47.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     337,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+64. The remote to the T.V. is missing...and you don't even care.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.338.patch0 b/vim/patches/vim-7.3.338.patch0
new file mode 100644 (file)
index 0000000..f273212
--- /dev/null
@@ -0,0 +1,100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.338
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.338
+Problem:    Using getchar() in an expression mapping doesn't work well.
+Solution:   Don't save and restore the typeahead. (James Vega)
+Files:     src/getchar.c, src/testdir/test34.ok
+
+
+*** ../vim-7.3.337/src/getchar.c       2011-08-17 20:33:18.000000000 +0200
+--- src/getchar.c      2011-10-12 21:53:27.000000000 +0200
+***************
+*** 2460,2486 ****
+  
+                       /*
+                        * Handle ":map <expr>": evaluate the {rhs} as an
+!                       * expression.  Save and restore the typeahead so that
+!                       * getchar() can be used.  Also save and restore the
+!                       * command line for "normal :".
+                        */
+                       if (mp->m_expr)
+                       {
+-                          tasave_T    tabuf;
+                           int         save_vgetc_busy = vgetc_busy;
+  
+!                          save_typeahead(&tabuf);
+!                          if (tabuf.typebuf_valid)
+!                          {
+!                              vgetc_busy = 0;
+!                              save_m_keys = vim_strsave(mp->m_keys);
+!                              save_m_str = vim_strsave(mp->m_str);
+!                              s = eval_map_expr(save_m_str, NUL);
+!                              vgetc_busy = save_vgetc_busy;
+!                          }
+!                          else
+!                              s = NULL;
+!                          restore_typeahead(&tabuf);
+                       }
+                       else
+  #endif
+--- 2460,2477 ----
+  
+                       /*
+                        * Handle ":map <expr>": evaluate the {rhs} as an
+!                       * expression.  Also save and restore the command line
+!                       * for "normal :".
+                        */
+                       if (mp->m_expr)
+                       {
+                           int         save_vgetc_busy = vgetc_busy;
+  
+!                          vgetc_busy = 0;
+!                          save_m_keys = vim_strsave(mp->m_keys);
+!                          save_m_str = vim_strsave(mp->m_str);
+!                          s = eval_map_expr(save_m_str, NUL);
+!                          vgetc_busy = save_vgetc_busy;
+                       }
+                       else
+  #endif
+*** ../vim-7.3.337/src/testdir/test34.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test34.ok      2011-10-12 21:59:39.000000000 +0200
+***************
+*** 1,5 ****
+  xxx4asdf fail nop ok 9 333
+! XX111XX
+  ---222---
+  1. one
+  2. two
+--- 1,5 ----
+  xxx4asdf fail nop ok 9 333
+! XX111-XX
+  ---222---
+  1. one
+  2. two
+*** ../vim-7.3.337/src/version.c       2011-10-12 21:04:15.000000000 +0200
+--- src/version.c      2011-10-12 21:20:31.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     338,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+65. The last time you looked at the clock it was 11:30pm, and in what
+    seems like only a few seconds later, your sister runs past you to
+    catch her 7am school bus.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.339.patch0 b/vim/patches/vim-7.3.339.patch0
new file mode 100644 (file)
index 0000000..f108ad6
--- /dev/null
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.339
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.339
+Problem:    "make shadow" doesn't link all test files.
+Solution:   Add a line in Makefile and Filelist.
+Files:     src/Makefile, Filelist
+
+
+*** ../vim-7.3.338/Filelist    2011-09-30 16:56:00.000000000 +0200
+--- Filelist   2011-10-16 14:00:42.000000000 +0200
+***************
+*** 81,86 ****
+--- 81,87 ----
+               src/testdir/test[0-9]*.ok \
+               src/testdir/test49.vim \
+               src/testdir/test60.vim \
++              src/testdir/test83-tags? \
+               src/proto.h \
+               src/proto/blowfish.pro \
+               src/proto/buffer.pro \
+*** ../vim-7.3.338/src/Makefile        2011-05-19 13:40:47.000000000 +0200
+--- src/Makefile       2011-10-16 13:59:40.000000000 +0200
+***************
+*** 2328,2333 ****
+--- 2328,2334 ----
+                                ../../testdir/vimrc.unix \
+                                ../../testdir/*.in \
+                                ../../testdir/*.vim \
++                               ../../testdir/test83-tags? \
+                                ../../testdir/*.ok .
+  
+  # Link needed for doing "make install" in a shadow directory.
+*** ../vim-7.3.338/src/version.c       2011-10-12 22:02:07.000000000 +0200
+--- src/version.c      2011-10-20 16:34:28.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     339,
+  /**/
+
+-- 
+From "know your smileys":
+ :-O>-o   Smiley American tourist (note big mouth and camera)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.340.patch0 b/vim/patches/vim-7.3.340.patch0
new file mode 100644 (file)
index 0000000..fb0b842
--- /dev/null
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.340
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.340
+Problem:    When 'verbosefile' is set ftplugof.vim can give an error.
+Solution:   Only remove filetypeplugin autocommands when they exist. (Yasuhiro
+           Matsumoto)
+Files:     runtime/ftplugof.vim
+
+
+*** ../vim-7.3.339/runtime/ftplugof.vim        2010-08-15 21:57:11.000000000 +0200
+--- runtime/ftplugof.vim       2011-10-20 16:51:00.000000000 +0200
+***************
+*** 1,11 ****
+  " Vim support file to switch off loading plugins for file types
+  "
+  " Maintainer:        Bram Moolenaar <Bram@vim.org>
+! " Last Change:       2002 Apr 04
+  
+  if exists("did_load_ftplugin")
+    unlet did_load_ftplugin
+  endif
+  
+! " Remove all autocommands in the filetypeplugin group
+! silent! au! filetypeplugin *
+--- 1,13 ----
+  " Vim support file to switch off loading plugins for file types
+  "
+  " Maintainer:        Bram Moolenaar <Bram@vim.org>
+! " Last Change:       2011 Oct 20
+  
+  if exists("did_load_ftplugin")
+    unlet did_load_ftplugin
+  endif
+  
+! " Remove all autocommands in the filetypeplugin group, if any exist.
+! if exists("#filetypeplugin")
+!   silent! au! filetypeplugin *
+! endif
+*** ../vim-7.3.339/src/version.c       2011-10-20 16:35:25.000000000 +0200
+--- src/version.c      2011-10-20 18:01:18.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     340,
+  /**/
+
+-- 
+How many light bulbs does it take to change a person?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.341.patch0 b/vim/patches/vim-7.3.341.patch0
new file mode 100644 (file)
index 0000000..6ea3860
--- /dev/null
@@ -0,0 +1,360 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.341
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.341
+Problem:    Local help files are only listed in help.txt, not in translated
+           help files.
+Solution:   Also find translated help files. (Yasuhiro Matsumoto)
+Files:     src/ex_cmds.c
+
+
+*** ../vim-7.3.340/src/ex_cmds.c       2011-09-30 17:30:27.000000000 +0200
+--- src/ex_cmds.c      2011-10-20 17:39:45.000000000 +0200
+***************
+*** 5982,5987 ****
+--- 5982,5988 ----
+      char_u   *line;
+      int              in_example = FALSE;
+      int              len;
++     char_u   *fname;
+      char_u   *p;
+      char_u   *rt;
+      int              mustfree;
+***************
+*** 6028,6151 ****
+      }
+  
+      /*
+!      * In the "help.txt" file, add the locally added help files.
+!      * This uses the very first line in the help file.
+       */
+!     if (fnamecmp(gettail(curbuf->b_fname), "help.txt") == 0)
+      {
+       for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
+       {
+           line = ml_get_buf(curbuf, lnum, FALSE);
+!          if (strstr((char *)line, "*local-additions*") != NULL)
+           {
+!              /* Go through all directories in 'runtimepath', skipping
+!               * $VIMRUNTIME. */
+!              p = p_rtp;
+!              while (*p != NUL)
+               {
+!                  copy_option_part(&p, NameBuff, MAXPATHL, ",");
+!                  mustfree = FALSE;
+!                  rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
+!                  if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
+!                  {
+!                      int     fcount;
+!                      char_u  **fnames;
+!                      FILE    *fd;
+!                      char_u  *s;
+!                      int     fi;
+  #ifdef FEAT_MBYTE
+!                      vimconv_T       vc;
+!                      char_u          *cp;
+  #endif
+  
+!                      /* Find all "doc/ *.txt" files in this directory. */
+!                      add_pathsep(NameBuff);
+!                      STRCAT(NameBuff, "doc/*.txt");
+!                      if (gen_expand_wildcards(1, &NameBuff, &fcount,
+!                                           &fnames, EW_FILE|EW_SILENT) == OK
+!                              && fcount > 0)
+                       {
+!                          for (fi = 0; fi < fcount; ++fi)
+                           {
+!                              fd = mch_fopen((char *)fnames[fi], "r");
+!                              if (fd != NULL)
+                               {
+!                                  vim_fgets(IObuff, IOSIZE, fd);
+!                                  if (IObuff[0] == '*'
+!                                          && (s = vim_strchr(IObuff + 1, '*'))
+!                                                                    != NULL)
+!                                  {
+! #ifdef FEAT_MBYTE
+!                                      int     this_utf = MAYBE;
+  #endif
+!                                      /* Change tag definition to a
+!                                       * reference and remove <CR>/<NL>. */
+!                                      IObuff[0] = '|';
+!                                      *s = '|';
+!                                      while (*s != NUL)
+!                                      {
+!                                          if (*s == '\r' || *s == '\n')
+!                                              *s = NUL;
+  #ifdef FEAT_MBYTE
+!                                          /* The text is utf-8 when a byte
+!                                           * above 127 is found and no
+!                                           * illegal byte sequence is found.
+!                                           */
+!                                          if (*s >= 0x80 && this_utf != FALSE)
+!                                          {
+!                                              int     l;
+! 
+!                                              this_utf = TRUE;
+!                                              l = utf_ptr2len(s);
+!                                              if (l == 1)
+!                                                  this_utf = FALSE;
+!                                              s += l - 1;
+!                                          }
+  #endif
+!                                          ++s;
+!                                      }
+  #ifdef FEAT_MBYTE
+!                                      /* The help file is latin1 or utf-8;
+!                                       * conversion to the current
+!                                       * 'encoding' may be required. */
+!                                      vc.vc_type = CONV_NONE;
+!                                      convert_setup(&vc, (char_u *)(
+!                                                  this_utf == TRUE ? "utf-8"
+!                                                        : "latin1"), p_enc);
+!                                      if (vc.vc_type == CONV_NONE)
+!                                          /* No conversion needed. */
+!                                          cp = IObuff;
+!                                      else
+                                       {
+!                                          /* Do the conversion.  If it fails
+!                                           * use the unconverted text. */
+!                                          cp = string_convert(&vc, IObuff,
+!                                                                      NULL);
+!                                          if (cp == NULL)
+!                                              cp = IObuff;
+                                       }
+!                                      convert_setup(&vc, NULL, NULL);
+  
+!                                      ml_append(lnum, cp, (colnr_T)0, FALSE);
+!                                      if (cp != IObuff)
+!                                          vim_free(cp);
+  #else
+!                                      ml_append(lnum, IObuff, (colnr_T)0,
+!                                                                     FALSE);
+  #endif
+!                                      ++lnum;
+!                                  }
+!                                  fclose(fd);
+                               }
+                           }
+-                          FreeWild(fcount, fnames);
+                       }
+                   }
+-                  if (mustfree)
+-                      vim_free(rt);
+               }
+!              break;
+           }
+       }
+      }
+  }
+--- 6029,6215 ----
+      }
+  
+      /*
+!      * In the "help.txt" and "help.abx" file, add the locally added help
+!      * files.  This uses the very first line in the help file.
+       */
+!     fname = gettail(curbuf->b_fname);
+!     if (fnamecmp(fname, "help.txt") == 0
+! #ifdef FEAT_MULTI_LANG
+!      || (fnamencmp(fname, "help.", 5) == 0
+!          && ASCII_ISALPHA(fname[5])
+!          && ASCII_ISALPHA(fname[6])
+!          && TOLOWER_ASC(fname[7]) == 'x'
+!          && fname[8] == NUL)
+! #endif
+!      )
+      {
+       for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
+       {
+           line = ml_get_buf(curbuf, lnum, FALSE);
+!          if (strstr((char *)line, "*local-additions*") == NULL)
+!              continue;
+! 
+!          /* Go through all directories in 'runtimepath', skipping
+!           * $VIMRUNTIME. */
+!          p = p_rtp;
+!          while (*p != NUL)
+           {
+!              copy_option_part(&p, NameBuff, MAXPATHL, ",");
+!              mustfree = FALSE;
+!              rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
+!              if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
+               {
+!                  int         fcount;
+!                  char_u      **fnames;
+!                  FILE        *fd;
+!                  char_u      *s;
+!                  int         fi;
+  #ifdef FEAT_MBYTE
+!                  vimconv_T   vc;
+!                  char_u      *cp;
+  #endif
+  
+!                  /* Find all "doc/ *.txt" files in this directory. */
+!                  add_pathsep(NameBuff);
+! #ifdef FEAT_MULTI_LANG
+!                  STRCAT(NameBuff, "doc/*.??[tx]");
+! #else
+!                  STRCAT(NameBuff, "doc/*.txt");
+! #endif
+!                  if (gen_expand_wildcards(1, &NameBuff, &fcount,
+!                                       &fnames, EW_FILE|EW_SILENT) == OK
+!                          && fcount > 0)
+!                  {
+! #ifdef FEAT_MULTI_LANG
+!                      int     i1;
+!                      int     i2;
+!                      char_u  *f1;
+!                      char_u  *f2;
+!                      char_u  *t1;
+!                      char_u  *e1;
+!                      char_u  *e2;
+! 
+!                      /* If foo.abx is found use it instead of foo.txt in
+!                       * the same directory. */
+!                      for (i1 = 0; i1 < fcount; ++i1)
+                       {
+!                          for (i2 = 0; i2 < fcount; ++i2)
+                           {
+!                              if (i1 == i2)
+!                                  continue;
+!                              if (fnames[i1] == NULL || fnames[i2] == NULL)
+!                                  continue;
+!                              f1 = fnames[i1];
+!                              f2 = fnames[i2];
+!                              t1 = gettail(f1);
+!                              if (fnamencmp(f1, f2, t1 - f1) != 0)
+!                                  continue;
+!                              e1 = vim_strrchr(t1, '.');
+!                              e2 = vim_strrchr(gettail(f2), '.');
+!                              if (e1 == NUL || e2 == NUL)
+!                                  continue;
+!                              if (fnamecmp(e1, ".txt") != 0
+!                                  && fnamecmp(e1, fname + 4) != 0)
+                               {
+!                                  /* Not .txt and not .abx, remove it. */
+!                                  vim_free(fnames[i1]);
+!                                  fnames[i1] = NULL;
+!                                  continue;
+!                              }
+!                              if (fnamencmp(f1, f2, e1 - f1) != 0)
+!                                  continue;
+!                              if (fnamecmp(e1, ".txt") == 0
+!                                  && fnamecmp(e2, fname + 4) == 0)
+!                              {
+!                                  /* use .abx instead of .txt */
+!                                  vim_free(fnames[i1]);
+!                                  fnames[i1] = NULL;
+!                              }
+!                          }
+!                      }
+  #endif
+!                      for (fi = 0; fi < fcount; ++fi)
+!                      {
+!                          if (fnames[fi] == NULL)
+!                              continue;
+!                          fd = mch_fopen((char *)fnames[fi], "r");
+!                          if (fd != NULL)
+!                          {
+!                              vim_fgets(IObuff, IOSIZE, fd);
+!                              if (IObuff[0] == '*'
+!                                      && (s = vim_strchr(IObuff + 1, '*'))
+!                                                                != NULL)
+!                              {
+  #ifdef FEAT_MBYTE
+!                                  int this_utf = MAYBE;
+  #endif
+!                                  /* Change tag definition to a
+!                                   * reference and remove <CR>/<NL>. */
+!                                  IObuff[0] = '|';
+!                                  *s = '|';
+!                                  while (*s != NUL)
+!                                  {
+!                                      if (*s == '\r' || *s == '\n')
+!                                          *s = NUL;
+  #ifdef FEAT_MBYTE
+!                                      /* The text is utf-8 when a byte
+!                                       * above 127 is found and no
+!                                       * illegal byte sequence is found.
+!                                       */
+!                                      if (*s >= 0x80 && this_utf != FALSE)
+                                       {
+!                                          int l;
+! 
+!                                          this_utf = TRUE;
+!                                          l = utf_ptr2len(s);
+!                                          if (l == 1)
+!                                              this_utf = FALSE;
+!                                          s += l - 1;
+                                       }
+! #endif
+!                                      ++s;
+!                                  }
+! #ifdef FEAT_MBYTE
+!                                  /* The help file is latin1 or utf-8;
+!                                   * conversion to the current
+!                                   * 'encoding' may be required. */
+!                                  vc.vc_type = CONV_NONE;
+!                                  convert_setup(&vc, (char_u *)(
+!                                              this_utf == TRUE ? "utf-8"
+!                                                    : "latin1"), p_enc);
+!                                  if (vc.vc_type == CONV_NONE)
+!                                      /* No conversion needed. */
+!                                      cp = IObuff;
+!                                  else
+!                                  {
+!                                      /* Do the conversion.  If it fails
+!                                       * use the unconverted text. */
+!                                      cp = string_convert(&vc, IObuff,
+!                                                                  NULL);
+!                                      if (cp == NULL)
+!                                          cp = IObuff;
+!                                  }
+!                                  convert_setup(&vc, NULL, NULL);
+  
+!                                  ml_append(lnum, cp, (colnr_T)0, FALSE);
+!                                  if (cp != IObuff)
+!                                      vim_free(cp);
+  #else
+!                                  ml_append(lnum, IObuff, (colnr_T)0,
+!                                                                 FALSE);
+  #endif
+!                                  ++lnum;
+                               }
++                              fclose(fd);
+                           }
+                       }
++                      FreeWild(fcount, fnames);
+                   }
+               }
+!              if (mustfree)
+!                  vim_free(rt);
+           }
++          break;
+       }
+      }
+  }
+*** ../vim-7.3.340/src/version.c       2011-10-20 18:12:27.000000000 +0200
+--- src/version.c      2011-10-20 18:13:46.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     341,
+  /**/
+
+-- 
+From "know your smileys":
+ :-)-O Smiling doctor with stethoscope
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.342.patch0 b/vim/patches/vim-7.3.342.patch0
new file mode 100644 (file)
index 0000000..2deb7e3
--- /dev/null
@@ -0,0 +1,93 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.342
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.342
+Problem:    Code not in Vim style.
+Solution:   Fix the style. (Elias Diem)
+Files:     src/os_amiga.c, src/os_mac_conv.c, src/os_win16.c
+
+
+*** ../vim-7.3.341/src/os_amiga.c      2010-08-15 21:57:27.000000000 +0200
+--- src/os_amiga.c     2011-10-20 18:19:45.000000000 +0200
+***************
+*** 1022,1028 ****
+  
+      /* insure longword alignment */
+  #ifdef __amigaos4__
+!     if(!(id = AllocDosObject(DOS_INFODATA, 0)))
+       goto out;
+  #else
+      id = (struct InfoData *)(((long)id_a + 3L) & ~3L);
+--- 1022,1028 ----
+  
+      /* insure longword alignment */
+  #ifdef __amigaos4__
+!     if (!(id = AllocDosObject(DOS_INFODATA, 0)))
+       goto out;
+  #else
+      id = (struct InfoData *)(((long)id_a + 3L) & ~3L);
+*** ../vim-7.3.341/src/os_mac_conv.c   2011-06-13 02:03:55.000000000 +0200
+--- src/os_mac_conv.c  2011-10-20 18:19:45.000000000 +0200
+***************
+*** 77,83 ****
+       *unconvlenp = 0;
+      cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
+  
+!     if(cfstr == NULL)
+       fprintf(stderr, "Encoding failed\n");
+      /* When conversion failed, try excluding bytes from the end, helps when
+       * there is an incomplete byte sequence.  Only do up to 6 bytes to avoid
+--- 77,83 ----
+       *unconvlenp = 0;
+      cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
+  
+!     if (cfstr == NULL)
+       fprintf(stderr, "Encoding failed\n");
+      /* When conversion failed, try excluding bytes from the end, helps when
+       * there is an incomplete byte sequence.  Only do up to 6 bytes to avoid
+*** ../vim-7.3.341/src/os_win16.c      2010-12-17 20:23:56.000000000 +0100
+--- src/os_win16.c     2011-10-20 18:19:45.000000000 +0200
+***************
+*** 243,251 ****
+       /* Wait for the command to terminate before continuing */
+       while (GetModuleUsage((HINSTANCE)h_module) > 0 && again )
+       {
+!          while( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) && again )
+           {
+!              if(msg.message == WM_QUIT)
+  
+               {
+                   PostQuitMessage(msg.wParam);
+--- 243,251 ----
+       /* Wait for the command to terminate before continuing */
+       while (GetModuleUsage((HINSTANCE)h_module) > 0 && again )
+       {
+!          while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) && again)
+           {
+!              if (msg.message == WM_QUIT)
+  
+               {
+                   PostQuitMessage(msg.wParam);
+*** ../vim-7.3.341/src/version.c       2011-10-20 18:17:38.000000000 +0200
+--- src/version.c      2011-10-20 18:21:43.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+  {   /* Add new patch number below this line */
++ /**/
++     342,
+  /**/
+
+-- 
+You are only young once, but you can stay immature indefinitely.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.343.patch0 b/vim/patches/vim-7.3.343.patch0
new file mode 100644 (file)
index 0000000..db62264
--- /dev/null
@@ -0,0 +1,252 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.343
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.343
+Problem:    No mouse support for urxvt.
+Solution:   Implement urxvt mouse support, also for > 252 columns.  (Yiding
+           Jia)
+Files:     src/feature.h, src/keymap.h, src/option.h, src/os_unix.c,
+           src/term.c, src/version.c
+
+
+*** ../vim-7.3.342/src/feature.h       2011-05-19 13:40:47.000000000 +0200
+--- src/feature.h      2011-10-20 21:02:15.000000000 +0200
+***************
+*** 1053,1058 ****
+--- 1053,1061 ----
+  # ifdef FEAT_BIG
+  #  define FEAT_MOUSE_DEC
+  # endif
++ # ifdef FEAT_BIG
++ #  define FEAT_MOUSE_URXVT
++ # endif
+  # if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
+  #  define DOS_MOUSE
+  # endif
+***************
+*** 1068,1080 ****
+  #if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
+  # define FEAT_SYSMOUSE
+  #endif
+  /* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
+  #if !defined(FEAT_MOUSE_TTY) \
+       && (defined(FEAT_MOUSE_XTERM) \
+!          || defined(FEAT_MOUSE_NET) || defined(FEAT_MOUSE_DEC) \
+!          || defined(DOS_MOUSE) || defined(FEAT_MOUSE_GPM) \
+!          || defined(FEAT_MOUSE_JSB) || defined(FEAT_MOUSE_PTERM) \
+!          || defined(FEAT_SYSMOUSE))
+  # define FEAT_MOUSE_TTY              /* include non-GUI mouse support */
+  #endif
+  #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
+--- 1071,1093 ----
+  #if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
+  # define FEAT_SYSMOUSE
+  #endif
++ 
++ /* urxvt is a small variation of mouse_xterm, and shares its code */
++ #if defined(FEAT_MOUSE_URXVT) && !defined(FEAT_MOUSE_XTERM)
++ # define FEAT_MOUSE_XTERM
++ #endif
++ 
+  /* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
+  #if !defined(FEAT_MOUSE_TTY) \
+       && (defined(FEAT_MOUSE_XTERM) \
+!          || defined(FEAT_MOUSE_NET) \
+!          || defined(FEAT_MOUSE_DEC) \
+!          || defined(DOS_MOUSE) \
+!          || defined(FEAT_MOUSE_GPM) \
+!          || defined(FEAT_MOUSE_JSB) \
+!          || defined(FEAT_MOUSE_PTERM) \
+!          || defined(FEAT_SYSMOUSE) \
+!          || defined(FEAT_MOUSE_URXVT))
+  # define FEAT_MOUSE_TTY              /* include non-GUI mouse support */
+  #endif
+  #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
+*** ../vim-7.3.342/src/keymap.h        2010-08-15 21:57:32.000000000 +0200
+--- src/keymap.h       2011-10-20 21:00:37.000000000 +0200
+***************
+*** 92,104 ****
+   */
+  #define KS_TEAROFF           244
+  
+! /* used for JSB term mouse */
+  #define KS_JSBTERM_MOUSE     243
+  
+! /* used a termcap entry that produces a normal character */
+  #define KS_KEY                       242
+  
+! /* Used for the qnx pterm mouse */
+  #define KS_PTERM_MOUSE               241
+  
+  /* Used for click in a tab pages label. */
+--- 92,104 ----
+   */
+  #define KS_TEAROFF           244
+  
+! /* Used for JSB term mouse. */
+  #define KS_JSBTERM_MOUSE     243
+  
+! /* Used a termcap entry that produces a normal character. */
+  #define KS_KEY                       242
+  
+! /* Used for the qnx pterm mouse. */
+  #define KS_PTERM_MOUSE               241
+  
+  /* Used for click in a tab pages label. */
+***************
+*** 107,112 ****
+--- 107,115 ----
+  /* Used for menu in a tab pages line. */
+  #define KS_TABMENU           239
+  
++ /* Used for the urxvt mouse. */
++ #define KS_URXVT_MOUSE               238
++ 
+  /*
+   * Filler used after KS_SPECIAL and others
+   */
+*** ../vim-7.3.342/src/option.h        2011-09-30 14:44:49.000000000 +0200
+--- src/option.h       2011-10-20 19:38:59.000000000 +0200
+***************
+*** 819,825 ****
+  EXTERN char_u        *p_ttym;        /* 'ttymouse' */
+  EXTERN unsigned ttym_flags;
+  # ifdef IN_OPTION_C
+! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", NULL};
+  # endif
+  # define TTYM_XTERM          0x01
+  # define TTYM_XTERM2         0x02
+--- 819,825 ----
+  EXTERN char_u        *p_ttym;        /* 'ttymouse' */
+  EXTERN unsigned ttym_flags;
+  # ifdef IN_OPTION_C
+! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", NULL};
+  # endif
+  # define TTYM_XTERM          0x01
+  # define TTYM_XTERM2         0x02
+***************
+*** 827,832 ****
+--- 827,833 ----
+  # define TTYM_NETTERM                0x08
+  # define TTYM_JSBTERM                0x10
+  # define TTYM_PTERM          0x20
++ # define TTYM_URXVT          0x40
+  #endif
+  EXTERN char_u        *p_udir;        /* 'undodir' */
+  EXTERN long  p_ul;           /* 'undolevels' */
+*** ../vim-7.3.342/src/os_unix.c       2011-10-12 21:04:15.000000000 +0200
+--- src/os_unix.c      2011-10-20 21:02:00.000000000 +0200
+***************
+*** 2158,2167 ****
+--- 2158,2170 ----
+   * Return non-zero when using an xterm mouse, according to 'ttymouse'.
+   * Return 1 for "xterm".
+   * Return 2 for "xterm2".
++  * Return 3 for "urxvt".
+   */
+      int
+  use_xterm_mouse()
+  {
++     if (ttym_flags == TTYM_URXVT)
++      return 3;
+      if (ttym_flags == TTYM_XTERM2)
+       return 2;
+      if (ttym_flags == TTYM_XTERM)
+***************
+*** 3318,3323 ****
+--- 3321,3337 ----
+       return;
+  
+      xterm_mouse_vers = use_xterm_mouse();
++ 
++ # ifdef FEAT_MOUSE_URXVT
++     if (ttym_flags == TTYM_URXVT) {
++      out_str_nf((char_u *)
++                 (on
++                 ? IF_EB("\033[?1015h", ESC_STR "[?1015h")
++                 : IF_EB("\033[?1015l", ESC_STR "[?1015l")));
++      ison = on;
++     }
++ # endif
++ 
+      if (xterm_mouse_vers > 0)
+      {
+       if (on) /* enable mouse events, use mouse tracking if available */
+***************
+*** 3434,3439 ****
+--- 3448,3456 ----
+  {
+  # ifdef FEAT_MOUSE_XTERM
+      if (use_xterm_mouse()
++ # ifdef FEAT_MOUSE_URXVT
++          && use_xterm_mouse() != 3
++ # endif
+  #  ifdef FEAT_GUI
+           && !gui.in_use
+  #  endif
+***************
+*** 3523,3528 ****
+--- 3540,3566 ----
+      else
+       del_mouse_termcode(KS_PTERM_MOUSE);
+  # endif
++ # ifdef FEAT_MOUSE_URXVT
++     /* same as the dec mouse */
++     if (use_xterm_mouse() == 3
++ #  ifdef FEAT_GUI
++          && !gui.in_use
++ #  endif
++          )
++     {
++      set_mouse_termcode(KS_URXVT_MOUSE, (char_u *)(term_is_8bit(T_NAME)
++                  ? IF_EB("\233", CSI_STR)
++                  : IF_EB("\033[", ESC_STR "[")));
++ 
++      if (*p_mouse != NUL)
++      {
++          mch_setmouse(FALSE);
++          setmouse();
++      }
++     }
++     else
++      del_mouse_termcode(KS_URXVT_MOUSE);
++ # endif
+  }
+  #endif
+  
+*** ../vim-7.3.342/src/version.c       2011-10-20 18:24:16.000000000 +0200
+--- src/version.c      2011-10-20 19:40:48.000000000 +0200
+***************
+*** 380,383 ****
+--- 380,388 ----
+       "-mouse_xterm",
+  # endif
++ # ifdef FEAT_MOUSE_URXVT
++      "+mouse_urxvt",
++ # else
++      "-mouse_urxvt",
++ # endif
+  #endif
+  #ifdef __QNX__
+***************
+*** 711,712 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     343,
+  /**/
+
+-- 
+Warning label on a superhero Halloween costume:
+"Caution: Cape does not enable user to fly."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.344.patch0 b/vim/patches/vim-7.3.344.patch0
new file mode 100644 (file)
index 0000000..d2bb1db
--- /dev/null
@@ -0,0 +1,121 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.344
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.344
+Problem:    Problem with GUI startup related to XInitThreads.
+Solution:   Use read() and write() instead of fputs() and fread(). (James
+           Vega)
+Files:     src/gui.c
+
+
+*** ../vim-7.3.343/src/gui.c   2011-09-14 19:04:35.000000000 +0200
+--- src/gui.c  2011-10-20 21:23:43.000000000 +0200
+***************
+*** 212,218 ****
+      int              status;
+      int              exit_status;
+      pid_t    pid = -1;
+-     FILE     *parent_file;
+  
+      /* Setup a pipe between the child and the parent, so that the parent
+       * knows when the child has done the setsid() call and is allowed to
+--- 212,217 ----
+***************
+*** 290,308 ****
+      gui_mch_forked();
+  # endif
+  
+-     if (!pipe_error)
+-      parent_file = fdopen(pipefd[1], "w");
+-     else
+-      parent_file = NULL;
+- 
+      /* Try to start the GUI */
+      gui_attempt_start();
+  
+      /* Notify the parent */
+!     if (parent_file != NULL)
+      {
+!      fputs(gui.in_use ? "ok" : "fail", parent_file);
+!      fclose(parent_file);
+      }
+  
+      /* If we failed to start the GUI, exit now. */
+--- 289,305 ----
+      gui_mch_forked();
+  # endif
+  
+      /* Try to start the GUI */
+      gui_attempt_start();
+  
+      /* Notify the parent */
+!     if (!pipe_error)
+      {
+!      if (gui.in_use)
+!          write_eintr(pipefd[1], "ok", 3);
+!      else
+!          write_eintr(pipefd[1], "fail", 5);
+!      close(pipefd[1]);
+      }
+  
+      /* If we failed to start the GUI, exit now. */
+***************
+*** 323,339 ****
+      static int
+  gui_read_child_pipe(int fd)
+  {
+!     size_t   bytes_read;
+!     FILE     *file;
+!     char     buffer[10];
+! 
+!     file = fdopen(fd, "r");
+!     if (!file)
+       return GUI_CHILD_IO_ERROR;
+! 
+!     bytes_read = fread(buffer, sizeof(char), sizeof(buffer)-1, file);
+!     buffer[bytes_read] = '\0';
+!     fclose(file);
+      if (strcmp(buffer, "ok") == 0)
+       return GUI_CHILD_OK;
+      return GUI_CHILD_FAILED;
+--- 320,335 ----
+      static int
+  gui_read_child_pipe(int fd)
+  {
+!     long     bytes_read;
+! #define READ_BUFFER_SIZE 10
+!     char     buffer[READ_BUFFER_SIZE];
+! 
+!     bytes_read = read_eintr(fd, buffer, READ_BUFFER_SIZE - 1);
+! #undef READ_BUFFER_SIZE
+!     close(fd);
+!     if (bytes_read < 0)
+       return GUI_CHILD_IO_ERROR;
+!     buffer[bytes_read] = NUL;
+      if (strcmp(buffer, "ok") == 0)
+       return GUI_CHILD_OK;
+      return GUI_CHILD_FAILED;
+*** ../vim-7.3.343/src/version.c       2011-10-20 21:09:25.000000000 +0200
+--- src/version.c      2011-10-20 21:27:31.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     344,
+  /**/
+
+-- 
+From "know your smileys":
+ *<|:-)        Santa Claus (Ho Ho Ho)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.345.patch0 b/vim/patches/vim-7.3.345.patch0
new file mode 100644 (file)
index 0000000..99dd074
--- /dev/null
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.345
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.345
+Problem:    When switching language with ":lang" the window title doesn't
+           change until later.
+Solution:   Update the window title right away. (Dominique Pelle)
+Files:     src/ex_cmds2.c
+
+
+*** ../vim-7.3.344/src/ex_cmds2.c      2011-06-26 04:25:24.000000000 +0200
+--- src/ex_cmds2.c     2011-10-20 21:31:09.000000000 +0200
+***************
+*** 4154,4159 ****
+--- 4154,4162 ----
+           /* Set v:lang, v:lc_time and v:ctype to the final result. */
+           set_lang_var();
+  # endif
++ # ifdef FEAT_TITLE
++          maketitle();
++ # endif
+       }
+      }
+  }
+*** ../vim-7.3.344/src/version.c       2011-10-20 21:27:57.000000000 +0200
+--- src/version.c      2011-10-20 21:38:32.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     345,
+  /**/
+
+-- 
+You can't have everything.  Where would you put it?
+               -- Steven Wright
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.346.patch0 b/vim/patches/vim-7.3.346.patch0
new file mode 100644 (file)
index 0000000..e6b1a2b
--- /dev/null
@@ -0,0 +1,143 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.346
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.346
+Problem:    It's hard to test netbeans commands.
+Solution:   Process netbeans commands after :sleep. (Xavier de Gaye)
+Files:     runtime/doc/netbeans.txt, src/ex_docmd.c, src/netbeans.c
+
+
+*** ../vim-7.3.345/runtime/doc/netbeans.txt    2010-09-29 17:26:57.000000000 +0200
+--- runtime/doc/netbeans.txt   2011-10-20 21:51:41.000000000 +0200
+***************
+*** 1,4 ****
+! *netbeans.txt*  For Vim version 7.3.  Last change: 2010 Aug 20
+  
+  
+                 VIM REFERENCE MANUAL    by Gordon Prieur et al.
+--- 1,4 ----
+! *netbeans.txt*  For Vim version 7.3.  Last change: 2011 Oct 20
+  
+  
+                 VIM REFERENCE MANUAL    by Gordon Prieur et al.
+***************
+*** 263,268 ****
+--- 263,274 ----
+  plain UTF-8 text this protocol could also be used with any other communication
+  mechanism.
+  
++ Netbeans messages are processed when Vim is idle, waiting for user input.
++ When Vim is run in non-interactive mode, for example when running an automated
++ test case that sources a Vim script, the idle loop may not be called often
++ enough. In that case, insert |sleep| commands in the Vim script. The |sleep|
++ command does invoke Netbeans messages processing.
++ 
+  6.1 Kinds of messages                |nb-messages|
+  6.2 Terms                    |nb-terms|
+  6.3 Commands                 |nb-commands|
+***************
+*** 820,826 ****
+  ==============================================================================
+  7. NetBeans commands                                 *netbeans-commands*
+  
+!                                                      *:nbstart* *E511*
+  :nbs[tart] {connection}      Start a new Netbeans session with {connection} as the
+                       socket connection parameters.  The format of
+                       {connection} is described in |netbeans-parameters|.
+--- 826,832 ----
+  ==============================================================================
+  7. NetBeans commands                                 *netbeans-commands*
+  
+!                                                      *:nbstart* *E511* *E838*
+  :nbs[tart] {connection}      Start a new Netbeans session with {connection} as the
+                       socket connection parameters.  The format of
+                       {connection} is described in |netbeans-parameters|.
+***************
+*** 833,843 ****
+                       signs.
+  
+                                                       *:nbkey*
+! :nb[key] {key}               Pass the {key} to the Vim Controller for processing
+! 
+! When a hot-key has been installed with the specialKeys command, this command
+! can be used to generate a hotkey messages to the Vim Controller. The events
+! newDotAndMark, keyCommand and keyAtPos are generated (in this order).
+  
+  
+  ==============================================================================
+--- 839,854 ----
+                       signs.
+  
+                                                       *:nbkey*
+! :nb[key] {key}               Pass the {key} to the Vim Controller for processing.
+!                      When a hot-key has been installed with the specialKeys
+!                      command, this command can be used to generate a hotkey
+!                      message to the Vim Controller.
+!                      This command can also be used to pass any text to the
+!                      Vim  Controller. It is used by Pyclewn, for example,
+!                      to build the complete set of gdb commands as Vim user
+!                      commands.
+!                      The events newDotAndMark, keyCommand and keyAtPos are
+!                      generated (in this order).
+  
+  
+  ==============================================================================
+*** ../vim-7.3.345/src/ex_docmd.c      2011-09-30 18:35:49.000000000 +0200
+--- src/ex_docmd.c     2011-10-20 21:50:06.000000000 +0200
+***************
+*** 8205,8210 ****
+--- 8205,8216 ----
+      {
+       ui_delay(msec - done > 1000L ? 1000L : msec - done, TRUE);
+       ui_breakcheck();
++ #ifdef FEAT_NETBEANS_INTG
++      /* Process the netbeans messages that may have been received in the
++       * call to ui_breakcheck() when the GUI is in use. This may occur when
++       * running a test case. */
++      netbeans_parse_messages();
++ #endif
+      }
+  }
+  
+*** ../vim-7.3.345/src/netbeans.c      2011-04-11 21:35:03.000000000 +0200
+--- src/netbeans.c     2011-10-20 21:47:17.000000000 +0200
+***************
+*** 14,19 ****
+--- 14,26 ----
+   * which are *between* characters, whereas vim uses line number
+   * and column number which are *on* characters.
+   * See ":help netbeans-protocol" for explanation.
++  *
++  * The Netbeans messages are received and queued in the gui event loop, or in
++  * the select loop when Vim runs in a terminal. These messages are processed
++  * by netbeans_parse_messages() which is invoked in the idle loop when Vim is
++  * waiting for user input. The function netbeans_parse_messages() is also
++  * called from the ":sleep" command, to allow the execution of test cases that
++  * may not invoke the idle loop.
+   */
+  
+  #include "vim.h"
+*** ../vim-7.3.345/src/version.c       2011-10-20 21:57:43.000000000 +0200
+--- src/version.c      2011-10-20 21:50:23.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     346,
+  /**/
+
+-- 
+From "know your smileys":
+ ...---...   SOS
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.347.patch0 b/vim/patches/vim-7.3.347.patch0
new file mode 100644 (file)
index 0000000..85b0feb
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.347
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.347
+Problem:    When dropping text from a browser on Vim it receives HTML even
+           though "html" is excluded from 'clipboard'. (Andrei Avk)
+Solution:   Fix the condition for TARGET_HTML.
+Files:     src/gui_gtk_x11.c
+
+
+*** ../vim-7.3.346/src/gui_gtk_x11.c   2011-08-10 17:44:41.000000000 +0200
+--- src/gui_gtk_x11.c  2011-10-23 20:56:38.000000000 +0200
+***************
+*** 3081,3087 ****
+  
+      for (i = 0; i < (int)N_DND_TARGETS; ++i)
+      {
+!      if (!clip_html && selection_targets[i].info == TARGET_HTML)
+           n_targets--;
+       else
+           targets[j++] = dnd_targets[i];
+--- 3081,3087 ----
+  
+      for (i = 0; i < (int)N_DND_TARGETS; ++i)
+      {
+!      if (!clip_html && dnd_targets[i].info == TARGET_HTML)
+           n_targets--;
+       else
+           targets[j++] = dnd_targets[i];
+*** ../vim-7.3.346/src/version.c       2011-10-20 21:58:20.000000000 +0200
+--- src/version.c      2011-10-26 11:35:23.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     347,
+  /**/
+
+-- 
+I AM THANKFUL...
+...for a lawn that needs mowing, windows that need cleaning
+and gutters that need fixing because it means I have a home.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.348.patch0 b/vim/patches/vim-7.3.348.patch0
new file mode 100644 (file)
index 0000000..e92febb
--- /dev/null
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.348
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.348
+Problem:    "call range(1, 947948399)" causes a crash. (ZyX)
+Solution:   Avoid a loop in the out of memory message.
+Files:     src/misc2.c
+
+
+*** ../vim-7.3.347/src/misc2.c 2011-08-19 22:28:58.000000000 +0200
+--- src/misc2.c        2011-10-26 11:17:26.000000000 +0200
+***************
+*** 1012,1019 ****
+      {
+       /* Don't hide this message */
+       emsg_silent = 0;
+!      EMSGN(_("E342: Out of memory!  (allocating %lu bytes)"), size);
+       did_outofmem_msg = TRUE;
+      }
+  }
+  
+--- 1012,1023 ----
+      {
+       /* Don't hide this message */
+       emsg_silent = 0;
+! 
+!      /* Must come first to avoid coming back here when printing the error
+!       * message fails, e.g. when setting v:errmsg. */
+       did_outofmem_msg = TRUE;
++ 
++      EMSGN(_("E342: Out of memory!  (allocating %lu bytes)"), size);
+      }
+  }
+  
+*** ../vim-7.3.347/src/version.c       2011-10-26 11:36:21.000000000 +0200
+--- src/version.c      2011-10-26 11:38:33.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     348,
+  /**/
+
+-- 
+A fool learns from his mistakes, a wise man from someone else's.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.349.patch0 b/vim/patches/vim-7.3.349.patch0
new file mode 100644 (file)
index 0000000..ac519af
--- /dev/null
@@ -0,0 +1,88 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.349
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.349
+Problem:    When running out of memory during startup trying to open a
+           swapfile will loop forever.
+Solution:   Let findswapname() set dirp to NULL if out of memory.
+Files:     src/memline.c
+
+
+*** ../vim-7.3.348/src/memline.c       2011-06-13 01:07:22.000000000 +0200
+--- src/memline.c      2011-10-26 11:26:06.000000000 +0200
+***************
+*** 621,626 ****
+--- 621,628 ----
+           break;
+       fname = findswapname(buf, &dirp, mfp->mf_fname);
+                                                   /* alloc's fname */
++      if (dirp == NULL)           /* out of memory */
++          break;
+       if (fname == NULL)          /* no file name found for this dir */
+           continue;
+  
+***************
+*** 744,749 ****
+--- 746,753 ----
+        * and creating it, another Vim creates the file.  In that case the
+        * creation will fail and we will use another directory. */
+       fname = findswapname(buf, &dirp, NULL); /* allocates fname */
++      if (dirp == NULL)
++          break;  /* out of memory */
+       if (fname == NULL)
+           continue;
+       if (mf_open_file(mfp, fname) == OK)     /* consumes fname! */
+***************
+*** 4114,4119 ****
+--- 4118,4124 ----
+   *
+   * Several names are tried to find one that does not exist
+   * Returns the name in allocated memory or NULL.
++  * When out of memory "dirp" is set to NULL.
+   *
+   * Note: If BASENAMELEN is not correct, you will get error messages for
+   *    not being able to open the swap or undo file
+***************
+*** 4157,4163 ****
+       * First allocate some memory to put the directory name in.
+       */
+      dir_name = alloc((unsigned)STRLEN(*dirp) + 1);
+!     if (dir_name != NULL)
+       (void)copy_option_part(dirp, dir_name, 31000, ",");
+  
+      /*
+--- 4162,4170 ----
+       * First allocate some memory to put the directory name in.
+       */
+      dir_name = alloc((unsigned)STRLEN(*dirp) + 1);
+!     if (dir_name == NULL)
+!      *dirp = NULL;
+!     else
+       (void)copy_option_part(dirp, dir_name, 31000, ",");
+  
+      /*
+*** ../vim-7.3.348/src/version.c       2011-10-26 11:40:56.000000000 +0200
+--- src/version.c      2011-10-26 11:43:05.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     349,
+  /**/
+
+-- 
+I AM THANKFUL...
+...for all the complaining I hear about the government
+because it means we have freedom of speech.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.350.patch0 b/vim/patches/vim-7.3.350.patch0
new file mode 100644 (file)
index 0000000..5a1f332
--- /dev/null
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.350
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.350
+Problem:    Block of code after ":lua << EOF" may not work. (Paul Isambert)
+Solution:   Recognize the ":lua" command, skip to EOF.
+Files:     src/eval.c
+
+
+*** ../vim-7.3.349/src/eval.c  2011-09-30 18:35:49.000000000 +0200
+--- src/eval.c 2011-10-26 13:12:06.000000000 +0200
+***************
+*** 20899,20904 ****
+--- 20899,20906 ----
+                                   && (!ASCII_ISALPHA(p[2]) || p[2] == 'r'))
+                       || (p[0] == 't' && p[1] == 'c'
+                                   && (!ASCII_ISALPHA(p[2]) || p[2] == 'l'))
++                      || (p[0] == 'l' && p[1] == 'u' && p[2] == 'a'
++                                  && !ASCII_ISALPHA(p[3]))
+                       || (p[0] == 'r' && p[1] == 'u' && p[2] == 'b'
+                                   && (!ASCII_ISALPHA(p[3]) || p[3] == 'y'))
+                       || (p[0] == 'm' && p[1] == 'z'
+*** ../vim-7.3.349/src/version.c       2011-10-26 11:44:15.000000000 +0200
+--- src/version.c      2011-10-26 13:13:21.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     350,
+  /**/
+
+-- 
+From "know your smileys":
+ :-| :-|   Deja' vu!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.351.patch0 b/vim/patches/vim-7.3.351.patch0
new file mode 100644 (file)
index 0000000..15b2194
--- /dev/null
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.351
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.351
+Problem:    Text formatting uses start of insert position when it should not.
+           (Peter Wagenaar)
+Solution:   Do not use Insstart when intentionally formatting.
+Files:     src/edit.c
+
+
+*** ../vim-7.3.350/src/edit.c  2011-09-21 18:23:02.000000000 +0200
+--- src/edit.c 2011-10-26 16:58:21.000000000 +0200
+***************
+*** 6078,6083 ****
+--- 6078,6084 ----
+        * Stop at first entered white when 'formatoptions' has 'v'
+        */
+       while ((!fo_ins_blank && !has_format_option(FO_INS_VI))
++                  || (flags & INSCHAR_FORMAT)
+                   || curwin->w_cursor.lnum != Insstart.lnum
+                   || curwin->w_cursor.col >= Insstart.col)
+       {
+*** ../vim-7.3.350/src/version.c       2011-10-26 13:19:23.000000000 +0200
+--- src/version.c      2011-10-26 17:03:37.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     351,
+  /**/
+
+-- 
+From "know your smileys":
+ :-*   A big kiss!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.352.patch0 b/vim/patches/vim-7.3.352.patch0
new file mode 100644 (file)
index 0000000..52842cf
--- /dev/null
@@ -0,0 +1,108 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.352
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.352
+Problem:    When completing methods dict functions and script-local functions
+           get in the way.
+Solution:   Sort function names starting with "<" to the end. (Yasuhiro
+           Matsumoto)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.3.351/src/ex_getln.c      2011-09-30 17:46:14.000000000 +0200
+--- src/ex_getln.c     2011-10-26 21:37:53.000000000 +0200
+***************
+*** 121,126 ****
+--- 121,134 ----
+  static int   ex_window __ARGS((void));
+  #endif
+  
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ static int
++ #ifdef __BORLANDC__
++ _RTLENTRYF
++ #endif
++ sort_func_compare __ARGS((const void *s1, const void *s2));
++ #endif
++ 
+  /*
+   * getcmdline() - accept a command line starting with firstc.
+   *
+***************
+*** 3286,3291 ****
+--- 3294,3317 ----
+      return check_abbr(c, ccline.cmdbuff, ccline.cmdpos, 0);
+  }
+  
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++     static int
++ #ifdef __BORLANDC__
++ _RTLENTRYF
++ #endif
++ sort_func_compare(s1, s2)
++     const void *s1;
++     const void *s2;
++ {
++     char_u *p1 = *(char_u **)s1;
++     char_u *p2 = *(char_u **)s2;
++ 
++     if (*p1 != '<' && *p2 == '<') return -1;
++     if (*p1 == '<' && *p2 != '<') return 1;
++     return STRCMP(p1, p2);
++ }
++ #endif
++ 
+  /*
+   * Return FAIL if this is not an appropriate context in which to do
+   * completion of anything, return OK if it is (even if there are no matches).
+***************
+*** 4735,4741 ****
+  
+      /* Sort the results.  Keep menu's in the specified order. */
+      if (xp->xp_context != EXPAND_MENUNAMES && xp->xp_context != EXPAND_MENUS)
+!      sort_strings(*file, *num_file);
+  
+  #ifdef FEAT_CMDL_COMPL
+      /* Reset the variables used for special highlight names expansion, so that
+--- 4761,4776 ----
+  
+      /* Sort the results.  Keep menu's in the specified order. */
+      if (xp->xp_context != EXPAND_MENUNAMES && xp->xp_context != EXPAND_MENUS)
+!     {
+!      if (xp->xp_context == EXPAND_EXPRESSION
+!              || xp->xp_context == EXPAND_FUNCTIONS
+!              || xp->xp_context == EXPAND_USER_FUNC)
+!          /* <SNR> functions should be sorted to the end. */
+!          qsort((void *)*file, (size_t)*num_file, sizeof(char_u *),
+!                                                         sort_func_compare);
+!      else
+!          sort_strings(*file, *num_file);
+!     }
+  
+  #ifdef FEAT_CMDL_COMPL
+      /* Reset the variables used for special highlight names expansion, so that
+*** ../vim-7.3.351/src/version.c       2011-10-26 17:04:23.000000000 +0200
+--- src/version.c      2011-10-26 21:49:53.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     352,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+94. Now admit it... How many of you have made "modem noises" into
+    the phone just to see if it was possible? :-)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.353.patch0 b/vim/patches/vim-7.3.353.patch0
new file mode 100644 (file)
index 0000000..1846243
--- /dev/null
@@ -0,0 +1,155 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.353
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.353 (after 7.3.343)
+Problem:    Missing part of the urxvt patch.
+Solution:   Add the change in term.c
+Files:     src/term.c
+
+
+*** ../vim-7.3.352/src/term.c  2011-09-14 14:43:21.000000000 +0200
+--- src/term.c 2011-10-26 23:48:01.000000000 +0200
+***************
+*** 4008,4014 ****
+       }
+  
+  #ifdef FEAT_TERMRESPONSE
+!      if (key_name[0] == NUL)
+       {
+           /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c".  Also
+            * eat other possible responses to t_RV, rxvt returns
+--- 4008,4016 ----
+       }
+  
+  #ifdef FEAT_TERMRESPONSE
+!      if (key_name[0] == NUL
+!          /* URXVT mouse uses <ESC>[#;#;#M, but we are matching <ESC>[ */
+!          || key_name[0] == KS_URXVT_MOUSE)
+       {
+           /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c".  Also
+            * eat other possible responses to t_RV, rxvt returns
+***************
+*** 4047,4053 ****
+                   if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
+                   {
+                       /* if xterm version >= 95 use mouse dragging */
+!                      if (extra >= 95)
+                           set_option_value((char_u *)"ttym", 0L,
+                                                      (char_u *)"xterm2", 0);
+                       /* if xterm version >= 141 try to get termcap codes */
+--- 4049,4055 ----
+                   if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
+                   {
+                       /* if xterm version >= 95 use mouse dragging */
+!                      if (extra >= 95 && ttym_flags != TTYM_URXVT)
+                           set_option_value((char_u *)"ttym", 0L,
+                                                      (char_u *)"xterm2", 0);
+                       /* if xterm version >= 141 try to get termcap codes */
+***************
+*** 4141,4146 ****
+--- 4143,4151 ----
+  # ifdef FEAT_MOUSE_PTERM
+               || key_name[0] == (int)KS_PTERM_MOUSE
+  # endif
++ # ifdef FEAT_MOUSE_URXVT
++              || key_name[0] == (int)KS_URXVT_MOUSE
++ # endif
+               )
+       {
+           is_click = is_drag = FALSE;
+***************
+*** 4219,4225 ****
+--- 4224,4292 ----
+                   else
+                       break;
+               }
++          }
++ 
++ # ifdef FEAT_MOUSE_URXVT
++          if (key_name[0] == (int)KS_URXVT_MOUSE)
++          {
++              for (;;)
++              {
++                  /* URXVT 1015 mouse reporting mode:
++                   * Almost identical to xterm mouse mode, except the values
++                   * are decimal instead of bytes.
++                   *
++                   * \033[%d;%d;%dM
++                   *            ^-- row
++                   *         ^----- column
++                   *      ^-------- code
++                   */
++                  p = tp + slen;
++ 
++                  mouse_code = getdigits(&p);
++                  if (*p++ != ';')
++                      return -1;
++ 
++                  mouse_col = getdigits(&p) - 1;
++                  if (*p++ != ';')
++                      return -1;
++ 
++                  mouse_row = getdigits(&p) - 1;
++                  if (*p++ != 'M')
++                      return -1;
++ 
++                  slen += (int)(p - (tp + slen));
++ 
++                  /* skip this one if next one has same code (like xterm
++                   * case) */
++                  j = termcodes[idx].len;
++                  if (STRNCMP(tp, tp + slen, (size_t)j) == 0) {
++                      /* check if the command is complete by looking for the
++                       * M */
++                      int slen2;
++                      int cmd_complete = 0;
++                      for (slen2 = slen; slen2 < len; slen2++) {
++                          if (tp[slen2] == 'M') {
++                              cmd_complete = 1;
++                              break;
++                          }
++                      }
++                      p += j;
++                      if (cmd_complete && getdigits(&p) == mouse_code) {
++                          slen += j; /* skip the \033[ */
++                          continue;
++                      }
++                  }
++                  break;
++              }
++          }
++ # endif
+  
++      if (key_name[0] == (int)KS_MOUSE
++ #ifdef FEAT_MOUSE_URXVT
++          || key_name[0] == (int)KS_URXVT_MOUSE
++ #endif
++          )
++      {
+  #  if !defined(MSWIN) && !defined(MSDOS)
+               /*
+                * Handle mouse events.
+*** ../vim-7.3.352/src/version.c       2011-10-26 22:02:10.000000000 +0200
+--- src/version.c      2011-10-26 23:43:26.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     353,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+99. The hum of a cooling fan and the click of keys is comforting to you.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.354.patch0 b/vim/patches/vim-7.3.354.patch0
new file mode 100644 (file)
index 0000000..8250f9a
--- /dev/null
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.354
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.354
+Problem:    ":set backspace+=eol" doesn't work when 'backspace' has a 
+            backwards compatible value of 2.
+Solution:   Convert the number to a string. (Hirohito Higashi)
+Files:      src/option.c
+
+
+*** ../vim-7.3.353/src/option.c        2011-10-12 16:57:07.000000000 +0200
+--- src/option.c       2011-11-30 11:11:15.000000000 +0100
+***************
+*** 4567,4572 ****
+--- 4567,4597 ----
+                               arg = errbuf;
+                           }
+                           /*
++                           * Convert 'backspace' number to string, for
++                           * adding, prepending and removing string.
++                           */
++                          else if (varp == (char_u *)&p_bs
++                                       && VIM_ISDIGIT(**(char_u **)varp))
++                          {
++                              i = getdigits((char_u **)varp);
++                              switch (i)
++                              {
++                                  case 0:
++                                      *(char_u **)varp = empty_option;
++                                      break;
++                                  case 1:
++                                      *(char_u **)varp = vim_strsave(
++                                                    (char_u *)"indent,eol");
++                                      break;
++                                  case 2:
++                                      *(char_u **)varp = vim_strsave(
++                                              (char_u *)"indent,eol,start");
++                                      break;
++                              }
++                              vim_free(oldval);
++                              oldval = *(char_u **)varp;
++                          }
++                          /*
+                            * Convert 'whichwrap' number to string, for
+                            * backwards compatibility with Vim 3.0.
+                            * Misuse errbuf[] for the resulting string.
+*** ../vim-7.3.353/src/version.c       2011-10-26 23:48:17.000000000 +0200
+--- src/version.c      2011-11-30 11:14:44.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     354,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+206. You religiously respond immediately to e-mail, while ignoring
+     your growing pile of snail mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.355.patch0 b/vim/patches/vim-7.3.355.patch0
new file mode 100644 (file)
index 0000000..51bc3b7
--- /dev/null
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.355
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.355
+Problem:    GTK warnings when using netrw.vim. (Ivan Krasilnikov)
+Solution:   Do not remove the beval event handler twice.
+Files:     src/option.c
+
+
+*** ../vim-7.3.354/src/option.c        2011-11-30 11:15:40.000000000 +0100
+--- src/option.c       2011-11-30 11:11:15.000000000 +0100
+***************
+*** 7796,7804 ****
+  #ifdef FEAT_BEVAL
+      else if ((int *)varp == &p_beval)
+      {
+!      if (p_beval == TRUE)
+           gui_mch_enable_beval_area(balloonEval);
+!      else
+           gui_mch_disable_beval_area(balloonEval);
+      }
+  #endif
+--- 7796,7804 ----
+  #ifdef FEAT_BEVAL
+      else if ((int *)varp == &p_beval)
+      {
+!      if (p_beval && !old_value)
+           gui_mch_enable_beval_area(balloonEval);
+!      else if (!p_beval && old_value)
+           gui_mch_disable_beval_area(balloonEval);
+      }
+  #endif
+*** ../vim-7.3.354/src/version.c       2011-11-30 11:15:40.000000000 +0100
+--- src/version.c      2011-11-30 11:30:55.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     355,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+209. Your house stinks because you haven't cleaned it in a week.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.356.patch0 b/vim/patches/vim-7.3.356.patch0
new file mode 100644 (file)
index 0000000..8b5572b
--- /dev/null
@@ -0,0 +1,79 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.356
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.356
+Problem:    Using "o" with 'cindent' set may freeze Vim. (lolilolicon)
+Solution:   Skip over {} correctly. (Hari G)
+Files:     src/misc1.c
+
+
+*** ../vim-7.3.355/src/misc1.c 2011-10-04 18:03:43.000000000 +0200
+--- src/misc1.c        2011-11-30 12:56:55.000000000 +0100
+***************
+*** 6127,6133 ****
+  
+  /*
+   * Set w_cursor.col to the column number of the last unmatched ')' or '{' in
+!  * line "l".
+   */
+      static int
+  find_last_paren(l, start, end)
+--- 6127,6133 ----
+  
+  /*
+   * Set w_cursor.col to the column number of the last unmatched ')' or '{' in
+!  * line "l".  "l" must point to the start of the line.
+   */
+      static int
+  find_last_paren(l, start, end)
+***************
+*** 6140,6146 ****
+  
+      curwin->w_cursor.col = 0;                    /* default is start of line */
+  
+!     for (i = 0; l[i]; i++)
+      {
+       i = (int)(cin_skipcomment(l + i) - l); /* ignore parens in comments */
+       i = (int)(skip_string(l + i) - l);    /* ignore parens in quotes */
+--- 6140,6146 ----
+  
+      curwin->w_cursor.col = 0;                    /* default is start of line */
+  
+!     for (i = 0; l[i] != NUL; i++)
+      {
+       i = (int)(cin_skipcomment(l + i) - l); /* ignore parens in comments */
+       i = (int)(skip_string(l + i) - l);    /* ignore parens in quotes */
+***************
+*** 7953,7958 ****
+--- 7953,7959 ----
+                        * If we're at the end of a block, skip to the start of
+                        * that block.
+                        */
++                      l = ml_get_curline();
+                       if (find_last_paren(l, '{', '}')
+                               && (trypos = find_start_brace(ind_maxcomment))
+                                                           != NULL) /* XXX */
+*** ../vim-7.3.355/src/version.c       2011-11-30 11:31:25.000000000 +0100
+--- src/version.c      2011-11-30 13:02:52.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     356,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+213. Your kids start referring to you as "that guy in front of the monitor."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.357.patch0 b/vim/patches/vim-7.3.357.patch0
new file mode 100644 (file)
index 0000000..893a6bb
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.357
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.357
+Problem:    Compiler warning in MS-Windows console build.
+Solution:   Adjust return type of PrintHookProc(). (Mike Williams)
+Files:     src/os_mswin.c
+
+
+*** ../vim-7.3.356/src/os_mswin.c      2011-09-21 20:09:38.000000000 +0200
+--- src/os_mswin.c     2011-11-30 13:41:13.000000000 +0100
+***************
+*** 1869,1875 ****
+  
+  #ifndef FEAT_GUI
+  
+!     static UINT CALLBACK
+  PrintHookProc(
+       HWND hDlg,      // handle to dialog box
+       UINT uiMsg,     // message identifier
+--- 1869,1875 ----
+  
+  #ifndef FEAT_GUI
+  
+!     static UINT_PTR CALLBACK
+  PrintHookProc(
+       HWND hDlg,      // handle to dialog box
+       UINT uiMsg,     // message identifier
+*** ../vim-7.3.356/src/version.c       2011-11-30 13:03:24.000000000 +0100
+--- src/version.c      2011-11-30 13:41:55.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     357,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+215. Your mouse-clicking forearm rivals Popeye's.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.358.patch0 b/vim/patches/vim-7.3.358.patch0
new file mode 100644 (file)
index 0000000..b9b385f
--- /dev/null
@@ -0,0 +1,74 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.358
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.358 (after 7.3.353)
+Problem:    Mouse support doesn't work properly.
+Solution:   Add HMT_URXVT. (lilydjwg, James McCoy)
+Files:     src/term.c
+
+
+*** ../vim-7.3.357/src/term.c  2011-10-26 23:48:17.000000000 +0200
+--- src/term.c 2011-11-30 14:42:22.000000000 +0100
+***************
+*** 1996,2001 ****
+--- 1996,2002 ----
+  #  define HMT_DEC    4
+  #  define HMT_JSBTERM        8
+  #  define HMT_PTERM  16
++ #  define HMT_URXVT  32
+  static int has_mouse_termcode = 0;
+  # endif
+  
+***************
+*** 2031,2036 ****
+--- 2032,2042 ----
+       has_mouse_termcode |= HMT_PTERM;
+      else
+  #   endif
++ #   ifdef FEAT_MOUSE_URXVT
++     if (n == KS_URXVT_MOUSE)
++      has_mouse_termcode |= HMT_URXVT;
++     else
++ #   endif
+       has_mouse_termcode |= HMT_NORMAL;
+  #  endif
+  }
+***************
+*** 2068,2073 ****
+--- 2074,2084 ----
+       has_mouse_termcode &= ~HMT_PTERM;
+      else
+  #   endif
++ #   ifdef FEAT_MOUSE_URXVT
++     if (n == KS_URXVT_MOUSE)
++      has_mouse_termcode &= ~HMT_URXVT;
++     else
++ #   endif
+       has_mouse_termcode &= ~HMT_NORMAL;
+  #  endif
+  }
+*** ../vim-7.3.357/src/version.c       2011-11-30 13:42:40.000000000 +0100
+--- src/version.c      2011-11-30 14:45:06.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     358,
+  /**/
+
+-- 
+I noticed my daughter's Disney-net password on a sticky note:
+"MickeyMinnieGoofyPluto".  I asked her why it was so long.
+"Because they say it has to have at least four characters."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.359.patch0 b/vim/patches/vim-7.3.359.patch0
new file mode 100644 (file)
index 0000000..7fbd3f6
--- /dev/null
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.359
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.359
+Problem:    Command line completion shows dict functions.
+Solution:   Skip dict functions for completion. (Yasuhiro Matsumoto)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.358/src/eval.c  2011-10-26 13:19:23.000000000 +0200
+--- src/eval.c 2011-11-30 14:53:38.000000000 +0100
+***************
+*** 875,881 ****
+  
+  #ifdef EBCDIC
+      /*
+!      * Sort the function table, to enable binary sort.
+       */
+      sortFunctions();
+  #endif
+--- 875,881 ----
+  
+  #ifdef EBCDIC
+      /*
+!      * Sort the function table, to enable binary search.
+       */
+      sortFunctions();
+  #endif
+***************
+*** 21737,21742 ****
+--- 21737,21745 ----
+           ++hi;
+       fp = HI2UF(hi);
+  
++      if (fp->uf_flags & FC_DICT)
++          return NULL; /* don't show dict functions */
++ 
+       if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
+           return fp->uf_name; /* prevents overflow */
+  
+*** ../vim-7.3.358/src/version.c       2011-11-30 14:47:12.000000000 +0100
+--- src/version.c      2011-11-30 14:56:57.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     359,
+  /**/
+
+-- 
+'Psychologist' -- Someone who looks at everyone else when
+an attractive woman enters the room.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.360.patch0 b/vim/patches/vim-7.3.360.patch0
new file mode 100644 (file)
index 0000000..de153c8
--- /dev/null
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.360
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.360
+Problem:    Interrupting the load of an autoload function may cause a crash.
+Solution:   Do not use the hashitem when not valid. (Yukihiro Nakadaira)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.359/src/eval.c  2011-11-30 14:57:26.000000000 +0100
+--- src/eval.c 2011-11-30 15:06:53.000000000 +0100
+***************
+*** 19589,19597 ****
+        * worked find the variable again.  Don't auto-load a script if it was
+        * loaded already, otherwise it would be loaded every time when
+        * checking if a function name is a Funcref variable. */
+!      if (ht == &globvarht && !writing
+!                          && script_autoload(varname, FALSE) && !aborting())
+           hi = hash_find(ht, varname);
+       if (HASHITEM_EMPTY(hi))
+           return NULL;
+      }
+--- 19589,19602 ----
+        * worked find the variable again.  Don't auto-load a script if it was
+        * loaded already, otherwise it would be loaded every time when
+        * checking if a function name is a Funcref variable. */
+!      if (ht == &globvarht && !writing)
+!      {
+!          /* Note: script_autoload() may make "hi" invalid. It must either
+!           * be obtained again or not used. */
+!          if (!script_autoload(varname, FALSE) || aborting())
+!              return NULL;
+           hi = hash_find(ht, varname);
++      }
+       if (HASHITEM_EMPTY(hi))
+           return NULL;
+      }
+*** ../vim-7.3.359/src/version.c       2011-11-30 14:57:26.000000000 +0100
+--- src/version.c      2011-11-30 15:17:28.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     360,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+217. Your sex life has drastically improved...so what if it's only cyber-sex!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.361.patch0 b/vim/patches/vim-7.3.361.patch0
new file mode 100644 (file)
index 0000000..c128057
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.361
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.361
+Problem:    Accessing memory after it is freed when EXITFREE is defined.
+Solution:   Don't access curwin when firstwin is NULL. (Dominique Pelle)
+Files:     src/buffer.c
+
+*** ../vim-7.3.360/src/buffer.c        2011-09-14 17:50:05.000000000 +0200
+--- src/buffer.c       2011-11-30 15:38:00.000000000 +0100
+***************
+*** 567,574 ****
+      diff_buf_delete(buf);        /* Can't use 'diff' for unloaded buffer. */
+  #endif
+  #ifdef FEAT_SYN_HL
+!     if (curwin->w_buffer == buf)
+!      reset_synblock(curwin);     /* remove any ownsyntax */
+  #endif
+  
+  #ifdef FEAT_FOLDING
+--- 567,575 ----
+      diff_buf_delete(buf);        /* Can't use 'diff' for unloaded buffer. */
+  #endif
+  #ifdef FEAT_SYN_HL
+!     /* Remove any ownsyntax, unless exiting. */
+!     if (firstwin != NULL && curwin->w_buffer == buf)
+!      reset_synblock(curwin);
+  #endif
+  
+  #ifdef FEAT_FOLDING
+*** ../vim-7.3.360/src/version.c       2011-11-30 15:19:25.000000000 +0100
+--- src/version.c      2011-11-30 15:40:22.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     361,
+  /**/
+
+
+-- 
+From the classified section of a city newspaper:
+Dog for sale: eats anything and is fond of children.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.362.patch0 b/vim/patches/vim-7.3.362.patch0
new file mode 100644 (file)
index 0000000..0056886
--- /dev/null
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.362
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.362
+Problem:    ml_get error when using ":g" with folded lines.
+Solution:   Adjust the line number for changed_lines(). (Christian Brabandt)
+Files:     src/ex_cmds.c
+
+
+*** ../vim-7.3.361/src/ex_cmds.c       2011-10-20 18:17:38.000000000 +0200
+--- src/ex_cmds.c      2011-11-30 16:58:34.000000000 +0100
+***************
+*** 820,826 ****
+       curwin->w_cursor.lnum = dest + (line2 - line1) + 1;
+  
+      if (line1 < dest)
+!      changed_lines(line1, 0, dest + num_lines + 1, 0L);
+      else
+       changed_lines(dest + 1, 0, line1 + num_lines, 0L);
+  
+--- 820,832 ----
+       curwin->w_cursor.lnum = dest + (line2 - line1) + 1;
+  
+      if (line1 < dest)
+!     {
+!      dest += num_lines + 1;
+!      last_line = curbuf->b_ml.ml_line_count;
+!      if (dest > last_line + 1)
+!          dest = last_line + 1;
+!      changed_lines(line1, 0, dest, 0L);
+!     }
+      else
+       changed_lines(dest + 1, 0, line1 + num_lines, 0L);
+  
+*** ../vim-7.3.361/src/version.c       2011-11-30 15:40:51.000000000 +0100
+--- src/version.c      2011-11-30 17:01:07.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     362,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+218. Your spouse hands you a gift wrapped magnet with your PC's name
+     on it and you accuse him or her of genocide.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.363.patch0 b/vim/patches/vim-7.3.363.patch0
new file mode 100644 (file)
index 0000000..10ab548
--- /dev/null
@@ -0,0 +1,110 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.363
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.363
+Problem:    C indenting is wrong after #endif followed by a semicolon.
+Solution:   Add special handling for a semicolon in a line by itself. (Lech
+           Lorens)
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.362/src/misc1.c 2011-11-30 13:03:24.000000000 +0100
+--- src/misc1.c        2011-11-30 17:10:59.000000000 +0100
+***************
+*** 8143,8148 ****
+--- 8143,8171 ----
+                   break;
+  
+               /*
++               * Find a line only has a semicolon that belongs to a previous
++               * line ending in '}', e.g. before an #endif.  Don't increase
++               * indent then.
++               */
++              if (*(look = skipwhite(l)) == ';' && cin_nocode(look + 1))
++              {
++                  pos_T curpos_save = curwin->w_cursor;
++ 
++                  while (curwin->w_cursor.lnum > 1)
++                  {
++                      look = ml_get(--curwin->w_cursor.lnum);
++                      if (!(cin_nocode(look) || cin_ispreproc_cont(
++                                            &look, &curwin->w_cursor.lnum)))
++                          break;
++                  }
++                  if (curwin->w_cursor.lnum > 0
++                                  && cin_ends_in(look, (char_u *)"}", NULL))
++                      break;
++ 
++                  curwin->w_cursor = curpos_save;
++              }
++ 
++              /*
+                * If the PREVIOUS line is a function declaration, the current
+                * line (and the ones that follow) needs to be indented as
+                * parameters.
+*** ../vim-7.3.362/src/testdir/test3.in        2011-10-04 18:03:43.000000000 +0200
+--- src/testdir/test3.in       2011-11-30 17:05:20.000000000 +0100
+***************
+*** 1454,1459 ****
+--- 1454,1469 ----
+               printf("This line used to be indented incorrectly.\n");
+  }
+  
++ int foo[]
++ #ifdef BAR
++ 
++ = { 1, 2, 3,
++      4, 5, 6 }
++ 
++ #endif
++ ;
++      int baz;
++ 
+  void func3(void)
+  {
+       int tab[] = {
+*** ../vim-7.3.362/src/testdir/test3.ok        2011-10-04 18:03:43.000000000 +0200
+--- src/testdir/test3.ok       2011-11-30 17:05:20.000000000 +0100
+***************
+*** 1307,1312 ****
+--- 1307,1322 ----
+       printf("This line used to be indented incorrectly.\n");
+  }
+  
++ int foo[]
++ #ifdef BAR
++ 
++ = { 1, 2, 3,
++      4, 5, 6 }
++ 
++ #endif
++      ;
++ int baz;
++ 
+  void func3(void)
+  {
+       int tab[] = {
+*** ../vim-7.3.362/src/version.c       2011-11-30 17:01:55.000000000 +0100
+--- src/version.c      2011-11-30 17:06:57.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     363,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+220. Your wife asks for sex and you tell her where to find you on IRC.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.364.patch0 b/vim/patches/vim-7.3.364.patch0
new file mode 100644 (file)
index 0000000..e62ef76
--- /dev/null
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.364
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.364 (after 7.3.353)
+Problem:    Can't compile on HP-UX. (John Marriott)
+Solution:   Only use TTYM_URXVT when it is defined.
+Files:     src/term.c
+
+
+*** ../vim-7.3.363/src/term.c  2011-11-30 14:47:12.000000000 +0100
+--- src/term.c 2011-12-01 20:53:57.000000000 +0100
+***************
+*** 4060,4066 ****
+                   if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
+                   {
+                       /* if xterm version >= 95 use mouse dragging */
+!                      if (extra >= 95 && ttym_flags != TTYM_URXVT)
+                           set_option_value((char_u *)"ttym", 0L,
+                                                      (char_u *)"xterm2", 0);
+                       /* if xterm version >= 141 try to get termcap codes */
+--- 4060,4070 ----
+                   if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
+                   {
+                       /* if xterm version >= 95 use mouse dragging */
+!                      if (extra >= 95
+! # ifdef TTYM_URXVT
+!                              && ttym_flags != TTYM_URXVT
+! # endif
+!                              )
+                           set_option_value((char_u *)"ttym", 0L,
+                                                      (char_u *)"xterm2", 0);
+                       /* if xterm version >= 141 try to get termcap codes */
+*** ../vim-7.3.363/src/version.c       2011-11-30 17:20:18.000000000 +0100
+--- src/version.c      2011-12-01 20:56:55.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     364,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+224. You set up your own Web page. You set up a Web page for each
+     of your kids... and your pets.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.365.patch0 b/vim/patches/vim-7.3.365.patch0
new file mode 100644 (file)
index 0000000..16d5ad1
--- /dev/null
@@ -0,0 +1,131 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.365
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.365
+Problem:    Crash when using a large Unicode character in a file that has
+           syntax highlighting. (ngollan)
+Solution:   Check for going past the end of the utf tables. (Dominique Pelle)
+Files:     src/mbyte.c
+
+
+*** ../vim-7.3.364/src/mbyte.c 2011-08-10 13:21:30.000000000 +0200
+--- src/mbyte.c        2011-12-08 15:09:13.000000000 +0100
+***************
+*** 2764,2782 ****
+      int                      tableSize;
+  {
+      int start, mid, end; /* indices into table */
+  
+      start = 0;
+!     end = tableSize / sizeof(convertStruct);
+      while (start < end)
+      {
+       /* need to search further */
+!      mid = (end + start) /2;
+       if (table[mid].rangeEnd < a)
+           start = mid + 1;
+       else
+           end = mid;
+      }
+!     if (table[start].rangeStart <= a && a <= table[start].rangeEnd
+           && (a - table[start].rangeStart) % table[start].step == 0)
+       return (a + table[start].offset);
+      else
+--- 2764,2785 ----
+      int                      tableSize;
+  {
+      int start, mid, end; /* indices into table */
++     int entries = tableSize / sizeof(convertStruct);
+  
+      start = 0;
+!     end = entries;
+      while (start < end)
+      {
+       /* need to search further */
+!      mid = (end + start) / 2;
+       if (table[mid].rangeEnd < a)
+           start = mid + 1;
+       else
+           end = mid;
+      }
+!     if (start < entries
+!          && table[start].rangeStart <= a
+!          && a <= table[start].rangeEnd
+           && (a - table[start].rangeStart) % table[start].step == 0)
+       return (a + table[start].offset);
+      else
+***************
+*** 2791,2797 ****
+  utf_fold(a)
+      int              a;
+  {
+!     return utf_convert(a, foldCase, sizeof(foldCase));
+  }
+  
+  static convertStruct toLower[] =
+--- 2794,2800 ----
+  utf_fold(a)
+      int              a;
+  {
+!     return utf_convert(a, foldCase, (int)sizeof(foldCase));
+  }
+  
+  static convertStruct toLower[] =
+***************
+*** 3119,3125 ****
+       return TOUPPER_LOC(a);
+  
+      /* For any other characters use the above mapping table. */
+!     return utf_convert(a, toUpper, sizeof(toUpper));
+  }
+  
+      int
+--- 3122,3128 ----
+       return TOUPPER_LOC(a);
+  
+      /* For any other characters use the above mapping table. */
+!     return utf_convert(a, toUpper, (int)sizeof(toUpper));
+  }
+  
+      int
+***************
+*** 3152,3158 ****
+       return TOLOWER_LOC(a);
+  
+      /* For any other characters use the above mapping table. */
+!     return utf_convert(a, toLower, sizeof(toLower));
+  }
+  
+      int
+--- 3155,3161 ----
+       return TOLOWER_LOC(a);
+  
+      /* For any other characters use the above mapping table. */
+!     return utf_convert(a, toLower, (int)sizeof(toLower));
+  }
+  
+      int
+*** ../vim-7.3.364/src/version.c       2011-12-01 20:59:16.000000000 +0100
+--- src/version.c      2011-12-08 15:07:53.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     365,
+  /**/
+
+-- 
+Hear about the guy who played a blank tape at full blast?
+The mime next door went nuts.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.366.patch0 b/vim/patches/vim-7.3.366.patch0
new file mode 100644 (file)
index 0000000..ddf3990
--- /dev/null
@@ -0,0 +1,76 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.366
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.366
+Problem:    A tags file with an extremely long name causes errors.
+Solution:   Ignore tags that are too long. (Arno Renevier)
+Files:     src/tag.c
+
+
+*** ../vim-7.3.365/src/tag.c   2011-10-12 19:53:31.000000000 +0200
+--- src/tag.c  2011-12-08 13:32:51.000000000 +0100
+***************
+*** 1906,1917 ****
+               tagp.tagname = lbuf;
+  #ifdef FEAT_TAG_ANYWHITE
+               tagp.tagname_end = skiptowhite(lbuf);
+!              if (*tagp.tagname_end == NUL)       /* corrupted tag line */
+  #else
+               tagp.tagname_end = vim_strchr(lbuf, TAB);
+!              if (tagp.tagname_end == NULL)       /* corrupted tag line */
+  #endif
+               {
+                   line_error = TRUE;
+                   break;
+               }
+--- 1906,1931 ----
+               tagp.tagname = lbuf;
+  #ifdef FEAT_TAG_ANYWHITE
+               tagp.tagname_end = skiptowhite(lbuf);
+!              if (*tagp.tagname_end == NUL)
+  #else
+               tagp.tagname_end = vim_strchr(lbuf, TAB);
+!              if (tagp.tagname_end == NULL)
+  #endif
+               {
++                  if (vim_strchr(lbuf, NL) == NULL)
++                  {
++                      /* Truncated line, ignore it.  Has been reported for
++                       * Mozilla JS with extremely long names. */
++                      if (p_verbose >= 5)
++                      {
++                          verbose_enter();
++                          MSG(_("Ignoring long line in tags file"));
++                          verbose_leave();
++                      }
++                      continue;
++                  }
++ 
++                  /* Corrupted tag line. */
+                   line_error = TRUE;
+                   break;
+               }
+*** ../vim-7.3.365/src/version.c       2011-12-08 15:09:46.000000000 +0100
+--- src/version.c      2011-12-08 15:11:10.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     366,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+246. You use up your free 100 hours in less than a week.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.367.patch0 b/vim/patches/vim-7.3.367.patch0
new file mode 100644 (file)
index 0000000..2452d53
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.367
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.367
+Problem:    :wundo and :rundo use a wrong checksum.
+Solution:   Include the last line when computing the hash. (Christian Brabandt)
+Files:     src/undo.c
+
+
+*** ../vim-7.3.366/src/undo.c  2011-01-22 21:25:07.000000000 +0100
+--- src/undo.c 2011-12-08 14:19:03.000000000 +0100
+***************
+*** 719,725 ****
+      char_u           *p;
+  
+      sha256_start(&ctx);
+!     for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
+      {
+       p = ml_get(lnum);
+       sha256_update(&ctx, p, (UINT32_T)(STRLEN(p) + 1));
+--- 719,725 ----
+      char_u           *p;
+  
+      sha256_start(&ctx);
+!     for (lnum = 1; lnum <= curbuf->b_ml.ml_line_count; ++lnum)
+      {
+       p = ml_get(lnum);
+       sha256_update(&ctx, p, (UINT32_T)(STRLEN(p) + 1));
+*** ../vim-7.3.366/src/version.c       2011-12-08 15:12:08.000000000 +0100
+--- src/version.c      2011-12-08 15:13:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     367,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+247. You use www.switchboard.com instead of dialing 411 and 555-12-12
+     for directory assistance.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.368.patch0 b/vim/patches/vim-7.3.368.patch0
new file mode 100644 (file)
index 0000000..958c69e
--- /dev/null
@@ -0,0 +1,103 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.368
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.368
+Problem:    Gcc complains about redefining _FORTIFY_SOURCE.
+Solution:   Undefine it before redefining it.
+Files:     src/Makefile, src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.367/src/Makefile        2011-10-20 16:35:25.000000000 +0200
+--- src/Makefile       2011-12-08 15:16:13.000000000 +0100
+***************
+*** 561,568 ****
+  #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
+  
+  # Use this with GCC to check for mistakes, unused arguments, etc.
+! #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -D_FORTIFY_SOURCE=1
+! #CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -D_FORTIFY_SOURCE=1 -DU_DEBUG
+  #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
+  #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
+  
+--- 561,568 ----
+  #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
+  
+  # Use this with GCC to check for mistakes, unused arguments, etc.
+! #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
+! #CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DU_DEBUG
+  #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
+  #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
+  
+*** ../vim-7.3.367/src/configure.in    2011-09-02 12:27:20.000000000 +0200
+--- src/configure.in   2011-12-01 20:23:22.000000000 +0100
+***************
+*** 3584,3592 ****
+    dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
+    dnl declared as char x[1] but actually longer.  Introduced in gcc 4.0.
+    dnl Also remove duplicate _FORTIFY_SOURCE arguments.
+    AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
+    if test "$gccmajor" -gt "3"; then
+!     CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
+      AC_MSG_RESULT(yes)
+    else
+      AC_MSG_RESULT(no)
+--- 3584,3593 ----
+    dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
+    dnl declared as char x[1] but actually longer.  Introduced in gcc 4.0.
+    dnl Also remove duplicate _FORTIFY_SOURCE arguments.
++   dnl And undefine it first to avoid a warning.
+    AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
+    if test "$gccmajor" -gt "3"; then
+!     CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1/'`
+      AC_MSG_RESULT(yes)
+    else
+      AC_MSG_RESULT(no)
+*** ../vim-7.3.367/src/auto/configure  2011-09-02 12:27:20.000000000 +0200
+--- src/auto/configure 2011-12-01 20:24:02.000000000 +0100
+***************
+*** 12483,12492 ****
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+  $as_echo "no" >&6; }
+    fi
+!         { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_FORTIFY_SOURCE=1" >&5
+  $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
+    if test "$gccmajor" -gt "3"; then
+!     CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+  $as_echo "yes" >&6; }
+    else
+--- 12483,12492 ----
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+  $as_echo "no" >&6; }
+    fi
+!           { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_FORTIFY_SOURCE=1" >&5
+  $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
+    if test "$gccmajor" -gt "3"; then
+!     CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1/'`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+  $as_echo "yes" >&6; }
+    else
+*** ../vim-7.3.367/src/version.c       2011-12-08 15:14:04.000000000 +0100
+--- src/version.c      2011-12-08 15:15:13.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     368,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+248. You sign your letters with your e-mail address instead of your name.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.369.patch0 b/vim/patches/vim-7.3.369.patch0
new file mode 100644 (file)
index 0000000..af6e7e6
--- /dev/null
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.369
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.369
+Problem:    When compiled with Gnome get an error message when using --help.
+Solution:   Don't fork. (Ivan Krasilnikov)
+Files:     src/main.c
+
+
+*** ../vim-7.3.368/src/main.c  2011-10-04 16:43:49.000000000 +0200
+--- src/main.c 2011-12-01 20:27:11.000000000 +0100
+***************
+*** 3294,3300 ****
+--- 3294,3303 ----
+  #ifdef FEAT_GUI_GNOME
+      /* Gnome gives extra messages for --help if we continue, but not for -h. */
+      if (gui.starting)
++     {
+       mch_msg("\n");
++      gui.dofork = FALSE;
++     }
+      else
+  #endif
+       mch_exit(0);
+*** ../vim-7.3.368/src/version.c       2011-12-08 15:17:28.000000000 +0100
+--- src/version.c      2011-12-08 15:57:03.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     369,
+  /**/
+
+-- 
+Vi is clearly superior to emacs, since "vi" has only two characters
+(and two keystrokes), while "emacs" has five.  (Randy C. Ford)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.370.patch0 b/vim/patches/vim-7.3.370.patch0
new file mode 100644 (file)
index 0000000..26bce4d
--- /dev/null
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.370
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.370
+Problem:    Compiler warns for unused variable in Lua interface.
+Solution:   Remove the variable.
+Files:     src/if_lua.c
+
+
+*** ../vim-7.3.369/src/if_lua.c        2011-09-21 17:15:34.000000000 +0200
+--- src/if_lua.c       2011-12-01 20:19:17.000000000 +0100
+***************
+*** 1044,1056 ****
+      static int
+  luaV_open(lua_State *L)
+  {
+-     luaV_Buffer *b;
+      char_u *s = NULL;
+  #ifdef HAVE_SANDBOX
+      luaV_checksandbox(L);
+  #endif
+      if (lua_isstring(L, 1)) s = (char_u *) lua_tostring(L, 1);
+!     b = luaV_pushbuffer(L, buflist_new(s, NULL, 1L, BLN_LISTED));
+      return 1;
+  }
+  
+--- 1044,1055 ----
+      static int
+  luaV_open(lua_State *L)
+  {
+      char_u *s = NULL;
+  #ifdef HAVE_SANDBOX
+      luaV_checksandbox(L);
+  #endif
+      if (lua_isstring(L, 1)) s = (char_u *) lua_tostring(L, 1);
+!     luaV_pushbuffer(L, buflist_new(s, NULL, 1L, BLN_LISTED));
+      return 1;
+  }
+  
+*** ../vim-7.3.369/src/version.c       2011-12-08 15:57:54.000000000 +0100
+--- src/version.c      2011-12-08 15:59:35.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     370,
+  /**/
+
+-- 
+Emacs is a nice OS - but it lacks a good text editor.
+That's why I am using Vim.  --Anonymous
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.371.patch0 b/vim/patches/vim-7.3.371.patch0
new file mode 100644 (file)
index 0000000..1701c11
--- /dev/null
@@ -0,0 +1,75 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.371
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.371
+Problem:    Crash in autocomplete. (Greg Weber)
+Solution:   Check not going over allocated buffer size.
+Files:     src/misc2.c
+
+
+*** ../vim-7.3.370/src/misc2.c 2011-10-26 11:40:56.000000000 +0200
+--- src/misc2.c        2011-12-08 17:49:23.000000000 +0100
+***************
+*** 4293,4298 ****
+--- 4293,4300 ----
+  static int ff_path_in_stoplist __ARGS((char_u *, int, char_u **));
+  #endif
+  
++ static char_u e_pathtoolong[] = N_("E854: path too long for completion");
++ 
+  #if 0
+  /*
+   * if someone likes findfirst/findnext, here are the functions
+***************
+*** 4589,4594 ****
+--- 4591,4601 ----
+       len = 0;
+       while (*wc_part != NUL)
+       {
++          if (len + 5 >= MAXPATHL)
++          {
++              EMSG(_(e_pathtoolong));
++              break;
++          }
+           if (STRNCMP(wc_part, "**", 2) == 0)
+           {
+               ff_expand_buffer[len++] = *wc_part++;
+***************
+*** 4634,4639 ****
+--- 4641,4652 ----
+      }
+  
+      /* create an absolute path */
++     if (STRLEN(search_ctx->ffsc_start_dir)
++                        + STRLEN(search_ctx->ffsc_fix_path) + 3 >= MAXPATHL)
++     {
++      EMSG(_(e_pathtoolong));
++      goto error_return;
++     }
+      STRCPY(ff_expand_buffer, search_ctx->ffsc_start_dir);
+      add_pathsep(ff_expand_buffer);
+      STRCAT(ff_expand_buffer, search_ctx->ffsc_fix_path);
+*** ../vim-7.3.370/src/version.c       2011-12-08 16:00:12.000000000 +0100
+--- src/version.c      2011-12-08 17:46:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     371,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+253. You wait for a slow loading web page before going to the toilet.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.372.patch0 b/vim/patches/vim-7.3.372.patch0
new file mode 100644 (file)
index 0000000..c9978c3
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.372
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.372
+Problem:    When using a command line mapping to <Up> with file name 
+            completion to go one directory up, 'wildchar' is inserted.
+            (Yasuhiro Matsumoto) 
+Solution:   Set the KeyTyped flag.
+Files:      src/ex_getln.c
+
+
+*** ../vim-7.3.371/src/ex_getln.c      2011-10-26 22:02:10.000000000 +0200
+--- src/ex_getln.c     2011-12-08 18:40:49.000000000 +0100
+***************
+*** 645,651 ****
+--- 645,655 ----
+               }
+               else if (ccline.cmdpos > i)
+                   cmdline_del(i);
++ 
++              /* Now complete in the new directory. Set KeyTyped in case the
++               * Up key came from a mapping. */
+               c = p_wc;
++              KeyTyped = TRUE;
+           }
+       }
+  
+*** ../vim-7.3.371/src/version.c       2011-12-08 17:49:31.000000000 +0100
+--- src/version.c      2011-12-08 18:42:54.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     372,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+255. You work for a newspaper and your editor asks you to write an
+     article about Internet addiction...in the "first person."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.373.patch0 b/vim/patches/vim-7.3.373.patch0
new file mode 100644 (file)
index 0000000..3e8937a
--- /dev/null
@@ -0,0 +1,78 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.373
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.373 (after 7.3.366)
+Problem:    A tags file with an extremely long name may cause an infinite loop.
+Solution:   When encountering a long name switch to linear search.
+Files:     src/tag.c
+
+
+*** ../vim-7.3.372/src/tag.c   2011-12-08 15:12:08.000000000 +0100
+--- src/tag.c  2011-12-14 14:13:28.000000000 +0100
+***************
+*** 1854,1860 ****
+  
+               if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
+               {
+!                  /* binary search won't work for ignoring case, use linear
+                    * search. */
+                   linear = TRUE;
+                   state = TS_LINEAR;
+--- 1854,1860 ----
+  
+               if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
+               {
+!                  /* Binary search won't work for ignoring case, use linear
+                    * search. */
+                   linear = TRUE;
+                   state = TS_LINEAR;
+***************
+*** 1922,1927 ****
+--- 1922,1940 ----
+                           MSG(_("Ignoring long line in tags file"));
+                           verbose_leave();
+                       }
++ #ifdef FEAT_TAG_BINS
++                      if (state != TS_LINEAR)
++                      {
++                          /* Avoid getting stuck. */
++                          linear = TRUE;
++                          state = TS_LINEAR;
++ # ifdef HAVE_FSEEKO
++                          fseeko(fp, search_info.low_offset, SEEK_SET);
++ # else
++                          fseek(fp, (long)search_info.low_offset, SEEK_SET);
++ # endif
++                      }
++ #endif
+                       continue;
+                   }
+  
+*** ../vim-7.3.372/src/version.c       2011-12-08 18:44:47.000000000 +0100
+--- src/version.c      2011-12-14 14:12:06.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     373,
+  /**/
+
+-- 
+ZOOT:  I'm afraid our life must seem very dull and quiet compared to yours.
+       We are but eightscore young blondes, all between sixteen and
+       nineteen-and-a-half, cut off in this castle, with no one to protect us.
+       Oooh.  It is a lonely life ... bathing ...  dressing ... undressing ...
+       making exciting underwear....
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.374.patch0 b/vim/patches/vim-7.3.374.patch0
new file mode 100644 (file)
index 0000000..b312828
--- /dev/null
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.374
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.374
+Problem:    ++encoding does not work properly.
+Solution:   Recognize ++encoding before ++enc. (Charles Cooper)
+Files:     src/ex_docmd.c
+
+
+*** ../vim-7.3.373/src/ex_docmd.c      2011-10-20 21:58:20.000000000 +0200
+--- src/ex_docmd.c     2011-12-14 14:46:05.000000000 +0100
+***************
+*** 4840,4851 ****
+  #ifdef FEAT_MBYTE
+      else if (STRNCMP(arg, "enc", 3) == 0)
+      {
+!      arg += 3;
+!      pp = &eap->force_enc;
+!     }
+!     else if (STRNCMP(arg, "encoding", 8) == 0)
+!     {
+!      arg += 8;
+       pp = &eap->force_enc;
+      }
+      else if (STRNCMP(arg, "bad", 3) == 0)
+--- 4840,4849 ----
+  #ifdef FEAT_MBYTE
+      else if (STRNCMP(arg, "enc", 3) == 0)
+      {
+!      if (STRNCMP(arg, "encoding", 8) == 0)
+!          arg += 8;
+!      else
+!          arg += 3;
+       pp = &eap->force_enc;
+      }
+      else if (STRNCMP(arg, "bad", 3) == 0)
+*** ../vim-7.3.373/src/version.c       2011-12-14 14:15:12.000000000 +0100
+--- src/version.c      2011-12-14 14:44:01.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     374,
+  /**/
+
+-- 
+Linux is just like a wigwam: no Windows, no Gates and an Apache inside.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.375.patch0 b/vim/patches/vim-7.3.375.patch0
new file mode 100644 (file)
index 0000000..6f15fea
--- /dev/null
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.375
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.375
+Problem:    Duplicate return statement.
+Solution:   Remove the superfluous one. (Dominique Pelle)
+Files:     src/gui_mac.c
+
+
+*** ../vim-7.3.374/src/gui_mac.c       2011-06-19 01:14:22.000000000 +0200
+--- src/gui_mac.c      2011-12-10 17:20:59.000000000 +0100
+***************
+*** 3216,3222 ****
+  {
+      /* TODO:
+       * This proc is called when Normal is set to a value
+!      * so what msut be done? I don't know
+       */
+  }
+  
+--- 3216,3222 ----
+  {
+      /* TODO:
+       * This proc is called when Normal is set to a value
+!      * so what must be done? I don't know
+       */
+  }
+  
+***************
+*** 3303,3309 ****
+      *x = bounds.left;
+      *y = bounds.top;
+      return OK;
+-     return FAIL;
+  }
+  
+  /*
+--- 3303,3308 ----
+*** ../vim-7.3.374/src/version.c       2011-12-14 14:49:41.000000000 +0100
+--- src/version.c      2011-12-14 15:06:01.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     375,
+  /**/
+
+-- 
+GALAHAD: No look, really, this isn't nescess ...
+PIGLET:  We must examine you.
+GALAHAD: There's nothing wrong with ... that.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.376.patch0 b/vim/patches/vim-7.3.376.patch0
new file mode 100644 (file)
index 0000000..1e20743
--- /dev/null
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.376
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.376
+Problem:    Win32: Toolbar repainting does not work when the mouse pointer
+           hovers over a button.
+Solution:   Call DefWindowProc() when not handling an event. (Sergiu Dotenco)
+Files:     src/gui_w32.c
+
+
+*** ../vim-7.3.375/src/gui_w32.c       2011-08-10 17:07:56.000000000 +0200
+--- src/gui_w32.c      2011-12-14 15:14:48.000000000 +0100
+***************
+*** 1101,1107 ****
+       return MyWindowProc(hwnd, uMsg, wParam, lParam);
+      }
+  
+!     return 1;
+  }
+  
+  /*
+--- 1101,1107 ----
+       return MyWindowProc(hwnd, uMsg, wParam, lParam);
+      }
+  
+!     return DefWindowProc(hwnd, uMsg, wParam, lParam);
+  }
+  
+  /*
+*** ../vim-7.3.375/src/version.c       2011-12-14 15:07:11.000000000 +0100
+--- src/version.c      2011-12-14 15:23:10.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     376,
+  /**/
+
+-- 
+   GALAHAD hurries to the door and pushes through it.  As he leaves the room
+   we CUT TO the reverse to show that he is now in a room full of bathing
+   and romping GIRLIES, all innocent, wide-eyed and beautiful.  They smile
+   enchantingly at him as he tries to keep walking without being diverted by
+   the lovely sights assaulting his eyeballs.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.377.patch0 b/vim/patches/vim-7.3.377.patch0
new file mode 100644 (file)
index 0000000..1a2df1d
--- /dev/null
@@ -0,0 +1,406 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.377
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.377
+Problem:    No support for bitwise AND, OR, XOR and invert.
+Solution:   Add and(), or(), invert() and xor() functions.
+Files:     src/eval.c, src/testdir/test49.in, src/testdir/test65.in,
+           src/testdir/test65.ok, runtime/doc/eval.txt
+
+
+*** ../vim-7.3.376/src/eval.c  2011-11-30 15:19:25.000000000 +0100
+--- src/eval.c 2011-12-11 13:49:31.000000000 +0100
+***************
+*** 474,479 ****
+--- 474,480 ----
+  static void f_acos __ARGS((typval_T *argvars, typval_T *rettv));
+  #endif
+  static void f_add __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_and __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_append __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_argc __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 602,607 ****
+--- 603,609 ----
+  static void f_inputsave __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_inputsecret __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_insert __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_invert __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_isdirectory __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_islocked __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_items __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 640,645 ****
+--- 642,648 ----
+  #endif
+  static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_nr2char __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_or __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_pathshorten __ARGS((typval_T *argvars, typval_T *rettv));
+  #ifdef FEAT_FLOAT
+  static void f_pow __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 751,756 ****
+--- 754,760 ----
+  static void f_winsaveview __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_winwidth __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_xor __ARGS((typval_T *argvars, typval_T *rettv));
+  
+  static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump));
+  static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum));
+***************
+*** 7715,7720 ****
+--- 7719,7725 ----
+      {"acos",         1, 1, f_acos},  /* WJMc */
+  #endif
+      {"add",          2, 2, f_add},
++     {"and",          2, 2, f_and},
+      {"append",               2, 2, f_append},
+      {"argc",         0, 0, f_argc},
+      {"argidx",               0, 0, f_argidx},
+***************
+*** 7850,7855 ****
+--- 7855,7861 ----
+      {"inputsave",    0, 0, f_inputsave},
+      {"inputsecret",  1, 2, f_inputsecret},
+      {"insert",               2, 3, f_insert},
++     {"invert",               1, 1, f_invert},
+      {"isdirectory",  1, 1, f_isdirectory},
+      {"islocked",     1, 1, f_islocked},
+      {"items",                1, 1, f_items},
+***************
+*** 7888,7893 ****
+--- 7894,7900 ----
+  #endif
+      {"nextnonblank", 1, 1, f_nextnonblank},
+      {"nr2char",              1, 1, f_nr2char},
++     {"or",           2, 2, f_or},
+      {"pathshorten",  1, 1, f_pathshorten},
+  #ifdef FEAT_FLOAT
+      {"pow",          2, 2, f_pow},
+***************
+*** 7999,8004 ****
+--- 8006,8012 ----
+      {"winsaveview",  0, 0, f_winsaveview},
+      {"winwidth",     1, 1, f_winwidth},
+      {"writefile",    2, 3, f_writefile},
++     {"xor",          2, 2, f_xor},
+  };
+  
+  #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+***************
+*** 8572,8577 ****
+--- 8580,8597 ----
+  }
+  
+  /*
++  * "and(expr, expr)" function
++  */
++     static void
++ f_and(argvars, rettv)
++     typval_T *argvars;
++     typval_T *rettv;
++ {
++     rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
++                                      & get_tv_number_chk(&argvars[1], NULL);
++ }
++ 
++ /*
+   * "append(lnum, string/list)" function
+   */
+      static void
+***************
+*** 12958,12963 ****
+--- 12978,12994 ----
+  }
+  
+  /*
++  * "invert(expr)" function
++  */
++     static void
++ f_invert(argvars, rettv)
++     typval_T *argvars;
++     typval_T *rettv;
++ {
++     rettv->vval.v_number = ~get_tv_number_chk(&argvars[0], NULL);
++ }
++ 
++ /*
+   * "isdirectory()" function
+   */
+      static void
+***************
+*** 14108,14113 ****
+--- 14139,14156 ----
+  }
+  
+  /*
++  * "or(expr, expr)" function
++  */
++     static void
++ f_or(argvars, rettv)
++     typval_T *argvars;
++     typval_T *rettv;
++ {
++     rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
++                                      | get_tv_number_chk(&argvars[1], NULL);
++ }
++ 
++ /*
+   * "pathshorten()" function
+   */
+      static void
+***************
+*** 18394,18399 ****
+--- 18437,18455 ----
+  }
+  
+  /*
++  * "xor(expr, expr)" function
++  */
++     static void
++ f_xor(argvars, rettv)
++     typval_T *argvars;
++     typval_T *rettv;
++ {
++     rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
++                                      ^ get_tv_number_chk(&argvars[1], NULL);
++ }
++ 
++ 
++ /*
+   * Translate a String variable into a position.
+   * Returns NULL when there is an error.
+   */
+*** ../vim-7.3.376/src/testdir/test65.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test65.in      2011-12-11 13:55:06.000000000 +0100
+***************
+*** 1,4 ****
+! Test for floating point.
+  
+  STARTTEST
+  :so small.vim
+--- 1,4 ----
+! Test for floating point and logical operators.
+  
+  STARTTEST
+  :so small.vim
+***************
+*** 72,77 ****
+--- 72,94 ----
+  :$put ='float2nr'
+  :$put =float2nr(123.456)
+  :$put =float2nr(-123.456)
++ :$put ='AND'
++ :$put =and(127, 127)
++ :$put =and(127, 16)
++ :$put =and(127, 128)
++ :$put ='OR'
++ :$put =or(16, 7)
++ :$put =or(8, 7)
++ :$put =or(0, 123)
++ :$put ='XOR'
++ :$put =xor(127, 127)
++ :$put =xor(127, 16)
++ :$put =xor(127, 128)
++ :$put ='invert'
++ :$put =and(invert(127), 65535)
++ :$put =and(invert(16), 65535)
++ :$put =and(invert(128), 65535)
++ :$put =invert(1.0)
+  :/^Results/,$wq! test.out
+  ENDTEST
+  
+*** ../vim-7.3.376/src/testdir/test65.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test65.ok      2011-12-11 13:55:30.000000000 +0100
+***************
+*** 54,56 ****
+--- 54,73 ----
+  float2nr
+  123
+  -123
++ AND
++ 127
++ 16
++ 0
++ OR
++ 23
++ 15
++ 123
++ XOR
++ 0
++ 111
++ 255
++ invert
++ 65408
++ 65519
++ 65407
++ 0
+*** ../vim-7.3.376/runtime/doc/eval.txt        2011-06-19 02:55:32.000000000 +0200
+--- runtime/doc/eval.txt       2011-12-14 15:28:23.000000000 +0100
+***************
+*** 798,808 ****
+  For |Lists| only "+" is possible and then both expr6 must be a list.  The
+  result is a new list with the two lists Concatenated.
+  
+! expr7 *       expr7 ..       number multiplication                   *expr-star*
+! expr7 /       expr7 ..       number division                         *expr-/*
+! expr7 %       expr7 ..       number modulo                           *expr-%*
+  
+  For all, except ".", Strings are converted to Numbers.
+  
+  Note the difference between "+" and ".":
+       "123" + "456" = 579
+--- 800,811 ----
+  For |Lists| only "+" is possible and then both expr6 must be a list.  The
+  result is a new list with the two lists Concatenated.
+  
+! expr7 *       expr7 ..       Number multiplication                   *expr-star*
+! expr7 /       expr7 ..       Number division                         *expr-/*
+! expr7 %       expr7 ..       Number modulo                           *expr-%*
+  
+  For all, except ".", Strings are converted to Numbers.
++ For bitwise operators see |and()|, |or()| and |xor()|.
+  
+  Note the difference between "+" and ".":
+       "123" + "456" = 579
+***************
+*** 1679,1684 ****
+--- 1688,1694 ----
+  abs( {expr})                 Float or Number  absolute value of {expr}
+  acos( {expr})                        Float   arc cosine of {expr}
+  add( {list}, {item})         List    append {item} to |List| {list}
++ and( {expr}, {expr})         Number  bitwise AND
+  append( {lnum}, {string})    Number  append {string} below line {lnum}
+  append( {lnum}, {list})              Number  append lines {list} below line {lnum}
+  argc()                               Number  number of files in the argument list
+***************
+*** 1817,1822 ****
+--- 1827,1833 ----
+  inputsave()                  Number  save and clear typeahead
+  inputsecret( {prompt} [, {text}]) String  like input() but hiding the text
+  insert( {list}, {item} [, {idx}]) List       insert {item} in {list} [before {idx}]
++ invert( {expr})                      Number  bitwise invert
+  isdirectory( {directory})    Number  TRUE if {directory} is a directory
+  islocked( {expr})            Number  TRUE if {expr} is locked
+  items( {dict})                       List    key-value pairs in {dict}
+***************
+*** 1856,1861 ****
+--- 1868,1874 ----
+  mzeval( {expr})                      any     evaluate |MzScheme| expression
+  nextnonblank( {lnum})                Number  line nr of non-blank line >= {lnum}
+  nr2char( {expr})             String  single char with ASCII value {expr}
++ or( {expr}, {expr})          Number  bitwise OR
+  pathshorten( {expr})         String  shorten directory names in a path
+  pow( {x}, {y})                       Float   {x} to the power of {y}
+  prevnonblank( {lnum})                Number  line nr of non-blank line <= {lnum}
+***************
+*** 1978,1983 ****
+--- 1992,1998 ----
+  winwidth( {nr})                      Number  width of window {nr}
+  writefile( {list}, {fname} [, {binary}])
+                               Number  write list of lines to file {fname}
++ xor( {expr}, {expr})         Number  bitwise XOR
+  
+  abs({expr})                                                  *abs()*
+               Return the absolute value of {expr}.  When {expr} evaluates to
+***************
+*** 2017,2022 ****
+--- 2032,2044 ----
+               Use |insert()| to add an item at another position.
+  
+  
++ and({expr}, {expr})                                  *and()*
++              Bitwise AND on the two arguments.  The arguments are converted
++              to a number.  A List, Dict or Float argument causes an error.
++              Example: >
++                      :let flag = and(bits, 0x80)
++ 
++ 
+  append({lnum}, {expr})                                       *append()*
+               When {expr} is a |List|: Append each item of the |List| as a
+               text line below line {lnum} in the current buffer.
+***************
+*** 3770,3775 ****
+--- 3798,3808 ----
+               Note that when {item} is a |List| it is inserted as a single
+               item.  Use |extend()| to concatenate |Lists|.
+  
++ invert({expr})                                               *invert()*
++              Bitwise invert.  The argument is converted to a number.  A
++              List, Dict or Float argument causes an error.  Example: >
++                      :let bits = invert(bits)
++ 
+  isdirectory({directory})                             *isdirectory()*
+               The result is a Number, which is non-zero when a directory
+               with the name {directory} exists.  If {directory} doesn't
+***************
+*** 4334,4339 ****
+--- 4368,4380 ----
+                       call setpos('.', save_cursor)
+  <            Also see |setpos()|.
+  
++ or({expr}, {expr})                                   *or()*
++              Bitwise OR on the two arguments.  The arguments are converted
++              to a number.  A List, Dict or Float argument causes an error.
++              Example: >
++                      :let bits = or(bits, 0x80)
++ 
++ 
+  pathshorten({expr})                                  *pathshorten()*
+               Shorten directory names in the path {expr} and return the
+               result.  The tail, the file name, is kept as-is.  The other
+***************
+*** 6097,6103 ****
+               To copy a file byte for byte: >
+                       :let fl = readfile("foo", "b")
+                       :call writefile(fl, "foocopy", "b")
+! <
+  
+                                                       *feature-list*
+  There are three types of features:
+--- 6149,6163 ----
+               To copy a file byte for byte: >
+                       :let fl = readfile("foo", "b")
+                       :call writefile(fl, "foocopy", "b")
+! 
+! 
+! xor({expr}, {expr})                                  *xor()*
+!              Bitwise XOR on the two arguments.  The arguments are converted
+!              to a number.  A List, Dict or Float argument causes an error.
+!              Example: >
+!                      :let bits = xor(bits, 0x80)
+! 
+! 
+  
+                                                       *feature-list*
+  There are three types of features:
+*** ../vim-7.3.376/src/version.c       2011-12-14 15:23:53.000000000 +0100
+--- src/version.c      2011-12-14 15:28:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     377,
+  /**/
+
+-- 
+DINGO: Wicked wicked Zoot ... she is a bad person and she must pay the
+       penalty.  And here in Castle Anthrax, we have but one punishment
+       ... you must tie her down on a bed ... and spank her.  Come!
+GIRLS: A spanking!  A spanking!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.378.patch0 b/vim/patches/vim-7.3.378.patch0
new file mode 100644 (file)
index 0000000..8ad3d70
--- /dev/null
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.378
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.378
+Problem:    When cross-compiling the check for uint32_t fails.
+Solution:   Only give a warning message. (Maksim Melnikau)
+Files:      src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.377/src/configure.in    2011-12-08 15:17:28.000000000 +0100
+--- src/configure.in   2011-12-14 19:18:36.000000000 +0100
+***************
+*** 3283,3289 ****
+  }],
+  AC_MSG_RESULT(ok),
+  AC_MSG_ERROR([WRONG!  uint32_t not defined correctly.]),
+! AC_MSG_ERROR([could not compile program using uint32_t.]))
+  
+  dnl Check for memmove() before bcopy(), makes memmove() be used when both are
+  dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
+--- 3283,3289 ----
+  }],
+  AC_MSG_RESULT(ok),
+  AC_MSG_ERROR([WRONG!  uint32_t not defined correctly.]),
+! AC_MSG_WARN([cannot check uint32_t when cross-compiling.]))
+  
+  dnl Check for memmove() before bcopy(), makes memmove() be used when both are
+  dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
+*** ../vim-7.3.377/src/auto/configure  2011-12-08 15:17:28.000000000 +0100
+--- src/auto/configure 2011-12-14 19:20:55.000000000 +0100
+***************
+*** 11777,11783 ****
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
+  $as_echo_n "checking uint32_t is 32 bits... " >&6; }
+  if test "$cross_compiling" = yes; then :
+!   as_fn_error "could not compile program using uint32_t." "$LINENO" 5
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  /* end confdefs.h.  */
+--- 11777,11784 ----
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
+  $as_echo_n "checking uint32_t is 32 bits... " >&6; }
+  if test "$cross_compiling" = yes; then :
+!   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check uint32_t when cross-compiling." >&5
+! $as_echo "$as_me: WARNING: cannot check uint32_t when cross-compiling." >&2;}
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  /* end confdefs.h.  */
+*** ../vim-7.3.377/src/version.c       2011-12-14 15:32:44.000000000 +0100
+--- src/version.c      2011-12-14 19:21:08.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     378,
+  /**/
+
+-- 
+            ### Hiroshima 45, Chernobyl 86, Windows 95 ###
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.379.patch0 b/vim/patches/vim-7.3.379.patch0
new file mode 100644 (file)
index 0000000..fd87f9a
--- /dev/null
@@ -0,0 +1,112 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.379
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.379
+Problem:    C-indenting wrong for static enum.
+Solution:   Skip over "static". (Lech Lorens)
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.378/src/misc1.c 2011-11-30 17:20:18.000000000 +0100
+--- src/misc1.c        2011-12-14 19:37:48.000000000 +0100
+***************
+*** 5138,5143 ****
+--- 5138,5146 ----
+      if (STRNCMP(s, "typedef", 7) == 0 && !vim_isIDc(s[7]))
+       s = cin_skipcomment(s + 7);
+  
++     if (STRNCMP(s, "static", 6) == 0 && !vim_isIDc(s[6]))
++      s = cin_skipcomment(s + 6);
++ 
+      if (STRNCMP(s, "enum", 4) == 0 && !vim_isIDc(s[4]))
+       return TRUE;
+  
+*** ../vim-7.3.378/src/testdir/test3.in        2011-11-30 17:20:18.000000000 +0100
+--- src/testdir/test3.in       2011-12-14 20:03:11.000000000 +0100
+***************
+*** 299,316 ****
+  
+  enum soppie
+  {
+!      yes = 0,
+!      no,
+!      maybe
+  };
+  
+  typedef enum soppie
+  {
+!      yes = 0,
+!      no,
+!      maybe
+  };
+  
+  {
+       int a,
+               b;
+--- 299,323 ----
+  
+  enum soppie
+  {
+! yes = 0,
+! no,
+! maybe
+  };
+  
+  typedef enum soppie
+  {
+! yes = 0,
+! no,
+! maybe
+  };
+  
++ static enum
++ {
++ yes = 0,
++ no,
++ maybe
++ } soppie;
++ 
+  {
+       int a,
+               b;
+*** ../vim-7.3.378/src/testdir/test3.ok        2011-11-30 17:20:18.000000000 +0100
+--- src/testdir/test3.ok       2011-12-14 19:37:48.000000000 +0100
+***************
+*** 299,304 ****
+--- 299,311 ----
+       maybe
+  };
+  
++ static enum
++ {
++      yes = 0,
++      no,
++      maybe
++ } soppie;
++ 
+  {
+       int a,
+               b;
+*** ../vim-7.3.378/src/version.c       2011-12-14 19:22:29.000000000 +0100
+--- src/version.c      2011-12-14 20:02:19.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     379,
+  /**/
+
+-- 
+You cannot propel yourself forward by patting yourself on the back.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.380.patch0 b/vim/patches/vim-7.3.380.patch0
new file mode 100644 (file)
index 0000000..a8f4bcf
--- /dev/null
@@ -0,0 +1,318 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.380
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.380
+Problem:    C-indenting wrong for a function header.
+Solution:   Skip to the start paren. (Lech Lorens)
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.379/src/misc1.c 2011-12-14 20:05:17.000000000 +0100
+--- src/misc1.c        2011-12-14 20:16:43.000000000 +0100
+***************
+*** 4943,4949 ****
+  static int   cin_islinecomment __ARGS((char_u *));
+  static int   cin_isterminated __ARGS((char_u *, int, int));
+  static int   cin_isinit __ARGS((void));
+! static int   cin_isfuncdecl __ARGS((char_u **, linenr_T));
+  static int   cin_isif __ARGS((char_u *));
+  static int   cin_iselse __ARGS((char_u *));
+  static int   cin_isdo __ARGS((char_u *));
+--- 4943,4949 ----
+  static int   cin_islinecomment __ARGS((char_u *));
+  static int   cin_isterminated __ARGS((char_u *, int, int));
+  static int   cin_isinit __ARGS((void));
+! static int   cin_isfuncdecl __ARGS((char_u **, linenr_T, linenr_T, int, int));
+  static int   cin_isif __ARGS((char_u *));
+  static int   cin_iselse __ARGS((char_u *));
+  static int   cin_isdo __ARGS((char_u *));
+***************
+*** 5585,5605 ****
+   * "sp" points to a string with the line.  When looking at other lines it must
+   * be restored to the line.  When it's NULL fetch lines here.
+   * "lnum" is where we start looking.
+   */
+      static int
+! cin_isfuncdecl(sp, first_lnum)
+      char_u   **sp;
+      linenr_T first_lnum;
+  {
+      char_u   *s;
+      linenr_T lnum = first_lnum;
+      int              retval = FALSE;
+  
+      if (sp == NULL)
+       s = ml_get(lnum);
+      else
+       s = *sp;
+  
+      /* Ignore line starting with #. */
+      if (cin_ispreproc(s))
+       return FALSE;
+--- 5585,5621 ----
+   * "sp" points to a string with the line.  When looking at other lines it must
+   * be restored to the line.  When it's NULL fetch lines here.
+   * "lnum" is where we start looking.
++  * "min_lnum" is the line before which we will not be looking.
+   */
+      static int
+! cin_isfuncdecl(sp, first_lnum, min_lnum, ind_maxparen, ind_maxcomment)
+      char_u   **sp;
+      linenr_T first_lnum;
++     linenr_T min_lnum;
++     int              ind_maxparen;
++     int              ind_maxcomment;
+  {
+      char_u   *s;
+      linenr_T lnum = first_lnum;
+      int              retval = FALSE;
++     pos_T    *trypos;
++     int              just_started = TRUE;
+  
+      if (sp == NULL)
+       s = ml_get(lnum);
+      else
+       s = *sp;
+  
++     if (find_last_paren(s, '(', ')')
++      && (trypos = find_match_paren(ind_maxparen, ind_maxcomment)) != NULL)
++     {
++      lnum = trypos->lnum;
++      if (lnum < min_lnum)
++          return FALSE;
++ 
++      s = ml_get(lnum);
++     }
++ 
+      /* Ignore line starting with #. */
+      if (cin_ispreproc(s))
+       return FALSE;
+***************
+*** 5650,5662 ****
+           /* Require a comma at end of the line or a comma or ')' at the
+            * start of next line. */
+           s = skipwhite(s);
+!          if (!comma && *s != ',' && *s != ')')
+               break;
+       }
+       else if (cin_iscomment(s))      /* ignore comments */
+           s = cin_skipcomment(s);
+       else
+           ++s;
+      }
+  
+  done:
+--- 5666,5682 ----
+           /* Require a comma at end of the line or a comma or ')' at the
+            * start of next line. */
+           s = skipwhite(s);
+!          if (!just_started && (!comma && *s != ',' && *s != ')'))
+               break;
++          just_started = FALSE;
+       }
+       else if (cin_iscomment(s))      /* ignore comments */
+           s = cin_skipcomment(s);
+       else
++      {
+           ++s;
++          just_started = FALSE;
++      }
+      }
+  
+  done:
+***************
+*** 7158,7164 ****
+                        * (it's a variable declaration).
+                        */
+                       if (start_brace != BRACE_IN_COL0
+!                              || !cin_isfuncdecl(&l, curwin->w_cursor.lnum))
+                       {
+                           /* if the line is terminated with another ','
+                            * it is a continued variable initialization.
+--- 7178,7185 ----
+                        * (it's a variable declaration).
+                        */
+                       if (start_brace != BRACE_IN_COL0
+!                              || !cin_isfuncdecl(&l, curwin->w_cursor.lnum,
+!                                           0, ind_maxparen, ind_maxcomment))
+                       {
+                           /* if the line is terminated with another ','
+                            * it is a continued variable initialization.
+***************
+*** 8019,8025 ****
+               && vim_strchr(theline, '}') == NULL
+               && !cin_ends_in(theline, (char_u *)":", NULL)
+               && !cin_ends_in(theline, (char_u *)",", NULL)
+!              && cin_isfuncdecl(NULL, cur_curpos.lnum + 1)
+               && !cin_isterminated(theline, FALSE, TRUE))
+       {
+           amount = ind_func_type;
+--- 8040,8048 ----
+               && vim_strchr(theline, '}') == NULL
+               && !cin_ends_in(theline, (char_u *)":", NULL)
+               && !cin_ends_in(theline, (char_u *)",", NULL)
+!              && cin_isfuncdecl(NULL, cur_curpos.lnum + 1,
+!                                cur_curpos.lnum + 1,
+!                                ind_maxparen, ind_maxcomment)
+               && !cin_isterminated(theline, FALSE, TRUE))
+       {
+           amount = ind_func_type;
+***************
+*** 8125,8131 ****
+                * If the line looks like a function declaration, and we're
+                * not in a comment, put it the left margin.
+                */
+!              if (cin_isfuncdecl(NULL, cur_curpos.lnum))  /* XXX */
+                   break;
+               l = ml_get_curline();
+  
+--- 8148,8155 ----
+                * If the line looks like a function declaration, and we're
+                * not in a comment, put it the left margin.
+                */
+!              if (cin_isfuncdecl(NULL, cur_curpos.lnum, 0,
+!                                 ind_maxparen, ind_maxcomment))  /* XXX */
+                   break;
+               l = ml_get_curline();
+  
+***************
+*** 8173,8179 ****
+                * line (and the ones that follow) needs to be indented as
+                * parameters.
+                */
+!              if (cin_isfuncdecl(&l, curwin->w_cursor.lnum))
+               {
+                   amount = ind_param;
+                   break;
+--- 8197,8204 ----
+                * line (and the ones that follow) needs to be indented as
+                * parameters.
+                */
+!              if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0,
+!                                 ind_maxparen, ind_maxcomment))
+               {
+                   amount = ind_param;
+                   break;
+*** ../vim-7.3.379/src/testdir/test3.in        2011-12-14 20:05:17.000000000 +0100
+--- src/testdir/test3.in       2011-12-14 20:11:24.000000000 +0100
+***************
+*** 1429,1435 ****
+  
+  STARTTEST
+  :set cino&
+! 2kdd=4][
+  ENDTEST
+  
+  void func(void)
+--- 1429,1435 ----
+  
+  STARTTEST
+  :set cino&
+! 2kdd=7][
+  ENDTEST
+  
+  void func(void)
+***************
+*** 1478,1484 ****
+       3, 4,
+       5, 6};
+  
+! printf("Don't you dare indent this line incorrectly!\n);
+  }
+  
+  STARTTEST
+--- 1478,1506 ----
+       3, 4,
+       5, 6};
+  
+! printf("Don't you dare indent this line incorrectly!\n");
+! }
+! 
+! void
+! func4(a, b,
+!              c)
+! int a;
+! int b;
+! int c;
+! {
+! }
+! 
+! void
+! func5(
+!              int a,
+!              int b)
+! {
+! }
+! 
+! void
+! func6(
+!              int a)
+! {
+  }
+  
+  STARTTEST
+*** ../vim-7.3.379/src/testdir/test3.ok        2011-12-14 20:05:17.000000000 +0100
+--- src/testdir/test3.ok       2011-12-14 20:11:24.000000000 +0100
+***************
+*** 1331,1337 ****
+               3, 4,
+               5, 6};
+  
+!      printf("Don't you dare indent this line incorrectly!\n);
+  }
+  
+  
+--- 1331,1359 ----
+               3, 4,
+               5, 6};
+  
+!      printf("Don't you dare indent this line incorrectly!\n");
+! }
+! 
+!      void
+! func4(a, b,
+!              c)
+!      int a;
+!      int b;
+!      int c;
+! {
+! }
+! 
+!      void
+! func5(
+!              int a,
+!              int b)
+! {
+! }
+! 
+!      void
+! func6(
+!              int a)
+! {
+  }
+  
+  
+*** ../vim-7.3.379/src/version.c       2011-12-14 20:05:17.000000000 +0100
+--- src/version.c      2011-12-14 20:20:50.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     380,
+  /**/
+
+-- 
+"Intelligence has much less practical application than you'd think."
+                 -- Scott Adams, Dilbert.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.381.patch0 b/vim/patches/vim-7.3.381.patch0
new file mode 100644 (file)
index 0000000..b795737
--- /dev/null
@@ -0,0 +1,260 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.381
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.381
+Problem:    Configure silently skips interfaces that won't work.
+Solution:   Add the --enable-fail_if_missing argument. (Shlomi Fish)
+Files:     src/Makefile, src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.380/src/Makefile        2011-12-08 15:17:28.000000000 +0100
+--- src/Makefile       2011-12-14 20:49:26.000000000 +0100
+***************
+*** 389,394 ****
+--- 389,399 ----
+  #CONF_OPT_PLTHOME  = --with-plthome=/usr/local/drscheme
+  #CONF_OPT_PLTHOME  = --with-plthome=/home/me/mz
+  
++ # Uncomment the next line to fail if one of the requested language interfaces
++ # cannot be configured.  Without this Vim will be build anyway, without
++ # the failing interfaces.
++ #CONF_OPT_FAIL = --enable-fail-if-missing
++ 
+  # PERL
+  # Uncomment one of these when you want to include the Perl interface.
+  # First one is for static linking, second one for dynamic loading.
+***************
+*** 1648,1654 ****
+               CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \
+               LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \
+               ./configure $(CONF_OPT_GUI) $(CONF_OPT_X) $(CONF_OPT_XSMP) \
+!              $(CONF_OPT_DARWIN) $(CONF_OPT_PERL) $(CONF_OPT_PYTHON) $(CONF_OPT_PYTHON3) \
+               $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \
+               $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \
+               $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
+--- 1653,1660 ----
+               CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \
+               LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \
+               ./configure $(CONF_OPT_GUI) $(CONF_OPT_X) $(CONF_OPT_XSMP) \
+!              $(CONF_OPT_DARWIN) $(CONF_OPT_FAIL) \
+!              $(CONF_OPT_PERL) $(CONF_OPT_PYTHON) $(CONF_OPT_PYTHON3) \
+               $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \
+               $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \
+               $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
+*** ../vim-7.3.380/src/configure.in    2011-12-14 19:22:29.000000000 +0100
+--- src/configure.in   2011-12-14 20:46:36.000000000 +0100
+***************
+*** 28,33 ****
+--- 28,43 ----
+  AC_HEADER_STDC
+  AC_HEADER_SYS_WAIT
+  
++ dnl Check for the flag that fails if stuff are missing.
++ 
++ AC_MSG_CHECKING(--enable-fail-if-missing argument)
++ AC_ARG_ENABLE(fail_if_missing,
++      [  --enable-fail-if-missing    Fail if dependencies on additional features
++      specified on the command line are missing.], 
++      [fail_if_missing="yes"],
++      [fail_if_missing="no"])
++ AC_MSG_RESULT($fail_if_missing)
++ 
+  dnl Set default value for CFLAGS if none is defined or it's empty
+  if test -z "$CFLAGS"; then
+    CFLAGS="-O"
+***************
+*** 491,496 ****
+--- 501,509 ----
+        LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
+      fi
+    fi
++   if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
++     AC_MSG_ERROR([could not configure lua])
++   fi
+    AC_SUBST(LUA_SRC)
+    AC_SUBST(LUA_OBJ)
+    AC_SUBST(LUA_PRO)
+***************
+*** 781,786 ****
+--- 794,803 ----
+        PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a "$perl_ok" != "yes"; then
++     AC_MSG_ERROR([could not configure perl])
++   fi
+  fi
+  AC_SUBST(shrpenv)
+  AC_SUBST(PERL_SRC)
+***************
+*** 966,971 ****
+--- 983,992 ----
+        AC_MSG_RESULT(too old)
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a "$python_ok" != "yes"; then
++     AC_MSG_ERROR([could not configure python])
++   fi
+  fi
+  
+  AC_SUBST(PYTHON_CONFDIR)
+***************
+*** 1389,1394 ****
+--- 1410,1418 ----
+        AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
+      fi
+    fi
++   if test "$fail_if_missing" = "yes" -a -z "$TCL_SRC"; then
++     AC_MSG_ERROR([could not configure Tcl])
++   fi
+  fi
+  AC_SUBST(TCL_SRC)
+  AC_SUBST(TCL_OBJ)
+***************
+*** 1469,1474 ****
+--- 1493,1502 ----
+        AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a -z "$RUBY_OBJ"; then
++     AC_MSG_ERROR([could not configure Ruby])
++   fi
+  fi
+  AC_SUBST(RUBY_SRC)
+  AC_SUBST(RUBY_OBJ)
+*** ../vim-7.3.380/src/auto/configure  2011-12-14 19:22:29.000000000 +0100
+--- src/auto/configure 2011-12-14 20:49:51.000000000 +0100
+***************
+*** 741,746 ****
+--- 741,747 ----
+  ac_subst_files=''
+  ac_user_opts='
+  enable_option_checking
++ enable_fail_if_missing
+  enable_darwin
+  with_mac_arch
+  with_developer_dir
+***************
+*** 1418,1423 ****
+--- 1419,1426 ----
+    --disable-option-checking  ignore unrecognized --enable/--with options
+    --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+    --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
++   --enable-fail-if-missing    Fail if dependencies on additional features
++      specified on the command line are missing.
+    --disable-darwin        Disable Darwin (Mac OS X) support.
+    --disable-selinux    Don't check for SELinux support.
+    --disable-xsmp          Disable XSMP session management
+***************
+*** 3949,3954 ****
+--- 3952,3970 ----
+  fi
+  
+  
++ 
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-fail-if-missing argument" >&5
++ $as_echo_n "checking --enable-fail-if-missing argument... " >&6; }
++ # Check whether --enable-fail_if_missing was given.
++ if test "${enable_fail_if_missing+set}" = set; then :
++   enableval=$enable_fail_if_missing; fail_if_missing="yes"
++ else
++   fail_if_missing="no"
++ fi
++ 
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fail_if_missing" >&5
++ $as_echo "$fail_if_missing" >&6; }
++ 
+  if test -z "$CFLAGS"; then
+    CFLAGS="-O"
+    test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
+***************
+*** 4727,4732 ****
+--- 4743,4751 ----
+        LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
+      fi
+    fi
++   if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
++     as_fn_error "could not configure lua" "$LINENO" 5
++   fi
+  
+  
+  
+***************
+*** 5140,5145 ****
+--- 5159,5168 ----
+        PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a "$perl_ok" != "yes"; then
++     as_fn_error "could not configure perl" "$LINENO" 5
++   fi
+  fi
+  
+  
+***************
+*** 5429,5434 ****
+--- 5452,5461 ----
+  $as_echo "too old" >&6; }
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a "$python_ok" != "yes"; then
++     as_fn_error "could not configure python" "$LINENO" 5
++   fi
+  fi
+  
+  
+***************
+*** 6216,6221 ****
+--- 6243,6251 ----
+  $as_echo "too old; need Tcl version 8.0 or later" >&6; }
+      fi
+    fi
++   if test "$fail_if_missing" = "yes" -a -z "$TCL_SRC"; then
++     as_fn_error "could not configure Tcl" "$LINENO" 5
++   fi
+  fi
+  
+  
+***************
+*** 6353,6358 ****
+--- 6383,6392 ----
+  $as_echo "too old; need Ruby version 1.6.0 or later" >&6; }
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a -z "$RUBY_OBJ"; then
++     as_fn_error "could not configure Ruby" "$LINENO" 5
++   fi
+  fi
+  
+  
+*** ../vim-7.3.380/src/version.c       2011-12-14 20:21:29.000000000 +0100
+--- src/version.c      2011-12-14 20:50:42.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     381,
+  /**/
+
+-- 
+The psychic said, "God bless you."  I said, "I didn't sneeze."  She
+looked deep into my eyes and said, "You will, eventually."  And, damn
+if she wasn't right.  Two days later, I sneezed.  --Ellen Degeneres
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.382.patch0 b/vim/patches/vim-7.3.382.patch0
new file mode 100644 (file)
index 0000000..7f344e7
--- /dev/null
@@ -0,0 +1,173 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.382
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.382 (after 7.3.376)
+Problem:    IME characters are inserted twice.
+Solution:   Do not call DefWindowProc() if the event was handled. (Yasuhiro
+           Matsumoto)
+Files:     src/gui_w32.c
+
+
+*** ../vim-7.3.381/src/gui_w32.c       2011-12-14 15:23:53.000000000 +0100
+--- src/gui_w32.c      2011-12-15 21:50:51.000000000 +0100
+***************
+*** 798,804 ****
+               if (pt.y < rect.top)
+               {
+                   show_tabline_popup_menu();
+!                  return 0;
+               }
+           }
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+--- 798,804 ----
+               if (pt.y < rect.top)
+               {
+                   show_tabline_popup_menu();
+!                  return 0L;
+               }
+           }
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+***************
+*** 828,834 ****
+--- 828,837 ----
+  
+      case WM_ENDSESSION:
+       if (wParam)     /* system only really goes down when wParam is TRUE */
++      {
+           _OnEndSession();
++          return 0L;
++      }
+       break;
+  
+      case WM_CHAR:
+***************
+*** 866,872 ****
+        * are received, mouse pointer remains hidden. */
+       return MyWindowProc(hwnd, uMsg, wParam, lParam);
+  #else
+!      return 0;
+  #endif
+  
+      case WM_SIZING:  /* HANDLE_MSG doesn't seem to handle this one */
+--- 869,875 ----
+        * are received, mouse pointer remains hidden. */
+       return MyWindowProc(hwnd, uMsg, wParam, lParam);
+  #else
+!      return 0L;
+  #endif
+  
+      case WM_SIZING:  /* HANDLE_MSG doesn't seem to handle this one */
+***************
+*** 874,880 ****
+  
+      case WM_MOUSEWHEEL:
+       _OnMouseWheel(hwnd, HIWORD(wParam));
+!      break;
+  
+       /* Notification for change in SystemParametersInfo() */
+      case WM_SETTINGCHANGE:
+--- 877,883 ----
+  
+      case WM_MOUSEWHEEL:
+       _OnMouseWheel(hwnd, HIWORD(wParam));
+!      return 0L;
+  
+       /* Notification for change in SystemParametersInfo() */
+      case WM_SETTINGCHANGE:
+***************
+*** 987,999 ****
+--- 990,1008 ----
+           case TCN_SELCHANGE:
+               if (gui_mch_showing_tabline()
+                                 && ((LPNMHDR)lParam)->hwndFrom == s_tabhwnd)
++              {
+                   send_tabline_event(TabCtrl_GetCurSel(s_tabhwnd) + 1);
++                  return 0L;
++              }
+               break;
+  
+           case NM_RCLICK:
+               if (gui_mch_showing_tabline()
+                       && ((LPNMHDR)lParam)->hwndFrom == s_tabhwnd)
++              {
+                   show_tabline_popup_menu();
++                  return 0L;
++              }
+               break;
+  # endif
+           default:
+***************
+*** 1037,1042 ****
+--- 1046,1052 ----
+               out_flush();
+               did_menu_tip = TRUE;
+           }
++          return 0L;
+       }
+       break;
+  #endif
+***************
+*** 1079,1096 ****
+      case WM_IME_NOTIFY:
+       if (!_OnImeNotify(hwnd, (DWORD)wParam, (DWORD)lParam))
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+!      break;
+      case WM_IME_COMPOSITION:
+       if (!_OnImeComposition(hwnd, wParam, lParam))
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+!      break;
+  #endif
+  
+      default:
+       if (uMsg == msh_msgmousewheel && msh_msgmousewheel != 0)
+       {   /* handle MSH_MOUSEWHEEL messages for Intellimouse */
+           _OnMouseWheel(hwnd, HIWORD(wParam));
+!          break;
+       }
+  #ifdef MSWIN_FIND_REPLACE
+       else if (uMsg == s_findrep_msg && s_findrep_msg != 0)
+--- 1089,1107 ----
+      case WM_IME_NOTIFY:
+       if (!_OnImeNotify(hwnd, (DWORD)wParam, (DWORD)lParam))
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+!      return 1L;
+! 
+      case WM_IME_COMPOSITION:
+       if (!_OnImeComposition(hwnd, wParam, lParam))
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+!      return 1L;
+  #endif
+  
+      default:
+       if (uMsg == msh_msgmousewheel && msh_msgmousewheel != 0)
+       {   /* handle MSH_MOUSEWHEEL messages for Intellimouse */
+           _OnMouseWheel(hwnd, HIWORD(wParam));
+!          return 0L;
+       }
+  #ifdef MSWIN_FIND_REPLACE
+       else if (uMsg == s_findrep_msg && s_findrep_msg != 0)
+*** ../vim-7.3.381/src/version.c       2011-12-14 20:51:19.000000000 +0100
+--- src/version.c      2011-12-15 21:48:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     382,
+  /**/
+
+-- 
+Even got a Datapoint 3600(?) with a DD50 connector instead of the
+usual DB25...  what a nightmare trying to figure out the pinout
+for *that* with no spex...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.383.patch0 b/vim/patches/vim-7.3.383.patch0
new file mode 100644 (file)
index 0000000..c0ce6d9
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.383
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.383
+Problem:    For EBCDIC pound sign is defined as 't'.
+Solution:   Correctly define POUND.
+Files:     src/ascii.h
+
+
+*** ../vim-7.3.382/src/ascii.h 2011-09-02 14:18:14.000000000 +0200
+--- src/ascii.h        2011-12-17 21:38:36.000000000 +0100
+***************
+*** 123,129 ****
+  #define DCS          0x90    /* Device Control String */
+  #define STERM                0x9c    /* String Terminator */
+  
+! #define POUND                '\xA3'
+  
+  #define CTRL_F_STR   "\056"
+  #define CTRL_H_STR   "\026"
+--- 123,129 ----
+  #define DCS          0x90    /* Device Control String */
+  #define STERM                0x9c    /* String Terminator */
+  
+! #define POUND                0xB1
+  
+  #define CTRL_F_STR   "\056"
+  #define CTRL_H_STR   "\026"
+*** ../vim-7.3.382/src/version.c       2011-12-15 21:51:32.000000000 +0100
+--- src/version.c      2011-12-23 12:46:08.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     383,
+  /**/
+
+-- 
+Vim is like Emacs without all the typing.  (John "Johann" Spetz)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.384.patch0 b/vim/patches/vim-7.3.384.patch0
new file mode 100644 (file)
index 0000000..f75ff40
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.384
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.384
+Problem:    Mapping CTRL-K in Insert mode breaks CTRL-X CTRL-K for dictionary
+           completion.
+Solution:   Add CTRL-K to the list of recognized keys. (James McCoy)
+Files:     src/edit.c
+
+
+*** ../vim-7.3.383/src/edit.c  2011-10-26 17:04:23.000000000 +0200
+--- src/edit.c 2011-12-23 12:36:22.000000000 +0100
+***************
+*** 2183,2189 ****
+                   || c == Ctrl_I || c == Ctrl_D || c == Ctrl_P
+                   || c == Ctrl_N || c == Ctrl_T || c == Ctrl_V
+                   || c == Ctrl_Q || c == Ctrl_U || c == Ctrl_O
+!                  || c == Ctrl_S || c == 's');
+       case CTRL_X_SCROLL:
+           return (c == Ctrl_Y || c == Ctrl_E);
+       case CTRL_X_WHOLE_LINE:
+--- 2183,2189 ----
+                   || c == Ctrl_I || c == Ctrl_D || c == Ctrl_P
+                   || c == Ctrl_N || c == Ctrl_T || c == Ctrl_V
+                   || c == Ctrl_Q || c == Ctrl_U || c == Ctrl_O
+!                  || c == Ctrl_S || c == Ctrl_K || c == 's');
+       case CTRL_X_SCROLL:
+           return (c == Ctrl_Y || c == Ctrl_E);
+       case CTRL_X_WHOLE_LINE:
+*** ../vim-7.3.383/src/version.c       2011-12-23 12:46:56.000000000 +0100
+--- src/version.c      2011-12-23 12:53:38.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     384,
+  /**/
+
+-- 
+Q: Is selling software the same as selling hardware?
+A: No, good hardware is sold new, good software has already been used by many.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.385.patch0 b/vim/patches/vim-7.3.385.patch0
new file mode 100644 (file)
index 0000000..405a77f
--- /dev/null
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.385
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.385
+Problem:    When using an expression mapping on the command line the cursor
+           ends up in the wrong place. (Yasuhiro Matsumoto)
+Solution:   Save and restore msg_col and msg_row when evaluating the
+           expression.
+Files:     src/getchar.
+
+
+*** ../vim-7.3.384/src/getchar.c       2011-10-12 22:02:07.000000000 +0200
+--- src/getchar.c      2011-12-14 18:37:52.000000000 +0100
+***************
+*** 4510,4515 ****
+--- 4510,4517 ----
+      char_u   *expr;
+      char_u   *save_cmd;
+      pos_T    save_cursor;
++     int              save_msg_col;
++     int              save_msg_row;
+  
+      /* Remove escaping of CSI, because "str" is in a format to be used as
+       * typeahead. */
+***************
+*** 4533,4544 ****
+--- 4535,4550 ----
+  #endif
+      set_vim_var_char(c);  /* set v:char to the typed character */
+      save_cursor = curwin->w_cursor;
++     save_msg_col = msg_col;
++     save_msg_row = msg_row;
+      p = eval_to_string(expr, NULL, FALSE);
+      --textlock;
+  #ifdef FEAT_EX_EXTRA
+      --ex_normal_lock;
+  #endif
+      curwin->w_cursor = save_cursor;
++     msg_col = save_msg_col;
++     msg_row = save_msg_row;
+  
+      restore_cmdline_alloc(save_cmd);
+      vim_free(expr);
+*** ../vim-7.3.384/src/version.c       2011-12-23 13:14:58.000000000 +0100
+--- src/version.c      2011-12-23 14:53:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     385,
+  /**/
+
+-- 
+`When any government, or any church for that matter, undertakes to say to
+ its subjects, "This you may not read, this you must not see, this you are
+ forbidden to know," the end result is tyranny and oppression no matter how
+ holy the motives' -- Robert A Heinlein, "If this goes on --"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.386.patch0 b/vim/patches/vim-7.3.386.patch0
new file mode 100644 (file)
index 0000000..c903505
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.386
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.386
+Problem:    Test 83 fails when iconv does not support cp932. (raf)
+Solution:   Test if conversion works. (Yukihiro Nakadaira)
+Files:     src/testdir/test83.in
+
+
+*** ../vim-7.3.385/src/testdir/test83.in       2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/test83.in      2011-12-21 21:01:44.000000000 +0100
+***************
+*** 2,8 ****
+  
+  STARTTEST
+  :so mbyte.vim
+! :if !has('iconv')
+  : e! test.ok
+  : w! test.out
+  : qa!
+--- 2,8 ----
+  
+  STARTTEST
+  :so mbyte.vim
+! :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
+  : e! test.ok
+  : w! test.out
+  : qa!
+*** ../vim-7.3.385/src/version.c       2011-12-23 14:54:01.000000000 +0100
+--- src/version.c      2011-12-23 14:55:38.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     386,
+  /**/
+
+-- 
+WOMAN:   King of the who?
+ARTHUR:  The Britons.
+WOMAN:   Who are the Britons?
+ARTHUR:  Well, we all are. we're all Britons and I am your king.
+                                  The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.387.patch0 b/vim/patches/vim-7.3.387.patch0
new file mode 100644 (file)
index 0000000..6b20a58
--- /dev/null
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.387
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.387 (after 7.3.386)
+Problem:    Test 83 may fail for some encodings.
+Solution:   Set 'encoding' to utf-8 earlier.
+Files:     src/testdir/test83.in
+
+
+*** ../vim-7.3.386/src/testdir/test83.in       2011-12-23 14:56:24.000000000 +0100
+--- src/testdir/test83.in      2011-12-30 13:05:05.000000000 +0100
+***************
+*** 2,13 ****
+  
+  STARTTEST
+  :so mbyte.vim
+  :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
+  : e! test.ok
+  : w! test.out
+  : qa!
+  :endif
+- :set enc=utf8
+  
+  :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
+  :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
+--- 2,13 ----
+  
+  STARTTEST
+  :so mbyte.vim
++ :set enc=utf8
+  :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
+  : e! test.ok
+  : w! test.out
+  : qa!
+  :endif
+  
+  :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
+  :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
+*** ../vim-7.3.386/src/version.c       2011-12-23 14:56:24.000000000 +0100
+--- src/version.c      2011-12-30 13:06:17.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     387,
+  /**/
+
+-- 
+Mental Floss prevents moral decay!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.388.patch0 b/vim/patches/vim-7.3.388.patch0
new file mode 100644 (file)
index 0000000..7a6df89
--- /dev/null
@@ -0,0 +1,45 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.388
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.388
+Problem:    Crash on exit when EXITFREE is defined and using tiny features.
+Solution:   Check for NULL window pointer. (Dominique Pelle)
+Files:     src/buffer.c
+
+
+*** ../vim-7.3.387/src/buffer.c        2011-11-30 15:40:51.000000000 +0100
+--- src/buffer.c       2011-12-30 13:35:26.000000000 +0100
+***************
+*** 419,424 ****
+--- 419,426 ----
+      if (
+  #ifdef FEAT_WINDOWS
+       win_valid(win) &&
++ #else
++      win != NULL &&
+  #endif
+                         win->w_buffer == buf)
+       win->w_buffer = NULL;  /* make sure we don't use the buffer now */
+*** ../vim-7.3.387/src/version.c       2011-12-30 13:09:15.000000000 +0100
+--- src/version.c      2011-12-30 13:37:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     388,
+  /**/
+
+-- 
+Be nice to your kids...  they'll be the ones choosing your nursing home.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.389.patch0 b/vim/patches/vim-7.3.389.patch0
new file mode 100644 (file)
index 0000000..c8a968c
--- /dev/null
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.389
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.389
+Problem:    After typing at a prompt the "MORE" message appears too soon.
+Solution:   reset lines_left in msg_end_prompt(). (Eswald)
+Files:     src/message.c
+
+
+*** ../vim-7.3.388/src/message.c       2011-09-14 15:39:26.000000000 +0200
+--- src/message.c      2011-12-30 14:08:05.000000000 +0100
+***************
+*** 85,91 ****
+   *               need_wait_return to be set.  This is a hack to make ":ts"
+   *               work without an extra prompt.
+   * lines_left            Number of lines available for messages before the
+!  *               more-prompt is to be given.
+   * need_wait_return TRUE when the hit-return prompt is needed.
+   *               Reset: After giving the hit-return prompt, when the user
+   *               has answered some other prompt.
+--- 85,91 ----
+   *               need_wait_return to be set.  This is a hack to make ":ts"
+   *               work without an extra prompt.
+   * lines_left            Number of lines available for messages before the
+!  *               more-prompt is to be given.  -1 when not set.
+   * need_wait_return TRUE when the hit-return prompt is needed.
+   *               Reset: After giving the hit-return prompt, when the user
+   *               has answered some other prompt.
+***************
+*** 855,860 ****
+--- 855,861 ----
+      cmdline_row = msg_row;
+      msg_col = 0;
+      msg_clr_eos();
++     lines_left = -1;
+  }
+  #endif
+  
+*** ../vim-7.3.388/src/version.c       2011-12-30 13:39:04.000000000 +0100
+--- src/version.c      2011-12-30 14:11:00.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     389,
+  /**/
+
+-- 
+Proofread carefully to see if you any words out.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.390.patch0 b/vim/patches/vim-7.3.390.patch0
new file mode 100644 (file)
index 0000000..7199f8e
--- /dev/null
@@ -0,0 +1,155 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.390
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.390
+Problem:    Using NULL buffer pointer in a window.
+Solution:   Check for w_buffer being NULL in more places. (Bjorn Winckler)
+Files:     src/ex_cmds.c, src/quickfix.c, src/window.c
+
+
+*** ../vim-7.3.389/src/ex_cmds.c       2011-11-30 17:01:55.000000000 +0100
+--- src/ex_cmds.c      2011-12-30 14:59:57.000000000 +0100
+***************
+*** 3390,3395 ****
+--- 3390,3402 ----
+                                     (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
+  
+  #ifdef FEAT_AUTOCMD
++              /* Autocommands may open a new window and leave oldwin open
++               * which leads to crashes since the above call sets
++               * oldwin->w_buffer to NULL. */
++              if (curwin != oldwin && oldwin != aucmd_win
++                           && win_valid(oldwin) && oldwin->w_buffer == NULL)
++                  win_close(oldwin, FALSE);
++ 
+  # ifdef FEAT_EVAL
+               if (aborting())     /* autocmds may abort script processing */
+               {
+*** ../vim-7.3.389/src/quickfix.c      2011-08-10 18:36:49.000000000 +0200
+--- src/quickfix.c     2011-12-30 14:45:19.000000000 +0100
+***************
+*** 2675,2681 ****
+  bt_quickfix(buf)
+      buf_T    *buf;
+  {
+!     return (buf->b_p_bt[0] == 'q');
+  }
+  
+  /*
+--- 2675,2681 ----
+  bt_quickfix(buf)
+      buf_T    *buf;
+  {
+!     return buf != NULL && buf->b_p_bt[0] == 'q';
+  }
+  
+  /*
+***************
+*** 2686,2693 ****
+  bt_nofile(buf)
+      buf_T    *buf;
+  {
+!     return (buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f')
+!          || buf->b_p_bt[0] == 'a';
+  }
+  
+  /*
+--- 2686,2693 ----
+  bt_nofile(buf)
+      buf_T    *buf;
+  {
+!     return buf != NULL && ((buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f')
+!          || buf->b_p_bt[0] == 'a');
+  }
+  
+  /*
+***************
+*** 2697,2703 ****
+  bt_dontwrite(buf)
+      buf_T    *buf;
+  {
+!     return (buf->b_p_bt[0] == 'n');
+  }
+  
+      int
+--- 2697,2703 ----
+  bt_dontwrite(buf)
+      buf_T    *buf;
+  {
+!     return buf != NULL && buf->b_p_bt[0] == 'n';
+  }
+  
+      int
+*** ../vim-7.3.389/src/window.c        2011-09-14 14:43:21.000000000 +0200
+--- src/window.c       2011-12-30 14:44:18.000000000 +0100
+***************
+*** 2170,2176 ****
+  
+      /* When closing the help window, try restoring a snapshot after closing
+       * the window.  Otherwise clear the snapshot, it's now invalid. */
+!     if (win->w_buffer->b_help)
+       help_window = TRUE;
+      else
+       clear_snapshot(curtab, SNAP_HELP_IDX);
+--- 2170,2176 ----
+  
+      /* When closing the help window, try restoring a snapshot after closing
+       * the window.  Otherwise clear the snapshot, it's now invalid. */
+!     if (win->w_buffer != NULL && win->w_buffer->b_help)
+       help_window = TRUE;
+      else
+       clear_snapshot(curtab, SNAP_HELP_IDX);
+***************
+*** 2214,2226 ****
+  
+  #ifdef FEAT_SYN_HL
+      /* Free independent synblock before the buffer is freed. */
+!     reset_synblock(win);
+  #endif
+  
+      /*
+       * Close the link to the buffer.
+       */
+!     close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
+  
+      /* Autocommands may have closed the window already, or closed the only
+       * other window or moved to another tab page. */
+--- 2214,2228 ----
+  
+  #ifdef FEAT_SYN_HL
+      /* Free independent synblock before the buffer is freed. */
+!     if (win->w_buffer != NULL)
+!      reset_synblock(win);
+  #endif
+  
+      /*
+       * Close the link to the buffer.
+       */
+!     if (win->w_buffer != NULL)
+!      close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
+  
+      /* Autocommands may have closed the window already, or closed the only
+       * other window or moved to another tab page. */
+*** ../vim-7.3.389/src/version.c       2011-12-30 14:14:16.000000000 +0100
+--- src/version.c      2011-12-30 14:38:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     390,
+  /**/
+
+-- 
+There can't be a crisis today, my schedule is already full.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.391.patch0 b/vim/patches/vim-7.3.391.patch0
new file mode 100644 (file)
index 0000000..0a1bcce
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.391
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.391
+Problem:    Can't check if the XPM_W32 feature is enabled.
+Solution:   Add xpm_w32 to the list of features. (kat)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.390/src/eval.c  2011-12-14 15:32:44.000000000 +0100
+--- src/eval.c 2012-01-04 14:33:22.000000000 +0100
+***************
+*** 12260,12265 ****
+--- 12260,12268 ----
+  #ifdef FEAT_XFONTSET
+       "xfontset",
+  #endif
++ #ifdef FEAT_XPM_W32
++      "xpm_w32",
++ #endif
+  #ifdef USE_XSMP
+       "xsmp",
+  #endif
+*** ../vim-7.3.390/src/version.c       2011-12-30 15:01:55.000000000 +0100
+--- src/version.c      2012-01-04 14:34:31.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     391,
+  /**/
+
+-- 
+ROBIN:  The what?
+ARTHUR: The Holy Hand Grenade of Antioch.  'Tis one of the sacred relics
+        Brother Maynard always carries with him.
+ALL:    Yes. Of course.
+ARTHUR: (shouting) Bring up the Holy Hand Grenade!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.392.patch0 b/vim/patches/vim-7.3.392.patch0
new file mode 100644 (file)
index 0000000..a603d90
--- /dev/null
@@ -0,0 +1,115 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.392
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.392
+Problem:    When setting 'undofile' while the file is already loaded but
+           unchanged, try reading the undo file. (Andy Wokula)
+Solution:   Compute a checksum of the text when 'undofile' is set. (Christian
+           Brabandt)
+Files:     src/option.c, src/testdir/test72.in, src/testdir/test72.ok
+
+
+*** ../vim-7.3.391/src/option.c        2011-11-30 11:31:25.000000000 +0100
+--- src/option.c       2012-01-04 19:34:11.000000000 +0100
+***************
+*** 7516,7521 ****
+--- 7516,7545 ----
+       compatible_set();
+      }
+  
++ #ifdef FEAT_PERSISTENT_UNDO
++     /* 'undofile' */
++     else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf)
++     {
++      char_u  hash[UNDO_HASH_SIZE];
++      buf_T   *save_curbuf = curbuf;
++ 
++      for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
++      {
++          /* When 'undofile' is set globally: for every buffer, otherwise
++           * only for the current buffer: Try to read in the undofile, if
++           * one exists and the buffer wasn't changed. */
++          if ((curbuf == save_curbuf
++                              || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
++                  && !curbufIsChanged())
++          {
++              u_compute_hash(hash);
++              u_read_undo(NULL, hash, curbuf->b_fname);
++          }
++      }
++      curbuf = save_curbuf;
++     }
++ #endif
++ 
+      /* 'list', 'number' */
+      else if ((int *)varp == &curwin->w_p_list
+         || (int *)varp == &curwin->w_p_nu
+*** ../vim-7.3.391/src/testdir/test72.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test72.in      2012-01-04 19:04:17.000000000 +0100
+***************
+*** 51,56 ****
+--- 51,62 ----
+  :e Xtestfile
+  uuu:w >>test.out
+  :"
++ :" Test that reading the undofiles when setting undofile works
++ :set noundofile ul=0
++ i
++ \eu:e! Xtestfile
++ :set undofile ul=100
++ uuuuuu:w >>test.out
+  :" And now with encryption, cryptmethod=zip
+  :e! Xtestfile
+  :set undofile cm=zip
+*** ../vim-7.3.391/src/testdir/test72.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test72.ok      2012-01-04 19:04:17.000000000 +0100
+***************
+*** 7,12 ****
+--- 7,22 ----
+  eight
+  nine
+  ten
++ one
++ two
++ three
++ four
++ five
++ six
++ seven
++ eight
++ nine
++ ten
+  monday
+  wednesday
+  thursday
+*** ../vim-7.3.391/src/version.c       2012-01-04 14:35:31.000000000 +0100
+--- src/version.c      2012-01-04 19:33:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     392,
+  /**/
+
+-- 
+BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One.
+ANOTHER MONK:    And St.  Attila raised his hand grenade up on high saying "O
+                 Lord bless this thy hand grenade that with it thou mayest
+                 blow thine enemies to tiny bits, in thy mercy. "and the Lord
+                 did grin and people did feast upon the lambs and sloths and
+                 carp and anchovies and orang-utans and breakfast cereals and
+                 fruit bats and...
+BROTHER MAYNARD: Skip a bit brother ...
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.393.patch0 b/vim/patches/vim-7.3.393.patch0
new file mode 100644 (file)
index 0000000..ca6cbc9
--- /dev/null
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.393
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.393
+Problem:    Win32: When resizing Vim it is always moved to the primary monitor
+           if the secondary monitor is on the left.
+Solution:   Use the nearest monitor. (Yukihiro Nakadaira)
+Files:     src/gui_w32.c
+
+
+*** ../vim-7.3.392/src/gui_w32.c       2011-12-15 21:51:32.000000000 +0100
+--- src/gui_w32.c      2012-01-04 20:25:58.000000000 +0100
+***************
+*** 1661,1669 ****
+  {
+      RECT     workarea_rect;
+      int              win_width, win_height;
+-     int              win_xpos, win_ypos;
+      WINDOWPLACEMENT wndpl;
+-     int              workarea_left;
+  
+      /* Try to keep window completely on screen. */
+      /* Get position of the screen work area.  This is the part that is not
+--- 1661,1667 ----
+***************
+*** 1685,1693 ****
+       GetWindowPlacement(s_hwnd, &wndpl);
+      }
+  
+-     win_xpos = wndpl.rcNormalPosition.left;
+-     win_ypos = wndpl.rcNormalPosition.top;
+- 
+      /* compute the size of the outside of the window */
+      win_width = width + GetSystemMetrics(SM_CXFRAME) * 2;
+      win_height = height + GetSystemMetrics(SM_CYFRAME) * 2
+--- 1683,1688 ----
+***************
+*** 1697,1732 ****
+  #endif
+                       ;
+  
+!     /* There is an inconsistency when using two monitors and Vim is on the
+!      * second (right) one: win_xpos will be the offset from the workarea of
+!      * the left monitor.  While with one monitor it's the offset from the
+!      * workarea (including a possible taskbar on the left).  Detect the second
+!      * monitor by checking for the left offset to be quite big. */
+!     if (workarea_rect.left > 300)
+!      workarea_left = 0;
+!     else
+!      workarea_left = workarea_rect.left;
+  
+!     /* If the window is going off the screen, move it on to the screen.
+!      * win_xpos and win_ypos are relative to the workarea. */
+      if ((direction & RESIZE_HOR)
+!          && workarea_left + win_xpos + win_width > workarea_rect.right)
+!      win_xpos = workarea_rect.right - win_width - workarea_left;
+  
+!     if ((direction & RESIZE_HOR) && win_xpos < 0)
+!      win_xpos = 0;
+  
+      if ((direction & RESIZE_VERT)
+!        && workarea_rect.top + win_ypos + win_height > workarea_rect.bottom)
+!      win_ypos = workarea_rect.bottom - win_height - workarea_rect.top;
+  
+!     if ((direction & RESIZE_VERT) && win_ypos < 0)
+!      win_ypos = 0;
+! 
+!     wndpl.rcNormalPosition.left = win_xpos;
+!     wndpl.rcNormalPosition.right = win_xpos + win_width;
+!     wndpl.rcNormalPosition.top = win_ypos;
+!     wndpl.rcNormalPosition.bottom = win_ypos + win_height;
+  
+      /* set window position - we should use SetWindowPlacement rather than
+       * SetWindowPos as the MSDN docs say the coord systems returned by
+--- 1692,1723 ----
+  #endif
+                       ;
+  
+!     /* The following should take care of keeping Vim on the same monitor, no
+!      * matter if the secondary monitor is left or right of the primary
+!      * monitor. */
+!     wndpl.rcNormalPosition.right = wndpl.rcNormalPosition.left + win_width;
+!     wndpl.rcNormalPosition.bottom = wndpl.rcNormalPosition.top + win_height;
+  
+!     /* If the window is going off the screen, move it on to the screen. */
+      if ((direction & RESIZE_HOR)
+!          && wndpl.rcNormalPosition.right > workarea_rect.right)
+!      OffsetRect(&wndpl.rcNormalPosition,
+!              workarea_rect.right - wndpl.rcNormalPosition.right, 0);
+  
+!     if ((direction & RESIZE_HOR)
+!          && wndpl.rcNormalPosition.left < workarea_rect.left)
+!      OffsetRect(&wndpl.rcNormalPosition,
+!              workarea_rect.left - wndpl.rcNormalPosition.left, 0);
+  
+      if ((direction & RESIZE_VERT)
+!          && wndpl.rcNormalPosition.bottom > workarea_rect.bottom)
+!      OffsetRect(&wndpl.rcNormalPosition,
+!              0, workarea_rect.bottom - wndpl.rcNormalPosition.bottom);
+  
+!     if ((direction & RESIZE_VERT)
+!          && wndpl.rcNormalPosition.top < workarea_rect.top)
+!      OffsetRect(&wndpl.rcNormalPosition,
+!              0, workarea_rect.top - wndpl.rcNormalPosition.top);
+  
+      /* set window position - we should use SetWindowPlacement rather than
+       * SetWindowPos as the MSDN docs say the coord systems returned by
+*** ../vim-7.3.392/src/version.c       2012-01-04 19:34:32.000000000 +0100
+--- src/version.c      2012-01-04 20:28:57.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     393,
+  /**/
+
+-- 
+I wonder, do vegetarians eat fruit bats?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.394.patch0 b/vim/patches/vim-7.3.394.patch0
new file mode 100644 (file)
index 0000000..20c7cff
--- /dev/null
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.394
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.394
+Problem:    When placing a mark while starting up a screen redraw messes up
+           the screen. (lith)
+Solution:   Don't redraw while still starting up. (Christian Brabandt)
+Files:     src/screen.c
+
+
+*** ../vim-7.3.393/src/screen.c        2011-09-02 14:07:31.000000000 +0200
+--- src/screen.c       2012-01-10 12:36:52.000000000 +0100
+***************
+*** 764,772 ****
+           doit = TRUE;
+      }
+  
+!     /* Return when there is nothing to do or screen updating already
+!      * happening. */
+!     if (!doit || updating_screen)
+       return;
+  
+      /* update all windows that need updating */
+--- 764,776 ----
+           doit = TRUE;
+      }
+  
+!     /* Return when there is nothing to do, screen updating is already
+!      * happening (recursive call) or still starting up. */
+!     if (!doit || updating_screen
+! #ifdef FEAT_GUI
+!          || gui.starting
+! #endif
+!          || starting)
+       return;
+  
+      /* update all windows that need updating */
+*** ../vim-7.3.393/src/version.c       2012-01-04 20:29:18.000000000 +0100
+--- src/version.c      2012-01-10 12:41:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     394,
+  /**/
+
+-- 
+It is illegal for anyone to try and stop a child from playfully jumping over
+puddles of water.
+               [real standing law in California, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.395.patch0 b/vim/patches/vim-7.3.395.patch0
new file mode 100644 (file)
index 0000000..cb26893
--- /dev/null
@@ -0,0 +1,115 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.395
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.395 (after 7.3.251)
+Problem:    "dv?bar" in the last line deletes too much and breaks undo.
+Solution:   Only adjust the cursor position when it's after the last line of
+           the buffer.  Add a test. (Christian Brabandt)
+Files:     src/ops.c, src/testdir/test43.in, src/testdir/test43.ok
+
+
+*** ../vim-7.3.394/src/ops.c   2011-09-21 17:33:49.000000000 +0200
+--- src/ops.c  2012-01-10 13:28:05.000000000 +0100
+***************
+*** 1961,1968 ****
+               /* Special case: gH<Del> deletes the last line. */
+               del_lines(1L, FALSE);
+               curwin->w_cursor = curpos;      /* restore curwin->w_cursor */
+!              if (curwin->w_cursor.lnum > 1)
+!                  --curwin->w_cursor.lnum;
+           }
+           else
+           {
+--- 1962,1969 ----
+               /* Special case: gH<Del> deletes the last line. */
+               del_lines(1L, FALSE);
+               curwin->w_cursor = curpos;      /* restore curwin->w_cursor */
+!              if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
+!                  curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
+           }
+           else
+           {
+***************
+*** 4434,4440 ****
+  #endif
+  
+  /*
+!  * implementation of the format operator 'gq'
+   */
+      void
+  op_format(oap, keep_cursor)
+--- 4435,4441 ----
+  #endif
+  
+  /*
+!  * Implementation of the format operator 'gq'.
+   */
+      void
+  op_format(oap, keep_cursor)
+*** ../vim-7.3.394/src/testdir/test43.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test43.in      2012-01-10 13:41:13.000000000 +0100
+***************
+*** 13,19 ****
+  x:set magic
+  /\v(a)(b)\2\1\1/e
+  x/\V[ab]\(\[xy]\)\1
+! x:?^1?,$w! test.out
+  :qa!
+  ENDTEST
+  
+--- 13,23 ----
+  x:set magic
+  /\v(a)(b)\2\1\1/e
+  x/\V[ab]\(\[xy]\)\1
+! x:$
+! :set undolevels=100
+! dv?bar?
+! Yup:"
+! :?^1?,$w! test.out
+  :qa!
+  ENDTEST
+  
+***************
+*** 25,27 ****
+--- 29,33 ----
+  6 x ^aa$ x
+  7 (a)(b) abbaa
+  8 axx [ab]xx
++ 9 foobar
++ 
+*** ../vim-7.3.394/src/testdir/test43.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test43.ok      2012-01-10 13:42:39.000000000 +0100
+***************
+*** 6,8 ****
+--- 6,11 ----
+  6 x aa$ x
+  7 (a)(b) abba
+  8 axx ab]xx
++ 9 foobar
++ 9 foo
++ 
+*** ../vim-7.3.394/src/version.c       2012-01-10 12:42:05.000000000 +0100
+--- src/version.c      2012-01-10 13:30:40.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     395,
+  /**/
+
+-- 
+The Law, in its majestic equality, forbids the rich, as well as the
+poor, to sleep under the bridges, to beg in the streets, and to steal
+bread.                       -- Anatole France
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.396.patch0 b/vim/patches/vim-7.3.396.patch0
new file mode 100644 (file)
index 0000000..72b55a2
--- /dev/null
@@ -0,0 +1,49 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.396
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.396
+Problem:    After forcing an operator to be characterwise it can still become
+           linewise when spanning whole lines.
+Solution:   Don't make the operator linewise when motion_force was set.
+           (Christian Brabandt)
+Files:     src/ops.c
+
+
+*** ../vim-7.3.395/src/ops.c   2012-01-10 13:44:23.000000000 +0100
+--- src/ops.c  2012-01-10 13:28:05.000000000 +0100
+***************
+*** 1648,1653 ****
+--- 1648,1654 ----
+           && !oap->block_mode
+  #endif
+           && oap->line_count > 1
++          && oap->motion_force == NUL
+           && oap->op_type == OP_DELETE)
+      {
+       ptr = ml_get(oap->end.lnum) + oap->end.col;
+*** ../vim-7.3.395/src/version.c       2012-01-10 13:44:23.000000000 +0100
+--- src/version.c      2012-01-10 13:45:31.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     396,
+  /**/
+
+-- 
+Any sufficiently advanced technology is indistinguishable from magic.
+                                       Arthur C. Clarke
+Any sufficiently advanced bug is indistinguishable from a feature.
+                                        Rich Kulawiec
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.397.patch0 b/vim/patches/vim-7.3.397.patch0
new file mode 100644 (file)
index 0000000..866b3aa
--- /dev/null
@@ -0,0 +1,224 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.397
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.397
+Problem:    ":helpgrep" does not work properly when 'encoding' is not utf-8 or
+           latin1.
+Solution:   Convert non-ascii lines to 'encoding'. (Yasuhiro Matsumoto)
+Files:     src/quickfix.c, src/spell.c, src/misc2.c, src/proto/misc2.pro
+
+
+*** ../vim-7.3.396/src/quickfix.c      2011-12-30 15:01:55.000000000 +0100
+--- src/quickfix.c     2012-01-10 16:18:51.000000000 +0100
+***************
+*** 3914,3919 ****
+--- 3914,3929 ----
+      regmatch.rm_ic = FALSE;
+      if (regmatch.regprog != NULL)
+      {
++ #ifdef FEAT_MBYTE
++      vimconv_T vc;
++ 
++      /* Help files are in utf-8 or latin1, convert lines when 'encoding'
++       * differs. */
++      vc.vc_type = CONV_NONE;
++      if (!enc_utf8)
++          convert_setup(&vc, (char_u *)"utf-8", p_enc);
++ #endif
++ 
+       /* create a new quickfix list */
+       qf_new_list(qi, *eap->cmdlinep);
+  
+***************
+*** 3948,3968 ****
+                       lnum = 1;
+                       while (!vim_fgets(IObuff, IOSIZE, fd) && !got_int)
+                       {
+!                          if (vim_regexec(&regmatch, IObuff, (colnr_T)0))
+                           {
+!                              int     l = (int)STRLEN(IObuff);
+  
+                               /* remove trailing CR, LF, spaces, etc. */
+!                              while (l > 0 && IObuff[l - 1] <= ' ')
+!                                   IObuff[--l] = NUL;
+  
+                               if (qf_add_entry(qi, &prevp,
+                                           NULL,       /* dir */
+                                           fnames[fi],
+                                           0,
+!                                          IObuff,
+                                           lnum,
+!                                          (int)(regmatch.startp[0] - IObuff)
+                                                               + 1, /* col */
+                                           FALSE,      /* vis_col */
+                                           NULL,       /* search pattern */
+--- 3958,3990 ----
+                       lnum = 1;
+                       while (!vim_fgets(IObuff, IOSIZE, fd) && !got_int)
+                       {
+!                          char_u    *line = IObuff;
+! #ifdef FEAT_MBYTE
+!                          /* Convert a line if 'encoding' is not utf-8 and
+!                           * the line contains a non-ASCII character. */
+!                          if (vc.vc_type != CONV_NONE
+!                                                 && has_non_ascii(IObuff)) {
+!                              line = string_convert(&vc, IObuff, NULL);
+!                              if (line == NULL)
+!                                  line = IObuff;
+!                          }
+! #endif
+! 
+!                          if (vim_regexec(&regmatch, line, (colnr_T)0))
+                           {
+!                              int     l = (int)STRLEN(line);
+  
+                               /* remove trailing CR, LF, spaces, etc. */
+!                              while (l > 0 && line[l - 1] <= ' ')
+!                                   line[--l] = NUL;
+  
+                               if (qf_add_entry(qi, &prevp,
+                                           NULL,       /* dir */
+                                           fnames[fi],
+                                           0,
+!                                          line,
+                                           lnum,
+!                                          (int)(regmatch.startp[0] - line)
+                                                               + 1, /* col */
+                                           FALSE,      /* vis_col */
+                                           NULL,       /* search pattern */
+***************
+*** 3972,3980 ****
+--- 3994,4010 ----
+                                           ) == FAIL)
+                               {
+                                   got_int = TRUE;
++ #ifdef FEAT_MBYTE
++                                  if (line != IObuff)
++                                      vim_free(line);
++ #endif
+                                   break;
+                               }
+                           }
++ #ifdef FEAT_MBYTE
++                          if (line != IObuff)
++                              vim_free(line);
++ #endif
+                           ++lnum;
+                           line_breakcheck();
+                       }
+***************
+*** 3984,3990 ****
+--- 4014,4025 ----
+               FreeWild(fcount, fnames);
+           }
+       }
++ 
+       vim_free(regmatch.regprog);
++ #ifdef FEAT_MBYTE
++      if (vc.vc_type != CONV_NONE)
++          convert_setup(&vc, NULL, NULL);
++ #endif
+  
+       qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
+       qi->qf_lists[qi->qf_curlist].qf_ptr =
+*** ../vim-7.3.396/src/spell.c 2011-09-02 14:18:14.000000000 +0200
+--- src/spell.c        2012-01-10 16:19:33.000000000 +0100
+***************
+*** 5020,5026 ****
+  static int str_equal __ARGS((char_u *s1, char_u      *s2));
+  static void add_fromto __ARGS((spellinfo_T *spin, garray_T *gap, char_u      *from, char_u *to));
+  static int sal_to_bool __ARGS((char_u *s));
+- static int has_non_ascii __ARGS((char_u *s));
+  static void spell_free_aff __ARGS((afffile_T *aff));
+  static int spell_read_dic __ARGS((spellinfo_T *spin, char_u *fname, afffile_T *affile));
+  static int get_affix_flags __ARGS((afffile_T *affile, char_u *afflist));
+--- 5020,5025 ----
+***************
+*** 6485,6507 ****
+  }
+  
+  /*
+-  * Return TRUE if string "s" contains a non-ASCII character (128 or higher).
+-  * When "s" is NULL FALSE is returned.
+-  */
+-     static int
+- has_non_ascii(s)
+-     char_u   *s;
+- {
+-     char_u   *p;
+- 
+-     if (s != NULL)
+-      for (p = s; *p != NUL; ++p)
+-          if (*p >= 128)
+-              return TRUE;
+-     return FALSE;
+- }
+- 
+- /*
+   * Free the structure filled by spell_read_aff().
+   */
+      static void
+--- 6484,6489 ----
+*** ../vim-7.3.396/src/misc2.c 2011-12-08 17:49:31.000000000 +0100
+--- src/misc2.c        2012-01-10 16:25:53.000000000 +0100
+***************
+*** 6541,6543 ****
+--- 6541,6563 ----
+  #endif
+  
+  #endif
++ 
++ #if (defined(FEAT_MBYTE) && defined(FEAT_QUICKFIX)) \
++      || defined(FEAT_SPELL) || defined(PROTO)
++ /*
++  * Return TRUE if string "s" contains a non-ASCII character (128 or higher).
++  * When "s" is NULL FALSE is returned.
++  */
++     int
++ has_non_ascii(s)
++     char_u   *s;
++ {
++     char_u   *p;
++ 
++     if (s != NULL)
++      for (p = s; *p != NUL; ++p)
++          if (*p >= 128)
++              return TRUE;
++     return FALSE;
++ }
++ #endif
+*** ../vim-7.3.396/src/proto/misc2.pro 2011-07-07 16:20:45.000000000 +0200
+--- src/proto/misc2.pro        2012-01-10 16:20:03.000000000 +0100
+***************
+*** 116,119 ****
+--- 116,120 ----
+  char_u *read_string __ARGS((FILE *fd, int cnt));
+  int put_bytes __ARGS((FILE *fd, long_u nr, int len));
+  void put_time __ARGS((FILE *fd, time_t the_time));
++ int has_non_ascii __ARGS((char_u *s));
+  /* vim: set ft=c : */
+*** ../vim-7.3.396/src/version.c       2012-01-10 13:46:18.000000000 +0100
+--- src/version.c      2012-01-10 16:26:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     397,
+  /**/
+
+-- 
+Biting someone with your natural teeth is "simple assault," while biting
+someone with your false teeth is "aggravated assault."
+               [real standing law in Louisana, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.398.patch0 b/vim/patches/vim-7.3.398.patch0
new file mode 100644 (file)
index 0000000..8d4b213
--- /dev/null
@@ -0,0 +1,65 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.398
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.398
+Problem:    When creating more than 10 location lists and adding items one by
+           one a previous location may be used. (Audrius Kažukauskas)
+Solution:   Clear the location list completely when adding the tenth one.
+Files:     src/quickfix.c
+
+
+*** ../vim-7.3.397/src/quickfix.c      2012-01-10 16:28:41.000000000 +0100
+--- src/quickfix.c     2012-01-10 16:58:52.000000000 +0100
+***************
+*** 899,906 ****
+      }
+      else
+       qi->qf_curlist = qi->qf_listcount++;
+!     qi->qf_lists[qi->qf_curlist].qf_index = 0;
+!     qi->qf_lists[qi->qf_curlist].qf_count = 0;
+      if (qf_title != NULL)
+      {
+       char_u *p = alloc((int)STRLEN(qf_title) + 2);
+--- 899,905 ----
+      }
+      else
+       qi->qf_curlist = qi->qf_listcount++;
+!     vim_memset(&qi->qf_lists[qi->qf_curlist], 0, (size_t)(sizeof(qf_list_T)));
+      if (qf_title != NULL)
+      {
+       char_u *p = alloc((int)STRLEN(qf_title) + 2);
+***************
+*** 909,916 ****
+       if (p != NULL)
+           sprintf((char *)p, ":%s", (char *)qf_title);
+      }
+-     else
+-      qi->qf_lists[qi->qf_curlist].qf_title = NULL;
+  }
+  
+  /*
+--- 908,913 ----
+*** ../vim-7.3.397/src/version.c       2012-01-10 16:28:41.000000000 +0100
+--- src/version.c      2012-01-10 17:13:09.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     398,
+  /**/
+
+-- 
+Why don't cannibals eat clowns?
+Because they taste funny.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.399.patch0 b/vim/patches/vim-7.3.399.patch0
new file mode 100644 (file)
index 0000000..33d0630
--- /dev/null
@@ -0,0 +1,137 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.399
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.399
+Problem:    ":cd" doesn't work when the path contains wildcards. (Yukihiro
+           Nakadaira)
+Solution:   Ignore wildcard errors when the EW_NOTWILD flag is used.
+Files:     src/misc1.c
+
+
+*** ../vim-7.3.398/src/misc1.c 2011-12-14 20:21:29.000000000 +0100
+--- src/misc1.c        2012-01-10 17:57:42.000000000 +0100
+***************
+*** 9103,9117 ****
+      }
+  
+      /* compile the regexp into a program */
+!     if (flags & EW_NOERROR)
+       ++emsg_silent;
+      regmatch.rm_ic = TRUE;           /* Always ignore case */
+      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+!     if (flags & EW_NOERROR)
+       --emsg_silent;
+      vim_free(pat);
+  
+!     if (regmatch.regprog == NULL)
+      {
+       vim_free(buf);
+       return 0;
+--- 9103,9117 ----
+      }
+  
+      /* compile the regexp into a program */
+!     if (flags & (EW_NOERROR | EW_NOTWILD))
+       ++emsg_silent;
+      regmatch.rm_ic = TRUE;           /* Always ignore case */
+      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+!     if (flags & (EW_NOERROR | EW_NOTWILD))
+       --emsg_silent;
+      vim_free(pat);
+  
+!     if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
+      {
+       vim_free(buf);
+       return 0;
+***************
+*** 9179,9185 ****
+        * all entries found with "matchname". */
+       if ((p[0] != '.' || starts_with_dot)
+               && (matchname == NULL
+!                || vim_regexec(&regmatch, p, (colnr_T)0)
+                 || ((flags & EW_NOTWILD)
+                    && fnamencmp(path + (s - buf), p, e - s) == 0)))
+       {
+--- 9179,9186 ----
+        * all entries found with "matchname". */
+       if ((p[0] != '.' || starts_with_dot)
+               && (matchname == NULL
+!                || (regmatch.regprog != NULL
+!                                   && vim_regexec(&regmatch, p, (colnr_T)0))
+                 || ((flags & EW_NOTWILD)
+                    && fnamencmp(path + (s - buf), p, e - s) == 0)))
+       {
+***************
+*** 9419,9428 ****
+      else
+       regmatch.rm_ic = FALSE;         /* Don't ignore case */
+  #endif
+      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+      vim_free(pat);
+  
+!     if (regmatch.regprog == NULL)
+      {
+       vim_free(buf);
+       return 0;
+--- 9420,9433 ----
+      else
+       regmatch.rm_ic = FALSE;         /* Don't ignore case */
+  #endif
++     if (flags & (EW_NOERROR | EW_NOTWILD))
++      ++emsg_silent;
+      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
++     if (flags & (EW_NOERROR | EW_NOTWILD))
++      --emsg_silent;
+      vim_free(pat);
+  
+!     if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
+      {
+       vim_free(buf);
+       return 0;
+***************
+*** 9452,9458 ****
+           if (dp == NULL)
+               break;
+           if ((dp->d_name[0] != '.' || starts_with_dot)
+!               && (vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0)
+                  || ((flags & EW_NOTWILD)
+                    && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
+           {
+--- 9457,9464 ----
+           if (dp == NULL)
+               break;
+           if ((dp->d_name[0] != '.' || starts_with_dot)
+!               && ((regmatch.regprog != NULL && vim_regexec(&regmatch,
+!                                           (char_u *)dp->d_name, (colnr_T)0))
+                  || ((flags & EW_NOTWILD)
+                    && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
+           {
+*** ../vim-7.3.398/src/version.c       2012-01-10 17:13:48.000000000 +0100
+--- src/version.c      2012-01-10 18:21:05.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     399,
+  /**/
+
+-- 
+Close your shells, or I'll kill -9 you
+Tomorrow I'll quota you
+Remember the disks'll always be full
+And then while I'm away
+I'll write ~ everyday
+And I'll send-pr all my buggings to you.
+    [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.400.patch0 b/vim/patches/vim-7.3.400.patch0
new file mode 100644 (file)
index 0000000..c621a88
--- /dev/null
@@ -0,0 +1,1762 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.400
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.400
+Problem:    Compiler warnings for shadowed variables.
+Solution:   Remove or rename the variables.
+Files:     src/charset.c, src/digraph.c, src/edit.c, src/eval.c, src/fold.c,
+           src/getchar.c, src/message.c, src/misc2.c, src/move.c,
+           src/netbeans.c, src/option.c, src/os_unix.c, src/screen.c,
+           src/search.c, src/spell.c, src/syntax.c, src/tag.c, src/window.c
+
+
+*** ../vim-7.3.399/src/charset.c       2010-08-15 21:57:25.000000000 +0200
+--- src/charset.c      2012-01-10 21:55:50.000000000 +0100
+***************
+*** 463,503 ****
+           if (enc_utf8)
+           {
+               int     c = utf_ptr2char(STR_PTR(i));
+!              int     ol = utf_ptr2len(STR_PTR(i));
+               int     lc = utf_tolower(c);
+  
+               /* Only replace the character when it is not an invalid
+                * sequence (ASCII character or more than one byte) and
+                * utf_tolower() doesn't return the original character. */
+!              if ((c < 0x80 || ol > 1) && c != lc)
+               {
+!                  int     nl = utf_char2len(lc);
+  
+                   /* If the byte length changes need to shift the following
+                    * characters forward or backward. */
+!                  if (ol != nl)
+                   {
+!                      if (nl > ol)
+                       {
+!                          if (buf == NULL ? ga_grow(&ga, nl - ol + 1) == FAIL
+!                                                  : len + nl - ol >= buflen)
+                           {
+                               /* out of memory, keep old char */
+                               lc = c;
+!                              nl = ol;
+                           }
+                       }
+!                      if (ol != nl)
+                       {
+                           if (buf == NULL)
+                           {
+!                              STRMOVE(GA_PTR(i) + nl, GA_PTR(i) + ol);
+!                              ga.ga_len += nl - ol;
+                           }
+                           else
+                           {
+!                              STRMOVE(buf + i + nl, buf + i + ol);
+!                              len += nl - ol;
+                           }
+                       }
+                   }
+--- 463,504 ----
+           if (enc_utf8)
+           {
+               int     c = utf_ptr2char(STR_PTR(i));
+!              int     olen = utf_ptr2len(STR_PTR(i));
+               int     lc = utf_tolower(c);
+  
+               /* Only replace the character when it is not an invalid
+                * sequence (ASCII character or more than one byte) and
+                * utf_tolower() doesn't return the original character. */
+!              if ((c < 0x80 || olen > 1) && c != lc)
+               {
+!                  int     nlen = utf_char2len(lc);
+  
+                   /* If the byte length changes need to shift the following
+                    * characters forward or backward. */
+!                  if (olen != nlen)
+                   {
+!                      if (nlen > olen)
+                       {
+!                          if (buf == NULL
+!                                  ? ga_grow(&ga, nlen - olen + 1) == FAIL
+!                                  : len + nlen - olen >= buflen)
+                           {
+                               /* out of memory, keep old char */
+                               lc = c;
+!                              nlen = olen;
+                           }
+                       }
+!                      if (olen != nlen)
+                       {
+                           if (buf == NULL)
+                           {
+!                              STRMOVE(GA_PTR(i) + nlen, GA_PTR(i) + olen);
+!                              ga.ga_len += nlen - olen;
+                           }
+                           else
+                           {
+!                              STRMOVE(buf + i + nlen, buf + i + olen);
+!                              len += nlen - olen;
+                           }
+                       }
+                   }
+*** ../vim-7.3.399/src/digraph.c       2010-08-15 21:57:28.000000000 +0200
+--- src/digraph.c      2012-01-10 21:57:16.000000000 +0100
+***************
+*** 2080,2092 ****
+  /*
+   * Lookup the pair "char1", "char2" in the digraph tables.
+   * If no match, return "char2".
+!  * If "meta" is TRUE and "char1" is a space, return "char2" | 0x80.
+   */
+      static int
+! getexactdigraph(char1, char2, meta)
+      int              char1;
+      int              char2;
+!     int              meta;
+  {
+      int              i;
+      int              retval = 0;
+--- 2080,2092 ----
+  /*
+   * Lookup the pair "char1", "char2" in the digraph tables.
+   * If no match, return "char2".
+!  * If "meta_char" is TRUE and "char1" is a space, return "char2" | 0x80.
+   */
+      static int
+! getexactdigraph(char1, char2, meta_char)
+      int              char1;
+      int              char2;
+!     int              meta_char;
+  {
+      int              i;
+      int              retval = 0;
+***************
+*** 2159,2165 ****
+  
+      if (retval == 0)         /* digraph deleted or not found */
+      {
+!      if (char1 == ' ' && meta)       /* <space> <char> --> meta-char */
+           return (char2 | 0x80);
+       return char2;
+      }
+--- 2159,2165 ----
+  
+      if (retval == 0)         /* digraph deleted or not found */
+      {
+!      if (char1 == ' ' && meta_char)  /* <space> <char> --> meta-char */
+           return (char2 | 0x80);
+       return char2;
+      }
+***************
+*** 2171,2186 ****
+   * Allow for both char1-char2 and char2-char1
+   */
+      int
+! getdigraph(char1, char2, meta)
+      int      char1;
+      int      char2;
+!     int      meta;
+  {
+      int          retval;
+  
+!     if (((retval = getexactdigraph(char1, char2, meta)) == char2)
+           && (char1 != char2)
+!          && ((retval = getexactdigraph(char2, char1, meta)) == char1))
+       return char2;
+      return retval;
+  }
+--- 2171,2186 ----
+   * Allow for both char1-char2 and char2-char1
+   */
+      int
+! getdigraph(char1, char2, meta_char)
+      int      char1;
+      int      char2;
+!     int      meta_char;
+  {
+      int          retval;
+  
+!     if (((retval = getexactdigraph(char1, char2, meta_char)) == char2)
+           && (char1 != char2)
+!          && ((retval = getexactdigraph(char2, char1, meta_char)) == char1))
+       return char2;
+      return retval;
+  }
+*** ../vim-7.3.399/src/edit.c  2011-12-23 13:14:58.000000000 +0100
+--- src/edit.c 2012-01-10 21:58:28.000000000 +0100
+***************
+*** 4003,4026 ****
+  ins_compl_add_dict(dict)
+      dict_T   *dict;
+  {
+!     dictitem_T       *refresh;
+!     dictitem_T       *words;
+  
+      /* Check for optional "refresh" item. */
+      compl_opt_refresh_always = FALSE;
+!     refresh = dict_find(dict, (char_u *)"refresh", 7);
+!     if (refresh != NULL && refresh->di_tv.v_type == VAR_STRING)
+      {
+!      char_u  *v = refresh->di_tv.vval.v_string;
+  
+       if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
+           compl_opt_refresh_always = TRUE;
+      }
+  
+      /* Add completions from a "words" list. */
+!     words = dict_find(dict, (char_u *)"words", 5);
+!     if (words != NULL && words->di_tv.v_type == VAR_LIST)
+!      ins_compl_add_list(words->di_tv.vval.v_list);
+  }
+  
+  /*
+--- 4003,4026 ----
+  ins_compl_add_dict(dict)
+      dict_T   *dict;
+  {
+!     dictitem_T       *di_refresh;
+!     dictitem_T       *di_words;
+  
+      /* Check for optional "refresh" item. */
+      compl_opt_refresh_always = FALSE;
+!     di_refresh = dict_find(dict, (char_u *)"refresh", 7);
+!     if (di_refresh != NULL && di_refresh->di_tv.v_type == VAR_STRING)
+      {
+!      char_u  *v = di_refresh->di_tv.vval.v_string;
+  
+       if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
+           compl_opt_refresh_always = TRUE;
+      }
+  
+      /* Add completions from a "words" list. */
+!     di_words = dict_find(dict, (char_u *)"words", 5);
+!     if (di_words != NULL && di_words->di_tv.v_type == VAR_LIST)
+!      ins_compl_add_list(di_words->di_tv.vval.v_list);
+  }
+  
+  /*
+*** ../vim-7.3.399/src/eval.c  2012-01-04 14:35:31.000000000 +0100
+--- src/eval.c 2012-01-10 22:00:50.000000000 +0100
+***************
+*** 6573,6587 ****
+  
+  /*
+   * Join list "l" into a string in "*gap", using separator "sep".
+!  * When "echo" is TRUE use String as echoed, otherwise as inside a List.
+   * Return FAIL or OK.
+   */
+      static int
+! list_join(gap, l, sep, echo, copyID)
+      garray_T *gap;
+      list_T   *l;
+      char_u   *sep;
+!     int              echo;
+      int              copyID;
+  {
+      int              first = TRUE;
+--- 6573,6587 ----
+  
+  /*
+   * Join list "l" into a string in "*gap", using separator "sep".
+!  * When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
+   * Return FAIL or OK.
+   */
+      static int
+! list_join(gap, l, sep, echo_style, copyID)
+      garray_T *gap;
+      list_T   *l;
+      char_u   *sep;
+!     int              echo_style;
+      int              copyID;
+  {
+      int              first = TRUE;
+***************
+*** 6597,6603 ****
+       else
+           ga_concat(gap, sep);
+  
+!      if (echo)
+           s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+       else
+           s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+--- 6597,6603 ----
+       else
+           ga_concat(gap, sep);
+  
+!      if (echo_style)
+           s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+       else
+           s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+***************
+*** 17893,17899 ****
+      typval_T *argvars;
+      typval_T *rettv;
+  {
+!     char_u   *instr;
+      char_u   *fromstr;
+      char_u   *tostr;
+      char_u   *p;
+--- 17893,17899 ----
+      typval_T *argvars;
+      typval_T *rettv;
+  {
+!     char_u   *in_str;
+      char_u   *fromstr;
+      char_u   *tostr;
+      char_u   *p;
+***************
+*** 17910,17916 ****
+      char_u   buf2[NUMBUFLEN];
+      garray_T ga;
+  
+!     instr = get_tv_string(&argvars[0]);
+      fromstr = get_tv_string_buf_chk(&argvars[1], buf);
+      tostr = get_tv_string_buf_chk(&argvars[2], buf2);
+  
+--- 17910,17916 ----
+      char_u   buf2[NUMBUFLEN];
+      garray_T ga;
+  
+!     in_str = get_tv_string(&argvars[0]);
+      fromstr = get_tv_string_buf_chk(&argvars[1], buf);
+      tostr = get_tv_string_buf_chk(&argvars[2], buf2);
+  
+***************
+*** 17936,17954 ****
+       }
+  
+      /* fromstr and tostr have to contain the same number of chars */
+!     while (*instr != NUL)
+      {
+  #ifdef FEAT_MBYTE
+       if (has_mbyte)
+       {
+!          inlen = (*mb_ptr2len)(instr);
+!          cpstr = instr;
+           cplen = inlen;
+           idx = 0;
+           for (p = fromstr; *p != NUL; p += fromlen)
+           {
+               fromlen = (*mb_ptr2len)(p);
+!              if (fromlen == inlen && STRNCMP(instr, p, inlen) == 0)
+               {
+                   for (p = tostr; *p != NUL; p += tolen)
+                   {
+--- 17936,17954 ----
+       }
+  
+      /* fromstr and tostr have to contain the same number of chars */
+!     while (*in_str != NUL)
+      {
+  #ifdef FEAT_MBYTE
+       if (has_mbyte)
+       {
+!          inlen = (*mb_ptr2len)(in_str);
+!          cpstr = in_str;
+           cplen = inlen;
+           idx = 0;
+           for (p = fromstr; *p != NUL; p += fromlen)
+           {
+               fromlen = (*mb_ptr2len)(p);
+!              if (fromlen == inlen && STRNCMP(in_str, p, inlen) == 0)
+               {
+                   for (p = tostr; *p != NUL; p += tolen)
+                   {
+***************
+*** 17967,17977 ****
+               ++idx;
+           }
+  
+!          if (first && cpstr == instr)
+           {
+               /* Check that fromstr and tostr have the same number of
+                * (multi-byte) characters.  Done only once when a character
+!               * of instr doesn't appear in fromstr. */
+               first = FALSE;
+               for (p = tostr; *p != NUL; p += tolen)
+               {
+--- 17967,17977 ----
+               ++idx;
+           }
+  
+!          if (first && cpstr == in_str)
+           {
+               /* Check that fromstr and tostr have the same number of
+                * (multi-byte) characters.  Done only once when a character
+!               * of in_str doesn't appear in fromstr. */
+               first = FALSE;
+               for (p = tostr; *p != NUL; p += tolen)
+               {
+***************
+*** 17986,18003 ****
+           mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen);
+           ga.ga_len += cplen;
+  
+!          instr += inlen;
+       }
+       else
+  #endif
+       {
+           /* When not using multi-byte chars we can do it faster. */
+!          p = vim_strchr(fromstr, *instr);
+           if (p != NULL)
+               ga_append(&ga, tostr[p - fromstr]);
+           else
+!              ga_append(&ga, *instr);
+!          ++instr;
+       }
+      }
+  
+--- 17986,18003 ----
+           mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen);
+           ga.ga_len += cplen;
+  
+!          in_str += inlen;
+       }
+       else
+  #endif
+       {
+           /* When not using multi-byte chars we can do it faster. */
+!          p = vim_strchr(fromstr, *in_str);
+           if (p != NULL)
+               ga_append(&ga, tostr[p - fromstr]);
+           else
+!              ga_append(&ga, *in_str);
+!          ++in_str;
+       }
+      }
+  
+*** ../vim-7.3.399/src/fold.c  2011-08-26 16:12:55.000000000 +0200
+--- src/fold.c 2012-01-10 22:01:26.000000000 +0100
+***************
+*** 1033,1042 ****
+   * Init the fold info in a new window.
+   */
+      void
+! foldInitWin(newwin)
+!     win_T    *newwin;
+  {
+!     ga_init2(&newwin->w_folds, (int)sizeof(fold_T), 10);
+  }
+  
+  /* find_wl_entry() {{{2 */
+--- 1033,1042 ----
+   * Init the fold info in a new window.
+   */
+      void
+! foldInitWin(new_win)
+!     win_T    *new_win;
+  {
+!     ga_init2(&new_win->w_folds, (int)sizeof(fold_T), 10);
+  }
+  
+  /* find_wl_entry() {{{2 */
+*** ../vim-7.3.399/src/getchar.c       2011-12-23 14:54:01.000000000 +0100
+--- src/getchar.c      2012-01-10 22:02:30.000000000 +0100
+***************
+*** 418,429 ****
+  
+  /*
+   * Remove the contents of the stuff buffer and the mapped characters in the
+!  * typeahead buffer (used in case of an error).  If 'typeahead' is true,
+   * flush all typeahead characters (used when interrupted by a CTRL-C).
+   */
+      void
+! flush_buffers(typeahead)
+!     int typeahead;
+  {
+      init_typebuf();
+  
+--- 418,429 ----
+  
+  /*
+   * Remove the contents of the stuff buffer and the mapped characters in the
+!  * typeahead buffer (used in case of an error).  If "flush_typeahead" is true,
+   * flush all typeahead characters (used when interrupted by a CTRL-C).
+   */
+      void
+! flush_buffers(flush_typeahead)
+!     int flush_typeahead;
+  {
+      init_typebuf();
+  
+***************
+*** 431,437 ****
+      while (read_stuff(TRUE) != NUL)
+       ;
+  
+!     if (typeahead)       /* remove all typeahead */
+      {
+       /*
+        * We have to get all characters, because we may delete the first part
+--- 431,437 ----
+      while (read_stuff(TRUE) != NUL)
+       ;
+  
+!     if (flush_typeahead)         /* remove all typeahead */
+      {
+       /*
+        * We have to get all characters, because we may delete the first part
+*** ../vim-7.3.399/src/message.c       2011-12-30 14:14:16.000000000 +0100
+--- src/message.c      2012-01-10 22:03:56.000000000 +0100
+***************
+*** 2487,2493 ****
+  #ifdef FEAT_CON_DIALOG
+      int              retval = FALSE;
+  #endif
+!     int              scroll;
+      msgchunk_T       *mp_last = NULL;
+      msgchunk_T       *mp;
+      int              i;
+--- 2487,2493 ----
+  #ifdef FEAT_CON_DIALOG
+      int              retval = FALSE;
+  #endif
+!     int              toscroll;
+      msgchunk_T       *mp_last = NULL;
+      msgchunk_T       *mp;
+      int              i;
+***************
+*** 2538,2586 ****
+       }
+  #endif
+  
+!      scroll = 0;
+       switch (c)
+       {
+       case BS:                /* scroll one line back */
+       case K_BS:
+       case 'k':
+       case K_UP:
+!          scroll = -1;
+           break;
+  
+       case CAR:               /* one extra line */
+       case NL:
+       case 'j':
+       case K_DOWN:
+!          scroll = 1;
+           break;
+  
+       case 'u':               /* Up half a page */
+!          scroll = -(Rows / 2);
+           break;
+  
+       case 'd':               /* Down half a page */
+!          scroll = Rows / 2;
+           break;
+  
+       case 'b':               /* one page back */
+       case K_PAGEUP:
+!          scroll = -(Rows - 1);
+           break;
+  
+       case ' ':               /* one extra page */
+       case 'f':
+       case K_PAGEDOWN:
+       case K_LEFTMOUSE:
+!          scroll = Rows - 1;
+           break;
+  
+       case 'g':               /* all the way back to the start */
+!          scroll = -999999;
+           break;
+  
+       case 'G':               /* all the way to the end */
+!          scroll = 999999;
+           lines_left = 999999;
+           break;
+  
+--- 2538,2586 ----
+       }
+  #endif
+  
+!      toscroll = 0;
+       switch (c)
+       {
+       case BS:                /* scroll one line back */
+       case K_BS:
+       case 'k':
+       case K_UP:
+!          toscroll = -1;
+           break;
+  
+       case CAR:               /* one extra line */
+       case NL:
+       case 'j':
+       case K_DOWN:
+!          toscroll = 1;
+           break;
+  
+       case 'u':               /* Up half a page */
+!          toscroll = -(Rows / 2);
+           break;
+  
+       case 'd':               /* Down half a page */
+!          toscroll = Rows / 2;
+           break;
+  
+       case 'b':               /* one page back */
+       case K_PAGEUP:
+!          toscroll = -(Rows - 1);
+           break;
+  
+       case ' ':               /* one extra page */
+       case 'f':
+       case K_PAGEDOWN:
+       case K_LEFTMOUSE:
+!          toscroll = Rows - 1;
+           break;
+  
+       case 'g':               /* all the way back to the start */
+!          toscroll = -999999;
+           break;
+  
+       case 'G':               /* all the way to the end */
+!          toscroll = 999999;
+           lines_left = 999999;
+           break;
+  
+***************
+*** 2633,2641 ****
+           continue;
+       }
+  
+!      if (scroll != 0)
+       {
+!          if (scroll < 0)
+           {
+               /* go to start of last line */
+               if (mp_last == NULL)
+--- 2633,2641 ----
+           continue;
+       }
+  
+!      if (toscroll != 0)
+       {
+!          if (toscroll < 0)
+           {
+               /* go to start of last line */
+               if (mp_last == NULL)
+***************
+*** 2653,2659 ****
+               if (mp != NULL && mp->sb_prev != NULL)
+               {
+                   /* Find line to be displayed at top. */
+!                  for (i = 0; i > scroll; --i)
+                   {
+                       if (mp == NULL || mp->sb_prev == NULL)
+                           break;
+--- 2653,2659 ----
+               if (mp != NULL && mp->sb_prev != NULL)
+               {
+                   /* Find line to be displayed at top. */
+!                  for (i = 0; i > toscroll; --i)
+                   {
+                       if (mp == NULL || mp->sb_prev == NULL)
+                           break;
+***************
+*** 2664,2670 ****
+                           mp_last = msg_sb_start(mp_last->sb_prev);
+                   }
+  
+!                  if (scroll == -1 && screen_ins_lines(0, 0, 1,
+                                                      (int)Rows, NULL) == OK)
+                   {
+                       /* display line at top */
+--- 2664,2670 ----
+                           mp_last = msg_sb_start(mp_last->sb_prev);
+                   }
+  
+!                  if (toscroll == -1 && screen_ins_lines(0, 0, 1,
+                                                      (int)Rows, NULL) == OK)
+                   {
+                       /* display line at top */
+***************
+*** 2680,2692 ****
+                           ++msg_scrolled;
+                       }
+                   }
+!                  scroll = 0;
+               }
+           }
+           else
+           {
+               /* First display any text that we scrolled back. */
+!              while (scroll > 0 && mp_last != NULL)
+               {
+                   /* scroll up, display line at bottom */
+                   msg_scroll_up();
+--- 2680,2692 ----
+                           ++msg_scrolled;
+                       }
+                   }
+!                  toscroll = 0;
+               }
+           }
+           else
+           {
+               /* First display any text that we scrolled back. */
+!              while (toscroll > 0 && mp_last != NULL)
+               {
+                   /* scroll up, display line at bottom */
+                   msg_scroll_up();
+***************
+*** 2694,2704 ****
+                   screen_fill((int)Rows - 2, (int)Rows - 1, 0,
+                                                  (int)Columns, ' ', ' ', 0);
+                   mp_last = disp_sb_line((int)Rows - 2, mp_last);
+!                  --scroll;
+               }
+           }
+  
+!          if (scroll <= 0)
+           {
+               /* displayed the requested text, more prompt again */
+               screen_fill((int)Rows - 1, (int)Rows, 0,
+--- 2694,2704 ----
+                   screen_fill((int)Rows - 2, (int)Rows - 1, 0,
+                                                  (int)Columns, ' ', ' ', 0);
+                   mp_last = disp_sb_line((int)Rows - 2, mp_last);
+!                  --toscroll;
+               }
+           }
+  
+!          if (toscroll <= 0)
+           {
+               /* displayed the requested text, more prompt again */
+               screen_fill((int)Rows - 1, (int)Rows, 0,
+***************
+*** 2708,2714 ****
+           }
+  
+           /* display more text, return to caller */
+!          lines_left = scroll;
+       }
+  
+       break;
+--- 2708,2714 ----
+           }
+  
+           /* display more text, return to caller */
+!          lines_left = toscroll;
+       }
+  
+       break;
+*** ../vim-7.3.399/src/misc2.c 2012-01-10 16:28:41.000000000 +0100
+--- src/misc2.c        2012-01-10 22:04:25.000000000 +0100
+***************
+*** 1559,1565 ****
+           if (enc_utf8)
+           {
+               int     c, uc;
+!              int     nl;
+               char_u  *s;
+  
+               c = utf_ptr2char(p);
+--- 1559,1565 ----
+           if (enc_utf8)
+           {
+               int     c, uc;
+!              int     newl;
+               char_u  *s;
+  
+               c = utf_ptr2char(p);
+***************
+*** 1568,1588 ****
+               /* Reallocate string when byte count changes.  This is rare,
+                * thus it's OK to do another malloc()/free(). */
+               l = utf_ptr2len(p);
+!              nl = utf_char2len(uc);
+!              if (nl != l)
+               {
+!                  s = alloc((unsigned)STRLEN(res) + 1 + nl - l);
+                   if (s == NULL)
+                       break;
+                   mch_memmove(s, res, p - res);
+!                  STRCPY(s + (p - res) + nl, p + l);
+                   p = s + (p - res);
+                   vim_free(res);
+                   res = s;
+               }
+  
+               utf_char2bytes(uc, p);
+!              p += nl;
+           }
+           else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1)
+               p += l;         /* skip multi-byte character */
+--- 1568,1588 ----
+               /* Reallocate string when byte count changes.  This is rare,
+                * thus it's OK to do another malloc()/free(). */
+               l = utf_ptr2len(p);
+!              newl = utf_char2len(uc);
+!              if (newl != l)
+               {
+!                  s = alloc((unsigned)STRLEN(res) + 1 + newl - l);
+                   if (s == NULL)
+                       break;
+                   mch_memmove(s, res, p - res);
+!                  STRCPY(s + (p - res) + newl, p + l);
+                   p = s + (p - res);
+                   vim_free(res);
+                   res = s;
+               }
+  
+               utf_char2bytes(uc, p);
+!              p += newl;
+           }
+           else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1)
+               p += l;         /* skip multi-byte character */
+*** ../vim-7.3.399/src/move.c  2011-02-01 18:01:06.000000000 +0100
+--- src/move.c 2012-01-10 22:05:22.000000000 +0100
+***************
+*** 926,933 ****
+   * Also updates curwin->w_leftcol.
+   */
+      void
+! curs_columns(scroll)
+!     int              scroll;         /* when TRUE, may scroll horizontally */
+  {
+      int              diff;
+      int              extra;          /* offset for first screen line */
+--- 926,933 ----
+   * Also updates curwin->w_leftcol.
+   */
+      void
+! curs_columns(may_scroll)
+!     int              may_scroll;     /* when TRUE, may scroll horizontally */
+  {
+      int              diff;
+      int              extra;          /* offset for first screen line */
+***************
+*** 1014,1020 ****
+      /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line
+       * is not folded.
+       * If scrolling is off, curwin->w_leftcol is assumed to be 0 */
+!     else if (scroll
+  #ifdef FEAT_FOLDING
+           && !curwin->w_cline_folded
+  #endif
+--- 1014,1020 ----
+      /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line
+       * is not folded.
+       * If scrolling is off, curwin->w_leftcol is assumed to be 0 */
+!     else if (may_scroll
+  #ifdef FEAT_FOLDING
+           && !curwin->w_cline_folded
+  #endif
+*** ../vim-7.3.399/src/netbeans.c      2011-10-20 21:58:20.000000000 +0200
+--- src/netbeans.c     2012-01-10 22:16:26.000000000 +0100
+***************
+*** 1395,1401 ****
+      int              cmdno,
+      char_u   *args)      /* points to space before arguments or NUL */
+  {
+!     int              doupdate = 0;
+      long     off = 0;
+      nbbuf_T  *buf = nb_get_buf(bufno);
+      static int       skip = 0;
+--- 1395,1401 ----
+      int              cmdno,
+      char_u   *args)      /* points to space before arguments or NUL */
+  {
+!     int              do_update = 0;
+      long     off = 0;
+      nbbuf_T  *buf = nb_get_buf(bufno);
+      static int       skip = 0;
+***************
+*** 1600,1606 ****
+                                                       last.lnum, last.col));
+               del_from_lnum = first.lnum;
+               del_to_lnum = last.lnum;
+!              doupdate = 1;
+  
+               /* Get the position of the first byte after the deleted
+                * section.  "next" is NULL when deleting to the end of the
+--- 1600,1606 ----
+                                                       last.lnum, last.col));
+               del_from_lnum = first.lnum;
+               del_to_lnum = last.lnum;
+!              do_update = 1;
+  
+               /* Get the position of the first byte after the deleted
+                * section.  "next" is NULL when deleting to the end of the
+***************
+*** 1777,1783 ****
+               lnum = lnum_start;
+  
+               /* Loop over the "\n" separated lines of the argument. */
+!              doupdate = 1;
+               while (*args != NUL)
+               {
+                   nl = vim_strchr(args, '\n');
+--- 1777,1783 ----
+               lnum = lnum_start;
+  
+               /* Loop over the "\n" separated lines of the argument. */
+!              do_update = 1;
+               while (*args != NUL)
+               {
+                   nl = vim_strchr(args, '\n');
+***************
+*** 1992,1998 ****
+               EMSG("E640: invalid buffer identifier in initDone");
+               return FAIL;
+           }
+!          doupdate = 1;
+           buf->initDone = TRUE;
+           nb_set_curbuf(buf->bufp);
+  #if defined(FEAT_AUTOCMD)
+--- 1992,1998 ----
+               EMSG("E640: invalid buffer identifier in initDone");
+               return FAIL;
+           }
+!          do_update = 1;
+           buf->initDone = TRUE;
+           nb_set_curbuf(buf->bufp);
+  #if defined(FEAT_AUTOCMD)
+***************
+*** 2081,2087 ****
+                                            ECMD_HIDE + ECMD_OLDBUF, curwin);
+           buf->bufp = curbuf;
+           buf->initDone = TRUE;
+!          doupdate = 1;
+  #if defined(FEAT_TITLE)
+           maketitle();
+  #endif
+--- 2081,2087 ----
+                                            ECMD_HIDE + ECMD_OLDBUF, curwin);
+           buf->bufp = curbuf;
+           buf->initDone = TRUE;
+!          do_update = 1;
+  #if defined(FEAT_TITLE)
+           maketitle();
+  #endif
+***************
+*** 2109,2115 ****
+               exarg.forceit = FALSE;
+               dosetvisible = TRUE;
+               goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
+!              doupdate = 1;
+               dosetvisible = FALSE;
+  
+  #ifdef FEAT_GUI
+--- 2109,2115 ----
+               exarg.forceit = FALSE;
+               dosetvisible = TRUE;
+               goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
+!              do_update = 1;
+               dosetvisible = FALSE;
+  
+  #ifdef FEAT_GUI
+***************
+*** 2309,2315 ****
+                                                    buf->bufp->b_fnum, TRUE);
+           buf->bufp = NULL;
+           buf->initDone = FALSE;
+!          doupdate = 1;
+  /* =====================================================================*/
+       }
+       else if (streq((char *)cmd, "setStyle")) /* obsolete... */
+--- 2309,2315 ----
+                                                    buf->bufp->b_fnum, TRUE);
+           buf->bufp = NULL;
+           buf->initDone = FALSE;
+!          do_update = 1;
+  /* =====================================================================*/
+       }
+       else if (streq((char *)cmd, "setStyle")) /* obsolete... */
+***************
+*** 2400,2406 ****
+               return FAIL;
+           }
+  
+!          doupdate = 1;
+  
+           cp = (char *)args;
+           serNum = strtol(cp, &cp, 10);
+--- 2400,2406 ----
+               return FAIL;
+           }
+  
+!          do_update = 1;
+  
+           cp = (char *)args;
+           serNum = strtol(cp, &cp, 10);
+***************
+*** 2448,2454 ****
+               nbdebug(("    invalid buffer identifier in removeAnno\n"));
+               return FAIL;
+           }
+!          doupdate = 1;
+           cp = (char *)args;
+           serNum = strtol(cp, &cp, 10);
+           args = (char_u *)cp;
+--- 2448,2454 ----
+               nbdebug(("    invalid buffer identifier in removeAnno\n"));
+               return FAIL;
+           }
+!          do_update = 1;
+           cp = (char *)args;
+           serNum = strtol(cp, &cp, 10);
+           args = (char_u *)cp;
+***************
+*** 2493,2499 ****
+           len = strtol(cp, NULL, 10);
+           args = (char_u *)cp;
+           pos = off2pos(buf->bufp, off);
+!          doupdate = 1;
+           if (!pos)
+               nbdebug(("    no such start pos in %s, %ld\n", cmd, off));
+           else
+--- 2493,2499 ----
+           len = strtol(cp, NULL, 10);
+           args = (char_u *)cp;
+           pos = off2pos(buf->bufp, off);
+!          do_update = 1;
+           if (!pos)
+               nbdebug(("    no such start pos in %s, %ld\n", cmd, off));
+           else
+***************
+*** 2555,2561 ****
+           inAtomic = 0;
+           if (needupdate)
+           {
+!              doupdate = 1;
+               needupdate = 0;
+           }
+  /* =====================================================================*/
+--- 2555,2561 ----
+           inAtomic = 0;
+           if (needupdate)
+           {
+!              do_update = 1;
+               needupdate = 0;
+           }
+  /* =====================================================================*/
+***************
+*** 2636,2653 ****
+        * Unrecognized command is ignored.
+        */
+      }
+!     if (inAtomic && doupdate)
+      {
+       needupdate = 1;
+!      doupdate = 0;
+      }
+  
+      /*
+       * Is this needed? I moved the netbeans_Xt_connect() later during startup
+       * and it may no longer be necessary. If its not needed then needupdate
+!      * and doupdate can also be removed.
+       */
+!     if (buf != NULL && buf->initDone && doupdate)
+      {
+       update_screen(NOT_VALID);
+       setcursor();
+--- 2636,2653 ----
+        * Unrecognized command is ignored.
+        */
+      }
+!     if (inAtomic && do_update)
+      {
+       needupdate = 1;
+!      do_update = 0;
+      }
+  
+      /*
+       * Is this needed? I moved the netbeans_Xt_connect() later during startup
+       * and it may no longer be necessary. If its not needed then needupdate
+!      * and do_update can also be removed.
+       */
+!     if (buf != NULL && buf->initDone && do_update)
+      {
+       update_screen(NOT_VALID);
+       setcursor();
+*** ../vim-7.3.399/src/option.c        2012-01-04 19:34:32.000000000 +0100
+--- src/option.c       2012-01-10 22:06:03.000000000 +0100
+***************
+*** 8584,8591 ****
+      long_u   flags;
+  {
+      /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */
+!     int              clear = (flags & P_RCLR) == P_RCLR;
+!     int              all = ((flags & P_RALL) == P_RALL || clear);
+  
+  #ifdef FEAT_WINDOWS
+      if ((flags & P_RSTAT) || all)    /* mark all status lines dirty */
+--- 8584,8591 ----
+      long_u   flags;
+  {
+      /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */
+!     int              doclear = (flags & P_RCLR) == P_RCLR;
+!     int              all = ((flags & P_RALL) == P_RALL || doclear);
+  
+  #ifdef FEAT_WINDOWS
+      if ((flags & P_RSTAT) || all)    /* mark all status lines dirty */
+***************
+*** 8596,8602 ****
+       changed_window_setting();
+      if (flags & P_RBUF)
+       redraw_curbuf_later(NOT_VALID);
+!     if (clear)
+       redraw_all_later(CLEAR);
+      else if (all)
+       redraw_all_later(NOT_VALID);
+--- 8596,8602 ----
+       changed_window_setting();
+      if (flags & P_RBUF)
+       redraw_curbuf_later(NOT_VALID);
+!     if (doclear)
+       redraw_all_later(CLEAR);
+      else if (all)
+       redraw_all_later(NOT_VALID);
+*** ../vim-7.3.399/src/os_unix.c       2011-10-20 21:09:25.000000000 +0200
+--- src/os_unix.c      2012-01-10 21:48:49.000000000 +0100
+***************
+*** 3884,3890 ****
+      char_u   *p_shcf_copy = NULL;
+      int              i;
+      char_u   *p;
+-     char_u   *s;
+      int              inquote;
+      int              pty_master_fd = -1;         /* for pty's */
+  # ifdef FEAT_GUI
+--- 3884,3889 ----
+***************
+*** 3963,3968 ****
+--- 3962,3969 ----
+      }
+      if (cmd != NULL)
+      {
++      char_u  *s;
++ 
+       if (extra_shell_arg != NULL)
+           argv[argc++] = (char *)extra_shell_arg;
+  
+***************
+*** 4325,4331 ****
+                       linenr_T    lnum = curbuf->b_op_start.lnum;
+                       int         written = 0;
+                       char_u      *lp = ml_get(lnum);
+-                      char_u      *s;
+                       size_t      l;
+  
+                       close(fromshell_fd);
+--- 4326,4331 ----
+***************
+*** 4339,4345 ****
+                               len = write(toshell_fd, "", (size_t)1);
+                           else
+                           {
+!                              s = vim_strchr(lp + written, NL);
+                               len = write(toshell_fd, (char *)lp + written,
+                                          s == NULL ? l
+                                             : (size_t)(s - (lp + written)));
+--- 4339,4346 ----
+                               len = write(toshell_fd, "", (size_t)1);
+                           else
+                           {
+!                              char_u  *s = vim_strchr(lp + written, NL);
+! 
+                               len = write(toshell_fd, (char *)lp + written,
+                                          s == NULL ? l
+                                             : (size_t)(s - (lp + written)));
+*** ../vim-7.3.399/src/screen.c        2012-01-10 12:42:05.000000000 +0100
+--- src/screen.c       2012-01-10 22:06:51.000000000 +0100
+***************
+*** 7849,7863 ****
+  
+  /*
+   * screen_valid -  allocate screen buffers if size changed
+!  *   If "clear" is TRUE: clear screen if it has been resized.
+   *   Returns TRUE if there is a valid screen to write to.
+   *   Returns FALSE when starting up and screen not initialized yet.
+   */
+      int
+! screen_valid(clear)
+!     int          clear;
+  {
+!     screenalloc(clear);          /* allocate screen buffers if size changed */
+      return (ScreenLines != NULL);
+  }
+  
+--- 7849,7863 ----
+  
+  /*
+   * screen_valid -  allocate screen buffers if size changed
+!  *   If "doclear" is TRUE: clear screen if it has been resized.
+   *   Returns TRUE if there is a valid screen to write to.
+   *   Returns FALSE when starting up and screen not initialized yet.
+   */
+      int
+! screen_valid(doclear)
+!     int          doclear;
+  {
+!     screenalloc(doclear);       /* allocate screen buffers if size changed */
+      return (ScreenLines != NULL);
+  }
+  
+***************
+*** 7872,7879 ****
+   * final size of the shell is needed.
+   */
+      void
+! screenalloc(clear)
+!     int          clear;
+  {
+      int                  new_row, old_row;
+  #ifdef FEAT_GUI
+--- 7872,7879 ----
+   * final size of the shell is needed.
+   */
+      void
+! screenalloc(doclear)
+!     int          doclear;
+  {
+      int                  new_row, old_row;
+  #ifdef FEAT_GUI
+***************
+*** 8069,8075 ****
+            * (used when resizing the window at the "--more--" prompt or when
+            * executing an external command, for the GUI).
+            */
+!          if (!clear)
+           {
+               (void)vim_memset(new_ScreenLines + new_row * Columns,
+                                     ' ', (size_t)Columns * sizeof(schar_T));
+--- 8069,8075 ----
+            * (used when resizing the window at the "--more--" prompt or when
+            * executing an external command, for the GUI).
+            */
+!          if (!doclear)
+           {
+               (void)vim_memset(new_ScreenLines + new_row * Columns,
+                                     ' ', (size_t)Columns * sizeof(schar_T));
+***************
+*** 8159,8165 ****
+      screen_Columns = Columns;
+  
+      must_redraw = CLEAR;     /* need to clear the screen later */
+!     if (clear)
+       screenclear2();
+  
+  #ifdef FEAT_GUI
+--- 8159,8165 ----
+      screen_Columns = Columns;
+  
+      must_redraw = CLEAR;     /* need to clear the screen later */
+!     if (doclear)
+       screenclear2();
+  
+  #ifdef FEAT_GUI
+*** ../vim-7.3.399/src/search.c        2011-10-04 17:00:13.000000000 +0200
+--- src/search.c       2012-01-10 22:07:16.000000000 +0100
+***************
+*** 2402,2425 ****
+      {
+       if (vim_strchr(p, ';') != NULL) /* there may be comments */
+       {
+!          int instr = FALSE;  /* inside of string */
+  
+           p = line;           /* scan from start */
+           while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
+           {
+               if (*p == '"')
+               {
+!                  if (instr)
+                   {
+                       if (*(p - 1) != '\\') /* skip escaped quote */
+!                          instr = FALSE;
+                   }
+                   else if (p == line || ((p - line) >= 2
+                                     /* skip #\" form */
+                                     && *(p - 1) != '\\' && *(p - 2) != '#'))
+!                      instr = TRUE;
+               }
+!              else if (!instr && ((p - line) < 2
+                                   || (*(p - 1) != '\\' && *(p - 2) != '#')))
+                   break;      /* found! */
+               ++p;
+--- 2402,2425 ----
+      {
+       if (vim_strchr(p, ';') != NULL) /* there may be comments */
+       {
+!          int in_str = FALSE; /* inside of string */
+  
+           p = line;           /* scan from start */
+           while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
+           {
+               if (*p == '"')
+               {
+!                  if (in_str)
+                   {
+                       if (*(p - 1) != '\\') /* skip escaped quote */
+!                          in_str = FALSE;
+                   }
+                   else if (p == line || ((p - line) >= 2
+                                     /* skip #\" form */
+                                     && *(p - 1) != '\\' && *(p - 2) != '#'))
+!                      in_str = TRUE;
+               }
+!              else if (!in_str && ((p - line) < 2
+                                   || (*(p - 1) != '\\' && *(p - 2) != '#')))
+                   break;      /* found! */
+               ++p;
+*** ../vim-7.3.399/src/spell.c 2012-01-10 16:28:41.000000000 +0100
+--- src/spell.c        2012-01-10 22:09:23.000000000 +0100
+***************
+*** 5049,5055 ****
+  static int offset2bytes __ARGS((int nr, char_u *buf));
+  static int bytes2offset __ARGS((char_u **pp));
+  static void sug_write __ARGS((spellinfo_T *spin, char_u *fname));
+! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int overwrite, int added_word));
+  static void spell_message __ARGS((spellinfo_T *spin, char_u *str));
+  static void init_spellfile __ARGS((void));
+  
+--- 5049,5055 ----
+  static int offset2bytes __ARGS((int nr, char_u *buf));
+  static int bytes2offset __ARGS((char_u **pp));
+  static void sug_write __ARGS((spellinfo_T *spin, char_u *fname));
+! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int over_write, int added_word));
+  static void spell_message __ARGS((spellinfo_T *spin, char_u *str));
+  static void init_spellfile __ARGS((void));
+  
+***************
+*** 9085,9095 ****
+   * and ".spl" is appended to make the output file name.
+   */
+      static void
+! mkspell(fcount, fnames, ascii, overwrite, added_word)
+      int              fcount;
+      char_u   **fnames;
+      int              ascii;              /* -ascii argument given */
+!     int              overwrite;          /* overwrite existing output file */
+      int              added_word;         /* invoked through "zg" */
+  {
+      char_u   *fname = NULL;
+--- 9085,9095 ----
+   * and ".spl" is appended to make the output file name.
+   */
+      static void
+! mkspell(fcount, fnames, ascii, over_write, added_word)
+      int              fcount;
+      char_u   **fnames;
+      int              ascii;              /* -ascii argument given */
+!     int              over_write;         /* overwrite existing output file */
+      int              added_word;         /* invoked through "zg" */
+  {
+      char_u   *fname = NULL;
+***************
+*** 9173,9179 ****
+      {
+       /* Check for overwriting before doing things that may take a lot of
+        * time. */
+!      if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
+       {
+           EMSG(_(e_exists));
+           goto theend;
+--- 9173,9179 ----
+      {
+       /* Check for overwriting before doing things that may take a lot of
+        * time. */
+!      if (!over_write && mch_stat((char *)wfname, &st) >= 0)
+       {
+           EMSG(_(e_exists));
+           goto theend;
+*** ../vim-7.3.399/src/syntax.c        2011-06-19 04:54:17.000000000 +0200
+--- src/syntax.c       2012-01-10 22:10:23.000000000 +0100
+***************
+*** 4006,4022 ****
+  }
+  
+      static void
+! syn_list_flags(nl, flags, attr)
+!     struct name_list *nl;
+      int                      flags;
+      int                      attr;
+  {
+      int              i;
+  
+!     for (i = 0; nl[i].flag != 0; ++i)
+!      if (flags & nl[i].flag)
+       {
+!          msg_puts_attr((char_u *)nl[i].name, attr);
+           msg_putchar(' ');
+       }
+  }
+--- 4006,4022 ----
+  }
+  
+      static void
+! syn_list_flags(nlist, flags, attr)
+!     struct name_list *nlist;
+      int                      flags;
+      int                      attr;
+  {
+      int              i;
+  
+!     for (i = 0; nlist[i].flag != 0; ++i)
+!      if (flags & nlist[i].flag)
+       {
+!          msg_puts_attr((char_u *)nlist[i].name, attr);
+           msg_putchar(' ');
+       }
+  }
+*** ../vim-7.3.399/src/tag.c   2011-12-14 14:15:12.000000000 +0100
+--- src/tag.c  2012-01-10 21:51:05.000000000 +0100
+***************
+*** 1353,1359 ****
+      int              match_count = 0;                /* number of matches found */
+      char_u   **matches;
+      int              mtt;
+-     int              len;
+      int              help_save;
+  #ifdef FEAT_MULTI_LANG
+      int              help_pri = 0;
+--- 1353,1358 ----
+***************
+*** 2235,2240 ****
+--- 2234,2241 ----
+                */
+               if (ga_grow(&ga_match[mtt], 1) == OK)
+               {
++                  int len;
++ 
+                   if (help_only)
+                   {
+  #ifdef FEAT_MULTI_LANG
+*** ../vim-7.3.399/src/window.c        2011-12-30 15:01:55.000000000 +0100
+--- src/window.c       2012-01-10 22:11:41.000000000 +0100
+***************
+*** 683,701 ****
+  }
+  
+  /*
+!  * When "newwin" is NULL: split the current window in two.
+!  * When "newwin" is not NULL: insert this window at the far
+   * top/left/right/bottom.
+   * return FAIL for failure, OK otherwise
+   */
+      int
+! win_split_ins(size, flags, newwin, dir)
+      int              size;
+      int              flags;
+!     win_T    *newwin;
+      int              dir;
+  {
+!     win_T    *wp = newwin;
+      win_T    *oldwin;
+      int              new_size = size;
+      int              i;
+--- 683,701 ----
+  }
+  
+  /*
+!  * When "new_wp" is NULL: split the current window in two.
+!  * When "new_wp" is not NULL: insert this window at the far
+   * top/left/right/bottom.
+   * return FAIL for failure, OK otherwise
+   */
+      int
+! win_split_ins(size, flags, new_wp, dir)
+      int              size;
+      int              flags;
+!     win_T    *new_wp;
+      int              dir;
+  {
+!     win_T    *wp = new_wp;
+      win_T    *oldwin;
+      int              new_size = size;
+      int              i;
+***************
+*** 718,724 ****
+      /* add a status line when p_ls == 1 and splitting the first window */
+      if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0)
+      {
+!      if (oldwin->w_height <= p_wmh && newwin == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+--- 718,724 ----
+      /* add a status line when p_ls == 1 and splitting the first window */
+      if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0)
+      {
+!      if (oldwin->w_height <= p_wmh && new_wp == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+***************
+*** 751,757 ****
+       }
+       else
+           available = oldwin->w_width;
+!      if (available < needed && newwin == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+--- 751,757 ----
+       }
+       else
+           available = oldwin->w_width;
+!      if (available < needed && new_wp == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+***************
+*** 815,821 ****
+           available = oldwin->w_height;
+           needed += p_wmh;
+       }
+!      if (available < needed && newwin == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+--- 815,821 ----
+           available = oldwin->w_height;
+           needed += p_wmh;
+       }
+!      if (available < needed && new_wp == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+***************
+*** 888,907 ****
+                       p_sb))))
+      {
+       /* new window below/right of current one */
+!      if (newwin == NULL)
+           wp = win_alloc(oldwin, FALSE);
+       else
+           win_append(oldwin, wp);
+      }
+      else
+      {
+!      if (newwin == NULL)
+           wp = win_alloc(oldwin->w_prev, FALSE);
+       else
+           win_append(oldwin->w_prev, wp);
+      }
+  
+!     if (newwin == NULL)
+      {
+       if (wp == NULL)
+           return FAIL;
+--- 888,907 ----
+                       p_sb))))
+      {
+       /* new window below/right of current one */
+!      if (new_wp == NULL)
+           wp = win_alloc(oldwin, FALSE);
+       else
+           win_append(oldwin, wp);
+      }
+      else
+      {
+!      if (new_wp == NULL)
+           wp = win_alloc(oldwin->w_prev, FALSE);
+       else
+           win_append(oldwin->w_prev, wp);
+      }
+  
+!     if (new_wp == NULL)
+      {
+       if (wp == NULL)
+           return FAIL;
+***************
+*** 972,981 ****
+               frp->fr_parent = curfrp;
+      }
+  
+!     if (newwin == NULL)
+       frp = wp->w_frame;
+      else
+!      frp = newwin->w_frame;
+      frp->fr_parent = curfrp->fr_parent;
+  
+      /* Insert the new frame at the right place in the frame list. */
+--- 972,981 ----
+               frp->fr_parent = curfrp;
+      }
+  
+!     if (new_wp == NULL)
+       frp = wp->w_frame;
+      else
+!      frp = new_wp->w_frame;
+      frp->fr_parent = curfrp->fr_parent;
+  
+      /* Insert the new frame at the right place in the frame list. */
+***************
+*** 4284,4302 ****
+      win_T    *after UNUSED;
+      int              hidden UNUSED;
+  {
+!     win_T    *newwin;
+  
+      /*
+       * allocate window structure and linesizes arrays
+       */
+!     newwin = (win_T *)alloc_clear((unsigned)sizeof(win_T));
+!     if (newwin != NULL && win_alloc_lines(newwin) == FAIL)
+      {
+!      vim_free(newwin);
+!      newwin = NULL;
+      }
+  
+!     if (newwin != NULL)
+      {
+  #ifdef FEAT_AUTOCMD
+       /* Don't execute autocommands while the window is not properly
+--- 4284,4302 ----
+      win_T    *after UNUSED;
+      int              hidden UNUSED;
+  {
+!     win_T    *new_wp;
+  
+      /*
+       * allocate window structure and linesizes arrays
+       */
+!     new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T));
+!     if (new_wp != NULL && win_alloc_lines(new_wp) == FAIL)
+      {
+!      vim_free(new_wp);
+!      new_wp = NULL;
+      }
+  
+!     if (new_wp != NULL)
+      {
+  #ifdef FEAT_AUTOCMD
+       /* Don't execute autocommands while the window is not properly
+***************
+*** 4309,4361 ****
+        */
+  #ifdef FEAT_WINDOWS
+       if (!hidden)
+!          win_append(after, newwin);
+  #endif
+  #ifdef FEAT_VERTSPLIT
+!      newwin->w_wincol = 0;
+!      newwin->w_width = Columns;
+  #endif
+  
+       /* position the display and the cursor at the top of the file. */
+!      newwin->w_topline = 1;
+  #ifdef FEAT_DIFF
+!      newwin->w_topfill = 0;
+  #endif
+!      newwin->w_botline = 2;
+!      newwin->w_cursor.lnum = 1;
+  #ifdef FEAT_SCROLLBIND
+!      newwin->w_scbind_pos = 1;
+  #endif
+  
+       /* We won't calculate w_fraction until resizing the window */
+!      newwin->w_fraction = 0;
+!      newwin->w_prev_fraction_row = -1;
+  
+  #ifdef FEAT_GUI
+       if (gui.in_use)
+       {
+!          gui_create_scrollbar(&newwin->w_scrollbars[SBAR_LEFT],
+!                  SBAR_LEFT, newwin);
+!          gui_create_scrollbar(&newwin->w_scrollbars[SBAR_RIGHT],
+!                  SBAR_RIGHT, newwin);
+       }
+  #endif
+  #ifdef FEAT_EVAL
+       /* init w: variables */
+!      init_var_dict(&newwin->w_vars, &newwin->w_winvar);
+  #endif
+  #ifdef FEAT_FOLDING
+!      foldInitWin(newwin);
+  #endif
+  #ifdef FEAT_AUTOCMD
+       unblock_autocmds();
+  #endif
+  #ifdef FEAT_SEARCH_EXTRA
+!      newwin->w_match_head = NULL;
+!      newwin->w_next_match_id = 4;
+  #endif
+      }
+!     return newwin;
+  }
+  
+  #if defined(FEAT_WINDOWS) || defined(PROTO)
+--- 4309,4361 ----
+        */
+  #ifdef FEAT_WINDOWS
+       if (!hidden)
+!          win_append(after, new_wp);
+  #endif
+  #ifdef FEAT_VERTSPLIT
+!      new_wp->w_wincol = 0;
+!      new_wp->w_width = Columns;
+  #endif
+  
+       /* position the display and the cursor at the top of the file. */
+!      new_wp->w_topline = 1;
+  #ifdef FEAT_DIFF
+!      new_wp->w_topfill = 0;
+  #endif
+!      new_wp->w_botline = 2;
+!      new_wp->w_cursor.lnum = 1;
+  #ifdef FEAT_SCROLLBIND
+!      new_wp->w_scbind_pos = 1;
+  #endif
+  
+       /* We won't calculate w_fraction until resizing the window */
+!      new_wp->w_fraction = 0;
+!      new_wp->w_prev_fraction_row = -1;
+  
+  #ifdef FEAT_GUI
+       if (gui.in_use)
+       {
+!          gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_LEFT],
+!                  SBAR_LEFT, new_wp);
+!          gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_RIGHT],
+!                  SBAR_RIGHT, new_wp);
+       }
+  #endif
+  #ifdef FEAT_EVAL
+       /* init w: variables */
+!      init_var_dict(&new_wp->w_vars, &new_wp->w_winvar);
+  #endif
+  #ifdef FEAT_FOLDING
+!      foldInitWin(new_wp);
+  #endif
+  #ifdef FEAT_AUTOCMD
+       unblock_autocmds();
+  #endif
+  #ifdef FEAT_SEARCH_EXTRA
+!      new_wp->w_match_head = NULL;
+!      new_wp->w_next_match_id = 4;
+  #endif
+      }
+!     return new_wp;
+  }
+  
+  #if defined(FEAT_WINDOWS) || defined(PROTO)
+*** ../vim-7.3.399/src/version.c       2012-01-10 18:37:53.000000000 +0100
+--- src/version.c      2012-01-10 22:23:10.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     400,
+  /**/
+
+-- 
+A parent can be arrested if his child cannot hold back a burp during a church
+service.
+               [real standing law in Nebraska, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.401.patch0 b/vim/patches/vim-7.3.401.patch0
new file mode 100644 (file)
index 0000000..6a473c5
--- /dev/null
@@ -0,0 +1,191 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.401
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.401
+Problem:    A couple more shadowed variables.
+Solution:   Rename the variables.
+Files:     src/netbeans.c
+
+
+*** ../vim-7.3.400/src/netbeans.c      2012-01-10 22:26:12.000000000 +0100
+--- src/netbeans.c     2012-01-10 22:30:17.000000000 +0100
+***************
+*** 443,449 ****
+      FILE *fp;
+      char_u buf[BUFSIZ];
+      char_u *lp;
+!     char_u *nl;
+  #ifdef UNIX
+      struct stat      st;
+  
+--- 443,449 ----
+      FILE *fp;
+      char_u buf[BUFSIZ];
+      char_u *lp;
+!     char_u *nlp;
+  #ifdef UNIX
+      struct stat      st;
+  
+***************
+*** 472,479 ****
+      /* Read the file. There should be one of each parameter */
+      while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL)
+      {
+!      if ((nl = vim_strchr(lp, '\n')) != NULL)
+!          *nl = 0;        /* strip off the trailing newline */
+  
+       if (STRNCMP(lp, "host=", 5) == 0)
+       {
+--- 472,479 ----
+      /* Read the file. There should be one of each parameter */
+      while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL)
+      {
+!      if ((nlp = vim_strchr(lp, '\n')) != NULL)
+!          *nlp = 0;       /* strip off the trailing newline */
+  
+       if (STRNCMP(lp, "host=", 5) == 0)
+       {
+***************
+*** 1740,1746 ****
+               int     added = 0;
+               int     oldFire = netbeansFireChanges;
+               int     old_b_changed;
+!              char_u  *nl;
+               linenr_T lnum;
+               linenr_T lnum_start;
+               pos_T   *pos;
+--- 1740,1746 ----
+               int     added = 0;
+               int     oldFire = netbeansFireChanges;
+               int     old_b_changed;
+!              char_u  *nlp;
+               linenr_T lnum;
+               linenr_T lnum_start;
+               pos_T   *pos;
+***************
+*** 1780,1787 ****
+               do_update = 1;
+               while (*args != NUL)
+               {
+!                  nl = vim_strchr(args, '\n');
+!                  if (nl == NULL)
+                   {
+                       /* Incomplete line, probably truncated.  Next "insert"
+                        * command should append to this one. */
+--- 1780,1787 ----
+               do_update = 1;
+               while (*args != NUL)
+               {
+!                  nlp = vim_strchr(args, '\n');
+!                  if (nlp == NULL)
+                   {
+                       /* Incomplete line, probably truncated.  Next "insert"
+                        * command should append to this one. */
+***************
+*** 1789,1801 ****
+                   }
+                   else
+                   {
+!                      len = nl - args;
+  
+                       /*
+                        * We need to detect EOL style, because the commands
+                        * use a character offset.
+                        */
+!                      if (nl > args && nl[-1] == '\r')
+                       {
+                           ff_detected = EOL_DOS;
+                           --len;
+--- 1789,1801 ----
+                   }
+                   else
+                   {
+!                      len = nlp - args;
+  
+                       /*
+                        * We need to detect EOL style, because the commands
+                        * use a character offset.
+                        */
+!                      if (nlp > args && nlp[-1] == '\r')
+                       {
+                           ff_detected = EOL_DOS;
+                           --len;
+***************
+*** 1814,1820 ****
+  
+                       /* Insert halfway a line.  For simplicity we assume we
+                        * need to append to the line. */
+!                      newline = alloc_check((unsigned)(STRLEN(oldline) + len + 1));
+                       if (newline != NULL)
+                       {
+                           STRCPY(newline, oldline);
+--- 1814,1821 ----
+  
+                       /* Insert halfway a line.  For simplicity we assume we
+                        * need to append to the line. */
+!                      newline = alloc_check(
+!                                     (unsigned)(STRLEN(oldline) + len + 1));
+                       if (newline != NULL)
+                       {
+                           STRCPY(newline, oldline);
+***************
+*** 1826,1839 ****
+                   {
+                       /* Append a new line.  Not that we always do this,
+                        * also when the text doesn't end in a "\n". */
+!                      ml_append((linenr_T)(lnum - 1), args, (colnr_T)(len + 1), FALSE);
+                       ++added;
+                   }
+  
+!                  if (nl == NULL)
+                       break;
+                   ++lnum;
+!                  args = nl + 1;
+               }
+  
+               /* Adjust the marks below the inserted lines. */
+--- 1827,1841 ----
+                   {
+                       /* Append a new line.  Not that we always do this,
+                        * also when the text doesn't end in a "\n". */
+!                      ml_append((linenr_T)(lnum - 1), args,
+!                                                 (colnr_T)(len + 1), FALSE);
+                       ++added;
+                   }
+  
+!                  if (nlp == NULL)
+                       break;
+                   ++lnum;
+!                  args = nlp + 1;
+               }
+  
+               /* Adjust the marks below the inserted lines. */
+*** ../vim-7.3.400/src/version.c       2012-01-10 22:26:12.000000000 +0100
+--- src/version.c      2012-01-10 22:30:47.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     401,
+  /**/
+
+-- 
+So when I saw the post to comp.editors, I rushed over to the FTP site to
+grab it.  So I yank apart the tarball, light x candles, where x= the
+vim version multiplied by the md5sum of the source divided by the MAC of
+my NIC (8A3FA78155A8A1D346C3C4A), put on black robes, dim the lights,
+wave a dead chicken over the hard drive, and summon the power of GNU GCC
+with the magic words "make config ; make!".
+               [Jason Spence, compiling Vim 5.0]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.402.patch0 b/vim/patches/vim-7.3.402.patch0
new file mode 100644 (file)
index 0000000..a5501f8
--- /dev/null
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.402
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.402
+Problem:    When jumping to the first error a line of the buffer is sometimes
+           redrawn on top of the list of errors.
+Solution:   Do not call update_topline_redraw() if the display was scrolled
+           up.
+Files:     src/quickfix.c
+
+
+*** ../vim-7.3.401/src/quickfix.c      2012-01-10 17:13:48.000000000 +0100
+--- src/quickfix.c     2012-01-20 13:13:25.000000000 +0100
+***************
+*** 1842,1849 ****
+  #endif
+       if (print_message)
+       {
+!          /* Update the screen before showing the message */
+!          update_topline_redraw();
+           sprintf((char *)IObuff, _("(%d of %d)%s%s: "), qf_index,
+                   qi->qf_lists[qi->qf_curlist].qf_count,
+                   qf_ptr->qf_cleared ? _(" (line deleted)") : "",
+--- 1842,1851 ----
+  #endif
+       if (print_message)
+       {
+!          /* Update the screen before showing the message, unless the screen
+!           * scrolled up. */
+!          if (!msg_scrolled)
+!              update_topline_redraw();
+           sprintf((char *)IObuff, _("(%d of %d)%s%s: "), qf_index,
+                   qi->qf_lists[qi->qf_curlist].qf_count,
+                   qf_ptr->qf_cleared ? _(" (line deleted)") : "",
+*** ../vim-7.3.401/src/version.c       2012-01-10 22:31:26.000000000 +0100
+--- src/version.c      2012-01-20 13:17:50.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     402,
+  /**/
+
+-- 
+If all you have is a hammer, everything looks like a nail.
+When your hammer is C++, everything begins to look like a thumb.
+                       -- Steve Hoflich, comp.lang.c++
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.403.patch0 b/vim/patches/vim-7.3.403.patch0
new file mode 100644 (file)
index 0000000..bc3bf54
--- /dev/null
@@ -0,0 +1,108 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.403
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.403
+Problem:    ":helpgrep" does not trigger QuickFixCmd* autocommands.
+Solution:   Trigger the autocommands. (Christian Brabandt)
+Files:     src/quickfix.c
+
+
+*** ../vim-7.3.402/src/quickfix.c      2012-01-20 13:28:28.000000000 +0100
+--- src/quickfix.c     2012-01-20 13:37:10.000000000 +0100
+***************
+*** 3878,3893 ****
+      qf_info_T        *qi = &ql_info;
+      int              new_qi = FALSE;
+      win_T    *wp;
+! 
+!     /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
+!     save_cpo = p_cpo;
+!     p_cpo = empty_option;
+  
+  #ifdef FEAT_MULTI_LANG
+      /* Check for a specified language */
+      lang = check_help_lang(eap->arg);
+  #endif
+  
+      if (eap->cmdidx == CMD_lhelpgrep)
+      {
+       /* Find an existing help window */
+--- 3878,3912 ----
+      qf_info_T        *qi = &ql_info;
+      int              new_qi = FALSE;
+      win_T    *wp;
+! #ifdef FEAT_AUTOCMD
+!     char_u   *au_name =  NULL;
+! #endif
+  
+  #ifdef FEAT_MULTI_LANG
+      /* Check for a specified language */
+      lang = check_help_lang(eap->arg);
+  #endif
+  
++ #ifdef FEAT_AUTOCMD
++     switch (eap->cmdidx)
++     {
++      case CMD_helpgrep:  au_name = (char_u *)"helpgrep"; break;
++      case CMD_lhelpgrep: au_name = (char_u *)"lhelpgrep"; break;
++      default: break;
++     }
++     if (au_name != NULL)
++     {
++      apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
++                                             curbuf->b_fname, TRUE, curbuf);
++      if (did_throw || force_abort)
++          return;
++     }
++ #endif
++ 
++     /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
++     save_cpo = p_cpo;
++     p_cpo = empty_option;
++ 
+      if (eap->cmdidx == CMD_lhelpgrep)
+      {
+       /* Find an existing help window */
+***************
+*** 4036,4041 ****
+--- 4055,4071 ----
+      qf_update_buffer(qi);
+  #endif
+  
++ #ifdef FEAT_AUTOCMD
++     if (au_name != NULL)
++     {
++      apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
++                                             curbuf->b_fname, TRUE, curbuf);
++      if (!new_qi && qi != &ql_info && qf_find_buf(qi) == NULL)
++          /* autocommands made "qi" invalid */
++          return;
++     }
++ #endif
++ 
+      /* Jump to first match. */
+      if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
+       qf_jump(qi, 0, 0, FALSE);
+*** ../vim-7.3.402/src/version.c       2012-01-20 13:28:28.000000000 +0100
+--- src/version.c      2012-01-20 13:30:37.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     403,
+  /**/
+
+-- 
+Looking at Perl through Lisp glasses, Perl looks atrocious.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.404.patch0 b/vim/patches/vim-7.3.404.patch0
new file mode 100644 (file)
index 0000000..445d705
--- /dev/null
@@ -0,0 +1,85 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.404
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.404
+Problem:    When a complete function uses refresh "always" redo will not work
+           properly.
+Solution:   Do not reset compl_leader when compl_opt_refresh_always is set.
+           (Yasuhiro Matsumoto)
+Files:     src/edit.c
+
+
+*** ../vim-7.3.403/src/edit.c  2012-01-10 22:26:12.000000000 +0100
+--- src/edit.c 2012-01-20 14:26:06.000000000 +0100
+***************
+*** 3465,3475 ****
+      if (ins_compl_need_restart())
+       ins_compl_restart();
+  
+!     vim_free(compl_leader);
+!     compl_leader = vim_strnsave(ml_get_curline() + compl_col,
+                                    (int)(curwin->w_cursor.col - compl_col));
+!     if (compl_leader != NULL)
+!      ins_compl_new_leader();
+  }
+  
+  /*
+--- 3465,3481 ----
+      if (ins_compl_need_restart())
+       ins_compl_restart();
+  
+!     /* When 'always' is set, don't reset compl_leader. While completing,
+!      * cursor don't point original position, changing compl_leader would
+!      * break redo. */
+!     if (!compl_opt_refresh_always)
+!     {
+!      vim_free(compl_leader);
+!      compl_leader = vim_strnsave(ml_get_curline() + compl_col,
+                                    (int)(curwin->w_cursor.col - compl_col));
+!      if (compl_leader != NULL)
+!          ins_compl_new_leader();
+!     }
+  }
+  
+  /*
+***************
+*** 4554,4559 ****
+--- 4560,4570 ----
+      int          found_end = FALSE;
+      int          advance;
+  
++     /* When user complete function return -1 for findstart which is next
++      * time of 'always', compl_shown_match become NULL. */
++     if (compl_shown_match == NULL)
++      return -1;
++ 
+      if (compl_leader != NULL
+                       && (compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0)
+      {
+*** ../vim-7.3.403/src/version.c       2012-01-20 13:39:03.000000000 +0100
+--- src/version.c      2012-01-20 14:31:26.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     404,
+  /**/
+
+-- 
+ARTHUR: I've said I'm sorry about the old woman, but from the behind you
+        looked ...
+DENNIS: What I object to is that you automatically treat me like an inferior...
+ARTHUR: Well ... I AM king.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.405.patch0 b/vim/patches/vim-7.3.405.patch0
new file mode 100644 (file)
index 0000000..087aecc
--- /dev/null
@@ -0,0 +1,101 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.405
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.405
+Problem:    When xterm gets back the function keys it may delete the urxvt
+           mouse termcap code.
+Solution:   Check for the whole code, not just the start. (Egmont Koblinger)
+Files:     src/keymap.h, src/misc2.c, src/term.c
+
+
+*** ../vim-7.3.404/src/keymap.h        2011-10-20 21:09:25.000000000 +0200
+--- src/keymap.h       2012-01-20 16:35:43.000000000 +0100
+***************
+*** 411,416 ****
+--- 411,417 ----
+  #define K_DEC_MOUSE  TERMCAP2KEY(KS_DEC_MOUSE, KE_FILLER)
+  #define K_JSBTERM_MOUSE      TERMCAP2KEY(KS_JSBTERM_MOUSE, KE_FILLER)
+  #define K_PTERM_MOUSE        TERMCAP2KEY(KS_PTERM_MOUSE, KE_FILLER)
++ #define K_URXVT_MOUSE        TERMCAP2KEY(KS_URXVT_MOUSE, KE_FILLER)
+  
+  #define K_SELECT     TERMCAP2KEY(KS_SELECT, KE_FILLER)
+  #define K_TEAROFF    TERMCAP2KEY(KS_TEAROFF, KE_FILLER)
+*** ../vim-7.3.404/src/misc2.c 2012-01-10 22:26:12.000000000 +0100
+--- src/misc2.c        2012-01-20 16:38:27.000000000 +0100
+***************
+*** 2416,2425 ****
+--- 2416,2436 ----
+      {'<',            (char_u *)"lt"},
+  
+      {K_MOUSE,                (char_u *)"Mouse"},
++ #ifdef FEAT_MOUSE_NET
+      {K_NETTERM_MOUSE,        (char_u *)"NetMouse"},
++ #endif
++ #ifdef FEAT_MOUSE_DEC
+      {K_DEC_MOUSE,    (char_u *)"DecMouse"},
++ #endif
++ #ifdef FEAT_MOUSE_JSB
+      {K_JSBTERM_MOUSE,        (char_u *)"JsbMouse"},
++ #endif
++ #ifdef FEAT_MOUSE_PTERM
+      {K_PTERM_MOUSE,  (char_u *)"PtermMouse"},
++ #endif
++ #ifdef FEAT_MOUSE_URXVT
++     {K_URXVT_MOUSE,  (char_u *)"UrxvtMouse"},
++ #endif
+      {K_LEFTMOUSE,    (char_u *)"LeftMouse"},
+      {K_LEFTMOUSE_NM, (char_u *)"LeftMouseNM"},
+      {K_LEFTDRAG,     (char_u *)"LeftDrag"},
+*** ../vim-7.3.404/src/term.c  2011-12-01 20:59:16.000000000 +0100
+--- src/term.c 2012-01-20 16:50:41.000000000 +0100
+***************
+*** 5252,5263 ****
+      char_u   *src;
+  {
+      int              i;
+!     int              slen;
+  
+      for (i = 0; i < tc_len; ++i)
+      {
+!      slen = termcodes[i].len;
+!      if (slen > 1 && STRNCMP(termcodes[i].code, src, (size_t)slen) == 0)
+           return i;
+      }
+      return -1;
+--- 5252,5263 ----
+      char_u   *src;
+  {
+      int              i;
+!     int              slen = STRLEN(src);
+  
+      for (i = 0; i < tc_len; ++i)
+      {
+!      if (slen == termcodes[i].len
+!                      && STRNCMP(termcodes[i].code, src, (size_t)slen) == 0)
+           return i;
+      }
+      return -1;
+*** ../vim-7.3.404/src/version.c       2012-01-20 14:32:22.000000000 +0100
+--- src/version.c      2012-01-20 16:59:47.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     405,
+  /**/
+
+-- 
+"The future's already arrived - it's just not evenly distributed yet."
+               -- William Gibson
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.406.patch0 b/vim/patches/vim-7.3.406.patch0
new file mode 100644 (file)
index 0000000..dceca0e
--- /dev/null
@@ -0,0 +1,103 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.406
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.406
+Problem:    Multi-byte characters in b:browsefilter are not handled correctly.
+Solution:   First use convert_filter() normally and then convert to wide
+           characters. (Taro Muraoka)
+Files:     src/gui_w48.c
+
+
+*** ../vim-7.3.405/src/gui_w48.c       2011-09-07 18:58:24.000000000 +0200
+--- src/gui_w48.c      2012-01-20 17:54:19.000000000 +0100
+***************
+*** 328,333 ****
+--- 328,337 ----
+  static LRESULT _OnImeNotify(HWND hWnd, DWORD dwCommand, DWORD dwData);
+  #endif
+  
++ #if defined(FEAT_MBYTE) && defined(WIN3264)
++ static char_u *convert_filter(char_u *s);
++ #endif
++ 
+  #ifdef DEBUG_PRINT_ERROR
+  /*
+   * Print out the last Windows error message
+***************
+*** 3275,3302 ****
+  
+  # if defined(FEAT_MBYTE) && defined(WIN3264)
+  /*
+!  * Wide version of convert_filter().  Keep in sync!
+   */
+      static WCHAR *
+  convert_filterW(char_u *s)
+  {
+!     WCHAR    *res;
+!     unsigned s_len = (unsigned)STRLEN(s);
+!     unsigned i;
+  
+!     res = (WCHAR *)alloc((s_len + 3) * sizeof(WCHAR));
+!     if (res != NULL)
+!     {
+!      for (i = 0; i < s_len; ++i)
+!          if (s[i] == '\t' || s[i] == '\n')
+!              res[i] = '\0';
+!          else
+!              res[i] = s[i];
+!      res[s_len] = NUL;
+!      /* Add two extra NULs to make sure it's properly terminated. */
+!      res[s_len + 1] = NUL;
+!      res[s_len + 2] = NUL;
+!     }
+      return res;
+  }
+  
+--- 3279,3298 ----
+  
+  # if defined(FEAT_MBYTE) && defined(WIN3264)
+  /*
+!  * Wide version of convert_filter().
+   */
+      static WCHAR *
+  convert_filterW(char_u *s)
+  {
+!     char_u *tmp;
+!     int len;
+  
+!     tmp = convert_filter(s);
+!     if (tmp == NULL)
+!      return NULL;
+!     len = (int)STRLEN(s) + 3;
+!     res = enc_to_utf16(tmp, &len);
+!     vim_free(tmp);
+      return res;
+  }
+  
+*** ../vim-7.3.405/src/version.c       2012-01-20 17:15:47.000000000 +0100
+--- src/version.c      2012-01-20 17:57:09.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     406,
+  /**/
+
+-- 
+DENNIS: Look,  strange women lying on their backs in ponds handing out
+        swords ... that's no basis for a system of government.  Supreme
+        executive power derives from a mandate from the masses, not from some
+        farcical aquatic ceremony.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.407.patch0 b/vim/patches/vim-7.3.407.patch0
new file mode 100644 (file)
index 0000000..d5ac133
--- /dev/null
@@ -0,0 +1,270 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.407
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.407
+Problem:    ":12verbose call F()" may duplicate text while trying to truncate.
+           (Thinca)
+Solution:   Only truncate when there is not enough room.  Also check the byte
+           length of the buffer.
+Files:     src/buffer.c, src/eval.c, src/ex_getln.c, src/message.c,
+           src/proto/message.pro
+
+
+*** ../vim-7.3.406/src/buffer.c        2011-12-30 13:39:04.000000000 +0100
+--- src/buffer.c       2012-01-20 18:37:43.000000000 +0100
+***************
+*** 3258,3266 ****
+           if (maxlen > 0)
+           {
+               /* make it shorter by removing a bit in the middle */
+!              len = vim_strsize(buf);
+!              if (len > maxlen)
+!                  trunc_string(buf, buf, maxlen);
+           }
+       }
+      }
+--- 3258,3265 ----
+           if (maxlen > 0)
+           {
+               /* make it shorter by removing a bit in the middle */
+!              if (vim_strsize(buf) > maxlen)
+!                  trunc_string(buf, buf, maxlen, IOSIZE);
+           }
+       }
+      }
+*** ../vim-7.3.406/src/eval.c  2012-01-10 22:26:12.000000000 +0100
+--- src/eval.c 2012-01-20 20:43:32.000000000 +0100
+***************
+*** 22163,22170 ****
+                       s = tv2string(&argvars[i], &tofree, numbuf2, 0);
+                       if (s != NULL)
+                       {
+!                          trunc_string(s, buf, MSG_BUF_CLEN);
+!                          msg_puts(buf);
+                           vim_free(tofree);
+                       }
+                   }
+--- 22163,22174 ----
+                       s = tv2string(&argvars[i], &tofree, numbuf2, 0);
+                       if (s != NULL)
+                       {
+!                          if (vim_strsize(s) > MSG_BUF_CLEN)
+!                          {
+!                              trunc_string(s, buf, MSG_BUF_CLEN, MSG_BUF_LEN);
+!                              s = buf;
+!                          }
+!                          msg_puts(s);
+                           vim_free(tofree);
+                       }
+                   }
+***************
+*** 22252,22259 ****
+           s = tv2string(fc->rettv, &tofree, numbuf2, 0);
+           if (s != NULL)
+           {
+!              trunc_string(s, buf, MSG_BUF_CLEN);
+!              smsg((char_u *)_("%s returning %s"), sourcing_name, buf);
+               vim_free(tofree);
+           }
+       }
+--- 22256,22267 ----
+           s = tv2string(fc->rettv, &tofree, numbuf2, 0);
+           if (s != NULL)
+           {
+!              if (vim_strsize(s) > MSG_BUF_CLEN)
+!              {
+!                  trunc_string(s, buf, MSG_BUF_CLEN, MSG_BUF_LEN);
+!                  s = buf;
+!              }
+!              smsg((char_u *)_("%s returning %s"), sourcing_name, s);
+               vim_free(tofree);
+           }
+       }
+*** ../vim-7.3.406/src/ex_getln.c      2011-12-08 18:44:47.000000000 +0100
+--- src/ex_getln.c     2012-01-20 18:40:46.000000000 +0100
+***************
+*** 5923,5929 ****
+                                                             hist[i].hisnum);
+                   if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
+                       trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
+!                                                         (int)Columns - 10);
+                   else
+                       STRCAT(IObuff, hist[i].hisstr);
+                   msg_outtrans(IObuff);
+--- 5923,5929 ----
+                                                             hist[i].hisnum);
+                   if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
+                       trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
+!                                (int)Columns - 10, IOSIZE - STRLEN(IObuff));
+                   else
+                       STRCAT(IObuff, hist[i].hisstr);
+                   msg_outtrans(IObuff);
+*** ../vim-7.3.406/src/message.c       2012-01-10 22:26:12.000000000 +0100
+--- src/message.c      2012-01-20 20:38:29.000000000 +0100
+***************
+*** 222,236 ****
+           if (enc_utf8)
+               /* may have up to 18 bytes per cell (6 per char, up to two
+                * composing chars) */
+!              buf = alloc((room + 2) * 18);
+           else if (enc_dbcs == DBCS_JPNU)
+               /* may have up to 2 bytes per cell for euc-jp */
+!              buf = alloc((room + 2) * 2);
+           else
+  #endif
+!              buf = alloc(room + 2);
+           if (buf != NULL)
+!              trunc_string(s, buf, room);
+       }
+      }
+      return buf;
+--- 222,237 ----
+           if (enc_utf8)
+               /* may have up to 18 bytes per cell (6 per char, up to two
+                * composing chars) */
+!              len = (room + 2) * 18;
+           else if (enc_dbcs == DBCS_JPNU)
+               /* may have up to 2 bytes per cell for euc-jp */
+!              len = (room + 2) * 2;
+           else
+  #endif
+!              len = room + 2;
+!          buf = alloc(len);
+           if (buf != NULL)
+!              trunc_string(s, buf, room, len);
+       }
+      }
+      return buf;
+***************
+*** 241,250 ****
+   * "s" and "buf" may be equal.
+   */
+      void
+! trunc_string(s, buf, room)
+      char_u   *s;
+      char_u   *buf;
+      int              room;
+  {
+      int              half;
+      int              len;
+--- 242,252 ----
+   * "s" and "buf" may be equal.
+   */
+      void
+! trunc_string(s, buf, room, buflen)
+      char_u   *s;
+      char_u   *buf;
+      int              room;
++     int              buflen;
+  {
+      int              half;
+      int              len;
+***************
+*** 257,263 ****
+      len = 0;
+  
+      /* First part: Start of the string. */
+!     for (e = 0; len < half; ++e)
+      {
+       if (s[e] == NUL)
+       {
+--- 259,265 ----
+      len = 0;
+  
+      /* First part: Start of the string. */
+!     for (e = 0; len < half && e < buflen; ++e)
+      {
+       if (s[e] == NUL)
+       {
+***************
+*** 274,280 ****
+       if (has_mbyte)
+           for (n = (*mb_ptr2len)(s + e); --n > 0; )
+           {
+!              ++e;
+               buf[e] = s[e];
+           }
+  #endif
+--- 276,283 ----
+       if (has_mbyte)
+           for (n = (*mb_ptr2len)(s + e); --n > 0; )
+           {
+!              if (++e == buflen)
+!                  break;
+               buf[e] = s[e];
+           }
+  #endif
+***************
+*** 319,326 ****
+      }
+  
+      /* Set the middle and copy the last part. */
+!     mch_memmove(buf + e, "...", (size_t)3);
+!     STRMOVE(buf + e + 3, s + i);
+  }
+  
+  /*
+--- 322,340 ----
+      }
+  
+      /* Set the middle and copy the last part. */
+!     if (e + 3 < buflen)
+!     {
+!      mch_memmove(buf + e, "...", (size_t)3);
+!      len = STRLEN(s + i) + 1;
+!      if (len >= buflen - e - 3)
+!          len = buflen - e - 3 - 1;
+!      mch_memmove(buf + e + 3, s + i, len);
+!      buf[e + 3 + len - 1] = NUL;
+!     }
+!     else
+!     {
+!      buf[e - 1] = NUL;  // make sure it is truncated
+!     }
+  }
+  
+  /*
+*** ../vim-7.3.406/src/proto/message.pro       2011-01-17 20:08:03.000000000 +0100
+--- src/proto/message.pro      2012-01-20 18:51:19.000000000 +0100
+***************
+*** 4,10 ****
+  int msg_attr __ARGS((char_u *s, int attr));
+  int msg_attr_keep __ARGS((char_u *s, int attr, int keep));
+  char_u *msg_strtrunc __ARGS((char_u *s, int force));
+! void trunc_string __ARGS((char_u *s, char_u *buf, int room));
+  void reset_last_sourcing __ARGS((void));
+  void msg_source __ARGS((int attr));
+  int emsg_not_now __ARGS((void));
+--- 4,10 ----
+  int msg_attr __ARGS((char_u *s, int attr));
+  int msg_attr_keep __ARGS((char_u *s, int attr, int keep));
+  char_u *msg_strtrunc __ARGS((char_u *s, int force));
+! void trunc_string __ARGS((char_u *s, char_u *buf, int room, int buflen));
+  void reset_last_sourcing __ARGS((void));
+  void msg_source __ARGS((int attr));
+  int emsg_not_now __ARGS((void));
+*** ../vim-7.3.406/src/version.c       2012-01-20 17:57:47.000000000 +0100
+--- src/version.c      2012-01-20 20:42:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     407,
+  /**/
+
+-- 
+Hanson's Treatment of Time:
+       There are never enough hours in a day, but always too
+       many days before Saturday.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.408.patch0 b/vim/patches/vim-7.3.408.patch0
new file mode 100644 (file)
index 0000000..0227608
--- /dev/null
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.408
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.408 (after 7.3.406)
+Problem:    Missing declaration.
+Solution:   Add the declaration. (John Marriott)
+Files:     src/gui_w48.c
+
+
+*** ../vim-7.3.407/src/gui_w48.c       2012-01-20 17:57:47.000000000 +0100
+--- src/gui_w48.c      2012-01-20 20:51:57.000000000 +0100
+***************
+*** 3286,3291 ****
+--- 3286,3292 ----
+  {
+      char_u *tmp;
+      int len;
++     WCHAR *res;
+  
+      tmp = convert_filter(s);
+      if (tmp == NULL)
+*** ../vim-7.3.407/src/version.c       2012-01-20 20:44:38.000000000 +0100
+--- src/version.c      2012-01-20 20:52:56.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     408,
+  /**/
+
+-- 
+BLACK KNIGHT: None shall pass.
+ARTHUR:       I have no quarrel with you, brave Sir knight, but I must cross
+              this bridge.
+BLACK KNIGHT: Then you shall die.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.409.patch0 b/vim/patches/vim-7.3.409.patch0
new file mode 100644 (file)
index 0000000..a00fdcb
--- /dev/null
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.409
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.409
+Problem:    The license in pty.c is unclear.
+Solution:   Add a comment about the license.
+Files:     src/pty.c
+
+
+*** ../vim-7.3.408/src/pty.c   2011-05-19 13:40:47.000000000 +0200
+--- src/pty.c  2012-01-20 21:07:56.000000000 +0100
+***************
+*** 14,19 ****
+--- 14,23 ----
+   * It has been modified to work better with Vim.
+   * The parts that are not used in Vim have been deleted.
+   * See the "screen" sources for the complete stuff.
++  *
++  * This specific version is distibuted under the Vim license (attribution by
++  * Juergen Weigert), the GPL applies to the original version, see the
++  * copyright notice below.
+   */
+  
+  /* Copyright (c) 1993
+*** ../vim-7.3.408/src/version.c       2012-01-20 20:54:15.000000000 +0100
+--- src/version.c      2012-01-20 21:13:11.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     409,
+  /**/
+
+-- 
+ARTHUR: What are you going to do. bleed on me?
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.410.patch0 b/vim/patches/vim-7.3.410.patch0
new file mode 100644 (file)
index 0000000..f40e06f
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.410
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.410
+Problem:    Compiler error for // comment. (Joachim Schmitz)
+Solution:   Turn into /* comment */.
+Files:     src/message.c
+
+
+*** ../vim-7.3.409/src/message.c       2012-01-20 20:44:38.000000000 +0100
+--- src/message.c      2012-01-23 20:46:36.000000000 +0100
+***************
+*** 333,339 ****
+      }
+      else
+      {
+!      buf[e - 1] = NUL;  // make sure it is truncated
+      }
+  }
+  
+--- 333,339 ----
+      }
+      else
+      {
+!      buf[e - 1] = NUL;  /* make sure it is truncated */
+      }
+  }
+  
+*** ../vim-7.3.409/src/version.c       2012-01-20 21:13:55.000000000 +0100
+--- src/version.c      2012-01-23 20:47:30.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     410,
+  /**/
+
+
+-- 
+Are leaders born or made?  And if they're made, can we return them under
+warranty?
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.411.patch0 b/vim/patches/vim-7.3.411.patch0
new file mode 100644 (file)
index 0000000..fe75995
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.411
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.411
+Problem:    Pasting in Visual mode using the "" register does not work. (John
+           Beckett)
+Solution:   Detect that the write is overwriting the pasted register.
+           (Christian Brabandt)
+Files:     src/normal.c
+
+
+*** ../vim-7.3.410/src/normal.c        2011-10-04 21:22:40.000000000 +0200
+--- src/normal.c       2012-01-23 22:13:44.000000000 +0100
+***************
+*** 9329,9335 ****
+  # ifdef FEAT_CLIPBOARD
+           adjust_clip_reg(&regname);
+  # endif
+!          if (regname == 0 || VIM_ISDIGIT(regname)
+  # ifdef FEAT_CLIPBOARD
+                   || (clip_unnamed && (regname == '*' || regname == '+'))
+  # endif
+--- 9329,9335 ----
+  # ifdef FEAT_CLIPBOARD
+           adjust_clip_reg(&regname);
+  # endif
+!          if (regname == 0 || regname == '"' || VIM_ISDIGIT(regname)
+  # ifdef FEAT_CLIPBOARD
+                   || (clip_unnamed && (regname == '*' || regname == '+'))
+  # endif
+*** ../vim-7.3.410/src/version.c       2012-01-23 20:48:34.000000000 +0100
+--- src/version.c      2012-01-26 11:42:33.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     411,
+  /**/
+
+-- 
+Engineers understand that their appearance only bothers other people and
+therefore it is not worth optimizing.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.412.patch0 b/vim/patches/vim-7.3.412.patch0
new file mode 100644 (file)
index 0000000..3b18188
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.412
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.412
+Problem:    Storing a float in a session file has an additional '&'.
+Solution:   Remove the '&'. (Yasuhiro Matsumoto)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.411/src/eval.c  2012-01-20 20:44:38.000000000 +0100
+--- src/eval.c 2012-01-26 11:39:39.000000000 +0100
+***************
+*** 22929,22935 ****
+                   f = -f;
+                   sign = '-';
+               }
+!              if ((fprintf(fd, "let %s = %c&%f",
+                                              this_var->di_key, sign, f) < 0)
+                       || put_eol(fd) == FAIL)
+                   return FAIL;
+--- 22929,22935 ----
+                   f = -f;
+                   sign = '-';
+               }
+!              if ((fprintf(fd, "let %s = %c%f",
+                                              this_var->di_key, sign, f) < 0)
+                       || put_eol(fd) == FAIL)
+                   return FAIL;
+*** ../vim-7.3.411/src/version.c       2012-01-26 11:43:04.000000000 +0100
+--- src/version.c      2012-01-26 11:44:56.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     412,
+  /**/
+
+-- 
+Imagine a world without hypothetical situations.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.413.patch0 b/vim/patches/vim-7.3.413.patch0
new file mode 100644 (file)
index 0000000..c32c9b1
--- /dev/null
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.413
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.413
+Problem:    Build warnings on MS-Windows.
+Solution:   Add type casts. (Mike Williams)
+Files:     src/ex_getln.c, src/message.c, src/term.c
+
+
+*** ../vim-7.3.412/src/ex_getln.c      2012-01-20 20:44:38.000000000 +0100
+--- src/ex_getln.c     2012-01-26 12:58:54.000000000 +0100
+***************
+*** 5923,5929 ****
+                                                             hist[i].hisnum);
+                   if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
+                       trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
+!                                (int)Columns - 10, IOSIZE - STRLEN(IObuff));
+                   else
+                       STRCAT(IObuff, hist[i].hisstr);
+                   msg_outtrans(IObuff);
+--- 5923,5929 ----
+                                                             hist[i].hisnum);
+                   if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
+                       trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
+!                           (int)Columns - 10, IOSIZE - (int)STRLEN(IObuff));
+                   else
+                       STRCAT(IObuff, hist[i].hisstr);
+                   msg_outtrans(IObuff);
+*** ../vim-7.3.412/src/message.c       2012-01-23 20:48:34.000000000 +0100
+--- src/message.c      2012-01-26 12:58:54.000000000 +0100
+***************
+*** 325,331 ****
+      if (e + 3 < buflen)
+      {
+       mch_memmove(buf + e, "...", (size_t)3);
+!      len = STRLEN(s + i) + 1;
+       if (len >= buflen - e - 3)
+           len = buflen - e - 3 - 1;
+       mch_memmove(buf + e + 3, s + i, len);
+--- 325,331 ----
+      if (e + 3 < buflen)
+      {
+       mch_memmove(buf + e, "...", (size_t)3);
+!      len = (int)STRLEN(s + i) + 1;
+       if (len >= buflen - e - 3)
+           len = buflen - e - 3 - 1;
+       mch_memmove(buf + e + 3, s + i, len);
+*** ../vim-7.3.412/src/term.c  2012-01-20 17:15:47.000000000 +0100
+--- src/term.c 2012-01-26 12:58:54.000000000 +0100
+***************
+*** 5252,5258 ****
+      char_u   *src;
+  {
+      int              i;
+!     int              slen = STRLEN(src);
+  
+      for (i = 0; i < tc_len; ++i)
+      {
+--- 5252,5258 ----
+      char_u   *src;
+  {
+      int              i;
+!     int              slen = (int)STRLEN(src);
+  
+      for (i = 0; i < tc_len; ++i)
+      {
+*** ../vim-7.3.412/src/version.c       2012-01-26 11:45:25.000000000 +0100
+--- src/version.c      2012-01-26 12:59:14.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     413,
+  /**/
+
+-- 
+It doesn't really matter what you are able to do if you don't do it.
+                               (Bram Moolenaar)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.414.patch0 b/vim/patches/vim-7.3.414.patch0
new file mode 100644 (file)
index 0000000..6f6c307
--- /dev/null
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.414
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.414
+Problem:    Using CTRL-A on "000" drops the leading zero, while on "001" it
+           doesn't.
+Solution:   Detect "000" as an octal number. (James McCoy)
+Files:     src/charset.c
+
+
+*** ../vim-7.3.413/src/charset.c       2012-01-10 22:26:12.000000000 +0100
+--- src/charset.c      2012-01-26 13:33:45.000000000 +0100
+***************
+*** 764,770 ****
+  }
+  
+  /*
+!  * Return the number of characters string "s" will take on the screen,
+   * counting TABs as two characters: "^I".
+   */
+      int
+--- 764,770 ----
+  }
+  
+  /*
+!  * Return the number of character cells string "s" will take on the screen,
+   * counting TABs as two characters: "^I".
+   */
+      int
+***************
+*** 775,782 ****
+  }
+  
+  /*
+!  * Return the number of characters string "s[len]" will take on the screen,
+!  * counting TABs as two characters: "^I".
+   */
+      int
+  vim_strnsize(s, len)
+--- 775,782 ----
+  }
+  
+  /*
+!  * Return the number of character cells string "s[len]" will take on the
+!  * screen, counting TABs as two characters: "^I".
+   */
+      int
+  vim_strnsize(s, len)
+***************
+*** 1830,1836 ****
+                       hex = 0;        /* can't be octal */
+                       break;
+                   }
+!                  if (ptr[n] > '0')
+                       hex = '0';      /* assume octal */
+               }
+           }
+--- 1830,1836 ----
+                       hex = 0;        /* can't be octal */
+                       break;
+                   }
+!                  if (ptr[n] >= '0')
+                       hex = '0';      /* assume octal */
+               }
+           }
+*** ../vim-7.3.413/src/version.c       2012-01-26 13:01:54.000000000 +0100
+--- src/version.c      2012-01-26 13:38:04.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     414,
+  /**/
+
+-- 
+No engineer can take a shower without wondering if some sort of Teflon coating
+would make showering unnecessary.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.415.patch0 b/vim/patches/vim-7.3.415.patch0
new file mode 100644 (file)
index 0000000..74e757b
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.415
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.415 (after 7.3.359)
+Problem:    Completion of functions stops once a dictionary is encountered.
+           (James McCoy)
+Solution:   Return an empty string instead of NULL.
+Files:     src/eval.c
+
+
+*** ../vim-7.3.414/src/eval.c  2012-01-26 11:45:25.000000000 +0100
+--- src/eval.c 2012-01-26 13:45:52.000000000 +0100
+***************
+*** 21802,21808 ****
+       fp = HI2UF(hi);
+  
+       if (fp->uf_flags & FC_DICT)
+!          return NULL; /* don't show dict functions */
+  
+       if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
+           return fp->uf_name; /* prevents overflow */
+--- 21802,21808 ----
+       fp = HI2UF(hi);
+  
+       if (fp->uf_flags & FC_DICT)
+!          return ""; /* don't show dict functions */
+  
+       if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
+           return fp->uf_name; /* prevents overflow */
+*** ../vim-7.3.414/src/version.c       2012-01-26 13:40:04.000000000 +0100
+--- src/version.c      2012-01-26 14:32:16.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     415,
+  /**/
+
+-- 
+Normal people believe that if it ain't broke, don't fix it.  Engineers believe
+that if it ain't broke, it doesn't have enough features yet.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.416.patch0 b/vim/patches/vim-7.3.416.patch0
new file mode 100644 (file)
index 0000000..f65bb0d
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.416
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.416 (after 7.3.415)
+Problem:    Compiler warning for wrong pointer.
+Solution:   Add type cast.
+Files:     src/eval.c
+
+
+*** ../vim-7.3.415/src/eval.c  2012-01-26 14:32:26.000000000 +0100
+--- src/eval.c 2012-01-26 15:42:56.000000000 +0100
+***************
+*** 21802,21808 ****
+       fp = HI2UF(hi);
+  
+       if (fp->uf_flags & FC_DICT)
+!          return ""; /* don't show dict functions */
+  
+       if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
+           return fp->uf_name; /* prevents overflow */
+--- 21802,21808 ----
+       fp = HI2UF(hi);
+  
+       if (fp->uf_flags & FC_DICT)
+!          return (char_u *)""; /* don't show dict functions */
+  
+       if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
+           return fp->uf_name; /* prevents overflow */
+*** ../vim-7.3.415/src/version.c       2012-01-26 14:32:26.000000000 +0100
+--- src/version.c      2012-01-26 15:43:31.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     416,
+  /**/
+
+-- 
+It's totally unfair to suggest - as many have - that engineers are socially
+inept.  Engineers simply have different objectives when it comes to social
+interaction.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.417.patch0 b/vim/patches/vim-7.3.417.patch0
new file mode 100644 (file)
index 0000000..489d27e
--- /dev/null
@@ -0,0 +1,47 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.417
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.417 (after 7.3.395)
+Problem:    Test 43 fails with a tiny build.
+Solution:   Only run test 43 with at least a small build.
+Files:     src/testdir/test43.in
+
+
+*** ../vim-7.3.415/src/testdir/test43.in       2012-01-10 13:44:23.000000000 +0100
+--- src/testdir/test43.in      2012-01-26 18:00:06.000000000 +0100
+***************
+*** 1,6 ****
+--- 1,7 ----
+  Tests for regexp with various magic settings.
+  
+  STARTTEST
++ :so small.vim
+  :set nocompatible viminfo+=nviminfo
+  /^1
+  /a*b\{2}c\+/e
+*** ../vim-7.3.415/src/version.c       2012-01-26 14:32:26.000000000 +0100
+--- src/version.c      2012-01-26 18:02:30.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     417,
+  /**/
+
+-- 
+I learned the customs and mannerisms of engineers by observing them, much the
+way Jane Goodall learned about the great apes, but without the hassle of
+grooming.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.418.patch0 b/vim/patches/vim-7.3.418.patch0
new file mode 100644 (file)
index 0000000..6ff486b
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.418
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.418
+Problem:    When a user complete function returns -1 an error message is
+           given.
+Solution:   When -2 is returned stop completion silently. (Yasuhiro Matsumoto)
+Files:     src/edit.c
+
+
+*** ../vim-7.3.417/src/edit.c  2012-01-20 14:32:22.000000000 +0100
+--- src/edit.c 2012-01-26 18:32:23.000000000 +0100
+***************
+*** 5189,5194 ****
+--- 5189,5199 ----
+               return FAIL;
+           }
+  
++          /* Return value -2 means the user complete function wants to
++           * cancel the complete without an error. */
++          if (col == -2)
++              return FAIL;
++ 
+           /*
+            * Reset extended parameters of completion, when start new
+            * completion.
+*** ../vim-7.3.417/src/version.c       2012-01-26 18:58:13.000000000 +0100
+--- src/version.c      2012-01-26 18:42:14.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     418,
+  /**/
+
+-- 
+If someone questions your market projections, simply point out that your
+target market is "People who are nuts" and "People who will buy any damn
+thing".  Nobody is going to tell you there aren't enough of those people
+to go around.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.419.patch0 b/vim/patches/vim-7.3.419.patch0
new file mode 100644 (file)
index 0000000..865a47c
--- /dev/null
@@ -0,0 +1,85 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.419
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.419
+Problem:    DBCS encoding in a user command does not always work.
+Solution:   Skip over DBCS characters. (Yasuhiro Matsumoto)
+Files:     src/ex_docmd.c
+
+
+*** ../vim-7.3.418/src/ex_docmd.c      2011-12-14 14:49:41.000000000 +0100
+--- src/ex_docmd.c     2012-01-26 20:04:01.000000000 +0100
+***************
+*** 5967,5973 ****
+           result = STRLEN(eap->arg) + 2;
+           for (p = eap->arg; *p; ++p)
+           {
+!              if (*p == '\\' || *p == '"')
+                   ++result;
+           }
+  
+--- 5967,5980 ----
+           result = STRLEN(eap->arg) + 2;
+           for (p = eap->arg; *p; ++p)
+           {
+! #ifdef  FEAT_MBYTE
+!              if (enc_dbcs != 0 && (*mb_ptr2len)(p) == 2)
+!                  /* DBCS can contain \ in a trail byte, skip the
+!                   * double-byte character. */
+!                  ++p;
+!              else
+! #endif
+!                   if (*p == '\\' || *p == '"')
+                   ++result;
+           }
+  
+***************
+*** 5976,5982 ****
+               *buf++ = '"';
+               for (p = eap->arg; *p; ++p)
+               {
+!                  if (*p == '\\' || *p == '"')
+                       *buf++ = '\\';
+                   *buf++ = *p;
+               }
+--- 5983,5996 ----
+               *buf++ = '"';
+               for (p = eap->arg; *p; ++p)
+               {
+! #ifdef  FEAT_MBYTE
+!                  if (enc_dbcs != 0 && (*mb_ptr2len)(p) == 2)
+!                      /* DBCS can contain \ in a trail byte, copy the
+!                       * double-byte character to avoid escaping. */
+!                      *buf++ = *p++;
+!                  else
+! #endif
+!                       if (*p == '\\' || *p == '"')
+                       *buf++ = '\\';
+                   *buf++ = *p;
+               }
+*** ../vim-7.3.418/src/version.c       2012-01-26 18:58:25.000000000 +0100
+--- src/version.c      2012-01-26 20:40:34.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     419,
+  /**/
+
+-- 
+You have heard the saying that if you put a thousand monkeys in a room with a
+thousand typewriters and waited long enough, eventually you would have a room
+full of dead monkeys.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.420.patch0 b/vim/patches/vim-7.3.420.patch0
new file mode 100644 (file)
index 0000000..d698d0b
--- /dev/null
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.420
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.420
+Problem:    "it" and "at" don't work properly with a dash in the tag name.
+Solution:   Require a space to match the tag name. (Christian Brabandt)
+Files:     src/search.c
+
+
+*** ../vim-7.3.419/src/search.c        2012-01-10 22:26:12.000000000 +0100
+--- src/search.c       2012-01-26 20:51:43.000000000 +0100
+***************
+*** 3918,3924 ****
+       curwin->w_cursor = old_pos;
+       goto theend;
+      }
+!     spat = alloc(len + 29);
+      epat = alloc(len + 9);
+      if (spat == NULL || epat == NULL)
+      {
+--- 3918,3924 ----
+       curwin->w_cursor = old_pos;
+       goto theend;
+      }
+!     spat = alloc(len + 31);
+      epat = alloc(len + 9);
+      if (spat == NULL || epat == NULL)
+      {
+***************
+*** 3927,3933 ****
+       curwin->w_cursor = old_pos;
+       goto theend;
+      }
+!     sprintf((char *)spat, "<%.*s\\>\\%%(\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
+      sprintf((char *)epat, "</%.*s>\\c", len, p);
+  
+      r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
+--- 3927,3933 ----
+       curwin->w_cursor = old_pos;
+       goto theend;
+      }
+!     sprintf((char *)spat, "<%.*s\\>\\%%(\\s\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
+      sprintf((char *)epat, "</%.*s>\\c", len, p);
+  
+      r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
+*** ../vim-7.3.419/src/version.c       2012-01-26 20:41:22.000000000 +0100
+--- src/version.c      2012-01-26 20:51:16.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     420,
+  /**/
+
+-- 
+All good vision statements are created by groups of people with bloated
+bladders who would rather be doing anything else.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.421.patch0 b/vim/patches/vim-7.3.421.patch0
new file mode 100644 (file)
index 0000000..eadc29d
--- /dev/null
@@ -0,0 +1,60 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.421
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.421
+Problem:    Get E832 when setting 'undofile' in vimrc and there is a file to
+           be edited on the command line. (Toothpik)
+Solution:   Do not try reading the undo file for a file that wasn't loaded.
+Files:     src/option.c
+
+
+*** ../vim-7.3.420/src/option.c        2012-01-10 22:26:12.000000000 +0100
+--- src/option.c       2012-01-28 17:55:24.000000000 +0100
+***************
+*** 7527,7536 ****
+       {
+           /* When 'undofile' is set globally: for every buffer, otherwise
+            * only for the current buffer: Try to read in the undofile, if
+!           * one exists and the buffer wasn't changed. */
+           if ((curbuf == save_curbuf
+                               || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
+!                  && !curbufIsChanged())
+           {
+               u_compute_hash(hash);
+               u_read_undo(NULL, hash, curbuf->b_fname);
+--- 7527,7537 ----
+       {
+           /* When 'undofile' is set globally: for every buffer, otherwise
+            * only for the current buffer: Try to read in the undofile, if
+!           * one exists and the buffer wasn't changed and the buffer was
+!           * loaded. */
+           if ((curbuf == save_curbuf
+                               || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
+!                  && !curbufIsChanged() && curbuf->b_ml.ml_mfp != NULL)
+           {
+               u_compute_hash(hash);
+               u_read_undo(NULL, hash, curbuf->b_fname);
+*** ../vim-7.3.420/src/version.c       2012-01-26 20:58:21.000000000 +0100
+--- src/version.c      2012-01-28 18:03:09.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     421,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+4. Your eyeglasses have a web site burned in on them.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.422.patch0 b/vim/patches/vim-7.3.422.patch0
new file mode 100644 (file)
index 0000000..7be4aeb
--- /dev/null
@@ -0,0 +1,94 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.422
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.422
+Problem:    Python 3 does not have __members__.
+Solution:   Add "name" and "number" in another way. (lilydjwg)
+Files:      src/if_py_both.h, src/if_python3.c
+
+
+*** ../vim-7.3.421/src/if_py_both.h    2011-09-07 19:30:17.000000000 +0200
+--- src/if_py_both.h   2012-02-04 19:59:43.000000000 +0100
+***************
+*** 1479,1484 ****
+--- 1479,1487 ----
+      {"append",           BufferAppend,       1,          "Append data to Vim buffer" },
+      {"mark",     BufferMark,         1,          "Return (row,col) representing position of named mark" },
+      {"range",            BufferRange,        1,          "Return a range object which represents the part of the given buffer between line numbers s and e" },
++ #if PY_VERSION_HEX >= 0x03000000
++     {"__dir__",          BufferDir,          4,          "List its attributes" },
++ #endif
+      { NULL,      NULL,               0,          NULL }
+  };
+  
+*** ../vim-7.3.421/src/if_python3.c    2011-09-14 18:59:35.000000000 +0200
+--- src/if_python3.c   2012-02-04 20:13:00.000000000 +0100
+***************
+*** 468,473 ****
+--- 468,474 ----
+  static PyObject *BufferNew (buf_T *);
+  static PyObject *WindowNew(win_T *);
+  static PyObject *LineToString(const char *);
++ static PyObject *BufferDir(PyObject *, PyObject *);
+  
+  static PyTypeObject RangeType;
+  
+***************
+*** 961,973 ****
+       return Py_BuildValue("s", this->buf->b_ffname);
+      else if (strcmp(name, "number") == 0)
+       return Py_BuildValue("n", this->buf->b_fnum);
+-     else if (strcmp(name,"__members__") == 0)
+-      return Py_BuildValue("[ss]", "name", "number");
+      else
+       return PyObject_GenericGetAttr(self, nameobj);
+  }
+  
+      static PyObject *
+  BufferRepr(PyObject *self)
+  {
+      static char repr[100];
+--- 962,979 ----
+       return Py_BuildValue("s", this->buf->b_ffname);
+      else if (strcmp(name, "number") == 0)
+       return Py_BuildValue("n", this->buf->b_fnum);
+      else
+       return PyObject_GenericGetAttr(self, nameobj);
+  }
+  
+      static PyObject *
++ BufferDir(PyObject *self UNUSED, PyObject *args UNUSED)
++ {
++     return Py_BuildValue("[sssss]", "name", "number",
++                                                 "append", "mark", "range");
++ }
++ 
++     static PyObject *
+  BufferRepr(PyObject *self)
+  {
+      static char repr[100];
+*** ../vim-7.3.421/src/version.c       2012-01-28 18:03:30.000000000 +0100
+--- src/version.c      2012-02-04 20:14:58.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     422,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+15. Five days in advance, tell your friends you can't attend their
+    party because you're not in the mood.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.423.patch0 b/vim/patches/vim-7.3.423.patch0
new file mode 100644 (file)
index 0000000..74bf62d
--- /dev/null
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.423
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.423 
+Problem:    Small mistakes in comments, proto and indent. 
+Solution:   Fix the mistakes. 
+Files:      src/ex_cmds2.c, src/structs.h, src/ui.c, src/proto/ex_docmd.pro 
+
+
+*** ../vim-7.3.422/src/ex_cmds2.c      2011-10-20 21:38:37.000000000 +0200
+--- src/ex_cmds2.c     2011-11-30 11:02:20.000000000 +0100
+***************
+*** 1939,1945 ****
+  }
+  
+  /*
+!  * Return TRUE if window "win" is editing then file at the current argument
+   * index.
+   */
+      static int
+--- 1939,1945 ----
+  }
+  
+  /*
+!  * Return TRUE if window "win" is editing the file at the current argument
+   * index.
+   */
+      static int
+*** ../vim-7.3.422/src/structs.h       2011-05-19 13:40:47.000000000 +0200
+--- src/structs.h      2011-09-10 13:48:53.000000000 +0200
+***************
+*** 1846,1852 ****
+                                      often, keep it the first item!) */
+  
+  #if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
+!     synblock_T       *w_s;
+  #endif
+  
+  #ifdef FEAT_WINDOWS
+--- 1846,1852 ----
+                                      often, keep it the first item!) */
+  
+  #if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
+!     synblock_T       *w_s;               /* for :ownsyntax */
+  #endif
+  
+  #ifdef FEAT_WINDOWS
+*** ../vim-7.3.422/src/ui.c    2011-07-07 16:20:45.000000000 +0200
+--- src/ui.c   2012-01-21 14:03:42.000000000 +0100
+***************
+*** 2363,2376 ****
+              XtLastTimestampProcessed(XtDisplay(myShell)),
+              clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
+              NULL) == False)
+!      return FAIL;
+      }
+      else
+  #endif
+      {
+       if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell),
+                 cbd->sel_atom, timestamp_atom, 32, PropModeAppend, NULL, 0))
+!      return FAIL;
+      }
+      /* Flush is required in a terminal as nothing else is doing it. */
+      XFlush(XtDisplay(myShell));
+--- 2363,2376 ----
+              XtLastTimestampProcessed(XtDisplay(myShell)),
+              clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
+              NULL) == False)
+!          return FAIL;
+      }
+      else
+  #endif
+      {
+       if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell),
+                 cbd->sel_atom, timestamp_atom, 32, PropModeAppend, NULL, 0))
+!          return FAIL;
+      }
+      /* Flush is required in a terminal as nothing else is doing it. */
+      XFlush(XtDisplay(myShell));
+*** ../vim-7.3.422/src/proto/ex_docmd.pro      2010-08-15 21:57:28.000000000 +0200
+--- src/proto/ex_docmd.pro     2011-01-16 00:22:21.000000000 +0100
+***************
+*** 1,7 ****
+  /* ex_docmd.c */
+  void do_exmode __ARGS((int improved));
+  int do_cmdline_cmd __ARGS((char_u *cmd));
+! int do_cmdline __ARGS((char_u *cmdline, char_u *(*getline)(int, void *, int), void *cookie, int flags));
+  int getline_equal __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
+  void *getline_cookie __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie));
+  int checkforcmd __ARGS((char_u **pp, char *cmd, int len));
+--- 1,7 ----
+  /* ex_docmd.c */
+  void do_exmode __ARGS((int improved));
+  int do_cmdline_cmd __ARGS((char_u *cmd));
+! int do_cmdline __ARGS((char_u *cmdline, char_u *(*fgetline)(int, void *, int), void *cookie, int flags));
+  int getline_equal __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
+  void *getline_cookie __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie));
+  int checkforcmd __ARGS((char_u **pp, char *cmd, int len));
+*** ../vim-7.3.422/src/version.c       2012-02-04 20:17:21.000000000 +0100
+--- src/version.c      2012-02-04 21:56:43.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     423,
+  /**/
+
+-- 
+In many of the more relaxed civilizations on the Outer Eastern Rim of the
+Galaxy, "The Hitchhiker's Guide to the Galaxy" has already supplanted the
+great "Encyclopedia Galactica" as the standard repository of all knowledge
+and wisdom, for though it has many omissions and contains much that is
+apocryphal, or at least wildly inaccurate, it scores over the older, more
+pedestrian work in two important respects.
+First, it is slightly cheaper; and second, it has the words "DON'T PANIC"
+inscribed in large friendly letters on its cover.
+               -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.424.patch0 b/vim/patches/vim-7.3.424.patch0
new file mode 100644 (file)
index 0000000..61786ed
--- /dev/null
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.424
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.424
+Problem:    Win16 version missing some functions.
+Solution:   Add #defines for the functions.
+Files:      src/gui_w16.c
+
+
+*** ../vim-7.3.423/src/gui_w16.c       2011-01-17 20:08:03.000000000 +0100
+--- src/gui_w16.c      2011-08-10 16:50:21.000000000 +0200
+***************
+*** 21,26 ****
+--- 21,32 ----
+   *
+   */
+  
++ /* Win16 doesn't use the "W" methods. */
++ #define pDispatchMessage DispatchMessage
++ #define pGetMessage GetMessage
++ #define pIsDialogMessage IsDialogMessage
++ #define pPeekMessage PeekMessage
++ 
+  /*
+   * Include the common stuff for MS-Windows GUI.
+   */
+*** ../vim-7.3.423/src/version.c       2012-02-04 21:57:44.000000000 +0100
+--- src/version.c      2012-02-04 22:01:13.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     424,
+  /**/
+
+-- 
+Now it is such a bizarrely improbable coincidence that anything as
+mind-bogglingly useful as the Babel fish could have evolved purely by chance
+that some thinkers have chosen to see it as a final and clinching proof of the
+NON-existence of God.
+The argument goes something like this: 'I refuse to prove that I exist,' says
+God, 'for proof denies faith, and without faith I am nothing.'
+'But,' says Man, 'the Babel fish is a dead giveaway, isn't it?  It could not
+have evolved by chance.  It proves you exist, and so therefore, by your own
+arguments, you don't.  QED.'
+'Oh dear,' says God, 'I hadn't thought of that,' and promptly vanishes in a
+puff of logic.
+'Oh, that was easy,' says Man, and for an encore goes on to prove that black
+is white and gets himself killed on the next pedestrian crossing.
+               -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.425.patch0 b/vim/patches/vim-7.3.425.patch0
new file mode 100644 (file)
index 0000000..aeadf3a
--- /dev/null
@@ -0,0 +1,78 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.425
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.425 (after 7.3.265)
+Problem:    Search history lines are duplicated. (Edwin Steiner)
+Solution:   Convert separator character from space to NUL.
+Files:      src/ex_getln.c
+
+
+*** ../vim-7.3.424/src/ex_getln.c      2012-01-26 13:01:54.000000000 +0100
+--- src/ex_getln.c     2012-02-04 22:27:43.000000000 +0100
+***************
+*** 6027,6034 ****
+       val = viminfo_readstring(virp, 1, TRUE);
+       if (val != NULL && *val != NUL)
+       {
+           if (!in_history(type, val + (type == HIST_SEARCH),
+!                                                viminfo_add_at_front, *val))
+           {
+               /* Need to re-allocate to append the separator byte. */
+               len = STRLEN(val);
+--- 6027,6036 ----
+       val = viminfo_readstring(virp, 1, TRUE);
+       if (val != NULL && *val != NUL)
+       {
++          int sep = (*val == ' ' ? NUL : *val);
++ 
+           if (!in_history(type, val + (type == HIST_SEARCH),
+!                                                 viminfo_add_at_front, sep))
+           {
+               /* Need to re-allocate to append the separator byte. */
+               len = STRLEN(val);
+***************
+*** 6040,6046 ****
+                       /* Search entry: Move the separator from the first
+                        * column to after the NUL. */
+                       mch_memmove(p, val + 1, (size_t)len);
+!                      p[len] = (*val == ' ' ? NUL : *val);
+                   }
+                   else
+                   {
+--- 6042,6048 ----
+                       /* Search entry: Move the separator from the first
+                        * column to after the NUL. */
+                       mch_memmove(p, val + 1, (size_t)len);
+!                      p[len] = sep;
+                   }
+                   else
+                   {
+*** ../vim-7.3.424/src/version.c       2012-02-04 22:01:44.000000000 +0100
+--- src/version.c      2012-02-04 22:30:36.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     425,
+  /**/
+
+-- 
+"So this is it," said Arthur, "we are going to die."
+"Yes," said Ford, "except...no!  Wait a minute!"  He suddenly lunged across
+the chamber at something behind Arthur's line of vision.  "What's this
+switch?" he cried.
+"What?   Where?" cried Arthur, twisting around.
+"No, I was only fooling," said Ford, "we are going to die after all."
+               -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.426.patch0 b/vim/patches/vim-7.3.426.patch0
new file mode 100644 (file)
index 0000000..76380af
--- /dev/null
@@ -0,0 +1,279 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.426
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.426
+Problem:    With '$' in 'cpoptions' the $ is not displayed in the first
+            column.
+Solution:   Use -1 instead of 0 as a special value. (Hideki Eiraku and
+            Hirohito Higashi)
+Files:      src/edit.c, src/globals.h, src/move.c, src/screen.c, src/search.c 
+    
+
+*** ../vim-7.3.425/src/edit.c  2012-01-26 18:58:25.000000000 +0100
+--- src/edit.c 2012-02-04 23:23:45.000000000 +0100
+***************
+*** 1763,1771 ****
+      static void
+  undisplay_dollar()
+  {
+!     if (dollar_vcol)
+      {
+!      dollar_vcol = 0;
+       redrawWinline(curwin->w_cursor.lnum, FALSE);
+      }
+  }
+--- 1763,1771 ----
+      static void
+  undisplay_dollar()
+  {
+!     if (dollar_vcol >= 0)
+      {
+!      dollar_vcol = -1;
+       redrawWinline(curwin->w_cursor.lnum, FALSE);
+      }
+  }
+***************
+*** 5441,5447 ****
+                               compl_curr_match->cp_number);
+               edit_submode_extra = match_ref;
+               edit_submode_highl = HLF_R;
+!              if (dollar_vcol)
+                   curs_columns(FALSE);
+           }
+       }
+--- 5441,5447 ----
+                               compl_curr_match->cp_number);
+               edit_submode_extra = match_ref;
+               edit_submode_highl = HLF_R;
+!              if (dollar_vcol >= 0)
+                   curs_columns(FALSE);
+           }
+       }
+***************
+*** 8961,8967 ****
+       * We can emulate the vi behaviour by pretending there is a dollar
+       * displayed even when there isn't.
+       *  --pkv Sun Jan 19 01:56:40 EST 2003 */
+!     if (vim_strchr(p_cpo, CPO_BACKSPACE) != NULL && dollar_vcol == 0)
+       dollar_vcol = curwin->w_virtcol;
+  
+  #ifdef FEAT_FOLDING
+--- 8961,8967 ----
+       * We can emulate the vi behaviour by pretending there is a dollar
+       * displayed even when there isn't.
+       *  --pkv Sun Jan 19 01:56:40 EST 2003 */
+!     if (vim_strchr(p_cpo, CPO_BACKSPACE) != NULL && dollar_vcol == -1)
+       dollar_vcol = curwin->w_virtcol;
+  
+  #ifdef FEAT_FOLDING
+*** ../vim-7.3.425/src/globals.h       2011-05-10 16:41:13.000000000 +0200
+--- src/globals.h      2012-02-04 23:24:07.000000000 +0100
+***************
+*** 113,121 ****
+   * When '$' is included in 'cpoptions' option set:
+   * When a change command is given that deletes only part of a line, a dollar
+   * is put at the end of the changed text. dollar_vcol is set to the virtual
+!  * column of this '$'.
+   */
+! EXTERN colnr_T       dollar_vcol INIT(= 0);
+  
+  #ifdef FEAT_INS_EXPAND
+  /*
+--- 113,121 ----
+   * When '$' is included in 'cpoptions' option set:
+   * When a change command is given that deletes only part of a line, a dollar
+   * is put at the end of the changed text. dollar_vcol is set to the virtual
+!  * column of this '$'.  -1 is used to indicate no $ is being displayed.
+   */
+! EXTERN colnr_T       dollar_vcol INIT(= -1);
+  
+  #ifdef FEAT_INS_EXPAND
+  /*
+*** ../vim-7.3.425/src/move.c  2012-01-10 22:26:12.000000000 +0100
+--- src/move.c 2012-02-04 23:21:08.000000000 +0100
+***************
+*** 362,368 ****
+  #endif
+           )
+      {
+!      dollar_vcol = 0;
+       if (curwin->w_skipcol != 0)
+       {
+           curwin->w_skipcol = 0;
+--- 362,368 ----
+  #endif
+           )
+      {
+!      dollar_vcol = -1;
+       if (curwin->w_skipcol != 0)
+       {
+           curwin->w_skipcol = 0;
+***************
+*** 966,972 ****
+  
+      /* remove '$' from change command when cursor moves onto it */
+      if (startcol > dollar_vcol)
+!      dollar_vcol = 0;
+  
+      extra = curwin_col_off();
+      curwin->w_wcol = curwin->w_virtcol + extra;
+--- 966,972 ----
+  
+      /* remove '$' from change command when cursor moves onto it */
+      if (startcol > dollar_vcol)
+!      dollar_vcol = -1;
+  
+      extra = curwin_col_off();
+      curwin->w_wcol = curwin->w_virtcol + extra;
+*** ../vim-7.3.425/src/screen.c        2012-01-10 22:26:12.000000000 +0100
+--- src/screen.c       2012-02-04 23:22:44.000000000 +0100
+***************
+*** 1637,1647 ****
+            * When at start of changed lines: May scroll following lines
+            * up or down to minimize redrawing.
+            * Don't do this when the change continues until the end.
+!           * Don't scroll when dollar_vcol is non-zero, keep the "$".
+            */
+           if (lnum == mod_top
+                   && mod_bot != MAXLNUM
+!                  && !(dollar_vcol != 0 && mod_bot == mod_top + 1))
+           {
+               int             old_rows = 0;
+               int             new_rows = 0;
+--- 1637,1647 ----
+            * When at start of changed lines: May scroll following lines
+            * up or down to minimize redrawing.
+            * Don't do this when the change continues until the end.
+!           * Don't scroll when dollar_vcol >= 0, keep the "$".
+            */
+           if (lnum == mod_top
+                   && mod_bot != MAXLNUM
+!                  && !(dollar_vcol >= 0 && mod_bot == mod_top + 1))
+           {
+               int             old_rows = 0;
+               int             new_rows = 0;
+***************
+*** 1868,1879 ****
+           if (row > wp->w_height)     /* past end of screen */
+           {
+               /* we may need the size of that too long line later on */
+!              if (dollar_vcol == 0)
+                   wp->w_lines[idx].wl_size = plines_win(wp, lnum, TRUE);
+               ++idx;
+               break;
+           }
+!          if (dollar_vcol == 0)
+               wp->w_lines[idx].wl_size = row - srow;
+           ++idx;
+  #ifdef FEAT_FOLDING
+--- 1868,1879 ----
+           if (row > wp->w_height)     /* past end of screen */
+           {
+               /* we may need the size of that too long line later on */
+!              if (dollar_vcol == -1)
+                   wp->w_lines[idx].wl_size = plines_win(wp, lnum, TRUE);
+               ++idx;
+               break;
+           }
+!          if (dollar_vcol == -1)
+               wp->w_lines[idx].wl_size = row - srow;
+           ++idx;
+  #ifdef FEAT_FOLDING
+***************
+*** 1990,1996 ****
+           }
+  #endif
+       }
+!      else if (dollar_vcol == 0)
+           wp->w_botline = lnum;
+  
+       /* make sure the rest of the screen is blank */
+--- 1990,1996 ----
+           }
+  #endif
+       }
+!      else if (dollar_vcol == -1)
+           wp->w_botline = lnum;
+  
+       /* make sure the rest of the screen is blank */
+***************
+*** 2005,2011 ****
+      wp->w_old_botfill = wp->w_botfill;
+  #endif
+  
+!     if (dollar_vcol == 0)
+      {
+       /*
+        * There is a trick with w_botline.  If we invalidate it on each
+--- 2005,2011 ----
+      wp->w_old_botfill = wp->w_botfill;
+  #endif
+  
+!     if (dollar_vcol == -1)
+      {
+       /*
+        * There is a trick with w_botline.  If we invalidate it on each
+***************
+*** 3564,3570 ****
+       }
+  
+       /* When still displaying '$' of change command, stop at cursor */
+!      if (dollar_vcol != 0 && wp == curwin
+                  && lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol
+  #ifdef FEAT_DIFF
+                                  && filler_todo <= 0
+--- 3564,3570 ----
+       }
+  
+       /* When still displaying '$' of change command, stop at cursor */
+!      if (dollar_vcol >= 0 && wp == curwin
+                  && lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol
+  #ifdef FEAT_DIFF
+                                  && filler_todo <= 0
+*** ../vim-7.3.425/src/search.c        2012-01-26 20:58:21.000000000 +0100
+--- src/search.c       2012-02-04 23:23:10.000000000 +0100
+***************
+*** 2501,2508 ****
+           save_siso = p_siso;
+           /* Handle "$" in 'cpo': If the ')' is typed on top of the "$",
+            * stop displaying the "$". */
+!          if (dollar_vcol > 0 && dollar_vcol == curwin->w_virtcol)
+!              dollar_vcol = 0;
+           ++curwin->w_virtcol;        /* do display ')' just before "$" */
+           update_screen(VALID);       /* show the new char first */
+  
+--- 2501,2508 ----
+           save_siso = p_siso;
+           /* Handle "$" in 'cpo': If the ')' is typed on top of the "$",
+            * stop displaying the "$". */
+!          if (dollar_vcol >= 0 && dollar_vcol == curwin->w_virtcol)
+!              dollar_vcol = -1;
+           ++curwin->w_virtcol;        /* do display ')' just before "$" */
+           update_screen(VALID);       /* show the new char first */
+  
+*** ../vim-7.3.425/src/version.c       2012-02-04 22:44:27.000000000 +0100
+--- src/version.c      2012-02-04 23:32:55.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     426,
+  /**/
+
+
+-- 
+I am also told that there is a logical proof out there somewhere
+that demonstrates that there is no task which duct tape cannot handle.
+                                       -- Paul Brannan
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.427.patch0 b/vim/patches/vim-7.3.427.patch0
new file mode 100644 (file)
index 0000000..61df881
--- /dev/null
@@ -0,0 +1,378 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.427
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.427
+Problem:    readfile() can be slow with long lines.
+Solution:   Use realloc() instead of alloc(). (John Little)
+Files:      src/eval.c
+
+
+*** ../vim-7.3.426/src/eval.c  2012-01-26 14:32:26.000000000 +0100
+--- src/eval.c 2012-02-05 00:25:39.000000000 +0100
+***************
+*** 14325,14346 ****
+      typval_T *rettv;
+  {
+      int              binary = FALSE;
+      char_u   *fname;
+      FILE     *fd;
+!     listitem_T       *li;
+! #define FREAD_SIZE 200           /* optimized for text lines */
+!     char_u   buf[FREAD_SIZE];
+!     int              readlen;    /* size of last fread() */
+!     int              buflen;     /* nr of valid chars in buf[] */
+!     int              filtd;      /* how much in buf[] was NUL -> '\n' filtered */
+!     int              tolist;     /* first byte in buf[] still to be put in list */
+!     int              chop;       /* how many CR to chop off */
+!     char_u   *prev = NULL;   /* previously read bytes, if any */
+!     int              prevlen = 0;    /* length of "prev" if not NULL */
+!     char_u   *s;
+!     int              len;
+!     long     maxline = MAXLNUM;
+!     long     cnt = 0;
+  
+      if (argvars[1].v_type != VAR_UNKNOWN)
+      {
+--- 14325,14343 ----
+      typval_T *rettv;
+  {
+      int              binary = FALSE;
++     int              failed = FALSE;
+      char_u   *fname;
+      FILE     *fd;
+!     char_u   buf[(IOSIZE/256)*256];  /* rounded to avoid odd + 1 */
+!     int              io_size = sizeof(buf);
+!     int              readlen;                /* size of last fread() */
+!     char_u   *prev    = NULL;        /* previously read bytes, if any */
+!     long     prevlen  = 0;           /* length of data in prev */
+!     long     prevsize = 0;           /* size of prev buffer */
+!     long     maxline  = MAXLNUM;
+!     long     cnt      = 0;
+!     char_u   *p;                     /* position in buf */
+!     char_u   *start;                 /* start of current line */
+  
+      if (argvars[1].v_type != VAR_UNKNOWN)
+      {
+***************
+*** 14362,14410 ****
+       return;
+      }
+  
+-     filtd = 0;
+      while (cnt < maxline || maxline < 0)
+      {
+!      readlen = (int)fread(buf + filtd, 1, FREAD_SIZE - filtd, fd);
+!      buflen = filtd + readlen;
+!      tolist = 0;
+!      for ( ; filtd < buflen || readlen <= 0; ++filtd)
+!      {
+!          if (readlen <= 0 || buf[filtd] == '\n')
+!          {
+!              /* In binary mode add an empty list item when the last
+!               * non-empty line ends in a '\n'. */
+!              if (!binary && readlen == 0 && filtd == 0 && prev == NULL)
+!                  break;
+  
+!              /* Found end-of-line or end-of-file: add a text line to the
+!               * list. */
+!              chop = 0;
+!              if (!binary)
+!                  while (filtd - chop - 1 >= tolist
+!                                        && buf[filtd - chop - 1] == '\r')
+!                      ++chop;
+!              len = filtd - tolist - chop;
+!              if (prev == NULL)
+!                  s = vim_strnsave(buf + tolist, len);
+               else
+               {
+!                  s = alloc((unsigned)(prevlen + len + 1));
+!                  if (s != NULL)
+                   {
+!                      mch_memmove(s, prev, prevlen);
+!                      vim_free(prev);
+!                      prev = NULL;
+!                      mch_memmove(s + prevlen, buf + tolist, len);
+                       s[prevlen + len] = NUL;
+                   }
+               }
+!              tolist = filtd + 1;
+  
+!              li = listitem_alloc();
+!              if (li == NULL)
+               {
+                   vim_free(s);
+                   break;
+               }
+               li->li_tv.v_type = VAR_STRING;
+--- 14359,14419 ----
+       return;
+      }
+  
+      while (cnt < maxline || maxline < 0)
+      {
+!      readlen = (int)fread(buf, 1, io_size, fd);
+! 
+!      /* This for loop processes what was read, but is also entered at end
+!       * of file so that either:
+!       * - an incomplete line gets written
+!       * - a "binary" file gets an empty line at the end if it ends in a
+!       *   newline.  */
+!      for (p = buf, start = buf;
+!              p < buf + readlen || (readlen <= 0 && (prevlen > 0 || binary));
+!              ++p)
+!      {
+!          if (*p == '\n' || readlen <= 0)
+!          {
+!              listitem_T  *li;
+!              char_u      *s  = NULL;
+!              long_u      len = p - start;
+  
+!              /* Finished a line.  Remove CRs before NL. */
+!              if (readlen > 0 && !binary)
+!              {
+!                  while (len > 0 && start[len - 1] == '\r')
+!                      --len;
+!                  /* removal may cross back to the "prev" string */
+!                  if (len == 0)
+!                      while (prevlen > 0 && prev[prevlen - 1] == '\r')
+!                          --prevlen;
+!              }
+!              if (prevlen == 0)
+!                  s = vim_strnsave(start, len);
+               else
+               {
+!                  /* Change "prev" buffer to be the right size.  This way
+!                   * the bytes are only copied once, and very long lines are
+!                   * allocated only once.  */
+!                  if ((s = vim_realloc(prev, prevlen + len + 1)) != NULL)
+                   {
+!                      mch_memmove(s + prevlen, start, len);
+                       s[prevlen + len] = NUL;
++                      prev = NULL; /* the list will own the string */
++                      prevlen = prevsize = 0;
+                   }
+               }
+!              if (s == NULL)
+!              {
+!                  do_outofmem_msg((long_u) prevlen + len + 1);
+!                  failed = TRUE;
+!                  break;
+!              }
+  
+!              if ((li = listitem_alloc()) == NULL)
+               {
+                   vim_free(s);
++                  failed = TRUE;
+                   break;
+               }
+               li->li_tv.v_type = VAR_STRING;
+***************
+*** 14412,14485 ****
+               li->li_tv.vval.v_string = s;
+               list_append(rettv->vval.v_list, li);
+  
+!              if (++cnt >= maxline && maxline >= 0)
+!                  break;
+!              if (readlen <= 0)
+                   break;
+           }
+!          else if (buf[filtd] == NUL)
+!              buf[filtd] = '\n';
+  #ifdef FEAT_MBYTE
+!          else if (buf[filtd] == 0xef
+!                  && enc_utf8
+!                  && filtd + 2 < buflen
+!                  && !binary
+!                  && buf[filtd + 1] == 0xbb
+!                  && buf[filtd + 2] == 0xbf)
+!          {
+!              /* remove utf-8 byte order mark */
+!              mch_memmove(buf + filtd, buf + filtd + 3, buflen - filtd - 3);
+!              --filtd;
+!              buflen -= 3;
+           }
+  #endif
+!      }
+!      if (readlen <= 0)
+!          break;
+  
+!      if (tolist == 0)
+       {
+!          if (buflen >= FREAD_SIZE / 2)
+           {
+!              /* "buf" is full, need to move text to an allocated buffer */
+!              if (prev == NULL)
+               {
+!                  prev = vim_strnsave(buf, buflen);
+!                  prevlen = buflen;
+               }
+!              else
+               {
+!                  s = alloc((unsigned)(prevlen + buflen));
+!                  if (s != NULL)
+!                  {
+!                      mch_memmove(s, prev, prevlen);
+!                      mch_memmove(s + prevlen, buf, buflen);
+!                      vim_free(prev);
+!                      prev = s;
+!                      prevlen += buflen;
+!                  }
+               }
+!              filtd = 0;
+           }
+       }
+!      else
+!      {
+!          mch_memmove(buf, buf + tolist, buflen - tolist);
+!          filtd -= tolist;
+!      }
+!     }
+  
+      /*
+       * For a negative line count use only the lines at the end of the file,
+       * free the rest.
+       */
+!     if (maxline < 0)
+       while (cnt > -maxline)
+       {
+           listitem_remove(rettv->vval.v_list, rettv->vval.v_list->lv_first);
+           --cnt;
+       }
+  
+      vim_free(prev);
+      fclose(fd);
+  }
+--- 14421,14529 ----
+               li->li_tv.vval.v_string = s;
+               list_append(rettv->vval.v_list, li);
+  
+!              start = p + 1; /* step over newline */
+!              if ((++cnt >= maxline && maxline >= 0) || readlen <= 0)
+                   break;
+           }
+!          else if (*p == NUL)
+!              *p = '\n';
+  #ifdef FEAT_MBYTE
+!          /* Check for utf8 "bom"; U+FEFF is encoded as EF BB BF.  Do this
+!           * when finding the BF and check the previous two bytes. */
+!          else if (*p == 0xbf && enc_utf8 && !binary)
+!          {
+!              /* Find the two bytes before the 0xbf.  If p is at buf, or buf
+!               * + 1, these may be in the "prev" string. */
+!              char_u back1 = p >= buf + 1 ? p[-1]
+!                                   : prevlen >= 1 ? prev[prevlen - 1] : NUL;
+!              char_u back2 = p >= buf + 2 ? p[-2]
+!                        : p == buf + 1 && prevlen >= 1 ? prev[prevlen - 1]
+!                        : prevlen >= 2 ? prev[prevlen - 2] : NUL;
+! 
+!              if (back2 == 0xef && back1 == 0xbb)
+!              {
+!                  char_u *dest = p - 2;
+! 
+!                  /* Usually a BOM is at the beginning of a file, and so at
+!                   * the beginning of a line; then we can just step over it.
+!                   */
+!                  if (start == dest)
+!                      start = p + 1;
+!                  else
+!                  {
+!                      /* have to shuffle buf to close gap */
+!                      int adjust_prevlen = 0;
+! 
+!                      if (dest < buf)
+!                      {
+!                          adjust_prevlen = buf - dest; /* must be 1 or 2 */
+!                          dest = buf;
+!                      }
+!                      if (readlen > p - buf + 1)
+!                          mch_memmove(dest, p + 1, readlen - (p - buf) - 1);
+!                      readlen -= 3 - adjust_prevlen;
+!                      prevlen -= adjust_prevlen;
+!                      p = dest - 1;
+!                  }
+!              }
+           }
+  #endif
+!      } /* for */
+  
+!      if (failed || (cnt >= maxline && maxline >= 0) || readlen <= 0)
+!          break;
+!      if (start < p)
+       {
+!          /* There's part of a line in buf, store it in "prev". */
+!          if (p - start + prevlen >= prevsize)
+           {
+!              /* need bigger "prev" buffer */
+!              char_u *newprev;
+! 
+!              /* A common use case is ordinary text files and "prev" gets a
+!               * fragment of a line, so the first allocation is made
+!               * small, to avoid repeatedly 'allocing' large and
+!               * 'reallocing' small. */
+!              if (prevsize == 0)
+!                  prevsize = p - start;
+!              else
+               {
+!                  long grow50pc = (prevsize * 3) / 2;
+!                  long growmin  = (p - start) * 2 + prevlen;
+!                  prevsize = grow50pc > growmin ? grow50pc : growmin;
+               }
+!              if ((newprev = vim_realloc(prev, prevsize)) == NULL)
+               {
+!                  do_outofmem_msg((long_u)prevsize);
+!                  failed = TRUE;
+!                  break;
+               }
+!              prev = newprev;
+           }
++          /* Add the line part to end of "prev". */
++          mch_memmove(prev + prevlen, start, p - start);
++          prevlen += p - start;
+       }
+!     } /* while */
+  
+      /*
+       * For a negative line count use only the lines at the end of the file,
+       * free the rest.
+       */
+!     if (!failed && maxline < 0)
+       while (cnt > -maxline)
+       {
+           listitem_remove(rettv->vval.v_list, rettv->vval.v_list->lv_first);
+           --cnt;
+       }
+  
++     if (failed)
++     {
++      list_free(rettv->vval.v_list, TRUE);
++      /* readfile doc says an empty list is returned on error */
++      rettv->vval.v_list = list_alloc();
++     }
++ 
+      vim_free(prev);
+      fclose(fd);
+  }
+*** ../vim-7.3.426/src/version.c       2012-02-04 23:34:57.000000000 +0100
+--- src/version.c      2012-02-05 00:38:34.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     427,
+  /**/
+
+-- 
+One difference between a man and a machine is that a machine is quiet
+when well oiled.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.428.patch0 b/vim/patches/vim-7.3.428.patch0
new file mode 100644 (file)
index 0000000..89567ed
--- /dev/null
@@ -0,0 +1,113 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.428
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.428 
+Problem:    Win32: an xpm file without a mask crashes Vim.
+Solution:   Fail when the mask is missing. (Dave Bodenstab)
+Files:      src/xpm_w32.c
+
+*** ../vim-7.3.427/src/xpm_w32.c       2010-08-15 21:57:25.000000000 +0200
+--- src/xpm_w32.c      2012-02-05 00:46:13.000000000 +0100
+***************
+*** 1,4 ****
+! /*
+   * Load XPM image.
+   *
+   * This function is placed in separate file because Xpm headers conflict with
+--- 1,5 ----
+! /* vi:set ts=8 sts=4 sw=4:
+!  *
+   * Load XPM image.
+   *
+   * This function is placed in separate file because Xpm headers conflict with
+***************
+*** 30,38 ****
+  #include "xpm.h"
+  
+  /*
+!  * Tries to load Xpm image from file 'filename'.
+!  * If fails return -1.
+!  * success - 0 and image and mask BITMAPS
+   */
+      int
+  LoadXpmImage(filename, hImage, hShape)
+--- 31,40 ----
+  #include "xpm.h"
+  
+  /*
+!  * Tries to load an Xpm image from the file "filename".
+!  * Returns -1 on failure.
+!  * Returns 0 on success and stores image and mask BITMAPS in "hImage" and
+!  * "hShape".
+   */
+      int
+  LoadXpmImage(filename, hImage, hShape)
+***************
+*** 40,46 ****
+      HBITMAP *hImage;
+      HBITMAP *hShape;
+  {
+!     XImage       *img;   /* loaded image */
+      XImage       *shp;  /* shapeimage */
+      XpmAttributes   attr;
+      int                  res;
+--- 42,48 ----
+      HBITMAP *hImage;
+      HBITMAP *hShape;
+  {
+!     XImage       *img;  /* loaded image */
+      XImage       *shp;  /* shapeimage */
+      XpmAttributes   attr;
+      int                  res;
+***************
+*** 51,60 ****
+      DeleteDC(hdc);
+      if (res < 0)
+       return -1;
+!     else
+      {
+!      *hImage = img->bitmap;
+!      *hShape = shp->bitmap;
+!      return 0;
+      }
+  }
+--- 53,65 ----
+      DeleteDC(hdc);
+      if (res < 0)
+       return -1;
+!     if (shp == NULL)
+      {
+!         if (img)
+!          XDestroyImage(img);
+!      return -1;
+      }
++     *hImage = img->bitmap;
++     *hShape = shp->bitmap;
++     return 0;
+  }
+*** ../vim-7.3.427/src/version.c       2012-02-05 00:39:14.000000000 +0100
+--- src/version.c      2012-02-05 00:47:08.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     428,
+  /**/
+
+-- 
+I'm not familiar with this proof, but I'm aware of a significant
+following of toddlers who believe that peanut butter is the solution
+to all of life's problems...           -- Tim Hammerquist
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.429.patch0 b/vim/patches/vim-7.3.429.patch0
new file mode 100644 (file)
index 0000000..801e25f
--- /dev/null
@@ -0,0 +1,192 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.429
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.429
+Problem:    When 'cpoptions' includes "E" "c0" in the first column is an
+            error. The redo register is then set to the errornous command.
+Solution:   Do not set the redo register if the command fails because of an
+            empty region. (Hideki Eiraku)
+Files:      src/getchar.c, src/normal.c, src/proto/getchar.pro
+
+
+*** ../vim-7.3.428/src/getchar.c       2012-01-10 22:26:12.000000000 +0100
+--- src/getchar.c      2012-02-05 01:05:09.000000000 +0100
+***************
+*** 470,475 ****
+--- 470,493 ----
+      }
+  }
+  
++ /*
++  * Discard the contents of the redo buffer and restore the previous redo
++  * buffer.
++  */
++     void
++ CancelRedo()
++ {
++     if (!block_redo)
++     {
++      free_buff(&redobuff);
++      redobuff = old_redobuff;
++      old_redobuff.bh_first.b_next = NULL;
++      start_stuff();
++      while (read_stuff(TRUE) != NUL)
++          ;
++     }
++ }
++ 
+  #if defined(FEAT_AUTOCMD) || defined(FEAT_EVAL) || defined(PROTO)
+  /*
+   * Save redobuff and old_redobuff to save_redobuff and save_old_redobuff.
+***************
+*** 691,699 ****
+   * Read a character from the redo buffer.  Translates K_SPECIAL, CSI and
+   * multibyte characters.
+   * The redo buffer is left as it is.
+!  * if init is TRUE, prepare for redo, return FAIL if nothing to redo, OK
+!  * otherwise
+!  * if old is TRUE, use old_redobuff instead of redobuff
+   */
+      static int
+  read_redo(init, old_redo)
+--- 709,717 ----
+   * Read a character from the redo buffer.  Translates K_SPECIAL, CSI and
+   * multibyte characters.
+   * The redo buffer is left as it is.
+!  * If init is TRUE, prepare for redo, return FAIL if nothing to redo, OK
+!  * otherwise.
+!  * If old is TRUE, use old_redobuff instead of redobuff.
+   */
+      static int
+  read_redo(init, old_redo)
+*** ../vim-7.3.428/src/normal.c        2012-01-26 11:43:04.000000000 +0100
+--- src/normal.c       2012-02-05 01:06:01.000000000 +0100
+***************
+*** 1978,1984 ****
+--- 1978,1987 ----
+           VIsual_reselect = FALSE;        /* don't reselect now */
+  #endif
+           if (empty_region_error)
++          {
+               vim_beep();
++              CancelRedo();
++          }
+           else
+           {
+               (void)op_delete(oap);
+***************
+*** 1992,1998 ****
+--- 1995,2004 ----
+           if (empty_region_error)
+           {
+               if (!gui_yank)
++              {
+                   vim_beep();
++                  CancelRedo();
++              }
+           }
+           else
+               (void)op_yank(oap, FALSE, !gui_yank);
+***************
+*** 2004,2010 ****
+--- 2010,2019 ----
+           VIsual_reselect = FALSE;        /* don't reselect now */
+  #endif
+           if (empty_region_error)
++          {
+               vim_beep();
++              CancelRedo();
++          }
+           else
+           {
+               /* This is a new edit command, not a restart.  Need to
+***************
+*** 2066,2072 ****
+--- 2075,2084 ----
+       case OP_LOWER:
+       case OP_ROT13:
+           if (empty_region_error)
++          {
+               vim_beep();
++              CancelRedo();
++          }
+           else
+               op_tilde(oap);
+           check_cursor_col();
+***************
+*** 2099,2105 ****
+--- 2111,2120 ----
+  #endif
+  #ifdef FEAT_VISUALEXTRA
+           if (empty_region_error)
++          {
+               vim_beep();
++              CancelRedo();
++          }
+           else
+           {
+               /* This is a new edit command, not a restart.  Need to
+***************
+*** 2129,2135 ****
+--- 2144,2153 ----
+  #ifdef FEAT_VISUALEXTRA
+           if (empty_region_error)
+  #endif
++          {
+               vim_beep();
++              CancelRedo();
++          }
+  #ifdef FEAT_VISUALEXTRA
+           else
+               op_replace(oap, cap->nchar);
+*** ../vim-7.3.428/src/proto/getchar.pro       2010-10-20 21:22:17.000000000 +0200
+--- src/proto/getchar.pro      2012-02-05 01:05:20.000000000 +0100
+***************
+*** 4,11 ****
+  char_u *get_inserted __ARGS((void));
+  int stuff_empty __ARGS((void));
+  void typeahead_noflush __ARGS((int c));
+! void flush_buffers __ARGS((int typeahead));
+  void ResetRedobuff __ARGS((void));
+  void saveRedobuff __ARGS((void));
+  void restoreRedobuff __ARGS((void));
+  void AppendToRedobuff __ARGS((char_u *s));
+--- 4,12 ----
+  char_u *get_inserted __ARGS((void));
+  int stuff_empty __ARGS((void));
+  void typeahead_noflush __ARGS((int c));
+! void flush_buffers __ARGS((int flush_typeahead));
+  void ResetRedobuff __ARGS((void));
++ void CancelRedo __ARGS((void));
+  void saveRedobuff __ARGS((void));
+  void restoreRedobuff __ARGS((void));
+  void AppendToRedobuff __ARGS((char_u *s));
+*** ../vim-7.3.428/src/version.c       2012-02-05 00:47:56.000000000 +0100
+--- src/version.c      2012-02-05 01:09:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     429,
+  /**/
+
+-- 
+The History of every major Galactic Civilization tends to pass through
+three distinct and recognizable phases, those of Survival, Inquiry and
+Sophistication, otherwise known as the How, Why and Where phases.
+For instance, the first phase is characterized by the question 'How can
+we eat?' the second by the question 'Why do we eat?' and the third by
+the question 'Where shall we have lunch?'
+               -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.430.patch0 b/vim/patches/vim-7.3.430.patch0
new file mode 100644 (file)
index 0000000..c67e7fb
--- /dev/null
@@ -0,0 +1,80 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.430
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.430
+Problem:    When a custom filetype detection uses "augroup END" the conf
+            fileytpe detection does not have the filetypedetect group.
+Solution:   Always end the group and include filetypedetect in the conf
+            autocommand. (Lech Lorens)
+Files:      runtime/filetype.vim
+    
+
+*** ../vim-7.3.429/runtime/filetype.vim        2012-02-05 20:08:08.000000000 +0100
+--- runtime/filetype.vim       2012-02-05 19:59:40.000000000 +0100
+***************
+*** 2545,2561 ****
+  " detected filetypes.
+  runtime! ftdetect/*.vim
+  
+  
+  " Generic configuration file (check this last, it's just guessing!)
+! au BufNewFile,BufRead,StdinReadPost *
+       \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
+       \    && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
+       \       || getline(4) =~ '^#' || getline(5) =~ '^#') |
+       \   setf conf |
+       \ endif
+  
+- augroup END
+- 
+  
+  " If the GUI is already running, may still need to install the Syntax menu.
+  " Don't do it when the 'M' flag is included in 'guioptions'.
+--- 2545,2563 ----
+  " detected filetypes.
+  runtime! ftdetect/*.vim
+  
++ " NOTE: The above command could have ended the filetypedetect autocmd group
++ " and started another one. Let's make sure it has ended to get to a consistant
++ " state.
++ augroup END
+  
+  " Generic configuration file (check this last, it's just guessing!)
+! au filetypedetect BufNewFile,BufRead,StdinReadPost *
+       \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
+       \    && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
+       \       || getline(4) =~ '^#' || getline(5) =~ '^#') |
+       \   setf conf |
+       \ endif
+  
+  
+  " If the GUI is already running, may still need to install the Syntax menu.
+  " Don't do it when the 'M' flag is included in 'guioptions'.
+*** ../vim-7.3.429/src/version.c       2012-02-05 01:18:41.000000000 +0100
+--- src/version.c      2012-02-05 20:02:18.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     430,
+  /**/
+
+-- 
+The technology involved in making anything invisible is so infinitely
+complex that nine hundred and ninety-nine billion, nine hundred and
+ninety-nine million, nine hundred and ninety-nine thousand, nine hundred
+and ninety-nine times out of a trillion it is much simpler and more
+effective just to take the thing away and do without it.
+               -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.431.patch0 b/vim/patches/vim-7.3.431.patch0
new file mode 100644 (file)
index 0000000..2e4e62b
--- /dev/null
@@ -0,0 +1,280 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.431
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.431
+Problem:    Fetching a key at a prompt may be confused by escape sequences.
+            Especially when getting a prompt at a VimEnter autocommand.
+            (Alex Efros)
+Solution:   Properly handle escape sequences deleted by check_termcode().
+Files:      src/getchar.c, src/misc1.c, src/term.c, src/proto/term.pro
+
+
+*** ../vim-7.3.430/src/getchar.c       2012-02-05 01:18:41.000000000 +0100
+--- src/getchar.c      2012-02-05 22:04:33.000000000 +0100
+***************
+*** 2282,2288 ****
+                                                  typebuf.tb_off] == RM_YES))
+                               && !timedout)
+                       {
+!                          keylen = check_termcode(max_mlen + 1, NULL, 0);
+  
+                           /* If no termcode matched but 'pastetoggle'
+                            * matched partially it's like an incomplete key
+--- 2282,2289 ----
+                                                  typebuf.tb_off] == RM_YES))
+                               && !timedout)
+                       {
+!                          keylen = check_termcode(max_mlen + 1,
+!                                                             NULL, 0, NULL);
+  
+                           /* If no termcode matched but 'pastetoggle'
+                            * matched partially it's like an incomplete key
+*** ../vim-7.3.430/src/misc1.c 2012-01-10 18:37:53.000000000 +0100
+--- src/misc1.c        2012-02-05 21:59:53.000000000 +0100
+***************
+*** 3105,3112 ****
+      int
+  get_keystroke()
+  {
+! #define CBUFLEN 151
+!     char_u   buf[CBUFLEN];
+      int              len = 0;
+      int              n;
+      int              save_mapped_ctrl_c = mapped_ctrl_c;
+--- 3105,3113 ----
+      int
+  get_keystroke()
+  {
+!     char_u   *buf = NULL;
+!     int              buflen = 150;
+!     int              maxlen;
+      int              len = 0;
+      int              n;
+      int              save_mapped_ctrl_c = mapped_ctrl_c;
+***************
+*** 3118,3129 ****
+       cursor_on();
+       out_flush();
+  
+       /* First time: blocking wait.  Second time: wait up to 100ms for a
+!       * terminal code to complete.  Leave some room for check_termcode() to
+!       * insert a key code into (max 5 chars plus NUL).  And
+!       * fix_input_buffer() can triple the number of bytes. */
+!      n = ui_inchar(buf + len, (CBUFLEN - 6 - len) / 3,
+!                                                  len == 0 ? -1L : 100L, 0);
+       if (n > 0)
+       {
+           /* Replace zero and CSI by a special key code. */
+--- 3119,3147 ----
+       cursor_on();
+       out_flush();
+  
++      /* Leave some room for check_termcode() to insert a key code into (max
++       * 5 chars plus NUL).  And fix_input_buffer() can triple the number of
++       * bytes. */
++      maxlen = (buflen - 6 - len) / 3;
++      if (buf == NULL)
++          buf = alloc(buflen);
++      else if (maxlen < 10)
++      {
++          /* Need some more space. This migth happen when receiving a long
++           * escape sequence. */
++          buflen += 100;
++          buf = vim_realloc(buf, buflen);
++          maxlen = (buflen - 6 - len) / 3;
++      }
++      if (buf == NULL)
++      {
++          do_outofmem_msg((long_u)buflen);
++          return ESC;  /* panic! */
++      }
++ 
+       /* First time: blocking wait.  Second time: wait up to 100ms for a
+!       * terminal code to complete. */
+!      n = ui_inchar(buf + len, maxlen, len == 0 ? -1L : 100L, 0);
+       if (n > 0)
+       {
+           /* Replace zero and CSI by a special key code. */
+***************
+*** 3135,3141 ****
+           ++waited;       /* keep track of the waiting time */
+  
+       /* Incomplete termcode and not timed out yet: get more characters */
+!      if ((n = check_termcode(1, buf, len)) < 0
+              && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
+           continue;
+  
+--- 3153,3159 ----
+           ++waited;       /* keep track of the waiting time */
+  
+       /* Incomplete termcode and not timed out yet: get more characters */
+!      if ((n = check_termcode(1, buf, buflen, &len)) < 0
+              && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
+           continue;
+  
+***************
+*** 3203,3209 ****
+       {
+           if (MB_BYTE2LEN(n) > len)
+               continue;       /* more bytes to get */
+!          buf[len >= CBUFLEN ? CBUFLEN - 1 : len] = NUL;
+           n = (*mb_ptr2char)(buf);
+       }
+  #endif
+--- 3221,3227 ----
+       {
+           if (MB_BYTE2LEN(n) > len)
+               continue;       /* more bytes to get */
+!          buf[len >= buflen ? buflen - 1 : len] = NUL;
+           n = (*mb_ptr2char)(buf);
+       }
+  #endif
+***************
+*** 3213,3218 ****
+--- 3231,3237 ----
+  #endif
+       break;
+      }
++     vim_free(buf);
+  
+      mapped_ctrl_c = save_mapped_ctrl_c;
+      return n;
+*** ../vim-7.3.430/src/term.c  2012-01-26 13:01:54.000000000 +0100
+--- src/term.c 2012-02-05 21:45:09.000000000 +0100
+***************
+*** 3785,3798 ****
+   * With a match, the match is removed, the replacement code is inserted in
+   * typebuf.tb_buf[] and the number of characters in typebuf.tb_buf[] is
+   * returned.
+!  * When "buf" is not NULL, it is used instead of typebuf.tb_buf[]. "buflen" is
+!  * then the length of the string in buf[].
+   */
+      int
+! check_termcode(max_offset, buf, buflen)
+      int              max_offset;
+      char_u   *buf;
+!     int              buflen;
+  {
+      char_u   *tp;
+      char_u   *p;
+--- 3785,3800 ----
+   * With a match, the match is removed, the replacement code is inserted in
+   * typebuf.tb_buf[] and the number of characters in typebuf.tb_buf[] is
+   * returned.
+!  * When "buf" is not NULL, buf[bufsize] is used instead of typebuf.tb_buf[].
+!  * "buflen" is then the length of the string in buf[] and is updated for
+!  * inserts and deletes.
+   */
+      int
+! check_termcode(max_offset, buf, bufsize, buflen)
+      int              max_offset;
+      char_u   *buf;
+!     int              bufsize;
+!     int              *buflen;
+  {
+      char_u   *tp;
+      char_u   *p;
+***************
+*** 3864,3873 ****
+       }
+       else
+       {
+!          if (offset >= buflen)
+               break;
+           tp = buf + offset;
+!          len = buflen - offset;
+       }
+  
+       /*
+--- 3866,3875 ----
+       }
+       else
+       {
+!          if (offset >= *buflen)
+               break;
+           tp = buf + offset;
+!          len = *buflen - offset;
+       }
+  
+       /*
+***************
+*** 5002,5013 ****
+           if (extra < 0)
+               /* remove matched characters */
+               mch_memmove(buf + offset, buf + offset - extra,
+!                                         (size_t)(buflen + offset + extra));
+           else if (extra > 0)
+!              /* insert the extra space we need */
+               mch_memmove(buf + offset + extra, buf + offset,
+!                                                 (size_t)(buflen - offset));
+           mch_memmove(buf + offset, string, (size_t)new_slen);
+       }
+       return retval == 0 ? (len + extra + offset) : retval;
+      }
+--- 5004,5021 ----
+           if (extra < 0)
+               /* remove matched characters */
+               mch_memmove(buf + offset, buf + offset - extra,
+!                                         (size_t)(*buflen + offset + extra));
+           else if (extra > 0)
+!          {
+!              /* Insert the extra space we need.  If there is insufficient
+!               * space return -1. */
+!              if (*buflen + extra + new_slen >= bufsize)
+!                  return -1;
+               mch_memmove(buf + offset + extra, buf + offset,
+!                                                 (size_t)(*buflen - offset));
+!          }
+           mch_memmove(buf + offset, string, (size_t)new_slen);
++          *buflen = *buflen + extra + new_slen;
+       }
+       return retval == 0 ? (len + extra + offset) : retval;
+      }
+*** ../vim-7.3.430/src/proto/term.pro  2010-08-15 21:57:28.000000000 +0200
+--- src/proto/term.pro 2012-02-05 21:45:16.000000000 +0100
+***************
+*** 50,56 ****
+  char_u *get_termcode __ARGS((int i));
+  void del_termcode __ARGS((char_u *name));
+  void set_mouse_topline __ARGS((win_T *wp));
+! int check_termcode __ARGS((int max_offset, char_u *buf, int buflen));
+  char_u *replace_termcodes __ARGS((char_u *from, char_u **bufp, int from_part, int do_lt, int special));
+  int find_term_bykeys __ARGS((char_u *src));
+  void show_termcodes __ARGS((void));
+--- 50,56 ----
+  char_u *get_termcode __ARGS((int i));
+  void del_termcode __ARGS((char_u *name));
+  void set_mouse_topline __ARGS((win_T *wp));
+! int check_termcode __ARGS((int max_offset, char_u *buf, int bufsize, int *buflen));
+  char_u *replace_termcodes __ARGS((char_u *from, char_u **bufp, int from_part, int do_lt, int special));
+  int find_term_bykeys __ARGS((char_u *src));
+  void show_termcodes __ARGS((void));
+*** ../vim-7.3.430/src/version.c       2012-02-05 20:08:30.000000000 +0100
+--- src/version.c      2012-02-05 22:03:43.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     431,
+  /**/
+
+-- 
+"You know, it's at times like this when I'm trapped in a Vogon airlock with
+a man from Betelgeuse and about to die of asphyxiation in deep space that I
+really wish I'd listened to what my mother told me when I was young!"
+"Why, what did she tell you?"
+"I don't know, I didn't listen!"
+               -- Arthur Dent and Ford Prefect in Douglas Adams'
+                  "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.432.patch0 b/vim/patches/vim-7.3.432.patch0
new file mode 100644 (file)
index 0000000..c01dd59
--- /dev/null
@@ -0,0 +1,228 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.432
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.432
+Problem:    ACLs are not supported for ZFS or NFSv4 on Solaris.
+Solution:   Add configure check and code. (Danek Duvall)
+Files:      src/configure.in, src/auto/configure, src/config.h.in,
+            src/os_unix.c
+
+
+*** ../vim-7.3.431/src/configure.in    2011-12-14 20:51:19.000000000 +0100
+--- src/configure.in   2012-02-05 22:40:22.000000000 +0100
+***************
+*** 3106,3111 ****
+--- 3106,3112 ----
+  
+  dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
+  dnl when -lacl works, also try to use -lattr (required for Debian).
++ dnl On Solaris, use the acl_get/set functions in libsec, if present.
+  AC_MSG_CHECKING(--disable-acl argument)
+  AC_ARG_ENABLE(acl,
+       [  --disable-acl           Don't check for ACL support.],
+***************
+*** 3128,3133 ****
+--- 3129,3135 ----
+       AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
+       AC_MSG_RESULT(no))
+  
++ AC_CHECK_LIB(sec, acl_get, [LIBS="$LIBS -lsec"; AC_DEFINE(HAVE_SOLARIS_ZFS_ACL)],
+  AC_MSG_CHECKING(for Solaris ACL support)
+  AC_TRY_LINK([
+  #ifdef HAVE_SYS_ACL_H
+***************
+*** 3135,3141 ****
+  #endif], [acl("foo", GETACLCNT, 0, NULL);
+       ],
+       AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
+!      AC_MSG_RESULT(no))
+  
+  AC_MSG_CHECKING(for AIX ACL support)
+  AC_TRY_LINK([
+--- 3137,3143 ----
+  #endif], [acl("foo", GETACLCNT, 0, NULL);
+       ],
+       AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
+!      AC_MSG_RESULT(no)))
+  
+  AC_MSG_CHECKING(for AIX ACL support)
+  AC_TRY_LINK([
+*** ../vim-7.3.431/src/auto/configure  2011-12-14 20:51:19.000000000 +0100
+--- src/auto/configure 2012-02-05 22:41:01.000000000 +0100
+***************
+*** 11328,11334 ****
+  rm -f core conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  
+! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL support" >&5
+  $as_echo_n "checking for Solaris ACL support... " >&6; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  /* end confdefs.h.  */
+--- 11328,11374 ----
+  rm -f core conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  
+! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_get in -lsec" >&5
+! $as_echo_n "checking for acl_get in -lsec... " >&6; }
+! if test "${ac_cv_lib_sec_acl_get+set}" = set; then :
+!   $as_echo_n "(cached) " >&6
+! else
+!   ac_check_lib_save_LIBS=$LIBS
+! LIBS="-lsec  $LIBS"
+! cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+! /* end confdefs.h.  */
+! 
+! /* Override any GCC internal prototype to avoid an error.
+!    Use char because int might match the return type of a GCC
+!    builtin and then its argument prototype would still apply.  */
+! #ifdef __cplusplus
+! extern "C"
+! #endif
+! char acl_get ();
+! int
+! main ()
+! {
+! return acl_get ();
+!   ;
+!   return 0;
+! }
+! _ACEOF
+! if ac_fn_c_try_link "$LINENO"; then :
+!   ac_cv_lib_sec_acl_get=yes
+! else
+!   ac_cv_lib_sec_acl_get=no
+! fi
+! rm -f core conftest.err conftest.$ac_objext \
+!     conftest$ac_exeext conftest.$ac_ext
+! LIBS=$ac_check_lib_save_LIBS
+! fi
+! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sec_acl_get" >&5
+! $as_echo "$ac_cv_lib_sec_acl_get" >&6; }
+! if test "x$ac_cv_lib_sec_acl_get" = x""yes; then :
+!   LIBS="$LIBS -lsec"; $as_echo "#define HAVE_SOLARIS_ZFS_ACL 1" >>confdefs.h
+! 
+! else
+!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL support" >&5
+  $as_echo_n "checking for Solaris ACL support... " >&6; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  /* end confdefs.h.  */
+***************
+*** 11355,11360 ****
+--- 11395,11402 ----
+  fi
+  rm -f core conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
++ fi
++ 
+  
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AIX ACL support" >&5
+  $as_echo_n "checking for AIX ACL support... " >&6; }
+*** ../vim-7.3.431/src/config.h.in     2011-09-02 12:27:20.000000000 +0200
+--- src/config.h.in    2012-02-05 22:40:22.000000000 +0100
+***************
+*** 363,368 ****
+--- 363,369 ----
+  
+  /* Define if you want to add support for ACL */
+  #undef HAVE_POSIX_ACL
++ #undef HAVE_SOLARIS_ZFS_ACL
+  #undef HAVE_SOLARIS_ACL
+  #undef HAVE_AIX_ACL
+  
+*** ../vim-7.3.431/src/os_unix.c       2012-01-10 22:26:12.000000000 +0100
+--- src/os_unix.c      2012-02-05 22:40:22.000000000 +0100
+***************
+*** 2746,2751 ****
+--- 2746,2758 ----
+  #ifdef HAVE_POSIX_ACL
+      ret = (vim_acl_T)acl_get_file((char *)fname, ACL_TYPE_ACCESS);
+  #else
++ #ifdef HAVE_SOLARIS_ZFS_ACL
++     acl_t *aclent;
++ 
++     if (acl_get((char *)fname, 0, &aclent) < 0)
++      return NULL;
++     ret = (vim_acl_T)aclent;
++ #else
+  #ifdef HAVE_SOLARIS_ACL
+      vim_acl_solaris_T   *aclent;
+  
+***************
+*** 2791,2796 ****
+--- 2798,2804 ----
+      ret = (vim_acl_T)aclent;
+  #endif /* HAVE_AIX_ACL */
+  #endif /* HAVE_SOLARIS_ACL */
++ #endif /* HAVE_SOLARIS_ZFS_ACL */
+  #endif /* HAVE_POSIX_ACL */
+      return ret;
+  }
+***************
+*** 2808,2813 ****
+--- 2816,2824 ----
+  #ifdef HAVE_POSIX_ACL
+      acl_set_file((char *)fname, ACL_TYPE_ACCESS, (acl_t)aclent);
+  #else
++ #ifdef HAVE_SOLARIS_ZFS_ACL
++     acl_set((char *)fname, (acl_t *)aclent);
++ #else
+  #ifdef HAVE_SOLARIS_ACL
+      acl((char *)fname, SETACL, ((vim_acl_solaris_T *)aclent)->acl_cnt,
+           ((vim_acl_solaris_T *)aclent)->acl_entry);
+***************
+*** 2816,2821 ****
+--- 2827,2833 ----
+      chacl((char *)fname, aclent, ((struct acl *)aclent)->acl_len);
+  #endif /* HAVE_AIX_ACL */
+  #endif /* HAVE_SOLARIS_ACL */
++ #endif /* HAVE_SOLARIS_ZFS_ACL */
+  #endif /* HAVE_POSIX_ACL */
+  }
+  
+***************
+*** 2828,2833 ****
+--- 2840,2848 ----
+  #ifdef HAVE_POSIX_ACL
+      acl_free((acl_t)aclent);
+  #else
++ #ifdef HAVE_SOLARIS_ZFS_ACL
++     acl_free((acl_t *)aclent);
++ #else
+  #ifdef HAVE_SOLARIS_ACL
+      free(((vim_acl_solaris_T *)aclent)->acl_entry);
+      free(aclent);
+***************
+*** 2836,2841 ****
+--- 2851,2857 ----
+      free(aclent);
+  #endif /* HAVE_AIX_ACL */
+  #endif /* HAVE_SOLARIS_ACL */
++ #endif /* HAVE_SOLARIS_ZFS_ACL */
+  #endif /* HAVE_POSIX_ACL */
+  }
+  #endif
+*** ../vim-7.3.431/src/version.c       2012-02-05 22:05:44.000000000 +0100
+--- src/version.c      2012-02-05 22:44:10.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     432,
+  /**/
+
+-- 
+If you put 7 of the most talented OSS developers in a room for a week
+and asked them to fix a bug in a spreadsheet program, in 1 week
+you'd have 2 new mail readers and a text-based web browser.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.433.patch0 b/vim/patches/vim-7.3.433.patch0
new file mode 100644 (file)
index 0000000..bb83828
--- /dev/null
@@ -0,0 +1,92 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.433
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.433
+Problem:    Using continued lines in a Vim script can be slow.
+Solution:   Instead of reallocating for every line use a growarray. (Yasuhiro
+            Matsumoto)
+Files:      src/ex_cmds2.c
+
+
+*** ../vim-7.3.432/src/ex_cmds2.c      2012-02-04 21:57:44.000000000 +0100
+--- src/ex_cmds2.c     2012-02-05 23:06:31.000000000 +0100
+***************
+*** 3439,3460 ****
+      {
+       /* compensate for the one line read-ahead */
+       --sourcing_lnum;
+!      for (;;)
+       {
+!          sp->nextline = get_one_sourceline(sp);
+!          if (sp->nextline == NULL)
+!              break;
+!          p = skipwhite(sp->nextline);
+!          if (*p != '\\')
+!              break;
+!          s = alloc((unsigned)(STRLEN(line) + STRLEN(p)));
+!          if (s == NULL)      /* out of memory */
+!              break;
+!          STRCPY(s, line);
+!          STRCAT(s, p + 1);
+           vim_free(line);
+!          line = s;
+!          vim_free(sp->nextline);
+       }
+      }
+  
+--- 3439,3470 ----
+      {
+       /* compensate for the one line read-ahead */
+       --sourcing_lnum;
+! 
+!      /* Get the next line and concatenate it when it starts with a
+!       * backslash. We always need to read the next line, keep it in
+!       * sp->nextline. */
+!      sp->nextline = get_one_sourceline(sp);
+!      if (sp->nextline != NULL && *(p = skipwhite(sp->nextline)) == '\\')
+       {
+!          garray_T    ga;
+! 
+!          ga_init2(&ga, (int)sizeof(char_u), 200);
+!          ga_concat(&ga, line);
+!          ga_concat(&ga, p + 1);
+!          for (;;)
+!          {
+!              vim_free(sp->nextline);
+!              sp->nextline = get_one_sourceline(sp);
+!              if (sp->nextline == NULL)
+!                  break;
+!              p = skipwhite(sp->nextline);
+!              if (*p != '\\')
+!                  break;
+!              ga_concat(&ga, p + 1);
+!          }
+!          ga_append(&ga, NUL);
+           vim_free(line);
+!          line = ga.ga_data;
+       }
+      }
+  
+*** ../vim-7.3.432/src/version.c       2012-02-05 22:51:27.000000000 +0100
+--- src/version.c      2012-02-05 23:09:21.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     433,
+  /**/
+
+-- 
+Due knot trussed yore spell chequer two fined awl miss steaks.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.434.patch0 b/vim/patches/vim-7.3.434.patch0
new file mode 100644 (file)
index 0000000..52c14b9
--- /dev/null
@@ -0,0 +1,233 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.434
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.434
+Problem:    Using join() can be slow.
+Solution:   Compute the size of the result before allocation to avoid a lot of
+            allocations and copies. (Taro Muraoka)
+Files:      src/eval.c
+
+
+*** ../vim-7.3.433/src/eval.c  2012-02-05 00:39:14.000000000 +0100
+--- src/eval.c 2012-02-06 00:05:31.000000000 +0100
+***************
+*** 442,447 ****
+--- 442,448 ----
+  static list_T *list_copy __ARGS((list_T *orig, int deep, int copyID));
+  static void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2));
+  static char_u *list2string __ARGS((typval_T *tv, int copyID));
++ static int list_join_inner __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo_style, int copyID, garray_T *join_gap));
+  static int list_join __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo, int copyID));
+  static int free_unref_items __ARGS((int copyID));
+  static void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID));
+***************
+*** 6571,6617 ****
+      return (char_u *)ga.ga_data;
+  }
+  
+! /*
+!  * Join list "l" into a string in "*gap", using separator "sep".
+!  * When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
+!  * Return FAIL or OK.
+!  */
+      static int
+! list_join(gap, l, sep, echo_style, copyID)
+!     garray_T *gap;
+      list_T   *l;
+      char_u   *sep;
+      int              echo_style;
+      int              copyID;
+  {
+      int              first = TRUE;
+      char_u   *tofree;
+      char_u   numbuf[NUMBUFLEN];
+      listitem_T       *item;
+      char_u   *s;
+  
+      for (item = l->lv_first; item != NULL && !got_int; item = item->li_next)
+      {
+-      if (first)
+-          first = FALSE;
+-      else
+-          ga_concat(gap, sep);
+- 
+       if (echo_style)
+           s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+       else
+           s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+-      if (s != NULL)
+-          ga_concat(gap, s);
+-      vim_free(tofree);
+       if (s == NULL)
+           return FAIL;
+       line_breakcheck();
+      }
+      return OK;
+  }
+  
+  /*
+   * Garbage collection for lists and dictionaries.
+   *
+   * We use reference counts to be able to free most items right away when they
+--- 6572,6690 ----
+      return (char_u *)ga.ga_data;
+  }
+  
+! typedef struct join_S {
+!     char_u   *s;
+!     char_u   *tofree;
+! } join_T;
+! 
+      static int
+! list_join_inner(gap, l, sep, echo_style, copyID, join_gap)
+!     garray_T *gap;           /* to store the result in */
+      list_T   *l;
+      char_u   *sep;
+      int              echo_style;
+      int              copyID;
++     garray_T *join_gap;      /* to keep each list item string */
+  {
++     int              i;
++     join_T   *p;
++     int              len;
++     int              sumlen = 0;
+      int              first = TRUE;
+      char_u   *tofree;
+      char_u   numbuf[NUMBUFLEN];
+      listitem_T       *item;
+      char_u   *s;
+  
++     /* Stringify each item in the list. */
+      for (item = l->lv_first; item != NULL && !got_int; item = item->li_next)
+      {
+       if (echo_style)
+           s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+       else
+           s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+       if (s == NULL)
+           return FAIL;
++ 
++      len = (int)STRLEN(s);
++      sumlen += len;
++ 
++      ga_grow(join_gap, 1);
++      p = ((join_T *)join_gap->ga_data) + (join_gap->ga_len++);
++      if (tofree != NULL || s != numbuf)
++      {
++          p->s = s;
++          p->tofree = tofree;
++      }
++      else
++      {
++          p->s = vim_strnsave(s, len);
++          p->tofree = p->s;
++      }
++ 
++      line_breakcheck();
++     }
++ 
++     /* Allocate result buffer with its total size, avoid re-allocation and
++      * multiple copy operations.  Add 2 for a tailing ']' and NUL. */
++     if (join_gap->ga_len >= 2)
++      sumlen += (int)STRLEN(sep) * (join_gap->ga_len - 1);
++     if (ga_grow(gap, sumlen + 2) == FAIL)
++      return FAIL;
++ 
++     for (i = 0; i < join_gap->ga_len && !got_int; ++i)
++     {
++      if (first)
++          first = FALSE;
++      else
++          ga_concat(gap, sep);
++      p = ((join_T *)join_gap->ga_data) + i;
++ 
++      if (p->s != NULL)
++          ga_concat(gap, p->s);
+       line_breakcheck();
+      }
++ 
+      return OK;
+  }
+  
+  /*
++  * Join list "l" into a string in "*gap", using separator "sep".
++  * When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
++  * Return FAIL or OK.
++  */
++     static int
++ list_join(gap, l, sep, echo_style, copyID)
++     garray_T *gap;
++     list_T   *l;
++     char_u   *sep;
++     int              echo_style;
++     int              copyID;
++ {
++     garray_T join_ga;
++     int              retval;
++     join_T   *p;
++     int              i;
++ 
++     ga_init2(&join_ga, (int)sizeof(join_T), l->lv_len);
++     retval = list_join_inner(gap, l, sep, echo_style, copyID, &join_ga);
++ 
++     /* Dispose each item in join_ga. */
++     if (join_ga.ga_data != NULL)
++     {
++      p = (join_T *)join_ga.ga_data;
++      for (i = 0; i < join_ga.ga_len; ++i)
++      {
++          vim_free(p->tofree);
++          ++p;
++      }
++      ga_clear(&join_ga);
++     }
++ 
++     return retval;
++ }
++ 
++ /*
+   * Garbage collection for lists and dictionaries.
+   *
+   * We use reference counts to be able to free most items right away when they
+***************
+*** 13406,13412 ****
+      char_u   *rhs;
+      int              mode;
+      int              abbr = FALSE;
+!     int         get_dict = FALSE;
+      mapblock_T       *mp;
+      int              buffer_local;
+  
+--- 13479,13485 ----
+      char_u   *rhs;
+      int              mode;
+      int              abbr = FALSE;
+!     int              get_dict = FALSE;
+      mapblock_T       *mp;
+      int              buffer_local;
+  
+*** ../vim-7.3.433/src/version.c       2012-02-05 23:10:25.000000000 +0100
+--- src/version.c      2012-02-06 00:10:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     434,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+30. Even though you died last week, you've managed to retain OPS on your
+    favorite IRC channel.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.435.patch0 b/vim/patches/vim-7.3.435.patch0
new file mode 100644 (file)
index 0000000..e1b1370
--- /dev/null
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.435
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.435
+Problem:    Compiler warning for unused variable.
+Solution:   Move the variable inside #ifdef.
+Files:      src/ex_cmds2.c
+
+
+*** ../vim-7.3.434/src/ex_cmds2.c      2012-02-05 23:10:25.000000000 +0100
+--- src/ex_cmds2.c     2012-02-06 06:16:28.000000000 +0100
+***************
+*** 3400,3406 ****
+  {
+      struct source_cookie *sp = (struct source_cookie *)cookie;
+      char_u           *line;
+!     char_u           *p, *s;
+  
+  #ifdef FEAT_EVAL
+      /* If breakpoints have been added/deleted need to check for it. */
+--- 3400,3406 ----
+  {
+      struct source_cookie *sp = (struct source_cookie *)cookie;
+      char_u           *line;
+!     char_u           *p;
+  
+  #ifdef FEAT_EVAL
+      /* If breakpoints have been added/deleted need to check for it. */
+***************
+*** 3471,3476 ****
+--- 3471,3478 ----
+  #ifdef FEAT_MBYTE
+      if (line != NULL && sp->conv.vc_type != CONV_NONE)
+      {
++      char_u  *s;
++ 
+       /* Convert the encoding of the script line. */
+       s = string_convert(&sp->conv, line, NULL);
+       if (s != NULL)
+*** ../vim-7.3.434/src/version.c       2012-02-06 00:13:16.000000000 +0100
+--- src/version.c      2012-02-11 20:38:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     435,
+  /**/
+
+-- 
+Light travels faster than sound.  This is why some people
+appear bright until you hear them speak
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.436.patch0 b/vim/patches/vim-7.3.436.patch0
new file mode 100644 (file)
index 0000000..777371c
--- /dev/null
@@ -0,0 +1,111 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.436
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.436
+Problem:    Compiler warnings for types on Windows.
+Solution:   Add type casts. (Mike Williams)
+Files:      src/eval.c
+
+
+*** ../vim-7.3.435/src/eval.c  2012-02-06 00:13:16.000000000 +0100
+--- src/eval.c 2012-02-11 20:38:16.000000000 +0100
+***************
+*** 14462,14468 ****
+                           --prevlen;
+               }
+               if (prevlen == 0)
+!                  s = vim_strnsave(start, len);
+               else
+               {
+                   /* Change "prev" buffer to be the right size.  This way
+--- 14462,14468 ----
+                           --prevlen;
+               }
+               if (prevlen == 0)
+!                  s = vim_strnsave(start, (int)len);
+               else
+               {
+                   /* Change "prev" buffer to be the right size.  This way
+***************
+*** 14529,14535 ****
+  
+                       if (dest < buf)
+                       {
+!                          adjust_prevlen = buf - dest; /* must be 1 or 2 */
+                           dest = buf;
+                       }
+                       if (readlen > p - buf + 1)
+--- 14529,14535 ----
+  
+                       if (dest < buf)
+                       {
+!                          adjust_prevlen = (int)(buf - dest); /* must be 1 or 2 */
+                           dest = buf;
+                       }
+                       if (readlen > p - buf + 1)
+***************
+*** 14558,14568 ****
+                * small, to avoid repeatedly 'allocing' large and
+                * 'reallocing' small. */
+               if (prevsize == 0)
+!                  prevsize = p - start;
+               else
+               {
+                   long grow50pc = (prevsize * 3) / 2;
+!                  long growmin  = (p - start) * 2 + prevlen;
+                   prevsize = grow50pc > growmin ? grow50pc : growmin;
+               }
+               if ((newprev = vim_realloc(prev, prevsize)) == NULL)
+--- 14558,14568 ----
+                * small, to avoid repeatedly 'allocing' large and
+                * 'reallocing' small. */
+               if (prevsize == 0)
+!                  prevsize = (long)(p - start);
+               else
+               {
+                   long grow50pc = (prevsize * 3) / 2;
+!                  long growmin  = (long)((p - start) * 2 + prevlen);
+                   prevsize = grow50pc > growmin ? grow50pc : growmin;
+               }
+               if ((newprev = vim_realloc(prev, prevsize)) == NULL)
+***************
+*** 14575,14581 ****
+           }
+           /* Add the line part to end of "prev". */
+           mch_memmove(prev + prevlen, start, p - start);
+!          prevlen += p - start;
+       }
+      } /* while */
+  
+--- 14575,14581 ----
+           }
+           /* Add the line part to end of "prev". */
+           mch_memmove(prev + prevlen, start, p - start);
+!          prevlen += (long)(p - start);
+       }
+      } /* while */
+  
+*** ../vim-7.3.435/src/version.c       2012-02-11 20:40:49.000000000 +0100
+--- src/version.c      2012-02-11 20:43:18.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     436,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+39. You move into a new house and decide to Netscape before you landscape.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.437.patch0 b/vim/patches/vim-7.3.437.patch0
new file mode 100644 (file)
index 0000000..889efe7
--- /dev/null
@@ -0,0 +1,73 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.437
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.437
+Problem:    Continue looping inside FOR_ALL_TAB_WINDOWS even when already done.
+Solution:   Use goto instead of break. (Hirohito Higashi)
+Files:      src/fileio.c, src/globals.h
+
+
+*** ../vim-7.3.436/src/fileio.c        2011-09-02 11:56:15.000000000 +0200
+--- src/fileio.c       2012-02-11 23:40:23.000000000 +0100
+***************
+*** 8898,8907 ****
+                   if (tp != curtab)
+                       goto_tabpage_tp(tp);
+                   win_goto(aucmd_win);
+!                  break;
+               }
+           }
+       }
+  
+       /* Remove the window and frame from the tree of frames. */
+       (void)winframe_remove(curwin, &dummy, NULL);
+--- 8898,8908 ----
+                   if (tp != curtab)
+                       goto_tabpage_tp(tp);
+                   win_goto(aucmd_win);
+!                  goto win_found;
+               }
+           }
+       }
++ win_found:
+  
+       /* Remove the window and frame from the tree of frames. */
+       (void)winframe_remove(curwin, &dummy, NULL);
+*** ../vim-7.3.436/src/globals.h       2012-02-04 23:34:57.000000000 +0100
+--- src/globals.h      2012-02-11 23:43:45.000000000 +0100
+***************
+*** 535,540 ****
+--- 535,544 ----
+  EXTERN win_T *prevwin INIT(= NULL);  /* previous window */
+  # define W_NEXT(wp) ((wp)->w_next)
+  # define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next)
++ /*
++  * When using this macro "break" only breaks out of the inner loop. Use "goto"
++  * to break out of the tabpage loop.
++  */
+  # define FOR_ALL_TAB_WINDOWS(tp, wp) \
+      for ((tp) = first_tabpage; (tp) != NULL; (tp) = (tp)->tp_next) \
+       for ((wp) = ((tp) == curtab) \
+*** ../vim-7.3.436/src/version.c       2012-02-11 20:44:01.000000000 +0100
+--- src/version.c      2012-02-11 23:40:47.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     437,
+  /**/
+
+-- 
+The future isn't what it used to be.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.438.patch0 b/vim/patches/vim-7.3.438.patch0
new file mode 100644 (file)
index 0000000..94786d7
--- /dev/null
@@ -0,0 +1,126 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.438
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.438
+Problem:    There is no way to avoid ":doautoall" reading modelines.
+Solution:   Add the <nomodeline> argument. Adjust documentation.
+Files:     src/fileio.c, runtime/doc/autocmd.txt
+
+
+*** ../vim-7.3.437/src/fileio.c        2012-02-11 23:45:30.000000000 +0100
+--- src/fileio.c       2012-02-12 00:08:17.000000000 +0100
+***************
+*** 8739,8744 ****
+--- 8739,8752 ----
+      int              retval;
+      aco_save_T       aco;
+      buf_T    *buf;
++     char_u   *arg = eap->arg;
++     int              call_do_modelines = TRUE;
++ 
++     if (STRNCMP(arg, "<nomodeline>", 12) == 0)
++     {
++      call_do_modelines = FALSE;
++      arg = skipwhite(arg + 12);
++     }
+  
+      /*
+       * This is a bit tricky: For some commands curwin->w_buffer needs to be
+***************
+*** 8755,8765 ****
+           aucmd_prepbuf(&aco, buf);
+  
+           /* execute the autocommands for this buffer */
+!          retval = do_doautocmd(eap->arg, FALSE);
+  
+!          /* Execute the modeline settings, but don't set window-local
+!           * options if we are using the current window for another buffer. */
+!          do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
+  
+           /* restore the current window */
+           aucmd_restbuf(&aco);
+--- 8763,8777 ----
+           aucmd_prepbuf(&aco, buf);
+  
+           /* execute the autocommands for this buffer */
+!          retval = do_doautocmd(arg, FALSE);
+  
+!          if (call_do_modelines)
+!          {
+!              /* Execute the modeline settings, but don't set window-local
+!               * options if we are using the current window for another
+!               * buffer. */
+!              do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
+!          }
+  
+           /* restore the current window */
+           aucmd_restbuf(&aco);
+*** ../vim-7.3.437/runtime/doc/autocmd.txt     2011-05-19 17:25:36.000000000 +0200
+--- runtime/doc/autocmd.txt    2012-02-12 00:03:45.000000000 +0100
+***************
+*** 1065,1077 ****
+                       autocommands for that group.  Note: if you use an
+                       undefined group name, Vim gives you an error message.
+  
+-                      After applying the autocommands the modelines are
+-                      processed, so that their settings overrule the
+-                      settings from autocommands, like what happens when
+-                      editing a file.
+- 
+                                               *:doautoa* *:doautoall*
+! :doautoa[ll] [group] {event} [fname]
+                       Like ":doautocmd", but apply the autocommands to each
+                       loaded buffer.  Note that [fname] is used to select
+                       the autocommands, not the buffers to which they are
+--- 1073,1080 ----
+                       autocommands for that group.  Note: if you use an
+                       undefined group name, Vim gives you an error message.
+  
+                                               *:doautoa* *:doautoall*
+! :doautoa[ll] [<nomodeline>] [group] {event} [fname]
+                       Like ":doautocmd", but apply the autocommands to each
+                       loaded buffer.  Note that [fname] is used to select
+                       the autocommands, not the buffers to which they are
+***************
+*** 1082,1087 ****
+--- 1085,1096 ----
+                       This command is intended for autocommands that set
+                       options, change highlighting, and things like that.
+  
++                      After applying the autocommands the modelines are
++                      processed, so that their settings overrule the
++                      settings from autocommands, like what happens when
++                      editing a file. This is skipped when the <nomodeline>
++                      argument is present.
++ 
+  ==============================================================================
+  10. Using autocommands                                       *autocmd-use*
+  
+*** ../vim-7.3.437/src/version.c       2012-02-11 23:45:30.000000000 +0100
+--- src/version.c      2012-02-12 00:16:04.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     438,
+  /**/
+
+-- 
+"Oh, no!  NOT the Spanish Inquisition!"
+"NOBODY expects the Spanish Inquisition!!!"
+                               -- Monty Python sketch --
+"Oh, no!  NOT another option!"
+"EVERYBODY expects another option!!!"
+                               -- Discussion in vim-dev mailing list --
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.439.patch0 b/vim/patches/vim-7.3.439.patch0
new file mode 100644 (file)
index 0000000..63d8f69
--- /dev/null
@@ -0,0 +1,87 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.439
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.439
+Problem:    Compiler warnings to size casts in Perl interface.
+Solution:   Use XS macros. (James McCoy)
+Files:      src/if_perl.xs, src/typemap
+
+
+*** ../vim-7.3.438/src/if_perl.xs      2011-09-07 18:47:19.000000000 +0200
+--- src/if_perl.xs     2012-02-12 00:28:52.000000000 +0100
+***************
+*** 611,617 ****
+      if (ptr->w_perl_private == NULL)
+      {
+       ptr->w_perl_private = newSV(0);
+!      sv_setiv(ptr->w_perl_private, (IV)ptr);
+      }
+      else
+       SvREFCNT_inc(ptr->w_perl_private);
+--- 611,617 ----
+      if (ptr->w_perl_private == NULL)
+      {
+       ptr->w_perl_private = newSV(0);
+!      sv_setiv(ptr->w_perl_private, PTR2IV(ptr));
+      }
+      else
+       SvREFCNT_inc(ptr->w_perl_private);
+***************
+*** 629,635 ****
+      if (ptr->b_perl_private == NULL)
+      {
+       ptr->b_perl_private = newSV(0);
+!      sv_setiv(ptr->b_perl_private, (IV)ptr);
+      }
+      else
+       SvREFCNT_inc(ptr->b_perl_private);
+--- 629,635 ----
+      if (ptr->b_perl_private == NULL)
+      {
+       ptr->b_perl_private = newSV(0);
+!      sv_setiv(ptr->b_perl_private, PTR2IV(ptr));
+      }
+      else
+       SvREFCNT_inc(ptr->b_perl_private);
+*** ../vim-7.3.438/src/typemap 2010-08-15 21:57:29.000000000 +0200
+--- src/typemap        2012-02-12 00:28:52.000000000 +0100
+***************
+*** 6,12 ****
+  T_VIOBJNOMUNGE
+       if (sv_isa($arg, \"${ntype}\")) {
+           IV tmp = SvIV((SV*)SvRV($arg));
+!          $var = ($type) tmp;
+           if (!tmp)
+               croak(\"$ntype no longer exists\");
+       }
+--- 6,12 ----
+  T_VIOBJNOMUNGE
+       if (sv_isa($arg, \"${ntype}\")) {
+           IV tmp = SvIV((SV*)SvRV($arg));
+!          $var = INT2PTR($type, tmp);
+           if (!tmp)
+               croak(\"$ntype no longer exists\");
+       }
+*** ../vim-7.3.438/src/version.c       2012-02-12 00:18:54.000000000 +0100
+--- src/version.c      2012-02-12 00:31:18.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     439,
+  /**/
+
+-- 
+Microsoft is to software what McDonalds is to gourmet cooking
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.440.patch0 b/vim/patches/vim-7.3.440.patch0
new file mode 100644 (file)
index 0000000..39313b0
--- /dev/null
@@ -0,0 +1,211 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.440
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.440
+Problem:    Vim does not support UTF8_STRING for the X selection.
+Solution:   Add UTF8_STRING atom support. (Alex Efros) Use it only when
+            'encoding' is set to Unicode.
+Files:      src/ui.c
+
+
+*** ../vim-7.3.439/src/ui.c    2012-02-04 21:57:44.000000000 +0100
+--- src/ui.c   2012-02-12 01:28:30.000000000 +0100
+***************
+*** 1917,1922 ****
+--- 1917,1923 ----
+  static Atom  vim_atom;       /* Vim's own special selection format */
+  #ifdef FEAT_MBYTE
+  static Atom  vimenc_atom;    /* Vim's extended selection format */
++ static Atom  utf8_atom;
+  #endif
+  static Atom  compound_text_atom;
+  static Atom  text_atom;
+***************
+*** 1930,1935 ****
+--- 1931,1937 ----
+      vim_atom        = XInternAtom(dpy, VIM_ATOM_NAME,   False);
+  #ifdef FEAT_MBYTE
+      vimenc_atom             = XInternAtom(dpy, VIMENC_ATOM_NAME,False);
++     utf8_atom               = XInternAtom(dpy, "UTF8_STRING",   False);
+  #endif
+      compound_text_atom = XInternAtom(dpy, "COMPOUND_TEXT", False);
+      text_atom               = XInternAtom(dpy, "TEXT",          False);
+***************
+*** 2074,2080 ****
+      }
+  #endif
+  
+!     else if (*type == compound_text_atom || (
+  #ifdef FEAT_MBYTE
+               enc_dbcs != 0 &&
+  #endif
+--- 2076,2086 ----
+      }
+  #endif
+  
+!     else if (*type == compound_text_atom
+! #ifdef FEAT_MBYTE
+!          || *type == utf8_atom
+! #endif
+!          || (
+  #ifdef FEAT_MBYTE
+               enc_dbcs != 0 &&
+  #endif
+***************
+*** 2128,2134 ****
+  #else
+           1
+  #endif
+!          ; i < 5; i++)
+      {
+       switch (i)
+       {
+--- 2134,2140 ----
+  #else
+           1
+  #endif
+!          ; i < 6; i++)
+      {
+       switch (i)
+       {
+***************
+*** 2136,2145 ****
+           case 0:  type = vimenc_atom;        break;
+  #endif
+           case 1:  type = vim_atom;           break;
+!          case 2:  type = compound_text_atom; break;
+!          case 3:  type = text_atom;          break;
+           default: type = XA_STRING;
+       }
+       success = MAYBE;
+       XtGetSelectionValue(myShell, cbd->sel_atom, type,
+           clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
+--- 2142,2159 ----
+           case 0:  type = vimenc_atom;        break;
+  #endif
+           case 1:  type = vim_atom;           break;
+! #ifdef FEAT_MBYTE
+!          case 2:  type = utf8_atom;          break;
+! #endif
+!          case 3:  type = compound_text_atom; break;
+!          case 4:  type = text_atom;          break;
+           default: type = XA_STRING;
+       }
++ #ifdef FEAT_MBYTE
++      if (type == utf8_atom && !enc_utf8)
++          /* Only request utf-8 when 'encoding' is utf8. */
++          continue;
++ #endif
+       success = MAYBE;
+       XtGetSelectionValue(myShell, cbd->sel_atom, type,
+           clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
+***************
+*** 2230,2247 ****
+      {
+       Atom *array;
+  
+!      if ((array = (Atom *)XtMalloc((unsigned)(sizeof(Atom) * 6))) == NULL)
+           return False;
+       *value = (XtPointer)array;
+       i = 0;
+-      array[i++] = XA_STRING;
+       array[i++] = targets_atom;
+  #ifdef FEAT_MBYTE
+       array[i++] = vimenc_atom;
+  #endif
+       array[i++] = vim_atom;
+       array[i++] = text_atom;
+       array[i++] = compound_text_atom;
+       *type = XA_ATOM;
+       /* This used to be: *format = sizeof(Atom) * 8; but that caused
+        * crashes on 64 bit machines. (Peter Derr) */
+--- 2244,2266 ----
+      {
+       Atom *array;
+  
+!      if ((array = (Atom *)XtMalloc((unsigned)(sizeof(Atom) * 7))) == NULL)
+           return False;
+       *value = (XtPointer)array;
+       i = 0;
+       array[i++] = targets_atom;
+  #ifdef FEAT_MBYTE
+       array[i++] = vimenc_atom;
+  #endif
+       array[i++] = vim_atom;
++ #ifdef FEAT_MBYTE
++      if (enc_utf8)
++          array[i++] = utf8_atom;
++ #endif
++      array[i++] = XA_STRING;
+       array[i++] = text_atom;
+       array[i++] = compound_text_atom;
++ 
+       *type = XA_ATOM;
+       /* This used to be: *format = sizeof(Atom) * 8; but that caused
+        * crashes on 64 bit machines. (Peter Derr) */
+***************
+*** 2253,2258 ****
+--- 2272,2278 ----
+      if (       *target != XA_STRING
+  #ifdef FEAT_MBYTE
+           && *target != vimenc_atom
++          && *target != utf8_atom
+  #endif
+           && *target != vim_atom
+           && *target != text_atom
+***************
+*** 2282,2294 ****
+       return False;
+      }
+  
+!     if (*target == XA_STRING)
+      {
+       mch_memmove(result, string, (size_t)(*length));
+!      *type = XA_STRING;
+      }
+!     else if (*target == compound_text_atom
+!          || *target == text_atom)
+      {
+       XTextProperty   text_prop;
+       char            *string_nt = (char *)alloc((unsigned)*length + 1);
+--- 2302,2317 ----
+       return False;
+      }
+  
+!     if (*target == XA_STRING
+! #ifdef FEAT_MBYTE
+!          || (*target == utf8_atom && enc_utf8)
+! #endif
+!          )
+      {
+       mch_memmove(result, string, (size_t)(*length));
+!      *type = *target;
+      }
+!     else if (*target == compound_text_atom || *target == text_atom)
+      {
+       XTextProperty   text_prop;
+       char            *string_nt = (char *)alloc((unsigned)*length + 1);
+*** ../vim-7.3.439/src/version.c       2012-02-12 00:31:47.000000000 +0100
+--- src/version.c      2012-02-12 01:34:22.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     440,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+42. Your virtual girlfriend finds a new net sweetheart with a larger bandwidth.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.441.patch0 b/vim/patches/vim-7.3.441.patch0
new file mode 100644 (file)
index 0000000..9a7539b
--- /dev/null
@@ -0,0 +1,341 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.441
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.441
+Problem:    Newer versions of MzScheme (Racket) require earlier (trampolined)
+            initialisation.
+Solution:   Call mzscheme_main() early in main(). (Sergey Khorev)
+Files:      src/Make_mvc.mak, src/if_mzsch.c, src/main.c,
+            src/proto/if_mzsch.pro
+    
+
+*** ../vim-7.3.440/src/Make_mvc.mak    2011-09-14 19:01:38.000000000 +0200
+--- src/Make_mvc.mak   2012-02-12 01:46:05.000000000 +0100
+***************
+*** 740,745 ****
+--- 740,747 ----
+  !endif
+  !endif
+  MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
++ # increase stack size
++ MZSCHEME_LIB = $(MZSCHEME_LIB) /STACK:8388608
+  !endif
+  
+  # Perl interface
+*** ../vim-7.3.440/src/if_mzsch.c      2010-11-03 21:59:23.000000000 +0100
+--- src/if_mzsch.c     2012-02-12 01:47:31.000000000 +0100
+***************
+*** 31,38 ****
+   * depend". */
+  #if defined(FEAT_MZSCHEME) || defined(PROTO)
+  
+- #include <assert.h>
+- 
+  /* Base data structures */
+  #define SCHEME_VIMBUFFERP(obj)  SAME_TYPE(SCHEME_TYPE(obj), mz_buffer_type)
+  #define SCHEME_VIMWINDOWP(obj)  SAME_TYPE(SCHEME_TYPE(obj), mz_window_type)
+--- 31,36 ----
+***************
+*** 559,575 ****
+      hMzSch = vimLoadLib(sch_dll);
+      hMzGC = vimLoadLib(gc_dll);
+  
+!     if (!hMzSch)
+      {
+       if (verbose)
+!          EMSG2(_(e_loadlib), sch_dll);
+       return FAIL;
+      }
+  
+!     if (!hMzGC)
+      {
+       if (verbose)
+!          EMSG2(_(e_loadlib), gc_dll);
+       return FAIL;
+      }
+  
+--- 557,573 ----
+      hMzSch = vimLoadLib(sch_dll);
+      hMzGC = vimLoadLib(gc_dll);
+  
+!     if (!hMzGC)
+      {
+       if (verbose)
+!          EMSG2(_(e_loadlib), gc_dll);
+       return FAIL;
+      }
+  
+!     if (!hMzSch)
+      {
+       if (verbose)
+!          EMSG2(_(e_loadlib), sch_dll);
+       return FAIL;
+      }
+  
+***************
+*** 798,862 ****
+  static __declspec(thread) void *tls_space;
+  #endif
+  
+!     void
+! mzscheme_main(void)
+  {
+  #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
+      scheme_register_tls_space(&tls_space, 0);
+  #endif
+! #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400
+!     /* use trampoline for precise GC in MzScheme >= 4.x */
+!     scheme_main_setup(TRUE, mzscheme_env_main, 0, NULL);
+  #else
+!     mzscheme_env_main(NULL, 0, NULL);
+  #endif
+  }
+  
+      static int
+! mzscheme_env_main(Scheme_Env *env, int argc UNUSED, char **argv UNUSED)
+  {
+!     /* neither argument nor return values are used */
+! #ifdef MZ_PRECISE_GC
+! # if MZSCHEME_VERSION_MAJOR < 400
+!     /*
+!      * Starting from version 4.x, embedding applications must use
+!      * scheme_main_setup/scheme_main_stack_setup trampolines
+!      * rather than setting stack base directly with scheme_set_stack_base
+!      */
+      Scheme_Object   *dummy = NULL;
+      MZ_GC_DECL_REG(1);
+      MZ_GC_VAR_IN_REG(0, dummy);
+  
+      stack_base = &__gc_var_stack__;
+  # else
+-     /* environment has been created by us by Scheme */
+-     environment = env;
+- # endif
+-     /*
+-      * In 4.x, all activities must be performed inside trampoline
+-      * so we are forced to initialise GC immediately
+-      * This can be postponed in 3.x but I see no point in implementing
+-      * a feature which will work in older versions only.
+-      * One would better use conservative GC if he needs dynamic MzScheme
+-      */
+-     mzscheme_init();
+- #else
+      int dummy = 0;
+      stack_base = (void *)&dummy;
+  #endif
+!     main_loop(FALSE, FALSE);
+! #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR < 400
+      /* releasing dummy */
+      MZ_GC_REG();
+      MZ_GC_UNREG();
+  #endif
+!     return 0;
+  }
+  
+      static void
+  startup_mzscheme(void)
+  {
+! #if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400
+      scheme_set_stack_base(stack_base, 1);
+  #endif
+  
+--- 796,863 ----
+  static __declspec(thread) void *tls_space;
+  #endif
+  
+! /*
+!  * Since version 4.x precise GC requires trampolined startup.
+!  * Futures and places in version 5.x need it too.
+!  */
+! #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400 \
+!     || MZSCHEME_VERSION_MAJOR >= 500 && (defined(MZ_USE_FUTURES) || defined(MZ_USE_PLACES))
+! # ifdef DYNAMIC_MZSCHEME
+! #  error Precise GC v.4+ or Racket with futures/places do not support dynamic MzScheme
+! # endif
+! # define TRAMPOLINED_MZVIM_STARTUP
+! #endif
+! 
+!     int
+! mzscheme_main(int argc, char** argv)
+  {
+  #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
+      scheme_register_tls_space(&tls_space, 0);
+  #endif
+! #ifdef TRAMPOLINED_MZVIM_STARTUP
+!     return scheme_main_setup(TRUE, mzscheme_env_main, argc, argv);
+  #else
+!     return mzscheme_env_main(NULL, argc, argv);
+  #endif
+  }
+  
+      static int
+! mzscheme_env_main(Scheme_Env *env, int argc, char **argv)
+  {
+!     int vim_main_result;
+! #ifdef TRAMPOLINED_MZVIM_STARTUP
+!     /* Scheme has created the environment for us */
+!     environment = env;
+! #else
+! # ifdef MZ_PRECISE_GC
+      Scheme_Object   *dummy = NULL;
+      MZ_GC_DECL_REG(1);
+      MZ_GC_VAR_IN_REG(0, dummy);
+  
+      stack_base = &__gc_var_stack__;
+  # else
+      int dummy = 0;
+      stack_base = (void *)&dummy;
++ # endif
+  #endif
+! 
+!     /* mzscheme_main is called as a trampoline from main.
+!      * We trampoline into vim_main2
+!      * Passing argc, argv through from mzscheme_main
+!      */
+!     vim_main_result = vim_main2(argc, argv);
+! #if !defined(TRAMPOLINED_MZVIM_STARTUP) && defined(MZ_PRECISE_GC)
+      /* releasing dummy */
+      MZ_GC_REG();
+      MZ_GC_UNREG();
+  #endif
+!     return vim_main_result;
+  }
+  
+      static void
+  startup_mzscheme(void)
+  {
+! #ifndef TRAMPOLINED_MZVIM_STARTUP
+      scheme_set_stack_base(stack_base, 1);
+  #endif
+  
+***************
+*** 868,874 ****
+      MZ_REGISTER_STATIC(exn_message);
+      MZ_REGISTER_STATIC(vim_exn);
+  
+! #if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400
+      /* in newer versions of precise GC the initial env has been created */
+      environment = scheme_basic_env();
+  #endif
+--- 869,875 ----
+      MZ_REGISTER_STATIC(exn_message);
+      MZ_REGISTER_STATIC(vim_exn);
+  
+! #ifndef TRAMPOLINED_MZVIM_STARTUP
+      /* in newer versions of precise GC the initial env has been created */
+      environment = scheme_basic_env();
+  #endif
+***************
+*** 3013,3019 ****
+       MZ_GC_REG();
+  
+       tmp = scheme_make_struct_names(exn_name, scheme_null, 0, &nc);
+-      assert(nc <= 5);
+       mch_memmove(exn_names, tmp, nc * sizeof(Scheme_Object *));
+       MZ_GC_CHECK();
+  
+--- 3014,3019 ----
+*** ../vim-7.3.440/src/main.c  2011-12-08 15:57:54.000000000 +0100
+--- src/main.c 2012-02-12 01:49:50.000000000 +0100
+***************
+*** 554,559 ****
+--- 554,584 ----
+      debug_break_level = params.use_debug_break_level;
+  #endif
+  
++ #ifdef FEAT_MZSCHEME
++     /*
++      * Newer version of MzScheme (Racket) require earlier (trampolined)
++      * initialisation via scheme_main_setup.
++      * Implement this by initialising it as early as possible
++      * and splitting off remaining Vim main into vim_main2
++      */
++     {
++      /* Pack up preprocessed command line arguments.
++       * It is safe because Scheme does not access argc/argv. */
++      char *args[2];
++      args[0] = (char *)fname;
++      args[1] = (char *)&params;
++      return mzscheme_main(2, args);
++     }
++ }
++ 
++ int vim_main2(int argc, char **argv)
++ {
++     char_u   *fname = (char_u *)argv[0];
++     mparm_T  params;
++ 
++     memcpy(&params, argv[1], sizeof(params));
++ #endif
++ 
+      /* Execute --cmd arguments. */
+      exe_pre_commands(&params);
+  
+***************
+*** 957,970 ****
+  
+      /*
+       * Call the main command loop.  This never returns.
+!      * For embedded MzScheme the main_loop will be called by Scheme
+!      * for proper stack tracking
+!      */
+! #ifndef FEAT_MZSCHEME
+      main_loop(FALSE, FALSE);
+- #else
+-     mzscheme_main();
+- #endif
+  
+      return 0;
+  }
+--- 982,989 ----
+  
+      /*
+       * Call the main command loop.  This never returns.
+!     */
+      main_loop(FALSE, FALSE);
+  
+      return 0;
+  }
+*** ../vim-7.3.440/src/proto/if_mzsch.pro      2010-08-15 21:57:28.000000000 +0200
+--- src/proto/if_mzsch.pro     2012-02-12 01:50:57.000000000 +0100
+***************
+*** 14,19 ****
+  void mzvim_reset_timer __ARGS((void));
+  void *mzvim_eval_string __ARGS((char_u *str));
+  int mzthreads_allowed __ARGS((void));
+! void mzscheme_main __ARGS((void));
+  void do_mzeval __ARGS((char_u *str, typval_T *rettv));
+  /* vim: set ft=c : */
+--- 14,20 ----
+  void mzvim_reset_timer __ARGS((void));
+  void *mzvim_eval_string __ARGS((char_u *str));
+  int mzthreads_allowed __ARGS((void));
+! int mzscheme_main __ARGS((int argc, char **argv));
+  void do_mzeval __ARGS((char_u *str, typval_T *rettv));
++ int vim_main2 __ARGS((int argc, char **argv));
+  /* vim: set ft=c : */
+*** ../vim-7.3.440/src/version.c       2012-02-12 01:35:06.000000000 +0100
+--- src/version.c      2012-02-12 01:54:14.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     441,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+43. You tell the kids they can't use the computer because "Daddy's got work to
+    do" and you don't even have a job.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.442.patch0 b/vim/patches/vim-7.3.442.patch0
new file mode 100644 (file)
index 0000000..58b58b4
--- /dev/null
@@ -0,0 +1,186 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.442
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.442 (after 7.3.438) 
+Problem:    Still read modelines for ":doautocmd". 
+Solution:   Move check for <nomodeline> to separate function. 
+Files:      src/fileio.c, src/ex_docmd.c, src/proto/fileio.pro, 
+            runtime/doc/autocmd.txt 
+
+
+*** ../vim-7.3.441/src/fileio.c        2012-02-12 00:18:54.000000000 +0100
+--- src/fileio.c       2012-02-12 20:05:35.000000000 +0100
+***************
+*** 8740,8752 ****
+      aco_save_T       aco;
+      buf_T    *buf;
+      char_u   *arg = eap->arg;
+!     int              call_do_modelines = TRUE;
+! 
+!     if (STRNCMP(arg, "<nomodeline>", 12) == 0)
+!     {
+!      call_do_modelines = FALSE;
+!      arg = skipwhite(arg + 12);
+!     }
+  
+      /*
+       * This is a bit tricky: For some commands curwin->w_buffer needs to be
+--- 8740,8746 ----
+      aco_save_T       aco;
+      buf_T    *buf;
+      char_u   *arg = eap->arg;
+!     int              call_do_modelines = check_nomodeline(&arg);
+  
+      /*
+       * This is a bit tricky: For some commands curwin->w_buffer needs to be
+***************
+*** 8786,8791 ****
+--- 8780,8802 ----
+  }
+  
+  /*
++  * Check *argp for <nomodeline>.  When it is present return FALSE, otherwise
++  * return TRUE and advance *argp to after it.
++  * Thus return TRUE when do_modelines() should be called.
++  */
++     int
++ check_nomodeline(argp)
++     char_u **argp;
++ {
++     if (STRNCMP(*argp, "<nomodeline>", 12) == 0)
++     {
++      *argp = skipwhite(*argp + 12);
++      return FALSE;
++     }
++     return TRUE;
++ }
++ 
++ /*
+   * Prepare for executing autocommands for (hidden) buffer "buf".
+   * Search for a visible window containing the current buffer.  If there isn't
+   * one then use "aucmd_win".
+*** ../vim-7.3.441/src/ex_docmd.c      2012-01-26 20:41:22.000000000 +0100
+--- src/ex_docmd.c     2012-02-12 20:05:18.000000000 +0100
+***************
+*** 4955,4961 ****
+      map_clear(eap->cmd, eap->arg, TRUE, TRUE);
+  }
+  
+! #ifdef FEAT_AUTOCMD
+      static void
+  ex_autocmd(eap)
+      exarg_T  *eap;
+--- 4955,4961 ----
+      map_clear(eap->cmd, eap->arg, TRUE, TRUE);
+  }
+  
+! #if defined(FEAT_AUTOCMD) || defined(PROTO)
+      static void
+  ex_autocmd(eap)
+      exarg_T  *eap;
+***************
+*** 4982,4989 ****
+  ex_doautocmd(eap)
+      exarg_T  *eap;
+  {
+!     (void)do_doautocmd(eap->arg, TRUE);
+!     do_modelines(0);
+  }
+  #endif
+  
+--- 4982,4993 ----
+  ex_doautocmd(eap)
+      exarg_T  *eap;
+  {
+!     char_u   *arg = eap->arg;
+!     int              call_do_modelines = check_nomodeline(&arg);
+! 
+!     (void)do_doautocmd(arg, TRUE);
+!     if (call_do_modelines)  /* Only when there is no <nomodeline>. */
+!      do_modelines(0);
+  }
+  #endif
+  
+*** ../vim-7.3.441/src/proto/fileio.pro        2010-12-17 16:27:10.000000000 +0100
+--- src/proto/fileio.pro       2012-02-12 20:05:26.000000000 +0100
+***************
+*** 35,40 ****
+--- 35,41 ----
+  void do_autocmd __ARGS((char_u *arg, int forceit));
+  int do_doautocmd __ARGS((char_u *arg, int do_msg));
+  void ex_doautoall __ARGS((exarg_T *eap));
++ int check_nomodeline __ARGS((char_u **argp));
+  void aucmd_prepbuf __ARGS((aco_save_T *aco, buf_T *buf));
+  void aucmd_restbuf __ARGS((aco_save_T *aco));
+  int apply_autocmds __ARGS((event_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf));
+*** ../vim-7.3.441/runtime/doc/autocmd.txt     2012-02-12 00:18:54.000000000 +0100
+--- runtime/doc/autocmd.txt    2012-02-12 20:11:05.000000000 +0100
+***************
+*** 1064,1069 ****
+--- 1072,1085 ----
+                       argument is included, Vim executes only the matching
+                       autocommands for that group.  Note: if you use an
+                       undefined group name, Vim gives you an error message.
++                                                      *<nomodeline>*
++                      After applying the autocommands the modelines are
++                      processed, so that their settings overrule the
++                      settings from autocommands, like what happens when
++                      editing a file. This is skipped when the <nomodeline>
++                      argument is present. You probably want to use
++                      <nomodeline> for events that are not used when loading
++                      a buffer, such as |User|.
+  
+                                               *:doautoa* *:doautoall*
+  :doautoa[ll] [<nomodeline>] [group] {event} [fname]
+***************
+*** 1077,1088 ****
+                       This command is intended for autocommands that set
+                       options, change highlighting, and things like that.
+  
+-                      After applying the autocommands the modelines are
+-                      processed, so that their settings overrule the
+-                      settings from autocommands, like what happens when
+-                      editing a file. This is skipped when the <nomodeline>
+-                      argument is present.
+- 
+  ==============================================================================
+  10. Using autocommands                                       *autocmd-use*
+  
+--- 1093,1098 ----
+*** ../vim-7.3.441/src/version.c       2012-02-12 01:55:50.000000000 +0100
+--- src/version.c      2012-02-12 20:11:34.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     442,
+  /**/
+
+-- 
+The real
+trick is
+this: to
+keep the
+lines as
+short as
+possible
+and keep
+the size
+the same
+yet free
+from the
+need for
+hyphena-
+Dammit!!  (Matthew Winn)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.443.patch0 b/vim/patches/vim-7.3.443.patch0
new file mode 100644 (file)
index 0000000..84b45ba
--- /dev/null
@@ -0,0 +1,206 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.443
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.443
+Problem:    MS-Windows: 'shcf' and 'shellxquote' defaults are not very good.
+Solution:   Make a better guess when 'shell' is set to "cmd.exe". (Ben Fritz)
+Files:      src/option.c, runtime/doc/options.txt
+
+
+*** ../vim-7.3.442/src/option.c        2012-01-28 18:03:30.000000000 +0100
+--- src/option.c       2012-02-12 23:17:55.000000000 +0100
+***************
+*** 3883,3889 ****
+  
+  #if defined(MSDOS) || defined(WIN3264) || defined(OS2)
+      /*
+!      * Set 'shellcmdflag and 'shellquote' depending on the 'shell' option.
+       * This is done after other initializations, where 'shell' might have been
+       * set, but only if they have not been set before.  Default for p_shcf is
+       * "/c", for p_shq is "".  For "sh" like  shells it is changed here to
+--- 3883,3890 ----
+  
+  #if defined(MSDOS) || defined(WIN3264) || defined(OS2)
+      /*
+!      * Set 'shellcmdflag', 'shellxquote', and 'shellquote' depending on the
+!      * 'shell' option.
+       * This is done after other initializations, where 'shell' might have been
+       * set, but only if they have not been set before.  Default for p_shcf is
+       * "/c", for p_shq is "".  For "sh" like  shells it is changed here to
+***************
+*** 3920,3925 ****
+--- 3921,3962 ----
+  #  endif
+  # endif
+      }
++     else if (strstr((char *)gettail(p_sh), "cmd.exe") != NULL)
++     {
++      int     idx3;
++ 
++      /*
++       * cmd.exe on Windows will strip the first and last double quote given
++       * on the command line, e.g. most of the time things like:
++       *   cmd /c "my path/to/echo" "my args to echo"
++       * become:
++       *   my path/to/echo" "my args to echo
++       * when executed.
++       *
++       * To avoid this, use the /s argument in addition to /c to force the
++       * stripping behavior, and also set shellxquote to automatically
++       * surround the entire command in quotes (which get stripped as
++       * noted).
++       */
++ 
++      /* Set shellxquote default to add the quotes to be stripped. */
++      idx3 = findoption((char_u *)"sxq");
++      if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
++      {
++          p_sxq = (char_u *)"\"";
++          options[idx3].def_val[VI_DEFAULT] = p_sxq;
++      }
++ 
++      /* Set shellcmdflag default to always strip the quotes, note the order
++       * between /s and /c is important or cmd.exe will treat the /s as part
++       * of the command to be executed.  */
++      idx3 = findoption((char_u *)"shcf");
++      if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
++      {
++          p_shcf = (char_u *)"/s /c";
++          options[idx3].def_val[VI_DEFAULT] = p_shcf;
++      }
++     }
+  #endif
+  
+  #ifdef FEAT_TITLE
+*** ../vim-7.3.442/runtime/doc/options.txt     2011-06-26 05:36:07.000000000 +0200
+--- runtime/doc/options.txt    2012-02-12 23:21:59.000000000 +0100
+***************
+*** 5880,5895 ****
+       security reasons.
+  
+                                               *'shellcmdflag'* *'shcf'*
+! 'shellcmdflag' 'shcf'        string  (default: "-c", MS-DOS and Win32, when 'shell'
+!                                      does not contain "sh" somewhere: "/c")
+                       global
+                       {not in Vi}
+       Flag passed to the shell to execute "!" and ":!" commands; e.g.,
+       "bash.exe -c ls" or "command.com /c dir".  For the MS-DOS-like
+       systems, the default is set according to the value of 'shell', to
+       reduce the need to set this option by the user.  It's not used for
+!      OS/2 (EMX figures this out itself).  See |option-backslash| about
+!      including spaces and backslashes.  See |dos-shell|.
+       This option cannot be set from a |modeline| or in the |sandbox|, for
+       security reasons.
+  
+--- 5899,5919 ----
+       security reasons.
+  
+                                               *'shellcmdflag'* *'shcf'*
+! 'shellcmdflag' 'shcf'        string  (default: "-c";
+!                               Win32, when 'shell' is cmd.exe: "/s /c";
+!                               MS-DOS and Win32, when 'shell' neither is
+!                               cmd.exe nor contains "sh" somewhere: "/c")
+                       global
+                       {not in Vi}
+       Flag passed to the shell to execute "!" and ":!" commands; e.g.,
+       "bash.exe -c ls" or "command.com /c dir".  For the MS-DOS-like
+       systems, the default is set according to the value of 'shell', to
+       reduce the need to set this option by the user.  It's not used for
+!      OS/2 (EMX figures this out itself).
+!      On Unix it can have more than one flag.  Each white space separated
+!      part is passed as an argument to the shell command.
+!      See |option-backslash| about including spaces and backslashes.
+!      Also see |dos-shell| for MS-DOS and MS-Windows.
+       This option cannot be set from a |modeline| or in the |sandbox|, for
+       security reasons.
+  
+***************
+*** 5910,5918 ****
+       For Unix the default it "| tee".  The stdout of the compiler is saved
+       in a file and echoed to the screen.  If the 'shell' option is "csh" or
+       "tcsh" after initializations, the default becomes "|& tee".  If the
+!      'shell' option is "sh", "ksh", "zsh" or "bash" the default becomes
+!      "2>&1| tee".  This means that stderr is also included.  Before using
+!      the 'shell' option a path is removed, thus "/bin/sh" uses "sh".
+       The initialization of this option is done after reading the ".vimrc"
+       and the other initializations, so that when the 'shell' option is set
+       there, the 'shellpipe' option changes automatically, unless it was
+--- 5934,5943 ----
+       For Unix the default it "| tee".  The stdout of the compiler is saved
+       in a file and echoed to the screen.  If the 'shell' option is "csh" or
+       "tcsh" after initializations, the default becomes "|& tee".  If the
+!      'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh" or "bash" the
+!      default becomes "2>&1| tee".  This means that stderr is also included.
+!      Before using the 'shell' option a path is removed, thus "/bin/sh" uses
+!      "sh".
+       The initialization of this option is done after reading the ".vimrc"
+       and the other initializations, so that when the 'shell' option is set
+       there, the 'shellpipe' option changes automatically, unless it was
+***************
+*** 6017,6024 ****
+  
+                                               *'shellxquote'* *'sxq'*
+  'shellxquote' 'sxq'  string  (default: "";
+!                                      for Win32, when 'shell' contains "sh"
+!                                      somewhere: "\""
+                                       for Unix, when using system(): "\"")
+                       global
+                       {not in Vi}
+--- 6043,6050 ----
+  
+                                               *'shellxquote'* *'sxq'*
+  'shellxquote' 'sxq'  string  (default: "";
+!                                      for Win32, when 'shell' is cmd.exe or
+!                                      contains "sh" somewhere: "\""
+                                       for Unix, when using system(): "\"")
+                       global
+                       {not in Vi}
+***************
+*** 6026,6036 ****
+       the "!" and ":!" commands.  Includes the redirection.  See
+       'shellquote' to exclude the redirection.  It's probably not useful
+       to set both options.
+!      This is an empty string by default.  Known to be useful for
+!      third-party shells when using the Win32 version, such as the MKS Korn
+!      Shell or bash, where it should be "\"".  The default is adjusted
+!      according the value of 'shell', to reduce the need to set this option
+!      by the user.  See |dos-shell|.
+       This option cannot be set from a |modeline| or in the |sandbox|, for
+       security reasons.
+  
+--- 6052,6063 ----
+       the "!" and ":!" commands.  Includes the redirection.  See
+       'shellquote' to exclude the redirection.  It's probably not useful
+       to set both options.
+!      This is an empty string by default on most systems, but is known to be
+!      useful for on Win32 version, either for cmd.exe which automatically
+!      strips off the first and last quote on a command, or 3rd-party shells
+!      such as the MKS Korn Shell or bash, where it should be "\"".  The
+!      default is adjusted according the value of 'shell', to reduce the need
+!      to set this option by the user.  See |dos-shell|.
+       This option cannot be set from a |modeline| or in the |sandbox|, for
+       security reasons.
+  
+*** ../vim-7.3.442/src/version.c       2012-02-12 20:13:55.000000000 +0100
+--- src/version.c      2012-02-12 23:18:40.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     443,
+  /**/
+
+-- 
+CVS sux, men don't like commitment
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.444.patch0 b/vim/patches/vim-7.3.444.patch0
new file mode 100644 (file)
index 0000000..64ed88b
--- /dev/null
@@ -0,0 +1,96 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.444
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.444
+Problem:    ":all!" and ":sall!" give error E477, even though the
+            documentation says these are valid commands.
+Solution:   Support the exclamation mark. (Hirohito Higashi)
+Files:      src/ex_cmds.h, src/testdir/test31.in, src/testdir/test31.ok
+
+
+*** ../vim-7.3.443/src/ex_cmds.h       2011-06-20 05:02:53.000000000 +0200
+--- src/ex_cmds.h      2012-02-12 23:53:31.000000000 +0100
+***************
+*** 102,108 ****
+  EX(CMD_aboveleft,    "aboveleft",    ex_wrongmodifier,
+                       NEEDARG|EXTRA|NOTRLCOM),
+  EX(CMD_all,          "all",          ex_all,
+!                      RANGE|NOTADR|COUNT|TRLBAR),
+  EX(CMD_amenu,                "amenu",        ex_menu,
+                       RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+  EX(CMD_anoremenu,    "anoremenu",    ex_menu,
+--- 102,108 ----
+  EX(CMD_aboveleft,    "aboveleft",    ex_wrongmodifier,
+                       NEEDARG|EXTRA|NOTRLCOM),
+  EX(CMD_all,          "all",          ex_all,
+!                      BANG|RANGE|NOTADR|COUNT|TRLBAR),
+  EX(CMD_amenu,                "amenu",        ex_menu,
+                       RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+  EX(CMD_anoremenu,    "anoremenu",    ex_menu,
+***************
+*** 798,804 ****
+  EX(CMD_sargument,    "sargument",    ex_argument,
+                       BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
+  EX(CMD_sall,         "sall",         ex_all,
+!                      RANGE|NOTADR|COUNT|TRLBAR),
+  EX(CMD_sandbox,              "sandbox",      ex_wrongmodifier,
+                       NEEDARG|EXTRA|NOTRLCOM),
+  EX(CMD_saveas,               "saveas",       ex_write,
+--- 798,804 ----
+  EX(CMD_sargument,    "sargument",    ex_argument,
+                       BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
+  EX(CMD_sall,         "sall",         ex_all,
+!                      BANG|RANGE|NOTADR|COUNT|TRLBAR),
+  EX(CMD_sandbox,              "sandbox",      ex_wrongmodifier,
+                       NEEDARG|EXTRA|NOTRLCOM),
+  EX(CMD_saveas,               "saveas",       ex_write,
+*** ../vim-7.3.443/src/testdir/test31.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test31.in      2012-02-12 23:57:42.000000000 +0100
+***************
+*** 63,68 ****
+--- 63,74 ----
+  :" write "testtext 1"
+  A 3\e:close!
+  :w >>test.out
++ :set nohidden
++ :" test ":all!" hides changed buffer; write "testtext 2 2 2"
++ :sp Xtest4
++ GA 4\e:all!
++ :1wincmd w
++ :w >>test.out
+  :qa!
+  ENDTEST
+  
+*** ../vim-7.3.443/src/testdir/test31.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test31.ok      2012-02-13 00:00:13.000000000 +0100
+***************
+*** 9,11 ****
+--- 9,12 ----
+  testtext 1
+  testtext 3 3 3
+  testtext 1
++ testtext 2 2 2
+*** ../vim-7.3.443/src/version.c       2012-02-12 23:23:25.000000000 +0100
+--- src/version.c      2012-02-12 23:52:47.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     444,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+50. The last girl you picked up was only a jpeg.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.445.patch0 b/vim/patches/vim-7.3.445.patch0
new file mode 100644 (file)
index 0000000..8d7c337
--- /dev/null
@@ -0,0 +1,199 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.445
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.445 (after 7.3.443)
+Problem:    Can't properly escape commands for cmd.exe.
+Solution:   Default 'shellxquote' to '('.  Append ')' to make '(command)'.
+           No need to use "/s" for 'shellcmdflag'.
+Files:     src/misc2.c, src/option.c, src/os_win32.c
+
+
+*** ../vim-7.3.444/src/misc2.c 2012-01-20 17:15:47.000000000 +0100
+--- src/misc2.c        2012-02-16 05:34:37.000000000 +0100
+***************
+*** 3230,3236 ****
+           {
+               STRCPY(ncmd, p_sxq);
+               STRCAT(ncmd, cmd);
+!              STRCAT(ncmd, p_sxq);
+               retval = mch_call_shell(ncmd, opt);
+               vim_free(ncmd);
+           }
+--- 3230,3240 ----
+           {
+               STRCPY(ncmd, p_sxq);
+               STRCAT(ncmd, cmd);
+!              /* When 'shellxquote' is ( append ).
+!               * When 'shellxquote' is "( append )". */
+!              STRCAT(ncmd, STRCMP(p_sxq, "(") == 0 ? (char_u *)")"
+!                         : STRCMP(p_sxq, "\"(") == 0 ? (char_u *)")\""
+!                         : p_sxq);
+               retval = mch_call_shell(ncmd, opt);
+               vim_free(ncmd);
+           }
+*** ../vim-7.3.444/src/option.c        2012-02-12 23:23:25.000000000 +0100
+--- src/option.c       2012-02-19 18:08:48.000000000 +0100
+***************
+*** 3933,3959 ****
+        *   my path/to/echo" "my args to echo
+        * when executed.
+        *
+!       * To avoid this, use the /s argument in addition to /c to force the
+!       * stripping behavior, and also set shellxquote to automatically
+!       * surround the entire command in quotes (which get stripped as
+!       * noted).
+        */
+- 
+-      /* Set shellxquote default to add the quotes to be stripped. */
+       idx3 = findoption((char_u *)"sxq");
+       if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
+       {
+!          p_sxq = (char_u *)"\"";
+           options[idx3].def_val[VI_DEFAULT] = p_sxq;
+       }
+  
+-      /* Set shellcmdflag default to always strip the quotes, note the order
+-       * between /s and /c is important or cmd.exe will treat the /s as part
+-       * of the command to be executed.  */
+       idx3 = findoption((char_u *)"shcf");
+       if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
+       {
+!          p_shcf = (char_u *)"/s /c";
+           options[idx3].def_val[VI_DEFAULT] = p_shcf;
+       }
+      }
+--- 3933,3954 ----
+        *   my path/to/echo" "my args to echo
+        * when executed.
+        *
+!       * To avoid this, set shellxquote to surround the command in
+!       * parenthesis.  This appears to make most commands work, without
+!       * breaking commands that worked previously, such as
+!       * '"path with spaces/cmd" "a&b"'.
+        */
+       idx3 = findoption((char_u *)"sxq");
+       if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
+       {
+!          p_sxq = (char_u *)"(";
+           options[idx3].def_val[VI_DEFAULT] = p_sxq;
+       }
+  
+       idx3 = findoption((char_u *)"shcf");
+       if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
+       {
+!          p_shcf = (char_u *)"/c";
+           options[idx3].def_val[VI_DEFAULT] = p_shcf;
+       }
+      }
+*** ../vim-7.3.444/src/os_win32.c      2011-08-27 15:10:00.000000000 +0200
+--- src/os_win32.c     2012-02-19 18:11:23.000000000 +0100
+***************
+*** 3908,3915 ****
+       newcmd = lalloc(cmdlen, TRUE);
+       if (newcmd != NULL)
+       {
+!          char_u *cmdbase = (*cmd == '"' ? cmd + 1 : cmd);
+  
+           if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
+           {
+               STARTUPINFO             si;
+--- 3908,3920 ----
+       newcmd = lalloc(cmdlen, TRUE);
+       if (newcmd != NULL)
+       {
+!          char_u *cmdbase = cmd;
+  
++          /* Skip a leading ", ( and "(. */
++          if (*cmdbase == '"' )
++              ++cmdbase;
++          if (*cmdbase == '(')
++              ++cmdbase;
+           if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
+           {
+               STARTUPINFO             si;
+***************
+*** 3953,3968 ****
+                * empty, keep the double quotes around the command.
+                * Otherwise remove the double quotes, they aren't needed
+                * here, because we don't use a shell to run the command. */
+!              if (*cmd == '"' && *p_sxq == NUL)
+               {
+!                  newcmd[0] = '"';
+!                  STRCPY(newcmd + 1, cmdbase);
+!              }
+!              else
+!              {
+!                  STRCPY(newcmd, cmdbase);
+!                  if (*cmd == '"' && *newcmd != NUL)
+!                      newcmd[STRLEN(newcmd) - 1] = NUL;
+               }
+  
+               /*
+--- 3958,3983 ----
+                * empty, keep the double quotes around the command.
+                * Otherwise remove the double quotes, they aren't needed
+                * here, because we don't use a shell to run the command. */
+!              if (cmdbase > cmd)
+               {
+!                  if (STRNCMP(cmd, p_sxq, cmd - cmdbase) != 0)
+!                  {
+!                      STRCPY(newcmd, cmd);
+!                  }
+!                  else
+!                  {
+!                      char_u *p;
+! 
+!                      STRCPY(newcmd, cmdbase);
+!                      /* Remove a trailing ", ) and )" if they have a match
+!                       * at the start of the command. */
+!                      p = newcmd + STRLEN(newcmd);
+!                      if (p > newcmd && p[-1] == '"' && *cmd == '"')
+!                          *--p = NUL;
+!                      if (p > newcmd && p[-1] == ')'
+!                                           && (*cmd =='(' || cmd[1] == '('))
+!                          *--p = NUL;
+!                  }
+               }
+  
+               /*
+***************
+*** 3970,3976 ****
+                * inherit our handles which causes unpleasant dangling swap
+                * files if we exit before the spawned process
+                */
+!              if (CreateProcess (NULL,        // Executable name
+                       newcmd,                 // Command to execute
+                       NULL,                   // Process security attributes
+                       NULL,                   // Thread security attributes
+--- 3985,3991 ----
+                * inherit our handles which causes unpleasant dangling swap
+                * files if we exit before the spawned process
+                */
+!              if (CreateProcess(NULL,         // Executable name
+                       newcmd,                 // Command to execute
+                       NULL,                   // Process security attributes
+                       NULL,                   // Thread security attributes
+*** ../vim-7.3.444/src/version.c       2012-02-13 00:01:38.000000000 +0100
+--- src/version.c      2012-02-19 18:01:46.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     445,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+80. At parties, you introduce your spouse as your "service provider."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.446.patch0 b/vim/patches/vim-7.3.446.patch0
new file mode 100644 (file)
index 0000000..59a2b25
--- /dev/null
@@ -0,0 +1,164 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.446
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.446 (after 7.3.445)
+Problem:    Win32: External commands with special characters don't work.
+Solution:   Add the 'shellxescape' option.
+Files:     src/misc2.c, src/option.c, src/option.h, runtime/doc/options.txt
+
+
+*** ../vim-7.3.445/src/misc2.c 2012-02-19 18:19:24.000000000 +0100
+--- src/misc2.c        2012-02-20 22:05:22.000000000 +0100
+***************
+*** 3225,3235 ****
+           retval = mch_call_shell(cmd, opt);
+       else
+       {
+!          ncmd = alloc((unsigned)(STRLEN(cmd) + STRLEN(p_sxq) * 2 + 1));
+           if (ncmd != NULL)
+           {
+               STRCPY(ncmd, p_sxq);
+!              STRCAT(ncmd, cmd);
+               /* When 'shellxquote' is ( append ).
+                * When 'shellxquote' is "( append )". */
+               STRCAT(ncmd, STRCMP(p_sxq, "(") == 0 ? (char_u *)")"
+--- 3225,3243 ----
+           retval = mch_call_shell(cmd, opt);
+       else
+       {
+!          char_u *ecmd = cmd;
+! 
+!          if (*p_sxe != NUL && STRCMP(p_sxq, "(") == 0)
+!          {
+!              ecmd = vim_strsave_escaped_ext(cmd, p_sxe, '^', FALSE);
+!              if (ecmd == NULL)
+!                  ecmd = cmd;
+!          }
+!          ncmd = alloc((unsigned)(STRLEN(ecmd) + STRLEN(p_sxq) * 2 + 1));
+           if (ncmd != NULL)
+           {
+               STRCPY(ncmd, p_sxq);
+!              STRCAT(ncmd, ecmd);
+               /* When 'shellxquote' is ( append ).
+                * When 'shellxquote' is "( append )". */
+               STRCAT(ncmd, STRCMP(p_sxq, "(") == 0 ? (char_u *)")"
+***************
+*** 3240,3245 ****
+--- 3248,3255 ----
+           }
+           else
+               retval = -1;
++          if (ecmd != cmd)
++              vim_free(ecmd);
+       }
+  #ifdef FEAT_GUI
+       --hold_gui_events;
+*** ../vim-7.3.445/src/option.c        2012-02-19 18:19:24.000000000 +0100
+--- src/option.c       2012-02-20 22:01:07.000000000 +0100
+***************
+*** 2273,2278 ****
+--- 2273,2287 ----
+                           (char_u *)"",
+  #endif
+                               (char_u *)0L} SCRIPTID_INIT},
++     {"shellxescape", "sxe", P_STRING|P_VI_DEF|P_SECURE,
++                          (char_u *)&p_sxe, PV_NONE,
++                          {
++ #if defined(MSDOS) || defined(WIN16) || defined(WIN3264)
++                          (char_u *)"\"&|<>()@^",
++ #else
++                          (char_u *)"",
++ #endif
++                              (char_u *)0L} SCRIPTID_INIT},
+      {"shiftround",  "sr",   P_BOOL|P_VI_DEF|P_VIM,
+                           (char_u *)&p_sr, PV_NONE,
+                           {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+*** ../vim-7.3.445/src/option.h        2011-10-20 21:09:25.000000000 +0200
+--- src/option.h       2012-02-20 21:45:31.000000000 +0100
+***************
+*** 712,717 ****
+--- 712,718 ----
+  #endif
+  EXTERN char_u        *p_shq;         /* 'shellquote' */
+  EXTERN char_u        *p_sxq;         /* 'shellxquote' */
++ EXTERN char_u        *p_sxe;         /* 'shellxescape' */
+  EXTERN char_u        *p_srr;         /* 'shellredir' */
+  #ifdef AMIGA
+  EXTERN long  p_st;           /* 'shelltype' */
+*** ../vim-7.3.445/runtime/doc/options.txt     2012-02-12 23:23:25.000000000 +0100
+--- runtime/doc/options.txt    2012-02-20 22:09:19.000000000 +0100
+***************
+*** 6023,6030 ****
+  
+                                               *'shellxquote'* *'sxq'*
+  'shellxquote' 'sxq'  string  (default: "";
+!                                      for Win32, when 'shell' is cmd.exe or
+!                                      contains "sh" somewhere: "\""
+                                       for Unix, when using system(): "\"")
+                       global
+                       {not in Vi}
+--- 6042,6050 ----
+  
+                                               *'shellxquote'* *'sxq'*
+  'shellxquote' 'sxq'  string  (default: "";
+!                                      for Win32, when 'shell' is cmd.exe: "("
+!                                      for Win32, when 'shell' contains "sh"
+!                                      somewhere: "\""
+                                       for Unix, when using system(): "\"")
+                       global
+                       {not in Vi}
+***************
+*** 6032,6037 ****
+--- 6052,6060 ----
+       the "!" and ":!" commands.  Includes the redirection.  See
+       'shellquote' to exclude the redirection.  It's probably not useful
+       to set both options.
++      When the value is '(' then ')' is appended. When the value is '"('
++      then ')"' is appended.
++      When the value is '(' then also see 'shellxescape'.
+       This is an empty string by default on most systems, but is known to be
+       useful for on Win32 version, either for cmd.exe which automatically
+       strips off the first and last quote on a command, or 3rd-party shells
+***************
+*** 6041,6046 ****
+--- 6064,6079 ----
+       This option cannot be set from a |modeline| or in the |sandbox|, for
+       security reasons.
+  
++                                              *'shellxescape'* *'sxe'*
++ 'shellxescape' 'sxe' string  (default: "";
++                               for MS-DOS and MS-Windows: "\"&|<>()@^")
++                      global
++                      {not in Vi}
++      When 'shellxquote' is set to "(" then the characters listed in this
++      option will be escaped with a '^' character.  This makes it possible
++      to execute most external commands with cmd.exe.
++ 
++ 
+                       *'shiftround'* *'sr'* *'noshiftround'* *'nosr'*
+  'shiftround' 'sr'    boolean (default off)
+                       global
+*** ../vim-7.3.445/src/version.c       2012-02-19 18:19:24.000000000 +0100
+--- src/version.c      2012-02-20 22:12:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     446,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+86. E-mail Deficiency Depression (EDD) forces you to e-mail yourself.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.447.patch0 b/vim/patches/vim-7.3.447.patch0
new file mode 100644 (file)
index 0000000..9c0af9f
--- /dev/null
@@ -0,0 +1,377 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.447
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.447 (after 7.3.446)
+Problem:    Win32: External commands with "start" do not work.
+Solution:   Unescape part of the command. (Yasuhiro Matsumoto)
+Files:     src/os_win32.c
+
+
+*** ../vim-7.3.446/src/os_win32.c      2012-02-19 18:19:24.000000000 +0100
+--- src/os_win32.c     2012-02-21 20:56:51.000000000 +0100
+***************
+*** 259,264 ****
+--- 259,287 ----
+  }
+  
+  /*
++  * Unescape characters in "p" that appear in "escaped".
++  */
++     static void
++ unescape_shellxquote(char_u *p, char_u *escaped)
++ {
++     int          l = STRLEN(p);
++     int          n;
++ 
++     while (*p != NUL)
++     {
++      if (*p == '^' && vim_strchr(escaped, p[1]) != NULL)
++          mch_memmove(p, p + 1, l--);
++ #ifdef FEAT_MBYTE
++      n = (*mb_ptr2len)(p);
++ #else
++      n = 1;
++ #endif
++      p += n;
++      l -= n;
++     }
++ }
++ 
++ /*
+   * Load library "name".
+   */
+      HINSTANCE
+***************
+*** 3559,3564 ****
+--- 3582,3588 ----
+      garray_T ga;
+      int          delay = 1;
+      DWORD    buffer_off = 0; /* valid bytes in buffer[] */
++     char     *p = NULL;
+  
+      SECURITY_ATTRIBUTES saAttr;
+  
+***************
+*** 3599,3607 ****
+      if (options & SHELL_READ)
+       ga_init2(&ga, 1, BUFLEN);
+  
+      /* Now, run the command */
+      CreateProcess(NULL,                      /* Executable name */
+!                cmd,                  /* Command to execute */
+                 NULL,                 /* Process security attributes */
+                 NULL,                 /* Thread security attributes */
+  
+--- 3623,3640 ----
+      if (options & SHELL_READ)
+       ga_init2(&ga, 1, BUFLEN);
+  
++     if (cmd != NULL)
++     {
++      p = (char *)vim_strsave((char_u *)cmd);
++      if (p != NULL)
++          unescape_shellxquote((char_u *)p, p_sxe);
++      else
++          p = cmd;
++     }
++ 
+      /* Now, run the command */
+      CreateProcess(NULL,                      /* Executable name */
+!                p,                    /* Command to execute */
+                 NULL,                 /* Process security attributes */
+                 NULL,                 /* Thread security attributes */
+  
+***************
+*** 3616,3621 ****
+--- 3649,3656 ----
+                 &si,                  /* Startup information */
+                 &pi);                 /* Process information */
+  
++     if (p != cmd)
++      vim_free(p);
+  
+      /* Close our unused side of the pipes */
+      CloseHandle(g_hChildStd_IN_Rd);
+***************
+*** 3898,4018 ****
+      else
+      {
+       /* we use "command" or "cmd" to start the shell; slow but easy */
+!      char_u *newcmd;
+!      long_u cmdlen =  (
+! #ifdef FEAT_GUI_W32
+!              (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
+! #endif
+!              STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
+! 
+!      newcmd = lalloc(cmdlen, TRUE);
+!      if (newcmd != NULL)
+!      {
+!          char_u *cmdbase = cmd;
+! 
+!          /* Skip a leading ", ( and "(. */
+!          if (*cmdbase == '"' )
+!              ++cmdbase;
+!          if (*cmdbase == '(')
+!              ++cmdbase;
+!          if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
+!          {
+!              STARTUPINFO             si;
+!              PROCESS_INFORMATION     pi;
+!              DWORD                   flags = CREATE_NEW_CONSOLE;
+! 
+!              si.cb = sizeof(si);
+!              si.lpReserved = NULL;
+!              si.lpDesktop = NULL;
+!              si.lpTitle = NULL;
+!              si.dwFlags = 0;
+!              si.cbReserved2 = 0;
+!              si.lpReserved2 = NULL;
+! 
+!              cmdbase = skipwhite(cmdbase + 5);
+!              if ((STRNICMP(cmdbase, "/min", 4) == 0)
+!                      && vim_iswhite(cmdbase[4]))
+!              {
+!                  cmdbase = skipwhite(cmdbase + 4);
+!                  si.dwFlags = STARTF_USESHOWWINDOW;
+!                  si.wShowWindow = SW_SHOWMINNOACTIVE;
+!              }
+!              else if ((STRNICMP(cmdbase, "/b", 2) == 0)
+!                      && vim_iswhite(cmdbase[2]))
+!              {
+!                  cmdbase = skipwhite(cmdbase + 2);
+!                  flags = CREATE_NO_WINDOW;
+!                  si.dwFlags = STARTF_USESTDHANDLES;
+!                  si.hStdInput = CreateFile("\\\\.\\NUL",     // File name
+!                      GENERIC_READ,                           // Access flags
+!                      0,                                      // Share flags
+!                      NULL,                                   // Security att.
+!                      OPEN_EXISTING,                          // Open flags
+!                      FILE_ATTRIBUTE_NORMAL,                  // File att.
+!                      NULL);                                  // Temp file
+!                  si.hStdOutput = si.hStdInput;
+!                  si.hStdError = si.hStdInput;
+!              }
+  
+!              /* When the command is in double quotes, but 'shellxquote' is
+!               * empty, keep the double quotes around the command.
+!               * Otherwise remove the double quotes, they aren't needed
+!               * here, because we don't use a shell to run the command. */
+!              if (cmdbase > cmd)
+!              {
+!                  if (STRNCMP(cmd, p_sxq, cmd - cmdbase) != 0)
+!                  {
+!                      STRCPY(newcmd, cmd);
+!                  }
+!                  else
+!                  {
+!                      char_u *p;
+  
+!                      STRCPY(newcmd, cmdbase);
+!                      /* Remove a trailing ", ) and )" if they have a match
+!                       * at the start of the command. */
+!                      p = newcmd + STRLEN(newcmd);
+!                      if (p > newcmd && p[-1] == '"' && *cmd == '"')
+!                          *--p = NUL;
+!                      if (p > newcmd && p[-1] == ')'
+!                                           && (*cmd =='(' || cmd[1] == '('))
+!                          *--p = NUL;
+!                  }
+!              }
+  
+!              /*
+!               * Now, start the command as a process, so that it doesn't
+!               * inherit our handles which causes unpleasant dangling swap
+!               * files if we exit before the spawned process
+!               */
+!              if (CreateProcess(NULL,         // Executable name
+!                      newcmd,                 // Command to execute
+!                      NULL,                   // Process security attributes
+!                      NULL,                   // Thread security attributes
+!                      FALSE,                  // Inherit handles
+!                      flags,                  // Creation flags
+!                      NULL,                   // Environment
+!                      NULL,                   // Current directory
+!                      &si,                    // Startup information
+!                      &pi))                   // Process information
+!                  x = 0;
+!              else
+!              {
+!                  x = -1;
+  #ifdef FEAT_GUI_W32
+!                  EMSG(_("E371: Command not found"));
+  #endif
+-              }
+-              if (si.hStdInput != NULL)
+-              {
+-                  /* Close the handle to \\.\NUL */
+-                  CloseHandle(si.hStdInput);
+-              }
+-              /* Close the handles to the subprocess, so that it goes away */
+-              CloseHandle(pi.hThread);
+-              CloseHandle(pi.hProcess);
+           }
+!          else
+           {
+  #if defined(FEAT_GUI_W32)
+               if (need_vimrun_warning)
+--- 3933,4048 ----
+      else
+      {
+       /* we use "command" or "cmd" to start the shell; slow but easy */
+!      char_u *cmdbase = cmd;
+  
+!      /* Skip a leading ", ( and "(. */
+!      if (*cmdbase == '"' )
+!          ++cmdbase;
+!      if (*cmdbase == '(')
+!          ++cmdbase;
+! 
+!      if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
+!      {
+!          STARTUPINFO         si;
+!          PROCESS_INFORMATION pi;
+!          DWORD               flags = CREATE_NEW_CONSOLE;
+!          char_u              *p;
+! 
+!          si.cb = sizeof(si);
+!          si.lpReserved = NULL;
+!          si.lpDesktop = NULL;
+!          si.lpTitle = NULL;
+!          si.dwFlags = 0;
+!          si.cbReserved2 = 0;
+!          si.lpReserved2 = NULL;
+! 
+!          cmdbase = skipwhite(cmdbase + 5);
+!          if ((STRNICMP(cmdbase, "/min", 4) == 0)
+!                  && vim_iswhite(cmdbase[4]))
+!          {
+!              cmdbase = skipwhite(cmdbase + 4);
+!              si.dwFlags = STARTF_USESHOWWINDOW;
+!              si.wShowWindow = SW_SHOWMINNOACTIVE;
+!          }
+!          else if ((STRNICMP(cmdbase, "/b", 2) == 0)
+!                  && vim_iswhite(cmdbase[2]))
+!          {
+!              cmdbase = skipwhite(cmdbase + 2);
+!              flags = CREATE_NO_WINDOW;
+!              si.dwFlags = STARTF_USESTDHANDLES;
+!              si.hStdInput = CreateFile("\\\\.\\NUL", // File name
+!                  GENERIC_READ,                               // Access flags
+!                  0,                                  // Share flags
+!                  NULL,                                       // Security att.
+!                  OPEN_EXISTING,                              // Open flags
+!                  FILE_ATTRIBUTE_NORMAL,                      // File att.
+!                  NULL);                                      // Temp file
+!              si.hStdOutput = si.hStdInput;
+!              si.hStdError = si.hStdInput;
+!          }
+! 
+!          /* Remove a trailing ", ) and )" if they have a match
+!           * at the start of the command. */
+!          if (cmdbase > cmd)
+!          {
+!              p = cmdbase + STRLEN(cmdbase);
+!              if (p > cmdbase && p[-1] == '"' && *cmd == '"')
+!                  *--p = NUL;
+!              if (p > cmdbase && p[-1] == ')'
+!                      && (*cmd =='(' || cmd[1] == '('))
+!                  *--p = NUL;
+!          }
+  
+!          /*
+!           * Unescape characters in shellxescape. This is workaround for
+!           * /b option. Only redirect character should be unescaped.
+!           */
+!          unescape_shellxquote(cmdbase,
+!                      (flags & CREATE_NEW_CONSOLE) ? p_sxe : "<>");
+  
+!          /*
+!           * Now, start the command as a process, so that it doesn't
+!           * inherit our handles which causes unpleasant dangling swap
+!           * files if we exit before the spawned process
+!           */
+!          if (CreateProcess(NULL,             // Executable name
+!                  cmdbase,                    // Command to execute
+!                  NULL,                       // Process security attributes
+!                  NULL,                       // Thread security attributes
+!                  FALSE,                      // Inherit handles
+!                  flags,                      // Creation flags
+!                  NULL,                       // Environment
+!                  NULL,                       // Current directory
+!                  &si,                        // Startup information
+!                  &pi))                       // Process information
+!              x = 0;
+!          else
+!          {
+!              x = -1;
+  #ifdef FEAT_GUI_W32
+!              EMSG(_("E371: Command not found"));
+  #endif
+           }
+!          if (si.hStdInput != NULL)
+!          {
+!              /* Close the handle to \\.\NUL */
+!              CloseHandle(si.hStdInput);
+!          }
+!          /* Close the handles to the subprocess, so that it goes away */
+!          CloseHandle(pi.hThread);
+!          CloseHandle(pi.hProcess);
+!      }
+!      else
+!      {
+!          char_u *newcmd;
+!          long_u cmdlen =  (
+! #ifdef FEAT_GUI_W32
+!              (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
+! #endif
+!              STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
+! 
+!          newcmd = lalloc(cmdlen, TRUE);
+!          if (newcmd != NULL)
+           {
+  #if defined(FEAT_GUI_W32)
+               if (need_vimrun_warning)
+***************
+*** 4038,4045 ****
+                   vim_snprintf((char *)newcmd, cmdlen, "%s %s %s",
+                                                          p_sh, p_shcf, cmd);
+               x = mch_system((char *)newcmd, options);
+           }
+-          vim_free(newcmd);
+       }
+      }
+  
+--- 4068,4075 ----
+                   vim_snprintf((char *)newcmd, cmdlen, "%s %s %s",
+                                                          p_sh, p_shcf, cmd);
+               x = mch_system((char *)newcmd, options);
++              vim_free(newcmd);
+           }
+       }
+      }
+  
+*** ../vim-7.3.446/src/version.c       2012-02-20 22:18:23.000000000 +0100
+--- src/version.c      2012-02-21 21:20:05.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     447,
+  /**/
+
+-- 
+From "know your smileys":
+ :----}  You lie like Pinocchio
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.448.patch0 b/vim/patches/vim-7.3.448.patch0
new file mode 100644 (file)
index 0000000..91d8f26
--- /dev/null
@@ -0,0 +1,180 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.448
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.448 (after 7.3.447)
+Problem:    Win32: Still a problem with "!start /b".
+Solution:   Escape only '|'. (Yasuhiro Matsumoto)
+Files:     src/os_win32.c
+
+
+*** ../vim-7.3.447/src/os_win32.c      2012-02-21 21:22:40.000000000 +0100
+--- src/os_win32.c     2012-02-22 13:06:55.000000000 +0100
+***************
+*** 3933,3939 ****
+      else
+      {
+       /* we use "command" or "cmd" to start the shell; slow but easy */
+!      char_u *cmdbase = cmd;
+  
+       /* Skip a leading ", ( and "(. */
+       if (*cmdbase == '"' )
+--- 3933,3941 ----
+      else
+      {
+       /* we use "command" or "cmd" to start the shell; slow but easy */
+!      char_u  *newcmd = NULL;
+!      char_u  *cmdbase = cmd;
+!      long_u  cmdlen;
+  
+       /* Skip a leading ", ( and "(. */
+       if (*cmdbase == '"' )
+***************
+*** 3971,3982 ****
+               flags = CREATE_NO_WINDOW;
+               si.dwFlags = STARTF_USESTDHANDLES;
+               si.hStdInput = CreateFile("\\\\.\\NUL", // File name
+!                  GENERIC_READ,                               // Access flags
+                   0,                                  // Share flags
+!                  NULL,                                       // Security att.
+!                  OPEN_EXISTING,                              // Open flags
+!                  FILE_ATTRIBUTE_NORMAL,                      // File att.
+!                  NULL);                                      // Temp file
+               si.hStdOutput = si.hStdInput;
+               si.hStdError = si.hStdInput;
+           }
+--- 3973,3984 ----
+               flags = CREATE_NO_WINDOW;
+               si.dwFlags = STARTF_USESTDHANDLES;
+               si.hStdInput = CreateFile("\\\\.\\NUL", // File name
+!                  GENERIC_READ,                       // Access flags
+                   0,                                  // Share flags
+!                  NULL,                               // Security att.
+!                  OPEN_EXISTING,                      // Open flags
+!                  FILE_ATTRIBUTE_NORMAL,              // File att.
+!                  NULL);                              // Temp file
+               si.hStdOutput = si.hStdInput;
+               si.hStdError = si.hStdInput;
+           }
+***************
+*** 3993,4004 ****
+                   *--p = NUL;
+           }
+  
+           /*
+!           * Unescape characters in shellxescape. This is workaround for
+!           * /b option. Only redirect character should be unescaped.
+            */
+!          unescape_shellxquote(cmdbase,
+!                      (flags & CREATE_NEW_CONSOLE) ? p_sxe : "<>");
+  
+           /*
+            * Now, start the command as a process, so that it doesn't
+--- 3995,4030 ----
+                   *--p = NUL;
+           }
+  
++          newcmd = cmdbase;
++          unescape_shellxquote(cmdbase, p_sxe);
++ 
+           /*
+!           * If creating new console, arguments are passed to the
+!           * 'cmd.exe' as-is. If it's not, arguments are not treated
+!           * correctly for current 'cmd.exe'. So unescape characters in
+!           * shellxescape except '|' for avoiding to be treated as
+!           * argument to them. Pass the arguments to sub-shell.
+            */
+!          if (flags != CREATE_NEW_CONSOLE)
+!          {
+!              char_u  *subcmd;
+!              char_u  *cmd_shell = default_shell();
+! 
+!              subcmd = vim_strsave_escaped_ext(cmdbase, "|", '^', FALSE);
+!              if (subcmd != NULL)
+!              {
+!                  /* make "cmd.exe /c arguments" */
+!                  cmdlen = STRLEN(cmd_shell) + STRLEN(subcmd) + 5;
+!                  vim_free(subcmd);
+! 
+!                  newcmd = lalloc(cmdlen, TRUE);
+!                  if (newcmd != NULL)
+!                      vim_snprintf((char *)newcmd, cmdlen, "%s /c %s",
+!                                                     default_shell, subcmd);
+!                  else
+!                      newcmd = cmdbase;
+!              }
+!          }
+  
+           /*
+            * Now, start the command as a process, so that it doesn't
+***************
+*** 4006,4012 ****
+            * files if we exit before the spawned process
+            */
+           if (CreateProcess(NULL,             // Executable name
+!                  cmdbase,                    // Command to execute
+                   NULL,                       // Process security attributes
+                   NULL,                       // Thread security attributes
+                   FALSE,                      // Inherit handles
+--- 4032,4038 ----
+            * files if we exit before the spawned process
+            */
+           if (CreateProcess(NULL,             // Executable name
+!                  newcmd,                     // Command to execute
+                   NULL,                       // Process security attributes
+                   NULL,                       // Thread security attributes
+                   FALSE,                      // Inherit handles
+***************
+*** 4023,4028 ****
+--- 4049,4058 ----
+               EMSG(_("E371: Command not found"));
+  #endif
+           }
++ 
++          if (newcmd != cmdbase)
++              vim_free(newcmd);
++ 
+           if (si.hStdInput != NULL)
+           {
+               /* Close the handle to \\.\NUL */
+***************
+*** 4034,4041 ****
+       }
+       else
+       {
+!          char_u *newcmd;
+!          long_u cmdlen =  (
+  #ifdef FEAT_GUI_W32
+               (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
+  #endif
+--- 4064,4070 ----
+       }
+       else
+       {
+!          cmdlen = (
+  #ifdef FEAT_GUI_W32
+               (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
+  #endif
+*** ../vim-7.3.447/src/version.c       2012-02-21 21:22:40.000000000 +0100
+--- src/version.c      2012-02-22 13:02:15.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     448,
+  /**/
+
+-- 
+From "know your smileys":
+ ~#:-( I just washed my hair, and I can't do nuthin' with it.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.449.patch0 b/vim/patches/vim-7.3.449.patch0
new file mode 100644 (file)
index 0000000..9b5bdea
--- /dev/null
@@ -0,0 +1,455 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.449
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.449
+Problem:    Crash when a BufWinLeave autocommand closes the only other window.
+           (Daniel Hunt)
+Solution:   Abort closing a buffer when it becomes the only one.
+Files:     src/buffer.c, src/proto/buffer.pro, src/ex_cmds.c, src/ex_getln.c,
+           src/misc2.c, src/quickfix.c, src/window.c, src/proto/window.pro
+
+
+*** ../vim-7.3.448/src/buffer.c        2012-01-20 20:44:38.000000000 +0100
+--- src/buffer.c       2012-02-22 14:50:42.000000000 +0100
+***************
+*** 64,69 ****
+--- 64,72 ----
+  static char *msg_loclist = N_("[Location List]");
+  static char *msg_qflist = N_("[Quickfix List]");
+  #endif
++ #ifdef FEAT_AUTOCMD
++ static char *e_auabort = N_("E855: Autocommands caused command to abort");
++ #endif
+  
+  /*
+   * Open current buffer, that is: open the memfile and read the file into
+***************
+*** 96,102 ****
+        * There MUST be a memfile, otherwise we can't do anything
+        * If we can't create one for the current buffer, take another buffer
+        */
+!      close_buffer(NULL, curbuf, 0);
+       for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
+           if (curbuf->b_ml.ml_mfp != NULL)
+               break;
+--- 99,105 ----
+        * There MUST be a memfile, otherwise we can't do anything
+        * If we can't create one for the current buffer, take another buffer
+        */
+!      close_buffer(NULL, curbuf, 0, FALSE);
+       for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
+           if (curbuf->b_ml.ml_mfp != NULL)
+               break;
+***************
+*** 316,327 ****
+   * get a new buffer very soon!
+   *
+   * The 'bufhidden' option can force freeing and deleting.
+   */
+      void
+! close_buffer(win, buf, action)
+      win_T    *win;           /* if not NULL, set b_last_cursor */
+      buf_T    *buf;
+      int              action;
+  {
+  #ifdef FEAT_AUTOCMD
+      int              is_curbuf;
+--- 319,335 ----
+   * get a new buffer very soon!
+   *
+   * The 'bufhidden' option can force freeing and deleting.
++  *
++  * When "abort_if_last" is TRUE then do not close the buffer if autocommands
++  * cause there to be only one window with this buffer.  e.g. when ":quit" is
++  * supposed to close the window but autocommands close all other windows.
+   */
+      void
+! close_buffer(win, buf, action, abort_if_last)
+      win_T    *win;           /* if not NULL, set b_last_cursor */
+      buf_T    *buf;
+      int              action;
++     int              abort_if_last;
+  {
+  #ifdef FEAT_AUTOCMD
+      int              is_curbuf;
+***************
+*** 371,378 ****
+      {
+       apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
+                                                                 FALSE, buf);
+!      if (!buf_valid(buf))        /* autocommands may delete the buffer */
+           return;
+  
+       /* When the buffer becomes hidden, but is not unloaded, trigger
+        * BufHidden */
+--- 379,390 ----
+      {
+       apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
+                                                                 FALSE, buf);
+!      /* Return if autocommands deleted the buffer or made it the only one. */
+!      if (!buf_valid(buf) || (abort_if_last && one_window()))
+!      {
+!          EMSG(_(e_auabort));
+           return;
++      }
+  
+       /* When the buffer becomes hidden, but is not unloaded, trigger
+        * BufHidden */
+***************
+*** 380,387 ****
+       {
+           apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
+                                                                 FALSE, buf);
+!          if (!buf_valid(buf))        /* autocmds may delete the buffer */
+               return;
+       }
+  # ifdef FEAT_EVAL
+       if (aborting())     /* autocmds may abort script processing */
+--- 392,404 ----
+       {
+           apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
+                                                                 FALSE, buf);
+!          /* Return if autocommands deleted the buffer or made it the only
+!           * one. */
+!          if (!buf_valid(buf) || (abort_if_last && one_window()))
+!          {
+!              EMSG(_(e_auabort));
+               return;
++          }
+       }
+  # ifdef FEAT_EVAL
+       if (aborting())     /* autocmds may abort script processing */
+***************
+*** 775,781 ****
+        * open a new, empty buffer. */
+       swap_exists_action = SEA_NONE;  /* don't want it again */
+       swap_exists_did_quit = TRUE;
+!      close_buffer(curwin, curbuf, DOBUF_UNLOAD);
+       if (!buf_valid(old_curbuf) || old_curbuf == curbuf)
+           old_curbuf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED);
+       if (old_curbuf != NULL)
+--- 792,798 ----
+        * open a new, empty buffer. */
+       swap_exists_action = SEA_NONE;  /* don't want it again */
+       swap_exists_did_quit = TRUE;
+!      close_buffer(curwin, curbuf, DOBUF_UNLOAD, FALSE);
+       if (!buf_valid(old_curbuf) || old_curbuf == curbuf)
+           old_curbuf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED);
+       if (old_curbuf != NULL)
+***************
+*** 1122,1128 ****
+            * if the buffer still exists.
+            */
+           if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
+!              close_buffer(NULL, buf, action);
+           return retval;
+       }
+  
+--- 1139,1145 ----
+            * if the buffer still exists.
+            */
+           if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
+!              close_buffer(NULL, buf, action, FALSE);
+           return retval;
+       }
+  
+***************
+*** 1146,1152 ****
+           close_windows(buf, FALSE);
+  #endif
+           if (buf != curbuf && buf_valid(buf) && buf->b_nwindows <= 0)
+!              close_buffer(NULL, buf, action);
+           return OK;
+       }
+  
+--- 1163,1169 ----
+           close_windows(buf, FALSE);
+  #endif
+           if (buf != curbuf && buf_valid(buf) && buf->b_nwindows <= 0)
+!              close_buffer(NULL, buf, action, FALSE);
+           return OK;
+       }
+  
+***************
+*** 1378,1384 ****
+           close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
+                   unload ? action : (action == DOBUF_GOTO
+                       && !P_HID(prevbuf)
+!                      && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0);
+       }
+      }
+  #ifdef FEAT_AUTOCMD
+--- 1395,1401 ----
+           close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
+                   unload ? action : (action == DOBUF_GOTO
+                       && !P_HID(prevbuf)
+!                      && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
+       }
+      }
+  #ifdef FEAT_AUTOCMD
+***************
+*** 2708,2714 ****
+               vim_free(ffname);
+               return FAIL;
+           }
+!          close_buffer(NULL, obuf, DOBUF_WIPE); /* delete from the list */
+       }
+       sfname = vim_strsave(sfname);
+       if (ffname == NULL || sfname == NULL)
+--- 2725,2732 ----
+               vim_free(ffname);
+               return FAIL;
+           }
+!          /* delete from the list */
+!          close_buffer(NULL, obuf, DOBUF_WIPE, FALSE);
+       }
+       sfname = vim_strsave(sfname);
+       if (ffname == NULL || sfname == NULL)
+***************
+*** 5638,5644 ****
+      if (!aucmd)                  /* Don't trigger BufDelete autocommands here. */
+       block_autocmds();
+  #endif
+!     close_buffer(NULL, buf, DOBUF_WIPE);
+  #ifdef FEAT_AUTOCMD
+      if (!aucmd)
+       unblock_autocmds();
+--- 5656,5662 ----
+      if (!aucmd)                  /* Don't trigger BufDelete autocommands here. */
+       block_autocmds();
+  #endif
+!     close_buffer(NULL, buf, DOBUF_WIPE, FALSE);
+  #ifdef FEAT_AUTOCMD
+      if (!aucmd)
+       unblock_autocmds();
+*** ../vim-7.3.448/src/proto/buffer.pro        2010-08-15 21:57:28.000000000 +0200
+--- src/proto/buffer.pro       2012-02-22 14:04:26.000000000 +0100
+***************
+*** 1,7 ****
+  /* buffer.c */
+  int open_buffer __ARGS((int read_stdin, exarg_T *eap, int flags));
+  int buf_valid __ARGS((buf_T *buf));
+! void close_buffer __ARGS((win_T *win, buf_T *buf, int action));
+  void buf_clear_file __ARGS((buf_T *buf));
+  void buf_freeall __ARGS((buf_T *buf, int flags));
+  void goto_buffer __ARGS((exarg_T *eap, int start, int dir, int count));
+--- 1,7 ----
+  /* buffer.c */
+  int open_buffer __ARGS((int read_stdin, exarg_T *eap, int flags));
+  int buf_valid __ARGS((buf_T *buf));
+! void close_buffer __ARGS((win_T *win, buf_T *buf, int action, int abort_if_last));
+  void buf_clear_file __ARGS((buf_T *buf));
+  void buf_freeall __ARGS((buf_T *buf, int flags));
+  void goto_buffer __ARGS((exarg_T *eap, int start, int dir, int count));
+*** ../vim-7.3.448/src/ex_cmds.c       2011-12-30 15:01:55.000000000 +0100
+--- src/ex_cmds.c      2012-02-22 14:00:32.000000000 +0100
+***************
+*** 3387,3393 ****
+               /* close the link to the current buffer */
+               u_sync(FALSE);
+               close_buffer(oldwin, curbuf,
+!                                    (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
+  
+  #ifdef FEAT_AUTOCMD
+               /* Autocommands may open a new window and leave oldwin open
+--- 3387,3393 ----
+               /* close the link to the current buffer */
+               u_sync(FALSE);
+               close_buffer(oldwin, curbuf,
+!                             (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD, FALSE);
+  
+  #ifdef FEAT_AUTOCMD
+               /* Autocommands may open a new window and leave oldwin open
+*** ../vim-7.3.448/src/ex_getln.c      2012-02-04 22:44:27.000000000 +0100
+--- src/ex_getln.c     2012-02-22 14:01:56.000000000 +0100
+***************
+*** 6443,6449 ****
+       /* win_close() may have already wiped the buffer when 'bh' is
+        * set to 'wipe' */
+       if (buf_valid(bp))
+!          close_buffer(NULL, bp, DOBUF_WIPE);
+  
+       /* Restore window sizes. */
+       win_size_restore(&winsizes);
+--- 6443,6449 ----
+       /* win_close() may have already wiped the buffer when 'bh' is
+        * set to 'wipe' */
+       if (buf_valid(bp))
+!          close_buffer(NULL, bp, DOBUF_WIPE, FALSE);
+  
+       /* Restore window sizes. */
+       win_size_restore(&winsizes);
+*** ../vim-7.3.448/src/misc2.c 2012-02-20 22:18:22.000000000 +0100
+--- src/misc2.c        2012-02-22 14:02:12.000000000 +0100
+***************
+*** 1173,1179 ****
+      for (buf = firstbuf; buf != NULL; )
+      {
+       nextbuf = buf->b_next;
+!      close_buffer(NULL, buf, DOBUF_WIPE);
+       if (buf_valid(buf))
+           buf = nextbuf;      /* didn't work, try next one */
+       else
+--- 1173,1179 ----
+      for (buf = firstbuf; buf != NULL; )
+      {
+       nextbuf = buf->b_next;
+!      close_buffer(NULL, buf, DOBUF_WIPE, FALSE);
+       if (buf_valid(buf))
+           buf = nextbuf;      /* didn't work, try next one */
+       else
+*** ../vim-7.3.448/src/quickfix.c      2012-01-20 13:39:03.000000000 +0100
+--- src/quickfix.c     2012-02-22 14:02:20.000000000 +0100
+***************
+*** 3565,3571 ****
+      buf_T    *buf;
+  {
+      if (curbuf != buf)               /* safety check */
+!      close_buffer(NULL, buf, DOBUF_UNLOAD);
+  }
+  
+  #if defined(FEAT_EVAL) || defined(PROTO)
+--- 3565,3571 ----
+      buf_T    *buf;
+  {
+      if (curbuf != buf)               /* safety check */
+!      close_buffer(NULL, buf, DOBUF_UNLOAD, FALSE);
+  }
+  
+  #if defined(FEAT_EVAL) || defined(PROTO)
+*** ../vim-7.3.448/src/window.c        2012-01-10 22:26:12.000000000 +0100
+--- src/window.c       2012-02-22 14:08:13.000000000 +0100
+***************
+*** 23,29 ****
+  static void win_totop __ARGS((int size, int flags));
+  static void win_equal_rec __ARGS((win_T *next_curwin, int current, frame_T *topfr, int dir, int col, int row, int width, int height));
+  static int last_window __ARGS((void));
+- static int one_window __ARGS((void));
+  static win_T *win_free_mem __ARGS((win_T *win, int *dirp, tabpage_T *tp));
+  static frame_T *win_altframe __ARGS((win_T *win, tabpage_T *tp));
+  static tabpage_T *alt_tabpage __ARGS((void));
+--- 23,28 ----
+***************
+*** 2083,2089 ****
+   * Return TRUE if there is only one window other than "aucmd_win" in the
+   * current tab page.
+   */
+!     static int
+  one_window()
+  {
+  #ifdef FEAT_AUTOCMD
+--- 2082,2088 ----
+   * Return TRUE if there is only one window other than "aucmd_win" in the
+   * current tab page.
+   */
+!     int
+  one_window()
+  {
+  #ifdef FEAT_AUTOCMD
+***************
+*** 2109,2115 ****
+   * Close window "win".  Only works for the current tab page.
+   * If "free_buf" is TRUE related buffer may be unloaded.
+   *
+!  * called by :quit, :close, :xit, :wq and findtag()
+   */
+      void
+  win_close(win, free_buf)
+--- 2108,2114 ----
+   * Close window "win".  Only works for the current tab page.
+   * If "free_buf" is TRUE related buffer may be unloaded.
+   *
+!  * Called by :quit, :close, :xit, :wq and findtag().
+   */
+      void
+  win_close(win, free_buf)
+***************
+*** 2222,2228 ****
+       * Close the link to the buffer.
+       */
+      if (win->w_buffer != NULL)
+!      close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
+  
+      /* Autocommands may have closed the window already, or closed the only
+       * other window or moved to another tab page. */
+--- 2221,2227 ----
+       * Close the link to the buffer.
+       */
+      if (win->w_buffer != NULL)
+!      close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, TRUE);
+  
+      /* Autocommands may have closed the window already, or closed the only
+       * other window or moved to another tab page. */
+***************
+*** 2328,2334 ****
+      int              free_tp = FALSE;
+  
+      /* Close the link to the buffer. */
+!     close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
+  
+      /* Careful: Autocommands may have closed the tab page or made it the
+       * current tab page.  */
+--- 2327,2333 ----
+      int              free_tp = FALSE;
+  
+      /* Close the link to the buffer. */
+!     close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
+  
+      /* Careful: Autocommands may have closed the tab page or made it the
+       * current tab page.  */
+*** ../vim-7.3.448/src/proto/window.pro        2010-08-15 21:57:28.000000000 +0200
+--- src/proto/window.pro       2012-02-22 14:08:28.000000000 +0100
+***************
+*** 1,13 ****
+  /* window.c */
+  void do_window __ARGS((int nchar, long Prenum, int xchar));
+  int win_split __ARGS((int size, int flags));
+! int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir));
+  int win_valid __ARGS((win_T *win));
+  int win_count __ARGS((void));
+  int make_windows __ARGS((int count, int vertical));
+  void win_move_after __ARGS((win_T *win1, win_T *win2));
+  void win_equal __ARGS((win_T *next_curwin, int current, int dir));
+  void close_windows __ARGS((buf_T *buf, int keep_curwin));
+  void win_close __ARGS((win_T *win, int free_buf));
+  void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
+  void win_free_all __ARGS((void));
+--- 1,14 ----
+  /* window.c */
+  void do_window __ARGS((int nchar, long Prenum, int xchar));
+  int win_split __ARGS((int size, int flags));
+! int win_split_ins __ARGS((int size, int flags, win_T *new_wp, int dir));
+  int win_valid __ARGS((win_T *win));
+  int win_count __ARGS((void));
+  int make_windows __ARGS((int count, int vertical));
+  void win_move_after __ARGS((win_T *win1, win_T *win2));
+  void win_equal __ARGS((win_T *next_curwin, int current, int dir));
+  void close_windows __ARGS((buf_T *buf, int keep_curwin));
++ int one_window __ARGS((void));
+  void win_close __ARGS((win_T *win, int free_buf));
+  void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
+  void win_free_all __ARGS((void));
+*** ../vim-7.3.448/src/version.c       2012-02-22 13:07:02.000000000 +0100
+--- src/version.c      2012-02-22 14:55:21.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     449,
+  /**/
+
+-- 
+From "know your smileys":
+ :-)-O Smiling doctor with stethoscope
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.450.patch0 b/vim/patches/vim-7.3.450.patch0
new file mode 100644 (file)
index 0000000..7112668
--- /dev/null
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.450
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.450 (after 7.3.448)
+Problem:    Win32: Still a problem with "!start /b".
+Solution:   Fix pointer use. (Yasuhiro Matsumoto)
+Files:     src/os_win32.c
+
+
+*** ../vim-7.3.449/src/os_win32.c      2012-02-22 13:07:02.000000000 +0100
+--- src/os_win32.c     2012-02-22 15:29:56.000000000 +0100
+***************
+*** 4008,4028 ****
+           if (flags != CREATE_NEW_CONSOLE)
+           {
+               char_u  *subcmd;
+!              char_u  *cmd_shell = default_shell();
+  
+               subcmd = vim_strsave_escaped_ext(cmdbase, "|", '^', FALSE);
+               if (subcmd != NULL)
+               {
+                   /* make "cmd.exe /c arguments" */
+                   cmdlen = STRLEN(cmd_shell) + STRLEN(subcmd) + 5;
+-                  vim_free(subcmd);
+- 
+                   newcmd = lalloc(cmdlen, TRUE);
+                   if (newcmd != NULL)
+                       vim_snprintf((char *)newcmd, cmdlen, "%s /c %s",
+!                                                     default_shell, subcmd);
+                   else
+                       newcmd = cmdbase;
+               }
+           }
+  
+--- 4008,4030 ----
+           if (flags != CREATE_NEW_CONSOLE)
+           {
+               char_u  *subcmd;
+!              char_u  *cmd_shell = mch_getenv("COMSPEC");
+! 
+!              if (cmd_shell == NULL || *cmd_shell == NUL)
+!                  cmd_shell = default_shell();
+  
+               subcmd = vim_strsave_escaped_ext(cmdbase, "|", '^', FALSE);
+               if (subcmd != NULL)
+               {
+                   /* make "cmd.exe /c arguments" */
+                   cmdlen = STRLEN(cmd_shell) + STRLEN(subcmd) + 5;
+                   newcmd = lalloc(cmdlen, TRUE);
+                   if (newcmd != NULL)
+                       vim_snprintf((char *)newcmd, cmdlen, "%s /c %s",
+!                                                     cmd_shell, subcmd);
+                   else
+                       newcmd = cmdbase;
++                  vim_free(subcmd);
+               }
+           }
+  
+*** ../vim-7.3.449/src/version.c       2012-02-22 14:58:24.000000000 +0100
+--- src/version.c      2012-02-22 15:33:53.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     450,
+  /**/
+
+-- 
+You are only young once, but you can stay immature indefinitely.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.451.patch0 b/vim/patches/vim-7.3.451.patch0
new file mode 100644 (file)
index 0000000..25d1b04
--- /dev/null
@@ -0,0 +1,363 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.451
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.451
+Problem:    Tcl doesn't work on 64 bit MS-Windows.
+Solution:   Make it work. (Dave Bodenstab)
+Files:     src/Make_mvc.mak, src/if_tcl.c
+
+
+*** ../vim-7.3.450/src/Make_mvc.mak    2012-02-12 01:55:50.000000000 +0100
+--- src/Make_mvc.mak   2012-02-22 15:43:01.000000000 +0100
+***************
+*** 616,622 ****
+               -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
+  TCL_OBJ      = $(OUTDIR)\if_tcl.obj
+  TCL_INC      = /I "$(TCL)\Include" /I "$(TCL)"
+! TCL_LIB = $(TCL)\lib\tclstub$(TCL_VER).lib
+  !else
+  CFLAGS  = $(CFLAGS) -DFEAT_TCL
+  TCL_OBJ      = $(OUTDIR)\if_tcl.obj
+--- 616,622 ----
+               -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
+  TCL_OBJ      = $(OUTDIR)\if_tcl.obj
+  TCL_INC      = /I "$(TCL)\Include" /I "$(TCL)"
+! TCL_LIB = "$(TCL)\lib\tclstub$(TCL_VER).lib"
+  !else
+  CFLAGS  = $(CFLAGS) -DFEAT_TCL
+  TCL_OBJ      = $(OUTDIR)\if_tcl.obj
+*** ../vim-7.3.450/src/if_tcl.c        2011-07-27 14:15:41.000000000 +0200
+--- src/if_tcl.c       2012-02-22 15:47:00.000000000 +0100
+***************
+*** 79,90 ****
+  typedef struct
+  {
+      Tcl_Interp *interp;
+      int range_start, range_end;
+      int lbase;
+      char *curbuf, *curwin;
+  } tcl_info;
+  
+! static tcl_info tclinfo = { NULL, 0, 0, 0, NULL, NULL };
+  
+  #define VAR_RANGE1   "::vim::range(start)"
+  #define VAR_RANGE2   "::vim::range(begin)"
+--- 79,91 ----
+  typedef struct
+  {
+      Tcl_Interp *interp;
++     int exitvalue;
+      int range_start, range_end;
+      int lbase;
+      char *curbuf, *curwin;
+  } tcl_info;
+  
+! static tcl_info tclinfo = { NULL, 0, 0, 0, 0, NULL, NULL };
+  
+  #define VAR_RANGE1   "::vim::range(start)"
+  #define VAR_RANGE2   "::vim::range(begin)"
+***************
+*** 279,294 ****
+   ****************************************************************************/
+  
+  /*
+!  * Replace standard "exit" and "catch" commands.
+   *
+!  * This is a design flaw in Tcl -  the standard "exit" command just calls
+!  * exit() and kills the application.  It should return TCL_EXIT to the
+!  * app, which then decides if it wants to terminate or not.  In our case,
+!  * we just delete the Tcl interpreter (and create a new one with the next
+!  * :tcl command).
+   */
+- #define TCL_EXIT     5
+- 
+      static int
+  exitcmd(dummy, interp, objc, objv)
+      ClientData dummy UNUSED;
+--- 280,298 ----
+   ****************************************************************************/
+  
+  /*
+!  * Replace standard "exit" command.
+   *
+!  * Delete the Tcl interpreter; a new one will be created with the next
+!  * :tcl command). The exit code is saved (and retrieved in tclexit()).
+!  * Since Tcl's exit is never expected to return and this replacement
+!  * does, then (except for a trivial case) additional Tcl commands will
+!  * be run. Since the interpreter is now marked as deleted, an error
+!  * will be returned -- typically "attempt to call eval in deleted
+!  * interpreter". Hopefully, at this point, checks for TCL_ERROR take
+!  * place and control percolates back up to Vim -- but with this new error
+!  * string in the interpreter's result value. Therefore it would be
+!  * useless for this routine to return the exit code via Tcl_SetResult().
+   */
+      static int
+  exitcmd(dummy, interp, objc, objv)
+      ClientData dummy UNUSED;
+***************
+*** 305,351 ****
+               break;
+           /* FALLTHROUGH */
+       case 1:
+!          Tcl_SetObjResult(interp, Tcl_NewIntObj(value));
+!          return TCL_EXIT;
+!      default:
+!          Tcl_WrongNumArgs(interp, 1, objv, "?returnCode?");
+!     }
+!     return TCL_ERROR;
+! }
+  
+!     static int
+! catchcmd(dummy, interp, objc, objv)
+!     ClientData       dummy UNUSED;
+!     Tcl_Interp       *interp;
+!     int              objc;
+!     Tcl_Obj  *CONST objv[];
+! {
+!     char    *varname = NULL;
+!     int          result;
+! 
+!     switch (objc)
+!     {
+!      case 3:
+!          varname = Tcl_GetStringFromObj(objv[2], NULL);
+!          /* fallthrough */
+!      case 2:
+!          Tcl_ResetResult(interp);
+!          Tcl_AllowExceptions(interp);
+!          result = Tcl_EvalObj(interp, objv[1]);
+!          if (result == TCL_EXIT)
+!              return result;
+!          if (varname)
+!          {
+!              if (Tcl_SetVar(interp, varname, Tcl_GetStringResult(interp), 0) == NULL)
+!              {
+!                  Tcl_SetResult(interp, "couldn't save command result in variable", TCL_STATIC);
+!                  return TCL_ERROR;
+!              }
+!          }
+!          Tcl_SetObjResult(interp, Tcl_NewIntObj(result));
+!          return TCL_OK;
+       default:
+!          Tcl_WrongNumArgs(interp, 1, objv, "command ?varName?");
+      }
+      return TCL_ERROR;
+  }
+--- 309,320 ----
+               break;
+           /* FALLTHROUGH */
+       case 1:
+!          tclinfo.exitvalue = value;
+  
+!          Tcl_DeleteInterp(interp);
+!          break;
+       default:
+!          Tcl_WrongNumArgs(interp, 1, objv, "?returnCode?");
+      }
+      return TCL_ERROR;
+  }
+***************
+*** 372,377 ****
+--- 341,347 ----
+  /*
+   *  "::vim::buffer list" - create a list of buffer commands.
+   *  "::vim::buffer {N}" - create buffer command for buffer N.
++  *  "::vim::buffer exists {N}" - test if buffer N exists.
+   *  "::vim::buffer new" - create a new buffer (not implemented)
+   */
+      static int
+***************
+*** 1663,1669 ****
+  static Tcl_ChannelType channel_type =
+  {
+      "vimmessage",    /* typeName */
+!     NULL,            /* version */
+      channel_close,   /* closeProc */
+      channel_input,   /* inputProc */
+      channel_output,  /* outputProc */
+--- 1633,1639 ----
+  static Tcl_ChannelType channel_type =
+  {
+      "vimmessage",    /* typeName */
+!     TCL_CHANNEL_VERSION_2, /* version */
+      channel_close,   /* closeProc */
+      channel_input,   /* inputProc */
+      channel_output,  /* outputProc */
+***************
+*** 1678,1683 ****
+--- 1648,1655 ----
+      NULL,            /* flushProc */
+      NULL,            /* handlerProc */
+  #endif
++ /* The following should not be necessary since TCL_CHANNEL_VERSION_2 was
++  * set above */
+  #ifdef TCL_CHANNEL_VERSION_3
+      NULL,            /* wideSeekProc */
+  #endif
+***************
+*** 1741,1747 ****
+       Tcl_Interp *interp;
+       static Tcl_Channel ch1, ch2;
+  
+!      /* replace stdout and stderr */
+       ch1 = Tcl_CreateChannel(&channel_type, "vimout", VIMOUT, TCL_WRITABLE);
+       ch2 = Tcl_CreateChannel(&channel_type, "vimerr", VIMERR, TCL_WRITABLE);
+       Tcl_SetStdChannel(ch1, TCL_STDOUT);
+--- 1713,1721 ----
+       Tcl_Interp *interp;
+       static Tcl_Channel ch1, ch2;
+  
+!      /* Create replacement channels for stdout and stderr; this has to be
+!       * done each time an interpreter is created since the channels are closed
+!       * when the interpreter is deleted */
+       ch1 = Tcl_CreateChannel(&channel_type, "vimout", VIMOUT, TCL_WRITABLE);
+       ch2 = Tcl_CreateChannel(&channel_type, "vimerr", VIMERR, TCL_WRITABLE);
+       Tcl_SetStdChannel(ch1, TCL_STDOUT);
+***************
+*** 1761,1775 ****
+  #endif
+  
+       Tcl_SetChannelOption(interp, ch1, "-buffering", "line");
+       Tcl_SetChannelOption(interp, ch2, "-buffering", "line");
+  
+!      /* replace some standard Tcl commands */
+       Tcl_DeleteCommand(interp, "exit");
+       Tcl_CreateObjCommand(interp, "exit", exitcmd,
+           (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
+-      Tcl_DeleteCommand(interp, "catch");
+-      Tcl_CreateObjCommand(interp, "catch", catchcmd,
+-          (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
+  
+       /* new commands, in ::vim namespace */
+       Tcl_CreateObjCommand(interp, "::vim::buffer", buffercmd,
+--- 1735,1752 ----
+  #endif
+  
+       Tcl_SetChannelOption(interp, ch1, "-buffering", "line");
++ #ifdef WIN3264
++      Tcl_SetChannelOption(interp, ch1, "-translation", "lf");
++ #endif
+       Tcl_SetChannelOption(interp, ch2, "-buffering", "line");
++ #ifdef WIN3264
++      Tcl_SetChannelOption(interp, ch2, "-translation", "lf");
++ #endif
+  
+!      /* replace standard Tcl exit command */
+       Tcl_DeleteCommand(interp, "exit");
+       Tcl_CreateObjCommand(interp, "exit", exitcmd,
+           (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
+  
+       /* new commands, in ::vim namespace */
+       Tcl_CreateObjCommand(interp, "::vim::buffer", buffercmd,
+***************
+*** 1821,1826 ****
+--- 1798,1805 ----
+       tclinfo.range_end = row2tcl(eap->line2);
+       tclupdatevars();
+      }
++ 
++     tclinfo.exitvalue = 0;
+      return OK;
+  }
+  
+***************
+*** 1884,1913 ****
+  {
+      int newerr = OK;
+  
+!     if (error == TCL_EXIT)
+      {
+-      int retval;
+       char buf[50];
+-      Tcl_Obj *robj;
+  
+!      robj = Tcl_GetObjResult(tclinfo.interp);
+!      if (Tcl_GetIntFromObj(tclinfo.interp, robj, &retval) != TCL_OK)
+       {
+!          EMSG(_("E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"));
+!          newerr = FAIL;
+       }
+       else
+!      {
+!          sprintf(buf, _("E572: exit code %d"), retval);
+!          tclerrmsg(buf);
+!          if (retval == 0)
+!          {
+!              did_emsg = 0;
+!              newerr = OK;
+!          }
+!          else
+!              newerr = FAIL;
+!      }
+  
+       tcldelthisinterp();
+      }
+--- 1863,1885 ----
+  {
+      int newerr = OK;
+  
+!     if (Tcl_InterpDeleted(tclinfo.interp)     /* True if we intercepted Tcl's exit command */
+! #if (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION >= 5) || TCL_MAJOR_VERSION > 8
+!      || Tcl_LimitExceeded(tclinfo.interp)  /* True if the interpreter cannot continue */
+! #endif
+!      )
+      {
+       char buf[50];
+  
+!      sprintf(buf, _("E572: exit code %d"), tclinfo.exitvalue);
+!      tclerrmsg(buf);
+!      if (tclinfo.exitvalue == 0)
+       {
+!          did_emsg = 0;
+!          newerr = OK;
+       }
+       else
+!          newerr = FAIL;
+  
+       tcldelthisinterp();
+      }
+***************
+*** 2021,2027 ****
+       Tcl_SetVar(tclinfo.interp, var_line, line, 0);
+       Tcl_AllowExceptions(tclinfo.interp);
+       err = Tcl_Eval(tclinfo.interp, script);
+!      if (err != TCL_OK)
+           break;
+       line = (char *)Tcl_GetVar(tclinfo.interp, var_line, 0);
+       if (line)
+--- 1993,2004 ----
+       Tcl_SetVar(tclinfo.interp, var_line, line, 0);
+       Tcl_AllowExceptions(tclinfo.interp);
+       err = Tcl_Eval(tclinfo.interp, script);
+!      if (err != TCL_OK
+!          || Tcl_InterpDeleted(tclinfo.interp)
+! #if (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION >= 5) || TCL_MAJOR_VERSION > 8
+!          || Tcl_LimitExceeded(tclinfo.interp)
+! #endif
+!         )
+           break;
+       line = (char *)Tcl_GetVar(tclinfo.interp, var_line, 0);
+       if (line)
+*** ../vim-7.3.450/src/version.c       2012-02-22 15:34:05.000000000 +0100
+--- src/version.c      2012-02-22 16:00:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     451,
+  /**/
+
+-- 
+Where do you want to crash today?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.452.patch0 b/vim/patches/vim-7.3.452.patch0
new file mode 100644 (file)
index 0000000..295b2fe
--- /dev/null
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.452
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.452
+Problem:    Undo broken when pasting close to the last line. (Andrey Radev)
+Solution:   Use a flag to remember if the deleted included the last line.
+           (Christian Brabandt)
+Files:     src/ops.c
+
+
+*** ../vim-7.3.451/src/ops.c   2012-01-10 13:46:18.000000000 +0100
+--- src/ops.c  2012-02-22 17:32:40.000000000 +0100
+***************
+*** 1943,1954 ****
+--- 1943,1956 ----
+       else                            /* delete characters between lines */
+       {
+           pos_T   curpos;
++          int     delete_last_line;
+  
+           /* save deleted and changed lines for undo */
+           if (u_save((linenr_T)(curwin->w_cursor.lnum - 1),
+                (linenr_T)(curwin->w_cursor.lnum + oap->line_count)) == FAIL)
+               return FAIL;
+  
++          delete_last_line = (oap->end.lnum == curbuf->b_ml.ml_line_count);
+           truncate_line(TRUE);        /* delete from cursor to end of line */
+  
+           curpos = curwin->w_cursor;  /* remember curwin->w_cursor */
+***************
+*** 1956,1962 ****
+           del_lines((long)(oap->line_count - 2), FALSE);
+  
+           n = (oap->end.col + 1 - !oap->inclusive);
+!          if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
+                   && n > (int)STRLEN(ml_get(oap->end.lnum)))
+           {
+               /* Special case: gH<Del> deletes the last line. */
+--- 1958,1964 ----
+           del_lines((long)(oap->line_count - 2), FALSE);
+  
+           n = (oap->end.col + 1 - !oap->inclusive);
+!          if (oap->inclusive && delete_last_line
+                   && n > (int)STRLEN(ml_get(oap->end.lnum)))
+           {
+               /* Special case: gH<Del> deletes the last line. */
+*** ../vim-7.3.451/src/version.c       2012-02-22 16:01:53.000000000 +0100
+--- src/version.c      2012-02-22 17:37:18.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     452,
+  /**/
+
+-- 
+From "know your smileys":
+ =):-) Uncle Sam
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.453.patch0 b/vim/patches/vim-7.3.453.patch0
new file mode 100644 (file)
index 0000000..cf0f0e7
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.453
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.453
+Problem:    Pasting in the command line is slow.
+Solution:   Don't redraw if there is another character to read. (Dominique
+           Pelle)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.3.452/src/ex_getln.c      2012-02-22 14:58:24.000000000 +0100
+--- src/ex_getln.c     2012-02-22 17:53:32.000000000 +0100
+***************
+*** 1852,1859 ****
+  # endif
+               )
+           /* Always redraw the whole command line to fix shaping and
+!           * right-left typing.  Not efficient, but it works. */
+!          redrawcmd();
+  #endif
+      }
+  
+--- 1852,1862 ----
+  # endif
+               )
+           /* Always redraw the whole command line to fix shaping and
+!           * right-left typing.  Not efficient, but it works.
+!           * Do it only when there are no characters left to read
+!           * to avoid useless intermediate redraws. */
+!          if (vpeekc() == NUL)
+!              redrawcmd();
+  #endif
+      }
+  
+*** ../vim-7.3.452/src/version.c       2012-02-22 17:37:55.000000000 +0100
+--- src/version.c      2012-02-22 17:56:59.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     453,
+  /**/
+
+-- 
+From "know your smileys":
+ <<<:-{    Worf (Never smiles anyways, so he's a bad smiley)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.454.patch0 b/vim/patches/vim-7.3.454.patch0
new file mode 100644 (file)
index 0000000..8658926
--- /dev/null
@@ -0,0 +1,84 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.454
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.454
+Problem:    Re-allocating memory slows Vim down.
+Solution:   Use realloc() in ga_grow(). (Dominique Pelle)
+Files:     src/misc2.c
+
+
+*** ../vim-7.3.453/src/misc2.c 2012-02-22 14:58:24.000000000 +0100
+--- src/misc2.c        2012-02-22 18:07:45.000000000 +0100
+***************
+*** 2064,2087 ****
+      garray_T *gap;
+      int              n;
+  {
+!     size_t   len;
+      char_u   *pp;
+  
+      if (gap->ga_maxlen - gap->ga_len < n)
+      {
+       if (n < gap->ga_growsize)
+           n = gap->ga_growsize;
+!      len = gap->ga_itemsize * (gap->ga_len + n);
+!      pp = alloc_clear((unsigned)len);
+       if (pp == NULL)
+           return FAIL;
+       gap->ga_maxlen = gap->ga_len + n;
+-      if (gap->ga_data != NULL)
+-      {
+-          mch_memmove(pp, gap->ga_data,
+-                                    (size_t)(gap->ga_itemsize * gap->ga_len));
+-          vim_free(gap->ga_data);
+-      }
+       gap->ga_data = pp;
+      }
+      return OK;
+--- 2064,2085 ----
+      garray_T *gap;
+      int              n;
+  {
+!     size_t   old_len;
+!     size_t   new_len;
+      char_u   *pp;
+  
+      if (gap->ga_maxlen - gap->ga_len < n)
+      {
+       if (n < gap->ga_growsize)
+           n = gap->ga_growsize;
+!      new_len = gap->ga_itemsize * (gap->ga_len + n);
+!      pp = (gap->ga_data == NULL)
+!                      ? alloc(new_len) : vim_realloc(gap->ga_data, new_len);
+       if (pp == NULL)
+           return FAIL;
++      old_len = gap->ga_itemsize * gap->ga_maxlen;
++      vim_memset(pp + old_len, 0, new_len - old_len);
+       gap->ga_maxlen = gap->ga_len + n;
+       gap->ga_data = pp;
+      }
+      return OK;
+*** ../vim-7.3.453/src/version.c       2012-02-22 17:58:00.000000000 +0100
+--- src/version.c      2012-02-22 18:09:42.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     454,
+  /**/
+
+-- 
+From "know your smileys":
+ (X0||)   Double hamburger with lettuce and tomato
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.455.patch0 b/vim/patches/vim-7.3.455.patch0
new file mode 100644 (file)
index 0000000..217b00d
--- /dev/null
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.455
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.455
+Problem:    Using many continuation lines can be slow.
+Solution:   Adjust the reallocation size to the current length.
+Files:     src/ex_cmds2.c
+
+
+*** ../vim-7.3.454/src/ex_cmds2.c      2012-02-11 20:40:49.000000000 +0100
+--- src/ex_cmds2.c     2012-02-22 18:24:11.000000000 +0100
+***************
+*** 3448,3454 ****
+       {
+           garray_T    ga;
+  
+!          ga_init2(&ga, (int)sizeof(char_u), 200);
+           ga_concat(&ga, line);
+           ga_concat(&ga, p + 1);
+           for (;;)
+--- 3448,3454 ----
+       {
+           garray_T    ga;
+  
+!          ga_init2(&ga, (int)sizeof(char_u), 400);
+           ga_concat(&ga, line);
+           ga_concat(&ga, p + 1);
+           for (;;)
+***************
+*** 3460,3465 ****
+--- 3460,3474 ----
+               p = skipwhite(sp->nextline);
+               if (*p != '\\')
+                   break;
++              /* Adjust the growsize to the current length to speed up
++               * concatenating many lines. */
++              if (ga.ga_len > 400)
++              {
++                  if (ga.ga_len > 8000)
++                      ga.ga_growsize = 8000;
++                  else
++                      ga.ga_growsize = ga.ga_len;
++              }
+               ga_concat(&ga, p + 1);
+           }
+           ga_append(&ga, NUL);
+*** ../vim-7.3.454/src/version.c       2012-02-22 18:12:29.000000000 +0100
+--- src/version.c      2012-02-22 18:24:58.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     455,
+  /**/
+
+-- 
+From "know your smileys":
+ :-X   My lips are sealed
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.456.patch0 b/vim/patches/vim-7.3.456.patch0
new file mode 100644 (file)
index 0000000..26fc2a9
--- /dev/null
@@ -0,0 +1,376 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.456
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.456
+Problem:    ":tab drop file" has several problems, including moving the
+           current window and opening a new tab for a file that already has a
+           window.
+Solution:   Refactor ":tab drop" handling. (Hirohito Higashi)
+Files:     src/buffer.c, src/testdir/test62.in, src/testdir/test62.ok
+
+
+*** ../vim-7.3.455/src/buffer.c        2012-02-22 14:58:24.000000000 +0100
+--- src/buffer.c       2012-02-22 19:08:34.000000000 +0100
+***************
+*** 4405,4411 ****
+  {
+      int              i;
+      win_T    *wp, *wpnext;
+!     char_u   *opened;        /* array of flags for which args are open */
+      int              opened_len;     /* length of opened[] */
+      int              use_firstwin = FALSE;   /* use first window for arglist */
+      int              split_ret = OK;
+--- 4405,4416 ----
+  {
+      int              i;
+      win_T    *wp, *wpnext;
+!     char_u   *opened;        /* Array of weight for which args are open:
+!                               *  0: not opened
+!                               *  1: opened in other tab
+!                               *  2: opened in curtab
+!                               *  3: opened in curtab and curwin
+!                               */
+      int              opened_len;     /* length of opened[] */
+      int              use_firstwin = FALSE;   /* use first window for arglist */
+      int              split_ret = OK;
+***************
+*** 4414,4419 ****
+--- 4419,4426 ----
+      buf_T    *buf;
+      tabpage_T        *tpnext;
+      int              had_tab = cmdmod.tab;
++     win_T    *old_curwin, *last_curwin;
++     tabpage_T        *old_curtab, *last_curtab;
+      win_T    *new_curwin = NULL;
+      tabpage_T        *new_curtab = NULL;
+  
+***************
+*** 4430,4435 ****
+--- 4437,4451 ----
+      if (opened == NULL)
+       return;
+  
++     /* Autocommands may do anything to the argument list.  Make sure it's not
++      * freed while we are working here by "locking" it.  We still have to
++      * watch out for its size to be changed. */
++     alist = curwin->w_alist;
++     ++alist->al_refcount;
++ 
++     old_curwin = curwin;
++     old_curtab = curtab;
++ 
+  #ifdef FEAT_GUI
+      need_mouse_correct = TRUE;
+  #endif
+***************
+*** 4451,4486 ****
+           wpnext = wp->w_next;
+           buf = wp->w_buffer;
+           if (buf->b_ffname == NULL
+!                  || buf->b_nwindows > 1
+  #ifdef FEAT_VERTSPLIT
+                   || wp->w_width != Columns
+  #endif
+                   )
+!              i = ARGCOUNT;
+           else
+           {
+               /* check if the buffer in this window is in the arglist */
+!              for (i = 0; i < ARGCOUNT; ++i)
+               {
+!                  if (ARGLIST[i].ae_fnum == buf->b_fnum
+!                          || fullpathcmp(alist_name(&ARGLIST[i]),
+!                                            buf->b_ffname, TRUE) & FPC_SAME)
+                   {
+!                      if (i < opened_len)
+                       {
+!                          opened[i] = TRUE;
+                           if (i == 0)
+                           {
+                               new_curwin = wp;
+                               new_curtab = curtab;
+                           }
+                       }
+!                      if (wp->w_alist != curwin->w_alist)
+                       {
+                           /* Use the current argument list for all windows
+                            * containing a file from it. */
+                           alist_unlink(wp->w_alist);
+!                          wp->w_alist = curwin->w_alist;
+                           ++wp->w_alist->al_refcount;
+                       }
+                       break;
+--- 4467,4517 ----
+           wpnext = wp->w_next;
+           buf = wp->w_buffer;
+           if (buf->b_ffname == NULL
+!                  || (!keep_tabs && buf->b_nwindows > 1)
+  #ifdef FEAT_VERTSPLIT
+                   || wp->w_width != Columns
+  #endif
+                   )
+!              i = opened_len;
+           else
+           {
+               /* check if the buffer in this window is in the arglist */
+!              for (i = 0; i < opened_len; ++i)
+               {
+!                  if (i < alist->al_ga.ga_len
+!                          && (AARGLIST(alist)[i].ae_fnum == buf->b_fnum
+!                              || fullpathcmp(alist_name(&AARGLIST(alist)[i]),
+!                                            buf->b_ffname, TRUE) & FPC_SAME))
+                   {
+!                      int weight = 1;
+! 
+!                      if (old_curtab == curtab)
+!                      {
+!                          ++weight;
+!                          if (old_curwin == wp)
+!                              ++weight;
+!                      }
+! 
+!                      if (weight > (int)opened[i])
+                       {
+!                          opened[i] = (char_u)weight;
+                           if (i == 0)
+                           {
++                              if (new_curwin != NULL)
++                                  new_curwin->w_arg_idx = opened_len;
+                               new_curwin = wp;
+                               new_curtab = curtab;
+                           }
+                       }
+!                      else if (keep_tabs)
+!                          i = opened_len;
+! 
+!                      if (wp->w_alist != alist)
+                       {
+                           /* Use the current argument list for all windows
+                            * containing a file from it. */
+                           alist_unlink(wp->w_alist);
+!                          wp->w_alist = alist;
+                           ++wp->w_alist->al_refcount;
+                       }
+                       break;
+***************
+*** 4489,4495 ****
+           }
+           wp->w_arg_idx = i;
+  
+!          if (i == ARGCOUNT && !keep_tabs)    /* close this window */
+           {
+               if (P_HID(buf) || forceit || buf->b_nwindows > 1
+                                                       || !bufIsChanged(buf))
+--- 4520,4526 ----
+           }
+           wp->w_arg_idx = i;
+  
+!          if (i == opened_len && !keep_tabs)/* close this window */
+           {
+               if (P_HID(buf) || forceit || buf->b_nwindows > 1
+                                                       || !bufIsChanged(buf))
+***************
+*** 4511,4517 ****
+                   }
+  #ifdef FEAT_WINDOWS
+                   /* don't close last window */
+!                  if (firstwin == lastwin && first_tabpage->tp_next == NULL)
+  #endif
+                       use_firstwin = TRUE;
+  #ifdef FEAT_WINDOWS
+--- 4542,4549 ----
+                   }
+  #ifdef FEAT_WINDOWS
+                   /* don't close last window */
+!                  if (firstwin == lastwin
+!                          && (first_tabpage->tp_next == NULL || !had_tab))
+  #endif
+                       use_firstwin = TRUE;
+  #ifdef FEAT_WINDOWS
+***************
+*** 4545,4564 ****
+       * Open a window for files in the argument list that don't have one.
+       * ARGCOUNT may change while doing this, because of autocommands.
+       */
+!     if (count > ARGCOUNT || count <= 0)
+!      count = ARGCOUNT;
+! 
+!     /* Autocommands may do anything to the argument list.  Make sure it's not
+!      * freed while we are working here by "locking" it.  We still have to
+!      * watch out for its size to be changed. */
+!     alist = curwin->w_alist;
+!     ++alist->al_refcount;
+  
+  #ifdef FEAT_AUTOCMD
+      /* Don't execute Win/Buf Enter/Leave autocommands here. */
+      ++autocmd_no_enter;
+      ++autocmd_no_leave;
+  #endif
+      win_enter(lastwin, FALSE);
+  #ifdef FEAT_WINDOWS
+      /* ":drop all" should re-use an empty window to avoid "--remote-tab"
+--- 4577,4592 ----
+       * Open a window for files in the argument list that don't have one.
+       * ARGCOUNT may change while doing this, because of autocommands.
+       */
+!     if (count > opened_len || count <= 0)
+!      count = opened_len;
+  
+  #ifdef FEAT_AUTOCMD
+      /* Don't execute Win/Buf Enter/Leave autocommands here. */
+      ++autocmd_no_enter;
+      ++autocmd_no_leave;
+  #endif
++     last_curwin = curwin;
++     last_curtab = curtab;
+      win_enter(lastwin, FALSE);
+  #ifdef FEAT_WINDOWS
+      /* ":drop all" should re-use an empty window to avoid "--remote-tab"
+***************
+*** 4568,4578 ****
+       use_firstwin = TRUE;
+  #endif
+  
+!     for (i = 0; i < count && i < alist->al_ga.ga_len && !got_int; ++i)
+      {
+       if (alist == &global_alist && i == global_alist.al_ga.ga_len - 1)
+           arg_had_last = TRUE;
+!      if (i < opened_len && opened[i])
+       {
+           /* Move the already present window to below the current window */
+           if (curwin->w_arg_idx != i)
+--- 4596,4606 ----
+       use_firstwin = TRUE;
+  #endif
+  
+!     for (i = 0; i < count && i < opened_len && !got_int; ++i)
+      {
+       if (alist == &global_alist && i == global_alist.al_ga.ga_len - 1)
+           arg_had_last = TRUE;
+!      if (opened[i] > 0)
+       {
+           /* Move the already present window to below the current window */
+           if (curwin->w_arg_idx != i)
+***************
+*** 4581,4587 ****
+               {
+                   if (wpnext->w_arg_idx == i)
+                   {
+!                      win_move_after(wpnext, curwin);
+                       break;
+                   }
+               }
+--- 4609,4621 ----
+               {
+                   if (wpnext->w_arg_idx == i)
+                   {
+!                      if (keep_tabs)
+!                      {
+!                          new_curwin = wpnext;
+!                          new_curtab = curtab;
+!                      }
+!                      else
+!                          win_move_after(wpnext, curwin);
+                       break;
+                   }
+               }
+***************
+*** 4636,4641 ****
+--- 4670,4683 ----
+  #ifdef FEAT_AUTOCMD
+      --autocmd_no_enter;
+  #endif
++     /* restore last referenced tabpage's curwin */
++     if (last_curtab != new_curtab)
++     {
++      if (valid_tabpage(last_curtab))
++          goto_tabpage_tp(last_curtab);
++      if (win_valid(last_curwin))
++          win_enter(last_curwin, FALSE);
++     }
+      /* to window with first arg */
+      if (valid_tabpage(new_curtab))
+       goto_tabpage_tp(new_curtab);
+*** ../vim-7.3.455/src/testdir/test62.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test62.in      2012-02-22 18:45:10.000000000 +0100
+***************
+*** 50,55 ****
+--- 50,92 ----
+  :call append(line('$'), test_status)
+  :"
+  :"
++ :" Test for ":tab drop exist-file" to keep current window.
++ :sp test1
++ :tab drop test1
++ :let test_status = 'tab drop 1: fail'
++ :if tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1
++ :    let test_status = 'tab drop 1: pass'
++ :endif
++ :close
++ :call append(line('$'), test_status)
++ :"
++ :"
++ :" Test for ":tab drop new-file" to keep current window of tabpage 1.
++ :split
++ :tab drop newfile
++ :let test_status = 'tab drop 2: fail'
++ :if tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1
++ :    let test_status = 'tab drop 2: pass'
++ :endif
++ :tabclose
++ :q
++ :call append(line('$'), test_status)
++ :"
++ :"
++ :" Test for ":tab drop multi-opend-file" to keep current tabpage and window.
++ :new test1
++ :tabnew
++ :new test1
++ :tab drop test1
++ :let test_status = 'tab drop 3: fail'
++ :if tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1
++ :    let test_status = 'tab drop 3: pass'
++ :endif
++ :tabclose
++ :q
++ :call append(line('$'), test_status)
++ :"
++ :"
+  :/^Results/,$w! test.out
+  :qa!
+  ENDTEST
+*** ../vim-7.3.455/src/testdir/test62.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test62.ok      2012-02-22 18:45:10.000000000 +0100
+***************
+*** 5,7 ****
+--- 5,10 ----
+  this is tab page 4
+  gettabvar: pass
+  settabvar: pass
++ tab drop 1: pass
++ tab drop 2: pass
++ tab drop 3: pass
+*** ../vim-7.3.455/src/version.c       2012-02-22 18:29:29.000000000 +0100
+--- src/version.c      2012-02-22 19:11:52.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     456,
+  /**/
+
+-- 
+% cat /usr/include/life.h
+void life(void);
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.457.patch0 b/vim/patches/vim-7.3.457.patch0
new file mode 100644 (file)
index 0000000..e60d624
--- /dev/null
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.457
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.457
+Problem:    When setting $VIMRUNTIME later the directory for fetching
+            translated messages is not adjusted.
+Solution:   Put bindtextdomain() in vim_setenv().
+Files:      src/misc1.c
+
+
+*** ../vim-7.3.456/src/misc1.c 2012-02-05 22:05:44.000000000 +0100
+--- src/misc1.c        2012-02-26 13:27:28.000000000 +0100
+***************
+*** 4133,4149 ****
+       {
+           vim_setenv((char_u *)"VIMRUNTIME", p);
+           didset_vimruntime = TRUE;
+- #ifdef FEAT_GETTEXT
+-          {
+-              char_u  *buf = concat_str(p, (char_u *)"/lang");
+- 
+-              if (buf != NULL)
+-              {
+-                  bindtextdomain(VIMPACKAGE, (char *)buf);
+-                  vim_free(buf);
+-              }
+-          }
+- #endif
+       }
+       else
+       {
+--- 4133,4138 ----
+***************
+*** 4221,4226 ****
+--- 4210,4231 ----
+       putenv((char *)envbuf);
+      }
+  #endif
++ #ifdef FEAT_GETTEXT
++     /*
++      * When setting $VIMRUNTIME adjust the directory to find message
++      * translations to $VIMRUNTIME/lang.
++      */
++     if (*val != NUL && STRICMP(name, "VIMRUNTIME") == 0)
++     {
++      char_u  *buf = concat_str(val, (char_u *)"/lang");
++ 
++      if (buf != NULL)
++      {
++          bindtextdomain(VIMPACKAGE, (char *)buf);
++          vim_free(buf);
++      }
++     }
++ #endif
+  }
+  
+  #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+*** ../vim-7.3.456/src/version.c       2012-02-22 19:13:00.000000000 +0100
+--- src/version.c      2012-02-29 13:47:09.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     457,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+118. You are on a first-name basis with your ISP's staff.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.458.patch0 b/vim/patches/vim-7.3.458.patch0
new file mode 100644 (file)
index 0000000..9bd4407
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.458
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.458
+Problem:    Crash when calling smsg() during startup.
+Solution:   Don't use 'shortmess' when it is not set yet.
+Files:     src/option.c
+
+
+*** ../vim-7.3.457/src/option.c        2012-02-20 22:18:22.000000000 +0100
+--- src/option.c       2012-02-26 13:14:48.000000000 +0100
+***************
+*** 10984,10990 ****
+  shortmess(x)
+      int          x;
+  {
+!     return (   vim_strchr(p_shm, x) != NULL
+           || (vim_strchr(p_shm, 'a') != NULL
+               && vim_strchr((char_u *)SHM_A, x) != NULL));
+  }
+--- 10984,10991 ----
+  shortmess(x)
+      int          x;
+  {
+!     return p_shm != NULL &&
+!          (   vim_strchr(p_shm, x) != NULL
+           || (vim_strchr(p_shm, 'a') != NULL
+               && vim_strchr((char_u *)SHM_A, x) != NULL));
+  }
+*** ../vim-7.3.457/src/version.c       2012-02-29 13:49:03.000000000 +0100
+--- src/version.c      2012-02-29 13:50:52.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     458,
+  /**/
+
+-- 
+Support your right to bare arms!  Wear short sleeves!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.459.patch0 b/vim/patches/vim-7.3.459.patch0
new file mode 100644 (file)
index 0000000..d75a38b
--- /dev/null
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.459
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.459
+Problem:    Win32: Warnings for type conversion.
+Solution:   Add type casts. (Mike Williams)
+Files:     src/misc2.c, src/os_win32.c
+
+
+*** ../vim-7.3.458/src/misc2.c 2012-02-22 18:12:29.000000000 +0100
+--- src/misc2.c        2012-02-29 13:44:17.000000000 +0100
+***************
+*** 2074,2080 ****
+           n = gap->ga_growsize;
+       new_len = gap->ga_itemsize * (gap->ga_len + n);
+       pp = (gap->ga_data == NULL)
+!                      ? alloc(new_len) : vim_realloc(gap->ga_data, new_len);
+       if (pp == NULL)
+           return FAIL;
+       old_len = gap->ga_itemsize * gap->ga_maxlen;
+--- 2074,2080 ----
+           n = gap->ga_growsize;
+       new_len = gap->ga_itemsize * (gap->ga_len + n);
+       pp = (gap->ga_data == NULL)
+!            ? alloc((unsigned)new_len) : vim_realloc(gap->ga_data, new_len);
+       if (pp == NULL)
+           return FAIL;
+       old_len = gap->ga_itemsize * gap->ga_maxlen;
+*** ../vim-7.3.458/src/os_win32.c      2012-02-22 15:34:05.000000000 +0100
+--- src/os_win32.c     2012-02-29 13:43:39.000000000 +0100
+***************
+*** 264,270 ****
+      static void
+  unescape_shellxquote(char_u *p, char_u *escaped)
+  {
+!     int          l = STRLEN(p);
+      int          n;
+  
+      while (*p != NUL)
+--- 264,270 ----
+      static void
+  unescape_shellxquote(char_u *p, char_u *escaped)
+  {
+!     int          l = (int)STRLEN(p);
+      int          n;
+  
+      while (*p != NUL)
+*** ../vim-7.3.458/src/version.c       2012-02-29 13:51:32.000000000 +0100
+--- src/version.c      2012-02-29 13:58:08.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     459,
+  /**/
+
+-- 
+"A clear conscience is usually the sign of a bad memory."
+                             -- Steven Wright
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.460.patch0 b/vim/patches/vim-7.3.460.patch0
new file mode 100644 (file)
index 0000000..c1d7e85
--- /dev/null
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.460
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.460
+Problem:    Win32: UPX does not compress 64 bit binaries.
+Solution:   Mention and add the alternative: mpress. (Dave Bodenstab)
+Files:     src/INSTALLpc.txt, src/Make_ming.mak
+
+
+*** ../vim-7.3.459/src/INSTALLpc.txt   2011-07-15 13:51:57.000000000 +0200
+--- src/INSTALLpc.txt  2012-02-29 14:01:34.000000000 +0100
+***************
+*** 239,244 ****
+--- 239,250 ----
+  found at
+      http://www.upx.org/
+  
++ As of 2011, UPX still does not support compressing 64-bit EXE's; if you have
++ built a 64-bit vim then an alternative to UPX is 'MPRESS'. MPRESS can be found
++ at:
++     http://www.matcode.com/mpress.htm
++ 
++ 
+  ADDITION: NLS support with MinGW
+  
+  (by Eduardo F. Amatria <eferna1@platea.pntic.mec.es>)
+*** ../vim-7.3.459/src/Make_ming.mak   2011-10-12 14:11:43.000000000 +0200
+--- src/Make_ming.mak  2012-02-29 16:54:09.000000000 +0100
+***************
+*** 14,22 ****
+  # it's just run out of memory or something.  Run again, and it will continue
+  # with 'xxd'.
+  #
+! # "make upx" makes *compressed* versions of the GUI and console EXEs, using the
+! # excellent UPX compressor:
+  #     http://upx.sourceforge.net/
+  #
+  # Maintained by Ron Aaron <ronaharon@yahoo.com>
+  # updated 2003 Jan 20
+--- 14,24 ----
+  # it's just run out of memory or something.  Run again, and it will continue
+  # with 'xxd'.
+  #
+! # "make upx" makes *compressed* versions of the 32 bit GUI and console EXEs,
+! # using the excellent UPX compressor:
+  #     http://upx.sourceforge.net/
++ # "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs:
++ #     http://www.matcode.com/mpress.htm
+  #
+  # Maintained by Ron Aaron <ronaharon@yahoo.com>
+  # updated 2003 Jan 20
+***************
+*** 640,645 ****
+--- 642,651 ----
+       upx gvim.exe
+       upx vim.exe
+  
++ mpress: exes
++      mpress gvim.exe
++      mpress vim.exe
++ 
+  xxd/xxd.exe: xxd/xxd.c
+       $(MAKE) -C xxd -f Make_ming.mak CC=$(CC)
+  
+*** ../vim-7.3.459/src/version.c       2012-02-29 13:58:43.000000000 +0100
+--- src/version.c      2012-02-29 16:54:40.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     460,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+119. You are reading a book and look for the scroll bar to get to
+     the next page.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.461.patch0 b/vim/patches/vim-7.3.461.patch0
new file mode 100644 (file)
index 0000000..53c83c0
--- /dev/null
@@ -0,0 +1,243 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.461
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.461
+Problem:    The InsertCharPre autocommand event is not triggered during
+           completion and when typing several characters quickly.
+Solution:   Also trigger InsertCharPre during completion.  Do not read ahead
+           when an InsertCharPre autocommand is defined. (Yasuhiro Matsumoto)
+Files:     src/edit.c, src/fileio.c, src/proto/fileio.pro
+
+
+*** ../vim-7.3.460/src/edit.c  2012-02-04 23:34:57.000000000 +0100
+--- src/edit.c 2012-02-29 18:17:31.000000000 +0100
+***************
+*** 259,264 ****
+--- 259,267 ----
+  static void ins_try_si __ARGS((int c));
+  #endif
+  static colnr_T get_nolist_virtcol __ARGS((void));
++ #ifdef FEAT_AUTOCMD
++ static char_u *do_insert_char_pre __ARGS((int c));
++ #endif
+  
+  static colnr_T       Insstart_textlen;       /* length of line when insert started */
+  static colnr_T       Insstart_blank_vcol;    /* vcol for first inserted blank */
+***************
+*** 784,790 ****
+                * completion: Add to "compl_leader". */
+               if (ins_compl_accept_char(c))
+               {
+!                  ins_compl_addleader(c);
+                   continue;
+               }
+  
+--- 787,806 ----
+                * completion: Add to "compl_leader". */
+               if (ins_compl_accept_char(c))
+               {
+! #ifdef FEAT_AUTOCMD
+!                  /* Trigger InsertCharPre. */
+!                  char_u *str = do_insert_char_pre(c);
+!                  char_u *p;
+! 
+!                  if (str != NULL)
+!                  {
+!                      for (p = str; *p != NUL; mb_ptr_adv(p))
+!                          ins_compl_addleader(PTR2CHAR(p));
+!                      vim_free(str);
+!                  }
+!                  else
+! #endif
+!                      ins_compl_addleader(c);
+                   continue;
+               }
+  
+***************
+*** 1393,1426 ****
+  #ifdef FEAT_AUTOCMD
+           if (!p_paste)
+           {
+!              /* Trigger the InsertCharPre event.  Lock the text to avoid
+!               * weird things from happening. */
+!              set_vim_var_char(c);
+!              ++textlock;
+!              if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL,
+!                                                             FALSE, curbuf))
+!              {
+!                  /* Get the new value of v:char.  If it is more than one
+!                   * character insert it literally. */
+!                  char_u *s = get_vim_var_str(VV_CHAR);
+!                  if (MB_CHARLEN(s) > 1)
+                   {
+!                      if (stop_arrow() != FAIL)
+                       {
+!                          ins_str(s);
+!                          AppendToRedobuffLit(s, -1);
+                       }
+!                      c = NUL;
+                   }
+!                  else
+!                      c = PTR2CHAR(s);
+               }
+  
+!              set_vim_var_string(VV_CHAR, NULL, -1);
+!              --textlock;
+! 
+!              /* If the new value is an empty string then don't insert a
+!               * char. */
+               if (c == NUL)
+                   break;
+           }
+--- 1409,1439 ----
+  #ifdef FEAT_AUTOCMD
+           if (!p_paste)
+           {
+!              /* Trigger InsertCharPre. */
+!              char_u *str = do_insert_char_pre(c);
+!              char_u *p;
+! 
+!              if (str != NULL)
+!              {
+!                  if (*str != NUL && stop_arrow() != FAIL)
+                   {
+!                      /* Insert the new value of v:char literally. */
+!                      for (p = str; *p != NUL; mb_ptr_adv(p))
+                       {
+!                          c = PTR2CHAR(p);
+!                          if (c == CAR || c == K_KENTER || c == NL)
+!                              ins_eol(c);
+!                          else
+!                              ins_char(c);
+                       }
+!                      AppendToRedobuffLit(str, -1);
+                   }
+!                  vim_free(str);
+!                  c = NUL;
+               }
+  
+!              /* If the new value is already inserted or an empty string
+!               * then don't insert any character. */
+               if (c == NUL)
+                   break;
+           }
+***************
+*** 5883,5888 ****
+--- 5896,5903 ----
+       * Don't do this when 'cindent' or 'indentexpr' is set, because we might
+       * need to re-indent at a ':', or any other character (but not what
+       * 'paste' is set)..
++      * Don't do this when there an InsertCharPre autocommand is defined,
++      * because we need to fire the event for every character.
+       */
+  #ifdef USE_ON_FLY_SCROLL
+      dont_scroll = FALSE;             /* allow scrolling here */
+***************
+*** 5900,5905 ****
+--- 5915,5923 ----
+  #ifdef FEAT_RIGHTLEFT
+           && !p_ri
+  #endif
++ #ifdef FEAT_AUTOCMD
++          && !has_insertcharpre()
++ #endif
+              )
+      {
+  #define INPUT_BUFLEN 100
+***************
+*** 10068,10070 ****
+--- 10086,10123 ----
+      validate_virtcol();
+      return curwin->w_virtcol;
+  }
++ 
++ #ifdef FEAT_AUTOCMD
++ /*
++  * Handle the InsertCharPre autocommand.
++  * "c" is the character that was typed.
++  * Return a pointer to allocated memory with the replacement string.
++  * Return NULL to continue inserting "c".
++  */
++     static char_u *
++ do_insert_char_pre(c)
++     int c;
++ {
++     char_u *res;
++ 
++     /* Return quickly when there is nothing to do. */
++     if (!has_insertcharpre())
++      return NULL;
++ 
++     /* Lock the text to avoid weird things from happening. */
++     ++textlock;
++     set_vim_var_char(c);  /* set v:char */
++ 
++     if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf))
++      /* Get the new value of v:char.  It may be empty or more than one
++       * character. */
++      res = vim_strsave(get_vim_var_str(VV_CHAR));
++     else
++      res = NULL;
++ 
++     set_vim_var_string(VV_CHAR, NULL, -1);  /* clear v:char */
++     --textlock;
++ 
++     return res;
++ }
++ #endif
+*** ../vim-7.3.460/src/fileio.c        2012-02-12 20:13:55.000000000 +0100
+--- src/fileio.c       2012-02-29 17:50:32.000000000 +0100
+***************
+*** 9116,9121 ****
+--- 9116,9130 ----
+      return (first_autopat[(int)EVENT_CURSORMOVEDI] != NULL);
+  }
+  
++ /*
++  * Return TRUE when there is an InsertCharPre autocommand defined.
++  */
++     int
++ has_insertcharpre()
++ {
++     return (first_autopat[(int)EVENT_INSERTCHARPRE] != NULL);
++ }
++ 
+      static int
+  apply_autocmds_group(event, fname, fname_io, force, group, buf, eap)
+      event_T  event;
+*** ../vim-7.3.460/src/proto/fileio.pro        2012-02-12 20:13:55.000000000 +0100
+--- src/proto/fileio.pro       2012-02-29 17:50:38.000000000 +0100
+***************
+*** 44,49 ****
+--- 44,50 ----
+  int trigger_cursorhold __ARGS((void));
+  int has_cursormoved __ARGS((void));
+  int has_cursormovedI __ARGS((void));
++ int has_insertcharpre __ARGS((void));
+  void block_autocmds __ARGS((void));
+  void unblock_autocmds __ARGS((void));
+  int has_autocmd __ARGS((event_T event, char_u *sfname, buf_T *buf));
+*** ../vim-7.3.460/src/version.c       2012-02-29 16:56:35.000000000 +0100
+--- src/version.c      2012-02-29 18:15:34.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     461,
+  /**/
+
+-- 
+"Computers in the future may weigh no more than 1.5 tons."
+                                   Popular Mechanics, 1949
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.462.patch0 b/vim/patches/vim-7.3.462.patch0
new file mode 100644 (file)
index 0000000..df03724
--- /dev/null
@@ -0,0 +1,191 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.462
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.462
+Problem:    When using ":loadview" folds may be closed unexpectedly.
+Solution:   Take into account foldlevel. (Xavier de Gaye)
+Files:     src/fold.c
+
+
+*** ../vim-7.3.461/src/fold.c  2012-01-10 22:26:12.000000000 +0100
+--- src/fold.c 2012-02-29 19:18:07.000000000 +0100
+***************
+*** 3292,3298 ****
+  /* put_folds() {{{2 */
+  #if defined(FEAT_SESSION) || defined(PROTO)
+  static int put_folds_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off));
+! static int put_foldopen_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off));
+  
+  /*
+   * Write commands to "fd" to restore the manual folds in window "wp".
+--- 3292,3299 ----
+  /* put_folds() {{{2 */
+  #if defined(FEAT_SESSION) || defined(PROTO)
+  static int put_folds_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off));
+! static int put_foldopen_recurse __ARGS((FILE *fd, win_T *wp, garray_T *gap, linenr_T off));
+! static int put_fold_open_close __ARGS((FILE *fd, fold_T *fp, linenr_T off));
+  
+  /*
+   * Write commands to "fd" to restore the manual folds in window "wp".
+***************
+*** 3312,3318 ****
+  
+      /* If some folds are manually opened/closed, need to restore that. */
+      if (wp->w_fold_manual)
+!      return put_foldopen_recurse(fd, &wp->w_folds, (linenr_T)0);
+  
+      return OK;
+  }
+--- 3313,3319 ----
+  
+      /* If some folds are manually opened/closed, need to restore that. */
+      if (wp->w_fold_manual)
+!      return put_foldopen_recurse(fd, wp, &wp->w_folds, (linenr_T)0);
+  
+      return OK;
+  }
+***************
+*** 3352,3363 ****
+   * Returns FAIL when writing failed.
+   */
+      static int
+! put_foldopen_recurse(fd, gap, off)
+      FILE     *fd;
+      garray_T *gap;
+      linenr_T off;
+  {
+      int              i;
+      fold_T   *fp;
+  
+      fp = (fold_T *)gap->ga_data;
+--- 3353,3366 ----
+   * Returns FAIL when writing failed.
+   */
+      static int
+! put_foldopen_recurse(fd, wp, gap, off)
+      FILE     *fd;
++     win_T    *wp;
+      garray_T *gap;
+      linenr_T off;
+  {
+      int              i;
++     int              level;
+      fold_T   *fp;
+  
+      fp = (fold_T *)gap->ga_data;
+***************
+*** 3367,3393 ****
+       {
+           if (fp->fd_nested.ga_len > 0)
+           {
+!              /* open/close nested folds while this fold is open */
+               if (fprintf(fd, "%ld", fp->fd_top + off) < 0
+                       || put_eol(fd) == FAIL
+                       || put_line(fd, "normal zo") == FAIL)
+                   return FAIL;
+!              if (put_foldopen_recurse(fd, &fp->fd_nested, off + fp->fd_top)
+                       == FAIL)
+                   return FAIL;
+           }
+-          if (fprintf(fd, "%ld", fp->fd_top + off) < 0
+-                  || put_eol(fd) == FAIL
+-                  || fprintf(fd, "normal z%c",
+-                                  fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0
+-                  || put_eol(fd) == FAIL)
+-              return FAIL;
+       }
+       ++fp;
+      }
+  
+      return OK;
+  }
+  #endif /* FEAT_SESSION */
+  
+  /* }}}1 */
+--- 3370,3429 ----
+       {
+           if (fp->fd_nested.ga_len > 0)
+           {
+!              /* open nested folds while this fold is open */
+               if (fprintf(fd, "%ld", fp->fd_top + off) < 0
+                       || put_eol(fd) == FAIL
+                       || put_line(fd, "normal zo") == FAIL)
+                   return FAIL;
+!              if (put_foldopen_recurse(fd, wp, &fp->fd_nested,
+!                                                           off + fp->fd_top)
+                       == FAIL)
+                   return FAIL;
++              /* close the parent when needed */
++              if (fp->fd_flags == FD_CLOSED)
++              {
++                  if (put_fold_open_close(fd, fp, off) == FAIL)
++                      return FAIL;
++              }
++          }
++          else
++          {
++              /* Open or close the leaf according to the window foldlevel.
++               * Do not close a leaf that is already closed, as it will close
++               * the parent. */
++              level = foldLevelWin(wp, off + fp->fd_top);
++              if ((fp->fd_flags == FD_CLOSED && wp->w_p_fdl >= level)
++                      || (fp->fd_flags != FD_CLOSED && wp->w_p_fdl < level))
++              if (put_fold_open_close(fd, fp, off) == FAIL)
++                  return FAIL;
+           }
+       }
+       ++fp;
+      }
+  
+      return OK;
+  }
++ 
++ /* put_fold_open_close() {{{2 */
++ /*
++  * Write the open or close command to "fd".
++  * Returns FAIL when writing failed.
++  */
++     static int
++ put_fold_open_close(fd, fp, off)
++     FILE     *fd;
++     fold_T   *fp;
++     linenr_T off;
++ {
++     if (fprintf(fd, "%ld", fp->fd_top + off) < 0
++          || put_eol(fd) == FAIL
++          || fprintf(fd, "normal z%c",
++                         fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0
++          || put_eol(fd) == FAIL)
++      return FAIL;
++ 
++     return OK;
++ }
+  #endif /* FEAT_SESSION */
+  
+  /* }}}1 */
+*** ../vim-7.3.461/src/version.c       2012-02-29 18:22:03.000000000 +0100
+--- src/version.c      2012-02-29 18:40:43.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     462,
+  /**/
+
+-- 
+~
+~
+~
+".signature" 4 lines, 50 characters written
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.463.patch0 b/vim/patches/vim-7.3.463.patch0
new file mode 100644 (file)
index 0000000..1e7cb23
--- /dev/null
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.463
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.463
+Problem:    When using ":s///c" the cursor is moved away from the match.
+           (Lawman)
+Solution:   Don't move the cursor when do_ask is set. (Christian Brabandt)
+Files:     src/ex_cmds.c
+
+
+*** ../vim-7.3.462/src/ex_cmds.c       2012-02-22 14:58:24.000000000 +0100
+--- src/ex_cmds.c      2012-03-07 14:54:21.000000000 +0100
+***************
+*** 5151,5160 ****
+  
+       if (!global_busy)
+       {
+!          if (endcolumn)
+!              coladvance((colnr_T)MAXCOL);
+!          else
+!              beginline(BL_WHITE | BL_FIX);
+           if (!do_sub_msg(do_count) && do_ask)
+               MSG("");
+       }
+--- 5151,5163 ----
+  
+       if (!global_busy)
+       {
+!          if (!do_ask)  /* when interactive leave cursor on the match */
+!          {
+!              if (endcolumn)
+!                  coladvance((colnr_T)MAXCOL);
+!              else
+!                  beginline(BL_WHITE | BL_FIX);
+!          }
+           if (!do_sub_msg(do_count) && do_ask)
+               MSG("");
+       }
+*** ../vim-7.3.462/src/version.c       2012-02-29 19:19:57.000000000 +0100
+--- src/version.c      2012-03-07 14:55:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     463,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+151. You find yourself engaged to someone you've never actually met,
+     except through e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.464.patch0 b/vim/patches/vim-7.3.464.patch0
new file mode 100644 (file)
index 0000000..fdfdfff
--- /dev/null
@@ -0,0 +1,60 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.464
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.464
+Problem:    Compiler warning for sprintf.
+Solution:   Put the length in a variable. (Dominique Pelle)
+Files:     src/version.c
+
+
+*** ../vim-7.3.463/src/version.c       2012-03-07 14:57:50.000000000 +0100
+--- src/version.c      2012-03-07 17:58:41.000000000 +0100
+***************
+*** 2187,2198 ****
+           /* Check for 9.9x or 9.9xx, alpha/beta version */
+           if (isalpha((int)vers[3]))
+           {
+!              if (isalpha((int)vers[4]))
+!                  sprintf((char *)vers + 5, ".%d%s", highest_patch(),
+!                                                         mediumVersion + 5);
+!              else
+!                  sprintf((char *)vers + 4, ".%d%s", highest_patch(),
+!                                                         mediumVersion + 4);
+           }
+           else
+               sprintf((char *)vers + 3, ".%d", highest_patch());
+--- 2189,2197 ----
+           /* Check for 9.9x or 9.9xx, alpha/beta version */
+           if (isalpha((int)vers[3]))
+           {
+!              int len = (isalpha((int)vers[4])) ? 5 : 4;
+!              sprintf((char *)vers + len, ".%d%s", highest_patch(),
+!                                                       mediumVersion + len);
+           }
+           else
+               sprintf((char *)vers + 3, ".%d", highest_patch());
+*** ../vim-7.3.463/src/version.c       2012-03-07 14:57:50.000000000 +0100
+--- src/version.c      2012-03-07 17:58:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     464,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+152. You find yourself falling for someone you've never seen or hardly
+     know, but, boy can he/she TYPE!!!!!!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.465.patch0 b/vim/patches/vim-7.3.465.patch0
new file mode 100644 (file)
index 0000000..c4a857a
--- /dev/null
@@ -0,0 +1,398 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.465
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.465
+Problem:    Cannot get file name with newline from glob().
+Solution:   Add argument to glob() and expand() to indicate they must return a
+           list. (Christian Brabandt)
+Files:     runtime/doc/eval.txt, src/eval.c, src/ex_getln.c, src/vim.h
+
+
+*** ../vim-7.3.464/runtime/doc/eval.txt        2011-12-14 15:32:44.000000000 +0100
+--- runtime/doc/eval.txt       2012-03-07 18:49:26.000000000 +0100
+***************
+*** 1738,1744 ****
+  extend( {expr1}, {expr2} [, {expr3}])
+                               List/Dict insert items of {expr2} into {expr1}
+  exp( {expr})                 Float   exponential of {expr}
+! expand( {expr} [, {flag}])   String  expand special keywords in {expr}
+  feedkeys( {string} [, {mode}])       Number  add key sequence to typeahead buffer
+  filereadable( {file})                Number  TRUE if {file} is a readable file
+  filewritable( {file})                Number  TRUE if {file} is a writable file
+--- 1746,1753 ----
+  extend( {expr1}, {expr2} [, {expr3}])
+                               List/Dict insert items of {expr2} into {expr1}
+  exp( {expr})                 Float   exponential of {expr}
+! expand( {expr} [, {nosuf} [, {list}]])
+!                              any     expand special keywords in {expr}
+  feedkeys( {string} [, {mode}])       Number  add key sequence to typeahead buffer
+  filereadable( {file})                Number  TRUE if {file} is a readable file
+  filewritable( {file})                Number  TRUE if {file} is a writable file
+***************
+*** 1792,1798 ****
+  getwinposx()                 Number  X coord in pixels of GUI Vim window
+  getwinposy()                 Number  Y coord in pixels of GUI Vim window
+  getwinvar( {nr}, {varname})  any     variable {varname} in window {nr}
+! glob( {expr} [, {flag}])     String  expand file wildcards in {expr}
+  globpath( {path}, {expr} [, {flag}])
+                               String  do glob({expr}) for all dirs in {path}
+  has( {feature})                      Number  TRUE if feature {feature} supported
+--- 1801,1808 ----
+  getwinposx()                 Number  X coord in pixels of GUI Vim window
+  getwinposy()                 Number  Y coord in pixels of GUI Vim window
+  getwinvar( {nr}, {varname})  any     variable {varname} in window {nr}
+! glob( {expr} [, {nosuf} [, {list}]])
+!                              any     expand file wildcards in {expr}
+  globpath( {path}, {expr} [, {flag}])
+                               String  do glob({expr}) for all dirs in {path}
+  has( {feature})                      Number  TRUE if feature {feature} supported
+***************
+*** 2731,2743 ****
+               {only available when compiled with the |+float| feature}
+  
+  
+! expand({expr} [, {flag}])                            *expand()*
+               Expand wildcards and the following special keywords in {expr}.
+!              The result is a String.
+  
+!              When there are several matches, they are separated by <NL>
+!              characters.  [Note: in version 5.0 a space was used, which
+!              caused problems when a file name contains a space]
+  
+               If the expansion fails, the result is an empty string.  A name
+               for a non-existing file is not included.
+--- 2744,2758 ----
+               {only available when compiled with the |+float| feature}
+  
+  
+! expand({expr} [, {nosuf} [, {list}]])                                *expand()*
+               Expand wildcards and the following special keywords in {expr}.
+!              'wildignorecase' applies.
+  
+!              If {list} is given and it is non-zero, a List will be returned.
+!              Otherwise the result is a String and when there are several
+!              matches, they are separated by <NL> characters.  [Note: in
+!              version 5.0 a space was used, which caused problems when a
+!              file name contains a space]
+  
+               If the expansion fails, the result is an empty string.  A name
+               for a non-existing file is not included.
+***************
+*** 2754,2759 ****
+--- 2769,2775 ----
+                       <abuf>          autocmd buffer number (as a String!)
+                       <amatch>        autocmd matched name
+                       <sfile>         sourced script file name
++                      <slnum>         sourced script file line number
+                       <cword>         word under the cursor
+                       <cWORD>         WORD under the cursor
+                       <client>        the {clientid} of the last received
+***************
+*** 2790,2799 ****
+               When {expr} does not start with '%', '#' or '<', it is
+               expanded like a file name is expanded on the command line.
+               'suffixes' and 'wildignore' are used, unless the optional
+!              {flag} argument is given and it is non-zero.  Names for
+!              non-existing files are included.  The "**" item can be used to
+!              search in a directory tree.  For example, to find all "README"
+!              files in the current directory and below: >
+                       :echo expand("**/README")
+  <
+               Expand() can also be used to expand variables and environment
+--- 2806,2815 ----
+               When {expr} does not start with '%', '#' or '<', it is
+               expanded like a file name is expanded on the command line.
+               'suffixes' and 'wildignore' are used, unless the optional
+!              {nosuf} argument is given and it is non-zero.
+!              Names for non-existing files are included.  The "**" item can
+!              be used to search in a directory tree.  For example, to find
+!              all "README" files in the current directory and below: >
+                       :echo expand("**/README")
+  <
+               Expand() can also be used to expand variables and environment
+***************
+*** 3437,3453 ****
+                       :let list_is_on = getwinvar(2, '&list')
+                       :echo "myvar = " . getwinvar(1, 'myvar')
+  <
+! glob({expr} [, {flag}])                                      *glob()*
+               Expand the file wildcards in {expr}.  See |wildcards| for the
+               use of special characters.
+!              The result is a String.
+!              When there are several matches, they are separated by <NL>
+!              characters.
+!              Unless the optional {flag} argument is given and is non-zero,
+               the 'suffixes' and 'wildignore' options apply: Names matching
+               one of the patterns in 'wildignore' will be skipped and
+               'suffixes' affect the ordering of matches.
+!              If the expansion fails, the result is an empty string.
+               A name for a non-existing file is not included.
+  
+               For most systems backticks can be used to get files names from
+--- 3456,3478 ----
+                       :let list_is_on = getwinvar(2, '&list')
+                       :echo "myvar = " . getwinvar(1, 'myvar')
+  <
+! glob({expr} [, {nosuf} [, {list}]])                          *glob()*
+               Expand the file wildcards in {expr}.  See |wildcards| for the
+               use of special characters.
+! 
+!              Unless the optional {nosuf} argument is given and is non-zero,
+               the 'suffixes' and 'wildignore' options apply: Names matching
+               one of the patterns in 'wildignore' will be skipped and
+               'suffixes' affect the ordering of matches.
+!              'wildignorecase' always applies.
+! 
+!              When {list} is present and it is non-zero the result is a List
+!              with all matching files. The advantage of using a List is,
+!              you also get filenames containing newlines correctly.
+!              Otherwise the result is a String and when there are several
+!              matches, they are separated by <NL> characters.
+! 
+!              If the expansion fails, the result is an empty String or List.
+               A name for a non-existing file is not included.
+  
+               For most systems backticks can be used to get files names from
+*** ../vim-7.3.464/src/eval.c  2012-02-11 20:44:01.000000000 +0100
+--- src/eval.c 2012-03-07 19:08:36.000000000 +0100
+***************
+*** 7852,7858 ****
+  #ifdef FEAT_FLOAT
+      {"exp",          1, 1, f_exp},
+  #endif
+!     {"expand",               1, 2, f_expand},
+      {"extend",               2, 3, f_extend},
+      {"feedkeys",     1, 2, f_feedkeys},
+      {"file_readable",        1, 1, f_filereadable},  /* obsolete */
+--- 7852,7858 ----
+  #ifdef FEAT_FLOAT
+      {"exp",          1, 1, f_exp},
+  #endif
+!     {"expand",               1, 3, f_expand},
+      {"extend",               2, 3, f_extend},
+      {"feedkeys",     1, 2, f_feedkeys},
+      {"file_readable",        1, 1, f_filereadable},  /* obsolete */
+***************
+*** 7903,7909 ****
+      {"getwinposx",   0, 0, f_getwinposx},
+      {"getwinposy",   0, 0, f_getwinposy},
+      {"getwinvar",    2, 2, f_getwinvar},
+!     {"glob",         1, 2, f_glob},
+      {"globpath",     2, 3, f_globpath},
+      {"has",          1, 1, f_has},
+      {"has_key",              2, 2, f_has_key},
+--- 7903,7909 ----
+      {"getwinposx",   0, 0, f_getwinposx},
+      {"getwinposy",   0, 0, f_getwinposy},
+      {"getwinvar",    2, 2, f_getwinvar},
+!     {"glob",         1, 3, f_glob},
+      {"globpath",     2, 3, f_globpath},
+      {"has",          1, 1, f_has},
+      {"has_key",              2, 2, f_has_key},
+***************
+*** 10019,10032 ****
+      int              options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
+      expand_T xpc;
+      int              error = FALSE;
+  
+      rettv->v_type = VAR_STRING;
+      s = get_tv_string(&argvars[0]);
+      if (*s == '%' || *s == '#' || *s == '<')
+      {
+       ++emsg_off;
+!      rettv->vval.v_string = eval_vars(s, s, &len, NULL, &errormsg, NULL);
+       --emsg_off;
+      }
+      else
+      {
+--- 10019,10051 ----
+      int              options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
+      expand_T xpc;
+      int              error = FALSE;
++     char_u   *result;
+  
+      rettv->v_type = VAR_STRING;
++     if (argvars[1].v_type != VAR_UNKNOWN
++          && argvars[2].v_type != VAR_UNKNOWN
++          && get_tv_number_chk(&argvars[2], &error)
++          && !error)
++     {
++      rettv->v_type = VAR_LIST;
++      rettv->vval.v_list = NULL;
++     }
++ 
+      s = get_tv_string(&argvars[0]);
+      if (*s == '%' || *s == '#' || *s == '<')
+      {
+       ++emsg_off;
+!      result = eval_vars(s, s, &len, NULL, &errormsg, NULL);
+       --emsg_off;
++      if (rettv->v_type == VAR_LIST)
++      {
++          if (rettv_list_alloc(rettv) != FAIL && result != NULL)
++              list_append_string(rettv->vval.v_list, result, -1);
++          else
++              vim_free(result);
++      }
++      else
++          rettv->vval.v_string = result;
+      }
+      else
+      {
+***************
+*** 10041,10047 ****
+           xpc.xp_context = EXPAND_FILES;
+           if (p_wic)
+               options += WILD_ICASE;
+!          rettv->vval.v_string = ExpandOne(&xpc, s, NULL, options, WILD_ALL);
+       }
+       else
+           rettv->vval.v_string = NULL;
+--- 10060,10077 ----
+           xpc.xp_context = EXPAND_FILES;
+           if (p_wic)
+               options += WILD_ICASE;
+!          if (rettv->v_type == VAR_STRING)
+!              rettv->vval.v_string = ExpandOne(&xpc, s, NULL,
+!                                                         options, WILD_ALL);
+!          else if (rettv_list_alloc(rettv) != FAIL)
+!          {
+!              int i;
+! 
+!              ExpandOne(&xpc, s, NULL, options, WILD_ALL_KEEP);
+!              for (i = 0; i < xpc.xp_numfiles; i++)
+!                  list_append_string(rettv->vval.v_list, xpc.xp_files[i], -1);
+!              ExpandCleanup(&xpc);
+!          }
+       }
+       else
+           rettv->vval.v_string = NULL;
+***************
+*** 11833,11851 ****
+      int              error = FALSE;
+  
+      /* When the optional second argument is non-zero, don't remove matches
+!     * for 'wildignore' and don't put matches for 'suffixes' at the end. */
+!     if (argvars[1].v_type != VAR_UNKNOWN
+!                              && get_tv_number_chk(&argvars[1], &error))
+!      options |= WILD_KEEP_ALL;
+      rettv->v_type = VAR_STRING;
+      if (!error)
+      {
+       ExpandInit(&xpc);
+       xpc.xp_context = EXPAND_FILES;
+       if (p_wic)
+           options += WILD_ICASE;
+!      rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
+                                                    NULL, options, WILD_ALL);
+      }
+      else
+       rettv->vval.v_string = NULL;
+--- 11863,11901 ----
+      int              error = FALSE;
+  
+      /* When the optional second argument is non-zero, don't remove matches
+!      * for 'wildignore' and don't put matches for 'suffixes' at the end. */
+      rettv->v_type = VAR_STRING;
++     if (argvars[1].v_type != VAR_UNKNOWN)
++     {
++      if (get_tv_number_chk(&argvars[1], &error))
++          options |= WILD_KEEP_ALL;
++      if (argvars[2].v_type != VAR_UNKNOWN
++                                  && get_tv_number_chk(&argvars[2], &error))
++      {
++          rettv->v_type = VAR_LIST;
++          rettv->vval.v_list = NULL;
++      }
++     }
+      if (!error)
+      {
+       ExpandInit(&xpc);
+       xpc.xp_context = EXPAND_FILES;
+       if (p_wic)
+           options += WILD_ICASE;
+!      if (rettv->v_type == VAR_STRING)
+!          rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
+                                                    NULL, options, WILD_ALL);
++      else if (rettv_list_alloc(rettv) != FAIL)
++      {
++        int i;
++ 
++        ExpandOne(&xpc, get_tv_string(&argvars[0]),
++                                              NULL, options, WILD_ALL_KEEP);
++        for (i = 0; i < xpc.xp_numfiles; i++)
++            list_append_string(rettv->vval.v_list, xpc.xp_files[i], -1);
++ 
++        ExpandCleanup(&xpc);
++      }
+      }
+      else
+       rettv->vval.v_string = NULL;
+*** ../vim-7.3.464/src/ex_getln.c      2012-02-22 17:58:00.000000000 +0100
+--- src/ex_getln.c     2012-03-07 19:07:01.000000000 +0100
+***************
+*** 3461,3466 ****
+--- 3461,3467 ----
+   * mode = WILD_PREV:     use previous match in multiple match, wrap to first
+   * mode = WILD_ALL:      return all matches concatenated
+   * mode = WILD_LONGEST:          return longest matched part
++  * mode = WILD_ALL_KEEP:    get all matches, keep matches
+   *
+   * options = WILD_LIST_NOTFOUND:    list entries without a match
+   * options = WILD_HOME_REPLACE:          do home_replace() for buffer names
+***************
+*** 3584,3590 ****
+           /*
+            * Check for matching suffixes in file names.
+            */
+!          if (mode != WILD_ALL && mode != WILD_LONGEST)
+           {
+               if (xp->xp_numfiles)
+                   non_suf_match = xp->xp_numfiles;
+--- 3585,3592 ----
+           /*
+            * Check for matching suffixes in file names.
+            */
+!          if (mode != WILD_ALL && mode != WILD_ALL_KEEP
+!                                                    && mode != WILD_LONGEST)
+           {
+               if (xp->xp_numfiles)
+                   non_suf_match = xp->xp_numfiles;
+*** ../vim-7.3.464/src/vim.h   2011-07-27 17:31:42.000000000 +0200
+--- src/vim.h  2012-03-07 19:03:43.000000000 +0100
+***************
+*** 794,799 ****
+--- 794,800 ----
+  #define WILD_PREV            5
+  #define WILD_ALL             6
+  #define WILD_LONGEST         7
++ #define WILD_ALL_KEEP                8
+  
+  #define WILD_LIST_NOTFOUND   1
+  #define WILD_HOME_REPLACE    2
+*** ../vim-7.3.464/src/version.c       2012-03-07 18:04:00.000000000 +0100
+--- src/version.c      2012-03-07 19:14:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     465,
+  /**/
+
+-- 
+Although the scythe isn't pre-eminent among the weapons of war, anyone who
+has been on the wrong end of, say, a peasants' revolt will know that in
+skilled hands it is fearsome.
+                                       -- (Terry Pratchett, Mort)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.466.patch0 b/vim/patches/vim-7.3.466.patch0
new file mode 100644 (file)
index 0000000..0dc4293
--- /dev/null
@@ -0,0 +1,49 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.466
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.466
+Problem:    Get ml_get error when ":behave mswin" was used and selecting
+           several lines.  (A. Sinan Unur)
+Solution:   Adjust the end of the operation. (Christian Brabandt)
+Files:     src/ops.c
+
+
+*** ../vim-7.3.465/src/ops.c   2012-02-22 17:37:55.000000000 +0100
+--- src/ops.c  2012-03-07 19:27:08.000000000 +0100
+***************
+*** 1957,1962 ****
+--- 1957,1965 ----
+           ++curwin->w_cursor.lnum;
+           del_lines((long)(oap->line_count - 2), FALSE);
+  
++          if (delete_last_line)
++              oap->end.lnum = curbuf->b_ml.ml_line_count;
++ 
+           n = (oap->end.col + 1 - !oap->inclusive);
+           if (oap->inclusive && delete_last_line
+                   && n > (int)STRLEN(ml_get(oap->end.lnum)))
+*** ../vim-7.3.465/src/version.c       2012-03-07 19:16:49.000000000 +0100
+--- src/version.c      2012-03-07 19:29:52.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     466,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+153. You find yourself staring at your "inbox" waiting for new e-mail
+     to arrive.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.467.patch0 b/vim/patches/vim-7.3.467.patch0
new file mode 100644 (file)
index 0000000..7764217
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.467
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.467
+Problem:    Cursor positioned wrong at the command line when regaining focus
+           and using some input method.
+Solution:   Do not position the cursor in command line mode.
+Files:     src/mbyte.c
+
+
+*** ../vim-7.3.466/src/mbyte.c 2011-12-08 15:09:46.000000000 +0100
+--- src/mbyte.c        2012-03-07 19:36:44.000000000 +0100
+***************
+*** 4504,4510 ****
+      vgetc_busy = TRUE;
+      showmode();
+      vgetc_busy = old_vgetc_busy;
+!     setcursor();
+      out_flush();
+  }
+  
+--- 4504,4511 ----
+      vgetc_busy = TRUE;
+      showmode();
+      vgetc_busy = old_vgetc_busy;
+!     if ((State & NORMAL) || (State & INSERT))
+!      setcursor();
+      out_flush();
+  }
+  
+*** ../vim-7.3.466/src/version.c       2012-03-07 19:30:32.000000000 +0100
+--- src/version.c      2012-03-07 19:38:22.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     467,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+154. You fondle your mouse.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.468.patch0 b/vim/patches/vim-7.3.468.patch0
new file mode 100644 (file)
index 0000000..e078f9e
--- /dev/null
@@ -0,0 +1,144 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.468
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.468
+Problem:    For some compilers the error file is not easily readable.
+Solution:   Use QuickFixCmdPre for more commands. (Marcin Szamotulski)
+Files:     runtime/doc/autocmd.txt, src/quickfix.c
+
+
+*** ../vim-7.3.467/runtime/doc/autocmd.txt     2012-02-12 20:13:55.000000000 +0100
+--- runtime/doc/autocmd.txt    2012-03-07 20:07:23.000000000 +0100
+***************
+*** 695,701 ****
+  QuickFixCmdPre                       Before a quickfix command is run (|:make|,
+                               |:lmake|, |:grep|, |:lgrep|, |:grepadd|,
+                               |:lgrepadd|, |:vimgrep|, |:lvimgrep|,
+!                              |:vimgrepadd|, |:lvimgrepadd|, |:cscope|).
+                               The pattern is matched against the command
+                               being run.  When |:grep| is used but 'grepprg'
+                               is set to "internal" it still matches "grep".
+--- 699,708 ----
+  QuickFixCmdPre                       Before a quickfix command is run (|:make|,
+                               |:lmake|, |:grep|, |:lgrep|, |:grepadd|,
+                               |:lgrepadd|, |:vimgrep|, |:lvimgrep|,
+!                              |:vimgrepadd|, |:lvimgrepadd|, |:cscope|,
+!                              |:cfile|, |:cgetfile|, |:caddfile|, |:lfile|,
+!                              |:lgetfile|, |:laddfile|, |:helpgrep|,
+!                              |:lhelpgrep|).
+                               The pattern is matched against the command
+                               being run.  When |:grep| is used but 'grepprg'
+                               is set to "internal" it still matches "grep".
+***************
+*** 706,712 ****
+                                                       *QuickFixCmdPost*
+  QuickFixCmdPost                      Like QuickFixCmdPre, but after a quickfix
+                               command is run, before jumping to the first
+!                              location.  See |QuickFixCmdPost-example|.
+                                                       *RemoteReply*
+  RemoteReply                  When a reply from a Vim that functions as
+                               server was received |server2client()|.  The
+--- 713,722 ----
+                                                       *QuickFixCmdPost*
+  QuickFixCmdPost                      Like QuickFixCmdPre, but after a quickfix
+                               command is run, before jumping to the first
+!                              location. For |:cfile| and |:lfile| commands
+!                              it is run after error file is read and before
+!                              moving to the first error. 
+!                              See |QuickFixCmdPost-example|.
+                                                       *RemoteReply*
+  RemoteReply                  When a reply from a Vim that functions as
+                               server was received |server2client()|.  The
+*** ../vim-7.3.467/src/quickfix.c      2012-02-22 14:58:24.000000000 +0100
+--- src/quickfix.c     2012-03-07 20:10:07.000000000 +0100
+***************
+*** 2995,3005 ****
+  {
+      win_T    *wp = NULL;
+      qf_info_T        *qi = &ql_info;
+  
+      if (eap->cmdidx == CMD_lfile || eap->cmdidx == CMD_lgetfile
+!      || eap->cmdidx == CMD_laddfile)
+       wp = curwin;
+  
+  #ifdef FEAT_BROWSE
+      if (cmdmod.browse)
+      {
+--- 2995,3022 ----
+  {
+      win_T    *wp = NULL;
+      qf_info_T        *qi = &ql_info;
++ #ifdef FEAT_AUTOCMD
++     char_u   *au_name = NULL;
++ #endif
+  
+      if (eap->cmdidx == CMD_lfile || eap->cmdidx == CMD_lgetfile
+!                                             || eap->cmdidx == CMD_laddfile)
+       wp = curwin;
+  
++ #ifdef FEAT_AUTOCMD
++     switch (eap->cmdidx)
++     {
++      case CMD_cfile:     au_name = (char_u *)"cfile"; break;
++      case CMD_cgetfile:  au_name = (char_u *)"cgetfile"; break;
++      case CMD_caddfile:  au_name = (char_u *)"caddfile"; break;
++      case CMD_lfile:     au_name = (char_u *)"lfile"; break;
++      case CMD_lgetfile:  au_name = (char_u *)"lgetfile"; break;
++      case CMD_laddfile:  au_name = (char_u *)"laddfile"; break;
++      default: break;
++     }
++     if (au_name != NULL)
++      apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name, NULL, FALSE, curbuf);
++ #endif
+  #ifdef FEAT_BROWSE
+      if (cmdmod.browse)
+      {
+***************
+*** 3031,3040 ****
+--- 3048,3069 ----
+                                 && (eap->cmdidx == CMD_cfile
+                                            || eap->cmdidx == CMD_lfile))
+      {
++ #ifdef FEAT_AUTOCMD
++      if (au_name != NULL)
++          apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, NULL, FALSE, curbuf);
++ #endif
+       if (wp != NULL)
+           qi = GET_LOC_LIST(wp);
+       qf_jump(qi, 0, 0, eap->forceit);        /* display first error */
+      }
++ 
++     else
++     {
++ #ifdef FEAT_AUTOCMD
++      if (au_name != NULL)
++          apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, NULL, FALSE, curbuf);
++ #endif
++     }
+  }
+  
+  /*
+*** ../vim-7.3.467/src/version.c       2012-03-07 19:38:52.000000000 +0100
+--- src/version.c      2012-03-07 20:11:54.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     468,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+155. You forget to eat because you're too busy surfing the net.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.469.patch0 b/vim/patches/vim-7.3.469.patch0
new file mode 100644 (file)
index 0000000..77ca4a0
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.469
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.469
+Problem:    Compiler warning for unused argument without some features.
+Solution:   Add UNUSED.
+Files:     src/buffer.c
+
+
+*** ../vim-7.3.468/src/buffer.c        2012-02-22 19:13:00.000000000 +0100
+--- src/buffer.c       2012-03-07 22:30:56.000000000 +0100
+***************
+*** 329,335 ****
+      win_T    *win;           /* if not NULL, set b_last_cursor */
+      buf_T    *buf;
+      int              action;
+!     int              abort_if_last;
+  {
+  #ifdef FEAT_AUTOCMD
+      int              is_curbuf;
+--- 329,335 ----
+      win_T    *win;           /* if not NULL, set b_last_cursor */
+      buf_T    *buf;
+      int              action;
+!     int              abort_if_last UNUSED;
+  {
+  #ifdef FEAT_AUTOCMD
+      int              is_curbuf;
+*** ../vim-7.3.468/src/version.c       2012-03-07 20:13:44.000000000 +0100
+--- src/version.c      2012-03-07 22:51:54.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     469,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+157. You fum through a magazine, you first check to see if it has a web
+     address.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.470.patch0 b/vim/patches/vim-7.3.470.patch0
new file mode 100644 (file)
index 0000000..80bec15
--- /dev/null
@@ -0,0 +1,67 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.470
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.470
+Problem:    Test 62 fails when compiled without GUI and X11.
+Solution:   Don't test :drop when it is not supported.
+Files:     src/testdir/test62.in
+
+
+*** ../vim-7.3.469/src/testdir/test62.in       2012-02-22 19:13:00.000000000 +0100
+--- src/testdir/test62.in      2012-03-07 22:46:17.000000000 +0100
+***************
+*** 49,55 ****
+  :tabclose
+  :call append(line('$'), test_status)
+  :"
+! :"
+  :" Test for ":tab drop exist-file" to keep current window.
+  :sp test1
+  :tab drop test1
+--- 49,55 ----
+  :tabclose
+  :call append(line('$'), test_status)
+  :"
+! :if has('gui') || has('clientserver')
+  :" Test for ":tab drop exist-file" to keep current window.
+  :sp test1
+  :tab drop test1
+***************
+*** 85,90 ****
+--- 85,96 ----
+  :tabclose
+  :q
+  :call append(line('$'), test_status)
++ :else
++ :" :drop not supported
++ :call append(line('$'), 'tab drop 1: pass')
++ :call append(line('$'), 'tab drop 2: pass')
++ :call append(line('$'), 'tab drop 3: pass')
++ :endif
+  :"
+  :"
+  :/^Results/,$w! test.out
+*** ../vim-7.3.469/src/version.c       2012-03-07 22:52:30.000000000 +0100
+--- src/version.c      2012-03-07 22:53:40.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     470,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+158. You get a tuner card so you can watch TV while surfing.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.471.patch0 b/vim/patches/vim-7.3.471.patch0
new file mode 100644 (file)
index 0000000..be81432
--- /dev/null
@@ -0,0 +1,92 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.471
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.471
+Problem:    Can't abort listing placed signs.
+Solution:   Check "got_int". (Christian Brabandt)
+Files:     src/buffer.c, src/ex_cmds.c
+
+
+*** ../vim-7.3.470/src/buffer.c        2012-03-07 22:52:30.000000000 +0100
+--- src/buffer.c       2012-03-16 13:54:48.000000000 +0100
+***************
+*** 5557,5563 ****
+       buf = firstbuf;
+      else
+       buf = rbuf;
+!     while (buf != NULL)
+      {
+       if (buf->b_signlist != NULL)
+       {
+--- 5557,5563 ----
+       buf = firstbuf;
+      else
+       buf = rbuf;
+!     while (buf != NULL && !got_int)
+      {
+       if (buf->b_signlist != NULL)
+       {
+***************
+*** 5565,5571 ****
+           MSG_PUTS_ATTR(lbuf, hl_attr(HLF_D));
+           msg_putchar('\n');
+       }
+!      for (p = buf->b_signlist; p != NULL; p = p->next)
+       {
+           vim_snprintf(lbuf, BUFSIZ, _("    line=%ld  id=%d  name=%s"),
+                          (long)p->lnum, p->id, sign_typenr2name(p->typenr));
+--- 5565,5571 ----
+           MSG_PUTS_ATTR(lbuf, hl_attr(HLF_D));
+           msg_putchar('\n');
+       }
+!      for (p = buf->b_signlist; p != NULL && !got_int; p = p->next)
+       {
+           vim_snprintf(lbuf, BUFSIZ, _("    line=%ld  id=%d  name=%s"),
+                          (long)p->lnum, p->id, sign_typenr2name(p->typenr));
+*** ../vim-7.3.470/src/ex_cmds.c       2012-03-07 14:57:50.000000000 +0100
+--- src/ex_cmds.c      2012-03-16 13:58:50.000000000 +0100
+***************
+*** 6729,6735 ****
+       if (idx == SIGNCMD_LIST && *arg == NUL)
+       {
+           /* ":sign list": list all defined signs */
+!          for (sp = first_sign; sp != NULL; sp = sp->sn_next)
+               sign_list_defined(sp);
+       }
+       else if (*arg == NUL)
+--- 6729,6735 ----
+       if (idx == SIGNCMD_LIST && *arg == NUL)
+       {
+           /* ":sign list": list all defined signs */
+!          for (sp = first_sign; sp != NULL && !got_int; sp = sp->sn_next)
+               sign_list_defined(sp);
+       }
+       else if (*arg == NUL)
+*** ../vim-7.3.470/src/version.c       2012-03-07 22:55:17.000000000 +0100
+--- src/version.c      2012-03-16 13:55:28.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     471,
+  /**/
+
+-- 
+Some of the well know MS-Windows errors:
+       EMEMORY         Memory error caused by..., eh...
+       ELICENSE        Your license has expired, give us more money!
+       EMOUSE          Mouse moved, reinstall Windows
+       EILLEGAL        Illegal error, you are not allowed to see this
+       EVIRUS          Undetectable virus found
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.472.patch0 b/vim/patches/vim-7.3.472.patch0
new file mode 100644 (file)
index 0000000..217b2fc
--- /dev/null
@@ -0,0 +1,88 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.472
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.472
+Problem:    Crash when using ":redraw" in a BufEnter autocommand and
+            switching to another tab. (驼峰)
+Solution:   Move triggering the the autocommands to after correcting the
+            option values. Also check the row value to be out of bounds.
+            (Christian Brabandt, Sergey Khorev)
+Files:      src/screen.c, src/window.c
+
+
+*** ../vim-7.3.471/src/screen.c        2012-02-04 23:34:57.000000000 +0100
+--- src/screen.c       2012-03-16 18:59:20.000000000 +0100
+***************
+*** 5371,5376 ****
+--- 5371,5382 ----
+  # define CHAR_CELLS 1
+  #endif
+  
++     /* Check for illegal row and col, just in case. */
++     if (row >= Rows)
++      row = Rows - 1;
++     if (endcol > Columns)
++      endcol = Columns;
++ 
+  # ifdef FEAT_CLIPBOARD
+      clip_may_clear_selection(row, row);
+  # endif
+*** ../vim-7.3.471/src/window.c        2012-02-22 14:58:24.000000000 +0100
+--- src/window.c       2012-03-16 18:43:01.000000000 +0100
+***************
+*** 3676,3688 ****
+      win_enter_ext(tp->tp_curwin, FALSE, TRUE);
+      prevwin = next_prevwin;
+  
+- #ifdef FEAT_AUTOCMD
+-     apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
+- 
+-     if (old_curbuf != curbuf)
+-      apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
+- #endif
+- 
+      last_status(FALSE);              /* status line may appear or disappear */
+      (void)win_comp_pos();    /* recompute w_winrow for all windows */
+      must_redraw = CLEAR;     /* need to redraw everything */
+--- 3676,3681 ----
+***************
+*** 3712,3717 ****
+--- 3705,3718 ----
+      gui_may_update_scrollbars();
+  #endif
+  
++ #ifdef FEAT_AUTOCMD
++     /* Apply autocommands after updating the display, when 'rows' and
++      * 'columns' have been set correctly. */
++     apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
++     if (old_curbuf != curbuf)
++      apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
++ #endif
++ 
+      redraw_all_later(CLEAR);
+  }
+  
+*** ../vim-7.3.471/src/version.c       2012-03-16 14:32:10.000000000 +0100
+--- src/version.c      2012-03-16 19:02:53.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     472,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+200. You really believe in the concept of a "paperless" office.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.473.patch0 b/vim/patches/vim-7.3.473.patch0
new file mode 100644 (file)
index 0000000..571f85d
--- /dev/null
@@ -0,0 +1,68 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.473
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.473
+Problem:    'cursorbind' does not work correctly in combination with
+           'virtualedit' set to "all".
+Solution:   Copy coladd. (Gary Johnson)
+Files:     src/move.c
+
+
+*** ../vim-7.3.472/src/move.c  2012-02-04 23:34:57.000000000 +0100
+--- src/move.c 2012-03-16 19:20:57.000000000 +0100
+***************
+*** 2843,2849 ****
+  do_check_cursorbind()
+  {
+      linenr_T line = curwin->w_cursor.lnum;
+!     colnr_T  col =  curwin->w_cursor.col;
+      win_T    *old_curwin = curwin;
+      buf_T    *old_curbuf = curbuf;
+      int              restart_edit_save;
+--- 2843,2852 ----
+  do_check_cursorbind()
+  {
+      linenr_T line = curwin->w_cursor.lnum;
+!     colnr_T  col = curwin->w_cursor.col;
+! # ifdef FEAT_VIRTUALEDIT
+!     colnr_T  coladd = curwin->w_cursor.coladd;
+! # endif
+      win_T    *old_curwin = curwin;
+      buf_T    *old_curbuf = curbuf;
+      int              restart_edit_save;
+***************
+*** 2875,2880 ****
+--- 2878,2886 ----
+  # endif
+               curwin->w_cursor.lnum = line;
+           curwin->w_cursor.col = col;
++ # ifdef FEAT_VIRTUALEDIT
++          curwin->w_cursor.coladd = coladd;
++ # endif
+  
+           /* Make sure the cursor is in a valid position.  Temporarily set
+            * "restart_edit" to allow the cursor to be beyond the EOL. */
+*** ../vim-7.3.472/src/version.c       2012-03-16 19:07:54.000000000 +0100
+--- src/version.c      2012-03-16 19:24:06.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     473,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+201. When somebody asks you where you are, you tell them in which chat room.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.474.patch0 b/vim/patches/vim-7.3.474.patch0
new file mode 100644 (file)
index 0000000..dc6b1d6
--- /dev/null
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.474
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.474
+Problem:    Perl build with gcc 4 fails.
+Solution:   Remove XS() statements. (Yasuhiro Matsumoto)
+Files:     src/if_perl.xs
+
+
+*** ../vim-7.3.473/src/if_perl.xs      2012-02-12 00:31:47.000000000 +0100
+--- src/if_perl.xs     2012-03-16 19:33:23.000000000 +0100
+***************
+*** 913,936 ****
+  win_T *win_find_nr(int n) { return curwin; }
+  #endif
+  
+- XS(XS_VIM_Msg);
+- XS(XS_VIM_SetOption);
+- XS(XS_VIM_DoCommand);
+- XS(XS_VIM_Eval);
+- XS(XS_VIM_Buffers);
+- XS(XS_VIM_Windows);
+- XS(XS_VIWIN_DESTROY);
+- XS(XS_VIWIN_Buffer);
+- XS(XS_VIWIN_SetHeight);
+- XS(XS_VIWIN_Cursor);
+- XS(XS_VIBUF_DESTROY);
+- XS(XS_VIBUF_Name);
+- XS(XS_VIBUF_Number);
+- XS(XS_VIBUF_Count);
+- XS(XS_VIBUF_Get);
+- XS(XS_VIBUF_Set);
+- XS(XS_VIBUF_Delete);
+- XS(XS_VIBUF_Append);
+  XS(boot_VIM);
+  
+      static void
+--- 913,918 ----
+*** ../vim-7.3.473/src/version.c       2012-03-16 19:24:21.000000000 +0100
+--- src/version.c      2012-03-16 19:28:03.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     474,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+202. You're amazed to find out Spam is a food.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.475.patch0 b/vim/patches/vim-7.3.475.patch0
new file mode 100644 (file)
index 0000000..54c27a2
--- /dev/null
@@ -0,0 +1,98 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.475
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.475
+Problem:    In a terminal with few colors the omnicomplete menu may be hard to
+           see when using the default colors.
+Solution:   Use more explicit colors. (suggested by Alex Henrie)
+Files:     src/syntax.c
+
+
+*** ../vim-7.3.474/src/syntax.c        2012-01-10 22:26:12.000000000 +0100
+--- src/syntax.c       2012-03-16 20:14:22.000000000 +0100
+***************
+*** 6516,6523 ****
+            "DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red"),
+  #endif
+  #ifdef FEAT_INS_EXPAND
+-      CENT("PmenuThumb cterm=reverse",
+-           "PmenuThumb cterm=reverse gui=reverse"),
+       CENT("PmenuSbar ctermbg=Grey",
+            "PmenuSbar ctermbg=Grey guibg=Grey"),
+  #endif
+--- 6516,6521 ----
+***************
+*** 6557,6566 ****
+            "SpellLocal term=underline ctermbg=Cyan guisp=DarkCyan gui=undercurl"),
+  #endif
+  #ifdef FEAT_INS_EXPAND
+!      CENT("Pmenu ctermbg=LightMagenta",
+!           "Pmenu ctermbg=LightMagenta guibg=LightMagenta"),
+!      CENT("PmenuSel ctermbg=LightGrey",
+!           "PmenuSel ctermbg=LightGrey guibg=Grey"),
+  #endif
+       CENT("SpecialKey term=bold ctermfg=DarkBlue",
+            "SpecialKey term=bold ctermfg=DarkBlue guifg=Blue"),
+--- 6555,6566 ----
+            "SpellLocal term=underline ctermbg=Cyan guisp=DarkCyan gui=undercurl"),
+  #endif
+  #ifdef FEAT_INS_EXPAND
+!      CENT("PmenuThumb ctermbg=Black",
+!           "PmenuThumb ctermbg=Black guibg=Black"),
+!      CENT("Pmenu ctermbg=LightMagenta ctermfg=Black",
+!           "Pmenu ctermbg=LightMagenta ctermfg=Black guibg=LightMagenta"),
+!      CENT("PmenuSel ctermbg=LightGrey ctermfg=Black",
+!           "PmenuSel ctermbg=LightGrey ctermfg=Black guibg=Grey"),
+  #endif
+       CENT("SpecialKey term=bold ctermfg=DarkBlue",
+            "SpecialKey term=bold ctermfg=DarkBlue guifg=Blue"),
+***************
+*** 6645,6654 ****
+            "SpellLocal term=underline ctermbg=Cyan guisp=Cyan gui=undercurl"),
+  #endif
+  #ifdef FEAT_INS_EXPAND
+!      CENT("Pmenu ctermbg=Magenta",
+!           "Pmenu ctermbg=Magenta guibg=Magenta"),
+!      CENT("PmenuSel ctermbg=DarkGrey",
+!           "PmenuSel ctermbg=DarkGrey guibg=DarkGrey"),
+  #endif
+       CENT("Title term=bold ctermfg=LightMagenta",
+            "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
+--- 6645,6656 ----
+            "SpellLocal term=underline ctermbg=Cyan guisp=Cyan gui=undercurl"),
+  #endif
+  #ifdef FEAT_INS_EXPAND
+!      CENT("PmenuThumb ctermbg=White",
+!           "PmenuThumb ctermbg=White guibg=White"),
+!      CENT("Pmenu ctermbg=Magenta ctermfg=Black",
+!           "Pmenu ctermbg=Magenta ctermfg=Black guibg=Magenta"),
+!      CENT("PmenuSel ctermbg=DarkGrey ctermfg=Black",
+!           "PmenuSel ctermbg=DarkGrey ctermfg=Black guibg=DarkGrey"),
+  #endif
+       CENT("Title term=bold ctermfg=LightMagenta",
+            "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
+*** ../vim-7.3.474/src/version.c       2012-03-16 19:34:43.000000000 +0100
+--- src/version.c      2012-03-16 20:05:35.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     475,
+  /**/
+
+-- 
+Spam seems to be something useful to novices.  Later you realize that
+it's a bunch of indigestable junk that only clogs your system.
+Applies to both the food and the e-mail!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.476.patch0 b/vim/patches/vim-7.3.476.patch0
new file mode 100644 (file)
index 0000000..959b906
--- /dev/null
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.476
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.476
+Problem:    When selecting a block, using "$" to include the end of each line
+           and using "A" and typing a backspace strange things happen.
+           (Yuangchen Xie)
+Solution:   Avoid using a negative length. (Christian Brabandt)
+Files:     src/ops.c
+
+
+*** ../vim-7.3.475/src/ops.c   2012-03-07 19:30:32.000000000 +0100
+--- src/ops.c  2012-03-23 12:22:36.000000000 +0100
+***************
+*** 2602,2608 ****
+       firstline = ml_get(oap->start.lnum) + bd.textcol;
+       if (oap->op_type == OP_APPEND)
+           firstline += bd.textlen;
+!      if ((ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
+       {
+           ins_text = vim_strnsave(firstline, (int)ins_len);
+           if (ins_text != NULL)
+--- 2602,2609 ----
+       firstline = ml_get(oap->start.lnum) + bd.textcol;
+       if (oap->op_type == OP_APPEND)
+           firstline += bd.textlen;
+!      if (pre_textlen >= 0
+!                   && (ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
+       {
+           ins_text = vim_strnsave(firstline, (int)ins_len);
+           if (ins_text != NULL)
+*** ../vim-7.3.475/src/version.c       2012-03-16 20:16:42.000000000 +0100
+--- src/version.c      2012-03-23 14:14:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     476,
+  /**/
+
+-- 
+"Marriage is a wonderful institution...
+but who wants to live in an institution?"
+ - Groucho Marx
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.477.patch0 b/vim/patches/vim-7.3.477.patch0
new file mode 100644 (file)
index 0000000..8030ee6
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.477
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.477
+Problem:    Using ":echo" to output enough lines to scroll, then using "j" and
+           "k" at the more prompt, displays the command on top of the output.
+           (Marcin Szamotulski) 
+Solution:   Put the output below the command. (Christian Brabandt)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.476/src/eval.c  2012-03-07 19:16:49.000000000 +0100
+--- src/eval.c 2012-03-23 15:11:30.000000000 +0100
+***************
+*** 20492,20498 ****
+--- 20492,20503 ----
+               /* Call msg_start() after eval1(), evaluating the expression
+                * may cause a message to appear. */
+               if (eap->cmdidx == CMD_echo)
++              {
++                  /* Put the output below the command, makes scrolling back
++                   * at more prompt work. */
++                  msg_didout = TRUE;
+                   msg_start();
++              }
+           }
+           else if (eap->cmdidx == CMD_echo)
+               msg_puts_attr((char_u *)" ", echo_attr);
+*** ../vim-7.3.476/src/version.c       2012-03-23 14:16:19.000000000 +0100
+--- src/version.c      2012-03-23 15:13:58.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     477,
+  /**/
+
+-- 
+"Marriage is when a man and woman become as one; the trouble starts
+when they try to decide which one"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.478.patch0 b/vim/patches/vim-7.3.478.patch0
new file mode 100644 (file)
index 0000000..bad69ef
--- /dev/null
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.478
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.478
+Problem:    Memory leak using the ':rv!' command when reading dictionary or
+           list global variables i.e. with 'viminfo' containing !.
+Solution:   Free the typeval. (Dominique Pelle)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.477/src/eval.c  2012-03-23 15:18:20.000000000 +0100
+--- src/eval.c 2012-03-23 15:28:42.000000000 +0100
+***************
+*** 22976,22981 ****
+--- 22976,22982 ----
+                   {
+                       vim_free(tv.vval.v_string);
+                       tv = *etv;
++                      vim_free(etv);
+                   }
+               }
+  
+*** ../vim-7.3.477/src/version.c       2012-03-23 15:18:20.000000000 +0100
+--- src/version.c      2012-03-23 15:29:22.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     478,
+  /**/
+
+-- 
+"Marriage is the process of finding out what kind of man your wife
+would have preferred"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.479.patch0 b/vim/patches/vim-7.3.479.patch0
new file mode 100644 (file)
index 0000000..fc256c1
--- /dev/null
@@ -0,0 +1,134 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.479
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.479
+Problem:    When 'cursorline' is set the line number highlighting can't be set
+           separately.
+Solution:   Add "CursorLineNr". (Howard Buchholz)
+Files:     src/option.c, src/screen.c, src/syntax.c, src/vim.h
+
+
+*** ../vim-7.3.478/src/option.c        2012-02-29 13:51:32.000000000 +0100
+--- src/option.c       2012-03-23 15:44:57.000000000 +0100
+***************
+*** 460,468 ****
+  #if defined(FEAT_DIFF) || defined(FEAT_FOLDING) || defined(FEAT_SPELL) \
+       || defined(FEAT_VERTSPLIT) || defined(FEAT_CLIPBOARD) \
+       || defined(FEAT_INS_EXPAND) || defined(FEAT_SYN_HL) || defined(FEAT_CONCEAL)
+! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn"
+  #else
+! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,t:Title,v:Visual,w:WarningMsg,W:WildMenu,>:SignColumn,*:TabLine,#:TabLineSel,_:TabLineFill"
+  #endif
+  
+  /*
+--- 460,468 ----
+  #if defined(FEAT_DIFF) || defined(FEAT_FOLDING) || defined(FEAT_SPELL) \
+       || defined(FEAT_VERTSPLIT) || defined(FEAT_CLIPBOARD) \
+       || defined(FEAT_INS_EXPAND) || defined(FEAT_SYN_HL) || defined(FEAT_CONCEAL)
+! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn"
+  #else
+! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,t:Title,v:Visual,w:WarningMsg,W:WildMenu,>:SignColumn,*:TabLine,#:TabLineSel,_:TabLineFill"
+  #endif
+  
+  /*
+*** ../vim-7.3.478/src/screen.c        2012-03-16 19:07:54.000000000 +0100
+--- src/screen.c       2012-03-23 16:09:15.000000000 +0100
+***************
+*** 3501,3509 ****
+                   char_attr = hl_attr(HLF_N);
+  #ifdef FEAT_SYN_HL
+                   /* When 'cursorline' is set highlight the line number of
+!                   * the current line differently. */
+                   if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
+!                      char_attr = hl_combine_attr(hl_attr(HLF_CUL), char_attr);
+  #endif
+               }
+           }
+--- 3501,3511 ----
+                   char_attr = hl_attr(HLF_N);
+  #ifdef FEAT_SYN_HL
+                   /* When 'cursorline' is set highlight the line number of
+!                   * the current line differently.
+!                   * TODO: Can we use CursorLine instead of CursorLineNr
+!                   * when CursorLineNr isn't set? */
+                   if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
+!                      char_attr = hl_attr(HLF_CLN);
+  #endif
+               }
+           }
+*** ../vim-7.3.478/src/syntax.c        2012-03-16 20:16:42.000000000 +0100
+--- src/syntax.c       2012-03-23 16:23:57.000000000 +0100
+***************
+*** 6538,6543 ****
+--- 6538,6545 ----
+            "Directory term=bold ctermfg=DarkBlue guifg=Blue"),
+       CENT("LineNr term=underline ctermfg=Brown",
+            "LineNr term=underline ctermfg=Brown guifg=Brown"),
++      CENT("CursorLineNr term=bold ctermfg=Brown",
++           "CursorLineNr term=bold ctermfg=Brown gui=bold guifg=Brown"),
+       CENT("MoreMsg term=bold ctermfg=DarkGreen",
+            "MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen"),
+       CENT("Question term=standout ctermfg=DarkGreen",
+***************
+*** 6626,6631 ****
+--- 6628,6635 ----
+            "Directory term=bold ctermfg=LightCyan guifg=Cyan"),
+       CENT("LineNr term=underline ctermfg=Yellow",
+            "LineNr term=underline ctermfg=Yellow guifg=Yellow"),
++      CENT("CursorLineNr term=bold ctermfg=Yellow",
++           "CursorLineNr term=bold ctermfg=Yellow gui=bold guifg=Yellow"),
+       CENT("MoreMsg term=bold ctermfg=LightGreen",
+            "MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen"),
+       CENT("Question term=standout ctermfg=LightGreen",
+*** ../vim-7.3.478/src/vim.h   2012-03-07 19:16:49.000000000 +0100
+--- src/vim.h  2012-03-23 15:44:57.000000000 +0100
+***************
+*** 1318,1323 ****
+--- 1318,1324 ----
+      , HLF_M      /* "--More--" message */
+      , HLF_CM     /* Mode (e.g., "-- INSERT --") */
+      , HLF_N      /* line number for ":number" and ":#" commands */
++     , HLF_CLN            /* current line number */
+      , HLF_R      /* return to continue message and yes/no questions */
+      , HLF_S      /* status lines */
+      , HLF_SNC            /* status lines of not-current windows */
+***************
+*** 1355,1361 ****
+  /* The HL_FLAGS must be in the same order as the HLF_ enums!
+   * When changing this also adjust the default for 'highlight'. */
+  #define HL_FLAGS {'8', '@', 'd', 'e', 'h', 'i', 'l', 'm', 'M', \
+!                'n', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
+                 'f', 'F', 'A', 'C', 'D', 'T', '-', '>', \
+                 'B', 'P', 'R', 'L', \
+                 '+', '=', 'x', 'X', '*', '#', '_', '!', '.', 'o'}
+--- 1356,1362 ----
+  /* The HL_FLAGS must be in the same order as the HLF_ enums!
+   * When changing this also adjust the default for 'highlight'. */
+  #define HL_FLAGS {'8', '@', 'd', 'e', 'h', 'i', 'l', 'm', 'M', \
+!                'n', 'N', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
+                 'f', 'F', 'A', 'C', 'D', 'T', '-', '>', \
+                 'B', 'P', 'R', 'L', \
+                 '+', '=', 'x', 'X', '*', '#', '_', '!', '.', 'o'}
+*** ../vim-7.3.478/src/version.c       2012-03-23 15:36:57.000000000 +0100
+--- src/version.c      2012-03-23 16:16:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     479,
+  /**/
+
+-- 
+If you're sending someone Styrofoam, what do you pack it in?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.480.patch0 b/vim/patches/vim-7.3.480.patch0
new file mode 100644 (file)
index 0000000..6d1e21d
--- /dev/null
@@ -0,0 +1,237 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.480
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.480
+Problem:    When using ":qa" and there is a changed buffer picking the buffer
+           to jump to is not very good.
+Solution:   Consider current and other tab pages. (Hirohito Higashi)
+Files:     src/ex_cmds2.c
+
+
+*** ../vim-7.3.479/src/ex_cmds2.c      2012-02-22 18:29:29.000000000 +0100
+--- src/ex_cmds2.c     2012-03-23 17:01:31.000000000 +0100
+***************
+*** 1569,1574 ****
+--- 1569,1594 ----
+               || forceit);
+  }
+  
++ static void add_bufnum __ARGS((int *bufnrs, int *bufnump, int nr));
++ 
++ /*
++  * Add a buffer number to "bufnrs", unless it's already there.
++  */
++     static void
++ add_bufnum(bufnrs, bufnump, nr)
++     int          *bufnrs;
++     int          *bufnump;
++     int          nr;
++ {
++     int i;
++ 
++     for (i = 0; i < *bufnump; ++i)
++      if (bufnrs[i] == nr)
++          return;
++     bufnrs[*bufnump] = nr;
++     *bufnump = *bufnump + 1;
++ }
++ 
+  /*
+   * Return TRUE if any buffer was changed and cannot be abandoned.
+   * That changed buffer becomes the current buffer.
+***************
+*** 1577,1608 ****
+  check_changed_any(hidden)
+      int              hidden;         /* Only check hidden buffers */
+  {
+      buf_T    *buf;
+      int              save;
+  #ifdef FEAT_WINDOWS
+      win_T    *wp;
+  #endif
+  
+!     for (;;)
+      {
+!      /* check curbuf first: if it was changed we can't abandon it */
+!      if (!hidden && curbufIsChanged())
+!          buf = curbuf;
+!      else
+       {
+!          for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+!              if ((!hidden || buf->b_nwindows == 0) && bufIsChanged(buf))
+!                  break;
+       }
+-      if (buf == NULL)    /* No buffers changed */
+-          return FALSE;
+- 
+-      /* Try auto-writing the buffer.  If this fails but the buffer no
+-       * longer exists it's not changed, that's OK. */
+-      if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
+-          break;          /* didn't save - still changes */
+      }
+  
+      exiting = FALSE;
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+      /*
+--- 1597,1660 ----
+  check_changed_any(hidden)
+      int              hidden;         /* Only check hidden buffers */
+  {
++     int              ret = FALSE;
+      buf_T    *buf;
+      int              save;
++     int              i;
++     int              bufnum = 0;
++     int              bufcount = 0;
++     int              *bufnrs;
+  #ifdef FEAT_WINDOWS
++     tabpage_T   *tp;
+      win_T    *wp;
+  #endif
+  
+!     for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+!      ++bufcount;
+! 
+!     if (bufcount == 0)
+!      return FALSE;
+! 
+!     bufnrs = (int *)alloc(sizeof(int) * bufcount);
+!     if (bufnrs == NULL)
+!      return FALSE;
+! 
+!     /* curbuf */
+!     bufnrs[bufnum++] = curbuf->b_fnum;
+! #ifdef FEAT_WINDOWS
+!     /* buf in curtab */
+!     FOR_ALL_WINDOWS(wp)
+!      if (wp->w_buffer != curbuf)
+!          add_bufnum(bufnrs, &bufnum, wp->w_buffer->b_fnum);
+! 
+!     /* buf in other tab */
+!     for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
+!      if (tp != curtab)
+!          for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
+!              add_bufnum(bufnrs, &bufnum, wp->w_buffer->b_fnum);
+! #endif
+!     /* any other buf */
+!     for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+!      add_bufnum(bufnrs, &bufnum, buf->b_fnum);
+! 
+!     for (i = 0; i < bufnum; ++i)
+      {
+!      buf = buflist_findnr(bufnrs[i]);
+!      if (buf == NULL)
+!          continue;
+!      if ((!hidden || buf->b_nwindows == 0) && bufIsChanged(buf))
+       {
+!          /* Try auto-writing the buffer.  If this fails but the buffer no
+!          * longer exists it's not changed, that's OK. */
+!          if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
+!              break;      /* didn't save - still changes */
+       }
+      }
+  
++     if (i >= bufnum)
++      goto theend;
++ 
++     ret = TRUE;
+      exiting = FALSE;
+  #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+      /*
+***************
+*** 1635,1658 ****
+  #ifdef FEAT_WINDOWS
+      /* Try to find a window that contains the buffer. */
+      if (buf != curbuf)
+!      for (wp = firstwin; wp != NULL; wp = wp->w_next)
+           if (wp->w_buffer == buf)
+           {
+!              win_goto(wp);
+  # ifdef FEAT_AUTOCMD
+               /* Paranoia: did autocms wipe out the buffer with changes? */
+               if (!buf_valid(buf))
+!                  return TRUE;
+  # endif
+!              break;
+           }
+  #endif
+  
+      /* Open the changed buffer in the current window. */
+      if (buf != curbuf)
+       set_curbuf(buf, DOBUF_GOTO);
+  
+!     return TRUE;
+  }
+  
+  /*
+--- 1687,1715 ----
+  #ifdef FEAT_WINDOWS
+      /* Try to find a window that contains the buffer. */
+      if (buf != curbuf)
+!      FOR_ALL_TAB_WINDOWS(tp, wp)
+           if (wp->w_buffer == buf)
+           {
+!              goto_tabpage_win(tp, wp);
+  # ifdef FEAT_AUTOCMD
+               /* Paranoia: did autocms wipe out the buffer with changes? */
+               if (!buf_valid(buf))
+!              {
+!                  goto theend;
+!              }
+  # endif
+!              goto buf_found;
+           }
++ buf_found:
+  #endif
+  
+      /* Open the changed buffer in the current window. */
+      if (buf != curbuf)
+       set_curbuf(buf, DOBUF_GOTO);
+  
+! theend:
+!     vim_free(bufnrs);
+!     return ret;
+  }
+  
+  /*
+***************
+*** 3274,3280 ****
+           home_replace(NULL, SCRIPT_ITEM(i).sn_name,
+                                                   NameBuff, MAXPATHL, TRUE);
+           smsg((char_u *)"%3d: %s", i, NameBuff);
+!         }
+  }
+  
+  # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
+--- 3331,3337 ----
+           home_replace(NULL, SCRIPT_ITEM(i).sn_name,
+                                                   NameBuff, MAXPATHL, TRUE);
+           smsg((char_u *)"%3d: %s", i, NameBuff);
+!      }
+  }
+  
+  # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
+*** ../vim-7.3.479/src/version.c       2012-03-23 16:25:13.000000000 +0100
+--- src/version.c      2012-03-23 16:48:06.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     480,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+243. You unsuccessfully try to download a pizza from www.dominos.com.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.481.patch0 b/vim/patches/vim-7.3.481.patch0
new file mode 100644 (file)
index 0000000..69f6915
--- /dev/null
@@ -0,0 +1,65 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.481
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.481
+Problem:    Changing 'virtualedit' in an operator function to "all" does not
+           have the desired effect. (Aaron Bohannon)
+Solution:   Save, reset and restore virtual_op when executing an operator
+           function.
+Files:     src/normal.c
+
+
+*** ../vim-7.3.480/src/normal.c        2012-02-05 01:18:41.000000000 +0100
+--- src/normal.c       2012-03-28 12:59:46.000000000 +0200
+***************
+*** 2279,2284 ****
+--- 2279,2285 ----
+  {
+  #ifdef FEAT_EVAL
+      char_u   *(argv[1]);
++     int              save_virtual_op = virtual_op;
+  
+      if (*p_opfunc == NUL)
+       EMSG(_("E774: 'operatorfunc' is empty"));
+***************
+*** 2297,2303 ****
+--- 2298,2311 ----
+           argv[0] = (char_u *)"line";
+       else
+           argv[0] = (char_u *)"char";
++ 
++      /* Reset virtual_op so that 'virtualedit' can be changed in the
++       * function. */
++      virtual_op = MAYBE;
++ 
+       (void)call_func_retnr(p_opfunc, 1, argv, FALSE);
++ 
++      virtual_op = save_virtual_op;
+      }
+  #else
+      EMSG(_("E775: Eval feature not available"));
+*** ../vim-7.3.480/src/version.c       2012-03-23 18:39:10.000000000 +0100
+--- src/version.c      2012-03-28 12:50:20.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     481,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+269. You wonder how you can make your dustbin produce Sesame Street's
+     Oscar's the Garbage Monster song when you empty it.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.482.patch0 b/vim/patches/vim-7.3.482.patch0
new file mode 100644 (file)
index 0000000..56ff301
--- /dev/null
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.482
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.482
+Problem:    With 'cursorbind' set moving up/down does not always keep the same
+           column.
+Solution:   Set curswant appropriately. (Gary Johnson)
+Files:     src/move.c
+
+
+*** ../vim-7.3.481/src/move.c  2012-03-16 19:24:21.000000000 +0100
+--- src/move.c 2012-03-28 14:16:02.000000000 +0200
+***************
+*** 2847,2852 ****
+--- 2847,2854 ----
+  # ifdef FEAT_VIRTUALEDIT
+      colnr_T  coladd = curwin->w_cursor.coladd;
+  # endif
++     colnr_T  curswant = curwin->w_curswant;
++     int              set_curswant = curwin->w_set_curswant;
+      win_T    *old_curwin = curwin;
+      buf_T    *old_curbuf = curbuf;
+      int              restart_edit_save;
+***************
+*** 2881,2886 ****
+--- 2883,2890 ----
+  # ifdef FEAT_VIRTUALEDIT
+           curwin->w_cursor.coladd = coladd;
+  # endif
++          curwin->w_curswant = curswant;
++          curwin->w_set_curswant = set_curswant;
+  
+           /* Make sure the cursor is in a valid position.  Temporarily set
+            * "restart_edit" to allow the cursor to be beyond the EOL. */
+*** ../vim-7.3.481/src/version.c       2012-03-28 12:59:53.000000000 +0200
+--- src/version.c      2012-03-28 14:15:56.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     482,
+  /**/
+
+-- 
+Women are probably the main cause of free software starvation.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.483.patch0 b/vim/patches/vim-7.3.483.patch0
new file mode 100644 (file)
index 0000000..bab488b
--- /dev/null
@@ -0,0 +1,97 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.483
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.483  (after 7.3.477)
+Problem:    More prompt shows up too often.
+Solution:   Instead of adding a line break, only start a new line in the
+           message history. (Christian Brabandt)
+Files:     src/eval.c, src/message.c, src/proto/message.pro
+
+
+*** ../vim-7.3.482/src/eval.c  2012-03-23 15:36:57.000000000 +0100
+--- src/eval.c 2012-03-28 16:41:03.000000000 +0200
+***************
+*** 20493,20501 ****
+                * may cause a message to appear. */
+               if (eap->cmdidx == CMD_echo)
+               {
+!                  /* Put the output below the command, makes scrolling back
+!                   * at more prompt work. */
+!                  msg_didout = TRUE;
+                   msg_start();
+               }
+           }
+--- 20493,20502 ----
+                * may cause a message to appear. */
+               if (eap->cmdidx == CMD_echo)
+               {
+!                  /* Mark the saved text as finishing the line, so that what
+!                   * follows is displayed on a new line when scrolling back
+!                   * at the more prompt. */
+!                  msg_sb_eol();
+                   msg_start();
+               }
+           }
+*** ../vim-7.3.482/src/message.c       2012-01-26 13:01:54.000000000 +0100
+--- src/message.c      2012-03-28 16:35:26.000000000 +0200
+***************
+*** 2348,2353 ****
+--- 2348,2363 ----
+  }
+  
+  /*
++  * Mark the last message chunk as finishing the line.
++  */
++     void
++ msg_sb_eol()
++ {
++     if (last_msgchunk != NULL)
++      last_msgchunk->sb_eol = TRUE;
++ }
++ 
++ /*
+   * Display a screen line from previously displayed text at row "row".
+   * Returns a pointer to the text for the next line (can be NULL).
+   */
+*** ../vim-7.3.482/src/proto/message.pro       2012-01-20 20:44:38.000000000 +0100
+--- src/proto/message.pro      2012-03-28 16:35:33.000000000 +0200
+***************
+*** 45,50 ****
+--- 45,51 ----
+  void may_clear_sb_text __ARGS((void));
+  void clear_sb_text __ARGS((void));
+  void show_sb_text __ARGS((void));
++ void msg_sb_eol __ARGS((void));
+  int msg_use_printf __ARGS((void));
+  void mch_errmsg __ARGS((char *str));
+  void mch_msg __ARGS((char *str));
+*** ../vim-7.3.482/src/version.c       2012-03-28 14:19:46.000000000 +0200
+--- src/version.c      2012-03-28 16:48:53.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     483,
+  /**/
+
+-- 
+       We're knights of the Round Table
+       Our shows are formidable
+       But many times
+       We're given rhymes
+       That are quite unsingable
+       We're opera mad in Camelot
+       We sing from the diaphragm a lot.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.484.patch0 b/vim/patches/vim-7.3.484.patch0
new file mode 100644 (file)
index 0000000..99968eb
--- /dev/null
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.484
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.484
+Problem:    The -E and --echo-wid command line arguments are not mentioned in
+           "vim --help".
+Solution:   Add the help lines. (Dominique Pelle)
+Files:     src/main.c
+
+
+*** ../vim-7.3.483/src/main.c  2012-02-12 01:55:50.000000000 +0100
+--- src/main.c 2012-03-28 16:55:03.000000000 +0200
+***************
+*** 3181,3186 ****
+--- 3181,3187 ----
+  #endif
+      main_msg(_("-v\t\t\tVi mode (like \"vi\")"));
+      main_msg(_("-e\t\t\tEx mode (like \"ex\")"));
++     main_msg(_("-E\t\t\tImproved Ex mode"));
+      main_msg(_("-s\t\t\tSilent (batch) mode (only for \"ex\")"));
+  #ifdef FEAT_DIFF
+      main_msg(_("-d\t\t\tDiff mode (like \"vimdiff\")"));
+***************
+*** 3304,3309 ****
+--- 3305,3311 ----
+      main_msg(_("-display <display>\tRun vim on <display> (also: --display)"));
+      main_msg(_("--role <role>\tSet a unique role to identify the main window"));
+      main_msg(_("--socketid <xid>\tOpen Vim inside another GTK widget"));
++     main_msg(_("--echo-wid\t\tMake gvim echo the Window ID on stdout"));
+  #endif
+  #ifdef FEAT_GUI_W32
+      main_msg(_("-P <parent title>\tOpen Vim inside parent application"));
+*** ../vim-7.3.483/src/version.c       2012-03-28 16:49:25.000000000 +0200
+--- src/version.c      2012-03-28 17:10:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     484,
+  /**/
+
+-- 
+       In war we're tough and able.
+       Quite indefatigable
+       Between our quests
+       We sequin vests
+       And impersonate Clark Gable
+       It's a busy life in Camelot.
+       I have to push the pram a lot.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.485.patch0 b/vim/patches/vim-7.3.485.patch0
new file mode 100644 (file)
index 0000000..46b4cb7
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.485
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.485
+Problem:    When building Vim LDFLAGS isn't passed on to building xxd.
+Solution:   Pass the LDFLAGS value. (James McCoy)
+Files:     src/Makefile
+
+
+*** ../vim-7.3.484/src/Makefile        2011-12-14 20:51:19.000000000 +0100
+--- src/Makefile       2012-03-28 17:16:06.000000000 +0200
+***************
+*** 1720,1726 ****
+               sh $(srcdir)/link.sh
+  
+  xxd/xxd$(EXEEXT): xxd/xxd.c
+!      cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
+               $(MAKE) -f Makefile
+  
+  # Build the language specific files if they were unpacked.
+--- 1720,1726 ----
+               sh $(srcdir)/link.sh
+  
+  xxd/xxd$(EXEEXT): xxd/xxd.c
+!      cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
+               $(MAKE) -f Makefile
+  
+  # Build the language specific files if they were unpacked.
+*** ../vim-7.3.484/src/version.c       2012-03-28 17:10:26.000000000 +0200
+--- src/version.c      2012-03-28 17:16:15.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     485,
+  /**/
+
+-- 
+GOD: That is your purpose Arthur ... the Quest for the Holy Grail ...
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.486.patch0 b/vim/patches/vim-7.3.486.patch0
new file mode 100644 (file)
index 0000000..44e2afe
--- /dev/null
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.486
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.486
+Problem:    Build error with mingw64 on Windows 7.
+Solution:   Avoid the step of going through vimres.res. (Guopeng Wen)
+Files:     src/Make_ming.mak
+
+
+*** ../vim-7.3.485/src/Make_ming.mak   2012-02-29 16:56:35.000000000 +0100
+--- src/Make_ming.mak  2012-03-28 17:41:55.000000000 +0200
+***************
+*** 681,691 ****
+  $(OUTDIR)/%.o : %.c $(INCL)
+       $(CC) -c $(CFLAGS) $< -o $@
+  
+! $(OUTDIR)/vimres.res: vim.rc version.h gui_w32_rc.h
+!      $(WINDRES) $(WINDRES_FLAGS) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
+! 
+! $(OUTDIR)/vimrc.o: $(OUTDIR)/vimres.res
+!      $(WINDRES) $(WINDRES_FLAGS) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
+  
+  $(OUTDIR):
+       $(MKDIR) $(OUTDIR)
+--- 681,689 ----
+  $(OUTDIR)/%.o : %.c $(INCL)
+       $(CC) -c $(CFLAGS) $< -o $@
+  
+! $(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
+!      $(WINDRES) $(WINDRES_FLAGS) $(DEFINES) \
+!          --input-format=rc --output-format=coff -i vim.rc -o $@
+  
+  $(OUTDIR):
+       $(MKDIR) $(OUTDIR)
+*** ../vim-7.3.485/src/version.c       2012-03-28 17:17:45.000000000 +0200
+--- src/version.c      2012-03-28 17:42:25.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     486,
+  /**/
+
+-- 
+There is a fine line between courage and foolishness.
+Unfortunately, it's not a fence.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.487.patch0 b/vim/patches/vim-7.3.487.patch0
new file mode 100644 (file)
index 0000000..3c00349
--- /dev/null
@@ -0,0 +1,572 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.487
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.487
+Problem:    When setting 'timeoutlen' or 'ttimeoutlen' the column for vertical
+           movement is reset unnecessarily.
+Solution:   Do not set w_set_curswant for every option. Add a test for this.
+           (Kana Natsuno) Add the P_CURSWANT flag for options.
+Files:     src/option.c, src/testdir/test84.in, src/testdir/test84.ok,
+           src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
+           src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
+           src/testdir/Make_vms.mms, src/testdir/Makefile
+
+
+*** ../vim-7.3.486/src/option.c        2012-03-23 16:25:13.000000000 +0100
+--- src/option.c       2012-03-28 19:57:46.000000000 +0200
+***************
+*** 433,449 ****
+  #define P_RCLR               0x7000  /* clear and redraw all */
+  
+  #define P_COMMA              0x8000  /* comma separated list */
+! #define P_NODUP              0x10000L/* don't allow duplicate strings */
+! #define P_FLAGLIST   0x20000L/* list of single-char flags */
+  
+! #define P_SECURE     0x40000L/* cannot change in modeline or secure mode */
+! #define P_GETTEXT    0x80000L/* expand default value with _() */
+! #define P_NOGLOB       0x100000L/* do not use local value for global vimrc */
+! #define P_NFNAME       0x200000L/* only normal file name chars allowed */
+! #define P_INSECURE     0x400000L/* option was set from a modeline */
+! #define P_PRI_MKRC     0x800000L/* priority for :mkvimrc (setting option has
+                                  side effects) */
+! #define P_NO_ML       0x1000000L/* not allowed in modeline */
+  
+  #define ISK_LATIN1  (char_u *)"@,48-57,_,192-255"
+  
+--- 433,451 ----
+  #define P_RCLR               0x7000  /* clear and redraw all */
+  
+  #define P_COMMA              0x8000  /* comma separated list */
+! #define P_NODUP              0x10000L /* don't allow duplicate strings */
+! #define P_FLAGLIST   0x20000L /* list of single-char flags */
+  
+! #define P_SECURE     0x40000L /* cannot change in modeline or secure mode */
+! #define P_GETTEXT    0x80000L /* expand default value with _() */
+! #define P_NOGLOB       0x100000L /* do not use local value for global vimrc */
+! #define P_NFNAME       0x200000L /* only normal file name chars allowed */
+! #define P_INSECURE     0x400000L /* option was set from a modeline */
+! #define P_PRI_MKRC     0x800000L /* priority for :mkvimrc (setting option has
+                                  side effects) */
+! #define P_NO_ML       0x1000000L /* not allowed in modeline */
+! #define P_CURSWANT    0x2000000L /* update curswant required; not needed when
+!                                * there is a redraw flag */
+  
+  #define ISK_LATIN1  (char_u *)"@,48-57,_,192-255"
+  
+***************
+*** 479,485 ****
+  #endif
+       options[] =
+  {
+!     {"aleph",            "al",   P_NUM|P_VI_DEF,
+  #ifdef FEAT_RIGHTLEFT
+                           (char_u *)&p_aleph, PV_NONE,
+  #else
+--- 481,487 ----
+  #endif
+       options[] =
+  {
+!     {"aleph",            "al",   P_NUM|P_VI_DEF|P_CURSWANT,
+  #ifdef FEAT_RIGHTLEFT
+                           (char_u *)&p_aleph, PV_NONE,
+  #else
+***************
+*** 501,507 ****
+                           {(char_u *)FALSE, (char_u *)FALSE}
+  #endif
+                           SCRIPTID_INIT},
+!     {"arabic",           "arab", P_BOOL|P_VI_DEF|P_VIM,
+  #ifdef FEAT_ARABIC
+                           (char_u *)VAR_WIN, PV_ARAB,
+  #else
+--- 503,509 ----
+                           {(char_u *)FALSE, (char_u *)FALSE}
+  #endif
+                           SCRIPTID_INIT},
+!     {"arabic",           "arab", P_BOOL|P_VI_DEF|P_VIM|P_CURSWANT,
+  #ifdef FEAT_ARABIC
+                           (char_u *)VAR_WIN, PV_ARAB,
+  #else
+***************
+*** 778,784 ****
+      {"columns",          "co",   P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR,
+                           (char_u *)&Columns, PV_NONE,
+                           {(char_u *)80L, (char_u *)0L} SCRIPTID_INIT},
+!     {"comments",    "com",  P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP,
+  #ifdef FEAT_COMMENTS
+                           (char_u *)&p_com, PV_COM,
+                           {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-",
+--- 780,786 ----
+      {"columns",          "co",   P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR,
+                           (char_u *)&Columns, PV_NONE,
+                           {(char_u *)80L, (char_u *)0L} SCRIPTID_INIT},
+!     {"comments",    "com",  P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP|P_CURSWANT,
+  #ifdef FEAT_COMMENTS
+                           (char_u *)&p_com, PV_COM,
+                           {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-",
+***************
+*** 788,794 ****
+                           {(char_u *)0L, (char_u *)0L}
+  #endif
+                           SCRIPTID_INIT},
+!     {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF,
+  #ifdef FEAT_FOLDING
+                           (char_u *)&p_cms, PV_CMS,
+                           {(char_u *)"/*%s*/", (char_u *)0L}
+--- 790,796 ----
+                           {(char_u *)0L, (char_u *)0L}
+  #endif
+                           SCRIPTID_INIT},
+!     {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
+  #ifdef FEAT_FOLDING
+                           (char_u *)&p_cms, PV_CMS,
+                           {(char_u *)"/*%s*/", (char_u *)0L}
+***************
+*** 953,959 ****
+      {"debug",            NULL,   P_STRING|P_VI_DEF,
+                           (char_u *)&p_debug, PV_NONE,
+                           {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+!     {"define",           "def",  P_STRING|P_ALLOCED|P_VI_DEF,
+  #ifdef FEAT_FIND_ID
+                           (char_u *)&p_def, PV_DEF,
+                           {(char_u *)"^\\s*#\\s*define", (char_u *)0L}
+--- 955,961 ----
+      {"debug",            NULL,   P_STRING|P_VI_DEF,
+                           (char_u *)&p_debug, PV_NONE,
+                           {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+!     {"define",           "def",  P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
+  #ifdef FEAT_FIND_ID
+                           (char_u *)&p_def, PV_DEF,
+                           {(char_u *)"^\\s*#\\s*define", (char_u *)0L}
+***************
+*** 983,989 ****
+                           (char_u *)NULL, PV_NONE,
+  #endif
+                           {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+!     {"diffexpr",    "dex",  P_STRING|P_VI_DEF|P_SECURE,
+  #if defined(FEAT_DIFF) && defined(FEAT_EVAL)
+                           (char_u *)&p_dex, PV_NONE,
+                           {(char_u *)"", (char_u *)0L}
+--- 985,991 ----
+                           (char_u *)NULL, PV_NONE,
+  #endif
+                           {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+!     {"diffexpr",    "dex",  P_STRING|P_VI_DEF|P_SECURE|P_CURSWANT,
+  #if defined(FEAT_DIFF) && defined(FEAT_EVAL)
+                           (char_u *)&p_dex, PV_NONE,
+                           {(char_u *)"", (char_u *)0L}
+***************
+*** 1099,1105 ****
+                           {(char_u *)0L, (char_u *)0L}
+  #endif
+                           SCRIPTID_INIT},
+!     {"fileformat",  "ff",   P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC,
+                           (char_u *)&p_ff, PV_FF,
+                           {(char_u *)DFLT_FF, (char_u *)0L} SCRIPTID_INIT},
+      {"fileformats", "ffs",  P_STRING|P_VIM|P_COMMA|P_NODUP,
+--- 1101,1107 ----
+                           {(char_u *)0L, (char_u *)0L}
+  #endif
+                           SCRIPTID_INIT},
+!     {"fileformat",  "ff",   P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC|P_CURSWANT,
+                           (char_u *)&p_ff, PV_FF,
+                           {(char_u *)DFLT_FF, (char_u *)0L} SCRIPTID_INIT},
+      {"fileformats", "ffs",  P_STRING|P_VIM|P_COMMA|P_NODUP,
+***************
+*** 1159,1165 ****
+      {"foldlevel",   "fdl",  P_NUM|P_VI_DEF|P_RWIN,
+                           (char_u *)VAR_WIN, PV_FDL,
+                           {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+!     {"foldlevelstart","fdls", P_NUM|P_VI_DEF,
+                           (char_u *)&p_fdls, PV_NONE,
+                           {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT},
+      {"foldmarker",  "fmr",  P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|
+--- 1161,1167 ----
+      {"foldlevel",   "fdl",  P_NUM|P_VI_DEF|P_RWIN,
+                           (char_u *)VAR_WIN, PV_FDL,
+                           {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+!     {"foldlevelstart","fdls", P_NUM|P_VI_DEF|P_CURSWANT,
+                           (char_u *)&p_fdls, PV_NONE,
+                           {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT},
+      {"foldmarker",  "fmr",  P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|
+***************
+*** 1176,1182 ****
+      {"foldnestmax", "fdn",  P_NUM|P_VI_DEF|P_RWIN,
+                           (char_u *)VAR_WIN, PV_FDN,
+                           {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT},
+!     {"foldopen",    "fdo",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+                           (char_u *)&p_fdo, PV_NONE,
+                {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo",
+                                                (char_u *)0L} SCRIPTID_INIT},
+--- 1178,1184 ----
+      {"foldnestmax", "fdn",  P_NUM|P_VI_DEF|P_RWIN,
+                           (char_u *)VAR_WIN, PV_FDN,
+                           {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT},
+!     {"foldopen",    "fdo",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_CURSWANT,
+                           (char_u *)&p_fdo, PV_NONE,
+                {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo",
+                                                (char_u *)0L} SCRIPTID_INIT},
+***************
+*** 1741,1747 ****
+      {"matchtime",   "mat",  P_NUM|P_VI_DEF,
+                           (char_u *)&p_mat, PV_NONE,
+                           {(char_u *)5L, (char_u *)0L} SCRIPTID_INIT},
+!     {"maxcombine",  "mco",  P_NUM|P_VI_DEF,
+  #ifdef FEAT_MBYTE
+                           (char_u *)&p_mco, PV_NONE,
+  #else
+--- 1743,1749 ----
+      {"matchtime",   "mat",  P_NUM|P_VI_DEF,
+                           (char_u *)&p_mat, PV_NONE,
+                           {(char_u *)5L, (char_u *)0L} SCRIPTID_INIT},
+!     {"maxcombine",  "mco",  P_NUM|P_VI_DEF|P_CURSWANT,
+  #ifdef FEAT_MBYTE
+                           (char_u *)&p_mco, PV_NONE,
+  #else
+***************
+*** 2710,2716 ****
+                           {(char_u *)0L, (char_u *)0L}
+  #endif
+                           SCRIPTID_INIT},
+!     {"virtualedit", "ve",   P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM,
+  #ifdef FEAT_VIRTUALEDIT
+                           (char_u *)&p_ve, PV_NONE,
+                           {(char_u *)"", (char_u *)""}
+--- 2712,2718 ----
+                           {(char_u *)0L, (char_u *)0L}
+  #endif
+                           SCRIPTID_INIT},
+!     {"virtualedit", "ve",   P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM|P_CURSWANT,
+  #ifdef FEAT_VIRTUALEDIT
+                           (char_u *)&p_ve, PV_NONE,
+                           {(char_u *)"", (char_u *)""}
+***************
+*** 7064,7071 ****
+      }
+  #endif
+  
+!     if (curwin->w_curswant != MAXCOL)
+!      curwin->w_set_curswant = TRUE;  /* in case 'showbreak' changed */
+  #ifdef FEAT_GUI
+      /* check redraw when it's not a GUI option or the GUI is active. */
+      if (!redraw_gui_only || gui.in_use)
+--- 7066,7075 ----
+      }
+  #endif
+  
+!     if (curwin->w_curswant != MAXCOL
+!                   && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
+!      curwin->w_set_curswant = TRUE;
+! 
+  #ifdef FEAT_GUI
+      /* check redraw when it's not a GUI option or the GUI is active. */
+      if (!redraw_gui_only || gui.in_use)
+***************
+*** 7587,7595 ****
+         || (int *)varp == &curwin->w_p_nu
+         || (int *)varp == &curwin->w_p_rnu)
+      {
+-      if (curwin->w_curswant != MAXCOL)
+-          curwin->w_set_curswant = TRUE;
+- 
+       /* If 'number' is set, reset 'relativenumber'. */
+       /* If 'relativenumber' is set, reset 'number'. */
+       if ((int *)varp == &curwin->w_p_nu && curwin->w_p_nu)
+--- 7591,7596 ----
+***************
+*** 7834,7841 ****
+      {
+       if (curwin->w_p_wrap)
+           curwin->w_leftcol = 0;
+-      if (curwin->w_curswant != MAXCOL)
+-          curwin->w_set_curswant = TRUE;
+      }
+  
+  #ifdef FEAT_WINDOWS
+--- 7835,7840 ----
+***************
+*** 8062,8092 ****
+           curbuf->b_p_imsearch = B_IMODE_USE_INSERT;
+  # endif
+       }
+-      if (curwin->w_curswant != MAXCOL)
+-          curwin->w_set_curswant = TRUE;
+      }
+  
+-     else if ((int *)varp == &p_arshape)
+-     {
+-      if (curwin->w_curswant != MAXCOL)
+-          curwin->w_set_curswant = TRUE;
+-     }
+- #endif
+- 
+- #ifdef FEAT_LINEBREAK
+-     if ((int *)varp == &curwin->w_p_lbr)
+-     {
+-      if (curwin->w_curswant != MAXCOL)
+-          curwin->w_set_curswant = TRUE;
+-     }
+- #endif
+- 
+- #ifdef FEAT_RIGHTLEFT
+-     if ((int *)varp == &curwin->w_p_rl)
+-     {
+-      if (curwin->w_curswant != MAXCOL)
+-          curwin->w_set_curswant = TRUE;
+-     }
+  #endif
+  
+      /*
+--- 8061,8068 ----
+***************
+*** 8096,8102 ****
+      options[opt_idx].flags |= P_WAS_SET;
+  
+      comp_col();                          /* in case 'ruler' or 'showcmd' changed */
+! 
+      check_redraw(options[opt_idx].flags);
+  
+      return NULL;
+--- 8072,8080 ----
+      options[opt_idx].flags |= P_WAS_SET;
+  
+      comp_col();                          /* in case 'ruler' or 'showcmd' changed */
+!     if (curwin->w_curswant != MAXCOL
+!                   && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
+!      curwin->w_set_curswant = TRUE;
+      check_redraw(options[opt_idx].flags);
+  
+      return NULL;
+***************
+*** 8611,8618 ****
+      options[opt_idx].flags |= P_WAS_SET;
+  
+      comp_col();                          /* in case 'columns' or 'ls' changed */
+!     if (curwin->w_curswant != MAXCOL)
+!      curwin->w_set_curswant = TRUE;  /* in case 'tabstop' changed */
+      check_redraw(options[opt_idx].flags);
+  
+      return errmsg;
+--- 8589,8597 ----
+      options[opt_idx].flags |= P_WAS_SET;
+  
+      comp_col();                          /* in case 'columns' or 'ls' changed */
+!     if (curwin->w_curswant != MAXCOL
+!                   && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
+!      curwin->w_set_curswant = TRUE;
+      check_redraw(options[opt_idx].flags);
+  
+      return errmsg;
+*** ../vim-7.3.486/src/testdir/test84.in       2012-03-28 19:55:12.000000000 +0200
+--- src/testdir/test84.in      2012-03-28 19:46:53.000000000 +0200
+***************
+*** 0 ****
+--- 1,35 ----
++ Tests for curswant not changing when setting an option
++ 
++ STARTTEST
++ :so small.vim
++ :/^start target options$/+1,/^end target options$/-1 yank
++ :let target_option_names = split(@0)
++ :function TestCurswant(option_name)
++ :  normal! ggf8j
++ :  let curswant_before = winsaveview().curswant
++ :  execute 'let' '&'.a:option_name '=' '&'.a:option_name
++ :  let curswant_after = winsaveview().curswant
++ :  return [a:option_name, curswant_before, curswant_after]
++ :endfunction
++ :
++ :new
++ :put =['1234567890', '12345']
++ :1 delete _
++ :let result = []
++ :for option_name in target_option_names
++ :  call add(result, TestCurswant(option_name))
++ :endfor
++ :
++ :new
++ :put =map(copy(result), 'join(v:val, '' '')')
++ :1 delete _
++ :write test.out
++ :
++ :qall!
++ ENDTEST
++ 
++ start target options
++      tabstop
++      timeoutlen
++      ttimeoutlen
++ end target options
+*** ../vim-7.3.486/src/testdir/test84.ok       2012-03-28 19:55:12.000000000 +0200
+--- src/testdir/test84.ok      2012-03-28 19:48:36.000000000 +0200
+***************
+*** 0 ****
+--- 1,3 ----
++ tabstop 7 4
++ timeoutlen 7 7
++ ttimeoutlen 7 7
+*** ../vim-7.3.486/src/testdir/Make_amiga.mak  2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Make_amiga.mak 2012-03-28 18:14:08.000000000 +0200
+***************
+*** 29,35 ****
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out test82.out test83.out
+  
+  .SUFFIXES: .in .out
+  
+--- 29,35 ----
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out test82.out test83.out test84.out
+  
+  .SUFFIXES: .in .out
+  
+***************
+*** 132,134 ****
+--- 132,135 ----
+  test81.out: test81.in
+  test82.out: test82.in
+  test83.out: test83.in
++ test84.out: test84.in
+*** ../vim-7.3.486/src/testdir/Make_dos.mak    2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Make_dos.mak   2012-03-28 18:14:41.000000000 +0200
+***************
+*** 29,35 ****
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out test83.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 29,36 ----
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out test83.out \
+!              test84.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.486/src/testdir/Make_ming.mak   2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Make_ming.mak  2012-03-28 18:14:46.000000000 +0200
+***************
+*** 49,55 ****
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out test83.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 49,56 ----
+               test42.out test52.out test65.out test66.out test67.out \
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out test83.out \
+!              test84.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.486/src/testdir/Make_os2.mak    2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Make_os2.mak   2012-03-28 18:15:00.000000000 +0200
+***************
+*** 29,35 ****
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out test82.out test83.out
+  
+  .SUFFIXES: .in .out
+  
+--- 29,35 ----
+               test66.out test67.out test68.out test69.out test70.out \
+               test71.out test72.out test73.out test74.out test75.out \
+               test76.out test77.out test78.out test79.out test80.out \
+!              test81.out test82.out test83.out test84.out
+  
+  .SUFFIXES: .in .out
+  
+*** ../vim-7.3.486/src/testdir/Make_vms.mms    2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Make_vms.mms   2012-03-28 18:15:15.000000000 +0200
+***************
+*** 4,10 ****
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2011 Jul 15
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2012 Mar 28
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+***************
+*** 76,82 ****
+        test66.out test67.out test68.out test69.out \
+        test71.out test72.out test74.out test75.out test76.out \
+        test77.out test78.out test79.out test80.out test81.out \
+!       test82.out test83.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+--- 76,82 ----
+        test66.out test67.out test68.out test69.out \
+        test71.out test72.out test74.out test75.out test76.out \
+        test77.out test78.out test79.out test80.out test81.out \
+!       test82.out test83.out test84.out
+  
+  # Known problems:
+  # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.486/src/testdir/Makefile        2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Makefile       2012-03-28 18:15:29.000000000 +0200
+***************
+*** 26,32 ****
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out test83.out
+  
+  SCRIPTS_GUI = test16.out
+  
+--- 26,33 ----
+               test64.out test65.out test66.out test67.out test68.out \
+               test69.out test70.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+!              test79.out test80.out test81.out test82.out test83.out \
+!              test84.out
+  
+  SCRIPTS_GUI = test16.out
+  
+*** ../vim-7.3.486/src/version.c       2012-03-28 17:43:06.000000000 +0200
+--- src/version.c      2012-03-28 19:49:41.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     487,
+  /**/
+
+-- 
+"Time flies like an arrow".  So I put an arrow on my desk, now
+awaiting one of these time flies showing up.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.488.patch0 b/vim/patches/vim-7.3.488.patch0
new file mode 100644 (file)
index 0000000..e078740
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.488
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.488
+Problem:    ":help!" in a help file does not work as document.
+Solution:   When in a help file don't give an error message. (thinca)
+Files:     src/ex_cmds.c
+
+
+*** ../vim-7.3.487/src/ex_cmds.c       2012-03-16 14:32:10.000000000 +0100
+--- src/ex_cmds.c      2012-04-01 14:25:35.000000000 +0200
+***************
+*** 5546,5552 ****
+       }
+       arg = eap->arg;
+  
+!      if (eap->forceit && *arg == NUL)
+       {
+           EMSG(_("E478: Don't panic!"));
+           return;
+--- 5546,5552 ----
+       }
+       arg = eap->arg;
+  
+!      if (eap->forceit && *arg == NUL && !curbuf->b_help)
+       {
+           EMSG(_("E478: Don't panic!"));
+           return;
+*** ../vim-7.3.487/src/version.c       2012-03-28 19:58:34.000000000 +0200
+--- src/version.c      2012-04-05 16:04:13.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     488,
+  /**/
+
+
+-- 
+I'd like to meet the man who invented sex and see what he's working on now.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.489.patch0 b/vim/patches/vim-7.3.489.patch0
new file mode 100644 (file)
index 0000000..fbdf2c3
--- /dev/null
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.489
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.489
+Problem:    CTRL-] in Insert mode does not expand abbreviation when used in a
+           mapping. (Yichao Zhou)
+Solution:   Special case using CTRL-]. (Christian Brabandt)
+Files:     src/getchar.c, src/edit.c
+
+
+*** ../vim-7.3.488/src/getchar.c       2012-02-05 22:05:44.000000000 +0100
+--- src/getchar.c      2012-04-05 15:54:00.000000000 +0200
+***************
+*** 4352,4359 ****
+  
+      if (typebuf.tb_no_abbr_cnt)      /* abbrev. are not recursive */
+       return FALSE;
+!     if ((KeyNoremap & (RM_NONE|RM_SCRIPT)) != 0)
+!      /* no remapping implies no abbreviation */
+       return FALSE;
+  
+      /*
+--- 4352,4360 ----
+  
+      if (typebuf.tb_no_abbr_cnt)      /* abbrev. are not recursive */
+       return FALSE;
+! 
+!     /* no remapping implies no abbreviation, except for CTRL-] */
+!     if ((KeyNoremap & (RM_NONE|RM_SCRIPT)) != 0 && c != Ctrl_RSB)
+       return FALSE;
+  
+      /*
+*** ../vim-7.3.488/src/edit.c  2012-02-29 18:22:03.000000000 +0100
+--- src/edit.c 2012-04-05 15:57:46.000000000 +0200
+***************
+*** 1455,1467 ****
+                   Insstart_blank_vcol = get_nolist_virtcol();
+           }
+  
+!          if (vim_iswordc(c) || !echeck_abbr(
+  #ifdef FEAT_MBYTE
+                       /* Add ABBR_OFF for characters above 0x100, this is
+                        * what check_abbr() expects. */
+                       (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
+  #endif
+!                      c))
+           {
+               insert_special(c, FALSE, FALSE);
+  #ifdef FEAT_RIGHTLEFT
+--- 1455,1470 ----
+                   Insstart_blank_vcol = get_nolist_virtcol();
+           }
+  
+!          /* Insert a normal character and check for abbreviations on a
+!           * special character.  Let CTRL-] expand abbreviations without
+!           * inserting it. */
+!          if (vim_iswordc(c) || (!echeck_abbr(
+  #ifdef FEAT_MBYTE
+                       /* Add ABBR_OFF for characters above 0x100, this is
+                        * what check_abbr() expects. */
+                       (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
+  #endif
+!                        c) && c != Ctrl_RSB))
+           {
+               insert_special(c, FALSE, FALSE);
+  #ifdef FEAT_RIGHTLEFT
+*** ../vim-7.3.488/src/version.c       2012-04-05 16:04:58.000000000 +0200
+--- src/version.c      2012-04-05 16:06:12.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     489,
+  /**/
+
+-- 
+Just think of all the things we haven't thought of yet.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.490.patch0 b/vim/patches/vim-7.3.490.patch0
new file mode 100644 (file)
index 0000000..6c49a48
--- /dev/null
@@ -0,0 +1,2517 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.490
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.490
+Problem:    Member confusion in Lua interface.
+Solution:   Fix it.  Add luaeval(). (Taro Muraoka, Luis Carvalho)
+Files:     runtime/doc/if_lua.txt, src/eval.c, src/if_lua.c,
+           src/proto/if_lua.pro
+
+
+*** ../vim-7.3.489/runtime/doc/if_lua.txt      2010-08-15 21:57:14.000000000 +0200
+--- runtime/doc/if_lua.txt     2012-04-05 16:41:35.000000000 +0200
+***************
+*** 1,4 ****
+! *if_lua.txt*    For Vim version 7.3.  Last change: 2010 Jul 22
+  
+  
+                 VIM REFERENCE MANUAL    by Luis Carvalho
+--- 1,4 ----
+! *if_lua.txt*    For Vim version 7.3.  Last change: 2012 Jan 16
+  
+  
+                 VIM REFERENCE MANUAL    by Luis Carvalho
+***************
+*** 8,15 ****
+  
+  1. Commands                  |lua-commands|
+  2. The vim module            |lua-vim|
+! 3. Buffer userdata           |lua-buffer|
+! 4. Window userdata           |lua-window|
+  
+  {Vi does not have any of these commands}
+  
+--- 8,18 ----
+  
+  1. Commands                  |lua-commands|
+  2. The vim module            |lua-vim|
+! 3. List userdata             |lua-list|
+! 4. Dict userdata             |lua-dict|
+! 5. Buffer userdata           |lua-buffer|
+! 6. Window userdata           |lua-window|
+! 7. The luaeval function              |lua-luaeval|
+  
+  {Vi does not have any of these commands}
+  
+***************
+*** 88,98 ****
+  All these commands execute a Lua chunk from either the command line (:lua and
+  :luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
+  interpreter, each chunk has its own scope and so only global variables are
+! shared between command calls. Lua default libraries "table", "string", "math",
+! and "package" are available, "io" and "debug" are not, and "os" is restricted
+! to functions "date", "clock", "time", "difftime", and "getenv". In addition,
+! Lua "print" function has its output redirected to the Vim message area, with
+! arguments separated by a white space instead of a tab.
+  
+  Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
+  and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
+--- 91,99 ----
+  All these commands execute a Lua chunk from either the command line (:lua and
+  :luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
+  interpreter, each chunk has its own scope and so only global variables are
+! shared between command calls. All Lua default libraries are available. In
+! addition, Lua "print" function has its output redirected to the Vim message
+! area, with arguments separated by a white space instead of a tab.
+  
+  Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
+  and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
+***************
+*** 108,116 ****
+  module also includes routines for buffer, window, and current line queries,
+  Vim evaluation and command execution, and others.
+  
+!      vim.isbuffer(value)     Returns 'true' (boolean, not string) if
+!                              "value" is a buffer userdata and 'false'
+!                              otherwise (see |lua-buffer|).
+  
+       vim.buffer([arg])       If "arg" is a number, returns buffer with
+                               number "arg" in the buffer list or, if "arg"
+--- 109,117 ----
+  module also includes routines for buffer, window, and current line queries,
+  Vim evaluation and command execution, and others.
+  
+!      vim.list()              Returns an empty list (see |List|).
+! 
+!      vim.dict()              Returns an empty dictionary (see |Dictionary|).
+  
+       vim.buffer([arg])       If "arg" is a number, returns buffer with
+                               number "arg" in the buffer list or, if "arg"
+***************
+*** 121,136 ****
+                               'true' returns the first buffer in the buffer
+                               list or else the current buffer.
+  
+-      vim.iswindow(value)     Returns 'true' (boolean, not string) if
+-                              "value" is a window userdata and
+-                              'false' otherwise (see |lua-window|).
+- 
+       vim.window([arg])       If "arg" is a number, returns window with
+                               number "arg" or 'nil' (nil value, not string)
+                               if not found. Otherwise, if "toboolean(arg)"
+                               is 'true' returns the first window or else the
+                               current window.
+  
+       vim.command({cmd})      Executes the vim (ex-mode) command {cmd}.
+                               Examples: >
+                                       :lua vim.command"set tw=60"
+--- 122,142 ----
+                               'true' returns the first buffer in the buffer
+                               list or else the current buffer.
+  
+       vim.window([arg])       If "arg" is a number, returns window with
+                               number "arg" or 'nil' (nil value, not string)
+                               if not found. Otherwise, if "toboolean(arg)"
+                               is 'true' returns the first window or else the
+                               current window.
+  
++      vim.type({arg})         Returns the type of {arg}. It is equivalent to
++                              Lua's "type" function, but returns "list",
++                              "dict", "buffer", or "window" if {arg} is a
++                              list, dictionary, buffer, or window,
++                              respectively. Examples: >
++                                      :lua l = vim.list()
++                                      :lua print(type(l), vim.type(l))
++                                      :" userdata list
++ <
+       vim.command({cmd})      Executes the vim (ex-mode) command {cmd}.
+                               Examples: >
+                                       :lua vim.command"set tw=60"
+***************
+*** 141,147 ****
+                               Vim strings and numbers are directly converted
+                               to Lua strings and numbers respectively. Vim
+                               lists and dictionaries are converted to Lua
+!                              tables (lists become integer-keyed tables).
+                               Examples: >
+                                       :lua tw = vim.eval"&tw"
+                                       :lua print(vim.eval"{'a': 'one'}".a)
+--- 147,153 ----
+                               Vim strings and numbers are directly converted
+                               to Lua strings and numbers respectively. Vim
+                               lists and dictionaries are converted to Lua
+!                              userdata (see |lua-list| and |lua-dict|).
+                               Examples: >
+                                       :lua tw = vim.eval"&tw"
+                                       :lua print(vim.eval"{'a': 'one'}".a)
+***************
+*** 157,163 ****
+  
+  
+  ==============================================================================
+! 3. Buffer userdata                                   *lua-buffer*
+  
+  Buffer userdata represent vim buffers. A buffer userdata "b" has the following
+  properties and methods:
+--- 163,234 ----
+  
+  
+  ==============================================================================
+! 3. List userdata                                     *lua-list*
+! 
+! List userdata represent vim lists, and the interface tries to follow closely
+! Vim's syntax for lists. Since lists are objects, changes in list references in
+! Lua are reflected in Vim and vice-versa. A list "l" has the following
+! properties and methods:
+! 
+! Properties
+! ----------
+!      o "#l" is the number of items in list "l", equivalent to "len(l)"
+!          in Vim.
+!      o "l[k]" returns the k-th item in "l"; "l" is zero-indexed, as in Vim.
+!          To modify the k-th item, simply do "l[k] = newitem"; in
+!          particular, "l[k] = nil" removes the k-th item from "l".
+!      o "l()" returns an iterator for "l".
+! 
+! Methods
+! -------
+!      o "l:add(item)" appends "item" to the end of "l".
+!      o "l:insert(item[, pos])" inserts "item" at (optional)
+!          position "pos" in the list. The default value for "pos" is 0.
+! 
+! Examples:
+! >
+!      :let l = [1, 'item']
+!      :lua l = vim.eval('l') -- same 'l'
+!      :lua l:add(vim.list())
+!      :lua l[0] = math.pi
+!      :echo l[0] " 3.141593
+!      :lua l[0] = nil -- remove first item
+!      :lua l:insert(true, 1)
+!      :lua print(l, #l, l[0], l[1], l[-1])
+!      :lua for item in l() do print(item) end
+! <
+! 
+! ==============================================================================
+! 4. Dict userdata                                     *lua-dict*
+! 
+! Similarly to list userdata, dict userdata represent vim dictionaries; since
+! dictionaries are also objects, references are kept between Lua and Vim. A dict
+! "d" has the following properties:
+! 
+! Properties
+! ----------
+!      o "#d" is the number of items in dict "d", equivalent to "len(d)"
+!          in Vim.
+!      o "d.key" or "d['key']" returns the value at entry "key" in "d".
+!          To modify the entry at this key, simply do "d.key = newvalue"; in
+!          particular, "d.key = nil" removes the entry from "d".
+!      o "d()" returns an iterator for "d" and is equivalent to "items(d)" in
+!          Vim.
+! 
+! Examples:
+! >
+!      :let d = {'n':10}
+!      :lua d = vim.eval('d') -- same 'd'
+!      :lua print(d, d.n, #d)
+!      :let d.self = d
+!      :lua for k, v in d() do print(d, k, v) end
+!      :lua d.x = math.pi
+!      :lua d.self = nil -- remove entry
+!      :echo d
+! <
+! 
+! ==============================================================================
+! 5. Buffer userdata                                   *lua-buffer*
+  
+  Buffer userdata represent vim buffers. A buffer userdata "b" has the following
+  properties and methods:
+***************
+*** 209,215 ****
+  <
+  
+  ==============================================================================
+! 4. Window userdata                                   *lua-window*
+  
+  Window objects represent vim windows. A window userdata "w" has the following
+  properties and methods:
+--- 280,286 ----
+  <
+  
+  ==============================================================================
+! 6. Window userdata                                   *lua-window*
+  
+  Window objects represent vim windows. A window userdata "w" has the following
+  properties and methods:
+***************
+*** 241,244 ****
+  <
+  
+  ==============================================================================
+!  vim:tw=78:ts=8:ft=help:norl:
+--- 312,340 ----
+  <
+  
+  ==============================================================================
+! 7. The luaeval function                                      *lua-luaeval*
+! 
+! The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
+! "luaeval". "luaeval" takes an expression string and an optional argument and
+! returns the result of the expression. It is semantically equivalent in Lua to:
+! >
+!      local chunkheader = "local _A = select(1, ...) return "
+!      function luaeval (expstr, arg)
+!          local chunk = assert(loadstring(chunkheader .. expstr, "luaeval"))
+!          return chunk(arg) -- return typval
+!      end
+! <
+! Note that "_A" receives the argument to "luaeval". Examples: >
+! 
+!      :echo luaeval('math.pi')
+!      :lua a = vim.list():add('newlist')
+!      :let a = luaeval('a')
+!      :echo a[0] " 'newlist'
+!      :function Rand(x,y) " random uniform between x and y
+!      :  return luaeval('(_A.y-_A.x)*math.random()+_A.x', {'x':a:x,'y':a:y})
+!      :  endfunction
+!      :echo Rand(1,10)
+! 
+! 
+! ==============================================================================
+!  vim:tw=78:ts=8:noet:ft=help:norl:
+*** ../vim-7.3.489/src/eval.c  2012-03-28 16:49:25.000000000 +0200
+--- src/eval.c 2012-04-05 16:41:35.000000000 +0200
+***************
+*** 622,627 ****
+--- 622,630 ----
+  static void f_log __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_log10 __ARGS((typval_T *argvars, typval_T *rettv));
+  #endif
++ #ifdef FEAT_LUA
++ static void f_luaeval __ARGS((typval_T *argvars, typval_T *rettv));
++ #endif
+  static void f_map __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_maparg __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_mapcheck __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 6777,6782 ****
+--- 6780,6789 ----
+      /* v: vars */
+      set_ref_in_ht(&vimvarht, copyID);
+  
++ #ifdef FEAT_LUA
++     set_ref_in_lua(copyID);
++ #endif
++ 
+      /*
+       * 2. Free lists and dictionaries that are not referenced.
+       */
+***************
+*** 7946,7951 ****
+--- 7953,7961 ----
+      {"log",          1, 1, f_log},
+      {"log10",                1, 1, f_log10},
+  #endif
++ #ifdef FEAT_LUA
++     {"luaeval",         1, 2, f_luaeval},
++ #endif
+      {"map",          2, 2, f_map},
+      {"maparg",               1, 4, f_maparg},
+      {"mapcheck",     1, 3, f_mapcheck},
+***************
+*** 13626,13631 ****
+--- 13636,13658 ----
+  }
+  #endif
+  
++ #ifdef FEAT_LUA
++ /*
++  * "luaeval()" function
++  */
++     static void
++ f_luaeval(argvars, rettv)
++     typval_T *argvars;
++     typval_T *rettv;
++ {
++     char_u   *str;
++     char_u   buf[NUMBUFLEN];
++ 
++     str = get_tv_string_buf(&argvars[0], buf);
++     do_luaeval(str, argvars + 1, rettv);
++ }
++ #endif
++ 
+  /*
+   * "map()" function
+   */
+*** ../vim-7.3.489/src/if_lua.c        2011-12-08 16:00:12.000000000 +0100
+--- src/if_lua.c       2012-04-05 16:41:35.000000000 +0200
+***************
+*** 1,4 ****
+! /* vi:set ts=8 sts=4 sw=4:
+   *
+   * VIM - Vi IMproved by Bram Moolenaar
+   *
+--- 1,4 ----
+! /* vi:set ts=8 sts=4 sw=4 noet:
+   *
+   * VIM - Vi IMproved by Bram Moolenaar
+   *
+***************
+*** 21,35 ****
+--- 21,53 ----
+  
+  #define LUAVIM_CHUNKNAME "vim chunk"
+  #define LUAVIM_NAME "vim"
++ #define LUAVIM_EVALNAME "luaeval"
++ #define LUAVIM_EVALHEADER "local _A=select(1,...) return "
+  
+  typedef buf_T *luaV_Buffer;
+  typedef win_T *luaV_Window;
++ typedef dict_T *luaV_Dict;
++ typedef list_T *luaV_List;
+  typedef void (*msgfunc_T)(char_u *);
+  
++ static const char LUAVIM_DICT[] = "dict";
++ static const char LUAVIM_LIST[] = "list";
+  static const char LUAVIM_BUFFER[] = "buffer";
+  static const char LUAVIM_WINDOW[] = "window";
+  static const char LUAVIM_FREE[] = "luaV_free";
++ static const char LUAVIM_LUAEVAL[] = "luaV_luaeval";
++ static const char LUAVIM_SETREF[] = "luaV_setref";
+  
++ /* most functions are closures with a cache table as first upvalue;
++  * get/setudata manage references to vim userdata in cache table through
++  * object pointers (light userdata) */
++ #define luaV_getudata(L, v) \
++     lua_pushlightuserdata((L), (void *) (v)); \
++     lua_rawget((L), lua_upvalueindex(1))
++ #define luaV_setudata(L, v) \
++     lua_pushlightuserdata((L), (void *) (v)); \
++     lua_pushvalue((L), -2); \
++     lua_rawset((L), lua_upvalueindex(1))
+  #define luaV_getfield(L, s) \
+      lua_pushlightuserdata((L), (void *)(s)); \
+      lua_rawget((L), LUA_REGISTRYINDEX)
+***************
+*** 38,43 ****
+--- 56,70 ----
+  #define luaV_msg(L) luaV_msgfunc((L), (msgfunc_T) msg)
+  #define luaV_emsg(L) luaV_msgfunc((L), (msgfunc_T) emsg)
+  
++ static luaV_List *luaV_pushlist (lua_State *L, list_T *lis);
++ static luaV_Dict *luaV_pushdict (lua_State *L, dict_T *dic);
++ 
++ #if LUA_VERSION_NUM <= 501
++ #define luaV_openlib(L, l, n) luaL_openlib(L, NULL, l, n)
++ #define luaL_typeerror luaL_typerror
++ #else
++ #define luaV_openlib luaL_setfuncs
++ #endif
+  
+  #ifdef DYNAMIC_LUA
+  
+***************
+*** 54,85 ****
+  #endif
+  
+  /* lauxlib */
+  #define luaL_register dll_luaL_register
+  #define luaL_typerror dll_luaL_typerror
+  #define luaL_checklstring dll_luaL_checklstring
+  #define luaL_checkinteger dll_luaL_checkinteger
+  #define luaL_optinteger dll_luaL_optinteger
+  #define luaL_checktype dll_luaL_checktype
+  #define luaL_error dll_luaL_error
+- #define luaL_loadfile dll_luaL_loadfile
+- #define luaL_loadbuffer dll_luaL_loadbuffer
+  #define luaL_newstate dll_luaL_newstate
+  #define luaL_buffinit dll_luaL_buffinit
+- #define luaL_prepbuffer dll_luaL_prepbuffer
+  #define luaL_addlstring dll_luaL_addlstring
+  #define luaL_pushresult dll_luaL_pushresult
+  /* lua */
+  #define lua_close dll_lua_close
+  #define lua_gettop dll_lua_gettop
+  #define lua_settop dll_lua_settop
+  #define lua_pushvalue dll_lua_pushvalue
+  #define lua_replace dll_lua_replace
+  #define lua_isnumber dll_lua_isnumber
+  #define lua_isstring dll_lua_isstring
+  #define lua_type dll_lua_type
+  #define lua_rawequal dll_lua_rawequal
+- #define lua_tonumber dll_lua_tonumber
+- #define lua_tointeger dll_lua_tointeger
+  #define lua_toboolean dll_lua_toboolean
+  #define lua_tolstring dll_lua_tolstring
+  #define lua_touserdata dll_lua_touserdata
+--- 81,134 ----
+  #endif
+  
+  /* lauxlib */
++ #if LUA_VERSION_NUM <= 501
+  #define luaL_register dll_luaL_register
++ #define luaL_prepbuffer dll_luaL_prepbuffer
++ #define luaL_openlib dll_luaL_openlib
+  #define luaL_typerror dll_luaL_typerror
++ #define luaL_loadfile dll_luaL_loadfile
++ #define luaL_loadbuffer dll_luaL_loadbuffer
++ #else
++ #define luaL_prepbuffsize dll_luaL_prepbuffsize
++ #define luaL_setfuncs dll_luaL_setfuncs
++ #define luaL_loadfilex dll_luaL_loadfilex
++ #define luaL_loadbufferx dll_luaL_loadbufferx
++ #define luaL_argerror dll_luaL_argerror
++ #endif
+  #define luaL_checklstring dll_luaL_checklstring
+  #define luaL_checkinteger dll_luaL_checkinteger
+  #define luaL_optinteger dll_luaL_optinteger
+  #define luaL_checktype dll_luaL_checktype
+  #define luaL_error dll_luaL_error
+  #define luaL_newstate dll_luaL_newstate
+  #define luaL_buffinit dll_luaL_buffinit
+  #define luaL_addlstring dll_luaL_addlstring
+  #define luaL_pushresult dll_luaL_pushresult
+  /* lua */
++ #if LUA_VERSION_NUM <= 501
++ #define lua_tonumber dll_lua_tonumber
++ #define lua_tointeger dll_lua_tointeger
++ #define lua_call dll_lua_call
++ #define lua_pcall dll_lua_pcall
++ #else
++ #define lua_tonumberx dll_lua_tonumberx
++ #define lua_tointegerx dll_lua_tointegerx
++ #define lua_callk dll_lua_callk
++ #define lua_pcallk dll_lua_pcallk
++ #define lua_getglobal dll_lua_getglobal
++ #define lua_setglobal dll_lua_setglobal
++ #define lua_typename dll_lua_typename
++ #endif
+  #define lua_close dll_lua_close
+  #define lua_gettop dll_lua_gettop
+  #define lua_settop dll_lua_settop
+  #define lua_pushvalue dll_lua_pushvalue
+  #define lua_replace dll_lua_replace
++ #define lua_remove dll_lua_remove
+  #define lua_isnumber dll_lua_isnumber
+  #define lua_isstring dll_lua_isstring
+  #define lua_type dll_lua_type
+  #define lua_rawequal dll_lua_rawequal
+  #define lua_toboolean dll_lua_toboolean
+  #define lua_tolstring dll_lua_tolstring
+  #define lua_touserdata dll_lua_touserdata
+***************
+*** 94,109 ****
+  #define lua_pushlightuserdata dll_lua_pushlightuserdata
+  #define lua_getfield dll_lua_getfield
+  #define lua_rawget dll_lua_rawget
+  #define lua_createtable dll_lua_createtable
+  #define lua_newuserdata dll_lua_newuserdata
+  #define lua_getmetatable dll_lua_getmetatable
+  #define lua_setfield dll_lua_setfield
+  #define lua_rawset dll_lua_rawset
+  #define lua_rawseti dll_lua_rawseti
+- #define lua_remove dll_lua_remove
+  #define lua_setmetatable dll_lua_setmetatable
+- #define lua_call dll_lua_call
+- #define lua_pcall dll_lua_pcall
+  /* libs */
+  #define luaopen_base dll_luaopen_base
+  #define luaopen_table dll_luaopen_table
+--- 143,156 ----
+  #define lua_pushlightuserdata dll_lua_pushlightuserdata
+  #define lua_getfield dll_lua_getfield
+  #define lua_rawget dll_lua_rawget
++ #define lua_rawgeti dll_lua_rawgeti
+  #define lua_createtable dll_lua_createtable
+  #define lua_newuserdata dll_lua_newuserdata
+  #define lua_getmetatable dll_lua_getmetatable
+  #define lua_setfield dll_lua_setfield
+  #define lua_rawset dll_lua_rawset
+  #define lua_rawseti dll_lua_rawseti
+  #define lua_setmetatable dll_lua_setmetatable
+  /* libs */
+  #define luaopen_base dll_luaopen_base
+  #define luaopen_table dll_luaopen_table
+***************
+*** 116,147 ****
+  #define luaL_openlibs dll_luaL_openlibs
+  
+  /* lauxlib */
+  void (*dll_luaL_register) (lua_State *L, const char *libname, const luaL_Reg *l);
+  int (*dll_luaL_typerror) (lua_State *L, int narg, const char *tname);
+  const char *(*dll_luaL_checklstring) (lua_State *L, int numArg, size_t *l);
+  lua_Integer (*dll_luaL_checkinteger) (lua_State *L, int numArg);
+  lua_Integer (*dll_luaL_optinteger) (lua_State *L, int nArg, lua_Integer def);
+  void (*dll_luaL_checktype) (lua_State *L, int narg, int t);
+  int (*dll_luaL_error) (lua_State *L, const char *fmt, ...);
+- int (*dll_luaL_loadfile) (lua_State *L, const char *filename);
+- int (*dll_luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, const char *name);
+  lua_State *(*dll_luaL_newstate) (void);
+  void (*dll_luaL_buffinit) (lua_State *L, luaL_Buffer *B);
+- char *(*dll_luaL_prepbuffer) (luaL_Buffer *B);
+  void (*dll_luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
+  void (*dll_luaL_pushresult) (luaL_Buffer *B);
+  /* lua */
+  void       (*dll_lua_close) (lua_State *L);
+  int (*dll_lua_gettop) (lua_State *L);
+  void (*dll_lua_settop) (lua_State *L, int idx);
+  void (*dll_lua_pushvalue) (lua_State *L, int idx);
+  void (*dll_lua_replace) (lua_State *L, int idx);
+  int (*dll_lua_isnumber) (lua_State *L, int idx);
+  int (*dll_lua_isstring) (lua_State *L, int idx);
+  int (*dll_lua_type) (lua_State *L, int idx);
+  int (*dll_lua_rawequal) (lua_State *L, int idx1, int idx2);
+- lua_Number (*dll_lua_tonumber) (lua_State *L, int idx);
+- lua_Integer (*dll_lua_tointeger) (lua_State *L, int idx);
+  int (*dll_lua_toboolean) (lua_State *L, int idx);
+  const char *(*dll_lua_tolstring) (lua_State *L, int idx, size_t *len);
+  void *(*dll_lua_touserdata) (lua_State *L, int idx);
+--- 163,218 ----
+  #define luaL_openlibs dll_luaL_openlibs
+  
+  /* lauxlib */
++ #if LUA_VERSION_NUM <= 501
+  void (*dll_luaL_register) (lua_State *L, const char *libname, const luaL_Reg *l);
++ char *(*dll_luaL_prepbuffer) (luaL_Buffer *B);
++ void (*dll_luaL_openlib) (lua_State *L, const char *libname, const luaL_Reg *l, int nup);
+  int (*dll_luaL_typerror) (lua_State *L, int narg, const char *tname);
++ int (*dll_luaL_loadfile) (lua_State *L, const char *filename);
++ int (*dll_luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, const char *name);
++ #else
++ char *(*dll_luaL_prepbuffsize) (luaL_Buffer *B, size_t sz);
++ void (*dll_luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup);
++ int (*dll_luaL_loadfilex) (lua_State *L, const char *filename, const char *mode);
++ int (*dll_luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz, const char *name, const char *mode);
++ int (*dll_luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
++ #endif
+  const char *(*dll_luaL_checklstring) (lua_State *L, int numArg, size_t *l);
+  lua_Integer (*dll_luaL_checkinteger) (lua_State *L, int numArg);
+  lua_Integer (*dll_luaL_optinteger) (lua_State *L, int nArg, lua_Integer def);
+  void (*dll_luaL_checktype) (lua_State *L, int narg, int t);
+  int (*dll_luaL_error) (lua_State *L, const char *fmt, ...);
+  lua_State *(*dll_luaL_newstate) (void);
+  void (*dll_luaL_buffinit) (lua_State *L, luaL_Buffer *B);
+  void (*dll_luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
+  void (*dll_luaL_pushresult) (luaL_Buffer *B);
+  /* lua */
++ #if LUA_VERSION_NUM <= 501
++ lua_Number (*dll_lua_tonumber) (lua_State *L, int idx);
++ lua_Integer (*dll_lua_tointeger) (lua_State *L, int idx);
++ void (*dll_lua_call) (lua_State *L, int nargs, int nresults);
++ int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc);
++ #else
++ lua_Number (*dll_lua_tonumberx) (lua_State *L, int idx, int *isnum);
++ lua_Integer (*dll_lua_tointegerx) (lua_State *L, int idx, int *isnum);
++ void (*dll_lua_callk) (lua_State *L, int nargs, int nresults, int ctx,
++         lua_CFunction k);
++ int (*dll_lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc,
++         int ctx, lua_CFunction k);
++ void (*dll_lua_getglobal) (lua_State *L, const char *var);
++ void (*dll_lua_setglobal) (lua_State *L, const char *var);
++ const char *(*dll_lua_typename) (lua_State *L, int tp);
++ #endif
+  void       (*dll_lua_close) (lua_State *L);
+  int (*dll_lua_gettop) (lua_State *L);
+  void (*dll_lua_settop) (lua_State *L, int idx);
+  void (*dll_lua_pushvalue) (lua_State *L, int idx);
+  void (*dll_lua_replace) (lua_State *L, int idx);
++ void (*dll_lua_remove) (lua_State *L, int idx);
+  int (*dll_lua_isnumber) (lua_State *L, int idx);
+  int (*dll_lua_isstring) (lua_State *L, int idx);
+  int (*dll_lua_type) (lua_State *L, int idx);
+  int (*dll_lua_rawequal) (lua_State *L, int idx1, int idx2);
+  int (*dll_lua_toboolean) (lua_State *L, int idx);
+  const char *(*dll_lua_tolstring) (lua_State *L, int idx, size_t *len);
+  void *(*dll_lua_touserdata) (lua_State *L, int idx);
+***************
+*** 156,171 ****
+  void (*dll_lua_pushlightuserdata) (lua_State *L, void *p);
+  void (*dll_lua_getfield) (lua_State *L, int idx, const char *k);
+  void (*dll_lua_rawget) (lua_State *L, int idx);
+  void (*dll_lua_createtable) (lua_State *L, int narr, int nrec);
+  void *(*dll_lua_newuserdata) (lua_State *L, size_t sz);
+  int (*dll_lua_getmetatable) (lua_State *L, int objindex);
+  void (*dll_lua_setfield) (lua_State *L, int idx, const char *k);
+  void (*dll_lua_rawset) (lua_State *L, int idx);
+  void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
+- void (*dll_lua_remove) (lua_State *L, int idx);
+  int (*dll_lua_setmetatable) (lua_State *L, int objindex);
+- void (*dll_lua_call) (lua_State *L, int nargs, int nresults);
+- int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc);
+  /* libs */
+  int (*dll_luaopen_base) (lua_State *L);
+  int (*dll_luaopen_table) (lua_State *L);
+--- 227,240 ----
+  void (*dll_lua_pushlightuserdata) (lua_State *L, void *p);
+  void (*dll_lua_getfield) (lua_State *L, int idx, const char *k);
+  void (*dll_lua_rawget) (lua_State *L, int idx);
++ void (*dll_lua_rawgeti) (lua_State *L, int idx, int n);
+  void (*dll_lua_createtable) (lua_State *L, int narr, int nrec);
+  void *(*dll_lua_newuserdata) (lua_State *L, size_t sz);
+  int (*dll_lua_getmetatable) (lua_State *L, int objindex);
+  void (*dll_lua_setfield) (lua_State *L, int idx, const char *k);
+  void (*dll_lua_rawset) (lua_State *L, int idx);
+  void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
+  int (*dll_lua_setmetatable) (lua_State *L, int objindex);
+  /* libs */
+  int (*dll_luaopen_base) (lua_State *L);
+  int (*dll_luaopen_table) (lua_State *L);
+***************
+*** 185,216 ****
+  
+  static const luaV_Reg luaV_dll[] = {
+      /* lauxlib */
+      {"luaL_register", (luaV_function) &dll_luaL_register},
+      {"luaL_typerror", (luaV_function) &dll_luaL_typerror},
+      {"luaL_checklstring", (luaV_function) &dll_luaL_checklstring},
+      {"luaL_checkinteger", (luaV_function) &dll_luaL_checkinteger},
+      {"luaL_optinteger", (luaV_function) &dll_luaL_optinteger},
+      {"luaL_checktype", (luaV_function) &dll_luaL_checktype},
+      {"luaL_error", (luaV_function) &dll_luaL_error},
+-     {"luaL_loadfile", (luaV_function) &dll_luaL_loadfile},
+-     {"luaL_loadbuffer", (luaV_function) &dll_luaL_loadbuffer},
+      {"luaL_newstate", (luaV_function) &dll_luaL_newstate},
+      {"luaL_buffinit", (luaV_function) &dll_luaL_buffinit},
+-     {"luaL_prepbuffer", (luaV_function) &dll_luaL_prepbuffer},
+      {"luaL_addlstring", (luaV_function) &dll_luaL_addlstring},
+      {"luaL_pushresult", (luaV_function) &dll_luaL_pushresult},
+      /* lua */
+      {"lua_close", (luaV_function) &dll_lua_close},
+      {"lua_gettop", (luaV_function) &dll_lua_gettop},
+      {"lua_settop", (luaV_function) &dll_lua_settop},
+      {"lua_pushvalue", (luaV_function) &dll_lua_pushvalue},
+      {"lua_replace", (luaV_function) &dll_lua_replace},
+      {"lua_isnumber", (luaV_function) &dll_lua_isnumber},
+      {"lua_isstring", (luaV_function) &dll_lua_isstring},
+      {"lua_type", (luaV_function) &dll_lua_type},
+      {"lua_rawequal", (luaV_function) &dll_lua_rawequal},
+-     {"lua_tonumber", (luaV_function) &dll_lua_tonumber},
+-     {"lua_tointeger", (luaV_function) &dll_lua_tointeger},
+      {"lua_toboolean", (luaV_function) &dll_lua_toboolean},
+      {"lua_tolstring", (luaV_function) &dll_lua_tolstring},
+      {"lua_touserdata", (luaV_function) &dll_lua_touserdata},
+--- 254,307 ----
+  
+  static const luaV_Reg luaV_dll[] = {
+      /* lauxlib */
++ #if LUA_VERSION_NUM <= 501
+      {"luaL_register", (luaV_function) &dll_luaL_register},
++     {"luaL_prepbuffer", (luaV_function) &dll_luaL_prepbuffer},
++     {"luaL_openlib", (luaV_function) &dll_luaL_openlib},
+      {"luaL_typerror", (luaV_function) &dll_luaL_typerror},
++     {"luaL_loadfile", (luaV_function) &dll_luaL_loadfile},
++     {"luaL_loadbuffer", (luaV_function) &dll_luaL_loadbuffer},
++ #else
++     {"luaL_prepbuffsize", (luaV_function) &dll_luaL_prepbuffsize},
++     {"luaL_setfuncs", (luaV_function) &dll_luaL_setfuncs},
++     {"luaL_loadfilex", (luaV_function) &dll_luaL_loadfilex},
++     {"luaL_loadbufferx", (luaV_function) &dll_luaL_loadbufferx},
++     {"luaL_argerror", (luaV_function) &dll_luaL_argerror},
++ #endif
+      {"luaL_checklstring", (luaV_function) &dll_luaL_checklstring},
+      {"luaL_checkinteger", (luaV_function) &dll_luaL_checkinteger},
+      {"luaL_optinteger", (luaV_function) &dll_luaL_optinteger},
+      {"luaL_checktype", (luaV_function) &dll_luaL_checktype},
+      {"luaL_error", (luaV_function) &dll_luaL_error},
+      {"luaL_newstate", (luaV_function) &dll_luaL_newstate},
+      {"luaL_buffinit", (luaV_function) &dll_luaL_buffinit},
+      {"luaL_addlstring", (luaV_function) &dll_luaL_addlstring},
+      {"luaL_pushresult", (luaV_function) &dll_luaL_pushresult},
+      /* lua */
++ #if LUA_VERSION_NUM <= 501
++     {"lua_tonumber", (luaV_function) &dll_lua_tonumber},
++     {"lua_tointeger", (luaV_function) &dll_lua_tointeger},
++     {"lua_call", (luaV_function) &dll_lua_call},
++     {"lua_pcall", (luaV_function) &dll_lua_pcall},
++ #else
++     {"lua_tonumberx", (luaV_function) &dll_lua_tonumberx},
++     {"lua_tointegerx", (luaV_function) &dll_lua_tointegerx},
++     {"lua_callk", (luaV_function) &dll_lua_callk},
++     {"lua_pcallk", (luaV_function) &dll_lua_pcallk},
++     {"lua_getglobal", (luaV_function) &dll_lua_getglobal},
++     {"lua_setglobal", (luaV_function) &dll_lua_setglobal},
++     {"lua_typename", (luaV_function) &dll_lua_typename},
++ #endif
+      {"lua_close", (luaV_function) &dll_lua_close},
+      {"lua_gettop", (luaV_function) &dll_lua_gettop},
+      {"lua_settop", (luaV_function) &dll_lua_settop},
+      {"lua_pushvalue", (luaV_function) &dll_lua_pushvalue},
+      {"lua_replace", (luaV_function) &dll_lua_replace},
++     {"lua_remove", (luaV_function) &dll_lua_remove},
+      {"lua_isnumber", (luaV_function) &dll_lua_isnumber},
+      {"lua_isstring", (luaV_function) &dll_lua_isstring},
+      {"lua_type", (luaV_function) &dll_lua_type},
+      {"lua_rawequal", (luaV_function) &dll_lua_rawequal},
+      {"lua_toboolean", (luaV_function) &dll_lua_toboolean},
+      {"lua_tolstring", (luaV_function) &dll_lua_tolstring},
+      {"lua_touserdata", (luaV_function) &dll_lua_touserdata},
+***************
+*** 225,240 ****
+      {"lua_pushlightuserdata", (luaV_function) &dll_lua_pushlightuserdata},
+      {"lua_getfield", (luaV_function) &dll_lua_getfield},
+      {"lua_rawget", (luaV_function) &dll_lua_rawget},
+      {"lua_createtable", (luaV_function) &dll_lua_createtable},
+      {"lua_newuserdata", (luaV_function) &dll_lua_newuserdata},
+      {"lua_getmetatable", (luaV_function) &dll_lua_getmetatable},
+      {"lua_setfield", (luaV_function) &dll_lua_setfield},
+      {"lua_rawset", (luaV_function) &dll_lua_rawset},
+      {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
+-     {"lua_remove", (luaV_function) &dll_lua_remove},
+      {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
+-     {"lua_call", (luaV_function) &dll_lua_call},
+-     {"lua_pcall", (luaV_function) &dll_lua_pcall},
+      /* libs */
+      {"luaopen_base", (luaV_function) &dll_luaopen_base},
+      {"luaopen_table", (luaV_function) &dll_luaopen_table},
+--- 316,329 ----
+      {"lua_pushlightuserdata", (luaV_function) &dll_lua_pushlightuserdata},
+      {"lua_getfield", (luaV_function) &dll_lua_getfield},
+      {"lua_rawget", (luaV_function) &dll_lua_rawget},
++     {"lua_rawgeti", (luaV_function) &dll_lua_rawgeti},
+      {"lua_createtable", (luaV_function) &dll_lua_createtable},
+      {"lua_newuserdata", (luaV_function) &dll_lua_newuserdata},
+      {"lua_getmetatable", (luaV_function) &dll_lua_getmetatable},
+      {"lua_setfield", (luaV_function) &dll_lua_setfield},
+      {"lua_rawset", (luaV_function) &dll_lua_rawset},
+      {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
+      {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
+      /* libs */
+      {"luaopen_base", (luaV_function) &dll_luaopen_base},
+      {"luaopen_table", (luaV_function) &dll_luaopen_table},
+***************
+*** 294,299 ****
+--- 383,398 ----
+  
+  #endif /* DYNAMIC_LUA */
+  
++ #if LUA_VERSION_NUM > 501
++     static int
++ luaL_typeerror (lua_State *L, int narg, const char *tname)
++ {
++     const char *msg = lua_pushfstring(L, "%s expected, got %s",
++             tname, luaL_typename(L, narg));
++     return luaL_argerror(L, narg, msg);
++ }
++ #endif
++ 
+  
+  /* =======   Internal   ======= */
+  
+***************
+*** 327,343 ****
+  }
+  
+      static void *
+  luaV_checkudata(lua_State *L, int ud, const char *tname)
+  {
+      void *p = luaV_toudata(L, ud, tname);
+!     if (p == NULL) luaL_typerror(L, ud, tname);
+      return p;
+  }
+  
+      static void
+  luaV_pushtypval(lua_State *L, typval_T *tv)
+  {
+!     if (tv == NULL) luaL_error(L, "null type");
+      switch (tv->v_type)
+      {
+       case VAR_STRING:
+--- 426,460 ----
+  }
+  
+      static void *
++ luaV_checkcache(lua_State *L, void *p)
++ {
++     luaV_getudata(L, p);
++     if (lua_isnil(L, -1)) luaL_error(L, "invalid object");
++     lua_pop(L, 1);
++     return p;
++ }
++ 
++ #define luaV_unbox(L,luatyp,ud) (*((luatyp *) lua_touserdata((L),(ud))))
++ 
++ #define luaV_checkvalid(L,luatyp,ud) \
++     luaV_checkcache((L), (void *) luaV_unbox((L),luatyp,(ud)))
++ 
++     static void *
+  luaV_checkudata(lua_State *L, int ud, const char *tname)
+  {
+      void *p = luaV_toudata(L, ud, tname);
+!     if (p == NULL) luaL_typeerror(L, ud, tname);
+      return p;
+  }
+  
+      static void
+  luaV_pushtypval(lua_State *L, typval_T *tv)
+  {
+!     if (tv == NULL)
+!     {
+!      lua_pushnil(L);
+!      return;
+!     }
+      switch (tv->v_type)
+      {
+       case VAR_STRING:
+***************
+*** 351,418 ****
+           lua_pushnumber(L, (lua_Number) tv->vval.v_float);
+           break;
+  #endif
+!      case VAR_LIST: {
+!          list_T *l = tv->vval.v_list;
+  
+!          if (l != NULL)
+           {
+!              /* check cache */
+!              lua_pushlightuserdata(L, (void *) l);
+!              lua_rawget(L, LUA_ENVIRONINDEX);
+!              if (lua_isnil(L, -1)) /* not interned? */
+               {
+!                  listitem_T *li;
+!                  int n = 0;
+!                  lua_pop(L, 1); /* nil */
+!                  lua_newtable(L);
+!                  lua_pushlightuserdata(L, (void *) l);
+!                  lua_pushvalue(L, -2);
+!                  lua_rawset(L, LUA_ENVIRONINDEX);
+!                  for (li = l->lv_first; li != NULL; li = li->li_next)
+!                  {
+!                      luaV_pushtypval(L, &li->li_tv);
+!                      lua_rawseti(L, -2, ++n);
+!                  }
+               }
+!          }
+!          else lua_pushnil(L);
+!          break;
+!                     }
+!      case VAR_DICT: {
+!          dict_T *d = tv->vval.v_dict;
+! 
+!          if (d != NULL)
+!          {
+!              /* check cache */
+!              lua_pushlightuserdata(L, (void *) d);
+!              lua_rawget(L, LUA_ENVIRONINDEX);
+!              if (lua_isnil(L, -1)) /* not interned? */
+               {
+!                  hashtab_T *ht = &d->dv_hashtab;
+!                  hashitem_T *hi;
+!                  int n = ht->ht_used; /* remaining items */
+!                  lua_pop(L, 1); /* nil */
+!                  lua_newtable(L);
+!                  lua_pushlightuserdata(L, (void *) d);
+!                  lua_pushvalue(L, -2);
+!                  lua_rawset(L, LUA_ENVIRONINDEX);
+!                  for (hi = ht->ht_array; n > 0; hi++)
+!                  {
+!                      if (!HASHITEM_EMPTY(hi))
+!                      {
+!                          dictitem_T *di = dict_lookup(hi);
+!                          luaV_pushtypval(L, &di->di_tv);
+!                          lua_setfield(L, -2, (char *) hi->hi_key);
+!                          n--;
+!                      }
+!                  }
+               }
+           }
+-          else lua_pushnil(L);
+           break;
+       }
+       default:
+!          luaL_error(L, "invalid type");
+      }
+  }
+  
+--- 468,537 ----
+           lua_pushnumber(L, (lua_Number) tv->vval.v_float);
+           break;
+  #endif
+!      case VAR_LIST:
+!          luaV_pushlist(L, tv->vval.v_list);
+!          break;
+!      case VAR_DICT:
+!          luaV_pushdict(L, tv->vval.v_dict);
+!          break;
+!      default:
+!          lua_pushnil(L);
+!     }
+! }
+  
+! /* converts lua value at 'pos' to typval 'tv' */
+!     static void
+! luaV_totypval (lua_State *L, int pos, typval_T *tv)
+! {
+!     switch(lua_type(L, pos)) {
+!      case LUA_TBOOLEAN:
+!          tv->v_type = VAR_NUMBER;
+!          tv->vval.v_number = (varnumber_T) lua_toboolean(L, pos);
+!          break;
+!      case LUA_TSTRING:
+!          tv->v_type = VAR_STRING;
+!          tv->vval.v_string = vim_strsave((char_u *) lua_tostring(L, pos));
+!          break;
+!      case LUA_TNUMBER:
+! #ifdef FEAT_FLOAT
+!          tv->v_type = VAR_FLOAT;
+!          tv->vval.v_float = (float_T) lua_tonumber(L, pos);
+! #else
+!          tv->v_type = VAR_NUMBER;
+!          tv->vval.v_number = (varnumber_T) lua_tointeger(L, pos);
+! #endif
+!          break;
+!      case LUA_TUSERDATA: {
+!          void *p = lua_touserdata(L, pos);
+!          if (lua_getmetatable(L, pos)) /* has metatable? */
+           {
+!              /* check list */
+!              luaV_getfield(L, LUAVIM_LIST);
+!              if (lua_rawequal(L, -1, -2))
+               {
+!                  tv->v_type = VAR_LIST;
+!                  tv->vval.v_list = *((luaV_List *) p);
+!                  ++tv->vval.v_list->lv_refcount;
+!                  lua_pop(L, 2); /* MTs */
+!                  return;
+               }
+!              /* check dict */
+!              luaV_getfield(L, LUAVIM_DICT);
+!              if (lua_rawequal(L, -1, -3))
+               {
+!                  tv->v_type = VAR_DICT;
+!                  tv->vval.v_dict = *((luaV_Dict *) p);
+!                  ++tv->vval.v_dict->dv_refcount;
+!                  lua_pop(L, 3); /* MTs */
+!                  return;
+               }
++              lua_pop(L, 3); /* MTs */
+           }
+           break;
+       }
+       default:
+!          tv->v_type = VAR_NUMBER;
+!          tv->vval.v_number = 0;
+      }
+  }
+  
+***************
+*** 481,569 ****
+      lua_pop(L, 2); /* original and modified strings */
+  }
+  
+  
+! /* =======   Buffer type   ======= */
+  
+!     static luaV_Buffer *
+! luaV_newbuffer(lua_State *L, buf_T *buf)
+  {
+!     luaV_Buffer *b = (luaV_Buffer *) lua_newuserdata(L, sizeof(luaV_Buffer));
+!     *b = buf;
+!     lua_pushlightuserdata(L, (void *) buf);
+!     lua_pushvalue(L, -2);
+!     lua_rawset(L, LUA_ENVIRONINDEX); /* env[buf] = udata */
+!     /* to avoid GC, store as key in env */
+!     lua_pushvalue(L, -1);
+!     lua_pushboolean(L, 1);
+!     lua_rawset(L, LUA_ENVIRONINDEX); /* env[udata] = true */
+!     /* set metatable */
+!     luaV_getfield(L, LUAVIM_BUFFER);
+      lua_setmetatable(L, -2);
+!     return b;
+  }
+  
+!     static luaV_Buffer *
+! luaV_pushbuffer (lua_State *L, buf_T *buf)
+  {
+!     luaV_Buffer *b = NULL;
+!     if (buf == NULL)
+!      lua_pushnil(L);
+!     else {
+!      lua_pushlightuserdata(L, (void *) buf);
+!      lua_rawget(L, LUA_ENVIRONINDEX);
+!      if (lua_isnil(L, -1)) /* not interned? */
+       {
+!          lua_pop(L, 1);
+!          b = luaV_newbuffer(L, buf);
+       }
+       else
+!          b = (luaV_Buffer *) lua_touserdata(L, -1);
+      }
+!     return b;
+  }
+  
+! /* Buffer metamethods */
+  
+      static int
+! luaV_buffer_tostring(lua_State *L)
+  {
+!     lua_pushfstring(L, "%s: %p", LUAVIM_BUFFER, lua_touserdata(L, 1));
+      return 1;
+  }
+  
+      static int
+  luaV_buffer_len(lua_State *L)
+  {
+!     luaV_Buffer *b = lua_touserdata(L, 1);
+!     lua_pushinteger(L, (*b)->b_ml.ml_line_count);
+      return 1;
+  }
+  
+      static int
+  luaV_buffer_call(lua_State *L)
+  {
+!     luaV_Buffer *b = (luaV_Buffer *) lua_touserdata(L, 1);
+      lua_settop(L, 1);
+!     set_curbuf(*b, DOBUF_SPLIT);
+      return 1;
+  }
+  
+      static int
+  luaV_buffer_index(lua_State *L)
+  {
+!     luaV_Buffer *b = (luaV_Buffer *) lua_touserdata(L, 1);
+      linenr_T n = (linenr_T) lua_tointeger(L, 2);
+!     if (n > 0 && n <= (*b)->b_ml.ml_line_count)
+!      luaV_pushline(L, *b, n);
+      else if (lua_isstring(L, 2))
+      {
+       const char *s = lua_tostring(L, 2);
+       if (strncmp(s, "name", 4) == 0)
+!          lua_pushstring(L, (char *) (*b)->b_sfname);
+       else if (strncmp(s, "fname", 5) == 0)
+!          lua_pushstring(L, (char *) (*b)->b_ffname);
+       else if (strncmp(s, "number", 6) == 0)
+!          lua_pushinteger(L, (*b)->b_fnum);
+       /* methods */
+       else if (strncmp(s,   "insert", 6) == 0
+               || strncmp(s, "next", 4) == 0
+--- 600,1107 ----
+      lua_pop(L, 2); /* original and modified strings */
+  }
+  
++ #define luaV_newtype(typ,tname,luatyp,luatname) \
++      static luatyp * \
++     luaV_new##tname (lua_State *L, typ *obj) \
++     { \
++      luatyp *o = (luatyp *) lua_newuserdata(L, sizeof(luatyp)); \
++      *o = obj; \
++      luaV_setudata(L, obj); /* cache[obj] = udata */ \
++      luaV_getfield(L, luatname); \
++      lua_setmetatable(L, -2); \
++      return o; \
++     }
++ 
++ #define luaV_pushtype(typ,tname,luatyp) \
++      static luatyp * \
++     luaV_push##tname (lua_State *L, typ *obj) \
++     { \
++      luatyp *o = NULL; \
++      if (obj == NULL) \
++          lua_pushnil(L); \
++      else { \
++          luaV_getudata(L, obj); \
++          if (lua_isnil(L, -1)) /* not interned? */ \
++          { \
++              lua_pop(L, 1); \
++              o = luaV_new##tname(L, obj); \
++          } \
++          else \
++              o = (luatyp *) lua_touserdata(L, -1); \
++      } \
++      return o; \
++     }
++ 
++ #define luaV_type_tostring(tname,luatname) \
++      static int \
++     luaV_##tname##_tostring (lua_State *L) \
++     { \
++      lua_pushfstring(L, "%s: %p", luatname, lua_touserdata(L, 1)); \
++      return 1; \
++     }
++ 
+  
+! /* adapted from eval.c */
+! 
+! #define listitem_alloc() (listitem_T *)alloc(sizeof(listitem_T))
+! 
+!     static listitem_T *
+! list_find (list_T *l, long n)
+! {
+!     listitem_T *li;
+!     if (l == NULL || n < -l->lv_len || n >= l->lv_len)
+!      return NULL;
+!     if (n < 0) /* search backward? */
+!      for (li = l->lv_last; n < -1; li = li->li_prev)
+!          n++;
+!     else /* search forward */
+!      for (li = l->lv_first; n > 0; li = li->li_next)
+!          n--;
+!     return li;
+! }
+  
+!     static void
+! list_remove (list_T *l, listitem_T *li)
+  {
+!     listwatch_T *lw;
+!     --l->lv_len;
+!     /* fix watchers */
+!     for (lw = l->lv_watch; lw != NULL; lw = lw->lw_next)
+!      if (lw->lw_item == li)
+!          lw->lw_item = li->li_next;
+!     /* fix list pointers */
+!     if (li->li_next == NULL) /* last? */
+!      l->lv_last = li->li_prev;
+!     else
+!      li->li_next->li_prev = li->li_prev;
+!     if (li->li_prev == NULL) /* first? */
+!      l->lv_first = li->li_next;
+!     else
+!      li->li_prev->li_next = li->li_next;
+!     l->lv_idx_item = NULL;
+! }
+! 
+!     static void
+! list_append(list_T *l, listitem_T *item)
+! {
+!     if (l->lv_last == NULL) /* empty list? */
+!      l->lv_first = item;
+!     else
+!      l->lv_last->li_next = item;
+!     item->li_prev = l->lv_last;
+!     item->li_next = NULL;
+!     l->lv_last = item;
+!     ++l->lv_len;
+! }
+! 
+!     static int
+! list_insert_tv(list_T *l, typval_T *tv, listitem_T *item)
+! {
+!     listitem_T       *ni = listitem_alloc();
+! 
+!     if (ni == NULL)
+!      return FAIL;
+!     copy_tv(tv, &ni->li_tv);
+!     if (item == NULL)
+!      list_append(l, ni);
+!     else
+!     {
+!      ni->li_prev = item->li_prev;
+!      ni->li_next = item;
+!      if (item->li_prev == NULL)
+!      {
+!          l->lv_first = ni;
+!          ++l->lv_idx;
+!      }
+!      else
+!      {
+!          item->li_prev->li_next = ni;
+!          l->lv_idx_item = NULL;
+!      }
+!      item->li_prev = ni;
+!      ++l->lv_len;
+!     }
+!     return OK;
+! }
+! 
+! /* set references */
+! 
+! static void set_ref_in_tv (typval_T *tv, int copyID);
+! 
+!     static void
+! set_ref_in_dict(dict_T *d, int copyID)
+! {
+!     hashtab_T *ht = &d->dv_hashtab;
+!     int n = ht->ht_used;
+!     hashitem_T *hi;
+!     for (hi = ht->ht_array; n > 0; ++hi)
+!      if (!HASHITEM_EMPTY(hi))
+!      {
+!          dictitem_T *di = dict_lookup(hi);
+!          set_ref_in_tv(&di->di_tv, copyID);
+!          --n;
+!      }
+! }
+! 
+!     static void
+! set_ref_in_list(list_T *l, int copyID)
+! {
+!     listitem_T *li;
+!     for (li = l->lv_first; li != NULL; li = li->li_next)
+!      set_ref_in_tv(&li->li_tv, copyID);
+! }
+! 
+!     static void
+! set_ref_in_tv(typval_T *tv, int copyID)
+! {
+!     if (tv->v_type == VAR_LIST)
+!     {
+!      list_T *l = tv->vval.v_list;
+!      if (l != NULL && l->lv_copyID != copyID)
+!      {
+!          l->lv_copyID = copyID;
+!          set_ref_in_list(l, copyID);
+!      }
+!     }
+!     else if (tv->v_type == VAR_DICT)
+!     {
+!      dict_T *d = tv->vval.v_dict;
+!      if (d != NULL && d->dv_copyID != copyID)
+!      {
+!          d->dv_copyID = copyID;
+!          set_ref_in_dict(d, copyID);
+!      }
+!     }
+! }
+! 
+! 
+! /* =======   List type   ======= */
+! 
+!     static luaV_List *
+! luaV_newlist (lua_State *L, list_T *lis)
+! {
+!     luaV_List *l = (luaV_List *) lua_newuserdata(L, sizeof(luaV_List));
+!     *l = lis;
+!     lis->lv_refcount++; /* reference in Lua */
+!     luaV_setudata(L, lis); /* cache[lis] = udata */
+!     luaV_getfield(L, LUAVIM_LIST);
+      lua_setmetatable(L, -2);
+!     return l;
+  }
+  
+! luaV_pushtype(list_T, list, luaV_List)
+! luaV_type_tostring(list, LUAVIM_LIST)
+! 
+!     static int
+! luaV_list_gc (lua_State *L)
+  {
+!     list_unref(luaV_unbox(L, luaV_List, 1));
+!     return 0;
+! }
+! 
+!     static int
+! luaV_list_len (lua_State *L)
+! {
+!     list_T *l = luaV_unbox(L, luaV_List, 1);
+!     lua_pushinteger(L, (l == NULL) ? 0 : (int) l->lv_len);
+!     return 1;
+! }
+! 
+!     static int
+! luaV_list_iter (lua_State *L)
+! {
+!     listitem_T *li = (listitem_T *) lua_touserdata(L, lua_upvalueindex(2));
+!     if (li == NULL) return 0;
+!     luaV_pushtypval(L, &li->li_tv);
+!     lua_pushlightuserdata(L, (void *) li->li_next);
+!     lua_replace(L, lua_upvalueindex(2));
+!     return 1;
+! }
+! 
+!     static int
+! luaV_list_call (lua_State *L)
+! {
+!     list_T *l = luaV_unbox(L, luaV_List, 1);
+!     lua_pushvalue(L, lua_upvalueindex(1)); /* pass cache table along */
+!     lua_pushlightuserdata(L, (void *) l->lv_first);
+!     lua_pushcclosure(L, luaV_list_iter, 2);
+!     return 1;
+! }
+! 
+!     static int
+! luaV_list_index (lua_State *L)
+! {
+!     list_T *l = luaV_unbox(L, luaV_List, 1);
+!     if (lua_isnumber(L, 2)) /* list item? */
+!     {
+!      listitem_T *li = list_find(l, (long) luaL_checkinteger(L, 2));
+!      if (li == NULL)
+!          lua_pushnil(L);
+!      else
+!          luaV_pushtypval(L, &li->li_tv);
+!     }
+!     else if (lua_isstring(L, 2)) /* method? */
+!     {
+!      const char *s = lua_tostring(L, 2);
+!      if (strncmp(s, "add", 3) == 0
+!              || strncmp(s, "insert", 6) == 0
+!              || strncmp(s, "extend", 6) == 0)
+       {
+!          lua_getmetatable(L, 1);
+!          lua_getfield(L, -1, s);
+       }
+       else
+!          lua_pushnil(L);
+      }
+!     else
+!      lua_pushnil(L);
+!     return 1;
+  }
+  
+!     static int
+! luaV_list_newindex (lua_State *L)
+! {
+!     list_T *l = luaV_unbox(L, luaV_List, 1);
+!     long n = (long) luaL_checkinteger(L, 2);
+!     listitem_T *li;
+!     if (l->lv_lock)
+!      luaL_error(L, "list is locked");
+!     li = list_find(l, n);
+!     if (li == NULL) return 0;
+!     if (lua_isnil(L, 3)) /* remove? */
+!     {
+!      list_remove(l, li);
+!      clear_tv(&li->li_tv);
+!      vim_free(li);
+!     }
+!     else
+!     {
+!      typval_T v;
+!      luaV_totypval(L, 3, &v);
+!      clear_tv(&li->li_tv);
+!      copy_tv(&v, &li->li_tv);
+!     }
+!     return 0;
+! }
+  
+      static int
+! luaV_list_add (lua_State *L)
+  {
+!     luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST);
+!     list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis);
+!     listitem_T *li;
+!     if (l->lv_lock)
+!      luaL_error(L, "list is locked");
+!     li = listitem_alloc();
+!     if (li != NULL)
+!     {
+!      typval_T v;
+!      lua_settop(L, 2);
+!      luaV_totypval(L, 2, &v);
+!      copy_tv(&v, &li->li_tv);
+!      list_append(l, li);
+!     }
+!     lua_settop(L, 1);
+      return 1;
+  }
+  
+      static int
++ luaV_list_insert (lua_State *L)
++ {
++     luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST);
++     list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis);
++     long pos = luaL_optlong(L, 3, 0);
++     listitem_T *li = NULL;
++     typval_T v;
++     if (l->lv_lock)
++      luaL_error(L, "list is locked");
++     if (pos < l->lv_len)
++     {
++      li = list_find(l, pos);
++      if (li == NULL)
++          luaL_error(L, "invalid position");
++     }
++     lua_settop(L, 2);
++     luaV_totypval(L, 2, &v);
++     list_insert_tv(l, &v, li);
++     lua_settop(L, 1);
++     return 1;
++ }
++ 
++ static const luaL_Reg luaV_List_mt[] = {
++     {"__tostring", luaV_list_tostring},
++     {"__gc", luaV_list_gc},
++     {"__len", luaV_list_len},
++     {"__call", luaV_list_call},
++     {"__index", luaV_list_index},
++     {"__newindex", luaV_list_newindex},
++     {"add", luaV_list_add},
++     {"insert", luaV_list_insert},
++     {NULL, NULL}
++ };
++ 
++ 
++ /* =======   Dict type   ======= */
++ 
++     static luaV_Dict *
++ luaV_newdict (lua_State *L, dict_T *dic)
++ {
++     luaV_Dict *d = (luaV_Dict *) lua_newuserdata(L, sizeof(luaV_Dict));
++     *d = dic;
++     dic->dv_refcount++; /* reference in Lua */
++     luaV_setudata(L, dic); /* cache[dic] = udata */
++     luaV_getfield(L, LUAVIM_DICT);
++     lua_setmetatable(L, -2);
++     return d;
++ }
++ 
++ luaV_pushtype(dict_T, dict, luaV_Dict)
++ luaV_type_tostring(dict, LUAVIM_DICT)
++ 
++     static int
++ luaV_dict_gc (lua_State *L)
++ {
++     dict_unref(luaV_unbox(L, luaV_Dict, 1));
++     return 0;
++ }
++ 
++     static int
++ luaV_dict_len (lua_State *L)
++ {
++     dict_T *d = luaV_unbox(L, luaV_Dict, 1);
++     lua_pushinteger(L, (d == NULL) ? 0 : (int) d->dv_hashtab.ht_used);
++     return 1;
++ }
++ 
++     static int
++ luaV_dict_iter (lua_State *L)
++ {
++     hashitem_T *hi = (hashitem_T *) lua_touserdata(L, lua_upvalueindex(2));
++     int n = lua_tointeger(L, lua_upvalueindex(3));
++     dictitem_T *di;
++     if (n <= 0) return 0;
++     while (HASHITEM_EMPTY(hi)) hi++;
++     di = dict_lookup(hi);
++     lua_pushstring(L, (char *) hi->hi_key);
++     luaV_pushtypval(L, &di->di_tv);
++     lua_pushlightuserdata(L, (void *) (hi + 1));
++     lua_replace(L, lua_upvalueindex(2));
++     lua_pushinteger(L, n - 1);
++     lua_replace(L, lua_upvalueindex(3));
++     return 2;
++ }
++ 
++     static int
++ luaV_dict_call (lua_State *L)
++ {
++     dict_T *d = luaV_unbox(L, luaV_Dict, 1);
++     hashtab_T *ht = &d->dv_hashtab;
++     lua_pushvalue(L, lua_upvalueindex(1)); /* pass cache table along */
++     lua_pushlightuserdata(L, (void *) ht->ht_array);
++     lua_pushinteger(L, ht->ht_used); /* # remaining items */
++     lua_pushcclosure(L, luaV_dict_iter, 3);
++     return 1;
++ }
++ 
++     static int
++ luaV_dict_index (lua_State *L)
++ {
++     dict_T *d = luaV_unbox(L, luaV_Dict, 1);
++     char_u *key = (char_u *) luaL_checkstring(L, 2);
++     dictitem_T *di = dict_find(d, key, -1);
++     if (di == NULL)
++      lua_pushnil(L);
++     else
++      luaV_pushtypval(L, &di->di_tv);
++     return 1;
++ }
++ 
++     static int
++ luaV_dict_newindex (lua_State *L)
++ {
++     dict_T *d = luaV_unbox(L, luaV_Dict, 1);
++     char_u *key = (char_u *) luaL_checkstring(L, 2);
++     dictitem_T *di;
++     if (d->dv_lock)
++      luaL_error(L, "dict is locked");
++     di = dict_find(d, key, -1);
++     if (di == NULL) /* non-existing key? */
++     {
++      if (lua_isnil(L, 3)) return 0;
++      di = dictitem_alloc(key);
++      if (di == NULL) return 0;
++      if (dict_add(d, di) == FAIL)
++      {
++              vim_free(di);
++              return 0;
++      }
++     }
++     else
++      clear_tv(&di->di_tv);
++     if (lua_isnil(L, 3)) /* remove? */
++     {
++      hashitem_T *hi = hash_find(&d->dv_hashtab, di->di_key);
++      hash_remove(&d->dv_hashtab, hi);
++      dictitem_free(di);
++     }
++     else {
++      typval_T v;
++      luaV_totypval(L, 3, &v);
++      copy_tv(&v, &di->di_tv);
++     }
++     return 0;
++ }
++ 
++ static const luaL_Reg luaV_Dict_mt[] = {
++     {"__tostring", luaV_dict_tostring},
++     {"__gc", luaV_dict_gc},
++     {"__len", luaV_dict_len},
++     {"__call", luaV_dict_call},
++     {"__index", luaV_dict_index},
++     {"__newindex", luaV_dict_newindex},
++     {NULL, NULL}
++ };
++ 
++ 
++ /* =======   Buffer type   ======= */
++ 
++ luaV_newtype(buf_T, buffer, luaV_Buffer, LUAVIM_BUFFER)
++ luaV_pushtype(buf_T, buffer, luaV_Buffer)
++ luaV_type_tostring(buffer, LUAVIM_BUFFER)
++ 
++     static int
+  luaV_buffer_len(lua_State *L)
+  {
+!     buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
+!     lua_pushinteger(L, b->b_ml.ml_line_count);
+      return 1;
+  }
+  
+      static int
+  luaV_buffer_call(lua_State *L)
+  {
+!     buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
+      lua_settop(L, 1);
+!     set_curbuf(b, DOBUF_SPLIT);
+      return 1;
+  }
+  
+      static int
+  luaV_buffer_index(lua_State *L)
+  {
+!     buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
+      linenr_T n = (linenr_T) lua_tointeger(L, 2);
+!     if (n > 0 && n <= b->b_ml.ml_line_count)
+!      luaV_pushline(L, b, n);
+      else if (lua_isstring(L, 2))
+      {
+       const char *s = lua_tostring(L, 2);
+       if (strncmp(s, "name", 4) == 0)
+!          lua_pushstring(L, (char *) b->b_sfname);
+       else if (strncmp(s, "fname", 5) == 0)
+!          lua_pushstring(L, (char *) b->b_ffname);
+       else if (strncmp(s, "number", 6) == 0)
+!          lua_pushinteger(L, b->b_fnum);
+       /* methods */
+       else if (strncmp(s,   "insert", 6) == 0
+               || strncmp(s, "next", 4) == 0
+***************
+*** 584,600 ****
+      static int
+  luaV_buffer_newindex(lua_State *L)
+  {
+!     luaV_Buffer *b = (luaV_Buffer *) lua_touserdata(L, 1);
+      linenr_T n = (linenr_T) luaL_checkinteger(L, 2);
+  #ifdef HAVE_SANDBOX
+      luaV_checksandbox(L);
+  #endif
+!     if (n < 1 || n > (*b)->b_ml.ml_line_count)
+       luaL_error(L, "invalid line number");
+      if (lua_isnil(L, 3)) /* delete line */
+      {
+       buf_T *buf = curbuf;
+!      curbuf = *b;
+       if (u_savedel(n, 1L) == FAIL)
+       {
+           curbuf = buf;
+--- 1122,1138 ----
+      static int
+  luaV_buffer_newindex(lua_State *L)
+  {
+!     buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
+      linenr_T n = (linenr_T) luaL_checkinteger(L, 2);
+  #ifdef HAVE_SANDBOX
+      luaV_checksandbox(L);
+  #endif
+!     if (n < 1 || n > b->b_ml.ml_line_count)
+       luaL_error(L, "invalid line number");
+      if (lua_isnil(L, 3)) /* delete line */
+      {
+       buf_T *buf = curbuf;
+!      curbuf = b;
+       if (u_savedel(n, 1L) == FAIL)
+       {
+           curbuf = buf;
+***************
+*** 607,613 ****
+       }
+       else {
+           deleted_lines_mark(n, 1L);
+!          if (*b == curwin->w_buffer) /* fix cursor in current window? */
+           {
+               if (curwin->w_cursor.lnum >= n)
+               {
+--- 1145,1151 ----
+       }
+       else {
+           deleted_lines_mark(n, 1L);
+!          if (b == curwin->w_buffer) /* fix cursor in current window? */
+           {
+               if (curwin->w_cursor.lnum >= n)
+               {
+***************
+*** 627,633 ****
+      else if (lua_isstring(L, 3)) /* update line */
+      {
+       buf_T *buf = curbuf;
+!      curbuf = *b;
+       if (u_savesub(n) == FAIL)
+       {
+           curbuf = buf;
+--- 1165,1171 ----
+      else if (lua_isstring(L, 3)) /* update line */
+      {
+       buf_T *buf = curbuf;
+!      curbuf = b;
+       if (u_savesub(n) == FAIL)
+       {
+           curbuf = buf;
+***************
+*** 640,646 ****
+       }
+       else changed_bytes(n, 0);
+       curbuf = buf;
+!      if (*b == curwin->w_buffer)
+           check_cursor_col();
+      }
+      else
+--- 1178,1184 ----
+       }
+       else changed_bytes(n, 0);
+       curbuf = buf;
+!      if (b == curwin->w_buffer)
+           check_cursor_col();
+      }
+      else
+***************
+*** 651,658 ****
+      static int
+  luaV_buffer_insert(lua_State *L)
+  {
+!     luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+!     linenr_T last = (*b)->b_ml.ml_line_count;
+      linenr_T n = (linenr_T) luaL_optinteger(L, 3, last);
+      buf_T *buf;
+      luaL_checktype(L, 2, LUA_TSTRING);
+--- 1189,1197 ----
+      static int
+  luaV_buffer_insert(lua_State *L)
+  {
+!     luaV_Buffer *lb = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+!     buf_T *b = (buf_T *) luaV_checkcache(L, (void *) *lb);
+!     linenr_T last = b->b_ml.ml_line_count;
+      linenr_T n = (linenr_T) luaL_optinteger(L, 3, last);
+      buf_T *buf;
+      luaL_checktype(L, 2, LUA_TSTRING);
+***************
+*** 664,670 ****
+      if (n > last) n = last;
+      /* insert */
+      buf = curbuf;
+!     curbuf = *b;
+      if (u_save(n, n + 1) == FAIL)
+      {
+       curbuf = buf;
+--- 1203,1209 ----
+      if (n > last) n = last;
+      /* insert */
+      buf = curbuf;
+!     curbuf = b;
+      if (u_save(n, n + 1) == FAIL)
+      {
+       curbuf = buf;
+***************
+*** 686,692 ****
+  luaV_buffer_next(lua_State *L)
+  {
+      luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+!     luaV_pushbuffer(L, (*b)->b_next);
+      return 1;
+  }
+  
+--- 1225,1232 ----
+  luaV_buffer_next(lua_State *L)
+  {
+      luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+!     buf_T *buf = (buf_T *) luaV_checkcache(L, (void *) *b);
+!     luaV_pushbuffer(L, buf->b_next);
+      return 1;
+  }
+  
+***************
+*** 694,700 ****
+  luaV_buffer_previous(lua_State *L)
+  {
+      luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+!     luaV_pushbuffer(L, (*b)->b_prev);
+      return 1;
+  }
+  
+--- 1234,1241 ----
+  luaV_buffer_previous(lua_State *L)
+  {
+      luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+!     buf_T *buf = (buf_T *) luaV_checkcache(L, (void *) *b);
+!     luaV_pushbuffer(L, buf->b_prev);
+      return 1;
+  }
+  
+***************
+*** 702,709 ****
+  luaV_buffer_isvalid(lua_State *L)
+  {
+      luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+!     lua_pushlightuserdata(L, (void *) (*b));
+!     lua_rawget(L, LUA_ENVIRONINDEX);
+      lua_pushboolean(L, !lua_isnil(L, -1));
+      return 1;
+  }
+--- 1243,1249 ----
+  luaV_buffer_isvalid(lua_State *L)
+  {
+      luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+!     luaV_getudata(L, *b);
+      lua_pushboolean(L, !lua_isnil(L, -1));
+      return 1;
+  }
+***************
+*** 724,801 ****
+  
+  /* =======   Window type   ======= */
+  
+!     static luaV_Window *
+! luaV_newwindow(lua_State *L, win_T *win)
+! {
+!     luaV_Window *w = (luaV_Window *) lua_newuserdata(L, sizeof(luaV_Window));
+!     *w = win;
+!     lua_pushlightuserdata(L, (void *) win);
+!     lua_pushvalue(L, -2);
+!     lua_rawset(L, LUA_ENVIRONINDEX); /* env[win] = udata */
+!     /* to avoid GC, store as key in env */
+!     lua_pushvalue(L, -1);
+!     lua_pushboolean(L, 1);
+!     lua_rawset(L, LUA_ENVIRONINDEX); /* env[udata] = true */
+!     /* set metatable */
+!     luaV_getfield(L, LUAVIM_WINDOW);
+!     lua_setmetatable(L, -2);
+!     return w;
+! }
+! 
+!     static luaV_Window *
+! luaV_pushwindow(lua_State *L, win_T *win)
+! {
+!     luaV_Window *w = NULL;
+!     if (win == NULL)
+!      lua_pushnil(L);
+!     else {
+!      lua_pushlightuserdata(L, (void *) win);
+!      lua_rawget(L, LUA_ENVIRONINDEX);
+!      if (lua_isnil(L, -1)) /* not interned? */
+!      {
+!          lua_pop(L, 1);
+!          w = luaV_newwindow(L, win);
+!      }
+!      else w = (luaV_Window *) lua_touserdata(L, -1);
+!     }
+!     return w;
+! }
+! 
+! /* Window metamethods */
+! 
+!     static int
+! luaV_window_tostring(lua_State *L)
+! {
+!     lua_pushfstring(L, "%s: %p", LUAVIM_WINDOW, lua_touserdata(L, 1));
+!     return 1;
+! }
+  
+      static int
+  luaV_window_call(lua_State *L)
+  {
+!     luaV_Window *w = (luaV_Window *) lua_touserdata(L, 1);
+      lua_settop(L, 1);
+!     win_goto(*w);
+      return 1;
+  }
+  
+      static int
+  luaV_window_index(lua_State *L)
+  {
+!     luaV_Window *w = (luaV_Window *) lua_touserdata(L, 1);
+      const char *s = luaL_checkstring(L, 2);
+      if (strncmp(s, "buffer", 6) == 0)
+!      luaV_pushbuffer(L, (*w)->w_buffer);
+      else if (strncmp(s, "line", 4) == 0)
+!      lua_pushinteger(L, (*w)->w_cursor.lnum);
+      else if (strncmp(s, "col", 3) == 0)
+!      lua_pushinteger(L, (*w)->w_cursor.col + 1);
+  #ifdef FEAT_VERTSPLIT
+      else if (strncmp(s, "width", 5) == 0)
+!      lua_pushinteger(L, W_WIDTH((*w)));
+  #endif
+      else if (strncmp(s, "height", 6) == 0)
+!      lua_pushinteger(L, (*w)->w_height);
+      /* methods */
+      else if (strncmp(s,   "next", 4) == 0
+           || strncmp(s, "previous", 8) == 0
+--- 1264,1299 ----
+  
+  /* =======   Window type   ======= */
+  
+! luaV_newtype(win_T, window, luaV_Window, LUAVIM_WINDOW)
+! luaV_pushtype(win_T, window, luaV_Window)
+! luaV_type_tostring(window, LUAVIM_WINDOW)
+  
+      static int
+  luaV_window_call(lua_State *L)
+  {
+!     win_T *w = (win_T *) luaV_checkvalid(L, luaV_Window, 1);
+      lua_settop(L, 1);
+!     win_goto(w);
+      return 1;
+  }
+  
+      static int
+  luaV_window_index(lua_State *L)
+  {
+!     win_T *w = (win_T *) luaV_checkvalid(L, luaV_Window, 1);
+      const char *s = luaL_checkstring(L, 2);
+      if (strncmp(s, "buffer", 6) == 0)
+!      luaV_pushbuffer(L, w->w_buffer);
+      else if (strncmp(s, "line", 4) == 0)
+!      lua_pushinteger(L, w->w_cursor.lnum);
+      else if (strncmp(s, "col", 3) == 0)
+!      lua_pushinteger(L, w->w_cursor.col + 1);
+  #ifdef FEAT_VERTSPLIT
+      else if (strncmp(s, "width", 5) == 0)
+!      lua_pushinteger(L, W_WIDTH(w));
+  #endif
+      else if (strncmp(s, "height", 6) == 0)
+!      lua_pushinteger(L, w->w_height);
+      /* methods */
+      else if (strncmp(s,   "next", 4) == 0
+           || strncmp(s, "previous", 8) == 0
+***************
+*** 812,818 ****
+      static int
+  luaV_window_newindex (lua_State *L)
+  {
+!     luaV_Window *w = (luaV_Window *) lua_touserdata(L, 1);
+      const char *s = luaL_checkstring(L, 2);
+      int v = luaL_checkinteger(L, 3);
+      if (strncmp(s, "line", 4) == 0)
+--- 1310,1316 ----
+      static int
+  luaV_window_newindex (lua_State *L)
+  {
+!     win_T *w = (win_T *) luaV_checkvalid(L, luaV_Window, 1);
+      const char *s = luaL_checkstring(L, 2);
+      int v = luaL_checkinteger(L, 3);
+      if (strncmp(s, "line", 4) == 0)
+***************
+*** 820,828 ****
+  #ifdef HAVE_SANDBOX
+       luaV_checksandbox(L);
+  #endif
+!      if (v < 1 || v > (*w)->w_buffer->b_ml.ml_line_count)
+           luaL_error(L, "line out of range");
+!      (*w)->w_cursor.lnum = v;
+       update_screen(VALID);
+      }
+      else if (strncmp(s, "col", 3) == 0)
+--- 1318,1326 ----
+  #ifdef HAVE_SANDBOX
+       luaV_checksandbox(L);
+  #endif
+!      if (v < 1 || v > w->w_buffer->b_ml.ml_line_count)
+           luaL_error(L, "line out of range");
+!      w->w_cursor.lnum = v;
+       update_screen(VALID);
+      }
+      else if (strncmp(s, "col", 3) == 0)
+***************
+*** 830,836 ****
+  #ifdef HAVE_SANDBOX
+       luaV_checksandbox(L);
+  #endif
+!      (*w)->w_cursor.col = v - 1;
+       update_screen(VALID);
+      }
+  #ifdef FEAT_VERTSPLIT
+--- 1328,1334 ----
+  #ifdef HAVE_SANDBOX
+       luaV_checksandbox(L);
+  #endif
+!      w->w_cursor.col = v - 1;
+       update_screen(VALID);
+      }
+  #ifdef FEAT_VERTSPLIT
+***************
+*** 840,846 ****
+  #ifdef FEAT_GUI
+       need_mouse_correct = TRUE;
+  #endif
+!      curwin = *w;
+       win_setwidth(v);
+       curwin = win;
+      }
+--- 1338,1344 ----
+  #ifdef FEAT_GUI
+       need_mouse_correct = TRUE;
+  #endif
+!      curwin = w;
+       win_setwidth(v);
+       curwin = win;
+      }
+***************
+*** 851,857 ****
+  #ifdef FEAT_GUI
+       need_mouse_correct = TRUE;
+  #endif
+!      curwin = *w;
+       win_setheight(v);
+       curwin = win;
+      }
+--- 1349,1355 ----
+  #ifdef FEAT_GUI
+       need_mouse_correct = TRUE;
+  #endif
+!      curwin = w;
+       win_setheight(v);
+       curwin = win;
+      }
+***************
+*** 864,870 ****
+  luaV_window_next(lua_State *L)
+  {
+      luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+!     luaV_pushwindow(L, (*w)->w_next);
+      return 1;
+  }
+  
+--- 1362,1369 ----
+  luaV_window_next(lua_State *L)
+  {
+      luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+!     win_T *win = (win_T *) luaV_checkcache(L, (void *) *w);
+!     luaV_pushwindow(L, win->w_next);
+      return 1;
+  }
+  
+***************
+*** 872,878 ****
+  luaV_window_previous(lua_State *L)
+  {
+      luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+!     luaV_pushwindow(L, (*w)->w_prev);
+      return 1;
+  }
+  
+--- 1371,1378 ----
+  luaV_window_previous(lua_State *L)
+  {
+      luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+!     win_T *win = (win_T *) luaV_checkcache(L, (void *) *w);
+!     luaV_pushwindow(L, win->w_prev);
+      return 1;
+  }
+  
+***************
+*** 880,887 ****
+  luaV_window_isvalid(lua_State *L)
+  {
+      luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+!     lua_pushlightuserdata(L, (void *) (*w));
+!     lua_rawget(L, LUA_ENVIRONINDEX);
+      lua_pushboolean(L, !lua_isnil(L, -1));
+      return 1;
+  }
+--- 1380,1386 ----
+  luaV_window_isvalid(lua_State *L)
+  {
+      luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+!     luaV_getudata(L, *w);
+      lua_pushboolean(L, !lua_isnil(L, -1));
+      return 1;
+  }
+***************
+*** 983,988 ****
+--- 1482,1509 ----
+  }
+  
+      static int
++ luaV_list(lua_State *L)
++ {
++     list_T *l = list_alloc();
++     if (l == NULL)
++      lua_pushnil(L);
++     else
++      luaV_newlist(L, l);
++     return 1;
++ }
++ 
++     static int
++ luaV_dict(lua_State *L)
++ {
++     dict_T *d = dict_alloc();
++     if (d == NULL)
++      lua_pushnil(L);
++     else
++      luaV_newdict(L, d);
++     return 1;
++ }
++ 
++     static int
+  luaV_buffer(lua_State *L)
+  {
+      buf_T *buf;
+***************
+*** 1008,1022 ****
+                   break;
+           }
+       }
+-      if (buf == NULL) /* not found? */
+-          lua_pushnil(L);
+-      else
+-          luaV_pushbuffer(L, buf);
+      }
+!     else {
+       buf = (lua_toboolean(L, 1)) ? firstbuf : curbuf; /* first buffer? */
+!      luaV_pushbuffer(L, buf);
+!     }
+      return 1;
+  }
+  
+--- 1529,1538 ----
+                   break;
+           }
+       }
+      }
+!     else
+       buf = (lua_toboolean(L, 1)) ? firstbuf : curbuf; /* first buffer? */
+!     luaV_pushbuffer(L, buf);
+      return 1;
+  }
+  
+***************
+*** 1029,1043 ****
+       int n = lua_tointeger(L, 1);
+       for (win = firstwin; win != NULL; win = win->w_next, n--)
+           if (n == 1) break;
+-      if (win == NULL) /* not found? */
+-          lua_pushnil(L);
+-      else
+-          luaV_pushwindow(L, win);
+      }
+!     else {
+       win = (lua_toboolean(L, 1)) ? firstwin : curwin; /* first window? */
+!      luaV_pushwindow(L, win);
+!     }
+      return 1;
+  }
+  
+--- 1545,1554 ----
+       int n = lua_tointeger(L, 1);
+       for (win = firstwin; win != NULL; win = win->w_next, n--)
+           if (n == 1) break;
+      }
+!     else
+       win = (lua_toboolean(L, 1)) ? firstwin : curwin; /* first window? */
+!     luaV_pushwindow(L, win);
+      return 1;
+  }
+  
+***************
+*** 1054,1086 ****
+  }
+  
+      static int
+! luaV_isbuffer(lua_State *L)
+! {
+!     lua_pushboolean(L, luaV_toudata(L, 1, LUAVIM_BUFFER) != NULL);
+!     return 1;
+! }
+! 
+!     static int
+! luaV_iswindow(lua_State *L)
+  {
+!     lua_pushboolean(L, luaV_toudata(L, 1, LUAVIM_WINDOW) != NULL);
+!     return 1;
+! }
+! 
+! /* for freeing buffer and window objects; lightuserdata as arg */
+!     static int
+! luaV_free(lua_State *L)
+! {
+!     lua_pushvalue(L, 1); /* lightudata */
+!     lua_rawget(L, LUA_ENVIRONINDEX);
+!     if (!lua_isnil(L, -1))
+      {
+!      lua_pushnil(L);
+!      lua_rawset(L, LUA_ENVIRONINDEX); /* env[udata] = nil */
+!      lua_pushnil(L);
+!      lua_rawset(L, LUA_ENVIRONINDEX); /* env[lightudata] = nil */
+      }
+!     return 0;
+  }
+  
+  static const luaL_Reg luaV_module[] = {
+--- 1565,1606 ----
+  }
+  
+      static int
+! luaV_type(lua_State *L)
+  {
+!     luaL_checkany(L, 1);
+!     if (lua_type(L, 1) == LUA_TUSERDATA) /* check vim udata? */
+      {
+!      lua_settop(L, 1);
+!      if (lua_getmetatable(L, 1))
+!      {
+!          luaV_getfield(L, LUAVIM_LIST);
+!          if (lua_rawequal(L, -1, 2))
+!          {
+!              lua_pushstring(L, "list");
+!              return 1;
+!          }
+!          luaV_getfield(L, LUAVIM_DICT);
+!          if (lua_rawequal(L, -1, 2))
+!          {
+!              lua_pushstring(L, "dict");
+!              return 1;
+!          }
+!          luaV_getfield(L, LUAVIM_BUFFER);
+!          if (lua_rawequal(L, -1, 2))
+!          {
+!              lua_pushstring(L, "buffer");
+!              return 1;
+!          }
+!          luaV_getfield(L, LUAVIM_WINDOW);
+!          if (lua_rawequal(L, -1, 2))
+!          {
+!              lua_pushstring(L, "window");
+!              return 1;
+!          }
+!      }
+      }
+!     lua_pushstring(L, luaL_typename(L, 1)); /* fallback */
+!     return 1;
+  }
+  
+  static const luaL_Reg luaV_module[] = {
+***************
+*** 1088,1111 ****
+      {"eval", luaV_eval},
+      {"beep", luaV_beep},
+      {"line", luaV_line},
+      {"buffer", luaV_buffer},
+      {"window", luaV_window},
+      {"open", luaV_open},
+!     {"isbuffer", luaV_isbuffer},
+!     {"iswindow", luaV_iswindow},
+      {NULL, NULL}
+  };
+  
+      static int
+  luaopen_vim(lua_State *L)
+  {
+!     /* set environment */
+      lua_newtable(L);
+      lua_newtable(L);
+!     lua_pushliteral(L, "v");
+      lua_setfield(L, -2, "__mode");
+!     lua_setmetatable(L, -2);
+!     lua_replace(L, LUA_ENVIRONINDEX);
+      /* print */
+      lua_pushcfunction(L, luaV_print);
+      lua_setglobal(L, "print");
+--- 1608,1695 ----
+      {"eval", luaV_eval},
+      {"beep", luaV_beep},
+      {"line", luaV_line},
++     {"list", luaV_list},
++     {"dict", luaV_dict},
+      {"buffer", luaV_buffer},
+      {"window", luaV_window},
+      {"open", luaV_open},
+!     {"type", luaV_type},
+      {NULL, NULL}
+  };
+  
++ /* for freeing list, dict, buffer and window objects; lightuserdata as arg */
++     static int
++ luaV_free(lua_State *L)
++ {
++     lua_pushnil(L);
++     luaV_setudata(L, lua_touserdata(L, 1));
++     return 0;
++ }
++ 
++     static int
++ luaV_luaeval (lua_State *L)
++ {
++     luaL_Buffer b;
++     size_t l;
++     const char *str = lua_tolstring(L, 1, &l);
++     typval_T *arg = (typval_T *) lua_touserdata(L, 2);
++     typval_T *rettv = (typval_T *) lua_touserdata(L, 3);
++     luaL_buffinit(L, &b);
++     luaL_addlstring(&b, LUAVIM_EVALHEADER, sizeof(LUAVIM_EVALHEADER) - 1);
++     luaL_addlstring(&b, str, l);
++     luaL_pushresult(&b);
++     str = lua_tolstring(L, -1, &l);
++     if (luaL_loadbuffer(L, str, l, LUAVIM_EVALNAME)) /* compile error? */
++     {
++      luaV_emsg(L);
++      return 0;
++     }
++     luaV_pushtypval(L, arg);
++     if (lua_pcall(L, 1, 1, 0)) /* running error? */
++     {
++      luaV_emsg(L);
++      return 0;
++     }
++     luaV_totypval(L, -1, rettv);
++     return 0;
++ }
++ 
++     static int
++ luaV_setref (lua_State *L)
++ {
++     int copyID = lua_tointeger(L, 1);
++     typval_T tv;
++     luaV_getfield(L, LUAVIM_LIST);
++     luaV_getfield(L, LUAVIM_DICT);
++     lua_pushnil(L);
++     while (lua_next(L, lua_upvalueindex(1)) != 0) /* traverse cache table */
++     {
++      lua_getmetatable(L, -1);
++      if (lua_rawequal(L, -1, 2)) /* list? */
++      {
++          tv.v_type = VAR_LIST;
++          tv.vval.v_list = (list_T *) lua_touserdata(L, 4); /* key */
++      }
++      else if (lua_rawequal(L, -1, 3)) /* dict? */
++      {
++          tv.v_type = VAR_DICT;
++          tv.vval.v_dict = (dict_T *) lua_touserdata(L, 4); /* key */
++      }
++      lua_pop(L, 2); /* metatable and value */
++      set_ref_in_tv(&tv, copyID);
++     }
++     return 0;
++ }
++ 
+      static int
+  luaopen_vim(lua_State *L)
+  {
+!     /* set cache table */
+      lua_newtable(L);
+      lua_newtable(L);
+!     lua_pushstring(L, "v");
+      lua_setfield(L, -2, "__mode");
+!     lua_setmetatable(L, -2); /* cache is weak-valued */
+      /* print */
+      lua_pushcfunction(L, luaV_print);
+      lua_setglobal(L, "print");
+***************
+*** 1116,1129 ****
+      lua_pop(L, 1);
+      /* free */
+      lua_pushlightuserdata(L, (void *) LUAVIM_FREE);
+!     lua_pushcfunction(L, luaV_free);
+      lua_rawset(L, LUA_REGISTRYINDEX);
+      /* register */
+      luaV_newmetatable(L, LUAVIM_BUFFER);
+!     luaL_register(L, NULL, luaV_Buffer_mt);
+      luaV_newmetatable(L, LUAVIM_WINDOW);
+!     luaL_register(L, NULL, luaV_Window_mt);
+!     luaL_register(L, LUAVIM_NAME, luaV_module);
+      return 0;
+  }
+  
+--- 1700,1735 ----
+      lua_pop(L, 1);
+      /* free */
+      lua_pushlightuserdata(L, (void *) LUAVIM_FREE);
+!     lua_pushvalue(L, 1); /* cache table */
+!     lua_pushcclosure(L, luaV_free, 1);
+!     lua_rawset(L, LUA_REGISTRYINDEX);
+!     /* luaeval */
+!     lua_pushlightuserdata(L, (void *) LUAVIM_LUAEVAL);
+!     lua_pushvalue(L, 1); /* cache table */
+!     lua_pushcclosure(L, luaV_luaeval, 1);
+!     lua_rawset(L, LUA_REGISTRYINDEX);
+!     /* setref */
+!     lua_pushlightuserdata(L, (void *) LUAVIM_SETREF);
+!     lua_pushvalue(L, 1); /* cache table */
+!     lua_pushcclosure(L, luaV_setref, 1);
+      lua_rawset(L, LUA_REGISTRYINDEX);
+      /* register */
++     luaV_newmetatable(L, LUAVIM_LIST);
++     lua_pushvalue(L, 1);
++     luaV_openlib(L, luaV_List_mt, 1);
++     luaV_newmetatable(L, LUAVIM_DICT);
++     lua_pushvalue(L, 1);
++     luaV_openlib(L, luaV_Dict_mt, 1);
+      luaV_newmetatable(L, LUAVIM_BUFFER);
+!     lua_pushvalue(L, 1); /* cache table */
+!     luaV_openlib(L, luaV_Buffer_mt, 1);
+      luaV_newmetatable(L, LUAVIM_WINDOW);
+!     lua_pushvalue(L, 1); /* cache table */
+!     luaV_openlib(L, luaV_Window_mt, 1);
+!     lua_newtable(L); /* vim table */
+!     lua_pushvalue(L, 1); /* cache table */
+!     luaV_openlib(L, luaV_module, 1);
+!     lua_setglobal(L, LUAVIM_NAME);
+      return 0;
+  }
+  
+***************
+*** 1154,1160 ****
+  static lua_State *L = NULL;
+  
+      static int
+! lua_is_open(void)
+  {
+      return L != NULL;
+  }
+--- 1760,1766 ----
+  static lua_State *L = NULL;
+  
+      static int
+! lua_isopen(void)
+  {
+      return L != NULL;
+  }
+***************
+*** 1162,1168 ****
+      static int
+  lua_init(void)
+  {
+!     if (L == NULL)
+      {
+  #ifdef DYNAMIC_LUA
+       if (!lua_enabled(TRUE))
+--- 1768,1774 ----
+      static int
+  lua_init(void)
+  {
+!     if (!lua_isopen())
+      {
+  #ifdef DYNAMIC_LUA
+       if (!lua_enabled(TRUE))
+***************
+*** 1179,1185 ****
+      void
+  lua_end(void)
+  {
+!     if (L != NULL)
+      {
+       lua_close(L);
+       L = NULL;
+--- 1785,1791 ----
+      void
+  lua_end(void)
+  {
+!     if (lua_isopen())
+      {
+       lua_close(L);
+       L = NULL;
+***************
+*** 1273,1295 ****
+      }
+  }
+  
+! /* buffer */
+      void
+! lua_buffer_free(buf_T *buf)
+  {
+!     if (!lua_is_open()) return;
+!     luaV_getfield(L, LUAVIM_FREE);
+!     lua_pushlightuserdata(L, (void *) buf);
+!     lua_call(L, 1, 0);
+  }
+  
+- /* window */
+      void
+! lua_window_free(win_T *win)
+  {
+!     if (!lua_is_open()) return;
+!     luaV_getfield(L, LUAVIM_FREE);
+!     lua_pushlightuserdata(L, (void *) win);
+      lua_call(L, 1, 0);
+  }
+  
+--- 1879,1914 ----
+      }
+  }
+  
+! #define luaV_freetype(typ,tname) \
+!      void \
+!     lua_##tname##_free(typ *o) \
+!     { \
+!      if (!lua_isopen()) return; \
+!      luaV_getfield(L, LUAVIM_FREE); \
+!      lua_pushlightuserdata(L, (void *) o); \
+!      lua_call(L, 1, 0); \
+!     }
+! 
+! luaV_freetype(buf_T, buffer)
+! luaV_freetype(win_T, window)
+! 
+      void
+! do_luaeval (char_u *str, typval_T *arg, typval_T *rettv)
+  {
+!     lua_init();
+!     luaV_getfield(L, LUAVIM_LUAEVAL);
+!     lua_pushstring(L, (char *) str);
+!     lua_pushlightuserdata(L, (void *) arg);
+!     lua_pushlightuserdata(L, (void *) rettv);
+!     lua_call(L, 3, 0);
+  }
+  
+      void
+! set_ref_in_lua (int copyID)
+  {
+!     if (!lua_isopen()) return;
+!     luaV_getfield(L, LUAVIM_SETREF);
+!     lua_pushinteger(L, copyID);
+      lua_call(L, 1, 0);
+  }
+  
+*** ../vim-7.3.489/src/proto/if_lua.pro        2010-08-15 21:57:28.000000000 +0200
+--- src/proto/if_lua.pro       2012-04-05 16:41:35.000000000 +0200
+***************
+*** 6,9 ****
+--- 6,11 ----
+  void ex_luafile __ARGS((exarg_T *eap));
+  void lua_buffer_free __ARGS((buf_T *buf));
+  void lua_window_free __ARGS((win_T *win));
++ void do_luaeval __ARGS((char_u *str, typval_T *arg, typval_T *rettv));
++ void set_ref_in_lua __ARGS((int copyID));
+  /* vim: set ft=c : */
+*** ../vim-7.3.489/src/version.c       2012-04-05 16:07:01.000000000 +0200
+--- src/version.c      2012-04-05 16:52:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     490,
+  /**/
+
+-- 
+Even got a Datapoint 3600(?) with a DD50 connector instead of the
+usual DB25...  what a nightmare trying to figure out the pinout
+for *that* with no spex...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.491.patch0 b/vim/patches/vim-7.3.491.patch0
new file mode 100644 (file)
index 0000000..b675722
--- /dev/null
@@ -0,0 +1,235 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.491
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.491
+Problem:    No tests for Lua.
+Solution:   Add some simple tests for Lua. (Luis Carvalho)
+Files:      src/testdir/test1.in, src/testdir/test85.in, src/testdir/test85.ok
+            src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
+            src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
+            src/testdir/Make_vms.mms, src/testdir/Makefile
+
+
+*** ../vim-7.3.490/src/testdir/test1.in        2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test1.in       2012-04-05 16:37:37.000000000 +0200
+***************
+*** 15,20 ****
+--- 15,21 ----
+  be set like small.vim above.  mbyte.vim is sourced by tests that require the
+  +multi_byte feature.
+  Similar logic is applied to the +mzscheme feature, using mzscheme.vim.
++ Similar logic is applied to the +lua feature, using lua.vim.
+  
+  STARTTEST
+  :" Write a single line to test.out to check if testing works at all.
+***************
+*** 28,37 ****
+--- 29,45 ----
+  qa!
+  \e:w! mbyte.vim
+  :w! mzscheme.vim
++ :w! lua.vim
++ :"
+  :" If +multi_byte feature supported, make mbyte.vim empty.
+  :if has("multi_byte") | sp another | w! mbyte.vim | q | endif
++ :"
+  :" If +mzscheme feature supported, make mzscheme.vim empty.
+  :if has("mzscheme") | sp another | w! mzscheme.vim | q | endif
++ :"
++ :" If +lua feature supported, make lua.vim empty.
++ :if has("lua") | sp another | w! lua.vim | q | endif
++ :"
+  :" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
+  :" Otherwise write small.vim to skip the test.
+  :if 1 | q! | endif
+*** ../vim-7.3.490/src/testdir/test85.in       2012-04-05 16:56:12.000000000 +0200
+--- src/testdir/test85.in      2012-04-05 16:44:00.000000000 +0200
+***************
+*** 0 ****
+--- 1,42 ----
++ Test for Lua interface and luaeval() function
++ 
++ STARTTEST
++ :so small.vim
++ :so lua.vim
++ :set nocompatible viminfo+=nviminfo
++ :lua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
++ :lua h = vim.dict(); h.list = l
++ :call garbagecollect()
++ /^1
++ :" change buffer contents
++ :lua curbuf = vim.buffer()
++ :lua curline = vim.eval"line('.')"
++ :lua curbuf[curline] = "1 changed line 1"
++ :" scalar test
++ :let tmp_string = luaeval('"string"')
++ :let tmp_1000 = luaeval('1000')
++ :if printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
++ :let scalar_res = "OK"
++ :else
++ :let scalar_res = "FAILED"
++ :endif
++ :call append(search("^1"), "scalar test " . scalar_res)
++ :" dictionary containing a list
++ :let tmp = luaeval("h").list[1]
++ :/^2/put =tmp
++ :" circular list (at the same time test lists containing lists)
++ :lua l[2] = l
++ :let l2 = luaeval("h").list
++ :if l2[2] == l2
++ :let res = "OK"
++ :else
++ :let res = "FAILED"
++ :endif
++ :call setline(search("^3"), "circular test " . res)
++ :?^1?,$w! test.out
++ :qa!
++ ENDTEST
++ 
++ 1 line 1
++ 2 line 2
++ 3 line 3
+*** ../vim-7.3.490/src/testdir/test85.ok       2012-04-05 16:56:12.000000000 +0200
+--- src/testdir/test85.ok      2012-04-05 16:18:56.000000000 +0200
+***************
+*** 0 ****
+--- 1,5 ----
++ 1 changed line 1
++ scalar test OK
++ 2 line 2
++ dictionary with list OK
++ circular test OK
+*** ../vim-7.3.490/src/testdir/Make_amiga.mak  2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Make_amiga.mak 2012-04-05 16:21:55.000000000 +0200
+***************
+*** 13,18 ****
+--- 13,19 ----
+  # test25     uses symbolic link
+  # test27     can't edit file with "*"
+  # test52     only for Win32
++ # test85     no Lua interface
+  
+  SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
+               test7.out test8.out test9.out \
+*** ../vim-7.3.490/src/testdir/Make_dos.mak    2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Make_dos.mak   2012-04-05 16:22:16.000000000 +0200
+***************
+*** 30,36 ****
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+               test79.out test80.out test81.out test82.out test83.out \
+!              test84.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 30,36 ----
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+               test79.out test80.out test81.out test82.out test83.out \
+!              test84.out test85.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.490/src/testdir/Make_ming.mak   2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Make_ming.mak  2012-04-05 16:22:25.000000000 +0200
+***************
+*** 50,56 ****
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+               test79.out test80.out test81.out test82.out test83.out \
+!              test84.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+--- 50,56 ----
+               test68.out test69.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+               test79.out test80.out test81.out test82.out test83.out \
+!              test84.out test85.out
+  
+  SCRIPTS32 =  test50.out test70.out
+  
+*** ../vim-7.3.490/src/testdir/Make_os2.mak    2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Make_os2.mak   2012-04-05 16:22:38.000000000 +0200
+***************
+*** 13,18 ****
+--- 13,19 ----
+  # test25     uses symbolic link
+  # test27     can't edit file with "*" in file name
+  # test52     only for Win32
++ # test85     no Lua interface
+  
+  SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
+               test7.out test8.out test9.out \
+*** ../vim-7.3.490/src/testdir/Make_vms.mms    2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Make_vms.mms   2012-04-05 16:23:08.000000000 +0200
+***************
+*** 4,10 ****
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2012 Mar 28
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+  # Authors:   Zoltan Arpadffy, <arpadffy@polarhome.com>
+  #            Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+  #
+! # Last change:  2012 Apr 05
+  #
+  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+  # Edit the lines in the Configuration section below to select.
+***************
+*** 89,94 ****
+--- 89,95 ----
+  # with too many dots).
+  #
+  # Test 72: unknown reason
++ # Test 85: no Lua interface
+  
+  .IFDEF WANT_GUI
+  SCRIPT_GUI = test16.out
+*** ../vim-7.3.490/src/testdir/Makefile        2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Makefile       2012-04-05 16:21:13.000000000 +0200
+***************
+*** 27,33 ****
+               test69.out test70.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+               test79.out test80.out test81.out test82.out test83.out \
+!              test84.out
+  
+  SCRIPTS_GUI = test16.out
+  
+--- 27,33 ----
+               test69.out test70.out test71.out test72.out test73.out \
+               test74.out test75.out test76.out test77.out test78.out \
+               test79.out test80.out test81.out test82.out test83.out \
+!              test84.out test85.out
+  
+  SCRIPTS_GUI = test16.out
+  
+*** ../vim-7.3.490/src/version.c       2012-04-05 16:53:56.000000000 +0200
+--- src/version.c      2012-04-05 16:55:27.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     491,
+  /**/
+
+-- 
+You had connectors?  Eeee, when I were a lad we 'ad to carry the
+bits between the computer and the terminal with a spoon...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.492.patch0 b/vim/patches/vim-7.3.492.patch0
new file mode 100644 (file)
index 0000000..b32b6f6
--- /dev/null
@@ -0,0 +1,718 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.492
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.492
+Problem:    Can't indent conditions separately from function arguments.
+Solution:   Add the 'k' flag in 'cino. (Lech Lorens)
+Files:     runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
+           src/testdir/test3.ok
+
+
+*** ../vim-7.3.491/runtime/doc/indent.txt      2011-06-26 03:16:58.000000000 +0200
+--- runtime/doc/indent.txt     2012-04-05 17:12:14.000000000 +0200
+***************
+*** 459,464 ****
+--- 460,481 ----
+                 a_short_line(argument,    a_short_line(argument,
+                              argument);                argument);
+  <
++                                                      *cino-k*
++      kN    When in unclosed parentheses which follow "if", "for" or
++            "while" and N is non-zero, overrides the behaviour defined by
++            "(N": causes the indent to be N characters relative to the outer
++            context (i.e. the line where "if", "for" or "while" is).  Has
++            no effect on deeper levels of nesting.  Affects flags like "wN"
++            only for the "if", "for" and "while" conditions.  If 0, defaults
++            to behaviour defined by the "(N" flag.  (default: 0).
++ 
++              cino=(0                    cino=(0,ks >
++                if (condition1            if (condition1
++                    && condition2)                && condition2)
++                    action();                 action();
++                function(argument1        function(argument1
++                         && argument2);            && argument2);
++ <
+                                                       *cino-m*
+       mN    When N is non-zero, line up a line starting with a closing
+             parentheses with the first character of the line with the
+***************
+*** 527,540 ****
+  
+                                                               *cino-#*
+       #N    When N is non-zero recognize shell/Perl comments, starting with
+!            '#'.  Default N is zero: don't recognizes '#' comments.  Note
+             that lines starting with # will still be seen as preprocessor
+             lines.
+  
+  
+  The defaults, spelled out in full, are:
+       cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
+!                      c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
+  
+  Vim puts a line in column 1 if:
+  - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
+--- 546,559 ----
+  
+                                                               *cino-#*
+       #N    When N is non-zero recognize shell/Perl comments, starting with
+!            '#'.  Default N is zero: don't recognize '#' comments.  Note
+             that lines starting with # will still be seen as preprocessor
+             lines.
+  
+  
+  The defaults, spelled out in full, are:
+       cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
+!                      c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0
+  
+  Vim puts a line in column 1 if:
+  - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
+*** ../vim-7.3.491/src/misc1.c 2012-02-29 13:49:03.000000000 +0100
+--- src/misc1.c        2012-04-05 17:12:14.000000000 +0200
+***************
+*** 5771,5776 ****
+--- 5771,5822 ----
+  }
+  
+  /*
++  * Check whether in "p" there is an "if", "for" or "while" before offset.
++  * Return 0 if there is none.
++  * Otherwise return !0 and update "*poffset" to point to the place where the
++  * string was found.
++  */
++     static int
++ cin_is_if_for_while_before_offset(line, offset, poffset)
++     char_u *line;
++     size_t offset;
++     int    *poffset;
++ {
++ 
++     if (offset-- < 2)
++      return 0;
++     while (offset > 2 && vim_iswhite(line[offset]))
++      --offset;
++ 
++     offset -= 1;
++     if (!STRNCMP(line + offset, "if", 2))
++      goto probablyFound;
++ 
++     if (offset >= 1)
++     {
++      offset -= 1;
++      if (!STRNCMP(line + offset, "for", 3))
++          goto probablyFound;
++ 
++      if (offset >= 2)
++      {
++          offset -= 2;
++          if (!STRNCMP(line + offset, "while", 5))
++              goto probablyFound;
++      }
++     }
++ 
++     return 0;
++ probablyFound:
++     if (!offset || !vim_isIDc(line[offset - 1]))
++     {
++      *poffset = offset;
++      return 1;
++     }
++     return 0;
++ }
++ 
++ /*
+   * Return TRUE if we are at the end of a do-while.
+   *    do
+   *       nothing;
+***************
+*** 6124,6130 ****
+  
+  /*
+   * Find the matching '(', failing if it is in a comment.
+!  * Return NULL of no match found.
+   */
+      static pos_T *
+  find_match_paren(ind_maxparen, ind_maxcomment)           /* XXX */
+--- 6170,6176 ----
+  
+  /*
+   * Find the matching '(', failing if it is in a comment.
+!  * Return NULL if no match found.
+   */
+      static pos_T *
+  find_match_paren(ind_maxparen, ind_maxcomment)           /* XXX */
+***************
+*** 6393,6398 ****
+--- 6439,6450 ----
+       */
+      int ind_cpp_namespace = 0;
+  
++     /*
++      * handle continuation lines containing conditions of if(), for() and
++      * while()
++      */
++     int ind_if_for_while = 0;
++ 
+      pos_T    cur_curpos;
+      int              amount;
+      int              scope_amount;
+***************
+*** 6437,6442 ****
+--- 6489,6495 ----
+      int              cont_amount = 0;    /* amount for continuation line */
+      int              original_line_islabel;
+      int              added_to_amount = 0;
++     int              is_if_for_while = 0;
+  
+      for (options = curbuf->b_p_cino; *options; )
+      {
+***************
+*** 6509,6514 ****
+--- 6562,6568 ----
+           case 'l': ind_keep_case_label = n; break;
+           case '#': ind_hash_comment = n; break;
+           case 'N': ind_cpp_namespace = n; break;
++          case 'k': ind_if_for_while = n; break;
+       }
+       if (*options == ',')
+           ++options;
+***************
+*** 6812,6817 ****
+--- 6866,6900 ----
+       if (amount == -1)
+       {
+           int     ignore_paren_col = 0;
++          int     is_if_for_while = 0;
++ 
++          if (ind_if_for_while)
++          {
++              /* Look for the outermost opening parenthesis on this line
++               * and check whether it belongs to an "if", "for" or "while". */
++ 
++              pos_T       cursor_save = curwin->w_cursor;
++              pos_T       outermost;
++              char_u      *line;
++              int         look_col;
++ 
++              trypos = &our_paren_pos;
++              do {
++                  outermost = *trypos;
++                  curwin->w_cursor.lnum = outermost.lnum;
++                  curwin->w_cursor.col = outermost.col;
++ 
++                  trypos = find_match_paren(ind_maxparen, ind_maxcomment);
++              } while (trypos && trypos->lnum == outermost.lnum);
++ 
++              curwin->w_cursor = cursor_save;
++ 
++              line = ml_get(outermost.lnum);
++ 
++              is_if_for_while =
++                  cin_is_if_for_while_before_offset(line, outermost.col,
++                                                    &outermost.col);
++          }
+  
+           amount = skip_label(our_paren_pos.lnum, &look, ind_maxcomment);
+           look = skipwhite(look);
+***************
+*** 6836,6842 ****
+               curwin->w_cursor.lnum = save_lnum;
+               look = ml_get(our_paren_pos.lnum) + look_col;
+           }
+!          if (theline[0] == ')' || ind_unclosed == 0
+                   || (!ind_unclosed_noignore && *look == '('
+                                                   && ignore_paren_col == 0))
+           {
+--- 6919,6925 ----
+               curwin->w_cursor.lnum = save_lnum;
+               look = ml_get(our_paren_pos.lnum) + look_col;
+           }
+!          if (theline[0] == ')' || (ind_unclosed == 0 && is_if_for_while == 0)
+                   || (!ind_unclosed_noignore && *look == '('
+                                                   && ignore_paren_col == 0))
+           {
+***************
+*** 6907,6913 ****
+           {
+               /* Line up with the start of the matching paren line. */
+           }
+!          else if (ind_unclosed == 0 || (!ind_unclosed_noignore
+                                   && *look == '(' && ignore_paren_col == 0))
+           {
+               if (cur_amount != MAXCOL)
+--- 6990,6997 ----
+           {
+               /* Line up with the start of the matching paren line. */
+           }
+!          else if ((ind_unclosed == 0 && is_if_for_while == 0)
+!                   || (!ind_unclosed_noignore
+                                   && *look == '(' && ignore_paren_col == 0))
+           {
+               if (cur_amount != MAXCOL)
+***************
+*** 6943,6949 ****
+                   if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
+                       amount += ind_unclosed2;
+                   else
+!                      amount += ind_unclosed;
+               }
+               /*
+                * For a line starting with ')' use the minimum of the two
+--- 7027,7038 ----
+                   if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
+                       amount += ind_unclosed2;
+                   else
+!                  {
+!                      if (is_if_for_while)
+!                          amount += ind_if_for_while;
+!                      else
+!                          amount += ind_unclosed;
+!                  }
+               }
+               /*
+                * For a line starting with ')' use the minimum of the two
+*** ../vim-7.3.491/src/testdir/test3.in        2011-12-14 20:21:29.000000000 +0100
+--- src/testdir/test3.in       2012-04-05 17:12:14.000000000 +0200
+***************
+*** 1574,1579 ****
+--- 1574,1793 ----
+  }
+  
+  STARTTEST
++ :set cino=k2s,(0
++ 2kdd3j=][
++ ENDTEST
++ 
++ void func(void)
++ {
++      if (condition1
++      && condition2)
++      action();
++      function(argument1
++      && argument2);
++ 
++      if (c1 && (c2 ||
++      c3))
++      foo;
++      if (c1 &&
++      (c2 || c3))
++      {
++      }
++ 
++      if (   c1
++      && (      c2
++      || c3))
++      foo;
++      func( c1
++      && (     c2
++      || c3))
++      foo;
++ }
++ 
++ STARTTEST
++ :set cino=k2s,(s
++ 2kdd3j=][
++ ENDTEST
++ 
++ void func(void)
++ {
++      if (condition1
++      && condition2)
++      action();
++      function(argument1
++      && argument2);
++ 
++      if (c1 && (c2 ||
++      c3))
++      foo;
++      if (c1 &&
++      (c2 || c3))
++      {
++      }
++ 
++      if (   c1
++      && (      c2
++      || c3))
++      foo;
++      func(   c1
++      && (      c2
++      || c3))
++      foo;
++ }
++ 
++ STARTTEST
++ :set cino=k2s,(s,U1
++ 2kdd3j=][
++ ENDTEST
++ 
++ void func(void)
++ {
++      if (condition1
++      && condition2)
++      action();
++      function(argument1
++      && argument2);
++ 
++      if (c1 && (c2 ||
++      c3))
++      foo;
++      if (c1 &&
++      (c2 || c3))
++      {
++      }
++      if (c123456789
++      && (c22345
++      || c3))
++      printf("foo\n");
++ 
++      c = c1 &&
++      (
++      c2 ||
++      c3
++      ) && c4;
++ }
++ 
++ STARTTEST
++ :set cino=k2s,(0,W4
++ 2kdd3j=][
++ ENDTEST
++ 
++ void func(void)
++ {
++      if (condition1
++      && condition2)
++      action();
++      function(argument1
++      && argument2);
++ 
++      if (c1 && (c2 ||
++      c3))
++      foo;
++      if (c1 &&
++      (c2 || c3))
++      {
++      }
++      if (c123456789
++      && (c22345
++      || c3))
++      printf("foo\n");
++ 
++      if (   c1
++      && (   c2
++      || c3))
++      foo;
++ 
++      a_long_line(
++      argument,
++      argument);
++      a_short_line(argument,
++      argument);
++ }
++ 
++ STARTTEST
++ :set cino=k2s,u2
++ 2kdd3j=][
++ ENDTEST
++ 
++ void func(void)
++ {
++      if (condition1
++      && condition2)
++      action();
++      function(argument1
++      && argument2);
++ 
++      if (c1 && (c2 ||
++      c3))
++      foo;
++      if (c1 &&
++      (c2 || c3))
++      {
++      }
++      if (c123456789
++      && (c22345
++      || c3))
++      printf("foo\n");
++ }
++ 
++ STARTTEST
++ :set cino=k2s,(0,w1
++ 2kdd3j=][
++ ENDTEST
++ 
++ void func(void)
++ {
++      if (condition1
++      && condition2)
++      action();
++      function(argument1
++      && argument2);
++ 
++      if (c1 && (c2 ||
++      c3))
++      foo;
++      if (c1 &&
++      (c2 || c3))
++      {
++      }
++      if (c123456789
++      && (c22345
++      || c3))
++      printf("foo\n");
++ 
++      if (   c1
++      && (      c2
++      || c3))
++      foo;
++      func(   c1
++      && (      c2
++      || c3))
++      foo;
++ }
++ 
++ STARTTEST
++ :set cino=k2,(s
++ 2kdd3j=][
++ ENDTEST
++ 
++ void func(void)
++ {
++      if (condition1
++        && condition2)
++              action();
++      function(argument1
++              && argument2);
++ 
++      if (c1 && (c2 ||
++                c3))
++              foo;
++      if (c1 &&
++        (c2 || c3))
++      {
++      }
++ }
++ 
++ STARTTEST
+  :set cino=N-s
+  /^NAMESPACESTART
+  =/^NAMESPACEEND
+*** ../vim-7.3.491/src/testdir/test3.ok        2011-12-14 20:21:29.000000000 +0100
+--- src/testdir/test3.ok       2012-04-05 17:12:14.000000000 +0200
+***************
+*** 1411,1416 ****
+--- 1411,1602 ----
+  }
+  
+  
++ void func(void)
++ {
++      if (condition1
++                      && condition2)
++              action();
++      function(argument1
++                       && argument2);
++ 
++      if (c1 && (c2 ||
++                              c3))
++              foo;
++      if (c1 &&
++                      (c2 || c3))
++      {
++      }
++ 
++      if (   c1
++                      && (      c2
++                                        || c3))
++              foo;
++      func( c1
++                && (     c2
++                                 || c3))
++              foo;
++ }
++ 
++ 
++ void func(void)
++ {
++      if (condition1
++                      && condition2)
++              action();
++      function(argument1
++              && argument2);
++ 
++      if (c1 && (c2 ||
++                              c3))
++              foo;
++      if (c1 &&
++                      (c2 || c3))
++      {
++      }
++ 
++      if (   c1
++                      && (      c2
++                              || c3))
++              foo;
++      func(   c1
++              && (      c2
++                      || c3))
++              foo;
++ }
++ 
++ 
++ void func(void)
++ {
++      if (condition1
++                      && condition2)
++              action();
++      function(argument1
++              && argument2);
++ 
++      if (c1 && (c2 ||
++                              c3))
++              foo;
++      if (c1 &&
++                      (c2 || c3))
++      {
++      }
++      if (c123456789
++                      && (c22345
++                              || c3))
++              printf("foo\n");
++ 
++      c = c1 &&
++              (
++                      c2 ||
++                      c3
++              ) && c4;
++ }
++ 
++ 
++ void func(void)
++ {
++      if (condition1
++                      && condition2)
++              action();
++      function(argument1
++                       && argument2);
++ 
++      if (c1 && (c2 ||
++                              c3))
++              foo;
++      if (c1 &&
++                      (c2 || c3))
++      {
++      }
++      if (c123456789
++                      && (c22345
++                              || c3))
++              printf("foo\n");
++ 
++      if (   c1
++                      && (   c2
++                                 || c3))
++              foo;
++ 
++      a_long_line(
++              argument,
++              argument);
++      a_short_line(argument,
++                               argument);
++ }
++ 
++ 
++ void func(void)
++ {
++      if (condition1
++                      && condition2)
++              action();
++      function(argument1
++                      && argument2);
++ 
++      if (c1 && (c2 ||
++                        c3))
++              foo;
++      if (c1 &&
++                      (c2 || c3))
++      {
++      }
++      if (c123456789
++                      && (c22345
++                        || c3))
++              printf("foo\n");
++ }
++ 
++ 
++ void func(void)
++ {
++      if (condition1
++                      && condition2)
++              action();
++      function(argument1
++                       && argument2);
++ 
++      if (c1 && (c2 ||
++                              c3))
++              foo;
++      if (c1 &&
++                      (c2 || c3))
++      {
++      }
++      if (c123456789
++                      && (c22345
++                              || c3))
++              printf("foo\n");
++ 
++      if (   c1
++                      && (      c2
++                              || c3))
++              foo;
++      func(   c1
++               && (      c2
++                       || c3))
++              foo;
++ }
++ 
++ 
++ void func(void)
++ {
++      if (condition1
++        && condition2)
++              action();
++      function(argument1
++              && argument2);
++ 
++      if (c1 && (c2 ||
++                c3))
++              foo;
++      if (c1 &&
++        (c2 || c3))
++      {
++      }
++ }
++ 
++ 
+  NAMESPACESTART
+  /* valid namespaces with normal indent */
+  namespace
+*** ../vim-7.3.491/src/version.c       2012-04-05 16:56:38.000000000 +0200
+--- src/version.c      2012-04-05 17:14:18.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     492,
+  /**/
+
+-- 
+You were lucky to have a LAKE! There were a hundred and sixty of
+us living in a small shoebox in the middle of the road.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.493.patch0 b/vim/patches/vim-7.3.493.patch0
new file mode 100644 (file)
index 0000000..ff662b2
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.493
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.493 (after 7.3.492)
+Problem:    Two unused variables.
+Solution:   Remove them. (Hong Xu)
+Files:     src/misc1.c
+
+
+*** ../vim-7.3.492/src/misc1.c 2012-04-05 17:17:38.000000000 +0200
+--- src/misc1.c        2012-04-06 13:49:39.000000000 +0200
+***************
+*** 6489,6495 ****
+      int              cont_amount = 0;    /* amount for continuation line */
+      int              original_line_islabel;
+      int              added_to_amount = 0;
+-     int              is_if_for_while = 0;
+  
+      for (options = curbuf->b_p_cino; *options; )
+      {
+--- 6489,6494 ----
+***************
+*** 6876,6882 ****
+               pos_T       cursor_save = curwin->w_cursor;
+               pos_T       outermost;
+               char_u      *line;
+-              int         look_col;
+  
+               trypos = &our_paren_pos;
+               do {
+--- 6875,6880 ----
+*** ../vim-7.3.492/src/version.c       2012-04-05 17:17:38.000000000 +0200
+--- src/version.c      2012-04-06 13:50:21.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     493,
+  /**/
+
+-- 
+Not too long ago, compress was something you did to garbage...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.494.patch0 b/vim/patches/vim-7.3.494.patch0
new file mode 100644 (file)
index 0000000..81bd24b
--- /dev/null
@@ -0,0 +1,186 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.494
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.494 (after 7.3.491)
+Problem:    Can't compile with Lua 9.1 or dynamic Lua.
+Solution:   Fix dll_ methods. Fix luado(). (Muraoka Taro, Luis Carvalho)
+Files:     src/if_lua.c
+
+
+*** ../vim-7.3.493/src/if_lua.c        2012-04-05 16:53:56.000000000 +0200
+--- src/if_lua.c       2012-04-06 14:24:06.000000000 +0200
+***************
+*** 95,100 ****
+--- 95,101 ----
+  #define luaL_loadbufferx dll_luaL_loadbufferx
+  #define luaL_argerror dll_luaL_argerror
+  #endif
++ #define luaL_checkany dll_luaL_checkany
+  #define luaL_checklstring dll_luaL_checklstring
+  #define luaL_checkinteger dll_luaL_checkinteger
+  #define luaL_optinteger dll_luaL_optinteger
+***************
+*** 117,124 ****
+  #define lua_pcallk dll_lua_pcallk
+  #define lua_getglobal dll_lua_getglobal
+  #define lua_setglobal dll_lua_setglobal
+- #define lua_typename dll_lua_typename
+  #endif
+  #define lua_close dll_lua_close
+  #define lua_gettop dll_lua_gettop
+  #define lua_settop dll_lua_settop
+--- 118,125 ----
+  #define lua_pcallk dll_lua_pcallk
+  #define lua_getglobal dll_lua_getglobal
+  #define lua_setglobal dll_lua_setglobal
+  #endif
++ #define lua_typename dll_lua_typename
+  #define lua_close dll_lua_close
+  #define lua_gettop dll_lua_gettop
+  #define lua_settop dll_lua_settop
+***************
+*** 151,156 ****
+--- 152,158 ----
+  #define lua_rawset dll_lua_rawset
+  #define lua_rawseti dll_lua_rawseti
+  #define lua_setmetatable dll_lua_setmetatable
++ #define lua_next dll_lua_next
+  /* libs */
+  #define luaopen_base dll_luaopen_base
+  #define luaopen_table dll_luaopen_table
+***************
+*** 177,182 ****
+--- 179,185 ----
+  int (*dll_luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz, const char *name, const char *mode);
+  int (*dll_luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
+  #endif
++ void (*dll_luaL_checkany) (lua_State *L, int narg);
+  const char *(*dll_luaL_checklstring) (lua_State *L, int numArg, size_t *l);
+  lua_Integer (*dll_luaL_checkinteger) (lua_State *L, int numArg);
+  lua_Integer (*dll_luaL_optinteger) (lua_State *L, int nArg, lua_Integer def);
+***************
+*** 201,208 ****
+          int ctx, lua_CFunction k);
+  void (*dll_lua_getglobal) (lua_State *L, const char *var);
+  void (*dll_lua_setglobal) (lua_State *L, const char *var);
+- const char *(*dll_lua_typename) (lua_State *L, int tp);
+  #endif
+  void       (*dll_lua_close) (lua_State *L);
+  int (*dll_lua_gettop) (lua_State *L);
+  void (*dll_lua_settop) (lua_State *L, int idx);
+--- 204,211 ----
+          int ctx, lua_CFunction k);
+  void (*dll_lua_getglobal) (lua_State *L, const char *var);
+  void (*dll_lua_setglobal) (lua_State *L, const char *var);
+  #endif
++ const char *(*dll_lua_typename) (lua_State *L, int tp);
+  void       (*dll_lua_close) (lua_State *L);
+  int (*dll_lua_gettop) (lua_State *L);
+  void (*dll_lua_settop) (lua_State *L, int idx);
+***************
+*** 235,240 ****
+--- 238,244 ----
+  void (*dll_lua_rawset) (lua_State *L, int idx);
+  void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
+  int (*dll_lua_setmetatable) (lua_State *L, int objindex);
++ int (*dll_lua_next) (lua_State *L, int idx);
+  /* libs */
+  int (*dll_luaopen_base) (lua_State *L);
+  int (*dll_luaopen_table) (lua_State *L);
+***************
+*** 268,273 ****
+--- 272,278 ----
+      {"luaL_loadbufferx", (luaV_function) &dll_luaL_loadbufferx},
+      {"luaL_argerror", (luaV_function) &dll_luaL_argerror},
+  #endif
++     {"luaL_checkany", (luaV_function) &dll_luaL_checkany},
+      {"luaL_checklstring", (luaV_function) &dll_luaL_checklstring},
+      {"luaL_checkinteger", (luaV_function) &dll_luaL_checkinteger},
+      {"luaL_optinteger", (luaV_function) &dll_luaL_optinteger},
+***************
+*** 290,297 ****
+      {"lua_pcallk", (luaV_function) &dll_lua_pcallk},
+      {"lua_getglobal", (luaV_function) &dll_lua_getglobal},
+      {"lua_setglobal", (luaV_function) &dll_lua_setglobal},
+-     {"lua_typename", (luaV_function) &dll_lua_typename},
+  #endif
+      {"lua_close", (luaV_function) &dll_lua_close},
+      {"lua_gettop", (luaV_function) &dll_lua_gettop},
+      {"lua_settop", (luaV_function) &dll_lua_settop},
+--- 295,302 ----
+      {"lua_pcallk", (luaV_function) &dll_lua_pcallk},
+      {"lua_getglobal", (luaV_function) &dll_lua_getglobal},
+      {"lua_setglobal", (luaV_function) &dll_lua_setglobal},
+  #endif
++     {"lua_typename", (luaV_function) &dll_lua_typename},
+      {"lua_close", (luaV_function) &dll_lua_close},
+      {"lua_gettop", (luaV_function) &dll_lua_gettop},
+      {"lua_settop", (luaV_function) &dll_lua_settop},
+***************
+*** 324,329 ****
+--- 329,335 ----
+      {"lua_rawset", (luaV_function) &dll_lua_rawset},
+      {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
+      {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
++     {"lua_next", (luaV_function) &dll_lua_next},
+      /* libs */
+      {"luaopen_base", (luaV_function) &dll_luaopen_base},
+      {"luaopen_table", (luaV_function) &dll_luaopen_table},
+***************
+*** 1828,1834 ****
+      }
+      luaV_setrange(L, eap->line1, eap->line2);
+      luaL_buffinit(L, &b);
+!     luaL_addlstring(&b, "return function(line) ", 22); /* header */
+      luaL_addlstring(&b, s, strlen(s));
+      luaL_addlstring(&b, " end", 4); /* footer */
+      luaL_pushresult(&b);
+--- 1834,1840 ----
+      }
+      luaV_setrange(L, eap->line1, eap->line2);
+      luaL_buffinit(L, &b);
+!     luaL_addlstring(&b, "return function(line, linenr) ", 30); /* header */
+      luaL_addlstring(&b, s, strlen(s));
+      luaL_addlstring(&b, " end", 4); /* footer */
+      luaL_pushresult(&b);
+***************
+*** 1845,1851 ****
+      {
+       lua_pushvalue(L, -1); /* function */
+       luaV_pushline(L, curbuf, l); /* current line as arg */
+!      if (lua_pcall(L, 1, 1, 0))
+       {
+           luaV_emsg(L);
+           break;
+--- 1851,1858 ----
+      {
+       lua_pushvalue(L, -1); /* function */
+       luaV_pushline(L, curbuf, l); /* current line as arg */
+!      lua_pushinteger(L, l); /* current line number as arg */
+!      if (lua_pcall(L, 2, 1, 0))
+       {
+           luaV_emsg(L);
+           break;
+*** ../vim-7.3.493/src/version.c       2012-04-06 13:56:00.000000000 +0200
+--- src/version.c      2012-04-06 14:25:11.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     494,
+  /**/
+
+-- 
+Why doesn't Tarzan have a beard?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.495.patch0 b/vim/patches/vim-7.3.495.patch0
new file mode 100644 (file)
index 0000000..54c2306
--- /dev/null
@@ -0,0 +1,124 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.4
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.495 (after 7.3.492)
+Problem:    Compiler warnings.
+Solution:   Add function declaration.  Remove "offset" argument.
+Files:      src/misc1.c
+
+
+*** ../vim-7.3.494/src/misc1.c 2012-04-06 13:56:00.000000000 +0200
+--- src/misc1.c        2012-04-09 20:25:58.000000000 +0200
+***************
+*** 4972,4977 ****
+--- 4972,4978 ----
+  static int   cin_iselse __ARGS((char_u *));
+  static int   cin_isdo __ARGS((char_u *));
+  static int   cin_iswhileofdo __ARGS((char_u *, linenr_T, int));
++ static int   cin_is_if_for_while_before_offset __ARGS((char_u *line, int *poffset));
+  static int   cin_iswhileofdo_end __ARGS((int terminated, int ind_maxparen, int ind_maxcomment));
+  static int   cin_isbreak __ARGS((char_u *));
+  static int   cin_is_cpp_baseclass __ARGS((colnr_T *col));
+***************
+*** 5771,5787 ****
+  }
+  
+  /*
+!  * Check whether in "p" there is an "if", "for" or "while" before offset.
+   * Return 0 if there is none.
+   * Otherwise return !0 and update "*poffset" to point to the place where the
+   * string was found.
+   */
+      static int
+! cin_is_if_for_while_before_offset(line, offset, poffset)
+      char_u *line;
+-     size_t offset;
+      int    *poffset;
+  {
+  
+      if (offset-- < 2)
+       return 0;
+--- 5772,5788 ----
+  }
+  
+  /*
+!  * Check whether in "p" there is an "if", "for" or "while" before "*poffset".
+   * Return 0 if there is none.
+   * Otherwise return !0 and update "*poffset" to point to the place where the
+   * string was found.
+   */
+      static int
+! cin_is_if_for_while_before_offset(line, poffset)
+      char_u *line;
+      int    *poffset;
+  {
++     int offset = *poffset;
+  
+      if (offset-- < 2)
+       return 0;
+***************
+*** 5805,5812 ****
+               goto probablyFound;
+       }
+      }
+- 
+      return 0;
+  probablyFound:
+      if (!offset || !vim_isIDc(line[offset - 1]))
+      {
+--- 5806,5813 ----
+               goto probablyFound;
+       }
+      }
+      return 0;
++ 
+  probablyFound:
+      if (!offset || !vim_isIDc(line[offset - 1]))
+      {
+***************
+*** 6890,6897 ****
+               line = ml_get(outermost.lnum);
+  
+               is_if_for_while =
+!                  cin_is_if_for_while_before_offset(line, outermost.col,
+!                                                    &outermost.col);
+           }
+  
+           amount = skip_label(our_paren_pos.lnum, &look, ind_maxcomment);
+--- 6891,6897 ----
+               line = ml_get(outermost.lnum);
+  
+               is_if_for_while =
+!                  cin_is_if_for_while_before_offset(line, &outermost.col);
+           }
+  
+           amount = skip_label(our_paren_pos.lnum, &look, ind_maxcomment);
+*** ../vim-7.3.494/src/version.c       2012-04-06 14:30:55.000000000 +0200
+--- src/version.c      2012-04-09 20:41:44.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     495,
+  /**/
+
+-- 
+    [clop clop]
+GUARD #1:  Halt!  Who goes there?
+ARTHUR:    It is I, Arthur, son of Uther Pendragon, from the castle of
+           Camelot.  King of the Britons, defeator of the Saxons, sovereign of
+           all England!
+GUARD #1:  Pull the other one!
+                                  The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.496.patch0 b/vim/patches/vim-7.3.496.patch0
new file mode 100644 (file)
index 0000000..8b11051
--- /dev/null
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.496
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.496
+Problem:    MS-DOS: When "diff" trips over difference in line separators some
+           tests fail.
+Solution:   Make some .ok files use unix line separators. (David Pope)
+Files:     src/testdir/Make_dos.mak, src/testdir/Make_ming.mak
+
+
+*** ../vim-7.3.495/src/testdir/Make_dos.mak    2012-04-05 16:56:38.000000000 +0200
+--- src/testdir/Make_dos.mak   2012-04-09 21:23:43.000000000 +0200
+***************
+*** 52,58 ****
+  
+  fixff:
+       -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
+!      -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q dotest.in
+  
+  clean:
+       -del *.out
+--- 52,59 ----
+  
+  fixff:
+       -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
+!      -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q \
+!              dotest.in test60.ok test71.ok test74.ok
+  
+  clean:
+       -del *.out
+*** ../vim-7.3.495/src/testdir/Make_ming.mak   2012-04-05 16:56:38.000000000 +0200
+--- src/testdir/Make_ming.mak  2012-04-09 21:25:55.000000000 +0200
+***************
+*** 75,80 ****
+--- 75,82 ----
+  
+  fixff:
+       -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
++      -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q \
++              dotest.in test60.ok test71.ok test74.ok
+  
+  clean:
+       -$(DEL) *.out
+*** ../vim-7.3.495/src/version.c       2012-04-09 20:42:20.000000000 +0200
+--- src/version.c      2012-04-13 19:10:04.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     496,
+  /**/
+
+-- 
+There are 2 kinds of people in my world: those who know Unix, Perl, Vim, GNU,
+Linux, etc, and those who know COBOL.  It gets very difficult for me at
+parties, not knowing which group to socialise with :-)
+                                               Sitaram Chamarty
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.497.patch0 b/vim/patches/vim-7.3.497.patch0
new file mode 100644 (file)
index 0000000..5cbffc4
--- /dev/null
@@ -0,0 +1,50 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.497
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.497
+Problem:    Crash when doing ":python print" and compiled with gcc and
+           the optimizer enabled.
+Solution:   Avoid the crash, doesn't really fix the problem. (Christian
+           Brabandt)
+Files:     src/if_py_both.h
+
+
+*** ../vim-7.3.496/src/if_py_both.h    2012-02-04 20:17:21.000000000 +0100
+--- src/if_py_both.h   2012-04-20 13:24:31.000000000 +0200
+***************
+*** 77,82 ****
+--- 77,87 ----
+      if (!PyArg_ParseTuple(args, "et#", ENC_OPT, &str, &len))
+       return NULL;
+  
++     /* TODO: This works around a gcc optimizer problem and avoids Vim
++      * from crashing.  Should find a real solution. */
++     if (str == NULL)
++      return NULL;
++ 
+      Py_BEGIN_ALLOW_THREADS
+      Python_Lock_Vim();
+      writer((writefn)(error ? emsg : msg), (char_u *)str, len);
+*** ../vim-7.3.496/src/version.c       2012-04-13 19:11:16.000000000 +0200
+--- src/version.c      2012-04-20 13:26:22.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     497,
+  /**/
+
+-- 
+There can't be a crisis today, my schedule is already full.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.498.patch0 b/vim/patches/vim-7.3.498.patch0
new file mode 100644 (file)
index 0000000..aa9c621
--- /dev/null
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.498
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.498
+Problem:    The behavior of the "- register changes depending on value of
+           the 'clipboard' option. (Szamotulski)
+Solution:   Also set the "- register when the register is "*" or "+".
+           (Christian Brabandt)
+Files:     src/ops.c
+
+
+*** ../vim-7.3.497/src/ops.c   2012-03-23 14:16:19.000000000 +0100
+--- src/ops.c  2012-04-20 13:36:32.000000000 +0200
+***************
+*** 1720,1728 ****
+               did_yank = TRUE;
+       }
+  
+!      /* Yank into small delete register when no register specified and the
+!       * delete is within one line. */
+!      if (oap->regname == 0 && oap->motion_type != MLINE
+                                                     && oap->line_count == 1)
+       {
+           oap->regname = '-';
+--- 1720,1733 ----
+               did_yank = TRUE;
+       }
+  
+!      /* Yank into small delete register when no named register specified
+!       * and the delete is within one line. */
+!      if ((
+! #ifdef FEAT_CLIPBOARD
+!             ((clip_unnamed & CLIP_UNNAMED) && oap->regname == '*') ||
+!             ((clip_unnamed & CLIP_UNNAMED_PLUS) && oap->regname == '+') ||
+! #endif
+!          oap->regname == 0) && oap->motion_type != MLINE
+                                                     && oap->line_count == 1)
+       {
+           oap->regname = '-';
+*** ../vim-7.3.497/src/version.c       2012-04-20 13:31:16.000000000 +0200
+--- src/version.c      2012-04-20 13:45:26.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     498,
+  /**/
+
+-- 
+Did you ever stop to think...  and forget to start again?
+                                  -- Steven Wright
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.499.patch0 b/vim/patches/vim-7.3.499.patch0
new file mode 100644 (file)
index 0000000..4e45e4f
--- /dev/null
@@ -0,0 +1,84 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.499
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.499
+Problem:    When using any interface language when Vim is waiting for a child
+           process it gets confused by a child process started through the
+           interface.
+Solution:   Always used waitpid() instead of wait(). (Yasuhiro Matsumoto)
+Files:      src/os_unix.c
+
+
+*** ../vim-7.3.498/src/os_unix.c       2012-02-05 22:51:27.000000000 +0100
+--- src/os_unix.c      2012-04-20 15:47:17.000000000 +0200
+***************
+*** 3734,3757 ****
+  
+      while (wait_pid != child)
+      {
+! # ifdef _THREAD_SAFE
+!      /* Ugly hack: when compiled with Python threads are probably
+!       * used, in which case wait() sometimes hangs for no obvious
+!       * reason.  Use waitpid() instead and loop (like the GUI). */
+! #  ifdef __NeXT__
+       wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
+! #  else
+       wait_pid = waitpid(child, status, WNOHANG);
+! #  endif
+       if (wait_pid == 0)
+       {
+           /* Wait for 1/100 sec before trying again. */
+           mch_delay(10L, TRUE);
+           continue;
+       }
+- # else
+-      wait_pid = wait(status);
+- # endif
+       if (wait_pid <= 0
+  # ifdef ECHILD
+               && errno == ECHILD
+--- 3734,3754 ----
+  
+      while (wait_pid != child)
+      {
+!      /* When compiled with Python threads are probably used, in which case
+!       * wait() sometimes hangs for no obvious reason.  Use waitpid()
+!       * instead and loop (like the GUI). Also needed for other interfaces,
+!       * they might call system(). */
+! # ifdef __NeXT__
+       wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
+! # else
+       wait_pid = waitpid(child, status, WNOHANG);
+! # endif
+       if (wait_pid == 0)
+       {
+           /* Wait for 1/100 sec before trying again. */
+           mch_delay(10L, TRUE);
+           continue;
+       }
+       if (wait_pid <= 0
+  # ifdef ECHILD
+               && errno == ECHILD
+*** ../vim-7.3.498/src/version.c       2012-04-20 13:46:02.000000000 +0200
+--- src/version.c      2012-04-20 15:54:05.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     499,
+  /**/
+
+-- 
+It's not hard to meet expenses, they're everywhere.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.500.patch0 b/vim/patches/vim-7.3.500.patch0
new file mode 100644 (file)
index 0000000..b3b6a37
--- /dev/null
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.500
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.500
+Problem:    Ming makefile unconditionally sets WINVER.
+Solution:   Only defined when not already defined. (Yasuhiro Matsumoto)
+Files:     src/Make_ming.mak
+
+
+*** ../vim-7.3.499/src/Make_ming.mak   2012-03-28 17:43:06.000000000 +0200
+--- src/Make_ming.mak  2012-04-20 16:03:50.000000000 +0200
+***************
+*** 51,57 ****
+--- 51,59 ----
+  # set to yes to enable OLE support
+  OLE=no
+  # Set the default $(WINVER) to make it work with pre-Win2k
++ ifndef WINVER
+  WINVER = 0x0400
++ endif
+  # Set to yes to enable Cscope support
+  CSCOPE=yes
+  # Set to yes to enable Netbeans support
+*** ../vim-7.3.499/src/version.c       2012-04-20 15:55:10.000000000 +0200
+--- src/version.c      2012-04-20 16:12:34.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     500,
+  /**/
+
+-- 
+Life is a gift, living is an art.              (Bram Moolenaar)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.501.patch0 b/vim/patches/vim-7.3.501.patch0
new file mode 100644 (file)
index 0000000..a74b028
--- /dev/null
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.501
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.501
+Problem:    Error for "flush" not being defined when using Ruby command.
+Solution:   Defined "flush" as a no-op method. (Kent Sibilev)
+Files:     src/if_ruby.c
+
+
+*** ../vim-7.3.500/src/if_ruby.c       2011-08-04 19:34:55.000000000 +0200
+--- src/if_ruby.c      2012-04-20 16:18:56.000000000 +0200
+***************
+*** 1238,1243 ****
+--- 1238,1248 ----
+      return Qnil;
+  }
+  
++ static VALUE f_nop(VALUE self)
++ {
++     return Qnil;
++ }
++ 
+  static VALUE f_p(int argc, VALUE *argv, VALUE self UNUSED)
+  {
+      int i;
+***************
+*** 1259,1264 ****
+--- 1264,1270 ----
+  
+      rb_stdout = rb_obj_alloc(rb_cObject);
+      rb_define_singleton_method(rb_stdout, "write", vim_message, 1);
++     rb_define_singleton_method(rb_stdout, "flush", f_nop, 0);
+      rb_define_global_function("p", f_p, -1);
+  }
+  
+*** ../vim-7.3.500/src/version.c       2012-04-20 16:13:21.000000000 +0200
+--- src/version.c      2012-04-20 16:19:03.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     501,
+  /**/
+
+-- 
+Q: What do you call a fish without an eye?
+A: fsh!
+Q: What do you call a deer with no eyes?
+A: no eye deer.
+Q: What do you call a deer with no eyes and no legs?
+A: still no eye deer.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.502.patch0 b/vim/patches/vim-7.3.502.patch0
new file mode 100644 (file)
index 0000000..c9710ab
--- /dev/null
@@ -0,0 +1,67 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.502
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.502
+Problem:    Netbeans insert halfway a line actually appends to the line.
+Solution:   Insert halfway the line. (Brian Victor)
+Files:     src/netbeans.c
+
+
+*** ../vim-7.3.501/src/netbeans.c      2012-01-10 22:31:26.000000000 +0100
+--- src/netbeans.c     2012-04-20 19:44:31.000000000 +0200
+***************
+*** 1812,1825 ****
+                       char_u *oldline = ml_get(lnum);
+                       char_u *newline;
+  
+!                      /* Insert halfway a line.  For simplicity we assume we
+!                       * need to append to the line. */
+                       newline = alloc_check(
+                                      (unsigned)(STRLEN(oldline) + len + 1));
+                       if (newline != NULL)
+                       {
+!                          STRCPY(newline, oldline);
+                           STRCAT(newline, args);
+                           ml_replace(lnum, newline, FALSE);
+                       }
+                   }
+--- 1812,1826 ----
+                       char_u *oldline = ml_get(lnum);
+                       char_u *newline;
+  
+!                      /* Insert halfway a line. */
+                       newline = alloc_check(
+                                      (unsigned)(STRLEN(oldline) + len + 1));
+                       if (newline != NULL)
+                       {
+!                          mch_memmove(newline, oldline, (size_t)pos->col);
+!                          newline[pos->col] = NUL;
+                           STRCAT(newline, args);
++                          STRCAT(newline, oldline + pos->col);
+                           ml_replace(lnum, newline, FALSE);
+                       }
+                   }
+*** ../vim-7.3.501/src/version.c       2012-04-20 18:05:42.000000000 +0200
+--- src/version.c      2012-04-20 19:46:48.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     502,
+  /**/
+
+-- 
+Time flies like an arrow.
+Fruit flies like a banana.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.503.patch0 b/vim/patches/vim-7.3.503.patch0
new file mode 100644 (file)
index 0000000..5b776ae
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.503
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.503 (after 7.3.501)
+Problem:    Warning for unused argument.
+Solution:   Add UNUSED.
+Files:     src/if_ruby.c
+
+
+*** ../vim-7.3.502/src/if_ruby.c       2012-04-20 18:05:42.000000000 +0200
+--- src/if_ruby.c      2012-04-25 12:26:38.000000000 +0200
+***************
+*** 1238,1244 ****
+      return Qnil;
+  }
+  
+! static VALUE f_nop(VALUE self)
+  {
+      return Qnil;
+  }
+--- 1238,1244 ----
+      return Qnil;
+  }
+  
+! static VALUE f_nop(VALUE self UNUSED)
+  {
+      return Qnil;
+  }
+*** ../vim-7.3.502/src/version.c       2012-04-20 19:47:00.000000000 +0200
+--- src/version.c      2012-04-25 12:27:30.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     503,
+  /**/
+
+-- 
+Why isn't there mouse-flavored cat food?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.504.patch0 b/vim/patches/vim-7.3.504.patch0
new file mode 100644 (file)
index 0000000..7522790
--- /dev/null
@@ -0,0 +1,87 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.504
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.504
+Problem:    Commands in help files are not highlighted.
+Solution:   Allow for commands in backticks.  Adjust CTRL-] to remove the
+           backticks.
+Files:     src/ex_cmds.c
+
+
+*** ../vim-7.3.503/src/ex_cmds.c       2012-04-05 16:04:58.000000000 +0200
+--- src/ex_cmds.c      2012-04-25 12:51:41.000000000 +0200
+***************
+*** 3421,3427 ****
+                    * and re-attach to buffer, perhaps.
+                    */
+                   if (curwin->w_s == &(curwin->w_buffer->b_s))
+!                          curwin->w_s = &(buf->b_s);
+  #endif
+                   curwin->w_buffer = buf;
+                   curbuf = buf;
+--- 3421,3427 ----
+                    * and re-attach to buffer, perhaps.
+                    */
+                   if (curwin->w_s == &(curwin->w_buffer->b_s))
+!                      curwin->w_s = &(buf->b_s);
+  #endif
+                   curwin->w_buffer = buf;
+                   curbuf = buf;
+***************
+*** 5965,5970 ****
+--- 5965,5993 ----
+               break;
+         }
+         *d = NUL;
++ 
++        if (*IObuff == '`')
++        {
++            if (d > IObuff + 2 && d[-1] == '`')
++            {
++                /* remove the backticks from `command` */
++                mch_memmove(IObuff, IObuff + 1, STRLEN(IObuff));
++                d[-2] = NUL;
++            }
++            else if (d > IObuff + 3 && d[-2] == '`' && d[-1] == ',')
++            {
++                /* remove the backticks and comma from `command`, */
++                mch_memmove(IObuff, IObuff + 1, STRLEN(IObuff));
++                d[-3] = NUL;
++            }
++            else if (d > IObuff + 4 && d[-3] == '`'
++                                           && d[-2] == '\\' && d[-1] == '.')
++            {
++                /* remove the backticks and dot from `command`\. */
++                mch_memmove(IObuff, IObuff + 1, STRLEN(IObuff));
++                d[-4] = NUL;
++            }
++        }
+       }
+      }
+  
+*** ../vim-7.3.503/src/version.c       2012-04-25 12:28:05.000000000 +0200
+--- src/version.c      2012-04-25 12:46:43.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     504,
+  /**/
+
+-- 
+TIM:   That is not an ordinary rabbit ... 'tis the most foul cruel and
+       bad-tempered thing you ever set eyes on.
+ROBIN: You tit.  I soiled my armour I was so scared!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.505.patch0 b/vim/patches/vim-7.3.505.patch0
new file mode 100644 (file)
index 0000000..1a8a7ea
--- /dev/null
@@ -0,0 +1,116 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.505
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.505
+Problem:    Test 11 fails on MS-Windows in some versions.
+Solution:   Fix #ifdefs for whether filtering through a pipe is possible. Move
+           setting b_no_eol_lnum back to where it was before patch 7.3.124.
+           (David Pope)
+Files:     src/feature.h, src/eval.c, src/ex_cmds.c, src/fileio.c
+
+
+*** ../vim-7.3.504/src/feature.h       2011-10-20 21:09:25.000000000 +0200
+--- src/feature.h      2012-04-25 16:44:26.000000000 +0200
+***************
+*** 1316,1318 ****
+--- 1316,1326 ----
+  #ifdef FEAT_NORMAL
+  # define FEAT_PERSISTENT_UNDO
+  #endif
++ 
++ /*
++  * +filterpipe
++  */
++ #if (defined(UNIX) && !defined(USE_SYSTEM)) \
++          || (defined(WIN3264) && defined(FEAT_GUI_W32))
++ # define FEAT_FILTERPIPE
++ #endif
+*** ../vim-7.3.504/src/eval.c  2012-04-05 16:53:55.000000000 +0200
+--- src/eval.c 2012-04-25 16:43:53.000000000 +0200
+***************
+*** 12090,12096 ****
+  #ifdef FEAT_SEARCHPATH
+       "file_in_path",
+  #endif
+! #if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(WIN3264)
+       "filterpipe",
+  #endif
+  #ifdef FEAT_FIND_ID
+--- 12090,12096 ----
+  #ifdef FEAT_SEARCHPATH
+       "file_in_path",
+  #endif
+! #ifdef FEAT_FILTERPIPE
+       "filterpipe",
+  #endif
+  #ifdef FEAT_FIND_ID
+*** ../vim-7.3.504/src/ex_cmds.c       2012-04-25 12:57:23.000000000 +0200
+--- src/ex_cmds.c      2012-04-25 16:46:02.000000000 +0200
+***************
+*** 1113,1119 ****
+      if (do_out)
+       shell_flags |= SHELL_DOOUT;
+  
+! #if (!defined(USE_SYSTEM) && defined(UNIX)) || defined(WIN3264)
+      if (!do_in && do_out && !p_stmp)
+      {
+       /* Use a pipe to fetch stdout of the command, do not use a temp file. */
+--- 1113,1119 ----
+      if (do_out)
+       shell_flags |= SHELL_DOOUT;
+  
+! #ifdef FEAT_FILTERPIPE
+      if (!do_in && do_out && !p_stmp)
+      {
+       /* Use a pipe to fetch stdout of the command, do not use a temp file. */
+*** ../vim-7.3.504/src/fileio.c        2012-02-29 18:22:03.000000000 +0100
+--- src/fileio.c       2012-04-25 16:40:37.000000000 +0200
+***************
+*** 2655,2664 ****
+      }
+  #endif
+  
+-     /* Reset now, following writes should not omit the EOL.  Also, the line
+-      * number will become invalid because of edits. */
+-     curbuf->b_no_eol_lnum = 0;
+- 
+      if (recoverymode && error)
+       return FAIL;
+      return OK;
+--- 2655,2660 ----
+***************
+*** 5098,5103 ****
+--- 5094,5101 ----
+      {
+       aco_save_T      aco;
+  
++      curbuf->b_no_eol_lnum = 0;  /* in case it was set by the previous read */
++ 
+       /*
+        * Apply POST autocommands.
+        * Careful: The autocommands may call buf_write() recursively!
+*** ../vim-7.3.504/src/version.c       2012-04-25 12:57:23.000000000 +0200
+--- src/version.c      2012-04-25 16:49:50.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     505,
+  /**/
+
+-- 
+Lose weight, NEVER Diet again with
+                  The "Invisible Weight Loss Patch"
+                                               (spam e-mail)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.506.patch0 b/vim/patches/vim-7.3.506.patch0
new file mode 100644 (file)
index 0000000..32be6fd
--- /dev/null
@@ -0,0 +1,100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.506
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.506
+Problem:    GTK gives an error when selecting a non-existent file.
+Solution:   Add a handler to avoid the error. (Christian Brabandt)
+Files:     src/gui_gtk.c
+
+
+*** ../vim-7.3.505/src/gui_gtk.c       2011-06-26 04:48:56.000000000 +0200
+--- src/gui_gtk.c      2012-04-25 17:08:58.000000000 +0200
+***************
+*** 90,95 ****
+--- 90,100 ----
+  static void entry_activate_cb(GtkWidget *widget, gpointer data);
+  static void entry_changed_cb(GtkWidget *entry, GtkWidget *dialog);
+  static void find_replace_cb(GtkWidget *widget, gpointer data);
++ static void recent_func_log_func(
++      const gchar *log_domain,
++      GLogLevelFlags log_level,
++      const gchar *message,
++      gpointer user_data);
+  
+  #if defined(FEAT_TOOLBAR)
+  /*
+***************
+*** 839,844 ****
+--- 844,851 ----
+      GtkWidget                *fc;
+  #endif
+      char_u           dirbuf[MAXPATHL];
++     guint            log_handler;
++     const gchar              *domain = "Gtk";
+  
+      title = CONVERT_TO_UTF8(title);
+  
+***************
+*** 853,858 ****
+--- 860,870 ----
+      /* If our pointer is currently hidden, then we should show it. */
+      gui_mch_mousehide(FALSE);
+  
++     /* Hack: The GTK file dialog warns when it can't access a new file, this
++      * makes it shut up. http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
++     log_handler = g_log_set_handler(domain, G_LOG_LEVEL_WARNING,
++                                                recent_func_log_func, NULL);
++ 
+  #ifdef USE_FILE_CHOOSER
+      /* We create the dialog each time, so that the button text can be "Open"
+       * or "Save" according to the action. */
+***************
+*** 916,921 ****
+--- 928,934 ----
+      gtk_widget_show(gui.filedlg);
+      gtk_main();
+  #endif
++     g_log_remove_handler(domain, log_handler);
+  
+      CONVERT_TO_UTF8_FREE(title);
+      if (gui.browse_fname == NULL)
+***************
+*** 1882,1884 ****
+--- 1895,1908 ----
+       * backwards compatibility anyway. */
+      do_cmdline_cmd((char_u *)"emenu ToolBar.FindHelp");
+  }
++ 
++     static void
++ recent_func_log_func(const gchar *log_domain UNUSED,
++                   GLogLevelFlags log_level UNUSED,
++                   const gchar *message UNUSED,
++                   gpointer user_data UNUSED)
++ {
++     /* We just want to suppress the warnings. */
++     /* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
++ }
++ 
+*** ../vim-7.3.505/src/version.c       2012-04-25 16:50:44.000000000 +0200
+--- src/version.c      2012-04-25 17:08:28.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     506,
+  /**/
+
+-- 
+Compilation process failed successfully.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.507.patch0 b/vim/patches/vim-7.3.507.patch0
new file mode 100644 (file)
index 0000000..c96561c
--- /dev/null
@@ -0,0 +1,149 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.507
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.507
+Problem:    When exiting with unsaved changes, selecting an existing file in
+           the file dialog, there is no dialog to ask whether the existing
+           file should be overwritten. (Felipe G. Nievinski)
+Solution:   Call check_overwrite() before writing. (Christian Brabandt)
+Files:     src/ex_cmds.c, src/ex_cmds2.c, src/proto/ex_cmds.pro
+
+
+*** ../vim-7.3.506/src/ex_cmds.c       2012-04-25 16:50:44.000000000 +0200
+--- src/ex_cmds.c      2012-04-25 17:19:53.000000000 +0200
+***************
+*** 25,31 ****
+  static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing));
+  #endif
+  
+- static int check_overwrite __ARGS((exarg_T *eap, buf_T *buf, char_u *fname, char_u *ffname, int other));
+  static int check_readonly __ARGS((int *forceit, buf_T *buf));
+  #ifdef FEAT_AUTOCMD
+  static void delbuf_msg __ARGS((char_u *name));
+--- 25,30 ----
+***************
+*** 2722,2728 ****
+   * May set eap->forceit if a dialog says it's OK to overwrite.
+   * Return OK if it's OK, FAIL if it is not.
+   */
+!     static int
+  check_overwrite(eap, buf, fname, ffname, other)
+      exarg_T  *eap;
+      buf_T    *buf;
+--- 2721,2727 ----
+   * May set eap->forceit if a dialog says it's OK to overwrite.
+   * Return OK if it's OK, FAIL if it is not.
+   */
+!     int
+  check_overwrite(eap, buf, fname, ffname, other)
+      exarg_T  *eap;
+      buf_T    *buf;
+*** ../vim-7.3.506/src/ex_cmds2.c      2012-03-23 18:39:10.000000000 +0100
+--- src/ex_cmds2.c     2012-04-25 17:24:37.000000000 +0200
+***************
+*** 1489,1494 ****
+--- 1489,1495 ----
+      char_u   buff[DIALOG_MSG_SIZE];
+      int              ret;
+      buf_T    *buf2;
++     exarg_T     ea;
+  
+      dialog_msg(buff, _("Save changes to \"%s\"?"),
+                       (buf->b_fname != NULL) ?
+***************
+*** 1498,1510 ****
+      else
+       ret = vim_dialog_yesnocancel(VIM_QUESTION, NULL, buff, 1);
+  
+      if (ret == VIM_YES)
+      {
+  #ifdef FEAT_BROWSE
+       /* May get file name, when there is none */
+       browse_save_fname(buf);
+  #endif
+!      if (buf->b_fname != NULL)   /* didn't hit Cancel */
+           (void)buf_write_all(buf, FALSE);
+      }
+      else if (ret == VIM_NO)
+--- 1499,1517 ----
+      else
+       ret = vim_dialog_yesnocancel(VIM_QUESTION, NULL, buff, 1);
+  
++     /* Init ea pseudo-structure, this is needed for the check_overwrite()
++      * function. */
++     ea.append = ea.forceit = FALSE;
++ 
+      if (ret == VIM_YES)
+      {
+  #ifdef FEAT_BROWSE
+       /* May get file name, when there is none */
+       browse_save_fname(buf);
+  #endif
+!      if (buf->b_fname != NULL && check_overwrite(&ea, buf,
+!                                  buf->b_fname, buf->b_ffname, FALSE) == OK)
+!          /* didn't hit Cancel */
+           (void)buf_write_all(buf, FALSE);
+      }
+      else if (ret == VIM_NO)
+***************
+*** 1532,1538 ****
+               /* May get file name, when there is none */
+               browse_save_fname(buf2);
+  #endif
+!              if (buf2->b_fname != NULL)   /* didn't hit Cancel */
+                   (void)buf_write_all(buf2, FALSE);
+  #ifdef FEAT_AUTOCMD
+               /* an autocommand may have deleted the buffer */
+--- 1539,1547 ----
+               /* May get file name, when there is none */
+               browse_save_fname(buf2);
+  #endif
+!              if (buf2->b_fname != NULL && check_overwrite(&ea, buf2,
+!                                buf2->b_fname, buf2->b_ffname, FALSE) == OK)
+!                  /* didn't hit Cancel */
+                   (void)buf_write_all(buf2, FALSE);
+  #ifdef FEAT_AUTOCMD
+               /* an autocommand may have deleted the buffer */
+*** ../vim-7.3.506/src/proto/ex_cmds.pro       2010-08-15 21:57:28.000000000 +0200
+--- src/proto/ex_cmds.pro      2012-04-25 17:25:47.000000000 +0200
+***************
+*** 23,28 ****
+--- 23,29 ----
+  void ex_update __ARGS((exarg_T *eap));
+  void ex_write __ARGS((exarg_T *eap));
+  int do_write __ARGS((exarg_T *eap));
++ int check_overwrite __ARGS((exarg_T *eap, buf_T *buf, char_u *fname, char_u *ffname, int other));
+  void ex_wnext __ARGS((exarg_T *eap));
+  void do_wqall __ARGS((exarg_T *eap));
+  int not_writing __ARGS((void));
+*** ../vim-7.3.506/src/version.c       2012-04-25 17:10:12.000000000 +0200
+--- src/version.c      2012-04-25 17:17:30.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     507,
+  /**/
+
+-- 
+BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One.
+ANOTHER MONK:    And St.  Attila raised his hand grenade up on high saying "O
+                 Lord bless this thy hand grenade that with it thou mayest
+                 blow thine enemies to tiny bits, in thy mercy. "and the Lord
+                 did grin and people did feast upon the lambs and sloths and
+                 carp and anchovies and orang-utans and breakfast cereals and
+                 fruit bats and...
+BROTHER MAYNARD: Skip a bit brother ...
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.508.patch0 b/vim/patches/vim-7.3.508.patch0
new file mode 100644 (file)
index 0000000..7b8e7b2
--- /dev/null
@@ -0,0 +1,85 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.508
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.508
+Problem:    Default for v:register is not set.
+Solution:   Init v:register in eval_init(). Correct for 'clipboard' before the
+           main loop. (Ingo Karkat)
+Files:     src/eval.c, src/main.c
+
+
+*** ../vim-7.3.507/src/eval.c  2012-04-25 16:50:44.000000000 +0200
+--- src/eval.c 2012-04-25 17:56:41.000000000 +0200
+***************
+*** 880,885 ****
+--- 880,886 ----
+           hash_add(&compat_hashtab, p->vv_di.di_key);
+      }
+      set_vim_var_nr(VV_SEARCHFORWARD, 1L);
++     set_reg_var(0);  /* default for v:register is not 0 but '"' */
+  
+  #ifdef EBCDIC
+      /*
+*** ../vim-7.3.507/src/main.c  2012-03-28 17:10:26.000000000 +0200
+--- src/main.c 2012-04-25 18:01:28.000000000 +0200
+***************
+*** 928,933 ****
+--- 928,945 ----
+      TIME_MSG("VimEnter autocommands");
+  #endif
+  
++ #if defined(FEAT_EVAL) && defined(FEAT_CLIPBOARD)
++     /* Adjust default register name for "unnamed" in 'clipboard'. Can only be
++      * done after the clipboard is available and all initial commands that may
++      * modify the 'clipboard' setting have run; i.e. just before entering the
++      * main loop. */
++     {
++      int default_regname = 0;
++      adjust_clip_reg(&default_regname);
++      set_reg_var(default_regname);
++     }
++ #endif
++ 
+  #if defined(FEAT_DIFF) && defined(FEAT_SCROLLBIND)
+      /* When a startup script or session file setup for diff'ing and
+       * scrollbind, sync the scrollbind now. */
+***************
+*** 1357,1363 ****
+               {
+                   apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname,
+                                                   buf->b_fname, FALSE, buf);
+!                  buf->b_changedtick = -1;    /* note that we did it already */
+                   /* start all over, autocommands may mess up the lists */
+                   next_tp = first_tabpage;
+                   break;
+--- 1369,1375 ----
+               {
+                   apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname,
+                                                   buf->b_fname, FALSE, buf);
+!                  buf->b_changedtick = -1;  /* note that we did it already */
+                   /* start all over, autocommands may mess up the lists */
+                   next_tp = first_tabpage;
+                   break;
+*** ../vim-7.3.507/src/version.c       2012-04-25 17:32:14.000000000 +0200
+--- src/version.c      2012-04-25 18:00:28.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     508,
+  /**/
+
+-- 
+I wonder, do vegetarians eat fruit bats?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.509.patch0 b/vim/patches/vim-7.3.509.patch0
new file mode 100644 (file)
index 0000000..8dfe9c0
--- /dev/null
@@ -0,0 +1,304 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.509
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.509
+Problem:    ":vimgrep" fails when 'autochdir' is set.
+Solution:   A more generic solution for changing directory. (Ben Fritz)
+Files:     src/quickfix.c
+
+
+*** ../vim-7.3.508/src/quickfix.c      2012-03-07 20:13:44.000000000 +0100
+--- src/quickfix.c     2012-04-25 18:52:24.000000000 +0200
+***************
+*** 130,138 ****
+  static void  qf_fill_buffer __ARGS((qf_info_T *qi));
+  #endif
+  static char_u        *get_mef_name __ARGS((void));
+! static buf_T *load_dummy_buffer __ARGS((char_u *fname));
+! static void  wipe_dummy_buffer __ARGS((buf_T *buf));
+! static void  unload_dummy_buffer __ARGS((buf_T *buf));
+  static qf_info_T *ll_get_or_alloc_list __ARGS((win_T *));
+  
+  /* Quickfix window check helper macro */
+--- 130,139 ----
+  static void  qf_fill_buffer __ARGS((qf_info_T *qi));
+  #endif
+  static char_u        *get_mef_name __ARGS((void));
+! static void  restore_start_dir __ARGS((char_u *dirname_start));
+! static buf_T *load_dummy_buffer __ARGS((char_u *fname, char_u *dirname_start, char_u *resulting_dir));
+! static void  wipe_dummy_buffer __ARGS((buf_T *buf, char_u *dirname_start));
+! static void  unload_dummy_buffer __ARGS((buf_T *buf, char_u *dirname_start));
+  static qf_info_T *ll_get_or_alloc_list __ARGS((win_T *));
+  
+  /* Quickfix window check helper macro */
+***************
+*** 3237,3255 ****
+  
+           /* Load file into a buffer, so that 'fileencoding' is detected,
+            * autocommands applied, etc. */
+!          buf = load_dummy_buffer(fname);
+! 
+!          /* When autocommands changed directory: go back.  We assume it was
+!           * ":lcd %:p:h". */
+!          mch_dirname(dirname_now, MAXPATHL);
+!          if (STRCMP(dirname_start, dirname_now) != 0)
+!          {
+!              exarg_T ea;
+! 
+!              ea.arg = dirname_start;
+!              ea.cmdidx = CMD_lcd;
+!              ex_cd(&ea);
+!          }
+  
+           p_mls = save_mls;
+  #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
+--- 3238,3244 ----
+  
+           /* Load file into a buffer, so that 'fileencoding' is detected,
+            * autocommands applied, etc. */
+!          buf = load_dummy_buffer(fname, dirname_start, dirname_now);
+  
+           p_mls = save_mls;
+  #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
+***************
+*** 3320,3326 ****
+               {
+                   /* Never keep a dummy buffer if there is another buffer
+                    * with the same name. */
+!                  wipe_dummy_buffer(buf);
+                   buf = NULL;
+               }
+               else if (!cmdmod.hide
+--- 3309,3315 ----
+               {
+                   /* Never keep a dummy buffer if there is another buffer
+                    * with the same name. */
+!                  wipe_dummy_buffer(buf, dirname_start);
+                   buf = NULL;
+               }
+               else if (!cmdmod.hide
+***************
+*** 3336,3347 ****
+                    * many swap files. */
+                   if (!found_match)
+                   {
+!                      wipe_dummy_buffer(buf);
+                       buf = NULL;
+                   }
+                   else if (buf != first_match_buf || (flags & VGR_NOJUMP))
+                   {
+!                      unload_dummy_buffer(buf);
+                       buf = NULL;
+                   }
+               }
+--- 3325,3336 ----
+                    * many swap files. */
+                   if (!found_match)
+                   {
+!                      wipe_dummy_buffer(buf, dirname_start);
+                       buf = NULL;
+                   }
+                   else if (buf != first_match_buf || (flags & VGR_NOJUMP))
+                   {
+!                      unload_dummy_buffer(buf, dirname_start);
+                       buf = NULL;
+                   }
+               }
+***************
+*** 3487,3499 ****
+  }
+  
+  /*
+!  * Load file "fname" into a dummy buffer and return the buffer pointer.
+   * Returns NULL if it fails.
+-  * Must call unload_dummy_buffer() or wipe_dummy_buffer() later!
+   */
+      static buf_T *
+! load_dummy_buffer(fname)
+      char_u   *fname;
+  {
+      buf_T    *newbuf;
+      buf_T    *newbuf_to_wipe = NULL;
+--- 3476,3523 ----
+  }
+  
+  /*
+!  * Restore current working directory to "dirname_start" if they differ, taking
+!  * into account whether it is set locally or globally.
+!  */
+!     static void
+! restore_start_dir(dirname_start)
+!     char_u   *dirname_start;
+! {
+!     char_u *dirname_now = alloc(MAXPATHL);
+! 
+!     if (NULL != dirname_now)
+!     {
+!      mch_dirname(dirname_now, MAXPATHL);
+!      if (STRCMP(dirname_start, dirname_now) != 0)
+!      {
+!          /* If the directory has changed, change it back by building up an
+!           * appropriate ex command and executing it. */
+!          exarg_T ea;
+! 
+!          ea.arg = dirname_start;
+!          ea.cmdidx = (curwin->w_localdir == NULL) ? CMD_cd : CMD_lcd;
+!          ex_cd(&ea);
+!      }
+!     }
+! }
+! 
+! /*
+!  * Load file "fname" into a dummy buffer and return the buffer pointer,
+!  * placing the directory resulting from the buffer load into the
+!  * "resulting_dir" pointer. "resulting_dir" must be allocated by the caller
+!  * prior to calling this function. Restores directory to "dirname_start" prior
+!  * to returning, if autocmds or the 'autochdir' option have changed it.
+!  *
+!  * If creating the dummy buffer does not fail, must call unload_dummy_buffer()
+!  * or wipe_dummy_buffer() later!
+!  *
+   * Returns NULL if it fails.
+   */
+      static buf_T *
+! load_dummy_buffer(fname, dirname_start, resulting_dir)
+      char_u   *fname;
++     char_u   *dirname_start;  /* in: old directory */
++     char_u   *resulting_dir;  /* out: new directory */
+  {
+      buf_T    *newbuf;
+      buf_T    *newbuf_to_wipe = NULL;
+***************
+*** 3548,3569 ****
+           wipe_buffer(newbuf_to_wipe, FALSE);
+      }
+  
+      if (!buf_valid(newbuf))
+       return NULL;
+      if (failed)
+      {
+!      wipe_dummy_buffer(newbuf);
+       return NULL;
+      }
+      return newbuf;
+  }
+  
+  /*
+!  * Wipe out the dummy buffer that load_dummy_buffer() created.
+   */
+      static void
+! wipe_dummy_buffer(buf)
+      buf_T    *buf;
+  {
+      if (curbuf != buf)               /* safety check */
+      {
+--- 3572,3604 ----
+           wipe_buffer(newbuf_to_wipe, FALSE);
+      }
+  
++     /*
++      * When autocommands/'autochdir' option changed directory: go back.
++      * Let the caller know what the resulting dir was first, in case it is
++      * important.
++      */
++     mch_dirname(resulting_dir, MAXPATHL);
++     restore_start_dir(dirname_start);
++ 
+      if (!buf_valid(newbuf))
+       return NULL;
+      if (failed)
+      {
+!      wipe_dummy_buffer(newbuf, dirname_start);
+       return NULL;
+      }
+      return newbuf;
+  }
+  
+  /*
+!  * Wipe out the dummy buffer that load_dummy_buffer() created. Restores
+!  * directory to "dirname_start" prior to returning, if autocmds or the
+!  * 'autochdir' option have changed it.
+   */
+      static void
+! wipe_dummy_buffer(buf, dirname_start)
+      buf_T    *buf;
++     char_u   *dirname_start;
+  {
+      if (curbuf != buf)               /* safety check */
+      {
+***************
+*** 3583,3600 ****
+        * new aborting error, interrupt, or uncaught exception. */
+       leave_cleanup(&cs);
+  #endif
+      }
+  }
+  
+  /*
+!  * Unload the dummy buffer that load_dummy_buffer() created.
+   */
+      static void
+! unload_dummy_buffer(buf)
+      buf_T    *buf;
+  {
+      if (curbuf != buf)               /* safety check */
+       close_buffer(NULL, buf, DOBUF_UNLOAD, FALSE);
+  }
+  
+  #if defined(FEAT_EVAL) || defined(PROTO)
+--- 3618,3645 ----
+        * new aborting error, interrupt, or uncaught exception. */
+       leave_cleanup(&cs);
+  #endif
++      /* When autocommands/'autochdir' option changed directory: go back. */
++      restore_start_dir(dirname_start);
+      }
+  }
+  
+  /*
+!  * Unload the dummy buffer that load_dummy_buffer() created. Restores
+!  * directory to "dirname_start" prior to returning, if autocmds or the
+!  * 'autochdir' option have changed it.
+   */
+      static void
+! unload_dummy_buffer(buf, dirname_start)
+      buf_T    *buf;
++     char_u   *dirname_start;
+  {
+      if (curbuf != buf)               /* safety check */
++     {
+       close_buffer(NULL, buf, DOBUF_UNLOAD, FALSE);
++ 
++      /* When autocommands/'autochdir' option changed directory: go back. */
++      restore_start_dir(dirname_start);
++     }
+  }
+  
+  #if defined(FEAT_EVAL) || defined(PROTO)
+*** ../vim-7.3.508/src/version.c       2012-04-25 18:24:24.000000000 +0200
+--- src/version.c      2012-04-25 18:43:10.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     509,
+  /**/
+
+-- 
+   Arthur pulls Pin out.  The MONK blesses the grenade as ...
+ARTHUR:  (quietly) One, two, five ...
+GALAHAD: Three, sir!
+ARTHUR:  Three.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.510.patch0 b/vim/patches/vim-7.3.510.patch0
new file mode 100644 (file)
index 0000000..afe1041
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.510
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.510
+Problem:    Test 77 fails on Solaris 7. (Michael Soyka)
+Solution:   Replace any tabs with spaces.
+Files:     src/testdir/test77.in
+
+
+*** ../vim-7.3.509/src/testdir/test77.in       2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/test77.in      2012-04-30 11:30:31.000000000 +0200
+***************
+*** 21,27 ****
+  :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
+  ggdd
+  :w! Xtest
+! :!cksum Xtest > test.out
+  :qa!
+  ENDTEST
+  
+--- 21,29 ----
+  :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
+  ggdd
+  :w! Xtest
+! :r !cksum Xtest
+! :s/\s/ /g
+! :.w! test.out
+  :qa!
+  ENDTEST
+  
+*** ../vim-7.3.509/src/version.c       2012-04-25 18:57:17.000000000 +0200
+--- src/version.c      2012-04-30 11:33:35.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     510,
+  /**/
+
+-- 
+SIGFUN -- signature too funny (core dumped)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.511.patch0 b/vim/patches/vim-7.3.511.patch0
new file mode 100644 (file)
index 0000000..a2b6dce
--- /dev/null
@@ -0,0 +1,49 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.511
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.511
+Problem:    Using a FileReadCmd autocommand that does ":e! {file}" may cause a
+           crash. (Christian Brabandt)
+Solution:   Properly restore curwin->w_s.
+Files:     src/fileio.c
+
+
+*** ../vim-7.3.510/src/fileio.c        2012-04-25 16:50:44.000000000 +0200
+--- src/fileio.c       2012-04-30 17:04:22.000000000 +0200
+***************
+*** 8982,8987 ****
+--- 8982,8991 ----
+                   && buf_valid(aco->new_curbuf)
+                   && aco->new_curbuf->b_ml.ml_mfp != NULL)
+           {
++ # if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
++              if (curwin->w_s == &curbuf->b_s)
++                  curwin->w_s = &aco->new_curbuf->b_s;
++ # endif
+               --curbuf->b_nwindows;
+               curbuf = aco->new_curbuf;
+               curwin->w_buffer = curbuf;
+*** ../vim-7.3.510/src/version.c       2012-04-30 11:34:20.000000000 +0200
+--- src/version.c      2012-04-30 17:01:05.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     511,
+  /**/
+
+-- 
+There is no right or wrong, there is only your personal opinion.
+                 (Bram Moolenaar)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.512.patch0 b/vim/patches/vim-7.3.512.patch0
new file mode 100644 (file)
index 0000000..838ae3e
--- /dev/null
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.512
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.512
+Problem:    undofile() returns a useless name when passed an empty string.
+Solution:   Return an empty string. (Christian Brabandt)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.511/src/eval.c  2012-04-25 18:24:24.000000000 +0200
+--- src/eval.c 2012-04-30 17:23:26.000000000 +0200
+***************
+*** 18259,18269 ****
+      rettv->v_type = VAR_STRING;
+  #ifdef FEAT_PERSISTENT_UNDO
+      {
+!      char_u *ffname = FullName_save(get_tv_string(&argvars[0]), FALSE);
+  
+!      if (ffname != NULL)
+!          rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE);
+!      vim_free(ffname);
+      }
+  #else
+      rettv->vval.v_string = NULL;
+--- 18259,18279 ----
+      rettv->v_type = VAR_STRING;
+  #ifdef FEAT_PERSISTENT_UNDO
+      {
+!      char_u *fname = get_tv_string(&argvars[0]);
+  
+!      if (*fname == NUL)
+!      {
+!          /* If there is no file name there will be no undo file. */
+!          rettv->vval.v_string = NULL;
+!      }
+!      else
+!      {
+!          char_u *ffname = FullName_save(fname, FALSE);
+! 
+!          if (ffname != NULL)
+!              rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE);
+!          vim_free(ffname);
+!      }
+      }
+  #else
+      rettv->vval.v_string = NULL;
+*** ../vim-7.3.511/src/version.c       2012-04-30 17:04:47.000000000 +0200
+--- src/version.c      2012-04-30 17:24:42.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     512,
+  /**/
+
+-- 
+It is illegal for a driver to be blindfolded while operating a vehicle.
+               [real standing law in Alabama, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.513.patch0 b/vim/patches/vim-7.3.513.patch0
new file mode 100644 (file)
index 0000000..396969f
--- /dev/null
@@ -0,0 +1,129 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.513
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.513
+Problem:    Cannot use CTRL-E and CTRL-Y with "r".
+Solution:   Make CTRL-E and CTRL-Y work like in Insert mode. (Christian
+           Brabandt)
+Files:     src/edit.c, src/normal.c, src/proto/edit.pro
+
+
+*** ../vim-7.3.512/src/edit.c  2012-04-05 16:07:01.000000000 +0200
+--- src/edit.c 2012-04-30 17:53:47.000000000 +0200
+***************
+*** 253,259 ****
+  #ifdef FEAT_DIGRAPHS
+  static int  ins_digraph __ARGS((void));
+  #endif
+- static int  ins_copychar __ARGS((linenr_T lnum));
+  static int  ins_ctrl_ey __ARGS((int tc));
+  #ifdef FEAT_SMARTINDENT
+  static void ins_try_si __ARGS((int c));
+--- 253,258 ----
+***************
+*** 9899,9905 ****
+   * Handle CTRL-E and CTRL-Y in Insert mode: copy char from other line.
+   * Returns the char to be inserted, or NUL if none found.
+   */
+!     static int
+  ins_copychar(lnum)
+      linenr_T lnum;
+  {
+--- 9898,9904 ----
+   * Handle CTRL-E and CTRL-Y in Insert mode: copy char from other line.
+   * Returns the char to be inserted, or NUL if none found.
+   */
+!     int
+  ins_copychar(lnum)
+      linenr_T lnum;
+  {
+*** ../vim-7.3.512/src/normal.c        2012-03-28 12:59:53.000000000 +0200
+--- src/normal.c       2012-04-30 18:06:13.000000000 +0200
+***************
+*** 7070,7076 ****
+           for (n = cap->count1; n > 0; --n)
+           {
+               State = REPLACE;
+!              ins_char(cap->nchar);
+               State = old_State;
+               if (cap->ncharC1 != 0)
+                   ins_char(cap->ncharC1);
+--- 7070,7087 ----
+           for (n = cap->count1; n > 0; --n)
+           {
+               State = REPLACE;
+!              if (cap->nchar == Ctrl_E || cap->nchar == Ctrl_Y)
+!              {
+!                  int c = ins_copychar(curwin->w_cursor.lnum
+!                                         + (cap->nchar == Ctrl_Y ? -1 : 1));
+!                  if (c != NUL)
+!                      ins_char(c);
+!                  else
+!                      /* will be decremented further down */
+!                      ++curwin->w_cursor.col;
+!              }
+!              else
+!                  ins_char(cap->nchar);
+               State = old_State;
+               if (cap->ncharC1 != 0)
+                   ins_char(cap->ncharC1);
+***************
+*** 7092,7098 ****
+                * line will be changed.
+                */
+               ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
+!              ptr[curwin->w_cursor.col] = cap->nchar;
+               if (p_sm && msg_silent == 0)
+                   showmatch(cap->nchar);
+               ++curwin->w_cursor.col;
+--- 7103,7117 ----
+                * line will be changed.
+                */
+               ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
+!              if (cap->nchar == Ctrl_E || cap->nchar == Ctrl_Y)
+!              {
+!                int c = ins_copychar(curwin->w_cursor.lnum
+!                                         + (cap->nchar == Ctrl_Y ? -1 : 1));
+!                if (c != NUL)
+!                  ptr[curwin->w_cursor.col] = c;
+!              }
+!              else
+!                  ptr[curwin->w_cursor.col] = cap->nchar;
+               if (p_sm && msg_silent == 0)
+                   showmatch(cap->nchar);
+               ++curwin->w_cursor.col;
+*** ../vim-7.3.512/src/proto/edit.pro  2010-08-15 21:57:28.000000000 +0200
+--- src/proto/edit.pro 2012-04-30 17:54:41.000000000 +0200
+***************
+*** 39,42 ****
+--- 39,43 ----
+  int hkmap __ARGS((int c));
+  void ins_scroll __ARGS((void));
+  void ins_horscroll __ARGS((void));
++ int ins_copychar __ARGS((linenr_T lnum));
+  /* vim: set ft=c : */
+*** ../vim-7.3.512/src/version.c       2012-04-30 17:35:44.000000000 +0200
+--- src/version.c      2012-04-30 18:17:52.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     513,
+  /**/
+
+-- 
+It is illegal for anyone to try and stop a child from playfully jumping over
+puddles of water.
+               [real standing law in California, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.514.patch0 b/vim/patches/vim-7.3.514.patch0
new file mode 100644 (file)
index 0000000..79620f0
--- /dev/null
@@ -0,0 +1,232 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.514
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.514
+Problem:    No completion for :history command.
+Solution:   Add the completion and update the docs. Also fix ":behave"
+           completion. (Dominique Pelle)
+Files:     runtime/doc/cmdline.txt, runtime/doc/map.txt, src/ex_docmd.c,
+           src/ex_getln.c, src/vim.h
+
+
+*** ../vim-7.3.513/runtime/doc/cmdline.txt     2010-08-15 21:57:17.000000000 +0200
+--- runtime/doc/cmdline.txt    2012-04-30 18:30:00.000000000 +0200
+***************
+*** 330,341 ****
+  
+  :his[tory] [{name}] [{first}][, [{last}]]
+               List the contents of history {name} which can be:
+!              c[md]    or :   command-line history
+!              s[earch] or /   search string history
+!              e[xpr]   or =   expression register history
+!              i[nput]  or @   input line history
+!              d[ebug]  or >   debug command history
+!              a[ll]           all of the above
+               {not in Vi}
+  
+               If the numbers {first} and/or {last} are given, the respective
+--- 330,341 ----
+  
+  :his[tory] [{name}] [{first}][, [{last}]]
+               List the contents of history {name} which can be:
+!              c[md]    or :           command-line history
+!              s[earch] or / or ?      search string history
+!              e[xpr]   or =           expression register history
+!              i[nput]  or @           input line history
+!              d[ebug]  or >           debug command history
+!              a[ll]                   all of the above
+               {not in Vi}
+  
+               If the numbers {first} and/or {last} are given, the respective
+*** ../vim-7.3.513/runtime/doc/map.txt 2011-07-20 16:36:35.000000000 +0200
+--- runtime/doc/map.txt        2012-04-30 18:30:00.000000000 +0200
+***************
+*** 1202,1207 ****
+--- 1219,1225 ----
+  
+       -complete=augroup       autocmd groups
+       -complete=buffer        buffer names
++      -complete=behave        :behave suboptions
+       -complete=color         color schemes
+       -complete=command       Ex command (and arguments)
+       -complete=compiler      compilers
+***************
+*** 1216,1221 ****
+--- 1234,1240 ----
+       -complete=function      function name
+       -complete=help          help subjects
+       -complete=highlight     highlight groups
++      -complete=history       :history suboptions
+       -complete=locale        locale names (as output of locale -a)
+       -complete=mapping       mapping name
+       -complete=menu          menus
+*** ../vim-7.3.513/src/ex_docmd.c      2012-02-12 20:13:55.000000000 +0100
+--- src/ex_docmd.c     2012-04-30 18:33:27.000000000 +0200
+***************
+*** 3920,3927 ****
+--- 3920,3935 ----
+  #endif
+       case CMD_behave:
+           xp->xp_context = EXPAND_BEHAVE;
++          xp->xp_pattern = arg;
+           break;
+  
++ #if defined(FEAT_CMDHIST)
++      case CMD_history:
++          xp->xp_context = EXPAND_HISTORY;
++          xp->xp_pattern = arg;
++          break;
++ #endif
++ 
+  #endif /* FEAT_CMDL_COMPL */
+  
+       default:
+***************
+*** 5329,5334 ****
+--- 5337,5343 ----
+  } command_complete[] =
+  {
+      {EXPAND_AUGROUP, "augroup"},
++     {EXPAND_BEHAVE, "behave"},
+      {EXPAND_BUFFERS, "buffer"},
+      {EXPAND_COLORS, "color"},
+      {EXPAND_COMMANDS, "command"},
+***************
+*** 5350,5357 ****
+      {EXPAND_FUNCTIONS, "function"},
+      {EXPAND_HELP, "help"},
+      {EXPAND_HIGHLIGHT, "highlight"},
+  #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+!         && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+      {EXPAND_LOCALES, "locale"},
+  #endif
+      {EXPAND_MAPPINGS, "mapping"},
+--- 5359,5369 ----
+      {EXPAND_FUNCTIONS, "function"},
+      {EXPAND_HELP, "help"},
+      {EXPAND_HIGHLIGHT, "highlight"},
++ #if defined(FEAT_CMDHIST)
++     {EXPAND_HISTORY, "history"},
++ #endif
+  #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+!      && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+      {EXPAND_LOCALES, "locale"},
+  #endif
+      {EXPAND_MAPPINGS, "mapping"},
+*** ../vim-7.3.513/src/ex_getln.c      2012-03-07 19:16:49.000000000 +0100
+--- src/ex_getln.c     2012-04-30 18:36:04.000000000 +0200
+***************
+*** 25,31 ****
+      int              cmdlen;         /* number of chars in command line */
+      int              cmdpos;         /* current cursor position */
+      int              cmdspos;        /* cursor column on screen */
+!     int              cmdfirstc;      /* ':', '/', '?', '=' or NUL */
+      int              cmdindent;      /* number of spaces before cmdline */
+      char_u   *cmdprompt;     /* message in front of cmdline */
+      int              cmdattr;        /* attributes for prompt */
+--- 25,31 ----
+      int              cmdlen;         /* number of chars in command line */
+      int              cmdpos;         /* current cursor position */
+      int              cmdspos;        /* cursor column on screen */
+!     int              cmdfirstc;      /* ':', '/', '?', '=', '>' or NUL */
+      int              cmdindent;      /* number of spaces before cmdline */
+      char_u   *cmdprompt;     /* message in front of cmdline */
+      int              cmdattr;        /* attributes for prompt */
+***************
+*** 111,116 ****
+--- 111,119 ----
+  #ifdef FEAT_CMDL_COMPL
+  static int   expand_shellcmd __ARGS((char_u *filepat, int *num_file, char_u ***file, int flagsarg));
+  static int   ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname[]));
++ # ifdef FEAT_CMDHIST
++ static char_u        *get_history_arg __ARGS((expand_T *xp, int idx));
++ # endif
+  # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
+  static int   ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
+  static int   ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
+***************
+*** 4628,4633 ****
+--- 4631,4639 ----
+       {
+           {EXPAND_COMMANDS, get_command_name, FALSE, TRUE},
+           {EXPAND_BEHAVE, get_behave_arg, TRUE, TRUE},
++ #ifdef FEAT_CMDHIST
++          {EXPAND_HISTORY, get_history_arg, TRUE, TRUE},
++ #endif
+  #ifdef FEAT_USR_CMDS
+           {EXPAND_USER_COMMANDS, get_user_commands, FALSE, TRUE},
+           {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE, TRUE},
+***************
+*** 5245,5250 ****
+--- 5251,5284 ----
+      NULL
+  };
+  
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ /*
++  * Function given to ExpandGeneric() to obtain the possible first
++  * arguments of the ":history command.
++  */
++     static char_u *
++ get_history_arg(xp, idx)
++     expand_T *xp UNUSED;
++     int              idx;
++ {
++     static char_u compl[2] = { NUL, NUL };
++     char *short_names = ":=@>?/";
++     int short_names_count = STRLEN(short_names);
++     int history_name_count = sizeof(history_names) / sizeof(char *) - 1;
++ 
++     if (idx < short_names_count)
++     {
++      compl[0] = (char_u)short_names[idx];
++      return compl;
++     }
++     if (idx < short_names_count + history_name_count)
++      return (char_u *)history_names[idx - short_names_count];
++     if (idx == short_names_count + history_name_count)
++      return (char_u *)"all";
++     return NULL;
++ }
++ #endif
++ 
+  /*
+   * init_history() - Initialize the command line history.
+   * Also used to re-allocate the history when the size changes.
+*** ../vim-7.3.513/src/vim.h   2012-03-23 16:25:13.000000000 +0100
+--- src/vim.h  2012-04-30 18:30:00.000000000 +0200
+***************
+*** 781,786 ****
+--- 781,787 ----
+  #define EXPAND_FILES_IN_PATH 38
+  #define EXPAND_OWNSYNTAX     39
+  #define EXPAND_LOCALES               40
++ #define EXPAND_HISTORY               41
+  
+  /* Values for exmode_active (0 is no exmode) */
+  #define EXMODE_NORMAL                1
+*** ../vim-7.3.513/src/version.c       2012-04-30 18:18:43.000000000 +0200
+--- src/version.c      2012-04-30 18:36:19.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     514,
+  /**/
+
+-- 
+You can be stopped by the police for biking over 65 miles per hour.
+You are not allowed to walk across a street on your hands.
+               [real standing laws in Connecticut, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.515.patch0 b/vim/patches/vim-7.3.515.patch0
new file mode 100644 (file)
index 0000000..dad6f61
--- /dev/null
@@ -0,0 +1,68 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.515
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.515
+Problem:    'wildignorecase' only applies to the last part of the path.
+Solution:   Also ignore case for letters earlier in the path.
+Files:     src/misc1.c
+
+
+*** ../vim-7.3.514/src/misc1.c 2012-04-09 20:42:20.000000000 +0200
+--- src/misc1.c        2012-04-30 21:00:18.000000000 +0200
+***************
+*** 9461,9466 ****
+--- 9461,9467 ----
+  
+      /*
+       * Find the first part in the path name that contains a wildcard.
++      * When EW_ICASE is set every letter is considered to be a wildcard.
+       * Copy it into "buf", including the preceding characters.
+       */
+      p = buf;
+***************
+*** 9480,9486 ****
+           s = p + 1;
+       }
+       else if (path_end >= path + wildoff
+!                       && vim_strchr((char_u *)"*?[{~$", *path_end) != NULL)
+           e = p;
+  #ifdef FEAT_MBYTE
+       if (has_mbyte)
+--- 9481,9492 ----
+           s = p + 1;
+       }
+       else if (path_end >= path + wildoff
+!                       && (vim_strchr((char_u *)"*?[{~$", *path_end) != NULL
+! #ifndef CASE_INSENSITIVE_FILENAME
+!                           || ((flags & EW_ICASE)
+!                                             && isalpha(PTR2CHAR(path_end)))
+! #endif
+!                           ))
+           e = p;
+  #ifdef FEAT_MBYTE
+       if (has_mbyte)
+*** ../vim-7.3.514/src/version.c       2012-04-30 18:48:38.000000000 +0200
+--- src/version.c      2012-04-30 21:05:10.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     515,
+  /**/
+
+-- 
+If an elephant is left tied to a parking meter, the parking fee has to be paid
+just as it would for a vehicle.
+               [real standing law in Florida, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.516.patch0 b/vim/patches/vim-7.3.516.patch0
new file mode 100644 (file)
index 0000000..d43be5a
--- /dev/null
@@ -0,0 +1,94 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.516
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.516
+Problem:    extend(o, o) may crash Vim.
+Solution:   Fix crash and add test. (Thinca and Hirohito Higashi)
+Files:     src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
+
+
+*** ../vim-7.3.515/src/eval.c  2012-04-30 17:35:44.000000000 +0200
+--- src/eval.c 2012-05-18 12:02:44.000000000 +0200
+***************
+*** 10191,10197 ****
+                       EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
+                       break;
+                   }
+!                  else if (*action == 'f')
+                   {
+                       clear_tv(&di1->di_tv);
+                       copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
+--- 10191,10197 ----
+                       EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
+                       break;
+                   }
+!                  else if (*action == 'f' && HI2DI(hi2) != di1)
+                   {
+                       clear_tv(&di1->di_tv);
+                       copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
+*** ../vim-7.3.515/src/testdir/test55.in       2010-11-10 20:31:24.000000000 +0100
+--- src/testdir/test55.in      2012-05-18 11:57:23.000000000 +0200
+***************
+*** 352,357 ****
+--- 352,375 ----
+  :let dict4copy = deepcopy(dict4)
+  :$put =(l == lcopy)
+  :$put =(dict4 == dict4copy)
++ :"
++ :" Pass the same List to extend()
++ :let l = [1, 2, 3, 4, 5]
++ :call extend(l, l)
++ :$put =string(l)
++ :"
++ :" Pass the same Dict to extend()
++ :let d = { 'a': {'b': 'B'}}
++ :call extend(d, d)
++ :$put =string(d)
++ :"
++ :" Pass the same Dict to extend() with "error"
++ :try
++ :  call extend(d, d, "error")
++ :catch
++ :  $put =v:exception[:15] . v:exception[-1:-1]
++ :endtry
++ :$put =string(d)
+  :endfun
+  :"
+  :call Test(1, 2, [3, 4], {5: 6})  " This may take a while
+*** ../vim-7.3.515/src/testdir/test55.ok       2010-11-10 20:31:24.000000000 +0100
+--- src/testdir/test55.ok      2012-05-18 11:57:01.000000000 +0200
+***************
+*** 111,113 ****
+--- 111,117 ----
+  0
+  1
+  1
++ [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
++ {'a': {'b': 'B'}}
++ Vim(call):E737: a
++ {'a': {'b': 'B'}}
+*** ../vim-7.3.515/src/version.c       2012-04-30 21:09:38.000000000 +0200
+--- src/version.c      2012-05-18 12:04:54.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     516,
+  /**/
+
+-- 
+I used to wonder about the meaning of life.  But I looked it
+up in the dictionary under "L" and there it was - the meaning
+of life.  It was less than I expected.              - Dogbert
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.517.patch0 b/vim/patches/vim-7.3.517.patch0
new file mode 100644 (file)
index 0000000..343693b
--- /dev/null
@@ -0,0 +1,60 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.517
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.517
+Problem:    Crash when using "vipvv". (Alexandre Provencio)
+Solution:   Don't let the text length become negative.
+Files:     src/ops.c
+
+
+*** ../vim-7.3.516/src/ops.c   2012-04-20 13:46:02.000000000 +0200
+--- src/ops.c  2012-05-18 12:28:09.000000000 +0200
+***************
+*** 3042,3047 ****
+--- 3042,3049 ----
+                       }
+  #endif
+                   }
++                  if (endcol == MAXCOL)
++                      endcol = (colnr_T)STRLEN(p);
+                   if (startcol > endcol
+  #ifdef FEAT_VIRTUALEDIT
+                           || is_oneChar
+***************
+*** 3050,3057 ****
+                       bd.textlen = 0;
+                   else
+                   {
+-                      if (endcol == MAXCOL)
+-                          endcol = (colnr_T)STRLEN(p);
+                       bd.textlen = endcol - startcol + oap->inclusive;
+                   }
+                   bd.textstart = p + startcol;
+--- 3052,3057 ----
+*** ../vim-7.3.516/src/version.c       2012-05-18 12:06:58.000000000 +0200
+--- src/version.c      2012-05-18 12:48:51.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     517,
+  /**/
+
+-- 
+BODY:        I'm not dead!
+CART DRIVER: 'Ere.  He says he's not dead.
+LARGE MAN:   Yes he is.
+BODY:        I'm not!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.518.patch0 b/vim/patches/vim-7.3.518.patch0
new file mode 100644 (file)
index 0000000..89429f0
--- /dev/null
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.518
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.518
+Problem:    When 'encoding' is a double-byte encoding ":helptags" may not find
+           tags correctly.
+Solution:   Use vim_strbyte() instead of vim_strchr(). (Yasuhiro Matsumoto)
+Files:     src/ex_cmds.c
+
+
+*** ../vim-7.3.517/src/ex_cmds.c       2012-04-25 17:32:14.000000000 +0200
+--- src/ex_cmds.c      2012-05-18 16:20:20.000000000 +0200
+***************
+*** 6535,6541 ****
+           p1 = vim_strchr(IObuff, '*');       /* find first '*' */
+           while (p1 != NULL)
+           {
+!              p2 = vim_strchr(p1 + 1, '*');   /* find second '*' */
+               if (p2 != NULL && p2 > p1 + 1)  /* skip "*" and "**" */
+               {
+                   for (s = p1 + 1; s < p2; ++s)
+--- 6535,6544 ----
+           p1 = vim_strchr(IObuff, '*');       /* find first '*' */
+           while (p1 != NULL)
+           {
+!              /* Use vim_strbyte() instead of vim_strchr() so that when
+!               * 'encoding' is dbcs it still works, don't find '*' in the
+!               * second byte. */
+!              p2 = vim_strbyte(p1 + 1, '*');  /* find second '*' */
+               if (p2 != NULL && p2 > p1 + 1)  /* skip "*" and "**" */
+               {
+                   for (s = p1 + 1; s < p2; ++s)
+*** ../vim-7.3.517/src/version.c       2012-05-18 12:49:33.000000000 +0200
+--- src/version.c      2012-05-18 16:23:50.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     518,
+  /**/
+
+-- 
+If all you have is a hammer, everything looks like a nail.
+When your hammer is C++, everything begins to look like a thumb.
+                       -- Steve Hoflich, comp.lang.c++
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.519.patch0 b/vim/patches/vim-7.3.519.patch0
new file mode 100644 (file)
index 0000000..846cea6
--- /dev/null
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.519
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.519
+Problem:    When completefunction returns it cannot indicate end of completion
+           mode.
+Solution:   Recognize completefunction returning -3.  (Mtsushita Shougo)
+Files:     src/edit.c
+
+
+*** ../vim-7.3.518/src/edit.c  2012-04-30 18:18:43.000000000 +0200
+--- src/edit.c 2012-05-18 16:35:06.000000000 +0200
+***************
+*** 5205,5213 ****
+           }
+  
+           /* Return value -2 means the user complete function wants to
+!           * cancel the complete without an error. */
+           if (col == -2)
+               return FAIL;
+  
+           /*
+            * Reset extended parameters of completion, when start new
+--- 5205,5221 ----
+           }
+  
+           /* Return value -2 means the user complete function wants to
+!           * cancel the complete without an error.
+!           * Return value -3 does the same as -2 and leaves CTRL-X mode.*/
+           if (col == -2)
+               return FAIL;
++          if (col == -3)
++          {
++              ctrl_x_mode = 0;
++              edit_submode = NULL;
++              msg_clr_cmdline();
++              return FAIL;
++          }
+  
+           /*
+            * Reset extended parameters of completion, when start new
+*** ../vim-7.3.518/src/version.c       2012-05-18 16:24:06.000000000 +0200
+--- src/version.c      2012-05-18 16:34:27.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     519,
+  /**/
+
+-- 
+Looking at Perl through Lisp glasses, Perl looks atrocious.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.520.patch0 b/vim/patches/vim-7.3.520.patch0
new file mode 100644 (file)
index 0000000..9e2da8d
--- /dev/null
@@ -0,0 +1,140 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.520
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.520
+Problem:    Gvim starts up slow on Unbuntu 12.04.
+Solution:   Move the call to gui_mch_init_check() to after fork(). (Yasuhiro
+           Matsumoto)  Do check $DISPLAY being set.
+Files:     src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
+
+
+*** ../vim-7.3.519/src/gui.c   2011-10-20 21:27:57.000000000 +0200
+--- src/gui.c  2012-05-18 16:53:14.000000000 +0200
+***************
+*** 270,275 ****
+--- 270,281 ----
+      }
+      /* Child */
+  
++ #ifdef FEAT_GUI_GTK
++     /* Call gtk_init_check() here after fork(). See gui_init_check(). */
++     if (gui_mch_init_check() != OK)
++      exit(1);
++ #endif
++ 
+  # if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
+      /*
+       * Change our process group.  On some systems/shells a CTRL-C in the
+***************
+*** 430,436 ****
+--- 436,452 ----
+  #ifdef ALWAYS_USE_GUI
+      result = OK;
+  #else
++ # ifdef FEAT_GUI_GTK
++     /*
++      * Note: Don't call gtk_init_check() before fork, it will be called after
++      * the fork. When calling it before fork, it make vim hang for a while.
++      * See gui_do_fork().
++      * Use a simpler check if the GUI window can probably be opened.
++      */
++     result = gui.dofork ? gui_mch_early_init_check() : gui_mch_init_check();
++ # else
+      result = gui_mch_init_check();
++ # endif
+  #endif
+      return result;
+  }
+*** ../vim-7.3.519/src/gui_gtk_x11.c   2011-10-26 11:36:21.000000000 +0200
+--- src/gui_gtk_x11.c  2012-05-18 17:00:45.000000000 +0200
+***************
+*** 1414,1420 ****
+  }
+  
+  /*
+!  * Check if the GUI can be started.  Called before gvimrc is sourced.
+   * Return OK or FAIL.
+   */
+      int
+--- 1414,1442 ----
+  }
+  
+  /*
+!  * Check if the GUI can be started.  Called before gvimrc is sourced and
+!  * before fork().
+!  * Return OK or FAIL.
+!  */
+!     int
+! gui_mch_early_init_check(void)
+! {
+!     char_u *p;
+! 
+!     /* Guess that when $DISPLAY isn't set the GUI can't start. */
+!     p = mch_getenv((char_u *)"DISPLAY");
+!     if (p == NULL || *p == NUL)
+!     {
+!      gui.dying = TRUE;
+!      EMSG(_((char *)e_opendisp));
+!      return FAIL;
+!     }
+!     return OK;
+! }
+! 
+! /*
+!  * Check if the GUI can be started.  Called before gvimrc is sourced but after
+!  * fork().
+   * Return OK or FAIL.
+   */
+      int
+***************
+*** 3050,3056 ****
+  
+      for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
+      {
+!      /* OpenOffice tries to use TARGET_HTML and fails when it doesn't
+        * return something, instead of trying another target. Therefore only
+        * offer TARGET_HTML when it works. */
+       if (!clip_html && selection_targets[i].info == TARGET_HTML)
+--- 3072,3078 ----
+  
+      for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
+      {
+!      /* OpenOffice tries to use TARGET_HTML and fails when we don't
+        * return something, instead of trying another target. Therefore only
+        * offer TARGET_HTML when it works. */
+       if (!clip_html && selection_targets[i].info == TARGET_HTML)
+*** ../vim-7.3.519/src/proto/gui_gtk_x11.pro   2011-08-10 17:44:41.000000000 +0200
+--- src/proto/gui_gtk_x11.pro  2012-05-18 16:54:28.000000000 +0200
+***************
+*** 4,9 ****
+--- 4,10 ----
+  void gui_mch_set_blinking __ARGS((long waittime, long on, long off));
+  void gui_mch_stop_blink __ARGS((void));
+  void gui_mch_start_blink __ARGS((void));
++ int gui_mch_early_init_check __ARGS((void));
+  int gui_mch_init_check __ARGS((void));
+  void gui_mch_show_tabline __ARGS((int showit));
+  int gui_mch_showing_tabline __ARGS((void));
+*** ../vim-7.3.519/src/version.c       2012-05-18 16:35:17.000000000 +0200
+--- src/version.c      2012-05-18 16:45:30.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     520,
+  /**/
+
+-- 
+Bad programs can be written in any language.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.521.patch0 b/vim/patches/vim-7.3.521.patch0
new file mode 100644 (file)
index 0000000..efe7122
--- /dev/null
@@ -0,0 +1,129 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.521
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.521
+Problem:    Using "z=" on a multi-byte character may cause a crash.
+Solution:   Don't use strlen() on an int pointer.
+Files:     src/spell.c
+
+
+*** ../vim-7.3.520/src/spell.c 2012-01-10 22:26:12.000000000 +0100
+--- src/spell.c        2012-05-18 18:01:58.000000000 +0200
+***************
+*** 14494,14506 ****
+      int              p0 = -333;
+      int              c0;
+      int              did_white = FALSE;
+  
+      /*
+       * Convert the multi-byte string to a wide-character string.
+       * Remove accents, if wanted.  We actually remove all non-word characters.
+       * But keep white space.
+       */
+!     n = 0;
+      for (s = inword; *s != NUL; )
+      {
+       t = s;
+--- 14494,14508 ----
+      int              p0 = -333;
+      int              c0;
+      int              did_white = FALSE;
++     int              wordlen;
++ 
+  
+      /*
+       * Convert the multi-byte string to a wide-character string.
+       * Remove accents, if wanted.  We actually remove all non-word characters.
+       * But keep white space.
+       */
+!     wordlen = 0;
+      for (s = inword; *s != NUL; )
+      {
+       t = s;
+***************
+*** 14521,14532 ****
+                   continue;
+           }
+       }
+!      word[n++] = c;
+      }
+!     word[n] = NUL;
+  
+      /*
+!      * This comes from Aspell phonet.cpp.
+       * Converted from C++ to C.  Added support for multi-byte chars.
+       * Changed to keep spaces.
+       */
+--- 14523,14534 ----
+                   continue;
+           }
+       }
+!      word[wordlen++] = c;
+      }
+!     word[wordlen] = NUL;
+  
+      /*
+!      * This algorithm comes from Aspell phonet.cpp.
+       * Converted from C++ to C.  Added support for multi-byte chars.
+       * Changed to keep spaces.
+       */
+***************
+*** 14711,14717 ****
+                           }
+                       if (k > k0)
+                           mch_memmove(word + i + k0, word + i + k,
+!                                  sizeof(int) * (STRLEN(word + i + k) + 1));
+  
+                       /* new "actual letter" */
+                       c = word[i];
+--- 14713,14719 ----
+                           }
+                       if (k > k0)
+                           mch_memmove(word + i + k0, word + i + k,
+!                                  sizeof(int) * (wordlen - (i + k) + 1));
+  
+                       /* new "actual letter" */
+                       c = word[i];
+***************
+*** 14739,14745 ****
+                           if (c != NUL)
+                               wres[reslen++] = c;
+                           mch_memmove(word, word + i + 1,
+!                                  sizeof(int) * (STRLEN(word + i + 1) + 1));
+                           i = 0;
+                           z0 = 1;
+                       }
+--- 14741,14747 ----
+                           if (c != NUL)
+                               wres[reslen++] = c;
+                           mch_memmove(word, word + i + 1,
+!                                     sizeof(int) * (wordlen - (i + 1) + 1));
+                           i = 0;
+                           z0 = 1;
+                       }
+*** ../vim-7.3.520/src/version.c       2012-05-18 17:03:14.000000000 +0200
+--- src/version.c      2012-05-18 18:06:29.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     521,
+  /**/
+
+-- 
+OLD WOMAN: King of the WHO?
+ARTHUR:    The Britons.
+OLD WOMAN: Who are the Britons?
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.522.patch0 b/vim/patches/vim-7.3.522.patch0
new file mode 100644 (file)
index 0000000..2f4d17c
--- /dev/null
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.522
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.522
+Problem:    Crash in vim_realloc() when using MEM_PROFILE.
+Solution:   Avoid using a NULL argument. (Dominique Pelle)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.521/src/eval.c  2012-05-18 12:06:58.000000000 +0200
+--- src/eval.c 2012-05-18 18:19:25.000000000 +0200
+***************
+*** 14643,14649 ****
+                   long growmin  = (long)((p - start) * 2 + prevlen);
+                   prevsize = grow50pc > growmin ? grow50pc : growmin;
+               }
+!              if ((newprev = vim_realloc(prev, prevsize)) == NULL)
+               {
+                   do_outofmem_msg((long_u)prevsize);
+                   failed = TRUE;
+--- 14643,14651 ----
+                   long growmin  = (long)((p - start) * 2 + prevlen);
+                   prevsize = grow50pc > growmin ? grow50pc : growmin;
+               }
+!              newprev = prev == NULL ? alloc(prevsize)
+!                                              : vim_realloc(prev, prevsize);
+!              if (newprev == NULL)
+               {
+                   do_outofmem_msg((long_u)prevsize);
+                   failed = TRUE;
+*** ../vim-7.3.521/src/version.c       2012-05-18 18:07:57.000000000 +0200
+--- src/version.c      2012-05-18 18:33:36.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     522,
+  /**/
+
+-- 
+ARTHUR:    ... and I am your king ....
+OLD WOMAN: Ooooh!  I didn't know we had a king.  I thought we were an
+           autonomous collective ...
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.523.patch0 b/vim/patches/vim-7.3.523.patch0
new file mode 100644 (file)
index 0000000..7eec3ea
--- /dev/null
@@ -0,0 +1,103 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.523
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.523
+Problem:    ":diffupdate" doesn't check for files changed elsewhere.
+Solution:   Add the ! flag. (Christian Brabandt)
+Files:     runtime/doc/diff.txt, src/diff.c, src/ex_cmds.h
+
+
+*** ../vim-7.3.522/runtime/doc/diff.txt        2010-08-15 21:57:16.000000000 +0200
+--- runtime/doc/diff.txt       2012-05-18 18:41:49.000000000 +0200
+***************
+*** 178,184 ****
+  nodiff" before hiding it.
+  
+                                                       *:diffu* *:diffupdate*
+! :diffu[pdate]                        Update the diff highlighting and folds.
+  
+  Vim attempts to keep the differences updated when you make changes to the
+  text.  This mostly takes care of inserted and deleted lines.  Changes within a
+--- 178,184 ----
+  nodiff" before hiding it.
+  
+                                                       *:diffu* *:diffupdate*
+! :diffu[pdate][!]             Update the diff highlighting and folds.
+  
+  Vim attempts to keep the differences updated when you make changes to the
+  text.  This mostly takes care of inserted and deleted lines.  Changes within a
+***************
+*** 187,192 ****
+--- 187,195 ----
+  
+       :diffupdate
+  
++ If the ! is included Vim will check if the file was changed externally and
++ needs to be reloaded.  It will prompt for each changed file, like `:checktime`
++ was used.
+  
+  Vim will show filler lines for lines that are missing in one window but are
+  present in another.  These lines were inserted in another file or deleted in
+*** ../vim-7.3.522/src/diff.c  2010-09-21 16:56:29.000000000 +0200
+--- src/diff.c 2012-05-18 18:45:09.000000000 +0200
+***************
+*** 783,788 ****
+--- 783,797 ----
+       goto theend;
+      }
+  
++     /* :diffupdate! */
++     if (eap != NULL && eap->forceit)
++      for (idx_new = idx_orig; idx_new < DB_COUNT; ++idx_new)
++      {
++          buf = curtab->tp_diffbuf[idx_new];
++          if (buf_valid(buf))
++              buf_check_timestamp(buf, FALSE);
++      }
++ 
+      /* Write the first buffer to a tempfile. */
+      buf = curtab->tp_diffbuf[idx_orig];
+      if (diff_write(buf, tmp_orig) == FAIL)
+*** ../vim-7.3.522/src/ex_cmds.h       2012-02-13 00:01:38.000000000 +0100
+--- src/ex_cmds.h      2012-05-18 18:37:56.000000000 +0200
+***************
+*** 304,310 ****
+  EX(CMD_display,              "display",      ex_display,
+                       EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
+  EX(CMD_diffupdate,   "diffupdate",   ex_diffupdate,
+!                      TRLBAR),
+  EX(CMD_diffget,              "diffget",      ex_diffgetput,
+                       RANGE|EXTRA|TRLBAR|MODIFY),
+  EX(CMD_diffoff,              "diffoff",      ex_diffoff,
+--- 304,310 ----
+  EX(CMD_display,              "display",      ex_display,
+                       EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
+  EX(CMD_diffupdate,   "diffupdate",   ex_diffupdate,
+!                      BANG|TRLBAR),
+  EX(CMD_diffget,              "diffget",      ex_diffgetput,
+                       RANGE|EXTRA|TRLBAR|MODIFY),
+  EX(CMD_diffoff,              "diffoff",      ex_diffoff,
+*** ../vim-7.3.522/src/version.c       2012-05-18 18:34:15.000000000 +0200
+--- src/version.c      2012-05-18 18:39:13.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     523
+  /**/
+
+-- 
+"The future's already arrived - it's just not evenly distributed yet."
+               -- William Gibson
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.524.patch0 b/vim/patches/vim-7.3.524.patch0
new file mode 100644 (file)
index 0000000..80d7baf
--- /dev/null
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.524
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.524 (after 7.3.523)
+Problem:    Missing comma.
+Solution:   Add the comma.
+Files:     src/version.c
+
+
+*** ../vim-7.3.523/src/version.c       2012-05-18 18:47:11.000000000 +0200
+--- src/version.c      2012-05-18 21:52:26.000000000 +0200
+***************
+*** 715,721 ****
+  static int included_patches[] =
+  {   /* Add new patch number below this line */
+  /**/
+!     523
+  /**/
+      522,
+  /**/
+--- 715,723 ----
+  static int included_patches[] =
+  {   /* Add new patch number below this line */
+  /**/
+!     524,
+! /**/
+!     523,
+  /**/
+      522,
+  /**/
+
+-- 
+DENNIS: You can't expect to wield supreme executive power just 'cause some
+        watery tart threw a sword at you!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.525.patch0 b/vim/patches/vim-7.3.525.patch0
new file mode 100644 (file)
index 0000000..c9741cb
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.525
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.525
+Problem:    Compiler warning on 64 bit MS-Windows.
+Solution:   Add type cast. (Mike Williams)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.3.524/src/ex_getln.c      2012-04-30 18:48:38.000000000 +0200
+--- src/ex_getln.c     2012-05-23 20:33:16.000000000 +0200
+***************
+*** 5263,5269 ****
+  {
+      static char_u compl[2] = { NUL, NUL };
+      char *short_names = ":=@>?/";
+!     int short_names_count = STRLEN(short_names);
+      int history_name_count = sizeof(history_names) / sizeof(char *) - 1;
+  
+      if (idx < short_names_count)
+--- 5263,5269 ----
+  {
+      static char_u compl[2] = { NUL, NUL };
+      char *short_names = ":=@>?/";
+!     int short_names_count = (int)STRLEN(short_names);
+      int history_name_count = sizeof(history_names) / sizeof(char *) - 1;
+  
+      if (idx < short_names_count)
+*** ../vim-7.3.524/src/version.c       2012-05-18 21:53:29.000000000 +0200
+--- src/version.c      2012-05-25 11:01:51.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     525,
+  /**/
+
+-- 
+For humans, honesty is a matter of degree.  Engineers are always honest in
+matters of technology and human relationships.  That's why it's a good idea
+to keep engineers away from customers, romantic interests, and other people
+who can't handle the truth.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.526.patch0 b/vim/patches/vim-7.3.526.patch0
new file mode 100644 (file)
index 0000000..036d401
--- /dev/null
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.526
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.526
+Problem:    Confusing indenting for #ifdef.
+Solution:   Remove and add indent. (Elias Diem)
+Files:     src/normal.c
+
+
+*** ../vim-7.3.525/src/normal.c        2012-04-30 18:18:43.000000000 +0200
+--- src/normal.c       2012-05-23 20:35:13.000000000 +0200
+***************
+*** 29,37 ****
+  static void  set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
+  #endif
+  static int
+! # ifdef __BORLANDC__
+! _RTLENTRYF
+! # endif
+               nv_compare __ARGS((const void *s1, const void *s2));
+  static int   find_command __ARGS((int cmdchar));
+  static void  op_colon __ARGS((oparg_T *oap));
+--- 29,37 ----
+  static void  set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
+  #endif
+  static int
+! #ifdef __BORLANDC__
+!     _RTLENTRYF
+! #endif
+               nv_compare __ARGS((const void *s1, const void *s2));
+  static int   find_command __ARGS((int cmdchar));
+  static void  op_colon __ARGS((oparg_T *oap));
+*** ../vim-7.3.525/src/version.c       2012-05-25 11:02:34.000000000 +0200
+--- src/version.c      2012-05-25 11:03:37.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     526,
+  /**/
+
+-- 
+While it's true that many normal people whould prefer not to _date_ an
+engineer, most normal people harbor an intense desire to _mate_ with them,
+thus producing engineerlike children who will have high-paying jobs long
+before losing their virginity.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.527.patch0 b/vim/patches/vim-7.3.527.patch0
new file mode 100644 (file)
index 0000000..0c6af2b
--- /dev/null
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.527
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=latin1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.527
+Problem:    Clang complains about non-ASCII characters in a string.
+Solution:   Change to \x88 form. (Dominique Pelle)
+Files:     src/charset.c
+
+
+*** ../vim-7.3.526/src/charset.c       2012-01-26 13:40:04.000000000 +0100
+--- src/charset.c      2012-05-25 11:49:58.000000000 +0200
+***************
+*** 1602,1611 ****
+  #define LATIN1LOWER 'l'
+  #define LATIN1UPPER 'U'
+  
+- /*                                                                 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]%_'abcdefghijklmnopqrstuvwxyz{|}~                                  Â¡Â¢Â£Â¤Â¥Â¦Â§Â¨Â©ÂªÂ«Â¬Â­Â®Â¯Â°Â±Â²Â³Â´ÂµÂ¶Â·Â¸Â¹ÂºÂ»Â¼Â½Â¾Â¿Ã€ÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖ×ØÙÚÛÜÃÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ */
+  static char_u latin1flags[257] = "                                                                 UUUUUUUUUUUUUUUUUUUUUUUUUU      llllllllllllllllllllllllll                                                                     UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUllllllllllllllllllllllll llllllll";
+! static char_u latin1upper[257] = "                                 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\7f\80\81\82\83\84\85\86\87\88\89\8a\8b\8c\8d\8e\8f\90\91\92\93\94\95\96\97\98\99\9a\9b\9c\9d\9e\9f ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖ×ØÙÚÛÜÃÞßÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖ÷ØÙÚÛÜÃÞÿ";
+! static char_u latin1lower[257] = "                                 !\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\7f\80\81\82\83\84\85\86\87\88\89\8a\8b\8c\8d\8e\8f\90\91\92\93\94\95\96\97\98\99\9a\9b\9c\9d\9e\9f ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
+  
+      int
+  vim_islower(c)
+--- 1602,1610 ----
+  #define LATIN1LOWER 'l'
+  #define LATIN1UPPER 'U'
+  
+  static char_u latin1flags[257] = "                                                                 UUUUUUUUUUUUUUUUUUUUUUUUUU      llllllllllllllllllllllllll                                                                     UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUllllllllllllllllllllllll llllllll";
+! static char_u latin1upper[257] = "                                 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xf7\xd8\xd9\xda\xdb\xdc\xdd\xde\xff";
+! static char_u latin1lower[257] = "                                 !\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xd7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff";
+  
+      int
+  vim_islower(c)
+*** ../vim-7.3.526/src/version.c       2012-05-25 11:04:34.000000000 +0200
+--- src/version.c      2012-05-25 11:52:06.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     527,
+  /**/
+
+-- 
+An alien life briefly visits earth.  Just before departing it leaves a
+message in the dust on the back of a white van.  The world is shocked
+and wants to know what it means.  After months of studies the worlds
+best linguistic scientists are able to decipher the message: "Wash me!".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.528.patch0 b/vim/patches/vim-7.3.528.patch0
new file mode 100644 (file)
index 0000000..41084ad
--- /dev/null
@@ -0,0 +1,171 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.528
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.528
+Problem:    Crash when closing last window in a tab. (Alex Efros)
+Solution:   Use common code in close_last_window_tabpage(). (Christian
+           Brabandt)
+Files:     src/window.c
+
+
+*** ../vim-7.3.527/src/window.c        2012-03-16 19:07:54.000000000 +0100
+--- src/window.c       2012-05-25 12:25:16.000000000 +0200
+***************
+*** 23,28 ****
+--- 23,29 ----
+  static void win_totop __ARGS((int size, int flags));
+  static void win_equal_rec __ARGS((win_T *next_curwin, int current, frame_T *topfr, int dir, int col, int row, int width, int height));
+  static int last_window __ARGS((void));
++ static int close_last_window_tabpage __ARGS((win_T *win, int free_buf, tabpage_T *prev_curtab));
+  static win_T *win_free_mem __ARGS((win_T *win, int *dirp, tabpage_T *tp));
+  static frame_T *win_altframe __ARGS((win_T *win, tabpage_T *tp));
+  static tabpage_T *alt_tabpage __ARGS((void));
+***************
+*** 2105,2110 ****
+--- 2106,2147 ----
+  }
+  
+  /*
++  * Close the possibly last window in a tab page.
++  * Returns TRUE when the window was closed already.
++  */
++     static int
++ close_last_window_tabpage(win, free_buf, prev_curtab)
++     win_T    *win;
++     int              free_buf;
++     tabpage_T   *prev_curtab;
++ {
++     if (firstwin == lastwin)
++     {
++      /*
++       * Closing the last window in a tab page.  First go to another tab
++       * page and then close the window and the tab page.  This avoids that
++       * curwin and curtab are invalid while we are freeing memory, they may
++       * be used in GUI events.
++       */
++      goto_tabpage_tp(alt_tabpage());
++      redraw_tabline = TRUE;
++ 
++      /* Safety check: Autocommands may have closed the window when jumping
++       * to the other tab page. */
++      if (valid_tabpage(prev_curtab) && prev_curtab->tp_firstwin == win)
++      {
++          int     h = tabline_height();
++ 
++          win_close_othertab(win, free_buf, prev_curtab);
++          if (h != tabline_height())
++              shell_new_rows();
++      }
++      return TRUE;
++     }
++     return FALSE;
++ }
++ 
++ /*
+   * Close window "win".  Only works for the current tab page.
+   * If "free_buf" is TRUE related buffer may be unloaded.
+   *
+***************
+*** 2143,2171 ****
+      }
+  #endif
+  
+!     /*
+!      * When closing the last window in a tab page first go to another tab
+!      * page and then close the window and the tab page.  This avoids that
+!      * curwin and curtab are not invalid while we are freeing memory, they may
+!      * be used in GUI events.
+!      */
+!     if (firstwin == lastwin)
+!     {
+!      goto_tabpage_tp(alt_tabpage());
+!      redraw_tabline = TRUE;
+! 
+!      /* Safety check: Autocommands may have closed the window when jumping
+!       * to the other tab page. */
+!      if (valid_tabpage(prev_curtab) && prev_curtab->tp_firstwin == win)
+!      {
+!          int     h = tabline_height();
+! 
+!          win_close_othertab(win, free_buf, prev_curtab);
+!          if (h != tabline_height())
+!              shell_new_rows();
+!      }
+!      return;
+!     }
+  
+      /* When closing the help window, try restoring a snapshot after closing
+       * the window.  Otherwise clear the snapshot, it's now invalid. */
+--- 2180,2190 ----
+      }
+  #endif
+  
+!     /* When closing the last window in a tab page first go to another tab page
+!      * and then close the window and the tab page to avoid that curwin and
+!      * curtab are invalid while we are freeing memory. */
+!     if (close_last_window_tabpage(win, free_buf, prev_curtab))
+!       return;
+  
+      /* When closing the help window, try restoring a snapshot after closing
+       * the window.  Otherwise clear the snapshot, it's now invalid. */
+***************
+*** 2225,2231 ****
+  
+      /* Autocommands may have closed the window already, or closed the only
+       * other window or moved to another tab page. */
+!     if (!win_valid(win) || last_window() || curtab != prev_curtab)
+       return;
+  
+      /* Free the memory used for the window and get the window that received
+--- 2244,2251 ----
+  
+      /* Autocommands may have closed the window already, or closed the only
+       * other window or moved to another tab page. */
+!     if (!win_valid(win) || last_window() || curtab != prev_curtab
+!          || close_last_window_tabpage(win, free_buf, prev_curtab))
+       return;
+  
+      /* Free the memory used for the window and get the window that received
+***************
+*** 2310,2316 ****
+  
+  /*
+   * Close window "win" in tab page "tp", which is not the current tab page.
+!  * This may be the last window ih that tab page and result in closing the tab,
+   * thus "tp" may become invalid!
+   * Caller must check if buffer is hidden and whether the tabline needs to be
+   * updated.
+--- 2330,2336 ----
+  
+  /*
+   * Close window "win" in tab page "tp", which is not the current tab page.
+!  * This may be the last window in that tab page and result in closing the tab,
+   * thus "tp" may become invalid!
+   * Caller must check if buffer is hidden and whether the tabline needs to be
+   * updated.
+*** ../vim-7.3.527/src/version.c       2012-05-25 11:56:06.000000000 +0200
+--- src/version.c      2012-05-25 12:38:25.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     528,
+  /**/
+
+-- 
+For society, it's probably a good thing that engineers value function over
+appearance.  For example, you wouldn't want engineers to build nuclear power
+plants that only _look_ like they would keep all the radiation inside.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.529.patch0 b/vim/patches/vim-7.3.529.patch0
new file mode 100644 (file)
index 0000000..386baf1
--- /dev/null
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.529
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.529
+Problem:    Using a count before "v" and "V" does not work (Kikyous)
+Solution:   Make the count select that many characters or lines. (Christian
+           Brabandt)
+Files:     src/normal.c
+
+
+*** ../vim-7.3.528/src/normal.c        2012-05-25 11:04:34.000000000 +0200
+--- src/normal.c       2012-05-25 13:12:06.000000000 +0200
+***************
+*** 7660,7672 ****
+      else                 /* start Visual mode */
+      {
+       check_visual_highlight();
+!      if (cap->count0)                    /* use previously selected part */
+       {
+!          if (resel_VIsual_mode == NUL)   /* there is none */
+!          {
+!              beep_flush();
+!              return;
+!          }
+           VIsual = curwin->w_cursor;
+  
+           VIsual_active = TRUE;
+--- 7660,7668 ----
+      else                 /* start Visual mode */
+      {
+       check_visual_highlight();
+!      if (cap->count0 > 0 && resel_VIsual_mode != NUL)
+       {
+!          /* use previously selected part */
+           VIsual = curwin->w_cursor;
+  
+           VIsual_active = TRUE;
+***************
+*** 7725,7730 ****
+--- 7721,7736 ----
+               /* start Select mode when 'selectmode' contains "cmd" */
+               may_start_select('c');
+           n_start_visual_mode(cap->cmdchar);
++          if (VIsual_mode != 'V' && *p_sel == 'e')
++              ++cap->count1;  /* include one more char */
++          if (cap->count0 > 0 && --cap->count1 > 0)
++          {
++              /* With a count select that many characters or lines. */
++              if (VIsual_mode == 'v' || VIsual_mode == Ctrl_V)
++                  nv_right(cap);
++              else if (VIsual_mode == 'V')
++                  nv_down(cap);
++          }
+       }
+      }
+  }
+*** ../vim-7.3.528/src/version.c       2012-05-25 12:38:57.000000000 +0200
+--- src/version.c      2012-05-25 12:59:58.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     529,
+  /**/
+
+-- 
+Normal people believe that if it ain't broke, don't fix it.  Engineers believe
+that if it ain't broke, it doesn't have enough features yet.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.530.patch0 b/vim/patches/vim-7.3.530.patch0
new file mode 100644 (file)
index 0000000..216117c
--- /dev/null
@@ -0,0 +1,50 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.530
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.530 (after 7.3.520)
+Problem:    Gvim does not work when 'guioptions' includes "f". (Davido)
+Solution:   Call gui_mch_init_check() when running GUI in the foreground.
+           (Yasuhiro Matsumoto)
+Files:     src/gui.c
+
+
+*** ../vim-7.3.529/src/gui.c   2012-05-18 17:03:13.000000000 +0200
+--- src/gui.c  2012-05-25 14:01:26.000000000 +0200
+***************
+*** 102,107 ****
+--- 102,111 ----
+      else
+  #endif
+      {
++      /* If there is 'f' in 'guioptions' and specify -g argument,
++       * gui_mch_init_check() was not called yet.  */
++      if (gui_mch_init_check() != OK)
++          exit(1);
+       gui_attempt_start();
+      }
+  
+*** ../vim-7.3.529/src/version.c       2012-05-25 13:12:33.000000000 +0200
+--- src/version.c      2012-05-25 14:05:46.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     530,
+  /**/
+
+-- 
+I think that you'll agree that engineers are very effective in their social
+interactions.  It's the "normal" people who are nuts.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.531.patch0 b/vim/patches/vim-7.3.531.patch0
new file mode 100644 (file)
index 0000000..652bdb7
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.531
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.531 (after 7.3.530)
+Problem:    GUI does not work on MS-Windows.
+Solution:   Add the missing #ifdef. (Patrick Avery)
+Files:     src/gui.c
+
+
+*** ../vim-7.3.530/src/gui.c   2012-05-25 14:06:18.000000000 +0200
+--- src/gui.c  2012-05-27 00:34:51.000000000 +0200
+***************
+*** 102,111 ****
+--- 102,113 ----
+      else
+  #endif
+      {
++ #ifdef FEAT_GUI_GTK
+       /* If there is 'f' in 'guioptions' and specify -g argument,
+        * gui_mch_init_check() was not called yet.  */
+       if (gui_mch_init_check() != OK)
+           exit(1);
++ #endif
+       gui_attempt_start();
+      }
+  
+*** ../vim-7.3.530/src/version.c       2012-05-25 14:06:18.000000000 +0200
+--- src/version.c      2012-05-27 00:37:33.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     531,
+  /**/
+
+-- 
+I learned the customs and mannerisms of engineers by observing them, much the
+way Jane Goodall learned about the great apes, but without the hassle of
+grooming.
+                               (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.532.patch0 b/vim/patches/vim-7.3.532.patch0
new file mode 100644 (file)
index 0000000..071cab3
--- /dev/null
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.532
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.532
+Problem:    Compiler warning from Clang.
+Solution:   Use a different way to point inside a string. (Dominique Pelle)
+Files:     src/syntax.c
+
+
+*** ../vim-7.3.531/src/syntax.c        2012-03-23 16:25:13.000000000 +0100
+--- src/syntax.c       2012-06-01 13:13:58.000000000 +0200
+***************
+*** 9476,9482 ****
+      int          cnt;
+      int          attr;
+  {
+!     msg_puts_attr((char_u *)("N \bI \b!  \b" + cnt / 11), attr);
+      msg_clr_eos();
+      out_flush();
+      ui_delay(cnt == 99 ? 40L : (long)cnt * 50L, FALSE);
+--- 9476,9482 ----
+      int          cnt;
+      int          attr;
+  {
+!     msg_puts_attr((char_u *)&("N \bI \b!  \b"[cnt / 11]), attr);
+      msg_clr_eos();
+      out_flush();
+      ui_delay(cnt == 99 ? 40L : (long)cnt * 50L, FALSE);
+*** ../vim-7.3.531/src/version.c       2012-05-27 00:37:45.000000000 +0200
+--- src/version.c      2012-06-01 13:14:51.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     532,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+8. You spend half of the plane trip with your laptop on your lap...and your
+   child in the overhead compartment.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.533.patch0 b/vim/patches/vim-7.3.533.patch0
new file mode 100644 (file)
index 0000000..1d71c8d
--- /dev/null
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.533
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.533
+Problem:    Memory leak when writing undo file.
+Solution:   Free the ACL. (Dominique Pelle)
+Files:     src/undo.c
+
+
+*** ../vim-7.3.532/src/undo.c  2011-12-08 15:14:04.000000000 +0100
+--- src/undo.c 2012-06-01 13:38:42.000000000 +0200
+***************
+*** 1535,1540 ****
+--- 1535,1541 ----
+       /* For systems that support ACL: get the ACL from the original file. */
+       acl = mch_get_acl(buf->b_ffname);
+       mch_set_acl(file_name, acl);
++      mch_free_acl(acl);
+      }
+  #endif
+  
+*** ../vim-7.3.532/src/version.c       2012-06-01 13:18:48.000000000 +0200
+--- src/version.c      2012-06-01 13:39:16.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     533,
+  /**/
+
+-- 
+"How is your new girlfriend?"
+"90-60-90 man!"
+"What, pale purple?"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.534.patch0 b/vim/patches/vim-7.3.534.patch0
new file mode 100644 (file)
index 0000000..618d6e4
--- /dev/null
@@ -0,0 +1,101 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.534
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.534 (after 7.3.461)
+Problem:    When using an InsertCharPre autocommand autoindent fails.
+Solution:   Proper handling of v:char. (Alexey Radkov)
+Files:     src/edit.c
+
+
+*** ../vim-7.3.533/src/edit.c  2012-05-18 16:35:17.000000000 +0200
+--- src/edit.c 2012-06-01 14:41:06.000000000 +0200
+***************
+*** 10108,10129 ****
+  do_insert_char_pre(c)
+      int c;
+  {
+!     char_u *res;
+  
+      /* Return quickly when there is nothing to do. */
+      if (!has_insertcharpre())
+       return NULL;
+  
+      /* Lock the text to avoid weird things from happening. */
+      ++textlock;
+!     set_vim_var_char(c);  /* set v:char */
+  
+      if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf))
+!      /* Get the new value of v:char.  It may be empty or more than one
+!       * character. */
+!      res = vim_strsave(get_vim_var_str(VV_CHAR));
+!     else
+!      res = NULL;
+  
+      set_vim_var_string(VV_CHAR, NULL, -1);  /* clear v:char */
+      --textlock;
+--- 10108,10147 ----
+  do_insert_char_pre(c)
+      int c;
+  {
+!     char_u   *res;
+! #ifdef FEAT_MBYTE
+!     char_u   buf[MB_MAXBYTES + 1];
+! #else
+!     char_u   buf[2];
+! #endif
+  
+      /* Return quickly when there is nothing to do. */
+      if (!has_insertcharpre())
+       return NULL;
+  
++ #ifdef FEAT_MBYTE
++     if (has_mbyte)
++      buf[(*mb_char2bytes)(c, buf)] = NUL;
++     else
++ #endif
++     {
++      buf[0] = c;
++      buf[1] = NUL;
++     }
++ 
+      /* Lock the text to avoid weird things from happening. */
+      ++textlock;
+!     set_vim_var_string(VV_CHAR, buf, -1);  /* set v:char */
+  
++     res = NULL;
+      if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf))
+!     {
+!      /* Get the value of v:char.  It may be empty or more than one
+!       * character.  Only use it when changed, otherwise continue with the
+!       * original character to avoid breaking autoindent. */
+!      if (STRCMP(buf, get_vim_var_str(VV_CHAR)) != 0)
+!          res = vim_strsave(get_vim_var_str(VV_CHAR));
+!     }
+  
+      set_vim_var_string(VV_CHAR, NULL, -1);  /* clear v:char */
+      --textlock;
+*** ../vim-7.3.533/src/version.c       2012-06-01 13:46:06.000000000 +0200
+--- src/version.c      2012-06-01 14:42:19.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     534,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+11. You find yourself typing "com" after every period when using a word
+    processor.com
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.535.patch0 b/vim/patches/vim-7.3.535.patch0
new file mode 100644 (file)
index 0000000..e7f0f8a
--- /dev/null
@@ -0,0 +1,356 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.535
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.535
+Problem:    Many #ifdefs for MB_MAXBYTES.
+Solution:   Also define MB_MAXBYTES without the +multi_byte feature.  Fix
+           places where the buffer didn't include space for a NUL byte.
+Files:     src/arabic.c, src/edit.c, src/eval.c, src/getchar.c, src/mbyte.c,
+           src/misc1.c, src/screen.c, src/spell.c, src/vim.h
+
+
+*** ../vim-7.3.534/src/arabic.c        2010-08-15 21:57:28.000000000 +0200
+--- src/arabic.c       2012-06-01 14:59:37.000000000 +0200
+***************
+*** 1066,1072 ****
+  
+      if (curr_c != c && ccp != NULL)
+      {
+!      char_u buf[MB_MAXBYTES];
+  
+       /* Update the first byte of the character. */
+       (*mb_char2bytes)(curr_c, buf);
+--- 1066,1072 ----
+  
+      if (curr_c != c && ccp != NULL)
+      {
+!      char_u buf[MB_MAXBYTES + 1];
+  
+       /* Update the first byte of the character. */
+       (*mb_char2bytes)(curr_c, buf);
+*** ../vim-7.3.534/src/edit.c  2012-06-01 14:57:47.000000000 +0200
+--- src/edit.c 2012-06-01 15:01:49.000000000 +0200
+***************
+*** 1648,1658 ****
+  #define PC_STATUS_RIGHT      1       /* right halve of double-wide char */
+  #define PC_STATUS_LEFT       2       /* left halve of double-wide char */
+  #define PC_STATUS_SET        3       /* pc_bytes was filled */
+- #ifdef FEAT_MBYTE
+  static char_u pc_bytes[MB_MAXBYTES + 1]; /* saved bytes */
+- #else
+- static char_u pc_bytes[2];           /* saved bytes */
+- #endif
+  static int  pc_attr;
+  static int  pc_row;
+  static int  pc_col;
+--- 1648,1654 ----
+***************
+*** 6819,6829 ****
+      char_u   *s;
+  
+      vim_free(last_insert);
+- #ifdef FEAT_MBYTE
+      last_insert = alloc(MB_MAXBYTES * 3 + 5);
+- #else
+-     last_insert = alloc(6);
+- #endif
+      if (last_insert != NULL)
+      {
+       s = last_insert;
+--- 6815,6821 ----
+***************
+*** 6861,6867 ****
+      char_u   *s;
+  {
+  #ifdef FEAT_MBYTE
+!     char_u   temp[MB_MAXBYTES];
+      int              i;
+      int              len;
+  
+--- 6853,6859 ----
+      char_u   *s;
+  {
+  #ifdef FEAT_MBYTE
+!     char_u   temp[MB_MAXBYTES + 1];
+      int              i;
+      int              len;
+  
+***************
+*** 7423,7429 ****
+      int              cc;
+  {
+      int              n;
+!     char_u   buf[MB_MAXBYTES];
+      int              i;
+      int              c;
+  
+--- 7415,7421 ----
+      int              cc;
+  {
+      int              n;
+!     char_u   buf[MB_MAXBYTES + 1];
+      int              i;
+      int              c;
+  
+***************
+*** 10109,10119 ****
+      int c;
+  {
+      char_u   *res;
+- #ifdef FEAT_MBYTE
+      char_u   buf[MB_MAXBYTES + 1];
+- #else
+-     char_u   buf[2];
+- #endif
+  
+      /* Return quickly when there is nothing to do. */
+      if (!has_insertcharpre())
+--- 10101,10107 ----
+*** ../vim-7.3.534/src/eval.c  2012-05-18 18:34:15.000000000 +0200
+--- src/eval.c 2012-06-01 15:02:08.000000000 +0200
+***************
+*** 19170,19180 ****
+  set_vim_var_char(c)
+      int c;
+  {
+! #ifdef FEAT_MBYTE
+!     char_u   buf[MB_MAXBYTES];
+! #else
+!     char_u   buf[2];
+! #endif
+  
+  #ifdef FEAT_MBYTE
+      if (has_mbyte)
+--- 19170,19176 ----
+  set_vim_var_char(c)
+      int c;
+  {
+!     char_u   buf[MB_MAXBYTES + 1];
+  
+  #ifdef FEAT_MBYTE
+      if (has_mbyte)
+*** ../vim-7.3.534/src/getchar.c       2012-04-05 16:07:01.000000000 +0200
+--- src/getchar.c      2012-06-01 15:03:51.000000000 +0200
+***************
+*** 723,729 ****
+      int                              c;
+  #ifdef FEAT_MBYTE
+      int                              n;
+!     char_u                   buf[MB_MAXBYTES];
+      int                              i;
+  #endif
+  
+--- 723,729 ----
+      int                              c;
+  #ifdef FEAT_MBYTE
+      int                              n;
+!     char_u                   buf[MB_MAXBYTES + 1];
+      int                              i;
+  #endif
+  
+***************
+*** 1072,1078 ****
+      int          c;
+  {
+  #ifdef FEAT_MBYTE
+!     char_u   buf[MB_MAXBYTES];
+  #else
+      char_u   buf[4];
+  #endif
+--- 1072,1078 ----
+      int          c;
+  {
+  #ifdef FEAT_MBYTE
+!     char_u   buf[MB_MAXBYTES + 1];
+  #else
+      char_u   buf[4];
+  #endif
+***************
+*** 1547,1553 ****
+      int              c, c2;
+  #ifdef FEAT_MBYTE
+      int              n;
+!     char_u   buf[MB_MAXBYTES];
+      int              i;
+  #endif
+  
+--- 1547,1553 ----
+      int              c, c2;
+  #ifdef FEAT_MBYTE
+      int              n;
+!     char_u   buf[MB_MAXBYTES + 1];
+      int              i;
+  #endif
+  
+***************
+*** 4335,4345 ****
+      int              scol;           /* starting column of the abbr. */
+      int              j;
+      char_u   *s;
+- #ifdef FEAT_MBYTE
+      char_u   tb[MB_MAXBYTES + 4];
+- #else
+-     char_u   tb[4];
+- #endif
+      mapblock_T       *mp;
+  #ifdef FEAT_LOCALMAP
+      mapblock_T       *mp2;
+--- 4335,4341 ----
+*** ../vim-7.3.534/src/mbyte.c 2012-03-07 19:38:52.000000000 +0100
+--- src/mbyte.c        2012-06-01 15:04:27.000000000 +0200
+***************
+*** 708,714 ****
+            */
+           n = (i & 0x80) ? 2 : 1;
+  # else
+!          char buf[MB_MAXBYTES];
+  # ifdef X_LOCALE
+  #  ifndef mblen
+  #   define mblen _Xmblen
+--- 708,714 ----
+            */
+           n = (i & 0x80) ? 2 : 1;
+  # else
+!          char buf[MB_MAXBYTES + 1];
+  # ifdef X_LOCALE
+  #  ifndef mblen
+  #   define mblen _Xmblen
+***************
+*** 1953,1959 ****
+  /*
+   * Convert the character at screen position "off" to a sequence of bytes.
+   * Includes the composing characters.
+!  * "buf" must at least have the length MB_MAXBYTES.
+   * Only to be used when ScreenLinesUC[off] != 0.
+   * Returns the produced number of bytes.
+   */
+--- 1953,1959 ----
+  /*
+   * Convert the character at screen position "off" to a sequence of bytes.
+   * Includes the composing characters.
+!  * "buf" must at least have the length MB_MAXBYTES + 1.
+   * Only to be used when ScreenLinesUC[off] != 0.
+   * Returns the produced number of bytes.
+   */
+*** ../vim-7.3.534/src/misc1.c 2012-04-30 21:09:38.000000000 +0200
+--- src/misc1.c        2012-06-01 15:04:56.000000000 +0200
+***************
+*** 1932,1938 ****
+      int              c;
+  {
+  #if defined(FEAT_MBYTE) || defined(PROTO)
+!     char_u   buf[MB_MAXBYTES];
+      int              n;
+  
+      n = (*mb_char2bytes)(c, buf);
+--- 1932,1938 ----
+      int              c;
+  {
+  #if defined(FEAT_MBYTE) || defined(PROTO)
+!     char_u   buf[MB_MAXBYTES + 1];
+      int              n;
+  
+      n = (*mb_char2bytes)(c, buf);
+*** ../vim-7.3.534/src/screen.c        2012-03-23 16:25:13.000000000 +0100
+--- src/screen.c       2012-06-01 15:06:03.000000000 +0200
+***************
+*** 6621,6636 ****
+      int          row, col;
+      int          attr;
+  {
+- #ifdef FEAT_MBYTE
+      char_u   buf[MB_MAXBYTES + 1];
+  
+!     buf[(*mb_char2bytes)(c, buf)] = NUL;
+! #else
+!     char_u   buf[2];
+! 
+!     buf[0] = c;
+!     buf[1] = NUL;
+  #endif
+      screen_puts(buf, row, col, attr);
+  }
+  
+--- 6621,6637 ----
+      int          row, col;
+      int          attr;
+  {
+      char_u   buf[MB_MAXBYTES + 1];
+  
+! #ifdef FEAT_MBYTE
+!     if (has_mbyte)
+!      buf[(*mb_char2bytes)(c, buf)] = NUL;
+!     else
+  #endif
++     {
++      buf[0] = c;
++      buf[1] = NUL;
++     }
+      screen_puts(buf, row, col, attr);
+  }
+  
+*** ../vim-7.3.534/src/spell.c 2012-05-18 18:07:57.000000000 +0200
+--- src/spell.c        2012-06-01 15:06:30.000000000 +0200
+***************
+*** 13694,13700 ****
+  {
+      int              m1, m2;
+  #ifdef FEAT_MBYTE
+!     char_u   buf[MB_MAXBYTES];
+      hashitem_T  *hi;
+  
+      if (c1 >= 256)
+--- 13694,13700 ----
+  {
+      int              m1, m2;
+  #ifdef FEAT_MBYTE
+!     char_u   buf[MB_MAXBYTES + 1];
+      hashitem_T  *hi;
+  
+      if (c1 >= 256)
+*** ../vim-7.3.534/src/vim.h   2012-04-30 18:48:38.000000000 +0200
+--- src/vim.h  2012-06-01 14:59:28.000000000 +0200
+***************
+*** 1703,1708 ****
+--- 1703,1710 ----
+   * character of up to 6 bytes, or one 16-bit character of up to three bytes
+   * plus six following composing characters of three bytes each. */
+  # define MB_MAXBYTES 21
++ #else
++ # define MB_MAXBYTES 1
+  #endif
+  
+  #if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
+***************
+*** 2017,2022 ****
+--- 2019,2025 ----
+   #pragma warning(disable : 4312)
+  #endif
+  
++ /* Note: a NULL argument for vim_realloc() is not portable, don't use it. */
+  #if defined(MEM_PROFILE)
+  # define vim_realloc(ptr, size)  mem_realloc((ptr), (size))
+  #else
+*** ../vim-7.3.534/src/version.c       2012-06-01 14:57:47.000000000 +0200
+--- src/version.c      2012-06-01 15:08:20.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     535,
+  /**/
+
+-- 
+Me?  A skeptic?  I trust you have proof.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.536.patch0 b/vim/patches/vim-7.3.536.patch0
new file mode 100644 (file)
index 0000000..e0c3f76
--- /dev/null
@@ -0,0 +1,73 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.536
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.536
+Problem:    When spell checking the German sharp s is not seen as a word
+           character. (Aexl Bender)
+Solution:   In utf_islower() return true for the sharp s. Note: also need
+           updated spell file for this to take effect.
+Files:     src/mbyte.c
+
+
+*** ../vim-7.3.535/src/mbyte.c 2012-06-01 15:20:49.000000000 +0200
+--- src/mbyte.c        2012-06-01 16:50:41.000000000 +0200
+***************
+*** 2949,2955 ****
+  {
+       {0x61,0x7a,1,-32},
+       {0xb5,0xb5,-1,743},
+!      {0xe0,0xf6,1,-32},
+       {0xf8,0xfe,1,-32},
+       {0xff,0xff,-1,121},
+       {0x101,0x12f,2,-1},
+--- 2949,2955 ----
+  {
+       {0x61,0x7a,1,-32},
+       {0xb5,0xb5,-1,743},
+!      {0xe0,0xf6,1,-32},  /* 0xdf (German sharp s) is not upper-cased */
+       {0xf8,0xfe,1,-32},
+       {0xff,0xff,-1,121},
+       {0x101,0x12f,2,-1},
+***************
+*** 3129,3135 ****
+  utf_islower(a)
+      int              a;
+  {
+!     return (utf_toupper(a) != a);
+  }
+  
+  /*
+--- 3129,3136 ----
+  utf_islower(a)
+      int              a;
+  {
+!     /* German sharp s is lower case but has no upper case equivalent. */
+!     return (utf_toupper(a) != a) || a == 0xdf;
+  }
+  
+  /*
+*** ../vim-7.3.535/src/version.c       2012-06-01 15:20:49.000000000 +0200
+--- src/version.c      2012-06-01 17:45:17.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     536,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+16. You step out of your room and realize that your parents have moved and
+    you don't have a clue when it happened.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.537.patch0 b/vim/patches/vim-7.3.537.patch0
new file mode 100644 (file)
index 0000000..76b41c8
--- /dev/null
@@ -0,0 +1,47 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.537
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.537
+Problem:    Unecessary call to init_spell_chartab().
+Solution:   Delete the call.
+Files:     src/spell.c
+
+
+*** ../vim-7.3.536/src/spell.c 2012-06-01 15:20:49.000000000 +0200
+--- src/spell.c        2012-06-01 17:49:44.000000000 +0200
+***************
+*** 4721,4728 ****
+       int_wordlist = NULL;
+      }
+  
+-     init_spell_chartab();
+- 
+      vim_free(repl_to);
+      repl_to = NULL;
+      vim_free(repl_from);
+--- 4721,4726 ----
+*** ../vim-7.3.536/src/version.c       2012-06-01 17:46:52.000000000 +0200
+--- src/version.c      2012-06-01 17:49:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     537,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+17. You turn on your intercom when leaving the room so you can hear if new
+    e-mail arrives.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.538.patch0 b/vim/patches/vim-7.3.538.patch0
new file mode 100644 (file)
index 0000000..947fa65
--- /dev/null
@@ -0,0 +1,321 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.538
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.538
+Problem:    'efm' does not handle Tabs in pointer lines.
+Solution:   Add Tab support. Improve tests. (Lech Lorens)
+Files:     src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok
+
+
+*** ../vim-7.3.537/src/quickfix.c      2012-04-25 18:57:17.000000000 +0200
+--- src/quickfix.c     2012-06-01 18:24:07.000000000 +0200
+***************
+*** 247,253 ****
+                       {'t', "."},
+                       {'m', ".\\+"},
+                       {'r', ".*"},
+!                      {'p', "[- .]*"},
+                       {'v', "\\d\\+"},
+                       {'s', ".\\+"}
+                   };
+--- 247,253 ----
+                       {'t', "."},
+                       {'m', ".\\+"},
+                       {'r', ".*"},
+!                      {'p', "[-       .]*"},
+                       {'v', "\\d\\+"},
+                       {'s', ".\\+"}
+                   };
+***************
+*** 677,687 ****
+               }
+               if ((i = (int)fmt_ptr->addr[7]) > 0)            /* %p */
+               {
+                   if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL)
+                       continue;
+!                  col = (int)(regmatch.endp[i] - regmatch.startp[i] + 1);
+!                  if (*((char_u *)regmatch.startp[i]) != TAB)
+!                      use_viscol = TRUE;
+               }
+               if ((i = (int)fmt_ptr->addr[8]) > 0)            /* %v */
+               {
+--- 677,699 ----
+               }
+               if ((i = (int)fmt_ptr->addr[7]) > 0)            /* %p */
+               {
++                  char_u      *match_ptr;
++ 
+                   if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL)
+                       continue;
+!                  col = 0;
+!                  for (match_ptr = regmatch.startp[i];
+!                                 match_ptr != regmatch.endp[i]; ++match_ptr)
+!                  {
+!                      ++col;
+!                      if (*match_ptr == TAB)
+!                      {
+!                          col += 7;
+!                          col -= col % 8;
+!                      }
+!                  }
+!                  ++col;
+!                  use_viscol = TRUE;
+               }
+               if ((i = (int)fmt_ptr->addr[8]) > 0)            /* %v */
+               {
+*** ../vim-7.3.537/src/testdir/test10.in       2011-08-10 18:36:49.000000000 +0200
+--- src/testdir/test10.in      2012-06-01 18:22:40.000000000 +0200
+***************
+*** 8,48 ****
+  :7/start of errorfile/,/end of errorfile/w! Xerrorfile1
+  :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
+  :/start of testfile/,/end of testfile/w! Xtestfile
+  :cf Xerrorfile2
+  :clast
+  :copen
+  :let a=w:quickfix_title
+  :wincmd p
+! gR\12=a\r\e
+  :cf Xerrorfile1
+! rA
+  :cn
+! rB
+  :cn
+! rC
+  :cn
+! rD
+  :cn
+! rE
+  :cn
+  :wincmd w
+  :let a=w:quickfix_title
+  :wincmd p
+! gR\12=a\r\e
+  :w! test.out             " Write contents of this file
+  :qa!
+  ENDTEST
+  
+  start of errorfile
+  "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
+! ï»¿"Xtestfile", line 7 col 19; this is an error
+  gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include  version.c
+! Xtestfile:13: parse error before `asd'
+  make: *** [vim] Error 1
+! in file "Xtestfile" linenr 16: there is an error
+  
+  2 returned
+! "Xtestfile", linenr 19: yet another problem
+  
+  Does anyone know what is the problem and how to correction it?
+  "Xtestfile", line 21 col 9: What is the title of the quickfix window?
+--- 8,88 ----
+  :7/start of errorfile/,/end of errorfile/w! Xerrorfile1
+  :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
+  :/start of testfile/,/end of testfile/w! Xtestfile
++ :set efm+==%f=\\,\ line\ %l%*\\D%v%*[^\ ]\ %m
++ :set efm^=%AError\ in\ \"%f\"\ at\ line\ %l:,%Z%p^,%C%m
+  :cf Xerrorfile2
+  :clast
+  :copen
+  :let a=w:quickfix_title
+  :wincmd p
+! lgR\12=a\r\e
+  :cf Xerrorfile1
+! grA
+  :cn
+! gRLINE 6, COL 19\e
+  :cn
+! gRNO COLUMN SPECIFIED\e
+  :cn
+! gRAGAIN NO COLUMN\e
+  :cn
+! gRCOL 1\e
+  :cn
++ gRCOL 2\e
++ :cn
++ gRCOL 10\e
++ :cn
++ gRVCOL 10\e
++ :cn
++ grI
++ :cn
++ gR. SPACE POINTER\e
++ :cn
++ gR. DOT POINTER\e
++ :cn
++ gR. DASH POINTER\e
++ :cn
++ gR. TAB-SPACE POINTER\e
++ :clast
++ :cprev
++ :cprev
+  :wincmd w
+  :let a=w:quickfix_title
+  :wincmd p
+! lgR\12=a\r\e
+  :w! test.out             " Write contents of this file
+  :qa!
+  ENDTEST
+  
+  start of errorfile
+  "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
+! ï»¿"Xtestfile", line 6 col 19; this is an error
+  gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include  version.c
+! Xtestfile:9: parse error before `asd'
+  make: *** [vim] Error 1
+! in file "Xtestfile" linenr 10: there is an error
+  
+  2 returned
+! "Xtestfile", line 11 col 1; this is an error
+! "Xtestfile", line 12 col 2; this is another error
+! "Xtestfile", line 14:10; this is an error in column 10
+! =Xtestfile=, line 15:10; this is another error, but in vcol 10 this time
+! "Xtestfile", linenr 16: yet another problem
+! Error in "Xtestfile" at line 17:
+! x should be a dot
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 17
+!             ^
+! Error in "Xtestfile" at line 18:
+! x should be a dot
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 18
+! .............^
+! Error in "Xtestfile" at line 19:
+! x should be a dot
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 19
+! --------------^
+! Error in "Xtestfile" at line 20:
+! x should be a dot
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 20
+!             ^
+  
+  Does anyone know what is the problem and how to correction it?
+  "Xtestfile", line 21 col 9: What is the title of the quickfix window?
+***************
+*** 50,74 ****
+  end of errorfile
+  
+  start of testfile
+! line 2  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 4  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 6  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 7  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 8  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 9  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 12 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 14 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 15 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 16 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 21 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+  end of testfile
+--- 90,114 ----
+  end of errorfile
+  
+  start of testfile
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  2
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  3
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  4
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  5
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  6
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  7
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  8
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  9
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 10
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 11
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 12
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 13
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 14
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 15
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 16
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 17
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 18
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 19
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 20
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 21
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 22
+  end of testfile
+*** ../vim-7.3.537/src/testdir/test10.ok       2011-08-10 18:36:49.000000000 +0200
+--- src/testdir/test10.ok      2012-06-01 18:22:40.000000000 +0200
+***************
+*** 1,23 ****
+  start of testfile
+! line 2  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 4  xxxAxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 6  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 7  xxxxxxxxxxBxxxxxxxxxxxxxxxxxxx
+! line 8  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 9  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 12 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! Cine 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 14 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 15 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! Dine 16 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 21 :cf Xerrorfile1xxxxxxxxxxxxxxx
+! line 22 :cf Xerrorfile2xxxxxxxxxxxxxxx
+  end of testfile
+--- 1,23 ----
+  start of testfile
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  2
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  3
+!      xxxxxxxxxxAxxxxxxxxxxxxxxxxxxx    line  4
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  5
+!      xxxxxxxxxxxxxxxxxLINE 6, COL 19   line  6
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  7
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  8
+!      NO COLUMN SPECIFIEDxxxxxxxxxxx    line  9
+!      AGAIN NO COLUMNxxxxxxxxxxxxxxx    line 10
+! COL 1        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 11
+!      COL 2xxxxxxxxxxxxxxxxxxxxxxxxx    line 12
+!      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 13
+!      xxxxxxxxCOL 10xxxxxxxxxxxxxxxx    line 14
+!      xVCOL 10xxxxxxxxxxxxxxxxxxxxxx    line 15
+!      Ixxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 16
+!      xxxx. SPACE POINTERxxxxxxxxxxx    line 17
+!      xxxxx. DOT POINTERxxxxxxxxxxxx    line 18
+!      xxxxxx. DASH POINTERxxxxxxxxxx    line 19
+!      xxxxxxx. TAB-SPACE POINTERxxxx    line 20
+!      xxxxxxxx:cf Xerrorfile1xxxxxxx    line 21
+!      xxxxxxxx:cf Xerrorfile2xxxxxxx    line 22
+  end of testfile
+*** ../vim-7.3.537/src/version.c       2012-06-01 17:49:51.000000000 +0200
+--- src/version.c      2012-06-01 18:22:27.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     538,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+18. Your wife drapes a blond wig over your monitor to remind you of what she
+    looks like.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.539.patch0 b/vim/patches/vim-7.3.539.patch0
new file mode 100644 (file)
index 0000000..267c076
--- /dev/null
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.539
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.539
+Problem:    Redrawing a character on the command line does not work properly
+           for multi-byte charactes.
+Solution:   Count the number of bytes in a character. (Yukihiro Nakadaira)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.3.538/src/ex_getln.c      2012-05-25 11:02:34.000000000 +0200
+--- src/ex_getln.c     2012-06-06 11:50:37.000000000 +0200
+***************
+*** 2764,2769 ****
+--- 2764,2774 ----
+      msg_no_more = TRUE;
+      if (ccline.cmdlen == ccline.cmdpos)
+       msg_putchar(' ');
++ #ifdef FEAT_MBYTE
++     else if (has_mbyte)
++      draw_cmdline(ccline.cmdpos,
++                             (*mb_ptr2len)(ccline.cmdbuff + ccline.cmdpos));
++ #endif
+      else
+       draw_cmdline(ccline.cmdpos, 1);
+      msg_no_more = FALSE;
+*** ../vim-7.3.538/src/version.c       2012-06-01 18:34:37.000000000 +0200
+--- src/version.c      2012-06-06 12:02:45.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     539,
+  /**/
+
+-- 
+If they don't keep on exercising their lips, he thought, their brains
+start working.
+               -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.540.patch0 b/vim/patches/vim-7.3.540.patch0
new file mode 100644 (file)
index 0000000..6793eb4
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.540
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.540
+Problem:    Cursor is left on the text instead of the command line.
+Solution:   Don't call setcursor() in command line mode.
+Files:     src/getchar.c
+
+
+*** ../vim-7.3.539/src/getchar.c       2012-06-01 15:20:49.000000000 +0200
+--- src/getchar.c      2012-06-06 11:58:05.000000000 +0200
+***************
+*** 2819,2825 ****
+                       edit_unputchar();
+                   if (State & CMDLINE)
+                       unputcmdline();
+!                  setcursor();        /* put cursor back where it belongs */
+               }
+  
+               if (c < 0)
+--- 2819,2826 ----
+                       edit_unputchar();
+                   if (State & CMDLINE)
+                       unputcmdline();
+!                  else
+!                      setcursor();    /* put cursor back where it belongs */
+               }
+  
+               if (c < 0)
+*** ../vim-7.3.539/src/version.c       2012-06-06 12:02:57.000000000 +0200
+--- src/version.c      2012-06-06 12:05:22.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     540,
+  /**/
+
+-- 
+"Making it up?  Why should I want to make anything up?  Life's bad enough
+as it is without wanting to invent any more of it."
+               -- Marvin, the Paranoid Android in Douglas Adams'
+                  "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.541.patch0 b/vim/patches/vim-7.3.541.patch0
new file mode 100644 (file)
index 0000000..133b82d
--- /dev/null
@@ -0,0 +1,1090 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.541
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.541
+Problem:    When joining lines comment leaders need to be removed manually.
+Solution:   Add the 'j' flag to 'formatoptions'. (Lech Lorens)
+Files:     runtime/doc/change.txt, src/edit.c, src/ex_docmd.c, src/misc1.c,
+           src/normal.c, src/ops.c, src/option.h, src/proto/misc1.pro,
+           src/proto/ops.pro, src/search.c, src/testdir/test29.in,
+           src/testdir/test29.ok
+
+
+*** ../vim-7.3.540/runtime/doc/change.txt      2011-05-05 14:26:37.000000000 +0200
+--- runtime/doc/change.txt     2012-06-06 13:05:04.000000000 +0200
+***************
+*** 1495,1500 ****
+--- 1522,1533 ----
+       characters.  Overruled by the 'M' flag.
+  1    Don't break a line after a one-letter word.  It's broken before it
+       instead (if possible).
++ j    Where it makes sense, remove a comment leader when joining lines.  For
++      example, joining:
++              int i;   // the index ~
++                       // in the list ~
++      Becomes:
++              int i;   // the index in the list ~
+  
+  
+  With 't' and 'c' you can specify when Vim performs auto-wrapping:
+*** ../vim-7.3.540/src/edit.c  2012-06-01 15:20:49.000000000 +0200
+--- src/edit.c 2012-06-06 13:00:29.000000000 +0200
+***************
+*** 5847,5853 ****
+        * Need to remove existing (middle) comment leader and insert end
+        * comment leader.  First, check what comment leader we can find.
+        */
+!      i = get_leader_len(line = ml_get_curline(), &p, FALSE);
+       if (i > 0 && vim_strchr(p, COM_MIDDLE) != NULL) /* Just checking */
+       {
+           /* Skip middle-comment string */
+--- 5847,5853 ----
+        * Need to remove existing (middle) comment leader and insert end
+        * comment leader.  First, check what comment leader we can find.
+        */
+!      i = get_leader_len(line = ml_get_curline(), &p, FALSE, TRUE);
+       if (i > 0 && vim_strchr(p, COM_MIDDLE) != NULL) /* Just checking */
+       {
+           /* Skip middle-comment string */
+***************
+*** 6085,6091 ****
+  
+       /* Don't break until after the comment leader */
+       if (do_comments)
+!          leader_len = get_leader_len(ml_get_curline(), NULL, FALSE);
+       else
+           leader_len = 0;
+  
+--- 6085,6091 ----
+  
+       /* Don't break until after the comment leader */
+       if (do_comments)
+!          leader_len = get_leader_len(ml_get_curline(), NULL, FALSE, TRUE);
+       else
+           leader_len = 0;
+  
+***************
+*** 6411,6417 ****
+      /* With the 'c' flag in 'formatoptions' and 't' missing: only format
+       * comments. */
+      if (has_format_option(FO_WRAP_COMS) && !has_format_option(FO_WRAP)
+!                                   && get_leader_len(old, NULL, FALSE) == 0)
+       return;
+  #endif
+  
+--- 6411,6417 ----
+      /* With the 'c' flag in 'formatoptions' and 't' missing: only format
+       * comments. */
+      if (has_format_option(FO_WRAP_COMS) && !has_format_option(FO_WRAP)
+!                                   && get_leader_len(old, NULL, FALSE, TRUE) == 0)
+       return;
+  #endif
+  
+***************
+*** 8565,8571 ****
+      {
+       temp = curwin->w_cursor.col;
+       if (!can_bs(BS_EOL)             /* only if "eol" included */
+!              || do_join(2, FALSE, TRUE) == FAIL)
+           vim_beep();
+       else
+           curwin->w_cursor.col = temp;
+--- 8565,8571 ----
+      {
+       temp = curwin->w_cursor.col;
+       if (!can_bs(BS_EOL)             /* only if "eol" included */
+!              || do_join(2, FALSE, TRUE, FALSE) == FAIL)
+           vim_beep();
+       else
+           curwin->w_cursor.col = temp;
+***************
+*** 8746,8752 ****
+                       ptr[len - 1] = NUL;
+               }
+  
+!              (void)do_join(2, FALSE, FALSE);
+               if (temp == NUL && gchar_cursor() != NUL)
+                   inc_cursor();
+           }
+--- 8746,8752 ----
+                       ptr[len - 1] = NUL;
+               }
+  
+!              (void)do_join(2, FALSE, FALSE, FALSE);
+               if (temp == NUL && gchar_cursor() != NUL)
+                   inc_cursor();
+           }
+*** ../vim-7.3.540/src/ex_docmd.c      2012-04-30 18:48:38.000000000 +0200
+--- src/ex_docmd.c     2012-06-06 13:00:29.000000000 +0200
+***************
+*** 8545,8551 ****
+       }
+       ++eap->line2;
+      }
+!     (void)do_join(eap->line2 - eap->line1 + 1, !eap->forceit, TRUE);
+      beginline(BL_WHITE | BL_FIX);
+      ex_may_print(eap);
+  }
+--- 8545,8551 ----
+       }
+       ++eap->line2;
+      }
+!     (void)do_join(eap->line2 - eap->line1 + 1, !eap->forceit, TRUE, TRUE);
+      beginline(BL_WHITE | BL_FIX);
+      ex_may_print(eap);
+  }
+*** ../vim-7.3.540/src/misc1.c 2012-06-01 15:20:49.000000000 +0200
+--- src/misc1.c        2012-06-06 13:27:32.000000000 +0200
+***************
+*** 671,677 ****
+           ptr = saved_line;
+  # ifdef FEAT_COMMENTS
+           if (flags & OPENLINE_DO_COM)
+!              lead_len = get_leader_len(ptr, NULL, FALSE);
+           else
+               lead_len = 0;
+  # endif
+--- 671,677 ----
+           ptr = saved_line;
+  # ifdef FEAT_COMMENTS
+           if (flags & OPENLINE_DO_COM)
+!              lead_len = get_leader_len(ptr, NULL, FALSE, TRUE);
+           else
+               lead_len = 0;
+  # endif
+***************
+*** 693,699 ****
+               }
+  # ifdef FEAT_COMMENTS
+               if (flags & OPENLINE_DO_COM)
+!                  lead_len = get_leader_len(ptr, NULL, FALSE);
+               else
+                   lead_len = 0;
+               if (lead_len > 0)
+--- 693,699 ----
+               }
+  # ifdef FEAT_COMMENTS
+               if (flags & OPENLINE_DO_COM)
+!                  lead_len = get_leader_len(ptr, NULL, FALSE, TRUE);
+               else
+                   lead_len = 0;
+               if (lead_len > 0)
+***************
+*** 836,842 ****
+       */
+      end_comment_pending = NUL;
+      if (flags & OPENLINE_DO_COM)
+!      lead_len = get_leader_len(saved_line, &lead_flags, dir == BACKWARD);
+      else
+       lead_len = 0;
+      if (lead_len > 0)
+--- 836,842 ----
+       */
+      end_comment_pending = NUL;
+      if (flags & OPENLINE_DO_COM)
+!      lead_len = get_leader_len(saved_line, &lead_flags, dir == BACKWARD, TRUE);
+      else
+       lead_len = 0;
+      if (lead_len > 0)
+***************
+*** 1548,1561 ****
+   * When "flags" is not NULL, it is set to point to the flags of the recognized
+   * comment leader.
+   * "backward" must be true for the "O" command.
+   */
+      int
+! get_leader_len(line, flags, backward)
+      char_u   *line;
+      char_u   **flags;
+      int              backward;
+  {
+      int              i, j;
+      int              got_com = FALSE;
+      int              found_one;
+      char_u   part_buf[COM_MAX_LEN];  /* buffer for one option part */
+--- 1548,1565 ----
+   * When "flags" is not NULL, it is set to point to the flags of the recognized
+   * comment leader.
+   * "backward" must be true for the "O" command.
++  * If "include_space" is set, include trailing whitespace while calculating the
++  * length.
+   */
+      int
+! get_leader_len(line, flags, backward, include_space)
+      char_u   *line;
+      char_u   **flags;
+      int              backward;
++     int              include_space;
+  {
+      int              i, j;
++     int              result;
+      int              got_com = FALSE;
+      int              found_one;
+      char_u   part_buf[COM_MAX_LEN];  /* buffer for one option part */
+***************
+*** 1565,1571 ****
+      char_u   *prev_list;
+      char_u   *saved_flags = NULL;
+  
+!     i = 0;
+      while (vim_iswhite(line[i]))    /* leading white space is ignored */
+       ++i;
+  
+--- 1569,1575 ----
+      char_u   *prev_list;
+      char_u   *saved_flags = NULL;
+  
+!     result = i = 0;
+      while (vim_iswhite(line[i]))    /* leading white space is ignored */
+       ++i;
+  
+***************
+*** 1668,1684 ****
+       if (!found_one)
+           break;
+  
+       /* Include any trailing white space. */
+       while (vim_iswhite(line[i]))
+           ++i;
+  
+       /* If this comment doesn't nest, stop here. */
+       got_com = TRUE;
+       if (vim_strchr(part_buf, COM_NEST) == NULL)
+           break;
+      }
+  
+!     return (got_com ? i : 0);
+  }
+  #endif
+  
+--- 1672,1838 ----
+       if (!found_one)
+           break;
+  
++      result = i;
++ 
+       /* Include any trailing white space. */
+       while (vim_iswhite(line[i]))
+           ++i;
+  
++      if (include_space)
++          result = i;
++ 
+       /* If this comment doesn't nest, stop here. */
+       got_com = TRUE;
+       if (vim_strchr(part_buf, COM_NEST) == NULL)
+           break;
+      }
++     return result;
++ }
++ 
++ /*
++  * Return the offset at which the last comment in line starts. If there is no
++  * comment in the whole line, -1 is returned.
++  *
++  * When "flags" is not null, it is set to point to the flags describing the
++  * recognized comment leader.
++  */
++     int
++ get_last_leader_offset(line, flags)
++     char_u   *line;
++     char_u   **flags;
++ {
++     int              result = -1;
++     int              i, j;
++     int              lower_check_bound = 0;
++     char_u   *string;
++     char_u   *com_leader;
++     char_u   *com_flags;
++     char_u   *list;
++     int              found_one;
++     char_u   part_buf[COM_MAX_LEN];  /* buffer for one option part */
++ 
++     /*
++      * Repeat to match several nested comment strings.
++      */
++     i = (int)STRLEN(line);
++     while (--i >= lower_check_bound)
++     {
++      /*
++       * scan through the 'comments' option for a match
++       */
++      found_one = FALSE;
++      for (list = curbuf->b_p_com; *list; )
++      {
++          char_u *flags_save = list;
++ 
++          /*
++           * Get one option part into part_buf[].  Advance list to next one.
++           * put string at start of string.
++           */
++          (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
++          string = vim_strchr(part_buf, ':');
++          if (string == NULL) /* If everything is fine, this cannot actually
++                               * happen. */
++          {
++              continue;
++          }
++          *string++ = NUL;    /* Isolate flags from string. */
++          com_leader = string;
++ 
++          /*
++           * Line contents and string must match.
++           * When string starts with white space, must have some white space
++           * (but the amount does not need to match, there might be a mix of
++           * TABs and spaces).
++           */
++          if (vim_iswhite(string[0]))
++          {
++              if (i == 0 || !vim_iswhite(line[i - 1]))
++                  continue;
++              while (vim_iswhite(string[0]))
++                  ++string;
++          }
++          for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
++              /* do nothing */;
++          if (string[j] != NUL)
++              continue;
++ 
++          /*
++           * When 'b' flag used, there must be white space or an
++           * end-of-line after the string in the line.
++           */
++          if (vim_strchr(part_buf, COM_BLANK) != NULL
++                  && !vim_iswhite(line[i + j]) && line[i + j] != NUL)
++          {
++              continue;
++          }
++ 
++          /*
++           * We have found a match, stop searching.
++           */
++          found_one = TRUE;
++ 
++          if (flags)
++              *flags = flags_save;
++          com_flags = flags_save;
++ 
++          break;
++      }
+  
+!      if (found_one)
+!      {
+!          char_u  part_buf2[COM_MAX_LEN];     /* buffer for one option part */
+!          int     len1, len2, off;
+! 
+!          result = i;
+!          /*
+!           * If this comment nests, continue searching.
+!           */
+!          if (vim_strchr(part_buf, COM_NEST) != NULL)
+!              continue;
+! 
+!          lower_check_bound = i;
+! 
+!          /* Let's verify whether the comment leader found is a substring
+!           * of other comment leaders. If it is, let's adjust the
+!           * lower_check_bound so that we make sure that we have determined
+!           * the comment leader correctly.
+!           */
+! 
+!          while (vim_iswhite(*com_leader))
+!              ++com_leader;
+!          len1 = (int)STRLEN(com_leader);
+! 
+!          for (list = curbuf->b_p_com; *list; )
+!          {
+!              char_u *flags_save = list;
+! 
+!              (void)copy_option_part(&list, part_buf2, COM_MAX_LEN, ",");
+!              if (flags_save == com_flags)
+!                  continue;
+!              string = vim_strchr(part_buf2, ':');
+!              ++string;
+!              while (vim_iswhite(*string))
+!                  ++string;
+!              len2 = (int)STRLEN(string);
+!              if (len2 == 0)
+!                  continue;
+! 
+!              /* Now we have to verify whether string ends with a substring
+!               * beginning the com_leader. */
+!              for (off = (len2 > i ? i : len2); off > 0 && off + len1 > len2;)
+!              {
+!                  --off;
+!                  if (!STRNCMP(string + off, com_leader, len2 - off))
+!                  {
+!                      if (i - off < lower_check_bound)
+!                          lower_check_bound = i - off;
+!                  }
+!              }
+!          }
+!      }
+!     }
+!     return result;
+  }
+  #endif
+  
+*** ../vim-7.3.540/src/normal.c        2012-05-25 13:12:33.000000000 +0200
+--- src/normal.c       2012-06-06 13:00:29.000000000 +0200
+***************
+*** 1968,1974 ****
+               beep_flush();
+           else
+           {
+!              (void)do_join(oap->line_count, oap->op_type == OP_JOIN, TRUE);
+               auto_format(FALSE, TRUE);
+           }
+           break;
+--- 1968,1974 ----
+               beep_flush();
+           else
+           {
+!              (void)do_join(oap->line_count, oap->op_type == OP_JOIN, TRUE, TRUE);
+               auto_format(FALSE, TRUE);
+           }
+           break;
+***************
+*** 4426,4432 ****
+           break;
+       }
+  #ifdef FEAT_COMMENTS
+!      if (get_leader_len(ml_get_curline(), NULL, FALSE) > 0)
+       {
+           /* Ignore this line, continue at start of next line. */
+           ++curwin->w_cursor.lnum;
+--- 4426,4432 ----
+           break;
+       }
+  #ifdef FEAT_COMMENTS
+!      if (get_leader_len(ml_get_curline(), NULL, FALSE, TRUE) > 0)
+       {
+           /* Ignore this line, continue at start of next line. */
+           ++curwin->w_cursor.lnum;
+***************
+*** 9324,9330 ****
+       {
+           prep_redo(cap->oap->regname, cap->count0,
+                        NUL, cap->cmdchar, NUL, NUL, cap->nchar);
+!          (void)do_join(cap->count0, cap->nchar == NUL, TRUE);
+       }
+      }
+  }
+--- 9324,9330 ----
+       {
+           prep_redo(cap->oap->regname, cap->count0,
+                        NUL, cap->cmdchar, NUL, NUL, cap->nchar);
+!          (void)do_join(cap->count0, cap->nchar == NUL, TRUE, TRUE);
+       }
+      }
+  }
+*** ../vim-7.3.540/src/ops.c   2012-05-18 12:49:33.000000000 +0200
+--- src/ops.c  2012-06-06 15:43:31.000000000 +0200
+***************
+*** 112,117 ****
+--- 112,120 ----
+  # endif
+  #endif
+  static void  dis_msg __ARGS((char_u *p, int skip_esc));
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++ static char_u        *skip_comment __ARGS((char_u *line, int process, int include_space, int *is_comment));
++ #endif
+  #ifdef FEAT_VISUAL
+  static void  block_prep __ARGS((oparg_T *oap, struct block_def *, linenr_T, int));
+  #endif
+***************
+*** 1987,1993 ****
+               curwin->w_cursor = curpos;      /* restore curwin->w_cursor */
+           }
+           if (curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
+!              (void)do_join(2, FALSE, FALSE);
+       }
+      }
+  
+--- 1990,1996 ----
+               curwin->w_cursor = curpos;      /* restore curwin->w_cursor */
+           }
+           if (curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
+!              (void)do_join(2, FALSE, FALSE, FALSE);
+       }
+      }
+  
+***************
+*** 4197,4213 ****
+      ui_breakcheck();
+  }
+  
+  /*
+   * Join 'count' lines (minimal 2) at cursor position.
+   * When "save_undo" is TRUE save lines for undo first.
+   *
+   * return FAIL for failure, OK otherwise
+   */
+      int
+! do_join(count, insert_space, save_undo)
+      long    count;
+      int          insert_space;
+      int          save_undo;
+  {
+      char_u   *curr = NULL;
+      char_u      *curr_start = NULL;
+--- 4200,4297 ----
+      ui_breakcheck();
+  }
+  
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++ /*
++  * If "process" is TRUE and the line begins with a comment leader (possibly
++  * after some white space), return a pointer to the text after it. Put a boolean
++  * value indicating whether the line ends with an unclosed comment in
++  * "is_comment".
++  * line - line to be processed,
++  * process - if FALSE, will only check whether the line ends with an unclosed
++  *           comment,
++  * include_space - whether to also skip space following the comment leader,
++  * is_comment - will indicate whether the current line ends with an unclosed
++  *              comment.
++  */
++     static char_u *
++ skip_comment(line, process, include_space, is_comment)
++     char_u   *line;
++     int      process;
++     int           include_space;
++     int      *is_comment;
++ {
++     char_u *comment_flags = NULL;
++     int    lead_len;
++     int    leader_offset = get_last_leader_offset(line, &comment_flags);
++ 
++     *is_comment = FALSE;
++     if (leader_offset != -1)
++     {
++      /* Let's check whether the line ends with an unclosed comment.
++       * If the last comment leader has COM_END in flags, there's no comment.
++       */
++      while (*comment_flags)
++      {
++          if (*comment_flags == COM_END
++                  || *comment_flags == ':')
++              break;
++          ++comment_flags;
++      }
++      if (*comment_flags != COM_END)
++          *is_comment = TRUE;
++     }
++ 
++     if (process == FALSE)
++      return line;
++ 
++     lead_len = get_leader_len(line, &comment_flags, FALSE, include_space);
++ 
++     if (lead_len == 0)
++      return line;
++ 
++     /* Find:
++      * - COM_START,
++      * - COM_END,
++      * - colon,
++      * whichever comes first.
++      */
++     while (*comment_flags)
++     {
++      if (*comment_flags == COM_START
++              || *comment_flags == COM_END
++              || *comment_flags == ':')
++      {
++          break;
++      }
++      ++comment_flags;
++     }
++ 
++     /* If we found a colon, it means that we are not processing a line
++      * starting with an opening or a closing part of a three-part
++      * comment. That's good, because we don't want to remove those as
++      * this would be annoying.
++      */
++     if (*comment_flags == ':' || *comment_flags == NUL)
++      line += lead_len;
++ 
++     return line;
++ }
++ #endif
++ 
+  /*
+   * Join 'count' lines (minimal 2) at cursor position.
+   * When "save_undo" is TRUE save lines for undo first.
++  * Set "use_formatoptions" to FALSE when e.g. processing
++  * backspace and comment leaders should not be removed.
+   *
+   * return FAIL for failure, OK otherwise
+   */
+      int
+! do_join(count, insert_space, save_undo, use_formatoptions)
+      long    count;
+      int          insert_space;
+      int          save_undo;
++     int          use_formatoptions UNUSED;
+  {
+      char_u   *curr = NULL;
+      char_u      *curr_start = NULL;
+***************
+*** 4221,4226 ****
+--- 4305,4317 ----
+      linenr_T t;
+      colnr_T  col = 0;
+      int              ret = OK;
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++     int              *comments;
++     int              remove_comments = (use_formatoptions == TRUE)
++                                && has_format_option(FO_REMOVE_COMS);
++     int              prev_was_comment;
++ #endif
++ 
+  
+      if (save_undo && u_save((linenr_T)(curwin->w_cursor.lnum - 1),
+                           (linenr_T)(curwin->w_cursor.lnum + count)) == FAIL)
+***************
+*** 4232,4237 ****
+--- 4323,4339 ----
+      spaces = lalloc_clear((long_u)count, TRUE);
+      if (spaces == NULL)
+       return FAIL;
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++     if (remove_comments)
++     {
++      comments = (int *)lalloc_clear((long_u)count * sizeof(int), TRUE);
++      if (comments == NULL)
++      {
++          vim_free(spaces);
++          return FAIL;
++      }
++     }
++ #endif
+  
+      /*
+       * Don't move anything, just compute the final line length
+***************
+*** 4240,4245 ****
+--- 4342,4366 ----
+      for (t = 0; t < count; ++t)
+      {
+       curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++      if (remove_comments)
++      {
++          /* We don't want to remove the comment leader if the
++           * previous line is not a comment. */
++          if (t > 0 && prev_was_comment)
++          {
++ 
++              char_u *new_curr = skip_comment(curr, TRUE, insert_space,
++                                                         &prev_was_comment);
++              comments[t] = new_curr - curr;
++              curr = new_curr;
++          }
++          else
++              curr = skip_comment(curr, FALSE, insert_space,
++                                                         &prev_was_comment);
++      }
++ #endif
++ 
+       if (insert_space && t > 0)
+       {
+           curr = skipwhite(curr);
+***************
+*** 4327,4332 ****
+--- 4448,4457 ----
+       if (t == 0)
+           break;
+       curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++      if (remove_comments)
++          curr += comments[t - 1];
++ #endif
+       if (insert_space && t > 1)
+           curr = skipwhite(curr);
+       currsize = (int)STRLEN(curr);
+***************
+*** 4364,4369 ****
+--- 4489,4498 ----
+  
+  theend:
+      vim_free(spaces);
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++     if (remove_comments)
++      vim_free(comments);
++ #endif
+      return ret;
+  }
+  
+***************
+*** 4788,4794 ****
+                                                     (long)-next_leader_len);
+  #endif
+               curwin->w_cursor.lnum--;
+!              if (do_join(2, TRUE, FALSE) == FAIL)
+               {
+                   beep_flush();
+                   break;
+--- 4917,4923 ----
+                                                     (long)-next_leader_len);
+  #endif
+               curwin->w_cursor.lnum--;
+!              if (do_join(2, TRUE, FALSE, FALSE) == FAIL)
+               {
+                   beep_flush();
+                   break;
+***************
+*** 4844,4850 ****
+  
+      ptr = ml_get(lnum);
+      if (do_comments)
+!      *leader_len = get_leader_len(ptr, leader_flags, FALSE);
+      else
+       *leader_len = 0;
+  
+--- 4973,4979 ----
+  
+      ptr = ml_get(lnum);
+      if (do_comments)
+!      *leader_len = get_leader_len(ptr, leader_flags, FALSE, TRUE);
+      else
+       *leader_len = 0;
+  
+*** ../vim-7.3.540/src/option.h        2012-02-20 22:18:22.000000000 +0100
+--- src/option.h       2012-06-06 13:00:29.000000000 +0200
+***************
+*** 104,113 ****
+  #define FO_ONE_LETTER        '1'
+  #define FO_WHITE_PAR 'w'     /* trailing white space continues paragr. */
+  #define FO_AUTO              'a'     /* automatic formatting */
+  
+  #define DFLT_FO_VI   "vt"
+  #define DFLT_FO_VIM  "tcq"
+! #define FO_ALL               "tcroq2vlb1mMBn,aw"     /* for do_set() */
+  
+  /* characters for the p_cpo option: */
+  #define CPO_ALTREAD  'a'     /* ":read" sets alternate file name */
+--- 104,114 ----
+  #define FO_ONE_LETTER        '1'
+  #define FO_WHITE_PAR 'w'     /* trailing white space continues paragr. */
+  #define FO_AUTO              'a'     /* automatic formatting */
++ #define FO_REMOVE_COMS       'j'     /* remove comment leaders when joining lines */
+  
+  #define DFLT_FO_VI   "vt"
+  #define DFLT_FO_VIM  "tcq"
+! #define FO_ALL               "tcroq2vlb1mMBn,awj"    /* for do_set() */
+  
+  /* characters for the p_cpo option: */
+  #define CPO_ALTREAD  'a'     /* ":read" sets alternate file name */
+*** ../vim-7.3.540/src/proto/misc1.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/misc1.pro        2012-06-06 13:00:29.000000000 +0200
+***************
+*** 6,12 ****
+  int set_indent __ARGS((int size, int flags));
+  int get_number_indent __ARGS((linenr_T lnum));
+  int open_line __ARGS((int dir, int flags, int old_indent));
+! int get_leader_len __ARGS((char_u *line, char_u **flags, int backward));
+  int plines __ARGS((linenr_T lnum));
+  int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
+  int plines_nofill __ARGS((linenr_T lnum));
+--- 6,13 ----
+  int set_indent __ARGS((int size, int flags));
+  int get_number_indent __ARGS((linenr_T lnum));
+  int open_line __ARGS((int dir, int flags, int old_indent));
+! int get_leader_len __ARGS((char_u *line, char_u **flags, int backward, int do_skip_space));
+! int get_last_leader_offset __ARGS((char_u *line, char_u **flags));
+  int plines __ARGS((linenr_T lnum));
+  int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
+  int plines_nofill __ARGS((linenr_T lnum));
+*** ../vim-7.3.540/src/proto/ops.pro   2010-08-15 21:57:28.000000000 +0200
+--- src/proto/ops.pro  2012-06-06 13:00:29.000000000 +0200
+***************
+*** 36,42 ****
+  int preprocs_left __ARGS((void));
+  int get_register_name __ARGS((int num));
+  void ex_display __ARGS((exarg_T *eap));
+! int do_join __ARGS((long count, int insert_space, int save_undo));
+  void op_format __ARGS((oparg_T *oap, int keep_cursor));
+  void op_formatexpr __ARGS((oparg_T *oap));
+  int fex_format __ARGS((linenr_T lnum, long count, int c));
+--- 36,42 ----
+  int preprocs_left __ARGS((void));
+  int get_register_name __ARGS((int num));
+  void ex_display __ARGS((exarg_T *eap));
+! int do_join __ARGS((long count, int insert_space, int save_undo, int use_formatoptions));
+  void op_format __ARGS((oparg_T *oap, int keep_cursor));
+  void op_formatexpr __ARGS((oparg_T *oap));
+  int fex_format __ARGS((linenr_T lnum, long count, int c));
+*** ../vim-7.3.540/src/search.c        2012-02-04 23:34:57.000000000 +0100
+--- src/search.c       2012-06-06 13:00:29.000000000 +0200
+***************
+*** 1548,1554 ****
+      int                      len;
+      int                      stop = TRUE;
+  #ifdef FEAT_MBYTE
+!     static char_u    bytes[MB_MAXBYTES];
+      static int               bytelen = 1;    /* >1 for multi-byte char */
+  #endif
+  
+--- 1548,1554 ----
+      int                      len;
+      int                      stop = TRUE;
+  #ifdef FEAT_MBYTE
+!     static char_u    bytes[MB_MAXBYTES + 1];
+      static int               bytelen = 1;    /* >1 for multi-byte char */
+  #endif
+  
+***************
+*** 4901,4907 ****
+  #ifdef FEAT_COMMENTS
+                       if ((*line != '#' ||
+                               STRNCMP(skipwhite(line + 1), "define", 6) != 0)
+!                              && get_leader_len(line, NULL, FALSE))
+                           matched = FALSE;
+  
+                       /*
+--- 4901,4907 ----
+  #ifdef FEAT_COMMENTS
+                       if ((*line != '#' ||
+                               STRNCMP(skipwhite(line + 1), "define", 6) != 0)
+!                              && get_leader_len(line, NULL, FALSE, TRUE))
+                           matched = FALSE;
+  
+                       /*
+*** ../vim-7.3.540/src/testdir/test29.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test29.in      2012-06-06 15:44:38.000000000 +0200
+***************
+*** 4,19 ****
+   and with 'cpoptions' flag 'j' set or not
+  
+  STARTTEST
+  :set nocompatible viminfo+=nviminfo
+  :set nojoinspaces
+  :set cpoptions-=j
+  /firstline/
+! j"tdGpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
+  j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces
+  j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
+  j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
+! j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjdG:?firstline?+1,$w! test.out
+! :qa!
+  ENDTEST
+  
+  firstline
+--- 4,20 ----
+   and with 'cpoptions' flag 'j' set or not
+  
+  STARTTEST
++ :so small.vim
+  :set nocompatible viminfo+=nviminfo
+  :set nojoinspaces
+  :set cpoptions-=j
+  /firstline/
+! j"td/^STARTTEST/-1
+! PJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
+  j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces
+  j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
+  j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
+! j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
+  ENDTEST
+  
+  firstline
+***************
+*** 54,56 ****
+--- 55,181 ----
+  hjkl iop!
+  ert
+  
++ STARTTEST
++ /^{/+1
++ :set comments=s1:/*,mb:*,ex:*/,://
++ :set nojoinspaces fo=j
++ :set backspace=eol,start
++ :.,+3join
++ j4J
++ :.,+2join
++ j3J
++ :.,+2join
++ j3J
++ :.,+2join
++ jj3J
++ ENDTEST
++ 
++ {
++ 
++ /*
++  * Make sure the previous comment leader is not removed.
++  */
++ 
++ /*
++  * Make sure the previous comment leader is not removed.
++  */
++ 
++ // Should the next comment leader be left alone?
++ // Yes.
++ 
++ // Should the next comment leader be left alone?
++ // Yes.
++ 
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++ 
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++ 
++ if (condition) // Remove the next comment leader!
++                // OK, I will.
++     action();
++ 
++ if (condition) // Remove the next comment leader!
++                // OK, I will.
++     action();
++ }
++ 
++ STARTTEST
++ /^{/+1
++ :set comments=s1:/*,mb:*,ex:*/,://
++ :set comments+=s1:>#,mb:#,ex:#<,:<
++ :set cpoptions-=j joinspaces fo=j
++ :set backspace=eol,start
++ :.,+3join
++ j4J
++ :.,+2join
++ j3J
++ :.,+2join
++ j3J
++ :.,+2join
++ jj3J
++ j:.,+2join
++ jj3J
++ j:.,+5join
++ j6J
++ oSome code!\r// Make sure backspacing does not remove this comment leader.\e0i\b\e
++ ENDTEST
++ 
++ {
++ 
++ /*
++  * Make sure the previous comment leader is not removed.
++  */
++ 
++ /*
++  * Make sure the previous comment leader is not removed.
++  */
++ 
++ // Should the next comment leader be left alone?
++ // Yes.
++ 
++ // Should the next comment leader be left alone?
++ // Yes.
++ 
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++ 
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++ 
++ if (condition) // Remove the next comment leader!
++                // OK, I will.
++     action();
++ 
++ if (condition) // Remove the next comment leader!
++                // OK, I will.
++     action();
++ 
++ int i = 7 /* foo *// 3
++  // comment
++  ;
++ 
++ int i = 7 /* foo *// 3
++  // comment
++  ;
++ 
++ ># Note that the last character of the ending comment leader (left angle
++  # bracket) is a comment leader itself. Make sure that this comment leader is
++  # not removed from the next line #<
++ < On this line a new comment is opened which spans 2 lines. This comment should
++ < retain its comment leader.
++ 
++ ># Note that the last character of the ending comment leader (left angle
++  # bracket) is a comment leader itself. Make sure that this comment leader is
++  # not removed from the next line #<
++ < On this line a new comment is opened which spans 2 lines. This comment should
++ < retain its comment leader.
++ 
++ }
++ 
++ STARTTEST
++ :g/^STARTTEST/.,/^ENDTEST/d
++ :?firstline?+1,$w! test.out
++ :qa!
++ ENDTEST
+*** ../vim-7.3.540/src/testdir/test29.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test29.ok      2012-06-06 13:00:29.000000000 +0200
+***************
+*** 47,49 ****
+--- 47,86 ----
+  asdfasdf     asdf
+  asdfasdf             asdf
+  zx cvn.  as dfg? hjkl iop! ert  a
++ 
++ 
++ {
++ /* Make sure the previous comment leader is not removed. */
++ /* Make sure the previous comment leader is not removed. */
++ // Should the next comment leader be left alone? Yes.
++ // Should the next comment leader be left alone? Yes.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ if (condition) // Remove the next comment leader! OK, I will.
++     action();
++ if (condition) // Remove the next comment leader! OK, I will.
++     action();
++ }
++ 
++ 
++ {
++ /* Make sure the previous comment leader is not removed.  */
++ /* Make sure the previous comment leader is not removed.  */
++ // Should the next comment leader be left alone?  Yes.
++ // Should the next comment leader be left alone?  Yes.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ if (condition) // Remove the next comment leader!  OK, I will.
++     action();
++ if (condition) // Remove the next comment leader!  OK, I will.
++     action();
++ int i = 7 /* foo *// 3 // comment
++  ;
++ int i = 7 /* foo *// 3 // comment
++  ;
++ ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
++ ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
++ 
++ Some code!// Make sure backspacing does not remove this comment leader.
++ }
++ 
+*** ../vim-7.3.540/src/version.c       2012-06-06 12:06:10.000000000 +0200
+--- src/version.c      2012-06-06 16:10:03.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     541,
+  /**/
+
+-- 
+I have a drinking problem -- I don't have a drink!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.542.patch0 b/vim/patches/vim-7.3.542.patch0
new file mode 100644 (file)
index 0000000..8108612
--- /dev/null
@@ -0,0 +1,73 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.542
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.542 (after 7.3.506)
+Problem:    Function is sometimes unused.
+Solution:   Add #ifdef.
+Files:     src/gui_gtk.c
+
+
+*** ../vim-7.3.541/src/gui_gtk.c       2012-04-25 17:10:12.000000000 +0200
+--- src/gui_gtk.c      2012-06-06 15:25:12.000000000 +0200
+***************
+*** 90,100 ****
+--- 90,102 ----
+  static void entry_activate_cb(GtkWidget *widget, gpointer data);
+  static void entry_changed_cb(GtkWidget *entry, GtkWidget *dialog);
+  static void find_replace_cb(GtkWidget *widget, gpointer data);
++ #if defined(FEAT_BROWSE) || defined(PROTO)
+  static void recent_func_log_func(
+       const gchar *log_domain,
+       GLogLevelFlags log_level,
+       const gchar *message,
+       gpointer user_data);
++ #endif
+  
+  #if defined(FEAT_TOOLBAR)
+  /*
+***************
+*** 1896,1901 ****
+--- 1898,1904 ----
+      do_cmdline_cmd((char_u *)"emenu ToolBar.FindHelp");
+  }
+  
++ #if defined(FEAT_BROWSE) || defined(PROTO)
+      static void
+  recent_func_log_func(const gchar *log_domain UNUSED,
+                    GLogLevelFlags log_level UNUSED,
+***************
+*** 1905,1908 ****
+      /* We just want to suppress the warnings. */
+      /* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
+  }
+! 
+--- 1908,1911 ----
+      /* We just want to suppress the warnings. */
+      /* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
+  }
+! #endif
+*** ../vim-7.3.541/src/version.c       2012-06-06 16:12:54.000000000 +0200
+--- src/version.c      2012-06-06 16:14:17.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     542,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+1. At lunch time, sit in your parked car with sunglasses on and point
+   a hair dryer at passing cars. See if they slow down.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.543.patch0 b/vim/patches/vim-7.3.543.patch0
new file mode 100644 (file)
index 0000000..3fa569c
--- /dev/null
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.543
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.543
+Problem:    The cursor is in the wrong line after using ":copen". (John
+           Beckett)
+Solution:   Invoke more drastic redraw method.
+Files:     src/eval.c
+
+
+*** ../vim-7.3.542/src/eval.c  2012-06-01 15:20:49.000000000 +0200
+--- src/eval.c 2012-06-06 16:28:11.000000000 +0200
+***************
+*** 18507,18515 ****
+       curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
+  
+       check_cursor();
+!      changed_cline_bef_curs();
+!      invalidate_botline();
+!      redraw_later(VALID);
+  
+       if (curwin->w_topline == 0)
+           curwin->w_topline = 1;
+--- 18507,18513 ----
+       curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
+  
+       check_cursor();
+!      changed_window_setting();
+  
+       if (curwin->w_topline == 0)
+           curwin->w_topline = 1;
+*** ../vim-7.3.542/src/version.c       2012-06-06 16:14:36.000000000 +0200
+--- src/version.c      2012-06-06 16:28:16.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     543,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+2. Page yourself over the intercom. Don't disguise your voice.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.544.patch0 b/vim/patches/vim-7.3.544.patch0
new file mode 100644 (file)
index 0000000..198a6cb
--- /dev/null
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.544
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.544
+Problem:    There is no good way to close a quickfix window when closing the
+           last ordinary window.
+Solution:   Add the QuitPre autocommand.
+Files:     src/ex_docmd.c, src/fileio.c, src/vim.h
+
+
+*** ../vim-7.3.543/src/ex_docmd.c      2012-06-06 16:12:54.000000000 +0200
+--- src/ex_docmd.c     2012-06-06 17:58:41.000000000 +0200
+***************
+*** 6458,6463 ****
+--- 6458,6464 ----
+       return;
+      }
+  #ifdef FEAT_AUTOCMD
++     apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
+      if (curbuf_locked())
+       return;
+  #endif
+*** ../vim-7.3.543/src/fileio.c        2012-04-30 17:04:47.000000000 +0200
+--- src/fileio.c       2012-06-06 17:32:12.000000000 +0200
+***************
+*** 7678,7683 ****
+--- 7678,7684 ----
+      {"MenuPopup",    EVENT_MENUPOPUP},
+      {"QuickFixCmdPost",      EVENT_QUICKFIXCMDPOST},
+      {"QuickFixCmdPre",       EVENT_QUICKFIXCMDPRE},
++     {"QuitPre",              EVENT_QUITPRE},
+      {"RemoteReply",  EVENT_REMOTEREPLY},
+      {"SessionLoadPost",      EVENT_SESSIONLOADPOST},
+      {"ShellCmdPost", EVENT_SHELLCMDPOST},
+*** ../vim-7.3.543/src/vim.h   2012-06-01 15:20:49.000000000 +0200
+--- src/vim.h  2012-06-06 17:30:01.000000000 +0200
+***************
+*** 1264,1271 ****
+      EVENT_INSERTENTER,               /* when entering Insert mode */
+      EVENT_INSERTLEAVE,               /* when leaving Insert mode */
+      EVENT_MENUPOPUP,         /* just before popup menu is displayed */
+!     EVENT_QUICKFIXCMDPOST,   /* after :make, :grep etc */
+!     EVENT_QUICKFIXCMDPRE,    /* before :make, :grep etc */
+      EVENT_SESSIONLOADPOST,   /* after loading a session file */
+      EVENT_STDINREADPOST,     /* after reading from stdin */
+      EVENT_STDINREADPRE,              /* before reading from stdin */
+--- 1264,1272 ----
+      EVENT_INSERTENTER,               /* when entering Insert mode */
+      EVENT_INSERTLEAVE,               /* when leaving Insert mode */
+      EVENT_MENUPOPUP,         /* just before popup menu is displayed */
+!     EVENT_QUICKFIXCMDPOST,   /* after :make, :grep etc. */
+!     EVENT_QUICKFIXCMDPRE,    /* before :make, :grep etc. */
+!     EVENT_QUITPRE,           /* before :quit */
+      EVENT_SESSIONLOADPOST,   /* after loading a session file */
+      EVENT_STDINREADPOST,     /* after reading from stdin */
+      EVENT_STDINREADPRE,              /* before reading from stdin */
+*** ../vim-7.3.543/src/version.c       2012-06-06 16:29:06.000000000 +0200
+--- src/version.c      2012-06-06 18:02:09.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     544,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+3. Every time someone asks you to do something, ask if they want fries
+   with that.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.545.patch0 b/vim/patches/vim-7.3.545.patch0
new file mode 100644 (file)
index 0000000..1bd76eb
--- /dev/null
@@ -0,0 +1,359 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.545
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.545
+Problem:    When closing a window or buffer autocommands may close it too,
+           causing problems for where the autocommand was invoked from.
+Solution:   Add the w_closing and b_closing flags.  When set disallow ":q" and
+           ":close" to prevent recursive closing.
+Files:     src/structs.h, src/buffer.c, src/ex_docmd.c, src/window.c
+
+
+*** ../vim-7.3.544/src/structs.h       2012-02-04 21:57:44.000000000 +0100
+--- src/structs.h      2012-06-06 16:43:34.000000000 +0200
+***************
+*** 1201,1206 ****
+--- 1201,1210 ----
+  typedef struct qf_info_S qf_info_T;
+  #endif
+  
++ /*
++  * These are items normally related to a buffer.  But when using ":ownsyntax"
++  * a window may have its own instance.
++  */
+  typedef struct {
+  #ifdef FEAT_SYN_HL
+      hashtab_T        b_keywtab;              /* syntax keywords hash table */
+***************
+*** 1290,1295 ****
+--- 1294,1303 ----
+      int              b_nwindows;     /* nr of windows open on this buffer */
+  
+      int              b_flags;        /* various BF_ flags */
++ #ifdef FEAT_AUTOCMD
++     int              b_closing;      /* buffer is being closed, don't let
++                                 autocommands close it too. */
++ #endif
+  
+      /*
+       * b_ffname has the full path of the file (NULL for no name).
+***************
+*** 1853,1858 ****
+--- 1861,1870 ----
+      win_T    *w_prev;            /* link to previous window */
+      win_T    *w_next;            /* link to next window */
+  #endif
++ #ifdef FEAT_AUTOCMD
++     int              w_closing;          /* window is being closed, don't let
++                                     autocommands close it too. */
++ #endif
+  
+      frame_T  *w_frame;           /* frame containing this window */
+  
+*** ../vim-7.3.544/src/buffer.c        2012-03-16 14:32:10.000000000 +0100
+--- src/buffer.c       2012-06-06 18:57:27.000000000 +0200
+***************
+*** 377,404 ****
+      /* When the buffer is no longer in a window, trigger BufWinLeave */
+      if (buf->b_nwindows == 1)
+      {
+       apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
+                                                                 FALSE, buf);
+!      /* Return if autocommands deleted the buffer or made it the only one. */
+!      if (!buf_valid(buf) || (abort_if_last && one_window()))
+       {
+           EMSG(_(e_auabort));
+           return;
+       }
+  
+       /* When the buffer becomes hidden, but is not unloaded, trigger
+        * BufHidden */
+       if (!unload_buf)
+       {
+           apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
+                                                                 FALSE, buf);
+!          /* Return if autocommands deleted the buffer or made it the only
+!           * one. */
+!          if (!buf_valid(buf) || (abort_if_last && one_window()))
+!          {
+!              EMSG(_(e_auabort));
+!              return;
+!          }
+       }
+  # ifdef FEAT_EVAL
+       if (aborting())     /* autocmds may abort script processing */
+--- 377,411 ----
+      /* When the buffer is no longer in a window, trigger BufWinLeave */
+      if (buf->b_nwindows == 1)
+      {
++      buf->b_closing = TRUE;
+       apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
+                                                                 FALSE, buf);
+!      if (!buf_valid(buf))
+       {
++          /* Autocommands deleted the buffer. */
++ aucmd_abort:
+           EMSG(_(e_auabort));
+           return;
+       }
++      buf->b_closing = FALSE;
++      if (abort_if_last && one_window())
++          /* Autocommands made this the only window. */
++          goto aucmd_abort;
+  
+       /* When the buffer becomes hidden, but is not unloaded, trigger
+        * BufHidden */
+       if (!unload_buf)
+       {
++          buf->b_closing = TRUE;
+           apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
+                                                                 FALSE, buf);
+!          if (!buf_valid(buf))
+!              /* Autocommands deleted the buffer. */
+!              goto aucmd_abort;
+!          buf->b_closing = FALSE;
+!          if (abort_if_last && one_window())
+!              /* Autocommands made this the only window. */
+!              goto aucmd_abort;
+       }
+  # ifdef FEAT_EVAL
+       if (aborting())     /* autocmds may abort script processing */
+***************
+*** 552,557 ****
+--- 559,565 ----
+  #ifdef FEAT_AUTOCMD
+      int              is_curbuf = (buf == curbuf);
+  
++     buf->b_closing = TRUE;
+      apply_autocmds(EVENT_BUFUNLOAD, buf->b_fname, buf->b_fname, FALSE, buf);
+      if (!buf_valid(buf))         /* autocommands may delete the buffer */
+       return;
+***************
+*** 568,573 ****
+--- 576,582 ----
+       if (!buf_valid(buf))        /* autocommands may delete the buffer */
+           return;
+      }
++     buf->b_closing = FALSE;
+  # ifdef FEAT_EVAL
+      if (aborting())      /* autocmds may abort script processing */
+       return;
+***************
+*** 1150,1155 ****
+--- 1159,1167 ----
+        * a window with this buffer.
+        */
+       while (buf == curbuf
++ # ifdef FEAT_AUTOCMD
++                 && !(curwin->w_closing || curwin->w_buffer->b_closing)
++ # endif
+                  && (firstwin != lastwin || first_tabpage->tp_next != NULL))
+           win_close(curwin, FALSE);
+  #endif
+***************
+*** 4750,4756 ****
+  #ifdef FEAT_WINDOWS
+                   || (had_tab > 0 && wp != firstwin)
+  #endif
+!                  ) && firstwin != lastwin)
+           {
+               win_close(wp, FALSE);
+  #ifdef FEAT_AUTOCMD
+--- 4762,4772 ----
+  #ifdef FEAT_WINDOWS
+                   || (had_tab > 0 && wp != firstwin)
+  #endif
+!                  ) && firstwin != lastwin
+! #ifdef FEAT_AUTOCMD
+!                  && !(wp->w_closing || wp->w_buffer->b_closing)
+! #endif
+!                  )
+           {
+               win_close(wp, FALSE);
+  #ifdef FEAT_AUTOCMD
+*** ../vim-7.3.544/src/ex_docmd.c      2012-06-06 18:03:01.000000000 +0200
+--- src/ex_docmd.c     2012-06-06 18:06:46.000000000 +0200
+***************
+*** 6459,6465 ****
+      }
+  #ifdef FEAT_AUTOCMD
+      apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
+!     if (curbuf_locked())
+       return;
+  #endif
+  
+--- 6459,6467 ----
+      }
+  #ifdef FEAT_AUTOCMD
+      apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
+!     /* Refuse to quick when locked or when the buffer in the last window is
+!      * being closed (can only happen in autocommands). */
+!     if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing))
+       return;
+  #endif
+  
+*** ../vim-7.3.544/src/window.c        2012-05-25 12:38:57.000000000 +0200
+--- src/window.c       2012-06-06 18:47:19.000000000 +0200
+***************
+*** 2034,2040 ****
+  
+      for (wp = firstwin; wp != NULL && lastwin != firstwin; )
+      {
+!      if (wp->w_buffer == buf && (!keep_curwin || wp != curwin))
+       {
+           win_close(wp, FALSE);
+  
+--- 2034,2044 ----
+  
+      for (wp = firstwin; wp != NULL && lastwin != firstwin; )
+      {
+!      if (wp->w_buffer == buf && (!keep_curwin || wp != curwin)
+! #ifdef FEAT_AUTOCMD
+!              && !(wp->w_closing || wp->w_buffer->b_closing)
+! #endif
+!              )
+       {
+           win_close(wp, FALSE);
+  
+***************
+*** 2051,2057 ****
+       nexttp = tp->tp_next;
+       if (tp != curtab)
+           for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
+!              if (wp->w_buffer == buf)
+               {
+                   win_close_othertab(wp, FALSE, tp);
+  
+--- 2055,2065 ----
+       nexttp = tp->tp_next;
+       if (tp != curtab)
+           for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
+!              if (wp->w_buffer == buf
+! #ifdef FEAT_AUTOCMD
+!                  && !(wp->w_closing || wp->w_buffer->b_closing)
+! #endif
+!                  )
+               {
+                   win_close_othertab(wp, FALSE, tp);
+  
+***************
+*** 2168,2173 ****
+--- 2176,2183 ----
+      }
+  
+  #ifdef FEAT_AUTOCMD
++     if (win->w_closing || win->w_buffer->b_closing)
++      return; /* window is already being closed */
+      if (win == aucmd_win)
+      {
+       EMSG(_("E813: Cannot close autocmd window"));
+***************
+*** 2203,2219 ****
+       wp = frame2win(win_altframe(win, NULL));
+  
+       /*
+!       * Be careful: If autocommands delete the window, return now.
+        */
+       if (wp->w_buffer != curbuf)
+       {
+           other_buffer = TRUE;
+           apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
+!          if (!win_valid(win) || last_window())
+               return;
+       }
+       apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
+!      if (!win_valid(win) || last_window())
+           return;
+  # ifdef FEAT_EVAL
+       /* autocmds may abort script processing */
+--- 2213,2238 ----
+       wp = frame2win(win_altframe(win, NULL));
+  
+       /*
+!       * Be careful: If autocommands delete the window or cause this window
+!       * to be the last one left, return now.
+        */
+       if (wp->w_buffer != curbuf)
+       {
+           other_buffer = TRUE;
++          win->w_closing = TRUE;
+           apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
+!          if (!win_valid(win))
+!              return;
+!          win->w_closing = FALSE;
+!          if (last_window())
+               return;
+       }
++      win->w_closing = TRUE;
+       apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
+!      if (!win_valid(win))
+!          return;
+!      win->w_closing = FALSE;
+!      if (last_window())
+           return;
+  # ifdef FEAT_EVAL
+       /* autocmds may abort script processing */
+***************
+*** 2240,2246 ****
+       * Close the link to the buffer.
+       */
+      if (win->w_buffer != NULL)
+!      close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, TRUE);
+  
+      /* Autocommands may have closed the window already, or closed the only
+       * other window or moved to another tab page. */
+--- 2259,2274 ----
+       * Close the link to the buffer.
+       */
+      if (win->w_buffer != NULL)
+!     {
+! #ifdef FEAT_AUTOCMD
+!      win->w_closing = TRUE;
+! #endif
+!      close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
+! #ifdef FEAT_AUTOCMD
+!      if (win_valid(win))
+!          win->w_closing = FALSE;
+! #endif
+!     }
+  
+      /* Autocommands may have closed the window already, or closed the only
+       * other window or moved to another tab page. */
+***************
+*** 2346,2351 ****
+--- 2374,2384 ----
+      tabpage_T   *ptp = NULL;
+      int              free_tp = FALSE;
+  
++ #ifdef FEAT_AUTOCMD
++     if (win->w_closing || win->w_buffer->b_closing)
++      return; /* window is already being closed */
++ #endif
++ 
+      /* Close the link to the buffer. */
+      close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
+  
+*** ../vim-7.3.544/src/version.c       2012-06-06 18:03:01.000000000 +0200
+--- src/version.c      2012-06-06 18:53:06.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     545,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+4. Put your garbage can on your desk and label it "in".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.546.patch0 b/vim/patches/vim-7.3.546.patch0
new file mode 100644 (file)
index 0000000..c883d2d
--- /dev/null
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.546
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.546
+Problem:    Bogus line break.
+Solution:   Remove the line break.
+Files:     src/screen.c
+
+
+*** ../vim-7.3.545/src/screen.c        2012-06-01 15:20:49.000000000 +0200
+--- src/screen.c       2012-06-01 16:31:30.000000000 +0200
+***************
+*** 3228,3235 ****
+               /* no bad word found at line start, don't check until end of a
+                * word */
+               spell_hlf = HLF_COUNT;
+!              word_end = (int)(spell_to_word_end(ptr, wp)
+!                                                                - line + 1);
+           }
+           else
+           {
+--- 3228,3234 ----
+               /* no bad word found at line start, don't check until end of a
+                * word */
+               spell_hlf = HLF_COUNT;
+!              word_end = (int)(spell_to_word_end(ptr, wp) - line + 1);
+           }
+           else
+           {
+*** ../vim-7.3.545/src/version.c       2012-06-06 19:02:40.000000000 +0200
+--- src/version.c      2012-06-06 19:05:11.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     546,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+5. Put decaf in the coffee maker for 3 weeks. Once everyone has gotten
+   over their caffeine addictions, switch to espresso.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/vim/patches/vim-7.3.547.patch0 b/vim/patches/vim-7.3.547.patch0
new file mode 100644 (file)
index 0000000..5533144
--- /dev/null
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.547
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.547 (after 7.3.541)
+Problem:    Compiler warning for uninitialized variable.
+Solution:   Initialize it.
+Files:     src/ops.c
+
+
+*** ../vim-7.3.546/src/ops.c   2012-06-06 16:12:54.000000000 +0200
+--- src/ops.c  2012-06-06 23:06:45.000000000 +0200
+***************
+*** 4306,4312 ****
+      colnr_T  col = 0;
+      int              ret = OK;
+  #if defined(FEAT_COMMENTS) || defined(PROTO)
+!     int              *comments;
+      int              remove_comments = (use_formatoptions == TRUE)
+                                 && has_format_option(FO_REMOVE_COMS);
+      int              prev_was_comment;
+--- 4306,4312 ----
+      colnr_T  col = 0;
+      int              ret = OK;
+  #if defined(FEAT_COMMENTS) || defined(PROTO)
+!     int              *comments = NULL;
+      int              remove_comments = (use_formatoptions == TRUE)
+                                 && has_format_option(FO_REMOVE_COMS);
+      int              prev_was_comment;
+*** ../vim-7.3.546/src/version.c       2012-06-06 19:05:45.000000000 +0200
+--- src/version.c      2012-06-06 23:07:26.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     547,
+  /**/
+
+-- 
+How To Keep A Healthy Level Of Insanity:
+9. As often as possible, skip rather than walk.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
index d826fb60b054d89baa6581f2e8cb1a46344fc173..2863e9454b859873a9102960a85f731d948f479d 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = vim
 version    = 7.3
-release    = 2
+release    = 3
 
 groups     = Applications/Editors
 url        = http://www.vim.org
@@ -21,18 +21,27 @@ end
 source_dl  = ftp://ftp.vim.org/pub/vim/unix/
 sources    = %{thisapp}.tar.bz2
 
-DIR_APP        = %{DIR_SRC}/%{name}73
 
 build
+       DIR_APP = %{DIR_SRC}/%{name}73
+
        requires
                libacl-devel
                libselinux-devel
                ncurses-devel
+               python-devel
        end
 
        configure_options += \
+               --with-features=huge \
+               --enable-pythoninterp \
+               --enable-gui=no \
                --enable-multibyte \
-               --enable-selinux
+               --enable-cscope \
+               --enable-selinux \
+               --with-tlib=ncurses \
+               --with-modified-by="<bugzilla@ipfire.org>" \
+               --with-compiled-by="<bugzilla@ipfire.org>"
 
        configure_cmds
                echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
index c9ddf100022dd232186e768deca9fa771ff39a70..6ee0ebec5eb6084c1a430acf2372198c4238071d 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = vlan
 version    = 1.9
-release    = 1
+release    = 2
 
 groups     = Networking/Tools
 url        = http://www.candelatech.com/~greear/vlan.html
@@ -24,20 +24,23 @@ build
        # Parallelism cannot be used here.
        PARALLELISMFLAGS = -j1
 
-       make_build_targets += \
-               purge \
-               vconfig \
-               CCFLAGS="%{CFLAGS}"
+       prepare_cmds
+               make purge
+       end
+
+       make_build_targets = vconfig CCFLAGS="%{CFLAGS}" STRIP=/bin/true
 
        install
-               mkdir -pv %{BUILDROOT}/sbin
-               install -c -p -m 0755 vconfig %{BUILDROOT}/sbin
+               mkdir -pv %{BUILDROOT}%{sbindir}
+               install -D -m 0755 vconfig %{BUILDROOT}%{sbindir}
+
+               mkdir -pv %{BUILDROOT}%{mandir}/man8
+               install -D -m 0644 vconfig.8 %{BUILDROOT}%{mandir}/man8
        end
 end
 
 packages
        package %{name}
-       end
 
        package %{name}-debuginfo
                template DEBUGINFO
index ea4f1a0d2c772422caf640ca98cd9cebbf4ad7e3..1ec862cd65507a34b0c080412fbe0a10b74bc25e 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = wavemon
-version    = 0.7.2
+version    = 0.7.4
 release    = 1
 
 groups     = Applications/Internet
index fb0af1a8387d7b1102b05c6c9079a96a03cdffe7..92fac58eaa620b9cc42f44219b447df7a06ae988 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = wpa_supplicant
-version    = 0.7.3
+version    = 1.0
 release    = 1
 
 groups     = Sytem/Base
@@ -53,7 +53,6 @@ end
 
 packages
        package %{name}
-       end
 
        package %{name}-debuginfo
                template DEBUGINFO
diff --git a/xclock/xclock.nm b/xclock/xclock.nm
new file mode 100644 (file)
index 0000000..e4a7104
--- /dev/null
@@ -0,0 +1,43 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = xclock
+version    = 1.0.6
+release    = 1
+
+maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
+groups     = X/Tools
+url        = http://www.x.org
+license    = MIT
+summary    = A classic X Window System clock utility. 
+
+description
+       xclock is the classic X Window System clock utility.  It displays
+       the time in analog or digital form, continuously updated at a
+       frequency which may be specified by the user.
+end
+
+source_dl  = http://ftp.x.org/pub/individual/app/
+sources    = %{thisapp}.tar.bz2
+
+build
+       requires
+               libX11-devel
+               libXaw-devel
+               libXft-devel
+               libXmu-devel
+               libXrender-devel
+               libxkbfile-devel
+               xorg-x11-util-macros
+       end
+end
+
+packages
+       package %{name}
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
index b7363070c966580f8f5ab1764436d70b3824963e..3647cd76ca471001acfe3ecb1799305483b2252c 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = xen
 version    = 4.1.2
-release    = 5
+release    = 6
 sup_arches = i686 x86_64
 
 maintainer = Ben Schweikert <ben.schweikert@ipfire.org>
@@ -28,7 +28,7 @@ build
        requires
                chrpath
                dev86
-               gettext-devel
+               gettext
                iasl
                libuuid-devel
                ncurses-devel
@@ -115,16 +115,6 @@ packages
                        run applications which manage Xen virtual machines
                end
 
-               # Very hacky workaround for an improper name of libfsimage.
-               if "%{DISTRO_ARCH}" == "x86_64"
-                       provides
-                               libfsimage.so.1.0(libfsimage.so.1.0)(64bit)
-                       end
-               else
-                       provides
-                               libfsimage.so.1.0(libfsimage.so.1.0)
-                       end
-               end
                files += %{libdir}/fs
        end
 
index b8ee34e04fe91e5872a0b9aca8774d29c1b68ed6..ec0e486337ac1328fe3a5c7306d412e1a0cbd81f 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = xfsprogs
-version    = 3.1.7
+version    = 3.1.8
 release    = 1
 
 groups     = System/Filesystems
@@ -30,35 +30,24 @@ build
        end
 
        configure_options += \
-               --bindir=/sbin \
-               --sbindir=/sbin \
-               --libdir=/%{lib} \
                --libexecdir=%{libdir} \
                --enable-readline=yes \
-               --enable-blkid=yes \
-               --disable-static
-
-       configure_cmds
-               # Kill rpaths
-               sed -i libtool \
-                       -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
-                       -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g'
-       end
+               --enable-blkid=yes
 
        make_build_targets += V=1 DEBUG=-DNDEBUG
 
        install
-               make install install-dev install-qa V=1 DIST_ROOT=%{BUILDROOT}
-
-               chmod -v 755 %{BUILDROOT}/%{lib}/libhandle.so*
-               rm -vf %{BUILDROOT}/%{lib}/libhandle.so
-               mkdir -pv %{BUILDROOT}%{libdir}
-               ln -svf ../../%{lib}/libhandle.so.1 %{BUILDROOT}%{libdir}/libhandle.so
+               make install install-dev install-qa V=1 DIST_ROOT=%{BUILDROOT} \
+                       PKG_ROOT_SBIN_DIR=%{sbindir} PKG_ROOT_LIB_DIR=%{libdir}
        end
 end
 
 packages
        package %{name}
+               conflicts
+                       filesystem < 002
+               end
+       end
 
        package %{name}-devel
                template DEVEL
index 3ca124098e01f768a0066f16a5809d5593df2f7c..12c0f936cf821f93d365664159707a928cd4ca84 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = xmlto
-version    = 0.0.24
+version    = 0.0.25
 release    = 1
 
 groups     = Applications/System
@@ -29,7 +29,7 @@ build
                util-linux
        end
 
-       configure_options +=\
+       configure_options += \
                BASH=/bin/bash
 
        test
@@ -40,6 +40,10 @@ end
 packages
        package %{name}
                requires
+                       docbook-dtds
+                       docbook-xsl
+                       flex
+                       libxslt
                        util-linux
                end
        end
index 060b4e2f8b56e7b76d98db025e0d4198ee5dffc7..365c9e6a0341722012dd56b3e8812c8a707dc56b 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = xorg-x11-server
 version    = 1.8.2
-release    = 5
+release    = 6
 
 maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
 groups     = X/Server
@@ -137,10 +137,6 @@ packages
                        pixman
                        udev
                        xkeyboard-config
-                       xorg-x11-drv-evdev
-                       xorg-x11-drv-keyboard
-                       xorg-x11-drv-mouse
-                       xorg-x11-drv-vesa
                        xorg-x11-fonts
                        xorg-x11-font-utils
                        xorg-x11-xkb-utils
index 16ed2cde33ba49f4c0c01de7cc9e9ab074bba5f0..800b87a08730fcd6a0d94e6de915cf1d496b6fe9 100644 (file)
--- a/xz/xz.nm
+++ b/xz/xz.nm
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = xz
-version    = 5.0.3
-release    = 7
+version    = 5.0.4
+release    = 1
 
 compat_version = 4.999.9beta
 
index 5e989317cf579c7cb2baa0bfcaa6a906858a1613..173768722375beab01a3dff63802fc333d0376b8 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = zlib
-version    = 1.2.6
+version    = 1.2.7
 release    = 1
 
 groups     = System/Libraries
@@ -25,7 +25,7 @@ CFLAGS    += -fPIC -DPIC
 build
        configure_options = \
                --prefix=%{prefix} \
-               --libdir=/%{lib}
+               --libdir=%{libdir}
 
        test
                make check
@@ -34,10 +34,6 @@ build
        install_cmds
                mkdir -pv %{BUILDROOT}%{includedir} %{BUILDROOT}%{libdir}
                cp -pfv zconf.h zlib.h %{BUILDROOT}%{includedir}
-               rm -vf %{BUILDROOT}/%{lib}/libz.so
-               ln -sfv ../../%{lib}/libz.so.%{version} %{BUILDROOT}%{libdir}/libz.so
-
-               mv -v %{BUILDROOT}/%{lib}/pkgconfig %{BUILDROOT}%{libdir}
        end
 end